一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

对视频信号进行解码/编码及发送数据的设备的制作方法

2022-12-20 00:06:44 来源:中国专利 TAG:

对视频信号进行解码/编码及发送数据的设备
1.本技术是原案申请号为201980014404.7的发明专利申请(国际申请号: pct/kr2019/011514,申请日:2019年9月5日,发明名称:对视频信号进行编码/ 解码的方法及其设备)的分案申请。
技术领域
2.本公开涉及对图像信号进行处理的方法和设备,并且具体地,涉及通过执行变换对图像信号进行编码或解码的方法和设备。


背景技术:

3.压缩编码是指用于通过通信线路发送数字化信息或将其以适当形式存储在存储介质中的信号处理技术。诸如视频、图像和音频这样的媒体可以是压缩编码的对象,并且具体地,对图像执行压缩编码的技术被称为视频图像压缩。
4.下一代视频内容将具有高空间分辨率、高帧速率和高维度场景呈现的特征。为了处理这样的内容,存储器存储、存储器访问速率和处理能力将显著增加。
5.因此,必须设计用于更高效地处理下一代视频内容的编码工具。特别地,在高效视频编码(hevc)标准之后的视频编解码器标准需要将空间域视频信号变换成频域信号的高效变换技术连同具有更高精度的预测技术。


技术实现要素:

6.技术问题
7.本公开的实施方式提供了向当前块应用适当变换的图像信号处理方法和设备。
8.本公开所解决的技术问题不限于以上的技术问题,并且对于本领域技术人员而言,本文中未描述的其它技术问题将根据下面的描述而变得显而易见。
9.技术方案
10.在本公开的一方面,一种对视频信号进行解码的方法可以包括以下步骤:在基于当前块的帧内预测模式的预定义的二次变换集当中确定应用于所述当前块的二次变换集;获取指示所确定的二次变换集中的应用于所述当前块的二次变换矩阵的第一语法元素;通过使用所述第一语法元素所指定的二次变换矩阵对所述当前块的左上区域执行二次逆变换来导出二次逆变换后的块;以及通过使用所述当前块的一次变换矩阵对所述二次逆变换后的块执行一次逆变换来导出所述当前块的残差块。
11.优选地,所述预定义的二次变换集中的每一个可以包括两个二次变换矩阵。
12.导出所述二次逆变换后的块的步骤可以包括以下步骤:包括基于所述当前块的宽度和高度来确定所述二次逆变换的输入长度和输出长度。
13.优选地,如果所述当前块的宽度和高度等于4,则所述不可分变换的输入长度可以等于8并且所述输出长度可以等于16。
14.优选地,所述方法还可以包括以下步骤:对指示应用于所述当前块的一次变换的
一次变换矩阵的第二语法元素进行解析;以及基于所述第二语法元素来确定是否能够对所述当前块应用二次变换。
15.优选地,如果所述第二语法元素指示预定义的特定变换类型,则可以通过确定能够对所述当前块应用二次变换来执行确定是否能够应用所述二次变换。
16.优选地,所述预定义的特定变换类型可以被限定为dct2。
17.在本公开的另一方面,一种对视频信号进行解码的设备包括:存储器,该存储器用于存储所述视频信号;以及处理器,该处理器联接到所述存储器,并且所述处理器可以被配置为:在基于当前块的帧内预测模式的预定义的二次变换集当中确定应用于所述当前块的二次变换集;获取指示所确定的二次变换集中的应用于所述当前块的二次变换矩阵的第一语法元素;通过使用所述第一语法元素所指定的二次变换矩阵对所述当前块的左上区域执行二次逆变换来导出二次逆变换后的块;并且通过使用所述当前块的一次变换矩阵对所述二次逆变换后的块执行一次逆变换来导出所述当前块的残差块。
18.有益效果
19.根据本公开的实施方式,能够通过确定和应用适于当前块的变换来提高变换效率。
20.另外,根据本公开的实施方式,通过高效地设计用于一次变换和二次变换的变换,能改善计算复杂度并且能提高压缩性能。
21.此外,根据本公开的实施方式,通过限制应用二次变换的一次变换的变换核,能显著地改善计算复杂度。
22.本公开的效果不限于上述效果,并且根据以下描述,本文中没有描述的其它效果对于本领域的技术人员将变得明显。
附图说明
23.为了帮助理解本公开而被包括在本文中作为说明书的一部分的附图提供了本公开的实施方式,并且通过以下描述来描述本公开的技术特征。
24.图1示出了作为应用本公开的实施方式的视频编码系统的示例。
25.图2是作为应用本公开的实施方式的对视频/图像信号进行编码的编码设备的示意性框图。
26.图3是作为应用本公开的实施方式的对图像信号进行解码的解码设备的示意性框图。
27.图4是作为应用本公开的实施方式的内容流传输系统的配置示图。
28.图5a是用于描述根据qt(四叉树)的块分割结构的示图,图5b是用于描述根据 bt(二叉树)的块分割结构的示图,图5c是用于描述根据tt(三叉树)的块分割结构的示图,并且图5d示出了at分割的示例。
29.图6和图7示出了应用本公开的实施方式,图6是编码设备中的变换和量化单元以及反量化和逆变换单元的示意性框图,并且图7是解码设备中的反量化和逆变换单元的示意性框图。
30.图8是示出了执行自适应多重变换(amt)的过程的流程图。
31.图9是示出了执行amt的解码过程的流程图。
32.图10是示出了根据本公开的实施方式的基于mts的逆变换过程的流程图。
33.图11是根据本公开的实施方式的基于mts执行解码的设备的框图。
34.图12和图13是示出了作为应用了本公开的实施方式的应用二次变换的编码/解码的流程图。
35.图14和图15示出了应用本公开的实施方式,图14是用于描述吉文斯旋转(givensrotation)的示图,并且图15示出了由吉文斯旋转层和置换构成的4
×
4不可分二次变换 (nsst)中的一轮的配置。
36.图16示出了作为应用本公开的实施方式的简化二次变换(rst)的操作。
37.图17是示出了作为应用本公开的实施方式的以反向扫描顺序从第六十四系数至第十七系数执行反向扫描的过程的示图。
38.图18例示了作为应用本公开的实施方式的使用单变换指示符(sti)进行的编码的示例性流程图。
39.图19例示了作为应用本公开的实施方式的使用联合变换指示符(uti)进行的编码的示例性流程图。
40.图20a和图20b例示了作为应用本公开的实施方式的使用uti进行的编码的两个示例性流程图。
41.图21是示出了作为应用本公开的实施方式的用于执行变换的编码的示例性流程图。
42.图22是示出了作为应用本公开的实施方式的用于执行变换的解码的示例性流程图。
43.图23是示出了作为应用本公开的实施方式的编码设备100中的变换单元120的示例的详细框图。
44.图24是示出了作为应用本公开的实施方式的解码设备200中的逆变换单元230的示例的详细框图。
45.图25是作为应用本公开的实施方式的对视频信号进行处理的流程图。
46.图26是作为应用本公开的实施方式的对视频信号进行处理的设备的示例性框图。
47.图27是示出了根据应用本公开的实施方式的对视频信号进行变换的方法的流程图。
48.图28是作为应用本公开的实施方式的对视频信号进行处理的设备的示例性框图。
具体实施方式
49.参照附图来更详细地描述本公开的一些实施方式。将连同附图一起公开的详细描述旨在描述本公开的一些示例性实施方式,而不旨在描述本公开的唯一实施方式。以下的详细描述包括更多细节,以提供对本公开的完全理解。然而,本领域的技术人员应该理解,本公开可以在没有这些细节的情况下实现。
50.在一些情况下,为了避免本公开的概念模糊,已知结构和装置被省略,或者可基于各个结构和装置的核心功能以框图形式示出。
51.虽然在本公开中使用的大多数术语已选自本领域中广泛使用的通用术语,但是一些术语已由申请人任意地选择,并且在下面的描述中将根据需要详细地解释它们的含义。
因此,应该基于术语的本意而非它们的简单名称或含义来理解本公开。
52.以下描述中所使用的具体术语被提供以帮助理解本公开,并且在不脱离本公开的技术精神的范围的情况下,这些具体术语的使用可以被改变为各种形式。例如,可以在每个编码过程中适当地替换和解释信号、数据、样本、图片、帧、块等。
53.在本说明书中,“处理单元”是指在其中执行诸如预测、变换和/或量化这样的编码/解码过程的单元。另外,处理单元可以被解释为包括用于亮度分量的单元和用于色度分量的单元的含义。例如,处理单元可以与块、编码单元(cu)、预测单元(pu) 或变换单元(tu)对应。
54.另外,处理单元可以被解释为包括用于亮度分量的单元或用于色度分量的单元。例如,处理单元可以与用于亮度分量的编码树块(ctb)、编码块(cb)、pu或变换块(tb)对应。另外,处理单元可以与用于色度分量的ctb、cb、pu或tb对应。此外,处理单元不限于此,并且可以被解释为包括用于亮度分量的单元和用于色度分量的单元的含义。
55.另外,处理单元不一定限于方形块,并且可以被配置为具有三个或更多个顶点的多边形形状。
56.此外,在本说明书中,像素被称为样本。另外,使用样本可以意指使用像素值等。
57.图1示出了作为应用本公开的实施方式的视频编码系统的示例。
58.视频编码系统可以包括源装置10和接收装置20。源装置10可以通过数字存储介质或网络以文件或流传输的形式将编码后的视频/图像信息或数据发送到接收装置20。
59.源装置10可以包括视频源11、编码设备12和发送器13。接收装置20可以包括接收器、解码设备22和渲染器23。编码设备12可以被称为视频/图像编码设备,并且解码设备22可以被称为视频/图像解码设备。发送器13可以被包括在编码设备12中。接收器21可以被包括在解码设备22中。渲染器23可以包括显示器,并且显示器可以被配置为单独装置或外部组件。
60.视频源可以通过视频/图像捕获、组合或生成过程来获取视频/图像。视频源可以包括视频/图像捕获装置和/或视频/图像生成装置。视频/图像捕获装置可以包括例如一个或更多个相机、包括先前捕获的视频/图像的视频/图像档案等。视频/图像生成装置可以包括例如计算机、平板计算机和智能电话等,并且(电子地)生成视频/图像。例如,可以通过计算机等来生成虚拟视频/图像,并且在这种情况下,可以用相关数据生成过程来替换视频/图像捕获过程。
61.编码设备12可以对输入视频/图像进行编码。编码设备12可以为了压缩和编码效率而执行诸如预测、变换和量化这样的一系列过程。编码后的数据(编码后的视频/ 图像信息)可以以比特流的形式输出。
62.发送器13可以通过数字存储介质或网络将以比特流的形式输出的编码后的视频/ 图像信息或数据以文件或流传输的形式发送到接收装置的接收器。数字存储介质可以包括诸如usb、sd、cd、dvd、blueray、hdd和ssd这样的各种存储介质。发送器 13可以包括用于通过预定的文件格式生成媒体文件的元件以及用于通过广播/通信网络进行发送的元件。接收器21可以提取比特流,并且将该比特流发送到解码设备22。
63.解码设备22可以通过执行与编码设备12的操作对应的诸如反量化、逆变换和预测这样的一系列过程对视频/图像进行解码。
64.渲染器23可以渲染解码后的视频/图像。渲染后的视频/图像可以通过显示器显示。
65.图2是作为应用本公开的实施方式的对视频/图像信号进行编码的编码设备的示意性框图。编码设备100可以与图1的编码设备12对应。
66.图像分割单元110可以将输入到编码设备100的输入图像(或图片或帧)分割成一个或更多个处理单元。例如,处理单元可以被称为编码单元(cu)。在这种情况下,可以根据四叉树二叉树(qtbt)结构从编码树单元(ctu)或最大编码单元(lcu) 递归地分割编码单元。例如,可以基于四叉树结构和/或二叉树结构将单个编码单元分割成深度较深的多个编码单元。在这种情况下,可以首先应用四叉树结构,然后可以应用二叉树结构。另选地,可以首先应用二叉树结构。可以基于不再被分割的最终编码单元来执行根据本公开的编码过程。在这种情况下,最大编码单元可以被直接用作最终编码单元,或者编码单元可以被递归地分割成深度较深的编码单元,并且可以根据图像特性基于编码效率在必要时使用具有最佳大小的编码单元作为最终编码单元。这里,编码过程可以包括随后将描述的诸如预测、变换和重构这样的过程。另选地,处理单元还可以包括预测单元(pu)或变换单元(tu)。在这种情况下,可以从以上提到的最终编码单元分割或划分预测单元和变换单元。预测单元可以是样本预测的单元,并且变换单元可以是导出变换系数的单元和/或根据变换系数导出残差信号的单元。
67.单元可以与术语“块”或“区域”可互换地使用。通常,m
×
n块表示m列和n行中的样本或变换系数的集合。样本通常可以表示像素或像素值,并且可以仅表示亮度分量的像素/像素值或者仅表示色度分量的像素/像素值。样本可以被用作与图片(图像)、像素或图素对应的术语。
68.编码设备100可以通过从输入的视频信号(原始块或原始样本阵列)中减去从帧间预测单元180或帧内预测单元185输出的预测信号(预测块或预测样本阵列)来生成残差信号(残差块或残差样本阵列),并且所生成的残差信号被发送到变换单元120。在这种情况下,如所示出的,编码器100中的从输入的视频信号(原始块或原始样本阵列)中减去预测信号(预测块或预测样本阵列)的单元可以称为减法器115。预测器可以对处理目标块(下文中,被称为当前块)执行预测,并且生成包括相对于当前块的预测样本的预测块。预测器可以确定向当前块或cu的单元应用帧内预测还是帧间预测。预测器可以生成诸如预测模式信息这样的关于预测的各种类型的信息,并且将该信息发送到熵编码单元190,如随后在对每种预测模式的描述中描述的。关于预测的信息可以在熵编码单元190中被编码并且以比特流的形式被输出。
69.帧内预测单元185可以参考当前图片中的样本来预测当前块。所参考的样本可以与当前块邻近或者可以根据预测模式与其分开。在帧内预测中,预测模式可以包括多种非定向模式和多种定向模式。非定向模式可以包括例如dc模式和平面模式。根据预测方向的详细程度,定向模式可以包括例如33种定向预测模式或65种定向预测模式。然而,这是示例性的,并且根据设置,可以使用等于或大于65或等于或小于33 的多种定向预测模式。帧内预测单元185可以使用应用于邻近块的预测模式来确定要应用于当前块的预测模式。
70.帧间预测单元180可以基于参考图片上的运动向量所指定的参考块(参考样本阵列)来导出关于当前块的预测块。这里,为了减少在帧间预测模式下发送的运动信息的数
量,可以基于邻近块与当前块之间的运动信息的相关性以块、子块或样本为单元预测运动信息。运动信息可以包括运动向量和参考图片索引。运动信息还可以包括帧间预测方向(l0预测、l1预测、bi预测等)信息。在帧间预测的情况下,邻近块可以包括当前图片中存在的空间邻近块和参考图片中存在的时间邻近块。包括参考块的参考图片可以与包括时间邻近块的参考图片相同或不同。时间邻近块可以被称为并置参考块或并置cu(colcu),并且包括时间邻近块的参考图片可以被称为并置图片 (colpic)。例如,帧间预测单元180可以基于邻近块来形成运动信息候选列表,并且生成指示哪个候选被用于导出当前块的运动向量和/或参考图片索引的信息。可以基于各种预测模式来执行帧间预测,并且在跳跃模式和合并模式的情况下,帧间预测单元180可以将邻近块的运动信息用作当前块的运动信息。在跳跃模式的情况下,可以与合并模式不同地发送残差信号。在运动向量预测(mvp)模式的情况下,可以通过使用邻近块的运动向量作为运动向量预测项并发信号通知运动向量差来指示当前块的运动向量。
71.通过帧间预测单元180或帧内预测单元185生成的预测信号可以被用于生成重构信号或残差信号。
72.变换单元120可以通过向残差信号应用变换技术来生成变换系数。例如,变换技术可以包括dct(离散余弦变换)、dst(离散正弦变换)、klt(karhunen-loeve变换)、gbt(基于图的变换)和cnt(有条件非线性变换)中的至少一种。本文中,gbt是指从表示关于像素之间的关系的信息的图获得的变换。cnt是指基于使用所有先前重构的像素生成的预测信号而获得的变换。另外,可以向大小相同的正方形像素块应用变换过程或者向大小可变的非正方形块应用变换过程。
73.量化单元130可以对变换系数进行量化并且将量化后的变换系数发送到熵编码单元190,并且熵编码单元190可以对量化后的信号(关于量化后的变换系数的信息)进行编码并且将编码后的信号作为比特流输出。关于量化后的变换系数的信息可以被称为残差信息。量化单元130可以基于系数扫描顺序将块形式的量化后的变换系数重新布置为一维向量的形式,并且基于一维向量形式的量化后的变换系数来生成关于量化后的变换系数的信息。例如,熵编码单元190可以执行诸如指数golomb、cavlc(上下文自适应可变长度编码)和cabac(上下文自适应二进制算术编码)这样的各种编码方法。熵编码单元190可以将视频/图像重构所需的信息(例如,语法元素的值等) 与量化后的变换系数一起或与其分开地进行编码。编码后的信息(例如,视频/图像信息)可以以网络抽象层(nal)为单元以比特流的形式进行发送或存储。可以通过网络发送比特流,或者将其存储在数字存储介质中。这里,网络可以包括广播网络和 /或通信网络,并且数字存储介质可以包括诸如usb、sd、cd、dvd、blueray、hdd 和ssd这样的各种存储介质。发送从熵编码单元190输出的信号的发送器(未示出) 和/或存储该信号的存储器(未示出)可以被配置为编码设备100的内部/外部元件,并且发送器可以是熵编码单元190的组件。
74.从量化单元130输出的量化后的变换系数可以被用于生成预测信号。例如,可以通过环路中的反量化单元140和逆变换单元150对量化后的变换系数应用反量化和逆变换来重构残差信号。加法器155可以将重构后的残差信号与从帧间预测单元180或帧内预测单元185输出的预测信号相加,使得可以生成重构信号(重构图片、重构块或重构样本阵列)。当如在应用跳跃模式的情况下一样没有相对于处理目标块的残差时,预测块可以被用作重构
块。加法器155也可以被称为重构单元或重构块生成器。所生成的重构信号可以被用于当前图片中的下一处理目标块的帧内预测,或者被用于通过随后将描述的滤波的下一图片的帧间预测。
75.滤波单元160可以通过向重构信号应用滤波来改善主观/客观图片质量。例如,滤波单元160可以通过向重构图片应用各种滤波方法来生成修改后的重构图片,并且将修改后的重构图片发送到解码图片缓冲器170。所述各种滤波方法可以包括例如去块滤波、样本自适应偏移、自适应环路滤波和双边滤波。滤波单元160可以生成关于滤波的各种类型的信息,并且将该信息发送到熵编码单元190,如随后在对每种滤波方法的描述中所描述的。关于滤波的信息可以在熵编码单元190中被编码并且以比特流的形式输出。
76.发送到解码图片缓冲器170的修改后的重构图片可以在帧间预测单元180中被用作参考图片。因此,当应用帧间预测时,编码设备可以避免编码设备100与解码设备之间的失配并且提高编码效率。
77.解码图片缓冲器170可以存储修改后的重构图片,使得在帧间预测单元180中将修改后的重构图片用作参考图片。
78.图3是作为应用本公开的实施方式的对视频信号执行解码的解码设备的示意性框图。图3的解码设备200与图1的解码设备22对应。
79.参照图3,解码设备200可以包括熵解码单元210、反量化单元220、逆变换单元230、加法器235、滤波单元240、解码图片缓冲器(dpb)250、帧间预测单元260和帧内预测单元265。帧间预测单元260和帧内预测单元265可以被统称为预测器。即,预测器可以包括帧间预测单元180和帧内预测单元185。反量化单元220和逆变换单元230可以被统称为残差处理器。即,残差处理器可以包括反量化单元220和逆变换单元230。根据实施方式,以上提到的熵解码单元210、反量化单元220、逆变换单元230、加法器 235、滤波单元240、帧间预测单元260和帧内预测单元265可以被配置为单个硬件组件 (例如,解码器或处理器)。另外,根据实施方式,解码图片缓冲器250可以被配置为单个硬件组件(例如,存储器或数字存储介质)。
80.当输入包括视频/图像信息的比特流时,解码设备200可以通过与在图2的编码设备100中处理视频/图像信息的过程对应的过程来重构图像。例如,解码设备200可以使用在编码设备100中应用的处理单元来执行解码。因此,解码的处理单元可以是例如编码单元,并且可以根据四叉树结构和/或二叉树结构从编码树单元或最大编码单元中分割出编码单元。另外,可以通过再现设备来再现由解码设备200解码并输出的重构视频信号。
81.解码设备200可以以比特流的形式接收从图2的编码设备100输出的信号,并且可以通过熵解码单元210对接收到的信号进行解码。例如,熵解码单元210可以对比特流进行解析,以导出图像重构(或图片重构)所需的信息(例如,视频/图像信息)。例如,熵解码单元210可以基于诸如指数golomb、cavlc或cabac这样的编码方法对比特流中的信息进行解码,并且输出图像重构所需的语法元素值和相对于残差的变换系数的量化后的值。更具体地,cabac熵解码方法接收与比特流中的每个语法元素对应的bin,使用解码目标语法元素信息以及邻近和解码目标块的解码信息或者关于先前阶段中解码的符号/bin的信息来确定上下文模型,根据所确定的上下文模型来预测bin生成概率并且对bin执行算术解码以生成与每个语法元素值对应的符号。这里, cabac熵解码方法可以在确定上下文模型之后,使用关
于针对下一符号/bin上下文模型解码的符号/bin的信息来更新上下文模型。在熵解码单元210中被解码的信息当中的关于预测的信息可以被提供到预测器(帧间预测单元260和帧内预测单元265),并且已经在熵解码单元210中被执行熵解码的残差值(即,量化后的变换系数)和相关参数信息可以被输入到反量化单元220。另外,在熵解码单元210中被解码的信息当中的关于滤波的信息可以被提供到滤波单元240。此外,接收从编码设备100输出的信号的接收器(未示出)可以被附加地配置为解码设备200的内部/外部元件,或者接收器可以是熵解码单元210的组件。
82.反量化单元220可以对量化后的变换系数进行反量化,以输出变换系数。反量化单元220可以将量化后的变换系数重新布置为二维块的形式。在这种情况下,可以在编码设备100中基于系数扫描顺序来执行重新布置。反量化单元220可以使用量化参数 (例如,量化步长信息)对量化后的变换系数执行反量化,并且获取变换系数。
83.逆变换单元230对变换系数进行逆变换,以获得残差信号(残差块或残差样本阵列)。
84.预测器可以对当前块执行预测,并且生成包括相对于当前块的预测样本的预测块。预测器可以基于从熵解码单元210输出的关于预测的信息来确定向当前块应用帧内预测还是帧间预测,并且确定特定的帧内/帧间预测模式。
85.帧内预测单元265可以参考当前图片中的样本来预测当前块。所参考的样本可以与当前块邻近或者可以根据预测模式与当前块分开。在帧内预测中,预测模式可以包括多种非定向模式和多种定向模式。帧内预测单元265可以使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
86.帧间预测单元260可以基于参考图片上的运动向量所指定的参考块(参考样本阵列)来导出相对于当前块的预测块。这里,为了减少在帧间预测模式下发送的运动信息的量,可以基于邻近块与当前块之间的运动信息的相关性以块、子块或样本为单元预测运动信息。运动信息可以包括运动向量和参考图片索引。运动信息还可以包括帧间预测方向(l0预测、l1预测、bi预测等)信息。在帧间预测的情况下,邻近块可以包括当前图片中存在的空间邻近块和参考图片中存在的时间邻近块。例如,帧间预测单元260可以基于邻近块来形成运动信息候选列表,并且基于接收到的候选选择信息来导出当前块的运动向量和/或参考图片索引。可以基于各种预测模式来执行帧间预测,并且关于预测的信息可以包括指示针对当前块的帧间预测模式的信息。
87.加法器235可以通过将所获得的残差信号与从帧间预测单元260或帧内预测单元 265输出的预测信号(预测块或预测样本阵列)相加来生成重构信号(重构图片、重构块或重构样本阵列)。当如在应用跳跃模式的情况下一样没有相对于处理目标块的残差时,预测块可以被用作重构块。
88.加法器235也可以被称为重构单元或重构块生成器。所生成的重构信号可以被用于当前图片中的下一处理目标块的帧内预测,或者被用于通过随后将描述的滤波的下一图片的帧间预测。
89.滤波单元240可以通过向重构后的信号应用滤波来改善主观/客观图片质量。例如,滤波单元240可以通过向重构图片应用各种滤波方法来生成修改后的重构图片,并且将修改后的重构图片发送到解码图片缓冲器250。所述各种滤波方法可以包括例如去块滤波、
样本自适应偏移(sao)、自适应环路滤波(alf)和双边滤波。
90.发送到解码图片缓冲器250的修改后的重构图片可以被帧间预测单元260用作参考图片。
91.在本说明书中,编码设备100的滤波单元160、帧间预测单元180和帧内预测单元 185中描述的实施方式可以被同等地或以对应方式应用于解码设备的滤波单元240、帧间预测单元260和帧内预测单元265。
92.图4是作为应用本公开的实施方式的内容流传输系统的配置示图。
93.应用本公开的内容流传输系统可以包括编码服务器410、流传输服务器420、网络服务器430、媒体存储装置440、用户设备450和多媒体输入装置460。
94.编码服务器410用于将从诸如智能电话、相机和摄像机这样的多媒体输入装置输入的内容压缩成数字数据以生成比特流,并且将该比特流发送到流传输服务器420。作为另一示例,当诸如智能电话、相机和摄像机这样的多媒体输入装置460直接生成比特流时,可以省略编码服务器410。
95.可以通过应用本公开的编码方法或比特流生成方法来生成比特流,并且流传输服务器420可以在发送或接收比特流的处理中临时地存储比特流。
96.流传输服务器420基于用户请求通过网络服务器430将多媒体数据发送到用户设备450,并且网络服务器430用作将服务告知用户的介质。当用户向网络服务器430发送所期望的服务的请求时,网络服务器430将请求传送到流传输服务器420,并且流传输服务器420将多媒体数据发送到用户。这里,内容流传输系统可以包括附加的控制服务器,并且在这种情况下,控制服务器用于控制内容流传输系统中的装置之间的命令/响应。
97.流传输服务器420可以从媒体存储装置440和/或编码服务器410接收内容。例如,当从编码服务器410接收到内容时,流传输服务器420可以实时地接收内容。在这种情况下,流传输服务器420可以将比特流存储达预定时间,以便提供平稳的流传输服务。
98.用户设备450的示例可以包括蜂窝电话、智能电话、膝上型计算机、数字广播终端、pda(个人数字助理)、pmp(便携式多媒体播放器)、导航装置、触屏pc、平板pc、超级本、可穿戴装置(例如,智能手表、智能眼镜和hmd(头戴式显示器))、数字tv、台式计算机、数字标牌等。
99.内容流传输系统中的每个服务器都可以作为分布式服务器进行操作,并且在这种情况下,每个服务器接收到的数据都可以被以分布式方式处理。
100.图5a是用于描述根据qt(四叉树)的块分割结构的示图,图5b是用于描述根据 bt(二叉树)的块分割结构的示图,图5c是用于描述根据tt(三叉树)的块分割结构的示图,并且图5d示出了at分割的示例。
101.在视频编码时,可以基于qt对单个块进行分割。另外,可以使用qt进一步递归地分割根据qt分割的单个子块。可以使用bt、tt和at中的至少一个来对不再根据 qt被分割的叶块进行分割。bt可以具有两种类型的分割:水平bt(2n
×
n,2n
×
n);以及垂直bt(n
×
2n,n
×
2n)。tt可以具有两种类型的分割:水平tt(2n
×
1/2n,2n
×
n, 2n
×
1/2n);以及垂直tt(1/2n
×
2n,n
×
2n,1/2n
×
2n)。at可以具有四种类型的分割:水平上at(2n
×
1/2n,2n
×
3/2n);水平下at(2n
×
3/2n,2n
×
1/2n);垂直左at(1/2n
×
2n, 3/2n
×
2n)和垂直右at(3/2n
×
2n,1/2n
×
2n)。可以使用bt、tt和at来进一步递归地分割bt、tt和at中的每种类型。
102.图5a示出了qt分割的示例。块a可以根据qt被分割成四个子块a0、a1、a2和 a3。子块a1可以根据qt被进一步分割成四个子块b0、b1、b2和b3。
103.图5b示出了bt分割的示例。不再根据qt被分割的块b3可以被分割成垂直bt(c0 和c1)或水平bt(d0和d1)。诸如块c0这样的每个子块可以被进一步递归地分割成水平bt(e0和e1)或垂直bt(f0和f1)。
104.图5c示出了tt分割的示例。不再根据qt被分割的块b3可以被分割成垂直tt(c0、 c1和c2)或水平tt(d0、d1和d2)。诸如块c1这样的每个子块可以被进一步递归地分割成水平tt(e0、e1和e2)或垂直tt(f0、f1和f2)。
105.图5d示出了at分割的示例。不再根据qt被分割的块b3可以被分割成垂直at(c0 和c1)或水平at(d0和d1)。诸如块c1这样的每个子块可以被进一步递归地分割成水平at(e0和e1)或垂直tt(f0和f1)。
106.此外,bt、tt和at分割可以被以组合方式使用。例如,根据bt分割的子块可以根据tt或at被分割。例如,根据tt分割的子块可以根据bt或at被分割。根据at分割的子块可以根据bt或tt被分割。例如,每个子块可以在水平bt分割之后被分割成垂直bt,或者每个子块可以在垂直bt分割之后被分割成水平bt。在这种情况下,尽管分割顺序不同,但最终分割后的形状是相同的。
107.另外,当分割块时,可以以各种方式限定块搜索顺序。通常,搜索是从左到右和从上到下执行的,并且块搜索可以意指确定是否每个分割后的子块是否将被附加分割的顺序、当子块不再被分割时子块的编码顺序或者当子块参考邻近其它块的信息时的搜索顺序。
108.可以对根据如图5a至图5d中所示的分割结构分割的处理单元(或变换块)执行变换,并且具体地,可以在行方向和列方向上执行分割并且可以应用变换矩阵。根据本公开的实施方式,可以根据处理单元(或变换块)在行方向或列方向上的长度来使用不同的变换类型。
109.向残差块应用变换,以便尽可能地解除残差块的相关性,将系数集中在低频上,并且在块的末尾处生成零尾部。jem软件中的变换部分包括两个主要功能(核心变换和二次变换)。核心变换由应用于残差块的所有行和列的离散余弦变换(dct)和离散正弦变换(dst)变换族构成。此后,可以附加地向核心变换的输出的左上角应用二次变换。类似地,可以按逆二次变换和逆核心变换的顺序应用逆变换。首先,可以向系数块的左上角应用逆二次变换。然后,向逆二次变换的输出的行和列应用逆核心变换。核心变换或逆变换可以被称为一次变换或逆变换。
110.图6和图7示出了应用本公开的实施方式,图6是编码设备100中的变换和量化单元 120/130以及反量化和逆变换单元140/150的示意性框图,并且图7是解码设备200中的反量化和逆变换单元220/230的示意性框图。
111.参照图6,变换和量化单元120/130可以包括一次变换单元121、二次变换单元122 和量化单元130。反量化和逆变换单元140/150可以包括反量化单元140、逆二次变换单元151和逆一次变换单元152。
112.参照图7,反量化和逆变换单元220/230可以包括反量化单元220、逆二次变换单元231和逆一次变换单元232。
113.在本公开中,可以通过多个阶段执行变换。例如,可以如图6中所示地应用一次变换和二次变换这两个阶段,或者可以根据算法使用不止两个变换阶段。这里,一次变换可以被称为核心变换。
114.一次变换单元121可以向残差信号应用一次变换。这里,一次变换可以被预定义为编码器和/或解码器中的表。
115.二次变换单元122可以向一次变换后的信号应用二次变换。这里,二次变换可以被预定义为编码器和/或解码器中的表。
116.在实施方式,不可分二次变换(nsst)可以被有条件地作为二次变换应用。例如,nsst仅被应用于帧内预测块,并且可以具有适于每个预测模式组的变换集。
117.这里,可以基于相对于预测方向的对称性来设置预测模式组。例如,预测模式52 和预测模式16基于预测模式34(对角方向)是对称的,因此可以产生一组并且可以向其应用同一变换集。这里,当应用针对预测模式52的变换时,因为预测模式52的变换集与预测模式16的变换集相同,所以对输入数据进行转置,然后应用变换。
118.在平面模式和dc模式的情况下,相对于各方向没有对称性,因此它们具有相应的变换集,并且对应的变换集可以由两种变换构成。每个变换集可以由针对其余方向模式的三种变换构成。
119.量化单元130可以对二次变换后的信号执行量化。
120.反量化和逆变换单元140/150执行以上提到的过程的逆过程,并且省略冗余描述。
121.图7是解码设备200中的反量化和逆变换单元220/230的示意性框图。
122.参照图7,反量化和逆变换单元220/230可以包括反量化单元220、逆二次变换单元231和逆一次变换单元232。
123.反量化单元220使用量化步长信息从熵解码后的信号获得变换系数。
124.逆二次变换单元231对变换系数执行逆二次变换。这里,逆二次变换是指在图6 中描述的二次变换的逆变换。
125.逆一次变换单元232对逆二次变换后的信号(或块)执行逆一次变换,并且获得残差信号。这里,逆一次变换是指在图6中描述的一次变换的逆变换。
126.除了应用于hevc的dct-2和4
×
4dst-4之外,自适应多重变换或显式多重变换 (amt或emt)还被用于对帧间编码块和帧内编码块的残差编码。除了hevc中的变换之外,还使用了从dct/dst族中选择的多个变换。在jem中新引入的变换矩阵是 dst-7、dct-8、dst-1和dct-5。下表1示出了所选择的dst/dct的基本功能。
127.[表1]
[0128][0129]
可以向宽度和高度等于或小于64的cu应用emt,并且可以通过cu级别标志来控制是否应用emt。当cu级别标志为0时,向cu应用dct-2,以便对残差进行编码。发信号通知两个附加标志,以便标识将在应用emt的cu中用于亮度编码块的水平变换和垂直变换。如在hevc中一样,可以在jem中以变换跳跃模式对块的残差进行编码。对于残差内编码,由于其它帧内预测模式的其它残差统计,使用依赖于模式的变换候选选择过程。如下表2中所示地限定了三个变换子集,并且基于如表3中所示的帧内预测模式选择变换子集。
[0130]
[表2]
[0131]
连同子集概念一起,通过使用cu级emt_cu_flag为1的cu的帧内预测模式,初始地基于表2确认变换子集。此后,对于水平(emt_tu_horizontal_flag)和垂直 (emt_tu_vertical_flag)变换中的每一个,使用根据表3的标志基于显式信令来选择所确认的变换子集中的两个变换候选中的一个。
[0132]
[表3]
[0133][0134]
[表4]
[0135]
[0136][0137]
表4示出了作为应用本公开的实施方式的应用自适应多重变换(amt)的变换配置组。
[0138]
参照表4,基于预测模式确定变换配置组,并且组的数目可以为6(g0至g5)。另外,g0至g4与应用帧内预测的情况对应,并且g5表示应用于根据帧间预测生成的残差块的变换组合(或变换集或变换组合集)。
[0139]
一个变换组合可以由应用于对应2d块的行的水平变换(或行变换)和应用于其列的垂直变换(或列变换)构成。
[0140]
这里,变换配置组中的每一个可以具有四个变换组合候选。可以使用变换组合索引0至3来选择或确定四个变换组合候选,并且可以对变换组合索引进行编码并将其从编码器发送到解码器。
[0141]
在实施方式中,根据帧内预测模式,通过帧内预测获得的残差数据(或残差信号) 可以具有不同的统计特性。因此,可以针对如表4中所示的相应帧内预测应用除了正常余弦变换之外的变换。在本说明书中,变换类型可以被表示为例如dct类型2、 dct-ii或dct-2。
[0142]
参照表4,示出了使用35种帧内预测模式的情况和使用67种帧内预测模式的情况。可以针对每个帧内预测模式列中分类的每个变换配置组应用多个变换组合。例如,多个变换组合可以由(行方向上的变换和列方向上的变换的)四个组合构成。作为特定示例,dst-7和dct-5可以在行(水平)方向和列(垂直)方向二者上应用于组0,因此可以总共应用四个组。
[0143]
由于总共四个变换核组合可以被应用于每种帧内预测模式,因此可以逐个变换单元地发送用于选择其中之一的变换组合索引。在本说明书中,变换组合索引可以被称为amt索引,并且可以由amt_idx表示。
[0144]
此外,除了表4中示出的变换核之外,由于残差信号的特性,可能产生dct-2对于行方向和列方向二者均最佳的情况。因此,可以通过针对每个编码单元限定amt 标志来自适应地应用变换。这里,当amt标志为0时,dct-2可以被应用于行方向和列方向二者,而当amt标志为1时,可以通过amt索引选择或确定四个组合之一。
[0145]
在实施方式中,如果当amt标志为0时,对于一个变换单元而言变换系数的数目小于3,则不应用表4的变换核并且dst-7可以被应用于行方向和列方向二者。
[0146]
在实施方式中,如果预先解析了变换系数值并因此变换系数的数目小于3,则不解析amt索引并且应用dst-7,因此可以减少附加信息的发送量。
[0147]
在实施方式中,只有当变换单元的宽度和高度二者都等于或小于32时,才可以应用amt。
[0148]
在实施方式中,可以通过离线训练来预设表4。
[0149]
在实施方式中,amt索引可以被定义为可以指示水平变换和垂直变换的组合的一个索引。另选地,amt索引可以被定义为单独的水平变换索引和垂直变换索引。
[0150]
图8是示出了执行自适应多重变换(amt)的过程的流程图。
[0151]
尽管在本说明书中基本描述了相对于在水平方向和垂直方向上分别应用的可分变换的实施方式,但是变换组合可以由不可分变换构成。
[0152]
另选地,变换组合可以被配置为可分变换与不可分变换的混合。在这种情况下,当使用可分变换时,行/列方式的变换选择或水平/垂直方向上的选择不是必要的,并且只有当选择了可分变换时,才可以使用表4的变换组合。
[0153]
另外,可以不顾及一次变换和二次变换的情况下应用本说明书中提出的方法。即,这些方法可以被应用于这两个变换。这里,一次变换可以是指用于初始地变换残差块的变换,而二次变换可以是指用于向作为一次变换是结果而生成的块应用变换的变换。
[0154]
首先,编码设备100可以确定与当前块对应的变换组(s805)。这里,变换组可以是指表4中的变换组,但是本公开不限于此,并且变换组可以由其它变换组合构成。
[0155]
编码设备100可以对变换组中的可用候选变换组合执行变换(s810)。作为变换的结果,编码设备100可以确定或选择速率失真(rd)代价最低的变换组合(s815)。编码设备100可以对与所选择的变换组合对应的变换组合索引进行编码(s820)。
[0156]
图9是示出了执行amt的解码过程的流程图。
[0157]
首先,解码设备200可以确定当前块的变换组(s905)。解码设备200可以解析变换组合索引,并且变换组合索引可以与变换组中的多个变换组合中的一个对应 (s910)。解码设备200可以导出与变换组合索引对应的变换组合(s915)。这里,尽管变换组合可以是指表4中示出的变换组合,但是本公开不限于此。即,变换组合可以被配置为其它变换组合。
[0158]
解码设备200可以基于变换组合对当前块执行逆变换(s920)。当变换组合由行变换和列变换构成时,可以应用行变换,然后可以应用列变换。然而,本公开不限于此,并且可以在应用列变换之后应用行变换,并且当变换组合由不可分变换构成时,可以立即应用不可分变换。
[0159]
在另一实施方式中,可以同时执行确定变换组的过程和解析变换组合索引的过程。
[0160]
在本公开的实施方式中,以上提到的术语“amt”可以被重新定义为“多重变换集或
多重变换选择(mts)”。通用视频编码(vvc)jvet-k1001-v4中概述了下述的 mts相关语法和语义。
[0161]
在本公开的实施方式中,如下地,两个mts候选可以被用于定向模式并且四个 mts候选可以被用于非定向模式。
[0162]
a)非定向模式(dc和平面)
[0163]
当mts索引为0时,dst-7被用于水平变换和垂直变换。
[0164]
当mts索引为1时,dst-7被用于垂直变换并且dct-8被用于水平变换。
[0165]
当mts索引为2时,dct-8被用于垂直变换并且dst-7被用于水平变换。
[0166]
当mts索引为3时,dst-8被用于水平变换和垂直变换。
[0167]
b)属于水平组模式的模式
[0168]
当mts索引为0时,dst-7被用于水平变换和垂直变换。
[0169]
当mts索引为1时,dct-8被用于垂直变换并且dst-7被用于水平变换。
[0170]
c)属于垂直组模式的模式
[0171]
当mts索引为0时,dst-7被用于水平变换和垂直变换。
[0172]
当mts索引为1时,dst-7被用于垂直变换并且dct-8被用于水平变换。
[0173]
这里(在使用67种模式的vtm 2.0中),水平组模式包括帧内预测模式2至34并且垂直模式包括帧内预测模式35至66。
[0174]
在本公开的另一实施方式中,三个mts候选被用于所有帧内预测模式。
[0175]
当mts索引为0时,dst-7被用于水平变换和垂直变换。
[0176]
当mts索引为1时,dst-7被用于垂直变换并且dct-8被用于水平变换。
[0177]
当mts索引为2时,dct-8被用于垂直变换并且dst-7被用于水平变换。
[0178]
在本公开的另一实施方式中,两个mts候选被用于定向预测模式并且三个mts 候选被用于非定向模式。
[0179]
a)非定向模式(dc和平面)
[0180]
当mts索引为0时,dst-7被用于水平变换和垂直变换。
[0181]
当mts索引为1时,dst-7被用于垂直变换并且dct-8被用于水平变换。
[0182]
当mts索引为2时,dct-8被用于垂直变换并且dst-7被用于水平变换。
[0183]
b)与水平组模式对应的预测模式
[0184]
当mts索引为0时,dst-7被用于水平变换和垂直变换。
[0185]
当mts索引为1时,dct-8被用于垂直变换并且dst-7被用于水平变换。
[0186]
c)与垂直组模式对应的预测模式
[0187]
当mts索引为0时,dst-7被用于水平变换和垂直变换。
[0188]
当mts索引为1时,dst-7被用于垂直变换并且dct-8被用于水平变换。
[0189]
在本公开的另一实施方式中,一个mts候选(例如,dst-7)可以被用于所有帧内模式。在这种情况下,编码时间可以减少40%,而有少量的编码损失。另外,在 dct-2和dst-7之间,可以使用一个标志进行指示。
[0190]
图10是示出了根据本公开的实施方式的基于mts的逆变换过程的流程图。
[0191]
应用了本公开的解码设备200可以获得sps_mts_intra_enabled_flag或 sps_mts_inter_enabled_flag(s1005)。这里,sps_mts_intra_enabled_flag指示在帧内编码单
元的残差编码语法中是否存在cu_mts_flag。例如,如果 sps_mts_intra_enabled_flag=0,则在帧内编码单元的残差编码语法中不存在 cu_mts_flag,而如果sps_mts_intra_enabled_flag=1,则在帧内编码单元的残差编码语法中存在cu_mts_flag。另外,sps_mts_inter_enabled_flag指示在帧间编码单元的残差编码语法中是否存在cu_mts_flag。例如,如果sps_mts_inter_enabled_flag=0,则在帧间编码单元的残差编码语法中不存在cu_mts_flag,而如果 sps_mts_inter_enabled_flag=1,则在帧间编码单元的残差编码语法中存在 cu_mts_flag。
[0192]
解码设备200可以基于sps_mts_intra_enabled_flag或sps_mts_inter_enabled_flag 获得cu_mts_flag(s1010)。例如,当sps_mts_intra_enabled_flag=1或 sps_mts_inter_enabled_flag=1时,解码设备200可以获得cu_mts_flag。这里, cu_mts_flag指示是否向亮度变换块的残差样本应用mts。例如,如果 cu_mts_flag=0,则不向亮度变换块的残差样本应用mts,而如果cu_mts_flag=1,则向亮度变换块的残差样本应用mts。
[0193]
解码设备200可以基于cu_mts_flag获得mts_idx(s1015)。例如,当 cu_mts_flag=1时,解码设备200可以获得mts_idx。这里,mts_idx指示在水平方向和/或垂直方向上向当前变换块的亮度残差样本应用哪个变换核。
[0194]
例如,本说明书中描述的实施方式中的至少一个可以被应用于mts_idx。
[0195]
解码设备200可以导出与mts_idx对应的变换核(s1020)。例如,与mts_idx对应的变换核可以被分别定义为水平变换和垂直变换。
[0196]
例如,当向当前块应用mts(即,cu_mts_flag=1)时,解码设备200可以基于当前块的帧内预测模式来配置mts候选。在这种情况下,图10的解码流程图还可以包括配置mts候选的步骤。然后,解码设备200可以使用mts_idx从所配置的mts候选当中确定将应用于当前块的mts候选。
[0197]
作为另一示例,可以对水平变换和垂直变换应用不同的变换核。然而,本公开不限于此,并且可以对水平变换和垂直变换应用相同的变换核。
[0198]
解码设备200可以基于变换核执行逆变换(s1025)。
[0199]
此外,在说明书中,mts可以被表示为amt或emt,并且mts_idx可以被表示为amt_idx、emt_idx、amt_tu_idx、emt_tu_idx等,但是本公开不限于此。
[0200]
按基于mts标志分为应用mts的情况和不应用mts的情况的方式来描述本公开,但是不限于这种表达。例如,是否应用mts可以意指是否使用除了预定义的特定变换类型(其可以被称为基本变换类型、默认变换类型等)之外的其它变换类型(或变换核)。如果应用了mts,则除了基本变换类型之外的其它变换类型(例如,多种变换类型当中的任一种变换类型或者两种或更多种变换类型的组合变换类型)可以被用于变换。此外,如果不应用mts,则基本变换类型可以被用于变换。在实施方式中,基本变换类型可以被配置(或限定)为dct2。
[0201]
作为示例,当应用指示是否向当前变换块应用mts的mts标志语法以及mts时,还可以从编码器向解码器独立地发送指示应用于当前变换块的变换类型的mts索引语法。作为另一示例,当应用指示是否向当前变换块应用mts的mts标志语法以及 mts时,还可以从编码器向解码器发送包括应用于当前变换块的所有变换类型的语法 (例如,mts索引)。即,在后一示例中,指示应用于当前变换块(或单元)的变换类型的语法(或语法元素)可以在包括上述基本变换类型的所有变换类型组(或变换类型集)内被从编码器发送到解码器。
[0202]
因此,尽管有该表达,但是指示应用于当前变换块的变换类型的语法(mts索引) 可以包括关于是否应用mts的信息。换句话说,在后一示例中,可以仅发信号通知 mts索引,而不发信号通知mts标志,并且在这种情况下,可以理解dct2被包括在 mts中。然而,在本公开中,可以描述dct2的应用意指不应用mts。然而,相对于 mts的技术范围不限于对应的限定。
[0203]
图11是根据本公开的实施方式的基于mts执行解码的设备的框图。
[0204]
应用本公开的解码设备200可以包括序列参数获取单元1105、mts标志获取单元 1110、mts索引获取单元1115和变换核导出单元1120。
[0205]
序列参数获取单元1105可以获取sps_mts_intra_enabled_flag或 sps_mts_inter_enabled_flag。这里,sps_mts_intra_enabled_flag指示帧内编码单元的残差编码语法中是否存在cu_mts_flag,并且sps_mts_inter_enabled_flag指示帧间编码单元的残差编码语法中是否存在cu_mts_flag。参照图10的描述可以被应用于特定示例。
[0206]
mts标志获取单元1110可以基于sps_mts_intra_enabled_flag或 sps_mts_inter_enabled_flag来获取cu_mts_flag。例如,当sps_mts_intra_enabled_flag=1或sps_mts_inter_enabled_flag=1时,mts标志获取单元 1110可以获取cu_mts_flag。这里,cu_mts_flag指示是否向亮度变换块的残差样本应用mts。参照图10的描述可以被应用于特定示例。
[0207]
mts索引获取单元1115可以基于cu_mts_flag获取mts_idx。例如,当 cu_mts_flag=1时,mts索引获取单元1115可以获取mts_idx。这里,mts_idx指示在水平方向和/或垂直方向上向当前变换块的亮度残差样本应用哪个变换核。参照图 10的描述可以被应用于特定示例。
[0208]
变换核导出单元1120可以导出与mts_idx对应的变换核。然后,解码设备200可以基于导出的变换核执行逆变换。
[0209]
引入了依赖模式的不可分二次变换(mdnsst)。为了保持低复杂度,mdnsst 在一次变换后仅被应用于低频系数。另外,主要应用于低频系数的不可分变换可以被称为lfnst(低频不可分变换)。如果变换系数块的宽度(w)和高度(h)二者等于或大于8,则向变换系数块的8
×
8左上区域应用8
×
8不可分二次变换。如果宽度或高度小于8,则应用4
×
4不可分二次变换,并且可以对变换系数块的左上min(8,w)
×
min(8, h)上执行4
×
4不可分二次变换。这里,min(a,b)是输出a和b之间的较小值的函数。另外,w
×
h是块大小,w表示宽度并且h表示高度。
[0210]
对于块大小4
×
4和8
×
8,可以总共存在35
×
3个不可分二次变换。这里,35是帧内预测模式所指定的变换集的数目并且3是针对每种预测模式的nsst候选的数目。可以在下表5中限定从帧内预测模式到变换集的映射。
[0211]
[表5]
[0212][0213]
为了指示变换集当中的变换核,可以对nsst索引(nsst idx)进行编码。当不应用nsst时,发信号通知等于0的nsst索引。
[0214]
图12和图13是示出了作为应用了本公开的实施方式的应用二次变换的编码/解码的流程图。
[0215]
在jem中,不向用变换跳跃模式编码的块应用二次变换(mdnsst)。当针对cu 发信号通知mdnsst索引并且mdnsst索引不等于零时,不针对cu中的用变换跳跃模式编码的分量的块使用mdnsst。在图12和图13中示出了包括系数编码和nsst索引编码的整体编码结构。cbf标志被编码以确定是否执行系数编码和nsst编码。在图12和图13中,cbf标志可以表示亮度块cbg标志(cbf_luma标志)或色度块cbf标志 (cbf_cb标志或cbf_cr标志)。当cbf标志为1时,对变换系数进行编码。
[0216]
参照图12,编码设备100检查cbf是否为1(s1205)。如果cbf为0,则编码设备 100不执行变换系数编码和nsst索引编码。如果cbf为1,则编码设备100对变换系数执行编码(s1210)。此后,编码设备100确定是否执行nsst索引编码(s1215)并且执行nsst索引编码(s1220)。当不应用nsst索引编码时,编码设备100可以在不应用nsst的情况下结束变换过程并且执行后续步骤(例如,量化)。
[0217]
参照图13,解码设备200检查cbf是否为1(s1305)。如果cbf为0,则解码设备 200不执行变换系数解码和nsst索引解码。如果cbf为1,则解码设备200对变换系数执行解码(s1310)。此后,解码设备200确定是否执行nsst索引编码(s1315)并且解析nsst索引(s1320)。
[0218]
可以向8
×
8或4
×
4左上区域应用而非向已经应用了一次变换的整个块(在hevc的情况下的tu)应用nsst。例如,当块大小为8
×
8或更大时,可以应用8
×
8nsst,而当块大小小于8
×
8时,可以应用4
×
4nsst。另外,当应用8
×
8nsst时,每个4
×
4块可以应用4
×
4nsst。可以根据上述变换集配置确定8
×
8nsst和4
×
4nsst二者,并且8
×
8 nsst可以具有64个输入数据和64个输出数据,并且4
×
4nsst可以具有16个输入和16 个输出,因为它们是不可分变换。
[0219]
图14和图15示出了应用本公开的实施方式,图14是用于描述吉文斯旋转的示图,并且图15示出了由吉文斯旋转层和置换构成的4
×
4nsst中的一轮的配置。
[0220]8×
8nsst和4
×
4nsst二者可以被配置为吉文斯旋转的分层组合。与一个吉文斯旋转对应的矩阵被表示为式1,并且矩阵乘积被表示为图14。
[0221]
[式1]
[0222][0223]
在图14中,可以如式2表示地计算根据吉文斯旋转输出的tm和tn。
[0224]
[式2]
[0225]
tm=xmcosθ-xnsinθ
[0226]
tn=xmsinθ xncosθ
[0227]
由于如图14中所示吉文斯旋转使两个数据旋转,因此需要32或8次吉文斯旋转来处理64(在8
×
8nsst的情况下)或16(在4
×
4nsst的情况下)个数据。因此,一组32或8次吉文斯旋转可以形成吉文斯旋转层。如图15中所示,通过置换(混排),一个吉文斯旋转层的输出数据被作为下一个吉文斯旋转层的输入数据进行发送。如图15 中所示置换的模式是被规则定义的,并且在4
×
3nsst的情况下,四个吉文斯旋转层和对应的置换形成一轮。4
×
4nsst
被执行两轮,而8
×
8nsst被执行四轮。尽管不同的轮次使用相同的置换模式,但是所应用的吉文斯旋转角度是不同的。因此,需要存储构成每次置换的所有吉文斯旋转的角度数据。
[0228]
作为最后一步,最后对通过吉文斯旋转层输出的数据再执行一次置换,并且针对每次置换分别存储关于对应置换的信息。在正向nsst的末尾执行对应置换,并且最初在逆nsst中应用对应逆置换。
[0229]
逆nsst逆向地执行吉文斯旋转层和应用于正向nsst的置换,并且通过针对每个吉文斯旋转角度取负值来执行旋转。
[0230]
rst(简化二次变换)
[0231]
图16示出了作为应用本公开的实施方式的rst的操作。
[0232]
当表示变换的正交矩阵为n
×
n时,简化变换(rt)仅留下n个变换基向量中的r 个(r《n)。可以用式3定义相对于生成变换系数的正向rt的矩阵。
[0233]
[式3]
[0234][0235]
由于相对于逆rt的矩阵是正向rt矩阵的转置矩阵,因此如图16的(a)和图16 的(b)中所示,图示了正向rt和逆rt的应用。
[0236]
应用于已经应用了一次变换的变换系数块的8
×
8左上块的rt可以被称为8
×
8 rst。在数学表达式3中r被设置为16时,正向8
×
8rst具有16
×
64矩阵的形式并且逆 8
×
8rst具有64
×
16矩阵的形式。另外,可以向8
×
8rst应用如表5中所示的变换集配置。即,可以根据如表5中所示的帧内预测模式基于变换集来确定8
×
8rst。由于根据帧内预测模式,一个变换集由两个或三个变换构成,因此可以选择包括不应用二次变换的情况的四个变换中的最大值的变换(一个变换可以与各向异性矩阵对应)。当索引0、1、2和3被指派给这四个变换时,可以通过发信号通知与每个变换系数块的 nsst索引对应的语法元素来指定要应用的变换。例如,索引9可以被指派给各向异性矩阵,即,不应用二次变换的情况。因此,通过nsst索引,针对8
×
8左上块,可以根据jem nsst指定8
×
8nsst并且可以根据rst配置指定8
×
8rst。
[0237]
图17是示出了作为应用本公开的实施方式的以反向扫描顺序从第六十四系数至第十七系数执行反向扫描的过程的示图。
[0238]
当应用由数学表达式3表示的8
×
8rst时,生成16个有效变换系数,因此构成8
×
8 区域的64个输入数据减少为16个输出数据,并且根据二维区域的角度,仅四分之一区域被填充有效变换系数。因此,通过应用正向8
×
8rst获得的16个输出数据填充图17 的左上区域。
[0239]
在图17中,4
×
4左上区域成为填充有效变换系数的所关注区域(roi),而其余区域是空的。空区域可以被填充有作为默认值的0。如果在除了图17的roi之外的区域中发现了非零有效变换系数,则尚未明确应用8
×
8rst,因此对于对应的nsst索引,可以省略对应的编码。另一方面,如果在除了图17的roi之外的区域中未发现非零有效变换系数(应用了8
×
8rst或者除了roi之外的区域被填充有0),则可以对nsst索引进行编码,因为可以应用8
×
8rst。这种有条件nsst索引编码需要检查非零变换系数的存在与否,并因此能够在残差编码过程之后被执行。
[0240]
图18例示了作为应用本公开的实施方式的使用单变换指示符进行的编码的示例性流程图。
[0241]
在本公开的实施方式中,引入了单变换指示符(sti)。当启用sti(sti编码==1) 时,可以应用单个变换,而不是依次使用两个变换(一次变换和二次变换)。这里,单个变换可以是任何类型的变换。例如,单个变换可以是可分变换或不可分变换。单个变换可以是从不可分变换逼近的变换。当已经启用了sti时,可以发信号通知单个变换索引(图18中的st_idx)。这里,单个变换索引可以指示可用变换候选当中的要应用的变换。
[0242]
参照图18,编码设备100确定cbf是否为1(s1805)。当cbf为1时,编码设备100 确定是否应用sti编码(s1810)。当应用sti编码时,编码设备100对sti索引sti_idx 进行编码(s1845)并且对变换系数执行编码(s1850)。当不应用sti编码时,编码设备100对指示是否以cu级别应用emt(或mts)的标志emt_cu_flag进行编码 (s1815)。此后,编码设备100对变换系数执行编码(s1820)。然后,编码设备100 确定是否向变换单元(tu)应用emt(s1825)。当向ut应用emt时,编码设备100 对应用于tu的一次变换索引emt_tu idx进行编码(s1830)。随后,编码设备100确定是否应用nsst(s1835)。当应用nsst时,编码设备100对指示要应用的nsst的索引nsst_idx进行编码(s1840)。
[0243]
在示例中,如果满足/启用单个变换编码条件(例如,sti_coding==1),则可以隐式地导出而非发信号通知单个变换索引st_idx。可以基于块大小和帧内预测模式隐式地确定st_idx。这里,st_idx可以指示应用于当前变换块的变换(或变换核)。
[0244]
如果满足以下条件中的一个或更多个(sti_coding==1),则可以启用sti。
[0245]
1)块大小与诸如4或8这样的预定值对应。
[0246]
2)块宽度==块高度(正方形块)
[0247]
3)帧内预测模式是诸如dc模式和平面模式这样的预定模式中的一种。
[0248]
在另一示例中,可以发信号通知sti编码标志,以便指示是否应用了单个变换。可以基于sti编码值和cbf来发信号通知sti编码标志。例如,当cbf为1并且启用sti 编码时,可以发信号通知sti编码标志。此外,可以考虑块大小、块形状(正方形块或非正方形块)或帧内预测模式来有条件地发信号通知sti编码标志。
[0249]
为了使用在系数编码期间获取的信息,可以在系数编码之后确定st_idx。在示例中,可以基于块大小、帧内预测模式和非零系数的数目来隐式地确定st_idx。在另一示例中,可以基于块大小、块形状、帧内预测模式和/或非零系数的数目来有条件地对st_idx进行编码/解码。在另一示例中,根据非零系数的分布(即,非零系数的位置),可以省略st_idx信令。具体地,当在除4
×
4左上区域之外的区域中发现非零系数时,可以省略st_idx信令。
[0250]
图19例示了作为应用本公开的实施方式的使用联合变换指示符(uti)进行的编码的示例性流程图。
[0251]
在本公开的实施方式中,引入了联合变换指示符。uti包括一次变换指示符和二次变换指示符。
[0252]
参照图19,编码设备100确定cbf是否为1(s1905)。当cbf为1时,编码设备100 确定是否应用uti编码(s1910)。当应用uti编码时,编码设备100对uti索引uti_idx 进行编码
(s1945)并且对变换系数执行编码(s1950)。当不应用uti编码时,编码设备100对指示是否以cu级别应用emt(或mts)的标志emt_cu_flag进行编码 (s1915)。此后,编码设备100对变换系数执行编码(s1920)。然后,编码设备100 确定是否向变换单元(tu)应用emt(s1925)。当向ut应用emt时,编码设备100 对应用于tu的一次变换索引emt_tu idx进行编码(s1930)。随后,编码设备100确定是否应用nsst(s1935)。当应用nsst时,编码设备100对指示要应用的nsst的索引nsst_idx进行编码(s1940)。
[0253]
可以针对每个预定单元(ctu或cu)对uti进行编码。
[0254]
uti编码模式可以取决于以下条件。
[0255]
1)块大小
[0256]
2)块形状
[0257]
3)帧内预测模式
[0258]
预先定义了如何从uti导出/提取核心变换索引。预先定义了如何从uti导出/提取二次变换索引。
[0259]
可以可选地使用针对uti的语法结构。uti可以取决于cu(tu)大小。例如,较小的cu(tu)可能具有较窄范围中的uti索引。在示例中,如果满足预定义的条件 (例如,块大小小于预定义的阈值),则uti可以仅指示核心变换索引。
[0260]
[表6]
[0261]
uti-索引二值化(flc)核心变换idx二次变换idx0000000010000101200010023000110340010010500101116001101270011113............311111153
[0262]
在另一示例中,当未指示使用二次变换时(例如,二次变换索引==0或二次变换是已经预定的),uti索引可以被视为核心变换索引。以相同的方式,当核心变换索引被视为已知时,uti索引可以被视为二次变换索引。具体地,考虑帧内预测模式和块大小,可以使用预定核心变换。
[0263]
图20a和图20b例示了作为应用本公开的实施方式的使用uti进行的编码的两个示例性流程图。
[0264]
在另一示例中,变换编码结构可以使用uti索引编码,如图20a和图20b中所示。这里,uti索引可以比系数编码更早地或者比系数编码更晚地被编码。
[0265]
参照图20a的流程图,编码设备100检查cbf是否为1(s2005)。当cbf为1时,编码设备100对uti索引uti_idx进行编码(s2010)并且对变换系数执行编码(s2015)。
[0266]
参照图20b的流程图,编码设备100检查cbf是否为1(s2055)。当cbf为1时,编码设
备100对变换系数执行编码(s2060)并且对uti索引uti_idx进行编码(s2065)。
[0267]
在本公开的另一实施方式中,引入了用于变换指示符的数据隐藏和隐式编码方法。这里,变换指示符可以包括st_idx、uti_idx、emt_cu_flag、emt_tu_flag、 nsst_idx以及可以被用于指示变换核的任何种类的变换相关索引。可以不发信号通知以上提到的变换指示符,但是可以在系数编码过程中插入对应的信息(可以在系数编码过程中提取该信息)。系数编码过程可以包括以下部分。
[0268]-last_position_x,last_position_y
[0269]-group flag
[0270]-significance map
[0271]-greather_than_1flag
[0272]-greather_than_2flag
[0273]-remaining level coding
[0274]-sign coding
[0275]
例如,可以在以上提到的系数编码过程中的一个或更多个中插入变换指示符信息。为了插入变换指示符信息,可以共同考虑以下内容。
[0276]
sing编码的模式
[0277]
其余级别的绝对值
[0278]
greather_than_1标志的数目
[0279]
last_position_x的值和last_position_y的值
[0280]
可以有条件地考虑以上提到的数据隐藏方法。例如,数据隐藏方法可以取决于非零系数的数目。
[0281]
在另一示例中,nsst_idx和emt_idx可能是依赖的。例如,当emt_cu_flag等于0(或1)时,nsst_idx可以不为零。在这种情况下,可以发信号通知nsst_idx-1 而非nsst_idx。
[0282]
在本公开的另一实施方式中,引入了基于帧内预测模式的nsst变换集映射,如下表7中所示。尽管以下将nsst描述为不可分变换的示例,但是另一已知术语(例如, lfnst)可以被用于不可分变换。例如,nsst集和nsst索引可以分别被lfnst集和 lfnst索引替换。此外,本说明书中描述的rst也可以被作为使用应用于变换块的至少一个区域(4
×
4或8
×
8左上区域或者8
×
8块中的除了4
×
4右下区域之外的区域)的正方形不可分变换矩阵中的输入长度减小和/或输出长度减小的非正方形变换矩阵的不可分变换(例如,lfnst)的示例的lfnst替换。
[0283]
[表7]
[0284][0285]
如表8中所示,nsst集的编号可以被从0至3重新布置。
[0286]
[表8]
[0287][0288]
在nsst变换集中,仅使用了四个变换集(而非35个),因此可以减少所需的存储空
间。
[0289]
另外,可以如下地使用每个变换集的各种数目的变换核。
[0290]
情况a:针对每个变换集使用两个可用的变换核,使得nsst索引范围为从0至2。例如,当nsst索引为0时,可以不应用二次变换(基于解码器的逆二次变换)。当nsst 索引为1或2时,可以应用二次变换。变换集可以包括索引1或2可以被映射到的两个变换核。
[0291]
[表9]
[0292][0293]
参照表9,两个变换核被用于不可分变换(nsst或lfnst)集0至3中的每一个。
[0294]
情况b:针对变换集0使用两个可用的变换核,而针对其它变换集使用一个可用的变换核。变换集0(dc和平面)的可用nsst索引为0至2。然而,其它模式(变换集1、2和3)的nsst索引为0至1。
[0295]
[表10]
[0296][0297]
参照表10,针对与索引0对应的不可分变换(nsst)集设置两个不可分变换核,并且针对与索引1、2和3对应的不可分变换(nsst)集中的每一个设置一个不可分变换核。
[0298]
情况c:每个变换集使用一个变换核,并且nsst索引范围为0至1。
[0299]
[表11]
[0300][0301]
图21是示出了作为应用本公开的实施方式的用于执行变换的编码的示例性流程图。
[0302]
编码设备100对残差块执行一次变换(s2105)。一次变换可以被称为核心变换。作为实施方式,编码设备100可以通过使用以上提到的mts执行一次变换。另外,编码设备100可以将指示mts候选当中的特定mts的mts索引发送到解码设备200。这里,可以基于当前块的帧内预测模式来配置mts候选。
[0303]
编码设备100确定是否应用二次变换(s2110)。例如,编码设备100可以基于一次变换后的残差块的变换系数来确定是否应用二次变换。例如,二次变换可以是nsst 或rst。
[0304]
编码设备100确定二次变换(s2115)。这里,编码设备100可以根据帧内预测模式基于nsst(或rst)变换集来确定二次变换。
[0305]
例如,在步骤s2115之前,编码设备100可以基于当前块的大小来确定将应用二次变换的区域。
[0306]
编码设备100执行在步骤s2115中确定的二次变换(s2120)。
[0307]
图22是示出了作为应用本公开的实施方式的用于执行变换的解码的示例性流程图。
[0308]
解码设备200确定是否应用逆二次变换(s2205)。例如,逆二次变换可以是nsst 或rst。例如,解码设备200可以基于从编码设备100接收的二次变换标志来确定是否应用逆二次变换。
[0309]
解码设备200确定逆二次变换(s2210)。这里,解码设备200可以基于根据以上提到的帧内预测模式指定的nsst(或rst)变换集来确定应用于当前块的逆二次变换。
[0310]
另外,例如,在步骤s2210之前,解码设备200可以基于当前块的大小来确定将应用逆二次变换的区域。
[0311]
解码设备200使用在步骤s2210中确定的逆二次变换对反量化后的残差块执行逆二次变换(s2215)。
[0312]
解码设备对逆二次变换后的残差块执行逆一次变换(s2220)。逆一次变换可以被称为逆核心变换。在实施方式中,解码设备200可以使用以上提到的mts执行逆一次变换。另外,作为示例,在步骤s2220之前,解码设备200可以确定是否向当前块应用 mts。在这种情况下,图22的解码流程图还可以包括确定是否应用mts的步骤。
[0313]
例如,当向当前块应用mts(即,cu_mts_flag=1)时,解码设备200可以基于当前块的帧内预测模式来配置mts候选。在这种情况下,图22的解码流程图还可以包括配置mts候选的步骤。另外,解码设备200可以使用指示出所配置的mts候选当中的特定mts的mtx_idx来确定应用于当前块的逆一次变换。
[0314]
图23是作为应用本公开的实施方式的编码设备100中的变换单元120的详细框图。
[0315]
应用本公开的实施方式的编码设备100可以包括一次变换单元2310、二次变换应用确定单元2320、二次变换确定单元2330和二次变换单元2340。
[0316]
一次变换单元2310可以对残差块执行一次变换。一次变换可以被称为核心变换。作为实施方式,一次变换单元2310可以使用以上提到的mts执行一次变换。另外,一次变换单元2310可以将指示mts候选当中的特定mts的mts索引发送到解码设备 200。这里,可以基于当前块的帧内预测模式来配置mts候选。
[0317]
二次变换应用确定单元2320可以确定是否应用二次变换。例如,二次变换应用确定单元2320可以基于一次变换后的残差块的变换系数来确定是否应用二次变换。例如,二次变换可以是nsst或rst。
[0318]
二次变换确定单元2330确定二次变换。这里,二次变换确定单元2330可以基于根据如上所述的帧内预测模式指定的nsst(或rst)变换集来确定二次变换。
[0319]
例如,二次变换确定单元2330可以基于当前块的大小来确定将应用二次变换的区域。
[0320]
二次变换单元2340可以执行所确定的二次变换。
[0321]
图24是作为应用本公开的实施方式的解码设备200中的逆变换单元230的详细框图。
[0322]
应用本公开的解码设备200包括逆二次变换应用确定单元2410、逆二次变换确定单元2420、逆二次变换单元2430和逆一次变换单元2440。
[0323]
逆二次变换应用确定单元2410可以确定是否应用逆二次变换。例如,逆二次变换可以是nsst或rst。例如,逆二次变换应用确定单元2410可以基于从编码设备100接收的二次变换标志来确定是否应用逆二次变换。
[0324]
逆二次变换确定单元2420可以确定逆二次变换。这里,逆二次变换确定单元2420 可以基于根据帧内预测模式指定的nsst(或rst)变换集来确定应用于当前块的逆二次变换。
[0325]
另外,例如,逆二次变换确定单元2420可以基于当前块的大小来确定将应用逆二次变换的区域。
[0326]
逆二次变换单元2430可以使用所确定的逆二次变换来对反量化后的残差块执行逆二次变换。
[0327]
逆一次变换单元2440可以对逆二次变换后的残差块执行逆一次变换。在实施方式中,逆一次变换单元2440可以使用以上提到的mts执行逆一次变换。另外,作为示例,逆一次变换单元2440可以确定是否向当前块应用mts。
[0328]
例如,当向当前块应用mts(即,cu_mts_flag=1)时,逆一次变换单元2440可以基于当前块的帧内预测模式来配置mts候选。另外,逆一次变换单元2440可以使用指示所配置的mts候选当中的特定mts的mtx_idx来确定应用于当前块的逆一次变换。
[0329]
图25是作为应用本公开的实施方式的对视频信号进行处理的流程图。图25的流程图的过程可以由解码设备200或逆变换单元230执行。
[0330]
首先,解码设备200可以基于不可分变换索引以及当前块的宽度和高度来确定是否向当前块应用逆不可分变换。例如,如果不可分变换索引不为0并且当前块的宽度和高度等于或大于4,则解码设备200可以确定应用了不可分变换。如果不可分变换索引为0或者当前块的宽度或高度小于4,则解码设备200可以省略逆不可分变换并执行逆一次变换。
[0331]
在步骤s2505中,解码设备200确定指示基于当前块的帧内预测模式预定义的不可分变换集当中的用于当前块的不可分变换的不可分变换集的不可分变换集索引。可以设置不可分变换集索引,使得其被分配给根据帧内预测模式的范围配置的四个变换集中的每一个,如表7或表8中所示。即,不可分变换集索引在帧内预测模式为0和1时可以被确定为第一索引值,在帧内预测模式为2至12或56至66时被确定为第二索引值,在帧内预测模式为13至23或45至55时被确定为第三索引值,并且在帧内预测模式为24 至44时被确定为第四索引值,如表7或表8中所示。
[0332]
这里,预定义的不可分变换集中的每一个可以包括两个变换核,如表9中所示。此外,预定义的不可分变换集中的每一个可以包括一个或两个变换核,如表10或表11 中所示。
[0333]
在步骤s2510中,解码设备200将不可分变换集索引所指示的不可分变换集中所包括的变换核当中的针对当前块的不可分变换索引所指示的变换核确定为不可分变换矩阵。例如,可以针对每个不可分变换集索引值配置两个不可分变换核,并且解码设备200可以基
于与不可分变换集索引对应的两个变换矩阵核之中的不可分变换索引所指示的变换核来确定不可分变换矩阵。
[0334]
在步骤s2515中,解码设备200向基于当前块的宽度和高度确定的当前块的左上区域应用不可分变换矩阵。例如,如果当前块的宽度和高度二者等于或大于8,则可以向当前块的8
×
8左上区域应用不可分变换,并且如果当前块的宽度或高度小于8,则可以向当前块的4
×
4区域应用不可分变换。响应于将应用不可分变换的区域,不可分变换的大小也可以被设置为8
×
8或4
×
4。
[0335]
此外,解码设备200可以向已经应用了不可分变换的当前块应用水平变换和垂直变换。这里,可以基于mts索引确定水平变换和垂直变换,以便选择应用于当前块的预测模式和变换矩阵。
[0336]
下文中,描述了组合并应用一次变换和二次变换的方法。即,本公开的实施方式提出了高效地设计在一次变换和二次变换中使用的变换的方法。在这种情形下,可以应用图1至图25中例示的方法,并且省略冗余描述。
[0337]
如上所述,一次变换表示基于编码器首先应用于残差块的变换。如果应用了二次变换,则编码器可以对一次变换后的残差块执行二次变换。如果应用了二次变换,则可以基于解码器在一次逆变换之前执行二次逆变换。解码器可以对二次逆变换后的变换系数块执行一次逆变换,以导出残差块。
[0338]
另外,如上所述,不可分变换可以被用作二次变换,并且为了保持低复杂度,可以仅向左上特定区域的低频率的系数应用二次变换。应用于低频的这些系数的二次变换可以被称为不可分二次变换(nsst)、低频不可分变换(lfnst)或简化二次变换 (rst)。一次变换可以被称为核心变换。
[0339]
在本公开的实施方式中,一次变换中使用的一次变换候选和二次变换中使用的二次变换核可以被预定义为各种组合。在本公开中,一次变换中使用的一次变换候选可以被称为mts候选,但是不限于该名称。例如,一次变换候选可以是分别应用于水平方向和垂直方向的变换核(或变换类型)的组合,并且变换核可以是dct2、dst7 和/或dct8中的一个。换句话说,一次变换候选可以是dct2、dst7和/或dct8的至少一个组合。用详细的示例给出了以下描述。
[0340]-组合a
[0341]
在组合a中,如下表12中例示的,可以根据帧内预测模式来定义一次变换候选和二次变换核。
[0342]
[表12]
[0343][0344]
参照上表12,作为示例(情况1),如果帧内预测模式具有方向性,则可以使用两个一次变换候选,而如果帧内预测模式没有方向性(例如,dc模式、平面模式),则可以使用四个一次变换候选。在这种情形下,不顾及帧内预测模式的方向性如何,二次变换候选可以包括两个变换核。即,如上所述,可以根据帧内预测模式来预定义多个二次变换核集,并且多个预定义的二次变换核集中的每一个可以包括两个变换核。
[0345]
另外,作为示例(情况2),如果帧内预测模式具有方向性,则可以使用两个一次变换候选,而如果帧内预测模式没有方向性,则可以使用四个一次变换候选。在这种情况下,如果帧内预测模式具有方向性,则二次变换候选可以包括一个变换核,而如果帧内预测模式没有方向性,则二次变换候选可以包括两个变换核。
[0346]
另外,作为示例(情况3),如果帧内预测模式具有方向性,则可以使用两个一次变换候选,而如果帧内预测模式没有方向性,则可以使用四个一次变换候选。在这种情形下,不顾及帧内预测模式的方向性如何,二次变换候选可以包括一个变换核。
[0347]-组合b
[0348]
在组合b中,如下表13中例示的,可以根据帧内预测模式来定义一次变换候选和二次变换核。
[0349]
[表13]
[0350][0351]
参照上表13,作为示例(情况1),可以不顾及帧内预测模式的方向性而使用三个一次变换候选。在这种情形下,不顾及帧内预测模式的方向性如何,二次变换候选可以包括两个变换核。即,如上所述,可以根据帧内预测模式来预定义多个二次变换核集,并且多个预定义的二次变换核集中的每一个可以包括两个变换核。
[0352]
另外,作为示例(情况2),可以不顾及帧内预测模式的方向性而使用三个一次变换候选。在这种情况下,如果帧内预测模式具有方向性,则二次变换候选可以包括一个变换核,而如果帧内预测模式没有方向性,则二次变换候选可以包括两个变换核。
[0353]
另外,作为示例(情况3),可以不顾及帧内预测模式的方向性而使用三个一次变换候选。在这种情形下,不顾及帧内预测模式的方向性如何,二次变换候选可以包括一个变换核。
[0354]-组合c
[0355]
在组合c中,如下表14中例示的,可以根据帧内预测模式来定义一次变换候选和二次变换核。
[0356]
[表14]
[0357][0358]
参照上表14,作为示例(情况1),如果帧内预测模式具有方向性,则可以使用两个一次变换候选,而如果帧内预测模式没有方向性(例如,dc模式、平面模式),则可以使用三个一次变换候选。在这种情形下,不顾及帧内预测模式的方向性如何,二次变换候选可以包括两个变换核。即,如上所述,可以根据帧内预测模式来预定义多个二次变换核集,并且多个预定义的二次变换核集中的每一个可以包括两个变换核。
[0359]
另外,作为示例(情况2),如果帧内预测模式具有方向性,则可以使用两个一次变换候选,而如果帧内预测模式没有方向性,则可以使用三个一次变换候选。在这种情况下,如果帧内预测模式具有方向性,则二次变换候选可以包括一个变换核,而如果帧内预测模式没有方向性,则二次变换候选可以包括两个变换核。
[0360]
另外,作为示例(情况3),如果帧内预测模式具有方向性,则可以使用两个一次变换候选,而如果帧内预测模式没有方向性,则可以使用三个一次变换候选。在这种情形下,不顾及帧内预测模式的方向性如何,二次变换候选可以包括一个变换核。
[0361]
给出的以上描述侧重于使用多个一次变换候选的情况。举例来说,下面描述了在使用固定的一次变换候选的情况下一次变换与二次变换的组合。
[0362]-组合d
[0363]
在组合d中,如下表15中例示的,可以根据帧内预测模式来定义一次变换候选和二次变换核。
[0364]
[表15]
[0365][0366]
参照上表15,作为实施方式,可以不顾及帧内预测模式而固定地使用一个一次变换候选。例如,固定的一次变换候选可以是dct2、dst7和/或dct8的至少一个组合。
[0367]
作为示例(情况1),可以不顾及帧内预测模式而固定地使用一个一次变换候选。在这种情形下,不顾及帧内预测模式的方向性如何,二次变换候选可以包括两个变换核。即,如上所述,可以根据帧内预测模式来预定义多个二次变换核集,并且多个预定义的二次变换核集中的每一个可以包括两个变换核。
[0368]
另外,作为示例(情况2),可以不顾及帧内预测模式而固定地使用一个一次变换候选。在这种情况下,如果帧内预测模式具有方向性,则二次变换候选可以包括一个变换核,而如果帧内预测模式没有方向性,则二次变换候选可以包括两个变换核。
[0369]
另外,作为示例(情况3),可以不顾及帧内预测模式而固定地使用一个一次变换候选。在这种情形下,不顾及帧内预测模式的方向性如何,二次变换候选可以包括一个变换核。
[0370]-组合e
[0371]
在组合e中,如下表16中例示的,可以根据帧内预测模式来定义一次变换候选和二次变换核。
[0372]
[表16]
[0373][0374][0375]
参照上表16,只要应用dct2作为一次变换,就可以定义二次变换。换句话说,如果不应用mts(即,如果应用dct2作为一次变换),则可以应用二次变换。如上图 10中例示的,按分为应用mts的情况和不应用mts的情况的方式来描述本公开,但是不限于这种表达。例如,是否应用mts可以意指是否使用除了预定义的特定变换类型 (其可以被称为基本变换
类型、默认变换类型等)之外的其它变换类型(或变换核)。如果应用了mts,则除了基本变换类型之外的其它变换类型(例如,多个变换类型当中的任一种变换类型或者两种或更多种变换类型的组合变换类型)可以被用于变换。此外,如果不应用mts,则基本变换类型可以被用于变换。在实施方式中,基本变换类型可以被配置(或限定)为dct2。
[0376]
作为示例(情况1),当dct2被应用于一次变换时,可以应用二次变换。在这种情形下,不顾及帧内预测模式的方向性如何,二次变换候选可以包括两个变换核。即,如上所述,可以根据帧内预测模式来预定义多个二次变换核集,并且多个预定义的二次变换核集中的每一个可以包括两个变换核。
[0377]
另外,作为示例(情况2),当dct2被应用于一次变换时,可以应用二次变换。在这种情况下,如果帧内预测模式具有方向性,则二次变换候选可以包括一个变换核,而如果帧内预测模式没有方向性,则二次变换候选可以包括两个变换核。
[0378]
另外,作为示例(情况3),当dct2被应用于一次变换时,可以应用二次变换。在这种情形下,不顾及帧内预测模式的方向性如何,二次变换候选可以包括一个变换核。
[0379]
图26是例示了根据应用本公开的实施方式的对视频信号进行变换的方法的流程图。
[0380]
参照图26,为了便于解释,基于解码器描述了本公开,但是本公开不限于此。根据本公开的实施方式的用于视频信号的变换方法甚至可以基本上等同地应用于编码器。图26中例示的流程图可以由解码设备200或逆变换单元230执行。
[0381]
在s2601中,解码设备200对指示应用于当前块的一次变换的一次变换核的第一语法元素进行解析。
[0382]
在s2602中,解码设备200基于第一语法元素来确定是否能够对当前块应用二次变换。
[0383]
如果能够对当前块应用二次变换,则在s2603中,解码设备200对指示应用于当前块的二次变换的二次变换核的第二语法元素进行解析。
[0384]
在s2604中,解码设备200通过使用第二语法元素所指示的二次变换核对当前块的左上特定区域执行二次逆变换来导出二次逆变换后的块。
[0385]
在s2605中,解码设备200通过使用第一语法元素所指示的一次变换核对二次逆变换后的块执行一次逆变换来导出当前块的残差块。
[0386]
如上所述,如果第一语法元素指示预定义的第一变换核,则可以通过确定能够对当前块应用二次变换来执行步骤s2602。在这种情形下,第一变换核可以被限定为 dct2。
[0387]
另外,如上所述,解码设备200可以基于当前块的帧内预测模式来确定预定义的二次变换核集当中的用于当前块的二次变换的二次变换核集。第二语法元素可以指示所确定的二次变换核集中的应用于当前块的二次变换的二次变换核。
[0388]
另外,如上所述,预定义的二次变换核集中的每一个可以包括两个变换核。
[0389]
在本公开的实施方式中,将描述其中使用多重变换集(mts)的语法结构的示例。
[0390]
例如,下表17示出了序列参数集的语法结构的示例。
[0391]
[表17]
[0392]
seq_parameter_set_rbsp(){描述符sps_seq_parameter_set_idue(v)
chroma_format_idcue(v)if(chroma_format_idc==3) scparatc_colour_planc_flagu(1)pic_width_in_luma_samplesue(v)pic_height_in_luma_samplesue(v)bit_depth_luma_minus8uc(v)bit_depth_chroma_minus8ue(v)qtbtt_dual_trcc_intra_flague(v)log2_ctu_size_minus2ue(v)log2_min_qt_size_intra_slices_minus2ue(v)log2_min_qt_size_inter_slices_minus2ue(v)max_mtt_hierarchy_depth_inter_slicesue(v)max_mtt_hierarchy_depth_intra_slicesue(v)sps_cclm_enabled_flague(1)sps_mts_intra_enabled_flague(1)sps_mts_intcr_cnablcd_flague(1)rbsp_trailing_bits() } [0393]
参照图17,可以通过序列参数集语法来发信号通知是否能够使用根据本公开的实施方式的mts。这里,sps_mts_intra_enabled_flag指示是否相对于帧内编码单元以较低级别语法(例如,残差编码语法或变换单元语法)存在mts标志或mts索引。另外,sps_mts_inter_enabled_flag指示是否相对于帧间编码单元以较低级别语法存在mts 标志或mts索引。
[0394]
作为另一示例,下表18示出了变换单元语法结构的示例。
[0395]
[表18]
[0396]
[0397]
参照表18,cu_mts_flag指示是否向亮度变换块的残差样本应用mts。例如,如果cu_mts_flag=0,则不向亮度变换块的残差样本应用mts,而如果cu_mts_flag=1,则向亮度变换块的残差样本应用mts。
[0398]
如上所述,在本公开中基于mts标志分别描述了应用mts的情况和不应用mts 的情况,但是本公开不限于此。例如,是否应用mts可以与是否使用除了预定义的特定变换类型(其可以被称为基本变换类型、默认变换类型等)之外的变换类型(或变换核)的含义相同。如果应用了mts,则可以将除了默认变换类型之外的变换类型(例如,多种变换类型中的任一种或者其两种或更多种的组合)用于变换,并且如果不应用mts,则可以将默认变换类型用于变换。在实施方式中,默认变换类型可以被设置 (或限定)为dct2。
[0399]
作为示例,指示是否向当前变换块应用mts的mts标志语法和指示在应用mts 时应用于当前块的变换类型的mts索引语法可以被独立地从编码器发送到解码器。作为另一示例,包括是否向当前变换块应用mts和在应用mts时应用于当前块的变换类型二者的语法(例如,mts索引)可以被从编码器发送到解码器。即,在后一示例中,指示包括以上提到的默认变换类型的变换类型组(或变换类型集)中的应用于当前变换块(或单元)的变换类型的语法(或语法元素)可以被从编码器发送到解码器。
[0400]
因此,指示应用于当前变换块的变换类型的语法(mts索引)可以包括关于是否在不顾及其表示的情况下应用mts的信息。换句话说,尽管在后一示例中,因为可以仅发信号通知mts索引而不发信号通知mts标志,所以mts可以被视为包括dct2,但是应用dct2的情况可以在本公开中被描述为不应用mts的情况,并且相对于mts 的技术范围不限于所述限定。
[0401]
此外,作为另一示例,下表19示出了残差单元语法结构的示例。
[0402]
[表19]
[0403]
[0404]
[0405][0406][0407]
参照表19,可以通过残差语法来发信号通知transform_skip_flag和/或mts_idx
语法(或语法元素)。然而,这仅仅是示例,并且本公开不限于此。例如,可以通过变换单元语法来发信号通知transform_skip_flag和/或mts_idx语法。
[0408]
下面将描述能够被用于二次变换的以上提到的二次变换矩阵的具体实施方式。如上所述,二次变换可以被称为不可分二次变换(nsst)、低频不可分变换(lfnst) 或简化二次变换(rst)。
[0409]
如上所述,在本公开的实施方式中,四个变换集(或二次变换集)可以被用于提高应用二次变换时的存储效率。作为实施方式,编码器/解码器可以将索引0、1、2和 3分配给这四个变换集。
[0410]
此外,如上所述,每个变换集可以包括预定数目的变换核。作为实施方式,可以在编码器和解码器中预定义用于二次变换的四个变换集,并且每个变换集可以包括一个或两个变换矩阵(或变换类型或变换核)。
[0411]
下表20示出了适用于8
×
8区域的变换的示例。
[0412]
[表20]
[0413]
[0414]
[0415]
[0416]
[0417]
[0418]
[0419][0420]
表20示出了将变换矩阵系数与缩放值128相乘的情况。在表20中,阵列 g_ainsst8
×
8[4][2][16][64]中的第一个输入[4]表示变换集的数目(这里,可以通过索引0、1、2和3标识变换集),第二个输入[2]表示构成每个变换集的变换矩阵的数目,第三输入[16]和第四输入[64]表示16
×
64rst(简化二次变换)的行和列。
[0421]
尽管表20假定了变换集包括两个变换矩阵的情况,但是如果变换集包括一个变换矩阵,则其可以被配置为针对表20中的每个变换集以特定顺序使用变换矩阵。例如,当变换集包括一个变换矩阵时,编码器/解码器可以在表20中的每个变换集中使用预定的(即,第一或第二)变换矩阵。
[0422]
当应用表20的rst时,编码器/解码器可以被配置(限定或设置)为输出16个变换系
数,或者被配置为通过仅应用16
×
64矩阵的m
×
64部分来仅输出m个变换系数。例如,编码器/解码器可以被配置为使用仅从顶部起通过设置m=8的8
×
64矩阵输出仅8个变换系数。通过以这种方式应用简化二次变换,能够将计算量减少一半。作为实施方式,编码器/解码器可以将8
×
64矩阵应用于8
×
8变换单元(tu),以便减少计算量。
[0423]
下表21示出了适用于4
×
4区域的变换的示例。
[0424]
[表21]
[0425]
[0426]
[0427][0428]
表21示出了将变换矩阵系数与缩放值128相乘的情况。在表21中,阵列 g_ainsst4
×
4[4][2][16][16]中的第一个输入[4]表示变换集的数目(这里,可以通过索引0、1、2和3标识变换集),第二个输入[2]表示构成每个变换集的变换矩阵的数目,第三输入[16]和第四输入[16]表示16
×
64rst(简化二次变换)的行和列。
[0429]
尽管表21假定了变换集包括两个变换矩阵的情况,但是如果变换集包括一个变换矩阵,则其可以被配置为针对表21中的每个变换集以特定顺序使用变换矩阵。例如,当变换
集包括一个变换矩阵时,编码器/解码器可以在表21中的每个变换集中使用预定的(即,第一或第二)变换矩阵。
[0430]
当应用表21的rst时,编码器/解码器可以被配置(限定或设置)为输出16个变换系数,或者被配置为通过仅应用16
×
64矩阵的m
×
16部分来仅输出m个变换系数。例如,编码器/解码器可以被配置为使用从顶部起通过设置m=8的8
×
16矩阵来仅输出8个变换系数。通过以这种方式应用简化二次变换,能够将计算量减少一半。作为实施方式,编码器/解码器可以将8
×
64矩阵应用于8
×
8变换单元(tu),以便在最坏的情况下减少计算量。
[0431]
在实施方式中,表20和表21中示出的变换矩阵可以根据预定义的条件应用于4
×
4、 4
×
8和8
×
4左上区域(即,tu)或者仅应用于4
×
4左上区域。在4
×
8tu和8
×
4tu的情况下,编码器/解码器可以将其划分为两个4
×
4区域,并且将所指定的变换应用于每个划分的区域。如果二次变换被限定为仅应用于4
×
4区域,则可以仅应用(或使用)表 210中定义的变换。
[0432]
此外,尽管在表20和表21中假定缩放比例为128的情况下定义变换矩阵系数,但是本公开不限于此。例如,可以通过将表20和表21中的缩放值设置为256来限定变换矩阵系数,如表22和表23中所示。
[0433]
[表22]
[0434]
[0435]
[0436]
[0437]
[0438]
[0439]
[0440]
[0441]
[0442][0443]
[表23]
[0444]
[0445]
[0446][0447]
如上所述,在本公开的实施方式中,四个变换集(或二次变换集)可以被用于提高应用二次变换时的存储效率。作为实施方式,编码器/解码器可以将索引0、1、2和 3分配给这四个变换集。
[0448]
此外,如上所述,每个变换集可以包括预定数目的变换核。作为实施方式,可以在
编码器和解码器中预定义用于二次变换的四个变换集,并且每个变换集可以包括一个或两个变换矩阵(或变换类型或变换核)。
[0449]
下面将通过各种示例描述适用于二次变换的各种二次变换集和变换矩阵(或变换类型或变换核)。尽管可以详细地定义与表20至表23不同的各种变换矩阵,但是为了方便描述,在本实施方式中,将主要使用示例来描述非定向模式(例如,dc模式和平面模式)以及配置广义二次变换集的方法。
[0450]
首先,将详细地描述适用于4
×
4区域的二次变换的示例。在下面相对于能够被用于二次变换的二次变换集的示例当中,第一示例和第四示例中的变换矩阵能够被应用于其中每个变换集包括两个变换矩阵的实施方式。第二示例和第三示例中的变换矩阵能够被应用于其中每个变换集包括一个变换矩阵的实施方式。
[0451]
具体地,第一示例能够被应用于表15中描述的实施方式的以上提到的组合d和情况1,并且还能够被应用于表12中描述的实施方式的组合a和情况1、表13中描述的实施方式的组合b和情况1、表14中描述的实施方式的组合c和情况1或者表16中描述的实施方式的组合e和情况1。
[0452]
具体地,第二示例的变换阵列(即,变换集)可以被应用于表15中描述的实施方式的以上提到的组合d和情况3,并且还可以被应用于表12中描述的实施方式的组合a 和情况3、表13中描述的实施方式的组合b和情况3、表14中描述的实施方式的组合c 和情况3或者表16中描述的实施方式的组合e和情况3。
[0453]
尽管以上提到的组合a、b、c、d和e仅处理其中mts候选的数目为三个或更少的情况,但是在一次变换中可以针对所有帧内预测模式应用所有四个mts候选。即使当所有四个mts候选都被应用时,也可以使用下面的第一示例至第四示例,并且具体地,第四示例的变换阵列可能更适合于应用四个mts候选的情况。
[0454]
后续的第五示例至第七示例的变换阵列与应用了35个变换集的情况对应。在变换集被映射到帧内预测模式时可以应用它们,如表24中所示。
[0455]
[表24]
[0456]
帧内模式0123456789101112131415161718192021222324252627282930313233nsst集0123456789101112131415161718192021222324252627282930313233帧内模式343536373839404142434445464748495051525354555657585960616263646566 nsst集3433323130292827262524232221201918171615141312111098765432 [0457] 在表24中,nsst集索引表示变换集索引。即使当应用表24的映射方法时,也可以应用以上提到的组合a至e。即,可以如上述方法中一样将每个组合应用于第五示例至第八示例。
[0458]
第五示例和第八示例的变换阵列可以被应用于每个变换集由两个变换矩阵构成的实施方式,并且第六示例和第七示例的变换阵列可以被应用于每个变换集由一个变换矩阵构成的实施方式。
[0459]
具体地,第五示例可以被应用于表15中描述的实施方式的以上提到的组合d和情况1,并且还可以被应用于表12中描述的实施方式的组合a和情况1、表13中描述的实施方式
的组合b和情况1、表14中描述的实施方式的组合c和情况1或者表16中描述的实施方式的组合e和情况1。
[0460]
具体地,第六示例和第七示例的变换阵列(即,变换集)可以被应用于表15中描述的实施方式的以上提到的组合d和情况3,并且还可以被应用于表12中描述的实施方式的组合a和情况3、表13中描述的实施方式的组合b和情况3、表14中描述的实施方式的组合c和情况3或者表16中描述的实施方式的组合e和情况3。
[0461]
尽管以上提到的组合a、b、c、d和e仅处理其中mts候选的数目为三个或更少的情况,但是在一次变换中可以针对所有帧内预测模式应用所有四个mts候选。即使当所有四个mts候选都被应用时,也可以使用下面的第五示例至第八示例,并且具体地,第八示例的变换阵列可能更适合于应用四个mts候选的情况。
[0462]
下面的第一示例至第八示例的变换阵列当中的适用于4
×
4区域的变换示例对应于与缩放值128相乘的变换矩阵。以下示例的变换阵列通常可以被表示为 g_ainsst4x4[n1][n2][16][16]阵列。这里,n1表示变换集的数目。这里,n1为4或35,并且可以由索引0,1,

,n1-1标识。n2表示构成每个变换集的变换矩阵的数字(1或 2),并且[16][16]表示16
×
16变换矩阵。
[0463]
在下面的示例中,当变换集由一个变换构成时,特定顺序的变换矩阵可以被用于每个变换集。例如,当变换集包括一个变换矩阵时,编码器/解码器可以在每个变换集中使用预定义的(即,第一或第二)变换矩阵。
[0464]
为了减少最坏情况下的计算量,编码器/解码器可以向4
×
4tu应用8
×
16矩阵。在以下示例中适用于4
×
4区域的变换可以被应用于4
×
4tu、4
×
m tu和m
×
4tu(m》4),并且当其被应用于4
×
m tu和m
×
4tu时,tu可以被划分成4
×
4区域,并且可以向其应用每个指定变换,或者可以仅向4
×
8或8
×
4左上区域应用变换。此外,可以仅向4
×
4左上区域应用变换。
[0465]
在实施方式中,为了减少最坏情况下的计算量,可以应用以下内容。
[0466]
例如,相对于宽度为w和高度为h的块,当w》=8且h》=8时,编码器/解码器可以将适用于8
×
8区域的变换阵列(或变换矩阵或变换核)应用于该块的8
×
8左上区域 (例如,16
×
64矩阵)。如果w=8并且h=8,则编码器/解码器只能应用16
×
64矩阵中的 8
×
64部分。在这种情况下,二次变换的输入可以被作为8个变换系数生成,并且对应区域的其余系数可以被视为0。
[0467]
此外,例如,如果相对于具有宽度w和高度h的块,w和h中的一个小于8(即,其为4),则编码器/解码器可以应用适用于4
×
4区域的变换阵列。如果w=4并且h=4,则编码器/解码器只能应用16
×
16矩阵中的8
×
16部分。在这种情况下,二次变换的输入可以被作为8个变换系数生成,并且对应区域的其余系数可以被视为0。
[0468]
在实施方式中,如果(w,h)=(4,8)或(8,4),则编码器/解码器可以仅向4
×
4左上区域应用二次变换。当w或h大于8时,编码器/解码器仅向两个4
×
4左上块应用二次变换。即,编码器/解码器可以将最多4
×
8或8
×
4左上区域划分成两个4
×
4块,并且对其应用所指定的变换矩阵。
[0469]
第一示例
[0470]
第一示例可以被限定为下表25。可以定义四个变换集,并且每个变换集可以由两个变换矩阵构成。
[0471]
[表25]
[0472]
[0473][0474]
第二示例
[0475]
第二示例可以被限定为下表26。可以定义四个变换集,并且每个变换集可以由一个变换矩阵构成。
[0476]
[表26]
[0477][0478]
第三示例
[0479]
第三示例可以被限定为下表27。可以定义四个变换集,并且每个变换集可以由一个变换矩阵构成。
[0480]
[表27]
[0481][0482]
第四示例
[0483]
第四示例可以被限定为下表28。可以定义四个变换集,并且每个变换集可以由两个变换矩阵构成。
[0484]
[表28]
[0485]
[0486][0487]
第五示例
[0488]
第五示例可以被限定为下表29。可以定义35个变换集,并且每个变换集可以由两个变换矩阵构成。
[0489]
[表29]
[0490][0491]
第六示例
[0492]
第六示例可以被限定为下表30。可以定义35个变换集,并且每个变换集可以由一个变换矩阵构成。
[0493]
[表30]
[0494][0495]
第七示例
[0496]
第七示例可以被限定为下表31。可以定义35个变换集,并且每个变换集可以由一个变换矩阵构成。
[0497]
[表31]
[0498][0499]
第八示例
[0500]
第八示例可以被限定为下表32。可以定义35个变换集,并且每个变换集可以由两个变换矩阵构成。
[0501]
[表32]
[0502][0503][0504]
下文中,将描述适用于8
×
8区域的二次变换的示例。在针对可用于二次变换的二次变换集的以下示例当中,第九示例和第十示例中的变换矩阵可以被应用于每个变换集由两个变换矩阵构成的实施方式。第十示例和第十一示例中的变换矩阵可以被应用于每个变换集由一个变换矩阵构成的实施方式。
[0505]
具体地,第九示例可以被应用于表15中描述的实施方式的以上提到的组合d和情况1,并且还可以被应用于表12中描述的实施方式的组合a和情况1、表13中描述的实施方式的组合b和情况1、表14中描述的实施方式的组合c和情况1或者表16中描述的实施方式的组合e和情况1。
[0506]
具体地,第十示例的变换阵列(即,变换集)可以被应用于表15中描述的实施方式的以上提到的组合d和情况3,并且还可以被应用于表12中描述的实施方式的组合a 和情况3、表13中描述的实施方式的组合b和情况3、表14中描述的实施方式的组合c 和情况3或者表16中描述的实施方式的组合e和情况3。
[0507]
尽管以上提到的组合a、b、c、d和e仅处理其中mts候选的数目为三个或更少的情况,但是在一次变换中可以针对所有帧内预测模式应用所有四个mts候选。即使当所有四个mts候选都被应用时,也可以使用下面的第九示例至第十二示例,并且具体地,第十二示例的变换阵列可能更适合于应用四个mts候选的情况。
[0508]
后续的第十三示例至第十六示例的变换阵列对应于应用了35个变换集的情况。它们可以被应用于变换集被映射到相应的帧内预测模式的情况,如以上提到的表24中所示的。
[0509]
在表24中,nsst集索引表示变换集索引。即使当应用表24的映射方法时,也可以应用以上提到的组合a至e。即,可以如上述方法中一样将每个组合应用于第十三示例至第十六示例。
[0510]
第十三示例和第十六示例的变换阵列可以被应用于每个变换集由两个变换矩阵构成的实施方式,并且第十四示例和第十五示例的变换阵列可以被应用于每个变换集由一个变换矩阵构成的实施方式。
[0511]
具体地,第十三示例可以被应用于表15中描述的实施方式的以上提到的组合d和情况1,并且还可以被应用于表12中描述的实施方式的组合a和情况1、表13中描述的实施方式的组合b和情况1、表14中描述的实施方式的组合c和情况1或者表16中描述的实施方式的组合e和情况1。
[0512]
具体地,第十四示例和第十五示例的变换阵列(即,变换集)可以被应用于表15 中描述的实施方式的以上提到的组合d和情况3,并且还可以被应用于表12中描述的实施方式的组合a和情况3、表13中描述的实施方式的组合b和情况3、表14中描述的实施方式的组合c和情况3或者表16中描述的实施方式的组合e和情况3。
[0513]
尽管以上提到的组合a、b、c、d和e仅处理其中mts候选的数目为三个或更少的情况,但是在一次变换中可以针对所有帧内预测模式应用所有四个mts候选。即使当所有四个mts候选都被应用时,也可以使用下面的第十三示例至第十六示例,并且具体地,第八示例的变换阵列可能更适合于应用四个mts候选的情况。
[0514]
下面的第八示例至第十六示例的变换阵列当中的适用于8
×
8区域的变换示例对应于与缩放值128相乘的变换矩阵。以下示例的变换阵列通常可以被表示为 g_ainsst8x8[n1][n2][16][64]阵列。这里,n1表示变换集的数目。这里,n1为4或35,并且可以被用索引0,1,

,n1-1标识。n2表示构成每个变换集的变换矩阵的数字(1 或2),并且[16][64]表示16
×
64简化二次变换(rst)。
[0515]
在下面的示例中,当变换集由一个变换构成时,特定顺序的变换矩阵可以被用于
每个变换集。例如,当变换集包括一个变换矩阵时,编码器/解码器可以在每个变换集中使用预定义的(即,第一或第二)变换矩阵。
[0516]
尽管当应用rst时输出16个变换系数,但是仅m个变换系数可以被配置为当仅应用16
×
64矩阵中的m
×
64部分时才被输出。例如,能够通过以下步骤将计算量减少一半:将m设置为8,将仅从顶部起的8
×
64矩阵相乘以仅输出8个变换系数。
[0517]
第九示例
[0518]
第九示例可以被限定为下表33。可以定义四个变换集,并且每个变换集可以由两个变换矩阵构成。
[0519]
[表33]
[0520]
[0521]
[0522][0523]
第十示例
[0524]
第十示例可以被限定为下表34。可以定义四个变换集,并且每个变换集可以由一
个变换矩阵构成。
[0525]
[表34]
[0526]
[0527][0528]
第十一示例
[0529]
第十一示例可以被限定为下表35。可以定义四个变换集,并且每个变换集可以由一个变换矩阵构成。
[0530]
[表35]
[0531]
[0532][0533]
第十二示例
[0534]
第十二示例可以被限定为下表36。可以定义四个变换集,并且每个变换集可以由两个变换矩阵构成。
[0535]
[表36]
[0536]
[0537]
[0538][0539]
第十三示例
[0540]
第十三示例可以被限定为下表37。可以定义35个变换集,并且每个变换集可以由两个变换矩阵构成。
[0541]
[表37]
[0542]
[0543]
[0544][0545]
第十四示例
[0546]
第十四示例可以被限定为下表38。可以定义35个变换集,并且每个变换集可以由一个变换矩阵构成。
[0547]
[表38]
[0548][0549]
第十五示例
[0550]
第十五示例可以被限定为下表39。可以定义35个变换集,并且每个变换集可以由
一个变换矩阵构成。
[0551]
[表39]
[0552]
[0553][0554]
第十六示例
[0555]
第十六示例可以被限定为下表40。可以定义35个变换集,并且每个变换集可以由两个变换矩阵构成。
[0556]
[表40]
[0557]
[0558]
[0559][0560]
图27是示出了根据应用本公开的实施方式的对视频信号进行变换的方法的流程图。
[0561]
参照图27,尽管为了方便描述将描述侧重于解码器,但是本公开不限于此,并且根据本实施方式的对视频信号进行变换的方法可以等同地应用于编码器。图27的流程图可以由解码设备200或逆变换单元230执行。
[0562]
解码设备200基于当前块的帧内预测模式从预定义的二次变换集当中确定应用于当前块的二次变换集(s2701)。
[0563]
解码设备200获取指示所确定的二次变换集中的应用于当前块的二次变换矩阵的第一语法元素(s2702)。
[0564]
解码设备200通过使用第一语法元素所指定的二次变换矩阵对当前块的左上区域执行二次逆变换来导出二次逆变换后的块(s2703)。
[0565]
解码设备200通过使用当前块的一次变换矩阵对二次逆变换后的块执行一次逆变换来导出当前块的残差块(s2704)。
[0566]
如上所述,预定义的二次变换集中的每一个可以包括两个二次变换矩阵。
[0567]
如上所述,步骤s2704还可以包括基于当前块的宽度和高度来确定二次逆变换的输入长度和输出长度的步骤。如上所述,当当前块的高度和宽度中的每一个为4时,不可分变换的输入长度可以被确定为8并且其输出长度可以被确定为16。
[0568]
如上所述,解码设备200可以对指示应用于当前块的一次变换的一次变换矩阵的第二语法元素进行解析。另外,解码设备200可以基于第二语法元素确定是否可以对当前块应用二次变换。
[0569]
如上所述,当第二语法元素指示预定义的特定变换类型时,可以通过确定可以对当前块应用二次变换来执行确定是否可以应用二次变换的步骤。
[0570]
如上所述,预定义的特定变换类型可以是dct2。
[0571]
图28是作为应用本公开的实施方式的对视频信号进行处理的设备的示例性框图。图28中示出的视频信号处理设备可以对应于图1的编码设备或图2的解码设备。
[0572]
用于对视频信号进行处理的视频处理设备2800包括存储视频信号的存储器2820 以及与存储器组合并对视频信号进行处理的处理器2810。
[0573]
根据本公开的实施方式的处理器2810可以被配置为用于视频信号处理的至少一个处理电路,并且可以通过执行对视频信号进行编码或解码的命令来处理视频信号。即,处理器2810可以通过执行上述编码或解码方法对原始视频数据进行编码或者对编码后的视频信号进行解码。
[0574]
此外,应用本公开的处理方法可以以由计算机执行并且存储在计算机可读记录介质中的程序的形式制造。根据本公开的具有数据结构的多媒体数据也可以被存储在计算机可读记录介质中。计算机可读记录介质包括其中存储了计算机可读取的数据的所有类型的存储装置和分布式存储装置。计算机可读记录介质可以包括例如blueray盘 (bd)、通用串行总线(usb)、rom、prom、eeprom、ram、cd-rom、磁带、软盘和光学数据存储装置。此外,计算机可读记录介质包括以载波(例如,通过互联网进行传输)的形式实现的媒体。此外,通过编码方法生成的比特流可以被存储在计算机可读记录介质中,或者可以通过有线/无线通信网络传输。
[0575]
此外,本公开的实施方式可以根据程序代码被实现为计算机程序产品,并且程序代码可以根据本公开的实施方式在计算机中执行。程序代码可以被存储在计算机可读载体上。
[0576]
如上所述,本公开的实施方式可以在处理器、微处理器、控制器或芯片上实现和执行。例如,每幅图中示出的功能单元可以在计算机、处理器、微处理器、控制器或芯片上实现和执行。
[0577]
此外,应用本公开的解码器和编码器可以被包括在多媒体广播发送/接收设备、移动通信终端、家庭影院视频系统、数字影院视频系统、监视相机、视频通信设备、诸如视频通信这样的实时通信设备、移动流传输装置、存储介质、摄像机、视频点播 (vod)服务提供设备、顶置视频(ott视频)视频系统、互联网流传输服务提供设备、3d视频系统、视频电话视频系统、医疗视频系统等中,并且可以被用于处理视频信号或数据信号。例如,ott视频系统可以包括游戏控制台、蓝光播放器、互联网访问tv、家庭影院系统、智能电话、平板pc、数字录像机(dvr)等。
[0578]
此外,应用本公开的处理方法可以以由计算机执行并且被存储在计算机可读记录介质中的程序的形式制造。根据本公开的具有数据结构的多媒体数据也可以被存储在计算机可读记录介质中。计算机可读记录介质包括其中存储了计算机可读取的数据的所有类型的存储装置和分布式存储装置。计算机可读记录介质可以包括例如blueray 盘(bd)、通用串行总线(usb)、rom、prom、eeprom、ram、cd-rom、磁带、软盘和光学数据存储装置。此外,计算机可读记录介质包括以载波(例如,通过互联网进行传输)的形式实现的媒体。此外,通过编码方法生成的比特流可以被存储在计算机可读记录介质中,或者可以通过有线/无线通
信网络传输。
[0579]
此外,本公开的实施方式可以根据程序代码被实现为计算机程序产品,并且程序代码可以根据本公开的实施方式在计算机中执行。程序代码可以被存储在计算机可读载体上。
[0580]
上述实施方式是本公开的元件和特征的组合。除非另外提到,否则这些元件或特征可以被视为是选择性的。每个元件或特征可以在不与其它元件或特征组合的情况下实践。另外,本公开的实施方式可以通过组合元件和/或特征的部分来构造。可以重新布置本公开的实施方式中描述的操作顺序。任一个实施方式的一些构造可以被包括在另一个实施方式中并且可以被另一个实施方式的对应构造来取代。本领域的技术人员显而易见的是,在所附的权利要求中没有彼此明确引用的权利要求可以按组合形式作为示例性实施方式存在,或者在提交申请之后通过后续修改被包括作为新的权利要求。
[0581]
本公开的实现方式可以通过各种手段(例如,硬件、固件、软件或其组合)来实现。在硬件配置中,根据本公开的实现方式的方法可以由一个或更多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理器件(dspd)、可编程逻辑器件 (pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器等来实现。
[0582]
在固件或软件配置中,本公开的实现方式可以以模块、程序、函数等形式来实现。软件代码可以被存储在存储单元中并且由处理器来执行。存储器可以位于处理器的内部或外部,并且可以经由各种已知手段将数据发送到处理器和从处理器接收数据。
[0583]
本领域的技术人员将领会,在不脱离本公开的精神和基本特性的情况下,本公开可以以与本文中阐述的方式不同的其它特定方式来执行。因此,以上实施方式因此将被理解为在所有方面都是例示性的,而非限制性的。本公开的范围应该由所附的权利要求及其法律等同物而非以上描述限定,并且落入所附的权利要求的含义和等同范围内的所有改变都应当被包含在本文中。
[0584]
工业实用性
[0585]
虽然已经出于例示目的描述了本公开的示例性方面,但是本领域的技术人员应该领会的是,可以在不脱离本公开的基本特性的情况下进行各种修改、添加和替代。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献