如何使用下一代編碼技術提升流媒體體驗

livevideostack 發佈 2019-12-30T14:27:25+00:00

Photo by Elina Krima from Pexels本文來自Bitmovin總裁及聯合創始人Stefan Lederer LiveVideoStackCon2019北京大會上的分享。

本文來自Bitmovin總裁及聯合創始人Stefan Lederer LiveVideoStackCon2019北京大會上的分享。Stefan介紹了下一代編解碼器和編碼技術的實施,以及如何讓觀眾有更好的流媒體和視頻體驗。另外,還進一步解釋HEVC、VP9和AV1如何在不同的設備上運作。如果將這些編解碼器結合,可以降低比特率獲取更大的存儲空間,把CDN成本降低30%。

文 / Stefan Lederer

整理 / LiveVideoStack

讀者們好,今天我將使用本公司Bitmovin與Hulu合作的案例,探討Multi-Codec Streaming, 3-pass和Per-Title encoding技術。

1. Bitmovin

首先,簡單介紹一下Bitmovin,Bitmovin 是一家提供編碼產品、播放器產品、分析產品的公司。我們專注於開發商以及API, 所以工具都聚焦在API開發人員的各個需求。

這對於我們以及客戶是一個很重要的話題,因為我們的客戶是根據特定用例配置我們的軟體的開發者,所以每個用例都是獨特的。

1.1 Hulu 日本社區

說到新的編碼技術和編解碼器,我們的研究數據和結果是以Hulu 日本社區的一個實際例子為基礎。Hulu Japan是日本廣泛使用的視頻流平台。

Hulu Japan使用了一些新推出的編碼技術,使它們能夠更高效地在市場上提供更好的質量的內容。同時,通過這些新的編碼方式和新的編碼技術,可以降低CDN的成本。

我們能想到的,比如電腦、平板電腦、智慧型手機、遊戲機和電視都包括在內。

這從編碼技術的選擇的角度來看,加上實際編解碼器的循環選擇挺有意思。這些設備都支持H.264, 像瀏覽器一樣支持VP9,我們知道大多數移動設備都支持VP9和HEVC。

接下來,你可以看到主要支持HEVC的電視機,還有一些支持VP9的Android的電視機。從配置的角度來看,每個設備都將面臨挑戰。

1.2 設備方面的挑戰

比起其他的VOD流媒體服務,存儲成本和CDN成本依然是最大的成本組成。儘管這樣,理想的目標還是保持高質量、同時降低成本。大多數的流媒體服務都希望能夠受市場驅動,因此大多數流媒體服務使用singleencoding比特率階梯。

目前,一個single encoding比特率階梯可能不是各媒體流服務的最佳配合。我們所播放很多不同類型的內容,比如動畫,動作片等等。單個的比特率階梯(比如one ABR比特率階梯)不能支持所有流服務中的內容。Per-Title Approach想達到的是在於平台的per-asset和per-content的基礎上提供更好的質量。

在每個市場,因為多個流媒體服務的競爭對手太多,能輸出高質量的內容分布是非常重要的。在日本,我們有Hulu,Netflix及一系列的服務平台。如果能夠用最新的技術區分質量和用戶體驗,那當然會助於產品改進。

他們也是想要使用市場上最新的技術棧,但是我們應該從設備支持的角度評估這方面的可能性。比如說,我們正在研究AV1和VVC,AV1已是成品標準而VVC還不是。大多數設備都支持AV1,但是它可以實施落地嗎?

我們第一批的客戶為正在對protected content(受保護的內容)部署AV1。對於Hulu Japan的運營,AV1最大的障礙之一還是因為Chrome和Firefox所使用的H.265/HEVC並不支持protected content。

1.3 Hulu Japan

我們探討過在adaptive bitrate ladder (自適應比特率階梯)中使用Per-Title Encoding技術。另外,我們也使用multiplecodecs (多個編解碼器)。這些技術的結合讓我們每月節省大約30%的 CDN總成本。

我們使用的新技術稱為3-pass 編碼,幫助提高編碼效率。基本上,我們優化現有的編解碼器,無論是H.264、HEVC還是VP9,最後決定理想比特率的階梯。

基於per-asset,我們先把基本值的ideal bitrate configuration(理想比特率配置)定下來,過後才選擇multi-codec(多編解碼器):在H.264、HEVC、VP9中做出選擇。

2. 3-pass 編碼

3-pass 編碼增加多一個pass 以便做出整個基本值的最初分析。第二,我們將分析每一階段段的動作位數。在第三步驟,我們對會每一塊chunk separate fridge進行編碼,並採用分布式速率控制,並做出適當的改變。這方式與multi-passencoding和multi-weight control有很大差異。這也是我們從零開始構建的,稱之為3-pass 編碼。

H.264是個高效的編解碼器,在市場上已應用15年,但是我們覺得可以改進的地方是weight-control。從圖中,我們看到了對速率控制和3-Pass編碼步驟的改進。我們可以通過不同的解析度和比特率階梯平均將文件大小減少大概13%。

最終的質量影響極小,你可以節省大約13%的輸出文件大小,但是質量差距不大。例如,我們只損失0.05 Db PSNR,它對質量方面的影響不大,但對文件方面的影響更大。它確實在於較低的比特率輸出當下,擠出相同質量的視頻。

3. Per-Title Encoding

現在我們已經對編碼進行了優化。之後我們再仔細看看比特率階梯,決定哪個ABR比特率配置最適合這個特定用例。

我們都知道每個內容都不一樣,如果ABR-HLS內置有一個通用的比特率階梯,那可能會消耗帶寬,以非常高的比特率或不必要的質量進行編碼,我們在產生噪音。第二,我們可能在過低的比特率進行編碼後引入了encoding artifacts(編碼偽影)。

任何低於35 PSNR的產品都被認為是質量低劣的。任何高於45 PSNR的標準,質量可能不會有太大的下降,一般觀眾還能接受的。

例如,一般的比特率階梯有許多不同的表示,其中許多表示低於35db,而大部分都高於45db。我們需要考慮其理想配置的解析度和比特率,還有使用的比特率的數量。

這個standard profile bitrate ladder標準配置文件比特率階梯(橙色線)可以縮減為Per-title 比特率階梯(藍色線),以較小的比特率在35和45 dB PSNR之間提供理想配置。

這是我們從Hulu Japan中所使用的動畫內容以及漫畫內容,比較極端的一個例子。這種方式顯然在浪費帶寬、編碼算力,而我們可以將特定基本值減少到較小的表示形式。

Adaptive bitrate ladder到底有什麼好處?比特率會降低;如果我們只使用對於內容有意義的比特率,我們可以保持CDN Egress 的輸出。因為我們沒必要對每個representation進行編碼,所以會減少存儲空間。

一旦有固定的質量輸出,整個儲存庫的質量會提升。如果沒有過高質量或低質量的視頻,總體用戶體驗將變得更加順暢。

值得注意的是,每個內容都有不同的比特率階梯配置。上圖可見,從九種不同的比特率和解析度選擇,減少到六種。

如果階梯之間的質量差太小,最好把它刪除掉。例如,我們分析了1080p視頻需要達到6500 Kbps的比特率。基本上,當你計算出所有比特率的平均值時,我們從每秒2350kbps變成了平均1362.25kbps。

我們發現比特率階梯的平均比特率降低了,因為我們平均只需要減少40%的比特率。我們創建的所有編碼存儲都減少了54%,由於該內容所需的存儲空間更少,從而提高了用戶的體驗質量。1080p的最低比特率是4500kbps。使用自適應比特率階梯,我們估計可以以2100 Kbps的速率轉換1080p質量的視頻。

如果我們根據使用的比特率和產生的質量來比較bitrate ladder,我們可以看到橙色線的GenericBitrate Ladder (通用比特率階梯)。Per-Title的比特率階梯(藍線)始終產生的質量很高,每秒不超過3000 Kbps。這反過來又為觀眾帶來了更高的平均質量。

這是每月成本匯總的原始設置。Per-Title在編碼上投入了大約相同的資金,雖然額外的成本的還花在編解碼器和3-Pass編碼。但我們的CDN成本的確下降了不少。每個月,Hulu可以利用這個技術降低30%的總成本。

4. multiplecodecs

在中國,大約29%的移動市場份額被iOS占據,其中大部分是iOS 11或更高版本,也可以在這些設備上支持HEVC。中國78.2%的移動市場是Android,所以VP9支持Android 4.4KitKat或更高版本。

理論上,77.3%的移動設備可以使用VP9。雖然很多安卓設備都不能正確的支持VP9,但其中許多設備都是低功耗的。依據基礎的理論,可以支持VP9的設備的最大數量是77.3%。

一般上,你可以為97%的移動設備提供比HEVC更高效的編解碼器,而不是H.264。我們都知道HEVC的效率比H.264高50%,也知道VP9的效率不差,效率的比數比H.264高出40%。

這些移動設備只是一個例子,只想展示其使用比H.264更先進的編解碼器以及無限的可能性。

以Hulu Japan為例,我們使用標準比特率階梯並按標題製作Per-Title。這已經減少了56%的平均比特率。當我們使用H.264和VP9時,這個配置降低了大約39%平均比特率。

因此,以1080p視頻為例,我們只需要800kbps就可以開始使用最低的full HD表示。雖然這是為VP9或HEVC上支持的設備保留的,但是它是邁向下一個優化級別的正確軌道。

如果你使用創建的static bitrateladder,並且年復一年地對每項資產使用,你可能就在浪費比特率和金錢。例如,1080p需要4500 Kbps。

我們可以節省空間,選擇800 Kbps的第一個HD表示。通過使用更高級的編解碼器,我們可以將編碼的文件大小從1.5gb減少到380mb。

我們之前看到的標準比特率階梯的橙色線,我們看到的是藍色的優化每標題行,現在我們添加的是黃色的H.265和HEVC。我們能夠產生更高的質量,並進一步降低比特率。

基本上,我們可以看到三通編碼如何通過更好的權重控制來提高編碼效率。我們可以看到每個標題編碼如何在每個資產的基礎上優化比特率階梯,並刪除不必要的表示。除此之外,更先進的編解碼器的結合對很多設備更有利用價值。當然的,通過現有的VP9或HEVC,或者AV1和VVC,你可以在大多數設備上實現這個技術。

關鍵字: