acl.media.dvpp_jpeg_get_image_info_v2 段错误(核心已转储)
收藏回复举报
acl.media.dvpp_jpeg_get_image_info_v2 段错误(核心已转储)
t('forum.solved') 已解决
发表于2026-04-07 19:04:23
0 查看
#测试代码

import acl
import numpy as np

def align_up(value, align):
    return int(int((value + align - 1) / align) * align)

def dvpp_get_jpeg_info(image_path):
    # Step 1: 初始化ACL
    ret = acl.init()
    device_id = 0
    ret = acl.rt.set_device(device_id)
    print(f"Device {device_id} set successfully")
    run_mode, _ = acl.rt.get_run_mode()
    print(f"Run mode: {run_mode}")
    jpeg_data = np.fromfile(image_path, dtype=np.byte)
    jpeg_host_ptr = acl.util.numpy_to_ptr(jpeg_data)
    jpeg_size = jpeg_data.nbytes
    dsize = align_up(jpeg_size, 16)
    print(f"Loaded JPEG file: {image_path}, size: {jpeg_size} bytes, dsize: {dsize}")
    jpeg_device_ptr, ret = acl.media.dvpp_malloc(dsize)
    print(f"Device memory allocated: {hex(jpeg_device_ptr)}, size: {jpeg_size}")
    ret = acl.rt.memcpy(jpeg_device_ptr, dsize, jpeg_host_ptr, jpeg_size, 1)
    print(f"JPEG data copied from Host to Device")
    width, height, components, fmt, ret = acl.media.dvpp_jpeg_get_image_info_v2(jpeg_device_ptr, dsize)
    ret = acl.media.dvpp_free(jpeg_device_ptr)
    ret = acl.rt.free_host(jpeg_host_ptr)
    ret = acl.rt.reset_device(device_id)
    ret = acl.finalize()
    return (width, height, components, fmt)

if __name__ == "__main__":
    # 使用示例
    image_file = "1.jpg"
    image_file1 = "ok2.jpg"
    result = dvpp_get_jpeg_info(image_file)

我要发帖子