hi_mpi_venc_send_jpege_frame
hi_mpi_venc_set_jpeg_huffman_param
函数功能
设置编码通道的JPEGE huffman编码高级参数。
约束说明
本接口在编码通道创建之后、编码通道销毁之前调用。
函数原型
hi_s32 hi_mpi_venc_set_jpeg_huffman_param(hi_venc_chn chn, const hi_venc_jpeg_huffman_param *jpeg_huffman_param)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| chn | 输入 | 编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。 |
| jpeg_huffman_param | 输入 | huffman编码参数的指针。 |
返回值说明
- 0:成功
- 非0:失败,参见VENC视频编码/JPEGE图片编码返回码
hi_mpi_venc_get_jpeg_huffman_param
函数功能
获取编码通道的JPEGE huffman编码高级参数。
约束说明
- 本接口在编码通道创建之后、编码通道销毁之前调用。
- 不调用hi_mpi_venc_set_jpeg_huffman_param接口设置huffman编码高级参数时,返回默认的标准huffman编码参数。
函数原型
hi_s32 hi_mpi_venc_get_jpeg_huffman_param(hi_venc_chn chn, hi_venc_jpeg_huffman_param *jpeg_huffman_data)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| chn | 输入 | 编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。 |
| jpeg_huffman_data | 输出 | huffman高级参数的指针。 |
返回值说明
- 0:成功
- 非0:失败,参见VENC视频编码/JPEGE图片编码返回码
hi_mpi_venc_compact_jpeg_tables
函数功能
配置是否对高级参数huffman或QT表进行压缩。
约束说明
本接口在编码通道创建之后、编码通道销毁之前调用。
调用此接口后,如果huffman表或QT表的Y、Cb、Cr分量内容一致时,支持压缩。
函数原型
hi_s32 hi_mpi_venc_compact_jpeg_tables(hi_venc_chn chn, hi_u32 table_type, hi_bool enable)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| chn | 输入 | 编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。 |
| table_type | 输入 | 压缩类型,取值范围:仅支持0,表示huffman表数据和QT量化表数据都压缩。 |
| enable | 输入 | 是否压缩,0表示不压缩,1表示压缩。 |
返回值说明
- 0:成功
- 非0:失败,参见VENC视频编码/JPEGE图片编码返回码
hi_mpi_venc_send_jpege_frame
函数功能
发送原始图像进行图像编码,并支持配置编码结果的输出内存地址。
约束说明
- 在调用hi_mpi_venc_create_chn接口创建通道时,将参数hi_venc_chn_attr.venc_attr.buf_size参数值设置为0,本接口才有效,否则返回错误码HI_ERR_VENC_NOT_SUPPORT。
- JPEGE输入图像分辨率必须小于或等于编码通道的宽、高。
- 调用该接口发送图像,用户需要保证编码通道已创建且开启接收输入图片。
- 编码时,输入、输出内存均需要在调用hi_mpi_venc_get_stream接口获取结果之后才能进行释放。
- 图像编码,对输入、输出的约束请参见JPEGE功能及约束说明。
函数原型
hi_s32 hi_mpi_venc_send_jpege_frame(hi_venc_chn chn, const hi_video_frame_info *frame, const hi_img_stream* jpege_stream, hi_s32 milli_sec)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| chn | 输入 | 编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。 |
| frame | 输入 | 原始图像信息的指针。 |
| jpege_stream | 输入 | 用于指定编码结果的输出内存地址和长度。 输出内存首地址需满足16字节对齐,内存大小可以调用hi_mpi_venc_get_jpege_predicted_size获取,再可调用hi_mpi_dvpp_malloc接口申请输出内存。 |
| milli_sec | 输入 | 超时时间,单位是毫秒。 - -1:阻塞方式 - 0:非阻塞方式 - >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。 |
返回值说明
- 0:成功
- 非0:失败,参见VENC视频编码/JPEGE图片编码返回码
hi_mpi_venc_get_jpege_predicted_size
函数功能
预估JPEGE编码一帧图片所需的输出缓冲区大小。
函数原型
hi_s32 hi_mpi_venc_get_jpege_predicted_size(const hi_video_frame_info* frame, const hi_venc_jpeg_param* jpeg_param, hi_u32 *size)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| frame | 输入 | 原始图像信息的指针。 |
| jpeg_param | 输入 | JPEG协议编码通道的高级参数集合的指针,预留参数。 |
| size | 输出 | 输出缓冲区大小的指针,单位为Byte。 |
返回值说明
- 0:成功
- 非0:失败,参见VENC视频编码/JPEGE图片编码返回码
hi_mpi_venc_set_roi_attr
函数功能
设置H.264/H.265通道的ROI属性,用户可以通过配置ROI区域,对该区域的图像Qp进行限制,从而实现图像中该区域的Qp与其他图像区域的差异化。关于ROI编码功能的详细说明请参见ROI编码功能说明。
约束说明
-
本接口用于设置H.264/H.265通道的ROI属性。
-
本接口在编码通道创建之后,编码通道销毁之前设置。此接口在编码过程中被调用时,等到下一个帧时生效。
-
建议用户在创建通道之后,启动编码之前调用此接口,减少在编码过程中调用的次数。
-
建议用户在调用此接口之前先调用hi_mpi_venc_get_roi_attr接口,获取当前通道的ROI配置,然后再进行设置。
-
设置该接口后,如果当前帧判断编码为pskip 帧,以pskip帧效果优先。
-
设置该接口后,可能会出现感兴趣区域QP值不全为设置值的现象;这是因为在编码过程中,有些编码块的残差会为0,没有数据需要被量化,QP值不生效所致,属于正常现象,不影响编码效果。
函数原型
hi_s32 hi_mpi_venc_set_roi_attr(hi_venc_chn chn, const hi_venc_roi_attr *roi_attr)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| chn | 输入 | 编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。 |
| roi_attr | 输入 | ROI 区域参数指针。 |
返回值说明
- 0:成功
- 非0:失败,参见VENC视频编码/JPEGE图片编码返回码
ROI编码功能说明
ROI(Region Of Interest)编码:对感兴趣区域编码。
用户可以通过配置ROI区域,对该区域的图像Qp进行限制,从而实现图像中该区域的Qp与其它图像区域的差异化。系统现仅支持对H.264/H.265通道进行ROI设置。系统提供了8个感兴趣区域,可供用户同时使用。
8个区域可以互相叠加,且叠加时的优先级按照0~7的索引号依次提高,这里,叠加优先级是指发生叠加时,图像区域的最终Qp值的判定,最终的区域Qp值按照优先级最高的区域设定。ROI区域可配置绝对Qp和相对Qp两种模式。
- 绝对Qp:ROI区域的Qp为用户设定的Qp 值。
- 相对Qp:ROI区域的Qp为码率控制产生的Qp与用户设定的Qp偏移值的和。
以下图为例,假如图像Qp为25,即图像中所有宏块Qp值为25。Roi区域0设置为绝对Qp模式,Qp值为10,索引为0;Roi区域1设置为相对Qp模式,Qp为-10,索引为1。区域0的index小于区域1的index,所以在发生互相重叠的图像区域按高优先级的区域(区域1)Qp设置。区域0除了发生重叠的部分的Qp值等于10。区域1 的Qp值为25-10=15。

hi_mpi_venc_get_roi_attr
函数功能
获取H.264/H.265通道的ROI配置属性。关于ROI编码功能的详细说明请参见ROI编码功能说明。
约束说明
-
本接口用于获取H.264/H.265协议编码通道的指定索引号的ROI配置。
-
本接口在编码通道创建之后,编码通道销毁之前调用。
-
建议用户在创建通道之后,启动编码之前调用此接口,减少在编码过程中调用的次数。
函数原型
hi_s32 hi_mpi_venc_get_roi_attr(hi_venc_chn chn, hi_u32 idx, hi_venc_roi_attr *roi_attr)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| chn | 输入 | 编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。 |
| idx | 输入 | H.264/H.265协议编码通道ROI区域索引。 |
| roi_attr | 输出 | ROI区域参数指针。 |
返回值说明
- 0:成功
- 非0:失败,参见VENC视频编码/JPEGE图片编码返回码
在线提单