SPS參數集

一段視頻包含一個或多個編碼視頻序列CVS,每個CVS都有一個SPS,這些SPS都引用同一個VPS。序列參數集SPS包含了一個CVS中所有編碼圖像的共享編碼參數,一個CVS裏的所有PPS都必須引用同一個SPS。當一個SPS被引用時,該SPS處於激活狀態直到整個CVS結束。

SPS所包含的語法元素大致分爲以下幾個方面:

  1. 圖像格式信息。包括採樣格式、圖像分辨率、量化深度、解碼圖像是否需要裁剪輸出以及相關裁剪參數。

  2. 編碼參數信息。包括編碼塊、變換塊的最小和最大尺寸,幀內幀間預測時變換塊最大劃分深度,對4:4:4採樣格式的三個通道是否單獨編碼,是否需要幀內強濾波,幀間預測過程的某些限制條件(如非對稱模式AMP的使用,時域MV預測的使用),是否使用量化矩陣,是否需要樣點自適應補償SAO,是否採用PCM模式及在該模式下的相關編碼參數。

  3. 與參考圖像相關的信息。包括短期參考圖像的設置,長期參考圖像的使用和數目,長期參考圖像的POC和其能否作爲當前圖像的參考圖像。

  4. profile,tier和level相關參數。

  5. 時域分級信息。包括時域子層最大數目,控制傳輸POC進位的參數,時域子層順序標識開關,與子層相關的參數(如DPB的最大需求)。

  6. 可視化可用信息(Video Usability Information,VUI),用於表徵視頻格式等額外信息。

  7. 其他信息。包括當前SPS引用的VPS編號、SPS標識號和SPS擴展信息。

下表是SPS的語法結構:

 

 

下表是SPS擴展部分語法結構:

 

下表是SPS在SCC擴展部分語法結構:

 

sps_video_parameter_set_id:指定當前激活的VPS的ID號。

sps_max_sub_layers_minus1:指定參考當前SPS的CVS的時域子層的最大數目。sps_max_sub_layers_minus1取值在0~6間。

sps_temporal_id_nesting_flag:當sps_max_sub_layers_minus1大於0時,其規定了是否對CVS的幀間預測進行額外限制。當vps_temporal_id_nesting_flag=1時,該語法元素取值爲1。當sps_max_sub_layers_minus1=0時,該語法元素取值爲1。該參數用於指定時域子層升檔,即從低子層切換到高子層。

sps_seq_parameter_set_id:表示SPS的標識號,取值0~15間。

chroma_format_idc:表示色度採樣格式,取值0~3間。例如取1時表示採用4:2:0格式。

separate_colour_plane_flag:該語法元素取1時,表示對4:4:4格式的三個通道單獨編碼;該語法元素取0時,表示不進行單獨編碼。當該語法元素沒給出時可推測爲0。

pic_width_in_luma_samples:表示解碼圖像中亮度樣點的寬度。

pic_height_in_luma_samples:表示解碼圖像中亮度樣點的高度。

conformance_window_flag:表示解碼器是否要對解碼後的圖像裁剪輸出。

conf_win_left_offsetconf_win_right_offsetconf_win_top_offsetconf_win_bottom_offset:當conformance_window_flag=1時,這4個參數指定左、右、上、下的裁剪寬度。

bit_depth_luma_minus8:表示亮度像素的比特深度。

bit_depth_chroma_minus8:表示色度像素的比特深度。

log2_max_pic_order_cnt_lsb_minus4:該語法元素取值爲0~12,用於計算變量MaxPicOrderCntLsb的值。MaxPicOrderCntLsb用於控制進位,比特流中只傳一個低位的POC,不用傳高位的POC。利用前參考圖像的高、低位POC和MaxPicOrderCntLsb得到當前圖像的高位POC,再結合當前圖像的低位POC得到當前圖像實際POC。

MaxPicOrderCntLsb=2^(log2_max_pic_order_cnt_lsb_minus4+4)

sps_sub_layer_ordering_info_present_flag:時域子層順序標識開關。該值等於1,表示sps_max_dec_pic_buffering_minus1[i]、sps_max_num_reorder_pics[i]、sps_max_latency_increase_plus1[i]適用於sps_max_sub_layers_minus1+1子層;該值等於0,表示這些參數適用於所有子層。

sps_max_dec_pic_buffering_minus1[ i ]:當HighestTid=i時,該語法元素規定了DPB的最大需求。

sps_max_num_reorder_pics[ i ]:當HighestTid=i時,表示解碼順序在某一圖像之前,而顯示順序在該圖像之後的最大圖像數量。取值範圍爲[0,sps_max_dec_pic_buffering_minus1[i]]。

sps_max_latency_increase_plus1[ i ]:該值不爲0時,用於計算SpsMaxLatencyPictures[i]的值。

SpsMaxLatencyPictures[ i ] = sps_max_num_reorder_pics[ i ] + sps_max_latency_increase_plus1[ i ] − 1

log2_min_luma_coding_block_size_minus3:指定亮度編碼塊最小尺寸。

log2_diff_max_min_luma_coding_block_size:指定亮度編碼塊最大尺寸和最小尺寸的差值。

log2_min_luma_transform_block_size_minus2:指定亮度變換塊的最小尺寸。

log2_diff_max_min_luma_transform_block_size:指定亮度變換塊的最大尺寸和最小尺寸的差值。

max_transform_hierarchy_depth_inter:表示幀間預測時變換塊的最大劃分深度。取值範圍爲[0,CtbLog2SizeY-Log2MinTrafoSize]。

max_transform_hierarchy_depth_intra:表示幀內預測時變換塊的最大劃分深度。取值範圍爲[0,CtbLog2SizeY-Log2MinTrafoSize]。

scaling_list_enabled_flag:表示量化過程中是否使用量化矩陣。

sps_scaling_list_data_present_flag:表示是否存在量化矩陣數據。

amp_enabled_flag:表示是否使用非對稱劃分模式。

sample_adaptive_offset_enabled_flag:表示去方塊濾波後是否使用SAO。

pcm_enabled_flag:表示是否使用PCM模式。

pcm_sample_bit_depth_luma_minus1:表示亮度分量中PCM樣點的比特深度。

pcm_sample_bit_depth_chroma_minus1:表示色度分量中PCM樣點的比特深度。

log2_min_pcm_luma_coding_block_size_minus3:表示PCM模式下編碼塊的最小尺寸。

log2_diff_max_min_pcm_luma_coding_block_size:表示PCM模式下編碼塊的最大尺寸與最小尺寸的差值。

pcm_loop_filter_disabled_flag:表示在PCM模式下,編碼單元的重建像素是否使用環路濾波。

num_short_term_ref_pic_sets:指明在SPS中short_term_ref_pic_set()的數目。取值0~64。

long_term_ref_pics_present_flag:表示幀間預測是否使用長期參考圖像。

num_long_term_ref_pics_sps:指定長期參考圖像的數目,範圍0~32。

lt_ref_pic_poc_lsb_sps[ i ]:表示POC與SPS中第i個長期參考圖像的MaxPicOrderCntLsb取模後的值。

used_by_curr_pic_lt_sps_flag[ i ]:表示第i個長期參考圖像能否作爲當前圖像的參考圖像。

sps_temporal_mvp_enabled_flag:指定非IDR圖像的片頭中是否存在句法元素slice_temporal_mvp_enable_flag(表示幀間預測過程能否使用時域MV預測)。

strong_intra_smoothing_enabled_flag:表示濾波過程是否使用雙向線性插值。

vui_parameters_present_flag:表示是否含有語法結構體vui_parameters()。

sps_extension_present_flag:其值爲0,表示語法元素sps_extension_data_flag不存在;其值爲1,sps_extension_data_flag被留給將來使用。

sps_range_extension_flag:可以爲任意值,當前版本解碼器忽略該元素。

sps_multilayer_extension_flag:其值爲1表示語法結構體sps_multilayer_extension( )存在。

sps_3d_extension_flag:其值爲1表示語法結構體 sps_3d_extension( )存在。

sps_scc_extension_flag:其值爲1表示語法結構體 sps_scc_extension( )存在。

sps_extension_4bits:其值爲0。

sps_extension_data_flag:可以爲任意值,當前版本解碼器忽略該元素。

感興趣的請關注微信公衆號Video Coding

 

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