---
title: hi_venc_h264_qvbr_param
description: "定义H264协议编码通道QVBR码率控制模式的高级参数。"
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/aadgc/aclcppdevg_03_1516.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/aadgc/aclcppdevg_03_1516.html
indexId: ed824305e68c04e9cac18583c57e06026927caff785647cb482fd8b44556b121105
---
# hi_venc_h264_qvbr_param

#### 说明

定义H264协议编码通道QVBR码率控制模式的高级参数。


#### 定义

```
typedef struct {
hi_u32
max_i_proportion;
hi_u32
min_i_proportion;
hi_s32
max_reencode_times;
hi_bool
qpmap_en;
hi_u32
max_qp;
hi_u32
min_qp;
hi_u32
max_i_qp;
hi_u32
min_i_qp;
hi_s32
max_bit_percent;
hi_s32
min_bit_percent;
hi_s32
max_psnr_fluctuate;
hi_s32
min_psnr_fluctuate;
} hi_venc_h264_qvbr_param;
```


#### 成员

当实时统计的PSNR小于max_psnr_fluctuate时，适当增加目标码率，最大码率=target_bit_rate* max_bit_percent。

当实时统计的PSNR大于max_psnr_fluctuate时，适当减小目标码率，最小码率=target_bit_rate* min_bit_percent。

根据当前PSNR的不同，目标码率会在最大码率和最小码率间调整，当PSNR值范围超过[min_psnr_fluctuate-4,max_psnr_fluctuate+4]∩[20,40]时，PSNR不再起作用，码率会在最大码率和最小码率间调整。

max_qp，min_qp用于控制图像的质量范围，码率控制以QP钳位为最高优先级，超出min_qp，max_qp范围内码率控制将失效。

码率浮动上下限的优先级高于PSNR的优先级，例如，当码率浮动到上限依然不能满足PSNR要求，则码率不会再继续上调。

target_bit_rate参数在创建VENC通道时设置，是hi_venc_chn_attr.rc_attr结构体内的成员变量。


| 成员名称 | 描述 |
| --- | --- |
| min\_i\_proportion | 预留参数，暂不支持。 |
| max\_i\_proportion | 最大IP帧码率的比值。 取值范围：[1,100]。 默认值：100。 |
| max\_reencode\_times | 每帧重编码次数。0表示不进行重编码。 取值范围：[0, 3]。 默认值：2。 |
| qpmap\_en | 预留参数，暂不支持。 |
| max\_qp | P、B帧的最大QP。 取值范围：[min\_qp, 51]。 默认值：51。 |
| min\_qp | P、B帧的最小QP。 取值范围：[0, 51]。 默认值：16。 |
| max\_i\_qp | I帧的最大QP。 取值范围：[min\_i\_qp, 51]。 默认值：51。 |
| min\_i\_qp | I帧的最小QP。 取值范围：[0, 51]。 默认值：16。 |
| max\_bit\_percent | 码率百分比上限。 取值范围：[min\_bit\_percent, 180]。 默认值：110。 |
| min\_bit\_percent | 码率百分比下限。 取值范围：[30, 180]。 默认值：45。 |
| max\_psnr\_fluctuate | Psnr上限。 取值范围：[min\_psnr\_fluctuate, 40]。 默认值：40。 |
| min\_psnr\_fluctuate | Psnr下限。 取值范围：[18, 40]。 默认值：23。 |
