




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. 一些约定byte_aligned()返回该当前字节是否到了字节末尾,是则返回truemore_data_in_byte_stream()Annex B规定的 字节流NAL单元 中使用指示是否还有后续的数据,是则返回truemore_rbsp_data()没有更多RBSP数据,返回false否则,当搜索到RBSP中最后一个为1的比特(就是rbsp_stop_one_bit,rbsp_trailing_bits()的第一位),如果rbsp_trailing_bits()之前还有更多RBSP数据,则,返回true;否则返回falsemore_rbsp_trailing_data( )是否RBSP有更多数据,是则返回truenext_bits( n )读取接来下n比特数据,不移动指针不足n比特返回0read_bits( n )读取接来下n比特数据,并移动指针n=0时返回0CategoriesSlice DataPartition包括Category=2的语义元素Slice DataPartition包括Category=3的语义元素Slice DataPartition包括Category=4的语义元素2. 描述子 (Descriptor)如果有竖线,左边表示entropy_coding_mode_flag=0时使用,竖线右边则为1时使用ae(v)用cabac编码的语义元素b(8)任意形式的8比特,解析过程由read_bits(8)的返回值规定ce(v)用cavlc编码的语义元素f(n)n位固定模式比特,解析过程由read_bits(n)的返回值规定i(n)n比特有符号整数,如果n由v代替,则n通过其他渠道规定解析过程由read_bits(n)的返回值被译成2的补码形式规定 ?The parsing process for this descriptor is specified by the return value of the function read_bits( n ) interpreted as a twos complement integer representation with most significant bit written first. (有符号整数的二进制)me(v)指数哥伦布编码的语义元素(Exp_Golomb)se(v)有符号整数指数哥伦布编码的语义元素te(v)截断指数哥伦布编码的语义元素(Truncated EG)u(n)无符号n比特整数,如果n由v代替,则n通过其他渠道规定解析过程由read_bits(n)的返回值用无符号整数的二进制表示规定ue(v)无符号整数指数哥伦布编码的语义元素3. 数据分割片:A:片头和片中每个宏块头数据B:Intra和SI片宏块的编码残差数据C:Inter宏块的编码残差数据IDR片不分割 其他片是否分割视情况而定4. 几个概念之间的关系每个NAL单元包含一个RBSPRBSP的头信息定义了RBSP单元的类型SPS:seq_parameter_set_id,帧数,POC约束,参考帧数目,解码图像尺寸和帧场编码模式选择标识等PPS:pic_parameter_set_id,可选的seq_parameter_set_id,熵编码模式选择标识,片组数目,初始量化参数和去方块滤波系数调整标识等5. NAL单元句法nal_unit( NumBytesInNALunit ) CDescriptor forbidden_zero_bit 恒=0,补齐8比特用Allf(1) nal_ref_idc NAL单元优先级(0-3)Allu(2) nal_unit_type NAL单元类型Allu(5) NumBytesInRBSP = 0 nalUnitHeaderBytes = 1 if( nal_unit_type = = 14 | | nal_unit_type = = 20 ) svc_extension_flagAllu(1)if( svc_extension_flag ) nal_unit_header_svc_extension( ) /* specified in Annex G */All else nal_unit_header_mvc_extension( ) /* specified in Annex H */All nalUnitHeaderBytes += 3 for( i = nalUnitHeaderBytes; i NumBytesInNALunit; i+ ) if( i + 2 RBSP,写入rbsp_byteiRBSP最后一个字节rbsp_trailing_bits(),包含SODB最后几个比特(if any),再补上rbsp_stop_one_bit (1),以及一系列rbsp_alignment_zero_bit(0,if needed)。rbsp_trailing_bits()后还要加上最后若干个cabac_zero_word(0x0000) 句法里没有该内容8) 标准中关于PPS和SPS的翻译:一个图像参数集RBSP包含能被一个或多个编码图像的编码片NAL单元或者编码片分区A NAL 引用的参数。解码过程最初,每个图像参数集RBSP是未激活的。在解码过程中的某个时刻,最多一个图像参数集RBSP被激活,同时这个激活过程也意味着先前激活的那个图像参数集RBSP被反激活。当一个图像参数集RBSP(有一个pic_parameter_set_id )未激活并且被一个编码片NAL单元或者一个编码片分区A NAL单元引用(即使用了相同的pic_parameter_set_id),这个PPS RBSP被激活。在被反激活之前,它被称为激活的PPS RBSP,直到被反激活。拥有pic_parameter_set_id的PPS RBSP在激活之前必须处于可用状态。任何与激活的PPS RBSP拥有相同pic_parameter_set_id的PPS NAL单元,必须与激活的PPS RBSP内容相同。除非这个PPS NAL处在一个编码图像的最后一个VCL NAL单元之后,又在另一个编码图像的第一个VCL NAL单元之前。=一个序列参数集RBSP包含能被一个或多个图像参数集RBSP或者包含缓冲周期SEI消息的SEI NAL单元引用的参数。解码过程最初,每个序列参数集RBSP是未激活的。在解码过程中的某个时刻,最多一个序列参数集RBSP被激活,同时这个激活过程也意味着先前激活的那个序列参数集RBSP被反激活。当一个序列参数集RBSP(有一个seq_parameter_set_id )未激活并且被一个图像参数集RBSP或者一个包含缓冲周期SEI消息的SEI NAL单元引用(即使用了相同的seq_parameter_set_id),这个SPS RBSP被激活。在被反激活之前,它被称为激活的SPS RBSP,直到被反激活。拥有seq_parameter_set_id的SPS RBSP在激活之前必须处于可用状态。注意:因为IDR访问单元的序列参数集RBSP必须在整个序列期间处于激活状态,所以当一个缓冲周期SEI消息是IDR访问单元的一部分时,可以激活序列参数集RBSP。任何与激活的SPS RBSP拥有相同seq_parameter_set_id的PPS NAL单元,必须与激活的SPS RBSP内容相同。除非这个SPS NAL处在一个编码视频序列的最后一个VCL NAL单元之后,又在另一个编码视频序列的第一个包含缓冲周期SEI消息的SEI NAL单元之前。=一个序列参数集扩展RBSP(如果出现)的参数与序列参数集RBSP类似,它应该被认为是前面的有相同seq_parameter_set_id的序列参数集RBSP的一部分。如果该SPS RBSP在激活之前没有伴随着拥有相同id的SPS RBSP扩展,则激活的该序列参数集无视SPS RBSP扩展。9) 访问单元 access unit-就是一个完整的图像编码视频序列由一个或多个访问单元组成编码视频序列由两个IDR标定一个访问单元包含:一个主要编码图像,0或多个冗余编码图像,0或多个非VCL NAL单元第一个是IDR访问单元,后续全是非IDR访问单元SEI NAL单元包含属于多个访问单元数据时,它被包含到第一个被应用的访问单元中10) NAL单元的与访问单元的关系和顺序-比特流的第一个NAL单元作为第一个访问单元的起始-在一个基本编码图像的最后一个VCL NAL之后,如果出现以下NAL单元访问单元分界符(如果有) (9)序列参数集(如果有) (7)图像参数集(如果有) (8)SEI(如果有) (6)nal_unit_type=1418(如果有)基本编码图像的第一个VCL NAL就定义了一个新的访问单元的开始限制:a) 当一个访问单元分界符NAL单元存在时,它就是第一个NAL单元,并且一个访问单元最多只能有一个它 b) SEI NAL应该在基本编码图像之前;并且如果包含缓冲周期SEI消息的话,消息必须是访问单元里第一个SEI NAL单元的第一个SEI消息载荷c) 基本编码图像应该在冗余编码图像之前,冗余编码图像的顺序按照redundant_pic_cnt升序排列d) 序列参数集扩展NAL单元必须紧接着出现在相同seq_parameter_set_id的序列参数集NAL之后(如果有)e) 辅助编码图像的不分区编码片NAL单元必须出现在基本编码图像和所有冗余编码图像之后(如果有)f) 码流结束NAL单元出现的话,它就是最后一个NAL单元g) nal_unit_type=0,12,20-31不应出现在基本编码图像的第一个VCL NAL单元之前h) 如果出现nal_unit_type=7,8,它们可以不在当前访问单元里被引用而是被后续的编码图像的访问单元引用11) 基本编码图像的第一个VCL NAL单元区分当前和之前访问单元不同编码片NAL和编码片分区A NAL的方法frame_num不同(在片头中会详述其意义,只有它不能区分时,以下情况才用到)pic_parameter_set_id不同field_pic_flag不同bottom_field_flag都出现且不同nal_ref_idc不同且有一个为0两者pic_order_cnt_type=0且pic_order_cnt_lsb或delta_pic_order_cnt_bottom不同两者pic_order_cnt_type=1且delta_pic_order_cnt0或delta_pic_order_cnt1不同IdrPicFlag不同IdrPicFlag都=1且idr_pic_id不同12) VCL NAL单元的顺序IDR非IDR-允许任意片顺序:NAL单元可以任何顺序-不允许任意片顺序:separate_colour_plane_flag = 0时,不同片组之间的IDR图像编码片NAL单元不可交织;同一片组内的IDR图像编码片NAL单元按照片内第一个宏块地址递增顺序排列separate_colour_plane_flag =1时,相同color_plane_id的不同片组之间的IDR图像编码片NAL单元不可交织;相同color_plane_id的同一片组内的IDR图像编码片NAL单元按照片内第一个宏块地址递增顺序排列。不同color_plane_id的编码片之间顺序没有限制-允许任意片顺序:非IDR编码片和编码片分区A的NAL单元可以任意顺序但是同一slice_Id的片分区NAL,A在B之前,A在C之前,B在C之前(如果有)-不允许任意片顺序:separate_colour_plane_flag = 0时,不同片组之间的非IDR图像编码片NAL单元/编码片分割A的NAL单元不可交织;同一片组内的非IDR图像编码片NAL单元/编码片分割A的NAL单元按照片内第一个宏块地址递增顺序排列;同一slice_Id的片分区NAL,A在B之前,A在C之前,B在C之前(如果有)separate_colour_plane_flag =1时,相同color_plane_id的不同片组之间的非IDR图像编码片NAL单元/编码片分割A的NAL单元不可交织;相同color_plane_id的同一片组内的非IDR图像编码片NAL单元/编码片分割A的NAL单元按照片内第一个宏块地址递增顺序排列;相同slice_Id和color_plane_id的片分区NAL,A在B之前,A在C之前,B在C之前(如果有)nal_unit_type=12的NAL单元不可出现在访问单元中基本编码图像第一个VCL NAL单元之前nal_unit_type=0,2431(未定义)的NAL单元同上nal_unit_type=2023(保留)同上6. 序列参数集层句法seq_parameter_set_rbsp() CDescriptor profile_idc profile0u(8) constraint_set0_flag0u(1) constraint_set1_flag0u(1) constraint_set2_flag0u(1) constraint_set3_flag0u(1) constraint_set4_flag0u(1) constraint_set5_flag0u(1) reserved_zero_2bits /* equal to0 */0u(2) level_idc level0u(8) seq_parameter_set_id 0-310ue(v) if( profile_idc = = 100 | | profile_idc = = 110 | |profile_idc = = 122 | | profile_idc = = 244 | | profile_idc = = 44 | |profile_idc = = 83 | | profile_idc = = 86 | | profile_idc = = 118 | |profile_idc = = 128 ) chroma_format_idc 色度取样格式,03与separate_colour_plane_flag一起使用,不指定则为1(4:2:0)0ue(v) if( chroma_format_idc = = 3 ) separate_colour_plane_flag指示4:4:4时是否单独编码色度分量 不给定时默认0每个基本编码图像包含三个单色编码分量,用color_plane_id区别 为0时:ChromaArrayType = chroma_format_idc 为1时,ChromaArrayType=00u(1) bit_depth_luma_minus8 0-6 未给定为0 BitDepthy=8+bit_depth_luma_minus8量化参数范围偏移QpBdOffsety=6* bit_depth_luma_minus80ue(v) bit_depth_chroma_minus8 0-6 未给定为0BitDepthc=8+bit_depth_chroma_minus8 量化参数范围偏移QpBdOffsetc=6* bit_depth_chroma_minus8当ChromaArrayType=0未使用它 同时当separate_colour_plane_flag=1时三个分量都使用luma的bit_depthRawMbBits = 1616BitDepthy + 2MbWidthCMbHeightCBitDepthc0ue(v) qpprime_y_zero_transform_bypass_flag为1时:QPY时应用transform bypass (标准8.5)为0(默认):正常transform操作0u(1) seq_scaling_matrix_present_flag为1时:使用不平坦伸缩由seq_scaling_list_present_flag i , i=0-6/0-11指定为0(默认)时:使用平坦伸缩0u(1) if( seq_scaling_matrix_present_flag ) for( i = 0; i ( ( chroma_format_idc != 3 ) ? 8 : 12 ); i+ ) seq_scaling_list_present_flag i 0u(1) if( seq_scaling_list_present_flag i ) if( i 6 ) scaling_list( ScalingList4x4 i , 16, UseDefaultScalingMatrix4x4Flag i )0 else scaling_list( ScalingList8x8 i6 , 64, UseDefaultScalingMatrix8x8Flag i6 )0 log2_max_frame_num_minus4 0-12frame_num 跟解码顺序有关 0ue(v) pic_order_cnt_type POC编码方法 0-2 POC标识图像播放顺序0ue(v) if( pic_order_cnt_type = = 0 ) log2_max_pic_order_cnt_lsb_minus4 0-12 0ue(v) else if( pic_order_cnt_type = = 1 ) 为1时 delta_pic_order_cnt0=0和delta_pic_order_cnt1=0且不出现在片头中为0时,delta_pic_order_cnt0出现在片头中delta_pic_order_cnt1可能出现在片头中0u(1) offset_for_non_ref_pic 计算非参考帧POC 0se(v) offset_for_top_to_bottom_field 计算底场POC 0se(v) num_ref_frames_in_pic_order_cnt_cyclePOC解码过程 0,2550ue(v) for( i = 0; i num_ref_frames_in_pic_order_cnt_cycle; i+ ) offset_for_ref_framei POC 解码指定偏移 0se(v) max_num_ref_frames 最大参考帧数量(=16) 0 to MaxDpbFrames0ue(v) gaps_in_frame_num_value_allowed_flag为1时允许frame_num不连续0u(1) pic_width_in_mbs_minus1 图像宽度(单位为MB)0ue(v) pic_height_in_map_units_minus1 图像高度(单位为map_unit)0ue(v) frame_mbs_only_flag 1:帧,0:帧/场/MBAFF0u(1) if( !frame_mbs_only_flag ) mb_adaptive_frame_field_flag 1:场/MBAFF 0:场/帧0u(1) direct_8x8_inference_flag B片direct(4*4,8*8)/skip MV预测方法当frame_mbs_only_flag =0时direct_8x8_inference_flag =10u(1) frame_cropping_flag 是否裁剪后输出0u(1) if( frame_cropping_flag ) 裁剪宽度 frame_crop_left_offset0ue(v) frame_crop_right_offset0ue(v) frame_crop_top_offset0ue(v) frame_crop_bottom_offset0ue(v) vui_parameters_present_flag 指示vui结构是否出现在码流中0u(1) if( vui_parameters_present_flag ) vui_parameters()0 rbsp_trailing_bits()01) constraint_setX_flag指相应的一些约束,为1时受到约束限制。这些约束跟profile,level有关。4和5跟SVC,MVC有关2) 伸缩比例参数(1)seq_scaling_matrix_present_flag = 0时,使用平坦缩放参数i=0-5时 Flat_44_16k = 16 , k=0-15i=6-11时 Flat_88_16k = 16 , k=0-63(2)seq_scaling_matrix_present_flag = 1时,不使用平坦缩放参数seq_scaling_list_present_flag i =1表示序列参数集中给出了scaling list i 也就是说使用对应序号i的default scaling listseq_scaling_list_present_flag i =0表示scaling list i在SPS中未给定,而使用Scaling listfall-back rule set A中的scaling list 做为index i的scaling list下表中的sequence-level scaling list暂时不知道意思,猜是不进行PPS的修正Value of scaling list indexMnemonic nameBlock sizeMB prediction typeComponentScaling list fall-back rule set AScaling list fall-back rule set BDefaultscaling list0Sl_4x4_Intra_Y4x4IntraYdefaultscaling listsequence-levelscaling listDefault_4x4_Intra1Sl_4x4_Intra_Cb4x4IntraCbscaling listfor i = 0scaling listfor i = 0Default_4x4_Intra2Sl_4x4_Intra_Cr4x4IntraCrscaling listfor i = 1scaling listfor i = 1Default_4x4_Intra3Sl_4x4_Inter_Y4x4InterYdefaultscaling listsequence-levelscaling listDefault_4x4_Inter4Sl_4x4_Inter_Cb4x4InterCbscaling listfor i = 3scaling listfor i = 3Default_4x4_Inter5Sl_4x4_Inter_Cr4x4InterCrscaling listfor i = 4scaling listfor i = 4Default_4x4_Inter6Sl_8x8_Intra_Y8x8IntraYdefaultscaling listsequence-levelscaling listDefault_8x8_Intra7Sl_8x8_Inter_Y8x8InterYdefaultscaling listsequence-levelscaling listDefault_8x8_Inter8Sl_8x8_Intra_Cb8x8IntraCbscal
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 会计全球化 时机已经成熟
- 六一兔子活动方案
- 医学人文考试试题及答案
- 六一幼儿园美劳活动方案
- 医学骨科考试试题及答案
- 六一森林王国活动方案
- 六一活动亲子课活动方案
- 六一活动回访活动方案
- 六一活动特价课活动方案
- 六一活动送礼物活动方案
- 第四章婴儿期的心理发展
- GB/T 19139-2012油井水泥试验方法
- 2023年浙江大学形势与政策题库
- 铁道概论试题及答案重要
- 空间几何中的平行与垂直 新高考 数学 一轮复习专项提升 精讲精练
- 镁合金片状、带状或条状,含镁>50%MSDS危险化学品安全技术说明书
- 大班语言《蓝盒子》课件
- 动物解剖学之 泌尿系统课件
- 幼儿园大班社会:《京剧》 课件
- 红茶加工技术培训教学课件
- 商业运营委托管理合同模板
评论
0/150
提交评论