用于视频编码和解码中的矢量编码的方法和装置与流程

文档序号:12515682阅读:252来源:国知局
用于视频编码和解码中的矢量编码的方法和装置与流程

本发明涉及在编码或解码视频的过程中编码或解码像素块的方法和设备。其更具体地涉及当使用HEVC屏幕内容扩展的INTRA(帧内)块复制模式时处理并行化的方法。其基于可用于在INTRA块复制模式中提供预测器块的区域的控制。

其更具体地应用于其中像素块基于与同一图像有关的预测器块被预测性地编码的编码模式。编码像素块的这种模式通常被称为INTRA块复制模式。它被认为是高效率视频编码(HEVC:ISO/IEC 23008-2MPEG-H Part 2/ITU-T H.265)国际标准的屏幕内容扩展的工具候选,并且现在在该国际标准的屏幕内容扩展中。



背景技术:

当对视频序列中的图像进行编码时,首先将该图像划分为编码元素,这些编码元素是相同尺寸的被称为编码树块(Coding Tree Block)的像素的实体。编码树块的尺寸通常为64 x 64像素。然后,每个编码树块可以在尺寸可以变化且作为要编码的实际块的较小块的分层树中分解。这些要编码的较小的块被称为编码单元(CU)。

特定编码单元的编码通常是预测性的。这意味着首先确定预测器块。接下来,计算预测器块和编码单元之间的差。这个差被称为残差。接下来,这个残差被压缩。编码单元的实际编码信息由如下的一些信息组成,这些信息指示确定预测器块和压缩残差的方式。最佳预测器块是与编码单元尽可能相似的块,以获得可以被有效压缩的小的残差。

编码可能是有损的,这意味着信息在编码过程中丢失。解码的像素块与原始编码单元不完全相同。通常,信息的丢失来自熵编码之前应用于残差的量化。该量化允许以精度损失为代价获得更高的压缩速率。通常,块中的高频被去除,即高级细节(high level of detail)。

编码可以是无损的,这意味着残差不被量化。这种编码允许取回编码单元的原始样本的精确拷贝。无损编码是以与有损压缩相比要小得多的压缩速率为代价来获得的。

编码模式是基于用于确定用于编码单元的预测性编码方法的预测器块的方法来定义的。

第一编码模式被称为INTRA模式。根据INTRA模式,基于当前图像内紧邻编码单元周围的像素的值来构建预测器块。值得注意的是,预测器块不是当前图像的块,而是结构。方向用于确定实际使用边界的哪些像素来构建预测器块以及如何使用它们。INTRA模式背后的理念是,由于自然图像的一般一致性,紧邻编码单元周围的像素很可能类似于当前编码单元的像素。因此,可以使用基于这些周围像素的预测器块得到对编码单元的像素的值的良好预测。

第二编码模式被称为INTER(帧间)模式。根据INTER模式,预测器块是另一图像的块。INTER模式背后的理念是,序列中的连续图像通常非常相似。主要差异通常来自由于相机的滚动或由于场景中的移动物体而导致的这些图像之间的运动。预测器块由相对于当前图像内的编码单元的位置给出其在参考图像中的位置的矢量来确定。该矢量被称为运动矢量。根据该模式,使用该模式的这种编码单元的编码包括运动信息,该运动信息包含运动矢量和压缩残差。

我们在本文中关注被称为INTRA块复制模式的第三种编码模式。根据INTRA块复制模式,块预测器是当前图像的实际块。块矢量被用来定位预测器块。该块矢量相对于同一当前图像中的编码单元的位置给出预测器块在当前图像中的位置。这使得这个块矢量与INTER模式的运动矢量共享一些相似之处。其有时被称为类推运动矢量。严格地说,由于在图像内不会有运动,为了清楚起见,在本文中,运动矢量总是指INTER模式,而块矢量用于INTRA块复制模式。

因果原则是这样的原则,其规定用于解码特定编码单元的所有信息必须基于已经重构的编码单元。在编码时,整个信息可以被视为可用。即,为了对给定编码单元进行编码,可以使用来自整个当前图像的任何信息,或来自序列中的所有解码和可用的其它图像的任何信息。在解码时,事情是不同的。当前图像的解码通常通过顺序地解码所有编码单元来完成。解码的顺序通常遵循光栅扫描顺序,即从图像的左上方开始,从左到右,从上到下发展。可以理解,当对给定编码单元进行解码时,当前图像的只有位于当前编码单元的上部或者左侧的部分已经被解码。这是对当前编码单元进行解码的唯一可用信息。在编码时必须考虑到这一点。例如,INTRA块复制模式中的预测器块应与图像的将在解码时可用的部分相关。

在解码时,为了取回使用INTRA块复制模式编码的块,首先,使用块矢量来确定预测器块。然后将残差解码并应用于预测器以获得原始重构块。

当完整的图像被重构后,应用一些后置滤波。通常,由于块编码,因此应用第一滤波器来去除重构图像中的一些伪像。该滤波器被称为去块滤波器。通常,虽然不是强制性的,然后应用样本自适应环路滤波器(SAO)来获得最终图像。

在一些解码架构中,处理是并行化的,以加速过程。在这种情况下,例如在对前一个编码树块滤波的同时重构特定编码树块。即,并行地进行一些编码树块的重构和其它编码树块的滤波。

HEVC标准提供了如Wavefront(波前)或Tiles(单元)或Slices(片)的一些高级的并行化,以用于帧并行化以及操作间并行化的灵活参考帧管理。这些工具不是强制性的,但是解码器需要解码它们的相关语法,即使它们不是强制性的。

我们在本文中关注Wavefront并行处理,以及如何将其与编码特定编码单元的INTRA块复制模式有效结合。

Wavefront并行处理基于并行化编码树块的行的重构。即,并行地重构多个编码树块。由于编码树块的后续行的重构需要来自先前行的一些信息的事实,因此在每行的处理之间引入延迟。这意味着并行化的不同行的重构在每行之间具有延迟的情况下进行。

当重构根据INTRA块复制模式编码的特定编码单元时,该Wavefront并行处理可能被证明是有问题的。实际上,根据INTRA块复制模式编码的编码单元的块预测器可以位于整个因果区域中的任何地方,即先前的编码树块行和当前行中先前的编码树块。由于先前的行与所考虑的行并行地重构,所以可能发生预测器块在其需要用于根据INTRA块复制模式编码的编码单元的重构时尚未被重构。因此INTRA块复制模式与Wavefront并行重构不完全兼容。



技术实现要素:

本发明的目的在于解决上述一个或多个问题。

根据本发明的第一方面,提供了一种对图像进行编码的方法,所述图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式编码,一个这样的模式是其中块基于预测器块而被编码的模式,该预测器块是当前图像的块,所述方法包括:

确定所述一个模式的搜索区域,该搜索区域是由当前编码树块的任何重构块以及具有坐标(X,Y)的编码树块构成的区域,其中:

Y≤Y0且(X-X0)≤-(Y-Y0)

其中X表示水平坐标,Y表示垂直坐标,原点位于图像的左上角,并且(X0,Y0)是当前编码树块的坐标。

在一个实施例中,使用Wavefront并行处理来执行编码。

在本发明的第二方面中,提供了一种对图像进行解码的方法,所述图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式编码,一个这样的模式是其中块基于预测器块而被解码的模式,该预测器块是当前图像的块,所述方法包括:将能够为所述一个模式获得所述预测器块的区域限制到如下的区域,该区域由当前编码树块的任何重构块以及具有坐标(X,Y)的编码树块构成,其中:

Y≤Y0且(X-X0)≤-(Y-Y0)

其中X表示水平坐标,Y表示垂直坐标,原点位于图像的左上角,并且(X0,Y0)是当前编码树块的坐标。

在一个实施例中,使用Wavefront并行处理来执行解码。

在本发明的第三方面中,提供了一种用于对图像进行编码的设备,所述图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式编码,一个这样的模式是其中块基于预测器块而被编码的模式,该预测器块是当前图像的块,所述设备包括:

用于确定所述一个模式的搜索区域的装置,该搜索区域是由当前编码树块的任何重构块以及具有坐标(X,Y)的编码树块构成的区域,其中:

Y≤Y0且(X-X0)≤-(Y-Y0)

其中X表示水平坐标,Y表示垂直坐标,原点位于图像的左上角,并且(X0,Y0)是当前编码树块的坐标。

在本发明的第四方面中,提供了一种用于对图像进行解码的设备,所述图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式解码,一个这样的模式是其中块基于预测器块而被解码的模式,该预测器块是当前图像的块,所述设备包括:用于将能够获得所述预测器块的区域限制到如下区域的装置,该区域由当前编码树块的任何重构块以及具有坐标(X,Y)的编码树块构成,其中:

Y≤Y0且(X-X0)≤-(Y-Y0)

其中X表示水平坐标,Y表示垂直坐标,原点位于图像的左上角,并且(X0,Y0)是当前编码树块的坐标。例如,限制该区域可以采取以下的形式:如果要从其获得预测器块的区域被发现在由当前编码树的重构块以及具有坐标(X,Y)的编码树块构成的区域之外,则不执行(例如停止)解码过程,其中:

Y≤Y0且(X-X0)≤-(Y-Y0)

其中X表示水平坐标,Y表示垂直坐标,原点位于图像的左上角,并且(X0,Y0)是当前编码树块的坐标。

在本发明的第五方面中,提供了一种用于对图像进行编码和解码的系统,该系统包括根据前述编码器方面的对图像进行编码的设备和根据前述解码器方面的对图像进行解码的设备。

用于编码的设备和用于解码的设备可以被配置为使用Wavefront并行处理。

用于编码的设备和用于解码的设备可以被配置为使用相同数量的同步线程来分别对图像进行编码和解码。

根据本发明的第六方面,提供了一种包括编码图像的比特流,其中编码图像已经根据前述编码方面被编码。

根据本发明的第七方面,提供了一种比特流,包括编码的图像序列,所述图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式编码,一个模式是其中块基于预测器块进行编码的模式,该预测器块是当前图像的块,其中有所述比特流指示的任意预测器块的位置被限制到如下的区域,该区域由当前编码树块的任何重构块以及具有坐标(X,Y)的编码树块构成,其中:

Y≤Y0且(X-X0)≤-(Y-Y0)

其中X表示水平坐标,Y表示垂直坐标,原点位于图像的左上角,并且(X0,Y0)是当前编码树块的坐标。

根据本发明的第八方面,提供一种其上存储有根据前述比特流方面的比特流的机器可读载体或存储介质。载体也可以是其上体现所述比特流的信号。

根据本发明的第九方面,提供了一种用于可编程装置的计算机程序产品,所述计算机程序产品包括当被加载到可编程装置并由其执行时用于实现根据前述方法方面中任一方面的方法的指令序列。

根据本发明的第十方面,提供了一种存储用于实现根据前述方法方面中任一方面的方法的计算机程序的指令的计算机可读存储介质。

根据本发明的另一方面,提供了一种对图像进行编码的方法,所述图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式编码,一个模式被称为INTRA块复制模式,其中块基于预测器块而被编码,该预测器块是当前图像的实际块,所述方法包括:

确定所述INTRA块复制模式的搜索范围,该搜索范围是由当前编码树块的重构块加上具有如下坐标(X,Y)的编码树块构成的区域:

Y≤Y0且X≤X0

其中X表示水平坐标,Y表示垂直坐标,原点位于图像的左上角,并且(X0,Y0)是当前编码树块的坐标以及当前编码树块的重构块。

因此,为了允许Wavefront过程,该实现是简单的。

根据本发明的另一方面,提供了一种对图像进行编码的方法,所述图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式编码,一个模式被称为INTRA块复制模式,其中块基于预测器块而被编码,该预测器块是当前图像的实际块,所述方法包括:

确定所述INTRA块复制模式的搜索范围,该搜索范围是由当前编码树块的重构块加上具有如下坐标(X,Y)的编码树块构成的区域:

Y≤Y0且(X-X0)≤-(Y-Y0)

其中X表示水平坐标,Y表示垂直坐标,原点位于图像的左上角,并且(X0,Y0)是当前编码树块的坐标。

因此,搜索区域更大,这导致更好的编码。

根据本发明的另一方面,提供了一种对图像进行编码的方法,所述图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式编码,一个模式被称为INTRA块复制模式,其中块基于预测器块而被编码,该预测器块是当前图像的实际块,所述方法包括:

确定所述INTRA块复制模式的搜索范围,该搜索范围是当前编码树块的重构块加上具有如下坐标(X,Y)的编码树块构成的区域:

Y≤Y0且(X-X0)≤-2*(Y-Y0)

其中X表示水平坐标,Y表示垂直坐标,原点位于图像的左上角,并且(X0,Y0)是当前编码树块的坐标。

因此,搜索区域更大,这导致更好的编码。

根据本发明的另一方面,提供了一种对图像进行编码的方法,所述图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式编码,一个模式被称为INTRA块复制模式,其中块基于预测器块而被编码,该预测器块是当前图像的实际块,所述方法包括:

确定所述INTRA块复制模式的搜索范围,该搜索范围是当前编码树块的重构块加上具有如下坐标(X,Y)的编码树块构成的区域:

Y≤Y0且(X-X0)<-2*(Y-Y0)

其中X表示水平坐标,Y表示垂直坐标,原点位于图像的左上角,并且(X0,Y0)是当前编码树块的坐标。

因此,实现更简单。

根据本发明的另一方面,提供了一种对图像进行编码的方法,所述图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式编码,一个模式被称为INTRA块复制模式,其中块基于预测器块而被编码,其中预测器块是当前图像的实际块,所述方法包括:

确定所述INTRA块复制模式的搜索范围,该搜索范围是当前编码树块的重构块加上具有如下坐标(X,Y)的编码树块构成的区域:

X≤X0且Y=Y0

其中X表示水平坐标,Y表示垂直坐标,原点位于图像的左上角,并且(X0,Y0)是当前编码树块的坐标。

根据本发明的另一方面,提供了一种对图像进行编码的方法,所述图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式编码,一个模式被称为INTRA块复制模式,其中块基于预测器块而被编码,该预测器块是当前图像的实际块,编码由多个并行编码线程承载,每个线程专用于编码树块的行的编码,该方法包括:确定INTRA块复制模式的搜索范围,该搜索范围是由当前INTRA块复制块的当前编码树块行和先前编码树块行的所有线程重构的所有数据构成的区域。

根据本发明的另一方面,提供了一种对图像进行编码的方法,所述图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式编码,一个模式被称为INTRA块复制模式,其中块基于预测器块而被编码,该预测器块是当前图像的实际块,编码由多个同步的并行编码线程承载,每个线程专用于编码树块的行的编码,该方法包括:确定INTRA块复制模式的搜索范围,该搜索范围是由当前INTRA块复制块(包括当前编码树块)的所有线程重构的所有数据构成的区域。

在一个实施例中,编码是根据Wavefront并行模式进行的。

根据本发明的另一方面,提供了一种对图像进行解码的方法,该图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式进行解码,一个模式被称为INTRA块复制模式,其中块基于预测器块而被编码,该预测器块是当前图像的实际块,解码由多个并行解码线程承载,每个线程专用于编码树块的行的解码,其中所述多个线程是同步的。

根据本发明的另一方面,提供了一种用于对图像进行编码的设备,该图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式被编码,一个模式被称为INTRA块复制模式,其中块基于预测器块而被编码,该预测器块是当前图像的实际块,该设备包括:用于确定INTRA块复制模式的搜索范围的装置,该搜索范围是由当前编码树块的重构块加上具有如下坐标(X,Y)的编码树块构成的区域:

Y≤Y0且X≤X0

其中X表示水平坐标,Y表示垂直坐标,原点位于图像的左上角,其中(X0,Y0)是当前编码树块的坐标。

根据本发明的另一方面,提供了一种用于对图像进行编码的设备,该图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式被编码,一个模式被称为INTRA块复制模式,其中块基于预测器块而被编码,该预测器块是当前图像的实际块,该设备包括:用于确定INTRA块复制模式的搜索范围的装置,该搜索范围是由当前编码树块的重构块加上具有如下坐标(X,Y)的编码树块构成的区域:

Y≤Y0且(X-X0)≤-(Y-Y0)

其中X表示水平坐标,Y表示垂直坐标,原点位于图像的左上角,其中(X0,Y0)是当前编码树块的坐标。

根据本发明的另一方面,提供了一种用于对图像进行编码的设备,该图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式被编码,一个模式被称为INTRA块复制模式,其中块基于预测器块而被编码,该预测器块是当前图像的实际块,该设备包括:用于确定INTRA块复制模式的搜索范围的装置,该搜索范围是由当前编码树块的重构块加上具有如下坐标(X,Y)的编码树块构成的区域:

Y≤Y0和(X-X0)≤-2*(Y-Y0)

其中X表示水平坐标,Y表示垂直坐标,原点位于图像的左上角,其中(X0,Y0)是当前编码树块的坐标。

根据本发明的另一方面,提供了一种用于对图像进行编码的设备,该图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式被编码,一个模式被称为INTRA块复制模式,其中块基于预测器块而被编码,该预测器块是当前图像的实际块,该设备包括:用于确定INTRA块复制模式的搜索范围的装置,该搜索范围是由当前编码树块的重构块加上具有如下坐标(X,Y)的编码树块构成的区域:

Y≤Y0和(X-X0)<-2*(Y-Y0)

其中X表示水平坐标,Y表示垂直坐标,原点位于图像的左上角,其中(X0,Y0)是当前编码树块的坐标。

根据本发明的另一方面,提供了一种用于对图像进行编码的设备,该图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式被编码,一个模式被称为INTRA块复制模式,其中块基于预测器块而被编码,该预测器块是当前图像的实际块,该设备包括:用于确定INTRA块复制模式的搜索范围的装置,该搜索范围是由当前编码树块的重构块加上具有如下坐标(X,Y)的编码树块构成的区域:

X≤X0且Y=Y0

其中X表示水平坐标,Y表示垂直坐标,原点位于图像的左上角,其中(X0,Y0)是当前编码树块的坐标。

根据本发明的另一方面,提供了一种用于对图像进行编码的设备,该图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式被编码,一个模式被称为INTRA块复制模式,其中块基于预测器块而被编码,该预测器块是当前图像的实际块,编码由多个并行编码线程承载,每个线程专用于编码树块的行的编码,该设备包括:用于确定INTRA块复制模式的搜索范围的装置,该搜索范围是由当前INTRA块复制块的当前编码树块行和先前编码树块行的所有线程重构的所有数据构成的区域。

根据本发明的另一方面,提供了一种用于对图像进行编码的设备,该图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式被编码,一个模式被称为INTRA块复制模式,其中块基于预测器块而被编码,该预测器块是当前图像的实际块,该编码由多个同步的并行编码线程承载,每个线程专用于编码树块的行的编码,该设备包括:用于确定INTRA块复制模式的搜索范围的装置,该搜索范围是由当前INTRA块复制块的所有线程重构的所有数据构成的区域。

根据本发明的另一方面,提供了一种用于对图像进行解码的设备,该图像包括由像素块构成的多个编码树块,每个像素块根据多种模式中的模式被解码,一个模式被称为INTRA块复制模式,其中块基于预测器块而被编码,该预测器块是当前图像的实际块,该设备包括:用于处理多个并行解码线程的装置,每个线程专用于编码树块的行的解码;并且其中同步装置用于使所述多个线程同步。

根据本发明的另一方面,提供了一种用于对图像进行编码和解码的系统,该系统包括根据本发明的编码器和根据本发明的解码器。

在一个实施例中,编码器和解码器使用相同数量的同步线程来分别编码和解码图像。

根据本发明的另一方面,提供了一种包括编码图像的比特流,其中编码图像已经根据本发明被编码。

根据本发明的另一方面,提供了一种用于可编程装置的计算机程序产品,该计算机程序产品包括当被加载并由可编程设备执行时用于实现根据本发明的方法的指令序列。

根据本发明的另一方面,提供了一种存储用于实现根据本发明的方法的计算机程序的指令的计算机可读存储介质。

上述本发明的一些方面提到了多种模式中的模式是Intra块复制模式,然而,应当理解,这仅仅是该模式的任意标签,并不意图受到限制。因此,这些方面具有在其预期范围内的任何模式,其中块基于作为正被编码(或解码)的当前图像的实际块的预测器块而被编码(或解码),无论该模式被称为Intra块复制模式或其它模式。

根据本发明的方法的至少一部分可以是计算机实现的。因此,本发明可以采取如下形式:完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合软件和硬件方面的实施例,这些方面可以在本文中通常被称为“电路”、“模块”或“系统”。此外,本发明可以采用计算机程序产品的形式,该计算机程序产品包含在具有计算机可用程序代码(包含在介质中)的任何有形的表达介质中。

由于本发明可以以软件实现,因此本发明可以被实现为在任何合适的载体介质上的用于提供给可编程装置的计算机可读代码。有形载体介质可以包括诸如软盘、CD-ROM、硬盘驱动器、磁带设备或固态存储器设备等的存储介质。瞬态载体介质可以包括诸如电信号、电子信号、光信号、声信号、磁信号或电磁信号之类的信号(例如微波或RF信号)。

附图说明

现在将仅通过示例的方式并且参考以下附图来描述本发明的实施例,在附图中:

图1示出了HEVC编码器架构;

图2示出了HEVC解码器架构;

图3示出了视频帧的级别(level)分解;

图4示出了Wavefront处理的原理;

图5示出了使用Wavefront初始化上下文变量的块的位置;

图6示出了因果区域的概念;

图7示出了INTRA块复制搜索区域;

图8示出了本发明解决的问题;

图9示出了本发明的一个实施例;

图10示出了本发明的一个实施例;

图11示出了本发明的一个实施例;

图12示出了本发明的一个实施例;

图13示出了本发明的一个实施例;以及

图14是用于实现本发明的一个或多个实施例的计算设备的示意性框图。

具体实施方式

图1示出了HEVC编码器架构。在视频编码器中,原始序列101被划分为像素块102。然后对每个块作用(affect)编码模式。在HEVC中通常有两种编码模式:基于空间预测或INTRA模式103的模式以及基于时间预测或INTER模式的模式,该基于时间预测或INTER模式的模式基于运动估计104和运动补偿105。INTRA编码单元通常通过被称为INTRA预测的过程根据其因果边界处的编码像素来预测。

时间预测首先在于在被称为参考帧116的先前或将来的帧中找到参考区域,该参考区域与运动估计步骤104中的编码单元最接近地匹配。该参考区域构成预测器块。接下来,使用预测器块来预测该编码单元以计算运动补偿步骤105中的残差。

在空间预测和时间预测这两种情况下,通过从原始预测器块中减去编码单位来计算残差。

在INTRA预测中,对预测方向进行编码。在时间预测中,对至少一个运动矢量进行编码。然而,为了进一步降低与运动矢量编码相关的比特率成本,不对运动矢量进行直接编码。实际上,假设运动是均匀的,将运动矢量编码为该运动矢量与其周围的运动矢量之间的差是特别感兴趣的。例如,在H.264/AVC编码标准中,关于在当前块的上方和左侧的3个块之间计算的中间矢量来编码运动矢量。仅在中间矢量和当前块运动矢量之间计算的差(也称为残差运动矢量)被在比特流中编码。这是在模块“Mv预测和编码”117中被处理的。每个编码矢量的值被存储在运动矢量字段118中。用于预测的相邻运动矢量被从运动矢量字段118中提取。

然后,在模块106中选择优化速率失真性能的模式。为了进一步减少冗余,在模块107中向残差块应用变换(通常为DCT),并向模块108中的系数应用量化。然后在模块109中对量化的系数块进行熵编码,并将结果插入到比特流110中。

然后,编码器在模块111至116中对未来运动估计的编码帧执行解码。这些步骤允许编码器和解码器具有相同的参考帧。为了重构编码帧,在模块111中对残差进行逆量化,并在模块112中进行逆变换,以便在像素域中提供“重构”残差。根据编码模式(INTER或INTRA),残差被添加到INTER预测器114或INTRA预测器113。

然后,通过一种或多种后置滤波在模块115中对该第一重构进行滤波。这些后置滤波器被集成在编码和解码的回路中。这意味着它们需要应用在编码器和解码器侧的重构帧上,以便在编码器和解码器侧使用相同的参考帧。此后置滤波的目的是去除压缩伪像。

在图2中,已经示出了解码器的原理。视频流201首先在模块202中被熵解码。然后在模块203中对残差数据进行逆量化,并在模块204中进行逆变换以获得像素值。模式数据也根据该模式进行熵解码,INTRA类型解码或INTER类型解码被执行。在INTRA模式的情况下,根据在比特流205中指定的INTRA预测模式来确定INTRA预测器。如果模式是INTER,则从比特流202中提取运动信息。其由参考帧索引和运动矢量残差组成。运动矢量预测器被添加到运动矢量残差以获得运动矢量210。然后使用运动矢量来定位参考帧206中的参考区域。注意,运动矢量场数据211用解码的运动矢量更新,以便用于下一个解码的运动矢量的预测。然后对解码帧的此第一重构用具有与在编码器侧使用的完全相同的后置滤波器进行后置滤波207。解码器的输出是解压缩视频209。

该INTRA块复制编码模式特别适用于极其重复的图案。特别地,已知其有助于编码诸如字形、字符的图形表示或传统GUI元素之类的图形元素,这些是非常难以使用传统INTRA预测方法进行编码的。

值得注意的是,预测是基于相邻编码单元之间的一致性。当在当前帧内考虑时,该一致性可以是地理的,当跨连续帧考虑时,该一致性可以是时间的。这种一致性发生在自然图像中。由于INTRA块复制编码模式被视为专用于文本或符号图像的模式,因此对于这种图像,预测被认为是无用的。例如,没有理由在表示文本的图像中使具有良好预测器的两个连续的编码单元彼此接近。第一个编码单元可能是字母“A”的部分,因此,良好的预测器块将会来自文本中的另一个“A”。而下一个编码单元将是具有来自文本中另一“P”的预测器块的“P”字母。没有理由先验地在同一个相邻地区有两个预测器块。这就是为什么现有技术不考虑在INTRA块复制编码模式中引入预测的原因。

在HEVC中,可以传输特定的NAL单元,称为不同类型的SEI消息。SEI消息包含与显示处理相关的信息,并因此是可选的。

图3示出了HEVC中使用的编码结构。根据HEVC及其前任之一,原始视频序列301是连续的数字图像“图像i”。如本领域技术人员已知的,数字图像由其系数表示像素的一个或多个矩阵表示。

图像302被划分成片303。片是图像的一部分或整个图像。在HEVC中,这些片被划分成不重叠的编码树块(CTB)304,通常尺寸为64像素×64像素的块。每个编码树块可以依次使用四叉树分解被迭代地分成更小的可变尺寸编码单元(CU)305。编码单元是基本编码元素,并且由两个子单元构成,其中最大尺寸的预测单元(PU)和变换单元(TU)等于编码单元的尺寸。预测单元对应于用于预测像素值的编码单元的分区。每个编码单元可进一步分区为最多4个方形分区单元或2个矩形分区单元306。变换单元用于表示利用DCT进行空间变换的基本单元。编码单元可以基于四叉树表示在TU 307中被分区。

每个片被嵌入在一个NAL单元中。此外,视频序列的编码参数被存储在称为参数集的专用NAL单元中。在HEVC和H.264/AVC中,采用两种参数集NAL单元:第一,收集整个视频序列中未改变的所有参数的序列参数集(SPS)NAL单元。通常,它处理编码配置文件、视频帧的尺寸和其它参数。第二,图片参数集(PPS),对可能因帧而不同的值进行编码。HEVC还包括视频参数集(VPS),其包含描述流的整体结构的参数。

对于实时或快速实现,通常需要并行化一些编码和解码过程。HEVC标准提供了一些高级的并行化(如Wavefront或Tiles或Slices)以用于帧并行化以及操作间并行化的灵活参考帧管理。这些工具不是强制性的,但是解码器需要解码其相关语法,即使它们不是强制性的。

当本发明与HEVC的屏幕内容扩展的INTRA块复制工具结合时,本发明专用于Wavefront处理。Wavefront处理的原理被示于图4中。原理是并行化若干行编码树块的解码过程。与避免一些预测来提供并行化但在编码效率方面造成一些损失的Tiles或经典Slices相反,Wavefront保留了绝大多数预测。Wavefront在并行化的每一行之间引入延迟。在图4的示例中,4个线程并行运行。所以,4个当前编码树块被并行解码。在线程之间有延迟;例如,第二流需要由第一线程解码的一些信息。因此,对于熵解码,第二流以一个编码树块的延迟来运行。以同样的方式,线程3需要来自线程2等的一些解码信息...如果我们认为每个编码树块的解析和重构完全相同,则应该如图4所示的那样在解码器处存在2个编码树块的延迟。实际上对于重构,可能需要右上方编码树块的右上方编码单元来解码当前编码树块。因此,为了防止线程等待其先前的线程,应考虑2个编码树块延迟。

在HEVC标准中,Wavefront处理没有明确定义。仅明确地描述了一些CABAC重置。当标志entropY_coding_sYnc_enabled_flag被启用时,并且当对编码树块行的第一编码树块的第一个像素进行解码时,如图5所示,CABAC的上下文变量被用空间相邻块T初始化。更准确地说,CABAC的上下文变量采用与块T的值相同的值。该块是右上方编码树块的第一块。如果该块T不可用,则上下文变量被初始化为帧的第一个编码树块。

因此,对于HEVC Wavefront,只有每个编码树块的第一个块的CABAC依赖性与经典解码过程不同。对于经典解码过程,编码树块行的第一编码树块的上下文变量的值被设置为等于先前编码树块行的最后编码树块的最后块的上下文变量的值。当Wavefront被启用时,该上下文变量用右上方编码树块(T)的上下文变量初始化。这是编码器和解码器在解码器侧使用Wavefront所需的唯一变化。

此外,可以根据某些入口点语法元素将上下文变量CABAC重置为帧的第一编码树块。然而,目前的解决方案不需要这些具体的入口点。

所定义的HEVC的屏幕内容编码扩展包含附加工具以有效编码屏幕编码序列。当前添加的工具是Intra块复制(Intra Block Copy)模式、Palette模式和残差颜色转换。本发明仅专用于Intra块复制模式,因此下面仅描述该模式。

但是,请注意,Palette模式和INTRA块复制模式是新的Intra模式,因此被分别添加到图1和图2的模块103和205中。

Intra块复制(IBC)作为HEVC的屏幕内容编码扩展的附加模式被增加。该预测方法特别适用于极其重复的图案。特别地,已知其有助于编码图形元素,诸如字形(即,字符的图形表示)或传统GUI元素,这些是非常难以使用传统的intra预测方法来编码的。

图6示出了该Intra块复制预测模式的工作原理。

在高级别处,图像被分成以光栅扫描顺序编码的编码单元。因此,当编码块601时,区域603的所有块已经被编码/解码,并且可以被认为对编码器/解码器可用。区域603被称为编码单元601的因果区域。一旦编码单元601被编码/解码,它将属于下一个编码单元的因果区域。该下一个编码单元以及所有下一个编码单元属于被示为点区域的区域604,并且不能用于对当前编码单元601进行编码。值得注意的是,因果区域由原始重构块构成。用于编码给定编码单元的信息不是图像的原始块,这是因为该信息在解码时不可用。在解码时唯一可用的信息是因果区域中的像素块的重构版本,即这些块的解码版本。为此,在编码时,对因果区域的先前编码的块进行解码以提供这些块的重构版本。

INTRA块复制通过用信号通知因果区域中应该用于产生块601的预测的块602来起作用。例如,可以通过使用匹配算法来寻找块602。在HEVC屏幕内容扩展中,该块由块矢量605来指示,并且根据预测器的该矢量的残差在比特流中被发送。

INTRA块复制预测器来自当前帧的所有重构的因果区域。对于其它Intra模式,因果区域不进行回路滤波。

该块矢量是编码单元601的特定点与预测器块602中的对等点之间的坐标差。虽然可以将子像素精度用于INTER块,但是该位移通常是以像素为单位的整数,因此不需要昂贵的子像素插值。

在当前的INTRA块复制设计中,每个INTRA块复制编码单元可以被分为如图3所示的一个或两个PU。对于最小的编码单元尺寸(8×8),编码单元也可以被分为4个各自为4×4像素的PU。

对于Inter模式,N×N分区不可用。这意味着4×4块尺寸不能用于Inter模式。下表总结了两种模式的块尺寸。

在Intra块复制预测模式的当前实现中,在编码器侧的搜索区域取决于块尺寸。这在下表中示出:

请注意,在当前的编码器实现中,仅针对8×8编码单元测试2N×N和N×2N的PU尺寸。这些尺寸在这个表中没有示出。有2种类型的Intra块复制块矢量估计。第一个是经典INTRA块复制搜索,并且它对应于专用块匹配算法。第二个是基于哈希搜索算法。也被定义了两个搜索范围。

如图7所示,对于帧701,两个编码树块搜索范围对应于左编码树块703和已被编码/解码的当前编码树块702的块。已经编码的当前编码树块的块用图7中的点区域示出。全帧搜索对应于已编码/解码的所有编码树块704。

在Intra块复制模式中,“块”矢量是块601中要编码的特定点与图6的预测器块602中的对等点之间的坐标差。虽然可以将子像素精度用于INTER块,但该位移是以像素为单位的整数,因此不需要昂贵的子像素插值。

该块矢量(BV)本身可以使用如下的预测器来预测,该预测器可以是当前编码树块的左侧、上边BV或最新解码的块矢量或最新解码的BV的最新BV。该矢量预测器当然来自解码的Intra块复制块。通过这些方法,预测器索引被传输。

如前所述,INTRA块复制是Intra模式,因此它的预测器来自任何回路滤波之前的原始重构数据。因此,在解码中应该减少使用Wavefront处理的解码器实现。实际上如图8所示,INTRA块复制块预测器可以来自还未被重构的编码树块。因此,这意味着解码器可以完全等待该INTRA块复制预测器的解码过程。因此,通过考虑最坏的情况,即每个编码树块行的每个第一块指向每个先前的编码树块行的最后块,则利用Wavefront的解码过程不能显著快于经典解码。

在本发明的第一实施例中,对于当前编码树块,INTRA块复制搜索范围被限制到所有左边、左上和顶部编码树块,以及当然的当前编码树块的重构块。INTRA块复制搜索范围是图像中根据INTRA块复制模式可以搜索用于给定编码单元的编码的预测器块的区域。这意味着右上方的编码树块被认为对于编码器侧的INTRA块复制预测是不可用的,并因此没有当前编码树块的INTRA块复制块预测器可以指向解码器侧的任何右上方编码树块。图9示出了线程4的当前编码树块的该实施例。

即,INTRA块复制模式的搜索范围被确定为由具有如下坐标(X,Y)的编码树块构成的区域:Y≤Y0且X≤X0

其中X表示水平坐标,Y表示垂直坐标,原点位于图像的左上角,并且其中(X0,Y0)是当前编码树块的坐标。自然地,对于当前的编码树块,该区域只包含已经重构的块。

该解决方案在实现方面非常简单,并且大大简化了Wavefront过程。

在其它实施例中,为了提高编码效率,更多的重构块可用于INTRA块复制预测或当前编码树块。

在一个实施例中,位于始于当前编码树块的右上方并在图像的上边缘处结束的对角线左侧的所有编码树块(CTB)可用于INTRA块复制预测。所提到的对角线沿着阶梯(即梯子)路径,该阶梯(即梯形)路径沿着如下的线:该线沿着X轴在正方向上行进一个CTB,随后沿着Y轴在负方向上行进一个CTB,直到线到达图像的上边缘。此外,当前CTB行(线程)的任何已重构的CTB以及当前CTB的任何重构块也可用于INTRA块复制预测。图10示出了第4线程的当前编码树块的该实施例。在解码器侧,当前编码树块的INTRA块复制预测器仅来自该区域。它对应于使用线程之间的一个编码树块延迟的编码器。

也就是说,在本实施例中,作为由具有坐标(X,Y)的编码树块构成的区域,INTRA块复制模式的搜索范围使得:

Y≤Y0且(X-X0)≤-(Y-Y0)。

在另一个实施例中,除了当前编码树块的重构块之外,对角线左边的具有2个编码树块的延迟的所有编码树块都可用于INTRA块复制预测。图11示出了第4线程的当前编码树块的该实施例。

也就是说,在本实施例中,作为由具有坐标(X,Y)的编码树块构成的区域,INTRA块复制模式的搜索范围使得:

Y≤Y0且(X-X0)≤-2*(Y-Y0)

该实施例与第一实施例相比增加了编码效率,但是如图11所示,潜在地,该搜索范围增大了线程之间的延迟。

在另一个实施例中,除了当前编码树块的重构块,在对角线左边的对于先前的编码树块行具有1个编码树块的延迟且对于所有其它编码树块行具有2个编码树块的延迟的所有编码树块可用于INTRA块复制预测。图12示出了第4线程的当前编码树块的该实施例。它对应于如下的解码器,该解码器用线程之间的2个编码树块延迟对帧进行解码,以使重构的右上方编码单元可用于解码当前编码树块。该区域更专用于解码器Wavefront处理。

也就是说,在本实施例中,作为由具有坐标(X,Y)的编码树块构成的区域,INTRA块复制模式的搜索范围使得:

Y≤Y0且(X-X0)<-2*(Y-Y0)

在一个实施例中,线程的每个INTRA块复制块只能访问由该同一线程重构的块。它对应于在编码器侧使用INTRA块复制的编码树块行搜索区域。该实施例提供了用于Wavefront处理的灵活解码。实际上,与没有INTRA块复制的实现相比,编码树块行之间没有额外的依赖性,但是它降低了编码效率。

也就是说,在本实施例中,作为由具有坐标(X,Y)的编码树块构成的区域,INTRA块复制模式的搜索范围使得:

X≤X0且Y=Y0

在特定实施例中,当启用Wavefront时,编码器和解码器都使用具有所需线程数的Wavefront并行化。此外,对于该实施例,线程是同步的。这意味着每个线程在开始对下一编码树块的解码之前,等待其它线程的所有编码树块的解码结束。在这种情况下,在编码器和解码器处,所有块的重构在编码树块级别被同步。在该实施例中,线程的INTRA块复制块可以访问可用的所有重构的编码树块,即使编码树块在下面的编码树块行中。例如,在图12中,每个解码的编码树块(由X标记)的每个INTRA块复制块在经典实现中可以访问线程4的所有可用数据。此外,编码树块的每个块可以访问其自己的编码树块的所有重构块。该实施例的优点在于,其增加了每个编码树块的平均块数,并且其增加了第一编码树块行的搜索区域,该第一编码树块行由于与其它下面的编码树块行相比缺乏可能的预测,因此比特率通常更高。请注意,在本实施例中,单线程解码器可以获得与多线程解码器相同的解码结果。实际上,只有编码树块同步是强制性的。

图13示出了当单线程解码器实现用于2CTB延迟时的CTB的解码顺序。如果考虑的延迟为1CTB,则需要另外一个顺序。

图14是用于实现本发明的一个或多个实施例的计算设备1400的示意性框图。计算设备1400可以是诸如微机、工作站或轻便便携设备之类的设备。计算设备1400包括连接到以下的通信总线:

-表示为CPU的中央处理单元1401,例如微处理器;

-表示为RAM的随机存取存储器1402,用于存储本发明的实施例的方法的可执行代码,以及寄存器,用于记录实现根据本发明的实施例的用于编码或解码图像的至少一部分的方法所需的变量和参数,其存储器容量可以通过例如连接到扩展端口的可选RAM来扩展;

-表示为ROM的只读存储器1403,用于存储用于实现本发明实施例的计算机程序;

-网络接口1404,通常连接到通过其发送或接收要处理的数字数据的通信网络。网络接口1404可以是单个网络接口,或者由一组不同的网络接口(例如有线和无线接口,或不同种类的有线或无线接口)组成。数据包被写入网络接口以进行传输,或者被从网络接口读取,以便在CPU 1401中运行的软件应用的控制下进行接收;

-用户接口1405,可以用于从用户接收输入或向用户显示信息;

-表示为HD的硬盘1406,可以提供作为大容量存储设备;

-I/O模块1407,可用于从外部设备(例如视频源或显示器)接收数据或将数据发送到该外部设备。

可执行代码可以存储在只读存储器1403中、硬盘1406上或可移动数字介质(例如盘)上。根据变型,可以经由网络接口1404通过通信网络接收程序的可执行代码,以便在执行之前存储在通信设备1400的存储装置之一(诸如硬盘1406)中。

中央处理单元1401适于控制和指导根据本发明的实施例的一个或多个程序的软件代码的指令或一部分的执行,其中指令存储在上述存储装置之一中。上电之后,CPU 1401能够在例如从程序ROM 1403或硬盘(HD)1406加载这些指令之后,执行来自主RAM存储器1402的与软件应用有关的指令。这样的软件应用在由CPU1401执行时,使得执行这里描述的流程图的步骤。

本文描述的算法的任何步骤可以通过由诸如PC(“个人计算机”)、DSP(“数字信号处理器”)或微控制器之类的可编程计算机器执行一组指令或程序来在软件中实现;或者另外由机器或专用部件(例如FPGA(“现场可编程门阵列”)或ASIC(“专用集成电路”)在硬件中实现。

虽然以上已经参考具体实施例描述了本发明,但是本发明不限于这些具体实施例,并且对本领域技术人员而言,修改将是清楚的,这些修改位于本发明的范围内。

在参考前述说明性实施例的情况下,将暗示本领域技术人员许多进一步的修改和变化,上述说明性实施例仅以示例的方式给出,并且不旨在限制仅由所附权利要求确定的本发明的范围。特别地,在适当的情况下,来自不同实施例的不同特征可以互换。

在权利要求中,“包括”一词并不排除其它元素或步骤,并且不定冠词“一”或“一个”不排除多个。在相互不同的从属权利要求中引用不同特征的事实并不表示不能有利地使用这些特征的组合。

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