H264碼流結(jié)構(gòu)的分析_第1頁
H264碼流結(jié)構(gòu)的分析_第2頁
H264碼流結(jié)構(gòu)的分析_第3頁
H264碼流結(jié)構(gòu)的分析_第4頁
H264碼流結(jié)構(gòu)的分析_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、落鶴生 時間:2009-09-07 11:08 點擊: 2656次H.264是新一代視頻編碼標準,具有廣泛的應(yīng)用前景。本文主要研究了H.264碼流的問題。首先,介紹了H.264的簡單框架;其次,對碼流結(jié)構(gòu)進行了分析,并概括出了碼流結(jié)構(gòu)圖;最后,結(jié)合一個簡單試驗,給出了從H.264碼流中取得圖像寬度和高度的方法。收藏到: TAG: H264  SPS  PPS  NAL  (蘇州大學計算機科學與技術(shù)學院,蘇州 215006)摘 要:視頻編碼標準,具有廣泛的應(yīng)用前景。本文主要研究了H.264碼流的問題。首先,介紹了H.

2、264的簡單框架;其次,對碼流結(jié)構(gòu)進行了分析,并概括出了碼流結(jié)構(gòu)圖;最后,結(jié)合一個簡單試驗,給出了從H.264碼流中取得圖像寬度和高度的方法。關(guān)鍵詞:H.264;NAL;碼流結(jié)構(gòu)GAO Qing, WANG Zhigang( School of Computer Science & Technology, Soochow University,SuZhou 215006;)Abstract: H.264 is the newest video coding standard, and it will be widely used. In this article, the proble

3、m of the structure of coding streaming in H.264 is discussed. Firstly, the simple profile of H.264 video is introduced. Secondly, the structure of coding streaming is discussed , and then give the graph on it. Finally, by a simple experiment, give the method of getting pictures width and height from

4、 the coding stream.Keywords: H.264;NAL;structure of coding streaming引言H.264是新一代視頻編碼標準,具有廣泛的應(yīng)用前景,是ITU-T的視頻編碼專家組(VCEG)和 ISO/IEC的活動圖像編碼專家組(MPEG)的聯(lián)合視頻組開發(fā)的一個新的數(shù)字視頻編碼標準,它既是ITU -T的H.264,又是ISO/IEC的MPEG-4的第10部分。H.264和以前的標準一樣,也是DPCM加變換編碼的混合編碼模式。它的應(yīng)用目標廣泛,可滿足各種不同速率、不同場合的視頻應(yīng)用,具有較好的抗誤碼和抗丟包的處理能力。H.264的基本系統(tǒng)無需使用版權(quán),具

5、有開放的性質(zhì),能很好地適應(yīng)IP和無線網(wǎng)絡(luò)的使用,這對目前因特網(wǎng)傳輸多媒體信息、移動網(wǎng)中傳輸寬帶信息等都具有重要意義。1 H.264框架介紹  2,每個框架都支持一系列的編解碼功能,相應(yīng)的有一系列的應(yīng)用。下面作下簡單的介紹:(1) 基線框架(Baseline Profile):它作為H.264的一個簡單版本,應(yīng)用面很廣。它支持幀間和幀內(nèi)編碼,支持I幀和P幀,支持CAVLC等,其主要應(yīng)用是可視電話視頻會議,無線通信等。(2) 主框架(Main Profile):包括支持交錯視頻,支持B幀,主要是在幀間編碼時使用,權(quán)重預(yù)測,熵編碼使用,支持CABAC等。它的主要應(yīng)用是視頻存儲和電

6、視廣播。采用了多項提高圖像質(zhì)量和增加壓縮比的技術(shù)措施,可用于SDTV,HDTV,DVD等。(3) 擴展框架(Extended Profile):不支持交錯視頻和CABAC,但增加了一些在進行比特流切換時有效的幀模式,SI Switching I幀和SP Switching P幀,能夠有效的提高從錯誤中恢復(fù)的能力。它的主要應(yīng)用是各種網(wǎng)絡(luò)的視頻流傳輸應(yīng)用。2 H264碼流結(jié)構(gòu)2.1 H264分層結(jié)構(gòu)H.263定義的碼流結(jié)構(gòu)是分級結(jié)構(gòu),共四層。自上而下分別為:圖像層(picturelayer)、塊組層(GOB layer)、宏塊層(macroblock layer)和塊層(block layer)。

7、而與相比,H.264的碼流結(jié)構(gòu)和H.263的有很大的區(qū)別,它采用的不再是嚴格的分級結(jié)構(gòu)。H.264的功能分為兩層,視頻編碼層(VCL)和網(wǎng)絡(luò)提取層(NAL)VCL數(shù)據(jù)即被壓縮編碼后的視頻數(shù)據(jù)序列。在VCL數(shù)據(jù)要封裝到NAL單元中之后,才可以用來傳輸或存儲。NAL單元格式2 表1所示:表1 NAL單元格式NAL頭RBSPNAL頭RBSPRBSP:封裝于網(wǎng)絡(luò)抽象單元的數(shù)據(jù)稱之為原始字節(jié)序列載荷RBSP,它是NAL的基本傳輸單元。其中,RBSP又分為視頻編碼數(shù)據(jù)和控制數(shù)據(jù)。其基本結(jié)構(gòu)是:在原始編碼數(shù)據(jù)的后面填加了結(jié)尾比特。一個bit“1”若干比特“0”,以便字節(jié)對齊。2如圖1所示: 在有些

8、時候,需要從H.264碼流中直接取得相關(guān)信息(如:圖像的寬度和圖像的高度等等信息)。下面介紹下取得相關(guān)信息的方法:圖像的相關(guān)信息存儲在網(wǎng)絡(luò)提取層(NAL)的RBSP結(jié)構(gòu)中,要取得圖像的相關(guān)信息,既要獲得圖像的相關(guān)位。需依據(jù)RBSP結(jié)構(gòu),獲得pic_width_in_mbs_minus1和pic_height_in_map_units_minus1兩個值,那么寬度為(pic_width_in_mbs_minus1+1)*16,高度為(pic_height_in_map_units_minus1+1)*16,但是有些情況還得考慮nNum_Ref_Frames的值,一般為1。設(shè)備:SUNNIC (I

9、P Cam)名字:ST100factoryFirmware版本:p8b8(1) 將設(shè)備分辨率設(shè)成176*144,使用Ethereal等抓包工具抓得一組數(shù)據(jù),并去掉相應(yīng)的RTP頭后,該數(shù)據(jù)為0x00,0x00,0x00,0x01,0x67,0x42,0x00,0x1E,0x99,0xA0,0xB1,0x31。(2) 將設(shè)備分辨率設(shè)成720*240,使用Ethereal等抓包工具抓得一組數(shù)據(jù),并去掉相應(yīng)的RTP頭后,該數(shù)據(jù)為0x00,0x00,0x00,0x01,0x67,0x42,0xE0,0x1E,0xDA,0x82,0xD1,0xF1。(3) 將設(shè)備分辨率設(shè)成720*480,使用Ethere

10、al等抓包工具抓得一組數(shù)據(jù),并去掉相應(yīng)的RTP頭后,該數(shù)據(jù)為0x00,0x00,0x00,0x01,0x67,0x42,0xE0,0x1E,0xDB,0x82,0xD1,0xF1。3.2 相關(guān)程序的書寫程序的關(guān)鍵代碼如下:void GetH264Resolution(BYTE*pInBuf,int&nHeight,int&nWidth,int&nNum_Ref_Frames)                  &

11、#160;  UE_V(nIndex,nShiftCount,nShiftBuffer,nNum_Ref_Frames,pFrameHead);                     DWORD gaps_in_frame_num_value_allowed_flag=0;           &

12、#160;   MyShift(1,nIndex,nShiftCount,nShiftBuffer,gaps_in_frame_num_value_allowed_flag,pFrameHead);DWORD pic_width_in_mbs_minus1=0;UE_V(nIndex,nShiftCount,nShiftBuffer,pic_width_in_mbs_minus1,pFrameHead);       DWORD pic_height_in_map_units_minus1=0; 

13、0;                UE_V(nIndex,nShiftCount,nShiftBuffer,pic_height_in_map_units_minus1,pFrameHead);       UE_V(nIndex,nShiftCount,nShiftBuffer,pic_height_in_map_units_minus1,pFrameHead);  

14、60;    nWidth=(pic_width_in_mbs_minus1+1)*16; /圖像的寬度        nHeight=(pic_height_in_map_units_minus1+1)*16;     /圖像的高度 voidMyShift(intnCount,int&nIndex,int&nShiftCount,BYTE&nShiftBuffer,DWORD&nRecv,BYTE*pInBuf)/從數(shù)據(jù)流取得相應(yīng)位

15、的值。       while (nCount!=0)                     if(nCount>nShiftCount)                  

16、; nRecv=nRecv<<nShiftCount;                     nRecv|=nShiftBuffer>>(8-nShiftCount);                 &

17、#160;   nShiftBuffer=pInBuf+nIndex;                     nCount-=nShiftCount;                   

18、  nShiftCount=8;                    else                   nRecv=nRecv<<nCount;      

19、;               nRecv|=nShiftBuffer>>(8-nCount);                              &

20、#160;          nShiftCount-=nCount;                     nShiftBuffer<<=nCount;                   

溫馨提示

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

評論

0/150

提交評論