跳到主要内容

hi_pngd_chn

hi_venc_cu_prediction

说明

定义CU模式选择的倾向性配置结构体。

定义

typedef struct {
hi_op_mode pred_mode;
hi_u32 intra32_cost;
hi_u32 intra16_cost;
hi_u32 intra8_cost;
hi_u32 intra4_cost;
hi_u32 inter64_cost;
hi_u32 inter32_cost;
hi_u32 inter16_cost;
hi_u32 inter8_cost;
} hi_venc_cu_prediction;

成员

成员名称描述
pred_mode倾向性选择模式,支持自动模式、手动模式两种。
intra32_costIntra32倾向性调节,对应帧内预测32*32像素块尺寸模式,该值增大表示选择该模式的倾向性越小。 取值范围:[0, 15]。 默认值:8。 H.264该值无效。
intra16_costIntra16倾向性调节,对应帧内预测16*16像素块尺寸模式,该值增大表示选择该模式的倾向性越小。 取值范围:[0, 15]。 默认值:8。
intra8_costIntra8倾向性调节,对应帧内预测8*8像素块尺寸模式,该值增大表示选择该模式的倾向性越小。 取值范围:[0, 15]。 默认值:8。
intra4_costIntra4倾向性调节,对应帧内预测4*4像素块尺寸模式,该值增大表示选择该模式的倾向性越小。 取值范围:[0, 15]。 默认值:8。
inter64_costInter64倾向性调节,对应帧间预测64*64像素块尺寸模式,该值增大表示选择该模式的倾向性越小。 取值范围:[0, 15]。 默认值:8。 H.264该值无效。
inter32_costInter32倾向性调节,对应帧间预测32*32像素块尺寸模式,该值增大表示选择该模式的倾向性越小。 取值范围:[0, 15]。 默认值:8。 H.264该值无效。
inter16_costInter16倾向性调节,对应帧间预测16*16像素块尺寸模式,该值增大表示选择该模式的倾向性越小。 取值范围:[0, 15]。 默认值:8。
inter8_costInter8倾向性调节,对应帧间预测8*8像素块尺寸模式,该值增大表示选择该模式的倾向性越小。 取值范围:[0, 15]。 默认值:8。

父主题: VENC视频/JPEGE图像编码

hi_venc_intra_refresh

说明

P帧刷Islice控制参数。

定义

typedef struct {
hi_bool refresh_enable;
hi_venc_intra_refresh_mode intra_refresh_mode;
hi_u32 refresh_num;
hi_u32 req_i_qp;
} hi_venc_intra_refresh;

成员

成员名称描述
refresh_enable是否使能刷Islice功能。
- 0:不使能,默认值;
- 1:使能 。
intra_refresh_modeI宏块刷新模式,分为按行刷新和按列刷新。默认按行刷新。
refresh_num每次I宏块刷新行数或者列数,可以通过这个变量控制刷新的速度及码流的平稳程度。刷新行数或者列数越多,刷新的速度越快,但是码流平稳度越差;刷新的行数或者列数越少,刷新的速度越慢,但是码流平稳度越好。 需保证设置的refresh_num可以在一个GOP内完成Islice刷新,注意高级跳帧参考时只会在base层中的P帧(可被base层中其他帧的参考)进行刷新。refresh_num需满足表1中的计算公式。
req_i_qpI帧QP值。 hi_mpi_venc_set_intra_refresh接口与hi_mpi_venc_request_idr接口配合使用时,该值用于控制插入的IDR帧的质量,该值越小,质量越好,插入的IDR帧大小越大。 取值范围:[0, 51] ,默认值51。

参考信息

表1 refresh_num参数值计算公式

-

计算公式

备注

H.264,refresh_num默认值为:

(pic_height +lcu_size-1)>>6

  • 行:refresh_num*(max_refresh_frame_in_gop - 1) >= (pic_height + lcu_size - 1) /lcu_size
  • 列:refresh_num*(max_refresh_frame_in_gop - 1) >= (pic_width + lcu_size - 1) /lcu_size

计算公式中的/表示向下取整。

  • GOP内P帧刷Islice最大帧数max_refresh_frame_in_gop参数值取值说明:
    • 无高级跳帧参考时:max_refresh_frame_in_gop = gop;
    • 有高级跳帧参考时:max_refresh_frame_in_gop = (gop + (base*(enhance+1) -1))/(base*(enhance+1))。
  • 编码单元尺寸lcu_size参数值取值说明:
    • H.264时,该参数值固定为16;
    • H265时:
      • Atlas 200/500 A2推理产品,该参数值固定为32

H.265,refresh_num默认值为: ((pic_height + lcu_size - 1)/lcu_size) >> 2

父主题: VENC视频/JPEGE图像编码

hi_venc_intra_refresh_mode

说明

P帧刷Islice模式定义。

定义

typedef enum{
INTRA_REFRESH_ROW = 0, /* 按行刷新 */
INTRA_REFRESH_COLUMN, /* 按列刷新 */
INTRA_REFRESH_BUTT
} hi_venc_intra_refresh_mode;

父主题: VENC视频/JPEGE图像编码

hi_pngd_chn

说明

描述PNG图片解码通道。

定义

typedef hi_s32 hi_pngd_chn;

父主题: PNGD图像解码

hi_pngd_chn_attr

说明

定义PNGD解码通道属性结构体。

定义

typedef struct {
hi_u32 stream_que_cnt;
hi_u64 reserved[4];
} hi_pngd_chn_attr;

成员

成员名称描述
stream_que_cntPNGD图片缓存队列大小。预留参数。
reserved预留参数,为保证后续版本兼容性,请务必使用memset结构体方式进行清零初始化,在代码中必须避免显式对reserved字段进行访问。

父主题: PNGD图像解码

公共返回码

错误代码宏定义描述
0xA0028001-无效的Device ID。
0xA0028002-无效的channel ID。
0xA0028003HI_ERR_SYS_ILLEGAL_PARAM参数设置无效
0xA0028004HI_ERR_SYS_EXIST通道或资源已存在
0xA0028005HI_ERR_SYS_UNEXIST通道或资源不存在
0xA0028006HI_ERR_SYS_NULL_PTR空指针错误
0xA0028007-使能系统、Device或通道前未配置对应的参数。
0xA0028008HI_ERR_SYS_NOT_SUPPORT不支持的功能
0xA0028009HI_ERR_SYS_NOT_PERM操作不允许
0xA002800CHI_ERR_SYS_NO_MEM分配内存失败,如系统内存不足
0xA002800D-分配缓存失败,如申请的数据缓冲区太大。
0xA002800E-缓冲区中无数据。
0xA002800F-缓冲区中数据满。
0xA0028010HI_ERR_SYS_NOT_READY系统控制属性未配置
0xA0028011-地址错误。
0xA0028012HI_ERR_SYS_BUSY系统忙
0xA0028013-缓存小于实际需要的大小。
0xA0028014-硬件或软件处理超时。
0xA0028015HI_ERR_SYS_ERR内部系统错误。
0xA002803F-最大的返回码,该模块的错误码必须小于该值。

父主题: 返回码列表

音频相关返回码

表1 音频基础属性.API错误码

错误代码宏定义描述
0xa0148003HI_ERR_AIO_ILLEGAL_PARAM音频基础属性参数设置无效。
0xa0148006HI_ERR_AIO_NULL_PTR输入参数空指针错误。
0xa0148009HI_ERR_AIO_NOT_PERM操作不允许。
0xa0148010HI_ERR_AIO_NOT_READY音频基础系统未初始化。
0xa0148012HI_ERR_AIO_BUSY音频基础系统忙。
0xa014801dHI_ERR_AIO_REGISTER_ERR注册失败。

表2 音频输入错误码

错误代码宏定义描述
0xa0158001HI_ERR_AI_INVALID_DEV_ID音频输入设备号无效。
0xa0158002HI_ERR_AI_INVALID_CHN_ID音频输入通道号无效。
0xa0158003HI_ERR_AI_ILLEGAL_PARAM音频输入参数设置无效。
0xa0158006HI_ERR_AI_NULL_PTR输入参数空指针错误。
0xa0158007HI_ERR_AI_NOT_CFG音频输入设备属性未设置。
0xa0158009HI_ERR_AI_NOT_PERM操作不允许。
0xa015800cHI_ERR_AI_NO_MEM分配内存失败。
0xa015800dHI_ERR_AI_NO_BUF音频输入缓存不足。
0xa015800eHI_ERR_AI_BUF_EMPTY音频输入缓存为空。
0xa015800fHI_ERR_AI_BUF_FULL音频输入缓存为满。
0xa0158010HI_ERR_AI_NOT_READY音频输入系统未初始化。
0xa0158012HI_ERR_AI_BUSY音频输入系统忙。
0xa0158017HI_ERR_AI_NOT_ENABLED音频输入设备或通道没有使能。

表3 音频输出错误码

错误代码宏定义描述
0xa0168001HI_ERR_AO_INVALID_DEV_ID音频输出设备号无效。
0xa0168002HI_ERR_AO_INVALID_CHN_ID音频输出通道号无效。
0xa0168003HI_ERR_AO_ILLEGAL_PARAM音频输出参数设置无效。
0xa0168006HI_ERR_AO_NULL_PTR输出空指针错误。
0xa0168007HI_ERR_AO_NOT_ CFG音频输出设备属性未设置。
0xa0168009HI_ERR_AO_NOT_PERM操作不允许。
0xa016800cHI_ERR_AO_NO_MEM统内存不足。
0xa016800dHI_ERR_AO_NO_BUF音频输出缓存不足。
0xa016800eHI_ERR_AO_BUF_EMPTY音频输出缓存为空。
0xa016800fHI_ERR_AO_BUF_FULL音频输出缓存为满。
0xa0168010HI_ERR_AO_NOT_READY音频输出系统未初始化。
0xa0168012HI_ERR_AO_BUSY音频输出系统忙。
0xa0168017HI_ERR_AO_NOT_ENABLED音频输出设备或通道没使能。

表4 音频编码错误码

错误代码宏定义描述
0xa0178001HI_ERR_AENC_INVALID_DEV_ID音频设备号无效。
0xa0178002HI_ERR_AENC_INVALID_CHN_ID音频编码通道号无效。
0xa0178003HI_ERR_AENC_ILLEGAL_PARAM音频编码参数设置无效。
0xa0178004HI_ERR_AENC_EXIST音频编码通道已经创建。
0xa0178005HI_ERR_AENC_UNEXIST音频编码通道未创建。
0xa0178006HI_ERR_AENC_NULL_PTR输入参数空指针错误。
0xa0178007HI_ERR_AENC_NOT_CFG编码通道未配置。
0xa0178008HI_ERR_AENC_NOT_SUPPORT操作不被支持。
0xa0178009HI_ERR_AENC_NOT_PERM操作不允许。
0xa017800cHI_ERR_AENC_NO_MEM系统内存不足。
0xa017800dHI_ERR_AENC_NO_BUF编码通道缓存分配失败。
0xa017800eHI_ERR_AENC_BUF_EMPTY编码通道缓存空。
0xa017800fHI_ERR_AENC_BUF_FULL编码通道缓存满。
0xa0178010HI_ERR_AENC_NOT_READY系统没有初始化。
0xa0178040HI_ERR_AENC_ENCODER_ERR音频编码数据错误。

表5 音频解码错误码

错误代码宏定义描述
0xa0188001HI_ERR_ADEC_INVALID_DEV_ID音频解码设备号无效。
0xa0188002HI_ERR_ADEC_INVALID_CHN_ID音频解码通道号无效。
0xa0188003HI_ERR_ADEC_ILLEGAL_PARAM音频解码参数设置无效。
0xa0188004HI_ERR_ADEC_EXIST音频解码通道已经创建。
0xa0188005HI_ERR_ADEC_UNEXIST音频解码通道未创建。
0xa0188006HI_ERR_ADEC_NULL_PTR输入参数空指针错误。
0xa0188007HI_ERR_ADEC_NOT_CFG解码通道属性未配置。
0xa0188008HI_ERR_ADEC_NOT_SUPPORT操作不被支持。
0xa0188009HI_ERR_ADEC_NOT_PERM操作不允许。
0xa018800cHI_ERR_ADEC_NO_MEM系统内存不足。
0xa018800dHI_ERR_ADEC_NO_BUF解码通道缓存分配失败。
0xa018800eHI_ERR_ADEC_BUF_EMPTY解码通道缓存空。
0xa018800fHI_ERR_ADEC_BUF_FULL解码通道缓存满。
0xa0188010HI_ERR_ADEC_NOT_READY系统没有初始化。
0xa0188040HI_ERR_ADEC_DECODER_ERR音频解码数据错误。
0xa0188041HI_ERR_ADEC_BUF_LACK解码输入缓存空间不够。

父主题: 返回码列表

ISP系统控制返回码

表1 ISP API 错误码

错误代码宏定义描述
0xA01C8003HI_ERR_ISP_ILLEGAL_PARAM输入参数无效。
0xA01C8006HI_ERR_ISP_NULL_PTR空指针错误。
0xA01C8008HI_ERR_ISP_NOT_SUPPORT当前ISP不支持。
0xA01C800CHI_ERR_ISP_NO_MEM内存不足。
0xA01C8040HI_ERR_ISP_NOT_INITISP没有初始化。
0xA01C8041HI_ERR_ISP_MEM_NOT_INIT外部寄存器没有初始化。
0xA01C8042HI_ERR_ISP_ATTR_NOT_CFG属性未配置。
0xA01C8043HI_ERR_ISP_SNS_UNREGISTERSensor未注册。
0xA01C8044HI_ERR_ISP_INVALID_ADDR无效地址。
0xA01C8046HI_ERR_ISP_NO_INTISP无中断。

父主题: 返回码列表

在线提单