2
本文作者: AI科技評論 | 2016-05-14 21:55 |
今年8月,雷鋒網(wǎng)將在深圳舉辦一場盛況空前的“全球人工智能與機器人創(chuàng)新大會(簡稱GAIR)”。屆時雷鋒網(wǎng)將發(fā)布“人工智能&機器人Top25創(chuàng)新企業(yè)榜”榜單。目前,我們正在拜訪人工智能、機器人領域的相關公司,從中篩選最終入選榜單的公司名單。如果你也想加入我們的榜單之中,請聯(lián)系:2020@leiphone.com
作為世界上最大的視頻平臺,YouTube 每天都會新增來自世界各地的數(shù)百萬個視頻。這些視頻具有非常大的多樣性,對 YouTube 來說,要將這些不同的視頻和相關的音頻都轉(zhuǎn)換成人們可以接受的播放質(zhì)量是一個相當大的挑戰(zhàn)。此外,盡管谷歌的計算和存儲資源非常龐大,但也總歸是有限的,要以上傳視頻的原格式存儲網(wǎng)絡視頻無疑會帶來顯著的額外成本。
為了提高網(wǎng)絡視頻的播放質(zhì)量,關鍵是要降低視頻和音頻的壓縮損失。增加比特率是一種方法,但同時那也需要更強大的網(wǎng)絡連接和更高的帶寬。而 YouTube 則選擇了另一種更聰明的做法:通過優(yōu)化視頻處理的參數(shù)使其在滿足最低視頻質(zhì)量標準的同時不會增加額外的比特率和計算周期。
要在視頻壓縮和轉(zhuǎn)碼時滿足視頻質(zhì)量、比特率和計算周期的要求,一般的做法是尋找對大量視頻(而非所有視頻)平均最優(yōu)的轉(zhuǎn)碼參數(shù)組合。這種最優(yōu)組合可以通過嘗試每種可能來尋找,直到找到最讓人滿意的結(jié)果。而最近,有一些公司甚至嘗試在每一段視頻上都使用這種“窮舉搜索”的方式來調(diào)整參數(shù)。
YouTube 通過在這一技術的基礎上引入機器學習而開發(fā)出了一種新的自動調(diào)整參數(shù)的方法。目前,這一技術已經(jīng)在提升 YouTube 和 Google Play視頻影片的質(zhì)量上得到了應用。
據(jù) YouTube 的博客介紹,每分鐘都有 400 小時的視頻被上傳到 YouTube 上。而其中每個視頻都需要被不同的轉(zhuǎn)碼器轉(zhuǎn)碼成幾種不同的格式,以便可以在不同的設備上進行播放。為了提高轉(zhuǎn)碼速度,讓用戶更快看到視頻,YouTube 將上傳的每一個文件都切割成被稱為“數(shù)據(jù)塊(chunk)”的片段,然后再將其每一塊都獨立地在谷歌云計算基礎設施的 CPU 中同時進行并行處理。在這一過程中所涉及到分塊和重組是 YouTube 的視頻轉(zhuǎn)碼中的一大難題。而除了重組轉(zhuǎn)碼后數(shù)據(jù)塊的機制,保持每一段轉(zhuǎn)碼后的視頻的質(zhì)量也是一個挑戰(zhàn)。這是因為為了盡可能快地處理,這些數(shù)據(jù)塊之間不會有重疊,而且它們會被切割得非常小——每段只有幾秒鐘。所以并行處理有提升速度和降低延遲的優(yōu)勢,但它也有劣勢:缺失了前后臨近視頻塊的信息,也因此難以保證每個視頻塊在被處理后都具有看上去相同的質(zhì)量。小數(shù)據(jù)塊不會給編碼器太多時間使其進入一個穩(wěn)定的狀態(tài),所以每一個編碼器在處理每一個數(shù)據(jù)塊上都略有不同。
為了得到穩(wěn)定的質(zhì)量,可以在編碼器之間溝通同一視頻中不同分塊的信息,這樣每一個編碼器都可以根據(jù)其處理塊的前后塊進行調(diào)整。但這樣做會導致進程間通信的增加,從而提高整個系統(tǒng)的復雜度,并在每一個數(shù)據(jù)塊的處理中都要求額外的迭代。
但“其實,事實上我們在工程方面都很固執(zhí),我們想知道我們能將‘不要讓數(shù)據(jù)塊彼此通信’的想法推進多遠。”YouTube 博客說。
下面的曲線圖展示了來自一段使用 H.264 作為編解碼器的 720p 視頻的兩個數(shù)據(jù)塊的峰值信噪比(PSNR,單位:dB每幀)。PSNR值越高,意味著圖片(視頻每幀)的質(zhì)量越高;反之則圖片質(zhì)量越低??梢钥吹矫慷我曨l開始時的質(zhì)量非常不同于結(jié)束時的質(zhì)量。這不僅在平均質(zhì)量上沒有達到我們的要求,這樣劇烈的質(zhì)量變化也會導致惱人的搏動偽影(pulsing artifact)。
因為數(shù)據(jù)塊很小,還要讓每一塊的行為都與其前后塊的行為類似;所以研究人員需要在連續(xù)數(shù)據(jù)塊的編碼處理上保持一個大致相同的結(jié)果。盡管這在大部分情況下適用,但卻不適用于本例。一個直接的解決辦法是改變數(shù)據(jù)塊的邊界使其與高活動的視頻行為保持一致,例如快速運動或場景剪切。但這樣做就能讓保證數(shù)據(jù)塊的相對質(zhì)量并使編碼后的結(jié)果更均勻嗎。事實證明這確實能有所改善,但并不能達到我們期望的程度,不穩(wěn)定性仍經(jīng)常存在。
關鍵是要讓編碼器多次處理每一個數(shù)據(jù)塊,并從每一次迭代中學習怎么調(diào)整其參數(shù)以為整個數(shù)據(jù)塊中將發(fā)生的事做好準備,而非僅其中的一小部分。這將導致每一個數(shù)據(jù)塊的開端和結(jié)束擁有相似的質(zhì)量,而且因為數(shù)據(jù)塊很短,所以總體上不同數(shù)據(jù)塊之間的差異也減少了。但即便如此,要實現(xiàn)這樣的目標,就需要很多次的重復迭代。研究人員觀察到,重復迭代的次數(shù)會受到編碼器在第一次迭代上的量化相關參數(shù)(CRF)的很大影響。更妙的是,往往存在一個“最好的”CRF 可以在保持期望質(zhì)量的同時只用一次迭代就能達到目標比特率。但這個“最好的”卻會隨著每段視頻的變化而變化——這就是棘手的地方。所以只要能找到每段視頻的最好配置,就能得到一個生成期望編碼視頻的簡單方法。
上圖展示了 YouTube 的研究人員在同一段 1080p 視頻片段上使用他們的編碼器實驗不同的 CRF 所得到的比特率結(jié)果(編碼后的視頻質(zhì)量恒定)??梢钥闯觯珻RF 和比特率之間存在一個明顯的函數(shù)關系。事實上這是對使用三個參數(shù)的指數(shù)擬合的非常好的建模,而且該圖也表明建模線(藍線)與實際觀察到的數(shù)據(jù)(點)擬合得非常好。如果我們知道該線的參數(shù),然后我們想得到一個我們的視頻片段的 5 Mbps 版本,那么我們所需的 CRF 大約為 20.
那么接下來需要的就是一種能夠通過對視頻片段的低復雜度的測量預測三個曲線擬合參數(shù)的方式。這是機器學習、統(tǒng)計學和信號處理中的經(jīng)典問題。YouTube 研究人員已將其相關的數(shù)學細節(jié)發(fā)表在他們的論文中(見文末1,其中還包括研究人員想法的演化歷程)。而簡單總結(jié)來說:通過已知的關于輸入視頻片段的信息預測三個參數(shù),并從中讀出我們所需的 CRF。其中的預測階段就是“谷歌大腦(Google Brain)”的用武之地。
前面提到的“關于輸入視頻片段的信息”被稱為視頻的“特征(features)”。在 YouTube 研究人員的定義中,這些特征(包括輸入比特率、輸入文件中的運動矢量位、視頻分辨率和幀速率)構成了一個特征向量。對這些特征的測量也包括來自輸入視頻片段的非??焖俚牡唾|(zhì)量轉(zhuǎn)碼(能提供更豐富的信息)。但是,每個視頻片段的特征和曲線參數(shù)之間的確切關系實際上非常復雜,不是一個簡單的方程就能表示的。所以聰明的研究人員并不打算自己來發(fā)現(xiàn)這些特征,他們轉(zhuǎn)而尋求谷歌大腦的機器學習的幫助。研究人員首先選擇了 10000 段視頻,并對其中每一段視頻的每一個質(zhì)量設置都進行了嚴格的測試,并測量了每一種設置的結(jié)果比特率。然后研究人員得到了 10000 條曲線,通過測量這些曲線研究人員又得到了 4×10000 個參數(shù)。
有了這些參數(shù),就可以從視頻片段中提取特征了。通過這些訓練數(shù)據(jù)和特征集合,YouTube 的機器學習系統(tǒng)學到了一個可以預測特征的參數(shù)的“大腦(Brain)”配置?!皩嶋H上我們在使用大腦的同時也使用一種簡單的‘回歸(regression)’技術。這兩者都優(yōu)于我們現(xiàn)有的策略。盡管訓練大腦的過程需要相對較多的計算,但得到的系統(tǒng)實際上相當簡單且只需要在我們的特征上的一點操作。那意味著生產(chǎn)過程中的計算負載很小?!?/span>
上圖展示了在 10000 個視頻片段上的各個系統(tǒng)的性能。其中每一個點(x,y)代表了壓縮后的結(jié)果視頻的比特率為原視頻的比特率的 x% 時的質(zhì)量百分比(y 軸)。其中的藍線表示在每一個視頻片段上都使用窮舉搜索獲取完美的 CRF 所得到的最好的情況。任何接近它的系統(tǒng)都是好系統(tǒng)??梢钥吹剑诒忍芈蕿?20% 時,舊系統(tǒng)(綠線)的結(jié)果視頻質(zhì)量只有 15 %. 而使用了大腦系統(tǒng)之后,如果僅使用你所上傳的視頻的特征,質(zhì)量可以達到 65%;如果還使用一些來自非常快速低質(zhì)量轉(zhuǎn)碼的特征,更是能超過 80%(虛線)。
但是,實際上看起來如何?你可能已經(jīng)注意到比起畫質(zhì),YouTube 研究人員似乎更關注比特率。因為“我們對這個問題分析表明這才是根本原因 ”。畫質(zhì)只有真正被看到眼里時我們才知道好不好。下面展示了來自一段 720p 視頻的一些幀(從一輛賽車上拍攝)。上一列的兩幀來自一個典型數(shù)據(jù)塊的開始和結(jié)尾,可以看到第一幀的質(zhì)量遠差于最后一幀。下一列的兩幀來自上述的新型自動剪輯適應系統(tǒng)處理后的同一個數(shù)據(jù)塊。兩個結(jié)果視頻的比特率為相同的 2.8 Mbps??梢钥吹?,第一幀的質(zhì)量已有了顯著的提升,最后一幀看起來也更好了。所以質(zhì)量上的暫時波動消失了,片段的整體質(zhì)量也得到了提升。
據(jù)悉,這一概念在 YouTube 視頻基礎設施部分的生產(chǎn)中已被使用了大約一年時間。YouTube的博客寫道:“我們很高興地報告:它已經(jīng)幫助我們?yōu)椤短┨鼓峥颂枴泛妥罱摹?07:幽靈黨》這樣的電影提供了非常好的視頻傳輸流。我們不期望任何人注意到這一點,因為他們不知道它看起來還能是什么樣?!?/span>
Optimizing transcoder quality targets using a neural network with an embedded bitrate model, Michele Covell, Martin Arjovsky, Yao-Chung Lin and Anil Kokaram, Proceedings of the Conference on Visual Information Processing and Communications 2016, San Francisco
Multipass Encoding for reducing pulsing artefacts in cloud based video transcoding, Yao-Chung Lin, Anil Kokaram and Hugh Denman, IEEE International Conference on Image Processing, pp 907-911, Quebec 2015
via YouTube
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。