視頻編碼器工作流程


1.視頻編碼器工作流程圖

a.視頻為什么能進行壓縮?

因為存在時間和空間冗余...

b.為甚要有編碼器的存在?

隨着市場的需求,在盡可能低的存儲情況下,獲得好的圖像質量和低寬帶圖像快速的傳輸...對視頻進行壓縮...

c.編碼器的輸入和輸出是什么?

輸入:一幀幀的圖像(包括各種格式),編碼器寄存器的配置;輸出:碼流,數據,sps...??

d.幀內預測:幀內預測模式中,預測塊是基於已編碼的重建塊和當前塊形成的...

通過幀內相鄰的已經重建的宏塊(左邊、左上、上邊)預測當前編碼宏塊,這樣做既可以有效的抑制了因運動補償產生的誤碼擴散,同時提高了幀

內預測的預測精度。

e.幀間預測:利用已編碼的視頻幀和基於塊的運動補償的預測模式。運動補償:根據求出的運動矢量,找到當前幀的塊是從前一幀的哪個位置移動過來的,從而得到當前幀像素塊的預測值。

f.DCT(離散余弦變換):將圖像的低頻信號集中在DCT變換后的左上角的直流系數上,圖像變換后的高頻信號分配到其他交流系數上,視頻圖像的大部分信號集中在低頻區域。

g.量化:DCT之后大部分為浮點數據,在不降低重建后的視頻質量的前提下,盡可能減少視頻圖像的編碼長度,量化中丟棄一些不影響視頻重建的不必要的數據。

FQ:位量化后的值,QP:量化寬度,y:DCT變換后的原始數據,round:取整函數

QP:取較大值時,FQ有較小的動態范圍,經過熵編碼后,碼字較小,但依據FQ重建出來的參考幀會丟失較多參考細節,影響視頻質量。反之能得到較清晰的視頻圖像。

所以QP的值需要根據具體的帶寬以及緩沖區的充盈度,在編碼輸出長度和圖像質量之間找到一個平衡點。

量化為0的部分是無法還原的。

h.熵編碼:提高視頻壓縮比,屬於無損壓縮,因此通過熵編碼壓縮后的視頻信息可以在解碼端無失真的重建出原始視頻圖像。(huffman,算數編碼,游程編碼)

I.按LCU行划分slice,h.265 64x64的最大宏塊   h.264 16x16的最大宏塊  ;按編碼后的字節數划分slice 片與片之間會有台階。

J.編碼流程圖:

h.VOP:視頻對象平面(VOP,Video Object Plane)是視頻對象(VO)在某一時刻的采樣.

PEG-4在編碼過程中針對不同VO采用不同的編碼策略,即對前景VO的壓縮編碼盡可能保留細節和平滑;對背景VO則采用高壓縮率的編碼策略,甚至不予傳輸而在解碼端由其他背景拼接而成。

編碼類型:

1. 內部VOP(I-VOP),只用到當前幀的信息編碼;強制I幀的情況
2. 單向預測VOP(P-VOP),利用它前面的I或者P-VOP利用運動補償技術來編碼;
3.雙向預測VOP(B-VOP),利用前面和后面的I或者P-VOP利用運動補償技術來編碼。
4.全景 VOP( S-VOP)用來編碼 sprite對象


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM