我的專(zhuān)業(yè)跟視頻流媒體略有關(guān)系,所以對(duì)視頻壓縮也略知一二。
下面就談?wù)勎覍?duì)HAVC的個(gè)人看法,如有出入,請(qǐng)大家指正。[ ]
談到AVC大家一定不陌生阿,自從有了PSP,我就對(duì)AVC開(kāi)始感興趣了(以前比較注意RMVB)
作為目前最先進(jìn)的視頻編碼之一的AVC已被廣泛應(yīng)用,比如視頻監(jiān)控、HD-DVD、藍(lán)光DVD等。
由此可見(jiàn),AVC的畫(huà)質(zhì)已經(jīng)得到了業(yè)界的公認(rèn)。
那么如何壓制高質(zhì)量的AVC視頻呢?
首先,你需要一個(gè)好的編碼器。
目前,得到大家公認(rèn)的高質(zhì)量AVC編碼器有:NERO RECODER 2 (非開(kāi)源)和X264(開(kāi)源) .
至于它們那個(gè)更優(yōu)秀呢,2004年時(shí),你問(wèn)我,我會(huì)回答是NERO RECODER 2
2005年時(shí),你問(wèn)我,我會(huì)回答是X264
至于現(xiàn)在,我很難理性的回答。我個(gè)人更喜歡X264。
這里,我要說(shuō)明一個(gè)問(wèn)題。
可播放視頻文件大體有三部分組成:視頻流、音頻流、容器。
AVC(高級(jí)視頻編碼)這個(gè)定名,大約是在H.264列入規(guī)范后的事情(隸屬M(fèi)PEG 4 Part 10)。
也就是說(shuō),它只規(guī)范了視頻流的壓縮標(biāo)準(zhǔn)。
AAC(高級(jí)音頻編碼)官方制定的音頻流壓縮標(biāo)準(zhǔn)(隸屬M(fèi)PEG 4 Part 2)。
mp4官方制定的標(biāo)準(zhǔn)容器。
由于這些標(biāo)準(zhǔn)不太嚴(yán)格,所以大家都在說(shuō)的格式一詞也就模糊了。
同樣的AVI文件中可能由 視頻流MPEG4 SP和MP3組成,也有可能是視頻流h.264和音頻流aac.
但大家都習(xí)慣叫做AVI格式的視頻。這是不太規(guī)范的。所以,才有了PMP這種自制格式阿。
那么,PMP-AVC 和HAVC那個(gè)更優(yōu)秀呢?
我沒(méi)有用過(guò)PMP-AVC,所以說(shuō)不好,但據(jù)說(shuō)PMP-AVC不支持B禎,這可能導(dǎo)致PMP-AVC不如
HAVC的壓縮率高,質(zhì)量也有一定的影響。
還有關(guān)鍵的一點(diǎn),HAVC僅支持的H.264 的主規(guī)格(Main Profile,向下兼容),而AVC/H.264定義了4種不同的Profile(類(lèi)):Baseline(基線類(lèi)), Main(主要類(lèi)), Extended(擴(kuò)展類(lèi))和High Profile(高端類(lèi))(它們各自下分成許多個(gè)層):
- Baseline Profile 提供I/P幀,僅支持progressive(逐行掃描)和CAVLC - Extended Profile 提供I/P/B/SP/SI幀,僅支持progressive(逐行掃描)和CAVLC - Main Profile 提供I/P/B幀,支持progressive(逐行掃描)和interlaced(隔行掃描),提供CAVLC或CABAC - High Profile (也就是FRExt)在Main Profile基礎(chǔ)上新增:8x8 intra prediction(8x8 幀內(nèi)預(yù)測(cè)), custom quant(自定義量化), lossless video coding(無(wú)損視頻編碼), 更多的yuv格式(4:4:4...)
至于Main Profile的相關(guān)編碼工具,也就是在我們應(yīng)用MEGUI & X264時(shí)可以使用的有:
CAVLC/CABAC: AVC/H.264定義了2種先進(jìn)的重構(gòu)數(shù)據(jù)流(包括macroblock-type(宏塊), motionvectors(運(yùn)動(dòng)矢量) + reference-index(參考索引)...)的熵編碼工具,一舉超越MPEG-4 ASP: 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)相比,是個(gè)壓縮率更強(qiáng)大的算法,據(jù)說(shuō)能額外降低10-15%的比特率(特別在高碼率)。CABAC(同CAVLC一樣)是一種無(wú)損算法,因此不會(huì)降低質(zhì)量,但會(huì)減緩編碼和解碼速度。
Loop/Deblocking Filter(循環(huán)/去塊濾波器): 與預(yù)處理濾波器(例如通過(guò)avisynth作用于輸入端),或后處理濾波器(通過(guò)解碼器作用于最終輸出端)相反,循環(huán)濾波器在編碼過(guò)程中對(duì)每楨進(jìn)行濾波,編碼完成后被用于下一楨的參考。它能消除塊效應(yīng),尤其在低碼率時(shí),但同樣會(huì)減緩編碼和解碼速度。
Variable Block Sizes/Macroblock Partitions(塊大小可變/宏塊劃分): 與MPEG-4 ASP(僅Inter4V/4MV能作16x16和8x8塊變換)相比,AVC/H.264把動(dòng)態(tài)搜尋精度(Motion Search Precision)提高到4x4(包含的步驟有8x4...)。子塊大小是自適應(yīng)/可變的,一個(gè)優(yōu)秀的編碼器應(yīng)能對(duì)每個(gè)宏塊明智地作出最恰當(dāng)?shù)膭澐执笮Q定。
Multiple Reference Frames(多重參考楨): 與MPEG-4 ASP(僅允許當(dāng)前楨的前一楨作為參考楨)相比,AVC/H.264使用幀間搜索方式并提供成倍的參考楨選擇,它意味著AVC/H.264編碼能決定是否只是簡(jiǎn)單地參考前一楨或甚至參考比前楨更過(guò)去的楨。因此(例如某個(gè)P楨能參考最近I楨前的某楨)不得不提出一種新型楨型:IDR楨,是種其后的楨不允許參考其前的楨的I楨。使用多重參考楨會(huì)減慢編碼和解碼速度并且可能導(dǎo)致只能在IDR楨剪切。
Rate Distortion Optimisation(RDO/碼率-失真/損耗最佳化): 只要編碼器不得不在眾多選擇中作出絕擇時(shí),RDO允許選擇最有效的編碼方式(例如面臨采用楨間/楨內(nèi)的動(dòng)態(tài)搜尋的決定...) RDO不是AVC/H.264本身定義的工具,它是第一個(gè)由H.264參考軟件引入的工具,可謂一種新的途徑。其他的編碼也能利用RDO,如XviD'的VHQ模式能使用RDO
這是我編寫(xiě)的MEGUI的命令行(發(fā)揮了所有可用的工具,高畫(huà)質(zhì)):
--pass 2 --bitrate 1024 --stats ".stats" --level 2.1 --ref 2 --mixed-refs --bframes 3 --b-rdo --bime --weightb --direct auto --filter -3,-2 --subme 6 --trellis 1 --analyse p8x8,b8x8,i4x4,p4x4 --vbv-maxrate 4000 --me umh --threads auto --thread-input --progress --no-psnr --no-ssim --output "" "" --colormatrix YCgCo --sar 1:1
這里還有說(shuō)的就是,X264是編碼器,而并非視頻編碼規(guī)范,所以說(shuō)“x264格式的視頻“是不正確的。
VDM的壓縮方法本身有缺陷,它調(diào)用的X264VFW.DLL本身沒(méi)有完全的x264的功能。
目前,我們能利用的X264.EXE(命令行)并非官方放出的,大都來(lái)自高手的編譯。官方只提供
源代碼。但質(zhì)量上有保障的,大家不用擔(dān)心,官方承認(rèn)的Unofficial builds for Windows are available from Jarod or Sharktooth.
再說(shuō)以下,在一用MEGUI時(shí),我們可以不用分離出音頻再進(jìn)行編碼??!
這是AVS模板:
DirectShowSource("<%InputFile%>",convertfps=true)
#changefps(29.97)
ConvertToYV12()
ResampleAudio(48000)
Sharpen(0.2)
LanczosResize(480,272)
其實(shí)我們沒(méi)有必要改變?cè)匆曨l的FPS,PSP可以正常播放的。還有,AAC音頻應(yīng)當(dāng)是LC級(jí)別的。
直接將AVS腳本添加到音頻轉(zhuǎn)換就可。
|