VVC/H.266幀間模式(一):Extended merge prediction

在VTM6.0中,通過按順序包括以下五種類型的候選者來構造Merge候選者列表

1)從空域相鄰CU獲取空域MVP

2)從同位CU獲取時域MVP

3)從一張FIFO(先進先出)表中獲取基於歷史記錄的MVP

4)Pairwise average MVP(成對平均MVP)

5)填充零MVP

在VTM6.0中,merge列表的尺寸由slice頭信息傳送,最大允許merge列表尺寸是6。對於merge模式下的每個CU代碼,使用截斷的一元二進制碼(TU)對最佳合併候選者的索引進行編碼。

一、空域候選列表推導

空域合併候選列表的推導和HEVC的一樣,最多可選出4個候選,候選塊位置如下圖20所示,選擇的順序爲A0,B0,B1,A1,B2。只有其他位置不可用時才考慮B2。在添加位置A1上的候選對象之後,對剩餘的候選對象的添加進行冗餘檢查,以確保從列表中排除具有相同運動信息的候選對象,從而提高了編碼效率。爲了降低計算複雜度,在提到的冗餘檢查中並未考慮所有可能的候選對。 而是僅考慮在圖21中用箭頭鏈接的對,並且僅在用於冗餘檢查的相應候選對象具有不同運動信息時纔將候選對象添加到列表中。

在這裏插入圖片描述在這裏插入圖片描述

二、時域候選列表推導

merge列表中僅加入一個時域候選,而且時域候選MV要進行運動伸縮,伸縮方式和HEVC一樣。

如下圖所示,在候選C0和C1之間選擇時間候選的位置。如果位置C0的CU不可用,或進行幀內編碼或在CTU的當前行之外,則使用位置C1。 否則,在時域merge候選列表的推導中使用位置C0,記得MV要進行伸縮。

在這裏插入圖片描述

三、基於歷史記錄的候選列表推導(HMVP)

在空域MVP和TMVP(時域MVP)之後,將基於歷史記錄的MVP(HMVP)合併候選者添加到合併列表。在該方法中,先前編碼的塊的運動信息被存儲在表格中,並且用作當前CU的MVP。 在編碼/解碼過程中將維護具有多個HMVP候選者的表。遇到新的CTU行時,將重置(清空)表。每當存在非子塊幀間編碼的CU時,相關聯的運動信息就會作爲新的HMVP候選者添加到表的最後一項。

在VTM6中,HMVP表大小S設置爲6,這表示最多可以將6個基於歷史記錄的MVP(HMVP)候選者添加到表中。當將新的運動候選者插入到表中時,利用約束的先進先出(FIFO)規則,其中首先應用冗餘檢查以發現表中是否存在相同的HMVP。 如果找到,則從表格中刪除相同的HMVP,然後將所有HMVP候選者向前移動,HMVP候選者可以在合併候選者列表構建過程中使用。 按順序檢查表中最新的幾個HMVP候選者,並將其插入到TMVP候選者之後的候選者列表中,同樣進行冗餘檢查。

爲了減少冗餘檢查操作的數量,引入了以下簡化:

  • 將用於merge列表生成的HMVP候選數設置爲(N <= 4)? M:(8 – N),其中N表示merge列表中現有候選的數量,M表示表中可用的HMVP候選的數量。
  • 一旦可用merge候選者的總數達到最大允許的merge候選者減去1,則HMVP的merge候選者列表構建過程終止。

四、成對平均合併候選者推導

通過平均現有合併候選列表中的預定義候選對來生成成對平均候選,並且將預定義對定義爲{(0,1),(0,2),(1、2),(0、3), (1、3),(2、3)},其中數字表示合併候選者列表的合併索引。爲每個參考列表分別計算平均運動矢量。 如果兩個運動矢量在一個列表中均可用,則即使這兩個運動矢量指向不同的參考圖片,也要對其平均。如果只有一個運動矢量可用,則直接使用它; 如果沒有運動矢量可用,則使該列表無效。

當添加成對平均合併候選者後合併列表不完整時,最後會插入零向量,直到遇到最大合併候選者數目爲止。

五、總結

在merge候選列表的構建中,時域和空域候選和HEVC區別不大,VVC新增了第三種和第四種MVP的填充方式,計算複雜度有所提升。

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