hi_venc_h265_avbr_param

Description

Defines the advanced AVBR parameters of an H.265 encoding channel.

Prototype

typedef struct {
    hi_s32 chg_pos;
    hi_u32 max_i_proportion;
    hi_u32 min_i_proportion;
    hi_s32 max_reencode_times;
    hi_s32 min_still_percent;
    hi_u32 max_still_qp;
    hi_u32 min_still_psnr;
    hi_u32 max_qp;
    hi_u32 min_qp;
    hi_u32 max_i_qp;
    hi_u32 min_i_qp;
    hi_u32 min_qp_delta;
    hi_u32 motion_sensitivity;
    hi_bool qpmap_en;
    hi_venc_rc_qpmap_mode qpmap_mode;
}hi_venc_h265_avbr_param;

Members

max_bit_rate indicates the maximum bit rate in the motion scenario. It is a member variable in hi_venc_chn_attr.rc_attr and is set during VENC channel creation. max_bit_rate*chg_pos*min_still_percent indicates the minimum bit rate in the static scenario.

The target bit rate is adjusted between the maximum bit rate and the minimum bit rate based on the motion degree. max_qp and min_qp are used to control the image quality. The bit rate control takes the QP clamping as the highest priority, and bit rate control becomes invalid if the range of [min_qp, max_qp] is exceeded.

Member

Description

chg_pos

Ratio of the bit rate when the QP starts to be adjusted relative to the maximum bit rate.

Value range: [50, 100]

Default value: 65

min_i_proportion

Reserved.

max_i_proportion

Maximum ratio of bits allocated to I-frames and P-frames.

Value range: [1, 100]

Default value: 100

max_reencode_times

Number of times that each frame is re-encoded. If it is set to 0, re-encoding is disabled.

Value range: [0, 3]

Default value: 2

min_still_percent

Minimum percentage of the target bit rate in the still state. If it is set to 100, AVBR does not adaptively decrease the target bit rate in the still state.

Value range: [5, 100]

Default value: 25

max_still_qp

Maximum QP of I-frames in the still state.

Value range: [min_i_qp, max_i_qp]

Default value: 35

min_still_psnr

Reserved.

max_qp

Maximum QP value of P-frames.

Value range: [0, 51]

Default value: 51

min_qp

Minimum QP value of P-frames.

Value range: [0, max_qp]

Default value: 24

max_i_qp

Maximum QP value of I-frames.

Value range: [0, 51]

Default value: 51

min_i_qp

Minimum QP value of I-frames.

Value range: [0, max_i_qp]

Default value: 24

min_qp_delta

Difference between the minimum frame-level QP and the minimum CU-level QP.

I-frame: FrameLevelMinQp = min_qp_delta + min_i_qp

P-/B-frame: FrameLevelMinQp= min_qp_delta+min_qp

Value range: [0, 4]

Default value: 0

motion_sensitivity

Motion sensitivity.

Value range: [0, 100]

Default value: 100

qpmap_en

Whether to enable the QpMap function. Only the Atlas inference products support this parameter. For other product models, qpmap_en is reserved and not supported.

The options are as follows:

  • HI_TRUE: enabled
  • HI_FALSE: disabled

qpmap_mode

Method of assigning the QP values for CU32 and CU64 when the VENC channel uses the QpMap mode. Only the Atlas inference products support this parameter. For other product models, qpmap_mode is reserved and not supported.