騰訊發布全球首個面向移動端的H.266/VVC標準視頻解碼器,即其自研的O266移動端版本,手機可看4K超高清VVC視頻。O266已成為世界領先的全平臺VVC解碼器,支持main10 profile,包括高分辨率、高動態范圍、屏幕內容編碼等重要功能。
近幾年,以視頻為信息載體的互聯網應用越來越廣泛,海量視頻數據的存儲及傳輸對視頻編解碼技術提出了更高的要求。以騰訊為代表的眾多國內外公司參與的新一代國際視頻編解碼標準 H.266/VVC相較于上一代標準H.265/HEVC,在同樣的主觀質量下,可以減少50%左右的數據大小,既能滿足人們對視頻質量的追求,又能降低存儲與流量消耗。
H.266/VVC在main10 profile里能同時支持高分辨率、高動態范圍、屏幕內容編碼等功能,進一步提升在各種視頻場景下的編解碼能力,這得益于其更靈活的編碼結構和更加優化的編碼技術。
騰訊自研的H.266/VVC編解碼器 O266enc和O266dec,由騰訊多媒體實驗室編解碼團隊于2019年牽頭并協同騰訊云架構平臺部、微信和騰訊視頻等多個團隊聯合研發。經過不懈的努力與探索,最終在H.266/VVC標準定稿后的三個月內,即2020年10月,率先發布了基于X86平臺的實時H.266/VVC解碼器O266dec,以及基于該解碼器的開源播放器O266player,目前能夠在PC端上完成4K H.266/VVC視頻的實時解碼。
△ O266player視頻播放示意圖
2021年1月,O266dec新增main10 profile移動端解碼器,進一步促進了H.266/VVC標準生態建設。它以全面的模塊性能優化和出色的并行結構設計,能夠達到266標準在移動端的單核1080p或多核4K碼流的實時解碼,未來將廣泛應用于面向移動端的視頻點播、視頻直播、音視頻通信、視頻智能生產、短視頻、VR/AR等各個領域,服務于騰訊內外部相關業務。
O266player能夠實現清晰流暢的視頻播放,得益于O266dec優秀的視頻解碼架構,通過多維度的并行處理,從而達到大幅利用多核多線程技術的目的,使其解碼性能指標大幅提升。O266dec的并行解碼架構主要包括以下四個方面:
第一、幀層級并行:獨立并行解碼幀內預測幀,以及沒有相互依賴性的幀間預測幀;同時不同幀之間的熵解碼和像素處理也可以并行。
第二、CTU層級并行:利用Wavefront技術可以實現不同CTU行之間的CTU級的并行解碼。
第三、模塊層級并行:針對像素的操作,如運動矢量推導、預測、反量化、反變換和重建等,以及環路濾波操作可以并行處理。
第四、亞CTU層級并行:所有幀間預測CU都可以并行解碼,并最大程度的利用SIMD指令。
為了能夠在移動端支持H.266/VVC解碼,騰訊多媒體實驗室在O266dec上增加了許多移動端相關優化,使得其解碼器性能在移動端得到大幅提升。
例如,自適應環路濾波器(Adaptive Loop Filter,ALF)作為H.266/VVC解碼器中復雜度最大,優化難度最高的模塊,是騰訊在移動端平臺上優化的重點,該模塊在整個解碼過程中的復雜度占比如圖所示。
△ 優化前各模塊解碼復雜度占比圖
從圖中可以看出ALF模塊占整個解碼復雜度的60%以上,復雜度占比遠超其他模塊,同時它的優化復雜度也是最高的,流程上的簡化以及提升并行性都是比較困難的,因此是所有模塊中優化優先級最高的。為提升移動端ALF解碼速度,團隊對整個ALF流程進行整理與分類,并充分結合移動端SIMD對ALF濾波模塊進行優化,使得解碼器速度得到大幅提升, 解碼速度是原始代碼的2倍以上。
除去ALF模塊之外,對于同樣復雜度較高的插值(Interpolation)模塊,團隊也對其進行了細致優化。插值模塊也是H.266/VVC解碼器中計算量比較大的一個模塊,其涵蓋的多種多樣的濾波器是整個模塊的優化重點。團隊對濾波器參數特點進行了充分的分析,并將其根據參數類型以及輸出結果進行分類與邏輯優化,在結合移動端SIMD的基礎上,使得解碼速度得到明顯提升。
除去一些通用模塊,團隊對于針對B幀等其他編碼工具集模塊都著手進行了優化,優化范圍與內容相對比較全面。例如雙向光流(Bi-directional optical flow,BDOF)模塊,它是一個用于4x4子塊級別上優化CU的雙向預測信號,經過團隊的細致優化,這一模塊的解碼速度也獲得了進一步提升。
此外團隊對于其他重要模塊也都進行了深度優化,優化完成后各模塊性能占比餅圖如下圖所示。
△ 移動端優化完成后各模塊復雜度占比示意圖
以IOS端A14處理器為測試平臺,O266dec移動端性能如下:
在單線程下,O266dec在采用RA(Radom Access)配置時, 對于2K標準序列,可完全滿足30fps實時解碼的需求;對于2K SCC(Screen Content Coding)序列可充分滿足60fps以上的實時解碼需求。
在多線程下,O266dec在采用RA(Radom Access)配置時, 4K標準序列在6線程下的解碼速度可以達到30幀左右,可以實現266在移動端的實時解碼。
同時,騰訊自研的解碼器也已經集成在了O266player的iOS端應用上,在移動端播放H.266解碼畫面清晰流暢,能夠充分滿足H.266/VVC實時解碼的需求,性能優勢十分明顯。
面向移動端的O266dec是國內首個H.266/VVC標準在移動端的實際應用,是騰訊視頻編解碼技術進展的又一個重要里程碑。未來騰訊多媒體實驗室將持續優化和完善解碼器,將最新技術輸出至行業,助力多媒體生態技術的發展以及數字化產業的建設。