引言
目前已有不少可應(yīng)用于視頻流媒體服務(wù)的視頻編解碼器,而且今年還將發(fā)布更多。諸多的方案給視頻服務(wù)商帶來(lái)了選擇困難癥,因?yàn)樗麄冃枰獮樽约哼x擇合適的編解碼器,以確保為用戶傳送的音畫內(nèi)容能具備盡可能好的質(zhì)量和最低的比特率,同時(shí)還要考慮到編碼器對(duì)計(jì)算資源的要求。多年來(lái),選擇視頻編解碼器一直都是很簡(jiǎn)單的事:從上世紀(jì)90年代末接替數(shù)字電視的MPEG-2(H. 262)開(kāi)始,到千禧年早期(2000年初期)主導(dǎo)視頻會(huì)議的MPEG-4 Part 2(H. 263),再到之后的MPEG4 Part 10即AVC (H. 264),后者在大多數(shù)視頻業(yè)務(wù)應(yīng)用,包括傳輸、會(huì)議和監(jiān)控等在內(nèi)的市場(chǎng)中一直享有巨大的份額。與上述國(guó)際標(biāo)準(zhǔn)化組織發(fā)展編解碼器的同時(shí)代,谷歌為YouTube 作出了順應(yīng)自然的選擇,即他們自己的視頻編解碼器VP9。當(dāng)HEVC在2013年批準(zhǔn)成為國(guó)際標(biāo)準(zhǔn)時(shí),本應(yīng)合乎邏輯地成為(接替AVC/H.264)的后浪,但版稅問(wèn)題卻成了它的絆腳石。除此之外,較之前浪所增加的算法復(fù)雜性而帶來(lái)的技術(shù)焦慮感,以及4K——這個(gè)曾被認(rèn)為是HEVC的主要用戶場(chǎng)景(卻遲遲未全面過(guò)渡普及),多方因素下讓HEVC的局面較為慘淡。這種情況也引發(fā)了業(yè)界創(chuàng)建一個(gè)獨(dú)立的、免版稅的編解碼器的強(qiáng)烈愿望。開(kāi)發(fā)進(jìn)度條快速步進(jìn)的新編解碼器即將面世,這讓上述局面火上澆油,而我們發(fā)現(xiàn)自己有點(diǎn)像愛(ài)麗絲在夢(mèng)游仙境:各種現(xiàn)象將我們引領(lǐng)前往不同的方向——但我們到底應(yīng)該走哪條路呢?我們將從介紹“在未來(lái)視頻業(yè)務(wù)應(yīng)用中占有重要市場(chǎng)份額的編解碼器”的競(jìng)爭(zhēng)格局開(kāi)始論述:
在這篇文章里,我們不會(huì)討論LC-EVC (MPEG-5 Part 2),因?yàn)樗荒芩闶且延?存量編解碼器的一個(gè)附加組件,而不是可以用來(lái)作為獨(dú)立選項(xiàng)的視頻編解碼器。如果你想了解更多,https://lcevc.com/將是一個(gè)很好的開(kāi)始。如果你希望我們?cè)u(píng)出唯一的獲勝者——那我們可能要讓你失望了:很明顯,我們并不是朝著單一編碼器一統(tǒng)全局的方向前進(jìn)的。在本文中我們的目的是提供信息,突出每個(gè)編解碼器的亮點(diǎn)和特性、分享見(jiàn)解和觀點(diǎn),并以此希望能幫助各位在當(dāng)下的編解碼器混戰(zhàn)中武裝自己。
起源
第一點(diǎn)我們想討論的是編解碼器的起源,它們各自來(lái)自哪里,又意味著什么。迄今為止,大多數(shù)被廣泛采用的視頻編解碼器都是聯(lián)合視頻專家團(tuán)隊(duì)(Joint Video Expert Team)制定的標(biāo)準(zhǔn),該團(tuán)隊(duì)牽手國(guó)際電信聯(lián)盟-電信聯(lián)盟視頻編碼專家組(ITU-T Video Coding Expert Group (VCEG))和國(guó)際標(biāo)準(zhǔn)化組織運(yùn)動(dòng)圖像專家組(ISO Moving Picture Experts Group (MPEG))共同努力并制定聯(lián)合標(biāo)準(zhǔn)。AVC和HEVC都是通過(guò)這樣一個(gè)步驟明確的流程孵化產(chǎn)生的:從 CfP (提案征集)開(kāi)始,通過(guò)標(biāo)準(zhǔn)制定團(tuán)隊(duì)對(duì)每個(gè)提案算法工具的壓縮效率和性能要求進(jìn)行評(píng)估,直到建立一個(gè)擬議標(biāo)準(zhǔn)草案。經(jīng)過(guò)幾輪的編輯和修改,最終的草稿就會(huì)被批準(zhǔn),成為正式標(biāo)準(zhǔn)。這個(gè)過(guò)程非常有條理,并且經(jīng)過(guò)長(zhǎng)期實(shí)踐證明可成功孵化出穩(wěn)定可用的視頻編解碼器,AVC、HEVC和VVC都是以這種方式創(chuàng)建的。EVC編解碼器或許是一個(gè)例外,因?yàn)樗鼉H僅來(lái)自MPEG,而沒(méi)有 ITU-T 的參與。這可能與ITU VCEG歷來(lái)都不贊成將版稅問(wèn)題納為標(biāo)準(zhǔn)化過(guò)程的一部分有關(guān),而對(duì)于EVC來(lái)說(shuō),正如我們將看到的,這正是最值得關(guān)注的問(wèn)題之一。視頻編解碼器的另一個(gè)來(lái)源是商業(yè)公司。一個(gè)典型的成功案例就是由谷歌開(kāi)發(fā)的VP9編解碼器,作為VP8的繼承者,VP9編解碼器由 On2 Technologies 公司(后來(lái)被谷歌收購(gòu))開(kāi)發(fā)。此外,一些公司還試圖推廣開(kāi)源、免版稅、專利自主的編解碼器,比如 Mozilla 的Daala或 BBC Research 的Dirac。編解碼器的第三個(gè)來(lái)源,是在 ISO 或 ITU 等官方國(guó)際標(biāo)準(zhǔn)機(jī)構(gòu)之外、獨(dú)立運(yùn)作的一個(gè)聯(lián)盟或若干公司組成的工作組。AV1就是一個(gè)完美的例子,數(shù)家公司通過(guò)組建開(kāi)放媒體聯(lián)盟(AOM),協(xié)同創(chuàng)建了一種免版稅的開(kāi)源視頻編碼格式,并且主要面向互聯(lián)網(wǎng)視頻業(yè)務(wù)。AOM 的創(chuàng)始成員包括谷歌(Google)(它貢獻(xiàn)了 VP9技術(shù))、微軟(Microsoft)、亞馬遜(Amazon)、蘋果(Apple)、 Netflix、 FB、 Mozilla 等,還包括思科(Cisco)和三星(Samsung)這樣的傳統(tǒng)“ MPEG 支持者”。AV1編碼器是從“實(shí)驗(yàn)”中構(gòu)建出來(lái)的,每個(gè)候選的算法工具都被添加到參考軟件中,并可以通過(guò)開(kāi)關(guān)進(jìn)行對(duì)比實(shí)驗(yàn),從而使得算法工具進(jìn)入最終標(biāo)準(zhǔn)定稿的決策過(guò)程非常具有靈活性。
時(shí)間線
比較不同編解碼器的一個(gè)簡(jiǎn)單維度就是看他們的時(shí)間線。
AVC在2003年5月完成。10年后的2013年4月,HEVC也終于完成。AV1碼流結(jié)構(gòu)凍結(jié)是在2018年3月,同年6月通過(guò)驗(yàn)證,2019年1月發(fā)布了勘誤表1。截至2020年4月的第130屆 MPEG 會(huì)議,VVC和EVC都處于國(guó)際標(biāo)準(zhǔn)(FDIS)的最終草案階段,預(yù)計(jì)將于今年獲得批準(zhǔn)。
版稅
下一個(gè)要比較的內(nèi)容是令人頭疼的版稅問(wèn)題。除非你與世隔絕,否則你很可能已經(jīng)意識(shí)到這是一個(gè)非常關(guān)鍵的問(wèn)題。AVC的版稅問(wèn)題得到了很好的解決,并且已經(jīng)有了一個(gè)眾所周知的、廉價(jià)的版權(quán)許可模式。但是對(duì)于 HEVC 來(lái)說(shuō),情況要復(fù)雜得多。雖然 HEVC Advance聯(lián)合了許多HEVC的專利持有方,并不斷有更多的專利持有方加入,但MPEG LA 仍然代表著其他一些專利方。Velos Media 還整合了更多的專利持有方,但仍然有一些專利方是獨(dú)立且不屬于上述任何專利池的。盡管在過(guò)去的幾年里(在HEVC標(biāo)準(zhǔn)定稿后的五年多時(shí)間里),這些專利池終于推出了合理的許可模式,但是對(duì)于HEVC的版稅,很多時(shí)候整個(gè)行業(yè)仍抱有“一朝被蛇咬,十年怕井繩”的心態(tài),擔(dān)心其他專利實(shí)體也會(huì)突然冒出來(lái),并提出更多的知識(shí)產(chǎn)權(quán)要求。AV1是解決版稅問(wèn)題的直接嘗試,它創(chuàng)建了一個(gè)由行業(yè)巨頭支持的免版稅解決方案,甚至組建了一個(gè)法律辯護(hù)基金,以幫助那些可能因?yàn)樗暙I(xiàn)技術(shù)牽涉專利糾紛而被起訴的小公司。與法律辯護(hù)緊密相關(guān)的,是可能存在的第三方侵權(quán)事實(shí),雖然AOM從未承諾為此進(jìn)行賠償,但大家也都默認(rèn)如此——AOM既協(xié)助辯護(hù)、也負(fù)責(zé)提供賠償。直到3月初,Sisvel 宣布了一個(gè)由14家公司組成的專利池,這些公司擁有1000多項(xiàng)專利,Sisvel 聲稱這些專利對(duì)實(shí)施 AV1至關(guān)重要。大約一個(gè)月后,AOM 才發(fā)表了一份反對(duì)聲明,聲稱其致力于一個(gè)免版權(quán)費(fèi)的媒體生態(tài)系統(tǒng)。時(shí)間、大概還有相當(dāng)多的律師,將決定這場(chǎng)特殊的戰(zhàn)斗將如何結(jié)束(Sisvel宣布成立AV1專利池 1050項(xiàng)專利許可面臨收費(fèi))。VVC最初似乎走上了與 HEVC 同樣的知識(shí)產(chǎn)權(quán)道路:根據(jù) MPEG 的規(guī)定,任何將知識(shí)產(chǎn)權(quán)貢獻(xiàn)給該標(biāo)準(zhǔn)的個(gè)人或組織都必須簽署一份公平、合理和非歧視(FRAND)許可協(xié)議。但是,正如曾經(jīng)的經(jīng)驗(yàn)所告訴我們的那樣,這并不能保證適用于用來(lái)約束專利池或者專利代理機(jī)構(gòu)。不過(guò),這一次業(yè)界采取了行動(dòng),成立了媒體編碼行業(yè)論壇(MC-IF),這是2018年成立的一個(gè)開(kāi)放型行業(yè)論壇,目的是進(jìn)一步推廣使用 MPEG 標(biāo)準(zhǔn),最初側(cè)重于VVC。他們的目標(biāo),是為了消費(fèi)者和行業(yè)的利益,建立一個(gè)被廣泛接受和使用的標(biāo)準(zhǔn)。MC-IF下其中一個(gè)工作組正在定義“編碼檔子集”,這個(gè)標(biāo)準(zhǔn)子集包括無(wú)版稅的算法工具或MC-IF能夠作為所有相關(guān)知識(shí)產(chǎn)權(quán)許可的登記機(jī)構(gòu)的算法工具。如果上述工作成功,我們可能會(huì)看到一個(gè)免版稅或版稅已知可控前提下的VVC子集版本。由三星、華為和高通為主要成員的EVC工作組,則直接在標(biāo)準(zhǔn)化過(guò)程中處理版稅問(wèn)題,采用兩檔方案組合實(shí)施。對(duì)于EVC-Baseline,只包含無(wú)專利版稅的編碼算法工具。這通常意味著所包含技術(shù)已經(jīng)有20多年的歷史,并且有出版物可舉證。雖然這聽(tīng)起來(lái)像是一個(gè)相當(dāng)棘手的約束,但是一旦你考慮到 AVC 技術(shù)都已經(jīng)有20多年的歷史了,而且這些年來(lái)已經(jīng)積累了大量規(guī)避知識(shí)產(chǎn)權(quán)的方案,你就可以想的到滿足上述約束而組成的編解碼器仍然可以大大超過(guò)AVC的壓縮效率。就EVC-Main而言,它采用了已知專利權(quán)使用費(fèi)的方法,即任何對(duì)EVC-Main所含算法工具提供知識(shí)產(chǎn)權(quán)的實(shí)體承諾在EVC標(biāo)準(zhǔn)草案定稿后的兩年內(nèi),即在2022年4月之前,提供價(jià)格合理的許可證模式。
技術(shù)特點(diǎn)
現(xiàn)在我們已經(jīng)講明白了版稅這個(gè)難以忽視的問(wèn)題,接下來(lái)我們將突出展示一些編解碼器特性,并看看不同的編解碼器在這方面哪些不同。所有這些編解碼器使用一種基于圖像塊的混合編碼方法,這意味著編碼是通過(guò)將幀分割成塊,對(duì)塊像素進(jìn)行預(yù)測(cè),并計(jì)算預(yù)測(cè)值與實(shí)際值之間的差值,對(duì)得到的殘差系數(shù)進(jìn)行頻域變換后實(shí)施量化,最后將這些量化后系數(shù)與附加數(shù)據(jù)(如用于預(yù)測(cè)的運(yùn)動(dòng)向量)一起進(jìn)行熵編碼,從而產(chǎn)生比特流。圖1顯示了這種編碼器的簡(jiǎn)化圖。(譯者注:“混合”是指上述編碼框架中主要交替使用了預(yù)測(cè)算法與頻域變換算法)
圖1:基于圖像塊的混合編碼框架編解碼器改進(jìn)的基本思路是一種“越多越好”的方法:更多的圖像塊尺寸和子塊劃分選項(xiàng)、更多的預(yù)測(cè)可能性、更多的頻域變換核尺寸和變換類型,以及更多的附加工具,比如復(fù)雜的環(huán)路去塊效應(yīng)濾波器。
塊劃分
我們首先介紹各類編碼器中所支持的圖像塊及其塊劃分方案。AVC中的宏塊(MB)單元尺寸總是16x16,HEVC和EVC-Baseline中的編碼樹單元(CTU)尺寸最大可以是64x64,而EVC-Main、AV1和VCC中的圖像分塊尺寸最大可支持128x128。隨著塊尺寸的增大,它們能夠以越來(lái)越高的分辨率對(duì)平滑紋理區(qū)域進(jìn)行高效編碼。關(guān)于塊劃分,在AVC中我們有固定大小的宏塊(Macro-Blocks),而在HEVC中引入了四叉樹劃分,即允許將編碼樹單元(Coding-Tree-Unit)遞歸地劃分為四個(gè)額外的子塊。EVC-Baseline也支持同樣上述方案。如圖2中的示例分區(qū)所示:VVC在四叉樹中增加了二叉樹(2路)和三叉樹(3路),從而增加了劃分方案的可伸縮性。EVC-Main還使用組合的 QT、 BT、 TT 方法,此外還有一個(gè)拆分單元編碼順序(Split Unit Coding Order)特性,允許EVC-Main以從右到左的順序以及通常的從左到右的順序執(zhí)行子塊的處理和預(yù)測(cè)。AV1使用略有不同的劃分方法,支持每個(gè)編碼塊最多10次分割。劃分方案的另一個(gè)技術(shù)演進(jìn)方向是其形狀的靈活性。能夠不對(duì)稱地和沿對(duì)角線方式來(lái)劃分塊,可以隔離出圖像內(nèi)容區(qū)域中的局部變化,以創(chuàng)建高效和準(zhǔn)確的子塊劃分。這種方法有兩個(gè)重要的優(yōu)點(diǎn):避免了對(duì)細(xì)粒度劃分的需要,并且可以在不引入“階梯”(“staircase”)效應(yīng)的情況下正確地表示由斜線邊緣分隔的兩個(gè)對(duì)象。AV1中引入的楔形劃分和VVC的幾何劃分都支持兩個(gè)預(yù)測(cè)區(qū)域之間的對(duì)角劃分,從而實(shí)現(xiàn)了非常精確的劃分。
圖2:組合QT (藍(lán)色)、TT (綠色)和BT (紅色)的分區(qū)示例
預(yù)測(cè)
優(yōu)質(zhì)的預(yù)測(cè)方案使得殘差能量最小化,是提高壓縮效率的一個(gè)重要手段。從AVC開(kāi)始的所有視頻編解碼器都采用幀內(nèi)預(yù)測(cè)和幀間預(yù)測(cè),前者使用在當(dāng)前圖像幀中已經(jīng)被編碼和重建的像素進(jìn)行預(yù)測(cè),后者使用以前編碼和重建的圖像幀中的像素進(jìn)行預(yù)測(cè)。AVC支持9種幀內(nèi)預(yù)測(cè)模式,也就是當(dāng)前塊像素可以從位于左、上和右上方向的鄰居塊像素進(jìn)行預(yù)測(cè)。EVC-Baseline只支持5種幀內(nèi)預(yù)測(cè)模式,EVC-Main支持33種,HEVC定義了35種幀內(nèi)預(yù)測(cè)模式,AV1支持56種,VVC支持65種角度預(yù)測(cè)。雖然“越多越好”模式可以提高壓縮效率,但這直接影響編碼復(fù)雜度,因?yàn)檫@意味著編碼器在選擇最佳模式時(shí)要做出更復(fù)雜的決定。AV1和VVC增加了額外的精細(xì)化幀內(nèi)預(yù)測(cè)算法選項(xiàng),例如 AV1中使用亮度分量預(yù)測(cè)色度分量,相類似的在VVC中有跨分量線性模型預(yù)測(cè)。另一個(gè)有趣的幀內(nèi)預(yù)測(cè)算法工具是 INTRA Block Copy,它允許從當(dāng)前圖像幀內(nèi)已編碼和重建的部分中復(fù)制出一個(gè)完整的圖像塊,作為當(dāng)前塊的預(yù)測(cè)值。這種預(yù)測(cè)模式特別適用于具有復(fù)雜合成紋理的圖像幀,并且在AV1、EVC-Main和VVC中都被支持。而VVC通過(guò)擴(kuò)展幀內(nèi)預(yù)測(cè)塊附近的像素?cái)?shù)提供了一個(gè)更有限的方法。VVC還支持多參考行(Multiple Reference Lines)模式,用來(lái)擴(kuò)充當(dāng)前塊周圍可用于幀內(nèi)預(yù)測(cè)的像素點(diǎn)數(shù)量。不同的編碼器使用的幀間預(yù)測(cè)其差別在于:所使用的參考幀數(shù)量、運(yùn)動(dòng)向量(MV)分辨率及與之相關(guān)的子像素插值濾波器、支持的運(yùn)動(dòng)劃分和預(yù)測(cè)模式。對(duì)每個(gè)編碼解碼器中的各種幀間預(yù)測(cè)工具進(jìn)行徹底的回顧遠(yuǎn)遠(yuǎn)超出了本文比較的范圍,所以我們只會(huì)著重指出一些我們特別喜歡的新特性。重疊塊運(yùn)動(dòng)補(bǔ)償(OBMC)最早在H.263的Annex F和MPEG4 Part2中就引入,但并未包含在其任何編碼檔中,而現(xiàn)在AV1和VVC都支持該模式。這是一個(gè)出色的算法工具,可以在預(yù)測(cè)塊邊界兩邊的塊使用不同的運(yùn)動(dòng)向量時(shí),減少因?yàn)檫\(yùn)動(dòng)特征的不連續(xù)性而帶來(lái)的預(yù)測(cè)偏差。
圖3A: OBMC 示意圖。上面的圖是常規(guī)的運(yùn)動(dòng)補(bǔ)償,其中由于兩個(gè)相鄰的塊使用參考幀中不同的圖像部分進(jìn)行預(yù)測(cè),此時(shí)產(chǎn)生了不連續(xù)性;下面的圖中OBMC 模式使用了預(yù)測(cè)塊之間的重疊部分
圖3B: OBMC 示意圖。放大到 OBMC 的中間和左邊被展示的圖像塊之間的邊界,顯示交叉部分像素的兩個(gè)預(yù)測(cè)值的平均。塊匹配運(yùn)動(dòng)預(yù)測(cè)方法的一個(gè)重要局限性是它無(wú)法表示非水平和垂直的運(yùn)動(dòng),例如縮放或旋轉(zhuǎn)。上述問(wèn)題在AV1中使用了變形運(yùn)動(dòng)補(bǔ)償(Warped Motion Compensation)來(lái)解決,在VVC中則更徹底地使用了6自由度的仿射運(yùn)動(dòng)補(bǔ)償(Affine Motion Compensation)方案。EVC-main 進(jìn)一步使用了3種仿射運(yùn)動(dòng)模式:合并,以及4自由度和6自由度仿射運(yùn)動(dòng)補(bǔ)償。
圖4:仿射運(yùn)動(dòng)預(yù)測(cè)圖片來(lái)源: Cordula Heithausen-Coding of Higher Order Motion Parameters for Video Compression - ISBN-13:978-3844057843視頻編解碼器做的另一件事是基于以前搜索匹配到的運(yùn)動(dòng)向量值來(lái)預(yù)測(cè)當(dāng)前塊的運(yùn)動(dòng)向量。這減少了用于編碼MV的字節(jié)數(shù),有利于針對(duì)高粒度運(yùn)動(dòng)區(qū)域顯著節(jié)省碼率。另外,對(duì)運(yùn)動(dòng)向量的預(yù)測(cè)也有助于提高運(yùn)動(dòng)估計(jì)的效率。五個(gè)編解碼器都定義了各自計(jì)算運(yùn)動(dòng)向量預(yù)測(cè)值(MVP)的算法流程;尤其是,EVC-Main在此基礎(chǔ)上還參考了過(guò)往的運(yùn)動(dòng)向量預(yù)測(cè)值,而VVC則進(jìn)一步通過(guò)時(shí)空域信息來(lái)改進(jìn)運(yùn)動(dòng)向量的預(yù)測(cè)。
變換
應(yīng)用于殘差數(shù)據(jù)的頻域變換是“越多越好”方法的另一個(gè)應(yīng)用領(lǐng)域。AVC使用4x4和8x8大小的DCT(Discrete Cosine Transform)變換,而EVC-Baseline增加了更多的變換核大小,范圍從2×2 到 64×64。HEVC 增加了互補(bǔ)的DST(Discrete Sine Transform)變換,并支持從4×4 到 32×32的多尺寸變換核。AV1、 VVC和EVC-Main都使用 基于DCT 和 DST 的變換,其變換核尺寸覆蓋較大范圍,且支持非正方形變換核。
濾波
環(huán)路濾波器通過(guò)去除相鄰圖像塊在各自獨(dú)立處理過(guò)程中產(chǎn)生的偽影,對(duì)改善基于塊的編解碼器的感知質(zhì)量有著重要的貢獻(xiàn)。AVC使用一個(gè)相對(duì)簡(jiǎn)單的環(huán)路自適應(yīng)去塊效應(yīng)(De-blocking, DB)濾波器,這也是EVC-Baseline中的做法,其來(lái)源于 H.263 Annex J定義的方案。HEVC增加了一個(gè)附加的采樣點(diǎn)自適應(yīng)偏移(Sample Adaptive Offset ,SAO)濾波器,通過(guò)應(yīng)用保存在比特流查找表中的像素值偏移量,可以更好地重建原始信號(hào)的幅度,從而提高圖像質(zhì)量,降低條帶紋和振鈴效應(yīng)。VVC使用類似的DB和SAO濾波器,并增加了一個(gè)自適應(yīng)環(huán)路濾波器(Adaptive Loop Filter, ALF),以最小化原始樣本和解碼后樣本之間的誤差。這是使用基于Wiener的自適應(yīng)濾波器實(shí)現(xiàn)的,其中合適的濾波器系數(shù)由編碼器來(lái)決定、并準(zhǔn)確標(biāo)識(shí)給解碼器使用。EVC-main使用了高級(jí)去塊效應(yīng)濾波器(ADvanced Deblocking Filter, ADDB)和ALF,并進(jìn)一步引入一種哈達(dá)瑪變換域?yàn)V波器(Hadamard Transform Domain Filter, HTDF),該濾波器在圖像塊重建后使用4個(gè)相鄰樣本對(duì)解碼樣本進(jìn)行濾波。AV1中的處理辦法是,使用了一個(gè)常規(guī)的 DB濾波器和約束定向增強(qiáng)濾波器(Constrained Directional Enhancement Filter, CDEF),它可以去除銳利邊緣附近的振鈴噪聲和基本噪聲,這也是方向?yàn)V波器在視頻編解碼中的首次應(yīng)用。AV1還使用 環(huán)內(nèi)重建(Loop Restoration)濾波器,其中濾波器系數(shù)由編碼器確定并傳遞給解碼器。
熵編碼
熵編碼階段在各個(gè)編解碼器之間有所不同,部分原因是上下文自適應(yīng)二進(jìn)制算術(shù)編碼(Context Adaptive Binary Arithmetic Coding, CABAC)有相關(guān)的版稅。AVC提供了上下文自適應(yīng)變長(zhǎng)編碼(Context Adaptive Variable Length Coding, CAVLC)和 CABAC兩種模式。HEVC和VVC都使用 CABAC,但VVC增加了一些改進(jìn)辦法來(lái)提高效率,比如更優(yōu)的初始化而無(wú)需查找表(LUT),以及增加了 系數(shù)組(Coefficient Group)大小的靈活性。AV1使用非二進(jìn)制(多符號(hào))算術(shù)編碼-這意味著熵編碼必須在兩個(gè)連續(xù)的步驟中執(zhí)行,而這限制了并行化。EVC-Baseline使用JPEG附錄D定義的二進(jìn)制算術(shù)編碼器(Binary Arithmetic Coder)并與游程符號(hào)相結(jié)合,而EVC-Main使用位平面高級(jí)系數(shù)編碼(bit-plane ADvanced Coefficient Coding, ADCC)的方法。為了結(jié)束對(duì)重要特性的總結(jié),我們還想提一些對(duì)特定場(chǎng)景有用的算法工具。例如,EVC-main和VVC支持解碼器端的運(yùn)動(dòng)向量細(xì)化(Decoder side MV Refinement, DMVR),這對(duì)于將部分編碼復(fù)雜度拆分給解碼器的分布式系統(tǒng)是有益的。AV1和VVC都有非常適合屏幕內(nèi)容編碼的算法工具,例如支持調(diào)色板模式編碼,AV1還支持 PNG 圖像中使用的Paeth 預(yù)測(cè)。對(duì)膠片顆粒度合成(Film Grain Synthesis, FGS)的支持(FGS最早在 HEVC 中引入,但不包括在任何編碼檔次中),是AV1專業(yè)檔的強(qiáng)制性要求,并被認(rèn)為是對(duì)有顆粒效果的影片提供高質(zhì)量、低比特率壓縮的有價(jià)值的工具。
編解碼器比較
壓縮效率
也許最有趣的問(wèn)題是在實(shí)際視頻壓縮中編解碼器如何比較,或者每個(gè)編解碼器的壓縮效率是多少:為了獲得給定的圖像質(zhì)量,需要分配多少比特率;或者反過(guò)來(lái),當(dāng)分配給定的比特率時(shí),能夠獲得怎樣的圖像質(zhì)量。雖然這個(gè)問(wèn)題相當(dāng)簡(jiǎn)單,而且定義明確,但回答這個(gè)問(wèn)題絕非易事。第一個(gè)挑戰(zhàn)是定義測(cè)試條件——怎樣的視頻序列內(nèi)容、以多少比特率、在怎樣的編碼模式下進(jìn)行。舉一個(gè)簡(jiǎn)單的例子,當(dāng)使用屏幕內(nèi)容編碼工具時(shí),編碼器將在由屏幕內(nèi)容采集生成的視頻序列上顯示更多的優(yōu)勢(shì)。不同的視頻序列選擇、有無(wú)使用碼率控制(視頻標(biāo)準(zhǔn)本身并未定義如何實(shí)現(xiàn)碼率控制),GOP 結(jié)構(gòu)和其他配置參數(shù)都對(duì)編碼結(jié)果有重大影響。另一個(gè)明確答案的障礙是如何衡量質(zhì)量。盡管PSNR與主觀感知質(zhì)量的相關(guān)性很差,但可悲的是 PSNR 仍然經(jīng)常用于比較。但即使是更復(fù)雜的客觀指標(biāo),如 SSIM 或 VMAF,也并不總是能準(zhǔn)確地衡量視頻的感知質(zhì)量。另一方面,開(kāi)展主觀評(píng)價(jià)的代價(jià)很大,在大規(guī)模評(píng)測(cè)中并不實(shí)用,并且,當(dāng)測(cè)試是不同的評(píng)測(cè)人員或者不同的地點(diǎn)進(jìn)行,所獲得的結(jié)果可能有所差異。因此,你可以找到多如牛毛的對(duì)比結(jié)果,其中有的可能只是略有不同,而有的則甚至完全相反,而本文采用更保守的方法,在參考對(duì)比多方文獻(xiàn)后給出一個(gè)估計(jì)的結(jié)果。毫無(wú)疑問(wèn),在這些編解碼器中,AVC 的壓縮效率最低,而VVC的壓縮效率最高。EVC-Baseline的壓縮效率似乎比 AVC 高30%左右,與HEVC所提高的40%則相差不遠(yuǎn)。AV1和EVC-Main很接近,至于到底哪一個(gè)更優(yōu)秀很大程度上取決于進(jìn)行測(cè)評(píng)操作的人。它們的壓縮效率大約都比VVC低5-10%。
計(jì)算復(fù)雜性
現(xiàn)在,我們來(lái)看看每個(gè)編碼器的性能或計(jì)算復(fù)雜性。再次強(qiáng)調(diào),這種比較是相當(dāng)局限的,因?yàn)閷?shí)際性能表現(xiàn)嚴(yán)重依賴于工程代碼實(shí)現(xiàn)和測(cè)試條件,而非僅僅由標(biāo)準(zhǔn)定義的算法工具自身決定。編碼算法并行計(jì)算的能力、用于測(cè)試的處理器的架構(gòu)、視頻內(nèi)容類型(例如平緩運(yùn)動(dòng)或劇烈運(yùn)動(dòng),或暗或亮),這些都還只是能夠嚴(yán)重影響性能分析的其中幾個(gè)因素而已。例如,將x264配置為完全相同的預(yù)設(shè)值,然后在相同的視頻內(nèi)容上以低比特率和高比特率分別運(yùn)行,其編碼運(yùn)行時(shí)間可能會(huì)存在4倍的差異。在另一個(gè)例子中,如Beamr5 epic face off(https://blog.beamr.com/2017/09/08/x265-beamr-5-epic-face-off/)的博客文章顯示,使用相同的測(cè)試序列,在編碼圖像質(zhì)量相似的條件下,BeamrHEVC編碼器平均比x265快1.6倍,而這兩個(gè)編碼器在整個(gè)測(cè)試序列文件內(nèi)的編碼幀率波動(dòng)范圍約為1.5倍。如上所述,本文只是試圖對(duì)幾個(gè)編解碼器之間的相對(duì)計(jì)算復(fù)雜度給出一個(gè)粗略估計(jì)。在這些編碼器中,AVC的復(fù)雜度絕對(duì)是最低的,EVC-Baseline只是稍微增加一點(diǎn)。HEVC對(duì)編碼器和解碼器都有較高的性能要求。VVC 已經(jīng)成功地將解碼器復(fù)雜度與HEVC保持幾乎相同,但是編碼復(fù)雜度明顯更高,可能是所有5個(gè)編碼器中最高的。AV1也以其復(fù)雜性高而聞名,它的早期版本甚至引入了“每分鐘幀數(shù)”(Frame Per Minute, FPM)來(lái)標(biāo)記編碼性能,而不是常用的“每秒幀數(shù)”(Frames Per Second, FPS)。盡管最近的版本做了很多改進(jìn),但是可以肯定地說(shuō),它的復(fù)雜度仍然明顯高于HEVC,而且可能仍然高于EVC-Main。
總結(jié)
在下面的表格中,我們匯總了以上概述的一些編碼器的特性。
結(jié)語(yǔ)
那么,結(jié)論是什么呢?不幸的是,生活變得越來(lái)越復(fù)雜,由1~2個(gè)主導(dǎo)的編解碼器幾乎覆蓋所有行業(yè)的情況將不會(huì)再有。只有時(shí)間才能告訴我們哪一個(gè)會(huì)在未來(lái)5年內(nèi)擁有最高的市場(chǎng)份額,但一個(gè)簡(jiǎn)單的預(yù)估是,由于AVC目前的市場(chǎng)份額在70%左右,所以AVC短時(shí)間內(nèi)不會(huì)被取代。 AV1發(fā)展的勢(shì)頭強(qiáng)勁,在行業(yè)巨頭扶持下,我們將看到它在網(wǎng)絡(luò)流媒體中的不少應(yīng)用。至于其他方面,可以有把握地認(rèn)為,VVC和EVC-Main對(duì)壓縮性能的改進(jìn)、EVC-Baseline誘人的版稅免費(fèi),以及越來(lái)越多的設(shè)備在硬件模塊中支持HEVC,這些都意味著將面臨的新常態(tài)是:不得不在很多視頻流媒體應(yīng)用中支持多個(gè)編碼器標(biāo)準(zhǔn)。
-
數(shù)字電視
+關(guān)注
關(guān)注
3文章
321瀏覽量
45210 -
編解碼器
+關(guān)注
關(guān)注
0文章
250瀏覽量
24196
原文標(biāo)題:視頻編解碼器 2020-比賽開(kāi)始!
文章出處:【微信號(hào):livevideostack,微信公眾號(hào):LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論