sps和pps成员值含义.docx_第1页
sps和pps成员值含义.docx_第2页
sps和pps成员值含义.docx_第3页
sps和pps成员值含义.docx_第4页
sps和pps成员值含义.docx_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

H.264SPS/PPS成员值含义(转)(2011-01-06 09:03:39)转载标签:it分类:视频技术相关一、sequence_parameter_set_rbsp_t结构体内成员及用途1. unsigned profile_idc:它指的是码流对应的profile.1.1 基线profile(Baseline profile)遵循基线profile的码流应该遵循以下的约束:a) 只有I和P切片存在b) NAL单元流不应该有范围在2到4的nal_unit_type值,包括2和4.c) 序列参数集(sps)的frame_mbs_only_fag(之后介绍)应该等于1d) 图象参数值(psp)的weighted_pred_flag和weighted_bipred_idc都应该为0e) 图象参数值(psp)的entropy_coding_mode_flag应该等于0f) 图象参数值(psp)的num_slice_groups_minus1应该在0到7之间,包括0和7g) 对于基线profile对应的level度应该满足.符合基线profile的码流的profile_idc被赋66.符合一定level的基线Baseline的解码器应该可以解码所有的profile_idc等于66的码流或constrained_set0_flag(等会介绍)为1而且level_idc(在level部分介绍)少于或等于一个指定的level的码流。1.2 主profile(Main profile)符合主profile的码流应该遵循以下的约束:a) 只有I,P,B切片存在.b) NAL单元流不包括nal_unit_type值范围在2-4之内的值。包括2和4.c) 不能允许有随意顺序的切片d) 图像参数集(psp)的num_slice_groups_minus1应该只为0e) 图像参数集(psp)的redundant_pic_cnt_present_flag应该只为0f) 对于主profile所要求的level级需要达到。符合主profile的码流的profile_idc应为77。符合指定level的主profile的解码器应该可以解码所有的profile_idc为77的或constrained_set1_flag值为1且level_idc值小于或等于指定level的码流。1.3 扩展profile(Extended profile)符合扩展profile的码流应该遵循以下的约束:a) 序列参数集的direct_8x8_inference_flag值应该为1b) 图像参数集的entropy_coding_mode_flag值应该为0c) 图像参数集的num_slice_groups_minus1的值范围为0到7,包括0和7d) 对于扩展profile指定的level级应该被达到符合指定level级的扩展profile的解码器可以解码所有的profile_idc值为88的或constrained_set2_flag值为1的,而且level_idc小于等于指定level级的码流。符合指定level级的扩展profile的解码器可以解码所有的profile_idc值为66的或constrained_set0_flag值为1的,而且level_idc小于等于指定level级的码流。2. constrained_set0_flag当constrained_set0_flag值为1的时候,就说明码流应该遵循基线profile(Baseline profile)的所有约束.constrained_set0_flag值为0时,说明码流不一定要遵循基线profile的所有约束。3. constrained_set1_flag当constrained_set1_flag值为1的时候,就说明码流应该遵循主profile(Main profile)的所有约束.constrained_set1_flag值为0时,说明码流不一定要遵循主profile的所有约束。4. constrained_set2_flag当constrained_set2_flag值为1的时候,就说明码流应该遵循扩展profile(Extended profile)的所有约束.constrained_set2_flag值为0时,说明码流不一定要遵循扩展profile的所有约束。注意:当constraint_set0_flag,constraint_set1_flag或constraint_set2_flag中不只一个值为1的话,那么码流必须满足所有相应指明的profile约束。5. level_idc它指的是码流对应的level级.5.1 独立于profile的level约束让fR是这样一个变量:a) 如果图像n是一帧,fR设为1/172b) 如果图像n是一个场,fR设为1/(172*2)任何profile下的指定的level都应该满足如下约束:a) 理论上可访问单元n从CPB中的移除时间满足这样的约束:t(n)-t(n-1)要比Max(PicSizeInMbs,MaxMBPS,fR)值大或相等,MaxMBPS是说在level表中指出的对于图像n的值,PicSizeInMbs是指在图像n中的宏块数。b) 如果图像n是一个输出图像而且它不是码流的最后一个输出图象,从DPB中取出的连续的输出图象差满足:Dt(n) = Max(PicSizeInMbs, MaxMBPS, fR), MaxMBPS是指对于图象n来说的相应的值。PicSizeInMbs指图象n的宏块。c) 对于可访问单元0的NumBytesInNALunit变量的总和少于或等于256*ChromaFormatFactor*(PicSizeInMbs+MaxMBPS*tr(0)-trn(0)/MinCR,MaxMBPS和MinCR是图象0在level表中相应的值,PicSizeInMbs是图象0的宏块数量。d) 对于可访问单元n的NumBytesInNALunit值的总和是小于或等于256*ChromaFormatFactor*MaxMBPS*(tr(n)-trn(n-1)/MinCR,MaxMBPS和MinCR的值是图像n在level级表中对应的值。e) PicWidthInMbs * FrameHeightInMbs = MaxFS, MaxFS是在level表中指定的值。f) PicWidthInMbs = Sqrt(MaxFS * 8)g) FrameHeightInMbs = Sqrt(MaxFS * 8)h) max_dec_frame_buffering =MaxDpbSize, MaxDpbSize等于Min(1024 * MaxDPB /(PicWidthInMbs * FrameHeightInMbs * 256 * ChromaFormatFactor,16),MaxDPB是对于1024字节单元的MaxDPB值,max_dec_frame_buffering也叫做DPB大小值。i) 对于VCL HRD参数值,至少对于一个SchedSelIdx值来说,码率BitRateSchedSelIdx = 1000 *MaxBR且CpbSizeSchedSelIdx = 1000 * MaxCPB。MaxBR和MaxCPB是对于1000bits/s和1000位单元对应于level级表的值。码流应该为0到cpb_cnt_minus1中的一个值,包括0和cpb_cnt_minus1.CpbSizeSchedSelIdx也叫做CPB大小值。j) 对于NAL HRD参数来说,BitRateSchSelIdx = 1200 * MaxBR且CpbSizeSchedSelIdx = 1200* MaxCPB,MaxBR和MaxCPB是在1200bits/s和1200位的单元值在极限level下的值。码流应该满足至少SchedSelIdx值从0到cpb_cnt_minus1中的一个值。 k) 在亮度帧采样中,垂直运动向量元素范围不能超过MaxVmvR,MaxVmvR值在level极限表中提供l) 在亮度帧采样单元中,水平运动向量范围不能超过-2048到2047.75,包括-2048和2047.75。m) 按解码顺序的两个连续的宏愉的运动向量的数量不超过MaxMvsPer2Mb(对于当前宏块的最后一个切片和下一个宏块的第一个切片也适用),MaxMvsPer2Mb值在level极限表中提供.n) 对于任何宏块的macroblock_layer()的位数值都不能大于128 + 2048 * ChromaFormatFactor.依赖于entropy_coding_mode_flag值,macroblock_layer()的值由如下方式计算 如果entropy_coding_mode_flag值为0的话,macroblock_layer()的值由macroblock_layer()的对于一个macroblock的语法结构给出其他情况下,对于一个宏块的macroblock_layer()值是由read_bits(1)给出的.5.2 与profile相关的level级对于基线profile,主profile和扩展profile的相应的level级约束在H.264的文档中有表可查。6. seq_parameter_set_idseq_parameter_set_id指定了由图像参数集指明的序列参数集。seq_parameter_set_id值应该是从0到31,包括0和31注意: 当可用的情况下,编码器应该在sps值不同的情况下使用不同的seq_parameter_set_id值,而不是变化某一特定值的seq_parameter_set_id的参数集的语法结构中的值。7. log2_max_frame_num_minus4log2_max_frame_num_minus4指定了变量MaxFrameNum的值,MaxFrameNum = 2(log2_max_frame_num_minus4+4)log2_max_frame_num_minus的值应该在0到12之间,包括0和12.8. pic_order_cnt_typepic_order_cnt_type指定了解码图像顺序的方法。pic_order_cnt_type的值是0,1,2。pic_order_cnt_type在当一个编码视频序列有如下限定时不为2a) 包含非参考帧的可访问单元,并紧接着一个包含非参考可访问单元b) 两个可访问单元,它们分别包含两个场中的一个,它们一块儿组成了一个互补的非参考场对,被紧接着一个包括非参考图像的可访问单元。c) 一个包含非参考场的可访问单元,并紧接着一个包含另一个非参考图像的可访问单元,它们不组成互补的非参考场对。9. log2_max_pic_order_cnt_lsb_minus4log2_max_pic_order_cnt_lsb_minus4指出变量MaxPicOrderCntLsb的值,它是在解码过程中使用到的图像顺序计算值:MaxPicOrderCntLsb = 2(log2_max_pic_order_cnt_lsb_minus4+4)log2_max_pic_order_cnt_lsb_minus4的值为包括0和12以及它们之间的值。10. delta_pic_order_always_zero_flagdelta_pic_order_always_zero_flag等于1的时候表示当delta_pic_order_cnt0和delta_pic_order_cnt1在序列的切片头中不存在,并被认为是0。delta_pic_order_always_zero_flag值等于0时表示delta_pic_order_cnt0在序列的切片头中存在而delta_pic_order_cnt1可能在序列的切片头中存在。11. offset_for_non_ref_picoffset_for_non_ref_pic被用来计算一个非参考图像的图像顺序值。offset_for_non_ref_pic值取值范围为(-2)(31)到2(31)-1,包括边界值。12. offset_for_top_to_bottom_fieldoffset_for_top_to_bottom_field被用来计算一帧中的下场的图像顺序值。offset_for_top_to_bottom_field值的取值范围为(-2)(31)到(2)(31)-1,包括边界值。13. num_ref_frames_in_pic_order_cnt_cyclenum_ref_frames_in_pic_order_cnt_cycle在解码过程中被用来计算图像顺序值。num_ref_frames_in_pic_order_cnt_cycle在0到255之间取值,包括边界值。14. offset_for_ref_frameioffset_for_ref_framei是一列num_ref_frames_in_pic_order_cnt_cycle中的一个元素,它被在解码过程的解码顺序值中使用。offset_for_ref_framei的值为(-2)31到(2)(31)-1,包括边界值。15. num_ref_framesnum_ref_frames指定了长期的和短期的参考帧的最大总数目,互补的参考场对和在解码过程中对于任何序列使用的帧间预测的非配对的参考场。num_ref_frames也决定了滑动窗口的操作大小过程。num_ref_frames值在0-16之间,包括边界值。16. gaps_in_frame_num_value_allowed_flaggaps_in_frame_num_value_allowed_flag值指明了frame_num允许的值和解码过程中的frame_num的差距值。17. pic_width_in_mbs_minus1pic_width_in_mbs_minus1加1指明了对于每个解码图像中的宽度值。在宏块单元中的图像宽度的变量值为:PicWidthInMbs = pic_width_in_mbs_minus1+1;对于亮度元素来说图像宽度变量的值:PicWidthInSamplesL = PicWidthInMbs * 16;对于色度元素来说图像宽度变量的值:PicWidthInSamplesC = PicWidthInMbs * 818. pic_height_in_map_units_minus1pic_height_in_map_units_minus1指明了解码帧或场中的一个切片组的高度。变量PicHeightInMapUnits的值和PicSizeInMapUnits:PicHeightInMapUnits = pic_height_in_map_units_minus1 + 1;PicSizeInMapUnits = PicWidthInMbs * PicHeightInMapUnits19.frame_mbs_only_flagframe_mbs_only_flag等于0指明了视频序列的编码图象可能是编码场或编码帧。frame_mbs_only_flag等于1指明了每个编码视频序列的编码图像都是只含帧宏块的编码帧。依赖于frame_mbs_only_flag的值,pic_height_in_map_units_minus1如下定义:如frame_mbs_only_flag等于0,pic_height_in_map_units_minus1就是宏块单元的场高如frame_mbs_only_flag等于1,pic_height_in_map_units_minus1就是宏块单元的场宽FrameHeightInMbs的值:FrameheightInMbs = (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论