HEVC 序列参数集 SPS说明

本文详细介绍了HEVC/H.265编码中的序列参数集SPS,包括图像格式、编码参数、参考图像信息、档次层级参数、时域分级信息等内容,解析了SPS中的关键语法元素,如采样格式、分辨率、量化深度、编码块尺寸、变换块深度等,以及参考图像的使用和管理,为理解HEVC视频编码提供了深入的见解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HEVC 序列参数集 SPS说明
在H.265/HEVC中,一个CVS由一个随机接入点开始,第一幅图像可以是IDR图像,也可以是non-IDR图像。non-IDR图像可以是BLA (Broken Link Access)图像或 CRA (Clean Random Access)图像。对于一段视频码流,其可能包含一个或者多个编码视频序列CVS。序列参数集SPS的内容就是包含一个CVS中所有编码图像的共享编码参数,SPS通过被PPS引用而作用于编码图像,一个CVS中所有被使用的PPS必须引用同一个SPS。实际上,SPS为所有的SS提供了公共参数,如图像的格式、档次、级等。当一个SPS被引用时,该SPS处于激活状态,直到整个CVS结束。
下表给出了SPS中所含的语法元素,其内容大致分为以下几个部分。
1 图像格式的信息。包括采样格式、图像分辨率、量化深度、解码图像是否需要裁剪输出以及相关的裁剪参数。
2 编码参数信息。包括编码块、变换块的最小尺寸和最大尺寸,帧内、帧间预测编码时变换块的最大划分深度,对4:4:4采样格式的三个通道分量是否单独编码,是否需要帧内强滤波,帧间预测过程中的某些限制条件[如非对称模式(AMP)的使用、时域MV预测的使用]是否使用量化矩阵,是否需要样点自适应补偿(SAO),是否采用PCM模式及在该模式下的相关编码参数。
3 与参考图像相关的信息。包括短期参考图像的设置,长期参考图像的使用和数目,长期参考图像的POC和其能否作为当前图像的参考图像。
4 档次、层和级相关参数。
5 时域分级信息。包括时域子层的最大数目,控制传输POC进位的参数,时域子层顺序标识开关,与子层相关的参数(如解码图像缓冲区的最大需求)。
6 可视化可用性信息、(VideoUsabilityInformation,VUI),用于表征视频格式等额外信息。
7 其他信息。包括当前SPS引用的VPS编号、SPS标识号和SPS扩展信息。
SPS表1
SPS表2
SPS表3
SPS表4
SPS表5

sps_videoparametersetid:指定当前激活的VPS的ID号。
sps_max_sublayers_minus1:用于指定时域子层的最大数目。
sps_temporal_id_nesting_flag:当sps_max_sub_layers_minus1大于0时,其规定了是否额外地限制CVS的帧间预测,当vps_temporal_id_nesting_flag取值为1时,该语法元素取值为1。当sps_max_sub_layers_minusl为0时,该语法元素取值为1。
sps_seq_parameter_set_id:表示SPS的标识号,取值范围为[0,15]。
chroma_formati_dc:表示色度采样格式,取值范围为[0,3]。例如取值为1时,表示采用4:2:0格式。
separate_colour_plane_flag:该语法元素取值为1,则表示对4:4:4格式的三种通道分量采用单独编码;该语法元素取值为则表示彩色分量不进行独立编码。当该语法元素没有给出时,可推测出其值为0。
pic_width_in_luma_samples:表明解码图像中亮度样点的宽度。
pic_height_in_luma_samples:表明解码图像中亮度样点的高度。
conformance_window_flag:表示解码器是否要对解码后的图像裁剪输出。
conf_win_left_offset、conf_win_right_offset、confwin_top_offset和confwinbottomoffset:当conformance_window_flag值为1时,解码图片需要裁减输出,这四个参数用于指定左、右、上、下的裁剪宽度。
bit_depth_luma_minus8:表示亮度像素的比特深度。
bit_depth_chroma_minus8:表示色度像素的比特深度。
log2_maxpic_order_cnt_Isb_minus4:该语法元素的取值范围为[0,12],其用于计算变量MaxPicOrderCntLsb的值。MaxPicOrderCntLsb用于控制进位,比特流中只传一个低位的POC,不用传高位POC。利用前参考图像的高、低位POC和MaxPicOrderCntLsb得到当前图像的高位POC,再结合当前图像的低位POC,可以得到当前图像实际的POC。
sps_sub_layer_ordering_info_present_flag:时域子层顺序标识开关。该值等于1,表示sps_max_decpic_buffering_minus1[i]、sps_max_numreorder_pics[i]、sps_max_latency_increase_plus1[i]适用于sps_max_sublayersminus1+1子层;该值等于0,则表示这些参数适用于所有子层。sps_max_dec_pic_buffering_minus1[i]:当HighestTid取值为i时,该语法元素规定了解码图像缓冲区的最大需求。
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]的值。
log2_minluma_coding_blocksize_minus3:指定亮度编码块的最小尺寸。log2_diff_max_min_luma_coding_block_size:指定亮度编码块最大尺寸和最小尺寸的差值。
log2_min_transform_block_size_minus2:指定亮度变换块的最小尺寸。
log2_diff_max_min_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:表示是否使用非对称划分模式,非对称模式即PartMode等于PART_2NxnU,PART_2NxnD,PART_nLx2N或PART_nRx2N。
sample_adaptive_offset_enabled_flag:表示去方块滤波过程后重构图像是否使用样点自适应补偿(SAO)。
pcm_enabled_flag:表示是否使用PCM模式。
pcm_sample_bit_depth_luma_minus1:表示亮度分量中PCM样点的比特深度。pcm_sample_bit_depth_chroma_minusl:表示色度分量中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_set:指明在SPS中short_term_ref_pic_set()的数目。其取值范围为[0,64]。
long_term_ref_pics_present_flag:表示帧间预测时是否使用长期参考图像。
num_long_term_refpics_sps:指定SPS中长期参考图像的数目,其取值范围是[0,32]。
lt_ref_pic_poc_Isb_sps[i]:表示POC与SPS中第i个长期参考图像的MaxPicOrderCntLsb取模之后的值。
used_by_curr_pic_It_sps_flag[i]:表示第i个长期参考图像能否作为当前图像的参考图像。
sps_temporal_mvp_enabled_flag:指定非IDR图像的片头中是否存在句法元素slice_temporal_mvp_enabled_flag(表示帧间预测过程中能否使用时域MV预测)。
strong_intra_smoothing_enabled_flag:表示滤波过程是否使用双向线性插值。
vui_parameters_present_flag:表示是否含有语法结构体vuiparame-ters()。
sps_extension_flag:其值为0,则表示语法元素sps_extension_data_flag不存在;其值为1,则语法元素sps_extension_data_flag被保留以供将来使用。
sps_extension_data_flag:可以为任意值,在现有版本中解码器忽略该语法元素。

摘自《新一代高效视频编码 H.265/HEVC:原理、标准与实现》 万帅 杨付正 编著

H264编码开源代码 Video Usability Information (VUI) Guide by Christian Heine ( sennindemokrit at gmx dot net ) 1. Sample Aspect Ratio ----------------------- * What is it? The Sample Aspect Ratio (SAR) (sometimes called Pixel Aspect Ratio or just Pel Aspect Ratio) is defined as the ratio of the width of the sample to the height of the sample. While pixels on a computer monitor generally are "square" meaning that their SAR is 1:1, digitized video usually has rather odd SARs. Playback of material with a particular SAR on a system with a different SAR will result in a stretched/squashed image. A correction is necessary that relies on the knowledge of both SARs. * How do I use it? You can derive the SAR of an image from the width, height and the display aspect ratio (DAR) of the image as follows: SAR_x DAR_x * height ----- = -------------- SAR_y DAR_y * width for example: width x height = 704x576, DAR = 4:3 ==> SAR = 2304:2112 or 12:11 Please note that if your material is a digitized analog signal, you should not use this equation to calculate the SAR. Refer to the manual of your digitizing equipment or this link instead. A Quick Guide to Digital Video Resolution and Aspect Ratio Conversions http://www.iki.fi/znark/video/conversion/ * Should I use this option? In one word: yes. Most decoders/ media players nowadays support automatic correction of aspect ratios, and there are just few exceptions. You should even use it, if the SAR of your material is 1:1, as the default of x264 is "SAR not defined".
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水笙赵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值