關於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)組成。宏塊是編碼處理的基本單元

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章