海思视频码率参数解析
码率参数:
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
- 分享
- 举报
-
浏览量:1971次2019-10-15 16:27:29
-
浏览量:990次2023-12-01 12:14:35
-
浏览量:7803次2017-11-16 16:26:57
-
浏览量:1537次2020-08-04 20:27:54
-
浏览量:1041次2023-10-25 14:05:22
-
浏览量:2489次2020-06-12 19:39:57
-
浏览量:2372次2020-05-22 19:25:12
-
浏览量:4761次2021-09-22 16:21:48
-
浏览量:3048次2018-09-04 15:41:09
-
浏览量:916次2024-01-11 15:54:09
-
浏览量:1465次2023-06-29 09:27:40
-
浏览量:5239次2020-07-31 11:54:44
-
浏览量:6345次2019-12-07 15:40:17
-
浏览量:3258次2019-12-09 17:51:38
-
2024-01-11 15:44:19
-
浏览量:1219次2024-02-22 15:52:02
-
浏览量:3861次2020-08-24 21:15:04
-
浏览量:7518次2019-12-24 15:28:41
-
浏览量:1999次2022-02-04 09:00:28
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
在学了在学了!
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明