hbVPVideoEncode 算子和 hbVPVideoDecode 算子的context上下文描述句柄,句柄包含了VPU上运行所必要的描述信息,可重复使用。
视频编码类型枚举。
成员
| 成员名称 | 描述 |
|---|---|
HB_VP_VIDEO_TYPE_H264 | H.264视频编码协议。 |
HB_VP_VIDEO_TYPE_H265 | H.265视频编码协议。 |
码率控制模式枚举。
成员
| 成员名称 | 描述 |
|---|---|
HB_VP_VIDEO_RC_MODE_H264_CBR | H.264编码协议CBR码率控制模式。 |
HB_VP_VIDEO_RC_MODE_H264_VBR | H.264编码协议VBR码率控制模式。 |
HB_VP_VIDEO_RC_MODE_H264_AVBR | H.264编码协议AVBR码率控制模式。 |
HB_VP_VIDEO_RC_MODE_H264_FIXQP | H.264编码协议FixQp码率控制模式。 |
HB_VP_VIDEO_RC_MODE_H264_QPMAP | H.264编码协议QPMap码率控制模式。 |
HB_VP_VIDEO_RC_MODE_H265_CBR | H.265编码协议CBR码率控制模式。 |
HB_VP_VIDEO_RC_MODE_H265_VBR | H.265编码协议VBR码率控制模式。 |
HB_VP_VIDEO_RC_MODE_H265_AVBR | H.265编码协议AVBR码率控制模式。 |
HB_VP_VIDEO_RC_MODE_H265_FIXQP | H.265编码协议FIXQP码率控制模式。 |
HB_VP_VIDEO_RC_MODE_H265_QPMAP | H.265编码协议QPMAP码率控制模式。 |
H.264编码协议恒定码率参数。
成员
| 成员名称 | 描述 |
|---|---|
intraPeriod | I帧间隔。取值范围[0, 2047],默认值28。 |
intraQp | I帧QP值。取值范围[0, 51],默认值30。 |
bitRate | 目标平均比特率,单位是kbps。取值范围[0, 700000],默认值1000。 |
frameRate | 目标帧率,单位是fps。取值范围[0, 240],默认值30。 |
initialRcQp | 初始QP值,当该值不在[0, 51]范围内,编码器内部会决定初始值。取值范围[0, 63],默认值63。 |
vbvBufferSize | 指定视频缓冲区的大小,单位是ms。取值范围[10,3000],默认值10。 视频缓冲区的大小为bitRate*vbvBufferSize/1000(kb),该大小会影响编码质量和码率控制精度。 当视频缓冲区比较小时,码率控制精确度高,但图像编码质量较差; 当该buffer比较大时,图像编码质量高,但是码率波动大。 |
mbLevelRcEnable | 使能基于宏块的帧级速率控制,根据视频内容的特征和需求动态的调整每个宏块的编码参数。 取值范围[0, 1],默认值0。 |
minQpI | I帧的最小QP值。取值范围[0, 51],默认值8。 |
maxQpI | I帧的最大QP值。取值范围[0, 51],默认值51。 |
minQpP | P帧的最小QP值。取值范围[0, 51],默认值8。 |
maxQpP | P帧的最大QP值。取值范围[0, 51],默认值51。 |
minQpB | B帧的最小QP值。取值范围[0, 51],默认值8。 |
maxQpB | B帧的最大QP值。取值范围[0, 51],默认值51。 |
hvsQpEnable | 码率控制可以工作在subCTU级别的控制,该模式会调整子宏块的QP值,进而提高主观图像质量。 取值范围[0,1],默认值1。 |
hvsQpScale | 当hvsQpEnable使能后有效,表示QP缩放因子。取值范围[0, 4],默认值2。 |
hvsMaxDeltaQp | 当hvsQpEnable使能后有效,指定HVS QP值的最大偏差范围。取值范围[0, 12],默认值10。 |
qpMapEnable | 使能ROI编码时的QP Map。取值范围[0, 1],默认值0。 |
H.264编码协议可变码率参数。
成员
| 成员名称 | 描述 |
|---|---|
intraPeriod | I帧间隔。取值范围[0, 2047],默认值28。 |
intraQp | 帧QP值。取值范围[0, 51],默认值0。 |
frameRate | 目标帧率,单位是fps。取值范围[0, 240],默认值30。 |
qpMapEnable | 使能ROI编码时的QP Map。取值范围[0, 1],默认值0。 |
H.264编码协议固定量化参数。
成员
| 成员名称 | 描述 |
|---|---|
intraPeriod | I帧间隔。取值范围[0, 2047],默认值28。 |
frameRate | 目标帧率,单位是fps。取值范围[0, 240],默认值30。 |
qpI | 强制I帧的QP值。取值范围[0, 51],默认值8。 |
qpP | 强制P帧的QP值。取值范围[0, 51],默认值8。 |
qpB | 强制B帧的QP值。取值范围[0, 51],默认值8。 |
H.264编码协议QP映射参数。
成员
| 成员名称 | 描述 |
|---|---|
intraPeriod | I帧间隔。取值范围[0, 2047],默认值28。 |
frameRate | 目标帧率,单位是fps。取值范围[0, 240],默认值30。 |
qpMapArrayCount | 指定QP Map表的大小。计算公式(ALIGN64(width)>>5)*(ALIGN64(height)>>5),默认值0。 |
qpMapArray | 指定QP Map表,H.264编码协议的subCTU大小为32x32,需要为每一个subCTU 指定一个QP值。每个QP值占一个字节,并且按照光栅扫描方向排序。默认值nullptr。 |
H.265编码协议恒定码率参数。
成员
| 成员名称 | 描述 |
|---|---|
intraPeriod | I帧间隔。取值范围[0, 2047],默认值28。 |
intraQp | I帧QP值。取值范围[0, 51],默认值30。 |
bitRate | 目标平均比特率,单位是kbps。取值范围[0, 700000],默认值1000。 |
frameRate | 目标帧率,单位是fps。取值范围[0, 240],默认值30。 |
initialRcQp | 初始QP值,当该值不在[0, 51]范围内,编码器内部会决定初始值。取值范围[0, 63],默认值63。 |
vbvBufferSize | 指定视频缓冲区的大小,单位是ms。取值范围[10,3000],默认值10。 视频缓冲区的大小为bitRate*vbvBufferSize/1000(kb),该大小会影响编码质量和码率控制精度。 当视频缓冲区比较小时,码率控制精确度高,但图像编码质量较差; 当该buffer比较大时,图像编码质量高,但是码率波动大。 |
ctuLevelRcEnable | 使能基于编码数单元的帧级速率控制。根据视频内容的特征和需求动态的调整每个宏块的编码参数。 取值范围[0, 1],默认值0。 |
minQpI | I帧的最小QP值。取值范围[0, 51],默认值8。 |
maxQpI | I帧的最大QP值。取值范围[0, 51],默认值51。 |
minQpP | P帧的最小QP值。取值范围[0, 51],默认值8。 |
maxQpP | P帧的最大QP值。取值范围[0, 51],默认值51。 |
minQpB | B帧的最小QP值。取值范围[0, 51],默认值8。 |
maxQpB | B帧的最大QP值。取值范围[0, 51],默认值51。 |
hvsQpEnable | 使能编码数单元的帧率控制。 |
hvsQpScale | 当hvsQpEnable使能后有效,表示QP缩放因子。取值范围[0, 4],默认值2。 |
hvsMaxDeltaQp | 当hvsQpEnable使能后有效,指定HVS QP值的最大偏差范围。取值范围[0, 12],默认值10。 |
qpMapEnable | 使能ROI编码时的QPMap。取值范围[0, 1],默认值0。 |
H.264编码协议恒定平均目标码率参数。
H.265编码协议可变码率参数。
H.265编码协议QP映射参数。
H.265编码协议固定量化参数。
H.265编码协议恒定平均目标码率参数。
VPU编码协议码率控制参数。
成员
| 成员名称 | 描述 |
|---|---|
mode | 码率控制模式。 |
h264Cbr | H.264编码协议CBR码率控制模式的参数。 |
h264Vbr | H.264编码协议VBR码率控制模式的参数。 |
h264Avbr | H.264编码协议AVBR码率控制模式的参数。 |
h264QpMap | H.264编码协议QpMap码率控制模式的参数。 |
h264FixQp | H.264编码协议FixQp码率控制模式的参数。 |
h265Cbr | H.265编码协议CBR码率控制模式的参数。 |
h265Vbr | H.265编码协议VBR码率控制模式的参数。 |
h265Avbr | H.265编码协议AVBR码率控制模式的参数。 |
h265QpMap | H.265编码协议QpMap码率控制模式的参数。 |
h265FixQp | H.265编码协议FixQp码率控制模式的参数。 |
GOP结构参数。
成员
| 成员名称 | 描述 |
|---|---|
decodingRefreshType | 指定在I帧周期应用的解码刷新类型。取值范围[0, 2],默认值2。 0:NON_IRAP,1:CRA,2: IDR。 |
gopPresetIdx | GOP预设结构。默认值2。 支持0、1、2、3、6、7和9。 |
H.264编码协议下Profile枚举。
成员
| 成员名称 | 描述 |
|---|---|
HB_VP_H264_PROFILE_UNSPECIFIED | 不指定编码等级,VPU将自动根据源图像的位深度配置编码等级。 |
HB_VP_H264_PROFILE_BP | Baseline Profile,基础画质,支持8bit和4:2:0采样格式的视频序列。 |
HB_VP_H264_PROFILE_MP | Main Profile,主流画质,支持8bit和4:2:0采样格式的视频序列。 |
HB_VP_H264_PROFILE_EXTENDED | Extended Profile,进阶画质,支持8bit和4:2:0采样格式的视频序列。 |
HB_VP_H264_PROFILE_HP | High Profile,高级画质,支持8bit和4:2:0采样格式的视频序列。 |
HB_VP_H264_PROFILE_HIGH10 | High Profile,高级画质,支持10bit和4:2:0采样格式的视频序列。 |
HB_VP_H264_PROFILE_HIGH422 | High Profile,高级画质,支持10bit和4:2:2采样格式的视频序列。 |
HB_VP_H264_PROFILE_HIGH444 | High Profile,高级画质,支持10bit和4:4:4采样格式的视频序列。 |
H.264编码协议下Level枚举。
H.264编码协议配置参数。
成员
| 成员名称 | 描述 |
|---|---|
h264Profile | H.264编码协议的Profile。 取值范围[0, 4],默认值HB_VP_H264_PROFILE_UNSPECIFIED。 |
h264Level | H.264编码协议的Level。 默认值HB_VP_H264_LEVEL_UNSPECIFIED。 |
H.265编码协议下Level枚举。
H.265编码协议配置参数。
成员
| 成员名称 | 描述 |
|---|---|
h265Tier | VPU支持main tier和 high tier。取值范围[0,1],默认值0。 |
transformSkipEnable | 使能transform_skip模式,取值范围[0,1],默认值1。 当图像内容和背景相似度较高时,跳过一些不必要的计算和数据 传输来降低编码时间和数据流量,同时保持较高的视频质量和流畅度。 |
losslessMode | 使能无损编码模式。取值范围[0,1],默认值0。 |
tmvpEnable | 使能时间运动矢量预测。取值范围[0,1],默认值1。 |
wppEnable | 使能波前并行处理。取值范围[0,1],默认值0。 |
mainStillPictureProfileEnable | 使能主静帧的Profile,可提供较好的视频质量和较低的压缩比。 取值范围[0,1],默认值0。 |
h265Level | H.265编码协议的Level,默认值HB_VP_H265_LEVEL_UNSPECIFIED。 |
Video编码的参数。
成员
| 成员名称 | 描述 |
|---|---|
pixelFormat | 输入图像的像素格式。当前支持 HB_VP_IMAGE_FORMAT_NV12 和 HB_VP_IMAGE_FORMAT_YUV420 格式。 |
width | 输入图像的宽度,满足8对齐。取值范围[256, 8192]。 |
height | 输入图像的高度,满足8对齐。取值范围[128, 8192]。 |
outBufCount | VPU内部输出缓冲区个数。取值范围[1, 65536],默认值5。 |
videoType | 编码协议的类型。 |
rcParam | 码率控制参数。 |
gopParam | GOP参数。 |
h264EncConfig | H.264编码配置参数。 |
h265EncConfig | H.265编码配置参数。 |
获取编码器默认的编码参数。
param 编码参数指针。0 则表示API成功执行,否则执行失败。创建编码器上下文API,创建前需要提前将context初始化为nullptr。
context 编码器上下文指针。param 编码参数指针。0 则表示API成功执行,否则执行失败。释放编码器上下文API。
context 编码器上下文指针。0 则表示API成功执行,否则执行失败。调用VPU编码API。
taskHandle 任务句柄,负责算子与UCP架构的交互。srcImg 存放编码图像的内存地址指针。context 编码器的上下文指针。0 则表示API成功执行,否则执行失败。获取编码数据buffer的API。
taskHandle 任务句柄,负责算子与UCP架构的交互。outBuf 存放编码后数据的内存地址指针。0 则表示API成功执行,否则执行失败。outBuf 由VPU内部申请。