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 |
|
supplement |
图像的补充信息。 Atlas 200/500 A2推理产品下VI模块接口会使用,并由VI模块内部自动完成初始化,其它功能该参数为透传参数。 |
注意事项
10bit数据不压缩时在内存中的存储方式是紧凑排列的。
10bit YUV段压缩数据存储是前8bit和后2bit分开存储。
10bit tile 64*16 数据(即VDH(video decoder hardware)解码之后的数据)不管是压缩还是非压缩,在内存中的存储方式都是前8bit和后2bit分开存储。