用于对视频进行解码的方法和用于对视频进行编码的方法
文献发布时间:2023-06-19 13:27:45
本申请是国家申请号为201780052247.X,进入中国国家阶段的日期为2019年2月25日,发明名称为“用于处理视频信号的方法和设备”的PCT申请的分案申请。
技术领域
本申请涉及用于处理视频信号的方法和设备。
背景技术
近来,在各种应用领域中对高分辨率和高质量图像例如高清晰度(HD)图像和超高清(UHD)图像的需求已经增加了。然而,与常规图像数据相比,分辨率和质量更高的图像数据的数据量增加了。因此,当通过使用介质例如常规的有线和无线宽带网络发送图像数据时,或者当通过使用常规的存储介质存储图像数据时,发送和存储的成本增加了。为了解决随着图像数据的分辨率和质量的提高而出现的这些问题,可以利用高效的图像编码/解码技术。
图像压缩技术包括各种技术,各种技术包括:根据当前图片的先前图片或后续图片来对包括在当前图片中的像素值进行预测的帧间预测技术;通过使用当前图片中的像素信息对包括在当前图片中的像素值进行预测的帧内预测技术;将短代码分配给出现频率高的值并且将长代码分配给出现频率低的值的熵编码技术等。可以通过使用这样的图像压缩技术来有效地压缩图像数据,并且图像数据可以进行传送或存储。
同时,随着对高分辨率图像的需求的增加,对作为新图像服务的立体图像内容的需求也在增加。正在探讨的是用于有效地提供具有高分辨率和超高分辨率的立体图像内容的视频压缩技术。
发明内容
技术问题
本发明的目的是提供一种用于在对视频信号进行编码/解码时有效地执行变换/逆变换的方法和装置。
本发明的目的是提供一种用于在对视频信号进行编码/解码时在多个变换类型候选中自适应地确定当前块的变换类型的方法和装置。
本发明的目的是提供一种用于在对视频信号进行编码/解码时分别确定水平变换和竖直变换的变换类型的方法和装置。
本发明要实现的技术目的不限于以上提及的技术问题。并且,本领域的技术人员根据以下描述将清楚地理解未提及的其他技术问题。
技术方案
根据本发明的用于对视频信号进行解码的方法和装置可以:获得当前块的变换系数;对变换系数进行逆量化;确定当前块的变换集;将多个变换类型候选中的一个确定为当前块的变换类型;以及基于所确定的变换类型对逆量化的变换系数进行逆变换。
根据本发明的用于对视频信号进行编码的方法和装置可以:获得当前块的变换系数;对变换系数进行逆量化;确定当前块的变换集;将多个变换类型候选中的一个确定为当前块的变换类型;以及基于所确定的变换类型对逆量化的变换系数进行逆变换。
在根据本发明的用于对视频信号进行编码/解码的方法和装置中,可以基于指示多个变换集中的至少一个的索引信息来确定当前块的变换集。
在根据本发明的用于对视频信号进行编码/解码的方法和装置中,多个变换集中的每一个的变换类型候选的类型或者数量中的至少一个可以是不同的。
在根据本发明的用于对视频信号进行编码/解码的方法和装置中,可以根据是否允许变换跳过来不同地确定变换集中包括的变换类型候选的类型或者数量中的至少一个。
在根据本发明的用于对视频信号进行编码/解码的方法和装置中,逆变换可以包括水平变换和竖直变换,并且用于水平变换的变换集和用于竖直变换的变换集可以被独立地确定。
在根据本发明的用于对视频信号进行编码/解码的方法和装置中,可以根据当前块的帧内预测模式来确定用于水平变换的变换集和用于竖直变换的变换集。
在根据本发明的用于对视频信号进行编码/解码的方法和装置中,可以基于当前块的大小、形状或者样本的数量中的至少一个来自适应地确定当前块的变换类型。
根据本发明的用于对视频进行解码的方法包括:通过执行帧内预测获得变换块的预测样本;获得变换块的残差系数;对残差系数进行逆量化;确定是否对于变换块跳过逆变换;通过对变换块应用或跳过逆变换,获得变换块的残差样本;通过对预测样本和残差样本进行求和获得重构样本,其中,当确定对于变换块不跳过逆变换时,获得变换块的残差样本包括:基于变换集确定变换块的变换类型;以及基于所确定的变换类型执行逆变换,其中,当包括变换块的编码块被竖直或水平分割时,不从比特流解析指示是否跳过逆变换的变换跳过标志,以及其中,当编码块被竖直或水平分割时,不允许跳过对于变换块的逆变换。
根据本发明的用于对视频进行编码的方法包括:通过执行帧内预测获得变换块的预测样本;获得变换块的残差样本;通过对变换块应用或跳过变换,获得变换块的残差系数;对变换块的残差系数进行量化,以及通过对预测样本和残差样本进行求和获得重构样本,其中,当对于变换块不跳过变换时,获得变换块的残差系数包括:基于变换集确定变换块的变换类型;以及基于所确定的变换类型执行变换,其中,当包括变换块的编码块被竖直或水平分割时,指示是否跳过变换的变换跳过标志不被编码到比特流中,以及其中,当编码块被竖直或水平分割时,不允许跳过对于变换块的变换。
根据本发明的一种非暂态计算机可读介质,其在由处理器执行时使处理器:通过执行帧内预测获得变换块的预测样本;获得变换块的残差样本;通过对变换块应用或跳过变换,获得变换块的残差系数;对变换块的残差系数进行量化,以及通过对预测样本和残差样本进行求和获得重构样本,其中,当对于变换块不跳过变换时,获得变换块的残差系数包括:基于变换集确定变换块的变换类型;以及基于所确定的变换类型执行变换,其中,当包括变换块的编码块被竖直或水平分割时,指示是否跳过变换的变换跳过标志不被编码到比特流中,以及其中,当编码块被竖直或水平分割时,不允许跳过对于变换块的变换。
上面对本发明简要概述的特征仅是下面对本发明的详细描述的说明性方面,但不限制本发明的范围。
有益效果
根据本发明,可以有效地执行对编码/解码目标块的变换/逆变换。
根据本发明,可以在多个变换类型候选之中自适应地确定当前块的变换类型。
根据本发明,可以分别确定水平变换和竖直变换的变换类型。
本发明可获得的效果不限于以上提及的效果,并且本领域的技术人员可以根据下面的描述清楚地理解未提及的其他效果。
附图说明
图1是示出根据本发明的实施方式的用于对视频进行编码的设备的框图。
图2是示出根据本发明的实施方式的用于对视频进行解码的设备的框图。
图3是示出根据本发明的实施方式的基于树结构对编码块进行分层划分的示例的图。
图4是示出根据本发明的实施方式的允许基于二叉树的划分的划分类型的图。
图5是示出根据本发明的实施方式的只允许预定类型的基于二叉树的划分的示例的图。
图6是用于说明根据应用本发明的实施方式的对与可允许的二叉树划分次数有关的信息进行编码/解码的示例的图。
图7是示出根据本发明实施方式的可应用于编码块的划分模式的图。
图8是示出根据本发明的实施方式的获得残差样本的过程的流程图。
图9是示出针对33种帧内预测模式竖直变换和水平变换是否使用相同的变换集的图。
具体实施方式
可以对本发明进行各种修改,并且存在本发明的各种实施方式,现在将参照附图提供实施方式的示例,并且详细描述它们。然而,本发明不限于此,并且示例性实施方式可以被解释为包括本发明的技术构思和技术范围内的全部修改、等同物或替代方案。在所描述的附图中,相似的附图标记指代相似的元件。
说明书中使用的术语“第一”、“第二”等可以用于描述各种部件,但是这些部件不被解释为限制于这些术语。这些术语仅用于区分一个部件与其他部件。例如,在不偏离本发明的范围的情况下,“第一”部件可以被称为“第二”部件,并且“第二”部件也可以被类似地称为“第一”部件。术语“和/或”包括多个项的组合或者多个术语中的任意一个术语。
应当理解的是,在本说明书中,当元件被简单地称为“连接至”或“耦接至”另一元件而不是“直接连接至”或“直接耦接至”另一元件时,该元件可以是“直接连接至”或“直接耦接至”另一元件,或者该元件可以被连接至或耦接至另一元件,并且存在其他元件介于它们之间。相反地,应该理解的是,当元件被称为“直接耦接”或“直接连接”至另一元件时,不存在中间元件。
本说明书中使用的术语仅用于描述特定实施方式,而并不旨在限制本发明。以单数形式使用的表述包含复数形式的表述,除非该表述在上下文中有明显不同的含义。在本说明书中,应当理解的是,诸如“包括”、“具有”等术语旨在指示本说明书中公开的特征、数字、步骤、动作、元件、部分或其组合的存在,并且不旨在排除可以存在或可以添加一个或更多个其他特征、数字、步骤、动作、元件、部分或其组合的可能性。
在下文中,将参照附图详细描述本发明的优选实施方式。在下文中,附图中的相同组成元件用相同的附图标记来表示,并且将省略对相同元件的重复描述。
图1是示出根据本发明的实施方式的用于对视频进行编码的设备的框图。
参照图1,用于对视频进行编码的设备100可以包括:图片划分模块110、预测模块120和125、变换模块130、量化模块135、重排模块160、熵编码模块165、逆量化模块140、逆变换模块145、滤波器模块150和存储器155。
图1所示的组成部分被独立地示出,以表示用于对视频进行编码的设备中的彼此不同的特征功能。因此,这并不意味着每个组成部分都是由单独的硬件或软件的组成单元组成的。换句话说,为了方便起见,每个组成部分包括列举的组成部分中的每一个。因此,每个组成部分的至少两个组成部分可以被组合,以形成一个组成部分,或者一个组成部分可以被分成多个组成部分以执行每个功能。在不偏离本发明的实质的情况下,组合每个组成部分的实施方式和分割一个组成部分的实施方式也被包括在本发明的范围内。
此外,组成部分中的一些可以不是执行本发明的基本功能的不可缺少的组成部分,而是仅用于改进本发明的性能的可选组成部分。可以通过排除用于改进性能的组成部分而仅包括用于实现本发明的实质的不可缺少的组成部分来实现本发明。排除仅用于改进性能的可选组成部分而仅包括不可缺少的组成部分的结构也被包括在本发明的范围内。
图片划分模块110可以将输入图片划分成一个或更多个处理单元。此处,处理单元可以是预测单元(PU)、变换单元(TU)或编码单元(CU)。图片划分模块110可以将一个图片划分成多个编码单元、预测单元和变换单元的组合,并且可以通过使用预定准则(例如,成本函数)选择编码单元、预测单元和变换单元的一个组合来对图片进行编码。
例如,一个图片可以被划分成多个编码单元。可以使用递归树结构例如四叉树结构来将图片划分成编码单元。在一个图片或最大编码单元作为根的情况下被划分成其他编码单元的编码单元可以以子节点与所划分的编码单元的数目对应的方式进行划分。按照预定限制不能再划分的编码单元用作叶节点。也就是说,当假设对于一个编码单元仅正方形划分可行时,一个编码单元可以最多被划分成四个其他编码单元。
在下文中,在本发明的实施方式中,编码单元可以意指执行编码的单元或者执行解码的单元。
预测单元可以是被划分成在单个编码单元中具有相同大小的正方形形状或矩形形状的划分中的一个,或者预测单元可以是被划分成使得在单个编码单元中具有不同的形状/大小的划分中的一个。
当基于编码单元生成要进行帧内预测的预测单元并且编码单元不是最小编码单元时,可以在不将编码单元划分成多个预测单元N×N的情况下执行帧内预测。
预测模块120和125可以包括执行帧间预测的帧间预测模块120和执行帧内预测的帧内预测模块125。可以确定对于预测单元是执行帧间预测还是帧内预测,并且可以确定根据每个预测方法的详细信息(例如,帧内预测模式、运动向量、参考图片等)。此处,要进行预测的处理单元可以不同于针对其确定预测方法和详细内容的处理单元。例如,可以由预测单元确定预测方法、预测模式等,并且可以由变换单元执行预测。所生成的预测块与原始块之间的残差值(残差块)可以被输入至变换模块130。此外,用于预测的预测模式信息、运动向量信息等可以与残差值一起由熵编码模块165进行编码,并且可以被传送至用于对视频进行解码的设备。当使用特定编码模式时,可以通过对原始块按其原样进行编码而不通过预测模块120和125生成预测块来传送至用于对视频进行解码的设备。
帧间预测模块120可以基于当前图片的先前图片或后续图片中的至少一个的信息来预测预测单元,或者在一些情况下,可以基于当前图片中的一些编码区域的信息来预测预测单元。帧间预测模块120可以包括参考图片插值模块、运动预测模块以及运动补偿模块。
参考图片插值模块可以从存储器155接收参考图片信息,并且可以根据参考图片来生成整像素或小于整像素的像素信息。在亮度像素的情况下,可以使用具有不同滤波器系数的基于DCT的8抽头插值滤波器以1/4像素为单位生成整像素或小于整像素的像素信息。在色度信号的情况下,可以使用具有不同滤波器系数的基于DCT的4抽头插值滤波器以1/8像素为单位生成整像素或小于整像素的像素信息。
运动预测模块可以基于由参考图片插值模块进行插值的参考图片来执行运动预测。作为用于计算运动向量的方法,可以使用诸如基于全搜索的块匹配算法(FBMA)、三步搜索(TSS)和新三步搜索算法(NTS)等的各种方法。基于插值像素,运动向量可以具有以1/2像素或1/4像素为单位的运动向量值。运动预测模块可以通过改变运动预测方法来预测当前预测单元。作为运动预测方法,可以使用诸如跳过方法、合并方法、AMVP(高级运动向量预测)方法、帧内块复制方法等的各种方法。
帧内预测模块125可以基于与作为当前图片中的像素信息的当前块相邻的参考像素信息来生成预测单元。在当前预测单元的相邻块是要进行帧间预测的块并且因此参考像素是要进行帧间预测的像素时,可以使用要进行帧内预测的相邻块的参考像素信息来代替包括在要进行帧间预测的块中的参考像素。也就是说,当参考像素不可用时,可以使用可用参考像素中的至少一个参考像素来代替不可用的参考像素信息。
帧内预测中的预测模式可以包括根据预测方向使用参考像素信息的方向预测模式和在执行预测时不使用方向信息的无方向预测模式。用于预测亮度信息的模式可以与用于预测色度信息的模式不同,并且为了预测色度信息,可以利用用于预测亮度信息的帧内预测模式信息或者可以利用预测的亮度信号信息。
在执行帧内预测时,当预测单元的大小与变换单元的大小相同时,可以基于位于该预测单元的左侧、左上侧和顶部的像素对预测单元执行帧内预测。然而,在执行帧内预测时,当预测单元的大小与变换单元的大小不同时,可以使用基于变换单元的参考像素来执行帧内预测。此外,使用N×N划分的帧内预测可以仅用于最小编码单元。
在帧内预测方法中,可以在根据预测模式将AIS(自适应帧内平滑)滤波器应用于参考像素之后生成预测块。应用于参考像素的AIS滤波器的类型可以不同。为了执行帧内预测方法,可以根据与当前预测单元相邻的预测单元的帧内预测模式来预测当前预测单元的帧内预测模式。在通过使用根据相邻预测单元预测到的模式信息来预测当前预测单元的预测模式中,在当前预测单元的帧内预测模式与相邻预测单元的帧内预测模式相同时,可以使用预定的标志信息来传送指示当前预测单元的预测模式与相邻预测单元的预测模式彼此相同的信息。在当前预测单元的预测模式与相邻预测单元的预测模式不同时,可以执行熵编码,以对当前块的预测模式信息进行编码。
此外,可以基于由预测模块120和125生成的预测单元来生成包括关于残差值的信息的残差块,残差值是要进行预测的预测单元与预测单元的原始块之间的差。可以将所生成的残差块输入到变换模块130。
变换模块130可以通过使用诸如离散余弦变换(DCT)、离散正弦变换(DST)和KLT的变换方法来对包括关于原始块与由预测模块120和125生成的预测单元之间的残差值的信息的残差块进行变换。可以基于用于生成残差块的预测单元的帧内预测模式信息来确定是应用DCT、DST还是KLT来对残差块进行变换。
量化模块135可以对由变换模块130变换到频域的值进行量化。量化系数可以根据图片的块或重要性而变化。可以将由量化模块135计算的值提供至逆量化模块140和重排模块160。
重排模块160可以对经量化的残差值的系数进行重排。
重排模块160可以通过系数扫描方法将二维块形式的系数变为一维向量形式的系数。例如,重排模块160可以使用锯齿形扫描方法从DC系数扫描至高频域的系数,以便将系数变为一维向量形式。根据变换单元的大小和帧内预测模式,可以使用沿列方向扫描二维块形式的系数的竖直方向扫描或沿行方向扫描二维块形式的系数的水平方向扫描来代替锯齿形扫描。也就是说,可以根据变换单元的大小和帧内预测模式来确定使用锯齿形扫描、竖直方向扫描和水平方向扫描中的哪种扫描方法。
熵编码模块165可以基于由重排模块160计算的值来执行熵编码。熵编码可以使用各种编码方法,例如,指数哥伦布(Golomb)编码、上下文自适应变长编码(CAVLC)和上下文自适应二进制算术编码(CABAC)。
熵编码模块165可以对来自重排模块160以及预测模块120和125的各种信息例如编码单元的残差值系数信息和块类型信息、预测模式信息、划分单元信息、预测单元信息、变换单元信息、运动向量信息、参考帧信息、块插值信息、滤波信息等进行编码。
熵编码模块165可以对从重排模块160输入的编码单元的系数进行熵编码。
逆量化模块140可以对由量化模块135量化的值进行逆量化,并且逆变换模块145可以对由变换模块130变换的值进行逆变换。可以将由逆量化模块140和逆变换模块145生成的残差值与由预测模块120和125的运动估计模块、运动补偿模块和帧内预测模块预测的预测单元进行组合,使得可以生成重构块。
滤波器模块150可以包括去块滤波器、偏移校正单元以及自适应环路滤波器(ALF)中的至少一个。
去块滤波器可以去除由于重构图片中的块之间的边界而出现的块失真。为了确定是否执行去块,包括在块的若干行或若干列中的像素可以是确定是否对当前块应用去块滤波器的基础。当对块应用去块滤波器时,可以根据所需的去块滤波强度来应用强滤波器或弱滤波器。此外,在应用去块滤波器时,可以并行地处理水平方向滤波和竖直方向滤波。
偏移校正模块可以在要进行去块的图片中以像素为单位校正与原始图片的偏移。为了对特定图片执行偏移校正,可以使用考虑每个像素的边缘信息来施加偏移的方法,或者可以使用下述方法:将图片的像素划分为预定数目的区域、确定要执行偏移的区域,并且对所确定的区域施加偏移。
可以基于通过将经滤波的重构图片与原始图片进行比较而获得的值来执行自适应环路滤波(ALF)。可以将包括在图片中的像素分成预定组,可以确定要应用于每个组的滤波器,并且可以针对每个组单独地执行滤波。可以通过编码单元(CU)传送关于是否应用ALF和亮度信号的信息。用于ALF的滤波器的形状和滤波器系数可以根据每个块而不同。此外,无论应用目标块的特征如何,都可以应用用于ALF的相同形状(固定形状)的滤波器。
存储器155可以存储通过滤波器模块150计算的重构块或重构图片。可以在执行帧间预测时将所存储的重构块或重构图片提供至预测模块120和125。
图2是示出根据本发明的实施方式的用于对视频进行解码的设备的框图。
参照图2,用于对视频进行解码的设备200可以包括:熵解码模块210、重排模块215、逆量化模块220、逆变换模块225、预测模块230和235、滤波器模块240以及存储器245。
当从用于对视频进行编码的设备输入视频比特流时,可以根据用于对视频进行编码的设备的逆过程来对输入比特流进行解码。
熵解码模块210可以根据由用于对视频进行编码的设备的熵编码模块进行的熵编码的逆过程来执行熵解码。例如,对应于由用于对视频进行编码的设备执行的方法,可以应用各种方法,例如指数哥伦布编码、上下文自适应变长编码(CAVLC)和上下文自适应二进制算术编码(CABAC)。
熵解码模块210可以对关于由用于对视频进行编码的设备执行的帧内预测和帧间预测的信息进行解码。
重排模块215可以基于在用于对视频进行编码的设备中使用的重排方法对由熵解码模块210进行熵解码的比特流执行重排。重排模块可以将一维向量形式的系数重构和重排为二维块形式的系数。重排模块215可以接收与在用于对视频进行编码的设备中执行的系数扫描有关的信息,并且可以基于在用于对视频进行编码的设备中执行的扫描顺序经由对系数进行逆扫描的方法来执行重排。
逆量化模块220可以基于从用于对视频进行编码的设备接收的量化参数和经重排的块的系数来执行逆量化。
逆变换模块225可以执行逆变换,即,逆DCT、逆DST和逆KLT,这是由变换模块对用于对视频进行编码的设备的量化结果执行的变换即DCT、DST和KLT的逆过程。可以基于由用于对视频进行编码的设备所确定的变换单元来执行逆变换。用于对视频进行解码的设备的逆变换模块225可以根据多条信息例如预测方法、当前块的大小、预测方向等来选择性地执行变换方案(例如,DCT、DST、KLT)。
预测模块230和235可以基于从熵解码模块210接收到的关于预测块生成的信息和从存储器245接收到的图片信息或先前解码的块来生成预测块。
如上所述,类似于用于对视频进行编码的设备的操作,在执行帧内预测时,当预测单元的大小与变换单元的大小相同时,可以基于位于预测单元的左侧、左上侧和顶部的像素对预测单元执行帧内预测。在执行帧内预测时,当预测单元的大小与变换单元的大小不同时,可以使用基于变换单元的参考像素来执行帧内预测。此外,使用N×N划分的帧内预测可以仅用于最小编码单元。
预测模块230和235可以包括预测单元确定模块、帧间预测模块以及帧内预测模块。预测单元确定模块可以从熵解码模块210接收各种信息例如预测单元信息、帧内预测方法的预测模式信息、关于帧间预测方法的运动预测的信息等,可以将当前编码单元分成预测单元,并且可以确定对预测单元执行帧间预测还是帧内预测。通过使用从用于对视频进行编码的设备接收的当前预测单元的帧间预测所需的信息,帧间预测模块230可以基于包括当前预测单元的当前图片的先前图片或后续图片中的至少一个的信息来对当前预测单元执行帧间预测。可替选地,可以基于包括当前预测单元的当前图片中的一些预先重构区域的信息来执行帧间预测。
为了执行帧间预测,可以针对编码单元来确定将跳过模式、合并模式、AMVP模式和帧间块复制模式中的哪一个用作包括在编码单元中的预测单元的运动预测方法。
帧内预测模块235可以基于当前图片中的像素信息来生成预测块。当预测单元是要进行帧内预测的预测单元时,可以基于从用于对视频进行编码的设备接收到的预测单元的帧内预测模式信息来执行帧内预测。帧内预测模块235可以包括自适应帧内平滑(AIS)滤波器、参考像素插值模块以及DC滤波器。AIS滤波器对当前块的参考像素执行滤波,并且可以根据当前预测单元的预测模式来确定是否应用滤波器。可以通过使用从用于对视频进行编码的设备接收到的预测单元的预测模式和AIS滤波器信息来对当前块的参考像素执行AIS滤波。在当前块的预测模式是不执行AIS滤波的模式时,可以不应用AIS滤波器。
当预测单元的预测模式是基于通过对参考像素进行插值而获得的像素值来执行帧内预测的预测模式时,参考像素插值模块可以对参考像素进行插值,以生成整像素或小于整像素的参考像素。在当前预测单元的预测模式是在没有对参考像素进行插值的情况下生成预测块的预测模式时,可以不对参考像素进行插值。在当前块的预测模式是DC模式时,DC滤波器可以通过滤波来生成预测块。
可以将重构块或重构图片提供至滤波器模块240。滤波器模块240可以包括去块滤波器、偏移校正模块以及ALF。
可以从用于对视频进行编码的设备接收关于是否将去块滤波器应用于相应的块或图片的信息、以及关于在应用去块滤波器时应用强滤波器和弱滤波器中的哪个滤波器的信息。用于对视频进行解码的设备的去块滤波器可以从用于对视频进行编码的设备接收关于去块滤波器的信息,并且可以对相应的块执行去块滤波。
偏移校正模块可以基于在执行编码时应用于图片的偏移校正的类型和偏移值信息来对重构图片执行偏移校正。
可以基于从用于对视频进行编码的设备接收到的关于是否应用ALF的信息和ALF系数信息等来将AFL应用于编码单元。ALF信息可以被提供为被包括在特定参数集中。
存储器245可以存储重构图片或重构块以用作参考图片或参考块,并且可以将重构图片提供至输出模块。
如上面描述的,在本发明的实施方式中,为了便于说明,编码单元被用作表示用于编码的单元的术语,然而,编码单元可以用作执行解码以及编码的单元。
另外,当前块可以表示要进行编码/解码的目标块。并且,依赖于编码/解码步骤,当前块可以表示编码树块(或编码树单元)、编码块(或编码单元)、变换块(或变换单元)、预测块(或预测单元)等。
可以通过将图片划分成具有正方形或非正方形形状的基本块来对图片进行编码/解码。此时,基本块可以称为编码树单元。编码树单元可以被定义为序列或片内允许的最大大小的编码单元。可以通过序列参数集、图片参数集或片头(slice header)来用信号发送关于编码树单元是具有正方形形状还是具有非正方形形状的信息或者关于编码树单元的大小的信息。编码树单元可以被划分成更小大小的划分。此时,如果假设通过划分编码树单元而生成的划分深度是1,则通过划分具有深度1的划分而生成的划分深度可以被定义为2。即,通过划分编码树单元中的深度为k的划分而生成的划分可以被定义为具有深度k+1。
通过划分编码树单元而生成的任意大小的划分可以被定义为编码单元。编码单元可以被递归地划分或划分成用于执行预测、量化、变换或环路滤波等的基本单元。例如,通过划分编码单元而生成的任意大小的划分可以被定义为编码单元,或者可以被定义为变换单元或预测单元,该编码单元、变换单元或预测单元是用于执行预测、量化、变换或环路滤波等的基本单元。
可以基于竖直线和水平线中的至少之一来执行编码树单元或编码单元的划分。另外,划分编码树单元或编码单元的竖直线或水平线的数量可以是至少一个或更多个。例如,可以使用一个竖直线或一个水平线将编码树单元或编码单元划分成两个划分,或者可以使用两个竖直线或两个水平线将编码树单元或编码单元划分成三个划分。替选地,可以通过使用一个竖直线和一个水平线将编码树单元或编码单元划分成具有1/2的长度和宽度的四个划分。
在使用至少一个竖直线或至少一个水平线将编码树单元或编码单元划分为多个划分时,划分可具有统一的大小或不同的大小。替选地,任何一个划分可以具有与其余划分不同的大小。
在下面描述的实施方式中,假设编码树单元或编码单元被划分成四叉树结构或二叉树结构。然而,还可以使用更多数量的竖直线或更多数量的水平线来划分编码树单元或编码单元。
图3是示出根据本发明的实施方式的基于树结构对编码块进行分层划分的示例的图。
以预定的块单元对输入视频信号进行解码。用于对输入视频信号进行解码的这样的默认单元是编码块。编码块可以是执行帧内/帧间预测、变换以及量化的单位。另外,以编码块为单位确定预测模式(例如,帧内预测模式或帧间预测模式),并且包括在编码块中的预测块可以共享所确定的预测模式。编码块可以是具有在8×8至64×64范围内的任意大小的正方形块或非正方形块,或者可以是具有128×128、256×256或更大的大小的正方形块或非正方形块。
具体地,可以基于四叉树和二叉树中的至少一个来对编码块进行分层划分。此处,基于四叉树的划分可以意指将2N×2N的编码块划分成四个N×N的编码块,并且基于二叉树的划分可以意指将一个编码块划分成两个编码块。即使执行基于二叉树的划分,也可以在较低深度中存在正方形形状的编码块。
可以对称地或者非对称地执行基于二叉树的划分。基于二叉树划分的编码块可以是正方形块或非正方形块,例如长方形形状。例如,允许基于二叉树的划分的划分类型可以包括2N×N(水平方向非正方形编码单元)或N×2N(竖直方向非正方形编码单元)的对称类型、nL×2N、nR×2N、2N×nU或2N×nD的非对称类型中的至少之一。
可以将基于二叉树的划分限制地允许为对称类型划分或非对称类型划分中的之一。在这种情况下,使用正方形块构造编码树单元可以与四叉树CU划分对应,并且使用对称非正方形块构造编码树单元可以与二叉树划分对应。使用正方形块和对称非正方形块构造编码树单元可以与四叉树CU划分和二叉树CU划分对应。
可以对不再执行基于四叉树的划分的编码块执行基于二叉树的划分。可以不再对基于二叉树划分的编码块执行基于四叉树的划分。
此外,可以依赖于较高深度的划分类型来确定较低深度的划分。例如,如果在两个或更多个深度中允许基于二叉树的划分,则可以在较低深度中仅允许与较高深度的二叉树划分相同的类型。例如,如果使用2N×N类型执行较高深度中的基于二叉树的划分,则也使用2N×N类型执行较低深度中的基于二叉树的划分。替选地,如果使用N×2N类型执行较高深度中的基于二叉树的划分,则也使用N×2N类型执行较低深度中的基于二叉树的划分。
相比之下,也可以在较低深度中仅允许与较高深度的二叉树划分类型不同的类型。
可以限制仅特定类型的基于二叉树的划分被用于序列、片、编码树单元或编码单元。作为示例,对于编码树单元,可以仅允许2N×N类型或N×2N类型的基于二叉树的划分。可以在编码器或解码器中预定义可用划分类型。或者可以对关于可用划分类型的信息或关于不可用划分类型的信息进行编码,并且然后通过比特流用信号发送该信息。
图5是示出仅允许特定类型的基于二叉树的划分的示例的图。图5的(a)示出了仅允许N×2N类型的基于二叉树的划分的示例,并且图5的(b)示出了仅允许2N×N类型的基于二叉树的划分的示例。为了实现基于四叉树或二叉树的自适应划分,可以使用下述信息:指示基于四叉树划分的信息、关于允许基于四叉树的划分的编码块的大小/深度的信息、指示基于二叉树的划分的信息、关于允许基于二叉树的划分的编码块的大小/深度的信息、关于不允许基于二叉树的划分的编码块的大小/深度的信息、关于是沿竖直方向还是沿水平方向执行基于二叉树的划分的信息等。
另外,可以针对编码树单元或特定编码单元获得以下信息:所述信息关于允许二叉树划分的次数、允许二叉树划分的深度或允许二叉树划分的深度的数量。可以以编码树单元或编码单元为单位对信息进行编码,并且可以通过比特流将该信息传输至解码器。
例如,可以通过比特流对指示允许二叉树划分的最大深度的语法“max_binary_depth_idx_minus1”进行编码/解码。在这种情况下,max_binary_depth_idx_minus1+1可以指示允许二叉树划分的最大深度。
参照图6中所示的示例,在图6中,已经针对深度为2的编码单元和深度为3的编码单元执行了二叉树划分。因此,可以通过比特流对指示编码树单元中的二叉树划分已经被执行的次数(即,2次)的信息、指示在编码树单元中已经允许二叉树划分的最大深度(即,深度3)或在编码树单元中已经执行二叉树划分的深度的数量(即,2个(深度2和深度3))的信息中的至少之一进行编码/解码。
作为另一示例,可以针对每个序列或每个片获得关于允许二叉树划分的次数、允许二叉树划分的深度或允许二叉树划分的深度的数量的信息中的至少之一。例如,该信息可以以序列、图片或片单元为单位进行编码,并且通过比特流进行传输。因此,第一片中的二叉树划分的次数、第一片中允许二叉树划分的最大深度或第一片中执行二叉树划分的深度的数量中的至少之一可以与第二片不同。例如,在第一片中,可以仅针对一个深度允许二叉树划分,而在第二片中,可以针对两个深度允许二叉树划分。
作为另一示例,可以根据片或图片的时间水平标识符(TemporalID)不同地设置允许二叉树划分的次数、允许二叉树划分的深度或允许二叉树划分的深度的数量。此处,时间水平标识符(TemporalID)用于识别具有视图、空间、时间或质量中的至少之一的可扩展性的多个视频层中的每一个。
如图3中所示,可以基于四叉树将划分深度(拆分深度)为k的第一编码块300划分成多个第二编码块。例如,第二编码块310至340可以是具有第一编码块的一半宽度和一半高度的正方形块,并且第二编码块的划分深度可以增加至k+1。
划分深度为k+1的第二编码块310可以被划分成划分深度为k+2的多个第三编码块。可以通过依赖于划分方法选择性地使用四叉树和二叉树中的之一来执行第二编码块310的划分。此处,可以基于指示基于四叉树划分的信息和指示基于二叉树划分的信息中的至少之一来确定划分方法。
在基于四叉树对第二编码块310进行划分时,可以将第二编码块310划分成具有第二编码块的一半宽度和一半高度的四个第三编码块310a,并且第三编码块310a的划分深度可以增加至k+2。相比之下,在基于二叉树对第二编码块310进行划分时,可以将第二编码块310划分成两个第三编码块。此处,两个第三编码块中的每一个可以是具有第二编码块的一半宽度和一半高度中的一者的非正方形块,并且划分深度可以增加至k+2。可以依赖于划分方向将第二编码块确定为水平方向或竖直方向的非正方形块,并且可以基于关于是沿竖直方向还是沿水平方向执行基于二叉树的划分的信息来确定划分方向。
同时,第二编码块310可以被确定为不再基于四叉树或二叉树进行划分的叶编码块。在这种情况下,叶编码块可以被用作预测块或变换块。
类似于第二编码块310的划分,第三编码块310a可以被确定为叶编码块,或者可以基于四叉树或二叉树被进一步划分。
同时,可以基于二叉树将基于二叉树划分的第三编码块310b进一步划分成竖直方向的编码块310b-2或水平方向的编码块310b-3,相关编码块的划分深度可以增加至k+3。替选地,第三编码块310b可以被确定为不再基于二叉树进行划分的叶编码块310b-1。在这种情况下,编码块310b-1可以被用作预测块或变换块。然而,可以基于以下信息中的至少之一来限制性地执行上述划分处理:关于允许基于四叉树的划分的编码块的大小/深度的信息、关于允许基于二叉树的划分的编码块的大小/深度的信息以及关于不允许基于二叉树的划分的编码块的大小/深度的信息。
表示编码块的大小的候选的数量可以被限制为预定数量,或者预定单元中的编码块的大小可以具有固定值。作为示例,序列或图片中的编码块的大小可以被限制为具有256×256、128×128或32×32。可以通过序列头或图片头来用信号发送指示序列中或图片中的编码块的大小的信息。
作为基于四叉树和二叉树的划分的结果,编码单元可以被表示为任意大小的正方形或矩形形状。
使用跳过模式、帧内预测、帧间预测或跳过方法中的至少之一来对编码块进行编码。一旦确定了编码块,就可以通过对编码块的预测划分来确定预测块。可以通过指示编码块的划分类型的划分模式(Part_mode)来执行对编码块的预测划分。可以根据编码块的划分模式来确定预测块的大小或形状。例如,根据划分模式确定的预测块的大小可以等于或小于编码块的大小。
图7是示出在通过帧间预测对编码块进行编码时可以应用于编码块的划分模式的图。
在通过帧间预测对编码块进行编码时,可以将8个划分模式中的之一应用于编码块,如图4中所示的示例。
在通过帧内预测对编码块进行编码时,可以将划分模式PART_2N×2N或划分模式PART_N×N应用于编码块。
在编码块具有最小大小时,可以应用PART_N×N。此处,可以在编码器和解码器中预定义编码块的最小大小。或者,可以经由比特流用信号发送关于编码块的最小大小的信息。例如,可以通过片头来用信号发送编码块的最小大小,使得可以针对每个片定义编码块的最小大小。
通常,预测块可以具有从64×64至4×4的大小。然而,在通过帧间预测对编码块进行编码时,可以限制预测块不具有4×4大小以在执行运动补偿时减小存储器带宽。
图8是示出根据本发明的实施方式的获得残差样本的过程的流程图。
首先,可以获得当前块的残差系数S810。解码器可以通过系数扫描方法获得残差系数。例如,解码器可以使用对角扫描、锯齿形扫描、右上扫描(up-right)、竖直扫描或者水平扫描来执行系数扫描,并且从而获得二维块形状的残差系数。
可以针对当前块的残差系数执行逆量化S820。
可以确定是否跳过对当前块的解量化的残差系数的逆变换S830。具体地,解码器可以确定是否跳过在当前块的水平方向或竖直方向中的至少一个方向上的逆变换。在确定在当前块的水平方向或竖直方向中的至少一个方向上应用逆变换时,可以通过对当前块的解量化的残差系数进行逆变换来获得当前块的残差样本S840。此处,可以使用DCT、DST和KLT中的至少之一来执行逆变换。
在当前块的水平方向和竖直方向二者上均跳过逆变换时,不在当前块的水平方向和竖直方向上执行逆变换。在这种情况下,可以通过使用预定值对解量化的残差系数进行缩放来获得当前块的残差样本S850。
跳过在水平方向上的逆变换意味着不在水平方向上执行逆变换,而是在竖直方向上执行逆变换。此时,可以在水平方向上执行缩放。
跳过竖直方向上的逆变换意味着不在竖直方向上执行逆变换,而是在水平方向上执行逆变换。此时,可以在竖直方向上执行缩放。
可以依赖于当前块的划分类型来确定是否可以针对当前块使用逆变换跳过技术。例如,如果通过基于二叉树的划分生成当前块,则可以针对当前块限制逆变换跳过方案。因此,在通过基于二叉树的划分生成当前块时,可以通过对当前块进行逆变换来获得当前块的残差样本。另外,在通过基于二叉树的划分生成当前块时,可以省略对指示是否跳过逆变换的信息(例如,transform_skip_flag)进行的编码/解码。
替选地,在通过基于二叉树的划分生成当前块时,可以将逆变换跳过方案限制到水平方向或竖直方向中的至少一个方向。此处,可以基于从比特流解码的信息来确定逆变换跳过方案被限制的方向,或者可以基于当前块的大小、当前块的形状或当前块的帧内预测模式中的至少之一来自适应地确定逆变换跳过方案被限制的方向。
例如,在当前块是宽度大于高度的非正方形块时,可以仅在竖直方向上允许逆变换跳过方案并且在水平方向上限制逆变换跳过方案。即,在当前块是2N×N时,在当前块的水平方向上执行逆变换,并且可以在竖直方向上选择性地执行逆变换。
另一方面,在当前块是高度大于宽度的非正方形块时,可以仅在水平方向上允许逆变换跳过方案并且在竖直方向上限制逆变换跳过方案。即,在当前块是N×2N时,在当前块的竖直方向上执行逆变换,并且可以在水平方向上选择性地执行逆变换。
与上述示例相比,在当前块是宽度大于高度的非正方形块时,可以仅在水平方向上允许逆变换跳过方案,并且在当前块是高度大于宽度的非正方形块时,可以仅在竖直方向上允许逆变换跳过方案。
可以通过比特流用信号发送指示是否针对水平方向跳过逆变换的信息或者指示是否针对竖直方向跳过逆变换的信息。例如,指示是否跳过水平方向上的逆变换的信息是1比特标志“hor_transform_skip_flag”,并且指示是否跳过竖直方向上的逆变换的信息是1比特标志“ver_transform_skip_flag”。编码器可以根据当前块的形状对“hor_transform_skip_flag”或“ver_transform_skip_flag”中的至少之一进行编码。此外,解码器可以通过使用“hor_transform_skip_flag”或“ver_transform_skip_flag”中的至少之一来确定是否跳过水平方向或竖直方向上的逆变换。
可以设置成:依赖于当前块的划分类型跳过对当前块的任何一个方向的逆变换。例如,如果通过基于二叉树的划分生成当前块,则可以跳过水平方向或竖直方向上的逆变换。即,如果通过基于二叉树的划分生成当前块,则可以在不对指示是否跳过当前块的逆变换的信息(例如,transform_skip_flag、hor_transform_skip_flag、ver_transform_skip_flag)进行编码/解码的情况下,确定在水平方向或竖直方向中的至少一个方向上跳过当前块的逆变换。
如果确定将对当前块应用逆变换,则可以确定变换类型,并且可以使用所确定的变换类型来执行逆变换。可以基于当前块的大小或者编码模式中的至少一个来确定当前块(例如,变换块或者编码块)的变换类型。此处,编码模式可以指示对应于编码块或者变换块的预测块是以帧内模式还是帧间模式来编码。
例如,可以通过使用DST(具体地,DST-VII)来执行针以帧内模式编码的4×4的块的逆变换,并且可以通过使用DCT(具体地,DCT-II)来执行针对除了所述块之外的块的逆变换。
DST-VII可以被定义成式1的矩阵A
[式1]
用于8×8块的DCT-II可以被定义成式2的矩阵T
[式2]
可以以序列、片或者块为单位不同地设置用于选择变换类型的条件。例如,在片0中,DST被应用于以帧内模式编码的4×4的变换块,而在片0中,DST被应用于以帧内模式编码的8×8或者更小的变换块。
作为另一示例,可以基于当前块的帧内预测模式或者当前块中包括的样本的数量中的至少一个来自适应地确定当前块的变换类型。此时,用作用于选择变换类型的参考的样本的数量可以具有固定值,或者可以通过经由比特流用信号发送的信息来确定。可以经由块级别、片头或者图片参数集来用信号发送该信息。
例如,可以仅在当前块包括16个或更少样本的情况下并且在当前块以帧内模式进行编码的情况下应用DST,并且在其他情况下可以应用DCT。具体地,DST可以应用于通过帧内预测编码的4×4、2×8或者8×2的块,并且DCT可以应用于除所述块之外的块。
可替选地,可以根据在变换集中包括的变换集候选来确定当前块的变换类型。此时,可以以编码块或者变换块为单位来使用不同的变换集。可替选地,包括在预定编码块中的多个变换块可以共享相同的变换集。为了确定变换集,可以以编码块或者变换块为单位用信号发送用于识别变换集的索引信息。可替选地,可以根据当前块的大小、形状、编码模式、帧内预测模式、样本数量等自适应地确定当前块的变换集。
变换集可以包括可以根据变换块(或者编码块)的形状、大小或者样本数量选择性地使用的多个变换类型候选。此时,在变换集中包括的变换类型候选的数量或者类型中的至少一个可以是不同的。
表1是描绘包括不同变换类型候选的变换集的图表。
[表1]
在表1中,示出了包括在变换集中的变换类型候选的数量是2。变换集还可以包括一个、三个、四个或者更多个变换类型候选。
另外,包括在变换集中的至少一个中的变换类型候选的数量可以与包括在另一个变换集中的变换类型候选的数量不同。可以在片头或序列头中用信号发送包括在变换集中的最大变换类型候选的数量。
可以将当前块的变换类型确定为包括在变换集中的变换类型候选中的至少一个。此时,可以基于变换块或者编码块的大小、编码模式、帧内预测模式、样本数量等来确定变换块的变换类型。此处,变换块的帧内预测模式可以是与变换块对应的预测块或者编码块的帧内预测模式。
例如,在变换集索引0被确定为当前块的变换集的情况下,如果当前块是以帧内模式编码的4×4块,则使用变换类型候选0,即DST-VII;并且如果当前块不满足上述条件,则使用变换类型候选1,即DCT-II。
可替选地,在变换集索引2被确定为当前块的变换集的情况下,如果当前块是帧内模式编码的4×4或者8×8块,则应用变换类型候选0,即DST-VII;并且如果当前块不满足上述条件,则使用变换类型候选1,即DCT-VIII。
根据编码块的大小,可以不同地设置用于选择变换块的变换类型候选的条件。例如,当编码块的大小小于或等于32×32时,变换类型候选0被应用于以帧内模式编码的4×4的变换块,并且变换类型候选1被应用于不满足上述条件的变换块。另一方面,当编码块的大小大于32×32时,变换类型候选0被应用于以帧内模式编码的4×4或8×8的块,并且变换类型候选1被应用至不满足上述条件的变换块。
变换类型候选可以包括指示不执行变换的变换跳过。根据是否允许变换跳过,可以不同地设置包括在变换集中的变换类型候选的类型或者数量中的至少一个。作为示例,如果指示在图片中是否允许变换跳过的transform_skip_enabled_flag为1,则可以使用进一步包括变换跳过作为变换类型候选的变换集,如表2所示。另一方面,如果transform_skip_enabled_flag为0,则可以使用不包括变换跳过的作为变换类型候选的变换集,如表1所示。
[表2]
当前块的水平变换和竖直变换的变换类型可以相同,或者水平变换和竖直变换的变换类型可以彼此不同。例如,可以将变换集中的变换类型候选应用于水平变换和竖直类型二者,或者可以将不同的变换类型候选应用于水平变换和竖直类型中的每一个。
作为另一个示例,当前块的水平变换和竖直变换的变换集可以是相同的,或者水平变换和竖直变换的变换集可以彼此不同。当针对水平变换和竖直变换使用不同的变换集时,可以单独地用信号发送用于识别水平变换的变换集的变换集索引和用于识别竖直变换的变换集的变换集索引。
例如,对应于索引0的变换集可以被用于水平变换,并且对应于索引1的变换集可以被用于竖直变换。如果当前块是用帧内预测编码的4×4的块,则竖直变换和水平变换可以使用在每个变换集中包括的变换类型候选1。因此,DST-II可以用于水平变换,并且DST-I可以用于竖直变换。
可以根据当前块的帧内预测模式确定是否将相同的变换集用于水平变换和竖直变换。为了便于说明,将用于水平变换的变换集称为水平方向变换集,并且将用于竖直变换的变换集称为竖直方向变换集。
例如,在当前块的帧内预测模式类似于水平方向或者类似于竖直方向的情况下,水平变换和竖直变换可使用不同变换集。此处,类似于水平方向的帧内预测模式可以包括竖直方向或者与竖直方向的帧内预测模式的模式值差异小于预定义值的帧内预测模式中的至少一个。此外,类似于竖直方向的帧内预测模式可以包括水平方向或者与水平方向的帧内预测模式的模式值差异小于预定义值的帧内预测模式中的至少一个。另一方面,在当前块的帧内预测模式是非方向性模式或者不满足上述条件的方向性模式的情况下,竖直变换和水平变换可以使用相同的变换集。可替选地,在当前块的帧内预测模式是非方向性模式的情况下,还可以针对当前块的竖直方向和水平变换使用不同的变换集。
图9是示出针对33种帧内预测模式竖直变换和水平变换是否使用相同的变换集的图。在图9示出的示例中,描绘了在当前块的帧内预测模式包括在7至13或者23至29的范围内的情况下,竖直变换和水平变换使用不同的变换集。另一方面,描述了在当前块的帧内预测模式是不包括在上述范围中的方向性模式的情况下,将相同的变换集应用于竖直变换和水平变换。
如果在预定单元块中存在具有与当前块相同的帧内预测模式的块,则可以将当前块的变换集设置为与具有与当前块相同的帧内预测模式的块的变换集相同。此处,预定单元块可以是编码块、编码树块或者具有预定大小的块。
例如,假设与编码块中的扫描顺序中的第一变换块对应的帧内预测模式具有竖直方向(例如,模式编号26),该块的水平方向变换集是索引2,并且该块的竖直方向变换集是索引0。如果在编码块中存在具有竖直方向的帧内预测模式的更多变换块(即,与具有竖直方向的帧内预测模式的预测块对应的变换块),则针对新扫描的变换块不用信号发送变换集索引值。相反,具有竖直方向的帧内预测模式的先前扫描的变换块的变换集被应用为新扫描的变换块的变换集。也就是说,新扫描的变换块的水平方向变换集被确定为索引2,并且竖直方向变换集被确定为索引0。
作为另一示例,当在预定单元块中存在具有与当前块类似的帧内预测模式的块时,可以将当前块的变换集设置成与具有与当前块类似的帧内预测模式的块的变换集相同。此处,与当前块类似的帧内预测模式可以包括距参考帧内预测模式在预定范围内的帧内预测模式。例如,当参考帧内预测模式是水平方向或者竖直方向时,可以确定参考帧内预测模式和距离水平方向或竖直方向的帧内预测模式在±a内的帧内预测模式是相互类似的。
例如,假设与编码块中的扫描顺序中的第一变换块对应的帧内预测模式具有竖直方向(例如,模式编号26),该块的水平方向变换集是索引2,并且该块的竖直方向变换集是索引0。当在编码块中存在具有与竖直方向类似的帧内预测模式(例如,模式编号27)的变换块(即,与具有竖直帧内预测模式的预测块对应的变换块)时,可以针对新扫描的变换块不用信号发送变换集索引值。相反,具有与当前块的帧内预测模式类似的帧内预测模式的变换块的变换集可以被应用为新扫描的变换块的变换集。也就是说,新扫描的变换块的水平方向变换集被确定为索引2,并且竖直方向变换集可以被确定为索引0。
可以基于当前块的帧内预测模式来确定当前块的水平方向变换集或者竖直方向变换集中的至少一个。例如,表3示出了根据当前块的帧内预测模式分配固定变换集索引的示例。
[表3]
当用帧间预测对当前块进行编码时,可以将预定义的变换集用于当前块。例如,如果用帧间预测对当前块进行编码,则可以将对应于索引0的变换集用于当前块。
可替选地,当用帧间预测对编码块进行编码时,针对编码块来选择变换集,并且包括在编码块中的变换块可以使用包括在编码块的变换集中的变换类型候选。此时,可以通过变换块的大小或者形状来确定每个变换块的变换类型,或者可以通过比特流来用信号发送用于识别为每个变换块选择的变换类型的信息。
将多个变换类型候选组中的至少一个确定为当前块的变换类型可以被定义为AMT(自适应多变换)。自适应多变换(AMT)可以应用于特定大小的编码块或特定形状的编码块。此时,可以通过比特流用信号发送关于可以应用自适应多变换的编码块的大小或形状的信息。此处,关于编码块的大小的信息可以指示最大大小或者最小大小中的至少一个。另外,可以通过块级别、片头或序列头中的至少一个来用信号发送该信息。
可以以片或块为单位基于不同大小/形状来选择性地使用不同的变换。
例如,在片0中,在以帧内预测模式编码变换块并且变换块的大小是4×4时可以使用DST,并且在其他情况下可以使用DCT。在片1中,在以帧内预测模式编码变换块并且变换块的大小小于或等于8×8时可以使用DST,并且在其他情况下可以使用DCT。
可以基于帧内预测模式和变换块中的样本数量中的至少一个来选择不同的变换。具体地,例如,在以帧内预测模式编码变换块并且变换块中的样本数量为16或者更少时,可以使用DST执行变换,并且可以在其他块中使用DCT。
具体地,例如,当以帧内模式编码变换块并且变换块为2×8时、或者当以帧内模式编码变换块并且变换块为8×2时,使用DST(离散正弦变换),并且在其他块中使用DCT-II(离散余弦变换)。
此时,可以在片头或图片参数集中用信号发送指示用作用于选择不同变换的参考的块中的样本数量的语法即不同类型变换块选择指示符。
用于选择变换类型候选0的条件和用于选择变换类型候选1的条件可以以序列、片或者块为单位而不同。例如,在片0中,仅针对以帧内模式编码的4×4的变换块选择变换类型候选0,而在片0中,针对以帧内模式编码的8×8或者更小的变换块选择变换类型0。
可替选地,可以基于帧内预测模式或者块中的样本数量中的至少一个来自适应地选择变换类型。此时,在用作用于选择变换类型的参考的块中的样本的数量可以具有固定值,或者可以通过经由比特流用信号发送的信息来确定。可以经由块级别、片头或图片参数集来用信号发送该信息。
例如,可以仅在当前块包括16个或者更少样本的情况下并且在以帧内模式对当前块进行编码的情况下应用DST,并且在其他情况下可以应用DCT。具体地,DST可以应用于以帧内预测编码的4×4、2×8或者8×2的变换块,并且DCT可以应用于其他块。
尽管已经基于一系列步骤或流程图描述了上述实施方式,但是它们不限制本发明的时序顺序,并且可以根据需要同时或以不同顺序执行。此外,构成上述实施方式中的框图的部件(例如,单元、模块等)中的每个可以由硬件装置或软件以及多个部件来实现。或者,可以通过单个硬件装置或软件来组合并实现多个部件。上述实施方式可以以程序指令的形式实现,所述程序指令可以通过各种计算机部件执行并被记录在计算机可读记录介质中。计算机可读记录介质可以包括程序命令、数据文件、数据结构等之一或其组合。计算机可读介质的示例包括诸如硬盘、软盘和磁带的磁介质、诸如CD-ROM和DVD的光学记录介质、诸如光磁软盘的磁光介质、介质和专门被配置成存储和执行程序指令的硬件装置例如ROM、RAM、闪存等。硬件装置可以被配置成作为一个或更多个软件模块来进行操作以用于执行根据本发明的处理,反之亦然。
工业应用性
本发明可以应用于能够对视频进行编码/解码的电子装置。
根据上述描述可知,本发明的实施例还公开了以下技术方案,包括但不限于:
方案1.一种用于对视频进行解码的方法,所述方法包括:
获得当前块的变换系数;
对所述变换系数进行逆量化;
确定所述当前块的变换集,所述变换集包括多个变换类型候选;
将所述多个变换类型候选中的一个确定为所述当前块的变换类型;以及
基于所确定的变换类型对逆量化的变换系数进行逆变换。
方案2.根据方案1所述的方法,其中,基于通过比特流解码的索引信息来确定所述当前块的所述变换集,并且所述索引信息指示多个变换集中的至少一个变换集。
方案3.根据方案2所述的方法,其中,所述多个变换集中的每个变换集的变换类型候选的类型或者数量中的至少之一是不同的。
方案4.根据方案1所述的方法,其中,根据是否允许变换跳过来不同地确定包括在所述变换集中的变换类型候选的类型或者数量中的至少之一。
方案5.根据方案1所述的方法,其中,所述逆变换包括水平变换和竖直变换,并且独立地确定用于所述水平变换的变换集和用于所述竖直变换的变换集。
方案6.根据方案5所述的方法,其中,根据所述当前块的帧内预测模式确定用于所述水平变换的变换集和用于所述竖直变换的变换集。
方案7.根据方案1所述的方法,其中,基于所述当前块的大小、形状或者样本数量中的至少之一来自适应地确定所述当前块的变换类型。
方案8.一种用于对视频进行编码的方法,所述方法包括:
获得当前块的变换系数;
对所述变换系数进行逆量化;
确定所述当前块的变换集,所述变换集包括多个变换类型候选;
将所述多个变换类型候选中的一个确定为所述当前块的变换类型;以及
基于所确定的变换类型对逆量化的变换系数进行逆变换。
方案9.根据方案8所述的方法,其中,基于指示多个变换集中的至少一个变换集的索引信息来确定所述当前块的所述变换集。
方案10.根据方案9所述的方法,其中,所述多个变换集中的每个变换集的变换类型候选的类型或者数量中的至少之一是不同的。
方案11.根据方案8所述的方法,其中,根据是否允许变换跳过来不同地确定包括在所述变换集中的变换类型候选的类型或者数量中的至少之一。
方案12.根据方案8所述的方法,其中,所述逆变换包括水平变换和竖直变换,并且独立地确定用于所述水平变换的变换集和用于所述竖直变换的变换集。
方案13.根据方案12所述的方法,其中,根据所述当前块的帧内预测模式确定用于所述水平变换的变换集和用于所述竖直变换的变换集。
方案14.根据方案8所述的方法,其中,基于所述当前块的大小、形状或者样本数量中的至少之一来自适应地确定所述当前块的变换类型。
方案15.一种用于对视频进行解码的装置,所述装置包括:
熵解码单元,其用于对当前块的变换系数进行解码;
逆量化单元,其用于对所述变换系数进行逆量化;以及
逆变换单元,其用于确定所述当前块的变换集,所述变换集包括多个变换类型候选;用于将所述多个变换类型候选中的一个变换类型候选确定为所述当前块的变换类型;以及用于基于所确定的变换类型对逆量化的变换系数进行逆变换。
方案16.一种用于解码图像的方法可以包括:
产生当前块的空间合并候选的步骤;
基于空间合并候选创建当前块的合并候选列表的步骤;
基于合并候选列表获得当前块的运动信息的步骤;以及
通过使用运动信息对当前块执行运动补偿的步骤,
其中,如果当前块不是预定义形状或者不是等于或大于预定义大小,则基于包括当前块的是预定义形状或者等于或大于预定义大小的块来产生当前块的空间合并候选。
- 用于对分割块进行编码的视频编码方法、用于对分割块进行解码的视频解码方法以及用于实施上述方法的记录媒体
- 用于对分割块进行编码的视频编码方法、用于对分割块进行解码的视频解码方法以及用于实施上述方法的记录媒体