在基於webrtc專案中用到了openh264編碼器,在實際應用中對編碼器的關鍵引數優化給出一些總結和建議:
1.ircmode
:位元速率控制模式:
建議該引數設定為1:
ircmode =1
;2. itemporallayernum
:時域svc
的層數openh264原始碼中在filldefault (sencparamext& param)中設定的itemporallayernum=1
;但是建議該引數修改設定為2:
itemporallayernum=2
;抗丟包能力強點
3. benabledenoise:降噪
這個屬於預處理過程,在編碼前會進行乙個雙邊濾波降噪過程呼叫函式cwelspreprocess::bilateraldenoising(),進行降噪處理,開啟該功能可以濾掉部分雜訊,但是對編碼質量也會有些失真,具體的編碼效能效果引數還未測試。
建議pc
端可以開,移動端可以關
4.
benablebackgrounddetection
:背景檢測,主要用於vaacalculation和calculatebgd,用於bgd control,統計分析影象複雜度
benablescenechangedetect
:場景變換檢測,當檢測到場景發生變換時,會插入i幀
benableadaptivequant
:自適應質量控制,
建議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
openh264碼控筆記一(整體框架)
計算碼控時會用到如下的一些引數 sad sum of absolute difference sae sum of absolute error 絕對誤差和 satd sum of absolute transformed difference 即hadamard變換後再絕對值求和 ssd sum ...
openh264碼控筆記二(幀級QP的計算)
以下都是rc bitrate mode模式的處理流程。openh264用的碼控用的是r q模型,使用歷史幀的平均qp sad 幀長,來 當前幀的qp。計算公式如下 qstep intracomplexity cmplxratio targetbits 100 intracomplexity引數根據上...
x264 param t引數註解
原始 不詳 typedef struct x264 param t cpu 標誌位 unsigned int cpu int i threads 並行編碼多幀 int b deterministic 是否允許非確定性時執行緒優化 int i sync lookahead 執行緒超前緩衝 int i ...