在 RTC 2018 實(shí)時(shí)互聯(lián)網(wǎng)大會(huì)上,Visionular Inc 聯(lián)合創(chuàng)始人兼首席科學(xué)家 Zoe Liu 進(jìn)行了主題演講,與大家一起分享了一場視頻編解碼的前沿探索。
1
大家都知道,從技術(shù)復(fù)雜度來講,視頻的編碼和解碼并不對(duì)稱,編碼器要比解碼器復(fù)雜很多。那么,機(jī)器學(xué)習(xí)對(duì)編碼可以做哪些優(yōu)化呢?
大家目前討論的比較多的是3個(gè)編碼標(biāo)準(zhǔn):一個(gè)是 MPEG 組織的,一個(gè)是從 VP9 到 AV1 的開源、免除版權(quán)稅的,另外一個(gè)是我們自己在國內(nèi)研發(fā)的從 AVS 到 AVS2、AVS3 系列。
編碼的標(biāo)準(zhǔn)日新月異,一直在向前發(fā)展。而大家都會(huì)問,為什么視頻編碼那么重要?
以 JPEG 為例,它是一個(gè)圖像標(biāo)準(zhǔn),經(jīng)歷了幾十年的發(fā)展。那么為什么幾十年來 JPEG 沒有被打敗,反而被廣為應(yīng)用呢?很大程度上受益于它的廣泛的商業(yè)用途和易實(shí)現(xiàn)性。接下來,我希望通過下圖,和大家解釋為什么視頻編解碼這么重要。
2013 年時(shí),為了取代 H.264 編碼器,谷歌推出了 VP9。海外用戶看 YouTube,一般是兩類手機(jī),Android上看到的是 VP9 的碼流。由于 Apple 不支持 VP9 硬件解碼,因此 iPhone 用戶看到的是 H.264 碼流。
谷歌曾做過一個(gè)統(tǒng)計(jì),對(duì)比了世界范圍內(nèi)(不包含中國), VP9 和 H.264 的播放時(shí)長。從上圖中我們可以看到,在印度、非洲等網(wǎng)絡(luò)帶寬不佳的市場,由于 VP9 的應(yīng)用,大大優(yōu)化了用戶體驗(yàn),首屏?xí)r間大幅縮短,并且卡頓大幅減少。
與此同時(shí),采用新一代 codec 的應(yīng)用,帶來了用戶體驗(yàn)的提升和新業(yè)務(wù)推進(jìn)的可能性,這正印證了 Video codec的重要性。
在編碼器中,不論是 HEVC 或 AV1,都有 partition 的概念。熟悉編碼的朋友都知道,HEVC 和 AV1 中都有一個(gè)四叉樹的 partition。
比如,它的 superblock 在 AV1 中的大小是 128*128,它可以繼續(xù)向下做四叉樹的劃分,每個(gè) 128*128 的圖像塊可以分成 4 個(gè) 64*64,每個(gè) 64*64 又可以分成 4 個(gè) 32*32。以此類推,例如在 AV1 中可以分解到最小為 4*4 的圖像塊。
對(duì)于圖像宏塊而言,要做出一個(gè) partition 的 map。統(tǒng)計(jì)表明,Video encoder 端 partition RDO 評(píng)估的計(jì)算會(huì)占到編碼器復(fù)雜度的 80% 以上。
那么此時(shí)如何利用機(jī)器學(xué)習(xí)來嘗試做優(yōu)化呢?
如上圖所示,第一行四張圖是幀內(nèi)壓縮,第二行四張圖是幀間壓縮的實(shí)例。它展示了對(duì)于不同的圖像塊需要有不同的 partition。
原因就在于,每個(gè)圖像塊內(nèi)容不同。對(duì)于幀內(nèi)壓縮,細(xì)節(jié)、紋理越多的地方,分塊就越細(xì)致。對(duì)于幀間壓縮,主要是對(duì)殘差分塊,主要是要看幀間的預(yù)測是如何進(jìn)行的。從這個(gè)角度來講,分塊本身是由內(nèi)容和預(yù)測模式?jīng)Q定的。
那么,對(duì)任一圖像塊,我們可以在內(nèi)容上提取一定的 feature。大家都知道,當(dāng) QP 取值比較大時(shí),即失真度比較高時(shí),整塊的內(nèi)容就趨于平滑,那就會(huì)選擇比較大一些的分塊。QP 比較小時(shí),會(huì)選擇比較細(xì)致的分塊。從這些方面可以看出,從塊的角度,在 partition 的情況下,可以從內(nèi)容、編碼模式中提取相應(yīng)的 feature,通過離線訓(xùn)練可以從機(jī)器學(xué)習(xí)中獲得決策結(jié)果。
上圖中這篇論文是北航的徐邁老師與他的學(xué)生們所做的一項(xiàng)工作。他們基于神經(jīng)網(wǎng)(這里主要用卷積神經(jīng)網(wǎng))做出的對(duì) partition 的基本分類。
在真正做 partition 時(shí),一般的做法是分級(jí)進(jìn)行的,比如塊的大小是 64*64,此時(shí)需決策是否要往下走,做 4 個(gè) 32*32,到 32 再往下做決策是否繼續(xù)劃分,即決策是一層一層向下推進(jìn)的。
這篇論文做了一個(gè)初步的嘗試,經(jīng)過神經(jīng)網(wǎng)的訓(xùn)練學(xué)習(xí),輸出的是圖像塊最終的完整的劃分結(jié)果,將多級(jí)的決策結(jié)果一次性輸出為最終的劃分圖。這種方法的優(yōu)勢(shì)在于,能夠最大限度地降低神經(jīng)網(wǎng)本身帶來的復(fù)雜度,一次性導(dǎo)出結(jié)果。
另外,它在采用卷積神經(jīng)網(wǎng)絡(luò)決策的過程中,包含了 early termination 的決策。因?yàn)楫?dāng)網(wǎng)路深度和每層節(jié)點(diǎn)數(shù)增加的情況下,神經(jīng)網(wǎng)本身也會(huì)引入一些新的復(fù)雜度。這篇論文的結(jié)果是跟 HM 比對(duì)的,在 encoder 端的速度大約提升了 50%。
AV1 是開放的標(biāo)準(zhǔn),是一個(gè)開源的 codec。我們和谷歌合作一起貢獻(xiàn)了 libaom 開源代碼。上圖是我們的截屏。由于采用了機(jī)器學(xué)習(xí)的方法,使得 encoder 進(jìn)一步優(yōu)化。
從圖中可以看到,這個(gè) CL 中不是深度學(xué)習(xí),而是采用了一個(gè)非常簡捷的神經(jīng)網(wǎng)。一般 CL 中的神經(jīng)網(wǎng)構(gòu)造是一層到兩層,每一層的節(jié)點(diǎn)在 128 個(gè)左右。所以這里并不是深度學(xué)習(xí),是采用了一個(gè)比較簡捷的網(wǎng)絡(luò)結(jié)構(gòu)。
以往在優(yōu)化編碼器時(shí),常常采用 empirical 的想法,即做 partition 時(shí),從一級(jí)、二級(jí)到三級(jí),可以提取當(dāng)前 block 層的方差,也可以將當(dāng)前的 block 一分為四,提取每一個(gè) subblock 的方差,對(duì)其進(jìn)行一些分析,然后做出決策,給出 hard-coded 閾值。當(dāng)塊參數(shù)的大小低于某個(gè)閾值或高于某個(gè)閾值時(shí),繼續(xù)往下做 partition。所有這些決策可以用神經(jīng)網(wǎng)代替,因?yàn)榇藭r(shí)可以通過積累大量數(shù)據(jù)對(duì)一個(gè)簡單的網(wǎng)絡(luò)進(jìn)行訓(xùn)練,同時(shí)再用這個(gè)網(wǎng)絡(luò)生成決策,判斷是否需要四叉樹繼續(xù)下分。
從上圖可以看出,用一個(gè)簡單的神經(jīng)網(wǎng)就可以把 encoder 速度提升 10 - 20%。所以,我們?cè)诓捎脵C(jī)器學(xué)習(xí)的方法時(shí),不一定是深度學(xué)習(xí),因?yàn)樯窠?jīng)網(wǎng)的概念已經(jīng)存在很久了,主要是用大數(shù)據(jù)做訓(xùn)練,從數(shù)據(jù)集中設(shè)計(jì)網(wǎng)絡(luò),對(duì)相對(duì)復(fù)雜的非線性關(guān)系建模,從而使得 encoder 的速度以及編碼效率進(jìn)一步提升。
2
AV1 是一個(gè)實(shí)例,它采用了神經(jīng)網(wǎng)絡(luò)、機(jī)器學(xué)習(xí)的概念,使得 encoder 進(jìn)一步提速。使得用神經(jīng)網(wǎng)代替經(jīng)驗(yàn)決策。
那么,神經(jīng)網(wǎng)是不是可以幫助我們對(duì)視頻壓縮做壓縮性能提升?下面,我舉三個(gè)例子,分享一下我們從哪些方面可以把神經(jīng)網(wǎng)和深度學(xué)習(xí)用在編碼性能提升上。
第一個(gè),是從超分的概念來分享。大家都知道,壓縮造成了信息丟失。信息丟失以后我們希望在解碼端或者編碼端的 inloop 過程中,重建丟失的信息。如果我們可以做到,就可以達(dá)到編碼性能的進(jìn)一步提升。因?yàn)閴嚎s是一體兩制,或在一定碼率下提升畫質(zhì),或在一定畫質(zhì)下節(jié)省碼率。如果可以在一定的碼率下重建失去的信息,就可以進(jìn)一步提升畫質(zhì),之后可以進(jìn)一步節(jié)省碼率,通過畫質(zhì)提升將降碼率后失真圖像的質(zhì)量還原到原來碼率的畫質(zhì)水平。
AV1 中采用了更多的工具,從而使其可以比已有編碼標(biāo)準(zhǔn),比如 HEVC 有進(jìn)一步的提高。其中一個(gè)工具稱作 restoration,里面提供兩個(gè)濾波器,一個(gè)是 Wiener filter,一個(gè)是 Self-guided projected filters,僅這一個(gè)工具的 BDRate 性能提升在 1 - 1.5% 之間。
如上方右圖所示,它是一個(gè) restoration 的描述。那么它是如何把信息恢復(fù)出來的呢?我們可以想象,任何一個(gè)像素點(diǎn)是多維空間的一點(diǎn),那么一個(gè)小時(shí)的視頻一定有 n 個(gè)圖像幀,每個(gè)幀里有 m 個(gè)像素點(diǎn)。如果把每個(gè)點(diǎn)都想象成一維的話,任何一個(gè)視頻實(shí)際上是高維空間中的一點(diǎn)。做這種想象以后,上方圖右側(cè)的 Xs 就是原始的視頻,經(jīng)過壓縮,就得到了高維空間中的另一點(diǎn),如果這兩點(diǎn)重合,就是 lossless coding 的過程。這兩點(diǎn)在高維空間中距離越遠(yuǎn),失真度就越大。重建的過程就是力圖將壓縮后的X那一點(diǎn)帶回來與原來的點(diǎn)越來越近的過程。
AV1 中有一個(gè) guided filter 的概念,通過這個(gè) filter 可以從解壓以后的 X,恢復(fù)成 X1、X2 兩點(diǎn),也就是得到兩個(gè)濾波器的結(jié)果。做完后發(fā)現(xiàn),這兩點(diǎn)離原來那點(diǎn)還是差得非常遠(yuǎn)。那么 AV1 進(jìn)一步通過 X1、X2 建立一個(gè)平面,把原有的視頻所對(duì)應(yīng)的點(diǎn),在現(xiàn)在這個(gè)平面上做投影。可以看到投影以后所得點(diǎn)就離原點(diǎn)近了很多,這就是一個(gè)重建的過程。
最終 AV1 只要求在碼流中傳遞兩個(gè)參數(shù) α 和 β,需要高精度傳輸過去,在解碼端用同樣的 restoration 就可以恢復(fù)出比較高質(zhì)量的圖像。從這點(diǎn)可以看出,這一個(gè)工具就可以達(dá)到 BDRate 的 1% 以上的提升,我們可以用學(xué)習(xí)的概念得到更好的圖像復(fù)原,所以很自然而然就想到超分方法的運(yùn)用。
現(xiàn)在,超分辨率在機(jī)器學(xué)習(xí)中已經(jīng)得到廣泛應(yīng)用。壓縮以后的圖像,通過學(xué)習(xí)可以重建出一個(gè)更高質(zhì)量的圖像,利用這個(gè)圖像可以在我們現(xiàn)有的編碼結(jié)構(gòu)中加以運(yùn)用,從而達(dá)到更好的 coding performance。
這是我們和杭師大的丁丹丹老師合寫的一篇論文,主要探索重建圖像。可以在四方面加以應(yīng)用:第一,插值濾波;第二,In loop filter;第三,可以通過利用多個(gè)參考幀,重現(xiàn)出一個(gè)更清晰的參考幀;第四,Out loop post-processing filter。
這些都是從學(xué)習(xí)的角度,利用已知的參考幀重建出更高清晰更高質(zhì)量的參考幀。或者是利用插值濾波,因?yàn)椴逯档墨@取也等價(jià)于重建出一些原有的信息。從我們訓(xùn)練集數(shù)據(jù)中得到的信息,存儲(chǔ)到神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)以及其相應(yīng)的參數(shù)中,再加上已有的視頻數(shù)據(jù)得到重建的信息,利用重建信息幫助我們提升編碼的性能。
上圖是進(jìn)一步的一個(gè)例子,包括前向幀和后向幀在時(shí)空上進(jìn)行的聯(lián)合重建。
最后重建的結(jié)果是一個(gè)超分辨率圖像。同樣的碼率,在解碼端可以運(yùn)用該技術(shù)使得視頻質(zhì)量得到進(jìn)一步提升。視頻在用多幀分辨率做重建的過程中,由于每幀的視頻中有一個(gè)運(yùn)動(dòng)矢量的概念,所以這篇論文最主要的貢獻(xiàn),是在原有方法的基礎(chǔ)上做了一個(gè)像素對(duì)齊,這是視頻相對(duì)于圖像在處理上比較特別的地方。
徐邁老師的另外一個(gè)工作,也是利用學(xué)習(xí)恢復(fù)在編碼過程中失去的信息,不過不是提高分辨率,而是提高圖像的質(zhì)量,去除編碼后圖像的 artifacts。
我們?cè)诰幋a解碼過程中會(huì)發(fā)現(xiàn),每一幀的質(zhì)量有波動(dòng),任何一個(gè)圖像幀由于 QP 的不同,每幀質(zhì)量會(huì)不同,有些幀的質(zhì)量比較好,比如我們通常說的 Key frame,這篇論文中把這樣的幀叫做 PQF。
如果我們可以把 PQF 的幀識(shí)別出來,用學(xué)習(xí)的辦法把質(zhì)量比較差的幀的質(zhì)量彌補(bǔ)、提升,這樣不僅可以提高原本質(zhì)量差的幀的質(zhì)量,更可以優(yōu)化序列中各幀的質(zhì)量到更高的水平。
視頻幀與幀間的質(zhì)量保持平穩(wěn)是比較關(guān)鍵的。舉一個(gè)例子,做針灸的時(shí)候要扎很多針,如果每一針的力度相差不多,患者會(huì)覺得ok。如果突然一針的力度很大,人就會(huì)記住那一針的感覺。而人眼觀看視頻也是一樣的。
首先第一個(gè)工作就是識(shí)別視頻中哪些幀質(zhì)量比較高,因?yàn)榇藭r(shí)解碼端的原視頻是不可得的。這個(gè)工作主要利用類似無參考圖像質(zhì)量評(píng)價(jià)(noreferenceimagequality assessment)的方法來進(jìn)行。在沒有原視頻的基礎(chǔ)上,有一項(xiàng)研究是無參考質(zhì)量評(píng)估,這篇論文借鑒于那個(gè)領(lǐng)域的工作。
第一步,從每一幀里提取 36 個(gè) feature,5 個(gè)連續(xù)幀提取一共 180 個(gè) feature 做訓(xùn)練。這里采用的是支持向量機(jī)方法作聚類,經(jīng)過訓(xùn)練識(shí)別幀的質(zhì)量。
第二步,判斷出比較好的幀以后,利用神經(jīng)網(wǎng)絡(luò)來提升質(zhì)量差幀的圖像質(zhì)量。先做運(yùn)動(dòng)補(bǔ)償,即:找到質(zhì)量比較低的幀,及其前后質(zhì)量比較高的兩幀(PQF),三幀之間做像素級(jí)的運(yùn)動(dòng)估計(jì)的過程。做完運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償之后,再做質(zhì)量提升。
大家都知道,在神經(jīng)網(wǎng)訓(xùn)練的過程中我們需要 ground truth,motion vector 很難獲取 ground truth,所以這里不是要去訓(xùn)練 motion vector,而是得到的重建幀和原有的幀之間能達(dá)到差異最小值,來訓(xùn)練神經(jīng)網(wǎng)。這個(gè)神經(jīng)網(wǎng)有兩個(gè)部分,MC-subnet 和 quality enhancement subnet,對(duì)構(gòu)成的MSE函數(shù)實(shí)現(xiàn)最小化,進(jìn)而用訓(xùn)練出的神經(jīng)網(wǎng)去重建質(zhì)量比較低的圖像幀,最終達(dá)到整體視頻質(zhì)量的一致性。
第三個(gè)工作也是用深度學(xué)習(xí)對(duì)視頻編碼效率的提高,它的想法是這樣的,人眼看視頻,會(huì)對(duì)某些區(qū)域比較敏感,對(duì)某些區(qū)域沒那么敏感。
譬如我們看足球比賽,會(huì)對(duì)球的質(zhì)量比較敏感,對(duì)草地的失真不那么敏感。不同的區(qū)域人眼的敏感度不同,那么那些區(qū)域我就可以不做壓縮和傳輸,即在 encoder 端進(jìn)行分析,識(shí)別出這些區(qū)域,在 decoder 端再進(jìn)行合成,編碼、解碼的工作就是分析加合成的過程。
由于其中有內(nèi)容的分析,而機(jī)器學(xué)習(xí)在這方面有比較大的優(yōu)勢(shì),所以這個(gè)工作就是用學(xué)習(xí)的辦法把每幀圖像分割成兩個(gè)區(qū)域,一部分區(qū)域是人眼不敏感的,另一部分區(qū)域就保留下來,對(duì)于那些保留下來的區(qū)域可以用傳統(tǒng)的(比如 AV1 的辦法)進(jìn)行壓縮,對(duì)于那些容錯(cuò)性比較大的區(qū)域,可以去合成。
我們的具體工作中,實(shí)際上是用 AV1 的 global motion 概念,首先識(shí)別這些區(qū)域相應(yīng)的全局運(yùn)動(dòng)矢量,最終用參考幀和全局運(yùn)動(dòng)矢量重建在編碼端省去的區(qū)域,等同于通過 motion warp 的方法來代替、合成某些區(qū)域。這個(gè)工作的神經(jīng)網(wǎng)絡(luò)主要用于前處理,分割圖像。在編碼的過程中,由于運(yùn)用了 AV1 里的 global motion 工具,所以最終這個(gè)工作是 AV1 aligned 的編碼過程。
右圖是圖像分割的實(shí)驗(yàn)結(jié)果,哪些是 texture 比較復(fù)雜的區(qū)域,哪些是人眼比較敏感的區(qū)域。在這個(gè)工作中我們發(fā)現(xiàn),把一幀圖像劃分為兩個(gè)區(qū)域- 紋理區(qū)和非紋理區(qū),然后對(duì)紋理區(qū)做 warping 合成,效果相對(duì)比較好。
視頻相比圖像,由于引入了 temporal 這個(gè)第三維時(shí)間軸,如果每一幀做 motion warping,出來后幀與幀間效果不一致,那么人眼就很容易看到差別,主觀感知效果比較差。
舉個(gè)簡單的例子,以前我們?cè)谧鰧?shí)時(shí)通信(比如 Facetime),在手機(jī)上,手機(jī)有兩個(gè) CPU 核,自然而然會(huì)想到并行。比如 H.264,可以采用編碼器端 slice 并行的概念,每一個(gè)圖像幀會(huì)分成上面一個(gè) slice 和下面一個(gè) slice。
譬如一幀圖像一共 22 行,你可以對(duì)上下 11 行進(jìn)行單獨(dú)編碼。但是在 QP 比較大,碼率比較低的情況下,由于上下兩個(gè) slice 的獨(dú)立編碼,失真結(jié)果差異比較大,這樣編出來的視頻中間會(huì)有一條線被觀測到。如果單獨(dú)看每一幀,是看不到那條線的,但是如果播放視頻,那條線就顯現(xiàn)出來了。這就是視頻和圖像不一樣的地方,有一個(gè)幀間 consistent 的問題。
我們當(dāng)時(shí)分析,出現(xiàn)中間這條線,主要是兩個(gè) slice 的劃分過于一致,每幀都是上面一半下面一半,過于齊整了。一個(gè)處理辦法,是讓上下兩個(gè) slice 的行數(shù)近似但又不完全固定,這樣使得每一個(gè) CPU 核的計(jì)算量基本等同,達(dá)到并行的目的,但同時(shí)引入了一個(gè) random variable(隨機(jī)變量),讓上下兩個(gè) slice 的行數(shù)會(huì)稍有不同,而且不同的行數(shù)幀與幀之間是隨機(jī)變換的,那條線就看不到了。
這個(gè)實(shí)例是進(jìn)一步說明,在處理視頻的時(shí)候,必須要考慮到視頻播放在時(shí)間連續(xù)上的感知效果。這是視頻相對(duì)圖像在主觀質(zhì)量評(píng)估上,一個(gè)比較大的挑戰(zhàn)。因此,我們?cè)谟靡曨l紋理分析與合成提升視頻壓縮性能的方法中,并不是對(duì)每一幀都去做 motion warping,而是利用編碼器中所采用的hierarchical結(jié)構(gòu),只對(duì)位于這個(gè)結(jié)構(gòu)中最上面一層的圖像幀(或者簡單來講,只針對(duì)B幀)采用warping的辦法。這樣所得到的視頻其感知效果相對(duì)比較理想。
3
ML to Perceptual Coding
機(jī)器學(xué)習(xí)還可以用在視覺感知編碼(perceptual coding)。我們做視頻編碼器的都有質(zhì)量評(píng)估標(biāo)準(zhǔn)。質(zhì)量評(píng)估是大概經(jīng)歷了三代的變遷:
第一代,更多的是采用 PSNR。信號(hào)在丟失的過程中,一般評(píng)測都是想知道信息到底丟失了多少,所以用 PSNR 來衡量。
第二代,當(dāng)我們衡量視頻質(zhì)量時(shí),想到視頻是給人眼看的,人眼不敏感的區(qū)域就不需要花很大的力氣,即使失真再大,人眼感知不到即可。所以視頻編碼的評(píng)測標(biāo)準(zhǔn)發(fā)展為用那些可以跟人的主觀視覺更加匹配的指標(biāo)去衡量。
第三代,隨著機(jī)器學(xué)習(xí)或人工智能的發(fā)展,很多時(shí)候,比如大量的監(jiān)控視頻不再是給人眼看的,而是為機(jī)器分析所用。
舉個(gè)例子,我們的編碼一般來講是一個(gè)低通的過程,通常人眼對(duì)低頻的信號(hào)會(huì)更敏感,不管是 JPEG、MPEG 還是 AV1,當(dāng)我們對(duì)塊做碼率分配的時(shí)候,之所以做 transform,是希望把 energy 更多的 conpress 到 lowpass 那端,而 highpass 那端很多時(shí)候我們會(huì)大量的丟棄掉,去掉人眼不敏感的信息。但機(jī)器在分析的過程中和人眼的觀測不是完全一致的,比如在監(jiān)控視頻中,大部分時(shí)候視頻都是穩(wěn)定的,突然有一個(gè)人或者一個(gè)物體出現(xiàn)時(shí),即高頻的信息出現(xiàn),這類信息對(duì)機(jī)器分析更加有用。
由于機(jī)器分析的引用,使得 quality matrics 會(huì)有不同的評(píng)判標(biāo)準(zhǔn)出現(xiàn)。
4
What’s Next
這是今年 CVPR 的一篇 paper,是從其網(wǎng)頁上下載的視頻,原文作 video translation。前面有提到,這是一個(gè) video Analysis + Synthesis 的過程。
可以想像,視頻這么大的量,從一個(gè)簡潔的圖形恢復(fù)出一個(gè)復(fù)雜的高清的視頻內(nèi)容,這時(shí)候你會(huì)看到它神奇的變換閾。這實(shí)際上是對(duì)視頻壓縮提供了新的視角。我們創(chuàng)業(yè)之初,投資人也會(huì)說,你們現(xiàn)在在做壓縮,而機(jī)器學(xué)習(xí) AI 發(fā)展到一定程度,所有圖像、視頻是否都可以用一個(gè)很復(fù)雜的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)來代替,最終就能在 decoder 端通過神經(jīng)網(wǎng)絡(luò),再加上從碼流中提取出來的信息作為神經(jīng)網(wǎng)絡(luò)的輸入重建任一視頻呢?
最后學(xué)習(xí)對(duì)我們的壓縮到底產(chǎn)生什么樣的影響?通常大家都會(huì)說“一圖勝千言”,一幀圖像可以表達(dá)那么多的內(nèi)容,對(duì)于一個(gè)視頻遠(yuǎn)遠(yuǎn)不止“千言”,那剛剛關(guān)于我提出的問題,是不是能用機(jī)器學(xué)習(xí)代替所有的壓縮標(biāo)準(zhǔn)和以前采用的運(yùn)動(dòng)補(bǔ)償+變換閾的傳統(tǒng)做法呢?我今天的回答是否定的。
我們認(rèn)為在可預(yù)見的未來 5 到 10 年,壓縮還會(huì)按照現(xiàn)有的基本的codingstructure 的方向發(fā)展,但是每個(gè)模塊都有可能被神經(jīng)網(wǎng)絡(luò)或者機(jī)器學(xué)習(xí)代替,但是基本的框架不會(huì)改變。
總結(jié)下來主要有兩點(diǎn):一是通過機(jī)器學(xué)習(xí),視頻的分析、理解和壓縮之間的連接會(huì)更加緊密。舉個(gè)例子,高速上很多視頻作為交通監(jiān)控,采用車牌識(shí)別,但對(duì)于一個(gè)視頻,如果你關(guān)注的只有車牌的話,會(huì)把很大的高清視頻壓縮成一串?dāng)?shù)字。那么不同場景的壓縮,需要對(duì)視頻做一些前期的分析。二是通過機(jī)器學(xué)習(xí),視頻的重建技術(shù)會(huì)在視頻編碼流程中扮演越來越重要的角色。視頻可以用一些神經(jīng)網(wǎng)絡(luò)的工具,重建出很復(fù)雜的信息。特別針對(duì)視頻編碼和解碼,一些有助于解碼端重建的信息可以在編碼端生成,因?yàn)榫幋a端是有源視頻的。這些信息可以放在碼流中傳送到解碼端,進(jìn)一步輔助解碼端重建出更高質(zhì)量的視頻。這樣的方法可稱作“編碼器引導(dǎo)下的解碼端重建”,比解碼端的獨(dú)立重建技術(shù)應(yīng)該會(huì)有更大的潛力。機(jī)器學(xué)習(xí)在其中也會(huì)有更大的施展空間。
-
解碼
+關(guān)注
關(guān)注
0文章
183瀏覽量
27447 -
編碼
+關(guān)注
關(guān)注
6文章
957瀏覽量
54950 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8438瀏覽量
133078
原文標(biāo)題:機(jī)器學(xué)習(xí)在視頻編解碼中的探索
文章出處:【微信號(hào):shengwang-agora,微信公眾號(hào):聲網(wǎng)Agora】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論