技术领域
本发明涉及视频编码及解码(即,视频数据的编码及/或解码)。
背景技术:
数字视频能力可并入到广泛范围的装置中,所述装置包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、平板型计算机、电子书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏主机、蜂窝式或卫星无线电电话、所谓的“智能电话”、视频电话会议装置、视频流式发射装置,及其类似者。数字视频装置实施视频压缩技术,例如由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分(进阶视频译码(AVC))定义的标准、目前在开发中的高效视频译码(HEVC)标准,及这些标准的扩展中描述的那些技术。视频装置可通过实施这些视频压缩技术而更高效地发射、接收、编码、解码及/或存储数字视频信息。
视频压缩技术执行空间(图片内)预测及/或时间(图片间)预测,以减少或移除视频序列中所固有的冗余。对于基于块的视频译码,视频切片(即,视频帧或视频帧的一部分)可经分割成视频块。使用相对于同一图片中的相邻块中的参考样本的空间预测来编码图片的帧内译码(I)切片中的视频块。图片的帧间译码(P或B)切片中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测或相对于其它参考图片中的参考样本的时间预测。图片可被称作帧,且参考图片可被称作参考帧。
空间预测或时间预测导致针对待译码块的预测性块。残余数据表示待译码的原始块与预测性块之间的像素差。根据指向形成预测性块的参考样本的块的运动向量及指示经译码块与预测性块之间的差异的残余数据来编码帧间译码块。根据帧内译码模式及残余数据来编码帧内译码块。为了进行进一步压缩,可将残余数据从像素域变换到变换域,从而引起残余系数,可接着量化残余系数。可扫描最初布置成二维阵列的经量化的系数以便产生系数的一维向量,且可应用熵译码以实现甚至更多压缩。
可通过编码(例如)来自多个视点的视图来产生多视图译码位流。已开发出利用多视图译码方面的一些三维(3D)视频标准。举例来说,不同视图可发射左眼及右眼视图以支持3D视频。替代性地,一些3D视频译码过程可应用所谓多视图加深度译码。在多视图加深度译码中,3D视频位流可不仅含有纹理视图分量,而且含有深度视图分量。举例来说,每一视图可包括一个纹理视图分量及一个深度视图分量。
技术实现要素:
一般来说,本发明描述在视频译码中发信并选择假想参考解码器(HRD)参数。更具体来说,一种装置执行假想参考解码器(HRD)操作,所述假想参考解码器(HRD)操作确定位流与视频译码标准的一致性或确定视频解码器与所述视频译码标准的一致性。作为执行所述HRD操作的部分,所述装置确定与所述位流的所选择操作点相关联的位流子集的最高时间识别符。此外,作为所述HRD操作的部分,所述装置基于所述最高时间识别符确定来自语法元素的阵列中的特定语法元素。所述装置接着在所述HRD操作中使用所述特定语法元素。
在一个实例中,本发明描述一种处理视频数据的方法。所述方法包括执行HRD操作。所述HRD操作确定位流与视频译码标准的一致性或确定视频解码器与所述视频译码标准的一致性。执行所述HRD操作包括确定与所述位流的所选择操作点相关联的位流子集的最高时间识别符。执行所述HRD操作还包括基于所述最高时间识别符确定来自语法元素的阵列中的特定语法元素。此外,执行所述HRD操作包括在所述HRD操作中使用所述特定语法元素。
在另一实例中,本发明描述一种装置,所述装置包括经配置以执行HRD操作的一或多个处理器。所述HRD操作确定位流与视频译码标准的一致性或确定视频解码器与所述视频译码标准的一致性。执行所述HRD操作包括确定与所述位流的所选择操作点相关联的位流子集的最高时间识别符。执行所述HRD操作还包括基于所述最高时间识别符确定来自语法元素的阵列中的特定语法元素。此外,执行所述HRD操作包括在所述HRD操作中使用所述特定语法元素。
在另一实例中,本发明描述一种包括用于执行HRD操作的装置的装置。所述HRD操作确定位流与视频译码标准的一致性或确定视频解码器与所述视频译码标准的一致性。执行所述HRD操作包括确定与所述位流的所选择操作点相关联的位流子集的最高时间识别符。执行所述HRD操作还包括基于所述最高时间识别符确定来自语法元素的阵列中的特定语法元素。此外,执行所述HRD操作包括在所述HRD操作中使用所述特定语法元素。
在另一实例中,本发明描述一种上面存储有指令的计算机可读存储媒体,所述指令在由装置的一或多个处理器执行时配置所述装置以执行HRD操作。所述HRD操作确定位流与视频译码标准的一致性或确定视频解码器与所述视频译码标准的一致性。执行所述HRD操作包括确定与所述位流的所选择操作点相关联的位流子集的最高时间识别符。另外,执行所述HRD操作包括基于所述最高时间识别符确定来自语法元素的阵列中的特定语法元素。此外,执行所述HRD操作包括在所述HRD操作中使用所述特定语法元素。
在随附图式及以下描述中阐明了本发明的一或多个实例的细节。其它特征、目标及优点将从所述描述内容、图式及权利要求书显而易见。
附图说明
图1是说明可利用本发明中所描述的技术的实例视频译码系统的帧图。
图2是说明可实施本发明中所描述的技术的实例视频编码器的帧图。
图3是说明可实施本发明中所描述的技术的实例视频解码器的帧图。
图4是根据本发明的一或多项技术的说明装置的实例操作的流程图。
图5说根据本发明的一或多项技术的说明装置的实例操作的流程图。
图6是根据本发明的一或多项技术的说明装置的实例假想参考解码器(HRD)操作的流程图。
具体实施方式
视频编码器可产生包含经编码的视频数据的位流。位流可包括一系列网络抽象层(NAL)单元。位流的NAL单元可包含视频译码层(VCL)NAL单元及非VCL NAL单元。VCL NAL单元可包含图片的经译码切片。非VCL NAL单元可包含视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、补充增强信息(SEI)或其它类型的数据。VPS是可含有语法元素的语法结构,所述语法元素应用到零或零个以上完整的经译码的视频序列。SPS是可含有语法元素的语法结构,所述语法元素应用到零或零个以上完整的经译码的视频序列。单个VPS可适用于多个SPS。PPS是可含有语法元素的语法结构,所述语法元素应用到零或零个以上完整的经译码的图片。单个SPS可适用于多个PPS。一般来说,可如由HEVC标准所定义而形成VPS、SPS及PPS的各种方面。
例如内容递送网络(CDN)装置、媒体感知的网络元件(MANE)或视频解码器等装置可从位流提取子位流。装置可通过从位流移除某些NAL单元而执行子位流提取过程。所得子位流包含位流的剩余的未经移除NAL单元。作为实例,相较于原始位流,从子位流解码的视频数据可具有较低帧速率及/或可表示较少的视图。
视频译码标准可包含各种特征以支持子位流提取过程。举例来说,位流的视频数据可被划分成层的集合。对于所述层中的每一者,可在不参考任何较高层中的数据的情况下解码较低层中的数据。个别NAL单元仅囊封单个层的数据。因此,可从位流移除囊封位流的最高剩余层的数据的NAL单元而不影响位流的剩余较低层中的数据的可解码性。在可缩放视频译码(SVC)中,较高层可包含增强数据,所述增强数据改进较低层中的图片的质量(质量可调性),放大较低层中的图片的空间格式(空间可调性),或增加较低层中的图片的时间速率(时间可调性)。在多视图译码(MVC)及三维视频(3DV)译码中,较高层可包含额外视图。
NAL单元可包含标头及有效负载。NAL单元的标头包含nuh_reserved_zero_6bits语法元素。如果NAL单元是关于多视图译码、3DV译码或SVC中的基底层,则NAL单元的nuh_reserved_zero_6bits语法元素等于0。可在不参考位流的任何其它层中的数据的情况下解码位流的基底层中的数据。如果NAL单元并非是关于多视图译码、3DV或SVC中的基底层,则nuh_reserved_zero_6bits语法元素可具有非零值。具体来说,如果NAL单元并非是关于多视图译码、3DV或SVC中的基底层,则NAL单元的nuh_reserved_zero_6bits语法元素指定NAL单元的层识别符。
此外,层内的一些图片可在不参考同一层内的其它图片的情况下经解码。因此,可从位流移除囊封层的某些图片的数据的NAL单元而不影响层中其它图片的可解码性。举例来说,可在不参考具有奇数图片次序计数(POC)值的图片的情况下解码具有偶数POC值的图片。移除囊封这些图片的数据的NAL单元可减小位流的帧速率。本文中,层内的可在不参考层内的其它图片的情况下经解码的图片子集可被称作子层。
NAL单元可包含temporal_id语法元素。NAL单元的temporal_id语法元素指定NAL单元的时间识别符。如果第一NAL单元的时间识别符小于第二NAL单元的时间识别符,则可在不参考由第二NAL单元囊封的数据的情况下解码由第一NAL单元囊封的数据。
位流的每一操作点是与层识别符的集合(即,nuh_reserved_zero_6bits值的集合)及时间识别符相关联。层识别符的集合可表示为OpLayerIdSet,且时间识别符可表示为TemporalID。如果NAL单元的层识别符是在操作点的层识别符集合中且NAL单元的时间识别符小于或等于操作点的时间识别符,则NAL单元是与操作点相关联。操作点表示与操作点相关联的位流子集。操作点表示可包含与操作点相关联的每一NAL单元。操作点表示不包含不与操作点相关联的VCLNAL单元。
外部源可指定操作点的目标层识别符的集合。举例来说,例如CDN装置或MANE等装置可指定目标层识别符的集合。在此实例中,装置可使用目标层识别符的集合来识别操作点。装置可接着提取操作点的操作点表示,且将操作点表示而非原始位流转递到用户端装置。提取操作点表示及将操作点表示转递到用户端装置可减小位流的位速率。
此外,视频译码标准指定视频缓冲模型。视频缓冲模型还可被称作“假想参考解码器”或“HRD”。HRD描述数据如何经缓冲以供解码且经解码的数据如何经缓冲以供输出。举例来说,HRD描述视频解码器中的经译码图片缓冲器(“CPB”)及经解码图片缓冲器(“DPB”)的操作。CPB是以由HRD指定的解码次序含有存取单元的先进先出缓冲器。DPB是保持经解码图片以用于参考、输出重排序或由HRD指定的输出延迟的缓冲器。
视频编码器可发信HRD参数的集合。HRD参数控制HRD的各种方面。HRD参数包含初始CPB移除延迟、CPB大小、位速率、初始DPB输出延迟及DPB大小。这些HRD参数在指定于VPS及/或SPS中的hrd_paramaters()语法结构中经译码。HRD参数还可指定于缓冲周期补充增强信息(SEI)消息或图片时序SEI消息中。
如上文所解释,操作点表示可具有不同于原始位流的帧速率及/或位速率。这是因为操作点表示可能不包含原始位流中的一些图片及/或数据中的一些。因此,如果视频解码器在处理原始位流时将要以特定速率从CPB及/或DPB移除数据,且如果视频解码器在处理操作点表示时将要以同一速率从CPB及/或DPB移除数据,则视频解码器可能从CPB及/或DPB移除过多或过少数据。因而,视频编码器可发信用于不同操作点的HRD参数的不同集合。在新兴高效率视频译码(HEVC)标准中,视频编码器可在VPS中发信HRD参数的集合,或视频编码器可在SPS中发信HRD参数的集合。称作“HEVC工作草案8”的即将来临的HEVC标准的草案描述于Bross等人的“High Efficiency Video Coding(HEVC)text specification draft 8”(ITU-T SG 16WP3与ISO/IEC JTC1/SC29/WG11的关于视频译码的联合合作团队(JCT-VC),2012年7月瑞典斯德哥尔摩第10次会议)中,从2013年5月8日起所述工作草案可从http://phenix.int-evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zip获得。
在HEVC的一些版本中,仅将VPS中的HRD参数的数个集合选择用于HRD操作。即,尽管HRD参数可提供于SPS中,但SPS中的HRD参数的集合并未被HEVC视频解码器选择用于HRD操作。视频解码器总是剖析并解码位流的VPS。因此,视频解码器总是剖析并解码VPS的HRD参数的集合。无论位流是否包含非基底层NAL单元皆为如此。因此,如果位流包含非基底层NAL单元,则剖析并处置SPS中的HRD参数的集合可为对计算资源的浪费。此外,如果HRD参数的集合存在于VPS中,则SPS中的HRD参数的集合可为被浪费的位。
根据本发明的技术,视频编码器可产生包含适用于图片序列的SPS的位流。SPS包含HRD参数的集合。HRD参数的集合适用于位流的具有与目标层识别符的集合匹配的层识别符集合的每一操作点。因此,SPS中的HRD参数的集合不被浪费,而是可用于HRD操作。举例来说,装置可从VPS中的HRD参数的集合及SPS中的HRD参数的集合中选择适用于特定操作点的HRD参数的集合。装置可至少部分基于适用于特定操作点的HRD参数的集合执行位流一致性测试,所述测试对于与特定操作点相关联的位流子集是否与视频译码标准一致进行测试。
例如视频编码器、视频解码器或另一类型的装置等装置(例如,CDN装置或MANE)可对操作点的操作点表示执行位流一致性测试。位流一致性测试可验证:操作点表示与例如HEVC等视频译码标准一致。如上文所提及,目标层识别符的集合及时间识别符可用以识别操作点。目标层识别符的集合可表示为“TargetDecLayerIdSet”。时间识别符可表示为“TargetDecHighestTid”。有问题地,HEVC工作草案8并未指定在执行位流一致性测试时如何设定TargetDecLayerIdSet或TargetDecHighestTid。
根据本发明的一或多项技术,装置可执行作为执行位流一致性测试的部分的解码过程。执行解码过程包括执行位流提取过程以从位流解码由层识别符的目标集合及目标最高时间识别符定义的操作点的操作点表示。层识别符的目标集合(即,TargetDecLayerIdSet)含有存在于操作点表示中的层识别符语法元素(例如,nuh_reserved_zero_6bits语法元素)的值。层识别符的目标集合是位流的层识别符语法元素的值的子集。目标最高时间识别符(即,TargetDecHighestTid)等于存在于操作点表示中的最大时间识别符。目标最高时间识别符小于或等于存在于位流中的最大时间识别符。执行解码过程还可包括解码操作点表示的NAL单元。
在HEVC中,SPS可包含表示为sps_max_dec_pic_buffering[i]的语法元素的阵列,其中i在0到位流中的时间层的最大数目的范围内。当最高时间识别符(HighestTid)等于i时,sps_max_dec_pic_buffering[i]指示DPB的最大所要求大小。sps_max_dec_pic_buffering[i]指示依据图片存储缓冲器的单元的所要求大小。
此外,在HEVC中,SPS可包含表示为sps_max_num_reorder_pics[i]的语法元素的阵列,其中i在0到位流中的时间层的最大数目的范围内。sps_max_num_reorder_pics[i]指示在最高时间识别符(HighestTid)等于i时在解码次序上先于任一图片且在输出次序上在所述图片之后的图片的最大所允许数目。
在HEVC中,HRD参数的集合可包含表示为cpb_cnt_minus1[i]的语法元素的阵列,其中i在0到位流中的时间层的最大数目的范围内。cpb_cnt_minus1[i]指定当最高时间识别符(HighestTid)等于i时经译码视频序列的位流中的替代性CPB规范的数目,其中一个替代性CPB规范指代具有CPB参数的特定集合的一个特定CPB操作。
在HEVC工作草案8中,在HRD操作、位流一致性操作及级别限制中未恰当选择sps_max_dec_pic_buffering[i]、sps_max_num_reorder_pics[i]及cpb_cnt_minus1[i]。这至少部分是因为HEVC工作草案8并未指定最高时间识别符(HighestTid)的意义。
根据本发明的一或多项技术,例如视频编码器、视频解码器等设备或另一装置可确定与位流的所选择操作点相关联的位流子集的最高时间识别符。此外,装置可基于最高时间识别符从语法元素的阵列(例如,sps_max_dec_pic_buffering[]、sps_max_num_reorder_pics[]或cpb_cnt_minus1[])确定特定语法元素。装置可执行使用特定语法元素来确定位流与视频译码标准的一致性或确定视频解码器与视频译码标准的一致性的操作。
图1为说明可利用本发明的技术的实例视频译码系统10的帧图。如本文中所使用,术语“视频译码器”泛指视频编码器及视频解码器两者。在本发明中,术语“视频译码”或“译码”可泛指视频编码或视频解码。
如图1中所展示,视频译码系统10包含源装置12及目的地装置14。源装置12产生经编码的视频数据。因而,源装置12可被称作视频编码装置或视频编码设备。目的地装置14可解码由源装置12产生的经编码视频数据。因而,目的地装置14可被称作视频解码装置或视频解码设备。源装置12及目的地装置14可为视频译码装置或视频译码设备的实例。
源装置12及目的地装置14可包括广泛范围的装置,所述装置包含桌上型计算机、行动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓“智能”电话等电话手持机、电视、摄影机、显示装置、数字媒体播放器、视频游戏主机、车载计算机或其类似者。
目的地装置14可经由通道16从源装置12接收经编码视频数据。通道16可包括能够将经编码视频数据从源装置12移动到目的地装置14的一或多个媒体或装置。在一个实例中,通道16可包括使源装置12能够将经编码视频数据实时直接地发射到目的地装置14的一或多个通信媒体。在此实例中,源装置12可根据例如无线通信协议的通信标准调制经编码视频数据,且可将经调制的视频数据发射到目的地装置14。一或多个通信媒体可包含无线及/或有线通信媒体,例如射频(RF)频谱或一或多个物理传输线。一或多个通信媒体可形成例如局域网、广域网或全球网络(例如,因特网)等基于封包的网络的部分。一或多个通信媒体可包含路由器、交换器、基站或促进从源装置12到目的地装置14的通信的其它设备。
在另一实例中,通道16可包含存储由源装置12产生的经编码视频数据的存储媒体。在此实例中,目的地装置14可(例如)经由磁盘存取或卡存取来存取存储媒体。存储媒体可包含多种本地本地存取的数据存储媒体,例如蓝光光盘、DVD、CD-ROM、快闪存储器或用于存储经编码视频数据的其它合适数字存储媒体。
在其它实例中,通道16可包含文件服务器,或存储由源装置12产生的经编码视频数据的另一中间存储装置。在此实例中,目的地装置14可经由流式发射或下载而存取存储于文件服务器或其它中间存储装置处的经编码视频数据。文件服务器可为能够存储经编码视频数据且将经编码视频数据发射到目的地装置14的类型的服务器。实例文件服务器包含网页服务器(例如,用于网站)、文件传送协议(FTP)服务器、网络附接存储(NAS)装置及本地本地磁盘机。在图1的实例中,通道16包含额外装置21。在一些实例中,额外装置21是CDN装置、MANE或另一类型的装置。
目的地装置14可经由标准数据连接(例如因特网连接)而存取经编码视频数据。数据连接的实例类型可包含无线通道(例如,Wi-Fi连接)、有线连接(例如,数字用户线(DSL)、缆线调制解调器等),或两者的适合于存取存储于文件服务器上的经编码视频数据的组合。经编码视频数据从文件服务器的发射可为流式发射、下载发射,或两者的组合。
本发明的技术不限于无线应用或设定。技术可应用到支持多种多媒体应用的视频译码,例如空中电视广播、有线电视发射、卫星电视发射、流式视频发射(例如,经由因特网)、编码视频数据以存储于数据存储媒体上、解码存储于数据存储媒体上的视频数据,或其它应用。在一些实例中,视频译码系统10可经配置以支持单向或双向视频发射以支持例如视频流式发射、视频回放、视频广播及/或视频电话的应用。
图1仅为一实例,且本发明的技术可应用到不一定包含编码装置与解码装置之间的任何数据通信的视频译码设定(例如,视频编码或视频解码)。在其它实例中,数据是从本地本地存储器检索,经由网络进行流式发射,或其类似者。视频编码装置可编码数据并将数据存储到存储器,及/或视频解码装置可从存储器检索数据并解码所述数据。在许多实例中,编码及解码由如下装置执行:其并不彼此通信,而是仅编码到存储器的数据及/或从存储器检索数据并解码所述数据。
在图1的实例中,源装置12包含视频源18、视频编码器20及输出接口22。在一些实例中,输出接口22可包含调制器/解调制器(调制解调器)及/或发射器。视频源18可包含例如视频摄影机的视频捕获装置、含有先前捕获的视频数据的视频存档、从视频内容提供者接收视频数据的视频馈入接口及/或用于产生视频数据的计算机图形系统,或这些视频数据的源的组合。
视频编码器20可编码来自视频源18的视频数据。在一些实例中,源装置12经由输出接口22将经编码视频数据直接发射到目的地装置14。在其它实例中,经编码视频数据还可存储于存储媒体上或文件服务器上以供目的地装置14稍后存取从而用于解码及/或回放。
在图1的实例中,目的地装置14包含输入接口28、视频解码器30及显示装置32。在一些实例中,输入接口28包含接收器及/或调制解调器。输入接口28可经由通道16接收经编码视频数据。显示装置32可与目的地装置14集成,或可在目的地装置14外部。一般来说,显示装置32显示经解码视频数据。显示装置32可包括多种显示装置,例如,液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。
视频编码器20及视频解码器30可各自实施为多种合适电路中的任一者,例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、硬件或其任何组合。如果所述技术部分地以软件实施,则装置可将用于软件的指令存储于合适的稳定式计算机可读存储媒体中,且可在硬件中使用一或多个处理器来执行所述指令以执行本发明的技术。前述各项(包含硬件、软件、软件与硬件的组合等)中的任一者可被视为一或多个处理器。视频编码器20及视频解码器30中的每一者可包含于一或多个编码器或解码器中,其中任一者可集成为相应装置中的组合编码器/解码器(编码解码器(CODEC))的部分。
本发明可大体上涉及视频编码器20将某信息“发信”到另一装置(例如视频解码器30或额外装置21)。术语“发信”可大体指代用以解码经压缩视频数据的语法元素及/或其它数据的通信。此通信可实时或几乎实时地发生。替代性地,此通信可在一段时间上发生,例如可能当于编码时在经编码的位流中将语法元素存储到计算机可读存储媒体时发生,所述语法元素在存储到此媒体之后可接着由解码装置在任何时间进行检索。
在一些实例中,视频编码器20及视频解码器30根据例如ISO/IEC MPEG-4Visual及ITU-T H.264(也称作ISO/IEC MPEG-4AVC)(包含其可缩放视频译码(SVC)扩展、多视图视频译码(MVC)扩展及/或基于MVC的3DV扩展)的视频压缩标准操作。在一些个例中,与基于MVC的3DV一致的任何位流总是含有符合MVC设定档(例如,立体高设定档)的子位流。此外,正在努力产生H.264/AVC的三维视频(3DV)译码扩展(即,基于AVC的3DV)。在其它实例中,视频编码器20及视频解码器30可根据ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual及ITU-T H.264、ISO/IEC Visual操作。
在其它实例中,视频编码器20及视频解码器30可根据目前由ITU-T视频译码专业团体(VCEG)与ISO/IEC动画专业团体(MPEG)的关于视频译码的联合合作团队(JCT-VC)开发的高效视频译码(HEVC)标准来操作。称作“HEVC工作草案9”的即将来临的HEVC标准的草案描述于Bross等人的“High Efficiency Video Coding(HEVC)text specification draft 9”(2012年10月中国上海,ITU-T SG16WP3与ISO/IEC JTC1/SC29/WG11的关于视频译码的联合合作团队(JCT-VC)的第11次会议)中,从2013年5月8日起所述工作草案在http://phenix.int-evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K1003-v13.zip处可获得。此外,正在努力产生HEVC的SVC、多视图译码及3DV扩展。HEVC的3DV扩展可被称作基于HEVC的3DV或3D-HEVC。
在HEVC及其它视频译码标准中,视频序列通常包含一系列图片。图片还可被称作“帧”。图片可包含表示为SL、SCb及SCr的三个样本阵列。SL是明度样本的二维阵列(即,块)。SCb是Cb色度样本的二维阵列。SCr是Cr色度样本的二维阵列。本文中色度样本还可被称作“色度(chroma)”样本。在其它个例中,图片可为单色的,且可仅包含明度样本阵列。
为了产生图片的经编码表示,视频编码器20可产生译码树型单元(CTU)的集合。CTU中的每一者可为明度样本的译码树型块、色度样本的两个对应译码树型块及用以对译码树型块的样本进行译码的语法结构。译码树型块可为样本的N×N块。CTU还可称作“树型块”或“最大译码单元”(LCU)。HEVC的CTU可宽泛地类似于例如H.264/AVC等其它标准的宏块。然而,CTU不一定限于特定大小,且可包含一或多个译码单元(CU)。切片可包含在光栅扫描中连续地排序的整数数目个CTU。
为了产生经译码CTU,视频编码器20可对CTU的译码树型块递归地执行四分树分割以将译码树型块划分成译码块(因此名为“译码树型单元”)。译码块是样本的N×N块。CU可为具有明度样本阵列、Cb样本阵列及Cr样本阵列的图片的明度样本的译码块及色度样本的两个对应译码块,以及用以对译码块的样本进行译码的语法结构。视频编码器20可将CU的译码块分割成一或多个预测块。预测块可为样本预测应用到的样本的矩形(即,正方形或非正方形)块。CU的预测单元(PU)可为明度样本的预测块、图片的色度样本的两个对应预测块,及用以预测所述预测块样本的语法结构。视频编码器20可产生用于CU的每一PU的明度、Cb及Cr预测块的预测性明度、Cb及Cr块。
视频编码器20可使用帧内预测或帧间预测以产生PU的预测性块。如果视频编码器20使用帧内预测来产生PU的预测性块,则视频编码器20可基于与PU相关联的图片的经解码样本产生PU的预测性块。
如果视频编码器20使用帧间预测来产生PU的预测性块,则视频编码器20可基于不同于与PU相关联的图片的一或多个图片的经解码样本产生PU的预测性块。视频编码器20可使用单向预测或双向预测以产生PU的预测性块。当视频编码器20使用单向预测来产生PU的预测性块时,PU可具有单个运动向量。当视频编码器20使用双向预测来产生PU的预测性块时,PU可具有两个运动向量。
在视频编码器20产生CU的一或多个PU的预测性明度、Cb及Cr块之后,视频编码器20可产生CU的明度残余块。CU的明度残余块的每一样本指示CU的预测性明度块中的一者中的明度样本与CU的原始明度译码块中的对应样本之间的差。此外,视频编码器20可产生CU的Cb残余块。CU的Cb残余块的每一样本可指示CU的预测性Cb块中的一者中的Cb样本与CU的原始Cb译码块中的对应样本之间的差。视频编码器20还可产生CU的Cr残余块。CU的Cr残余块的每一样本可指示CU的预测性Cr块中的一者中的Cr样本与CU的原始Cr译码块中的对应样本之间的差。
此外,视频编码器20可使用四分树分割以将CU的明度、Cb及Cr残余块分解成一或多个明度、Cb及Cr变换块。变换块可为同一变换应用到的样本的矩形块。CU的变换单元(TU)可为明度样本的变换块、色度样本的两个对应变换块,及用以对变换块样本进行变换的语法结构。因此,CU的每一TU可为与明度变换块、Cb变换块及Cr变换块相关联。与TU相关联的明度变换块可为CU的明度残余块的子块。Cb变换块可为CU的Cb残余块的子块。Cr变换块可为CU的Cr残余块的子块。
视频编码器20可将一或多个变换应用到TU的明度变换块以产生TU的明度系数块。系数块可为变换系数的二维阵列。变换系数可为纯量。视频编码器20可将一或多个变换应用到TU的Cb变换块以产生TU的Cb系数块。视频编码器20可将一或多个变换应用到TU的Cr变换块以产生TU的Cr系数块。
在产生系数块(例如,明度系数块、Cb系数块或Cr系数块)之后,视频编码器20可量化系数块。量化一般指代如下过程:将变换系数量化以可能地减少用以表示所述变换系数的数据的量,从而提供进一步压缩。在视频编码器20量化系数块之后,视频编码器20可熵编码语法元素,从而指示经量化的变换系数。举例来说,视频编码器20可对语法元素执行上下文自适应性二进制算术译码(CABAC),从而指示经量化的变换系数。视频编码器20可在位流中输出经熵编码的语法元素。
视频编码器20可输出包含位序列的位流,所述位序列形成经译码图片及相关联数据的表示。位流可包括网络抽象层(NAL)单元的序列。NAL单元可为含有随后的数据类型的指示及在必要时穿插在仿真防止字节中的含有呈原始字节序列有效负载(RBSP)的形式的所述数据的字节的语法结构。即,NAL单元中的每一者可包含NAL单元标头,且囊封RBSP。NAL单元标头可包含指示NAL单元类型码的语法元素。由NAL单元的NAL单元标头指定的NAL单元类型码指示NAL单元的类型。RBSP可为含有囊封于NAL单元内的整数数目个字节的语法结构。在一些个例中,RBSP包含零个位。
不同类型的NAL单元可囊封不同类型的RBSP。举例来说,第一类型的NAL单元可囊封图片参数集(PPS)的RBSP,第二类型的NAL单元可囊封经译码切片的RBSP,第三类型的NAL单元可囊封SEI的RBSP,等等。囊封视频译码数据的RBSP(而非参数集及SEI消息的RBSP)的NAL单元可被称作视频译码层(VCL)NAL单元。
视频解码器30可接收由视频编码器20产生的位流。此外,视频解码器30可剖析位流以解码来自位流的语法元素。视频解码器30可至少部分基于从位流解码的语法元素来重建构视频数据的图片。重建构视频数据的过程可大体上与由视频编码器20执行的过程互反。举例来说,视频解码器30可使用PU的运动向量来确定当前CU的PU的预测性块。此外,视频解码器30可反量化与当前CU的TU相关联的变换系数块。视频解码器30可对变换系数块执行反变换以重建构与当前CU的TU相关联的变换块。视频解码器30可通过将当前CU的PU的预测性块的样本加到当前CU的TU的变换块的对应样本来重建构当前CU的译码块。通过重建构图片的每一CU的译码块,视频解码器30可重建构图片。
在多视图译码中,可存在同一场景的来自不同视点的多个视图。术语“存取单元”用以指代对应于同一时间执行个体的图片的集合。因此,视频数据可概念化为随时间发生的一系列存取单元。“视图分量”可为单个存取单元中的视图的经译码表示。在本发明中,“视图”可指代与同一视图识别符相关联的视图分量的序列。
多视图译码支持视图间预测。视图间预测类似于用于H.264/AVC及HEVC中的帧间预测,且可使用相同语法元素。然而,当视频译码器对当前视频单元(例如,PU)执行视图间预测时,视频编码器20可使用与当前视频单元在相同的存取单元中但在不同视图中的图片作为参考图片。相对照地,常规帧间预测仅使用不同存取单元中的图片作为参考图片。
在多视图译码中,如果视频解码器(例如,视频解码器30)可解码视图中的图片而不参考任何其它视图中的图片,则视图可被称作“基本视图”。当译码非基本视图中的一者中的图片时,如果图片是与视频译码器当前正译码的图片在不同视图中但为与视频译码器当前正译码的图片在相同的时间执行个体(即,存取单元)内,则视频译码器(例如,视频编码器20或视频解码器30)可将图片加到参考图片列表中。类似于其它帧间预测参考图片,视频译码器可在参考图片列表的任何位置处插入视图间预测参考图片。
视频译码标准指定视频缓冲模型。在H.264/AVC及HEVC中,缓冲模型被称作“假想参考解码器”或“HRD”。在HEVC工作草案8中,HRD描述于附录C中。
HRD描述数据如何经缓冲以供解码且经解码的数据如何经缓冲以供输出。举例来说,HRD描述经译码图片缓冲器(“CPB”)、经解码图片缓冲器(“DPB”)及视频解码器的操作。CPB为以由HRD指定的解码次序含有存取单元的先进先出缓冲器。DPB为保持经解码图片以用于参考、输出重排序或HRD指定的输出延迟的缓冲器。CPB及DPB的行为可被数学地指定。HRD可对时序、缓冲器大小及位速率直接强加约束。此外,HRD可对各种位流特性及统计数据间接强加约束。
在H.264/AVC及HEVC中,位流一致性及解码器一致性被指定作为HRD规范的部分。换句话说,HRD模型指定了用以确定位流是否与标准一致的测试,且指定用以确定解码器是否与标准一致的测试。尽管HRD被命名为某种类的解码器,但视频编码器通常使用HRD以保证位流一致性,而视频解码器通常不需要HRD。
H.264/AVC及HEVC两者皆指定两种类型的位流或HRD一致性(即,类型I及类型II)。类型I位流为仅含有位流中的所有存取单元的VCL NAL单元及填充符数据NAL单元的NAL单元流。类型II位流为除位流中的所有存取单元的VCL NAL单元及填充符数据NAL单元外还含有以下各者中的至少一者的NAL单元流:不同于填充符数据NAL单元的额外非VCL NAL单元;及从NAL单元流形成字节流的所有leading_zero_8bits、zero_byte、start_coded_prefix_one_3bytes及trailing_zero_8bits语法元素。
当装置执行确定位流是否与视频译码标准一致的位流一致性测试时,装置可选择位流的操作点。装置可接着确定可适用于所选择操作点的HRD参数的集合。装置可使用适用于所选择操作点的HRD参数的集合来配置HRD的行为。更特定来说,装置可使用HRD参数的适用集合来配置HRD的特定组件(例如,假想流调度器(HSS)、CPB、解码过程、DPB等等)的行为。随后,HSS可根据特定调度将位流的经译码视频数据注入到HRD的CPB中。
此外,装置可调用解码CPB中的经译码视频数据的解码过程。解码过程可将经解码图片输出到DPB。随着装置使数据移动通过HRD,装置可确定约束的特定集合是否仍被满足。举例来说,装置可确定在HRD正解码所选择操作点的操作点表示时溢位或欠位条件是否发生于CPB或DPB中。装置可以此方式选择并处理位流的每一操作点。如果位流的操作点皆不造成违反约束,则装置可确定位流与视频译码标准一致。
H.264/AVC及HEVC两者皆指定两种类型的解码器一致性,即输出时序解码器一致性及输出次序解码器一致性。声称与特定设定档、阶层及级别的一致性的解码器能够成功地解码与例如HEVC等视频译码标准的位流一致性要求一致的所有位流。在本发明中,“设定档”可指代位流语法的子集。可在每一设定档内指定“阶层”及“级别”。阶层的级别可为强加于位流中的语法元素的值的约束的指定集合。这些约束可为对值的简单限制。替代性地,这些约束可采取对值的算术组合(例如,图片宽度×图片高度×每秒解码的图片的数目)的约束的形式。针对较低阶层所指定的级别相较于针对较高阶层指定的级别受到更多约束。
当装置执行解码器一致性测试以确定受测解码器(DUT)是否与视频译码标准一致时,装置可将与视频译码标准一致的位流提供到HRD及DUT两者。HRD可以上文关于位流一致性测试描述的方式处理位流。如果DUT输出的经解码图片的次序与由HRD输出的经解码图片的次序匹配,则装置可确定DUT与视频译码标准一致。此外,如果DUT输出经解码图片的时序与HRD输出经解码图片的时序匹配,则装置可确定DUT与视频译码标准一致。
除位流一致性测试及解码器一致性测试外,装置可将HRD参数用于其它用途。举例来说,初始CPB移除延迟可用以导引系统以设定适当初始端对端延迟,且当经由RTP输送视频数据位流时,DPB输出时间可用以导出实时协议(RTP)时戳。
在H.264/AVC及HEVC HRD模型中,解码或CPB移除可为基于存取单元的。即,假定HRD同时解码完整的存取单元,且从CPB移除完整存取单元。此外,在H.264/AVC及HEVC HRD模型中,假定图片解码是瞬时的。视频编码器20可在图片时序SEI消息中发信解码时间以开始存取单元的解码。在实际应用中,如果一致的视频解码器严格地遵循经发信以开始存取单元的解码的解码时间,则输出特定经解码图片的最早可能时间等于所述特定图片的解码时间加上解码所述特定图片所需要的时间。然而,在真实世界中,解码图片所需要的时间无法等于零。
HRD参数可控制HRD的各种方面。换句话说,HRD可依赖于HRD参数。HRD参数可包含初始CPB移除延迟、CPB大小、位速率、初始DPB输出延迟及DPB大小。视频编码器20可在指定于视频参数集(VPS)及/或序列参数集(SPS)中的hrd_parameters()语法结构中发信这些HRD参数。个别VPS及/或SPS可包含针对HRD参数的不同集合的多个hrd_parameters()语法结构。在一些实例中,视频编码器20可在缓冲周期SEI消息或图片时序SEI消息中发信HRD参数。
如上文所解释,位流的操作点是与层识别符的集合(即,nuh_reserved_zero_6bits值的集合)及时间识别符相关联。操作点表示可包含与操作点相关联的每一NAL单元。操作点表示可具有不同于原始位流的帧速率及/或位速率。这是因为操作点表示可能不包含原始位流的一些图片及/或数据中的一些。因此,如果视频解码器30要在处理原始位流时以特定速率从CPB及/或DPB移除数据,且如果视频解码器30要在处理操作点表示时以同一速率从CPB及/或DPB移除数据,则视频解码器30可从CPB及/或DPB移除过多或过少数据。因而,视频编码器20可发信用于不同操作点的HRD参数的不同集合。举例来说,视频编码器20可在VPS中包含多个hrd_parameters()语法结构,所述语法结构包含用于不同操作点的HRD参数。
在HEVC工作草案8中,HRD参数的集合任选地包含对于所有子层是共同的信息的集合。换句话说,HRD参数的集合任选地可包含适用于包含任何时间子层的操作点的共同语法元素的集合。时间子层是时间可缩放位流的时间可缩放层,所述时间可缩放位流由具有TemporalId的特定值的VCL NAL单元及相关联的非VCL NAL单元组成。除了共同信息的集合外,HRD参数的集合可包含对于个别时间子层特定的语法元素的集合。举例来说,hrd_parameters()语法结构可任选地包含对于所有子层是共同的且总是包含子层特定信息的信息集合。因为共同信息的集合对于HRD参数的多个集合是共同的,所以在HRD参数的多个集合中发信共同信息的集合可为不必要的。确切来说,在HEVC工作草案8中,共同信息在HRD参数的集合是VPS中的HRD参数的第一集合时可存在于HRD参数的所述集合中,或共同信息在HRD参数的集合是与第一操作点索引相关联时可存在于HRD参数的所述集合中。举例来说,当hrd_parameters()语法结构是VPS中的第一hrd_parameters()语法结构时抑或当hrd_parameters()语法结构是与第一操作点相关联时,HEVC工作草案8支持共同信息的存在。
以下表1是HEVC中的hrd_parameters()语法结构的实例语法结构。
表1-HRD参数
在以上表1的实例及本发明的其它语法表中,具有类型描述符ue(v)的语法元素可为使用从左侧位起的0阶指数哥伦布(Exp-Golomb)译码而编码的长度可变的无正负号整数。在表1的实例及以下数个表中,具有形式u(n)(其中n是非负整数)的描述符的语法元素是具有长度n的无正负号值。
在表1的实例语法中,“if(commonInfPresentFlag){…}”块中的语法元素是HRD参数集合的共同信息。换句话说,HRD参数的集合的共同信息可包含语法元素timing_info_present_flag、num_units_in_tick、time_scale、nal_hrd_parameters_present_flag、vcl_hrd_parameters_present_flag、sub_pic_cpb_params_present_flag、tick_divisor_minus2、du_cpb_removal_delay_length_minus1、bit_rate_scale、cpb_size_scale、initial_cpb_removal_delay_length_minus1、cpb_removal_delay_length_minus1及dpb_output_delay_length_minus1。
此外,在表1的实例中,语法元素fixed_pic_rate_flag[i]、pic_duration_in_tc_minus1[i]、low_delay_hrd_flag[i]及cpb_cnt_minus1[i]可为子层特定HRD参数的集合。换句话说,hrd_parameters()语法结构的这些语法元素可仅适用于包含特定子层的操作点。因此,hrd_parameters()语法结构的HRD参数除任选地包含的共同信息外还可包含对于位流的特定子层特定的子层特定HRD参数的集合。
fixed_pic_rate_flag[i]语法元素可指示:在HighestTid等于i时,输出次序上的任何两个连续图片的HRD输出时间之间的时间距离以特定方式受到约束。HighestTid可为识别(例如,操作点的)最高时间子层的变量。pic_duration_in_tc_minus1[i]语法元素可指定在HighestTid等于i时经译码视频序列中的按输出次序的任何连续图片的HRD输出时间之间的以时钟刻度为单位的时间距离。low_delay_hrd_flag[i]语法元素可指定在HighestTid等于i时的HRD操作模式,如在HEVC工作草案8的附录C中所指定。cpb_cnt_minus1[i]语法元素可指定在HighestTid等于i时经译码视频序列的位流中的替代性CPB规范的数目。
视频编码器20可使用SEI消息以在位流中包含不被要求用于图片的样本值的正确解码的元数据。然而,视频解码器30或其它装置可将包含于SEI消息中的元数据用于各种其它用途。举例来说,视频解码器30可将SEI消息中的元数据用于图片输出定时、图片显示、损失检测及错误隐藏(error concealment)。
视频编码器20可在存取单元中包含一或多个SEI NAL单元。换句话说,任何数目个SEI NAL单元可与存取单元相关联。此外,每一SEI NAL单元可含有一或多个SEI消息。HEVC标准描述各种类型的SEI消息的语法及语义。然而,HEVC标准并不描述对SEI消息的处置,这是因为SEI消息并不影响标准解码过程。在HEVC标准中具有数个SEI消息的一个原因是使得能够在使用HEVC的不同系统中同等地解译补充数据。使用HEVC的规范及系统可要求视频编码器产生某些SEI消息,或可定义对特定类型的所接收SEI消息的具体处置。以下表2列出在HEVC中指定的SEI消息,且简要地描述其用途。
表2-SEI消息的概览
用于发信HRD参数以及选择HRD参数及其它参数的现有技术存在若干问题或缺点。举例来说,在HEVC工作草案8中,仅VPS中的HRD参数集合被选择用于HRD操作。即,尽管HRD参数可提供于SPS中,但SPS中的HRD参数集合并不被HEVC视频解码器选择用于HRD操作。视频解码器总是剖析并解码位流的VPS。因此,视频解码器总是剖析并解码VPS的HRD参数集合。
无论位流是否包含非基底层NAL单元,此情形皆为真。举例来说,仅译码于VPS中的hrd_parameters()语法结构可被选择用于HRD操作,且可能从不选择SPS中可能存在的hrd_parameters()语法结构。此情形可要求对VPS的剖析及处置,即使在解码并不含有大于0的nuh_reserved_zero_6bits的位流(即,位流仅含有HEVC的多视图、3DV或SVC扩展中的基底层)时也是如此。
因此,如果位流包含非基底层NAL单元,则剖析并处置SPS中的HRD参数的集合可为计算资源的浪费。此外,如果HRD参数的集合存在于VPS中,则SPS中的HRD参数的集合可为浪费的位。举例来说,如果hrd_parameters()语法结构存在于SPS中,则语法结构的经译码位可纯粹是位的浪费。
根据本发明的一或多项技术,视频编码器20可产生包含SPS的位流,所述SPS适用于图片的序列。SPS包含HRD参数的集合。HRD参数的集合适用于位流的具有与目标层识别符的集合匹配的层识别符的集合的每一操作点。因此,SPS中的HRD参数的集合不被浪费,而是可用于HRD操作。举例来说,译码于SPS中的hrd_parameters()语法结构所针对的操作点可被清楚地指定为(例如)在位流中仅存在nuh_reserved_zero_6bits的一个值(即,多视图、3DV或可缩放视频译码扩展中的层ID)的所述操作点。
举例来说,例如视频编码器20或视频解码器30等装置可从视频参数集中的HRD参数的集合及SPS中的HRD参数的集合中选择适用于特定操作点的HRD参数的集合。在此实例中,装置可至少部分基于适用于特定操作点的HRD参数的集合执行位流一致性测试,所述测试对与特定操作点相关联的位流子集是否与视频译码标准一致进行测试。位流一致性测试可验证:操作点表示与例如HEVC等视频译码标准一致。
在本发明中,操作点可由表示为OpLayerIdSet的nuh_reserved_zero_6bits值的集合及表示为OpTid的TemporalId值来识别。在OpTid及OpLayerIdSet作为输入的情况下如HEVC工作草案8的子条款10.1中所指定而导出为子位流提取过程的输出的相关联的位流子集是可独立解码的。HEVC工作草案8的子条款10.1描述用于从位流提取子位流(即,操作点表示)的操作。具体来说,HEVC工作草案8的子条款10.1规定:通过从位流移除具有大于tIdTarget的时间识别符(例如,TemporalID)或并非targetDecLayerIdSet中的值的层识别符(例如,nuh_reserved_zero_6bits)的所有NAL单元来导出子位流。tIdTarget及targetDecLayerIdSet是位流提取过程的参数。
在用于发信HRD参数的现有技术的另一实例问题或缺点中,例如视频编码器、视频解码器等设备或另一类型的装置可对操作点的操作点表示执行位流一致性测试。如上文所提及,目标层识别符的集合及时间识别符可用以识别操作点。目标层识别符的集合可表示为“TargetDecLayerIdSet”。时间识别符可表示为“TargetDecHighestTid”。有问题地,HEVC工作草案8并不指定在执行位流一致性测试时如何设定TargetDecLayerIdSet或TargetDecHighestTid。举例来说,当为了位流一致性测试调用解码过程时,语法元素的语义并未被清楚地指定,这是因为TargetDecLayerIdSet及TargetDecHighestTid的值未被恰当设定。
本发明的一或多项技术指示在执行位流一致性测试时如何设定TargetDecLayerIdSet及TargetDecHighestTid。举例来说,位流(或操作点表示)的一般解码过程经修改,使得如果在位流一致性测试中解码位流(或操作点表示),则TargetDecLayerIdSet如HEVC标准的子条款C.1中所指定进行设定。类似地,位流(或操作点表示)的一般解码过程可经修改,使得如果在位流一致性测试中解码位流(或操作点表示),则TargetDecHighestTid如HEVC工作草案8的子条款C.1中所指定进行设定。换句话说,装置可确定含有存在于位流子集中的每一层识别符的特定操作点的目标层识别符集合,且所述特定操作点的层识别符集合是存在于位流中的层识别符的子集。此外,装置可确定特定操作点的等于存在于位流子集中的最大时间识别符的目标时间识别符,且特定操作点的目标时间识别符小于或等于存在于位流中的最大时间识别符。
在HEVC工作草案8的子条款C.1中,TargetDecLayerIdSet被设定为targetOpLayerIdSet。targetOpLayerIdSet含有存在于受测操作点的操作点表示中的nuh_reserved_zero_6bits的值的集合。targetOpLayerIdSet是存在于受测位流中的nuh_reserved_zero_6bits的值的子集。
此外,变量TargetDecHighestTid识别待解码的最高时间子层。时间子层是时间可缩放位流的时间可缩放层,所述时间可缩放位流由具有TemporalId的特定值的VCL NAL单元及相关联的非VCL NAL单元组成。在HEVC标准的子条款C.1中,TargetDecHighestTid被设定为targetOpTid。targetOpTid等于存在于受测操作点的操作点表示中的最大temporal_id,且小于或等于存在于受测位流中的最大temporal_id。因此,当为了位流一致性测试调用解码过程时,TargetDecLayerIdSet及TargetDecHighestTid的值被设定为存在于子位流中的nuh_reserved_zero_6bits值的集合及最大TemporalId值,所述子位流对应于用于特定位流一致性测试的受测操作点。
以此方式,装置(例如视频编码器20、视频解码器30、额外装置21或另一装置)可根据本发明的一或多项技术执行解码过程,作为执行位流一致性测试的部分。执行解码过程可包括执行位流提取过程以从位流提取由层识别符的目标集合及目标最高时间识别符定义的操作点的操作点表示。层识别符的目标集合(即,TargetDecLayerIdSet)含有存在于操作点表示中的层识别符语法元素(例如,nuh_reserved_zero_6bits语法元素)的值。层识别符的目标集合是位流的层识别符语法元素值的子集。目标最高时间识别符(即,TargetDecHighestTid)等于存在于操作点表示中的最大时间识别符。目标最高时间识别符小于或等于存在于位流中的最大时间识别符。执行解码过程还包括解码操作点表示的NAL单元。
解码过程并非总是作为执行位流一致性测试的部分而执行。确切来说,解码过程可为用于解码位流的一般过程。当解码过程并非作为位流一致性测试的部分执行时,外部源可指定操作点的TargetDecLayerIdSet及TargetDecHighestTid。外部源可为位流外的任何信息源。举例来说,CDN装置可基于特定视频解码器的配置而以编程方式确定且指定TargetDecLayerIdSet及TargetDecHighestTid。执行解码过程的装置可使用外部指定的TargetDecLayerIdSet及TargetDecHighestTid来自位流提取操作点表示。执行解码过程的装置可接着解码所提取的操作点表示的NAL单元。
因此,当解码过程并非作为位流一致性测试的部分执行时,执行解码过程的装置可从外部源接收层识别符的目标集合及目标最高时间识别符。层识别符的目标集合含有存在于操作点表示中的层识别符语法元素的值。目标最高时间识别符等于存在于第二操作点表示中的最大时间识别符。此外,执行解码过程的装置可执行位流提取过程以从位流提取操作点表示。执行解码过程的装置可接着解码操作点表示的NAL单元。
在其它个例中,外部源并不指定TargetDecLayerIdSet或TargetDecHighestTid。在这些个例中,解码过程可对整个位流执行。举例来说,装置可执行位流提取过程以从位流提取操作点表示。在此实例中,0是存在于操作点表示中的层识别符语法元素(即,nuh_reserved_zero_6bits)的唯一值。此外,在此实例中,存在于位流中的最大时间识别符等于存在于操作点表示中的最大时间识别符。在此实例中,执行解码过程的装置可解码操作点表示的NAL单元。
如上文所指示,SPS可包含表示为sps_max_dec_pic_buffering[i]的语法元素的阵列,其中i在0到位流中的时间层的最大数目的范围内。当最高时间识别符(HighestTid)等于i时,sps_max_dec_pic_buffering[i]指示DPB的最大所要求大小。sps_max_dec_pic_buffering[i]指示依据图片存储缓冲器的单元的所要求大小。此外,SPS可包含由sps_max_num_reorder_pics[i]表示的语法元素的阵列,其中i在0到位流中的时间层的最大数目的范围内。sps_max_num_reorder_pics[i]指示在最高时间识别符(HighestTid)等于i时在解码次序上先于任何图片且在输出次序上在所述图片之后的图片的最大所允许数目。此外,HRD参数的集合可包含表示为cpb_cnt_minus1[i]的语法元素的阵列,其中i在0到位流中的时间层的最大数目的范围内。cpb_cnt_minus1[i]指定在最高时间识别符(HighestTid)等于i时经译码视频序列的位流中的替代性CPB规范的数目。
因为HEVC工作草案8并未指定最高时间识别符(HighestTid)的意义(HEVC工作草案8),所以在HRD操作、位流一致性操作及级别限制中未恰当选择sps_max_dec_pic_buffering[i]、sps_max_num_reorder_pics[i]及cpb_cnt_minus1[i]。换句话说,并未恰当选择HRD操作、位流一致性要求及级别限制中的参数sps_max_num_reorder_pics[i]、sps_max_dec_pic_buffering[i]及cpb_cnt_minus1[i]。
根据本发明的一或多项技术,sps_max_dec_pic_buffering[i]经定义,使得在TargetDecHighestTid等于i时sps_max_dec_pic_buffering[i]指示DPB的最大所要求大小。以上文所描述的方式来确定TargetDecHighestTid。此情形可与未定义HighestTid的HEVC工作草案8形成对比。sps_max_dec_pic_buffering[i]的值应是在0到MaxDpbSize(如在HEVC工作草案8的子条款A.4中所指定)的范围内(包含0及MaxDpbSize)。当i大于0时,sps_max_dec_pic_buffering[i]将等于或大于sps_max_dec_pic_buffering[i-1]。针对i的每一值,sps_max_dec_pic_buffering[i]的值将小于或等于vps_max_dec_pic_buffering[i]。
类似地,根据本发明的一或多项技术,sps_max_num_reorder_pics[i]经定义,使得在TargetDecHighestTid等于i时,sps_max_num_reorder_pics[i]指示在解码次序上先于任何图片且在输出次序上在所述图片之后的图片的最大所允许数目。TargetDecHighestTid是以上文所描述的方式来确定。sps_max_num_reorder_pics[i]的值应是在0到sps_max_dec_pic_buffering[i]的范围内(包含0及sps_max_dec_pic_buffering[i])。当i大于0时,sps_max_num_reorder_pics[i]将等于或大于sps_max_num_reorder_pics[i-1]。针对i的每一值,sps_max_num_reorder_pics[i]的值将小于或等于vps_max_num_reorder_pics[i]。
此外,根据本发明的一或多项技术,cpb_cnt_minus1[i]可指定在TargetDecHighestTid等于i时经译码视频序列的位流中的替代性CPB规范的数目,其中i在0到位流中的时间层的最大数目的范围内。以上文所描述的方式来确定TargetDecHighestTid。cpb_cnt_minus1[i]的值是在0到31的范围内(包含0及31)。当low_delay_hrd_flag[i]等于1时,cpb_cnt_minus1[i]等于0。当cpb_cnt_minus1[i]不存在时,cpb_cnt_minus1[i]被推断为等于0。
因此,根据本发明的一或多项技术,装置可基于最高时间识别符确定来自语法元素的阵列中的特定语法元素。最高时间识别符经定义,使得最高时间识别符总是识别待解码的最高时间层。因此,HRD操作、位流一致性要求及级别限制中的sps_max_num_reorder_pics[i]、sps_max_dec_pic_buffering[i]及cpb_cnt_minus1[i]被始终如一地选择,其中i等于TargetDecHighestTid的清楚指定的值。
以此方式,装置(例如视频编码器20、视频解码器30、额外装置21或另一装置)可执行HRD操作以确定位流与视频译码标准的一致性或确定视频解码器与视频译码标准的一致性。作为执行HRD操作的部分,装置可确定与位流的所选择操作点相关联的位流子集的最高时间识别符。此外,装置可基于最高时间识别符确定来自语法元素的阵列(例如,sps_max_num_reorder_pics[i]、sps_max_dec_pic_buffering[i]或cpb_cnt_minus1[i])的特定语法元素。此外,装置可在HRD操作中使用特定语法元素。
此外,在HEVC工作草案8中,VPS中的hrd_parameters()语法结构中的每一者可为与operation_point_layer_ids()语法结构相关联,基于所述operation_point_layer_ids()语法结构选择hrd_parameters()语法结构以用于HRD操作中。对应于每一所选择hrd_parameters()语法结构,在HRD操作中还可需要缓冲周期SEI消息与图片时序SEI消息的集合。然而,不存在使缓冲周期SEI消息或图片时序SEI消息关联到hrd_parameters()语法结构的任何方式,其中所述hrd_parameters()语法结构的相关联的operation_point_layer_ids()语法结构包含nuh_reserved_zero_6bits的多个值(即,HEVC的多视图、3DV或可缩放视频译码扩展中的多个层ID)。
对此问题的解决方案可为应用如H.264/AVC的附录H中指定的多视图译码可缩放巢套SEI消息或类似者。然而,多视图译码可缩放巢套SEI消息或类似SEI消息可具有以下不利之处。首先,由于H.264/AVC中的SEI NAL单元仅具有字节NAL单元标头,因此不可能将携载于HEVC SEI NAL单元的NAL单元标头中的nuh_reserved_zero_6bits及temporal_id_plus1中的信息用于缓冲周期或图片时序SEI消息与操作点的关联。其次,每一巢套SEI消息仅可与一个操作点相关联。
本发明的一或多项技术可经由可携载于缓冲周期SEI消息、图片时序SEI消息或子图片时序SEI消息中的applicable_operation_points()语法结构而提供清楚地指定缓冲周期SEI消息、图片时序SEI消息或子图片时序SEI消息应用到的操作点的机制。所述机制可允许使用携载于SEL NAL单元的NAL单元标头中的语法元素nuh_reserved_zero_6bits及temporal_id_plus1中的信息,且可允许多个操作点共享在同一缓冲周期、图片时序或子图片时序SEI消息中传递的信息。
图2为说明可实施本发明的技术的实例视频编码器20的帧图。为了解释的目的而提供图2,且其不应被视为限制如在本发明中广泛例证且描述的技术。为了解释,本发明在HEVC译码的内容脉络中描述视频编码器20。然而,本发明的技术可适用于其它译码标准或方法。
在图2的实例中,视频编码器20包含预测处理单元100、残余产生单元102、变换处理单元104、量化单元106、反量化单元108、反变换处理单元110、重建构单元112、滤波单元114、经解码图片缓冲器116及熵编码单元118。预测处理单元100包含帧间预测处理单元120及帧内预测处理单元126。帧间预测处理单元120包含运动估计单元122及运动补偿单元124。在其它实例中,视频编码器20可包含较多、较少或不同功能组件。
视频编码器20可接收视频数据。视频编码器20可编码视频数据的图片的切片中的每一CTU。CTU中的每一者可与大小相等的明度译码树型块(CTB)及图片的对应CTB相关联。作为编码CTU的部分,预测处理单元100可执行四分树分割以将CTU的CTB划分成逐渐变小的块。较小块可为CU的译码块。举例来说,预测处理单元100可将与CTU相关联的CTB分割成四个大小相等的子块,将所述子块中的一或多者分割成四个大小相等的子子块,等等。
视频编码器20可编码CTU的CU以产生CU的经编码表示(即,经译码CU)。作为编码CU的部分,预测处理单元100可在CU的一或多个PU之间分割与CU相关联的译码块。如此,每一PU可与明度预测块及对应色度预测块相关联。视频编码器20及视频解码器30可支持具有各种大小的PU。CU的大小可指代CU的明度译码块的大小,且PU的大小可指代PU的明度预测块的大小。假定特定CU的大小是2N×2N,则视频编码器20及视频解码器30可支持用于帧内预测的2N×2N或N×N的PU大小,及用于帧间预测的2N×2N、2N×N、N×2N、N×N或类似大小的对称PU大小。视频编码器20及视频解码器30还可支持不对称分割以获得用于帧间预测的2N×nU、2N×nD、nL×2N及nR×2N的PU大小。
帧间预测处理单元120可通过对CU的每一PU执行帧间预测而产生PU的预测性数据。PU的预测性数据可包含PU的预测性块及用于PU的运动信息。帧间预测处理单元120可视PU在I切片、P切片抑或B切片中而对CU的PU执行不同操作。在I切片中,所有PU经帧内预测。因此,如果PU是在I切片中,则帧间预测处理单元120并不对PU执行帧间预测。因此,对于以I模式编码的块,使用根据同一帧内的先前编码的相邻块的空间预测来形成预测性块。
如果PU是在P切片中,则运动估计单元122可在参考图片的列表(例如,“RefPicList0”)中搜索参考图片以找到用于PU的参考区。用于PU的参考区可为参考图片内的一区,所述区含有最紧密地对应于PU的预测块的样本块。运动估计单元122可产生参考索引,所述参考索引指示含有用于PU的参考区的参考图片在RefPicList0中的位置。此外,运动估计单元122可产生运动向量,所述运动向量指示PU的预测块与关联于参考区的参考位置之间的空间位移。举例来说,运动向量可为二维向量,其提供从当前图片中的座标到参考图片中的座标的偏移。运动估计单元122可输出参考索引及运动向量作为PU的运动信息。运动补偿单元124可基于由PU的运动向量指示的参考位置处的实际或内插样本来产生PU的预测性块。
如果PU是在B切片中,则运动估计单元122可执行对于PU的单向预测(uni-prediction)或双向预测(bi-prediction)。为了执行对于PU的单向预测,运动估计单元122可搜索RefPicList0或第二参考图片列表(“RefPicList1”)的参考图片以找到用于PU的参考区。运动估计单元122可输出以下各者作为PU的运动信息:参考索引,其指示含有参考区的参考图片在RefPicList0或RefPicList1中的位置;运动向量,其指示PU的样本块与关联于参考区的参考位置之间的空间位移;及一或多个预测方向指示符,其指示参考图片是在RefPicList0抑或RefPicList1中。运动补偿单元124可至少部分基于由PU的运动向量指示的参考区处的实际或内插样本来产生PU的预测性块。
为了执行对于PU的双向帧间预测,运动估计单元122可搜索RefPicList0中的参考图片以找到用于PU的参考区,且还可搜索RefPicList1中的参考图片以找到用于PU的另一参考区。运动估计单元122可产生参考索引,所述参考索引指示含有参考区的参考图片在RefPicList0及RefPicList1中的位置。此外,运动估计单元122可产生运动向量,其指示与参考区相关联的参考位置与PU的样本块之间的空间位移。PU的运动信息可包含PU的参考索引及运动向量。运动补偿单元124可至少部分基于由PU的运动向量指示的参考区处的实际或内插样本来产生PU的预测性块。
帧内预测处理单元126可通过对PU执行帧内预测而产生用于PU的预测性数据。用于PU的预测性数据可包含PU的预测性块及各种语法元素。帧内预测处理单元126可对I切片、P切片及B切片中的PU执行帧内预测。
为了对PU执行帧内预测,帧内预测处理单元126可使用多个帧内预测模式来产生用于PU的预测性数据的多个集合。为了使用帧内预测模式以产生用于PU的预测性数据的集合,帧内预测处理单元126可扩展来自相邻PU的样本块的样本遍及在与帧内预测模式相关联的方向上的PU的诸个样本块。假定针对PU、CU及CTU的左到右、顶部到底部的编码次序,则相邻PU可为在所述PU的上方、右上方、左上方或左侧。帧内预测处理单元126可使用各种数目个帧内预测模式,例如,33个定向帧内预测模式。在一些实例中,帧内预测模式的数目可取决于与PU相关联的区的大小。
预测处理单元100可从由帧间预测处理单元120产生的用于PU的预测性数据或由帧内预测处理单元126产生的用于PU的预测性数据中选择用于CU的PU的预测性数据。在一些实例中,预测处理单元100基于预测性数据的集合的速率/失真量度来选择用于CU的PU的预测性数据。本文中,所选择的预测性数据的预测性块可被称作所选择预测性块。
残余产生单元102可基于CU的明度、Cb及Cr译码块以及CU的PU的所选择的预测性明度、Cb及Cr块而产生CU的明度、Cb及Cr残余块。举例来说,残余产生单元102可产生CU的残余块,使得残余块中的每一样本具有一值,所述值等于CU的译码块中的样本与CU的PU的对应所选择预测性块中的对应样本之间的差。
变换处理单元104可执行四分树分割以将与CU相关联的残余块分割成与CU的TU相关联的变换块。因此,TU可与一明度变换块及两个色度变换块相关联。CU的TU的明度及色度变换块的大小及位置可能或可能并非基于CU的PU的预测块的大小及位置。称作“残余四分树”(RQT)的四分树结构可包含与区中的每一者相关联的节点。CU的TU可对应于RQT的叶节点。
变换处理单元104可通过将一或多个变换应用到TU的变换块而产生针对CU的每一TU的变换系数块。变换处理单元104可将各种变换应用到与TU相关联的变换块。举例来说,变换处理单元104可将离散余弦变换(DCT)、方向变换或概念上类似的变换应用到变换块。在一些实例中,变换处理单元104并不将变换应用到变换块。在这些实例中,变换块可被当作变换系数块。
量化单元106可使系数块中的变换系数量化。所述量化过程可减少与所述变换系数中的一些或全部相关联的位深度。举例来说,在量化期间n位变换系数可被降值舍位到m位变换系数,其中n大于m。量化单元106可基于与CU相关联的量化参数(QP)值来量化与CU的TU相关联的系数块。视频编码器20可通过调整与CU相关联的QP值而调整应用到与CU相关联的系数块的量化程度。量化可引入信息的损失,因此经量化的变换系数相较于原始变换系数可具有较低精度。
反量化单元108及反变换处理单元110可分别将反量化及反变换应用到系数块以从系数块重建构残余块。重建构单元112可将经重建构的残余块加到来自由预测处理单元100产生的一或多个预测性块的对应样本,以产生与TU相关联的经重建构变换块。通过以此方式重建构针对CU的每一TU的变换块,视频编码器20可重建构CU的译码块。
滤波单元114可执行一或多个解块操作以减少与CU相关联的译码块中的方块效应假影。在滤波单元114对经重建构的译码块执行一或多个解块操作之后,经解码图片缓冲器116可存储经重建构的译码块。帧间预测单元120可使用含有经重建构的译码块的参考图片以执行对其它图片的PU的帧间预测。此外,帧内预测处理单元126可使用经解码图片缓冲器116中的经重建构译码块以对与CU在相同的图片中的其它PU执行帧内预测。
熵编码单元118可从视频编码器20的其它功能组件接收数据。举例来说,熵编码单元118可从量化单元106接收系数块,且可从预测处理单元100接收语法元素。熵编码单元118可对数据执行一或多个熵编码操作以产生经熵编码的数据。举例来说,熵编码单元118可对数据执行上下文自适应性可变长度译码(CAVLC)操作、CABAC操作、变量到变量(V2V)长度译码操作、基于语法的上下文自适应性二进制算术译码(SBAC)操作、机率区间分割熵(PIPE)译码操作、指数Golomb编码操作或另一类型的熵编码操作。视频编码器20可输出包含由熵编码单元118产生的熵编码数据的位流。举例来说,位流可包含表示CU的RQT的数据。
如本发明中其它地方所指示,视频编码器20可在位流中发信VPS。在HEVC工作草案8中,参考并未定义的值HighestTid来定义VPS的特定语法元素(即,vps_max_dec_pic_buffering[i]、vps_max_num_reorder_pics[i]及vps_max_latency_increase[i])。根据本发明的一或多项技术,VPS的这些语法元素可参考值TargetDecHighestTid来定义,所述值TargetDecHighestTid经定义,使得TargetDecHighestTid是如本发明中其它地方所描述。以下表3说明根据本发明的一或多项技术的VPS的语法。
表3-VPS
表3及贯穿本发明的其它语法表或语义描述的斜体部分可指示与HEVC工作草案8的差异。根据本发明的一或多项技术,VPS的以下语法元素的语义可如下作出改变。VPS的其它语法元素的语义可保持与HEVC工作草案8中的语义相同。
vps_max_dec_pic_buffering[i]指定在TargetDecHighestTid等于i时经解码图片缓冲器的以图片存储缓冲器为单位的所要求大小。vps_max_dec_pic_buffering[i]的值应是在0到MaxDpbSize(如在子条款A.4中所指定)的范围内(包含0及MaxDpbSize)。当i大于0时,vps_max_dec_pic_buffering[i]将等于或大于vps_max_dec_pic_buffering[i-1]。
vps_max_num_reorder_pics[i]指示在TargetDecHighestTid等于i时在解码次序上在任何图片之前且在输出次序上在所述图片之后的图片的最大所允许数目。vps_max_num_reorder_pics[i]的值应是在0到vps_max_dec_pic_buffering[i]的范围内(包含0及vps_max_dec_pic_buffering[i])。当i大于0时,vps_max_num_reorder_pics[i]将等于或大于vps_max_num_reorder_pics[i-1]。
如通过将MaxLatencyPictures[i]设定为vps_max_num_reorder_pics[i]+vps_max_latency_increase[i]所指定,不等于0的vps_max_latency_increase[i]被用以计算MaxLatencyPictures[i]的值。当vps_max_latency_increase[i]不等于0时,MaxLatencyPictures[i]的值指定在TargetDecHighestTid等于i时在输出次序上可先于经译码视频序列中的任何图片且在解码次序上在所述图片之后的图片的最大数目。当vps_max_latency_increase[i]等于0时,不表达对应限制。vps_max_latency_increase[i]的值应是在0到232-2的范围内(包含0及232-2)。
如上文所展示,可参考TargetDecHighestTid来定义vps_max_dec_buffering[i]、vps_max_num_reorder_pics[i]及vps_max_latency_increase[i]的语义。相对照地,HEVC工作草案8参考HighestTid来定义vps_max_dec_pic_buffering[i]、vps_max_num_reorder_pics[i]及vps_max_latency_increase[i],其中未定义HighestTid。
如表3的实例语法中所展示,VPS包含数对operation_point_layer_ids()语法结构及hrd_parameters()语法结构。hrd_parameters()语法结构包含指定HRD参数的集合的语法元素。operation_point_layer_ids()语法结构包含识别操作点的集合的语法元素。hrd_parameters()语法结构中指定的HRD参数的集合可适用于由对应operation_point_layer_ids()语法结构中的语法元素识别的操作点。以下表4提供operation_point_layer_ids()语法结构的实例语法。
表4-操作点层ID
HEVC工作草案8的章节7.4.4描述op_point语法结构的语义。根据本发明的一或多项技术,HEVC工作草案8的章节7.4.4可如下作出改变以提供表4的operation_point_layer_ids()语法结构的语义。
operation_point_layer_ids(opIdx)语法结构指定了视频参数集中的第opIdx个hrd_parameters()语法结构应用到的操作点的OpLayerIdSet中所包含的nuh_reserved_zero_6bits值的集合。
op_num_layer_id_values_minus1[opIdx]加1指定了视频参数集中的第opIdx个hrd_parameters()语法结构应用到的操作点的OpLayerIdSet中所包含的nuh_reserved_zero_6bits值的数目。op_num_layer_id_values_minus1[opIdx]将小于或等于63。在与此规范一致的位流中,op_num_layer_id_values_minus1[opIdx]将等于0。尽管在此规范的此版本中要求op_num_layer_id_values_minus1[opIdx]的值等于0,但解码器应允许其它值出现于op_num_layer_id_values_minus1[opIdx]语法中。
op_layer_id[opIdx][i]指定视频参数集中的第opIdx个hrd_parameters()语法结构应用到的操作点的OpLayerIdSet中所包含的nuh_reserved_zero_6bits的第i值。当i不等于j且i及j两者皆在0到op_num_layer_id_values_minus1的范围内(包含0及op_num_layer_id_values_minus1)时,op_layer_id[opIdx][i]的值不得等于op_layer_id[opIdx][j]。op_layer_id[0][0]被推断为等于0。
如上文所指示,op_num_layer_id_values_minus1[opIdx]语法元素加1指定视频参数集中的第opIdx个hrd_parameters()语法结构应用到的操作点的OpLayerIdSet中所包含的nuh_reserved_zero_6bits值的数目。相对比地,HEVC工作草案8规定:op_num_layer_id_values_minus1[opIdx]语法元素加1指定包含于由opIdx识别的操作点中的nuh_reserved_zero_6bits值的数目。类似地,在表4的实例中,op_layer_id[opIdx][i]语法元素指定了视频参数集中的第opIdx个hrd_parameters()语法结构应用到的操作点的OpLayerIdSet中所包含的nuh_reserved_zero_6bits的第i值。相对照地,HEVC工作草案8规定:op_layer_id[opIdx][i]语法元素指定包含于由opIdx识别的操作点中的nuh_reserved_zero_6bits的第i值。
HEVC工作草案8的章节7.4.2.2描述SPS的语义。根据本发明的一或多项技术,可对HEVC工作草案8的章节7.4.2.2进行以下改变。SPS的其它语法元素的语义可与HEVC工作草案8中的语义相同:
sps_max_dec_pic_buffering[i]指定在TargetDecHighestTid等于i时以图片存储缓冲器为单位的经解码图片缓冲器的最大所要求大小。sps_max_dec_pic_buffering[i]的值应是在0到MaxDpbSize(如在子条款A.4中所指定)的范围内(包含0及MaxDpbSize)。当i大于0时,sps_max_dec_pic_buffering[i]应等于或大于sps_max_dec_pic_buffering[i-1]。针对i的每一值,sps_max_dec_pic_buffering[i]的值应小于或等于vps_max_dec_pic_buffering[i]。
sps_max_num_reorder_pics[i]指示在TargetDecHighestTid等于i时在解码次序上在任何图片之前且在输出次序上在所述图片之后的图片的最大所允许数目。sps_max_num_reorder_pics[i]的值应是在0到sps_max_dec_pic_buffering[i](包含0及sps_max_dec_pic_buffering[i]])的范围内。当i大于0时,sps_max_num_reorder_pics[i]应等于或大于sps_max_num_reorder_pics[i-1]。针对i的每一值,sps_max_num_reorder_pics[i]的值应小于或等于vps_max_num_reorder_pics[i]。
如通过将MaxLatencyPictures[i]设定为等于sps_max_num_reorder_pics[i]+sps_max_latency_increase[i]所指定,不等于0的sps_max_latency_increase[i]被用以计算MaxLatencyPictures[i]的值。当sps_max_latency_increase[i]不等于0时,MaxLatencyPictures[i]的值指定在TargetDecHighestTid等于i时在输出次序上可先于经译码视频序列中的任何图片且在解码次序上在所述图片之后的图片的最大数目。当sps_max_latency_increase[i]等于0时,不表达对应限制。sps_max_latency_increase[i]的值应是在0到232-2的范围内(包含0及232-2)。针对i的每一值,sps_max_latency_increase[i]的值应小于或等于vps_max_latency_increase[i]。
如上文所展示,依据TargetDecHighestTid来定义sps_max_dec_pic_buffering[i]、sps_max_num_reorder_pics[i]及sps_max_latency_increase[i]的语义。TargetDecHighestTid是如在本发明中的其它地方所描述而确定。相对比地,HEVC工作草案8参考未经定义的HighestTid来定义sps_max_dec_pic_buffering[i]、sps_max_num_reorder_pics[i]及sps_max_latency_increase[i]的语义。
HEVC工作草案8的章节7.4.5.1描述一般切片标头语义。根据本发明的一或多项技术,可对HEVC工作草案8的章节7.4.5.1进行以下改变。HEVC工作草案8的章节7.4.5.1的其它部分可保持为相同的。
no_output_of_prior_pics_flag指定在解码IDR或BLA图片之后如何处理经解码图片缓冲器中的先前解码的图片。参见附录C。在当前图片是CRA图片或当前图片是为位流中的第一图片的IDR或BLA图片时,no_output_of_prior_pics_flag的值对解码过程无影响。在当前图片是并非位流中的图片的IDR或BLA图片,且从有效的序列参数集导出的pic_width_in_luma_samples或pic_height_in_luma_samples或sps_max_dec_pic_buffering[TargetDecHighestTid]的值不同于从针对前一图片是有效的序列参数集导出的pic_width_in_luma_samples或pic_height_in_luma_samples或sps_max_dec_pic_buffering[TargetDecHighestTid]的值时,无论no_output_of_prior_pics_flag的实际值如何,解码器可(但不应)推断出等于1的no_output_of_prior_pics_flag。
如上文所展示,参考sps_max_dec_pic_buffering[TargetDecHighestTid]来定义no_output_of_prior_pics_flag的语义。TargetDecHighestTid是如在本发明中的其它地方所描述而确定。相对比地,HEVC工作草案8参考sps_max_dec_pic_buffering[HighestTid]来定义no_output_of_prior_pics_flags的语义,其中未定义HighestTid。
HEVC工作草案8的章节8.1描述一般解码过程。根据本发明的一或多项技术,HEVC工作草案8的一般解码过程可如下作出改变。
此过程的输入是位流,且输出是经解码图片的列表。
指定待解码的VCL NAL单元的nuh_reserved_zero_6bits的值的集合的集合TargetDecLayerIdSet被指定如下:
-如果未指定于此规范中的某外部装置可用于设定TargetDecLayerIdSet,则通过所述外部装置来设定TargetDecLayerIdSet。
-否则,如果在如子条款C.1中指定的位流一致性测试中调用解码过程,则如子条款C.1中所指定地设定TargetDecLayerIdSet。
-否则,TargetDecLayerIdSet仅含有nuh_reserved_zero_6bits的一个值,其等于0。
识别待解码的最高时间子层的变量TargetDecHighestTid被指定如下:
-如果未指定于此规范中的某外部装置可用于设定TargetDecHighestTid,则通过所述外部装置来设定TargetDecHighestTid。
-否则,如果在如子条款C.1中指定的位流一致性测试中调用解码过程,则如子条款C.1中所指定地设定TargetDecHighestTid。
-否则,将TargetDecHighestTid设定为sps_max_sub_layers_minus1。
以TargetDecHighestTid及TargetDecLayerIdSet为输入来应用如子条款10.1中指定的子位流提取过程,且将输出指派给被称作BitstreamToDecode的位流。
以下情形适用于BitstreamToDecode中的每一经译码图片(称作当前图片,其由变量CurrPic表示)。
取决于chroma_format_idc的值,当前图片的样本阵列的数目如下。
-如果chroma_format_idc等于0,则当前图片由1个样本阵列SL组成。
-否则(chroma_format_idc不等于0),当前图片由3个样本阵列SL、SCb、SCr组成。
当前图片的解码过程采用来自条款7的语法元素及大写字母变量作为输入。当涉及解译每一NAL单元及“位流”或其部分(例如,经译码视频序列)中的每一语法元素的语义时,位流或其部分意谓BitstreamToDecode或其部分。
解码过程经指定,使得所有解码器应产生数值上相同的结果。产生等同于本文中所描述的过程的结果的任何解码过程皆与此规范中的解码过程要求一致。
在当前图片是CRA图片时,以下情形适用:
-如果此规范中未指定的某外部装置可用于将变量HandleCraAsBlaFlag设定为一值,则将HandleCraAsBlaFlag设定为由外部装置提供的值。
-否则,将HandleCraAsBlaFlag的值设定为0。
在当前图片是CRA图片且HandleCraAsBlaFlag等于1时,在每一经译码切片NAL单元的剖析及解码过程期间以下情形适用:
-将nal_unit_type的值设定为BLA_W_LP。
-将no_output_of_prior_pics_flag的值设定为1。
注释1-解码器实施方案可选择在设定不影响当前图片及在解码次序上的随后图片的解码时(例如,当在需要时总是存在可用的图片存储缓冲器时)将no_output_of_prior_pics_flag的值设定为0。
此条款中提及的每一图片是完整的经译码图片。
取决于separate_colour_plane_flag的值,将解码过程结构化如下。
-如果separate_colour_plane_flag等于0,则解码过程被调用单个次,其中当前图片为输出。
-否则(separate_colour_plane_flag等于1),解码过程被调用三次。到解码过程的输入是经译码图片的具有colour_plane_id的相同值的所有NAL单元。具有colour_plane_id的特定值的NAL单元的解码过程经指定,就如同仅有具colour_plane_id的所述特定值的单色格式的经译码视频序列将存在于所述位流中一般。三个解码过程中的每一者的输出被指派给当前图片的3个样本阵列,其中具等于0的colour_plane_id的NAL单元指派给SL,具有等于1的colour_plane_id的NAL单元指派给SCb,且具有等于2的colour_plane_id的NAL单元指派给SCr。
注释1-在separate_colour_plane_flag等于1且chroma_format_idc等于3时,变量ChromaArrayType被导出为0。在解码过程中,此变量的值经评估,从而导致等同于chroma_format_idc等于0的单色图片的操作的操作。
解码过程针对当前图片CurrPic如下操作:
1.NAL单元的解码在子条款8.2中指定。
2.子条款8.3中的过程指定使用切片层中的语法元素及以上语法元素的解码过程:
-在子条款8.3.1中导出与图片次序计数相关的变量及功能(仅需要针对图片的第一切片调用其)。
-调用子条款8.3.2中的针对参考图片集的解码过程,其中参考图片可标注为“不用于参考”或“用于长期参考”(仅需要针对图片的第一切片调用其)。
-在当前图片是BLA图片或是为位流中的第一图片的CRA图片时,调用指定于子条款8.3.3中的用于产生不可用的参考图片的解码过程(仅需要针对图片的第一切片调用其)。
-PicOutputFlag被设定如下:
-如果当前图片是TFD图片且解码次序上的先前的RAP图片是BLA图片或是为位流中的第一经译码图片的CRA图片,则PicOutputFlag被设定为等于0。
-否则,PicOutputFlag被设定为等于pic_output_flag。
-在每一P或B切片的解码过程开始时,子条款8.3.4中指定的针对参考图片列表建构的解码过程经调用以用于导出参考图片列表0(RefPicList0),且在解码B切片时调用所述解码过程以用于导出参考图片列表1(RefPicList1)。
-在已解码了当前图片的所有切片之后,将经解码图片标注为“用于短期参考”。
3.子条款8.4、8.5、8.6及8.7中的过程指定使用译码树型单元层中的语法元素及以上语法元素的解码过程。
如本发明中其它地方所指示,在HEVC工作草案8中,当针对位流一致性测试调用解码过程时,因为TargetDecLayerIdSet及TargetDecHighestTid的值未经恰当设定,故语法元素的语义并未被清楚地指定。上文所展示的对一般解码过程的修改可补救此问题。如上文所展示,当针对位流一致性测试调用一般解码过程时,TargetDecLayerIdSet及TargetDecHighestTid的值是如子条款C.1中所指定而设定。如下文所描述,子条款C.1的经修改版本可将TargetDecLayerIdSet设定为存在于对应于受测操作点的子位流中的nuh_reserved_zero_6bits值的集合。子条款C.1的经修改版本可将TargetDecHighestTid设定为存在于对应于受测操作点的子位流中的最大TemporalId值。
以此方式,例如视频解码器30等装置可执行解码过程,作为执行位流一致性测试的部分。执行解码过程可包括执行位流提取过程以从位流提取由层识别符的目标集合及目标最高时间识别符定义的操作点的操作点表示。层识别符的目标集合可含有存在于操作点表示中的层识别符语法元素的值,层识别符的目标集合是位流的层识别符语法元素的值的子集。目标最高时间识别符可等于存在于操作点表示中的最大时间识别符,目标最高时间识别符小于或等于存在于位流中的最大时间识别符。此外,装置可解码操作点表示的NAL单元。
如在以上对章节8.1的修改中所指示,解码过程不必作为位流一致性测试的部分而执行。在解码过程并非作为位流一致性测试的部分而执行的一些个例中,装置可执行位流提取过程以从位流提取操作点的操作点表示。在此状况下,0可为存在于操作点表示中的层识别符语法元素(例如,nuh_reserved_zero_6bits)的唯一值,且存在于位流中的最大时间识别符等于存在于操作点的操作点表示中的最大时间识别符。装置可解码第二操作点的操作点表示的NAL单元。
替代性地,装置可从外部源接收层识别符的目标集合及目标最高时间识别符。层识别符的目标集合可含有存在于操作点的操作点表示中的层识别符语法元素的值,所述操作点由层识别符的目标集合及目标最高时间识别符来定义。目标最高时间识别符可等于存在于操作点的操作点表示中的最大时间识别符。此外,装置可执行位流提取过程以从位流提取操作点的操作点表示。此外,装置可解码操作点的操作点表示的NAL单元。
此外,根据本发明的一或多项技术,在HEVC工作草案8的子条款10.1中描述的子位流提取过程可如下作出改变。
位流一致性的要求是:包含于在此子条款中指定的过程的输出中的tIdTarget等于在0到6的范围内(包含0及6)的任何值且layerIdSetTarget仅含有值0的任何子位流应与此规范一致。
注释-一致的位流含有具有等于0的nuh_reserved_zero_6bits及等于0的TemporalId的一或多个经译码切片NAL单元。
到此过程的输入是变量tIdTarget及集合layerIdSetTarget。
此过程的输出是子位流。
通过从位流移除具有大于tIdTarget的TemporalId或并非在layerIdSetTarget中的值中的nuh_reserved_zero_6bits的所有NAL单元而导出子位流。
在HEVC工作草案8的子条款10.1中,使用变量名称targetDecLayerIdSet,其中上文使用layerIdSetTarget。使用layerIdSetTarget的上文展示的对HEVC工作草案的子条款10.1的改变可用来阐明:在用于子位流提取过程中的层识别符的集合与targetDecLayerIdSet之间可存在差异,targetDecLayerIdSet如本发明中于其它地方所描述具有特定定义。
此外,根据本发明的一或多项技术,HEVC工作草案8的章节A.4.1的一般阶层及级别规范可如下作出改变。在本发明中,“设定档”可指代位流语法的子集。可在每一设定档内指定“阶层”及“级别”。阶层的级别可为强加于位流中的语法元素的值的约束的指定集合。这些约束可为对值的简单限制。
替代性地,约束可采用对值的算术组合(例如,图片宽度×图片高度×每秒解码的图片的数目)的约束的形式。针对较低阶层所指定的级别相较于针对较高阶层指定的级别受到更多约束。根据本发明的实例,HEVC工作草案8的“一般级别规范”章节(即,章节A.4.1)被重新加标题为“一般阶层及级别规范”,且文字做如下改变。表A-1可保持与HEVC工作草案8中者相同。
为了比较阶层能力,相较于具有等于1的general_tier_flag的阶层,具有等于0的general_tier_flag的阶层应被视为较低阶层。
为了比较级别能力,对于特定阶层,较低级别具有较低的general_level_idc值。
为了在此附录中表达所述约束而指定以下内容。
-使存取单元n为解码次序上的第n个存取单元,其中第一存取单元为存取点0(即,第0个存取单元)。
-使图片n为存取单元n的经译码图片或对应经解码图片。
-使变量fR设定为1÷300。
与指定级别处的设定档一致的位流应服从针对如在附录C中指定的每一位流一致性测试的以下约束:
a)如子条款C.2.2中指定的存取单元n(其中n>0)从CPB的标称移除时间对于图片n-1的PicSizeInSamplesY的值满足以下约束:tr,n(n)-tr(n-1)等于或大于Max(PicSizeInSamplesY÷MaxLumaSR,fR),其中MaxLumaSR是在表A-1中指定的应用到图片n-1的值。
b)如子条款C.3.2中指定的图片从DPB的连续输出时间之间的差对于图片n的PicSizeInSamplesY的值满足以下约束:Δto,dpb(n)>=Max(PicSizeInSamplesY÷MaxLumaSR,fR),其中MaxLumaSR是图片n的在表A-1中指定的值,其限制条件为图片n是经输出的图片且并非位流的经输出的最后图片。
c)PicSizeInSamplesY<=MaxLumaPS,其中MaxLumaPS指定于表A-1中。
d)pic_width_in_luma_samples<=Sqrt(MaxLumaPS*8)
e)pic_height_in_luma_samples<=Sqrt(MaxLumaPS*8)
f)sps_max_dec_pic_buffering[TargetDecHighestTid]<=MaxDpbSize,其中如以下内容所指定而导出MaxDpbSize:
如果(PicSizeInSamplesY<=(MaxLumaPS>>2))
则MaxDpbSize=Min(4*MaxDpbPicBuf,16)
否则如果(PicSizeInSamplesY<=(MaxLumaPS>>1))
则MaxDpbSize=Min(2*MaxDpbPicBuf,16)
否则如果(PicSizeInSamplesY<=(MaxLumaPS<<1)/3)
则MaxDpbSize=Min((3*MaxDpbPicBuf)>>1,16)
否则如果(PicSizeInSamplesY<=((3*MaxLumaPS)>>2))
则MaxDpbSize=Min((4*MaxDpbPicBuf)/3,16)
否则
MaxDpbSize=MaxDpbPicBuf
其中MaxLumaPS指定于表A-1中,且MaxDpbPicBuf等于6。
表A-1指定针对每一阶层的每一级别的限制。在子条款A.4.2中指定了表A-1的MinCR参数栏的使用。
位流与的相一致的阶层及级别应由语法元素general_tier_flag及general_level_idc指示如下。
-根据表A-1中的阶层约束规范,等于0的general_tier_flag指示与主阶层的一致性,且等于1的general_tier_flag指示与高阶层的一致性。对于级别4以下的级别,general_tier_flag应等于0(对应于表A-1中的标注有“-”的输入项)。表A-1中的不同于MaxBR及MaxCPB的级别限制对于主阶层及高阶层两者为共同的。
-general_level_idc应设定为等于表A-1中指定的级别数目的30倍的值。
如上文在项(f)中所指示,与指定级别处的设定档一致的位流服从sps_max_dec_pic_buffering[TargetDecHighestTid]<=MaxDpbSize的约束。可以在本发明中其它地方描述的方式来定义TargetDecHighestTid。相对比地,HEVC工作草案8对于项(f)指示:与指定级别处的设定档一致的位流服从sps_max_dec_pic_buffering[sps_max_temporal_layers_minus1]<=MaxDpbSize的约束。如本发明中其它地方所指示,可能未在级别限制方面恰当选择参数sps_max_dec_pic_buffering[i]。根据本发明的一或多项技术,用TargetDecHighestTid替换sps_max_temporal_layers_minus1来作为sps_max_dec_pic_buffering[i]的索引i可确保级别限制被始终如一地选择,其中i等于TargetDecHighestTid的清楚指定的值。
以此方式,HRD的解码过程可从SPS解码语法元素的阵列(例如,sps_max_dec_pic_buffering[]),其中阵列中的语法元素中的每一者指示HRD的DPB的最大所要求大小。此外,当装置执行HRD操作时,装置可基于目标最高时间识别符(例如,TargetDecHighestTid)确定阵列中的特定语法元素(例如,sps_max_dec_pic_buffering[TargetDecHighestTid])。此外,当特定语法元素的值大于最大DPB大小(例如,MaxDpbSize)时,装置可确定位流并不与视频译码标准一致。
此外,根据本发明的一或多个实例技术,HEVC工作草案8的章节A.4.2可如下作出改变。HEVC工作草案8的章节A.4.2描述针对主设定档的设定档特定级别限制。表A-2可保持与HEVC工作草案8中者相同。
与指定阶层及级别处的主设定档一致的位流应服从如在附录C中指定的对于位流一致性测试的以下约束:
a)图片中的切片的数目(其中dependent_slice_flag等于0或1)小于或等于MaxSlicesPerPicture,其中MaxSlicesPerPicture指定于表A-1中。
b)对于VCL HRD参数来说,对于SchedSelIdx的至少一值,BitRate[SchedSelIdx]<=cpbBrVclFactor*MaxBR且CpbSize[SchedSelIdx]<=cpbBrVclFactor*MaxCPB,其中cpbBrVclFactor指定于表A-2中,且BitRate[SchedSelIdx]及CpbSize[SchedSelIdx]被给定如下。
-如果vcl_hrd_parameters_present_flag等于1,则使用如在子条款C.1中所指定而选择的语法元素、分别通过等式E-45及E-46来给出BitRate[SchedSelIdx]及CpbSize[SchedSelIdx]。
-否则(vcl_hrd_parameters_present_flag等于0),如在子条款E.2.3中针对VCL HRD参数所指定而推断出BitRate[SchedSelIdx]及CpbSize[SchedSelIdx]。
在表A-l中分别以cpbBrVclFactor位/s及cpbBrVclFactor位为单位来指定MaxBR及MaxCPB。对于在0到cpb_cnt_minus1[TargetDecHighestTid]的范围内(包含0及cpb_cnt_minus1[TargetDecHighestTid])的SchedSelIdx的至少一值,位流应满足这些条件。
c)对于NAL HRD参数来说,对于SchedSelIdx的至少一值,BitRate[SchedSelIdx]<=cpbBrNalFactor*MaxBR且CpbSize[SchedSelIdx]<=cpbBrNalFactor*MaxCPB,其中cpbBrNalFactor指定于表A-2中,且BitRate[SchedSelIdx]及CpbSize[SchedSelIdx]被给定如下。
-如果nal_hrd_parameters_present_flag等于1,则使用如在子条款C.1中所指定而选择的语法元素、分别通过等式E-45及E-46来给出BitRate[SchedSelIdx]及CpbSize[SchedSelIdx]。
-否则(nal_hrd_parameters_present_flag等于0),如在子条款E.2.3中针对NAL HRD参数所指定而推断出BitRate[SchedSelIdx]及CpbSize[SchedSelIdx]。
在表A-1中分别以cpbBrNalFactor位/s及cpbBrNalFactor位为单位指定MaxBR及MaxCPB。对于在0到cpb_cnt_minus1[TargetDecHighestTid]的范围内(包含0及cpb_cnt_minus1[TargetDecHighestTid])的SchedSelIdx的至少一值,位流应满足这些条件。
d)存取单元0的NumBytesInNALunit变量的总和对于图片0的PicSizeInSamplesY的值小于或等于1.5*(Max(PicSizeInSamplesY,fR*MaxLumaSR)+MaxLumaSR*(tr(0)-tr,n(0)))÷MinCR,其中MaxLumaPR及MinCR是在表A-1中指定的应用到图片0的值。
e)存取单元n(其中n>0)的NumBytesInNALunit变量的总和小于或等于1.5*MaxLumaSR*(tr(n)-tr(n-1))÷MinCR,其中MaxLumaSR及MinCR是在表A-1中指定的应用到图片n的值。
f)对于级别5及较高级别,变量CtbSizeY应等于32或64。
g)NumPocTotalCurr的值应小于或等于8。
h)num_tile_columns_minus1的值应小于MaxTileCols,且num_tile_roWs_minus1应小于MaxTileRows,其中MaxTileCols及MaxTileRows是如表A-1中所指定。
如本发明中其它地方所指示,可能未在级别限制方面恰当选择参数cpb_cnt_minus1[i]。HEVC工作草案8指定:“对于在0到cpb_cnt_minus1的范围内(包含0及cpb_cnt_minus1)的SchedSelIdx的至少一值,位流应满足这些条件……”。根据本发明的一或多项技术,指定TargetDecHighestTid作为cpb_cnt_minus1[i]的索引i可确保级别限制被始终如一地选择,其中i等于TargetDecHighestTid的清楚指定的值。
此外,根据本发明的一或多项技术,HEVC工作草案8的附录C中的一般子条款C.1可经修改。HEVC工作草案8的子条款C.1的图C-1及C-2可保持与HEVC_WD8中者相同。HEVC工作草案8的子条款C.1的文字可做如下改变。
此附录指定假想参考解码器(HRD)及其检查位流与解码器一致性的用途。
两种类型的位流经受此规范的HRD一致性检查。称作类型I位流的第一类型的位流是仅含有位流中的所有存取单元的VCL NAL单元及具有等于FD_NUT的nal_unit_type的NAL单元(填充符数据NAL单元)的NAL单元流。称作类型II位流的第二类型的位流除位流中的所有存取单元的VCL NAL单元及填充符数据NAL单元外还含有以下内容中的至少一者:
-不同于填充符数据NAL单元的额外非VCL NAL单元,
-形成来自NAL单元流的字节流的所有leading_zero_8bits、zero_byte、start_code_prefix_one_3bytes及trailing_zero_8bits语法元素(如附录B中所指定)。
图C-1展示由HRD检查的位流一致性点的类型。
HRD要求的非VCL NAL单元的语法元素(或语法元素中的一些的默认值)在附录D及E条款7的语义子条款中指定。
使用两个类型的HRD参数(NAL HRD参数及VCL HRD参数)。经由视频参数集语法结构或经由如子条款E.1及E.2中指定的视频可用性信息来发信HRD参数,视频可用性信息是序列参数集语法结构的部分。
为了检查位流的一致性可需要多个测试。对于每一测试,以所列出的次序应用以下步骤:
1.选择表示为TargetOp的受测操作点。TargetOp由等于targetOpLayerIdSet的OpLayerIdSet及等于targetOpTid的OpTid来识别。targetOpLayerIdSet含有存在于与TargetOp相关联的位流子集中的nuh_reserved_zero_6bits的值的集合,且应是存在于受测位流中的nuh_reserved_zero_6bits的值的子集。targetOpTid等于存在于与TargetOp相关联的位流子集中的最大TemporalId,且应小于或等于存在于受测位流中的greatestTemporalId。
2.TargetDecLayerIdSet设定为targetOpLayerIdSet,TargetDecHighestTid设定为targetOpTid,且BitstreamToDecode设定为如子条款10.1中所指定的子位流提取过程的输出,其中TargetDecHighestTid及TargetDecLayerIdSet作为输入。
3.选择适用于TargetOp的hrd_parameters()语法结构及sub_layer_hrd_parameters()语法结构。如果TargetDecLayerIdSet仅含有值0,则选择有效的序列参数集中的hrd_parameters()语法结构。否则,选择满足以下条件的hrd_parameters()语法结构:其是在有效的参数集中(或经由外部装置提供)且对于在0到op_num_layer_id_values_minus1[opIdx]的范围内(包含0及op_num_layer_id_values_minus1[opIdx])的i,由op_layer_id[opIdx][i]指定的值的集合等同于TargetDecLayerIdSet。在所选择hrd_parameters()语法结构内,如果BitstreamToDecode是类型I位流,则选择紧跟在条件“if(vcl_hrd_parameters_present_flag)”之后的sub_layer_hrd_parameters(TargetDecHighestTid)语法结构(在此状况下,变量NalHrdModeFlag设定为等于0),否则(BitstreamToDecode是类型II位流),选择紧跟在条件“if(vcl_hrd_parameters_present_flag)”(在此状况下,变量NalHrdModeFlag设定为等于0)抑或条件“if(nal_hrd_parametrrs_present_flag)”(在此状况下,变量NalHrdModeFlag设定为等于1)之后的sub_layer_hrd_parameters(TargetDecHighestTid)语法结构,且在前一状况下从BitstreamToDecode舍弃除填充符数据NAL单元外的所有非VCL NAL单元,且将结果指派到Bitstream ToDecode。
4.选择与适用于TargetOp的缓冲周期SEI消息相关联的存取单元作为HRD初始化点,且将其称作存取单元0。
5.选择包含时序信息的SEI消息。选择缓冲周期SEI消息,所述SEI消息在存取单元0中经译码且应用到如由applicable_operation_points()语法结构所指示的TargetOp。对于从存取单元0开始的BitstreamToDecode的每一存取单元,选择与存取单元相关联且应用到如由applicable_operation_points()语法结构指示的TargetOp的图片时序SEI消息,且在SubPicCpbFlag等于1且sub_pic_cpb_params_in_pic_timing_sei_flag等于0时,选择与存取单元中的解码单元相关联且应用到如由applicable_operation_points()语法结构指示的TargetOp的子图片时序SEI消息。
6.选择SchedSelIdx的值。所选择的SchedSelIdx应在0到cpb_cnt_minus1[TargetDecHighestTid]的范围内(包含0及cpb_cnt_minus1[TargetDecHighestTid]),其中可在如上文所选择的sub_layer_hrd_parameters(TargetDecHighestTid)语法结构中找到cpb_cnt_minus1[TargetDecHighestTid]。
7.选择初始CPB移除延迟及延迟偏移,且可从BitstreamToDecode舍弃与存取单元0相关联的TFD存取单元。如果存取单元0中的经译码图片具有等于CRA_NUT或BLA_W_LP的nal_unit_type,且所选择缓冲周期SEI消息中的rap_cpb_paarams_present_flag等于1,则选择由对应于NalHrdModeFlag的initial_cpb_removal_delay[SchedSelIdx]及initial_cpb_removal_delay_offset[SchedSelIdx]表示的默认初始CPB移除延迟及延迟偏移(在此状况下,变量DefaultInitCpbParamsFlag被设定为等于1)抑或由对应于NalHrdModeFlag的initial_alt_cpb_removal_delay[SchedSelIdx]及initial_alt_cpb_removal_delay_offset[SchedSelIdx]表示的替代性初始CPB移除延迟及延迟偏移(在此状况下,变量DefaultInitCpbParamsFlag被设定为等于0),且在后一状况下从BitstreamToDecode舍弃与存取单元0相关联的TFD存取单元,且将结果指派到BitstreamToDecode。否则,选择默认初始CPB移除延迟及延迟偏移(在此状况下,变量DefaultInitCpbParamsFlag被设定为等于1)。
所进行的位流一致性测试的数目等于N1*N2*N3*(N4*2+N5),其中N1、N2、N3、N4及N5的值被指定如下。
-N1系受测位流中所含有的操作点的数目。
-如果BitstreamToDecode是类型I位流,则N2等于1,否则(BitstreamToDecode是类型II位流),N2等于2。
-N3等于cpb_cnt_minus1[TargetDecHighestTid]+1。
-N4是与适用于BitstreamToDecode中的TargetOp的缓冲周期SEI消息相关联的存取单元的数目,其中这些存取单元中的每一者中的经译码图片具有等于CRA_NUT或BLA_W_LP的nal_unit_type,且适用于TargetOp的相关联缓冲周期SEI消息具有等于1的rap_cpb_params_present_flag。
-N5是与适用于BitstreamToDecode中的TargetOp的缓冲周期SEI消息相关联的存取单元的数目,其中这些存取单元中的每一者中的经译码图片具有不等于CRA_NUT及BLA_W_LP中的一者的nal_unit_type,或适用于TargetOp的相关联缓冲周期SEI消息具有等于0的rap_cpb_params_present_flag。
当BitstreamToDecode是类型II位流时,如果选择紧跟在条件“if(vcl_hrd_parameters_present_flag)”之后的sub_layer_hrd_parameters(TargetDecHighestTid)语法结构,则测试在展示于图C-1中的类型I一致性点处进行,且针对输入位速率及CPB存储仅计数VCL及填充符数据NAL单元;否则选择紧跟在条件“if(nal_hrd_parameters_present_flag)”之后的(sub_layer_hrd_parameters(TargetDecHighestTid)语法结构,测试在展示于图C-1中的类型II一致性点处进行,且针对输入位速率及CPB存储计数(类型II NAL单元流的)所有NAL单元或(字节流的)所有字节。
注释3-对于VBR状况(cbr_flag[SchedSelIdx]等于0)下的InitCpbRemovalDelay[SchedSelIdx]、BitRate[SchedSelIdx]及CpbSize[SchedSelIdx]的相同值,通过展示于图C-1中的类型II一致性点的SchedSelIdx的值建立的NAL HRD参数足以还建立展示于图C-1中的类型I一致性点的VCL HRD一致性。这是因为到类型I一致性点中的数据流是到类型II一致性点中的数据流的子集,且因为对于VBR状况来说CPB被允许变为空的且保持为空直到下一图片经调度以开始到达的时间为止。举例来说,当使用指定于条款2到9中的解码过程解码与指定于附录A中的设定档中的一或多者一致的经译码视频序列时,当对于类型II一致性点提供不仅属于子条款A.4.2的项c)中为了设定档一致性而对NAL HRD参数设定的界限内而且属于子条款A.4.2的项b)中为了设定档致一性而对VCL HRD参数设定的界限内的NAL HRD参数时,也确保类型I一致性点的VCL HRD的一致性属于子条款A.4.2的项b)的界限内。
在VCL NAL单元以及对应缓冲周期及图片时序SEI消息中涉及的所有视频参数集、序列参数集及图片参数集应在位流中(通过非VCL NAL单元)抑或通过在此规范中未指定的其它装置以及时方式传递到HRD。
在附录C、D及E中,当非VCL NAL单元(或所述NAL单元中的仅一些)通过未由此规范指定的其它装置传递到解码器(或到HRD)时,那些NAL单元的“存在”的规范也被满足。为了对位进行计数,仅计数实际存在于位流中的适当位。
注释1-作为实例,通过如果编码器决定在位流中传递非VCL NAL单元则指示位流中的两个点(非VCL NAL单元将在所述两个点间存在于位流中),可实现透过不同于在位流中的存在的手段传递的非VCL NAL单元与存在于位流中的NAL单元的同步。
当透过不同于在位流内的存在的某手段传递非VCL NAL单元的内容以供应用时,不要求非VCLNAL单元的内容的表示来使用与此规范中指定的语法相同的语法。
注释2-当在位流内含有HRD信息时,有可能仅基于位流内所含有的信息来验证位流与此子条款的要求的一致性。当HRD信息并非存在于位流中时,如对于所有“独立”类型I位流的状况,可仅在通过此规范中未指定的某其它手段供应了HRD数据时验证一致性。
HRD含有经译码图片缓冲器(CPB)、瞬时解码过程、经解码图片缓冲器(DPB)及如图C-2中所展示的输出裁切。
对于每一位流一致性测试,CPB大小(位的数目)是如由等式E-46指定的CpbSize[SchedSelIdx],其中SchedSelIdx及HRD参数是如此子条款中上文所指定而经选择。DPB大小(图片存储缓冲器的数目)是sps_max_dec_pic_buffering[TargetDecHighestTid]。
变量SubPicCpbPreferredFlag由外部装置指定,抑或在未由外部装置指定时设定为0。
变量SubPicCpbFlag被导出如下:
SubPicCpbFlag=SubPicCpbPreferredFlag&&
sub_pic_cpb_params_present_flag(C-1)
如果SubPicCpbFlag等于0,则CPB于存取单元级别操作,且每一解码单元是存取单元。否则,CPB于子图片级别操作,且每一解码单元是存取单元的子集。
HRD如下操作。与根据指定的到达调度流入CPB中的解码单元相关联的数据是由HSS来递送。在解码单元的CPB移除时间通过瞬时解码过程瞬时地移除并解码与每一解码单元相关联的数据。每一经解码图片被放置于DPB中。如子条款C.3.1或子条款C.5.2中所指定从DPB移除经解码图片。
在子条款C.2中指定了CPB的针对每一位流一致性测试的操作。在条款2到9中指定了瞬时解码器操作。在子条款C.3中指定了DPB的针对每一位流一致性测试的操作。在子条款C.3.2及子条款C.5.2中指定了用于每一位流一致性测试的输出裁切。
与列举的递送调度的数目及其相关联位速率及缓冲器大小相关的HSS及HRD信息被指定于子条款E.1.1、E.1.2、E.2.1及E.2.2中。如在子条款D.1.1及D.2.1中指定的缓冲周期SEI消息所指定来初始化HRD。解码单元从CPB的移除时序及解码图片从DPB的输出时序被指定于如子条款D.1.2及D.2.1中所指定的图片时序SEI消息中。与特定解码单元相关的所有时序信息应在所述解码单元的CPB移除时间之前到达。
对位流一致性的要求指定于子条款C.4中,且如子条款C.5中所指定,将HRD用以检查解码器的一致性。
注释3-虽然在假定用以产生位流的所有图片速率及时钟与在位流中发信的值准确匹配的情况下保证一致性,但在真实系统中,这些图片速率及时钟中的每一者可不同于经发信或指定的值。
此附录中的所有算术以实值进行,使得不可传播舍入误差。举例来说,恰在解码单元的移除之前或之后的CPB中的位数目不一定为整数。
变量tc被如下导出且被称作时钟刻度(tick):
tc=num_units_in_tick÷time_scale (C-1)
变量tc_sub被如下导出且被称作子图片时钟刻度:
tc_sub=tc÷(tick_divisor_minus2+2) (C-2)
在此附录中为了表达约束而指定以下内容:
-使存取单元n是解码次序上的第n个存取单元,其中第一存取单元是存取单元0(即,第0个存取单元)。
-使图片n是存取单元n的经译码图片或经解码图片。
-使解码单元m是解码次序上的第m个解码单元,其中第一解码单元是解码单元0。
上文对HEVC工作草案8的章节C.1的修改可阐明位流一致性测试。如上文所指示,当为了HEVC工作草案8中的位流一致性测试调用解码过程时,因为TargetDecLayerIdSet及TargetDecHighestTid的值未被恰当设定,故语法元素的语义并未被清楚地指定。对章节C.1的修改阐明了TargetDecLayerIdSet及TargetDecHighestTid的定义。
如在上文对HEVC工作草案8的章节C.1的修改中所展示,装置可执行HRD操作(例如,位流一致性测试),所述HRD操作选择操作点,确定操作点的层识别符的目标集合(TargetDecLayerIdSet)及最高时间识别符(TargetDecHighestTid)。此外,在HRD操作中,装置可选择适用于操作点的HRD参数的集合,且使用HRD参数的所选择集合来配置执行解码过程的HRD。适用于特定操作点的HRD参数的集合可包含指定初始CPB移除延迟、CPB大小、位速率、初始DPB输出延迟、DPB大小等等的参数。HRD操作可包含执行解码过程。
在一些实例中,装置可从VPS中的HRD参数的一或多个集合(例如,hrd_parameters()语法结构)及SPS中的HRD参数的集合中选择适用于操作点的HRD参数的集合。在一些实例中,当特定操作点的层识别符集合含有存在于与SPS相关联的经译码视频序列中的所有层识别符的集合时,装置可确定SPS中的HRD参数的集合适用于所述操作点。此外,在一些实例中,装置可响应于确定操作点的目标层识别符集合(例如,TargetDecLayerIdSet)仅含有值0而选择SPS中的HRD参数的集合。在一些实例中,装置可响应于确定层识别符的集合(例如,op_layer_id[][])等同于操作点的目标层识别符集合(例如,TargetDecLayerIdSet)而选择VPS中的HRD参数的集合。
此外,如在上文对HEVC工作草案8的章节C.1的修改及本发明的其它部分中所展示,装置可从SPS解码语法元素的阵列(sps_max_dec_pic_buffering[]),所述语法元素各自指示HRD的DPB的最大所要求大小。装置可基于目标最高时间识别符而确定阵列中的特定语法元素(即,sps_max_dec_pic_buffering[TargetDecHighestTid])。如上文所指示,DPB中的图片存储缓冲器的数目由特定语法元素来指示(即,DPB大小(图片存储缓冲器的数目)是sps_max_dec_pic_buffering[TargetDecHighestTid])。
此外,解码过程可解码包含HRD参数的所选择集合的HRD参数语法结构(hrd_parameters())。HRD参数的所选择集合包含语法元素的阵列(cbp_cnt_minus1[]),所述语法元素各自指示位流中的替代性CPB规范的数目。对HEVC工作草案8的章节C.1的修改阐明了当装置执行HRD操作时,装置可基于目标最高时间识别符(TargetDecHighestTid)来选择阵列中的特定语法元素(cpb_cnt_minus1[TargetDecHighestTid]),且可在0到特定语法元素的值的范围内选择调度器选择索引(SchedSelIdx)。装置可至少部分基于所述调度器选择索引来确定HRD的CPB的初始CPB移除延迟。
HEVC工作草案8的章节C.2.1是关于为了位流一致性从DPB移除图片。根据本发明的一或多个实例技术,HEVC工作草案8的章节C.2.1可如下作出改变:
此子条款中的规范独立地应用到DPB参数的如子条款C.1中所指定而选择的每一集合。
在解码当前图片之前(但在剖析当前图片的第一切片的切片标头之后)从DPB移除图片瞬时地发生于存取单元n(含有当前图片)的第一解码单元的CPB移除时间,且如下继续进行。
调用如子条款8.3.2中指定的针对参考图片集的解码过程。
如果当前图片是IDR或BLA图片,则以下情形适用:
1.在IDR或BLA图片并非经解码的第一图片且从有效的序列参数集导出的pic_width_in_luma_samples或pic_height_in_luma_samples或sps_max_dec_pic_buffering[TargetDecHighestTid]的值分别不同于从针对前一图片是有效的序列参数集导出的pic_width_in_luma_samples或pic_height_in_luma_samples或sps_max_dec_pic_buffering[TargetDecHighestTid]的值时,无论no_output_of_prior_pics_flag的实际值如何,HRD将no_output_of_prior_pics_flag推断为等于1。
注释-就pic_width_in_luma_samples、pic_height_in_luma_samples或sps_max_dec_pic_buffering[TargetDecHighestTid]的改变来说,解码器实施方案应试图比HRD更得体地处置图片或DPB大小改变。
2.当no_output_of_prior_pics_flag等于1或被推断为等于1时,DPB中的所有图片存储缓冲器被清空而不输出其含有的图片,且DPB饱和度被设定为0。
从DPB中移除以下两条件皆为真的所有图片k:
-图片k被标注为“不用于参考”,
-图片k具有等于0的PicOutputFlag,或其DPB输出时间小于或等于当前图片n的第一解码单元(表示为解码单元m)的CPB移除时间;即,to,dpb(k)<=tr(m)
当从DPB移除一图片时,DPB饱和度被递减1。
如本发明中其它地方所指示,在HRD操作中可能未恰当选择参数sps_max_dec_pic_buffering[i]。如上文所展示,HEVC工作草案8仅指示sps_max_dec_pic_buffering[i]而非sps_max_dec_pic_buffering[TargetDecHighestTid]。HEVC工作草案8并不指示在章节C.2.1中的索引i的语义。根据本发明的一或多项技术,将TargetDecHighestTid指定为sps_max_dec_pic_buffering[i]的索引i可确保在执行从DPB移除图片的HRD操作时在sps_max_dec_pic_buffering[i]中使用等于TargetDecHighestTid的清楚指定的值的i。
如上文对HEVC工作草案8的章节C.2.1的修改中所展示,装置可从对于当前图片是有效的SPS解码语法元素的第一阵列(sps_max_dec_pic_buffering[]),所述语法元素各自指示HRD的DPB的最大所要求大小。此外,装置可从对于前一图片是有效的SPS解码语法元素的第二阵列(sps_max_dec_pic_buffering[]),所述语法元素各自指示HRD的DPB的最大所要求大小。装置可基于目标最高时间识别符(TargetDecHighestTid)确定第一阵列中的第一语法元素(sps_max_dec_pic_buffering[TargetDecHighestTid])。此外,装置可基于目标最高时间识别符确定第二阵列中的第二语法元素(sps_max_dec_pic_buffering[TargetDecHighestTid])。在当前图片是瞬时解码刷新(IDR)图片或断链存取(BLA)图片且第一语法元素的值不同于第二语法元素的值时,装置可推断出第三语法元素(no_output_of_prior_pics_flag)的值而无关于由第三语法元素指示的值。第三语法元素可指定在解码IDR图片或BLA图片之后如何处理DPB中的先前解码的图片。
IDR图片可为每一切片区段具有等于IDR_W_LP或IDR_N_LP的nal_unit_type的随机存取点(RAP)图片。IDR图片仅含有I切片,且可为位流中的在解码次序上的第一图片,或可出现于位流中的稍后处。具有等于IDR_N_LP的nal_unit_type的IDR图片并不具有存在于位流中的相关联前置图片。前置图片是在输出次序上先于相关联RAP图片的图片。具有等于IDR_W_LP的nal_unit_type的IDR图片并不具有存在于位流中的相关联的标记为舍弃(TFD)图片,但可具有在位流中的相关联DLP图片。
BLA图片是每一切片片段具有等于BLA_W_TFD、BLA_W_DLP或BLA_N_LP的nal_unit_type的RAP图片。具有等于BLA_W_TFD的nal_unit_type的BLA图片可具有存在于位流中的相关联TFD图片。具有等于BLA_N_LP的nal_unit_type的BLA图片并不具有存在于位流中的相关联前置图片。具有等于BLA_W_DLP的nal_unit_type的BLA图片并不具有存在于位流中的相关联TFD图片,但可具有在位流中的相关联DLP图片。
HEVC工作草案8的章节C.3描述位流一致性操作。根据本发明的一或多个实例技术,HEVC工作草案8的章节C.3可进行如下修改:
与此规范一致的经译码数据的位流应达到此子条款中指定的所有要求。
应根据在此附录外的在此规范中指定的语法、语义及约束来建构位流。
位流中的第一经译码图片应是RAP图片,即IDR图片、CRA图片或BLA图片。
对于经解码的每一当前图片,使变量maxPicOrderCnt及minPicOrderCnt分别设定为等于以下图片的PicOrderCntVal值的最大值及最小值:
-当前图片。
-具有等于0的TemporalId的按解码次序的先前图片。
-当前图片的参考图片集中的短期参考图片。
-具有等于1的PicOutputFlag且tr(n)<tr(currPic)且to,dpb(n)>=tr(currPic)的所有图片n,其中currPic是当前图片。
应针对位流一致性测试中的每一者而达到所有以下条件:
1.对于与缓冲周期SEI消息相关联的每一存取单元n(其中n>0),其中Δtg,90(n)由下式指定
Δtg,90(n)=90000*(tr,n(n)-taf(n-1))(C-18)
InitCpbRemovalDelay[SchedSelIdx]的值应受如下约束。
-如果cbr_flag[SchedSelIdx]等于0,
则InitCpbRemovalDelay[SchedSelIdx]<=Ceil(Δtg,90(n)) (C-19)
-否则(cbr_flag[SchedSelIdx]等于1),
Floor(Δtg,90(n))<=InitCpbRemovalDelay[SchedSelIdx]<=Ceil(Δtg,90(n)) (C-20)
注释4-在每一图片的移除时间CPB中的位的准确数目可取决于选择哪一缓冲周期SEI消息来初始化HRD。编码器必须将此情形考虑在内以确保所有所指定的约束必须被服从而无关于选择哪一缓冲周期SEI消息来初始化HRD,这是由于可在缓冲周期SEI消息的任一者处初始化HRD。
2.将CPB溢位指定为CPB中的位的总数大于CPB大小的条件。CPB应从不溢位。
3.将CPB欠位指定为对于m的至少一值,解码单元m的标称CPB移除时间tr,n(m)小于解码单元m的最终CPB到达时间taf(m)的条件。当low_delay_hrd_flag等于0时,CPB应从不欠位。
4.当low_delay_hrd_flag等于1时,CPB欠位可发生于解码单元m处。在此状况下,含有解码单元m的存取单元n的最终CPB到达时间taf(n)应大于含有解码单元m的存取单元n的标称CPB移除时间tr,n(n)。
5.图片的从CPB的标称移除时间(从解码次序上的第二图片开始)应满足在子条款A.4.1到A.4.2中表达的对tr,n(n)及tr(n)的约束。
6.对于经解码的每一当前图片,在调用如子条款C.3.1中指定的从DPB移除图片的过程之后,包含经标注为“用于参考”或具有等于1的PicOutputFlag且to,dpb(n)>=tr(currPic)(其中currPic是当前图片)的所有图片n的DPB中的经解码图片的数目应小于或等于Max(0,sps_max_dec_pic_buffering[TargetDecHighestTid]-1)。
7.所有参考图片在需要用于预测时应存在于DPB中。具有等于1的OutputFlag的每一图片在其DPB输出时间处应存在于DPB中,除非所述图片在其输出时间之前由指定于子条款C.3中的过程中的一者从DPB移除。
8.对于经解码的每一当前图片,maxPicOrderCnt-minPicOrderCnt的值应小于MaxPicOrderCntLsb/2。
9.是图片的输出时间与在输出次序上在所述图片之后且具有等于1的PicOutputFlag的第一图片的输出时间之间的差的如由等式C-17给出的Δto,dpb(n)的值应满足针对位流中的使用在条款2到9中指定的解码过程指定的设定档、阶层及级别的在子条款A.4.1中表达的约束。
如本发明中其它地方所指示,在位流一致性操作中可能未恰当选择参数sps_max_dec_pic_buffering[i]。在章节C.3的项6中,HEVC工作草案8指示“DPB中的经解码图片的数目……应小于或等于Min(0,sps_max_dec_pic_buffering[TemporalId]-1)”,其中未定义TemporalId。根据本发明的一或多项技术,将TargetDecHighestTid指定为sps_max_dec_pic_buffering[i]的索引i可确保在执行位流一致性操作时在sps_max_dec_pic_buffering[i]中使用等于TargetDecHighestTid的清楚指定的值的i。
当装置执行作为HRD操作的部分的解码过程时,装置可从SPS解码语法元素的阵列(sps_max_dec_pic_buffering[]),所述语法元素各自指示HRD的DPB的最大所要求大小。此外,作为执行HRD操作的部分,装置可基于目标最高时间识别符(TargetDecHighestTid)确定阵列中的特定语法元素。此外,如在上文对HEVC工作草案8的章节C.3的修改中所展示,装置可至少部分基于DPB中的经解码图片的数目是否小于或等于0与特定语法元素减去1的值的最大值而确定位流是否与视频译码标准一致。
HEVC工作草案8的章节C.4描述解码器一致性。根据本发明的一或多个实例技术,HEVC工作草案8的章节C.4可做如下改变:
与此规范一致的解码器应达到此子条款中指定的所有要求。
声称与特定设定档、阶层及级别的一致性的解码器应能够以指定于附录A中的方式成功解码与指定于子条款C.4中的位流一致性要求一致的所有位流,其限制条件为VCLNAL单元以及适当缓冲周期及图片时序SEI消息中涉及的所有视频参数集、序列参数集及图片参数集被以实时方式在位流中(通过非VCL NAL单元)抑或通过此规范中未指定的外部装置传递到解码器。
当位流含有数个具有指定为保留的值的语法元素且指定了解码器应忽略所述语法元素的值或含有所述具有保留值的语法元素的NAL单元且位流在其它方面与此规范一致时,一致的解码器应以与解码器将解码一致的位流的方式相同的方式解码位流,且如指定地忽略语法元素的值或含有所述具有保留值的语法元素的NAL单元。
存在可由解码器声称的两种类型的一致性:输出时序一致性及输出次序一致性。
为了检查解码器的一致性,通过假想流调度器(HSS)将与所声称设定档、阶层及级别(如由子条款C.4所指定)一致的测试位流递送到HRD及受测解码器(DUT)两者。由HRD输出的所有图片也应由DUT输出,且对于HRD输出的每一图片,由DUT针对对应图片输出的所有样本的值应等于由HRD输出的样本的值。
对于输出时序解码器一致性,HSS如上文所描述操作,具有仅选从位速率及CPB大小对于所指定设定档、阶层及级别如附录A中所指定地受到限制的SchedSelIdx的值的子集的递送调度,或具有位速率及CPB大小如附录A中所指定地受到限制的如下文所指定的“经内插”递送调度。将同一递送调度用于HRD及DUT两者。
当存在cpb_cnt_minus1[TargetDecHighestTid]大于0的HRD参数及缓冲周期SEI消息时,解码器应能够如下解码如从使用被指定为具有峰值位速率r、CPB大小c(r)及初始CPB移除延迟(f(r)÷r)的“内插”递送调度操作的HSS递送的位流:
α=(r-BitRate[SchedSelIdx-1])÷(BitRate[SchedSelIdx]-BitRate[SchedSelIdx-1]), (C-22)
c(r)=α*CpbSize[SchedSelIdx]+(1-α)*CpbSize[SchedSelIdx-1], (C-23)
f(r)=α*InitCpbRemovalDelay[SchedSelIdx]*BitRate[SchedSelIdx]+(1-α)*InitCpbRemovalDelay[SchedSelIdx-1]*BitRate[SchedSelIdx-1] (C-24)
对于任何SchedSelIdx>0及r,使得BitRate[SchedSelIdx-1]<=r<=BitRate[SchedSelIdx],使得r及c(r)是在如附录A中对于所指定的设定档、阶层及级别的最大位速率及缓冲器大小所指定的限制内。
注释l-InitCpbRemovalDelay[SchedSelIdx]在缓冲周期之间可不同,且必须被重新计算。
对于输出时序解码器一致性,使用如上文所描述的HRD,且直到固定延迟,图片输出的时序(相对于第一位的递送时间)对于HRD及DUT两者为相同的。
对于输出次序解码器一致性,以下情形适用。
-HSS“按来自DUT的命令”将位流BitstreamToDecode递送到DUT,从而意谓HSS仅在DUT需要更多位以继续其处理时才递送位(以解码次序)。
注释2-此情形意谓,对于此测试,DUT的经译码图片缓冲器可小达最大解码单元的大小。
-使用如下文所描述的经修改HRD,且HSS通过指定于位流Bitstream To Decode中的调度中的一者将位流递送到HRD,使得位速率及CPB大小如附录A中所指定而受到限制。图片输出的次序对于HRD及DUT两者应是相同的。
-对于输出次序解码器一致性,CPB大小是如由等式E-46指定的CpbSize[SchedSelIdx],其中SchedSelIdx及HRD参数是如上文在子条款C.1中所指定而经选择。DPB大小是sps_max_dec_pic_buffering[TargetDecHighestTid]。用于HRD的从CPB的移除时间等于最终位到达时间,且解码是立即的。此HRD的DPB的操作是如子条款C.5.1到C.5.3中所描述。
如本发明中其它地方所指示,在解码器一致性要求中可能未恰当选择参数cpb_cnt_minus1[i]及sps_max_dec_pic_buffering[i]。举例来说,HEVC工作草案8的章节C.4并未指定cpb_cnt_minus1的索引。根据本发明的一或多项技术,指定TargetDecHighestTid为cpb_cnt_minus1[i]及sps_max_dec_pic_buffering[i]的索引i可确保解码器一致性操作被始终如一地执行,其中i等于TargetDecHighestTid的清楚指定的值。
此外,HEVC工作草案8的章节C.4.2描述为了解码器一致性从DPB移除图片。根据本发明的一或多个实例技术,章节C.4.2的标题可从“从DPB移除图片”改变到“从DPB输出及移除图片”。HEVC工作草案8的章节C.4.2的文字可做如下改变:
在解码当前图片之前(但在剖析当前图片的第一切片的切片标头之后)从DPB输出及移除图片瞬时地发生于从CPB移除含有当前图片的存取单元的第一解码单元时,且如下继续进行。
调用如子条款8.3.2中指定的针对参考图片集的解码过程。
-如果当前图片是IDR或BLA图片,则以下情形适用。
1.在IDR或BLA图片并非经解码的第一图片,且从有效的序列参数集导出的pic_width_in_luma_samples或pic_height_in_luma_samples或sps_max_dec_pic_buffering[TargetDecHighestTid]的值分别不同于从针对前一图片是有效的序列参数集导出的pic_width_in_luma_samples或pic_height_in_luma_samples或sps_max_dec_pic_buffering[TargetDecHighestTid]的值时,HRD将no_output_of_prior_pics_flag推断为等于1而无关于no_output_of_prior_pics_flag的实际值。
注释-就pic_width_in_luma_samples、pic_height_in_luma_samples或sps_max_dec_pic_buffering[TargetDecHighestTid]的改变来说,解码器实施方案应试图比HRD更得体地处置图片或DPB大小改变。
2.当no_output_of_prior_pics_flag等于1或被推断为等于1时,DPB中的所有图片存储缓冲器被清空而不输出其含有的图片。
3.当no_output_of_prior_pics_flag不等于1且并未被推断为等于1时,含有标注为“不需要用于输出”及“未用于参考”的图片的图片存储缓冲器被清空(无输出),且通过重复地调用指定于子条款C.5.2.1中的“提升”过程来清空DPB中的所有非空图片存储缓冲器。
-否则(当前图片并非IDR或BLA图片),含有标注为“不需要用于输出”及“不用于参考”的图片的图片存储缓冲器被清空(无输出)。当以下条件中的一或多者为真时,指定于子条款C.5.2.1中的“提升”过程被重复调用,直到存在用以存储当前经解码图片的空图片存储缓冲器。
1.DPB中标注为“需要用于输出”的图片的数目大于sps_max_num_reorder_pics[TargetDecHighestTid]。
2.DPB中的图片的数目等于sps_max_dec_pic_buffering[TargetDecHighestTid]。
“提升”过程
在以下状况下调用“提升”过程。
-如子条款C.5.2中所指定,当前图片是IDR或BLA图片,且no_output_of_prior_pics_flag不等于1且不被推断为等于1。
-如子条款C.5.2中所指定,当前图片并非IDR或BLA图片,且DPB中标注为“需要用于输出”的图片的数目大于sps_max_num_reorder_pics[TargetDecHighestTid]。
-如子条款C.5.2中所指定,当前图片并非IDR或BLA图片,且DPB中图片的数目等于sps_max_dec_pic_buffering[TargetDecHighestTid]。
“提升”过程由以下经排序的步骤组成:
1.第一个输出的图片经选择为DPB中标注为“需要用于输出”的所有图片中的具有PicOrderCntVal的最小值的图片。
2.使用指定于图片的有效的序列参数集中的裁切矩形来裁切图片,经裁切的图片被输出,且所述图片被标注为“不需要用于输出”。
3.如果包含经裁切且输出的图片的图片存储缓冲器含有标注为“不用于参考”的图片,则清空图片存储缓冲器。
如本发明中其它地方所指示,可能未在HRD操作(例如,从DPB移除图片)中恰当选择参数sps_max_dec_pic_buffering[i]及sps_max_num_reorder_pics[i]。根据本发明的一或多项技术,将TargetDecHighestTid指定为sps_max_dec_pic_buffering[i]及sps_max_num_reorder_pics[i]的索引i可确保在执行从DPB移除图片的HRD操作时在sps_max_dec_pic_buffering[i]及sps_max_num_reorder_pics[i]中使用等于TargetDecHighestTid的清楚指定的值的i。
当装置在HRD操作期间执行解码过程时,装置可从SPS解码语法元素的阵列(sps_max_dec_pic_buffering[]),所述语法元素各自指示HRD的DPB的最大所要求大小。此外,当装置执行HRD操作时,装置可基于目标最高时间识别符确定阵列中的特定语法元素(sps_max_dec_pic_buffering[TargetDecHighestTid])。此外,在当前图片并非IDR图片或BLA图片且DPB中标注为需要用于输出的图片的数目大于特定语法元素的值时,装置可执行清空DPB的一或多个图片存储缓冲器的提升过程。
类似地,当装置在HRD操作期间执行解码过程时,装置可从SPS解码语法元素的阵列(sps_max_dec_pic_buffering[]),所述语法元素各自指示HRD的DPB的最大所要求大小。此外,当装置执行HRD操作时,装置可基于目标最高时间识别符确定阵列中的特定语法元素(sps_max_dec_pic_buffering[TargetDecHighestTid])。此外,在当前图片并非IDR图片或BLA图片且DPB中图片的数目等于特定语法元素指示的数目时,装置可执行清空DPB的一或多个图片存储缓冲器的提升过程。
此外,根据本发明的一或多项技术,applicable_operation_points()语法结构及相关联语义可被添加到HEVC工作草案8。以下表5展示applicable_operation_points()语法结构的实例语法。
表5-适用操作点
展示于表5中的applicable_operation_point()语法结构指定与此语法结构相关联的SEI消息应用到的操作点。与applicable_operation_point()语法结构相关联的SEI消息(也被称作相关联SEI消息)是含有applicable_operation_point()语法结构的SEI消息。与applicable_operation_point()语法结构相关联的SEI消息可为缓冲周期SEI消息、图片时序SEI消息或子图片时序SEI消息。
默认操作点可被定义为由含有值0到nuh_reserved_zero_6bits(包含0及nuh_reserved_zero_6bits)的OpLayerIdSet识别的操作点,其中在含有相关联SEI消息的SEI_NAL单元的NAL单元标头中译码nuh_reserved_zero_6bits,且OpTid等于含有相关联SEI消息的SEI NAL单元的TemporalId值。替代性地,默认操作点可被定义为由仅含有SEI NAL单元的NAL单元标头中的nuh_reserved_zero_6bits的OpLayerIdSet识别的操作点,所述SEI NAL单元含有相关联SEI消息,且OpTid等于含有相关联SEI消息的SEI NAL单元的TemporalId值。替代性地,默认操作点可被定义为由仅含有值0的OpLayerIdSet识别的操作点,且OpTid等于含有相关联SEI消息的SEI NAL单元的TemporalId值。
如果default_op_applicable_flag等于1,则相关联SEI消息应用到的操作点是默认操作点,且num_applicable_ops_minus1操作点由如由operation_point_layer_ids(i)指定的OpLayerIdSet及等于op_temporal_id[i]的OpTid识别,其中i是在0到num_applicable_ops_minus1的范围内(包含0及num_applicable_ops_minus1)。否则(default_op_applicable_flag等于0),相关联SEI消息应用到的操作点可为由如由operation_point_layer_ids(i)指定的OpLayerIdSet及等于op_temporal_id[i]的OpTid识别的num_applicable_ops_minus1+1操作点,其中i是在0到num_applicable_ops_minus1+1的范围内(包含0及num_applicable_ops_minus1+1)。
此外,在表5的实例语法中,num_applicable_ops_minus1语法元素加1指定相关联SEI消息应用到的操作点的数目。num_applicable_ops_minus1的值可为在0到63的范围内(包含0及63)。在表5的实例中,等于1的default_op_applicable_flag语法元素指定相关联SEI消息应用到默认操作点。等于0的default_op_applicable_flag语法元素指定相关联SEI消息并不应用到默认操作点。op_temporal_id[i]语法元素指定在applicable_operation_point()语法结构中明确发信的第i个OpTid值。op_temporal_id[i]的值可为在0到6的范围内(包含0及6)。
如上文所指示,HEVC工作草案8不提供使缓冲周期SEI消息或图片时序SEI消息关联到hrd_parameters()语法结构的任何方式,对于所述hrd_parameters()语法结构,相关联的operation_point_layer_ids()语法结构包含nuh_reserved_zero_6bits的多个值(即,HEVC的多视图、3DV或可缩放视频译码扩展中的多个层ID)。包含applicable_operation_point()语法结构可至少部分解决此问题。applicable_operation_point()语法结构可清楚地指定缓冲周期SEI消息、图片时序SEI消息或子图片时序SEI消息应用到的操作点。此情形可允许使用携载于SEL NAL单元的NAL单元标头中的语法元素nuh_reserved_zero_6bits及temporal_id_plus1中的信息,且可允许共享在同一缓冲周期、图片时序或子图片时序SEI消息中传递的信息以处理与多个操作点相关联的视频数据。
HEVC工作草案8的章节D.1.1描述缓冲周期SEI消息的语法。根据本发明的一或多个实例技术,缓冲周期SEI消息语法可如以下表6中所展示而改变。对缓冲周期SEI消息语法的改变可使得缓冲周期SEI消息能够包含applicable_operation_points()语法结构。
表6-缓冲周期
HEVC工作草案8的章节D.2.1描述缓冲周期SEI消息的语法元素的语义。根据本发明的一或多项技术,buffering_period(payloadSize)语法结构的语义可做如下改变。未提及的那些语法元素的语义是与HEVC工作草案8中的语义相同。
缓冲周期SEI消息提供初始CPB移除延迟及初始CPB移除延迟偏移的信息。
以下内容适用于缓冲周期SEI消息语法及语义:
-语法元素initial_cpb_removal_delay_length_minus1及sub_pic_cpb_params_present_flag以及变量NalHrdBpPresentFlag、VclHrdBpPresentFlag、CpbSize[SchedSelIdx]、BitRate[SchedSelIdx]及CpbCnt可见于或导出从在适用于缓冲周期SEI消息应用到的操作点中的任一者的hrd_parameters()语法结构及sub_layer_hrd_parameters()语法结构中的语法元素中。
-具有不同OpTid值tIdA及tIdB的缓冲周期SEI消息应用到的任何两个操作点指示:译码于适用于两个操作点的hrd_parameters()语法结构中的cpb_cnt_minus1[tIdA]及cpb_cnt_minus1[tIdB]的值是相同的。
-具有不同OpLayerIdSet值layerIdSetA及layerIdSetB的缓冲周期SEI消息应用到的任何两个操作点指示:适用于两个操作点的两个hrd_parameters()语法结构的分别的nal_hrd_parameters_present_flag及vcl_hrd_parameters_present_flag的值是相同的。
-位流(或其一部分)指代与缓冲周期SEI消息应用到的操作点中的任一者相关联的位流子集(或其一部分)。
如果NalHrdBpPresentFlag或VclHrdBpPresentFlag等于1,则适用于指定操作点的缓冲周期SEI消息可存在于经译码视频序列中的任何存取单元中,且适用于指定操作点的缓冲周期SEI消息应存在于每一RAP存取单元中,及与恢复点SEI消息相关联的每一存取单元中。否则(NalHrdBpPresentFlag及VclHrdBpPresentFlag皆等于0),经译码序列中的存取单元皆不应具有适用于所指定操作点的缓冲周期SEI消息。
注释-对于一些应用,缓冲周期SEI消息的频繁存在可为所要的。
当含有缓冲周期SEI消息且具有等于0的nuh_reserved_zero_6bits的SEI NAL单元存在时,SEI NAL单元应在解码次序上先于存取单元中的第一VCL NAL单元。
缓冲周期被指定为在解码次序上连续的缓冲周期SEI消息的两个执行个体之间的存取单元的集合。
变量CpbCnt被导出为等于cpb_cnt_minus1[tId]+1,其中cpb_cnt_minus1[tId]被译码于适用于缓冲周期SEI消息应用到且具有等于tId的OpTid的操作点中的任一者的hrd_parameters()语法结构中。
seq_parameter_set_id指代有效的序列参数集。seq_parameter_set_id的值应等于由与缓冲周期SEI消息相关联的经译码图片参考的图片参数集中的seq_parameter_set_id的值。seq_parameter_set_id的值应是在0到31的范围内(包含0及31)。
等于1的rap_cpb_params_present_flag指定initial_alt_cpb_removal_delay[SchedSelIdx]及initial_alt_cpb_removal_delay_offset[SchedSelIdx]语法元素的存在。当不存在时,alt_cpb_params_present_flag的值被推断为等于0。当相关联图片既非CRA图片也非BLA图片时,alt_cpb_params_present_flag的值应等于0。
initial_cpb_removal_delay[SchedSelIdx]及initial_alt_cpb_removal_delay[SchedSelIdx]分别指定第SchedSelIdx个CPB的默认及替代性初始CPB移除延迟。语法元素具有由initial_cpb_removal_delay_length_minus1+1给出的以位计的长度,且是以90kHz时钟为单位。语法元素的值不应等于0,且应小于或等于90000*(CpbSize[SchedSelIdx]÷BitRate[SchedSelIdx]),其为CPB大小的以90kHz时钟为单位的时间当量。
initial_cpb_removal_delay_offset[SchedSelIdx]及initial_alt_cpb_removal_delay_offset[SchedSelIdx]分别指定第SchedSelIdx个CPB的默认及替代性初始CPB移除偏移。语法元素具有由initial_cpb_removal_delay_length_minus1+1给出的以位计的长度,且是以90kHz时钟为单位。这些语法元素未由解码器使用,且可仅需要用于附录C中指定的递送调度器(HSS)。
缓冲周期SEI消息可包含HRD参数(例如,initial_cpb_removal_delay[SchedSelIdx]、initial_cpb_removal_delay_offset[SchedSelIdx]、initial_alt_cpb_removal_delay[SchedSelIdx]及initial_alt_cpb_removal_delay_offset[SchedSelIdx])。如上文所指示,HEVC工作草案8不提供使缓冲周期SEI消息关联到VPS中的hrd_parameters()语法结构的任何方式,对于所述hrd_parameters()语法结构,相关联的operation_point_layer_ids()语法结构包含nuh_reserved_zero_6bits的多个值(即,HEVC的多视图、3DV或可缩放视频译码扩展中的多个层ID)。因此,根据本发明的一或多项技术,缓冲周期SEI消息中的applicable_operation_points()语法元素指定缓冲周期SEI消息应用到的操作点。
HEVC工作草案8的章节D.1.2指示图片时序SEI消息的语法。根据本发明的一或多项技术,图片时序SEI消息的语法可如以下表7中所展示而改变。对图片时序SEI消息语法的改变可使得图片时序SEI消息能够包含applicable_operation_points()语法结构。
表7-图片时序SEI消息
此外,图片时序SEI消息的语义可做如下改变。下文未提及的pic_timing(payloadSize)语法结构的那些语法元素的语义可与HEVC工作草案8中的那些语义相同。
图片时序SEI消息提供与SEI消息相关联的存取单元的CPB移除延迟及DPB输出延迟的信息。
以下内容应用于图片时序SEI消息语法及语义:
-语法元素sub_pic_cpb_params_present_flag、cpb_removal_delay_length_minus1、dpb_output_delay_length_minus1及du_cpb_removal_delay_length_minus1以及变量CpbDpbDelaysPresentFlag可见于或导出从在适用于图片时序SEI消息应用到的操作点中的任一者的hrd_parameters()语法结构及sub_layer_hrd_parameters()语法结构中的语法元素中。
-位流(或其一部分)指代与图片时序SEI消息应用到的操作点中的任一者相关联的位流子集(或其一部分)。
注释1-图片时序SEI消息的语法取决于适用于图片时序SEI消息应用到的操作点的hrd_parameters()语法结构的内容。这些hrd_parameters()语法结构是在对于与图片时序SEI消息相关联的经译码图片是有效的视频参数集及/或序列参数集中。当图片时序SEI消息是与为位流中的第一存取单元的CRA存取单元、IDR存取单元或BLA存取单元相关联时,除非同一存取单元内的缓冲周期SEI消息先于所述图片时序SEI消息,否则视频参数集及序列参数集的启动(且对于并非位流中的第一图片的IDR或BLA图片,确定经译码图片是IDR图片或BLA图片)并不发生,直到解码经译码图片的第一经译码切片NAL单元为止。由于经译码图片的经译码切片NAL单元在NAL单元次序上在图片时序SEI消息之后,因此可存在如下状况:解码器有必要存储含有图片时序SEI消息的RBSP直到确定有效的视频参数集及/或有效的序列参数集为止,且接着执行图片时序SEI消息的剖析。
图片时序SEI消息在位流中的存在被指定如下。
-如果CpbDpbDelaysPresentFlag等于1,则适用于指定操作点的一个图片时序SEI消息应存在于经译码视频序列的每一存取单元中。
-否则(CpbDpbDelaysPresentFlag等于0),适用于指定操作点的图片时序SEI消息皆不应存在于经译码视频序列的任何存取单元中。
当含有图片时序SEI消息且具有等于0的nuh_reserved_zero_6bits的SEI NAL单元存在时,SEI NAL单元应在解码次序上先于存取单元中的第一VCL NAL单元。
au_cpb_removal_delay_minus1加1在HRD以存取单元级别操作时指定在从CPB移除与前一存取单元中的最近缓冲周期SEI消息相关联的存取单元之后、在从缓冲器移除与图片时序SEI消息相关联的存取单元数据之前要等待多少个时钟刻度。此值还用以计算存取单元数据到达HSS的CPB的最早可能时间。语法元素是固定长度码,其以位计的长度由cpb_removal_delay_length_minus1+1给出。
注释2-确定语法元素au_cpb_removal_delay_minus1的长度(以位计)的cpb_removal_delay_length_minus1的值是在对于与图片时序SEI消息相关联的经译码图片是有效的视频参数集或序列参数集中译码的cpb_removal_delay_length_minus1的值,尽管au_cpb_removal_delay_minus1加1指定相对于含有缓冲周期SEI消息的前一存取单元的移除时间的时钟刻度的数目,所述前一存取单元可为不同经译码视频序列中的存取单元。
pic_dpb_output_delay被用以计算图片的DPB输出时间。其指定在从CPB移除存取单元中的最后一个解码单元之后、在从DPB输出经解码图片之前要等待多少个时钟刻度。
注释3-在图片仍被标注为“用于短期参考”或“用于长期参考”时,并不在所述图片的输出时间从DPB移除所述图片。
注释4-针对经解码图片仅指定一个pic_dpb_output_delay。
语法元素pic_dpb_output_delay的长度由dpb_output_delay_length_minus1+1以位为单位给出。当sps_max_dec_pic_buffering[minTid]等于1时,pic_dpb_output_delay应等于0,其中minTid是图片时序SEI消息应用到的所有操作点的OpTid值中的最小值。
从从输出时序一致的解码器输出的任何图片的pic_dpb_output_delay导出的输出时间应先于从解码次序上的任何后续经译码视频序列中的所有图片的pic_dpb_output_delay导出的输出时间。
由此语法元素的值建立的图片输出次序应是与由PicOrderCntVal的值建立的次序相同的次序。
对于未通过“提升”过程输出的图片,因为所述图片在解码次序上先于具有等于1或被推断为等于1的no_output_of_prior_pics_flag的IDR或BLA图片,所以从pic_dpb_output_delay导出的输出时间应随着相对于同一经译码视频序列内的所有图片的PicOrderCntVal的值增加而增加。
等于1的du_common_cpb_removal_delay_flag指定存在语法元素du_common_cpb_removal_delay_minus1。等于0的du_common_cpb_removal_delay_flag指定不存在语法元素du_common_cpb_removal_delay_minus1。
du_common_cpb_removal_delay_minus1加1指定在从CPB移除解码次序上的先前的解码单元之后,在从CPB移除与图片时序SEI消息相关联的存取单元中的每一解码单元之前要等待多少个子图片时钟刻度(参见子条款E.2.1)。如附录C中所指定,此值还用以计算解码单元数据到达HSS的CPB的最早可能时间。语法元素是固定长度码,其长度由du_cpb_removal_delay_length_minus1+1以位为单位给出。
如上文所指示,HEVC工作草案8不提供使图片时序SEI消息关联到VPS中的hrd_parameters()语法结构的任何方式,对于所述hrd_parameters()语法结构,相关联的operation_point_layer_ids()语法结构包含nuh_reserved_zero_6bits的多个值(即,HEVC的多视图、3DV或可缩放视频译码扩展中的多个层ID)。因此,根据本发明的一或多项技术,图片时序SEI消息中的applicable_operation_points()语法元素指定缓冲周期SEI消息应用到的操作点。
此外,根据本发明的一或多项技术,子图片时序SEI消息的语法可如以下表8中所展示而改变。对子图片时序SEI消息语法的改变可使得子图片时序SEI消息能够包含applicable_operation_points()语法结构。在HEVC工作草案8中,子图片时序SEI消息并不包含applicable_operation_points()语法结构。
表8-子图片时序SEI消息
HEVC工作草案8的章节D.2.2.2描述子图片时序SEI消息的语义。根据本发明的一或多项技术,HEVC工作草案8的章节D.2.2.2可进行如下修改:
子图片时序SEI消息提供用于与SEI消息相关联的解码单元的CPB移除延迟信息。
以下内容适用于子图片时序SEI消息语法及语义:
-语法元素sub_pic_cpb_params_present_flag及cpb_removal_delay_length_minus1以及变量CpbDpbDelaysPresentFlag可见于或导出从在适用于子图片时序SEI消息应用到的操作点中的任一者的hrd_parameters()语法结构及sub_layer_hrd_parameters()语法结构中的语法元素中。
-位流(或其一部分)指代与子图片时序SEI消息应用到的操作点中的任一者相关联的位流子集(或其一部分)。
子图片时序SEI消息在位流中的存在被指定如下。
-如果CpbDpbDelaysPresentFlag等于1且sub_pic_cpb_params_present_flag等于1,则适用于指定操作点的一个子图片时序SEI消息可存在于经译码视频序列中的每一解码单元中。
-否则(CpbDpbDelaysPresentFlag等于0或sub_pic_cpb_params_present_flag等于0),适用于指定操作点的子图片时序SEI消息皆不应存在于经译码视频序列中。
与子图片时序SEI消息相关联的解码单元在解码次序上由含有子图片时序SEI消息的SEL NAL单元继之以不含有子图片时序SEI消息的一或多个NAL单元(包含存取单元中的直到(但不包含)含有子图片时序SEI消息的任何后续SEI NAL单元的所有后续NAL单元)组成。在每一解码单元中应存在至少一VCL NAL单元。与VCL NAL单元相关联的所有非VCL NAL单元应包含于同一解码单元中。
du_spt_cpb_removal_delay_minus1加1指定在从CPB移除与前一存取单元中的最近缓冲周期SEI消息相关联的存取单元中的最后一个解码单元之后、在从CPB移除与子图片时序SEI消息相关联的解码单元之前要等待多少个子图片时钟刻度。如附录C中所指定,此值还用以计算解码单元数据到达HSS的CPB的最早可能时间。语法元素由固定长度码来表示,其长度由cpb_removal_delay_length_minus1+1以位为单位给出。
注释-确定语法元素du_spt_cpb_removal_delay_minus1的长度(以位为单位)的cpb_removal_delay_length_minus1的值是在对于含有与子图片时序SEI消息相关联的解码单元的存取单元是有效的视频参数集或序列参数集中译码的cpb_removal_delay_length_minus1的值,尽管du_spt_cpb_removal_delay_minus 1加1指定了相对于含有缓冲周期SEI消息的前一存取单元中的最后一个解码单元的移除时间的子图片时钟刻度的数目,所述前一存取单元可为不同经译码视频序列中的存取单元。
HEVC作草案8的章节E.2.2描述HRD参数语义。根据本发明的一或多项技术,HEVC作草案8的章节E.2.2可做如下改变。下文未提及的HRD参数的那些语法元素的语义可与HEVC工作草案8中的那些语义相同。
hrd_parameters()语法结构提供用于HRD操作中的HRD参数。当hrd_parameters()语法结构包含于视频参数集中时,包含于语法结构应用到的操作点的OpLayerIdSet中的nuh_reserved_zero_6bits值的数字的集合由视频参数集中的对应operation_point_layer_ids()语法结构来指定抑或被隐含地导出,如子条款7.4.4中所指定。当hrd_parameters()语法结构包含于序列参数集中时,适用操作点是具有仅含有值0的OpLayerIdSet的所有操作点。替代性地,当hrd_parameters()语法结构包含于序列参数集中时,适用操作点是具有等同于TargetDecLayerIdSet的OpLayerIdSet的所有操作点。
位流一致性的要求是:对于经译码视频序列(视频参数集抑或序列参数集中)中的所有hrd_parameters()语法结构,应不存在适用到同一操作点的一个以上hrd_parameters()语法结构。替代性地,要求在视频参数集中应不存在适用到同一操作点的一个以上hrd_parameters()语法结构。替代性地,要求视频参数集不应包含适用到具有仅含有值0的OpLayerIdSet的操作点的hrd_parameters()语法结构。
du_cpb_removal_delay_length_minus1加1指定图片时序SEI消息的du_cpb_removal_delay_minus1[i]及du_common_cpb_removal_delay_minus1语法元素的以位计的长度。
cpb_removal_delay_length_minus1加1指定图片时序SEI消息中的au_cpb_removal_delay_minus1语法元素及子图片时序SEI消息中的du_sptcpb_removal_delay_minus1语法元素的以位计的长度。当cpb_removal_delay_length_minus1语法元素不存在时,其被推断为等于23。
dpb_output_delay_length_minus1加1指定图片时序SEI消息中的pic_dpb_output_delay语法元素的以位计的长度。当dpb_output_delay_length_minus1语法元素不存在时,其被推断为等于23。
等于1的fixed_pic_rate_flag[i]指示,在TargetDecHighestTid等于i时,输出次序上的任何两个连续图片的HRD输出时间之间的时间距离受如下约束。等于0的fixed_pic_rate_flag[i]指示,无这些约束应用到输出次序上的任何两个连续图片的HRD输出时间之间的时间距离。
当fixed_pic_rate_flag[i]不存在时,其被推断为等于0。
对于含有图片n的经译码视频序列,当TargetDecHighestTid等于i且fixed_pic_rate_flag[i]等于1时,如等式C-17中所指定的Δto,dpb(n)的所计算值应等于tc*(pic_duration_in_tcs_minus1[i]+1),其中当以下条件中的一或多者对于经指定用于等式C-17中的以下图片nn为真时,tc是如等式C-1所指定(使用含有图片n的经译码视频序列的tc值):
-图片nn是与图片n在相同的经译码视频序列中。
-图片nn是在不同经译码视频序列中,且在含有图片nn的经译码视频序列中fixed_pic_rate_flag[i]等于1,num_units_in_tick÷time_scale的值对于两个经译码视频序列为相同的,且pic_duration_in_tc_minus1[i]的值对于两个经译码视频序列为相同的。
pic_duration_in_tc_minus1[i]加1指定在TargetDecHighestTid等于i时经译码视频序列中按输出次序的任何两个连续图片的HRD输出时间之间的以时钟刻度为单位的时间距离。pic_duration_in_tc_minus1[i]的值应是在0到2047的范围内(包含0及2047)。
如附录C中所指定,当TargetDecHighestTid等于i时,low_delay_hrd_flag[i]指定HRD操作模式。当fixed_pic_rate_flag[i]等于1时,low_delay_hrd_flag[i]应等于0。
注释3-当low_delay_hrd_flag[i]等于1时,准许归因于由存取单元使用的位的数目而违反标称CPB移除时间的“大图片”。预期到但不要求这些“大图片”仅偶尔发生。
cpb_cnt_minus1[i]加1指定在TargetDecHighestTid等于i时经译码视频序列的位流中的替代性CPB规范的数目。cpb_cnt_minus1[i]的值应是在0到31的范围内(包含0及31)。当low_delay_hrd_flag[i]等于1时,cpb_cnt_minus1[i]应等于0。当cpb_cnt_minus1[i]不存在时,其被推断为等于0。
如在本发明中于其它地方所描述,在HEVC工作草案8中,仅VPS中的hrd_parameters()语法结构可被选择用于HRD操作,而从不选择SPS中的hrd_parameters()语法结构。上文展示的对hrd_parameters()语法结构的语义的改变阐明:当hrd_parameters()语法结构包含于SPS中时,hrd_parameters()语法结构适用于的操作点可为具有等同于TargetDecLayerIdSet的OpLayerIdSet的所有操作点。如上文在经修改的一般解码过程中所指示,如果外部装置可用于设定TargetDecLayerIdSet,则TargetDecLayerIdSet可由外部装置指定。否则,如果在位流一致性测试中调用解码过程,则TargetDecLayerIdSet可为受测操作点的层识别符的集合。否则,TargetDecLayerIdSet可仅含有一个层识别符(即,nuh_reserved_zero_6bits的仅一值),其等于0。在一个实例中,外部装置可为API,所述API是终端机实施方案的部分且提供设定TargetDecLayerIdSet的值的功能。在此实例中,终端机实施方案可包括解码器实施方案及并非解码器实施方案的部分的某些功能。
以此方式,装置(例如视频编码器20、视频解码器30、额外装置21或另一装置)可从视频参数集中的HRD参数的集合及SPS中的HRD参数的集合中选择适用于特定操作点的HRD参数的集合。此外,装置可至少部分基于适用于特定操作点的HRD参数的集合执行位流一致性测试,所述测试对与特定操作点相关联的位流子集是否与视频译码标准一致进行测试。
如上文所指示,HEVC工作草案8的章节E.2.2可经修改以指示在hrd_parameters()语法结构包含于序列参数集中时适用操作点是具有等同于TargetDecLayerIdSet的OpLayerIdSet的所有操作点。此外,如上文所描述,TargetDecLayerIdSet被设定为targetOpLayerIdSet,其含有存在于与TargetOp相关联的位流子集中的nuh_reserved_zero_6bits的值的集合。TargetOp是HRD操作中的受测操作点。此外,HRD操作(例如,位流一致性测试及解码器一致性测试)可调用一般解码过程。
如上文所解释,HEVC工作草案8的章节8.1可经修改以规定:在TargetDecHighestTid及TargetDecLayerIdSet作为输入的情况下应用如子条款10.1中指定的子位流提取过程,且将输出指派给称作BitstreamToDecode的位流。因此,存在于BitstreamToDecode中的仅有的nuh_reserved_zero_6bits值是TestDecLayerIdSet中的nuh_reserved_zero_6bits的值(即,存在于与TargetOp相关联的位流子集中的nuh_reserved_zero_6bits的值的集合)。章节8.1进一步解释,当涉及解译每一NAL单元及“位流”或其部分(例如,经译码视频序列)中的每一语法元素的语义时,位流或其部分意谓BitstreamToDecode或其部分。
因此,当解译描述HRD参数的语义的章节(例如,HEVC工作草案8的章节E.2.2)时,术语“经译码视频序列”意谓BitstreamToDecode的部分。TargetDecLayerIdSet等效于存在于BitstreamToDecode中的nuh_reserved_zero_6bits的所有值的集合。因而断定,描述HRD参数的语义的章节中的片语“当hrd_parameters()语法结构包含于序列参数集中时,适用操作点是具有等同于TargetDecLayerIdSet的OpLayerIdSet的所有操作点”等效于“当hrd_parameters()语法结构包含于序列参数集中时,适用操作点是具有等同于存在于BitstreamToDecode中的nuh_reserved_zero_6bits的值的集合的OpLayerIdSet的所有操作点”。
因为“经译码视频序列”是BitstreamToDecode的部分,所以存在于经译码视频序列中的nuh_reserved_zero_6bits的集合是存在于BitstreamToDecode中的nuh_reserved_zero_6bits的集合的子集。因此,片语“当hrd_parameters()语法结构包含于序列参数集中时,适用操作点是具有等同于存在于BitstreamToDecode中的nuh_reserved_zero_6bits的值的集合的OpLayerIdSet的所有操作点”必然要求“当hrd_parameters()语法结构包含于序列参数集中时,适用操作点是具有含有存在于经译码视频序列中的nuh_reserved_zero_6bits的所有值的OpLayerIdSet的所有操作点”。换句话说,如果操作点的nuh_reserved_zero_6bits的集合等同于存在于BitstreamToDecode中的nuh_reserved_zero_6bits的集合,则操作点的nuh_reserved_zero_6bits的集合必然含有存在于BitstreamToDecode的经译码视频序列中的所有nuh_reserved_zero_6bits值。在此片语中,“经译码视频序列”可指代与特定SPS相关联的经译码视频序列。
当执行HRD操作时,装置可从指示于VPS中的hrd_parameters()语法结构及指示于SPS中的hrd_parameters()语法结构确定适用于TargetOp的hrd_parameters()语法结构。如果TargetOp的层id集合与指定于VPS中的针对特定hrd_parameters()语法结构的层识别符的集合匹配,则VPS中的所述特定hrd_parameters()语法结构适用于TargetOp。如果TargetOp的层id集合(即,TargetDecHighestTid)(即,存在于BitstreamToDecode中的nuh_reserved_zero_6bits的集合)含有存在于SPS的经译码视频序列中的所有nuh_reserved_zero_6bits(其是BitstreamToDecode中的nuh_reserved_zero_6bits的集合的子集),则SPS中的hrd_parameters()语法结构可适用于TargetOp。因为TargetOp的nuh_reserved_zero_6bits的集合可必然含有存在于与SPS相关联的经译码视频序列中的所有nuh_reserved_zero_6bits值,因此SPS中的hrd_parameters()语法结构可总是适用于TargetOp。然而,并非所有SPS具有hrd_parameters()语法结构。如果SPS并不具有hrd_parameters()语法结构且存在于BitstreamToDecode中的nuh_reserved_zero_6bits的集合含有存在于SPS的经译码视频序列中的所有nuh_reserved_zero_6bits,则应使用SPS的hrd_parameters()语法结构。因为并非所有SPS皆具有hrd_parameters()语法结构,所以仍可选择VPS。
此外,如上文在对HEVC工作草案8的章节E.2.2的修改中所展示,当装置执行位流一致性测试时,视频解码器可在对于经译码视频序列中的HRD参数的所有集合来说HRD参数的一个以上集合适用到同一操作点时确定位流不与视频译码标准一致。此外,当装置执行位流一致性测试时,视频解码器可在VPS中的HRD参数的一个以上集合适用到同一操作点时确定位流不与视频译码标准一致。此外,当装置执行位流解码测试时,装置可在VPS包含适用到具有仅含有值0的层id集合的操作点的HRD参数的集合时确定位流不与视频译码标准一致。
图3为说明经配置以实施本发明的技术的实例视频解码器30的帧图。图3是为了解释的目的而提供,且不限制如在本发明中广泛例证且描述的技术。为了解释,本发明在HEVC译码的内容脉络中描述视频解码器30。然而,本发明的技术可适用于其它译码标准或方法。
在图3的实例中,视频解码器30包含熵解码单元150、预测处理单元152、反量化单元154、反变换处理单元156、重建构单元158、滤波单元160及经解码图片缓冲器162。预测处理单元152包含运动补偿单元164及帧内预测处理单元166。在其它实例中,视频解码器30可包含较多、较少或不同功能组件。
经译码图片缓冲器(CPB)151可接收并存储位流的经编码视频数据(例如,NAL单元)。熵解码单元150可从CPB 151接收NAL单元且剖析NAL单元以解码语法元素。熵解码单元150可熵解码NAL单元中的经熵编码的语法元素。预测处理单元152、反量化单元154、反变换处理单元156、重建构单元158及滤波单元160可基于提取从位流的语法元素而产生经解码视频数据。
位流的NAL单元可包含经译码切片NAL单元。作为解码位流的部分,熵解码单元150可从经译码切片NAL单元提取语法元素并熵解码所述语法元素。经译码切片中的每一者可包含切片标头及切片数据。切片标头可含有关于切片的语法元素。切片标头中的语法元素可包含识别与含有所述切片的图片相关联的PPS的语法元素。
除了解码来自位流的语法元素外,视频解码器30还可对非经分割CU执行重建构操作。为了对非经分割CU执行重建构操作,视频解码器30可对CU的每一TU执行重建构操作。通过对于CU的每一TU执行重建构操作,视频解码器30可重建构CU的残余块。
作为对CU的TU执行重建构操作的部分,反量化单元154可反量化(即,解量化)与TU相关联的系数块。反量化单元154可使用与TU的CU相关联的QP值来确定量化程度,且同样地确定反量化单元154要应用的反量化程度。即,可通过在量化变换系数时调整所使用的QP的值来控制压缩比(即,用以表示初始序列的位数目与经压缩序列的位数目的比率)。压缩比还可取决于所使用的熵译码的方法。
在反量化单元154反量化系数块之后,反变换处理单元156可将一或多个反变换应用到系数块以便产生与TU相关联的残余块。举例来说,反变换处理单元156可将反DCT、反整数变换、反卡忽南-拉维变换(Karhunen-Loeve transform,KLT)、反旋转变换、反方向变换或另一反变换应用到系数块。
如果PU是使用帧内预测来编码,则帧内预测处理单元166可执行帧内预测以产生PU的预测性块。帧内预测处理单元166可使用帧内预测模式以基于空间相邻PU的预测块产生PU的预测性明度、Cb及Cr块。帧内预测处理单元166可基于从位流解码的一或多个语法元素而确定PU的帧内预测模式。
预测处理单元152可基于从位流提取的语法元素而建构第一参考图片列表(RefPicList0)及第二参考图片列表(RefPicList1)。此外,如果PU是使用帧间预测来编码,则熵解码单元150可提取针对PU的运动信息。运动补偿单元164可基于PU的运动信息确定PU的一或多个参考区。运动补偿单元164可基于PU的一或多个参考块处的样本块产生针对PU的预测性明度、Cb及Cr块。
重建构单元158可使用与CU的TU相关联的明度、Cb及Cr变换块以及CU的PU的预测性明度、Cb及Cr块(即,帧内预测数据抑或帧间预测数据,在适用时)来重建构CU的明度、Cb及Cr译码块。举例来说,重建构单元158可将明度、Cb及Cr变换块的样本加到预测性明度、Cb及Cr块的对应样本以重建构CU的明度、Cb及Cr译码块。
滤波单元160可执行解块操作以减少与CU的明度、Cb及Cr译码块相关联的方块效应假影。视频解码器30可将CU的明度、Cb及Cr译码块存储于经解码图片缓冲器162中。经解码图片缓冲器162可提供参考图片以用于随后运动补偿、帧内预测及在显示装置(例如,图1的显示装置32)上的呈现。举例来说,视频解码器30可基于经解码图片缓冲器162中的明度、Cb及Cr块对其它CU的PU执行帧内预测或帧间预测操作。以此方式,视频解码器30可从位流解码有效明度系数块的变换系数级别,反量化变换系数级别,将变换应用到变换系数级别以产生变换块,至少部分基于变换块产生译码块,且输出译码块以供显示。
图4是根据本发明的一或多项技术的说明装置的实例操作200的流程图。操作200可由视频编码器20、视频解码器30、额外装置21或另一装置执行。如图4的实例中所说明,装置可从VPS中的假想HRD参数(例如,hrd_parameters语法结构)的集合及SPS中的HRD参数的集合中选择适用于位流的特定操作点的HRD参数的集合(202)。此外,装置可至少部分基于适用于特定操作点的HRD参数的集合而对与特定操作点相关联的位流子集执行HRD操作(204)。举例来说,装置可执行位流一致性测试或解码器一致性测试。
图5是根据本发明的一或多项技术的说明装置的实例操作250的流程图。操作250可由视频编码器20、视频解码器30、额外装置21或另一装置执行。如图5的实例中所说明,装置可执行确定位流是否与视频译码标准一致的位流一致性测试(252)。装置可执行作为执行位流一致性测试的部分的解码过程(254)。
如图5的实例中所说明,当执行解码过程时,装置可执行位流提取过程以从位流提取由层识别符的目标集合及目标最高时间识别符定义的操作点的操作点表示(256)。层识别符的目标集合可含有存在于操作点表示中的层识别符语法元素的值。层识别符的目标集合可为位流的层识别符语法元素值的子集。目标最高时间识别符可等于存在于操作点表示中的最大时间识别符,目标最高时间识别符小于或等于存在于位流中的最大时间识别符。此外,装置可解码操作点表示的NAL单元(258)。
图6是根据本发明的一或多项技术的说明装置的实例HRD操作300的流程图。HRD操作300可由视频编码器20、视频解码器30、额外装置21或另一装置执行。其它装置可包含一致性位流检查器,所述检查器将位流取作为输入,且输出所述输入位流是否是一致的位流的指示。在一些实例中,HRD操作300可确定位流与视频译码标准的一致性。在其它实例中,HRD操作300可确定解码器与视频译码标准的一致性。作为执行HRD操作300的部分,装置可确定与位流的所选择操作点相关联的位流子集的最高时间识别符(302)。此外,装置可基于最高时间识别符确定来自语法元素的阵列(例如,sps_max_num_reorder_pics[i]、sps_max_dec_pic_buffering[i]及cpb_cnt_minus1[i])的特定语法元素(304)。装置可在HRD操作中使用特定语法元素(306)。
在一或多个实例中,所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件实施,则功能可作为一或多个指令或程序代码而存储于计算机可读媒体上或经由计算机可读媒体而发射,且由基于硬件之处理单元执行。计算机可读媒体可包含计算机可读存储媒体(其对应于例如数据存储媒体等有形媒体)或通信媒体,通信媒体包含(例如)根据通信协议促进计算机程序从一处传送到另一处的任何媒体。以此方式,计算机可读媒体大体上可对应于(1)稳定式的有形计算机可读存储媒体,或(2)例如信号或载波等通信媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索指令、程序代码及/或数据结构以用于实施本发明中所描述的技术的任何可用媒体。计算机程序产品可包含计算机可读媒体。
通过实例而非限制,这些计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁性存储装置、快闪存储器,或可用以存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。而且,任何连接可恰当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光缆、双绞线、数字用户线(DSL)或无线技术(例如,红外线、无线电及微波)而从网站、服务器或其它远程源发射指令,则同轴电缆、光缆、双绞线、DSL或无线技术(例如,红外线、无线电及微波)包含于媒体的定义中。然而,应理解,计算机可读存储媒体及数据存储媒体不包含连接、载波、信号或其它瞬间媒体,而是替代地是针对非瞬间有形存储媒体。如本文中所使用,磁盘及光盘包含紧密光盘(CD)、激光光盘、光学光盘、数字影音光盘(DVD)、软性磁盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘通过激光以光学方式再现数据。以上各物的组合还应包含于计算机可读媒体的范围内。
可由例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因而,本文中所使用的术语“处理器”可指代上述结构或适于实施本文中所描述的技术的任何其它结构中的任一者。此外,在一些方面中,可将本文中所描述的功能性提供于经配置以用于编码及解码的专用硬件及/或软件模块内,或并入于组合式编码解码器中。而且,所述技术可完全以一或多个电路或逻辑元件来实施。
本发明的技术可以广泛的多种装置或设备予以实施,所述装置或设备包含无线手持机、集成电路(IC)或IC集合(例如,芯片集)。在本发明中描述各种组件、模块或单元以强调经配置以执行所揭示技术的装置的功能方面,但未必要求通过不同硬件单元来实现。确切来说,如上文所描述,可将各种单元组合于编码解码器硬件单元中,或通过结合合适软件及/或固件的互操作性硬件单元(包含如上文所描述的一或多个处理器)的集合来提供所述单元。
已描述各种实例。这些及其它实例属于所附权利要求书的范围内。