openH264参数总结

来源:互联网 发布:centos虚拟机不能上网 编辑:程序博客网 时间:2024/05/16 09:53

在基于webrtc项目中用到了openH264编码器,在实际应用中对编码器的关键参数优化给出一些总结和建议:

1.iRCMode:码率控制模式:

0值对应quality mode(RC_QUALITY_MODE)更侧重保证视频质量,码率稳定性控制稍差;1值对应bitrate mode (RC_BITRATE_MODE),更侧重保证码率的稳定性。 建议该参数设置为1iRCMode =1

2.  iTemporalLayerNum:时域SVC的层数

openH264源码中在FillDefault (SEncParamExt& param)中设置的iTemporalLayerNum=1

但是建议该参数修改设置为2iTemporalLayerNum=2;抗丢包能力强点

3.  bEnableDenoise:降噪

这个属于预处理过程,在编码前会进行一个双边滤波降噪过程调用函数CWelsPreProcess::BilateralDenoising(),进行降噪处理,开启该功能可以滤掉部分噪声,但是对编码质量也会有些失真,具体的编码性能效果参数还未测试。

建议pc端可以开,移动端可以关

 4.  bEnableBackgroundDetection:背景检测,主要用于VaaCalculation和CalculateBGD,用于BGD control,统计分析图像复杂度

       bEnableSceneChangeDetect:场景变换检测,当检测到场景发生变换时,会插入I帧

       bEnableAdaptiveQuant:自适应质量控制,

这三个参数对应的算法都是预处理过程,在编码前对视频帧进行一些检测,并利用检测算法得到的特征调控编码器的算法,影响编码性能。该算法会增加复杂度,但是也会改善编码性能,默认都是开启,建议该参数值都修改设置为默认参数1:

建议bEnableBackgroundDetection=1;        bEnableSceneChangeDetect = 1;       bEnableAdaptiveQuant= 0;

 5. iLoopFilterDisableIdc = 0 (offset(alpha/beta): 

去块滤波参数,iLoopFilterDisableIdc = 0表示开启去块滤波功能,主要滤除方块效应。但是offset(alpha/beta)参数影响去块滤波效果,不过影响也不明显,默认一般设置为0,建议该参数可以修改设置为0。建议 offset(alpha/beta):-0,-0;

 6. iMaxQp = 51;iMinQp = 0

该参数主要影响码率控制时调控的QP范围,可支持的范围是[0, 51],但是编码QP值太小或者太大,都会对图像质量和码率带来很大影响,为了防止极端图像质量情况的出现,一般设置为范围为[16,40],因此可以将参数修改设置为:

iMaxQp = 40; iMinQp = 16


0 0
原创粉丝点击