用于处理视频信号的方法和设备

文档序号:1061155 发布日期:2020-10-13 浏览:31次 >En<

阅读说明:本技术 用于处理视频信号的方法和设备 (Method and apparatus for processing video signal ) 是由 具文模 M·萨勒海法尔 金昇焕 林宰显 于 2019-09-05 设计创作,主要内容包括:本发明的实施方式提供了用于处理视频信号的方法和设备。根据本发明的实施方式的一种视频信号解码方法包括以下步骤:基于当前块的高度和宽度来确定不可分变换的输入长度和输出长度;确定与所述不可分变换的输入长度和输出长度对应的不可分变换矩阵;以及向所述当前块中与所述输入长度对应的数目的系数应用所述不可分变换矩阵,其中,所述当前块的高度和宽度大于或等于8,并且在所述当前块的高度和宽度均为8的情况下,所述不可分变换的输入长度被设置为8。(The embodiment of the invention provides a method and a device for processing a video signal. A video signal decoding method according to an embodiment of the present invention includes the steps of: determining an input length and an output length of an indivisible transform based on a height and a width of a current block; determining an indivisible transformation matrix corresponding to an input length and an output length of the indivisible transformation; and applying the indivisible transform matrix to a number of coefficients corresponding to the input length in the current block, wherein a height and a width of the current block are greater than or equal to 8, and the input length of the indivisible transform is set to 8 in a case where the height and the width of the current block are both 8.)

用于处理视频信号的方法和设备

技术领域

本公开涉及处理视频信号的方法和设备,并且具体地,涉及通过执行变换对视频信号进行编码或解码的方法和设备。

背景技术

压缩编码是指用于通过通信线路发送数字化信息或将其以适当形式存储在存储介质中的信号处理技术。诸如视频、图像和音频这样的媒体可以是压缩编码的对象,并且具体地,对图像执行压缩编码的技术被称为视频图像压缩。

下一代视频内容将具有高空间分辨率、高帧频和高维度场景表示的特点。为了处理这样的内容,存储器存储、存储器访问速率和处理能力将显著增加。

因此,必须设计用于更高效地处理下一代视频内容的编码工具。尤其是,在高效视频编码(HEVC)标准之后的视频编解码器标准需要将空间域视频信号变换成频域信号的高效变换技术连同具有更高精度的预测技术。

发明内容

技术问题

本公开的实施方式提供了应用具有高编码效率和低复杂度的变换的图像信号处理方法和设备。

本公开所解决的技术问题不限于以上的技术问题,并且对于本领域技术人员而言,本文中未描述的其它技术问题将根据下面的描述而变得显而易见。

技术方案

根据本公开的实施方式的一种对图像信号进行解码的方法可以包括以下步骤:基于当前块的高度和宽度来确定不可分变换的输入长度和输出长度;确定与所述不可分变换的输入长度和输出长度对应的不可分变换矩阵;以及向依据所述当前块中的所述输入长度的数目的系数应用所述不可分变换矩阵,其中,所述当前块的高度和宽度大于或等于8,其中,如果所述当前块的高度和宽度中的每一个等于8,则所述不可分变换的输入长度被确定为8。

此外,如果所述当前块的高度和宽度不等于8,则所述不可分变换的输入长度可以被确定为16。

此外,所述输出长度可以被确定为48或64。

此外,向所述当前块应用不可分变换矩阵可以包括如果所述当前块的高度和宽度中的每一个不等于8并且所述宽度和所述高度的乘积小于阈值,则向所述当前块的左上4×4区域应用所述不可分变换矩阵。

此外,确定所述不可分变换矩阵可以包括以下步骤:基于所述当前块的帧内预测模式确定不可分变换集索引;确定与所述不可分变换集索引中所包括的不可分变换集中的不可分变换索引对应的不可分变换内核;以及基于所述输入长度和所述输出长度,根据所述不可分变换确定所述不可分变换矩阵。

根据本公开的另一实施方式的一种对图像信号进行解码的设备可以包括:存储器,该存储器被配置为存储视频信号;以及处理器,该处理器联接到所述存储器,其中,所述处理器被配置为:基于当前块的高度和宽度来确定不可分变换的输入长度和输出长度;确定与所述不可分变换的输入长度和输出长度对应的不可分变换矩阵;以及向依据所述当前块中的所述输入长度的数目的系数应用所述不可分变换矩阵,其中,所述当前块的高度和宽度大于或等于8,其中,如果所述当前块的高度和宽度中的每一个等于8,则所述不可分变换的输入长度被确定为8。

有利效果

根据本公开的实施方式,可以通过基于当前块的大小应用变换来提供具有高编码效率和低复杂度的视频编码方法和设备。

本公开的效果不限于上述效果,并且根据以下描述,本文中没有描述的其它效果对于本领域的技术人员将变得明显。

附图说明

为了帮助理解本公开而被包括在本文中作为说明书的一部分的附图提供了本公开的实施方式,并且通过以下描述来描述本公开的技术特征。

图1是示意性例示了根据本公开的实施方式的用于对视频/图像信号进行编码的编码装置的框图;

图2是示意性例示了根据本公开的实施方式的用于对图像信号进行解码的解码装置的框图;

图3是可以应用本发明的实施例,图3a、图3b、图3c和图3d是分别例示了根据本公开的实施方式的按照四叉树(QT)、二叉树(BT)、三叉树(TT)和非对称树(AT)的块分割结构的视图;

图4是示意性例示了根据本公开的实施方式的包括变换和量化单元的图1的编码装置的框图,并且图5是示意性例示了根据本公开的实施方式的包括反量化和逆变换单元的解码装置的框图;

图6是例示了根据本公开的实施方式的经由主变换和二次变换对视频信号进行编码的示例的流程图;

图7是例示了根据本公开的实施方式的经由二次逆变换和主逆变换对视频信号进行解码的示例的流程图;

图8例示了根据本公开的实施方式的应用自适应多重变换(AMT)的示例变换配置组;

图9是例示了根据本公开的实施方式的应用AMT的编码的流程图;

图10是例示了根据本公开的实施方式的应用AMT的解码的流程图;

图11是例示了根据本公开的实施方式的对AMT标志和AMT索引进行编码的示例的流程图;

图12是例示了用于基于AMT标志和AMT索引执行变换的示例解码的流程图;

图13是例示了根据本公开的实施方式的吉文斯旋转(Givens rotation)的示图,并且图14是例示了根据本公开的实施方式的由置换和吉文斯旋转层构成的4×4NSST中的一轮的配置;

图15例示了根据本公开的实施方式的每种帧内预测模式的非分割变换集的示例配置;

图16例示了在HEVC(高效视频编码)标准中应用的变换系数或变换系数块的三种类型的正向扫描顺序,在此,(a)示出了对角扫描,(b)示出了水平扫描并且(c)示出了垂直扫描。

图17例示了根据本公开的实施方式的当向4×8块应用4×4RST时应用正向对角扫描的情况下变换系数的位置,并且图18例示了根据本公开的实施方式的将两个4×4块的有效变换系数合并成单个块的示例;

图19例示了根据本公开的实施方式的每种帧内预测模式的配置混合NSST集的示例方法;

图20例示了根据本公开的实施方式的考虑变换块的大小和帧内预测模式来选择NSST集(或内核)的示例方法;

图21a和图21b例示了根据本公开的实施方式的正向和逆向简化变换;

图22是例示了根据本公开的实施方式的使用简化变换进行解码的示例的流程图;

图23是是例示了根据本公开的实施方式的应用条件简化变换的示例的流程图;

图24是例示了根据本公开的实施方式的用于应用条件简化变换的二次逆变换的解码的示例的流程图;

图25a、图25b、图26a和图26b例示了根据本公开的实施方式的简化变换和简化逆变换的示例;

图27例示了根据本公开的实施方式的应用简化二次变换的示例区域;

图28例示了根据本公开的实施方式的每个简化因子的简化变换;

图29例示了作为应用本公开的实施方式的执行变换的编码流程图的示例。

图30例示了作为应用本公开的实施方式的执行变换的解码流程图的示例。

图31例示了作为应用本公开的实施方式的编码设备100中的变换器120的详细框图的示例。

图32例示了作为应用本公开的实施方式的解码设备中的逆变换器230的详细框图的示例。

图33例示了根据本公开的实施方式的应用变换的解码流程图的示例。

图34例示了作为应用本公开的实施方式的处理视频信号的设备的框图的示例。

图35例示了作为应用本公开的实施方式的图像编码系统的示例。

图36是作为应用本公开的实施方式的内容流传输系统的结构框图。

具体实施方式

参照附图来更详细地描述本公开的一些实施方式。将连同附图一起公开的详细描述旨在描述本公开的一些示例性实施方式,而不旨在描述本公开的唯一实施方式。以下的详细描述包括更多细节,以提供对本公开的完全理解。然而,本领域的技术人员应该理解,本公开可以在没有这些更多细节的情况下实现。

在一些情况下,为了避免本公开的概念模糊,已知结构和装置被省略,或者可基于各个结构和装置的核心功能以框图形式示出。

虽然在本公开中使用的大多数术语已选自本领域中广泛使用的通用术语,但是一些术语已由申请人任意选择,并且在下面的描述中将根据需要详细解释它们的含义。因此,应该基于术语的欲表达的含义而非它们的简单名称或含义来理解本公开。

以下描述中所使用的具体术语被提供以帮助理解本公开,并且在不脱离本公开的技术精神的情况下,所述具体术语的使用可以被改变为各种形式。例如,可以在每个编码过程中适当地替换和解释信号、数据、样本、图片、帧、块等。

在本说明书中,“处理单元”是指在其中执行诸如预测、变换和/或量化这样的编码/解码处理的单元。另外,处理单元可以被解释为包括用于亮度分量的单元和用于色度分量的单元的含义。例如,处理单元可以对应于块、编码单元(CU)、预测单元(PU)或变换单元(TU)。

另外,处理单元可以被解释为用于亮度分量的单元或用于色度分量的单元。例如,处理单元可以对应于用于亮度分量的编码树块(CTB)、编码块(CB)、PU或变换块(TB)。另外,处理单元可以对应于用于色度分量的CTB、CB、PU或TB。此外,处理单元不限于此,并且可以被解释为包括用于亮度分量的单元和用于色度分量的单元的含义。

另外,处理单元不一定限于方形块,并且可以被配置为具有三个或更多个顶点的多边形形状。

如本文中使用的,“像素”和“系数”(例如,变换系数或经历了第一次变换的变换系数)可以被统称为样本。当使用样本时,这可以意味着例如使用像素值或系数(例如,变换系数或经历了第一次变换的变换系数)。

下文中,针对静止图像或视频的编码/解码描述了考虑最坏情况下的计算复杂度而设计和应用简化二次变换(RST)的方法。

本公开的实施方式提供了用于压缩图像和视频的方法和装置。压缩数据具有比特流的形式,并且该比特流可以被存储在各种类型的存储装置中,并且可以经由网络被流传输到配备有解码器的终端。如果终端具有显示装置,则终端可以将解码后的图像显示在显示装置上,或者可以简单地存储比特流数据。根据本公开的实施方式提出的方法和装置适用于编码器和解码器二者或比特流生成器和比特流接收器二者,而与终端是否通过显示装置输出它无关。

图像压缩装置主要包括预测单元、变换和量化单元和熵编码单元。图1和图2是分别示意性例示了编码装置和解码装置的框图。在这些部件中,变换和量化单元经由例如离散余弦变换(DCT)-2,将通过从原始信号减去预测信号而得到的残差信号变换为频域信号,并且向频域信号应用量化,由此使得能够在非零信号的数目大幅减少的情况下进行图像压缩。

图1是示意性例示了根据本公开的实施方式的用于对视频/图像信号进行编码的编码装置的框图。

图像分割器110可以将输入到编码装置100的图像(或图片或帧)分割成一个或更多个处理单元。作为示例,处理单元可以被称为编码单元(CU)。在这种情况下,可以根据四叉树二叉树(QTBT)结构从编码树单元(CTU)或最大编码单元(LCU)递归地分割编码单元。例如,可以基于四叉树结构和/或二叉树结构将一个编码单元分割成深度较深的多个编码单元。在这种情况下,例如,可以首先应用四叉树结构,然后可以应用二叉树结构。或者,可以首先应用二叉树结构。可以基于不再被分割的最终编码单元来执行根据本公开的实施方式的编码过程。在这种情况下,可以依据图像特性基于例如编码效率将最大编码单元立即用作最终编码单元,或者在必要时,可以将编码单元递归地分割成深度较低的编码单元,并且可以使用具有最佳大小的编码单元作为最终编码单元。编码过程可以包括例如下述的预测、变换或重构。作为示例,处理单元还可以包括预测单元PU或变换单元TU。在这种情况下,预测单元和变换单元各自可以被分割成上述最终编码单元或者被从上述最终编码单元分割出。预测单元可以是样本预测的单元,并且变换单元可以是推导变换系数的单元和/或从变换系数推导残差信号的单元。

在某些情况下,术语“单元”可以与“块”或“区域”可互换地使用。通常,M×N块可以表示由M列N行组成的样本或变换系数的集合。通常,样本可以表示像素或像素值,或者可以表示仅亮度分量的像素/像素值或仅色度分量的像素/像素值。样本可以被用作与一个图片(或图像)的像素或画素对应的术语。

编码装置100可以通过从输入图像信号(原始块或原始样本阵列)中减去从帧间预测器180或帧内预测器185输出的预测信号(预测块或预测样本阵列)来生成残差信号(残差块或残差样本阵列),并且所生成的残差信号被传输到变换器120。在这种情况下,如所示出的,编码器100中的用于从输入图像信号(原始块或原始样本阵列)中减去预测信号(预测块或预测样本阵列)的单元可以被称为减法器115。预测器可以对待处理目标块(下文中,当前块)执行预测,并且生成包括针对当前块的预测样本的预测块。预测器可以确定在每个块或CU单元中应用帧内预测还是帧间预测。预测器可以如以下结合每种预测模式描述地生成诸如预测模式信息这样的各种关于预测的信息,并且将所生成的信息传送到熵编码器190。预测相关信息可以被熵编码器190编码并且以比特流的形式输出。

帧内预测器185可以通过参考当前图片中的样本来预测当前块。根据预测模式,参考的样本可以与当前块邻近,或远离当前块。在帧内预测中,预测模式可以包括多种非定向模式和多种定向模式。非定向模式可以包括例如DC模式和平面模式。根据预测方向的详尽程度,定向模式可以包括例如33种定向预测模式或65种定向预测模式。然而,这仅仅是示例,可以使用更多或更少的定向预测模式。帧内预测器185可以使用应用于邻近块的预测模式来确定应用于当前块的预测模式。

帧内预测器180可以基于由参考图片上的运动矢量所指定的参考块(参考样本阵列)来推导当前块的预测块。这里,为了减少在帧间预测模式下发送的运动信息的量,可以基于邻近块与当前块之间的运动信息相关性逐个块、子块或样本地预测运动信息。运动信息可以包括运动矢量和参考图片索引。运动信息还可以包括帧间预测方向(L0预测、L1预测或Bi预测)信息。在帧间预测的情况下,邻近块可以包括当前图片中存在的空间邻近块和参考图片中存在的时间邻近块。包括参考块的参考图片可以与包括时间邻近块的参考图片相同或不同。时间邻近块可以被称为例如并置参考块或并置CU(colCU),并且包括时间邻近块的参考图片可以被称为并置图片(colPic)。例如,帧间预测器180可以基于邻近块来构造运动信息候选列表,并且生成指示哪个候选被用于推导当前块的运动矢量和/或参考图片索引的信息。可以基于各种预测模式来执行帧间预测。例如,在跳跃模式和合并模式下,帧间预测器180可以使用邻近块的运动信息作为当前块的运动信息。在跳跃模式下,与合并模式下不同,不能发送残差信号。在运动矢量预测(MVP)模式下,邻近块的运动矢量可以被用作运动矢量预测子,并且可以发信号通知运动矢量差,由此指示当前块的运动矢量。

经由帧间预测器180或帧内预测器185生成的预测信号可以被用于生成重构信号或残差信号。

变换器120可以向残差信号应用变换方案,生成变换系数。例如,变换方案可以包括离散余弦变换(DCT)、离散正弦变换(DST)、Karhunen-Loève变换(KLT)、基于图的变换(GBT)或有条件非线性变换(CNT)中的至少一种。GBT意指从表示像素之间关系的信息的图获得的变换。CNT意指基于使用所有先前重构的像素生成预测信号而获得的变换。另外,变换处理可以应用于大小相同的方形像素块,或者也可以应用于大小可变的非方形块。

量化器130可以对变换系数进行量化并且将量化后的变换系数发送到熵编码器190,并且熵编码器190可以对量化后的信号(量化后的变换系数的信息)进行编码并且在比特流中输出编码后的信号。量化后的变换系数的信息可以被称为残差信息。量化器130可以基于系数扫描顺序将块形状的量化后的变换系数以一维矢量形式重新排序,并且基于一维形式的量化后的变换系数来生成量化后的变换系数的信息。熵编码器190可以执行诸如(例如)指数哥伦布(exponential Golomb)、上下文自适应可变长度编码(CAVLC)或上下文自适应二进制算术编码(CABAC)这样的各种编码方法。熵编码器190可以与量化后的变换系数一起或分开地对重构视频/图像所必需的多条信息(例如,语法元素)的值进行编码。编码后的信息(例如,视频/图像信息)可以在各网络抽象层(NAL)单元的基础上以比特流的形式发送或存储。比特流可以经由网络传输,或者存储在数字存储介质中。网络可以包括例如广播网络和/或通信网络,并且数字存储介质可以包括例如USB、SD、CD、DVD、蓝光、HDD、SSD或其它各种存储介质。用于发送从熵编码器190输出的信号的发送器(未示出)和/或存储该信号的存储单元(未示出)可以被配置为编码装置100的内部/外部元件,或者该发送器可以是熵编码器190的部件。

从量化器130输出的量化后的变换系数可以被用于生成预测信号。例如,可以通过经由环路中的反量化器140和逆变换器150对量化后的变换系数应用反量化和逆变换来重构残差信号。加法器155可以将重构的残差信号与从帧间预测器180或帧内预测器185输出的预测信号相加,由此生成重构信号(重构图片、重构块或重构样本阵列)。如在应用跳跃模式的情况下,当待处理目标块不存在残差时,可以将预测块用作重构块。加法器155可以被表示为重构器或重构块生成器。所生成的重构信号可以被用于当前图片中的下一个目标处理块的帧内预测,并且如以下描述地被滤波,然后被用于下一图片的帧间预测。

滤波器160可以通过向重构后的信号应用滤波来增强主观/客观图像质量。例如,滤波器160可以通过向重构图片应用各种滤波方法来生成修改后的重构图片,并且将修改后的重构图片发送到解码图片缓冲器170。各种滤波方法可以包括例如去块滤波、样本自适应偏移、自适应环路滤波器或双边滤波器。滤波器160可以生成各种关于滤波的信息,并且将所得信息传送到熵编码器190,如以下结合每种过滤方法描述的。滤波相关信息可以被熵编码器190编码并且以比特流的形式输出。

发送到解码图片缓冲器170的修改后的重构图片可以被用作帧间预测器180中的参考图片。编码装置100在由此应用帧间预测时可以避免编码装置100与解码装置之间的预测失配,并且增强编码效率。

解码图片缓冲器170可以存储修改后的重构图片,以便将其用作帧间预测器180中的参考图片。

图2是示意性例示了根据本公开的实施方式的用于对图像信号进行解码的解码装置的框图。

参照图2,解码装置200可以包括熵解码器210、反量化器220、逆变换器230、加法器235、滤波器240、解码图片缓冲器250、帧间预测器260和帧内预测器265。帧间预测器260和帧内预测器265可以被统称为预测器。换句话说,预测器可以包括帧间预测器180和帧内预测器185。反量化器220和逆变换器230可以被统称为残差处理器。换句话说,残差处理器可以包括反量化器220和逆变换器230。熵解码器210、反量化器220、逆变换器230、加法器235、滤波器240、帧间预测器260和帧内预测器265可以根据实施方式在单个硬件部件(例如,解码器或处理器)中配置。根据实施方式,解码图片缓冲器250可以被实现为单个硬件部件(例如,存储器或数字存储介质)。

当输入包括视频/图像信息的比特流时,解码装置200可以与图2的编码装置100中的视频/图像信息处理对应地重构图像。例如,解码装置200可以使用在编码装置100中应用的处理单元来执行解码。因此,在解码时,处理单元可以是例如编码单元,并且可以根据四叉树结构和/或二叉树结构,从编码树单元或最大编码单元中分割出编码单元。可以经由播放器来播放通过解码装置200解码并输出的重构图像信号。

解码装置200可以以比特流的形式接收从图2的编码装置100输出的信号,并且可以经由熵解码器210对接收到的信号进行解码。例如,熵解码器210可以对比特流进行解析,并且提取图像重构(或图片重构)所必需的信息(例如,视频/图像信息)。例如,熵解码器210可以基于诸如指数哥伦布编码、CAVLC或CABAC这样的编码方法对比特流中的信息进行解码,并且可以输出图像重构所必需的语法元素的值和关于残差的变换系数的量化值。具体地,CABAC熵解码方法可以接收与比特流中的每个语法元素对应的bin,使用解码目标语法元素信息、用于邻近目标块和解码目标块的解码信息或在先前步骤中解码的符号/bin的信息来确定上下文模型,根据所确定的上下文模型来预测出现bin的概率,并且执行bin的算术解码。此时,在确定上下文模型之后,CABAC熵解码方法可以使用针对下一个符号/bin的上下文模型解码的符号/bin的信息来更新上下文模型。在由熵解码器210解码的各条信息当中,关于预测的信息可以被提供到预测器(例如,帧间预测器260和帧内预测器265),并且由熵解码器210熵解码的残差值(即,量化后的变换系数和相关的处理器信息)可以被输入反量化器220。在由熵解码器210解码的各条信息当中,关于滤波的信息可以被提供到滤波器240。此外,用于接收从编码装置100输出的信号的接收器(未示出)还可以被配置为解码装置200的内部/外部元件,或者接收器可以是熵解码器210的部件。

反量化器220可以对量化后的变换系数进行反量化,并且输出变换系数。反量化器220可以将量化后的变换系数以二维块形式重新排序。在这种情况下,可以基于编码装置100已经执行的系数扫描顺序来执行重新排序。反量化器220可以使用量化参数(例如,量化步长信息)对量化后的变换系数进行反量化,获得变换系数。

逆变换器230通过对变换系数进行逆变换来获得残差信号(残差块或残差样本阵列)。

预测器可以对当前块执行预测,并且生成包括针对当前块的预测样本的预测块。预测器可以基于从熵解码器210输出的关于预测的信息来确定向当前块应用帧内预测或帧间预测中的哪一种,并且确定特定的帧内/帧间预测模式。

帧内预测器265可以通过参考当前图片中的样本来预测当前块。根据预测模式,参考的样本可以与当前块邻近,或远离当前块。在帧内预测中,预测模式可以包括多种非定向模式和多种定向模式。帧内预测器265可以使用应用于邻近块的预测模式来确定应用于当前块的预测模式。

帧内预测器260可以基于参考图片上的运动矢量所指定的参考块(参考样本阵列)来推导当前块的预测块。这里,为了减少在帧间预测模式下发送的运动信息的量,可以基于邻近块与当前块之间的运动信息相关性逐个块、子块或样本地预测运动信息。运动信息可以包括运动矢量和参考图片索引。运动信息还可以包括帧间预测方向(L0预测、L1预测或Bi预测)信息。在帧间预测的情况下,邻近块可以包括当前图片中存在的空间邻近块和参考图片中存在的时间邻近块。例如,帧间预测器260可以基于与邻近块的预测相关的信息来构造运动信息候选列表,并且基于接收到的候选选择信息来推导当前块的运动矢量和/或参考图片索引。可以基于各种预测模式来执行帧间预测。关于预测的信息可以包括指示针对当前块的帧间预测的模式的信息。

加法器235可以将所获得的残差信号与从帧间预测器260或帧内预测器265输出的预测信号(例如,预测块或预测样本阵列)相加,由此生成重构信号(重构图片、重构块或重构样本阵列)。如在应用跳跃模式的情况下,当没有目标块的残差要处理时,可以将预测块用作重构块。

加法器235可以被表示为重构器或重构块生成器。所生成的重构信号可以被用于当前图片中的下一个目标处理块的帧内预测,并且如以下描述地被滤波,然后被用于下一图片的帧间预测。

滤波器240可以通过向重构后的信号应用滤波来增强主观/客观图像质量。例如,滤波器240可以通过向重构图片应用各种滤波方法来生成修改后的重构图片,并且将修改后的重构图片发送到解码图片缓冲器250。各种滤波方法可以包括例如去块滤波、样本自适应偏移(SAO)、自适应环路滤波器(ALF)或双边滤波器。

发送到解码图片缓冲器250的修改后的重构图片可以被帧间预测器260用作参考图片。

在本公开中,在以上结合编码装置100的滤波器160、帧间预测器180和帧内预测器185描述的实施方式可以以与解码装置200的滤波器240、帧间预测器260和帧内预测器265相同的方式或者对应于其的方式来应用。

图3a、图3b、图3c和图3d是分别例示了根据本公开的实施方式的按照四叉树(QT)、二叉树(BT)、三叉树(TT)和非对称树(AT)的块分割结构的视图。

在视频编码中,可以基于QT分割一个块。按QT分割成的一个子块还可以按QT递归地分割。可以通过BT、TT或AT中的至少一种方案来分割不再按QT分割的叶块。BT可以具有诸如水平BT(2N×N,2N×N)和垂直BT(N×2N,N×2N)这样的两种类型的分割。TT可以具有诸如水平TT(2N×1/2N,2N×N,2N×1/2N)和垂直TT(1/2N×2N,N×2N,1/2N×2N)这样的两种类型的分割。AT可以具有诸如水平上AT(2N×1/2N,2N×3/2N)、水平下AT(2N×3/2N,2N×1/2N)、垂直左AT(1/2N×2N,3/2N×2N)和垂直右AT(3/2N×2N,1/2N×2N)这样的四种类型的分割。可以使用BT、TT和AT进一步递归地分割BT、TT和AT中的每一个。

图3a示出了QT分割的示例。块A可以按QT被分割成四个子块(A0,A1,A2,A3)。子块A1可以按QT被再次分成四个子块(B0,B1,B2,B3)。

图3b示出了BT分割的示例。不再按QT分割的块B3可以被分割成垂直BT(C0,C1)或水平BT(D0,D1)。如块C0一样,每个子块可以例如以水平BT(E0,E1)或垂直BT(F0,F1)的形式进一步被递归地分割。

图3c示出了TT分割的示例。不再按QT分割的块B3可以被分割成垂直TT(C0,C1,C2)或水平TT(D0,D1,D2)。如块C1一样,每个子块可以例如以水平TT(E0,E1,E2)或垂直TT(F0,F1,F2)的形式进一步被递归地分割。

图3d示出了AT分割的示例。不再按QT分割的块B3可以被分割成垂直AT(C0,C1)或水平AT(D0,D1)。如块C1一样,每个子块可以例如以水平AT(E0,E1)或垂直TT(F0,F1)的形式进一步被递归地分割。

此外,BT、TT和AT可以被一起使用。例如,按BT分割的子块可以按TT或AT被分割。另外,按TT分割的子块可以按BT或AT被分割。按AT分割的子块可以按BT或TT被分割。例如,在按水平BT分割之后,每个子块可以按垂直BT被分割,或者在按垂直BT分割之后,每个子块可以按水平BT被分割。在这种情况下,尽管应用了不同的分割顺序,但分割之后的最终形状可能相同。

当块被分割时,可以定义搜索该块的各种顺序。通常,从左到右或从上到下地执行搜索。搜索块的顺序可以意味着确定是否进一步分割每个子块的顺序、在块不再被分割的情况下对每个子块进行编码的顺序或者当子块参考其它邻近块时的搜索顺序。

可以按照如图3a至图3d中所示的分割结构分割的处理单元(或变换块)执行变换。具体地,它可以按行方向和列方向被分割,并且可以应用变换矩阵。根据本公开的实施方式,可以沿着处理单元(或变换块)的行方向或列方向使用其它类型的变换。

图4和图5是应用本公开的实施方式。图4是示意性例示了根据本公开的实施方式的包括变换和量化单元120/130的图1的编码装置100的框图,并且图5是示意性例示了根据本公开的实施方式的包括反量化和逆变换单元220/230的解码装置200的框图。

参照图4,变换和量化单元120/130可以包括主变换单元121、二次变换单元122和量化器130。反量化和逆变换单元140/150可以包括反量化器140、逆二次变换单元151和逆主变换单元152。

参照图5,反量化和逆变换单元220/230可以包括反量化器220、逆二次变换单元231和逆主变换单元232。

在本公开中,可以通过多个步骤执行变换。例如,如图4中所示,可以应用主变换和二次变换这两个步骤,或者可以根据算法应用更多的变换步骤。这里,主变换可以被称为核心变换。

主变换单元121可以向残差信号应用主变换。这里,主变换可以预先被定义为编码器和/或解码器中的表。

二次变换单元122可以向主变换后的信号应用二次变换。这里,二次变换可以预先被定义为编码器和/或解码器中的表。

根据实施方式,不可分二次变换(NSST)可以被有条件地作为二次变换应用。例如,NSST可以仅被应用于帧内预测块,并且可以具有适于每个预测模式组的变换集。

这里,可以基于预测方向的对称性来设置预测模式组。例如,由于预测模式52和预测模式16相对于预测模式34(对角方向)对称,因此它们可以形成一组,并且可以向其应用同一变换集。在对预测模式52应用变换时,在对输入数据进行转置之后,向转置后的输入数据应用变换,这是因为预测模式52的变换集与预测模式16的变换集相同。

此外,由于平面模式和DC模式缺乏方向对称性,因此它们具有其各自的变换集,并且每个变换集可以由两个变换组成。对于其它定向模式,每个变换集可以由三个变换组成。

量化器130可以对二次变换后的信号执行量化。

反量化和逆变换单元140/150可以逆向执行上述处理,并且不提供重复的描述。

图5是示意性例示了解码装置200中的反量化和逆变换单元220/230的框图。

参照图5,反量化和逆变换单元220/230可以包括反量化器220、逆二次变换单元231和逆主变换单元232。

反量化器220使用量化步长信息从熵解码后的信号获得变换系数。

逆二次变换单元231对变换系数执行逆二次变换。这里,逆二次变换表示以上结合图4描述的二次变换的逆变换。

逆主变换单元232对逆二次变换后的信号(或块)执行逆主变换,并且获得残差信号。这里,逆主变换表示以上结合图4描述的主变换的逆变换。

图6是例示了根据本公开的实施方式的经由主变换和二次变换对视频信号进行编码的示例的流程图。图6的操作可以由编码装置100的变换器120执行。

编码装置100可以基于当前块的预测模式、块形状和/或块大小中的至少一个来确定(或选择)正向二次变换(S610)。

编码装置100可以经由速率失真(RD)优化来确定最优正向二次变换。最优正向二次变换可以对应于多个变换组合中的一个,并且可以通过变换索引来定义这多个变换组合。例如,对于RD优化,编码装置100可以比较对各个候选执行正向二次变换、量化和残差编码的所有结果。

编码装置100可以发信号通知与最优正向二次变换对应的二次变换索引(S620)。这里,可以向二次变换索引应用本公开中描述的其它实施方式。

此外,编码装置100可以对当前块(残差块)执行正向主扫描(S630)。

编码装置100可以使用最优正向二次变换对当前块执行正向二次变换(S640)。此外,正向二次变换可以是下面描述的RST。RST意指这样的变换,其中,输入N个残差数据(N×1个残差矢量)并且输出R(R<N)个变换系数数据(R×1个变换系数矢量)。

根据实施方式,可以向当前块的特定区域应用RST。例如,当当前块为N×N时,特定区域可以意指左上N/2×N/2区域。然而,本公开不限于此,并且可以根据预测模式、块形状或块大小中的至少一个将特定区域设置为不同。例如,当当前块为N×N时,特定区域可以意指左上M×M区域(M≤N)。

此外,编码装置100可以对当前块执行量化,由此生成变换系数块(S650)。

编码装置100可以对变换系数块执行熵编码,由此生成比特流。

图7是例示了根据本公开的实施方式的经由二次逆变换和主逆变换对视频信号进行解码的示例的流程图。图7的操作可以由解码装置200的逆变换器230执行。

解码装置200可以从比特流获得二次变换索引。

解码装置200可以引发与二次变换索引对应的二次变换。

然而,步骤S710和S720仅相当于一个实施方式,本公开不限于此。例如,解码装置200可以在没有获得二次变换索引的情况下,基于当前块的预测模式、块形状和/或块大小中的至少一个来引发二次变换。

此外,解码器200可以通过对比特流进行熵解码来获得变换系数块,并且可以对变换系数块执行反量化(S730)。

解码器200可以对反量化后的变换系数块执行逆二次变换(S740)。例如,逆二次变换可以是逆RST。逆RST是以上结合图6描述的RST的转置矩阵,并且意指这样的变换,其中,输入R个变换系数数据(R×1变换系数矢量)并且输出N个残差数据(N×1残差矢量)。

根据实施方式,可以向当前块的特定区域应用简化二次变换。例如,当当前块为N×N时,特定区域可以意指左上N/2×N/2区域。然而,本公开不限于此,并且可以根据预测模式、块形状或块大小中的至少一个将特定区域设置为不同。例如,当当前块为N×N时,特定区域可以意指左上M×M(M≤N)或M×L(M≤N,L≤N)区域。

解码器200可以对逆二次变换的结果执行逆主变换(S750)。

解码器200经由步骤S750生成残差块,并且通过将残差块与预测块相加来生成重构块。

图8例示了根据本公开的实施方式的应用自适应多重变换(AMT)的示例变换配置组。

参照图8,可以基于预测模式来确定变换配置组,并且可以总共存在六个(G0至G5)组。G0至G4对应于应用帧内预测的情况,并且G5表示应用于通过帧间预测生成的残差块的变换组合(或变换集或变换组合集)。

一个变换组合可以由应用于二维块的行的水平变换(或行变换)和应用于二维块的列的垂直变换(或列变换)组成。

这里,每个变换配置组可以包括四个变换组合候选。可以经由变换组合索引0至3来选择或确定四个变换组合候选,并且变换组合索引可以经由编码过程从编码装置100发送到解码装置200。

根据实施方式,根据帧内预测模式,经由帧内预测获得的残差数据(或残差信号)可以具有不同的统计特征。因此,可以按预测模式应用除常规余弦变换之外的变换,如图8中所示。变换类型在本文中可以被表示为DCT类型2、DCT-II或DCT-2。

图8例示了何时使用35种帧内预测模式以及何时使用67种帧内预测模式的相应变换集配置。可以按照在帧内预测模式列中区分的变换配置组应用多个变换组合。例如,多个变换组合(沿着行方向的变换、沿着列方向的变换)可以由四个组合组成。更具体地,由于在组0中DST-7和DCT-5既可以应用于行(水平)方向又可以应用于列(垂直)方向,因此四种组合是可能的。

由于总共四个变换内核组合可以应用于每种帧内预测模式,因此可以逐个变换单元地发送用于选择其中之一的变换组合索引。在本公开中,变换组合索引可以被表示为AMT索引并且可以被表示为amt_idx。

在除了图8中提出的内核之外的内核中,DCT-2有时因残差信号的性质而对行方向和列方向二者而言最佳。因此,可以通过定义每个编码单元的AMT标志自适应地执行变换。这里,如果AMT标志为0,则DCT-2可以被应用于行方向和列方向二者,并且如果AMT标志为1,则可以经由AMT索引来选择或确定四个组合中的一个。

根据实施方式,在AMT标志为0的情况下,如果对于一个变换单元,变换系数的数目为3或更小,则不应用图8的变换内核,并且DST-7可以被应用于行方向和列方向二者。

根据实施方式,首先解析变换系数值,并且如果变换系数的数目为3或更小,则不解析AMT索引,并且可以应用DST-7,由此减少附加信息的发送。

根据实施方式,仅当变换单元的宽度和高度二者为32或更小时,才可以应用AMT。

根据实施方式,可以预先经由离线训练来设置图8。

根据实施方式,可以用可以同时指示水平变换和垂直变换的组合的一个索引来定义AMT索引。或者,可以用水平变换索引和垂直变换索引分别定义AMT索引。

如同上述AMT,应用从多个内核(例如,DCT-2、DST-7和DCT-8)当中选择的变换的方案可以被表示为多重变换选择(MTS)或增强的多重变换(EMT),并且AMT索引可以被表示为MTS索引。

图9是例示了根据本公开的实施方式的应用AMT的编码的流程图。图9的操作可以由编码装置100的变换器120执行。

尽管本公开基本上描述了针对水平方向和垂直方向分别应用变换,但是变换组合可以由不可分变换构成。

或者,可分变换与不可分变换可以被混合。在这种情况下,如果使用了不可分变换,则不必按行/列方向进行变换选择或者按水平/垂直方向进行选择,并且只有当选择了可分变换时,才可以使用图8的变换组合。

另外,可以应用本公开中提出的方案,而不管它是主变换还是二次变换。换句话说,不存在应该应用其中任一个的限制而是可以应用这二者。这里,主变换可以意指用于首先对残差块进行变换的变换,并且二次变换可以意指应用于从主变换得到的块的变换。

首先,编码装置100可以确定与当前块对应的变换配置组(S910)。这里,变换配置组可以由如图8中所示的组合组成。

编码装置100可以对在变换配置组中可用的候选变换组合执行变换(S920)。

执行变换的结果是,编码装置100可以确定或选择具有最小速率失真(RD)代价的变换组合(S930)。

编码装置100可以对与所选择的变换组合对应的变换组合索引进行编码(S940)。

图10是例示了根据本公开的实施方式的应用AMT的解码的流程图。图10的操作可以由解码装置200的逆变换器230执行。

首先,解码装置200可以确定当前块的变换配置组(S1010)。解码装置200可以从视频信号中解析(或获得)变换组合索引,其中,变换组合索引可以对应于变换配置组中的多个变换组合中的任一个(S1020)。例如,变换配置组可以包括DCT-2、DST-7或DCT-8。

解码装置200可以引发与变换组合索引对应的变换组合(S1030)。这里,变换组合可以由水平变换和垂直变换组成,并且可以包括DCT-2、DST-7或DCT-8中的至少一个。另外,作为变换组合,可以使用以上结合图8描述的变换组合。

解码装置200可以基于所引发的变换组合对当前块执行逆变换(S1040)。在变换组合由行(水平)变换和列(垂直)变换组成的情况下,可以首先应用行(水平)变换,然后可以应用列(垂直)变换。然而,本公开不限于此,并且可以应用其相反的方式,或者,如果仅由不可分变换组成,则可以立即应用不可分变换。

根据实施方式,如果垂直变换或水平变换是DST-7或DCT-8,则可以按列然后按行应用DST-7的逆变换或DCT-8的逆变换。另外,在垂直变换或水平变换中,可以按列和/或按行应用不同的变换。

根据实施方式,可以基于指示是否执行AMT的AMT标志来获得变换组合索引。换句话说,只有当根据AMT标志执行AMT时,才可以获得变换组合索引。另外,解码装置200可以识别非零变换系数的数目是否大于阈值。此时,只有当非零变换系数的数目大于阈值时,才可以解析变换组合索引。

根据实施方式,可以以序列、图片、切片、块、编码单元、变换单元或预测单元中的至少一个的级别定义AMT标志或AMT索引。

此外,根据另一实施方式,可以同时执行确定变换配置组的处理和解析变换组合索引的步骤。或者,步骤S1010可以在编码装置100和/或解码装置200中被预设并且被省略。

图11是例示了根据本公开的实施方式的对AMT标志和AMT索引进行编码的示例的流程图。图11的操作可以由编码装置100的变换器120执行。

编码装置100可以确定是否向当前块应用ATM(S1110)。

如果应用了AMT,则编码装置100可以在AMT标志=1的情况下执行编码(S1120)。

编码装置100可以基于当前块的预测模式、水平变换或垂直变换中的至少一个来确定AMT索引(S1130)。这里,AMT索引表示指示用于每种帧内预测模式的多个变换组合中的任一个的索引,并且可以逐个变换单元地发送AMT索引。

当确定了AMT索引时,编码装置100可以对AMT索引进行编码(S1140)。

另一方面,除非应用了AMT,否则编码装置100可以在AMT标志=0的情况下执行编码(S1150)。

图12是例示了用于基于AMT标志和AMT索引执行变换的解码的流程图。

解码装置200可以从比特流中解析AMT标志(S1210)。这里,AMT标志可以指示是否向当前块应用AMT。

解码装置200可以基于AMT标志来识别是否向当前块应用AMT(S1220)。例如,解码装置200可以识别AMT标志是否为1。

如果AMT标志为1,则解码装置200可以解析AMT索引(S1230)。这里,AMT索引表示指示用于每种帧内预测模式的多个变换组合中的任一个的索引,并且可以逐个变换单元地发送AMT索引。或者,AMT索引可以意指指示在预设变换组合表中定义的任一个变换组合的索引。预设变换组合表可以意指图8,但是本公开不限于此。

解码装置200可以基于AMT索引或预测模式中的至少一个来引发或确定水平变换和垂直变换(S1240)。

或者,解码装置200可以引发与AMT索引对应的变换组合。例如,解码装置200可以引发或确定与AMT索引对应的水平变换和垂直变换。

此外,如果AMT标志为0,则解码装置200可以按列应用预设的垂直逆变换(S1250)。例如,垂直逆变换可以是DCT-2的逆变换。

解码装置200可以按行应用预设的水平逆变换(S1260)。例如,水平逆变换可以是DCT-2的逆变换。即,当AMT标志为0时,可以在编码装置100或解码装置200中使用预设的变换内核。例如,可以使用广泛使用的变换内核,而非如图8中所示的变换组合表中定义的变换内核。

NSST(不可分二次变换)

二次变换表示使用主变换的应用结果作为输入再次应用变换内核。主变换可以包括HEVC或上述AMT中的DCT-2或DST-7。不可分变换表示在将N×N二维残差块视为N2×1矢量之后,仅向N2×1矢量应用N2×N2变换内核一次,而非向行方向和列方向依次应用N×N变换内核。

即,NSST可以表示应用于由变换块的系数组成的矢量的不可分方形矩阵。另外,尽管本公开的实施方式的描述侧重于NSST来作为应用于根据块大小确定的左上区域(低频区域)的不可分变换的示例,但是本公开的实施方式不限于术语“NSST”,而是任何类型的不可分变换都可以应用于本公开的实施方式。例如,应用于根据块大小确定的左上区域(低频区域)的不可分变换可以被表示为低频不可分变换(LFNST)。在本公开中,M×N变换(或变换矩阵)意指由M行和N列组成的矩阵。

在NSST中,通过应用主变换而获得的二维块数据被分割成M×M块,然后,向每个M×M块应用M2×M2不可分变换。M可以是例如4或8。可以仅向某些区域应用NSST,而非向通过主变换获得的二维块中的所有区域应用NSST。例如,可以仅向左上8×8块应用NSST。另外,只有当通过主变换获得的二维块的宽度和高度二者为8或更大时,才可以向左上8×8区域应用64×64不可分变换,并且其余区域可以被分割成4×4块并且可以向4×4块中的每一个应用16×16不可分变换。

M2×M2不可分变换可以以矩阵乘积的形式应用,但是,为了减少计算负荷和内存需求,可以通过吉文斯旋转层与置换层的组合来近似。图13例示了一个吉文斯旋转。如图13中所示,用一个吉文斯旋转的一个角度对此进行描述。

图13是例示了根据本公开的实施方式的吉文斯旋转的示图,并且图14是例示了根据本公开的实施方式的由置换和吉文斯旋转层构成的4×4NSST中的一轮的配置。

8×8NSST和4×4NSST二者可以由吉文斯旋转的层次组合构成。对应于一个吉文斯旋转的矩阵如式1中所示,并且矩阵乘积可以以如图13中所示的图表示。

[式1]

在图13中,可以如式2中地计算通过吉文斯旋转输出的tm和tn

[式2]

tm=xmcosθ-xnsinθ

tn=xmsinθ+xncosθ

由于如图13中所示一个吉文斯旋转使两个数据旋转,因此分别需要32或8个吉文斯旋转来处理64个数据(在8×8NSST的情况下)或16个数据(在4×4NSST的情况下)。因此,一束32或8个吉文斯旋转可以形成吉文斯旋转层。如图14中所示,通过置换(或改组),一个吉文斯旋转层的输出数据被作为下一个吉文斯旋转层的输入数据来传送。如图14中所示,规则地定义置换模式,并且在4×4NSST的情况下,四个吉文斯旋转层及其对应的置换形成一轮。4×4NSST被执行两轮,而8×8NSST被执行四轮。尽管不同的轮次使用相同的置换模式,但应用了不同的吉文斯旋转角度。因此,需要存储构成每个变换的所有吉文斯旋转的角度数据。

在最后一步中,对经由吉文斯旋转层输出的数据再执行最后一个置换,并且逐个变换地分别存储关于置换的信息。在正向NSST的末尾执行置换,并且首先向逆NST应用逆置换。

逆NSST以相反的顺序执行应用于正向NSST的吉文斯旋转层和置换,并且使每个吉文斯旋转的角度取负(-)值以进行旋转。

图15例示了根据本公开的实施方式的每种帧内预测模式的不可分变换集的示例配置。

应用相同NSST或NSST集的帧内预测模式可以形成组。在图15中,67种帧内预测模式被分为35组。例如,编号20的模式和编号48的模式二者属于编号20的组(下文中,模式组)。

针对每个模式组,多个NSST而非一个NSST可以被配置为集合。每个集合可以包括不应用NSST的情况。例如,在三个不同的NSST可以被应用于一个模式组的情况下,可以选择包括不应用NSST的情况的四种情况中的一种。此时,可以在每个TU中发送用于区分这四种情况中的一种的索引。NSST的数目可以被配置为每个模式组不同。例如,可以分别发信号通知编号0的模式组和编号1的模式组,以选择包括不应用NSST的情况的三种情况中的一种。

实施方式1:适用于4×4块的RST

适用于一个4×4块的不可分变换是16×16变换。即,如果构成4×4块的数据元素以行优先或列优先的顺序排在一行中,则它变成16×1矢量,并且不可分变换可以被应用于16×1矢量。正向16×16变换由16个行方向变换基矢量组成,并且16×1矢量与每个变换基矢量的内积导致变换基矢量的变换系数。获得所有16个变换基矢量的变换系数的处理是将16×16不可分变换矩阵乘以输入的16×1矢量。通过矩阵乘积获得的变换系数具有16×1矢量的形式,并且每个变换系数的统计特性可以不同。例如,如果16×1变换系数矢量由第0个元素至第15个元素组成,则第0个元素的方差可以大于第15个元素的方差。即,元素处于越靠前的位置,元素的方差越大,因此能量值越大。

如果向16×1变换系数矢量应用逆向16×16不可分变换(当忽略量化或整数化的影响时),则可以重构原始4×4块信号。如果正向16×16不可分变换是正交变换,则可以通过对用于正向16×16变换的矩阵进行转置来获得逆向16×16变换。简而言之,可以通过将逆向16×16不可分变换矩阵与16×1变换系数矢量相乘来获得16×1矢量形式的数据,并且如果按首次应用时那样的行优先或列优先顺序排序,则可以重构4×4块信号。

如上所述,16×1变换系数矢量的元素各自可以具有不同的统计特性。如在上述示例中一样,如果位于前面(接近第零个元素)的变换系数具有更大的能量,则可以在甚至不需要使用所有变换系数的情况下,通过向首先出现的一些变换系数应用逆变换来重构非常接近原始信号的信号。例如,当逆向16×16不可分变换由16个列基矢量组成时,仅留下L个列基矢量来配置16×L矩阵,并且在变换系数当中,仅留下更重要的L个变换系数(L×1矢量,在上述示例中这可能首先出现),然后将16×L矩阵与L×1矢量相乘,由此使得能够重构与原始16×1矢量数据差别不大的16×1矢量。结果,仅L个系数涉及数据重构。因此,在获得变换系数时,获得L×1变换系数矢量而非16×1变换系数矢量已足够。即,从正向16×16不可分变换矩阵中选取L个行方向变换矢量以配置L×16变换,然后将其与16×1输入矢量相乘,由此获得L个主变换系数。

实施方式2:配置4×4RST的应用区域和变换系数的布置

4×4RST可以被作为二维变换应用,并且此时,可以被二次应用于已经应用了诸如DCT-类型2这样的主变换的块。当应用主变换的块的大小为N×N时,它通常大于4×4。因此,在向N×N块应用4×4RST时,可以考虑以下两种方法。

可以向N×N区域中的某些区域而非全部N×N区域应用4×4RST。例如,可以仅向左上M×M区域(M<=N)应用4×4RST。

将应用二次变换的区域可以被分割成4×4块,并且可以向每个块应用4×4RST。

方法1)和2)可以被混合。例如,仅左上M×M区域可以被分割成4×4块,然后可以应用4×4RST。

在特定实施方式中,可以仅向左上8×8区域应用二次变换。如果N×N块等于或大于8×8,则可以应用8×8RS,并且如果N×N块小于8×8(4×4、8×4或4×8),则它可以被分割成4×4块,然后可以应用4×4RST,如以上2)中一样。

如果在应用4×4RST之后生成L个变换系数(1<=L<16),则如何布置L个变换系数有一定的自由度。然而,由于在残差编码部分中在读取和处理变换系数时可能存在确定的顺序,因此编码性能可能根据如何在二维块中布置L个变换系数而变化。在高效视频编码(HEVC)标准中,残差编码从距离DC位置最远的位置开始,并且这是为了利用以下事实来提升编码性能:离DC位置越远,经历量化的系数值越为0或接近0。因此,就编码性能而言,在编码顺序中将L个变换系数之中的更关键和更高能量的系数更靠后放置可能是有利的。

图16例示了在HEVC标准中应用的变换系数或变换系数块的三种正向扫描顺序,其中,(a)例示了对角扫描,(b)例示了水平扫描并且(c)例示了垂直扫描。

图16例示了在HEVC标准中应用的变换系数或变换系数块(4×4块,系数组(CG))的三种正向扫描顺序。以与(a)、(b)或(c)的扫描顺序相反的顺序执行残差编码(即,以从16到1的顺序编码)。根据帧内预测模式选择(a)、(b)和(c)中示出的三种扫描顺序。因此,同样地,对于L个变换系数,可以根据帧内预测模式来确定扫描顺序。

L属于范围1<=L<16。通常,可以通过任何方法从16个变换基矢量中选择L个变换基矢量。然而,如以上提出的示例中一样,从编码和解码的角度,选择在能量方面具有较高重要性的变换基矢量就编码效率而言可能是有利的。

图17例示了根据本公开的实施方式的当向4×8块应用4×4RST时应用正向对角扫描的情况下变换系数的位置,并且图18例示了根据本公开的实施方式的将两个4×4块的有效变换系数合并成单个块的示例。

如果在根据(a)的对角扫描顺序将左上4×8块分割成4×4块并应用4×4RST时L为8(即,如果在16个变换系数当中仅留下8个变换系数),则变换系数可以被如图17中所示地定位,其中,每个4×4块中只有一半可以具有变换系数,并且标志有X的位置可以被默认地填充0。因此,根据(a)中提出的扫描顺序,L个变换系数被布置在每个4×4块中,并且在假定每个4×4块中的其余(16-L)个位置被填充0的情况下,可以应用残差编码(例如,HEVC中的残差编码)。

另外,如图18中所示的已经布置在两个4×4块中的L个变换系数可以被配置在一个块中。具体地,由于当L为8时,一个4×4块被两个4×4块的变换系数完全填充,因此没有变换系数被留在其它块中。因此,由于不需要用于变换系数为空的4×4块的残差编码,因此在HEVC的情况下,指示是否对块应用残差编码的标志(coded_sub_block_flag)可以被编码为0。可以存在将两个4×4块的变换系数的位置相组合的各种方案。例如,可以根据任何顺序组合这些位置,并且以下方法也可以适用。

1)两个4×4块的变换系数按扫描顺序被交替地组合。即,当上块的变换系数是并且下块的变换系数是时,它们可以如同一样被逐一交替地组合。另外,

Figure BDA0002644369670000234

Figure BDA0002644369670000235

可以被按顺序互换(即,

Figure BDA0002644369670000236

可以先到)。

2)可以首先布置第一个4×4块的变换系数,然后,可以布置第二个4×4块的变换系数。即,它们可以如同一样地连接和布置。当然,顺序可以如同一样地改变。

实施方式3:4x4RST的NSST(不可分二次变换)索引的编码方法

如果如图17中所示地应用4×4RST,则根据每个4×4块的变换系数扫描顺序,第L+1个位置至第16个位置可以被填充0。因此,如果在这两个4×4块的任一个中的第L+1个位置至第16个位置中存在非零值,则推断不应用该4×4RST。如果4×4RST具有应用从如同联合探索模型(JEM)NSST一样准备的变换集中选择的变换的结构,则可以发信号通知将应用变换的索引。

在一些解码器中,可以经由比特流解析得知NSST索引,并且可以在残差解码之后执行比特流解析。在这种情况下,如果通过残差解码致使非零变换系数存在于第L+1个位置和第16个位置之间,则因为确认了4×4RST不适用,所以解码器可以避免解析NSST索引。因此,可以仅在必要时,通过可选地解析NSST索引来降低信令成本。

如果向如图17中所示的特定区域中的多个4×4块应用4×4RST(此时,可以应用相同或不同的4×4RST),则可以经由一个NSST索引指定应用于所有4×4块的(相同或不同的)4×4RST。由于通过一个NSST索引针对所有4×4块确定4×4RST以及是否应用4×4RST,因此如果针对所有4×4块检查在第L+1个位置至第16个位置中是否存在非零变换系数的结果是,在残差解码的过程期间在未获得允许的位置(第L+1个位置至第16个位置)存在非零变换系数,则编码装置100可以被配置为不对NSST索引进行编码。

编码装置100可以分别发信号通知亮度块和色度块的相应NSST索引,并且可以针对Cb分量和Cr分量分别发信号通知相应的NSST索引,并且在色度块的情况下,可以使用一个公共NSST索引。在使用一个NSST索引的情况下,NSST索引的发信号通知也仅被执行一次。如果Cb分量和Cr分量共享一个NSST索引,则可以应用由同一NSST索引指示的4×4RST,并且在这种情况下,Cb分量和Cr分量的4×4RST可以相同,或者尽管是同一NSST索引,但可以针对Cb分量和Cr分量设置独立的4×4RST。在使用Cb分量和Cr分量共享的NSST索引的情况下,检查对于Cb分量和Cr分量的所有4×4块,在第L+1个位置至第6个位置是否存在非零变换系数,如果在第L+1个位置至第16个位置发现非零变换系数,则可以跳过NSST索引的发信号通知。

即使当如图18中所示针对两个4×4块的变换系数被合并成一个4×4块时,编码装置100页可以检查在应用4×4RST时不存在有效变换系数的位置是否出现非零变换系数,然后可以确定是否发信号通知NSST索引。具体地,在L为8并因此当应用4×4RST时在如图18中所示的一个4×4块(图18的(b)中标志有X的块)中不存在有效变换系数的情况下,可以检查关于是否向块应用残差编码的标志(coded_sub_block_flag),并且如果为1,则可以不发信号通知NSST索引。如上所述,尽管以下将NSST描述为示例不可分变换,但其它已知术语(例如,LFNST)可以被用于不可分变换。例如,NSST集和NSST索引可以分别与LFNS集和LFNS索引可互换地使用。另外,如本文中所述的RST是使用非方形变换矩阵的不可分变换(例如,LFNST)的示例,该非方形变换矩阵在应用于变换块中的至少某个区域(8×8块中的左上4×4、8×8区域或除了右下4×4区域之外的其余区域)的方形不可分变换矩阵中具有减小的输出长度和/或减小的输入长度,并且该RST可以与LFNST可互换地使用。

实施方式4:在残差编码之前对4×4索引执行编码的情况下的优化方法

在残差编码之前对NSST索引执行编码的情况下,预先确定是否应用4×4RST。因此,可以省略对变换系数被填充0的位置的残差编码。这里,可以经由NSST索引确定是否应用4×4RST(例如,如果NSST索引为0,则4×4RST不适用),否则,可以经由单独的语法元素(例如,NSST标志)发信号通知是否应用4×4RST。例如,如果单独的语法元素是NSST标志,则解码装置200首先解析NSST标志,由此确定是否应用4×4RST。然后,如果NSST标志为1,则如上所述,可以省略对可能不存在有效变换系数的位置的残差编码(解码)。

在HEVC的情况下,在残差编码时,首先对TU中的最后一个非零系数位置执行编码。如果在对最后一个非零系数位置进行编码之后对NSST索引执行编码,并且最后一个非零系数位置是在假定应用4×4RST的情况下不存在非零系数的位置,则解码装置200可以被配置为不应用4×4RST而不对NSST索引进行解码。例如,由于当应用4×4RST时没有有效变换系数位于图17中标记为X的位置(填充为0),因此如果最后一个非零系数处于标记为X的区域中,则解码装置200可以跳过对NSST索引的编码。如果最后一个非零系数没有处于标记为X的区域中,则解码装置200可以对NSST索引执行编码。

如果通过在对非零系数位置进行编码之后对NSST索引进行有条件编码知晓是否应用4×4RST,则可以按以下两种方案处理其余残差编码:

1)在未应用4×4RST的情况下,执行常规残差编码。即,在假定从最后一个非零系数位置到DC的任何位置可能存在非零变换系数的情况下,执行编码。

2)在应用4×4RST的情况下,在(被默认地填充0的)特定位置或特定4×4块(例如,图17中的X位置)处,不存在变换系数。因此,可以省略对该位置或块的残差编码。例如,在根据图17的扫描顺序进行扫描时到达标记为X的位置时,可以省略对HEVC标准中的关于该位置是否存在非零系数的标志(sig_coeff_flag)的编码。在如图18中所示两个块的变换系数被合并成一个块的情况下,可以省略对指示是否向填充0的4×4块应用残差编码的标志(例如,HEVC标准中的coded_sub_block_flag)的编码,并且可以使该值为0,并且可以在不进行单独编码的情况下用0填充4×4块。

在对最后一个非零系数位置进行编码之后对NSST索引进行编码的情况下,如果最后一个非零系数的x位置(Px)和y位置(Py)分别小于Tx和Ty,则对NSST索引的编码被省略,并且可以不应用4×4RST。例如,如果Tx=1,Ty=1,并且在DC位置存在最后一个非零系数,则NSST索引编码被省略。这种经由与阈值比较来确定是否执行NSST索引编码的方案可以被不同地应用于亮度分量和色度分量。例如,不同的Tx和Ty可以被应用于亮度分量和色度分量中的相应一个,并且可以向亮度分量而不向色度分量应用阈值。相反,可以向色度分量而不向亮度分量应用阈值。

可以同时应用上述两种方法(如果最后一个非零系数处于不存在有效变换系数的区域中,则NSST索引编码被省略,并且当最后一个非零系数的X和Y坐标各自都小于阈值时,NSST索引编码被省略)。例如,首先识别最后一个非零系数的位置坐标的阈值比较,然后可以检查最后一个非零系数是否处于其中不存在有效变换系数的区域中,并且这两种方法可以按顺序被互换。

实施方式4)中提出的方法也可以应用于8×8RST。即,如果最后一个非零系数处于左上8×8区域中的除了左上4×4之外的区域中,则NSST索引编码可以被省略,否则,可以执行NSST索引编码。另外,如果最后一个非零系数的位置的X和Y坐标二者小于一定阈值,则NSST索引编码可以被省略。可以同时执行这两种方法。

实施方式5:在应用RST时将不同的NSST索引编码和残差编码应用于亮度分量和色 度分量中的每一个

可以向亮度分量和色度分量不同地应用以上结合实施方式3和4描述的方案。即,可以向亮度分量和色度分量应用不同的NSST索引编码和残差编码方案。例如,可以向亮度分量应用以上结合实施方式4描述的方案,并且可以向色度分量应用以上结合实施方式3描述的方案。此外,可以向亮度分量应用实施方式3或4中提出的条件NSST索引编码,而可以不向色度分量应用条件NSST索引编码,反之亦然(向色度分量而不向亮度分量应用条件NSST索引编码)。

实施方式6

根据本公开的实施方式,提供了在应用NSST的过程期间应用各种NSST条件的混合NSST变换集(MNTS)以及配置MNTS的方法。

依照JEM,根据预先选择的低块的大小,4×4NSST集仅包含4×4内核,并且8×8NSST集仅包含8×8内核。根据本公开的实施方式,还提出了一种如下配置混合NSST集的方法。

-NSST集可以包括NSST集中可用的NSST内核并且具有一个或更多个可变大小,而非固定大小(例如,一个NSST集中包括4×4NSST内核和8×8NSST内核二者)。

-NSST集中可用的NSST内核的数目可以不是固定的,而是可以变化的(例如,第一集合包括三个内核,并且第二集合包括四个内核)。

-根据NSST集,NSST内核的顺序可以是可变的,而非固定的(例如,在第一集合中,NSST内核1、2和3分别被映射到NSST索引1、2和3,但是在第二集合中,NSST内核3、2和1被分别映射到NSST索引1、2和3)。

更具体地,以下是配置混合NSST变换集的示例方法。

-可以根据NSST内核大小(例如,4×4NSST和8×8NSST)确定NSST变换集中可用的NSST内核的优先级。

例如,如果块大,则8×8NSST内核可能比4×4NSST内核更重要。因此,小值的NSST索引被指派给8×8NSST内核。

-可以根据NSST内核的顺序确定NSST变换集中可用的NSST内核的优先级。

例如,给定的4×4NSST第一内核可以优先于4×4NSST第二内核。

由于NSST索引被编码和发送,因此更高的优先级(更小索引)可以被分配给更频繁的NSST内核,使得可以用更少的比特发信号通知NSST索引。

下表1和2表示根据本实施方式提出的示例混合NSST集。

[表1]

[表2]

Figure BDA0002644369670000282

实施方式7

根据本公开的实施方式,提出在确定二次变换集的过程期间考虑块大小和帧内预测模式来确定NSST集的方法。

本实施方式中提出的方法配置了与实施方式6关联的适于帧内预测模式的变换集,从而允许配置并向块应用各种大小的内核。

图19例示了根据本公开的实施方式的每种帧内预测模式的配置混合NSST集的示例方法。

图19例示了根据与实施方式6关联地应用实施方式2中提出的方法的示例表。换句话说,如图19中所示,可以定义指示每种帧内预测模式遵循传统NSST集配置方法还是其它NSST集配置方法的索引(“混合类型”)。

更具体地,在图19的索引(“混合类型”)被定义为“1”的帧内预测模式的情况下,不遵循JEM的NSST集配置方法,而是使用系统中定义的NSST集配置方法来配置NSST集。这里,系统中定义的NSST集配置方法可以意指实施方式6中提出的混合NSST集。

作为另一实施方式,尽管结合图19的表描述了基于与帧内预测模式相关的混合类型信息(标志)的两种类型的变换集配置方法(根据本公开的实施方式提出的混合类型NSST集配置方法和基于JEM的NSST集配置),但可以存在一种或更多种混合类型NSST配置方法,并且混合类型信息可以被表示为N(N>2)个各种值。

在另一实施方式中,可以考虑帧内预测模式和变换块大小二者来确定是否以混合类型配置适宜于当前块的变换集。例如,如果与帧内预测模式对应的模式类型为0,则遵循JEM的NSST集配置,否则(模式类型==1),可以根据变换块大小来确定各种混合类型的NSST集。

图20例示了根据本公开的实施方式的考虑变换块的大小和帧内预测模式来选择NSST集(或内核)的示例方法。

当确定变换集时,解码装置200可以使用NSST索引信息来确定所使用的NSST内核。

实施方式8

根据本公开的实施方式,提供了当在应用二次变换的过程期间考虑帧内预测模式和块大小二者来配置变换集时,考虑在编码之后发送的NSST索引的统计分布变化来对NSST索引进行高效编码的方法。根据本公开的实施方式,提供了使用指示内核大小的语法来选择要应用的内核的方法。

根据本公开的实施方式,由于每个变换集的可用NSST内核的数目不同,因此还提供了取决于每个集合可用于高效二值化的最大NSST索引值的如下表3中所示的截断的一元二值化方法。

[表3]

表3表示NSST索引的二值化。由于每个变换集可用的NSST内核的数目不同,因此可以根据最大NSST索引值对NSST索引进行二值化。

实施方式9:简化变换

由于复杂度问题(例如,大块变换或不可分变换),提供了适用于核心变换(例如,DCT或DST)和二次变换(例如,NSST)的简化变换。

简化变换的主要思想是将N维矢量映射到另一空间中的R维矢量,其中,R/N(R<N)是简化因子。简化变换是如下式3所表示的R×M矩阵。

[式3]

在式1中,变换的R行是新N维空间中的R个基。因此,简化变换这样命名是因为,通过该变换输出的矢量的元素的数目小于输入矢量的元素的数目(R<N)。用于简化变换的逆变换矩阵是正向变换的转置。下面,参照图21a和图21b描述正向简化变换和逆向简化变换。

图21a和图21b例示了根据本公开的实施方式的正向和逆向简化变换。

简化变换中的元素数量为R×N,是完整矩阵大小(N×N)的R/N那么小,这意味着所需的内存为完整矩阵的R/N。

另外,所需乘积的数量为R×N,是原始N×N的R/N那么小。

如果X是N维矢量,则在应用简化变换之后获得R系数,这意味着仅传送R个值而非原先打算传送的N个系数已足够。

图22是例示了根据本公开的实施方式的使用简化变换进行解码的示例的流程图。

如图21中所示,可以向系数(反量化后的系数)应用所提出的简化变换(解码器中的逆变换)。可能需要预定的简化因子(R或R/N)和用于执行变换的变换内核。这里,可以基于诸如块大小(宽度或高度)、帧内预测模式或Cidx这样的可用信息来确定变换内核。如果当前编码块是亮度块,则CIdx为0。否则(Cb或Cr块),CIdx是非零值,例如,1。

如表4和表5中所示,定义本公开中以下使用的运算符。

[表4]

Figure BDA0002644369670000311

[表5]

Figure BDA0002644369670000312

图23是例示了根据本公开的实施方式的应用条件简化变换的示例的流程图。图23的操作可以由解码装置200的反量化器140和逆变换器150执行。

根据实施方式,当满足特定条件时,可以使用简化变换。例如,可以如下地向大于预定大小的块应用简化变换。

-宽度>TH&&高度>HT(其中,TH是预定义值(例如,4))

或者,

-宽度×高度>K&&MIN(宽度,高度)>TH(K和TH是预定义值)

即,当如以上条件中一样当前块的宽度大于预定义值(TH)并且当前块的高度大于预定义值(TH)时,可以应用简化变换。或者,当当前块的宽度和高度的乘积大于预定值(K)并且当前块的宽度和高度中的较小者大于预定义值(TH)时,可以应用简化的变换。

可以如下地向一组预定块应用简化变换。

-宽度==TH&&高度==TH

或者,

-宽度==高度

即,如果当前块的宽度和高度各自与预定值(TH)相同或者当前块的宽度和高度相同(当当前块是正方形块时),则可以应用简化变换。

除非满足使用简化变换的条件,否则可以应用常规变换。常规变换可以是在视频编码系统中预定义并且可用的变换。常规变换的示例如下。

-DCT-2、DCT-4、DCT-5、DCT-7、DCT-8

或者,

-DST-1,DST-4,DST-7

或者,

-不可分变换

或者,

-JEM-NSST(HyGT)

如图23中所示,简化变换可以依赖于索引(Transform_idx),Transform_idx指示将使用哪个变换(例如,DCT-4或DST-1)或将应用哪个内核(当有多个内核可用时)。具体地,Transmission_idx可以被发送两次。一次是指示水平变换的索引(Transform_idx_h),而另一次是指示垂直变换的索引(Transform_idx_v)。

更具体地,参照图23,解码装置200对输入比特流执行反量化(S2305)。此后,解码装置200确定是否应用变换(S2310)。解码装置200可以经由指示是否跳过变换的标志来确定是否应用变换。

在应用变换的情况下,解码装置200解析指示将应用变换的变换索引(Transform_idx)(S2315)。或者,解码装置200可以选择变换内核(S2330)。例如,解码装置200可以选择与变换索引(Transform_idx)对应的变换内核。另外,解码装置200可以考虑块大小(宽度、高度)、帧内预测模式或CIdx(亮度、色度)来选择变换内核。

解码装置200确定是否满足应用简化变换的条件(S2320)。应用简化变换的条件可以包括上述条件。当不应用简化变换时,解码装置200可以应用常规逆变换(S2325)。例如,在步骤S2330中,解码装置200可以从所选择的变换内核确定逆变换矩阵,并且可以向包括变换系数的当前块应用所确定的逆变换矩阵。

当应用简化变换时,解码装置200可以应用简化逆变换(S2335)。例如,在步骤S2330中,解码装置200可以考虑简化因子来从所选择的变换内核中确定简化逆变换矩阵,并且可以向包括变换系数的当前块应用简化逆变换矩阵。

图24是例示了根据本公开的实施方式的用于应用条件简化变换的二次逆变换的解码示例的流程图。图24的操作可以由解码装置200的逆变换器230执行。

根据实施方式,可以向二次变换应用简化变换,如图24中所示。如果解析了NSST索引,则可以应用简化变换。

参照图24,解码装置200执行反量化(S2405)。解码装置200确定是否向经由反量化生成的变换系数应用NSST(S2410)。即,解码装置200根据是否要应用NSST来确定是否需要解析NSST索引(NSST_indx)。

当应用NSST时,解码装置200解析NSST索引(S2415)并且确定NSST索引是否大于0(S2420)。可以由熵解码器210经由诸如CABAC这样的方案来重构NSST索引。当NSST索引为0时,解码装置200可以省略二次逆变换并且应用核心逆变换或主逆变换(S2445)。

另外,当应用NSST时,解码装置200选择二次逆变换的变换内核(S2435)。例如,解码装置200可以选择与NSST索引(NSST_idx)对应的变换内核。另外,解码装置200可以考虑块大小(宽度、高度)、帧内预测模式或CIdx(亮度、色度)来选择变换内核。

当NSST索引大于0时,解码装置200确定是否满足应用简化变换的条件(S2425)。应用简化变换的条件可以包括上述条件。当不应用简化变换时,解码装置200可以应用常规二次逆变换(S2430)。例如,在步骤S2435中,解码装置200可以从所选择的变换内核确定二次逆变换矩阵,并且可以向包括变换系数的当前块应用所确定的二次逆变换矩阵。

当应用简化变换时,解码装置200可以应用简化二次逆变换(S2440)。例如,在步骤S2335中,解码装置200可以考虑简化因子来从所选择的变换内核中确定简化逆变换矩阵,并且可以向包括变换系数的当前块应用简化逆变换矩阵。此后,解码装置200应用核心逆变换或主逆变换(S2445)。

实施方式10:作为具有不同块大小的二次变换的简化变换

图25a、图25b、图26a和图26b例示了根据本公开的实施方式的简化变换和简化逆变换的示例。

根据本公开的实施方式,对于诸如4×4、8×8或16×16这样的不同的块大小,简化变换可以被用作视频编解码器中的二次变换和二次逆变换。例如,对于8×8块大小和缩小因子R=16,可以如图25a和图25b中所示地设置二次变换和二次逆变换。

可以如图26中所示设置简化变换和简化逆变换的伪代码。

实施方式11:作为具有非矩形形状的二次变换的简化变换

图27例示了根据本公开的实施方式的应用简化二次变换的示例区域。

如上所述,由于复杂度问题,可以向4×4和8×8的角部应用二次变换。可以向非正方形形状应用简化变换。

如图27中所示,可以仅向块的某个区域(阴影区域)应用RST。在图27中,每个正方形表示4×4区域,并且可以向10个4×4像素(即,160个像素)应用RST。在简化因子R=16的情况下,整个RST矩阵为16×16矩阵,并且这可能是可接受的计算量。

在另一示例中,在向8×8块应用RST的情况下,可以仅向除了右下4×4块之外的其余左上、右上和左下三个4×4块(总共48个变换系数)应用不可分变换(RST)。

实施方式12:简化因子

图28例示了根据本公开的实施方式的根据简化因子的简化变换。

简化因子的改变会导致内存和乘法复杂度的变化。如上所述,由于减化因子改变,内存和乘法复杂度可以按因子R/N减小。例如,在对于8×8NSST而言R=16的情况下,内存和乘法复杂度可以减小1/4。

实施方式13:高级语法

下表6中表示的语法元素可以在视频编码中用于处理RST。与简化变换相关的语义可以存在于序列参数集(SPS)或切片头中。

Reduced_transform_enabled_flag为1表示简化变换是可能的并且被应用。Reduced_transform_enabled_flag为0表示简化变换是不可能的。当不存在Reduced_transform_enabled_flag时,推断它为0。(Reduced_transform_enabled_flag等于1规定启用并应用简化变换。Reduced_transform_enabled_flag等于0规定不启用简化变换。当不存在Reduced_transform_enabled_flag时,推断它等于0。)

Reduced_transform_factor指示为了进行简化变换将保持的简化维度的数目。若缺少Reduced_transform_factor,推断它与R相同。(Reduced_transform_factor指明为了简化变换而保持的简化维度的数目。当不存在Reduced_transform_factor时,推断它等于R)。

min_reduced_transform_size指示应用简化变换的最小变换大小。若缺少min_reduced_transform_size,推断它为0。(min_reduced_transform_size指明应用简化变换的最小变换大小。当不存在min_reduced_transform_size时,推断它等于0。)

max_reduced_transform_size指示应用简化变换的最大变换大小。若缺少max_reduced_transform_size,推断它为0。

reduced_transform_factor指示为了进行简化变换将保持的简化维度的数目。若缺少reduced_transform_size,推断它为0。(reduced_transform_size指明为了简化变换而保持的简化维度的数目。当不存在Reduced_transform_factor时,推断它等于0。)

[表6]

实施方式14:针对最坏情况处理的4×4RST的有条件应用

适用于4×4块的不可分二次变换(4×4NSST)是16×16变换。向经历了诸如DCT-2、DST-7或DCT-8这样的主变换的块二次应用4×4NSST。当应用主变换的块的大小为N×M时,可以在向N×M块应用4×4NSST时考虑以下方法。

1)以下是向N×M区域应用4×4NSST的条件a)和b)。

a)N>=4

b)M>=4

2)可以向某些(而非全部)N×M区域应用4×4NSST。例如,可以仅向左上K×J区域应用4×4NSST。以下的a)和b)是针对这种情况的条件。

a)K>=4

b)J>=4

3)将应用二次变换的区域可以被分割成4×4块,并且可以向每个块应用4×4NSST。

4x4NSST的计算复杂度是编码器和解码器的非常关键的考虑因素,因此对其进行详细分析。具体地,基于乘法数来分析4×4NSST的计算复杂度。在正向NSST的情况下,16×16二次变换由16个行方向变换基矢量组成,并且16×1矢量与每个变换基矢量的内积导致变换基矢量的变换系数。获得16个变换基矢量的所有变换系数的处理是将16×16不可分变换矩阵乘以输入的16×1矢量。因此,4×4正向NSST所需的总乘法数为256。

当在解码器中向16×1变换系数应用逆向16×16不可分逆变换时(当忽略诸如量化和整数化的影响这样的影响时),可以重构原始4×4主变换块的系数。换句话说,可以通过将逆向16×16不可分变换矩阵与16×1变换系数矢量相乘来获得16×1矢量形式的数据,并且如果按首次应用时那样的行优先或列优先顺序进行数据排序,则可以重构4×4块信号(主变换系数)。因此,4×4逆向NSST所需的总乘法数为256。

如上所述,当应用4×4NSST时,每个样本单元所需的乘法数为16。这是将在执行每个变换基矢量与16×1矢量的内积的过程(执行4×4NSST的处理)期间获得的总乘法数256除以样本的总数16时获得的数值。正向4×4NSST和逆向4×4NSST二者所需的乘法数为16。

在8×8块的情况下,根据已经应用4×4NSST的区域来确定应用4×4NSST时所需的每个样本的乘法数。

1.在仅向左上4×4区域应用4×4NSST的情况下:256(4×4NSST处理所必需的乘法数)/64(8×8块中的总样本数)=4乘法数/样本

2.在向左上4×4区域和右上4×4区域应用4×4NSST的情况下:512(两个4×4NSST所必需的乘法数)/64(8×8块中的总样本数)=8乘法数/样本

3.在向8×8块中的所有4×4区域应用4×4NSST的情况下:1024(四个4×4NSST所必需的乘法数)/64(8×8块中的总样本数)=16乘法数/样本

如上所述,如果块大小大,则可以减小应用4×4NSST的范围,以便减少每个样本端所需的最坏情况下的乘法数。

因此,如果使用4×4NSST,则当TU大小为4×4时引起最坏情况。在这种情况下,以下方法可以降低最坏情况复杂度。

方法1.不向较小TU(即,4×4TU)应用4×4NSST。

方法2.向4×4块(4×4TU)应用4×4RST而非4×4NST。

通过实验观察到,由于方法1不应用4×4NSST,因此方法1造成编码性能严重劣化。揭示了方法2能够依照16×1变换系数矢量的元素的统计特性,在甚至不使用所有变换系数的情况下通过向位于前面的一些变换系数应用逆变换来重构非常接近原始信号的信号,因此能够保持编码性能的大部分。

具体地,在4×4RST的情况下,当逆向(或正向)16×16不可分变换由16个列基矢量组成时,仅留下L个列基矢量,并且配置16×L矩阵。因为在变换系数当中单单留下L个更关键的变换系数,所以16×L矩阵与L×1矢量的乘积可以导致与原始16×1矢量数据差异极小的16×1矢量的重构。

结果,仅L个系数涉及数据重构。因此,为了获得变换系数,获得L×1变换系数矢量而非16×1变换系数矢量已足够。即,通过从正向16×16不可分变换矩阵中选择L个行方向变换矢量来配置L×16变换矩阵,并且通过将L×16变换矩阵与16×1输入矢量相乘来获得L个变换系数。

L属于范围1<=L<16。通常,可以通过任何方法从16个变换基矢量中选择L个变换基矢量。然而,如上所述,鉴于编码和解码,选择在信号能量方面具有较高重要性的变换基矢量就编码效率而言可能是有利的。根据针对L值的变换,在4×4块中每个样本的最坏情况的乘法数如下表7中所示。

[表7]

L 总乘法 每个像素的乘法
16 256 16
8 128 8
4 64 4
2 32 2

如上所述,可以如下表8中所示地综合地使用4×4NSST和4×4RST,以便降低最坏情况的乘法复杂度。(然而,以下示例描述了在应用4×4NSST的条件下(即,当当前块的宽度和高度二者等于或大于4时)应用4×4NSST和4×4RST的条件)。

如上所述,针对4×4块的4×4NSST是接收16个数据并输出16个数据的方形(16×16)变换矩阵,并且4×4RST意指相对于编码器侧接收16个数据并输出少于16个的R(例如,8)个数据的非方形(8×16)变换矩阵。4×4RST意指相对于解码器侧接收少于16个的R(例如,8)个数据并且输出16个数据的非方形(16×8)变换矩阵。

[表8]

参照表8,当当前块的宽度和高度为4时,向当前块应用基于8×16矩阵的4×4RST,否则(如果当前块的宽度或高度不为4),则可以向当前块的左上4×4区域应用4×4NSST。更具体地,如果当前块的大小为4×4,则可以应用输入长度为16且输出长度为8的不可分变换。在逆向不可分变换的情况下,可以应用输入长度为8且输出长度为16的不可分变换。

如上所述,可以如下表9中所示地组合使用4×4NSST和4×4RST,以便降低最坏情况的乘法复杂度。(然而,以下示例描述了在应用4×4NSST的条件下(即,当当前块的宽度和高度二者等于或大于4时)应用4×4NSST和4×4RST的条件)。

[表9]

Figure BDA0002644369670000392

参照表9,当当前块的宽度和高度各自为4时,应用基于8×16矩阵的4×4RST,并且如果当前块的宽度和高度的乘积小于阈值(TH),则向当前块的左上4×4区域应用4×4NSST,并且如果当前块的宽度等于或大于高度,则向当前块的左上4×4区域和位于左上4×4区域的右侧的4×4区域应用4×4NSST,并且对于其余区域(当当前块的宽度和高度的乘积等于或大于阈值并且当前块的宽度小于高度时),向当前块的左上4×4区域和位于左上4×4区域的下方的4×4区域应用4×4NSST。

结果,可以向4×4块应用4×4RST(例如,8×16矩阵)而非4×4NSST,以降低最坏情况乘法的计算复杂度。

实施方式15:针对最坏情况处理的8×8RST的有条件应用

适用于一个8×8块的不可分二次变换(8×8NSST)是64×64变换。向经历了诸如DCT-2、DST-7或DCT-8这样的主变换的块二次应用8×8NSST。当应用主变换的块的大小为N×M时,可以在向N×M块应用8×8NSST时考虑以下方法。

1)以下是向N×M区域应用8×8NSST的条件c)和d)。

c)N>=8

d)M>=8

2)可以向某些(而非全部)N×M区域应用8×8NSST。例如,可以仅向左上K×J区域应用8×8NSST。以下的c)和d)是针对这种情况的条件。

c)K>=8

d)J>=8

3)将应用二次变换的区域可以被分割成8×8块,并且可以向每个块应用8×8NSST。

8×8NSST的计算复杂度是编码器和解码器的非常关键的考虑因素,因此对其进行详细分析。具体地,基于乘法数来分析8×8NSST的计算复杂度。在正向NSST的情况下,64×64二次变换由64个行方向变换基矢量组成,并且64×1矢量与每个变换基矢量的内积导致变换基矢量的变换系数。获得64个变换基矢量的所有变换系数的处理是将64×64不可分变换矩阵乘以输入的64×1矢量。因此,8×8正向NSST所需的总乘法数为4,096。

当在解码器中向64×1变换系数应用逆向64×64不可分逆变换时(当忽略诸如量化和整数化的影响这样的影响时),可以重构原始8×8主变换块的系数。换句话说,可以通过将64×64不可分变换矩阵与64×1变换系数矢量相乘来获得64×1矢量形式的数据,并且如果按首次应用时那样的行优先或列优先顺序进行数据排序,则可以重构8×8块信号(主变换系数)。因此,8×8逆NSST所需的总乘法数为4,096。

如上所述,当应用8×8NSST时,每个样本单元所需的乘法数为64。这是将在执行每个变换基矢量与64×1矢量的内积的过程(执行8×8NSST的处理)期间获得的总乘法数4,096除以样本的总数64时获得的数值。正向8×8NSST和逆向8×8NSST二者所需的乘法数为64。

在16×16块的情况下,根据已经应用8×8NSST的区域来确定应用8×8NSST时所需的每个样本的乘法数。

1.在仅向左上8×8区域应用8×8NSST的情况下:4096(8×8NSST处理所必需的乘法数)/256(16×16块中的总样本数)=16乘法数/样本

2.在向左上8×8区域和右上8×8区域应用8×8NSST的情况下:8192(两个8×8NSST所必需的乘法数)/256(16×16块中的总样本数)=32乘法数/样本

3.在向16×16块中的所有8×8区域应用8×8NSST的情况下:16384(四个8×8NSST所必需的乘法数)/256(16×16块中的总样本数)=64乘法数/样本

如上所述,如果块大小大,则可以减小应用8×8NSST的范围,以减少每个样本端所需的最坏情况下的乘法数。

在应用8×8NSST的情况下,由于8×8块是8×8NSST适用的最小TU,因此就从每个样本所需的乘法数而言,TU大小为8×8的情况是最坏的情况。在这种情况下,以下方法可以降低最坏情况复杂度。

方法1.不向较小TU(即,8×8TU)应用8×8NSST。

方法2.向8×8块(8×8TU)应用8×8RST而非8×8NSST。

通过实验观察到,由于方法1不应用8×8NSST,因此方法1造成编码性能严重劣化。揭示了方法2能够依照64×1变换系数矢量的元素的统计特性,在甚至不使用所有变换系数的情况下通过向位于前面的一些变换系数应用逆变换来重构非常接近原始信号的信号,因此能够保持编码性能的大部分。

具体地,在8×8RST的情况下,当逆向(或正向)64×64不可分变换由16个列基矢量组成时,仅留下L个列基矢量,并且配置64×L矩阵。因为在变换系数当中单单留下L个更关键的变换系数,所以64×L矩阵与L×1矢量的乘积可以导致与原始64×1矢量数据差异极小的64×1矢量的重构。

另外,如实施方式11中所述,可以不向8×8块中包括的所有64个变换系数应用RST,而是可以向部分区域(即,8×8块中的除了右下4×4区域之外的其余区域)应用RST。

结果,仅L个系数涉及数据重构。因此,为了获得变换系数,获得L×1变换系数矢量而非64×1变换系数矢量已足够。即,通过从正向64×64不可分变换矩阵中选择L个行方向变换矢量来配置L×64变换矩阵,并且通过将L×64变换矩阵与64×1输入矢量相乘来获得L个变换系数。

L值的范围可以是1<=L<64,通常,可以按任何方法在64个变换基矢量当中选择L个矢量,但是选择如上所述在编码和解码方面具有高信号能量重要性的变换基矢量在编码效率方面可能是有益的。在最坏的情况下取决于L值的变化的8×8块中每个样本所需的乘法次数如下表10中所示。

[表10]

L 总乘法 每个像素的乘法
64 4096 64
32 2048 32
16 1024 16
8 512 8
4 256 4

如上所述,可以如下表11中所示地全综合使用具有不同L值的8×8RST,以便降低最坏情况的乘法复杂度。(然而,以下示例描述了在应用8×8NSST的条件下(即,当当前块的宽度和高度二者等于或大于8时)应用8×8RST的条件)。

[表11]

Figure BDA0002644369670000421

参照表11,当当前块的宽度和高度各自为8时,向当前块应用基于8×64矩阵的8×8RST,否则(如果当前块的宽度或高度不为8),则可以向当前块应用基于16×64矩阵的8×8RST。更具体地,当当前块的大小为8×8时,可以应用输入长度为64且输出长度为8的不可分变换,否则,可以应用输入长度为64且输出长度为16的不可分变换。在逆向不可分变换的情况下,当当前块为8×8时,可以应用输入长度为8且输出长度为64的不可分变换,否则可以应用输入长度为16且输出长度为64的不可分变换。

另外,如实施方式11中所述,由于例如在向8×8块中的除了右下4×4区域之外的其余区域应用RST的情况下,可以仅向部分区域而非整个8×8块应用RST,因此可以应用基于8×48或16×18矩阵的8×8RST。即,在宽度和高度中的每一个对应于8的情况下,可以应用基于8×48矩阵的8×8RST,否则(在当前块的宽度和高度不为8的情况下)可以应用基于16×48矩阵的8×8RST。

对于前向不可分变换,在当前块为8×8的情况下,可以应用输入长度为48且输出长度为8的不可分变换,否则,可以应用输入长度为48且输出长度为16的不可分变换。

对于后向不可分变换,在当前块为8×8的情况下,可以应用输入长度为8且输出长度为48的不可分变换,否则,可以应用输入长度为16且输出长度为48的不可分变换。

因此,在基于编码器侧向大于8×8的块应用RST的情况下,在块的宽度和高度中的每一个对应于8的情况下,可以应用输入长度为64或更小(例如,48或64)且输出长度小于64(例如,8)的不可分变换矩阵(8×48或8×64矩阵)。在块的宽度或高度不对应于8的情况下,可以应用输入长度为64或更小(例如,48或64)且输出长度小于64(例如,16)的不可分变换矩阵(16×48或16×64矩阵)。

另外,在基于解码器侧向大于8×8的块应用RST的情况下,在块的宽度和高度中的每一个对应于8的情况下,可以应用输入长度小于64(例如,8)且输出长度为64或更小(例如,48或64)的不可分变换矩阵(48×8或64×8矩阵)。在块的宽度或高度不对应于8的情况下,可以应用输入长度小于64(例如,16)且输出长度为64或更小(例如,48或64)的不可分变换矩阵(48×16或64×16矩阵)。

表12表示在应用8×8NSST的条件下(即,块的宽度和高度大于或等于8的情况下)的各种8×8RST应用的示例。

[表12]

Figure BDA0002644369670000431

参照表12,在当前块的宽度和高度中的每一个为8的情况下,可以应用基于8×64矩阵(或8×48矩阵)的8×8RST,在当前块的宽度和高度的乘积小于阈值(TH)的情况下,向当前块的左上8×8区域应用基于16×64矩阵(或16×48矩阵)的8×8RST,否则(在当前块的宽度或高度不为8并且当前块的宽度和高度的乘积大于或等于阈值的情况下),向左上8×8区域应用基于32×64矩阵(或32×48矩阵)的8×8RST。

图29例示了作为应用本公开的实施方式的执行变换的编码流程图的示例。

编码装置100对残差块执行主变换(步骤,S2910)。主变换也可以被称为核心变换。作为实施方式,编码装置100可以通过使用上述MTS来执行主变换。另外,编码装置100可以将指示MTS候选当中的特定MTS的MTS索引发送到解码装置200。在这种情况下,可以基于当前块的帧内预测模式来构造MTS候选。

编码装置100确定是否应用二次变换(步骤,S2920)。作为示例,编码装置100可以基于根据主变换的残差变换系数来确定是否应用二次变换。例如,二次变换可以是NSST或RST。

编码装置100确定要执行二次变换(步骤,S2930)。在这种情况下,编码装置100可以基于根据帧内预测模式指定的NSST(或RST)变换集来确定要执行二次变换。

另外,作为示例,在步骤S2930之前,编码装置100可以基于当前块的大小来确定应用二次变换的区域。

编码装置100通过使用在步骤S2930中确定的二次变换来执行二次变换(步骤S2940)。

图30例示了作为应用本公开的实施方式的执行变换的解码流程图的示例。

解码装置200确定是否应用二次逆变换(步骤,S3010)。例如,二次逆变换可以是NSST或RST。作为示例,解码装置200可以基于从编码装置100接收的二次变换标志来确定是否应用二次逆变换。

解码装置200确定要执行二次逆变换(步骤,S3020)。在这种情况下,解码装置200可以基于根据上述帧内预测模式指定的NSST(或RST)变换集来确定执行应用于当前块的二次逆变换。

另外,作为示例,在步骤S3020之前,解码装置200可以基于当前块的大小来确定应用二次逆变换的区域。

解码装置200通过使用在步骤S3020中确定的二次逆变换来对反量化后的残差块执行二次逆变换(步骤,S3030)。

解码装置200对执行了二次逆变换的残差块执行主逆变换。主逆变换可以被称为核心逆变换。作为实施方式,解码装置200可以通过使用上述MTS来执行主逆变换。另外,作为示例,在步骤S3040之前,解码装置200可以确定是否向当前块应用MTS。在这种情况下,确定是否应用MTS的步骤还可以被包括在图30的解码流程图中。

作为示例,在向当前块应用MTS(即,cu_mts_flag=1)的情况下,解码装置200可以基于当前块的帧内预测模式来构造MTS候选。在这种情况下,构造MTS候选的步骤还可以被包括在图30的解码流程图中。此外,解码装置200可以通过使用指示所构造的MTS候选当中的特定MTS的mts_idx来确定是否执行应用于当前块的主逆变换。

图31例示了作为应用本公开的实施方式的编码装置100中的变换器120的详细框图的示例。

应用本公开的实施方式的编码装置100可以包括主变换器3110、二次变换应用确定单元3120、二次变换确定单元3130和二次变换器3140。

主变换器3110可以对残差块执行主变换。主变换也可以被称为核心变换。作为实施方式,主变换器3110可以通过使用上述MTS来执行主变换。另外,主变换器3110可以将指示MTS候选当中的特定MTS的MTS索引发送到解码装置200。在这种情况下,可以基于当前块的帧内预测模式来构造MTS候选。

二次变换应用确定单元3120确定二次变换。作为示例,二次变换应用确定单元3120可以基于根据主变换的残差变换系数来确定是否应用二次变换。例如,二次变换可以是NSST或RST。

二次变换确定单元3130确定要执行二次变换。在这种情况下,二次变换确定单元3130可以基于根据帧内预测模式指定的NSST(或RST)变换集来确定要执行二次变换。

另外,作为示例,二次变换确定单元3130可以基于当前块的大小来确定应用二次变换的区域。

二次变换器3140可以通过使用确定的二次变换来执行二次变换。

图32例示了作为应用本公开的实施方式的解码装置中的逆变换器230的详细框图的示例。

应用本公开的解码装置200包括二次逆变换应用确定单元3210、二次逆变换确定单元3220、二次逆变换器3230和主逆变换器3240。

二次逆变换应用确定单元3210确定是否应用二次逆变换。例如,二次逆变换可以是NSST或RST。作为示例,二次逆变换应用确定单元3210可以基于从编码装置100接收的二次变换标志来确定是否应用二次逆变换。作为另一示例,二次逆变换应用确定单元3210还可以基于残差块的变换系数来确定是否应用二次逆变换。

二次逆变换确定单元3220可以确定二次逆变换。在这种情况下,二次逆变换确定单元3220可以基于根据上述帧内预测模式指定的NSST(或RST)变换集来确定执行应用于当前块的二次逆变换。

另外,作为示例,二次逆变换确定单元3220可以基于当前块的大小来确定应用二次逆变换的区域。

此外,作为示例,二次逆变换器3230可以通过使用确定的二次逆变换对反量化后的残差块执行二次逆变换。

主逆变换器3240可以对执行了二次逆变换的残差块执行主逆变换。作为实施方式,主逆变换器3240可以通过使用上述MTS来执行主逆变换。另外,作为示例,主逆变换器3240可以确定是否向当前块应用MTS。

作为示例,在向当前块应用MTS(即,cu_mts_flag=1)的情况下,主逆变换器3240可以基于当前块的帧内预测模式来构造MTS候选。另外,主逆变换器3240可以通过使用指示所构造的MTS候选当中的特定MTS的mts_idx来确定应用于当前块的主逆变换。

图33例示了根据本公开的实施方式的应用变换的解码流程图的示例。图33的操作可以由解码装置200的逆变换器230执行。

在步骤S3305中,解码装置200基于当前块的高度和宽度来确定不可分变换的输入长度和输出长度。这里,块的宽度和高度中的每一个对应于8,不可分变换的输入长度可以被确定为8,并且输出长度可以被确定为大于输入长度且小于或等于64(例如,48或64)的值。例如,在编码器侧针对8×8块的所有变换系数应用不可分变换的情况下,输出长度可以被确定为64,并且在编码器侧针对8×8块的部分(例如,8×8块中的除了右下4×4块之外的部分)变换系数应用不可分变换的情况下,输出长度可以被确定为48。

在步骤S3310中,解码装置200确定与不可分变换的输入长度和输出长度对应的不可分变换矩阵。例如,在不可分变换的输入长度为8并且其输出长度为48或64的情况下(在当前块的大小为4×4的情况下),从变换内核推导出的48×8或64×8矩阵可以被确定为不可分变换,并且在不可分变换的输入长度为16并且其输出长度为48或64的情况下(在当前块的大小小于8×8但不是4×4的情况下),48×16或64×16矩阵可以被确定为不可分变换。

根据本公开的实施方式,解码装置200可以基于当前块的帧内预测模式来确定不可分变换集索引(例如,NSST索引),确定与不可分变换集索引中所包括的不可分变换集中的不可分变换索引对应的不可分变换内核,并且基于步骤S3305中确定的输入长度和输出长度根据不可分变换内核确定不可分变换矩阵。

在步骤S3315中,解码装置200向与针对当前块确定的输入长度(8或16)一样多的系数应用针对当前块确定的不可分变换矩阵。例如,在不可分变换的输入长度为8并且其输出长度为48或64的情况下,可以向当前块中所包括的8个系数应用从变换内核推导出的48×8或64×8矩阵,并且在不可分变换的输入长度为16并且其输出长度为48或64的情况下,可以向当前块的左上4×4区域中的16个系数应用从变换内核推导出的48×16或64×16矩阵。这里,应用不可分变换的系数是从当前块的DC位置沿着根据预先确定的扫描顺序(例如,图16的(a)、(b)或(c))的路径直至与输入长度(例如,8或16)对应的位置的系数。

另外,对于当前块的宽度和高度中的每一个不对应于8的情况,在当前块的宽度和高度的乘积小于阈值的情况下,解码装置200可以应用以当前块的左上4×4区域中的16个系数为输入来输出与输出长度(例如,48或64)一样多的变换后的系数的不可分变换矩阵(48×16或64×16),并且在当前块的宽度和高度的乘积大于或等于阈值的情况下,解码装置200应用以当前块的32个系数为输入来输出与输出长度(例如,48或64)一样多的变换后的系数的不可分变换矩阵(48×32或64×32)。

在输出长度为64的情况下,设置通过应用不可分变换矩阵向8×8块应用不可分变换的64个变换后的数据(变换后的系数),并且在输出长度为48的情况下,设置通过应用不可分变换矩阵向8×8块中的除了右下4×4区域之外的其余区域应用不可分变换的48个变换后的数据(变换后的系数)。

图34例示了作为应用本公开的实施方式的用于处理视频信号的设备的框图示例。图34的视频信号处理设备3400可以对应于图1的编码装置100或图2的解码装置200。

视频信号处理设备3400包括用于存储图像信号的存储器3420以及用于在与存储器联接的情况下处理图像信号的处理器3410。

根据本公开的实施方式的处理器3410可以包括用于处理图像信号的至少一个处理电路,并且通过执行用于编码或解码的命令来处理图像信号。即,处理器3410可以通过执行上述编码或解码方法对原始图像数据进行编码或者对编码后的图像信号进行解码。

图35例示了根据本公开的实施方式的示例视频编码系统。

视频编码系统可以包括源装置和接收装置。源装置可以经由数字存储介质或网络将文件或流传输形式的编码后的视频/图像信息或数据传送到接收装置。

源装置可以包括视频源、编码装置和发送器。接收装置可以包括接收器、解码装置和渲染器。编码装置可以被称为视频/图像编码装置,并且解码装置可以被称为视频/图像解码装置。发送器可以被包括在编码装置中。接收器可以被包括在解码装置中。渲染器可以包括显示单元,并且显示单元可以被配置为单独的装置或外部部件。

视频源可以通过捕获、合成或生成视频/图像来获得视频/图像。视频源可以包括视频/图像捕获装置和/或视频/图像生成装置。视频/图像捕获装置可以包括例如包括先前捕获的视频/图像的视频/图像档案以及一个或更多个相机。视频/图像生成装置可以包括例如计算机、平板PC或智能电话,并且可以(电子地)生成视频/图像。例如,可以经由例如计算机来生成虚拟视频/图像,在这种情况下,用于生成其相关数据的处理可以替换视频/图像捕获处理。

编码装置可以对输入的视频/图像进行编码。编码装置可以为了压缩和编码效率而执行诸如预测、变换和量化这样的一系列处理。编码后的数据(编码后的视频/图像信息)可以以比特流的形式输出。

发送器可以经由数字存储介质或网络将已经以比特流形式输出的编码后的视频/图像信息或数据以文件或流传输形式传送到接收装置的接收器。数字存储介质可以包括诸如USB、SD、CD、DVD、蓝光、HDD或SSD这样的各种类型的存储介质。发送器可以包括用于按预定文件格式生成媒体文件的元件以及用于通过广播/通信网络进行发送的元件。接收器可以提取比特流,并且将该比特流传送到解码装置。

解码装置可以执行与编码装置的操作对应的诸如反量化、逆变换和预测这样的一系列过程,对视频/图像进行解码。

渲染器可以渲染解码后的视频/图像。渲染后的视频/图像可以被显示在显示单元上。

图36是例示了根据本公开的实施方式的内容流传输系统的结构的视图。

应用本公开的内容流传输系统可以主要包括编码服务器、流传输服务器、网络服务器、媒体存储器、用户装置和多媒体输入装置。

编码服务器可以将从诸如智能电话、相机或摄像机这样的多媒体输入装置输入的内容压缩成数字数据,生成比特流,并且将该比特流发送到流传输服务器。作为示例,当诸如智能电话、相机或摄像机这样的多媒体输入装置本身生成比特流时,可以省略编码服务器。

可以通过应用本公开的编码或比特流生成方法来生成比特流,并且流传输服务器可以在发送或接收比特流的同时临时存储比特流。

流传输服务器可以基于用户通过网络服务器进行的请求将多媒体数据发送到用户装置,并且网络服务器用作通知用户将提供什么服务的代理。如果用户向网络服务器发送对所期望的服务的请求,则网络服务器将该请求传送到流传输服务器,并且流传输服务器将多媒体数据发送到用户。内容流传输系统可以包括单独的控制服务器,在这种情况下,控制服务器控制内容流传输系统中的装置之间的命令/响应。

流传输服务器可以从媒体存储装置和/或编码服务器接收内容。例如,当从编码服务器接收内容时,可以实时地接收内容。在这种情况下,为了无缝地提供服务,流传输服务器可以将比特流存储预定时间。

用户装置的示例可以包括移动电话、智能电话、膝上型计算机、数字广播终端、个人数字助理(PDA)、便携式多媒体播放器(PMP)、导航装置、触屏PC、平板PC、超级本、诸如,智能手表、智能眼镜或头戴式显示器(HMD)这样的可穿戴装置、数字TV、台式计算机或数字标牌装置。

在内容流传输系统中,服务器可以是分布式服务器,在这种情况下,可以分发和处理每个服务器接收到的数据。

此外,应用本公开的处理方法可以以由计算机执行并且被存储在计算机可读记录介质中的程序的形式制造。根据本公开的具有数据结构的多媒体数据也可以被存储在计算机可读记录介质中。计算机可读记录介质包括其中存储了计算机可读取的数据的所有类型的存储装置和分布式存储装置。计算机可读记录介质可以包括例如蓝光(Blueray)盘(BD)、通用串行总线(USB)、ROM、PROM、EEPROM、RAM、CD-ROM、磁带、软盘和光学数据存储装置。此外,计算机可读记录介质包括以载波(例如,通过互联网进行传输)的形式实现的介质。此外,通过编码方法生成的比特流可以被存储在计算机可读记录介质中,或者可以通过有线/无线通信网络传输。

此外,本公开的实施方式可以根据程序代码被实现为计算机程序产品,并且程序代码可以根据本公开的实施方式在计算机中运行。程序代码可以被存储在计算机可读载体上。

如上所述,本公开的实施方式可以在处理器、微处理器、控制器或芯片上实现和执行。例如,每幅图中示出的功能单元可以在计算机、处理器、微处理器、控制器或芯片上实现和执行。

此外,应用本公开的解码器和编码器可以被包括在多媒体广播发送/接收设备、移动通信终端、家庭影院视频系统、数字影院视频系统、监视相机、视频转换设备、诸如视频通信这样的实时通信设备、移动流传输装置、存储介质、摄像机、视频点播(VoD)服务提供设备、顶置视频(OTT)视频系统、互联网流传输服务提供设备、3D视频系统、视频电话视频系统、医疗视频系统等中,并且可以被用于处理视频信号或数据信号。例如,OTT视频系统可以包括游戏控制台、蓝光播放器、互联网访问TV、家庭影院系统、智能手机、平板PC、数字视频录像机(DVR)等。

此外,应用本公开的处理方法可以以由计算机执行并且被存储在计算机可读记录介质中的程序的形式制造。根据本公开的具有数据结构的多媒体数据也可以被存储在计算机可读记录介质中。计算机可读记录介质包括其中存储了计算机可读取的数据的所有类型的存储装置和分布式存储装置。计算机可读记录介质可以包括例如蓝光盘(BD)、通用串行总线(USB)、ROM、PROM、EEPROM、RAM、CD-ROM、磁带、软盘和光学数据存储装置。此外,计算机可读记录介质包括以载波(例如,通过互联网进行传输)的形式实现的介质。此外,通过编码方法生成的比特流可以被存储在计算机可读记录介质中,或者可以通过有线/无线通信网络传输。

此外,本公开的实施方式可以根据程序代码被实现为计算机程序产品,并且程序代码可以根据本公开的实施方式在计算机中运行。程序代码可以被存储在计算机可读载体上。

上述实施方式是本公开的元件和特征的组合。除非另外提到,否则这些元件或特征可以被视为是选择性的。每个元件或特征可以在不与其它元件或特征组合的情况下实践。另外,本公开的实施方式可以通过组合元件和/或特征的部分来构造。可以重新布置本发明的实施方式中描述的操作顺序。任一个实施方式的某些构造可以被包括在另一个实施方式中并且可以被另一个实施方式的对应构造来取代。本领域的技术人员显而易见的是,在所附的权利要求中没有彼此明确引用的权利要求可以按组合形式作为示例性实施方式存在,或者在提交申请之后通过后续修改被包括作为新的权利要求。

本公开的实现方式可以通过各种装置(例如,硬件、固件、软件或其组合)来实现。在硬件配置中,根据本公开的实现方式的方法可以由一个或更多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器等来实现。

在固件或软件配置中,本公开的实现方式可以以模块、过程、功能等形式来实现。软件代码可以被存储在存储器中并且由处理器来执行。存储器可以位于处理器的内部或外部,并且可以经由各种已知手段将数据发送到处理器和从处理器接收数据。

本领域的技术人员将领会,在不脱离本公开的精神和基本特性的情况下,本公开可以以与本文中阐述的那些不同的其它特定方式来执行。因此,以上实施方式因此将被理解为在所有方面都是例示性的,而非限制性的。本公开的范围应该由所附的权利要求及其法律等同物而非以上描述限定,并且落入所附的权利要求的含义和等同范围内的所有改变都应当被包含在本文中。

工业实用性

虽然已经出于例示目的描述了本公开的示例性方面,但是本领域的技术人员应该领会的是,可以在不脱离本公开的基本特性的情况下进行各种修改、添加和替代。

66页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:有效子图片提取

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类