hbVPVideoEncode
hbVPVideoEncode 算子和 hbVPVideoDecode 算子的context上下文描述句柄,句柄包含了Video Processing Unit上运行所必要的描述信息,可重复使用。
视频编码类型枚举。
-
成员
码率控制模式枚举。
-
成员
H.264编码协议恒定码率参数。
-
成员
H.264编码协议可变码率参数。
-
成员
H.264编码协议固定量化参数。
-
成员
H.264编码协议QP映射参数。
-
成员
H.264编码协议平均可变码率参数。
-
成员
H.265编码协议恒定码率参数,参数范围限制同hbVPVideoH264Cbr。
H.265编码协议可变码率参数,参数范围限制同hbVPVideoH264Vbr。
H.265编码协议平均可变码率参数,参数范围限制同hbVPVideoH264Avbr。
H.265编码协议固定量化参数,参数范围限制同hbVPVideoH264FixQp。
H.265编码协议中的QP映射参数。其宏块大小为 32x32,每个宏块需要指定一个QP值。
qpMapArrayCount 参数的计算公式为 (ALIGN64(width)>>5) * (ALIGN64(height)>>5),其取值范围为 [256x128/(32x32), 8192x4096/(32x32)]。其余参数范围限制同hbVPVideoH264QpMap。
Video Processing Unit编码协议码率控制参数。
-
成员
GOP结构参数。
-
成员
Video编码的参数。
-
成员
获取编码器默认的编码参数,其中pixelFormat 默认为 HB_VP_IMAGE_FORMAT_YUV420, width 和 height 默认为0,需根据实际尺寸指定。
outBufCount 默认为5,backend 默认为 HB_UCP_VPU_CORE_0, decodingRefreshType 默认为2, gopPresetIdx 默认在 J6E/M/P 中为2, J6B 中为9。码率模式由传入的 videoType 参数决定,
当 videoType=HB_VP_VIDEO_TYPE_H264 时,码率控制模式为 HB_VP_VIDEO_RC_MODE_H264_CBR,具体参数见参考 hbVPVideoH264Cbr 结构体中的推荐参数。
当 videoType=HB_VP_VIDEO_TYPE_H265 时,码率控制模式为 HB_VP_VIDEO_RC_MODE_H265_CBR,具体参数见参考 hbVPVideoH265Cbr 结构体中的推荐参数。
- 参数
- [in]
param编码参数。
- [in]
- 返回值
- 返回
0则表示API成功执行,否则执行失败。
- 返回
- 接口限制说明
- 在调用接口前,需要将 videoType 指定为
HB_VP_VIDEO_TYPE_H264或HB_VP_VIDEO_TYPE_H265。 - 设备内存限制可能导致实际支持的最大分辨率低于
8192x4096。
- 在调用接口前,需要将 videoType 指定为
创建编码器上下文API,创建前需要提前将context初始化为nullptr。
- 参数
- [out]
context编码器上下文。 - [in]
param编码参数。
- [out]
- 返回值
- 返回
0则表示API成功执行,否则执行失败。
- 返回
- 接口限制说明
- Video Processing Unit每个核最高支持创建32路编码的上下文,但受限于设置内存大小,实际支持创建的数量可能小于32。
- J6B 的最大上下文数量可通过配置文件
/userdata/vpu_instance.cfg进行设置。若文件不存在或配置值超出 (1,32] 范围,系统将使用默认值16,设置在重启系统后生效。 - 编码器不支持包含B帧的后向参考帧的码流编码。
- 由于硬件限制,H264码流内部会以
16x16为单位进行编码处理,对于未对齐的数据,编码器会用底部像素值进行填充。
释放编码器上下文API。
- 参数
- [in]
context编码器上下文。
- [in]
- 返回值
- 返回
0则表示API成功执行,否则执行失败。
- 返回
调用Video Processing Unit编码API。
- 参数
- [out]
taskHandle任务句柄,负责算子与UCP架构的交互。 - [in]
srcImg输入YUV图像。 - [in]
context编码器的上下文。
- [out]
- 返回值
- 返回
0则表示API成功执行,否则执行失败。
- 返回
- 接口限制说明
- 由于Video Processing Unit硬件限制,Video Processing Unit编码或解码时最大支持同时提交31个任务。
- 仅支持使用异步方式创建任务。
- 为了避免系统资源浪费并提高Video Processing Unit编码性能,建议复用输入地址。
获取编码数据buffer的API。
- 参数
- [out]
outBuf输出码流文件。 - [in]
taskHandle任务句柄,负责算子与UCP架构的交互。
- [out]
- 返回值
- 返回
0则表示API成功执行,否则执行失败。
- 返回
- 接口限制说明
- 输出缓冲区
outBuf由Video Processing Unit内部申请。 - 当任务成功完成后,输出缓冲区中的数据有效;在任务释放阶段,输出缓冲区将被释放。
- 输出缓冲区
