使用修正矢量推导的视频编码方法及其设备、视频解码方法及其设备与流程

文档序号:16564580发布日期:2019-01-13 16:15阅读:213来源:国知局
使用修正矢量推导的视频编码方法及其设备、视频解码方法及其设备与流程

本发明涉及一种视频编码方法和视频解码方法。更具体地讲,本发明涉及一种获取视差矢量的方法。



背景技术:

随着用于再现和存储高分辨率或高质量视频内容的硬件正被开发和提供,对于用于有效地对高分辨率或高质量视频内容进行编码或解码的视频编解码器的需求正在增加。根据传统的视频编解码器,基于具有预定尺寸的编码单元,根据受限的编码方法来对视频进行编码。

空间域的图像数据通过频率变换被转换为频域的系数。根据视频编解码器,图像被划分为具有预定尺寸的块,并且对每个块执行离散余弦变换(DCT) 以按块单元对频率系数进行编码,从而快速计算频率变换。传统的压缩系统执行基于块的预测以便去除彩色图像之间的冗余。



技术实现要素:

技术问题

提供了一种以提高的编码率来执行视频压缩的编码设备和解码设备。

解决方案

根据本发明的实施例,由视频解码设备执行的视频解码方法包括:获得编码的图像的比特流;通过使用包括在比特流中的当前块的的预测模式信息来确定当前块的预测模式;将指示用于根据当前块的预测模式对当前块进行解码的参考块的参考矢量的类型确定为运动矢量类型和视差矢量类型之一;当与当前块邻近的邻近块不具有所确定的参考矢量的类型时,产生具有所确定的参考矢量的类型的邻近块的参考矢量;通过使用产生的邻近块的参考矢量来确定当前块的参考矢量,其中,当前块的参考矢量指示参考块;通过使用当前块的参考矢量来获得参考块的信息;通过使用参考块的信息来对当前块进行解码。

将指示用于根据当前块的预测模式对当前块进行解码的参考块的参考矢量的类型确定为运动矢量类型和视差矢量类型之一的步骤可包括:在当前块的预测模式是视点间预测模式时,将当前块的参考矢量的类型确定为视差矢量类型。

将指示用于根据当前块的预测模式对当前块进行解码的参考块的参考矢量的类型确定为运动矢量类型和视差矢量类型之一的步骤可包括:在当前块的预测模式是帧间预测模式时,将当前块的参考矢量的类型确定为视差矢量类型。

产生邻近块的参考矢量的步骤还可包括:当用于对当前块进行解码的参考矢量的类型是运动矢量类型时,产生邻近块的运动矢量;将产生的邻近块的运动矢量产生为邻近块的参考矢量。

产生邻近块的运动矢量的步骤还可包括:产生邻近块的视差矢量,其中,邻近块的视差矢量指示与邻近块具有不同视点的块;通过使用邻近块的视差矢量来产生邻近块的运动矢量。

通过使用邻近块的视差矢量来产生邻近块的运动矢量的步骤可包括:将邻近块的视差矢量所指示的块的运动矢量确定为邻近块的运动矢量。

产生邻近块的参考矢量的步骤可包括:通过使用预设值来产生邻近块的深度值;通过使用所述深度值来产生邻近块的视差矢量;通过使用邻近块的视差矢量来产生邻近块的参考矢量。

所述预设可以是0、128或可设置的最大深度值。

产生邻近块的参考矢量的步骤可包括:将解码顺序在当前块的解码顺序前一位的块的视差矢量、最近解码的块的视差矢量或零矢量确定为邻近块的视差矢量;通过使用邻近块的视差矢量来产生邻近块的参考矢量。

此外,根据本发明的实施例,一种由视频编码设备执行的视频编码方法包括:确定当前块的预测模式;将指示用于根据当前块的预测模式对当前块进行编码的参考块的参考矢量的类型确定为运动矢量类型和视差矢量类型之一;当与当前块邻近的邻近块不具有所确定的参考矢量的类型时,产生具有所确定的参考矢量的类型的邻近块的参考矢量;通过使用产生的邻近块的参考矢量来确定当前块的参考矢量,其中,当前块的参考矢量指示参考块;通过使用当前块的参考矢量来获得参考块的信息;通过使用参考块的信息来对当前块进行编码;产生编码的当前块的比特流。

产生邻近块的参考矢量的步骤可包括:通过使用预设值来产生邻近块的深度值;通过使用所述深度值来产生邻近块的视差矢量;通过使用邻近块的视差矢量来产生邻近块的参考矢量。

产生邻近块的参考矢量的步骤可包括:将编码顺序在当前块的编码顺序前一位的块的视差矢量、最近解码的块的视差矢量或零矢量确定为邻近块的视差矢量;通过使用邻近块的视差矢量来产生邻近块的参考矢量。

此外,根据本发明的实施例,一种视频解码设备包括:比特流获得器,被配置为获得编码的图像的比特流;视频解码器,被配置为:通过使用包括在比特流中的当前块的预测模式信息来确定当前块的预测模式;将指示用于根据当前块的预测模式对当前块进行解码的参考块的参考矢量的类型确定为运动矢量类型和视差矢量类型之一;当与当前块邻近的邻近块不具有所确定的参考矢量的类型时,产生具有所确定的参考矢量的类型的邻近块的参考矢量;通过使用产生的邻近块的参考矢量来确定当前块的参考矢量,其中,当前块的参考矢量指示参考块;通过使用当前块的参考矢量来获得参考块的信息;通过使用参考块的信息来对当前块进行解码。

此外,根据本发明的实施例,一种视频编码设备包括:视频编码器,被配置为:确定当前块的预测模式;将指示用于根据当前块的预测模式对当前块进行编码的参考块的参考矢量的类型确定为运动矢量类型和视差矢量类型之一;当与当前块邻近的邻近块不具有所确定的参考矢量的类型时,产生具有所确定的参考矢量的类型的邻近块的参考矢量;通过使用产生的邻近块的参考矢量来确定当前块的参考矢量,其中,当前块的参考矢量指示参考块;通过使用当前块的参考矢量来获得参考块的信息;通过使用参考块的信息来对当前块进行编码;比特流产生器,被配置为产生编码的当前块的比特流。

此外,根据本发明的实施例,一种记录有用于执行根据实施例的解码方法的计算机程序的计算机可读记录介质。

本发明的有益效果

根据实施例的编码设备和解码设备具有以进一步提高的编码率来执行视频压缩的效果。

附图说明

图1a是根据各种实施例的视频编码设备的框图。

图1b是根据各种实施例的由视频编码设备执行的视频编码方法的流程图。

图2a是根据各种实施例的视频解码设备的框图。

图2b是根据各种实施例的由视频解码设备执行的视频解码方法的流程图。

图3a是示出根据实施例的多视点视频的结构的示图。

图3b是示出根据实施例的用于对当前块进行编码的参考图像的示图。

图3c是用于描述根据实施例的当存在深度图像时解码设备预测运动矢量和视差矢量的方法的示图。

图3d是示出当前块Cb以及与当前块Cb邻近的邻近块A、B、C和D 的概念图。

图3e是用于描述根据实施例的解码设备针对跳过模式和直接模式使用深度图像来执行运动矢量预测的方法的示图。

图3f是示出根据实施例的解码设备通过使用视差矢量来预测当前块的运动矢量的处理的示图。

图3g是根据实施例的解码设备针对帧间模式使用深度图像来执行运动预测的方法的流程图。

图3h是用于描述根据实施例的解码设备针对帧间模式使用深度图像来预测视差矢量(视点间MV)的方法的示图。

图4a是根据实施例的当不存在深度图像时解码设备执行运动矢量预测和视差矢量预测的方法的流程图。

图4b是用于描述根据实施例的解码设备针对跳过模式和直接模式使用深度图像来执行运动矢量预测的方法的示图。

图4c是根据实施例的解码设备针对帧间模式在不使用深度图像的情况下执行运动预测的方法的流程图。

图4d是用于描述根据实施例的解码设备在不使用深度图像的情况下预测用于帧间模式的视差矢量(视点间MV)的方法的示图。

图5a是根据实施例的在不存在深度图像时解码设备执行运动矢量预测和视差矢量预测的方法的流程图。

图5b是用于描述根据实施例的解码设备通过使用全局视差矢量来针对跳过模式和直接模式执行运动矢量预测的方法的示图。

图5c是根据实施例的解码设备针对帧间模式在不使用深度图像的情况下来执行预运动预测的方法的流程图。

图5d是用于描述根据实施例的解码设备针对帧间模式在不使用深度图像的情况下预测视差矢量(视点间MV)的方法的示图。

图6是用于详细描述根据实施例的编码设备的操作的示图。

图7是用于详细描述根据实施例的解码设备的操作的示图。

图8是根据实施例的基于根据树结构的编码单元的视频编码设备的框图。

图9是根据实施例的基于根据树结构的编码单元的视频解码设备的框图。

图10是用于描述根据实施例的编码单元的概念的示图。

图11是根据实施例的基于编码单元的视频编码器的框图。

图12是根据实施例的基于编码单元的视频解码器的框图。

图13是示出根据实施例的编码单元以及分区的示图。

图14是用于描述根据实施例的编码单元与变换单元之间的关系的示图。

图15是用于描述根据实施例的编码单元的编码信息的示图。

图16是根据实施例的编码单元的示图。

图17至图19是用于描述根据实施例的编码单元、预测单元和变换单元之间的关系的示图。

图20是用于描述根据表33的编码模式信息的编码单元、预测单元和变换单元之间的关系的示图。

图21是根据实施例的存储有程序的盘的物理结构的示图。

图22是用于通过使用盘来记录和读取程序的盘驱动器的示图。

图23是用于提供内容分发服务的内容供应系统的整体结构的示图。

图24和图25分别是根据实施例的应用了视频编码方法和视频解码方法的移动电话的外部结构和内部结构的示图。

图26是根据实施例的应用了通信系统的数字广播系统的示图。

图27是示出根据实施例的使用视频编码设备和视频解码设备的云计算系统的网络结构的示图。

具体实施方式

在下文中,将参照图1a至图7描述根据各种实施例的基于与当前块邻近的邻近块的特征来确定视差矢量预测方法或运动矢量预测方法的视频编码方法和视频解码方法。

将参照图8至图20描述根据各种实施例的适用于所述视频编码方法和视频解码方法的基于具有树结构的编码单元的视频编码方法和视频解码方法。将参照图21至图27描述所述视频编码方法和视频解码方法适用的各种实施例。

在下文中,“图像”可表示静止图像或视频的运动图像,或表示视频本身。

在下文中,作为被分配到图像的采样位置的数据的“样点”可表示作为处理目标的数据。例如,空间域的图像中的像素可以是样点。

当前块(当前彩色块)表示将被编码或解码的彩色图像的块。

当前彩色块表示包括当前块的彩色图像。具体地讲,当前彩色图像表示包括将被编码或解码的块的彩色图像。

与当前块相应的深度图像(相应深度图像)表示与包括当前块的彩色图像(当前彩色图像)相应的深度图像。例如,相应深度图像是表示包括当前图像的彩色图像的深度值的图像。

邻近块(当前块周围的邻近块)表示与当前块邻近的至少一个编码的块或解码的块。例如,邻近块可位于当前块的上端、当前块的右上端、当前块的左侧、或当前块的左上端。

相应深度块(所述相应深度图中的共同定位深度块)表示包括在深度图像中的与当前块相应的深度图像块。例如,相应块可包括与深度图像中的和彩色块相应的当前块位于相同位置的块。

宏块(共同定位深度宏块)表示包括深度图像的相应块的上层概念的深度图像块。

邻近彩色图像(包括当前彩色块的彩色图像周围的邻近彩色图像)表示具有与包括当前块的彩色图像的视点不同的视点的彩色图像。邻近彩色图像可以是在针对当前块的图像处理过程被执行之前编码或解码的彩色图像。

现在将参照图1a至图7描述根据实施例的视频编码设备和方法以及视频解码设备和方法。

立体图像是指同时提供关于深度和空间的形状信息的三维(3D)图像。与向用户的左眼和右眼简单提供不同视点的图像的立体图像不同,当用户改变用户的视点时,需要从多个不同视点拍摄的图像以便看起来像是从不同的方向观看图像一样来提供所述图像。由于从不同视点拍摄的图像具有大量数据,因此考虑到网络设施、地面带宽等,几乎不可能使用针对单视点视频编码(诸如MPEG-2或H.264.AVC)最优化的编码设备来压缩图像。因此,并非是在传输之前压缩不同视点的所有视频,如果深度图像被创建并被压缩并且与不同视点的图像之中的一些视点的图像一起被发送,则在压缩期间产生的数据量会减少。由于深度图像是彩色图像中的对象和观看者之间的距离通过值0至255来表示的图像,因此深度图像的特征与彩色图像的特征类似。通常,3D视频包括彩色图像和不同视点的深度图像。然而,3D视频在时间上连续的图像之间会具有时间冗余,并在不同视点的图像之间会具有视点间冗余。如果数据被能够有效去除这些冗余的编码系统压缩并被优化用于3D 视频,则可发送较少量的数据。本发明提出了一种有效减少视点间的冗余的 3D视频编码/解码系统。

为了去除彩色图像之间的冗余,传统的压缩系统执行基于块的预测。在本发明中,为了有效去除时间冗余和视点间冗余,深度图像被用于提高传统的运动矢量预测方法的性能。通过使用邻近块信息、与相关彩色图像相应的深度图像以及不同视点的图像来去除时间冗余和视点间冗余。

图1a是根据各种实施例的视频编码设备10的框图。根据各种实施例的视频编码设备10可包括视频编码器12和比特流产生器14。

视频编码器12可确定当前块的预测模式并对当前块进行编码。当前块的预测模式包括使用用于对当前块进行编码所参考的参考块的信息的跳过预测模式/直接预测模式、仅允许空间参考的帧内预测模式、通过使用运动矢量参考不同时间图像的块的帧间预测模式以及通过使用视差矢量(视点间预测矢量)参考不同视点的图像的块的视点间预测模式。

视频编码器12可根据多种预测模式对当前块执行编码以对当前块进行编码,并通过使用具有最佳编码率的预测模式来产生当前块的编码数据。视频编码器12可产生关于用于对当前块进行编码的预测模式的信息。

视频编码器12可将参考矢量的类型确定为运动矢量类型和视差矢量类型之一,其中,所述参考矢量指示用于根据当前块的预测模式对当前块进行编码的参考块。

如果与当前块邻近的邻近块不具有所确定的参考矢量的类型,则视频编码器12可产生具有所确定的参考矢量的类型的邻近块的参考矢量。视频编码器12可通过使用产生的邻近块的参考矢量来确定当前块的指示参考块的参考矢量。

视频编码器12可通过使用当前块的参考矢量来获得参考块的信息,并通过使用参考块的信息来对当前块进行编码。

在当前块的预测模式是跳过预测模式或直接预测模式时,视频编码器12 可将当前块的参考矢量的类型确定为运动矢量类型或视差矢量类型。

在当前块的预测模式是视点间预测模式时,视频编码器12可将当前块的参考矢量的类型确定为视差矢量类型。

在当前块的预测模式是帧间预测模式时,视频编码器12可将当前块的参考矢量的类型确定为运动矢量类型。

在用于对当前块进行编码的参考矢量的类型是运动矢量类型时,视频编码器12可产生邻近块的运动矢量,并将产生的邻近块的预定矢量产生为邻近块的参考矢量。例如,在用于对当前块进行编码的参考矢量的类型是运动矢量类型时,视频编码器12可将邻近块的运动矢量的类型确定为邻近块的参考矢量。

视频编码器12可产生邻近块的视差矢量,并通过使用邻近块的视差矢量来产生邻近块的运动矢量,其中,邻近块的视差矢量指示与邻近块具有不同视点的块。

视频编码器12可将由邻近块的视差矢量指示的块的运动矢量确定为邻近块的运动矢量。

视频编码器12可通过使用预设值来产生邻近块的深度值,通过使用所述深度值来产生邻近块的视差矢量,并通过使用邻近块的视差矢量来产生邻近块的参考矢量。所述预设值是0至可设置的最大值之间的实数。例如,所述预设值可以是0、128或可设置的最大深度值。

视频编码器12可将编码顺序在当前块的编码顺序前一位的块的视差矢量、最近编码的块的视差矢量或零矢量确定为邻近块的视差矢量,并通过使用邻近块的视差矢量来产生邻近块的参考矢量。

比特流产生器14可产生与编码的当前块相应的比特流。例如,比特流产生器14可产生包括当前块的编码的图像数据以及当前块的预测模式信息的比特流。

图1b是根据各种实施例的由视频编码设备10执行的视频编码方法的流程图。

首先,视频编码设备10可确定当前块的预测模式(S111)。

然后,视频编码设备10可将参考矢量的类型确定为运动矢量类型和视差矢量类型之一,其中,所述参考矢量指示用于根据当前块的预测模式对当前块进行编码的参考块(S112)。

在当前块的预测模式是跳过预测模式或直接预测模式时,视频编码设备 10可将当前块的参考矢量的类型确定为运动矢量类型或视差矢量类型。

在当前块的预测模式是视点间预测模式时,视频编码设备10可将当前块的参考矢量的类型确定为视差矢量类型。

在当前块的预测模式是帧间预测模式时,视频编码设备10可将当前块的参考矢量的类型确定为运动矢量类型。

然后,如果与当前块邻近的邻近块不具有所确定的参考矢量的类型,则视频编码设备10可产生具有所确定的参考矢量的类型的邻近块的参考矢量 (S113)。

在用于对当前块进行编码的参考矢量的类型是运动矢量类型时,视频编码设备10可产生邻近块的运动矢量并将产生的邻近块的运动矢量产生为邻近块的参考矢量。

视频编码设备10可产生邻近块的视差矢量,并通过使用邻近块的视差矢量来产生邻近块的运动矢量,其中,邻近块的视差矢量指示与邻近块具有不同视点的块。

视频编码设备10可将由邻近块的视差矢量指示的块的运动矢量确定为邻近块的运动矢量。

视频编码设备10可通过使用预设值来产生邻近块的深度值,通过使用所述深度值来产生邻近块的视差矢量。视频编码设备10可通过使用邻近块的视差矢量来产生邻近块的参考矢量。所述预设值可以是0、128或可设置的最大深度值。

视频编码设备10可将编码顺序在当前块的编码顺序前一位的块的视差矢量、最近编码的块的视差矢量或零矢量确定为邻近块的视差矢量。视频编码设备10可通过使用邻近块的视差矢量来产生邻近块的参考矢量。

然后,视频编码设备10可通过使用产生的邻近块的参考矢量来确定当前块的指示参考块的参考矢量(S114)。

然后,视频编码设备10可通过使用当前块的参考矢量来获得参考块的信息(S115)。

然后,视频编码设备10可通过使用参考块的信息来对当前块进行编码 (S116)。

然后,视频编码设备10产生编码的图像的比特流(S117)。

图2a是根据各种实施例的视频解码设备20的框图。根据各种实施例的视频解码设备20可包括比特流获得器22和视频解码器24。

比特流获得器22可获得编码的图像的比特流并从比特流获得语法元素。例如,比特流获得器22可从比特流获得编码的块的编码的图像数据以及编码的块的预测模式信息。

视频解码器24可通过使用包括在比特流中的当前块的的预测模式信息来确定当前块的预测模式。视频解码器24可将参考矢量的类型确定为运动矢量类型和视差矢量类型之一,其中,所述参考矢量指示用于根据当前块的预测模式对当前块进行解码的参考块。如果与当前块邻近的邻近块不具有所确定的参考矢量的类型时,则视频解码器24可产生具有所确定的参考矢量的类型的邻近块的参考矢量。视频解码器24可通过使用产生的邻近块的参考矢量来确定当前块的指示参考块的参考矢量。视频解码器24可通过使用当前块的参考矢量来获得参考块的信息,并通过使用参考块的信息来对当前块进行解码

在当前块的预测模式是跳过预测模式或直接预测模式时,视频解码器24 可将当前块的参考矢量的类型确定为运动矢量类型或视差矢量类型。

在当前块的预测模式是视点间预测模式时,视频解码器24可将当前块的参考矢量的类型确定为视差矢量类型。

在当前块的预测模式是帧间预测模式时,视频解码器24可将当前块的参考矢量的类型确定为运动矢量类型。

在用于对当前块进行解码的参考矢量的类型是运动矢量类型时,视频解码器24可产生邻近块的运动矢量,并将产生的邻近块的运动矢量产生为邻近块的参考矢量。

视频解码器24可产生邻近块的视差矢量,并通过使用邻近块的视差矢量来产生邻近块的运动矢量,其中,邻近块的视差矢量指示与邻近块具有不同视点的块。

视频解码器24可将由邻近块的视差矢量指示的块的运动矢量确定为邻近块的运动矢量。

视频解码器24可通过使用预设值来产生邻近块的深度值,通过使用所述深度值来产生邻近块的视差矢量,并通过使用邻近块的视差矢量来产生邻近块的参考矢量。所述预设值是0至可设置的最大值之间的实数。例如,所述预设值可以是0、128或可设置的最大深度值。

在邻近块的参考矢量的类型是视差矢量类型时,视频解码器24可将邻近块的视差矢量确定为邻近块的参考矢量。

视频解码器24可将解码顺序在当前块的解码顺序前一位的块的视差矢量、最近解码的块的视差矢量或零矢量确定为邻近块的视差矢量,并通过使用邻近块的视差矢量来产生邻近块的参考矢量。

图2b是根据各种实施例的由视频解码设备20执行的视频解码方法的流程图。

首先,视频解码设备20获得编码的图像的比特流(S211)。

然后,视频解码设备20可通过使用包括在比特流中的当前块的预测模式信息来确定当前块的预测模式(S212)。

然后,视频解码设备20可将参考矢量的类型确定为运动矢量类型和视差矢量类型之一,其中,所述参考矢量指示用于根据当前块的预测模式对当前块进行解码的参考块(S213)。

在当前块的预测模式是跳过预测模式或直接预测模式时,视频解码设备 20可将当前块的参考矢量的类型确定为运动矢量类型或视差矢量类型。

在当前块的预测模式是视点间预测模式时,视频解码设备20可将当前块的参考矢量的类型确定为视差矢量类型。

在当前块的预测模式是帧间预测模式时,视频解码设备20可将当前块的参考矢量的类型确定为运动矢量类型。

然后,如果与当前块邻近的邻近块不具有所确定的参考矢量的类型,则视频解码设备20可产生具有所确定的参考矢量的类型的邻近块的参考矢量 (S214)。

在用于对当前块进行解码的参考矢量的类型是运动矢量类型时,视频解码设备20可产生邻近块的运动矢量并将产生的邻近块的运动矢量产生为邻近块的参考矢量。

视频解码设备20可产生邻近块的视差矢量,并通过使用邻近块的视差矢量来产生邻近块的运动矢量,其中,邻近块的视差矢量指示与邻近块具有不同视点的块。

视频解码设备20可将由邻近块的视差矢量指示的块的运动矢量确定为邻近块的运动矢量。

视频解码设备20可通过使用预设值来产生邻近块的深度值,通过使用所述深度值来产生邻近块的视差矢量。视频解码设备20可通过使用邻近块的视差矢量来产生邻近块的参考矢量。所述预设值可以是0、128或可设置的最大深度值。

视频解码设备20可将解码顺序在当前块的解码顺序前一位的块的视差矢量、最近解码的块的视差矢量或零矢量确定为邻近块的视差矢量。视频解码设备20可通过使用邻近块的视差矢量来产生邻近块的参考矢量。

然后,视频解码设备20可通过使用产生的邻近块的参考矢量来确定当前块的指示参考块的参考矢量(S215)。

然后,视频解码设备20可通过使用当前块的参考矢量来获得参考块的信息(S216)。

然后,视频解码设备20可通过使用参考块的信息来对当前块进行解码 (S217)。在当前块按照帧间预测模式或视点间预测模式被编码时,视频解码设备20可通过使用参考块的图像数据来对当前块进行解码。

在当前块按照跳过预测模式/直接预测模式被编码时,视频解码设备20 可通过使用参考块的解码图像将当前块解码为当前块的解码图像。

图3a是示出根据实施例的多视点视频的结构的示图。

图3a示出根据实施例的当接收到三个视点(左视点、中心视点和右视点) 的图像时使用画面组(GOP)“8”来执行编码的多视点视频编码(MVC)方法。GOP表示从I帧开始的一组连续图像。

由于分层B画面或分层B帧的概念在多视点图像编码处理期间被用于时间轴和视点轴,因此图像之间的冗余可被减少。

图1a的编码设备10可基于图3a中示出的多视点图像的结构,通过顺序地对左图像(左画面(I视图))、右图像(右画面(P视图))和中心图像(中心画面(B视图))进行编码来对与三个视点相应的图像进行编码。图2a的解码设备20可按照与编码设备相同的方式对图像进行解码。

在对左图像进行编码的处理期间,可通过运动估计从先前的图像估计与左图像相似的区域,并可通过使用关于估计的区域的信息来减少时间冗余。由于将在左图像之后编码的右图像通过参考编码的左图像而被编码,因此使用视差估计的视点间冗余以及使用运动估计的时间冗余也会被减少。此外,由于通过参考已被编码的左图像和右图像两者的视差估计来对中心图像进行编码,因此视点间冗余可被减少。

参照图3a,在多视点图像编码处理期间,在不使用不同视点的图像的情况下被编码的图像(诸如左图像)可被定义为I视图图像。通过对不同视点的图像进行单向预测而被编码的图像(诸如右图像)可被定义为P视图图像。通过对不同视点的图像进行双向预测而被编码的图像(诸如中心图像)可被定义为B视图图像。

图3b是示出根据实施例的用于对当前块进行编码的参考图像的示图。

在对包括在当前彩色图像中的当前块进行编码时,图像处理设备可使用邻近彩色图像302至305作为参考图像。例如,图像处理设备可在邻近彩色图像302至305之中识别与当前块最相似的相似块,并可对当前块与相似块之间的残差信号(残差)进行编码。在H.264/AVC的情况下,用于使用参考图像对相似块进行估计的编码模式可包括SKIP(仅P条带)/Direct(仅B条带)模式,16×16模式、16×8模式、8×16模式、8×8模式等。在高效视频编码(HEVC)的情况下,用于使用参考图像对相似块进行估计的编码模式可包括SKIP模式、MERGE模式、2N×2N模式、2N×N模式、N×2N模式等。

在对当前块进行编码的处理期间,图像处理设备可基于时间使用当前彩色图像周围的参考图像302至303,以便减少时间冗余。此外,图像处理设备可基于时间使用当前彩色图像周围的参考图像304和305,以便减少视点间冗余。图像处理设备可使用Ref1图像302和Ref2图像303以便获得运动信息,并可使用Ref3图像304和Ref4图像305以便获得视差信息。

在预测运动矢量或视差矢量的处理期间,根据实施例的编码设备和解码设备可通过使用邻近块的运动矢量或视差矢量中的一个值作为预测的矢量来执行运动预测和视差预测,而不管矢量类型如何。所述预测是包括估计和补偿的概念。在运动预测的情况下,编码设备可通过经由运动估计从参考画面找出最佳预测块并经由运动补偿处理产生预测块来执行预测。编码设备可对差信号执行变换、量化和熵编码,其中,所述差信号是从帧间预测产生的预测块与源块之间的差值。在当前块被帧间预测时,解码设备可通过使用由编码设备发送的参考画面信息和参考块信息,仅经由运动补偿处理来产生预测块,而无需对预测块进行任何运动估计处理。解码设备可通过将产生的预测块和经由熵解码、反量化、逆变换处理产生的残差信号相加来重构图像。解码设备可通过根据编解码器的类型应用环路滤波器并最终将重构的图像再次存储在DPB中来将相应的画面产生为参考画面。在下文中,将描述根据实施例的解码设备根据邻近块的视差矢量的值对当前块进行解码的方法。根据实施例的由解码设备执行的解码方法可被等同地应用于由编码设备执行的编码方法。

在预测运动矢量和视差矢量的处理期间,根据实施例的解码设备可通过仅使用与在邻近块之中当前执行的预测相同类型的运动矢量来预测预测矢量。也就是说,在P视图和B视图处的运动预测处理期间,可通过仅使用运动矢量在邻近块之中预测当前块的预测运动矢量。此外,在视差预测处理期间,可通过仅使用视差矢量在邻近块之中预测当前块的预测视差矢量。

根据实施例的解码方法可通过使用邻近块的运动矢量信息、不同视点的图像解码信息、与当前正被解码的彩色图像相应的深度图像中的至少一个来预测当前块的运动矢量。根据实施例的解码方法可通过使用邻近块的视差矢量、不同视点的图像解码信息、与当前正被解码的彩色图像相应的深度图像中的至少一个来预测当前块的视差矢量。

根据实施例的解码方法提供可一种在P视图和B视图处有效地预测运动矢量和视差矢量的方法以及一种预测跳过运动矢量和直接运动矢量的方法。运动矢量是指时间MV,视差矢量是指视差矢量或视点间MV。根据实施例的解码方法可被应用于包括MPEG-x、H.264/AVC和HEVC的任何视频编码/ 解码系统。

根据实施例的视频解码方法包括:在跳过/直接模式下预测运动矢量以便执行预测的Skip/Direct运动矢量预测(MVP)、预测具有时间差的图像之间的运动矢量的时间MVP、以及预测具有视点间差别的图像之间的运动矢量的视点间(视差)MVP。时间MVP和视点间MVP是针对不同于跳过模式和直接模式的帧间模式的预测处理。

如以下所描述的,当图像的运动矢量和视差矢量被预测时,根据实施例的解码方法可根据与当前彩色图像相应的深度图像的存在或不存在来使用深度图像。可选择地,当图像的运动矢量和视差矢量被预测时,根据实施例的解码方法可使用任意深度值或可使用全局视差矢量。

当彩色图像的运动矢量和视差矢量被预测时,根据实施例的编码方法可在深度图像不存在的情况下将任意深度值转换为视差矢量。编码设备可将使用任意深度值产生的视差矢量插入到序列级的头、画面级的头或条带级的头,然后将视差矢量发送到编码设备。视差矢量可包括在比特流中。当视差矢量未被发送时,解码设备可通过编码设备所使用的方法来产生视差矢量。

如果在彩色图像的运动矢量和视差矢量被预测时深度图像不存在,则根据实施例的解码设备可使用全局视差矢量作为视差矢量。全局视差矢量可在传输之前被插入到序列级的头、画面级的头或条带级的头。全局视差矢量可被包括在比特流中。当全局视差矢量未被发送时,解码设备可通过编码设备所使用的方法来产生视差矢量。

图3c是用于描述根据实施例的当存在深度图像时解码设备预测运动矢量和视差矢量的方法的示图。

根据实施例的解码设备获得邻近块的纹理信息(S311)。纹理信息是用于执行编码和解码的块的编码信息。例如,纹理信息包括块的编码模式信息、运动矢量、视差矢量和深度信息。

图3d是示出当前块Cb以及与当前块Cb邻近的邻近块A、B、C和D 的概念图。参照图3d,解码设备可获得针对一个或更多个邻近块A、B、C 和D中的至少一个块的纹理信息。

然后,解码设备获得与当前块相应的深度块的深度值(S312)。在与当前块相应的深度图像块存在的情况下,当预测当前块的运动矢量和视差矢量时,解码设备可通过使用与当前块相应的深度块的信息来预测视差矢量和运动矢量中的至少一个。

例如,解码设备可识别与图像的当前块相应的深度图像。所述图像可以是彩色图像。在与所述图像相应的深度图像不存在的情况下,解码设备可通过使用与当前块邻近的邻近块、包括当前块的彩色图像的邻近彩色图像或其它深度图像来估计与当前块相应的深度图像。

解码设备可通过使用与当前块相应的深度图像的深度信息来确定当前块的视差矢量。解码设备可识别包括在深度图像中的像素中的至少一个像素,并将识别出的像素的深度值之中的最大深度值转换为当前块的视差矢量。

例如,解码设备可基于深度图像中的与当前块相应的相应块中包括的像素的深度值来确定当前块的视差矢量。解码设备可识别深度图像中的与当前块相应的相应块中包括的像素中的至少一个像素。解码设备可将识别出的像素的深度值之中的最大深度值转换为视差矢量,并将转换后的视差矢量确定为当前块的视差矢量。

解码设备可将包括在深度图像的相应块中的全部像素的深度值之中的所述最大深度值转换为当前块的视差矢量。可选择地,解码设备可考虑包括在深度图像的相应块中的像素中的仅一些像素,并可将所述一些像素的深度值之中的最大深度值转换为视差矢量。根据示例,解码设备可识别位于深度图像内的预设区域中的像素,并可将识别出的像素的深度值之中的最大深度值转换为当前块的视差矢量。例如,解码设备可识别位于相应块的角落处的像素,并可将识别出的像素的深度值之中的最大深度值转换为当前块的视差矢量,其中,所述相应块是深度图像内预设的区域。可选择地,解码设备可将位于相应块的角落处的像素的深度值和相应块的中心处的深度值之中的最大深度值转换为当前块的视差矢量。

图3e是用于描述根据实施例的解码设备针对跳过模式和直接模式使用深度图像来执行运动矢量预测的方法的示图。当对P视图图像和B视图图像进行编码/解码时,处于相同时区中的I视图图像已被编码/解码,因此,已被编码/解码的I视图图像的信息可被用于预测跳过运动矢量和直接运动矢量。另一方面,当不同视点的P视图图像和B视图图像已被编码/解码时,P视图图像和B视图图像以及I视图图像可被使用。在下文中,将描述通过使用邻近块A、B和C,通过在跳过模式和直接模式下使用深度图像来预测运动矢量的方法。

首先,根据实施例的解码设备获得当前块Cb的邻近块A、B和C的纹理信息(S321)。由于邻近块A、B和C比当前块先编码,因此编码设备可从先编码的邻近块的编码信息获得邻近块的纹理信息。解码设备可从编码设备通过执行编码产生的比特流获得邻近块的编码信息,并从所述编码信息获得邻近块的纹理信息。

然后,解码设备确定邻近块是否包括视差矢量(S322)。当邻近块包括视差矢量时,解码设备通过对邻近块的视差矢量应用中值滤波器来执行运动矢量预测。

另一方面,用于执行运动矢量预测所需的视差矢量中的一些视差矢量可不具有值。例如,邻近块A、B和C之中的块C可不具有视差矢量值。在这种情况下,解码设备可产生不存在视差矢量的邻近块C的视差矢量的值。在下文中,将描述解码设备产生邻近块C的视差矢量的值的操作。

解码设备获得与当前块相应的深度块的深度值(S323)。例如,解码设备可通过使用从比特流获得的彩色图像块和深度图像块的映射信息来找出与当前块相应的深度块。彩色图像块和深度图像块的映射信息可在编码设备对相应的彩色图像块进行编码时被产生,并可被包括在比特流中。解码设备可从比特流获得彩色图像块和深度图像块的映射信息,并通过使用所述映射信息来获得深度块的深度值,其中,深度块的深度值表示当前块的深度值。

然后,解码设备通过使用所述深度值来产生当前块的视差矢量(S324)。解码设备可通过按照上述方法使用所述深度值来产生当前块的视差矢量。然后,解码设备通过使用当前块的视差矢量来确定不具有视差矢量的块的视差矢量(S325)。例如,解码设备可将所产生的当前块的视差矢量确定为不具有视差矢量的块C的视差矢量。

将更详细地描述确定视差矢量的操作S323至S325。当邻近块不具有视差矢量时,解码设备可将与当前块相应的深度块内的深度值之中的最大深度值转换为视差矢量,并转而使用该视差矢量。当计算深度块内的最大深度值时,深度块中的一些像素而不是全部像素之中的最大值可被使用。例如,所述最大深度值可以是在位于矩形深度块的不同角落的四个像素以及位于该深度块的中心的像素的深度值之中获得的。例如,可使用深度块内的任意一个像素。例如,包括在深度块和该深度块的邻近块中的像素的深度值之中的最大深度值可被使用。可选择地,可使用深度块的上层深度块(宏块)内的像素的深度值之中的最大深度值,其中,所述上层深度块包括所述深度块。例如,可使用包括深度块的上层深度块(宏块)内的角落像素之中的最大深度值。解码设备可通过使用相机参数信息将深度值转换为视差矢量。

例如,解码设备可通过使用如以下的等式中所表达的深度图像的深度值来确定视差矢量。

【等式1】

视差矢量=(s×深度值+o,0)

为便于描述,假设视差矢量的y分量(即,垂直分量)为0。也就是说,假设图像中的对象的位置根据多视点图像中的视点的改变而仅在水平方向上改变。另一方面,视差矢量的x分量可通过将深度值与s相乘并加上o来计算。此时,s是缩放因子,深度值表示深度图像中的特定像素的深度值,o表示偏移。可从参考层图像的相机参数来确定缩放因子和偏移。例如,相机参数可包括相机的焦距和基线信息。相机的基线信息表示关于相机的镜头之间的距离的信息。

深度图像可存储针对层彩色图像的预定像素的深度值。深度值可包括关于相机和对象之间的距离的信息。例如,具有8比特的比特深度的深度图像中的最大距离和最小距离可从0至255被映射。由于对象的距离和位移为反比,因此可通过使用所述深度值来估计每个像素的位移,并且可基于估计的位移来虚拟地产生新视点的图像。也就是说,深度图像可被用于通过将虚拟视点和较少视点的图像进行合成来提供各种视点的图像的方法。

为了简便,假设视差矢量的y分量(即,垂直分量)为0,但不限于此。所述垂直分量可具有非零值。在这种情况下,y分量可以以与等式1中的x 分量的计算相同的方式来计算。

然后,解码设备通过使用中值滤波器来执行运动矢量预测(S326)。解码设备可通过使用邻近块A、B和C的视差矢量之中的使用中值滤波器中确定的视差矢量执行运动矢量预测来产生运动矢量。

例如,解码设备可获得参考图像中的与由使用中值滤波器确定的视差矢量所指示的位置相应的块的运动矢量(S327)。解码设备可将获得的运动矢量用作用于跳过模式和/或直接模式的运动矢量(S328)。

图3f是示出根据实施例的解码设备通过使用视差矢量来预测当前块的运动矢量的处理的示图。

参照图3f,解码设备可通过使用当前块330的视差矢量340,在当前块 330的视点图像310中确定当前块330的运动矢量360。例如,解码设备可将中值滤波器应用于邻近块的视差矢量,以便确定当前块330的视差矢量340。解码设备可识别参考图像310内的由经过中值滤波的视差矢量(经过中值滤波的视差)340所指示的位置,并将识别出的位置处的运动矢量350确定为当前块330的运动矢量360。

解码设备可将由经过中值滤波的视差矢量所指示的位置处的参考块的运动矢量和参考图像索引用作跳过模式和直接模式下的当前块的运动矢量和参考图像索引。当经过中值滤波的视差矢量指示I视图图像时,可在与当前图像相同的时区的I视图图像中找出由所述视差矢量所指示的位置的块,并且与所述位置的块相应的所有运动信息可被用于当前块的跳过运动矢量预测和直接运动矢量预测。

根据另一实施例,解码设备可在没有任何中值滤波器的情况下将针对邻近块的视差矢量的由在深度图像中获得的视差矢量所指示的位置的参考块的运动矢量和参考图像索引用作跳过模式和直接模式下的当前块的运动矢量和参考图像索引。

例如,解码设备可将使用与当前块相应的深度块的深度值而产生的视差矢量所指示的位置的参考块的运动矢量和参考图像索引用作跳过模式和直接模式下的当前块的运动矢量和参考图像索引。

当在深度图像中获得的视差矢量指示I视图图像时,解码设备可在与当前图像相同的时区的I视图图像中找出由所述视差矢量所指示的位置的块,并使用与所述位置的块相应的所有运动信息以进行当前块的跳过运动矢量预测和直接运动矢量预测。

当不存在处于最终位置的运动矢量时,解码设备可使用当前块的邻近块 A、B和C的运动矢量,而不使用I视图图像。当前块的参考图像索引可使用块A、B和C的参考图像索引之中的最小索引,或者可使用0索引。

当参考索引指示相同视点的图像时,解码设备可将块A、B和C的经过中值滤波的运动矢量用作跳过模式和直接模式下的最终运动矢量。当邻近块不具有运动矢量时,解码设备通过使用深度图像来产生邻近块的运动矢量。

在参考索引指示不同视点的图像时,解码设备可将块A、B和C的经过中值滤波的视差矢量用作跳过模式和直接模式下的当前块的最终运动矢量。在邻近块不具有视差矢量时,解码设备通过使用深度图像来产生邻近块的视差矢量。除了所述两种情况,解码设备使用零矢量。

图3g是根据实施例的解码设备针对帧间模式通过使用深度图像来执行运动预测的方法的流程图。

将参照图3g描述根据实施例的解码设备针对帧间模式通过使用深度图像来执行运动预测的方法。在下面,关于参照图3e描述的操作的描述将被应用于与参照图3e描述的操作相应的操作。

首先,根据实施例的解码设备获得当前块的邻近块的纹理信息(S331)。例如,解码设备获得当前块Cb的邻近块A、B和C的纹理信息。由于邻近块A、B和C先于当前块被编码,因此编码设备可从先编码的邻近块的编码信息获得邻近块的纹理信息。解码设备可从编码设备通过执行编码产生的比特流获得邻近块的编码信息,并从编码信息获得邻近块的纹理信息。

然后,解码设备确定邻近块是否包括运动矢量(S332)。当邻近块包括运动矢量时,解码设备可将邻近块的经过中值滤波的运动矢量确定为最终的预测运动矢量。

另一方面,用于执行运动矢量预测所需的一些运动矢量可不具有值。例如,邻近块A、B和C之中的块C可不具有运动矢量的值。在这种情况下,解码设备可产生不存在运动矢量的邻近块C的运动矢量的值。在下文中,将描述解码设备产生邻近块C的运动矢量的值的操作。

解码设备可将在不同视点的图像中找出的运动矢量确定为邻近块之中的不具有运动矢量的邻近块的运动矢量。为了参考不同视点的图像,解码设备获得与当前块相应的深度块的深度值(S333)。然后,解码设备通过使用深度值来产生视差矢量(S334)。解码设备可通过按照上述方式使用深度值来产生视差矢量。然后,解码设备通过使用产生的视差矢量来产生运动矢量(S335)。

例如,解码设备可获得视点图像中的与由产生的视差矢量所指示的位置相应的块的运动矢量。

当在不同视点的图像中寻找运动矢量时,解码设备可通过使用与当前块相应的深度块内的深度值之中的最大深度值来产生视差矢量,并通过使用产生的视差矢量来产生运动矢量。

解码设备可考虑深度块内的一些像素而不是深度块内的全部像素来确定最大深度值。例如,解码设备可仅考虑属于深度块的不同角落的四个像素以及中间位置的像素的深度值来确定最大深度值。例如,解码设备可通过使用深度块内的任意一个像素来确定最大深度值。例如,解码设备可在属于深度块和深度块的邻近深度块的像素的深度值之中确定最大深度值。例如,解码设备可在属于包括与当前块相应的深度块的上层深度块(宏块)的像素的深度值之中确定最大深度值。例如,解码设备可在包括与当前块相应的深度块的上层深度块(宏块)内的角落像素的深度值之中确定最大深度值。解码设备可通过使用相机参数信息将所述深度值转换为视差矢量。

如图3f中所示,解码设备可直接使用由视差矢量所指示的位置的运动矢量(MV)。在当前块的参考索引与从不同视点的图像获得的参考索引不匹配时,解码设备可使用零矢量作为运动矢量。当由深度值转换得到的视差矢量指示I视图图像时,解码设备可在与当前图像相同的时区的I视图图像中找出由视差矢量指示的位置,并可通过使用与找出的位置相应的所有运动信息来执行当前块的运动矢量预测。当未找出运动矢量时,解码设备可将零矢量确定为运动矢量。

然后,解码设备通过使用产生的运动矢量来确定不具有运动矢量的块的运动矢量(S336)。例如,解码设备可将产生的运动矢量确定为邻近块C的运动矢量。

然后,解码设备通过使用中值滤波器来执行运动矢量预测(S336)。解码设备可对邻近块A、B和C的运动矢量应用中值滤波器,并将经过中值滤波的运动矢量确定为最终的预测运动矢量。为了找出最终的运动矢量,预测运动矢量针对帧间模式在运动估计期间提供初始点。例如,编码设备可基于经过中值滤波的运动矢量的值来对当前块Cb的运动矢量进行编码。编码设备可将当前块Cb的运动矢量值与经过中值滤波的运动矢量的值之间的差确定为运动矢量值的残差,并将残差矢量发送到解码设备。解码设备可基于经过中值滤波的运动矢量的值对当前块Cb的运动矢量进行解码。解码设备可通过将编码设备发送的残差矢量与经过中值滤波的运动矢量的值相加来确定当前块 Cb的运动矢量值。

图3h是用于描述根据实施例的解码设备针对帧间模式使用深度图像来预测视差矢量(视点间MV)的方法的示图。

将参照图3h描述根据实施例的解码设备针对帧间模式使用深度图像来预测视差矢量(视点间MV)的方法。

首先,根据实施例的解码设备获得当前块的邻近块的纹理信息(S341)。例如,解码设备可获得当前块Cb的邻近块A、B和C的纹理信息。由于邻近块A、B和C先于当前块被编码,因此编码设备可从先编码的邻近块的编码信息获得邻近块的纹理信息。解码设备可从编码设备通过执行编码而产生的比特流获得邻近块的编码信息,并从所述编码信息获得邻近块的纹理信息。

然后,解码设备确定邻近块是否包括视差矢量(S342)。当邻近块包括视差矢量时,解码设备可省略操作S343、S344和S345,并可通过对邻近块的视差矢量应用中值滤波器来执行视差矢量预测(S356)。例如,当邻近块是块 A、B和C时,解码设备可通过对块A、B和C的视差矢量执行中值滤波并将经过中值滤波的矢量确定为最终的预测视差矢量来预测当前块Cb的视差矢量。

另一方面,用于执行视差矢量预测所需的一些视差矢量可不具有值。例如,邻近块A、B和C之中的块C可不具有视差矢量的值。在这种情况下,解码设备可产生不存在视差矢量的邻近块C的视差矢量的值。在下文中,将描述解码设备产生邻近块C的视差矢量的值的操作。

解码设备获得与当前块相应的深度块的深度值(S343)。然后,解码设备通过使用所述深度值来产生视差矢量(S344)。解码设备通过按照上述方法使用所述深度值来产生视差矢量。然后,解码设备通过使用产生的视差矢量来确定不具有视差矢量的块的视差矢量(S345)。例如,解码设备可将产生的视差矢量确定为不具有视差矢量的块C的视差矢量。

将更详细地描述确定视差矢量的操作S343至S345。当邻近块不具有视差矢量时,解码设备可将与当前块相应的深度块内的深度值之中的最大深度值转换为视差矢量,并转而使用所述视差矢量。当计算深度块内的最大深度值时,深度块中的一些像素而不是全部像素之中的大的值可被使用。例如,可获得位于矩形深度块的不同角落处的四个像素以及位于所述深度块的中心处的像素的深度值之中的最大深度值。例如,可使用深度块内的任意一个像素。例如,可使用包括在深度块和所述深度块的邻近块中的像素的深度值之中的最大深度值。可选择地,可使用所述深度块的上层深度块(宏块)内的像素的深度值之中的最大深度值,其中,所述上层深度块包括所述深度块。例如,可使用包括所述深度块的上层深度块(宏块)内的角落像素之中的最大深度值。解码设备可通过使用相机参数信息来将深度值转换为视差矢量。

然后,解码设备通过使用中值滤波器来执行视差矢量预测(S346)。解码设备可通过在邻近块A、B和C的视差矢量中使用中值滤波器来确定当前块的最终的预测视差矢量。为了找出当前块的视差矢量,预测视差矢量针对帧间模式在视差估计期间提供初始点。解码设备可通过使用获得的最终的预测视差矢量来对当前块执行视点间模式预测。

例如,编码设备可基于经过中值滤波的视差矢量的值来对当前块Cb的视差矢量进行编码。编码设备可将当前块Cb的视差矢量值与经过中值滤波的视差矢量的值之间的差确定为视差矢量值的残差,并可将残差矢量发送到解码设备。解码设备可基于经过中值滤波的视差矢量的值来对当前块Cb的视差矢量进行解码。解码设备可通过将编码设备发送的残差矢量与经过中值滤波的视差矢量的值相加来确定当前块Cb的视差矢量值。

图4a是根据实施例的当不存在深度图像时解码设备执行运动矢量预测和视差矢量预测的方法的流程图。

为了在不存在深度图像时执行运动矢量预测和视差矢量预测,根据实施例的解码设备获得邻近块的纹理信息(S411),根据预设值产生深度值(S412) 并通过使用邻近块的纹理信息和产生的深度值来预测视差矢量或预测运动矢量(S413)。

当不存在与当前块相应的深度图像块时,根据实施例的解码设备可在对当前块的运动矢量预测和视差矢量预测被执行时使用被确定为任意值的深度值。

图4b是用于描述根据实施例的解码设备针对跳过模式和直接模式使用深度图像来执行运动矢量预测的方法的示图。当对P视图图像和B视图图像进行编码/解码时,处于相同时区的I视图图像已被编码/解码,因此,已被编码/解码的I视图图像的信息可被用于预测跳过运动矢量和直接运动矢量。另一方面,当不同视点的P视图图像和B视图图像已被编码/解码时,P视图图像和B视图图像以及I视图图像可被使用。在下文中,在不存在深度图像的情况下,将描述解码设备通过使用邻近块A、B和C在跳过模式和直接模式下预测运动矢量的方法。

首先,根据实施例的解码设备获得当前块Cb的邻近块A、B和C的纹理信息(S421)。由于邻近块A、B和C先于当前块被编码,因此编码设备可从先编码的邻近块的编码信息获得邻近块的纹理信息。解码设备可从编码设备通过执行编码而产生的比特流获得邻近块的编码信息,并从所述编码信息获得邻近块的纹理信息。

然后,解码设备确定邻近块是否包括视差矢量(S422)。当邻近块包括视差矢量时,解码设备通过对邻近块的视差矢量应用中值滤波器来执行运动矢量预测。

例如,解码设备可将由邻近块的经过中值滤波的视差矢量所指示的位置的块的运动矢量和/或参考索引信息用作当前块的运动矢量和参考索引信息。

另一方面,用于执行运动矢量预测所需的一些视差矢量可不具有值。例如,邻近块A、B和C之中的块C可不具有视差矢量的值。在这种情况下,解码设备可产生不存在视差矢量的邻近块C的视差矢量的值。在下文中,将描述解码设备产生邻近块C的视差矢量的值的操作。

解码设备根据预设值产生深度值(S423)。然后,解码设备通过使用产生的深度值来产生视差矢量(S424)。例如,解码设备可在所述预设值为128时将深度像素值设置为128,并通过使用设置的深度像素值来产生视差矢量。解码设备通过使用产生的视差矢量来执行当前块的运动矢量预测。所述预设值可以是0或可由像素表现的最大深度像素值。

解码设备可通过按照上述方式使用深度值来产生当前块的视差矢量。例如,解码设备可通过使用相机参数信息将深度值转换为视差矢量。

然后,解码设备通过使用产生的视差矢量来确定不具有视差矢量的块的视差矢量(S425)。例如,解码设备可将产生的视差矢量确定为不具有视差矢量的块C的视差矢量。

然后,解码设备通过使用中值滤波器来执行运动矢量预测(S426)。解码设备可通过使用邻近块A、B和C的视差矢量中的使用中值滤波器确定的视差矢量执行运动矢量预测来产生运动矢量。

例如,解码设备可获得参考图像中的与由使用中值滤波器确定的视差矢量所指示的位置相应的块的运动矢量(S427)。解码设备可将获得的运动矢量用作用于跳过模式和/或直接模式的运动矢量(S428)。

解码设备可通过以上参照图3f描述的方法确定在当前块的跳过运动矢量预测和直接运动矢量预测期间使用的运动信息。例如,解码设备可将中值滤波器应用于邻近块的视差矢量,以便确定当前块的视差矢量。解码设备可识别参考图像内的由经过中值滤波的视差矢量(经过中值滤波的视差)所指示的位置,并将处于识别出的位置的运动矢量确定为当前块的运动矢量。

解码设备可将由经过中值滤波的视差矢量所指示的位置的参考块的运动矢量和参考图像索引用作跳过模式和直接模式下的当前块的运动矢量和参考图像索引。

当经过中值滤波的视差矢量指示I视图图像时,可在与当前图像相同的时区的I视点视图中找出由所述视差矢量所指示的位置,并且与所述位置相应的所有运动信息可被用于当前块的跳过运动矢量预测和直接运动矢量预测。

根据另一实施例,解码设备可将在没有任何中值滤波器的情况下由针对邻近块的视差矢量在深度图像中获得的视差矢量所指示的位置的参考块的运动矢量和参考图像索引用作跳过模式和直接模式下的当前块的运动矢量和参考图像索引。

例如,解码设备可将使用预设深度值而产生的视差矢量所指示的位置的参考块的运动矢量和参考图像索引用作跳过模式和直接模式下的当前块的运动矢量和参考图像索引。

当在深度图像中获得的视差矢量指示I视图图像时,解码设备可在与当前图像相同的时区的I视图图像中找出由所述视差矢量所指示的位置的块,并使用与所述位置的块相应的所有运动信息以进行当前块的跳过运动矢量预测和直接运动矢量预测。

当不存在处于最终位置的运动矢量时,解码设备可使用当前块的邻近块 A、B和C的运动矢量,而不使用I视图图像。当前块的参考图像索引可使用块A、B和C的参考图像索引之中的最小索引,或者可使用0索引。

当参考索引指示相同视点的图像时,解码设备可将块A、B和C的经过中值滤波的运动矢量用作跳过模式和直接模式下的最终运动矢量。当邻近块不具有运动矢量时,解码设备通过使用深度图像来产生运动矢量。解码设备可通过使用将在下面参照图4c描述的运动矢量预测方法来预测运动矢量。

在参考索引指示不同视点的图像时,解码设备可将块A、B和C的经过中值滤波的视差矢量用作跳过模式和直接模式下的当前块的最终运动矢量。在邻近块具有视差矢量时,解码设备通过使用深度图像来产生视差矢量。解码设备可通过使用将在下面参照图4d描述的视差矢量预测方法来预测视差矢量。除了所述两种情况,解码设备使用零矢量。

图4c是根据实施例的解码设备针对帧间模式在不使用深度图像的情况下执行运动预测的方法的流程图。

将参照图4c描述根据实施例的解码设备针对帧间模式在不使用深度图像的情况下执行运动预测的方法。

首先,根据实施例的解码设备获得当前块的邻近块的纹理信息(S431)。例如,解码设备获得当前块Cb的邻近块A、B和C的纹理信息。由于邻近块A、B和C先于当前块被编码,因此编码设备可从先编码的邻近块的编码信息获得邻近块的纹理信息。解码设备可从编码设备通过执行编码产生的比特流获得邻近块的编码信息,并从编码信息获得邻近块的纹理信息。

然后,解码设备确定邻近块是否包括运动矢量(S432)。当邻近块包括运动矢量时,解码设备可将邻近块的经过中值滤波的运动矢量用作最终的预测运动矢量。

另一方面,用于执行运动矢量预测所需的一些运动矢量可不具有值。例如,邻近块A、B和C之中的块C可不具有运动矢量的值。在这种情况下,解码设备可产生不存在运动矢量的邻近块C的运动矢量的值。在下文中,将描述解码设备产生邻近块C的运动矢量的值的操作。

解码设备可将在不同视点的图像中找出的运动矢量确定为邻近块之中的不具有运动矢量的邻近块的运动矢量。

解码设备通过使用预设值来产生深度值(S433)。所述预测预设值可以是 0、128或可由深度像素表现的最大深度值。

然后,解码设备通过使用深度值来产生视差矢量(S434)。解码设备可按照上述方式通过使用深度值来产生视差矢量。例如,解码设备可在所述预设值为128时将深度值设置为128,并根据所述深度值产生视差矢量。当通过将深度值转换为视差矢量来产生视差矢量时,解码设备可使用相机参数信息。

然后,解码设备可通过使用产生的视差矢量来产生运动矢量(S435)。例如,解码设备可获得视点图像中的与由产生的视差矢量所指示的位置相应的块的运动矢量。

如图3f中所示,解码设备可使用由视差矢量所指示的位置的运动矢量 (MV)。在当前块的参考索引与从不同视点的图像获得的参考索引不匹配时,解码设备可使用零矢量。当由深度值转换得到的视差矢量指示I视图图像时,解码设备可在与当前图像相同的时区的I视图图像中找出由视差矢量指示的位置,并可通过使用与找出的位置相应的所有运动信息来执行当前块的运动矢量预测。当未找出运动矢量时,解码设备可将零矢量确定为运动矢量。

然后,解码设备通过使用产生的运动矢量来确定不具有运动矢量的块的运动矢量(S436)。例如,解码设备可将产生的运动矢量确定为邻近块C的运动矢量。

然后,解码设备通过使用中值滤波器来执行运动矢量预测(S437)。解码设备可对邻近块A、B和C的运动矢量应用中值滤波器,并将经过中值滤波的运动矢量确定为最终的预测运动矢量。为了找出最终的运动矢量,预测运动矢量针对帧间模式在运动估计期间提供初始点。例如,解码设备可基于经过中值滤波的运动矢量的值来对当前块Cb的运动矢量进行编码。编码设备可将当前块Cb的运动矢量值与经过中值滤波的运动矢量的值之间的差确定为运动矢量值的残差,并将残差矢量发送到解码设备。解码设备可基于经过中值滤波的运动矢量的值对当前块Cb的运动矢量进行解码。解码设备可通过将编码设备发送的残差矢量与经过中值滤波的运动矢量的值相加来确定当前块 Cb的运动矢量值。

图4d是用于描述根据实施例的解码设备在不使用深度图像的情况下预测用于帧间模式的视差矢量(视点间MV)的方法的流程图。

将参照图4d描述根据实施例的解码设备在不使用深度图像的情况下预测用于帧间模式的视差矢量(视点间MV)的方法。

首先,根据实施例的解码设备获得当前块的邻近块的纹理信息(S441)。例如,解码设备可获得当前块Cb的邻近块A、B和C的纹理信息。由于邻近块A、B和C先于当前块被编码,因此编码设备可从先编码的邻近块的编码信息获得邻近块的纹理信息。解码设备可从编码设备通过执行编码而产生的比特流获得邻近块的编码信息,并从所述编码信息获得邻近块的纹理信息。

然后,解码设备确定邻近块是否包括示视差矢量(S442)。当邻近块包括视差矢量时,解码设备可省略操作S443、S444和S445,并可通过对邻近块的视差矢量应用中值滤波器来执行视差矢量预测(S446)。例如,当邻近块是块A、B和C时,解码设备可通过对块A、B和C的视差矢量执行中值滤波并将经过中值滤波的矢量确定为最终的预测视差矢量来预测当前块Cb的视差矢量。

另一方面,用于执行视差矢量预测所需的一些视差矢量可不具有值。例如,邻近块A、B和C之中的块C可不具有视差矢量的值。在这种情况下,解码设备可产生不存在视差矢量的邻近块C的视差矢量的值。在下文中,将描述解码设备产生邻近块C的视差矢量的值的操作。

解码设备通过使用预设值来产生深度值(S443)。所述预设值可以是0、 128或可由深度像素表现的最大深度值。

然后,解码设备通过使用所述深度值来产生视差矢量(S444)。解码设备通过按照上述方法使用所述深度值来产生视差矢量。例如,解码设备可在所述预设值为128时将深度值设置为128,并根据所述深度值产生视差矢量。当通过将深度值转换为视差矢量产生视差矢量时,解码设备可使用相机参数信息。

然后,解码设备通过使用产生的视差矢量确定不具有视差矢量的块的视差矢量(S445)。例如,解码设备可将产生的视差矢量确定为不具有视差矢量的块C的视差矢量。

然后,解码设备通过使用中值滤波器来执行视差矢量预测(S446)。解码设备可在邻近块A、B和C的视差矢量中通过使用中值滤波器来确定当前块的最终的预测视差矢量。为了找出当前块的视差矢量,预测视差矢量针对帧间模式在视差估计期间提供初始点。解码设备可通过使用获得的最终的预测视差矢量来对当前块执行视点间模式预测。

例如,编码设备可基于经过中值滤波的视差矢量的值来对当前块Cb的视差矢量进行编码。编码设备可将当前块Cb的视差矢量值与经过中值滤波的视差矢量的值之间的差确定为视差矢量值的残差,并可将残差矢量发送到解码设备。解码设备可基于经过中值滤波的视差矢量的值来对当前块Cb的视差矢量进行解码。解码设备可通过将编码设备发送的残差矢量与经过中值滤波的视差矢量的值相加来确定当前块Cb的视差矢量值。

图5a是根据实施例的在不存在深度图像时解码设备执行运动矢量预测和视差矢量预测的方法的流程图。

为了在不存在深度图像时执行运动矢量预测和视差矢量预测,根据实施例的解码设备获得邻近块的纹理信息(S511),产生全局视差矢量(S512)并通过使用邻近块的纹理信息和产生的全局视差矢量来预测视差矢量或预测运动矢量(S513)。

在本说明书中,全局视差矢量是在当前块被解码之前解码的视差矢量,并可以是在当前块被解码之前解码的块或画面的视差矢量。类似地,全局视差矢量是在当前块被编码之前编码的视差矢量,并可以是在当前块被编码之前编码的块或画面的视差矢量。全局视差矢量可包括在序列级的头、画面级的头或条带级的头中。解码设备可通过编码设备使用的方法来产生视差矢量。

在不存在与当前块相应的深度图像块时,根据实施例的解码设备可在对当前块的运动矢量预测和视差矢量预测被执行时获得全局视差矢量并使用获得的矢量。

图5b是用于描述根据实施例的解码设备通过使用全局视差矢量来针对跳过模式和直接模式执行运动矢量预测的方法的示图。

当对P视图图像和B视图图像进行编码/解码时,处于相同时区的I视图图像已被编码/解码,因此,已被编码/解码的I视图图像的信息可被用于预测跳过运动矢量和直接运动矢量。另一方面,当不同视点的P视图图像和B视图图像已被编码/解码时,P视图图像和B视图图像以及I视图图像可被使用。在下文中,将描述解码设备通过使用邻近块A、B和C来预测跳过模式和直接模式下的运动矢量的方法。

首先,根据实施例的解码设备获得当前块Cb的邻近块A、B和C的纹理信息(S521)。由于邻近块A、B和C先于当前块被编码,因此编码设备可从先编码的邻近块的编码信息获得邻近块的纹理信息。解码设备可从编码设备通过执行编码而产生的比特流获得邻近块的编码信息,并从所述编码信息获得邻近块的纹理信息。

然后,解码设备确定邻近块是否包括视差矢量(S522)。当邻近块包括视差矢量时,解码设备通过对邻近块的视差矢量应用中值滤波器来执行运动矢量预测。

例如,解码设备可将由邻近块的经过中值滤波的视差矢量所指示的位置的块的运动矢量和/或参考索引信息用作当前块的运动矢量和参考索引信息。

另一方面,用于执行运动矢量预测所需的一些视差矢量可不具有值。例如,邻近块A、B和C之中的块C可不具有视差矢量。在这种情况下,解码设备可获得全局视差矢量(523),并将全局视差矢量确定为不存在视差矢量的邻近块C的视差矢量。

将描述将全局视差矢量确定为不存在视差矢量的邻近块C的视差矢量的示例。例如,解码设备可使用零视差矢量作为邻近块C的视差矢量。解码设备可将在先前块或先前帧中编码/解码的视差矢量用作邻近块C的视差矢量。解码设备可将平均视差矢量用作邻近块C的视差矢量,其中,所述平均视差矢量是通过对在先前块或先前帧中编码/解码的多个视差矢量求平均来确定的。解码设备可将在先前块或先前帧中编码/解码的视差矢量之中的具有最大视差值的视差矢量确定为邻近块C的视差矢量。解码设备可将在先前块或先前帧中编码/解码的多个视差矢量之中的具有中间值的视差矢量确定为邻近块C的视差矢量。

此外,解码设备可将通过与不同视点的图像进行块匹配获得的视差矢量用作邻近块C的视差矢量。所述块匹配是通过将特定块与多个块进行比较来找出块值与所述特定块最相似的块的方法。

此外,解码设备可将在先前块或先前帧中最近编码/解码的视差矢量用作邻近块C的视差矢量。解码设备可将位于当前块的左侧的先前块的视差矢量之中的最近编码/解码的视差矢量用作邻近块C的视差矢量。此时,当不存在最近编码/解码的视差矢量时,解码设备可使用零视差矢量。另一方面,当在先前块或先前帧中不存在最近编码/解码的视差矢量时,解码设备可将任意视差矢量用作邻近块C的视差矢量。此外,如上所述,解码设备可通过使用相机参数信息将任意深度值转换为视差矢量,并将所述视差矢量用作邻近块C 的视差矢量。

然后,解码设备通过使用中值滤波器来执行运动矢量预测(S525)。解码设备可通过使用邻近块A、B和C的视差矢量中的使用中值滤波器确定的视差矢量执行运动矢量预测来产生运动矢量。

例如,解码设备可获得参考图像中的与由使用中值滤波器确定的视差矢量所指示的位置相应的块的运动矢量(S526)。解码设备可将获得的运动矢量用作用于跳过模式和/或直接模式的运动矢量(S527)。

解码设备可通过以上参照图3f描述的方法确定在当前块的跳过运动矢量预测和直接运动矢量预测期间使用的运动信息。例如,解码设备可将中值滤波器应用于邻近块的视差矢量,以便确定当前块的视差矢量。解码设备可识别参考图像内的由经过中值滤波的视差矢量(经过中值滤波的视差)所指示的位置,并将处于识别出的位置的运动矢量确定为当前块的运动矢量。

解码设备可将由经过中值滤波的视差矢量所指示的位置的参考块的运动矢量和参考图像索引用作跳过模式和直接模式下的当前块的运动矢量和参考图像索引。

当经过中值滤波的视差矢量指示I视图图像时,可在与当前图像相同的时区的I视图图像中找出由所述视差矢量所指示的位置,并且与所述位置的块相应的所有运动信息可被用于当前块的跳过运动矢量预测和直接运动矢量预测。

根据另一实施例,解码设备可将在没有任何中值滤波器的情况下由针对邻近块的视差矢量获得的全局视差矢量所指示的位置的参考块的运动矢量和参考图像索引用作跳过模式和直接模式下的当前块的运动矢量和参考图像索引。

例如,解码设备可在上述全局视差矢量之中选择一个全局视差矢量,并将由所选择的全局视差矢量所指示的位置的参考块的运动矢量和参考图像索引用作跳过模式和直接模式下的当前块的运动矢量和参考图像索引。

当全局视差矢量指示I视图图像时,解码设备可在与当前图像相同的时区的I视图图像中找出由全局视差矢量所指示的位置的块,并使用与所述位置的块相应的所有运动信息以进行当前块的跳过运动矢量预测和直接运动矢量预测。

当不存在处于最终位置的运动矢量时,解码设备可使用当前块的邻近块 A、B和C的运动矢量,而不使用I视图图像。当前块的参考图像索引可使用块A、B和C的参考图像索引之中的最小索引,或者可使用0索引。

当参考索引指示相同视点的图像时,解码设备可将块A、B和C的经过中值滤波的运动矢量用作跳过模式和直接模式下的最终运动矢量。当邻近块不具有运动矢量时,解码设备通过使用深度图像来产生运动矢量。解码设备可通过使用将在下面参照图5c描述的运动矢量预测方法来预测运动矢量。

在参考索引指示不同视点的图像时,解码设备可将块A、B和C的经过中值滤波的视差矢量用作跳过模式和直接模式下的当前块的最终运动矢量。在邻近块具有视差矢量时,解码设备通过使用深度图像来产生视差矢量。解码设备可通过使用将在下面参照图5d描述的视差矢量预测方法来预测视差矢量。除了所述两种情况,解码设备使用零矢量。

图5c是根据实施例的解码设备针对帧间模式在不使用深度图像的情况下执行运动预测的方法的流程图。

将参照图5c描述根据实施例的解码设备针对帧间模式在不使用深度图像的情况下执行运动预测的方法。

首先,根据实施例的解码设备获得当前块的邻近块的纹理信息(S531)。例如,解码设备获得当前块Cb的邻近块A、B和C的纹理信息。由于邻近块A、B和C先于当前块被编码,因此解码设备可从先编码的邻近块的编码信息获得邻近块的纹理信息。解码设备可从编码设备通过执行编码产生的比特流获得邻近块的编码信息,并从编码信息获得邻近块的纹理信息。

然后,解码设备确定邻近块是否包括运动矢量(S532)。当邻近块包括运动矢量时,解码设备可将邻近块的经过中值滤波的运动矢量确定为最终的预测运动矢量。

另一方面,用于执行运动矢量预测所需的一些运动矢量可不具有值。例如,邻近块A、B和C之中的块C可不具有运动矢量的值。在这种情况下,解码设备可产生不存在运动矢量的邻近块C的运动矢量的值。在下文中,将描述解码设备产生邻近块C的运动矢量的值的操作。

解码设备可将在不同视点的图像中找出的运动矢量确定为邻近块之中的不具有运动矢量的邻近块的运动矢量。

解码设备获得全局视差矢量以通过使用获得的全局视差矢量来找出不同视点处的运动矢量(S533 )。解码设备可如下确定全局视差矢量。例如,解码设备可将零视差矢量确定为全局视差矢量。解码设备可将在先前块或先前帧中编码/解码的视差矢量确定为全局视差矢量。解码设备可将平均视差矢量确定为全局视差矢量,其中,所述平均视差矢量是通过对在先前块或先前帧中编码/解码的多个视差矢量求平均而确定的。解码设备可将在先前块或先前帧中编码/解码的视差矢量之中具有最大视差值的视差矢量确定为全局视差矢量。解码设备可将在先前块或先前帧中编码/解码的多个视差矢量之中具有中间值的视差矢量确定为全局视差矢量。

此外,解码设备可将经由与不同视点的图像进行块匹配而获得的视差矢量确定为全局视差矢量。块匹配是通过将特定块与多个块进行比较来找出块值与所述特定块最相似的块的方法。

此外,解码设备可将在先前块或先前帧中最近编码/解码的视差矢量确定为全局视差矢量。解码设备可将位于当前块的左侧的先前块的视差矢量之中的最近编码/解码的视差矢量确定为全局视差矢量。此时,当不存在最近编码 /解码的视差矢量时,解码设备可将零视差矢量确定为全局视差矢量。另一方面,当不存在最近编码/解码的视差矢量时,解码设备可将任意视差矢量确定为全局视差矢量。此外,如上所述,解码设备可通过使用相机参数信息将任意深度值转换为视差矢量,并将所述视差矢量用作全局视差矢量。

然后,解码设备通过使用全局视差矢量来确定运动矢量(S534)。例如,解码设备可获得视点图像之中的与由全局视差矢量所指示的位置相应的块的运动矢量。

如图3f中所示,解码设备可使用由视差矢量所指示的位置的运动矢量(MV)。在当前块的参考索引与从不同视点的图像获得的参考索引不匹配时,解码设备可使用零矢量。当由深度值转换得到的视差矢量指示I视图图像时,解码设备可在与当前图像相同的时区的I视图图像中找出由视差矢量指示的位置,并可通过使用与找出的位置相应的所有运动信息来执行当前块的运动矢量预测。当未找出运动矢量时,解码设备可将零矢量确定为运动矢量。

然后,解码设备通过使用产生的运动矢量来确定不具有运动矢量的块的运动矢量(S535)。例如,解码设备可将产生的运动矢量确定为邻近块C的运动矢量。

然后,解码设备通过使用中值滤波器来执行运动矢量预测(S536)。解码设备可对邻近块A、B和C的运动矢量应用中值滤波器,并将经过中值滤波的运动矢量确定为最终的预测运动矢量。为了找出最终的运动矢量,预测运动矢量针对帧间模式在运动估计期间提供初始点。例如,解码设备可基于经过中值滤波的运动矢量的值来对当前块Cb的运动矢量进行编码。

编码设备可将当前块Cb的运动矢量值与经过中值滤波的运动矢量的值之间的差确定为运动矢量值的残差,并将残差矢量发送到解码设备。解码设备可基于经过中值滤波的运动矢量的值对当前块Cb的运动矢量进行解码。解码设备可通过将编码设备发送的残差矢量与经过中值滤波的运动矢量的值相加来确定当前块Cb的运动矢量值。

图5d是用于描述根据实施例的解码设备针对帧间模式在不使用深度图像的情况下预测视差矢量(视点间MV)的方法的示图。

将参照图5d描述根据实施例的解码设备针对帧间模式在不使用深度图像的情况下预测视差矢量(视点间MV)的方法。

首先,根据实施例的解码设备获得当前块的邻近块的纹理信息(S541)。例如,解码设备可获得当前块Cb的邻近块A、B和C的纹理信息。由于邻近块A、B和C先于当前块被编码,因此编码设备可从先编码的邻近块的编码信息获得邻近块的纹理信息。解码设备可从编码设备通过执行编码而产生的比特流获得邻近块的编码信息,并从所述编码信息获得邻近块的纹理信息。

然后,解码设备确定邻近块是否包括视差矢量(S542)。当邻近块包括视差矢量时,解码设备可省略操作S543和S544,并可通过对邻近块的视差矢量应用中值滤波器来执行视差矢量预测(S545)。例如,当邻近块是块A、B 和C时,解码设备可通过对块A、B和C的视差矢量执行中值滤波并将经过中值滤波的矢量确定为最终的预测视差矢量来预测当前块Cb的视差矢量。

另一方面,用于执行视差矢量预测所需的一些视差矢量可不具有值。例如,邻近块A、B和C之中的块C可不具有视差矢量。在这种情况下,解码设备可通过使用全局视差矢量来产生不存在视差矢量的邻近块C的视差矢量的值。在下文中,将描述解码设备产生邻近块C的视差矢量的值的操作。

解码设备获得全局视差矢量以便将全局视差矢量的值确定为邻近块C的视差矢量的值(S543 )。解码设备可如下确定全局视差矢量。例如,解码设备可将零视差矢量确定为全局视差矢量。解码设备可将在先前块或先前帧中编码/解码的视差矢量确定为全局视差矢量。解码设备可将平均视差矢量确定为全局视差矢量,其中,所述平均视差矢量是通过对在先前块或先前帧中编码/ 解码的多个视差矢量求平均而确定的。解码设备可将在先前块或先前帧中编码/解码的视差矢量之中具有最大视差值的视差矢量确定为全局视差矢量。解码设备可将在先前块或先前帧中编码/解码的多个视差矢量之中具有中间值的视差矢量确定为全局视差矢量。

此外,解码设备可将经由与不同视点的图像进行块匹配而获得的视差矢量确定为全局视差矢量。块匹配是通过将特定块与多个块进行比较来找出块值与所述特定块最相似的块的方法。

此外,解码设备可将在先前块或先前帧中最近编码/解码的视差矢量确定为全局视差矢量。解码设备可将位于当前块的左侧的先前块的视差矢量之中的最近编码/解码的视差矢量确定为全局视差矢量。此时,当不存在最近编码 /解码的视差矢量时,解码设备可将零视差矢量确定为全局视差矢量。另一方面,当不存在最近编码/解码的视差矢量时,解码设备可将任意视差矢量确定为全局视差矢量。此外,如上所述,解码设备可通过使用相机参数信息将任意深度值转换为视差矢量,并将所述视差矢量用作全局视差矢量。

然后,解码设备通过使用获得的全局视差矢量来确定不具有视差矢量的块的视差矢量(S544)。例如,解码设备可将获得的全局视差矢量确定为不具有视差矢量的块C的视差矢量。

然后,解码设备通过使用中值滤波器来执行视差矢量预测(S545)。解码设备可通过使用中值滤波器在邻近块A、B和C的视差矢量中确定当前块的最终的预测视差矢量。为了找出当前块的视差矢量,预测视差矢量针对帧间模式在视差估计期间提供初始点。解码设备可通过使用获得的最终的预测视差矢量来对当前块执行视点间模式预测。

例如,编码设备可基于经过中值滤波的视差矢量的值来对当前块Cb的视差矢量进行编码。编码设备可将当前块Cb的视差矢量值与经过中值滤波的视差矢量的值之间的差确定为视差矢量值的残差,并可将残差矢量发送到解码设备。解码设备可基于经过中值滤波的视差矢量的值来对当前块Cb的视差矢量进行解码。解码设备可通过将编码设备发送的残差矢量与经过中值滤波的视差矢量的值相加来确定当前块Cb的视差矢量值。

如上所述,根据实施例的编码/解码方法可用于对3D图像进行编码和解码。将给出关于实施例以下描述,其中,在所述实施例中,当不存在与当前块相应的深度图像块时,深度值被设置为128,该值通过使用相机参数被转换为视差矢量,并且所述视差矢量被用于当前块的运动矢量预测部分和视差矢量预测部分。

当在3D视频压缩期间应用了帧间预测、视点间预测、视点合成预测和自适应亮度补偿时,CorDepthFlag可被如下定义。

[表1]

ViewIdTo3DVAcquisitionParamIndex(viewId)是用于转换与主动序列参数集中的viewId相同的view_id_3dv[i]的i值的函数。

view_id_3d是编码设备经由比特流发送到解码设备的view_id布置语法元素。view_id_3d可被包括在序列参数集中。

srcViewId是纹理视图分量的view_id值。

视差矢量defaultDV被如下定义。

[表2]

Disparity函数是通过使用深度值样点值depthSample、源图像索引srcIndex和参考图像索引refIndex来产生视差矢量的函数。

函数DisparityForBlock(depthPic,x1,y1,blWidth,blHeight,srcViewId, refViewId)被指定为根据以下顺序的步骤以对maxDisp进行转换。

变量maxDepth被如下指定。

[表3]

变量maxDisp被如下指定。

[表4]

如果DepthFlag等于0,dmvp_flag等于1,并且CorDepthFlag等于1,则针对B条带的变量DepthRefPicList1、DepthRefPicList0和DepthCurrPic被如下指定。

变量DepthRefPicList0被指定为由视图分量对中的深度视图分量组成,其中,所述视图分量对中的纹理视图分量在RefPicList0中,以便RefPicList0[i] 和DepthRefPicList0[i]针对任意值i=0..num_ref_idx_l0_active_minus1形成视图分量对。

num_ref_idx_l0_active_minus1是指示通过从主动参考索引的数值减去1 获得的值的语法元素。编码设备可在发送到解码设备之前将 num_ref_idx_l0_active_minus1包括在比特流中。

变量DepthRefPicList1针对B条带被指定为由视图分量对中的深度视图分量组成,其中,所述视图分量对中的纹理视图分量在RefPicList1中,以便 RefPicList1[i]和DepthRefPicList1[i]针对任意值i=0.. num_ref_idx_l1_active_minus1形成视图分量对。

变量DepthCurrPic被指定为视图分量对中的深度视图分量的经过上采样的解码样本阵列,其中,所述视图分量对中的纹理视图分量是当前纹理视图分量。

如果DepthFlag等于0,dmvp_flag等于1并且CorDepthFlag等于0,则针对B条带的变量DepthRefPicList1、DepthRefPicList0和DepthCurrPic被指定为由空白分量(空白变量)组成。

在针对运动矢量分量和参考索引的推导处理中,输入可包括宏块分区 mbPartIdx以及子宏块分区subMbPartIdx。

如果ChromaArrayType不等于0,则输出可包括亮度运动矢量mvL0和 mvL1、色度运动矢量mvCL0和mvCL1、参考索引refIdxL0和refIdxL1、预测列表利用标记predFlagL0和predFlagL1、以及运动矢量计数变量subMvCnt。

为了推导变量refIdxL0、refIdxL1、mvL0和mvL1,可应用下面的内容。如果mb_type等于P_Skip并且MbVSSkipFlag等于0,则可应用下面的内容。如果nal_unit_type等于21并且DepthFlag等于0且dmvp_flag等于1,则针对用于P条带和SP条带中的跳过宏块的亮度运动矢量的基于深度的推导处理被调用,在该推导处理中,输出是亮度运动矢量mv0和参考索引refIdxL0,并且predFlagL0被设置为等于1。

否则(nal_unit_type不等于21或者DepthFlag等于1或者dmvp_flag等于 0),针对用于P条带和SP条带中的跳过宏块的亮度运动矢量的推导处理被调用,在该推导处理中,输出是亮度运动矢量mv0和参考索引refIdxL0,并且 predFlagL0被设置为等于1。

如果MbVSSkipFlag等于1,则针对用于P条带和SP条带中的VSP跳过宏块的亮度运动矢量的推导处理被调用,在该推导处理中,输出是亮度运动矢量mv0和参考索引refIdxL0,并且predFlagL0被设置为等于1。

如果mvL1和refIdxL1被标记为不可用并且predFlagL1被设置为等于0,则运动矢量计数变量subMvCnt被设置为等于1。

如果mb_type等于B_Skip或B_Direct_16x16,或者sub_mb_type [mbPartIdx]等于B_Direct_8x8,则可应用以下内容。

a)变量vspFlag被指定为如下面的表中所示。

[表5]

如果vspFlag等于0且nal_unit_type等于21且DepthFlag等于0且 dmvp_flag等于1,则针对用于B条带中的B_Skip、B_Direct_16x16和 B_Direct_8x8的亮度运动矢量的基于深度的推导处理被调用,在该推导处理中,mbPartIdx和subMbPartIdx作为输入,并且输出是亮度运动矢量mvL0和 mvL1、参考索引refIdxL0和refIdxL1、运动矢量计数变量subMvCnt以及预测利用标记predFlagL0和predFlagL1。

c)如果vspFlag等于0,nal_unit_type不等于21或DepthFlag等于1或 dmvp_flag等于0,则针对用于B条带中的B_Skip、B_Direct_16x16和 B_Direct_8x8的亮度运动矢量的推导处理被调用,在该推导处理中, mbPartIdx和subMbPartIdx作为输入,并且输出是亮度运动矢量mvL0和 mvL1、参考索引refIdxL0和refIdxL1、运动矢量计数变量subMvCnt以及预测利用标记predFlagL0和predFlagL1。

d)如果vspFlag等于1,则针对用于B条带中的B_Skip、B_Direct_16x16 和B_Direct_8x8的亮度运动矢量的推导处理被调用。

当predFlagLX等于1、DepthFag等于0且dmvp_flag等于1时,针对亮度运动矢量预测的推导处理被调用,在该推导处理中,mbPartIdx、 subMbPartIdx、refIdxLX和currSubMbType作为输入,并且输出是mvpLX。当predFlagLX等于1且DepthFlag等于1或dmvp_flag等于0时,针对亮度运动矢量预测的推导处理被调用,在该推导处理中,mbPartIdx、subMbPartIdx、 refIdxLX和currSubMbType作为输入,并且输出是mvpLX。

将描述针对P条带和SP条带中的跳过宏块的亮度运动矢量的推导处理。当mb_type等于P_Skin,nal_unit_type等于21、DepthFlag等于0、dmvp_flag 等于1且MbVSSkipFlag等于0时涉及该处理。所述输出是运动矢量mvL0 和参考索引refIdxL0。

对于P_Skip宏块类型的运动矢量mvL0和refIdxL0的推导,以下顺序的步骤被指定。

a、针对视点间参考中的视点间运动矢量的推导处理被调用,在该推导处理中,被设置为等于0的mbPartIdx、被设置为等于0的subMbPartIdx、被设置为等于“na”的currSubMbType以及被设置为等于0的listSuffixFlag作为输入。输出被分配给运动矢量mvL0以及参考索引refIdxL0。

b、在refIdxL0等于-1的情况下:

针对跳过宏块的参考索引refIdxL0被获得为refIdxL0=0。针对亮度运动矢量预测的推导处理被调用,在该推导处理中,被设置为等于0的mbPartIdx、被设置为等于0的subMbPartIdx、refIdxL0、以及被设置为等于“na”的 currSubMbType作为输入,并且输出为mvL0。

将描述针对用于P条带和SP条带中的VSP跳过宏块的亮度运动矢量的推导处理。在mb_type等于P_Skin,nal_unit_type等于21、DepthFlag等于0、且MbVSSkipFlag等于1时调用该处理。该处理的输出是运动矢量mvL0和参考索引refIdxL0。针对VSP跳过宏块的参考索引refIdxL0被获得为在 RefPicList0中首先出现的合成画面。

将描述针对用于B_Skip、B_Direct_16x16和B_Direct_8x8的亮度运动矢量的推导处理。该处理的输入是当前宏块分区索引mbPartIdx和subMbPartIdx。该处理的输出是参考索引refIdxL0和refIdxL1、运动矢量mvL0和mvL1、运动矢量计数变量subMvCnt以及预测列表利用标记predFlagL0和predFlagL1。

对于输出的推导,以下顺序的步骤被指定。

1、变量currSubMbType被设置为等于sub_mb_type[mbPartIdx]。

2、针对视点间参考中的视点间运动矢量的推导处理被调用,在该推导处理中,被设置为等于0的mbPartIdx、被设置为等于0的subMbPartIdx、被设置为等于0的currSubMbType和listSuffixFlag作为输入。输出被分配给运动矢量mvL0以及参考索引refIdxL0。

3、针对视点间参考中的视点间运动矢量的推导处理被调用,在该推导处理中,被设置为等于0的mbPartIdx、被设置为等于0的subMbPartIdx、被设置为等于1的currSubMbType和listSuffixFlag作为输入。输出被分配给运动矢量mv1以及参考索引refIdxL1。

4、当参考索引refIdxL0和refIdxL1均等于-1时,应用以下内容。

参考索引refIdxL0被设置为0。针对亮度运动矢量预测的推导处理被调用,在该推导处理中,被设置为等于0的mbPartIdx、被设置为等于0的 subMbPartIdx、refidxLX(X为0或1)和currSubMbType作为输入。mvLX 被分配为输出。

将描述针对视差矢量和视点间参考的推导处理。该处理的输入是深度参考视图分量depthPic、分区的左上样点的位置(dbx1,dby1)以及listSuffixFlag。该处理的输出是画面InterViewPic、偏移矢量dv以及变量InterViewAvailable.

InterViewAvailable被设置为等于0。以下表应用于获得视点间参考画面或仅视点间参考画面(inter-view only reference picture)、InterViewPic,且当listSuffixFlag为1或0时X被设置为1。

[表6]

当InterViewAvailable等于1时,以下步骤按顺序应用。

针对邻近分区的运动数据的推导处理被调用,在该推导处理中,被设置为等于0的mbPartIdx、被设置为等于0的subMbPartIdx、被设置为等于“na”的currSubMbType以及被设置为等于0的listSuffixFlag作为输入。参考索引 refIdxCandL0[i]和运动矢量mvCandL0[i]被设置为输出,且i等于分别与邻近分区A、B和C相应的0、1和2。

针对邻近分区的运动数据的推导处理被调用,在该推导处理中,被设置为等于0的mbPartIdx、被设置为等于0的subMbPartIdx、被设置为等于“na”的currSubMbType以及被设置为等于1的listSuffixFlag作为输入。参考索引 refIdxCandL0[i]和运动矢量mvCandL0[i]被设置为输出,且i等于分别与邻近分区A、B和C相应的0、1和2。

变量dv如以下顺序的步骤所指定的来获得。

DvAvailable[i]和mvCand[i]基于下面的表被设置,且i等于分别与邻近分区A、B和C相应的0、1和2。

[表7]

如果DvAvailable[0]+DvAvailable[1]+DvAvailable[2]等于1,则应用下面的内容。

[表8]

当CorDepthFlag等于1时,下面的步骤按顺序应用。

1、变量maxDepth被设置为如下面的表中所示。

[表9]

1、变量dispVector被设置为如下面的表中所示。

[表10]

3、对于等于0、1和2的i中的每个值,当DvAvailable[i]等于0时,mvCand[i] 被设置为dispVector。

4、通过与运动矢量mvCandLX[0]、mvCandLX[1]和mvCandLX[2]相应的矢量分量的中值来给予变量dv的每个分量。

[表11]

否则,对于等于1和2的i中的每个值,当DvAvailable[i]等于0时,在 CorDepthFlag等于0的情况下mvCand[i]被设置为defaultDV。变量dv中的每个分量被如下获得。

[表12]

将描述针对视点间参考中的视点间运动矢量的推导处理。该处理的输入是mbPartIdx、subMbPartIdx和listSuffixFlag。该处理的输出是运动矢量 mvCorrespondand和参考索引refIdxCorrespond。视点间参考画面InterViewPic 以及偏移矢量dv如以下顺序的步骤所指定的来获得。

首先,逆宏块扫描处理被调用,在该处理中,CurrMbAddr作为输入,并且输出被分配给(x1,y1)。

然后,逆子宏块分区扫描处理被调用,在该处理中,mbPartIdx和 subMbPartIdx作为输入,并且输出被分配给(dx2,dy2)。

然后,针对视差矢量和视点间参考的推导处理被调用,在该推导处理中, DepthCurrPic、被设置为x1+dx1+dx2的dbx1、被设置为y1+dy1+dy2的dby1 以及listSuffixFlag作为输入,并且InterViewPic、偏移矢量dv以及变量 InterViewAvailable作为输出。

refIdxCorrespond和mvCorrespond可被如下设置。如果InterViewAvailable 等于0,则refIdxCorrespond被设置为-1并且mvCorrespond[0]和 mvCorrespond[1]均被设置为0。否则下面的步骤按顺序应用。

首先,变量luma4x4BlkIdx被获得为(4*mbPartIdx+subMbPartIdx)。逆 4x4亮度块扫描处理被调用,在该处理中,luma4x4BlkIdx作为输入并且(x,y) 作为输出。此外,(xCorrespond,yCorrespond)被设置为等于(x+(dv[0]>>4),y +(dv[1]>>4))且mbAddrCorrespond被设置为等于((CurrMbAddr/ PicWidthInMbs)+(dv[1]>>6))*PicWidthInMbs+(CurrMbAddr% PicWidthInMbs)+(dv[0]>>6)。

mbTypeCorrespond被设置为地址mbAddrCorrespond在画面InterViewPic 内部的宏块的语法元素mb_type。当mbTypeCorrespond等于P_8x8、P_8x8ref0 或B_8x8时,subMbTypeCorrespond被设置为地址mbAddrCorrespond在画面 InterViewPic内部的宏块的语法元素sub_mb_type。

mbPartIdxCorrespond被设置为相应分区的宏块分区索引并且 subMbPartIdxCorrespond被设置为相应子宏块分区的子宏块分区索引。用于宏块分区索引和子宏块分区索引的推导处理被调用,在该推导处理中,等于 (xCorrespond,yCorrespond)的亮度位置、等于mbTypeCorrespond的宏块类型以及当mbTypeCorrespond等于P_8x8、P_8x8ref0或B_8x8时子宏块类型的列表subMbTypeCorrespond作为输入。输出被分配给宏块分区索引 mbPartIdxCorrespond和子宏块分区索引subMbPartIdxCorrespond。

运动矢量mvCorrespond和参考索引refIdxCorrespond如下被获得。

如果宏块mbAddrCorrespond在帧内预测模式下被编码,则mvCorrespond 的分量被设置为等于0并且refIdxCorrespond被设置为等于–1。

否则(宏块mbAddrCorrespond未按照帧内预测模式被编码),预测利用标记predFlagLXCorrespond被设置为等于PredFlagLX[mbPartIdxCorrespond],画面InterViewPic的宏块分区mbAddrCorrespond\mbPartIdxCorrespond的预测利用标记。此外,应用以下内容。

当predFlagLXCorrespond等于1时,mvCorrespond和参考索引 refIdxCorrespond被分别设置为等于 MvLX[mbPartIdxCorrespond][subMbPartIdxCorrespond]和 RefIdxLX[mbPartIdxCorrespond]。 MvLX[mbPartIdxCorrespond][subMbPartIdxCorrespond]和 RefIdxLX[mbPartIdxCorrespond]是已被分配给画面InterViewPic内部的(子) 宏块分区mbAddrCorrespondmbPartIdxCorrespond\subMbPartIdxCorrespond的运动矢量mvLX和参考索引refIdxLX。

将描述针对用于B条带中的VSP跳过/直接宏块的亮度运动矢量的推导处理。

该处理的输出是运动矢量mvL0和mvL1以及参考索引refIdxL0和 refIdxL1。用于VSP跳过/直接宏块的参考索引refIdxLX被获得为在参考画面列表X中首先出现的合成画面分量。X由0或1来替换。当在参考画面列表 X中不存在合成画面时,refIdxLX被设置为等于0。运动矢量mvLX被设置为等于零运动矢量,其中,X用0或1来替换。

将描述用于亮度运动矢量的推导处理。该处理的输入如下:宏块分区索引mbPartIdx、子宏块分区索引subMbPartIdx、当前分区的参考索引refIdxLX (X为0或1)以及变量currSubMbType。

该处理的输出是运动矢量的mvLX(X为0或1)的预测mvpLX。子条款 J.8.4.1.3的说明书应用了以下改变。

如果对于任何N=A,B或C且X等于0或1,refIdxLX不等于refIdxLXN,则应用以下内容:

mbAddrN\mbPartIdxN\subMbPartIdxN被标记为不可用。refIdxLXN=-1、 mvLXN 0]=0并且mvLXN[1]=0

针对运动数据用于邻近块的推导处理被调用,在该推导处理中, mbPartIdx、subMbPartIdx、currSubMbType以及listSuffixFlag=X(对于 refIdxLX为refIdxL0或refIdxL1,X分别为0或1)作为输入,并且 mbAddrN\mbPartIdxN\subMbPartIdxN、参考索引refIdxLXN以及运动矢量 mvLXN(N用A、B或C来替换)作为输出。

否则,如果refIdxLX是对于视点间参考分量或仅视点间参考分量的参考索引,则针对中间亮度运动矢量预测的基于深度的推导处理被调用,在该推导处理中,mbAddrN\mbPartIdxN\subMbPartIdxN、mvLXN、refIdxLXN(N用 A、B或C来替换)以及refIdxLX作为输入。输出被分配给运动矢量预测因子mvpLX。

否则,如果refIdxLX是对于不是视点间参考分量或仅视点间参考分量的参考画面的参考索引,则针对中间亮度事件运动矢量预测的基于深度的推导处理被调用,在该推导处理中,mbAddrN\mbPartIdxN\subMbPartIdxN、mvLXN、 refIdxLXN(N用A、B或C来替换)以及refIdxLX作为输入。输出被分配给运动矢量预测因子mvpLX。

否则,如果MbPartWidth(mb_type)等于8,MbPartHeight(mb_type)等于 16,mbPartIdx等于mvpLX=mvLXCto 1并且refIdxLXC等于refIdxLX,则运动矢量预测因子mvpLX通过mvpLX=mvLXC来获得。

将描述针对中间亮度视点间运动矢量预测的基于深度的推导处理。该处理的输入是邻近分区mbAddrN\mbPartIdxN\subMbPartIdxN(N用A、B或C 来替换)、邻近分区的运动矢量mvLXN(N用A、B或C来替换)、邻近分区的参考索引refIdxLXN(N用A、B或C来替换)以及当前分区的参考索引 refIdxLX。该处理的输出是运动矢量预测mvpLX。

当分区mbAddrN\mbPartIdxN\subMbPartIdxN不可用或者refIdxLXN 不等于refIdxLX时,mvLXN如以下顺序的步骤所指定的来获得:

1、逆宏块扫描处理被调用,在该处理中,CurrMbAddr作为输入,并且输出被分配为(x1,y1)。

2、逆宏块分区扫描处理被调用,在该处理中,mbPartIdx作为输入,并且输出被分配为(dx1,dy1)。

3、逆子宏块分区扫描处理被调用,在该处理中,mbPartIdx和 subMbPartIdx作为输入,并且输出被分配为(dx2,dy2)。

4、当CorDepthFlag等于1时,对中间亮度运动矢量预测中的视点间运动矢量的修正处理被调用,在该处理中等于DepthRefPic的depthPic、等于x1的mbx1以及等于y1的mby1作为输入,并且输出被分配给运动矢量 mvLXN。

否则,当CorDepthFlag不等于0时,defaultDV被分配给运动矢量mvLXN。

运动矢量预测mvpLX的每个分量如下基于运动矢量mvLXA、mvLXB 和mvLXC的相应矢量分量的中值被确定。

[表13]

将描述针对中间亮度运动矢量预测中的视点间运动矢量的修正处理。该处理的输入包括深度参考视图分量depthPic以及当前宏块分区的左上样点的位置(dbx1,dby1)。该处理的输出是运动矢量mv。

假设refViewId是depthPic的view_id值。partHeight和partWidth被如下获得。

[表14]

运动矢量mv被如下获得。

[表15]

将描述针对中间亮度时间运动矢量预测的基于深度的推导处理。该处理的输入是邻近分区mbAddrN\mbPartIdxN\subMbPartIdxN(N用A、B或C 来替换)、邻近分区的运动矢量mvLXN(N用A、B或C来替换)、邻近分区的参考索引refIdxLXN(N用A、B或C来替换)以及当前分区的参考索引 refIdxLX。该处理的输出是运动矢量预测mvpLX。

当分区mbAddrN\mbPartIdxN\subMbPartIdxN不可用或者refIdxLXN不等于refIdxLX时,mvLXN如以下顺序的步骤所指定的来获得。

1、逆宏块扫描处理被调用,在该处理中,CurrMbAddr作为输入,并且输出被分配给(x1,y1)。

2、逆宏块分区扫描处理被调用,在该处理中,mbPartIdx作为输入下,并且输出被分配给(dx1,dy1)。

3、逆子宏块分区扫描处理被调用,在该处理中,mbPartIdx和 subMbPartIdx作为输入,并且输出被分配给(dx2,dy2)。

4、在子条款J.8.3.1.1中指定的处理被调用,在该处理中,被设置为DepthCurrPic的depthPic、被设置为x1的mbx1、被设置为y1的mby1以及 listSuffixFlag作为输入,并且InterViewPic、偏移矢量dv以及变量 InterViewAvailable作为输出。

5、refIdxCorrespond和mvCorrespond被如下设置。如果 InterViewAvailable等于0,则refIdxCorrespond被设置为-1并且mvCorrespond [0]和mvCorrespond[1]均被设置为0。

否则,以下步骤按顺序应用。首先,变量luma4x4BlkIdx被设置为 (4*mbPartIdx+subMbPartIdx)。逆4x4亮度块扫描处理被调用,在该处理中, luma4x4BlkIdx作为输入,并且(x,y)作为输出。此外,(xCorrespond, yCorrespond)被设置为等于(x+(dv[0]>>4),y+(dv[1]>>4))且 mbAddrCorrespond被设置为等于((CurrMbAddr/PicWidthInMbs)+(dv[1]>> 6))*PicWidthInMbs+(CurrMbAddr%PicWidthInMbs)+(dv[0]>>6)。 mbTypeCorrespond被设置为地址mbAddrCorrespond在画面InterViewPic内部的宏块的语法元素mb_type。当mbTypeCorrespond等于P_8x8、P_8x8ref0或 B_8x8时,subMbTypeCorrespond被设置为地址mbAddrCorrespond在画面 InterViewPic内部的宏块的语法元素sub_mb_type。mbPartIdxCorrespond被设置为相应分区的宏块分区索引,subMbPartIdxCorrespond被设置为相应子宏块分区的子宏块分区索引。针对宏块分区索引和子宏块分区索引的推导处理被调用,在该推导处理中,等于(xCorrespond,yCorrespond)的亮度位置、等于 mbTypeCorrespond的宏块类型以及当mbTypeCorrespond等于P_8x8、 P_8x8ref0或B_8x8时子宏块类型的列表subMbTypeCorrespond作为输入,并且输出是宏块分区索引mbPartIdxCorrespond以及子宏块分区索引 subMbPartIdxCorrespond。输出是宏块分区索引mbPartIdxCorrespond和子宏块分区索引subMbPartIdxCorrespond。

运动矢量mvCorrespond和参考索引refIdxCorrespond被如下获得。如果宏块mbAddrCorrespond在帧内预测模式下被编码,则mvCorrespond的分量被设置为等于0并且refIdxCorrespond被设置为等于–1。否则(宏块 mbAddrCorrespond未按照帧内预测模式被编码),预测利用标记predFlagLXCorrespond被设置为等于PredFlagLX[mbPartIdxCorrespond],画面 InterViewPic的宏块分区mbAddrCorrespond\mbPartIdxCorrespond的预测利用标记。此外,应用以下内容。

当predFlagLXCorrespond等于1时,mvCorrespond和参考索引 refIdxCorrespond被分别设置为等于 MvLX[mbPartIdxCorrespond][subMbPartIdxCorrespond]和 RefIdxLX[mbPartIdxCorrespond]。 MvLX[mbPartIdxCorrespond][subMbPartIdxCorrespond]和 RefIdxLX[mbPartIdxCorrespond]是已被分配给画面InterViewPic内部的(子) 宏块分区mbAddrCorrespondmbPartIdxCorrespond\subMbPartIdxCorrespond的运动矢量mvLX和参考索引refIdxLX。

6、运动矢量mvLXN基于下面的表来获得。

[表16]

运动矢量预测mvpLX的每个分量基于运动矢量mvLXA、mvLXB和 mvLXC的相应矢量分量的中值来确定。

[表17]

将描述针对视点间参考和视差矢量的推导处理。该处理的输入是深度参考视图分量depthPic、当前宏块的左上样点的位置(mbx1,mby1)以及listSuffixFlag。该处理的输出是画面InterViewPic、偏移矢量dv和变量 InterViewAvailable。

InterViewAvailable被设置为0。变量partHeight和partWidth被如下计算。

[表18]

以下表应用于获得视点间参考画面或仅视点间参考画面以及 InterViewPic,当listFuffixFlag为1或0时X被设置为1。

[表19]

当InterViewAvailabl等于1并且CorDepthFlag等于1时,变量refViewId 与InterViewPic的view_id相同,并且变量dv被设置为等于函数 DisparityForBlock(depthPic,(mbx1>>reduced_resolution_flag),(mby1>> reduced_resolution_flag),partWidth,partHeight,view_id,refViewId)的输出。

否则,当InterViewAvailable等于1并且CorDepthFlag等于0时,变量 refViewId被设置为等于InterViewPic的view_id,并且变量dv被设置为等于 defaultDV。

此外,如下所述,根据实施例的编码/解码方法可用于对3D图像进行编码和解码。将给出关于实施例的以下描述,在该描述中,当不存在与当前块相应的深度图像块时,最近编码/解码的视差矢量被用于当前块的运动矢量预测部分和视差矢量预测部分,并且当不存在最近编码/解码的视差矢量时,深度值被设置为128,该值通过使用相机参数被转换为视差矢量,并且该视差矢量被用于当前块的运动矢量预测部分和视差矢量预测部分。

本实施例可被类似地应用于以下实施例,其中,在该实施例中,当不存在与当前块相应的深度图像块时,深度值被设置为128,该值通过使用相机参数被转换为视差矢量,并且该视差矢量被用于当前块的运动矢量预测部分和视差矢量预测部分。然而,本实施例可具有以下不同。

视差矢量defaultDV被如下定义。

[表20]

此外,在针对中间亮度视点间运动矢量预测的基于深度的推导处理中,当CorDepthFlag等于0时,defaultD被如下设置。

[表21]

此外,前述根据实施例的编码/解码方法可如下所述被修改,并可用于对3D图像进行编码和解码。在3D视频解码处理中,当用于配置参考画面列表的3D-AVC解码处理被执行时,指示水平视差分量值的DvMBX可被设置为 0。

在执行3D-AVC帧间预测、视点间预测、视图合成预测和自适应亮度补偿的操作中,当Nal unit type为21,DepthFlag等于0,TextureFirstFlag等于 1,InterViewRefAvailable等于1并且dmvp_flag或seq_view_synthesis_flag等于1时,DvMBX被设置为0,并且基于宏块级别的邻近块的视差矢量推导处理被调用,在当前宏块的地址CurrMbAddr等于first_mb_in_slice时,第一宏块的地址在条带中。

当针对运动矢量分量和参考索引的推导处理获得了运动矢量mvL0和mvL1的推导时,如果TextureFirstFlag具有值0,则基于深度的视差值推导处理包括等于DepthCurrPic的depthPic、等于宏块分区mbPartIdx的左上样点的位置的(textureX,textureY)、等于宏块分区mbPartIdx的宽度的tBlWidth、等于宏块分区mbPartIdx的高度的tBlHeight、等于view_id的srcViewId、以及等于refIdxLX的view_id的refViewId作为输入,并且被分配给mvLX[0]和 mvLX[1]的输出被设置为0。

基于深度的视差矢量值推导处理可如下应用。

视差矢量值dispVal包括解码的深度视图分量depthPic、获得视差矢量值的纹理视图分量中的块的位置(textureX,textureY)、获得视差矢量值的纹理视图分量中的块的宽度tBlWidth和高度tBlHeight、获得视差矢量值的纹理视图分量的view_id值ViewId、以及针对视差矢量值的参考视图的view_id值 refViewId作为输入,并且输出可被如下计算。

首先,变量maxDepth可被如下指定。

[表22]

然后,变量dispVal可被如下指定。

[表23]

变量depthX、depthY、blWidth和blHeight可被如下计算。

[表24]

depth_hor_mult_minus1、depth_ver_mult_minus1、depth_hor_rsh和 depth_ver_rsh是用于基于深度的视差矢量推导的语法元素,并可从由编码设备产生的比特流获得。如果未找出所述值,则depth_hor_mult_minus1和depth_ver_mult_minus1可被用作1。depth_hor_rsh和depth_ver_rsh可被用作 0。

DepthCropLeftCoord、DepthCropRightCoord、DepthCropTopCoord和 DepthCropBottomCoord被如下计算。

[表25]

grid_pos_x[grid_pos_view_id[i]]表示针对纹理亮度样点单元中的亮度纹理采样网格的深度采样网格的水平偏移,grid_pos_y[grid_pos_view_id[i]] 表示针对纹理亮度样点单元中的亮度纹理采样网格的深度采样网格的垂直偏移。

在执行针对P条带和SP条带中的跳过宏块的亮度运动矢量的基于深度的推导处理中,当运动矢量mvL0和P_Skip宏块类型的refIdxL0被获得时,如果refIdxL0m等于-1,则参考索引refIdxL0可被设置为0。针对亮度运动矢量预测的推导处理可被执行,在该推导处理中,被设置为0的mbPartIdx、被设置为0的subMbPartIdx、refIdxL0和具有“na”的currSubMbType作为输入,并且mvL0作为输出。

在针对B_Skip、B_Direct_16x16和B_Direct_8x8的亮度运动矢量的推导处理中,如果参考索引refIdxL0和refIdxL1等于-1,则参考索引refIdxL0可被设置为0,并且针对亮度运动矢量的推导处理可被执行,在该推导处理中,被设置为0的mbPartIdx、被设置为0的subMbPartIdx、refIdxLX(X为0或 1)以及currSubMbType作为输入,并且mvLX作为输出。

针对视点间参考中的运动矢量的推导处理可如下应用。

该处理的输入是mbPartIdx、subMbPartIdx和listSuffixFlag,该处理的输出是运动矢量mvCorrespond和参考索引refIdxCorrespond。视点间参考画面 InterViewPic和偏移矢量dv可被如下获得。

如果TextureFirstFlag等于0,则以下步骤按顺序应用。

首先,逆宏块扫描处理被调用,在该处理中,CurrMbAddr作为输入,并且输出被分配给(x1,y1)。逆宏块扫描处理返回与输入地址相应的宏块的左上亮度样点的位置(s,y)。

然后,逆宏块分区扫描处理被调用,在该处理中,mbPartIdx作为输入,并且输出被分配给(dx1,dy1)。逆宏块分区扫描处理接收宏块分区的索引,并返回接收到的宏块的左上亮度样点的位置(x,y)。

然后,逆子宏块分区扫描处理被调用,在该处理中,mbPartIdx和 subMbPartIdx作为输入,并且输出被分配给(dx2,dy2)。逆子宏块分区扫描处理接收宏块分区的索引以及子宏块分区的索引,并返回接收到的子宏块的左上亮度样点的位置(x,y)。

以下表应用于获得视点间参考画面或仅视点间参考画面以及 InterViewPic,并应用于设置变量interViewAvailable。

[表26]

当interViewAvailable等于1时,基于深度的视差值推导处理被调用,在该推导处理中,等于DepthCurrPic的depthPic、等于x1+dx1+dx2的 textureX、等于y1+dy1+dy2的textureY、等于子宏块分区 CurrMbAddr\mbPartIdx\subMbPartIdx的宽度的tBlWidth、等于子宏块分区 CurrMbAddr\mbPartIdx\subMbPartIdx的高度的tBlHeight、等于view_id的 srcViewId、以及等于InterViewPic的view_id的refViewId作为输入,并且分配给dV[0]和dV[1]的输出被设置为0。

否则(TextureFirst Flag等于1),以下步骤按顺序应用。.

dV被设置为(DvMBX,0)并且interViewAvailable被设置为 InterViewRefAvailable。

当interViewAvailable等于1时,InterViewPic被设置为基本视图的纹理视图分量。

refIdxCorrespond和mvCorrespond被如下设置。

当interViewAvailable等于0时,refIdxCorrespond被设置为-1并且 mvCorrespond[0]和mvCorrespond[1]均被设置为0。

否则,以下步骤按顺序应用。

变量xCorrespond被设置为x1+7+(dV[0]>>2)并且变量yCorrespond 被设置为y1+7+(dV[1]>>2)。

变量mbAddrCorrespond被设置为((CurrMbAddr/PicWidthInMbs)+ (dV[1]>>6))*PicWidthInMbs+(CurrMbAddr%PicWidthInMbs)+(dV[0]>> 6)。

变量xRelative被设置为xCorrespond?((xCorrespond>>4)<<4)并且变量 yRelative被设置为yCorrespond?((yCorrespond>>4)<<4)。

mbTypeCorrespond被设置为地址mbAddrCorrespond在画面InterViewPic 内的宏块的语法元素mb_type。当mbAddrCorrespond等于P_8x8、P_8x8ref0、或B_8x8时,subMbTypeCorrespond被设置为地址mbAddrCorrespond在画面 InterViewPic内的宏块的语法元素sub_mb_type。

mbPartIdxCorrespond被设置为相应分区的宏块分区索引并且subMbPartIdxCorrespond被设置为相应子宏块分区的子宏块分区索引。如子条款6.4.13.4中所指定的针对宏块索引和子宏块索引的推导将等于 (xRelative,yRelative)的亮度位置、等于mbTypeCorrespond的宏块类型以及当 mbTypeCorrespond等于P_8x8、P_8x8ref0或B_8x8时的子宏块类型的列表 subMbTypeCorrespond用作输入,并且输出是宏块分区索引 mbPartIdxCorrespond和子宏块分区索引subMbPartIdxCorrespond。

运动矢量mvCorrespond和参考矢量refIdxCorrespond被如下获得。

如果宏块mbAddrCorrespond在帧内预测模式下被编码,则mvCorrespond 的所有分量被设置为等于0,并且refIdxCorrespond被设置为等于–1。

否则(宏块mbAddrCorrespond未按照帧内预测模式被编码),预测利用标记predFlagLXCorrespond被设置为等于PredFlagLX[mbPartIdxCorrespond],画面InterViewPic的宏块分区mbAddrCorrespond\mbPartIdxCorrespond的预测利用标记。此外,应用以下内容。

如果predFlagLXCorrespond等于1或者小于或等于 RefIdxLX[mbPartIdxCorrespond]num_ref_idx_lX_active_minus1,则 mvCorrespond和参考索引refIdxCorrespond被分别设置为 MvLX[mbPartIdxCorrespond][subMbPartIdxCorrespond]和 RefIdxLX[mbPartIdxCorrespond]。 MvLX[mbPartIdxCorrespond][subMbPartIdxCorrespond]和 RefIdxLX[mbPartIdxCorrespond]是已被分配给画面InterViewPic内部的(子) 宏块分区mbAddrCorrespondmbPartIdxCorrespond\subMbPartIdxCorrespond的运动矢量mvLX和参考索引refIdxLX。

用于亮度运动矢量预测的推导处理可被如下执行。该处理的输入是宏块分区索引mbPartIdx、子宏块分区索引subMbPartIdx、当前位置的参考索引 refIdxLX(X为0或1)、和变量currSubMbType。该处理的输出可包括运动矢量mvpLX的预测mvpLX(X为0或1)。

当针对亮度运动矢量预测的推导处理已被执行时,以下条件还可被进一步考虑。

如果对于任何N=A、B、或C,refIdxLX不等于refIdxLXN,则应用以下内容。

mbAddrN\mbPartIdxN\subMbPartIdxN被标记为不可用。

[表27]

当针对亮度视差矢量预测的推导处理被执行时,用于针对运动数据的邻近块的推导处理被调用,在该推导处理中,mbPartIdx、subMbPartIdx、 currSubMbType和listSuffixFlag=X(对于refIdxLX为refIdxL0或refIdxL1, X分别为0或1)作为输入,并且mbAddrN\mbPartIdxN\subMbPartIdxN、参考索引refIdxLXN和运动矢量mvLXN(N指A、B或C)作为输出。

在另一方面,当refIdxLX是视点间参考分量或仅视点间参考分量的参考索引时,在针对中间亮度运动预测的视点间运动矢量的修改处理中,用于中间亮度运动矢量预测的基于深度的推导处理被调用,在该推导处理中,mbAddrN\mbPartIdxN\subMbPartIdxN、mvLXN、refIdxLXN(N用A、B或C 来替换)以及refIdxLX作为输入,并且输出被分配给运动矢量预测因子mvpLX。

否则,当refIdxLX是不作为视点间参考分量或仅视点间参考分量的参考画面的参考索引时,在子条款J.8.2.1.7.2中的针对中间亮度时间运动矢量预测的基于深度的推导处理被调用,在该推导处理中,mbAddrN\mbPartIdxN\subMbPartIdxN、mvLXN、refIdxLXN(N用A、B或C 来替换)和refIdxLX作为输入,并且输出被分配给运动矢量预测因子mvpLX。

此外,当MbPartWidth(mb_type)等于8时,MbPartHeight(mb_type)等于 16,mbPartIdx等于mvpLX=mvLXCto 1,refIdxLXC等于refIdxLX。运动矢量预测因子mvpLX被获得为mvpLX=mvLXC。

在针对中间亮度运动矢量预测的基于深度的推导处理中,该处理的输入是邻近分区mbAddrN\mbPartIdxN\subMbPartIdxN(N用A、B或C来替换)、邻近分区的运动矢量mvLXN(N用A、B或C来替换)、邻近分区的参考索引 refIdxLXN(N用A、B或C来替换)以及当前分区的参考索引refIdxLX。该处理的输出是运动矢量预测mvpLX。

当分区mbAddrN\mbPartIdxN\subMbPartIdxN可用或者refIdxLXN不等于 refIdxLX时,mvLXN如以下顺序的步骤所指定的来获得。

如果TextureFirstFlag等于0,则以下步骤按顺序应用。

逆宏块扫描处理被调用,在该推导处理中,CurrMbAddr作为输入,并且输出被分配给(x1,y1)。

逆宏块分区扫描处理被调用,在该推导处理中,mbPartIdx作为输入,并且输出被分配给(dx1,dy1)。

逆子宏块分区扫描处理被调用,在该推导处理中,mbPartIdx和 subMbPartIdx作为输入,并且输出被分配给(dx2,dy2)。

中间亮度运动矢量预测中的视点间运动矢量的修正处理被调用,在该推导处理中,被设置为DepthRefPicList0[refIdxL0]的depthPic、被设置为x1的 mbx1以及被设置为y1的mby1作为输入,并且输出被分配给运动矢量 mvLXN。

另一方面,当TextureFirstFlag等于1时,mvLXN被设置为(DvMBX,0)。

运动矢量预测mvpLX的每个分量通过运动矢量mvLXA、mvLXB和 mvLXC的相应矢量分量的中值来给出。

[表28]

在针对中间亮度运动矢量预测的视点间运动矢量的修改处理中,输入包括深度参考视图分量depthPic以及当前宏块的左上样点的位置(mbx1, mby1),输出包括运动矢量mv。此时,refViewId可被设置为depthPic的view_id 值。基于深度的视差矢量值推导处理可被调用,在该推导处理中,等于 DepthCurrPic的depthPic、等于mbx1的textureX、等于mby1的textureY、等于16的tBlWidth、等于16的tBlHeight、等于view_id的srcViewId以及等于 refViewId的refViewId作为输入,并且输出被分配给mv[0]。mv[1]被设置为 0。

在针对中间亮度时间运动矢量预测的基于深度的推导处理中,该处理的输入是邻近分区mbAddrN\mbPartIdxN\subMbPartIdxN(N用A、B或C来替换)、邻近分区的运动矢量mvLXN(N用A、B或C来替换)、邻近分区的参考索引refIdxLXN(N用A、B或C来替换)以及当前分区的参考索引refIdxLX。该处理的输出可包括运动矢量预测mvpLX。

当分区mbAddrN\mbPartIdxN\subMbPartIdxN可用或者refIdxLXN不等于refIdxLX时,mvLXN可如以下顺序的步骤所指示的来获得。

1、当TextureFirstFlag等于0时,逆宏块扫描处理被调用,在该处理中, CurrMbAddr作为输入,并且输出被分配给(x1,y1)。

2、当TextureFirstFlag等于0时,逆宏块分区扫描处理被调用,在该处理中,mbPartIdx作为输入,并且输出被分配给(dx1,dy1)。

3、当TextureFirstFlag等于0时,逆子宏块分区扫描处理被调用,在该处理中,mbPartIdx和subMbPartIdx作为输入,并且输出被分配给(dx2,dy2)。

4、当TextureFirstFlag等于0时,针对视点间和视差矢量以及参考的推导处理被调用,在该推导处理中,被设置为DepthCurrPic的depthPic、被设置为x1的mbx1、被设置为y1的mby1以及listSuffixFlag作为输入,并且 InterViewPic、偏移矢量dV以及变量interViewAvailable被输出。

5、当TextureFirstFlag等于1时,dV被设置为等于(DvMBX,0)并且变量interViewAvailable被设置为等于InterViewRefAvailable。

6、refIdxCorrespond和mvCorrespond被如下设置。

当interViewAvailable等于0时,refIdxCorrespond被设置为-1. mvCorrespond[0]和mvCorrespond[1]均被设置为0。

否则,以下步骤按顺序应用。

变量luma4x4BlkIdx被设置为值(4*mbPartIdx+subMbPartIdx)。

逆4x4亮度块扫描处理被调用,在该处理中,luma4x4BlkIdx作为输入,并且(x,y)作为输出。此外,(xCorrespond,yCorrespond)被设置为等于(x+(dV[0] >>4),y+(dV[1]>>4))并且mbAddrCorrespond被设置为等于((CurrMbAddr /PicWidthInMbs)+(dV[1]>>6))*PicWidthInMbs+(CurrMbAddr% PicWidthInMbs)+(dV[0]>>6)。

mbTypeCorrespond被设置为地址mbAddrCorrespond在画面InterViewPic 内的宏块的语法元素mb_type。当mbTypeCorrespond等于P_8x8、P_8x8ref0 或B_8x8时,subMbTypeCorrespond被设置为地址mbAddrCorrespond在画面 InterViewPic内部的宏块的语法元素sub_mb_type。

mbPartIdxCorrespond被设置为相应分区的宏块分区索引,并且 subMbPartIdxCorrespond被设置为相应子宏块分区的子宏块分区索引。如子条款6.4.12.4中所指定的针对宏块索引和子宏块索引的推导将等于(xCorrespond, yCorrespond)的亮度位置、等于mbTypeCorrespond的宏块类型、以及当 mbTypeCorrespond等于P_8x8、P_8x8ref0或B_8x8时的子宏块类型的列表 subMbTypeCorrespond用作输入,并且输出是宏块分区索引 mbPartIdxCorrespond以及子宏块分区索引subMbPartIdxCorrespond。

运动矢量mvCorrespond和参考索引refIdxCorrespond被如下获得。如果宏块mbAddrCorrespond按照帧内预测模式被编码,则mvCorrespond的分量被设置为等于0并且refIdxCorrespond被设置为等于-1。否则(宏块 mbAddrCorrespond未按照帧内预测模式被编码),预测利用标记 predFlagLXCorrespond被设置为等于PredFlagLX[mbPartIdxCorrespond],画面 InterViewPic的宏块分区mbAddrCorrespond\mbPartIdxCorrespond的预测利用标记。

此外,当predFlagLXCorrespond等于1时,mvCorrespond和参考索引 refIdxCorrespond被分别设置为 MvLX[mbPartIdxCorrespond][subMbPartIdxCorrespond]和RefIdxLX[mbPartIdxCorrespond]。

MvLX[mbPartIdxCorrespond][subMbPartIdxCorrespond]和 RefIdxLX[mbPartIdxCorrespond]是已被分配给画面InterViewPic内部的(子) 宏块分区mbAddrCorrespondmbPartIdxCorrespond\subMbPartIdxCorrespond的运动矢量mvLX和参考索引refIdxLXd。

7、运动矢量mvLXN被如下获得。

当refIdxCorrespond等于refIdxLX时,应用以下内容。

[表29]

否则,应用以下内容。

[表30]

8、对于mvpLX[0]和mvpLX[1]的推导,应用以下等式。

[表31]

针对视差矢量和视点间参考的推导处理可如下应用。

该处理的输入包括深度参考视图分量depthPic、当前宏块的左上样点的位置(mbx1,mby1)以及listSuffixFlag,该处理的输出包括画面InterViewPic、偏移矢量dV和变量interViewAvailable。

变量InterViewAvailable被设置为0。

以下算法应用于获得视点间参考画面或仅视点间参考画面以及InterViewPic,当listFuffixFlag为1或0时X被设置为1。

[表32]

当interViewAvailable等于1时,基于深度的视差矢量值推导处理被调用,在该推导处理中,等于DepthCurrPic的depthPic、等于mbx1的textureX、等于mby1的textureY、等于16的tBlWidth、等于16的tBlHeight、等于view_id 的srcViewId以及等于refViewId的refViewId作为输入,并且输出被分配给 dV。

图6是用于详细描述根据实施例的编码设备的操作的示图。

具体地讲,图6示出编码设备对彩色图像进行编码的处理。根据实施例,编码设备对彩色图像进行编码的处理如下。编码设备可接收彩色图像(610) 并选择编码模式(645)。编码设备可基于选择的编码模式确定彩色图像与通过基于块的预测(块预测)获得的预测图像之前的残差信号。编码设备可对残差信号执行变换(615)、量化(620)和熵编码(625)。

基于块的预测处理可包括用于减少时间冗余的时间预测和用于减少视点间冗余的视点间预测。

去块滤波处理(675)可被执行以用于下一彩色图像中的精确预测。为了执行去块滤波处理(675),可对量化的图像(620)执行反量化处理(630) 和逆变换处理(635)。通过去块滤波处理(675)产生的参考图像可被存储并在对下一彩色图像编码的处理中使用。

编码设备可执行用于通过帧内预测(650)、运动预测/补偿(655)或视差预测/补偿(655)去除时间冗余和视点间冗余的预测处理。编码设备可执行运动预测/补偿(655)和视差预测/补偿(660)。编码设备可基于用于运动预测/补偿(655)的相机参数(640),执行将深度信息(670)(例如,深度值)转换为视差信息(例如,视差矢量)的处理(665),并执行通过使用视差信息进行运动预测/补偿的处理(655)。可选择地,编码设备可执行通过使用预设用于运动预测/补偿(655)的深度值的信息或全局视差矢量的信息来执行运动预测/补偿的处理(655)的处理。

可选择地,编码设备可执行基于用于视差预测/补偿(660)的相机参数 (640)将深度信息(670)(例如,深度值)转换为视差信息(例如,视差矢量)的处理(665),以及执行视差预测/补偿(660)的处理。可选择地,如上所述,编码设备可执行通过使用预设用于视差预测/补偿(660)的深度值的信息或全局视差矢量的信息来进行视差预测/补偿(660)的处理。

因为通过基于块的预测获得的预测图像与源图像最相似,因此残差信号的量可减少并且编码和产生的比特的数量可相应减少。因此,运动预测/补偿 (655)和视差预测/补偿(660)的处理对于有效编码3D视频来说是重要的。

编码设备可通过使用在运动预测/补偿(655)期间预设的深度值的信息、全局视差矢量的信息、邻近块的运动矢量信息、关于不同视点的彩色图像的编码信息或与当前块相应的深度图像,来执行当前块的运动预测/补偿(655) 的处理。此外,如上所述,编码设备可通过使用在视差预测/补偿(660)期间预设的深度值的信息、全局视差矢量的信息、邻近块的视差矢量信息、关于不同视点的彩色图像的编码信息或与当前块相应的深度图像,来执行当前块的视差预测/补偿(660)的处理。

图7是用于详细描述根据实施例的解码设备的操作的示图。

解码设备可按照相反顺序执行图6的编码设备的操作,以便对编码的比特流进行解码并输出彩色图像。根据实施例,解码设备对编码的3D图像数据进行解码的处理如下。解码设备可接收(705)包括编码的3D图像数据的比特流并执行熵解码(710)。

然后,解码设备可执行反量化(715)和逆变换(720)并选择解码模式 (740)。解码设备可根据选择的解码模式,通过帧内预测(745)、运动预测/ 补偿(750)或视差预测/补偿(755)对比特流进行有效解码。

解码设备可执行运动预测/补偿(750)和视差预测/补偿(755)。解码设备可执行基于用于运动预测/补偿(750)的相机参数(735)将深度信息(765) 转换为视差信息的处理(760),并执行通过使用视差信息进行运动预测/补偿 (750)的处理。可选择地,解码设备可执行通过使用预设用于运动预测/补偿(750)的深度值的信息或全局视差矢量的信息来执行运动预测/补偿(750) 的处理。

可选择地,解码设备可执行基于用于视差预测/补偿(755)的相机参数 (735)将深度信息(765)转换为视差信息的处理(760),并执行视差预测/ 补偿(755)的处理。可选择地,解码设备可执行通过使用预设用于视差预测 /补偿(755)的深度值的信息或全局视差矢量的信息来执行视差预测/补偿(755) 的处理。

如上所述,解码设备可通过使用在运动预测/补偿(750)期间预设的深度值的信息、全局视差矢量的信息、邻近块的运动矢量信息、关于不同视点的彩色图像的解码信息或与当前块相应的深度图像,来执行当前块的运动预测/补偿(750)的处理。此外,图像处理设备可通过使用在视差预测/补偿(755) 期间预设的深度值的信息、全局视差矢量的信息、邻近块的视差矢量信息、关于不同视点的彩色图像的解码信息或与当前块相应的深度图像,来执行当前块的视差预测/补偿(755)的处理。

去块滤波处理(725)可被执行以用于对下一彩色图像进行解码。通过去块滤波处理(725)产生的参考图像可被存储并在对下一彩色图像进行解码的处理中使用。

由视频编码设备和视频解码设备执行的视频编码方法和视频解码方法可被用于在层间视频解码设备和层间视频解码方法中对层间视频进行编码和解码。

根据各种实施例的层间视频编码设备可根据可伸缩编码针对每层对多个图像序列进行分类和编码,并可输出包括针对每层编码的数据的单独的流。层间视频编码设备可根据不同层对第一层图像序列和第二层图像序列进行编码。

第一层编码器可对第一层图像进行编码,并可输出包括第一层图像的编码数据的第一层流。

第二层编码器可对第二层图像进行编码,并可输出包括第二层图像的编码数据的第二层流。

例如,根据基于空间可伸缩性的可伸缩视频编码,低分辨率图像可被编码为第一层图像,高分辨率图像可被编码为第二层图像。第一层图像的编码结果可在第一层流中被输出。第二层图像的编码结果可在第二层流中被输出。

作为另一示例,可根据可伸缩视频编码对多视点视频进行编码。左视点图像可被编码为第一层图像,右视点图像可被编码为第二层图像。可选择地,中心视点图像、左视点图像和右视点图像可被编码。在它们之中,中心视点图像可被编码为第一层图像,左视点图像可被编码为第一第二层图像,右视点图像可被编码为第二第二层图像。

作为另一示例,可根据基于时间可伸缩性的时间分层预测来执行可伸缩视频编码。可输出包括通过对基本帧率的图像进行编码而产生的编码信息的第一层流。时间级可针对每个帧率被分类,并可在层中被分别编码。可通过进一步参考基本帧率的图像对高帧率的图像进行编码来输出包括高速帧率的编码信息的第二层流。

可对第一层和多个第二层执行可伸缩视频编码。在存在三个或更多个第二层的情况下,可对第一层图像、第一第二层图像、第二第二层图像、…、第K第二层图像进行编码。因此,第一层图像的编码结果可在第一层流中被输出,第一第二层图像、第二第二层图像、…、第K第二层图像的编码结果可分别在第一第二层流、第二第二层流、…、第K第二层流中被输出。

根据各种实施例的层间视频编码设备可通过参考单个层的图像来执行对当前图像进行预测的帧间预测。通过帧间预测可产生指示当前图像和参考图像之间的运动信息的运动矢量以及当前图像和参考图像之间的残差。

层间视频编码设备可通过参考第一层图像来执行对第二层图像进行预测的层间预测。

当根据实施例的层间视频编码设备10允许三层或更多层(诸如第一层、第二层、第三层等)时,层间视频编码设备10可根据多层预测结构执行第一层图像和第三层图像之间的层间预测以及第二层图像和第三层图像之间的层间预测。

通过层间预测可产生当前图像和不同层的参考图像之间的位置差分量以及当前图像和不同层的参考图像之间的残差。

根据各种实施例的层间视频编码设备根据每个层针对各个块对每个视频图像进行编码。块可具有正方形形状、矩形形状或任意几何形状,并且不限于具有预定尺寸的数据单元。块可以是根据树结构的编码单元之中的最大编码单元、编码单元、预测单元、变换单元等。包括具有树结构的编码单元的最大编码单元被不同地称为编码块单元、块树、根块树、编码树、编码根或树干。现在将参照图8至图20描述基于具有树结构的编码单元的视频编码和解码方法。

在根据实施例的编码设备和根据实施例的层间视频解码设备中,视频数据可被划分为具有树结构的编码单元,并且编码单元、预测单元和变换单元被用于对编码单元进行层间预测或帧间预测。以下,将参照图8至图20描述根据实施例的基于具有树结构的编码单元的视频编码方法和设备以及视频解码方法和设备。

原则上,在对多层视频进行编码/解码期间,单独地执行对第一层图像的编码/解码处理和对第二层图像的编码/解码处理。也就是说,当对多层视频执行层间预测时,单层视频的编码/解码结果被彼此参考,但是对各个单层视频执行单独的编码/解码处理。

为了更于描述,由于将参照图8至图20描述的基于根据树结构的编码单元的视频编码处理和视频解码处理是对单层视频执行的,因此将仅描述帧间预测和运动补偿。

因此,当根据实施例的层间视频编码设备的视差矢量确定器基于根据树结构的编码单元对多层视频进行编码时,为了针对各个单视点视频对视频进行编码,层间视频编码设备包括与多层视频的层数一样多的图8的视频编码设备800以对视频进行编码,使得每个视频编码设备800可被控制为对被分配的单层视频进行编码。另外,层间视频编码设备可通过使用每个视频编码设备800的单独的单视点的编码结果来执行视点间预测。因此,层间视频编码设备的视差矢量确定器可针对各个分层产生记录有各层的编码结果的基本层视频流和第二层视频流。

类似地,当根据实施例的层间视频解码设备的候选列表确定器基于根据树结构的编码单元对多层视频进行解码时,为了针对各个层对接收到的基本层视频流和第二层视频流进行解码,层间视频解码设备可包括与多视点视频的层数一样多的图9的视频解码设备900,视频解码设备900可被控制为对分别被分配到视频解码设备900的单层视频执行解码。另外,层间视频解码设备可通过使用每个视频解码设备900的单独的单层的编码结果来执行视点间补偿。因此,层间视频解码设备的候选列表确定器可产生针对各个层而重构的第一层图像和第二层图像。

图8是根据一个或更多个实施例的基于根据树结构的编码单元的视频编码设备800的框图。

涉及基于根据树结构的编码单元执行视频预测的视频编码设备800包括LCU划分器810、编码单元确定器820和输出器830。

LCU划分器810可基于图像的当前画面的LCU来对当前画面进行划分,其中,LCU是具有最大尺寸的编码单元。如果当前画面大于LCU,则可将当前画面的图像数据划分为至少一个LCU。根据一个或更多个实施例的LCU可以是尺寸为32×32、64×64、128×128、256×256等的数据单元,其中,数据单元的形状是宽度和长度为2的若干次方的正方形。图像数据可根据至少一个LCU被输出到编码单元确定器820。

根据一个或更多个实施例的编码单元可由最大尺寸和深度表征。深度表示编码单元从LCU被空间划分的次数,并且随着深度加深,根据深度的较深层编码单元可从LCU被划分到最小编码单元(SCU)。LCU的深度为最高深度, SCU的深度为最低深度。由于随着LCU的深度加深,与每个深度相应的编码单元的尺寸减小,因此与更高深度相应的编码单元可包括多个与更低深度相应的编码单元。

如上所述,当前画面的图像数据根据编码单元的最大尺寸被划分为LCU,并且每个LCU可包括根据深度被划分的较深层编码单元。由于根据深度对根据一个或更多个实施例的LCU进行划分,因此可根据深度对包括在LCU中的空间域的图像数据进行分层地分类。

可预先确定编码单元的最大深度和最大尺寸,其中,所述最大深度和最大尺寸限制对LCU的高度和宽度被分层划分的总次数。

编码单元确定器820对通过根据深度对LCU的区域进行划分而获得的至少一个划分区域进行编码,并且根据所述至少一个划分区域来确定用于输出最终编码的图像数据的深度。换句话说,编码单元确定器820通过根据当前画面的LCU以根据深度的较深层编码单元对图像数据进行编码,并选择具有最小编码误差的深度,来确定深度。确定的深度和根据确定的深度的被编码的图像数据被输出到输出器830。

基于与等于或低于最大深度的至少一个深度相应的较深层编码单元,对 LCU中的图像数据进行编码,并且基于每个较深层编码单元比较对图像数据进行编码的结果。在对较深层编码单元的编码误差进行比较之后,可选择具有最小编码误差的深度。可针对每个LCU选择至少一个深度。

随着编码单元根据深度而被分层地划分并且编码单元的数量增加,LCU 的尺寸被划分。另外,即使在一个LCU中编码单元与同一深度相应,也通过分别测量每个编码单元的图像数据的编码误差来确定是否将与同一深度相应的每个编码单元划分到更低深度。因此,即使图像数据被包括在一个LCU中,在一个LCU中编码误差可根据区域而不同,因此在图像数据中深度可根据区域而不同。因此,可在一个LCU中确定一个或更多个深度,并且可根据至少一个深度的编码单元来对LCU的图像数据进行划分。

因此,编码单元确定器820可确定包括在LCU中的具有树结构的编码单元。根据一个或更多个实施例的“具有树结构的编码单元”包括LCU中所包括的所有较深层编码单元中的与确定为深度的深度相应的编码单元。可在LCU 的相同区域中根据深度来分层地确定具有深度的编码单元,并可在不同区域中独立地确定具有深度的编码单元。类似地,可独立于另一区域中的深度而确定当前区域中的深度。

根据一个或更多个实施例的最大深度是与从LCU到SCU进行划分的次数有关的索引。根据一个或更多个实施例的第一最大深度可表示从LCU到SCU 的总划分次数。根据一个或更多个实施例的第二最大深度可表示从LCU到SCU 的深度等级的总数。例如,当LCU的深度是0时,对LCU划分一次的编码单元的深度可被设置为1,对LCU划分两次的编码单元的深度可被设置为2。这里,如果SCU是对LCU划分四次的编码单元,则存在深度0、1、2、3和4的 5个深度等级,并且因此第一最大深度可被设置为4,第二最大深度可被设置为5。

可根据LCU执行预测编码和变换。还根据LCU,基于根据等于或小于最大深度的深度的较深层编码单元来执行预测编码和变换。

由于每当根据深度对LCU进行划分时,较深层编码单元的数量增加,因此对随着深度加深而产生的所有较深层编码单元执行包括预测编码和变换的编码。为了便于描述,在LCU中,现在将基于当前深度的编码单元来描述预测编码和变换。

视频编码设备100可不同地选择用于对图像数据进行编码的数据单元的尺寸或形状。为了对图像数据进行编码,执行诸如预测编码、变换和熵编码的操作,此时,可针对所有操作使用相同的数据单元,或者可针对每个操作使用不同的数据单元。

例如,视频编码设备800不仅可选择用于对图像数据进行编码的编码单元,还可选择不同于编码单元的数据单元,以便对编码单元中的图像数据执行预测编码。

为了在LCU中执行预测编码,可基于与深度相应的编码单元(即,基于不再被划分成与更低深度相应的编码单元的编码单元)来执行预测编码。以下,不再被划分且成为用于预测编码的基本单元的编码单元现在将被称为“预测单元”。通过划分预测单元获得的分区可包括预测单元或通过对预测单元的高度和宽度中的至少一个进行划分而获得的数据单元。分区是通过对编码单元的预测单元进行划分而获得的数据单元,预测单元可以是与编码单元具有相同的尺寸的分区。

例如,当2N×2N(其中,N是正整数)的编码单元不再被划分,并且成为2N×2N的预测单元时,分区的尺寸可以是2N×2N、2N×N、N×2N或N×N。分区模式的示例包括通过对预测单元的高度或宽度进行对称地划分而获得的对称分区、通过对预测单元的高度或宽度进行非对称地划分(诸如,1:n或 n:1)而获得的分区、通过对预测单元进行几何地划分而获得的分区、以及具有任意形状的分区。

预测单元的预测模式可以是帧内模式、帧间模式和跳过模式中的至少一个。例如,可对2N×2N、2N×N、N×2N或N×N的分区执行帧内模式或帧间模式。另外,可仅对2N×2N的分区执行跳过模式。可对编码单元中的一个预测单元独立地执行编码,从而选择具有最小编码误差的预测模式。

视频编码设备800不仅可基于用于对图像数据进行编码的编码单元还可基于与编码单元不同的数据单元,来对编码单元中的图像数据执行变换。为了在编码单元中执行变换,可基于具有小于或等于编码单元的尺寸的数据单元来执行变换。例如,用于变换的数据单元可包括针对帧内模式的数据单元和针对帧间模式的数据单元。

按照与根据树结构的编码单元类似的方式,编码单元中的变换单元可被递归地划分为更小尺寸的区域。因此,可基于变换深度根据具有树结构的变换单元,对编码单元中的残差进行划分。

还可在变换单元中设置变换深度,其中,变换深度指示通过对编码单元的高度和宽度进行划分以达到变换单元所进行的划分的次数。例如,在2N× 2N的当前编码单元中,当变换单元的尺寸是2N×2N时,变换深度可为0,当变换单元的尺寸是N×N时,变换深度可为1,当变换单元的尺寸是N/2×N/2 时,变换深度可为2。换句话说,可根据变换深度设置具有树结构的变换单元。

根据与深度相应的编码单元的编码信息不仅需要关于该深度的信息,还需要关于与预测编码和变换相关的信息的信息。因此,编码单元确定器820 不仅确定具有最小编码误差的深度,还确定预测单元中的分区模式、根据预测单元的预测模式和用于变换的变换单元的尺寸。

稍后将参照图7至图19详细描述根据一个或更多个实施例的LCU中的根据树结构的编码单元以及确定预测单元/分区和变换单元的方法。

编码单元确定器820可通过使用基于拉格朗日乘数的率失真优化,来测量根据深度的较深层编码单元的编码误差。

输出器830在比特流中输出LCU的图像数据和关于根据深度的编码模式的信息,其中,所述LCU的图像数据基于由编码单元确定器820确定的至少一个深度被编码。

可通过对图像的残差进行编码来获得编码的图像数据。

关于根据深度的编码模式的信息可包括关于深度的信息、关于预测单元中的分区模式的信息、关于预测模式的信息和关于变换单元的尺寸的信息。

可通过使用根据深度的划分信息来定义关于深度的信息,其中,根据深度的划分信息指示是否对更低深度而不是当前深度的编码单元执行编码。如果当前编码单元的当前深度是所述深度,则对当前编码单元中的图像数据进行编码并输出,因此划分信息可被定义为不将当前编码单元划分到更低深度。可选择地,如果当前编码单元的当前深度不是所述深度,则对更低深度的编码单元执行编码,因此划分信息可被定义为对当前编码单元进行划分来获得更低深度的编码单元。

如果当前深度不是所述深度,则对作为被划分到更低深度的编码单元的编码单元执行编码。由于更低深度的至少一个编码单元存在于当前深度的一个编码单元中,因此对更低深度的每个编码单元重复执行编码,并且因此可对具有相同深度的编码单元递归地执行编码。

由于针对一个LCU确定具有树结构的编码单元,并且针对具有深度的编码单元确定关于至少一个编码模式的信息,所以可针对一个LCU确定关于至少一个编码模式的信息。另外,由于根据深度对图像数据进行分层划分,因此LCU的图像数据的深度可根据位置而不同,因此可针对图像数据设置划分信息。

因此,输出器830可将相应的划分信息分配给包括在LCU中的编码单元、预测单元和最小单元中的至少一个。

根据一个或更多个实施例的最小单元是通过将构成最低深度的SCU划分为4份而获得的方形数据单元。可选择地,根据实施例的最小单元可以是可包括在LCU中所包括的所有编码单元、预测单元、分区单元和变换单元中的最大方形数据单元。

例如,通过输出器830输出的编码信息可被分类为根据较深层编码单元的编码信息和根据预测单元的编码信息。根据较深层编码单元的编码信息可包括关于预测模式的信息和关于分区尺寸的信息。根据预测单元的编码信息可包括关于帧间模式的估计方向的信息、关于帧间模式的参考图像索引的信息、关于运动矢量的信息、关于帧内模式的色度分量的信息、以及关于帧内模式的插值方法的信息。

根据画面、条带或GOP定义的关于编码单元的最大尺寸的信息和关于最大深度的信息可被插入到比特流的头、序列参数集或画面参数集。

还可通过比特流的头、序列参数集或画面参数集输出关于针对当前视频允许的变换单元的最大尺寸的信息和关于变换单元的最小尺寸的信息。输出器830可对与以上参照图1a至图14描述的SAO操作相关的SAO参数进行编码和输出。

在视频编码设备800中,较深层编码单元可以是通过将更高深度(更高一层)的编码单元的高度或宽度划分成两份而获得的编码单元。换句话说,在当前深度的编码单元的尺寸是2N×2N时,更低深度的编码单元的尺寸是 N×N。另外,尺寸为2N×2N的当前深度的编码单元可包括最多4个更低深度的编码单元。

因此,视频编码设备800可基于考虑当前画面的特征而确定的LCU的尺寸和最大深度,通过针对每个LCU确定具有最优形状和最优尺寸的编码单元来形成具有树结构的编码单元。另外,由于可通过使用各种预测模式和变换中的任意一个对每个LCU执行编码,因此可考虑各种图像尺寸的编码单元的特征来确定最优编码模式。

因此,如果以传统宏块对具有高分辨率或大数据量的图像进行编码,则每个画面的宏块的数量极度增加。因此,针对每个宏块产生的压缩信息的条数增加,因此难以发送压缩的信息,并且数据压缩效率降低。然而,通过使用视频编码设备800,由于考虑图像的尺寸,在增加编码单元的最大尺寸的同时,考虑图像的特征来调整编码单元,因此可增加图像压缩效率。

包括参照图1a描述的结构的层间视频编码设备可包括与层数一样多的视频编码设备800,以针对多层视频的各个层对单层图像进行编码。例如,视差矢量确定器可包括单个视频编码设备800,运动信息获得器可包括与附加视点的数量一样多的视频编码设备800。

当视频编码设备800对第一层图像进行编码时,编码单元确定器820可针对每个最大编码单元的各个根据树结构的编码单元,确定用于帧间预测的预测单元,并可针对各个预测单元执行帧间预测。

当视频编码设备800对第二层图像进行编码时,编码单元确定器820也可针对每个最大编码单元确定预测单元和根据树结构的编码单元,并可针对各个预测单元执行帧间预测。

视频编码设备800可对第一层图像和第二层图像之间的亮度差进行编码以对亮度差进行补偿。然而,可根据编码单元的编码模式来确定是否执行亮度补偿。例如,可仅对2N×2N的预测单元执行亮度补偿。

图9是根据一个或更多个实施例的基于具有树结构的编码单元的视频解码设备900的框图。

涉及基于具有树结构的编码单元的视频预测的视频解码设备900包括接收器910、图像数据和编码信息提取器920和图像数据解码器930。

用于视频解码设备900的解码操作的各种术语(诸如编码单元、深度、预测单元、变换单元和关于各种编码模式的信息)的定义与参照图8和视频编码设备800描述的定义相同。

接收器910接收和解析编码视频的比特流。图像数据和编码信息提取器 920从解析的比特流针对每个编码单元提取编码图像数据,并将提取的图像数据输出到图像数据解码器930,其中,编码单元具有根据每个LCU的树结构。图像数据和编码信息提取器920可从关于当前画面的头、序列参数集或画面参数集提取关于当前画面的编码单元的最大尺寸的信息。

另外,图像数据和编码信息提取器920从解析的比特流,根据每个LCU,提取具有树结构的编码单元的划分信息和编码信息。提取的划分信息和编码信息被输出到图像数据解码器930。换句话说,比特流中的图像数据被划分为LCU,使得图像数据解码器930针对每个LCU对图像数据进行解码。

可针对与深度相应的至少一条划分信息设置根据LCU的划分信息和编码信息,根据深度的编码信息可包括关于与深度相应的相应编码单元的分区模式的信息、关于预测模式的信息和变换单元的划分信息。另外,根据深度的划分信息可被提取作为关于最终深度的信息。

由图像数据和编码信息提取器920提取的根据每个LCU的划分信息和编码信息是这样的划分信息和编码信息:该划分信息和编码信息被确定为在编码器(诸如,视频编码设备800)根据每个LCU对根据深度的每个较深层编码单元重复地执行编码时产生最小编码误差。因此,视频解码设备900可通过根据产生最小编码误差的深度和编码模式对图像数据进行解码来重构图像。

由于划分信息和编码信息可被分配给相应的编码单元、预测单元和最小单元中的预定数据单元,因此图像数据和编码信息提取器920可根据预定数据单元提取划分信息和编码信息。如果相应LCU的划分信息和编码信息根据预定数据单元被记录,则可将被分配了相同的划分信息和编码信息的预定数据单元推断为是包括在同一LCU中的数据单元。

图像数据解码器930基于根据LCU的划分信息和编码信息,通过对每个 LCU中的图像数据进行解码来重构当前画面。换句话说,图像数据解码器930 可基于提取出的关于包括在每个LCU中的具有树结构的编码单元之中的每个编码单元的分区模式、预测模式和变换单元的信息,对编码的图像数据进行解码。解码处理可包括预测(包含帧内预测和运动补偿)和逆变换。

图像数据解码器930可基于关于根据深度的编码单元的预测单元的分区模式和预测模式的信息,根据每个编码单元的分区和预测模式执行帧内预测或运动补偿。

另外,为了对每个LCU执行逆变换,图像数据解码器930可读取关于每个编码单元的根据树结构的变换单元的信息,从而基于每个编码单元的变换单元执行逆变换。通过逆变换,可重构编码单元的空间域的像素值。

图像数据解码器930可通过使用根据深度的划分信息来确定当前LCU的最终深度。如果划分信息指示图像数据在当前深度中不再被划分,则当前深度是最终深度。因此,图像数据解码器930可针对与所述深度相应的每个编码单元,通过使用关于预测单元的分区模式的信息、关于预测模式的信息和变换单元的划分信息,对当前LCU中的编码数据进行解码。

换句话说,可通过观察分配给编码单元、预测单元和最小单元中的预定数据单元的编码信息集来收集包含包括相同划分信息的编码信息的数据单元,并且收集的数据单元可被认为是将由图像数据解码器930以相同编码模式进行解码的一个数据单元。这样,针对每个编码单元,可通过获得关于编码模式的信息来对当前编码单元进行解码。

包括参照图2a描述的结构的层间视频解码设备可包括与视点数一样多的视频解码设备900,以便对接收到的第一层图像流和第二层图像数据进行解码以重构第一层图像和第二层图像。

当接收到第一层图像流时,视频解码设备900的图像数据解码器930可将由图像数据和编码信息提取器920从第一层图像流提取的第一层图像的样点划分为最大编码单元的根据树结构的编码单元。图像数据解码器930可针对第一层图像的样点的各个根据树结构的各个编码单元,对各个用于帧间预测的预测单元执行运动补偿,以重构第一层图像。

当接收到第二层图像流时,视频解码设备900的图像数据解码器930可将由图像数据和编码信息提取器920从第二层图像流提取的第二层图像的样点划分为最大编码单元的根据树结构的编码单元。图像数据解码器930可对第二层图像的样点的各个用于帧间预测的预测单元执行运动补偿,以重构第二层图像。

图像数据和编码信息提取器920可从比特流获得与第一层图像和第二层图像之间的亮度阶相关的信息,以对亮度差进行补偿。然而可根据编码单元的编码模式确定是否执行亮度补偿。例如,可仅对2N×2N的预测单元执行亮度补偿。

视频解码设备900可获得关于当针对每个最大编码单元递归地执行编码时产生最小编码误差的至少一个编码单元的信息,并且可使用所述信息来对当前画面进行解码。换句话说,被确定为每个最大编码单元中的最优编码单元的具有树结构的编码单元可被解码。此外,考虑图像数据的分辨率和图像数据量来确定编码单元的最大尺寸。

因此,即使图像数据具有高分辨率和大数据量,也可通过使用编码单元的尺寸和编码模式,对图像数据进行有效地解码和重构,其中,通过使用从编码器接收到的关于最优编码模式的信息,根据图像数据的特征自适应地确定编码单元的尺寸和编码模式。

图10是用于描述根据各种实施例的编码单元的概念的示图。

编码单元的尺寸可被表示为宽度×高度,并可以是64×64、32×32、 16×16和8×8。64×64的编码单元可被划分为64×64、64×32、32×64或 32×32的分区,32×32的编码单元可被划分为32×32、32×16、16×32或 16×16的分区,16×16的编码单元可被划分为16×16、16×8、8×16或8×8 的分区,8×8的编码单元可被划分为8×8、8×4、4×8或4×4的分区。

在视频数据1010中,分辨率是1920×1080,编码单元的最大尺寸是64,最大深度是2。在视频数据1020中,分辨率是1920×1080,编码单元的最大尺寸是64,最大深度是3。在视频数据1030中,分辨率是352×288,编码单元的最大尺寸是16,最大深度是1。图10中示出的最大深度表示从LCU到最小编码单元的划分总次数。

如果分辨率高或数据量大,则编码单元的最大尺寸可能较大,从而不仅提高编码效率,而且准确地反映图像的特征。因此,具有比视频数据1030更高分辨率的视频数据1010和1020的编码单元的最大尺寸可以是64。

由于视频数据1010的最大深度是2,因此由于通过对LCU划分两次,深度加深至两层,因此视频数据1010的编码单元1015可包括长轴尺寸为64的 LCU和长轴尺寸为32和16的编码单元。由于视频数据1030的最大深度是1,因此由于通过对LCU划分一次,深度加深至一层,因此视频数据1030的编码单元1035可包括长轴尺寸为16的LCU和长轴尺寸为8的编码单元。

由于视频数据1020的最大深度是3,因此由于通过对LCU划分三次,深度加深至3层,因此视频数据1020的编码单元1025可包括长轴尺寸为64的 LCU和长轴尺寸为32、16和8的编码单元。随着深度加深,详细信息可被精确地表示。

图11是根据一个或更多个实施例的基于编码单元的视频编码器1100的框图。

视频编码器1100执行视频编码设备800的编码单元确定器820中对图像数据进行编码所需的操作。换句话说,帧内预测器1120根据预测单元对当前帧1105中的帧内模式下的编码单元执行帧内预测,帧间预测器1115通过使用当前图像1105和从重构画面缓冲器1110获得的参考图像,根据预测单元对帧间模式下的编码单元执行帧间预测。当前图像1105可被划分为LCU,并且随后LCU可被顺序编码。在这点上,将被划分为具有树结构的编码单元的 LCU可被编码。

通过从关于当前图像1105的被编码的编码单元的数据去除从帧内预测器1120或帧间预测器1115输出的每个模式的关于编码单元的预测数据来产生残差数据,并且残差数据通过变换器1125和量化器1130被输出为根据变换单元的量化后的变换系数。量化后的变换系数通过反量化器1145和逆变换器1150被重构为空间域中的残差数据。重构的空间域中的残差数据与从帧内预测器1120或帧间预测器输出的每个模式的针对编码单元的预测数据相加,因此被重构为针对当前图像1105的编码单元的空间域中的数据。重构的空间域中的数据通过去块器1155和SAO执行器1160被产生为重构图像,重构图像被存储在重构画面缓冲器1110中。存储在重构画面缓冲器1110中的重构图像可被用作用于对另一图像进行帧间预测的参考图像。由变换器1125和量化器1130量化的变换系数可通过熵编码器1135被输出为比特流1140。

为了将视频编码器1100应用到视频编码设备800中,视频编码器1100 的所有元件(即,帧间预测器1115、帧内预测器1120、变换器1125、量化器1130、熵编码器1135、反量化器1145、逆变换器1150、去块器1155和 SAO执行器1160)基于根据每个LCU的具有树结构的编码单元中的每个编码单元执行操作。

具体地,帧内预测器1120和帧间预测器1115可考虑当前LCU的最大尺寸和最大深度来确定具有树结构的编码单元之中的每个编码单元的分区模式和预测模式,变换器1125可确定是否对具有树结构的编码单元中的每个编码单元中的具有四叉树结构的变换单元进行划分。

图12是根据一个或更多个实施例的基于编码单元的视频解码器1200的框图。

熵解码器1215从比特流1205解析将被解码的编码图像数据和解码所需的关于编码的信息。编码图像数据是量化后的变换系数,其中,反量化器1220 和逆变换器1225从量化后的变换系数重构残差数据。

帧内预测器1240根据每个预测单元对帧内模式下的编码单元执行帧内预测。帧间预测器1235通过使用从重构画面缓冲器1230获得的参考图像针对每个预测单元对当前图像中的帧间模式下的编码单元执行帧间预测。

通过帧内预测器1240和帧间预测器1235的关于每个模式的编码单元的预测数据和残差数据被相加,因此可重构关于当前图像405的编码单元的空间域中的数据,并且重构的空间域中的数据可通过去块器1245和SAO执行器1250被输出为重构图像1260。存储在重构画面缓冲器1230中的重构图像可被输出为参考图像。

为了在视频解码设备900的图像数据解码器930中对图像数据进行解码,可执行在根据实施例的视频解码器1200的熵解码器1215之后的操作。

为了将视频解码器1200应用到根据实施例的视频解码设备900中,视频解码器1200的所有元件(即,熵解码器1215、反量化器1220、逆变换器1225、帧间预测器1235、去块器1245和SAO执行器1250)可针对每个LCU基于具有树结构的编码单元执行操作。

具体地,帧内预测器1240和帧间预测器1235可确定每个具有树结构的编码单元的分区和预测模式,逆变换器1225可针对每个编码单元确定是否对具有四叉树结构的变换单元进行划分。

图10的编码操作和图11的解码操作分别描述了单层的视频流编码和视频流解码操作。因此,如果图1a的编码器对两层或更多层的视频流进行编码,则可针对每个层提供视频编码器1100。类似地,如果图2a的解码器对两层或更多层的视频流进行解码,则可针对每个层提供视频解码器1200。

图13是示出根据一个或更多个实施例的根据深度的较深层编码单元以及分区的示图。

视频编码设备800和视频解码设备900使用分层编码单元以考虑图像的特征。可根据图像的特征自适应地确定编码单元的最大高度、最大宽度和最大深度,或可由用户不同地设置编码单元的最大高度、最大宽度和最大深度。可根据编码单元的预定最大尺寸来确定根据深度的较深层编码单元的尺寸。

在根据一个或更多个实施例的编码单元的分层结构1300中,编码单元的最大高度和最大宽度均是64,最大深度是3。在这种情况下,最大深度表示编码单元从LCU被划分到SCU的总次数。由于沿着分层结构1300的垂直轴深度加深,因此较深层编码单元的高度和宽度均被划分。另外,预测单元和分区沿着分层结构1300的水平轴被示出,其中,所述预测单元和分区是对每个较深层编码单元进行预测编码的基础。

换句话说,在分层结构1300中,编码单元1310是LCU,其中,深度为0,尺寸(即,高度乘宽度)为64×64。深度沿着垂直轴加深,并且存在尺寸为 32×32且深度为1的编码单元1320、尺寸为16×16且深度为2的编码单元 1330、尺寸为8×8且深度为3的编码单元1340。尺寸为8×8且深度为3的编码单元1340是SCU。

编码单元的预测单元和分区根据每个深度沿着水平轴被排列。换句话说,如果尺寸为64×64且深度为0的编码单元1310是预测单元,则可将预测单元划分成包括在编码单元1310中的分区,即,尺寸为64×64的分区1310、尺寸为64×32的分区1312、尺寸为32×64的分区1314或尺寸为32×32的分区1316。

类似地,可将尺寸为32×32且深度为1的编码单元1320的预测单元划分成包括在编码单元1320中的分区,即,尺寸为32×32的分区1320、尺寸为32×16的分区1322、尺寸为16×32的分区1324和尺寸为16×16的分区 1326。

类似地,可将尺寸为16×16且深度为2的编码单元1330的预测单元划分成包括在编码单元1330中的分区,即,包括在编码度单元1330中的尺寸为16×16的分区、尺寸为16×8的分区1332、尺寸为8×16的分区1334和尺寸为8×8的分区1336。

类似地,可将尺寸为8×8且深度为3的编码单元1340的预测单元划分成包括在编码单元1340中的分区,即,包括在编码单元1340中的尺寸为8 ×8的分区、尺寸为8×4的分区1342、尺寸为4×8的分区1344和尺寸为4 ×4的分区1346。

为了确定构成LCU 1310的编码单元的最终深度,视频编码设备800的编码单元确定器820对包括在LCU 1310中的与每个深度相应的编码单元执行编码。

随着深度加深,包括具有相同范围和相同尺寸的数据的根据深度的较深层编码单元的数量增加。例如,需要四个与深度2相应的编码单元来覆盖包括在与深度1相应的一个编码单元中的数据。因此,为了根据深度比较对相同数据进行编码的结果,与深度1相应的编码单元和四个与深度2相应的编码单元均被编码。

为了针对深度之中的当前深度执行编码,可沿着分层结构1300的水平轴,通过对与当前深度相应的编码单元中的每个预测单元执行编码,来针对当前深度选择最小编码误差。可选择地,随着深度沿着分层结构1300的垂直轴加深,可通过针对每个深度执行编码,比较根据深度的最小编码误差,来搜索最小编码误差。在编码单元1310中的具有最小编码误差的深度和分区可被选为编码单元1310的最终深度和分区模式。

图14是用于描述根据一个或更多个实施例的在编码单元1410和变换单元1420之间的关系的示图。

视频编码设备800或视频解码设备900针对每个LCU,根据具有小于或等于LCU的尺寸的编码单元对图像进行编码或解码。可基于不大于相应的编码单元的数据单元,来选择用于在编码期间进行变换的变换单元的尺寸。

例如,在视频编码设备800或视频解码设备900中,如果编码单元1410 的尺寸是64×64,则可通过使用尺寸为32×32的变换单元1420来执行变换。

此外,可通过对小于64×64的尺寸为32×32、16×16、8×8和4×4 的每个变换单元执行变换,来对尺寸为64×64的编码单元1410的数据进行编码,然后可选择具有最小编码误差的变换单元。

图15是用于描述根据一个或更多个实施例的与深度相应的编码单元的编码信息的示图。

视频编码设备800的输出器830可对与最终深度相应的每个编码单元的关于分区模式的信息1500、关于预测模式的信息1510以及关于变换单元的尺寸的信息1520进行编码,并将信息1500、信息1510和信息1520作为关于编码模式的信息来发送。

信息1500指示关于通过划分当前编码单元的预测单元而获得的分区的模式的信息,其中,所述分区是用于对当前编码单元进行预测编码的数据单元。例如,可将尺寸为2N×2N的当前编码单元CU_0划分成以下分区中的任意一个:尺寸为2N×2N的分区1502、尺寸为2N×N的分区1504、尺寸为N ×2N的分区1506以及尺寸为N×N的分区1508。这里,关于分区模式的信息 1500被设置来指示尺寸为2N×N的分区1504、尺寸为N×2N的分区1506以及尺寸为N×N的分区1508中的一个。

信息1510指示每个分区的预测模式。例如,信息1510可指示对由信息 1500指示的分区执行的预测编码的模式,即,帧内模式1512、帧间模式1514 或跳过模式1516。

信息1520指示当对当前编码单元执行变换时所基于的变换单元。例如,变换单元可以是第一帧内变换单元1522、第二帧内变换单元1524、第一帧间变换单元1526或第二帧间变换单元1528。

视频解码设备900的图像数据和编码信息提取1620可根据每个较深层编码单元提取并使用用于解码的信息1500、1510和1520。

图16是根据一个或更多个实施例的根据深度的较深层编码单元的示图。

划分信息可用来指示深度的改变。划分信息指示当前深度的编码单元是否被划分成更低深度的编码单元。

用于对深度为0且尺寸为2N_0×2N_0的编码单元1600进行预测编码的预测单元1610可包括以下分区模式的分区:尺寸为2N_0×2N_0的分区模式1612、尺寸为2N_0×N_0的分区模式1614、尺寸为N_0×2N_0的分区模式1616 和尺寸为N_0×N_0的分区模式1618。图16仅示出了通过对称地划分预测单元1610而获得的分区模式1612至1618,但是分区模式不限于此,并且预测单元1610的分区可包括非对称分区、具有预定形状的分区和具有几何形状的分区。

根据每种分区模式,对尺寸为2N_0×2N_0的一个分区、尺寸为2N_0× N_0的两个分区、尺寸为N_0×2N_0的两个分区和尺寸为N_0×N_0的四个分区重复地执行预测编码。可对尺寸为2N_0×2N_0、N_0×2N_0、2N_0×N_0和 N_0×N_0的分区执行帧内模式和帧间模式下的预测编码。可仅对尺寸为2N_0 ×2N_0的分区执行跳过模式下的预测编码。

如果在分区模式1612至1616中的一个分区模式中编码误差最小,则可不将预测单元1610划分到更低深度。

如果在分区模式1618中编码误差最小,则深度从0改变到1以在操作 1620中划分分区模式1618,并对深度为2且尺寸为N_0×N_0的编码单元1630 重复地执行编码来搜索最小编码误差。

用于对深度为1且尺寸为2N_1×2N_1(=N_0×N_0)的编码单元1630进行预测编码的预测单元1640可包括以下分区模式的分区:尺寸为2N_1×2N_1 的分区模式1642、尺寸为2N_1×N_1的分区模式1644、尺寸为N_1×2N_1的分区模式1646以及尺寸为N_1×N_1的分区模式1648。

如果在分区模式1648中编码误差最小,则深度从1改变到2以在操作 1650中划分分区模式1648,并对深度为2且尺寸为N_2×N_2的编码单元1660 重复执行编码来搜索最小编码误差。

当最大深度是d时,根据每个深度的划分操作可被执行直到深度变成d-1,并且划分信息可被编码直到深度是0到d-2中的一个。换句话说,当编码被执行直到在与d-2的深度相应的编码单元在操作1670中被划分之后深度是d-1时,用于对深度为d-1且尺寸为2N_(d-1)×2N_(d-1)的编码单元1680进行预测编码的预测单元1690可包括以下分区模式的分区:尺寸为2N_(d-1) ×2N(d-1)的分区模式1692、尺寸为2N_(d-1)×N(d-1)的分区模式1694、尺寸为N_(d-1)×2N(d-1)的分区模式1696和尺寸为N_(d-1)×N(d-1)的分区模式1698。

可对分区模式1692至1698中的尺寸为2N_(d-1)×2N_(d-1)的一个分区、尺寸为2N_(d-1)×N_(d-1)的两个分区、尺寸为N_(d-1)×2N_(d-1)的两个分区、尺寸为N_(d-1)×N_(d-1)的四个分区重复地执行预测编码,以搜索具有最小编码误差的分区模式。

即使当分区模式1698具有最小编码误差时,由于最大深度是d,因此深度为d-1的编码单元CU_(d-1)也不再被划分到更低深度,构成当前LCU 1600 的编码单元的深度被确定为d-1,并且当前LCU 1600的分区模式可被确定为 N_(d-1)×N(d-1)。此外,由于最大深度是d,并且具有最低深度d-1的SCU 1680不再被划分到更低深度,因此不设置SCU 1680的划分信息。

数据单元1699可以是用于当前LCU的“最小单元”。根据一个或更多个实施例的最小单元可以是通过将SCU 1680划分成4份而获得的方形数据单元。通过重复地执行编码,视频编码设备800可通过比较根据编码单元1600的深度的编码误差来选择具有最小编码误差的深度以确定深度,并将相应分区模式和预测模式设置为所述深度的编码模式。

这样,在所有深度1至d中对根据深度的最小编码误差进行比较,并且具有最小编码误差的深度可被确定为深度。所述深度、预测单元的分区模式和预测模式可作为关于编码模式的信息被编码并发送。另外,由于编码单元从深度0被划分到深度,因此仅该深度的划分信息被设置为0,并且除了所该深度以外的深度的划分信息被设置为1。

视频解码设备900的图像数据和编码信息提取器920可提取并使用关于编码单元1600的深度和预测单元的信息,来对分区1612进行解码。视频解码设备900可通过使用根据深度的划分信息,将划分信息为0的深度确定为深度,并且使用关于相应深度的编码模式的信息来进行解码。

图17至图19是用于描述根据一个或更多个实施例的编码单元1710、预测单元1760和变换单元1770之间的关系的示图。

编码单元1710是LCU中的与由视频编码设备800确定的深度相应的具有树结构的编码单元。预测单元1760是每个编码单元1710的预测单元的分区,变换单元1770是每个编码单元1710的变换单元。

当在编码单元1710中LCU的深度是0时,编码单元1712和编码单元1754 的深度是1,编码单元1714、1716、1718、1728、1750和1752的深度是2,编码单元1720、1722、1724、1726、1730、1732和1748的深度是3,编码单元1740、1742、1744和1746的深度是4。

在预测单元1760中,通过划分编码单元1710中的编码单元来获得一些编码单元1714、1716、1722、1732、1748、1750、1752和1754。换句话说,编码单元1714、1722、1750和1754中的分区模式的尺寸是2N×N,编码单元1716、1748和1752中的分区模式的尺寸是N×2N,编码单元1732的分区模式的尺寸是N×N。编码单元1710的预测单元和分区小于或等于每个编码单元。

在小于编码单元1752的数据单元中的变换单元1770中,对编码单元 1752的图像数据执行变换或逆变换。另外,在尺寸和形状方面,变换单元1770 中的编码单元1714、1716、1722、1732、1748、1750和1752不同于预测单元1760中的编码单元1714、1716、1722、1732、1748、1750和1752。换句话说,视频编码设备800和视频解码设备900可对同一编码单元中的数据单元独立地执行帧内预测、运动估计、运动补偿、变换和逆变换。

因此,对LCU的每个区域中的具有分层结构的每个编码单元递归地执行编码来确定最优编码单元,从而可获得具有递归树结构的编码单元。编码信息可包括关于编码单元的划分信息、关于分区模式的信息、关于预测模式的信息和关于变换单元的尺寸的信息。表33示出可由视频编码设备800和视频解码设备900设置的编码信息。

[表33]

视频编码设备800的输出器830可输出关于具有树结构的编码单元的编码信息,视频解码设备900的图像数据和编码信息提取器920可从接收到的比特流提取关于具有树结构的编码单元的编码信息。

划分信息指示是否将当前编码单元划分成更低深度的编码单元。如果当前深度d的划分信息是0,则当前编码单元不再被划分成更低深度的深度是最终深度,从而可针对所述最终深度来定义关于分区模式、预测模式和变换单元的尺寸的信息。如果当前编码单元根据划分信息被进一步划分,则对更低深度的四个划分编码单元独立地执行编码。

预测模式可以是帧内模式、帧间模式和跳过模式中的一种。可针对所有分区模式定义帧内模式和帧间模式,仅针对尺寸为2N×2N的分区模式定义跳过模式。

关于分区模式的信息可指示通过对称地划分预测单元的高度或宽度而获得的尺寸为2N×2N、2N×N、N×2N和N×N的对称分区模式,以及通过非对称地划分预测单元的高度或宽度而获得的尺寸为2N×nU、2N×nD、nL×2N和 nR×2N的非对称分区模式。可通过按1:3和3:1划分预测单元的高度来分别获得尺寸为2N×nU和2N×nD的非对称分区模式,可通过按1:3和3:1划分预测单元的宽度来分别获得尺寸为nL×2N和nR×2N的非对称分区模式。

可将变换单元的尺寸设置成帧内模式下的两种类型和帧间模式下的两种类型。换句话说,如果变换单元的划分信息是0,则变换单元的尺寸可以是 2N×2N,即当前编码单元的尺寸。如果变换单元的划分信息是1,则可通过对当前编码单元进行划分来获得变换单元。另外,如果尺寸为2N×2N的当前编码单元的分区模式是对称分区模式,则变换单元的尺寸可以是N×N,如果当前编码单元的分区模式是非对称分区模式,则变换单元的尺寸可以是N/2×N/2。

关于具有树结构的编码单元的编码信息可包括与深度相应的编码单元、预测单元和最小单元中的至少一个。与深度相应的编码单元可包括包含相同编码信息的预测单元和最小单元中的至少一个。

因此,通过比较邻近数据单元的编码信息来确定邻近数据单元是否被包括在与所述深度相应的同一编码单元中。另外,通过使用数据单元的编码信息来确定与深度相应的相应编码单元,并且因此可确定LCU中的深度的分布。

因此,如果基于邻近数据单元的编码信息来对当前编码单元进行预测,则可直接参考并使用与当前编码单元邻近的较深层编码单元中的数据单元的编码信息。

可选择地,如果基于邻近数据单元的编码信息来对当前编码单元进行预测,则使用数据单元的编码信息来搜索与当前编码单元邻近的数据单元,并可参考搜索到的邻近编码单元以对当前编码单元进行预测。

图20是用于描述根据表33的编码模式信息的编码单元、预测单元和变换单元之间的关系的示图。

LCU 2000包括多个深度的编码单元2002、2004、2006、2012、2014、2016 和2018。这里,由于编码单元2018是具有深度的编码单元,因此划分信息可以被设置成0。可将关于尺寸为2N×2N的编码单元2018的分区模式的信息设置成以下分区模式中的一种:尺寸为2N×2N的分区模式2022、尺寸为 2N×N的分区模式2024、尺寸为N×2N的分区模式2026、尺寸为N×N的分区模式2028、尺寸为2N×nU的分区模式2032、尺寸为2N×nD的分区模式 2034、尺寸为nL×2N的分区模式2036以及尺寸为nR×2N的分区模式2038。

变换单元的划分信息(TU尺寸标记)是一类变换索引。与变换索引相应的变换单元的尺寸可根据编码单元的预测单元类型或分区模式而改变。

例如,当分区模式被设置成对称(即,分区模式2022、2024、2026或 2028)时,如果变换单元的TU尺寸标记是0,则设置尺寸为2N×2N的变换单元2042,如果TU尺寸标记是1,则设置尺寸为N×N的变换单元1344。

当分区模式被设置成非对称(即,分区模式2032、2034、2036或2038) 时,如果TU尺寸标记是0,则设置尺寸为2N×2N的变换单元2052,如果TU 尺寸标记是1,则设置尺寸为N/2×N/2的变换单元2054。

参照图19,TU尺寸标记是具有值0或1的标记,但是TU尺寸标记不限于1比特,在TU尺寸标记从0增加的同时,变换单元可被分层划分以具有树结构。变换单元的划分信息(TU尺寸标记)可以是变换索引的示例。

在这种情况下,根据一个或更多个实施例,可通过使用变换单元的TU 尺寸标记以及变换单元的最大尺寸和最小尺寸来表示实际上已使用的变换单元的尺寸。视频编码设备800能够对最大变换单元尺寸信息、最小变换单元尺寸信息和最大TU尺寸标记进行编码。对最大变换单元尺寸信息、最小变换单元尺寸信息和最大TU尺寸标记进行编码的结果可被插入SPS。视频解码设备900可通过使用最大变换单元尺寸信息、最小变换单元尺寸信息和最大TU 尺寸标记来对视频进行解码。

例如,(a)如果当前编码单元的尺寸是64×64并且最大变换单元尺寸是 32×32,则(a-1)当TU尺寸标记为0时,变换单元的尺寸可以是32×32, (a-2)当TU尺寸标记为1时,变换单元的尺寸可以是16×16,(a-3)当TU 尺寸标记为2时,变换单元的尺寸可以是8×8。

作为另一示例,(b)如果当前编码单元的尺寸是32×32并且最小变换单元尺寸是32×32,则(b-1)当TU尺寸标记为0时,变换单元的尺寸可以是 32×32。这里,由于变换单元的尺寸不能够小于32×32,因此TU尺寸标记不能够被设置为除了0以外的值。

作为另一示例,(c)如果当前编码单元的尺寸是64×64并且最大TU尺寸标记为1,则TU尺寸标记可以是0或1。这里,TU尺寸标记不能够被设置为除了0或1以外的值。

因此,如果定义最大TU尺寸标记为“MaxTransformSizeIndex”,最小变换单元尺寸为“MinTransformSize”,并且当TU尺寸标记为0时变换单元尺寸为“RootTuSize”,则可通过等式(1)来定义可在当前编码单元中确定的当前最小变换单元尺寸“CurrMinTuSize”:

CurrMinTuSize=max(MinTransformSize,RootTuSize/(2^MaxTransformSizeIndex)) …(1)

与可在当前编码单元中确定的当前最小变换单元尺寸“CurrMinTuSize”相比,当TU尺寸标记为0时的变换单元尺寸“RootTuSize”可指示可在系统中选择的最大变换单元尺寸。在等式(1)中,“RootTuSize/(2∧MaxTransformSizeIndex)”指示当TU尺寸标记为0时的变换单元尺寸“RootTuSize”被划分了与最大TU尺寸标记相应的次数时的变换单元尺寸,“MinTransformSize”指示最小变换尺寸。因此,“RootTuSize/(2^MaxTransformSizeIndex)”和“MinTransformSize”中较小的值可以是可在当前编码单元中确定的当前最小变换单元尺寸“CurrMinTuSize”。

根据一个或更多个实施例,最大变换单元尺寸RootTuSize可根据预测模式的类型而改变。

例如,如果当前预测模式是帧间模式,则可通过使用以下的等式(2)来确定“RootTuSize”。在等式(2)中,“MaxTransformSize”指示最大变换单元尺寸,“PUSize”指示当前预测单元尺寸:

RootTuSize=min(MaxTransformSize,PUSize)……(2)

也就是说,如果当前预测模式是帧间模式,则当TU尺寸标记为0时的变换单元尺寸“RootTuSize”可以是最大变换单元尺寸和当前预测单元尺寸中较小的值。

如果当前分区单元的预测模式是帧内模式,则可通过使用以下的等式(3) 来确定“RootTuSize”。在等式(3)中,“PartitionSize”指示当前分区单元的尺寸:

RootTuSize=min(MaxTransformSize,PartitionSize)……(3)

也就是说,如果当前预测模式是帧内模式,则当TU尺寸标记为0时的变换单元尺寸“RootTuSize”可以是最大变换单元尺寸和当前分区单元的尺寸之中较小的值。

然而,根据分区单元中的预测模式的类型而改变的当前最大变换单元尺寸“RootTuSize”仅是示例,实施例不限于此。

根据参照图8至图20描述的基于具有树结构的编码单元的视频编码方法,针对树结构的每个编码单元对空间域的图像数据进行编码。根据基于具有树结构的编码单元的视频解码方法,针对每个LCU执行解码以重构空间域的图像数据。因此,可重构画面和视频(即,画面序列)。重构后的视频可通过再现设备被再现,可被存储在存储介质中,或者可通过网络被发送。

实施例可被编写为计算机程序,并可在使用计算机可读记录介质执行程序的通用数字计算机中被实现。计算机可读记录介质的示例包括磁存储介质 (例如,ROM、软盘、硬盘等)和光学记录介质(例如,CD-ROM或DVD)。

为了便于解释,视频编码方法和/或参照图1a至图20描述的视频编码方法将被称为“根据各种实施例的视频编码方法”。另外,视频解码和/或参照图1a至图20描述的视频解码将被称为“根据各种实施例的视频解码方法”。

参照图1a至图20描述的视频编码设备(包括视频编码设备、视频编码设备800或视频编码器1100)将被称为“根据各种实施例的视频编码设备”。另外,以上参照图1a至图20描述的视频解码设备(包括层间视频解码设备、视频解码设备900或视频解码器1200)将被称为“根据各种实施例的视频解码设备”。

现在将详细描述根据各种实施例的存储程序的计算机可读记录介质(例如,盘26000)。

图21是根据一个或更多个实施例的存储程序的盘26000的物理结构的示图。作为存储介质的盘26000可以是硬盘驱动器、致密盘只读存储器(CD-ROM) 盘、蓝光盘或数字多功能盘(DVD)。盘26000包括多个同心磁道Tf,每个同心磁道Tf沿盘26000的圆周方向被划分成特定数量的扇区Se。在盘26000 的特定区域中,可分配并存储执行如上所描述的量化参数确定方法、视频编码方法和视频解码方法的程序。

现在将参照图22 来描述使用存储以下程序的存储介质来实现的计算机系统,其中,所述程序用于执行如上所述的视频编码方法和视频解码方法。

图22是通过使用盘26000来记录并读取程序的盘驱动器26800的示图。计算机系统26700可经由盘驱动器26800将执行根据一个或更多个实施例的视频编码方法和视频解码方法中的至少一个的程序存储在盘26000中。为了在计算机系统26700中运行存储在盘26000中的程序,可通过使用盘驱动器 26800从盘26000读取程序并将程序发送到计算机系统26700。

执行根据一个或更多个实施例的视频编码方法和视频解码方法中的至少一个的程序不仅可被存储在图21或图22中示出的盘26000中,还可被存储在存储卡、ROM卡带或固态驱动器(SSD)中。

以下将描述应用了以上所描述的视频编码方法和视频解码方法的系统。

图23是用于提供内容分发服务的内容供应系统11000的整体结构的示图。将通信系统的服务区域划分成预定尺寸的小区,并将无线基站11700、11800、 11900和12000分别安装在这些小区中。

内容供应系统11000包括多个独立装置。例如,诸如计算机12100、个人数字助理(PDA)12200、视频相机12300和移动电话12500的多个独立装置经由互联网服务提供器11200、通信网络11400和无线基站11700、11800、 11900和12000连接到互联网11100。

然而,内容供应系统11000不限于如图23中所示,并且装置可选择性地被连接到内容供应系统11000。多个独立装置可不经由无线基站11700、11800、 11900和12000而直接连接到通信网络11400。

视频相机12300是能够捕捉视频图像的成像装置,例如,数字视频相机。移动电话12500可利用各种协议(例如,个人数字通信(PDC)、码分多址(CDMA)、宽带码分多址(W-CDMA)、全球移动通信系统(GSM)和个人手持电话系统(PHS)) 中的至少一种通信方法。

视频相机12300可经由无线基站11900和通信网络11400连接到流服务器11300。流服务器11300允许经由视频相机12300从用户接收到的内容经由实时广播被流传输。可使用视频相机12300或流服务器11300来对从视频相机12300接收到的内容进行编码。通过视频相机12300捕捉到的视频数据可经由计算机12100被发送到流服务器11300。

通过相机12600捕捉到的视频数据也可经由计算机12100被发送到流服务器11300。与数码相机类似,相机12600是能够捕捉静止图像和视频图像两者的成像装置。可使用相机12600或计算机12100对通过相机12600捕捉到的视频数据进行编码。可将对视频执行编码和解码的软件存储在可由计算机12100访问的计算机可读记录介质(例如,CD-ROM盘、软盘、硬盘驱动器、 SSD或存储卡)中。

如果视频数据通过内置在移动电话12500中的相机被捕捉到,则可从移动电话12500接收视频数据。

还可通过安装在视频相机12300、移动电话12500或相机12600中的大规模集成电路(LSI)系统来对视频数据进行编码。

内容供应系统1100可对由用户使用视频相机12300、相机12600、移动电话12500或另一成像装置所记录的内容数据(例如,在音乐会期间记录的内容)进行编码,并将编码后的内容数据发送到流服务器11300。流服务器 11300可将编码后的内容数据以流内容的形式发送到请求内容数据的其它客户端。

客户端是能够对编码后的内容数据进行解码的装置,例如,计算机12100、 PDA 12200、视频相机12300或移动电话12500。因此,内容供应系统11000 允许客户端接收并再现编码后的内容数据。此外,内容供应系统11000允许客户端实时接收编码后的内容数据并对编码后的内容数据进行解码和再现,从而能够进行个人广播。

包括在内容供应系统11000中的多个独立装置的编码和解码操作可类似于根据一个或更多个实施例的视频编码设备和视频解码设备的编码和解码操作。

现在将参照图24和图25更加详细地描述包括在根据一个或更多个实施例的内容供应系统11000中的移动电话12500。

图24示出根据一个或更多个实施例的应用视频编码方法和视频解码方法的移动电话12500的外部结构。移动电话12500可以是智能电话,所述智能电话的功能不受限,并且所述智能电话的大部分功能可被改变或扩展。

移动电话12500包括可与图21的无线基站12000交换射频(RF)信号的内部天线12510,并包括用于显示由相机12530捕捉到的图像或经由天线 12510接收到的和解码的图像的显示屏12520(例如,液晶显示器(LCD)或有机发光二极管(OLED)屏幕)。移动电话12500包括包含有控制按钮和触摸面板的操作面板12540。如果显示屏12520是触摸屏,则操作面板12540还包括显示屏12520的触摸感测面板。移动电话12500包括用于输出语音和声音的扬声器12580或另一类型声音输出器、以及用于输入语音和声音的麦克风12550或另一类型声音输入器。移动电话12500还包括用于捕捉视频和静止图像的相机12530,诸如电荷耦合器件(CCD)相机。移动电话12500还可包括:存储介质12570,用于存储通过相机12530捕捉到的、经由电子邮件接收到的、或根据各种方式获得的编码/解码数据(例如,视频或静止图像);插槽12560,存储介质12570经由插槽12560被装入移动电话12500中。存储介质12570可以是闪存,例如,包括在塑料壳中的安全数字(SD)卡或电可擦除可编程只读存储器(EEPROM)。

图25示出根据一个或更多个实施例的移动电话12500的内部结构。为了系统地控制包括显示屏12520和操作面板12540的移动电话12500的部件,供电电路12700、操作输入控制器12640、视频编码器12720、相机接口12630、 LCD控制器12620、视频解码器12690、复用器/解复用器12680、记录器/读取器12670、调制器/解调器12660以及声音处理器12650经由同步总线12730 被连接到中央控制器12710。

如果用户操作电源按钮,并从“电源关闭”状态设置为“电源开启”状态,则供电电路12700从电池组向移动电话12500的所有部件供电,从而将移动电话12500设置为操作模式。

中央控制器12710包括中央处理器(CPU)、ROM和RAM。

在移动电话12500将通信数据发送到外部的同时,在中央控制器12710 的控制下,由移动电话12500产生数字信号。例如,声音处理器12650可产生数字声音信号,视频编码器12720可产生数字图像信号,并且消息的文本数据可经由操作面板12540和操作输入控制器12640被产生。当在中央控制器12710的控制下数字信号被发送到调制器/解调器12660时,调制器/解调器12660对数字信号的频带进行调制,并且通信电路12610对频带被调制的数字声音信号执行数模转换(DAC)和频率转换。从通信电路12610输出的发送信号可经由天线12510被发送到语音通信基站或无线基站12000。

例如,当移动电话12500处于通话模式时,在中央控制器12710的控制下,经由麦克风12550获得的声音信号通过声音处理器12650被变换成数字声音信号。数字声音信号可经由调制器/解调器12660和通信电路12610被变换成发送信号,并可经由天线12510被发送。

当文本消息(例如,电子邮件)在数据通信模式下被发送时,文本消息的文本数据经由操作面板12540被输入,并经由操作输入控制器12640被发送到中央控制器12610。在中央控制器12610的控制下,文本数据经由调制器/解调器12660和通信电路12610被变换成发送信号,并经由天线12510被发送到无线基站12000。

为了在数据通信模式下发送图像数据,由相机12530捕捉到的图像数据经由相机接口12630被提供给视频编码器12720。捕捉到的图像数据可经由相机接口12630和LCD控制器12620被直接显示在显示屏12520上。

视频编码器12720的结构可与以上描述的根据一个或更多个实施例的视频编码设备的结构相应。视频编码器12720可基于上述根据一个或更多个实施例的视频编码方法,将从相机12530接收到的图像数据变换为压缩和编码后的图像数据,并然后将编码后的图像数据输出到复用器/解复用器12680。在相机12530的记录操作期间,由移动电话12500的麦克风12550获得的声音信号可经由声音处理器12650被变换成数字声音数据,并且数字声音数据可被发送到复用器/解复用器12680。

复用器/解复用器12680对从视频编码器12720接收到的编码后的图像数据与从声音处理器12650接收到的声音数据一起进行复用。对数据进行复用的结果可经由调制器/解调器12660和通信电路12610被变换成发送信号,然后可经由天线12510被发送。

当移动电话12500从外部接收通信数据时,可对经由天线12510接收到的信号执行频率恢复和ADC以将信号变换成数字信号。调制器/解调器12660 对数字信号的频带进行调制。根据频带被调制后的数字信号的类型将所述数字信号发送到视频解码单元12690、声音处理器12650或LCD控制器12620。

在通话模式下,移动电话12500对经由天线12510接收到的信号进行放大,并通过对放大后的信号执行频率转换和ADC来获得数字声音信号。在中央控制器12710的控制下,接收到的数字声音信号经由调制器/解调器12660 和声音处理器12650被变换成模拟声音信号,并且模拟声音信号经由扬声器 12580被输出。

当在数据通信模式下,接收在互联网网站上访问的视频文件的数据时,经由调制器/解调器12660将经由天线12510从无线基站12000接收到的信号输出为复用数据,并且复用数据被发送到复用器/解复用器12680。

为了对经由天线12510接收到的复用数据进行解码,复用器/解复用器 12680将复用数据解复用成编码后的视频数据流和编码后的音频数据流。经由同步总线12730,编码后的视频数据流和编码后的音频数据流分别被提供给视频解码单元12690和声音处理器12650。

视频解码器12690的结构可与上述的根据一个或更多个实施例的视频解码设备的结构相应。视频解码器12690可通过使用上述根据一个或更多个实施例的视频解码方法,对编码后的视频数据进行解码来获得重构的视频数据,并经由LCD控制器12620将重构的视频数据提供给显示屏12520。

因此,可将在互联网网站上访问的视频文件的数据显示在显示屏12520 上。同时,声音处理器12650可将音频数据变换成模拟声音信号,并将模拟声音信号提供给扬声器12580。因此,也可经由扬声器12580再现在互联网网站上访问的视频文件中包含的音频数据。

移动电话12500或另一类型的通信终端可以是包括根据一个或更多个实施例的视频编码设备和视频解码设备两者的收发终端,可以是仅包括视频编码设备的收发终端,或者可以是仅包括视频解码设备的收发终端。

根据一个或更多个实施例的通信系统不限于以上参照图24描述的通信系统。例如,图26示出根据一个或更多个实施例的采用通信系统的数字广播系统。图26的数字广播系统可通过使用根据一个或更多个实施例的视频编码设备和视频解码设备来接收经由卫星或地面网络发送的数字广播。

具体地,广播站12890通过使用无线电波将视频数据流发送到通信卫星或广播卫星12900。广播卫星12900发送广播信号,广播信号经由家用天线 12860被发送到卫星广播接收器。在每个房屋中,可通过TV接收器12810、机顶盒12870或另一装置对编码后的视频流进行解码和再现。

当根据一个或更多个实施例的视频解码设备被实现在再现设备12830中时,再现设备12830可对记录在存储介质12820(诸如盘或存储卡)上的编码后的视频流进行解析和解码以重构数字信号。因此,可在例如监视器12840 上再现重构的视频信号。

在被连接到用于卫星/地面广播的天线12860或用于接收有线电视(TV) 广播的有线天线12850的机顶盒12870中,可安装根据一个或更多个实施例的视频解码设备。从机顶盒12870输出的数据也可被再现在TV监视器12880 上。

作为另一示例,可将根据一个或更多个实施例的视频解码设备安装在TV 接收器12810中,而不是机顶盒12870中。

具有适当天线12910的汽车12920可接收从卫星12900或图21的无线基站11700发送的信号。可在安装在汽车12920中的汽车导航系统12930的显示屏上再现解码后的视频。

视频信号可由根据一个或更多个实施例的视频编码设备来编码,然后可被存储在存储介质中。具体地,可由DVD记录器将图像信号存储在DVD盘12960 中,或可由硬盘记录器12950将图像信号存储在硬盘中。作为另一示例,可将视频信号存储在SD卡12970中。如果硬盘记录器12950包括根据一个或更多个实施例的视频解码设备,则记录在DVD盘12960、SD卡12970或另一存储介质上的视频信号可被再现于TV监视器12880上。

汽车导航系统12930可不包括图26的相机12530、图26的相机接口12630 和视频编码器12720。例如,计算机12100和TV接收器12810可不包括相机 12530、相机接口12630和视频编码器12720。

图27是示出根据一个或更多个实施例的使用视频编码设备和视频解码设备的云计算系统的网络结构的示图。

云计算系统可包括云计算服务器14000、用户数据库(DB)14100、多个计算资源14200和用户终端。

响应于来自用户终端的请求,云计算系统经由数据通信网络(例如,互联网)提供多个计算资源14200的点播外包服务。在云计算环境下,服务提供商通过使用虚化拟技术组合位于不同的物理位置的数据中心处的计算资源,来为用户提供想要的服务。服务用户不必将计算资源(例如,应用、存储器、操作系统(OS)和安全)安装在他/她拥有的终端中以使用它们,但可在想要的时间点在通过虚拟化技术产生的虚拟空间中从服务之中选择和使用想要的服务。

被指定的服务用户的用户终端经由包括互联网和移动通信网络的数据通信网络被连接到云计算服务器14000。可从云计算服务器14000向用户终端提供云计算服务,特别是视频再现服务。用户终端可以是能够被连接到互联网的各种类型的电子装置,例如,桌上型PC 14300、智能TV 14400、智能电话14500、笔记本计算机14600、便携式多媒体播放器(PMP)14700、平板 PC 14800等。

云计算服务器14000可组合分布在云网络中的多个计算资源14200,并向用户终端提供组合的结果。所述多个计算资源14200可包括各种数据服务,并可包括从用户终端上传的数据。如上所描述的,云计算服务器14000可通过根据虚拟化技术组合分布在不同区域中的视频数据库来向用户终端提供想要的服务。

将关于已经订购云计算服务的用户的用户信息存储在用户DB 14100中。用户信息可包括用户的登录信息、地址、姓名和个人信用信息。用户信息还可包括视频的索引。这里,所述索引可包括已经被再现的视频的列表、正在被再现的视频的列表、之前被再现的视频的暂停点等。

可在用户装置之间共享存储在用户DB 14100中的关于视频的信息。例如,当响应于来自笔记本计算机14600的请求将视频服务提供给笔记本计算机 14600时,视频服务的再现历史被存储在用户DB 14100中。当从智能电话 14500接收到用于再现此视频服务的请求时,云计算服务器14000基于用户 DB 14100搜索并再现此视频服务。当智能电话14500从云计算服务器14000 接收到视频数据流时,通过对视频数据流进行解码来再现视频的处理与以上参照图24描述的移动电话12500的操作类似。

云计算服务器14000可参考存储在用户DB 14100中的想要的视频服务的再现历史。例如,云计算服务器14000从用户终端接收用于再现存储在用户 DB 14100中的视频的请求。如果此视频之前被再现过,则由云计算服务器 14000执行的对此视频进行流传输的方法可根据来自用户终端的请求(即,根据是将从视频的起点还是视频的暂停点来再现视频)而不同。例如,如果用户终端请求从视频的起点开始再现视频,则云计算服务器14000将从视频的第一帧开始的视频的流数据发送到用户终端。如果用户终端请求从视频的暂停点开始再现视频,则云计算服务器14000将从与暂停点相应的帧开始的视频的流数据发送到用户终端。

在此情况下,用户终端可包括如以上参照图1a至图20描述的视频解码设备。作为另一示例,用户终端可包括如以上参照图1a至图20描述的视频编码设备。可选择地,用户终端可包括如以上参照图1a至图20描述的视频解码设备和视频编码设备两者。

以上已经参照图21至图27描述了以上参照图1a至图20描述的根据一个或更多个实施例的视频编码方法、视频解码方法、视频编码设备和视频解码设备的各种应用。然而,将以上参照图1a至图20描述的根据各种实施例的视频编码方法和视频解码方法存储在存储介质中的方法,或者将所述视频编码设备和视频解码设备实现在装置中的方法不限于以上参照图21至图27 描述的实施例。

应理解,这里描述的示例性实施例应该被解释为是说明性意义,而不是为了限制的目的。每个实施例内的特征和方面的描述应该通常被视为可用于其它实施例中的其它类似的特征或方面。

虽然已参照附图描述了本发明的一个或更多个实施例,但是本领域的普通技术人员将理解,在不脱离由权利要求书限定的本发明的精神和范围的情况下,可在其中进行形式和细节上的各种改变。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1