H.266/VVC中的幀內預測

67種幀內預測模式

爲了能夠刻畫視頻中任意邊界方向特徵,VTM4中的幀內預測角度模式增加到了65種(HEVC角度模式有33種)。如下圖所示,新增的角度模式用紅色虛線表示。同時planar和DC模式和HEVC仍相同。這些角度模式會被用於各種尺寸塊各個分量的幀內預測。
在這裏插入圖片描述
同時,在VTM4中,對於非方形的塊進行幀內預測時,一些傳統的角度預測模式會被自動替換成寬角度幀內預測模式(見後面)。

另外,對於DC模式,由於HEVC中的幀內編碼塊總是方形,且尺寸是2的次方,因此在HEVC中進行DC模式預測時不需要除法(使用的是移位操作)。而在VTM4中,編碼塊可以是矩形塊,因此計算dc模式的dcVal時會用到除法,爲了避免dc模式下使用除法,VTM4中的DC模式在處理非方形塊時只對較長的一邊計算平均值(使用移位操作相比除法能更加快速地運算)。

MPM構建

爲了減少MPM(most probable mode)的計算複雜度。VVC中通過參考與當前編碼塊相鄰的兩個塊的幀內預測模式來確定6個MPMs。構建MPM時主要參考以下三方面的信息:

  • 默認幀內預測模式
  • 相鄰幀內預測模式
  • 導出的幀內預測模式

其中,相鄰幀內預測模式包括當前塊左方的編碼塊A和上方的編碼塊B的預測模式。

具體構建MPM列表的過程如下:

首先有默認的6個MPM:{A, Planar (0) or DC (1), Vertical (50), HOR (18), VER - 4 (46), VER + 4 (54)}

接下來如果A和B模式相同,且均大於DC模式(1),則MPM由兩部分組成,一部分是三個默認的模式:{ A, Planar, DC },另一部分則需要推導得出,將A加上預先定義的偏移值得到一個並怎麼樣再得到兩個(文檔沒說清楚,我也不知道)。

如果A和B模式不同,則MPM包含這兩種模式,剩餘的四種從默認列表裏面選取。

最終的MPM列表中每種模式都是不同的,對於非MPM中的預測模式,熵編碼時會採用截斷二元碼進行編碼。

非方塊的寬角度幀內預測

傳統幀內角度預測範圍是從45度到-135度。在VTM4中對非方塊進行幀內預測時,一些傳統角度模式會被替換爲寬角度模式。寬角度模式會使用原本的角度模式編號,一一對應。角度模式的總數並沒有改變,只不過是對應的模式使用了寬角度預測方式。也就是說並不會影響幀內預測模式的編碼。

如果使用寬角度預測,則選取的參考像素也會和常規角度不同,如下圖,模式66原本是45度預測,但是若當前塊滿足使用寬角度預測的條件,則會對預測角度進行調整。
在這裏插入圖片描述
當前塊的尺寸滿足特定條件時,某些角度會被替換成寬角度模式,具體條件如下:
在這裏插入圖片描述
另外,如下圖所示,使用寬角度預測時,兩個豎直相鄰的待預測像素可能會使用不相鄰的參考像素。爲了減少這種現象帶來的負面影響,對寬角度模式下的參考像素需要進行低通濾波以及邊界平滑。
在這裏插入圖片描述

根據模式進行的幀內平滑(Mode Dependent Intra Smoothing,MDIS)

在VVC中用到了四抽頭插值濾波器來提升幀內預測的準確性(HEVC中使用的是兩抽頭的線性插值濾波器)。在VTM4中,針對角度預測使用簡化的6比特4抽頭高斯插值濾波器,對非角度模式不做改變,且以下角度模式也不會使用4抽頭濾波器:2, HOR_IDX, DIA_IDX, VER_IDX, 66。

根據預測模式的不同,具體幀內預測過程如下:

  1. 首先將幀內預測模式分類:
  • A. 豎直或水平模式(HOR_IDX, VER_IDX)
  • B. 對角模式(2, DIA_IDX, VDIA_IDX(應該就是66))
  • C. 其餘模式
  1. 如果預測模式屬於A類,參考像素直接生成預測像素(水平或豎直平移即可)。
  2. 如果預測模式屬於B類,則使用[1,2,1]的抽頭係數來對參考像素進行濾波,並由濾波後的參考像素直接生成(copy)預測像素,並不需要對參考像素進行插值。
  3. 如果是C類,則使用插值濾波器對參考像素進行插值(以應對待預測像素的參考像素落到非整精度位置的情況)並直接生成預測像素,此時參考像素不需要濾波。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章