隨著近幾年移動終端的蓬勃發(fā)展,上一代視頻編碼標準H265/HEVC已經得到廣泛應用,但其壓縮效率仍無法滿足大量4K/1080P等高清視頻資源的需求。過大的視頻資源壓縮文件,占據了存儲空間并吞噬著網絡帶寬,導致用戶觀看視頻時頻繁卡頓。最新一代視頻編碼標準H.266/VVC標準的出現,則給視頻內容的發(fā)展提供巨大的潛力。
據悉,字節(jié)跳動自研的新一代編解碼器BVC已支持H.266/VVC標準,可以在Android、iOS、Linux、MacOS和Windows等平臺上,實現超清、高質視頻的實時快速解碼。
H.266/VVC全稱為多功能視頻編碼 (Versatile Video Coding,VVC,也稱為H.266),是聯合視頻專家組制定的最新一代視頻編碼標準,于2020年7月正式定稿。作為HEVC的繼任者,H.266/VVC能夠在相同的質量下將壓縮效率再提升一倍。舉個例子,使用H.265/HEVC編碼標準,用戶觀看一部電影需要1GB的流量,換成H.266/VVC編碼標準后,僅需500MB的流量,并且在智能終端播放的時候,畫質可以保持不變。H.266/VVC標準,使高清在線視頻不再是流量吞噬者。
盡管H.266/VVC優(yōu)勢十分明顯,但其解碼復雜度顯著高于H.265/HEVC標準,終端設備解碼過程中會出現設備發(fā)熱、耗電增加以及視頻卡頓的現象,影響用戶觀看體驗。因此,在硬件解碼芯片尚未問世的背景下,如何設計并實現一款超高性能的VVC軟件解碼器是眾多音視頻公司的重要目標。
在各種設備上,BVC解碼器可實現對H.266/VVC標準視頻資源的解碼
測試數據顯示,根據國際會議提案JEVT-V128,在搭載A14處理器的iPhone 12上,對于4K分辨率標準測試碼流,BVC單線程平均解碼速度達到了22fps;2線程可以實現4K視頻的實時解碼。對于1080p分辨率標準測試碼流,BVC單線程平均解碼速度是86 fps,即單線程可實時解碼1080p視頻。因此,在高端手機上,BVC解碼器支持流暢播放高清甚至超高清視頻。
圖1 對比不同線程的BVC與VTM-11.0的解碼速度
圖1展示了在iPhone12上,BVC和參考軟件VTM-11.0解碼不同分辨率視頻的速度對比。橫軸依次代表解碼4K、1080p、480p和240p分辨率的視頻;縱軸表示使用VTM-11.0解碼和BVC分別使用1、2、4、6線程解碼的平均幀率,數值越大表明解碼速度越快。虛線表示各分辨率視頻實時播放的常用幀率??梢钥闯觯珺VC僅單線程的解碼速度相較于VTM-11.0就有著6-10倍的巨大優(yōu)勢。
除了上述標準測試碼流外,以BVC編碼器生成的抖音視頻碼流測試顯示,BVC解碼器表現出了強大的解碼性能。在性能遜于iPhone 12的小米6手機上,BVC單線程即可完成1080p視頻的實時解碼;在其它中低端手機上,BVC單線程即可完成對720p視頻的實時解碼。
BVC解碼器的出現,使得在各種性能的設備上均可實現對H.266/VVC標準視頻資源的解碼,并為用戶帶來流暢的觀看體驗。
BVC解碼器如何實現技術突破
流暢的觀看體驗是如何實現的呢?據悉,為了有效降低BVC解碼器的計算復雜度,加快解碼速度,字節(jié)跳動旗下火山引擎多媒體實驗室從并行性、代碼框架、匯編指令和訪存效率等方向進行了優(yōu)化,性能改善顯著。
具體如下:
細粒度的并行算法:BVC支持不同層次的并行算法,包括幀級并行、塊級并行和模塊級并行。幀級并行即同時解碼多個視頻幀,可以充分利用多核CPU的性能,并行程度最高;塊級并行即同時解碼多個解碼塊;模塊級并行即利用CPU的剩余資源,同時處理多個較復雜的模塊。塊級與模塊級相結合可以高效降低視頻幀的輸出時延,保障視頻會議和直播等實時場景的流暢體驗。
對流水線友好的代碼框架:BVC有著非常輕量級的代碼框架,更加迎合空間較小、性能較差的移動端設備。針對各個功能模塊特性,BVC有不同的算法實現,盡可能減少了分支跳轉,提升了CPU流水線的飽和度。
高吞吐量的匯編優(yōu)化:采用高吞吐量的SIMD指令,針對像素幀內預測、幀間插值、量化、變換、重建和環(huán)路濾波等復雜模塊做匯編優(yōu)化,均達到了數倍的模塊加速比,最大程度提升CPU的計算效率。
高效的訪存設計:移動設備內存和緩存空間較小,訪存效率有限,這極大地制約了解碼器的性能。為此,火山引擎多媒體實驗室針對BVC解碼器的訪存進行了優(yōu)化,包括減少內存讀寫次數、集中內存使用和提高緩存命中率。優(yōu)化后,訪存不再成為在移動設備上解碼超高清視頻的瓶頸。
BVC解碼器的單線程達到參考軟件的8.8倍
火山引擎多媒體實驗室使用VVC官方參考軟件VTM-11.0做了一組測試。在通用配置下,生成若干組8比特碼流,打開標準測試條件下的全部工具,包括較復雜的DMVR、BDOF和ALF等。測試的序列為標準通用測試序列,包括class A、B、C、D、F五類。其中,class F是屏幕內容場景,分辨率從480p到1080p不等;class A-D為自然場景,視頻的分辨率分別為4K、1080p、480p和240p。
表1 解碼器速度對比詳細數據
在iPhone 12(A14處理器)上,BVC單線程解碼4K分辨率、8比特標準測試碼流的速度平均達到了22fps,是參考軟件VTM-11.0解碼速度的10倍;在使用全部6個線程后解碼速度甚至可達55 fps,最高達到78fps。對于1080p分辨率、8比特標準測試碼流,BVC解碼器的單線程平均解碼速度是86 fps,達到參考軟件的8.8倍。
總結
BVC解碼器可以實現超清、高質視頻的實時快速解碼,展現出在移動端上卓越的解碼能力,對視頻行業(yè)的發(fā)展和H.266/VVC標準的落地起到積極的推進作用。據著名知識產權媒體IAM報道,截至2021年2月,字節(jié)跳動在H.266/VVC標準貢獻者排行榜上名列全球第三,占比9.33%。
基于實際應用中的問題和挑戰(zhàn),字節(jié)跳動的技術團隊還將持續(xù)發(fā)力,不斷優(yōu)化BVC解碼器的性能,為新一代標準的落地做出更多貢獻。
火山引擎多媒體實驗室團隊介紹
多媒體實驗室致力于研究、探索多媒體領域的前沿技術,參與國際、國內多媒體方向的標準化工作,為多媒體內容分析、處理、壓縮、傳輸、創(chuàng)新交互等領域提供完善的解決方案。目前多媒體實驗室所提供的眾多創(chuàng)新算法已經廣泛應用在了抖音、西瓜視頻等產品的點播、直播、實時通信、圖片等多媒體業(yè)務,在成本、體驗、能力幾方面賦能業(yè)務,為其提供極致的視頻技術和產品體驗。
(免責聲明:本網站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網站出現的信息,均僅供參考。本網站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
任何單位或個人認為本網站中的網頁或鏈接內容可能涉嫌侵犯其知識產權或存在不實內容時,應及時向本網站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網站在收到上述法律文件后,將會依法盡快聯系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。 )