文档
注册

hi_video_frame

说明

定义视频原始图像帧结构。

定义

typedef struct {
    hi_u32              width;
    hi_u32              height;
    hi_video_field      field;
    hi_pixel_format     pixel_format;
    hi_video_format     video_format;
    hi_compress_mode    compress_mode;
    hi_dynamic_range    dynamic_range;
    hi_color_gamut      color_gamut;

    hi_u32              header_stride[HI_MAX_COLOR_COMPONENT];
    hi_u32              width_stride[HI_MAX_COLOR_COMPONENT];
    hi_u32              height_stride[HI_MAX_COLOR_COMPONENT];

    hi_u64              header_phys_addr[HI_MAX_COLOR_COMPONENT];
    hi_u64              phys_addr[HI_MAX_COLOR_COMPONENT];
    hi_void* ATTRIBUTE  header_virt_addr[HI_MAX_COLOR_COMPONENT];
    hi_void* ATTRIBUTE  virt_addr[HI_MAX_COLOR_COMPONENT];

    hi_u32              time_ref;
    hi_u64              pts;

    hi_u64              user_data[HI_MAX_USER_DATA_NUM];
    hi_u32              frame_flag; 
    hi_video_supplement supplement;
} hi_video_frame;

成员

成员名称

描述

width

图像宽度。

height

图像高度。

field

帧场模式。预留参数。

pixel_format

视频图像像素格式。

video_format

视频图像格式。

compress_mode

视频压缩模式。

dynamic_range

动态范围。预留参数。

color_gamut

色域范围。预留参数。

header_stride

图像压缩头跨距。预留参数。

width_stride

输出图像分量的宽度数据跨距。YUV图像则为Y、U、V分量的数据跨距。RGB图像则为R、G、B分量的数据跨距。

height_stride

输出图像分量的高度数据跨距。YUV图像则为Y、U、V分量的数据跨距。RGB图像则为R、G、B分量的数据跨距。

若涉及VI视频采集、ISP系统控制、VPSS视频处理、VENC视频编码、JPEGE图片编码功能时,该参数作为预留参数,暂不支持。

header_phys_addr

压缩头物理地址。预留参数。

phys_addr

物理地址。预留参数。

header_virt_addr

压缩头虚拟地址。预留参数。

virt_addr

图像在Device内存中的起始虚拟地址。

作为输入图像时,对于YUV图像,virt_addr[0]为图像起始地址,也是Y分量起始地址,virt_addr[1]为U分量起始地址,virt_addr[2]为V分量起始地址;

作为输出图像时,对于YUV和RGB图像,virt_addr[0]为图像在device上的起始地址,virt_addr[1]和virt_addr[2]为保留字段。

time_ref

图像帧序列号。

解码场景下,该参数预留。

JPEGE编码场景下,该参数预留。

VENC编码场景下,针对每一帧设置该参数时,按照帧的顺序,该参数值需递增且为偶数,例如,第一帧时该参数值设置为2,第二帧时该参数值设置为4,以此类推。

pts

图像时间戳。

user_data

私有数据。预留参数。

frame_flag

  • 解码场景下,表示该帧解码是否成功,取值范围:
    • 0:成功。
    • 1:失败,如果失败,用户需要及时释放内存。
    • 2:隔行码流场景下使用,隔行码流每帧发送两场,带两块输出内存;解码时其中一块内存无图像输出,属于正常现象,用户需及时释放内存;隔行码流的解码输出数据都在奇数场对应的输出buffer中。
    • 3:失败,参考帧个数设置错误。
    • 4:失败,VDEC解码帧存大小设置错误,JPEGD解码输出内存大小设置错误。
    • 5:失败,JPEGD解码配置参数设置错误,例如,设置的宽高超出限制、设置的目标解码格式不支持等。
  • 在编码场景下,表示是否使能slice_temporal_mvp_enabled_flag语法(表示帧间预测是否使用时域MV(MotionVector)预测),仅支持H265协议,取值范围如下:
    • 0:slice_temporal_mvp_enabled_flag为True,表示使用时域MV预测。
    • 1:slice_temporal_mvp_enabled_flag为False,表示不使用时域MV预测。

supplement

图像的补充信息。

Atlas 200/500 A2推理产品下VI模块接口会使用,并由VI模块内部自动完成初始化,其它功能该参数为透传参数。

注意事项

10bit数据不压缩时在内存中的存储方式是紧凑排列的。

10bit YUV段压缩数据存储是前8bit和后2bit分开存储。

10bit tile 64*16 数据(即VDH(video decoder hardware)解码之后的数据)不管是压缩还是非压缩,在内存中的存储方式都是前8bit和后2bit分开存储。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词