首页 > 技术知识 > 正文

码率参数:

inputType

outputType

u32Gop: I 帧间隔( 即I帧比例为1:(u32Gop-1) )。最好设置为编码帧率的整数倍,如果不是整数倍, I 帧的分布在时间上会不均匀,导致瞬时码率波动;中高码率下 Gop 可以等于编码帧率;低码率下 Gop需要适当加大。

取值范围:[1, 65536]

u32BitRate:平均 bitrate,以 kbps 为单位。

取值范围:[2, 102400]

u32StatTime: 统计时间。一般场景设置为( Gop/输出帧率)即可;关注长期码率稳定,短期波动不在意的可以设置大一些。

取值范围:[1, 60]

u32FluctuateLevel : 波动等级越大,系统允许码率的波动范围更大。如果波动等级设置高,对于一些图像复杂,变化剧烈的场景,图像质量可能会更平稳,适用于网络带宽富裕的场景;如果波动等级设置低,编码的码率会比较平稳,对于一些图像复杂,变化剧烈的场景,图像质量可能不如高波动等级,适用于带宽不富裕的场景。

取值范围:[0, 5]。推荐使用波动等级 0 即可

fr32DstFrmRate : 编码器输出帧率。

取值范围:(0, 30]

u32MinIprop: 最小 IP 帧码率的比值。所有场景保持默认值(默认 1)就可以。

取值范围:[1,100]

u32MaxIprop : 最大 IP 帧码率的比值。如果 I 帧大小超出u32MaxIprop 倍 P帧,则 I 帧 QP 会增加,从而限制 I帧大小。限制静止场景 I 帧过大,导致可能会引起呼吸效应(画面边缘的部分有进出画面的现象)。

当 u32MinIprop 被调整较大时,会导致 I帧清晰,P帧模糊。当u32MaxIprop 被调整较小时,会导致 I 帧模糊, P 帧清晰。在正常情况下不建议对 IP 大小比进行约束,避免带来呼吸效应和码率波动。

取值范围:[u32MinIprop,100]。默认20

u32MaxQp : 最大 QP, 限制最差的图像质量(即运动的时候),u32MaxQp越小,运动时的码率越大。

建议值:[40, 51]

u32MinQp : 最小 QP, 限制最好的图像质量(即静止的时候,),当 QP 调整到这个值的时候,不会再往下调,可能会导致码率不足;主要用于节省简单静止场景下的码率。u32MinQp越小,静止时的码率越大。

建议值:[10, 20]

s32IPQPDelta : 表示的是平均 Qp 值与当前 I 帧 Qp 的差值,此参数可为负值。可用于调整 I 帧过大和呼吸效应。场景切换时调整过慢也可以相应降低该值来调节。

s32QualityLevel : 质量等级,数值越小表示质量越好。质量越好, 动静变化,场景切换时 QP 过调整的幅度,过调整有助于加快码率冲高后的回归。不建议设为1,能够减少图像质量损失,但是补偿的时间会增加。

取值范围:[1,5], 默认 3

s32MaxReEncodeTimes : 最大重编次数, 对保证码率稳定十分有效。一般场景默认值就足够。

取值范围:0,3],默认 2

u32MinIQp : I 帧的最小 QP,希望在图像静止或小运动的时候节省码率。

取值范围: [u32MinQp, u32MaxQp)

u32RowQpDelta : 基于行的宏块级码率控制,每一行宏块的起始 Qp 相对于帧起始Qp 的波动幅度值。对于码率波动较严格的场景下,可以尝试将此参数调大,实现更加精确的码率控制,但大运动场景会让调整 QP的反应变慢, 大运动码率波动反而变大。在高码率时,该值推荐为 0;中码率时推荐该值为 0 或 1;低码率时推荐该值为 2~5。

注:

QP:固定量化模式中使用的量化值,范围0~51,0为无损压缩,默认26。

调节码率步骤:

(1) 适当调小u32BitRate

建议参数:

高码率时u32BitRate一般使用1536,中低码率可以使用1024以下

(2) 设置较大的 Gop,同时码率统计时间 u32StatTime 与 Gop 值设置相匹配。

建议参数:

高码率时Gop设置为10~30,u32StatTime则设置为1秒

中码率时Gop可设为与编码器输出帧率相等(25 / 30), 32StatTime置为1秒

低码率时Gop可设为60~120,32StatTime置为2~4秒

(3) 适当降低帧率(30或以下)

(4) 打开基于纹理的宏块级码率控制

在高码率时,该值推荐为 0;中码率时推荐该值为 0 或 1;低码率时推荐该值为 2~5;在项目里统一使用3默认值。

(5) 呼吸效应与场景切换时调整过慢相应调低s32IPQPDelta

(6) 调节u32MaxQp, u32MinQp确定码率在静止与运动状态下的大小

根据实际情况去调节

(7) 相应去调节其他参数

u32MinIprop, u32MaxIprop使用默认的1、20即可,

调节剩下的其他参数

HI_U32 highVideo[16] = {0, 0,10, 1536, 1, 0, 25, 1, 20, 43, 24, -8, 3, 3, 29, 3};

HI_U32 middleVideo[16] = {0, 0, 25, 512, 1, 0, 25, 1, 20, 42, 21, -8, 2, 3, 26, 3};

HI_U32 lowVideo[16] = {0, 0, 60, 512, 2, 0, 30, 1, 20, 40, 15, -8, 2, 3, 20, 3};

原文:https://blog.csdn.net/u013115811/article/details/103500994

猜你喜欢