?

新一代通用視頻編碼標準H.266/VVC:現狀與發展

2024-04-10 07:49萬帥霍俊彥馬彥卓楊付正
西安交通大學學報 2024年4期
關鍵詞:矢量濾波像素

萬帥,霍俊彥,馬彥卓,楊付正

(1. 西北工業大學電子信息學院,710129,西安; 2. 皇家墨爾本理工大學工程學院,VIC3001,澳大利亞墨爾本; 3. 西安電子科技大學通信工程學院,710071,西安)

作為一種主要通過視覺來感知世界的生物,人類對于視覺媒體的需求是天然的,并且隨著信息技術的發展與日俱增。近年來,視頻應用逐漸呈現出兩大趨勢:高清化與多樣化。一方面,高清、超高清視頻的獲取成本大大降低,隨之而來的則是爆發式的數據增量。另一方面,互聯網生態的不斷豐富也促生了各式各樣的視頻應用。人們不再滿足于被動觀看,而是熱衷于主動進行記錄和分享(如短視頻、運動攝影)、通過視頻進行交互(如視頻會議、屏幕內容分享、游戲視頻)、參與沉浸式體驗(如360°全景視頻、多視角立體視頻)等。相應地,各類視頻應用涉及的視頻格式多樣、特色各異,為視頻壓縮編碼的統一架構和普遍有效性帶來挑戰。

針對大幅提高編碼效率和應對多樣化視頻類型的迫切需求,國際電信聯盟ITU-T的視頻編碼專家組與國際標準化組織ISO/IEC的運動圖像專家組于2015年組建聯合視頻探索小組(Joint Video Exploration Team, JVET),共同開展新一代視頻編碼國際標準的制定工作。值得一提的是,這兩個組織曾經有過3次非常成功的合作:DVD的核心技術H.262/MPEG-2標準[1],獲得廣泛應用的先進視頻編碼H.264/AVC標準[2],壓縮性能突出的高效視頻編碼H.265/HEVC標準[3]。

經過兩年的探索,JVET在Joint Exploration Model(JEM)參考軟件平臺[4]上取得了較好的編碼增益,為新一代視頻編碼標準的研發做好了技術儲備。2018年4月,JVET將新一代標準命名為通用視頻編碼(versatile video coding, VVC)[5]。VVC 標準的目標是以統一架構編碼不同類別的視頻。在同一次會議上,JVET建立了第一版VVC測試模型(VVC test model, VTM)[6],正式開啟了VVC標準的制定。2018年4月—2020年7月是VVC標準形成的關鍵時期,期間JVET共召開了10次會議,對6 000多份技術提案進行了深入討論,將性能優異的工具采納至標準。在這個過程中,VTM編碼性能迅速提升,標志著VVC標準的快速發展。2020年7月,隨著JVET會議落下帷幕,通用視頻編碼標準VVC正式形成[7]。隨后,ITU-T批準VVC標準并正式定名為ITU-T H.266。因此,在正式場合通常將該標準寫為H.266/VVC[8]。

H.266/VVC標準的編碼性能卓越。相比H.265/HEVC,H.266/VVC在同等質量的條件下能夠節省大約50%的碼率[9]。同時,其解碼復雜度不超過H.265/HEVC的兩倍,編碼復雜度增加與壓縮性能增益基本保持正比。此外,H.266/VVC標準能夠應對更多樣的視頻格式和內容,為已有和新興的視頻應用提供高效、靈活、統一的編碼壓縮框架。H.266/VVC出色的編碼性能來源于其在標準化過程中引入的新型編碼工具和語法架構[7-11],本文將對H.266/VVC關鍵技術進行梳理和剖析。

H.266/VVC標準面向廣泛的應用場景,除了電視廣播、視頻會議、視頻點播等傳統業務,還包括自適應視頻流、屏幕內容視頻、多視點視頻、可分層視頻、全景視頻等新興業務。目前,H.266/VVC標準已經處于實用化階段。在標準參考軟件VTM的基礎上,工業界開發了更為高效的軟硬件編解碼實現,如開源編解碼器[12]、商用編解碼器、播放器、比特流分析軟件等[13],隨之涌現出各式各樣相關應用。H.266/VVC標準也受到應用類標準的認可,現已被歐洲電信標準協會數字視頻廣播標準以及巴西下一代廣播電視標準采納[13]。與此同時,視頻編解碼標準并未停止演進的步伐。在標準制定完成之后,JVET圍繞提高視頻編解碼性能進行著持續的探索,形成了兩大探索方向:超越VVC的增強壓縮(enhanced compression beyond VVC capability, beyond VVC)[14]和基于神經網絡的視頻編碼(neural network-based video coding, NNVC)[15]。本文針對H.266/VVC標準的編解碼器實現和未來技術發展走向進行了探討與展望。

1 H.266/VVC 關鍵技術

視頻編碼的關鍵技術包含高層語法設計和編碼工具兩大方面。H.266/VVC沿用了既往標準中的雙層碼流體系,包含視頻編碼層(video coding layer, VCL)和網絡適配層(network abstract layer, NAL)。原始視頻數據劃分為編碼單元后送入混合編碼框架進行編碼,遵循標準語法描述生成VCL比特流,再與對應高層語法一起組合、封裝,構成NAL單元(NAL unit, NALU)。NALU可以作為載荷直接在網絡上進行傳輸。

1.1 碼流結構

H.266/VVC的編碼比特流可包含一個或多個編碼視頻序列(coded video sequence, CVS)。CVS是時域獨立可解碼的基本單元,每個CVS以幀內隨機接入點圖像或逐漸解碼刷新圖像作為起始。CVS 碼流結構如圖1所示。每個CVS包含一個或多個按解碼順序排列的訪問單元(access unit, AU)。每個AU包含一個或多個同一時刻的圖像單元(picture unit, PU),每個PU包含且僅包含一幅完整圖像的編碼數據。當一個AU包含多個PU時,每個PU可以是特定質量或分辨率(可分級視頻流)圖像,也可以是多視點視頻的某一視點,以及深度、反射率等屬性信息。AU中的不同PU被歸屬為不同的層,一個CVS中所有同層的PU 組成了編碼視頻序列層(coded layer video sequence, CLVS)。

圖1 CVS結構Fig.1 CVS structure

每個PU為一幅圖像的碼流,包含一個或多個片(slice)。片與片之間進行獨立編解碼,該設計有利于在數據丟失時進行重新同步。slice編碼數據打包形成的NALU稱為VCL NALU。除此之外,PU還包含非VCL NALU,如參數集、訪問單元分割符等。參數集包含視頻中不同層級編碼單元的共用信息,是獨立編碼的數據類型。其中,視頻參數集承載視頻分級的信息,表達PU間的依賴關系,配合參考幀管理支持可分級視頻編碼、多視點視頻編碼等需求。序列參數集包含CVS的共用編碼參數,如圖像格式、編碼塊尺寸限制、檔次與層級等。H.266/VVC標準新引入了自適應參數集、解碼能力信息等參數集。

參數集作為非VCL NALU進行傳輸,為傳遞關鍵數據提供了高魯棒機制。參數集的獨立性使得其可以提前發送,也可以在需要增加新參數集的時候再發送。參數集可以被多次重發或者采用特殊技術加以保護,甚至采用帶外發送的方式。

slice頭及其之上的語法結構通常稱為高層語法。高層語法設計的目的是為了網絡傳輸和存儲的需要,對視頻編碼數據進行有效組織和封裝,保證碼流接口的友好性、隨機接入性、誤碼恢復能力、互動性、向后兼容性等。網絡適配層是高層語法中最關鍵的組成之一。視頻壓縮數據根據其內容特性被分成具有不同特性的NALU,并對NALU的內容特性進行標識。網絡可以根據NALU及其標識優化視頻傳輸性能,不再需要具體分析視頻數據的內容特性。H.266/VVC高層語法的詳細信息可參考文獻[16]。

1.2 編碼框架

類似于H.265/HEVC,H.266/VVC仍采用基于編碼樹單元(coding tree unit, CTU)的劃分結構。待編碼圖像首先被分割成slice,每個slice由相同大小的CTU組成。為匹配4K、8K等視頻的編碼需求,H.266/VVC中CTU亮度塊的最大允許尺寸為128×128像素。每個CTU按照二叉樹、三叉樹、四叉樹遞歸劃分為不同尺寸的編碼單元(coding unit, CU)[17]作為大多數編碼工具的基本單位。slice到CU的劃分結構如圖2所示。

圖2 slice到CU之間的劃分示例Fig.2 Example of partitioning slice into CU

H.266/VVC整體編碼框架如圖3所示。對每個CU進行編碼時,通常流程如下:首先,通過幀內或幀間預測去除圖像的空、時間相關性;再次,將預測殘差送入變換模塊生成能量較為集中的變換系數;之后,將變換系數送到量化模塊實現多對一的映射;最后,再送入熵編碼模塊以輸出碼流。為了得到與解碼器一致的重建信號,H.266/VVC編碼器包含完整的解碼器,如圖3中黃色底色部分所示。編碼控制模塊往往通過拉格朗日率失真優化[18-19]選擇最優的編碼參數[20]。H.266/VVC在圖3所示的各個模塊都引入了新工具,下文將分模塊進行介紹。

圖3 H.266/VVC編碼框架Fig.3 Framework of H.266/VVC encoding

1.3 幀內預測編碼

幀內預測編碼使用當前圖像內已編碼像素值預測待編碼像素值,從而有效去除視頻空域相關性。H.266/VVC的幀內預測包含參考像素獲取、預測值計算和預測值修正3個步驟[21],如圖4所示。圖中{}里的內容為H.266/VVC采用的代表性技術。

圖4 H.266/VVC幀內預測編碼Fig.4 H.266/VVC intra prediction coding

在獲取參考像素時,H.266/VVC允許使用鄰近額外2行/列參考像素[22],擴展了參考像素范圍。為提高角度預測的準確性,H.266/VVC引入了高效插值濾波器。傳統的預測模式包括平面、直流和65種角度模式,以適配具有不同紋理特性的編碼塊。對于寬高不等的矩形塊,H.266/VVC引入寬角度模式[23]。此外,幀內子區域劃分[24]使用重建子區域作為后續子區域的參考。H.266/VVC還引入位置相關的幀內聯合預測(position dependent intra prediction combination, PDPC)[25],利用空間相關性強的參考像素對預測值進行修正。

基于矩陣的幀內預測(matrix-based intra prediction, MIP)模式是H.266/VVC中采用神經網絡思想的新技術。MIP源于多層神經網絡[26-27],為權衡計算復雜度,最終使用矩陣乘法近似實現一層全連接網絡。MIP預測過程如圖5所示,參考像素作為輸入向量與MIP預測矩陣相乘得到部分預測值,再通過上采樣得到最終預測值。其中,對參考像素下采樣和對輸出向量上采樣有利于降低矩陣乘法次數,同時減少內存。

圖5 基于矩陣的幀內預測原理框圖Fig.5 Diagram of matrix-based intra prediction

采用亮度信號對色度信號進行分量間預測是H.266/VVC的特色之一。如圖6所示,分量間線性模型(cross-component linear mode, CCLM)預測模式[28]基于亮度色度局部相關性建立分量間線性模型,根據該模型和亮度重建值計算色度預測值。CCLM的關鍵是利用參考像素的亮度色度值確定線性模型的系數。H.266/VVC采納了本文作者提出的參考像素子集方案[29],該方法在不降低性能的前提下具有更低復雜度,且對不同塊尺寸采用統一方案,利于硬件實現。

圖6 分量間線性模型原理框圖Fig.6 Diagram of cross-component linear mode

1.4 幀間預測編碼

幀間預測編碼利用視頻的時域相關性,只編碼圖像間的運動信息及預測殘差,可大幅度提高編碼效率。根據運動矢量(motion vector, MV)和預測殘差的編碼方式,H.266/VVC幀間編碼模式可以分為跳過、合并和高級運動矢量預測3大類,如表1所示。具體地,跳過模式采用預測運動矢量表示MV信息,且不編碼運動矢量差值和預測殘差。合并模式僅編碼預測運動矢量和預測殘差,不編碼運動矢量差值。高級運動矢量預測模式則對預測運動矢量、運動矢量差值和殘差均進行編碼。

表1 H.266/VVC幀間預測模式分類及特點Table 1 Classification and characteristics of H.266/VVC inter prediction modes

H.266/VVC幀間預測過程可分為運動矢量的預測、運動矢量的確定、運動補償3個步驟,每個步驟都引入了多項新技術[30-31],如圖7所示。圖中,{}里的內容為H.266/VVC采用的代表性技術。

圖7 H.266/VVC幀間預測編碼Fig.7 H.266/VVC inter prediction coding

1.4.1 運動矢量預測

運動矢量預測列表中按一定規則放置與當前CU空域、時域相關性強的已編碼塊MV,作為當前CU的預測運動矢量的候選值。當選擇列表中的某個候選運動矢量預測作為當前CU的預測運動矢量時,只需編碼選中運動矢量預測在列表中的索引值。H.266/VVC引入了基于歷史的候選運動矢量預測,利用先前已編碼塊的運動信息存儲為歷史信息并用于構造運動矢量預測列表。

傳統的幀間預測中,同一個CU內所有像素采用相同的運動矢量。H.266/VVC引入了基于子塊的時域MV預測,使用單一模式標識CU內各子塊的不同MV信息,提升了MV的表示效率。

仿射運動補償是H.266/VVC的特色幀間編碼技術。對于存在旋轉、縮放、拉伸等非平移運動的編碼塊,塊中各像素的運動矢量雖然不同,但具有一定的規律性,可以通過高階變形模型以極少的模型參數來描述[32-34]。

1.4.2 運動矢量確定

針對合并模式,H.266/VVC引入了解碼端運動矢量修正和帶有運動矢量差值索引的合并模式。解碼端運動矢量修正是解碼端基于前后向運動矢量的對稱偏移,利用前后向參考塊的匹配程度確定調整偏移量,對運動矢量進行修正。帶有運動矢量差值索引的合并模式并未編碼實際的運動矢量差值,而是根據運動矢量差值出現的概率預先定義一個固定的高概率偏移值集合,用集合中的索引確定MV的偏移量。

針對高級運動矢量預測模式,H.266/VVC引入了對稱運動矢量差值和運動矢量差值的自適應精度表示。對稱運動矢量差值針對雙向預測的CU,只編碼其前向運動矢量差值,后向運動矢量差值則根據對稱一致性推導得到。運動矢量差值的自適應精度表示允許針對不同運動劇烈程度的視頻內容,以CU為單位自適應選擇不同運動矢量差值精度,以兼顧運動矢量表示范圍和精度。

1.4.3 運動補償

H.266/VVC引入了聯合幀內幀間預測,其運動補償通過融合幀內和幀間預測值實現。

幾何劃分幀間預測具有一定分割的理念[35]。當運動物體具有非水平或垂直邊緣時,采用矩形劃分將在邊緣處產生大量小塊,需要編碼大量的塊劃分及MV信息,如圖8(a)所示。幾何劃分幀間預測使用斜線將矩形CU劃分成兩個不規則子區域以匹配實際的運動,如圖8(b)所示。劃分線以極坐標形式用角度和偏移量來高效表示。各子區域分別利用不同運動信息獲得補償,并對劃分線附近區域以軟混合的方式進行加權融合,以模擬自然場景中柔和的邊緣過渡。

H.266/VVC引入了基于光流的預測值修正。對于普通運動,雙向光流[36]可以利用前向預測參考塊和后向預測參考塊的一致性,估計前向預測參考塊和后向預測參考塊間的光流,修正運動矢量及相應的預測值。對仿射運動補償,光流預測細化[37]為4×4 像素子塊的每個像素計算光流補償值。

為處理亮度漸變的場景,除了slice級加權運動補償,H.266/VVC還引入了CU級的雙向加權運動補償預測。該技術針對局部亮度漸變的場景,在CU層傳輸線性加權預測的參數。

1.5 變換編碼

預測殘差空間分布通常較分散,采用變換編碼可將其映射到分布集中的變換域,進一步去除空間冗余。H.266/VVC引入多項變換新技術[38],其過程如圖9所示。預測殘差通常首先經過主變換得到一次變換系數;對于采用DCT-Ⅱ作為主變換核的一次變換系數,選擇性使用二次變換,得到最終變換系數。H.266/VVC支持變換跳過模式,直接對殘差進行量化。針對幀間預測殘差,子塊變換[39]僅對殘差能量大的部分區域進行變換,其余區域殘差強制歸零。當編碼塊寬或高等于最大變換尺寸時,變換系數僅保留低頻部分,高頻系數置零,同樣達到減少變換系數能量的目的。圖中,{}里的內容為H.266/VVC采用的代表性技術。

圖9 H.266/VVC編碼端變換編碼Fig.9 H.266/VVC transform coding in encoder

不同預測模式下的殘差信號往往具有不同特性[40],H.266/VVC引入多核變換選擇以匹配多種預測殘差特性。

H.266/VVC引入低頻不可分變換[41],對以DCT-Ⅱ為主變換核的變換系數進行二次變換,使得殘差能量更集中。首先,將左上角的N個低頻變換系數轉化為一維向量,并將其余位置的變換系數置零;然后,對該一維向量進行低頻不可分變換變換得到長度為R(R≤N)的向量。由此,二次變換可以達到減少變換系數的目的。與MIP類似,低頻不可分變換的變換核通過大量數據訓練得到。

1.6 量化

除傳統的標量量化外,H.266/VVC引入了高效的依賴量化[42]。與傳統的標量量化不同,依賴量化中當前變換系數的量化值依賴于前一個變換系數的量化值。依賴量化利用了變換系數間的相關性,使得變換系數經量化后在M維向量空間更緊密(M代表變換塊中變換系數的個數)。從解碼器的角度來看,H.266/VVC中的依賴量化定義了兩種不同的標量量化器Q0、Q1,對應設計了依賴量化的4種狀態。在反量化時,變換系數按照編解碼順序重建,每處理一個系數,依賴量化相應更新一次狀態,第k+1個系數所使用的標量量化器(Q0或Q1),由第k個量化索引值和當前的依賴量化的狀態決定。

編碼端可采用率失真優化量化[43]的思想,利用狀態間隨時間(對應于系數組中的序號)轉換形成的柵格,對整個系數組最優的量化路徑進行搜索,選擇最佳量化索引[44-45]。依賴量化以系數組為單位實現最優量化,隱含了矢量量化的思想。

1.7 熵編碼

熵編碼用于進一步去除數據間的統計冗余。對于高層語法元素,H.266/VVC采用簡單的熵編碼方法,例如定長碼、零階指數哥倫布碼等,有利于快速解析語法元素。對于片級以下的語法元素,H.266/VVC采用基于上下文的自適應算術編碼[46]獲取較高編碼性能。其中,上下文建模是利用以已編碼的語法元素為條件進行編碼的思想進行概率模型預測。H.266/VVC引入雙概率更新模型以及低復雜度的概率迭代算法,可獲得準確的概率模型。

1.8 環路濾波

H.266/VVC仍采用基于塊的混合編碼框架,因此方塊效應、振鈴效應、顏色偏差以及圖像模糊等常見編碼失真效應仍然存在。為了降低各類失真對視頻質量的影響,H.266/VVC采用環路濾波[47],包括亮度映射與色度縮放、去方塊濾波、樣點自適應補償和自適應環路濾波。其中,去方塊濾波和樣點自適應補償延續了H.265/HEVC的算法。

亮度映射與色度縮放[48]的核心思想是為亮度平坦區域分配更多碼字,為紋理復雜區域分配較少的碼字。其中,基于動態分段線性模型的亮度映射技術根據概率分布將亮色度原始值域范圍擴展到指定位深的像素值域范圍。

自適應環路濾波[49]運用維納濾波的思想,以原始幀和重建幀之間的最小均方誤差為優化目標,根據維納-霍夫方程求解得到自適應環路濾波濾波系數。自適應環路濾波包括亮度自適應環路濾波、色度自適應環路濾波和分量間自適應環路濾波。分量間自適應環路濾波提出利用亮度對色度進行補償,補充色度的紋理細節,提升色度質量。分量間自適應環路濾波使用未經過自適應環路濾波濾波的亮度重建值進行色度修正,便于并行執行不同的自適應環路濾波濾波。

1.9 面向屏幕內容的編碼算法

屏幕內容,如計算機桌面分享、文檔演示、游戲動畫等,是一種特殊視頻類型,通常由計算機生成。相比自然視頻,屏幕內容視頻不受攝像機鏡頭的物理限制,不存在傳感器噪聲,常含有更少的顏色類型、更多的重復圖形、更銳利的物體邊緣。針對上述特點,H.266/VVC標準引入多種屏幕內容編碼工具[50-51]。

幀內塊復制的預測過程與幀間預測類似,在當前幀已經完成重建的區域內搜索與當前塊匹配的參考塊,進而將參考塊進行復制得到預測塊。參考塊與當前塊之間的位移用塊矢量來描述。

在局部區域,計算機生成的內容通常只使用少量的顏色。調色板模式直接對這些數量較少的顏色集進行編碼,以提升編碼效率。調色板可以是分量間聯合調色板,也可以是單分量的調色板。

為了削弱顏色失真效應,屏幕視頻經常使用4∶4∶4顏色格式。為有效利用顏色分量間的相關性,H.266/VVC標準采用了自適應顏色變換,允許使用顏色轉換模塊將視頻殘差信息轉換到YCgCo顏色空間進行變換、量化、熵編碼等操作,提高編碼性能,降低計算復雜度。

2 H.266/VVC 編解碼器

隨著H.266/VVC標準的正式發布,涌現出大量相關軟硬件,包括開源編解碼器、商用編解碼器、播放器等[13]。其中,H.266/VVC標準的官方參考軟件VTM和基于VTM開發的開源編解碼器VVenC/VVdeC是目前最具代表性的H.266/VVC編解碼實現,對于學術研究和產品開發都具有重要的價值。

2.1 H.266/VVC軟件實現

2.1.1 VVC測試模型VTM

視頻編碼標準只規定碼流的語法語義,并不對編碼器進行限制。然而,為了對語法元素進行合理設計,標準應明確可能的編碼方式,從而形成系統化的標準編解碼器測試模型。VVC測試模型VTM是H.266/VVC標準的官方參考軟件,由JVET開發和維護[6]。作為標準實現的基本參考,VTM可用于驗證和評估H.266/VVC編解碼器的性能,幫助理解標準語法的內涵和解碼過程,并可作為開發實際產品的基礎。除了常規的視頻編碼,VTM還支持多視角編碼、全景視頻編碼、深度圖編碼等,能夠滿足沉浸式場景、三維視頻等不同應用的需求。

VTM功能齊全,使用方便,來源權威,針對H.266/VVC標準的編解碼器性能評估通常以VTM為基準,相應的結果需在通用測試條件下進行對比[52]。通用測試條件由JVET制定,規定了標準測試序列[53]和不同應用場景下的編解碼參數設置,包括標準動態范圍、高動態范圍、360°全景、非4∶2∶0 色度格式等測試場景。相應地,標準測試序列涵蓋了不同分辨率下的自然場景視頻(class A~E)、屏幕內容視頻(class F)、高動態視頻(class H)以及360°全景視頻(class S)等。

針對不同的測試場景,通用測試條件規定了相應的測試條件,包括全幀內、隨機訪問和低延遲設置。隨機訪問設置通常提供1 s左右的隨機接入間隔,適用于娛樂類應用,如廣播、流媒體等;低延遲設置適用于對時延敏感的交互式應用,如視頻會議、直播等;全幀內設置則阻斷了幀間誤差傳播,為信道環境較差的場景,如丟包嚴重場景,提供更高的魯棒性。

BD-rate(Bj?ntegaard delta bit rate,用符號ΔR表示)[54-55]是視頻編碼中使用的客觀度量指標。在一定比特率或質量范圍內,該指標可以比較兩種不同的視頻編解碼器,或同一視頻編解碼器不同配置下的率失真性能。該值為負數時,表示壓縮效率提高。通用測試條件規定了各測試條件下使用的量化參數,通常為22、27、32和37,得到相應的編碼碼率和質量(通常以峰值信噪比衡量)后,即可求解出BD-rate。

2.1.2 VVenC開源編碼器

VTM的開發以獲得最大編碼增益為目標,并未針對編解碼速度進行全面優化,也不支持多線程實現,因此并不能滿足實際應用的需求。VVenC[12]是VTM之外受到廣泛關注的H.266/VVC開源編碼器,由德國Fraunhofer HHI研究所基于VTM開發。VVenC最大的特點是快速高效,可以用更低的復雜度獲得近似VTM的性能,并針對實用性進行了大量優化。VVenC編碼器對VTM編碼框架的各大模塊均設計了快速算法[56]。此外,VVenC支持真實應用場景下的實用功能,如多線程加速、可變碼率控制和感知質量優化等,還支持編碼預處理、高動態范圍、變分辨率編碼以及屏幕內容編碼等功能。

通過對配置集進行帕累托優化,VVenC設置了5個可選的質量/速度預設檔位[57],分別為極慢、慢、中等、快和極快,可根據應用需求在編碼時間和復雜度之間進行權衡和選擇。以H.265/HEVC的參考軟件HM為基準,VTM以及VVenC在不同預設檔位和線程數設置下的BD-rate增益ΔR和編碼器運行時間如圖10所示。

圖10 VTM及VVenc相對于HM的編碼性能[12] Fig.10 VTM and VVenc coding performance compared to HM[12]

2.2 H.266/VVC算法性能分析

為深入分析H.266/VVC的算法性能,本節將其與H.265/HEVC的性能進行比較,并進一步在VTM中關閉各編碼工具以分析具體工具對性能的貢獻。此外,討論了采用各主要工具的像素占比情況和限制條件。

2.2.1 與H.265/HEVC 性能對比及分析

表2給出了隨機訪問配置下,H.266/VVC與H.265/HEVC的性能對比??梢钥闯?在相同的峰值信噪比下,H.266/VVC可節省38.42%的編碼碼率。若采用主觀質量作為質量測度,可節省約50%的編碼碼率。與此同時,編碼復雜度為H.265/HEVC的7倍,解碼復雜度為163%。在序列測試集中,class A1與class A2為4K高分辨率視頻??梢钥闯?H.266/VVC針對高分辨率視頻取得的編碼增益更為突出。

表2 隨機訪問配置下H.266/VVC與H.265/HEVC性能對比Table 2 Coding performance comparison between H.266/VVC and H.265/HEVC under random access configuration

2.2.2 H.266/VVC 編碼算法性能分析

對H.266/VVC各編碼工具的性能評價需綜合考慮率失真性能和算法復雜度兩個因素。率失真性能可通過與不含該工具的VTM基準進行性能比較,得到相同重建質量下的碼率變化量(以BD-rate衡量)。針對特定的編碼工具,文獻[58]采用在VTM中關閉該工具導致的BD-rate上升量來衡量該工具對編碼性能的貢獻。編碼和解碼復雜度通常通過計算與VTM基準編碼時間和解碼時間的比值進行衡量。

H.266/VVC主要編碼工具全稱及縮寫如表3所示。

表3 H.266/VVC主要編碼工具全稱及縮寫Table 3 Full names and abbreviations of the main coding tools in H.266/VVC

圖11給出了H.266/VVC主要編碼工具的性能和編解碼復雜度的關系。圖中:ΔR1表示各編碼工具關閉后相比關閉前VTM基準的BD-rate,反映了關閉該編碼工具后壓縮效率的下降(對應于碼率的上升)情況;編/解碼時間占比分別表示編碼工具關閉后相比VTM基準的編/解碼時間比。從圖中可以看出,性能提升最明顯的是自適應環路濾波,關閉該工具使得BD-rate增加4.34%。與此同時,關閉自適應環路濾波后,編碼時間為VTM基準編碼時間的96%,解碼時間為VTM基準解碼時間的87%。由此可見,該工具在解碼端具有較高的復雜度。值得注意的是,有相當一部分編碼工具,在關閉后其編解碼時間比反而上升,其主要原因是不采用該類編碼工具通常需要將圖像劃分為更小的CU進行編解碼,而更小的CU單元會引入更多的處理環節,從而引起編解碼時間增加。

(a)各工具的率失真性能-編碼時間

此外,編碼工具的使用像素占比也可作為評估新工具有效性的測度。圖12給出了H.266/VVC主要新增工具在全幀內、隨機訪問和雙向低延遲這3種典型設置下的使用像素占比。綜合圖11和圖12可以看出,使用像素占比與工具的性能貢獻大致呈線性關系。例如,在參與評估的工具中,自適應環路濾波影響的像素數量最多,而其性能貢獻也最大。但是也有例外。例如,仿射技術,影響像素數相對較少,但性能貢獻也較大。這是因為符合非平移運動假設的像素數量未必很多,但采用仿射技術能夠開展高效預測。更為詳細的數據請參考文獻[58]。

圖12 主要新增編碼工具像素使用占比Fig.12 Pixel occupancy of key new coding tools

在H.266/VVC標準發展和制定的過程中,每個新編碼工具的加入都經過了詳細的評估,以確保在盡可能在不增加或少增加編解碼復雜度的前提下,新編碼工具的加入可與其他編碼工具協同作用,獲取更佳的編碼效率??紤]到各編碼工具適用場景可能不同,標準中設置了一些編碼工具使用的限制條件。例如:最可能模式列表、MIP和多核變換選擇等工具僅針對亮度分量開啟使用;多核變換選擇僅針對幀內編碼殘差使用;當使用CCLM模式時,禁用多參考行、PDPC工具等等。

2.3 H.266/VVC硬件實現

H.266/VVC為方便軟硬件實現和優化提供了必要的支持。與H.265/HEVC一樣,H.266/VVC支持波前技術,方便實現多線程并行編碼。通過多線程并行運算,設計合理的數據結構和程序流程,以及充分利用單指令多數據操作的優化方法,目前已經可在現有主流的x86硬件平臺上實現4K分辨率視頻的H.266/VVC碼流實時解碼,但同樣分辨率的實時編碼在目前主流硬件平臺尚不可行。雖然H.266/VVC最高支持8K分辨率視頻,相應的硬件編解碼實現仍任重道遠。

盡管H.266/VVC標準制定過程中充分考慮了算法的實現復雜度,但其在硬件實現方面仍面臨巨大的挑戰[59]。這些挑戰主要來源于為有效實現超高分辨率視頻編碼引入的特性。首先,高分辨率視頻本身數據量大,對其進行實時編解碼需要高吞吐率和高處理速度。其次,為提高編碼效率,H.266/VVC發展了已有編碼技術,或引入了更為復雜的新技術[60],導致對硬件運算能力的要求有進一步的提高。例如,預測模式的增多需要更多的硬件資源,計算預測值所需的邏輯也更加復雜。H.266/VVC新引入的MIP和多核變換選擇需要存儲一定數量的預訓練矩陣,盡管在標準制定時已對矩陣系數的數量和精度進行了限制,但其對存儲空間仍有較高的要求。幀間預測的精細運動估計和補償算法則對計算能力和帶寬提出了更高的要求。

從整體架構來說, H.266/VVC沿襲了混合式編碼框架,具有并行處理能力強的特點?;旌鲜骄幋a框架可復用性較好,因此現有針對硬件實現的研究工作主要集中在對具體編碼模塊的硬件加速方面,尤其是最為耗時的預測模塊、變換模塊和濾波模塊等。例如,文獻[61]針對VVC中的幀內預測模式進行分析,遴選出18種對性能貢獻較大的子模式,針對專用集成電路設計了優化算法。文獻[62]針對VVC中的快速運動估計模塊,利用整像素位置的率失真代價推斷最佳預測的分像素位置,從而提高硬件友好性。文獻[63]提出了統一的多核變換選擇的硬件架構,便于VVC變換模塊的硬件實現。針對自適應環路濾波,文獻[64]針對亮度和色度提出了優化的掃描機制,從而針對自適應環路濾波實現內存的高效管理。

雖然面臨諸多挑戰,H.266/VVC的硬件實現已處于實用化階段。目前,市場已出現支持H.266/VVC的芯片產品。例如:MediaTek的Pentonic 2000智能電視系統級芯片(system on chip,SoC)是世界首批支持 H.266/VVC解碼的芯片[65],RealTek[66]和LG[67]也相繼發布了支持H.266/VVC的SoC產品。

3 發 展

JVET在H.266/VVC發布之后持續對視頻編碼的發展進行研究,以探索標準的未來走向和關鍵技術?,F階段的探索仍然以H.266/VVC架構為基礎。根據編碼工具的不同類別,繼H.266/VVC之后,視頻編碼標準的發展聚焦在兩大方向:Beyond VVC探索更為先進的、非神經網絡的編碼工具;NNVC則探索基于神經網絡的編碼工具。

3.1 基于H.266/VVC框架的編碼技術演進:Beyond VVC

Beyond VVC探索的方式屬于技術演進[14],在H.266/VVC編解碼模塊的基礎上,通過改進編碼工具增強編碼性能。Beyond VVC目前已經取得了令人關注的進展,相比于H.266/VVC參考軟件VTM11.0,Beyond VVC參考軟件平臺ECM(enhanced compression model)8.0在全幀內配置下可以達到9.86%的編碼增益,在隨機訪問配置下可以達到19.86%的編碼增益[68]。Beyond VVC的性能提升來源于預測、變換、環路濾波等模塊的綜合提升[69]。

3.1.1 預測模塊

幀內/幀間預測是Beyond VVC提升編碼效率的主要模塊,其增益很大程度上得益于模板的使用[70]。Beyond VVC將模板定義為當前待編碼塊上方和左方的區域,在編碼當前塊時該區域已完成重建,如圖13所示。模板與待編碼塊具有強相關性,模板與參考區域的關系可以作為待編碼塊的先驗信息。

圖13 Beyond VVC基于模板算法Fig.13 Template based algorithm in Beyond VVC

在幀內預測中,可利用模板估計優先預測模式或模型參數,從而高效表示預測模式等信息?;谀0宓膸瑑饶J酵茖71]技術針對模板開展幀內預測,根據幀內預測的結果和模板重建信息的預測精度確定1~2種優先的幀內預測模式。解碼端模式推導[72]技術分析模板的梯度直方圖,根據梯度方向確定1~2種優先的幀內預測模式。幀內模板匹配模式可在當前幀已重建區域中通過模板開展搜索尋找到匹配模板,為待編碼塊確定預測塊,從而提高編碼效率。

在幀間預測中,模板廣泛地應用于運動矢量預測、運動矢量確定和預測值獲取過程中。例如,針對參考幀已重建區域,可利用模板對運動矢量列表的多個候選進行排序,也可利用模板進行搜索提升運動矢量的精度??紤]到模板與待編碼塊的特性可能存在差異,通常利用模板確定多個候選以及候選順序,最佳預測模式需根據其用于待編碼塊的率失真性能確定。

在色度幀內預測中,建立精細分量間預測模型是提升編碼效率的有效途徑。卷積分量間預測模型[73]建立鄰域內多位置亮度與色度的預測模型,并依據模板區域計算模型參數,自適應建立亮度與色度卷積預測模型。多模型線性模型為亮度與色度建立分段線性預測模型。為了獲取更準確的預測模型,Beyond VVC通過調整CCLM的模型參數[74],或者通過在預測模型中添加梯度因子與位置信息等方法[75]提升預測模型的準確性。另外,由作者提出的直接塊矢量模式,充分利用亮度已有塊矢量信息推導色度塊矢量[76]。進一步地,Beyond VVC采用了色度融合技術,設計了傳統色度預測模式與分量間預測模式的自適應加權方案。

3.1.2 變換模塊

Beyond VVC進一步拓展了多核變換選擇的變換核候選集,同時利用新提出的可分離KL變換變換核將多核變換選擇應用于幀間編碼。Beyond VVC還提出不可分離一次變換[77],對于符合相應特性的預測殘差,經一次變換后可實現能量的高度集中。另外,基于與已重建模板像素的連續性,對部分變換系數符號進行預測,可進一步提升變換系數的編碼效率[78]。

3.1.3 環路濾波

Beyond VVC中的自適應環路濾波引入了基于邊帶分類和基于殘差樣本的分類方法。此外,分量間聯合樣點自適應補償[79]通過對亮度值和色度值聯合分類,確定補償值,可得到更為精細的補償值。雙邊濾波器[80]對去方塊濾波的輸出圖像進行處理,綜合考慮樣本的空間相鄰度和像素相似度生成補償值,可達到去除噪聲同時保留邊緣的目的。

3.2 基于神經網絡的編碼工具探索:NNVC

2020年10月的JVET會議上,正式確定建立NNVC的探索實驗,研究利用神經網絡強大的非線性表達能力提升視頻編碼性能。目前,NNVC探索實驗[15]主要包括基于神經網絡的環路濾波技術、基于神經網絡的幀內/幀間預測技術、基于神經網絡的超分辨率技術以及基于神經網絡的后處理技術等。

基于神經網絡的環路濾波采用神經網絡濾波器對重建視頻進行處理[81-83],研究重點為有限計算復雜度下的網絡架構設計、網絡模型輸入的編碼參數、與傳統濾波處理算法的融合等?;谏窠浘W絡的幀間預測重點研究采用神經網絡生成高質量參考幀、替換傳統雙向加權預測的多幀預測等[84]?;谏窠浘W絡的幀內預測[85]使用神經網絡從當前圖像已重建的像素產生更加準確的預測塊,或是根據已重建的亮度信息使用神經網絡產生準確的色度信息[86],從而更好地利用視頻的空間信息?;谏窠浘W絡的超分辨率研究通過編碼低分辨率視頻節省碼率,解碼端將低分辨率視頻超分恢復到高分辨率[87]?;谏窠浘W絡的后處理對重建視頻進行濾波,但不同于環內濾波,濾波后圖像不會作為后續圖像的參考,網絡可以利用編碼端提供的一些輔助信息,提升濾波性能[88]。

基于神經網絡的視頻編碼工具在H.266/VVC的基準上能夠取得較好的性能增益[89],但該類編碼工具也具有高計算復雜度的特點。文獻[90]提出使用CP分解以及融合相鄰1×1卷積等操作有效降低計算復雜度。如何在神經網絡的性能增益和計算復雜度之間進行合理權衡是目前聚焦的研究趨勢。2023年4月的JVET會議上,與會專家達成共識,下一階段的主要任務是建立不同復雜度下的濾波方案[91],研究如何統一設計濾波器的輸入、如何開展高效的訓練以及統一濾波器如何與現有編解碼器高效融合。上述任務的確立標志著NNVC的發展進入了新的階段。

4 總結與展望

新一代視頻編碼標準H.266/VVC面向多樣化的應用,從高層語法和編碼工具兩個層面進行了大量技術革新,能夠適應不同的網絡環境和應用需求。H.266/VVC仍然采用成熟的混合編碼框架,對于軟硬件實現十分友好,具有良好的實用化前景。H.266/VVC的技術革新體現在所有主要編碼模塊,包括幀內預測、幀間預測、變換、量化、環路濾波等。標準參考模型VTM具有出色的壓縮性能,在此基礎上也出現了更為高效的開源編解碼器和相關應用。

由于各行各業對視頻應用的需求迫切且持續增長,H.266/VVC具有廣闊的應用前景。然而,從標準發布到大規模商用往往存在較長的周期。例如,H.265/HEVC于2013年標準制定完成,直至近年來才具有較大的市場占比?;诖?預估H.266/VVC的市場接納期也會持續較長時間。H.266/VVC最先進入的領域預計是以高效軟件編碼器為主的互聯網媒體領域,如短視頻應用等。此外,H.266/VVC的實用有望推動可分級視頻、高動態視頻、屏幕視頻等應用的發展。H.266/VVC硬件實現的應用率先出現在允許較大尺寸的電視芯片領域。至于其他消費類應用、軍工應用等領域,則更多地需要成熟的芯片方案和可接受的算力來支撐。另外,H.266/VVC的相關應用也可能拓展到圖像壓縮領域。例如,高效圖像文件壓縮格式源于H.265/HEVC的幀內編碼,在圖像壓縮獲得了有效應用,H.266/VVC中的幀內編碼技術也可能產生類似的發展。

雖然H.266/VVC標準已經進入實用化階段,JVET對H.266/VVC后續標準的發展仍保持著不懈探索。在現有標準架構下,JVET分別從采用非神經網絡工具Beyond VVC和神經網絡工具NNVC兩個不同的方向進行持續研究,都取得了顯著進展。然而,哪一個方向才是下一代視頻編碼標準的走向,目前尚未形成明確結論。

值得關注的是,部分跳出或完全跳出現有混合編碼框架的端到端視頻編碼也在飛速發展?;谏窠浘W絡的端到端視頻編碼大致可分為3類:基于殘差編碼的方案,基于條件編碼的方案,基于3D自編碼器的方案?;跉埐罹幋a的方案借鑒傳統混合視頻編解碼器的思路,通過神經網絡編碼工具進行運動補償生成預測幀,并將其與當前幀的殘差進行編碼,如DVC[92]?;跅l件編碼的方案將時域相關的幀或特征作為當前幀編碼的條件,如DCVC及其后續一系列改進[93]?;?D自編碼器方案則是相關圖像編解碼器的自然延伸,擴大了網絡輸入的維度[94-95]。除上述方案之外,隱式神經網絡表達采用過擬合的神經網絡進行信源表示,將視頻壓縮問題轉化為神經網絡壓縮問題,從全新的角度實現了視頻編碼[96-97]。

目前,針對靜止圖像,國際標準化組織正在致力于研究使用端到端的神經網絡進行高效壓縮,即正在進行中的JPEG AI標準[98]。預計使用神經網絡進行視頻編碼的國際標準也將會出現在或遠或近的未來。無論是與傳統編碼框架融合,還是采用全新的端到端實現,現階段基于神經網絡的視頻編碼面臨兩方面的考驗。一是如何能夠克服其對計算資源的依賴。二是如何能夠定義一個通用的穩定結構,使得日益變化的網絡能夠以極低的代價在終端上進行迭代更新。未來視頻編碼標準將如何與神經網絡結合,又在何時能夠獲得實用化,將在對相關技術的探索中逐漸明朗。

猜你喜歡
矢量濾波像素
趙運哲作品
像素前線之“幻影”2000
矢量三角形法的應用
“像素”仙人掌
基于矢量最優估計的穩健測向方法
高像素不是全部
三角形法則在動態平衡問題中的應用
RTS平滑濾波在事后姿態確定中的應用
基于線性正則變換的 LMS 自適應濾波
基于隨機加權估計的Sage自適應濾波及其在導航中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合