視頻壓縮編碼的基本原理

1.預測編碼

1.1.預測編碼基本概念

預測法是最簡單和實用的視頻壓縮編碼方法,這時壓縮編碼後傳輸的並不是像素本身的取樣幅值,而是該取樣的預測值和實際值之差。

大量統計表明,同一副圖像的臨近像素之間有着相關性,或者說這些像素值相似。而且同幀圖像中鄰近行之間對應位置的像素之間也有較強的相關性。人們可以利用這些性質進行視頻壓縮編碼。

如圖,同一幀內的臨近像素中與 X 之間的距離近的像素,如 A 和 B 與 X 的相關性強,愈遠相關性愈弱,如 C、 D、E、 F 等像素。以 P 作爲預測值,按與 X 的距離不同給以不同的權值,把這些像素的加權和作爲 X的預測值,與實際值相減,得到差值 q。由於臨近像素之間相關性強, q 值非常小,達到壓縮編碼的目的。接收端把差值 q 與預測值(事先已定義好,比當前 X 早到達接收端像素,如A)相加,恢復原始值 X。歸納如下:

編碼端: X-A=q
解碼端: q+A=X

按以上原理可得預測編碼框圖,這種預測編碼也稱爲差分脈衝編碼(DPCM)。

其中, x(n)爲當前像素的實際值, p(n)爲其預測值, d(n)爲差值或殘差值。該差值經量化後得到殘差量化值 q(n)。預測值 p(n)經預測器得到,預測器輸入爲已存儲在預測器內前面的各像素和當前像素實際值,它們的加權和即爲下一個預測器輸出。

解碼輸出 x’(n)與原始信號 x(n)之間有個因量化而產生的量化誤差。

1.2.幀內預測編碼

預測模型可以是一維的,也可以是二維或多維的;可以是線性的,也可是非線性的。下面先討論一維線性預測方法

1.一維最佳預測

一維預測編碼器的原理框圖如下所示

信號間相關性越大,預測誤差方差越小於信號方差,壓縮效率也就越高

2.二維最佳預測

二維預測編碼器框圖如下所示

3.預測編碼的量化器

下圖是圖像差值信號的概率分佈

 

一般說圖像中平坦區域比突變區域多得多,例如人臉中,只有眼睛、鼻子、嘴等少量地方細節出現,其餘則爲平坦或緩變區域。

人眼視覺特性實驗表明,在亮度突變部分或變化大的部分,量化誤差大些不會使人眼敏感,可採取粗量化,量化節距可取大一些,這時雖然需多些比特數,但面積小總比特數不大;反之,在亮度變化緩慢區域,則應取細量化,但由於平坦區域 e(x,y)小,也不會增加很多比特數。總之,利用人眼這種掩蓋效應採用非線性(不均勻)量化,可使總碼率有所下降。

由於量化,預測編碼會產生過載、顆粒噪聲、僞輪廓以及邊沿忙亂等,它們都是由於量化值過小或不夠小及像素變化過快等跟不上變化造成的

4.二維預測編解碼器框圖

編碼器

解碼器

1.3.幀間預測編碼

一般而言,幀間預測編碼編碼效率比幀內更高。

1.單向預測

運動矢量的概念

 

單向預測幀間編碼框圖

利用上一幀的圖像經運動矢量位移作爲預測值的方法稱爲單向預測或單向時間預測

如何減小幀差和更精確預測當前像素是提高幀間壓縮編碼效率的關鍵之處

上述原理以像素爲單位進行預測,除了傳送幀差外,還增加了每個像素的運動矢量,編碼效率顯著下降。實際上,兩幀之差的物體運動一般是剛體的平移運動,位移量不大,因此往往把一幀圖像分成若干 M×N 塊,以塊爲單位分配運動矢量,大大降低總碼率。

2.雙向預測

有時,不只是利用前一幀像素預測,還需利用後一幀像素,即預測值爲:

前向參考幀預測當前幀稱爲前向運動補償,利用後向參考幀預測當前幀稱爲後向運動補償,利用前後向同時預測的就稱爲雙向預測運動補償。

雙向預測在實時通信中是不能應用的,例如會議電視、可視電話等,因爲後向預測在當前幀之後進行,會引入編碼時延。它可用在廣播電視系統中,如採用 MPEG 標準的編碼系統, 特別針對一些暴露區域,即 t-1 幀尚未暴露而 t+1 幀已呈現出來的區域。

單項和雙向預測舉例

雙向預測編碼可解決“暴露”問題, 即某物體在前一幀未顯示出來,但在後一幀卻“暴露”出來,雙向預測能更準確地找出運動矢量,並只有在視頻存儲、 VOD 等非實時通信及數字廣播電視中應用。 會議電視、可視電話等實時通信中不宜應用 B 圖像,因爲實時通信後一幀處在當前幀之後,當前幀編碼時它尚未出現。

3.運動估計

在幀間預測編碼中,由於活動圖像鄰近幀中的景物存在着一定的相關性。因此,可將活動圖像分成若干塊或宏塊,並設法搜索出每個塊或宏塊在鄰近幀圖像中的位置,並得出兩者之間的空間位置的相對偏移量,得到的相對偏移量就是通常所指的運動矢量,得到運動矢量的過程被稱爲運動估計。

運動矢量和經過運動匹配後得到的預測誤差共同發送到解碼端,在解碼端按照運動矢量指明的位置,從已經解碼的鄰近參考幀圖像中找到相應的塊或宏塊,和預測誤差相加後就得到了塊或宏塊在當前幀中的位置

前向和後向運動估計

 

H.264 編碼標準和以往採用的視頻壓縮標準很大的不同在於,在運動估計過程中採用了多參考幀預測來提高預測精度,多參考幀預測就是在編解碼端建一個存儲 M 個重建幀的緩存,當前的待編碼塊可以在緩存內的所有重建幀中尋找最優的匹配塊進行運動補償,以便更好地去除時間域的冗餘度

2.變換編碼

2.1.變換編碼的簡單理解

 比如在一個座標系中有A、B、C三個點,如果我們將座標軸調整一下,A、B、C三個點的座標值將會減小,達到壓縮的目的

2.2.變換編碼的概念

絕大多數圖像都有一個共同的特徵:平坦區域和內容緩慢變化區域佔據一幅圖像的大部分,而細節區域和內容突變區域則佔小部分。也可以說,圖像中直流和低頻區佔大部分,高頻區佔小部分。這樣,空間域的圖像變換到頻域或所謂的變換域,會產生相關性很小的一些變換系數,並可對其進行壓縮編碼,即所謂的變換編碼 。

變換中有一類叫做正交變換,可用於圖像編碼。自 1968 年利用快速傅立葉變換(FFT)進行圖像編碼以來,出現了多種正交變換編碼方法,如 K-L 變換、離散餘弦變換(DCT) 等等。其中,編碼編碼性能以 K-L 變換最理想,但缺乏快速算法,且不同圖像需計算不同的變換矩陣,因而只用來參考比較。 DCT 編碼性能略次於 K-L 變換,且具有快速算法,廣泛應用於圖像編碼。

DCT變換可以將L*L的圖像塊從空間域變換爲頻率域

一個實際8*8圖像塊

圖像塊經過DCT變換後的係數

信號經過DCT變換後需要進行量化。由於人的眼睛對圖像的低頻特性比如物體的總體亮度之類的信息很敏感,而對圖像中的高頻細節信息不敏感,因此在傳送過程中可以少傳或不傳送高頻信息,只傳送低頻部分。量化過程通過對低頻區的係數進行細量化,高頻區的係數進行粗量化,去除了人眼不敏感的高頻信息,從而降低信息傳送量。

合理選擇量化係數,對變換後的圖像塊進行量化後的結果如圖所示

DCT係數經過量化之後大部分經變爲0,而只有很少一部分系數爲非零值,此時只需將這些非0值進行壓縮編碼即可

PS:是不是很像-_-!!!

3.變換編碼與預測編碼的比較

變換編碼實現比較複雜,預測編碼的實現相對容易,但預測編碼的誤差會擴散。現實中,往往採用混合編碼方法,即對圖像先進行帶有運動補償的幀間預測編碼,再對預測後殘差信號進行 DCT變換。這種混合編碼方法已成爲許多視頻壓縮編碼國際標準的基本框架。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章