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

用于基于变换的图像编码的方法和设备与流程

2022-06-02 01:02:03 来源:中国专利 TAG:


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


背景技术:

2.近来在各种领域中对诸如超高清(hud)图像和4k或8k或更大视频这样的高分辨率且高质量的图像和视频的需求日益增加。随着图像和视频数据变成高分辨率和高质量,与现有图像和视频数据相比,相对发送的信息量或位数增加。因此,如果使用诸如现有有线或无线宽带线这样的介质来传输图像数据或者使用现有存储介质来存储图像和视频数据,则传输成本和存储成本增加。
3.此外,近来对诸如虚拟现实(vr)、人工现实(ar)内容或全息图这样的沉浸式媒体的兴趣和需求日益增加。诸如游戏图像这样的图像特性与真实图像的图像特性不同的图像和视频的广播日益增加。
4.因此,为了有效地压缩并传输或存储并回放具有这样的各种特性的高分辨率且高质量的图像和视频的信息,需要高效的图像和视频压缩技术。


技术实现要素:

5.技术问题
6.本公开的技术方面是为了提供一种用于提高图像编码效率的方法和设备。
7.本公开的另一技术方面是为了提供一种用于提高残差编码效率的方法和设备。
8.本公开的再一技术方面是为了提供一种用于通过基于高频清零(high-frequency zeroing)对变换系数进行编码来提高残差编码效率的方法和设备。
9.本公开的又一技术方面是为了提供一种用于提高在其中基于多变换选择来执行高频清零的图像编码的效率的方法和设备。
10.本公开的再一技术方面是为了提供一种用于对图像进行编码的方法和设备,该方法和设备能够减少在执行高频清零时的数据丢失。
11.本公开的又一技术方面是为了提供一种用于在基于高频清零对用于当前块(或当前变换块)的变换系数进行编码时基于当前块大小来推导用于最后有效变换系数位置信息的上下文模型的方法和设备。
12.技术方案
13.根据本公开的实施方式,提供了一种由解码设备执行的图像解码方法。该方法包括:基于残差信息推导当前块的变换系数,该残差信息包括指示用于通过对编码单元进行划分来执行变换的子块变换是否应用于当前块的第一标志信息,并且变换系数的推导包括:当第一标志信息为1时,基于使用多个变换核的多变换选择(mts)是否被应用于当前块,推导指示当前块中的可以存在有效变换系数的区域的清零块。
14.当应用mts时,清零块的宽度或高度可设置为16,并且当不应用mts时,可将清零块
的宽度或高度设置为32或更小。
15.可以在编码单元级别发信号通知第一标志信息。
16.是否应用多变换选择是基于指示多变换选择是否被应用于当前块的第二标志信息来确定的,并且可以在序列参数集级别发信号通知第二标志信息。
17.当划分的子块的高度小于64且子块的宽度为32时,清零块的宽度被设置为16,并且当子块的宽度小于64且子块的高度为32时,清零块的高度被设置为16。
18.变换核是基于当前块的划分方向和应用变换的子块的位置推导的。
19.清零块是针对当前块的亮度分量推导的。
20.根据本公开的另一实施方式,提供了一种由编码设备执行的图像编码方法。该方法包括:基于当前块的残差样本推导变换系数以及对包括关于变换系数的信息的残差信息进行编码,变换系数的推导包括:当通过对编码单元进行划分来执行变换的子块变换被应用于当前块时,基于使用多个变换核的多变换选择(mts)是否应用于当前块,推导指示当前块中的其中可以存在有效变换系数的区域的清零块,并且残差信息的编码包括对指示是否应用子块变换的第一标志信息进行编码。
21.根据本公开的再一实施方式,可以提供一种数字存储介质,该数字存储介质存储包括编码图像信息和根据由编码设备执行的图像编码方法生成的比特流的图像数据。
22.根据本公开的又一实施方式,可以提供一种数字存储介质,该数字存储介质存储包括编码图像信息和比特流的图像数据以使解码设备执行图像解码方法。
23.有益效果
24.根据本公开,可以提高整体图像/视频压缩效率。
25.根据本公开,可以提高残差编码的效率。
26.根据本公开,可以通过基于高频清零对变换系数进行编码来提高残差编码的效率。
27.根据本公开,可以提高在其中基于多变换选择来执行高频清零的图像编码的效率。
28.根据本公开,可以减少在执行高频清零时的数据丢失,从而提高图像编码的效率。
29.能够通过本公开的特定示例获得的效果不限于上面列举的效果。例如,可以存在相关领域的普通技术人员能够理解或从本公开中推导的各种技术效果。因此,本公开的特定效果不限于在本公开中显式地描述的效果,并且可以包括能够从本公开的技术特征理解或推导的各种效果。
附图说明
30.图1示意性地例示了可应用本公开的视频/图像编码系统的示例。
31.图2是示意性地例示可应用本公开的视频/图像编码设备的配置的图。
32.图3是示意性地例示可应用本公开的视频/图像解码设备的配置的图。
33.图4例示了应用本公开的内容流系统的结构。
34.图5示意性地例示了根据本公开的实施方式的多变换技术。
35.图6示例性地示出了65个预测方向的帧内定向模式。
36.图7是用于说明根据本公开的实施方式的rst的图。
37.图8例示了根据本公开的示例的应用于子块变换的mts。
38.图9例示了根据本公开的示例的应用于子块变换的32点清零。
39.图10是例示根据本公开的实施方式的视频解码设备的操作的流程图。
40.图11是例示根据本公开的实施方式的由视频解码设备推导变换系数的过程的流程图。
41.图12是例示根据本公开的实施方式的视频编码设备的操作的流程图。
42.图13是例示根据本公开的实施方式的用于对变换系数和信息进行编码的过程的流程图。
具体实施方式
43.尽管本公开可能易于进行各种修改并且包括各种实施方式,但是其具体实施方式已在附图中通过示例的方式示出,并且现在将对其进行详细描述。然而,这并不旨在将本公开限制于本文公开的具体实施方式。本文中使用的术语只是出于描述特定实施方式的目的,并不旨在限制本公开的技术思路。除非上下文另外清楚指示,否则单数形式可以包括复数形式。诸如“包括”和“具有”之类的术语旨在指示存在以下描述中使用的特征、数字、步骤、操作、元件、组件或其组合,因此不应被理解为预先排除了存在或添加一个或更多个不同特征、数字、步骤、操作、元件、组件或其组合的可能性。
44.此外,为了方便描述彼此不同的特性功能,独立地例示了本文中描述的附图上的各组件,然而,并不意指各组件由单独的硬件或软件来实现。例如,可以组合这些组件中的任何两个或更多个以形成单个组件,并且任何单个组件可以被划分成多个组件。其中组件被组合和/或划分的实施方式将属于本公开的专利权的范围,只要它们不脱离本公开的实质即可。
45.在下文中,将参照附图更详细地说明本公开的优选实施方式。另外,在附图中,相同的附图标号用于相同的组件,并且将省略对相同组件的重复描述。
46.本文档涉及视频/图像编码。例如,本文档中公开的方法/示例可以涉及vvc(通用视频编码)标准(itu-t rec.h.266)、vvc之后的下一代视频/图像编码标准、或其它视频编码相关标准(例如,hevc(高效视频编码)标准(itu-t rec.h.265)、evc(基本视频编码)标准、avs2标准等)。
47.在本文档中,可以提供与视频/图像编码相关的各种实施方式,并且除非相反地指定,否则这些实施方式可以彼此组合并执行。
48.在本文档中,视频可以是指一段时间内一系列图像的集合。通常,图片是指表示特定时间区域的图像的单元,而条带/贴片是构成图片的一部分的单元。条带/贴片可以包括一个或更多个编码树单元(ctu)。一幅图片可以由一个或更多个条带/贴片组成。一幅图片可以由一个或多个贴片组组成。一个贴片组可以包括一个或更多个贴片。
49.像素或图元(pel)可以是指构成一幅图片(或图像)的最小单元。另外,“样本”可用作与像素相对应的术语。样本通常可以表示像素或像素值,并且可以仅表示亮度分量的像素/像素值或仅表示色度分量的像素/像素值。另选地,样本可以意指空间域中的像素值,或者当该像素值被变换为频域时,其可以意指频域中的变换系数。
50.单元可以表示图像处理的基本单位。单元可以包括特定区域和与该区域相关的信
息中的至少一个。一个单元可以包括一个亮度块和两个色度(例如,cb、cr)块。根据情况,可以将单元和诸如块、区域等这样的术语互换地使用。在通常情况下,m
×
n块可以包括由m列和n行组成的样本(或样本阵列)或变换系数的集(或阵列)。
51.在本文档中,术语“/”和“,”应该被解释为指示“和/或”。例如,表述“a/b”可以意指“a和/或b”。另外,“a、b”可以意指“a和/或b”。另外,“a/b/c”可以意指“a、b和/或c中的至少一个”。另外,“a/b/c”可以意指“a、b和/或c中的至少一个”。
52.另外,在该文档中,术语“或”应该被解释为指示“和/或”。例如,表述“a或b”可以包括1)仅a、2)仅b和/或3)a和b二者。换句话说,本文档中的术语“或”应该被解释为指示“附加地或另选地”。
53.在本公开中,“a和b中的至少一个”可以意指“仅a”、“仅b”或“a和b两者”。此外,在本公开中,表述“a或b中的至少一个”或者“a和/或b中的至少一个”可以被解释为“a和b中的至少一个”。
54.此外,在本公开中,“a、b和c中的至少一个”可以意指“仅a”、“仅b”、“仅c”或“a、b和c的任何组合”。此外,“a、b或c中的至少一个”或“a、b和/或c中的至少一个”可以意指“a、b和c中的至少一个”。
55.另外,本公开中使用的括号可以表示“例如”。具体地,当指示为“预测(帧内预测)”时,可以意指“帧内预测”被提出为“预测”的示例。换句话说,本公开的“预测”不限于“帧内预测”,并且“帧内预测”是作为“预测”的示例而提出的。另外,当指示为“预测(即,帧内预测)”时,这也可以意指“帧内预测”被提出为“预测”的示例。
56.在本公开中的一个附图中单独描述的技术特征可以单独地实现或可以同时实现。
57.图1示意性地例示了可应用本公开的视频/图像编码系统的示例。
58.参照图1,视频/图像编码系统可以包括第一装置(源装置)和第二装置(接收装置)。源装置可以经由数字存储介质或网络以文件或流的形式将编码后的视频/图像信息或数据传递到接收装置。
59.源装置可以包括视频源、编码设备和发送器。接收装置可以包括接收器、解码设备和渲染器。编码设备可以被称为视频/图像编码设备,并且解码设备可以被称为视频/图像解码设备。发送器可以被包括在编码设备中。接收器可以被包括在解码设备中。渲染器可以包括显示器,并且显示器可以被配置为单独的装置或外部组件。
60.视频源可以通过捕获、合成或生成视频/图像的处理来获得视频/图像。视频源可以包括视频/图像捕获装置和/或视频/图像生成装置。视频/图像捕获装置可以包括例如一个或更多个相机、包括先前捕获的视频/图像的视频/图像档案等。视频/图像生成装置可以包括例如计算机、平板计算机和智能电话,并且可以(电子地)生成视频/图像。例如,可以通过计算机等生成虚拟视频/图像。在这种情况下,视频/图像捕获处理可以被生成相关数据的处理取代。
61.编码设备可以对输入视频/图像进行编码。编码设备可以执行诸如针对压缩和编码效率的预测、变换和量化这样的一系列过程。编码后的数据(编码后的视频/图像信息)可以以比特流的形式输出。
62.发送器可以通过数字存储介质或网络以文件或流的形式将以比特流的形式输出的编码后的视频/图像信息或数据发送到接收装置的接收器。数字存储介质可以包括诸如
usb、sd、cd、dvd、蓝光、hdd、ssd等这样的各种存储介质。发送器可以包括用于通过预定文件格式生成媒体文件的元件,并且可以包括用于通过广播/通信网络进行发送的元件。接收器可以接收/提取比特流,并且将接收/提取的比特流发送到解码设备。
63.解码设备可以通过执行与编码设备的操作对应的诸如解量化、逆变换、预测等这样的一系列过程来解码视频/图像。
64.渲染器可以渲染解码后的视频/图像。可以通过显示器显示渲染后的视频/图像。
65.图2是示意性地例示可应用本公开的视频/图像编码设备的配置的图。在下文中,所谓的视频编码设备可以包括图像编码设备。
66.参照图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。
67.图像划分器210可以将输入到编码设备200的输入图像(或图片或帧)划分为一个或更多个处理单元。作为一个示例,处理单元可以被称为编码单元(cu)。在这种情况下,从编码树单元(ctu)或最大编码单元(lcu)开始,可以根据四叉树二叉树三叉树(qtbttt)结构来递归地划分编码单元。例如,基于四叉树结构、二叉树结构和/或三叉树结构,一个编码单元可以被划分为深度较深的多个编码单元。在这种情况下,例如,可以首先应用四叉树结构,并且可以稍后应用二叉树结构和/或三叉树结构。另选地,可以首先应用二叉树结构。可以基于未进一步划分的最终编码单元来执行根据本公开的编码过程。在这种情况下,基于根据图像特性的编码效率,最大编码单元可以直接用作最终编码单元。另选地,可以根据需要将编码单元递归地划分为更深的深度的编码单元,由此可以将最佳大小的编码单元用作最终编码单元。这里,编码过程可以包括诸如预测、变换和重构之类的过程,其将在后面描述。作为另一示例,处理单元可以进一步包括预测单元(pu)或变换单元(tu)。在这种情况下,预测单元和变换单元可以与上述最终编码单元分开或划分开。预测单元可以是样本预测的单元,并且变换单元可以是用于推导变换系数的单元和/或用于从变换系数推导残差信号的单元。
68.根据情况,可以使用单元和诸如块、区域等之类的术语来代替彼此。在通常情况下,m
×
n块可以表示由m列和n行构成的样本或变换系数的集。样本通常可以表示像素或像素值,并且可以仅表示亮度分量的像素/像素值,或者仅表示色度分量的像素/像素值。样本可用作与一幅图片(或图像)的像素或图元(pel)相对应的术语。
69.减法器231从输入图像信号(原始块、原始样本阵列)中减去从预测器220输出的预测信号(预测块、预测样本阵列)以生成残差信号(残差块、残差样本阵列),并且所生成的残差信号被发送到变换器232。预测器220可以对处理目标块(下文称为“当前块”)执行预测,并且可以生成包括当前块的预测样本的预测块。预测器220可以确定是以当前块或cu为基础应用帧内预测还是应用帧间预测。如稍后在每个预测模式的描述中所讨论的,预测器可
以生成诸如预测模式信息之类的与预测有关的各种信息,并将所生成的信息发送到熵编码器240。关于预测的信息可以在熵编码器240中编码并以比特流的形式输出。
70.帧内预测器222可以通过参考当前图片中的样本来预测当前块。根据预测模式,参考样本可以位于当前块的附近或与当前块分开。在帧内预测中,预测模式可以包括多种非定向模式和多种定向模式。非定向模式可以包括例如dc模式和平面模式。根据预测方向的详细程度,定向模式可以包括例如33种定向预测模式或65种定向预测模式。然而,这仅仅是示例,并且根据设置,可以使用更多或更少的定向预测模式。帧内预测器222可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
71.帧间预测器221可以基于参照图片上的运动向量所指定的参考块(参考样本阵列)来推导针对当前块的预测块。此时,为了减少在帧间预测模式下发送的运动信息的量,可以基于邻近块与当前块之间的运动信息的相关性以块、子块或样本为基础来预测运动信息。运动信息可以包括运动向量和参照图片索引。运动信息还可以包括帧间预测方向(l0预测、l1预测、bi预测等)信息。在帧间预测的情况下,邻近块可以包括当前图片中存在的空间邻近块和参照图片中存在的时间邻近块。包括参考块的参照图片和包括时间邻近块的参照图片可以彼此相同或彼此不同。时间邻近块可以被称为并置参考块、并置cu(colcu)等,并且包括时间邻近块的参照图片可以被称为并置图片(colpic)。例如,帧间预测器221可以基于邻近块来配置运动信息候选列表,并且生成指示哪个候选被用于推导当前块的运动向量和/或参照图片索引的信息。可以基于各种预测模式来执行帧间预测。例如,在跳过模式和合并模式的情况下,帧间预测器221可以使用邻近块的运动信息作为当前块的运动信息。在跳过模式下,与合并模式不同,不能发送残差信号。在运动信息预测(运动向量预测、mvp)模式的情况下,邻近块的运动向量可以被用作运动向量预测符,并且可以通过发信号通知运动向量差来指示当前块的运动向量。
72.预测器220可以基于各种预测方法来生成预测信号。例如,预测器可以将帧内预测或帧间预测应用于对一个块的预测,并且也可以同时应用帧内预测和帧间预测。这可以被称为组合的帧间和帧内预测(ciip)。另外,预测器可以基于块内复制(ibc)预测模式或调色板模式,以便对块执行预测。ibc预测模式或调色板模式可以被用于诸如屏幕内容编码(scc)这样的游戏等的内容图像/视频编码。尽管ibc基本上在当前块中执行预测,但是其执行方式与帧间预测的相似之处在于,它推导当前块中的参考块。也就是说,ibc可以使用本公开中描述的帧间预测技术中的至少一种。
73.通过帧间预测器221和/或帧内预测器222生成的预测信号可以被用于生成重构信号或者生成残差信号。变换器232可以通过向残差信号应用变换技术来生成变换系数。例如,变换技术可以包括离散余弦变换(dct)、离散正弦变换(dst)、karhunen-lo
è
ve变换(klt)、基于图的变换(gbt)或有条件非线性变换(cnt)中的至少一种。这里,gbt意指当用曲线图表示像素之间的关系信息时从曲线图获得的变换。cnt是指基于使用所有先前重构的像素生成的预测信号而获得的变换。另外,变换处理可以被应用于大小相同的正方形像素块,或者可以应用于大小可变的块而非正方形的块。
74.量化器233可以对变换系数进行量化并且将它们发送到熵编码器240,并且熵编码器240可以对量化后的信号(关于量化变换系数的信息)进行编码并且输出比特流中的编码后的信号。关于量化变换系数的信息可以被称为残差信息。量化器233可以基于系数扫描顺
序将块类型的量化变换系数重新布置成一维向量形式,并且基于一维向量形式的量化变换系数来生成关于量化变换系数的信息。熵编码器240可以执行诸如例如指数哥伦布(exponential golomb)、上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)等这样的各种编码方法。熵编码器240可以对除了量化变换系数(例如,语法元素的值等)之外的视频/图像重构所需的信息一起或分别进行编码。编码后的信息(例如,编码后的视频/图像信息)可以以比特流的形式在网络抽象层(nal)的单元基础上进行发送或存储。视频/图像信息还可以包括关于诸如适应参数集(aps)、图片参数集(pps)、序列参数集(sps)、视频参数集(vps)等这样的各种参数集的信息。另外,视频/图像信息还可以包括常规约束信息。在本公开中,从编码设备发送到/发信号通知给解码设备的信息和/或语法元素可以被包括在视频/图像信息中。视频/图像信息可以通过上述编码过程进行编码并且被包括在比特流中。可以通过网络传输比特流,或者将其存储在数字存储介质中。这里,网络可以包括广播网络、通信网络和/或类似物,并且数字存储介质可以包括诸如usb、sd、cd、dvd、蓝光、hdd、ssd等这样的各种存储介质。发送从熵编码器240输出的信号的发送器(未示出)或存储其的存储器(未示出)可以被配置为编码设备200的内部/外部元件,或者发送器可以被包括在熵编码器240中。
75.从量化器233输出的量化变换系数可以被用于生成预测信号。例如,通过利用解量化器234和逆变换器235向量化变换系数应用解量化和逆变换,可以重构残差信号(残差块或残差样本)。加法器155将重构后的残差信号与从帧间预测器221或帧内预测器222输出的预测信号相加,使得可以生成重构信号(重构图片、重构块、重构样本阵列)。当如在应用跳过模式的情况下一样没有针对处理目标块的残差时,可以将预测块用作重构块。加法器250可以被称为重构器或重构块生成器。所生成的重构信号可以被用于目标图片中的下一处理目标块的帧内预测,并且如随后描述的,可以被用于通过滤波进行的下一图片的帧间预测。
76.此外,在图片编码和/或重构处理中,可以应用具有色度缩放的亮度映射(lmcs)。
77.滤波器260可以通过向重构信号应用滤波来改善主观/客观视频质量。例如,滤波器260可以通过向重构图片应用各种滤波方法来生成修改后的重构图片,并且可以将修改后的重构图片存储在存储器270中,尤其是存储在存储器270的dpb中。各种滤波方法可以包括例如解块滤波、样本自适应偏移、自适应环形滤波器、双边滤波器等。如随后在对每种滤波方法的描述中所讨论的,滤波器260可以生成与滤波相关的各种信息,并且将所生成的信息发送到熵编码器240。关于滤波的信息可以在熵编码器240中被编码并且以比特流的形式被输出。
78.已发送到存储器270的修改后的重构图片可以被用作帧间预测器221中的参照图片。据此,编码设备可以避免在应用帧间预测时编码设备100和解码设备中的预测失配,并且还可以提高编码效率。
79.存储器270dpb可以存储修改后的重构图片,以便使用它作为帧间预测器221中的参照图片。存储器270可以存储从中已推导(或编码了)运动信息的当前图片中的块的运动信息和/或已经重构的图片中的块的运动信息。所存储的运动信息可以被发送到帧间预测器221,以被用作邻近块的运动信息或时间邻近块的运动信息。存储器270可以存储当前图片中的重构块的重构样本,并且将它们发送到帧内预测器222。
80.图3是示意性地例示可应用本公开的视频/图像解码设备的配置的图。
81.参照图3,视频解码设备300可以包括熵解码器310、残差处理器320、预测器330、加法器340、滤波器350和存储器360。预测器330可以包括帧间预测器331和帧内预测器332。残差处理器320可以包括解量化器321和逆变换器321。根据实施方式,上面已描述的熵解码器310、残差处理器320、预测器330、加法器340和滤波器350可以由一个或更多个硬件组件(例如,解码器芯片组或处理器)构成。另外,存储器360可以包括解码图片缓冲器(dpb),并且可以由数字存储介质构成。硬件组件还可以包括存储器360作为内部/外部组件。
82.当输入包括视频/图像信息的比特流时,解码设备300可以与据此已在图2的编码设备中处理视频/图像信息的处理对应地重构图像。例如,解码设备300可以基于与从比特流获得的与块分割相关的信息来推导单元/块。解码设备300可以通过使用在编码设备中应用的处理单元来执行解码。因此,解码的处理单元可以是例如编码单元,可以用编码树单元或最大编码单元顺着四叉树结构、二叉树结构和/或三叉树结构对其进行分割。可以用编码单元推导一个或更多个变换单元。并且,可以通过再现器来再现通过解码设备300解码并输出的重构图像信号。
83.解码设备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中的至少一个。
84.解量化器321可以通过对量化变换系数进行解量化来输出变换系数。解量化器321可以将量化变换系数重新布置为二维块的形式。在这种情况下,可以基于已在编码设备中
执行的系数扫描的顺序来执行重新布置。解量化器321可以使用量化参数(例如,量化步长信息)对量化变换系数执行解量化,并且获得变换系数。
85.解量化器322通过对变换系数进行逆变换来获得残差信号(残差块、残差样本阵列)。
86.预测器可以对当前块执行预测,并且生成包括针对当前块的预测样本的预测块。预测器可以基于从熵解码器310输出的关于预测的信息来确定向当前块应用帧内预测还是帧间预测,并且具体地可以确定帧内/帧间预测模式。
87.预测器可以基于各种预测方法来生成预测信号。例如,预测器可以将帧内预测或帧间预测应用于对一个块的预测,并且也可以同时应用帧内预测和帧间预测。这可以被称为组合的帧间和帧内预测(ciip)。另外,预测器可以针对块的预测执行块内复制(ibc)。块内复制可以被用于诸如屏幕内容编码(scc)这样的游戏等的内容图像/视频编码。尽管ibc基本上在当前块中执行预测,但是其执行方式与帧间预测的相似之处在于,它推导当前块中的参考块。也就是说,ibc可以使用本公开中描述的帧间预测技术中的至少一种。
88.帧内预测器331可以通过参考当前图片中的样本来预测当前块。根据预测模式,参考样本可以位于当前块的附近或与当前块分开。在帧内预测中,预测模式可以包括多种非定向模式和多种定向模式。帧内预测器331可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
89.帧间预测器332可以基于参照图片上的运动向量所指定的参考块(参考样本阵列)来推导针对当前块的预测块。此时,为了减少在帧间预测模式下发送的运动信息的量,可以基于邻近块与当前块之间的运动信息的相关性以块、子块或样本为基础来预测运动信息。运动信息可以包括运动向量和参照图片索引。运动信息还可以包括帧间预测方向(l0预测、l1预测、bi预测等)信息。在帧间预测的情况下,邻近块可以包括当前图片中存在的空间邻近块和参照图片中存在的时间邻近块。例如,帧间预测器332可以基于邻近块来配置运动信息候选列表,并且基于接收到的候选选择信息来推导当前块的运动向量和/或参照图片索引。可以基于各种预测模式来执行帧间预测,并且关于预测的信息可以包括指示针对当前块的帧间预测的模式的信息。
90.加法器340可以通过将所获得的残差信号与从预测器330输出的预测信号(预测块、预测样本阵列)相加来生成重构信号(重构图片、重构块、重构样本阵列)。当如在应用跳过模式的情况下一样没有针对处理目标块的残差时,可以将预测块用作重构块。
91.加法器340可以被称为重构器或重构块生成器。所生成的重构信号可以被用于当前块中的下一处理目标块的帧内预测,并且如随后描述的,可以通过滤波来输出或者被用于下一图片的帧间预测。
92.此外,在图片解码处理中,可以应用具有色度缩放的亮度映射(lmcs)。
93.滤波器350可以通过向重构后的信号应用滤波来改善主观/客观视频质量。例如,滤波器350可以通过向重构图片应用各种滤波方法来生成修改后的重构图片,并且可以将修改后的重构图片发送到存储器360中,尤其是发送到存储器360的dpb中。各种滤波方法可以包括例如解块滤波、样本自适应偏移、自适应环形滤波器、双边滤波器等。
94.已存储在存储器360的dpb中的(修改后的)重构图片可以被用作帧间预测器332中的参照图片。存储器360可以存储从中已推导(或解码了)运动信息的当前图片中的块的运
动信息和/或已经重构的图片中的块的运动信息。所存储的运动信息可以被发送到帧间预测器260,以被用作邻近块的运动信息或时间邻近块的运动信息。存储器360可以存储当前图片中的重构块的重构样本,并且将它们发送到帧内预测器331。
95.在本说明书中,在解码设备300的预测器330、解量化器321、逆变换器322和滤波器350中描述的示例可以分别类似地或对应地应用于编码设备200的预测器220、解量化器234、逆变换器235和滤波器260。
96.如上所述,执行预测,以便提高执行视频编码时的压缩效率。据此,可以生成包括针对作为编码目标块的当前块的预测样本的预测块。这里,预测块包括空间域(或像素域)中的预测样本。可以在编码设备和解码设备中相同地推导预测块,并且编码设备可以通过向解码设备发信号通知并非原始块本身的原始样本值而是关于原始块与预测块之间的残差的信息(残差信息)来提高图像编码效率。解码设备可以基于残差信息来推导包括残差样本的残差块,通过将残差块与预测块相加来生成包括重构样本的重构块,并且生成包括重构块的重构图片。
97.可以通过变换过程和量化过程来生成残差信息。例如,编码设备可以推导原始块与预测块之间的残差块,通过对残差块中所包括的残差样本(残差样本阵列)执行变换过程来推导变换系数,并且通过对变换系数执行量化过程来推导量化变换系数,使得它可以(通过比特流)向解码设备发信号通知关联的残差信息。这里,残差信息可以包括量化变换系数的值信息、位置信息、变换技术、变换核、量化参数等。解码设备可以基于残差信息来执行量化/解量化过程并且推导残差样本(或残差样本块)。解码设备可以基于预测块和残差块来生成重构块。编码设备可以通过对量化变换系数进行解量化/逆变换来推导残差块以便作为下一个图片的帧间预测的参考,并且可以基于此来生成重构图片。
98.图4例示了应用本公开的内容流系统的结构。
99.此外,应用本公开的内容流系统可以大致包括编码服务器、流服务器、web服务器、媒体存储装置、用户设备和多媒体输入装置。
100.编码服务器用于将从诸如智能电话、相机、摄像机等的多媒体输入装置输入的内容压缩成数字数据以生成比特流,并且向流服务器发送它。作为另一示例,在诸如智能电话、相机、摄像机等的多媒体输入装置直接生成比特流的情况下,可以省略编码服务器。可以通过应用本公开的编码方法或比特流生成方法来生成比特流。并且流服务器可以在发送或接收比特流的过程期间临时存储比特流。
101.流服务器基于用户的请求通过web服务器向用户设备发送多媒体数据,web服务器用作向用户通知存在什么服务的器具。当用户请求用户想要的服务时,web服务器将请求传送至流服务器,并且流服务器向用户发送多媒体数据。在此而言,内容流系统可以包括单独的控制服务器,并且在这种情况下,控制服务器用于控制内容流系统中的相应装置之间的命令/响应。
102.流服务器可以从媒体存储装置和/或编码服务器接收内容。例如,在从编码服务器接收内容的情况下,可以实时地接收内容。在这种情况下,为了平稳地提供流服务,流服务器可以存储比特流达预定时间。
103.例如,用户设备可以包括移动电话、智能电话、膝上型计算机、数字广播终端、个人数字助理(pda)、便携式多媒体播放器(pmp)、导航仪、板式pc、平板pc、超级本、可穿戴装置
(例如,手表型终端(智能手表)、眼镜型终端(智能眼镜)、头戴式显示器(hmd))、数字tv、台式计算机、数字标牌等。内容流系统中的各个服务器可以作为分布式服务器操作,并且在这种情况下,由各个服务器接收到的数据可以用分布式方式进行处理。
104.图5示意性地例示了根据本公开的实施方式的多变换技术。
105.参照图5,变换器可以对应于前述图2的编码设备中的变换器,并且逆变换器可以对应于前述图2的编码设备中的逆变换器、或者图3的解码设备中的逆变换器。
106.变换器可以通过基于残差块中的残差样本(残差样本阵列)执行一次变换来推导(一次)变换系数(s510)。该一次变换可以被称为核心变换。在本文中,一次变换可以基于多变换选择(mts),并且当将多变换用作一次变换时,可以将其称为多核心变换。
107.多核心变换可以表示附加地使用离散余弦变换(dct)类型2和离散正弦变换(dst)类型7、dct类型8和/或dst类型1进行变换的方法。也就是说,多核心变换可以表示基于从dct类型2、dst类型7、dct类型8和dst类型1当中选择的多个变换核将空间域的残差信号(或残差块)变换为频域的变换系数(或一次变换系数)的变换方法。在本文中,从变换器的视角来看一次变换系数可以称为临时变换系数。
108.换句话说,当应用常规变换方法时,可以通过基于dct类型2对残差信号(或残差块)应用从空间域到频率域的变换来生成变换系数。与此不同,当应用多核心变换时,可以通过基于dct类型2、dst类型7、dct类型8和/或dst类型1对残差信号(或残差块)应用从空间域到频率域的变换来生成变换系数(或一次变换系数)。在本文中,dct类型2、dst类型7、dct类型8和dst类型1可以被称为变换类型、变换核或变换核心。可以基于基函数来定义这些dct/dst变换类型。
109.当执行多核心变换时,可以从变换核当中选择用于目标块的垂直变换核和水平变换核,可以基于垂直变换核对目标块执行垂直变换,并且可以基于水平变换核对目标块执行水平变换。这里,水平变换可以指示对目标块的水平分量的变换,并且垂直变换可以指示对目标块的垂直分量的变换。可以基于包括残差块的目标(cu或子块)的预测模式和/或变换索引来适应性地确定垂直变换核/水平变换核。
110.此外,根据示例,如果通过应用mts来执行一次变换,则可以通过将特定基函数设置为预定值并组合要在垂直变换或水平变换中应用的基函数来设置变换核的映射关系。例如,当水平变换核表示为trtypehor,并且垂直方向变换核表示为trtypever时,可以将值为0的trtypehor或trtypever设置给dct2,将值为1的trtypehor或trtypever设置给dst7,并且将值为2的trtypehor或trtypever可以设置给dct8。
111.在这种情况下,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。
112.在一个示例中,根据mts索引信息的变换核集在下表中示出。
113.[表1]
[0114]
tu_mts_idx[x0][y0]01234trtypehor01212
trtypever01122
[0115]
变换器可以通过基于(一次)变换系数执行二次变换来推导修改的(二次)变换系数(s520)。一次变换是从空间域到频域的变换,而二次变换是指通过使用(一次)变换系数之间存在的相关性,变换为更具压缩性的表示。二次变换可以包括不可分离的变换。在这种情况下,二次变换可以称为不可分离的二次变换(nsst)或模式相关的不可分离的二次变换(mdnsst)。不可分离的二次变换可以表示这样的变换,其通过基于不可分离的变换矩阵对通过一次变换推推导的(一次)变换系数进行二次变换来生成针对残差信号的修改的变换系数(或二次变换系数)。此时,垂直变换和水平变换可以不单独应用于(一次)变换系数(或者水平变换和垂直变换可以不独立应用),但是可以基于不可分离的变换一次地应用变换矩阵。换句话说,不可分离的二次变换可以表示这样的变换方法,其中,(一次)变换系数的垂直分量和水平分量不分离,并且例如,将二维信号(变换系数)通过某个确定的方向(例如,行第一方向或列第一方向)重新布置为一维信号,然后基于不可分离的变换矩阵生成修改的变换系数(或二次变换系数)。例如,根据行优先顺序,m
×
n个块以第一行、第二行、

和第n行的顺序设置成排。根据列优先顺序,m
×
n个块以第一列、第二列、

和第m列的顺序设置成排。不可分离的二次变换可以应用于配置有(一次)变换系数的块(在下文中,可以称为变换系数块)的左上区域。例如,如果变换系数块的宽度(w)和高度(h)均等于或大于8,则可以将8
×
8不可分离的二次变换应用于变换系数块的左上8
×
8区域。此外,如果变换系数块的宽度(w)和高度(h)均等于或大于4,并且变换系数块的宽度(w)或高度(h)小于8,那么可以将4
×
4不可分离的二次变换应用于变换系数块的左上min(8,w)
×
min(8,h)区域。然而,实施方式不限于此,并且例如,即使仅满足变换系数块的宽度(w)或高度(h)等于或大于4的条件,4
×
4不可分离的二次变换也可以应用于变换系数块的左上min(8,w)
×
min(8,h)区域。
[0116]
具体地,例如,如果使用4
×
4输入块,则不可分离的二次变换可以如下执行。
[0117]4×
4输入块x可以表示如下。
[0118]
[式1]
[0119][0120]
如果x以向量的形式表示,则向量可以如下表示。
[0121]
[式2]
[0122][0123]
在式2中,向量是通过根据行优先顺序重新布置式1的二维块x而获得的一维向量。
[0124]
在这种情况下,可以如下计算不可分离的二次变换。
[0125]
[式3]
[0126][0127]
在此式中,表示变换系数向量,而t表示16
×
16(不可分离的)变换矩阵。
[0128]
通过前述式3,可以推导16
×
1变换系数向量并且可以通过扫描顺序(水平、垂直和对角线等)将向量重新组织为4
×
4块。然而,上述计算是示例,并且超立方体-吉文斯变换(hygt)等也可以用于不可分离的二次变换的计算,以便降低不可分离的二次变换的计算复杂度。
[0129]
此外,在不可分离的二次变换中,可以将变换核(或变换核心、变换类型)选择为模式相关。在这种情况下,模式可以包括帧内预测模式和/或帧间预测模式。
[0130]
如上所述,可以基于以变换系数块的宽度(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矩阵。
[0131]
这里,为了选择模式相关的变换核,可以针对8
×
8变换和4
×
4变换二者配置用于不可分离的二次变换的每个变换集二个不可分离的二次变换核,并且可以存在四个变换集。也就是说,可以针对8
×
8变换配置四个变换集,并且可以针对4
×
4变换配置四个变换集。在这种情况下,针对8
×
8变换的四个变换集中的每个变换集可以包括二个8
×
8变换核,并且针对4
×
4变换的四个变换集中的每个变换集可以包括二个4
×
4变换核。
[0132]
然而,随着变换的大小(即,变换所应用于的区域的大小)可以为例如除了8
×
8或4
×
4之外的大小,集的数量可以是n,并且每个集中的变换核的数量可以是k。
[0133]
变换集可以被称为nsst集或lfnst集。可以例如基于当前块(cu或子块)的帧内预测模式来选择变换集当中的特定集。低频不可分离的变换(lfnst)可以是缩减不可分离的变换的示例,其将稍后描述,并且表示用于低频分量的不可分离的变换。
[0134]
作为参考,例如,帧内预测模式可以包括两个非定向(或非角度)帧内预测模式和65个定向(或角度)帧内预测模式。非定向帧内预测模式可以包括0号的平面帧内预测模式和1号的dc帧内预测模式,并且定向帧内预测模式可以包括2号至66号的65个帧内预测模式。然而,这是示例,并且即使帧内预测模式的数量不同也可以应用本文档。此外,在一些情况下,还可以使用67号帧内预测模式,并且67号帧内预测模式可以表示线性模型(lm)模式。
[0135]
图6示意性地示出了65个预测方向的帧内定向模式。
[0136]
参照图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可以被称为左下对角帧内预测模式。
[0137]
根据示例,可以映射根据帧内预测模式的四个变换集,例如,如下表所示。
[0138]
[表2]
[0139]
lfnstpredmodeintralfnsttrsetidxlfnstpredmodeintra<010<=1fnstpredmodeintra<=102<=lfnstpredmodeintra<=12113<=lfnstpredmodeintra<=23224<=lfnstpredmodeintra<=44345<=lfnstpredmodeintra<=55256<=lfnstpredmodeintra<=80181<=lfnstpredmodeintra<=830
[0140]
如表2所示,根据帧内预测模式,四个变换集中的任何一个,即,lfnsttrsetidx,可以映射到四个索引(即,0至3)中的任何一个。
[0141]
当确定特定集用于不可分离的变换时,可以通过不可分离的二次变换索引来选择特定集中的k个变换核之一。编码设备可以基于率失真(rd)校验来推导指示特定变换核的不可分离的二次变换索引,并且可以将不可分离的二次变换索引发信号通知给解码设备。解码设备可以基于不可分离的二次变换索引来选择特定集中的k个变换核中的一个。例如,lfnst索引值0可以指代第一不可分离的二次变换核,lfnst索引值1可以指代第二不可分离的二次变换核,lfnst索引值2可以指代第三不可分离的二次变换核。另选地,lfnst索引值0可以指示第一不可分离的二次变换没有被应用于目标块,并且lfnst索引值1至3可以指示三个变换核。
[0142]
变换器可以基于所选择的变换核来执行不可分离的二次变换,并且可以获得修改的(二次)变换系数。如上所述,修改的变换系数可以被推导为通过量化器量化的变换系数,并且可以被编码并发信号通知给解码设备,并且被传送到编码设备中的解量化器/逆变换器。
[0143]
此外,如上所述,如果省略了二次变换,则可以将作为一次(可分离的)变换的输出的(一次)变换系数推导为如上所述通过量化器量化的变换系数,并且可以被编码并发信号通知给解码设备,并传送到编码设备中的解量化器/逆变换器。
[0144]
逆变换器可以与在上述变换器中已经执行的顺序相反的顺序执行一系列过程。逆变换器可以接收(解量化的)变换系数,并且通过执行二次(逆)变换来推导(一次)变换系数(s550),并且可以通过对(一次)变换系数执行一次(逆)变换来获得残差块(残差样本)(s560)。就此而言,从逆变换器的视角来看,一次变换系数可以被称为修改的变换系数。如上所述,编码设备和解码设备可以基于残差块和预测块来生成重构块,并且可以基于重构块来生成重构图片。
[0145]
解码设备还可以包括二次逆变换应用确定器(或用于确定是否应用二次逆变换的元件)和二次逆变换确定器(或用于确定二次逆变换的元件)。二次逆变换应用确定器可以确定是否应用二次逆变换。例如,二次逆变换可以是nsst、rst或lfnst,并且二次逆变换应用确定器可以基于通过解析比特流而获得的二次变换标志来确定是否应用二次逆变换。在另一示例中,二次逆变换应用确定器可以基于残差块的变换系数来确定是否应用二次逆变换。
[0146]
二次逆变换确定器可以确定二次逆变换。在这种情况下,二次逆变换确定器可以基于根据帧内预测模式指定的lfnst(nsst或rst)变换集来确定应用于当前块的二次逆变换。在实施方式中,可以取决于一次变换确定方法来确定二次变换确定方法。可以根据帧内预测模式来确定一次变换和二次变换的各种组合。此外,在示例中,二次逆变换确定器可以基于当前块的大小来确定应用二次逆变换的区域。
[0147]
此外,如上所述,如果省略二次(逆)变换,则可以接收(解量化的)变换系数,可以执行一次(可分离的)逆变换,并且可以获得残差块(残差样本)。如上所述,编码设备和解码设备可以基于残差块和预测块来生成重构块,并且可以基于重构块来生成重构图片。
[0148]
此外,在本公开中,可以在nsst的概念中应用其中减小了变换矩阵(核)的大小的缩减二次变换(rst),以便减少不可分离的二次变换所需的计算量和存储量。
[0149]
此外,本公开中描述的变换核、变换矩阵以及构成变换核矩阵的系数,即,核系数或矩阵系数,可以以8比特来表示。这可以是在解码设备和编码设备中实现的条件,并且与现有的9比特或10比特相比,可以减少存储变换核所需的存储量,并且可以合理地适应性能劣化。另外,以8比特表示核矩阵可以允许使用小的乘法器,并且可以更适合于用于最佳软件实现的单指令多数据(simd)指令。
[0150]
在本说明书中,术语“rst”可以是指基于大小根据缩减因子而减小的变换矩阵来对目标块的残差样本执行的变换。在执行缩减变换的情况下,由于变换矩阵的大小的减小,可以减少变换所需的计算量。也就是说,rst可以用于解决在大小大的块的变换或不可分离的变换时发生的计算复杂性问题。
[0151]
rst可以被称为诸如缩减变换、缩减二次变换、缩小变换、简化变换和简单变换等之类的各种术语,并且rst可以被称为的名称不限于所列示例。另选地,由于rst主要在变换块中的包括非零系数的低频区域中执行,因此它可以被称为低频不可分离的变换(lfnst)。变换索引可以被称作lfnst索引。
[0152]
此外,当基于rst执行二次逆变换时,编码设备200的逆变换器235和解码设备300的逆变换器322可以包括:逆缩减二次变换器,其基于变换系数的逆rst来推导修改的变换系数;以及逆一次变换器,其基于修改的变换系数的逆一次变换来推导目标块的残差样本。逆一次变换是指应用于残差的一次变换的逆变换。在本公开中,基于变换推导变换系数可以是指通过应用变换来推导变换系数。
[0153]
图7是例示根据本公开的实施方式的rst的图。
[0154]
在本公开中,“目标块”可以指代要编码的当前块,残差块或变换块。
[0155]
在根据示例的rst中,可以将n维向量映射到位于另一个空间中的r维向量,从而可以确定缩减变换矩阵,其中r小于n。n可以是指应用了变换的块的侧边的长度的平方,或与应用了变换的块相对应的变换系数的总数,并且缩减因子可以是指r/n值。缩减因子可以被
称为缩减因子、缩小因子、简化因子、简单因子或其它各种术语。此外,r可以被称为缩减系数,但是根据情况,缩减因子可以是指r。此外,根据情况,缩减因子可以是指n/r值。
[0156]
在示例中,可以通过比特流来发信号通知缩减因子或缩减系数,但是示例不限于此。例如,可以在编码设备200和解码设备300中的每一个中存储针对缩减因子或缩减系数的预定值,并且在这种情况下,可以不单独发信号通知缩减因子或缩减系数。
[0157]
根据示例的缩减变换矩阵的大小可以是小于n
×
n(常规变换矩阵的大小)的r
×
n,并且可以如下面的式4所限定。
[0158]
[式4]
[0159][0160]
图7的(a)中所示的缩减变换块中的矩阵t可以是指式4的矩阵tr×n。如图7的(a)所示,当将缩减变换矩阵tr×n乘以目标块的残差样本时,可以推导当前块的变换系数。
[0161]
在示例中,如果应用了变换的块的大小是8
×
8并且r=16(即,r/n=16/64=1/4),则根据图7的(a)的rst可以被表示为以下式5所示的矩阵运算。在这种情况下,存储和乘法计算可以通过缩减因子缩减至大约1/4。
[0162]
在本公开中,矩阵运算可以理解为通过将列向量与设置在列向量的左侧的矩阵相乘来获得列向量的运算。
[0163]
[式5]
[0164][0165]
在式6中,r1至r
64
可以表示目标块的残差样本,并且具体地可以是通过应用一次变换而生成的变换系数。作为式5的计算的结果,可以推导目标块的变换系数ci,并且推导ci的过程可以如式6所示。
[0166]
[式6]
[0167][0168]
作为式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之间的传输效率可以提高。
[0169]
当从变换矩阵的大小的视角考虑时,常规变换矩阵的大小为64
×
64(n
×
n),但缩减变换矩阵的大小缩减为16
×
64(r
×
n),因此与执行常规变换的情况相比,执行rst的情况下的存储使用率可以减小r/n比率。另外,当与使用常规变换矩阵的情况下的乘法计算的数量n
×
n相比时,使用缩减变换矩阵可以将乘法计算的数量(r
×
n)减小r/n比率。
[0170]
在示例中,编码设备200的变换器232可以通过对目标块的残差样本执行一次变换和基于rst的二次变换来推导目标块的变换系数。这些变换系数可以被传送到解码设备300的逆变换器,并且解码设备300的逆变换器322可以基于针对变换系数的逆缩减二次变换(rst)来推导修改的变换系数,并且可以基于针对修改的变换系数的逆一次变换来推导目标块的残差样本。
[0171]
根据示例的逆rst矩阵tn×r的大小为比常规逆变换矩阵n
×
n的大小小的n
×
r,并且与式4中所示的缩减变换矩阵tr×n具有转置关系。
[0172]
图7的(b)所示的缩减逆变换块中的矩阵t
t
可以是指逆rst矩阵tn×
rt
(上标t是指转置)。如图7的(b)所示,当将逆rst矩阵tn×
rt
乘以目标块的变换系数时,可以推导目标块的修改的变换系数或目标块的残差样本。逆rst矩阵tr×
nt
可以表示为(tr×
nt
)n×r。
[0173]
更具体地,当逆rst被用作二次逆变换时,当逆rst矩阵tn×
rt
被乘以目标块的变换系数时,可以推导目标块的修改的变换系数。此外,可以将逆rst用作逆一次变换,并且在这种情况下,当将逆rst矩阵tn×
rt
与目标块的变换系数相乘时,可以推导目标块的残差样本。
[0174]
在示例中,如果应用逆变换的块的大小是8
×
8并且r=16(即,r/n=16/64=1/4),则根据图7的(b)的rst可以被表示为以下式7所示的矩阵运算。
[0175]
[式7]
[0176][0177]
在式7中,c1至c
16
可以表示目标块的变换系数。作为式7的计算的结果,可以推导表示目标块的修改的变换系数或目标块的残差样本的rj,并且推导rj的过程可以如式8所示。
[0178]
[式8]
[0179][0180]
作为式8的计算的结果,可以推导表示目标块的修改的变换系数或目标块的残差样本的r1至rn。从逆变换矩阵的大小的视角考虑,常规逆变换矩阵的大小为64
×
64(n
×
n),但逆缩减变换矩阵的大小缩减为64
×
16(r
×
n),因此与执行常规逆变换的情况相比,执行逆rst的情况下的存储使用率可以减小r/n比率。另外,当与使用常规逆变换矩阵的情况下
的乘法计算的数量n
×
n相比时,使用逆缩减变换矩阵可以将乘法计算的数量(n
×
r)减少r/n比率。
[0181]
表2所示的变换集配置也可以应用于8
×
8rst。也就是说,可以根据表2中的变换集来应用8
×
8rst。由于根据帧内预测模式,一个变换集包括两个或三个变换(核),因此可以将其配置为选择包括在不应用二次变换的情况下在内的至多四个变换中的一个。在不应用二次变换的变换中,可以考虑应用恒等矩阵(identity matrix)。假设分别将索引0、1、2和3分配给四个变换(例如,可以将索引0分配给应用恒等矩阵的情况,即,不应用二次变换的情况),可以针对每个变换系数块发信号通知作为语法元素的变换索引或lfnst索引,由此指定要应用的变换。也就是说,针对左上8
×
8块,通过变换索引,可以指定rst配置中的8
×
8nsst,或者当应用lfnst时可以指定8
×
8lfnst。8
×
8lfnst和8
×
8rst指代当要变换的目标块的w和h均等于或大于8时可应用于变换系数块中包括的8
×
8区域的变换,并且8
×
8区域可以是变换系数块中的左上8
×
8区域。类似地,4
×
4lfnst和4
×
4rst指代当目标块的w和h均等于或大于4时可应用于变换系数块中包括的4
×
4区域的变换,并且4
×
4区域可以是变换系数块中的左上4
×
4区域。
[0182]
根据本公开的实施方式,对于编码过程中的变换,可以仅选择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区域。
[0183]
对于解码过程中的逆变换,可以使用前述变换核矩阵的转置矩阵。也就是说,当在由解码设备执行的逆变换过程中执行逆rst或lfnst时,根据预定布置顺序在一维向量中配置应用逆rst的输入系数数据,并且可以根据预定布置顺序将通过将一维向量与在一维向量左侧的对应的逆rst矩阵相乘而获得的修改的系数向量布置到二维块中。
[0184]
总之,在变换过程中,当rst或lfnst被应用于8
×
8区域时,在8
×
8区域的除了右下区域之外的左上区域、右上区域和左下区域中的48个变换系数与16
×
48变换核矩阵的矩阵运算。对于矩阵运算,以一维阵列输入48个变换系数。当执行矩阵运算时,推导出16个修改的变换系数,并且可以将修改的变换系数布置于8
×
8区域的左上区域中。
[0185]
相反,在逆变换过程中,当将逆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区域中的除了右下区域之外的左上区域、右上区域和左下区域中。
[0186]
当二次逆变换基于rst时,编码设备200的逆变换器235和解码设备300的逆变换器322可以包括用于基于对变换系数的逆rst推导修改的变换系数的逆缩减二次变换器以及用于基于对修改的变换系数的逆一级变换来推导目标块的残差样本的逆一次变换器。逆一次变换指代应用于残差的一次变换的逆变换。在本公开中,基于变换推导变换系数可以指代通过应用变换来推导变换系数。
[0187]
在下文中,描述缩减多变换技术(缩减自适应多选择(或集合)(rmts))。
[0188]
如上所述,当在多变换技术(多变换集或自适应多变换)中选择性地使用多个变换(dct-2、dst-7、dct-8、dst-1、dct-5等)的组合用于一次变换时,可以将变换仅应用于预定义区域以便降低复杂度,而不是在所有情况下执行变换,从而在最坏情况下显著地降低复杂度。
[0189]
例如,当基于前面的缩减变换(rt)方法来将一次变换应用于m
×
m像素块时,可以仅对r
×
r块(m》=r)的变换块执行计算,而不是获得m
×
m变换块。结果,非零有效系数仅存在于r
×
r区域中,并且其他区域中的变换系数可以被认为是零而不用被计算。下表例示了使用用于应用一次变换的块的大小的预定义的缩减变换因子(r)值的缩减自适应多变换(ramt)的三个示例。
[0190]
[表3]
[0191]
变换大小缩减变换1缩减变换2缩减变换38x84x46x66x616x168x812x128x832x3216x1616x1616x1664x6432x3216x1616x16128x12832x3216x1616x16
[0192]
根据一个示例,在应用上面例示的缩减多变换时,可以基于一次变换来确定缩减变换因子。例如,当一次变换为dct2时,与其他一次变换相比计算简单,并且因此对于小块可能不使用缩减变换或者对于小块可以使用相对较大的r值,从而使编码性能的降低最小化。例如,不同的缩减变换因子可以被用于dct2和其他变换如下。
[0193]
[表4]
[0194]
变换大小针对dct2的缩减变换除了dct2之外的缩减变换8x88x84x416x1616x168x832x3232x3216x1664x6432x3232x32128x12832x3232x32
[0195]
如表4所示,当一次变换为dct2时,变换的大小在要被变换的块的大小为8
×
8或16
×
16时不变,并且变换的缩减大小在块的大小为32
×
32或更大时限于32
×
32。
[0196]
另选地,根据示例,当指示是否应用mts的标志值是0时(即,当针对水平方向和垂直方向两者应用dct2时),对于两个(水平和垂直)方向,仅来自左侧和顶部的32个系数可以被留下并且高频分量可以被清零,也就是说,设置为0(清零实施方式1)。
[0197]
例如,在64
×
64变换单元(tu)中,变换系数仅留在左顶部32
×
32区域中,在64
×
16tu中,变换系数仅留在左项部32
×
16区域中,而在8
×
64tu中,变换系数仅留在左顶部8
×
32区域中。也就是说,在宽度和高度这二者上存在与仅至多最大长度为32对应的变换系数。
[0198]
这种清零方法可以仅被应用于应用了帧内预测的残差信号或者可以仅被应用于应用了帧间预测的残差信号。另选地,可以对应用了帧内预测的残差信号和应用了帧间预测的残差信号这二者应用清零方法。
[0199]
能够被表达为前面的清零或高频清零的变换块大小的变化是指将在具有w1的第一宽度(或长度)和h1的第一高度(或长度)的(变换)块中与某个值或更大的高频率有关的变换系数清零(确定为0)的过程。当应用高频清零时,可以将(变换)块中的变换系数之中的在基于w2的第二宽度和h2的第二高度而配置的低频变换系数区域外部的所有变换系数的变换系数值确定(设置)为0。低频变换系数区域的外部可以被称为高频变换系数区域。在示例中,低频变换系数区域可以是从(变换)块的左顶部起的矩形区域。
[0200]
也就是说,可以将高频清零定义为将由w或更大的x坐标和h或更大的y坐标定义的位置处的所有变换系数设置为0,其中当前变换块(tb)的左顶部位置的水平x坐标值被设置为0并且其垂直y坐标值被设置为0(以及其中x坐标从左向右增加并且y坐标向下增加)。
[0201]
在本公开中,使用了用于定义特定信息或概念的特定术语或表述。例如,如上所述,在本说明书中,将在具有w1的第一宽度(或长度)和h1的第一高度(或长度)的(变换)块中与特定值或更大值的频率相对应的变换系数清零的过程被定义为“高频清零”,已通过高频清零经受清零的区域被定义为“高频变换系数区域”,并且尚未经受清零的区域被定义为“低频变换系数区域”。为了指示低频变换系数区域的大小,w2的第二宽度(或长度)和h2的第二高度(或长度)被使用。
[0202]
然而,“高频清零”可以用诸如高频零化(high frequency zeroing)、高频清零(high frequency zeroing-out)、高频清零(high-frequency zeroing-out)、高频清零(high-frequency zero-out)和清零(zero-out)的各种术语替换,并且“高频变换系数区域”可以用诸如高频清零应用区域、高频清零区域、高频区域、高频系数区域、高频清零区域和清零区域的各种术语替换,并且“低频变换系数区域”可以用诸如高频零化未应用区域、低频区域、低频系数区域、限制区域和清零区域的各种术语替换。因此,本文用于定义特定信息或概念的特定术语或表述需要根据由该术语指示的内容鉴于各种操作、功能和效果在整个说明书中进行解释,而不限于指定。
[0203]
另选地,根据示例,低频变换系数区域是指在执行高频清零之后剩下的区域或其中留下有效变换系数的区域,即可以存在非零变换系数的区域,并且可以被称为清零区域或清零块。
[0204]
根据一个示例,当指示是否应用mts的标志值为1时,也就是说,当除dct2以外的不同变换(dst-7或dct-8)适用于水平方向和垂直方向时,变换系数可以仅留在左顶部区域中,而剩余区域可以被清零如下(清零实施方式2)。
[0205]-当宽度(w)等于或大于2n时,仅从左起与w/2
p
的长度对应的变换系数可以留下,而剩余变换系数可以被固定为0(清零)。
[0206]-当高度(h)等于或大于2m时,仅从顶部起与h/2q的长度对应的变换系数可以留下,而剩余变换系数可以被固定为0(清零)。
[0207]
这里,m、n、p和q可以是等于或大于0的整数,并且可以具体地如下。
[0208]
1)(m,n,p,q)=(5,5,1,1)
[0209]
2)(m,n,p,q)=(4,4,1,1)
[0210]
在配置1)中,变换系数仅留在32
×
16tu中的左顶部16
×
16区域中,并且变换系数仅留在8
×
32tu中的左顶部8
×
16区域中。
[0211]
这种清零方法可以被仅应用于对其应用帧内预测的残差信号或者可以被仅应用于对其应用帧间预测的残差信号。另选地,可以对应用了帧内预测的残差信号和应用了帧间预测的残差信号二者应用清零方法。
[0212]
另选地,根据另一示例,当指示是否应用mts的标志值为1时,也就是说,当除dct2以外的不同变换(dst-7或dct-8)适用于水平方向和垂直方向时,变换系数可以仅留在左顶部区域中,而剩余区域可以被清零如下(清零实施方式3)。
[0213]-当高度(h)等于或大于宽度(w)并且等于或大于2n时,仅左顶部w
×
(h/2
p
)区域中的变换系数可以被留下,而剩余变换系数可以被固定为0(清零)。
[0214]-当宽度(w)大于高度(h)并且等于或大于2m时,仅左顶部(w/2q)
×
h区域中的变换系数可以被留下,而剩余变换系数可以被固定为0(清零)。
[0215]
在上述条件下,当高度(h)和宽度(w)相同时,垂直长度减小(h/2p),但是水平长度也可以减小(w/2q)。
[0216]
这里,m、n、p和q可以是等于或大于0的整数,并且可以具体地如下。
[0217]
1)(m,n,p,q)=(4,4,1,1)
[0218]
2)(m,n,p,q)=(5,5,1,1)
[0219]
在配置1)中,变换系数仅留在32
×
16tu中的左顶部16
×
16区域中,并且变换系数仅留在8
×
16tu中的左顶部8
×
8区域中。
[0220]
这种清零方法可以被仅应用于对其应用帧内预测的残差信号或者可以被仅应用于对其应用帧间预测的残差信号。另选地,可以对应用了帧内预测的残差信号和应用了帧间预测的残差信号二者应用清零方法。
[0221]
在前面的实施方式中,取决于指示是否应用mts的标志值为0或指示是否应用mts的标志值为1而限制变换系数区域。根据一个示例,这些实施方式的组合是可能的。
[0222]
1)清零实施方式1 清零实施方式2
[0223]
2)清零实施方式1 清零实施方式3
[0224]
如清零实施方式2和清零实施方式3中提及的,清零方法可以被仅应用于被应用帧内预测的残差信号或者可以被仅应用于被应用帧间预测的残差信号。另选地,可以将清零方法应用于被应用帧内预测的残差信号和被应用帧间预测的残差信号两者。因此,当mts标志是1时,可以配置下表(当mts标志是1时,可以应用清零实施方式1)。这里,还可以将mts标志配置为指示用于mts的变换核的mts索引。例如,0的mts索引可以指示清零实施方式1被应用。
[0225]
[表5]
[0226]
配置索引帧内预测残差信号帧间预测残差信号1不应用清零不应用清零2不应用清零清零实施方式2
3不应用清零清零实施方式34清零实施方式2不应用清零5清零实施方式2清零实施方式26清零实施方式2清零实施方式37清零实施方式3不应用清零8清零实施方式3清零实施方式29清零实施方式3清零实施方式3
[0227]
在清零实施方式1、清零实施方式2和清零实施方式3中,清楚地定义了在tu中不可避免地包括值0的区域。也就是说,除允许存在变换系数的左顶部区域以外的区域被清零。因此,根据实施方式,它可以被配置成绕过其中变换系数明确地具有值0的区域作为对残差信号的熵编码的结果,而不是对其执行残差编码。例如,以下配置是可能的。
[0228]
1)在hevc或vvc中,指示在一个系数组(cg,其取决于子块和tu块的形状以及亮度分量/色度分量可以是4x4或2x2块)中是否存在非零变换系数的标志被编码(subblock_flag)。只有当subblock_flag是1时,cg的内部才被扫描并且系数级别值被编码。因此,对于属于执行清零的区域的cg,subblock_flag可以被默认设置为值0而不是被编码。
[0229]
2)在hevc或vvc中,前向扫描顺序中的最后系数(x方向上的last_coefficient_position_x和y方向上的last_coefficient_position_y)的位置被首先编码。通常,last_coefficient_position_x和last_coefficient_position_y分别可以具有最大值(tu的宽度-1)和最大值(tu的高度-1)。然而,当可以存在非零系数的区域由于清零被限制时,last_coefficient_position_x和last_coefficient_position_y的最大值也被限制。因此,last_coefficient_position_x和last_coefficient_position_y的最大值可以鉴于清零被限制并且然后可以被编码。例如,当应用于last_coefficient_position_x和last_coefficient_position_y的二值化方法是截断一元二值化时,可以基于调整的最大值减小截断一元码的最大长度(last_coefficient_position_x和last_coefficient_position_y能够具有的码字长度)。
[0230]
如上所述,当应用清零时,特别是在左顶部16x16区域是低频变换系数区域(其在下文中可以被称为32点缩减mts或rmt 32)的情况下,可以既在应用mts技术时且在应用32点dst-7或32点dct-8时应用清零。
[0231]
图8例示根据本公开的示例的应用于子块变换的mts。
[0232]
根据示例,可以应用其中将编码单元划分成子块并且对子块执行变换过程的子块变换(sbt)。子块变换被应用于通过帧间预测生成的残差信号,并且残差信号块被划分成两个划分的子块,并且根据子块变换对子块中的仅一个应用可分离变换。子块可以在水平方向或垂直方向上划分,并且划分的子块的宽度或高度可以是编码单元的1/2或1/4。当应用子块变换时,由于两个划分的子块中的仅一个被变换,所以仅在经变换的子块中存在残差数据,并且在剩余一个子块中不存在残差数据。
[0233]
当对其应用变换的子块的宽度或其高度是64或更大时,可以在水平方向和垂直方向两者上应用dct-2,而当对其应用变换的子块的宽度和其高度是32或更小时,可以应用dst-7或dct-8。因此,当应用sbt时,只有当对其应用变换的子块的所有两侧都具有32或更小的长度时,才可以通过应用rmts32来执行清零。也就是说,可以在每个方向(水平方向和
垂直方向)上应用长度为32或更小的dst-7或dct-8,从而为每行或每列留下最多16个变换系数。
[0234]
如图8所示,当块被划分并且变换被应用于区域a时,可以对每侧应用dst-7或dct-8并且在水平和垂直方向上应用的变换不限于图8中例示的示例。在图8中,整个块的宽度和高度分别由w和h表示,并且被实际地应用可分离变换的块的宽度和高度被表达为(宽度,高度)的对,即(w1,h)或(w,h1)。w1可以是w的1/2或1/4,并且h1也可以是h的1/2或1/4。
[0235]
如图8所示,被应用变换的块可以被定位在整个块中的左侧或右侧或在整个块中的顶部或底部上。此外,图8的块可以是由帧间预测生成的残差信号。可以发信号通知指示是否对如图8所示划分的残差信号的仅一个子块应用变换的标志,并且当该标志是1时,还可以通过信令设置指示该块是如图5所示垂直地划分还是水平地划分的标志。
[0236]
还可以发信号通知指示被实际地应用变换的块a被定位在整个块中的左侧还是右侧的标志或指示块a被定位在顶部还是底部上的标志。
[0237]
如图8所例示的,当针对特定块确定水平变换和垂直变换而不是通过mts信令指定水平变换和垂直变换时,可以在水平方向和垂直方向上的相应侧具有32的长度时对各侧应用上面提出的rmts32。在rmts32中,可以对于清零区域省略残差编码,或者可以通过扫描仅非清零区域来执行残差编码。
[0238]
图9例示根据本公开的示例的应用于子块变换的32点清零。
[0239]
当rmts32被应用于如图8所示划分的子块时,在变换之后可以如图9所示存在残差数据。也就是说,图9示出rmts32被应用于根据子块变换的应用而划分的块之中对其执行变换的子块。
[0240]
相对于原始变换块的宽度w和高度h,被实际地应用变换的块a的宽度和高度分别可以是w/2和h/2或w/4和h/4。
[0241]
总之,如果可以在水平方向和垂直方向中的每个方向上应用长度为32的dst-7或dct-8,则可以将rmts32应用于被应用变换的任何块。应用长度为32的dst-7还是dct-8可以通过预设信令来确定或者可以根据预定编码条件在没有信令的情况下被确定。
[0242]
在mts被禁用的情况下(例如,在vvc中,当在序列参数集中将“sps_mts_enable_flag”设置为0时可以禁用mts),当应用sbt时,在水平方向和垂直方向两者上应用dct-2,而不是表3中呈现的dst-7和dct-8的组合。
[0243]
因此,当mts被禁用时,即使要变换的块被划分成子块,也需要防止应用rmts32。如上所述,当不应用mts时,可以在一次变换中应用dct-2而不是dst-7或dct-8,并且在其中可以存在被应用dct-2的非零变换系数的左顶部块可以经受将宽度和高度减小为32的高频清零。也就是说,在其中可以存在被应用逆dct-2的非零变换系数的左顶部块可以在宽度和高度上减小为32,但是未被清零为小于32的宽度和高度。这是为了防止由于清零而导致的数据丢失,并且对其应用逆dct-2的左顶部块的宽度或高度未减小为16。
[0244]
如果mts被禁用,则有必要显式地检查被应用dct-2的划分的子块的宽度或高度,使得划分的子块的宽度或高度未减小为16。
[0245]
根据示例,通过确定残差编码语法中的“sps_mts_enabled_flag”,可以将其配置成在应用sbt时不执行由于rmts32而导致的清零。
[0246]
可以在下表(表6至表16)中示出反映前述实施方式的规范文本。
[0247]
[表6]
[0248][0249]
[表7]
[0250][0251]
表6和表7包括在用于图像编码的序列参数集中发信号通知的图像信息并且包括与变换相关的数条标志信息。
[0252]
sps_transform_skip_enabled_flag指定变换跳过是否被应用,即,变换跳过标志(transform_skip_flag)是否可以存在于变换单元语法中。
[0253]
sps_mts_enabled_flag是指定是否可以显式地使用mts即多变换选择技术的标志信息。sps_mts_enabled_flag等于1指定sps_explicit_mts_intra_enabled_flag和sps_explicit_mts_inter_enabled_flag存在于序列参数集语法中。
[0254]
当sps_explicit_mts_intra_enabled_flag和sps_explicit_mts_inter_enabled_flag中的任何一个是1时,指定了mts可以被应用于变换单元,这意味着tu_mts_idx可以存在于变换单元语法中。例如,当sps_mts_enabled_flag等于1并且sps_explicit_mts_intra_enabled_flag等于0时,可以对帧内编码单元应用隐式mts。
[0255]
sps_sbt_enabled_flag是指定是否可以将前面的子块变换应用于用于帧间预测的编码单元的标志信息。
[0256]
当sps_sbt_enabled_flag等于1时,可以发信号通知用于允许子块变换的编码单元的最大宽度和高度的sps_sbt_max_size_64_flag。
[0257]
当sps_sbt_max_size_64_flag等于0时,用于允许块变换的编码单元的最大宽度和高度是32,并且当sps_sbt_max_size_64_flag等于1时,用于允许子块变换的编码单元的最大宽度和高度被推导为等于64。
[0258]
[表8]
[0259][0260]
表8示出在图片参数集中发信号通知的变换相关信息。log2_transform_skip_max_size_minus2是用于推导用于变换跳过的最大块大小的信息,并且用于变换跳过的最大块大小被推导为log2_transform_skip_max_size_minus2加上2的2次幂的值(1《《(log2_transform_skip_max_size_minus2 2)。
[0261]
[表9]
[0262]
[0263][0264]
[表10]
[0265]
2;否则,可以应用dst-7或dct-8。当对当前块进行划分并且对子块执行变换时,可以如表11所示隐式地应用mts。
[0275]
当子块的宽度和高度都是32或更小并且因此应用dst-7或dct-8时,也就是说,当mts被应用于子块时,可以应用前面的rmts。例如,子块在每个方向上的长度是32,可以通过应用长度为32的dst-7或dct-8来留下仅16个变换系数。
[0276]
然而,当子块的宽度或高度是64或更大时,可以在水平方向和垂直方向这两者上应用dct-2,并且可以根据高频清零留下仅32个变换系数,而不是在每个方向上应用rmts。
[0277]
[表12]
[0278]
[0279][0280]
表12示出根据示例的变换单元的语法和语义的部分。tu_mts_idx[x0][y0]指定应用于变换块的mts索引,并且可以如表1所示根据mts索引确定trtypehor和trtypever。
[0281]
根据另一示例,可以在编码单元级别中而不是在变换单元级别中发信号通知mts_idx。
[0282]
[[表13]
[0283]
[0284][0285]
表13示出根据示例的残差编码的语法和语义的部分。
[0286]
表13中的语法元素last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix和last_sig_coeff_y_suffix指定关于变换块中的最后非零变换系数的(x,y)位置信息。具体地,last_sig_coeff_x_prefix指定最后有效系数在变换块中按扫描顺序的列位置的前缀,last_sig_coeff_y_prefix指定最后有效系数在变换块中按扫描顺序的行位置的前缀,last_sig_coeff_x_suffix指定最后有效系数在变换块中按扫描顺序的列位置的后缀,并且last_sig_coeff_y_suffix指定最后有效系数在变换块中按扫描顺序的行位置的后缀。这里,有效系数可以是指非零系数。此外,扫描顺序可以是右上对角线扫描顺序。另选地,扫描顺序可以是水平扫描顺序或垂直扫描顺序。可以基于帧内/帧间预测是否被应用于目标块(cb或包括tb的cb)和/或特定帧内/帧间预测模式来确定扫描顺序。
[0287]
可以基于表12的tu_mts_idx[x0][y0]在表13的残差编码中配置清零区域。
[0288]
此外,当cu_sbt_flag等于1时,被应用变换的块的高度是32或更小(log2tbheight《6),其宽度是32(log2tbwidth《6&&log2tbwidth》4),并且sps_mts_enabled_flag等于1时,可以存在非零变换系数的左顶部区域的宽度被设置为16(log2zotbwidth=4)。类似地,当cu_sbt_flag等于1时,被应用变换的块的宽度是32或更小(log2tbwidth《6),其高度是32(log2tbheight《6&&log2tbheight》4),并且sps_mts_enabled_flag等于1时,可以存在非零变换系数的左顶部区域的高度被设置为16(log2zotbheight=4)。
[0289]
被应用变换的块可以是原始变换块或划分的子块。
[0290]
这里,log2zotbwidth和log2zotbheight表示可以存在非零系数的变换块中的左顶部区域的最大宽度和最大高度,并且可以将左顶部区域称为“缩减变换块”。也就是说,可以将log2zotbwidth和log2zotbheight定义为指示缩减变换块的宽度和高度的变量。
[0291]
也就是说,根据示例,当子块变换被应用于编码单元时,mts需要适用以便应用清
零(rmts),其中可以存在非零系数的左顶部块的宽度被减小为16并且剩余区域是0。
[0292]
当不应用mts时,即使标识了sbt被应用于编码单元(当cu_sbt_flag是1时),也需要将dct-2而不是mts应用于对其应用变换的子块。例如,当sps_mts_enabled_flag等于0时,即使sbt被应用于编码块,也应用dct-2而不是dst-7或dct-8。
[0293]
另外,当sbt被应用于编码块时,只有当子块的宽度或高度是64或更大时才应用dct-2,并且在其他情况下不应用dct-2。
[0294]
也就是说,为了确保dct-2被应用于子块并且为了防止可以引起数据丢失的rmts被应用于被应用dct-2的子块,编码设备配置图像信息以便检查sps_mts_enabled_flag的值,并且解码设备根据所配置的图像信息来在残差编码中检查sps_mts_enabled_flag的值。
[0295]
总之,当在图像解码过程中仅标识了cu_sbt_flag是1时,可以在根据rmts设置变换块大小时检查在序列参数集中发信号通知的sps_mts_enabled_flag的值,以便防止rmts被应用于被应用dct-2的子块。当cu_sbt_flag等于1并且sps_mts_enabled_flag等于1时,可以应用rmts,因此可以将可以存在非零变换系数的左顶部块的宽度和高度设置为16,并且当cu_sbt_flag等于1并且sps_mts_enabled_flag等于0时,不应用mts,因为dct-2被用于变换,因此也不应用根据rmts的清零。在这种情况下,可以将可以存在非零变换系数的左顶部块的宽度和高度设置为32或更小。
[0296]
例如,在对其应用子块变换的32x32变换块的情况下,当sps_mts_enabled_flag等于0时,dct-2被用作变换核,因此长度为32的宽度或高度未减小为16。
[0297]
如上所述,当mts被禁用时,可以通过检查sps_mts_enabled_flag来防止清零为16的长度的rmts。
[0298]
在其他情况下,当cu_sbt_flag不是1,变换块的高度大于32,变换块的宽度不是32,或者不应用mts时,可以将变换块的宽度设置为变换块的宽度和32中的较小值。也就是说,变换块的最大宽度可以通过高频清零被限制为32。此外,当cu_sbt_flag不是1,变换块的宽度大于32,或者变换块的高度不是32时,可以将变换块的高度设置为变换块的高度和32中的较小值。也就是说,变换块的最大高度可以通过清零被限制为32。
[0299]
当应用sbt时,如果划分块的至少一侧的长度是64或更大,则可以在水平方向和垂直方向两者上应用dct-2。否则,可以应如表11所示用dst-7或dct-8。因此,当应用sbt时,只有当对其应用变换的划分块的所有两侧都具有32或更小的长度时才通过应用rmts32来执行清零。也就是说,当块在每个方向上的长度是32时,可以应用长度为32的dst-7或dct-8,从而剩下仅16个变换系数。
[0300]
如表13所示,当应用rmts32时,可以将未清零的剩余区域(低频变换系数区域)的宽度和高度认为是实际变换块的宽度和高度而不是使用用于编码的原始变换块的宽度和高度(log2zotbwidth=4或log2zotbheight=4),来执行编码。
[0301]
例如,在原始变换块的宽度x高度是32x16的情况下,当应用rmts32时,由于清零而仅在左顶部16x16区域中存在非零系数。因此,可以存在非零变换系数的左顶部区域的宽度和高度分别被设置为16和16,然后可以执行语法元素(例如,last_sig_coeff_x_prefix和last_sig_coeff_y_prefix)的编码。
[0302]
总之,根据表13的残差编码,指示可以存在非零系数的最大宽度和最大高度的
log2zotbwidth和log2zotbheight在对last_sig_coeff_x_prefix进行编码之前被设置,最后非零系数的位置是通过应用log2zotbwidth和log2zotbheight来编码的,然后实际变换块的宽度和高度分别被改变为log2zotbwidth和log2zotbheight(log2tbwidth=log2zotbwidth和log2tbheight=log2zotbheight)。随后,可以根据改变的值对语法元素进行编码。因此,可以将残差编码中排除清零区域的剩余左顶部区域配置为新变换块,然后可以推导残差样本。
[0303]
当通过高频变换系数的清零来将变换块的大小减小到低频变换系数区域时,可以如表13的语义所示将last_sig_coeff_x_prefix和last_sig_coeff_y_prefix的值限制为从0至介于(log2zotbwidth《《1)

1与(log2zotbheight《《1)

1之间的值的范围。
[0304]
[表14]
[0305]
[0306][0307]
[0308][0309]
[0310][0311]
表14例示表明了当sbt被应用于编码单元mts被隐式地应用的变换过程(cu_sbt_flag等于1并且max(ntbw,ntbh)小于或等于32,implicitmtsenabled被设置为等于1)。
[0312]
可以基于表8-14推导表示水平变换核的变量trtypehor和表示垂直变换核的变量trtypever,并且表14的表8-14可以对应于本文档的表1。
[0313]
另外,当sbt被应用于编码单元时,可以基于表8-15推导变量trtypehor和trtypever,并且表14的表8-15可以对应于本文档的表11。
[0314]
对其应用清零的块即表13中例示的清零块的大小在表14中被表达为nonzerow和nonzeroh。可以将nonzerow和nonzeroh定义为表示可以存在非零变换系数的左顶部块的宽度和高度的变量。
[0315]
当不应用lfnst时,可以将nonzerow设置为基于trtypehor是否大于0的值((trtypehor》0)?16:32)和变换块的宽度(ntbw)中的较小值(nonzerow=min(ntbw,
(trtypehor》0)?16:32))。当trtypehor大于0时,由于应用了mts,所以“(trtypehor》0)?16:32”被设置为16,并因此nonzerow被设置为变换块的宽度(ntbw)和16中的较小值。然而,当trtypehor不大于0时,由于不应用mts,所以“(trtypehor》0)?16:32”被设置为32,并因此nonzerow被设置为变换块的宽度(ntbw)和32中的较小值。
[0316]
类似地,当不应用lfnst时,可以将nonzeroh设置为基于trtypever是否大于0的值((trtypever》0)?16:32)和变换块的宽度(ntbh)中的较小值(nonzeroh=min(ntbh,(trtypever》0)?16:32))。当trtypever大于0时,由于应用了mts,所以“(trtypever》0)?16:32”被设置为16,并因此nonzeroh被设置为变换块的高度(ntbh)和16中的较小值。然而,当trtypever不大于0时,由于不应用mts,所以“(trtypever》0)?16:32”被设置为32,因此nonzeroh被设置为变换块的高度(ntbh)和32中的较小值。
[0317]
也就是说,取决于是否应用mts,即trtypehor和trtypever是否能够具有0或更大的值,清零块的大小被设置为16或32。
[0318]
可以基于考虑清零设置的nonzerow和nonzeroh来推导残差样本值(当ntbh大于1时,具有x=0..nonzerow-1、y=0..nonzeroh-1的缩放变换系数d[x][y]的每个(垂直)列通过以变换块的高度ntbh、缩放变换系数的非零高度nonzeroh、具有y=0..nonzeroh-1的列表d[x][y]和设置为等于trtypever的变换类型变量trtype作为输入针对每列x=0..nonzerow-1调用如条款8.7.4.4中指定的一维变换过程被转换为具有x=0..nonzerow-1、y=0..ntbh-1的e[x][y],并且输出是具有y=0..ntbh-1的列表e[x][y])。
[0319]
当通过应用清零来改变变换块的大小时,还可以改变用于last_sig_coeff_x_prefix和last_sig_coeff_y_prefix的上下文选择的变换块的大小。表15示出考虑缩减变换块的last_sig_coeff_x_prefix和last_sig_coeff_y_prefix的二值化,并且表16示出推导ctxinc(上下文增量)以用于推导last_sig_coeff_x_prefix和lastsig_coeff_y_prefix的过程。由于可以通过上下文增量来选择和区分上下文,所以可以基于上下文增量来推导上下文模型。
[0320]
[表15]
[0321][0322][0323]
[表16]
[0324][0325]
如表15所例示的,last_sig_coeff_x_prefix和last_sig_coeff_y_prefix的最大值(cmax)基于与缩减变换块的宽度和高度相对应的log2zotbwidth和log2zotbheight被设置为低频变换系数区域(cmax=(cmax=(log2zotbwidth《《1)

1,cmax=(log2zotbheight《《1)

1)。当截断一元被用于last_sig_coeff_x_prefix和last_sig_coeff_y_prefix的二值化时,可以将last_sig_coeff_x_prefix和last_sig_coeff_y_prefix的最大值(cmax)设置
为等于用于last_sig_coeff_x_prefix和last_sig_coeff_y_prefix的二值化的码字的最大值。因此,可以基于清零块的大小来推导表示最后有效系数前缀信息的前缀码字的最大长度。
[0326]
如表16所例示的,对于用于两个语法元素即last_sig_coeff_x_prefix和last_sig_coeff_y_prefix的cabac上下文,低频变换系数区域中的原始变换块(tu)而不是缩减变换块的大小被应用(log2tbsize被设置为等于log2tbwidth,log2tbsize被设置为等于log2tbheight)。
[0327]
总之,根据示例,可以基于最后有效系数位置信息来推导残差样本,其中可以基于大小未发生改变的原始变换块的大小来推导上下文模型,并且可以基于已对其应用清零的变换块的大小来推导最后有效系数位置。这里,已对其应用清零的变换块即清零块的大小具体地为宽度或高度小于原始变换块的大小、宽度或高度。
[0328]
以下附图被提供来描述本公开的特定示例。由于附图中例示的装置的特定名称或特定信号/消息/字段的名称是为了例示而提供的,所以本公开的技术特征不限于以下附图中使用的特定名称。
[0329]
图10是例示根据本公开的实施方式的视频解码设备的操作的流程图。
[0330]
图10中例示的每个操作可以由图3中例示的解码设备300执行。具体地,s1000和s1010可以由图3中例示的熵解码器310执行,s1020可以由图3中例示的解量化器321执行,s1030可以由图3中例示的逆变换器322执行,并且s1040可以由图3中例示的加法器340执行。根据s1000至s1040的操作基于参照图4至图9说明的一些前面的细节。因此,将省略或将简要地进行与在上面参照图3至图6说明的那些重叠的特定细节的描述。
[0331]
根据实施方式的解码设备可以接收包括残差信息的比特流(s700)。具体地,解码设备的熵解码器310可以接收包括残差信息的比特流。
[0332]
根据实施方式的解码设备可以基于包括在比特流中的残差信息来推导用于当前块的量化变换系数(s1010)。具体地,解码设备的熵解码器310可以基于包括在比特流中的残差信息来量化用于当前块的变换系数。
[0333]
根据实施方式的解码设备可以基于解量化过程从量化变换系数推导变换系数(s1020)。具体地,解码设备的解量化器321可以基于解量化处理从量化变换系数推导变换系数。
[0334]
根据实施方式的解码设备可以通过对所推导的变换系数应用逆变换来推导用于当前块的残差样本(s1030)。具体地,解码设备的逆变换322可以通过对所推导的变换系数应用逆变换来推导用于当前块的残差样本。
[0335]
根据实施方式的解码设备可以基于用于当前块的残差样本来生成重构图片(s1040)。具体地,解码设备的加法器340可以基于用于当前块的残差样本来生成重构图片。
[0336]
在实施方式中,当前块的单元可以是变换块(tb)。
[0337]
在实施方式中,用于当前块的每个变换系数可以与包括0的变换系数的高频变换系数区域或包括至少一个有效变换系数的低频变换系数区域相关。
[0338]
在实施方式中,残差信息可以包括关于用于当前块的变换系数之中的最后有效变换系数的位置的最后有效系数前缀信息和最后有效系数后缀信息。
[0339]
在一个示例中,最后有效系数前缀信息可以具有基于清零块的大小所确定的最大
值。
[0340]
在实施方式中,可以基于指示最后有效系数前缀信息和最后有效系数后缀信息的前缀码字来确定最后有效变换系数的位置。
[0341]
在实施方式中,可以基于低频变换系数区域即清零块的大小来确定前缀码字的最大长度。
[0342]
在实施方式中,可以基于当前块的宽度和高度来确定清零块的大小。
[0343]
在实施方式中,最后有效系数前缀信息可以包括x轴前缀信息和y轴前缀信息,并且前缀码字可以是关于x轴前缀信息的码字和用于y轴前缀信息的码字。
[0344]
在一个示例中,可以将x轴前缀信息表达为last_sig_coeff_x_prefix,可以将y轴前缀信息表达为last_sig_coeff_y_prefix,并且可以将最后有效变换系数的位置表达为(lastsignificantcoeffx,lastsignificantcoeffy)。
[0345]
在实施方式中,残差信息可以包括关于清零块的大小的信息。
[0346]
图11是例示根据本公开的实施方式的用于由视频解码设备推导变换系数的过程的流程图。
[0347]
图11中例示的每个操作可以由图3中例示的解码设备300执行。具体地,s1100到s1140可以由图3中例示的熵解码器310执行。
[0348]
首先,如图所示,为了推导当前块的清零块,解码设备可以检查第一标志信息,该第一标志信息指示通过划分编码单元来执行变换的子块变换是否应用于当前块(s1100)。
[0349]
如上所述,清零块是指包括非零有效变换系数的低频变换系数区域,并且解码设备可以在残差编码步骤中推导清零块。
[0350]
解码设备可以基于诸如cu_sbt_flag之类的第一标志信息来确定是否应用子块变换,并且可以在编码单元级别发信号通知该第一标志信息。
[0351]
此外,解码设备可以检查指示使用多个变换核的多变换选择是否被应用于当前块的第二标志信息(s1110)。
[0352]
指示是否将多变换选择应用于当前块的第二标志信息可以是sps_mts_enabled_flag,并且该第二标志信息可以在序列参数集级别发信号通知。
[0353]
解码设备可以基于是否可以将mts应用于当前块、是否将子块变换应用于当前块(即,第一标志信息和第二标志信息)以及当前块的宽度或高度来推导应用了变换的清零块(s1120)。
[0354]
可以将要应用变换的变换块实现为清零块,该清零块指示当前块中的可以存在有效变换系数的区域,并且清零块的宽度和高度可以根据mts和子块变换是否被应用于当前块而被推导为各种值。
[0355]
根据示例,当应用多变换选择时(当可以应用dst-7/dct-8时),解码设备可以将清零块的宽度或高度设置为16,并且当不应用多变换选择时可以将清零块的宽度或高度设置为32或更小。
[0356]
具体地,当应用dst-7或dct-8而不是dct-2作为用于逆一次变换的变换核、当前块的宽度是32、并且当前块的高度是32或更小时,可以将清零块的宽度设置为16。当不满足上述条件时,也就是说,当变换核是dct-2、当前块的宽度不是32、或者当前块的高度是64或更大时,可以将清零块的宽度设置为当前块的宽度和32中的较小值。
[0357]
类似地,当应用dst-7或dct-8而不是dct-2作为用于逆一次变换的变换核、当前块的高度是32、并且当前块的宽度是32或更小时,可以将清零块的高度设置为16。当不满足上述条件时,也就是说,当变换核是dct-2、当前块的高度不是32、或者当前块的宽度是64或更大时,可以将清零块的高度设置为当前块的高度和32中的较小值。
[0358]
此外,根据示例,当指示当前块是否被划分成子块并被变换的标志的值是1、划分的子块的宽度是32、并且子块的高度小于64时,清零块的宽度(即,子块中的可以存在非零变换系数的左上区域的宽度)可以被设置为16。另选地,当指示当前块是否被划分成子块并被变换的标志的值是1、划分的子块的高度是32、并且子块中的可以存在非零变换系数的左上区域的宽度小于64时,子块的高度可以被设置为16。
[0359]
可以如表11所示基于当前块的划分方向和对其应用变换的子块的位置来推导变换核。
[0360]
清零块的大小可以小于当前块的大小。具体地,清零块的宽度可以小于当前块的宽度,并且清零块的高度可以小于当前块的高度。
[0361]
在实施方式中,清零块的大小可以是32x16、16x32、16x16或32x32之一。
[0362]
在实施方式中,当前块的大小可以是64x64,并且清零块的大小可以是32x32。
[0363]
另一方面,根据示例,解码设备可以基于当前块的宽度或高度来推导用于最后有效系数位置信息的上下文模型并且可以基于推导的上下文模型来推导最后有效系数位置的值。
[0364]
根据示例,可以基于原始变换块的大小而不是清零块的大小来推导上下文模型。具体地,可以基于原始变换块的大小来推导与最后有效系数前缀信息相对应的x轴前缀信息和y轴前缀信息的上下文增量。
[0365]
如上所述,最后有效系数位置信息可以包括最后有效系数前缀信息和最后有效系数后缀信息,并且可以基于上下文模型来推导最后有效系数位置的值。
[0366]
解码设备可以基于所推导的最后有效系数位置信息的值和清零块的宽度或高度来推导最后有效系数位置(s1130)。
[0367]
在一个示例中,解码设备可以在小于当前块而不是原始当前块的大小的清零块的大小的范围内推导最后有效系数位置。也就是说,可以在清零块而不是当前块的大小的范围内推导被应用变换的变换系数。
[0368]
在一个示例中,最后有效系数前缀信息可以具有基于清零块的大小所确定的最大值。
[0369]
在一个示例中,可以基于指示最后有效系数前缀信息和最后有效系数后缀信息的前缀码字来推导最后有效系数位置,并且可以基于清零块的大小来确定前缀码字的最大长度。
[0370]
解码设备可以根据基于清零块的宽度或高度而推导的最后有效系数位置来推导变换系数(s1140)。
[0371]
可以通过表13的残差编码过程来推导变换系数。
[0372]
随后,解码设备可以通过基于表1和表11执行前面的不可分离逆二次变换和逆一次变换中的至少一个来推导残差样本。
[0373]
图12是例示根据本公开的实施方式的视频编码设备的操作的流程图。
[0374]
图12中例示的每个操作可以由图2中例示的编码设备200执行。具体地,s1200可以由图2中例示的减法器231执行,s1210可以由图2中例示的变换器232执行,s1220可以由图2中例示的量化器233执行,并且s1230可以由图2中例示的熵编码器240执行。根据s1200至s1230的操作基于参照图4至图9说明的一些前面的细节。因此,将省略或将简要地描述与在上面参照图2和图4至图9说明的那些重叠的特定细节的描述。
[0375]
根据实施方式的编码设备可以推导当前块的残差样本(s1200)。具体地,编码设备的减法器231可以推导当前块的残差样本。
[0376]
根据实施方式的编码设备可以变换当前块的残差样本,从而推导当前块的变换系数(s1210)。具体地,编码设备的变换器232可以变换当前块的残差样本,从而推导当前块的变换系数。
[0377]
根据实施方式的编码设备可以基于量化从变换系数推导量化变换系数(s1220)。具体地,编码设备的量化器233可以基于量化从变换系数推导量化变换系数。
[0378]
根据实施方式的编码设备可以对包括关于量化变换系数的信息的残差信息进行编码(s1230)。具体地,编码设备的熵编码器240可以对包括关于量化变换系数的信息的残差信息进行编码。
[0379]
在实施方式中,当前块的每个变换系数可以与包括0的变换系数的高频变换系数区域或包括至少一个有效变换系数的低频变换系数区域即清零块相关。
[0380]
在实施方式中,残差信息可以包括关于当前块的变换系数之中的最后有效变换系数的位置的最后有效系数前缀信息和最后有效系数后缀信息。
[0381]
在实施方式中,可以基于指示最后有效系数前缀信息和最后有效系数后缀信息的前缀码字来确定最后有效变换系数的位置。
[0382]
在一个示例中,最后有效系数前缀信息可以具有基于清零块的大小所确定的最大值。
[0383]
在实施方式中,可以基于清零块的大小来确定前缀码字的最大长度。
[0384]
在实施方式中,可以基于当前块的宽度和高度来确定清零块的大小。
[0385]
在实施方式中,最后有效系数前缀信息可以包括x轴前缀信息和y轴前缀信息,并且前缀码字可以是关于x轴前缀信息的码字和针对y轴前缀信息的码字。
[0386]
在一个示例中,可以将x轴前缀信息表达为last_sig_coeff_x_prefix,可以将y轴前缀信息表达为last_sig_coeff_y_prefix,并且可以将最后有效变换系数的位置表达为(lastsignificantcoeffx,lastsignificantcoeffy)。
[0387]
在实施方式中,残差信息可以包括关于清零块的大小的信息。
[0388]
图13是例示根据本公开的实施方式的用于对变换系数和信息进行编码的过程的流程图。
[0389]
图13中公开的每个操作可以由图2中公开的编码设备200执行。具体地,s1300和s1330可以由变换器232执行,并且s1340至s1360可以由图2中公开的熵编码器240执行。
[0390]
首先,为了推导当前块的清零块,编码设备可以确定通过划分编码单元来执行变换的子块变换是否应用于当前块(s1300)。
[0391]
如上所述,清零块是指包括非零有效变换系数的低频变换系数区域,并且对应于应用变换的实际变换块。
[0392]
指示子块变换是否应用于当前块的信息可以由编码设备生成并作为标志信息(cu_sbt_flag)输出,并且该标志信息可以在编码单元级别发信号通知。
[0393]
此外,编码设备可以确定是否将使用多个变换核的多变换选择应用于当前块(s1310)。
[0394]
指示是否将多变换选择应用于当前块的信息可以由编码设备生成并作为标志信息sps_mts_enabled_flag输出,并且该标志信息可以在序列参数集级别发信号通知。
[0395]
编码设备可基于是否可以将mts应用于当前块、是否将子块变换应用于当前块以及当前块的宽度或高度来推导对其应用变换的清零块(s1320)。
[0396]
在解码过程中,其中存在要应用逆变换的变换系数的区域可以被实现为指示当前块中的有效变换系数可以存在的区域的清零块,并且根据mts和子块变换是否应用于当前块,可以将清零块的宽度和高度推导为各种值。
[0397]
根据示例,编码设备可以在应用mts时将清零块的宽度或高度设置为16,并且可以在不应用mts时将清零块的宽度或高度设置为32或更小。
[0398]
具体地,当应用dst-7或dct-8而不是dct-2作为用于一次变换的变换核、当前块的宽度是32、并且当前块的高度是32或更小时,可以将清零块的宽度设置为16。当不满足上述条件时,也就是说,当变换核是dct-2、当前块的宽度不是32、或者当前块的高度是64或更大时,可以将清零块的宽度设置为当前块的宽度和32中的较小值。
[0399]
类似地,当应用dst-7或dct-8而不是dct-2作为用于一次变换的变换核、当前块的高度是32、并且当前块的宽度是32或更小时,可以将清零块的高度设置为16。当不满足上述条件时,也就是说,当变换核是dct-2、当前块的高度不是32、或者当前块的宽度是64或更大时,可以将清零块的高度设置为当前块的高度和32中的较小值。
[0400]
此外,根据示例,可以基于当前块是否被划分成子块并被变换来推导清零块的宽度或高度。例如,在当前块被划分成子块并变换,划分的子块的宽度是32,并且子块的高度小于64时,可以将子块的宽度设置为16。另选地,在当前块被划分成子块并变换,划分的子块的高度是32,并且子块的宽度小于64时,可以将子块的高度设置为16。
[0401]
可以如表11所示基于当前块的划分方向和对其应用变换的子块的位置来推导变换核。
[0402]
在实施方式中,清零块的大小可以是32x16、16x32、16x16或32x32之一。
[0403]
在实施方式中,当前块的大小可以是64x64,并且清零块的大小可以是32x32。
[0404]
此外,编码设备可以通过基于表1和表11执行前面的变换过程即一次变换和不可分离二次逆变换中的至少一个来从残差样本推导变换系数。
[0405]
编码设备可以基于所推导的清零块的宽度或高度来推导最后有效系数位置(s1330)。
[0406]
在一个示例中,编码设备可以在小于或等于当前块而不是原始当前块的大小的清零块的大小的范围内推导最后有效系数位置。也就是说,可以在清零块而不是当前块的大小的范围内推导被应用变换的变换系数。
[0407]
在一个示例中,可以基于指示最后有效系数前缀信息和最后有效系数后缀信息的前缀码字来推导最后有效系数位置,并且可以基于清零块的大小来确定前缀码字的最大长度。
[0408]
编码设备可对指示通过对编码单元进行划分来执行变换的子块变换是否应用于当前块的第一标志进行编码(s1340)。
[0409]
如上所述,第一标志信息可以被编码为cu_sbt_flag并在编码单元级别发信号通知,并且第二标志信息可以被编码为sps_mts_enabled_flag并在序列参数集级别发信号通知。
[0410]
由于针对每个编码单元发信号通知第一标志信息并且在作为高级别的序列参数集级别发信号通知第二标志信息,因此可以在s1350之前发信号通知第二标志信息。
[0411]
编码设备可以基于当前块的宽度或高度推导最后有效系数的位置信息的上下文模型,并基于推导的上下文模型来对关于最后有效系数的位置的值的位置进行编码(s1350)。
[0412]
根据实施方式,可以基于原始变换块的大小而不是清零块的大小来推导上下文模型。具体地,可以基于原始变换块的大小来推导与最后有效系数前缀信息对应的x轴前缀信息和y轴前缀信息的上下文增量。
[0413]
如上所述,最后有效系数位置信息可以包括最后有效系数前缀信息和最后有效系数后缀信息,并且可以基于上下文模型来对最后有效系数位置的值进行编码。
[0414]
在本公开中,可以省略量化/解量化和/或变换/逆变换中的至少一者。当省略量化/解量化时,可以将量化变换系数称为变换系数。当省略变换/逆变换时,变换系数可以被称为系数或残差系数,或者为了表述一致性仍可以被称为变换系数。
[0415]
另外,在本公开中,量化变换系数和变换系数可以分别被称为变换系数和缩放变换系数。在此情况下,残差信息可以包括关于变换系数的信息,并且可以通过残差编码语法发信号通知关于变换系数的信息。可以基于残差信息(或关于变换系数的信息)来推导变换系数,并且可以通过变换系数的逆变换(缩放)来推导缩放变换系数。可以基于缩放变换系数的逆变换(变换)来推导残差样本。这些细节也可以在本公开的其它部分中应用/表达。
[0416]
在上述实施方式中,借助于一系列步骤或方框基于流程图解释了方法,但是本公开不限于步骤的顺序,并且可以按与上述顺序或步骤不同的顺序或步骤来执行某一步骤,或某一步骤与其它步骤并发地执行。此外,本领域普通技术人员可以理解,流程图中所示的步骤不是排它的,并且在不影响本公开的范围的情况下,可以并入另一步骤或者可以删除流程图中的一个或更多个步骤。
[0417]
根据本公开的上述方法可以被实现为软件形式,并且根据本公开的编码设备和/或解码设备可以被包括在诸如电视、计算机、智能电话、机顶盒和显示装置等之类的用于图像处理的设备中。
[0418]
当本公开中的实施方式通过软件来实施时,上述方法可以被实施为用于执行上述功能的模块(步骤、功能等)。这些模块可以存储在存储器中并且可以由处理器执行。存储器可以在处理器内部或外部,并且可以以各种众所周知的方式连接到处理器。处理器可以包括专用集成电路(asic)、其它芯片组、逻辑电路和/或数据处理装置。存储器可以包括只读存储器(rom)、随机存取存储器(ram)、闪存、存储卡、存储介质和/或其它存储装置。也就是说,本公开中描述的实施方式可以在处理器、微处理器、控制器或芯片上实施和执行。例如,每个附图中所示的功能单元可以在计算机、处理器、微处理器、控制器或芯片上实施和执行。
[0419]
此外,应用本公开的解码设备和编码设备可以包括在多媒体广播收发器、移动通信终端、家庭影院视频装置、数字影院视频装置、监控相机、视频聊天装置、实时通信装置(诸如视频通信)、移动流装置、存储介质、摄像机、视频点播(vod)服务提供装置、顶置(ott)视频装置、互联网流服务提供装置、三维(3d)视频装置、视频电话视频装置、和医疗视频装置,并且可以用于处理视频信号或数据信号。例如,顶置(ott)视频装置可以包括游戏机、蓝光播放器、互联网接入tv、家庭影院系统、智能电话、平板pc、数字视频记录仪(dvr)等。
[0420]
另外,应用本公开的处理方法可以以由计算机执行的程序的形式来生产,并且可以存储在计算机可读记录介质中。具有根据本公开的数据结构的多媒体数据也可以存储在计算机可读记录介质中。计算机可读记录介质包括存储计算机可读数据的各种存储装置和分布式存储装置。计算机可读记录介质可以包括例如蓝光盘(bd)、通用串行总线(usb)、rom、prom、eprom、eeprom、ram、cd-rom、磁带、软盘和光学数据存储装置。此外,计算机可读记录介质包括以载波(例如,互联网上的传输)形式实施的介质。另外,通过编码方法所生成的比特流可以存储在计算机可读记录介质中,或者通过有线或无线通信网络来传输。另外,本公开的实施方式可以通过程序代码被实施为计算机程序产品,并且程序代码可以按照本公开的实施方式在计算机上执行。程序代码可以存储在计算机可读载体上。
[0421]
本文所公开的权利要求可以以各种方式组合。例如,本公开的方法权利要求的技术特征可以被组合以在设备中实现或执行,并且设备权利要求的技术特征可以被组合以在方法中实现或执行。此外,方法权利要求和设备权利要求的技术特征可以被组合以在设备中实现或执行,并且方法权利要求和设备权利要求的技术特征可以被组合以在方法中实现或执行。
再多了解一些

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

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

相关文献