HK1224117B - Method and device of decoding and encoding video data and computer-readable storage medium - Google Patents
Method and device of decoding and encoding video data and computer-readable storage medium Download PDFInfo
- Publication number
- HK1224117B HK1224117B HK16112138.0A HK16112138A HK1224117B HK 1224117 B HK1224117 B HK 1224117B HK 16112138 A HK16112138 A HK 16112138A HK 1224117 B HK1224117 B HK 1224117B
- Authority
- HK
- Hong Kong
- Prior art keywords
- depth
- intra
- frame prediction
- inter
- sdc
- Prior art date
Links
Description
技术领域Technical Field
本发明涉及视频译码,且更具体地说涉及用于在三维(3D)视频译码过程中对用于深度数据的残余值进行译码的技术。This disclosure relates to video coding, and more particularly to techniques for coding residual values for depth data in a three-dimensional (3D) video coding process.
背景技术Background Art
数字视频能力可并入到广泛范围的装置中,包含数字电视机、数字直播系统、无线广播系统、平板计算机、智能电话、个人数字助理(PDA)、膝上型计算机或桌上型计算机、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、视频电话会议装置、机顶盒装置及类似物。数字视频装置实施视频压缩技术,例如描述于以下各者中的那些技术:由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高级视频译码(AVC)定义的标准、高效率视频译码(HEVC)标准,及此些标准的扩展。视频装置可更高效地发射、接收和存储数字视频信息。Digital video capabilities can be incorporated into a wide range of devices, including digital televisions, digital live broadcast systems, wireless broadcast systems, tablet computers, smartphones, personal digital assistants (PDAs), laptop or desktop computers, digital cameras, digital recording devices, digital media players, video game devices, video game consoles, cellular or satellite radio telephones, video teleconferencing devices, set-top box devices, and the like. Digital video devices implement video compression techniques, such as those described in the standards defined by MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4 Part 10 Advanced Video Coding (AVC), the High Efficiency Video Coding (HEVC) standard, and extensions of such standards. Video devices can more efficiently transmit, receive, and store digital video information.
编码器-解码器(编解码器)应用视频压缩技术以执行空间(图片内)预测和/或时间(图片间)预测以减少或移除视频序列中固有的冗余。对于基于块的视频译码,可将视频切片分割成视频块,视频块还可被称作树块、译码单元(CU)及/或译码节点。使用关于同一图片中的相邻块中的参考样本的空间预测编码图片的经帧内译码(I)切片中的视频块。图片的经帧间编码(P或B)切片中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测或相对于其它参考图片中的参考样本的时间预测。图片替代地可被称为帧。An encoder-decoder (CODEC) applies video compression techniques to perform spatial (intra-picture) prediction and/or temporal (inter-picture) prediction to reduce or remove redundancy inherent in video sequences. For block-based video coding, a video slice may be partitioned into video blocks, which may also be referred to as treeblocks, coding units (CUs), and/or coding nodes. Video blocks in an intra-coded (I) slice of a picture are encoded using spatial prediction with respect to reference samples in neighboring blocks in the same picture. Video blocks in an inter-coded (P or B) slice of a picture may use spatial prediction with respect to reference samples in neighboring blocks in the same picture or temporal prediction with respect to reference samples in other reference pictures. A picture may alternatively be referred to as a frame.
空间或时间预测导致待译码块的预测性块。残余数据表示待译码原始块与预测性块的间的像素差。经帧间译码块是根据指向形成预测块的参考样本块的运动向量和指示经译码块与预测块之间的差的残余数据编码的。根据帧内译码模式和残余数据来编码经帧内译码块。为了进一步压缩,可将残余数据从空间域变换到变换域,从而产生残余变换系数,接着可对残余变换系数进行量化。可扫描一开始按二维阵列排列的经量化变换系数,以便产生变换系数的一维向量,且可应用熵译码以实现更多压缩。Spatial or temporal prediction results in a predictive block for the block to be coded. Residual data represents the pixel differences between the original block to be coded and the predictive block. An inter-coded block is encoded based on a motion vector pointing to a block of reference samples forming the prediction block and residual data indicating the difference between the coded block and the prediction block. An intra-coded block is encoded based on an intra-coding mode and the residual data. For further compression, the residual data can be transformed from the spatial domain to the transform domain, thereby generating residual transform coefficients, which can then be quantized. The quantized transform coefficients, initially arranged in a two-dimensional array, can be scanned to generate a one-dimensional vector of transform coefficients, and entropy coding can be applied to achieve even more compression.
可例如从多个视角编码视图来产生多视图译码位流。多视图译码可允许解码器选择不同视图,或可能再现多个视图。另外,已经开发或正在开发的一些三维(3D)视频技术和标准利用多视图译码方面。举例来说,在一些3D视频译码过程中,不同视图可用以发射左眼和右眼视图以支持3D视频。其它3D视频译码过程可使用多视图加深度译码。在多视图加深度译码过程中,例如由HEVC的3D-HEVC扩展界定的过程,3D视频位流可含有不仅包含纹理视图分量而且包含深度视图分量的多个视图。举例来说,给定视图可包括纹理视图分量和深度视图分量。纹理视图和深度视图分量可用以构造3D视频数据。A multi-view coding bitstream may be generated, for example, by encoding views from multiple perspectives. Multi-view coding may allow a decoder to select different views, or possibly reproduce multiple views. In addition, some three-dimensional (3D) video technologies and standards that have been developed or are under development utilize aspects of multi-view coding. For example, in some 3D video coding processes, different views may be used to transmit left-eye and right-eye views to support 3D video. Other 3D video coding processes may use multi-view plus depth coding. In a multi-view plus depth coding process, such as that defined by the 3D-HEVC extension of HEVC, a 3D video bitstream may contain multiple views that include not only texture view components but also depth view components. For example, a given view may include a texture view component and a depth view component. The texture view and depth view components may be used to construct 3D video data.
发明内容Summary of the Invention
一般来说,本发明描述用于在3D视频译码过程中用信号表示和处理指示用于深度帧内预测和深度帧间预测模式的简化深度译码(SDC)的使用的信息的技术,所述3D视频译码过程例如由对HEVC的3D-HEVC扩展界定的过程。在一些实例中,本发明描述用于在3D视频译码中统一用于深度帧内预测和深度帧间预测模式的SDC的使用的信令的技术,例如通过使用一个语法元素来指示用于深度帧内和深度帧间预测两者的SDC的使用。In general, this disclosure describes techniques for signaling and processing information indicating the use of simplified depth coding (SDC) for depth intra prediction and depth inter prediction modes in a 3D video coding process, such as the process defined by the 3D-HEVC extension to HEVC. In some examples, this disclosure describes techniques for unifying the signaling of the use of SDC for depth intra prediction and depth inter prediction modes in 3D video coding, such as by using one syntax element to indicate the use of SDC for both depth intra and depth inter prediction.
可统一SDC的信令以使得视频编码器或视频解码器(即,视频译码器)使用相同语法元素而不是单独语法元素用于用信号表示用于深度帧内预测模式和深度帧间预测模式两者的SDC。举例来说,可在CU层级用信号表示单个语法元素以指示SDC是否用于CU、CU是否经帧内预测或经帧间预测。The signaling of SDC can be unified so that a video encoder or video decoder (i.e., a video coder) uses the same syntax element instead of separate syntax elements to signal SDC for both deep intra prediction mode and deep inter prediction mode. For example, a single syntax element can be signaled at the CU level to indicate whether SDC is used for a CU, and whether the CU is intra predicted or inter predicted.
并且,在一些实例中,视频译码器可针对深度帧内预测模式和深度帧间预测模式两者使用相同语法结构、相同类型的语法结构或同一语法结构的不同实例来用信号表示和/或处理在SDC模式中产生的残余值。在每一情况下,可使用相同语法元素来用信号表示残余值,例如DC残余值。在一些实例中,用于用信号表示用于深度帧间预测模式的SDC的语法元素可为用于用信号表示用于深度帧内预测模式的SDC的那些语法元素的部分。在此情况下,共同语法元素可由深度帧内和深度帧间SDC模式共享。Furthermore, in some examples, the video coder may use the same syntax structure, the same type of syntax structure, or different instances of the same syntax structure for both deep intra prediction mode and deep inter prediction mode to signal and/or process residual values generated in SDC mode. In each case, the same syntax elements may be used to signal residual values, such as DC residual values. In some examples, the syntax elements used to signal SDC for deep inter prediction mode may be part of those used to signal SDC for deep intra prediction mode. In this case, common syntax elements may be shared by deep intra and deep inter SDC modes.
对于用于由SDC产生的残余值的语法结构中的共享语法元素,上下文模型和二进制化过程,例如对于上下文自适应二进制算术译码(CABAC)熵译码过程,针对用于深度帧内预测和深度帧间预测模式两者的相关语法元素可统一。举例来说,用于由SDC产生的残余值的语法元素可以用于深度帧内预测模式和深度帧间预测模式两者的相同上下文模型和/或二进制化过程来译码。For shared syntax elements, context models, and binarization processes in the syntax structure for residual values generated by SDC, such as for a context-adaptive binary arithmetic coding (CABAC) entropy coding process, the relevant syntax elements for both deep intra prediction and deep inter prediction modes can be unified. For example, syntax elements for residual values generated by SDC can be coded using the same context model and/or binarization process for both deep intra prediction mode and deep inter prediction mode.
在一些实例中,视频译码器可应用约束以使得当SDC经启用时停用脉码调制(PCM)译码。并且,在一些实例中,视频译码器可应用约束以使得仅针对具有特定分区大小的译码单元,SDC应用于深度帧内预测和深度帧间预测模式两者。In some examples, the video coder may apply a constraint such that pulse code modulation (PCM) coding is disabled when SDC is enabled. Also, in some examples, the video coder may apply a constraint such that SDC applies to both deep intra prediction and deep inter prediction modes only for coding units with specific partition sizes.
此外,在一些实例中,可使用单个语法元素来用信号表示SDC是否针对整个经译码视频序列或切片中的CU的深度帧内预测模式和深度帧间预测模式两者经启用或停用。所述语法元素可例如在视频参数集(VPS)扩展、序列参数集(SPS)、图片参数集(PPS)、切片片段标头或用于用信号表示视频译码语法信息的另一数据结构中呈现。作为一实例,如果此语法元素指示SDC针对序列经启用,那么可针对序列中的CU在CU层级用信号表示另一语法元素以指示是否在每一相应的CU中使用SDC。如果此语法元素指示SDC针对序列停用,那么不需要针对序列中的CU在CU层级用信号表示语法元素,因为SDC停用。替代地,可提供语法元素以针对切片的图片中的CU启用或停用SDC的使用。Furthermore, in some examples, a single syntax element may be used to signal whether SDC is enabled or disabled for both deep intra prediction mode and deep inter prediction mode for CUs in an entire coded video sequence or slice. The syntax element may be presented, for example, in a video parameter set (VPS) extension, a sequence parameter set (SPS), a picture parameter set (PPS), a slice segment header, or another data structure used to signal video coding syntax information. As an example, if this syntax element indicates that SDC is enabled for a sequence, another syntax element may be signaled at the CU level for the CUs in the sequence to indicate whether SDC is used in each respective CU. If this syntax element indicates that SDC is disabled for the sequence, no syntax element needs to be signaled at the CU level for the CUs in the sequence because SDC is disabled. Alternatively, a syntax element may be provided to enable or disable the use of SDC for CUs in pictures of a slice.
在一个实例中,本发明提供一种对视频数据进行解码的方法,所述方法包括:接收指示简化深度译码(SDC)模式是否用于所述视频数据的深度译码单元(CU)的帧内预测和帧间预测两者的语法元素;当所述深度CU经帧内预测时,执行帧内预测以产生预测深度CU;当所述深度CU经帧间预测时,执行帧间预测以产生所述预测深度CU;当所述语法元素指示针对所述深度CU的预测单元(PU)的每一分区使用所述SDC模式时,接收表示所述深度CU的至少一个DC残余值的信息,其中所述至少一个DC残余值表示所述深度CU的所述PU的所述分区与所述预测深度CU的对应分区之间的像素差;以及使用所述至少一个DC残余值和所述预测深度CU重构所述深度CU。In one example, the present invention provides a method for decoding video data, the method comprising: receiving a syntax element indicating whether a simplified depth coding (SDC) mode is used for both intra prediction and inter prediction of a depth coding unit (CU) of the video data; when the depth CU is intra predicted, performing intra prediction to generate a predicted depth CU; when the depth CU is inter predicted, performing inter prediction to generate the predicted depth CU; when the syntax element indicates that the SDC mode is used for each partition of a prediction unit (PU) of the depth CU, receiving information representing at least one DC residual value of the depth CU, wherein the at least one DC residual value represents a pixel difference between the partition of the PU of the depth CU and a corresponding partition of the predicted depth CU; and reconstructing the depth CU using the at least one DC residual value and the predicted depth CU.
在另一实例中,本发明提供一种对视频数据进行编码的方法,所述方法包括:当深度CU经帧内预测时,执行帧内预测以产生预测深度CU;当所述深度CU经帧间预测时,执行帧间预测以产生所述预测深度CU;当使用简化深度译码(SDC)模式时,针对所述深度CU的预测单元(PU)的每一分区,产生表示所述深度CU的至少一个DC残余值的信息,其中所述至少一个DC残余值表示所述深度CU的所述PU的所述分区与所述预测深度CU的对应分区之间的像素差;当使用所述SDC模式时,产生指示所述SDC模式用于所述视频数据的深度译码单元(CU)的帧内预测和帧间预测两者的语法元素;以及基于表示所述至少一个DC残余值的所述信息和所述语法元素在所述视频编码器中对所述深度CU进行编码。In another example, the present invention provides a method for encoding video data, the method comprising: when a depth CU is intra-predicted, performing intra-prediction to generate a predicted depth CU; when the depth CU is inter-predicted, performing inter-prediction to generate the predicted depth CU; when a simplified depth coding (SDC) mode is used, for each partition of a prediction unit (PU) of the depth CU, generating information representing at least one DC residual value of the depth CU, wherein the at least one DC residual value represents a pixel difference between the partition of the PU of the depth CU and a corresponding partition of the predicted depth CU; when the SDC mode is used, generating a syntax element indicating that the SDC mode is used for both intra-prediction and inter-prediction of a depth coding unit (CU) of the video data; and encoding the depth CU in the video encoder based on the information representing the at least one DC residual value and the syntax element.
在另一实例中,本发明提供一种视频译码器,其包括:存储器,其存储视频数据;以及一或多个处理器,其经配置以:对指示简化深度译码(SDC)模式是否用于所述视频数据的深度译码单元(CU)的帧内预测和帧间预测两者的语法元素进行译码;当所述深度CU经帧内预测时,执行帧内预测以产生预测深度CU;当所述深度CU经帧间预测时,执行帧间预测以产生所述预测深度CU;以及当使用所述SDC模式时,针对所述深度CU的预测单元(PU)的每一分区,对表示所述深度CU的至少一个DC残余值的信息进行译码,其中所述至少一个DC残余值表示所述深度CU的所述PU的所述分区与所述预测深度CU的对应分区之间的像素差。In another example, the present invention provides a video decoder comprising: a memory that stores video data; and one or more processors configured to: decode a syntax element indicating whether a simplified depth coding (SDC) mode is used for both intra-frame prediction and inter-frame prediction of a depth coding unit (CU) of the video data; when the depth CU is intra-frame predicted, perform intra-frame prediction to generate a predicted depth CU; when the depth CU is inter-frame predicted, perform inter-frame prediction to generate the predicted depth CU; and when the SDC mode is used, decode information representing at least one DC residual value of the prediction unit (PU) of the depth CU for each partition of the depth CU, wherein the at least one DC residual value represents a pixel difference between the partition of the PU of the depth CU and a corresponding partition of the predicted depth CU.
在另一实例中,本发明提供一种对视频数据进行解码的方法,所述方法包括:当所述视频数据的深度译码单元(CU)经帧内预测时,执行帧内预测以产生预测深度CU;当所述深度CU经帧间预测时,执行帧间预测以产生所述预测深度CU;当使用简化深度译码(SDC)模式时,获得包括指示表示所述深度CU的预测单元(PU)的分区的至少一个DC残余值的信息的一或多个语法元素的语法结构,其中所述语法结构的所述语法元素针对所述帧内预测和所述帧间预测是相同的;以及使用所述至少一个DC残余值和所述预测深度CU重构所述深度CU。In another example, the present invention provides a method for decoding video data, the method comprising: when a depth coding unit (CU) of the video data is intra-predicted, performing intra-prediction to generate a predicted depth CU; when the depth CU is inter-predicted, performing inter-prediction to generate the predicted depth CU; when a simplified depth coding (SDC) mode is used, obtaining a syntax structure including one or more syntax elements indicating information of at least one DC residual value of a partition of a prediction unit (PU) representing the depth CU, wherein the syntax elements of the syntax structure are the same for the intra-prediction and the inter-prediction; and reconstructing the depth CU using the at least one DC residual value and the predicted depth CU.
在另一实例中,本发明提供一种对视频数据进行编码的方法,所述方法包括:当所述视频数据的深度译码单元(CU)经帧内预测时,执行帧内预测以产生预测深度CU;当所述深度CU经帧间预测时,执行帧间预测以产生所述预测深度CU;当使用简化深度译码(SDC)模式时,对包括指示表示所述深度CU的预测单元(PU)的分区的至少一个DC残余值的信息的一或多个语法元素的语法结构进行译码,其中所述语法结构的所述语法元素针对所述帧内预测和所述帧间预测是相同的;以及基于表示所述至少一个DC残余值的所述信息对所述深度CU进行编码。In another example, the present invention provides a method for encoding video data, the method comprising: when a depth coding unit (CU) of the video data is intra-predicted, performing intra-prediction to generate a predicted depth CU; when the depth CU is inter-predicted, performing inter-prediction to generate the predicted depth CU; when a simplified depth coding (SDC) mode is used, decoding a syntax structure including one or more syntax elements indicating information of at least one DC residual value of a partition of a prediction unit (PU) representing the depth CU, wherein the syntax elements of the syntax structure are the same for the intra-prediction and the inter-prediction; and encoding the depth CU based on the information representing the at least one DC residual value.
在另一实例中,本发明提供一种视频译码器,其包括:存储器,其存储视频数据;当所述视频数据的深度译码单元(CU)经帧内预测时,执行帧内预测以产生所述视频数据的预测深度CU;当所述深度CU经帧间预测时,执行帧间预测以产生所述视频数据的所述预测深度CU;以及当使用简化深度译码(SDC)模式时,对包括指示表示所述深度CU的预测单元(PU)的分区的至少一个DC残余值的信息的一或多个语法元素的语法结构进行译码,其中所述语法结构的所述语法元素针对所述帧内预测模式和所述帧间预测模式是相同的。In another example, the present invention provides a video decoder comprising: a memory that stores video data; when a depth coding unit (CU) of the video data is intra-predicted, performing intra-prediction to generate a predicted depth CU of the video data; when the depth CU is inter-predicted, performing inter-prediction to generate the predicted depth CU of the video data; and when a simplified depth coding (SDC) mode is used, decoding a syntax structure including one or more syntax elements indicating information of at least one DC residual value of a partition of a prediction unit (PU) representing the depth CU, wherein the syntax elements of the syntax structure are the same for the intra prediction mode and the inter prediction mode.
在另一实例中,本发明提供一种对视频数据进行解码的方法,所述方法包括:接收第一语法元素,所述第一语法元素指示简化深度译码(SDC)模式是否针对经译码视频数据的整个序列的深度译码单元(CU)经启用;接收第二语法元素,所述第二语法元素指示所述SDC模式是否用于所述序列的所述深度CU中的一者的帧内预测和帧间预测两者;当所述序列的所述深度CU中的所述一者经帧内预测时,执行帧内预测以产生预测深度CU;当所述序列的所述深度CU中的所述一者经帧间预测时,执行帧间预测以产生所述预测深度CU;当所述第二语法元素指示使用所述SDC模式时,获得表示用于所述序列的所述深度CU中的所述一者的预测单元(PU)的分区的至少一个DC残余值的信息;以及使用所述至少一个DC残余值和所述相应预测深度CU重构所述序列的所述深度CU中的所述一者的所述PU的所述分区。In another example, the present invention provides a method for decoding video data, the method comprising: receiving a first syntax element indicating whether a simplified depth coding (SDC) mode is enabled for depth coding units (CUs) of an entire sequence of coded video data; receiving a second syntax element indicating whether the SDC mode is used for both intra prediction and inter prediction of one of the depth CUs of the sequence; when the one of the depth CUs of the sequence is intra predicted, performing intra prediction to generate a predicted depth CU; when the one of the depth CUs of the sequence is inter predicted, performing inter prediction to generate the predicted depth CU; when the second syntax element indicates the use of the SDC mode, obtaining information representing at least one DC residual value of a partition of a prediction unit (PU) of the one of the depth CUs of the sequence; and reconstructing the partition of the PU of the one of the depth CUs of the sequence using the at least one DC residual value and the corresponding predicted depth CU.
在另一实例中,本发明提供一种对视频数据进行编码的方法,所述方法包括:对指示简化深度译码(SDC)模式是否针对经译码视频数据的整个序列的深度译码单元(CU)经启用的语法元素进行编码;对指示所述SDC模式是否用于所述序列的所述深度CU中的一者的帧内预测和帧间预测两者的第二语法元素进行编码;当所述序列的所述深度CU中的一者经帧内预测时,执行帧内预测以产生预测深度CU;当所述序列的所述深度CU中的一者经帧间预测时,执行帧间预测以产生所述预测深度CU;以及当所述第二语法元素指示使用所述SDC模式时,对表示用于所述序列的所述深度CU中的所述一者的预测单元(PU)的分区的至少一个DC残余值的信息进行编码。In another example, the present invention provides a method for encoding video data, the method comprising: encoding a syntax element indicating whether a simplified depth coding (SDC) mode is enabled for depth coding units (CUs) of an entire sequence of coded video data; encoding a second syntax element indicating whether the SDC mode is used for both intra-prediction and inter-prediction of one of the depth CUs of the sequence; when one of the depth CUs of the sequence is intra-predicted, performing intra-prediction to generate a predicted depth CU; when one of the depth CUs of the sequence is inter-predicted, performing inter-prediction to generate the predicted depth CU; and when the second syntax element indicates that the SDC mode is used, encoding information representing at least one DC residual value of a partition of a prediction unit (PU) for the one of the depth CUs of the sequence.
在另一实例中,本发明提供一种视频译码器,其包括:存储器,其存储视频数据;以及一或多个处理器,其经配置以:对指示简化深度译码(SDC)模式是否针对所述视频数据的整个码序列的深度译码单元(CU)经启用的语法元素进行译码;对指示所述SDC模式是否用于所述序列的所述深度CU中的一者的帧内预测和帧间预测两者的第二语法元素进行译码;当所述序列的所述深度CU中的一者经帧内预测时,执行帧内预测以产生预测深度CU;当所述序列的所述深度CU中的一者经帧间预测时,执行帧间预测以产生所述预测深度CU;以及当所述第二语法元素指示使用所述SDC模式时,对表示用于所述序列的所述深度CU中的所述一者的预测单元(PU)的分区的至少一个DC残余值的信息进行译码。In another example, the present invention provides a video decoder comprising: a memory that stores video data; and one or more processors configured to: decode a syntax element indicating whether a simplified depth coding (SDC) mode is enabled for depth coding units (CUs) of an entire code sequence of the video data; decode a second syntax element indicating whether the SDC mode is used for both intra-frame prediction and inter-frame prediction of one of the depth CUs of the sequence; when one of the depth CUs of the sequence is intra-frame predicted, perform intra-frame prediction to generate a predicted depth CU; when one of the depth CUs of the sequence is inter-frame predicted, perform inter-frame prediction to generate the predicted depth CU; and when the second syntax element indicates the use of the SDC mode, decode information representing at least one DC residual value of a partition of a prediction unit (PU) for the one of the depth CUs of the sequence.
在附图和以下描述中阐述本发明的一或多个方面的细节。本发明中所描述的技术的其它特征、目标及优点将从描述及图式且从权利要求书而显而易见。The details of one or more aspects of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the techniques described in this disclosure 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 coding system that may utilize the techniques of this disclosure.
图2是说明在高效率视频译码(HEVC)中使用的帧内预测模式的图。2 is a diagram illustrating intra prediction modes used in High Efficiency Video Coding (HEVC).
图3是说明用于对像素样本的8x8块进行译码的一个楔波分区模式的实例的图。3 is a diagram illustrating an example of one Wedgelet partitioning mode for coding an 8x8 block of pixel samples.
图4是说明用于对像素样本的8x8块进行译码的一个轮廓分区模式的实例的图。4 is a diagram illustrating an example of one silhouette partition mode for coding an 8x8 block of pixel samples.
图5是说明可实施本发明的技术的实例视频编码器的框图。5 is a block diagram illustrating an example video encoder that may implement the techniques of this disclosure.
图6是说明可实施本发明的技术的实例视频解码器的框图。6 is a block diagram illustrating an example video decoder that may implement the techniques of this disclosure.
图7是说明对语法元素进行编码以指示用于CU深度帧内预测和深度帧间预测模式两者的SDC使用的流程图。7 is a flow diagram illustrating encoding syntax elements to indicate SDC usage for both depth intra prediction and depth inter prediction modes for a CU.
图8是说明对语法元素进行解码以指示用于CU的深度帧内预测和深度帧间预测模式两者的SDC使用的流程图。8 is a flow diagram illustrating use of SDC to decode syntax elements to indicate both depth intra prediction and depth inter prediction modes for a CU.
图9是说明对语法元素进行解码以指示SDC是否针对整个经编码视频序列中的深度CU经启用或停用的流程图。9 is a flowchart illustrating decoding a syntax element to indicate whether SDC is enabled or disabled for depth CUs in an entire encoded video sequence.
图10是说明对单个语法结构进行解码以获得用于帧内预测和帧间预测模式的CU的PU分区的SDC残余数据的流程图。10 is a flow diagram illustrating decoding a single syntax structure to obtain SDC residual data for PU partitions of a CU for intra prediction and inter prediction modes.
图11是说明在解码器侧使用对SDC译码的实例约束的流程图。11 is a flow diagram illustrating the use of example constraints on SDC coding at the decoder side.
图12是说明在解码器侧使用对SDC译码的另一实例约束的流程图。12 is a flow diagram illustrating the use of another example constraint on SDC coding at the decoder side.
具体实施方式DETAILED DESCRIPTION
本发明涉及3D视频译码过程中的深度译码模式,例如HEVC的3D-HEVC扩展。更具体来说,本发明描述其中应用于深度帧内预测和深度帧间预测模式的SDC的信令是统一的技术。在一些情况下,SDC可替代地称为简化残余译码或逐片段DC译码。简化深度译码、简化残余译码和逐片段DC译码将在本文中被称作简化深度译码(SDC)。在任何情况下,如本发明中所描述,SDC可通过统一信令技术应用于深度帧内和深度帧间译码。This disclosure relates to depth coding modes in 3D video coding processes, such as the 3D-HEVC extension of HEVC. More specifically, this disclosure describes techniques in which the signaling of SDC applied to depth intra prediction and depth inter prediction modes is unified. In some cases, SDC may alternatively be referred to as simplified residual coding or slice-by-slice DC coding. Simplified depth coding, simplified residual coding, and slice-by-slice DC coding will be referred to herein as simplified depth coding (SDC). In any case, as described in this disclosure, SDC can be applied to depth intra and depth inter coding through a unified signaling technique.
在3D-HEVC中,使用帧内SDC和帧间SDC模式两者。然而,在SDC的当前设计中,使用不同语法元素和上下文模型来指示在3D-HEVC中帧内SDC和帧间SDC的使用,其使得译码单元的剖析过程更复杂。在一些实例中,本发明中描述的技术可部分地通过统一用于帧内SDC和帧间SDC的语法和上下文而解决此问题。In 3D-HEVC, both intra and inter SDC modes are used. However, in the current design of SDC, different syntax elements and context models are used to indicate the use of intra and inter SDC in 3D-HEVC, which makes the parsing process of decoding units more complicated. In some examples, the techniques described in this disclosure can partially address this issue by unifying the syntax and context for intra and inter SDC.
在SDC中,一般来说,视频编码器针对深度译码单元(CU)的预测单元(PU)的每一分区仅编码一个残余。因此,在SDC中,视频编码器可针对与PU的分区相关联的像素的集合对一个残余值(例如,DC残余值)进行编码。PU可属于经帧内译码深度CU或经帧间译码深度CU。In SDC, in general, the video encoder encodes only one residual for each partition of a prediction unit (PU) of a depth coding unit (CU). Thus, in SDC, the video encoder may encode one residual value (e.g., a DC residual value) for a set of pixels associated with the partition of the PU. A PU may belong to an intra-coded depth CU or an inter-coded depth CU.
对于PU的每一分区,并非对分区中的每一像素的差进行译码,视频编码器20可确定原始信号的平均值(即,一个待译码块的分区中的像素的平均值)与预测信号的平均值(即,预测性块的对应分区中的选定像素样本的平均值)之间的差,使用此差作为所述PU中的全部像素的DC残余,且向视频解码器用信号表示此残余值。For each partition of a PU, instead of coding the difference for each pixel in the partition, video encoder 20 may determine the difference between the mean of the original signal (i.e., the mean of the pixels in the partition of one block to be coded) and the mean of the prediction signal (i.e., the mean of selected pixel samples in the corresponding partition of the predictive block), use this difference as the DC residual for all pixels in the PU, and signal this residual value to the video decoder.
深度值可使用深度查找表(DLT)任选地映射到索引,所述DLT可通过分析在对全视频序列进行编码之前的第一帧内周期内的帧而构造。如果使用DLT,那么DLT可例如在序列参数集(SPS)或其它语法结构中由视频编码器发射到视频解码器,且经解码索引值可由视频解码器基于DLT而映射回到深度值。通过使用DLT,可观测到进一步译码增益。Depth values can optionally be mapped to indices using a depth lookup table (DLT), which can be constructed by analyzing frames in the first intra period before encoding the full video sequence. If a DLT is used, the DLT can be transmitted from the video encoder to the video decoder, for example, in a sequence parameter set (SPS) or other syntax structure, and the decoded index value can be mapped back to the depth value by the video decoder based on the DLT. By using the DLT, further coding gains can be observed.
可在译码单元(CU)层级执行帧内和帧间预测模式信令。类似地,可在CU层级用信号表示SDC模式的使用的指示。然而,当一个CU(经帧内译码或经帧间译码)是以SDC模式译码时,其可分裂成若干预测单元(PU)。每一PU可进一步分裂成若干分区。对于SDC模式,可针对CU的每一PU的每一分区用信号表示DC残余值。即,可针对CU中的PU的多个相应分区提供多个DC残余值。Intra- and inter-prediction mode signaling can be performed at the coding unit (CU) level. Similarly, the use of SDC mode can be signaled at the CU level. However, when a CU (intra- or inter-coded) is coded in SDC mode, it can be split into several prediction units (PUs). Each PU can be further split into several partitions. For SDC mode, a DC residual value can be signaled for each partition of each PU of the CU. That is, multiple DC residual values can be provided for multiple corresponding partitions of the PUs in the CU.
对于如上文所描述的在SDC模式中的残余的信令,对于每一分区,视频编码器可在经编码位流中用信号表示当前分区及其预测符的代表性值的差。在一些实例中,可用信号表示所述差而无需所述差的变换和量化。取决于是否使用DLT可使用两个不同方法用信号表示所述残余。当未使用DLT时,直接发射(例如,作为DC残余值)具有正负号的当前分区及其预测符的代表性值之间的差量。当使用DLT时,并非直接用信号表示深度值的差,可用信号表示DLT索引的差,即,当前分区的代表性值的DLT索引与预测符的DLT索引之间的差。For signaling of the residual in SDC mode as described above, for each partition, the video encoder may signal in the encoded bitstream the difference between the representative value of the current partition and its predictor. In some examples, the difference may be signaled without transforming and quantizing the difference. Two different methods may be used to signal the residual, depending on whether DLT is used. When DLT is not used, the difference between the representative values of the current partition and its predictor is transmitted directly (e.g., as a DC residual value) with a sign. When DLT is used, rather than directly signaling the difference in depth values, the difference in DLT indices may be signaled, i.e., the difference between the DLT index of the representative value of the current partition and the DLT index of the predictor.
在用于SDC的现有设计中,可使用不同语法元素和上下文模型来指示在3D-HEVC中使用SDC分别用于深度帧内预测模式和深度帧间预测模式。在3D-HEVC中,使用不同语法元素来指示使用SDC用于深度帧内预测模式和深度帧间预测模式使得用于译码单元(CU)的剖析过程在解码器侧较复杂。In existing designs for SDC, different syntax elements and context models may be used to indicate the use of SDC for depth intra prediction mode and depth inter prediction mode in 3D-HEVC. In 3D-HEVC, the use of different syntax elements to indicate the use of SDC for depth intra prediction mode and depth inter prediction mode makes the parsing process for coding units (CUs) more complex at the decoder side.
如上文所论述,可针对每一深度CU执行帧内和帧间预测模式信令,同时也在CU层级用信号表示SDC模式的使用的指示。根据各种实例,本发明描述用于在例如3D-HEVC等3D视频译码过程中统一用于深度帧内预测和深度帧间预测模式的SDC的信令的技术。并非单独地用信号表示用于经帧内预测CU和经帧间预测CU的SDC的使用,可提供单个SDC语法元素以指示使用SDC用于CU,无论所述CU是否经帧内或经帧间预测。所述技术可由视频编码器和/或视频解码器(即,视频译码器)执行以统一3D视频译码中用于深度帧内预测和深度帧间预测模式的SDC的信令。根据本发明可统一3D视频译码过程中用于深度帧内和深度帧间预测模式的SDC的信令,所述SDC在本文可被称为简化深度译码、简化残余译码或逐片段DC译码。下文描述用于统一SDC信令的技术的各种方面。As discussed above, intra- and inter-prediction mode signaling may be performed for each depth CU, while also signaling an indication of the use of SDC mode at the CU level. According to various examples, this disclosure describes techniques for unifying the signaling of SDC for depth intra prediction and depth inter prediction modes in a 3D video coding process, such as 3D-HEVC. Rather than separately signaling the use of SDC for intra-predicted and inter-predicted CUs, a single SDC syntax element may be provided to indicate the use of SDC for a CU, regardless of whether the CU is intra- or inter-predicted. The techniques may be performed by a video encoder and/or a video decoder (i.e., a video decoder) to unify the signaling of SDC for depth intra prediction and depth inter prediction modes in 3D video coding. According to this disclosure, the signaling of SDC for depth intra and depth inter prediction modes in a 3D video coding process may be unified, which may be referred to herein as simplified depth coding, simplified residual coding, or slice-by-slice DC coding. Various aspects of the techniques for unifying SDC signaling are described below.
在一些实例中,在深度译码中,视频译码器可使用仅一个语法元素(例如,sdc_flag)来指示用于深度帧内或深度帧间模式的SDC的使用。举例来说,视频编码器可使用同一SDC语法元素(例如,sdc_flag)来用信号表示使用SDC用于深度帧内预测和深度帧间预测模式两者。视频解码器可处理同一语法元素(例如,sdc_flag)以确定SDC是否将用于深度帧内预测和深度帧间预测模式。如果所述语法元素指示将使用SDC,那么SDC将用于CU以用于深度帧内预测或深度帧间预测。以此方式,不必用信号表示不同语法元素来分别指示用于深度帧内预测和深度帧间预测的SDC使用。而是,单个语法元素指示无论哪一个模式(帧内或帧间)SDC使用都用于CU。用于帧内和帧间预测两者的一个语法元素的信令可减少信令开销,促进计算效率且可能减少存储器要求。In some examples, in depth coding, the video coder may use only one syntax element (e.g., sdc_flag) to indicate the use of SDC for depth intra or depth inter mode. For example, the video encoder may use the same SDC syntax element (e.g., sdc_flag) to signal the use of SDC for both depth intra prediction and depth inter prediction modes. The video decoder may process the same syntax element (e.g., sdc_flag) to determine whether SDC will be used for depth intra prediction and depth inter prediction modes. If the syntax element indicates that SDC will be used, then SDC will be used for the CU for depth intra prediction or depth inter prediction. In this way, it is not necessary to signal different syntax elements to indicate the use of SDC for depth intra prediction and depth inter prediction, respectively. Instead, a single syntax element indicates that SDC use is used for the CU regardless of which mode (intra or inter). Signaling one syntax element for both intra and inter prediction can reduce signaling overhead, improve computational efficiency, and potentially reduce memory requirements.
举例来说,视频译码器可使用同一语法元素来用信号表示使用SDC用于深度帧内预测和深度帧间预测两者,而不是使用不同语法元素用于单独地用信号表示使用SDC用于深度帧内预测和深度帧间预测。因此,如果使用例如sdc_flag等单个语法元素,那么可移除指示当前译码单元(CU)利用SDC用于深度帧间预测模式的单独语法元素,例如inter_sdc_flag。同样,也可移除指示当前CU利用SDC用于深度帧内预测模式的语法元素。因此,无论当前CU是否是以深度帧内预测模式或深度帧间预测模式译码,都引入例如呈例如sdc_flag的旗标的形式的新语法元素。当此旗标等于1时,针对深度帧内预测模式或深度帧间预测两者启用SDC。For example, a video coder can use the same syntax element to signal the use of SDC for both deep intra prediction and deep inter prediction, rather than using different syntax elements for separately signaling the use of SDC for deep intra prediction and deep inter prediction. Thus, if a single syntax element such as sdc_flag is used, a separate syntax element such as inter_sdc_flag indicating that the current coding unit (CU) utilizes SDC for deep inter prediction mode can be removed. Similarly, the syntax element indicating that the current CU utilizes SDC for deep intra prediction mode can also be removed. Thus, a new syntax element, such as a flag such as sdc_flag, is introduced, regardless of whether the current CU is coded in deep intra prediction mode or deep inter prediction mode. When this flag is equal to 1, SDC is enabled for both deep intra prediction mode or deep inter prediction.
并且,在一些实例中,在深度译码中,当使用SDC对当前深度CU进行译码时,对于每一分区,表示用于经深度帧间译码CU或经深度帧内译码CU的每一PU的每一分区的DC残余值的DC残余信息可在其可由一个SDC残余语法结构直接或通过使用DLT索引值而呈现的意义上统一,所述SDC残余语法结构包含指示DC残余值的绝对值及其正负号的信息。举例来说,视频译码器可针对以深度帧内预测或深度帧间预测模式译码的CU中的PU的分区两者使用相同语法结构或相同类型的语法结构存储和/或检索在SDC模式中产生的残余值。举例来说,针对深度帧内预测且深度帧间预测模式两者,视频编码器可产生含有深度CU的PU的分区的残余值的语法结构,且视频解码器可从此语法结构获得深度CU的PU的分区的残余值。因此,用以用信号表示SDC的语法元素和语法结构可针对深度帧内和帧间译码而统一。Furthermore, in some examples, in depth coding, when SDC is used to code the current depth CU, for each partition, the DC residual information representing the DC residual value for each partition of each PU of a depth inter-coded CU or a depth intra-coded CU may be unified in the sense that it may be presented by one SDC residual syntax structure, either directly or by using a DLT index value, wherein the SDC residual syntax structure includes information indicating the absolute value and sign of the DC residual value. For example, the video coder may use the same syntax structure or the same type of syntax structure to store and/or retrieve residual values generated in SDC mode for partitions of PUs in a CU coded in depth intra prediction or depth inter prediction mode. For example, for both depth intra prediction and depth inter prediction modes, the video encoder may generate a syntax structure containing residual values for partitions of PUs of the depth CU, and the video decoder may obtain the residual values for the partitions of PUs of the depth CU from this syntax structure. Thus, the syntax elements and syntax structures used to signal SDC may be unified for depth intra and inter coding.
或者或另外,如果深度CU经帧内译码且利用SDC,那么指示当前CU是否在任何其分区中含有任何非零DC残余值的旗标(等于1)可进一步由视频编码器用信号表示且由视频解码器处理。如果此旗标是0,那么视频编码器不用信号表示DC残余值,且视频解码器推断DC残余值针对每一分区等于零。Alternatively or additionally, if the depth CU is intra-coded and utilizes SDC, a flag (equal to 1) indicating whether the current CU contains any non-zero DC residual values in any of its partitions may be further signaled by the video encoder and processed by the video decoder. If this flag is 0, the video encoder does not signal a DC residual value, and the video decoder infers that the DC residual value is equal to zero for each partition.
作为另一替代方案或另外,指示当前CU是否在任何其PU分区中含有任何非零DC残余值的旗标可应用于经帧内译码和经帧间译码CU两者。确切地说,如果所述旗标等于1,那么视频解码器确定在适用时存在用于经帧内译码CU和经帧间译码CU两者的非零DC残余值。因此,此旗标可与如上文所描述用以呈现经帧内译码CU或经帧间译码CU的PU的分区的DC残余值的相同语法结构或相同类型的语法结构一起使用。As another alternative or in addition, a flag indicating whether the current CU contains any non-zero DC residual values in any of its PU partitions may be applied to both intra-coded and inter-coded CUs. Specifically, if the flag is equal to 1, the video decoder determines that non-zero DC residual values exist for both intra-coded and inter-coded CUs, as applicable. Thus, this flag may be used with the same syntax structure or the same type of syntax structure as described above for presenting DC residual values for partitions of PUs of an intra-coded CU or an inter-coded CU.
作为另一替代或添加,指示当前CU是否在任何其分区中含有任何非零DC残余值的此旗标可不与用以呈现经帧内译码CU和经帧间译码CU的DC残余值的语法结构一起使用。在此情况下,相同语法结构或相同类型的语法结构可以用于经帧内译码CU和经帧间译码CU,如上文所描述,但用信号表示DC残余值而无需使用指示当前CU是否在任何其分区中含有任何非零DC残余值的旗标。As another alternative or addition, this flag indicating whether the current CU contains any non-zero DC residual value in any of its partitions may not be used with the syntax structure used to present DC residual values for intra-coded CUs and inter-coded CUs. In this case, the same syntax structure or the same type of syntax structure may be used for intra-coded CUs and inter-coded CUs, as described above, but the DC residual value is signaled without the need to use a flag indicating whether the current CU contains any non-zero DC residual value in any of its partitions.
在一些实例中,因为用于深度帧内预测和深度帧间预测模式中的SDC的DC残余值的语法结构共享相同语法元素,所以用于对相关语法元素进行熵译码(例如,上下文自适应二进制算术译码(CABAC))的上下文模型和二进制化过程也可以统一,即,同一上下文模型可以用于指示SDC使用或包含用于CU的深度帧内预测和深度帧间预测模式的DC残余值的语法元素。因此,针对通过用于深度帧内和帧间译码模式两者的SDC产生的残余值使用相同语法元素和/或语法结构可促进具体来说熵译码中的减少的计算复杂性。举例来说,用于用信号表示SDC的语法元素可以用于深度帧内预测模式和深度帧间预测模式两者的相同上下文模型和/或二进制化过程来译码。并且,载运指示表示通过SDC产生的残余值的信息的语法元素的语法结构也可以通过用于帧内预测和帧间预测的相同内容模型和/或二进制化过程来熵译码。例如在3D-HEVC译码中使用相同上下文模型用于深度帧内预测和深度帧间预测模式可尤其在解码器侧减少与熵译码相关联的计算负担和存储器要求。In some examples, because the syntax structure for the DC residual value of SDC in deep intra prediction and deep inter prediction modes shares the same syntax elements, the context model and binarization process used for entropy coding of related syntax elements (e.g., context-adaptive binary arithmetic coding (CABAC)) can also be unified. That is, the same context model can be used for syntax elements indicating that SDC uses or includes the DC residual value for both deep intra prediction and deep inter prediction modes of a CU. Therefore, using the same syntax elements and/or syntax structure for residual values generated by SDC for both deep intra and inter coding modes can facilitate reduced computational complexity in entropy coding, in particular. For example, syntax elements used to signal SDC can be coded using the same context model and/or binarization process for both deep intra prediction and deep inter prediction modes. Furthermore, the syntax structure carrying syntax elements indicating information representing residual values generated by SDC can also be entropy coded using the same context model and/or binarization process for intra and inter prediction. Using the same context model for depth intra prediction and depth inter prediction modes, such as in 3D-HEVC coding, may reduce the computational burden and memory requirements associated with entropy coding, especially at the decoder side.
作为另一实例,即使用于深度帧内模式和深度帧间模式的SDC信令可使用相同语法结构用于DC残余值,视频编码器和解码器也可经配置以使用同一语法结构的不同实例分别用于深度帧内译码和深度帧间译码。语法结构的每一实例可包含相同语法元素或相同类型的语法元素和相同结构以用信号表示SDC使用和DC残余值,但语法结构的实例可针对深度帧内预测和深度帧间预测模式单独地用信号表示此些语法元素的值,例如,用于深度帧内预测的语法结构的一个实例和用于深度帧间预测的语法结构的一个实例。因此,在此实例中,视频编码器和/或视频解码器可使用相同的上下文和/或二进制化过程用于相同语法结构的不同实例的熵译码(例如,CABAC译码),或可针对深度帧内预测和深度帧间预测模式中的SDC使用单独地维持用于语法结构的不同实例的熵译码(例如,CABAC译码)的上下文和/或二进制化过程。在一些实例中,可以旗标sdc_flag用信号表示用于帧内或帧间模式的CU的SDC使用。在指示每一分区的DC残余的语法结构中,在一些实例中,可以由depth_dc_abs指示的量值和由depth_dc_sign_flag指示的正负号来用信号表示DC残余值。As another example, even though SDC signaling for deep intra mode and deep inter mode may use the same syntax structure for the DC residual value, the video encoder and decoder may be configured to use different instances of the same syntax structure for deep intra coding and deep inter coding, respectively. Each instance of the syntax structure may include the same syntax elements, or the same type of syntax elements and the same structure, to signal SDC usage and DC residual values, but an instance of the syntax structure may signal the values of these syntax elements separately for deep intra prediction and deep inter prediction modes, e.g., one instance of the syntax structure for deep intra prediction and one instance of the syntax structure for deep inter prediction. Thus, in this example, the video encoder and/or video decoder may use the same context and/or binarization process for entropy coding (e.g., CABAC coding) for different instances of the same syntax structure, or may maintain the context and/or binarization process for entropy coding (e.g., CABAC coding) for different instances of the syntax structure separately for SDC usage in deep intra prediction and deep inter prediction modes. In some examples, SDC usage for CUs in intra or inter mode may be signaled by flag sdc_flag.In the syntax structure indicating the DC residual for each partition, in some examples, the DC residual value may be signaled by a magnitude indicated by depth_dc_abs and a sign indicated by depth_dc_sign_flag.
在根据本发明的一些实例中,视频解码器可经配置以应用约束以使得当使用SDC时停用脉码调制(PCM)译码。举例来说,可应用在解码器侧的约束以使得例如针对给定深度CU当sdc_flag等于1时pcm_flag将不等于1。当针对CU的深度帧内和深度帧间预测模式两者启用SDC时,PCM不用于所述CU。因此,此约束防止当指示SDC的使用的语法元素(sdc_flag)等于1时解码器启用PCM。In some examples according to the present disclosure, a video decoder may be configured to apply a constraint such that pulse code modulation (PCM) coding is disabled when SDC is used. For example, a constraint may be applied at the decoder side such that, for example, pcm_flag will not be equal to 1 when sdc_flag is equal to 1 for a given depth CU. When SDC is enabled for both depth intra and depth inter prediction modes of a CU, PCM is not used for that CU. Thus, this constraint prevents the decoder from enabling PCM when the syntax element indicating the use of SDC (sdc_flag) is equal to 1.
并且,在一些实例中,视频解码器可对SDC应用约束以使得仅针对具有特定分区大小或特定范围的分区大小的译码单元,SDC用于深度帧内预测和深度帧间预测模式两者。举例来说,视频解码器可在解码器侧对SDC应用约束以使得帧内SDC模式和帧间SDC模式两者仅用于具有2Nx2N分区大小的CU。作为一个替代方案,视频解码器可应用约束以使得帧内SDC模式用于具有2Nx2N和NxN分区大小的CU。因此,在一个实例中,SDC可以用于仅用于2Nx2N分区大小的深度帧内预测和深度帧间预测。在另一实例中,SDC可以用于仅用于2Nx2N分区大小的深度帧间预测,但SDC可以用于仅用于2Nx2N和NxN分区大小的深度帧内预测。Furthermore, in some examples, the video decoder may apply constraints to SDC such that SDC is used for both deep intra prediction and deep inter prediction modes only for coding units with a specific partition size or a specific range of partition sizes. For example, the video decoder may apply constraints to SDC at the decoder side such that both intra SDC mode and inter SDC mode are used only for CUs with a 2Nx2N partition size. As an alternative, the video decoder may apply constraints such that intra SDC mode is used for CUs with 2Nx2N and NxN partition sizes. Thus, in one example, SDC can be used for deep intra prediction and deep inter prediction only for a 2Nx2N partition size. In another example, SDC can be used for deep inter prediction only for a 2Nx2N partition size, but SDC can be used for deep intra prediction only for 2Nx2N and NxN partition sizes.
在一些实例中,视频编码器和/或视频解码器可经配置以使用单个语法元素,例如一位旗标或多位语法元素,来在例如用于整个经译码视频序列的解码过程中针对深度帧内预测和深度帧间预测模式两者启用和停用SDC。举例来说,此语法元素可在视频参数集(VPS)扩展、序列参数集(SPS)、图片参数集(PPS)、切片片段标头或另一数据结构中经译码,以指示SDC是否针对深度帧内预测和深度帧间预测模式两者经启用。在此实例中,所述单个语法元素指示SDC是否针对用于经译码视频序列的深度帧内和深度帧间模式两者经启用。在另一实例中,作为一个替代方案,视频编码器和/或视频解码器可对一个旗标进行译码以指示SDC是否针对深度帧内模式经启用针对整个经译码视频序列经启用,并且如果这是真的,那么另外对另一旗标进行译码以指示SDC是否针对用于整个经译码视频序列或整个切片的深度帧间模式经启用。在此实例中,使用一个语法元素来针对经译码视频序列启用或停用SDC。如果SDC经启用,那么编码器可用信号表示另一语法元素(例如,sdc_flag)以指示用于经译码视频序列内的CU的CU层级处使用SDC。如果SDC停用,那么编码器不用信号表示指示在CU层级处SDC的使用的语法元素,且解码器不接收此语法元素。In some examples, a video encoder and/or video decoder may be configured to use a single syntax element, such as a one-bit flag or a multi-bit syntax element, to enable and disable SDC for both deep intra prediction and deep inter prediction modes during the decoding process, for example, for the entire coded video sequence. For example, this syntax element may be coded in a video parameter set (VPS) extension, a sequence parameter set (SPS), a picture parameter set (PPS), a slice segment header, or another data structure to indicate whether SDC is enabled for both deep intra prediction and deep inter prediction modes. In this example, the single syntax element indicates whether SDC is enabled for both deep intra and deep inter modes for the coded video sequence. In another example, as an alternative, the video encoder and/or video decoder may code one flag to indicate whether SDC is enabled for deep intra mode for the entire coded video sequence and, if so, additionally code another flag to indicate whether SDC is enabled for deep inter mode for the entire coded video sequence or the entire slice. In this example, one syntax element is used to enable or disable SDC for a coded video sequence. If SDC is enabled, the encoder may signal another syntax element (e.g., sdc_flag) to indicate the use of SDC at the CU level for CUs within the coded video sequence. If SDC is disabled, the encoder does not signal a syntax element indicating the use of SDC at the CU level, and the decoder does not receive this syntax element.
在一些实例中,可提供旗标(例如,SdcEnableFlag)以指示SDC是否经启用。所述旗标可具有随着VPS、SPS、PPS或切片标头中的对应值而变的值。可部分地确定SdcEnableFlag的值的VPS语法元素的实例包含vps_inter_sdc_flag和vps_depth_modes_flag。语法元素(sdc_flag)随后可指示SDC是否用于CU。下文提供这些语法元素的实例。在VPS、SPS、PPS或切片片段标头中可提供相似语法元素以在适用时针对整个码视频序列、图片或切片启用和停用SDC。In some examples, a flag (e.g., SdcEnableFlag) may be provided to indicate whether SDC is enabled. The flag may have a value that varies with the corresponding value in the VPS, SPS, PPS, or slice header. Examples of VPS syntax elements that may partially determine the value of SdcEnableFlag include vps_inter_sdc_flag and vps_depth_modes_flag. A syntax element (sdc_flag) may then indicate whether SDC is used for a CU. Examples of these syntax elements are provided below. Similar syntax elements may be provided in the VPS, SPS, PPS, or slice segment header to enable and disable SDC for an entire coded video sequence, picture, or slice, as applicable.
图1是说明如本发明中所描述可经配置以利用本发明的各种技术用于用信号表示用于深度帧内预测模式和深度帧间预测模式的SDC的实例视频编码和解码系统10的框图。在一些实例中,系统10的视频编码器20和/或视频解码器30可经配置以在例如3D-HEVC的3D视频译码过程中执行统一用于深度帧内预测和深度帧间预测模式的SDC的信令的技术。1 is a block diagram illustrating an example video encoding and decoding system 10 that may be configured to utilize various techniques of this disclosure for signaling SDCs for depth intra prediction mode and depth inter prediction mode, as described in this disclosure. In some examples, video encoder 20 and/or video decoder 30 of system 10 may be configured to perform techniques for unifying the signaling of SDCs for depth intra prediction and depth inter prediction modes in a 3D video coding process, such as 3D-HEVC.
如图1中所展示,系统10包含源装置12,其提供待在稍后时间由目的地装置14解码的经编码视频数据。具体地说,源装置12经由计算机可读媒体16将视频数据提供到目的地装置14。源装置12及目的地装置14可包括广泛范围的装置中的任一者,包含桌上型计算机、笔记型(即,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话的电话手持机、所谓的“智能”板、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置或类似者。在一些情况下,可装备源装置12和目的地装置14以用于无线通信。1 , system 10 includes a source device 12 that provides encoded video data to be decoded at a later time by a destination device 14. Specifically, source device 12 provides the video data to destination device 14 via a computer-readable medium 16. Source device 12 and destination device 14 may comprise any of a wide range of devices, including desktop computers, notebook (i.e., laptop) computers, tablet computers, set-top boxes, telephone handsets such as so-called "smart" phones, so-called "smart" pads, televisions, cameras, display devices, digital media players, video game consoles, video streaming devices, or the like. In some cases, source device 12 and destination device 14 may be equipped for wireless communication.
目的地装置14可经由计算机可读媒体16接收待解码的经编码的视频数据。计算机可读媒体16可以包括能够将经编码视频数据从源装置12移动到目的地装置14的任何类型的媒体或装置。在一个实例中,计算机可读媒体16可包括通信媒体,例如发射信道,以使源装置12能够实时地将经编码视频数据直接发射到目的地装置14。Destination device 14 may receive the encoded video data to be decoded via computer-readable medium 16. Computer-readable medium 16 may comprise any type of medium or device capable of moving the encoded video data from source device 12 to destination device 14. In one example, computer-readable medium 16 may comprise a communication medium, such as a transmission channel, to enable source device 12 to transmit encoded video data directly to destination device 14 in real-time.
可根据通信标准(例如,无线通信协议)调制经编码的视频数据,并将其发射到目的地装置14。通信媒体可包括任何无线或有线通信媒体,例如射频(RF)频谱或一或多个物理传输线。通信媒体可形成分组网络(例如,局域网、广域网或全球网络,例如因特网)的部分。通信媒体可包含路由器、交换器、基站或任何其它可用于促进从源装置12到目的地装置14的通信的设备。The encoded video data may be modulated according to a communication standard, such as a wireless communication protocol, and transmitted to destination device 14. The communication medium may comprise any wireless or wired communication medium, such as a radio frequency (RF) spectrum or one or more physical transmission lines. The communication medium may form part of a packet network, such as a local area network, a wide area network, or a global network, such as the Internet. The communication medium 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.
在一些实例中,经编码数据可从输出接口22输出到计算机可读存储媒体,例如非暂时性计算机可读存储媒体,即数据存储装置。类似地,经编码数据可由输入接口从存储装置存取。存储装置可包含多种分布式或本地存取的非暂时性数据存储媒体中的任一者,例如硬盘驱动器、蓝光光盘、DVD、CD-ROM、快闪存储器、易失性或非易失性存储器或任何其它用于存储经编码的视频数据的合适的数字存储媒体。在另一实例中,存储装置可对应于文件服务器或另一可存储源装置12产生的经编码视频的中间存储装置。In some examples, the encoded data may be output from output interface 22 to a computer-readable storage medium, such as a non-transitory computer-readable storage medium, i.e., a data storage device. Similarly, the encoded data may be accessed from a storage device by input interface 22. The storage device may include any of a variety of distributed or locally accessed non-transitory data storage media, such as a hard drive, a Blu-ray disc, a DVD, a CD-ROM, flash memory, volatile or non-volatile memory, or any other suitable digital storage medium for storing encoded video data. In another example, the storage device may correspond to a file server or another intermediate storage device that can store the encoded video generated by source device 12.
目的地装置14可经由流式传输或下载从存储装置存取所存储的视频数据。文件服务器可为能够存储经编码视频数据且将经编码视频数据发射到目的地装置14的任何类型的服务器。实例文件服务器包含网络服务器(例如,用于网站)、FTP服务器、网络附接存储(NAS)装置或本地磁盘驱动器。目的地装置14可以通过任何标准数据连接(包含因特网连接)来存取经编码视频数据。这可包含无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等),或适合于存取存储在文件服务器上的经编码视频数据的两者的组合。经编码视频数据从存储装置的发射可能是流式传输发射、下载发射或其组合。Destination device 14 may access the stored video data from the storage device via streaming or downloading. The file server may be any type of server capable of storing and transmitting the 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 through any standard data connection, including an Internet connection. This 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 file server. The transmission of the encoded video data from the storage device may be a streaming transmission, a download transmission, or a combination thereof.
本发明的技术未必限于无线应用或设定。所述技术可以应用于视频译码以支持多种多媒体应用中的任一者,例如空中协议电视广播、有线电视发射、卫星电视发射、因特网流式视频发射(例如,经由HTTP的动态自适应流式传输(DASH))、经编码到数据存储媒体上的数字视频、存储在数据存储媒体上的数字视频的解码或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频传输,以支持例如视频流式传输、视频重放、视频广播和/或视频电话等应用。The techniques of this disclosure are not necessarily limited to wireless applications or settings. The techniques may be applied to video coding to support any of a variety of multimedia applications, such as over-the-air television broadcasts, cable television transmissions, satellite television transmissions, Internet streaming video transmissions (e.g., Dynamic Adaptive Streaming over HTTP (DASH)), digital video encoded onto data storage media, decoding of digital video stored on data storage media, or other applications. In some examples, system 10 may be configured to support one-way or two-way video transmission to support applications such as video streaming, video playback, video broadcasting, and/or video telephony.
在图1的实例中,源装置12包含视频源18、视频编码器20及输出接口22。目的地装置14包含输入接口28、视频解码器30和显示装置32。根据本发明,源装置12的视频编码器20可经配置以关于非矩形分区应用基于分区的深度译码的技术。在其它实例中,源装置和目的地装置可包含其它组件或布置。举例来说,源装置12可从外部视频源18(例如外部相机)接收视频数据。同样,目的地装置14可与外部显示装置介接,而非包含集成式显示装置。1 , source device 12 includes a video source 18, a video encoder 20, and an output interface 22. Destination device 14 includes an input interface 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 partition-based depth coding techniques with respect to non-rectangular partitions. In other examples, the source and destination devices may include other components or arrangements. For example, source device 12 may receive video data from an external video source 18, such as an external camera. Likewise, destination device 14 may interface with an external display device rather than including an integrated display device.
图1的所说明系统10仅为一个实例。用于深度帧内预测模式的SDC的技术可由任何数字视频编码和/或解码装置执行。尽管本发明的技术一般通过视频编码器20和/或视频解码器30来执行,但是所述技术还可通过视频编码器/解码器(通常被称作“编解码器”)来执行。此外,本发明的技术还可由视频预处理器执行。源装置12及目的地装置14仅为源装置12产生经译码视频数据用于发射到目的地装置14的所述译码装置的实例。在一些实例中,装置12、14可以实质上对称的方式操作,使得装置12、14中的每一者包含视频编码及解码组件。因此,系统10可支持视频装置12、14之间的单向或双向视频发射以(例如)用于视频流式传输、视频回放、视频广播或视频电话。The illustrated system 10 of FIG. 1 is merely one example. The techniques for SDC for deep intra prediction mode may be performed by any digital video encoding and/or decoding device. Although the techniques of this disclosure are generally performed by video encoder 20 and/or video decoder 30, the techniques 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 in which source device 12 generates coded video data for transmission to destination device 14. In some examples, devices 12, 14 may operate in a substantially symmetrical manner, such that each of devices 12, 14 includes video encoding and decoding components. Thus, system 10 may support one-way or two-way video transmission between video devices 12, 14, for example, for video streaming, video playback, video broadcasting, or video telephony.
源装置12的视频源18可以包含视频俘获装置,例如摄像机、含有先前所俘获视频的视频存档和/或用于从视频内容提供者接收视频的视频馈送接口。作为另一替代方案,视频源18可产生基于计算机图形的数据作为源视频,或直播视频、存档视频与计算机产生的视频的组合。在一些情况下,如果视频源18是摄像机,那么源装置12和目的地装置14可形成所谓的智能电话、平板计算机或视频电话。然而,如上文所提及,本发明中所描述的技术可大体上适用于视频译码,且可应用于无线和/或有线应用。在每一情况下,俘获、预先俘获或计算机产生的视频可由视频编码器20编码。经编码视频信息可接着由输出接口22输出到计算机可读媒体16上。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 interface for receiving video from a video content provider. As another 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 smartphones, tablet computers, or video phones. However, as mentioned above, the techniques described in this disclosure may be generally applicable to video decoding and may be applied to wireless and/or wired applications. In each case, the captured, pre-captured, or computer-generated video may be encoded by video encoder 20. The encoded video information may then be output by output interface 22 to computer-readable medium 16.
计算机可读媒体16可包含瞬时媒体,例如无线广播或有线网络发射,或数据存储媒体(即,非暂时性存储媒体)。在一些实例中,网络服务器(未图示)可以从源装置12接收经编码视频数据,并且例如经由网络发射将经编码视频数据提供到目的地装置14。类似地,媒体生产设施(例如,光盘冲压设施)的计算装置可从源装置12接收经编码的视频数据且生产含有经编码的视频数据的光盘。因此,在各种实例中,计算机可读媒体16可以理解为包含各种形式的一或多个计算机可读媒体。Computer-readable medium 16 may include transient media, such as wireless broadcasts or wired network transmissions, or data storage media (i.e., non-transitory storage media). In some examples, a network server (not shown) may receive encoded video data from source device 12 and provide the encoded video data to destination device 14, for example, via network transmission. Similarly, a computing device at a media production facility (e.g., a disc stamping facility) may receive encoded video data from source device 12 and produce an optical disc containing the encoded video data. Thus, in various examples, computer-readable medium 16 may be understood to include one or more computer-readable media in various forms.
本发明可能总体上参考视频编码器20向另一装置(例如视频解码器30)“用信号表示”某些信息。但是,应理解,视频编码器20可以通过使某些语法元素与视频数据的各种经编码部分相关联来用信号表示信息。即,视频编码器20可通过将某些语法元素存储到视频数据的各种经编码部分的标头或有效负载中而“用信号表示”数据。在一些情况下,此些语法元素可在被视频解码器30接收和解码之前,先被编码和存储(例如,存储到计算机可读媒体16)。因而,术语“用信号表示”可以大体上指代用于解码经压缩的视频数据的语法或其它数据的通信,不论所述通信是实时或近乎实时发生还是在一段时间中发生,例如可能在编码时将语法元素存储到媒体上的时候发生,接着可以在存储到这个媒体之后的任何时间由解码装置检索。This disclosure may generally refer to video encoder 20 "signaling" certain information to another device, such as video decoder 30. However, it should be understood that video encoder 20 may signal information by associating certain syntax elements with various encoded portions of video data. That is, video encoder 20 may "signal" data by storing certain syntax elements in the headers or payloads of various encoded portions of video data. In some cases, such syntax elements may be encoded and stored (e.g., to computer-readable medium 16) prior to being received and decoded by video decoder 30. Thus, the term "signaling" may generally refer to the communication of syntax or other data used to decode compressed video data, whether such communication occurs in real or near real time or over a period of time, such as when syntax elements are stored on a medium at encoding time and can then be retrieved by a decoding device at any time after being stored on such medium.
目的地装置14的输入接口28从计算机可读媒体16接收信息。计算机可读媒体16的信息可包含由视频编码器20定义的语法信息,所述语法信息还供视频解码器30使用,所述语法信息包含描述块和其它经译码单元(例如,GOP)的特性和/或处理的语法元素。显示装置32向用户显示经解码视频数据,且可包括多种显示装置中的任一者,例如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器、投影装置或另一类型的显示装置。Input interface 28 of destination device 14 receives information from computer-readable medium 16. The information of computer-readable medium 16 may include syntax information defined by video encoder 20, which is also used by video decoder 30, including syntax elements that describe characteristics and/or processing of blocks and other coded units (e.g., GOPs). Display device 32 displays the decoded video data to a user and may comprise 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, a projection device, or another type of display device.
尽管图1中未图示,但在一些方面中,视频编码器20和视频解码器30可各自与音频编码器及解码器集成,且可包含适当多路复用器-多路分用器单元或其它硬件和软件以处置共同数据流或单独数据流中的音频和视频两者的编码。如果适用的话,作为一个实例,多路复用器-多路分用器单元可符合ITU H.223多路复用器协议,或例如用户数据报协议(UDP)等其它协议。Although not shown in FIG1 , in some aspects, video encoder 20 and video decoder 30 may each be integrated with an audio encoder and decoder and may include appropriate multiplexer-demultiplexer 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. As an example, the multiplexer-demultiplexer units may conform to the ITU H.223 multiplexer protocol, or other protocols such as the User Datagram Protocol (UDP), if applicable.
视频编码器20和视频解码器30各自可实施为合适的多种合适的编码器或解码器电路中的任一者,例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑电路、软件、硬件、固件或其任何组合。视频编码器20和视频解码器30中的每一者可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为组合视频编码器/解码器(CODEC)的部分。包含视频编码器20和/或视频解码器30的装置可包括集成电路、微处理器和/或无线通信装置(例如,蜂窝式电话)。Each of video encoder 20 and video decoder 30 may 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, either of which may be integrated as part of a combined video encoder/decoder (CODEC). A device including video encoder 20 and/or video decoder 30 may comprise an integrated circuit, a microprocessor, and/or a wireless communication device (e.g., a cellular telephone).
视频编码器20及视频解码器30可根据视频译码标准操作,例如HEVC标准且更确切地说HEVC标准的3D-HEVC扩展,如本发明中参考。HEVC假定视频译码装置相对于经配置以根据其它过程(例如ITU-T H.264/AVC)执行译码的装置的若干额外能力。举例来说,虽然H.264提供了九个帧内预测编码模式,但是HM可以提供多达三十五个帧内预测编码模式。Video encoder 20 and video decoder 30 may operate according to a video coding standard, such as the HEVC standard and, more particularly, the 3D-HEVC extension of the HEVC standard, as referenced in this disclosure. HEVC assumes several additional capabilities of video coding devices relative to devices configured to perform coding according to other procedures, such as ITU-T H.264/AVC. For example, while H.264 provides nine intra-prediction coding modes, HM may provide up to thirty-five intra-prediction coding modes.
一般来说,HEVC指定视频图片(或“帧”)可划分成包含明度和色度样本两者的树块或最大译码单元(LCU)的序列。位流内的语法数据可以界定最大译码单元(LCU,其是就像素数目来说的最大译码单元)的大小。切片包含按译码次序的若干连续树块。图片可以分割成一或多个切片。每一树块可以根据四叉树分裂成译码单元(CU)。一般来说,四叉树数据结构包含每个CU一个节点,其中一个根节点对应于所述树块。如果一个CU分裂成四个子CU,那么对应于CU的节点包含四个叶节点,其中的每一者对应于所述子CU中的一者。In general, HEVC specifies that a video picture (or "frame") can be divided into a sequence of treeblocks or largest coding units (LCUs) that include both luma and chroma samples. Syntax data within the bitstream can define the size of the largest coding unit (LCU, which is the largest coding unit in terms of the number of pixels). A slice contains several consecutive treeblocks in coding order. A picture can be partitioned into one or more slices. Each treeblock can be split into coding units (CUs) according to a quadtree. In general, a quadtree data structure includes one node per CU, with one root node corresponding to the treeblock. 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.
四叉树数据结构的每一节点可提供用于对应CU的语法数据。举例来说,四叉树中的节点可包含分裂旗标,其表明对应于所述节点的所述CU是否分裂成子CU。用于CU的语法元素可以递归地来定义,且可以取决于CU是否分裂成数个子CU。如果CU不进一步分裂,那么将其称为叶CU。叶CU的四个子CU也可被称为叶CU,即使不存在原始叶CU的显式分裂时也是如此。举例来说,如果16x16大小的CU不进一步分裂,那么这四个8x8子CU将也被称作叶CU,虽然16x16CU从未分裂。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 a number of sub-CUs. If a CU is not split further, it is referred to as a leaf-CU. The four sub-CUs of a leaf-CU may also be referred to as leaf-CUs, even when there is no explicit splitting of the original leaf-CU. For example, if a 16x16 sized CU is not split further, then the four 8x8 sub-CUs will also be referred to as leaf-CUs, even though the 16x16 CU is never split.
HEVC中的CU具有与H.264标准的宏块类似的目的,除了CU不具有大小区别。举例来说,树块可分裂成四个子节点(也称为子CU),且每一子节点又可为父节点且可分裂成另外四个子节点。最终的未经分裂子节点(被称作四叉树的叶节点)包括译码节点,还被称作叶CU。与经译码位流相关联的语法数据可定义树块可分裂的最大次数,被称作最大CU深度,且还可定义译码节点的最小大小。因此,位流还可界定最小译码单元(SCU)。本发明使用术语“块”来指HEVC的上下文中的CU、PU或TU中的任一者,或者其它标准的上下文中的类似数据结构(例如,其在H.264/AVC中的宏块及子块)。CUs in HEVC have similar purposes to macroblocks in the H.264 standard, except that CUs do not have size distinctions. For example, a treeblock can be split into four child nodes (also called sub-CUs), and each child node can, in turn, be a parent node and can be split into another four child nodes. The final unsplit child nodes (referred to as leaf nodes of the quadtree) comprise coding nodes, also referred to as leaf-CUs. Syntax data associated with the coded bitstream may define the maximum number of times a treeblock can be split, referred to as the maximum CU depth, and may also define the minimum size of a coding node. Thus, the bitstream may also define a smallest coding unit (SCU). This disclosure uses the term "block" to refer to any of a CU, PU, or TU in the context of HEVC, or similar data structures in the context of other standards (e.g., macroblocks and sub-blocks in H.264/AVC).
CU包含译码节点和与所述译码节点相关联的预测单元(PU)和变换单元(TU)。CU的大小对应于译码节点的大小并且形状必须是正方形。CU的大小可介于8×8个像素至多达具有最大64×64个像素或更大的树块大小的范围内。每一CU可以含有一或多个PU和一或多个TU。举例来说,与CU相关联的语法数据可描述CU分割成一或多个PU。分割模式可在CU被跳过或经直接模式编码、经帧内预测模式编码或经帧间预测模式编码之间有所不同。在如本发明中所描述的深度译码的情况下,PU可分割为非正方形形状,或包含非矩形形状的分区。举例来说,与CU相关联的语法数据还可描述CU根据四叉树到一或多个TU的分割。TU可为正方形或非正方形(例如,矩形)形状。A CU includes a coding node and prediction units (PUs) and transform units (TUs) associated with the coding node. The size of the CU corresponds to the size of the coding node and must be square in shape. The size of a CU can range from 8×8 pixels up to a treeblock size with a maximum of 64×64 pixels or larger. Each CU can contain one or more PUs and one or more TUs. For example, the syntax data associated with a CU may describe the partitioning of the CU into one or more PUs. The partitioning mode may differ between whether the CU is skipped or encoded in direct mode, encoded in intra-prediction mode, or encoded in inter-prediction mode. In the case of depth coding as described in this disclosure, the PU may be partitioned into non-square shapes, or include partitions of non-rectangular shapes. For example, the syntax data associated with a CU may also describe the partitioning of the CU into one or more TUs according to a quadtree. A TU may be square or non-square (e.g., rectangular) in shape.
HEVC标准允许根据TU变换,TU可针对不同CU而有所不同。TU的大小通常是基于针对经分割LCU定义的给定CU内的PU的大小而确定,但是情况可能并不总是如此。TU通常与PU大小相同或小于PU。在一些实例中,可以使用被称为“残余四叉树”(RQT)的四叉树结构将对应于CU的残余样本细分成较小单元。RQT的叶节点可被称为变换单元(TU)。可以变换与TU相关联的像素差值以产生变换系数,所述变换系数可经量化。The HEVC standard allows for transforms based on TUs, which can be different for different CUs. The size of a TU is typically determined based on the size of the PU within a given CU defined for a partitioned LCU, but this may not always be the case. A TU is typically the same size as or smaller than a PU. In some examples, a quadtree structure called a "residual quadtree" (RQT) can be used to subdivide the residual samples corresponding to a CU into smaller units. The leaf nodes of the RQT can be called transform units (TUs). Pixel difference values associated with a TU can be transformed to produce transform coefficients, which can be quantized.
叶CU可包含一或多个预测单元(PU)。一般来说,PU表示对应于对应的CU的全部或一部分的空间区,且可包含用于检索PU的参考样本的数据。参考样本可为来自参考块的像素。在一些实例中,参考样本可从参考块获得或例如通过内插或其它技术而产生。PU还包含与预测有关的数据。举例来说,当PU经帧内模式编码时,用于PU的数据可以包含在残余四叉树(RQT)中,残余四叉树可以包含描述用于对应于PU的TU的帧内预测模式的数据。作为另一实例,当PU经帧间模式编码时,PU可以包含定义PU的一或多个运动向量的数据。举例来说,定义PU的运动向量的数据可以描述运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分之一像素精度或八分之一像素精度)、运动向量指向的参考图片及/或运动向量的参考图片列表(例如,列表0、列表1或列表C)。A leaf-CU may include one or more prediction units (PUs). Generally, a PU represents a spatial region corresponding to all or a portion of the corresponding CU and may include data used to retrieve reference samples for the PU. Reference samples may be pixels from a reference block. In some examples, reference samples may be obtained from the reference block or generated, for example, by interpolation or other techniques. The PU also includes data related to prediction. For example, when the PU is intra-mode encoded, data for the PU may be included in a residual quadtree (RQT), which may include data describing the intra-prediction mode used for the TU corresponding to the PU. As another example, when the PU is inter-mode encoded, the PU may include data defining one or more motion vectors for the PU. For example, the data defining the motion vector of the PU may describe the horizontal component of the motion vector, the vertical component of the motion vector, the resolution of the motion vector (e.g., quarter-pixel precision or eighth-pixel precision), the reference picture to which the motion vector points, and/or the reference picture list for the motion vector (e.g., List 0, List 1, or List C).
具有一或多个PU的叶CU还可包含一或多个变换单元(TU)。变换单元可使用RQT(也称为TU四叉树结构)来指定,如上文所论述。举例来说,分裂旗标可以指示叶CU是否分裂成四个变换单元。接着,每一变换单元可进一步分裂成更多个子TU。当TU未进一步分裂时,其可被称作叶TU。总体上,对于帧内译码,所有属于一叶CU的叶TU共享相同的帧内预测模式。也就是说,一般应用相同的帧内预测模式来计算叶CU的所有TU的预测值。对于帧内译码,视频编码器20可以使用帧内预测模式将每一叶TU的残余值计算为CU的对应于TU的部分与原始块之间的差。TU不一定限于PU的大小。因此,TU可大于或小于PU。对于帧内译码,PU可以与相同CU的对应叶TU并置。在一些实例中,叶TU的最大大小可以对应于对应的叶CU的大小。A leaf-CU with one or more PUs may also include one or more transform units (TUs). Transform units may be specified using an RQT (also known as a TU quadtree structure), as discussed above. For example, a split flag may indicate whether a leaf-CU is split into four transform units. Each transform unit may then be further split into more sub-TUs. When a TU is not further split, it may be referred to as a leaf-TU. In general, 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 generally applied to calculate prediction values for all TUs of a leaf-CU. For intra coding, video encoder 20 may use the intra prediction mode to calculate the residual value of each leaf-TU as the difference between the portion of the CU corresponding to the TU and the original block. A TU is not necessarily limited to the size of a PU. Thus, a TU may be larger or smaller than a PU. For intra coding, a PU may be collocated with a corresponding leaf-TU of the same CU. In some examples, the maximum size of a leaf-TU may correspond to the size of the corresponding leaf-CU.
此外,叶CU的TU还可与相应的四叉树数据结构(被称作残余四叉树(RQT))相关联。即,叶CU可包含指示叶CU如何分割成TU的四叉树。TU四叉树的根节点一般对应于叶CU,而CU四叉树的根节点一般对应于树块(或LCU)。未经分裂的RQT的TU被称作叶TU。一般来说,除非以其它方式提及,否则本发明分别使用术语CU及TU来指叶CU及叶TU。Furthermore, the TUs of a leaf-CU may also be associated with corresponding quadtree data structures, referred to as residual quadtrees (RQTs). That is, a leaf-CU may include a quadtree that indicates how the leaf-CU is partitioned into TUs. The root node of a TU quadtree generally corresponds to a leaf-CU, while the root node of a CU quadtree generally corresponds to a treeblock (or LCU). TUs of an RQT that are not split are referred to as leaf-TUs. In general, unless otherwise noted, this disclosure uses the terms CU and TU to refer to leaf-CUs and leaf-TUs, respectively.
视频序列通常包含一系列图片。如本文所描述,术语“图片”与“帧”可以互换地使用。即,含有视频数据的图片可被称为视频帧或简称为“帧”。图片群组(GOP)一般包括一系列一或多个视频图片。GOP可包含GOP的标头、图片中的一或多者的标头或其它处的语法数据,其描述GOP中所包含的图片的数目。图片的每一切片可包含描述用于相应的切片的编码模式的切片语法数据。视频编码器20通常对个别视频切片内的视频块进行操作以便对视频数据进行编码。视频块可与CU内的译码节点相对应。视频块可具有固定或变化的大小,并且根据指定译码标准可在大小上有所不同。A video sequence typically includes a series of pictures. As described herein, the terms "picture" and "frame" may be used interchangeably. That is, a picture containing video data may be referred to as a video frame or simply a "frame." A group of pictures (GOP) generally includes a series of one or more video pictures. A GOP may include a header for the GOP, a header for one or more of the pictures, or syntax data elsewhere that describes the number of pictures included in the GOP. Each slice of a picture may include slice syntax data that describes the encoding mode for the corresponding slice. The video encoder 20 typically operates on video blocks within individual video slices in order to encode the video data. A video block may correspond to a decoding node within a CU. A video block may have a fixed or variable size and may differ in size according to a specified decoding standard.
作为一实例,HEVC支持各种PU大小的预测。假设特定CU的大小是2Nx2N,那么HEVC支持2Nx2N或NxN的PU大小的帧内预测,及2Nx2N、2NxN、Nx2N或NxN的对称PU大小的帧间预测。具有2Nx2N的大小的PU表示未划分CU,因为其与其驻留的CU为相同大小。换句话说,2Nx2N PU与其CU大小相同。HM还支持用于2NxnU、2NxnD、nLx2N及nRx2N的PU大小的帧间预测的不对称分割。在不对称分割中,不分割CU的一个方向,但是将另一方向分割成25%和75%。CU的对应于25%分区的部分由“n”继之以“上”、“下”、“左”或“右”的指示来指示。因而,举例来说,“2NxnU”是指水平地分割的2Nx2N CU,其中顶部为2Nx0.5N PU,且底部为2Nx1.5N PU。As an example, HEVC supports prediction for various PU sizes. Assuming the size of a particular CU is 2Nx2N, HEVC supports intra-prediction for PU sizes of 2Nx2N or NxN, and inter-prediction for symmetric PU sizes of 2Nx2N, 2NxN, Nx2N, or NxN. A PU with a size of 2Nx2N represents an unpartitioned CU because it is the same size as the CU in which it resides. In other words, a 2Nx2N PU is the same size as its CU. HEVC also supports asymmetric partitioning for inter-prediction for PU sizes of 2NxnU, 2NxnD, nLx2N, and nRx2N. In asymmetric partitioning, one direction of the CU is not partitioned, but the other direction is partitioned into 25% and 75%. The portion of the CU corresponding to the 25% partition is indicated by an "n" followed by an indication of "up," "down," "left," or "right." Thus, for example, "2NxnU" refers to a 2Nx2N CU that is partitioned horizontally with a 2Nx0.5N PU on top and a 2Nx1.5N PU on the bottom.
在本发明中,“NxN”与“N乘N”可互换使用来指代在垂直和水平尺寸方面的视频块的像素尺寸,例如,16x16像素或16乘16像素。大体来说,16x16块将在垂直方向上具有16个像素(y=16),且在水平方向上具有16个像素(x=16)。同样,NxN块总体上在垂直方向上具有N个像素,并且在水平方向上具有N个像素,其中N表示非负整数值。块中的像素可布置成行和列。此外,块未必需要在水平方向上与在竖直方向上具有相同数目个像素。举例来说,块可包括NxM个像素,其中M未必等于N。In this disclosure, "NxN" and "N by N" may be used interchangeably to refer to the pixel dimensions of a video block in terms of vertical and horizontal dimensions, e.g., 16x16 pixels or 16 by 16 pixels. Generally speaking, 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 generally 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 may be arranged in rows and columns. Furthermore, a block need not necessarily have the same number of pixels in the horizontal direction as in the vertical direction. For example, a block may comprise NxM pixels, where M is not necessarily equal to N.
在使用CU的PU的帧内预测性或帧间预测性译码之后,视频编码器20可以计算CU的TU的残余数据。PU可包括描述在空间域(还称为像素域)中产生预测性像素数据的方法或模式的语法数据,并且TU可包括在对残余视频数据应用了变换(例如离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换)变换域中的系数。残余数据可对应于未经编码图片的像素与对应于PU的预测值之间的像素差。视频编码器20可以形成包含用于CU的残余数据的TU,并且接着变换TU以产生用于CU的变换系数。After intra-predictive or inter-predictive coding of the PUs of a CU, video encoder 20 may calculate residual data for the TUs of the CU. The PU may include syntax data that describes a method or mode for generating predictive pixel data in the spatial domain (also called the pixel domain), and the TU may include coefficients in a transform domain where a transform (e.g., a discrete cosine transform (DCT), an integer transform, a wavelet transform, or a conceptually similar transform) is applied to the residual video data. The residual data may correspond to pixel differences between pixels of an unencoded picture and prediction values corresponding to the PU. Video encoder 20 may form the TUs including the residual data for the CU, and then transform the TUs to produce transform coefficients for the CU.
在进行用于产生变换系数的任何变换之后,视频编码器20可执行变换系数的量化。量化大体上指代对变换系数进行量化以可能减少用以表示系数的数据的量从而提供进一步压缩的过程。量化过程可以减少与系数中的一些或全部相关联的位深度。例如,n位值可在量化期间被下舍入到m位值,其中n大于m。After performing any transforms used to generate transform coefficients, video encoder 20 may perform quantization of the transform coefficients. Quantization generally refers to the process of quantizing the transform coefficients to potentially reduce the amount of data used to represent the coefficients, thereby providing further compression. 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.
在量化之后,视频编码器20可扫描变换系数,从包含经量化变换系数的二维矩阵产生一维向量。扫描可以经设计以将较高能量(并且因此较低频率)的系数放置在阵列的前面,并且将较低能量(并且因此较高频率)的系数放置在阵列的背面。After quantization, video encoder 20 may scan the transform coefficients, producing a one-dimensional vector from a two-dimensional matrix containing the quantized transform coefficients. The scan may be designed to place higher energy (and therefore lower frequency) coefficients at the front of the array and lower energy (and therefore higher frequency) coefficients at the back of the array.
在一些实例中,视频编码器20可利用预定义扫描次序来扫描经量化的变换系数以产生可被熵编码的串行化向量。在其它实例中,视频编码器20可以执行自适应扫描。在扫描经量化的变换系数以形成一维向量之后,视频编码器20可以例如根据上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一熵编码方法编码一维向量。视频编码器20也可熵编码与经编码视频数据相关联的语法元素以供视频解码器30在解码视频数据时使用。In some examples, video encoder 20 may utilize a predefined scan order to scan the quantized transform coefficients to produce a serialized vector that can be entropy encoded. In other examples, video encoder 20 may perform adaptive scanning. After scanning the quantized transform coefficients to form a one-dimensional vector, video encoder 20 may encode the one-dimensional vector, for example, according to context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy (PIPE) coding, or another entropy encoding method. Video encoder 20 may also entropy encode syntax elements associated with the encoded video data for use by video decoder 30 when decoding the video data.
视频编码器20可例如在图片标头、块标头、切片标头或GOP标头中进一步将例如基于块的语法数据、基于图片的语法数据及基于GOP的语法数据等语法数据发送到视频解码器30。GOP语法数据可以描述相应GOP中的多个图片,并且图片语法数据可以指示用于对对应图片进行编码的编码/预测模式。Video encoder 20 may further send syntax data, such as block-based syntax data, picture-based syntax data, and GOP-based syntax data, to video decoder 30, e.g., in a picture header, a block header, a slice header, or a GOP header. The GOP syntax data may describe a number of pictures in a corresponding GOP, and the picture syntax data may indicate a coding/prediction mode used to encode the corresponding picture.
视频编码器20和/或视频解码器30可执行深度数据的图片内预测译码和深度数据的帧间预测译码。另外,根据本发明的实例,视频编码器20和/或视频解码器30可例如根据多种实例中的任一者使用SDC对从视频数据的深度帧内预测译码和/或视频数据的深度帧间预测译码产生的残余数据进行译码,如将描述。更具体来说,视频编码器20和/或视频解码器30可根据本发明的技术经配置以用信号表示在例如3D-HEVC的3D视频译码过程中以更统一方式使用SDC用于深度帧内预测和深度帧间预测。Video encoder 20 and/or video decoder 30 may perform intra-picture prediction coding of depth data and inter-frame prediction coding of depth data. In addition, according to examples of this disclosure, video encoder 20 and/or video decoder 30 may use SDC to code residual data generated from depth intra-frame prediction coding of video data and/or depth inter-frame prediction coding of video data, e.g., according to any of a variety of examples, as will be described. More specifically, video encoder 20 and/or video decoder 30 may be configured according to the techniques of this disclosure to signal the use of SDC for depth intra-frame prediction and depth inter-frame prediction in a more unified manner in a 3D video coding process, such as 3D-HEVC.
本发明描述用于基于高级编解码器的3D视频译码的技术,例如高效率视频译码(HEVC)编解码器。本发明中描述的3D译码技术包含与多视图加深度视频译码过程中的深度视图的高级帧间译码相关的深度译码技术,例如当前在开发的对HEVC的3D-HEVC扩展。下文回顾与本发明相关的视频译码标准和HEVC技术。This disclosure describes techniques for 3D video coding based on advanced codecs, such as the High Efficiency Video Coding (HEVC) codec. The 3D coding techniques described in this disclosure include depth coding techniques related to advanced inter-coding of depth views in multi-view plus depth video coding processes, such as the 3D-HEVC extension to HEVC currently under development. The following section reviews video coding standards and HEVC techniques relevant to this disclosure.
HEVC标准的最近草案JCTVC-L1003(本杰明·布洛斯、韩吴京、基恩斯·拉尼尔·欧姆、加里·沙利文、王叶奎、托马斯·韦甘德)“高效率视频译码(HEVC)文本规范草案10(用于FDIS和最后呼叫)”(ITU-T SG16WP 3和ISO/IEC JTC 1/SC 29/WG11的视频译码联合合作小组(JCT-VC),瑞士日内瓦第12次会议,2013年1月14-23日(“HEVC WD10”))以全文引用的方式并入本文中且从以下链接可用:http://phenix.it-sudparis.eu/jct/doc_end_ user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip The most recent draft of the HEVC standard, JCTVC-L1003 (Benjamin Bloss, Wu-Kyung Han, Keens Ranier Ohm, Gary Sullivan, Yekui Wang, Thomas Weigand), “High Efficiency Video Coding (HEVC) Textual Specification Draft 10 (for FDIS and Last Call)” (Joint Collaboration Team on Video Coding (JCT-VC) of ITU-T SG16 WP 3 and ISO/IEC JTC 1/SC 29/WG11, 12th Meeting, Geneva, Switzerland, January 14-23, 2013 (“HEVC WD10”)) is incorporated herein by reference in its entirety and is available at the following link: http://phenix.it-sudparis.eu/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip
3D-HEVC的最近草案在JCTVC-F1001-v1(格哈德技术公司,克里斯托弗·韦格纳,陈英和叶希洪)“3D-HEVC草案文本2”(ITU-T SG16WP 3和ISO/IEC JTC 1/SC 29/WG11的3D视频译码扩展开发联合合作小组第6次会议:瑞士日内瓦,2013年10月25日-11月1日(“3D-HEVC”))中呈现,以全文引用的方式并入本文中,且从以下链接可用:http://phenix.it- sudparis.eu/jct2/doc_end_user/documents/6_Geneva/wg11/JCT3V-F1001-v1.zip A recent draft of 3D-HEVC is presented in JCTVC-F1001-v1 (Gerhard Technologies, Christoph Wegener, Ying Chen, and Xihong Ye) “3D-HEVC Draft Text 2” (Joint Collaborative Group on 3D Video Coding Extension Development of ITU-T SG16 WP 3 and ISO/IEC JTC 1/SC 29/WG11, 6th Meeting: Geneva, Switzerland, October 25-November 1, 2013 (“3D-HEVC”)), which is incorporated herein by reference in its entirety and is available at the following link: http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/6_Geneva/wg11/JCT3V-F1001-v1.zip
在HEVC中,假定译码单元(CU)的大小是2Nx2N,视频编码器20和视频解码器30可支持用于帧内预测的2Nx2N或NxN的各种预测单元(PU)大小,以及用于帧间预测的2Nx2N、2NxN、Nx2N、NxN或类似的对称PU大小。视频编码器及视频解码器还可支持用于帧间预测的2NxnU、2NxnD、nLx2N及nRx2N的PU大小的不对称分割。In HEVC, assuming the size of a coding unit (CU) is 2Nx2N, video encoder 20 and video decoder 30 may support various prediction unit (PU) sizes of 2Nx2N or NxN for intra prediction, and symmetric PU sizes of 2Nx2N, 2NxN, Nx2N, NxN, or similar for inter prediction. The video encoder and video decoder may also support asymmetric partitioning of PU sizes of 2NxnU, 2NxnD, nLx2N, and nRx2N for inter prediction.
对于如3D-HEVC中提供的深度译码,视频编码器和视频解码器可经配置以支持用于帧内预测的多种不同深度译码分割模式,包含使用非矩形分区的模式。具有非矩形分区的深度译码的实例包含基于楔波分区的深度译码、基于轮廓分区的深度译码以及基于区边界链分区的译码。用于例如楔波分区或轮廓分区(作为实例)等非矩形分区的基于分区的帧内译码的技术可与用于由帧内预测译码产生的残余信息的译码的简化深度译码(SDC)模式结合执行。另外,对于在HEVC中的常规帧内/帧间模式,所述技术也可与用于从深度数据的帧内预测译码或帧间预测译码产生的残余信息的译码的SDC模式结合而执行。For depth coding as provided in 3D-HEVC, video encoders and video decoders can be configured to support a variety of different depth coding partitioning modes for intra prediction, including modes using non-rectangular partitions. Examples of depth coding with non-rectangular partitions include Wedgelet partition-based depth coding, contour partition-based depth coding, and region boundary chain partition-based coding. Techniques for partition-based intra coding of non-rectangular partitions, such as Wedgelet partitions or contour partitions (as examples), can be performed in conjunction with a simplified depth coding (SDC) mode for coding of residual information generated by intra prediction coding. Additionally, for conventional intra/inter modes in HEVC, the techniques can also be performed in conjunction with an SDC mode for coding of residual information generated from intra or inter prediction coding of depth data.
使用3D视频译码技术译码的视频数据可经再现且显示以产生三维效应。作为一个实例,不同视图的两个图像(也就是说,对应于具有稍微不同水平位置的两个相机视角)可大体上同时显示以使得一个图像由观察者的左眼看见,且另一图像由观察者的右眼看见。Video data coded using 3D video coding techniques can be reproduced and displayed to produce a three-dimensional effect. As an example, two images of different views (that is, corresponding to two camera perspectives with slightly different horizontal positions) can be displayed substantially simultaneously so that one image is seen by the viewer's left eye and the other image is seen by the viewer's right eye.
3D效果可使用(例如)立体显示器或自动立体显示器实现。立体显示器可结合相应地对所述两个图像进行过滤的护目镜而使用。举例来说,无源眼镜可使用偏光透镜或不同有色透镜或其它光学过滤技术对图像进行过滤,以确保恰当的眼睛看见恰当的图像。作为另一实例,有源眼镜可与立体显示器协调地快速遮挡交替的透镜,所述立体显示器可在显示左眼图像与右眼图像之间交替。自动立体显示器以不需要眼镜的方式显示所述两个图像。举例来说,自动立体显示器可包含经配置以致使每一图像投影到观察者的适当眼睛中的镜或棱镜。The 3D effect can be achieved using, for example, a stereoscopic display or an autostereoscopic display. A stereoscopic display can be used in conjunction with goggles that filter the two images accordingly. For example, passive glasses can filter the images using polarized lenses, differently colored lenses, or other optical filtering techniques to ensure that the appropriate eye sees the appropriate image. As another example, active glasses can rapidly block alternating lenses in coordination with a stereoscopic display that alternates between displaying a left-eye image and a right-eye image. An autostereoscopic display displays the two images in a manner that does not require glasses. For example, an autostereoscopic display can include mirrors or prisms configured to cause each image to be projected into the appropriate eye of the viewer.
本发明的技术涉及用于通过对深度数据进行译码以支持3D视频来对3D视频数据进行译码的技术。一般来说,术语“纹理”用以描述图像的明度(即,亮度或“明度”)值及图像的色度(即,色彩或“色度”)值。在一些实例中,纹理图像可包含一组明度数据(Y)和用于蓝色调(Cb)和红色调(Cr)的两组色度数据。在例如4:2:2或4:2:0的某些色度格式中,相对于明度数据对色度数据下取样。即,色度像素的空间分辨率可低于对应明度像素的空间分辨率,例如为明度分辨率的二分之一或四分之一。The techniques of this disclosure relate to techniques for coding 3D video data by coding depth data to support 3D video. Generally, the term "texture" is used to describe the luma (i.e., brightness or "brightness") values of an image and the chroma (i.e., color or "chrominance") values of the image. In some examples, a texture image may include one set of luma data (Y) and two sets of chroma data for blue tones (Cb) and red tones (Cr). In certain chroma formats, such as 4:2:2 or 4:2:0, the chroma data is downsampled relative to the luma data. That is, the spatial resolution of a chroma pixel may be lower than the spatial resolution of the corresponding luma pixel, for example, half or one-quarter the luma resolution.
深度数据一般描述对应纹理数据的深度值。举例来说,深度图像可包含深度像素(或深度值)的集合,其各自针对例如视图的纹理分量中的对应纹理数据描述例如视图的深度分量中的深度。每一像素可具有一或多个纹理值(例如,明度和色度),且还可具有一或多个深度值。纹理图片和深度图可以(但不需要)具有相同空间分辨率。举例来说,深度图可包含比对应纹理图片多或少的像素。深度数据可用以确定对应纹理数据的水平视差,且在一些情况下,也可以使用垂直视差。Depth data generally describes depth values for corresponding texture data. For example, a depth image may include a set of depth pixels (or depth values), each of which describes depth, for example, in a depth component of a view, for corresponding texture data in a texture component of the view. Each pixel may have one or more texture values (e.g., luminance and chrominance) and may also have one or more depth values. Texture pictures and depth maps may (but need not) have the same spatial resolution. For example, a depth map may include more or fewer pixels than a corresponding texture picture. Depth data may be used to determine horizontal disparity for corresponding texture data, and in some cases, vertical disparity may also be used.
接收纹理和深度数据的装置可显示一个视图(例如,左眼视图)的第一纹理图像,且通过使第一图像的像素值偏移基于深度值所确定的水平视差值而使用深度数据修改第一纹理图像以产生另一视图(例如,右眼视图)的第二纹理图像。一般来说,水平视差(或简称“视差”)描述第一视图中的像素与右视图中的对应像素的水平空间偏移,其中所述两个像素对应于如在所述两个视图中所表示的相同对象的相同部分。A device receiving texture and depth data may display a first texture image for one view (e.g., a left-eye view) and modify the first texture image using the depth data to generate a second texture image for another view (e.g., a right-eye view) by offsetting pixel values of the first image by a horizontal disparity value determined based on the depth value. Generally speaking, horizontal disparity (or simply "disparity") describes the horizontal spatial offset of a pixel in the first view from a corresponding pixel in the right view, where the two pixels correspond to the same portion of the same object as represented in the two views.
在又其它实例中,可针对垂直于图像平面的z维度中的像素定义深度数据,使得与给定像素相关联的深度是相对于针对所述图像所定义的零视差平面而定义。此深度可用以产生用于显示像素的水平视差,使得所述像素取决于所述像素相对于零视差平面的z维度深度值而对于左眼与右眼以不同方式显示。零视差平面可针对视频序列的不同部分改变,且也可改变相对于零视差平面的深度量。In yet other examples, depth data can be defined for pixels in the z-dimension perpendicular to the image plane, such that the depth associated with a given pixel is defined relative to a zero-disparity plane defined for the image. This depth can be used to generate horizontal disparity for displaying pixels, such that the pixels appear differently to the left and right eyes depending on the z-dimension depth value of the pixels relative to the zero-disparity plane. The zero-disparity plane can change for different portions of a video sequence, and the amount of depth relative to the zero-disparity plane can also change.
可针对左眼与右眼类似地定义位于零视差平面上的像素。位于零视差平面之前的像素可对于左眼与右眼显示于不同位置中(例如,具有水平视差),以便产生像素似乎是从垂直于图像平面的z方向上的图像出来的感觉。位于零视差平面之后的像素可显示为具有轻微模糊以轻微地感觉到深度,或可对于左眼与右眼显示于不同位置中(例如,具有与位于零视差平面之前的像素相反的水平视差)。许多其它技术也可用于传达或定义图像的深度数据。Pixels located on the zero disparity plane can be similarly defined for the left and right eyes. Pixels located before the zero disparity plane can be displayed in different positions for the left and right eyes (e.g., with horizontal disparity) to create the perception that the pixels appear to be emerging from the image in the z-direction perpendicular to the image plane. Pixels located after the zero disparity plane can be displayed with a slight blur to slightly enhance the perception of depth, or can be displayed in different positions for the left and right eyes (e.g., with opposite horizontal disparity than pixels located before the zero disparity plane). Many other techniques can also be used to convey or define depth data for an image.
二维视频数据大体上经译码为离散图片的序列,所述离散图片中的每一者对应于特定时间实例。也就是说,每一图片具有相对于所述序列中的其它图像的重放时间的相关联重放时间。这些图片可视为纹理图片或纹理图像。在基于深度的3D视频译码中,序列中的每一纹理图片还可对应于深度图。也就是说,对应于纹理图片的深度图描述对应纹理图片的深度数据。多视图视频数据可包含各种不同视图的数据,其中每一视图可包含纹理分量和对应深度分量的相应序列。Two-dimensional video data is generally coded as a sequence of discrete pictures, each of which corresponds to a specific time instance. That is, each picture has an associated playback time relative to the playback times of other pictures in the sequence. These pictures can be considered texture pictures or texture images. In depth-based 3D video coding, each texture picture in the sequence can also correspond to a depth map. That is, the depth map corresponding to a texture picture describes the depth data of the corresponding texture picture. Multi-view video data may include data for various different views, where each view may include a respective sequence of texture components and corresponding depth components.
图片大体上对应于特定时间实例。视频数据可使用存取单元序列来表示,其中每一存取单元包含对应于特定时间例项的所有数据。因此,举例来说,对于多视图视频数据加深度译码,来自用于共同时间例项的每一视图的纹理图像加所述纹理图像中的每一者的深度图可全部包含在特定存取单元内。因此,存取单元可包含多个视图,其中每一视图可包含对应于纹理图像的纹理分量的数据以及对应于深度图的深度分量的数据。A picture generally corresponds to a specific time instance. Video data can be represented using a sequence of access units, where each access unit includes all data corresponding to a specific time instance. Thus, for example, for multi-view video data plus depth coding, the texture image from each view for a common time instance plus the depth map for each of the texture images may all be included within a particular access unit. Thus, an access unit may include multiple views, where each view may include data corresponding to a texture component of a texture image and data corresponding to a depth component of a depth map.
每一存取单元可含有多个视图分量或图片。特定视图的视图分量与唯一视图id或视图次序索引相关联,以使得不同视图的视图分量与不同视图id或视图次序索引相关联。视图分量可包含纹理视图分量以及深度视图分量。同一视图中的纹理和深度视图分量可具有不同层id。纹理视图分量可经译码为一或多个纹理切片,而深度视图分量可经译码为一或多个深度切片。多视图加深度产生多种译码可能性,例如图片内、图片间、视图内、视图间、运动预测及类似物。Each access unit may contain multiple view components or pictures. The view components of a particular view are associated with a unique view id or view order index, such that view components of different views are associated with different view ids or view order indices. View components may include texture view components and depth view components. Texture and depth view components in the same view may have different layer ids. Texture view components may be coded as one or more texture slices, while depth view components may be coded as one or more depth slices. Multi-view plus depth yields a variety of coding possibilities, such as intra-picture, inter-picture, intra-view, inter-view, motion prediction, and the like.
以此方式,3D视频数据可使用多视图视频加深度格式来表示,其中俘获或产生的视图包含与对应深度图相关联的纹理分量。此外,在3D视频译码中,纹理和深度图可经译码且多路复用到3D视频位流中。深度图可经译码为灰度级图像,其中深度图的“明度”样本(即,像素)表示深度值。In this way, 3D video data can be represented using a multi-view video plus depth format, where the captured or generated views include texture components associated with corresponding depth maps. Furthermore, in 3D video coding, texture and depth maps can be coded and multiplexed into the 3D video bitstream. The depth map can be coded as a grayscale image, where the "luminance" samples (i.e., pixels) of the depth map represent depth values.
一般来说,深度数据的块(例如对应于像素的深度图的样本的块)可被称为深度块。深度值可被称为与深度样本相关联的明度值。即,深度图可大体上被视为单色纹理图片,换句话说,包含明度值且不包含色度值的纹理图片。在任何情况下,常规帧内和帧间译码方法可应用于深度图译码。In general, a block of depth data (e.g., a block of samples of a depth map corresponding to a pixel) may be referred to as a depth block. A depth value may be referred to as a luma value associated with a depth sample. That is, a depth map can generally be considered a monochrome texture picture—in other words, a texture picture that includes luma values and no chroma values. In any case, conventional intra- and inter-coding methods can be applied to depth map coding.
深度图通常特征在于尖锐边缘和恒定区域,且深度图中的边缘通常呈现与对应纹理数据的强相关。归因于纹理及对应深度之间的不同统计及相关性,因此已经基于2D视频编解码器设计用于深度图的不同译码方案。Depth maps are typically characterized by sharp edges and constant regions, and edges in depth maps often exhibit strong correlation with corresponding texture data. Due to the different statistics and correlations between texture and corresponding depth, different coding schemes for depth maps have been designed based on 2D video codecs.
下文回顾与本发明相关的HEVC技术。视频译码标准的实例包含ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual及ITU-T H.264(也称为ISO/IEC MPEG-4AVC),包含其可缩放视频译码(SVC)及多视图视频译码(MVC)扩展。MVC的最新联合草案描述于2010年3月的“用于通用视听服务的高级视频译码”(ITU-T建议H.264)中。The following review of HEVC techniques is relevant to this disclosure. Examples of 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. The latest joint draft of MVC is described in "Advanced Video Coding for Generic Audiovisual Services" (ITU-T Recommendation H.264) in March 2010.
此外,存在一种新的且即将到来的视频译码标准,即上文所提及的高效率视频译码(HEVC),其由ITU-T视频译码专家组(VCEG)和ISO/IEC运动图片专家组(MPEG)的视频译码联合合作小组(JCT-VC)进行开发。In addition, there is a new and upcoming video coding standard, the aforementioned High Efficiency Video Coding (HEVC), which is being developed by the Joint Collaboration Team on Video Coding (JCT-VC) of the ITU-T Video Coding Experts Group (VCEG) and the ISO/IEC Moving Picture Experts Group (MPEG).
图2是说明在HEVC中使用的帧内预测模式的图。图2大体上说明与可用于HEVC中的帧内译码的各种方向性帧内预测模式相关联的预测方向。在当前HEVC中,对于每一预测单元(PU)的明度分量,以33个角度预测模式(从2到34编索引)、DC模式(以1编索引)和平面模式(以0编索引)利用帧内预测方法,如图2中所示。FIG2 is a diagram illustrating intra prediction modes used in HEVC. FIG2 generally illustrates the prediction directions associated with various directional intra prediction modes that can be used for intra coding in HEVC. In current HEVC, for the luma component of each prediction unit (PU), intra prediction methods are utilized with 33 angular prediction modes (indexed from 2 to 34), a DC mode (indexed with 1), and a planar mode (indexed with 0), as shown in FIG2.
在平面模式中(以0编索引),使用所谓的“平面”功能执行预测以确定视频数据块(例如,PU)内的像素中的每一者的预测符值。根据DC模式(以1编索引),使用所述块内的像素值的平均化执行预测以确定所述块内的像素中的每一者的预测符值。根据方向性预测模式,基于相邻块的沿着特定方向(如由模式指示)的经重构像素而执行预测。一般来说,图2中所示的箭头的尾端表示从其检索值的相邻像素中的相对一者,而箭头的头部表示所检索值沿着其传播以形成预测性块的方向。In planar mode (indexed by 0), prediction is performed using a so-called "planar" function to determine a predictor value for each of the pixels within a block of video data (e.g., a PU). According to DC mode (indexed by 1), prediction is performed using an averaging of the pixel values within the block to determine a predictor value for each of the pixels within the block. According to directional prediction mode, prediction is performed based on reconstructed pixels of neighboring blocks along a particular direction (as indicated by the mode). In general, the tail end of an arrow shown in FIG2 represents the opposite one of the neighboring pixels from which a value is retrieved, while the head of the arrow represents the direction along which the retrieved value is propagated to form the predictive block.
对于HEVC帧内预测模式,视频编码器20和/或视频解码器30例如通过使用用于模式2到34的PU的相邻样本,使用上文所论述的各种模式产生PU中的每一像素的像素特定预测符值。视频编码器20基于块的像素的实际深度值与预测符值之间的差确定视频块的残余值,且将残余值提供到视频解码器30。根据HEVC WD10,视频编码器20变换残余值且量化变换系数,且还可对经量化变换系数进行熵编码。视频解码器30(例如,在熵解码、逆量化和逆变换之后)通过将残余值添加到预测符值而确定块的像素的经重构值。HEVC WD10中指定关于HEVC帧内预测模式的进一步细节。For HEVC intra-prediction modes, video encoder 20 and/or video decoder 30 generates pixel-specific predictor values for each pixel in the PU using the various modes discussed above, for example, by using neighboring samples for PUs of modes 2 to 34. Video encoder 20 determines a residual value for the video block based on the difference between the actual depth values of the pixels of the block and the predictor value, and provides the residual value to video decoder 30. According to HEVC WD10, video encoder 20 transforms the residual value and quantizes the transform coefficients, and may also entropy encode the quantized transform coefficients. Video decoder 30 (e.g., after entropy decoding, inverse quantization, and inverse transformation) determines reconstructed values for the pixels of the block by adding the residual value to the predictor value. Further details regarding HEVC intra-prediction modes are specified in HEVC WD10.
在JCT-3V中,正开发两个HEVC扩展:多视图扩展(MV-HEVC)和3D视频扩展(3D-HEVC)。用于3D-HEVC的参考软件“3D-HTM版本8.2”的最近版本以全文引用的方式并入本文中且可从以下链接下载:In JCT-3V, two HEVC extensions are being developed: Multi-view extension (MV-HEVC) and 3D video extension (3D-HEVC). The latest version of the reference software "3D-HTM Version 8.2" for 3D-HEVC is incorporated herein by reference in its entirety and can be downloaded from the following link:
[3D-HTM版本8.2-dev0]:https://hevc.hhi.fraunhofer.de/svn/svn_ 3DVCSoftware/branches/HTM-8.2-dev0/ [3D-HTM version 8.2- dev0 ]: https://hevc.hhi.fraunhofer.de/svn/svn_3DVCSoftware/branches/HTM-8.2-dev0/
参考软件的新版本3D-HTM 9.0将在3D-HTM版本8.2之上呈现且不久将可用。A new version of the reference software, 3D-HTM 9.0, will be presented on top of 3D-HTM version 8.2 and will be available shortly.
最新工作草案(文档编号:F1001)从以下可用:The latest working draft (Document No. F1001) is available from:
http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/6_Geneva/http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/6_Geneva/ wg11/JCT3V-F1001-v1.zipwg11/JCT3V-F1001-v1.zip
在3D-HEVC中,如上文参考的3D-HEVC草案中界定,每一存取单元含有多个图片,且每一视图中的图片中的每一者具有唯一视图识别(id)或视图次序索引。然而,同一视图的深度图片和纹理图片可具有不同层id。In 3D-HEVC, as defined in the 3D-HEVC draft referenced above, each access unit contains multiple pictures, and each of the pictures in each view has a unique view identification (ID) or view order index. However, depth pictures and texture pictures of the same view may have different layer ids.
现将描述3D视频译码中的深度帧内译码。3D视频数据是使用多视图视频加深度格式来表示,其中俘获的视图(纹理)与对应深度图相关联。在3D视频译码中,译码纹理及深度图且将其多路复用到3D视频位流中。将深度图译码为灰度视频,其中明度样本表示深度值,且可将常规的帧内及帧间译码方法应用于深度图译码。Depth intra coding in 3D video coding will now be described. 3D video data is represented using a multi-view video plus depth format, where captured views (textures) are associated with corresponding depth maps. In 3D video coding, textures and depth maps are coded and multiplexed into the 3D video bitstream. Depth maps are coded as grayscale video, where luma samples represent depth values, and conventional intra- and inter-coding methods can be applied to depth map coding.
如上文所论述,深度图的特征可在于锐边缘和恒定面积。由于深度图样本的不同统计数据,基于2D视频编解码器为深度图设计不同译码方案。As discussed above, depth maps may be characterized by sharp edges and constant area.Due to the different statistics of depth map samples, different coding schemes are designed for depth maps based on 2D video codecs.
在3D-HEVC中,利用与HEVC中相同的帧内预测模式的定义。即,在3D-HEVC中使用的帧内模式包含HEVC的帧内模式。并且,在3D-HEVC中,连同HEVC帧内预测模式一起引入深度模型化模式(DMM)以译码深度切片的帧内预测单元。为了深度图中的锐边缘的较好表示,当前HTM(3D-HTM版本8.2)应用DMM方法用于深度图的帧内译码。DMM中存在两种新的帧内模式。在两种模式中,将深度块分割成通过DMM模式指定的两个区,其中每一区由恒定值表示。In 3D-HEVC, the same definition of intra prediction mode as in HEVC is used. That is, the intra mode used in 3D-HEVC includes the intra mode of HEVC. Also, in 3D-HEVC, the depth modeling mode (DMM) is introduced together with the HEVC intra prediction mode to decode the intra prediction unit of the depth slice. For better representation of sharp edges in the depth map, the current HTM (3D-HTM version 8.2) applies the DMM method for intra decoding of the depth map. There are two new intra modes in DMM. In both modes, the depth block is partitioned into two regions specified by the DMM mode, where each region is represented by a constant value.
DMM模式可显式地用信号表示(DMM模式1),或通过位于同一地点的纹理块预测(DMM模式4)。存在在DMM中定义的两种类型的分割模型,包含楔波分割和轮廓分割。图3是说明用于对像素样本的块进行译码的楔波分区模式的实例的图。图4是说明用于对像素样本的块进行译码的轮廓分区模式的实例的图。The DMM mode can be explicitly signaled (DMM mode 1) or predicted by a co-located texture block (DMM mode 4). There are two types of partitioning models defined in the DMM, including Wedgelet partitioning and Contour partitioning. FIG3 is a diagram illustrating an example of a Wedgelet partitioning mode for coding a block of pixel samples. FIG4 is a diagram illustrating an example of a Contour partitioning mode for coding a block of pixel samples.
对于楔波分区,深度块由直线分割成两个区,如图3中所说明。对于轮廓分割,可将深度块分割成两个不规则区,如图4中所示。轮廓分割比楔波分割更灵活,但难以显式地用信号表示。在DMM模式4中,使用位于同一地点的纹理块的经重构的明度样本隐式地导出轮廓分割模式。For Wedgelet partitioning, the depth block is partitioned into two regions by a straight line, as illustrated in Figure 3. For contour partitioning, the depth block can be partitioned into two irregular regions, as shown in Figure 4. Contour partitioning is more flexible than Wedgelet partitioning, but is difficult to explicitly signal. In DMM mode 4, the contour partitioning mode is implicitly derived using the reconstructed luma samples of the co-located texture block.
作为一个实例,图3提供用于8x8块40的楔波模式的说明。对于楔波分区,深度块(例如,PU)由直线46分割成两个区42、44,其中开始点48位于(Xs,Ys)且结束点50位于(Xe,Ye),如图3中所说明,其中两个区42、44也分别标记有P0和P1。块40中的每一模式由大小uB×vB二进制数位的阵列组成,所述数位标记对应样本是否属于区P0或P1,其中uB和vB分别表示当前PU的水平和垂直大小。区P0和P1在图3中分别由白色和阴影样本表示。在编码和解码两者的开始初始化楔波模式。As an example, FIG3 provides an illustration of a Wedgelet pattern for an 8x8 block 40. For Wedgelet partitioning, a depth block (e.g., a PU) is partitioned by a line 46 into two regions 42 and 44, with a starting point 48 at (Xs, Ys) and an ending point 50 at (Xe, Ye), as illustrated in FIG3 . Regions 42 and 44 are also labeled P0 and P1, respectively. Each pattern in block 40 consists of an array of binary digits of size uB×vB, which indicate whether the corresponding sample belongs to region P0 or P1, where uB and vB represent the horizontal and vertical sizes of the current PU, respectively. Regions P0 and P1 are represented in FIG3 by white and shaded samples, respectively. The Wedgelet pattern is initialized at the beginning of both encoding and decoding.
如图4的实例中所示,例如深度块60的深度块可使用轮廓分割分割成三个不规则形状的区62、64A和64B,其中分别将区62标记为P0且将两个区64A和64B共同标记为P1。虽然区64A中的像素不紧邻于区64B中的像素,但区64A和64B可经界定以形成一个单个区,以用于预测深度块60的PU的目的。轮廓分割可比楔波分割更灵活,但可相对更难以用信号表示。在DMM模式4中,在3D-HEVC的情况下,轮廓分割模式是使用位于同一地点的纹理块的经重构明度样本隐式地导出。As shown in the example of FIG4 , a depth block such as depth block 60 can be partitioned into three irregularly shaped regions 62, 64A, and 64B using contour segmentation, where region 62 is individually labeled P0 and regions 64A and 64B are collectively labeled P1. Although pixels in region 64A are not immediately adjacent to pixels in region 64B, regions 64A and 64B can be defined to form a single region for the purpose of predicting the PU of depth block 60. Contour segmentation can be more flexible than Wedgelet segmentation, but can be relatively more difficult to signal. In DMM mode 4, in the case of 3D-HEVC, the contour segmentation mode is implicitly derived using reconstructed luma samples of the co-located texture block.
参考图3和4,深度块40和60内的每一个别正方形分别表示深度块40和60的相应个别像素。正方形内的数字值表示对应像素是否属于区42(图3的实例中的值“0”)或区44(图3的实例中的值“1”)。图3中还使用阴影来指示像素属于区42(白色正方形)还是区44(灰色阴影正方形)。3 and 4 , each individual square within depth blocks 40 and 60 represents a corresponding individual pixel of depth blocks 40 and 60, respectively. The numerical value within the square indicates whether the corresponding pixel belongs to region 42 (value “0” in the example of FIG. 3 ) or region 44 (value “1” in the example of FIG. 3 ). Shading is also used in FIG. 3 to indicate whether a pixel belongs to region 42 (white squares) or region 44 (grey shaded squares).
如上文所论述,每一模式(即,楔波和轮廓)可由大小uB×vB二进制数位的阵列界定,所述数位标记对应样本(即,像素)是否属于区P0或P1(其中P0对应于图3中的区42和图4中的区62,且P1对应于图3中的区44和图4中的区64A、64B),其中uB和vB分别表示当前PU的水平和垂直大小。在图3和图4的实例中,PU分别对应于块40和60。例如视频编码器20和视频解码器30的视频译码器可在译码的开始、例如编码的开始或解码的开始初始化楔波模式。As discussed above, each mode (i.e., Wedgelet and Contour) may be defined by an array of binary digits of size uB×vB that mark whether the corresponding sample (i.e., pixel) belongs to region P0 or P1 (where P0 corresponds to region 42 in FIG. 3 and region 62 in FIG. 4 , and P1 corresponds to region 44 in FIG. 3 and regions 64A, 64B in FIG. 4 ), where uB and vB represent the horizontal and vertical sizes of the current PU, respectively. In the examples of FIG. 3 and FIG. 4 , the PUs correspond to blocks 40 and 60, respectively. A video coder, such as video encoder 20 and video decoder 30, may initialize a Wedgelet mode at the beginning of coding, e.g., at the beginning of encoding or at the beginning of decoding.
对于HEVC帧内预测模式,通过如HEVC WD10中的子条款8.4.2中指定使用PU的相邻样本针对PU中的每一像素产生像素特定帧内预测符值。For HEVC intra prediction modes, a pixel-specific intra predictor value is generated for each pixel in the PU by using the PU's neighboring samples as specified in HEVC WD10, subclause 8.4.2.
对于其它深度帧内模式,通过使用PU的多达两个相邻样本针对所述PU内的每一分区计算分区特定的DC预测符。假设bPattern[x][y]为PU的分区模式,其中x=0..N-1,y=0..N-1且N是PU的宽度。bPattern[x][y]指示像素(x,y)属于哪一分区且bPattern[x][y]可等于0或1。假设BitDepth为深度样本的位深度且假设RecSample[x][y]为PU的经重构相邻样本,其中x=-1且y=0..N-1(对应于PU的左边相邻像素)或y=-1,x=0..N-1(对应于PU的上方相邻像素)。随后,如下导出分区X的DC预测符,即DCPred[X],其中X=0或1:For other depth intra modes, a partition-specific DC predictor is calculated for each partition within the PU using up to two neighboring samples of the PU. Assume that bPattern[x][y] is the partition pattern of the PU, where x=0..N-1, y=0..N-1 and N is the width of the PU. bPattern[x][y] indicates to which partition the pixel (x, y) belongs and bPattern[x][y] can be equal to 0 or 1. Assume that BitDepth is the bit depth of the depth samples and assume that RecSample[x][y] is the reconstructed neighboring samples of the PU, where x=-1 and y=0..N-1 (corresponding to the left neighboring pixels of the PU) or y=-1, x=0..N-1 (corresponding to the top neighboring pixels of the PU). The DC predictor for partition X, DCPred[X], where X=0 or 1, is then derived as follows:
·设定bT=(bPattern[0][0]!=bPattern[N-1][0])?1:0Set bT = (bPattern[0][0]! = bPattern[N-1][0])? 1:0
·设定bL=(bPattern[0][0]!=bPattern[0][N-1])?1:0Set bL = (bPattern[0][0]! = bPattern[0][N-1])? 1:0
·如果bT等于bLIf bT equals bL
-DCPred[X]=(RecSample[-1][0]+RecSample[0][-1])>>1-DCPred[X]=(RecSample[-1][0]+RecSample[0][-1])>>1
-DCPred[1-X]=bL?(RecSample[-1][N-1]+RecSample[N-1][-1])>>1:2位深度-1 -DCPred[1-X]=bL?(RecSample[-1][N-1]+RecSample[N-1][-1])>>1:2 bit depth -1
·否则·otherwise
-DCPred[X]=bL?RecSample[(N-1)>>1][-1]:RecSample[-1][(N-1)>>1]-DCPred[X]=bL? RecSample[(N-1)>>1][-1]:RecSample[-1][(N-1)>>1]
-DCPred[1-X]=bL?RecSample[-1][N-1]:RecSample[N-1][-1]-DCPred[1-X]=bL? RecSample[-1][N-1]:RecSample[N-1][-1]
如上文所论述,深度查找表(DLT)将深度索引映射到深度值。通过在对全视频序列进行编码之前分析第一帧内周期内的帧可构造DLT。在3D-HEVC的当前设计中,按升序分拣全部有效的深度值且以递增的索引插入到DLT。As discussed above, a depth lookup table (DLT) maps depth indices to depth values. The DLT can be constructed by analyzing frames within the first intra period before encoding the full video sequence. In the current design of 3D-HEVC, all valid depth values are sorted in ascending order and inserted into the DLT with increasing indices.
DLT是任选的译码工具。在当前HTM中,如果在分析步骤从0到MAX_DEPTH_VALUE(例如,用于8位深度样本的255)的超过二分之一的值在原始深度图中出现,那么编码器20将不使用DLT。否则,将在序列参数集(SPS)和/或视频参数集(VPS)中对DLT进行译码。为了对DLT进行译码,首先以指数-哥伦布码对有效深度值的数目进行译码。随后,也以指数-哥伦布码对每一有效深度值进行译码。The DLT is an optional coding tool. In the current HTM, if more than half of the values from 0 to MAX_DEPTH_VALUE (e.g., 255 for 8-bit depth samples) appear in the original depth map during the analysis step, the encoder 20 will not use the DLT. Otherwise, the DLT will be coded in the sequence parameter set (SPS) and/or video parameter set (VPS). To code the DLT, the number of valid depth values is first coded using an Exponential-Golomb code. Subsequently, each valid depth value is also coded using an Exponential-Golomb code.
编码器20从待译码的输入视频序列读取预定义数目的帧,且扫描全部样本是否有可用深度图值。在此过程期间,编码器20基于原始未经压缩深度图产生将深度值映射到有效深度值的映射表。Encoder 20 reads a predefined number of frames from the input video sequence to be decoded and scans all samples for available depth map values.During this process, encoder 20 generates a mapping table that maps depth values to valid depth values based on the original uncompressed depth map.
编码器20使用分析深度图D_t的以下算法导出深度查找表Idx2Depth(.)、索引查找表Depth2Idx(.)、深度映射表M(.)和有效深度值d_valid的数目:The encoder 20 derives the depth lookup table Idx2Depth(.), the index lookup table Depth2Idx(.), the depth map table M(.), and the number of valid depth values d_valid using the following algorithm that analyzes the depth map D_t:
1.初始化1. Initialization
·针对全部深度值d,布尔型向量B(d)=假For all depth values d, the Boolean vector B(d) = false
·索引计数器i=0Index counter i = 0
2.针对多个时间实例t处理Dt中的每一像素位置p:2. Process each pixel position p in Dt for multiple time instances t:
·设定(B(Dt(p))=真以标记有效深度值Set (B(D t (p)) = true to mark a valid depth value
3.对B(d)中的真值的数目计数→d有效 3. Count the number of true values in B(d) → d is valid
4.对于B(d)==真的每一d:4. For every d where B(d) == True:
·设定Idx2Depth(i)=dSet Idx2Depth(i) = d
·设定M(d)=dSet M(d) = d
·设定Depth2Idx(d)=iSet Depth2Idx(d) = i
·i=i+1i=i+1
5.对于B(d)==假的每一d:5. For each d where B(d) == false:
·找到d'=arg min|d-d'|且B(d')==真Find d'=arg min|d-d'| and B(d') == true
·设定M(d)=d'Set M(d) = d'
·设定Depth2Idx(d)=Depth2Idx(d')。Set Depth2Idx(d)=Depth2Idx(d').
从索引Idx返回到深度值d的映射如下:d=Idx2Depth[Idx]。从深度值d到索引Idx的映射如下:Idx=Depth2Idx[d]。The mapping from the index Idx back to the depth value d is as follows: d=Idx2Depth[Idx]. The mapping from the depth value d to the index Idx is as follows: Idx=Depth2Idx[d].
帧内SDC模式(其也可被称作简化深度译码、简化残余译码或逐片段DC译码)在3D-HEVC连同HEVC帧内预测模式、DMM模式和链译码模式一起引入,以对深度切片的帧内PU进行译码。在当前3D-HEVC中,SDC仅应用于2Nx2N PU分区大小。并非对经量化变换系数进行译码,SDC模式表示具有以下两个类型的信息的深度块:Intra SDC mode (which may also be referred to as simplified depth coding, simplified residual coding, or slice-by-slice DC coding) was introduced in 3D-HEVC along with HEVC intra prediction mode, DMM mode, and chain coding mode to code intra PUs of depth slices. In current 3D-HEVC, SDC is only applied to 2Nx2N PU partition sizes. Instead of coding quantized transform coefficients, SDC mode represents a depth block with the following two types of information:
1.当前深度块的分区类型,包含:1. Partition type of the current depth block, including:
a.DMM模式1(2个分区)a.DMM mode 1 (2 partitions)
b.平面(1个分区)b. Plane (1 partition)
2.对于每一分区,在位流中用信号表示残余值(像素域中)。2. For each partition, signal the residual value (in the pixel domain) in the bitstream.
在SDC中定义两个子模式,包含SDC模式1和SDC模式2,其分别对应于平面和DMM模式1的分区类型。Two sub-modes are defined in SDC, including SDC Mode 1 and SDC Mode 2, which correspond to the partition types of Planar and DMM Mode 1, respectively.
在SDC中使用简化残余译码。在简化残余译码中,如上文所描述,针对PU的每一分区用信号表示一个DC残余值,且不应用变换或量化。Simplified residual coding is used in SDC.In simplified residual coding, as described above, one DC residual value is signaled for each partition of the PU, and no transform or quantization is applied.
如上文所论述,为了用信号表示表示每一分区的DC残余值的信息,可应用两个方法:As discussed above, in order to signal the information representing the DC residual value of each partition, two methods may be applied:
1.直接对通过从当前PU中的当前分区的DC值(即,平均值,由Aver表示)减去通过相邻样本产生的由Pred表示的预测符而计算的每一分区的DC残余值进行译码。1. Directly code the DC residual value of each partition calculated by subtracting the predictor denoted by Pred generated by neighboring samples from the DC value of the current partition in the current PU (ie, the average value, denoted by Aver).
2.当发射DLT时,并非对DC残余值进行译码,对从索引查找表映射的Aver和Pred的索引差进行译码。通过从Aver的索引减去Pred的索引而计算所述索引差。在解码器侧,基于DLT将经解码索引差和Pred的索引的总和映射回到深度值。2. When transmitting the DLT, instead of decoding the DC residual value, the index difference between Aver and Pred mapped from the index lookup table is decoded. The index difference is calculated by subtracting the index of Pred from the index of Aver. At the decoder side, the sum of the decoded index difference and the index of Pred is mapped back to the depth value based on the DLT.
除类似于纹理译码的视图间样本预测和视图间运动预测之外,3D-HEVC还采用新工具,即简化帧间模式深度译码(SIDC)。In addition to inter-view sample prediction and inter-view motion prediction similar to texture coding, 3D-HEVC also adopts a new tool, namely simplified inter-mode depth coding (SIDC).
SIDC将SDC的基本想法延伸到帧间模式深度译码。因此,在以下上下文中可将SIDC简称为“帧间SDC”。然而,在许多情况下,贯穿本发明SDC将一般用以指代应用SDC用于帧内或帧间译码。帧间SDC提供替代的残余译码方法,编码器20通过所述方法针对PU仅编码一个DC残余值。编码器20和/或视频解码器30跳过变换和量化,且编码器不需要产生类似于变换树的额外残余。在CU层级在一般译码单元参数中由编码器20用信号表示且由解码器30剖析是否使用了帧间SDC。对于经帧间SDC译码的CU,针对每一PU用信号表示一个DC残余值且将其用作所述PU中的全部样本的残余。举例来说,连同深度帧内或帧间模式信令一起,SDC信令可在CU层级由编码器20执行且由解码器30接收。然而,当CU是以SDC模式译码时,CU可分裂成若干PU,且每一PU可进一步分裂成分区,例如楔波分区或轮廓分区。SDC残余数据可包含针对每一PU内的每一分区用信号表示的DC残余值。因此,在SDC模式中,PU的每一分区可具有DC残余值。SIDC extends the basic idea of SDC to inter-mode depth coding. Therefore, SIDC may be referred to simply as "inter-SDC" in the following context. However, in many cases, throughout this disclosure, SDC will be generally used to refer to the application of SDC for intra- or inter-coding. Inter-SDC provides an alternative residual coding method by which the encoder 20 encodes only one DC residual value for a PU. The encoder 20 and/or video decoder 30 skip transforms and quantization, and the encoder does not need to generate an additional residual similar to a transform tree. Whether inter-SDC is used is signaled by the encoder 20 at the CU level in the general coding unit parameters and parsed by the decoder 30. For inter-SDC coded CUs, one DC residual value is signaled for each PU and used as the residual for all samples in the PU. For example, SDC signaling can be performed by the encoder 20 at the CU level and received by the decoder 30 together with deep intra- or inter-mode signaling. However, when a CU is coded in SDC mode, the CU may be split into several PUs, and each PU may be further split into partitions, such as Wedgelet partitions or outline partitions. The SDC residual data may include a DC residual value signaled for each partition within each PU. Thus, in SDC mode, each partition of a PU may have a DC residual value.
为了减小用于帧间SDC模式的信令位,视频编码器20和/或视频解码器30可将帧间SDC仅应用于非跳过CU。此外,为了避免帧间SDC模式与跳过模式之间的可能重叠,视频编码器20和/或视频解码器30仅当CU内的每一PU的DC残余非零时应用帧间SDC模式。PU的DC残余可被计算为所述PU的分区内的全部样本的原始样本值与预测样本值之间的差的平均。因为仅用信号表示原始块与预测块的分区之间的DC差,所以为了补偿AC差,采用平均移除运动估计用于深度帧间模式译码。To reduce signaling bits for inter SDC mode, video encoder 20 and/or video decoder 30 may apply inter SDC only to non-skipped CUs. Furthermore, to avoid possible overlap between inter SDC mode and skip mode, video encoder 20 and/or video decoder 30 applies inter SDC mode only when the DC residual for each PU within the CU is non-zero. The DC residual for a PU may be calculated as the average of the differences between the original sample values and the predicted sample values for all samples within the partition of the PU. Because only the DC difference between the partitions of the original block and the predicted block is signaled, mean removal motion estimation is employed for deep inter mode coding to compensate for the AC difference.
图5是说明可经配置以实施本发明的技术的实例视频编码器20的框图。图5是出于解释的目的而提供,且不应被视为将技术限制为本发明中所大致例示和描述者。出于解释的目的,本发明在HEVC译码且更确切地说3D-HEVC的上下文中描述视频编码器20。然而,本发明的技术可以适用于其它译码标准或方法。FIG5 is a block diagram illustrating an example video encoder 20 that may be configured to implement the techniques of this disclosure. FIG5 is provided for purposes of explanation and should not be construed as limiting the techniques to those generally illustrated and described in this disclosure. For purposes of explanation, this disclosure describes video encoder 20 in the context of HEVC coding, and more specifically 3D-HEVC. However, the techniques of this disclosure may be applicable to other coding standards or methods.
在图5的实例中,视频编码器20包含预测处理单元100、残余产生单元102、变换处理单元104、量化单元106、逆量化单元108、逆变换处理单元110、重构单元112、滤波器单元114、经解码图片缓冲器116及熵编码单元118。预测处理单元100包含帧间预测处理单元120及帧内预测处理单元126。帧间预测处理单元120包含运动估计(ME)单元122及运动补偿(MC)单元124。为便于说明,将预测处理单元100的组件说明且描述为执行纹理编码和深度编码两者。在一些实例中,纹理和深度编码可由预测处理单元100的相同组件或预测处理单元100内的不同组件执行。举例来说,在一些实施方案中可提供单独的纹理和深度编码器。并且,可提供多个纹理和深度编码器以对多个视图进行编码,例如用于多视图加深度译码。在任一情况下,预测处理单元100可经配置以对纹理数据和深度数据进行帧内或帧间编码,作为例如3D-HEVC过程的3D译码过程的部分。因此,预测处理单元100可大体上根据3D-HEVC操作,经受本发明中所描述的修改和/或添加,例如与用于帧内和帧间预测模式的SDC的信令相关的那些修改和/或添加。预测处理单元100可使用如本发明中所描述的SDC或非SDC残余译码技术产生和编码用于经帧内编码或经帧间编码深度数据的残余数据。当使用SDC时,视频编码器20可编码且用信号表示指示使用SDC用于深度帧内和深度帧间预测模式两者的语法元素。在其它实例中,视频编码器20可包含更多、更少或不同功能组件。In the example of FIG5 , video encoder 20 includes a prediction processing unit 100, a residual generation unit 102, a transform processing unit 104, a quantization unit 106, an inverse quantization unit 108, an inverse transform processing unit 110, a reconstruction unit 112, a filter unit 114, a decoded picture buffer 116, and an entropy encoding unit 118. Prediction processing unit 100 includes an inter-prediction processing unit 120 and an intra-prediction processing unit 126. Inter-prediction processing unit 120 includes a motion estimation (ME) unit 122 and a motion compensation (MC) unit 124. For ease of illustration, the components of prediction processing unit 100 are illustrated and described as performing both texture encoding and depth encoding. In some examples, texture and depth encoding may be performed by the same component of prediction processing unit 100 or by different components within prediction processing unit 100. For example, separate texture and depth encoders may be provided in some implementations. Furthermore, multiple texture and depth encoders may be provided to encode multiple views, such as for multi-view plus depth coding. In either case, prediction processing unit 100 may be configured to intra- or inter-encode texture data and depth data as part of a 3D coding process, such as a 3D-HEVC process. Thus, prediction processing unit 100 may operate generally in accordance with 3D-HEVC, subject to modifications and/or additions described in this disclosure, such as those related to signaling of SDC for intra- and inter-prediction modes. Prediction processing unit 100 may generate and encode residual data for intra- or inter-coded depth data using SDC or non-SDC residual coding techniques as described in this disclosure. When SDC is used, video encoder 20 may encode and signal syntax elements indicating the use of SDC for both depth intra- and depth inter-prediction modes. In other examples, video encoder 20 may include more, fewer, or different functional components.
视频编码器20可以接收视频数据。视频编码器20可对视频数据的图片的切片中每一CTU进行编码。CTU中的每一者可以与图片的大小相等的明度译码树块(CTB)以及对应的CTB相关联。作为对CTU进行编码的一部分,预测处理单元100可以执行四叉树分割以将CTU的CTB划分为逐渐更小的块。这些更小的块可以是CU的译码块。举例来说,预测处理单元100可将与CTU相关联的CTB分割成四个大小相等的子块,将子块中的一或多者分割成四个大小相等的子子块等。Video encoder 20 may receive video data. Video encoder 20 may encode each CTU in a slice of a picture of the video data. Each of the CTUs may be associated with a luma coding tree block (CTB) of equal size in the picture and a corresponding CTB. As part of encoding the CTU, prediction processing unit 100 may perform quadtree partitioning to divide the CTBs of the CTU into progressively smaller blocks. These smaller blocks may be coding blocks of a CU. For example, prediction processing unit 100 may partition the CTB associated with the CTU into four equally sized sub-blocks, partition one or more of the sub-blocks into four equally sized sub-sub-blocks, and so on.
视频编码器20可对CTU的CU进行编码以产生CU的经编码表示(即,经译码的CU)。作为对CU进行编码的部分,预测处理单元100可在CU的一或多个PU当中分割与CU相关联的译码块。因此,每一PU可与明度预测块和对应的色度预测块相关联。Video encoder 20 may encode a CU of a CTU to generate an encoded representation of the CU (i.e., a coded CU). As part of encoding a CU, prediction processing unit 100 may partition the coding blocks associated with the CU among one or more PUs of the CU. Thus, each PU may be associated with a luma prediction block and a corresponding chroma prediction block.
视频编码器20和视频解码器30可支持具有各种大小的PU。如上文所指示,CU的大小可指CU的明度译码块的大小并且PU的大小可指PU的明度预测块的大小。假定特定CU的大小是2Nx2N,那么视频编码器20和视频解码器30可支持用于帧内预测的2Nx2N或NxN的PU大小,以及用于帧间预测的2Nx2N、2NxN、Nx2N、NxN或类似大小的对称PU大小。视频编码器20以及视频解码器30还可以支持用于帧间预测的2NxnU、2NxnD、nLx2N以及nRx2N的PU大小的非对称分割。根据本发明的方面,视频编码器20及视频解码器30还支持用于深度帧间译码的PU的非矩形分区。Video encoder 20 and video decoder 30 may support PUs of various sizes. As indicated above, the size of a CU may refer to the size of the luma coding block of the CU and the size of a PU may refer to the size of the luma prediction block of the PU. Assuming the size of a particular CU is 2Nx2N, video encoder 20 and video decoder 30 may support PU sizes of 2Nx2N or NxN for intra prediction, and symmetric PU sizes of 2Nx2N, 2NxN, Nx2N, NxN, or similar sizes for inter prediction. Video encoder 20 and video decoder 30 may also support asymmetric partitioning of PU sizes of 2NxnU, 2NxnD, nLx2N, and nRx2N for inter prediction. According to aspects of this disclosure, video encoder 20 and video decoder 30 also support non-rectangular partitions of PUs for depth inter coding.
帧间预测处理单元120可通过对CU的每个PU执行帧间预测来产生用于PU的预测性数据。用于PU的预测性数据可以包含PU的预测性样本块以及用于PU的运动信息。帧间预测处理单元120可根据PU是在I切片、P切片还是B切片中而对CU的PU执行不同操作。在I切片中,所有PU都是经帧内预测。因此,如果PU是在I切片中,则帧间预测处理单元120并不对PU执行帧间预测。因此,对于在I模式中编码的块,经预测的块是使用根据同一帧内经先前编码的相邻块进行的空间预测而形成。The inter-prediction processing unit 120 may generate predictive data for each PU of a CU by performing inter-prediction on the PU. The predictive data for the PU may include the predictive sample block of the PU and the motion information for the PU. The inter-prediction processing unit 120 may perform different operations on the PU of a CU depending on whether the PU is in an I slice, a P slice, or a B slice. In an I slice, all PUs are intra-predicted. Therefore, if the PU is in an I slice, the inter-prediction processing unit 120 does not perform inter-prediction on the PU. Therefore, for a block encoded in I mode, the predicted block is formed using spatial prediction based on previously encoded neighboring blocks in the same frame.
如果PU在P切片中,那么运动估计(ME)单元122可针对PU的参考区搜索参考图片列表(例如,“RefPicList0”)中的参考图片。参考图片可存储在经解码图片缓冲器116中。用于PU的参考区可以是在参考图片内含有最紧密地对应于PU的样本块的样本块的区。运动估计(ME)单元122可产生指示含有PU的参考区域的参考图片的RefPicList0中的位置的参考索引。另外,运动估计(ME)单元122可以产生指示PU的译码块与相关联于参考区域的参考位置之间的空间移位的MV。举例来说,MV可为用以提供从当前经解码的图片中的坐标到参考图片中的坐标的偏移的二维向量。运动估计(ME)单元122可以将参考索引以及MV输出为PU的运动信息。基于由PU的运动向量指示的参考位置处的实际样本或经内插样本,运动补偿(MC)单元124可以产生PU的预测性样本块。If the PU is in a P slice, motion estimation (ME) unit 122 may search a reference picture list (e.g., "RefPicList0") for a reference region for the PU. The reference picture may be stored in decoded picture buffer 116. The reference region for the PU may be a region within a reference picture that contains sample blocks that most closely correspond to the sample blocks of the PU. Motion estimation (ME) unit 122 may generate a reference index that indicates the location in RefPicList0 of the reference picture containing the reference region for the PU. In addition, motion estimation (ME) unit 122 may generate an MV that indicates the spatial displacement between the coding block of the PU and a reference location associated with the reference region. For example, the MV may be a two-dimensional vector that provides an offset from coordinates in the current decoded picture to coordinates in the reference picture. Motion estimation (ME) unit 122 may output the reference index and the MV as the motion information for the PU. Based on actual or interpolated samples at the reference location indicated by the PU's motion vector, motion compensation (MC) unit 124 may generate a predictive sample block for the PU.
如果PU是在B切片中,则运动估计单元122可以对PU执行单向预测或双向预测。为了对PU执行单向预测,运动估计单元122可以搜索RefPicList0的参考图片,或用于PU的参考区域的第二参考图片列表(“RefPicList1”)。运动估计(ME)单元122可输出以下各项作为PU的运动信息:指示含有参考区的参考图片在RefPicList0或RefPicList1中的位置的参考索引,指示PU的样本块与和参考区相关联的参考位置之间的空间位移的MV,以及指示参考图片是在RefPicList0还是RefPicList1中的一或多个预测方向指示符。运动补偿(MC)单元124可以至少部分基于由PU的运动向量指示的参考区域处的实际样本或经内插样本来产生PU的预测性样本块。If the PU is in a B slice, motion estimation unit 122 may perform uni-directional prediction or bi-directional prediction on the PU. To perform uni-directional prediction on the PU, motion estimation unit 122 may search the reference picture of RefPicList0 or a second reference picture list ("RefPicList1") for the reference region of the PU. Motion estimation (ME) unit 122 may output the following as motion information for the PU: a reference index indicating the position of the reference picture containing the reference region in RefPicList0 or RefPicList1, an MV indicating the spatial displacement between the sample block of the PU and the reference position associated with the reference region, and one or more prediction direction indicators indicating whether the reference picture is in RefPicList0 or RefPicList1. Motion compensation (MC) unit 124 may generate a predictive sample block for the PU based at least in part on actual or interpolated samples at the reference region indicated by the motion vector of the PU.
为了对PU执行双向帧间预测,运动估计单元122可以在RefPicList0中的参考图片内搜索用于PU的参考区,并且还可以在RefPicList1中的参考图片内搜索用于PU的另一参考区。运动估计(ME)单元122可以产生指示含有参考区域的参考图片的RefPicList0以及RefPicList1中的位置的参考索引。另外,运动估计(ME)单元122可以产生指示与参考区相关联的参考位置与PU的样本块之间的空间移位的MV。PU的运动信息可包含PU的参考索引及MV。运动补偿(MC)单元124可以至少部分基于由PU的运动向量指示的参考区域处的实际样本或经内插样本来产生PU的预测性样本块。To perform bidirectional inter prediction on a PU, motion estimation unit 122 may search for a reference region for the PU within the reference pictures in RefPicList0 and may also search for another reference region for the PU within the reference pictures in RefPicList1. Motion estimation (ME) unit 122 may generate a reference index that indicates a location in RefPicList0 and RefPicList1 of the reference pictures containing the reference region. Additionally, motion estimation (ME) unit 122 may generate an MV that indicates a spatial displacement between the reference location associated with the reference region and the sample block of the PU. The motion information of the PU may include the reference index and the MV for the PU. Motion compensation (MC) unit 124 may generate a predictive sample block for the PU based at least in part on actual or interpolated samples at the reference region indicated by the motion vector of the PU.
帧内预测处理单元126可通过对PU执行帧内预测产生PU的预测性数据。用于PU的预测性数据可以包含用于PU的预测性样本块以及各种语法元素。帧内预测处理单元126可对I切片、P切片及B切片中的PU执行帧内预测。Intra-prediction processing unit 126 may generate predictive data for a PU by performing intra prediction on the PU. The predictive data for the PU may include a predictive sample block for the PU and various syntax elements. Intra-prediction processing unit 126 may perform intra prediction on PUs in I slices, P slices, and B slices.
为了对PU执行帧内预测,帧内预测处理单元126可使用多个帧内预测模式以产生PU的多个预测性数据集合,且随后例如使用速率失真优化技术选择帧内预测模式中产生可接受或最佳译码性能的一者。为了使用帧内预测模式以产生用于PU的一组预测性数据,帧内预测处理单元126可以在与帧内预测模式相关联的方向上将样本从相邻PU的样本块延伸跨越PU的样本块。假定对于PU、CU和CTU采用从左到右、从上到下的编码次序,相邻PU可在所述PU的上方、右上方、左上方或左方。帧内预测处理单元126可使用各种数目的帧内预测模式,例如,33个方向性帧内预测模式。在一些实例中,帧内预测模式的数目可以取决于与PU相关联的区域的大小。To perform intra prediction on a PU, intra-prediction processing unit 126 may use multiple intra-prediction modes to generate multiple sets of predictive data for the PU, and then select one of the intra-prediction modes that produces acceptable or optimal coding performance, for example, using rate-distortion optimization techniques. To use an intra-prediction mode to generate a set of predictive data for a PU, intra-prediction processing unit 126 may extend samples from a sample block of a neighboring PU across the sample block of the PU in a direction associated with the intra-prediction mode. Assuming a left-to-right, top-to-bottom coding order for PUs, CUs, and CTUs, the neighboring PU may be above, to the right, to the left, or to the left of the PU. Intra-prediction processing unit 126 may use various numbers of intra-prediction modes, for example, 33 directional intra-prediction modes. In some examples, the number of intra-prediction modes may depend on the size of the region associated with the PU.
预测处理单元100可从PU的由帧间预测处理单元120产生的预测性数据或PU的由帧内预测处理单元126产生的预测性数据当中选择CU的PU的预测性数据。在一些实例中,预测处理单元100基于预测性数据集合的速率/失真量度选择CU的PU的预测性数据。所选预测性数据的预测性样本块在本文中可被称为所选预测性样本块。Prediction processing unit 100 may select predictive data for PUs of a CU from among the predictive data for the PUs generated by inter-prediction processing unit 120 or the predictive data for the PUs generated by intra-prediction processing unit 126. In some examples, prediction processing unit 100 selects the predictive data for the PUs of the CU based on rate/distortion metrics of the predictive data sets. The predictive sample block of the selected predictive data may be referred to herein as a selected predictive sample block.
残余产生单元102可基于CU的明度、Cb及Cr译码块以及CU的PU的所选预测性明度、Cb及Cr块产生CU的明度、Cb及Cr残余块。举例来说,残余产生单元102可产生CU的残余块以使得残余块中的每一样本具有等于CU的译码块中的样本与CU的PU的对应选定预测性样本块中的对应样本之间的差的值。Residual generation unit 102 may generate a luma, Cb, and Cr residual block for a CU based on the luma, Cb, and Cr coding blocks of the CU and the selected predictive luma, Cb, and Cr blocks of the PUs of the CU. For example, residual generation unit 102 may generate the residual block for the CU such that each sample in the residual block has a value equal to the difference between a sample in the coding block of the CU and a corresponding sample in a corresponding selected predictive sample block of the PUs of the CU.
变换处理单元104可以执行四叉树分割以将与CU相关联的残余块分割成与CU的TU相关联的变换块。因此,TU可以与明度变换块以及两个色度变换块相关联。CU的TU的明度变换块以及色度变换块的大小和位置可以或可不基于CU的PU的预测块的大小和位置。被称为“残余四叉树”(RQT)的四叉树结构可以包含与区域中的每一者相关联的节点。CU的TU可以对应于RQT的叶节点。Transform processing unit 104 may perform quadtree partitioning to partition the residual blocks associated with a CU into transform blocks associated with the TUs of the CU. Thus, a TU may be associated with a luma transform block and two chroma transform blocks. The size and position of the luma transform block and the chroma transform blocks of the TUs of the CU may or may not be based on the size and position of the prediction blocks of the PUs of the CU. A quadtree structure called a "residual quadtree" (RQT) may include a node associated with each of the regions. The TUs of a CU may correspond to leaf nodes of the RQT.
变换处理单元104可以通过将一或多个变换应用到TU的变换块而产生用于CU的每一TU的变换系数块。变换处理单元104可将各种变换应用到与TU相关联的变换块。例如,变换处理单元104可以将离散余弦变换(DCT)、定向变换或概念上类似的变换应用于变换块。在一些实例中,变换处理单元104并不将变换应用于变换块。在此类实例中,变换块可以处理为变换系数块。Transform processing unit 104 may generate a transform coefficient block for each TU of a CU by applying one or more transforms to the transform blocks of the TU. Transform processing unit 104 may apply various transforms to the transform blocks associated with the TU. For example, transform processing unit 104 may apply a discrete cosine transform (DCT), a directional transform, or a conceptually similar transform to the transform blocks. In some examples, transform processing unit 104 does not apply a transform to the transform blocks. In such examples, the transform blocks may be processed as transform coefficient blocks.
量化单元106可量化系数块中的变换系数。量化过程可减少与变换系数中的一些或全部相关联的位深度。举例来说,n位变换系数可在量化期间舍入到m位变换系数,其中n大于m。量化单元106可基于与CU相关联的量化参数(QP)值量化与CU的TU相关联的系数块。视频编码器20可以通过调整与CU相关联的QP值来调整应用于与CU相关联的系数块的量化的程度。量化可能使得信息丢失,因此经量化的变换系数可以具有比原始变换系数更低的精度。Quantization unit 106 may quantize the transform coefficients in a coefficient block. The quantization process may reduce the bit depth associated with some or all of the transform coefficients. For example, an n-bit transform coefficient may be rounded to an m-bit transform coefficient during quantization, where n is greater than m. Quantization unit 106 may quantize a coefficient block associated with a TU of a CU based on a quantization parameter (QP) value associated with the CU. Video encoder 20 may adjust the degree of quantization applied to a coefficient block associated with a CU by adjusting the QP value associated with the CU. Quantization may result in a loss of information, and thus, the quantized transform coefficients may have lower precision than the original transform coefficients.
逆量化单元108以及逆变换处理单元110可以分别将逆量化以及逆变换应用于系数块,以从系数块重构残余块。重构单元112可以将经重构的残余块添加到来自由预测处理单元100产生的一或多个预测性样本块的对应样本,以产生与TU相关联的经重构变换块。通过以此方式重构CU的每一TU的变换块,视频编码器20可重构CU的译码块。Inverse quantization unit 108 and inverse transform processing unit 110 may apply inverse quantization and inverse transform, respectively, to the coefficient block to reconstruct a residual block from the coefficient block. Reconstruction unit 112 may add the reconstructed residual block to corresponding samples from one or more predictive sample blocks generated by prediction processing unit 100 to produce a reconstructed transform block associated with the TU. By reconstructing the transform blocks for each TU of a CU in this manner, video encoder 20 can reconstruct the coding blocks of the CU.
滤波器单元114可执行一或多个解块操作以减小与CU相关联的译码块中的成块假象。经解码图片缓冲器116可以在滤波器单元114对经重构的译码块执行一或多个解块操作之后存储经重构的译码块。帧间预测单元120可使用含有重构译码块的参考图片来对其它图片的PU执行帧间预测。另外,帧内预测处理单元126可使用经解码图片缓冲器116中的经重构的译码块以对处于与CU相同的图片中的其它PU执行帧内预测。Filter unit 114 may perform one or more deblocking operations to reduce blocking artifacts in the coding blocks associated with the CU. Decoded picture buffer 116 may store the reconstructed coding blocks after filter unit 114 performs the one or more deblocking operations on the reconstructed coding blocks. Inter-prediction unit 120 may use a reference picture containing the reconstructed coding blocks to perform inter prediction on PUs of other pictures. Additionally, intra-prediction processing unit 126 may use the reconstructed coding blocks in decoded picture buffer 116 to perform intra prediction on other PUs in the same picture as the CU.
熵编码单元118可以从视频编码器20的其它功能组件接收数据。例如,熵编码单元118可以从量化单元106接收系数块,并且可以从预测处理单元100接收语法元素。熵编码单元118可以对数据执行一或多个熵编码操作以产生经熵编码的数据。例如,熵编码单元118可以对数据执行上下文自适应可变长度译码(CAVLC)操作、CABAC操作、可变到可变(V2V)长度译码操作、基于语法的上下文自适应二进制算术译码(SBAC)操作、概率区间分割熵(PIPE)译码操作、指数哥伦布编码操作或另一类型的熵编码操作。视频编码器20可以输出包含由熵编码单元118产生的经熵编码的数据的位流。例如,位流可以包含表示用于CU的RQT的数据。Entropy coding unit 118 may receive data from other functional components of video encoder 20. For example, entropy coding unit 118 may receive coefficient blocks from quantization unit 106 and may receive syntax elements from prediction processing unit 100. Entropy coding unit 118 may perform one or more entropy coding operations on the data to generate entropy-encoded data. For example, entropy coding unit 118 may perform a context-adaptive variable length coding (CAVLC) operation, a CABAC operation, a variable-to-variable (V2V) length coding operation, a syntax-based context-adaptive binary arithmetic coding (SBAC) operation, a probability interval partitioning entropy (PIPE) coding operation, an exponential Golomb coding operation, or another type of entropy coding operation on the data. Video encoder 20 may output a bitstream containing the entropy-encoded data generated by entropy coding unit 118. For example, the bitstream may include data representing an RQT for a CU.
视频编码器20是经配置以如本文中所描述执行用于深度帧内预测或深度帧间预测的简化残余译码的技术中的任一者的视频编码器的实例。根据本发明的一或多种技术,视频编码器20内的一或多个单元可执行本文中描述的一或多种技术作为视频编码过程的部分。类似地,视频编码器20可使用本发明的技术中的任一者执行视频解码过程以再生用作用于随后经译码视频数据的参考的视频数据。如上文所论述,视频解码过程中可利用逆量化单元108、逆变换处理单元110和重构单元112,以及视频编码器20的其它元件。视频编码器20内也可以包含额外3D处理组件。Video encoder 20 is an example of a video encoder configured to perform any of the techniques for simplified residual coding for deep intra prediction or deep inter prediction as described herein. In accordance with one or more techniques of this disclosure, one or more units within video encoder 20 may perform one or more techniques described herein as part of a video encoding process. Similarly, video encoder 20 may perform a video decoding process using any of the techniques of this disclosure to regenerate video data used as a reference for subsequently coded video data. As discussed above, inverse quantization unit 108, inverse transform processing unit 110, and reconstruction unit 112, as well as other elements of video encoder 20, may be utilized in the video decoding process. Additional 3D processing components may also be included within video encoder 20.
举例来说,预测处理单元100且更确切地说帧间预测处理单元120和帧内预测处理单元126可如本文中所描述分别执行用于深度块的深度帧间预测和深度帧内预测编码的SDC模式。帧间预测处理单元120和帧内预测处理单元126在使用时可各自确定深度块(例如,PU)或其每一分区的DC残余值。预测处理单元120可以统一方式产生指示SDC用于当前PU以用于深度帧内预测和深度帧间预测的语法元素和/或语法结构,如本发明的各种实例中所描述。For example, prediction processing unit 100, and more particularly, inter-prediction processing unit 120 and intra-prediction processing unit 126 may perform SDC mode for depth inter prediction and depth intra prediction encoding of a depth block, respectively, as described herein. Inter-prediction processing unit 120 and intra-prediction processing unit 126, when used, may each determine a DC residual value for a depth block (e.g., a PU) or each partition thereof. Prediction processing unit 120 may generate syntax elements and/or syntax structures indicating that SDC is used for the current PU for depth intra prediction and depth inter prediction in a unified manner, as described in various examples of this disclosure.
帧内预测处理单元126或帧间预测处理单元120可将深度块的DC残余值连同其它语法信息一起提供到熵编码单元118,例如如图5中的虚线所说明。帧内预测处理单元126或帧间预测处理单元120可将DC残余值提供到熵编码单元118而所述值无需由变换处理单元104和量化单元106处理。在其它实例中,量化单元106可在熵编码单元118的熵译码之前量化DC残余值。所述语法信息可包含本文与本发明的技术结合针对信令所描述的各种信息、旗标或其它语法元素。Intra-prediction processing unit 126 or inter-prediction processing unit 120 may provide the DC residual value of the depth block along with other syntax information to entropy encoding unit 118, e.g., as illustrated by the dashed line in FIG5 . Intra-prediction processing unit 126 or inter-prediction processing unit 120 may provide the DC residual value to entropy encoding unit 118 without the value being processed by transform processing unit 104 and quantization unit 106. In other examples, quantization unit 106 may quantize the DC residual value prior to entropy coding by entropy encoding unit 118. The syntax information may include various information, flags, or other syntax elements described herein in connection with the techniques of this disclosure for signaling.
举例来说,语法信息可(作为实例)指示SDC模式是否针对深度块执行、基于分区(例如,3D-HEVC)或非基于分区(HEVC)的模式是否用以确定DC残余值,以及哪一深度帧内预测模式用以确定DC残余值。另外,所述语法信息可以统一方式指示SDC模式是否使用CU,而与帧内预测或帧间预测是否用于CU无关,即,视具体情况用于深度帧内预测或深度帧间预测。根据SDC模式,视频编码器20经配置以:基于深度帧内预测模式或深度帧间预测模式中的所指示一者而确定深度块(例如,CU的PU的分区)的至少一个DC残余值,其中所述DC残余值表示深度块的多个像素的残余值;且将表示所述DC残余值的DC残余值或信息编码到位流中。For example, the syntax information may indicate, as an example, whether SDC mode is performed for a depth block, whether a partition-based (e.g., 3D-HEVC) or non-partition-based (HEVC) mode is used to determine a DC residual value, and which depth intra prediction mode is used to determine the DC residual value. In addition, the syntax information may indicate, in a uniform manner, whether SDC mode uses a CU, regardless of whether intra prediction or inter prediction is used for the CU, i.e., for depth intra prediction or depth inter prediction, as the case may be. According to the SDC mode, the video encoder 20 is configured to: determine at least one DC residual value for a depth block (e.g., a partition of a PU of a CU) based on the indicated one of the depth intra prediction mode or the depth inter prediction mode, wherein the DC residual value represents a residual value of a plurality of pixels of the depth block; and encode the DC residual value or information representing the DC residual value into the bitstream.
视频编码器20是包括存储视频数据的存储器以及经配置以执行方法的一或多个处理器的视频编码器的实例,所述方法包括:当深度CU经帧内预测时在所述视频编码器中执行帧内预测以产生预测深度CU;当所述深度CU经帧间预测时在所述视频编码器中执行帧间预测以产生预测深度CU;当使用简化深度译码(SDC)模式时,对于所述深度CU的预测单元(PU)的每一分区,在所述视频编码器中产生表示所述深度CU的至少一个DC残余值的信息,其中所述至少一个DC残余值表示所述深度CU的PU的分区与预测深度CU的对应分区之间的像素差;当使用SDC模式时在视频解码器中产生指示SDC模式用于视频数据的深度译码单元(CU)的帧内预测和帧间预测两者的语法元素;以及基于表示所述至少一个DC残余值和所述语法元素的信息在所述视频编码器中对所述深度CU进行编码。The video encoder 20 is an example of a video encoder that includes a memory for storing video data and one or more processors configured to perform a method, the method comprising: performing intra-frame prediction in the video encoder to generate a predicted depth CU when the depth CU is intra-frame predicted; performing inter-frame prediction in the video encoder to generate a predicted depth CU when the depth CU is inter-frame predicted; when using simplified depth coding (SDC) mode, for each partition of a prediction unit (PU) of the depth CU, generating in the video encoder information representing at least one DC residual value of the depth CU, wherein the at least one DC residual value represents a pixel difference between a partition of the PU of the depth CU and a corresponding partition of the predicted depth CU; when using the SDC mode, generating in a video decoder a syntax element indicating that the SDC mode is used for both intra-frame prediction and inter-frame prediction of a depth coding unit (CU) of video data; and encoding the depth CU in the video encoder based on the information representing the at least one DC residual value and the syntax element.
视频编码器20还是包括存储视频数据的存储器以及经配置以执行方法的一或多个处理器的视频编码器的实例,所述方法包括:当视频数据的深度译码单元(CU)经帧内预测时在所述视频编码器中执行帧内预测以产生预测深度CU;当所述深度CU经帧间预测时在所述视频编码器中执行帧间预测以产生预测深度CU;当使用简化深度译码(SDC)模式时在视频编码中对包括指示表示所述深度CU的预测单元(PU)的分区的至少一个DC残余值的信息的一或多个语法元素的语法结构进行译码,其中所述语法结构的语法元素对于帧内预测和帧间预测是相同的;以及基于表示所述至少一个DC残余值的信息而在视频编码器中编码所述深度CU。The video encoder 20 is also an example of a video encoder that includes a memory for storing video data and one or more processors configured to perform a method, the method comprising: performing intra-frame prediction in the video encoder to generate a predicted depth CU when a depth coding unit (CU) of the video data is intra-frame predicted; performing inter-frame prediction in the video encoder to generate a predicted depth CU when the depth CU is inter-frame predicted; decoding a syntax structure including one or more syntax elements indicating information of at least one DC residual value of a partition of a prediction unit (PU) representing the depth CU when a simplified depth coding (SDC) mode is used in video encoding, wherein the syntax elements of the syntax structure are the same for intra-frame prediction and inter-frame prediction; and encoding the depth CU in the video encoder based on the information representing the at least one DC residual value.
视频编码器20还是包括存储视频数据的存储器以及经配置以执行方法的一或多个处理器的视频编码器的实例,所述方法包括:在视频编码器中对指示简化深度译码(SDC)模式是否针对经译码视频数据的整个序列的深度译码单元(CU)经启用的语法元素进行编码;对指示所述SDC模式是否用于所述序列的深度CU中的一者的帧内预测和帧间预测两者的第二语法元素进行编码;当所述序列的深度CU中的一者经帧内预测时,在视频编码器中执行帧内预测以产生预测深度CU;当所述序列的深度CU中的一者经帧间预测时,在视频编码器执行帧间预测以产生预测深度CU;以及当所述第二语法元素指示使用SDC模式时,对表示所述序列的深度CU中的所述一者的预测单元(PU)的分区的至少一个DC残余值的信息进行编码。The video encoder 20 is also an example of a video encoder that includes a memory for storing video data and one or more processors configured to perform a method, the method comprising: encoding, in the video encoder, a syntax element indicating whether a simplified depth coding (SDC) mode is enabled for depth coding units (CUs) of an entire sequence of coded video data; encoding a second syntax element indicating whether the SDC mode is used for both intra-prediction and inter-prediction of one of the depth CUs of the sequence; when one of the depth CUs of the sequence is intra-predicted, performing intra-prediction in the video encoder to generate a predicted depth CU; when one of the depth CUs of the sequence is inter-predicted, performing inter-prediction in the video encoder to generate a predicted depth CU; and when the second syntax element indicates that the SDC mode is used, encoding information of at least one DC residual value for a partition of a prediction unit (PU) of the one of the depth CUs of the sequence.
图6是说明经配置以执行本发明的技术的实例视频解码器30的框图。图6是出于解释的目的而提供,且不应被视为将技术限制为本发明中所大致例示及描述者。出于解释的目的,本发明在HEVC译码并且确切地说3D-HEVC译码的上下文中描述视频解码器30。然而,本发明的技术可适用于其它3D视频译码标准或方法。FIG6 is a block diagram illustrating an example video decoder 30 configured to perform the techniques of this disclosure. FIG6 is provided for purposes of explanation and should not be construed as limiting the techniques to those generally illustrated and described in this disclosure. For purposes of explanation, this disclosure describes video decoder 30 in the context of HEVC coding, and more specifically, 3D-HEVC coding. However, the techniques of this disclosure may be applicable to other 3D video coding standards or methods.
在图6的实例中,视频解码器30包含熵解码单元150、预测处理单元152、逆量化单元154、逆变换处理单元156、重构单元158、滤波器单元160及经解码图片缓冲器162。预测处理单元152包含运动补偿(MC)单元164和帧内预测处理单元166。为便于说明,将预测处理单元152的组件说明且描述为执行纹理解码和深度解码两者。在一些实例中,纹理和深度解码可由预测处理单元152的相同组件或预测处理单元152内的不同组件执行。举例来说,在一些实施方案中可提供单独的纹理和深度解码器。并且,可提供多个纹理和深度解码器以对多个视图进行解码,例如用于多视图加深度译码。在任一情况下,预测处理单元152可经配置以对纹理数据和深度数据进行帧内或帧间解码,作为例如3D-HEVC过程的3D译码过程的部分。因此,预测处理单元152可大体上根据3D-HEVC操作,经受本发明中所描述的修改和/或添加,例如与用于帧内和帧间预测模式的SDC的信令相关的那些修改和/或添加。预测处理单元152可使用如本发明中所描述的SDC或非SDC残余译码技术从经帧内解码或经帧间解码的深度数据的经编码视频位流获得残余数据,且使用经帧内预测或经帧间预测深度数据和所述残余数据重构CU。当使用SDC时,视频解码器30可对指示使用SDC用于深度帧内和深度帧间预测模式两者的语法元素进行解码。在其它实例中,视频解码器30可包含较多、较少或不同的功能组件。In the example of FIG6 , video decoder 30 includes an entropy decoding unit 150, a prediction processing unit 152, an inverse quantization unit 154, an inverse transform processing unit 156, a reconstruction unit 158, a filter unit 160, and a decoded picture buffer 162. Prediction processing unit 152 includes a motion compensation (MC) unit 164 and an intra-prediction processing unit 166. For ease of illustration, the components of prediction processing unit 152 are illustrated and described as performing both texture decoding and depth decoding. In some examples, texture and depth decoding may be performed by the same component of prediction processing unit 152 or by different components within prediction processing unit 152. For example, in some implementations, separate texture and depth decoders may be provided. Furthermore, multiple texture and depth decoders may be provided to decode multiple views, such as for multi-view plus depth coding. In either case, prediction processing unit 152 may be configured to perform intra- or inter-decoding of texture data and depth data as part of a 3D coding process, such as a 3D-HEVC process. Thus, prediction processing unit 152 may generally operate in accordance with 3D-HEVC, subject to modifications and/or additions described in this disclosure, such as those related to signaling of SDC for intra- and inter-prediction modes. Prediction processing unit 152 may obtain residual data from an encoded video bitstream of intra-decoded or inter-decoded depth data using SDC or non-SDC residual coding techniques as described in this disclosure, and reconstruct a CU using the intra-predicted or inter-predicted depth data and the residual data. When SDC is used, video decoder 30 may decode syntax elements indicating the use of SDC for both depth intra- and depth inter-prediction modes. In other examples, video decoder 30 may include more, fewer, or different functional components.
视频解码器30可接收位流。熵解码单元150可以剖析位流以对来自位流的语法元素进行解码。熵解码单元150可以对位流中的经熵编码的语法元素进行熵解码。预测处理单元152、逆量化单元154、逆变换处理单元156、重构单元158和滤波器单元160可基于从位流提取的语法元素而产生经解码视频数据。Video decoder 30 may receive a bitstream. Entropy decoding unit 150 may parse the bitstream to decode syntax elements from the bitstream. Entropy decoding unit 150 may entropy decode the entropy-encoded syntax elements in the bitstream. Prediction processing unit 152, inverse quantization unit 154, inverse transform processing unit 156, reconstruction unit 158, and filter unit 160 may generate decoded video data based on the syntax elements extracted from the bitstream.
位流可包括一系列NAL单元。位流的NAL单元可包含经译码切片的NAL单元。作为对位流进行编码的一部分,熵解码单元150可以从经译码的切片NAL单元提取语法元素并且对所述语法元素进行熵解码。经译码切片中的每一者可包含切片标头以及切片数据。切片标头可以含有关于切片的语法元素。切片标头中的语法元素可包含识别与含有切片的图片相关联的PPS的语法元素。PPS可参考SPS,SPS又可参考VPS。熵解码单元150还可对可包含语法信息的其它元素(例如SEI消息)进行熵解码。The bitstream may include a series of NAL units. The NAL units of the bitstream may include NAL units for coded slices. As part of encoding the bitstream, entropy decoding unit 150 may extract syntax elements from the coded slice NAL units and entropy decode the syntax elements. Each of the coded slices may include a slice header and slice data. The slice header may contain syntax elements related to the slice. The syntax elements in the slice header may include syntax elements that identify the PPS associated with the picture containing the slice. The PPS may reference the SPS, which in turn may reference the VPS. Entropy decoding unit 150 may also entropy decode other elements that may include syntax information, such as SEI messages.
切片标头、参数集或SEI消息中的任一者中的经解码语法元素可包含本文中描述为用信号表示以根据本发明中所描述的实例技术执行SDC模式的信息。举例来说,所述经解码语法元素可如本发明中所描述以统一方式指示SDC模式是否针对用于深度帧内预测和深度帧间预测模式两者的深度块执行。可将此语法信息提供到预测处理单元152以用于根据本发明中描述的技术解码和重构深度块。The decoded syntax elements in any of the slice header, parameter set, or SEI message may include information described herein as signaling to perform SDC mode according to the example techniques described in this disclosure. For example, the decoded syntax elements may indicate whether SDC mode is performed for depth blocks used for both depth intra prediction and depth inter prediction modes in a unified manner as described in this disclosure. This syntax information may be provided to prediction processing unit 152 for use in decoding and reconstructing depth blocks according to the techniques described in this disclosure.
一般来说,除了对来自位流的语法元素进行解码之外,视频解码器30可以对未分割CU执行重构操作。为对未经分割CU执行重构操作,视频解码器30可对CU的每一TU执行重构操作。通过对CU的每一TU执行重构操作,视频解码器30可重构CU的块。In general, in addition to decoding syntax elements from the bitstream, video decoder 30 may perform a reconstruction operation on a non-partitioned CU. To perform the reconstruction operation on a non-partitioned CU, video decoder 30 may perform the reconstruction operation on each TU of the CU. By performing the reconstruction operation on each TU of the CU, video decoder 30 may reconstruct the blocks of the CU.
作为对CU的TU执行重构操作的一部分,逆量化单元154可逆量化(即,解量化)与TU相关联的系数块。逆量化单元154可使用与TU的CU相关联的QP值来确定量化的程度和(同样)逆量化单元154将应用的逆量化的程度。即,可通过调整当量化变换系数时所使用的QP的值来控制压缩比,即用以表示原始序列以及经压缩的序列的位的数目的比率。压缩比还可取决于所采用的熵译码的方法。As part of performing a reconstruction operation on a TU of a CU, inverse quantization unit 154 may inversely quantize (i.e., dequantize) a coefficient block associated with the TU. Inverse quantization unit 154 may use the QP value associated with the CU of the TU to determine the degree of quantization and (likely) the degree of inverse quantization that inverse quantization unit 154 will apply. That is, the compression ratio, i.e., the ratio of the number of bits used to represent the original sequence and the compressed sequence, may be controlled by adjusting the value of the QP used when quantizing the transform coefficients. The compression ratio may also depend on the entropy coding method employed.
在逆量化单元154逆量化系数块之后,逆变换处理单元156可将一或多个逆变换应用于系数块以便产生与TU相关联的残余块。例如,逆变换处理单元156可以将逆DCT、逆整数变换、逆卡忽南-拉维(Karhunen-Loeve)变换(KLT)、逆旋转变换、逆定向变换或另一逆变换应用于系数块。After inverse quantization unit 154 inverse quantizes the coefficient block, inverse transform processing unit 156 may apply one or more inverse transforms to the coefficient block to generate a residual block associated with the TU. For example, inverse transform processing unit 156 may apply an inverse DCT, an inverse integer transform, an inverse Karhunen-Loeve transform (KLT), an inverse rotational transform, an inverse directional transform, or another inverse transform to the coefficient block.
如果使用帧内预测对PU进行编码,那么帧内预测处理单元166可执行帧内预测以产生PU的预测性块。帧内预测处理单元166可以使用帧内预测模式,以基于空间上相邻的PU的预测块产生用于PU的预测性明度块、Cb块以及Cr块。帧内预测处理单元166可基于从位流解码的一或多个语法元素确定用于PU的帧内预测模式。If the PU is encoded using intra prediction, intra-prediction processing unit 166 may perform intra prediction to generate predictive blocks for the PU. Intra-prediction processing unit 166 may use an intra prediction mode to generate predictive luma blocks, Cb blocks, and Cr blocks for the PU based on the prediction blocks of spatially neighboring PUs. Intra-prediction processing unit 166 may determine the intra prediction mode for the PU based on one or more syntax elements decoded from the bitstream.
预测处理单元152可基于从位流提取的语法元素来构造第一参考图片列表(RefPicList0)及第二参考图片列表(RefPicList1)。此外,如果使用帧间预测对PU进行编码,则熵解码单元150可以提取用于PU的运动信息。运动补偿(MC)单元164可基于PU的运动信息而确定用于PU的一或多个参考区。运动补偿(MC)单元164可以基于在用于PU的一或多个参考块处的样本块产生用于PU的预测性明度块、Cb块以及Cr块。Prediction processing unit 152 may construct a first reference picture list (RefPicList0) and a second reference picture list (RefPicList1) based on syntax elements extracted from the bitstream. In addition, if the PU is encoded using inter prediction, entropy decoding unit 150 may extract motion information for the PU. Motion compensation (MC) unit 164 may determine one or more reference regions for the PU based on the motion information of the PU. Motion compensation (MC) unit 164 may generate a predictive luma block, a Cb block, and a Cr block for the PU based on sample blocks at one or more reference blocks for the PU.
现在继续参考图6。重构单元158可以在适当时使用与CU的TU相关联的明度变换块、Cb变换块和Cr变换块以及CU的PU的预测性明度块、Cb块及Cr块(即,帧内预测数据或帧间预测数据)来重构CU的明度译码块、Cb译码块以及Cr译码块。举例来说,重构单元158可将明度、Cb及Cr变换块的样本添加至预测性明度、Cb及Cr块的对应样本以重构CU的明度、Cb及Cr译码块。6 . Reconstruction unit 158 may reconstruct the luma, Cb, and Cr coding blocks of the CU using the luma transform blocks, Cb transform blocks, and Cr transform blocks associated with the TUs of the CU and the predictive luma, Cb, and Cr blocks of the PUs of the CU (i.e., intra prediction data or inter prediction data), as appropriate. For example, reconstruction unit 158 may add samples of the luma, Cb, and Cr transform blocks to corresponding samples of the predictive luma, Cb, and Cr blocks to reconstruct the luma, Cb, and Cr coding blocks of the CU.
滤波器单元160可执行解块操作以减少与CU的明度、Cb及Cr译码块相关联的成块假象。视频解码器30可以在经解码图片缓冲器162中存储CU的明度译码块、Cb译码块以及Cr译码块。经解码图片缓冲器162可提供参考图片以用于后续运动补偿、帧内预测以及在例如图1的显示装置32等显示装置上的呈现。举例来说,视频解码器30可基于经解码图片缓冲器162中的明度、Cb及Cr块对其它CU的PU执行帧内预测或帧间预测操作。以此方式,视频解码器30可以从位流提取大量明度系数块的变换系数层级,逆量化变换系数层级,对变换系数层级应用变换以产生变换块,至少部分基于变换块产生译码块并且输出译码块用于显示。Filter unit 160 may perform a deblocking operation to reduce blocking artifacts associated with the luma, Cb, and Cr coding blocks of a CU. Video decoder 30 may store the luma, Cb, and Cr coding blocks of the CU in decoded picture buffer 162. Decoded picture buffer 162 may provide reference pictures for subsequent motion compensation, intra-prediction, and presentation on a display device, such as display device 32 of FIG. 1 . For example, video decoder 30 may perform intra-prediction or inter-prediction operations on PUs of other CUs based on the luma, Cb, and Cr blocks in decoded picture buffer 162. In this manner, video decoder 30 may extract transform coefficient levels for a large number of luma coefficient blocks from a bitstream, inverse quantize the transform coefficient levels, apply a transform to the transform coefficient levels to generate transform blocks, generate coded blocks based at least in part on the transform blocks, and output the coded blocks for display.
视频解码器30是经配置以如本文中所描述执行用于统一信令和剖析指示使用SDC用于深度帧内预测模式和深度帧间预测模式两者的语法元素的技术中的任一者的视频解码器的实例。根据本发明的一或多种技术,视频解码器30内的一或多个单元可执行本文中描述的一或多种技术作为视频解码过程的部分。视频解码器30内也可以包含额外3D译码组件。Video decoder 30 is an example of a video decoder configured to perform any of the techniques for unifying signaling and parsing syntax elements indicating the use of SDC for both depth intra prediction mode and depth inter prediction mode as described herein. In accordance with one or more techniques of this disclosure, one or more units within video decoder 30 may perform one or more techniques described herein as part of the video decoding process. Additional 3D coding components may also be included within video decoder 30.
举例来说,预测处理单元152并且更确切地说帧内预测处理单元166和运动补偿(MC)单元164可确定在适用时是否在例如3D-HEVC的3D视频译码过程的深度帧内预测模式和深度帧间预测模式中执行SDC。熵解码单元150可对深度块的一或多个DC残余值以及本文所描述的语法信息进行熵解码,所述语法信息例如指示是否使用深度帧内预测或深度帧间预测对所述块进行编码以及是否针对深度帧内预测或深度帧间预测执行SDC模式以对所述块进行编码。以此方式,解码器30基于例如sdc_flag的语法元素确定是否使用SDC对当前CU(即,深度块)进行解码,且可使用相同语法结构或语法结构的不同实例来获得残余值以与经帧内预测深度块或经帧间预测深度块一起使用以重构CU。For example, prediction processing unit 152, and more particularly intra-prediction processing unit 166 and motion compensation (MC) unit 164, may determine whether to perform SDC in depth intra prediction mode and depth inter prediction mode of a 3D video coding process such as 3D-HEVC, when applicable. Entropy decoding unit 150 may entropy decode one or more DC residual values of a depth block and syntax information described herein, such as whether to use depth intra prediction or depth inter prediction to encode the block and whether to perform SDC mode for depth intra prediction or depth inter prediction to encode the block. In this manner, decoder 30 determines whether to use SDC to decode the current CU (i.e., depth block) based on syntax elements such as sdc_flag, and may use the same syntax structure or different instances of the syntax structure to obtain residual values for use with an intra-predicted depth block or an inter-predicted depth block to reconstruct the CU.
熵解码单元150可将块的DC残余值和语法信息提供到预测处理单元152,如图6中的虚线指示。以此方式,DC残余值无需首先提供到用于逆量化和逆变换的逆量化单元154和逆变换处理单元156。在其它实例中,逆量化单元154可逆量化DC残余值,且将经解量化DC残余值提供到预测处理单元152。Entropy decoding unit 150 may provide the DC residual value and syntax information for the block to prediction processing unit 152, as indicated by the dashed line in FIG6 . In this manner, the DC residual value need not first be provided to inverse quantization unit 154 and inverse transform processing unit 156 for inverse quantization and inverse transformation. In other examples, inverse quantization unit 154 may inverse quantize the DC residual value and provide the dequantized DC residual value to prediction processing unit 152.
运动补偿(MC)单元164可例如根据本文所描述的技术中的任一者基于如由语法信息指示的深度帧间预测模式确定用于深度块的预测符值。运动补偿(MC)单元164可利用从存储在经解码图片缓冲器162中的参考图片重构的深度块来确定经帧间预测深度块的预测符值。如果指示SDC模式,即用于深度帧内预测和帧间预测两者,那么运动补偿(MC)单元164应用SDC以重构深度块。运动补偿(MC)单元164可通过将DC残余值与预测符值求和而重构深度块。在一些实例中,运动补偿(MC)单元164可利用重构单元158用于经帧间预测深度块的残余和预测符值的求和。举例来说,熵解码单元150可将DC残余值提供到重构单元158,且运动补偿(MC)单元164可将预测符值提供到重构单元。Motion compensation (MC) unit 164 may determine a predictor value for the depth block based on the depth inter prediction mode as indicated by the syntax information, e.g., according to any of the techniques described herein. Motion compensation (MC) unit 164 may utilize a depth block reconstructed from a reference picture stored in decoded picture buffer 162 to determine the predictor value for the inter-predicted depth block. If SDC mode is indicated, i.e., for both depth intra prediction and inter prediction, motion compensation (MC) unit 164 applies SDC to reconstruct the depth block. Motion compensation (MC) unit 164 may reconstruct the depth block by summing the DC residual value with the predictor value. In some examples, motion compensation (MC) unit 164 may utilize reconstruction unit 158 for summing the residual and predictor value for the inter-predicted depth block. For example, entropy decoding unit 150 may provide the DC residual value to reconstruction unit 158, and motion compensation (MC) unit 164 may provide the predictor value to the reconstruction unit.
帧内预测处理单元166可例如根据本文所描述的技术中的任一者基于由语法信息指示的深度帧内预测模式确定深度块的预测符值。帧内预测处理单元166可利用存储在经解码图片缓冲器162中的经重构深度块确定预测符值。帧内预测处理单元166可通过将DC残余值和预测符值求和而重构深度块,如本文中所描述。在一些实例中,帧内预测处理单元166可利用重构单元158用于深度块的残余和预测符值的求和。举例来说,熵解码单元150可将DC残余值提供到重构单元,且帧内预测处理单元166可将预测符值提供到重构单元。Intra-prediction processing unit 166 may determine a predictor value for the depth block based on the depth intra-prediction mode indicated by the syntax information, e.g., according to any of the techniques described herein. Intra-prediction processing unit 166 may utilize the reconstructed depth block stored in decoded picture buffer 162 to determine the predictor value. Intra-prediction processing unit 166 may reconstruct the depth block by summing the DC residual value and the predictor value, as described herein. In some examples, intra-prediction processing unit 166 may utilize reconstruction unit 158 for summing the residual and predictor value for the depth block. For example, entropy decoding unit 150 may provide the DC residual value to the reconstruction unit, and intra-prediction processing unit 166 may provide the predictor value to the reconstruction unit.
视频解码器30是包括一或多个处理器的视频解码器的实例,所述一或多个处理器经配置以:对指示简化深度译码(SDC)模式是否用于视频数据的深度译码单元(CU)的帧内预测和帧间预测两者的语法元素进行译码;当深度CU经帧内预测时执行帧内预测以产生预测深度CU;当深度CU经帧间预测时执行帧间预测以产生预测深度CU;以及当所述语法元素指示使用SDC模式时产生深度CU的至少一个DC残余值,其中所述至少一个DC残余值表示深度CU与预测深度CU之间的像素差。视频解码器30的所述一或多个处理器可经配置以解码所述语法元素,且使用所述至少一个DC残余值和预测深度CU重构深度CU。Video decoder 30 is an example of a video decoder that includes one or more processors configured to: decode a syntax element indicating whether simplified depth coding (SDC) mode is used for both intra prediction and inter prediction of a depth coding unit (CU) of video data; perform intra prediction to generate a predicted depth CU when the depth CU is intra predicted; perform inter prediction to generate a predicted depth CU when the depth CU is inter predicted; and generate at least one DC residual value for the depth CU when the syntax element indicates use of SDC mode, wherein the at least one DC residual value represents a pixel difference between the depth CU and the predicted depth CU. The one or more processors of video decoder 30 may be configured to decode the syntax element and reconstruct the depth CU using the at least one DC residual value and the predicted depth CU.
另外,视频解码器30是包括一或多个处理器的视频解码器的实例,所述一或多个处理器经配置以:当视频数据的深度译码单元(CU)经帧内预测时执行帧内预测模式以产生预测深度CU;当深度CU经帧间预测时执行帧间预测模式以产生预测深度CU;以及当使用简化深度译码(SDC)模式时,对包括表示深度CU的至少一个DC残余值的信息的语法结构进行译码,其中所述语法结构的语法元素针对帧内预测模式和帧间预测模式是相同的。视频解码器30可进一步经配置以解码所述语法结构,且使用所述至少一个DC残余值和预测深度CU重构深度CU。In addition, video decoder 30 is an example of a video decoder that includes one or more processors configured to: when a depth coding unit (CU) of the video data is intra-predicted, perform an intra-prediction mode to generate a predicted depth CU; when the depth CU is inter-predicted, perform an inter-prediction mode to generate a predicted depth CU; and when simplified depth coding (SDC) mode is used, decode a syntax structure including information representing at least one DC residual value of the depth CU, wherein syntax elements of the syntax structure are the same for intra-prediction mode and inter-prediction mode. Video decoder 30 may be further configured to decode the syntax structure and reconstruct the depth CU using the at least one DC residual value and the predicted depth CU.
在另一实例中,视频解码器30是包括一或多个处理器的视频译码器的实例,所述一或多个处理器经配置以:对指示简化深度译码(SDC)模式是否用于经译码视频数据的整个序列的深度译码单元(CU)的帧内预测和帧间预测两者的语法元素进行译码;当所述序列的深度CU中的一者经帧内预测时执行帧内预测以产生预测深度CU;当所述序列的深度CU中的一者经帧间预测时执行帧间预测以产生预测深度CU;以及当所述语法元素指示使用SDC模式时,对表示所述序列的深度CU中的每一者的至少一个DC残余值的信息进行译码,其中所述至少一个DC残余值表示相应深度CU与相应预测深度CU之间的像素差。视频解码器30可经配置以使用深度CU中的每一者的所述至少一个DC残余值以及相应预测深度CU来重构深度CU。In another example, video decoder 30 is an example of a video coder comprising one or more processors configured to: decode a syntax element indicating whether simplified depth coding (SDC) mode is used for both intra prediction and inter prediction of depth coding units (CUs) of an entire sequence of coded video data; perform intra prediction to generate a predicted depth CU when one of the depth CUs of the sequence is intra predicted; perform inter prediction to generate a predicted depth CU when one of the depth CUs of the sequence is inter predicted; and when the syntax element indicates use of SDC mode, decode information representing at least one DC residual value for each of the depth CUs of the sequence, wherein the at least one DC residual value represents a pixel difference between the respective depth CU and the respective predicted depth CU. Video decoder 30 may be configured to reconstruct the depth CU using the at least one DC residual value for each of the depth CUs and the respective predicted depth CU.
现将描述3D-HEVC的现有草案的语法和语义。下文阐述在3D-HEVC中指示帧内/帧间SDC模式的语法元素,其中相对于3D-HEVC进行章节和表的参考。The syntax and semantics of the existing draft of 3D-HEVC will now be described.The following sets forth syntax elements indicating intra/inter SDC mode in 3D-HEVC, where references to sections and tables are made relative to 3D-HEVC.
H.7.3.2.1.2视频参数集扩展2语法H.7.3.2.1.2 Video parameter set extension 2 syntax
H.7.3.8.5译码单元语法H.7.3.8.5 Decoding unit syntax
H.7.3.8.5.1深度模式参数语法H.7.3.8.5.1 Depth mode parameter syntax
语义Semantics
等于1的vps_inter_sdc_flag[layerId]指定帧间SDC译码用于具有等于layerId的nuh_layer_id的层。等于0的vps_inter_sdc_flag[layerId]指定帧间SDC译码不用于具有等于layerId的nuh_layer_id的层。当不存在时,推断vps_inter_sdc_flag[layerId]的值等于0。vps_inter_sdc_flag[layerId] equal to 1 specifies that inter SDC coding is used for the layer with nuh_layer_id equal to layerId. vps_inter_sdc_flag[layerId] equal to 0 specifies that inter SDC coding is not used for the layer with nuh_layer_id equal to layerId. When not present, the value of vps_inter_sdc_flag[layerId] is inferred to be equal to 0.
等于1的inter_sdc_flag指定残余块的简化深度译码用于当前译码单元。等于0的inter_sdc_flag指定残余块的简化深度译码不用于当前译码单元。当不存在时,推断inter_sdc_flag等于0。inter_sdc_flag equal to 1 specifies that simplified depth coding of the residual block is used for the current coding unit. inter_sdc_flag equal to 0 specifies that simplified depth coding of the residual block is not used for the current coding unit. When not present, inter_sdc_flag is inferred to be equal to 0.
inter_sdc_resi_abs_minus1[x0][y0][i]、inter_sdc_resi_sign_flag[x0][y0][i]用以如下导出InterSdcResi[x0][y0][i]:inter_sdc_resi_abs_minus1[x0][y0][i], inter_sdc_resi_sign_flag[x0][y0][i] are used to derive InterSdcResi[x0][y0][i] as follows:
InterSdcResi[x0][y0][i]=(1-2*inter_sdc_resi_sign_flag[x0][y0][i])*InterSdcResi[x0][y0][i]=(1-2*inter_sdc_resi_sign_flag[x0][y0][i])*
(inter_sdc_resi_abs_minus1[x0][y0][i]+1) (H-19)(inter_sdc_resi_abs_minus1[x0][y0][i]+1) (H-19)
H.7.4.9.5.1深度模式参数语义H.7.4.9.5.1 Depth mode parameter semantics
变量Log2MaxDmmCbSize设定成等于5。The variable Log2MaxDmmCbSize is set equal to 5.
变量depthIntraModeSet如下文中指定导出:The variable depthIntraModeSet is exported as specified below:
-如果log2CbSize等于6,那么将depthIntraModeSet设定成等于0。- If log2CbSize is equal to 6, then set depthIntraModeSet equal to 0.
-否则,如果log2CbSize等于3且PartMode[xC][yC]等于PART_NxN,那么将depthIntraModeSet设定成等于1。- Otherwise, if log2CbSize is equal to 3 and PartMode[xC][yC] is equal to PART_NxN, then depthIntraModeSet is set equal to 1.
-否则,将depthIntraModeSet设定成等于2。Otherwise, set depthIntraModeSet equal to 2.
depth_intra_mode[x0][y0]指定当前预测单元的深度帧内模式。表H-2指定取决于depthIntraModeSet的变量的depthIntraModeMaxLen的值和变量DepthIntraMode的值以及取决于depth_intra_mode和depthIntraModeSet的相关联名称。depth_intra_mode[x0][y0] specifies the depth intra mode of the current prediction unit. Table H-2 specifies the value of depthIntraModeMaxLen and the value of the variable DepthIntraMode depending on the variable depthIntraModeSet, and the associated name depending on depth_intra_mode and depthIntraModeSet.
变量SdcFlag[x0][y0]如下文指定导出:The variable SdcFlag[x0][y0] is derived as specified below:
SdcFlag[x0][y0]=SdcFlag[x0][y0]=
(DepthIntraMode[x0][y0]==INTRA_DEP_SDC_PLANAR)||(H-25)(DepthIntraMode[x0][y0]==INTRA_DEP_SDC_PLANAR)||(H-25)
(DepthIntraMode[x0][y0]==INTRA_DEP_SDC_DMM_WFULL)(DepthIntraMode[x0][y0]==INTRA_DEP_SDC_DMM_WFULL)
变量DmmFlag[x0][y0]如下文指定导出:The variable DmmFlag[x0][y0] is derived as specified below:
DmmFlag[x0][y0]=DmmFlag[x0][y0]=
(DepthIntraMode[x0][y0]==INTRA_DEP_DMM_WFULL)||(H-26)(DepthIntraMode[x0][y0]==INTRA_DEP_DMM_WFULL)||(H-26)
(DepthIntraMode[x0][y0]==INTRA_DEP_DMM_CPREDTEX)(DepthIntraMode[x0][y0]==INTRA_DEP_DMM_CPREDTEX)
表H-2-取决于depthIntraModeSet和depth_intra_mode的DepthIntraMode和相关联名称的规范以及取决于depthIntraModeSet的depthIntraModeMaxLen的规范Table H-2 - Specification of DepthIntraMode and associated names depending on depthIntraModeSet and depth_intra_mode, and specification of depthIntraModeMaxLen depending on depthIntraModeSet
wedge_full_tab_idx[x0][y0]指定当DepthIntraMode[x0][y0]等于INTRA_DEP_DMM_WFULL时对应模式列表中的楔波模式的索引。wedge_full_tab_idx[x0][y0] specifies the index of the wedgelet mode in the corresponding mode list when DepthIntraMode[x0][y0] is equal to INTRA_DEP_DMM_WFULL.
等于1的depth_dc_flag[x0][y0]指定depth_dc_abs[x0][y0][i]和depth_dc_sign_flag[x0][y0][i]存在。等于0的depth_dc_flag[x0][y0]指定depth_dc_abs[x0][y0][i]和depth_dc_sign_flag[x0][y0][i]不存在。depth_dc_flag[x0][y0] equal to 1 specifies that depth_dc_abs[x0][y0][i] and depth_dc_sign_flag[x0][y0][i] are present. depth_dc_flag[x0][y0] equal to 0 specifies that depth_dc_abs[x0][y0][i] and depth_dc_sign_flag[x0][y0][i] are not present.
depth_dc_abs[x0][y0][i]、depth_dc_sign_flag[x0][y0][i]用以如下导出DcOffset[x0][y0][i]:depth_dc_abs[x0][y0][i], depth_dc_sign_flag[x0][y0][i] are used to derive DcOffset[x0][y0][i] as follows:
DcOffset[x0][y0][i]=DcOffset[x0][y0][i]=
(1-2*depth_dc_sign_flag[x0][y0][i])*(1-2*depth_dc_sign_flag[x0][y0][i])*
(depth_dc_abs[x0][y0][i]-dcNumSeg+2)(H-27)(depth_dc_abs[x0][y0][i]-dcNumSeg+2)(H-27)
现将论述与SDC相关的一些最近的发展。在刘等人的JCT3V-F0126“CE5相关:3D-HEVC中用于全部帧内模式的通用SDC(CE5related:Generic SDC for all Intra modes in3D-HEVC)”(ITU-T SG16WP 3和ISO/IEC JTC 1/SC 29/WG11的3D视频译码扩展联合合作小组第6次会议:瑞士日内瓦,2013年10月25日-11月1日)中提出,在深度译码中,简化残余译码可应用于额外深度帧内预测模式和原始HEVC帧内预测模式。在简化残余译码中,针对PU的每一分区用信号表示一个DC残余值,即以HEVC帧内预测模式译码的PU具有一个分区,以使得所述PU内的全部像素在同一分区中,且以额外深度帧内预测模式译码的PU具有两个分区,变换和量化都被跳过,且不产生额外残余,即基于HEVC的3D编解码器中不存在变换树。Some recent developments related to SDC are now discussed. In JCT3V-F0126, "CE5-related: Generic SDC for all Intra modes in 3D-HEVC" by Liu et al. (6th Meeting of the Joint Collaboration Group on 3D Video Coding Extensions of ITU-T SG16WP 3 and ISO/IEC JTC 1/SC 29/WG11: Geneva, Switzerland, October 25–November 1, 2013), simplified residual coding was proposed for depth coding, which can be applied to additional depth intra prediction modes as well as the original HEVC intra prediction modes. In simplified residual coding, one DC residual value is signaled for each partition of the PU, i.e., a PU coded in HEVC intra prediction mode has one partition so that all pixels within the PU are in the same partition, and a PU coded in additional depth intra prediction mode has two partitions, transform and quantization are skipped, and no additional residual is generated, i.e., there is no transform tree in HEVC-based 3D codecs.
如上文所论述,用于SDC的当前设计存在的问题是使用不同语法元素和上下文模型来指示3D-HEVC中的帧内或帧间模式的使用,这使得译码单元的剖析过程更复杂。As discussed above, a problem with the current design for SDC is the use of different syntax elements and context models to indicate the use of intra or inter mode in 3D-HEVC, which makes the parsing process of the coding unit more complicated.
根据本发明中描述的技术可统一3D-HEVC中的深度帧内和帧间预测模式的逐片段DC译码(SDC)的信令。此处还如下概括上文所论述的各种方面:The techniques described in this disclosure may unify the signaling of slice-by-slice DC coding (SDC) for deep intra and inter prediction modes in 3D-HEVC. The various aspects discussed above are also summarized here as follows:
1.本发明中提议在深度译码的一些实例中,使用仅一个语法元素(例如,sdc_flag)来指示使用SDC用于帧内或帧间模式。1. It is proposed in this disclosure that in some examples of depth coding, only one syntax element (eg, sdc_flag) is used to indicate the use of SDC for intra or inter mode.
a.移除指示当前帧间CU利用SDC的inter_sdc_flag。a. Remove inter_sdc_flag indicating that the current inter CU utilizes SDC.
b.还移除用于帧内模式的SDC模式的指示。b. Also remove the indication of SDC mode for intra mode.
c.不管当前译码单元是否以帧内或帧间预测译码,都引入新旗标,即sdc_flag。当此旗标是1时,启用SDC。c. Regardless of whether the current decoding unit is coded using intra-frame or inter-frame prediction, a new flag, sdc_flag, is introduced. When this flag is 1, SDC is enabled.
2.本发明中提议在深度译码的一些实例中,在当前CU经译码为SDC时,对于每一分区,用于经帧间译码CU或经帧内译码CU的DC残余值统一为通过一个语法结构存在,所述语法结构包含DC残余值的绝对值及其正负号。2. The present invention proposes that in some examples of depth coding, when the current CU is coded as SDC, for each partition, the DC residual value for the inter-coded CU or the intra-coded CU is unified to exist through one syntax structure, which includes the absolute value of the DC residual value and its sign.
a.或者或另外,如果CU是以帧内译码,那么可进一步用信号表示指示当前CU是否在任何其分区中含有任何非零DC残余值的旗标(等于1)。如果此旗标是0,那么不用信号表示DC残余值且针对每一分区推断为等于零。Alternatively or additionally, if the CU is intra-coded, a flag (equal to 1) indicating whether the current CU contains any non-zero DC residual value in any of its partitions may be further signaled. If this flag is 0, the DC residual value is not signaled and is inferred to be equal to zero for each partition.
b.替代地,以上旗标适用于帧内和帧间模式两者。b. Alternatively, the above flag applies to both intra and inter modes.
c.替代地,以上旗标不用于帧内或帧间模式。c. Alternatively, the above flag is not used for intra or inter mode.
3.此外,在本发明中提议在一些实例中,用于帧间和帧内模式的DC残余值的语法结构共享相同语法元素,因此用于相关语法元素的上下文模型和二进制化过程是统一的,即相同上下文模型。3. Furthermore, it is proposed in the present invention that in some examples, the syntax structures of DC residual values for inter and intra modes share the same syntax elements, so the context model and binarization process for the relevant syntax elements are unified, ie the same context model.
a.替代地,在一些实例中,即使帧内SDC模式和帧间SDC模式可使用相同语法结构用于DC残余值,但它们使用语法结构的不同实例,因此用于与DC残余值相关的元素的上下文针对帧内SDC和帧间SDC模式维持为分离的。a. Alternatively, in some instances, even though intra SDC mode and inter SDC mode may use the same syntax structure for the DC residual value, they use different instances of the syntax structure, so the context for elements related to the DC residual value is maintained separate for intra SDC and inter SDC modes.
4.在本发明中提议在一些实例中,可应用解码器侧的约束,即,当sdc_flag等于1时pcm_flag将不等于1。4. It is proposed in this disclosure that in some examples, a decoder-side constraint may be applied, ie, when sdc_flag is equal to 1, pcm_flag shall not be equal to 1.
5.另外,在本发明中提议在一些实例中,可应用解码器侧的对SDC的约束,即,帧内SDC模式和帧间SDC模式两者仅用于2Nx2N分区大小。5. Additionally, it is proposed in this disclosure that in some examples, constraints on SDC on the decoder side may be applied, ie, both intra and inter SDC modes are only used for 2Nx2N partition size.
a.替代地,帧内SDC模式用于包含2Nx2N和NxN的全部分区大小。a. Alternatively, intra SDC mode is used for all partition sizes including 2Nx2N and NxN.
6.另外,在本发明中提议在一些实例中,针对整个经译码视频序列使用一个语法元素来在解码过程中启用/停用帧内和帧间SDC模式两者。如果所述一个语法元素指示SDC针对序列经启用,那么编码器用信号表示另一语法元素以指示SDC是否在CU层级使用,例如如参考在以上项目1中的统一sdc_flag元素的使用所描述。6. Additionally, this disclosure proposes that, in some examples, one syntax element be used for the entire coded video sequence to enable/disable both intra and inter SDC modes during decoding. If the one syntax element indicates that SDC is enabled for the sequence, the encoder signals another syntax element to indicate whether SDC is used at the CU level, e.g., as described with reference to the use of a unified sdc_flag element in item 1 above.
a.在一些实例中,可在视频参数集扩展、序列参数集、图片参数集或切片片段标头等中设定此语法元素。a. In some examples, this syntax element may be set in a video parameter set extension, a sequence parameter set, a picture parameter set, or a slice segment header, among others.
b.替代地,在一些实例中,使用一个旗标来指示用于帧内模式的SDC是否针对整个经译码视频序列经启用,如果这是真实的,那么另外使用另一旗标以指示用于帧间模式的SDC是否针对整个经译码视频序列经启用。b. Alternatively, in some examples, one flag is used to indicate whether SDC for intra mode is enabled for the entire coded video sequence, and if so, another flag is used to indicate whether SDC for inter mode is enabled for the entire coded video sequence.
下文描述多种实施方案实例。根据下文的实例,对3D-HEVC的语法元素和语义做出改变。在下文的语法元素和语义中,已经改变3D-HEVC的相关部分以添加JCT3V-F0126文献中提议的语法元素和语义。以由斜体字指示的添加和以展示的删除来展示JCT3V-F0126文献中提议的改变。根据本发明的此实例,通过以黑体字呈现的新添加部分和以标记的新删除部分展示对语法元素和语义的额外改变。Various implementation examples are described below. According to the examples below, changes are made to the syntax elements and semantics of 3D-HEVC. In the syntax elements and semantics below, the relevant parts of 3D-HEVC have been changed to add the syntax elements and semantics proposed in the JCT3V-F0126 document. The changes proposed in the JCT3V-F0126 document are shown with additions indicated by italics and deletions shown by . According to this example of the present invention, additional changes to the syntax elements and semantics are shown by new additions presented in bold and new deletions marked by .
下文呈现实例语法表,接着是相关语义,其中章节和表参考指代3D-HEVC中的对应章节和表参考。An example syntax table is presented below, followed by the relevant semantics, where section and table references refer to corresponding section and table references in 3D-HEVC.
以下实例说明使用sdc_flag[x0][y0]语法元素来指定在CU层级使用SDC,使用SdcEnableFlag语法元素来指示SDC是否经启用,且使用depth_dc_abs[x0][y0][i]和depth_dc_sign_flag[x0][y0][i]语法元素来分别指示DC残余值和正负号。语法元素是本发明中分别针对用信号表示SDC使用、SDC启用/停用状态以及SDC残余值所描述的语法元素的实例。在一些实例中,SdcEnableFlag语法元素可至少部分地从VPS中陈述的一或多个值导出,例如vps_inter_sdc_flag[nuh_layer_id]和vps_depth_modes_flag[nuh_layer_id],且可经配置以针对整个经译码视频序列启用或停用SDC。The following example illustrates the use of the sdc_flag[x0][y0] syntax element to specify the use of SDC at the CU level, the use of the SdcEnableFlag syntax element to indicate whether SDC is enabled, and the use of the depth_dc_abs[x0][y0][i] and depth_dc_sign_flag[x0][y0][i] syntax elements to indicate the DC residual value and sign, respectively. The syntax elements are examples of the syntax elements described in this disclosure for signaling SDC use, SDC enable/disable status, and SDC residual value, respectively. In some examples, the SdcEnableFlag syntax element may be derived at least in part from one or more values stated in the VPS, such as vps_inter_sdc_flag[nuh_layer_id] and vps_depth_modes_flag[nuh_layer_id], and may be configured to enable or disable SDC for the entire coded video sequence.
H.7.3.8.5译码单元语法H.7.3.8.5 Decoding unit syntax
H.7.3.8.5.1深度DC残余值语法表H.7.3.8.5.1 Depth DC residual value syntax table
替代地,当帧内和帧间SDC两者仅应用于具有等于2Nx2N的分区大小的CU时,可使用以下语法。Alternatively, when both intra and inter SDC apply only to CUs with partition size equal to 2Nx2N, the following syntax may be used.
H.7.3.8.5.1深度DC残余值语法表H.7.3.8.5.1 Depth DC residual value syntax table
现将参考3D-HEVC描述实例语义和解码过程。再次,以由斜体字指示的添加和以展示的删除来展示JCT3V-F0126文献中提议的改变。根据本发明的此实例,通过以黑体字呈现的新添加部分和以标记的新删除部分展示对语法元素和语义的额外改变。The example semantics and decoding process will now be described with reference to 3D-HEVC. Again, the changes proposed in the JCT3V-F0126 document are shown with additions indicated by italics and deletions shown by . According to this example of the present invention, additional changes to syntax elements and semantics are shown by new additions presented in bold and new deletions marked with .
H.7.4.9.5译码单元语义H.7.4.9.5 Decoding unit semantics
如下导出变量SdcEnableFlag:Export the variable SdcEnableFlag as follows:
SdcEnableFlag=SdcEnableFlag=
(vps_inter_sdc_flag[nuh_layer_id]&&PredMode[x0][y0]==MODE_INTER)||(vps_inter_sdc_flag[nuh_layer_id]&&PredMode[x0][y0]==MODE_INTER)||
(vps_depth_modes_flag[nuh_layer_id](vps_depth_modes_flag[nuh_layer_id]
&&PredMode[x0][y0]==MODE_INTRA&&PredMode[x0][y0]==MODE_INTRA
&&PartMode[x0][y0]==PART_2Nx2N)(H-16)&&PartMode[x0][y0]==PART_2Nx2N)(H-16)
等于1的sdc_flag[x0][y0]指定残余块的逐片段DC译码用于当前译码单元。等于0的sdc_flag[x0][y0]指定残余块的逐片段DC译码不用于当前译码单元。当不存在时,sdc_flag[x0][y0]推断为等于0。sdc_flag[x0][y0] equal to 1 specifies that slice-wise DC coding of the residual block is used for the current coding unit. sdc_flag[x0][y0] equal to 0 specifies that slice-wise DC coding of the residual block is not used for the current coding unit. When not present, sdc_flag[x0][y0] is inferred to be equal to 0.
等于1的hevc_intra_flag[x0][y0]指定具有在0到34的范围内的intraPredMode的帧内模式用于当前预测单元。等于0的hevc_intra_flag[x0][y0]指定另一帧内模式用于当前预测单元。当不存在时,hevc_intra_flag[x0][y0]推断为等于1。hevc_intra_flag[x0][y0] equal to 1 specifies that intra mode with intraPredMode in the range of 0 to 34 is used for the current prediction unit. hevc_intra_flag[x0][y0] equal to 0 specifies that another intra mode is used for the current prediction unit. When not present, hevc_intra_flag[x0][y0] is inferred to be equal to 1.
变量DmmFlag[x0][y0]如下文指定导出:The variable DmmFlag[x0][y0] is derived as specified below:
DmmFlag[x0][y0]=!hevc_intra_flag[x0][y0] (H-25)DmmFlag[x0][y0]=! hevc_intra_flag[x0][y0] (H-25)
depth_intra_mode[x0][y0]指定当前预测单元的深度帧内模式。等于0的depth_intra_mode[x0][y0]指定DepthIntraMode[x0][y0]等于INTRA_DEP_DMM_WFULL,且等于1的depth_intra_mode[x0][y0]指定DepthIntraMode[x0][y0]等于INTRA_DEP_DMM_CPREDTEX。当不存在时,DepthIntraMode[x0][y0]推断为等于INTRA_DEP_NONE。depth_intra_mode[x0][y0] specifies the depth intra mode for the current prediction unit. depth_intra_mode[x0][y0] equal to 0 specifies DepthIntraMode[x0][y0] equal to INTRA_DEP_DMM_WFULL, and depth_intra_mode[x0][y0] equal to 1 specifies DepthIntraMode[x0][y0] equal to INTRA_DEP_DMM_CPREDTEX. When not present, DepthIntraMode[x0][y0] is inferred to be equal to INTRA_DEP_NONE.
wedge_full_tab_idx[x0][y0]指定当DepthIntraMode[x0][y0]等于INTRA_DEP_DMM_WFULL时对应模式列表中的楔波模式的索引。wedge_full_tab_idx[x0][y0] specifies the index of the wedgelet mode in the corresponding mode list when DepthIntraMode[x0][y0] is equal to INTRA_DEP_DMM_WFULL.
H.7.4.9.5.1深度DC残余语义H.7.4.9.5.1 Deep DC residual semantics
等于1的depth_dc_flag[x0][y0]指定depth_dc_abs[x0][y0][i]和depth_dc_sign_flag[x0][y0][i]存在。等于0的depth_dc_flag[x0][y0]指定depth_dc_abs[x0][y0][i]和depth_dc_sign_flag[x0][y0][i]不存在。当不存在时,depth_dc_flag[x0][y0]推断为等于1。depth_dc_flag[x0][y0] equal to 1 specifies that depth_dc_abs[x0][y0][i] and depth_dc_sign_flag[x0][y0][i] are present. depth_dc_flag[x0][y0] equal to 0 specifies that depth_dc_abs[x0][y0][i] and depth_dc_sign_flag[x0][y0][i] are not present. When not present, depth_dc_flag[x0][y0] is inferred to be equal to 1.
depth_dc_abs[x0][y0][i]、depth_dc_sign_flag[x0][y0][i]用以如下导出DcOffset[x0][y0][i]:depth_dc_abs[x0][y0][i], depth_dc_sign_flag[x0][y0][i] are used to derive DcOffset[x0][y0][i] as follows:
DcOffset[x0][y0][i]=DcOffset[x0][y0][i]=
(1-2*depth_dc_sign_flag[x0][y0][i])*(depth_dc_abs[x0][y0][i]-dcNumSeg+2) (H-27)(1-2*depth_dc_sign_flag[x0][y0][i])*(depth_dc_abs[x0][y0][i]-dcNumSeg+2) (H-27)
H.8.4.2用于明度帧内预测模式的导出过程H.8.4.2 Derivation process for luma intra prediction mode
对此过程的输入是相对于当前图片的左上明度样本指定当前明度预测块的左上样本的明度位置(xPb,yPb)。The input to this process is the luma position (xPb, yPb) that specifies the top-left sample of the current luma prediction block relative to the top-left luma sample of the current picture.
在此过程中,导出明度帧内预测模式IntraPredModeY[xPb][yPb]。In this process, the luma intra prediction mode IntraPredModeY[xPb][yPb] is derived.
表H-3指定用于帧内预测模式的值和相关联名称。Table H-3 specifies the values and associated names for intra prediction modes.
表H-3-帧内预测模式和相关联名称的规范Table H-3 - Specification of intra prediction modes and associated names
标记为0..34的IntraPredModeY[xPb][yPb]表示如图81中所说明的预测的方向。IntraPredModeY[xPb][yPb] labeled 0..34 represents the direction of prediction as illustrated in FIG. 81 .
-如果DepthIntraMode[xPb][yPb]等于INTRA_DEP_DMM_WFULL,那么将IntraPredModeY[xPb][yPb]设定成等于INTRA_DMM_WFULL。- If DepthIntraMode[xPb][yPb] is equal to INTRA_DEP_DMM_WFULL, then set IntraPredModeY[xPb][yPb] equal to INTRA_DMM_WFULL.
-否则,如果DepthIntraMode[xPb][yPb]等于INTRA_DEP_DMM_CPREDTEX,那么将IntraPredModeY[xPb][yPb]设定成等于INTRA_DMM_CPREDTEX。Otherwise, if DepthIntraMode[xPb][yPb] is equal to INTRA_DEP_DMM_CPREDTEX, then set IntraPredModeY[xPb][yPb] equal to INTRA_DMM_CPREDTEX.
-否则(DepthIntraMode[xPb][yPb]等于INTRA_DEP_NONE),如以下有序步骤导出IntraPredModeY[xPb][yPb]:Otherwise (DepthIntraMode[xPb][yPb] is equal to INTRA_DEP_NONE), derive IntraPredModeY[xPb][yPb] as follows:
……
H.8.4.4.2.1一般帧内样本预测H.8.4.4.2.1 General intra-frame sample prediction
对此过程的输入是:The inputs to this process are:
-样本位置(xTbCmp,yTbCmp),其相对于当前图片的左上样本指定当前变换块的左上样本,- a sample position (xTbCmp, yTbCmp) which specifies the top left sample of the current transform block relative to the top left sample of the current picture,
-指定帧内预测模式的变量predModeIntra,- variable predModeIntra that specifies the intra prediction mode,
-指定变换块大小的变量nTbS,- variable nTbS specifying the transform block size,
-指定当前块的颜色分量的变量cIdx。- Variable cIdx specifies the color component of the current block.
此过程的输出是预测样本predSamples[x][y],其中x,y=0..nTbS-1。The output of this process is the prediction samples predSamples[x][y], where x, y = 0..nTbS-1.
将变量bSamplePredFlag设定为1。Set the variable bSamplePredFlag to 1.
-否则,如果predModeIntra等于INTRA_DMM_CPREDTEX,那么以位置(xTbY,yTbY)调用子条款H.8.4.4.2.8中指定的对应帧内预测模式,其中样本阵列p和变换块大小nTbS以及bSamplePredFlag作为输入且输出是预测样本阵列predSamples。Otherwise, if predModeIntra is equal to INTRA_DMM_CPREDTEX, then the corresponding intra prediction mode specified in subclause H.8.4.4.2.8 is called with position (xTbY, yTbY), with sample array p and transform block size nTbS and bSamplePredFlag as input and output is the prediction sample array predSamples.
H.8.4.4.2.8帧内预测模式INTRA_DMM_CPREDTEX的规范H.8.4.4.2.8 Specification of intra prediction mode INTRA_DMM_CPREDTEX
对此过程的输入是:The inputs to this process are:
-指定当前块的左上方样本相对于当前图片的左上方样本的样本位置(xTb,yTb),-Specify the sample position (xTb, yTb) of the top left sample of the current block relative to the top left sample of the current picture,
-相邻样本p[x][y],其中x=-1,y=-1..nTbS*2-1且x=0..nTbS*2-1,y=-1,- adjacent samples p[x][y], where x=-1, y=-1..nTbS*2-1 and x=0..nTbS*2-1, y=-1,
-指定变换块大小的变量nTbS,- variable nTbS specifying the transform block size,
-指定是否产生预测样本的变量bSamplePredFlag,- Specifies whether to generate prediction samples variable bSamplePredFlag,
此过程的输出是:The output of this process is:
-预测样本predSamples[x][y],其中x,y=0..nTbS-1。-Prediction samples predSamples[x][y], where x, y = 0..nTbS-1.
-楔波模式wedgePattern[x][y],其中x,y=0..nT-1。-wedgewave pattern wedgePattern[x][y], where x,y=0..nT-1.
通过以下有序步骤指定导出预测样本predSamples[x][y]的值,其中x,y=0..nTbS-1:Specify the values of the derived prediction samples predSamples[x][y] by the following ordered steps, where x, y = 0..nTbS-1:
1.将变量recTextPic设定成等于TexturePic.的经重构明度图片样本的阵列。1. Set the variable recTextPic to the array of reconstructed luma picture samples equal to TexturePic.
2.如下文指定导出指定用于recTextPic的分段的阈值的变量textThresh。2. Export the variable textThresh that specifies the threshold for segmentation of recTextPic as specified below.
-将变量sumTextPicVals设定成等于0。-Set the variable sumTextPicVals equal to 0.
-对于x=0..nTbS-1,以下适用- For x = 0..nTbS-1, the following applies
-对于y=0..nTbS-1,以下适用- For y = 0..nTbS-1, the following applies
sumTextPicVals+=recTextPic[xTb+x][yTb+y] (H-45)sumTextPicVals+=recTextPic[xTb+x][yTb+y] (H-45)
-将变量textThresh设定成等于(sumTextPicVals>>(2*log2(nTbS)))-Set the variable textThresh equal to (sumTextPicVals>>(2*log2(nTbS)))
3.如下文指定导出指定二进制分区模式的变量wedgeletPattern[x][y],其中x,y3. As specified below, export the variable wedgeletPattern[x][y] that specifies the binary partition pattern, where x, y
=0..nTbS-1。=0..nTbS-1.
-对于x=0..nTbS-1,以下适用- For x = 0..nTbS-1, the following applies
-对于y=0..nTbS-1,以下适用- For y = 0..nTbS-1, the following applies
wedgeletPattern[x][y]=(recTextPic[xTb+x][yTb+y]>wedgeletPattern[x][y]=(recTextPic[xTb+x][yTb+y]>
textThresh) (H-46)textThresh) (H-46)
4.当bSamplePredFlag等于1时,以相邻样本p[x][y]、二进制模式wedgeletPattern[x][y]、变换大小nT、设定成等于depth_dc_flag[xTb][yTb]的dcOffsetAvailFlag以及DC偏移DcOffset[xTb][yTb][0]和DcOffset[xTb][yTb][1]作为输入调用如子条款H.8.4.4.2.9中指定的深度分区值导出和指派过程,且将输出指派4. When bSamplePredFlag is equal to 1, the depth partition value derivation and assignment process as specified in subclause H.8.4.4.2.9 is called with as input the neighboring samples p[x][y], the binary pattern wedgeletPattern[x][y], the transform size nT, dcOffsetAvailFlag set equal to depth_dc_flag[xTb][yTb], and the DC offsets DcOffset[xTb][yTb][0] and DcOffset[xTb][yTb][1], and the output is assigned
给predSamples[x][y]。Give predSamples[x][y].
H.8.4.4.3深度值重构过程H.8.4.4.3 Depth value reconstruction process
对此过程的输入是:The inputs to this process are:
-指定当前块的左上方明度样本相对于当前图片的左上方明度样本的明度位置(xTb,yTb),- specifies the luma position (xTb, yTb) of the top left luma sample of the current block relative to the top left luma sample of the current picture,
-指定变换块大小的变量nTbS,- variable nTbS specifying the transform block size,
-预测样本predSamples[x][y],其中x,y=0..nTbS-1-Prediction samples predSamples[x][y], where x, y = 0..nTbS-1
-帧内预测模式predModeIntra,- Intra prediction mode predModeIntra,
此过程的输出是:The output of this process is:
-经重构深度值样本resSamples[x][y],其中x,y=0..nTbS-1。- reconstructed depth value samples resSamples[x][y], where x, y = 0..nTbS-1.
将变量bSamplePredFlag设定为0。Set the variable bSamplePredFlag to 0.
取决于predModeIntra,如下导出指定二进制分段模式的阵列wedgePattern[x][y],其中x,y=0..nTbS-1。Depending on predModeIntra, the array wedgePattern[x][y] specifying the binary segmentation pattern is derived as follows, where x, y = 0..nTbS-1.
-如果predModeIntra等于INTRA_DMM_WFULL,那么以下适用。- If predModeIntra is equal to INTRA_DMM_WFULL, then the following applies.
wedgePattern=WedgePatternTable[Log2(nTbS)][wedge_full_tab_idx[xTb][yTb]]wedgePattern=WedgePatternTable[Log2(nTbS)][wedge_full_tab_idx[xTb][yTb]]
-否则,如果predModeIntra等于INTRA_DMM_CPREDTEX,那么以位置(xB,yB)、预测样本predSamples、变换块大小nT以及bSamplePredFlag作为输入调用子条款H.8.4.4.2.8,且输出是楔波模式wedgePattern。Otherwise, if predModeIntra is equal to INTRA_DMM_CPREDTEX, then subclause H.8.4.4.2.8 is called with the position (xB, yB), the prediction samples predSamples, the transform block size nT and bSamplePredFlag as input, and the output is the Wedgelet pattern wedgePattern.
-否则(predModeIntra不等于INTRA_DMM_WFULL且predModeIntra不等于INTRA_DMM_CPREDTEX),以下适用。- Otherwise (predModeIntra is not equal to INTRA_DMM_WFULL and predModeIntra is not equal to INTRA_DMM_CPREDTEX), the following applies.
-对于x,y=0..nTbS-1,将wedgePattern[x][y]设定成等于0。- For x,y = 0..nTbS-1, set wedgePattern[x][y] equal to 0.
取决于dlt_flag[nuh_layer_id],如下文指定导出经重构深度值样本resSamples[x][y]:Depending on dlt_flag[nuh_layer_id], reconstructed depth value samples resSamples[x][y] are derived as specified below:
-如果dlt_flag[nuh_layer_id]等于0,那么以下适用:- If dlt_flag[nuh_layer_id] is equal to 0, then the following applies:
-对于x,y=0..nTbS-1,如下文指定导出经重构深度值样本resSamples[x][y]:- For x,y=0..nTbS-1, reconstructed depth value samples resSamples[x][y] are derived as specified below:
resSamples[x][y]=predSamples[x][y]+resSamples[x][y]=predSamples[x][y]+
DcOffset[xTb][yTb][wedgePattern[x][y]] (H-59)DcOffset[xTb][yTb][wedgePattern[x][y]] (H-59)
-否则(dlt_flag[nuh_layer_id]等于1),以下适用:Otherwise (dlt_flag[nuh_layer_id] is equal to 1), the following applies:
-如以下指定导出变量dcPred[0]和dcPred[1]:-Export variables dcPred[0] and dcPred[1] as specified below:
-如果predModeIntra不等于INTRA_DMM_WFULL且predModeIntra不等于INTRA_DMM_CPREDTEX,那么以下适用:- If predModeIntra is not equal to INTRA_DMM_WFULL and predModeIntra is not equal to INTRA_DMM_CPREDTEX, then the following applies:
dcPred[0]=(predSamples[0][0]+predSamples[0][nTbS-1]+dcPred[0]=(predSamples[0][0]+predSamples[0][nTbS-1]+
predSamples[nTbS-1][0]predSamples[nTbS-1][0]
+predSamples[nTbS-1][nTbS-1]+2)>>2(H-61)+predSamples[nTbS-1][nTbS-1]+2)>>2(H-61)
-否则,如果predModeIntra等于INTRA_DMM_WFULL,那么以下适用。- Otherwise, if predModeIntra is equal to INTRA_DMM_WFULL, then the following applies.
dcPred[wedgePattern[0][0]]=predSamples[0][0] (H-62)dcPred[wedgePattern[0][0]]=predSamples[0][0] (H-62)
dcPred[wedgePattern[nTbS-1][0]]=predSamples[nTbS-1][0](H-63)dcPred[wedgePattern[nTbS-1][0]]=predSamples[nTbS-1][0](H-63)
dcPred[wedgePattern[0][nTbS-1]]=predSamples[0][nTbS-1](H-64)dcPred[wedgePattern[0][nTbS-1]]=predSamples[0][nTbS-1](H-64)
dcPred[wedgePattern[nTbS-1][nTbS-1]]=predSamples[nTbS-1][nTbS-1](H-65)dcPred[wedgePattern[nTbS-1][nTbS-1]]=predSamples[nTbS-1][nTbS-1](H-65)
-否则,(intraPredMode等于INTRA_DMM_CPREDTEX),以下适用。Otherwise, (intraPredMode equals INTRA_DMM_CPREDTEX), the following applies.
-对于x,y=0..nTbS-1,如下文指定导出经重构深度值样本resSamples[x][y]:- For x,y=0..nTbS-1, reconstructed depth value samples resSamples[x][y] are derived as specified below:
dltIdxPred=DepthValue2Idx[dcPred[wedgePattern[x][y]]] (H-66)dltIdxPred=DepthValue2Idx[dcPred[wedgePattern[x][y]]] (H-66)
dltIdxResi=DcOffset[xTb][yTb][wedgePattern[x][y]] (H-67)dltIdxResi=DcOffset[xTb][yTb][wedgePattern[x][y]] (H-67)
resSamples[x][y]=predSamples[x][y]+Idx2DepthValue[dltIdxPred+dltIdxResi]-dcPred[wedgePattern[x][y]](H-68)resSamples[x][y]=predSamples[x][y]+Idx2DepthValue[dltIdxPred+dltIdxResi]-dcPred[wedgePattern[x][y]](H-68)
H.8.5.4.1总则H.8.5.4.1 General
……
-如果sdc_flag等于0,那么以下适用,取决于rqt_root_cbf的值,以下适用:- If sdc_flag is equal to 0, then the following applies, depending on the value of rqt_root_cbf, the following applies:
-如果rqt_root_cbf等于0或skip_flag[xCb][yCb]等于1,那么将(nCbSL)x(nCbSL)阵列resSamplesL的全部样本以及两个(nCbSC)x(nCbSC)阵列resSamplesCb和resSamplesCr的全部样本设定成等于0。If rqt_root_cbf is equal to 0 or skip_flag[xCb][yCb] is equal to 1, then all samples of the (nCbS L )x(nCbS L ) array resSamples L and all samples of the two (nCbS C )x(nCbS C ) arrays resSamples Cb and resSamples Cr are set equal to 0.
-否则(rqt_root_cbf等于1),以下有序步骤适用:Otherwise (rqt_root_cbf is equal to 1), the following ordered steps apply:
以明度位置(xCb,yCb)、设定成等于(0,0)的明度位置(xB0,yB0)、设定成等于log2CbSize的变量log2TrafoSize、设定成等于0的变量trafoDepth、设定成等于nCbSL的变量nCbS以及(nCbSL)x(nCbSL)阵列resSamplesL作为输入调用如以下子条款H.8.5.4.2中指定的用于明度残余块的解码过程,且输出是(nCbSL)x(nCbSL)阵列resSamplesL的经修改版本。The decoding process for the luma residual block as specified in subclause H.8.5.4.2 below is called with as input the luma position (xCb, yCb), the luma position (xB0, yB0) set equal to (0, 0 ), the variable log2TrafoSize set equal to log2CbSize, the variable trafoDepth set equal to 0 , the variable nCbS set equal to nCbSL, and the (nCbSL)x( nCbSL ) array resSamplesL , and the output is a modified version of the ( nCbSL )x( nCbSL ) array resSamplesL .
以明度位置(xCb,yCb)、设定成等于(0,0)的明度位置(xB0,yB0)、设定成等于log2CbSize的变量log2TrafoSize、设定成等于0的变量trafoDepth、设定成等于1的变量cIdx、设定成等于nCbSC的变量nCbS以及(nCbSC)x(nCbSC)阵列resSamplesCb作为输入调用如以下子条款H.8.5.4.3中指定的用于色度残余块的解码过程,且输出是(nCbSC)x(nCbSC)阵列resSamplesCb的经修改版本。The decoding process for chroma residual blocks as specified in subclause H.8.5.4.3 below is invoked with as input the luma position (xCb, yCb), the luma position (xB0, yB0) set equal to (0, 0 ), the variable log2TrafoSize set equal to log2CbSize, the variable trafoDepth set equal to 0, the variable cIdx set equal to 1 , the variable nCbS set equal to nCbSC, and the ( nCbSC ) x(nCbSC) array resSamplesCb, and the output is a modified version of the (nCbSC)x( nCbSC ) array resSamplesCb .
以明度位置(xCb,yCb)、设定成等于(0,0)的明度位置(xB0,yB0)、设定成等于log2CbSize的变量log2TrafoSize、设定成等于0的变量trafoDepth、设定成等于2的变量cIdx、设定成等于nCbSC的变量nCbS以及(nCbSC)x(nCbSC)阵列resSamplesCr作为输入调用如以下子条款H.8.5.4.3中指定的用于色度残余块的解码过程,且输出是(nCbSC)x(nCbSC)阵列resSamplesCr的经修改版本。The decoding process for chroma residual blocks as specified in subclause H.8.5.4.3 below is invoked with as input the luma position (xCb, yCb), the luma position (xB0, yB0) set equal to (0, 0 ), the variable log2TrafoSize set equal to log2CbSize, the variable trafoDepth set equal to 0, the variable cIdx set equal to 2 , the variable nCbS set equal to nCbSC , and the ( nCbSC )x(nCbSC) array resSamplesCr , and the output is a modified version of the (nCbSC)x( nCbSC ) array resSamplesCr .
-否则(sdc_flag等于1),以明度位置(xCb,yCb)、设定成等于(0,0)的明度位置(xB0,yB0)、设定成等于log2CbSize的变量log2TrafoSize、设定成等于0的变量trafoDepth、设定成等于nCbSL的变量nCbS以及nCbS阵列resSamplesL作为输入调用如以下子条款H.8.5.4.4中指定的用于简化深度译码残余块的解码过程,且输出是(nCbSL)x(nCbSL)阵列resSamplesL的经修改版本。Otherwise (sdc_flag is equal to 1), the decoding process for simplified depth coded residual blocks as specified in the following subclause H.8.5.4.4 is called with as input the luma position (xCb, yCb), the luma position (xB0, yB0) set equal to (0, 0), the variable log2TrafoSize set equal to log2CbSize, the variable trafoDepth set equal to 0, the variable nCbS set equal to nCbS L , and the nCbS array resSamples L , and the output is a modified version of the (nCbS L )x(nCbS L ) array resSamples L.
……
H.8.5.4.4用于简化深度译码残余块的解码过程H.8.5.4.4 is used to simplify the decoding process of depth-coded residual blocks
对于在0到nCbS的范围内的x,以下适用:For x in the range 0 to nCbS, the following applies:
-对于在0到nCbS的范围内的y,以下适用:- For y in the range 0 to nCbS, the following applies:
-如以下指定导出变量i:-Export variable i is specified as follows:
-如果x小于xOff且y小于yOff,那么将i设定成等于0。- If x is less than xOff and y is less than yOff, then set i equal to 0.
-否则,如果x大于或等于xOff且y小于yOff,那么将i设定成等于1。- Otherwise, if x is greater than or equal to xOff and y is less than yOff, then set i equal to 1.
-否则,如果x小于xOff且y大于或等于yOff,那么将i设定成等于2。Otherwise, if x is less than xOff and y is greater than or equal to yOff, then set i equal to 2.
-否则,(x大于或等于xOff且y大于或等于yOff),那么将i设定成等于3。- Otherwise, (x is greater than or equal to xOff and y is greater than or equal to yOff), then set i equal to 3.
-将resSamples[x][y]的值设定成等于DcOffset[xCb][yCb][interSdcResiIdx[i]]- Set the value of resSamples[x][y] to be equal to DcOffset[xCb][yCb][interSdcResiIdx[i]]
表H-10-用于初始化过程中的每一initializationType的ctxIdx和语法元素的关联Table H-10 - Association of ctxIdx and syntax elements for each initializationType in the initialization process
表H-20-语法元素和相关联二进制化Table H-20 - Syntax elements and associated binarization
表H-22-通过上下文经译码二进位的ctxInc到语法元素的指派Table H-22 - Assignment of ctxInc to Syntax Elements by Context Coded Binary
根据另一实例,对3D-HEVC的语法元素和语义做出改变。在以下语法元素和语义中,已经改变3D-HEVC的相关部分以添加根据本发明的实例提议的语法元素和语义。通过以黑体字呈现的新添加部分和以黑体字标记的新删除部分展示根据本发明的此实例对语法元素和语义的改变。According to another example, changes are made to the syntax elements and semantics of 3D-HEVC. In the following syntax elements and semantics, the relevant parts of 3D-HEVC have been changed to add the syntax elements and semantics proposed in this example of the present invention. The changes to the syntax elements and semantics according to this example of the present invention are shown by the newly added parts presented in bold and the newly deleted parts marked in bold.
下文呈现语法表,接着是相关语义。The syntax table is presented below, followed by the relevant semantics.
H.7.3.8.5一般译码单元语法H.7.3.8.5 General decoding unit syntax
H.7.3.8.5.1深度模式参数语法H.7.3.8.5.1 Depth mode parameter syntax
H.7.3.8.5.2深度DC残余语法表H.7.3.8.5.2 Depth DC residual syntax table
语义和解码过程Semantics and decoding process
H.7.4.9.5译码单元语义H.7.4.9.5 Decoding unit semantics
将变量SdcEnableFlag设定成等于0,且以下适用:The variable SdcEnableFlag is set equal to 0, and the following apply:
SdcEnableFlag=SdcEnableFlag=
(vps_inter_sdc_flag[nuh_layer_id]&&PredMode[x0][y0]==MODE_INTER)||(vps_inter_sdc_flag[nuh_layer_id]&&PredMode[x0][y0]==MODE_INTER)||
(vps_depth_modes_flag[nuh_layer_id](vps_depth_modes_flag[nuh_layer_id]
&&PredMode[x0][y0]==MODE_INTRA&&PredMode[x0][y0]==MODE_INTRA
&&PartMode[x0][y0]==PART_2Nx2N&&PartMode[x0][y0]==PART_2Nx2N
&&(IntraPredModeY[x0][y0]==INTRA_DMM_WFULL||&&(IntraPredModeY[x0][y0]==INTRA_DMM_WFULL||
IntraPredModeY[x0][y0]==INTRA_PLANAR)) (H-16)IntraPredModeY[x0][y0]==INTRA_PLANAR)) (H-16)
等于1的sdc_flag[x0][y0]指定残余块的逐片段DC译码用于当前译码单元。等于0的sdc_flag[x0][y0]指定残余块的逐片段DC译码不用于当前译码单元。当不存在时,sdc_flag[x0][y0]推断为等于0。sdc_flag[x0][y0] equal to 1 specifies that slice-wise DC coding of the residual block is used for the current coding unit. sdc_flag[x0][y0] equal to 0 specifies that slice-wise DC coding of the residual block is not used for the current coding unit. When not present, sdc_flag[x0][y0] is inferred to be equal to 0.
H.7.4.9.5.1深度模式参数语义H.7.4.9.5.1 Depth mode parameter semantics
将变量Log2MaxDmmCbSize设定成等于5。Set the variable Log2MaxDmmCbSize equal to 5.
变量depthIntraModeSet如下文中指定导出:The variable depthIntraModeSet is exported as specified below:
-如果log2CbSize等于6,那么将depthIntraModeSet设定成等于0。- If log2CbSize is equal to 6, then set depthIntraModeSet equal to 0.
-否则,如果log2CbSize等于3且PartMode[xC][yC]等于PART_NxN,那么将depthIntraModeSet设定成等于1。- Otherwise, if log2CbSize is equal to 3 and PartMode[xC][yC] is equal to PART_NxN, then depthIntraModeSet is set equal to 1.
-否则,将depthIntraModeSet设定成等于2。Otherwise, set depthIntraModeSet equal to 2.
depth_intra_mode[x0][y0]指定当前预测单元的深度帧内模式。表H-2指定取决于depthIntraModeSet的变量的depthIntraModeMaxLen的值和变量DepthIntraMode的值以及取决于depth_intra_mode和depthIntraModeSet的相关联名称。depth_intra_mode[x0][y0] specifies the depth intra mode of the current prediction unit. Table H-2 specifies the value of depthIntraModeMaxLen and the value of the variable DepthIntraMode depending on the variable depthIntraModeSet, and the associated name depending on depth_intra_mode and depthIntraModeSet.
变量DmmFlag[x0][y0]如下文指定导出:The variable DmmFlag[x0][y0] is derived as specified below:
DmmFlag[x0][y0]=(DepthIntraMode[x0][y0]==INTRA_DEP_DMM_WFULL)||(H-26)DmmFlag[x0][y0]=(DepthIntraMode[x0][y0]==INTRA_DEP_DMM_WFULL)||(H-26)
(DepthIntraMode[x0][y0]==INTRA_DEP_DMM_CPREDTEX)(DepthIntraMode[x0][y0]==INTRA_DEP_DMM_CPREDTEX)
表H-2-取决于depthIntraModeSet和depth_intra_mode的DepthIntraMode和相关联名称的规范以及取决于depthIntraModeSet的depthIntraModeMaxLen的规范Table H-2 - Specification of DepthIntraMode and associated names depending on depthIntraModeSet and depth_intra_mode, and specification of depthIntraModeMaxLen depending on depthIntraModeSet
H.7.4.9.5.2深度DC残余语义H.7.4.9.5.2 Deep DC residual semantics
等于1的depth_dc_flag[x0][y0]指定depth_dc_abs[x0][y0][i]和depth_dc_sign_flag[x0][y0][i]存在。等于0的depth_dc_flag[x0][y0]指定depth_dc_abs[x0][y0][i]和depth_dc_sign_flag[x0][y0][i]不存在。当不存在时,depth_dc_flag[x0][y0]推断为等于1。depth_dc_flag[x0][y0] equal to 1 specifies that depth_dc_abs[x0][y0][i] and depth_dc_sign_flag[x0][y0][i] are present. depth_dc_flag[x0][y0] equal to 0 specifies that depth_dc_abs[x0][y0][i] and depth_dc_sign_flag[x0][y0][i] are not present. When not present, depth_dc_flag[x0][y0] is inferred to be equal to 1.
depth_dc_abs[x0][y0][i]、depth_dc_sign_flag[x0][y0][i]用以如下导出DcOffset[x0][y0][i]:depth_dc_abs[x0][y0][i], depth_dc_sign_flag[x0][y0][i] are used to derive DcOffset[x0][y0][i] as follows:
DcOffset[x0][y0][i]=DcOffset[x0][y0][i]=
(1-2*depth_dc_sign_flag[x0][y0][i])*(depth_dc_abs[x0][y0][i]-dcNumSeg+2)(H-27)(1-2*depth_dc_sign_flag[x0][y0][i])*(depth_dc_abs[x0][y0][i]-dcNumSeg+2)(H-27)
H.8.5.4.1总则H.8.5.4.1 General
……
-如果sdc_flag等于0,那么以下适用,取决于rqt_root_cbf的值,以下适用:- If sdc_flag is equal to 0, then the following applies, depending on the value of rqt_root_cbf, the following applies:
-如果rqt_root_cbf等于0或skip_flag[xCb][yCb]等于1,那么将(nCbSL)x(nCbSL)阵列resSamplesL的全部样本以及两个(nCbSC)x(nCbSC)阵列- If rqt_root_cbf is equal to 0 or skip_flag[xCb][yCb] is equal to 1, then all samples of the (nCbS L )x(nCbS L ) array resSamples L and the two (nCbS C )x(nCbS C ) arrays
resSamplesCb和resSamplesCr的全部样本设定成等于0。All samples in resSamples Cb and resSamples Cr are set equal to 0.
-否则(rqt_root_cbf等于1),以下有序步骤适用:Otherwise (rqt_root_cbf is equal to 1), the following ordered steps apply:
以明度位置(xCb,yCb)、设定成等于(0,0)的明度位置(xB0,yB0)、设定成等于log2CbSize的变量log2TrafoSize、设定成等于0的变量trafoDepth、设定成等于nCbSL的变量nCbS以及(nCbSL)x(nCbSL)阵列resSamplesL作为输入调用如以下子条款H.8.5.4.2中指定的用于明度残余块的解码过程,且输出是(nCbSL)x(nCbSL)阵列resSamplesL的经修改版本。The decoding process for the luma residual block as specified in subclause H.8.5.4.2 below is called with as input the luma position (xCb, yCb), the luma position (xB0, yB0) set equal to (0, 0 ), the variable log2TrafoSize set equal to log2CbSize, the variable trafoDepth set equal to 0 , the variable nCbS set equal to nCbSL, and the (nCbSL)x( nCbSL ) array resSamplesL , and the output is a modified version of the ( nCbSL )x( nCbSL ) array resSamplesL .
以明度位置(xCb,yCb)、设定成等于(0,0)的明度位置(xB0,yB0)、设定成等于log2CbSize的变量log2TrafoSize、设定成等于0的变量trafoDepth、设定成等于1的变量cIdx、设定成等于nCbSC的变量nCbS以及(nCbSC)x(nCbSC)阵列resSamplesCb作为输入调用如以下子条款H.8.5.4.3中指定的用于色度残余块的解码过程,且输出是(nCbSC)x(nCbSC)阵列resSamplesCb的经修改版本。The decoding process for chroma residual blocks as specified in subclause H.8.5.4.3 below is invoked with as input the luma position (xCb, yCb), the luma position (xB0, yB0) set equal to (0, 0 ), the variable log2TrafoSize set equal to log2CbSize, the variable trafoDepth set equal to 0, the variable cIdx set equal to 1 , the variable nCbS set equal to nCbSC, and the ( nCbSC ) x(nCbSC) array resSamplesCb, and the output is a modified version of the (nCbSC)x( nCbSC ) array resSamplesCb .
以明度位置(xCb,yCb)、设定成等于(0,0)的明度位置(xB0,yB0)、设定成等于log2CbSize的变量log2TrafoSize、设定成等于0的变量trafoDepth、设定成等于2的变量cIdx、设定成等于nCbSC的变量nCbS以及(nCbSC)x(nCbSC)阵列resSamplesCr作为输入调用如以下子条款H.8.5.4.3中指定的用于色度残余块的解码过程,且输出是(nCbSC)x(nCbSC)阵列resSamplesCr的经修改版本。The decoding process for chroma residual blocks as specified in subclause H.8.5.4.3 below is invoked with as input the luma position (xCb, yCb), the luma position (xB0, yB0) set equal to (0, 0 ), the variable log2TrafoSize set equal to log2CbSize, the variable trafoDepth set equal to 0, the variable cIdx set equal to 2 , the variable nCbS set equal to nCbSC , and the ( nCbSC )x(nCbSC) array resSamplesCr , and the output is a modified version of the (nCbSC)x( nCbSC ) array resSamplesCr .
-否则(sdc_flag等于1),以明度位置(xCb,yCb)、设定成等于(0,0)的明度位置(xB0,yB0)、设定成等于log2CbSize的变量log2TrafoSize、设定成等于0的变量trafoDepth、设定成等于nCbSL的变量nCbS以及nCbS阵列resSamplesL作为输入调用如以下子条款H.8.5.4.4中指定的用于简化深度译码残余块的解码过程,且输出是(nCbSL)x(nCbSL)阵列resSamplesL的经修改版本。Otherwise (sdc_flag is equal to 1), the decoding process for simplified depth coded residual blocks as specified in the following subclause H.8.5.4.4 is called with as input the luma position (xCb, yCb), the luma position (xB0, yB0) set equal to (0, 0), the variable log2TrafoSize set equal to log2CbSize, the variable trafoDepth set equal to 0, the variable nCbS set equal to nCbS L , and the nCbS array resSamples L , and the output is a modified version of the (nCbS L )x(nCbS L ) array resSamples L.
……
H.8.5.4.4用于简化深度译码残余块的解码过程H.8.5.4.4 is used to simplify the decoding process of depth-coded residual blocks
对于在0到nCbS的范围内的x,以下适用:For x in the range 0 to nCbS, the following applies:
-对于在0到nCbS的范围内的y,以下适用:- For y in the range 0 to nCbS, the following applies:
-如以下指定导出变量i:-Export variable i is specified as follows:
-如果x小于xOff且y小于yOff,那么将i设定成等于0。- If x is less than xOff and y is less than yOff, then set i equal to 0.
-否则,如果x大于或等于xOff且y小于yOff,那么将i设定成等于1。- Otherwise, if x is greater than or equal to xOff and y is less than yOff, then set i equal to 1.
-否则,如果x小于xOff且y大于或等于yOff,那么将i设定成等于2。Otherwise, if x is less than xOff and y is greater than or equal to yOff, then set i equal to 2.
-否则,(x大于或等于xOff且y大于或等于yOff),那么将i设定成等于3。- Otherwise, (x is greater than or equal to xOff and y is greater than or equal to yOff), then set i equal to 3.
-将resSamples[x][y]的值设定成等于DcOffset[xCb][yCb][interSdcResiIdx[i]]- Set the value of resSamples[x][y] to be equal to DcOffset[xCb][yCb][interSdcResiIdx[i]]
表H-10-用于初始化过程中的每一initializationType的ctxIdx和语法元素的关联Table H-10 - Association of ctxIdx and syntax elements for each initializationType in the initialization process
表H-20-语法元素和相关联二进制化Table H-20 - Syntax elements and associated binarization
表H-22-通过上下文经译码二进位的ctxInc到语法元素的指派Table H-22 - Assignment of ctxInc to Syntax Elements by Context Coded Binary
图7到12是说明根据本发明由视频编码器20和/或视频解码器20执行的各种实例操作的流程图。流程图是出于说明的目的而提供且不应被视为具限制性。各种操作的次序是出于说明的目的而呈现,且不一定指示所述操作必须以所说明的次序执行。并且,在许多情况下,图7到12中说明的操作可彼此以各种组合而实践。7-12 are flowcharts illustrating various example operations performed by video encoder 20 and/or video decoder 20 in accordance with this disclosure. The flowcharts are provided for illustrative purposes and should not be considered limiting. The order of the various operations is presented for illustrative purposes and does not necessarily indicate that the operations must be performed in the order described. Furthermore, in many cases, the operations illustrated in FIGs. 7-12 may be practiced in various combinations with one another.
图7是说明例如在CU层级对语法元素进行编码以指示用于深度帧内预测和深度帧间预测模式两者的SDC使用的流程图。视频编码器20可经配置以执行图7的操作。举例来说,视频编码器30可选择SDC模式用于对深度CU的PU的分区进行译码。在一些实例中,视频编码器30可发射语法元素以启用或停用用于对整个经编码视频序列中的深度CU进行译码的SDC模式。随后,在一些实例中,如果SDC针对序列经启用,那么视频编码器30可用信号表示用于序列中的每一深度CU的语法元素以指示针对深度CU是否选择SDC。视频编码器30针对每一CU选择帧间译码模式或经帧内译码模式(202),且接着应用所述深度CU的帧间预测(204)或所述深度CU的帧内预测(206)。FIG7 is a flowchart illustrating encoding syntax elements to indicate SDC use for both depth intra prediction and depth inter prediction modes, for example, at the CU level. Video encoder 20 may be configured to perform the operations of FIG7 . For example, video encoder 30 may select SDC mode for coding a partition of a PU of a depth CU. In some examples, video encoder 30 may transmit syntax elements to enable or disable SDC mode for coding depth CUs in the entire encoded video sequence. Subsequently, in some examples, if SDC is enabled for a sequence, video encoder 30 may signal a syntax element for each depth CU in the sequence to indicate whether SDC is selected for the depth CU. Video encoder 30 selects either inter coding mode or intra coding mode for each CU ( 202 ) and then applies inter prediction for the depth CU ( 204 ) or intra prediction for the depth CU ( 206 ).
可使用各种类型的SDC帧内预测。在一些实例中,对于SDC,对于当前经帧内译码,其中所述语法元素指示SDC模式是否用于当前深度CU,译码可包含当执行帧内预测以产生预测深度CU时使用来自对应于所述深度CU的深度分量的纹理分量的样本。Various types of SDC intra prediction may be used. In some examples, for SDC, for a currently intra-coded CU, where the syntax element indicates whether SDC mode is used for the current depth CU, coding may include using samples from a texture component corresponding to a depth component of the depth CU when performing intra prediction to generate a predicted depth CU.
对于深度译码,视频编码器30可使用规则HEVC帧内预测或帧间预测模式或DMM模式,例如楔波、轮廓或平面分割模式。在任一情况下,视频编码器20可应用SDC以产生用于一或多个深度CU分区的一或多个DC残余值(208)。举例来说,通过SDC,视频编码器20可针对与深度CU的每一PU相关联的分区对仅一个DC残余值进行编码。因此,视频编码器20针对每一PU用信号表示一个DC残余值,且将所述一个DC残余值用作所述PU中的全部样本的残余。所述PU可为整个CU或CU中的个别分区,例如由楔波或轮廓分割界定的分区。For depth coding, video encoder 30 may use a regular HEVC intra-prediction or inter-prediction mode or a DMM mode, such as a Wedgelet, Contour, or Plane partitioning mode. In either case, video encoder 20 may apply SDC to generate one or more DC residual values for one or more depth CU partitions (208). For example, with SDC, video encoder 20 may encode only one DC residual value for a partition associated with each PU of a depth CU. Thus, video encoder 20 signals one DC residual value for each PU and uses the one DC residual value as the residual for all samples in the PU. The PU may be an entire CU or an individual partition within the CU, such as a partition defined by Wedgelet or Contour partitioning.
进一步参看图7,视频编码器20可对指示SDC用于CU(无论是用于帧内还是帧间模式,即用于深度帧内和深度帧间预测两者)的语法元素进行编码(210)。因此,并非独立地单独用信号表示用于深度帧内和深度帧间预测的SDC,视频编码器20产生CU的单个语法元素,其指示SDC应用于所述CU,无论所述CU是以深度帧内还是深度帧间预测译码。所述语法元素可为sdc_flag语法元素。sdc_flag语法元素可为一位旗标。作为一实例,1的sdc_flag值指示SDC将用于深度帧内和深度帧间预测两者,且0的sdc_flag值指示SDC将不用于深度帧内和深度帧间预测。再次,另一语法元素可针对整个序列启用或停用SDC。如果SDC经启用,那么可在CU层级用信号表示sdc_flag。如果SDC针对序列停用,那么在一些实例中,不用信号表示sdc_flag。再次,可基于序列、图片或切片而应用SDC的启用或停用,而可发送sdc_flag以指示在CU层级的实际SDC使用。7 , video encoder 20 may encode a syntax element indicating that SDC is used for a CU, whether for intra or inter mode, i.e., for both depth intra and depth inter prediction ( 210 ). Thus, rather than separately signaling SDC for depth intra and depth inter prediction independently, video encoder 20 generates a single syntax element for a CU that indicates that SDC applies to the CU, regardless of whether the CU is coded with depth intra or depth inter prediction. The syntax element may be an sdc_flag syntax element. The sdc_flag syntax element may be a one-bit flag. As an example, an sdc_flag value of 1 indicates that SDC is to be used for both depth intra and depth inter prediction, and an sdc_flag value of 0 indicates that SDC is not to be used for depth intra and depth inter prediction. Again, another syntax element may enable or disable SDC for the entire sequence. If SDC is enabled, the sdc_flag may be signaled at the CU level. If SDC is disabled for a sequence, then in some examples, sdc_flag is not signaled. Again, the enabling or disabling of SDC may be applied based on sequence, picture, or slice, while sdc_flag may be sent to indicate actual SDC usage at the CU level.
在一些实例中,视频编码器20可在CU层级在一般译码单元参数中用信号表示SDC语法元素sdc_flag。因此,视频编码器20可基于逐CU用信号表示SDC语法元素。在其它实例中,如上文论述,视频编码器20可在切片片段标头中用信号表示另一语法元素,其指示SDC针对切片片段中的全部深度CU经启用(或停用)。在又其它实例中,由视频编码器20产生的SDC语法元素可指示SDC针对整个图片或整个视频序列中的全部深度CU经启用(或停用)。举例来说,视频编码器20可在视频参数集(VPS)扩展(例如用于3D-HEVC)中、在序列参数集(SPS)中或在图片参数集(PPS)中用信号表示启用/停用SDC语法元素。在一些实例中,在VPS、SPS、PPS、切片标头或类似物中用信号表示的一或多个语法元素可用以计算可例如在CU层级单独地用信号表示的启用或停用旗标的值。因此,第一SDC启用语法元素可用以例如针对切片中的全部深度CU、图片中的全部深度CU或整个经编码视频序列中的全部深度CU启用或停用SDC,且第二SDC语法元素(例如,sdc_flag)可经配置以指示SDC实际上用于个别深度CU的深度帧内和深度帧间预测两者。In some examples, video encoder 20 may signal the SDC syntax element sdc_flag in general coding unit parameters at the CU level. Thus, video encoder 20 may signal the SDC syntax element on a CU-by-CU basis. In other examples, as discussed above, video encoder 20 may signal another syntax element in a slice segment header that indicates that SDC is enabled (or disabled) for all depth CUs in a slice segment. In still other examples, the SDC syntax element generated by video encoder 20 may indicate that SDC is enabled (or disabled) for all depth CUs in an entire picture or an entire video sequence. For example, video encoder 20 may signal the enable/disable SDC syntax element in a video parameter set (VPS) extension (e.g., for 3D-HEVC), in a sequence parameter set (SPS), or in a picture parameter set (PPS). In some examples, one or more syntax elements signaled in a VPS, SPS, PPS, slice header, or the like may be used to calculate the value of an enable or disable flag that may be signaled separately, for example, at the CU level. Thus, a first SDC enable syntax element may be used to enable or disable SDC, for example, for all depth CUs in a slice, all depth CUs in a picture, or all depth CUs in the entire encoded video sequence, and a second SDC syntax element (e.g., sdc_flag) may be configured to indicate that SDC is actually used for both depth intra and depth inter prediction of individual depth CUs.
视频编码器20也可对具有SDC残余数据的语法结构进行编码。举例来说,在当前深度CU是以SDC译码时,对于每一分区,可在一个语法结构中呈现用于经帧间译码CU或经帧内译码CU的每一PU的每一分区的DC残余值。DC残余值可为像素值域中的DC偏移。用于分区的此单个语法结构包含分区的DC残余数据,无论所述分区经帧内还是经帧间预测。举例来说,对于帧内预测或帧间预测,所述语法结构可包含DC残余值的绝对值及其正负号(正或负)。DC残余语法元素的实例包含用以指示残余的depth_dc_abs和用以指示正负号的depth_dc_sign_flag。举例来说,depth_dc_abs和depth_dc_sign_flag可用以导出DcOffset值。以此方式,视频编码器20可经配置以将用于经帧间译码CU或经帧内译码CU的DC残余数据统一为由一个语法结构呈现。在一些实例中,语法结构中的DC残余数据可包含DC残余值和正负号。在其它实例中,可使用DLT用信号表示DC残余数据。在此情况下,可将DC残余数据用信号表示为例如用于深度PU或分区的原始DC值的DLT索引与预测DC值的DLT索引之间的差。Video encoder 20 may also encode syntax structures with SDC residual data. For example, when the current depth CU is SDC coded, for each partition, the DC residual value for each partition for each PU of an inter-coded CU or an intra-coded CU may be presented in one syntax structure. The DC residual value may be a DC offset in the pixel value domain. This single syntax structure for a partition includes DC residual data for the partition, regardless of whether the partition is intra- or inter-predicted. For example, for intra- or inter-prediction, the syntax structure may include the absolute value of the DC residual value and its sign (positive or negative). Examples of DC residual syntax elements include depth_dc_abs, which indicates the residual, and depth_dc_sign_flag, which indicates the sign. For example, depth_dc_abs and depth_dc_sign_flag may be used to derive a DcOffset value. In this way, video encoder 20 may be configured to unify DC residual data for an inter-coded CU or an intra-coded CU to be presented in one syntax structure. In some examples, the DC residual data in the syntax structure may include the DC residual value and sign. In other examples, the DC residual data may be signaled using a DLT. In this case, the DC residual data may be signaled as, for example, the difference between the DLT index of the original DC value and the DLT index of the predicted DC value for a depth PU or partition.
作为一个替代方案或另外,视频编码器20可经配置以针对经帧内译码CU用信号表示且编码旗标,其指示所述CU是否在任何其分区中含有任何非零DC残余值。如果此旗标是0,那么视频编码器20不用信号表示经帧内译码CU的任何DC残余值,且解码器30推断DC残余值针对所述CU的每一分区等于零。作为另一替代方案,由视频编码器20产生以指示CU是否在任何其分区中含有任何非零DC残余值的旗标可应用于经帧内译码和经帧间译码CU。As an alternative or in addition, video encoder 20 may be configured to signal and encode a flag for an intra-coded CU that indicates whether the CU contains any non-zero DC residual values in any of its partitions. If this flag is 0, video encoder 20 does not signal any DC residual values for the intra-coded CU, and decoder 30 infers that the DC residual value is equal to zero for each partition of the CU. As another alternative, a flag generated by video encoder 20 to indicate whether a CU contains any non-zero DC residual values in any of its partitions may be applied to both intra-coded and inter-coded CUs.
由视频编码器20产生且用以用信号表示经帧内预测和经帧间预测CU的DC残余值的语法结构可为单个语法结构,如上文所描述。即,可针对每一深度CU产生单个语法结构,无论所述CU是经帧内预测还是经帧间预测。以此方式,帧内预测和帧间预测模式可共享相同语法元素以用信号表示深度CU的分区的DC残余值。视频编码器20可使用用于相关语法元素的相同上下文模型和/或二进制化过程对语法结构的语法元素进行熵译码,无论深度CU是经帧内预测还是经帧间预测,进而以SDC统一用于帧内预测和帧间预测的熵译码过程。The syntax structure generated by video encoder 20 and used to signal the DC residual values for both intra-predicted and inter-predicted CUs may be a single syntax structure, as described above. That is, a single syntax structure may be generated for each depth CU, regardless of whether the CU is intra-predicted or inter-predicted. In this way, intra-prediction and inter-prediction modes may share the same syntax elements to signal the DC residual values for partitions of the depth CU. Video encoder 20 may entropy code the syntax elements of the syntax structure using the same context model and/or binarization process for the relevant syntax elements, regardless of whether the depth CU is intra-predicted or inter-predicted, thereby unifying the entropy coding process for intra-prediction and inter-prediction with SDC.
替代地,视频编码器20可产生语法结构的单独实例,即,包含用于帧内预测的DC残余数据的一个语法结构和包含用于帧间预测的DC残余数据的一个语法结构,其中所述语法结构的实例相同或大体上相同,因为在所述语法结构的每一实例中包含相同语法元素。在此情况下,视频编码器30可单独地对所述语法结构的单独实例进行熵译码,且针对所述语法结构的帧内预测实例和所述语法结构的帧间预测实例使用相同或单独地维持的上下文且可能使用二进制化。即使所述上下文是单独维持的,帧内SDC和帧间SDC模式也仍可使用相同语法元素和相同语法结构(但在不同实例中)以载运用于深度CU的PU的分区的DC残余数据。Alternatively, video encoder 20 may generate separate instances of a syntax structure, namely, one syntax structure including DC residual data for intra prediction and one syntax structure including DC residual data for inter prediction, where the instances of the syntax structure are identical or substantially identical in that the same syntax elements are included in each instance of the syntax structure. In this case, video encoder 30 may entropy code the separate instances of the syntax structure separately and use the same or separately maintained context, and possibly binarization, for the intra prediction instance of the syntax structure and the inter prediction instance of the syntax structure. Even if the context is maintained separately, intra SDC and inter SDC modes may still use the same syntax elements and the same syntax structure (but in different instances) to carry DC residual data for partitions of PUs of a depth CU.
视频编码器214对用于与深度CU相关联的一或多个PU的预测的帧内预测或帧间预测信息进行编码(214)。举例来说,视频编码器214可对用于每一PU的译码模式的指示以及用于解码器侧的每一PU的帧间或帧内预测的任何其它信息进行编码。对于例如SDC帧内预测,视频编码器20可对用于HEVC帧内预测模式、DMM模式或其它帧内模式的帧内译码模式信息进行编码。对于例如帧间预测,视频编码器20可对用于经帧间预测深度PU和/或分区的产生的运动信息进行编码。视频编码器214可对SDC语法元素(即,指示在CU层级的SDC的使用)、SDC语法结构(即,指示用于PU分区的DC值)以及帧内或帧间预测信息进行熵译码供解码器30在解码器侧用于解码和重构深度CU作为例如3D-HEVC解码过程等3D解码过程的部分。Video encoder 214 encodes intra-prediction or inter-prediction information for prediction of one or more PUs associated with a depth CU (214). For example, video encoder 214 may encode an indication of the coding mode used for each PU and any other information used for inter- or intra-prediction of each PU on the decoder side. For example, for SDC intra-prediction, video encoder 20 may encode intra-coding mode information for HEVC intra-prediction mode, DMM mode, or other intra-modes. For example, for inter-prediction, video encoder 20 may encode motion information for the generation of inter-predicted depth PUs and/or partitions. Video encoder 214 may entropy code SDC syntax elements (i.e., indicating the use of SDC at the CU level), SDC syntax structures (i.e., indicating DC values for PU partitions), and intra- or inter-prediction information for use by decoder 30 on the decoder side to decode and reconstruct the depth CU as part of a 3D decoding process, such as a 3D-HEVC decoding process.
图8是说明例如上文参考图7描述的语法元素等SDC语法元素的解码以指示用于深度帧内预测和深度帧间预测模式两者的SDC使用的流程图。一般来说,图8从视频解码器30的解码器侧角度描述图7中说明的过程。因此,参考图7描述的各种操作和语法的细节可以类似方式应用于图8,但是从视频解码器30的角度应用。如图8中所示,视频解码器30可经配置以对用于深度CU的帧内和/或帧间预测模式信息进行解码以产生预测深度信息。另外,视频解码器30可接收且解码指示SDC是否将用于CU的SDC语法元素(例如,sdc_flag),即无论是使用深度帧内预测还是深度帧间预测模式。换句话说,所述语法元素用以用信号表示用于帧内和帧间CU两者的SDC。FIG8 is a flowchart illustrating the decoding of SDC syntax elements, such as the syntax elements described above with reference to FIG7 , to indicate the use of SDC for both depth intra prediction and depth inter prediction modes. Generally speaking, FIG8 describes the process illustrated in FIG7 from the decoder-side perspective of video decoder 30. Thus, the various operations and syntax details described with reference to FIG7 may be similarly applied to FIG8 , but from the perspective of video decoder 30. As shown in FIG8 , video decoder 30 may be configured to decode intra and/or inter prediction mode information for a depth CU to generate predicted depth information. Additionally, video decoder 30 may receive and decode an SDC syntax element (e.g., sdc_flag) that indicates whether SDC is to be used for a CU, i.e., whether depth intra prediction or depth inter prediction mode is to be used. In other words, the syntax element is used to signal SDC for both intra and inter CUs.
如参考图7所论述,并非独立地单独接收用于深度帧内和深度帧间预测的SDC的信令,视频解码器20接收指示SDC应用于深度帧内和深度帧间预测两者的SDC语法元素。再次,所述SDC语法元素可为sdc_flag语法元素,且可另外符合上文参考图7描述的所述语法元素的描述。1的sdc_flag值可指示SDC将用于CU的深度帧内和深度帧间预测两者,且0的sdc_flag值可指示SDC将不用于CU的深度帧内和深度帧间预测。As discussed with reference to FIG7 , rather than independently receiving signaling of SDC for depth intra and depth inter prediction, video decoder 20 receives an SDC syntax element indicating that SDC applies to both depth intra and depth inter prediction. Again, the SDC syntax element may be an sdc_flag syntax element and may otherwise conform to the description of the syntax element described above with reference to FIG7 . An sdc_flag value of 1 may indicate that SDC is to be used for both depth intra and depth inter prediction of a CU, and an sdc_flag value of 0 may indicate that SDC is not to be used for depth intra and depth inter prediction of a CU.
视频解码器30可在CU层级在一般译码单元参数中接收SDC语法元素。因此,视频解码器30可基于逐CU而接收且解码SDC语法元素。在一些实例中,视频解码器30可在切片片段标头中接收另一SDC语法元素,其指示SDC针对切片片段中的全部深度CU经启用。在又其它实例中,视频解码器30可接收指示SDC针对整个经译码视频序列中或图片中的深度CU的帧内和帧间预测经启用的另一语法元素。举例来说,视频解码器30可在视频参数集(VPS)扩展(例如用于3D-HEVC)中、在序列参数集(SPS)中或在图片参数集(PPS)中接收额外SDC语法元素(指示SDC是否经启用或停用)。因此,视频解码器30可接收指示SDC针对序列、图片或切片中的CU经启用的第一SDC语法元素,以及在CU层级指示SDC实际上用于特定CU的第二SDC元素(例如,sdc_flag)。Video decoder 30 may receive an SDC syntax element in a general coding unit parameter at the CU level. Thus, video decoder 30 may receive and decode the SDC syntax element on a CU-by-CU basis. In some examples, video decoder 30 may receive another SDC syntax element in a slice segment header indicating that SDC is enabled for all depth CUs in a slice segment. In still other examples, video decoder 30 may receive another syntax element indicating that SDC is enabled for intra and inter prediction of depth CUs in the entire coded video sequence or in a picture. For example, video decoder 30 may receive additional SDC syntax elements (indicating whether SDC is enabled or disabled) in a video parameter set (VPS) extension (e.g., for 3D-HEVC), in a sequence parameter set (SPS), or in a picture parameter set (PPS). Thus, video decoder 30 may receive a first SDC syntax element indicating that SDC is enabled for a CU in a sequence, picture, or slice, and a second SDC element (e.g., sdc_flag) at the CU level indicating that SDC is actually used for a particular CU.
如果将SDC指示为不使用(例如,sdc_flag=0)用于帧内预测和帧间预测(224),那么解码器30对位流进行解码以获得用于经帧内或经帧间预测PU的重构的非SDC残余数据。如果所述语法元素指示SDC使用(例如,sdc_flag=1)用于帧内预测和帧间预测(224),那么解码器30对语法结构进行解码以产生用于当前CU的深度PU的分区的SDC残余数据。这可针对CU中的PU的多个分区重复。解码器30可接收多个语法结构,其中所述语法结构包含用于相应深度PU分区的SDC残余数据。如参考图8所描述,用于每一深度PU的语法结构可为单个语法结构,无论深度PU是经帧内还是经帧间译码,或者分别用于经帧内和经帧间译码深度PU的同一语法结构的单独实例。在当前深度CU是以SDC译码时,针对每一分区,可在语法结构中呈现用于经帧间译码CU或经帧内译码CU的DC残余值。因此,用于分区的此语法结构包含分区的DC残余数据,无论所述分区经帧内还是经帧间预测。If SDC is indicated as not used (e.g., sdc_flag = 0) for intra prediction and inter prediction (224), decoder 30 decodes the bitstream to obtain non-SDC residual data for reconstruction of the intra- or inter-predicted PU. If the syntax element indicates SDC use (e.g., sdc_flag = 1) for intra prediction and inter prediction (224), decoder 30 decodes the syntax structure to generate SDC residual data for the partition of the depth PU of the current CU. This may be repeated for multiple partitions of PUs in the CU. Decoder 30 may receive multiple syntax structures, where the syntax structures include SDC residual data for the respective depth PU partitions. As described with reference to FIG8, the syntax structure for each depth PU may be a single syntax structure, whether the depth PU is intra- or inter-coded, or separate instances of the same syntax structure for intra- and inter-coded depth PUs, respectively. When the current depth CU is SDC-coded, for each partition, the DC residual value for the inter-coded CU or the intra-coded CU may be presented in the syntax structure. Thus, this syntax structure for the partition includes DC residual data for the partition, regardless of whether the partition is intra- or inter-predicted.
举例来说,对于帧内预测或帧间预测,由视频解码器30解码的语法结构可包含DC残余值的绝对值及其正负号(正或负)。所述语法结构中的DC残余语法元素的实例包含用以指示残余的depth_dc_abs和用以指示正负号的depth_dc_sign_flag。以此方式,通过使用同一语法结构或至少相同语法元素来传达用于深度帧内和深度帧间译码两者的DC残余数据,视频解码器30可经配置以统一用于经帧间译码CU或经帧内译码CU的DC残余值。在一些实例中,语法结构中的DC残余数据可包含DC残余值和正负号。在其它实例中,可使用DLT用信号表示DC残余数据。在此情况下,可将DC残余数据用信号表示为例如用于深度PU或分区的原始DC值的DLT索引与预测DC值的DLT索引之间的差。For example, for intra prediction or inter prediction, the syntax structure decoded by video decoder 30 may include the absolute value of the DC residual value and its sign (positive or negative). Examples of the DC residual syntax element in the syntax structure include depth_dc_abs to indicate the residual and depth_dc_sign_flag to indicate the sign. In this way, by using the same syntax structure, or at least the same syntax elements, to convey DC residual data for both depth intra and depth inter coding, video decoder 30 may be configured to unify DC residual values for inter-coded CUs or intra-coded CUs. In some examples, the DC residual data in the syntax structure may include the DC residual value and the sign. In other examples, the DC residual data may be signaled using a DLT. In this case, the DC residual data may be signaled as, for example, the difference between the DLT index for the original DC value and the DLT index for the predicted DC value for the depth PU or partition.
在一些实例中,如参考图7所描述,在图8的操作中,视频解码器30可经配置以针对经帧内译码CU用信号表示且解码旗标,其指示所述CU是否在任何其分区中含有任何非零DC残余值。如果此旗标是0,那么视频解码器20不剖析经帧内译码CU的任何DC残余值,且改为针对CU的每一分区推断DC残余值等于零。作为另一替代方案,由视频解码器30解码以指示CU是否在任何其分区中含有任何非零DC残余值的旗标可应用于经帧内译码和经帧间译码CU。In some examples, as described with reference to FIG7 , in the operation of FIG8 , video decoder 30 may be configured to signal and decode a flag for an intra-coded CU that indicates whether the CU contains any non-zero DC residual values in any of its partitions. If this flag is 0, video decoder 20 does not parse any DC residual values for the intra-coded CU and instead infers a DC residual value equal to zero for each partition of the CU. As another alternative, the flag decoded by video decoder 30 to indicate whether a CU contains any non-zero DC residual values in any of its partitions may be applied to both intra-coded and inter-coded CUs.
由视频解码器30解码的语法结构可为单个语法结构,如上文所描述。即,可针对每一深度CU产生单个语法结构,无论所述CU是经帧内预测还是经帧间预测。以此方式,帧内预测和帧间预测模式可共享相同语法元素以用信号表示深度CU的分区的DC残余值。视频解码器20可使用用于相关语法元素的相同上下文模型和二进制化过程中的至少一者对语法结构进行熵解码,无论深度CU是经帧内预测还是经帧间预测,进而以SDC统一用于帧内预测和帧间预测的熵解码过程。用于上下文自适应熵译码过程的上下文模型和二进制化过程中的至少一者针对所述语法结构中的相同语法元素(例如,depth_dc_abs和depth_dc_sign_flag)可为相同的。The syntax structure decoded by video decoder 30 may be a single syntax structure, as described above. That is, a single syntax structure may be generated for each depth CU, regardless of whether the CU is intra-predicted or inter-predicted. In this way, intra-prediction and inter-prediction modes may share the same syntax elements to signal the DC residual values of the partitions of the depth CU. Video decoder 20 may entropy decode the syntax structure using the same context model and at least one of the binarization process for the relevant syntax elements, regardless of whether the depth CU is intra-predicted or inter-predicted, thereby unifying the entropy decoding process for intra-prediction and inter-prediction with SDC. At least one of the context model and the binarization process used for the context-adaptive entropy coding process may be the same for the same syntax elements (e.g., depth_dc_abs and depth_dc_sign_flag) in the syntax structure.
替代地,在图8的操作中,视频解码器30可接收且解码语法结构的单独实例,即,包含用于帧内预测的DC残余数据的一个语法结构和包含用于帧间预测的DC残余数据的一个语法结构,其中所述语法结构的实例大体上相同,因为在所述语法结构的每一实例中包含相同语法元素,如参考图7所描述。在此情况下,视频解码器30可单独地但以相同语法元素对语法结构的单独实例进行熵解码,且使用针对语法结构的帧内预测实例和语法结构的帧间预测实例相同或单独地维持的上下文且可能使用二进制化。再次,可使用用以指示残余的depth_dc_abs和用以指示正负号的depth_dc_sign_flag的相同语法元素,无论是否提供单个语法结构或语法结构的单独实例。在每一情况下,可使用相同语法元素来传达用于帧内和帧间预测模式两者的SDC残余数据。在一些实例中,用于上下文自适应熵译码过程的上下文模型和二进制化过程中的至少一者针对语法结构的不同实例中的相同语法元素(例如,depth_dc_abs和depth_dc_sign_flag)可为相同的。在其它实例中,用于上下文自适应熵译码过程的上下文模型和二进制化过程中的一者或两者针对语法结构的不同实例中的语法元素(例如,depth_dc_abs和depth_dc_sign_flag)可为不同的。Alternatively, in the operation of FIG8 , video decoder 30 may receive and decode separate instances of a syntax structure, namely, one syntax structure including DC residual data for intra prediction and one syntax structure including DC residual data for inter prediction, where the instances of the syntax structure are substantially identical in that the same syntax elements are included in each instance of the syntax structure, as described with reference to FIG7 . In this case, video decoder 30 may entropy decode the separate instances of the syntax structure separately but with the same syntax elements, using the same or separately maintained context for the intra and inter prediction instances of the syntax structure, and possibly using binarization. Again, the same syntax elements, depth_dc_abs to indicate the residual and depth_dc_sign_flag to indicate the sign, may be used, regardless of whether a single syntax structure or separate instances of the syntax structure are provided. In each case, the same syntax elements may be used to convey SDC residual data for both intra and inter prediction modes. In some examples, at least one of the context model and the binarization process for the context adaptive entropy coding process may be the same for the same syntax elements (e.g., depth_dc_abs and depth_dc_sign_flag) in different instances of the syntax structure. In other examples, one or both of the context model and the binarization process for the context adaptive entropy coding process may be different for the syntax elements (e.g., depth_dc_abs and depth_dc_sign_flag) in different instances of the syntax structure.
在SDC译码或非SDC译码的情况下,视频解码器30确定深度帧内模式或深度帧间模式是否应用于当前CU(230)。视频解码器30在适用时使用提供于经编码视频位流中的模式信息对每一深度PU进行帧间预测(232)或对每一深度PU进行帧内预测(234)。所述模式信息可包含例如用于产生经帧内预测深度PU和/或分区的HEVC帧内预测模式、DMM模式或其它帧内模式的帧内译码模式信息,或用于产生经帧间预测深度PU和/或分区的帧间译码模式信息和运动信息。使用此信息,视频解码器30产生用于深度PU和/或分区的预测性样本。In the case of SDC coding or non-SDC coding, video decoder 30 determines whether depth intra mode or depth inter mode applies to the current CU (230). Video decoder 30 inter-predicts each depth PU (232) or intra-predicts each depth PU (234), as applicable, using mode information provided in the encoded video bitstream. The mode information may include intra-coding mode information, such as HEVC intra-prediction mode, DMM mode, or other intra-mode, for generating intra-predicted depth PUs and/or partitions, or inter-coding mode information and motion information for generating inter-predicted depth PUs and/or partitions. Using this information, video decoder 30 generates predictive samples for the depth PUs and/or partitions.
视频解码器30使用SDC残余数据或非SDC残余数据和预测深度PU重构深度CU的PU的分区。举例来说,在SDC译码的情况下,对于给定PU,视频解码器30应用在SDC语法结构中用信号表示的DC残余值,或基于提供于SDC语法结构中的索引值差或其它信息而从DLT导出DC残余值。视频解码器30将DC残余值添加到预测PU分区的预测样本以重构原始样本。以此方式,视频解码器30使用SDC语法元素和SDC语法结构来统一SDC帧内和帧间解码,而不是分别使用单独语法元素和语法结构用于帧内和帧间译码。Video decoder 30 reconstructs the partitions of the PUs of the depth CU using the SDC residual data or non-SDC residual data and the predicted depth PU. For example, in the case of SDC coding, for a given PU, video decoder 30 applies the DC residual value signaled in the SDC syntax structure, or derives the DC residual value from the DLT based on the index value difference or other information provided in the SDC syntax structure. Video decoder 30 adds the DC residual value to the predicted samples of the predicted PU partition to reconstruct the original samples. In this way, video decoder 30 uses the SDC syntax elements and SDC syntax structure to unify SDC intra-frame and inter-frame decoding, rather than using separate syntax elements and syntax structures for intra-frame and inter-frame decoding, respectively.
图9是说明对语法元素进行解码以指示用于整个经编码视频序列中的深度块的SDC使用的流程图。一般来说,图9中从解码器侧角度说明的操作表示与图7和8中所示的方法一起使用的可能特征。在图9的实例中,视频解码器30对指示SDC是否针对深度帧内预测和深度帧间预测两者经启用或停用的SDC语法元素进行解码(240)。视频解码器30可例如在视频参数集(VPS)扩展、序列参数集(SPS)、图片参数集(PPS)或切片片段标头中接收SDC语法元素。当在VPS或SPS中接收时,如果SDC语法元素指示SDC的启用,那么视频解码器30应考虑SDC针对用于整个视频序列的全部经帧内预测和帧间预测模式经启用,且应在CU层级接收指示SDC是否用于所述CU的另一语法元素(例如,sdc_flag)。作为一个替代方案,当在PPS中接收SDC语法元素且指示SDC的启用时,视频解码器30可在CU层级针对对应图片的全部深度块接收额外SDC语法元素(例如,sdc_flag)。作为另一替代方案,当在切片片段标头中接收SDC语法元素且指示SDC的启用时,视频解码器30可在CU层级针对对应切片片段的全部深度块接收额外SDC语法元素(例如,sdc_flag)。FIG9 is a flowchart illustrating decoding a syntax element to indicate SDC usage for depth blocks in an entire encoded video sequence. In general, the operations illustrated in FIG9 from a decoder-side perspective represent possible features for use with the methods shown in FIG7 and 8. In the example of FIG9, video decoder 30 decodes an SDC syntax element indicating whether SDC is enabled or disabled for both depth intra prediction and depth inter prediction (240). Video decoder 30 may receive the SDC syntax element, for example, in a video parameter set (VPS) extension, a sequence parameter set (SPS), a picture parameter set (PPS), or a slice segment header. When received in a VPS or SPS, if the SDC syntax element indicates activation of SDC, video decoder 30 should consider SDC to be enabled for all intra- and inter-prediction modes for the entire video sequence and should receive another syntax element (e.g., sdc_flag) at the CU level indicating whether SDC is used for that CU. As an alternative, when an SDC syntax element is received in a PPS and indicates activation of SDC, video decoder 30 may receive additional SDC syntax elements (e.g., sdc_flag) at the CU level for all depth blocks of the corresponding picture. As another alternative, when an SDC syntax element is received in a slice segment header and indicates activation of SDC, video decoder 30 may receive additional SDC syntax elements (e.g., sdc_flag) at the CU level for all depth blocks of the corresponding slice segment.
如果SDC指示为经启用(242),那么在图9的实例中,视频解码器将SDC解译为针对用于整个经译码视频序列的深度帧内和深度帧间译码模式经启用,且可针对序列中的CU剖析位流以得到在CU层级的sdc_flag语法元素。如果SDC未经启用(242),那么视频解码器30将规则非SDC残余译码应用于整个经译码视频序列的深度块。以此方式,可针对深度帧内和帧间模式以及针对整个经译码视频序列一次性用信号表示SDC启用或停用。因此,在用于整个经译码视频序列的解码过程中可使用一个语法元素来启用/停用帧内和帧间SDC模式两者。替代地,可以用于整个图片或切片片段的语法元素一次性用信号表示SDC启用/停用。在每一情况下,可以在CU层级在一般译码单元参数中的语法元素用信号表示用于CU的实际SDC使用。9 , the video decoder interprets SDC as enabled for depth intra and depth inter coding modes for the entire coded video sequence and may parse the bitstream for CUs in the sequence to obtain the sdc_flag syntax element at the CU level. If SDC is not enabled (242), video decoder 30 applies regular non-SDC residual coding to depth blocks of the entire coded video sequence. In this way, SDC enablement or disablement may be signaled once for depth intra and inter modes and for the entire coded video sequence. Thus, one syntax element may be used to enable/disable both intra and inter SDC modes in the decoding process for the entire coded video sequence. Alternatively, SDC enablement/disablement may be signaled once for an entire picture or slice segment using a syntax element. In each case, the actual SDC usage for a CU may be signaled at the CU level in a syntax element in the general coding unit parameters.
在一些实例中,并非以一个语法元素指示SDC是否针对用于整个经译码视频序列或者用于图片或切片片段的帧内和帧间模式经启用,视频编码器20可编码且视频解码器30可解码单个(第一)旗标以指示SDC是否针对深度帧内预测模式经启用。举例来说,此第一旗标可用以指示SDC是否针对用于整个经译码视频序列的帧内模式经启用。在一些实例中,如果第一旗标是真,即,SDC将针对用于整个经译码视频序列的帧内模式经启用,那么视频编码器20编码且视频解码器30解码额外(第二)旗标,其用以指示SDC是否针对用于整个经译码视频序列的帧间模式经启用,即,SDC是否也针对用于整个经译码视频序列的帧间模式经启用。In some examples, rather than indicating with one syntax element whether SDC is enabled for intra and inter modes for the entire coded video sequence or for a picture or slice segment, video encoder 20 may encode and video decoder 30 may decode a single (first) flag to indicate whether SDC is enabled for depth intra prediction mode. For example, this first flag may be used to indicate whether SDC is enabled for intra mode for the entire coded video sequence. In some examples, if the first flag is true, i.e., SDC is to be enabled for intra mode for the entire coded video sequence, video encoder 20 encodes and video decoder 30 decodes an additional (second) flag to indicate whether SDC is enabled for inter mode for the entire coded video sequence, i.e., whether SDC is also enabled for inter mode for the entire coded video sequence.
如果第一旗标不是真,且SDC未针对帧内模式经启用,那么视频编码器20无需产生且视频解码器30无需剖析指示SDC是否针对帧间模式经启用的第二旗标。在一些实例中,用以指示SDC帧内的启用的第一旗标和用以指示SDC帧间的启用的第二旗标可在用于整个经译码视频序列的VPS或SPS中提供。替代地,在一些实例中,用以指示SDC帧内的启用的第一旗标和用以指示SDC帧间的启用的第二旗标可在PPS或切片片段标头中提供。在每一情况下,可在CU层级例如使用sdc_flag指示用于CU的实际SDC使用。If the first flag is not true and SDC is not enabled for intra mode, video encoder 20 need not generate, and video decoder 30 need not parse, the second flag indicating whether SDC is enabled for inter mode. In some examples, the first flag to indicate enablement of SDC intra-frame and the second flag to indicate enablement of SDC inter-frame may be provided in the VPS or SPS for the entire coded video sequence. Alternatively, in some examples, the first flag to indicate enablement of SDC intra-frame and the second flag to indicate enablement of SDC inter-frame may be provided in the PPS or slice segment header. In each case, actual SDC usage for a CU may be indicated at the CU level, for example, using sdc_flag.
图10是说明对单个语法结构进行解码以获得用于帧内预测和帧间预测模式的SDC残余数据的流程图。在图10的实例中,视频解码器30如上文参考图7和8所描述对用于深度帧内和深度帧间模式两者的单个SDC语法结构进行解码。如图10中所展示,视频解码器30例如针对深度CU在CU层级对指示SDC是否用于深度帧内和深度帧间预测两者的SDC语法元素进行解码。为了图10的目的,假定所述语法元素指示使用SDC,在此情况下视频解码器30进一步对包含用于给定深度CU的PU的一或多个分区的SDC残余数据的单个SDC语法结构进行解码。FIG10 is a flowchart illustrating decoding a single syntax structure to obtain SDC residual data for intra and inter prediction modes. In the example of FIG10 , video decoder 30 decodes a single SDC syntax structure for both depth intra and depth inter modes as described above with reference to FIG7 and 8. As shown in FIG10 , video decoder 30 decodes an SDC syntax element at the CU level, for example, for a depth CU, that indicates whether SDC is used for both depth intra and depth inter prediction. For the purposes of FIG10 , it is assumed that the syntax element indicates the use of SDC, in which case video decoder 30 further decodes a single SDC syntax structure that includes SDC residual data for one or more partitions of a PU of a given depth CU.
在图10的实例中,且如上文参考图7和8所描述,所述单个SDC语法结构可为针对深度帧内或帧间模式两者发送的单个语法结构,或者分别用于深度帧内模式和深度帧间模式的同一语法结构的单独实例。在每一情况下,所述语法结构使用相同语法元素用于深度帧内模式和深度帧间模式。举例来说,SDC语法结构可包含指示DC残余值和正负号或用于导出DC残余值的DLT索引差值的语法元素。用于指示DC残余数据的语法元素的实例包含用以指示残余的depth_dc_abs和用以指示正负号的depth_dc_sign_flag。In the example of FIG10 , and as described above with reference to FIG7 and 8 , the single SDC syntax structure can be a single syntax structure sent for both depth intra or inter mode, or separate instances of the same syntax structure used for depth intra mode and depth inter mode, respectively. In each case, the syntax structure uses the same syntax elements for depth intra mode and depth inter mode. For example, the SDC syntax structure can include syntax elements indicating the DC residual value and sign, or a DLT index difference value used to derive the DC residual value. Examples of syntax elements for indicating DC residual data include depth_dc_abs to indicate the residual and depth_dc_sign_flag to indicate the sign.
在确定深度CU是否经帧间译码或经帧内译码(254)之后,视频解码器30即刻对当前深度PU的参考样本进行帧间预测(256)或帧内预测(258)。视频解码器30随后使用在用于深度帧内或深度帧内模式的单个SDC语法结构中用信号表示或在分别用于深度帧内模式或深度帧间模式的同一SDC语法结构的单独实例中用信号表示的SDC残余数据来重构深度CU的PU的分区。举例来说,视频解码器30将DC残余值添加到经帧内或经帧间预测PU的预测样本以重构原始样本。Upon determining whether the depth CU is inter-coded or intra-coded (254), video decoder 30 inter-predicts (256) or intra-predicts (258) reference samples of the current depth PU. Video decoder 30 then reconstructs partitions of the PU of the depth CU using SDC residual data signaled in a single SDC syntax structure for depth intra or depth intra mode, or signaled in separate instances of the same SDC syntax structure for depth intra mode or depth inter mode, respectively. For example, video decoder 30 adds DC residual values to prediction samples of the intra- or inter-predicted PU to reconstruct the original samples.
如果用于由SDC产生的残余值的语法结构共享相同语法元素和/或相同语法结构、上下文模型和二进制化过程,例如对于由视频编码器20和视频解码器30执行的上下文自适应二进制算术译码(CABAC)熵译码过程,那么针对用于深度帧内预测和深度帧间预测模式两者的相关语法元素可统一。举例来说,用于由SDC产生的残余值的语法元素可使用用于深度帧内预测模式和深度帧间预测模式两者的相同上下文模型由视频编码器20熵编码且由视频解码器30熵解码。Relevant syntax elements for both depth intra prediction and depth inter prediction modes may be unified if the syntax structure for the residual values generated by SDC shares the same syntax elements and/or the same syntax structure, context model, and binarization process, such as for a context-adaptive binary arithmetic coding (CABAC) entropy coding process performed by video encoder 20 and video decoder 30. For example, the syntax elements for the residual values generated by SDC may be entropy encoded by video encoder 20 and entropy decoded by video decoder 30 using the same context model for both depth intra prediction mode and depth inter prediction mode.
再次,作为对使用单个SDC语法结构的一个替代方案,同一SDC语法结构的单独实例可由视频编码器20编码且由视频解码器30解码以提供用于深度帧内和深度帧间模式的SDC残余数据。可对SDC语法结构的第一实例进行译码(即,编码或解码)以提供用于深度帧内模式的SDC残余数据,且可对SDC语法结构的第二实例进行译码以提供用于深度帧间模式的SDC残余数据。取决于哪一深度模式(帧内或帧间)用于深度CU,视频解码器30从SDC语法结构的相关实例(例如,用于帧内的第一实例和用于帧间的第二实例)解码和检索语法元素,且使用由所述语法元素指示的DC残余数据来重构深度CU。在此实例中,针对语法结构的每一实例在语法结构中使用相同语法元素。视频编码器20和视频编码器30可维持单独上下文和/或二进制化以用于对SDC语法结构的单独实例进行熵译码。替代地,可使用相同上下文和/或二进制化对单独实例进行熵译码(例如,CABAC)。Again, as an alternative to using a single SDC syntax structure, separate instances of the same SDC syntax structure may be encoded by video encoder 20 and decoded by video decoder 30 to provide SDC residual data for depth intra and depth inter modes. A first instance of the SDC syntax structure may be coded (i.e., encoded or decoded) to provide SDC residual data for depth intra mode, and a second instance of the SDC syntax structure may be coded to provide SDC residual data for depth inter mode. Depending on which depth mode (intra or inter) is used for the depth CU, video decoder 30 decodes and retrieves syntax elements from the relevant instances of the SDC syntax structure (e.g., the first instance for intra and the second instance for inter), and reconstructs the depth CU using the DC residual data indicated by the syntax elements. In this example, the same syntax elements are used in the syntax structure for each instance of the syntax structure. Video encoder 20 and video encoder 30 may maintain separate contexts and/or binarizations for entropy coding the separate instances of the SDC syntax structure. Alternatively, separate instances may be entropy coded (eg, CABAC) using the same context and/or binarization.
图11是说明在解码器侧使用对SDC译码的实例约束的流程图。如图11中所示,视频解码器30对例如sdc_flag的SDC语法元素进行解码(262)。当SDC语法元素指示例如对于CU使用SDC时(264),视频解码器30应用约束以使得例如针对当前CU停用脉码调制(PCM)(266)。当SDC译码未用于CU时,PCM可保持经启用(267)。以此方式,视频解码器30将其译码操作约束为当SDC针对CU用信号表示时不包括PCM。通过PCM停用的约束,在一些实例中,视频解码器30无需剖析PCM模式信息。FIG11 is a flowchart illustrating an example constraint on SDC coding used at the decoder side. As shown in FIG11 , video decoder 30 decodes an SDC syntax element, such as sdc_flag (262). When the SDC syntax element indicates, for example, that SDC is used for a CU (264), video decoder 30 applies a constraint such that, for example, pulse code modulation (PCM) is disabled for the current CU (266). When SDC coding is not used for a CU, PCM may remain enabled (267). In this way, video decoder 30 constrains its coding operations to not include PCM when SDC is signaled for a CU. With the constraint that PCM is disabled, in some examples, video decoder 30 does not need to parse PCM mode information.
图12是说明在解码器侧使用对SDC译码的另一实例约束的流程图。作为额外约束的实例,视频解码器30可确定当前CU的分区大小(268),或者切片、图片或视频序列中待译码的每一CU的分区大小。在一个实例中,如果当前CU的分区大小不等于2Nx2N,那么视频解码器30针对相关CU停用SDC(272)。如果分区大小等于2Nx2N,那么视频解码器30可使用SDC(270)。SDC的使用将取决于用于CU的sdc_flag的值。以此方式,视频解码器30应用约束以使得SDC仅用于具有2Nx2N的分区大小的CU。作为一个替代方案,视频解码器30可应用约束以使得SDC仅用于具有2Nx2N的分区大小的帧间CU和具有2Nx2N或NxN的分区大小的帧内CU。视频编码器20可经配置以如上文所描述仅针对特定分区大小应用SDC模式。然而,通过在解码器侧施加约束,视频编码器20可能不必用信号表示哪一特定CU使用SDC模式预测。而是,视频编码器20可简单地产生SDC语法元素以指示SDC是否用于深度帧内和深度帧间模式两者,且接着将SDC应用于满足分区大小要求的CU。通过此约束,视频解码器30将非SDC译码应用于并不满足适用的分区大小要求的CU。FIG12 is a flowchart illustrating another example constraint for SDC coding used at the decoder side. As an example of an additional constraint, video decoder 30 may determine the partition size of the current CU (268), or the partition size of each CU to be coded in a slice, picture, or video sequence. In one example, if the partition size of the current CU is not equal to 2Nx2N, video decoder 30 disables SDC for the relevant CU (272). If the partition size is equal to 2Nx2N, video decoder 30 may use SDC (270). The use of SDC will depend on the value of sdc_flag for the CU. In this way, video decoder 30 applies a constraint so that SDC is only used for CUs with a partition size of 2Nx2N. As an alternative, video decoder 30 may apply a constraint so that SDC is only used for inter CUs with a partition size of 2Nx2N and intra CUs with a partition size of 2Nx2N or NxN. Video encoder 20 may be configured to apply SDC mode only for specific partition sizes as described above. However, by imposing a constraint on the decoder side, video encoder 20 may not have to signal which specific CU uses SDC mode prediction. Instead, video encoder 20 may simply generate an SDC syntax element to indicate whether SDC is used for both depth intra and depth inter modes, and then apply SDC to CUs that meet the partition size requirement. With this constraint, video decoder 30 applies non-SDC coding to CUs that do not meet the applicable partition size requirement.
上文所描述的技术可由视频编码器20(图1及5)及/或视频解码器30(图1及6)执行,其两者可大体上被称作视频译码器。另外,视频译码在适用时可大体上涉及视频编码和/或视频解码。The techniques described above may be performed by video encoder 20 (FIGS. 1 and 5) and/or video decoder 30 (FIGS. 1 and 6), both of which may generally be referred to as video coders. Additionally, video coding may generally refer to video encoding and/or video decoding, where applicable.
虽然大体上相对于3D-HEVC描述本发明的技术,但不以此方式限制所述技术。上述技术也可以适用于用于视频译码的其它当前标准或未来标准。举例来说,用于深度译码的技术也可以适用于要求深度分量的译码的其它当前或未来标准,例如用于3D视频译码或其它应用。Although the techniques of this disclosure are generally described with respect to 3D-HEVC, they are not limited in this manner. The techniques described above may also be applicable to other current or future standards for video coding. For example, the techniques for depth coding may also be applicable to other current or future standards that require coding of depth components, such as for 3D video coding or other applications.
在一或多个实例中,本文所述的功能可以用硬件、软件、固件或其任何组合来实施。如果用软件实施,则所述功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,所述计算机可读存储媒体对应于有形媒体,例如数据存储媒体或包含(例如)根据通信协议促进计算机程序从一位置传送至另一位置的任何媒体的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)有形计算机可读存储媒体,其为非暂时性的,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码及/或数据结构的任何可用媒体。计算机程序产品可以包含计算机可读媒体。In one or more examples, the functions described herein may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored or transmitted as one or more instructions or codes on a computer-readable medium and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media, which corresponds 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 location to another according to a communication protocol. In this manner, computer-readable media may generally correspond to (1) tangible computer-readable storage media, which 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 in this disclosure. 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, such 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 the desired program code in the form of instructions or data structures and that can be accessed by a computer. Furthermore, any connection can properly be 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 are directed 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 using 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 circuits. Thus, the term "processor," as used herein, may refer to any of the aforementioned 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. Furthermore, the techniques may be fully implemented in one or more circuits or logic elements.
本发明的技术可在多种多样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所揭示的技术的装置的功能方面,但未必需要通过不同硬件单元实现。实际上,如上文所描述,各种单元可以结合合适的软件及/或固件组合在编解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。描述了各种实例。这些和其它实例属于所附权利要求书的范围内。The techniques of this disclosure can be implemented in a wide variety of devices or apparatuses, including a wireless handset, an integrated circuit (IC), or a set of ICs (e.g., a chipset). The various components, modules, or units described herein are intended to emphasize functional aspects of a device configured to perform the disclosed techniques, but do not necessarily require implementation by different hardware units. In fact, as described above, the various units can be combined in a codec hardware unit in conjunction with appropriate software and/or firmware, or provided by a collection of interoperable hardware units, including one or more processors as described above. Various examples are described. These and other examples are within the scope of the following claims.
Claims (87)
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2013/001562 WO2015085449A1 (en) | 2013-12-13 | 2013-12-13 | Signaling of simplified depth coding (sdc) for depth intra-and inter – prediction modes in 3d video coding |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1224117A1 HK1224117A1 (en) | 2017-08-11 |
| HK1224117B true HK1224117B (en) | 2020-02-28 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11039129B2 (en) | Signaling of simplified depth coding (SDC) for depth intra- and inter-prediction modes in 3D video coding | |
| JP6312854B2 (en) | Simplification of delta DC residual coding in 3D video coding | |
| CN105052147B (en) | Depth coding mode signaling for depth data for 3D-HEVC | |
| US10687079B2 (en) | Constrained depth intra mode coding for 3D video coding | |
| KR102135997B1 (en) | Residual coding for depth intra prediction modes | |
| CN104396250B (en) | Method and device for intra-frame decoding of depth map for 3D video decoding | |
| KR102092433B1 (en) | Predictive coding of depth lookup tables within and across views | |
| US10306265B2 (en) | Simplification of segment-wise DC coding of large prediction blocks in 3D video coding | |
| CN105103559A (en) | Depth coding modes signaling of depth data for 3D-HEVC | |
| WO2015131388A1 (en) | Simplification of depth intra mode coding in 3d video coding | |
| WO2015031818A1 (en) | Lookup table coding | |
| CN105580361A (en) | Residual coding for depth intra prediction modes | |
| HK1224117B (en) | Method and device of decoding and encoding video data and computer-readable storage medium | |
| HK1225538A1 (en) | Simplification of delta dc residual coding in 3d video coding | |
| HK1225881A1 (en) | Simplification of segment-wise dc coding of large prediction blocks in 3d video coding | |
| HK1225881B (en) | Simplification of segment-wise dc coding of large prediction blocks in 3d video coding |