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

图像解码和编码方法、存储比特流的介质和数据发送方法与流程

2023-03-29 07:27:27 来源:中国专利 TAG:

图像解码和编码方法、存储比特流的介质和数据发送方法
1.本技术是原案申请号为201880086807.8的发明专利申请(国际申请号:pct/kr2018/016437,申请日:2018年12月21日,发明名称:基于选择性变换的图像编码方法和用于该方法的装置)的分案申请。
技术领域
2.本公开涉及图像编码技术,并且更具体地,涉及在图像编码系统中根据选择性变换进行的图像解码方法和用于该图像解码方法的装置。


背景技术:

3.在各种领域中,对诸如hd(高清)图像和uhd(超高清)图像这样的高分辨率、高质量图像的需求正在增长。因为图像数据具有高分辨率和高质量,所以相对于传统图像数据,待传输的信息或比特的量增加。因此,当使用诸如传统有线/无线宽带线路这样的介质发送图像数据或者使用现有存储介质存储图像数据时,其传输成本和存储成本增加。
4.因此,需要用于有效地发送、存储和再现高分辨率高质量图像的信息的高效图像压缩技术。


技术实现要素:

5.技术任务
6.本公开要解决的技术问题在于提供提高图像编码效率的方法和装置。
7.本公开要解决的另一技术问题在于提供提高变换效率的方法和装置。
8.本公开要解决的另一技术问题在于提供通过变换提高残差编码效率的方法和装置。
9.本公开要解决的另一技术问题在于提供基于选择性变换的图像编码方法和装置。
10.解决方案
11.根据本公开的示例,提供了一种由解码装置执行的图像解码方法。该方法包括以下步骤:从比特流中推导目标块的变换系数;基于对所述变换系数的选择性变换来推导所述目标块的残差样本;以及基于所述目标块的残差样本和所述目标块的预测样本来生成重构图片,其中,所述选择性变换是基于修改后的变换矩阵执行的,所述修改后的变换矩阵是包括修改后的基矢量的矩阵,并且所述修改后的基矢量包括从n个元素当中选择的特定数目的元素。
12.根据本公开的另一示例,提供了一种执行图像解码的解码装置。该图像解码装置包括:熵解码器,该熵解码器从比特流中推导目标块的变换系数;逆变换器,该逆变换器基于对所述变换系数的选择性变换来推导所述目标块的残差样本;以及加法器,该加法器基于所述目标块的残差样本和所述目标块的预测样本来生成重构图片,其中,所述选择性变换是基于修改后的变换矩阵执行的,所述修改后的变换矩阵是包括修改后的基矢量的矩阵,并且所述修改后的基矢量包括从n个元素当中选择的特定数目的元素。
13.根据本公开的另一示例,提供了一种由编码装置执行的视频编码方法。该方法包括以下步骤:推导目标块的残差样本;基于对所述残差样本的选择性变换来推导所述目标块的变换系数;以及对关于所述变换系数的信息进行编码,其中,所述选择性变换是基于修改后的变换矩阵执行的,所述修改后的变换矩阵是包括修改后的基矢量的矩阵,并且所述修改后的基矢量包括从n个元素当中选择的特定数目的元素。
14.根据本公开的又一示例,提供了一种视频编码装置。该编码装置包括:加法器,该加法器推导目标块的残差样本;变换器,该变换器基于对所述残差样本的选择性变换来推导所述目标块的变换系数;以及熵编码器,该熵编码器对关于所述变换系数的信息进行编码,其中,所述选择性变换是基于修改后的变换矩阵执行的,所述修改后的变换矩阵是包括修改后的基矢量的矩阵,并且所述修改后的基矢量包括从n个元素当中选择的特定数目的元素。
15.技术效果
16.根据本公开,通过高效的变换,能够减少对于残差处理必须传送的数据量并增加残差编码效率。
17.根据本公开,能够基于由包括特定数目的所选择元素的基矢量组成的变换矩阵来执行不可分离变换,据此,能够减少不可分离变换的存储负担和计算复杂度并增加残差编码效率。
18.根据本公开,可以基于简化结构的变换矩阵来执行不可分离变换,据此,能够减少对于残差处理必须传送的数据量并增加残差编码效率。
附图说明
19.图1是例示了适用本公开的视频编码设备的配置的示意图。
20.图2是例示了适用本公开的视频解码设备的配置的示意图。
21.图3示意性表示根据本公开的多重变换技术。
22.图4示例性示出了65种预测方向的帧内定向模式。
23.图5a至图5c是用于说明根据本公开的示例的选择性变换的示图。
24.图6示意性表示选择性变换被作为二次变换应用的多重变换技术。
25.图7是用于说明根据本公开的示例的基于目标块的变换系数布置的示图。
26.图8表示通过简化变换与选择性变换彼此组合的变换来推导变换系数的示例。
27.图9表示通过选择性变换来推导变换系数的示例。
28.图10表示通过基于关联矢量的两个因子推导关联矢量来执行选择性变换的示例。
29.图11示意性表示根据本公开的由编码装置进行的图像编码方法。
30.图12示意性表示根据本公开的执行图像编码方法的编码装置。
31.图13示意性表示根据本公开的由解码装置进行的图像解码方法。
32.图14示意性表示根据本公开的执行图像解码方法的解码装置。
具体实施方式
33.本公开可以按各种形式进行修改,并且将在附图中描述和例示其具体实施方式。然而,这些实施方式并不旨在限制本公开。以下描述中使用的术语用于仅仅描述特定的实
施方式,而不旨在限制本公开。单数的表述包括复数的表述,只要它被清楚不同地理解即可。诸如“包括”和“具有”这样的术语旨在指示存在以下描述中使用的特征、数字、步骤、操作、元件、组件或其组合,因此应该理解,没有排除有可能存在或添加一个或更多个不同特征、数字、步骤、操作、元件、组件或其组合。
34.此外,出于方便说明不同特定功能的目的,独立地绘制本公开中描述的图中的元件,这并不意味着这些元件是由独立硬件或独立软件实施的。例如,可以将这些元件中的两个或更多个元件组合,以形成单个元件,或者可以将一个元件划分成多个元件。在不脱离本公开的构思的情况下,其中组合和/或划分元件的实施方式属于本公开。
35.下文中,将参照附图来详细地描述本公开的实施方式。另外,在整个附图中,类似的附图标记用于指示类似的元件,并且将省略对类似元件的相同描述。
36.此外,本公开涉及视频/图像编码。例如,本公开中公开的方法/实施方式可以应用于多功能视频编码(vvc)标准或下一代视频/图像编码标准中公开的方法。
37.在本公开中,通常,图片意指表示特定时隙中的图像的单元,并且切片是构成编码中的图片的一部分的单元。图片可以包括多个切片,并且在某些情况下,图片和切片可以以混合方式使用。
38.像素或画素(pel)可以意指构成图片(或图像)的最小单元。另外,术语“样本”可以与像素对应地使用。样本通常可以表示像素或像素的值,可以仅表示亮度分量的像素/像素值或者仅表示色度分量的像素/像素值。
39.单元表示图像处理的基本单位。单元可以包括图片的特定区域和与对应区域相关的信息中的至少一个。在某些情况下,可以将单元与块或区域以混合方式使用。在一般情况下,m
×
n块可以表示包括m列n行的样本或变换系数的集合。
40.图1是简要例示了适用本公开的视频编码设备的示图。
41.参照图1,视频编码设备100可以包括图片分割器105、预测器110、残差处理器120、熵编码器130、加法器140、滤波器150和存储器160。残差处理器120可以包括减法器121、变换器122、量化器123、重排器124、反量化器125和逆变换器126。
42.图片分割器105可以将输入图片分割成至少一个处理单元。
43.例如,处理器可以被称为编码单元(cu)。在这种情况下,可以根据四叉树二叉树三叉树(qtbt)结构从最大编码单元(lcu)递归地分割编码单元。例如,可以基于四叉树结构和/或二叉树结构将一个编码单元分割成深度较深的多个编码单元。在这种情况下,例如,可以首先应用四叉树结构,随后可以应用二叉树结构。另选地,可以首先应用二叉树结构。可以基于不再被分割的最终编码单元来执行根据本公开的编码过程。在这种情况下,可以根据图像特性基于编码效率将最大的编码单元用作最终编码单元,或者可以在必要时将编码单元递归地分割成深度较深的编码单元,并且可以使用具有最佳尺寸的编码单元作为最终编码单元。这里,编码过程可以包括随后将描述的预测、变换和重构的过程。
44.在另一示例中,处理单元可以包括编码单元(cu)、预测单元(pu)或变换单元(tu)。可以根据四叉树结构将编码单元从最大编码单元(lcu)分割成深度较深的编码单元。在这种情况下,可以根据图像特性基于编码效率等直接将最大的编码单元用作最终编码单元,或者可以在必要时将编码单元递归地分割成深度较深的编码单元,并且可以使用具有最佳尺寸的编码单元作为最终编码单元。当设置了最小编码单元(scu)时,编码单元可以不被分
割成比最小编码单元小的编码单元。这里,最终编码单元是指被分割或划分成预测单元或变换单元的编码单元。预测单元是从编码单元分割出的单元,并且可以是样本预测的单元。这里,预测单元可以被分成子块。可以根据四叉树结构从编码单元分出变换单元,并且变换单元可以是推导变换系数的单元和/或从变换系数推导残差信号的单元。下文中,编码单元可以被称为编码块(cb),预测单元可以被称为预测块(pb),并且变换单元可以被称为变换块(tb)。预测块或预测单元可以是指采用图片中的块的形式的特定区域,并且包括预测样本的阵列。另外,变换块或变换单元可以是指采用图片中的块的形式的特定区域,并且包括变换系数或残差样本的阵列。
45.预测器110可以对处理目标块(下文中,当前块)执行预测,并且可以生成包括针对当前块的预测样本的预测块。在预测器110中执行的预测的单元可以是编码块,或者可以是变换块,或者可以是预测块。
46.预测器110可以确定对当前块是应用帧内预测还是帧间预测。例如,预测器110可以确定以cu为单位应用帧内预测还是帧间预测。
47.在帧内预测的情况下,预测器110可以基于当前块所属图片(下文中,当前图片)中的当前块之外的参考样本来推导当前块的预测样本。在这种情况下,预测器110可以基于当前块的邻近参考样本的平均或内插来推导预测样本(情况(i)),或者可以基于当前块的邻近参考样本当中的预测样本在特定(预测)方向上存在的参考样本来推导预测样本(情况(ii))。情况(i)可以被称为非定向模式或非角度模式,并且情况(ii)可以被称为定向模式或角度模式。在帧内预测中,作为示例,预测模式可以包括33种定向模式和至少两种非定向模式。非定向模式可以包括dc模式和平面模式。预测器110可以通过使用应用于邻近块的预测模式来确定要应用于当前块的预测模式。
48.在帧间预测的情况下,预测器110可以基于参考图片上的运动向量所指定的样本来推导当前块的预测样本。预测器110可以通过应用跳过模式、合并模式和运动向量预测(mvp)模式中的任一种来推导当前块的预测样本。在跳过模式和合并模式的情况下,预测器110可以使用邻近块的运动信息作为当前块的运动信息。在跳过模式的情况下,与合并模式不同,并不发送预测样本与原始样本之间的差(残差)。在mvp模式的情况下,邻近块的运动向量被用作运动向量预测器,因此被用作当前块的运动向量预测器来推导当前块的运动向量。
49.在帧间预测的情况下,邻近块可以包括当前图片中存在的空间邻近块和参考图片中存在的时间邻近块。包括时间邻近块的参考图片也可以被称为并置图片(colpic)。运动信息可以包括运动向量和参考图片索引。诸如预测模式信息和运动信息这样的信息可以被(熵)编码,然后被作为比特流的形式输出。
50.当在跳过模式和合并模式下使用时间邻近块的运动信息时,参考图片列表中的最高图片可以被用作参考图片。可以基于当前图片与对应的参考图片之间的图片序号(poc)差来对齐参考图片列表中所包括的参考图片。poc对应于显示顺序并且可以与编码顺序区分开。
51.减法器121生成残差样本,残差样本是原始样本与预测样本之间的差。如果应用跳过模式,则可以不如上所述地生成残差样本。
52.变换器122以变换块为单位变换残差样本以生成变换系数。变换器122可以基于对
应变换块的尺寸和应用于与变换块在空间上交叠的预测块或编码块的预测模式来执行变换。例如,如果向与变换块交叠的预测块或编码块应用帧内预测,则可以使用离散正弦变换(dst)变换核来变换残差样本,变换块为4
×
4残差阵列,并且在其它情况下使用离散余弦变换(dct)变换核来变换它。
53.量化器123可以量化变换系数,以生成量化后的变换系数。
54.重排器124对量化后的变换系数进行重排。重排器124可以通过系数扫描方法将块形式的量化后的变换系数重排成一维向量。尽管将重排器124描述为单独的组件,但是重排器124可以是量化器123的一部分。
55.熵编码器130可以对量化后的变换系数执行熵编码。熵编码可以包括诸如(例如)指数哥伦布(exponential golomb)、上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)等这样的编码方法。熵编码器130可以一起或分别地对除了量化后的变换系数之外的视频重构所必需的信息(例如,语法元素的值等)进行编码。熵编码后的信息可以以比特流的形式以nal(网络抽象层)为单位发送或存储。
56.反量化器125对由量化器123量化的值(变换系数)进行反量化,并且逆变换器126对由反量化器125反量化的值进行逆变换,以生成残差样本。
57.加法器140将残差样本与预测样本相加,以重构图片。可以以块为单位将残差样本与预测样本相加,以生成重构块。尽管将加法器140描述为单独的组件,但是加法器140可以是预测器110的一部分。此外,加法器140可以被称为重构器或重构块生成器。
58.滤波器150可以向重构图片应用去块滤波和/或样本自适应偏移。可以通过去块滤波和/或样本自适应偏移来校正重构图片中块边界处的伪像或量化中的失真。在去块滤波完成之后,可以以样本为单位应用样本自适应偏移。滤波器150可以向重构图片应用自适应环路滤波器(alf)。可以向已应用了去块滤波和/或样本自适应偏移的重构图片应用alf。
59.存储器160可以存储重构图片(解码图片)或编码/解码所需的信息。这里,重构图片可以是经滤波器150滤波的重构图片。所存储的重构图片可以被用作用于其它图片的(帧间)预测的参考图片。例如,存储器160可以存储用于帧间预测的(参考)图片。这里,可以根据参考图片集或参考图片列表来指定用于帧间预测的图片。
60.图2是例示了适用本公开的视频解码设备的配置的示意图。
61.参照图2,视频解码设备200包括图像解码器210、残差处理器220、预测器230、加法器240、滤波器250和存储器260。这里,残差处理器220可以包括重排器221、反量化器222和逆变换器223。
62.当输入包括视频信息的比特流时,视频解码设备200可以重构与在视频编码设备中处理视频信息的处理对应的视频。
63.例如,视频解码设备200可以使用在视频编码设备中应用的处理器来执行视频解码。因此,视频解码的处理单元块例如可以是编码单元,或者又如可以是编码单元、预测单元或变换单元。可以根据四叉树结构和/或二叉树结构从最大编码单元中分割出编码单元。
64.在某些情况下,还可以使用预测单元和变换单元,并且在这种情况下,预测块是从编码单元推导或分割出的块并且可以是样本预测的单元。这里,预测单元可以被分成子块。可以根据四叉树结构从编码单元分割出变换单元,并且变换单元可以是推导变换系数的单元或从变换系数推导残差信号的单元。
65.熵解码器210可以解析比特流,以输出视频重构或图片重构所需的信息。例如,熵解码器210可以基于诸如指数哥伦布编码、cavlc、cabac等这样的编码方法对比特流中的信息进行解码,并且可以输出视频重构所需的语法元素的值和用于残差的变换系数的量化值。
66.更具体地,cabac熵解码方法可以接收与比特流中的每个语法元素对应的bin,使用解码目标语法元素信息和邻近和解码目标块的解码信息或先前步骤中解码的符号/bin的信息来确定上下文模型,根据所确定的上下文模型来预测bin生成概率并且对bin执行算术解码以生成与每个语法元素值对应的符号。这里,cabac熵解码方法可以在确定上下文模型之后,使用针对下一个符号/bin的上下文模型解码的符号/bin的信息来更新上下文模型。
67.在熵解码器210中解码的信息当中的用于预测的信息可以被提供到预测器230,并且残差值即熵解码器210已对其执行了熵解码的量化后的变换系数可以被输入到重排器221。
68.重排器221可以将量化后的变换系数重排为二维块形式。重排器221可以执行与由编码设备执行的系数扫描对应的重排。尽管将重排器221描述为单独的组件,但是重排器221可以是反量化器222的一部分。
69.反量化器222可以基于(反)量化参数对量化后的变换系数进行反量化,以输出变换系数。在这种情况下,可以从编码设备发信号发送用于推导量化参数的信息。
70.逆变换器223可以对变换系数进行逆变换,以推导残差样本。
71.预测器230可以对当前块执行预测,并且可以生成包括当前块的预测样本的预测块。在预测器230中执行的预测的单元可以是编码块或者可以是变换块或者可以是预测块。
72.预测器230可以基于用于预测的信息来确定是应用帧内预测还是帧间预测。在这种情况下,用于确定将使用帧内预测和帧间预测中的哪种的单元可以不同于用于生成预测样本的单元。另外,在帧间预测和帧内预测中,用于生成预测样本的单元也可以不同。例如,可以以cu为单位确定将应用帧间预测和帧内预测中的哪种。另外,例如,在帧间预测中,可以通过以pu为单位确定预测模式来生成预测样本,而在帧内预测中,可以通过以pu为单位确定预测模式来以tu为单位生成预测样本。
73.在帧内预测的情况下,预测器230可以基于当前图片中的邻近参考样本推导当前块的预测样本。预测器230可以通过基于当前块的邻近参考样本应用定向模式或非定向模式来推导当前块的预测样本。在这种情况下,可以通过使用邻近块的帧内预测模式来确定将应用于当前块的预测模式。
74.在帧间预测的情况下,预测器230可以基于根据运动向量在参考图片中指定的样本来推导当前块的预测样本。预测器230可以使用跳过模式、合并模式和mvp模式中的一种来推导当前块的预测样本。这里,可以基于用于预测的信息来获取或推导由视频编码设备提供的当前块的帧间预测所需的运动信息,例如,运动向量和用于参考图片索引的信息。
75.在跳过模式和合并模式下,可以将邻近块的运动信息作为当前块的运动信息。这里,邻近块可以包括空间邻近块和时间邻近块。
76.预测器230可以使用可用的邻近块的运动信息来构造合并候选列表,并且使用由合并候选列表上的合并索引所指示的信息作为当前块的运动向量。可以由编码设备发信号
通知合并索引。运动信息可以包括运动向量和参考图片。当在跳过模式和合并模式下使用时间邻近块的运动信息时,参考图片列表中的最高图片可以被用作参考图片。
77.在跳过模式的情况下,与合并模式不同,不发送预测样本与原始样本之间的差(残差)。
78.在mvp模式的情况下,可以使用邻近块的运动向量作为运动向量预测器来推导当前块的运动向量。这里,邻近块可以包括空间邻近块和时间邻近块。
79.当应用合并模式时,例如,可以使用重构的空间邻近块的运动向量和/或与作为时间邻近块的col块对应的运动向量来生成合并候选列表。在合并模式下,从合并候选列表中选择的候选块的运动向量被用作当前块的运动向量。以上提到的用于预测的信息可以包括合并索引,合并索引指示从合并候选列表中所包括的候选块中选择的具有最佳运动向量的候选块。这里,预测器230可以使用合并索引来推导当前块的运动向量。
80.当作为另一示例应用mvp(运动向量预测)模式时,可以使用重构的空间邻近块的运动向量和/或与作为时间邻近块的col块对应的运动向量来生成运动向量预测器候选列表。即,可以使用重构的空间邻近块的运动向量和/或与作为时间邻近块的col块对应的运动向量作为运动向量候选。以上提到的用于预测的信息可以包括指示从列表中所包括的运动向量候选中选择的指示最佳运动向量的预测运动向量索引。这里,预测器230可以使用运动向量索引,从运动向量候选列表中所包括的运动向量候选中选择当前块的预测运动向量。编码设备的预测器可以获得当前块的运动向量与运动向量预测器之间的运动向量差(mvd),对mvd进行编码并且以比特流的形式输出编码后的mvd。即,mvd可以是通过从当前块的运动向量中减去运动向量预测器来获得的。这里,预测器230可以获取用于预测的信息中所包括的运动向量,并且通过将运动向量差与运动向量预测器相加来推导当前块的运动向量。另外,预测器可以从以上提到的用于预测的信息获得或推导指示参考图片的参考图片索引。
81.加法器240可以将残差样本与预测样本相加,以重构当前块或当前图片。加法器240可以通过以块为单位将残差样本与预测样本相加来重构当前图片。当应用跳过模式时,不发送残差,因此预测样本可以成为重构样本。尽管将加法器240描述为单独的组件,但是加法器240可以是预测器230的一部分。此外,加法器240可以被称为重构器或重构块生成器。
82.滤波器250可以向重构图片应用去块滤波、样本自适应偏移和/或alf。这里,在去块滤波之后,可以以样本为单位应用样本自适应偏移。可以在去块滤波和/或应用样本自适应偏移之后应用alf。
83.存储器260可以存储重构图片(解码图片)或解码所需的信息。这里,重构图片可以是经滤波器250滤波的重构图片。例如,存储器260可以存储用于帧间预测的图片。这里,可以根据参考图片集或参考图片列表来指定用于帧间预测的图片。重构图片可以被用作其它图片的参考图片。存储器260可以按输出顺序输出重构图片。
84.此外,可以通过上述变换来推导当前块的残差块的较低频率的变换系数,并且可以在残差块的末端推导零尾。
85.具体地,变换可以由两个主要过程组成,并且这些主要过程可以包括核变换和二次变换。包括核变换和二次变换的变换可以被表示为多重变换技术。
86.图3示意性表示根据本公开的多重变换技术。
87.参照图3,变换器可以对应于以上图1的编码装置中的变换器,并且逆变换器可以对应于以上图1的编码装置中的逆变换器或图2的解码装置中的逆变换器。
88.变换器可以通过基于残差块中的残差样本(残差样本阵列)执行初级变换来推导(初级)变换系数(s310)。在这方面,初级变换可以包括自适应多核变换(amt)。自适应多核变换可以被表示为多变换集(mts)。
89.自适应多核变换可以表示另外使用离散余弦变换(dct)类型2和离散正弦变换(dst)类型7、dct类型8和/或dst类型1进行变换的方法。即,自适应多核变换可以表示基于从dct类型2、dst类型7、dct类型8和dst类型1当中选择的多个变换核将空间域的残差信号(或残差块)变换成频域的变换系数(或初级变换系数)的变换方法。在这方面,从变换器的角度来看,初级变换系数可以被称为临时变换系数。
90.换句话说,如果应用现有的变换方法,则可以通过基于dct类型2针对残差信号(或残差块)应用从空间域到频域的变换来生成变换系数。与此不同,如果应用自适应多核变换,则可以基于dct类型2、dst类型7、dct类型8和/或dst类型1针对残差信号(或残差块)应用从空间域到频域的变换来生成变换系数(或初级变换系数)。这里,dct类型2、dst类型7、dct类型8和dst类型1可以称为变换类型、变换核或变换芯。
91.作为参考,可以基于基函数来定义dct/dst变换类型,并且可以如下表中地表示基函数。
92.[表1]
[0093][0094]
如果执行自适应多核变换,则可以从变换核当中选择针对目标块的垂直变换核和水平变换核,并且可以基于垂直变换核执行针对目标块的垂直变换,并且可以基于水平变换核执行针对目标块的水平变换。这里,水平变换可以表示针对目标块的水平分量的变换,并且垂直变换可以表示针对目标块的垂直分量的变换。可以基于指示包含残差块的目标块(cu或子块)的预测模式和/或变换子集的变换索引来自适应地确定垂直变换核/水平变换
核。
[0095]
例如,当目标块的宽度和高度二者小于或等于64时,可以应用自适应多核变换,并且可以基于与是否应用目标块的自适应多核变换有关的cu级别标志进行确定。具体地,如果cu级别标志为0,则可以应用上述现有的变换方法。即,如果cu级别标志为0,则可以通过基于dct类型2针对残差信号(或残差块)应用从空间域到频域的变换来生成变换系数,并且可以对变换系数进行编码。此外,这里,目标块可以是cu。如果cu级别标志为0,则可以向目标块应用自适应多核变换。
[0096]
另外,如果应用自适应多核变换的目标块是亮度块,则可以发信号通知两个附加标志,并且可以基于标志来选择垂直变换核和水平变换核。垂直变换核的标志可以被表示为amt垂直标志,并且amt_tu_vertical_flag(或emt_tu_vertical_flag)可以表示amt垂直标志的语法元素。水平变换核的标志可以被表示为amt水平标志,并且amt_tu_horizontal_flag(或emt_tu_horizontal_flag)可以表示amt水平标志的语法元素。amt垂直标志可以指示垂直变换核的变换子集中所包括的变换核候选中的一个变换核候选,并且由amt垂直标志指示的变换核候选可以被推导为目标块的垂直变换核。另外,amt水平标志可以指示水平变换核的变换子集中所包括的变换核候选当中的一个变换核候选,并且由amt水平标志指示的变换核候选可以被推导为目标块的水平变换核。此外,amt垂直标志可以被表示为mts垂直标志,并且amt水平标志可以被表示为mts水平标志。
[0097]
此外,三个变换子集可以是预定的,并且基于应用于目标块的帧内预测模式,变换子集中的一个可以被推导为垂直变换核的变换子集。另外,基于应用于目标块的帧内预测模式,变换子集中的一个可以被推导为水平变换核的变换子集。例如,可以如下表中地推导预定的变换子集。
[0098]
[表2]
[0099]
变换集变换候选0dst-vii,dct-viii1dst-vii,dst-i2dst-vii,dct-viii
[0100]
参照图2,索引值为0的变换子集可以表示包括dst类型7和dct类型8作为变换核候选的变换子集,索引值为1的变换子集可以表示包括dst类型7和dst类型1作为变换核候选的变换子集,并且索引值为2的变换子集可以表示包括dst类型7和dct类型8作为变换核候选的变换子集。
[0101]
可以如下表中示出地推导基于应用于目标块的帧内预测模式而推导的垂直变换核的变换子集和水平变换核的变换子集。
[0102]
[表3]
[0103][0104]
这里,v表示垂直变换核的变换子集,并且h表示水平变换核的变换子集。
[0105]
如果目标块的amt标志(或emt_cu_flag)的值为1,则如表3中所示,可以基于目标块的帧内预测模式来推导垂直变换核的变换子集和水平变换核的变换子集。此后,目标块的amt垂直标志指示的垂直变换核的变换子集中所包括的变换核候选当中的变换核候选可以被推导为目标块的垂直变换核,并且目标块的amt水平标志指示的水平变换核的变换子集中所包括的变换核候选当中的变换核候选可以被推导为目标块的水平变换核。此外,amt标志可以被表示为mts标志。
[0106]
作为参考,在示例中,帧内预测模式可以包括两种非定向(或非角度)帧内预测模式和65种定向(或角度)帧内预测模式。非定向帧内预测模式可以包括0号平面帧内预测模式和1号dc帧内预测模式,并且定向帧内预测模式可以包括2号帧内预测模式和66号帧内预测模式之间的65种帧内预测模式。然而,这是示例,并且本公开可以应用于存在不同数目的帧内预测模式的情况。此外,根据情况,还可以使用67号帧内预测模式,并且67号帧内预测模式可以表示线性模型(lm)模式。
[0107]
图4例示性表示65种预测方向的帧内定向模式。
[0108]
参照图4,基于具有左上对角预测方向的34号帧内预测模式,可以对具有水平方向性的帧内预测模式和具有垂直方向性的帧内预测模式进行分类。图4的h和v分别意指水平方向性和垂直方向性,并且数字-32至32指示样本栅格位置处的以1/32为单位的移位。2至33号帧内预测模式具有水平方向性,并且34至66号帧内预测模式具有垂直方向性。18号帧内预测模式和50号帧内预测模式分别表示水平帧内预测模式和垂直帧内预测模式,并且2号帧内预测模式可以被称为左下对角帧内预测模式;34号帧内预测模式可以被称为左上对角帧内预测模式;并且66号帧内预测模式可以被称为右上对角帧内预测模式。
[0109]
变换器可以通过基于(初级)变换系数执行二次变换来推导(二次)变换系数(s320)。如果初级变换是从空间域到频域的变换,则二次变换可以被视为从频域到频域的变换。二次变换可以包括不可分离变换。在这种情况下,二次变换可以被称为不可分离二次变换(nsst)或模式相关的不可分离二次变换(mdnsst)。不可分离二次变换可以表示通过基于不可分离变换矩阵对通过初级变换推导的(初级)变换系数进行二次变换来针对残差信号生成变换系数(或二次变换系数)的变换。此时,不向(初级)变换系数分别应用垂直变换
和水平变换(或者不是独立地应用水平和垂直变换),而是可以基于不可分离变换矩阵一次性应用变换。换句话说,不可分离二次变换可以表示不是通过将(初级)变换系数的垂直分量与水平分量分开而是通过基于不可分离变换矩阵将它们一起变换来生成变换系数(或二次变换系数)的变换方法。可以向配置有(初级)变换系数的块(下文中,可以被称为变换系数块或目标块)的左上区域应用不可分离二次变换。例如,如果变换系数块的宽度(w)和高度(h)都等于或大于8,可以向变换系数块的左上8
×
8区域(下文中,被称为左上目标区域)应用8
×
8不可分离二次变换。另外,如果变换系数块的宽度(w)和高度(h)都等于或大于4并且变换系数块的宽度(w)和高度(h)小于8,则可以向变换系数块的左上min(8,w)
×
min(8,h)区域应用4
×
4不可分离二次变换。
[0110]
具体地,例如,如果使用4
×
4输入块,则可以如下地执行不可分离二次变换。
[0111]
可以如下地表示4
×
4输入块x。
[0112]
[式1]
[0113][0114]
如果x以矢量形式表示,则可以如下地表示矢量
[0115]
[式2]
[0116][0117]
在这种情况下,可以如下地计算二次不可分离变换。
[0118]
[式3]
[0119][0120]
其中,表示变换系数矢量,并且t表示16
×
16(不可分离)变换矩阵。
[0121]
通过上式3,可以推导16
×
1变换系数矢量并且可以通过扫描顺序(水平、垂直、对角等)将重新组织成4
×
4块。然而,上述计算是示例,并且超立方-吉文斯变换(hygt)等可以被用于计算不可分离二次变换,以便降低不可分离二次变换的计算复杂度。
[0122]
此外,在不可分离二次变换中,可以选择变换核(或变换芯、变换类型),使得它可以是模式相关的。在这种情况下,该模式可以包括帧内预测模式和/或帧间预测模式。
[0123]
如上所述,可以基于以变换系数块的宽度(w)和高度(h)为基础确定的8
×
8变换或4
×
4变换来执行不可分离二次变换。即,可以基于8
×
8子块大小或4
×
4子块大小来执行不可分离二次变换。例如,为了选择模式相关变换核,可以针对8
×
8子块大小和4
×
4子块大小二者,配置不可分离二次变换的35组3个不可分离二次变换核。即,可以针对8
×
8子块大小配置35个变换集,并且可以针对4
×
4子块大小配置35个变换集。在这种情况下,针对8
×
8子块大小的35个变换集中的每一个可以包含三个8
×
8变换核,并且在这种情况下,针对4
×
4子块大小的35个变换集中的每一个可以包括三个4
×
4变换核。然而,变换子块大小、集的数目以及集中的变换核数目是示例,并且可以使用除了8
×
8或4
×
4之外的任何其它大小或者可以配置n个集,并且每个集可以包括k个核。
[0124]
变换集可以被称为nsst集,并且nsst集中的变换核可以被称为nsst核。例如,可以
基于目标块(cu或子块)的帧内预测模式执行变换集当中的特定集的选择。
[0125]
在这种情况下,例如,可以如下表中地表示35个变换集与帧内预测模式之间的映射。作为参考,如果向目标块应用lm模式,则可以不向目标块应用二次变换。
[0126]
[表4]
[0127]
帧内模式0123456789101112131415161718192021222324252627282930313233集0123456789101112131415262718192021222324252627282930313233帧内模式34353637383940414243444546474849505152535455565758596061626364656667(lm)集3433323130292827262524232221201918171615141312111098765432无
[0128]
此外,如果确定要使用特定集,则可以通过不可分离二次变换索引选择特定集中的k个变换核中的一个。编码装置可以基于速率失真(rd)检查来推导指示特定变换核的不可分离二次变换索引,并且可以将该不可分离二次变换索引发信号通知给解码装置。解码装置可以基于不可分离二次变换索引在特定集中选择k个变换核当中的一个。例如,nsst索引值0可以指示第一不可分离二次变换核,nsst索引值1可以指示第二不可分离二次变换核,并且nsst索引值2可以指示第三不可分离二次变换核。另选地,nsst索引值0可以指示不向目标块应用第一不可分离二次变换,并且nsst索引值1至3可以指示三个变换核。
[0129]
返回参照图3,变换器可以基于所选择的变换核执行不可分离二次变换,并且可以获得(二次)变换系数。如上所述,变换系数可以被推导为通过量化器量化的变换系数,并且可以被编码和发信号通知给解码装置并且传送到编码装置中的反量化器/逆变换器。
[0130]
此外,如果省略了二次变换,则作为初级(可分离)变换的输出的(初级)变换系数可以被推导为通过如上所述的量化器量化的变换系数,并且可以被编码和发信号通知给解码装置并且被传送到编码装置中的反量化器/逆变换器。
[0131]
逆变换器可以以与它们已经在上述变换器中执行的顺序相反的顺序执行一系列过程。逆变换器可以接收(反量化后的)变换系数,并且通过执行二次(逆)变换来推导(初级)变换系数(步骤s350),并且可以通过对(初级)变换系数执行初级(逆)变换来获得残差块(残差样本)(s360)。在这方面,从逆变换器的角度来看,初级变换系数可以被称为修改后的变换系数。如上所述,编码装置和解码装置可以基于残差块和预测块来生成重构块,并且可以基于重构块来生成重构图片。
[0132]
此外,如上所述,如果省略二次(逆)变换,则可以接收(反量化后的)变换系数,可以执行初级(可分离)变换,并且可以获得残差块(残差样本)。如上所述,编码装置和解码装置可以基于残差块和预测块来生成重构块,并且可以基于重构块来生成重构图片。
[0133]
图5a至图5c是用于说明根据本公开的示例的选择性变换的示图。
[0134]
在本说明书中,术语“目标块”可以意指被执行编码的当前块或残差块。
[0135]
图5a表示通过变换来推导变换系数的示例。
[0136]
视频编码中的变换可以表示通过基于如图5a中所示的变换矩阵变换输入矢量r来生成输入矢量r的变换系数矢量c的过程。输入矢量r可以表示初级变换系数。另选地,输入矢量r可以表示残差矢量,即,残差样本。此外,变换系数矢量c可以被表示为输出矢量c。
[0137]
图5b表示通过变换推导变换系数的特定示例。图5b具体表示图5a中示出的变换过
程。如以上图3中描述的,在不可分离二次变换(下文中,被称为“nsst”)中,在将m
×
m块划分成通过应用初级变换获得的变换系数的块数据之后,可以对每个m
×
m块执行m2×
m2nsst。例如,m可以是4或8,但是不限于此。m2可以是n。在这种情况下,如图5b中所示,输入矢量r可以是包括(初级)变换系数r1至rn的(1
×
n)维矢量,并且变换系数矢量c可以是包括变换系数c1至cn的(n
×
1)维矢量。即,输入矢量r可以包括n个(初级)变换系数r1至rn,并且输入矢量r的大小可以是1
×
n。另外,变换系数矢量c可以包括n个变换系数c1至cn,并且变换系数矢量c的大小可以是n
×
1。
[0138]
为了推导变换系数矢量c,输入矢量r可以通过变换矩阵。即,可以基于变换矩阵将输入矢量r推导为变换系数矢量c。
[0139]
此外,变换矩阵可以包括n个基矢量b1至bn。如图5b中所示,基矢量b1至bn可以为(1
×
n)维矢量。即,基矢量b1至bn的大小可以为(1
×
n)。可以基于输入矢量r的(初级)变换系数和变换矩阵的基矢量中的每一个来生成变换系数矢量c。例如,输入矢量与基矢量中的每一个之间的内积可以被推导为变换系数矢量c。
[0140]
此外,在上述变换中,出现两个主要问题。具体地,与生成输出矢量所需的乘法和加法的次数相关的高计算复杂度以及用于存储所生成的系数的存储要求可能作为主要问题而出现。
[0141]
例如,可以如下表中所示地推导可分离变换和不可分离变换所需的计算复杂度和存储要求。
[0142]
[表5]
[0143] 可分离变换(nxn)不可分离变换(nxn)存储n2n4乘法2n3n4[0144]
参照表5,存储通过可分离变换生成的系数所需的存储器可以为n2,并且计算次数可以为2n3。计算次数指示计算复杂度。此外,存储通过不可分离变换生成的系数所需的存储器可以是n4,并且计算次数可以是n4。计算次数指示计算复杂度。即,计算次数越多,计算复杂度越高,而计算次数越少,计算复杂度越低。
[0145]
如表5中所示,与可分离变换相比,针对不可分离变换的存储要求和计算次数会大幅增加。另外,随着被执行不可分离变换的目标块的大小增加,即,随着n变大,针对可分离变换的存储要求和计算次数与针对不可分离变换的存储要求和计算次数之间的差异会变大。
[0146]
不可分离变换提供了与可分离变换相比更好的编码增益,但是如表5中所示,由于不可分离变换的计算复杂度,因此在现有视频编码标准中并不使用不可分离变换,并且由于可分离变换的计算复杂度也随着目标块的大小增加而增加,因此在现有hevc标准中,提议只在尺寸为32
×
32大小或更小的目标块中使用可分离变换。
[0147]
因此,本公开提出了选择性变换。选择性变换会大幅降低计算复杂度和存储要求,由此能实现诸如计算密集型变换块的效率增加和编码效率的提高这样的效果。即,选择性变换可以被用于解决不可分离变换或大尺寸的块的变换时出现的计算复杂度问题。选择性变换可以被用于诸如初级变换(或者可以被称为核变换)、二次变换等这样的任何类型的变换。例如,选择性变换可以被作为编码装置/解码装置的核变换来应用,并且可以具有大幅
减少编码时间/解码时间的效果。
[0148]
图5c表示通过选择性变换来推导变换系数的示例。选择性变换可以意指基于包括具有选择性数目的元素的基矢量的变换矩阵对目标块执行的变换。
[0149]
简化变换是以下的一种方法:由于可以包括变换矩阵的基矢量的n个元素当中的冗余的或并不重要的元素,因此利用能够通过排除该元素来降低计算复杂度和存储要求的动机提出了该方法。例如,参照图5c,在基矢量b1的n个元素当中,z0个元素可能不是重要元素,并且在这种情况下,可以推导仅包括n1个元素的截短的基矢量b1。这里,n1可以是n-z0。截短的基矢量b1可以被表示为修改后的基矢量b1。
[0150]
参照图5c,如果修改后的基矢量b1被作为变换矩阵的部分应用于输入矢量r,则可以推导出变换系数c1。根据实验结果观察到,变换系数c1是与通过将作为变换矩阵的一部分的现有基矢量b1应用于输入矢量r而推导出的变换系数c1相同的值。即,通过在假定每个基矢量的不重要元素为0的情况下推导结果,能够大幅减少非必要乘法的次数,而结果的差异不大。另外,那么,能够减少为了该计算而必须存储的元素(即,变换矩阵的元素)的数目。
[0151]
为了定义不重要(或有意义)的基矢量的元素当中的元素的位置,提出了关联矢量。为了推导修改后的n1维基矢量b1,可以考虑(1
×
n)维关联矢量a1。即,为了推导1
×
n1大小的修改后的基矢量b1(即,包括n1个元素的修改后的基矢量b1),可以考虑1
×
n大小的关联矢量a1。
[0152]
参照图5c,通过向输入矢量r应用针对基矢量b1至bn中的每一个的关联矢量而推导出的值可以被传送到基矢量。由此,可以仅利用输入矢量r的一些元素来计算基矢量的元素。具体地,关联矢量可以包括0和1,并且执行操作,使得将从输入矢量r的元素当中选择的元素与1相乘,并且将未从其中选择的元素与0相乘,使得仅选择的元素可以通过它并被传送到基矢量。
[0153]
例如,可以向输入矢量r应用关联矢量a1,并且可以仅使用输入矢量r的元素当中的已经通过关联矢量a1指定的n1个元素来计算与基矢量b1的内积。内积可以表示变换系数矢量c的c1。在这方面,基矢量b1可以包括n1个元素,并且n1可以是n或更小。可以对关联矢量a2至an以及基矢量b2至bn执行上述的关联矢量a1和基矢量b1与输入矢量r的运算。
[0154]
由于关联矢量仅包括0和/或1这些二进制值,因此在存储关联矢量时会有好处。关联矢量的0可以指示针对0的输入矢量r的元素不被传送到变换矩阵以用于内积计算,并且关联矢量的1可以指示针对1的输入矢量r的元素被传送到变换矩阵以用于内积计算。例如,1
×
n大小的关联矢量ak可以包括a
k1
至a
kn
。如果关联矢量ak的a
kn
为0,则不允许输入矢量r的rn通过。即,输入矢量r的rn可以不被传送到变换矢量bn。另外,如果a
kn
为1,则允许输入矢量r的rn通过。即,输入矢量r的rn可以被传送到变换矢量bn,并且可以被在推导变换系数矢量c的cn的计算中使用。
[0155]
图6示意性表示选择性变换被作为二次变换应用的多重变换技术。
[0156]
参照图6,变换器可以对应于以上图1的编码装置中的变换器,并且逆变换器可以对应于以上图1的编码装置中的逆变换器或以上图2的解码装置中的逆变换器。
[0157]
变换器可以通过基于残差块中的残差样本(残差样本阵列)执行初级变换来推导(初级)变换系数(s610)。这里,第一变换可以包括上述amt。
[0158]
如果应用自适应多核变换,则可以基于dct类型2、dst类型7、dct类型8和/或dst类
型1针对残差信号(或残差块)应用从空间域到频域的变换来生成变换系数(或初级变换系数)。在这方面,从变换器的角度来看,初级变换系数可以被称为临时变换系数。另外,dct类型2、dst类型7、dct类型8和dst类型1可以称为变换类型、变换核或变换芯。作为参考,可以基于基函数来定义dct/dst变换类型,并且可以如上表1中地表示基函数。具体地,通过应用自适应多核变换来推导初级变换系数的过程如上所述。
[0159]
变换器可以通过基于(初级)变换系数执行选择性变换来推导(二次)变换系数(s620)。选择性变换可以意指基于包括修改后的基矢量的变换矩阵以及包括所述基矢量的关联矢量的关联矩阵对目标块的(初级)变换系数执行的变换。修改后的基矢量可以表示包括n个或更少数目的元素的基矢量。即,修改后的基矢量可以表示包括从n个元素当中选择的特定数目的元素的基矢量。例如,修改后的基矢量bn可以是(1
×nn
)维矢量,并且nn可以小于或等于n。即,修改后的基矢量bn可以是(1
×nn
)大小,并且nn可以小于或等于n。这里,n可以是应用选择性变换的目标块的左上目标区域的高度和宽度的乘积。另选地,n可以是应用选择性变换的目标块的左上目标区域的变换系数的总数。此外,包括修改后的基矢量的变换矩阵可以被表示为修改后的变换矩阵。另外,变换矩阵可以被表示为变换基块(tbb),并且关联矩阵可以被表示为关联矢量块(avb)。
[0160]
变换器可以基于修改后的变换矩阵和关联矩阵执行选择性变换,并且获得(二次)变换系数。如上所述,变换系数可以被推导为通过量化器量化的变换系数,并且可以被编码和发信号通知给解码装置并且传送到编码装置中的反量化器/逆变换器。
[0161]
逆变换器可以以与它们已经在上述变换器中执行的顺序相反的顺序执行一系列过程。逆变换器可以接收(反量化后的)变换系数,并且通过执行选择性(逆)变换来推导(初级)变换系数(步骤s650),并且可以通过对(初级)变换系数执行初级(逆)变换来获得残差块(残差样本)(s660)。在这方面,从逆变换器的角度来看,初级变换系数可以被称为修改后的变换系数。如上所述,编码装置和解码装置可以基于残差块和预测块来生成重构块,并且可以基于重构块来生成重构图片。
[0162]
此外,本公开提出了与简化变换相结合的选择性变换作为选择性变换的示例。
[0163]
在本说明书中,术语“简化变换”可以意指基于其大小根据简化因子而减小的变换矩阵对目标块的残差样本执行的变换。
[0164]
在根据示例的简化变换中,n维矢量可以被映射到位于另一空间中的r维矢量,使得可以确定简化变换矩阵,其中,r小于n。即,简化变换可以意指基于包括r个基矢量的简化变换矩阵对目标块的残差样本执行的变换。这里,n可以意指应用变换的块(或目标区域)的边的长度的平方,或与应用变换的块(或目标区域)对应的变换系数的总数,并且简化因子可以意指r/n值。简化因子可以被称为诸如简化的因子、缩减因子、简单化的因子、简单因子和其它各种术语。此外,r可以被称为简化系数,但是根据情形,简化因子可以意指r。另外,根据情形,简化因子可以意指n/r值。
[0165]
根据示例的简化变换矩阵的大小可以为r
×
n,小于常规变换矩阵的大小n
×
n,并且可以被如下式4中地定义。
[0166]
[式4]
[0167][0168]
如果将简化变换矩阵t
rxn
乘以已经应用目标块的初级变换的变换系数,则可以推导目标块的(二次)变换系数。
[0169]
如果应用rst,则由于r
×
n大小的简化变换矩阵被应用于二次变换,因此变换系数r 1至n可以隐式地变为0。换句话说,如果通过应用rst来推导目标块的变换系数,则变换系数r 1至n的值可以为0。这里,变换系数r 1至n可以表示变换系数当中的第r 1变换系数至第n变换系数。具体地,可以如下地说明目标块的变换系数的布置。
[0170]
图7是用于说明根据本公开的示例的基于目标块的变换系数布置的示图。下文中,关于将随后在图7中描述的变换的解释可以被类似地应用于逆变换。可以对目标块(或残差块)700执行基于初级变换和简化变换的nsst。在示例中,图7中示出的16
×
16块可以表示目标块700,并且用a至p标记的4
×
4块可以表示目标块700的子块。可以对目标块700的整个范围执行初级变换,并且在已经执行初级变换之后,可以向由子组a、b、e和f组成的8
×
8块(下文中,左上目标区域)应用nsst。此时,如果执行基于简化变换的nsst,则由于仅推导r(本文中,r意指简化系数,并且r小于n)个nsst变换系数,因此第r 1个nsst变换系数至第n个nsst变换系数可以被确定为0。例如,如果r为16,则已经通过基于简化变换执行nsst而推导出的16个变换系数可以被分配给作为目标块700的左上目标区域中所包括的左上4
×
4块的子组a中所包括的各个块,并且变换系数0可以被分配给子组b、e和f中所包括的n-r(即,64-16=48)个块中的每一个。尚未执行基于简化变换的nsst的初级变换系数可以被分配给子组c、d、g、h、i、j、k、l、m、n、o和p中所包括的各个块。
[0171]
图8表示通过简化变换与选择性变换彼此组合的变换来推导变换系数的示例。参照图8,变换矩阵可以包括r个基矢量,并且关联矩阵可以包括r个关联矢量。这里,包括r个基矢量的变换矩阵可以被表示为简化变换矩阵,并且包括r个关联矢量的关联矩阵可以被表示为简化关联矩阵。
[0172]
另外,基矢量中的每一个可以仅包括从n个元素当中选择的元素。例如,参照图8,基矢量b1可以是包括n1个元素的1
×
n1维矢量,基矢量b2可以是包括n2个元素的1
×
n2维矢量,并且基矢量br可以是包括nr个元素的1
×
nr维矢量。n1、n2和nr可以是等于或小于n的值。其中简化变换与选择性变换彼此组合的变换可以被用于诸如二次变换、初级变换等这样的任何类型的变换。
[0173]
参照图8,编码装置和解码装置可以将简化变换与选择性变换彼此组合的变换作为二次变换应用。例如,可以基于包括修改后的基矢量和简化关联矩阵的简化变换矩阵来执行选择性变换,并且可以获得(二次)变换系数。另外,为了降低选择性变换的计算复杂度,超立方体-吉文斯变换(hygt)等可以被用于选择性变换的计算。
[0174]
图9表示通过选择性变换来推导变换系数的示例。在关于选择性变换的示例中,可能没有用于关联矩阵的关联矢量a1、a2、...an的图样,并且关联矢量可以以彼此不同的形式推导。另选地,在关于选择性变换的另一示例中,关联矩阵的关联矢量a1、a2、...an可以以相同的形式推导。
[0175]
具体地,例如,各个关联矢量可以具有相同数目的1。例如,如果1的数目为m,则关联矢量可以具有m个1和(n-m)个0。在这种情况下,输入矢量r的(初级)变换系数当中的m个变换系数可以被传送到基矢量。因此,基矢量的长度也可以为m。即,如图9中所示,各个基矢量可以包括m个元素,可以是(1
×
m)维矢量,并且可以被推导为n1=n2=...=nn=m。图9中示出的关联矩阵和修改后的变换矩阵架构可以利用选择性变换被表示为对称架构。
[0176]
另外,在另一示例中,可以存在值为1的元素的特定图样,并且该图样可以以任意方式重复、旋转和/或平移,使得可以推导出关联矢量。
[0177]
此外,上述选择性变换可以与其它变换技术以及简化变换和/或hygt一起应用。
[0178]
另外,本公开提出了在上述选择性变换中简化关联矢量的方法。通过简化关联矢量,能进一步改善执行选择性变换的信息的存储和选择性变换的处理。即,可以减少执行选择性变换的存储负担,并且能进一步提高选择性变换的处理能力。
[0179]
如果关联矢量中所包括的元素当中的不为0的元素具有连续分布,则能更清楚地表现出由简化关联矢量带来的效果。例如,关联矢量ak可以包括1的连续串。在这种情况下,可以通过两个因子a
ks
和a
kl
来表示ak。即,可以基于因子a
ks
和a
kl
来推导关联矢量ak。这里,a
ks
可以是表示非零元素(例如,1)的起点的因子,而a
kl
可以是表示非零元素的长度的因子。可以如下表中地推导基于这些因子来表示的关联矢量ak。
[0180]
[表6]
[0181][0182]
参照表6,关联矢量ak可以包括16个元素。即,关联矢量ak可以是1
×
16维矢量。表示关联矢量ak中的非零元素的起点的因子a
ks
的值可以被推导为0,并且在这种情况下,因子a
ks
可以指示关联矢量ak的第一元素作为非零元素的起点。另外,表示关联矢量ak中的非零元素的长度的因子a
kl
的值可以被推导为8,并且在这种情况下,因子a
kl
可以指示非零元素的长度为8。因此,如表6中所示,可以基于该因子来将ak推导为第一个元素至第八个元素为1而其余元素为0的矢量。
[0183]
图10表示通过基于关联矢量的两个因子推导关联矢量来执行选择性变换的示例。参照图10,可以基于关联矢量中的每一个的因子来推导关联矩阵,并且可以基于关联矩阵和修改后的变换矩阵来推导目标块的变换系数。
[0184]
此外,关联矢量中的每一个中的非零元素的起点以及非零元素的数目可以被推导为固定值,或者关联矢量中的每一个中的非零元素的起点以及非零元素的数目可以被以各种方式推导。
[0185]
另外,例如,可以基于执行了变换的左上目标区域的大小来推导关联矢量中的非零元素的起点和非零元素的数目。这里,左上目标区域的大小可以表示左上目标区域的变换系数的数目,或者可以表示左上目标区域的高度和宽度的乘积。另外,在另一示例中,可以基于目标块的帧内预测模式来推导关联矢量中的非零元素的起点和非零元素的数目。具体地,例如,可以基于目标块的帧内预测模式是否是非定向帧内预测模式来推导关联矢量
中的非零元素的起点和非零元素的数目。
[0186]
另选地,例如,关联矢量中的非零元素的起点和非零元素的数目可以是预定的。另选地,例如,可以发信号通知表示关联矢量中的非零元素的起点的信息以及表示非零元素的数目的信息,并且可以基于表示非零元素的起点的信息和表示非零元素的数目的信息来推导关联矢量。另选地,可以使用其它信息来代替表示非零元素的起点的信息。例如,作为表示非零元素的起点的信息的替代,可以使用表示非零元素的最后一个位置的信息,并且可以基于表示非零元素的最后一个位置的信息来推导关联矢量。
[0187]
此外,基于这些因子推导关联矢量的方法也可以被应用于可分离变换和诸如简化变换hygt这样的不可分离变换。
[0188]
图11示意性表示根据本公开的由编码装置进行的图像编码方法。图11中公开的方法可以由图1中公开的编码装置执行。具体地,例如,图11的s1100可以由编码装置的减法器执行;s1110可以由编码装置的变换器执行;并且s1120可以由编码装置的熵编码器执行。另外,尽管未示出,但可以通过编码装置的预测器执行推导预测样本的过程。
[0189]
编码装置推导目标块的残差样本(步骤s1100)。例如,编码装置可以确定对目标块执行帧间预测还是帧内预测,并且可以基于rd成本来确定特定帧间预测模式或特定帧内预测模式。根据所确定的模式,编码装置可以推导目标块的预测样本,并且可以通过将目标块的原始样本与预测样本相加来推导残差样本。
[0190]
编码装置基于对残差样本的选择性变换来推导目标块的变换系数(步骤s1110)。可以基于修改后的变换矩阵来执行选择性变换,修改后的变换矩阵是包括修改后的基矢量的矩阵,并且修改后的基矢量可以包括从n个元素当中选择的特定数目的元素。另外,可以对目标块的左上目标区域执行选择性变换,并且n可以是位于左上目标区域中的残差样本的数目。另外,n可以是通过将左上目标区域的宽度和高度相乘而获得的值。例如,n可以为16或64。
[0191]
编码装置可以通过对残差样本执行核变换来推导修改后的变换系数,并且可以通过基于包括修改后的基矢量的关联矢量的关联矩阵和修改后的变换矩阵对位于目标块的左上目标区域中的修改后的变换系数执行选择性变换来推导目标块的变换系数。
[0192]
具体地,可以如下地执行对残差样本的核变换。编码装置可以确定是否对目标块应用自适应多核变换(amt)。在这种情况下,可以生成表示是否应用目标块的自适应多核变换的amt标志。如果不向目标块应用amt,则编码装置可以将dct类型2推导为针对目标块的变换核,并且可以通过基于dct类型2对残差样本执行变换来推导修改后的变换系数。
[0193]
如果向目标块应用amt,则编码装置可以配置水平变换核的变换子集和垂直变换核的变换子集,可以基于变换子集来推导水平变换核和垂直变换核,并且可以通过基于水平变换核和垂直变换核对残差样本执行变换来推导修改后的变换系数。在这一点上,水平变换核的变换子集和垂直变换核的变换子集可以包括dct类型2、dst类型7、dct类型8和/或dst类型1作为候选。另外,可以生成变换索引信息,并且变换索引信息可以包括指示水平变换核的amt水平标志和指示垂直变换核的amt垂直标志。此外,变换核可以被称为变换类型或变换芯。
[0194]
如果推导出修改后的变换系数,则编码装置可以通过基于包括修改后的基矢量的关联矢量的关联矩阵和修改后的变换矩阵对位于目标块的左上目标区域中的修改后的变
换系数执行选择性变换来推导目标块的变换系数。除了位于目标块的左上区域中的修改后的变换系数之外的其它修改后的变换系数可以在没有任何改变的情况下被推导为目标块的变换系数。
[0195]
具体地,可以推导位于左上目标区域中的修改后的变换系数当中的关联矢量的值为1的元素的修改后的变换系数,并且可以基于修改后的基矢量和推导出的修改后的变换系数来推导目标块的变换系数。在这方面,修改后的基矢量的关联矢量可以包括n个元素,这n个元素可以包括值为1的元素和/或值为0的元素,并且值为1的元素的数目可以为a。另外,修改后的基矢量可以包括a个元素。
[0196]
此外,在一个示例中,修改后的变换矩阵可以包括n个修改后的基矢量,并且关联矩阵可以包括n个关联矢量。关联矢量可以包括相同数目的值为1的元素,并且修改后的基矢量全都可以包括相同数目的元素。另选地,关联矢量可以不包括相同数目的值为1的元素,并且修改后的基矢量可以不全都包括相同数目的元素。
[0197]
另选地,在另一示例中,修改后的变换矩阵可以包括r个修改后的基矢量,并且关联矩阵可以包括r个关联矢量。r可以是简化系数,并且r可以小于n。关联矢量可以包括相同数目的值为1的元素,并且修改后的基矢量全都可以包括相同数目的元素。另选地,关联矢量可以不包括相同数目的值为1的元素,并且修改后的基矢量可以不全都包括相同数目的元素。
[0198]
此外,可以配置关联矢量,使得值为1的元素被连续地布置。在这种情况下,在一个示例中,关于关联矢量的信息可以被熵编码。例如,关于关联矢量的信息可以包括表示值为1的元素的起点的信息和表示值为1的元素的数目的信息。另选地,例如,关于关联矢量的信息可以包括表示值为1的元素的最后一个位置的信息和表示值为1的元素的数目的信息。
[0199]
另外,在另一示例中,可以基于左上目标区域的大小来推导关联矢量。例如,可以基于左上目标区域的大小来推导关联矢量中的值为1的元素的起点和值为1的元素的数目。
[0200]
另选地,在另一示例中,可以基于目标块的帧内预测模式来推导关联矢量。例如,可以基于帧内预测模式来推导关联矢量中的值为1的元素的起点和值为1的元素的数目。另外,例如,可以基于帧内预测模式是否是非定向帧内预测模式来推导关联矢量中的值为1的元素的起点和值为1的元素的数目。
[0201]
编码装置对关于变换系数的信息进行编码(s1330)。关于变换系数的信息可以包括关于变换系数的大小、位置等的信息。另外,如上所述,关于关联矢量的信息可以被熵编码。例如,关于关联矢量的信息可以包括表示值为1的元素的起点的信息和表示值为1的元素的数目的信息。另选地,例如,关于关联矢量的信息可以包括表示值为1的元素的最后一个位置的信息和表示值为1的元素的数目的信息。
[0202]
可以以比特流的形式输出包括关于变换系数的信息和/或关于关联矢量的信息的图像信息。另外,图像信息还可以包括预测信息。预测信息可以包括关于运动信息的信息(例如,当应用帧间预测时)和预测模式信息作为与预测过程相关的多个信息。
[0203]
输出的比特流可以通过存储介质或网络被发送到解码装置。
[0204]
图12示意性表示根据本公开的执行图像编码方法的编码装置。图11中公开的方法可以由图12中公开的编码装置执行。具体地,例如,图12的编码装置的加法器可以执行图11中的步骤s1100,编码装置的变换器可以执行s1110,并且编码装置的熵编码器可以执行
s1120至s1130。另外,尽管未示出,但可以通过编码装置的预测器执行推导预测样本的过程。
[0205]
图13示意性表示根据本公开的由解码装置进行的图像解码方法。图13中公开的方法可以由图2中公开的解码装置执行。具体地,例如,可以由解码装置的熵解码器执行图13中的s1300至s1310;可以由解码装置的逆变换器执行s1320;并且可以由解码装置的加法器执行s1330。另外,尽管未示出,但可以通过解码装置的预测器执行推导预测样本的过程。
[0206]
解码装置从比特流中推导目标块的变换系数(s1300)。解码装置可以通过对关于通过比特流接收的目标块的变换系数的信息进行解码来推导目标块的变换系数。接收到的关于目标块的变换系数的信息可以被表示为残差信息。
[0207]
解码装置基于对所述变换系数的选择性变换来推导目标块的残差样本(s1310)。可以基于修改后的变换矩阵来执行选择性变换,修改后的变换矩阵是包括修改后的基矢量的矩阵,并且修改后的基矢量可以包括从n个元素当中选择的特定数目的元素。另外,可以对位于目标块的左上目标区域中的变换系数执行选择性变换,并且n可以是位于左上目标区域中的变换系数的数目。另外,n可以是通过将左上目标区域的宽度和高度相乘而获得的值。例如,n可以为16或64。
[0208]
解码装置可以通过基于修改后的变换矩阵和包括修改后的基矢量的关联矢量的关联矩阵对位于目标块的左上目标区域中的变换系数执行选择性变换来推导修改后的变换系数。
[0209]
具体地,可以推导位于左上目标区域中的变换系数当中的关联矢量的值为1的元素的变换系数,并且可以基于推导出的变换系数和修改后的基矢量来推导修改后的变换系数。在这方面,修改后的基矢量的关联矢量可以包括n个元素,这n个元素可以包括值为1的元素和/或值为0的元素,并且值为1的元素的数目可以为a。另外,修改后的基矢量可以包括a个元素。
[0210]
此外,在一个示例中,修改后的变换矩阵可以包括n个修改后的基矢量,并且关联矩阵可以包括n个关联矢量。关联矢量可以包括相同数目的值为1的元素,并且修改后的基矢量全都可以包括相同数目的元素。另选地,关联矢量可以不包括相同数目的值为1的元素,并且修改后的基矢量可以不全都包括相同数目的元素。
[0211]
另选地,在另一示例中,修改后的变换矩阵可以包括r个修改后的基矢量,并且关联矩阵可以包括r个关联矢量。r可以是简化系数,并且r可以小于n。关联矢量可以包括相同数目的值为1的元素,并且修改后的基矢量全都可以包括相同数目的元素。另选地,关联矢量可以不包括相同数目的值为1的元素,并且修改后的基矢量可以不全都包括相同数目的元素。
[0212]
此外,可以配置关联矢量,使得值为1的元素被连续地布置。在这种情况下,在一个示例中,可以从比特流获得关于关联矢量的信息,并且可以基于关于关联矢量的信息来推导关联矢量。例如,关于关联矢量的信息可以包括表示值为1的元素的起点的信息和表示值为1的元素的数目的信息。另选地,例如,关于关联矢量的信息可以包括表示值为1的元素的最后一个位置的信息和表示值为1的元素的数目的信息。
[0213]
另选地,在另一示例中,可以基于左上目标区域的大小来推导关联矢量。例如,可以基于左上目标区域的大小来推导关联矢量中的值为1的元素的起点和值为1的元素的数
目。
[0214]
另选地,在另一示例中,可以基于目标块的帧内预测模式来推导关联矢量。例如,可以基于帧内预测模式来推导关联矢量中的值为1的元素的起点和值为1的元素的数目。另外,例如,可以基于帧内预测模式是否是非定向帧内预测模式来推导关联矢量中的值为1的元素的起点和值为1的元素的数目。
[0215]
如果推导出修改后的变换系数,则解码装置可以通过对包括修改后的变换系数的目标块执行核变换来推导残差样本。
[0216]
可以如下地执行对目标块的核变换。解码装置可以从比特流中获得表示是否应用自适应多核变换(amt)的amt标志,并且如果amt标志的值为0,则解码装置可以将dct类型2推导为目标块的变换核,并且可以通过基于dct类型2对包括修改后的变换系数的目标块执行逆变换来推导残差样本。
[0217]
如果amt标志的值为1,则解码装置可以配置水平变换核的变换子集和垂直变换核的变换子集,可以基于变换子集以及从比特流中获得的变换索引信息来推导水平变换核和垂直变换核,并且可以通过基于水平变换核和垂直变换核对包括修改后的变换系数的目标块执行逆变换来推导残差样本。在这一点上,水平变换核的变换子集和垂直变换核的变换子集可以包括dct类型2、dst类型7、dct类型8和/或dst类型1作为候选。另外,变换索引信息可以包括指示水平变换核的变换子集中所包括的候选之一的amt水平标志以及指示垂直变换核的变换子集中所包括的候选之一的amt垂直标志。此外,变换核可以被称为变换类型或变换芯。
[0218]
解码装置基于残差样本来生成重构图片(s1320)。解码装置可以基于残差样本来生成重构图片。例如,解码装置可以基于通过比特流接收的预测信息对目标块执行帧间预测或帧内预测,可以推导预测样本,并且可以通过将预测样本与残差样本相加来生成重构图片。此后,如上所述,可以按需要向重构图片应用诸如alf过程、sao和/或去块滤波这样的环路滤波过程,以便提高主观/客观视频质量。
[0219]
图14示意性表示根据本公开的执行图像解码方法的解码装置。图13中公开的方法可以由图14中公开的解码装置执行。具体地,例如,图14的解码装置的熵解码器可以执行图13中的s1300;图14的解码装置的逆变换器可以执行图13中的s1310;并且图14的解码装置的加法器可以执行图13中的s1320。另外,尽管未示出,但可以通过图14的解码装置的预测器执行推导预测样本的过程。
[0220]
根据上述本公开,通过高效的变换,能够减少对于残差处理必须传送的数据量,并且能够增加残差编码效率。
[0221]
另外,根据本公开,能够基于由包括特定数目的所选择元素的基矢量组成的变换矩阵来执行不可分离变换,据此,能够减少不可分离变换的存储负担和计算复杂度,并且能够增加残差编码效率。
[0222]
另外,根据本公开,可以基于简化架构的变换矩阵来执行不可分离变换,据此,能够减少对于残差处理必须传送的数据量,并且能够增加残差编码效率。
[0223]
在上述实施方式中,借助一系列步骤或框基于流程图来解释方法,但是本公开不限于步骤的顺序,并且某个步骤可以以与上述顺序或步骤不同的顺序或步骤发生,或者与另一步骤同时发生。另外,本领域的普通技术人员可以理解,流程图中示出的步骤不是排他
性的,并且可以在不影响本公开的范围的情况下,去除可以被并入的另一步骤或流程图的一个或更多个步骤。
[0224]
根据本公开的上述方法可以被实现为软件形式,并且根据本公开的编码装置和/或解码装置可以被包括在诸如tv、计算机、智能电话、机顶盒、显示装置等这样的用于图像处理的装置中。
[0225]
当本公开中的实施方式由软件实施时,上述方法可以被实施为模块(进程、功能等)以执行上述功能。模块可以被存储在存储器中并且可以由处理器执行。存储器可以在处理器的内部或外部,并且可以经由各种公知装置连接到处理器。处理器可以包括专用集成电路(asic)、其它芯片集、逻辑电路和/或数据处理装置。存储器可以包括只读存储器(rom)、随机存取存储器(ram)、闪速存储器、存储卡、存储介质和/或其它存储装置。即,本公开中描述的实施方式可以在处理器、微处理器、控制器或芯片上实施和执行。另外,每幅图中示出的功能单元可以在计算机、处理器、微处理器、控制器或芯片上实施和执行。
[0226]
另外,应用本公开的解码装置和编码装置可以被包括在多媒体广播收发器、移动通信终端、家庭影院视频装置、数字影院视频装置、监视相机、视频聊天装置、诸如视频通信这样的实时通信装置、移动流传输装置、存储介质、便携式摄像机、视频点播(vod)服务提供装置、顶置(ott)视频装置、互联网流传输服务提供装置、三维(3d)视频装置、视频电话视频装置和医疗视频装置中,并且可以被用于处理视频信号或数据信号。例如,顶置(ott)视频装置可以包括游戏控制台、蓝光播放器、互联网访问tv、家庭影院系统、智能手机、平板pc、数字视频录像机(dvr)等。
[0227]
另外,应用本公开的处理方法可以以由计算机执行的程序的形式产生,并且被存储在计算机可读记录介质中。根据本公开的具有数据结构的多媒体数据也可以被存储在计算机可读记录介质中。计算机可读记录介质包括其中存储有计算机可读数据的所有种类的存储装置和分布式存储装置。计算机可读记录介质可以包括例如蓝光盘(bd)、通用串行总线(usb)、rom、prom、eprom、eeprom、ram、cd-rom、磁带、软盘和光学数据存储装置。另外,计算机可读记录介质包括以载波(例如,互联网上的传输)的形式实施的媒体。另外,通过编码方法生成的比特流可以被存储在计算机可读记录介质中,或者可以通过有线或无线通信网络传输。另外,本公开的实施方式可以通过程序代码被实施为计算机程序产品,并且程序代码可以通过本公开的实施方式在计算机上执行。程序代码可以被存储在计算机可读载体上。
[0228]
另外,应用本公开的内容流传输系统可以主要包括编码服务器、流传输服务器、网络服务器、媒体存储器、用户设备和多媒体输入装置。
[0229]
编码服务器用于将从诸如智能电话、相机、摄像机等这样的多媒体输入装置输入的内容压缩为数字数据,以生成比特流并将其发送到流传输服务器。作为另一示例,在诸如智能电话、相机、摄像机等这样的多媒体输入装置直接生成比特流的情况下,可以省去编码服务器。可以通过应用本公开的编码方法或比特流生成方法来生成比特流。并且,流传输服务器可以在发送或接收比特流的过程期间临时存储比特流。
[0230]
流传输服务器基于用户的请求通过网络服务器将多媒体数据发送到用户设备,网络服务器用作将存在什么服务告知用户的仪器。当用户请求他或她想要的服务时,网络服务器将其传送到流传输服务器,并且流传输服务器将多媒体数据发送到用户。就此而言,内
容流传输系统可以包括单独的控制服务器,并且在这种情况下,控制服务器用于控制内容流传输系统中的各个设备之间的命令/响应。
[0231]
流传输服务器可以从媒体存储器和/或编码服务器接收内容。例如,在从编码服务器接收内容的情况下,可以实时地接收内容。在这种情况下,流传输服务器可以将比特流存储预定时间段,以平稳地提供流传输服务。
[0232]
例如,用户设备可以包括移动电话、智能电话、膝上型计算机、数字广播终端、个人数字助理(pda)、便携式多媒体播放器(pmp)、导航仪、触屏pc、平板pc、超级本、可穿戴装置(例如,手表型终端(智能手表)、眼镜型终端(智能眼镜)、头戴式显示器(hmd))、数字tv、台式计算机、数字标牌等。内容流传输系统中的服务器中的每一个都可以作为分布式服务器操作,并且在这种情况下,每个服务器接收到的数据都可以被以分布式方式处理。
再多了解一些

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

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

相关文献