除了通用編碼工具,VVC還針對特定特性的全景視頻、屏幕視頻開發了特定的編碼工具。
全景視頻編碼
360度全包圍視角的球面視頻。為了采用傳統的視頻編碼,全景視頻需要轉換為平面視頻,經緯度等角映射(ERF)、立方體映射(CMP)是常用的格式。
水平環繞補償
ERP格式全景視頻的左右邊界是連續的,所以當編碼到參考圖像邊界的時候,可以使用圖像右側像素對左側像素進行填充。適用于其他左右邊界連續的格式,如等面積映射。
水平環繞偏移值:
offset = W-pps_pic_width_minus_wraparound_offset*MinCbSizeY
虛擬邊界取消環路濾波
多面投影是將球面全景視頻投影在多個平面上,為了采用平面視頻編碼算法,通常將多個面拼接成一個矩形圖像,但是不可避免會出現在某些相鄰投影面之間出現圖像內容不連續現象。如果對這些不連續邊界使用環路濾波,會在重建視頻中出現拼接偽影。VVC允許對邊界禁用環路濾波。
屏幕內容視頻編碼
是一種特殊的視頻類型,由計算機生成。不受物理限制,不存在傳感器噪聲,常含有更少的顏色類型、更多的重復圖形、更銳利的物體邊緣,場景切換也在屏幕內容視頻中頻繁出現。
幀內塊復制(IBC)
不再將參考區域限制在相鄰像素行,可以利用當前幀所有已編碼區域,預測待編碼CU。
使用塊矢量(block vector,BV)來面熟當前CU與匹配區域的位移。
IBC Merge模式的塊矢量候選列表通過空域塊矢量和歷史塊矢量構建,記為bvCandList。按照空域塊矢量、歷史塊矢量、零值塊矢量來維護。
VTM中的編碼端IBC運動搜索使用了兩種模式:哈希搜索和指定局部搜索范圍。
為了降低復雜度,對幀內塊復制的參考區域進行了限制,只有位于當前CTU及當前CTU左側的CTU的部分區域可以作為參考區域。
變換跳過模式的殘差編碼
直接對CU的預測殘差進行量化和熵編碼。與之相關,熵編碼與非變換跳過模式有區別。只對寬和高都小于MaxTsSize的CU使用。
塊差分脈沖編碼調制
H.265中PCM模式,編碼器直接對CU的像素值進行量化熵編碼,不經過預測和變換模塊、
VVC中,針對屏幕內容,采用了塊差分脈沖編碼調制(BDPCM)模式,對完成幀內預測后,直接進行量化,然后對量化預測殘差按預測方向進行差分脈沖編碼。
- 使用幀內預測的水平模式或垂直模式得到預測值,預測過程使用未濾波的參考像素
- 求亮度值與預測值的差,得到預測誤差。對預測誤差進行量化,得到預測誤差的量化值
- 根據預測方向,對預測誤差的量化值進行差分編碼。
調色板模式
屏幕視頻的像素值經常集中在少量顏色。在調色板模式下,編解碼端維護一個稱為調色板的顏色列表,當像素值等于或接近調色板中的某一顏色時,編碼端只需要編碼該顏色索引。可以使用長度較短的調色板完成像素信息描述,提高編碼效率。
- 通過簡化的K聚類方法初步生成調色板:計算當前點與當前調色板中每個顏色的SAD,找到調色板中與當前樣點SAD值最小的顏色,作為當前樣點的預測值,SAD作為預測誤差
- 對調色板進行進一步調整:通過率失真決策,判斷是否使用調色板預測列表中的某個顏色作為聚類中心
- 對調色板顏色重新排序:生成調色板索引表
需要對調色板進行維護和更新,對調色板索引的編碼類似系數編碼,按照系數組(CG)進行編碼,可以采用水平掃描模式或垂直掃描模式進行。
- 編碼調色板:編碼復用標志列表,來描述預測列表中的顏色是否在調色板中出現,對不在預測列表中的顏色數量,依次編碼各顏色
- 編碼調色板索引:遍歷每個系數組中每個位置的索引
- 更新預測列表:簡歷空的新預測列表,并將當前調色板中的顏色依次加入新預測列表。
自適應色度變換(ACT)
VVC針對4:4:4顏色格式(削弱顏色失真效應)的視頻,使用顏色轉換模塊,將視頻信息轉換到YCgCo顏色空間,進行變換、量化、熵編碼等操作。
YCgCo顏色空間的優點
- 具有接近KL變換的編碼性能
- 與RGB顏色空間的轉換可逆
- 支持有損壓縮和無損壓縮
- 只包含移位和加法運算,計算復雜度低
因為顏色空間分量的動態范圍不同,所以量化參數需要進行相應調整。