H264 NAL簡介與I幀判斷

2022-05-02 09:48:14 字數 1076 閱讀 5778

**:

中文版:

h.264官方中文手冊(2005).pdf

頭資訊,以保證資料適合各種通道和儲存介質上的傳輸。因此我們平時的每幀資料就是乙個nal單元(sps與pps除外)。在實際的h264資料幀中,往往

幀前面帶有00 00 00 01 或 00 00 01分隔符,一般來說編碼器編出的首幀資料為pps與sps,接著為i幀……

如下圖:

2、如何判斷幀型別(是影象參考幀還是i、p幀等)?

nalu型別是我們判斷幀型別的利器,從官方文件中得出如下圖:

我們還是接著看最上面圖的碼流對應的資料來層層分析,以00 00 00 01分割之後的下乙個位元組就是nalu型別,將其轉為二進位制資料後,解讀順序為從左往右算,如下:

(1)第1位禁止位,值為1表示語法出錯

(2)第2~3位為參考級別

(3)第4~8為是nal單元型別

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

其中0x67的二進位製碼為:

0110 0111

4-8為00111,轉為十進位制7,參考第二幅圖:7對應序列引數集sps

其中0x68的二進位製碼為:

0110 1000

4-8為01000,轉為十進位制8,參考第二幅圖:8對應影象引數集pps

其中0x65的二進位製碼為:

0110 0101

4-8為00101,轉為十進位制5,參考第二幅圖:5對應idr影象中的片(i幀)

所以判斷是否為i幀的演算法為: (nalu型別  & 0001  1111) = 5   即nalu型別& 31 = 5

比如0x65 & 31 = 5

H264 NAL簡介與I幀判斷

1 nal全稱network abstract layer,即網路抽象層。如下圖 2 如何判斷幀型別 是影象參考幀還是i p幀等 nalu型別是我們判斷幀型別的利器,從官方文件中得出如下圖 我們還是接著看最上面圖的碼流對應的資料來層層分析,以00 00 00 01分割之後的下乙個位元組就是nalu型...

H264 NAL簡介與I幀判斷

1 nal全稱network abstract layer,即網路抽象層。如下圖 2 如何判斷幀型別 是影象參考幀還是i p幀等 nalu型別是我們判斷幀型別的利器,從官方文件中得出如下圖 我們還是接著看最上面圖的碼流對應的資料來層層分析,以00 00 00 01分割之後的下乙個位元組就是nalu型...

H264 NAL簡介與I幀判斷

1 nal全稱network abstract layer,即網路抽象層。如下圖 2 如何判斷幀型別 是影象參考幀還是i p幀等 nalu型別是我們判斷幀型別的利器,從官方文件中得出如下圖 我們還是接著看最上面圖的碼流對應的資料來層層分析,以00 00 00 01分割之後的下乙個位元組就是nalu型...