H 264句法和語法總結(五)片頭句法

2021-05-22 05:32:49 字數 2492 閱讀 4421

slice_header( )          

if(nal_unit_type==    5 )         

// idr_pic_id      idr  影象的標識。不同的 idr 影象有不同的 idr_pic_id 值。值得注意的是,idr 影象有不等價於 i 影象,只有在作為 idr 影象的 i 幀才有這個句法元素,在場模式下,idr 幀的兩個場有相同的 idr_pic_id 值。idr_pic_id 的取值範圍是  [0,65535],和 frame_num 類似,當它的值超出這個範圍時,它會以迴圈的方式重新開始計數。  

idr_pic_id

if(pic_order_cnt_type==    0 )          

if(pic_order_cnt_type= = 1 && !delta_pic_order_always_zero_flag)          

if(redundant_pic_cnt_present_flag)        

// redundant_pic_cnt    冗餘片的 id 號。 

redundant_pic_cnt

if(slice_type==    b )         

// direct_spatial_mv_pred_flag  指出在b影象的直接**的模式下,用時間**還是用空間**。1:空間**;0:時間**。 

direct_spatial_mv_pred_flag

if(slice_type= = p | |slice_type= = sp | |slice_type= = b )          

}     

// 參考幀佇列重排序(reordering)句法

ref_pic_list_reordering( )          

if( (weighted_pred_flag&&    (slice_type== p    | |slice_type== sp ) )   | |

(weighted_bipred_idc==    1    &&slice_type==    b ) )

// 加權**句法

pred_weight_table( )      

if(nal_ref_idc!= 0 )         

// 參考幀佇列標記(marking)句法 

dec_ref_pic_marking( )        

if( entropy_coding_mode_flag    &&    slice_type    !=    i    &&   slice_type    !=    si )

// cabac_init_idc  給出 cabac 初始化時**的選擇,範圍 0 到 2。

cabac_init_idc

// slice_qp_delta  指出在用於當前片的所有巨集塊的量化引數的初始值。sliceqpy = 26+ pic_init_qp_minus26 + slice_qp_delta   範圍是  0 to 51。 h.264  中量化引數是分影象引數集、片頭、巨集塊頭三層給出的,前兩層各自給出乙個偏移值,這個句法元素就是片層的偏移。

slice_qp_delta

if(slice_type= =    sp    | |slice_type= =    si )          

if(deblocking_filter_control_present_flag)          

}         

if(num_slice_groups_minus1> 0    &&

slice_group_map_type>= 3    &&slice_group_map_type<= 5)

// slice_group_change_cycle  當片組的型別是 3, 4,    5,由句法元素可獲得片組中  對映單元的數目:

slice_group_change_cycle

}

H264句法和語法總結(二)NAL層語法

如下圖 2 如何判斷幀型別 是影象參考幀還是i p幀等 nalu型別是我們判斷幀型別的利器,從官方文件中得出如下圖 我們還是接著看最上面圖的碼流對應的資料來層層分析,以00 00 00 01分割之後的下乙個位元組就是nalu型別,將其轉為二進位制資料後,解讀順序為從左往右算,如下 長度 1byte ...

H264的句法和語義 二

1.2 句法元素的分層結構 1.2.1 句法元素與變數 編碼器將資料編碼為句法元素然後依次傳送。在解碼器端,通常要將句法元素作求值計算,得出一些中間資料,這些中間資料就是h.264定義的變數。圖1 從句法元素解出變數 pic width in mbs minus1 是解碼器直接從碼流中提取的句法元素...

H 264學習筆記之二(片及片頭語法)

1片層句法 不分割槽 句法 c desc slice layer without partitioning rbsp while reordering of pic nums idc 3 if slice type b while reordering of pic nums idc 3 表13re...