视频编码器、视频解码器、及对应方法与流程

文档序号:26013163发布日期:2021-07-23 21:34阅读:126来源:国知局
视频编码器、视频解码器、及对应方法与流程

相关申请的交叉引用

本专利申请要求于2018年12月4日提交的申请号为62/775,361的美国临时专利申请的优先权。该美国临时专利申请的全部内容结合于此作为参考。

本发明涉及视频编码和解码领域,尤其涉及视频图像……的方法和装置及对应的编码器和解码器。



背景技术:

数字视频功能可以结合在各种设备中,这些设备包括数字电视、数字直播系统、无线广播系统、个人数字助理(personaldigitalassistant,pda)、膝上型或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏机、蜂窝或卫星无线电话(所谓的“智能电话”)、视频会议设备、视频流传输设备等。数字视频设备实现视频压缩技术,例如,由mpeg-2、mpeg-4、itu-th.263、itu-th.264/mpeg-4第10部分高级视频译码(advancedvideocoding,avc)定义的标准、视频译码标准h.265/高效视频译码(highefficiencyvideocoding,hevc)标准、以及这种标准的扩展中描述的视频压缩技术。通过实施这种视频压缩技术,视频设备可以更高效地发送、接收、编码、解码、和/或存储数字视频信息。

在视频压缩技术中,执行空间(图像内)预测和/或时间(图像间)预测以减少或去除视频序列中的固有冗余。在基于块的视频译码中,可以将视频切片(即,视频帧或视频帧的一部分)分割为几个图像块,并且这些图像块也可以称为树块、译码单元(codingunit,cu)、和/或译码节点。基于同一图像中的相邻块中的参考样本,通过空间预测对图像的待帧内译码(i)切片中的图像块进行译码。对于图像的待帧间译码(p或b)切片中的图像块,可以使用基于同一图像中的相邻块中的参考样本的空间预测或基于另一参考图像中的参考样本的时间预测。图像可以称为帧,并且参考图像可以称为参考帧。



技术实现要素:

本发明的实施例提供一种视频解码方法和装置,以提高解码性能。与传统技术相比,本发明具有许多益处和优点。本发明的实施例提供了方法和装置,这些方法和装置提供提高编码和解码的预测精度并且提高译码效率的方法和装置。

本发明的第一方面提供了一种视频解码方法。该方法包括:

解析位流以获得针对当前译码单元(codingunit,cu)中包括的至少两个变换单元(transformunit,tu)的分割模式,其中,分割模式用于将当前cu的覆盖区域分割为至少两个tu,上述至少两个tu之间没有重叠区域,上述至少两个tu各自具有序列号,上述至少两个tu的序列号与上述至少两个tu在当前cu中的位置一一对应;

获得上述至少两个tu中的当前tu的亮度变换块的变换系数;

基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型,其中,变换类型包括水平变换类型和垂直变换类型;

基于当前tu的亮度变换块的变换类型,对当前tu的亮度变换块的变换系数执行逆变换处理,以获得当前tu的亮度变换块的重建残差;以及

基于当前tu的亮度变换块的重建残差,获得当前cu的重建块。

在一个实施例中,分割模式为水平二元分割,水平二元分割用于将当前cu的覆盖区域水平分割为上tu和下tu,上tu和下tu具有相同的尺寸;对应于上tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型;上tu的序列号为tu0,下tu的序列号为tu1;以及

基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型包括:

在当前tu的序列号为tu0时,将dct-8类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或

在当前tu的序列号为tu1时,将dst-7类型用作当前tu的亮度变换块的变换类型中的垂直变换类型。

在一个实施例中,分割模式为水平二元分割,水平二元分割用于将当前cu的覆盖区域水平分割为上tu和下tu,上tu和下tu具有相同的尺寸;对应于上tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型;上tu的序列号为tu0,下tu的序列号为tu1;以及

基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型包括:

在当前tu的序列号为tu0时,将dst-7类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;或

在当前tu的序列号为tu1时,将dct-8类型用作当前tu的亮度变换块的变换类型中的垂直变换类型。

在一个实施例中,分割模式为垂直二元分割,垂直二元分割用于将当前cu的覆盖区域水平分割为左tu和右tu,左tu和右tu具有相同的尺寸;对应于左tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型;左tu的序列号为tu0,右tu的序列号为tu1;以及

基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型包括:

在当前tu的序列号为tu0时,将dct-8类型用作当前tu的亮度变换块的变换类型中的水平变换类型;或

在当前tu的序列号为tu1时,将dst-7类型用作当前tu的亮度变换块的变换类型中的水平变换类型。

在一个实施例中,分割模式为垂直二元分割,垂直二元分割用于将当前cu的覆盖区域水平分割为左tu和右tu,左tu和右tu具有相同的尺寸;对应于左tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型;左tu的序列号为tu0,右tu的序列号为tu1;以及

基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型包括:

在当前tu的序列号为tu0时,将dst-7类型用作当前tu的亮度变换块的变换类型中的水平变换类型;或

在当前tu的序列号为tu1时,将dct-8类型用作当前tu的亮度变换块的变换类型中的水平变换类型。

在一个实施例中,分割模式为水平三元分割,水平三元分割用于将当前cu的覆盖区域水平分割为上tu、中tu、下tu,上tu和下tu具有相同的尺寸;中tu的尺寸为上tu的尺寸的两倍;对应于上tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型,对应于中tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型;上tu的序列号为tu0,中tu的序列号为tu1,下tu的序列号为tu2;以及

基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型包括:

在当前tu的序列号为tu0时,将dct-8类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或

在当前tu的序列号为tu1时,将dct-2类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或

在当前tu的序列号为tu2时,将dst-7类型用作当前tu的亮度变换块的变换类型中的垂直变换类型。

在一个实施例中,分割模式为水平三元分割,水平三元分割用于将当前cu的覆盖区域水平分割为上tu、中tu、下tu,上tu和下tu具有相同的尺寸;中tu的尺寸为上tu的尺寸的两倍;对应于上tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型,对应于中tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型;上tu的序列号为tu0,中tu的序列号为tu1,下tu的序列号为tu2;以及

基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型包括:

在当前tu的序列号为tu0时,将dct-8类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或

在当前tu的序列号为tu1时,将dst-7类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或

在当前tu的序列号为tu2时,将dst-7类型用作当前tu的亮度变换块的变换类型中的垂直变换类型。

在一个实施例中,分割模式为水平三元分割,水平三元分割用于将当前cu的覆盖区域水平分割为上tu、中tu、下tu,上tu和下tu具有相同的尺寸;中tu的尺寸为上tu的尺寸的两倍;对应于上tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型,对应于中tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型;上tu的序列号为tu0,中tu的序列号为tu1,下tu的序列号为tu2;以及

基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型包括:

在当前tu的序列号为tu0时,将dst-7类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或

在当前tu的序列号为tu1时,将dct-8类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或

在当前tu的序列号为tu2时,将dct-8类型用作当前tu的亮度变换块的变换类型中的垂直变换类型。

在一个实施例中,分割模式为垂直三元分割,垂直三元分割用于将当前cu的覆盖区域水平分割为左tu、中tu、右tu,左tu和右tu具有相同的尺寸;中tu的尺寸为左tu的尺寸的两倍;对应于左tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型,对应于中tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型;左tu的序列号为tu0,中tu的序列号为tu1,右tu的序列号为tu2;以及

基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型包括:

在当前tu的序列号为tu0时,将dct-8类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或

在当前tu的序列号为tu1时,将dct-2类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或

在当前tu的序列号为tu2时,将dst-7类型用作当前tu的亮度变换块的变换类型中的水平变换类型。

在一个实施例中,分割模式为垂直三元分割,垂直三元分割用于将当前cu的覆盖区域水平分割为左tu、中tu、右tu,左tu和右tu具有相同的尺寸;中tu的尺寸为左tu的尺寸的两倍;对应于左tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型,对应于中tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型;左tu的序列号为tu0,中tu的序列号为tu1,右tu的序列号为tu2;以及

基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型包括:

在当前tu的序列号为tu0时,将dct-8类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或

在当前tu的序列号为tu1时,将dst-7类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或

在当前tu的序列号为tu2时,将dst-7类型用作当前tu的亮度变换块的变换类型中的水平变换类型。

在一个实施例中,分割模式为垂直三元分割,垂直三元分割用于将当前cu的覆盖区域水平分割为左tu、中tu、右tu,左tu和右tu具有相同的尺寸;中tu的尺寸为左tu的尺寸的两倍;对应于左tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型,对应于中tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型;左tu的序列号为tu0,中tu的序列号为tu1,右tu的序列号为tu2;以及

基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型包括:

在当前tu的序列号为tu0时,将dst-7类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或

在当前tu的序列号为tu1时,将dct-8类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或

在当前tu的序列号为tu2时,将dct-8类型用作当前tu的亮度变换块的变换类型中的水平变换类型。

在一个实施例中,该方法还包括:

解析位流以获得当前tu的亮度变换块的变换类型的指示信息;其中

基于分割模式获得当前tu的亮度变换块的变换类型包括:

基于分割模式和指示信息,获得当前tu的亮度变换块的变换类型。

在一个实施例中,dct-8类型被替换为dct-4类型,或

dst-7类型被替换为dst-4类型。

本发明的第二方面提供了一种视频解码装置。该装置包括:

熵解码单元,用于解析位流以获得针对当前cu中包括的至少两个tu的分割模式,其中,分割模式用于将当前cu的覆盖区域分割为上述至少两个tu,上述至少两个tu之间没有重叠区域,上述至少两个tu各自具有序列号,上述至少两个tu的序列号与上述至少两个tu在当前cu中的位置一一对应;

反量化单元,用于获得上述至少两个tu中的当前tu的亮度变换块的变换系数;

逆变换处理单元,用于基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型,变换类型包括水平变换类型和垂直变换类型;以及基于当前tu的亮度变换块的变换类型,对当前tu的亮度变换块的变换系数执行逆变换处理,以获得当前tu的亮度变换块的重建残差;以及

重建单元,用于基于当前tu的亮度变换块的重建残差,获得当前cu的重建块。

在一个实施例中,分割模式为水平二元分割,水平二元分割用于将当前cu的覆盖区域水平分割为上tu和下tu,上tu和下tu具有相同的尺寸;对应于上tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型;上tu的序列号为tu0,下tu的序列号为tu1;以及

其中,为了基于分割模式和当前tu的序列号获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:

在当前tu的序列号为tu0时,将dct-8类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或

在当前tu的序列号为tu1时,将dst-7类型用作当前tu的亮度变换块的变换类型中的垂直变换类型。

在一个实施例中,分割模式为水平二元分割,水平二元分割用于将当前cu的覆盖区域水平分割为上tu和下tu,上tu和下tu具有相同的尺寸;对应于上tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型;上tu的序列号为tu0,下tu的序列号为tu1;以及

其中,为了基于分割模式和当前tu的序列号获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:

在当前tu的序列号为tu0时,将dst-7类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或

在当前tu的序列号为tu1时,将dct-8类型用作当前tu的亮度变换块的变换类型中的垂直变换类型。

在一个实施例中,分割模式为垂直二元分割,垂直二元分割用于将当前cu的覆盖区域水平分割为左tu和右tu,左tu和右tu具有相同的尺寸;对应于左tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型;左tu的序列号为tu0,右tu的序列号为tu1;以及

其中,为了基于分割模式和当前tu的序列号获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:

在当前tu的序列号为tu0时,将dct-8类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或

在当前tu的序列号为tu1时,将dst-7类型用作当前tu的亮度变换块的变换类型中的水平变换类型。

在一个实施例中,分割模式为垂直二元分割,垂直二元分割用于将当前cu的覆盖区域水平分割为左tu和右tu,左tu和右tu具有相同的尺寸;对应于左tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型;左tu的序列号为tu0,右tu的序列号为tu1;以及

其中,为了基于分割模式和当前tu的序列号获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:

在当前tu的序列号为tu0时,将dst-7类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或

在当前tu的序列号为tu1时,将dct-8类型用作当前tu的亮度变换块的变换类型中的水平变换类型。

在一个实施例中,分割模式为水平三元分割,水平三元分割用于将当前cu的覆盖区域水平分割为上tu、中tu、下tu,上tu和下tu具有相同的尺寸;中tu的尺寸为上tu的尺寸的两倍;对应于上tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型,对应于中tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型;上tu的序列号为tu0,中tu的序列号为tu1,下tu的序列号为tu2;以及

其中,为了基于分割模式和当前tu的序列号获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:

在当前tu的序列号为tu0时,将dct-8类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或

在当前tu的序列号为tu1时,将dct-2类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;或者

在当前tu的序列号为tu2时,将dst-7类型用作当前tu的亮度变换块的变换类型中的垂直变换类型。

在一个实施例中,分割模式为水平三元分割,水平三元分割用于将当前cu的覆盖区域水平分割为上tu、中tu、下tu,上tu和下tu具有相同的尺寸;中tu的尺寸为上tu的尺寸的两倍;对应于上tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型,对应于中tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型;上tu的序列号为tu0,中tu的序列号为tu1,下tu的序列号为tu2;以及

其中,为了基于分割模式和当前tu的序列号获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:

在当前tu的序列号为tu0时,将dct-8类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或

在当前tu的序列号为tu1时,将dst-7类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或

在当前tu的序列号为tu2时,将dst-7类型用作当前tu的亮度变换块的变换类型中的垂直变换类型。

在一个实施例中,分割模式为水平三元分割,水平三元分割用于将当前cu的覆盖区域水平分割为上tu、中tu、下tu,上tu和下tu具有相同的尺寸;中tu的尺寸为上tu的尺寸的两倍;对应于上tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型,对应于中tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型;上tu的序列号为tu0,中tu的序列号为tu1,下tu的序列号为tu2;以及

其中,为了基于分割模式和当前tu的序列号获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:

在当前tu的序列号为tu0时,将dst-7类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或

在当前tu的序列号为tu1时,将dct-8类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或

在当前tu的序列号为tu2时,将dct-8类型应用于当前tu的亮度变换块的变换类型中的垂直变换类型。

在一个实施例中,分割模式为垂直三元分割,垂直三元分割用于将当前cu的覆盖区域水平分割为左tu、中tu、右tu,左tu和右tu具有相同的尺寸;中tu的尺寸为左tu的尺寸的两倍;对应于左tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型,对应于中tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型;左tu的序列号为tu0,中tu的序列号为tu1,右tu的序列号为tu2;以及

其中,为了基于分割模式和当前tu的序列号获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:

在当前tu的序列号为tu0时,将dct-8类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或

在当前tu的序列号为tu1时,将dct-2类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或

在当前tu的序列号为tu2时,将dst-7类型用作当前tu的亮度变换块的变换类型中的水平变换类型。

在一个实施例中,分割模式为垂直三元分割,垂直三元分割用于将当前cu的覆盖区域水平分割为左tu、中tu、右tu,左tu和右tu具有相同的尺寸;中tu的尺寸为左tu的尺寸的两倍;对应于左tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型,对应于中tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型;左tu的序列号为tu0,中tu的序列号为tu1,右tu的序列号为tu2;以及

其中,为了基于分割模式和当前tu的序列号获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:

在当前tu的序列号为tu0时,将dct-8类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或

在当前tu的序列号为tu1时,将dst-7类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或

在当前tu的序列号为tu2时,将dst-7类型用作当前tu的亮度变换块的变换类型中的水平变换类型。

在一个实施例中,分割模式为垂直三元分割,垂直三元分割用于将当前cu的覆盖区域水平分割为左tu、中tu、右tu,左tu和右tu具有相同的尺寸;中tu的尺寸为左tu的尺寸的两倍;对应于左tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型,对应于中tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型;左tu的序列号为tu0,中tu的序列号为tu1,右tu的序列号为tu2;以及

其中,为了基于分割模式和当前tu的序列号获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:

在当前tu的序列号为tu0时,将dst-7类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或

在当前tu的序列号为tu1时,将dct-8类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或

在当前tu的序列号为tu2时,将dct-8类型用作当前tu的亮度变换块的变换类型中的水平变换类型。

在一个实施例中,该装置还用于:

解析位流以获得当前tu的亮度变换块的变换类型的指示信息;其中

为了基于分割模式获得当前tu的亮度变换块的变换类型,该装置用于:

基于分割模式和指示信息,获得当前tu的亮度变换块的变换类型。

在一个实施例中,dct-8类型被替换为dct-4类型,或

dst-7类型被替换为dst-4类型。

根据第三方面,本申请的实施例提供一种解码设备。该解码设备包括:用于存储程序代码的非易失性存储器以及耦合到非易失性存储器的处理器,其中,处理器调用存储在存储器中的程序代码,以执行第一方面的任何方法的一些或全部步骤。

根据第四方面,本发明的实施例提供一种计算机可读存储介质,该计算机可读存储介质存储程序代码,该程序代码包括用于执行第一方面中的任何方法的一些或全部步骤的指令或指令集。

根据第五方面,本发明的实施例提供一种计算机可执行的计算机程序产品,当该计算机程序产品在计算机上运行时,该计算机执行第一方面中的任何方法的一些或全部步骤。

应理解,本发明的第二方面到第十方面中的技术方案与第一方面中的技术方案一致。各个方面和对应的可行实施方式实现的有益效果是相似的,并且不再赘述。

附图说明

为了更清楚地描述本发明实施例或背景技术中的方案,下面简要描述用于描述本发明实施例或背景技术的附图。

图1a是用于实现本发明实施例的视频编码和解码系统10的示例的框图;

图1b是用于实现本发明实施例的视频译码系统40的示例的框图;

图2是用于实现本发明实施例的编码器20的示例结构的框图;

图3是用于实现本发明实施例的解码器30的示例结构的框图;

图4是用于实现本发明实施例的视频译码设备400的示例的框图;

图5是用于实现本发明实施例的编码装置或解码装置的另一示例的框图;

图6是示出用于实现本发明实施例的视频解码方法的简化流程图;

图7是用于实现本发明实施例的包括水平二元分割和垂直二元分割的分割模式的图示;

图8是用于实现本发明实施例的包括水平三元分割和垂直三元分割的分割模式的图示;

图9是用于实现本发明实施例的包括四元分割的分割模式的图示;以及

图10是用于实现本发明实施例的视频解码设备的结构框图。

具体实施方式

下面参考本发明实施例中的附图描述本发明的实施例。在以下描述中参考附图,这些附图形成本公开的一部分,并且通过图示的方式示出本发明实施例的特定方面或可以使用本发明实施例的特定方面。应理解,本发明的实施例可以用于其他方面,并且可以包括未在附图中描绘的结构或逻辑改变。因此,以下具体实施方式不应解释为限制性的,并且本发明的范围由所附权利要求界定。例如,应理解,结合所描述的方法的公开内容对于用于执行该方法的对应设备或系统也适用,反之亦然。例如,如果描述的是一个或多个特定方法步骤,则对应的设备可以包括一个或多个单元(例如,功能单元)用于执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤;或多个单元各自执行多个步骤中的一个或多个),即使附图中未明确描述或图示这种一个或多个单元。另一方面,例如,如果基于一个或多个单元(例如,功能单元)来描述特定设备,则对应的方法可以包括一个或多个步骤用于执行一个或多个单元的功能(例如,一个步骤用于执行一个或多个单元的功能,或多个步骤各自用于执行多个单元中的一个或多个单元的功能),即使附图中未明确描述或图示这种一个或多个步骤。此外,应理解,除非另外特别指出,否则本说明书中描述的各种示例实施例和/或方面的特征可以彼此组合。

本发明实施例中的技术方案不仅可以应用于现有的视频译码标准(例如h.264标准和hevc标准),还可以应用于未来的视频译码标准(例如h.266标准)。本发明的“具体实施方式”部分中使用的术语仅旨在解释本发明的特定实施例,而无意限制本发明。在下文中,首先简要描述可以在本发明的实施例中使用的一些概念。

视频译码通常是指处理形成视频或视频序列的图像序列。在视频译码领域,术语“帧”或“图像(picture/image)”可以用作同义词。本说明书中使用的视频译码表示视频编码或视频解码。视频编码在源侧执行,并且通常包括(例如通过压缩)处理原始视频图像,以减少表示视频图像所需的数据量,以便更高效地存储和/或传输。视频解码在目的地侧执行,并且通常包括相对于编码器的逆处理,以重建视频图像。实施例中的视频图像“译码”应理解为视频序列的“编码”或“解码”。编码部分和解码部分的组合也称为编解码(编码和解码)。

视频序列包括一系列图像,图像被进一步分割为切片,切片被进一步分割为块。在视频译码中,对每个块执行译码处理。在一些新视频译码标准中,块的概念得到进一步的扩展。例如,在h.264标准中,存在宏块(macroblock,mb),宏块可以被进一步分割为可以用于预测译码的多个分区。在高效视频译码(highefficiencyvideocoding,hevc)标准中,使用了诸如译码单元(codingunit,cu)、预测单元(predictionunit,pu)、以及变换单元(transformunit,tu)等基本概念,从而通过功能划分获得了多种类型的块单元,并参考新的基于树的结构描述这些单元。例如,可以基于四叉树将cu分割为较小的cu,较小的cu可以继续分割,从而形成四叉树结构,并且cu是用于分割以及对待译码图像进行译码的基本单元。pu和tu也具有类似的树结构,并且pu可以对应于预测块,并且是预测译码的基本单元。cu基于分割模式被进一步分割为多个pu。tu可以对应于变换块,并且是用于对预测残差进行变换的基本单元。通常,cu、pu、tu都是块(或称为图像块)的概念。

例如,在hevc中,使用表示为译码树的四叉树结构将译码树单元(codingtreeunit,ctu)分割为多个cu。ctu的尺寸可以设置为64×64、1280×128、256×256等。例如,64×64ctu包括矩形矩阵,该矩形矩阵具有64列,每列64个像素。像素可以仅包括亮度分量,或者可以包括一个亮度分量(称为y)和两个色度分量(称为cb和cr)。像素的亮度分量称为亮度像素,像素的色度分量称为色度像素。在cu级决定是使用图像间(时间)还是图像内(空间)预测对图像区域进行译码。可以基于pu划分类型将每个cu进一步分割为一个、两个、或四个pu。在一个pu内,应用相同的预测过程,并且基于pu将相关信息发送到解码器。在通过应用基于pu划分类型的预测处理而获得残差块之后,可以基于类似于用于cu的译码树的另一四叉树结构将cu划分为变换单元(tu)。在视频压缩技术的最新发展中,四叉树和二叉树(quad-treeandbinary-tree,qtbt)划分帧用于划分编码块。在qtbt块结构中,cu可以具有正方形形状或矩形形状。

在本说明书中,为了便于描述和理解,当前待译码图像中的待译码图像块可以称为当前块。例如,在编码中,当前块是当前正在编码的块,在解码中,当前块是当前正在解码的块。参考图像中用于预测当前块的解码图像块称为参考块。换句话说,参考块是为当前块提供参考信号的块,其中,参考信号指示图像块中的像素值。为参考图像中的当前块提供预测信号的块可以称为预测块,并且该预测信号指示预测块中的像素值、采样值、或采样信号。例如,在遍历多个参考块之后,找到最优参考块,并且最优参考块为当前块提供预测,并且该块称为预测块。

在无损视频译码的情况下,可以重建原始视频图像,这表示重建的视频图像的质量与原始视频图像相同(假设在存储或传输期间没有传输损耗或其他数据损耗)。在有损视频译码的情况下,通过例如量化执行进一步的压缩,以减少表示视频图像所需的数据量,并且解码器侧不能完全重建视频图像,这表示重建的视频图像的质量比原始视频图像低或差。

几种h.261视频译码标准用于“有损混合视频编解码器”(即,将样本域中的空间预测和时间预测与变换域中用于应用量化的2d变换译码组合)。视频序列的每个图像通常被分割为一组不重叠的块,通常在块级执行译码。换句话说,在编码器侧,通常在块(视频块)级对视频进行处理(即,编码)。例如,通过空间(图像内)预测和时间(图像间)预测来生成预测块,从当前块(当前正在处理或待处理的块)中减去该预测块以获得残差块,在变换域中对残差块进行变换和量化,以减少待传输(压缩)的数据量。在解码器侧,将相对于编码器的逆处理部分应用于经编码或压缩的块,以重建当前块以进行表示。此外,编码器和解码器的处理循环相同,使得编码器和解码器生成相同的预测(例如,帧内预测和帧间预测)和/或重建,用于对后续块进行处理(即,译码)。

以下描述了本发明实施例所应用于的系统架构。图1a是本发明实施例所应用于的视频编码和解码系统10的示例的示意框图。如图1a所示,视频编码和解码系统10可以包括源设备12和目的地设备14。源设备12生成编码的视频数据,因此源设备12可以称为视频编码设备。目的地设备14可以对源设备12生成的编码视频数据进行解码,因此目的地设备14可以称为视频解码设备。源设备12、目的地设备14、或源设备12或目的地设备14的各种实现方案可以包括一个或多个处理器以及耦合到上述一个或多个处理器的存储器。如本说明书中所述,存储器可以包括但不限于ram、rom、eeprom、闪存、或可用于以计算机可访问的指令或数据结构形式存储所需程序代码的任何其他介质。源设备12和目的地设备14可以包括各种设备,包括台式计算机、移动计算设备、笔记本计算机(例如,膝上型计算机)、平板计算机、机顶盒、电话手机(例如所谓的“智能”电话)、电视、相机、显示设备、数字媒体播放器、视频游戏机、车载计算机、无线通信设备等。

虽然图1a将源设备12和目的地设备14描绘为单独的设备,但是设备实施例可以可替代地包括源设备12和目的地设备14或源设备12和目的地设备14的功能。即,源设备12或相应的功能以及目的地设备14或相应的功能。在这种实施例中,可以使用相同的硬件和/或软件、单独的硬件和/或软件、或其任何组合来实现源设备12或相应的功能以及目的地设备14或相应的功能。

源设备12和目的地设备14之间的通信连接可以通过链路13来实现,目的地设备14可以通过链路13从源设备12接收编码的视频数据。链路13可以包括能够将编码的视频数据从源设备12移动到目的地设备14的一个或多个介质或装置。在一个示例中,链路13可以包括使源设备12能够实时将编码的视频数据直接发送到目的地设备14的一个或多个通信介质。在该示例中,源设备12可以根据通信标准(例如,无线通信协议)调制编码的视频数据,并且可以将调制的视频数据发送到目的地设备14。上述一个或多个通信介质可以包括:无线通信介质和/或有线通信介质,例如射频(radiofrequency,rf)频谱或一个或多个物理传输线。上述一个或多个通信介质可以形成基于分组的网络的一部分,并且基于分组的网络例如是局域网、广域网、或全局网(例如,互联网)。上述一个或多个通信介质可以包括路由器、交换机、基站、或促进从源设备12到目的地设备14的通信的另一设备。

源设备12包括编码器20,并且在一个实施例中,源设备12还可以包括图像源16、图像预处理器18、以及通信接口22。在特定实施方式中,编码器20、图像源16、图像预处理器18、以及通信接口22可以是源设备12中的硬件组件,也可以是源设备12中的软件程序。单独的描述如下:

图像源16可以包括或可以是任何类型的图像捕获设备,该图像捕获设备用于例如捕获真实世界的图像;和/或用于生成图像或注释的任何类型的设备(对于屏幕内容编码,屏幕上的某些文本也视为待编码图像的一部分),例如用于生成计算机动画图像的计算机图形处理器;或用于获得和/或提供现实世界图像或计算机动画图像(例如,屏幕内容或虚拟现实(virtualreality,vr)图像)和/或其任何组合(例如,增强现实(augmentedreality,ar)图像)的任何类型的设备。图像源16可以是用于捕获图像的相机或用于存储图像的存储器。图像源16还可以包括用于存储先前捕获或生成的图像和/或用于获得或接收图像的任何类型的(内部或外部)接口。当图像源16是相机时,图像源16可以是例如本地相机或集成在源设备中的集成相机。当图像源16是存储器时,图像源16可以是本地存储器或例如集成在源设备中的集成存储器。当图像源16包括接口时,该接口可以是例如用于从外部视频源接收图像的外部接口。外部视频源例如是诸如相机、外部存储器、或外部图像生成设备等外部图像捕获设备。外部图像生成设备是例如外部计算机图形处理器、计算机、或服务器。该接口可以是根据任何专有或标准化接口协议的任何类型的接口,例如,有线或无线接口或光学接口。

图像可以视为像素(图像元素)的二维阵列或矩阵。阵列中的像素也可以称为样本。阵列或图像在水平方向和垂直方向(或轴)上的样本数量限定了图像的尺寸和/或分辨率。为了表示颜色,通常使用三种颜色分量,具体而言,图像可以表示为或包括三个样本阵列。例如,在rgb格式或颜色空间中,图像包括相应的红色、绿色和蓝色样本阵列。然而,在视频译码中,通常由亮度/色度格式或颜色空间表示每个像素,例如,yuv格式的图像包括表示为y(或表示为l)的亮度分量和表示为u和v的两个色度分量。亮度(luma)分量y表示亮度或灰度级强度(例如,在灰度图像中两者相同),两个色度(chroma)分量u和v表示色度或颜色信息分量。因此,yuv格式的图像包括亮度样本值(y)的亮度样本阵列和色度值(u和v)的两个色度样本阵列。rgb格式的图像可以转换或变换为yuv格式的图像,反之亦然。此过程也称为颜色转换或变换。如果图像是单色的,则该图像可以仅包括亮度样本阵列。在本发明的该实施例中,由图像源16发送到图像预处理器18的图像也可以称为原始图像数据17。

图像预处理器18用于接收原始图像数据17并对原始图像数据17执行预处理,以获得预处理的图像19或预处理的图像数据19。例如,图像预处理器18执行的预处理可以包括:调整、颜色格式转换(例如,从rgb格式转换为yuv格式)、调色、或去噪。

编码器20(也称为视频编码器20)用于接收预处理的图像数据19,并使用相关的预测模式(例如,本说明书的每个实施例中的预测模式)处理预处理的图像数据19,以提供编码的图像数据21(下面参考图2、图4、或图5进一步描述编码器20的结构细节)。在一些实施例中,编码器20可以用于执行以下描述的各种实施例,以实现本发明中描述的色度变换块预测方法的编码器侧应用。

通信接口22可以用于接收编码的图像数据21,并且通过链路13将编码的图像数据21传输到目的地设备14或任何其他设备(例如,存储器)用于存储或直接重建。任何其他设备可以是用于解码或存储的任何设备。通信接口22可以例如用于将编码的图像数据21封装成适合的格式(例如,数据包)用于在链路13上传输。

目的地设备14包括解码器30,并且在一个实施例中,目的地设备14还可以包括通信接口28、图像后处理器32、以及显示设备34。单独的描述如下:

通信接口28可以用于从源设备12或任何其他源接收编码的图像数据21。任何其他源可以是例如存储设备,并且该存储设备可以是例如编码图像数据存储设备。通信接口28可以用于通过源设备12和目的地设备14之间的链路13或通过任何类型的网络发送或接收编码的图像数据21。链路13可以是例如直接的有线或无线连接,并且任何类型的网络可以是例如有线或无线网络或其任何组合,或者任何类型的专用或公共网络或其任何组合。通信接口28可以例如用于解封装通过通信接口22发送的数据包,以获得编码的图像数据21。

通信接口28和通信接口22均可配置为单向通信接口或双向通信接口,并且可以用于例如发送和接收消息,以建立连接、确认、交换任何其他与通信链路和/或数据传输(例如,编码图像数据传输)有关的信息。

解码器30(也称为视频解码器30)用于接收编码的图像数据21并提供解码的图像数据31或解码的图像31(下面基于图3、图4、或图5进一步描述解码器30的结构细节)。在一些实施例中,解码器30可以用于执行以下描述的各种实施例,以实现本发明中描述的色度变换块预测方法的解码器侧应用。

图像后处理器32用于对解码的图像数据31(也称为重建的图像数据)进行后处理,以获得后处理的图像数据33。图像后处理器32执行的后处理可以包括:颜色格式转换(例如,从yuv格式转换为rgb格式)、调色、调整、重采样、或任何其他处理。图像后处理器32还可以用于将后处理的图像数据33发送到显示设备34。

显示设备34用于接收后处理的图像数据33,以向例如用户或观看者显示图像。显示设备34可以是或包括用于呈现重建的图像的任何类型的显示器,例如,集成或外部显示器或监视器。例如,显示器可以包括液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclightemittingdiode,oled)显示器、等离子显示器、投影仪、微型led显示器、硅基液晶(liquidcrystalonsilicon,lcos)、数字光处理器(digitallightprocessor,dlp)、或任何其他类型的显示器。

虽然图1a将源设备12和目的地设备14描绘为单独的设备,但是设备实施例可以可替代地包括源设备12和目的地设备14两者或者源设备12和目的地设备14的功能,即,源设备12或相应的功能以及目的地设备14或相应的功能。在这种实施例中,可以使用相同的硬件和/或软件、单独的硬件和/或软件、或其任何组合来实现源设备12或相应的功能以及目的地设备14或相应的功能。

基于描述,对于本领域技术人员显而易见的是,图1a所示的源设备12和/或目的地设备14的不同单元的功能或功能的存在和(精确)划分可以因实际设备和应用而异。源设备12和目的地设备14可以包括多种设备中的任何一种,包括任何类型的手持式或固定式设备,例如,笔记本或膝上型计算机、移动电话、智能电话、平板或平板计算机、摄像机、台式计算机、机顶盒、电视、相机、车载设备、显示设备、数字媒体播放器、视频游戏机、视频流传输设备(例如内容服务服务器或内容交付服务器)、广播接收器设备、或广播发射器设备,并且可以不使用或可以使用任何类型的操作系统。

编码器20和解码器30均可以实现为各种合适的电路中的任何一种,例如,一个或多个微处理器、数字信号处理器(digitalsignalprocessors,dsp)、专用集成电路(application-specificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)、离散逻辑、硬件或其任何组合。如果使用软件来部分地实现这些技术,则设备可以将软件指令存储在合适的非暂时性计算机可读存储介质中,并且可以使用诸如一个或多个处理器等硬件来执行指令,以执行本公开的技术。前述任何一个(包括硬件、软件、硬件和软件的组合等)可以视为一个或多个处理器。

在某些情况下,图1a所示的视频编码和解码系统10仅是示例,并且本发明的技术可以应用于不一定包括编码设备和解码设备之间的任何数据通信的视频译码设置(例如,视频编码或视频解码)。在其他示例中,可以从本地存储器检索数据,通过网络流传输数据等。视频编码设备可以对数据进行编码并将数据存储在存储器中,和/或视频解码设备可以从存储器中检索数据并对数据进行解码。在一些示例中,由彼此不通信而是仅将数据编码在存储器中和/或从存储器检索数据并对数据进行解码的设备执行编码和解码。

图1b是根据示例实施例的包括图2中的编码器20和/或图3中的解码器30的视频译码系统40的示例的示意图。视频译码系统40可以实现本发明的实施例中的各种技术的组合。在示出的实施方式中,视频译码系统40可以包括成像设备41、编码器20、解码器30(和/或由处理单元46的逻辑电路实现的视频编码器/解码器)、天线42、一个或多个处理器43、一个或多个存储器44、和/或显示设备45。

如图1b所示,成像设备41、天线42、处理单元46、逻辑电路47、编码器20、解码器30、处理器43、存储器44、和/或显示设备45可以互相通信。如所描述的,虽然视频译码系统40示为具有编码器20和解码器30,但是在不同示例中,视频译码系统40可以仅包括编码器20或仅包括解码器30。

在一些示例中,天线42可以用于发送或接收视频数据的编码位流。此外,在一些示例中,显示设备45可以用于呈现视频数据。在一些示例中,逻辑电路47(未示出)可以由处理单元46实现。处理单元46可以包括专用集成电路(asic)逻辑、图形处理器、通用处理器等。视频译码系统40还可以包括可选处理器43。可选处理器43可以类似地包括专用集成电路(asic)逻辑、图形处理器、通用处理器等。在一些示例中,逻辑电路47可以由硬件(例如,视频译码专用硬件)来实现,并且处理器43可以由通用软件、操作系统等来实现。此外,存储器44可以是任何类型的存储器,例如,易失性存储器(例如,静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram))或非易失性存储器(例如闪存)。在非限制性示例中,存储器44可以由高速缓冲存储器实现。在一些示例中,逻辑电路47可以访问存储器44(例如,用于实现图像缓冲器)。在其他示例中,逻辑电路47和/或处理单元46可以包括用于实现图像缓冲器等的存储器(例如,高速缓存)。

在一些示例中,由逻辑电路实现的编码器20可以包括图像缓冲器(例如,由处理单元46或存储器44实现)和图形处理单元(例如,由处理单元46实现)。图形处理单元可以通信地耦合到图像缓冲器。图形处理单元可以包括由逻辑电路47实现的编码器20,以实现参考图2描述的各种模块和/或本说明书中描述的任何其他编码器系统或子系统。逻辑电路可以用于执行本说明书中描述的各种操作。

在一些示例中,解码器30可以由逻辑电路47以类似方式实现,以实现参考图3中的解码器30和/或本说明书中描述的任何其他解码器系统或子系统描述的各种模块。在一些示例中,由逻辑电路实现的解码器30可以包括图像缓冲器(例如,由处理单元46或存储器44实现)和图形处理单元(例如,由处理单元46实现)。图形处理单元可以通信地耦合到图像缓冲器。图形处理单元可以包括由逻辑电路47实现的解码器30,以实现参考图3描述的各种模块和/或本说明书中描述的任何其他解码器系统或子系统。

在一些示例中,天线42可以用于接收视频数据的编码位流。如所描述的,编码的位流可以包括与本说明书中描述的视频帧编码有关的数据、指示符、索引值、模式选择数据等,例如,与译码划分有关的数据(例如,变换系数或量化的变换系数、可选指标(如上所述)、和/或定义译码划分的数据)。视频译码系统40还可以包括解码器30,解码器30耦合到天线42并且用于对编码位流进行解码。显示设备45用于呈现视频帧。

应理解,在本发明的该实施例中,对于参考编码器20描述的示例,解码器30可以用于执行逆处理。对于信令语法元素,解码器30可以用于接收和解析这种语法元素并且相应地解码相关的视频数据。在一些示例中,编码器20可以将语法元素熵编码为编码的视频位流。在这种示例中,解码器30可以解析这种语法元素并且相应地解码相关的视频数据。

本发明的该实施例中的编码器20和解码器30可以是对应于诸如h.263、h.264、hevc、mpeg-2、mpeg-4、vp8、vp9或下一代视频标准协议(例如h.266)等视频标准协议的编码器和解码器。

图2是用于实现本发明实施例的编码器20的示例的示意/概念框图。在图2的示例中,编码器20包括残差计算单元204、变换处理单元206、量化单元208、反量化单元210、逆变换处理单元212、重建单元214、缓冲器216、环路滤波器单元220、解码图像缓冲器(decodedpicturebuffer,dpb)230、预测处理单元260、以及熵编码单元270。预测处理单元260可以包括帧间预测单元244、帧内预测单元254、以及模式选择单元262。帧间预测单元244可以包括运动估计单元和运动补偿单元(图中未示出)。图2中所示的编码器20也可以称为混合视频编码器或基于混合视频编解码器的视频编码器。

例如,残差计算单元204、变换处理单元206、量化单元208、预测处理单元260、以及熵编码单元270形成编码器20的前向信号路径,然而例如反量化单元210、逆变换处理单元212、重建单元214、缓冲器216、环路滤波器220、解码图像缓冲器(dpb)230、以及预测处理单元260形成编码器的后向信号路径,其中,编码器的后向信号路径对应于解码器(参考图3中的解码器30)的信号路径。

编码器20例如使用输入端202接收图像201或图像201的图像块203,图像201例如是形成视频或视频序列的图像序列中的图像。图像块203也可以称为当前图像块或待编码图像块,图像201可以称为当前图像或待编码图像(特别是在视频译码中,以便区分当前图像和其他图像(例如同一视频序列(即,也包括当前图像的视频序列)中的先前编码和/或解码的图像))。

编码器20的实施例可以包括划分单元(图2中未示出),该划分单元用于将图像201划分为多个块,例如图像块203。图像201通常被划分为多个不重叠的块。划分单元可以用于对视频序列中的所有图像使用相同的块尺寸和使用限定块尺寸的对应网格,或在图像或子集或图像组之间改变块尺寸,并将每个图像划分为对应的块。

在一个示例中,编码器20的预测处理单元260可以用于执行上述划分技术的任意组合。

与图像201一样,图像块203同样是或可认为是具有样本值的样本的二维阵列或矩阵,但是其尺寸小于图像201。换句话说,根据应用的颜色格式,图像块203可以包括例如一个样本阵列(例如,在单色图像201的情况下,亮度阵列)、三个样本阵列(例如,在彩色图像的情况下,一个亮度阵列和两个色度阵列),或者任何其他数量和/或类型的阵列。图像块203的水平方向和垂直方向(或轴)上的样本数量限定了图像块203的尺寸。

图2所示的编码器20用于逐块对图像201进行编码,例如,对每个图像块203执行编码和预测。

残差计算单元204用于通过如下等方式基于图像块203和预测块265(下面提供关于预测块265的更多细节)计算残差块205:逐样本(逐像素)从图像块203的样本值中减去预测块265的样本值,以获得样本域中的残差块205。

变换处理单元206用于对残差块205的采样值应用变换(例如离散余弦变换(discretecosinetransform,dct)或离散正弦变换(discretesinetransform,dst)),以获得变换域中的变换系数207。变换系数207也可以称为变换残差系数,表示变换域中的残差块205。

变换处理单元206可以用于应用dct/dst的整数化近似,例如为hevc/h.265中指定的变换。与正交dct变换相比,这种整数化近似通常由某个因子按比例缩放。为了维持经过正变换和逆变换处理的残差块的范数,使用其他比例缩放因子作为变换过程的一部分。比例缩放因子通常是基于某些约束条件选择的,例如,比例缩放因子用于移位运算的2的幂、变换系数的位深度、准确性与实施成本之间的权衡等。例如,在解码器30侧通过例如逆变换处理单元312为逆变换(以及在编码器20侧通过例如逆变换处理单元212为对应逆变换)指定具体的比例缩放因子,并且相应地,可以在编码器20侧由变换处理单元206为正变换指定相应的比例缩放因子。

量化单元208用于例如通过应用标量量化或矢量量化对变换系数207进行量化,以获得量化的变换系数209。量化的变换系数209也可以称为量化残差系数209。量化过程可以减小与部分或全部变换系数207有关的位深度。例如,可以在量化期间将n位变换系数向下舍入到m位变换系数,其中n大于m。可以通过调整量化参数(quantizationparameter,qp)修改量化程度。例如,对于标量量化,可以应用不同的比例来实现较细或较粗的量化。较小的量化步长对应于较精的量化,而较大的量化步长对应于较粗的量化。可以通过量化参数(qp)指示适合的量化步长。例如,量化参数可以是适合的量化步长的预定义集合的索引。例如,较小的量化参数可以对应于较细的量化(较小的量化步长),较大的量化参数可以对应于较粗的量化(较大的量化步长),反之亦然。量化可以包括除以量化步长,而例如由反量化单元210执行的对应量化或解量化可以包括乘以量化步长。根据诸如hevc等一些标准的实施例可以使用量化参数来确定量化步长。通常,可以基于量化参数使用包括除法的等式的定点近似来来计算量化步长。可以引入其他比例缩放因子来进行量化和解量化,以恢复可能由于在用于量化步长和量化参数的等式的定点近似中使用的比例而修改的残差块的范数。在一个示例实施方式中,可以将逆变换的比例与解量化的比例相结合。或者,可以使用自定义量化表并例如在位流中将其从编码器向解码器指示。量化是有损操作,其中量化步长越大,损耗越大。

反量化单元210用于将量化单元208的反量化应用于量化系数,以获得解量化系数211,例如,基于或使用与量化单元208相同的量化步长来应用与量化单元208所执行的量化方案的反量化方案。解量化系数211也可以称为解量化残差系数211,对应于变换系数207,但是由于量化造成的损耗,解量化系数211通常不同于变换系数。

逆变换处理单元212用于应用由变换处理单元206所应用的变换的逆变换,例如,逆离散余弦变换(dct)或逆离散正弦变换(dst),以在样本域中获得逆变换块213。逆变换块213也可以称为逆变换解量化块213或逆变换残差块213。

重建单元214(例如求和器214)用于例如通过将重建残差块213的样本值与预测块265的样本值相加,将逆变换块213(即重建残差块213)与预测块265相加,以在样本域中获得重建块215。

在一个实施例中,缓冲器单元216(或“缓冲器”216)(例如行缓冲器216)用于缓冲或存储重建块215和对应的样本值,例如以进行帧内预测。在其他实施例中,编码器可以用于使用存储在缓冲器单元216中的未滤波的重建块和/或对应的样本值进行任何类型的估计和/或预测,例如帧内预测。

例如,编码器20的实施例可以用于使得缓冲器单元216不仅用于存储用于帧内预测254的重建块215,而且还存储用于环路滤波器单元220的重建块,和/或可以用于使得例如缓冲器单元216和解码图像缓冲器单元230形成一个缓冲器。在其他实施例中,将滤波块221和/或解码图像缓冲器230中的块或样本(这些块或样本未在图2中示出)用作帧内预测254的输入或基础。

环路滤波器单元220(或“环路滤波器”220)用于对重建块215进行滤波以获得滤波块221,以进行平滑像素转变或提高视频质量。环路滤波器单元220旨在表示一个或多个环路滤波器,包括去块滤波器、样本自适应偏移(sample-adaptiveoffset,sao)滤波器、以及其他滤波器,例如双边滤波器、自适应环路滤波器(adaptiveloopfilter,alf)、锐化或平滑滤波器、或协同滤波器。虽然环路滤波器单元220在图2中示为环内滤波器(in-loopfilter),但是在其他配置中,环路滤波器单元220可以实现为后环路滤波器(post-loopfilter)。滤波块221也可以称为滤波重建块221。在环路滤波器单元220对重建的编码块执行滤波操作之后,解码图像缓冲器230可以存储重建的编码块。

编码器20(相应地,环路滤波器单元220)的实施例可以用于例如直接或在熵编码单元270或任何其他熵编码单元执行熵编码之后输出环路滤波器参数(例如样本自适应偏移信息),例如使得解码器30可以接收相同的环路滤波器参数并将相同的环路滤波器参数应用于解码。

解码图像缓冲器(dpb)230可以是存储参考图像数据以供编码器20在视频数据编码时使用的参考图像存储器。dpb230可以由多种存储设备中的任何一种形成,例如动态随机存取存储器(dram),包括同步dram(synchronousdram,sdram)、磁阻ram(magnetoresistiveram,mram)、以及电阻ram(resistiveram,rram)、或其他类型的存储设备。dpb230和缓冲器216可以由同一存储设备或分离的存储设备提供。在一个示例中,解码图像缓冲器(dpb)230用于存储滤波块221。解码图像缓冲器230还可以用于存储同一当前图像或不同图像(例如先前的重建图像)的其他先前滤波块,例如,先前重建和滤波的块221,并且可以提供完整的先前重建(即解码)的图像(以及相应的参考块和样本)和/或部分重建的当前图像(以及相应的参考块和样本),例如用于帧间预测。在示例中,如果在未环路滤波的情况下重建了重建块215,则解码图像缓冲器(dpb)230用于存储重建块215。

预测处理单元260(也称为块预测处理单元260)用于接收或获得图像块203(当前图像201的当前图像块203)和重建的图像数据,例如,来自缓冲器216的相同(当前)图像的参考样本和/或来自解码图像缓冲器230的一个或多个先前解码图像的参考图像数据231,并且处理这样的数据以进行预测,即,提供预测块265可以是帧间预测块245或帧内预测块255。

模式选择单元262可以用于选择预测模式(例如,帧内或帧间预测模式)和/或对应的预测块245或255,以用作预测块265用于残差块205的计算和重建块215的重建。

模式选择单元262的实施例可以用于(例如,从预测处理单元260支持的预测模式中)选择预测模式,其中,预测模式提供最佳匹配或最小残差(最小残差表示为了传输或存储进行更好的压缩),或提供最小的信令开销(最小的信令开销表示为了传输或存储进行更好的压缩),或同时考虑或平衡以上两者。模式选择单元262可以用于基于率失真优化(rate-distortionoptimization,rdo)确定预测模式,即,选择提供最小率失真优化的预测模式,或者选择关联率失真至少满足预测模式选择标准的预测模式。

下文将更详细地描述由编码器20的示例执行的预测处理(例如使用预测处理单元260)和执行的模式选择(例如使用模式选择单元262)。

如上所述,编码器20用于从一组(预定)预测模式中确定或选择最佳或最优的预测模式。该组预测模式可以包括例如帧内预测模式和/或帧间预测模式。

一组帧内预测模式可以包括35种不同的帧内预测模式,例如诸如dc(或均值)模式和平面模式等非方向性模式,或诸如h.265中定义的方向性模式,或者可以包括67种不同的帧内预测模式,例如诸如dc(或均值)模式和平面模式等非方向性模式,或诸如正在开发的h.266中定义的方向性模式。

在可能的实施方式中,一组帧间预测模式取决于可用参考图像(即如上所述,例如存储在dpb230中的至少部分解码的图像)和其他帧间预测参数,例如取决于是使用整个参考图像还是仅参考图像的一部分(例如,当前块区域周围的搜索窗口区域)来搜索最佳匹配参考块,和/或取决于是否应用像素插值,例如半像素和/或四分之一像素插值。帧间预测模式的集合可以包括例如高级运动矢量预测(advancedmotionvectorprediction,amvp)模式和合并模式。在一些实施方式中,该组帧间预测模式可以包括在本发明的实施例中改进的基于控制点的amvp模式和基于控制点的合并模式。在一个示例中,帧内预测单元254可以用于执行以下描述的帧内预测技术的任何组合。

除了前述预测模式之外,跳过模式和/或直接模式也可以应用于本发明实施例中。

预测处理单元260还可以用于例如迭代使用四叉树(quad-tree,qt)划分、二叉树(binary-tree,bt)划分、三叉树(triple-tree,tt)划分、或其任意组合,来将图像块203划分为较小的块分区或子块,并且用于对每个块分区或子块执行预测,其中模式选择包括选择划分图像块203的树结构和选择应用于每个块分区或子块的预测模式。

帧间预测单元244可以包括运动估计(motionestimation,me)单元(图2中未示出)和运动补偿(motioncompensation,mc)单元(图2中未示出)。运动估计单元用于接收或获得图像块203(当前图像201的当前图像块203)和解码图像231,或至少一个或多个先前的重建块,例如,一个或多个其他/不同的先前解码图像231的重建块,以进行运动估计。例如,视频序列可以包括当前图像和先前的解码图像231,或者换句话说,当前图像和先前的解码图像231可以是形成视频序列的图像序列的一部分或形成该图像序列。

例如,编码器20可以用于从多个其他图像中的同一图像或不同图像的多个参考块中选择参考块,并将参考图像和/或参考块的位置(坐标x和y)与当前块的位置之间的偏移(空间偏移)作为帧间预测参数提供给运动估计单元(图2中未示出)。该偏移也称为运动矢量(motionvector,mv)。

运动补偿单元用于获得帧间预测参数,并且基于或使用帧间预测参数执行帧间预测,以获得帧间预测块245。运动补偿单元(图2中未示出)执行的运动补偿可以包括基于通过运动估计确定的运动/块矢量来获取或生成预测块(可以包括对子像素精度执行插值)。插值滤波可从已知像素样本生成其他的像素样本,从而潜在地增加可用于对图像块进行编码的候选预测块的数量。在接收到当前图像块的pu的运动矢量时,运动补偿单元246可以在一个参考图像列表中定位运动矢量指向的预测块。运动补偿单元246还可以生成与块和视频切片相关联的语法元素,以供解码器30在解码视频切片的图像块时使用。

在一些实施例中,帧间预测单元244可以将语法元素发送到熵编码单元270,并且语法元素包括帧间预测参数(例如在遍历多个帧间预测模式之后用于当前块的预测的帧间预测模式的选择的指示信息)。在一种可能的应用场景中,如果只有一种帧间预测模式,则在语法元素中可以不携带帧间预测参数。在这种情况下,解码器侧30可以直接在默认预测模式下执行解码。可以理解,帧间预测单元244可以用于执行帧间预测技术的任何组合。

帧内预测单元254用于获得(例如接收)图像块203(当前图像块)和同一图像的一个或多个先前的重建块(例如,重建的相邻块),以进行帧内估计。例如,编码器20可以用于从多个(预定)帧内预测模式中选择帧内预测模式。

编码器20的实施例可以用于基于优化标准,例如基于最小残差(例如,提供与当前图像块203最相似的预测块255的帧内预测模式)或最小率失真来选择帧内预测模式。

帧内预测单元254还用于例如基于所选择的帧内预测模式的帧内预测参数来确定帧内预测块255。在任何情况下,在为块选择帧内预测模式之后,帧内预测单元254还用于向熵编码单元270提供帧内预测参数,即,指示为该块选择的帧内预测模式的信息。在一个示例中,帧内预测单元254可以用于执行帧内预测技术的任何组合。

具体地,帧内预测单元254可以将语法元素发送到熵编码单元270,并且语法元素包括帧内预测参数(例如在遍历多个帧内预测模式之后用于当前块的预测的帧内预测模式的选择的指示信息)。在一种可能的应用场景中,如果只有一种帧内预测模式,则在语法元素中可以不携带帧内预测参数。在这种情况下,解码器侧30可以直接在默认预测模式下执行解码。

熵编码单元270用于单独或共同地(或完全不)将熵编码算法或方案(例如可变长度译码(variablelengthcoding,vlc)方案、上下文自适应vlc(contextadaptivevlc,cavlc)方案、算术译码方案、上下文自适应二进制算术译码(contextadaptivebinaryarithmeticcoding,cabac)、基于语法的上下文自适应二进制算术译码(syntax-basedcontext-adaptivebinaryarithmeticcoding,sbac)、概率区间分割熵(probabilityintervalpartitioningentropy,pipe)译码或其他熵编码方法或技术)应用于量化残差系数209、帧间预测参数、帧内预测参数、和/或环路滤波器参数,以获得可以通过输出端272(例如以编码位流21形式)输出的编码图像数据21。可以将编码位流发送到视频解码器30,或将其存档以供视频解码器30稍后传输或检索。熵编码单元270还可以用于对正在编码的当前视频切片的其他语法元素进行熵编码。

视频编码器20的其他结构变型可以用于编码视频流。例如,对于一些块或帧,基于非变换的编码器20可以直接量化残差信号,而无需变换处理单元206。在另一实施方式中,编码器20可以将量化单元208和反量化单元210组合为单个单元。

在本发明的一些实施例中,编码器20可以用于实现以下描述的视频编码方法。

应理解,视频编码器20的其他结构变型可以用于编码视频流。例如,对于一些图像块或图像帧,视频编码器20可以直接对残差信号进行量化,而无需通过变换处理单元206进行处理,并且相应地,无需通过逆变换处理单元212进行处理。或者,对于一些图像块或图像帧,视频编码器20不生成残差数据,并且相应地,无需变换处理单元206、量化单元208、逆量化单元210、以及逆变换处理单元212进行处理。或者,视频编码器20可以直接存储重建图像块作为参考块,而无需由滤波器220进行处理。或者,可以将视频编码器20中的量化单元208和反量化单元210组合在一起。环路滤波器220是可选的,并且在无损压缩编码的情况下,变换处理单元206、量化单元208、反量化单元210、以及逆变换处理单元212是可选的。应理解,在不同应用场景中,可以选择性地使用帧间预测单元244和帧内预测单元254。

图3是根据本发明实施例的解码器30的示例的示意/概念框图。视频解码器30用于接收例如由编码器20编码的编码图像数据(例如,编码位流)21,以获得解码图像231。在解码过程中,视频解码器30从视频编码器20接收视频数据,例如,表示编码视频切片的图像块和相关语法元素的编码视频位流。

在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如求和器314)、缓冲器316、环路滤波器320、解码图像缓冲器330、以及预测处理单元360。预测处理单元360可以包括帧间预测单元344、帧内预测单元354、以及模式选择单元362。在一些示例中,视频解码器30可以执行通常与参考图2中的视频编码器20描述的编码通道互易的解码通道。

熵解码单元304用于对编码图像数据21执行熵解码,以获得例如量化系数309和/或解码的编码参数(图3中未示出),例如解码的以下中的任何一个或全部:帧间预测参数、帧内预测参数、环路滤波器参数、和/或其他语法元素。熵解码单元304还用于将帧间预测参数、帧内预测参数、和/或其他语法元素转发到预测处理单元360。视频解码器30可以接收视频切片级和/或视频块级语法元素。

反量化单元310可以在功能上等同于反量化单元210,逆变换处理单元312可以在功能上等同于逆变换处理单元212,重建单元314可以在功能上等同于重建单元214,缓冲器316可以在功能上等同于缓冲器216,环路滤波器320可以在功能上等同于环路滤波器220,解码图像缓冲器330可以在功能上等同于解码图像缓冲器230。

预测处理单元360可以包括帧间预测单元344和帧内预测单元354,其中,帧间预测单元344可以在功能上类似于帧间预测单元244,帧内预测单元354可以在功能上类似于帧内预测单元254。预测处理单元360通常用于执行块预测和/或从编码数据21获得预测块365,并例如从熵解码单元304(显式或隐式地)接收或获得与预测相关的参数和/或与选择的预测模式有关的信息。

在视频切片被编码为帧内编码(i)切片时,预测处理单元360的帧内预测单元354用于基于信号通知的帧内预测模式和来自当前帧或图像的先前解码的块的数据生成当前视频切片的图像块的预测块365。在视频帧被编码为帧间编码(即,b或p)切片时,预测处理单元360的帧间预测单元344(例如运动补偿单元)用于基于从熵解码单元304接收到的运动矢量和其他语法元素产生当前视频切片的视频块的预测块365。对于帧间预测,可以从一个参考图像列表中的参考图像之一生成预测块。视频解码器30可以通过基于存储在dpb330中的参考图像使用默认构建技术来构建参考帧列表:列表0和列表1。

预测处理单元360用于通过解析运动矢量和其他语法元素来确定当前视频切片的视频块的预测信息,并且使用该预测信息来生成用于正在解码的当前视频块的预测块。在本发明的一个示例中,预测处理单元360使用一些接收到的语法元素来确定:用于对视频切片的视频块进行编码的预测模式(例如帧内预测或帧间预测)、帧间预测切片类型(例如b切片、p切片、或gpb切片),切片的一个或多个参考图像列表的构建信息、切片的每个帧间编码视频块的运动矢量、切片的每个帧间编码视频块的帧间预测状态、以及用于解码当前视频切片中的视频块的其他信息。在本公开的另一示例中,视频解码器30从位流接收的语法元素包括自适应参数集(adaptiveparameterset,aps)、序列参数集(sequenceparameterset,sps)、图像参数集(pictureparameterset,pps)、或切片头中的一个或多个中的语法元素。

反量化单元310可以用于对位流中提供并由熵解码单元304解码的量化的变换系数进行反量化(即,解量化)。反量化过程可以包括:使用由视频编码器20针对视频切片中的每个视频块计算的量化参数,确定将应用的量化程度以及将应用的反量化程度。

逆变换处理单元312用于对变换系数应用逆变换,例如逆dct、逆整数变换、或概念上类似的逆变换过程,以在像素域中生成残差块。

重建单元314(例如求和器314)用于例如通过将重建残差块313的样本值与预测块365的样本值相加,将逆变换块313(即重建残差块313)与预测块365相加,以在样本域中获得重建块315。

环路滤波器单元320(在译码环路中或在译码环路后)用于对重建块315进行滤波以获得滤波块321,以进行平滑像素转变或提高视频质量。在一个示例中,环路滤波器单元320可以用于执行以下描述的滤波技术的任何组合。环路滤波器单元320可以是一个或多个环路滤波器,包括去块滤波器、样本自适应偏移(sample-adaptiveoffset,sao)滤波器、以及其他滤波器,例如双边滤波器、自适应环路滤波器(adaptiveloopfilter,alf)、锐化或平滑滤波器、或协同滤波器。虽然环路滤波器单元320在图3中示为环路滤波器,但是在其他配置中,环路滤波器单元320可以实现为后环路滤波器。

然后,将给定帧或图像中的解码视频块321存储在解码图像缓冲器330中,解码图像缓冲器330存储用于后续运动补偿的参考图像。

解码器30用于例如使用输出端332输出解码图像31,以向用户呈现或供用户观看。

视频解码器30的其他变型可以用于对压缩位流进行解码。例如,解码器30可以生成输出视频流,而无需环路滤波器单元320。例如,对于某些块或帧,基于非变换的解码器30可以直接对残差信号进行反量化,而无需逆变换处理单元312。在另一实施方式中,视频解码器30可以将反量化单元310和逆变换处理单元312组合为单个单元。

在本发明的一些实施例中,解码器30用于实现以下描述的视频解码方法。

应理解,视频解码器30的其他结构变型可以用于对编码视频位流进行解码。例如,视频解码器30可以生成输出视频流,而无需通过滤波器320进行处理。或者,对于一些图像块或图像帧,视频解码器30的熵解码单元304不通过解码获得量化系数,并且相应地,无需反量化单元310和逆变换处理单元312执行处理。环路滤波器320是可选的,并且在无损压缩的情况下,反量化单元310和逆变换处理单元312是可选的。应理解,在不同应用场景中,可以选择性地使用帧间预测单元和帧内预测单元。

应理解,在本公开的编码器20和解码器30上,过程的处理结果可以在进一步处理之后输出到下一过程。例如,在诸如插值滤波、运动矢量推导、或环路滤波等过程之后,进一步对相应过程的处理结果执行诸如裁剪(clip)或移位(shift)等操作。

例如,可以进一步处理从相邻仿射译码块的运动矢量导出的当前图像块的控制点的运动矢量或当前图像块的子块的运动矢量。这在本公开中不做限制。例如,运动矢量的值范围限制在特定位深度内。假设运动矢量允许的位深度为bitdepth,则运动矢量范围为–2^(bitdepth–1)至2^(bitdepth–1)–1,其中符号“^”表示幂。如果bitdepth为16,则值范围为–32768至32767。如果bitdepth为18,则值范围为–131072至131071。对于另一示例,运动矢量(例如一个8×8图像块中的四个4×4子块的运动矢量mv)被限制,使得这四个4×4子块的mv的整数部分之间的最大差值不超过n个像素,例如,不超过一个像素。

以下两种方法或技术方案可以用于将运动矢量限制在特定位宽内。

方法1:将运动矢量的溢出的高阶位去除:

ux=(vx+2bitdepth)%2bitdepth

vx=(ux>=2bitdepth–1)?(ux-2bitdepth):ux

uy=(vy+2bitdepth)%2bitdepth

vy=(uy>=2bitdepth–1)?(uy-2bitdepth):uy

其中,vx是图像块或其子块的运动矢量的水平分量,vy是图像块或其子块的运动矢量的垂直分量,ux和uy是中间值,bitdepth表示位深度。

例如,vx的值为–32769,并且使用上述公式获得32767。值以二进制补码形式存储在计算机中,–32769的二进制补码为1,0111,1111,1111,1111(17位),计算机针对溢出执行的处理是丢弃高阶位。因此vx的值是0111,1111,1111,1111,即32767,这与使用公式进行处理获得的结果一致。

方法2:对运动矢量执行裁剪,如下式所示:

vx=clip3(–2bitdepth–1,2bitdepth–1–1,vx)

vy=clip3(–2bitdepth–1,2bitdepth–1–1,vy)

其中,vx是图像块或其子块的运动矢量的水平分量,vy是图像块或其子块的运动矢量的垂直分量;x、y、z分别对应于mv箝位(clamping)过程clip3的三个输入值,并且clip3定义为指示将z的值裁剪在范围[x,y]上:

图4是根据本发明实施例的视频译码设备400(例如,视频编码设备400或视频解码设备400)的示意结构图。视频译码设备400适用于实现本说明书中描述的实施例。在实施例中,视频译码设备400可以是视频解码器(例如图1a中的解码器30)或视频编码器(例如图1a中的编码器20)。在另一实施例中,视频译码设备400可以是图1a中的解码器30或图1a中的编码器20的一个或多个组件。

视频译码设备400包括:用于接收数据的入口端口410和接收器单元(rx)420;以及用于处理数据的处理器、逻辑单元、或中央处理单元(centralprocessingunit,cpu)430;用于发送数据的发射器单元(tx)440和出口端口450;用于存储数据的存储器460。视频译码设备400还可以包括耦合到入口端口410、接收器单元420、发射器单元440、以及出口端口450的光电组件和电光(optical-to-electrical,eo)组件用于光信号或电信号的输入和输出。

处理器430通过硬件和软件实现。处理器430可以实现为一个或多个cpu芯片,核(例如多核处理器)、fpga、asic、以及dsp。处理器430与入口端口410、接收器单元420、发射器单元440、出口端口450、以及存储器460通信。处理器430包括译码模块470(例如编码模块470或解码模块470)。编码/解码模块470实现本说明书中公开的实施例,以实现本发明实施例提供的色度变换块预测方法。例如,编码/解码模块470实现、处理、或提供各种译码操作。因此,将编码/解码模块470包括在内为视频译码设备400的功能提供了实质性的改进,并且影响了视频译码设备400到不同状态的转换。或者,编码/解码模块470实现为存储在存储器460中并且由处理器430执行的指令。

存储器460包括一个或多个磁盘、磁带驱动器、以及固态驱动器,并且可以用作溢出数据存储设备,以在选择性地执行这种程序时存储程序,并存储在程序执行期间读取的指令和数据。存储器460可以是易失性的和/或非易失性的,并且可以是只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、三态内容可寻址存储器(ternarycontent-addressablememory,tcam)、和/或静态随机存取存储器(staticrandom-accessmemory,sram)。

图5是根据示例实施例的装置500的简化框图,装置500可以用作图1a中的源设备12和/或目的地设备14。装置500可以实现本公开的技术。换句话说,图5是根据本公开实施例的编码设备或解码设备(译码设备500)的实现的示意框图。译码设备500可以包括处理器510、存储器530、以及总线系统550。处理器和存储器通过总线系统连接。存储器用于存储一组指令或程序代码。处理器用于执行存储在存储器中的指令或程序代码。解码设备的存储器存储计算机可读程序代码。处理器可以调用存储在存储器中的程序代码,以执行本发明中描述的视频编码或解码方法。为了避免重复,这里不再赘述。

在本公开的该实施例中,处理器510可以是中央处理单元(“cpu”),或者处理器510可以是另一通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、或其他可编程逻辑设备、离散门、或晶体管逻辑设备、离散硬件组件等。通用处理器可以是微处理器,或者该处理器可以是任何传统处理器等。

存储器530可以包括只读存储器(rom)设备或随机存取存储器(ram)设备。可以将任何其他适合类型的存储设备用作存储器530。存储器530可以包括处理器510使用总线系统550访问的代码和数据531。存储器530还可以包括操作系统533和应用程序535。应用程序535包括至少一个程序,该程序允许处理器510执行本公开中描述的视频编码或解码方法。例如,应用程序535可以包括应用1至n,并且还包括执行本公开中描述的视频编码或解码方法的视频编码或解码应用(视频译码应用)。

除了数据总线之外,总线系统550还可以包括电源总线、控制总线、状态信号总线等。然而,为了清楚描述,图中的各种类型的总线表示为总线系统550。

在一个实施例中,译码设备500还可以包括一个或多个输出设备,例如显示器570。在示例中,显示器570可以是将显示器和可操作地感测触摸输入的触摸单元相结合的触摸显示器。显示器570可以使用总线系统550连接到处理器510。

下面详细描述本公开实施例中的解决方案。

在h.265中,使用基于四叉树(qt)的ctu分割模式。ctu用作四叉树的根节点(根),并且在四叉树分割模式下将ctu递归分割为几个叶节点。一个节点对应于一个图像区域。如果节点未被分割,则该节点称为叶节点,并且对应于该节点的图像区域变成cu。如果节点被进一步分割,则将对应于该节点的图像区域分割为尺寸相同的四个区域(四个区域的长度和宽度分别是原始区域的长度和宽度的一半),并且每个区域对应于一个节点。这些节点是否被进一步分割需要分别确定。

在通过解析确定节点是叶节点并且叶节点是cu之后,进一步解析对应于cu的译码信息(包括诸如cu的预测模式和变换系数等信息,例如h.265中的coding_unit()语法结构)。然后,基于译码信息对cu执行诸如预测、解量化、逆变换、以及环路滤波等解码处理,从而生成对应于cu的重建图像。

对cu的亮度变换块的量化变换系数执行解量化以形成二维变换系数矩阵a。对二维变换系数矩阵a执行逆变换以生成亮度变换块,其中亮度变换块包括亮度变换块的重建残差像素。亮度变换块也是二维矩阵。在将亮度变换块和亮度预测块叠加之后,生成亮度变换块的重建像素。为了降低复杂度,通常在二维变换中使用二维可分离变换(2dseparabletransform,2d可分离变换)。二维可分离变换(例如二维dct-2)可以分解为垂直变换和水平变换。变换处理的示例可以包括:对与亮度变换块对应的二维变换系数矩阵a执行列变换或垂直变换以生成二维矩阵b;然后对二维矩阵b执行行变换或水平变换以获得二维矩阵c。二维矩阵c为亮度变换块。色度变换块的变换处理方法与亮度变换块的变换处理方法相同,为了简洁,不再赘述。行变换和列变换处理还包括裁剪变换的矩阵中的元素,以将元素限制在范围内。

通过变换将原始残差像素变换为变换系数的处理称为正变换,通过变换将变换系数变换为重建的残差像素的处理称为逆变换。正变换中的垂直变换和逆变换中的垂直变换为正-逆变换关系。例如,如果正变换中的垂直变换是正dct-2,则逆变换中的垂直变换是逆dct-2。类似地,正变换中的水平变换和逆变换中的水平变换为正-逆变换关系。

h.266/vvc草案的第二版中存在“多重变换选择”(multipletransformselection,mts)工具:一个cu对应于一个tu,在位流中标识tu的亮度变换块的水平变换类型和垂直变换类型,tu的色度变换块的水平变换类型和垂直变换类型是dct-2。亮度变换块可以使用的水平变换类型和垂直变换类型有五种组合,分别是dct-2/dct-2、dst-7/dst-7、dst-7/dct-8、dct-8/dst-7和dct-8/dct-8。th/tv组合表示水平变换类型为th,垂直变换类型为tv。例如,dst-7/dct-8组合表示水平变换类型为dst-7,垂直变换类型为dct-8。

图6描述了根据本发明实施例的视频解码方法的简化流程图。该方法包括以下步骤:

601:解析位流以获得针对当前cu中包括的至少两个tu的分割模式,其中,分割模式用于将当前cu的覆盖区域分割为至少两个tu,上述至少两个tu之间没有重叠区域,上述至少两个tu各自具有序列号,上述至少两个tu的序列号与上述至少两个tu在当前cu中的位置一一对应。

分割模式可以是二元分割、三元分割、四元分割等。

二元分割可以是水平二元分割或垂直二元分割。图7描述了水平二元分割和垂直二元分割。如图7所示,当前cu的尺寸表示为w×h(即,在水平方向上有w个像素,在垂直方向上有h个像素。这也适用于以下)。在二元分割中,将当前cu分割为上tu和下tu。上tu的序列号为tu0,下tu的序列号为tu1。上tu的尺寸为w×h/2,下tu的尺寸为w×h/2。即,上tu的尺寸与下tu的尺寸相同。上tu和下tu之间没有重叠区域。在垂直二元分割中,将当前cu分割为左tu和右tu。左tu的序列号为tu0,右tu的序列号为tu1。左tu的尺寸为w/2×h,右tu的尺寸为w/2×h。即,左tu的尺寸与右tu的尺寸相同。左tu和右tu之间没有重叠区域。

三元分割可以是水平三元分割。图8描述了水平三元分割和垂直三元分割。如图8所示,当前cu的尺寸表示为w×h。在水平三元分割中,将当前cu分割为上tu、中tu、下tu,并且上tu、中tu、下tu之间没有重叠区域。上tu的序列号为tu0,中tu的序列号为tu1,下tu的序列号为tu2。上tu的尺寸为w×h/4,下tu的尺寸为w×h/4。即,上tu的尺寸与下tu的尺寸相同。中tu的尺寸为w×h/2。可以看出,中tu的尺寸为上tu(下tu)的尺寸的两倍。在垂直三元分割中,将当前cu分割为左tu、中tu、右tu,并且左tu、中tu、右tu之间没有重叠区域。左tu的序列号为tu0,中tu的序列号为tu1,右tu的序列号为tu2。左tu的尺寸为w/4×h,右tu的尺寸为w/4×h。即,左tu的尺寸与右tu的尺寸相同。中tu的尺寸为w/2×h。可以看出,中tu的尺寸为左tu(右tu)的尺寸的两倍。

图9中示出了四元分割。如图9所示,四元分割可以是四叉树分割。即,将尺寸为w×h的当前cu分割为尺寸相同的四个tu。即,每个tu的尺寸为w/2×h/2。四个tu之间没有重叠区域。左上tu的序列号表示为tu0,右上tu的序列号表示为tu1,左下tu的序列号表示为tu2,右下tu的序列号表示为tu3。

602:获得上述至少两个tu中的当前tu的亮度变换块的变换系数。

获得变换系数的过程可以包括:从位流中解析出相关的量化系数,并对量化系数执行反量化处理,以获得解量化系数,即变换系数。获得变换系数的具体过程在本发明实施例中不做限制。反量化处理也可以称为解量化处理。如果当前tu的亮度变换块的cbf(codedblockflag,译码块标志)为0,则表示当前tu的亮度变换块的变换系数为0。相应地,当前tu的亮度变换块的残差也是0。在这种情况下,无需对当前tu的亮度变换块执行解量化和逆变换处理。

603:基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型,其中,变换类型包括水平变换类型和垂直变换类型。

可以基于对应于tu分割模式的预设tu处理顺序确定当前tu的序列号。序列号较小的tu先被解码。可以理解以下情况,对应于当前cu的至少两个tu中只有一些tu具有变换系数。在这种情况下,仅需要对具有变换系数的这些tu执行逆变换处理。逆变换处理也可以称为解变换处理。

分割模式以及tu的序列号与对应变换类型之间的对应关系可以是预设或预定的。这样,在获得分割模式和当前tu的序列号之后,可以基于对应关系获得当前tu的亮度变换块的变换类型。当然,也可以预设功能。可以通过输入分割模式和当前tu的序列号获得当前tu的亮度变换块的变换类型。

应注意,在一些实施方式中,在示例分割模式中,一个tu的序列号仅对应于一个变换类型。在这种情况下,可以基于分割模式和当前tu的序列号直接确定当前tu的亮度变换块的变换类型。在一些其他实施方式中,在示例分割模式中,一个tu的序列号可以对应于两个或两个以上的变换类型。在这种情况下,在确定了两个或两个以上的变换类型中的特定变换类型之后,编码器可以将确定的变换类型的指示信息写入位流,从而使得解码器可以基于指示信息进一步确定当前tu的亮度变换块的变换类型。即,可以基于分割模式、当前tu的序列号、以及变换类型的指示信息确定当前tu的亮度变换块的变换类型。

可以理解,前述实施例描述了确定当前tu的亮度变换块的变换类型的方法。在实际应用中,也可以以相同方式确定当前tu的色度变换块的变换类型;或者,当前tu的色度变换块可以直接使用当前tu的亮度变换块的变换类型;或者,当前tu的色度变换块的变换类型可以为预设的默认变换类型;或者可以以另一方式确定当前tu的色度变换块的变换类型。本发明实施例不限制确定当前tu的色度变换块的变换类型的方式。例如,在实施方式中,每个tu的色度变换块的默认水平变换类型和默认垂直变换类型均可以是dct-2类型。

604:基于当前tu的亮度变换块的变换类型,对当前tu的亮度变换块的变换系数执行逆变换处理,以获得当前tu的亮度变换块的重建残差,其中,重建残差可以是前述重建残差块313。

对于逆变换处理过程,参考前述描述。本发明实施例不限制具体的逆变换处理。

605:基于当前tu的亮度变换块的重建残差,获得当前cu的重建块。

对于重建处理,参考前述描述。本发明实施例不限制获得重建块的具体过程。一种常见的处理方式是将亮度变换块的重建残差与对应于亮度变换块的预测像素相加,以获得重建像素。重建块也称为重构块。

通过使用本发明提供的方案,可以为不同位置的tu设置不同的变换类型,使得这些变换类型更适用于不同位置的变换处理/逆变换处理,从而提高了编码/解码效率和编码/解码质量。此外,在当前cu中包括的tu中只有一些包括残差时,可以使用对应于包括残差的tu的变换类型直接执行变换处理/逆变换处理,以提高具有残差的tu的译码效率/解码效率。

以下描述了在本发明实施例中,对应于不同分割模式下的具有不同序列号的tu的一些变换类型。

a:水平二元分割

例如,当分割模式为水平二元分割时,水平二元分割用于将当前cu的覆盖区域水平分割为上tu和下tu,其中,上tu和下tu具有相同的尺寸;对应于上tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型;上tu的序列号为tu0,下tu的序列号为tu1。

a1:基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型可以包括:在当前tu的序列号为tu0时,将dct-8类型用作或选作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或在当前tu的序列号为tu1时,将dst-7类型用作或选作当前tu的亮度变换块的变换类型中的垂直变换类型。在这种情况下,本发明实施例不限制对应于tu0和tu1的水平变换类型。例如,水平变换类型可以是dst-7类型、dct-2类型、或dct-8类型。

a2:基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型可以包括:在当前tu的序列号为tu0时,将dst-7类型用作或选作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或在当前tu的序列号为tu1时,将dct-8类型用作或选作当前tu的亮度变换块的变换类型中的垂直变换类型。在这种情况下,本发明实施例不限制对应于tu0和tu1的水平变换类型。例如,水平变换类型可以是dst-7类型、dct-2类型、或dct-8类型。

上面描述了水平二元分割中的两种不同的变换类型的示例(a1和a2),并且这两种不同的变换类型中的任何一种都可以用作默认变换类型。在这种情况下,编码器无需将变换类型指示信息写入位流。前述两种不同的变换类型都可以可替换地用作候选变换类型。在这种情况下,当编码器以rdo方式将两种不同的变换类型之一确定为当前tu的亮度变换块的变换类型,以使解码器能够直接确定执行逆变换处理需要使用的变换类型时,编码器可以将确定的变换类型的指示信息写入位流,从而解码器可以基于该指示信息确定将用于对当前tu的亮度变换块的变换系数执行逆变换处理的变换类型。指示信息可以是一位标志。应注意,为了进一步提高逆变换效率和效果,当a1和a2都用作候选变换类型时,可以在a1和a2场景中选择不同的变换类型作为水平变换类型。例如,a1场景中的水平变换类型可以是dst-7类型或dct-2类型,而a2场景中的水平变换类型可以是dct-8类型。

b:垂直二元分割

垂直二元分割用于将当前cu的覆盖区域水平分割为左tu和右tu,其中,左tu和右tu具有相同的尺寸;对应于左tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型;左tu的序列号为tu0,右tu的序列号为tu1。

b1:基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型可以包括:在当前tu的序列号为tu0时,将dct-8类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型;和/或在当前tu的序列号为tu1时,将dst-7类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型。在这种情况下,本发明实施例不限制对应于tu0和tu1的垂直变换类型。例如,垂直变换类型可以是dst-7类型、dct-2类型、或dct-8类型。

b2:基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型可以包括:在当前tu的序列号为tu0时,将dst-7类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型;和/或在当前tu的序列号为tu1时,将dct-8类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型。在这种情况下,本发明实施例不限制对应于tu0和tu1的垂直变换类型。例如,垂直变换类型可以是dst-7类型、dct-2类型、或dct-8类型。

上面描述了垂直二元分割中的两种不同的变换类型的示例(b1和b2),并且这两种不同的变换类型中的任何一种都可以用作默认变换类型。在这种情况下,编码器无需将变换类型指示信息写入位流。前述两种不同的变换类型都可以可替换地用作候选变换类型。在这种情况下,当编码器以rdo方式将两种不同的变换类型之一确定为当前tu的亮度变换块的变换类型,以使解码器能够直接确定执行逆变换处理需要使用的变换类型时,编码器可以将确定的变换类型的指示信息写入位流,从而解码器可以基于该指示信息确定将用于对当前tu的亮度变换块的变换系数执行逆变换处理的变换类型。指示信息可以是一位标志。应注意,为了进一步提高逆变换效率和效果,当b1和b2都用作候选变换类型时,可以在b1和b2场景中选择不同的变换类型作为水平变换类型。例如,b1场景中的水平变换类型可以是dst-7类型或dct-2类型,而b2场景中的水平变换类型可以是dct-8类型。

c:水平三元分割

水平三元分割用于将当前cu的覆盖区域水平分割为上tu、中tu、下tu,上tu和下tu具有相同的尺寸;中tu的尺寸为上tu的尺寸的两倍。对应于上tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型,对应于中tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型。上tu的序列号为tu0,中tu的序列号为tu1,下tu的序列号为tu2。

c1:基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型可以包括:在当前tu的序列号为tu0时,将dct-8类型用作或选作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或在当前tu的序列号为tu1时,将dct-2类型用作或选作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或在当前tu的序列号为tu2时,将dst-7类型用作或选作当前tu的亮度变换块的变换类型中的垂直变换类型。在这种情况下,本发明实施例不限制对应于tu0、tu1、tu2的水平变换类型。例如,水平变换类型可以是dst-7类型、dct-2类型、或dct-8类型。

c2:基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型可以包括:在当前tu的序列号为tu0时,将dct-8类型用作或选作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或在当前tu的序列号为tu1时,将dst-7类型用作或选作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或在当前tu的序列号为tu2时,将dst-7类型用作或选作当前tu的亮度变换块的变换类型中的垂直变换类型。在这种情况下,本发明实施例不限制对应于tu0、tu1、tu2的水平变换类型。例如,水平变换类型可以是dst-7类型、dct-2类型、或dct-8类型。

c3:基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型可以包括:在当前tu的序列号为tu0时,将dst-7类型用作或选作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或在当前tu的序列号为tu1时,将dct-8类型用作或选作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或在当前tu的序列号为tu2时,将dct-8类型用作或选作当前tu的亮度变换块的变换类型中的垂直变换类型。在这种情况下,本发明实施例不限制对应于tu0、tu1、tu2的水平变换类型。例如,水平变换类型可以是dst-7类型、dct-2类型、或dct-8类型。

上面描述了水平三元分割中的三种不同的变换类型的示例(c1、c2、c3),并且这三种不同的变换类型中的任何一种都可以用作默认变换类型。在这种情况下,编码器无需将变换类型指示信息写入位流。前述三种不同的变换类型都可以用作候选变换类型,或者这三种不同的变换类型中的任何两种可以用作候选变换类型。在这种情况下,当编码器以rdo方式将三种或两种不同的变换类型之一确定为当前tu的亮度变换块的变换类型,以使解码器能够直接确定执行逆变换处理需要使用的变换类型时,编码器可以将确定的变换类型的指示信息写入位流,从而解码器可以基于该指示信息确定将用于对当前tu的亮度变换块的变换系数执行逆变换处理的变换类型。当存在三种候选变换类型时,可以使用两位发送指示信息,例如,可以是两位索引。当存在两种候选变换类型时,指示信息可以是一位标志。例如,当候选变换类型为c1和c2时,c1场景中对应于tu0、tu1、tu2的水平变换类型可以为dst-7类型或dct-2类型,c2场景中对应于tu0、tu1、tu2的水平变换类型可以为dct-8。例如,当候选变换类型为c1和c3时,c1场景中对应于tu0、tu1、tu2的水平变换类型可以为dst-7类型或dct-2类型,c3场景中对应于tu0、tu1、tu2的水平变换类型可以为dct-8。

d:垂直三元分割

垂直三元分割用于将当前cu的覆盖区域水平分割为左tu、中tu、右tu,左tu和右tu具有相同的尺寸;中tu的尺寸为左tu的尺寸的两倍;对应于左tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型,对应于中tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型;左tu的序列号为tu0,中tu的序列号表示为tu1,右tu的序列号表示为tu2。

d1:基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型可以包括:在当前tu的序列号为tu0时,将dct-8类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型;和/或在当前tu的序列号为tu1时,将dct-2类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型;和/或在当前tu的序列号为tu2时,将dst-7类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型。在这种情况下,本发明实施例不限制对应于tu0、tu1、tu2的垂直变换类型。例如,垂直变换类型可以是dst-7类型、dct-2类型、或dct-8类型。

d2:基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型可以包括:在当前tu的序列号为tu0时,将dct-8类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型;和/或在当前tu的序列号为tu1时,将dst-7类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型;和/或在当前tu的序列号为tu2时,将dst-7类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型。在这种情况下,本发明实施例不限制对应于tu0、tu1、tu2的垂直变换类型。例如,垂直变换类型可以是dst-7类型、dct-2类型、或dct-8类型。

d3:基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型可以包括:在当前tu的序列号为tu0时,将dst-7类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型;和/或在当前tu的序列号为tu1时,将dct-8类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型;和/或在当前tu的序列号为tu2时,将dct-8类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型。在这种情况下,本发明实施例不限制对应于tu0、tu1、tu2的垂直变换类型。例如,垂直变换类型可以是dst-7类型、dct-2类型、或dct-8类型。

上面描述了垂直三元分割中的三种不同的变换类型的示例(d1、d2、d3),并且这三种不同的变换类型中的任何一种都可以用作默认变换类型。在这种情况下,编码器无需将变换类型指示信息写入位流。前述三种不同的变换类型都可以用作候选变换类型,或者这三种不同的变换类型中的任何两种可以用作候选变换类型。在这种情况下,当编码器以rdo方式将三种或两种不同的变换类型之一确定为当前tu的亮度变换块的变换类型,以使解码器能够直接确定执行逆变换处理需要使用的变换类型时,编码器可以将确定的变换类型的指示信息写入位流,从而解码器可以基于该指示信息确定将用于对当前tu的亮度变换块的变换系数执行逆变换处理的变换类型。当存在三种候选变换类型时,可以使用两位发送指示信息,例如,可以是两位索引。当存在两种候选变换类型时,指示信息可以是一位标志。例如,当候选变换类型为c1和c2时,c1场景中对应于tu0、tu1、tu2的垂直变换类型可以为dst-7类型或dct-2类型,c2场景中对应于tu0、tu1、tu2的垂直变换类型可以为dct-8。例如,当候选变换类型为c1和c3时,c1场景中对应于tu0、tu1、tu2的垂直变换类型可以为dst-7类型或dct-2类型,c3场景中对应于tu0、tu1、tu2的垂直变换类型可以为dct-8。

e:四叉树分割

四叉树分割用于将当前cu的覆盖区域均匀地分割为四个tu:左上tu、右上tu、左下tu、右下tu。这四个tu具有相同的尺寸;左上tu的序列号表示为tu0,右上tu的序列号表示为tu1,左下tu的序列号表示为tu2,右下tu的序列号表示为tu3。

e1:基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型可以包括:在当前tu的序列号为tu0时,将dct-8类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型,将dct-8类型用作或选作垂直变换类型;和/或在当前tu的序列号为tu1时,将dst-7类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型,将dct-8类型用作或选作垂直变换类型;和/或在当前tu的序列号为tu2时,将dct-8类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型,将dst-7类型用作或选作垂直变换类型;和/或在当前tu的序列号为tu3时,将dst-7类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型,将dst-7类型用作或选作垂直变换类型。

e2:基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型可以包括:在当前tu的序列号为tu0时,将dst-7类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型,将dst-7类型用作或选作垂直变换类型;和/或在当前tu的序列号为tu1时,将dct-8类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型,将dst-7类型用作或选作垂直变换类型;和/或在当前tu的序列号为tu2时,将dst-7类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型,将dct-8类型用作或选作垂直变换类型;和/或在当前tu的序列号为tu3时,将dct-8类型用作或选作当前tu的亮度变换块的变换类型中的水平变换类型,将dct-8类型用作或选作垂直变换类型。

上面描述了四叉树分割中的两种不同的变换类型的示例(e1和e2),并且这两种不同的变换类型中的任何一种都可以用作默认变换类型。在这种情况下,编码器无需将变换类型指示信息写入位流。前述两种不同的变换类型都可以可替换地用作候选变换类型。在这种情况下,当编码器以rdo方式将两种不同的变换类型之一确定为当前tu的亮度变换块的变换类型,以使解码器能够直接确定执行逆变换处理需要使用的变换类型时,编码器可以将确定的变换类型的指示信息写入位流,从而解码器可以基于该指示信息确定将用于对当前tu的亮度变换块的变换系数执行逆变换处理的变换类型。指示信息可以是一位标志。

应注意,上述特定水平变换类型和/或垂直变换类型仅是示例,在实际应用中也可以使用其他变换类型。例如,在一些实施方式中,dct-8类型可以被替换为dct-4类型;和/或dst-7类型可以被替换为dst-4类型。

本发明另一实施例提供的视频解码设备包括:熵解码单元304、反量化单元310、逆变换处理单元312、以及重建单元314。

熵解码单元304用于解析位流以获得针对当前cu中包括的至少两个tu的分割模式。分割模式用于将当前cu的覆盖区域分割为上述至少两个tu,上述至少两个tu之间没有重叠区域,上述至少两个tu各自具有序列号,上述至少两个tu的序列号与上述至少两个tu在当前cu中的位置一一对应。

对于一些实施方式,参考前述步骤601的描述,这里不再赘述。

反量化单元310用于获得上述至少两个tu中的当前tu的亮度变换块的变换系数。

对于一些实施方式,参考前述步骤602的描述,这里不再赘述。

逆变换处理单元312,用于基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型,其中,变换类型包括水平变换类型和垂直变换类型;以及基于当前tu的亮度变换块的变换类型,对当前tu的亮度变换块的变换系数执行逆变换处理,以获得当前tu的亮度变换块的重建残差。

对于一些实施方式,参考前述步骤603和步骤604的描述,这里不再赘述。

重建单元314用于基于当前tu的亮度变换块的重建残差,获得当前cu的重建块。

对于一些实施方式,参考前述步骤605的描述,这里不再赘述。

对于装置实施例的一些实施方式,参考前述方法实施例的具体描述。为了说明书的简洁,这里不再赘述。

图10是用于实现本发明实施例的视频解码设备或装置1000的结构框图。视频解码设备或装置1000可以包括熵解码单元1001,该熵解码单元1001用于解析位流以获得针对当前译码单元(cu)中包括的至少两个变换单元(tu)的分割模式。分割模式用于将当前cu的覆盖区域分割为上述至少两个变换单元。上述至少两个变换单元之间没有重叠区域。上述至少两个变换单元各自具有序列号,上述至少两个变换单元的序列号与上述至少两个变换单元在当前cu中的位置一一对应。

视频解码装置1000还包括反量化单元1002,反量化单元1002用于获得上述至少两个变换单元中的当前tu的亮度变换块的变换系数。

视频解码装置1000还包括逆变换处理单元1003,逆变换处理单元1003用于基于分割模式和当前tu的序列号,获得当前tu的亮度变换块的变换类型。变换类型包括水平变换类型和垂直变换类型。逆变换处理单元1003用于基于当前tu的亮度变换块的变换类型,对当前tu的亮度变换块的变换系数执行逆变换处理,以获得当前tu的亮度变换块的重建残差。视频解码装置1000还包括重建单元,重建单元用于基于当前tu的亮度变换块的重建残差,获得当前cu的重建块。

在一个实施例中,分割模式为水平二元分割,水平二元分割用于将当前cu的覆盖区域水平分割为上tu和下tu。上tu和下tu具有相同的尺寸。对应于上tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型,上tu的序列号为tu0,下tu的序列号为tu1。为了获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:在当前tu的序列号为tu0时,将dct-8类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或在当前tu的序列号为tu1时,将dst-7类型用作当前tu的亮度变换块的变换类型中的垂直变换类型。

在一个实施例中,分割模式为水平二元分割,水平二元分割用于将当前cu的覆盖区域水平分割为上tu和下tu。上tu和下tu具有相同的尺寸。对应于上tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型,上tu的序列号为tu0,下tu的序列号为tu1。为了获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:在当前tu的序列号为tu0时,将dst-7类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或在当前tu的序列号为tu1时,将dct-8类型用作当前tu的亮度变换块的变换类型中的垂直变换类型。

在一个实施例中,分割模式为垂直二元分割,垂直二元分割用于将当前cu的覆盖区域水平分割为左tu和右tu,左tu和右tu具有相同的尺寸。对应于左tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型。左tu的序列号为tu0,右tu的序列号为tu1。为了获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:在当前tu的序列号为tu0时,将dct-8类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或在当前tu的序列号为tu1时,将dst-7类型用作当前tu的亮度变换块的变换类型中的水平变换类型。

在一个实施例中,分割模式为垂直二元分割,垂直二元分割用于将当前cu的覆盖区域水平分割为左tu和右tu,左tu和右tu具有相同的尺寸。对应于左tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型。左tu的序列号为tu0,右tu的序列号为tu1。为了获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:在当前tu的序列号为tu0时,将dst-7类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或在当前tu的序列号为tu1时,将dct-8类型用作当前tu的亮度变换块的变换类型中的水平变换类型。

在一个实施例中,分割模式为水平三元分割,水平三元分割用于将当前cu的覆盖区域水平分割为上tu、中tu、下tu。上tu和下tu具有相同的尺寸;中tu的尺寸为上tu的尺寸的两倍。对应于上tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型,对应于中tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型;上tu的序列号为tu0,中tu的序列号为tu1,下tu的序列号为tu2。为了获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:在当前tu的序列号为tu0时,将dct-8类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或在当前tu的序列号为tu1时,将dct-2类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或在当前tu的序列号为tu2时,将dst-7类型用作当前tu的亮度变换块的变换类型中的垂直变换类型。

在一个实施例中,分割模式为水平三元分割,水平三元分割用于将当前cu的覆盖区域水平分割为上tu、中tu、下tu,上tu和下tu具有相同的尺寸;中tu的尺寸为上tu的尺寸的两倍。对应于上tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型。对应于中tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型。上tu的序列号为tu0,中tu的序列号为tu1,下tu的序列号为tu2。为了获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:在当前tu的序列号为tu0时,将dct-8类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或在当前tu的序列号为tu1时,将dst-7类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或在当前tu的序列号为tu2时,将dst-7类型用作当前tu的亮度变换块的变换类型中的垂直变换类型。

在一个实施例中,分割模式为水平三元分割,水平三元分割用于将当前cu的覆盖区域水平分割为上tu、中tu、下tu,上tu和下tu具有相同的尺寸;中tu的尺寸为上tu的尺寸的两倍。对应于上tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型,对应于中tu的亮度变换块的变换类型和对应于下tu的亮度变换块的变换类型具有相同的水平变换类型;上tu的序列号为tu0,中tu的序列号为tu1,下tu的序列号为tu2。为了获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:在当前tu的序列号为tu0时,将dst-7类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或在当前tu的序列号为tu1时,将dct-8类型用作当前tu的亮度变换块的变换类型中的垂直变换类型;和/或在当前tu的序列号为tu2时,将dct-8类型用作当前tu的亮度变换块的变换类型中的垂直变换类型。

在一个实施例中,分割模式为垂直三元分割,垂直三元分割用于将当前cu的覆盖区域水平分割为左tu、中tu、右tu,左tu和右tu具有相同的尺寸;中tu的尺寸为左tu的尺寸的两倍。对应于左tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型,对应于中tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型;左tu的序列号为tu0,中tu的序列号为tu1,右tu的序列号为tu2。为了获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:在当前tu的序列号为tu0时,将dct-8类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或在当前tu的序列号为tu1时,将dct-2类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或在当前tu的序列号为tu2时,将dst-7类型用作当前tu的亮度变换块的变换类型中的水平变换类型。

在一个实施例中,分割模式为垂直三元分割,垂直三元分割用于将当前cu的覆盖区域水平分割为左tu、中tu、右tu,左tu和右tu具有相同的尺寸;中tu的尺寸为左tu的尺寸的两倍。对应于左tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型,对应于中tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型;左tu的序列号为tu0,中tu的序列号为tu1,右tu的序列号为tu2。为了获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:在当前tu的序列号为tu0时,将dct-8类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或在当前tu的序列号为tu1时,将dst-7类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或在当前tu的序列号为tu2时,将dst-7类型用作当前tu的亮度变换块的变换类型中的水平变换类型。

在一个实施例中,分割模式为垂直三元分割,垂直三元分割用于将当前cu的覆盖区域水平分割为左tu、中tu、右tu,左tu和右tu具有相同的尺寸;中tu的尺寸为左tu的尺寸的两倍。对应于左tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型,对应于中tu的亮度变换块的变换类型和对应于右tu的亮度变换块的变换类型具有相同的垂直变换类型;左tu的序列号为tu0,中tu的序列号为tu1,右tu的序列号为tu2。为了获得当前tu的亮度变换块的变换类型,逆变换处理单元用于:在当前tu的序列号为tu0时,将dst-7类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或在当前tu的序列号为tu1时,将dct-8类型用作当前tu的亮度变换块的变换类型中的水平变换类型;和/或在当前tu的序列号为tu2时,将dct-8类型用作当前tu的亮度变换块的变换类型中的水平变换类型。

在一个实施例中,装置1000还可以用于解析位流以获得当前tu的亮度变换块的变换类型的指示信息。逆变换处理单元用于基于分割模式和指示信息,获得当前tu的亮度变换块的变换类型。

在一个实施例中,dct-8类型可以被替换为dct-4类型。在一个实施例中,dst-7类型可以被替换为dst-4类型。

本领域技术人员将理解,参考本说明书中公开和描述的各种示例性逻辑块、模块和算法步骤描述的功能可以通过硬件、软件、固件或其任意组合实现。如果通过软件实现,则参考各种示例性逻辑块、模块和步骤描述的功能可以作为一个或多个指令或程序代码存储在计算机可读介质中或通过计算机可读介质传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质等有形介质或包括有助于将计算机程序从一处转移到另一处的任何介质的通信介质(例如通信协议)。以这种方式,计算机可读介质可以对应于:(1)非暂时性有形计算机可读存储介质,或(2)通信介质,例如信号或载波。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以检索指令、代码、和/或数据结构以实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。

作为示例而非限制,这种计算机可读存储介质可以包括ram、rom、eeprom、eeprom、cd-rom、或其他光盘存储设备、磁盘存储设备、或其他磁存储设备、闪存、或任何其他可以用于以指令或数据结构形式存储所需程序代码并且可由计算机访问的介质。另外,任何连接都适当地称为计算机可读介质。例如如果通过同轴电缆、光纤、双绞线、数字用户线(digitalsubscriberline,dsl)、或无线技术(例如红外、无线电、微波)从网站、服务器、或其他远程源发送指令,则介质的定义包括同轴电缆、光纤、双绞线、dsl、或无线技术(例如红外、无线电、微波)。但是,应理解,计算机可读存储介质和数据存储介质不包括连接、载体、信号、或其他暂时性介质,而实际上是指非暂时性有形存储介质。本说明书中使用的磁盘和光盘包括光盘(compactdisc,cd)、激光光盘、光盘、数字多功能光盘(digitalversatiledisc,dvd)、以及蓝光光盘,其中,磁盘通常以磁性方式复制数据,而磁盘则通过激光以光学方式复制数据。前述的组合也应包括在计算机可读介质的范围内。

指令可以由一个或多个处理器执行,例如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)、或其他等效集成或离散逻辑电路。因此,在本说明书中使用的术语“处理器”可以指任何前述结构或适用于实现本说明书中描述的技术的任何其他结构。另外,在一些方面,参考本说明书中描述的各种示例性逻辑块、模块和步骤描述的功能可以提供在用于进行编码和解码的专用硬件和/或软件模块内,或者可以并入编解码器中。另外,该技术可以完全在一个或多个电路或逻辑元件中实现。

本发明的技术可以在包括无线手持机、集成电路(integratedcircuit,ic)、或一组ic(例如芯片集)的多种装置或设备中实现。在本申请中描述了各种组件、模块、或单元以强调用于执行所公开的技术的装置的功能方面,但不一定由不同的硬件单元来实现。实际上,如上所述,各种单元可以与合适的软件和/或固件一起组合为编解码器硬件单元,或者由互操作的硬件单元(包括上述一个或多个处理器)提供。

在前述实施例中,每个实施例的描述具有各自的重点。对于实施例中未详细描述的部分,参考其他实施例中的相关描述。

前述描述只是本公开的特定实施方式的示例,而无意限制本公开的保护范围。本领域技术人员容易想到的在本申请公开的技术范围内的任何变型或替代都应落入本公开的保护范围内。因此,本公开的保护范围应以权利要求的保护范围为准。

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