拍樂雲基於AV1的實時視頻系統技術實踐 | LiveVideoStackCon回顧

fans news 發佈 2021-11-03T01:03:06+00:00

本次分享將圍繞拍樂雲在設計Pano Venus實時AV1通信系統時的一些技術實踐展開深入分析與講解,期望和大家共同探索實時視頻技術的未來。

實時視頻系統對於時延的要求極高,視頻編碼器必須滿足實時性的要求。新一代視頻標準AV1相比主流H.264在Rate-distortation性能的提升上是以複雜度的上升為代價的,當前應用設備的碎片化非常嚴重、設備的運算能力差異巨大,這些都是新技術落地實時系統面臨的挑戰。本次分享將圍繞拍樂雲在設計Pano Venus實時AV1通信系統時的一些技術實踐展開深入分析與講解,期望和大家共同探索實時視頻技術的未來。

文 | 拍樂雲首席科學家 章琦


PART 01

背景

視頻編碼標準的歷史

視頻編碼標準的發展已經有近40年的歷史了,在視頻編碼標準的發展中,國際電信聯盟(ITU)和運動圖像專家組(MPEG)這兩個組織具有舉足輕重的地位。

  • 最早是視頻編碼標準H.120和H.261就是國際電信聯盟在上個世紀80年代所制定,然後運動圖像專家組制定了MPEG-1,MPEG-1是以VCD之名被大家所熟知的編碼標準。
  • 接下來兩大組織聯手成立了聯合視頻專家組(JVET),聯合視頻專家組定了MPEG-2中的視頻部分,也被稱為H.262。MPEG-2是以DVD之名被大家所了解,可以說MPEG-2是迄今為止最成功的視頻標準之一,絕不遜色於現在的H.264-AVC。
  • 後來國際電信聯盟又制定了H.263標準,運動圖像專家組制定了MPEG-4,這兩個標準都沒有取得像MPEG-2這樣的成功. 然後兩大組織再次聯手(JVET)制定了H.264-AVC標準。H.264制定於二十一世紀初,到現在已經近20年,卻依然在行業應用占據了絕對的領先地位,獨領風騷二十年。
  • 聯合視頻專家組在2014年制定了H.265-HEVC,其技術值得稱道,但是專利費用的混亂和昂貴,阻礙了H.265在行業內的應用,無法撼動H.264的地位。JVET後續又制定了H.266-VVC,其專利授權問題依然需要被關注,如果H.266能提供比較友好的專利授權方案,未來會是充滿期望的。
  • 另一個重要的視頻標準組織是以Google為代表的開放媒體聯盟(AOM),AOM制定的AV1標準,展示出超過H.265-HEVC的編碼性能,擁有豐富的編碼工具支持,可以極大地提高視頻的壓縮比,節省大量帶寬,同時,AV1 作為開放媒體聯盟 AOM 制定的第一代標準,除了有非常好的生態支持,還提供了免費的專利政策,相比 H.265 / H.266 等智慧財產權政策不明確的視頻標準,有巨大的優勢。清晰明確的專利政策也是 AV1 在產業界被推崇的一大優勢。
  • 除了上述三家標準組織,AVS也值得一提。AVS是我國自己的標準組織,它定義的AVS標準迄今已經發展到AVS-3,從AVS分享的數據來看,AVS-3具備了優秀的編碼性能,不過要建立AVS的生態,依然非常困難。

編碼器的基本框架

雖然編碼標準的發展經歷了多個疊代,新的編碼工具令人眼花繚亂,不過編碼器的基本框架卻沒有大的變化。

從H.261到現在的H.266和AV1, 都依然是混合編碼框架,其核心模塊包括:塊的分割(16x16~128x128)、基於塊的預測(intra and inter prediction)、基於塊的變換(transform)、量化(quantization)、熵編碼(entropy coding)。對於開發視頻應用的同學來說,不需要了解編碼器和解碼器的技術細節,不過需要了解一些最基本的概念,比如說關鍵幀(Key-frame/I-frame)。

所謂關鍵幀,就是它的塊預測僅使用幀內預測(intra prediction),這就意味著,關鍵幀並不依賴於它之前或者之後的幀,只需要關鍵幀的數據是完整的,就可以被正確解碼(這個描述忽略了SPS/PPS等參數集, 參數集的重要性可以被認為是等同於關鍵幀),這就是在實時系統中,當解碼遇到錯誤的時候,會採用關鍵幀請求的技術來恢復解碼的原因。

另一個需要了解的概念是P-frame(實時系統中一般不使用B-frame, 因此本文避免提及)。P-frame也就是使用了前向預測的幀,它的解碼會依賴於前面的某一幀或者某幾幀,在編碼器的實現中,可以採用非常靈活的前向預測結構,根據條件的不同,可以參考最近的前一幀(latest frame),也可以選擇稍微遠一些的前向幀,利用long-term-reference技術,甚至可以選擇非常早的幀,編碼器的時間分級技術,本質上就是參考結構的選擇。靈活的前向參考結構,可以結合實際使用場景和擁塞控制算法,衍生出豐富的變化。

PART 02

Pano Venus 的挑戰

AV1在實時系統中的落地面臨著巨大挑戰,用戶系統的碎片化非常嚴重,很多的低端設備甚至無法很好的支持H.264視頻。另一個比CPU性能更嚴峻的挑戰是設備過熱問題。

拍樂雲實時低碼高清編碼引擎Pano Venus,採用新一代視頻編碼標準AV1,克服了AV1運算複雜度過高的問題,創新地提出多種加速編碼算法,大幅提升實時視頻的編碼性能和編碼速度。經過算法和處理器特性相關的優化,可以在全平台設備上將編碼時延控制在毫秒級,同時,在相同的視頻質量下,Pano Venus的所需帶寬相比主流採用H.264標準的編碼引擎平均降低40%到70%,其所使用的編碼器是目前已知的國內最快的AV1編碼器。

值得一提的是,Pano Venus選擇落地行動裝置的時候,非常關注設備的過熱問題,每個落地的設備都會在Pano音視頻實驗室經歷了長時間的測試,分析溫度的變化和電量的消耗,確保不會影響用戶體驗。

PART 03

AV1 複雜度分析

AV1編碼性能的提升,源於它的高複雜度。我們需要對AV1編碼和解碼的複雜度有比較清晰的認知。以目前開源的aomenc和dav1d為參照,我們通過一些實驗來分析,下文是一些測試結果。

解碼性能:

編碼性能:

這個測試數據可見,儘管AOM開源的aomenc和Vidaolan的dav1d在性能上已經做了非常大的優化,但是相比Cisco開源的openH.264,AV1編碼和解碼的複雜度增加仍然非常巨大, 這些對落地AV1於實時場景造成了很大挑戰。Pano Venus以aomenc和dav1d作為benchmark,尤其針對移動ARM平台,實現了多種加速算法和平台相關的工程優化,為AV1的落地打造了可能。

PART 04

可伸縮 AV1 編碼

AV1標準定義了靈活的可伸縮編碼結構,它可以用如下的式子來描述:

[L|S] [Number] [T] [Number] [h] [KEY] [SHIFT]

目前行業內廣泛採用的simulcast方案,可以被視為上述的可伸縮編碼結構的子集,相比simulcast,更靈活的SVC結構未來很可能會成為實時通信中主流。

PART 05

Pano Venus 的未來

Pano Venus已經正式上線,但是我們對它的期望不止於此,未來我們希望繼續提升它的性能:

  • 更靈活的編碼複雜度伸縮方案, 覆蓋更多設備
  • 主觀視覺編碼, 進一步提升編碼性能
  • 支持桌面編碼工具集, 支持桌面編碼
  • 並行編碼框架, 充分利用多核處理器的性能, 提升編碼效率

AV1技術雖然早已加入到WebRTC,但由於算法複雜度比H.264高很多倍,實時性一直是大家特別擔心的問題。拍樂雲對AV1在實時通信方面做了積極的商業化探索,我們堅信技術的創新能為多媒體生態的發展創造更大的想像力。

參考文獻

[1] AV1 Bitstream & Decoding Process Specification

[2] https://www.w3.org/TR/webrtc-svc

[3] RTP Payload Format For AV1 (v1.0)

關鍵字: