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

基于变换的图像编码方法及装置与流程

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


1.本公开涉及一种图像编码技术,并且更具体地,涉及图像编码系统中的用于基于变换对图像进行编码的方法和设备。


背景技术:

2.如今,在各个领域中对诸如4k、8k或更高的超高清(uhd)图像/视频这样的高分辨率和高质量图像/视频的需求已经不断增长。随着图像/视频数据变成更高分辨率和更高质量,与传统图像数据相比,所发送的信息量或比特量增加。因此,当使用诸如传统有线/无线宽带线这样的介质来发送图像数据或者使用现有存储介质来存储图像/视频数据时,其传输成本和存储成本增加。
3.另外,如今,对于诸如虚拟现实(vr)和人工现实(ar)内容或全息图等这样的沉浸式媒体的兴趣和需求正在增加,并且对具有与诸如游戏图像这样的真实图像不同的图像特征的图像/视频的广播正在增加。
4.因此,需要有效地压缩并发送或存储以及再现具有如上所述的各种特征的高分辨率和高质量图像/视频的信息的高效图像/视频压缩技术。


技术实现要素:

5.技术目的
6.本公开的一技术方面在于提供用于增加图像编码效率的方法和设备。
7.本公开的另一技术方面在于提供用于增加变换索引编码的效率的方法和设备。
8.本公开的又一技术方面在于提供使用mts的图像编码方法和设备。
9.本公开的又一技术方面在于提供一种用于对图像进行编码以用于将mts应用于子分区变换块的方法和设备。
10.技术方案
11.根据本说明书的实施方式,本文提供了一种由解码设备执行的图像解码方法。该方法可以包括推导残差样本,其中,推导残差样本的步骤可以包括:当当前块被划分成子分区块时,基于子分区块的水平长度或垂直长度推导用于应用于子分区块的逆一次变换的变换核;以及基于变换核从变换系数推导残差样本。
12.可以基于子分区块的水平长度或垂直长度是否等于或大于4且小于或等于16来推导变换核,并且可以基于指示子分区块内的应用变换核且其中存在有效变换系数的区域的非清零块的大小来推导残差样本。
13.如果子分区块的水平长度和垂直长度中的每一者等于或大于4且小于或等于16,则变换核可以被推导为dst-7,并且非清零块的宽度和高度可以各自设置为16。
14.如果子分区块的水平长度和垂直长度中的每一者不满足等于或大于4且小于或等于16的条件,则变换核可以被推导为dct-2,并且非清零块的宽度和高度可以各自设置为32或更小。
15.可以不发信号通知指示当前块的变换核的mts索引。
16.推导残差样本的步骤还可以包括:基于应用于当前块的lfnst索引不等于0,通过将lfnst应用于子分区块来推导修改的变换系数,其中,变换核可以被推导为dct-2,并且其中,非清零块的宽度和高度可以各自设置为32或更小。
17.根据本说明书的实施方式,本文提供了一种由编码设备执行的图像编码方法。该方法可以包括通过将一次变换应用于残差样本来推导变换系数,其中,当当前块被划分成子分区块时,推导变换系数的步骤可以包括:基于子分区块的水平长度或垂直长度来推导应用于子分区块的一次变换的变换核;以及基于变换核从残差样本推导变换系数。
18.根据本公开的又一实施方式,可以提供一种数字存储介质,该数字存储介质存储包括根据由编码设备执行的图像编码方法生成的比特流和编码的图像信息的图像数据。
19.根据本公开的又一实施方式,可以提供一种数字存储介质,该数字存储介质存储包括编码的图像信息和比特流的图像数据以使解码设备执行图像解码方法。
20.技术效果
21.根据本公开,可以增加整体图像/视频压缩效率。
22.根据本公开,可以增加变换索引编码的效率。
23.根据本公开,可以增加整体图像/视频压缩效率。
24.根据本公开,可以增加变换索引编码的效率。
25.本公开的技术方面可以提供使用mts的图像编码方法和设备。
26.本公开的技术方面可以提供用于对图像进行编码以用于将mts应用于子分区变换块的方法和设备。
27.可以通过本公开的具体示例获得的效果不限于上面列出的效果。例如,可以存在相关领域的普通技术人员可以理解或从本公开推导出的各种技术效果。因此,本公开的特定效果不限于本公开中明确描述的那些,并且可以包括可以根据本公开的技术特征理解或推导出的各种效果。
附图说明
28.图1示意性地例示了可应用本公开的视频/图像编码系统的示例。
29.图2是示意性地例示可应用本公开的视频/图像编码设备的配置的图。
30.图3是示意性地例示可应用本公开的视频/图像解码设备的配置的图。
31.图4是应用本说明书的内容流系统的结构图。
32.图5示意性地例示了根据本说明书的实施方式的多变换技术。
33.图6示出了65个预测方向的示例性帧内定向模式。
34.图7是例示根据本说明书的实施方式的rst的图。
35.图8是例示根据示例的将正向一次变换的输出数据布置成一维向量的顺序的图。
36.图9是例示根据示例的将正向二次变换的输出数据布置成二维块的顺序的图。
37.图10是例示根据本说明书的实施方式的广角帧内预测模式的图。
38.图11是例示lfnst被应用于的块形状的图。
39.图12是例示根据示例的正向lfnst的输出数据的布置的图。
40.图13示出了根据示例的正向lfnst的输出数据的数量被限制为最大值16的图。
41.图14是例示根据示例的应用4
×
4 lfnst的块中的清零的图。
42.图15是例示根据示例的应用8
×
8 lfnst的块中的清零的图。
43.图16是例示根据另一示例的应用8
×
8 lfnst的块中的清零的图。
44.图17例示了编码块被划分成的子块的示例。
45.图18例示了编码块被划分成的子块的另一示例。
46.图19是例示根据示例的m
×
2(m
×
1)块和2
×
m(1
×
m)块之间的对称性的图。
47.图20是例示根据示例的对2
×
m块进行转置的示例的图。
48.图21例示了根据示例的8
×
2或2
×
8区域的扫描顺序。
49.图22是示出根据示例的根据16
×
36 lfnst核的36个系数的布置的图。
50.图23是例示根据本说明书的实施方式的视频解码设备的操作的流程图。
51.图24是例示根据本说明书的实施方式的视频编码设备的操作的流程图。
具体实施方式
52.尽管本公开可能易于进行各种修改并且包括各种实施方式,但是其具体实施方式已在附图中通过示例的方式示出,并且现在将对其进行详细描述。然而,这并不旨在将本公开限制于本文公开的具体实施方式。本文中使用的术语只是出于描述特定实施方式的目的,并不旨在限制本公开的技术思路。除非上下文另外清楚指示,否则单数形式可以包括复数形式。诸如“包括”和“具有”之类的术语旨在指示存在以下描述中使用的特征、数字、步骤、操作、元件、组件或其组合,因此不应被理解为预先排除了存在或添加一个或更多个不同特征、数字、步骤、操作、元件、组件或其组合的可能性。
53.此外,为了方便描述彼此不同的特性功能,独立地例示了本文中描述的附图上的各组件,然而,并不意指各组件由单独的硬件或软件来实现。例如,可以组合这些组件中的任何两个或更多个以形成单个组件,并且任何单个组件可以被划分成多个组件。其中组件被组合和/或划分的实施方式将属于本公开的专利权的范围,只要它们不脱离本公开的实质即可。
54.在下文中,将参照附图更详细地说明本公开的优选实施方式。另外,在附图中,相同的附图标号用于相同的组件,并且将省略对相同组件的重复描述。
55.本文档涉及视频/图像编码。例如,本文档中公开的方法/示例可以涉及vvc(通用视频编码)标准(itu-t rec.h.266)、vvc之后的下一代视频/图像编码标准、或其它视频编码相关标准(例如,hevc(高效视频编码)标准(itu-t rec.h.265)、evc(基本视频编码)标准、avs2标准等)。
56.在本文档中,可以提供与视频/图像编码相关的各种实施方式,并且除非相反地指定,否则这些实施方式可以彼此组合并执行。
57.在本文档中,视频可以是指一段时间内一系列图像的集合。通常,图片是指表示特定时间区域的图像的单元,而条带/贴片是构成图片的一部分的单元。条带/贴片可以包括一个或更多个编码树单元(ctu)。一幅图片可以由一个或更多个条带/贴片组成。一幅图片可以由一个或多个贴片组组成。一个贴片组可以包括一个或更多个贴片。
58.像素或图元(pel)可以是指构成一幅图片(或图像)的最小单元。另外,“样本”可用作与像素相对应的术语。样本通常可以表示像素或像素值,并且可以仅表示亮度分量的像
素/像素值或仅表示色度分量的像素/像素值。另选地,样本可以意指空间域中的像素值,或者当该像素值被变换为频域时,其可以意指频域中的变换系数。
59.单元可以表示图像处理的基本单位。单元可以包括特定区域和与该区域相关的信息中的至少一个。一个单元可以包括一个亮度块和两个色度(例如,cb、cr)块。根据情况,可以将单元和诸如块、区域等这样的术语互换地使用。在通常情况下,m
×
n块可以包括由m列和n行组成的样本(或样本阵列)或变换系数的集(或阵列)。
60.在本文档中,术语“/”和“,”应该被解释为指示“和/或”。例如,表述“a/b”可以意指“a和/或b”。另外,“a、b”可以意指“a和/或b”。另外,“a/b/c”可以意指“a、b和/或c中的至少一个”。另外,“a/b/c”可以意指“a、b和/或c中的至少一个”。
61.另外,在该文档中,术语“或”应该被解释为指示“和/或”。例如,表述“a或b”可以包括1)仅a、2)仅b和/或3)a和b二者。换句话说,本文档中的术语“或”应该被解释为指示“附加地或另选地”。
62.在本公开中,“a和b中的至少一个”可以意指“仅a”、“仅b”或“a和b两者”。此外,在本公开中,表述“a或b中的至少一个”或者“a和/或b中的至少一个”可以被解释为“a和b中的至少一个”。
63.此外,在本公开中,“a、b和c中的至少一个”可以意指“仅a”、“仅b”、“仅c”或“a、b和c的任何组合”。此外,“a、b或c中的至少一个”或“a、b和/或c中的至少一个”可以意指“a、b和c中的至少一个”。
64.另外,本公开中使用的括号可以表示“例如”。具体地,当指示为“预测(帧内预测)”时,可以意指“帧内预测”被提出为“预测”的示例。换句话说,本公开的“预测”不限于“帧内预测”,并且“帧内预测”是作为“预测”的示例而提出的。另外,当指示为“预测(即,帧内预测)”时,这也可以意指“帧内预测”被提出为“预测”的示例。
65.在本公开中的一个附图中单独描述的技术特征可以单独地实现或可以同时实现。
66.图1示意性地例示了可应用本公开的视频/图像编码系统的示例。
67.参照图1,视频/图像编码系统可以包括第一装置(源装置)和第二装置(接收装置)。源装置可以经由数字存储介质或网络以文件或流的形式将编码后的视频/图像信息或数据传递到接收装置。
68.源装置可以包括视频源、编码设备和发送器。接收装置可以包括接收器、解码设备和渲染器。编码设备可以被称为视频/图像编码设备,并且解码设备可以被称为视频/图像解码设备。发送器可以被包括在编码设备中。接收器可以被包括在解码设备中。渲染器可以包括显示器,并且显示器可以被配置为单独的装置或外部组件。
69.视频源可以通过捕获、合成或生成视频/图像的处理来获得视频/图像。视频源可以包括视频/图像捕获装置和/或视频/图像生成装置。视频/图像捕获装置可以包括例如一个或更多个相机、包括先前捕获的视频/图像的视频/图像档案等。视频/图像生成装置可以包括例如计算机、平板计算机和智能电话,并且可以(电子地)生成视频/图像。例如,可以通过计算机等生成虚拟视频/图像。在这种情况下,视频/图像捕获处理可以被生成相关数据的处理取代。
70.编码设备可以对输入视频/图像进行编码。编码设备可以执行诸如针对压缩和编码效率的预测、变换和量化这样的一系列过程。编码后的数据(编码后的视频/图像信息)可
以以比特流的形式输出。
71.发送器可以通过数字存储介质或网络以文件或流的形式将以比特流的形式输出的编码后的视频/图像信息或数据发送到接收装置的接收器。数字存储介质可以包括诸如usb、sd、cd、dvd、蓝光、hdd、ssd等这样的各种存储介质。发送器可以包括用于通过预定文件格式生成媒体文件的元件,并且可以包括用于通过广播/通信网络进行发送的元件。接收器可以接收/提取比特流,并且将接收/提取的比特流发送到解码设备。
72.解码设备可以通过执行与编码设备的操作对应的诸如解量化、逆变换、预测等这样的一系列过程来解码视频/图像。
73.渲染器可以渲染解码后的视频/图像。可以通过显示器显示渲染后的视频/图像。
74.图2是示意性地例示可应用本公开的视频/图像编码设备的配置的图。在下文中,所谓的视频编码设备可以包括图像编码设备。
75.参照图2,编码设备200可以包括图像划分器210、预测器220、残差处理器230、熵编码器240、加法器250、滤波器260和存储器270。预测器220可以包括帧间预测器221和帧内预测器222。残差处理器230可以包括变换器232、量化器233、解量化器234、逆变换器235。残差处理器230可以进一步包括减法器231。加法器250可以称为重构器或重构块生成器。根据实施方式,以上描述的图像划分器210、预测器220、残差处理器230、熵编码器240、加法器250和滤波器260可以由一个或更多个硬件组件(例如,编码器芯片组或处理器)构成。此外,存储器270可以包括解码图片缓冲器(dpb),并且可以由数字存储介质构成。硬件组件可以进一步包括作为内部/外部组件的存储器270。
76.图像划分器210可以将输入到编码设备200的输入图像(或图片或帧)划分为一个或更多个处理单元。作为一个示例,处理单元可以被称为编码单元(cu)。在这种情况下,从编码树单元(ctu)或最大编码单元(lcu)开始,可以根据四叉树二叉树三叉树(qtbttt)结构来递归地划分编码单元。例如,基于四叉树结构、二叉树结构和/或三叉树结构,一个编码单元可以被划分为深度较深的多个编码单元。在这种情况下,例如,可以首先应用四叉树结构,并且可以稍后应用二叉树结构和/或三叉树结构。另选地,可以首先应用二叉树结构。可以基于未进一步划分的最终编码单元来执行根据本公开的编码过程。在这种情况下,基于根据图像特性的编码效率,最大编码单元可以直接用作最终编码单元。另选地,可以根据需要将编码单元递归地划分为更深的深度的编码单元,由此可以将最佳大小的编码单元用作最终编码单元。这里,编码过程可以包括诸如预测、变换和重构之类的过程,其将在后面描述。作为另一示例,处理单元可以进一步包括预测单元(pu)或变换单元(tu)。在这种情况下,预测单元和变换单元可以与上述最终编码单元分开或划分开。预测单元可以是样本预测的单元,并且变换单元可以是用于推导变换系数的单元和/或用于从变换系数推导残差信号的单元。
77.根据情况,可以使用单元和诸如块、区域等之类的术语来代替彼此。在通常情况下,m
×
n块可以表示由m列和n行构成的样本或变换系数的集。样本通常可以表示像素或像素值,并且可以仅表示亮度分量的像素/像素值,或者仅表示色度分量的像素/像素值。样本可用作与一幅图片(或图像)的像素或图元(pel)相对应的术语。
78.减法器231从输入图像信号(原始块、原始样本阵列)中减去从预测器220输出的预测信号(预测块、预测样本阵列)以生成残差信号(残差块、残差样本阵列),并且所生成的残
差信号被发送到变换器232。预测器220可以对处理目标块(下文称为“当前块”)执行预测,并且可以生成包括当前块的预测样本的预测块。预测器220可以确定是以当前块或cu为基础应用帧内预测还是应用帧间预测。如稍后在每个预测模式的描述中所讨论的,预测器可以生成诸如预测模式信息之类的与预测有关的各种信息,并将所生成的信息发送到熵编码器240。关于预测的信息可以在熵编码器240中编码并以比特流的形式输出。
79.帧内预测器222可以通过参考当前图片中的样本来预测当前块。根据预测模式,参考样本可以位于当前块的附近或与当前块分开。在帧内预测中,预测模式可以包括多种非定向模式和多种定向模式。非定向模式可以包括例如dc模式和平面模式。根据预测方向的详细程度,定向模式可以包括例如33种定向预测模式或65种定向预测模式。然而,这仅仅是示例,并且根据设置,可以使用更多或更少的定向预测模式。帧内预测器222可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
80.帧间预测器221可以基于参照图片上的运动向量所指定的参考块(参考样本阵列)来推导针对当前块的预测块。此时,为了减少在帧间预测模式下发送的运动信息的量,可以基于邻近块与当前块之间的运动信息的相关性以块、子块或样本为基础来预测运动信息。运动信息可以包括运动向量和参照图片索引。运动信息还可以包括帧间预测方向(l0预测、l1预测、bi预测等)信息。在帧间预测的情况下,邻近块可以包括当前图片中存在的空间邻近块和参照图片中存在的时间邻近块。包括参考块的参照图片和包括时间邻近块的参照图片可以彼此相同或彼此不同。时间邻近块可以被称为并置参考块、并置cu(colcu)等,并且包括时间邻近块的参照图片可以被称为并置图片(colpic)。例如,帧间预测器221可以基于邻近块来配置运动信息候选列表,并且生成指示哪个候选被用于推导当前块的运动向量和/或参照图片索引的信息。可以基于各种预测模式来执行帧间预测。例如,在跳变模式和合并模式的情况下,帧间预测器221可以使用邻近块的运动信息作为当前块的运动信息。在跳变模式下,与合并模式不同,不能发送残差信号。在运动信息预测(运动向量预测、mvp)模式的情况下,邻近块的运动向量可以被用作运动向量预测符,并且可以通过发信号通知运动向量差来指示当前块的运动向量。
81.预测器220可以基于各种预测方法来生成预测信号。例如,预测器可以将帧内预测或帧间预测应用于对一个块的预测,并且也可以同时应用帧内预测和帧间预测。这可以被称为组合的帧间和帧内预测(ciip)。另外,预测器可以基于块内复制(ibc)预测模式或调色板模式,以便对块执行预测。ibc预测模式或调色板模式可以被用于诸如屏幕内容编码(scc)这样的游戏等的内容图像/视频编码。尽管ibc基本上在当前块中执行预测,但是其执行方式与帧间预测的相似之处在于,它推导当前块中的参考块。也就是说,ibc可以使用本公开中描述的帧间预测技术中的至少一种。
82.通过帧间预测器221和/或帧内预测器222生成的预测信号可以被用于生成重构信号或者生成残差信号。变换器232可以通过向残差信号应用变换技术来生成变换系数。例如,变换技术可以包括离散余弦变换(dct)、离散正弦变换(dst)、karhunen-lo
è
ve变换(klt)、基于图的变换(gbt)或有条件非线性变换(cnt)中的至少一种。这里,gbt意指当用曲线图表示像素之间的关系信息时从曲线图获得的变换。cnt是指基于使用所有先前重构的像素生成的预测信号而获得的变换。另外,变换处理可以被应用于大小相同的正方形像素块,或者可以应用于大小可变的块而非正方形的块。
83.量化器233可以对变换系数进行量化并且将它们发送到熵编码器240,并且熵编码器240可以对量化后的信号(关于量化变换系数的信息)进行编码并且输出比特流中的编码后的信号。关于量化变换系数的信息可以被称为残差信息。量化器233可以基于系数扫描顺序将块类型的量化变换系数重新布置成一维向量形式,并且基于一维向量形式的量化变换系数来生成关于量化变换系数的信息。熵编码器240可以执行诸如例如指数哥伦布(exponential golomb)、上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)等这样的各种编码方法。熵编码器240可以对除了量化变换系数(例如,语法元素的值等)之外的视频/图像重构所需的信息一起或分别进行编码。编码后的信息(例如,编码后的视频/图像信息)可以以比特流的形式在网络抽象层(nal)的单元基础上进行发送或存储。视频/图像信息还可以包括关于诸如适应参数集(aps)、图片参数集(pps)、序列参数集(sps)、视频参数集(vps)等这样的各种参数集的信息。另外,视频/图像信息还可以包括常规约束信息。在本公开中,从编码设备发送到/发信号通知给解码设备的信息和/或语法元素可以被包括在视频/图像信息中。视频/图像信息可以通过上述编码过程进行编码并且被包括在比特流中。可以通过网络传输比特流,或者将其存储在数字存储介质中。这里,网络可以包括广播网络、通信网络和/或类似物,并且数字存储介质可以包括诸如usb、sd、cd、dvd、蓝光、hdd、ssd等这样的各种存储介质。发送从熵编码器240输出的信号的发送器(未示出)或存储其的存储器(未示出)可以被配置为编码设备200的内部/外部元件,或者发送器可以被包括在熵编码器240中。
84.从量化器233输出的量化变换系数可以被用于生成预测信号。例如,通过利用解量化器234和逆变换器235向量化变换系数应用解量化和逆变换,可以重构残差信号(残差块或残差样本)。加法器155将重构后的残差信号与从帧间预测器221或帧内预测器222输出的预测信号相加,使得可以生成重构信号(重构图片、重构块、重构样本阵列)。当如在应用跳变模式的情况下一样没有针对处理目标块的残差时,可以将预测块用作重构块。加法器250可以被称为重构器或重构块生成器。所生成的重构信号可以被用于目标图片中的下一处理目标块的帧内预测,并且如随后描述的,可以被用于通过滤波进行的下一图片的帧间预测。
85.此外,在图片编码和/或重构处理中,可以应用具有色度缩放的亮度映射(lmcs)。
86.滤波器260可以通过向重构信号应用滤波来改善主观/客观视频质量。例如,滤波器260可以通过向重构图片应用各种滤波方法来生成修改后的重构图片,并且可以将修改后的重构图片存储在存储器270中,尤其是存储在存储器270的dpb中。各种滤波方法可以包括例如解块滤波、样本自适应偏移、自适应环形滤波器、双边滤波器等。如随后在对每种滤波方法的描述中所讨论的,滤波器260可以生成与滤波相关的各种信息,并且将所生成的信息发送到熵编码器240。关于滤波的信息可以在熵编码器240中被编码并且以比特流的形式被输出。
87.已发送到存储器270的修改后的重构图片可以被用作帧间预测器221中的参照图片。据此,编码设备可以避免在应用帧间预测时编码设备100和解码设备中的预测失配,并且还可以提高编码效率。
88.存储器270dpb可以存储修改后的重构图片,以便使用它作为帧间预测器221中的参照图片。存储器270可以存储从中已推导(或编码了)运动信息的当前图片中的块的运动信息和/或已重构的图片中的块的运动信息。所存储的运动信息可以被发送到帧间预测器
221,以被用作邻近块的运动信息或时间邻近块的运动信息。存储器270可以存储当前图片中的重构块的重构样本,并且将它们发送到帧内预测器222。
89.图3是示意性地例示可应用本公开的视频/图像解码设备的配置的图。
90.参照图3,视频解码设备300可以包括熵解码器310、残差处理器320、预测器330、加法器340、滤波器350和存储器360。预测器330可以包括帧间预测器331和帧内预测器332。残差处理器320可以包括解量化器321和逆变换器321。根据实施方式,上面已描述的熵解码器310、残差处理器320、预测器330、加法器340和滤波器350可以由一个或更多个硬件组件(例如,解码器芯片组或处理器)构成。另外,存储器360可以包括解码图片缓冲器(dpb),并且可以由数字存储介质构成。硬件组件还可以包括存储器360作为内部/外部组件。
91.当输入包括视频/图像信息的比特流时,解码设备300可以与据此已在图2的编码设备中处理视频/图像信息的处理对应地重构图像。例如,解码设备300可以基于与从比特流获得的与块分割相关的信息来推导单元/块。解码设备300可以通过使用在编码设备中应用的处理单元来执行解码。因此,解码的处理单元可以是例如编码单元,可以用编码树单元或最大编码单元顺着四叉树结构、二叉树结构和/或三叉树结构对其进行分割。可以用编码单元推导一个或更多个变换单元。并且,可以通过再现器来再现通过解码设备300解码并输出的重构图像信号。
92.解码设备300可以以比特流的形式接收从图2的编码设备输出的信号,并且可以通过熵解码器310对接收到的信号进行解码。例如,熵解码器310可以对比特流进行解析,以推导图像重构(或图片重构)所需的信息(例如,视频/图像信息)。视频/图像信息还可以包括关于诸如自适应参数集(aps)、图片参数集(pps)、序列参数集(sps)、视频参数集(vps)等这样的各种参数集的信息。另外,视频/图像信息还可以包括常规约束信息。解码设备可以进一步基于关于参数集的信息和/或常规约束信息对图片进行解码。在本公开中,随后将描述的发信号通知/接收的信息和/或语法元素可以通过解码过程被解码并且从比特流中获得。例如,熵解码器310可以基于诸如指数哥伦布编码、cavlc、cabac等这样的编码方法对比特流中的信息进行解码,并且可以输出图像重构所需的语法元素的值和关于残差的变换系数的量化值。更具体地,cabac熵解码方法可以接收与比特流中的各语法元素对应的bin,使用解码目标语法元素信息以及邻近和解码目标块的解码信息或者在先前步骤中解码的符号/bin的信息来确定上下文模型,根据所确定的上下文模型来预测bin生成概率并且对bin执行算术解码以生成与每个语法元素值对应的符号。这里,cabac熵解码方法可以在确定上下文模型之后使用针对下一个符号/bin的上下文模型解码的符号/bin的信息来更新上下文模型。在熵解码器310中解码的信息当中的关于预测的信息可以被提供到预测器(帧间预测器332和帧内预测器331),并且在熵解码器310中已对其执行了熵解码的残差值(即,量化变换系数)和关联的参数信息可以被输入到残差处理器320。残差处理器320可以推导残差信号(残差块、残差样本、残差样本阵列)。另外,在熵解码器310中解码的信息当中的关于滤波的信息可以被提供到滤波器350。此外,接收从编码设备输出的信号的接收器(未示出)还可以将解码设备300构成为内部/外部元件,并且接收器可以是熵解码器310的组件。此外,根据本公开的解码设备可以被称为视频/图像/图片编码设备,并且解码设备可以被分为信息解码器(视频/图像/图片信息解码器)和样本解码器(视频/图像/图片样本解码器)。信息解码器可以包括熵解码器310,并且样本解码器可以包括解量化器321、逆变换器322、加法器
340、滤波器350、存储器360、帧间预测器332和帧内预测器331中的至少一个。
93.解量化器321可以通过对量化变换系数进行解量化来输出变换系数。解量化器321可以将量化变换系数重新布置为二维块的形式。在这种情况下,可以基于已在编码设备中执行的系数扫描的顺序来执行重新布置。解量化器321可以使用量化参数(例如,量化步长信息)对量化变换系数执行解量化,并且获得变换系数。
94.解量化器322通过对变换系数进行逆变换来获得残差信号(残差块、残差样本阵列)。
95.预测器可以对当前块执行预测,并且生成包括针对当前块的预测样本的预测块。预测器可以基于从熵解码器310输出的关于预测的信息来确定向当前块应用帧内预测还是帧间预测,并且具体地可以确定帧内/帧间预测模式。
96.预测器可以基于各种预测方法来生成预测信号。例如,预测器可以将帧内预测或帧间预测应用于对一个块的预测,并且也可以同时应用帧内预测和帧间预测。这可以被称为组合的帧间和帧内预测(ciip)。另外,预测器可以针对块的预测执行块内复制(ibc)。块内复制可以被用于诸如屏幕内容编码(scc)这样的游戏等的内容图像/视频编码。尽管ibc基本上在当前块中执行预测,但是其执行方式与帧间预测的相似之处在于,它推导当前块中的参考块。也就是说,ibc可以使用本公开中描述的帧间预测技术中的至少一种。
97.帧内预测器331可以通过参考当前图片中的样本来预测当前块。根据预测模式,参考样本可以位于当前块的附近或与当前块分开。在帧内预测中,预测模式可以包括多种非定向模式和多种定向模式。帧内预测器331可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
98.帧间预测器332可以基于参照图片上的运动向量所指定的参考块(参考样本阵列)来推导针对当前块的预测块。此时,为了减少在帧间预测模式下发送的运动信息的量,可以基于邻近块与当前块之间的运动信息的相关性以块、子块或样本为基础来预测运动信息。运动信息可以包括运动向量和参照图片索引。运动信息还可以包括帧间预测方向(l0预测、l1预测、bi预测等)信息。在帧间预测的情况下,邻近块可以包括当前图片中存在的空间邻近块和参照图片中存在的时间邻近块。例如,帧间预测器332可以基于邻近块来配置运动信息候选列表,并且基于接收到的候选选择信息来推导当前块的运动向量和/或参照图片索引。可以基于各种预测模式来执行帧间预测,并且关于预测的信息可以包括指示针对当前块的帧间预测的模式的信息。
99.加法器340可以通过将所获得的残差信号与从预测器330输出的预测信号(预测块、预测样本阵列)相加来生成重构信号(重构图片、重构块、重构样本阵列)。当如在应用跳变模式的情况下一样没有针对处理目标块的残差时,可以将预测块用作重构块。
100.加法器340可以被称为重构器或重构块生成器。所生成的重构信号可以被用于当前块中的下一处理目标块的帧内预测,并且如随后描述的,可以通过滤波来输出或者被用于下一图片的帧间预测。
101.此外,在图片解码处理中,可以应用具有色度缩放的亮度映射(lmcs)。
102.滤波器350可以通过向重构后的信号应用滤波来改善主观/客观视频质量。例如,滤波器350可以通过向重构图片应用各种滤波方法来生成修改后的重构图片,并且可以将修改后的重构图片发送到存储器360中,尤其是发送到存储器360的dpb中。各种滤波方法可
以包括例如解块滤波、样本自适应偏移、自适应环形滤波器、双边滤波器等。
103.已存储在存储器360的dpb中的(修改后的)重构图片可以被用作帧间预测器332中的参照图片。存储器360可以存储从中已推导(或解码了)运动信息的当前图片中的块的运动信息和/或已重构的图片中的块的运动信息。所存储的运动信息可以被发送到帧间预测器260,以被用作邻近块的运动信息或时间邻近块的运动信息。存储器360可以存储当前图片中的重构块的重构样本,并且将它们发送到帧内预测器331。
104.在本说明书中,在解码设备300的预测器330、解量化器321、逆变换器322和滤波器350中描述的示例可以分别类似地或对应地应用于编码设备200的预测器220、解量化器234、逆变换器235和滤波器260。
105.如上所述,执行预测,以便提高执行视频编码时的压缩效率。据此,可以生成包括针对作为编码目标块的当前块的预测样本的预测块。这里,预测块包括空间域(或像素域)中的预测样本。可以在编码设备和解码设备中相同地推导预测块,并且编码设备可以通过向解码设备发信号通知并非原始块本身的原始样本值而是关于原始块与预测块之间的残差的信息(残差信息)来提高图像编码效率。解码设备可以基于残差信息来推导包括残差样本的残差块,通过将残差块与预测块相加来生成包括重构样本的重构块,并且生成包括重构块的重构图片。
106.可以通过变换过程和量化过程来生成残差信息。例如,编码设备可以推导原始块与预测块之间的残差块,通过对残差块中所包括的残差样本(残差样本阵列)执行变换过程来推导变换系数,并且通过对变换系数执行量化过程来推导量化变换系数,使得它可以(通过比特流)向解码设备发信号通知关联的残差信息。这里,残差信息可以包括量化变换系数的值信息、位置信息、变换技术、变换核、量化参数等。解码设备可以基于残差信息来执行量化/解量化过程并且推导残差样本(或残差样本块)。解码设备可以基于预测块和残差块来生成重构块。编码设备可以通过对量化变换系数进行解量化/逆变换来推导残差块以便作为下一个图片的帧间预测的参考,并且可以基于此来生成重构图片。
107.图4例示了应用本公开的内容流系统的结构。
108.此外,应用本公开的内容流系统可以大致包括编码服务器、流服务器、web服务器、媒体存储装置、用户设备和多媒体输入装置。
109.编码服务器用于将从诸如智能电话、相机、摄像机等的多媒体输入装置输入的内容压缩成数字数据以生成比特流,并且向流服务器发送它。作为另一示例,在诸如智能电话、相机、摄像机等的多媒体输入装置直接生成比特流的情况下,可以省略编码服务器。可以通过应用本公开的编码方法或比特流生成方法来生成比特流。并且流服务器可以在发送或接收比特流的过程期间临时存储比特流。
110.流服务器基于用户的请求通过web服务器向用户装置发送多媒体数据,web服务器用作向用户通知存在什么服务的器具。当用户请求用户想要的服务时,web服务器将请求传送至流服务器,并且流服务器向用户发送多媒体数据。在此而言,内容流系统可以包括单独的控制服务器,并且在这种情况下,控制服务器用于控制内容流系统中的相应装置之间的命令/响应。
111.流服务器可以从媒体存储装置和/或编码服务器接收内容。例如,在从编码服务器接收内容的情况下,可以实时地接收内容。在这种情况下,为了平稳地提供流服务,流服务
器可以存储比特流达预定时间。
112.例如,用户装置可以包括移动电话、智能电话、膝上型计算机、数字广播终端、个人数字助理(pda)、便携式多媒体播放器(pmp)、导航仪、板式pc、平板pc、超级本、可穿戴装置(例如,手表型终端(智能手表)、眼镜型终端(智能眼镜)、头戴式显示器(hmd))、数字tv、台式计算机、数字标牌等。内容流系统中的各个服务器可以作为分布式服务器操作,并且在这种情况下,由各个服务器接收到的数据可以用分布式方式进行处理。
113.图5示意性地例示了根据本公开的实施方式的多变换技术。
114.参照图5,变换器可以对应于前述图2的编码设备中的变换器,并且逆变换器可以对应于前述图2的编码设备中的逆变换器、或者图3的解码设备中的逆变换器。
115.变换器可以通过基于残差块中的残差样本(残差样本阵列)执行一次变换来推导(一次)变换系数(s510)。该一次变换可以被称为核心变换。在本文中,一次变换可以基于多变换选择(mts),并且当将多变换用作一次变换时,可以将其称为多核心变换。
116.多核心变换可以表示附加地使用离散余弦变换(dct)类型2和离散正弦变换(dst)类型7、dct类型8和/或dst类型1进行变换的方法。也就是说,多核心变换可以表示基于从dct类型2、dst类型7、dct类型8和dst类型1当中选择的多个变换核将空间域的残差信号(或残差块)变换为频域的变换系数(或一次变换系数)的变换方法。在本文中,从变换器的视角来看一次变换系数可以称为临时变换系数。
117.换句话说,当应用常规变换方法时,可以通过基于dct类型2对残差信号(或残差块)应用从空间域到频率域的变换来生成变换系数。与此不同,当应用多核心变换时,可以通过基于dct类型2、dst类型7、dct类型8和/或dst类型1对残差信号(或残差块)应用从空间域到频率域的变换来生成变换系数(或一次变换系数)。在本文中,dct类型2、dst类型7、dct类型8和dst类型1可以被称为变换类型、变换核或变换核心。可以基于基函数来定义这些dct/dst变换类型。
118.当执行多核心变换时,可以从变换核当中选择用于目标块的垂直变换核和水平变换核,可以基于垂直变换核对目标块执行垂直变换,并且可以基于水平变换核对目标块执行水平变换。这里,水平变换可以指示对目标块的水平分量的变换,并且垂直变换可以指示对目标块的垂直分量的变换。可以基于包括残差块的目标(cu或子块)的预测模式和/或变换索引来适应性地确定垂直变换核/水平变换核。
119.此外,根据示例,如果通过应用mts来执行一次变换,则可以通过将特定基函数设置为预定值并组合要在垂直变换或水平变换中应用的基函数来设置变换核的映射关系。例如,当水平变换核表示为trtypehor,并且垂直方向变换核表示为trtypever时,可以将值为0的trtypehor或trtypever设置给dct2,将值为1的trtypehor或trtypever设置给dst7,并且将值为2的trtypehor或trtypever可以设置给dct8。
120.在这种情况下,mts索引信息可以被编码并且发信号通知到解码设备以指示多个变换核集中的任何一个。例如,mts索引0可以指示trtypehor和trtypever值均为0,mts索引1可以指示trtypehor和trtypever值均为1,mts索引2可以指示trtypehor值为2并且trtypever值为1,mts索引为3可以指示trtypehor值为1并且trtypever值为2,而mts索引4可以指示trtypehor和trtypever值均为2。
121.在一个示例中,根据mts索引信息的变换核集在下表中示出。
122.[表1]
[0123]
tu_mts_idx[x0][y0]01234trtypehor01212trtypever01122
[0124]
变换器可以基于(一次)变换系数执行二次变换以推导修改的(二次)变换系数(s520)。一次变换是从空间域到频域的变换,而二次变换是指使用(一次)变换系数之间存在的相关性,变换为更紧凑的表示。二次变换可以包括不可分离的变换。在这种情况下,二次变换可以称为不可分离的二次变换(nsst)或模式相关的不可分离的二次变换(mdnsst)。nsst可以表示基于不可分离的变换矩阵对通过一次变换推导出的(一次)变换系数进行二次变换以生成针对残差信号的修改的变换系数(或二次变换系数)的变换。这里,基于不可分离的变换矩阵,可以将变换一次应用于(一次)变换系数而无需将垂直变换和水平变换分离(或独立地应用水平/垂直变换)。换句话说,nsst不单独应用于垂直方向和水平方向上的(一次)变换系数,并且可以表示例如将二维信号(变换系数)通过特定的预定方向(例如,行优先方向或列优先方向)重新布置为一维信号并然后基于不可分离的变换矩阵生成修改的变换系数(或二次变换系数)的变换方法。例如,行优先顺序是针对m
×
n个块以第一行、第二行、...和第n行的顺序设置成排,而列优先顺序是针对m
×
n个块以第一列、第二列、...和第m列的顺序设置成排。nsst可以应用于配置有(一次)变换系数的块(在下文中,称为变换系数块)的左上区域。例如,当变换系数块的宽度w和高度h二者都为8或更大时,可以将8
×
8 nsst应用于变换系数块的左上8
×
8区域。此外,在变换系数块的宽度(w)和高度(h)二者都为4或更大的同时,当变换系数块的宽度(w)或高度(h)小于8时,4
×
4 nsst可以应用于变换系数块的左上min(8,w)
×
min(8,h)区域。然而,实施方式不限于此,例如,即使仅满足变换系数块的宽度w或高度h为4或更大的条件,也可以将4
×
4 nsst应用于变换系数块的左上端min(8,w)
×
min(8,h)区域。
[0125]
具体地,例如,如果使用4
×
4输入块,则不可分离的二次变换可以如下执行。
[0126]4×
4输入块x可以表示如下。
[0127]
[式1]
[0128][0129]
如果x以向量的形式表示,则向量可以如下表示。
[0130]
[式2]
[0131][0132]
在式2中,向量是通过根据行优先顺序重新布置式1的二维块x而获得的一维向量。
[0133]
在这种情况下,可以如下计算不可分离的二次变换。
[0134]
[式3]
[0135][0136]
在此式中,表示变换系数向量,而t表示16
×
16(不可分离的)变换矩阵。
[0137]
通过前述式3,可以推导16
×
1变换系数向量并且可以通过扫描顺序(水平、垂直和对角线等)将向量重新组织为4
×
4块。然而,上述计算是示例,并且超立方体-吉文斯变换(hygt)等也可以用于不可分离的二次变换的计算,以便降低不可分离的二次变换的计算复杂度。
[0138]
此外,在不可分离的二次变换中,可以将变换核(或变换核心、变换类型)选择为模式相关。在这种情况下,模式可以包括帧内预测模式和/或帧间预测模式。
[0139]
如上所述,可以基于以变换系数块的宽度(w)和高度(h)为基础确定的8
×
8变换或4
×
4变换来执行不可分离的二次变换。8
×
8变换是指当w和h二者都等于或大于8时可应用于变换系数块中包含的8
×
8区域的变换,并且8
×
8区域可以是变换系数块中的左上8
×
8区域。类似地,4
×
4变换是指当w和h二者都等于或大于4时可应用于变换系数块中包含的4
×
4区域的变换,并且4
×
4区域可以是变换系数块中的左上4
×
4区域。例如,8
×
8变换核矩阵可以是64
×
64/16
×
64矩阵,而4
×
4变换核矩阵可以是16
×
16/8
×
16矩阵。
[0140]
这里,为了选择模式相关的变换核,可以针对8
×
8变换和4
×
4变换二者配置用于不可分离的二次变换的每个变换集二个不可分离的二次变换核,并且可以存在四个变换集。也就是说,可以针对8
×
8变换配置四个变换集,并且可以针对4
×
4变换配置四个变换集。在这种情况下,针对8
×
8变换的四个变换集中的每个变换集可以包括二个8
×
8变换核,并且针对4
×
4变换的四个变换集中的每个变换集可以包括二个4
×
4变换核。
[0141]
然而,随着变换的大小(即,变换所应用于的区域的大小)可以为例如除了8
×
8或4
×
4之外的大小,集的数量可以是n,并且每个集中的变换核的数量可以是k。
[0142]
变换集可以被称为nsst集或lfnst集。可以例如基于当前块(cu或子块)的帧内预测模式来选择变换集当中的特定集。低频不可分离的变换(lfnst)可以是缩减不可分离的变换的示例,其将稍后描述,并且表示用于低频分量的不可分离的变换。
[0143]
作为参考,例如,帧内预测模式可以包括两个非定向(或非角度)帧内预测模式和65个定向(或角度)帧内预测模式。非定向帧内预测模式可以包括0号的平面帧内预测模式和1号的dc帧内预测模式,并且定向帧内预测模式可以包括2号至66号的65个帧内预测模式。然而,这是示例,并且即使帧内预测模式的数量不同也可以应用本文档。此外,在一些情况下,还可以使用67号帧内预测模式,并且67号帧内预测模式可以表示线性模型(lm)模式。
[0144]
图6示意性地示出了65个预测方向的帧内定向模式。
[0145]
参照图6,基于具有左上对角预测方向的帧内预测模式34,帧内预测模式可以划分为具有水平方向性的帧内预测模式和具有垂直方向性的帧内预测模式。在图6中,h和v分别标示水平方向性和垂直方向性,并且数字-32至32指示样本网格位置上的1/32单位的位移。这些数字可以表示对于模式索引值的偏移。帧内预测模式2至33具有水平方向性,并且帧内预测模式34至66具有垂直方向性。严格地说,帧内预测模式34可以被视为既不是水平的也
不是垂直的,但在确定二次变换的变换集时可以被分类为属于水平方向性。这是因为输入数据被转置以用于基于帧内预测模式34对称的垂直定向模式,并且针对水平模式的输入数据对准方法用于帧内预测模式34。对输入数据进行转置意指将二维的m
×
n块数据的行和列切换成n
×
m数据。帧内预测模式18和帧内预测模式50可以分别表示水平帧内预测模式和垂直帧内预测模式,并且帧内预测模式2可以被称为右上对角帧内预测模式,因为帧内预测模式2具有左参考像素并且在右上方向上执行预测。类似地,帧内预测模式34可以被称为右下对角帧内预测模式,而帧内预测模式66可以被称为左下对角帧内预测模式。
[0146]
根据示例,可以映射根据帧内预测模式的四个变换集,例如,如下表所示。
[0147]
[表2]
[0148]
lfnstpredmodeintralfnsttrsetidxlfnstpredmodeintra<010<=lfnstpredmodeintra<=102<=lfnstpredmodeintra<=12113<=lfnstpredmodeintra<=23224<=lfnstpredmodeintra<=44345<=lfnstpredmodeintra<=55256<=lfnstpredmodeintra<=80181<=lfnstpredmodeintra<=830
[0149]
如表2所示,根据帧内预测模式,四个变换集中的任何一个,即,lfnsttrsetidx,可以映射到四个索引(即,0至3)中的任何一个。
[0150]
当确定特定集用于不可分离的变换时,可以通过不可分离的二次变换索引来选择特定集中的k个变换核之一。编码设备可以基于率失真(rd)校验来推导指示特定变换核的不可分离的二次变换索引,并且可以将不可分离的二次变换索引发信号通知给解码设备。解码设备可以基于不可分离的二次变换索引来选择特定集中的k个变换核中的一个。例如,lfnst索引值0可以指代第一不可分离的二次变换核,lfnst索引值1可以指代第二不可分离的二次变换核,lfnst索引值2可以指代第三不可分离的二次变换核。另选地,lfnst索引值0可以指示第一不可分离的二次变换没有被应用于目标块,并且lfnst索引值1至3可以指示三个变换核。
[0151]
变换器可以基于所选择的变换核来执行不可分离的二次变换,并且可以获得修改的(二次)变换系数。如上所述,修改的变换系数可以被推导为通过量化器量化的变换系数,并且可以被编码并发信号通知给解码设备,并且被传送到编码设备中的解量化器/逆变换器。
[0152]
此外,如上所述,如果省略了二次变换,则可以将作为一次(可分离的)变换的输出的(一次)变换系数推导为如上所述通过量化器量化的变换系数,并且可以被编码并发信号通知给解码设备,并传送到编码设备中的解量化器/逆变换器。
[0153]
逆变换器可以与在上述变换器中已经执行的顺序相反的顺序执行一系列过程。逆变换器可以接收(解量化的)变换系数,并且通过执行二次(逆)变换来推导(一次)变换系数(s550),并且可以通过对(一次)变换系数执行一次(逆)变换来获得残差块(残差样本)(s560)。就此而言,从逆变换器的视角来看,一次变换系数可以被称为修改的变换系数。如
上所述,编码设备和解码设备可以基于残差块和预测块来生成重构块,并且可以基于重构块来生成重构图片。
[0154]
解码设备还可以包括二次逆变换应用确定器(或用于确定是否应用二次逆变换的元件)和二次逆变换确定器(或用于确定二次逆变换的元件)。二次逆变换应用确定器可以确定是否应用二次逆变换。例如,二次逆变换可以是nsst、rst或lfnst,并且二次逆变换应用确定器可以基于通过解析比特流而获得的二次变换标志来确定是否应用二次逆变换。在另一示例中,二次逆变换应用确定器可以基于残差块的变换系数来确定是否应用二次逆变换。
[0155]
二次逆变换确定器可以确定二次逆变换。在这种情况下,二次逆变换确定器可以基于根据帧内预测模式指定的lfnst(nsst或rst)变换集来确定应用于当前块的二次逆变换。在实施方式中,可以取决于一次变换确定方法来确定二次变换确定方法。可以根据帧内预测模式来确定一次变换和二次变换的各种组合。此外,在示例中,二次逆变换确定器可以基于当前块的大小来确定应用二次逆变换的区域。
[0156]
此外,如上所述,如果省略二次(逆)变换,则可以接收(解量化的)变换系数,可以执行一次(可分离的)逆变换,并且可以获得残差块(残差样本)。如上所述,编码设备和解码设备可以基于残差块和预测块来生成重构块,并且可以基于重构块来生成重构图片。
[0157]
此外,在本公开中,可以在nsst的概念中应用其中减小了变换矩阵(核)的大小的缩减二次变换(rst),以便减少不可分离的二次变换所需的计算量和存储量。
[0158]
此外,本公开中描述的变换核、变换矩阵以及构成变换核矩阵的系数,即,核系数或矩阵系数,可以以8比特来表示。这可以是在解码设备和编码设备中实现的条件,并且与现有的9比特或10比特相比,可以减少存储变换核所需的存储量,并且可以合理地适应性能劣化。另外,以8比特表示核矩阵可以允许使用小的乘法器,并且可以更适合于用于最佳软件实现的单指令多数据(simd)指令。
[0159]
在本说明书中,术语“rst”可以是指基于大小根据缩减因子而减小的变换矩阵来对目标块的残差样本执行的变换。在执行缩减变换的情况下,由于变换矩阵的大小的减小,可以减少变换所需的计算量。也就是说,rst可以用于解决在大小大的块的变换或不可分离的变换时发生的计算复杂性问题。
[0160]
rst可以被称为诸如缩减变换、缩减二次变换、缩小变换、简化变换和简单变换等之类的各种术语,并且rst可以被称为的名称不限于所列示例。另选地,由于rst主要在变换块中的包括非零系数的低频区域中执行,因此它可以被称为低频不可分离的变换(lfnst)。变换索引可以被称作lfnst索引。
[0161]
此外,当基于rst执行二次逆变换时,编码设备200的逆变换器235和解码设备300的逆变换器322可以包括:逆缩减二次变换器,其基于变换系数的逆rst来推导修改的变换系数;以及逆一次变换器,其基于修改的变换系数的逆一次变换来推导目标块的残差样本。逆一次变换是指应用于残差的一次变换的逆变换。在本公开中,基于变换推导变换系数可以是指通过应用变换来推导变换系数。
[0162]
图7是例示根据本公开的实施方式的rst的图。
[0163]
在本公开中,“目标块”可以指代要编码的当前块,残差块或变换块。
[0164]
在根据示例的rst中,可以将n维向量映射到位于另一个空间中的r维向量,从而可
以确定缩减变换矩阵,其中r小于n。n可以是指应用了变换的块的侧边的长度的平方,或与应用了变换的块相对应的变换系数的总数,并且缩减因子可以是指r/n值。缩减因子可以被称为缩减因子、缩小因子、简化因子、简单因子或其它各种术语。此外,r可以被称为缩减系数,但是根据情况,缩减因子可以是指r。此外,根据情况,缩减因子可以是指n/r值。
[0165]
在示例中,可以通过比特流来发信号通知缩减因子或缩减系数,但是示例不限于此。例如,可以在编码设备200和解码设备300中的每一个中存储针对缩减因子或缩减系数的预定值,并且在这种情况下,可以不单独发信号通知缩减因子或缩减系数。
[0166]
根据示例的缩减变换矩阵的大小可以是小于n
×
n(常规变换矩阵的大小)的r
×
n,并且可以如下面的式4所限定。
[0167]
[式4]
[0168][0169]
图7的(a)中所示的缩减变换块中的矩阵t可以是指式4的矩阵tr×n。如图7的(a)所示,当将缩减变换矩阵tr×n乘以目标块的残差样本时,可以推导当前块的变换系数。
[0170]
在示例中,如果应用了变换的块的大小是8
×
8并且r=16(即,r/n=16/64=1/4),则根据图7的(a)的rst可以被表示为以下式5所示的矩阵运算。在这种情况下,存储和乘法计算可以通过缩减因子缩减至大约1/4。
[0171]
在本公开中,矩阵运算可以理解为通过将列向量与设置在列向量的左侧的矩阵相乘来获得列向量的运算。
[0172]
[式5]
[0173][0174]
在式6中,r1至r
64
可以表示目标块的残差样本,并且具体地可以是通过应用一次变换而生成的变换系数。作为式5的计算的结果,可以推导目标块的变换系数ci,并且推导ci的过程可以如式6所示。
[0175]
[式6]
[0176][0177]
作为式6的计算的结果,可以推导目标块的变换系数c1至cr。也就是说,当r=16时,可以推导目标块的变换系数c1至c
16
。如果应用常规变换而不是rst,并将64
×
64(n
×
n)大小的变换矩阵与64
×
1(n
×
1)大小的残差样本相乘,则因为应用了rst而针对目标块仅推导16
(r)个变换系数,尽管针对目标块推导了64(n)个变换系数。由于用于目标块的变换系数的总数从n缩减到r,所以编码设备200向解码设备300发送的数据量减少,因此编码设备200与解码设备300之间的传输效率可以提高。
[0178]
当从变换矩阵的大小的视角考虑时,常规变换矩阵的大小为64
×
64(n
×
n),但缩减变换矩阵的大小缩减为16
×
64(r
×
n),因此与执行常规变换的情况相比,执行rst的情况下的存储使用率可以减小r/n比率。另外,当与使用常规变换矩阵的情况下的乘法计算的数量n
×
n相比时,使用缩减变换矩阵可以将乘法计算的数量(r
×
n)减小r/n比率。
[0179]
在示例中,编码设备200的变换器232可以通过对目标块的残差样本执行一次变换和基于rst的二次变换来推导目标块的变换系数。这些变换系数可以被传送到解码设备300的逆变换器,并且解码设备300的逆变换器322可以基于针对变换系数的逆缩减二次变换(rst)来推导修改的变换系数,并且可以基于针对修改的变换系数的逆一次变换来推导目标块的残差样本。
[0180]
根据示例的逆rst矩阵tn×r的大小为比常规逆变换矩阵n
×
n的大小小的n
×
r,并且与式4中所示的缩减变换矩阵tr×n具有转置关系。
[0181]
图7的(b)所示的缩减逆变换块中的矩阵t
t
可以是指逆rst矩阵tn×
rt
(上标t是指转置)。如图7的(b)所示,当将逆rst矩阵tn×
rt
乘以目标块的变换系数时,可以推导目标块的修改的变换系数或目标块的残差样本。逆rst矩阵tr×
nt
可以表示为(tr×n)
tn
×r。
[0182]
更具体地,当逆rst被用作二次逆变换时,当逆rst矩阵tn×
rt
被乘以目标块的变换系数时,可以推导目标块的修改的变换系数。此外,可以将逆rst用作逆一次变换,并且在这种情况下,当将逆rst矩阵tn×
rt
与目标块的变换系数相乘时,可以推导目标块的残差样本。
[0183]
在示例中,如果应用逆变换的块的大小是8
×
8并且r=16(即,r/n=16/64=1/4),则根据图7的(b)的rst可以被表示为以下式7所示的矩阵运算。
[0184]
[式7]
[0185][0186]
在式7中,c1至c
16
可以表示目标块的变换系数。作为式7的计算的结果,可以推导表示目标块的修改的变换系数或目标块的残差样本的rj,并且推导rj的过程可以如式8所示。
[0187]
[式8]
[0188][0189]
作为式8的计算的结果,可以推导表示目标块的修改的变换系数或目标块的残差样本的r1至rn。从逆变换矩阵的大小的视角考虑,常规逆变换矩阵的大小为64
×
64(n
×
n),
但逆缩减变换矩阵的大小缩减为64
×
16(r
×
n),因此与执行常规逆变换的情况相比,执行逆rst的情况下的存储使用率可以减小r/n比率。另外,当与使用常规逆变换矩阵的情况下的乘法计算的数量n
×
n相比时,使用逆缩减变换矩阵可以将乘法计算的数量(n
×
r)减少r/n比率。
[0190]
表2所示的变换集配置也可以应用于8
×
8 rst。也就是说,可以根据表2中的变换集来应用8
×
8 rst。由于根据帧内预测模式,一个变换集包括两个或三个变换(核),因此可以将其配置为选择包括在不应用二次变换的情况下在内的至多四个变换中的一个。在不应用二次变换的变换中,可以考虑应用恒等矩阵(identity matrix)。假设分别将索引0、1、2和3分配给四个变换(例如,可以将索引0分配给应用恒等矩阵的情况,即,不应用二次变换的情况),可以针对每个变换系数块发信号通知作为语法元素的变换索引或lfnst索引,由此指定要应用的变换。也就是说,针对左上8
×
8块,通过变换索引,可以指定rst配置中的8
×
8 nsst,或者当应用lfnst时可以指定8
×
8 lfnst。8
×
8 lfnst和8
×
8 rst指代当要变换的目标块的w和h均等于或大于8时可应用于变换系数块中包括的8
×
8区域的变换,并且8
×
8区域可以是变换系数块中的左上8
×
8区域。类似地,4
×
4 lfnst和4
×
4 rst指代当目标块的w和h均等于或大于4时可应用于变换系数块中包括的4
×
4区域的变换,并且4
×
4区域可以是变换系数块中的左上4
×
4区域。
[0191]
根据本公开的实施方式,对于编码过程中的变换,可以仅选择48条数据,并且可以向其应用最大16
×
48变换核矩阵,而不是将16
×
64变换核矩阵应用于形成8
×
8区域的64条数据。此处,“最大”意味着m在m
×
48变换核矩阵中具有最大值16以用于生成m个系数。也就是说,当通过将m
×
48变换核矩阵(m≤16)应用于8
×
8区域来执行rst时,输入48条数据,并且生成m个系数。当m是16时,输入48条数据并且生成16个系数。也就是说,假设48条数据形成48
×
1向量,16
×
48矩阵和48
×
1向量依次相乘,由此生成16
×
1向量。这里,形成8
×
8区域的48条数据可以被适当地布置,由此形成48
×
1向量。例如,可以基于构成8
×
8区域当中的除了右下4
×
4区域之外的区域的48条数据来构造48
×
1向量。这里,当通过应用最大16
×
48变换核矩阵来执行矩阵运算时,生成16个修改的变换系数,并且可以根据扫描顺序将16个修改的变换系数布置在左上4
×
4区域中,并且可以用零填充右上4
×
4区域和左下4
×
4区域。
[0192]
对于解码过程中的逆变换,可以使用前述变换核矩阵的转置矩阵。也就是说,当在由解码设备执行的逆变换过程中执行逆rst或lfnst时,根据预定布置顺序在一维向量中配置应用逆rst的输入系数数据,并且可以根据预定布置顺序将通过将一维向量与在一维向量左侧的对应的逆rst矩阵相乘而获得的修改的系数向量布置到二维块中。
[0193]
总之,在变换过程中,当rst或lfnst被应用于8
×
8区域时,在8
×
8区域的除了右下区域之外的左上区域、右上区域和左下区域中的48个变换系数与16
×
48变换核矩阵的矩阵运算。对于矩阵运算,以一维阵列输入48个变换系数。当执行矩阵运算时,推导出16个修改的变换系数,并且可以将修改的变换系数布置于8
×
8区域的左上区域中。
[0194]
相反,在逆变换过程中,当将逆rst或lfnst应用于8
×
8区域时,可以根据扫描顺序以一维阵列输入8
×
8区域中的变换系数当中的对应于8
×
8区域的左上区域的16个变换系数,并且可以经历与48
×
16变换核矩阵的矩阵运算。也就是说,矩阵运算可以表示为(48
×
16矩阵)*(16
×
1变换系数向量)=(48
×
1修改的变换系数向量)。这里,n
×
1向量可以被解
释为具有与n
×
1矩阵相同的含义,并且因此可以被表示为n
×
1列向量。此外,*表示矩阵乘法。当执行矩阵运算时,可以推导出48个修改的变换系数,并且可以将48个修改的变换系数布置在8
×
8区域中的除了右下区域之外的左上区域、右上区域和左下区域中。
[0195]
当二次逆变换基于rst时,编码设备200的逆变换器235和解码设备300的逆变换器322可以包括用于基于对变换系数的逆rst推导修改的变换系数的逆缩减二次变换器以及用于基于对修改的变换系数的逆一级变换来推导目标块的残差样本的逆一次变换器。逆一次变换指代应用于残差的一次变换的逆变换。在本公开中,基于变换推导变换系数可以指代通过应用变换来推导变换系数。
[0196]
上面描述的非分离变换(lfnst)将如下详细描述。lfnst可以包括由编码设备进行的正向变换和由解码设备进行的逆变换。
[0197]
编码设备接收在应用一次(核心)变换之后推导出的结果(或结果的一部分)作为输入,并且应用正向二次变换(二次变换)。
[0198]
[式9]
[0199]
y=g
t
x
[0200]
在式9中,x和y分别是二次变换的输入和输出,g是表示二次变换的矩阵,并且变换基向量由列向量组成。在逆lfnst的情况下,当变换矩阵g的维度表示为[行的数量
×
列的数量]时,在正向lfnst的情况下,矩阵g的转置变成g
t
的维度。
[0201]
对于逆lfnst,矩阵g的维度是[48
×
16]、[48
×
8]、[16
×
16]、[16
×
8],并且[48
×
8]矩阵和[16
×
8]矩阵是分别从[48
×
16]矩阵和[16
×
16]矩阵的左侧采样的8个变换基向量的部分矩阵。
[0202]
另一方面,对于正向lfnst,矩阵g
t
的维度是[16
×
48]、[8
×
48]、[16
×
16]、[8
×
16],并且[8
×
48]矩阵和[8
×
16]矩阵是通过分别从[16
×
48]矩阵和[16
×
16]矩阵的上部采样8个变换基向量而获得的部分矩阵。
[0203]
因此,在正向lfnst的情况下,[48
×
1]向量或[16
×
1]向量可以作为输入x,并且[16
×
1]向量或[8
×
1]向量可以作为输出y。在视频编码和解码中,正向一次变换的输出是二维(2d)数据,因此为了构造[48
×
1]向量或[16
×
1]向量作为输入x,需要通过将作为正向变换的输出的2d数据适当地布置来构造一维向量。
[0204]
图8是例示根据示例的将正向一次变换的输出数据布置成一维向量的顺序的图。图8的(a)和(b)的左图示出了用于构造[48
×
1]向量的顺序,并且图8的(a)和(b)的右图示出了用于构造[16
×
1]向量的顺序。在lfnst的情况下,可以通过将2d数据按与图8的(a)和(b)中相同的次序顺序地布置来获得一维向量x。
[0205]
可以根据当前块的帧内预测模式确定正向一次变换的输出数据的布置方向。例如,在当前块的帧内预测模式相对于对角线方向处于水平方向时,可以按图8的(a)的顺序布置正向一次变换的输出数据,并且在当前块的帧内预测模式相对于对角线方向处于垂直方向时,可以按图8的(b)的顺序布置正向一次变换的输出数据。
[0206]
根据示例,可以应用不同于图8的(a)和(b)的布置顺序的布置顺序,并且为了推导与应用图8的(a)和(b)的布置顺序时相同的结果(y向量),可以根据布置顺序重新布置矩阵g的列向量。也就是说,可以重新布置g的列向量,使得构成x向量的每个元素总是乘以相同的变换基向量。
[0207]
由于通过式9推导的输出y是一维向量,因此当在使用正向二次变换的结果作为输入的过程中(例如,在执行量化或残差编码的过程中)需要二维数据作为输入数据时,式9的输出y向量需要再次被适当地布置为2d数据。
[0208]
图9是例示根据示例的将正向二次变换的输出数据布置成二维块的顺序的图。
[0209]
在lfnst的情况下,输出值可以根据预定扫描顺序布置在2d块中。图9的(a)示出了当输出y是[16
×
1]向量时,根据对角线扫描顺序将输出值布置在2d块的16个位置处。图9的(b)示出了当输出y是[8
×
1]向量时,根据对角线扫描顺序将输出值布置在2d块的8个位置处,并且用零填充其余的8个位置。图9的(b)中的x指示它被填充有零。
[0210]
根据另一示例,由于可以预设在执行量化或残差编码时处理输出向量y的顺序,因此输出向量y可以不布置在如图9中所示的2d块中。然而,在残差编码的情况下,可以在2d块(例如,4
×
4)单元(例如,cg(系数组))中执行数据编码,并且在此情况下,根据如图9的对角线扫描顺序中的特定顺序来布置数据。
[0211]
此外,解码设备可以通过根据用于逆变换的预设扫描顺序来布置通过解量化过程输出的二维数据来配置一维输入向量y。输入向量y可以通过下式输出为输出向量x。
[0212]
[式10]
[0213]
x=gy
[0214]
在逆lfnst的情况下,可以通过将作为[16
×
1]向量或[8
×
1]向量的输入向量y乘以g矩阵来推导输出向量x。对于逆lfnst,输出向量x可以是[48
×
1]向量或[16
×
1]向量。
[0215]
输出向量x根据图8中所示的顺序布置在二维块中,并且被布置为二维数据,并且该二维数据成为逆一次变换的输入数据(或输入数据的一部分)。
[0216]
因此,逆二次变换整体上是正向二次变换过程的相反,并且在逆变换的情况下,与在正向方向上不同,首先应用逆二次变换,然后应用逆一次变换。
[0217]
在逆lfnst中,可以选择8个[48
×
16]矩阵和8个[16
×
16]矩阵中的一个作为变换矩阵g。是应用[48
×
16]矩阵还是应用[16
×
16]矩阵取决于块的大小和形状。
[0218]
另外,可以从如上表2所示的四个变换集中推导8个矩阵,并且每个变换集可以由两个矩阵组成。根据帧内预测模式确定在4个变换集当中使用哪个变换集,并且更具体地,基于通过考虑广角帧内预测(waip)而扩展的帧内预测模式的值来确定变换集。通过索引信令来推导从构成所选择的变换集的两个矩阵当中选择哪个矩阵。更具体地,0、1和2可以作为发送的索引值,0可以指示不应用lfnst,并且1和2可以指示构成基于帧内预测模式值选择的变换集的两个变换矩阵中的任何一个。
[0219]
图10是例示根据本文档的实施方式的广角帧内预测模式的图。
[0220]
一般帧内预测模式值可以具有从0到66以及从81到83的值,并且由于waip而扩展的帧内预测模式值可以具有所示的从-14到83的值。从81到83的值指示cclm(跨分量线性模型)模式,并且从-14到-1的值和从67到80的值指示由于waip应用而扩展的帧内预测模式。
[0221]
当当前预测块的宽度大于高度时,上参考像素通常更接近要预测的块内部的位置。因此,在左下方向上比在右上方向上进行预测可以更准确。相反,当块的高度大于宽度时,左参考像素通常更接近要预测的块内部的位置。因此,在右上方向上比在左下方向上进行预测可以更准确。因此,将重映射(即,模式索引修改)应用到广角帧内预测模式的索引可以是有利的。
[0222]
当应用广角帧内预测时,关于现有帧内预测的信息可以被发信号通知,并且在信息被解析之后,该信息可以被重映射到广角帧内预测模式的索引。因此,可以不改变用于特定块(例如,特定大小的非正方形块)的帧内预测模式的总数量,也就是说,帧内预测模式的总数量是67,并且可以不改变用于特定块的帧内预测模式编码。
[0223]
下表3示出了通过将帧内预测模式重映射到广角帧内预测模式来推导修改的帧内模式的过程。
[0224]
[表3]
[0225][0226]
在表3中,扩展的帧内预测模式值最终存储在predmodeintra变量中,并且isp_no_split指示cu块不通过当前在vvc标准中采用的帧内子分区(isp)技术划分成子分区,并且0、1和2的cidx变量值分别指示亮度分量、cb分量和cr分量的情况。表3所示的log2函数返回基数为2的log值,并且abs函数返回绝对值。
[0227]
指示帧内预测模式的变量predmodeintra以及变换块的高度和宽度等用作广角帧内预测模式映射过程的输入值,并且输出值是修改的帧内预测模式predmodeintra。变换块或编码块的高度和宽度可以为用于帧内预测模式的重映射的当前块的高度和宽度。此时,反映宽度与宽度的比率的变量whratio可以被设置为abs(log2(nw/nh))。
[0228]
对于非正方形块,帧内预测模式可以划分成两种情况并且被修改。
[0229]
首先,如果条件(1)至(3)全部被满足,(1)当前块的宽度大于高度、(2)在修改之前的帧内预测模式等于或大于2、以及(3)帧内预测模式当变量whratio大于1时小于被推导为(8 2*whratio)的值并且当变量whratio小于或等于1时小于8(predmodeintra小于(whratio》1)?(8 2*whratio):8),则帧内预测模式被设置为比predmodeintra大65的值[predmodeintra被设置为等于(predmodeintra 65)]。
[0230]
如果与以上不同,即,如果条件(1)至(3)被满足,(1)当前块的高度大于宽度、(2)在修改之前的帧内预测模式小于或等于66、以及(3)帧内预测模式当whratio大于1时大于被推导为(60-2*whratio)的值并且当whratio小于或等于1时大于60(predmodeintra大于(whratio》1)?(60-2*whratio):60),则帧内预测模式被设置为比predmodeintra小67的值[predmodeintra被设置为等于(predmodeintra-67)]。
[0231]
上表2示出了如何在lfnst中基于由waip扩展的帧内预测模式值选择变换集。如图10所示,模式14到33和模式35到80关于模式34周围的预测方向对称。例如,模式14和模式54关于对应于模式34的方向是对称的。因此,相同的变换集应用于位于相互对称的方向上的模式,并且这种对称性也反映在表2中。
[0232]
此外,假设模式54的正向lfnst输入数据与模式14的正向lfnst输入数据对称。例如,对于模式14和模式54,根据图8的(a)和图8的(b)所示的布置顺序将二维数据重新布置为一维数据。另外,可以看出,图8的(a)和图8的(b)所示的顺序的图案关于由模式34指示的方向(对角线方向)是对称的。
[0233]
此外,如上所述,由变换目标块的大小和形状来确定将[48
×
16]矩阵和[16
×
16]矩阵中的哪个变换矩阵应用于lfnst。
[0234]
图11是例示lfnst被应用于的块形状的图。图11的(a)示出了4
×
4块,图11的(b)示出了4
×
8块和8
×
4块,图11的(c)示出了4
×
n块或n
×
4块,其中n为16或更大,图11的(d)示出了8
×
8块,图11的(e)示出了m
×
n块,其中m≥8、n≥8并且n》8或m》8。
[0235]
在图11中,具有厚边界的块指示lfnst被应用到的区域。对于图11的(a)和(b)的块,lfnst被应用于左上4
×
4区域,并且对于图11的(c)的块,lfnst被单独地应用于被连续地布置的两个左上4
×
4区域。在图11的(a)、(b)和(c)中,由于lfnst以4
×
4区域为单位应用,所以该lfnst在下文中将被称为“4
×
4 lfnst”。基于g的矩阵维度,可以应用[16
×
16]或[16
×
8]矩阵。
[0236]
更具体地,[16
×
8]矩阵被应用到图11的(a)的4
×
4块(4
×
4 tu或4
×
4 cu),并且[16
×
16]矩阵被应用到图11的(b)和(c)中的块。这是为了将最坏情况的计算复杂度调整为每个样本8次乘法。
[0237]
关于图11的(d)和(e),lfnst被应用于左上8
×
8区域,并且该lfnst在下文中被称为“8
×
8 lfnst”。作为对应的变换矩阵,可以应用[48
×
16]矩阵或[48
×
8]矩阵。在正向lfnst的情况下,由于[48
×
1]向量(式9中的x向量)作为输入数据被输入,所以不是左上8
×
8区域的所有样本值都被用作正向lfnst的输入值。也就是说,如可以从图8的(a)的左侧顺序或图8的(b)的左侧顺序看出的,可以基于属于在将右下4
×
4块原样留下的同时的其余3个4
×
4块的样本来构造[48
×
1]向量。
[0238]
[48
×
8]矩阵可以应用于图11的(d)中的8
×
8块(8
×
8 tu或8
×
8 cu),并且[48
×
16]矩阵可以应用于图11的(e)中的8
×
8块。这也是为了将最坏情况的计算复杂度调整为每个样本8次乘法。
[0239]
取决于块形状,当对应的正向lfnst(4
×
4或8
×
8 lfnst)被应用时,生成8或16个输出数据(式9中的y向量,[8
×
1]或[16
×
1]向量)。在正向lfnst中,由于矩阵g
t
的特性,输出数据的数量等于或小于输入数据的数量。
[0240]
图12是例示根据示例的正向lfnst的输出数据的布置的图,并且示出了其中根据块形状布置正向lfnst的输出数据的块。
[0241]
在图12所示的块的左上的阴影区域对应于正向lfnst的输出数据所位于的区域,用0标记的位置指示填充有值0的样本,并且其余区域表示未被正向lfnst改变的区域。在未被lfnst改变的区域中,正向一次变换的输出数据保持不变。
[0242]
如上所述,由于所应用的变换矩阵的尺寸根据块的形状而变化,因此输出数据的数量也变化。如图12,正向lfnst的输出数据可能不完全填充左上4
×
4块。在图12的(a)和(d)的情况下,将[16
×
8]矩阵和[48
×
8]矩阵分别应用于由粗线指示的块或块内部的部分区域,并且生成作为正向lfnst的输出的[8
×
1]向量。也就是说,根据图9的(b)所示的扫描顺序,可以仅填充8个输出数据,如图12的(a)和(d)所示,并且可以在其余的8个位置中填充0。在图11的(d)的lfnst应用的块的情况下,如图12的(d)所示,与左上4
×
4块相邻的右上和左下的两个4
×
4块也被填充有值0。
[0243]
如上所述,基本上,通过发信号通知lfnst索引,规定了是否应用lfnst和要应用的变换矩阵。如图12所示,当lfnst被应用时,由于正向lfnst的输出数据的数量可以等于或小于输入数据的数量,所以出现如下填充有零值的区域。
[0244]
1)如图12的(a)所示,来自左上4
×
4块中的扫描顺序上的第八个位置和后面的位置的样本,即,来自第九到第十六的样本。
[0245]
2)如图12的(d)和(e)中所示,当应用[48
×
16]矩阵或[48
×
8]矩阵时,与左上4
×
4块相邻的两个4
×
4块或者扫描顺序上的第二和第三4
×
4块。
[0246]
因此,如果通过检查区域1)和2)存在非零数据,则确定未应用lfnst,使得可以省略对应的lfnst索引的信令。
[0247]
根据示例,例如,在vvc标准中采用的lfnst的情况下,由于在残差编码之后执行lfnst索引的信令,因此编码设备可以通过残差编码来知道在tu或cu块内的所有位置是否存在非零数据(有效系数)。因此,编码设备可以基于非零数据的存在来确定是否执行关于lfnst索引的信令,并且解码设备可以确定是否解析lfnst索引。当非零数据不存在于以上1)和2)中指定的区域中时,执行lfnst索引的信令。
[0248]
由于截短的一元码被应用为lfnst索引的二值化方法,所以lfnst索引由多达两个bin组成,并且0、10和11分别被指派为用于可能的lfnst索引值0、1和2的二进制码。在当前用于vvc的lfnst的情况下,将基于上下文的cabac编码应用于第一bin(常规编码),并且将旁通编码应用于第二bin。第一bin的上下文的总数量为2,当(dct-2,dct-2)被应用为用于水平和垂直方向的一次变换对并且亮度分量和色度分量以双树类型编码时,一个上下文被分配并且另一上下文应用于其余情况。lfnst索引的编码如下表所示。
[0249]
[表4]
[0250][0251]
此外,对于采用的lfnst,可以应用以下简化方法。
[0252]
(i)根据示例,正向lfnst的输出数据的数量可以被限于最大值16。
[0253]
在图11的(c)的情况下,4
×
4 lfnst可以分别应用于与左上方相邻的两个4
×
4区域,并且在这种情况下,可以生成最大32个lfnst输出数据。当正向lfnst的输出数据的数量被限制为最大值16时,在4
×
n/n
×
4(n≥16)块(tu或cu)的情况下,4
×
4 lfnst仅应用于左上方的一个4
×
4区域,lfnst可以仅应用于图11的所有块一次。通过此,可以简化图像编码的实现方式。
[0254]
图13示出了根据示例的正向lfnst的输出数据的数量被限制为最大值16。在图13,当lfnst被应用到4
×
n或n
×
4块(其中n为16或更大)中的最左上的4
×
4区域时,正向lfnst的输出数据成为16个。
[0255]
(ii)根据示例,可以附加地清零应用到未应用lfnst的区域。在本文档中,清零可以表示用为0的值填充属于特定区域的所有位置。也就是说,可以将清零应用于由于lfnst而未改变的区域,并且维持正向一次变换的结果。如上所述,由于lfnst被划分为4
×
4 lfnst和8
×
8 lfnst,所以清零可以如下划分为两种类型((ii)-(a)和(ii)-(b))。
[0256]
(ii)-(a)当应用4
×
4 lfnst时,未应用4
×
4 lfnst的区域可以被清零。图14是例示根据示例的应用4
×
4 lfnst的块中的清零的图。
[0257]
如图14所示,关于应用了4
×
4 lfnst的块,即,对于图12的(a)、(b)和(c)中的所有块,未应用lfnst的整个区域可以用零填充。
[0258]
另一方面,图14的(d)示出当正向lfnst的输出数据的数量的最大值被限制为16(如图13所示)时,对未应用4
×
4 lfnst的其余块执行清零。
[0259]
(ii)-(b)当应用8
×
8 lfnst时,未应用8
×
8 lfnst的区域可以被清零。图15是例示根据示例的应用8
×
8 lfnst的块中的清零的图。
[0260]
如图15所示,关于应用8
×
8 lfnst的块,即,对于图12的(d)和(e)中的所有块,lfnst未被应用到的整个区域可以用零填充。
[0261]
(iii)由于以上(ii)中呈现的清零,用零填充的区域可以不与当lfnst被应用时相同。因此,可以根据对比图12的lfnst的情况更宽的区域进行(ii)中提出的清零来检查是否存在非零数据。
[0262]
例如,当(ii)-(b)被应用时,在检查图12的(d)和(e)中的用零填充的区域是否存在非零数据之后,另外附加地检查图15中填充有0的区域是否存在非零数据,可以仅当不存在非零数据时执行针对lfnst索引的信令。
[0263]
当然,即使应用(ii)中提出的清零,也可以与现有lfnst索引信令相同的方式检查非零数据是否存在。也就是说,在检查在图12中用零填充的块中是否存在非零数据之后,可以应用lfnst索引信令。在此情况下,编码设备仅执行清零并且解码设备不假设清零,也就是,仅检查非零数据是否仅存在于图12中明确标记为0的区域中,可以执行lfnst索引解析。
[0264]
另选地,根据另一示例,可以执行如图16所示的清零。图16是例示根据另一示例的
应用8
×
8 lfnst的块中的清零的图。
[0265]
如图14和图15所示,可以将清零应用于除了应用lfnst的区域之外的所有区域,或者可以将清零仅应用于局部区域,如图16所示。清零仅应用于除了图16的左上8
×
8区域之外的区域,清零可以不应用于左上
×
8区域内的右下4
×
4块。
[0266]
可以推导出应用lfnst的简化方法((i)、(ii)-(a)、(ii)-(b)、(iii))的组合的各种实施方式。当然,上述简化方法的组合不限于以下实施方式,并且可以将任何组合应用于lfnst。
[0267]
实施方式
[0268]-将正向lfnst的输出数据的数量限制为最大值16
→(i)[0269]-当应用4
×
4 lfnst时,未应用4
×
4 lfnst的所有区域被清零

(ii)-(a)
[0270]-当应用8
×
8 lfnst时,未应用8
×
8 lfnst的所有区域被清零

(ii)-(b)
[0271]-在检查非零数据是否也存在于填充有零值的现有区域以及由于附加的清零而填充有零的区域中((ii)-(a)、(ii)-(b))之后,仅在不存在非零数据时发信号通知lfnst索引

(iii)。
[0272]
在实施方式的情况下,当应用lfnst时,可以存在非零输出数据的区域限于左上4
×
4区域的内部。更详细地,在图14的(a)和图15的(a)的情况下,扫描顺序上的第八个位置是其中可以存在非零数据的最后位置。在图14的(b)和(c)以及图15的(b)的情况下,扫描顺序上的第十六个位置(即,左上4
×
4块的右下边缘的位置)是其中可以存在除了0以外的数据的最后位置。
[0273]
因此,在应用lfnst之后,在检查非零数据是否存在于残差编码过程不允许的位置(在超出最后位置的位置处)之后,可以确定是否发信号通知lfnst索引。
[0274]
在(ii)中提出的清零方法的情况下,由于当应用了一次变换和lfnst两者时最终生成的数据的数量,所以执行整个变换过程所需的计算量可以降低。也就是说,当lfnst被应用时,由于清零被应用于正向一次变换输出数据存在于未应用lfnst的区域中,因此不需要为在执行正向一次变换期间成为清零的区域生成数据。因此,可以降低生成对应的数据所需的计算量。在(ii)中提出的清零方法的附加效果总结如下。
[0275]
首先,如上所述,减少执行整个变换过程所需的计算量。
[0276]
特别地,当应用(ii)-(b)时,最坏情况的计算量被减少,使得变换过程可以被变轻。换句话说,一般来说,需要大量的计算来执行大尺寸的一次变换。通过应用(ii)-(b),作为执行正向lfnst的结果而推导出的数据的数量可以减小到16或更小。另外,随着整个块(tu或cu)的大小增加,减少变换操作的量的效果进一步增加。
[0277]
第二,可以减少整个变换过程所需的计算量,由此降低执行变换所需的功耗。
[0278]
第三,减小了变换过程中涉及的延迟。
[0279]
诸如lfnst之类的次级变换向现有的一次变换添加了计算量,因而增加了执行变换时涉及的总体延迟时间。特别地,在帧内预测的情况下,由于在预测过程中使用相邻块的重构数据,所以在编码期间,由于二次变换导致的延迟的增加导致直到重构的延迟的增加。这可以导致帧内预测编码的总体延迟的增加。
[0280]
然而,如果应用(ii)中提出的清零,则当应用lfnst时可以极大地减少执行一次变换的延迟时间,保持或减少整个变换的延迟时间,使得可以更简单地实现编码设备。
[0281]
在传统的帧内预测中,当前要编码的块被视为一个编码单元,并且在不分割的情况下执行编码。然而,帧内子分区(isp)编码意味着通过在水平方向或垂直方向上划分当前要编码的块来执行帧内预测编码。在这种情况下,可以通过以划分块为单位执行编码/解码来生成重构块,并且重构块可以用作下一个划分块的参考块。根据实施方式,在isp编码中,可以将一个编码块划分为两个或四个子块并进行编码,并且在isp中,在一个子块中,参考位于相邻的左侧或相邻的上侧的子块的重构像素值执行帧内预测。在下文中,“编码”可以用作包括由编码设备执行的编码和由解码设备执行的解码两者的概念。
[0282]
表5表示在应用isp时根据块大小划分的子块的数量,并且根据isp划分的子分区可以称为变换块(tu)。
[0283]
[表5]
[0284]
块大小(cu)划分的数量4
×
4不可用4
×
8、8
×
42所有其它情况4
[0285]
isp是将预测为亮度帧内的块根据块的大小在垂直方向或水平方向上划分为两个或四个子分区。例如,可以应用isp的最小块大小为4
×
8或8
×
4。当块大小大于4
×
8或8
×
4时,将块划分为4个子分区。
[0286]
图17和图18例示了一个编码块被划分成的子块的示例,并且更具体地,图17例示了编码块(宽度(w)
×
高度(h))是4
×
8块或8
×
4块的划分的示例,并且图18例示了编码块不是4
×
8块、8
×
4块或4
×
4块的情况的划分的示例。
[0287]
当应用isp时,子块根据划分类型从左到右或从上到下顺序地进行编码(例如,水平地或垂直地),并在经由针对一个子块的逆变换和帧内预测执行重构处理之后,可以执行下一个子块的编码。对于最左或最上的子块,参考已经编码的编码块的重构像素,如在传统的帧内预测方法中一样。此外,当后续内部子块的每一侧不与前一子块相邻时,为了推导与对应侧相邻的参考像素,参考已编码的相邻编码块的重构像素,如在传统的帧内预测方法中一样。
[0288]
在isp编码模式中,可以用相同的帧内预测模式对所有子块进行编码,并且可以发信号通知指示是否使用isp编码的标志以及指示是否在哪个方向上划分(水平或垂直)的标志。如图17和图18所示,子块的数量可以根据块的形状调整为2个或4个,当一个子块的大小(宽度
×
高度)小于16时,可以限制以使得不允许划分成对应的子块或不应用isp编码本身。
[0289]
在isp预测模式的情况下,将一个编码单元划分为两个或四个分区块(即,子块)并进行预测,并且将相同的帧内预测模式应用于划分的两个或四个分区块。
[0290]
如上所述,在划分方向上,水平方向(当分别具有m和n的水平长度和垂直长度的m
×
n编码单元在水平方向上进行划分时,如果m
×
n编码单元被划分为两个,则m
×
n编码单元被划分为m
×
(n/2)块,并且如果m
×
n编码单元被划分为四个块,则m
×
n编码单元被划分为m
×
(n/4)块)和垂直方向(当m
×
n编码单元在垂直方向上进行划分时,如果m
×
n编码单元被划分为两个,则m
×
n编码单元被划分为(m/2)
×
n块,并且如果m
×
n编码单元被划分为四个,则m
×
n编码单元被划分为(m/4)
×
n块)二者都是可能的。当在水平方向上划分m
×
n编码单元时,按照上下顺序对分区块进行编码,并且当在垂直方向上划分m
×
n编码单元时,按照左
右顺序对分区块进行编码。在水平(垂直)方向划分的情况下,可以参考上(左)分区块的重构像素值来预测当前编码的分区块。
[0291]
可以对通过isp预测方法以分区块为单位生成的残差信号应用变换。基于dst-7/dct-8组合以及现有的dct-2的多变换选择(mts)技术可以应用于基于正向的一次变换(核心变换),并且正向低频不可分离的变换(lfnst)可以应用于根据一次变换生成的变换系数以生成最终修改的变换系数。
[0292]
也就是说,lfnst可以应用于通过应用isp预测模式划分成的分区块,并且相同的帧内预测模式应用于划分的分区块,如上所述。因此,当选择基于帧内预测模式推导的lfnst集时,所推导的lfnst集可以应用于所有的分区块。也就是说,因为相同的帧内预测模式应用于所有分区块,所以相同的lfnst集可以应用于所有分区块。
[0293]
根据实施方式,lfnst可以仅应用于具有4或更大的水平长度和垂直长度二者的变换块。因此,当根据isp预测方法的划分的分区块的水平长度或垂直长度小于4时,不应用lfnst并且不发信号通知lfnst索引。此外,当对每个分区块应用lfnst时,可以将对应的分区块视为一个变换块。当不应用isp预测方法时,可以将lfnst应用于编码块。
[0294]
将详细描述将lfnst应用于每个分区块的方法。
[0295]
根据实施方式,在将正向lfnst应用于各个分区块之后,在按变换系数扫描顺序的左上4
×
4区域中仅留下最多16个(8个或16个)系数,然后可以应用清零,其中其余的位置和区域全部被填充为0。
[0296]
另选地,根据实施方式,当分区块的一侧的长度为4时,lfnst仅应用于左上4
×
4区域,并且当分区块的所有侧的长度(即,宽度和高度)为8或更大时,lfnst可以应用于左上8
×
8区域内的除了右下4
×
4区域之外的其余48个系数。
[0297]
另选地,根据实施方式,为了将最坏情况的计算复杂度调整为每个样本8次乘法,当每个分区块是4
×
4或8
×
8时,在应用正向lfnst之后可以仅输出8个变换系数。也就是说,当分区块为4
×
4时,可以应用8
×
16矩阵作为变换矩阵,当分区块为8
×
8时,可以应用8
×
48矩阵作为变换矩阵。
[0298]
在当前的vvc标准中,以编码单元为单位执行lfnst索引信令。因此,在isp预测模式中并且当对所有分区块应用lfnst时,可以将相同的lfnst索引值应用于对应的分区块。也就是说,当在编码单元级别发送一次lfnst索引值时,对应的lfnst索引可以应用于编码单元中的所有分区块。如上所述,lfnst索引值可以具有0、1和2的值,其中0表示不应用lfnst的情况,而1和2表示在应用lfnst时存在于一个lfnst集中的两个变换矩阵。
[0299]
如上所述,lfnst集是由帧内预测模式确定的,并且在isp预测模式的情况下,因为编码单元中的所有分区块都是在相同的帧内预测模式下预测的,所以分区块可以参考相同的lfnst集。
[0300]
作为另一示例,lfnst索引信令仍然以编码单元为单位来执行,但是在isp预测模式的情况下,不确定是否对所有分区块均一地应用lfnst,并且对于每个分区块,可以通过单独的条件来确定是否应用在编码单元级别发信号通知的lfnst索引值以及是否应用lfnst。这里,可以通过比特流以针对每个分区块的标志的形式发信号通知单独的条件,并且当标志值为1时,应用在编码单元级别发信号通知的lfnst索引值,并且当标志值为0时,可以不应用lfnst。
[0301]
在应用了isp模式的编码单元中,当分区块的一侧的长度小于4时应用lfnst的示例描述如下。
[0302]
首先,当分区块的大小为n
×
2(2
×
n)时,可以将lfnst应用于左上m
×
2(2
×
m)区域(其中m≤n)。例如,当m=8时,左上区域变为8
×
2(2
×
8),因此存在16个残差信号的区域可以是正向lfnst的输入,并且可以应用r
×
16(r≤16)的正向变换矩阵。
[0303]
这里,正向lfnst矩阵可以是除了当前vvc标准中包括的矩阵之外的单独的附加矩阵。此外,对于最坏情况的复杂度控制,其中仅对16
×
16矩阵的上8行向量进行采样的8
×
16矩阵可以用于变换。稍后将详细描述复杂度控制方法。
[0304]
其次,当分区块的大小为n
×
1(1
×
n)时,可以将lfnst应用于左上m
×
1(1
×
m)区域(其中m≤n)。例如,当m=16时,左上区域变为16
×
1(1
×
16),因此存在16个残差信号的区域可以是正向lfnst的输入,并且可以应用r
×
16(r≤16)的正向变换矩阵。
[0305]
这里,对应的正向lfnst矩阵可以是除了当前vvc标准中包括的矩阵之外的单独的附加矩阵。此外,为了控制最坏情况的复杂度,其中仅对16
×
16矩阵的上8行向量进行采样的8
×
16矩阵可以用于变换。稍后将详细描述复杂度控制方法。
[0306]
可以同时应用第一实施方式和第二实施方式,或者可以应用两个实施方式中的任一个。特别地,在第二实施方式的情况下,因为在lfnst中考虑了一次变换,因此通过实验观察到,与lfnst索引信令成本相比,在现有lfnst中可以获得的压缩性能改进相对较小。然而,在第一实施方式的情况下,观察到与可以从传统lfnst获得的压缩性能改进相似的压缩性能改进。也就是说,在isp的情况下,可以通过实验查看2
×
n和n
×
2的lfnst的应用对实际压缩性能的贡献。
[0307]
在当前vvc的lfnst中,应用了帧内预测模式之间的对称性。相同的lfnst集应用于设置在模式34(在右下角的45度对角线方向上的预测)周围的两个定向模式,例如,相同的lfnst集应用于模式18(水平方向预测模式)和模式50(垂直方向预测模式)。然而,在模式35至66中,当应用正向lfnst时,输入数据被转置,然后应用lfnst。
[0308]
vvc支持广角帧内预测(waip)模式,考虑到waip模式,基于修改后的帧内预测模式推导lfnst集。对于由waip扩展的模式,lfnst集是通过使用对称性来确定的,就像在一般的帧内预测方向模式中一样。例如,因为模式-1与模式67对称,所以应用相同的lfnst集,并且因为模式-14与模式80对称,所以应用相同的lfnst集。模式67至80在应用正向lfnst之前对输入数据进行转置之后应用lfnst变换。
[0309]
在将lfnst应用于左上m
×
2(m
×
1)块的情况下,因为应用了lfnst的块是非正方形的,所以不能应用对lfnst的对称性。因此,代替应用基于帧内预测模式的对称性,如在表2的lfnst中,可以应用m
×
2(m
×
1)块和2
×
m(1
×
m)块之间的对称性。
[0310]
图19是例示根据实施方式的m
×
2(m
×
1)块和2
×
m(1
×
m)块之间的对称性的图。
[0311]
如图19所示,因为可以认为m
×
2(m
×
1)块中的模式2与2
×
m(1
×
m)块中的模式66对称,所以可以将相同的lfnst集应用于2
×
m(1
×
m)块和m
×
2(m
×
1)块。
[0312]
在这种情况下,为了将应用于m
×
2(m
×
1)块的lfnst集应用于2
×
m(1
×
m)块,基于模式2而不是模式66来选择lfnst集。也就是说,在应用正向lfnst之前,在转置2
×
m(1
×
m)块的输入数据之后,可以应用lfnst。
[0313]
图20是例示根据实施方式的转置2
×
m块的示例的图。
[0314]
图20的(a)是例示可以通过以列优先顺序读取2
×
m块的输入数据来应用lfnst的图,图20的(b)是例示可以通过以行优先顺序读取m
×
2(m
×
1)块的输入数据来应用lfnst的图。将lfnst应用于左上m
×
2(m
×
1)或2
×
m(m
×
1)块的方法描述如下。
[0315]
1.首先,如图20的(a)和(b)所示,输入数据被布置成构成正向lfnst的输入向量。例如,参照图19,对于以模式2预测的m
×
2块,遵循图20的(b)中的顺序,对于以模式66预测的2
×
m块,输入数据按图20的(a)的顺序布置,然后可以应用为模式2设置的lfnst。
[0316]
2.对于m
×
2(m
×
1)块,考虑到waip,基于修改的帧内预测模式确定lfnst集。如上所述,帧内预测模式和lfnst集之间建立了预设的映射关系,其可以用表2所示的映射表来表示。
[0317]
对于2
×
m(1
×
m)块,在考虑到waip的情况下从修改的帧内预测模式中向下沿45度对角线方向围绕预测模式(在vvc标准的情况下为模式34)的对称模式可以被获得,并且然后基于对应的对称模式和映射表确定lfnst集。围绕模式34的对称模式(y)可以通过下式推导。下面将更详细地描述映射表。
[0318]
[式11]
[0319]
如果2≤x≤66,则y=68-x,
[0320]
否则(x≤-1或x≥67),y=66-x
[0321]
3.当应用正向lfnst时,可以通过将在处理1中准备的输入数据乘以lfnst核来推导变换系数。可以根据在处理2中确定的lfnst集和预定的lfnst索引来选择lfnst核。
[0322]
例如,当m=8并且应用16
×
16矩阵作为lfnst核时,可以通过将矩阵乘以16个输入数据来生成16个变换系数。生成的变换系数可以按照vvc标准中使用的扫描顺序布置在左上8
×
2或2
×
8区域中。
[0323]
图21例示了根据实施方式的8
×
2或2
×
8区域的扫描顺序。
[0324]
除了左上8
×
2或2
×
8区域之外的所有区域都可以用零值(清零)填充,或者可以将应用一次变换的现有变换系数保持原样。预定lfnst索引可以是当在编程处理中在改变lfnst索引值的同时计算rd成本时尝试的lfnst索引值(0、1、2)之一。
[0325]
在将最坏情况的计算复杂度调整到某个程度或更低的配置的情况下(例如,8次乘法/样本),例如,在通过乘以仅取16
×
16矩阵的上8行的8
×
16矩阵来生成仅8个变换系数之后,变换系数可以按图21的扫描顺序设置,并且可以对其余的系数区域应用清零。稍后将描述最坏情况的复杂度控制。
[0326]
4.当应用逆lfnst时,将预设数量(例如,16个)的变换系数设置为输入向量,并且从处理2获得的lfnst集和从选择解析的lfnst索引推导的lfnst核(例如,16
×
16矩阵)被选择,然后通过将lfnst核与对应的输入向量相乘,可以推导出输出向量。
[0327]
在m
×
2(m
×
1)块的情况下,输出向量可以按图20的(b)的行优先顺序设置,而在2
×
m(1
×
m)块的情况下,输出向量可以是以图20的(a)的列优先顺序设置。
[0328]
除了其中对应的输出向量设置于左上m
×
2(m
×
1)或2
×
m(m
×
2)区域内的区域之外的其余区域以及分区块中除了左上m
×
2(m
×
1)或2
×
m(m
×
2)区域之外的区域(分区块中的m
×
2)区域可以全部被清零为具有零值,或者可以被配置为通过残差编码和逆量化处理原样保持重构的变换系数。
[0329]
在构造输入向量时,如第3点中那样,输入数据可以按照图21的扫描顺序布置,并
且为了将最坏情况的计算复杂度控制在一定程度或更低,可以通过减少输入数据的数量(例如,8个而不是16个)来构造输入向量。
[0330]
例如,当m=8时,如果使用8个输入数据,则可以仅从对应的16
×
16矩阵中取左侧的16
×
8矩阵,并相乘以获得16个输出数据。稍后将描述最坏情况的复杂度控制。
[0331]
在上述实施方式中,当应用lfnst时,示出了在m
×
2(m
×
1)块和2
×
m(1
×
m)块之间应用对称的情况,但是根据另一示例,可以将不同的lfnst集应用于两个块形状中的每一个。
[0332]
在下文中,将描述使用帧内预测模式的映射方法和isp模式的lfnst集配置的各种示例。
[0333]
在isp模式的情况下,lfnst集配置可以与现有的lfnst集不同。换句话说,可以应用与现有lfnst核不同的核,并且可以应用与应用于当前vvc标准的帧内预测模式索引和lfnst集之间的映射表不同的映射表。应用于当前vvc标准的映射表可以与表2的映射表相同。
[0334]
在表2中,premodeintra值表示考虑到waip而改变的帧内预测模式值,lfnsttrsetidx值是指示特定lfnst集的索引值。每个lfnst集都配置有两个lfnst核。
[0335]
当应用isp预测模式时,如果每个分区块的水平长度和垂直长度二者都等于或大于4,则可以应用与当前vvc标准中应用的lfnst核相同的核,并且映射表可以照原样应用。可以应用不同于当前vvc标准的映射表和lfnst核。
[0336]
当应用isp预测模式时,当每个分区块的水平长度或垂直长度小于4时,可以应用不同于当前vvc标准的映射表和lfnst核。在下文中,表6至表8表示帧内预测模式值(考虑到waip而改变的帧内预测模式值)和lfnst集之间的映射表,其可以应用于m
×
2(m
×
1)块或2
×
m(1
×
m)块。
[0337]
[表6]
[0338]
predmodeintralfnsttrsetidxpredmodeintra《010《=predmodeintra《=102《=predmodeintra《=12113《=predmodeintra《=23224《=predmodeintra《=34335《=predmodeintra《=44445《=predmodeintra《=55556《=predmodeintra《=66667《=predmodeintra《=80681《=predmodeintra《=830
[0339]
[表7]
[0340]
predmodeintralfnsttrsetidxpredmodeintra《010《=predmodeintra《=102《=predmodeintra《=231
24《=predmodeintra《=44245《=predmodeintra《=66367《=predmodeintra《=80381《=predmodeintra《=830
[0341]
[表8]
[0342]
predmodeintralfnsttrsetidxpredmodeintra《010《=predmodeintra《=102《=predmodeintra《=80181《=predmodeintra《=830
[0343]
表6的第一映射表配置有七个lfnst集,表7的映射表配置有四个lfnst集,并且表8的映射表配置有两个lfnst集。作为另一示例,当其配置有一个lfnst集时,lfnsttrsetidx值可以相对于premodeintra值固定为0。
[0344]
在下文中,将描述在将lfnst应用于isp模式时保持最坏情况的计算复杂度的方法。
[0345]
在isp模式的情况下,当应用lfnst时,为了将每个样本(或每个系数、每个位置)的乘法次数保持在某个值或更少,可能会限制lfnst的应用。根据分区块的大小,通过如下应用lfnst,每个样本(或每个系数,每个位置)的乘法次数可以保持为8或更少。
[0346]
1.当分区块的水平长度和垂直长度二者都为4或更大时,可以应用与当前vvc标准中针对lfnst的最坏情况的计算复杂度控制方法相同的方法。
[0347]
也就是说,当分区块是4
×
4块时,可以在正向方向上应用通过从16
×
16矩阵中采样上8行获得的8
×
16矩阵而不是16
×
16矩阵,并且可以在逆方向上应用通过从16
×
16矩阵中采样左8列获得的16
×
8矩阵。此外,当分区块是8
×
8块时,在正向方向上,代替16
×
48矩阵,应用通过从16
×
48矩阵中采样上8行而获得的8
×
48矩阵,并且在逆方向上,代替48
×
16矩阵,可以应用通过从48
×
16矩阵中采样左8列获得的48
×
8矩阵。
[0348]
在4
×
n或n
×
4(n》4)块的情况下,当执行正向变换时,在将16
×
16矩阵仅应用于左上4
×
4块之后生成的16个系数可以设置在左上4
×
4区域中,并且其它区域可以填充有值0。另外,在执行逆变换时,将位于左上4
×
4块中的16个系数按扫描顺序设置以形成输入向量,然后可以通过乘以16
×
16矩阵生成16个输出数据。生成的输出数据可以设置在左上4
×
4区域中,并且除了左上4
×
4区域之外的其余区域可以填充有值0。
[0349]
在8
×
n或n
×
8(n》8)块的情况下,当执行正向变换时,在将16
×
48矩阵应用于仅左上8
×
8块内的roi区域(除了来自左上8
×
8块中的右下4
×
4块之外的其余区域)后的生成16个系数可以设置在左上4
×
4区域中,并且所有其它区域可以填充有值0。此外,在执行逆变换时,位于左上4
×
4区域中的16个系数按扫描顺序设置以形成输入向量,然后可以通过乘以48
×
16矩阵生成48个输出数据。生成的输出数据可以填充在roi区域中,并且所有其它区域可以填充有值0。
[0350]
2.当分区块的大小为n
×
2或2
×
n并且lfnst应用于左上m
×
2或2
×
m区域(m≤n)时,可以应用根据n值采样的矩阵。
[0351]
在m=8的情况下,对于n=8的分区块,即,8
×
2或2
×
8块,在正向变换的情况下,可
以应用通过从16
×
16矩阵中采样上8行获得的8
×
16矩阵而不是16
×
16的矩阵,并且在逆变换的情况下,可以应用通过从16
×
16矩阵中采样左8列获得的16
×
8矩阵而不是16
×
16矩阵。
[0352]
当n大于8时,在正向变换的情况下,将16
×
16矩阵应用于左上8
×
2或2
×
8块后生成的16个输出数据被设置在左上8
×
2或2
×
8块中,并且其余区域可以填充有值0。在逆变换的情况下,位于左上8
×
2或2
×
8块中的16个系数按扫描顺序设置以形成输入向量,然后可以通过乘以16
×
16矩阵生成16个输出数据。生成的输出数据可以放置在左上8
×
2或2
×
8块中,并且所有其余区域可以填充有值0。
[0353]
3.当分区块的大小为n
×
1或1
×
n并且lfnst应用于左上m
×
1或1
×
m区域(m≤n)时,可以应用根据n值采样的矩阵。
[0354]
当m=16时,对于n=16的分区块,即,16
×
1或1
×
16块,在正向变换的情况下,可以应用通过从16
×
16矩阵中采样上8行获得的8
×
16矩阵而不是16
×
16的矩阵,并且在逆变换的情况下,可以应用通过从16
×
16矩阵中采样左8列获得的16
×
8矩阵而不是16
×
16矩阵。
[0355]
当n大于16时,在正向变换的情况下,将16
×
16矩阵应用于左上16
×
1或1
×
16块后生成的16个输出数据可以设置在左上16
×
1或1
×
16块中,并且其余区域可以填充有值0。在逆变换的情况下,可以将位于左上16
×
1或1
×
16块中的16个系数按扫描顺序设置以形成输入向量,然后可以通过乘以16
×
16矩阵生成16个输出数据。生成的输出数据可以设置在左上16
×
1或1
×
16块中,并且所有其余区域可以填充有值0。
[0356]
作为另一示例,为了将每个样本(或每个系数,每个位置)的乘法次数保持在某个值或更少,基于isp编码单元大小而不是isp分区块的大小的每个样本(或每个系数,每个位置)的乘法次数可以保持为8或更少。当isp分区块当中只有一个块满足应用lfnst的条件时,可以基于对应的编码单元大小而不是分区块的大小来应用lfnst的最坏情况的复杂度计算。例如,一个编码单元(cu)的亮度编码块被划分(或分区)为四个分区块,每个分区块具有4
×
4的大小。此外,在本文中,在四个分区块当中,如果对于两个分区块不存在非零变换系数,则其余的两个分区块中的每一者可被配置为在其中生成16个变换系数,而不是8个变换系数(基于编码器)。
[0357]
在下文中,将描述用于在isp模式的情况下发信号通知lfnst索引的方法。
[0358]
如上所述,lfnst索引可以具有值0、1、2,其中,0指示未应用lfnst,并且其中,1和2分别指示包括在所选择的lfnst集中的两个lfnst核矩阵中的每一个。基于由lfnst索引选择的lfnst核矩阵来应用lfnst。在当前的vvc标准中,根据其发送lfnst的方法将描述如下。
[0359]
1.可以针对每个编码单元(cu)发送一次lfnst索引,并且在双树的情况下,可以针对亮度块和色度块中的每一者单独地发信号通知lfnst索引。
[0360]
2.当未发信号通知lfnst索引时,将lfnst索引推断为作为默认值的0。下面将描述lfnst索引值被推断为0的情况。
[0361]
a.当模式对应于不应用变换的模式(例如,变换跳过、bdpcm、无损编码等)时
[0362]
b.当一次变换不是dct-2(dst7或dct8)时,即,当水平变换或垂直变换不是dct-2时
[0363]
c.当编码单元的亮度块的水平长度或垂直长度超过可用于变换的最大亮度变换大小,例如,当可用于变换的最大亮度变换大小等于64时,并且当编码块的亮度块的大小等
于128
×
16时,无法应用lfnst。
[0364]
在双树的情况下,针对亮度元素的编码单元和色度元素的编码单元中的每一者确定是否超过最大亮度变换大小。也就是说,对于亮度块检查是否超过可用于变换的最大亮度变换大小,并且对于色度块检查是否超过可用于颜色格式的对应亮度块的变换的最大亮度变换大小和水平/垂直长度。例如,当颜色格式为4:2:0时,对应亮度块的水平/垂直长度中的每一者变成对应色度块的长度的两倍,并且对应亮度块的变换大小变成对应色度块的大小的2倍。作为另一示例,当颜色格式为4:4:4时,对应亮度块的水平/垂直长度以及变换大小与对应色度块相同。
[0365]
64-长度变换或32-长度变换表示分别应用于64或32的水平长度或垂直长度的变换。此外,“变换大小”可以表示64或32的对应长度。
[0366]
在单树的情况下,在检查亮度块的水平长度或垂直长度是否超过可用于变换的最大亮度变换块大小之后,当长度超过变换块大小时,可以跳过(或省略)lfnst索引信令。
[0367]
d.lfnst索引可以仅在编码单元的水平长度和垂直长度两者等于4或更大时才发送。
[0368]
在双树的情况下,可以仅在对应元素(即,亮度元素或色度元素)的水平长度和垂直长度两者等于4或更大时发信号通知lfnst索引。
[0369]
在单树的情况下,当亮度元素的水平长度和垂直长度两者等于4或更大时,可以发信号通知lfnst索引。
[0370]
e.当最后非零系数位置不是dc位置(块中的左上位置)时,如果块是双树类型亮度块,并且如果最后非零系数位置不是dc位置,则发送lfnst索引。如果块为双树类型色度块,并且如果cb的最后非零系数位置和cr的最后非零系数位置中的至少一者不是dc位置,则发送对应的lfnst索引。
[0371]
在单树类型的情况下,对于亮度元素、cb元素和cr元素中的任何一个,如果对应的最后非零系数位置不是dc位置,则发送lfnst索引。
[0372]
在本文中,当指示一个变换块的变换系数的存在或不存在的编码块标志(cbf)值等于0时,为了确定是否执行lfnst索引信令,不检查对应变换块的最后非零系数位置。也就是说,当对应cbf值等于0时,由于变换不应用于对应块,所以当检查用于lfnst索引信令的条件时,可以不考虑最后非零系数位置。
[0373]
例如,1)在双树类型和亮度元素的情况下,如果对应cbf值等于0,则不发信号通知lfnst索引,2)在双树类型和色度元素的情况下,如果cb的cbf值等于0且cr的cbf值等于1,则仅检查cr的最后非零系数位置的位置以便发送对应的lfnst索引,并且3)在单树类型的情况下,仅检查各自具有cbf值1的亮度元素、cb元素或cr元素的最后非零系数位置。
[0374]
f.当验证变换系数存在于除了可以存在lfnst变换系数的位置之外的位置中时,可以跳过(或省略)lfnst索引信令。在4
×
4变换块和8
×
8变换块的情况下,根据vvc标准的变换系数扫描顺序,lfnst变换系数可以存在于从dc位置开始的8个位置中,并且所有其余的位置可以用0填充。附加地,在变换块不是4
×
4变换块和8
×
8变换块的情况下,根据vvc标准的变换系数扫描顺序,lfnst变换系数可以存在于从dc位置开始的16个位置中,并且所有其余的位置可以用0填充。
[0375]
因此,在执行残差编码之后,当非零变换系数存在于应当仅填充有0值的区域中
时,可以跳过(或省略)lfnst索引信令。
[0376]
此外,isp模式可以仅应用于亮度块或可以应用于亮度块和色度块两者。如上所述,当应用isp预测时,在将对应编码单元划分(或分区)为2或4个分区块之后执行预测,并且也可以将变换应用于对应的分区块中的每一个。因此,即使在通过编码单元确定用于发信号通知lfnst索引的条件时,应当考虑lfnst可以被应用于对应的分区块中的每一个。附加地,当将isp预测模式仅应用于特定元素(例如,亮度块)时,应当基于以下事实发信号通知lfnst索引:仅针对对应元素将编码单元划分成分区块。下面将描述可用于isp模式的lfnst索引信令方法。
[0377]
1.可以针对每个编码单元(cu)发送一次lfnst索引,并且在双树的情况下,可以针对亮度块和色度块中的每一者单独地发信号通知lfnst索引。
[0378]
2.当未发信号通知lfnst索引时,将lfnst索引推断为作为默认值的0。下面将描述lfnst索引值被推断为0的情况。
[0379]
a.当模式对应于不应用变换的模式(例如,变换跳过、bdpcm、无损编码等)时
[0380]
b.当一次变换不是dct-2(dst7或dct8)时,即,当水平变换或垂直变换不是dct-2时
[0381]
可以基于分区块而非编码单元的大小来确定是否执行lfnst索引的信令。也就是说,当对应亮度块的分区块的水平长度或垂直长度超过可用于变换的最大亮度变换大小时,可以跳过(或省略)lfnst索引信令,并且可以将lfnst索引值推断为0。
[0382]
在双树的情况下,对于亮度元素的每个编码单元或分区块以及对于色度元素的每个编码单元或分区块确定是否超过最大块变换大小。也就是说,通过将亮度元素的编码单元或分区块的水平长度和垂直长度中的每一者与最大亮度变换大小进行比较,并且当确定至少一个长度大于最大亮度变换大小时,不应用lfnst。此外,在色度元素的编码单元或分区块的情况下,将用于颜色格式的对应亮度块的水平/垂直长度与可用于最大变换的最大亮度变换大小进行比较。例如,当颜色格式为4:2:0时,对应亮度块的水平/垂直长度中的每一者变成对应色度块的长度的两倍,并且对应亮度块的变换大小变成对应色度块的大小的2倍。作为另一示例,当颜色格式为4:4:4时,对应亮度块的水平/垂直长度以及变换大小与对应色度块相同。
[0383]
在单树的情况下,在检查亮度块(编码单元或分区块)的水平长度或垂直长度是否超过可用于变换的最大亮度变换块大小之后,当长度超过变换块大小时,可以跳过(或省略)lfnst索引信令。
[0384]
c.如果应用了包括在当前vvc标准中的lfnst,则可以仅当分区块的水平长度和垂直长度二者都等于4或更大时才发送lfnst索引。
[0385]
除了包括在当前vvc标准中的lfnst之外,如果用于2
×
m(1
×
m)或m
×
2(m
×
1)块的lfnst被应用,则可以仅针对其中分区块大小等于或大于2
×
m(1
×
m)或m
×
2(m
×
1)块的情况发送lfnst索引。这里,当p
×
q块等于或大于r
×
s块时,这表示p≥r并且q≥s。
[0386]
总之,可以仅针对其中分区块大小等于或大于可以应用lfnst的最小大小的情况发送lfnst索引。在双树的情况下,可以仅在亮度或色度元素的分区块的大小等于或大于可应用lfnst的最小大小的情况下发信号通知lfnst索引。在单树的情况下,可以仅在亮度元素的分区块的大小等于或大于可应用lfnst的最小大小的情况下发信号通知lfnst索引。
[0387]
在本说明书中,当m
×
n块等于或大于k
×
l块时,这表示m等于或大于k并且n等于或大于l。当m
×
n块大于k
×
l块时,这表示m等于或大于k并且n等于或大于l,同时m大于k或者n大于l。当m
×
n块小于或等于k
×
l块时,这表示m小于或等于k并且n小于或等于l。此外,当m
×
n块小于k
×
l块时,这表示m小于或等于k并且n小于或等于l,同时m小于k或者n小于l。
[0388]
d.当最后非零系数位置不是dc位置(块中的左上位置)时,如果块是双树类型亮度块,并且如果所有分区块中的即使一个分区块的对应的最后非零系数位置不是dc位置,则可以发送lfnst索引。如果块为双树类型色度块,并且如果用于cb的所有分区块的最后非零系数位置(当isp模式未应用于色度元素时,假定分区块的数量等于1)和用于cr的所有分区块的最后非零系数位置(当isp模式未应用于色度元素时,假定分区块的数量等于1)中的即使一者不是dc位置,则可发送对应的lfnst索引。
[0389]
在单树类型的情况下,对于亮度元素、cb元素和cr元素中的任一者,如果所有分区块中的即使一个分区块的对应最后非零系数位置不是dc位置,则可发送lfnst索引。
[0390]
在本文中,当指示每个分区块的变换系数的存在或不存在的编码块标志(cbf)值等于0时,为了确定是否执行lfnst索引信令,不检查对应分区块的最后非零系数位置。也就是说,当对应cbf值等于0时,由于变换未应用于对应的块,所以当检查用于lfnst索引信令的条件时,考虑对应分区块的最后非零系数位置。
[0391]
例如,1)在双树类型和亮度元素的情况下,如果每个分区块的对应cbf值等于0,则在确定是否执行lfnst索引信令时排除对应分区块,2)在双树类型和色度元素的情况下,如果对于每个分区块,cb的cbf值等于0且cr的cbf值等于1,则仅检查cr的最后非零系数位置的位置,以便确定是否执行对应的lfnst索引信令,并且3)在单树类型的情况下,仅检查所有分区块的各自具有为1的cbf值的亮度元素、cb元素或cr元素的最后非零系数位置,以便确定是否执行lfnst索引信令。
[0392]
在isp模式的情况下,图像信息可以被配置为使得最后非零系数位置不被检查,并且下面将描述对应的实施方式。
[0393]
i.在isp模式的情况下,跳过亮度块和色度块两者的最后非零系数位置的检查,并且可以授权lfnst索引信令。也就是说,即使所有分区块的最后非零系数位置是dc位置或具有对应的cbf值0,对应的lfnst索引信令也可以被授权。
[0394]
ii.在isp模式的情况下,仅亮度块的最后非零系数位置的检查被跳过,并且对于色度块,可以执行根据上述方法的最后非零系数位置的检查。例如,在双树类型和亮度块的情况下,不执行最后非零系数位置的检查,并且可以授权lfnst索引信令。此外,在双树类型和色度块的情况下,根据上述方法检查对应于最后非零系数位置的dc位置的存在或不存在,以便确定是否执行对应的lfnst索引的信令。
[0395]
iii.在isp模式和单树类型的情况下,可以应用方法编号i和方法编号ii。也就是说,在将方法编号i应用于isp模式和单树类型的情况下,可以跳过对亮度块和色度块两者的最后非零系数位置的检查,并且可以授权lfnst索引信令。另选地,通过应用方法编号ii,可以跳过对亮度元素的分区块的最后非零系数位置的检查,并且根据上述方法执行对色度元素的分区块的最后非零系数位置的检查(当isp模式未应用于色度元素时,可假定分区块的数量等于1),以便确定是否执行对应的lfnst索引信令。
[0396]
e.当即使对于所有分区块当中的一个分区块验证在除了可以存在lfnst变换系数
的位置之外的位置中存在变换系数时,可以跳过(或省略)lfnst索引信令。
[0397]
例如,在4
×
4分区块和8
×
8分区块的情况下,根据vvc标准的变换系数扫描顺序,lfnst变换系数可以存在于从dc位置开始的8个位置中,并且所有其余的位置可以用0填充。附加地,在分区块等于或大于4
×
4的情况下,并且在分区块不是4
×
4分区块和8
×
8分区块的情况下,根据vvc标准的变换系数扫描顺序,lfnst变换系数可以存在于从dc位置开始的16个位置中,并且所有其余的位置可以用0填充。
[0398]
因此,在执行残差编码之后,当非零变换系数存在于应仅填充有0值的区域中时,可以跳过(或省略)lfnst索引信令。
[0399]
如果即使对于其中分区块大小等于2
×
m(1
×
m)或m
×
2(m
×
1)的情况可以应用lfnst,则可以如下所述指定lfnst变换系数可以位于的区域。可以用0填充其中lfnst变换系数可以位于的区域之外的区域。此外,当假设已经应用lfnst时,如果在应当用0填充的区域中存在非零变换系数,则可以跳过lfnst索引信令。
[0400]
i.当lfnst可以被应用到2
×
m或m
×
2块时,并且当m=8时,可以仅针对2
×
8或8
×
2分区块生成8个lfnst变换系数。当按图20所示的扫描顺序布置变换系数时,按照从dc位置开始的扫描顺序布置8个变换系数,并且可以用0填充其余8个位置。
[0401]
可以针对2
×
n或n
×
2(n>8)分区块生成16个lfnst变换系数。当按图20所示的扫描顺序布置变换系数时,按照从dc位置开始的扫描顺序布置16个变换系数,并且可以用0填充其余区域。也就是说,在2
×
n或n
×
2(n》8)分区块中,除了左上2
×
8或8
×
2块之外的区域可以填充有0。代替8个lfnst变换系数,还可以针对2
×
8或8
×
2分区块生成16个系数块,并且在此情况下,不存在需要用0填充的区域。如上所述,当应用lfnst时,当非零变换系数被检测为存在于(即使在一个划分块中)被指定为用0填充的区域中时,可以跳过lfnst索引信令,并且可以将lfnst索引推断为0。
[0402]
ii.当lfnst可以被应用于1
×
m或m
×
1块时,并且当m=16时,可以仅针对1
×
16或16
×
1分区块生成8个lfnst变换系数。当变换系数按照从左到右或从上到下的扫描顺序布置时,按照从dc位置开始的对应扫描顺序布置8个变换系数,并且其余8个位置可以填充有0。
[0403]
可以针对1
×
n或n
×
1(n>16)分区块生成16个lfnst变换系数。当变换系数按照从左到右或从上到下的扫描顺序布置时,按照从dc位置开始的对应扫描顺序布置16个变换系数,并且其余区域可以填充有0。也就是说,在1
×
n或n
×
1(n》16)分区块中,除了左上1
×
16或16
×
1块之外的区域可以用0填充。
[0404]
代替8个lfnst变换系数,还可以针对1
×
16或16
×
1分区块生成16个系数块,并且在这种情况下,不存在需要用0填充的区域。如上所述,当应用lfnst时,当非零变换系数被检测为存在于(即使在一个划分块中)被指定为用0填充的区域中时,可以跳过lfnst索引信令,并且可以将lfnst索引推断为0。
[0405]
此外,在isp模式的情况下,在当前vvc标准中,通过独立地(或单独地)参考水平方向和垂直方向的长度条件,应用dst-7,而不是dct-2,而不执行针对mts索引的信令。取决于水平长度或垂直长度是否等于或大于4且小于或等于16,确定一次变换核。因此,在isp模式的情况下,并且当可以应用lfnst时,可以如下所述配置以下变换组合。
[0406]
1.对于lfnst索引是0的情况(包括lfnst索引被推断为0的情况),可以遵循当前
vvc标准中包括的用于确定与isp模式相对应的一次变换的条件。也就是说,通过独立地(或单独地)检查水平方向和垂直方向的长度条件(即,长度等于或大于4且小于或等于16的条件)是否满足,如果满足长度条件,则针对一次变换应用dst-7而非dct-2。此外,如果不满足长度条件,则可以应用dct-2。
[0407]
2.对于lfnst索引大于0的情况,对于一次变换,以下两种配置是可能的。
[0408]
a.dct-2可以应用于水平方向和垂直方向两者。
[0409]
b.可以遵循包括在当前vvc标准中的用于确定对应于isp模式的一次变换的条件。也就是说,通过独立地(或单独地)检查水平方向和垂直方向的长度条件(即,长度等于或大于4且小于或等于16的条件)是否满足,如果满足长度条件,则应用dst-7,而不是dct-2。此外,如果不满足长度条件,则可以应用dct-2。
[0410]
在isp模式的情况下,图像信息可以被配置为使得可以针对每个分区块发送lfnst索引,而不是针对每个编码单元发送lfnst索引。在这种情况下,上述lfnst索引信令方法假设仅有一个分区块存在于通过其发送lfnst索引的单元内,并且可以确定是否执行lfnst索引信令。
[0411]
在isp模式中应用lfnst的上述实施方式可以总结如下。
[0412]
(1)当在isp模式中应用lfnst时,被划分(或分区)的变换单元应当具有4
×
4或更大的最小大小。
[0413]
(2)可以使用lfnst核,其与应用于未应用isp模式的编码单元的常规lfnst核相同。
[0414]
(3)所有变换单元应当满足最大(或最高)最后位置值条件(即,最后非零有效系数的位置条件)。如果一个或更多个变换单元不满足最大最后位置条件,则不使用lfnst,并且不解析lfnst索引。
[0415]
(4)当应用isp模式时,可以丢弃(或忽略)允许当有效系数存在于除了dc位置之外的位置中时应用lfnst的配置。
[0416]
(5)如果应用lfnst,则dct-2用于应用isp模式的变换单元的一次变换。
[0417]
下面示出的表9指示包含上文所描述的细节的语法元素。
[0418]
[表9]
[0419][0420]
表9配置了根据树类型的应用lfnst的区域的宽度和高度并且指示用于发送lfnst索引的条件。表9的语法元素可以在编码单元(cu)级别发信号通知。在双树的情况下,可以针对亮度块和色度块中的每一者发信号通知单独的lfnst索引。
[0421]
首先,如果编码单元的树类型是双树色度,则lfnst被应用于其的区域的宽度(lfnstwidth)可以被设置为根据编码单元的宽度反映颜色格式的宽度((treetype==dual_tree_chroma)?cbwidth/subwidthc)。
[0422]
相反,如果编码单元的树类型不是双树色度,即,在双树亮度或单树的情况下,lfnst被应用于其的区域的宽度(lfnstwidth)可以根据编码单元是否通过isp划分(或分区)而被设置为将编码单元除以子分区的数量而获得的值,或者编码单元的宽度((intrasubpartitionssplittype==isp_ver_split)?cbwidth/numintrasubpartitions:cbwidth)。也就是说,如果通过isp沿着垂直方向划分(或分区)编码单元(intrasubpartitionssplittype==isp_ver_split),则应用lfnst的区域的宽度可以被设置为通过将编码单元除以子分区的数量而获得的值(cbwidth/numintrasubpartitions),并且如果编码单元未被划分(或分区),则对应的区域的宽度可以被设置为编码单元的宽度(cbwidth)。
[0423]
类似地,如果编码单元的树类型为双树色度,则可以将lfnst被应用于其(lfnstheight)的区域的高度设置为根据编码单元的高度反映颜色格式的高度((treetype==dual_tree_chroma)?cbheight/subheightc)。
[0424]
相反,如果编码单元的树类型不是双树色度,即,在双树亮度或单树的情况下,lfnst被应用于其的区域的高度(lfnstheight)可以根据编码单元是否通过isp划分(或分区)而被设置为将编码单元除以子分区的数量而获得的值,或者编码单元的高度((intrasubpartitionssplittype==isp_hor_split)?cbheight/numintrasubpartitions:cbheight)。也就是说,如果通过isp沿着水平方向划分(或分区)编码单元(intrasubpartitionssplittype==isp_hor_split),则应用lfnst的区域的高
度可以被设置为通过将编码单元除以子分区的数量而获得的值(cbheight/numintrasubpartitions),并且如果编码单元未被划分(或分区),则对应的区域的高度可以被设置为编码单元的高度(cbheight)。
[0425]
为了允许如上所述地应用lfnst,lfnst被应用于其的区域的宽度和高度应当各自等于或大于4(min(lfnstwidth,lfnstheight)》=4)。也就是说,在编码双树的情况下,可以仅在对应的元素(即,亮度或色度元素)的水平长度和垂直长度两者等于或大于4的情况下发信号通知lfnst索引。此外,在单个树的情况下,可以在亮度元素的水平长度和垂直长度二者都等于或大于4的情况下发信号通知lfnst索引。
[0426]
在isp被应用于编码单元的情况下,可以仅在分区块的水平长度和垂直长度二者都等于或大于4的情况下发送lfnst索引。
[0427]
附加地,如果编码单元的亮度块的水平长度或垂直长度超过可用于变换的最大亮度变换大小(当不满足max(cbwidth,cbheight)《=maxtbsizey的条件时),则无法应用lfnst,并且不发送lfnst索引。
[0428]
附加地,可以仅在最后非零系数位置不是dc位置(块中的左上位置)时发信号通知lfnst索引。
[0429]
在双树类型亮度块的情况下,如果最后非零系数位置不是dc位置,则发送lfnst索引。在双树色度块的情况下,即使cb的最后非零系数位置和cr的最后非零系数位置中的一者不是dc位置,发送对应的lfnst索引。在单树类型的情况下,如果亮度元素、cb元素和cr元素中的即使一个的对应的最后非零系数位置不是dc位置,则可以发送lfnst索引。
[0430]
此外,当将isp应用于编码单元时,可以在不检查最后非零系数位置(intrasubpartitionssplittype!=isp_no_split||lfnstdconly==0)的情况下发信号通知lfnst索引。也就是说,即使所有分区块的最后非零系数位置位于dc位置,也可以授权lfnst索引信令。
[0431]
最后,当验证在除了可以存在lfnst变换系数的位置之外的位置中存在变换系数时,可以跳过lfnst索引信令(lfnst zero out sig coeff flag==1)。
[0432]
当isp被应用到编码单元时,如果验证在除了可以存在lfnst变换系数的位置之外的位置中存在变换系数(即使对于所有分区块中的一个分区块),可以跳过lfnst索引信令。
[0433]
在下文中,当应用isp模式时,将描述当使用8
×
8的lfnst时使用16
×
36矩阵的示例。
[0434]
在isp模式的情况下,并且当应用lfnst时,在分区块的水平长度和垂直长度二者都等于或大于8的情况下,可以使用16
×
36矩阵(基于正向lfnst)代替16
×
48矩阵(基于正向lfnst)。
[0435]
如上所述,当应用逆8
×
8 lfnst时,可以通过将48
×
16 lfnst核应用于16个系数来推导48个系数。推导出的48个系数可以布置在变换单元中,如图8所示。
[0436]
此外,根据实施方式,可以提出推导36个系数而非48个系数的36
×
16 lfnst核。
[0437]
图22是示出根据示例的根据16
×
36 lfnst核的36个系数的布置的图。
[0438]
可以根据lfnst索引来确定36个系数的位置。例如,如果lfnst索引为1,则36个系数可以如图22的(a)中所示进行布置,并且如果lfnst索引是2,则36个系数可以如图22的(b)中所示进行布置。
[0439]
提供以下附图以描述本公开的具体示例。由于在附图中示出的装置的特定名称或特定信号/消息/字段的名称是为了例示而提供的,所以本公开的技术特征不限于在以下附图中使用的特定名称。
[0440]
图23是例示根据本文档的实施方式的视频解码设备的操作的流程图。
[0441]
图23中公开的每个步骤基于以上在图4至图22中描述的一些内容。因此,将省略或简化与以上在图3至图22中描述的那些内容重复的详细描述。
[0442]
根据本实施方式的解码设备300可以从比特流接收残差信息(s2310)。
[0443]
更具体地,解码设备300可以从比特流解码关于目标块的量化变换系数的信息,并且可以基于关于当前块的量化变换系数的信息来推导当前块的量化变换系数。关于目标块的量化变换系数的信息可以包括在序列参数集(sps)或条带报头中,并且可以包括关于是否应用缩减变换(rst)的信息、关于简化因子的信息、关于应用缩减变换的最小变换大小的信息、关于应用缩减变换的最大变换大小的信息、缩减逆变换大小、以及关于指示包括在变换集中的任何一个变换核矩阵的变换索引的信息中的至少一者。
[0444]
附加地,解码设备还可以接收关于当前块的帧内预测模式的信息以及关于isp是否应用于当前块的信息。通过接收并解析指示是否应用isp代码或isp模式的标志信息,解码设备可以推导当前块是否被划分(或分割或分区)成预定数量的子分区变换块。在本文中,当前块可以是编码块。此外,解码设备可以通过指示要沿着哪个方向划分(分区)当前块的标志信息来推导划分的子分区块的大小和数量。
[0445]
例如,如图17所示,在当前块的大小(宽度
×
高度)为8
×
4时,可以将当前块垂直划分并且划分为两个子块,并且在当前块的大小(宽度
×
高度)是4
×
8时,当前块可以被水平划分并且划分为两个子块。另选地,如图18所示,在当前块的大小(宽度
×
高度)大于4
×
8或8
×
4时,也就是说,在当前块的大小为:1)4
×
n或n
×
4(n≥16)或2)m
×
n(m≥8,n≥8)时,当前块可以在水平方向或垂直方向上划分为4个子块。
[0446]
将相同帧内预测模式应用于从当前块划分(或分区)的子分区块,并且解码设备可以推导每个子分区块的预测样本。也就是说,根据子分区块的划分格式,例如,解码设备水平地或垂直地、从左到右或从上到下依次执行帧内预测。对于最左的子块或最右的子块,参考已经被编码的编码块的重构像素,如在一般帧内预测方法中那样。附加地,当先前的子分区块不与随后的内部子分区块的每一侧相邻时,为了推导与对应侧相邻的参考像素,参考已编码的邻近编码块的重构像素,如在一般帧内预测方法中那样。
[0447]
解码设备300可以推导当前块的残差信息,即,通过对量化变换系数执行解量化来推导变换系数(s2320)。
[0448]
可以根据4
×
4块单元中的反对角线扫描顺序来布置(或对齐)所推导的变换系数,并且还可以根据反对角线扫描顺序来布置4
×
4块内的变换系数。也就是说,利用解量化处理的变换系数可以根据应用于视频编解码器(诸如vvc或hevc)中的反扫描顺序来布置。
[0449]
如上所述,基于这种残差信息推导的变换系数可以是解量化变换系数。也就是说,不管执行还是不执行量化,变换系数将足以是可以检查系数是否是当前块中的非零数据的数据。
[0450]
根据示例,解码设备可以通过将lfnst应用于变换系数来推导修改(或校正)的变换系数。
[0451]
与分离地将作为变换目标的系数沿着垂直或水平方向进行变换的一次变换不同,lfnst是在不沿着特定方向分离系数的情况下应用变换的不可分离的变换。此类不可分离的变换可以是仅在低频区域而非整个块区域中应用正向变换的低频不可分离的变换。
[0452]
lfnst索引信息作为语法信息被接收,并且语法信息可以作为包括0和1的二值化bin串被接收。
[0453]
根据本实施方式的lfnst索引的语法元素可以指示是否应用逆lfnst或逆不可分离的变换以及包括在变换集中的变换核矩阵中的任何一个。
[0454]
也就是说,根据实施方式,用于lfnst索引的语法元素值可以包括0、1和2,0指示其中逆lfnst不应用于目标块的情况,1指示两个变换核矩阵中的第一变换核矩阵,并且2指示两个变换核矩阵中的第二变换核矩阵。
[0455]
帧内预测模式信息和lfnst索引信息可以在编码单元级别发信号通知。
[0456]
附加地,根据实施方式的解码设备还可以确定变换系数是否存在于除了当前块的左上第一区域之外的第二区域中。此外,如果在第二区域中不存在变换系数,则可以解析lfnst索引。
[0457]
通过推导指示在除了当前块的左上第一区域之外的第二区域中是否存在有效系数的变量,可以检查是否已执行第二区域的清零。
[0458]
变量可以是变量lfnstzerooutsigcoeffflag,其可以指示已在应用lfnst时执行清零。变量lfnstzerooutsigcoeffflag可以初始设置为1,并且当在第二区域中存在有效系数时,变量lfnstzerooutsigcoeffflag可以改变为0。
[0459]
当其中存在最后非零系数的子块的索引大于0且变换块的宽度和高度二者等于或大于4时,或者当其中存在最后非零系数的子块内的非零系数的最后位置大于7时,并且当变换块大小等于4
×
4或8
×
8时,变量lfnstzerooutsigcoeffflag可以被推导为0。
[0460]
也就是说,当从变换块中除了可以存在lfnst变换系数的左上区域之外的区域中推导出非零系数时,或者当非零系数存在于4
×
4块和8
×
8块的扫描顺序的第八位置之外时,变量lfnstzerooutsigcoeffflag被设置为0。
[0461]
根据示例,当将isp应用于编码单元时,也可以将针对lfnst的第二区域的清零应用于所有子分区块。此时,如果针对即使一个子分区块验证出变换系数存在于除了可以存在lfnst变换系数的位置之外的位置中,则可以跳过lfnst索引信令。
[0462]
解码设备可以基于用于校正(或修改)的变换系数的一次逆变换或从残差信息推导的变换系数来推导当前块的残差样本,并且当当前块被划分成子分区块时,解码设备可以基于子分区块的水平长度或垂直长度推导用于应用于子分区块的逆一次变换的变换核(s2330)。
[0463]
如上所述,在当前块被划分成子分区块时,对于逆一次变换,可以不发信号通知多个mts索引。在此情况下,可以将隐式mts应用于子分区块,并且可以基于子分区块的水平长度或垂直长度推导变换核。
[0464]
根据示例,可以基于子分区块的水平长度或垂直长度是否等于或大于4且小于或等于16来推导变换核。
[0465]
如果子分区块的水平长度和垂直长度中的每一者等于或大于4且小于或等于16,则变换核可以推导为dst-7。此外,在其它情况下,即,如果子分区块的水平长度和垂直长度
时,也就是说,在当前块的大小为:1)4
×
n或n
×
4(n≥16)或2)m
×
n(m≥8,n≥8)时,当前块可以在水平方向或垂直方向上划分为4个子块。
[0483]
相同的帧内预测模式可以应用于从当前块划分的子分区变换块,并且编码设备可以推导每个子分区变换块的预测样本。也就是说,编码设备根据子分区变换块的划分形式从左到右或从上到下,例如,水平地或垂直地,依次执行帧内预测。对于最左或最上的子块,参考已经编码的编码块的重构像素,如在传统帧内预测方法中一样。另外,对于后续的内部子分区变换块的每一侧,当其不与前一个子分区变换块相邻时,为了推导与对应侧相邻的参考像素,参考已经编码的相邻编码块的重构像素,如在传统帧内预测方法中一样。
[0484]
编码设备200可以基于预测样本推导当前块的残差样本(s2410)。
[0485]
附加地,编码设备200可以基于残差样本的一次变换来推导当前块的变换系数。更具体地,当当前块被划分成子分区块时,编码设备200基于子分区块的水平长度或垂直长度来推导应用于子分区块的一次变换的变换核(s2420)。此外,然后,编码设备200可以基于变换核推导变换系数(s2430)。
[0486]
可以通过多个变换核执行一次变换,并且在这种情况下,可以基于帧内预测模式来选择变换核。
[0487]
根据示例,当将当前块划分成子分区块时,可以将隐式mts应用于子分区块,并且可以基于子分区块的水平长度或垂直长度推导变换核。
[0488]
根据示例,可以基于子分区块的水平长度或垂直长度是否等于或大于4且小于或等于16来推导变换核。
[0489]
如果子分区块的水平长度或垂直长度等于或大于4且小于或等于16,则变换核可以被推导为dst-7。此外,在其它情况下,即,如果子分区块的水平长度或垂直长度不满足等于或大于4且小于或等于16的条件,则变换核可以被推导为dct-2。
[0490]
附加地,编码设备可以配置变换核被应用于其并且指示子分区块内的可以存在有效变换系数的区域的非清零块的大小,并且编码设备可以基于这样的非清零块的大小推导变换系数。
[0491]
由于子分区块的水平长度和垂直长度中的每一者等于或大于4且小于或等于16,所以如果使用dst-7作为变换核,则可以将非清零块的宽度和高度设置为16。
[0492]
此外,如果子分区块的水平长度和垂直长度中的每一者不满足等于或大于4且小于或等于16的条件,并且因此如果使用dct-2作为变换核,则可以将非清零块的宽度和高度设置为多达32或更小。
[0493]
也就是说,根据示例,当应用多变换选择时(当可以应用dst-7或dct-8时),编码设备可以将非清零块的宽度或高度设置为16。此外,当不应用多变换选择时,编码设备可以将非清零块的宽度或高度设置为32或更小。
[0494]
如上所述,当isp被应用于当前块时,可以不发信号通知指示变换核的mts索引。
[0495]
此外,可以将上述lfnst应用于当前块,并且在这种情况下,可以对子分区块执行与lfnst相对应的第二区域的清零。
[0496]
当不执行lfnst时,可以将dct-2用作子分区块中的一次变换的变换核,并且可以将非清零块的宽度或高度设置为32或更小。
[0497]
当执行lfnst时,如果lfnst被应用于执行根据一次变换的清零的变换系数,则在
应用lfnst之后,可以再次用清零来处理第二区域。同样在这种情况下,可以使用dct-2作为子分区块中的一次变换的变换核,并且可以将非清零块的宽度或高度设置为32或更小。
[0498]
编码设备200可以确定是否对当前块的变换系数执行二次变换或不可分离的变换(更具体来说,lfnst),并且可以通过将lfnst应用于变换系数来推导修改的变换系数。
[0499]
与分离地将作为变换目标的系数沿着垂直或水平方向进行变换的一次变换不同,lfnst是在不沿着特定方向分离系数的情况下应用变换的不可分离的变换。此类不可分离的变换可以是仅在低频区域而非整个块区域中应用正向变换的低频不可分离的变换。
[0500]
另外,根据示例,编码设备可以将除了子分区块或当前块的左上第一区域之外的第二区域清零,如图14和图15所示。
[0501]
编码设备可以推导当前块的修改的变换系数或者通过基于变换系数执行量化来推导量化变换系数,并且可以对包括关于量化变换系数的信息的图像信息进行编码(s2440)。
[0502]
也就是说,编码设备可以生成包括关于量化变换系数的信息的残差信息。残差信息可以包括上述变换相关信息/语法元素。编码设备可以对包括残差信息的图像/视频信息进行编码并且以比特流的形式输出编码的图像/视频信息。
[0503]
更具体地,编码设备200可以生成关于量化变换系数的信息并且对关于所生成的量化变换系数的信息进行编码。
[0504]
当图像信息可以应用lfnst时,图像信息可以包括指示lfnst矩阵的lfnst索引。
[0505]
根据本实施方式的lfnst索引的语法元素可以指示是否应用(逆)lfnst以及lfnst集中包括的任何一个lfnst矩阵,并且当lfnst集包括两个变换核矩阵时,lfnst索引的语法元素可以存在三个值。
[0506]
根据实施方式,在当前块的划分树结构是双树类型时,可以为亮度块和色度块中的每一个编码lfnst索引。
[0507]
根据实施方式,可以将变换索引的语法元素值推导为0、1和2,0指示不将(逆)lfnst应用于当前块的情况,1指示lfnst矩阵中的第一lfnst矩阵,并且2指示lfnst矩阵中的第二lfnst矩阵。
[0508]
在本公开中,可以省略量化/解量化和/或变换/逆变换中的至少一者。当省略量化/解量化时,可以将量化变换系数称为变换系数。当省略变换/逆变换时,变换系数可以被称为系数或残差系数,或者为了表述一致性仍可以被称为变换系数。
[0509]
另外,在本公开中,量化变换系数和变换系数可以分别被称为变换系数和缩放变换系数。在此情况下,残差信息可以包括关于变换系数的信息,并且可以通过残差编码语法发信号通知关于变换系数的信息。可以基于残差信息(或关于变换系数的信息)来推导变换系数,并且可以通过变换系数的逆变换(缩放)来推导缩放变换系数。可以基于缩放变换系数的逆变换(变换)来推导残差样本。这些细节也可以在本公开的其它部分中应用/表达。
[0510]
在上述实施方式中,借助于一系列步骤或方框基于流程图解释了方法,但是本公开不限于步骤的顺序,并且可以按与上述顺序或步骤不同的顺序或步骤来执行某一步骤,或某一步骤与其它步骤并发地执行。此外,本领域普通技术人员可以理解,流程图中所示的步骤不是排它的,并且在不影响本公开的范围的情况下,可以并入另一步骤或者可以删除流程图中的一个或更多个步骤。
[0511]
根据本公开的上述方法可以被实现为软件形式,并且根据本公开的编码设备和/或解码设备可以被包括在诸如电视、计算机、智能电话、机顶盒和显示装置等之类的用于图像处理的设备中。
[0512]
当本公开中的实施方式通过软件来实施时,上述方法可以被实施为用于执行上述功能的模块(步骤、功能等)。这些模块可以存储在存储器中并且可以由处理器执行。存储器可以在处理器内部或外部,并且可以以各种众所周知的方式连接到处理器。处理器可以包括专用集成电路(asic)、其它芯片组、逻辑电路和/或数据处理装置。存储器可以包括只读存储器(rom)、随机存取存储器(ram)、闪存、存储卡、存储介质和/或其它存储装置。也就是说,本公开中描述的实施方式可以在处理器、微处理器、控制器或芯片上实施和执行。例如,每个附图中所示的功能单元可以在计算机、处理器、微处理器、控制器或芯片上实施和执行。
[0513]
此外,应用本公开的解码设备和编码设备可以包括在多媒体广播收发器、移动通信终端、家庭影院视频装置、数字影院视频装置、监控相机、视频聊天装置、实时通信装置(诸如视频通信)、移动流装置、存储介质、摄像机、视频点播(vod)服务提供装置、顶置(ott)视频装置、互联网流服务提供装置、三维(3d)视频装置、视频电话视频装置、和医疗视频装置,并且可以用于处理视频信号或数据信号。例如,顶置(ott)视频装置可以包括游戏机、蓝光播放器、互联网接入tv、家庭影院系统、智能电话、平板pc、数字视频记录仪(dvr)等。
[0514]
另外,应用本公开的处理方法可以以由计算机执行的程序的形式来生产,并且可以存储在计算机可读记录介质中。具有根据本公开的数据结构的多媒体数据也可以存储在计算机可读记录介质中。计算机可读记录介质包括存储计算机可读数据的各种存储装置和分布式存储装置。计算机可读记录介质可以包括例如蓝光盘(bd)、通用串行总线(usb)、rom、prom、eprom、eeprom、ram、cd-rom、磁带、软盘和光学数据存储装置。此外,计算机可读记录介质包括以载波(例如,互联网上的传输)形式实施的介质。另外,通过编码方法所生成的比特流可以存储在计算机可读记录介质中,或者通过有线或无线通信网络来传输。另外,本公开的实施方式可以通过程序代码被实施为计算机程序产品,并且程序代码可以按照本公开的实施方式在计算机上执行。程序代码可以存储在计算机可读载体上。
[0515]
本文所公开的权利要求可以以各种方式组合。例如,本公开的方法权利要求的技术特征可以被组合以在设备中实现或执行,并且设备权利要求的技术特征可以被组合以在方法中实现或执行。此外,方法权利要求和设备权利要求的技术特征可以被组合以在设备中实现或执行,并且方法权利要求和设备权利要求的技术特征可以被组合以在方法中实现或执行。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献