如何學(xué)習(xí)h.264協(xié)議.doc_第1頁
如何學(xué)習(xí)h.264協(xié)議.doc_第2頁
如何學(xué)習(xí)h.264協(xié)議.doc_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

如何學(xué)習(xí)h.264協(xié)議首先,我假定你已經(jīng)具有如下基礎(chǔ):1 了解基本的視頻知識(shí),知道什么是YCbCr/YUV;2 知道基本的視頻壓縮原理;如果這兩條還不具備,那么,停一下,補(bǔ)一下課。這方面的相關(guān)文章在網(wǎng)上一找一大把。now,你為什么要學(xué)習(xí)H.264呢?可能你是個(gè)在校學(xué)生,要寫論文,拿著復(fù)雜的JM代碼無從下手。可能你是個(gè)開發(fā)人員要往已有的代碼里添加一個(gè)碼率控制算法,但是拿著前人開發(fā)的代碼又感到一頭霧水。無論你具體做什么,對(duì)264協(xié)議有個(gè)比較深的理解還是有必要的。 那先準(zhǔn)備好以下幾樣?xùn)|西: 1 H.264_MPEG-4 Part 10 White Paper;2 H.264 Visa 和StreamEye; 這是兩個(gè)碼流分析軟件,前者有免費(fèi)版本,后者有個(gè)免費(fèi)版,屏蔽了一些功能,但是對(duì)初學(xué)者,足夠了。 3 碼流。你可以隨便去下兩個(gè),很多地方都可以下到的。 4 matlab 你可能注意到,我提供的清單里沒有H.264協(xié)議,沒有JM代碼,為什么?因?yàn)檫@兩樣?xùn)|西,太復(fù)雜,不合適初學(xué)者。即使現(xiàn)在,我看到H.264協(xié)議原本都還覺得復(fù)雜,JM代碼更是沒有怎么看過。這兩樣?xùn)|西,不到做具體開發(fā)的時(shí)候沒有必要去詳細(xì)地研究。 那么,如何理解H.264協(xié)議呢。容易,我們可以手工完成一個(gè)264碼流的解碼過程,相信我,你如果專心,最多花30小時(shí),就能基本完成這個(gè)過程。 264協(xié)議,其實(shí)也使用了與以前的協(xié)議類似的方法,但在各個(gè)環(huán)節(jié)中,都加入了不少的改進(jìn)而已。下面先簡(jiǎn)要說明一下各個(gè)模塊的要點(diǎn)。1 幀內(nèi)預(yù)測(cè)。這是個(gè)新概念,但其實(shí)就是使用相鄰的塊來預(yù)測(cè)當(dāng)前塊。我們先只考慮4x4亮度塊的例子。使用H.264 Visa打開一個(gè)碼流文件。從第一幀第一塊開始(無疑,是個(gè)I塊)。然后一個(gè)小塊一個(gè)小塊地做預(yù)測(cè)。需要注意的是,預(yù)測(cè)一個(gè)小塊,就重建一個(gè)小塊。重建你只需要把預(yù)測(cè)值加上殘差就可以了。你可以使用matlab來幫你完成這個(gè)過程。殘差值,現(xiàn)在先直接使用就可以,不必殘差是如何來的。重建后的小塊就可以作為進(jìn)一步預(yù)測(cè)的參考?jí)K了。注意,要使用pre-loopfilter的數(shù)據(jù)。2 幀間預(yù)測(cè)。 請(qǐng)先用264Visa 和StreamEye打開碼流,查看第一個(gè)P幀(通常是第2幀)。 樹狀的塊結(jié)構(gòu)層次。你可以用StreamEye查看一下,能很容易地看到各個(gè)宏塊的結(jié)構(gòu)類型。 Mv。你可以在H.264 Visa中查看一下,看看每個(gè)part的Mv是多少,注意,因?yàn)檫\(yùn)動(dòng)矢量是以1/4像素為單位的,所以(4,8),實(shí)際代表偏移了(1,2)個(gè)像素。然后可以根據(jù)Mv到上一幀找一下參考?jí)K的位置,然后比較一下參考?jí)K和預(yù)測(cè)塊,看看兩者是否近似(非整點(diǎn)情況)或相同(整點(diǎn)情況,比如Mv= (4,4))。 Mv的預(yù)測(cè)。找到當(dāng)前塊的A、B、C塊,然后預(yù)測(cè)一下Mv,再看實(shí)際的Mv是多少。 自己根據(jù)Mv,找到參考?jí)K。再在matlab中寫個(gè)插值程序,應(yīng)該可以插出正確的值。 注意,做這個(gè)練習(xí),應(yīng)該在第一個(gè)P幀中來做,如果到第二個(gè)P幀中做,因?yàn)樯婕岸鄥⒖紟膯栴},找參考幀會(huì)比較麻煩。3 變換量化。264中變換量化已經(jīng)合在一起了,白皮書上已經(jīng)有詳細(xì)說明??梢宰约河胢atlab來算一下白皮書上的題目,再在碼流中找一個(gè)塊,做下反量化反變換,最后看看結(jié)果,和H.264 Visa的結(jié)果比一下。4 CAVLC。 沒什么可說的,理解一下CA,然后知道其實(shí)就是個(gè)改進(jìn)了的Run-level編碼就可以。5 Deblocking 理解一下Bs,理解一下閾值。注意,當(dāng)梯度小于閾值時(shí)才做加權(quán),為什么? 在H.264 Visa中比較一下pre-loop filter和final的數(shù)據(jù)。 6 碼流結(jié)構(gòu)和語法。 用StreamEye可以查看碼流及其分析結(jié)果。有了這兩個(gè)碼流分析工具,再結(jié)合白皮書,應(yīng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論