H265碼流分析

2021-09-26 08:06:34 字數 1632 閱讀 2120

h265相比較於h264,除了包含sps、pps外,還多包含乙個vps;在nalu header上,h.264的nalu header是乙個位元組,而h.265則是兩個位元組。

以0x4001為例,頭資訊可以被解析成4個部分,其中:

對比h.264的頭資訊,h.265移除了nal_ref_idc,此資訊被合併到了nal_unit_type中,h.265nalu型別規定如下:

nal_unit_type

nalu型別備註0

nal_unit_code_slice_trail_n

非關鍵幀

1nal_unit_coded_slice_trail_r

2nal_unit_coded_slice_tsa_n

3nal_uint_coded_slice_tsa_r

4nal_uint_coded_slice_stsa_n

5nal_uint_coded_slice_stsa_r

6nal_unit_coded_slice_radl_n

7nal_unit_coded_slice_radl_r

8nal_unit_coded_slice_rasl_n

9nal_unit_code_slice_rasl_r

10 ~ 15

nal_unit_reserved_x

保留16

nal_unit_coded_slice_bla_w_lp

關鍵幀17

nal_unit_code_slice_bla_w_radl

18nal_unit_code_slice_bla_n_lp

19nal_unit_code_slice_idr_w_radl

20nal_unit_code_slice_idr_n_lp

21nal_unit_code_slice_cra

22 ~ 31

nal_unit_reserved_x

保留32

nal_unit_vps

vps(video paramater set)

33nal_unit_sps

sps34

nal_unit_pps

pps35

nal_unit_access_unit_delimiter

36nal_unit_eos

37nal_unit_eob

38nal_unit_filler_data

39nal_unit_sei

prefix sei

40nal_unit_sei_suffix

suffix sei

41 ~ 47

nal_unit_reserved_x

保留48 ~ 63

nal_unit_unspecified_x

未規定64

nal_unit_invalid

h.265的nalu型別是在資訊頭的第乙個位元組的第2到7位,所以判斷h.265nalu型別的方法是將nalu第乙個位元組與0x7e進行與操作並右移一位,即:

nalu型別 = (nalu頭第一位元組 & 0x7e) >> 1
與h.264類似,h.265碼流也有兩種封裝格式,一種是用起始碼作為分界的annex b格式,另一種則是在nalu頭新增nalu長度字首的格式,稱為hvcc。

H265碼流分析 二

上篇主要介紹了h265的基本構成。現在看下nalu type型別判斷方式 int type code 0x7e 1 型別判斷方式為 00 00 00 01 後的乙個位元組右移乙個位,下面是幾種主要型別 0x40 1 得到0x20,十進位制32,為nal vps 0x42 1 得到0x21,十進位制3...

h265裸流分析

型別判斷方式為分隔符之後的第乙個位元組右移一位的值 第一幀 0x40 1 得到0x20,十進位制32,為nal vps 第二幀 0x42 1 得到0x21,十進位制33,為nal sps 第三幀 0x44 1 得到0x22,十進位制34,為nal pps 第四幀 0x26 1 得到0x13,十進位制...

H 265標準閱讀 GOP

定義將在整個序列中重複使用的迴圈gop結構。這個表應該包括gopsize行,分別命名為frame1,frame2等。這些幀按解碼順序排列,第一幀時解碼順序的第一幀,第二幀是解碼順序的第二幀,以此類推。除此之外,該錶指定了編碼器為每一幀儲存的所有參考。這包括用於當前參考的以及將來用於參考的。編碼器不會...