Content Aware ABR技术
本文將簡要介紹編碼優化領域的成員 — Mux?在CAE (Content Aware Encoding) for ABR領域的技術動態。
轉載聲明:本文轉載自公眾號【媒礦工廠】
什么是自適應比特率?
自適應比特率(ABR)流媒體是目前在線視頻業務的關鍵技術。由于不同用戶的帶寬和設備差異很大,因此無法將同一個視頻碼流數據發送給所有用戶(并非每個用戶都有8Mbps的可用帶寬來觀看1080p視頻,而且有些設備不支持1080p)。十年前通常采用的策略是讓用戶自己選擇合適的視頻流,如YouTube播放器中的質量選擇器(下圖左):
但這種方法表現不佳,因為用戶并不總是知道他們可以播放什么樣的視頻而不會出現卡頓。 但ABR技術可通過讓視頻播放器根據用戶端可用帶寬和設備分辨率等因素自動決定要使用的播放格式來解決此問題。如果帶寬狀況較好,視頻播放器可以選擇播放更高質量的節目。如果帶寬降低,播放器可以自動切換到較低質量的節目。例如,YouTube播放器上的“自動”選項設置(上圖右)。
通常,編碼時選擇的分辨率和比特率稱為比特率階梯(bitrate ladder)。Apple提供了一種常用的分辨率比特率組合階梯,作為其iOS設備視頻編碼推薦配置的一部分。下表是Apple推薦的靜態(或固定)比特率階梯。其中,第一列是推薦的分辨率,第二列是推薦的比特率,第三列是推薦的幀率。
靜態的比特率階梯其實是比較低效的。原因在于,不同視頻內容在復雜度方面差異很大,因此針對不同類型的視頻所采用的編碼配置需要作出相應的調整。例如,家庭劇、動作片、游戲節目和足球比賽等需要完全不同的編碼配置。此外,即使是對于同一類型的視頻也可能會需要截然不同的編碼配置。
什么是Per-Title Encoding?
如上所述,實際中如果對每個同類型的輸入視頻使用相同的比特率和分辨率配置,編碼效率會很糟糕。在2015年,Netflix率先推出了Per-Title Encoding編碼方案。其主要處理步驟如下:
1. ? ?使用不同的比特率和分辨率組合對每個輸入視頻進行數十次測試編碼
2. ? ?采用新的質量測量工具(VMAF)對編碼結果進行評估比較
3. ? ?根據用戶實際網絡帶寬和設備狀況,選擇最優的比特率和分辨率組合以提供最佳的視覺質量
Netflix以不同比特率和分辨率組合對輸入視頻進行編碼測試,以便在比特率集合中的每個點上找到對應的比較合適的分辨率大小。對于一個視頻,在1Mbps帶寬下,最好的質量可能在編成720p時達到。類似地,對于其他視頻,在相同的帶寬下,360p或1080p可能會更好。可以預計這樣做會有一定的提升效果。Netflix預估使用該方法后比特率可以降低20%(30%,如果能達到per-scene級優化)。較低的比特率意味著用戶可以獲得更佳的視覺質量、更快的啟動時間(startup time)和更少的重新緩沖(rebuffering)。同時,可以減少流媒體成本開銷。有關Netflix Per-Title Encoding的細節詳見本系列之前的帖子。
這種方法在實際中確實取得了一定的效果,但也存在一些問題。Netflix提出的這種方法需要對工程時間和視頻編碼團隊進行重大投資。大多數公司沒有一個非常專業的視頻編碼專家團隊,他們可能需要花費幾個月的時間來構建Per-Title Encoding編碼優化系統。在資源開銷方面,Netflix的這種編碼方式要比普通方法消耗20倍左右的資源成本。此外,Per-Title Encoding編碼優化處理過程比較緩慢。使用標準方法進行完整的Per-Title Encoding編碼優化需要幾個小時。
目前,Mux 推出的Instant Per-Title Encoding編碼技術改變了這一狀況,可以在較短的時間內為每個輸入視頻提供較好的per-title ABR編碼配置組合。下面將簡要介紹Mux 的Instant Per-Title Encoding編碼優化技術。
Instant Per-Title Encoding
解決上述這些問題的方法是利用機器學習。視頻基礎架構服務公司Mux(包含Mux Data和Mux Video等產品服務)在今年四月份宣布推出了Instant Per-Title Encoding編碼優化技術。該技術提供了一種基于AI的視頻編碼方法,通過利用神經網絡的強大功能,Instant Per-Title Encoding宣稱能夠最快在毫秒級的時間內為輸入視頻創建單獨的自適應編碼配置階梯(encoding ladders)。Mux 的Instant Per-Title Encoding編碼優化技術宣稱相比其他Per-Title Encoding編碼方法可將編碼后的視頻文件大小減少多達30%,視頻質量提高約15%,有效降低各類成本開銷,處理速度加快至少1000倍(數據來源于官網介紹)。對于Mux Video而言,這個處理速度至關重要,它使用的即時轉碼工具可以在數秒內發布新的視頻流,而傳統的Per-Title Encoding編碼優化的方法通常需要幾個小時的處理時間。
目前,視頻數據已占網絡流量的70%左右,而且到2021年在線視頻數據流量預計將翻一番。隨著互聯網技術的發展和智能移動終端的普及,高性能的視頻壓縮技術變得越來越重要。Accel Partners的風險投資家Daniel Levine表示:“由于成本和復雜度的原因,到目前為止Netflix之前提出的Per-Title Encoding編碼方案已經遠遠不能滿足視頻服務提供商的需求。目前利用機器學習的方法使得Per-Title Encoding編碼方案適用于大規模視頻編碼處理是備受青睞的。”
Mux的聯合創始人兼首席執行官 Jon Dahl表示,“Per-Title Encoding編碼是過去幾年視頻編碼應用領域比較重要的進展之一,我們所推出的Instant Per-Title Encoding成為了Per-Title Encoding編碼方案第一個真正意義上對視頻進行實時編碼處理的方法。目前,觀看視頻已經是大多數網絡用戶上網的首要選項,因此高效實時的視頻編碼技術具有非常重要的意義。”
對于Instant Per-Title Encoding,Mux創建了數以萬計的編碼測試集,以便找到質量、比特率和分辨率的凸包。然后在這個數據集上訓練了一系列神經網絡。當一個新的視頻輸入到Mux Video時,它會通過AI模型進行快速分析,并輸出最佳的編碼階梯。那么Instant Per-Title Encoding的AI模型準確度如何呢?Mux已經在該模型上測試了一些新的視頻集,結果顯示要比Apple的靜態比特率階梯更加準確。隨著輸入到訓練模型的視頻越來越多,模型精度和編碼質量也會越來越高。
Instant Per-Title Encoding的處理步驟
Instant Per-Title Encoding編碼通常由兩個步驟組成:預測步驟和訓練步驟。
第一步,每當有新視頻輸入Mux Video時,Instant Per-Title Encoding編碼工具會提取一組視頻幀作為一個序列并解碼為RGB arrays。這些RGB arrays之后會送入Mux的基于AI的凸包生成器(convex hull generator)- Halfpipe。Halfpipe主要通過一個多層神經網絡將這些幀數據進行處理,輸出其per-title比特率配置階梯,該配置遵循對應的最優分辨率、比特率和質量的凸包。所有這些處理操作都能最快在毫秒級的時間內完成,這意味著在Mux Video讀入新視頻時可以同步進行內容自適應編碼處理。
第二步,輸入到Mux Video中的新視頻將會被用作訓練集數據。Mux Video會對之前未接觸過的具有新特性的視頻應用完整的、高質量的Per-Title Encoding編碼過程,并在此結果上訓練Halfpipe模型。這意味著Mux的Instant Per-Title Encoding編碼系統會隨著時間的推移性能會變得更好,并能自動適應它所處理的視頻內容。
測試結果
Mux使用Instant Per-Title Encoding在三個視頻評估集上進行測試運行,并比較了基于AI的結果與實際測試得到的凸包的接近程度。其中,“Trailers”數據集由31個較短的電影預告片組成,“Broadcast”數據集是由4個較長的廣播電視節目的片段組成,“Xiph”數據集是由Xiph.org Video Test Media [derf’s collection](https://media.xiph.org/video/derf/)的9個視頻片段組成。根據Apple推薦的靜態比特率配置階梯,每個視頻片段會被編碼8次得到8種碼率版本,總共有352個編碼輸出。以下兩個表分別給出了Instant Per-Title Encoding和Static bitrate ladder各自得到的凸包與真正凸包的接近程度,以及兩者編碼質量的比較。可以看出,Mux Instant Per-Title Encoding的測試結果明顯更好。
Root Mean Square Error: Mux and Static vs. full convex hull (lower is better)?
Mux vs. Static: Quality (in VMAF)?
隨著時間的推移,測試結果會有一定的提高。在沒有輸入“Broadcast”數據集中的任何視頻內容之前,AI方法的RMSE為0.73,比靜態比特率階梯的結果(0.94)好一些,但沒有達到2倍。然而在讀入“Broadcast”視頻的幾分鐘后,RMSE下降到了0.50。隨著更多訓練數據的加入,可以預期Halfpipe的輸出能夠接近真正的凸包。
從以上結果的分析中可以知道,與使用靜態比特率階梯編碼的視頻相比,Instant Per-Title Encoding編碼的視頻效果更佳,并且為每個輸入視頻都能提供此優化。由于Instant Per-Title Encoding的優化幾乎是實時的,Mux Video可以以更快的速度發布大多數視頻(minutes of video in seconds, hours of video in minutes)。除了對視覺質量的提升外,也會影響流媒體傳輸性能的其他因素,如重新緩沖、啟動時間等。由于 per-title optimization可以在較低比特率下獲得更好的質量,加上視頻加載速度更快、播放不會出現停頓,因而視頻觀看的整體體驗會更佳。
關于Mux
Mux是一家為在線視頻的開發者和發布者開發基礎架構和監控工具的軟件公司,總部位于加州舊金山。Mux最初由一些在線視頻方面的專家于2015年創立,其中不乏互聯網Web端最大的開源視頻播放器(Video.js)、最大的視頻云轉碼服務(Zencoder)以及視頻技術工程師社區(Demuxed)的創建者和技術開發人員。Mux Data是Mux推出的一種QoE分析工具,可以衡量對用戶觀看體驗有實際影響的視頻性能指標,包括重新緩沖、啟動時間、視頻質量和解碼錯誤等。Mux Data通過儀表板可以顯示出一些重要的特征數據,包括性能分數,基于機器學習的預警以及對視頻源的深入分析等功能。Mux Video是一種數據驅動的視頻托管和流媒體API,由Mux Data提供支持,可針對大多數終端設備和網絡帶寬狀況創建合適的視頻格式,并為視頻流提供實時性能分析。
參考資料
http://www.streamingmedia.com/PressRelease/Mux-Launches-Instant-Per-Title-Encoding-Improving-Video-Quality-For-Everyone_47002.aspx
https://medium.com/netflix-techblog/per-title-encode-optimization-7e99442b62a2
https://mux.com/blog/instant-per-title-encoding/
https://mux.com/per-title-encoding/
http://www.streamingmedia.com/Sourcebook/Mux-6056.aspx
LiveVideoStackCon 2018講師招募
LiveVideoStackCon 2018是音視頻技術領域的綜合技術大會,今年是在10月19-20日在北京舉行。大會共設立16個專題,預計邀請超過80位技術專家。如果你在某一領域獨當一面,歡迎申請成為LiveVideoStackCon 2018的講師,讓你的經驗幫到更多人,你可以通過speaker@livevideostack.com 提交演講信息。了解大會更多詳情,請點擊『閱讀原文』訪問LiveVideoStackCon 2018官網,即刻享受6折優惠。
總結
以上是生活随笔為你收集整理的Content Aware ABR技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WebRTCon 2018 Day Tw
- 下一篇: 十月多媒体技术人聚会北京 LiveVid