开始研究海思码率控制器各个参数对图像质量的影响,这里记录一下,各参数含义如下:
#ifndef __HI_COMM_RC_H__
#define __HI_COMM_RC_H__
#include "hi_defines.h"
#ifdef __cplusplus
#if __cplusplus
extern "C"{
#endif
#endif /* __cplusplus */
typedef HI_U32 HI_FR32;
typedef enum hiVENC_RC_MODE_E
{
VENC_RC_MODE_H264CBR = 1,
VENC_RC_MODE_H264VBR,
VENC_RC_MODE_H264AVBR,
VENC_RC_MODE_H264FIXQP,
VENC_RC_MODE_H264QPMAP,
VENC_RC_MODE_MJPEGCBR,
VENC_RC_MODE_MJPEGVBR,
VENC_RC_MODE_MJPEGFIXQP,
VENC_RC_MODE_H265CBR,
VENC_RC_MODE_H265VBR,
VENC_RC_MODE_H265AVBR,
VENC_RC_MODE_H265FIXQP,
VENC_RC_MODE_H265QPMAP,
VENC_RC_MODE_BUTT,
}VENC_RC_MODE_E;
typedef enum hiVENC_RC_QPMAP_MODE_E
{
VENC_RC_QPMAP_MODE_MEANQP= 0,
VENC_RC_QPMAP_MODE_MINQP ,
VENC_RC_QPMAP_MODE_MAXQP,
VENC_RC_QPMAP_MODE_BUTT,
}VENC_RC_QPMAP_MODE_E;
typedef struct hiVENC_ATTR_H264_FIXQP_S
{
HI_U32 u32Gop; /*H264的gop值,范围[1,65536]. */
HI_U32 u32SrcFrmRate; /* vi输入帧率 */
HI_FR32 fr32DstFrmRate ; /* 编码器输出帧率 */
HI_U32 u32IQp; /* I帧的QP值 */
HI_U32 u32PQp; /* P帧的QP值*/
HI_U32 u32BQp; /* B帧的QP值 */
} VENC_ATTR_H264_FIXQP_S;
typedef struct hiVENC_ATTR_H264_CBR_S
{
HI_U32 u32Gop; /*H364 CBR的GOP值 */
HI_U32 u32StatTime; /* 码率统计时间 */
HI_U32 u32SrcFrmRate; /* VI输入帧率 */
HI_FR32 fr32DstFrmRate ; /* 编码器输出帧率 */
HI_U32 u32BitRate; /* 平均码率,[2,102400] */
HI_U32 u32FluctuateLevel; /* 最大码率相对于平均码率的波动等级,保留;[1,5] */
} VENC_ATTR_H264_CBR_S;
typedef struct hiVENC_ATTR_H264_VBR_S
{
HI_U32 u32Gop; /*GOP值 */
HI_U32 u32StatTime; /* 码率统计时间 */
HI_U32 u32SrcFrmRate; /* vi输出帧率 */
HI_FR32 fr32DstFrmRate ; /* 编码器输出帧率 */
HI_U32 u32MaxBitRate; /* 最大码率 */
HI_U32 u32MaxQp; /* P B的最大QP值 */
HI_U32 u32MinQp; /* P B的最小QP值 */
HI_U32 u32MinIQp;