H264/AVC-NALU解析
生活随笔
收集整理的這篇文章主要介紹了
H264/AVC-NALU解析
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
簡介
NALU是H264碼流的基本單元。它的起始碼是0x000001或0x00000001,可以根據(jù)起始碼查找NALU元素。如下圖所示,
H264中NALU由header和body兩部分構(gòu)成。
NALU header
- forbidden_zero_bit,必須為0
- nal_ref_idc, 如果nalu_type為slice,表示該slice是否用作參考
- nal_unit_type,表示nalu類型
NALU類型定義如下,一般比較常見的幾種類型是非IDR slice(type=1)、IDR(type=5)、SPS(type=7)、PPS(type=8)
NALU body
Nalu body生成流程如下:
- 視頻編碼生成的比特流稱為SODB(String of Data Bits)。由于SODB可能不是整數(shù)字節(jié),因此需要在后面填充數(shù)據(jù)使其變成整數(shù)字節(jié),填充后的比特流稱為RBSP(Raw Byte Sequence Payload)。
SODB生成RBSP過程如下:
- RBSP還不能直接作為NALU Body,因為RBSP中可能含有0x00 00 01,與起始碼沖突,必須先進(jìn)行沖突避免處理。規(guī)則如下:遇到0x000000、0x000001、0x000002、0x000003在兩個00字節(jié)后插入一個字節(jié)0x03.
0x000000 -> 0x00000300
0x000001 -> 0x00000301
0x000002 -> 0x00000302
0x000003 -> 0x00000303
總結(jié)
以上是生活随笔為你收集整理的H264/AVC-NALU解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GPS GGA格式
- 下一篇: s3c2440移植MQTT