用 AI 搞視頻編解碼器,現(xiàn)在路子有點“野”。
插幀、過擬合、語義感知、GAN…… 你想過這些“腦洞”或 AI 算法,也能被用到編解碼器上面嗎?
例如,原本的算法每幀壓縮到 16.4KB 后,樹林開始變得無比模糊:
但在用上 GAN 后,不僅畫面更清晰,每幀圖像還更小了,只需要 14.5KB 就能搞定!
又例如,用插幀的思路結合神經(jīng)編解碼器,能讓最新壓縮算法效果更好……
這一系列算法的思路,背后究竟是什么原理,用 AI 搞編解碼器,潛力究竟有多大?
我們采訪了高通工程技術副總裁、高通 AI 研究方向負責人侯紀磊博士,了解了高通一些 AI 編解碼器中的算法細節(jié)和原理。
編解碼器標準逐漸“內卷”
當然,在了解 AI 算法的原理之前,需要先了解視頻到底是怎么壓縮的。
如果不壓縮,1 秒 30 幀、8bit 單通道色深的 480p 視頻,每秒就要傳輸 80+Mbps 數(shù)據(jù),想在網(wǎng)上實時看高清視頻的話,幾乎是不可能的事情。
目前,主要有色度子采樣、幀內預測(空間冗余)和幀間預測(時間冗余)幾個維度的壓縮方法。
色度子采樣,主要是基于我們眼睛對亮度比對顏色更敏感的原理,壓縮圖像的色彩數(shù)據(jù),但視覺上仍然能保持與原圖接近的效果。
幀內預測,利用同一幀中的大片相同色塊(下圖地板等),預測圖像內相鄰像素的值,得出的結果比原始數(shù)據(jù)更容易壓縮。
幀間預測,用來消除相鄰幀之間大量重復數(shù)據(jù)(下圖的背景)的方法。利用一種名叫運動補償?shù)姆椒?,用運動向量(motion vector)和預測值計算兩幀之間像素差:
這些視頻壓縮的方法,具體到視頻編解碼器上,又有不少壓縮工作可以進行,包括分區(qū)、量化、熵編碼等。
然而,據(jù)侯紀磊博士介紹,從 H.265 到 H.266,壓縮性能雖然提升了 30% 左右,但這是伴隨著編碼復雜度提高 30 倍、解碼復雜度提高 2 倍達成的。
這意味著編解碼器標準逐漸進入了一個“內卷”的狀態(tài),提升的壓縮效果,本質上是用編解碼器復雜度來交換的,并不算真正完成了創(chuàng)新。
因此,高通從已有壓縮方法本身的原理、以及編解碼器的構造入手,搞出了幾種有意思的 AI 視頻編解碼方法。
3 個方向提升壓縮性能
具體來說,目前的 AI 研究包括幀間預測方法、降低解碼復雜度和提高壓縮質量三個方向。
“預判了 B 幀的預判”
從幀間預測來看,高通針對 B 幀編解碼提出了一種新思路,論文已經(jīng)登上 ICCV 2021。
I 幀:幀內編碼幀(intra picture)、P 幀:前向預測編碼幀(predictive-frame)、B 幀:雙向預測內插編碼幀(bi-directional interpolated prediction frame)
目前的編解碼大多集中在 I 幀(幀內預測)和 P 幀上,而 B 幀則是同時利用 I 幀和 P 幀的雙向運動補償來提升壓縮的性能,在 H.265 中正式支持(H.264 沒有)。
雖然用上 B 幀后,視頻壓縮性能更好,但還是有兩個問題:
一個是視頻需要提前加載(必須提前編碼后面的 P 幀,才能得到 B 幀);另一個是仍然會存在冗余,如果 I 幀和 P 幀高度相關,那么再用雙向運動補償就顯得很浪費。
打個比方,如果從 I 幀→B 幀→P 幀,視頻中只有一個球直線運動了一段距離,那么再用雙向運動補償?shù)脑?,就會很浪費:
這種情況下,用插幀似乎更好,直接通過時間戳就能預測出物體運動的狀態(tài),編碼計算量也更低。
但這又會出現(xiàn)新的問題:如果 I 幀和 P 幀之間有個非常大的突變,例如球突然在 B 幀彈起來了,這時候用插幀的效果就很差了(相當于直接忽略了 B 幀的彈跳)。
因此,高通選擇將兩者結合起來,將基于神經(jīng)網(wǎng)絡的 P 幀壓縮和插幀補償結合起來,利用 AI 預測插幀后需要進行的運動補償:
別說,效果還確實不錯,比谷歌之前在 CVPR 2020 上保持的 SOTA 紀錄更好,也要好于當前基于 H.265 標準實現(xiàn)開源編解碼器的壓縮性能。
除此之外,高通也嘗試了一些其他的 AI 算法。
用“過擬合”降低解碼復雜度
針對編解碼器標準內卷的情況,高通也想到了用 AI 做自適應算法,來像“過擬合”一樣根據(jù)視頻比特流更新一個模型的權重增量,已經(jīng)有相關論文登上 ICLR 2021。
這種方法意味著針對單個模型進行“過擬合”,對比特流中的權重增量進行編碼,再與原來的比特流進行一個比較。如果效果更好的話,就采用這種傳輸方式。
事實證明,在不降低壓縮性能的情況下,這種方法能將解碼復雜度降低 72%,同時仍然保持之前 B 幀模型達到的 SOTA 結果。
當然,除了視頻壓縮性能以外,單幀圖像被壓縮的質量也需要考慮,畢竟視覺效果也是視頻壓縮追求的標準之一。
用語義感知和 GAN 提高壓縮質量
用語義感知和 GAN 的思路就比較簡單了。
語義感知就是讓 AI 基于人的視覺來考慮,選出你在看視頻時最關注的地方,并著重那部分的比特分配情況。
例如你在看網(wǎng)球比賽時,往往并不會關注比賽旁邊的觀眾長什么樣、風景如何,而是更關注球員本身的動作、擊球方法等。
那么,就訓練 AI,將更多的比特放到目標人物身上就行,像這樣:
從結構上來講也比較簡單,也就是我們常見的語義分割 Mask(掩膜):
這種方法能很好地將受關注的局部區(qū)域幀質量提升,讓我們有更好的觀看效果,而不是在視頻被壓縮時,看到的整幅圖像都是“打上馬賽克”的樣子。
據(jù)高通表示,這種語義感知的圖像壓縮,目前已經(jīng)在擴展到視頻壓縮上了,同樣是關注局部的方法,效果也非常不錯。
而基于 GAN 的方法,則更加致力于用更少的比特數(shù)生成視覺效果同樣好的圖像質量:
據(jù)高通表示,數(shù)據(jù)集來自 CVPR 中一個針對圖像壓縮的 Workshop CLIC,提供了大約 1600 張的高清圖片,利用自研的模型,能在上面訓練出很好的效果:
也就是開頭的圖片效果,即使在大小被壓縮后,基于 GAN 的圖像還是能取得更好的視覺質量:
期待這些技術能馬上應用到手機等設備上,讓我們看視頻的時候真正變得不卡。
相關論文:
[1]https://arxiv.org/abs/2104.00531
[2]https://arxiv.org/abs/2101.08687
參考鏈接:
[1]https://www.qualcomm.com/news/onq/2021/07/14/how-ai-research-enabling-next-gen-codecs
[2]https://github.com/leandromoreira/digital_video_introduction
廣告聲明:文內含有的對外跳轉鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結果僅供參考,IT之家所有文章均包含本聲明。