譯者序
一直以來(lái)都沒(méi)有找到一個(gè)較全面的AVC 介紹。于是,譯者就將DOOM9 論壇上的bond大人發(fā)表的《MPEG-4 Information》中的AVC 介紹的部分翻譯出來(lái),提供給和我一樣想了解這方面知識(shí)的朋友?!禡PEG-4 Information》中關(guān)于AVC 的介紹包含6 個(gè)部分,分別是AVC/H.264 Profiles、編/解碼器簡(jiǎn)介、SAMPLE 簡(jiǎn)介、AVC 當(dāng)前的問(wèn)題、AVC 相關(guān)硬件設(shè)備、更多文檔鏈接。其中編/解碼器部分、SAMPLE 簡(jiǎn)介和硬件介紹譯者沒(méi)有翻譯。因?yàn)榫?解碼器在nemolus 大大寫(xiě)的《AVC/H.264/AAC 專題 - 軟件篇》中有更詳細(xì)的介紹,SAMPLE 簡(jiǎn)介都是圖片,字不多,而且譯者看內(nèi)容也不是很重要,于是就偷懶沒(méi)有翻~呵呵~想看這三部分的朋友直接閱讀原文即可。
由于譯者也是剛剛接觸AVC,再加上英語(yǔ)水平有限,所以翻譯出來(lái)的東西可能不能準(zhǔn)確表達(dá)作者的原意,甚至?xí)`解作者的意思,在這里先慚愧一下。
如果有問(wèn)題,歡迎通過(guò)下面方法與譯者取得聯(lián)系:
網(wǎng)站:http://nmm.dns0755.net
Email:dgwxx@vip.sina.com
MSN:zjworks@163.com(請(qǐng)不要向這個(gè)郵箱里面發(fā)送郵件,因?yàn)檫@個(gè)郵箱已經(jīng)報(bào)廢了)
因?yàn)檫@篇文章的結(jié)構(gòu)比較復(fù)雜,考慮到WEB 頁(yè)發(fā)布的多種不便,因此決定不發(fā)布WEB版,只發(fā)布PDF 版。
最后,感謝原作者bond 的辛勤工作,是他們讓我們能夠看到這個(gè)優(yōu)秀的技術(shù)文章。當(dāng)然,還要感謝您的支持!
原文:http://forum.doom9.org/showthread.php?threadid=73022
ISO 14496-10 (Video) - Advanced Video Coding (AVC)
簡(jiǎn)介
AVC/H.264 是MPEG-4 標(biāo)準(zhǔn)所定義的最新,同時(shí)也是技術(shù)含量最高、代表最新技術(shù)水平的視頻編碼格式之一。
AVC/H.264 視頻編碼由ISO 的MPEG 和ITU 的VCEG 兩個(gè)組織于2003 年最終定稿。
而AVC/H.264 標(biāo)準(zhǔn)本身則是由包括來(lái)自MPEG 和VCEG 專家的Joint Video Team(JVT)開(kāi)發(fā)。
譯注:
ISO(International Organization for Standardization) 國(guó)際標(biāo)準(zhǔn)組織, 發(fā)展國(guó)際生產(chǎn)和質(zhì)量標(biāo)準(zhǔn)的組織;
MPEG (Moving Pictures Experts Group) 運(yùn)動(dòng)圖象專家組;
ITU(International Telecommunication Union) 國(guó)際電傳視訊聯(lián)盟;
VCEG(Video Coding Experts Group) 視頻編碼專家組,聯(lián)合國(guó)的子機(jī)構(gòu)之一,制定了現(xiàn)在廣泛應(yīng)用于視頻會(huì)議軟件中的H.263 格式。
從MPEG 的角度來(lái)說(shuō),這個(gè)標(biāo)準(zhǔn)叫做MPEG-4 Part10(ISO 14496-10),從ITU 的角度來(lái)說(shuō),這個(gè)標(biāo)準(zhǔn)叫做H.264(ITU 文檔編號(hào))。作為這個(gè)標(biāo)準(zhǔn)的“官方名稱”,Advanced Video Coding(AVC)是MPEG 由Advanced Audio Coding(AAC)這個(gè)音頻格式的視頻副本確定的。
AVC/H.264 Profiles
AVC/H.264 規(guī)定了多種不同的Profile:最低Profile、主要Profile、擴(kuò)展Profile、高端Profile(這些Profile 本身還要?jiǎng)澐謹(jǐn)?shù)個(gè)等級(jí))。
-最低Profile,也叫做底線Profile(Baseline Profile)支持I/P 幀,只支持無(wú)交錯(cuò)(Progressive)和CAVLC;
-擴(kuò)展Profile(Extended Profile)支持I/P/B/SP/SI 幀,只支持無(wú)交錯(cuò)(Progressive)和CAVLC;
-主要Profile(Main Profile)提供I/P/B 幀,支持無(wú)交錯(cuò)(Progressive)和交錯(cuò)(Interlaced),同樣提供對(duì)于CAVLC 和CABAC 的支持;
-高端Profile(High Profile,也叫FRExt)在主要Profile 的基礎(chǔ)上增加了8x8 內(nèi)部預(yù)測(cè)、自定義量化、無(wú)損視頻編碼和更多的YUV 格式(如4:4:4)。
或許只有在將來(lái)才能知道哪些Profile 或哪些功能會(huì)成為DVDRIP 的主流,但是我猜想會(huì)是Main 或是High Profile,包含下面的一些功能:
CAVLC/CABAC
AVC/H.264 為熵編碼(entropy coding)規(guī)定了兩個(gè)比MPEG-4 ASP 更加進(jìn)步的功能,Context-Adaptive Variable Length Coding(CAVLC, 前后自適應(yīng)可變長(zhǎng)度編碼) 和Context-Adaptive Binary Arithmetic Coding (CABAC,前后自適應(yīng)二進(jìn)制算術(shù)編碼)。CABAC 是AVC/H.264 的默認(rèn)模式,與CAVLC(也叫UVLC)相比,CABAC 是一個(gè)更加強(qiáng)有力的壓縮方式,可以將碼率在降低10-15%(特別是在高碼率情況下)。CABAC (CAVLC 也同樣)是一個(gè)不會(huì)損傷畫(huà)面的無(wú)損編碼,但是會(huì)降低編碼和解碼的速度。
Loop/Deblocking Filter
與預(yù)處理(比如通過(guò)avisynth,作用于輸入端)和后處理(通過(guò)解碼器,作用于最終輸出)不同,LoopFiltering 在編碼處理過(guò)程中起作用。它作用于每個(gè)幀編碼之后,但是在這之前,它會(huì)被用作后面幀的參考。這樣處理可以盡量避免色塊的出現(xiàn),特別是低碼率狀況下。 但是這樣會(huì)降低編碼和解碼的速度。
Variable Block Sizes/Macroblock Partitions (可變區(qū)塊尺寸/ 微塊分割)
與MPEG-4 ASP(只使用Inter4V/4MV,區(qū)塊大小可以在16x16 和8x8 之間變化)不同,AVC/H.264 將動(dòng)態(tài)搜尋的精度增加到了4x4(中間包括類似8x4 等的的步長(zhǎng))。而且區(qū)塊大小是自適應(yīng)且可變的,一個(gè)優(yōu)秀的編碼器會(huì)聰明地為每個(gè)微塊選擇最有效的區(qū)塊大小。
Multiple Reference Frames (多重參照幀)
與MPEG-4 ASP(只能選擇前一幀進(jìn)行參照)不同,AVC/H.264 可以選擇不止一個(gè)幀進(jìn)行內(nèi)部動(dòng)作搜尋,也就是說(shuō),編碼器可以自行選擇前一幀(像MPEG-4 ASP 那樣),或是加上更前面的幀進(jìn)行參照。正是由于這樣(比如P 幀可能會(huì)參照最后一個(gè)I 幀之前的幀),一
種新類型的幀隨之產(chǎn)生——IDR 幀,我們可以將其理解為不允許后面的幀向前面進(jìn)行參照的I 幀。如果使用多重參照幀的話,編碼和解碼的速度都會(huì)減慢,而且編碼、解碼、剪切只能從IDR 幀開(kāi)始。
譯注:
按照原文恐怕不太容易理解,這里譯者以自己的理解來(lái)講解一下IDR 幀。舉個(gè)例子,在一段視頻中, 存在以下幀:I P B P B P B B P I P B…
如果這段視頻應(yīng)用了多重參照幀,那么藍(lán)色的P 幀在參照他前面的I 幀(紅色)的同時(shí),還可能會(huì)參照I 幀之前的P 幀(綠色),由于I幀前后的場(chǎng)景可能會(huì)有很大的反差甚至根本不同,所以此時(shí)P 幀參考I 幀之前的幀不但會(huì)沒(méi)有意義,反而會(huì)造成很多問(wèn)題。
所以一種新型的幀被引入,那就是IDR 幀。如果這段視頻應(yīng)用了多重參考幀的同時(shí)采用了IDR 幀,那么幀的順序就會(huì)變成這樣:I P B P B P B B P IDR P B… 由于IDR 幀禁止后面的幀向自己前面的幀參照,所以這回那個(gè)藍(lán)色的P 幀就不會(huì)參照綠色的P 幀了。
Weighted Prediction (權(quán)重預(yù)測(cè))
使用權(quán)重預(yù)測(cè),就是在參考幀上施加權(quán)重。這么說(shuō)恐怕不太明白,但是向下看就會(huì)明白多了。在漸變場(chǎng)景(比如畫(huà)面逐漸變黑),后面的幀除了比前面的幀要暗一些,其他地方都很相似,那么權(quán)重預(yù)測(cè)就在這些地方發(fā)揮作用了。需要注意的是,權(quán)重預(yù)測(cè)對(duì)于交叉漸變(比如從一個(gè)場(chǎng)景漸變到另一個(gè)場(chǎng)景)不會(huì)有作用。
Rate Distortion Optimisation (RDO ,評(píng)價(jià)變化優(yōu)化)
RDO 使編碼器遇到多種不同的選擇的時(shí)候,選擇最有效的編碼方式。RDO 并不是由AVC/H.264 專家制定的功能,但它是最先由H.264 參考軟件所用到的一種決定方法。其他的編碼器也可以采用RDO,比如XviD 的VHQ 模式已經(jīng)運(yùn)用了RDO。
當(dāng)前AVC/H.264 的問(wèn)題
如果你對(duì)現(xiàn)有的AVC 工具嗤之以鼻,你肯定發(fā)現(xiàn)了AVC 的一些問(wèn)題:
-兼容性:目前不同的AVC 工具支持不同的容器(Container):
.mp4:mp4 是MPGE-4 標(biāo)準(zhǔn)(ISO 14496-15)指定的AVC 容器。目前支持它的編碼器有Nero、Sorenson、Envivio 和Moonlight。
.mpg:mpg 是MPEG-2 標(biāo)準(zhǔn)(ISO 13818-1,AMD3)指定的AVC 容器。目前支持它的編碼器有:Mainconcept 和Moonlight。(藍(lán)光BD-ROM 也會(huì)使用這種容器,具體請(qǐng)參見(jiàn)http://www.blu-ray.com)
.avi:使用AVI 作為容器是不標(biāo)準(zhǔn)的,并且會(huì)造成不兼容的問(wèn)題。使用AVI 可能妨礙AVC 的一些功能的發(fā)揮,也可能會(huì)損傷回放的質(zhì)量,或者降低解碼速度。目前支持avi 的編碼器有VSS、x264(mencoder 和x264 的vfw 都支持)、mpegable。
.264/.h264:通常是參考編碼器輸出的作為例子的源圖像。(mencoder 中的x264 也可以輸出.264,mp4creator 可以從.mp4 種Demux 出來(lái))
-速度:當(dāng)前一些編碼器的速度很慢(大多是商業(yè)預(yù)覽版)。盡管x264 和NeroDigital’s AVC看起來(lái)提供了不錯(cuò)的速度和后質(zhì)量,但是它們?nèi)匀桓淖儾涣薃VC 在一些較老的CPU 上極為耗時(shí)的事實(shí)。
更多文檔
如果你想了解更多關(guān)于AVC 的信息,就看看:http://www.vcodex.com/h264.html。這里不但有更詳細(xì)的介紹,更包含了一些技術(shù)層面的東西。
一些總結(jié)性的信息可以在http://www.moonlight.co.il/tech_h264.php 和http://www.dspr.com/www/technology/technology.htm 找到。
AVC 測(cè)試結(jié)果可以在http://www.chiariglione.org/mpeg/working_documents/mpeg-04/avc/avc_vt.zip 和http://82.2.167.24/Uploaded_Files/Doom9_Forum_files/AVC_Verification_Test_Results(mht).zip 找到(HTML 版本)
全部AVC 工程設(shè)計(jì)書(shū)可以在這里下載到:
http://www.dspr.com/www/technology/JVT-G050.pdf
藍(lán)光光盤的技術(shù)信息可以在這里找到:
http://www.blu-raydisc.com/Section-13628/Index.html