H264的NAL介紹

原文:https://blog.csdn.net/hbuxiaofei/article/details/50502330

****1卿樱、H264 NAL頭漩氨。****

NAL全稱(chēng)Network Abstract Layer相寇,即網(wǎng)絡(luò)抽象層貌踏。在H.264/AVC視頻編碼標(biāo)準(zhǔn)中白翻,整個(gè)系統(tǒng)框架被分為了兩個(gè)層面:視頻編碼層面(VCL)和網(wǎng)絡(luò)抽象層面(NAL)猜年。其中根欧,前者負(fù)責(zé)有效表示視頻數(shù)據(jù)的內(nèi)容羽杰,而后者則負(fù)責(zé)格式化數(shù)據(jù)并提供頭信息渡紫,以保證數(shù)據(jù)適合各種信道和存儲(chǔ)介質(zhì)上的傳輸。NAL單元是NAL的基本語(yǔ)法結(jié)構(gòu)考赛,它包含一個(gè)字節(jié)的頭信息和一系列來(lái)自VCL的稱(chēng)為原始字節(jié)序列載荷(RBSP)的字節(jié)流惕澎。

如果NALU對(duì)應(yīng)的Slice為一幀的開(kāi)始,則用4字節(jié)表示欲虚,即0x00000001集灌;否則用3字節(jié)表示,0x000001复哆。

NAL Header : forbidden_bit 欣喧, nal_reference_bit (優(yōu)先級(jí)) 2bit , nal_unit_type (類(lèi)型) 5bit 梯找。 標(biāo)識(shí)NAL單元中的RBSP數(shù)據(jù)類(lèi)型唆阿,其中,nal_unit_type為1锈锤, 2驯鳖, 3, 4久免, 5的NAL單元稱(chēng)為VCL的NAL單元浅辙,其他類(lèi)型的NAL單元為非VCL的NAL單元。

0:未規(guī)定
1:非IDR圖像中不采用數(shù)據(jù)劃分的片段
2:非IDR圖像中A類(lèi)數(shù)據(jù)劃分片段
3:非IDR圖像中B類(lèi)數(shù)據(jù)劃分片段
4:非IDR圖像中C類(lèi)數(shù)據(jù)劃分片段
5:IDR圖像的片段
6:補(bǔ)充增強(qiáng)信息(SEI)
7:序列參數(shù)集(SPS)
8:圖像參數(shù)集(PPS)
9:分割符
10:序列結(jié)束符
11:流結(jié)束符
12:填充數(shù)據(jù)
13:序列參數(shù)集擴(kuò)展
14:帶前綴的NAL單元
15:子序列參數(shù)集
16 – 18:保留
19:不采用數(shù)據(jù)劃分的輔助編碼圖像片段
20:編碼片段擴(kuò)展
21 – 23:保留
24 – 31:未規(guī)定

NAL的頭占用了一個(gè)字節(jié)阎姥,按照比特自高至低排列可以表示如下:

0AABBBBB

其中记舆,AA用于表示該NAL是否可以丟棄(有無(wú)被其后的NAL參考),00b表示沒(méi)有參考作用呼巴,可丟棄泽腮,如B slice、SEI等衣赶,非零——包括01b诊赊、10b、11b——表示該NAL不可丟棄府瞄,如SPS碧磅、PPS、I Slice、P Slice等续崖。常用的 NAL 頭 的取值如:

0x67: SPS  
0x68: PPS  
0x65: IDR    
0x61: non-IDR Slice 
0x01: B Slice 
0x06: SEI 
0x09: AU Delimiter

由于NAL的語(yǔ)法中沒(méi)有給出長(zhǎng)度信息敲街,實(shí)際的傳輸、存儲(chǔ)系統(tǒng)需要增加額外的頭實(shí)現(xiàn)各個(gè)NAL單元的定界严望。

其中,AVI文件和MPEG TS廣播流采取的是字節(jié)流的語(yǔ)法格式逻恐,即在NAL單元之前增加0x00000001的同步碼像吻,則從AVI文件或MPEG TS PES包中讀出的一個(gè)H.264視頻幀以下面的形式存在:

00 00 00 01 06 ...     00 00 00 01 67 ...     00 00 00 01 68 ...     00 00 00 01 65 ... 
SEI信息                SPS                    PPS                    IDR Slice

而對(duì)于MP4文件,NAL單元之前沒(méi)有同步碼复隆,卻有若干字節(jié)的長(zhǎng)度碼拨匆,來(lái)表示NAL單元的長(zhǎng)度,這個(gè)長(zhǎng)度碼所占用的字節(jié)數(shù)由MP4文件頭給出挽拂;此外惭每,從MP4讀出來(lái)的視頻幀不包含PPS和SPS,這些信息位于MP4的文件頭中亏栈,解析器必須在打開(kāi)文件的時(shí)候就獲取它們台腥。從MP4文件讀出的一個(gè)H.264幀往往是下面的形式(假設(shè)長(zhǎng)度碼為2字節(jié)):

00 19 06 [... 25 字節(jié)...]     24 aa 65 [... 9386 字節(jié)...] 
SEI信息                       IDR Slice

2、幀分割绒北。 在實(shí)際的H264數(shù)據(jù)幀中黎侈,往往幀前面帶有00 00 00 01 或 00 00 01分隔符,一般來(lái)說(shuō)編碼器編出的首幀數(shù)據(jù)為PPS與SPS闷游,接著為I幀……

如下圖:

[圖片上傳失敗...(image-3914e4-1623751823950)]

3峻汉、如何判斷幀類(lèi)型(是圖像參考幀還是I、P幀等)脐往?

NALU類(lèi)型是我們判斷幀類(lèi)型的利器休吠,從官方文檔中得出如下圖:

[圖片上傳失敗...(image-6c3738-1623751823950)]

我們還是接著看最上面圖的碼流對(duì)應(yīng)的數(shù)據(jù)來(lái)層層分析,以00 00 00 01分割之后的下一個(gè)字節(jié)就是NALU類(lèi)型业簿,將其轉(zhuǎn)為二進(jìn)制數(shù)據(jù)后瘤礁,解讀順序?yàn)閺淖笸宜悖缦? (1)第1位禁止位辖源,值為1表示語(yǔ)法出錯(cuò)
(2)第2~3位為參考級(jí)別
(3)第4~8為是nal單元類(lèi)型

例如上面00000001后有67,68以及65

其中0x67的二進(jìn)制碼為: 0110 0111
4-8為00111蔚携,轉(zhuǎn)為十進(jìn)制7,參考第二幅圖:7對(duì)應(yīng)序列參數(shù)集SPS

其中0x68的二進(jìn)制碼為: 0110 1000
4-8為01000克饶,轉(zhuǎn)為十進(jìn)制8酝蜒,參考第二幅圖:8對(duì)應(yīng)圖像參數(shù)集PPS

其中0x65的二進(jìn)制碼為: 0110 0101
4-8為00101,轉(zhuǎn)為十進(jìn)制5矾湃,參考第二幅圖:5對(duì)應(yīng)IDR圖像中的片(I幀)

所以判斷是否為I幀的算法為: (NALU類(lèi)型 & 0001 1111) = 5 即 NALU類(lèi)型 & 31 = 5

比如0x65 & 31 = 5

參見(jiàn):http://blog.csdn.net/jefry_xdz/article/details/8461343

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末亡脑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌霉咨,老刑警劉巖蛙紫,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異途戒,居然都是意外死亡坑傅,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén)喷斋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)唁毒,“玉大人,你說(shuō)我怎么就攤上這事星爪〗鳎” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵顽腾,是天一觀的道長(zhǎng)近零。 經(jīng)常有香客問(wèn)我,道長(zhǎng)抄肖,這世上最難降的妖魔是什么久信? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮憎瘸,結(jié)果婚禮上入篮,老公的妹妹穿的比我還像新娘。我一直安慰自己幌甘,他們只是感情好潮售,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著锅风,像睡著了一般酥诽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上皱埠,一...
    開(kāi)封第一講書(shū)人閱讀 51,763評(píng)論 1 307
  • 那天肮帐,我揣著相機(jī)與錄音,去河邊找鬼边器。 笑死训枢,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的忘巧。 我是一名探鬼主播恒界,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼砚嘴!你這毒婦竟也來(lái)了十酣?” 一聲冷哼從身側(cè)響起涩拙,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎耸采,沒(méi)想到半個(gè)月后兴泥,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡虾宇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年搓彻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘱朽。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡好唯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出燥翅,到底是詐尸還是另有隱情,我是刑警寧澤蜕提,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布森书,位于F島的核電站,受9級(jí)特大地震影響谎势,放射性物質(zhì)發(fā)生泄漏凛膏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一脏榆、第九天 我趴在偏房一處隱蔽的房頂上張望猖毫。 院中可真熱鬧,春花似錦须喂、人聲如沸吁断。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)仔役。三九已至,卻和暖如春是己,著一層夾襖步出監(jiān)牢的瞬間又兵,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工卒废, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沛厨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓摔认,卻偏偏與公主長(zhǎng)得像逆皮,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子级野,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1.什么是NAL NAL全稱(chēng)Network Abstract Layer页屠,即網(wǎng)絡(luò)抽象層粹胯。 在H.264/AVC視頻...
    agiletiger閱讀 547評(píng)論 0 0
  • H.264從1999年開(kāi)始,到2003年形成草案辰企,最后在2007年定稿有待核實(shí)风纠。在ITU的標(biāo)準(zhǔn)?稱(chēng)為H.264,在...
    kansnow閱讀 6,221評(píng)論 0 2
  • H264 NALU分析 NALU(Network Abstract Layer Unit) ?視頻編碼在流媒體和?...
    蔣斌文閱讀 3,993評(píng)論 0 6
  • H.264 中的 NAL 技術(shù) NAL概述NAL 全稱(chēng) Network Abstract Layer牢贸,即網(wǎng)絡(luò)抽象層...
    Y了個(gè)J閱讀 2,417評(píng)論 4 4
  • 需求 在移動(dòng)端做音視頻開(kāi)發(fā)不同于基本的UI業(yè)務(wù)邏輯工作,音視頻開(kāi)發(fā)需要你懂得音視頻中一些基本概念,針對(duì)編解碼而言,...
    小東邪啊閱讀 18,749評(píng)論 1 19