什麼是I幀以及如何判斷I幀 h264,nal

2021-08-28 03:05:36 字數 796 閱讀 2062

這文章很有用。

sps:序列引數集

pps:影象引數集

編碼器編出的首幀資料為pps與sps

1、nal全稱network abstract layer, 即網路抽象層。如下圖:

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

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

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

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

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

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

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

其中0x67的二進位製碼為:其中0x68的二進位製碼為:其中0x65的二進位製碼為:所以判斷是否為i幀的演算法為: (nalu型別  & 0001  1111) = 5   即nalu型別& 31 = 5

比如0x65 & 31 = 5

什麼是I幀,P幀,B幀

i幀表示關鍵幀,你可以理解為這一幀畫面的完整保留 解碼時只需要本幀資料就可以完成 因為包含完整畫面 p幀表示的是這一幀跟之前的乙個關鍵幀 或p幀 的差別,解碼時需要用之前快取的畫面疊加上本幀定義的差別,生成最終畫面。也就是差別幀,p幀沒有完整畫面資料,只有與前一幀的畫面差別的資料 b幀是雙向差別幀,...

什麼是I幀,P幀,B幀

i幀表示關鍵幀,你可以理解為這一幀畫面的完整保留 解碼時只需要本幀資料就可以完成 因為包含完整畫面 p幀表示的是這一幀跟之前的乙個關鍵幀 或p幀 的差別,解碼時需要用之前快取的畫面疊加上本幀定義的差別,生成最終畫面。也就是差別幀,p幀沒有完整畫面資料,只有與前一幀的畫面差別的資料 b幀是雙向差別幀,...

什麼是I幀,P幀,B幀

i幀表示關鍵幀,你可以理解為這一幀畫面的完整保留 解碼時只需要本幀資料就可以完成 因為包含完整畫面 p幀表示的是這一幀跟之前的乙個關鍵幀 或p幀 的差別,解碼時需要用之前快取的畫面疊加上本幀定義的差別,生成最終畫面。也就是差別幀,p幀沒有完整畫面資料,只有與前一幀的畫面差別的資料 b幀是雙向差別幀,...