1. 程式人生 > >openH264引數總結

openH264引數總結

在基於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