1
片層句法(不分割槽)
句法
c
desc
slice_layer_without_partitioning_rbsp()表6
2 片層a
分割槽句法
句法
c
desc
slice_data_partition_a_layer_rbsp()表7
3 片層b
分割槽句法
句法
c
desc
slice_data_partition_b_layer_rbsp()表8
4 片層c
分割槽句法
句法
c
desc
slice_data_partition_c_layer_rbsp()表9
5 拖尾(trailing bits
)句法
句法
c
desc
rbsp_trailing_bits()表10
6 片頭(slice header
)句法
句法
c
desc
slice_header()
if(nal_unit_type==5)
idr_pic_id /* idr
影象標識,不同的
idr影象有不同的
idr值。場模式下,
idr幀的兩個場有相同的
idr_pic_id
值,[0..65535] */ 2
ue(v)
if(pic_order_cnt_type==0)
if(pic_order_cnt_type==1 && !delta_pic_order_always_zero_flag)
if(redundant_ic_cnt_present_flag)
redundant_pic_cnt/*
冗餘片的id號
*/ 2ue(v)
if(slice_type==b)
direct_spatial_mv_pred_flag/* b
影象在直接**模式下,
1:空間**,
0:時間***/
2u(1)
if(slice_type==p||slice_type==sp||slice_type==b) }
ref_pic_list_reordering() /* 見第7
節描述*/ 2
if((weighted_pred_flag && (slice_type==p || slice_type==sp)) || (weighted_bipred_idc==1 && slice_type==b))
pred_weight_table() /* 見第8
節描述*/ 2
if(nal_ref_idc!=0)
dec_ref_pic_marking()/* 見第9
節描述*/ 2
if(entropy_coding_mode_flag && slice_type!=1 && slice_type != si)
cabac_init_idc
/* 給出
cabac
初始化時**的選擇,
[0..2] */ 2
ue(v)
slice_qp_delta /*
指出用於當前片的所有巨集塊的量化引數的初始值。
sliceqpy=26+pic_init_qp_minus26+slice_qp_delta
,[0..51] */ 2
se(v)
if(slice_type==sp || slice_type==si)
if(deblocking_flter_control_present_flag) }
if(num_slice_group_minus1 > 0 && slice_group_map_type>=3 && slice_group_map_type <= 5)
slice_group_change_cycle /*
片組型別是
3.4.5
時,由該元素可以獲取片組中對映單元的數目*/
2u(v)}表
11 slice_type
name
0p slice
1b slice
2i slice
3sp slice
4si slice
5p slice
6b slice
7i slice
8sp slice
9si slice表12
(注:idr
影象時,
slice_type
為2,4,7,9)7
參考幀重排序
句法
c
desc
ref_pic_list_reordering()while(reordering_of_pic_nums_idc!=3) }
if(slice_type==b)while(reordering_of_pic_nums_idc!=3) }
}表13
reordering_of_pic_nums_idc
操作
0短期參考幀重排序,
abs_diff_pic_num_minus1
會出現在碼流中,從當前影象的
picnum
減去(abs_diff_pic_num_minus1+1)
後指明需要重排序的影象
1短期參考幀重排序,
abs_diff_pic_num_minus1
會出現在碼流中,從當前影象的
picnum
加上(abs_diff_pic_num_minus1+1)
後指明需要重排序的影象
2長期參考幀重排序,
long_term_pic_num
會出現在碼流中,指明需要重排序的影象。
3結束迴圈,退出重排序操作。 表
14 8 加權**的語義
句法
c
desc
pred_weight_table()
chroma_weight_l0_flag /*
同luma
相似,但用於色度*/
2u(1)
if(chroma_weight_l0_flag) }
if(slice_type==b)
for(i=0;i<=num_ref_idx_l1_active_minus1;i++)
chroma_weight_l1_flag 2
u(1)
if(chroma_weight_l1_flag)
for(j=0;j<2;j++) }
}表15
9 參考影象序列標記
句法
c
desc
dec_ref_pic_marking()elsewhile(memory_management_control_operation != 0) }
}表16
memory_management_control_operation
操作
0結束迴圈
1將乙個短期參考影象標記為非參考影象,也即將乙個短期參考影象移出參考幀佇列
2將乙個長期參考影象標記為非參考影象,也即將乙個長期參考影象移出參考幀佇列
3將乙個短期參考影象轉為長期參考影象
4指明長期參考幀的最大數目
5清空參考幀佇列,將所有參考影象移參考幀佇列,並禁用長期參考機制
6將當前影象存存為乙個長期參考幀 表
17標記操作
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...
H 264句法和語法總結(五)片頭句法
slice header if nal unit type 5 idr pic id idr 影象的標識。不同的 idr 影象有不同的 idr pic id 值。值得注意的是,idr 影象有不等價於 i 影象,只有在作為 idr 影象的 i 幀才有這個句法元素,在場模式下,idr 幀的兩個場有相同的...
H 264學習筆記4 變換量化
a 變換量化過程總體介紹 經過幀內 16x16和4x4亮度 8x8色度 和幀間 4x4 16x16亮度 4x4 8x8色度 畫素塊 之後,得到 塊的殘差,為了壓縮殘差資訊的統計冗餘,需要對殘差資料進行變換和量化操作。變換和量化的總體操作過程如下圖 對於intra 16x16的亮度塊,通過16 4x4...