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