1. 程式人生 > >關於H264中I幀,P幀的判斷

關於H264中I幀,P幀的判斷

from:http://www.ebaina.com/bbs/thread-4190-1-1.html

在網上找了一下,但是不是很確定所以來問問各位大神下面兩種方法哪種是對的呢:
-----------------------
自己的簡單總結:判斷00 00 00 01後面的16進位制數 ,如果是0x67為sps,0x68為pps,0x65為關鍵幀,0x41不是關鍵幀
-----------------------
這個問題要說清楚還是有點複雜:首先判斷 NALU 型別是否是 5,如果是,那麼以後連續出現的 NALU 型別為 5 的 NALU 就屬於 IDR 幀(一種特殊的 I 幀);如果 NALU 不是 5,則要進一步判斷 slice_type 是否是 7,如果是,那麼連續出現的 slice_type = 7 的 slice 就屬於 I 幀;如果 slice_type = 2,那麼就要判斷與當前 slice 同屬一幀的 slice 是否都是 I slice,如果都是,那麼這些 slice 就屬於一個 I 幀。當然這必須是在碼流沒有錯誤的情況下才可行。
實際應用中,碼流中一般不會出現複雜的情況,所以可以直接判斷 slice_type   是否等於 2 或 7 就可以了。


-----------------------

NAL指網路提取層,裡面放一些與網路相關的資訊

Slice是片的意思,264中把影象分成一幀(frame)或兩場(field),而幀又可以分成一個或幾個片(Slilce);片由巨集塊(MB)組成。巨集塊是編碼處理的基本單元