H265 NALU類型詳細解析(轉)

原文:https://blog.csdn.net/u014470361/article/details/89541544

作者:夜風~

來源:CSDN

前言
在海思自hi3516a帶的開發固件中,有H265編碼的實例,在SAMPLE_VENC_1080P_CLASSIC(HI_VOID)應用實例中有涉及,那麼本文將對H265的nal頭和nalu的類型進行相關解析。

h265 Nalu類型解析

 

F

F:必須爲0,表示有效;爲1的話表示無效。

 

Type

Type:6-bits NALType 確定NAL的類型,其中VCL NAL和non-VCL NAL各有32類。0-31是vcl nal單元;32-63,是非vcl nal單元。VCL是指攜帶編碼數據的數據流,而non-VCL則是控制數據流.

vcl nal單元的類型(0-31)如下表:

non-vcl nal單元的類型(32-63)如下表:

這裏解釋一下上表中各個unit type的含義,如下

  • Parameter sets包括VPS、SPS和PPS。
  • Delimiters(分隔符)包括AUD_NUT、EOS_NUT、EOB_NUT,其中AUD_NUT用於指示access unit的邊界,所以和access unit內的VCL NAL有相同的TID,是access unit內的第一個NAL。EOS_NUT、EOB_NUT分別表示CVS和bitstream的結束,它們的TID爲0,沒有payload,只有2-Type的header。
  • Filler Data對解碼過程並沒有任何影響,payload就是由一串’11111111’和1-Type的’10000000’組成,主要用來填充。
  • SEI:supplemental enhancement informatyion,輔助增強信息,提供可選的解碼支持元數據。在HEVC中,SEI是prefix(SEI必須在Access unit的所有VCL NAL之前)或者suffix(SEI可以在Access unit的VCL NAL之後)的,而且SEI有些是隻對當前Access unit有效,有些作用範圍可能是多個Access unit甚至整個SVC。VUI是在SPS中的可選信息,VUI不直接影響解碼過程,但是提供兩個方面的信息:1、解碼圖像的展示信息,包括寬高比、掃描、分時等信息;2、限制解碼端的一些信息,包括tiles、MV、參考圖像等。

LayerID

LayerID:表示NAL所在的Access unit所屬的層,該字段是爲了HEVC的繼續擴展設置。也就是目前都是0,以後的擴展可能會用到。

 

TID

 

H265 幀類型解析

和264的&0x1f不同。
265是 :
int type = (code & 0x7E)>>1;
00 00 00 01是NALU頭,常見的共6種:

根據H265的NALU類型定義分析:
(1) 控制數據流:
00 00 00 01 40 01 的nuh_unit_type的值爲 32, 語義爲視頻參數集 VPS
00 00 00 01 42 01 的nuh_unit_type的值爲 33, 語義爲序列參數集 SPS
00 00 00 01 44 01 的nuh_unit_type的值爲 34, 語義爲圖像參數集 PPS
00 00 00 01 4E 01 的nuh_unit_type的值爲 39, 語義爲補充增強信息 SEI

 VPS、SPS、PPS:三者的結構和關係如下圖所示:

 

(2) 編碼數據的數據流:
00 00 00 01 26 01 的nuh_unit_type的值爲 19, 語義爲可能有RADL圖像的IDR圖像的SS編碼數據 IDR
00 00 00 01 02 01 的nuh_unit_type的值爲1, 語義爲被參考的後置圖像,且非TSA、非STSA的SS編碼數據

 

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