【視頻編解碼·學習筆記】12. 圖像參數集(PPS)介紹

1、PPS相關概念:

  • 除了序列參數集SPS以外,H.264中另外一重要的參數集合爲圖像參數集Picture Paramater Set(PPS)。
  • 一般狀況下,PPS相似於SPS,在H.264的裸碼流中單獨保存在一個NAL Unit中,
  • PPS NAL Unit的nal_unit_type值爲8
  • 在封裝格式中,PPS一般與SPS一塊兒,保存在視頻文件的文件頭中。

2、1. PPS的結構:

在H.264的協議文檔中,PPS的結構定義在7.3.2.2節中,以下表所示: 1 2算法

其中部分語法元素含義以下:ide

(1). pic_parameter_set_id

表示當前PPS的id。某個PPS在碼流中會被相應的slice引用,slice引用PPS的方式就是在Slice header中保存PPS的id值。該值的取值範圍爲[0,255]。編碼

(2). seq_parameter_set_id

表示當前PPS所引用的激活的SPS的id。經過這種方式,PPS中也能夠取到對應SPS中的參數。該值的取值範圍爲[0,31]。spa

(3). entropy_coding_mode_flag

熵編碼模式標識,該標識位表示碼流中熵編碼/解碼選擇的算法。對於部分語法元素,在不一樣的編碼配置下,選擇的熵編碼方式不一樣。例如在一個宏塊語法元素中,宏塊類型mb_type的語法元素描述符爲「ue(v) | ae(v)」,在baseline profile等設置下采用指數哥倫布編碼,在main profile等設置下采用CABAC編碼。視頻

標識位entropy_coding_mode_flag的做用就是控制這種算法選擇。當該值爲0時,選擇左邊的算法,一般爲指數哥倫布編碼或者CAVLC;當該值爲1時,選擇右邊的算法,一般爲CABAC。ip

(4). bottom_field_pic_order_in_frame_present_flag

標識位,用於表示另外條帶頭中的兩個語法元素delta_pic_order_cnt_bottom和delta_pic_order_cn是否存在的標識。這兩個語法元素表示了某一幀的底場的POC的計算方法。文檔

(5). num_slice_groups_minus1

表示某一幀中slice group的個數。當該值爲0時,一幀中全部的slice都屬於一個slice group。slice group是一幀中宏塊的組合方式,定義在協議文檔的3.141部分。(主要用在FMO靈活宏塊模式編碼時纔會用到)it

(6). num_ref_idx_l0_default_active_minus一、num_ref_idx_l0_default_active_minus1

表示當Slice Header中的num_ref_idx_active_override_flag標識位爲0時,P/SP/B slice的語法元素num_ref_idx_l0_active_minus1和num_ref_idx_l1_active_minus1的默認值。配置

(7). weighted_pred_flag

標識位,表示在P/SP slice中是否開啓加權預測。coding

(8). weighted_bipred_idc

表示在B Slice中加權預測的方法,取值範圍爲[0,2]。0表示默認加權預測,1表示顯式加權預測,2表示隱式加權預測(都應用於B slices)。

(9). pic_init_qp_minus26 和 pic_init_qs_minus26

表示初始的量化參數。實際的量化參數由該參數、slice header中的slice_qp_delta/slice_qs_delta計算獲得。

(10). chroma_qp_index_offset

用於計算色度份量的量化參數,取值範圍爲[-12,12]。

(11). deblocking_filter_control_present_flag

標識位,用於表示Slice header中是否存在用於去塊濾波器控制的信息。當該標誌位爲1時,slice header中包含去塊濾波相應的信息;當該標識位爲0時,slice header中沒有相應的信息。

(12). constrained_intra_pred_flag

若該標識爲1,表示$I$宏塊在進行幀內預測時只能使用來自$I$和$SI$類型宏塊的信息;若該標識位0,表示I宏塊可使用來自Inter類型宏塊的信息。

(13). redundant_pic_cnt_present_flag

標識位,用於表示Slice header中是否存在redundant_pic_cnt語法元素。當該標誌位爲1時,slice header中包含redundant_pic_cnt;當該標識位爲0時,slice header中沒有相應的信息。

相關文章
相關標籤/搜索