【視頻編解碼·學習筆記】1. 視頻壓縮、編碼初步認知


一、視頻信號的表示方法:RGB與YUV

在數字格式的視頻信號中,組成視頻的基本結構是一幀幀連續而相關聯的圖像。組成每一幀圖像的基本結構是成平面緊密排列的像素,每個像素代表圖像中的一個彩色的點。為了使得像素以彩色表示,每一個像素由顏色的三基色取不同的分量構成:

  • R:Red——紅色分量;
  • G:Green——綠色分量;
  • B:Blue——藍色分量;

使用這種方式表示彩色圖像的方式為RGB顏色空間。RGB顏色空間常用於顯示器系統。通過這種形式表示的圖像,每個像素的每一個顏色分量用1個字節表示,則可以表示256×256×256種不同的顏色。在常見的圖像格式中,如位圖(bmp)格式以RGB形式保存數據。

在實際的編解碼等視頻處理的過程中,YUV格式比RGB格式更為常用。在YUV格式中,一個像素由亮度分量和色度分量表示,每一個像素由一個亮度分量Y和兩個色度分量U/V組成。亮度分量可以與色度分量一一對應,也可以對色度分量進行采樣,即色度分量的總量少於亮度分量。

在YUV中之所以采用這樣的方式,主要是因為人的感官對亮度信息的敏感度遠高於對色度信息。因此相對於其他像素格式,YUV的最大優勢是可以適當降低色度分量的采樣率,並保證不對圖像造成太大影響。而且,使用這種方式還可以兼容黑白和彩色顯示設備。對於黑白顯示設備,只需要去除色度分量,只顯示亮度分量即可。

在YUV中常見的色度采樣方式有4:4:4、4:2:2和4:2:0等,如下圖所示:
1

二、視頻壓縮編碼

為什么需要對視頻編碼?

對於視頻數據而言,視頻編碼的最主要目的是數據壓縮。這是因為動態圖像的像素形式表示數據量極為巨大,存儲空間和傳輸帶寬完全無法滿足保存和傳輸的需求。例如,圖像的每個像素的三個顏色分量RGB各需要一個字節表示,那么每一個像素至少需要3字節,分辨率1280×720的圖像的大小為2.76M字節。

如果對於同樣分辨率的視頻,如果幀率為25幀/秒,那么傳輸所需的碼率將達到553Mb/s!如果對於更高清的視頻,如1080P、4k、8k視頻,其傳輸碼率更是驚人。這樣的數據量,無論是存儲還是傳輸都無法承受。因此,對視頻數據進行壓縮稱為了必然之選。

視頻信息為什么可以被壓縮?

視頻信息之所以存在大量可以被壓縮的空間,是因為其中本身就存在大量的數據冗余。其主要類型有:

時間冗余:視頻相鄰的兩幀之間內容相似,存在運動關系
空間冗余:視頻的某一幀內部的相鄰像素存在相似性
編碼冗余:視頻中不同數據出現的概率不同
視覺冗余:觀眾的視覺系統對視頻中不同的部分敏感度不同
針對這些不同類型的冗余信息,在各種視頻編碼的標准算法中都有不同的技術專門應對,以通過不同的角度提高壓縮的比率。

視頻壓縮編碼的基本技術?

為了專門處理視頻信息中的多種冗余,視頻壓縮編碼采用了多種技術來提高視頻的壓縮比率。其中常見的有預測編碼、變換編碼和熵編碼等。

1.預測編碼
預測編碼可以用於處理視頻中的時間和空間域的冗余。視頻處理中的預測編碼主要分為兩大類:幀內預測和幀間預測。
幀內預測:預測值與實際值位於同一幀內,用於消除圖像的空間冗余;幀內預測的特點是壓縮率相對較低,然而可以獨立解碼,不依賴其他幀的數據;通常視頻中的關鍵幀都采用幀內預測。

幀間預測:幀間預測的實際值位於當前幀,預測值位於參考幀,用於消除圖像的時間冗余;幀間預測的壓縮率高於幀內預測,然而不能獨立解碼,必須在獲取參考幀數據之后才能重建當前幀。

通常在視頻碼流中,I幀全部使用幀內編碼,P幀/B幀中的數據可能使用幀內或者幀間編碼。

2.變換編碼
目前主流的視頻編碼算法均屬於有損編碼,通過對視頻造成有限而可以容忍的損失,獲取相對更高的編碼效率。而造成信息損失的部分即在於變換量化這一部分。在進行量化之前,首先需要將圖像信息從空間域通過變換編碼變換至頻域,並計算其變換系數供后續的編碼。

在視頻編碼算法中通常使用正交變換進行變換編碼,常用的正交變換方法有:離散余弦變換(DCT)、離散正弦變換(DST)、K-L變換等。

3.熵編碼
視頻編碼中的熵編碼方法主要用於消除視頻信息中的統計冗余。由於信源中每一個符號出現的概率並不一致,這就導致使用同樣長度的碼字表示所有的符號會造成浪費。通過熵編碼,針對不同的語法元素分配不同長度的碼元,可以有效消除視頻信息中由於符號概率導致的冗余。

在視頻編碼算法中常用的熵編碼方法有變長編碼和算術編碼等,具體來說主要有上下文自適應的變長編碼(CAVLC)和上下文自適應的二進制算術編碼(CABAC)。

三、主流視頻編碼標准的發展

長期以來,視頻編碼標准主要由兩個國際組織負責制定:國際電信聯盟ITU-T和國際標准化組織ISO。目前影響力最強的視頻編碼標准基本均出自這兩個組織。
不同標准組織制定的視頻編碼標准的發展如下圖所示:
2

下面挑幾個重要的簡單介紹:

MPEG-1標准

MPEG-1是國際標准化組織ISO下屬的移動圖像專家組負責制定的早期視頻壓縮標准,主要用於視頻信息的存儲、廣播電視和網絡傳輸應用。其中在VCD中保存的視頻信息便使用MPEG-1標准進行壓縮,其碼率越為1.2~1.5Mb/s。

MPEG-1標准所支持的圖像類型與H.263類似,支持I、B、P幀類型

I幀:幀內編碼幀,采用幀內編碼,可作為P/B幀的參考幀;
P幀:前向預測幀,采用幀間編碼,以I/P幀作為參考幀;
B幀:雙向預測幀,參考前后兩個方向的參考幀;
在碼流的結構上,MPEG-1采用了與H.261類似的分層碼流結構。MPEG-1相比於H.261增加了條帶層,每一個宏塊所有的編碼操作只能在一個條帶內實現,條帶層可以有效防止編碼錯誤在一幀內擴散。MPEG-1標准的碼流結構如下圖所示:
3

MPEG-4標准

MPEG-4是ISO與1999年頒布的視頻編碼標准。同前任的MPEG-1和MPEG-2相比,MPEG-4更注重多媒體系統的交互性、靈活性和可擴展性。MPEG-4的標准編號為ISO-14496,也包括多個部分,如系統、視覺信息、音頻、一致性等。

MPEG-4中最為顯著的特點是采用了基於對象的編碼。在MPEG-4中,一個視頻對象主要定義為畫面中分割出來的不同物體,每個物體由三類信息描述:運動信息、輪廓信息和紋理信息。MPEG-4通過編碼這三類信息來實現對視頻對象的編碼。


免責聲明!

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



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