基于镜头的编码
基于鏡頭的編碼比基于主題的編碼帶來更高的編碼效率,由于對內(nèi)容感知的粒度更加細(xì),這種改變的結(jié)果顯而易見。然而,更細(xì)粒度的編碼也會(huì)帶來更高的負(fù)責(zé)度,比如在AWS環(huán)境中,在基礎(chǔ)設(shè)施服務(wù)失效的情況下,如何最大限度的保留已編碼的成果,從而減少重復(fù)編碼工作。本文來自Netflix的科技博客,LiveVideoStack對原文進(jìn)行了摘譯。
文 / Megha Manohara,Anush Moorthy,Jan De Cock,Ioannis Katsavounidis, Anne Aaron
譯 / 元寶
原文 : https://medium.com/netflix-techblog/optimized-shot-based-encodes-now-streaming-4b9464204830
當(dāng)您正在從Netflix上收看的最喜愛的電視節(jié)目或電影時(shí),糟糕的畫質(zhì)——如成塊狀,模糊,扭曲的臉部和物體 ,會(huì)讓你不想再看下去。在很多情況下,低帶寬網(wǎng)絡(luò)或數(shù)據(jù)限流導(dǎo)致我們接受不了完美的圖像。為了解決這個(gè)問題,Netflix視頻算法團(tuán)隊(duì)一直在研究更高效的壓縮算法,來讓Netflix能夠在使用更少帶寬的同時(shí)提供相同或更好的圖像質(zhì)量。在Netflix與其他研究團(tuán)隊(duì)一起工作時(shí),為了支持新的視頻流和確保Netflix設(shè)備的無縫播放,我們更新了客戶端應(yīng)用程序和流媒體基礎(chǔ)設(shè)施。
為了改善我們的會(huì)員的視頻質(zhì)量,我們在2015年開發(fā)并部署了“按主題”編碼,在隨后一年提供了更好的“用于移動(dòng)端下載的編碼”。我們的下一步是制作一個(gè)基于鏡頭的編碼框架,稱為動(dòng)態(tài)優(yōu)化器,從而在視頻流中實(shí)現(xiàn)更細(xì)粒度的優(yōu)化。在本文中,我們將介紹一些我們在實(shí)現(xiàn)將此框架應(yīng)用在生產(chǎn)流程時(shí)克服的困難,還有介紹為我們的會(huì)員改善視頻質(zhì)量后的實(shí)際效果。
在生產(chǎn)環(huán)境中實(shí)現(xiàn)動(dòng)態(tài)優(yōu)化器
動(dòng)態(tài)優(yōu)化器分析整個(gè)視頻是通過多個(gè)質(zhì)量和分辨率點(diǎn)來獲得編碼的最佳壓縮軌跡,并給出優(yōu)化目標(biāo)。特別地,我們利用Netflix的主觀視頻質(zhì)量度量VMAF作為我們的優(yōu)化目標(biāo),因?yàn)槲覀兊哪繕?biāo)是以最佳感知質(zhì)量生成流的。
我們在生產(chǎn)中實(shí)現(xiàn)動(dòng)態(tài)優(yōu)化器框架時(shí)遇到的主要挑戰(zhàn)是對我們的“并行編碼管道”進(jìn)行了改進(jìn),以處理更多的編碼單元。首先,動(dòng)態(tài)優(yōu)化器的分析步驟需要以不同的分辨率和質(zhì)量(QP)進(jìn)行編碼,這需要更多的復(fù)雜度。其次,我們從大約幾分鐘長的編碼視頻塊轉(zhuǎn)換到基于每個(gè)鏡頭的視頻編碼。例如,在原始系統(tǒng)中,一個(gè)1小時(shí)的《怪物奇語》片段會(huì)產(chǎn)生20個(gè)3分鐘的塊。使用基于鏡頭的編碼,平均鏡頭長度為4秒,同一片段要求處理900個(gè)鏡頭。假設(shè)每個(gè)塊對應(yīng)一個(gè)鏡頭(圖1B),新框架將每塊編碼的標(biāo)題數(shù)量增加了兩個(gè)數(shù)量級(jí)以上。這會(huì)增大與計(jì)算實(shí)例之間傳遞的消息數(shù)量有關(guān)的系統(tǒng)Oracle數(shù)據(jù)庫。為了解決這些限制,我們進(jìn)行了幾項(xiàng)工程創(chuàng)新,我們在這里討論了其中的兩個(gè):校對和檢查點(diǎn)。
盡管我們可以改進(jìn)核心消息傳遞系統(tǒng)來處理這種消息量的增加,但這并不是當(dāng)時(shí)最可行和最方便的解決方案。我們通過引入校對來改編我們的管道。
圖1:將鏡頭整理成“塊”。(A) 視頻時(shí)間線的表示。黑色虛線表示鏡頭邊界。(B) 一個(gè)塊中的一個(gè)鏡頭:每個(gè)鏡頭被分配一個(gè)塊。(C)將鏡頭分類為塊:在目標(biāo)塊持續(xù)時(shí)間內(nèi)累積整數(shù)鏡頭數(shù)。
在“校對”中,我們將鏡頭整理在一起,以便一組連續(xù)的鏡頭組成一個(gè)塊。現(xiàn)在,考慮到我們在這種排序方式上的靈活性,我們可以將整數(shù)個(gè)鏡頭組合在一起,以便在基于塊的編碼模型下產(chǎn)生與之前大致相同的3分鐘持續(xù)時(shí)間的塊(圖1C )。這些塊可以被配置為大致相同的大小,這有助于為以前調(diào)優(yōu)的實(shí)例進(jìn)行資源分配,這些實(shí)例可以在幾分鐘內(nèi)進(jìn)行編碼。在每個(gè)塊中,計(jì)算實(shí)例用它自己的一組定義參數(shù)獨(dú)立編碼每個(gè)鏡頭。
?圖2:檢查點(diǎn)
通過在一個(gè)塊中整理獨(dú)立編碼的鏡頭來改進(jìn)系統(tǒng),我們稱之為檢查點(diǎn)。以前,如果我們丟失了一個(gè)計(jì)算實(shí)例(因?yàn)槲覀円呀?jīng)借用了它但突然需要執(zhí)行更高優(yōu)先級(jí)的任務(wù)),我們重新編碼了整個(gè)塊。在拍攝的情況下,每個(gè)鏡頭都是獨(dú)立編碼的。一旦完成一個(gè)鏡頭,如果實(shí)例在對塊的其余部分進(jìn)行編碼時(shí)丟失,則不需要重新編碼。我們創(chuàng)建了一個(gè)檢查點(diǎn)系統(tǒng)(圖2),以確保每個(gè)編碼鏡頭和相關(guān)元數(shù)據(jù)在結(jié)束后立即存儲(chǔ)。現(xiàn)在,如果在另一個(gè)計(jì)算實(shí)例上重試相同的塊,那么編碼不會(huì)從頭開始,而是從其中斷的位置開始,從而節(jié)省計(jì)算量。
壓縮性能
2016年12月,我們推出了用于移動(dòng)端下載的AVCHi-Mobile和VP9-Mobile。對于這些移動(dòng)端編碼,一些變化使得壓縮性能優(yōu)于每個(gè)主題編碼,包括更長的GOP,靈活的編碼器設(shè)置和每個(gè)塊的優(yōu)化。這些數(shù)據(jù)流是傳統(tǒng)速率控制設(shè)置的H.264 / AVC和VP9編碼的高質(zhì)量基準(zhǔn)。
下圖(圖3)演示了動(dòng)態(tài)優(yōu)化與基于鏡頭編碼的組合如何進(jìn)一步提高壓縮效率。我們繪制了我們新優(yōu)化編碼的比特率VMAF曲線,稱為VP9-Opt和AVCHi-Opt,與
--用于下載的按塊編碼(VP9-Mobile和AVCHi-Mobile)
--按主題編碼流(AVCMain)。
為了構(gòu)建這個(gè)圖表,我們從我們的目錄中抽取了數(shù)千個(gè)標(biāo)題的樣本。對于每個(gè)比特率x(水平軸上)以及每個(gè)標(biāo)題,我們選擇比特率≤x 的最高質(zhì)量編碼(由VMAF的值表示)。然后,我們對給定x的所有標(biāo)題求平均VMAF值,這為下圖中的每條曲線提供了一個(gè)點(diǎn)。掃描所有比特率值x,得到5條曲線,對應(yīng)于上面討論的5種編碼類型。假設(shè)網(wǎng)絡(luò)條件穩(wěn)定,這是您在Netflix服務(wù)中以特定視頻帶寬獲得的平均VMAF質(zhì)量。
圖3:按主題,按塊和新優(yōu)化編碼的壓縮效率。
讓我們通過在VMAF = 80(良好質(zhì)量)下繪制水平線來說明等效質(zhì)量下比特率的降低,這給出了以下比特率:
我們可以看到,與使用AVCMain進(jìn)行的按主題編碼相比,經(jīng)過優(yōu)化的編碼需要不到一半的比特?cái)?shù)來實(shí)現(xiàn)相同的質(zhì)量。使用VP9-Opt,我們可以在AVCMain的三分之一比特?cái)?shù)以下流傳輸相同的質(zhì)量。與AVCHi-Mobile和VP9-Mobile相比,我們分別節(jié)省17%和30%。
我們還研究了在相同的帶寬下視覺質(zhì)量如何受到影響。例如,250 kbps的平均蜂窩連接帶寬下的平均VMAF值如下表所示。可以看出優(yōu)化后的編碼比AVCMain提供了明顯更好的視頻質(zhì)量。
為了說明視覺質(zhì)量的差異,下面的例子顯示了Chef's Table片段中的一個(gè)幀圖像,分別從大約250kbps比特率的不同編碼方式中獲得。顯而易見,圖紋理的質(zhì)量提高了(如磚,樹,巖石,水等)。在AVCMain(圖4A,VMAF = 58)和AVCHi-Opt(圖4B,VMAF = 73)之間能觀察到視覺上明顯的差異。VP9-Opt幀(圖4C,VMAF = 79)看起來最清晰。
圖4 (A): AVCMain, 250 kbps, VMAF=58.
圖4 (B): AVCHi-Opt, 254 kbps, VMAF=73.
圖4 (C): VP9-Opt, 248 kbps, VMAF=79.
在下面的例子中,我們顯示了一張“13 Reasons Why”的開場景,分別以大約250 kbps的碼率的不同編碼方式得到。對于AVCMain(圖5A),頂部的文本幾乎不清晰,值得VMAF值為60.對于AVCHi-Opt(圖5B),我們看到質(zhì)量大幅跳躍到74的VMAF值。對于VP9 -Opt(圖5C),文字和邊緣變得清楚,并且在質(zhì)量上顯著增加,這也反映在81的VMAF值中。
Figure 5: (A) AVCMain, 260 kbps, VMAF=60; (B) AVCHi-Opt, 257 kbps, VMAF=74; (C) VP9-Opt, 252 kbps, VMAF=81.
現(xiàn)場測試優(yōu)化的編碼
在前面的章節(jié)中,我們說明了優(yōu)化后的編碼比按主題編碼有更高的壓縮效率,從而可以在相同的比特率下提高質(zhì)量,或在相同質(zhì)量下降低比特率。但問題在于這是否會(huì)為我們會(huì)員提供的更好體驗(yàn)。
在實(shí)際中部署任何新的編碼算法之前,我們在不同平臺(tái)和設(shè)備上的使用“A/B testing”來全面地驗(yàn)證流的可播放性?!癆/B testing”為我們提供了一種可控的方式來比較處理單元(我們的新編碼)與控制單元(現(xiàn)有經(jīng)驗(yàn))的體驗(yàn)質(zhì)量(QoE)。我們通過運(yùn)行A / B測試,將我們優(yōu)化的編碼與現(xiàn)有的AVCMain流式體驗(yàn)在各種設(shè)備和標(biāo)題上相比較。這也使我們能夠?qū)Σ煌脚_(tái)的編碼算法和自適應(yīng)流引擎進(jìn)行微調(diào)。
我們評(píng)估了優(yōu)化編碼對不同QoE指標(biāo)的影響。根據(jù)A/B testing的結(jié)果,我們期望對會(huì)員的觀看體驗(yàn)進(jìn)行以下改進(jìn):
--對于低帶寬連接的會(huì)員,我們將以相同(甚至更低)的比特率提供更高質(zhì)量的視頻。
--對于具有高帶寬連接的會(huì)員,我們將以較低的比特率提供相同的優(yōu)質(zhì)服務(wù)。
--當(dāng)網(wǎng)絡(luò)吞吐量急劇下降時(shí),許多會(huì)員將遇到更少的緩沖和質(zhì)量下降。
--支持VP9流的設(shè)備將以相同的比特率獲得更高的視頻質(zhì)量。
此外,我們的許多會(huì)員的手機(jī)套餐都有數(shù)據(jù)量上限。使用新的優(yōu)化編碼,這些成員現(xiàn)在可以使用相同數(shù)量的數(shù)據(jù)以相同或更高的質(zhì)量傳輸更長時(shí)間的Netflix視頻。優(yōu)化的編碼也可用于我們的離線下載功能。對于可下載的視頻,我們的會(huì)員可以在相同存儲(chǔ)空間上獲得更高質(zhì)量視頻。
重新編碼和設(shè)備支持
在過去的幾個(gè)月中,我們?yōu)檎麄€(gè)Netflix的產(chǎn)品都生成了AVCHi-Opt編碼,并開始在多個(gè)平臺(tái)上進(jìn)行流式傳輸。在iOS,Android,PS4和XBox One上觀看Netflix時(shí),您目前可以享受這些優(yōu)化的視頻流。VP9-Opt流可用于選擇流行內(nèi)容,并可在某些Android設(shè)備上進(jìn)行流式傳輸。我們正在積極在其他設(shè)備和瀏覽器上測試這些新流。
無論您是使用最快速的寬帶連接觀看智能電視上的Chef's Table,還是使用蜂窩網(wǎng)絡(luò)在移動(dòng)設(shè)備上觀看Jessica Jones,Netflix都致力于提供盡可能最佳的圖像質(zhì)量。新優(yōu)化編碼的推出是結(jié)合創(chuàng)新研究,有效的跨團(tuán)隊(duì)研究和數(shù)據(jù)驅(qū)動(dòng)部署,為我們的會(huì)員帶來更好體驗(yàn)的絕佳范例。
LiveVideoStackCon 2018講師招募
LiveVideoStackCon 2018是音視頻技術(shù)領(lǐng)域的綜合技術(shù)大會(huì),今年是在10月19-20日在北京舉行。大會(huì)共設(shè)立18個(gè)專題,預(yù)計(jì)邀請超過80位技術(shù)專家。如果你在某一領(lǐng)域獨(dú)當(dāng)一面,歡迎申請成為LiveVideoStackCon 2018的講師,讓你的經(jīng)驗(yàn)幫到更多人,你可以通過speaker@livevideostack.com提交演講信息。了解大會(huì)更多詳情,點(diǎn)擊【閱讀原文】訪問LiveVideoStackCon 2018官網(wǎng),報(bào)名即刻享受7折優(yōu)惠。
為了讓參會(huì)者與大會(huì)講師更多互動(dòng)交流,我們推出了LiveVideoStackCon講師熱身分享第一季,在每周四晚19:30,邀請1名大會(huì)講師進(jìn)行線上分享技術(shù)干貨,解答熱點(diǎn)問題。你可以通過以下方式參與:
關(guān)注LiveVideoStack公眾號(hào)【?livevideostack 】
回復(fù)“熱身”,即可獲得進(jìn)入直播群的方式
6月28日晚19:30,我們將邀請英特爾資深軟件開發(fā)工程師趙軍進(jìn)行第一期分享《FFmpeg加速那些事兒》,作為應(yīng)用最廣泛的多媒體處理工具,FFmpeg幾乎是每個(gè)多媒體開發(fā)者的必備工具。但在高并發(fā)等生產(chǎn)環(huán)境下,FFmpeg性能往往不高,需要做特定的優(yōu)化,趙軍將會(huì)從“軟”和“硬”兩個(gè)層面介紹FFmpeg優(yōu)化的經(jīng)驗(yàn),期待您的參與。
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
- 上一篇: 音视频技术开发周刊 55期
- 下一篇: Hulu 视频QoS优化策略