数据类型
VpcUserImageConfigure中的结构体
该结构体在DDK安装目录下的“ddk/include/inc/dvpp/Vpc.h”文件中定义。
- VpcUserRoiConfigure结构体
成员变量
说明
VpcUserRoiInputConfigure inputConfigure
用户ROI输入配置,详细见•VpcUserRoiInputConfigur...。若实现8K缩放功能,不用配置该参数。
VpcUserRoiOutputConfigure outputConfigure
用户ROI输出配置,详细见•VpcUserRoiOutputConfigu...。
VpcUserRoiConfigure* next
用户下一个ROI配置,当需要使用一图多框时配置,否则为NULL,默认为NULL。
uint64_t reserve1
预留参数。
- VpcCompressDataConfigure结构体
成员变量
说明
uint64_t lumaHeadAddr
y分量头地址。
uint64_t chromaHeadAddr
uv分量头地址。
uint32_t lumaHeadStride
y分量头stride,与 FRAME结构体中的stride_head参数值保持一致。
uint32_t chromaHeadStride
uv分量头stride,与 FRAME结构体中的stride_head参数值保持一致。
uint64_t lumaPayloadAddr
y分量数据的地址。
uint64_t chromaPayloadAddr
uv分量数据的地址。
uint32_t lumaPayloadStride
y分量数据的stride,与 FRAME结构体中的stride_payload参数值保持一致。
uint32_t chromaPayloadStride
uv分量数据的stride,与 FRAME结构体中的stride_payload参数值保持一致。
- VpcUserYuvSum结构体
成员变量
说明
uint32_t ySum
y分量总和。
uint32_t uSum
u分量总和。
uint32_t vSum
v分量总和。
uint64_t reserve1
预留参数。
- VpcUserPerformanceTuningParameter结构体
成员变量
说明
uint64_t reserve1
预留参数1。
uint64_t reserve2
预留参数2。
uint64_t reserve3
预留参数3。
uint64_t reserve4
预留参数4。
uint64_t reserve5
预留参数5。
- VpcUserRoiInputConfigure 结构体
成员变量
说明
VpcUserCropConfigure cropArea
用户抠图部分的输入数据配置,详细见•VpcUserCropConfigure 结构...。
uint64_t reserve1
预留参数。
- VpcUserRoiOutputConfigure结构体
成员变量
说明
uint8_t* addr
输出图片的首地址。
使用Matrix提供的HIAI_DVPP_DMalloc接口申请内存,申请到的内存满足DVPP的要求(首地址16对齐)。HIAI_DVPP_DMalloc接口的说明,请参见《 Matrix API参考》。
uint32_t bufferSize
输出buffer的大小,根据yuv420sp计算。
uint32_t widthStride
输出图片的宽步长,需要16对齐;宽stride最小为32,最大为4096。
uint32_t heightStride
输出图片的高步长,需要2对齐;高stride最小为6,最大为4096。
输出为yuv420sp图像,需要根据heightStride计算出uv数据的起始地址。
VpcUserCropConfigure outputArea
用户指定输出区域坐标,详细见•VpcUserCropConfigure 结构...。
若实现8K缩放功能,不用配置该参数。
uint64_t reserve1
预留参数。
- VpcUserCropConfigure 结构体
关于上偏移、下偏移、左偏移、右偏移各概念的解释请参见表10-8。
成员变量
说明
uint32_t leftOffset
左偏移,必须为偶数。
贴图区域相对输出图片的左偏移16对齐。
uint32_t rightOffset
右偏移,必须为奇数。
uint32_t upOffset
上偏移,必须为偶数。
uint32_t downOffset
下偏移,必须为奇数。
uint64_t reserve1
预留参数。
vdec_in_msg中的结构体和类
该结构体在DDK安装目录下的“ddk/include/inc/dvpp/Vdec.h”文件中定义
成员变量 |
说明 |
---|---|
int height |
输出图像的高(对齐后的值,H264为16对齐,H265为64对齐)。 |
int width |
输出图像的宽(对齐后的值,H264为16对齐,H265为64对齐)。 |
int realHeight |
真实图像的高。 |
int realWidth |
真实图像的宽。 |
unsigned char* buffer |
输出图像的内存地址。 |
int buffer_size |
输出图像的内存大小。 |
unsigned int offset_payload_y |
输出图像payload的Y分量偏移量,payload的Y分量地址=buffer + offset_payload_y。 |
unsigned int offset_payload_c; |
输出图像payload的C分量偏移量,payload的C分量地址=buffer + offset_payload_c。 |
unsigned int offset_head_y; |
输出图像head的Y分量偏移量,head的Y分量地址=buffer + offset_head_y。 |
unsigned int offset_head_c; |
输出图像head的C分量偏移量,head的C分量地址=buffer + offset_head_c。 |
unsigned int stride_payload; |
输出图像payload的stride。 |
unsigned int stride_head; |
输出图像head的stride。 |
unsigned short bitdepth; |
输出图像的位深。 |
char video_format[10]; |
输入视频的格式,为“h264”或“h265”。 |
char image_format[10]; |
输出图像的格式,为“nv12”或“nv21”。 |
成员变量或函数 |
说明 |
---|---|
unsigned long long frameIndex |
帧序号。 |
void * frameBuffer |
用户申请用于存放输出帧的内存。 |
unsigned int frameSize |
用户申请用于存放输出帧的内存大小。 |
void setFrameIndex(unsigned long long index) |
设置帧序号函数。 |
unsigned long long getFrameIndex() |
获取帧序号函数。 |
void setFrameBuffer(void * frameBuff) |
设置frameBuffer地址。 |
void * getFrameBuffer() |
获取frameBuffer地址。 |
void setFrameSize(unsigned int size) |
设置frameSize大小。 |
unsigned int getFrameSize() |
获取frameSize大小。 |
成员变量 |
说明 |
---|---|
ERRTYPE errType |
错误类型。 enum ERRTYPE{ //VDEC解码器状态异常错误,用户需要销毁解码实例,再重新创建实例 ERR_INVALID_STATE = 0x10001, //硬件错误,包含解码器启动、执行、停止等异常,用户需要销毁解码实例,再重新创建实例 ERR_HARDWARE, //将视频码流分解成多帧图片异常,用户需要检查输入的视频流数据是否正确 ERR_SCD_CUT_FAIL, //解码某一帧异常,用户需要检查输入的视频流数据是否正确 ERR_VDM_DECODE_FAIL, //暂未使用,预留 ERR_ALLOC_MEM_FAIL, //包括输入视频分辨率超范围(用户需要检查输入视频流的分辨率)、内部动态申请内存失败(用户检查系统是否有可用内存)等异常 ERR_ALLOC_DYNAMIC_MEM_FAIL, //系统内部申请VDEC的输入、输出buffer异常,用户检查系统是否有可用内存 ERR_ALLOC_IN_OR_OUT_PORT_MEM_FAIL, //码流错误,暂未使用,预留 ERR_BITSTREAM, //输入视频格式错误,暂未使用,预留 ERR_VIDEO_FORMAT, //输出格式配置错误,暂未使用,预留 ERR_IMAGE_FORMAT, //回调函数为空错误,暂未使用,预留 ERR_CALLBACK, //输入buffer为空错误,暂未使用,预留 ERR_INPUT_BUFFER, //输入buffer大小<=0错误,暂未使用,预留 ERR_INBUF_SIZE, //系统内部将解码结果通过回调函数返回给用户的线程异常,用户需要检查系统中资源(例如:线程、内存等)是否可用 ERR_THREAD_CREATE_FBD_FAIL, //创建解码实例失败,用户需要重新创建解码实例 ERR_CREATE_INSTANCE_FAIL, //初始化解码器失败,例如解码实例个数超出范围(最大16),用户需要释放部分解码实例后再重新创建实例 ERR_INIT_DECODER_FAIL, //系统内部获取某路视频流的解码句柄失败,用户需要重新创建解码实例 ERR_GET_CHANNEL_HANDLE_FAIL, //系统内部设置解码实例异常,用户需要检查解码的入参值是否正确,例如输入视频格式video_format、输出帧格式image_format等 ERR_COMPONENT_SET_FAIL, //系统内部设置解码实例名称异常,用户需要检查解码的入参值是否正确,例如输入视频格式video_format、输出帧格式image_format等 ERR_COMPARE_NAME_FAIL, //其它错误 ERR_OTHER }; |
unsigned short channelId |
解码错误的通道。 |
IMAGE_CONFIG中的结构体
成员变量 |
说明 |
取值范围 |
---|---|---|
CROP_CONFIG:crop_config |
裁剪参数配置结构体。 |
详细见•CROP_CONFIG结构体。 |
YUV_SUM_OUT_CONFIG:sum_out |
输出参数配置结构体1。 |
|
NORMAL_OUT_CONFIG:normal_out |
输出参数配置结构体2(预留,暂时不支持)。 |
|
ROI_CONFIG*:next |
下一个ROI_CONFIG结构体指针。 |
多框时配置,单框时配置为NULL。 |
成员变量 |
说明 |
取值范围 |
---|---|---|
int:enable |
是否需要进行裁剪操作。 |
0:不需要裁剪。 1:需要裁剪。 |
unsigned int:hmin |
水平最小偏移。 |
偶数,且小于hmax。 |
unsigned int:hmax |
水平最大偏移。 |
奇数,且小于输入宽度in_width。 |
unsigned int:vmin |
垂直最小偏移。 |
偶数,且小于vmax。 |
unsigned int:vmax |
垂直最大偏移。 |
奇数,且小于输入高度in_height。 |
成员变量 |
说明 |
取值范围 |
---|---|---|
int:enable |
是否启用该通道进行输出。 |
0:不启用。 1:启用。 |
unsigned int:out_width |
输出图像宽度。 |
偶数。128~4096,缩放系数需满足[0.03125, 4]。 |
unsigned int:out_height |
输出图像高度。 |
偶数。16~4096,缩放系数需满足[0.03125, 4]。 |
char*:out_buffer |
输出图像内存地址指针。 |
输出内存大小需要根据输出宽128对齐,高16对齐后的分辨率计算。 |
unsigned int:yuv_sum |
输出图像所有yuv值的和。 |
预留,暂不支持。 |
成员变量 |
说明 |
取值范围 |
---|---|---|
int:enable |
是否启用该通道进行输出。 |
0:不启用。 1:启用。 |
unsigned int:out_width |
输出图像宽度。 |
偶数。128~4096,缩放系数需满足[0.03125, 4]。 |
unsigned int:out_height |
输出图像高度。 |
偶数。16~4096,缩放系数需满足[0.03125, 4]。 |
char*:out_buffer |
输出图像内存地址指针。 |
输出内存大小需要根据输出宽128对齐,高16对齐后的分辨率计算。 |
dvpp_engine_capability_stru中的结构体
该结构体在DDK安装目录下的“ddk/include/inc/dvpp/DvppCapability.h”文件中定义
成员变量 |
说明 |
取值范围 |
---|---|---|
uint32_t resolution_high; |
高度分辨率。 |
最大值: VDEC:4096 JPEGD:8192 PNGD:4096 JPEGE:8192 VPC:4096 VENC:1920 最小值: VDEC:128 JPEGD:32 PNGD:32 JPEGE:32 VPC:16 VENC:128 |
uint32_t resolution_width; |
宽度分辨率。 |
最大值: VDEC:4096 JPEGD:8192 PNGD:4096 JPEGE:8192 VPC:4096 VENC:1920 最小值: VDEC:128 JPEGD:32 PNGD:32 JPEGE:32 VPC:16 VENC:128 |
- dvpp_format_unit_stru 结构体
成员变量 |
说明 |
取值范围 |
---|---|---|
enum dvpp_color_format color_format; |
支持图片格式 |
enum dvpp_color_format { //YUV444 in different ordering of YUV Semi-Planar/Packed,8 bit,Linear。 DVPP_COLOR_YUV444_YUV_P_8BIT_LIN, DVPP_COLOR_YUV444_YVU_P_8BIT_LIN, DVPP_COLOR_YUV444_UYV_P_8BIT_LIN, DVPP_COLOR_YUV444_UVY_P_8BIT_LIN, DVPP_COLOR_YUV444_VYU_P_8BIT_LIN, DVPP_COLOR_YUV444_VUY_P_8BIT_LIN, DVPP_COLOR_YUV444_UV_SP_8BIT_LIN, DVPP_COLOR_YUV444_VU_SP_8BIT_LIN, /*422*/ DVPP_COLOR_YUYV422_YUYV_P_8BIT_LIN, DVPP_COLOR_YUYV422_YVYU_P_8BIT_LIN, DVPP_COLOR_YUYV422_UYVY_P_8BIT_LIN, DVPP_COLOR_YUYV422_VYUY_P_8BIT_LIN, DVPP_COLOR_YUV422_UV_SP_8BIT_LIN, DVPP_COLOR_YUV422_VU_SP_8BIT_LIN, /*420*/ DVPP_COLOR_YUV420_SP_8BIT_LIN, DVPP_COLOR_YVU420_SP_8BIT_LIN, DVPP_COLOR_YUV420_SP_8BIT_HFBC, DVPP_COLOR_YVU420_SP_8BIT_HFBC, DVPP_COLOR_YUV420_SP_10BIT_HFBC, DVPP_COLOR_YVU420_SP_10BIT_HFBC, DVPP_COLOR_YUV420_P_8BIT_LIN, /*400*/ DVPP_COLOR_YVU400_SP_8BIT, /*rgb888*/ DVPP_COLOR_RGB888_RGB_P_8BIT_LIN, DVPP_COLOR_RGB888_RBG_P_8BIT_LIN, DVPP_COLOR_RGB888_GBR_P_8BIT_LIN, DVPP_COLOR_RGB888_GRB_P_8BIT_LIN, DVPP_COLOR_RGB888_BRG_P_8BIT_LIN, DVPP_COLOR_RGB888_BGR_P_8BIT_LIN, /*argb888*/ DVPP_COLOR_ARGB8888_ARGB_P_8BIT_LIN, DVPP_COLOR_ARGB8888_ARBG_P_8BIT_LIN, DVPP_COLOR_ARGB8888_AGBR_P_8BIT_LIN, DVPP_COLOR_ARGB8888_AGRB_P_8BIT_LIN, DVPP_COLOR_ARGB8888_ABRG_P_8BIT_LIN, DVPP_COLOR_ARGB8888_ABGR_P_8BIT_LIN, DVPP_COLOR_ARGB8888_RAGB_P_8BIT_LIN, DVPP_COLOR_ARGB8888_RABG_P_8BIT_LIN, DVPP_COLOR_ARGB8888_RGBA_P_8BIT_LIN, DVPP_COLOR_ARGB8888_RGAB_P_8BIT_LIN, DVPP_COLOR_ARGB8888_RBAG_P_8BIT_LIN, DVPP_COLOR_ARGB8888_RBGA_P_8BIT_LIN, DVPP_COLOR_ARGB8888_BRGA_P_8BIT_LIN, DVPP_COLOR_ARGB8888_BRAG_P_8BIT_LIN, DVPP_COLOR_ARGB8888_BGAR_P_8BIT_LIN, DVPP_COLOR_ARGB8888_BGRA_P_8BIT_LIN, DVPP_COLOR_ARGB8888_BARG_P_8BIT_LIN, DVPP_COLOR_ARGB8888_BAGR_P_8BIT_LIN, DVPP_COLOR_ARGB8888_GRAG_P_8BIT_LIN, DVPP_COLOR_ARGB8888_GRBA_P_8BIT_LIN, DVPP_COLOR_ARGB8888_GABR_P_8BIT_LIN, DVPP_COLOR_ARGB8888_GARB_P_8BIT_LIN, DVPP_COLOR_ARGB8888_GBRA_P_8BIT_LIN, DVPP_COLOR_ARGB8888_GBAR_P_8BIT_LIN, PIC_JPEG, PIC_PNG, VIO_H265, VIO_H264 }; |
uint32_t compress_type; |
压缩类型 |
enum dvpp_compress_type { arithmetic_code =0, huffman_code }; |
uint32_t stride_size; |
步长大小 |
VDEC:128 JPEGD:128 PNGD:128 JPEGE:0 VPC:128 VENC:0 |
enum dvpp_high_align_type high_alignment; |
高度对齐类型 |
enum dvpp_high_align_type { pix_random = 0, two_pix_alignment = 2, four_pix_alignment = 4, eight_pix_alignment = 8, sixteen_pix_alignment = 16 }; |
enum dvpp_high_align_type width_alignment; |
宽度对齐类型 |
enum dvpp_high_align_type { pix_random = 0, two_pix_alignment = 2, four_pix_alignment = 4, eight_pix_alignment = 8, sixteen_pix_alignment = 16 }; |
uint32_t out_mem_alignment; |
输出内存对齐参数 |
- |
- dvpp_perfomance_unit_stru结构体
成员变量 |
说明 |
取值范围 |
---|---|---|
uint32_t resolution_high; |
高度分辨率 |
VDEC:1920 JPEGD:1920 PNGD:1920 JPEGE:1920 VPC:3840 VENC:1920 |
uint32_t resolution_width; |
宽度分辨率 |
VDEC:1080 JPEGD:1080 PNGD:1080 JPEGE:1080 VPC:2160 VENC:1080 |
uint32_t stream_num; |
流大小 |
VDEC:16 JPEGD:0 PNGD:0 JPEGE:0 VPC:0 VENC:1 |
unsigned long fps; |
帧率 |
VDEC:30 JPEGD:256 PNGD:24 JPEGE:64 VPC:90 VENC:30 |
- dvpp_pre_contraction_stru结构体
成员变量 |
说明 |
取值范围 |
---|---|---|
enum dvpp_support_type is_support; |
预缩小是否支持 |
VPC:support others:no support 其中,support取值范围如下: enum dvpp_support_type { no_support =0, //no support do_support //support }; |
uint32_t contraction_types; |
缩小类型 |
VPC:3 others:0 |
uint32_t contraction_size[DVPP_PRE_CONTRATION_TYPE_MAX]; |
预缩小固定比例 |
VPC:2/4/8 others:0 |
enum dvpp_support_type is_horizontal_support; |
是否支持水平方向预缩小 |
VPC:support others:no support |
enum dvpp_support_type is_vertical_support; |
是否支持垂直方向预缩小 |
VPC:support others:no support |
- dvpp_pos_scale_stru结构体
成员变量 |
说明 |
取值范围 |
---|---|---|
enum dvpp_support_type is_support; |
后缩放是否支持 |
VPC:support others:no support |
uint32_t min_scale; |
最小缩放系数 |
VPC:1 others:1 |
uint32_t max_scale; |
最大缩放系数 |
VPC:4 others:1 |
enum dvpp_support_type is_horizontal_support; |
是否支持水平方向后缩放 |
VPC:support others:no support |
enum dvpp_support_type is_vertical_support; |
是否支持垂直方向后缩放 |
VPC:support others:no support |
成员变量 |
说明 |
取值范围 |
---|---|---|
uint32_t input_type; |
输入格式所属类型 |
包括以下两种:
|
struct dvpp_resolution_stru min_resolution; |
最小分辨率。 |
|
struct dvpp_resolution_stru max_resolution; |
最大分辨率 |
|
enum dvpp_align_type high_alignment; |
高度对齐类型。 |
enum dvpp_high_align_type { //1像素对齐 pix_random = 0, //2像素对齐 two_pix_alignment = 2, //4像素对齐 four_pix_alignment = 4, //8像素对齐 eight_pix_alignment = 8, //16像素对齐 sixteen_pix_alignment = 16 }; |
enum dvpp_align_type width_alignment; |
宽度对齐类型。 |
enum dvpp_high_align_type { //1像素对齐 pix_random = 0, //2像素对齐 two_pix_alignment = 2, //4像素对齐 four_pix_alignment = 4, //8像素对齐 eight_pix_alignment = 8, //16像素对齐 sixteen_pix_alignment = 16 }; |
vpc_in_msg中的结构体
Rdma通道结构体RDMACHANNEL
成员变量 |
说明 |
取值范围 |
---|---|---|
Long luma_head_addr |
Y分量的头地址。 |
- |
Long chroma_head_addr |
UV分量的头地址。 |
- |
unsigned int luma_head_stride |
Y分量的头stride。 |
- |
nsigned int chroma_head_stride; |
UV分量的头stride。 |
- |
long luma_payload_addr |
Y分量数据的地址。 |
- |
long chroma_payload_addr |
UV分量数据的地址。 |
- |
unsigned int luma_payload_stride |
Y分量数据的头stride。 |
- |
unsigned int chroma_payload_stride; |
UV分量数据的头stride。 |
- |