HEVC幀間預測原理

一、幀間預測基本原理

   主要原理是爲當前圖像的每個像素塊在之前已編碼圖像中尋找一個最佳匹配塊,該過程稱爲運動估計( Motion Estimation,ME)。其中用於預測的圖像稱爲參考圖(Reference Frame),參考塊到當前像素塊的位移稱爲運動向量(Motion Vector, MV),當前像素塊與參考塊的差值稱爲預測殘差( Prediction Residual )。

二、原理展開

    如果說按照每個像素去參考幀上面去找一個最匹配的像素,然後傳輸像素到參考像素的位移信息,那麼編碼處理的數據將非常大。在HEVC中處理是將圖像劃分成一個一個塊,這些塊就稱爲pu塊。然後基於塊去找匹配塊,每個塊傳輸一個塊的位移信息。 塊怎麼劃分的?塊是基於一定的準則進行,這個準則就是在編出來的碼流大小和編碼誤差取到一個平衡點。

  • 怎麼提高幀間預測的精度

  1. 1 CU塊劃分成PU

    爲了儘量提高運動補償的精度,HEVC幀間預測的編碼塊 支持更多的預測塊劃分模式。基於不同的劃分模式 ,每個 CU 可以經過不同的劃分,得到多個 PU。不同大小塊的組合 使得編碼器可以根據視頻內容自適應地選擇塊大小,例如對於多細節運動區域以及兩個具有不同運動形式的不規則物體的邊界處可以使用小塊,而靜止區域或大面積共同運動區域可以使用較大的塊。            

  1. 2、亞像素插值

    在實際場景中,由於物體運動的距離並不一定是像素的整數倍,因此需要將運動估計的精度提升到亞像素級別。H.265/HEVC沿用了,上一代標準H.264/AVC所使用的1/4 像素精度運動估計,並進一步發展了其亞像素插值算法。相比於H.264/AVC中的6抽頭濾波器(用於半像素精度)以及兩點內插(用於1/4像素精度)方法,H.265/HEVC使用了更多的鄰近像素點進行亞像素精度插值。 爲實現 1/K 像 素精度估計,必須將這些分數像素點的值近似內插出來,即對參考幀的行方向和列 方向進行 K 倍內插。如 K=2,須在 1/2 像素處進行插值,在插值後的圖像中進行搜 索,稱爲半像素精度估計。

  • 怎麼去減少幀間預測的數據量

       從前面的基本原理知道,幀間模塊生成的碼流數據包括兩個部分 一個是預測殘差一個運動向量mv。殘差由後面的變化 量化過程去減少數據量。

      mv則需要其他技術來減少數據量。hevc利用Merge 和AMVP 技術,利用時域或空域的mv來預測當前mv。 merge 不需要傳輸mv的殘差(mvd),AMVP 需要傳輸(mvd)。

      總的來說雖然運動估計的幀間預測大大壓縮了原始視頻的數據量,但仍然需要將運動矢 量本身的數據傳送到解碼器,若對每個塊的運動矢量都進行編碼,那麼編碼也極其 複雜。視頻圖像中的物體往往會覆蓋多個塊,基於運動的一致性,鄰近塊之間應該 存在着很強的相關性。利用此相關性在先前已編碼的鄰近塊的運動矢量進行預測, 此時,只需將當前運動矢量和預測運動矢量之間的差值傳輸到解碼器,就可以有效 地壓縮運動矢量的編碼比特數。

運動矢量的預測方式有兩種:空域預測和時域預測。

  •  空域預測方式

       空域候選從與當前PU相鄰的5個PU中,挑選最多4個PU的運動信息添加到候選列表中,如圖所示的A0、A1、B0、B1和B2。但並非所有的空域相鄰PU都可得,當相應的候選不可用,不被添加到候選列表中。加入候選列表的順序爲A1、B1、B0、A0和

B2。                    

  •    時域預測方式

    記當前預測單元爲Cur_PU,參考幀列表中距離當前幀最近的一個參考幀爲Col_Pic,其中“同一位置”上的預測塊爲Col PU, Col_PU的參考幀爲Col_Ref. tb分別表示當前圖像cur_ pic、同位圖像col_ pic 與二者參考圖像cur_ ref、col_ ref 之間的距離。則當前PU的時域候選MV可由下式計算:

       curMV =(td/tb)*colMV

其中colMV爲“同一位置”PU的MV。

同一位置”的選擇如下圖所示,首先選擇C3,若Co不可用則選擇H。

  •     1、merge技術

    merge顧名思義 就是融合,就是本來應該是每個pu一個mv,現在因爲pu之間的相關性,使得空域或者時域上面多個pu用的都是同一個mv了。多個pu就相當於融合一個pu了。

    Merge 模式下,HEVC 在時間域、空間域預測得到運動矢量,比特流中不含有任何運動信息,解碼端對當前編碼塊進行時間域及空間域的預測形成一個候選列表,由編碼器選擇其中最優的一個作爲當前塊的運動參數並編碼其索引值。另一個不同點是,MERGE模式側重於將當前塊與周邊已編碼的預測塊進行融合,形成運動參數一致的不規則區域,從而改進四叉樹分解中固定的方塊劃分的缺點。

     融合的目標候選塊有兩類:空間上相鄰的已編碼塊和時間上相鄰的已編碼塊。在空間相鄰塊中最多可以從5個不同位置上選擇其中的4個;在時間相鄰塊中最多可以從2箇中選擇一個。在候選塊的選擇過程中要去除其中運動參數重複的候選塊,同時還要去除其中使得與當前預測塊融合後形成一個等同於2N x 2N的預測塊的候選塊。當候選塊的個數不超過設定的最大值時,由已有的候選塊的運動參數產生新的運動參數或者用0進行填補。

  •        2、AMVP技術

        對於AMVP模式的幀間預測模式,運動向量的預測器同樣也是從幾個候選值中選取。在對運動向量進行差分編碼時,需要傳輸所選最優候選預測器的索引值以及運動向量的預測殘差。AMVP模式空域候選值與MERGE模式中空域候選值的位置一樣,不同的是,AMVP模式從{A0,A1}和{B0,B1, B2}中分別按順序選擇第一個可用的加入到候選預測器列表中。AMVP模式候選預測器的個數固定爲2個,當以上選擇的候選預測器少於2個時,則加入時域上相鄰塊的運動向量,選擇的方法與MERGE模式相同。最後,若候選預測器的個數仍然小於2,則用值爲0的運動向量填補。對於空間相鄰塊得到的運動向量預測器,根據其參考幀與當前參考幀的不同做相應的縮放。實際的運動向量需要通過運動估計得到,將預測器的數量減少到2可以降低運動估計的複雜度。同時,因爲在AMVP模式中還需要編碼運動向量的預測殘差,所以減少預測器的數量不會給編碼效率帶來太大影響。

  • AMVP怎麼得到MVD

依周邊預測的MV(MVP)爲起點 搜索出來失真最小的 點 計算到最佳mv。最佳mv - mvp。

 

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