首页 / 专利库 / 多媒体工具与应用 / 视频编码 / 使用优化的紧凑多遍变换的高效变换编码

使用优化的紧凑多遍变换的高效变换编码

阅读:1发布:2020-07-13

专利汇可以提供使用优化的紧凑多遍变换的高效变换编码专利检索,专利查询,专利分析的服务。并且作为 视频编码 或解码过程的部分,一种装置将变换应用于输入数据元素以导出用于当前 块 的输出数据元素。所述变换包括向量变换序列。对于所述向量变换序列中除所述向量变换序列中的第一向量变换外的每一相应的向量变换,所述相应的向量变换的输入值包括所述向量变换序列中的相应的前一向量变换的输出值。所述向量变换序列中的每一相应的向量变换进一步将用于所述相应的向量变换的相应的参数向量作为输入,用于所述相应的向量变换的所述相应的参数向量包括一或多个参数。,下面是使用优化的紧凑多遍变换的高效变换编码专利的具体信息内容。

1.一种解码视频数据的方法,所述方法包括:
基于包括所述视频数据的当前图片的编码表示的位流中的语法元素,确定用于所述当前图片的当前的多个数据元素;
将变换应用于所述数据元素以导出所述当前块的残余值,其中:
所述变换包括向量变换序列,
所述向量变换序列中的第一向量变换的输入值包括所述多个数据元素,所述向量变换序列中的最末向量变换的输出值包括所述当前块的所述残余值,对于所述向量变换序列中除所述向量变换序列中的所述第一向量变换外的每一相应的向量变换,所述相应的向量变换的输入值包括所述向量变换序列中的相应的前一向量变换的输出值,且
所述向量变换序列中的每一相应的向量变换进一步将用于所述相应的向量变换的相应的参数向量作为输入,用于所述相应的向量变换的所述相应的参数向量包括一或多个参数;以及
基于导出的残余数据,重构建所述当前图片的样本。
2.根据权利要求1所述的方法,其中:
所述向量变换序列中的向量变换包括一或多个反吉文斯正交变换,所述一或多个反吉文斯正交变换中的每一相应的反吉文斯正交变换应用于所述向量变换相应的一对输入值,所述相应的反吉文斯正交变换通过相应的度θ进行参数化,且用于所述向量变换的所述参数向量的至少一个参数值指定所述相应的角度θ的值。
3.根据权利要求2所述的方法,其中用于所述向量变换的所述参数向量的每一参数值指定所述角度θ的相应值。
4.根据权利要求1所述的方法,其进一步包括基于所述位流中的一或多个语法元素确定一组有效变换,其中所述向量变换序列中的每一相应的向量变换是所述一组有效变换的成员。
5.根据权利要求4所述的方法,其进一步包括:
对于所述向量变换序列中的向量变换,基于所述位流中的一或多个语法元素确定用于所述一组有效变换的所述参数向量中的允许参数。
6.根据权利要求1所述的方法,其进一步包括基于所述位流中的一或多个语法元素确定所述变换。
7.根据权利要求1所述的方法,其中对于所述向量变换序列中的每一相应的向量变换,用于所述相应的向量变换的所述相应的参数向量中的参数的数目等于所述相应的向量变换的输入值的数目的二分之一。
8.根据权利要求1所述的方法,其进一步包括:
对于所述向量变换序列中的每一相应的向量变换,存储用于所述相应的向量变换的所述相应的参数向量中的所述参数的预计算的值。
9.一种编码视频数据的方法,所述方法包括:
确定所述视频数据的当前图片的当前块的残余值;
将变换应用于所述当前块的所述残余值以导出用于所述当前块的多个数据元素,其中将所述变换应用于所述当前块的所述残余值包括应用向量变换序列,其中:
所述向量变换序列中的第一向量变换的输入值包括所述当前块的所述残余值,所述向量变换序列中的最末向量变换的输出值包括用于所述当前块的所述数据元素,对于所述向量变换序列中除所述向量变换序列中的所述第一向量变换外的每一相应的向量变换,所述相应的向量变换的输入值包括所述向量变换序列中的相应的前一向量变换的输出值,且
所述向量变换序列中的每一相应的向量变换进一步将用于所述相应的向量变换的相应的参数向量作为输入,用于所述相应的向量变换的所述相应的参数向量包括一或多个参数;以及
在包括所述当前图片的编码表示的位流中包含具有基于用于所述当前块的所述数据元素的值的语法元素。
10.根据权利要求9所述的方法,其中应用所述向量变换序列包括:
应用一或多个吉文斯正交变换,所述一或多个吉文斯正交变换中的每一相应的吉文斯正交变换应用于所述向量变换相应的一对输入值,所述相应的吉文斯正交变换通过相应的角度θ进行参数化,且用于所述向量变换的所述参数向量的至少一个参数值指定所述相应的角度θ的值。
11.根据权利要求10所述的方法,其中用于所述向量变换的所述参数向量的每一参数值指定所述角度θ的相应值。
12.根据权利要求9所述的方法,其进一步包括在所述位流中用信号发送一组有效变换,其中所述向量变换序列中的每一相应的向量变换是所述一组有效变换的成员。
13.根据权利要求12所述的方法,其进一步包括:
对于所述向量变换序列中的向量变换,在所述位流中用信号发送用于所述一组有效变换的所述参数向量中的允许参数。
14.根据权利要求9所述的方法,其进一步包括从多个可用变换当中选择应用于所述当前块的所述残余值的变换。
15.根据权利要求9所述的方法,其进一步包括在所述位流中用信号发送所述变换。
16.根据权利要求9所述的方法,其中对于所述向量变换序列中的每一相应的向量变换,用于所述相应的向量变换的所述相应的参数向量中的参数的数目等于所述相应的向量变换的输入值的数目的二分之一。
17.根据权利要求9所述的方法,其进一步包括,对于所述向量变换序列中的每一相应的向量变换,存储用于所述相应的向量变换的所述相应的参数向量中的所述参数的预计算的值。
18.一种用于解码视频数据的装置,所述装置包括:
一或多个存储媒体,其经配置以存储经编码视频数据;以及
视频解码器,其经配置以:
基于包括所述视频数据的当前图片的编码表示的位流中的语法元素,确定用于所述当前图片的当前块的多个数据元素;
将变换应用于所述数据元素以导出所述当前块的残余值,其中:
所述变换包括向量变换序列,
所述向量变换序列中的第一向量变换的输入值包括所述多个数据元素,所述向量变换序列中的最末向量变换的输出值包括所述当前块的所述残余值,对于所述向量变换序列中除所述向量变换序列中的所述第一向量变换外的每一相应的向量变换,所述相应的向量变换的输入值包括所述向量变换序列中的相应的前一向量变换的输出值,且
所述向量变换序列中的每一相应的向量变换进一步将用于所述相应的向量变换的相应的参数向量作为输入,用于所述相应的向量变换的所述相应的参数向量包括一或多个参数;以及
基于导出的残余数据,重构建所述当前图片的样本。
19.根据权利要求18所述的装置,其中:
所述向量变换序列中的向量变换包括一或多个反吉文斯正交变换,所述一或多个反吉文斯正交变换中的每一相应的反吉文斯正交变换应用于所述向量变换相应的一对输入值,所述相应的反吉文斯正交变换通过相应的角度θ进行参数化,且用于所述向量变换的所述参数向量的至少一个参数值指定所述相应的角度θ的值。
20.根据权利要求19所述的装置,其中用于所述向量变换的所述参数向量的每一参数值指定所述角度θ的相应值。
21.根据权利要求18所述的装置,其中所述视频解码器进一步经配置以基于所述位流中的一或多个语法元素确定所述变换。
22.根据权利要求18所述的装置,其中对于所述向量变换序列中的每一相应的向量变换,用于所述相应的向量变换的所述相应的参数向量中的参数的数目等于所述相应的向量变换的输入值的数目的二分之一。
23.根据权利要求18所述的装置,其进一步包括存储器,对于所述向量变换序列中的每一相应的向量变换,所述存储器存储用于所述相应的向量变换的所述相应的参数向量中的所述参数的预计算的值。
24.一种用于编码视频数据的装置,所述装置包括:
一或多个存储媒体,其经配置以存储视频数据;以及
视频编码器,其经配置以:
确定所述视频数据的当前图片的当前块的残余值;
将变换应用于所述当前块的所述残余值以导出用于所述当前块的多个数据元素,其中将所述变换应用于所述当前块的所述残余值包括应用向量变换序列,其中:
所述向量变换序列中的第一向量变换的输入值包括所述当前块的所述残余值,所述向量变换序列中的最末向量变换的输出值包括用于所述当前块的所述数据元素,对于所述向量变换序列中除所述向量变换序列中的所述第一向量变换外的每一相应的向量变换,所述相应的向量变换的输入值包括所述向量变换序列中的相应的前一向量变换的输出值,且
所述向量变换序列中的每一相应的向量变换进一步将用于所述相应的向量变换的相应的参数向量作为输入,用于所述相应的向量变换的所述相应的参数向量包括一或多个参数;以及
在包括所述当前图片的编码表示的位流中包含具有基于用于所述当前块的所述数据元素的值的语法元素。
25.根据权利要求24所述的装置,其中所述视频编码器经配置以使得,作为应用所述向量变换序列的部分,所述视频编码器应用一或多个吉文斯正交变换,所述一或多个吉文斯正交变换中的每一相应的吉文斯正交变换应用于所述向量变换相应的一对输入值,所述相应的吉文斯正交变换通过相应的角度θ进行参数化,且用于所述向量变换的所述参数向量的至少一个参数值指定所述相应的角度θ的值。
26.根据权利要求25所述的装置,其中用于所述向量变换的所述参数向量的每一参数值指定所述角度θ的相应值。
27.根据权利要求24所述的装置,其中所述视频编码器经配置以从多个可用变换当中选择应用于所述当前块的所述残余值的变换。
28.根据权利要求24所述的装置,其进一步包括在所述位流中用信号发送所述变换。
29.根据权利要求24所述的装置,其中对于所述向量变换序列中的每一相应的向量变换,用于所述相应的向量变换的所述相应的参数向量中的参数的数目等于所述相应的向量变换的输入值的数目的二分之一。
30.根据权利要求24所述的装置,其进一步包括存储器,对于所述向量变换序列中的每一相应的向量变换,所述存储器存储用于所述相应的向量变换的所述相应的参数向量中的所述参数的预计算的值。

说明书全文

使用优化的紧凑多遍变换的高效变换编码

[0001] 本申请要求2016年2月15日提交的美国临时专利申请案62/295,448的权益,所述申请案的整个内容以引用的方式并入本文中。

技术领域

[0002] 本公开涉及视频编码和视频解码。

背景技术

[0003] 数字视频能可以并入到广泛范围的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、平板电脑电子图书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、所谓的“智能电话”、视频电话会议装置、视频流式传输装置等。数字视频装置实施视频译码技术,例如描述于以下标准中的那些技术:由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高级视频译码(AVC)、ITU-T H.265定义的标准、高效视频译码(HEVC)标准以及此类标准的扩展。视频装置可通过实施此类视频译码技术而更高效地传输、接收、编码、解码和/或存储数字视频信息。
[0004] 视频译码技术包含空间(图片内)预测和/或时间(图片间)预测以减少或移除视频序列中固有的冗余。对于基于的视频译码,可将视频切片(例如,视频或视频帧的一部分)分割成视频块,其也可被称作树块、译码单元(CU)和/或译码节点。图片可被称作帧,且参考图片可被称作参考帧。
[0005] 空间或时间预测产生用于待译码的块的预测性块。残余数据表示待译码原始块与预测性块之间的像素差。为了进一步压缩,可将残余数据从像素域变换到变换域,从而产生残余变换系数,可接着量化所述残余变换系数。可应用熵译码以实现甚至更大程度的压缩。发明内容
[0006] 总的来说,本公开描述使用紧凑多遍变换(CMPT)的变换译码的技术。变换译码是视频译码的一部分,例如,最新标准中的高效视频译码(HEVC)的一部分。所述标准可使用可分开(例如平变换且接着竖直变换,或反之亦然)且每块大小固定的块变换,由此使用极少内存来实施。
[0007] 有可能使用多组不可分开变换来改进压缩,其中压缩改进取决于可用变换的数目。具有许多组不可分开变换可能导致必须使用过多昂贵的快速存储器来以矩阵格式存储定义所有那些变换的参数。本公开描述用于替换基于矩阵的变换的实例技术。本公开使用CMPT而非使用基于矩阵的变换,一般来说,与呈矩阵格式的变换相比,CMPT使用更少内存和计算。
[0008] 在一个实例中,本公开描述一种解码视频数据的方法,所述方法包括:基于包括视频数据的当前图片的编码表示的位流中的语法元素,确定用于当前图片的当前块的多个数据元素;将变换应用于所述数据元素以导出所述当前块的残余值,其中:所述变换包括向量变换序列,所述向量变换序列中的第一向量变换的输入值包括所述多个数据元素,所述向量变换序列中的最末向量变换的输出值包括所述当前块的所述残余值,对于所述向量变换序列中除所述向量变换序列中的所述第一向量变换外的每一相应的向量变换,所述相应的向量变换的输入值包括所述向量变换序列中相应的前一向量变换的输出值,且所述向量变换序列中的每一相应的向量变换进一步将用于所述相应的向量变换的相应的参数向量作为输入,用于所述相应的向量变换的所述相应的参数向量包括一或多个参数;以及基于导出的残余数据,重构建当前图片的样本。
[0009] 在另一实例中,本公开描述一种编码视频数据的方法,所述方法包括:确定所述视频数据的当前图片的当前块的残余值;将变换应用于所述当前块的所述残余值以导出用于所述当前块的多个数据元素,其中将所述变换应用于所述当前块的所述残余值包括应用向量变换序列,其中:所述向量变换序列中的第一向量变换的输入值包括所述当前块的所述残余值,所述向量变换序列的最末向量变换的输出值包括用于所述当前块的所述数据元素,对于所述向量变换序列中除所述向量变换序列中的所述第一向量变换外的每一相应的向量变换,所述相应的向量变换的输入值包括所述向量变换序列中的相应的前一向量变换的输出值,所述向量变换序列中的每一相应的向量变换进一步将用于所述相应的向量变换的相应的参数向量作为输入,且用于所述相应的向量变换的所述相应的参数向量包括一或多个参数;以及在包括所述当前图片的编码表示的位流中包含具有基于所述当前块的所述数据元素的值的语法元素。
[0010] 在另一实例中,本公开描述一种用于解码视频数据的装置,所述装置包括:一或多个存储媒体,其经配置以存储经编码视频数据;以及视频解码器,其经配置以:基于包括所述视频数据的当前图片的编码表示的位流中的语法元素,确定用于所述当前图片的当前块的多个数据元素;将变换应用于所述数据元素以导出所述当前块的残余值,其中:所述变换包括向量变换序列,所述向量变换序列中的第一向量变换的输入值包括所述多个数据元素,所述向量变换序列的最末向量变换的输出值包括所述当前块的所述残余值,对于所述向量变换序列中除所述向量变换序列中的所述第一向量变换外的每一相应的向量变换,所述相应的向量变换的输入值包括所述向量变换序列中的相应的前一向量变换的输出值,且所述向量变换序列中的每一相应的向量变换进一步将用于所述相应的向量变换的相应的参数向量作为输入,用于所述相应的向量变换的所述相应的参数向量包括一或多个参数;以及基于导出的残余数据重构建所述当前图片的样本。
[0011] 在另一实例中,本公开描述一种用于编码视频数据的装置,所述装置包括:一或多个存储媒体,其经配置以存储视频数据;以及视频编码器,其经配置以:确定所述视频数据的当前图片的当前块的残余值;将变换应用于所述当前块的所述残余值以导出用于当前块的多个数据元素,其中将所述变换应用于所述当前块的所述残余值包括应用向量变换序列,其中:所述向量变换序列中的第一向量变换的输入值包括所述当前块的所述残余值,所述向量变换序列中的最末向量变换的输出值包括用于所述当前块的所述数据元素,对于所述向量变换序列中除所述向量变换序列中的所述第一向量变换外的每一相应的向量变换,所述相应的向量变换的输入值包括所述向量变换序列中的相应的前一向量变换的输出值,且所述向量变换序列中的每一相应的向量变换进一步将用于所述相应的向量变换的相应的参数向量作为输入,用于所述相应的向量变换的所述相应的参数向量包括一或多个参数;以及在包括所述当前图片的编码表示的位流中包含具有基于所述当前块的所述数据元素的值的语法元素。
[0012] 附图以及以下描述中阐述一或多个实例的细节。其它特征、目标和优点将从所述描述、图式和权利要求书显而易见。

附图说明

[0013] 图1是说明经配置以实施本公开的技术的实例视频编码和解码系统的框图
[0014] 图2是说明用于具有变换选择的混合视频编码的实例系统的框图。
[0015] 图3A是说明用于计算像素残余的二维块中的可分开变换的实例选项的概念图
[0016] 图3B是说明用于计算像素残余的二维块中的不可分开变换的实例选项的概念图。
[0017] 图4是说明根据本公开的技术的实例紧凑多遍变换实施方案的概念图。
[0018] 图5是表示根据本公开的技术的由度θ参数化、应用于一对向量元素的吉文斯正交变换(Givens orthogonal transformation)和变换方程的“蝶形”图。
[0019] 图6是根据本公开的技术的使用平行吉文斯旋转序列对维数16的向量进行的紧凑多遍变换实施方案的图。
[0020] 图7是说明视频编码器的实例的框图。
[0021] 图8是说明视频解码器的实例的框图。
[0022] 图9是说明根据本公开的技术的用于编码视频数据的视频编码器的实例操作的流程图
[0023] 图10是说明根据本公开的技术的用于解码视频的视频解码器的实例操作的流程图。

具体实施方式

[0024] 本公开描述可通过作为视频压缩标准的基本部分的变换译码的高级应用来解决问题的技术。本公开的技术可减小大量不可分开变换的内存和计算,从而潜在地实现具有合理成本的较大译码增益。在过去,已提出若干数据自适应变换技术用于视频译码,其展示非常显著的译码增益,但复杂性过高。在一些情况下,本公开的技术可减小所需的内存,潜在地具有极少性能损失。
[0025] 举例来说,视频编码器可确定视频数据的当前图片的当前块的残余值。在此实例中,视频编码器可将变换应用于当前块的残余值以导出用于所述当前块的多个数据元素(例如变换系数)。作为将变换应用于当前块的残余值的部分,视频编码器应用向量变换序列。在此实例中,所述向量变换序列中的第一向量变换的输入值包括当前块的残余值。此外,在此实例中,所述向量变换序列中的最末向量变换的输出值包括用于当前块的数据元素。对于所述向量变换序列中除所述向量变换序列中的第一向量变换外的每一相应的向量变换,相应的向量变换的输入值包括所述向量变换序列中的相应的前一向量变换的输出值。所述向量变换序列中的每一相应的向量变换进一步将用于所述相应的向量变换的相应的参数向量作为输入,用于所述相应的向量变换的所述相应的参数向量包括一或多个参数。视频编码器可在包括当前图片的编码表示的位流中包含具有基于用于当前块的数据元素的值的语法元素。
[0026] 类似地,视频解码器可基于包括视频数据的当前图片的编码表示的位流中的语法元素来确定用于当前图片的当前块的多个数据元素(例如变换系数)。在此实例中,视频解码器可将变换应用于数据元素以导出当前块的残余值。所述变换包括向量变换序列,其还可在本文中称为遍次。在此实例中,所述向量变换序列中的第一向量变换的输入值包括所述多个数据元素。所述向量变换序列中的最末向量变换的输出值包括当前块的残余值。在此实例中,对于所述向量变换序列中除所述向量变换序列中的第一向量变换外的每一相应的向量变换,相应的向量变换的输入值包括所述向量变换序列中的相应的前一向量变换的输出值。所述向量变换序列中的每一相应的向量变换进一步将用于所述相应的向量变换的相应的参数向量作为输入,用于所述相应的向量变换的所述相应的参数向量包括一或多个参数。视频解码器30可基于导出的残余数据重构建当前图片的样本。
[0027] 图1是说明可利用本公开的技术的实例视频编码和解码系统10的框图。如图1中所展示,系统10包含源装置12,其提供在稍后时间由目的地装置14解码的经编码视频数据。确切地说,源装置12经由计算机可读媒体16将视频数据提供到目的地装置14。源装置12和目的地装置14可包括广泛范围的装置中的任一个,包含桌上型计算机、笔记型(即,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话的电话手持机、平板计算机、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置等。在一些情况下,源装置12和目的地装置14可经装备以用于无线通信。因此,源装置12和目的地装置14可为无线通信装置。源装置12是实例视频编码装置(即,用于编码视频数据的装置)。目的地装置14是实例视频解码装置(即,用于解码视频数据的装置)。
[0028] 在图1的实例中,源装置12包含视频源18、经配置以存储视频数据的存储媒体19、视频编码器20和输出接口24。目的地装置14包含输入接口26、经配置以存储经编码视频数据的存储媒体28、视频解码器30和显示装置32。在其它实例中,源装置12和目的地装置14包含其它组件或布置。举例来说,源装置12可从例如外部相机的外部视频源接收视频数据。同样,目的地装置14可与外部显示装置介接,而非包含集成显示装置。
[0029] 图1的所说明系统10仅为一个实例。可通过任何数字视频编码和/或解码装置来执行用于处理视频数据的技术。虽然本公开的技术一般通过视频编码装置执行,但是所述技术也可通过视频编码器/解码器(通常称为“CODEC”)执行。源装置12和目的地装置14仅为此类译码装置的实例,其中源装置12产生经译码视频数据以用于传输到目的地装置14。在一些实例中,源装置12和目的地装置14可以大体上对称的方式操作,使得源装置12和目的地装置14中的每一个包含视频编码和解码组件。因此,系统10可支持源装置12与目的地装置14之间的单向或双向视讯传输,例如以用于视频流式传输、视频重放、视频广播或视频电话。
[0030] 源装置12的视频源18可包含视频捕获装置,例如摄像机、含有先前所捕获视频的视频存档和/或从视频内容提供者接收视频数据的视频馈送接口。作为另一替代方案,视频源18可产生基于计算机图形的数据作为源视频,或实时视频、存档视频和计算机产生的视频的组合。源装置12可包括经配置以存储视频数据的一或多个数据存储媒体(例如存储媒体19)。总的来说,本公开中描述的技术可适用于视频译码,且可应用于无线和/或有线应用。在每种情况下,可通过视频编码器20来对所捕获、预捕获或计算机产生的视频进行编码。输出接口24可将经编码视频信息输出到计算机可读媒体16。
[0031] 目的地装置14可经由计算机可读媒体16接收待解码的经编码视频数据。计算机可读媒体16可包括能够将经编码视频数据从源装置12移动到目的地装置14的任何类型的媒体或装置。在一些实例中,计算机可读媒体16包括使得源装置12能够实时地将经编码视频数据直接传输到目的地装置14的通信媒体。经编码视频数据可根据通信标准(例如,无线通信协议)来调制,且传输到目的地装置14。通信媒体可包括任何无线或有线通信媒体,例如射频(RF)频谱或一或多个物理传输线。通信媒体可形成基于包的网络(例如,局域网、广域网或全球网络,例如因特网)的部分。通信媒体可包含路由器、交换机、基站或可用于促进从源装置12到目的地装置14的通信的任何其它设备。目的地装置14可包括经配置以存储经编码视频数据和经解码视频数据的一或多个数据存储媒体。
[0032] 在一些实例中,经编码数据可从输出接口24输出到存储装置。类似地,经编码数据可通过输入接口从存储装置存取。存储装置可包含各种分布式或本地存取式数据存储媒体中的任一种,例如硬盘驱动器、蓝光光盘、DVD、CD-ROM、快闪存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适的数字存储媒体。在另一实例中,存储装置可对应于文件服务器或可存储源装置12产生的经编码视频的另一中间存储装置。目的地装置14可经由流式传输或下载从存储装置存取所存储视频数据。文件服务器可以是能够存储经编码视频数据并且将所述经编码视频数据传输到目的地装置14的任何类型的服务器。实例文件服务器包含网络服务器(例如,用于网站)、FTP服务器、网络附接存储(NAS)装置或本地磁盘驱动器。目的地装置14可通过包含因特网连接的任何标准数据连接来存取经编码视频数据。这可包含无线信道(例如Wi-Fi连接)、有线连接(例如DSL、电缆调制解调器等)或这两者的适于存取文件服务器上存储的经编码视频数据的组合。经编码视频数据从存储装置的传输可为流式传输、下载传输或其组合。
[0033] 所述技术可应用于支持各种多媒体应用中的任一者的视频译码,所述多媒体应用例如空中电视广播、有线电视传输、卫星电视传输、因特网流式视频传输(例如,HTTP动态自适应流式传输(DASH))、被编码到数据存储媒体上的数字视频,存储在数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频传输,从而支持例如视频流式传输、视频重放、视频广播和/或视频电话等应用。
[0034] 计算机可读媒体16可包含暂时性媒体,例如无线广播或有线网络传输,或存储媒体(即,非暂时性存储媒体),例如硬盘、快闪驱动器、压缩光盘、数字视频光盘、蓝光光盘或其它计算机可读媒体。在一些实例中,网络服务器(未展示)可从源装置12接收经编码视频数据,且例如经由网络传输将经编码视频数据提供到目的地装置14。类似地,媒体生产设施(例如,光盘冲压设施)的计算装置可从源装置12接收经编码视频数据且生产含有经编码视频数据的光盘。因此,在各种实例中,计算机可读媒体16可理解为包含各种形式的一或多个计算机可读媒体。
[0035] 目的地装置14的输入接口26从计算机可读媒体16接收信息。计算机可读媒体16的信息可包含由视频编码器20的视频编码器20定义的还供视频解码器30使用的语法信息,所述语法信息包含描述块和其它经译码单元(例如,图片群组(GOP))的特性和/或处理的语法元素。存储媒体28可存储通过输入接口26接收的经编码视频数据。显示装置32将经解码视频数据显示给用户,且可包括各种显示装置中的任一种,例如,阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器,或另一类型的显示装置。
[0036] 视频编码器20和视频解码器30各自可实施为各种合适的固定功能和/或可编程电路,例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程阵列(FPGA)、离散逻辑、软件硬件固件或其任何组合。当部分地以软件实施所述技术时,装置可将用于所述软件的指令存储于合适的非暂时性计算机可读媒体中,且在硬件中使用一或多个处理器执行所述指令以执行本公开的技术。视频编码器20和视频解码器30中的每一者可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为相应装置中的组合编码器/解码器(CODEC)的部分。
[0037] 在一些实例中,视频编码器20和视频解码器30可根据视频译码标准(例如现有或将来的标准)操作。实例视频译码标准包含但不限于ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262或ISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual和ITU-T H.264(也称为ISO/IEC MPEG-4 AVC),包含其可缩放视频译码(SVC)和多视图视频译码(MVC)扩展。另外,新视频译码标准(即,高效视频译码(HEVC)或ITU-T H.265),包含其范围和屏幕内容译码扩展、3D视频译码(3D-HEVC)和多视图扩展(MV-HEVC)和可缩放扩展(SHVC),最近已由ITU-T视频译码专家组(VCEG)与ISO/IEC动画专家组(MPEG)的视频译码联合合作小组(Joint Collaboration Team on Video Coding,JCT-VC)开发。
[0038] 在HEVC和其它视频译码规范中,视频序列通常包含一系列图片。图片还可被称作“帧”。图片可包含三个样本阵列,标示为SL、SCb和SCr。SL是亮度样本的二维阵列(即,块)。SCb是Cb色度样本的二维阵列。SCr是Cr色度样本的二维阵列。色度样本在本文中还可称为“色度(chroma)”样本。在其它情况下,图片可能为单色的且可能仅包含亮度样本阵列。
[0039] 为了产生图片的编码表示,视频编码器20可产生一组译码树单元(CTU)。每一CTU可包括亮度样本的译码树块、色度样本的两个对应译码树块和用于对译码树块的样本进行译码的语法结构。在单色图片或具有三个单独颜色平面的图片中,CTU可包括单个译码树块和用于对所述译码树块的样本进行译码的语法结构。译码树块可以是N×N的样本块。CTU也可被称为“树块”或“最大译码单元(LCU)”。HEVC的CTU在广义上可类似于例如H.264/AVC的其它标准的宏块。然而,CTU未必限于特定大小,且可包含一或多个译码单元(CU)。切片可包含按光栅扫描次序连续排序的整数数目的CTU。
[0040] 本公开可使用术语“视频单元”或“视频块”或“块”来指代一或多个样本块以及用于对所述一或多个样本块中的样本进行译码的语法结构。视频单元的实例类型可包含CTU、CU、PU、变换单元(TU)、宏块、宏块分区等。在一些情形中,PU的论述可与宏块或宏块分区的论述互换。视频块的实例类型可包含译码树块、译码块和其它类型的视频数据块。
[0041] 为了产生经译码CTU,视频编码器20可以递归方式对CTU的译码树块执行四叉树分割以将译码树块划分为译码块,由此称为“译码树单元”。译码块是N×N的样本块。CU可包括具有亮度样本阵列、Cb样本阵列和Cr样本阵列的图片的亮度样本的译码块和色度样本的两个对应译码块,以及用于对译码块的样本进行译码的语法结构。在单色图片或具有三个单独颜色平面的图片中,CU可包括单个译码块和用以对译码块的样本进行译码的语法结构。
[0042] 视频编码器20可将CU的译码块分为一或多个预测块。预测块是对其应用相同预测的矩形(即,正方形或非正方形)样本块。CU的预测单元(PU)可包括亮度样本的预测块、色度样本的两个对应预测块和用以预测所述预测块的语法结构。在单色图片或具有三个单独颜色平面的图片中,PU可包括单个预测块和用以预测所述预测块的语法结构。视频编码器20可产生CU的每一PU的预测块(例如,亮度、Cb和Cr预测块)的预测性块(例如,亮度、Cb和Cr预测性块)。
[0043] 视频编码器20可使用帧内预测或帧间预测来产生PU的预测性块。如果视频编码器20使用帧内预测来产生PU的预测性块,那么视频编码器20可基于包含PU的图片的经解码样本产生PU的预测性块。
[0044] 在视频编码器20产生CU的一或多个PU的预测性块(例如,亮度、Cb和Cr预测性块)之后,视频编码器20可产生CU的一或多个残余块。举例来说,视频编码器20可产生CU的亮度残余块。CU的亮度残余块中的每一样本指示CU的预测性亮度块中的一者中的亮度样本与CU的原始亮度译码块中的对应样本之间的差异。另外,视频编码器20可产生CU的Cb残余块。CU的Cb残余块中的每一样本可指示CU的预测性Cb块中的Cb样本与CU的原始Cb译码块中的对应样本之间的差异。视频编码器20还可产生CU的Cr残余块。CU的Cr残余块中的每一样本可指示CU的预测性Cr块中的一者中的Cr样本与CU的原始Cr译码块中的对应样本之间的差异。
[0045] 此外,视频编码器20可将残余块分解为一或多个变换块。例如,视频编码器20可使用四叉树分割来将CU的残余块(例如亮度、Cb和Cr残余块)分解为一或多个变换块(例如亮度、Cb和Cr变换块)。变换块是对其应用相同变换的矩形(例如正方形或非正方形)样本块。CU的变换单元(TU)可包括亮度样本的变换块、色度样本的两个对应变换块和用以对变换块样本进行变换的语法结构。因此,CU的每一TU可具有亮度变换块、Cb变换块和Cr变换块。TU的亮度变换块可以是CU的亮度残余块的子块。Cb变换块可以是CU的Cb残余块的子块。Cr变换块可以是CU的Cr残余块的子块。在单色图片或具有三个单独颜色平面的图片中,TU可包括单个变换块和用以对变换块的样本进行变换的语法结构。
[0046] 视频编码器20可将一或多个变换应用于TU的变换块以产生TU的系数块。例如,视频编码器20可将一或多个变换应用于TU的亮度变换块以产生TU的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可将一或多个变换应用于TU的Cb变换块以产生TU的Cb系数块。视频编码器20可将一或多个变换应用于TU的Cr变换块以产生TU的Cr系数块。
[0047] 在产生系数块(例如,亮度系数块、Cb系数块或Cr系数块)之后,视频编码器20可量化系数块。量化总体上是指对变换系数进行量化以可能减少用以表示变换系数的数据量从而提供进一步压缩的过程。在视频编码器20量化系数块之后,视频编码器20可对指示经量化变换系数的语法元素进行熵编码。举例来说,视频编码器20可对指示经量化变换系数的语法元素执行上下文自适应二进制算术译码(CABAC)。
[0048] 视频编码器20可输出包含形成经译码图片和相关联数据的表示的位序列的位流。因此,位流包括视频数据的编码表示。所述位流可包括网络抽象层(NAL)单元序列。NAL单元是含有NAL单元中的数据类型的指示和含有所述数据的呈按需要穿插有模拟阻止位的原始字节序列有效负载(RBSP)的形式的字节的语法结构。NAL单元中的每一个可包含NAL单元标头,且封装RBSP。所述NAL单元标头可包含指示NAL单元类型码的语法元素。由NAL单元的NAL单元标头指定的NAL单元类型码指示NAL单元的类型。RBSP可以是含有封装在NAL单元内的整数数目个字节的语法结构。在一些情况下,RBSP包含零个位。
[0049] 视频解码器30可接收由视频编码器20产生的位流。另外,视频解码器30可剖析位流以从位流获得语法元素。视频解码器30可至少部分地基于从位流获得的语法元素来重构建视频数据的图片。重构建视频数据的过程可大体上与视频编码器20执行的过程互逆。例如,视频解码器30可使用PU的运动向量来确定当前CU的PU的预测性块。另外,视频解码器30可反量化当前CU的TU的系数块。视频解码器30可对系数块执行反变换以重构建当前CU的TU的变换块。通过将当前CU的PU的预测性块的样本添加到当前CU的TU的变换块的对应样本,视频解码器30可重构建当前CU的译码块。通过重构建图片的每一CU的译码块,视频解码器30可重构建图片。
[0050] 变换译码是所有现代视频译码标准的基本部分,像高效视频译码(HEVC)(如以下各文所描述:G.J.沙利文(Sullivan)、J.-R.欧姆(Ohm)、W.-J.韩(Han)和T.威甘德(Wiegand)的“高效视频译码(HEVC)标准的概述(Overview of the High Efficiency Video Coding(HEVC)Standard)”,IEEE电路系统视频技术学报,第22卷,第12号,第1649-
1668页,2012年12月;M.维恩(Wien),高效视频译码:译码工具和规范(High Efficiency Video Coding:Coding Tools and Specification),施普林格出版社(Springer-Verlag),柏林,2015)。众所周知,最优变换译码应使用基于矩阵的卡亨南-络维(Karhunen-Loève)变换(KLT)(或类似地,自适应变换),因为其可优化到特定信号统计特性(signal 
statistics)。然而,矩阵实施方案往往需要相对高数目的计算和相对高的内存量。在实践中,已采用像离散余弦变换(DCT)的固定可分开变换,因为它们可使用更少的计算和内存来实施变换。
[0051] 本公开描述实现获得几乎等于使用KLT实现的译码增益的译码增益但利用显著更少内存和计算的技术。在一些实例中,本公开的技术基于:(a)形成可通过视频编码器20测试的一组针对数据的变换,且接着视频编码器20可选择最佳针对数据的变换(例如使失真最小化的变换)。视频编码器20可发送(例如用信号发送)其索引以供视频解码器30使用,以及(b)近似向量与变换矩阵相乘的技术,称作紧凑多遍变换(CMPT)。与基于不可分开矩阵的运算相比,本公开的技术可使用较少内存和计算,因为CMPT技术专门针对视频译码目的而优化,且使用译码增益估计来识别不重要的变换参数和计算。CMPT允许许多类型的实施方案,且作为切实可行的实例,基于称作超立方体-吉文斯变换(Hypercube-Givens Transform,HyGT)的变换估算技术的实施方案。
[0052] 图2是说明用于具有变换选择的混合视频编码的实例系统40的框图。确切地说,图2展示视频编码系统(即,视频编码器,例如视频编码器20)的简图,其中视频帧首先分成像素块(块分开42)。像素块的实例类型可包含用于CU的译码块。此外,在图2中,在每一块中,视频编码器从其预测值减去每一像素值(44)。视频编码器使用线性运算来变换差(即,残余)块(块变换46)。在图2的实例中,r表示残余数据,yt表示经变换残余数据,且t表示哪种变换应用于残余以产生yt的指示。
[0053] 线性变换可通过矩阵-向量乘法来实施,但视频译码应用已使用一些特殊快速变换,其具有从三角函数导出的固定系数且可比等效矩阵-向量乘积高效得多地计算。参看V.布里塔纳克(Britanak)、P.C.叶(Yip)和K.R.拉奥(Rao)的离散余弦和正弦变换:一般性质,快速算法和整数估算法(Discrete Cosine and Sine Transforms:General Properties,Fast Algorithms and Integer Approximations),学术出版社(Academic Press),2007年。本公开描述使用CMPT的一些可能的进一步改善,其中向量变换组以管线方式用以将向量变换产生的输出值馈送到管线中的后续向量变换,其中除了来自前一向量变换的输出之外,每一相应向量变换还接收一或多个参数作为输入。
[0054] 在图2中,视频编码器可量化经变换残余数据(量化48)且反量化(反量化50)所量化的经变换残余数据。此外,视频编码器可将反变换应用于反量化的经变换残余数据(反变换52)以恢复残余数据。视频编码器的帧缓冲器54(也称为经解码图片缓冲器(DPB))存储基于残余数据确定的重构建像素块。视频编码器可将存储于帧缓冲器54中的重构建像素块用于预测其它像素块(块预测56)。在图2的实例中,可基于先前应用以产生经变换残余数据的变换来确定由视频编码器应用于经变换残余数据的反变换。应用哪种变换以产生经变换残余数据的指示可提供到视频编码器的熵编码单元58。熵编码单元58可对指示变换的语法元素连同指示量化的经变换残余数据的语法元素一起进行熵编码。
[0055] 图3A和3B展示用于将变换应用于视频残余的二维块的实例选项。确切地说,图3A是说明用于计算像素残余的二维块中的可分开变换的实例选项的概念图。图3B是说明用于计算像素残余的二维块中的不可分开变换的实例选项的概念图。
[0056] 在称作可分开的第一选项(例如,图3A)中,残余分开进行变换,首先按行,且接着按列(或反之亦然),如由图3A中的箭头指示。更具体地说,对于N×N输入块60的每一相应行,视频编码器/解码器(一般称为视频译码器)通过将由相应行的元素组成的向量乘以N×N变换矩阵来产生中间块62的行。对于中间块62的每一相应列,视频译码器通过将由相应列的元素组成的向量乘以N×N变换矩阵来产生输出块的列。
[0057] 在称作不可分开的第二类型的块变换(例如,图3B)中,将所有残余放在一起成单个向量,如图3B中所展示,且一起进行变换。此选项并不利用像素块的二维结构,但此选项更通用且更强大,且可利用与水平和竖直不同的方向特征。例如,对于由N×N个值组成的输入块64,变换矩阵是N2×N2。为了确定输出块或向量66,视频译码器将输入块64乘以变换矩阵。
[0058] 为了最小化计算复杂性,视频译码标准曾使用仅一个块大小和一种类型的可分开变换(即,DCT)。随着近来HEVC的采用,针对若干块大小定义可分开变换,且已采用离散正弦变换(DST)。
[0059] 如果视频编码器可测试若干不同变换,使用产生最佳压缩的变换,且将所用的变换的索引t发送到视频解码器,如图2中所展示,那么可实现甚至更好的压缩(见Y.叶(Ye)和M.卡茨威茨(Karczewicz),“基于双向帧内预测、方向变换和自适应系数扫描的改善的H.264帧内译码(Improved H.264intra coding based on bi-directional intra prediction,directional transform,and adaptive coefficient scanning)”,关于图像处理的IEEE国际会议会刊,圣地亚哥,CA,2008年10月,第2116-2119页;S.高村(Takamura)和A.清水(Shimizu),“关于使用模式相关2D-KLT的帧内译码(On intra coding using mode dependent 2D-KLT)”,第30届图片译码研讨会会刊,圣何塞,CA,2013年12月,第137-
140页;O.G.塞泽尔(Sezer)、O.G.古尔于兹(Guleryuz)和Y.阿尔滕巴沙克(Altunbasak),“利用稀疏正规化变换的估算和压缩(Approximation and compression with sparse orthonormal transforms)”,关于图像处理的IEEE学刊,第2328-2343页,2015年8月;以及H.E.厄吉尔梅兹(Egilmez)、A.塞德(Said)、Y.-H.凯奥(Chao)和A.奥特加(Ortega),“用于帧间预测的视频译码的基于曲线图的变换(Graph-based transforms for  inter 
predicted video coding)”,关于图像处理的IEEE国际会议会刊,魁北克市,加拿大,2015年9月,第3992-3996页)。在一些实例中,索引t可通过指示变换列表中的变换来识别变换。
[0060] 本公开认为,最优KLT通过以下方式导出:首先针对每一变换索引t计算条件残余相关矩阵
[0061] Ct=Er|t{rr′},  (1)
[0062] 且接着计算对角线化所述相关矩阵的正交矩阵Kt,即,
[0063] KtCtK′t=Dt。  (2)
[0064] 矩阵Kt通常直接用于通过以下矩阵-向量乘积计算变换系数yt的向量(图2)
[0065] yt=Ktr。  (3)
[0066] 当前用于不可分开变换的基于矩阵的技术可能需要对内存和计算有过多需求。本公开的稍后部分解释了本公开的技术可解决所述问题的方式。
[0067] 下表I展示不同类型的2-D线性变换的计算复杂性(以下详细解释表1的最后一B行)。由于将块大小N定义为二的幂,即,N=2 ,因此这转化为指数复杂性增长,且在不同变换类型之间可存在相当大的差异。
[0068] 表I:具有P遍次的不同类型2-D块变换(2B×2B块)的内存和算术运算复杂性。
[0069]变换类型 内存 运算 运算/像素
快速、可分开 O(B 2B) O(B 22B) O(B)
基于矩阵、可分开 O(22B) O(23B) O(2B)
基于矩阵、不可分开 O(24B) O(24B) O(22B)
CMPT、不可分开 O(P 22B) O(P 22B) O(P)
[0070] 在表I中,考虑计算的每像素运算的相对量度,这是因为视频解码器只选择和使用一个变换。另一方面,无法按相对项来测量内存要求,这是因为必须存储所有矩阵。还重要的是要注意,一些视频应用可能需要数百或数千个可能需要存储在昂贵的快速存储器中的不同矩阵。
[0071] 在视频译码的早期实施方案中,只有最简单的方法(快速可分开变换)是实际可行的。现在,可考虑用于较小块大小(例如,4×4块)的基于矩阵的不可分开变换,但需求可能随着块大小增长得过快,且对于较大块可能变得过高。
[0072] 所缺的是以不具有与基于矩阵的方法相同的复杂性增长的方式高效地实施不可分开变换的解决方案。本公开的技术可提供此类型的解决方案。
[0073] 本公开的技术基于在变换译码应用于视频压缩时存在的特定类型的特征。在其它应用中,可通过使用稀疏矩阵或具有特殊结构的矩阵来降低矩阵-向量运算的复杂性。然而,在视频译码情况中无法应用那些技术,因为矩阵Kt必须是正交的,且如果复杂性约束直接添加到矩阵,那么可能实现不了其压缩有效性。
[0074] 本公开的实例解决方案基于以下内容。首先,所述技术并不试着精确计算KLT变换。替代地,所述技术寻找只给出对KLT的估算的向量变换Mt(x)(即,将一个向量映射到另一相同维数的向量的变换),按以下形式:
[0075] zt=Mt(r)≈yt=Ktr。  (4)
[0076] 在以上方程式中,zt是变换t的输出,且r是残余数据。
[0077] 其次,满矩阵-向量乘积由Pt个不同向量变换Mt,p(称作遍次)的序列替换,各自具有呈函数形式Mt,p(x,ht,p)的参数向量ht,p,且最终残余变换呈以下形式:
[0078]
[0079] 本公开的技术涵盖具有Pt遍次的此类型的向量变换,这在本文中称为紧凑多遍变换(CMPT)。图4的图中展示CMPT的实施方案。换句话说,图4是根据本公开的技术的紧凑多遍变换实施方案的图。出于本公开的目的,CMPT的定义很一般化,但在实践中可能需要这些一般特征中的大多数。对于表I中展示的复杂性量度,对用于维数N的向量的变换的CMPT的限制可以是:(1)表示CMPT遍次的参数集的内存量应与N成比例;(2)有可能使用与N成比例的数个处理元件并行计算每一CMPT遍次,各自需要与N(常数)无关的时间(运算次数)。
[0080] 在图4的实例中,视频译码器将变换应用于输入块r。在视频译码器对视频数据进行编码的例子中,输入块可包括残余样本。在视频译码器对视频数据进行解码的例子中,输入块可包括变换系数。此外,在图4的实例中,视频译码器基于输入t(例如用于识别变换的索引)确定多个参数阵列70A到70T(统称为参数阵列70)。在一些实例中,视频译码器将参数阵列70存储在存储器中,或从存储于存储器中的数据导出参数阵列。输入t可指示应用哪种变换。在一些实例中,输入t是变换列表的索引。不同变换可与不同参数阵列和/或不同遍次相关联。在一些实例中,输入t包括不以显示方式识别变换的一或多个数据。例如,输入t可包括块大小、预测模式(例如帧内或帧间预测)、帧内预测模式等等中的一或多个。在此类实例中,输入t可能不是变换列表的索引,而是可用以确定变换的某些其它信息。
[0081] 在图4的实例中,为了应用变换,视频译码器执行一系列遍次72A到72T(统称为遍次72)。一系列遍次中的每一相应遍次基于确定的多个参数阵列中的相应的参数阵列来变换输入数据。输入块r是一系列遍次中的第一遍次的输入数据。一系列遍次中除第一遍次外的每一遍次的输入数据是所述一系列遍次中的前一遍次的输出数据。一系列遍次中的最末遍次的输出是经变换块zt。如本公开中其它处所描述,每一遍次可包括一组正交变换,例如吉文斯正交变换。视频译码器可使用并发(并行)计算在遍次内执行正交变换。例如,可使用若干处理器同时计算独立吉文斯变换的组。
[0082] 可以各种方式发现参数ht,p的最优集。举例来说,可通过执行可能参数值的搜索以及识别往往会产生最佳结果的参数值组合来发现参数ht,P的最优集。在此实例中,所述搜索可与编码或解码过程分开执行。规范性语法可定义:
[0083] 1.哪些是有效的变换,且其允许参数是什么;
[0084] 2.定义编码器如何传达待用于解码的关于变换的信息和相应参数的语法。
[0085] 在一些实例中,最优参数集可预先计算且存储于视频编码器20和视频解码器30中的每一个处。
[0086] 举例来说,在CMPT的一个特定实施方案中,使用应用于成对向量元素的分离集的平行吉文斯正交变换(旋转)的序列。图5展示常用以表示此类变换的“蝶形”图和其数学意义。因此,在图5的实例中,蝶形接收ri和rj作为输入,且还接收参数θ作为输入。蝶形的输出是yi和yj。yi经计算为cos(θ)ri-sin(θ)rj。yj经计算为cos(θ)rj+sin(θ)rj。当应用反变换时,视频解码器30可将ri计算为yicos(θ)+yjsin(θ),且将rj计算为-yisin(θ)+yjcos(θ)。尽管相对于吉文斯旋转描述图5和本公开的其它实例,但可使用其它变换来替代吉文斯旋转,例如豪斯霍尔德(Householder)变换、具有3个或更多个角度的欧拉(Euler)旋转以及其它变换。
[0087] 图6是对维数16的向量使用平行吉文斯旋转序列的紧凑多遍变换实施方案的图。吉文斯旋转在可并行地应用一个遍次内所应用的吉文斯旋转的意义上是平行的。那些吉文斯旋转可相应地依序布置,例如布置成超立方体拓扑,如图6中所展示。图6的变换可视为在输入r1…r16中的每一者可被视为单独维度的意义上具有超立方体拓扑。图6的实例是获得如表I最后一行中所展示的内存和运算复杂性的情况。在图5的实例中,CMPT包含四个遍次:
80A、80B、80C和80D。然而,在其它实例中,其它数目个遍次是可能的。
[0088] 在图6的实例中,参数向量ht,P含有在对应的遍次中供每一蝶形使用的不同角度(θ)。举例来说,参数向量ht,1可为{0°,20°,40°,60°,80°,100°,120°,140°},参数向量ht,2可为{5°,25°,45°,65°,85°,105°,125°,145°}等等。由于每蝶形仅需要使用一个角度,因此参数向量具有残余向量r维数的一半。例如,在图6的实例中,由于残余向量r包含16个样本,因此每个参数向量中存在8个参数。
[0089] 在一些实例中,视频编码器20和视频解码器30可使用(且在一些情况下存储)用于不同变换、不同块大小和不同遍次的不同参数向量。举例来说,视频编码器20和视频解码器30可使用具有8×8个块的参数向量{0°,20°,40°,60°}和{5°,25°,45°,65°}。此外,在此实例中,视频编码器20和视频解码器30可使用具有16×16个块的参数向量{2°,22°,42°,62°,
82°,102°,122°,142°}、{5°,25°,45°,65°,85°,105°,125°,145°}、{7°,27°,47°,67°,87°,
107°,127°,147°}和{0°,20°,40°,60°,80°,100°,120°,140°}。
[0090] 在图6的实例中,每一蝶形对应于图5中所展示的吉文斯旋转。因此,在图6的实例中,在每一遍次,执行八个吉文斯旋转(例如并行地)。对于每一相应遍次p,相应遍次中的吉文斯旋转中的每一个可使用来自用于相应遍次的参数向量(ht,p)的不同参数值(例如,θ)。举例来说,对于图6的左上蝶形,如果第1轮的参数向量中的第一参数值(即,h1,1)等于45°,那么左上蝶形的输出等于cos(45°)r1-sin(45°)r2和cos(45°)r2+sin(45°)r1。在一些实例中,一个遍次中的两个或更多个吉文斯旋转可包含相同参数值(例如θ)。
[0091] 注意在图6中,变换Mt,p(x,ht,p)的结构随着每一遍次而变化。因此,如果改变参数或变换的次序,那么获得不同结果。举例来说,如果图6的遍次80B的蝶形与图6的遍次80A的蝶形调换,那么可获得不同结果。
[0092] 以此方式,视频编码器20可确定视频数据的当前图片的当前块的残余值。另外,视频编码器20可将变换应用于当前块的残余值(例如,图4的r,图6的值r1…r16)以导出当前块的多个数据元素(例如,图4的zt,图6的值zt,1)。作为将变换应用于当前块的残余值的部分,视频编码器20应用向量变换序列(例如图4的遍次72、图6的遍次80)。向量变换序列的第一向量变换(例如图4的遍次72A、图6的遍次80A)的输入值包括当前块的残余值。向量变换序列的最末向量变换(例如图4的遍次72T、图6的遍次80A)的输出值包括当前块的数据元素。对于所述向量变换序列中除所述向量变换序列中的第一向量变换外的每一相应的向量变换,相应的向量变换的输入值包括所述向量变换序列中的相应的前一向量变换的输出值。
所述向量变换序列中的每一相应的向量变换进一步将用于相应的向量变换的相应的参数向量(例如图4中的ht,1…ht,Pt、图6中的ht,1…ht,4)作为输入,用于相应的向量变换的相应的参数向量包括一或多个参数。视频编码器20可在包括当前图片的编码表示的位流中包含具有基于用于当前块的数据元素的值的语法元素。
[0093] 视频解码器30可应用编码中所用的变换的反变换。例如,在图6的实例中,zt,1到zt,16可充当变换的输入,且r1到r16是变换的输出。在使用吉文斯正交变换的情况下,反吉文斯正交变换的输入是yi和yj,且输出是ri和rj,且ri=cos(θ)yi+sin(θ)yj;rj=cos(θ)yj-sin(θ)yi。
[0094] 以此方式,基于包括视频数据的当前图片的编码表示的位流中的语法元素,视频解码器30可确定当前图片的当前块的多个数据元素(例如变换系数,图6中的值zt,1-zt,16)。另外,视频解码器30可将变换应用于数据元素以导出当前块的残余值(例如图6中的值r1…r16)。所述变换包括向量变换序列(例如,图4的遍次72、图6的遍次80)。如图6中所展示,向量变换序列中的第一向量(例如,图4的遍次72A、图6的遍次80D)变换的输入值包括多个数据元素。此外,如图6中所展示,向量变换序列中的最末向量变换(例如图4的遍次72T、图6的遍次80A)的输出值包括当前块的残余值。对于所述向量变换序列中除所述向量变换序列中的第一向量变换外的每一相应的向量变换,相应的向量变换的输入值包括所述向量变换序列中的相应的前一向量变换的输出值。此外,向量变换序列中的每一相应的向量变换进一步将用于相应的向量变换的相应的参数向量(例如图4中的ht,1…ht,Pt、图6中的ht,1…ht,4)作为输入,用于相应的向量变换的相应的参数向量包括一或多个参数。如本公开中其它处所描述,视频解码器30可基于导出的残余数据重构建当前图片的样本。
[0095] 已描述各种实例。本公开的特定实例可单独或彼此结合使用。
[0096] 图7是说明可实施本公开的技术的实例视频编码器20的框图。图7出于解释的目的而提供,且不应被视为限制本公开中概括地举例说明和描述的技术。本公开的技术可适用于各种译码标准或方法。
[0097] 处理电路系统包含视频编码器20,且视频编码器20经配置以执行本公开中所描述的实例技术中的一或多个。例如,视频编码器20包含集成电路,且图7中所说明的各种单元可形成为与电路总线互连的硬件电路块。这些硬件电路块可以是分开的电路块,或所述单元中的两个或更多个可组合成共同硬件电路块。硬件电路块可形成为形成例如算术逻辑单元(ALU)、初等函数单元(EFU)以及例如“与”、“或”、“与非”、“或非”、“异或”、“同或”和其它类似逻辑块的逻辑块的运算块的电组件的组合。
[0098] 在一些实例中,图7中所说明的单元中的一或多个可为在处理电路上执行的软件单元。在此类实例中,用于这些软件单元的目标代码存储于存储器中。操作系统可使视频编码器20检索目标代码且执行所述目标代码,这使视频编码器20执行实施实例技术的操作。在一些实例中,软件单元可为视频编码器20在起动时执行的固件。因此,视频编码器20是具有执行实例技术的硬件的结构组件,或具有在硬件上执行以使硬件专门执行实例技术的软件/固件。
[0099] 在图7的实例中,视频编码器20包含预测处理单元100、视频数据存储器101、残余产生单元102、变换处理单元104、量化单元106、反量化单元108、反变换处理单元110、重构建单元112、滤波器单元114、参考图片缓冲器116和熵编码单元118预测处理单元100包含帧间预测处理单元120和帧内预测处理单元126。帧间预测处理单元120可包含运动估计单元和运动补偿单元(未展示)。
[0100] 视频数据存储器101可经配置以存储待由视频编码器20的组件编码的视频数据。可例如从视频源18获得存储在视频数据存储器101中的视频数据。参考图片缓冲器116还可称作经解码图片缓冲器。参考图片缓冲器116存储参考视频数据以用于通过视频编码器20例如以帧内或帧间译码模式对视频数据进行编码。视频数据存储器101和参考图片缓冲器
116可由各种存储器装置中的任一者形成,例如动态随机存取存储器(DRAM),包含同步DRAM(SDRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器装置。视频数据存储器
101和参考图片缓冲器116可由相同的存储器装置或单独存储器装置来提供。在各种实例中,视频数据存储器101可与视频编码器20的其它组件一起在芯片上,或相对于那些组件在芯片外。视频数据存储器101可与图1的存储媒体19相同或为所述存储媒体的部分。
[0101] 视频编码器20接收视频数据。视频编码器20可对视频数据的图片的切片中的每一CTU进行编码。CTU中的每一者可与图片的大小相等的亮度译码树块(CTB)以及对应的CTB相关联。作为对CTU进行编码的部分,预测处理单元100可执行分割以将CTU的CTB划分为逐渐更小的块。更小的块可以是CU的译码块。举例来说,预测处理单元100可根据树结构分割与CTU相关联的CTB。
[0102] 视频编码器20可对CTU的CU进行编码以产生CU的编码表示(即,经译码CU)。作为对CU进行编码的部分,预测处理单元100可在CU的一或多个PU当中分割与CU相关联的译码块。因此,每一PU可与亮度预测块和对应的色度预测块相关联。视频编码器20和视频解码器30可支持具有各种大小的PU。如上文所指示,CU的大小可指CU的亮度译码块的大小,且PU的大小可指PU的亮度预测块的大小。假定特定CU的大小为2N×2N,视频编码器20和视频解码器
30可支持用于帧内预测的2N×2N或N×N的PU大小,以及用于帧间预测的2N×2N、2N×N、N×
2N、N×N或类似的对称PU大小。视频编码器20和视频解码器30还可支持用于帧间预测的2N×nU、2N×nD、nL×2N以及nR×2N的PU大小的不对称分割。
[0103] 帧间预测处理单元120可通过对CU的每一PU执行帧间预测来产生用于PU的预测性数据。PU的预测性数据可包含PU的预测性块以及PU的运动信息。帧内预测处理单元126可通过对PU执行帧内预测而产生PU的预测性数据。PU的预测性数据可包含PU的预测性块和各种语法元素。帧内预测处理单元126可对I切片、P切片和B切片中的PU执行帧内预测。
[0104] 为了对PU执行帧内预测,帧内预测处理单元126可使用多个帧内预测模式来产生用于PU的预测性数据的多个集。帧内预测处理单元126可使用来自相邻PU的样本块的样本产生PU的预测性块。假定对于PU、CU和CTU采用从左到右、从上到下的编码次序,相邻PU可在所述PU的上方、右上方、左上方或左边。帧内预测处理单元126可以使用各种数目的帧内预测模式,例如,33个定向帧内预测模式。在一些实例中,帧内预测模式的数目可取决于与PU相关联的区域的大小。
[0105] 预测处理单元100可从PU的由帧间预测处理单元120产生的预测性数据或PU的由帧内预测处理单元126产生的预测性数据当中选择CU的PU的预测性数据。在一些实例中,预测处理单元100基于预测性数据集的速率/失真量度选择CU的PU的预测性数据。所选预测性数据的预测性块在本文中可称作选定预测性块。
[0106] 残余产生单元102可基于用于CU的译码块(例如,亮度、Cb和Cr译码块)和用于CU的PU的选定预测性块(例如,预测性亮度、Cb和Cr块)产生用于CU的残余块(例如,亮度、Cb和Cr残余块)。例如,残余产生单元102可产生CU的残余块,使得残余块中的每一样本具有等于CU的译码块中的样本与CU的PU的对应选定预测性块中的对应样本之间的差的值。
[0107] 变换处理单元104可执行四叉树分割以将与CU相关联的残余块分割成与CU的TU相关联的变换块。因此,TU可与亮度变换块和两个色度变换块相关联。CU的TU的亮度变换块和色度变换块的大小和位置可以或可不基于CU的PU的预测块的大小和位置。称为“残余四叉树”(RQT)的四叉树结构可包含与区域中的每一个相关联的节点。CU的TU可对应于RQT的叶节点。
[0108] 变换处理单元104可通过将一或多个变换应用于TU的变换块来产生用于CU的每一TU的变换系数块。变换处理单元104可将各种变换应用于与TU相关联的变换块。举例来说,变换处理单元104可将离散余弦变换(DCT)、定向变换或概念上类似的变换应用于变换块。在一些实例中,变换处理单元104并不将变换应用于变换块。在此类实例中,可将变换块处理为变换系数块。
[0109] 根据本公开的技术,变换处理单元104可实施在本公开中其它处描述的紧凑多遍变换(CMPT)技术。举例来说,变换处理单元104可将变换应用于当前块的残余值以导出用于当前块的多个数据元素。在此实例中,将变换应用于当前块的残余值包括应用向量变换序列。在此实例中,所述向量变换序列中的第一向量变换的输入值包括当前块的残余值。此外,在此实例中,所述向量变换序列中的最末向量变换的输出值包括用于当前块的数据元素。在此实例中,对于所述向量变换序列中除所述向量变换序列中的第一向量变换外的每一相应的向量变换,相应的向量变换的输入值包括所述向量变换序列中的相应的前一向量变换的输出值。此外,在此实例中,所述向量变换序列中的每一相应的向量变换进一步将用于所述相应的向量变换的相应的参数向量作为输入,用于相应的向量变换的相应的参数向量包括一或多个参数。
[0110] 量化单元106可量化系数块中的变换系数。量化过程可减少与变换系数中的一些或全部相关联的位深度。举例来说,可在量化期间将n位变换系数向下舍入到m位变换系数,其中n大于m。量化单元106可基于与CU相关联的量化参数(QP)值来量化与CU的TU相关联的系数块。视频编码器20可通过调整与CU相关联的QP值来调整应用于与CU相关联的系数块的量化程度。量化可引入信息损耗。因此,经量化变换系数可能具有比原始系数低的精确度。
[0111] 反量化单元108和反变换处理单元110可分别将反量化和反变换应用于系数块,以从系数块重构建残余块。反量化可恢复变换系数的位深度。重构建单元112可将重构建残余块添加到来自预测处理单元100所产生的一或多个预测性块的对应样本,以产生与TU相关联的重构建变换块。通过以此方式重构建用于CU的每一TU的变换块,视频编码器20可重构建CU的译码块。
[0112] 滤波器单元114可执行一或多个去块操作来减少与CU相关联的译码块中的块假象。参考图片缓冲器116可在滤波器单元114对重构建译码块执行一或多个去块操作之后存储重构建译码块。帧间预测处理单元120可使用含有重构建译码块的参考图片来对其它图片的PU执行帧间预测。另外,帧内预测处理单元126可使用参考图片缓冲器116中的重构建译码块来对与CU处于同一图片的其它PU执行帧内预测。
[0113] 熵编码单元118可从视频编码器20的其它功能组件接收数据。举例来说,熵编码单元118可从量化单元106接收系数块,且可从预测处理单元100接收语法元素。熵编码单元118可对数据执行一或多个熵编码操作以产生经熵编码数据。举例来说,熵编码单元118可对数据执行CABAC操作、上下文自适应可变长度译码(CAVLC)操作、可变到可变(V2V)长度译码操作、基于语法的上下文自适应二进制算术译码(SBAC)操作、概率区间分割熵(PIPE)译码操作、指数-哥伦布编码操作或另一类型的熵编码操作。视频编码器20可输出包含由熵编码单元118产生的经熵编码数据的位流。例如,位流可包含表示用于CU的RQT的数据。
[0114] 图8是说明经配置以实施本公开的技术的实例视频解码器30的框图。图8出于解释的目的而提供,且不限制如本公开中概括地举例说明和描述的技术。出于解释的目的,本公开在HEVC译码的上下文中描述视频解码器30。然而,本公开的技术可适用于其它译码标准或方法。
[0115] 处理电路包含视频解码器30,且视频解码器30经配置以执行本公开中所描述的实例技术中的一或多个。例如,视频解码器30包含集成电路,且图8中说明的各种单元可形成为与电路总线互连的硬件电路块。这些硬件电路块可以是分开的电路块,或所述单元中的两个或更多个可组合成共同硬件电路块。硬件电路块可形成为形成例如算术逻辑单元(ALU)、初等函数单元(EFU)以及例如“与”、“或”、“与非”、“或非”、“异或”、“同或”和其它类似逻辑块的逻辑块的运算块的电组件的组合。
[0116] 在一些实例中,图8中所说明的单元中的一或多个可为在处理电路上执行的软件单元。在此类实例中,用于这些软件单元的目标代码存储于存储器中。操作系统可使视频解码器30检索目标代码且执行所述目标代码,这使视频解码器30执行实施所述实例技术的操作。在一些实例中,软件单元可为视频解码器30在起动时执行的固件。因此,视频解码器30是具有执行实例技术的硬件的结构组件,或具有在硬件上执行以使硬件专门执行实例技术的软件/固件。
[0117] 在图8的实例中,视频解码器30包含熵解码单元150、视频数据存储器151、预测处理单元152、反量化单元154、反变换处理单元156、重构建单元158、滤波器单元160和参考图片缓冲器162。预测处理单元152包含运动补偿单元164和帧内预测处理单元166。在其它实例中,视频解码器30可包含更多、更少或不同的功能组件。
[0118] 视频数据存储器151可存储待由视频解码器30的组件解码的经编码视频数据,例如经编码视频位流。可例如经由视频数据的有线或无线网络通信或通过存取物理数据存储媒体从计算机可读媒体16(例如从本地视频源,例如相机)获得存储在视频数据存储器151中的视频数据。视频数据存储器151可形成经译码图片缓冲器(CPB),其存储来自经编码视频位流的经编码视频数据。参考图片缓冲器162还可称作参考图片存储器。参考图片缓冲器162存储参考视频数据以用于通过视频解码器30例如以帧内或帧间译码模式对视频数据进行解码,或用于输出。视频数据存储器151和参考图片缓冲器162可由各种存储器装置中的任一者形成,例如动态随机存取存储器(DRAM),包含同步DRAM(SDRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器装置。视频数据存储器151和参考图片缓冲器162可由相同的存储器装置或单独存储器装置来提供。在各种实例中,视频数据存储器151可与视频解码器30的其它组件一起在芯片上,或相对于所述组件在芯片外。视频数据存储器151可与图1的存储媒体28相同或为所述存储媒体的部分。
[0119] 视频数据存储器151接收且存储位流的经编码视频数据(例如NAL单元)。熵解码单元150可从视频数据存储器151接收经编码视频数据(例如,NAL单元),且可剖析NAL单元以获得语法元素。熵解码单元150可对NAL单元中的经熵编码语法元素进行熵解码。预测处理单元152、反量化单元154、反变换处理单元156、重构建单元158和滤波器单元160可基于从位流提取的语法元素来产生经解码视频数据。熵解码单元150可执行与熵编码单元118的过程大体上互逆的过程。
[0120] 除了从位流获得语法元素之外,视频解码器30可对未分割的CU执行重构建操作。为了对CU执行重构建操作,视频解码器30可对CU的每一TU执行重构建操作。通过对CU的每一TU执行重构建操作,视频解码器30可重构建CU的残余块。
[0121] 作为对CU的TU执行重构建操作的部分,反量化单元154可反量化(即,去量化)与TU相关联的系数块。在反量化单元154反量化系数块之后,反变换处理单元156可将一或多个反变换应用于系数块,以便产生与TU相关联的残余块。举例来说,反变换处理单元156可将反DCT、反整数变换、反卡亨南-络维变换(KLT)、反旋转变换、反定向变换或另一反变换应用于系数块。
[0122] 反变换处理单元156可实施本公开中其它处所描述的紧凑多遍变换(CMPT)技术。举例来说,反变换处理单元156可将变换应用于当前块的数据元素(例如变换系数)以导出当前块(例如TU)的残余值。在此实例中,反变换处理单元156可至少部分地通过应用向量变换序列将变换应用于当前块的变换系数。在此实例中,向量变换序列中的第一向量变换的输入值包括当前块的变换系数。此外,在此实例中,向量变换序列中的最末向量变换的输出值包括当前块的残余值。在此实例中,对于所述向量变换序列中除所述向量变换序列中的第一向量变换外的每一相应的向量变换,相应的向量变换的输入值包括所述向量变换序列中的相应的前一向量变换的输出值。此外,在此实例中,所述向量变换序列中的每一相应的向量变换进一步将用于所述相应的向量变换的相应的参数向量作为输入,用于相应的向量变换的相应的参数向量包括一或多个参数。
[0123] 如果使用帧内预测对PU进行编码,那么帧内预测处理单元166可执行帧内预测以产生PU的预测性块。帧内预测处理单元166可使用帧内预测模式来基于样本空间相邻块产生PU的预测性块。帧内预测处理单元166可基于从位流获得的一或多个语法元素确定用于PU的帧内预测模式。
[0124] 如果使用帧间预测对PU进行编码,那么熵解码单元150可确定所述PU的运动信息。运动补偿单元164可基于PU的运动信息来确定一或多个参考块。运动补偿单元164可基于所述一或多个参考块产生PU的预测性块(例如,预测性亮度、Cb和Cr块)。
[0125] 重构建单元158可使用CU的TU的变换块(例如,亮度、Cb和Cr变换块)以及CU的PU的预测性块(例如,亮度、Cb和Cr块)(即,适用的帧内预测数据或帧间预测数据)来重构建CU的译码块(例如,亮度、Cb和Cr译码块)。举例来说,重构建单元158可将变换块(例如,亮度、Cb和Cr变换块)的样本添加到预测性块(例如,亮度、Cb和Cr预测性块)的对应样本以重构建CU的译码块(例如,亮度、Cb和Cr译码块)。
[0126] 滤波器单元160可执行去块操作以减少与CU的译码块相关联的块假象。视频解码器30可将CU的译码块存储在参考图片缓冲器162中。参考图片缓冲器162可提供参考图片以用于后续运动补偿、帧内预测和在显示装置(例如图1的显示装置32)上的呈现。例如,视频解码器30可基于参考图片缓冲器162中的块执行针对其它CU的PU的帧内预测或帧间预测操作。
[0127] 图9是说明根据本公开的技术的用于编码视频数据的视频编码器20的实例操作的流程图。在图9的实例中,视频编码器20确定视频数据的当前图片的当前块的残余值(200)。在图7的上下文中,残余产生单元102可确定当前块的残余值。在一些实例中,视频编码器20可通过将译码块的样本添加到预测性块的对应的样本的负值来确定当前块的残余值,或反之亦然。在其它实例中,视频编码器20可通过从译码块的对应的样本减去预测性块的样本来确定当前块的残余值,或反之亦然。在一些实例中,当前块为TU。
[0128] 此外,在图9的实例中,视频编码器20将变换应用于当前块的残余值以导出用于当前块的多个数据元素(202)。在图7的上下文中,变换处理单元104可将变换应用于当前块的残余值。视频编码器20可至少部分地通过应用向量变换序列将变换应用于当前块的残余值。在此实例中,向量变换序列中的第一向量变换的输入值包括当前块的残余值。此外,向量变换序列中的最末向量变换的输出值包括用于当前块的数据元素或由所述数据元素构成。所述数据元素可为变换系数。对于所述向量变换序列中除所述向量变换序列中的第一向量变换外的每一相应的向量变换,相应的向量变换的输入值包括所述向量变换序列中的相应的前一向量变换的输出值或由所述输出值构成。
[0129] 所述向量变换序列中的每一相应的向量变换进一步将用于所述相应的向量变换的相应的参数向量作为输入。用于相应的向量变换的相应的参数向量包括一或多个参数。例如,在相应的向量变换包括一组吉文斯旋转的实例中,将参数向量作为输入的相应的向量变换可包括针对所述一组吉文斯旋转中的每一相应的吉文斯旋转将参数向量中的参数用作角度值θ(或sin(θ)和cos(θ)的值)。
[0130] 在一些实例中,对于所述向量变换序列中的每一相应的向量变换,视频编码器20存储用于相应的向量变换的相应的参数向量中的参数的预计算的值。举例来说,视频编码器20可将θ的预计算的值存储在存储器中。在一些实例中,视频编码器20将sin(θ)和cos(θ)的预计算的值存储在存储器中。
[0131] 在一些实例中,对于所述向量变换序列中的每一相应的向量变换,用于相应的向量变换的相应的参数向量中的参数的数目等于相应的向量变换的输入值的数目的二分之一。例如,在图6的实例中,每遍次(即,向量变换)存在十六个输入值和八个蝶形。因此,对于图6的四个遍次中的每一个,存在角度θ的八个值。图6中应用的变换可以是不可分开变换。换句话说,图6中应用的变换并不分别应用于输入块的行和列。
[0132] 在一些实例中,视频编码器20可应用一或多个吉文斯正交变换(即,吉文斯旋转)。所述一或多个吉文斯正交变换中的每一相应的吉文斯正交变换可应用于向量变换相应的一对输入值。相应的吉文斯正交变换通过相应的角度θ进行参数化。在此类实例中,用于向量变换的参数向量的至少一个参数值指定相应角度θ的值。在一些实例中,用于向量变换的参数向量的每一参数值指定角度θ的相应值。此外,在一些实例中,向量变换序列中的每一向量变换包括通过角度θ的值参数化的一或多个吉文斯正交变换。
[0133] 在一些实例中,视频编码器20可从多个可用变换当中选择应用于当前块的残余值的变换。举例来说,视频编码器20可尝试可用变换中的每一个,且选择产生最佳结果(例如在位数方面)的变换。在一些实例中,视频编码器20可用信号发送向量变换序列中的向量变换。例如,视频编码器20可在位流中包含指示向量变换的语法元素。
[0134] 此外,在图9的实例中,视频编码器20可在包括当前图片的编码表示的位流中包含具有基于当前块的数据元素的值的语法元素(204)。举例来说,视频编码器20可量化数据元素,且产生可经处理以确定经量化数据元素的值的一或多个语法元素。例如,视频编码器20可产生指示数据元素是否为非零的语法元素、指示数据元素的正负号的语法元素、指示数据元素是否大于1的语法元素、指示数据元素是否大于2的语法元素以及指示数据元素的余值的语法元素。在图7的上下文中,量化单元106可量化数据元素且熵编码单元118可产生一或多个语法元素。视频编码器20可对语法元素中的一或多个进行熵编码(例如,CABAC编码)。在图1上下文中,输出接口24可输出位流。
[0135] 在一些实例中,视频编码器20在位流中包含指示变换的语法元素。视频编码器20可在各种层级包含语法元素,所述层级例如序列层级(例如在VPS或SPS中)、图片层级(例如在PPS中)、切片层级、块层级(例如CTU、CU、TU层级)或其它层级。
[0136] 如在本公开中其它处所指示,可在规范性语法中定义哪些变换是有效的以及其允许参数。因此,在一些实例中,对于向量变换序列中的向量变换,视频编码器20可在位流中用信号发送一组有效变换。可在例如序列层级、图片层级、切片层级、块层级或其它层级的各种层级用信号发送语法元素。在一些实例中,视频编码器20在位流中包含指示将应用哪个有效变换的语法元素。
[0137] 在图9的实例中,向量变换序列中的每一相应的向量变换可以是所述一组有效变换的成员。例如,视频编码器20可在位流中包含指示有效变换的索引的语法元素。可在例如序列层级、图片层级、切片层级、块层级或其它层级的各种层级用信号发送所述语法元素。此外,对于向量变换序列中的向量变换,视频编码器20可在位流中用信号发送用于所述一组有效变换的参数向量中的允许参数。有效变换的允许参数是用在有效变换的参数向量中的参数。举例来说,所述参数可以是吉文斯旋转的角度,其经量化且用8个位表示。在此实例中,所述允许参数是在[0..255]范围内的整数值,涵盖从0°到255×(360°/256)的角度,且因此负数或大于255的值不被“允许”。可在例如序列层级、图片层级、切片层级、块层级或其它层级的各种层级用信号发送所述允许参数。例如,视频编码器20可在位流中包含指示允许参数的语法元素。
[0138] 图10是说明根据本公开的技术的用于解码视频的视频解码器30的实例操作的流程图。在图10的实例中,视频解码器30可基于包括视频数据的当前图片的编码表示的位流中的语法元素确定用于当前图片的当前块的多个数据元素(250)。数据元素中的每一个可以是相应的变换系数。在一些实例中,输入接口26可接收位流。此外,在一些实例中,视频解码器30可剖析所述位流以从所述位流获得语法元素。在此实例中,视频解码器30可执行熵解码(例如,CABAC解码)以确定语法元素的值。在一些实例中,视频解码器30可获得用于多个数据元素中的数据元素的一或多个语法元素,例如,指示数据元素是否为非零的语法元素、指示数据元素的正负号的语法元素、指示数据元素是否大于1的语法元素、指示数据元素是否大于2的语法元素和指示数据元素的余值的语法元素。在图8的实例中,熵解码单元150可获得语法元素。此外,在一些实例中,为了确定所述多个数据元素,视频解码器30可反量化数据元素。在图8的上下文中,反量化单元154可反量化数据元素。在一些实例中,当前块为TU。
[0139] 此外,在图10的实例中,视频解码器30将变换应用于数据元素以导出当前块的残余值(252)。在图8的上下文中,反变换处理单元156可将变换应用于数据元素以导出当前块的残余值。所述变换包括向量变换序列。在此实例中,所述向量变换序列中的第一向量变换的输入值包括所述多个数据元素或由所述多个数据元素构成。此外,在此实例中,所述向量变换序列中的最末向量变换的输出值包括当前块的残余值或由所述残余值构成。对于所述向量变换序列中除所述向量变换序列中的第一向量变换外的每一相应的向量变换,相应的向量变换的输入值包括所述向量变换序列中的相应的前一向量变换的输出值或由所述输出值构成。在此实例中,所述向量变换序列中的每一相应的向量变换进一步将用于所述相应的向量变换的相应的参数向量作为输入,用于相应的向量变换的相应的参数向量包括一或多个参数。
[0140] 在一些实例中,对于所述向量变换序列中的每一相应的向量变换,用于相应的向量变换的相应的参数向量中的参数的数目等于相应的向量变换的输入值的数目的二分之一。所述变换可以是不可分开变换。
[0141] 在一些实例中,对于所述向量变换序列中的每一相应的向量变换,视频解码器30存储用于相应的向量变换的相应的参数向量中的参数的预计算的值。举例来说,视频解码器30可将θ的预计算的值存储在存储器中。在一些实例中,视频解码器30将sin(θ)和cos(θ)的预计算的值存储在存储器中。
[0142] 在一些实例中,所述向量变换序列中的一或多个(例如,每个)向量变换包括一或多个反吉文斯正交变换,所述一或多个反吉文斯正交变换中的每一个应用于所述向量变换相应的一对输入值。所述一或多个反吉文斯正交变换中的每一个通过相应的角度θ进行参数化。反吉文斯正交变换可具有ri=cos(θ)yi+sin(θ)yj;rj=cos(θ)yj-sin(θ)yi的形式。在此实例中,用于向量变换的参数向量的至少一个参数值可指定相应角度θ的值。例如,用于向量变换的参数向量的每一参数值指定角度θ的相应值。
[0143] 在一些实例中,作为应用变换的部分,针对所述向量变换序列中的向量变换,视频解码器30可基于位流中的一或多个语法元素来确定用于所述向量变换的参数向量。例如,视频解码器30可在查找表中查找所述参数向量或以数学方式确定所述参数向量。
[0144] 在图10的实例中,视频解码器30基于导出的残余数据重构建当前图片的样本(254)。举例来说,视频解码器30可将残余数据的样本添加到预测性块的对应样本以产生当前图片的样本。例如,在图8的上下文中,预测处理单元152可产生一或多个预测性块,且重构建单元158可将所述一或多个预测性块的样本添加到对应的残余数据样本以产生当前图片的样本。当前图片的样本可以是CU的译码块的全部或部分。取决于应用的量化的量,重构建可能有损。因此,由视频编码器20进行的变换的输出可能不会精确匹配由视频解码器30执行的反变换的输出。
[0145] 在一些实例中,视频解码器30基于位流中的一或多个语法元素确定变换。举例来说,视频解码器30可从位流获得指示变换的索引。在一些实例中,视频解码器30基于各种信息(例如块大小、预测模式、帧内预测方向等)确定变换。例如,视频解码器30可确定用于帧间预测的一个变换和用于帧内预测的另一变换。
[0146] 此外,在一些实例中,视频解码器30可基于位流中的一或多个语法元素确定一组有效变换。可在例如序列层级、图片层级、切片层级、块层级或其它层级的各种层级用信号发送语法元素。所述向量变换序列中的每一相应的向量变换是所述一组有效变换的成员。举例来说,视频解码器30可从位流获得指定所述一组有效变换的语法元素。在此类实例中,视频解码器30可从位流获得指示将应用哪个有效变换的语法元素。可在例如序列层级、图片层级、切片层级、块层级或其它层级的各种层级用信号发送所述语法元素。
[0147] 对于向量变换序列中的向量变换,视频解码器30可基于位流中的一或多个语法元素确定用于所述一组有效变换的参数向量中的允许参数。举例来说,视频解码器30可从位流获得指定参数向量中的允许参数的语法元素。此外,视频解码器30可基于位流中的一或多个语法元素确定所述向量变换序列中的向量变换。例如,视频解码器30可从位流获得指定向量变换的一或多个语法元素。此类语法元素可指示哪些参数要用在向量变换中的每一个中以及向量变换中的每一个的结构。
[0148] 出于说明的目的,已相对于HEVC标准的扩展而描述了本公开的某些方面。然而,本公开中描述的技术可适用于其它视频译码过程,包含尚未开发的其它标准或专有视频译码过程。
[0149] 如本公开中所描述的视频译码器可指视频编码器或视频解码器。类似地,视频译码单元可指视频编码器或视频解码器。同样地,在适当时,视频译码可指视频编码或视频解码。
[0150] 应认识到,取决于实例,本文中所描述的技术中的任一者的某些动作或事件可依不同顺序执行,可添加、合并或全部省略(例如,实践所述技术未必需要所有所描述动作或事件)。此外,在某些实例中,可例如通过多线程处理、中断处理或多个处理器同时而非循序地执行动作或事件。
[0151] 在一或多个实例中,所描述功能可在硬件、软件、固件或其任何组合中实施。如果在软件中实施,那么所述功能可作为一或多个指令或代码存储在计算机可读媒体上或通过其传输,且可由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或通信媒体,其包含有助于例如根据通信协议将计算机程序从一处传送到另一处的任何媒体。以此方式,计算机可读媒体通常可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如,信号或载波。数据存储媒体可以是可由一或多个计算机或一或多个处理器存取以检索用于实施本公开中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
[0152] 作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器,或可用以存储呈指令或数据结构形式的所要程序代码且可由计算机存取的任何其它媒体。另外,适当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么所述同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。然而,应理解,计算机可读存储媒体和数据存储媒体并不包含连接、载波、信号或其它暂时性媒体,而是实际上针对非暂时性的有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各项的组合也应包含于计算机可读媒体的范围内。
[0153] 指令可由一或多个处理器执行,例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA),或其它等效的集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指代前述结构或适合实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可在经配置以用于编码和解码的专用硬件和/或软件模块内提供,或并入于组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。因此,处理器可由包括实施为固定硬件处理电路、可编程处理电路和/或固定和可编程处理电路两者的组合的一或多个处理器的各种集成处理电路中的任一个形成。
[0154] 本公开的技术可在广泛多种装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本公开中描述各种组件、模块或单元是为了强调经配置以执行所公开的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编解码器硬件单元中,或通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
[0155] 已描述各种实例。这些和其它实例在所附权利要求书的范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈