[go: up one dir, main page]

HK1203009B - Low-delay video buffering in video coding - Google Patents

Low-delay video buffering in video coding Download PDF

Info

Publication number
HK1203009B
HK1203009B HK15103308.4A HK15103308A HK1203009B HK 1203009 B HK1203009 B HK 1203009B HK 15103308 A HK15103308 A HK 15103308A HK 1203009 B HK1203009 B HK 1203009B
Authority
HK
Hong Kong
Prior art keywords
cpb
sub
decoding
flag
picture
Prior art date
Application number
HK15103308.4A
Other languages
Chinese (zh)
Other versions
HK1203009A1 (en
Inventor
王益魁
陈颖
Original Assignee
高通股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/776,140 external-priority patent/US9565431B2/en
Application filed by 高通股份有限公司 filed Critical 高通股份有限公司
Publication of HK1203009A1 publication Critical patent/HK1203009A1/en
Publication of HK1203009B publication Critical patent/HK1203009B/en

Links

Description

在视频译码中的低延迟视频缓冲Low-latency video buffering in video decoding

本申请案主张2012年4月4日申请的美国临时申请案第61/620,266号及2012年5月1日申请的美国临时申请案第61/641,063号的权利,所述临时申请案中的每一者的全部内容是以引用方式并入本文中。This application claims the benefit of U.S. Provisional Application No. 61/620,266, filed April 4, 2012, and U.S. Provisional Application No. 61/641,063, filed May 1, 2012, each of which is incorporated herein by reference in its entirety.

技术领域Technical Field

本发明是关于视频译码。The present invention relates to video decoding.

背景技术Background Art

数字视频能力可并入到广泛范围的装置中,所述装置包括数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、便携式或台式计算机、数字相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝或卫星无线电话、视频电话会议装置,及其类似者。视频译码标准包括ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262或ISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual,及ITU-T H.264(也被称为ISO/IEC MPEG-4 AVC),包括其可缩放视频译码(SVC)及多视图视频译码(MVC)扩展。另外,高效率视频译码(HEVC)为由ITU-T视频译码专家组(VCEG)及ISO/IEC运动图片专家组(MPEG)的研究视频译码的联合协作小组(JCT-VC)开发的视频译码标准。被称为“HEVC工作草稿6”或“HEVC WD6”的即将到来的HEVC标准的新近草稿被描述在Bross等人的文档JCTVC-H1003的“High efficiency video coding(HEVC)text specification draft 6”(ITU-TSG16 WP3及ISO/IEC JTC1/SC29/WG11的研究视频译码的联合协作小组(JCT-VC),第8次会议:美国加利福尼亚圣荷西,2012年2月)中,到2012年5月1日为止,所述文档可从http://phenix.int-evry.fr/jct/doc_end_user/documents/8San%20Jose/wg11/JCTVC-H1003-v22.zip处下载。Digital video capabilities can be incorporated into a wide range of devices, including digital televisions, digital live broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), portable or desktop computers, digital cameras, digital recording devices, digital media players, video game devices, video game consoles, cellular or satellite radiotelephones, video teleconferencing devices, and the like. Video coding standards include ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 or ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual, and ITU-T H.264 (also known as ISO/IEC MPEG-4 AVC), including its scalable video coding (SVC) and multi-view video coding (MVC) extensions. In addition, High Efficiency Video Coding (HEVC) is a video coding standard developed by the Joint Collaborative Team on Video Coding (JCT-VC) of the ITU-T Video Coding Experts Group (VCEG) and the ISO/IEC Moving Picture Experts Group (MPEG). A recent draft of the upcoming HEVC standard, referred to as “HEVC Working Draft 6” or “HEVC WD6,” is described in document JCTVC-H1003, “High efficiency video coding (HEVC) text specification draft 6,” by Bross et al. (Joint Collaborative Team on Video Coding (JCT-VC) of ITU-TSG16 WP3 and ISO/IEC JTC1/SC29/WG11, 8th Meeting: San Jose, California, USA, February 2012), which was available for download as of May 1, 2012, from http://phenix.int-evry.fr/jct/doc_end_user/documents/8San%20Jose/wg11/JCTVC-H1003-v22.zip.

视频压缩技术执行空间预测及/或时间预测以缩减或移除为视频序列所固有的冗余。对于基于块的视频译码,可将视频帧或切片分割成若干宏块。可进一步分割每一宏块。使用关于相邻宏块的空间预测来编码经帧内译码(I)帧或切片中的宏块。经帧间译码(P或B)帧或切片中的宏块可使用关于所述同一帧或切片中的相邻宏块的空间预测,或关于其它参考帧的时间预测。Video compression techniques perform spatial prediction and/or temporal prediction to reduce or remove redundancy inherent in video sequences. For block-based video coding, a video frame or slice may be partitioned into macroblocks. Each macroblock may be further partitioned. Macroblocks in an intra-coded (I) frame or slice are encoded using spatial prediction with respect to neighboring macroblocks. Macroblocks in an inter-coded (P or B) frame or slice may use spatial prediction with respect to neighboring macroblocks in the same frame or slice, or temporal prediction with respect to other reference frames.

发明内容Summary of the Invention

大体上,本发明描述用以以可互操作方式实现缩减编码解码器延迟的各种技术。在一个实例中,这些技术可经由一般的基于子图片的经译码图片缓冲器(CPB)行为而实现。In general, this disclosure describes various techniques for achieving reduced codec latency in an interoperable manner. In one example, these techniques can be implemented via a general sub-picture-based coded picture buffer (CPB) behavior.

在一个实例中,一种译码视频数据的方法包括将视频数据的一或多个解码单元存储在经译码图片缓冲器(CPB)中。所述方法进一步包括获得用于所述一或多个解码单元的相应缓冲器移除时间。所述方法进一步包括根据用于所述解码单元中的每一者的所述所获得缓冲器移除时间而从所述CPB移除所述解码单元。所述方法进一步包括确定所述CPB在存取单元级别还是子图片级别处操作。所述方法进一步包括译码对应于所述经移除解码单元的视频数据。如果所述CPB在存取单元级别处操作,那么译码所述视频数据包含译码包含在所述解码单元中的存取单元。如果所述CPB在子图片级别处操作,那么译码所述视频数据包含译码包含在所述解码单元中的存取单元子集。In one example, a method of decoding video data includes storing one or more decoding units of the video data in a coded picture buffer (CPB). The method further includes obtaining respective buffer removal times for the one or more decoding units. The method further includes removing the decoding units from the CPB based on the obtained buffer removal times for each of the decoding units. The method further includes determining whether the CPB operates at an access unit level or a sub-picture level. The method further includes decoding video data corresponding to the removed decoding units. If the CPB operates at the access unit level, decoding the video data includes decoding the access units included in the decoding units. If the CPB operates at the sub-picture level, decoding the video data includes decoding a subset of the access units included in the decoding units.

在另一实例中,一种用于译码视频数据的装置经配置以将视频数据的一或多个解码单元存储在经译码图片缓冲器(CPB)中。所述装置经进一步配置以获得用于所述一或多个解码单元的相应缓冲器移除时间。所述装置经进一步配置以根据用于所述解码单元中的每一者的所述所获得缓冲器移除时间而从所述CPB移除所述解码单元。所述装置经进一步配置以确定所述CPB在存取单元级别还是子图片级别处操作。所述装置经进一步配置以译码对应于所述经移除解码单元的视频数据。如果所述CPB在存取单元级别处操作,那么译码所述视频数据包含译码包含在所述解码单元中的存取单元。如果所述CPB在子图片级别处操作,那么译码所述视频数据包含译码包含在所述解码单元中的存取单元子集。In another example, a device for decoding video data is configured to store one or more decoding units of the video data in a coded picture buffer (CPB). The device is further configured to obtain respective buffer removal times for the one or more decoding units. The device is further configured to remove the decoding units from the CPB based on the obtained buffer removal times for each of the decoding units. The device is further configured to determine whether the CPB operates at an access unit level or a sub-picture level. The device is further configured to decode video data corresponding to the removed decoding units. If the CPB operates at an access unit level, decoding the video data includes decoding the access units included in the decoding unit. If the CPB operates at a sub-picture level, decoding the video data includes decoding a subset of the access units included in the decoding unit.

在另一实例中,一种用于译码视频数据的设备包括用于将视频数据的一或多个解码单元存储在经译码图片缓冲器(CPB)中的装置。所述设备进一步包括用于获得用于所述一或多个解码单元的相应缓冲器移除时间的装置。所述设备进一步包括用于根据用于所述解码单元中的每一者的所述所获得缓冲器移除时间而从所述CPB移除所述解码单元的装置。所述设备进一步包括用于确定所述CPB在存取单元级别还是子图片级别处操作的装置。所述设备进一步包括用于译码对应于所述经移除解码单元的视频数据的装置。如果所述CPB在存取单元级别处操作,那么译码所述视频数据包含译码包含在所述解码单元中的存取单元。如果所述CPB在子图片级别处操作,那么译码所述视频数据包含译码包含在所述解码单元中的存取单元子集。In another example, an apparatus for decoding video data includes means for storing one or more decoding units of video data in a coded picture buffer (CPB). The apparatus further includes means for obtaining respective buffer removal times for the one or more decoding units. The apparatus further includes means for removing the decoding units from the CPB according to the obtained buffer removal times for each of the decoding units. The apparatus further includes means for determining whether the CPB operates at an access unit level or a sub-picture level. The apparatus further includes means for decoding video data corresponding to the removed decoding units. If the CPB operates at an access unit level, decoding the video data includes decoding the access units included in the decoding unit. If the CPB operates at a sub-picture level, decoding the video data includes decoding a subset of the access units included in the decoding unit.

在另一实例中,一种计算机可读存储媒体包含存储在其上的指令,所述指令在执行时使处理器将视频数据的一或多个解码单元存储在经译码图片缓冲器(CPB)中。所述指令进一步使处理器获得用于所述一或多个解码单元的相应缓冲器移除时间。所述指令进一步使处理器根据用于所述解码单元中的每一者的所述所获得缓冲器移除时间而从所述CPB移除所述解码单元。所述指令进一步使处理器确定所述CPB在存取单元级别还是子图片级别处操作。所述指令进一步使处理器译码对应于所述经移除解码单元的视频数据。如果所述CPB在存取单元级别处操作,那么译码所述视频数据包含译码包含在所述解码单元中的存取单元。如果所述CPB在子图片级别处操作,那么译码所述视频数据包含译码包含在所述解码单元中的存取单元子集。In another example, a computer-readable storage medium includes instructions stored thereon that, when executed, cause a processor to store one or more decoding units of video data in a coded picture buffer (CPB). The instructions further cause the processor to obtain respective buffer removal times for the one or more decoding units. The instructions further cause the processor to remove the decoding units from the CPB based on the obtained buffer removal times for each of the decoding units. The instructions further cause the processor to determine whether the CPB operates at an access unit level or a sub-picture level. The instructions further cause the processor to decode video data corresponding to the removed decoding units. If the CPB operates at an access unit level, decoding the video data includes decoding the access units included in the decoding units. If the CPB operates at a sub-picture level, decoding the video data includes decoding a subset of the access units included in the decoding units.

在随附图式及以下描述中阐述一或多个实例的细节。其它特征、目标及优点将从所述描述及所述图式以及从权利要求书变得显而易见。The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.

附图说明BRIEF DESCRIPTION OF THE DRAWINGS

图1为根据本发明的技术的说明可利用用于对视频块之间的边缘进行去块的技术的实例视频编码及解码系统的框图。1 is a block diagram illustrating an example video encoding and decoding system that may utilize techniques for deblocking edges between video blocks, according to the techniques of this disclosure.

图2为根据本发明的技术的说明可实施用于对视频块之间的边缘进行去块的技术的视频编码器的实例的框图。2 is a block diagram illustrating an example of a video encoder that may implement techniques for deblocking edges between video blocks, according to the techniques of this disclosure.

图3为根据本发明的技术的说明解码经编码视频序列的视频解码器的实例的框图。3 is a block diagram illustrating an example of a video decoder that decodes an encoded video sequence, according to the techniques of this disclosure.

图4为说明可实施本发明的技术中的任一者或全部的实例目的地装置的框图。4 is a block diagram illustrating an example destination device that may implement any or all of the techniques of this disclosure.

图5为根据本发明的技术的说明包括根据所获得缓冲器移除时间而从图片缓冲器移除视频数据的解码单元的实例方法的流程图。5 is a flowchart illustrating an example method that includes a decoding unit removing video data from a picture buffer according to an obtained buffer removal time, according to the techniques of this disclosure.

图6为根据本发明的技术的说明包括根据所获得缓冲器移除时间而从图片缓冲器移除视频数据的解码单元的另一实例方法的流程图。6 is a flowchart illustrating another example method that includes a decoding unit removing video data from a picture buffer according to an obtained buffer removal time, according to the techniques of this disclosure.

图7为根据本发明的技术的说明处理视频数据的另一实例方法的流程图,所述方法包括在提高进程中输出经剪裁图片。7 is a flowchart illustrating another example method of processing video data, including outputting a cropped picture in a boosting process, according to the techniques of this disclosure.

具体实施方式DETAILED DESCRIPTION

视频应用程序可包括本地播放、流式处理、广播/多播及交谈应用程序。交谈应用程序可包括视频电话及视频会议,且也被称为低延迟应用程序。交谈应用程序需要全部系统的相对低的端对端延迟,即,视频帧被捕获时的时间与视频帧被显示时的时间之间的延迟。通常,针对交谈应用程序的可接受的端对端延迟应小于400毫秒(ms),且大约150ms的端对端延迟可被视为极好。每一处理步骤可促成整体端对端延迟,例如,捕获延迟、预处理延迟、编码延迟、传输延迟、接收缓冲延迟(针对去抖动)、解码延迟、经解码图片输出延迟、后处理延迟,及显示延迟。因此,通常,编码解码器延迟(编码延迟、解码延迟及经解码图片输出延迟)在交谈应用程序中应最小化。特别地,译码结构应确保图片的解码顺序与输出顺序完全相同,使得经解码图片输出延迟等于零。Video applications can include local playback, streaming, broadcast/multicast, and conversation applications. Conversational applications can include video telephony and video conferencing and are also referred to as low-latency applications. Conversational applications require relatively low end-to-end latency across the entire system—that is, the delay between when a video frame is captured and when it is displayed. Typically, acceptable end-to-end latency for conversational applications should be less than 400 milliseconds (ms), with an end-to-end latency of approximately 150 ms considered excellent. Each processing step can contribute to the overall end-to-end latency, such as capture latency, pre-processing latency, encoding latency, transmission latency, receive buffering latency (for de-jittering), decoding latency, decoded picture output latency, post-processing latency, and display latency. Therefore, codec latency (encoding latency, decoding latency, and decoded picture output latency) should generally be minimized in conversational applications. In particular, the coding structure should ensure that the decoding order of pictures is identical to the output order, resulting in zero decoded picture output latency.

视频译码标准可包括视频缓冲模型的规范。在AVC及HEVC中,缓冲模型被称为假设参考解码器(HRD),其包括经译码图片缓冲器(CPB)及经解码图片缓冲器(DPB)两者的缓冲模型,且CPB行为及DPB行为是以数学方式指定。HRD对不同计时、缓冲器大小及位速率直接强加约束,且对位流特性及统计间接强加约束。HRD参数的完整集合包括五个基本参数:初始CPB移除延迟、CPB大小、位速率、初始DPB输出延迟,及DPB大小。Video coding standards may include specifications for video buffering models. In AVC and HEVC, the buffering model is called the Hypothetical Reference Decoder (HRD), which includes buffering models for both the coded picture buffer (CPB) and the decoded picture buffer (DPB), with CPB and DPB behaviors mathematically specified. The HRD directly imposes constraints on different timings, buffer sizes, and bit rates, and indirectly on bitstream characteristics and statistics. The complete set of HRD parameters includes five basic parameters: initial CPB removal delay, CPB size, bit rate, initial DPB output delay, and DPB size.

在AVC及HEVC中,作为HRD规范的部分,指定位流一致性及解码器一致性。尽管HRD被命名为一种类型的解码器,但通常在编码器侧处需要HRD以保证位流一致性,而在解码器侧处通常不需要HRD。指定两种类型的位流或HRD一致性,即,Type I及Type II。同样地,指定两种类型的解码器一致性:输出计时解码器一致性及输出顺序解码器一致性。In AVC and HEVC, bitstream conformance and decoder conformance are specified as part of the HRD specification. Although HRD is named as a type of decoder, HRD is generally required at the encoder to ensure bitstream conformance, but is generally not required at the decoder. Two types of bitstream or HRD conformance are specified: Type I and Type II. Similarly, two types of decoder conformance are specified: output timing decoder conformance and output order decoder conformance.

在AVC及HEVC HRD模型中,解码或CPB移除是基于存取单元,且假设图片解码瞬时。在实际应用中,如果一致解码器严格地遵循(例如)在图片计时补充增强信息(SEI)消息中发信的解码时间以开始存取单元的解码,那么输出特定经解码图片的最早可能时间等于那个特定图片的解码时间加解码那个特定图片所需要的时间。不同于AVC及HEVC HRD模型,在现实世界中解码图片所需要的时间不等于零。如贯穿本发明所使用的术语“瞬时”及“瞬时地”可指可在一或多个译码模型或任何一或多个译码模型的理想化方面中被假设为瞬时的任何持续时间,其中应理解,这种情形可不同于在物理或文本意义上“瞬时”。举例来说,出于本发明的目的,如果函数或进程发生在针对所述待执行函数或进程的假设或理想化最早可能时间的实际边限时或内,那么所述函数或进程可被视为名义上“瞬时”。在一些实例中,如本文所使用的语法及变量名称可根据其在HEVC模型内的含义加以理解。In the AVC and HEVC HRD models, decoding or CPB removal is based on access units, and picture decoding is assumed to be instantaneous. In practice, if a conforming decoder strictly adheres to the decoding time signaled, for example, in a picture timing supplemental enhancement information (SEI) message to begin decoding an access unit, then the earliest possible time to output a particular decoded picture is equal to the decoding time of that particular picture plus the time required to decode that particular picture. Unlike the AVC and HEVC HRD models, the time required to decode a picture in the real world is not zero. As used throughout this disclosure, the terms "instantaneous" and "instantaneously" may refer to any duration that can be assumed to be instantaneous in one or more coding models or idealized aspects of any one or more coding models, with the understanding that this may differ from being "instantaneous" in a physical or textual sense. For example, for the purposes of this disclosure, a function or process may be considered nominally "instantaneous" if it occurs within or at a practical margin of the assumed or idealized earliest possible time for the function or process to be performed. In some examples, syntax and variable names as used herein may be understood according to their meaning within the HEVC model.

基于子图片的CPB行为是在Kazui等人的“Enhancement on operation of codedpicture buffer”(ITU-T SG16WP3及ISO/IEC JTC1/SC29/WG11的研究视频译码的联合协作小组(JCT-VC),第7次会议:日内瓦,CH 21-30,2011年11月,JCTVC-G188(可在http://phenix.int-evry.fr/jct/doc_end_user/documents/7_Geneva/wg11/JCTVC-G188-v2.zip处得到))中被提出,以便以可互操作方式实现一个以下图片周期的译码延迟。可如下汇总JCTVC-G188方法:可将图片均匀地划分成M个树块组,即,所述图片的树块光栅扫描中的第一M个树块属于第一树块组,所述图片的树块光栅扫描中的第二M个树块属于第二树块组,等等。值M可在缓冲周期SEI消息中被发信。这个值可用以导出每一树块组的CPB移除时间(即,解码时间)。在这种意义上,JCTVC-G188CPB行为是基于子图片,其中每一子图片为树块组。在一些实例中,子图片可对应于一或多个切片、一或多个波(用于图片的波前分割),或一或多个图像块。在JCTVC-G188的这种方法中假设存取单元级别CPB移除时间照常被发信(使用图片计时SEI消息),且在每一存取单元内,用于树块组的CPB移除时间被假设为线性地或均匀地划分从上一存取单元的CPB移除时间到当前存取单元的CPB移除时间的间隔。Sub-picture based CPB behavior was proposed in Kazui et al., "Enhancement on operation of coded picture buffer" (Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16WP3 and ISO/IEC JTC1/SC29/WG11, 7th Meeting: Geneva, CH 21-30, November 2011, JCTVC-G188 (available at http://phenix.int-evry.fr/jct/doc_end_user/documents/7_Geneva/wg11/JCTVC-G188-v2.zip) to achieve a coding delay of less than one picture period in an interoperable manner. The JCTVC-G188 method can be summarized as follows: a picture can be evenly divided into M treeblock groups, i.e., the first M treeblocks in the treeblock raster scan of the picture belong to a first treeblock group, the second M treeblocks in the treeblock raster scan of the picture belong to a second treeblock group, and so on. The value M may be signaled in the buffering period SEI message. This value may be used to derive the CPB removal time (i.e., decoding time) for each treeblock group. In this sense, the JCTVC-G188 CPB behavior is based on sub-pictures, where each sub-picture is a treeblock group. In some examples, a sub-picture may correspond to one or more slices, one or more waves (for wavefront partitioning of a picture), or one or more image blocks. In this approach of JCTVC-G188, it is assumed that the access unit level CPB removal time is signaled as usual (using the picture timing SEI message), and within each access unit, the CPB removal time for the treeblock group is assumed to linearly or evenly divide the interval from the CPB removal time of the previous access unit to the CPB removal time of the current access unit.

JCTVC-G188的这种方法进一步暗示以下假设或位流要求:(1)在每一图片内,每一树块组是以需要相同量的解码时间的方式被编码(不仅在HRD模型中,而且针对现实世界解码器),其中第一树块组的经译码数据被视为包括在同一存取单元中且在第一VCL(视频译码层)NAL(网络抽象层)单元之前的所有非VCL NAL单元;(2)在每一图片内,用于每一树块组的位的数目完全相同,其中第一树块组的经译码数据被视为包括在同一存取单元中且在第一VCL NAL单元之前的所有非VCL NAL单元。This approach of JCTVC-G188 further implies the following assumptions or bitstream requirements: (1) within each picture, each tree block group is encoded in a manner that requires the same amount of decoding time (not only in the HRD model, but also for real-world decoders), where the decoded data of the first tree block group is considered to be included in all non-VCL NAL units in the same access unit and before the first VCL (Video Coding Layer) NAL (Network Abstraction Layer) unit; (2) within each picture, the number of bits used for each tree block group is exactly the same, where the decoded data of the first tree block group is considered to be included in all non-VCL NAL units in the same access unit and before the first VCL NAL unit.

用于指定基于子图片的CPB行为的现有方法是与至少以下问题相关联:(1)用于经译码图片中的每一树块组的经译码数据的量完全相同的要求难以用平衡的译码性能而实现(其中图片中具有更详细纹理或运动活动的区域的树块组可使用更多位)。(2)当一个以上树块组包括在切片中时,可不存在容易的方式来拆分属于不同树块组的树块的经译码位,及在编码器侧处单独地发送所述位且从CPB单独地移除所述位(即,单独地解码所述位)。Existing methods for specifying sub-picture-based CPB behavior are associated with at least the following problems: (1) The requirement that the amount of coded data for each treeblock group in a coded picture is exactly the same is difficult to achieve with balanced coding performance (where treeblock groups with areas of more detailed texture or motion activity in the picture may use more bits). (2) When more than one treeblock group is included in a slice, there may be no easy way to split the coded bits of treeblocks belonging to different treeblock groups and send the bits separately at the encoder side and remove the bits separately from the CPB (i.e., decode the bits separately).

为了解决以上问题,本发明用各种替代例来描述用于支持基于子图片的CPB行为的一般设计。在一些实例中,本发明的基于子图片的CPB技术的特征可包括以下技术的方面:(1)每一子图片可包括在解码顺序方面连续的经译码图片的数个译码块。译码块可完全相同于树块,或树块的子集;(2)可照常执行子图片的译码及位到图片中的不同子图片的分配,而不假设或要求用相同量的位来译码一个图片中的每一子图片(即,树块组)。因此,用于每一子图片的CPB移除时间可在位流中被发信,而非根据经发信图片级别CPB移除时间而导出;(3)当一个以上子图片包括在切片中时,可在每一子图片结束时应用字节对准,这与(例如)用于HEVC WD6中的图像块的字节对准形成对比。此外,每一子图片(惟经译码图片中的第一子图片除外)的入口点可被发信,这与(例如)用于HEVCWD6中的图像块的字节对准形成对比。举例来说,经接收发信值可指示在视频数据的较大集合(诸如,切片、图像块或帧)内的子图片中的至少一者的字节对准。特征(1)到(3)中的每一者可被独立地应用或结合其它特征而应用。To address the above issues, the present invention describes a general design for supporting sub-picture-based CPB behavior with various alternatives. In some instances, features of the sub-picture-based CPB technology of the present invention may include aspects of the following techniques: (1) Each sub-picture may include several coding blocks of a coded picture that are consecutive in decoding order. A coding block may be exactly the same as a tree block, or a subset of a tree block; (2) The coding of sub-pictures and the allocation of bits to different sub-pictures in a picture may be performed as usual, without assuming or requiring that each sub-picture in a picture (i.e., a set of tree blocks) be coded with the same amount of bits. Therefore, the CPB removal time for each sub-picture may be signaled in the bitstream, rather than being derived from the signaled picture-level CPB removal time; (3) When more than one sub-picture is included in a slice, byte alignment may be applied at the end of each sub-picture, in contrast to the byte alignment used for image blocks in HEVC WD6, for example. Furthermore, the entry point of each sub-picture (except the first sub-picture in a coded picture) can be signaled, in contrast to the byte alignment of tiles used, for example, in HEVC WD6. For example, the received signaled value may indicate the byte alignment of at least one of the sub-pictures within a larger set of video data, such as a slice, tile, or frame. Each of features (1) to (3) can be applied independently or in combination with the other features.

在一个实例中,可如下汇总包括基于子图片的CPB行为的HRD操作:当发信指示基于子图片的CPB行为在使用中时(例如,经由等于1的语法元素sub_pic_cpb_flag的序列级别发信),CPB移除或解码是基于子图片,或等效地,是基于解码单元,解码单元可为存取单元或存取单元的子集。换言之,每当从CPB移除解码单元(无论是存取单元还是存取单元的子集)以供解码时,就可从经发信初始CPB移除延迟及针对解码单元而发信的CPB移除延迟导出解码单元离开CPB的移除时间。CPB下溢被指定为如下条件:对于m的任何值,解码单元m的名义CPB移除时间tr,n(m)小于解码单元m的最终CPB移除时间taf(m)。在一个实例中,当语法元素low_delay_hrd_flag等于0时,要求CPB永不下溢。In one example, HRD operations including sub-picture-based CPB behavior can be summarized as follows: When sub-picture-based CPB behavior is signaled to be in use (e.g., via sequence-level signaling of the syntax element sub_pic_cpb_flag equal to 1), CPB removal or decoding is based on sub-pictures, or equivalently, on decoding units, which can be access units or subsets of access units. In other words, whenever a decoding unit (whether an access unit or a subset of an access unit) is removed from the CPB for decoding, the removal time of the decoding unit from the CPB can be derived from the signaled initial CPB removal delay and the signaled CPB removal delay for the decoding unit. CPB underflow is specified as the condition that, for any value of m, the nominal CPB removal time t r,n (m) of decoding unit m is less than the final CPB removal time t af (m) of decoding unit m. In one example, when the syntax element low_delay_hrd_flag is equal to 0, the CPB is required to never underflow.

在一个实例中,DPB输出及移除进程可仍在图片级别或存取单元级别处操作,即,每当从DPB输出或移除整个经解码图片时。经解码图片从DPB的移除可在存取单元n(含有当前图片)的第一解码单元的CPB移除时间瞬时地发生。In one example, the DPB output and removal process may still operate at the picture level or access unit level, i.e., whenever an entire decoded picture is output or removed from the DPB. Removal of a decoded picture from the DPB may occur instantaneously at the CPB removal time of the first decoding unit of access unit n (containing the current picture).

图1为说明可利用尤其用于以下操作的技术的实例视频编码及解码系统10的框图:将视频数据的一或多个解码单元存储在图片缓冲器中;获得用于一或多个解码单元的相应缓冲器移除时间;根据用于解码单元中的每一者的所获得缓冲器移除时间而从图片缓冲器移除解码单元;及译码对应于经移除解码单元的视频数据。1 is a block diagram illustrating an example video encoding and decoding system 10 that may utilize techniques for, among other things, storing one or more decoding units of video data in a picture buffer; obtaining respective buffer removal times for the one or more decoding units; removing decoding units from the picture buffer according to the obtained buffer removal times for each of the decoding units; and decoding video data corresponding to the removed decoding units.

如图1所示,系统10包括源装置12,源装置12经由通信信道16而将经编码视频传输到目的地装置14。源装置12及目的地装置14可包含广泛范围的装置中的任一者。在一些状况下,源装置12及目的地装置14可包含无线通信装置,诸如,无线手机、所谓的蜂窝或卫星无线电话,或可经由通信信道16而传达视频信息的任何无线装置,在这种状况下,通信信道16是无线的。然而,本发明的技术未必限于无线应用或设置。举例来说,这些技术可应用于空中电视广播、有线电视传输、卫星电视传输、因特网视频传输、编码到存储媒体上的经编码数字视频,或其它情境。因此,通信信道16可包含适合于经编码视频数据的传输或存储的无线媒体、有线媒体或存储媒体的任何组合。As shown in FIG1 , system 10 includes a source device 12 that transmits encoded video to a destination device 14 via a communication channel 16. Source device 12 and destination device 14 may comprise any of a wide range of devices. In some cases, source device 12 and destination device 14 may comprise wireless communication devices, such as wireless cell phones, so-called cellular or satellite radiotelephones, or any wireless device that can communicate video information via communication channel 16, in which case communication channel 16 is wireless. However, the techniques of this disclosure are not necessarily limited to wireless applications or settings. For example, these techniques may be applied to over-the-air television broadcasts, cable television transmissions, satellite television transmissions, Internet video transmissions, encoded digital video encoded onto storage media, or other scenarios. Thus, communication channel 16 may comprise any combination of wireless, wired, or storage media suitable for the transmission or storage of encoded video data.

替代地,经编码数据可从传输器24输出到存储装置34。相似地,经编码数据可由接收器26从存储装置34存取。存储装置34可包括多种分布式或本地存取式数据存储媒体中的任一者,诸如,硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪速存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适数字存储媒体。在另外实例中,存储装置34可对应于文件服务器、虚拟服务器、数据中心、数据中心的冗余网络,或可保持由源装置12产生的经编码视频的另一中间存储装置。目的地装置14可经由流式处理或下载而从存储装置34存取经存储视频数据。存储装置34或其部分的文件服务器实施可为能够存储经编码视频数据且将那个经编码视频数据传输到目的地装置14的任何服务器类型。实例文件服务器包括web服务器(例如,用于网站)、FTP服务器、网络连接存储(NAS)装置,或本地磁盘驱动器。目的地装置14可经由包括因特网连接的任何标准数据连接而存取经编码视频数据。这种连接可包括适合于存取存储在远程或非本地存储装置34上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器,等等),或这两者的组合。经编码视频数据从存储装置34的传输可为流式处理传输、下载传输,或这两者的组合。Alternatively, the encoded data may be output from transmitter 24 to storage device 34. Similarly, the encoded data may be accessed from storage device 34 by receiver 26. Storage device 34 may include any of a variety of distributed or locally accessible data storage media, such as a hard drive, Blu-ray disc, DVD, CD-ROM, flash memory, volatile or non-volatile memory, or any other suitable digital storage medium for storing encoded video data. In another example, storage device 34 may correspond to a file server, a virtual server, a data center, a redundant network of data centers, or another intermediate storage device that can hold the encoded video generated by source device 12. Destination device 14 may access the stored video data from storage device 34 via streaming or downloading. A file server implementation of storage device 34, or a portion thereof, may be any type of server capable of storing encoded video data and transmitting that encoded video data to destination device 14. Example file servers include a web server (e.g., for a website), an FTP server, a network-attached storage (NAS) device, or a local disk drive. Destination device 14 may access the encoded video data over any standard data connection, including an Internet connection. Such a connection may include a wireless channel (e.g., a Wi-Fi connection), a wired connection (e.g., DSL, cable modem, etc.), or a combination of both, suitable for accessing encoded video data stored on a remote or non-local storage device 34. The transmission of the encoded video data from storage device 34 may be a streaming transmission, a download transmission, or a combination of both.

在图1的实例中,源装置12包括视频源18、视频编码器20、调制器/解调器(调制解调器)22及传输器24。目的地装置14包括接收器26、调制解调器28、视频解码器30及显示装置32。根据本发明,源装置12的视频编码器20可经配置以应用尤其用于以下操作的技术:将视频数据的一或多个解码单元存储在图片缓冲器中;获得用于一或多个解码单元的相应缓冲器移除时间;根据用于解码单元中的每一者的所获得缓冲器移除时间而从图片缓冲器移除解码单元;及译码对应于经移除解码单元的视频数据。在其它实例中,源装置及目的地装置可包括其它组件或排列。举例来说,源装置12可从外部视频源(诸如,外部相机)而非整合式视频源18接收视频数据。同样地,目的地装置14可与外部显示装置界接,而非包括整合式显示装置32。In the example of FIG1 , source device 12 includes a video source 18, a video encoder 20, a modulator/demodulator (modem) 22, and a transmitter 24. Destination device 14 includes a receiver 26, a modem 28, a video decoder 30, and a display device 32. According to this disclosure, video encoder 20 of source device 12 may be configured to apply techniques for, among other things, storing one or more decoding units of video data in a picture buffer; obtaining respective buffer removal times for one or more decoding units; removing decoding units from the picture buffer according to the obtained buffer removal times for each of the decoding units; and decoding video data corresponding to the removed decoding units. In other examples, the source device and destination device may include other components or arrangements. For example, source device 12 may receive video data from an external video source (such as an external camera) rather than integrated video source 18. Similarly, destination device 14 may interface with an external display device rather than including integrated display device 32.

图1的所说明系统10仅仅为一个实例。用于以下操作的技术可由任何数字视频编码及/或解码装置执行:将视频数据的一或多个解码单元存储在图片缓冲器中;获得用于一或多个解码单元的相应缓冲器移除时间;根据用于解码单元中的每一者的所获得缓冲器移除时间而从图片缓冲器移除解码单元;及译码对应于经移除解码单元的视频数据。尽管本发明的技术通常是由视频编码装置执行,但所述技术也可由通常被称为“CODEC”的视频编码器/解码器执行。此外,本发明的技术也可由视频预处理器执行。源装置12及目的地装置14仅仅为这些译码装置的实例,其中源装置12产生经译码视频数据以供传输到目的地装置14。在一些实例中,装置12、14可以大体上对称方式而操作,使得装置12、14中的每一者包括视频编码及解码组件。因此,系统10可支持视频装置12、14之间的单向或双向视频传输,例如,用于视频流式处理、视频播放、视频广播或视频电话。The illustrated system 10 of FIG. 1 is merely an example. Techniques for storing one or more decoding units of video data in a picture buffer; obtaining corresponding buffer removal times for one or more decoding units; removing decoding units from the picture buffer according to the obtained buffer removal times for each of the decoding units; and decoding video data corresponding to the removed decoding units may be performed by any digital video encoding and/or decoding device. Although the techniques of this disclosure are typically performed by a video encoding device, they may also be performed by a video encoder/decoder, often referred to as a "CODEC." Furthermore, the techniques of this disclosure may also be performed by a video preprocessor. Source device 12 and destination device 14 are merely examples of such coding devices, with source device 12 generating coded video data for transmission to destination device 14. In some examples, devices 12 and 14 may operate in a substantially symmetrical manner, such that each device 12 and 14 includes video encoding and decoding components. Thus, system 10 may support one-way or two-way video transmission between video devices 12 and 14, for example, for video streaming, video playback, video broadcasting, or video telephony.

源装置12的视频源18可包括诸如摄像机的视频捕获装置、含有经以前捕获视频的视频存档,及/或来自视频内容提供者的视频馈送。作为另外替代例,视频源18可产生基于计算机图形的数据作为源视频,或实况视频、经存档视频与经计算机产生视频的组合。在一些状况下,如果视频源18为摄像机,那么源装置12及目的地装置14可形成所谓的相机电话或视频电话。然而,如上文所提及,本发明所描述的技术大体上可适用于视频译码,且可应用于无线及/或有线应用。在每一状况下,经捕获、经预捕获或经计算机产生视频可由视频编码器20编码。经编码视频信息接着可由调制解调器22根据通信标准而调制,且经由传输器24而传输到目的地装置14。调制解调器22可包括各种混频器、滤波器、放大器,或经设计用于信号调制的其它组件。传输器24可包括经设计用于传输数据的电路,包括放大器、滤波器及一或多个天线。Video source 18 of source device 12 may include a video capture device such as a video camera, a video archive containing previously captured video, and/or a video feed from a video content provider. As a further alternative, video source 18 may generate computer graphics-based data as the source video, or a combination of live video, archived video, and computer-generated video. In some cases, if video source 18 is a video camera, source device 12 and destination device 14 may form so-called camera phones or video phones. However, as mentioned above, the techniques described in this disclosure are generally applicable to video coding and can be applied to wireless and/or wired applications. In each case, captured, pre-captured, or computer-generated video may be encoded by video encoder 20. The encoded video information may then be modulated by modem 22 according to a communication standard and transmitted to destination device 14 via transmitter 24. Modem 22 may include various mixers, filters, amplifiers, or other components designed for signal modulation. Transmitter 24 may include circuitry designed for transmitting data, including amplifiers, filters, and one or more antennas.

目的地装置14的接收器26经由信道16而接收信息,且调制解调器28解调所述信息。同样地,视频编码进程可实施本文所描述的技术中的一或多者,尤其以将视频数据的一或多个解码单元存储在图片缓冲器中、获得用于一或多个解码单元的相应缓冲器移除时间、根据用于解码单元中的每一者的所获得缓冲器移除时间而从图片缓冲器移除解码单元,且译码对应于经移除解码单元的视频数据。经由信道16而传达的信息可包括由视频编码器20定义的语法信息,所述语法信息也可由视频解码器30使用,其包括描述宏块、译码树单元、切片及其它经译码单元(例如,图片组(GOP))的特性及/或处理的语法元素。显示装置32向用户显示经解码视频数据,且可包含多种显示装置中的任一者,诸如,阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器,或另一类型的显示装置。Receiver 26 of destination device 14 receives information via channel 16, and modem 28 demodulates the information. Likewise, the video encoding process may implement one or more of the techniques described herein, particularly to store one or more decoding units of video data in a picture buffer, obtain corresponding buffer removal times for the one or more decoding units, remove the decoding units from the picture buffer according to the obtained buffer removal times for each of the decoding units, and decode the video data corresponding to the removed decoding units. The information communicated via channel 16 may include syntax information defined by video encoder 20, which may also be used by video decoder 30, including syntax elements that describe characteristics and/or processing of macroblocks, coding tree units, slices, and other coded units (e.g., groups of pictures (GOPs)). Display device 32 displays the decoded video data to a user and may include any of a variety of display devices, such as a cathode ray tube (CRT), a liquid crystal display (LCD), a plasma display, an organic light emitting diode (OLED) display, or another type of display device.

在图1的实例中,通信信道16可包含任何无线或有线通信媒体,诸如,射频(RF)频谱或一或多个物理传输线,或无线媒体与有线媒体的任何组合。通信信道16可形成基于数据包的网络的部分,诸如,局域网、广域网,或诸如因特网的全局网络。通信信道16通常表示用于将视频数据从源装置12传输到目的地装置14的任何合适通信媒体或不同通信媒体的集合,包括有线或无线媒体的任何合适组合。通信信道16可包括路由器、交换机、基站,或可用以促进从源装置12到目的地装置14的通信的任何其它设备。在其它实例中,源装置12可将经编码数据存储到存储媒体上,诸如,存储在存储装置34中,而非传输所述数据。同样地,目的地装置14可经配置以从存储装置34或另一存储媒体或装置检索经编码数据。In the example of FIG1 , communication channel 16 may comprise any wireless or wired communication medium, such as a radio frequency (RF) spectrum or one or more physical transmission lines, or any combination of wireless and wired media. Communication channel 16 may form part of a packet-based network, such as a local area network, a wide area network, or a global network such as the Internet. Communication channel 16 generally represents any suitable communication medium or collection of different communication media, including any suitable combination of wired or wireless media, for transmitting video data from source device 12 to destination device 14. Communication channel 16 may include routers, switches, base stations, or any other equipment that can be used to facilitate communication from source device 12 to destination device 14. In other examples, source device 12 may store encoded data on a storage medium, such as storage device 34, rather than transmitting the data. Similarly, destination device 14 may be configured to retrieve the encoded data from storage device 34 or another storage medium or device.

视频编码器20及视频解码器30可根据诸如本文所描述的标准的视频压缩标准而操作。然而,本发明的技术不限于任何特定译码标准。尽管图1中未图示,但在一些方面中,视频编码器20及视频解码器30可各自与音频编码器及解码器整合,且可包括适当MUX-DEMUX单元或其它硬件及软件,以处置公共数据流或单独数据流中的音频及视频两者的编码。适用时,MUX-DEMUX单元可符合ITU H.223多路复用器协议,或诸如用户数据报协议(UDP)的其它协议。Video encoder 20 and video decoder 30 may operate according to a video compression standard such as the standards described herein. However, the techniques of this disclosure are not limited to any particular coding standard. Although not shown in FIG. 1 , in some aspects, video encoder 20 and video decoder 30 may each be integrated with an audio encoder and decoder and may include appropriate MUX-DEMUX units or other hardware and software to handle the encoding of both audio and video in a common data stream or in separate data streams. Where applicable, the MUX-DEMUX units may conform to the ITU H.223 multiplexer protocol, or other protocols such as the User Datagram Protocol (UDP).

视频编码器20及视频解码器30可各自被实施为多种合适编码器电路中的任一者,诸如,一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、包括诸如编码器或解码器的视频译码装置的无线通信装置、离散逻辑、软件、硬件、固件,或其任何组合。视频编码器20及视频解码器30中的每一者可包括在一或多个编码器或解码器中,所述一或多个编码器或解码器中的任一者可在相应相机、计算机、移动装置、订户装置、广播装置、机顶盒、服务器或其它装置中整合为组合式编码器/解码器(CODEC)的部分。Video encoder 20 and video decoder 30 may each be implemented as any of a variety of suitable encoder circuits, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), wireless communication devices including video coding devices such as encoders or decoders, discrete logic, software, hardware, firmware, or any combination thereof. Each of video encoder 20 and video decoder 30 may be included in one or more encoders or decoders, either of which may be integrated as part of a combined encoder/decoder (CODEC) in a respective camera, computer, mobile device, subscriber device, broadcast device, set-top box, server, or other device.

视频序列通常包括一系列视频帧。图片组(GOP)通常包含一系列一或多个视频帧。GOP可包括在GOP的标头中、在GOP的一或多个帧的标头中或在别处的语法数据,所述语法数据描述包括在GOP中的帧的数目。每一帧可包括描述用于相应帧的编码模式的帧语法数据。视频编码器20通常对个别视频帧内的视频块(也被称为译码单元(CU))进行操作,以便编码视频数据。视频块可对应于最大译码单元(LCU)或LCU的分区。视频块可具有固定或变化大小,且其大小可根据指定译码标准而不同。每一视频帧可包括多个切片。每一切片可包括多个LCU,所述LCU可排列成若干分区,也被称为子CU。LCU也可被称为译码树单元。A video sequence typically includes a series of video frames. A group of pictures (GOP) typically includes a series of one or more video frames. A GOP may include syntax data in a header of the GOP, in a header of one or more frames of the GOP, or elsewhere, that describes the number of frames included in the GOP. Each frame may include frame syntax data that describes the encoding mode used for the corresponding frame. Video encoder 20 typically operates on video blocks (also referred to as decoding units (CUs)) within individual video frames to encode video data. A video block may correspond to a largest decoding unit (LCU) or a partition of an LCU. A video block may have a fixed or variable size, and its size may vary according to a specified decoding standard. Each video frame may include multiple slices. Each slice may include multiple LCUs, which may be arranged into several partitions, also referred to as sub-CUs. An LCU may also be referred to as a decoding tree unit.

作为实例,ITU-T H.264标准支持以下各者:以各种块大小的帧内预测,诸如,针对亮度分量的16乘16、8乘8或4乘4,及针对色度分量的8×8;以及以各种块大小的帧间预测,诸如,针对亮度分量的16×16、16×8、8×16、8×8、8×4、4×8及4×4,及针对色度分量的对应缩放大小。在本发明中,“N×N”与“N乘N”可互换式地用以在垂直维度及水平维度方面指块的像素尺寸,例如,16×16像素或16乘16像素。一般而言,16×16块将具有在垂直方向上的16个像素(y=16),及在水平方向上的16个像素(x=16)。同样地,N×N块通常具有在垂直方向上的N个像素及在水平方向上的N个像素,其中N表示非负整数值。块中的像素可以行及列而排列。此外,块未必需要在水平方向上与在垂直方向上具有相同数目个像素。举例来说,块可包含N×M像素,其中M未必等于N。As an example, the ITU-T H.264 standard supports intra-prediction at various block sizes, such as 16x16, 8x8, or 4x4 for luma components, and 8x8 for chroma components, and inter-prediction at various block sizes, such as 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, and 4x4 for luma components, and corresponding scaled sizes for chroma components. In this disclosure, "NxN" and "NxN" may be used interchangeably to refer to the pixel dimensions of a block in terms of vertical and horizontal dimensions, e.g., 16x16 pixels or 16x16 pixels. Generally, a 16x16 block will have 16 pixels in the vertical direction (y=16) and 16 pixels in the horizontal direction (x=16). Similarly, an NxN block typically has N pixels in the vertical direction and N pixels in the horizontal direction, where N represents a non-negative integer value. The pixels in a block can be arranged in rows and columns. Furthermore, a block does not necessarily need to have the same number of pixels in the horizontal direction as in the vertical direction. For example, a block may include N×M pixels, where M is not necessarily equal to N.

视频块可包含在像素域中的像素数据块,或在变换域中的变换系数块,例如,在将诸如离散余弦变换(DCT)、整数变换、小波变换或概念上相似变换的变换应用于表示经译码视频块与预测性视频块之间的像素差的残余视频块数据之后。在一些状况下,视频块可包含在变换域中的经量化变换系数块。A video block may comprise a block of pixel data in the pixel domain, or a block of transform coefficients in the transform domain, e.g., after applying a transform such as a discrete cosine transform (DCT), an integer transform, a wavelet transform, or a conceptually similar transform to residual video block data representing pixel differences between the coded video block and the predictive video block. In some cases, a video block may comprise a block of quantized transform coefficients in the transform domain.

较小视频块可提供较好分辨率,且可用于视频帧的包括高细节级别的位置。一般而言,可将块及各种分区(有时被称为子块)视为视频块。另外,可将切片视为多个视频块,诸如,块及/或子块。每一切片可为视频帧的可独立解码单元。替代地,帧自身可为可解码单元,或帧的其它部分可被定义为可解码单元。术语“经译码单元”可指视频帧的任何可独立解码单元,诸如,整个帧或帧的切片、也被称为经译码视频序列的图片组(GOP),或根据适用译码技术而定义的另一可独立解码单元。Smaller video blocks can provide better resolution and can be used for locations of a video frame that include a high level of detail. In general, blocks and various partitions (sometimes referred to as sub-blocks) can be considered video blocks. Additionally, a slice can be considered a plurality of video blocks, such as blocks and/or sub-blocks. Each slice can be an independently decodable unit of a video frame. Alternatively, a frame itself can be a decodable unit, or other portions of a frame can be defined as decodable units. The term "coded unit" can refer to any independently decodable unit of a video frame, such as an entire frame or a slice of a frame, a group of pictures (GOP) of a coded video sequence, or another independently decodable unit defined according to an applicable coding technique.

在进行帧内预测性或帧间预测性译码以产生预测性数据及残余数据之后,且在进行任何变换(诸如,在H.264/AVC中使用的4×4或8×8整数变换,或离散余弦变换DCT)以产生变换系数之后,可执行变换系数的量化。量化通常是指量化变换系数以可能地缩减用以表示所述系数的数据的量的进程。量化进程可缩减与系数中的一些或全部相关联的位深度。举例来说,n位值可在量化期间降值舍入到m位值,其中n大于m。After intra-predictive or inter-predictive coding is performed to generate predictive data and residual data, and after any transform (such as the 4x4 or 8x8 integer transforms used in H.264/AVC, or discrete cosine transforms (DCTs)) is performed to generate transform coefficients, quantization of the transform coefficients may be performed. Quantization generally refers to the process of quantizing transform coefficients to potentially reduce the amount of data used to represent the coefficients. The quantization process may reduce the bit depth associated with some or all of the coefficients. For example, an n-bit value may be rounded down to an m-bit value during quantization, where n is greater than m.

HEVC将视频数据块称为译码单元(CU),所述CU可包括一或多个预测单元(PU)及/或一或多个变换单元(TU)。本发明也可使用术语“块”以指CU、PU或TU中的任一者。位流内的语法数据可定义最大译码单元(LCU),所述LCU在像素的数目方面为最大译码单元。一般而言,CU具有与H.264的宏块的目的相似的目的,惟CU不具有大小区别除外。因此,CU可拆分成若干子CU。一般而言,在本发明中对CU的参考可指图片的最大译码单元,或LCU的子CU。LCU可拆分成若干子CU,且每一子CU可进一步拆分成若干子CU。用于位流的语法数据可定义LCU可被拆分的最大次数,被称为CU深度。因此,位流也可定义最小译码单元(SCU)。HEVC refers to a block of video data as a coding unit (CU), which may include one or more prediction units (PUs) and/or one or more transform units (TUs). This disclosure may also use the term "block" to refer to any of a CU, PU, or TU. Syntax data within the bitstream may define a largest coding unit (LCU), which is the largest coding unit in terms of the number of pixels. In general, a CU has a purpose similar to that of a macroblock of H.264, except that a CU does not have a size distinction. Therefore, a CU may be split into several sub-CUs. In general, references to a CU in this disclosure may refer to the largest coding unit of a picture, or a sub-CU of an LCU. An LCU may be split into several sub-CUs, and each sub-CU may be further split into several sub-CUs. Syntax data for the bitstream may define the maximum number of times an LCU may be split, which is called the CU depth. Therefore, the bitstream may also define a smallest coding unit (SCU).

LCU可与四叉树数据结构相关联。一般而言,四叉树数据结构包括每CU一个节点,其中根节点对应于LCU。如果CU拆分成四个子CU,那么对应于所述CU的节点包括四个叶节点,所述叶节点中的每一者对应于所述子CU中的一者。四叉树数据结构的每一节点可提供用于对应CU的语法数据。举例来说,四叉树中的节点可包括拆分旗标,所述拆分旗标指示对应于所述节点的CU是否拆分成若干子CU。用于CU的语法元素可被递归地定义,且可取决于CU是否拆分成若干子CU。如果CU未被进一步拆分,那么其被称为叶CU。在本发明中,叶CU的4个子CU也将被称为叶CU,但不存在原始叶CU的显式拆分。举例来说,如果以16×16大小的CU未被进一步拆分,那么四个8×8子CU也可被称为叶CU,但16×16CU尚未被拆分。An LCU may be associated with a quadtree data structure. In general, a quadtree data structure includes one node per CU, where the root node corresponds to the LCU. If a CU is split into four sub-CUs, the node corresponding to the CU includes four leaf nodes, each of which corresponds to one of the sub-CUs. Each node of the quadtree data structure may provide syntax data for the corresponding CU. For example, a node in the quadtree may include a split flag that indicates whether the CU corresponding to the node is split into sub-CUs. Syntax elements for a CU may be defined recursively and may depend on whether the CU is split into sub-CUs. If a CU is not split further, it is referred to as a leaf-CU. In the present invention, the four sub-CUs of a leaf-CU will also be referred to as leaf-CUs, but there is no explicit splitting of the original leaf-CU. For example, if a CU of size 16×16 is not split further, the four 8×8 sub-CUs may also be referred to as leaf-CUs, but the 16×16 CU has not yet been split.

此外,叶CU的TU也可与相应四叉树数据结构相关联。即,叶CU可包括指示叶CU如何拆分成若干TU的四叉树。本发明将指示LCU如何被分割的四叉树称为CU四叉树,且将指示叶CU如何分割成若干TU的四叉树称为TU四叉树。TU四叉树的根节点通常对应于叶CU,而CU四叉树的根节点通常对应于LCU。TU四叉树的未被拆分的TU可被称为叶TU。Furthermore, the TUs of a leaf-CU may also be associated with corresponding quadtree data structures. That is, a leaf-CU may include a quadtree that indicates how the leaf-CU is split into TUs. This disclosure refers to the quadtree that indicates how an LCU is partitioned as a CU quadtree, and the quadtree that indicates how a leaf-CU is partitioned into TUs as a TU quadtree. The root node of a TU quadtree typically corresponds to a leaf-CU, while the root node of a CU quadtree typically corresponds to an LCU. Unsplit TUs of a TU quadtree may be referred to as leaf-TUs.

叶CU可包括一或多个预测单元(PU)。一般而言,PU表示对应CU的全部或部分,且可包括用于检索用于所述PU的参考样本的数据。举例来说,当PU被帧间模式编码时,PU可包括定义用于PU的运动矢量的数据。定义运动矢量的数据可描述(例如)运动矢量的水平分量、运动矢量的垂直分量、用于运动矢量的分辨率(例如,四分之一像素精度或八分之一像素精度)、运动矢量所指向的参考帧,及/或用于运动矢量的参考列表(例如,列表0或列表1)。定义PU的用于叶CU的数据也可描述(例如)CU成为一或多个PU的分割。取决于CU未被译码、被帧内预测模式编码还是被帧间预测模式编码,分割模式可不同。对于帧内译码,PU可被视为与下文所描述的叶变换单元相同。A leaf-CU may include one or more prediction units (PUs). In general, a PU represents all or part of the corresponding CU and may include data for retrieving reference samples for the PU. For example, when the PU is inter-mode encoded, the PU may include data defining a motion vector for the PU. The data defining the motion vector may describe, for example, the horizontal component of the motion vector, the vertical component of the motion vector, the resolution used for the motion vector (e.g., quarter-pel precision or eighth-pel precision), the reference frame to which the motion vector points, and/or the reference list used for the motion vector (e.g., list 0 or list 1). The data for the leaf-CU defining the PU may also describe, for example, the partitioning of the CU into one or more PUs. The partitioning mode may be different depending on whether the CU is uncoded, intra-prediction mode encoded, or inter-prediction mode encoded. For intra-coding, a PU may be considered the same as a leaf transform unit, described below.

叶CU可包括一或多个变换单元(TU)。所述变换单元可使用TU四叉树结构予以指定,如上文所论述。即,拆分旗标可指示叶CU是否拆分成四个变换单元。接着,每一变换单元可进一步拆分成4个子TU。当TU未被进一步拆分时,其可被称为叶TU。一般而言,拆分旗标可指示叶TU拆分成若干正方形TU。为了指示TU拆分成若干非正方形TU,可包括其它语法数据,例如,指示TU将根据非正方形四叉树变换(NSQT)而分割的语法数据。A leaf-CU may include one or more transform units (TUs). The transform units may be specified using a TU quadtree structure, as discussed above. That is, a split flag may indicate whether the leaf-CU is split into four transform units. Each transform unit may then be further split into four sub-TUs. When a TU is not further split, it may be referred to as a leaf-TU. In general, a split flag may indicate the splitting of a leaf-TU into square TUs. To indicate the splitting of a TU into non-square TUs, other syntax data may be included, such as syntax data indicating that the TU is to be partitioned according to a non-square quadtree transform (NSQT).

通常,对于帧内译码,属于叶CU的所有叶TU共享相同帧内预测模式。即,通常应用相同帧内预测模式以计算叶CU的所有TU的预测值。对于帧内译码,视频编码器可使用帧内预测模式来计算每一叶TU的残余值,作为预测性值的对应于TU的部分与原始块之间的差。残余值可被变换、量化及扫描。对于帧间译码,视频编码器可在PU级别处执行预测,且可计算用于每一PU的残余。对应于叶CU的残余值可被变换、量化及扫描。对于帧间译码,叶TU可大于或小于PU。对于帧内译码,PU可与对应叶TU并置。在一些实例中,叶TU的最大大小可为对应叶CU的大小。Typically, for intra coding, all leaf-TUs belonging to a leaf-CU share the same intra prediction mode. That is, the same intra prediction mode is typically applied to calculate prediction values for all TUs of a leaf-CU. For intra coding, the video encoder may use the intra prediction mode to calculate a residual value for each leaf-TU as the difference between the portion of the predictive value corresponding to the TU and the original block. The residual value may be transformed, quantized, and scanned. For inter coding, the video encoder may perform prediction at the PU level and may calculate a residual for each PU. The residual value corresponding to a leaf-CU may be transformed, quantized, and scanned. For inter coding, a leaf-TU may be larger or smaller than a PU. For intra coding, a PU may be collocated with the corresponding leaf-TU. In some examples, the maximum size of a leaf-TU may be the size of the corresponding leaf-CU.

一般而言,本发明使用术语CU及TU以分别指叶CU及叶TU,除非另有提到。一般而言,本发明的技术是关于变换、量化、扫描及熵编码CU的数据。作为实例,本发明的技术包括选择待使用的变换,以基于用以预测经帧内预测块的帧内预测模式来变换所述块的残余值。本发明也使用术语“方向性变换”或“经设计变换”以指取决于帧内预测模式方向的此类变换。即,视频编码器可选择方向性变换以应用于变换单元(TU)。如上文所提到,帧内预测包括从图片的经以前译码CU及TU预测所述同一图片的当前CU的TU。更具体地说,视频编码器可使用特定帧内预测模式来帧内预测图片的当前TU。In general, this disclosure uses the terms CU and TU to refer to leaf-CU and leaf-TU, respectively, unless otherwise noted. In general, the techniques of this disclosure are about transforming, quantizing, scanning, and entropy encoding data for a CU. As an example, the techniques of this disclosure include selecting a transform to be used to transform the residual values of an intra-predicted block based on the intra-prediction mode used to predict the block. This disclosure also uses the terms "directional transform" or "designed transform" to refer to such transforms that depend on the direction of the intra-prediction mode. That is, a video encoder may select a directional transform to apply to a transform unit (TU). As mentioned above, intra-prediction includes predicting a TU of a current CU of a picture from previously coded CUs and TUs of the same picture. More specifically, a video encoder may use a specific intra-prediction mode to intra-predict a current TU of a picture.

在量化之后,可(例如)根据内容自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、概率区间分割熵译码(PIPE)或另一熵译码方法来执行经量化数据的熵译码。经配置用于熵译码的处理单元或另一处理单元可执行其它处理功能,诸如,经量化系数的零行程长度译码,及/或语法信息的产生,诸如,经译码块样式(CBP)值、宏块类型、译码模式、用于经译码单元(诸如,帧、切片、宏块或序列)的最大宏块大小,或其它语法信息。After quantization, entropy coding of the quantized data may be performed, for example, according to content adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), probability interval partitioning entropy coding (PIPE), or another entropy coding method. A processing unit configured for entropy coding or another processing unit may perform other processing functions, such as zero run-length coding of quantized coefficients, and/or generation of syntax information, such as coded block pattern (CBP) values, macroblock types, coding modes, maximum macroblock sizes for coded units (such as frames, slices, macroblocks, or sequences), or other syntax information.

视频编码器20可经配置以执行反量化及反变换,以将待作为参考而用于预测后续块的经解码块存储在(例如)待在时间上预测的同一或相同帧中。视频编码器20可(例如)在帧标头、块标头、切片标头或GOP标头中进一步将诸如基于块的语法数据、基于帧的语法数据及基于GOP的语法数据的语法数据发送到视频解码器30。GOP语法数据可描述相应GOP中的帧的数目,且帧语法数据可指示用以编码对应帧的编码/预测模式。Video encoder 20 may be configured to perform inverse quantization and inverse transform to store a decoded block to be used as a reference for predicting a subsequent block in, for example, the same or identical frame to be temporally predicted. Video encoder 20 may further send syntax data, such as block-based syntax data, frame-based syntax data, and GOP-based syntax data, to video decoder 30, for example, in a frame header, block header, slice header, or GOP header. The GOP syntax data may describe the number of frames in the respective GOP, and the frame syntax data may indicate the encoding/prediction mode used to encode the corresponding frame.

适用时,视频编码器20及视频解码器30可各自被实施为多种合适编码器或解码器电路中的任一者,诸如,一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑电路、软件、硬件、固件,或其任何组合。视频编码器20及视频解码器30中的每一者可包括在一或多个编码器或解码器中,所述一或多个编码器或解码器中的任一者可整合为组合式视频编码器/解码器(CODEC)的部分。包括视频编码器20及/或视频解码器30的设备可包含集成电路、微处理器,及/或无线通信装置,诸如,蜂窝电话。Where applicable, video encoder 20 and video decoder 30 may each be implemented as any of a variety of suitable encoder or decoder circuits, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic circuits, software, hardware, firmware, or any combination thereof. Each of video encoder 20 and video decoder 30 may be included in one or more encoders or decoders, any of which may be integrated as part of a combined video encoder/decoder (CODEC). An apparatus including video encoder 20 and/or video decoder 30 may include an integrated circuit, a microprocessor, and/or a wireless communication device, such as a cellular telephone.

根据本发明的技术,视频编码器20及/或视频解码器30可经配置尤其以将视频数据的一或多个解码单元存储在图片缓冲器中、获得用于一或多个解码单元的相应缓冲器移除时间、根据用于解码单元中的每一者的所获得缓冲器移除时间而从图片缓冲器移除解码单元,且译码对应于经移除解码单元的视频数据。According to the techniques of this disclosure, video encoder 20 and/or video decoder 30 may be configured to, among other things, store one or more decoding units of video data in a picture buffer, obtain respective buffer removal times for the one or more decoding units, remove the decoding units from the picture buffer according to the obtained buffer removal times for each of the decoding units, and decode video data corresponding to the removed decoding units.

以下定义是关于实例视频编码器20及/或视频解码器30而提供,视频编码器20及/或视频解码器30经配置尤其以将视频数据的一或多个解码单元存储在图片缓冲器中、获得用于一或多个解码单元的相应缓冲器移除时间、根据用于解码单元中的每一者的所获得缓冲器移除时间而从图片缓冲器移除解码单元,且译码对应于经移除解码单元的视频数据。The following definitions are provided with respect to example video encoder 20 and/or video decoder 30 configured to, among other things, store one or more decoding units of video data in a picture buffer, obtain respective buffer removal times for the one or more decoding units, remove the decoding units from the picture buffer according to the obtained buffer removal times for each of the decoding units, and decode video data corresponding to the removed decoding units.

出于描述一个实例集合的目的,可如下定义术语“解码单元”:For the purpose of describing one set of instances, the term "decoding unit" may be defined as follows:

解码单元:存取单元或存取单元的子集。如果sub_pic_cpb_flag等于0,那么解码单元为存取单元;否则,解码单元为存取单元的子集。当sub_pic_cpb_flag等于1时,存取单元中的第一解码单元包括存取单元中的所有非VCL NAL单元,及同一存取单元中的第一VCLNAL单元,且存取单元中的每一其它解码单元为并非存取单元中的第一经译码切片NAL单元的经译码切片NAL单元。Decoding unit: An access unit or a subset of an access unit. If sub_pic_cpb_flag is equal to 0, the decoding unit is an access unit; otherwise, the decoding unit is a subset of an access unit. When sub_pic_cpb_flag is equal to 1, the first decoding unit in an access unit includes all non-VCL NAL units in the access unit and the first VCL NAL unit in the same access unit, and every other decoding unit in the access unit is a coded slice NAL unit that is not the first coded slice NAL unit in the access unit.

出于描述第二实例集合的目的,可如下定义术语“解码单元”,其中术语“子图片”的额外定义是如“解码单元”的对应实例定义中所使用:For the purposes of describing the second set of examples, the term "decoding unit" may be defined as follows, where the additional definition of the term "sub-picture" is used in the corresponding example definition of "decoding unit":

解码单元:存取单元或存取单元的子集。如果sub_pic_cpb_flag等于0,那么解码单元为存取单元;否则,解码单元为存取单元的子集。当sub_pic_cpb_flag等于1时,存取单元中的第一解码单元包括存取单元中的所有非VCL NAL单元,及同一存取单元中的图片的第一子图片,且存取单元中的每一其它解码单元为并非存取单元中的第一子图片的子图片。Decoding unit: An access unit or a subset of an access unit. If sub_pic_cpb_flag is equal to 0, the decoding unit is an access unit; otherwise, the decoding unit is a subset of an access unit. When sub_pic_cpb_flag is equal to 1, the first decoding unit in an access unit includes all non-VCL NAL units in the access unit and the first sub-picture of a picture in the same access unit, and every other decoding unit in the access unit is a sub-picture that is not the first sub-picture in the access unit.

子图片:在解码顺序方面连续的经译码图片的数个译码块。Sub-picture: A number of coded blocks of a coded picture that are consecutive in decoding order.

在根据上文所提供的第二实例集合的定义中,当一个以上子图片包括在切片中时,可在每一子图片结束时应用字节对准,这与(例如)用于HEVC WD6中的图像块的字节对准形成对比。此外,每一子图片(惟经译码图片中的第一子图片除外)的入口点可被发信。In the definition according to the second example set provided above, when more than one sub-picture is included in a slice, byte alignment may be applied at the end of each sub-picture, in contrast to the byte alignment used for image blocks in, for example, HEVC WD6. Furthermore, the entry point of each sub-picture (except the first sub-picture in a coded picture) may be signaled.

在一些替代例中,当位流含有多个可缩放层或视图时,解码单元可被定义为层表示或视图组件。在层表示或视图组件的第一VCL NAL单元之前的所有非VCL单元也属于含有层表示或视图组件的解码单元。In some alternatives, when the bitstream contains multiple scalable layers or views, a decoding unit can be defined as a layer representation or view component. All non-VCL units before the first VCL NAL unit of a layer representation or view component also belong to the decoding unit containing the layer representation or view component.

提供实例假设参考解码器(HRD)操作、经译码图片缓冲器的实例操作、位流到达的实例计时、解码单元移除的实例计时、解码单元的实例解码、经解码图片缓冲器的实例操作、图片从经解码图片缓冲器的实例移除、实例图片输出以及实例当前经解码图片标记及存储的以下描述以说明视频编码器20及/或视频解码器30的实例,除其它功能外,视频编码器20及/或视频解码器30还可经配置以将视频数据的一或多个解码单元存储在图片缓冲器中、获得用于一或多个解码单元的相应缓冲器移除时间、根据用于解码单元中的每一者的所获得缓冲器移除时间而从图片缓冲器移除解码单元,且译码对应于经移除解码单元的视频数据。在其它实例中,可不同地定义或执行所述操作。以此方式,视频编码器20及/或视频解码器30可经配置以根据下文所描述的HRD操作的各种实例而操作。The following description of example hypothetical reference decoder (HRD) operations, example operations of a coded picture buffer, example timing of bitstream arrival, example timing of decoding unit removal, example decoding of a decoding unit, example operations of a decoded picture buffer, example removal of a picture from the decoded picture buffer, example picture output, and example current decoded picture marking and storage is provided to illustrate examples of video encoder 20 and/or video decoder 30. Video encoder 20 and/or video decoder 30 may be configured to, among other functions, store one or more decoding units of video data in a picture buffer, obtain respective buffer removal times for one or more decoding units, remove decoding units from the picture buffer according to the obtained buffer removal times for each of the decoding units, and decode video data corresponding to the removed decoding units. In other examples, the operations may be defined or performed differently. In this manner, video encoder 20 and/or video decoder 30 may be configured to operate according to various examples of HRD operations described below.

作为一个实例,可如下概括地描述HRD操作:CPB大小(位的数目)为CpbSize[SchedSelIdx]。用于时间层X的DPB大小(图片存储缓冲器的数目)针对在0到max_temporal_layers_minus1(包括在内)的范围内的每一X为max_dec_pic_buffering[X]+1。在这个实例中,HRD可操作如下:与根据指定到达调度而流动到CPB中的存取单元相关联的数据可由假设流调度器(HSS)(即,传递调度器)传递。与每一解码单元相关联的数据可通过瞬时解码进程在CPB移除时间瞬时地移除及解码。每一经解码图片可放置在DPB中。在DPB输出时间或经解码图片变得不再为帧间预测参考所需要的时间中的较迟一者,可从DPB移除经解码图片。As an example, HRD operation can be generally described as follows: the CPB size (number of bits) is CpbSize[SchedSelIdx]. The DPB size (number of picture storage buffers) for temporal layer X is max_dec_pic_buffering[X]+1 for each X in the range of 0 to max_temporal_layers_minus1 (inclusive). In this example, the HRD can operate as follows: data associated with access units that flow into the CPB according to a specified arrival schedule can be delivered by a hypothetical stream scheduler (HSS) (i.e., a delivery scheduler). Data associated with each decoding unit can be instantaneously removed and decoded at the CPB removal time by a transient decoding process. Each decoded picture can be placed in the DPB. The decoded picture can be removed from the DPB at the later of the DPB output time or the time when the decoded picture is no longer required for inter-frame prediction reference.

可用真实值来进行这些实例中的算术,使得不传播舍入误差。举例来说,恰好在解码单元的移除之前或之后的CPB中的位的数目未必为整数。The arithmetic in these examples can be done with real values so that rounding errors are not propagated.For example, the number of bits in the CPB just before or after removal of a decoding unit is not necessarily an integer.

变量tc可被导出如下,且可被称为时钟计时周期:The variable tc can be derived as follows and can be referred to as the clock tick:

tc=num_units_in_tick÷time_scale (C-1)t c =num_units_in_tick÷time_scale (C-1)

可指定以下内容以用于表达在对HEVC的实例附件修改中的约束:The following may be specified for expressing constraints in example annex modifications to HEVC:

使存取单元n为按解码顺序的第n存取单元,其中第一存取单元为存取单元0;Let access unit n be the nth access unit in decoding order, where the first access unit is access unit 0;

使图片n为存取单元n的经译码图片或经解码图片;Let picture n be a coded picture or a decoded picture of access unit n;

使解码单元m为按解码顺序的第m解码单元,其中第一解码单元为解码单元0。Let decoding unit m be the mth decoding unit in decoding order, where the first decoding unit is decoding unit 0.

如下描述用于操作经译码图片缓冲器(CPB)的一些实例技术。根据一些视频译码技术,可实施CPB操作的各种方法。HEVC WD6关于CPB操作的章节中的规范可由本发明修改,且可独立地应用于所存在的每一CPB参数集合且应用于Type I一致性点及Type II一致性点两者。Some example techniques for operating a coded picture buffer (CPB) are described below. According to some video coding techniques, various methods of CPB operation may be implemented. The specifications in the HEVC WD6 section on CPB operation may be modified by this disclosure and may be applied independently to each CPB parameter set present and to both Type I and Type II conformance points.

如下描述涉及位流到达的计时的一些实例。HRD可以缓冲周期补充增强信息(SEI)消息中的任一者予以初始化。在初始化之前,CPB可空白。在初始化之后,HRD可不再次通过后续缓冲周期SEI消息初始化。Some examples involving the timing of bitstream arrival are described below. The HRD may be initialized by any of the Buffering Period Supplemental Enhancement Information (SEI) messages. Prior to initialization, the CPB may be empty. After initialization, the HRD may not be initialized again by subsequent Buffering Period SEI messages.

与初始化CPB的缓冲周期SEI消息相关联的存取单元可被称为存取单元0。每一解码单元可被称为解码单元m,其中编号m识别特定解码单元。存取单元0中按解码顺序的第一解码单元可被称为解码单元0。m的值针对按解码顺序的每一后续解码单元可递增1。The access unit associated with the buffering period SEI message that initializes the CPB may be referred to as access unit 0. Each decoding unit may be referred to as decoding unit m, where the number m identifies the specific decoding unit. The first decoding unit in decoding order in access unit 0 may be referred to as decoding unit 0. The value of m may be incremented by 1 for each subsequent decoding unit in decoding order.

解码单元m的第一位开始进入CPB的时间可被称为初始到达时间tai(m)。可如下导出解码单元的初始到达时间:The time when the first bit of decoding unit m begins to enter the CPB can be called the initial arrival time t ai (m). The initial arrival time of a decoding unit can be derived as follows:

如果解码单元为解码单元0,那么tai(0)=0,If the decoding unit is decoding unit 0, then t ai (0) = 0,

否则(解码单元为解码单元m,其中m>0),以下内容可适用:Otherwise (the decoding unit is decoding unit m, where m>0), the following applies:

如果cbr_flag[SchedSelIdx]等于1,那么用于解码单元m的初始到达时间等于解码单元m-1的最终到达时间(其在下文被导出),即,If cbr_flag[SchedSelIdx] is equal to 1, then the initial arrival time for decoding unit m is equal to the final arrival time of decoding unit m-1 (which is derived below), i.e.,

tai(m)=taf(m-1) (C-2)t ai (m) = t af (m-1) (C-2)

否则(cbr_flag[SchedSelIdx]等于0),用于解码单元m的初始到达时间是由下式导出:Otherwise (cbr_flag[SchedSelIdx] is equal to 0), the initial arrival time for decoding unit m is derived from the following formula:

tai(m)=Max(taf(m-1),tai,earliest(m)) (C-3)t ai (m)=Max (t af (m-1), t ai, earliest (m)) (C-3)

其中tai,earliest(m)被导出如下。where t ai,earliest (m) is derived as follows.

如果解码单元m并非后续缓冲周期的第一解码单元,那么tai,earliest(m)可被导出为:If decoding unit m is not the first decoding unit of the subsequent buffering period, then tai ,earliest (m) can be derived as:

tai,earliest(m)=tr,n(m)-(initial_cpb_removal_delay[SchedSelIdx]+initial_cpb_removal_delay_offset[SchedSelIdx])÷90000 (C-4)t ai,earliest (m)=t r,n (m)-(initial_cpb_removal_delay[SchedSelIdx]+initial_cpb_removal_delay_offset[SchedSelIdx])÷90000 (C-4)

其中tr,n(m)为如所指定的解码单元m离开CPB的名义移除时间,且initial_cpb_removal_delay[SchedSelIdx]及initial_cpb_removal_delay_offset[SchedSelIdx]被指定在上一缓冲周期SEI消息中;where t r,n (m) is the nominal removal time of decoding unit m from the CPB as specified, and initial_cpb_removal_delay[SchedSelIdx] and initial_cpb_removal_delay_offset[SchedSelIdx] are specified in the previous buffering period SEI message;

否则(解码单元m为后续缓冲周期的第一解码单元),tai,earliest(m)可被导出为:Otherwise (decoding unit m is the first decoding unit of the subsequent buffering period), tai ,earliest (m) can be derived as:

tai,earliest(m)=tr,n(m)-(initial_cpb_removal_delay[SchedSelIdx]÷90000)(C-5)t ai,earliest (m)=t r,n (m)-(initial_cpb_removal_delay[SchedSelIdx]÷90000)(C-5)

其中initial_cpb_removal_delay[SchedSelIdx]被指定在与含有解码单元m的存取单元相关联的缓冲周期SEI消息中。where initial_cpb_removal_delay[SchedSelIdx] is specified in the buffering period SEI message associated with the access unit containing decoding unit m.

用于解码单元m的最终到达时间可由下式导出:The final arrival time for decoding unit m can be derived as follows:

taf(m)=tai(m)+b(m)÷BitRate[SchedSelIdx] (C-6)t af (m)=t ai (m)+b(m)÷BitRate[SchedSelIdx] (C-6)

其中b(m)可为解码单元m的以位为单位的大小,其针对Type I一致性点而计数VCLNAL单元及填充物数据NAL单元的位或针对Type II一致性点而计数Type II位流的所有位。where b(m) may be the size of decoding unit m in bits, counting the bits of VCL NAL units and filler data NAL units for Type I conformance points or counting all bits of the Type II bitstream for Type II conformance points.

在一些实例中,可如下约束SchedSelIdx、BitRate[SchedSelIdx]及CpbSize[SchedSelIdx]的值:In some examples, the values of SchedSelIdx, BitRate[SchedSelIdx], and CpbSize[SchedSelIdx] may be constrained as follows:

如果用于含有解码单元m的存取单元的活动序列参数集合的内容与用于上一存取单元的活动序列参数集合的内容不同,那么HSS从提供在用于含有解码单元m的存取单元的活动序列参数集合中的SchedSelIdx的值当中选择SchedSelIdx的值SchedSelIdx1,所述值SchedSelIdx1针对含有解码单元m的存取单元引起BitRate[SchedSelIdx1]或CpbSize[SchedSelIdx1]。BitRate[SchedSelIdx1]或CpbSize[SchedSelIdx1]的值可不同于针对在使用中用于上一存取单元的SchedSelIdx的值SchedSelIdx0的BitRate[SchedSelIdx0]或CpbSize[SchedSelIdx0]的值;If the content of the active sequence parameter set for the access unit containing decoding unit m is different from the content of the active sequence parameter set for the previous access unit, then the HSS selects a value of SchedSelIdx SchedSelIdx1 from among the values of SchedSelIdx provided in the active sequence parameter set for the access unit containing decoding unit m, said value SchedSelIdx1 resulting in BitRate[SchedSelIdx1] or CpbSize[SchedSelIdx1] for the access unit containing decoding unit m. The value of BitRate[SchedSelIdx1] or CpbSize[SchedSelIdx1] may be different from the value of BitRate[SchedSelIdx0] or CpbSize[SchedSelIdx0] for the value of SchedSelIdx SchedSelIdx0 in use for the previous access unit;

否则,HSS继续用SchedSelIdx、BitRate[SchedSelIdx]及CpbSize[SchedSelIdx]的先前值而操作。Otherwise, the HSS continues to operate with the previous values of SchedSelIdx, BitRate[SchedSelIdx], and CpbSize[SchedSelIdx].

当HSS选择不同于上一存取单元的值的BitRate[SchedSelIdx]或CpbSize[SchedSelIdx]的值时,以下内容在一些实例中可适用:When the HSS selects a value for BitRate[SchedSelIdx] or CpbSize[SchedSelIdx] that is different from the value of the previous access unit, the following may apply in some instances:

变量BitRate[SchedSelIdx]在时间tai(m)开始生效The variable BitRate[SchedSelIdx] takes effect at time t ai (m)

变量CpbSize[SchedSelIdx]开始生效如下:The variable CpbSize[SchedSelIdx] takes effect as follows:

如果CpbSize[SchedSelIdx]的新值超过旧CPB大小,那么其在时间tai(m)开始生效,If the new value of CpbSize[SchedSelIdx] exceeds the old CPB size, it takes effect at time t ai (m).

否则,CpbSize[SchedSelIdx]的新值在含有解码单元m的存取单元的最后解码单元的CPB移除时间开始生效。Otherwise, the new value of CpbSize[SchedSelIdx] takes effect at the CPB removal time of the last decoding unit of the access unit containing decoding unit m.

当sub_pic_cpb_flag等于1时,存取单元n的初始CPB到达时间tai(n)可设置到存取单元n中的第一解码单元的初始CPB到达时间,且存取单元n的最终CPB到达时间taf(n)可设置到存取单元n中的最后解码单元的最终CPB到达时间。When sub_pic_cpb_flag is equal to 1, the initial CPB arrival time tai (n) of access unit n may be set to the initial CPB arrival time of the first decoding unit in access unit n, and the final CPB arrival time taf (n) of access unit n may be set to the final CPB arrival time of the last decoding unit in access unit n.

如下描述涉及解码单元移除的计时及解码单元的解码的一些实例。当解码单元m为m等于0的解码单元(初始化HRD的存取单元的第一解码单元)时,解码单元离开CPB的名义移除时间可由下式指定:Some examples of timing and decoding of decoding units related to decoding unit removal are described below. When decoding unit m is a decoding unit with m equal to 0 (the first decoding unit of an access unit for which the HRD is initialized), the nominal removal time of the decoding unit from the CPB can be specified by the following equation:

tr,n(0)=initial_cpb_removal_delay[SchedSelIdx]÷90000 (C-7)t r, n (0)=initial_cpb_removal_delay[SchedSelIdx]÷90000 (C-7)

当解码单元m为并不初始化HRD的缓冲周期的第一存取单元的第一解码单元时,解码单元离开CPB的名义移除时间可由下式指定:When decoding unit m is the first decoding unit of the first access unit that does not initialize the HRD buffering period, the nominal removal time of the decoding unit from the CPB can be specified by the following formula:

tr,n(m)=tr,n(mb)+tc*cpb_removal_delay(m) (C-8)t r, n (m) = t r, n (m b ) + t c *cpb_removal_delay (m) (C-8)

其中tr,n(mb)为上一缓冲周期的第一解码单元的名义移除时间,且cpb_removal_delay(m)为在与含有解码单元m的存取单元相关联的图片计时SEI消息中所指定的用于解码单元m的cpb_removal_delay[i]的值。where t r,n (m b ) is the nominal removal time of the first decoding unit of the last buffering period, and cpb_removal_delay(m) is the value of cpb_removal_delay[i] for decoding unit m as specified in the picture timing SEI message associated with the access unit containing decoding unit m.

当解码单元n为缓冲周期的第一解码单元时,mb可设置为在解码单元n的移除时间tr,n(m)等于m。并非缓冲周期的第一解码单元的解码单元m的名义移除时间tr,n(m)可由下式给出:When decoding unit n is the first decoding unit of the buffering period, m b can be set so that the removal time t r,n (m) of decoding unit n is equal to m. The nominal removal time t r,n (m) of decoding unit m that is not the first decoding unit of the buffering period can be given by:

tr,n(m)=tr,n(mb)+tc*cpb_removal_delay(m) (C-9)t r, n (m) = t r, n (m b ) + t c *cpb_removal_delay (m) (C-9)

其中tr,n(mb)为当前缓冲周期的第一解码单元的名义移除时间,且cpb_removal_delay(m)为在与含有解码单元m的存取单元相关联的图片计时SEI消息中所指定的用于解码单元m的cpb_removal_delay[i]的值。where t r,n (m b ) is the nominal removal time of the first decoding unit of the current buffering period, and cpb_removal_delay(m) is the value of cpb_removal_delay[i] for decoding unit m as specified in the picture timing SEI message associated with the access unit containing decoding unit m.

可如下指定解码单元m的移除时间:The removal time of decoding unit m can be specified as follows:

如果low_delay_hrd_flag等于0或tr,n(m)>=taf(m),那么解码单元n的移除时间可由下式指定:If low_delay_hrd_flag is equal to 0 or t r,n (m) >= t af (m), then the removal time of decoding unit n can be specified by:

tr(m)=tr,n(m) (C-10)t r (m) = t r, n (m) (C-10)

否则(low_delay_hrd_flag等于1且tr,n(m)<taf(m)),解码单元m的移除时间是由下式指定:Otherwise (low_delay_hrd_flag is equal to 1 and t r,n (m) < t af (m)), the removal time of decoding unit m is specified by:

tr(m)=tr,n(m)+tc*Ceil((taf(m)-tr,n(m))÷tc) (C-11)t r (m)=t r,n (m)+t c *Ceil((t af (m)-t r,n (m))÷t c ) (C-11)

后一状况指示解码单元m的大小b(m)如此大以致于其防止在名义移除时间的移除。The latter condition indicates that the size b(m) of decoding unit m is so large that it prevents removal at the nominal removal time.

当sub_pic_cpb_flag等于1时,存取单元n的名义CPB移除时间tr,n(n)可设置到存取单元n中的最后解码单元的正常CPB移除时间,存取单元n的CPB移除时间tr(n)可设置到存取单元n中的最后解码单元的CPB移除时间。When sub_pic_cpb_flag is equal to 1, the nominal CPB removal time t r,n (n) of access unit n can be set to the normal CPB removal time of the last decoding unit in access unit n, and the CPB removal time t r (n) of access unit n can be set to the CPB removal time of the last decoding unit in access unit n.

在一些实例中,在解码单元m的CPB移除时间,所述解码单元可被瞬时地解码。In some examples, at the CPB removal time of decoding unit m, the decoding unit may be decoded instantaneously.

如下描述经解码图片缓冲器(DPB)的操作的一些实例。所述经解码图片缓冲器可含有图片存储缓冲器。所述图片存储缓冲器中的每一者可含有经解码图片,所述经解码图片被标记为“用于参考”或经保持以供未来输出。在初始化之前,DPB可空白(DPB充满度设置到零)。本发明的技术的这些实例的以下步骤可以所列出序列而发生。Some examples of the operation of a decoded picture buffer (DPB) are described below. The decoded picture buffer may contain picture storage buffers. Each of the picture storage buffers may contain a decoded picture that is marked as "used for reference" or retained for future output. Prior to initialization, the DPB may be empty (DPB fullness set to zero). The following steps of these examples of the techniques of this disclosure may occur in the listed sequence.

如下描述图片从经解码图片缓冲器(DPB)的移除的一些实例。在一些实例中,在当前图片的解码之前(但在分析当前图片的第一切片的切片标头之后)图片从DPB的移除可在存取单元n(含有当前图片)的第一解码单元的CPB移除时间瞬时地发生,且可进行如下。Some examples of picture removal from a decoded picture buffer (DPB) are described below. In some examples, picture removal from the DPB may occur instantaneously at the CPB removal time of the first decoding unit of access unit n (containing the current picture) before decoding of the current picture (but after parsing the slice header of the first slice of the current picture), and may proceed as follows.

可调用如在HEVC WD6的子条款8.3.2中所指定的用于参考图片集合的解码进程。如果当前图片为瞬时解码器刷新(IDR)图片,那么以下内容可适用:The decoding process for reference picture sets as specified in subclause 8.3.2 of HEVC WD6 may be invoked. If the current picture is an instantaneous decoder refresh (IDR) picture, the following may apply:

1.当IDR图片并非经解码的第一IDR图片(例如,当无先前图片输出旗标具有不等于1的值时)且从活动序列参数集合导出的pic_width_in_luma_samples(例如,亮度样本中的图片宽度)或pic_height_in_luma_samples或max_dec_pic_buffering的值分别不同于从针对前一图片为活动的序列参数集合导出的pic_width_in_luma_samples或pic_height_in_luma_samples或max_dec_pic_buffering的值时,no_output_of_prior_pics_flag可推断为等于1或由HRD设置为等于1,而不管no_output_of_prior_pics_flag的实际值如何。相比于关于pic_width_in_luma_samples或pic_height_in_luma_samples的改变的HRD,解码器实施可更从容地处置图片或DPB大小改变。1. When an IDR picture is not the first IDR picture decoded (e.g., when the no-previous-picture-output flag has a value not equal to 1) and the value of pic_width_in_luma_samples (e.g., picture width in luma samples) or pic_height_in_luma_samples, or max_dec_pic_buffering derived from the active sequence parameter set is different from the value of pic_width_in_luma_samples or pic_height_in_luma_samples, or max_dec_pic_buffering, respectively, derived from the sequence parameter set that is active for the previous picture, no_output_of_prior_pics_flag may be inferred to be equal to 1 or set to 1 by the HRD, regardless of the actual value of no_output_of_prior_pics_flag. Decoder implementations may handle picture or DPB size changes more gracefully than HRDs regarding changes in pic_width_in_luma_samples or pic_height_in_luma_samples.

2.当no_output_of_prior_pics_flag等于1或设置为或推断为等于1时,可使DPB中的所有图片存储缓冲器空白而没有其所含有的图片的输出,且DPB充满度可设置到0。2. When no_output_of_prior_pics_flag is equal to 1 or is set or inferred to be equal to 1, all picture storage buffers in the DPB may be left empty without output of the pictures they contain, and the DPB fullness may be set to 0.

可从DPB移除DPB中的所有图片k(对于所述图片,所有以下条件成立):图片k被标记为“未用于参考”;图片k具有等于0的PicOutputFlag,或其DPB输出时间小于或等于当前图片n的第一解码单元(被表示为解码单元m)的CPB移除时间;即,All pictures k in the DPB for which all of the following conditions hold may be removed from the DPB: picture k is marked as "unused for reference"; picture k has PicOutputFlag equal to 0, or its DPB output time is less than or equal to the CPB removal time of the first decoding unit of the current picture n (denoted as decoding unit m); that is,

to,dpb(k)<=tr(m)t o,dpb (k)<=t r (m)

当从DPB移除图片时,DPB充满度可递减1。When a picture is removed from the DPB, the DPB fullness may be decremented by 1.

如下描述图片输出的一些实例。以下情形可在存取单元n(含有当前图片)的最后解码单元(被表示为解码单元m)的CPB移除时间tr(m)瞬时地发生。图片n可在所述图片的最后解码单元被解码之后被视为经解码。Some examples of picture output are described as follows. The following scenario may occur instantaneously at the CPB removal time tr (m) of the last decoding unit (denoted as decoding unit m) of access unit n (containing the current picture). Picture n may be considered decoded after the last decoding unit of the picture is decoded.

变量maxPicOrderCnt(对于最大图片顺序计数(POC))可设置为等于当前图片及DPB中当前被标记为“用于短期参考”或具有大于tr(m)的DPB输出时间的所有图片的PicOrderCntVal(对于图片顺序计数(POC)值)值的最大值。变量minPicOrderCnt(对于最小图片顺序计数(POC))可设置为等于当前图片及DPB中当前被标记为“用于短期参考”或具有大于tr(m)的DPB输出时间的所有图片的PicOrderCntVal的最小值。以下内容可为位流一致性的要求:maxPicOrderCnt-minPicOrderCnt的值应小于MaxPicOrderCntLsb/2。The variable maxPicOrderCnt (for maximum picture order count (POC)) may be set equal to the maximum of the values of PicOrderCntVal (for picture order count (POC) values) for the current picture and all pictures in the DPB that are currently marked as "used for short-term reference" or have a DPB output time greater than t r (m). The variable minPicOrderCnt (for minimum picture order count (POC)) may be set equal to the minimum of the values of PicOrderCntVal for the current picture and all pictures in the DPB that are currently marked as "used for short-term reference" or have a DPB output time greater than t r (m). The following may be a requirement for bitstream conformance: the value of maxPicOrderCnt-minPicOrderCnt shall be less than MaxPicOrderCntLsb/2.

当图片n具有等于1的PicOutputFlag时,其DPB输出时间to,dpb(n)可由下式导出:When picture n has PicOutputFlag equal to 1, its DPB output time t o,dpb (n) can be derived as follows:

to,dpb(n)=tr(m)+tc*dpb_output_delay(n) (C-12)t o, dpb (n) = t r (m) + t c *dpb_output_delay (n) (C-12)

其中dpb_output_delay(n)为在与存取单元n相关联的图片计时SEI消息中所指定的dpb_output_delay的值。可如下指定当前图片的输出:where dpb_output_delay(n) is the value of dpb_output_delay specified in the picture timing SEI message associated with access unit n. The output of the current picture may be specified as follows:

如果PicOutputFlag等于1且to,dpb(n)=tr(m),那么当前图片被输出;If PicOutputFlag is equal to 1 and t o,dpb (n) = t r (m), then the current picture is output;

否则,如果PicOutputFlag等于0,那么当前图片未被输出,但可存储在DPB中,如下文进一步所指定;Otherwise, if PicOutputFlag is equal to 0, then the current picture is not output but may be stored in the DPB as further specified below;

否则(PicOutputFlag等于1且to,dpb(n)>tr(m)),当前图片稍后被输出且将存储在DPB中(如下文进一步所指定),且在时间to,dpb(n)被输出,除非被指示不会通过等于l的no_output_of_prior_pics_flag的解码或推断在to,dpb(n)之前的时间被输出。Otherwise (PicOutputFlag is equal to 1 and t o,dpb (n)>t r (m)), the current picture is output later and will be stored in the DPB (as further specified below), and is output at time t o,dpb (n) unless indicated not to be output at a time before t o,dpb (n) by decoding or inference of no_output_of_prior_pics_flag equal to 1.

当被输出时,当前或选定图片可使用在活动序列参数集合中所指定的剪裁矩形予以剪裁,从而基于选定图片(即,当前图片)来产生经剪裁图片。当图片n为被输出且并非被输出的位流的最后图片的图片时,Δto,dpb(n)的值被定义为:When output, the current or selected picture may be cropped using the cropping rectangle specified in the active sequence parameter set, thereby generating a cropped picture based on the selected picture (i.e., the current picture). When picture n is the picture being output and is not the last picture of the output bitstream, the value of Δt o,dpb (n) is defined as:

Δto,dpb(n)=to,dpb(nn)-to,dpb(n) (C-13)Δt o,dpb (n)=t o,dpb (n n )-t o,dpb (n) (C-13)

其中nn指示在输出顺序方面跟随在图片n之后且具有等于1的PicOutputFlag的图片。下文进一步提供提高进程及剪裁进程的另外细节。where n n indicates the picture that follows picture n in output order and has PicOutputFlag equal to 1. Additional details of the boosting process and the pruning process are provided further below.

如下描述涉及当前经解码图片标记及存储的一些实例。以下情形可在存取单元n(含有当前图片)的最后解码单元的CPB移除时间tr(m)瞬时地发生。当前经解码图片可在DPB中存储在空白图片存储缓冲器中,且DPB充满度可递增1。如果当前图片为参考图片,那么其可被标记为“用于参考”,否则,其可被标记为“未用于参考”。The following describes some examples involving the marking and storage of the current decoded picture. The following scenario may occur instantaneously at the CPB removal time t r (m) of the last decoding unit of access unit n (containing the current picture). The current decoded picture may be stored in the DPB in an empty picture storage buffer, and the DPB fullness may be incremented by 1. If the current picture is a reference picture, it may be marked as "used for reference", otherwise it may be marked as "unused for reference".

用于CPB行为模式的发信的以下实例语法及语义是关于实例视频编码器20及/或视频解码器30而提供,视频编码器20及/或视频解码器30经配置尤其以将视频数据的一或多个解码单元存储在图片缓冲器中、获得用于一或多个解码单元的相应缓冲器移除时间、根据用于解码单元中的每一者的所获得缓冲器移除时间而从图片缓冲器移除解码单元,且译码对应于经移除解码单元的视频数据。The following example syntax and semantics for signaling of the CPB behavior mode are provided with respect to an example video encoder 20 and/or video decoder 30 configured to, among other things, store one or more decoding units of video data in a picture buffer, obtain respective buffer removal times for the one or more decoding units, remove the decoding units from the picture buffer according to the obtained buffer removal times for each of the decoding units, and decode video data corresponding to the removed decoding units.

如下描述用于CPB行为模式的发信的语法及语义的一些实例。可通过添加子图片CPB旗标sub_pic_cpb_flag来改变视频可用性信息(VUI)参数的语法,如下表1所示:Some examples of the syntax and semantics for signaling the CPB behavior mode are described below. The syntax of the video usability information (VUI) parameters can be changed by adding the sub-picture CPB flag sub_pic_cpb_flag, as shown in Table 1 below:

表1Table 1

在这个实例中,相对于习知HEVC,表1包括附加旗标“sub_pic_cpb_flag”。这个子图片CPB旗标“sub_pic_cpb_flag”可用以发信提供到译码图片缓冲器(CPB)的视频数据集合是否包括用于子图片解码的子图片参数。存在可由旗标“sub_pic_cpb_flag”发信的这些子图片参数可包括缓冲器移除时间,其包括用于一或多个解码单元中的每一者的相应缓冲器移除时间(即,CPB移除时间)。sub_pic_cpb_flag的语义的一个实例如下。等于0的语法元素sub_pic_cpb_flag可指定CPB在存取单元级别处操作。等于1的语法元素sub_pic_cpb_flag可指定CPB在可处于存取单元或存取单元子集的级别的解码单元级别处操作,所述子集可对应于子图片。当sub_pic_cpb_flag不存在时,其值可设置到推断为等于0,这种情形可指示视频数据不包括用于子图片解码的子图片参数的默认状态。1 . In this example, Table 1 includes an additional flag "sub_pic_cpb_flag" relative to conventional HEVC. This sub-picture CPB flag "sub_pic_cpb_flag" may be used to signal whether the set of video data provided to the coded picture buffer (CPB) includes sub-picture parameters for sub-picture decoding. The presence of these sub-picture parameters that may be signaled by the flag "sub_pic_cpb_flag" may include buffer removal times, which include a respective buffer removal time (i.e., CPB removal time) for each of one or more decoding units. One example of the semantics of sub_pic_cpb_flag is as follows. The syntax element sub_pic_cpb_flag equal to 0 may specify that the CPB operates at the access unit level. The syntax element sub_pic_cpb_flag equal to 1 may specify that the CPB operates at the decoding unit level, which may be at the level of the access unit or a subset of the access unit, the subset corresponding to the sub-picture. When sub_pic_cpb_flag is not present, its value may be set to be inferred to be equal to 0, which may indicate that the video data does not include default states for sub-picture parameters for sub-picture decoding.

如下描述用于解码单元的CPB移除时间的发信的语法及语义的一些实例。缓冲周期SEI消息的语法可如在HEVC WD6中保持不变,而语法元素initial_cpb_removal_delay[SchedSelIdx]及initial_cpb_removal_delay_offset[SchedSelIdx]的语义可改变如下。在这个实例中,语法元素initial_cpb_removal_delay[SchedSelIdx]可指定在到达时间与移除时间之间针对第SchedSelIdx个CPB的延迟,其中所述到达时间为与存取单元中的第一解码单元相关联的经译码数据的第一位进入CPB的到达时间,所述存取单元是与缓冲周期SEI消息相关联,且所述移除时间为针对在HRD初始化之后的第一缓冲周期与同一解码单元相关联的经译码数据离开CPB的移除时间。这个语法元素可具有由initial_cpb_removal_delay_length_minus1+1给出的以位为单位的长度。这种情形可指90kHz时钟的单位。在这个实例中,这个语法元素initial_cpb_removal_delay[SchedSelIdx]可不等于0,且可不超过90000*(CpbSize[SchedSelIdx]÷BitRate[SchedSelIdx]),以90kHz时钟为单位的CPB大小的时间等效者。Some examples of the syntax and semantics for signaling CPB removal time for a decoding unit are described below. The syntax of the buffering period SEI message may remain unchanged as in HEVC WD6, while the semantics of the syntax elements initial_cpb_removal_delay[SchedSelIdx] and initial_cpb_removal_delay_offset[SchedSelIdx] may change as follows. In this example, the syntax element initial_cpb_removal_delay[SchedSelIdx] may specify the delay for the SchedSelIdx-th CPB between an arrival time for a first bit of coded data associated with the first decoding unit in the access unit associated with the buffering period SEI message entering the CPB and a removal time for coded data associated with the same decoding unit leaving the CPB for the first buffering period after HRD initialization. This syntax element may have a length in bits given by initial_cpb_removal_delay_length_minus1+1. In this case, this may refer to units of a 90 kHz clock. In this example, this syntax element initial_cpb_removal_delay[SchedSelIdx] may not be equal to 0 and may not exceed 90000*(CpbSize[SchedSelIdx]÷BitRate[SchedSelIdx]), the time equivalent of the CPB size in units of a 90 kHz clock.

在这个实例中,语法元素initial_cpb_removal_delay_offset[SchedSelIdx]可结合语法元素cpb_removal_delay而用于第SchedSelIdx个CPB以指定解码单元到CPB的初始传递时间。此外,语法元素initial_cpb_removal_delay_offset[SchedSelIdx]可以90kHz时钟为单位。initial_cpb_removal_delay_offset[SchedSelIdx]语法元素可为固定长度码,其以位为单位的长度是由initial_cpb_removal_delay_length_minus1+1给出。这个语法元素可不由解码器使用,且可仅为在HEVC WD6的Annex C中所指定的传递调度器(HSS)所需要。In this example, the syntax element initial_cpb_removal_delay_offset[SchedSelIdx] may be used in conjunction with the syntax element cpb_removal_delay for the SchedSelIdx-th CPB to specify the initial transfer time of the decoding unit to the CPB. Furthermore, the syntax element initial_cpb_removal_delay_offset[SchedSelIdx] may be in units of a 90 kHz clock. The initial_cpb_removal_delay_offset[SchedSelIdx] syntax element may be a fixed-length code whose length in bits is given by initial_cpb_removal_delay_length_minus1+1. This syntax element may not be used by the decoder and may only be required for the transfer scheduler (HSS) specified in Annex C of HEVC WD6.

在一些实例中,图片计时SEI消息的语法及语义可如下表2所示而改变:In some examples, the syntax and semantics of the picture timing SEI message may be changed as shown in Table 2 below:

表2Table 2

pic_timing(payloadSize){pic_timing(payloadSize){ 描述符Descriptor if(CpbDpbDelaysPresentFlag){ if(CpbDpbDelaysPresentFlag){ if(sub_pic_cpb_flag)if(sub_pic_cpb_flag) num_decoding_units_minus1 num_decoding_units_minus1 ue(v)ue(v) for(i=0;i<=num_decoding_units_minus1;i++) for(i=0;i<=num_decoding_units_minus1;i++) cpb_removal_delay[i]cpb_removal_delay[i] u(v)u(v) dpb_output_delaydpb_output_delay u(v)u(v) }} }}

在表2的实例中,pic_timing SEI消息包括附加num_decoding_units_minus1信号,及遍及数个解码单元的for循环,其在VUI参数的sub_pic_cpb_flag(例如,根据上表1)成立时发信解码单元离开经译码图片缓冲器的相应移除延迟。如此,pic_timing SEI消息可包括指示当VUI参数指示CPB在解码单元级别处操作时直到从经译码图片缓冲器移除多个解码单元中的每一者而等待的时钟计时周期的数目的信息。解码单元的移除延迟可为针对每一解码单元的以有效负载或其它数据单位为单位的相同延迟。在其它实例中,不同移除延迟可应用于不同解码单元。在位的数目相对于针对适用时钟的位处理速率的隐式时间转换的情况下,可在位的数目方面表达移除延迟。In the example of Table 2, the pic_timing SEI message includes an additional num_decoding_units_minus1 signal and a for loop over several decoding units that signals the corresponding removal delay of the decoding unit from the coded picture buffer when the sub_pic_cpb_flag of the VUI parameter (e.g., according to Table 1 above) is true. Thus, the pic_timing SEI message may include information indicating the number of clock ticks to wait until each of the multiple decoding units is removed from the coded picture buffer when the VUI parameter indicates that the CPB operates at the decoding unit level. The removal delay of the decoding unit may be the same delay in units of payload or other data units for each decoding unit. In other examples, different removal delays may apply to different decoding units. In the case of an implicit time conversion of the number of bits relative to the bit processing rate for the applicable clock, the removal delay may be expressed in terms of the number of bits.

图片计时SEI消息的语法可取决于序列参数集合的内容,所述序列参数集合针对与图片计时SEI消息相关联的经译码图片为活动的。然而,除非在瞬时解码刷新(IDR)存取单元的图片计时SEI消息之前的是同一存取单元内的缓冲周期SEI消息,否则关联序列参数集合的激活(及,对于并非位流中的第一图片的IDR图片,经译码图片为IDR图片的确定)可直到经译码图片的第一经译码切片网络抽象层(NAL)单元的解码才发生。由于经译码图片的经译码切片NAL单元在NAL单元顺序方面跟随图片计时SEI消息,故可存在以下状况:有必要使解码器存储含有图片计时SEI消息的原始字节序列有效负载(RBSP),直到确定序列参数集合的将针对经译码图片为活动的参数,且接着执行图片计时SEI消息的分析。解码器可以连续解码顺序将视频数据的一或多个解码单元存储在图片缓冲器中。The syntax of a picture timing SEI message may depend on the contents of the sequence parameter set that is active for the coded picture associated with the picture timing SEI message. However, unless a picture timing SEI message for an instantaneous decoding refresh (IDR) access unit is preceded by a buffering period SEI message within the same access unit, activation of the associated sequence parameter set (and, for an IDR picture that is not the first picture in the bitstream, determination that the coded picture is an IDR picture) may not occur until the decoding of the first coded slice network abstraction layer (NAL) unit of the coded picture. Because the coded slice NAL units of a coded picture follow the picture timing SEI message in NAL unit order, situations may arise where it is necessary for the decoder to store the raw byte sequence payload (RBSP) containing the picture timing SEI message until it is determined that the parameters of the sequence parameter set will be active for the coded picture and then perform parsing of the picture timing SEI message. The decoder may store one or more decoding units of video data in a picture buffer in consecutive decoding order.

在一个实例中,可如下指定图片计时SEI消息在位流中的存在:如果CpbDpbDelaysPresentFlag等于1,那么一个图片计时SEI消息可存在于经译码视频序列的每一存取单元中。否则,CpbDpbDelaysPresentFlag等于0,且没有图片计时SEI消息可存在于经译码视频序列的任何存取单元中。In one example, the presence of picture timing SEI messages in the bitstream may be specified as follows: if CpbDpbDelaysPresentFlag is equal to 1, one picture timing SEI message may be present in each access unit of the coded video sequence. Otherwise, CpbDpbDelaysPresentFlag is equal to 0, and no picture timing SEI message may be present in any access unit of the coded video sequence.

在这个实例中,语法元素num_decoding_units_minus1加1可指定在存取单元中的与图片计时SEI消息相关联的解码单元的数目。当sub_pic_cpb_flag等于0时,语法元素num_decoding_units_minus1可不存在,且值可设置为或推断为0。In this example, the syntax element num_decoding_units_minus1 plus 1 may specify the number of decoding units associated with the picture timing SEI message in the access unit.When sub_pic_cpb_flag is equal to 0, the syntax element num_decoding_units_minus1 may not be present and the value may be set or inferred to be 0.

在这个实例中,语法元素cpb_removal_delay[i]可指定在从CPB移除存取单元中的与图片计时SEI消息相关联的第i解码单元之前在存取单元中的与前一存取单元中的最近缓冲周期SEI消息相关联的第一解码单元从所述CPB的移除之后将等待的时钟计时周期的数目。这个值也可用以计算解码单元数据到达用于HSS的CPB的最早可能时间。语法元素可为固定长度码,其以位为单位的长度是由cpb_removal_delay_length_minus1+1给出。cpb_removal_delay[i]可为模数2(cpb_removal_delay_length_minus1+1)计数器的余数。In this example, the syntax element cpb_removal_delay[i] may specify the number of clock ticks to wait after the first decoding unit in an access unit associated with the most recent buffering period SEI message in the previous access unit is removed from the CPB before the i-th decoding unit in the access unit associated with the picture timing SEI message is removed from the CPB. This value may also be used to calculate the earliest possible time that decoding unit data will arrive at the CPB for the HSS. The syntax element may be a fixed-length code whose length in bits is given by cpb_removal_delay_length_minus1+1. cpb_removal_delay[i] may be the remainder of a modulo-2 (cpb_removal_delay_length_minus1+1) counter.

确定语法元素cpb_removal_delay[i]的长度(以位为单位)的cpb_removal_delay_length_minus1的值可为在针对与图片计时SEI消息相关联的经译码图片为活动的序列参数集合中译码的cpb_removal_delay_length_minus1的值。然而,cpb_removal_delay[i]可指定相对于在含有缓冲周期SEI消息的前一存取单元中的第一解码单元的移除时间的时钟计时周期的数目,所述前一存取单元可为不同经译码视频序列的存取单元。The value of cpb_removal_delay_length_minus1, which determines the length (in bits) of the syntax element cpb_removal_delay[i], may be the value of cpb_removal_delay_length_minus1 coded in the sequence parameter set that is active for the coded picture associated with the picture timing SEI message. However, cpb_removal_delay[i] may specify the number of clock ticks relative to the removal time of the first decoding unit in the previous access unit containing the buffering period SEI message, which may be an access unit of a different coded video sequence.

在这个实例中,语法元素dpb_output_delay可用以计算图片的DPB输出时间。语法元素dpb_output_delay可指定在从DPB输出经解码图片之前在存取单元中的最后解码单元从CPB的移除之后将等待的时钟计时周期的数目。In this example, the syntax element dpb_output_delay may be used to calculate the DPB output time of a picture.The syntax element dpb_output_delay may specify the number of clock ticks to wait after removal of the last decoding unit in an access unit from the CPB before outputting a decoded picture from the DPB.

当图片仍被标记为“用于短期参考”或“用于长期参考”时,可不在所述图片的输出时间从DPB移除所述图片。仅一个dpb_output_delay可针对经解码图片被指定。语法元素dpb_output_delay的长度可由dpb_output_delay_length_minus1+1以位为单位而给出。当max_dec_pic_buffering[max_temporal_layers_minus1]等于0时,dpb_output_delay可等于0。When a picture is still marked as "used for short-term reference" or "used for long-term reference", the picture may not be removed from the DPB at the output time of the picture. Only one dpb_output_delay may be specified for a decoded picture. The length of the syntax element dpb_output_delay may be given in bits by dpb_output_delay_length_minus1+1. When max_dec_pic_buffering[max_temporal_layers_minus1] is equal to 0, dpb_output_delay may be equal to 0.

从是从输出计时一致解码器输出的任何图片的dpb_output_delay导出的输出时间可在从在按解码顺序的任何后续经译码视频序列中所有图片的dpb_output_delay导出的输出时间前。由这个语法元素的值建立的图片输出顺序可为与由PicOrderCnt()的值建立的顺序相同的顺序。对于因为在解码顺序方面在no_output_of_prior_pics_flag等于1或推断为等于1的IDR图片之前而未通过“提高”进程输出的图片,从dpb_output_delay导出的输出时间可随着相对于同一经译码视频序列内的所有图片的PicOrderCnt()的值增加而增加。在替代实例中,可指定可被称为解码单元计时SEI消息的新SEI消息(各自是与解码单元相关联),以输送针对关联解码单元的CPB移除延迟。The output time derived from dpb_output_delay for any picture output from an output timing consistent decoder may precede the output time derived from dpb_output_delay for all pictures in any subsequent coded video sequence in decoding order. The picture output order established by the value of this syntax element may be the same order as the order established by the value of PicOrderCnt(). For pictures that are not output by the "step-up" process because they precede an IDR picture with no_output_of_prior_pics_flag equal to 1 or inferred to be 1 in decoding order, the output time derived from dpb_output_delay may increase as the value of PicOrderCnt() relative to all pictures in the same coded video sequence increases. In an alternative example, new SEI messages, each associated with a decoding unit, may be specified, which may be referred to as decoding unit timing SEI messages, to convey the CPB removal delay for the associated decoding unit.

如此,通过实施实例定义、实例HRD操作、经译码图片缓冲器的实例操作、位流到达的实例计时、解码单元移除的实例计时、解码单元的实例解码、经解码图片缓冲器的实例操作、图片从经解码图片缓冲器的实例移除、实例图片输出以及实例当前经解码图片标记及存储与用于CPB行为模式的发信的实例语法及语义的任何组合,视频编码器20及/或视频解码器30可经配置尤其以将视频数据的一或多个解码单元存储在图片缓冲器中、获得用于一或多个解码单元的相应缓冲器移除时间、根据用于解码单元中的每一者的所获得缓冲器移除时间而从图片缓冲器移除解码单元,且译码对应于经移除解码单元的视频数据。Thus, by implementing any combination of example definitions, example HRD operations, example operations of a coded picture buffer, example timing of bitstream arrival, example timing of decoding unit removal, example decoding of a decoding unit, example operations of a decoded picture buffer, example removal of pictures from a decoded picture buffer, example picture output, and example current decoded picture marking and storage, along with example syntax and semantics for signaling of a CPB behavior mode, video encoder 20 and/or video decoder 30 may be configured to, among other things, store one or more decoding units of video data in a picture buffer, obtain respective buffer removal times for the one or more decoding units, remove decoding units from the picture buffer according to the obtained buffer removal times for each of the decoding units, and decode video data corresponding to the removed decoding units.

作为上文所描述的技术的替代例,可如下定义解码单元:“存取单元或存取单元的子集。如果SubPicCpbFlag等于0,那么解码单元为存取单元。否则,解码单元包括存取单元中的一或多个VCL NAL单元及关联非VCL NAL单元。对于存取单元中的第一VCL NAL单元,关联非VCL NAL单元为在存取单元中且在第一VCL NAL单元及紧随第一非VCL NAL单元的填充物数据NAL单元(如果有的话)之前的所有非VCL NAL单元。对于并非存取单元中的第一VCLNAL单元的VCL NAL单元,关联非VCL NAL单元为紧随非VCL NAL单元的填充物数据NAL单元(如果有的话)”。As an alternative to the techniques described above, a decoding unit may be defined as follows: “An access unit or a subset of an access unit. If SubPicCpbFlag is equal to 0, the decoding unit is an access unit. Otherwise, the decoding unit includes one or more VCL NAL units and associated non-VCL NAL units in the access unit. For the first VCL NAL unit in an access unit, the associated non-VCL NAL units are all non-VCL NAL units in the access unit that precede the first VCL NAL unit and the filler data NAL unit (if any) that immediately follows the first non-VCL NAL unit. For a VCL NAL unit that is not the first VCL NAL unit in an access unit, the associated non-VCL NAL unit is the filler data NAL unit (if any) that immediately follows the non-VCL NAL unit.”

在这个实例中,可如下汇总假设参考解码器(HRD)操作。CPB大小(位的数目)为CpbSize[SchedSelIdx]。用于时间层X的DPB大小(图片存储缓冲器的数目)针对在0到max_temporal_layers_minus1(包括在内)的范围内的每一X可为max_dec_pic_buffering[X]+1。变量SubPicCpbPreferredFlag可用作子图片经译码图片缓冲器优选旗标,且可通过外部方式指定,或在未通过外部方式指定时设置到0。单独子图片经译码图片参数存在旗标sub_pic_cpb_params_present_flag可用以发信是否可得到译码一或多个存取单元的子集所需要的参数。单一子图片经译码图片缓冲器旗标SubPicCpbFlag可指示子图片经译码图片缓冲器优选旗标及子图片经译码图片参数存在旗标两者为正还是设置到1。视频译码器可使用这个子图片经译码图片缓冲器旗标SubPicCpbFlag以确定随着从CPB移除视频数据而译码视频数据的存取单元还是译码视频数据的一或多个存取单元的子集,诸如,子图片。In this example, the hypothetical reference decoder (HRD) operation can be summarized as follows. The CPB size (number of bits) is CpbSize[SchedSelIdx]. The DPB size (number of picture storage buffers) for temporal layer X may be max_dec_pic_buffering[X]+1 for each X in the range of 0 to max_temporal_layers_minus1 (inclusive). The variable SubPicCpbPreferredFlag may serve as a sub-picture coded picture buffer preference flag and may be specified externally or set to 0 if not specified externally. A separate sub-picture coded picture parameter present flag, sub_pic_cpb_params_present_flag, may be used to signal whether the parameters required to code a subset of one or more access units are available. A single sub-picture coded picture buffer flag, SubPicCpbFlag, may indicate whether both the sub-picture coded picture buffer preference flag and the sub-picture coded picture parameter present flag are positive or set to 1. The video coder may use this sub-picture coded picture buffer flag, SubPicCpbFlag, to determine whether to code an access unit of video data or a subset of one or more access units of video data, such as a sub-picture, as the video data is removed from the CPB.

可如下导出变量SubPicCpbFlag:The variable SubPicCpbFlag can be derived as follows:

SubPicCpbFlag=SubPicCpbPreferredFlag&&sub_pic_cpb_params_present_flagSubPicCpbFlag=SubPicCpbPreferredFlag&&sub_pic_cpb_params_present_flag

(C-1) (C-1)

如果SubPicCpbFlag等于0,那么CPB可在存取单元级别处操作,且每一解码单元可为存取单元。否则,CPB可在子图片级别处操作,且每一解码单元可为存取单元的子集。If SubPicCpbFlag is equal to 0, the CPB may operate at the access unit level, and each decoding unit may be an access unit. Otherwise, the CPB may operate at the sub-picture level, and each decoding unit may be a subset of an access unit.

视频解码器30/108可通过确定子图片经译码图片缓冲器优选旗标(例如,SubPicCpbPreferredFlag)具有值0或确定子图片经译码图片缓冲器参数存在旗标(例如,sub_pic_cpb_params_present_flag)具有值0来确定一或多个解码单元包含存取单元。Video decoder 30 / 108 may determine that one or more decoding units include an access unit by determining that a sub-picture coded picture buffer preferred flag (eg, SubPicCpbPreferredFlag) has a value of 0 or determining that a sub-picture coded picture buffer parameter present flag (eg, sub_pic_cpb_params_present_flag) has a value of 0.

HRD(例如,视频编码器20及/或视频解码器30)可操作如下。与根据指定到达调度而流动到CPB中的解码单元相关联的数据可由HSS传递。在一个实例中,与每一解码单元相关联的数据可通过瞬时解码进程在CPB移除时间瞬时地移除及解码。每一经解码图片可放置在DPB中。在DPB输出时间的较迟时间或经解码图片变得不再为帧间预测参考所需要的时间,可从DPB移除经解码图片。The HRD (e.g., video encoder 20 and/or video decoder 30) may operate as follows. Data associated with decoding units that flow into the CPB according to a specified arrival schedule may be delivered by the HSS. In one example, data associated with each decoding unit may be instantaneously removed and decoded at the CPB removal time by a transient decoding process. Each decoded picture may be placed in the DPB. At a later time than the DPB output time or when the decoded picture is no longer required for inter-frame prediction reference, the decoded picture may be removed from the DPB.

可用真实值来进行本发明所描述的算术运算,使得不传播舍入误差。举例来说,恰好在解码单元的移除之前或之后的CPB中的位的数目可未必为整数。The arithmetic operations described in this disclosure may be performed with real values so that rounding errors are not propagated.For example, the number of bits in the CPB just before or after removal of a decoding unit may not necessarily be an integer.

变量tc可被导出如下,且被称为时钟计时周期:The variable tc can be derived as follows and is called the clock tick:

tc=num_units_in_tick÷time_scale (C-1)t c =num_units_in_tick÷time_scale (C-1)

可指定以下内容以用于表达在本发明的技术的这个实例中的约束:The following may be specified for expressing the constraints in this example of the present technology:

使存取单元n为按解码顺序的第n存取单元,其中第一存取单元为存取单元0;Let access unit n be the nth access unit in decoding order, where the first access unit is access unit 0;

使图片n为存取单元n的经译码图片或经解码图片;Let picture n be a coded picture or a decoded picture of access unit n;

使解码单元m为按解码顺序的第m解码单元,其中第一解码单元为解码单元0。Let decoding unit m be the mth decoding unit in decoding order, where the first decoding unit is decoding unit 0.

可如下定义经译码图片缓冲器(CPB)的操作。这个实例中的规范可独立地应用于所存在的每一CPB参数集合,且应用于Type I一致性点及Type II一致性点两者。The operation of a coded picture buffer (CPB) may be defined as follows: The specification in this example may be applied independently to each CPB parameter set present, and to both Type I and Type II conformance points.

关于位流到达的计时,HRD可以缓冲周期SEI消息中的任一者予以初始化。在初始化之前,CPB可空白。在初始化之后,HRD可不再次通过后续缓冲周期SEI消息初始化。Regarding the timing of bitstream arrival, the HRD can be initialized by any of the buffering period SEI messages. Before initialization, the CPB can be empty. After initialization, the HRD may not be initialized again by subsequent buffering period SEI messages.

每一存取单元可被称为相应存取单元n,其中编号n识别特定存取单元。与初始化CPB的缓冲周期SEI消息相关联的存取单元可被称为存取单元0。n的值针对按解码顺序的每一后续存取单元可递增1。Each access unit may be referred to as a corresponding access unit n, where the number n identifies a particular access unit. The access unit associated with the buffering period SEI message that initializes the CPB may be referred to as access unit 0. The value of n may be incremented by one for each subsequent access unit in decoding order.

每一解码单元可分别被称为解码单元m,其中编号m识别特定解码单元。存取单元0中按解码顺序的第一解码单元可被称为解码单元0。m的值针对按解码顺序的每一后续解码单元可递增1。Each decoding unit may be referred to as decoding unit m, where the number m identifies the particular decoding unit. The first decoding unit in decoding order in access unit 0 may be referred to as decoding unit 0. The value of m may be incremented by 1 for each subsequent decoding unit in decoding order.

在这个实例中,如果变量SubPicCpbFlag等于0,那么变量InitCpbRemovalDelay[SchedSelIdx]可设置到关联缓冲周期SEI消息的initial_cpb_removal_delay[SchedSelIdx],且InitCpbRemovalDelayOffset[SchedSelIdx]可设置到关联缓冲周期SEI消息的initial_cpb_removal_delay_offset[SchedSelIdx]。否则,变量InitCpbRemovalDelay[SchedSelIdx]可设置到关联缓冲周期SEI消息的initial_du_cpb_removal_delay[SchedSelIdx],且InitCpbRemovalDelayOffset[SchedSelIdx]可设置到关联缓冲周期SEI消息的initial_du_cpb_removal_delay_offset[SchedSelIdx]。In this example, if the variable SubPicCpbFlag is equal to 0, then the variable InitCpbRemovalDelay[SchedSelIdx] may be set to initial_cpb_removal_delay[SchedSelIdx] of the associated buffering period SEI message, and InitCpbRemovalDelayOffset[SchedSelIdx] may be set to initial_cpb_removal_delay_offset[SchedSelIdx] of the associated buffering period SEI message. Otherwise, the variable InitCpbRemovalDelay[SchedSelIdx] may be set to initial_du_cpb_removal_delay[SchedSelIdx] of the associated buffering period SEI message, and InitCpbRemovalDelayOffset[SchedSelIdx] may be set to initial_du_cpb_removal_delay_offset[SchedSelIdx] of the associated buffering period SEI message.

解码单元n的第一位开始进入CPB的时间可被称为初始到达时间tai(m)。可如下导出解码单元的初始到达时间:The time when the first bit of decoding unit n begins to enter the CPB can be called the initial arrival time t ai (m). The initial arrival time of a decoding unit can be derived as follows:

如果解码单元为解码单元0,那么tai(0)=0;If the decoding unit is decoding unit 0, then t ai (0) = 0;

否则(解码单元为解码单元m,其中m>0),以下内容可适用:Otherwise (the decoding unit is decoding unit m, where m>0), the following applies:

如果cbr_flag[SchedSelIdx]等于1,那么用于解码单元m的初始到达时间可等于存取单元m-1的最终到达时间(其在下文被导出),即,If cbr_flag[SchedSelIdx] is equal to 1, then the initial arrival time for decoding unit m may be equal to the final arrival time of access unit m-1 (which is derived below), i.e.,

tai(m)=taf(m-1) (C-2)t ai (m) = t af (m-1) (C-2)

否则(cbr_flag[SchedSelIdx]等于0),用于解码单元m的初始到达时间可由下式导出:Otherwise (cbr_flag[SchedSelIdx] is equal to 0), the initial arrival time for decoding unit m can be derived as follows:

tai(m)=Max(taf(m-1),tai,earliest(m)) (C-3)t ai (m)=Max (t af (m-1), t ai, earliest (m)) (C-3)

其中tai,earliest(m)可被导出如下:where t ai,earliest (m) can be derived as follows:

如果解码单元n并非后续缓冲周期的第一解码单元,那么tai,earliest(m)可被导出为:If decoding unit n is not the first decoding unit of the subsequent buffering period, then tai ,earliest (m) can be derived as:

tai,earliest(m)=tr,n(m)-(InitCpbRemovalDelay[SchedSelIdx]+InitCpbRemovalDelayOffset[SchedSelIdx])÷90000 (C-4)t ai,earliest (m)=t r,n (m)-(InitCpbRemovalDelay[SchedSelIdx]+InitCpbRemovalDelayOffset[SchedSelIdx])÷90000 (C-4)

其中tr,n(m)为解码单元m离开CPB的名义移除时间;where t r,n (m) is the nominal removal time of decoding unit m from the CPB;

否则(解码单元m为后续缓冲周期的第一解码单元),tai,earliest(m)可被导出为:Otherwise (decoding unit m is the first decoding unit of the subsequent buffering period), tai ,earliest (m) can be derived as:

tai,earliest(m)=tr,n(m)-(InitCpbRemovalDelay[SchedSelIdx]÷90000) (C-5)t ai,earliest (m)=t r,n (m)-(InitCpbRemovalDelay[SchedSelIdx]÷90000) (C-5)

用于解码单元m的最终到达时间taf可由下式导出:The final arrival time t af for decoding unit m can be derived as follows:

taf(m)=tai(m)+b(m)÷BitRate[SchedSelIdx] (C-6)t af (m)=t ai (m)+b(m)÷BitRate[SchedSelIdx] (C-6)

其中b(m)为解码单元m的以位为单位的大小,其针对Type I一致性点而计数VCLNAL单元及填充物数据NAL单元的位或针对Type II一致性点而计数Type II位流的所有位。where b(m) is the size of decoding unit m in bits, counting the bits of VCL NAL units and filler data NAL units for Type I conformance points or counting all bits of the Type II bitstream for Type II conformance points.

在一些实例中,可如下约束SchedSelIdx、BitRate[SchedSelIdx]及CpbSize[SchedSelIdx]的值:In some examples, the values of SchedSelIdx, BitRate[SchedSelIdx], and CpbSize[SchedSelIdx] may be constrained as follows:

如果用于含有解码单元m的存取单元的活动序列参数集合的内容与用于上一存取单元的活动序列参数集合的内容不同,那么HSS可从提供在用于含有解码单元m的存取单元的活动序列参数集合中的SchedSelIdx的值当中选择SchedSelIdx的值SchedSelIdx1,所述值SchedSelIdx1针对含有解码单元m的存取单元引起BitRate[SchedSelIdx1]或CpbSize[SchedSelIdx1]。BitRate[SchedSelIdx1]或CpbSize[SchedSelIdx1]的值可不同于针对在使用中用于上一存取单元的SchedSelIdx的值SchedSelIdx0的BitRate[SchedSelIdx0]或CpbSize[SchedSelIdx0]的值。If the contents of the active sequence parameter set for the access unit containing decoding unit m are different from the contents of the active sequence parameter set for the previous access unit, then the HSS may select a value of SchedSelIdx, SchedSelIdx1, from among the values of SchedSelIdx provided in the active sequence parameter set for the access unit containing decoding unit m, which value SchedSelIdx1 results in BitRate[SchedSelIdx1] or CpbSize[SchedSelIdx1] for the access unit containing decoding unit m. The value of BitRate[SchedSelIdx1] or CpbSize[SchedSelIdx1] may be different from the value of BitRate[SchedSelIdx0] or CpbSize[SchedSelIdx0] for the value of SchedSelIdx, SchedSelIdx0, in use for the previous access unit.

否则,HSS可继续用SchedSelIdx、BitRate[SchedSelIdx]及CpbSize[SchedSelIdx]的先前值而操作。Otherwise, the HSS may continue to operate with the previous values of SchedSelIdx, BitRate[SchedSelIdx], and CpbSize[SchedSelIdx].

当HSS选择不同于上一存取单元的值的BitRate[SchedSelIdx]或CpbSize[SchedSelIdx]的值时,以下内容可适用:When the HSS selects a value for BitRate[SchedSelIdx] or CpbSize[SchedSelIdx] that is different from the value of the previous access unit, the following applies:

变量BitRate[SchedSelIdx]可在时间tai(m)开始生效;The variable BitRate[SchedSelIdx] may take effect at time t ai (m);

变量CpbSize[SchedSelIdx]可开始生效如下:The variable CpbSize[SchedSelIdx] can be put into effect as follows:

如果CpbSize[SchedSelIdx]的新值超过旧CPB大小,那么其可在时间tai(m)开始生效;If the new value of CpbSize[SchedSelIdx] exceeds the old CPB size, it may take effect starting at time t ai (m);

否则,CpbSize[SchedSelIdx]的新值可在含有解码单元m的存取单元的最后解码单元的CPB移除时间开始生效。Otherwise, the new value of CpbSize[SchedSelIdx] may take effect at the CPB removal time of the last decoding unit of the access unit containing decoding unit m.

当变量SubPicCpbFlag等于1时,存取单元n的初始CPB到达时间tai(n)可设置到存取单元n中的第一解码单元的初始CPB到达时间,且存取单元n的最终CPB到达时间taf(n)可设置到存取单元n中的最后解码单元的最终CPB到达时间。当SubPicCpbFlag等于0时,每一解码单元可为存取单元,使得存取单元n的初始及最终CPB到达时间可为解码单元m的初始及最终CPB到达时间。When the variable SubPicCpbFlag is equal to 1, the initial CPB arrival time tai (n) of access unit n may be set to the initial CPB arrival time of the first decoding unit in access unit n, and the final CPB arrival time taf (n) of access unit n may be set to the final CPB arrival time of the last decoding unit in access unit n. When SubPicCpbFlag is equal to 0, each decoding unit may be an access unit, so that the initial and final CPB arrival times of access unit n may be the initial and final CPB arrival times of decoding unit m.

以下论述提供针对解码单元的解码单元移除及解码的计时的实例。如果SubPicCpbFlag等于0,那么变量CpbRemovalDelay(m)可设置到在与为解码单元m的存取单元相关联的图片计时SEI消息中所指定的cpb_removal_delay的值。否则,变量CpbRemovalDelay(m)可设置到在与含有解码单元m的存取单元相关联的图片计时SEI消息中所指定的用于解码单元m的du_cpb_removal_delay[i]的值。The following discussion provides an example of the timing of decoding unit removal and decoding for a decoding unit. If SubPicCpbFlag is equal to 0, then the variable CpbRemovalDelay(m) may be set to the value of cpb_removal_delay specified in the picture timing SEI message associated with the access unit for decoding unit m. Otherwise, the variable CpbRemovalDelay(m) may be set to the value of du_cpb_removal_delay[i] for decoding unit m specified in the picture timing SEI message associated with the access unit containing decoding unit m.

当解码单元m为m等于0的解码单元(初始化HRD的存取单元的第一解码单元)时,所述解码单元离开CPB的名义移除时间可由下式指定:When decoding unit m is a decoding unit with m equal to 0 (the first decoding unit of an access unit for which the HRD is initialized), the nominal removal time of the decoding unit from the CPB can be specified by the following formula:

tr,n(0)=InitCpbRemovalDelay[SchedSelIdx]÷90000 (C-7)t r, n (0)=InitCpbRemovalDelay[SchedSelIdx]÷90000 (C-7)

当解码单元m为并不初始化HRD的缓冲周期的第一存取单元的第一解码单元时,所述解码单元离开CPB的名义移除时间可由下式指定:When decoding unit m is the first decoding unit of the first access unit that does not initialize the HRD buffering period, the nominal removal time of the decoding unit from the CPB can be specified by the following formula:

tr,n(m)=tr,n(mb)+tc*CpbRemovalDelay(m) (C-8)t r, n (m) = t r, n (m b ) + t c *CpbRemovalDelay (m) (C-8)

其中tr,n(mb)为上一缓冲周期的第一解码单元的名义移除时间。where t r,n ( mb ) is the nominal removal time of the first decoding unit in the previous buffering period.

当解码单元m为缓冲周期的第一解码单元时,mb可设置为在解码单元m的移除时间tr,n(m)等于m。When decoding unit m is the first decoding unit of the buffering period, mb may be set such that the removal time tr ,n (m) of decoding unit m is equal to m.

并非缓冲周期的第一解码单元的解码单元m的名义移除时间tr,n(m)可由下式给出:The nominal removal time tr ,n (m) of a decoding unit m that is not the first decoding unit of a buffering period can be given by:

tr,n(m)=tr,n(mb)+tc*CpbRemovalDelay(m) (C-9)t r, n (m) = t r, n (m b ) + t c *CpbRemovalDelay (m) (C-9)

其中tr,n(mb)为当前缓冲周期的第一解码单元的名义移除时间。where t r,n ( mb ) is the nominal removal time of the first decoding unit in the current buffering period.

可如下指定解码单元m的移除时间:The removal time of decoding unit m can be specified as follows:

如果low_delay_hrd_flag等于0或tr,n(m)>=taf(m),那么解码单元m的移除时间可由下式指定:If low_delay_hrd_flag is equal to 0 or t r,n (m) >= t af (m), then the removal time of decoding unit m can be specified by:

tr(m)=tr,n(m) (C-10)t r (m) = t r, n (m) (C-10)

否则(low_delay_hrd_flag等于1且tr,n(m)<taf(m)),且解码单元m的移除时间可由下式指定:Otherwise (low_delay_hrd_flag is equal to 1 and t r,n (m) < t af (m)), and the removal time of decoding unit m can be specified by the following formula:

tr(m)=tr,n(m)+tc*Ceil((taf(m)-tr,n(m))÷tc) (C-11)t r (m)=t r,n (m)+t c *Ceil((t af (m)-t r,n (m))÷t c ) (C-11)

在这个实例中,后一状况指示解码单元m的大小b(m)如此大以致于其防止在名义移除时间的移除。In this example, the latter condition indicates that the size b(m) of decoding unit m is so large that it prevents removal at the nominal removal time.

当SubPicCpbFlag等于1时,存取单元n的名义CPB移除时间tr,n(n)可设置到存取单元n中的最后解码单元的正常CPB移除时间;存取单元n的CPB移除时间tr(n)可设置到存取单元n中的最后解码单元的CPB移除时间。当SubPicCpbFlag等于0时,在这个实例中,每一解码单元m为存取单元n,且因此,存取单元n的名义CPB移除时间及CPB移除时间为解码单元m的名义CPB移除时间及CPB移除时间。在一些实例中,在解码单元m的CPB移除时间,解码单元可被瞬时地解码。When SubPicCpbFlag is equal to 1, the nominal CPB removal time t r,n (n) of access unit n can be set to the normal CPB removal time of the last decoding unit in access unit n; the CPB removal time t r (n) of access unit n can be set to the CPB removal time of the last decoding unit in access unit n. When SubPicCpbFlag is equal to 0, in this example, each decoding unit m is access unit n, and therefore, the nominal CPB removal time and CPB removal time of access unit n are the nominal CPB removal time and CPB removal time of decoding unit m. In some examples, at the CPB removal time of decoding unit m, the decoding unit can be decoded instantaneously.

在这个实例中,经解码图片缓冲器(DPB)可操作如下。所述经解码图片缓冲器可含有一或多个图片存储缓冲器。所述图片存储缓冲器中的每一者可含有经解码图片,所述经解码图片被标记为“用于参考”或经保持以供未来输出。在初始化之前,DPB可空白(DPB充满度变量可设置到零)。这个实例的以下步骤可以所列出序列而发生。In this example, the decoded picture buffer (DPB) may operate as follows. The decoded picture buffer may contain one or more picture storage buffers. Each of the picture storage buffers may contain a decoded picture that is marked as "used for reference" or retained for future output. Prior to initialization, the DPB may be empty (the DPB fullness variable may be set to zero). The following steps of this example may occur in the sequence listed.

首先,可从DPB移除图片。在当前图片的解码之前(但在分析当前图片的第一切片的切片标头之后)图片从DPB的移除可在存取单元n(含有当前图片)的第一解码单元的CPB移除时间瞬时地发生,且可进行如下。可调用如在HEVC WD6的子条款8.3.2中所指定的用于参考图片集合的解码进程。如果当前图片为IDR图片,那么以下内容可适用:当IDR图片并非经解码的第一IDR图片且从活动序列参数集合导出的pic_width_in_luma_samples或pic_height_in_luma_samples或max_dec_pic_buffering的值分别不同于从针对前一图片为活动的序列参数集合导出的pic_width_in_luma_samples或pic_height_in_luma_samples或max_dec_pic_buffering的值时,no_output_of_prior_pics_flag(即,无先前图片输出旗标)可由HRD推断为等于1,或由HRD设置到1以用于其自己的处理,而不管no_output_of_prior_pics_flag的实际值如何。相比于关于pic_width_in_luma_samples或pic_height_in_luma_samples的改变的HRD,解码器实施可尝试更从容地处置图片或DPB大小改变。First, the picture can be removed from the DPB. Removal of the picture from the DPB can occur instantaneously at the CPB removal time of the first decoding unit of access unit n (containing the current picture), before decoding of the current picture (but after parsing the slice header of the first slice of the current picture), and can proceed as follows. The decoding process for reference picture sets as specified in subclause 8.3.2 of HEVC WD6 can be invoked. If the current picture is an IDR picture, the following may apply: when the IDR picture is not the first IDR picture decoded and the value of pic_width_in_luma_samples or pic_height_in_luma_samples or max_dec_pic_buffering derived from the active sequence parameter set is different from the value of pic_width_in_luma_samples or pic_height_in_luma_samples or max_dec_pic_buffering, respectively, derived from the sequence parameter set that is active for the previous picture, no_output_of_prior_pics_flag (i.e., no previous picture output flag) may be inferred by the HRD to be equal to 1, or set to 1 by the HRD for its own processing, regardless of the actual value of no_output_of_prior_pics_flag. The decoder implementation may attempt to handle picture or DPB size changes more gracefully than the HRD regarding changes in pic_width_in_luma_samples or pic_height_in_luma_samples.

当no_output_of_prior_pics_flag等于1或推断为等于1时,可使DPB中的所有图片存储缓冲器空白而没有其所含有的图片的输出,且DPB充满度可设置到0。(下文进一步描述在no_output_of_prior_pics_flag具有不等于1的值时可执行的进一步处理)。可从DPB移除DPB中的所有图片k(对于所述图片,以下条件成立):When no_output_of_prior_pics_flag is equal to 1 or is inferred to be equal to 1, all picture storage buffers in the DPB may be emptied of the output of the pictures they contain, and the DPB fullness may be set to 0. (Further processing that may be performed when no_output_of_prior_pics_flag has a value not equal to 1 is further described below.) All pictures k in the DPB for which the following conditions hold may be removed from the DPB:

图片k被标记为“未用于参考”;Image k is marked as “not used for reference”;

图片k具有等于0的PicOutputFlag,或其DPB输出时间小于或等于当前图片n的第一解码单元(被表示为解码单元m)的CPB移除时间;即,to,dpb(k)<=tr(m)。Picture k has PicOutputFlag equal to 0, or its DPB output time is less than or equal to the CPB removal time of the first decoding unit (denoted as decoding unit m) of current picture n; ie, to ,dpb (k)<= tr (m).

当从DPB移除图片时,DPB充满度可递减1。对于图片输出,以下情形可在存取单元n的CPB移除时间tr(n)瞬时地发生:When a picture is removed from the DPB, the DPB fullness may be decremented by 1. For picture output, the following may occur instantaneously at the CPB removal time tr (n) of access unit n:

图片n可在所述图片的最后解码单元被解码之后被视为经解码。Picture n may be considered decoded after the last decoding unit of the picture is decoded.

当图片n具有等于1的PicOutputFlag时,其DPB输出时间to,dpb(n)可由下式导出:When picture n has PicOutputFlag equal to 1, its DPB output time t o,dpb (n) can be derived as follows:

to,dpb(n)=tr(n)+tc*dpb_output_delay(n) (C-12)t o, dpb (n) = t r (n) + t c *dpb_output_delay (n) (C-12)

其中dpb_output_delay(n)为在与存取单元n相关联的图片计时SEI消息中所指定的dpb_output_delay的值。where dpb_output_delay(n) is the value of dpb_output_delay specified in the picture timing SEI message associated with access unit n.

可如下指定当前图片的输出:The output of the current image can be specified as follows:

如果PicOutputFlag等于1且to,dpb(n)=tr(n),那么当前图片可被输出;If PicOutputFlag is equal to 1 and t o,dpb (n)=t r (n), then the current picture can be output;

否则,如果PicOutputFlag等于0,那么当前图片可未被输出,但可存储在DPB中;Otherwise, if PicOutputFlag is equal to 0, the current picture may not be output but may be stored in the DPB;

否则(PicOutputFlag等于1且to,dpb(n)>tr(n)),当前图片可稍后被输出且可存储在DPB中(如在如由本发明修改的HEVC WD6的子条款C.3.3中所指定),且可在时间to,dpb(n)被输出,除非被指示不会通过等于1的no_output_of_prior_pics_flag的解码或推断在to,dpb(n)之前的时间被输出。换言之,如果无先前图片输出旗标不等于1,那么当前图片可存储在DPB中且可稍后(例如,在时间to,dpb(n))被输出。Otherwise (PicOutputFlag is equal to 1 and t o,dpb (n)>t r (n)), the current picture may be output later and may be stored in the DPB (as specified in subclause C.3.3 of HEVC WD6 as modified by this disclosure), and may be output at time t o,dpb (n), unless indicated not to be output at a time before t o,dpb (n) by decoding or inference of no_output_of_prior_pics_flag being equal to 1. In other words, if the no prior picture output flag is not equal to 1, the current picture may be stored in the DPB and may be output later (e.g., at time t o,dpb (n)).

当被输出时,图片可使用在活动序列参数集合中所指定的剪裁矩形予以剪裁。When output, the picture may be cropped using the crop rectangle specified in the active sequence parameter set.

当图片n为被输出且并非被输出的位流的最后图片的图片时,可如下定义DPB输出时间间隔Δto,dpb(n)的值:When picture n is a picture that is output and is not the last picture of the output bitstream, the value of the DPB output time interval Δt o,dpb (n) may be defined as follows:

Δto,dpb(n)=to,dpb(nn)-to,dpb(n) (C-13)Δt o,dpb (n)=t o,dpb (n n )-t o,dpb (n) (C-13)

其中nn可指示在输出顺序方面跟随在图片n之后且具有等于1的PicOutputFlag的图片,使得DPB输出时间间隔Δto,dpb(n)可被定义为在输出顺序方面在图片n之后的后续图片的DPB输出时间与图片n的DPB输出时间之间的差。Where n n may indicate a picture that follows picture n in output order and has PicOutputFlag equal to 1, so that the DPB output time interval Δt o,dpb (n) may be defined as the difference between the DPB output time of the subsequent picture following picture n in output order and the DPB output time of picture n.

对于当前经解码图片标记及存储,以下情形可在存取单元n的CPB移除时间tr(n)被瞬时地实施:当前经解码图片可在DPB中存储在空白图片存储缓冲器中,且DPB充满度可递增1;如果当前图片为参考图片,那么其可被标记为“用于参考”,否则,其可被标记为“未用于参考”。For the current decoded picture marking and storage, the following scenarios may be instantaneously implemented at the CPB removal time t r (n) of access unit n: the current decoded picture may be stored in the DPB in an empty picture storage buffer, and the DPB fullness may be incremented by 1; if the current picture is a reference picture, it may be marked as "used for reference", otherwise, it may be marked as "unused for reference".

对于DPB的输出顺序的操作,经解码图片缓冲器可含有一或多个图片存储缓冲器。所述图片存储缓冲器中的每一者可含有经解码图片,所述经解码图片被标记为“用于参考”或经保持以供未来输出。在HRD初始化时,DPB可空白。以下步骤可以所列出顺序而发生。For output-order operation of the DPB, the decoded picture buffer may contain one or more picture storage buffers. Each of these picture storage buffers may contain a decoded picture that is marked as "used for reference" or retained for future output. When the HRD is initialized, the DPB may be empty. The following steps may occur in the order listed.

可如下从DPB移除图片。在当前图片的解码之前(但在分析当前图片的第一切片的切片标头之后)图片从DPB的移除可在从CPB移除含有当前图片的存取单元的第一解码单元时被瞬时地实施,且可进行如下。A picture may be removed from the DPB as follows: Removal of a picture from the DPB before decoding of the current picture (but after parsing the slice header of the first slice of the current picture) may be performed instantaneously when the first decoding unit of the access unit containing the current picture is removed from the CPB and may proceed as follows.

可调用如在如根据本发明而修改的HEVC WD6的子条款8.3.4.3中所指定的用于参考图片集合的解码进程(如上文部分地所描述,且如下进一步所描述)。The decoding process for reference picture sets as specified in subclause 8.3.4.3 of HEVC WD6 as modified in accordance with this disclosure may be invoked (as partially described above and further described below).

如果当前图片为IDR图片,那么以下内容可适用:If the current picture is an IDR picture, the following applies:

当IDR图片并非经解码的第一IDR图片且从活动序列参数集合所导出的pic_width_in_luma_samples或pic_height_in_luma_samples或max_dec_pic_buffering的值分别不同于从针对前一图片为活动的序列参数集合导出的pic_width_in_luma_samples或pic_height_in_luma_samples或max_dec_pic_buffering的值时,no_output_of_prior_pics_flag可由HRD设置为或推断为等于1,而不管no_output_of_prior_pics_flag的实际值如何。相比于HRD,解码器实施方案可尝试更从容地处置pic_width_in_luma_samples或pic_height_in_luma_samples或max_dec_pic_buffering的值的改变;When an IDR picture is not the first IDR picture decoded and the value of pic_width_in_luma_samples or pic_height_in_luma_samples or max_dec_pic_buffering derived from the active sequence parameter set is different from the value of pic_width_in_luma_samples or pic_height_in_luma_samples or max_dec_pic_buffering, respectively, derived from the sequence parameter set that was active for the previous picture, no_output_of_prior_pics_flag may be set or inferred to be equal to 1 by the HRD, regardless of the actual value of no_output_of_prior_pics_flag. Decoder implementations may attempt to handle changes in the value of pic_width_in_luma_samples or pic_height_in_luma_samples or max_dec_pic_buffering more gracefully than the HRD;

当no_output_of_prior_pics_flag等于1或推断为等于1时,可使DPB中的所有图片存储缓冲器空白而没有其所含有的图片的输出;When no_output_of_prior_pics_flag is equal to 1 or is inferred to be equal to 1, all picture storage buffers in the DPB may be left empty without output of the pictures they contain;

否则,可使含有被标记为“无需用于输出”及“未用于参考”的图片的图片存储缓冲器空白(无输出)。Otherwise, the picture storage buffer containing pictures marked as "not needed for output" and "unused for reference" may be left empty (no output).

当以下条件中的任一者成立时,可重复地调用如通过本发明而修改的HEVC WD6的子条款C.5.2.1中所指定的“提高”进程,直到存在空白图片存储缓冲器来存储当前经解码图片:The “boost” process as specified in subclause C.5.2.1 of HEVC WD6 as modified by this disclosure may be repeatedly called until there is an empty picture storage buffer to store the current decoded picture when any of the following conditions holds:

DPB中被标记为“需要用于输出”的图片的数目大于在当前时间层处的重新排序图片的数目,即,num_reorder_pics[temporal_id];或,The number of pictures marked as "needed for output" in the DPB is greater than the number of reorder pictures at the current temporal layer, i.e., num_reorder_pics[temporal_id]; or,

DPB中时间层标识符值temporal_id低于或等于当前图片的时间层标识符值temporal_id的图片的数目等于当前时间层的最大图片缓冲值加1,即,max_dec_pic_buffering[temporal_id]+1;或,The number of pictures in the DPB whose temporal layer identifier value temporal_id is less than or equal to the temporal layer identifier value temporal_id of the current picture is equal to the maximum picture buffering value of the current temporal layer plus 1, that is, max_dec_pic_buffering[temporal_id]+1; or

当当前图片为IDR图片时,对于所述图片,无先前图片输出旗标no_output_of_prior_pics_flag具有不等于1且未推断为等于1的值。When the current picture is an IDR picture, the no previous picture output flag no_output_of_prior_pics_flag has a value not equal to 1 and is not inferred to be equal to 1 for the picture.

可执行以下步骤:可使含有被标记为“无需用于输出”及“未用于参考”的图片的图片存储缓冲器空白(无输出);及可通过重复地调用下文所指定的“提高”进程而使DPB中的所有非空白图片存储缓冲器空白。The following steps may be performed: the picture storage buffers containing pictures marked as "not needed for output" and "not used for reference" may be made empty (no output); and all non-empty picture storage buffers in the DPB may be made empty by repeatedly calling the "boost" process specified below.

因此,可在以下状况中的任一者下调用“提高”进程:Therefore, the "boost" process may be invoked under any of the following conditions:

当前图片为IDR图片且no_output_of_prior_pics_flag不等于1且未设置为或推断为等于1,如在如通过本发明而修改的HEVC WD6的子条款C.5.2中所指定;或,the current picture is an IDR picture and no_output_of_prior_pics_flag is not equal to 1 and is not set or inferred to be equal to 1, as specified in subclause C.5.2 of HEVC WD6 as modified by this disclosure; or,

DPB中被标记为“需要用于输出”的图片的数目大于在当前时间层处的重新排序图片的数目,即,num_reorder_pics[temporal_id],如在如通过本发明而修改的HEVC WD6的子条款C.5.2中所指定;或,the number of pictures marked as "needed for output" in the DPB is greater than the number of reorder pictures at the current temporal layer, i.e., num_reorder_pics[temporal_id], as specified in subclause C.5.2 of HEVC WD6 as modified by this invention; or,

DPB中temporal_id低于或等于当前图片的时间层标识符值temporal_id的图片的数目等于当前时间层的最大图片缓冲值加1,即,max_dec_pic_buffering[temporal_id]+1,如在如通过本发明而修改的HEVC WD6的子条款C.5.2中所指定。The number of pictures in the DPB with temporal_id lower than or equal to the temporal layer identifier value temporal_id of the current picture is equal to the maximum picture buffering value of the current temporal layer plus 1, i.e., max_dec_pic_buffering[temporal_id]+1, as specified in subclause C.5.2 of HEVC WD6 as modified by this invention.

“提高”进程可包括以下有序步骤:The "improvement" process may include the following sequential steps:

1.可选择首先用于输出的图片作为具有在DPB中被标记为“需要用于输出”的所有图片的PicOrderCntVal的最小值的图片。1. The picture to be outputted first may be selected as the picture having the minimum value of PicOrderCntVal of all pictures marked as “needed for output” in the DPB.

2.使用在用于图片的活动序列参数集合中所指定的剪裁矩形来剪裁图片,可输出经剪裁图片,且可将所述图片标记为“无需用于输出”。2. The picture is cropped using the cropping rectangle specified in the active sequence parameter set for the picture, the cropped picture may be output, and the picture may be marked as "not needed for output."

3.如果包括被剪裁及输出的图片的图片存储缓冲器含有被标记为“未用于参考”的图片,那么可使所述图片存储缓冲器空白。3. If the picture storage buffer including the cropped and output picture contains pictures marked as "unused for reference", the picture storage buffer may be emptied.

当从CPB移除含有当前图片的存取单元n的最后解码单元时,以下情形可针对图片解码、标记及存储瞬时地发生。When the last decoding unit of access unit n containing the current picture is removed from the CPB, the following may happen instantaneously for picture decoding, marking, and storage.

当前图片可在所述图片的最后解码单元被解码之后被视为经解码。当前经解码图片可在DPB中存储在空白图片存储缓冲器中,且以下内容可适用:The current picture may be considered decoded after the last decoding unit of the picture is decoded. The current decoded picture may be stored in an empty picture storage buffer in the DPB, and the following may apply:

如果当前经解码图片具有等于1的PicOutputFlag,那么其可被标记为“需要用于输出”;If the current decoded picture has PicOutputFlag equal to 1, it may be marked as "needed for output";

否则(当前经解码图片具有等于0的PicOutputFlag),其可被标记为“无需用于输出”。Otherwise (the current decoded picture has PicOutputFlag equal to 0), it may be marked as “not needed for output”.

如果当前经解码图片为参考图片,那么其可被标记为“用于参考”,否则(当前经解码图片为非参考图片),其可被标记为“未用于参考”。If the current decoded picture is a reference picture, it may be marked as “used for reference”, otherwise (the current decoded picture is a non-reference picture), it may be marked as “unused for reference”.

因此,提高进程可包括:选择DPB中具有图片的最小图片顺序计数(POC)值且被标记为需要用于输出的图片作为选定图片;如用于选定图片的活动序列参数集合中所指定而剪裁选定图片,从而基于选定图片来产生经剪裁图片;输出经剪裁图片;及将选定图片标记为无需用于输出。Therefore, the improvement process may include: selecting a picture in the DPB that has a minimum picture order count (POC) value of the pictures and is marked as required for output as a selected picture; cropping the selected picture as specified in the active sequence parameter set for the selected picture, thereby generating a cropped picture based on the selected picture; outputting the cropped picture; and marking the selected picture as not required for output.

在使用下文所定义的语义的情况下,可使用语法元素以发信CPB行为模式。VUI参数的语法及语义可改变为如下表3所示(在这个实例中,现有语法元素的语义并未相对于HEVC WD6而改变):Using the semantics defined below, syntax elements may be used to signal CPB behavior modes. The syntax and semantics of the VUI parameters may be changed as shown in Table 3 below (in this example, the semantics of the existing syntax elements are unchanged relative to HEVC WD6):

表3Table 3

在表3的实例中,相对于习知HEVC,VUI参数包括附加旗标sub_pic_cpb_params_present_flag。可如下定义用于这个旗标的语义:等于1的sub_pic_cpb_params_present_flag可指定子图片级别CPB移除延迟参数存在,且CPB可在存取单元级别或子图片级别处操作。等于0的变量sub_pic_cpb_flag可指定子图片级别CPB移除延迟参数不存在,且CPB必须在存取单元级别处操作。当sub_pic_cpb_params_present_flag不存在时,其值可设置为或推断为等于0。In the example of Table 3, the VUI parameters include an additional flag, sub_pic_cpb_params_present_flag, relative to conventional HEVC. The semantics for this flag may be defined as follows: sub_pic_cpb_params_present_flag, when equal to 1, may specify that the sub-picture level CPB removal delay parameters are present and that the CPB may operate at either the access unit level or the sub-picture level. The variable sub_pic_cpb_flag, when equal to 0, may specify that the sub-picture level CPB removal delay parameters are not present and that the CPB must operate at the access unit level. When sub_pic_cpb_params_present_flag is not present, its value may be set or inferred to be equal to 0.

在使用下文所描述的语义的情况下,也可使用语法元素以发信解码单元的CPB移除时间。在这个实例中,可(例如)根据表4的实例而在缓冲周期SEI消息中发信语法元素:In the case of using the semantics described below, syntax elements may also be used to signal the CPB removal time of the decoding unit. In this example, the syntax elements may be signaled in a buffering period SEI message, for example, according to the example of Table 4:

表4Table 4

buffering_period(payloadSize){buffering_period(payloadSize){ 描述符Descriptor seq_parameter_set_idseq_parameter_set_id ue(v)ue(v) if(NalHrdBpPresentFlag){if(NalHrdBpPresentFlag){ for(SchedSelIdx=0;SchedSelIdx<=cpb_cnt_minus1;SchedSelIdx++){ for(SchedSelIdx=0; SchedSelIdx<=cpb_cnt_minus1; SchedSelIdx++){ initial_cpb_removal_delay[SchedSelIdx] initial_cpb_removal_delay[SchedSelIdx] u(v)u(v) initial_cpb_removal_delay_offset[SchedSelIdx] initial_cpb_removal_delay_offset[SchedSelIdx] u(v)u(v) if(sub_pic_cpb_flag){if(sub_pic_cpb_flag){ initial_du_cpb_removal_delay[SchedSelIdx] initial_du_cpb_removal_delay[SchedSelIdx] u(v)u(v) initial_du_cpb_removal_delay_offset[SchedSelIdx] initial_du_cpb_removal_delay_offset[SchedSelIdx] u(v)u(v) }} }} }} if(VclHrdBpPresentFlag){if(VclHrdBpPresentFlag){ for(SchedSelIdx=0;SchedSelIdx<=cpb_cnt_minus1;SchedSelIdx++){ for(SchedSelIdx=0; SchedSelIdx<=cpb_cnt_minus1; SchedSelIdx++){ initial_cpb_removal_delay[SchedSelIdx] initial_cpb_removal_delay[SchedSelIdx] u(v)u(v) initial_cpb_removal_delay_offset[SchedSelIdx] initial_cpb_removal_delay_offset[SchedSelIdx] u(v)u(v) if(sub_pic_cpb_flag){if(sub_pic_cpb_flag){ initial_du_cpb_removal_delay[SchedSelIdx] initial_du_cpb_removal_delay[SchedSelIdx] u(v)u(v) initial_du_cpb_removal_delay_offset[SchedSelIdx] initial_du_cpb_removal_delay_offset[SchedSelIdx] u(v)u(v) }} }} }} }}

在表4的实例中,缓冲周期SEI消息相对于习知HEVC包括附加条件,其进一步包括:当sub_pic_cpb_flag成立时,添加两个语法元素initial_du_cpb_removal_delay[SchedSelIdx]及initial_du_cpb_removal_delay_offset[SchedSelIdx]。这个条件及附加语法元素可添加在针对以下情形的条件中的任一者或两者内:当NalHrdBpPresentFlag成立时,及/或当VclHardBpPresentFlag成立时。In the example of Table 4, the buffering period SEI message includes additional conditions relative to conventional HEVC, which further include: when sub_pic_cpb_flag is true, adding two syntax elements initial_du_cpb_removal_delay[SchedSelIdx] and initial_du_cpb_removal_delay_offset[SchedSelIdx]. This condition and additional syntax elements can be added within either or both of the conditions for the following situations: when NalHrdBpPresentFlag is true and/or when VclHardBpPresentFlag is true.

表5提供替代实例,其中定义不同SEI消息以发信用于子图片级别CPB操作的初始CPB移除延迟及初始CPB移除延迟偏移:Table 5 provides an alternative example, in which different SEI messages are defined to signal the initial CPB removal delay and initial CPB removal delay offset for sub-picture level CPB operation:

表5Table 5

du_buffering_period(payloadSize){du_buffering_period(payloadSize){ 描述符Descriptor seq_parameter_set_idseq_parameter_set_id ue(v)ue(v) if(NalHrdBpPresentFlag){if(NalHrdBpPresentFlag){ for(SchedSelIdx=0;SchedSelIdx<=cpb_cnt_minus1;SchedSelIdx++){ for(SchedSelIdx=0; SchedSelIdx<=cpb_cnt_minus1; SchedSelIdx++){ initial_du_cpb_removal_delay[SchedSelIdx] initial_du_cpb_removal_delay[SchedSelIdx] u(v)u(v) initial_du_cpb_removal_delay_offset[SchedSelIdx] initial_du_cpb_removal_delay_offset[SchedSelIdx] u(v)u(v) }} }} if(VclHrdBpPresentFlag){if(VclHrdBpPresentFlag){ for(SchedSelIdx=0;SchedSelIdx<=cpb_cnt_minus1;SchedSelIdx++){ for(SchedSelIdx=0; SchedSelIdx<=cpb_cnt_minus1; SchedSelIdx++){ initial_du_cpb_removal_delay[SchedSelIdx] initial_du_cpb_removal_delay[SchedSelIdx] u(v)u(v) initial_du_cpb_removal_delay_offset[SchedSelIdx] initial_du_cpb_removal_delay_offset[SchedSelIdx] u(v)u(v) }} }} }}

在上表4的实例中,当NalHrdBpPresentFlag或VclHrdBpPresentFlag等于1时,缓冲周期SEI消息可与位流中的任何存取单元相关联,且缓冲周期SEI消息可与每一IDR存取单元、每一CRA存取单元及与恢复点SEI消息相关联的每一存取单元相关联。对于一些应用,缓冲周期SEI消息的频繁存在可合乎需要。在一些实例中,在缓冲周期SEI消息的按解码顺序的两个例项之间,缓冲周期可被指定为存取单元集合。In the example of Table 4 above, when NalHrdBpPresentFlag or VclHrdBpPresentFlag is equal to 1, the buffering period SEI message can be associated with any access unit in the bitstream, and the buffering period SEI message can be associated with each IDR access unit, each CRA access unit, and each access unit associated with a recovery point SEI message. For some applications, the frequent presence of the buffering period SEI message may be desirable. In some examples, between two instances of the buffering period SEI message in decoding order, the buffering period may be specified as a set of access units.

在上表4及5的实例中,变量seq_parameter_set_id可指定含有序列HRD属性的序列参数集合。seq_parameter_set_id的值可等于由与缓冲周期SEI消息相关联的主要经译码图片参考的图片参数集合中的seq_parameter_set_id的值。在一些实例中,seq_parameter_set_id的值可在0到31(包括在内)的范围内。In the examples of Tables 4 and 5 above, the variable seq_parameter_set_id may specify a sequence parameter set containing sequence HRD attributes. The value of seq_parameter_set_id may be equal to the value of seq_parameter_set_id in the picture parameter set referenced by the primary coded picture associated with the buffering period SEI message. In some examples, the value of seq_parameter_set_id may be in the range of 0 to 31 (inclusive).

在上表4的实例中,initial_cpb removal_delay[SchedSelIdx]可指定在到达时间与移除时间之间针对第SchedSelIdx个CPB的延迟,其中所述到达时间为与存取单元相关联的经译码数据的第一位进入CPB的到达时间,所述存取单元是与缓冲周期SEI消息相关联,且所述移除时间为针对在HRD初始化之后的第一缓冲周期与同一存取单元相关联的经译码数据离开CPB的移除时间。这个语法元素可具有由initial_cpb_removal_delay_length_minus1+1给出的以位为单位的长度。在这个实例中,其可以90kHz时钟为单位。在这个实例中,语法元素initial_cpb_removal_delay[SchedSelIdx]可不等于0,且在这个实例中,可不超过90000*(CpbSize[SchedSelIdx]÷BitRate[SchedSelIdx]),以90kHz时钟为单位的CPB大小的时间等效者。In the example of Table 4 above, initial_cpb removal_delay[SchedSelIdx] may specify the delay for the SchedSelIdx-th CPB between the arrival time of the first bit of coded data associated with the access unit associated with the buffering period SEI message into the CPB, and the removal time of the coded data associated with the same access unit for the first buffering period after HRD initialization that leaves the CPB. This syntax element may have a length in bits given by initial_cpb_removal_delay_length_minus1+1. In this example, it may be in units of a 90 kHz clock. In this example, the syntax element initial_cpb_removal_delay[SchedSelIdx] may not be equal to 0, and in this example, may not exceed 90000*(CpbSize[SchedSelIdx]÷BitRate[SchedSelIdx]), the time equivalent of the CPB size in units of a 90 kHz clock.

在上表4的实例中,语法元素initial_cpb_removal_delay_offset[SchedSelIdx]可结合cpb_removal_delay而用于第SchedSelIdx个CPB以指定经译码存取单元到CPB的初始传递时间。在这个实例中,语法元素initial_cpb_removal_delay_offset[SchedSelIdx]可以90kHz时钟为单位。initial_cpb_removal_delay_offset[SchedSelIdx]语法元素可为固定长度码,其以位为单位的长度是由initial_cpb_removal_delay_length_minus1+1给出。这个语法元素可不由解码器使用,且可仅为在HEVC WD6的Annex C中所指定的传递调度器(HSS)所需要。遍及整个经译码视频序列,initial_cpb_removal_delay[SchedSelIdx]与initial_cpb_removal_delay_offset[SchedSelIdx]的总和针对SchedSelIdx的每一值可恒定。In the example of Table 4 above, the syntax element initial_cpb_removal_delay_offset[SchedSelIdx] may be used in conjunction with cpb_removal_delay for the SchedSelIdx-th CPB to specify the initial delivery time of the coded access unit to the CPB. In this example, the syntax element initial_cpb_removal_delay_offset[SchedSelIdx] may be in units of a 90 kHz clock. The initial_cpb_removal_delay_offset[SchedSelIdx] syntax element may be a fixed-length code whose length in bits is given by initial_cpb_removal_delay_length_minus1+1. This syntax element may not be used by the decoder and may only be required for the delivery scheduler (HSS) specified in Annex C of HEVC WD6. Throughout the entire coded video sequence, the sum of initial_cpb_removal_delay[SchedSelIdx] and initial_cpb_removal_delay_offset[SchedSelIdx] may be constant for each value of SchedSelIdx.

在上表4及5的实例中,语法元素initial_du_cpb_removal_delay[SchedSelIdx]可指定在到达时间与移除时间之间针对第SchedSelIdx个CPB的延迟,其中所述到达时间为与存取单元中的第一解码单元相关联的经译码数据的第一位进入CPB的到达时间,所述存取单元是与缓冲周期SEI消息相关联,且所述移除时间为针对在HRD初始化之后的第一缓冲周期与同一解码单元相关联的经译码数据离开CPB的移除时间。这个语法元素可具有由initial_cpb_removal_delay_length_minus1+1给出的以位为单位的长度。在这个实例中,这个语法元素可以90kHz时钟为单位。在这个实例中,语法元素initial_du_cpb_removal_delay[SchedSelIdx]可不等于0,且可不超过90000*(CpbSize[SchedSelIdx]÷BitRate[SchedSelIdx]),以90kHz时钟为单位的CPB大小的时间等效者。In the examples of Tables 4 and 5 above, the syntax element initial_du_cpb_removal_delay[SchedSelIdx] may specify the delay between the arrival time of the first bit of coded data associated with the first decoding unit in the access unit associated with the buffering period SEI message into the CPB and the removal time of the coded data associated with the same decoding unit for the first buffering period after HRD initialization when it leaves the CPB for the SchedSelIdx-th CPB. This syntax element may have a length in bits given by initial_cpb_removal_delay_length_minus1+1. In this example, this syntax element may be in units of a 90 kHz clock. In this example, the syntax element initial_du_cpb_removal_delay[SchedSelIdx] may not be equal to 0, and may not exceed 90000*(CpbSize[SchedSelIdx]÷BitRate[SchedSelIdx]), the time equivalent of the CPB size in units of a 90 kHz clock.

在上表4及5的实例中,语法元素initial_du_cpb_removal_delay_offset[SchedSelIdx]可结合cpb_removal_delay而用于第SchedSelIdx个CPB以指定解码单元到CPB的初始传递时间。在这个实例中,语法元素initial_cpb_removal_delay_offset[SchedSelIdx]可以90kHz时钟为单位。initial_du_cpb_removal_delay_offset[SchedSelIdx]语法元素可为固定长度码,其以位为单位的长度是由initial_cpb_removal_delay_length_minus1+1给出。在这个实例中,这个语法元素可不由解码器使用,且可仅为在HEVC WD6的Annex C中所指定的传递调度器(HSS)所需要。In the examples of Tables 4 and 5 above, the syntax element initial_du_cpb_removal_delay_offset[SchedSelIdx] may be used in conjunction with cpb_removal_delay for the SchedSelIdx-th CPB to specify the initial delivery time of the decoding unit to the CPB. In this example, the syntax element initial_cpb_removal_delay_offset[SchedSelIdx] may be in units of a 90 kHz clock. The initial_du_cpb_removal_delay_offset[SchedSelIdx] syntax element may be a fixed-length code whose length in bits is given by initial_cpb_removal_delay_length_minus1+1. In this example, this syntax element may not be used by the decoder and may only be required for the delivery scheduler (HSS) specified in Annex C of HEVC WD6.

遍及整个经译码视频序列,initial_du_cpb_removal_delay[SchedSelIdx]与initial_du_cpb_removal_delay_offset[SchedSelIdx]的总和针对SchedSelIdx的每一值可恒定。Throughout the entire coded video sequence, the sum of initial_du_cpb_removal_delay[SchedSelIdx] and initial_du_cpb_removal_delay_offset[SchedSelIdx] may be constant for each value of SchedSelIdx.

下表6提供实例图片计时SEI消息语法:Table 6 below provides an example picture timing SEI message syntax:

表6Table 6

pic_timing(payloadSize){pic_timing(payloadSize){ 描述符Descriptor if(CpbDpbDelaysPresentFlag){ if(CpbDpbDelaysPresentFlag){ cpb_removal_delaycpb_removal_delay u(v)u(v) dpb_output_delaydpb_output_delay u(v)u(v) if(sub_pic_cpb_flag){if(sub_pic_cpb_flag){ num_decoding_units_minus1 num_decoding_units_minus1 ue(v)ue(v) for(i=0;i<=num_decoding_units_minus1;i++){ for(i=0;i<=num_decoding_units_minus1;i++){ num_nalus_in_du_minus1[i] num_nalus_in_du_minus1[i] ue(v)ue(v) du_cpb_removal_delay[i] du_cpb_removal_delay[i] u(v)u(v) }} }} }} }}

在这个实例中,图片计时SEI消息包括针对sub_pic_cpb_flag的附加条件语句,所述条件语句在成立时发信num_decoding_units_minus1语法元素及for循环,所述for循环针对解码单元中的每一者发信对应numb_nalus_in_du_minus1及du_cpb_removal_delay。替代地,NAL单元到每一解码单元的映射可使用其它方式予以发信,例如,通过包括用于每一VCL NAL单元的解码单元ID,例如,在NAL单元标头、切片标头或新SEI消息中。用于每一非VCL NAL单元的解码ID可与关联VCL NAL单元相同。In this example, the picture timing SEI message includes an additional conditional statement for sub_pic_cpb_flag that, when true, signals the num_decoding_units_minus1 syntax element and a for loop that signals the corresponding numb_nalus_in_du_minus1 and du_cpb_removal_delay for each of the decoding units. Alternatively, the mapping of NAL units to each decoding unit can be signaled using other means, for example, by including a decoding unit ID for each VCL NAL unit, for example, in the NAL unit header, slice header, or a new SEI message. The decoding ID for each non-VCL NAL unit can be the same as the associated VCL NAL unit.

在表6的实例中的图片计时SEI消息的语法可取决于针对与图片计时SEI消息相关联的经译码图片为活动的序列参数集合的内容。然而,除非在IDR存取单元的图片计时SEI消息之前的是同一存取单元内的缓冲周期SEI消息,否则关联序列参数集合的激活(及,对于并非位流中的第一图片的IDR图片,经译码图片为IDR图片的确定)可直到经译码图片的第一经译码切片NAL单元的解码才发生。由于经译码图片的经译码切片NAL单元可在NAL单元顺序方面跟随图片计时SEI消息,故可存在以下状况:解码器存储含有图片计时SEI消息的RBSP,直到确定序列参数的将针对经译码图片为活动的参数,且接着执行图片计时SEI消息的分析。The syntax of the picture timing SEI message in the example of Table 6 may depend on the contents of the sequence parameter set that is active for the coded picture associated with the picture timing SEI message. However, unless the picture timing SEI message for an IDR access unit is preceded by a buffering period SEI message within the same access unit, activation of the associated sequence parameter set (and, for an IDR picture that is not the first picture in the bitstream, determination that the coded picture is an IDR picture) may not occur until the decoding of the first coded slice NAL unit of the coded picture. Since the coded slice NAL units of a coded picture may follow the picture timing SEI message in NAL unit order, there may be situations where the decoder stores the RBSP containing the picture timing SEI message until it determines which sequence parameter will be active for the coded picture and then performs analysis of the picture timing SEI message.

按照表6的实例,可如下指定图片计时SEI消息在位流中的存在。Following the example of Table 6, the presence of a picture timing SEI message in a bitstream may be specified as follows.

如果CpbDpbDelaysPresentFlag等于1,那么一个图片计时SEI消息可存在于经译码视频序列的每一存取单元中;If CpbDpbDelaysPresentFlag is equal to 1, one picture timing SEI message may be present in each access unit of the coded video sequence;

否则(CpbDpbDelaysPresentFlag等于0),没有图片计时SEI消息需要存在于经译码视频序列的任何存取单元中。Otherwise (CpbDpbDelaysPresentFlag is equal to 0), no picture timing SEI message needs to be present in any access unit of the coded video sequence.

变量cpb_removal_delay可指定在从缓冲器移除与图片计时SEI消息相关联的存取单元数据之前在与前一存取单元中的最近缓冲周期SEI消息相关联的存取单元从CPB的移除之后将等待的时钟计时周期的数目(参见HEVC WD6的子条款E.2.1)。这个值也可用以计算存取单元数据进入用于HSS的CPB的最早可能时间,如在HEVC WD6的Annex C中所指定。所述语法元素可为固定长度码,其以位为单位的长度是由cpb_removal_delay_length_minus1+1给出。cpb_removal_delay可为模数2(cpb_removal_delay_length_minus1+1)计数器的余数。确定语法元素cpb_removal_delay的长度(以位为单位)的cpb_removal_delay_length_minus1的值可为在针对与图片计时SEI消息相关联的主要经译码图片为活动的序列参数集合中译码的cpb_removal_delay_length_minus1的值。然而,cpb_removal_delay可指定相对于含有缓冲周期SEI消息的前一存取单元的移除时间的时钟计时周期的数目,所述前一存取单元可为不同经译码视频序列的存取单元。The variable cpb_removal_delay may specify the number of clock ticks to wait after the access unit associated with the most recent buffering period SEI message in the previous access unit is removed from the CPB before the access unit data associated with the picture timing SEI message is removed from the buffer (see subclause E.2.1 of HEVC WD6). This value may also be used to calculate the earliest possible time that access unit data enters the CPB for the HSS, as specified in Annex C of HEVC WD6. The syntax element may be a fixed-length code whose length in bits is given by cpb_removal_delay_length_minus1+1. cpb_removal_delay may be the remainder of a modulo-2 (cpb_removal_delay_length_minus1+1) counter. The value of cpb_removal_delay_length_minus1, which determines the length (in bits) of the syntax element cpb_removal_delay, may be the value of cpb_removal_delay_length_minus1 coded in the sequence parameter set that is active for the primary coded picture associated with the picture timing SEI message. However, cpb_removal_delay may specify the number of clock ticks relative to the removal time of the previous access unit containing the buffering period SEI message, which may be an access unit of a different coded video sequence.

变量dpb_output_delay可用以计算图片的DPB输出时间。这个变量可指定在从DPB输出经解码图片之前在存取单元中的最后解码单元从CPB的移除之后将等待的时钟计时周期的数目(参见HEVC WD6的子条款C.2)。在这个实例中,当图片仍被标记为“用于短期参考”或“用于长期参考”时,可不在所述图片的输出时间从DPB移除所述图片。在这个实例中,仅一个dpb_output_delay变量可针对经解码图片被指定。The variable dpb_output_delay can be used to calculate the DPB output time of a picture. This variable can specify the number of clock ticks to wait after the last decoding unit in an access unit is removed from the CPB before outputting the decoded picture from the DPB (see subclause C.2 of HEVC WD6). In this example, when a picture is still marked as "used for short-term reference" or "used for long-term reference", the picture may not be removed from the DPB at the output time of the picture. In this example, only one dpb_output_delay variable can be specified for a decoded picture.

语法元素dpb_output_delay的长度可由dpb_output_delay_length_minus1+1以位为单位而给出。当max_dec_pic_buffering[max_temporal_layers_minus1]等于0时,dpb_output_delay也可等于0。The length of the syntax element dpb_output_delay may be given in bits by dpb_output_delay_length_minus1 + 1. When max_dec_pic_buffering[max_temporal_layers_minus1] is equal to 0, dpb_output_delay may also be equal to 0.

从是从输出计时一致解码器(如在如通过本发明而修改的HEVC WD6的子条款C.2中所指定)输出的任何图片的dpb_output_delay导出的输出时间可在从在按解码顺序的任何后续经译码视频序列中所有图片的dpb_output_delay导出的输出时间之前。The output time derived from dpb_output_delay of any picture output from an output timing consistent decoder (as specified in subclause C.2 of HEVC WD6 as modified by this disclosure) may be before the output time derived from dpb_output_delay of all pictures in any subsequent coded video sequence in decoding order.

由这个语法元素的值建立的图片输出顺序可为与由PicOrderCnt()的值(如由HEVCWD6的子条款C.5所指定)建立的顺序相同的顺序。The picture output order established by the value of this syntax element may be the same order as the order established by the value of PicOrderCnt() (as specified by subclause C.5 of HEVC WD6).

对于因为在解码顺序方面在no_output_of_prior_pics_flag等于1或设置为或推断为等于1的IDR图片之前而未通过如通过本发明而修改的HEVC WD6的子条款C.5的“提高”进程输出的图片,从dpb_output_delay导出的输出时间可随着相对于同一经译码视频序列内的所有图片的PicOrderCnt()的值增加而增加。For pictures that are not output by the "boost" process of subclause C.5 of HEVC WD6 as modified by this disclosure because they precede, in decoding order, an IDR picture with no_output_of_prior_pics_flag equal to 1 or set or inferred to be equal to 1, the output time derived from dpb_output_delay may increase as the value of PicOrderCnt() relative to all pictures within the same coded video sequence increases.

变量num_decoding_units_minus1加1可指定在存取单元中的与图片计时SEI消息相关联的解码单元的数目。举例来说,num_decoding_units_minus1的值可在0到X(包括在内)的范围内。The variable num_decoding_units_minus1 plus 1 may specify the number of decoding units associated with the picture timing SEI message in the access unit. For example, the value of num_decoding_units_minus1 may be in the range of 0 to X, inclusive.

变量num_nalus_in_du_minus1[i]加1可指定在存取单元的第i解码单元中的与图片计时SEI消息相关联的NAL单元的数目。举例来说,num_nalus_in_du_minus1[i]的值可在0到X(包括在内)的范围内。The variable num_nalus_in_du_minus1[i] plus 1 may specify the number of NAL units associated with the picture timing SEI message in the i-th decoding unit of the access unit. For example, the value of num_nalus_in_du_minus1[i] may be in the range of 0 to X, inclusive.

存取单元的第一解码单元可包括存取单元中按解码顺序的最初num_nalus_in_du_minus1[0]+1个连续NAL单元。存取单元的第i(其中i大于0)解码单元可包括在解码顺序方面紧随存取单元的上一解码单元中的最后NAL单元的num_nalus_in_du_minus1[i]+1个连续NAL单元。举例来说,在每一解码单元中可存在至少一个VCLNAL单元。The first decoding unit of an access unit may include the first num_nalus_in_du_minus1[0]+1 consecutive NAL units in decoding order in the access unit. The i-th (where i is greater than 0) decoding unit of an access unit may include the num_nalus_in_du_minus1[i]+1 consecutive NAL units that immediately follow the last NAL unit in the previous decoding unit of the access unit in decoding order. For example, there may be at least one VCL NAL unit in each decoding unit.

变量du_cpb_removal_delay[i]可指定在从CPB移除存取单元中的与图片计时SEI消息相关联的第i解码单元之前在存取单元中的与前一存取单元中的最近缓冲周期SEI消息相关联的第一解码单元从CPB的移除之后将等待的时钟计时周期的数目(参见HEVCWD6的子条款E.2.1)。这个值也可用以计算解码单元数据进入用于HSS的CPB的最早可能时间,如在HEVC WD6的Annex C中所指定。所述语法元素可为固定长度码,其以位为单位的长度可由cpb_removal_delay_length_minus1+1给出。du_cpb_removal_delay[i]可为模数2(cpb_removal_delay_length_minus1+1)计数器的余数。确定语法元素du_cpb_removal_delay[i]的长度(以位为单位)的cpb_removal_delay_length_minus1的值可为在针对与图片计时SEI消息相关联的经译码图片为活动的序列参数集合中译码的cpb_removal_delay_length_minus1的值。然而,du_cpb_removal_delay[i]指定相对于在含有缓冲周期SEI消息的前一存取单元中的第一解码单元的移除时间的时钟计时周期的数目,所述前一存取单元可为不同经译码视频序列的存取单元。The variable du_cpb_removal_delay[i] may specify the number of clock ticks to wait after the first decoding unit in an access unit associated with the most recent buffering period SEI message in the previous access unit is removed from the CPB before the i-th decoding unit in the access unit associated with the picture timing SEI message is removed from the CPB (see subclause E.2.1 of HEVC WD6). This value may also be used to calculate the earliest possible time that decoding unit data enters the CPB for the HSS, as specified in Annex C of HEVC WD6. The syntax element may be a fixed-length code, whose length in bits may be given by cpb_removal_delay_length_minus1+1. du_cpb_removal_delay[i] may be the remainder of a modulo-2 (cpb_removal_delay_length_minus1+1) counter. The value of cpb_removal_delay_length_minus1, which determines the length (in bits) of the syntax element du_cpb_removal_delay[i], may be the value of cpb_removal_delay_length_minus1 coded in the sequence parameter set that is active for the coded picture associated with the picture timing SEI message. However, du_cpb_removal_delay[i] specifies the number of clock ticks relative to the removal time of the first decoding unit in the previous access unit containing the buffering period SEI message, which may be an access unit of a different coded video sequence.

图2为说明可实施如本发明所描述的技术的视频编码器20的实例的框图,所述技术尤其涉及:将视频数据的一或多个解码单元存储在图片缓冲器中;获得用于一或多个解码单元的相应缓冲器移除时间;根据用于解码单元中的每一者的所获得缓冲器移除时间而从图片缓冲器移除解码单元;及译码对应于经移除解码单元的视频数据。视频编码器20可执行视频帧内的块的帧内及帧间译码,所述块包括译码单元(CU),或CU的子CU。帧内译码依赖于空间预测来缩减或移除给定视频帧内的视频的空间冗余。帧间译码依赖于时间预测来缩减或移除视频序列的邻近帧内的视频的时间冗余。帧内模式(I模式)可指若干基于空间的压缩模式中的任一者,且诸如单向预测(P模式)或双向预测(B模式)的帧间模式可指若干基于时间的压缩模式中的任一者。尽管图2中描绘用于帧间模式编码的一些组件,但应理解,视频编码器20可进一步包括用于帧内模式编码的组件,诸如,帧内预测单元46。图2中出于简要及清楚起见而未说明也可被包括的额外组件。FIG2 is a block diagram illustrating an example of a video encoder 20 that may implement techniques as described in this disclosure, particularly those related to: storing one or more decoding units of video data in a picture buffer; obtaining respective buffer removal times for the one or more decoding units; removing decoding units from the picture buffer according to the obtained buffer removal times for each of the decoding units; and decoding video data corresponding to the removed decoding units. Video encoder 20 may perform intra- and inter-coding of blocks within a video frame, the blocks comprising coding units (CUs), or sub-CUs of a CU. Intra-coding relies on spatial prediction to reduce or remove spatial redundancy in video within a given video frame. Inter-coding relies on temporal prediction to reduce or remove temporal redundancy in video within adjacent frames of a video sequence. Intra-mode (I-mode) may refer to any of several spatially-based compression modes, and inter-mode, such as unidirectional prediction (P-mode) or bidirectional prediction (B-mode), may refer to any of several temporally-based compression modes. 2 , it should be understood that video encoder 20 may further include components for intra-mode encoding, such as intra-prediction unit 46. Additional components that may also be included are not illustrated in FIG. 2 for brevity and clarity.

如图2所示,视频编码器20接收包括在待编码视频帧内的当前视频块的视频块。在图2的实例中,视频编码器20包括运动补偿单元44、运动估计单元42、参考图片存储器64、求和器50、变换单元52、量化单元54、熵编码单元56、缓冲器90及经译码图片缓冲器92。对于视频块重建,视频编码器20也包括反量化单元58、反变换单元60及求和器62。2 , video encoder 20 receives a video block that is included in a current video block within a video frame to be encoded. In the example of FIG2 , video encoder 20 includes motion compensation unit 44, motion estimation unit 42, reference picture memory 64, summer 50, transform unit 52, quantization unit 54, entropy encoding unit 56, buffer 90, and coded picture buffer 92. For video block reconstruction, video encoder 20 also includes inverse quantization unit 58, inverse transform unit 60, and summer 62.

在编码进程期间,视频编码器20接收待译码视频帧或切片。可将所述帧或切片划分成多个视频块。运动估计单元42及运动补偿单元44相对于一或多个参考帧中的一或多个块来执行经接收视频块的帧间预测性译码以提供时间压缩。帧内预测单元46也可相对于与待译码块相同的帧或切片中的一或多个相邻块来执行经接收视频块的帧内预测性译码以提供空间压缩。During the encoding process, video encoder 20 receives a video frame or slice to be coded. The frame or slice may be divided into multiple video blocks. Motion estimation unit 42 and motion compensation unit 44 perform inter-frame predictive coding of the received video block relative to one or more blocks in one or more reference frames to provide temporal compression. Intra-frame prediction unit 46 may also perform intra-frame predictive coding of the received video block relative to one or more neighboring blocks in the same frame or slice as the block to be coded to provide spatial compression.

模式选择单元40可(例如)基于误差结果来选择译码模式(帧内或帧间)中的一者,且可将所得经帧内译码或经帧间译码块提供到求和器50以产生残余块数据且将所得经帧内译码或经帧间译码块提供到求和器62以重建经编码块以用作参考帧。Mode select unit 40 may select one of the coding modes (intra or inter), e.g., based on the error result, and may provide the resulting intra- or inter-coded block to summer 50 to generate residual block data and to summer 62 to reconstruct the encoded block for use as a reference frame.

运动估计单元42与运动补偿单元44可高度地整合,但出于概念目的而被单独地说明。运动估计为产生运动矢量的进程,所述运动矢量估计用于视频块的运动。举例来说,运动矢量可指示在预测性参考帧(或其它经译码单元)内的预测性块相对于在当前帧(或其它经译码单元)内正被译码的当前块的位移。预测性块为在像素差方面被发现接近地匹配于待译码块的块,所述像素差可通过绝对差总和(SAD)、平方差总和(SSD)或其它差指标予以确定。运动矢量也可指示宏块的分区的位移。运动补偿可涉及基于通过运动估计而确定的运动矢量来获取或产生预测性块。如所提到,在一些实例中,运动估计单元42与运动补偿单元44可功能上整合。Motion estimation unit 42 and motion compensation unit 44 may be highly integrated, but are illustrated separately for conceptual purposes. Motion estimation is the process of generating motion vectors, which estimate the motion for video blocks. For example, a motion vector may indicate the displacement of a predictive block within a predictive reference frame (or other coded unit) relative to the current block being coded within the current frame (or other coded unit). A predictive block is a block that is found to closely match the block to be coded in terms of pixel difference, which may be determined by sum of absolute difference (SAD), sum of squared difference (SSD), or other difference metrics. A motion vector may also indicate the displacement of partitions of a macroblock. Motion compensation may involve obtaining or generating a predictive block based on the motion vector determined by motion estimation. As mentioned, in some examples, motion estimation unit 42 and motion compensation unit 44 may be functionally integrated.

在帧间译码的状况下,运动估计单元42通过比较经帧间译码帧的视频块与参考图片存储器64中的参考帧的视频块来计算用于经帧间译码帧的视频块的运动矢量。运动补偿单元44也可内插参考帧(例如,I帧或P帧)的次整数像素。作为实例,可从两个参考帧列表预测运动矢量:列表0,其包括显示顺序早于正被编码的当前帧的显示顺序的参考帧;及列表1,其包括显示顺序迟于正被编码的当前帧的显示顺序的参考帧。因此,可根据这两个参考帧列表来组织存储在参考图片存储器64中的数据。In the case of inter-coding, motion estimation unit 42 calculates motion vectors for video blocks of inter-coded frames by comparing them with video blocks of reference frames in reference picture memory 64. Motion compensation unit 44 may also interpolate sub-integer pixels of reference frames (e.g., I-frames or P-frames). As an example, motion vectors may be predicted from two lists of reference frames: list 0, which includes reference frames that have a display order earlier than the display order of the current frame being encoded, and list 1, which includes reference frames that have a display order later than the display order of the current frame being encoded. Thus, the data stored in reference picture memory 64 may be organized according to these two lists of reference frames.

运动估计单元42比较来自参考图片存储器64的一或多个参考帧的块与当前帧(例如,P帧或B帧)的待编码块。当参考图片存储器64中的参考帧包括次整数像素的值时,由运动估计单元42计算的运动矢量可指参考帧的次整数像素位置。运动估计单元42及/或运动补偿单元44也可经配置以在次整数像素位置的值未存储在参考图片存储器64中时计算存储在参考图片存储器64中的参考帧的次整数像素位置的值。运动估计单元42将所计算运动矢量发送到熵编码单元56及运动补偿单元44。通过运动矢量识别的参考帧块可被称为预测性块。Motion estimation unit 42 compares blocks of one or more reference frames from reference picture memory 64 to blocks to be encoded of a current frame (e.g., a P-frame or a B-frame). When a reference frame in reference picture memory 64 includes values for sub-integer pixels, the motion vector calculated by motion estimation unit 42 may refer to a sub-integer pixel position of the reference frame. Motion estimation unit 42 and/or motion compensation unit 44 may also be configured to calculate values for sub-integer pixel positions of reference frames stored in reference picture memory 64 when values for sub-integer pixel positions are not stored in reference picture memory 64. Motion estimation unit 42 sends the calculated motion vector to entropy encoding unit 56 and motion compensation unit 44. A reference frame block identified by a motion vector may be referred to as a predictive block.

运动补偿单元44可基于预测性块来计算预测数据。视频编码器20通过从正被译码的原始视频块减去由运动补偿单元44提供的预测数据来形成残余视频块。求和器50表示执行这种减法运算的组件。变换单元52将诸如离散余弦变换(DCT)或概念上相似变换的变换应用于残余块,从而产生包含残余变换系数值的视频块。变换单元52可执行其它变换,诸如,由H.264标准定义的变换,其概念上相似于DCT。作为其它实例,变换单元52可执行小波变换、整数变换、子频带变换,或其它类型的变换。变换单元52将所述变换应用于残余块,从而产生残余变换系数块。所述变换可将残余信息从像素值域转换到变换域,诸如,频域。量化单元54量化残余变换系数以进一步缩减位速率。量化进程可缩减与所述系数中的一些或全部相关联的位深度。可通过调整量化参数来修改量化程度。Motion compensation unit 44 may calculate prediction data based on the predictive block. Video encoder 20 forms a residual video block by subtracting the prediction data provided by motion compensation unit 44 from the original video block being coded. Summer 50 represents the component that performs this subtraction operation. Transform unit 52 applies a transform, such as a discrete cosine transform (DCT) or a conceptually similar transform, to the residual block, producing a video block comprising residual transform coefficient values. Transform unit 52 may perform other transforms, such as those defined by the H.264 standard, which are conceptually similar to DCT. As other examples, transform unit 52 may perform a wavelet transform, an integer transform, a subband transform, or another type of transform. Transform unit 52 applies the transform to the residual block, producing a block of residual transform coefficients. The transform may convert the residual information from the pixel value domain to a transform domain, such as the frequency domain. Quantization unit 54 quantizes the residual transform coefficients to further reduce the bit rate. The quantization process may reduce the bit depth associated with some or all of the coefficients. The degree of quantization may be modified by adjusting a quantization parameter.

在量化之后,熵编码单元56熵译码经量化变换系数。举例来说,熵编码单元56可执行内容自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、概率区间分割熵译码(PIPE),或另一熵译码技术。在由熵编码单元56进行的熵译码之后,经编码视频数据可或多或少地在时间上缓冲或存储在经译码图片缓冲器92中、传输到另一装置,及/或经存档以供稍后传输或检索。在上下文自适应二进制算术译码的状况下,上下文可基于相邻宏块。After quantization, entropy encoding unit 56 entropy codes the quantized transform coefficients. For example, entropy encoding unit 56 may perform content adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), probability interval partitioning entropy coding (PIPE), or another entropy coding technique. After entropy coding by entropy encoding unit 56, the encoded video data may be buffered or stored in coded picture buffer 92, transmitted to another device, and/or archived for later transmission or retrieval. In the case of context adaptive binary arithmetic coding, the context may be based on neighboring macroblocks.

在一些状况下,除了熵译码以外,视频编码器20的熵编码单元56或另一单元可经配置以也执行其它译码功能。举例来说,熵编码单元56可经配置以确定宏块及分区的经译码块样式(CBP)值。同样地,在一些状况下,熵编码单元56可执行最大译码单元(LCU)或LCU的子CU中的系数的行程长度译码。特别地,熵编码单元56可应用曲折扫描或其它扫描样式以扫描LCU或分区中的变换系数,且编码为零的行程以供进一步压缩。视频编码器20的熵编码单元56及/或其它元件也可从经编码视频数据形成解码单元。举例来说,所述解码单元可为子图片,诸如,树块序列、一或多个切片、一或多个波,及/或一或多个图像块。视频编码器20的熵编码单元56及/或其它元件也可添加用于具有不同大小的子图片的填充数据以实现字节对准。熵编码单元56也可用适当语法元素来构造标头信息以供在经编码视频位流中传输。举例来说,标头信息可包括指示解码单元为存取单元还是子存取单元的发信数据。这个发信数据可包括发信在HRD参数中发信的子图片经译码图片缓冲器优选旗标的值。举例来说,视频编码器20的熵编码单元56及/或其它元件也可添加语法元素,诸如,缓冲周期SEI消息、发信VUI参数、指示针对各种子图片的入口点的发信数据,及/或用于解码单元的缓冲器移除时间。In some cases, entropy coding unit 56 or another unit of video encoder 20 may be configured to perform other coding functions in addition to entropy coding. For example, entropy coding unit 56 may be configured to determine coded block pattern (CBP) values for macroblocks and partitions. Similarly, in some cases, entropy coding unit 56 may perform run-length coding of coefficients in a largest coding unit (LCU) or a sub-CU of an LCU. In particular, entropy coding unit 56 may apply a zigzag scan or other scan pattern to scan the transform coefficients in an LCU or partition and encode runs of zeros for further compression. Entropy coding unit 56 and/or other elements of video encoder 20 may also form decoding units from the encoded video data. For example, the decoding units may be sub-pictures, such as a sequence of treeblocks, one or more slices, one or more waves, and/or one or more image blocks. Entropy coding unit 56 and/or other elements of video encoder 20 may also add padding data for sub-pictures of different sizes to achieve byte alignment. Entropy encoding unit 56 may also construct header information with appropriate syntax elements for transmission in the encoded video bitstream. For example, the header information may include signaling data indicating whether the decoding unit is an access unit or a sub-access unit. This signaling data may include signaling the value of a sub-picture coded picture buffer preference flag signaled in the HRD parameters. For example, entropy encoding unit 56 and/or other elements of video encoder 20 may also add syntax elements such as a buffering period SEI message, signaling VUI parameters, signaling data indicating entry points for various sub-pictures, and/or a buffer removal time for the decoding unit.

反量化单元58及反变换单元60分别应用反量化及反变换,以在像素域中重建残余块,例如,以供稍后用作参考块。运动补偿单元44可通过将残余块加到参考图片存储器64的帧中的一者的预测性块来计算参考块。运动补偿单元44也可将一或多个内插滤波器应用于经重建残余块,以计算供运动估计中使用的次整数像素值。求和器62将经重建残余块加到由运动补偿单元44产生的经运动补偿预测块,以产生供存储在参考图片存储器64中的经重建视频块。经重建视频块可由运动估计单元42及运动补偿单元44用作参考块以帧间译码后续视频帧中的块。Inverse quantization unit 58 and inverse transform unit 60 apply inverse quantization and inverse transform, respectively, to reconstruct the residual block in the pixel domain, e.g., for later use as a reference block. Motion compensation unit 44 may calculate a reference block by adding the residual block to a predictive block of one of the frames of reference picture memory 64. Motion compensation unit 44 may also apply one or more interpolation filters to the reconstructed residual block to calculate sub-integer pixel values for use in motion estimation. Summer 62 adds the reconstructed residual block to the motion compensated prediction block produced by motion compensation unit 44 to produce a reconstructed video block for storage in reference picture memory 64. The reconstructed video block may be used by motion estimation unit 42 and motion compensation unit 44 as a reference block to inter-code a block in a subsequent video frame.

参考图片存储器64可包括缓冲器90。缓冲器90可为或包括数据存储装置或包括在数据存储装置中,诸如,能够存储数据的任何永久性或易失性存储器,诸如,同步动态随机存取存储器(SDRAM)、嵌入式动态随机存取存储器(eDRAM),或静态随机存取存储器(SRAM)。缓冲器90可包括图片缓冲器及/或经解码图片缓冲器,且可根据本发明所描述的实例经译码图片缓冲器及/或经解码图片缓冲器行为的任何组合而操作。举例来说,视频编码器20可使用缓冲器90来执行经解码块样式(DPB)管理,及/或根据本发明的技术来执行经译码图片缓冲器92的经译码块样式(CPB)管理。Reference picture memory 64 may include buffer 90. Buffer 90 may be or include or be included in a data storage device, such as any permanent or volatile memory capable of storing data, such as synchronous dynamic random access memory (SDRAM), embedded dynamic random access memory (eDRAM), or static random access memory (SRAM). Buffer 90 may include a picture buffer and/or a decoded picture buffer and may operate in accordance with any combination of the example coded picture buffer and/or decoded picture buffer behaviors described herein. For example, video encoder 20 may use buffer 90 to perform decoded block pattern (DPB) management and/or perform coded block pattern (CPB) management of coded picture buffer 92 in accordance with the techniques of this disclosure.

经译码图片缓冲器92可为或包括数据存储装置或包括在数据存储装置中,诸如,能够存储数据的任何永久性或易失性存储器,诸如,同步动态随机存取存储器(SDRAM)、嵌入式动态随机存取存储器(eDRAM),或静态随机存取存储器(SRAM)。尽管经译码图片缓冲器92被展示为形成视频编码器20的部分,但在一些实例中,经译码图片缓冲器92可形成在视频编码器20外部的装置、单元或模块的部分。举例来说,经译码图片缓冲器92可形成在视频编码器20外部的流调度器单元(或传递调度器或假设流调度器(HSS))的部分。视频编码器20可从经编码视频数据形成解码单元,且将解码单元提供到流调度器单元。在一些实例中,视频编码器20可形成具有变化数目个位或变化数目个块的解码单元。流调度器单元可实施本发明的技术以在可由所获得(例如,经发信)缓冲器移除时间指示的时间将解码单元发送到视频解码器以供解码,所述解码单元包括子图片,诸如,树块序列、一或多个切片、一或多个波,及/或一或多个图像块。在一些实例中,视频编码器20可形成解码单元,所述解码单元各自用以包括在解码顺序方面连续地排列的数个译码块。流调度器单元可进一步解封存取单元以提取包括解码单元的一或多个网络抽象层(NAL)单元。同样地,流调度器单元可解封NAL单元以提取解码单元。Coded picture buffer 92 may be or include or be included in a data storage device, such as any permanent or volatile memory capable of storing data, such as synchronous dynamic random access memory (SDRAM), embedded dynamic random access memory (eDRAM), or static random access memory (SRAM). Although coded picture buffer 92 is shown as forming part of video encoder 20, in some examples, coded picture buffer 92 may form part of a device, unit, or module external to video encoder 20. For example, coded picture buffer 92 may form part of a stream scheduler unit (or delivery scheduler or hypothetical stream scheduler (HSS)) external to video encoder 20. Video encoder 20 may form decoding units from the encoded video data and provide the decoding units to the stream scheduler unit. In some examples, video encoder 20 may form decoding units having a varying number of bits or a varying number of blocks. The stream scheduler unit may implement the techniques of this disclosure to send decoding units, including sub-pictures such as a sequence of treeblocks, one or more slices, one or more waves, and/or one or more image blocks, to the video decoder for decoding at a time that can be indicated by an obtained (e.g., signaled) buffer removal time. In some examples, video encoder 20 may form decoding units that each include a number of coding blocks arranged consecutively in decoding order. The stream scheduler unit may further decapsulate the access unit to extract the one or more network abstraction layer (NAL) units that include the decoding unit. Similarly, the stream scheduler unit may decapsulate the NAL unit to extract the decoding unit.

根据如通过本发明的技术而修改的假设参考解码器(HRD)行为,视频编码器20可将存取单元存储到经译码图片缓冲器92及从经译码图片缓冲器92移除存取单元。举例来说,视频编码器20可应用HRD参数,所述参数包括初始CPB移除延迟、CPB大小、位速率、初始DPB输出延迟,及DPB大小,以及用于解码单元的缓冲器移除时间,及用以发信视频数据的解码单元为存取单元还是存取单元子集的子图片经译码图片缓冲器优选旗标的值。视频编码器20可在存取单元中形成发信用于解码单元的缓冲周期及缓冲器移除时间的SEI消息。举例来说,视频编码器20可提供视频可用性信息(VUI)参数,所述参数具有包括子图片CPB旗标的语法,诸如在上表1的实例中。According to the hypothetical reference decoder (HRD) behavior as modified by the techniques of this disclosure, video encoder 20 may store access units to and remove access units from coded picture buffer 92. For example, video encoder 20 may apply HRD parameters including an initial CPB removal delay, CPB size, bit rate, initial DPB output delay, and DPB size, as well as a buffer removal time for a decoding unit, and a value of a sub-picture coded picture buffer preference flag to signal whether the decoding unit of video data is an access unit or a subset of an access unit. Video encoder 20 may form an SEI message in the access unit that signals the buffering period and buffer removal time for the decoding unit. For example, video encoder 20 may provide video usability information (VUI) parameters having a syntax including a sub-picture CPB flag, such as in the example of Table 1 above.

解码单元可包括公共图片的子图片,且视频编码器20可在用于存取单元的SEI消息中包括用于公共图片的子图片中的每一者的缓冲器移除时间。不同子图片可用不同量的数据予以编码,其中一些子图片是以不同数目个位或块予以编码,且视频编码器20可形成用于公共图片的子图片中的每一者的对应相应缓冲器移除时间。视频编码器20也可编码具有相同数据大小的子图片的一些图片。其它组件也可执行上文归于视频编码器20的功能中的一或多者。举例来说,源装置(诸如,图1的源装置12)的封装单元也可形成包括以上参数中的任一者的SEI消息。The decoding unit may include sub-pictures of a common picture, and video encoder 20 may include a buffer removal time for each of the sub-pictures of the common picture in the SEI message for the access unit. Different sub-pictures may be encoded with different amounts of data, some of which are encoded with different numbers of bits or blocks, and video encoder 20 may form corresponding respective buffer removal times for each of the sub-pictures of the common picture. Video encoder 20 may also encode some pictures that have sub-pictures of the same data size. Other components may also perform one or more of the functions attributed above to video encoder 20. For example, an encapsulation unit of a source device (such as source device 12 of FIG. 1 ) may also form an SEI message that includes any of the above parameters.

因此,视频编码器20可规定:每一子图片可包括经译码图片的在解码顺序方面连续的数个译码块,且使得译码块可完全相同于树块,或树块的子集。视频编码器20可规定:可执行子图片的译码及位到图片中的不同子图片的分配,而不要求一个图片中的每一子图片(即,树块组)用相同量的位予以译码。视频编码器20可在位流中发信用于每一子图片的CPB移除时间,而非根据经发信图片级别CPB移除时间而导出CPB移除时间。视频编码器20也可在切片中包括一个以上子图片,且在每一子图片结束时应用字节对准。举例来说,视频编码器20也可用指示在视频数据的较大集合(诸如,切片、图像块或帧)内的子图片中的至少一者的字节对准的值来发信每一子图片的入口点。视频编码器20可根据本发明在不同实例中应用这些特征中的任何一或多者。Thus, video encoder 20 may specify that each sub-picture may include a number of coded blocks of a coded picture that are consecutive in decoding order, and that a coded block may be identical to a treeblock, or a subset of a treeblock. Video encoder 20 may specify that the coding of sub-pictures and the allocation of bits to different sub-pictures in a picture may be performed without requiring that each sub-picture (i.e., a set of treeblocks) in a picture be coded with the same amount of bits. Video encoder 20 may signal a CPB removal time for each sub-picture in the bitstream, rather than deriving the CPB removal time from a signaled picture-level CPB removal time. Video encoder 20 may also include more than one sub-picture in a slice and apply byte alignment at the end of each sub-picture. For example, video encoder 20 may also signal the entry point of each sub-picture with a value indicating the byte alignment of at least one of the sub-pictures within a larger set of video data, such as a slice, tile, or frame. Video encoder 20 may apply any one or more of these features in different examples according to this disclosure.

图2中针对参考图片存储器64、缓冲器90及经译码图片缓冲器92而展示的位置是出于说明性目的。参考图片存储器64、缓冲器90及经译码图片缓冲器92可位于单一存储装置或任何数目个相异存储装置中。所述存储装置可包括易失性及/或非易失性计算机可读媒体的任何组合。2 for reference picture memory 64, buffer 90, and coded picture buffer 92 are for illustrative purposes. Reference picture memory 64, buffer 90, and coded picture buffer 92 may be located in a single storage device or in any number of distinct storage devices. The storage devices may include any combination of volatile and/or non-volatile computer-readable media.

如此,视频编码器20表示视频译码器的实例,所述视频译码器经配置尤其以将视频数据的一或多个解码单元存储在图片缓冲器中、获得用于一或多个解码单元的相应缓冲器移除时间、根据用于解码单元中的每一者的所获得缓冲器移除时间而从图片缓冲器移除解码单元,且译码对应于经移除解码单元的视频数据。As such, video encoder 20 represents an example of a video coder that is configured to, among other things, store one or more decoding units of video data in a picture buffer, obtain respective buffer removal times for the one or more decoding units, remove the decoding units from the picture buffer according to the obtained buffer removal times for each of the decoding units, and decode video data corresponding to the removed decoding units.

图3为说明解码经编码视频序列的视频解码器30的实例的框图。在图3的实例中,视频解码器30包括熵解码单元70、运动补偿单元72、帧内预测单元74、反量化单元76、反变换单元78、参考图片存储器82、求和器80、经译码图片缓冲器94及缓冲器96。在一些实例中,视频解码器30可执行与关于视频编码器20(图2)所描述的编码遍次大体上互逆的解码遍次。运动补偿单元72可基于从熵解码单元70接收的运动矢量来产生预测数据。FIG3 is a block diagram illustrating an example of a video decoder 30 that decodes an encoded video sequence. In the example of FIG3, video decoder 30 includes an entropy decoding unit 70, a motion compensation unit 72, an intra-prediction unit 74, an inverse quantization unit 76, an inverse transform unit 78, a reference picture memory 82, a summer 80, a coded picture buffer 94, and a buffer 96. In some examples, video decoder 30 may perform a decoding pass that is generally reciprocal to the encoding pass described with respect to video encoder 20 (FIG. 2). Motion compensation unit 72 may generate prediction data based on motion vectors received from entropy decoding unit 70.

运动补偿单元72可使用在位流中接收的运动矢量以识别参考图片存储器82中的参考帧中的预测块。帧内预测单元74可使用在位流中接收的帧内预测模式以从空间上邻近块形成预测块。反量化单元76反量化(即,去量化)在位流中提供且由熵解码单元70解码的经量化块系数。反量化进程可包括习知进程,例如,如由H.264解码标准所定义。反量化进程也可包括针对每一宏块使用由编码器20计算的量化参数QPY以确定量化程度且同样地确定应被应用的反量化程度。Motion compensation unit 72 may use motion vectors received in the bitstream to identify a prediction block in a reference frame in reference picture memory 82. Intra-prediction unit 74 may use an intra-prediction mode received in the bitstream to form a prediction block from spatially adjacent blocks. Inverse quantization unit 76 inverse quantizes (i.e., dequantizes) the quantized block coefficients provided in the bitstream and decoded by entropy decoding unit 70. The inverse quantization process may include a conventional process, such as defined by the H.264 decoding standard. The inverse quantization process may also include using a quantization parameter QP Y calculated by encoder 20 for each macroblock to determine a degree of quantization and, likewise, a degree of inverse quantization that should be applied.

反变换单元78将反变换(例如,反DCT、反整数变换,或概念上相似反变换进程)应用于变换系数,以便在像素域中产生残余块。运动补偿单元72产生经运动补偿块,从而可能地基于内插滤波器来执行内插。用于待以次像素精度用于运动估计的内插滤波器的标识符可包括在语法元素中。运动补偿单元72可在视频块的编码期间使用如由视频编码器20使用的内插滤波器以计算参考块的次整数像素的内插值。运动补偿单元72可根据经接收语法信息来确定由视频编码器20使用的内插滤波器,且使用所述内插滤波器以产生预测性块。Inverse transform unit 78 applies an inverse transform (e.g., an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process) to the transform coefficients to produce a residual block in the pixel domain. Motion compensation unit 72 produces motion compensated blocks, possibly performing interpolation based on interpolation filters. Identifiers of interpolation filters to be used for motion estimation with sub-pixel precision may be included in syntax elements. Motion compensation unit 72 may use interpolation filters, as used by video encoder 20, during encoding of a video block to calculate interpolated values for sub-integer pixels of a reference block. Motion compensation unit 72 may determine the interpolation filters used by video encoder 20 based on received syntax information and use the interpolation filters to produce a predictive block.

运动补偿单元72使用以下各者中的一些:用以确定用以编码经编码视频序列的帧的宏块的大小的语法信息;描述经编码视频序列的帧的每一宏块如何被分割的分割信息;指示每一分区如何被编码的模式;用于每一经帧间编码宏块或分区的一或多个参考帧(及参考帧列表);及用以解码经编码视频序列的其它信息。求和器80对残余块与由运动补偿单元72或帧内预测单元产生的对应预测块进行求和以形成经解码块。Motion compensation unit 72 uses some of the following: syntax information to determine the size of the macroblocks used to encode the frames of the encoded video sequence; partition information describing how each macroblock of the frames of the encoded video sequence is partitioned; a mode indicating how each partition is encoded; one or more reference frames (and reference frame lists) for each inter-coded macroblock or partition; and other information used to decode the encoded video sequence. Summer 80 sums the residual block with the corresponding prediction block produced by motion compensation unit 72 or the intra-prediction unit to form a decoded block.

参考图片存储器82可包括缓冲器96。缓冲器96可为或包括数据存储装置,诸如,能够存储数据的任何永久性或易失性存储器,诸如,同步动态随机存取存储器(SDRAM)、嵌入式动态随机存取存储器(eDRAM),或静态随机存取存储器(SRAM)。缓冲器96可包括一或多个图片缓冲器及/或一或多个经解码图片缓冲器,且可根据本发明所描述的实例经译码图片缓冲器及/或经解码图片缓冲器行为的任何组合而操作。举例来说,视频解码器30可使用缓冲器96来执行DPB管理,及/或根据本发明的技术来执行经译码图片缓冲器94的CPB管理。Reference picture memory 82 may include buffer 96. Buffer 96 may be or include a data storage device, such as any permanent or volatile memory capable of storing data, such as synchronous dynamic random access memory (SDRAM), embedded dynamic random access memory (eDRAM), or static random access memory (SRAM). Buffer 96 may include one or more picture buffers and/or one or more decoded picture buffers, and may operate according to any combination of the example coded picture buffer and/or decoded picture buffer behaviors described herein. For example, video decoder 30 may use buffer 96 to perform DPB management and/or perform CPB management of coded picture buffer 94 according to the techniques of this disclosure.

经译码图片缓冲器94可被实施为数据存储装置,诸如,能够存储数据的任何永久性或易失性存储器,诸如,同步动态随机存取存储器(SDRAM)、嵌入式动态随机存取存储器(eDRAM),或静态随机存取存储器(SRAM)。经译码图片缓冲器94可根据本文所揭示的实例经译码图片缓冲器行为的任何组合而操作。Coded picture buffer 94 may be implemented as a data storage device, such as any permanent or volatile memory capable of storing data, such as synchronous dynamic random access memory (SDRAM), embedded dynamic random access memory (eDRAM), or static random access memory (SRAM). Coded picture buffer 94 may operate according to any combination of the example coded picture buffer behaviors disclosed herein.

尽管经译码图片缓冲器94被展示为形成视频解码器30的部分,但在一些实例中,经译码图片缓冲器94可形成在视频解码器30外部的装置、单元或模块的部分。举例来说,经译码图片缓冲器94可形成在视频解码器30外部的流调度器单元的部分。流调度器单元可实施本发明的技术以在由所获得(例如,经发信)缓冲器移除时间指示的时间将解码单元发送到视频解码器30以供解码,所述解码单元包括子图片,诸如,树块序列、一或多个切片、一或多个波,及/或一或多个图像块。流调度器单元可进一步解封存取单元以提取包括解码单元的一或多个网络抽象层(NAL)单元。同样地,流调度器单元可解封NAL单元以提取解码单元。Although coded picture buffer 94 is shown as forming part of video decoder 30, in some examples, coded picture buffer 94 may form part of a device, unit, or module external to video decoder 30. For example, coded picture buffer 94 may form part of a stream scheduler unit external to video decoder 30. The stream scheduler unit may implement the techniques of this disclosure to send decoding units, including sub-pictures such as a treeblock sequence, one or more slices, one or more waves, and/or one or more image blocks, to video decoder 30 for decoding at a time indicated by an obtained (e.g., signaled) buffer removal time. The stream scheduler unit may further decapsulate the access unit to extract the one or more network abstraction layer (NAL) units that comprise the decoding unit. Similarly, the stream scheduler unit may decapsulate the NAL unit to extract the decoding unit.

根据如通过本发明的技术而修改的假设参考解码器(HRD)行为,视频解码器30可接收存取单元且将存取单元存储到经译码图片缓冲器94及从经译码图片缓冲器94移除存取单元。举例来说,视频解码器30可解码及获得HRD参数,所述参数包括初始CPB移除延迟、CPB大小、位速率、初始DPB输出延迟,及DPB大小,以及用于解码单元的缓冲器移除时间,及发信视频数据的解码单元为存取单元还是存取单元子集的子图片经译码图片缓冲器优选旗标的值。视频解码器30可在存取单元中解码及获得发信用于解码单元的缓冲周期及缓冲器移除时间的SEI消息。举例来说,视频解码器30可解码及获得视频可用性信息(VUI)参数,所述参数具有包括子图片CPB旗标的语法,诸如在上表1的实例中。According to the hypothetical reference decoder (HRD) behavior as modified by the techniques of this disclosure, video decoder 30 may receive access units and store and remove access units to and from coded picture buffer 94. For example, video decoder 30 may decode and obtain HRD parameters, including an initial CPB removal delay, CPB size, bit rate, initial DPB output delay, and DPB size, as well as a buffer removal time for a decoding unit, and a value of a sub-picture coded picture buffer preference flag that signals whether the decoding unit of video data is an access unit or a subset of an access unit. Video decoder 30 may decode and obtain an SEI message in the access unit that signals the buffering period and buffer removal time for the decoding unit. For example, video decoder 30 may decode and obtain video usability information (VUI) parameters having a syntax that includes a sub-picture CPB flag, such as in the example of Table 1 above.

解码单元可包括公共图片的子图片,且视频解码器30可在用于存取单元的SEI消息中解码及获得用于公共图片的子图片中的每一者的缓冲器移除时间。不同子图片可用不同量的数据予以编码,其中一些子图片是以不同数目个位或块予以编码,且视频解码器30可解码及获得用于公共图片的子图片中的每一者的对应相应缓冲器移除时间。视频解码器30也可解码及获得具有相同数据大小的子图片的一些图片。The decoding unit may include sub-pictures of a common picture, and video decoder 30 may decode and obtain the buffer removal time for each of the sub-pictures of the common picture in the SEI message for the access unit. Different sub-pictures may be encoded with different amounts of data, some of which are encoded with different numbers of bits or blocks, and video decoder 30 may decode and obtain the corresponding respective buffer removal time for each of the sub-pictures of the common picture. Video decoder 30 may also decode and obtain some pictures that have sub-pictures of the same data size.

因此,视频解码器30可解码及获得子图片,所述子图片可包括经译码图片的在解码顺序方面连续的数个译码块,且使得译码块可完全相同于树块,或树块的子集。在一些实例中,视频解码器30可解码及获得用于位流中的每一子图片的CPB移除时间,而非根据经发信图片级别CPB移除时间而导出CPB移除时间。视频解码器30也可解码及获得切片中的一个以上子图片,且可接收指示针对每一解码单元的开始点的字节偏移信息,以确定每一解码单元在何处开始,且解码及获得关于在每一子图片结束时提供字节对准的额外非数据信号或填充信号的信息。举例来说,视频解码器30也可用指示在视频数据的较大集合(诸如,切片、图像块或帧)内的子图片中的至少一者的字节对准的值来获得每一子图片的入口点。视频解码器30可根据本发明在不同实例中应用这些特征中的任何一或多者。Thus, video decoder 30 can decode and obtain a sub-picture that may include several coded blocks of a coded picture that are consecutive in decoding order, such that a coded block may be identical to a treeblock, or a subset of a treeblock. In some examples, video decoder 30 can decode and obtain the CPB removal time for each sub-picture in the bitstream, rather than deriving the CPB removal time from a signaled picture-level CPB removal time. Video decoder 30 may also decode and obtain more than one sub-picture in a slice, and may receive byte offset information indicating the starting point for each decoding unit to determine where each decoding unit begins, and decode and obtain information about additional non-data signals or padding signals that provide byte alignment at the end of each sub-picture. For example, video decoder 30 may also obtain the entry point of each sub-picture using a value indicating the byte alignment of at least one of the sub-pictures within a larger set of video data, such as a slice, tile, or frame. Video decoder 30 may apply any one or more of these features in different examples according to this disclosure.

图3中针对参考图片存储器82、缓冲器96及经译码图片缓冲器94而展示的位置是出于说明性目的。参考图片存储器82、缓冲器96及经译码图片缓冲器94可位于单一存储装置或任何数目个相异存储装置中。所述存储装置可包括易失性及/或非易失性计算机可读媒体的任何组合。3 are for illustrative purposes. Reference picture memory 82, buffer 96, and coded picture buffer 94 may be located in a single storage device or in any number of distinct storage devices. The storage devices may include any combination of volatile and/or non-volatile computer-readable media.

如此,视频解码器30表示视频译码器的实例,所述视频译码器经配置以将视频数据的一或多个解码单元存储在图片缓冲器中、获得用于一或多个解码单元的相应缓冲器移除时间、根据用于解码单元中的每一者的所获得缓冲器移除时间而从图片缓冲器移除解码单元,且译码对应于经移除解码单元的视频数据。As such, video decoder 30 represents an example of a video coder that is configured to store one or more decoding units of video data in a picture buffer, obtain respective buffer removal times for the one or more decoding units, remove the decoding units from the picture buffer according to the obtained buffer removal times for each of the decoding units, and decode video data corresponding to the removed decoding units.

图4为说明可实施本发明的技术中的任一者或全部的实例目的地装置100的框图。在这个实例中,目的地装置100包括输入接口102、流调度器104、经译码图片缓冲器106、视频解码器108、经解码图片缓冲器110、再现单元112及输出接口114。目的地装置100可大体上对应于目的地装置14(图1)。输入接口102可包含能够接收视频数据的经译码位流的任何输入接口。举例来说,输入接口102可包含如在图1中的接收器26及/或调制解调器28、诸如有线或无线接口的网络接口、存储器或存储器接口、用于从光盘读取数据的磁盘驱动器(诸如,光盘驱动器接口或磁性媒体接口),或其它接口组件。FIG4 is a block diagram illustrating an example destination device 100 that may implement any or all of the techniques of this disclosure. In this example, destination device 100 includes an input interface 102, a stream scheduler 104, a coded picture buffer 106, a video decoder 108, a decoded picture buffer 110, a rendering unit 112, and an output interface 114. Destination device 100 may generally correspond to destination device 14 ( FIG1 ). Input interface 102 may include any input interface capable of receiving a coded bitstream of video data. For example, input interface 102 may include receiver 26 and/or modem 28 as in FIG1 , a network interface such as a wired or wireless interface, a memory or storage interface, a disk drive for reading data from an optical disk (such as an optical drive interface or a magnetic media interface), or other interface components.

输入接口102可接收包括视频数据的经译码位流,且将所述位流提供到流调度器104。根据本发明的技术,流调度器104从位流提取视频数据的单元,诸如,存取单元及/或解码单元,且将经提取单元存储到经译码图片缓冲器106。如此,流调度器104表示如以上实例所论述的HSS的实例实施。经译码图片缓冲器106可与经译码图片缓冲器94(图3)大体上一致,惟如下情形除外:如图4所示,经译码图片缓冲器106是与视频解码器108分离。在不同实例中,经译码图片缓冲器106可与视频解码器108分离或被整合为视频解码器108的部分。Input interface 102 may receive a coded bitstream comprising video data and provide the bitstream to stream scheduler 104. In accordance with the techniques of this disclosure, stream scheduler 104 extracts units of video data, such as access units and/or decoding units, from the bitstream and stores the extracted units in coded picture buffer 106. As such, stream scheduler 104 represents an example implementation of an HSS as discussed in the examples above. Coded picture buffer 106 may be generally identical to coded picture buffer 94 (FIG. 3), except that, as shown in FIG. 4, coded picture buffer 106 is separate from video decoder 108. In different examples, coded picture buffer 106 may be separate from video decoder 108 or integrated as part of video decoder 108.

视频解码器108包括经解码图片缓冲器110。视频解码器108可与图1及3的视频解码器30大体上一致。经解码图片缓冲器110可与缓冲器96大体上一致。因此,视频解码器108可根据本发明的技术来解码经译码图片缓冲器106的解码单元。Video decoder 108 includes a decoded picture buffer 110. Video decoder 108 may be generally consistent with video decoder 30 of Figures 1 and 3. Decoded picture buffer 110 may be generally consistent with buffer 96. Thus, video decoder 108 may decode decoding units of coded picture buffer 106 according to the techniques of this disclosure.

此外,视频解码器108可根据本发明的技术而从经解码图片缓冲器110输出经解码图片,如上文所论述。视频解码器108可将经输出图片传递到再现单元112。再现单元112可根据本发明的技术来剪裁如上文所论述的图片,接着将经剪裁图片传递到输出接口114。输出接口114又可将经剪裁图片提供到显示装置,所述显示装置可与显示装置32大体上一致。显示装置可形成目的地装置100的部分,或可以通信方式耦合到目的地装置100。举例来说,显示装置可包含屏幕、触摸屏、投影仪,或与目的地装置100整合的其它显示单元,或可包含单独显示器,诸如,电视、监视器、投影仪、触摸屏,或以通信方式耦合到目的地装置100的其它装置。所述通信耦合可包含有线或无线耦合,诸如,通过同轴电缆、复合视频电缆、组件视频电缆、高清晰度多媒体接口(HDMI)电缆、射频广播,或其它有线或无线耦合。Furthermore, video decoder 108 may output decoded pictures from decoded picture buffer 110 in accordance with the techniques of this disclosure, as discussed above. Video decoder 108 may pass the output pictures to rendering unit 112. Rendering unit 112 may crop the pictures as discussed above in accordance with the techniques of this disclosure, and then pass the cropped pictures to output interface 114. Output interface 114 may, in turn, provide the cropped pictures to a display device, which may be substantially identical to display device 32. The display device may form part of destination device 100 or may be communicatively coupled to destination device 100. For example, the display device may include a screen, touch screen, projector, or other display unit integrated with destination device 100, or may include a separate display such as a television, monitor, projector, touch screen, or other device communicatively coupled to destination device 100. The communicative coupling may include a wired or wireless coupling, such as via a coaxial cable, a composite video cable, a component video cable, a High-Definition Multimedia Interface (HDMI) cable, radio frequency broadcast, or other wired or wireless coupling.

图5为根据本发明的技术的说明实例方法的流程图,所述方法包括(例如)由图1或3的视频解码器30或图4的视频解码器108(共同地为“视频解码器30/108”)根据所获得缓冲器移除时间而从图片缓冲器移除视频数据的解码单元。图5的实例方法可被描述为由视频解码器30/108执行作为一个实例,其中应理解,图5的方法的任何一或多个方面也可由其它装置或组件执行或用其它装置或组件实施。在图5的实例中,视频解码器30/108可将视频数据的一或多个解码单元存储在图片缓冲器中(202)。视频解码器30/108可获得用于一或多个解码单元的相应缓冲器移除时间,其中获得所述相应缓冲器移除时间包含接收指示用于所述解码单元中的至少一者的相应缓冲器移除时间的相应发信值(204)。视频解码器30/108可根据用于解码单元中的每一者的所获得缓冲器移除时间而从图片缓冲器移除解码单元(206)。视频解码器30/108也可译码对应于经移除解码单元的视频数据,其中译码所述视频数据包含解码所述解码单元中的至少一者(208)。在其它实例中,视频解码器30/108及/或其它装置或元件也可执行不同或额外功能。FIG5 is a flowchart illustrating an example method according to techniques of this disclosure, the method including, for example, by the video decoder 30 of FIG1 or 3 or the video decoder 108 of FIG4 (collectively, “video decoder 30/108”), removing decoding units of video data from a picture buffer according to obtained buffer removal times. The example method of FIG5 may be described as being performed by the video decoder 30/108 as an example, with it being understood that any one or more aspects of the method of FIG5 may also be performed or implemented by other devices or components. In the example of FIG5, the video decoder 30/108 may store one or more decoding units of video data in a picture buffer (202). The video decoder 30/108 may obtain respective buffer removal times for one or more decoding units, wherein obtaining the respective buffer removal times includes receiving respective signaled values indicating respective buffer removal times for at least one of the decoding units (204). The video decoder 30/108 may remove the decoding units from the picture buffer according to the obtained buffer removal times for each of the decoding units (206). Video decoder 30/108 may also decode video data corresponding to the removed decoding units, where decoding the video data includes decoding at least one of the decoding units (208).In other examples, video decoder 30/108 and/or other devices or elements may also perform different or additional functions.

图6为根据本发明的技术的说明另一实例方法的流程图,所述方法在一些方面相似于图5的方法,其包括(例如)由图1或3的视频解码器30或图4的视频解码器108(共同地为“视频解码器30/108”)根据所获得缓冲器移除时间而从图片缓冲器移除视频数据的解码单元。图6的实例方法也可被描述为由视频解码器30/108执行作为一个实例,其中应理解,图6的方法的任何一或多个方面也可由其它装置或组件执行或用其它装置或组件实施。在图6的实例中,视频解码器30/108可将视频数据的一或多个解码单元存储在经译码图片缓冲器(CPB)中(402)、获得用于一或多个解码单元的相应缓冲器移除时间(404)、根据用于解码单元中的每一者的所获得缓冲器移除时间而从CPB移除解码单元(406)、确定CPB在存取单元级别还是子图片级别处操作(408),且译码对应于经移除解码单元的视频数据(410)。如果CPB在存取单元级别处操作,那么译码视频数据包括译码包含在解码单元中的存取单元(412)。如果CPB在子图片级别处操作,那么译码视频数据包括译码包含在解码单元中的存取单元子集(414)。FIG6 is a flowchart illustrating another example method according to the techniques of this disclosure, the method being similar in some respects to the method of FIG5 , including, for example, by the video decoder 30 of FIG1 or 3 or the video decoder 108 of FIG4 (collectively, “video decoder 30/108”), removing decoding units of video data from a picture buffer according to obtained buffer removal times. The example method of FIG6 may also be described as being performed by the video decoder 30/108 as an example, with it being understood that any one or more aspects of the method of FIG6 may also be performed or implemented by other devices or components. In the example of FIG6 , the video decoder 30/108 may store one or more decoding units of video data in a coded picture buffer (CPB) (402), obtain corresponding buffer removal times for the one or more decoding units (404), remove decoding units from the CPB according to the obtained buffer removal times for each of the decoding units (406), determine whether the CPB operates at the access unit level or the sub-picture level (408), and decode video data corresponding to the removed decoding units (410). If the CPB operates at the access unit level, decoding the video data includes decoding the access unit contained in the decoding unit (412). If the CPB operates at the sub-picture level, decoding the video data includes decoding a subset of the access units contained in the decoding unit (414).

举例来说,如果视频解码器30/108确定CPB在存取单元级别处操作,那么视频解码器30/108可译码对应于经移除解码单元的视频数据的存取单元(412)。如果视频解码器30/108确定CPB在子图片级别处操作,那么视频解码器30/108可译码对应于经移除解码单元的视频数据的存取单元子集(414)。举例来说,视频解码器30/108可通过确定子图片经译码图片缓冲器优选旗标(例如,SubPicCpbPreferredFlag)为负或具有值0或者确定子图片经译码图片缓冲器参数存在旗标(例如,sub_pic_cpb_params_present_flag)为负或具有值0来确定一或多个解码单元包含存取单元。视频解码器30/108可通过既确定子图片经译码图片缓冲器优选旗标(例如,SubPicCpbPreferredFlag)为正或具有值1又确定子图片经译码图片缓冲器参数存在旗标(例如,sub_pic_cpb_params_present_flag)为正或具有值1来确定一或多个解码单元包含存取单元子集。视频解码器30/108也可使用单一子图片经译码图片缓冲器旗标SubPicCpbFlag(其可设置到SubPicCpbPreferredFlag&&sub_pic_cpb_params_present_flag),以确定两个基础旗标是否为正且确定视频解码器30/108可针对存取单元子集进行译码。For example, if the video decoder 30/108 determines that the CPB operates at the access unit level, the video decoder 30/108 may decode the access unit corresponding to the video data of the removed decoding unit (412). If the video decoder 30/108 determines that the CPB operates at the sub-picture level, the video decoder 30/108 may decode the access unit subset corresponding to the video data of the removed decoding unit (414). For example, the video decoder 30/108 may determine that the one or more decoding units include an access unit by determining that a sub-picture coded picture buffer preferred flag (e.g., SubPicCpbPreferredFlag) is negative or has a value of 0 or determining that a sub-picture coded picture buffer parameter present flag (e.g., sub_pic_cpb_params_present_flag) is negative or has a value of 0. The video decoder 30/108 may determine that one or more decoding units include an access unit subset by determining that both a sub-picture coded picture buffer preference flag (e.g., SubPicCpbPreferredFlag) is positive or has a value of 1 and a sub-picture coded picture buffer parameter present flag (e.g., sub_pic_cpb_params_present_flag) is positive or has a value of 1. The video decoder 30/108 may also use a single sub-picture coded picture buffer flag, SubPicCpbFlag, which may be set to SubPicCpbPreferredFlag && sub_pic_cpb_params_present_flag, to determine whether both base flags are positive and that the video decoder 30/108 may code for the access unit subset.

图7为根据本发明的技术的说明处理视频数据的另一实例方法的流程图,所述方法包括(例如)由图1或3的视频解码器30或图4的视频解码器108(共同地为“视频解码器30/108”)在提高进程中输出经剪裁图片。在图7的实例中,如果满足某些条件中的任一者,那么视频解码器30/108可执行提高进程,如上文参考提高进程实例所描述。特别地,如果当前图片为瞬时解码刷新(IDR)图片(302)且无先前图片输出旗标具有不等于1的值(304),其可包括如果无先前图片输出旗标具有并未(例如)由HRD推断为等于1或设置为等于1的值,那么视频解码器30/108可执行提高进程。如果在经解码图片缓冲器(DPB)中被标记为需要用于输出的图片的数目大于在当前时间层处的重新排序图片的数目(306),那么视频解码器30/108也可执行提高进程。如果DPB中时间层标识符值低于或等于当前图片的时间层标识符值的图片的数目等于当前时间层的最大图片缓冲值加1(308),那么视频解码器30/108也可执行提高进程。FIG7 is a flowchart illustrating another example method of processing video data according to techniques of this disclosure, the method including, for example, outputting a cropped picture in a boosting process by the video decoder 30 of FIG1 or 3 or the video decoder 108 of FIG4 (collectively, “video decoder 30/108”). In the example of FIG7, the video decoder 30/108 may perform the boosting process, as described above with reference to the boosting process example, if any of certain conditions are met. In particular, if the current picture is an instantaneous decoding refresh (IDR) picture (302) and the no previous picture output flag has a value not equal to 1 (304), which may include if the no previous picture output flag has a value that is not inferred to be equal to 1 or set to 1 by the HRD, for example, then the video decoder 30/108 may perform the boosting process. The video decoder 30/108 may also perform the boosting process if the number of pictures marked as needed for output in the decoded picture buffer (DPB) is greater than the number of reordered pictures at the current temporal layer (306). Video decoder 30/108 may also perform a boosting process if the number of pictures in the DPB with temporal layer identifier values lower than or equal to the temporal layer identifier value of the current picture is equal to the maximum picture buffer value of the current temporal layer plus 1 (308).

如果满足指定条件(302及304,或306,或308)中的任一者,那么视频解码器30/108可如下执行提高进程。视频解码器30/108可选择DPB中具有图片的最小图片顺序计数(POC)值且被标记为需要用于输出的图片作为选定图片(312)。视频解码器30/108可如用于选定图片的活动序列参数集合中所指定而剪裁选定图片,从而基于选定图片来产生经剪裁图片(314)。视频解码器30/108可输出经剪裁图片(316)。视频解码器30/108可将选定图片标记为无需用于输出(318)。If any of the specified conditions (302 and 304, or 306, or 308) are met, the video decoder 30/108 may perform a boosting process as follows. The video decoder 30/108 may select a picture in the DPB that has the smallest picture order count (POC) value of the pictures and is marked as needed for output as the selected picture (312). The video decoder 30/108 may crop the selected picture as specified in the active sequence parameter set for the selected picture, thereby generating a cropped picture based on the selected picture (314). The video decoder 30/108 may output the cropped picture (316). The video decoder 30/108 may mark the selected picture as not needed for output (318).

在一或多个实例中,所描述功能可以硬件、软件、固件或其任何组合予以实施。如果以软件予以实施,那么所述功能可作为一或多个指令或代码而存储在计算机可读媒体上或经由计算机可读媒体而传输,且由基于硬件的处理单元执行。计算机可读媒体可包括对应于诸如数据存储媒体的有形媒体的计算机可读存储媒体,或包括(例如)根据通信协议而促进计算机程序从一处传送到另一处的任何媒体的通信媒体。如此,计算机可读媒体通常可对应于(1)为非暂时性的有形计算机可读存储媒体,或(2)诸如信号或载波的通信媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索指令、代码及/或数据结构以用于实施本发明所描述的技术的任何可用媒体。计算机程序产品可包括计算机可读媒体。In one or more examples, the described functions may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted via a computer-readable medium as one or more instructions or codes and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media corresponding to tangible media such as data storage media, or communication media including, for example, any media that facilitates the transfer of a computer program from one place to another according to a communication protocol. Thus, computer-readable media may generally correspond to (1) tangible computer-readable storage media that is non-transitory, or (2) communication media such as a signal or carrier wave. Data storage media may be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, codes, and/or data structures for implementing the techniques described herein. A computer program product may include computer-readable media.

作为实例而非限制,这些计算机可读存储媒体可包含RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、闪速存储器,或可用以存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。同样地,将任何连接适当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光缆、双绞线、数字订户线(DSL)或诸如红外线、无线电及微波的无线技术而从网站、服务器或其它远程源传输指令,那么同轴电缆、光缆、双绞线、DSL或诸如红外线、无线电及微波的无线技术包括在媒体的定义中。然而,应理解,计算机可读存储媒体及数据存储媒体不包括连接、载波、信号或其它暂时性媒体,而是有关于非暂时性有形存储媒体。如本文所使用,磁盘及光盘包括压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘及蓝光光盘,其中磁盘通常以磁性方式重现数据,而光盘用激光以光学方式重现数据。以上各者的组合也应包括在计算机可读媒体的范围内。By way of example, and not limitation, these computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Likewise, any connection is properly referred to as a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwaves, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwaves are included in the definition of medium. However, it should be understood that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transient media, but rather refer to non-transitory, tangible storage media. As used herein, disk and disc include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc, where disks typically reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.

指令可由诸如以下各者的一或多个处理器执行:一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA),或其它等效集成或离散逻辑电路。因此,如本文所使用,术语“处理器”可指前述结构或适于实施本文所描述的技术的任何其它结构中的任一者。另外,在一些方面中,可将本文所描述的功能性提供在经配置用于编码及解码的专用硬件及/或软件模块内,或并入于组合式编码解码器中。同样地,可将所述技术完全地实施于一或多个电路或逻辑元件中。Instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Thus, as used herein, the term "processor" may refer to any of the foregoing structures or any other structure suitable for implementing the techniques described herein. Additionally, in some aspects, the functionality described herein may be provided within dedicated hardware and/or software modules configured for encoding and decoding, or incorporated into a combined codec. Likewise, the techniques may be fully implemented in one or more circuits or logic elements.

本发明的技术可实施于各种各样的装置或设备中,所述装置或设备包括无线手机、集成电路(IC)或IC集合(例如,芯片集)。各种组件、模块或单元被描述在本发明中以强调经配置以执行所揭示技术的装置的功能方面,但未必需要通过不同硬件单元而实现。更确切地,如上文所描述,各种单元可组合在编码解码器硬件单元中,或由包括如上文所描述的一或多个处理器的互操作性硬件单元集合结合合适软件及/或固件而提供。The techniques of this disclosure may be implemented in a wide variety of devices or apparatuses, including wireless handsets, integrated circuits (ICs), or sets of ICs (e.g., chipsets). Various components, modules, or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require implementation by different hardware units. Rather, as described above, the various units may be combined in a codec hardware unit, or provided by a set of interoperable hardware units including one or more processors as described above, in conjunction with appropriate software and/or firmware.

已描述各种实例。这些及其它实例是在所附权利要求书的范围内。Various embodiments have been described. These and other embodiments are within the scope of the following claims.

Claims (26)

1.一种译码视频数据的方法,所述方法包含:1. A method for decoding video data, the method comprising: 基于子图片经译码图片缓冲器优选旗标和子图片经译码图片缓冲器参数存在旗标,确定至少一个旗标的值,所述子图片经译码图片缓冲器优选旗标的值通过外部方式指定或在未通过外部方式指定时设置到0,且所述子图片经译码图片缓冲器参数存在旗标指示了译码存取单元的子集所需的参数是否存在;Based on the sub-image decoded image buffer preferred flag and the sub-image decoded image buffer parameter existence flag, the value of at least one flag is determined. The value of the sub-image decoded image buffer preferred flag is specified by an external means or set to 0 when not specified by an external means. The sub-image decoded image buffer parameter existence flag indicates whether the parameters required for a subset of the decoding access unit exist. 基于所述至少一个旗标的值确定经译码图片缓冲器CPB是在存取单元级别处还是在子图片级别处操作;及The value of at least one flag determines whether the decoded image buffer (CPB) operates at the access unit level or the sub-image level; and 取决于所述CPB在哪一个级别处操作,执行以下两组操作中的一组:Depending on the level at which the CPB operates, one of the following two sets of operations is performed: 当所述CPB在所述存取单元级别处操作时:When the CPB operates at the access unit level: 确定存储在所述CPB中的解码单元包括存取单元;The decoding unit stored in the CPB is determined to include an access unit; 从所述CPB移除包括相应存取单元的解码单元;以及Remove the decoding unit, including the corresponding access unit, from the CPB; and 译码经移除的包括所述相应存取单元的解码单元;或Decoding the removed decoding unit, which includes the corresponding access unit; or 当所述CPB在所述子图片级别处操作时:When the CPB operates at the sub-image level: 确定存储在所述CPB中的解码单元包括存取单元的子集;It is determined that the decoding units stored in the CPB include a subset of the access units; 从所述CPB移除包括相应存取单元的子集的解码单元;以及Remove the decoding unit comprising a subset of the corresponding access unit from the CPB; and 译码经移除的包括所述相应存取单元的所述子集的解码单元。Decoding the subset of decoding units that have been removed, including the corresponding access units. 2.根据权利要求1所述的方法,其进一步包含确定所述子图片经译码图片缓冲器优选旗标的所述值。2. The method of claim 1, further comprising determining the value of the preferred flag of the decoded image buffer for the sub-image. 3.根据权利要求1所述的方法,其进一步包含确定所述子图片经译码图片缓冲器参数存在旗标的所述值。3. The method of claim 1, further comprising determining the value of the presence flag of the decoded image buffer parameter of the sub-image. 4.根据权利要求1所述的方法,4. The method according to claim 1, 基于所述子图片经译码图片缓冲器优选旗标的值和所述子图片经译码图片缓冲器参数存在旗标的值各被设置为1,将所述至少一个旗标的值设置为1,Based on the fact that the values of the preferred flag of the decoded image buffer for the sub-image and the present flag of the parameter of the decoded image buffer for the sub-image are each set to 1, the value of at least one flag is set to 1. 其中所述至少一个旗标的值为1指示了所述CPB在所述子图片级别处操作。The value of at least one of the flags being 1 indicates that the CPB is operating at the sub-picture level. 5.根据权利要求1所述的方法,5. The method according to claim 1, 基于所述子图片经译码图片缓冲器优选旗标的值和所述子图片经译码图片缓冲器参数存在旗标的值中的至少一者被设置为0,将所述至少一个旗标的值设置为0,其中所述至少一个旗标的值为0指示了所述CPB在所述存取单元级别处操作。Based on the fact that at least one of the values of the sub-image decoded image buffer preferred flag and the sub-image decoded image buffer parameter existence flag is set to 0, the value of the at least one flag is set to 0, wherein the value of the at least one flag being 0 indicates that the CPB is operating at the access unit level. 6.一种用于译码视频数据的装置,所述装置包含:6. An apparatus for decoding video data, the apparatus comprising: 存储器,其经配置以存储所述视频数据的至少一部分;以及A memory configured to store at least a portion of the video data; and 视频译码器,其用于处理所述视频数据的所述部分,所述视频译码器经配置以:A video decoder for processing said portion of the video data, the video decoder being configured to: 基于子图片经译码图片缓冲器优选旗标和子图片经译码图片缓冲器参数存在旗标确定至少一个旗标的值,所述子图片经译码图片缓冲器优选旗标的值通过外部方式指定或在未通过外部方式指定时设置到0,且所述子图片经译码图片缓冲器参数存在旗标指示了译码存取单元的子集所需的参数是否存在;The value of at least one flag is determined based on the sub-image decoded image buffer preference flag and the sub-image decoded image buffer parameter presence flag. The value of the sub-image decoded image buffer preference flag is specified externally or set to 0 when not specified externally. The sub-image decoded image buffer parameter presence flag indicates whether the parameters required for a subset of the decoding access unit exist. 基于所述至少一个旗标的值确定经译码图片缓冲器CPB是在存取单元级别处还是在子图片级别处操作;及The value of at least one flag determines whether the decoded image buffer (CPB) operates at the access unit level or the sub-image level; and 取决于所述CPB在哪一个级别处操作,所述视频译码器经配置以执行以下两组操作中的一组:Depending on the level at which the CPB operates, the video decoder is configured to perform one of the following two sets of operations: 当所述CPB在所述存取单元级别处操作的确定时:When the operation of the CPB at the access unit level is determined: 确定存储在所述CPB中的解码单元包括存取单元;The decoding unit stored in the CPB is determined to include an access unit; 从所述CPB移除包括相应存取单元的解码单元;以及Remove the decoding unit, including the corresponding access unit, from the CPB; and 译码经移除的包括所述相应存取单元的解码单元;或Decoding the removed decoding unit, which includes the corresponding access unit; or 当所述CPB在所述子图片级别处操作的确定时:When the CPB operation at the sub-image level is determined: 确定存储在所述CPB中的解码单元包括存取单元的子集;It is determined that the decoding units stored in the CPB include a subset of the access units; 从所述CPB移除包括相应存取单元的子集的解码单元;以及Remove the decoding unit comprising a subset of the corresponding access unit from the CPB; and 译码经移除的包括所述相应存取单元的所述子集的解码单元。Decoding the subset of decoding units that have been removed, including the corresponding access units. 7.根据权利要求6所述的装置,其中所述视频译码器经进一步配置以确定所述子图片经译码图片缓冲器优选旗标的所述值。7. The apparatus of claim 6, wherein the video decoder is further configured to determine the value of the preferred flag of the sub-picture via the decoded picture buffer. 8.根据权利要求6所述的装置,其中所述视频译码器经进一步配置以确定所述子图片经译码图片缓冲器参数存在旗标的所述值。8. The apparatus of claim 6, wherein the video decoder is further configured to determine the value of the presence flag of the sub-picture via the decoded picture buffer parameter. 9.根据权利要求6所述的装置,其中所述视频译码器经进一步配置以:9. The apparatus of claim 6, wherein the video decoder is further configured to: 基于所述子图片经译码图片缓冲器优选旗标的值和所述子图片经译码图片缓冲器参数存在旗标的值各被设置为1,将所述至少一个旗标的所述值设置为1,Based on the fact that the value of the preferred flag of the decoded image buffer for the sub-image and the value of the parameter existence flag of the decoded image buffer for the sub-image are each set to 1, the value of at least one flag is set to 1. 其中所述至少一个旗标的值为1指示了所述CPB在所述子图片级别处操作。The value of at least one of the flags being 1 indicates that the CPB is operating at the sub-picture level. 10.根据权利要求6所述的装置,其中所述视频译码器经进一步配置以10. The apparatus of claim 6, wherein the video decoder is further configured to... 基于所述子图片经译码图片缓冲器优选旗标的值和所述子图片经译码图片缓冲器参数存在旗标的值中的至少一者被设置为0,将所述至少一个旗标的值设置为0,Based on the fact that at least one of the values of the preferred flag of the decoded image buffer for the sub-image and the value of the flag containing the parameters of the decoded image buffer for the sub-image is set to 0, the value of the at least one flag is set to 0. 其中所述至少一个旗标的值为0指示了所述CPB在所述存取单元级别处操作。The value of at least one of the flags being 0 indicates that the CPB is operating at the access unit level. 11.根据权利要求6所述的装置,其中所述装置包含以下各者中的至少一者:11. The apparatus of claim 6, wherein the apparatus comprises at least one of the following: 一或多个集成电路;One or more integrated circuits; 一或多个微处理器;One or more microprocessors; 一或多个数字信号处理器(DSP);One or more digital signal processors (DSPs); 一或多个现场可编程门阵列(FPGA);One or more field-programmable gate arrays (FPGAs); 台式计算机;Desktop computer; 便携式计算机;Portable computers; 平板电脑;Tablet PC; 手机;cell phone; 电视机;TV set; 相机;camera; 显示设备;Display devices; 数字媒体播放器;Digital media player; 视频游戏控制台;Video game console; 视频游戏装置;Video game devices; 视频流设备;或Video streaming devices; or 无线通信装置。Wireless communication device. 12.根据权利要求6所述的装置,其进一步包括经配置以捕获所述视频数据的至少一部分的相机。12. The apparatus of claim 6, further comprising a camera configured to capture at least a portion of the video data. 13.根据权利要求6所述的装置,其进一步包括经配置以输出所述视频数据的至少一部分的显示器。13. The apparatus of claim 6, further comprising a display configured to output at least a portion of the video data. 14.一种用于译码视频数据的设备,所述设备包含:14. An apparatus for decoding video data, the apparatus comprising: 用于基于子图片经译码图片缓冲器优选旗标和子图片经译码图片缓冲器参数存在旗标确定至少一个旗标的值的装置,所述子图片经译码图片缓冲器优选旗标的值通过外部方式指定或在未通过外部方式指定时设置到0,且所述子图片经译码图片缓冲器参数存在旗标指示了译码存取单元的子集所需的参数是否存在;A means for determining the value of at least one flag based on a sub-image decoded image buffer preference flag and a sub-image decoded image buffer parameter presence flag, wherein the value of the sub-image decoded image buffer preference flag is specified externally or set to 0 when not specified externally, and the sub-image decoded image buffer parameter presence flag indicates whether a parameter required for a subset of the decoding access unit exists. 用于基于所述至少一个旗标的值确定经译码图片缓冲器CPB是在存取单元级别处还是在子图片级别处操作的装置;A means for determining whether the decoded image buffer CPB operates at the access unit level or the sub-image level based on the value of the at least one flag; 用于当所述CPB在所述存取单元级别处操作时而确定存储在所述CPB中的解码单元包括存取单元的装置;Means for determining, when the CPB operates at the access unit level, that a decoding unit stored in the CPB includes an access unit; 用于当所述CPB在所述存取单元级别处操作时而从所述CPB移除包括相应存取单元的解码单元的装置;Means for removing a decoding unit comprising a corresponding access unit from the CPB when the CPB operates at the access unit level; 用于当所述CPB在所述存取单元级别处操作时而译码经移除的包括所述相应存取单元的解码单元的装置;A means for decoding a decoding unit including the corresponding access unit when the CPB operates at the access unit level; 用于当所述CPB在所述子图片级别处操作时而确定存储在所述CPB中的解码单元包括存取单元的子集的装置;Means for determining, when the CPB operates at the sub-picture level, that the decoding units stored in the CPB include a subset of the access units; 用于当所述CPB在所述子图片级别处操作时而从所述CPB移除包括相应存取单元的子集的解码单元的装置;以及Means for removing a subset of decoding units comprising the corresponding access units from the CPB when the CPB operates at the sub-image level; and 用于当所述CPB在所述子图片级别处操作时而译码经移除的包括所述相应存取单元的所述子集的解码单元的装置。A means for decoding a subset of the corresponding access unit that has been removed when the CPB operates at the sub-picture level. 15.根据权利要求14所述的设备,其进一步包含用于确定所述子图片经译码图片缓冲器优选旗标的所述值的装置。15. The apparatus of claim 14, further comprising means for determining the value of the preferred flag of the decoded image buffer for the sub-image. 16.根据权利要求14所述的设备,其进一步包含用于确定所述子图片经译码图片缓冲器参数存在旗标的所述值的装置。16. The apparatus of claim 14, further comprising means for determining the value of the presence flag of the sub-image via the decoded image buffer parameter. 17.根据权利要求14所述的设备,其进一步包含:17. The device of claim 14, further comprising: 用于基于所述子图片经译码图片缓冲器优选旗标的值和所述子图片经译码图片缓冲器参数存在旗标的值各被设置为1,将所述至少一个旗标的所述值设置为1的装置,其中所述至少一个旗标的值为1指示了所述CPB在所述子图片级别处操作。A means for setting the value of at least one flag to 1 based on the value of a preferred flag of the sub-image decoded image buffer and the value of a flag indicating the presence of parameters of the sub-image decoded image buffer, wherein the value of at least one flag being 1 indicates that the CPB is operating at the sub-image level. 18.根据权利要求14所述的设备,进一步包括用于基于所述子图片经译码图片缓冲器优选旗标的值和所述子图片经译码图片缓冲器参数存在旗标的值中的至少一者设置为0,将所述至少一个旗标的所述值设置为0的装置,其中所述至少一个旗标的值为0指示了所述CPB在所述存取单元级别处操作。18. The apparatus of claim 14, further comprising means for setting the value of the at least one flag to 0 based on at least one of the value of the sub-image decoded image buffer preferred flag and the value of the sub-image decoded image buffer parameter existence flag, wherein the value of the at least one flag being 0 indicates that the CPB operates at the access unit level. 19.根据权利要求14所述的设备,其中所述设备包含以下各者中的至少一者:19. The device of claim 14, wherein the device comprises at least one of the following: 一或多个集成电路;One or more integrated circuits; 一或多个微处理器;One or more microprocessors; 一或多个数字信号处理器(DSP);One or more digital signal processors (DSPs); 一或多个现场可编程门阵列(FPGA);One or more field-programmable gate arrays (FPGAs); 台式计算机;Desktop computer; 便携式计算机;Portable computers; 平板电脑;Tablet PC; 手机;cell phone; 电视机;TV set; 相机;camera; 显示设备;Display devices; 数字媒体播放器;Digital media player; 视频游戏控制台;Video game console; 视频游戏装置;Video game devices; 视频流设备;或Video streaming devices; or 无线通信装置,其包括视频译码装置。Wireless communication device, including video decoding device. 20.根据权利要求14所述的设备,其进一步包括用于捕获所述视频数据的至少一部分的装置。20. The apparatus of claim 14, further comprising means for capturing at least a portion of the video data. 21.根据权利要求14所述的设备,其进一步包括用于输出所述视频数据的至少一部分以供显示的装置。21. The apparatus of claim 14, further comprising means for outputting at least a portion of the video data for display. 22.一种非暂时性计算机可读存储媒体,其包含存储在其上的指令,所述指令在执行时使视频译码装置的一或多个处理器:22. A non-transitory computer-readable storage medium comprising instructions stored thereon, which, when executed, cause one or more processors of a video decoding apparatus to: 基于子图片经译码图片缓冲器优选旗标和子图片经译码图片缓冲器参数存在旗标确定至少一个旗标的值,所述子图片经译码图片缓冲器优选旗标的值通过外部方式指定或在未通过外部方式指定时设置到0,且所述子图片经译码图片缓冲器参数存在旗标指示了译码存取单元的子集所需的参数是否存在;The value of at least one flag is determined based on the sub-image decoded image buffer preference flag and the sub-image decoded image buffer parameter presence flag. The value of the sub-image decoded image buffer preference flag is specified externally or set to 0 when not specified externally. The sub-image decoded image buffer parameter presence flag indicates whether the parameters required for a subset of the decoding access unit exist. 基于所述至少一个旗标的值确定经译码图片缓冲器CPB是在存取单元级别处还是在子图片级别处操作;及The value of at least one flag determines whether the decoded image buffer (CPB) operates at the access unit level or the sub-image level; and 取决于所述CPB在哪一个级别处操作,所述一或多个处理器进一步被致使以执行以下两组操作中的一组:Depending on the level at which the CPB operates, the one or more processors are further caused to perform one of the following two sets of operations: 当所述CPB在所述存取单元级别处操作时:When the CPB operates at the access unit level: 确定存储在所述CPB中的解码单元包括存取单元;The decoding unit stored in the CPB is determined to include an access unit; 从所述CPB移除包括相应存取单元的解码单元;以及Remove the decoding unit, including the corresponding access unit, from the CPB; and 译码经移除的包括所述相应存取单元的解码单元;或Decoding the removed decoding unit, which includes the corresponding access unit; or 当所述CPB在所述子图片级别处操作时:When the CPB operates at the sub-image level: 确定存储在所述CPB中的解码单元包括存取单元的子集;It is determined that the decoding units stored in the CPB include a subset of the access units; 从所述CPB移除包括相应存取单元的子集的解码单元;以及Remove the decoding unit comprising a subset of the corresponding access unit from the CPB; and 译码经移除的包括所述相应存取单元的所述子集的解码单元。Decoding the subset of decoding units that have been removed, including the corresponding access units. 23.根据权利要求22所述的非暂时性计算机可读存储媒体,其中所述指令进一步使所述一或多个处理器确定所述子图片经译码图片缓冲器优选旗标的所述值。23. The non-transitory computer-readable storage medium of claim 22, wherein the instructions further cause the one or more processors to determine the value of the preferred flag of the sub-image via the decoded image buffer. 24.根据权利要求22所述的非暂时性计算机可读存储媒体,其中所述指令进一步使所述一或多个处理器确定所述子图片经译码图片缓冲器参数存在旗标的所述值。24. The non-transitory computer-readable storage medium of claim 22, wherein the instructions further cause the one or more processors to determine the value of the sub-image decoded image buffer parameter presence flag. 25.根据权利要求22所述的非暂时性计算机可读存储媒体,其中所述指令进一步使所述一或多个处理器:25. The non-transitory computer-readable storage medium of claim 22, wherein the instructions further cause the one or more processors to: 基于所述子图片经译码图片缓冲器优选旗标的值和所述子图片经译码图片缓冲器参数存在旗标的值各被设置为1,将所述至少一个旗标的值设置为1,Based on the fact that the values of the preferred flag of the decoded image buffer for the sub-image and the present flag of the parameter of the decoded image buffer for the sub-image are each set to 1, the value of at least one flag is set to 1. 其中所述至少一个旗标的值为1指示所述CPB在所述子图片级别处操作。The value of at least one of the flags being 1 indicates that the CPB operates at the sub-picture level. 26.根据权利要求22所述的非暂时性计算机可读存储媒体,其中所述指令进一步使所述一或多个处理器基于所述子图片经译码图片缓冲器优选旗标的值和所述子图片经译码图片缓冲器参数存在旗标的值中的至少一者设置为0,将所述至少一个旗标的值设置为0,其中所述至少一个旗标的值为0指示了所述CPB在所述存取单元级别处操作。26. The non-transitory computer-readable storage medium of claim 22, wherein the instructions further cause the one or more processors to set the value of at least one flag to 0 based on at least one of the value of the sub-image decoded image buffer preferred flag and the value of the sub-image decoded image buffer parameter existence flag, wherein the value of at least one flag being 0 indicates that the CPB operates at the access unit level.
HK15103308.4A 2012-04-04 2013-02-26 Low-delay video buffering in video coding HK1203009B (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201261620266P 2012-04-04 2012-04-04
US61/620,266 2012-04-04
US201261641063P 2012-05-01 2012-05-01
US61/641,063 2012-05-01
US13/776,140 2013-02-25
US13/776,140 US9565431B2 (en) 2012-04-04 2013-02-25 Low-delay video buffering in video coding
PCT/US2013/027815 WO2013151635A1 (en) 2012-04-04 2013-02-26 Low-delay video buffering in video coding

Publications (2)

Publication Number Publication Date
HK1203009A1 HK1203009A1 (en) 2015-10-09
HK1203009B true HK1203009B (en) 2019-10-18

Family

ID=

Similar Documents

Publication Publication Date Title
AU2017202638B2 (en) Low-delay video buffering in video coding
KR101956967B1 (en) Coding timing information for video coding
HK1203009B (en) Low-delay video buffering in video coding
HK1201112B (en) A method, apparatus and device for decoding video data
HK1204835B (en) Method and device for processing video data and computer-readable storage medium
HK1207776B (en) Method and apparatus for coded picture buffer removal times