用于处理视频信号的方法和设备
文献发布时间:2023-06-19 09:29:07
技术领域
本发明涉及用于处理视频信号的方法和设备。
背景技术
近来,在各种应用领域中对高分辨率和高品质图像例如高清晰度(HD)图像和超高清晰度(UHD)图像的需求已经增加。然而,与常规图像数据相比,较高的分辨率和品质的图像数据具有增加的数据量。因此,当通过使用介质例如常规的有线和无线宽带网络传送图像数据时,或者当通过使用常规的存储介质存储图像数据时,传送和存储的成本增加。为了解决随着图像数据的分辨率和品质的提高而出现的这些问题,可以利用高效的图像编码/解码技术。
图像压缩技术包括各种技术,包括:根据当前图片的先前图片或后续图片来预测包括在当前图片中的像素值的帧间预测技术;通过使用当前图片中的像素信息预测包括在当前图片中的像素值的帧内预测技术;将短码分配给具有高出现频率的值并且将长码分配给具有低出现频率的值的熵编码技术等。图像数据可以通过使用这样的图像压缩技术有效地压缩,并且可以传送或存储。
同时,随着对高分辨率图像的需求,也增加了对作为新的图像服务的立体图像内容的需求。用于有效地提供具有高分辨率和超高分辨率的立体图像内容的视频压缩技术正被研讨。
发明内容
本发明提供了用于在对视频信号进行编码/解码时对编码/解码目标块有效地执行帧内预测的方法和设备。
本发明提供了用于在对视频信号进行编码/解码时使用宽角度帧内预测模式来执行帧内预测的方法和设备。
本发明提供了用于在对视频信号进行编码/解码时使用右侧参考样本和下侧参考样本执行帧内预测的方法和设备。
本发明提供了一种用于在对视频信号进行编码/解码时在考虑帧内预测模式的正向和反向两者的情况下执行帧内预测的方法和设备。
能够从本发明获得的技术问题不限于以上提及的技术任务,并且本发明所属的技术领域的普通技术人员根据以下描述可以清楚地理解其他未提及的技术任务。
根据本发明的视频信号解码方法和设备可以导出当前块的帧内预测模式;以及在帧内预测模式小于或等于阈值且当前块是宽度大于高度的非正方形类型时,将帧内预测模式修改为宽角度帧内预测模式。在这种情况下,宽角度帧内预测模式具有大于135度的角度。
根据本发明的视频信号编码方法和设备可以导出当前块的帧内预测模式;以及在帧内预测模式小于或等于阈值且当前块是宽度大于高度的非正方形类型时,将帧内预测模式修改为宽角度帧内预测模式。在这种情况下,宽角度帧内预测模式具有大于135度的角度。
对于根据本发明的视频信号编码/解码方法和设备,可以基于当前块的宽度与高度的比率来确定阈值。
对于根据本发明的视频信号编码/解码方法和设备,可以通过将预定义值添加到帧内预测模式来导出宽角度帧内预测模式,并且该预定义值可以是方向性帧内预测模式的数目。
对于根据本发明的视频信号编码/解码方法和设备,可以基于当前块的宽度与高度的比率来确定可用于当前块的宽角度帧内预测模式的数目。
对于根据本发明的视频信号编码/解码方法和设备,当将多帧内预测方法应用于当前块时,可以将非宽角度帧内预测模式应用于当前块的第一子块,并且可以宽角度帧内预测模式应用于第二子块。
对于根据本发明的视频信号编码/解码方法和设备,可以将位于第一子块的边界处的样本修改为由平滑滤波器计算的值。
对于根据本发明的视频信号编码/解码方法和设备,可以基于位于第一子块的边界处的样本的第一相邻样本和第一子块中包括的样本以及第二子块中包括的样本的第二相邻样本来执行基于平滑滤波器的滤波。
应当理解的是,上述总结的特征是本发明的以下详细描述的示例性方面,而不限制本发明的范围
根据本发明,可以对编码/解码目标块执行有效的帧内预测。
根据本发明,具有通过使用宽角度帧内预测模式可以提高帧内预测的效率的优点。
根据本发明,具有通过使用右侧参考样本和下侧参考样本可以提高帧内预测的效率的优点。
根据本发明,通过考虑帧内预测模式的正向和反向两者,具有可以提高帧内预测的效率的优点。
能够从本发明获得的效果可以不受以上提及的效果的限制,并且本发明所属的技术领域的普通技术人员根据以下描述可以清楚地理解其他未提及的效果。
附图说明
图1是示出了根据本发明的实施方式的用于对视频进行编码的装置的框图。
图2是示出了根据本发明的实施方式的用于对视频进行解码的装置的框图。
图3是示出了当通过帧间预测对编码块进行编码时可以应用于编码块的划分模式候选的图。
图4示出了作为应用了本发明的实施方式的基于树结构对编码块进行层次划分的示例。
图5是示出了作为应用了本发明的实施方式的允许基于二叉树的划分的划分形状的图。
图6示出了三叉树划分形状。
图7是示出了仅允许特定形状的基于二叉树的划分的示例的图。
图8是用于描述根据应用了本发明的实施方式的其中与允许二叉树划分的次数相关的信息被编码/解码的示例的图。
图9是示出根据本发明的实施方式的用于对图像进行编码/解码的装置的预定义的帧内预测模式的类型的图。
图10是示出在扩展帧内模式下可用的帧内预测模式的图。
图11是示出包括宽角度帧内预测模式的帧内预测模式的图。
图12是示出根据当前块的形状的宽角度帧内预测模式的应用方面的图。
图13是简要示出根据本发明的实施方式的帧内预测方法的流程图。
图14是示出参考样本线候选的图。
图15是示出根据本发明的实施方式的基于相邻样本的差分信息来修改当前块的预测样本的方法的图。
图16和图17是示出其中参考样本被重排成一行的一维参考样本组的图。
图18是示出使用多个参考样本导出右侧参考样本或下侧参考样本的示例的图。
图19和图20是用于说明根据本发明的实施方式针对非正方形块确定右侧参考样本和下侧参考样本的图。
图21是用于说明使用第一参考样本导出第二参考样本的示例的图。
图22是示出通过使用基于平面模式获得的临时预测样本来导出右侧参考样本和下侧参考样本的示例的图。
图23是示出构成一维参考样本组的参考样本的图。
图24和图25是示出第一参考目标样本和第二参考目标样本的位置的图。
图26是示出基于第一参考目标样本和第二参考目标样本的加权和运算来获得预测样本的示例的图。
图27是示出对其应用双向帧内预测的区域的图。
图28是标识并指示允许双向帧内预测的方向性预测模式的图。
图29是示出根据本发明的确定是否应用双向帧内预测模式的过程的流程图。
图30示出了对其应用多帧内预测方法的实施方式。
图31是示出了应用平滑滤波器的示例的图。
具体实施方式
可以对本发明进行各种修改,并且存在本发明的各种实施方式,现在将参照附图提供这些实施方式的示例,并且详细地描述这些实施方式的示例。然而,本发明不限于此,并且示例性实施方式可以被解释为包括本发明的技术构思和技术范围内的全部修改、等同物或替代方案。在描述的附图中,相似的附图标记指代相似的要素。
说明书中使用的术语‘第一’、‘第二’等可以用于描述各种部件,但是这些部件不应当被解释为限于这些术语。这些术语仅用于将一个部件与其他部件区分。例如,在不偏离本发明的范围的情况下,‘第一’部件可以被称为‘第二’部件,并且‘第二’部件也可以被类似地称为‘第一’部件。术语‘和/或’包括多个项的组合或者多个项中的任何一个。
在本公开内容中,当元件被称为“连接”或“耦接”至另一元件时,应理解成不仅包括该元件直接连接或耦接至该另一元件,而且包括可以在它们之间存在另一元件。当元件被称为“直接连接”或“直接耦接”至另一元件时,应理解在它们之间不存在其他元件。
本说明书中使用的术语仅用于描述特定实施方式,而并不旨在限制本发明。以单数形式使用的表述包含复数形式的表述,除非该表述在上下文中具有明显不同的含义。在本说明书中,应当理解,诸如“包括”、“具有”等的术语旨在指示本说明书中公开的特征、数字、步骤、动作、元件、部分或其组合的存在,并且不旨在排除可以存在或可以添加一个或更多个其他特征、数字、步骤、动作、元件、部分或其组合的可能性。
在下文中,将参照附图详细地描述本发明的优选实施方式。在下文中,附图中的相同组成元件由相同的附图标记表示,并且将省略对相同元件的重复描述。
图1是示出了根据本发明的实施方式的用于对视频进行编码的装置的框图。
参照图1,用于对视频进行编码的装置100可以包括:图片划分模块110、预测模块120和125、变换模块130、量化模块135、重排模块160、熵编码模块165、逆量化模块140、逆变换模块145、滤波器模块150和存储器155。
图1中所示的组成部分被独立地示出,以表示用于对视频进行编码的装置中的彼此不同的特征功能。因此,这并不意味着每个组成部分都以单独的硬件或软件的组成单元组成。换言之,为了方便起见,每个组成部分包括列举的组成部分中的每个。因此,每个组成部分中的至少两个组成部分可以被组合以形成一个组成部分,或者一个组成部分可以被分成多个组成部分以执行每个功能。在不偏离本发明的实质内容的情况下,组合每个组成部分的实施方式和分割一个组成部分的实施方式也被包括在本发明的范围内。
此外,组成部分中的一些组成部分可以不是执行本发明的基本功能的不可缺少的组成部分,而是仅改善本发明的性能的选择性组成部分。可以通过排除用于改善性能的组成部分而仅包括用于实现本发明的实质内容的不可缺少的组成部分来实现本发明。排除仅用于改善性能的选择性组成部分而仅包括不可缺少的组成部分的结构也被包括在本发明的范围内。
图片划分模块110可以将输入图片划分为一个或更多个处理单元。在此,处理单元可以是预测单元(PU)、变换单元(TU)或编码单元(CU)。图片划分模块110可以将一个图片划分为多个编码单元、预测单元和变换单元的组合,并且可以通过使用预定标准(例如,成本函数)选择编码单元、预测单元和变换单元的一个组合来对图片进行编码。
例如,可以将一个图片划分为多个编码单元。可以使用递归树结构例如四叉树结构来将图片划分为编码单元。以一个图片或最大编码单元为根而被划分为其他编码单元的编码单元可以被划分为具有与所划分的编码单元的数目相对应的子节点。按照预定限制不能再被划分的编码单元用作叶子节点。也就是说,当假设对于一个编码单元仅正方形划分可行时,可以将一个编码单元最多划分为四个其他编码单元。
在下文中,在本发明的实施方式中,编码单元可以意指执行编码的单元或者执行解码的单元。
预测单元可以是在单个编码单元中被划分为具有相同大小的正方形形状或矩形形状的划分之一,或者预测单元可以是在单个编码单元中被划分成使得具有不同的形状/大小的划分之一。
当基于编码单元生成经受帧内预测的预测单元并且编码单元不是最小编码单元时,可以在不将编码单元划分为多个预测单元NxN的情况下执行帧内预测。
预测模块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可以基于与当前块相邻的参考像素信息来生成预测单元,该参考像素信息是当前图片中的像素信息。在当前预测单元的相邻块是经受帧间预测的块并且因此参考像素是经受帧间预测的像素时,可以使用经受帧内预测的相邻块的参考像素信息来替换在经受帧间预测的块中包括的参考像素。也就是说,当参考像素不可用时,可以使用可用的参考像素中的至少一个参考像素代替不可用的参考像素信息。
帧内预测的预测模式可以包括根据预测方向的使用参考像素信息的方向预测模式和在执行预测时不使用方向信息的无方向预测模式。用于预测亮度信息的模式可以与用于预测色度信息的模式不同,并且为了预测色度信息,可以利用用于预测亮度信息的帧内预测模式信息或者预测的亮度信号信息。
在执行帧内预测时,当预测单元的大小与变换单元的大小相同时,可以基于位于该预测单元的左侧、左上侧和上侧的像素对预测单元执行帧内预测。然而,在执行帧内预测时,当预测单元的大小与变换单元的大小不同时,可以使用基于变换单元的参考像素来执行帧内预测。此外,使用NxN划分的帧内预测可以仅用于最小编码单元。
在帧内预测方法中,根据预测模式,可以在将AIS(自适应帧内平滑)滤波器应用于参考像素之后生成预测块。应用于参考像素的AIS滤波器的类型可以不同。为了执行帧内预测方法,可以根据与当前预测单元相邻的预测单元的帧内预测模式来预测当前预测单元的帧内预测模式。在通过使用根据相邻预测单元预测的模式信息来预测当前预测单元的预测模式时,在当前预测单元的帧内预测模式与相邻预测单元的帧内预测模式相同时,可以使用预定的标志信息来传送指示当前预测单元的预测模式与相邻预测单元的预测模式彼此相同的信息。在当前预测单元的预测模式与相邻预测单元的预测模式不同时,可以执行熵编码以对当前块的预测模式信息进行编码。
此外,可以基于由预测模块120和125生成的预测单元来生成包括关于残差值的信息的残差块,该残差值是经受预测的预测单元与预测单元的原始块之间的差。可以将所生成的残差块输入至变换模块130。
变换模块130可以通过使用诸如离散余弦变换(DCT)、离散正弦变换(DST)和KLT的变换方法来对包括关于原始块与由预测模块120和125生成的预测单元之间的残差值的信息的残差块进行变换。可以基于用于生成残差块的预测单元的帧内预测模式信息来确定是应用DCT、DST还是KLT以便对残差块进行变换。
量化模块135可以对通过变换模块130变换至频域的值进行量化。量化系数可以根据图片的块或重要性而不同。可以将由量化模块135计算的值提供至逆量化模块140和重排模块160。
重排模块160可以对经量化的残差值的系数进行重排。
重排模块160可以通过系数扫描方法将二维块形式的系数变为一维向量形式的系数。例如,重排模块160可以使用之字形(zigzag)扫描方法从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接收的先前解码的块或图片信息来生成预测块。
如上所述,类似于用于对视频进行编码的装置的操作,在执行帧内预测时,当预测单元的大小与变换单元的大小相同时,可以基于位于预测单元的左侧、左上侧和上侧的像素对预测单元执行帧内预测。在执行帧内预测时,当预测单元的大小与变换单元的大小不同时,可以使用基于变换单元的参考像素来执行帧内预测。此外,使用NxN划分的帧内预测可以仅用于最小编码单元。
预测模块230和235可以包括预测单元确定模块、帧间预测模块和帧内预测模块。预测单元确定模块可以从熵解码模块210接收各种信息例如预测单元信息、帧内预测方法的预测模式信息、关于帧间预测方法的运动预测的信息等,可以将当前编码单元分成预测单元,并且可以确定对预测单元执行帧间预测还是帧内预测。通过使用从用于对视频进行编码的装置接收的当前预测单元的帧间预测中所需的信息,帧间预测模块230可以基于包括当前预测单元的当前图片的先前图片或后续图片中的至少一个的信息来对当前预测单元执行帧间预测。替选地,可以基于包括当前预测单元的当前图片中的一些预先重构区域的信息来执行帧间预测。
为了执行帧间预测,可以针对编码单元来确定将跳过模式、合并模式、AMVP模式和帧间块复制模式中的哪种模式用作包括在编码单元中的预测单元的运动预测方法。
帧内预测模块235可以基于当前图片中的像素信息来生成预测块。当预测单元是经受帧内预测的预测单元时,可以基于从用于对视频进行编码的装置接收的预测单元的帧内预测模式信息来执行帧内预测。帧内预测模块235可以包括自适应帧内平滑(AIS)滤波器、参考像素插值模块和DC滤波器。AIS滤波器对当前块的参考像素执行滤波,并且可以根据当前预测单元的预测模式来确定是否应用滤波器。可以通过使用从用于对视频进行编码的装置接收的AIS滤波器信息和预测单元的预测模式来对当前块的参考像素执行AIS滤波。在当前块的预测模式是不执行AIS滤波的模式时,可以不应用AIS滤波器。
当预测单元的预测模式是其中基于通过对参考像素进行插值而获得的像素值来执行帧内预测的预测模式时,参考像素插值模块可以对参考像素进行插值,以生成整像素或小于整像素的参考像素。在当前预测单元的预测模式是其中在没有对参考像素进行插值的情况下生成预测块的预测模式时,可以不对参考像素进行插值。在当前块的预测模式是DC模式时,DC滤波器可以通过滤波来生成预测块。
可以将重构的块或图片提供至滤波器模块240。滤波器模块240可以包括去块滤波器、偏移校正模块和ALF。
可以从用于对视频进行编码的装置接收关于是否将去块滤波器应用于相应的块或图片的信息以及关于在应用去块滤波器时应用强滤波器和弱滤波器中的哪种滤波器的信息。用于对视频进行解码的装置的去块滤波器可以从用于对视频进行编码的装置接收关于去块滤波器的信息,并且可以对相应的块执行去块滤波。
偏移校正模块可以基于在执行编码时应用于图片的偏移校正的类型和偏移值信息来对重构图片执行偏移校正。
可以基于从用于对视频进行编码的装置接收的关于是否应用ALF的信息、ALF系数信息等来将ALF应用于编码单元。ALF信息可以被提供为被包括在特定参数集中。
存储器245可以存储重构的图片或块以用作参考图片或块,并且可以将重构的图片提供至输出模块。
如上所述,在本发明的实施方式中,为了便于说明,编码单元用作表示用于编码的单元的术语,但是编码单元可以用作执行解码以及编码的单元。
另外,当前块可以表示要被编码/解码的目标块。并且,根据编码/解码步骤,当前块可以表示编码树块(或编码树单元)、编码块(或编码单元)、变换块(或变换单元)、预测块(或预测单元)等。在本说明书中,‘单元’可以表示用于执行特定的编码/解码处理的基本单元,而‘块’可以表示预定大小的样本阵列。除非另有说明,否则“块”和“单元”可以用来表示同一事物。例如,在后面提及的示例中,可以理解,编码块和编码单元彼此具有相同的含义。
可以通过分成具有正方形形状或非正方形形状的基本块来对一个图片进行编码/解码。在这种情况下,基本块可以被称为编码树单元。编码树单元可以被定义为序列或切片(slice)内允许的最大大小的编码单元。可以通过序列参数集、图片参数集或片头(sliceheader)用信号发送表示编码树单元是具有正方形形状还是具有非正方形形状的信息或与编码树单元的大小有关的信息。编码树单元可以被分成更小大小的划分。在这种情况下,如果假设通过分割编码树单元生成的划分的深度是1,则通过分割深度为1的划分生成的划分的深度可以被定义为2。也就是说,通过分割编码树单元中深度为k的划分生成的划分可以被定义为深度为k+1。
通过分割编码树单元生成的任意大小的划分可以被定义为编码单元。编码单元可以被递归地分割或分成用于执行预测、量化、变换或环路滤波等的基本单元。例如,通过分割编码单元生成的任意大小的划分可以被定义为编码单元,或者可以被定义为变换单元或预测单元,该编码单元、变换单元或预测单元是用于执行预测、量化、变换或环路滤波等的基本单元。
替选地,可以通过编码块的预测划分来确定与编码块具有相同的大小或小于编码块的预测块。对于编码块的预测划分,可以指定示出编码块的划分形状的划分模式(Part_mode)中的任何一个。可以以以比特流用信号发送用于确定示出划分模式候选中的任意一个划分模式候选的划分索引的信息。替选地,基于编码块的大小或形状或者编码模式中至少之一,可以确定编码块的划分索引。可以基于由划分索引指定的划分模式来确定预测块的大小或形状。划分模式候选可以包括非对称划分形状(例如,nLx2N、nRx2N、2NxnU、2NxnD)。可以基于编码块的大小或形状或者编码模式中至少之一来确定编码块可以使用的非对称划分模式候选的数目或类型。
图3是示出了当通过帧间预测对编码块进行编码时可以应用于编码块的划分模式候选的图。
当通过帧间预测对编码块进行编码时,可以将图3中所示的8个划分模式候选中的任意一个应用于编码块。
另一方面,当通过帧内预测对编码块进行编码时,可以仅将正方形划分式划分应用于编码块。换言之,当通过帧内预测对编码块进行编码时,可以将划分模式,PART_2Nx2N或PART_NxN,应用于编码块。
当编码块具有最小大小时,可以应用PART_NxN。在这种情况下,可以在编码器和解码器中预定义编码块的最小大小。替选地,可以以比特流用信号发送与编码块的最小大小有关的信息。在示例中,可以在片头中用信号发送编码块的最小大小。因此,可以对于每个切片不同地确定编码块的最小大小。
在另一示例中,可以根据编码块的大小或形状中的至少一个来不同地确定编码块可以使用的划分模式候选。在一个示例中,可以根据编码块的大小或形状中的至少一个来不同地确定编码块可以使用的划分模式候选的数目或类型。
替选地,基于编码块的大小或形状,可以确定编码块可以使用的非对称划分模式候选的类型或数目。可以根据编码块的大小或形状中的至少一个来不同地确定编码块可以使用的非对称划分模式候选的数目或类型。在示例中,当编码块具有宽度大于高度的非正方形形状时,可以不将PART_2NxN、PART_2NxnU或PART_2NxnD中的至少一个用作编码块的划分模式候选。当编码块具有高度大于宽度的非正方形形状时,可以不将PART_Nx2N、PART_nLx2N、PART_nRx2N中的至少一个用作编码块的划分模式候选。
通常,预测块可以具有4x4至64x64的大小。但是,当通过帧间预测对编码块进行编码时,可以将预测块设置为不具有4x4的大小以减小执行运动补偿时的存储带宽。
基于划分模式,可以递归地划分编码块。换言之,基于由划分索引确定的划分模式,编码块可以被划分并且可以将通过对编码块进行划分而生成的每个划分定义为编码块。
在下文中,将更详细地描述划分编码单元的方法。在后面提及的示例中,编码单元可以意指编码树单元或包括在编码树单元中的编码单元。另外,随着编码块被划分而生成的“划分”可以意指“编码块”。后面提及的划分方法可以在将编码块划分为多个预测块或变换块时应用。
可以通过至少一条线来对编码单元进行划分。在这种情况下,对编码单元进行划分的线的角度可以是0至360度的范围内的值。例如,水平线的角度可以是0度,垂直线的角度可以是90度,右上方向上的对角线的角度可以是45度,而左上对角线的角度可以是135度。
当编码单元被多条线划分时,多条线可以全部具有相同的角度。替选地,多条线中的至少一条可以具有与其他线不同的角度。替选地,对编码树单元或编码单元进行划分的多条线可以具有预定义的角度差(例如,90度)。
可以通过划分模式来确定与对编码单元进行划分的线有关的信息。替选地,可以对关于线在块中的数目、方向、角度或位置中的至少一个的信息进行编码。
为了便于描述,在之后提及的示例中,假设通过使用垂直线或水平线中的至少一条将编码单元划分为多个编码单元。
对编码单元进行划分的垂直线或水平线的数目可以是至少一个或更多个。在示例中,可以通过使用一条垂直线或一条水平线来将编码单元划分为2个划分。替选地,可以通过使用两条垂直线或两条水平线来将编码单元划分为3个划分。替选地,可以通过使用一条垂直线或一条水平线将编码单元划分为宽度和高度为编码单元的1/2的4个划分。
当通过使用至少一条垂直线或至少一条水平线将编码单元划分为多个划分时,划分可以具有统一的大小。替选地,一个划分可以具有与其他划分不同的大小,或者每个划分可以具有不同的大小。在示例中,当通过两条水平线或两条垂直线对编码单元进行划分时,可以将编码单元划分为3个划分。在这种情况下,3个划分的宽度比或高度比可以是n:2n:n、2n:n:n或n:n:2n。
在后面提到的示例中,当将编码单元划分为4个划分时,其被称为基于四叉树的划分。并且,当将编码单元划分为2个划分时,其被称为基于二叉树的划分。另外,当将编码单元划分为3个划分时,其被称为基于三叉树的划分。
在后面提到的附图中,将示出使用一条垂直线和/或一条水平线来划分编码单元,但是将描述的是,如下情况也包括在本发明的范围内:通过使用比所示出的更多的垂直线和/或比所示出的更多的水平线将编码单元划分成比所示出的更多的划分或比所示出的更少的划分。
图4示出了作为应用了本发明的实施方式的基于树结构对编码块进行层次划分的示例。
以预定的块单元对输入视频信号进行解码,并且用于对输入视频信号进行解码的基本单元被称为编码块。编码块可以是执行帧内/帧间预测、变换以及量化的单元。另外,可以以编码块为单位确定预测模式(例如,帧内预测模式或帧间预测模式),并且包括在编码块中的预测块可以共享所确定的预测模式。编码块可以是在8x8至64x64的范围内的任意大小的正方形块或非正方形块,或者可以是具有128x128、256x256或更大的大小的正方形块或非正方形块。
具体地,可以基于四叉树划分方法、二叉树划分方法或三叉树划分方法中的至少一种来对编码块进行层次划分。基于四叉树的划分可以意指将2Nx2N编码块划分为四个NxN编码块的方法。基于二叉树的划分可以意指将一个编码块划分为两个编码块的方法。基于三叉树的划分可以意指将一个编码块划分为三个编码块的方法。即使当基于三叉树或基于二叉树的划分被执行时,也可以在较低的深度处存在正方形编码块。
通过基于二叉树的划分生成的划分可以是对称的或非对称的。另外,基于二叉树划分的编码块可以是正方形块或非正方形块(例如,矩形)。
图5是示出了基于二叉树划分的编码块的划分形状的图。基于二叉树划分的编码块的划分形状可以包括诸如2NxN(水平方向上的非正方形编码单元)或Nx2N(垂直方向上的非正方形编码单元)等的对称类型,或者诸如nLx2N、nRx2N、2NxnU或2NxnD等的非对称类型。只有对称类型或非对称类型中的一种可以被允许作为编码块的划分形状。
三叉树划分形状可以包括将编码块划分为2条垂直线的形状或将编码块划分为2条水平线的形状中的至少一种。可以通过三叉树划分生成3个非正方形划分。
图6示出了三叉树划分形状。
三叉树划分形状可以包括将编码块划分为2条水平线的形状或将编码块划分为2条垂直线的形状。通过对编码块进行划分而生成的划分的宽度比或高度比可以是n:2n:n、2n:n:n或n:n:2n。
可以在编码器和解码器中预定义在3个划分中具有最大宽度或高度的划分的位置。替选地,可以以比特流用信号发送示出3个划分中的具有最大宽度或高度的划分的信息。
对于编码单元,仅允许正方形划分或对称形状的非正方形划分。在这种情况下,当编码单元被划分为正方形划分时,其可以与四叉树CU划分对应,并且当编码单元被划分为对称形状的非正方形划分时,其可以与二叉树划分对应。将编码树单元被划分为正方形划分和对称形状的非正方形划分时,其可以对应于四叉树和二叉树CU划分(QTBT)。
可以对不再执行基于四叉树的划分的编码块执行基于二叉树或基于三叉树的划分。通过基于二叉树或基于三叉树的划分生成的编码块可以被划分为更小的编码块。在这种情况下,可以将四叉树划分、三叉树划分或二叉树划分中的至少一种设置成不被应用于编码块。替选地,对于编码块,可以不允许在预定方向上的二叉树划分或在预定方向上的三叉树划分。在示例中,对于通过基于二叉树或基于三叉树的划分生成的编码块,四叉树划分和三叉树划分可以被设置成为不允许的。对于该编码块,可以允许仅二叉树划分。
替选地,可以仅将通过基于三叉树的划分生成的3个编码块中的最大编码块划分为较小的编码块。替选地,可以仅使得通过基于三叉树的划分生成的3个编码块中的最大编码块允许基于二叉树的划分或基于三叉树的划分。
可以基于顶部深度的划分的划分形状来相应地确定较低深度的划分的划分形状。在示例中,当顶部划分和较低的划分基于二叉树被划分时,对于较低深度的划分,可以仅允许与顶部深度的划分的二叉树划分形状相同的形状的基于二叉树的划分。例如,当顶部深度的划分的二叉树划分形状是2NxN时,较低深度的划分的二叉树划分形状也可以被设置成为2NxN。替选地,当顶部深度的划分的二叉树划分形状是Nx2N时,较低深度的划分的划分形状也可以被设置成为Nx2N。
替选地,对于通过基于三叉树的划分生成的划分中的最大划分,在与顶部深度的划分相同的划分方向上的二叉树划分或在与顶部深度的划分相同的划分方向上的三叉树划分可以被设置成为不允许的。
替选地,可以通过考虑顶部深度的划分的划分形状和相邻的较低深度的划分的划分形状来确定较低深度的划分的划分形状。具体地,如果基于二叉树对顶部深度的划分进行划分,则可以确定顶部深度的划分的划分形状,以避免与基于四叉树对顶部深度的划分进行划分的相同的结果。在示例中,当顶部深度的划分的划分形状是2NxN并且相邻的较低深度的划分的划分形状是Nx2N时,当前顶部深度的划分的划分形状可以不被设置成为Nx2N。这是因为在当前较低深度的划分的划分形状为Nx2N时,其导致与基于NxN形状的四叉树对顶部深度的划分进行划分的相同的结果。当顶部深度的划分的划分形状是Nx2N并且相邻的较低深度的划分的划分形状是2NxN时,当前较低深度的划分的划分形状可以不被设置成为2NxN。换言之,当顶部深度的划分的二叉树划分形状与相邻的较低深度的划分的二叉树划分形状不同时,当前较低深度的划分的二叉树划分形状可以被设置为与顶部深度的划分的二叉树划分形状相同。
替选地,较低深度的划分的二叉树划分形状可以被设置成与顶部深度的划分的二叉树划分形状不同。
可以以序列、切片或编码单元为单位来确定允许的二叉树划分形状。在示例中,可以将编码树单元允许的二叉树划分形状限制为2NxN或Nx2N形状。可以在编码器或解码器中预定义允许的划分形状。替选地,关于允许的划分形状或不允许的划分形状的信息可以以比特流被编码并用信号发送。
图7是示出了仅允许特定形状的基于二叉树的划分的示例的图。
图7中的(a)表示仅允许基于成Nx2N形状的二叉树的划分的示例,并且图7中的(b)表示仅允许基于成2NxN形状的二叉树的划分的示例。
为了表示各种划分形状,可以使用关于四叉树划分的信息、关于二叉树划分的信息或关于三叉树划分的信息。关于四叉树划分的信息可以包括指示是否执行基于四叉树的划分的信息或关于允许基于四叉树的划分的编码块的大小/深度的信息中的至少一个。关于二叉树划分的信息可以包括以下中的至少一个:指示是否执行基于二叉树的划分的信息、关于基于二叉树的划分是垂直方向还是水平方向的信息、关于允许基于二叉树的划分的编码块的大小/深度的信息或者关于不允许基于二叉树的划分的编码块的大小/深度的信息。关于三叉树划分的信息可以包括以下中的至少一个:指示是否执行基于三叉树的划分的信息、关于基于三叉树的划分是垂直方向还是水平方向的信息、关于允许基于三叉树的划分的编码块的大小/深度的信息或者关于不允许基于三叉树的划分的编码块的大小/深度的信息。关于编码块的大小的信息可以表示编码块的宽度、高度、宽度和高度的乘积或宽度与高度的比中的至少一个最小值或最大值。
在示例中,当编码块的宽度或高度小于允许二叉树划分的最小大小时,或者当编码块的划分深度大于允许二叉树划分的最大深度时,对于该编码块,可以不允许基于二叉树的划分。
在示例中,当编码块的宽度或高度小于允许三叉树划分的最小大小时,或者当编码块的划分深度大于允许三叉树划分的最大深度时,对于该编码块,可以不允许基于三叉树的划分。
可以以比特流用信号发送关于允许基于二叉树或基于三叉树的划分的条件的信息。可以以序列、图片或部分图像(clip)为单位对信息进行编码。部分图像可以意指切片、图块(tile)组、图块、区块(brick)、编码块、预测块或变换块中的至少一个。
在示例中,在比特流中,可以在以特流对语法“max_mtt_depth_idx_minus1”进行编码/解码,该语法“max_mtt_depth_idx_minus1”表示允许二叉树/三叉树划分的最大深度。在这种情况下,max_mtt_depth_idx_minus1+1可以指示允许二叉树/三叉树划分的最大深度。
在示例中,可以在序列或切片级别用信号发送允许二叉树/三叉树划分的次数、允许二叉树/三叉树划分的最大深度或允许二叉树/三叉树划分的深度的数目中的至少一个。因此,对于第一切片和第二切片,允许二叉树/三叉树划分的次数、允许二叉树/三叉树划分的最大深度或允许二叉树/三叉树划分的深度的数目中的至少一个可以不同。在示例中,虽然对于第一切片,可以仅在一个深度上允许二叉树/三叉树划分,但是对于第二切片,可以在两个深度上允许二叉树/三叉树划分。
在图8中所示的示例中,图8示出了对深度为2的编码单元和深度为3的编码单元执行二叉树划分。因此,可以以比特流对以下中的至少一个进行编码/解码:表示在编码树单元中执行二叉树划分的次数(2次)的信息、表示在编码树单元中通过二叉树划分而生成的划分的最大深度(深度3)的信息或表示在编码树单元中应用二叉树划分的划分深度的数目(2个深度,深度2和深度3)的信息。
替选地,可以在编码器和解码器中预定义允许二叉树/三叉树划分的次数、允许二叉树/三叉树划分的深度或允许二叉树/三叉树划分的深度的数目。替选地,基于序列或切片的索引或者编码单元的大小/形状中的至少一个,可以确定允许二叉树/三叉树划分的次数、允许二叉树/三叉树划分的深度或允许二叉树/三叉树划分的深度的数目。在示例中,对于第一切片,可以在一个深度上允许二叉树/三叉树划分,而对于第二切片,可以在两个深度上允许二叉树/三叉树划分。
在另一示例中,可以根据切片或图片的时间级别标识符(TemporalID)不同地设置允许二叉树划分的次数、允许二叉树划分的深度或允许二叉树划分的深度的数目中的至少一个。在这种情况下,时间级别标识符(TemporalID)被用于标识具有至少一个或更多个视角、空间、时间或质量的多个图像层中的每一个图像层。
如图4中所示,可以基于四叉树将划分深度(拆分深度)为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可以被用作预测块或变换块。然而,可以基于以下中的至少一个来限制性地执行以上提及的划分处理:关于允许基于四叉树的划分的编码块的大小/深度的信息、关于允许基于二叉树的划分的编码块的大小/深度的信息或关于不允许基于二叉树的划分的编码块的大小/深度的信息。
表示编码块的大小的候选的数目可以被限制为预定数目,或者预定单元中的编码块的大小可以具有固定值。在示例中,序列中或图片中的编码块的大小可以被限制为具有256x256、128x128或32x32中的任意一个。可以以序列头或图片头用信号发送表示序列中或图片中的编码块的大小的信息。
作为基于四叉树和二叉树划分的结果,编码单元可以被表示为任意大小的正方形或矩形形状。
如图4中所示,可以基于四叉树将划分深度(拆分深度)为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可以被用作预测块或变换块。然而,可以基于以下中的至少一个来限制性地执行以上提及的划分处理:关于允许基于四叉树的划分的编码块的大小/深度的信息、关于允许基于二叉树的划分的编码块的大小/深度的信息或关于不允许基于二叉树的划分的编码块的大小/深度的信息。
表示编码块的大小的候选的数目可以被限制为预定数目,或者预定单元中的编码块的大小可以具有固定值。在示例中,序列中或图片中的编码块的大小可以被限制为具有256x256、128x128或32x32中的任意一个。可以以序列头或图片头用信号发送表示序列中或图片中的编码块的大小的信息。
作为基于四叉树和二叉树划分的结果,编码单元可以被表示为任意大小的正方形或矩形形状。
可以将变换跳过设置成不用于通过基于二叉树的划分或基于三叉树的划分生成的编码单元。替选地,可以将变换跳过设置成应用于非正方形编码单元中的垂直方向或水平方向中的至少一个。在示例中,当将变换跳跃应用于水平方向时,它表示在水平方向上仅执行缩放而没有变换/逆变换,并且在垂直方向上执行使用DCT或DST的变换/逆变换。当将变换跳跃应用于垂直方向时,它表示在垂直方向上仅执行缩放而没有变换/逆变换,并且在水平方向上执行使用DCT或DST的变换/逆变换。
可以以比特流用信号发送关于针对水平方向的逆变换是否被跳过的信息或者关于针对垂直方向的逆变换是否被跳过的信息。在示例中,关于是否跳过水平方向的逆变换的信息可以是1比特标志‘hor_transform_skip_flag’,并且关于是否跳过垂直方向的逆变换的信息可以是1比特标志‘ver_transform_skip_flag’。
编码器可以根据当前块的大小和/或形状确定是否对‘hor_transform_skip_flag’或‘ver_transform_skip_flag’进行编码。在示例中,在当前块具有Nx2N形状时,hor_transform_skip_flag可以被编码并且ver_transform_skip_flag的编码可以被省略。在当前块具有2NxN形状时,ver_transform_skip_flag可以被编码,并且可以省略hor_transform_skip_flag。
替选地,基于当前块的大小和/或形状,可以确定是否执行水平方向的变换跳过或是否执行垂直方向的变换跳过。在示例中,在当前块具有Nx2N形状时,可以将变换跳过应用于水平方向,并且可以对垂直方向执行变换/逆变换。在当前块具有2NxN形状时,可以将变换跳过应用于垂直方向,并且可以对水平方向执行变换/逆变换。可以基于DCT或DST中的至少一个来执行变换/逆变换。
作为基于四叉树、二叉树或三叉树划分的结果,可以将不再被划分的编码块用作预测块或变换块。换言之,通过四叉树划分或二叉树划分生成的编码块可以用作预测块或变换块。在示例中,可以以编码块为单位生成预测图像,并且可以以编码块为单位对残差信号、原始图像与预测图像之间的差进行变换。为了以编码块为单位生成预测图像,可以基于编码块确定运动信息,或者可以基于编码块确定帧内预测模式。因此,可以通过使用跳过模式、帧内预测或帧间预测中的至少一个来对编码块进行编码。
替选地,可以将通过对编码块进行划分而生成的多个编码块设置成共享运动信息、合并候选、参考样本、参考样本行或帧内预测模式中的至少一个。在示例中,当通过三叉树对编码块进行划分时,通过对编码块进行划分而生成的划分可以根据编码块的大小或形状共享运动信息、合并候选、参考样本、参考样本行或帧内预测模式中的至少一个。替选地,可以将多个编码块中的仅一部分设置为共享信息,并且可以将剩余的编码块设置为不共享信息。
在另一示例中,可以通过对编码块进行划分使用小于编码块的预测块或变换块。
在下文中,将详细描述对编码块或者通过对编码块进行划分而生成的预测块或变换块执行帧内预测的方法。
图9是示出根据本发明的实施方式的用于对视频进行编码/解码的装置的预定义的帧内预测模式的类型的图。
用于对视频进行编码/解码的装置可以使用预定义的帧内预测模式之一来执行帧内预测。用于帧内预测的预定义的帧内预测模式可以包括非方向性预测模式(例如,平面模式、DC模式)和33种方向性预测模式。
替选地,为了提高帧内预测的准确性,可以定义超过33个方向性预测模式。也就是说,可以通过进一步细分方向性预测模式的角度来定义M个扩展方向性预测模式(M>33)。可以基于现有的33个方向性预测模式中的至少一个来导出与现有的33个方向性预测模式不同的方向性预测模式。
因此,可以定义比图9所示的35个帧内预测模式更多数目的帧内预测模式。如果可用的帧内预测模式的数目大于图9中所示的35个,则所述可用的帧内预测模式可以被称为扩展帧内模式。
图10是示出在扩展帧内模式下可用的帧内预测模式的图。在扩展帧内模式下,可用的帧内预测模式可以配置有2个非方向性预测模式和65个扩展方向性预测模式。
对于亮度分量和色度分量,可以相等地设置可用帧内预测模式的数目。替选地,每个颜色分量的可用帧内预测模式的数目可以不同。例如,67个帧内预测模式中的任何一种可以被选择并用于亮度分量,并且35个帧内预测模式中的任何一种可以被选择并用于色度分量。
替选地,可用的帧内预测模式的数目可以根据颜色格式而不同。例如,在4:2:0格式下,可以将67个帧内预测模式设置为可用于亮度分量,并且可以将35个帧内预测模式设置为可用于色度分量。在4:4:4格式下,可以将67个帧内预测模式设置为可用于亮度分量和色度分量两者。
替选地,可用的帧内预测模式的数目可以根据块的大小和/或形状而不同。具体地,可以根据PU、TU或CU的大小和/或形状而将可用的帧内预测模式的数目确定为35或67。例如,当CU、TU或PU的大小小于64×64时,或者当CU、TU或PU是非对称划分时,可用的帧内预测模式的数目可以是35。另一方面,当CU、TU或PU的大小为64x64或更大时,或者当CU、TU或PU是对称划分时,可用的帧内预测模式的数目可以被设置为67。
替选地,对于Intra_2Nx2N划分,可用的方向性帧内预测模式的数目可以被设置为65。另一方面,对于Intra_NxN划分,可用的方向性帧内预测模式的数目可以被设置为33。
可以基于块的大小、形状或颜色分量中的至少一个来确定是否应用扩展帧内模式。在这种情况下,可以通过比特流用信号发送指示应用了扩展帧内模式的块的大小或形状的信息。可以以序列、图片或切片级别来用信号发送该信息。因此,对于每个序列、图片或片,应用扩展帧内模式的块的大小可以不同。例如,在第一切片中,可以将扩展帧内模式设置为应用于大于64x64的块(例如CU、TU或PU),而在第二切片中,可以将扩展帧内模式设置为应用于大于32x32的块。
可以通过从参考块的大小中取对数值然后减去预定值来获得指示应用扩展帧内模式的块的大小的信息。例如,可以对通过从参考块的大小取对数值得到的值减去整数4而得到的“log2_extended_intra_mode_size_minus4”进行编码。例如,当log2_extended_intra_mode_size_minus4的值为0时,其表示扩展帧内模式被应用于大小为16x16或更大的块或者大小大于16x16的块,而当log2_extended_intra_mode_size_minus4的值为1时,其可以表示扩展帧内模式被应用于大小为32x32或更大的块或者大小大于32x32的块。
如上所述,可以基于块的色度分量、颜色格式、大小或形状中的至少一项来确定可用的帧内预测模式的数目。可以基于可用的帧内预测模式中的至少一个来执行针对当前块的帧内预测。
此外,也可以根据块的颜色分量、颜色格式、或大小或形状中的至少一个来确定用于确定要编码/解码的当前块的帧内预测模式的帧内预测模式候选的数目(例如,MPM的数目)。此外,也可以使用比图8所示出的帧内预测模式更多数目的帧内预测模式。例如,通过进一步细分图8所示出的方向性预测模式,还可以使用129个方向性预测模式和2个非方向性预测模式。可以考虑如上面描述的示例中的块的颜色分量、颜色格式分量、大小或形状中的至少一个来确定是否使用比图8中所示出的帧内预测模式更多数目的帧内预测模式。
假设水平预测模式的角度是0度并且垂直预测模式的角度是90度,则图9和图10所示的方向性预测模式具有-45度与135度之间的角度。也就是说,通常,可以执行基于角度范围内的方向性帧内预测模式的帧内预测。然而,当由当前块与相邻块之间存在的物体形成的角度不在角度范围内时,帧内预测的精度可能降低。因此,在当前块是正方形时,使用-45度与135度之间的方向性预测模式来执行帧内预测,而在当前块是非正方形时,可以允许使用不包括在角度范围内的帧内预测模式来执行帧内预测。在-45度至135度的范围之外的方向性预测模式可以被称为宽角度帧内预测模式。另外,基于宽角度帧内预测模式的帧内预测可以被称为宽角度帧内预测。
图11是示出包括宽角度帧内预测模式的帧内预测模式的图。如图11所示的示例中,可以定义在-45度至-90度的范围内的宽角度帧内预测模式(帧内预测模式索引-1至-14)或在135度至180度的范围内的宽角度帧内预测模式(帧内预测模式索引67至80)。
可以限定比所示数目少的宽角度帧内预测模式,或者可以限定比所示数目多的宽角度帧内预测模式。作为示例,可以仅限定在-45度与-67度之间的宽角度帧内预测模式以及在135度与157度之间的宽角度帧内预测模式。
可替选地,可以基于当前块的大小或形状来确定可用的宽角度帧内预测模式的范围。例如,在当前块是N×2N或2N×N的形式时,可以使用-45度与-55度之间的宽角度帧内预测模式或135度与145度之间的宽角度帧内预测模式。另一方面,在当前块是NxkN或kNxN的形式(此处,k是大于或等于4的整数)时,可以使用-45度与-67度之间的宽角度帧内预测模式或135度与157度之间的宽角度帧内预测模式。
在当前块是高度小于宽度的非正方形时,角度小于-45度的宽角度帧内预测模式可以是可用的,而在当前块是宽度大于高度的非正方形时,角度大于135度的宽角度帧内预测模式可以是可用的。
图12是示出根据当前块的形状的宽角度帧内预测模式的应用方面的图。
如图12(a)所示的示例中,在当前块具有高度大于宽度的非正方形形状时,可以执行使用具有大于135度的角度的宽角度帧内预测模式的帧内预测。
另一方面,如图12(b)所示的示例中,在当前块具有宽度大于高度的非正方形形状时,可以执行使用具有小于-45度的角度的宽角度帧内预测模式的帧内预测。
可以基于预定的编码信息来确定是否允许宽角度帧内预测。编码信息可以包括当前块的大小、形状或分割类型中的至少一种。作为示例,在当前块的大小大于阈值时或者在当前块的大小小于阈值时,可以允许宽角度帧内预测。阈值可以表示允许宽角度帧内预测的最大大小或最小大小。可以由编码器和解码器来预定义该阈值。可替选地,可以通过比特流用信号发送用于确定阈值的信息。
作为另一示例,当较高节点的分割类型是第一类型时,可以允许宽角度帧内预测,而当分割类型是第二类型时,可以不允许宽角度帧内预测。第一类型包括四叉树划分、二叉树划分或三叉树划分中的至少一个,并且第二类型包括除第一类型之外的划分类型。
作为另一示例,仅在当前块的高度与宽度的比率大于或等于第一阈值或者小于或等于第二阈值时,才可以允许宽角度帧内预测。第一阈值和第二阈值可以表示允许宽角度帧内预测的最大大小或最小大小。可以由编码器和解码器来预定义第一阈值和第二阈值。可替选地,可以通过比特流用信号发送用于确定第一阈值和第二阈值的信息。
作为另一示例,可以通过比特流用信号发送指示是否允许宽角度帧内预测的信息。
参照后面要描述的附图,将通过附图描述确定要被编码/解码的当前块的帧内预测模式的方法和使用所确定的帧内预测模式执行帧内预测的方法。
参照后面要描述的附图,将通过附图描述确定要被编码/解码的当前块的帧内预测模式的方法和使用所确定的帧内预测模式执行帧内预测的方法。
图13是简要示出根据本发明的实施方式的帧内预测方法的流程图。
首先,可以确定当前块的参考样本线索引(S1110)。参考样本线索引可以用于确定用于执行当前块的帧内预测的参考样本线。可以使用多个参考样本线中的由参考样本线索引指示的至少一个参考样本线来执行当前块的帧内预测。
图14是示出参考样本线候选的图。
第N个参考样本线可以包括上侧参考样本和左参考样本,该上侧参考样本的y坐标比当前块的最上面的行小N,该左参考样本的x坐标比当前块的最左边的列小N。在此,第N个参考样本线指示在图14所示的示例中索引为N-1的参考样本。第N个参考样本线可以包括从P(-N,-N)到P(2W+N-1,-N)的上侧参考样本以及从P(-N,-N)到P(-N,2H+N-1)的左参考样本。例如,参考样本线1可以包括从P(-2,-2)到P(2W+1,-2)的上侧参考样本以及从P(-2,-2)到P(-2,2H+1)的左参考样本。
可以用作参考样本线候选的参考样本线的数目可以是1、2、3、4或更多。作为示例,在图14所示的示例中,参考样本线0、参考样本线1和参考样本线3可以用作参考样本线候选。
可以基于当前块的大小、形状、帧内预测模式或位置中的至少一项来确定可以用作参考样本线候选的参考样本线的数目或参考样本线的位置。例如,在当前块位于CTU的边界或图块的边界附近时,参考样本线候选的数目可以是1(例如,参考样本线0)。在当前块没有位于CTU的边界或图块的边界附近时,参考样本线候选的数目可以是3(例如,参考样本线0,参考样本线1,参考样本线3)。例如,在当前块的帧内预测模式在第一范围内时,参考样本线0、参考样本线1和参考样本线3可以用作参考样本线候选。在当前块的帧内预测模式在第二范围内时,参考样本线0、参考样本线2和参考样本线2可以用作参考样本线候选。
可以通过比特流用信号发送指定参考样本线候选中的至少一个的信息。当可用的参考样本线候选的数目为1时,可以省略索引信息的编码。当索引信息没有被编码时,可以认为选择了与当前块邻近的参考样本线0。
替选地,可以基于当前块的大小、形状、位置或帧内预测模式中的至少一项来选择参考样本线候选中的至少一个。例如,在当前块的宽度、高度和大小中的至少一个小于预定义值时,可以选择参考样本线0。例如,在当前块位于CTU或图块的上侧边界上时,可以选择参考样本线0。
替选地,可以基于当前块是否被分为子块来选择参考样本线。例如,在当前块被分为子块时,可以选择参考样本线0。
替选地,在当前块被分为多个子块时,可以针对每个子块确定参考样本线。替选地,可以将所有子块限定为具有相同的参考样本线索引。
在当前块被分为多个子块时,可以以子块为单位执行帧内预测。
可以针对当前块选择多个参考样本线。可以根据当前块的大小、形状或帧内预测模式来自适应地确定是否使用多个参考样本线执行帧内预测。例如,在当前块的帧内预测模式是非方向性预测模式或预定义的方向性帧内预测模式时,可以不使用多个参考样本线。预定义的方向性帧内预测模式可以包括垂直帧内预测模式、水平帧内预测模式和对角线帧内预测模式中的至少一种。
多个参考样本线可以包括通过索引信息选择的参考样本线和通过对参考样本线索引添加或减去预定义值而获得的参考样本线。在此,预定义值可以是1或2。
替选地,可以通过比特流用信号发送多个索引信息。多个索引信息中的每一个指示不同的参考样本线。
可以基于多个参考样本的加权和运算、平均运算、最小值运算或最大值运算中的至少一个来获得预测样本。在此,包括多个参考样本中的至少一个的参考样本线索引可以与包括其余参考样本的参考样本线索引不同。
接下来,可以确定当前块的帧内预测模式(S1220)。
为了确定当前块的帧内预测模式,可以基于与当前块邻近的相邻块的帧内预测模式来导出最可能模式(MPM)候选。在此,相邻块可以包括与当前块的上侧、下侧、左侧、右侧或角部邻近的块中的至少一个块。例如,可以基于上侧相邻块的帧内预测模式和左侧相邻块的帧内预测模式来导出MPM候选。上侧相邻块可以包括在预定义位置处的上侧相邻样本,该预定义位置与当前块的最上的行相比具有更小的y坐标值。预定义位置可以是(0,-1)、(W/2,-1)、(W-1,-1)或(W,-1)。(0,0)指示当前块中包括的左上样本的位置,并且W指示当前块的宽度。左侧相邻块可以包括在预定义位置处的左侧相邻样本,该预定义位置与当前块的最左的列相比具有更小的x坐标值。预定义位置可以是(-1、0)、(-1,H/2),(-1,H-1)或(-1,H)。H表示当前块的高度。如果在帧间预测中对相邻块进行编码,则可以使用相邻块的帧内预测模式或当前块的并置块的帧内预测模式来包括MPM候选。
候选列表中包括的MPM(最可能模式)候选的数目可以是3、4、5、6或更多。MPM候选的最大数目可以是在图像编码器/解码器中预定的固定值。替选地,可以基于当前块的属性来确定MPM候选的最大数目。该属性可以包括以下项中的至少一项:当前块的位置/大小/形状,当前块能够使用的帧内预测模式的数目/类型,当前块的颜色类型(亮度/色度),当前块的颜色格式,或者当前块是否被分为多个子块。替选地,可以通过比特流用信号发送指示MPM候选的最大数目的信息。可以以序列级别、图片级别、切片级别或块级别中的至少一个来用信号发送指示最大数目的信息。
可以将相邻块的帧内预测模式、与相邻块类似的方向性帧内预测模式或默认模式设置为MPM候选。可以通过对相邻块的帧内预测模式添加或减去预定义值来导出与相邻块相似的方向性帧内预测模式。预定义值可以是1、2或更大的整数。可以根据可用的帧内预测模式的数目来自适应地确定预定义值。例如,当可用的帧内预测模式的数目是35时,预定义值可以被设置为1,而当可用的帧内预测模式的数目是67时,预定义值可以被设置为2。此外,当可用的帧内预测模式为131时,预定义值可以被设置为4。当第一相邻块的帧内预测模式和第二相邻块的帧内预测模式两者均为方向性预测模式时,可以基于第一相邻块的帧内预测模式和第二相邻块的帧内预测模式的最大值导出相似的方向性帧内预测模式。默认模式可以包括DC模式、平面模式、水平预测模式、垂直预测模式、右上对角线模式、左下对角线模式或左上对角线模式中的至少一种。当MPM候选列表中包括的MPM候选的数目小于最大数目时,与先前在MPM候选列表中插入的MPM候选不同的默认模式可以被插入到MPM候选列表中。默认模式的数目、类型或优先级可以根据当前块的参考样本线索引、以子块为单位的帧内预测技术是否被应用于当前块或者当前块的划分类型中的至少一个而不同。
可以根据预定义的顺序来确定MPM候选索引。例如,当左侧相邻块的帧内预测模式和上侧相邻块的帧内预测模式不同时,左侧相邻块的帧内预测模式的索引值可以小于上侧相邻块的帧内预测模式的索引值。
替选地,可以根据当前块的大小/类型来确定MPM候选索引。例如,在当前块具有高度大于宽度的非正方形形状时,上侧相邻块的帧内预测模式可以具有比左侧相邻块的帧内预测模式的索引值小的索引值。在当前块具有宽度大于高度的非正方形形状时,左侧相邻块的帧内预测模式可以具有比上侧相邻块的帧内预测模式的索引值小的索引值。
替选地,仅N个预定义的帧内预测模式可以用作MPM候选。当相邻块的帧内预测模式与预定义的N个帧内预测模式不同时,相邻块的帧内预测模式被变换为预定义的N个帧内预测模式之一,并且可以将变换后的帧内预测模式设置为MPM候选。预定义表可以用于帧内预测模式的变换,或者可以使用基于预定值的缩放操作。在此,预定义表可以定义帧内预测模式之间的映射关系。
例如,当以非扩展帧内模式对相邻块进行编码(即,可用的帧内预测模式为35)时,以及当以扩展帧内模式对当前块进行编码(即,可用的帧内预测模式为67)时,可以将相邻块的帧内预测模式索引变换成扩展帧内模式下的帧内预测模式索引。例如,当左侧相邻块的帧内预测模式是10(水平模式)时,可以将其转换为与扩展帧内模式下的水平模式对应的索引18。
替选地,当以扩展帧内模式对相邻块进行编码并且以非扩展帧内模式对当前块进行编码时,可以将相邻块的帧内预测模式索引变换为非扩展帧内模式下的帧内预测模式索引。例如,当上侧相邻块的帧内预测模式索引为50(垂直模式)时,可以将其变换为与非扩展帧内模式下的垂直模式对应的索引26。
当通过步骤S1110选择的参考样本线索引大于或等于预定义值时,可以将候选列表设置为不包括DC模式和/或平面模式。预定义值可以是1或更大的整数。
在当前块被分为多个子块时,当前候选列表可以被设置为不包括DC模式和/或平面模式。另外,默认模式可以被包括在候选列表中。在这种情况下,默认模式的数目或类型可以根据当前块的划分类型而不同。
可以通过比特流用信号发送如下信息:该信息指示候选列表中是否包括与当前块的帧内预测模式相同的MPM候选。例如,可以通过比特流用信号发送MPM标志。当MPM标志的值为0时,其指示在候选列表中不包括与当前块的帧内预测模式相同的MPM候选。当MPM标志的值为1时,其指示在候选列表中包括与当前块的帧内预测模式相同的MPM候选。
当MPM标志指示存在与当前块的帧内预测模式相同的MPM候选时,可以通过比特流用信号发送指定候选列表中包括的MPM候选之一的索引信息。由索引信息指定的MPM候选可以被设置为当前块的帧内预测模式。当省略MPM标志的编码/信号发送时,可以确定在候选列表中包括与当前块的帧内预测模式相同的MPM候选。
另一方面,当MPM标志指示不存在与当前块的帧内预测模式相同的MPM候选时,可以通过比特流用信号发送剩余模式信息。剩余模式信息用于指定除了候选列表中包括的MPM候选之外的剩余帧内预测模式中的任意一种。使用剩余模式信息,可以确定当前块的帧内预测模式。当MPM标志指示不存在与当前块的帧内预测模式相同的MPM候选时,可以以升序重排MPM候选。此后,可以将由剩余模式信息指示的模式值与重排的MPM候选顺序地进行比较,以导出当前块的帧内预测模式。例如,当由剩余模式信息指示的模式值小于或等于重排的MPM候选时,可以将1添加到模式值。如果不存在比更新的模式值小的MPM候选,则可以将更新的模式值确定为当前块的帧内预测模式。
当通过步骤S1110选择的参考样本线索引大于或等于预定义值时,可以省略MPM标志的编码。因此,当参考样本线索引大于或等于预定义值时,当前块的帧内预测模式可以被设置为由索引信息指示的MPM候选。
如上所述,当参考样本线索引大于或等于预定义值时,可以将候选列表设置为不包括DC模式和/或平面模式。因此,当参考样本线索引大于或等于预定义值时,DC模式和/或平面模式不能适用于当前块。
可以通过比特流用信号发送指示当前块的帧内预测模式是否是默认模式的信息。默认模式可以包括DC、平面、水平模式、垂直模式或对角线模式中的至少一种。例如,可以通过比特流用信号发送指示当前块的帧内预测模式是否与默认模式相同的默认模式标志。默认模式标志可以包括以下中的至少一项:指示当前块的帧内预测模式是否是平面模式的标志,指示当前块的帧内预测模式是否是DC模式的标志,指示当前块的帧内预测模式是否是垂直模式的标志,指示当前块的帧内预测模式是否是水平模式的标志,或者指示当前块的帧内预测模式是否是对角线模式的标志。
例如,可以通过比特流用信号发送is_planar_not_flag。当标志的值是0时,其指示当前块的帧内预测模式是平面模式。当标志的值是1时,其指示当前块的帧内预测模式不是平面模式。
当MPM标志指示存在与当前块的帧内预测模式相同的MPM候选时,可以用信号发送默认模式标志。当默认模式标志指示当前块的帧内预测模式不是默认模式时,可以将由索引信息指定的MPM候选设置为当前块的帧内预测模式。
在当前块的帧内预测模式索引小于或等于第一阈值且当前块是宽度大于高度的非正方形形状时,可以将帧内预测模式修改为宽角度帧内预测模式。在此,可以基于当前块的形状来确定第一阈值。例如,可以通过将宽度和高度的比率添加到预定义索引来导出第一阈值。因此,随着当前块的宽度与高度的比率增加,可用的宽角度帧内预测模式的数目也可以增加。预定义索引可以是8。当满足以上条件时,可以通过将预定义值添加到帧内预测模式索引来将帧内预测模式修改为宽角度帧内预测模式。修改后的宽角度帧内预测模式可以具有大于135度的角度。预定义值可以是除宽角度帧内预测模式之外的方向性预测模式的数目。例如,当遵循图9所示的示例时,可以将预定义值设置为33,并且当遵循图10所示的示例时,可以将预定义值设置为65。
在当前块的帧内预测模式索引大于或等于第二阈值且当前块具有高度大于宽度的非正方形形状时,可以将帧内预测模式修改为宽角度帧内预测模式。在此,可以基于当前块的形状来确定第二阈值。例如,可以通过从预定义索引中减去高度与宽度的比率来导出第二阈值。因此,随着当前块的高度与宽度的比率增加,可用的宽角度帧内预测模式的数目也可以增加。预定义索引可以是60。当满足上述条件时,可以通过从帧内预测模式索引中减去预定义值来将帧内预测模式修改为宽角度帧内预测模式。修改后的宽角度帧内预测模式可以具有小于-45度的角度。预定义值可以是除宽角度帧内预测模式之外的帧内预测模式的数目。例如,当遵循图9所示的示例时,可以将预定义值设置为35,并且当遵循图10所示的示例时,可以将预定义值设置为67。
在当前块被分为多个子块时,多个子块可以共享当前块的帧内预测模式。替选地,可以针对每个子块确定帧内预测模式。例如,可以针对每个子块对信息和/或剩余模式进行编码/解码。替选地,可以通过比特流用信号发送指示子块的帧内预测模式是否与在其上已经完成先前的编码/解码的子块相同的信息。替选地,可以通过对在其上已经完成先前的编码/解码的子块的帧内预测模式添加/减去偏移来导出当前子块的帧内预测模式。
在当前块被分为多个子块时,可以省略MPM标志的编码。因此,在当前块被分为多个子块时,当前块的帧内预测模式可以被设置为由索引信息指示的MPM候选。
多个子块可以共享当前块的帧内预测模式。
可以独立地确定亮度分量和色度分量中的每一个的帧内预测模式。替选地,可以根据亮度分量的帧内预测模式来确定色度分量的帧内预测模式。
具体地,如下表1所示,可以基于亮度分量的帧内预测模式来确定色度分量的帧内预测模式。
[表1]
在表1中,intra_chroma_pred_mode表示用信号发送以指定色度分量的帧内预测模式的信息,以及IntraPredModeY指示亮度分量的帧内预测模式。
接下来,可以导出当前块的参考样本(S1130)。例如,当通过步骤S1110选择第N个参考样本线时,可以导出从P(-N,-N)到P(2W+N-1,-N)的上侧参考样本和从P(-N,-N)到P(-N,2H+N-1)的左侧参考样本。
可以根据在当前块之前已经被编码/解码的重构样本导出参考样本。重构样本可以表示在应用环路滤波器之前的状态或在应用环路滤波器之后的状态。
预定的帧内滤波器可以应用于参考样本。使用帧内滤波器对参考样本进行滤波可以被称为参考样本平滑。帧内滤波器可以包括在水平方向上应用的第一帧内滤波器或在垂直方向上应用的第二帧内滤波器中的至少一种。可以根据参考样本的位置选择性地应用第一帧内滤波器或第二帧内滤波器中的一个。替选地,可以将两个帧内过滤器重复应用于一个参考样本。第一帧内滤波器或第二帧内滤波器中的滤波器系数中的至少一个可以是(1、2、1),但是不限于此。
可以基于当前块的帧内预测模式或用于当前块的变换块的大小中的至少一项来自适应地执行滤波。例如,在当前块的帧内预测模式是DC模式、垂直模式或水平模式时,可以不执行滤波。当变换块的大小是N×M时,可以不执行滤波。在此,N和M可以是相同的值或不同的值,或者可以是4、8、16或更大的值。例如,如果变换块的大小是4×4,则可以不执行滤波。替选地,可以基于预定义阈值与当前块的帧内预测模式和垂直模式(或水平模式)之间的差的比较的结果来确定是否执行滤波。例如,在当前块的帧内预测模式和垂直模式之间的差大于阈值时,可以执行滤波。如表2所示,可以针对变换块的每个大小定义阈值。
[表2]
可以将帧内滤波器确定为在用于对视频进行编码/解码的装置中预定义的多个帧内滤波器候选之一。为此,可以用信号发送在多个帧内滤波器候选中指定当前块的帧内滤波器的单独索引。替选地,可以基于当前块的大小/形状、变换块的大小/形状、关于滤波器强度的信息或周围样本的变化中的至少一项来确定帧内滤波器。
接下来,可以使用当前块的帧内预测模式和参考样本来执行帧内预测(S1140)。
可以通过使用当前块的帧内预测模式和参考样本来获得预测样本。当选择多个参考样本线时,可以基于属于不同参考样本线的参考样本的加权操作或平均操作来获得预测样本。作为示例,可以基于属于第一参考样本线的第一参考样本和属于第二参考样本线的第二参考样本的加权和运算来导出预测样本。在这种情况下,应用于第一参考样本和第二参考样本的权重可以具有相同的值。替选地,可以基于预测目标样本与参考样本之间的距离来确定施加到每个参考样本的权重。例如,在第一参考样本和第二参考样本中,施加到与预测目标样本具有近距离的参考样本的权重可以具有比施加到其他参考样本的权重更大的值。
然而,在帧内预测的情况下,可以使用相邻块的边界样本,并且因此,可以降低预测图片的质量。因此,可以对通过上述预测过程生成的预测样本执行校正过程,并且将参照图15进行详细描述。然而,校正过程不限于仅应用于帧内预测样本,而是可以应用于帧间预测样本或重构样本。
图15是示出根据本发明的实施方式的基于相邻样本的差分信息来校正当前块的预测样本的方法的图。
可以基于当前块的多个相邻样本的差分信息来校正当前块的预测样本。可以对当前块中的所有预测样本执行校正,或者可以对预定的部分区域中的预测样本执行校正。部分区域可以是一行/列或者多个行/列,并且这些可以是用于在对视频进行编码/解码的装置中进行校正的预设区域。例如,可以对位于当前块的边界处的一行/列执行校正,或者可以对远离当前块的边界的多个行/列执行校正。替选地,可以基于当前块的大小/形状或帧内预测模式中的至少一个来可变地确定部分区域。
相邻样本可以属于位于当前块的上侧、左侧和左上角的相邻块。用于校正的相邻样本的数目可以是两个,三个,四个或更多。可以根据作为当前块中的校正目标的预测样本的位置来可变地确定相邻样本的位置。替选地,相邻样本中的一些样本可以具有固定位置,而与作为校正目标的预测样本的位置无关,而剩余的相邻样本可以具有根据作为校正目标的预测样本的位置的可变位置。
相邻样本的差分信息可以表示相邻样本之间的差分样本,或者可以表示通过将差分样本按预定的恒定值(例如,一,二,三等)缩放而得到的值。在此,可以考虑以下位置来确定预定的常数值:作为校正目标的预测样本的位置,包括作为校正目标的预测样本的列或行的位置,预测样本在列、行等内的位置。
例如,如公式1所示,在当前块的帧内预测模式是垂直模式时,可以使用左上的相邻样本p(-1,-1)和与当前块的左边界邻近的相邻样本p(-1,y)之间的差分样本来获得最终预测样本。
[公式1]
P′(0,y)=P(0,y)+((p(-1,y)-p(-1,-1))>>1用于y=0...N-1
例如,如公式1所示,在当前块的帧内预测模式是水平模式时,可以使用左上的相邻样本p(-1,-1)和与当前块的上侧边界邻近的相邻样本p(x,-1)之间的差分样本来获得最终预测样本。
[公式2]
P′(x,0)=p(x,0)+((p(x,-1)-p(-1,-1))>>1用于x=0...N-1
例如,如公式2所示,在当前块的帧内预测模式是垂直模式时,可以使用左上的相邻样本p(-1,-1)和与当前块的左侧边界邻近的相邻样本p(-1,y)之间的差分样本来获得最终预测样本。在此,可以将差分样本添加到预测样本,或者可以将差分样本缩放预定的恒定值,并且然后添加到预测样本。可以根据列和/或行来不同地确定用于缩放的预定常数值。例如,可以如公式3和公式4中所示对预测样本进行校正。
[公式3]
P′(0,y)=P(0,y)+((p(-1,y)-p(-1,-1))>>1用于y=0...N-1
[公式4]
P′(1,y)=P(1,y)+((p(-1,y)-p(-1,-1))>>2用于y=0...N-1
例如,在当前块的帧内预测模式是水平模式时,可以使用左上的相邻样本p(-1,-1)和与当前块的左边界邻近的相邻样本p(x,-1)之间的差分样本来获得最终预测样本。这如以上在水平模式中所描述的一样。例如,可以如下面的公式5和公式6对预测样本进行校正。
[公式5]
P′(x,0)=p(x,0)+((p(x,-1)-p(-1,-1))>>1对于x=0...N-1
[公式6]
P′(x,1)=p(x,1)+((p(x,-1)-p(-1,-1))>>2对于x=0...N-1
在当前块的帧内预测模式是方向性预测模式时,可以基于方向性预测模式的方向性来执行当前块的帧内预测。例如,表3示出了从模式2到模式34的帧内方向参数intraPredAng,其是图9所示的方向帧内预测模式。
[表3]
在表3中,以示例的方式描述了33个方向性帧内预测模式,但是可以定义更多个或更少个方向性帧内预测模式。可以基于限定方向性帧内预测模式与帧内方向参数之间的映射关系的查找表来确定当前块的帧内方向参数。替选地,可以基于通过比特流用信号发送的信息来确定当前块的帧内方向参数。
取决于方向性帧内预测模式的方向性,可以使用左侧参考样本或上侧参考样本中的至少一个来执行当前块的帧内预测。在此,上侧参考样本可以是y轴坐标小于在当前块中的上侧行中包括的预测目标样本(x,0)的参考样本(例如,(-1,-1)至(2W-1,-1)),并且左侧参考样本可以是x轴坐标小于当前块中最左的列中包括的预测目标样本(0,y)的参考样本(例如,(-1,-1)至(-1,2H-1))。
根据帧内预测模式的方向性,可以将当前块的参考样本以一维进行重排。具体地,在上侧参考样本和左侧参考样本两者都应当用于当前块的帧内预测的情况下,假设上侧参考样本和左侧参考样本都沿垂直方向或水平方向布置成一条线,并且可以选择每个预测目标样本的参考样本。
例如,在帧内方向参数为负(例如,与表3中的模式11至模式25对应的帧内预测模式)的情况下,可以将上侧参考样本和左侧参考样本沿水平方向或垂直方向重排,以形成一维参考样本组P_ref_1D。
图16和图17是示出其中参考样本被重排成一行的一维参考样本组的图。
可以根据帧内预测模式的方向性来确定是在垂直方向上重排参考样本还是在水平方向上重排参考样本。例如,如图16所示的示例中,当帧内预测模式朝向左侧时(例如,在图9所示的示例中,帧内预测模式索引在11与18之间),可以将当前块的上侧参考样本逆时针旋转以生成如下一维参考样本组,在该一维参考样本组中,左侧参考样本和上侧参考样本在垂直方向上排列。
另一方面,如图17所示的示例中,当帧内预测模式朝向上侧时(例如,在图9所示的示例中,帧内预测模式索引在19与25之间),当前块的左侧参考样本可以顺时针旋转以生成如下一维参考样本组,在该一维参考样本组中,左参考样本和上侧参考样本在水平方向上排列。
如果当前块的帧内方向参数不是负的,则可以仅使用左侧参考样本或上侧参考样本来执行当前块的帧内预测。因此,对于帧内方向参数不为负的帧内预测模式,可以仅使用左侧参考样本或上侧参考样本来重构一维参考样本组。
基于帧内方向参数,可以导出参考样本确定索引iIdx,参考样本确定索引iIdx用于指定用于对预测目标样本进行预测的至少一个参考样本。此外,可以导出权重相关参数i
[公式7]
iIdx=(y+1)*(P
ifact=[(y+1)*P
如公式7所示,根据方向性帧内预测模式的斜率来可变地确定iIdx和i
基于参考样本确定索引,可以针对每个预测样本指定至少一个参考样本。例如,可以基于参考样本确定索引来指定参考样本在用于预测当前块中的预测目标样本的一维参考样本组中的位置。基于指定位置处的参考样本,可以生成预测目标样本的预测图像(即,预测样本)。
可以根据当前块的帧内预测模式基于一个或多个参考样本来生成预测目标样本的预测图像。
例如,当从预测目标样本延伸的虚拟角线经过一维参考样本组中的整像素位置(即,在整数位置处的参考样本)时,可以在考虑整像素位置处的参考样本与预测目标样本之间的位置的情况下通过在整像素位置处复制参考样本或缩放参考样本来生成预测目标样本的预测图像。虚拟角线可以指沿着当前块的帧内预测模式的角度或帧内预测模式的斜率在一个方向或两个方向上延伸的线。作为示例,以下公式8示出了通过复制由当前块的帧内预测模式指定的参考样本P_ref_1D(x+iIdx+1)来生成位置(x,y)处的预测目标样本的预测图像P(x,y)的示例。
[公式8]
P(x,y)=P_ref_1D(x+iIdx+1)
另一方面,当从预测目标样本延伸的虚拟角线没有经过整像素位置时,可以使用多个参考样本来获得预测目标样本的预测图像。可以通过对与虚拟角线经过的位置邻近的参考样本和与参考样本邻近的至少一个相邻参考样本进行线性插值来生成预测目标样本的预测图像。替选地,可以通过对参考样本和至少一个相邻参考样本执行基于抽头滤波器的插值来获得预测目标样本的预测图像。插值滤波器的抽头数可以是2或更大的自然数。具体地,根据要被插值的参考样本的数目,抽头滤波器的抽头数目可以是2、3、4、5、6或更大的整数。
作为示例,当从预测目标样本延伸的虚拟角线在两个整像素位置之间经过时,可以通过使用虚拟角线经过的两个位置处的参考样本或两个整像素位置处的参考样本中的至少一个以及至少一个相邻参考样本来生成预测目标样本的预测图像。在此,邻近的参考样本可以包括与参考样本的左侧/右侧或上侧/下侧邻近的参考样本中的至少一个。作为示例,下面的公式9示出了通过对两个或更多个参考样本进行插值来生成预测目标样本的预测样本P(x,y)的示例。
[公式9]
P(x,y)=(32-i
可以基于权重相关参数ifact来确定插值滤波器的系数。作为示例,可以基于位于角线上的整像素(即,每个参考样本的整数位置)与分数像素之间的距离来确定插值滤波器的系数。
以下公式10示出了抽头滤波器的抽头数为4的情况。
[公式10]
P(x,y)-f(0)*P_ref_1D(x+iIdx-1)+f(1)*P_ref_1D(x+iIdx)+f(2)*P_ref_1D(x+iIdx+1)+f(3)*P_ref_1D(x+iIdx-2)
如在公式10中所示的示例中,可以通过对多个连续参考样本进行插值来获得预测目标样本的预测图像。在这种情况下,当一维参考样本组中不包括N个连续参考样本中的至少一个时,可以将参考样本的值替换为预定义值或相邻参考样本的值。作为示例,当一维参考样本组中不包括位置(x+iIdx-1)处的样本时,该位置处的参考样本值可以用预定义值或相邻参考样本的值(例如P_ref_1D(x+iIdx))替换。替选地,当一维参考样本组中不包括位置(x+iIdx+2)处的样本时,该位置处的参考样本值可以被替换为预定义值、预先计算的值或相邻参考样本的值(例如P_ref(x+iIdx+1))。在此,预定义值可以是包括0的整数。预先计算的值可以是由比特深度确定的值。替选地,可以基于至少一个参考样本的平均值、最小值或最大值来计算预定义值。
多抽头滤波器可以具有直的形状。作为示例,可以应用在水平方向或垂直方向上使用多个连续参考样本的直形多抽头滤波器。替选地,多抽头滤波器可以具有诸如正方形或十字形的多边形形状。作为示例,可以使用如下十字形多抽头滤波器,所述十字形多抽头滤波器使用参考样本和与参考样本的所有四个侧邻近的参考样本。可以基于当前块的大小、形状或帧内预测模式来可变地确定多抽头滤波器的形状。
如公式8至公式10所示出的,可以将通过使用帧内预测的方向性插值参考样本来生成预测样本称为帧内预测样本插值技术。
在使用帧内预测样本插值技术时,大量的抽头滤波器的抽头数不一定保证预测准确度的提高。例如,在当前块的大小是其中高度或宽度之一明显大于另一者的非对称编码单元例如2x16或小尺寸块例如4x4的情况下,使用4个或更多个抽头的抽头滤波器可能导致预测图像的过度平滑。因此,可以根据当前块的大小、形状或帧内预测模式自适应地确定抽头滤波器的类型。在此,可以通过抽头的数目、滤波器系数、滤波器强度(强/弱)、滤波方向或滤波器类型中的至少一个来定义抽头滤波器的类型。可以根据滤波器强度来可变地确定滤波器抽头的数目或滤波器系数。此外,根据抽头滤波器的类型,可以确定抽头滤波器的应用方向,例如水平插值、垂直插值或水平和垂直插值。可以以线(行或列)或当前块中的样本为单位可变地设置抽头滤波器的应用方向。
具体地,可以基于当前块的宽度或高度来确定要使用的抽头滤波器的类型。例如,在当前块的宽度或高度中至少之一小于预定值的情况下,可以通过使用2抽头滤波器替代4抽头滤波器来执行帧内预测样本插值技术。另一方面,在当前块的宽度和高度都大于或等于预定值的情况下,可以使用4抽头滤波器来执行帧内预测样本插值技术。在此,预定义值可以表示诸如4、8或16的值。
替选地,可以根据当前块的宽度和高度是否相同来确定要使用的抽头滤波器的类型。例如,在当前块的宽度和高度是不同的值的情况下,可以使用2抽头滤波器替代4抽头滤波器来执行帧内预测样本插值技术。另一方面,在当前块的宽度和高度具有相同的值的情况下,可以使用4抽头滤波器来执行帧内预测样本插值技术。
替选地,可以根据当前块的宽度和高度的比率来确定要使用的抽头滤波器的类型。例如,在当前块的宽度(w)与高度(h)的比率(即,w/h或h/w)小于预定义阈值时,可以使用2抽头滤波器而不是4抽头滤波器来执行帧内预测样本插值技术;另一方面,在当前块的宽度和高度的比率大于或等于预定义阈值时,可以使用4抽头滤波器来执行帧内预测样本插值技术。
替选地,可以根据当前块的帧内预测模式、形状或大小来确定抽头滤波器的类型。例如,在当前块是2x16类型的编码单元并且当前块的帧内预测模式是属于水平范围的帧内预测模式时,可以使用抽头数为n的抽头滤波器来执行帧内预测样本插值技术。另一方面,在当前块是2x16类型编码单元并且当前块的帧内预测模式是属于垂直方向范围的帧内预测模式时,可以使用抽头数为m的抽头滤波器来执行帧内预测样本插值技术。
另一方面,在当前块是16x2类型的编码单元并且当前块的帧内预测模式是属于水平方向范围的帧内预测模式时,可以使用抽头数为n的抽头滤波器来执行帧内预测样本插值技术。另一方面,在当前块是16x2类型的编码单元并且当前块的帧内预测模式是属于垂直方向范围的帧内预测模式时,可以使用抽头数为m的抽头滤波器来执行帧内预测样本插值技术。
在此,水平范围可以指示包括水平方向上的帧内预测模式的预定范围,而垂直范围可以指示包括垂直方向上的帧内预测模式的预定范围。例如,基于35个帧内预测模式,水平方向范围可以指示模式11与模式18之间的帧内预测模式,垂直方向范围可以指示模式19与模式27之间的帧内预测模式。
此外,n和m是大于0的常数,并且n和m可以具有不同的值。替选地,n和m可以被设置为具有相同的值,但是n抽头滤波器和m抽头滤波器的滤波器系数或滤波器强度中的至少之一可以被不同地设置。
当基于方向性预测模式或DC模式执行帧内预测时,存在图像质量可能在块边界处劣化的问题。另一方面,当基于平面模式执行帧内预测时,具有与预测模式相比图像在块边界处的质量劣化相对较小的优点。
在基于平面模式的帧内预测中,可以通过水平方向上的第一预测图像和垂直方向上的第二预测图像的加权预测来获得预测图像。
本文中,可以基于在预测目标样本的水平方向上放置的参考样本来生成第一预测图像。作为示例,可以基于在预测目标样本的水平方向上放置的参考样本的加权和来生成第一预测图像。在这种情况下,可以至少基于距预测目标样本的距离或当前块的大小来确定应用到每个参考样本的权重。放置在预测目标样本的水平方向上的参考样本可以包括与预测目标样本具有相同的y坐标的左侧参考样本和与预测目标样本具有相同的y坐标的右侧参考样本。可以根据当前块的上侧参考样本导出右侧参考样本。例如,可以通过复制放置在与右侧参考样本相同的垂直线上的上侧参考样本的值来导出右侧参考样本。替选地,可以将右侧参考样本作为多个上侧参考样本的加权和或平均值来导出。本文中,放置在与右侧参考样本相同的垂直线上的上侧参考样本可以包括与当前块的右上角相邻的参考样本。与右上角相邻的参考样本可以与右侧参考样本具有相同的x坐标。替选地,根据当前块的形状、大小或预测目标样本的位置,可以可变地确定用于导出右侧参考样本的上侧参考样本的位置。
可以基于在预测目标样本的垂直方向上放置的参考样本来生成第二预测图像。作为示例,可以基于放置在预测目标样本的垂直方向上的参考样本的加权和来生成第二预测图像。在这种情况下,可以考虑距预测目标样本的距离或当前块的大小来确定应用于每个参考样本的权重。放置在预测目标样本的垂直方向上的参考样本可以包括上侧参考样本和下侧参考样本;该上侧参考样本位于与预测目标样本相同的垂直线上并且与预测目标样本具有相同的x坐标,该下侧参考样本位于与预测目标样本相同的垂直线上并且与预测目标样本具有相同的x坐标。可以根据当前块的左侧参考样本导出下侧参考样本。例如,可以通过复制放置在与下侧参考样本相同的水平线上的左侧参考样本的值来导出下侧参考样本。替选地,可以将下侧参考样本作为多个左侧参考样本的加权和或平均值而导出。本文中,放置在与下侧参考样本相同的水平线上的左侧参考样本可以包括与当前块的左下角相邻的参考样本。与左下角相邻的参考样本可以与下侧参考样本具有相同的y坐标。替选地,根据当前块的形状、大小或预测目标样本的位置,可以可变地确定用于导出下侧参考样本的上侧参考样本的位置。
替选地,可以使用左侧参考样本和上侧参考样本两者来导出右侧参考样本和下侧参考样本中的至少一个。
作为示例,可以将当前块的上侧参考样本和左侧参考样本的加权和或平均值确定为右侧参考样本或下侧参考样本中的至少一个的值。
替选地,左下参考样本和右上参考样本可以用于导出与当前块的右下角邻近的右下参考样本,然后导出的右下参考样本可以用于导出右侧参考样本和下侧参考样本。可以基于当前块的右上参考样本和左侧参考样本的加权和或平均值来导出右下参考样本。在这种情况下,施加到右上参考样本和左侧参考样本的权重可以具有相同的值,或者可以基于当前块的宽度/高度来确定。
一旦确定了右下参考样本,则可以通过对右下参考样本和右上参考样本进行插值来导出右侧参考样本,并且可以通过对右下参考样本和左下参考样本进行插值来导出下侧参考样本。在这种情况下,可以基于当前块的大小、当前块的形状、至右下参考样本的距离、至右上参考样本的距离或者至左下参考样本的距离来确定插值滤波器的系数。
为了导出右侧参考样本或左侧参考样本,可以使用固定位置的参考样本,或者可以使用根据预测目标样本的位置自适应地选择的参考样本。例如,可以通过使用与预测目标样本的位置无关的右上参考样本来导出右侧参考样本,或者可以通过使用根据预测目标样本的位置选择的左侧参考样本(例如,具有与预测目标样本相同的y轴坐标的参考样本)或者根据预测目标样本的位置选择的上侧参考样本(例如,具有与预测目标样本相同的x轴坐标的参考样本)来导出右侧参考样本。替选地,可以使用左下参考样本来导出下侧参考样本(不管预测目标样本的位置),或者可以使用根据预测目标样本的位置选择的左侧参考样本(例如,具有与预测目标样本相同的y轴坐标的参考样本)或者根据预测目标样本的位置选择的上侧参考样本(例如,具有与预测目标样本相同的x轴坐标的参考样本)来导出下侧参考样本。
图18是示出使用多个参考样本导出右侧参考样本或下侧参考样本的示例的图。假设当前块是具有W×H的大小的块。
参照图18(a),首先,基于当前块的右上参考样本P(W,-1)和左下样本P(-1,H)的加权和或平均值,可以生成右下参考样本P(W,H)。在这种情况下,可以相等地设置施加到右上参考样本和左侧参考样本的权重或者可以基于当前块的宽度W和高度H来确定施加到右上参考样本和左侧参考样本的权重。例如,在当前块是非正方形时,可以将施加到右上参考样本的权重确定为W/(W+H),并且可以将施加到左下参考样本的权重确定为H/(W+H)。
此外,可以基于右下参考样本P(W,H)和右上参考样本P(W,-1)来生成预测目标样本(x,y)的右侧参考样本P(W,y)。例如,可以作为右下参考样本P(W,H)和右上参考样本P(W,-1)的加权和或平均值来计算右侧预测样本P(W,y)。另外,可以基于右下参考样本P(W,H)和左下参考样本P(-1,H)来生成用于预测目标样本(x,y)的下侧参考样本P(x,H)。例如,可以作为右下参考样本P(W,H)和左侧参考样本P(-1,H)的加权和或平均值来计算下侧参考样本P(x,H)。
如图18(b)中所示,当生成右侧参考样本和下侧参考样本时,可以通过使用所生成的预测样本来生成第一预测样本Ph(x,y)和第二预测样本Pv(x,y)。在这种情况下,可以基于左侧参考样本P(-1,y)和右侧参考样本P(W,y)的加权和来生成第一预测样本Ph(x,y),并且可以基于上侧参考样本P(x,-1)和下侧参考样本P(x,H)的加权和来生成第二预测样本Pv(x,y)。
图19和图20是用于说明根据本发明的实施方式的确定用于非正方形块的右侧参考样本和下侧参考样本的图。
如在图19所示的示例中,在当前块是(N/2)×N的非正方形块时,可以基于右上参考样本P(N/2,-1)导出右侧参考样本,并且可以基于左下参考样本P(-1,N)导出下侧参考样本。
替选地,可以基于右上参考样本P(N/2,-1)和左下参考样本P(-1,N)的加权和、平均值、最小值或最大值中的至少一个来导出右侧参考样本或下侧参考样本。例如,可以基于P(N/2,-1)和P(-1,N)的加权和或平均值来导出右侧参考样本,或者可以通过对右下参考样本和右上参考样本进行插值来导出右侧参考样本。在基于P(N/2,-1)和P(-1,N)导出右下参考样本P(N/2,N)之后。替选地,可以基于P(N/2,-1)和P(-1,N)的加权和或平均值来导出下侧参考样本,或者可以通过在基于P(N/2,-1)和P(-1,N)导出右下参考样本P(N/2,N)之后对右下参考样本和左下参考样本进行插值来导出下侧参考样本。
另一方面,如图20所示的示例中,在当前块是Nx(N/2)的非正方形块时,可以基于右上参考样本P(N,-1)导出右侧参考样本,可以基于左下参考样本P(-1,N/2)导出下侧参考样本。
替选地,可以基于左上参考样本P(N,-1)和左下参考样本P(-1,N/2)的加权和、平均值、最小值或最大值中的至少一个来导出右侧参考样本或下侧参考样本。例如,可以基于P(N,-1)和P(-1,N/2)的加权和或平均值来导出右侧参考样本,或者可以通过在基于P(N,-1)和P(-1,N/2)导出右下参考样本P(N,N/2)之后对右下参考样本和右上参考样本进行插值来导出右侧参考样本。替选地,可以基于P(N,-1)和P(-1,N/2)的加权和或平均值来导出下侧参考样本,或者可以通过在基于P(N,-1)和P(-1,N/2)导出右下参考样本P(N,N/2)之后对右下参考样本和左下参考样本进行插值来导出下侧参考样本。
在参照图18至图20描述的示例中,可以基于与下侧参考样本放置在相同的水平线上的当前块的左下参考样本或与右侧参考样本放置在相同的垂直线上的当前块的右上参考样本中的至少一个来导出下侧参考样本,并且可以基于与右侧参考样本放置在相同的垂直线上的当前块的右上参考样本或在与下侧参考样本放置在相同的水平线上的当前块的左下参考样本中的至少一个来导出右侧参考样本。与所描述的示例不同,可以基于上侧中心参考样本或左侧中心参考样本中的至少一个来导出右侧参考样本或左侧参考样本。例如,在使用上侧中心样本和左下参考样本导出下侧中心样本之后,可以通过下侧中心样本和左下样本的插值或外推来生成下侧样本。另外,在通过使用左侧中心样本和右上样本导出右侧中心样本之后,可以通过右侧中心样本和右上样本的插值或外推来生成下侧样本。
可以根据当前块的大小或形状来不同地确定用于生成第一预测图像和第二预测图像的参考样本的位置。例如,根据当前块的大小或形状,可以不同地确定用于导出右侧参考样本或下侧参考样本的上侧参考样本或左侧参考样本的位置。
作为示例,在当前块是N×N大小的正方形块时,可以基于右上参考样本P(N,-1)导出右侧参考样本,同时可以基于左下参考样本P(-1,N)导出下侧参考样本。替选地,在当前块是NxN大小的正方形块时,可以根据右上参考样本P(N,-1)和左下参考样本P(-1,N)的加权和、平均值、最小值或最大值中的至少一个导出右侧参考样本和下侧参考样本。
另一方面,在当前块是Nx2/N大小的非正方形块时,可以基于上侧中心参考样本P(N/2,-1)和左下参考样本P(-1,N/2)来导出下侧中心参考样本P(N/2,N/2),并且然后可以基于所导出的下侧中心参考样本来导出下侧参考样本。例如,可以通过下侧中心参考样本和左下参考样本的插值或外推来导出下侧参考样本。替选地,在当前块是N/2×N大小的非正方形块时,可以基于右上参考样本P(N/2,-1)和左侧中心参考样本P(-1,N/2)来导出右侧中心参考样本P(N/2,N/2),并且然后可以基于所导出的右侧中心参考样本来导出右侧参考样本。例如,可以通过右侧中心参考样本和右上参考样本的插值或外推来导出右侧参考样本。
可以基于与预测目标样本设置在相同的水平线上的参考样本的加权预测来计算第一预测图像。同样,可以基于与预测目标样本设置在相同的垂直线上的参考样本的加权预测来计算第二预测图像。
除了上述示例之外,可以使用参考样本的平均值、最小值或最大值来生成第一预测图像或第二预测图像。
根据预测目标样本是否包括在当前块的预定区域中、当前块的大小或形状等,可以不同地设置导出参考样本的方法,或者可以不同地设置导出第一预测图像或第二预测的方法。具体地,根据预测目标样本的位置,不同地确定用于导出右侧参考样本或下侧参考样本的参考样本的数目或参考样本的位置,或者可以不同地设置用于导出第一预测图像或第二预测图像的参考样本的权重或数目。
例如,可以仅使用上侧参考样本来导出用于生成预定区域中包括的预测目标样本的第一预测图像的右侧参考样本,并且可以基于上侧参考样本和左侧参考样本的加权和或平均值来导出用于生成包括在预定区域之外的预测目标样本的第一预测图像的右侧参考样本。
例如,如图19所示的示例中,在当前块是高度大于宽度的非正方形块时,可以从P(N/2,-1)导出包括在当前块中的预定区域中的位置(x,y)处的预测目标样本的右侧参考样本。例如,可以通过复制参考样本P(N/2,-1)的值来生成包括在预定区域中的预测目标样本的右侧参考样本。另一方面,可以基于P(N/2,-1)和P(-1,N)的加权和或平均值来导出包括在当前块中的预定区域外部的位置(x’,y’)处的预测目标样本的右侧参考样本。例如,可以通过对基于P(N/2,-1)和P(-1,N)导出的右下参考样本P(N/2,N)以及右上参考样本P(N/2,-1)进行插值来生成包括在预定区域外部的预测目标样本的右侧参考样本。
替选地,例如,如图20所示的示例中,在当前块是宽度大于高度的非正方形块时,可以从P(-1,N/2)导出包括在当前块中的预定区域中的位置(x,y)处的预测目标样本的下侧参考样本。例如,可以通过复制参考样本P(-1,N/2)的值来生成包括在预定区域中的预测目标样本的下侧参考样本。另一方面,可以基于P(N,-1)和P(-1,N/2)的加权和或平均值来导出包括在当前块中的预定区域外部的位置(x’,y’)处的预测目标样本的下侧参考样本。例如,可以通过对基于P(N,-1)和P(-1,N/2)导出的右下参考样本P(N,N/2)和左下参考样本P(-1,N/2)进行插值来生成包括在预定区域外部的预测目标样本的下侧参考样本。
作为另一示例,可以基于参考样本的加权和来生成包括在预定区域中的预测目标样本的第一预测图像或第二预测图像,并且可以使用参考样本的平均值、最小值或最大值或者仅使用参考样本中具有预定义位置的一个参考样本来生成在预定区域外部的预测目标样本的第一预测图像或第二预测图像。例如,如图19所示的示例中,在当前块是高度大于宽度的非正方形块时,可以仅使用根据P(N/2,-1)导出的右侧参考样本P(N/2,y)和位置P(-1,y)处的左侧参考样本之一来生成包括在当前块的预定区域中的位置(x,y)处的预测目标样本的第一预测图像。另一方面,可以基于从P(N/2,-1)导出的右侧参考样本P(N/2,y′)和在P(1,y′)的位置处的参考样本的加权和或平均值来生成不包括在预定区域中的位置(x′,y′)处的预测目标样本的第一预测图像。
替选地,如图20所示的示例中,在当前块是宽度大于高度的非正方形块时,可以仅使用根据P(-1,N/2)导出的下侧参考样本P(x,N/2)或位置P(x,-1)处的上侧参考样本中的一个来生成包括在当前块的预定区域中的位置(x,y)处的预测目标样本的第二预测图像。另一方面,可以基于从P(-1,N/2)导出的下侧参考样本P(x’,N/2)和在P(1,y’)的位置处的参考样本的加权和或平均值来生成不包括在预定区域中的位置(x’,y’)处的预测目标样本的第二预测图像。
在上述实施方式中,预定区域可以是与当前块的边界邻近的至少一个样本线或除样本线以外的其余区域之一。本文中,当前块的边界可以包括左侧边界、右侧边界、上侧边界或下侧边界中的至少一个。另外,可以根据当前块的形状不同地设置用于限定预定区域的边界的数目或位置。替选地,预定区域可以是与当前块的一个角邻接的块的形状。在这种情况下,可以基于当前块的大小或形状中的至少一项来确定预定区域的大小和形状。
在平面模式中,可以基于第一预测图像和第二预测图像的加权和、平均值、最小值或最大值来导出最终预测图像。
例如,下面的公式11示出了基于第一预测图像Ph和第二预测图像Pv的加权和来生成最终预测图像P的示例。
[公式11]
P(x,y)=(w*P
在公式11中,预测权重w可以根据当前块的形状、大小或预测目标样本的位置而不同。
作为示例,可以考虑当前块的宽度、当前块的高度、宽度与高度比率等来导出预测权重w。在当前块是宽度大于高度的非正方形块时,可以将w设置为将更高的权重应用于第一预测图像。另一方面,在当前块是高度大于宽度的非正方形块时,可以将w设置为将更高的权重应用于第二预测图像。
作为示例,在当前块是正方形时,预测权重w可以具有为1/2的值。另一方面,在当前块是高度大于宽度的非正方形块(例如,(N/2)×N)时,预测权重w可以被设置为1/4。另外,在当前块是宽度大于高度的非正方形块(例如,Nx(N/2))时,预测权重w可以被设置为3/4。
除了平面模式之外,还可以通过使用除左侧参考样本和上侧参考样本以外的参考样本来执行基于DC模式或方向性帧内预测模式的帧内预测。在以下实施方式中,左侧参考样本和上侧参考样本将被称为第一参考样本,左侧参考样本和上侧参考样本以外的参照样本将被称为第二参考样本。作为示例,第二参考样本可以包括当前块的右侧参考样本和/或下侧参考样本。本文中,下侧参考样本可以指具有比当前块中的下侧行的预测目标样本大的y轴坐标的参考样本,以及右侧参考样本可以指具有比当前块中的最右边一列的预测目标样本大的x轴坐标的参考样本。
可以基于当前块的大小、形状或帧内预测模式或预测目标样本的位置中的至少一项来确定是否使用第二参考样本执行帧内预测。例如,可以基于当前块的帧内预测模式是垂直模式、水平模式还是对角线模式来确定是否使用第二参考样本执行帧内预测。替选地,通过使用第二参考样本来执行包括在当前块的预定区域中的预测目标样本的帧内预测,而通过使用第一参考样本来执行不包括在当前块的预定区域中的预测目标样本的帧内预测。
替选地,可以通过比特流用信号发送指示是否使用第二参考样本的信息。该信息可以是1比特标志、用于确定当前块的帧内预测模式的索引等。
替选地,可以基于在当前块的相邻块中是否使用第二参考样本来确定是否使用第二参考样本。
可以基于第一参考样本来生成第二参考样本。作为示例,可以通过改变第一参考样本的顺序来配置第二参考样本,或者可以在特定位置处使用第一参考样本来导出第二参考样本。
图21是用于说明使用第一参考样本导出第二参考样本的示例的图。
首先,可以导出基于当前块的右上参考样本r(W,-1)和左下参考样本r(-1,H)导出的右下参考样本P(W,H)。详细地,可以通过右上参考样本和左下参考样本的加权和或平均值来导出右下参考样本。公式12示出了导出右下参考样本的示例。
[公式12]
如公式12所示,可以基于右上参考样本与左下参考样本之间的加权和来计算右下参考样本。在这种情况下,可以根据当前块的宽度和高度来确定施加到右上参考样本和左下参考样本的权重。例如,在当前块是正方形时,将相同的权重施加到右上参考样本和左下参考样本。相反,在当前块是非正方形时,可以将不同的权重施加到右上参考样本和左下参考样本。然而,公式12中所示的权重设置方法仅是本发明的示例,并且本发明不限于此。除了公式12中所示的示例之外,可以基于以下各项中的至少一项来确定权重:当前块的大小、形状或帧内预测模式,参考样本的可用性,相邻块的可用性,是否以帧内预测模式对相邻块进行编码或相邻块的帧内预测模式。
可以基于右上参考样本和右下参考样本来导出右侧参考样本。例如,可以通过对右上参考样本和右下参考样本进行插值来获得右侧参考样本。下面的公式13示出了导出右侧参考样本的示例。
[公式13]
如公式13所示,可以通过对右上参考样本r(W,-1)和右下参考样本P(W,H)进行加权预测来获得右侧参考样本Pr(W,y)(其中,y是0与CU高度(cu_height)之间的整数)。在这种情况下,可以基于当前块的宽度、高度或右侧参考样本的位置中的至少一项来确定应用于右上参考样本和右下参考样本的权重。例如,如公式13所示的示例中,将(H-1-y)/H的权重应用于右上参考样本,而将(y+1)/H的权重应用于右下参考样本。然而,公式13中所示的权重设置方法仅是本发明的示例,并且本发明不限于此。除了公式13中所示的示例之外,可以基于以下各项中的至少一项来确定权重:当前块的大小、形状或帧内预测模式,参考样本的可用性,相邻块的可用性,是否以帧内预测模式对相邻块进行编码或相邻块的帧内预测模式。
可以基于左下参考样本和右下参考样本来导出下侧参考样本。作为示例,可以通过对左下参考样本和右下参考样本进行插值来获得下侧参考样本。公式14示出了导出下侧参考样本的示例。
[公式14]
如公式14所示,可通过对左下参考样本r(-1,H)和右下参考样本P(W,H)进行加权预测来获得下侧参考样本Pb(x,H)(其中,x是0与CU宽度(cu_width)之间的整数)。在这种情况下,可以基于当前块的宽度、高度或下侧参考样本的位置中的至少一项来确定施加至左下参考样本和右下参考样本的权重。例如,如公式14所示的示例,将(W-1-x)/W的权重应用于左下参考样本,而将(x+1)/H的权重应用于右下参考样本。然而,公式14中所示的权重设置方法仅是本发明的示例,并且本发明不限于此。除了公式14中所示的示例之外,可以基于以下各项中的至少一项来确定权重:当前块的大小、形状或帧内预测模式,参考样本的可用性,相邻块的可用性,是否以帧内预测模式对相邻块进行编码或相邻块的帧内预测模式。
在当前块是非正方形时,可以基于以上参照图19和图20描述的示例来导出右侧参考样本和下侧参考样本。
如在上述示例中,可以使用固定位置的第一参考样本诸如右上参考样本和左下参考样本来导出第二参考样本诸如右侧参考样本和下侧参考样本。与上述示例不同,可以使用在与右上参考样本和/或左上参考样本不同位置处的第一参考样本来导出第二参考样本。例如,可以通过使用第一参考样本——诸如当前块的上侧中心参考样本或当前块的左侧中心样本——来导出右侧参考样本和下侧参考样本。
替选地,可以根据当前块的帧内预测模式来确定用于导出第二参考样本的第一参考样本。作为示例,可以基于由当前块的帧内预测模式的方向性指定的左侧参考样本和/或上侧参考样本来导出右侧参考样本和/或下侧参考样本。
替选地,可以使用多个左侧参考样本和/或多个上侧参考样本来确定第二参考样本。例如,可以基于多个左侧参考样本的加权和、平均值、最大值或最小值或者多个上侧参考样本的加权和、平均值、最大值或最小值来生成右侧参考样本、下侧参考样本或右下参考样本中的至少一个。
替选地,可以通过复制第一参考样本来生成第二参考样本。在这种情况下,用于生成第二参考样本的第一参考样本可以具有固定位置,或者可以根据当前块的大小、形状或帧内预测模式或第二参考样本的位置来自适应地确定。
在上面的示例中,尽管示出为具有W个下侧参考样本和H个右侧参考样本,但是可以导出更多数目的下侧参考样本和/或右侧参考样本。例如,可以将下侧参考样本导出到与最右边的上侧参考样本r(2W-1,-1)相同的垂直线,或者可以将右侧参考样本导出到高至与最低的左侧参考样本r(-1,2H-1)相同的水平线。
在这种情况下,可以通过对左下参考样本和右下参考样本进行外推来生成具有比w大的x坐标的下侧参考样本,或者可以通过对右下参考样本P(W,H)和最右边的下侧参考样本P(2W-1,H)进行插值来生成具有比w大的x坐标的下侧参考样本。最右边的下侧参考样本可以通过复制最右边的上侧参考样本r(2W-1,-1)来生成,或者可以通过最右边的上侧参考样本与左下参考样本之间的加权和运算来生成。具有比H大的y坐标的右侧参考样本可以通过对右上参考样本和右下参考样本进行外推而生成,或者可以通过对右下参考样本P(W,H)和最低的右侧参考样本P(W,2H-1)进行插值而生成。在这种情况下,最低的右侧参考样本可以通过复制最低的左侧参考样本r(-1,2H-1)而生成,或者可以通过最低的左侧参考样本与左上参考样本之间的加权和运算而生成。
基于第一参考样本和预定帧内预测模式,可以对当前块执行帧内预测,并且可以基于由帧内预测生成的预测样本来导出第二参考样本。在此,可以基于根据执行帧内预测的结果的预测样本或者基于预测样本的重构样本来导出第二参考样本。重构值可以是应用环路滤波器之前的值,或者可以是应用环路滤波器之后的值。
预测样本仅用于导出第二参考样本,并且可以不用作当前块的实际预测样本。也就是说,即使基于预定帧内预测模式执行帧内预测以便导出第二参考样本,也可以通过再次应用与预定帧内预测模式相同或不同的帧内预测模式来获得当前块的实际预测。
替选地,基于根据预定帧内预测模式获得的预测样本和根据与预定的帧内预测模式不同的预测模式获得的另外的预测样本,可以获得当前块的最终预测样本。可以基于预测样本与另外的预测样本之间的加权和运算或平均运算来获得最终预测样本。
在稍后描述的实施方式中,用于导出第二参考样本的预测样本将被称为临时预测样本。
用于获得临时预测样本的预定帧内预测模式可以包括平面模式、DC模式、水平模式、垂直模式和对角线模式中的至少一种。
图22是示出通过使用基于平面模式获得的临时预测样本来导出右侧参考样本和下侧参考样本的示例的图。
基于平面模式,可以获得当前块的临时预测样本。具体地,可以通过使用用于预测目标样本的第一预测样本和第二预测样本来生成预测目标样本的临时预测样本。可以使用在预测目标样本的水平方向上放置的参考样本来获得第一预测样本。作为示例,可以基于与预测目标样本具有相同y坐标的左侧参考样本和与右上角相邻的参考样本的加权和运算来生成第一预测样本。可以使用在预测目标样本的垂直方向上放置的参考样本来获得第二预测样本。作为示例,可以基于与预测目标样本具有相同x坐标的上侧参考样本和与左下角相邻的参考样本的加权和运算来生成第二预测样本。
可以通过复制与第二参考样本相邻的临时预测样本来生成第二参考样本。作为示例,可以通过复制位于当前块的右侧边界处的临时预测样本来生成右侧参考样本,并且可以通过复制位于当前块的下侧边界处的临时预测样本来生成下侧参考样本。
替选地,可以通过将偏移添加到与第二参考样本相邻的临时预测样本来导出第二参考样本。作为示例,可以通过将偏移添加到位于当前块的右侧边界处的临时预测样本来导出右侧参考样本,并且可以通过将偏移添加到位于当前块的下侧边界处的临时预测样本来导出下侧参考样本。该偏移可以是临时预测样本和与临时预测样本邻近的相邻临时预测样本之间的差值。
替选地,可以基于多个临时预测样本的插值或者多个临时预测样本的加权和运算或平均运算来生成第二参考样本。作为示例,可以基于位于当前块的右侧边界处的临时预测样本和与该临时预测样本邻近的相邻临时预测样本的加权和运算或平均运算来生成右侧参考样本。可以通过对位于当前块的下侧边界处的临时预测样本和与该临时预测样本邻近的相邻临时预测样本进行插值来生成下侧参考样本,或者可以基于临时预测样本的加权和运算或平均运算来生成下侧参考样本。
替选地,可以基于相邻参考样本的加权和运算或平均运算来导出第二参考样本。作为示例,可以通过复制位于当前块的右侧边界处的临时参考样本来导出与当前块的右侧边界邻近的右侧参考样本,并且可以通过复制位于当前块的下侧边界处的临时参考样本来导出与当前块的下侧边界邻近的下侧边界样本。在这种情况下,可以基于相邻右侧参考样本(例如,P(W,H-1))和相邻下侧参考样本(例如P(W-1,H))的加权和运算或平均运算来导出与当前块的右下角相邻的参考样本(例如,P(W,H))。
可以在编码器和解码器中预定义用于获得临时预测样本的预定帧内预测模式。替选地,可以通过比特流用信号发送用于确定预定帧内预测模式的信息。替选地,可以基于用于获得实际预测样本的帧内预测模式来确定预定帧内预测模式。
第一参考样本可以以一维排列以生成第一一维参考样本组,并且第二参考样本可以以一维排列以生成第二一维参考样本组。第一一维参考样本组可以仅被配置有第一参考样本,并且第二一维参考样本组可以仅被配置有第二参考样本。替选地,第一一维参考样本组可以被配置成不仅包括第一参考样本,而且还包括至少一个或更多个第二参考样本,以及第二一维参考样本组可以被配置成不仅包括第二参考样本,而且还包括至少一个或更多个第一参考样本。
图23是示出构成一维参考样本组的参考样本的图。
如图23(a)所示的示例中,第一一维参考样本组可以由当前块的左侧参考样本和上侧参考样本组成。
另一方面,如图23(b)所示的示例中,第二一维参考样本组可以被配置成不仅包括当前块的右侧参考样本和下侧参考样本,而且还包括一些左侧参考样本和一些上侧参考样本。
也就是说,左下参考样本r(-1,H)和左侧参考样本中的具有比左下参考样本大的y轴坐标的左侧参考样本可以被包括在第一一维参考样本组和第二一维参考样本组两者中。另外,上侧参考样本r(W,-1)和上侧参考样本中的具有比右上参考样本大的x轴坐标的上侧参考样本可以被包括在第一一维参考样本组和第二一维参考样本组中。
替选地,基于当前块的大小、形状或帧内预测模式中的至少一个,第一参考样本的一部分可以仅包括在第一一维参考样本组中,或者第一参考样本的一部分可以仅包括在第二一维参考样本组中。除了一维参考样本组的配置之外,还可以基于当前块的大小、形状或帧内预测模式中的至少一项来可变地确定构成一维参考样本组的参考样本的排列顺序。
为了便于描述,在以下描述的实施方式中,包括当前块的左侧参考样本和上侧参考样本的参考样本组将被称为第一参考样本组(例如,第一一维参考样本组),包括当前块的右侧参考样本和下侧参考样本的参考样本组将被称为第二参考样本组(例如,第二一维参考样本组)。例如,可以根据是否包括右侧参考样本和下侧参考样本来对第一参考样本组和第二参考样本组进行分类。另外,为了执行预测目标样本的帧内预测,从第一参考样本组中选择的参考样本将被称为第一参考目标样本,并且从第二参考样本组中选择的参考样本将被称为第二参考目标样本。
可以使用第一参考样本组或第二参考样本组中的至少一个来执行当前块的帧内预测。例如,可以基于从第一参考样本组中选择的第一参考目标样本或从第二参考样本组中选择的第二参考目标样本中的至少一个来获得当前块中的预测目标样本的预测值。在这种情况下,可以基于当前块的形状、大小或帧内预测模式中的至少一个来确定第一参考目标样本和/或第二参考目标样本。例如,当确定了当前块的帧内预测模式时,可以根据所确定的帧内预测模式的方向来指定预测目标样本的第一参考目标样本,以及可以根据所确定的帧内预测模式的相反方向来指定预测目标样本的第二参考目标样本。替选地,可以根据所确定的帧内预测模式的方向来指定第一参考目标样本和第二参考目标样本。
图24和图25是示出第一参考目标样本和第二参考目标样本的位置的图。
图24示出了如下示例,其中放置在由当前块的帧内预测模式指示的方向上的参考样本被确定为第一参考目标样本,并且放置在与该方向相反的方向上的参考样本被确定为第二参考目标样本。
在当前块的帧内预测模式是在右上对角线方向上时,可以将第一参考样本组中包括的参考样本中的从预测目标样本放置到右上对角线方向上的参考样本确定为第一参考目标样本。另外,可以将第二参考样本组中包括的参考样本中的放置在与右上对角线方向(即,左下对角线方向)相反方向上的参考样本确定为第二参考目标样本。
图25示出了如下示例:其中放置在由当前块的帧内预测样本指示的方向上的参考样本被分别确定为第一参考目标样本和第二参考目标样本。
在当前块的帧内预测模式指示右上方向时,可以将第一参考样本组中包括的参考样本中的放置在预测目标样本的右上方向上的参考样本确定为第一参考目标样本,并且可以将第二参考样本组中包括的参考样本中的放置在预测目标样本的右上方向上的参考样本确定为第二参考目标样本。在图25(a)中,示出了选择上侧参考样本作为第一参考目标样本并且选择右侧参考样本作为第二参考目标样本。
在当前块的帧内预测模式指示左下方向时,可以将第一参考样本组中包括的参考样本中的放置在预测目标样本的左下方向上的参考样本确定为第一参考目标样本,并且可以将第二参考样本组中包括的参考样本中的放置在预测目标样本的左下方向上的参考样本确定为第二参考目标样本。在图25(b)中,示出了选择左侧参考样本作为第一参考目标样本并且选择下侧参考样本作为第二参考目标样本。
替选地,可以基于第一参考目标样本的位置来确定第二参考目标样本的位置,或者可以基于第二参考目标样本的位置来确定第一参考目标样本的位置。例如,可以选择与第一参考目标样本具有相同的x坐标或相同的y坐标的第二参考目标样本,或者可以选择具有通过向第一参考目标样本的x坐标或y坐标加上偏移而导出的位置的第二参考目标样本。本文中,偏移可以具有固定值或者可以根据当前块的大小、形状或帧内预测模式来自适应地确定。
替选地,可以基于预测目标样本的位置来确定第一参考目标样本和/或第二参考目标样本的位置。例如,可以选择与预测目标样本具有相同的x坐标或相同的y坐标的第一参考目标样本和/或第二参考目标样本,或者可以选择具有通过向预测目标样本的x坐标或y坐标加上偏移而获得的位置的第一参考目标样本和/或第二参考目标样本。本文中,偏移可以具有固定值或者可以根据当前块的大小、形状或帧内预测模式来自适应地确定。
可以基于根据第一参考目标样本的第一预测图像或根据第二参考目标样本的第二预测图像中的至少一个来生成预测目标样本的预测值。在这种情况下,可以基于通过上述公式8至公式10的以上描述生成第一预测图像。
可以通过对根据当前块的帧内预测模式的斜率指定的第二参考目标样本进行插值或复制来生成第二预测图像。例如,公式15是示出通过复制第二参考目标样本来导出第二预测图像的示例的图。
[公式15]
P
在公式15中,P2(x,y)代表第二预测图像,而P_2nd_1D(x+iIdx+1+f)代表第二参考目标样本。
当仅一个第二参考目标样本不能表示当前块的帧内预测模式的斜率时,可以通过对多个第二参考目标样本进行插值来生成第二预测图像。具体地,当跟随帧内预测模式的斜率和/或角度的假想角线没有经过整像素(即,整数位置的参考样本)时,可以通过对与角线的左侧和右侧或上侧和下侧邻近的第二参考样本进行插值来获得第二预测图像。例如,公式16示出了通过对第二参考样本进行插值来获得第二预测图像的示例。
[公式16]
可以基于权重相关参数ifact来确定插值滤波器的系数。作为示例,可以基于位于角线上的分数像素与整数像素(即,每个参考样本的整数位置)之间的距离来确定插值滤波器的系数。
在公式16中,示出了使用抽头数为2的插值滤波器,但是可以替代地使用抽头数大于2的插值滤波器。
可以基于第一预测图像或第二预测图像中的至少一个来获得预测目标样本的最终预测图像。例如,可以将第一预测图像确定为预测目标样本的最终预测图像,或者可以将第二预测图像确定为预测目标样本的最终预测图像。替选地,可以基于第一预测图像和第二预测图像的加权和或平均值来确定预测目标样本的最终预测图像。
图26是示出基于第一参考目标样本和第二参考目标样本的加权和运算来获得预测样本的示例的图。
可以基于第一预测图像和第二预测图像的加权和运算来获得预测目标样本的预测值。换句话说,可以基于第一参考目标样本和第二参考目标样本的加权和运算来获得预测值。
公式17示出了基于第一预测图像和第二预测图像的加权运算来获得最终预测样本的示例。
[公式17]
P(x,y)=w(x,y)×P
在公式17中,Pl(x,y)表示第一预测图像或第一参考目标样本,并且P2(x,y)表示第二预测图像或第二参考目标样本。另外,w(x,y)表示应用于第一预测图像的权重。
可以基于预测目标样本的位置来确定应用于每个预测目标样本的权重。例如,下面的公式18示出了确定权重w的示例。
[公式18]
w=(x+y)/N
在公式18中,x代表预测目标样本的x轴坐标,并且y代表预测目标样本的y轴坐标。N表示第一参考目标样本与第二参考目标样本之间的L1范数。例如,如果第一参考目标样本的坐标是(x0,y0),并且第二参考目标样本的坐标是(x1,y1),则可以将N定义为|x0-x1|+|y0-y1|。
替选的,可以基于预测目标样本的位置或者当前块的大小、形状或帧内预测模式中的至少一项来确定分配给第一预测图像和第二预测图像的权重。例如,公式19示出了根据当前块的大小和预测目标样本的位置来确定权重的示例。
[公式19]
在公式19中,W和H分别表示当前块的宽度和高度,并且(x,y)表示预测目标样本的坐标。
如公式19所示的示例中,随着预测目标样本更接近当前块的左上角,可以增加要施加到第一预测图像的权重。另外,随着预测目标样本更接近当前块的右下角,可以增加施加到第二预测图像的权重。
替选地,可以根据当前块的相邻块导出权重。本文中,当前块的相邻块可以包括上侧相邻块、左侧相邻块或与当前块的角邻近的相邻块(例如,左上相邻块、右上相邻块或左下相邻块)中的至少一种。
替选地,可以经由比特流用信号发送用于确定权重的信息。该信息可以指示应用于第一预测图像或第二预测图像的权重值,或者可以指示当前块与相邻块之间的权重差值。
替选地,第一预测图像可以被设置为当前块的第一区域中的最终预测图像,并且第二预测图像可以被设置为当前块的第二区域中的最终预测图像。可以通过基于垂直线、水平线或对角线将当前块一分为二来生成第一区域和第二区域。例如,第一区域和第二区域可以是通过对当前块进行划分而生成的矩形或三角形划分。可以通过对第一预测图像和第二预测图像进行加权预测来获得与第一区域和第二区域之间的边界邻近的位置的预测值。在这种情况下,可以基于预测目标样本的位置、当前块的大小、形状或帧内预测模式中的至少一个来确定应用于第一预测图像和第二预测图像的权重。
如在上述示例中,基于多个预测图像获得最终预测图像可以被称为双向帧内预测(或双帧内预测)。
双帧内预测可以仅应用于当前块中的部分区域。在这种情况下,可以在编码器和解码器中预定义应用双帧内预测的区域。例如,双帧内预测可以应用于与当前块的右下角邻近的预定大小(例如4×4)的块。替选地,可以根据当前块的大小、形状或帧内预测模式来自适应地确定应用双帧内预测的区域。替选地,可以通过比特流用信号发送用于确定应用双帧内预测的区域的信息(例如,指示区域的大小或位置的信息)。
图28是示出应用双向帧内预测的区域的图。
在应用双向帧内预测的区域中,可以通过第一预测图像和第二预测图像的加权预测来获得最终预测样本。另一方面,在没有应用双向帧内预测的区域中,可以将第一预测图像或第二预测图像确定为最终预测样本。
应用双向帧内预测的区域可以具有矩形形状或三角形形状。
在以上示例中,已经描述了使用从第一样本组中选择的第一参考目标样本和从第二样本组中选择的第二参考目标样本来执行双向帧内预测。与所描述的示例不同,还可以从第一样本组中选择多个参考样本以执行双向帧内预测,或者从第二样本组中选择多个参考样本以执行双向帧内预测。例如,在当前块的帧内预测模式具有右上对角线方向或左下对角线方向时,可以通过从第一样本组中选择上侧参考样本和左侧参考样本来执行双向帧内预测。也就是说,可以通过对基于上侧参考样本获得的第一参考图像和基于下侧参考样本获得的第二参考图像进行加权预测来获得当前块的最终预测样本。
替选地,根据帧内预测模式,可以通过从第二样本组中选择右侧参考样本和下侧参考样本来执行双向帧内预测。
双向帧内预测可以被定义为独立的帧内预测模式。例如,可以通过定义N个方向性预测模式和与N个方向性预测模式对应的N个双向帧内预测模式来定义总共2N+2个帧内预测模式。例如,通过将双向帧内预测模式添加到图9中所示的帧内预测模式,可以定义总共68个帧内预测模式(也就是,两个非方向性帧内预测模式,33个方向性帧内预测模式和33个双向帧内预测模式)。当然,也可以使用多于或少于33个的方向性帧内预测模式或可以使用多于或少于33个的双向帧内预测模式。
替选地,在确定当前块的帧内预测模式之后,可以确定是否使用所确定的帧内预测模式来切换到双向预测模式。例如,当确定当前块的帧内预测模式时,可以对关于是否将所确定的帧内预测模式用作双向帧内预测模式的信息进行编码。该信息可以是1比特标志(例如,bi_intra_flag),但不限于此。bi_intra_flag的值为0表示执行方向性帧内预测,而bi_intra_flag的值为1表示执行双向帧内预测。也就是说,当bi_intra_flag的值是0时,第一预测图像被确定为当前块的最终预测样本,而当bi_intra_flag的值是1时,第一预测图像和第二预测图像的加权预测可以被确定为当前块的最终预测样本。
替选地,根据与当前块邻近的相邻块是否使用了双向帧内预测模式,可以确定当前块是否使用双向帧内预测模式。例如,在当前块的帧内预测模式与基于相邻块的帧内预测模式导出的候选(即,MPM候选)相同时,是否对当前块使用双向帧内预测模式可以以与在相邻块中是否使用双向帧内预测模式相同的方式来确定。
替选地,可以基于当前块的大小和/或形状来确定是否执行双向帧内预测。例如,仅对32×32或更大的块允许双向帧内预测。因此,在当前块的大小小于32×32时,可以不应用双向帧内预测,而在当前块的大小是32×32时,可以应用双向帧内预测。
作为另一个示例,可以仅对正方形块允许双向帧内预测,或者可以仅对非正方形块允许双向帧内预测。
替选地,双向帧内预测可以仅应用于方向性帧内预测模式的一部分。例如,图26是标识和指示允许双向帧内预测的方向性预测模式的示例。如图26所示的示例中,仅水平方向与垂直方向之间的帧内预测模式的一部分允许双向帧内预测。在这种情况下,当在范围内选择帧内预测模式时,默认可以执行双向帧内预测,或者可以基于通过比特流解析的信息或当范围内的帧内预测模式被选择时当前块的大小或形状中的至少一项来确定是否执行双向帧内预测模式。
允许双向帧内预测的帧内预测模式不限于图26所示的示例。可以在编码器和解码器中预定义允许双向帧内预测的帧内预测模式,或者可以根据当前块的大小和/或形状来自适应地确定允许双向帧内预测的帧内预测模式。替选地,可以通过比特流用信号发送用于确定允许双向帧内预测的帧内预测模式的信息。
图29是示出根据本发明的确定是否应用双向帧内预测模式的过程的流程图。
首先,可以确定当前块的帧内预测模式是否是非方向性模式(S2710)。非方向性模式可以包括平面和DC中的至少一个。
可以通过比特流用信号发送指示当前块的帧内预测模式是否是非方向性模式的信息。例如,可以通过比特流用信号发送指示当前块的帧内预测模式是否是非方向性模式的标志、指示当前块的帧内预测模式是否是平面模式的标志或指示当前块的帧内预测模式是否是DC模式的标志中的至少一个标志。
替选地,可以基于MPM候选或残差模式信息来确定当前块的帧内预测模式。
在当前块的帧内预测模式是非方向性模式时,双向帧内预测不应用于当前块(S2720)。
在当前块的帧内预测模式不是非方向性模式时,可以确定是否将双向帧内预测应用于当前块(S2730)。可以基于从比特流解析的信息、当前块的形状、当前块的大小或当前块的帧内预测模式来确定是否将双向帧内预测应用于当前块。
例如,可以基于从比特流解析的标志(例如,bi_pred_flag)来确定是否将双向帧内预测应用于当前块。bi_pred_flag的值为0指示双向帧内预测没有被应用于当前块,而bi_pred_flag的值为1指示双向帧内预测被应用于当前块。替选地,可以基于当前块的帧内预测模式是否是应用双向帧内预测的方向性预测模式来确定是否将双向帧内预测应用于当前块。
为了执行单向或双向帧内预测,可以导出当前块的参考样本。参考样本可以包括与当前块的左侧和上侧邻近的第一参考样本以及与当前块的右侧和下侧邻近的第二参考样本。仅在将双向帧内预测应用于当前块时才可以导出第二参考样本。
如果没有将双向帧内预测应用于当前块,则可以根据当前块的帧内预测模式执行单向帧内预测(S2740)。在单向帧内预测中,可以基于第一参考样本中的至少一个来获得预测样本。
当双向帧内预测被应用于当前块时,可以根据当前块的帧内预测模式来执行双向帧内预测(S2750)。在双向帧内预测中,可以根据基于第一参考目标样本中的至少一个获得的第一预测图像和基于第二参考目标样本中的至少一个获得的第二预测图像来获得预测样本。第一参考目标样本和第二参考目标样本可以基于帧内预测模式的方向性来确定,或者可以基于当前块的大小、形状或其他基本参考样本的位置来确定。当获取第一预测图像和第二预测图像时,可以通过第一预测图像和第二预测图像的加权预测来获得预测样本。
作为另一示例,在将当前块划分为多个区域之后,可以对每个划分后的区域执行帧内预测。例如,对于当前块中包括的第一区域,可以使用第一参考样本组中包括的参考样本来执行帧内预测。另一方面,对于当前块中包括的第二区域,可以使用基于第一区域的预测值或重构值而导出的参考样本、第一参考样本组中包括的参考样本或第二参考样本组中包含的参考样本来执行帧内预测。
在这种情况下,应用于第一区域的第一帧内预测模式和应用于第二区域的第二帧内预测模式可以彼此相同或不同。作为示例,可以由编码器和解码器来预定义第一帧内预测模式和第二帧内预测模式中的任何一个。例如,第一帧内预测模式和第二帧内预测模式中的任何一个可以是平面模式、DC模式、水平模式、垂直模式或对角线模式。替选地,可以基于当前块的大小、形状或划分类型中的至少一个来可变地确定第一帧内预测模式和第二帧内预测模式中的任何一个。例如,在当前块的宽度大于高度时,可以将第一帧内预测模式和第二帧内预测模式中的任何一个确定为垂直模式。另一方面,在当前块的高度大于宽度时,可以将第一帧内预测模式和第二帧内预测模式中的任何一个确定为水平模式。在当前块的宽度和高度相同时,可以将第一帧内预测模式和第二帧内预测模式中的任一个确定为平面模式或DC模式。
可以使用基于MPM候选的导出方法来确定第一帧内预测模式和第二帧内预测模式中的另一个。
第一区域和第二区域中的每一个可以包括当前块中包括的至少一个样本。例如,第一区域可以包括在当前块的左侧(或右侧)的n个列或在当前块的上侧(或下侧)的m个行中的至少一者。n和m可以是1、2或更大的整数。替选地,可以基于当前块的大小、形状或帧内预测模式中的至少一项来确定n和m。第二区域可以是除第一区域以外的剩余区域或剩余区域的部分区域。
一个编码块可以被划分为多个子块,并且可以对每个子块执行帧内预测。如上所述的帧内预测方法可以被称为多帧内预测方法。
通过划分一个编码块而生成的子块可以具有N×M的形式。在此,N和M是1或更大的整数,并且N和M可以彼此相同或不同。可以基于当前块的大小、形状或帧内预测模式中的至少一项来确定编码块中包括的子块的大小或子块的数目。
可以将一种帧内预测模式应用于多个子块。在这种情况下,可以基于与第一子块相邻的参考样本来执行针对第一子块的帧内预测,并且可以基于与第二子块相邻的参考样本来执行针对第二子块的帧内预测。当第一子块位于第二子块的左侧或上侧时,可以根据第一子块的重构样本导出第二子块的参考样本中的至少一个。
可替选地,可以将不同的帧内预测模式或不同的方向性帧内预测模式应用于每个子块。在这种情况下,当第一子块的帧内预测模式是非定向性模式时,第二子块的帧内预测模式也可以被设置为具有非定向性模式。例如,当DC模式被应用于第一子块时,可以将平面模式应用于第二子块。可替选地,可以基于应用于第一子块的帧内预测模式来导出应用于第二子块的帧内预测模式。例如,可以通过给应用于第一子块的帧内预测模式添加偏移或从应用于第一子块的帧内预测模式减去偏移来导出应用于第二子块的帧内预测模式。可以基于当前块的大小、当前块的形状或第一子块的帧内预测模式中的至少一个来确定偏移。可替选地,可以通过比特流用信号发送用于确定偏移的信息。可替选地,第二子块的帧内预测模式可以被设置为与应用于第一子块的帧内预测模式相反的角度,或者可以被设置为与应用于第一子块的帧内预测模式具有预定角度差的帧内预测模式。
可替选地,可以使用预定义的映射表根据第一子块的帧内预测模式导出第二子块的帧内预测模式。映射表可以定义帧内预测模式之间的对应关系。可以在编码器和解码器中预定义映射表。
可替选地,可以独立地用信号发送用于确定第一子块的帧内预测模式的信息和用于确定第二子块的帧内预测模式的信息。
可替选地,可以将非宽角度帧内预测模式应用于第一子块,并且可以将宽角度帧内预测模式应用于第二子块。可以基于当前块的大小或形状来确定是否将宽角度帧内预测模式应用于子块。非宽角度帧内预测模式可以是具有预定义角度的帧内预测模式,也可以是与宽角度帧内预测模式的角度(或索引)差为预定义值的帧内预测模式。
图30示出了对其应用多帧内预测方法的实施方式。
在将非正方形编码块划分为多个子块之后,可以将非宽角度帧内预测模式应用于第一子块,并且可以将宽角度帧内预测模式应用于第二子块。
在此,可以根据块之间的扫描顺序来确定第一子块和第二子块。
与示出的示例相反,可以将宽角度帧内预测模式应用于第一子块,并且可以将非宽角度帧内预测模式应用于第二子块。
可以基于当前块的大小或形状来确定是否应用多帧内预测方法。例如,在当前块是非正方形类型时,可以将其设置为应用多帧内预测方法。可替选地,可以通过比特流用信号发送指示是否应用多帧内预测方法的信息。作为示例,可以通过序列头、图片头、片头或块头来用信号发送指示是否应用多帧内预测方法的语法isMultipleIntra_flag。例如,当isMultipleIntra_flag的值是1时,可以意指将多帧内预测方法应用于所有非正方形编码单元。另一方面,当isMultipleIntra_flag的值为0时,可以意指多帧内预测方法没有应用于所有非正方形编码单元。
可替选地,可以基于编码信息来确定是否应用多帧内预测方法。编码信息可以包括当前块的大小、形状或分割类型中的至少一种。例如,在当前块的大小大于阈值时或在当前块的大小小于阈值时,可以应用多帧内预测方法。阈值可以表示其中允许多帧内预测方法的块的最大大小或最小大小。可以由编码器和解码器来预定义该阈值。可替选地,可以通过比特流用信号发送用于确定阈值的信息。作为另一示例,当较高节点的分割类型是第一类型时,可以允许多帧内预测方法,并且当较高节点的分割类型是第二类型时,可以不允许多帧内预测方法。第一类型包括四叉树划分、二叉树划分或三叉树划分中的至少一个,并且第二类型包括除第一类型之外的分割类型。
当应用于每个子块的帧内预测模式不同时,可以在子块的边界处应用平滑滤波器。
图31是示出应用平滑滤波器的示例的图。
平滑滤波器可以应用于位于第一子块与第二子块之间的边界处的样本。在这种情况下,对其应用平滑滤波器的样本可以是预测样本或基于该预测样本修复的重构样本。可以基于第一子块中包括的n个样本和第二子块中包括的m个样本使用滤波值来修改位于第一子块的边界处的样本。另外,可以基于第二子块中包括的n个样本和第一子块中包括的m个样本将位于第二子块的边界处的样本修改为滤波值。在此,n和m可以是1、2或更大的整数。
在图31(a)所示的示例中,位于第一子块的边界处的样本q可以被修改为通过将平滑滤波器应用于样本q、位于样本q的左侧处的样本p和位于样本q的右侧处的样本r而计算的值。在此,样本q和样本p被包括在第一子块中,并且样本r被包括在第二子块中。
在图31(b)所示的示例中,位于第二子块的边界处的样本r可以被修改为通过将平滑滤波器应用于样本r、位于样本r的左侧处的样本q以及位于样本r的右侧处的样本s而计算的值。在此,样本q被包括在第一子块中,并且样本r和s被包括在第二子块中。
平滑滤波器的系数可以是{1、2、1}。
在图31中,示出了平滑滤波器仅应用于位于第一子块与第二子块之间的边界处的样本,但是本发明不限于此。平滑滤波器可以被应用于从第一子块和第二子块的边界到第k行(列或行)所包括的样本。在此,k可以是1、2或更大的整数。可以基于当前块的大小、形状或帧内预测模式中的至少一项来确定对其应用平滑滤波器的行的数目。
在平滑滤波器中使用的样本可以沿着水平方向或垂直方向排列成一行。例如,如图31所示的示例中,当子块沿水平方向排列成一行时,可以使用沿水平方向排列成一行的样本来执行滤波。另一方面,当子块沿垂直方向排列成一行时,可以使用沿垂直方向排列成一行的样本来执行滤波。
可替选地,可以基于帧内预测模式来确定在平滑滤波器中使用的样本的位置。例如,当第一子块的帧内预测模式是对角线方向时,可以使用位于第一子块的边界处的样本和位于样本的对角线方向上的样本来执行滤波。
平滑滤波器可以顺序地应用于子块。例如,在将平滑滤波器应用于第一子块的边界之后,可以将平滑滤波器应用于第二子块的边界。可替选地,可以将平滑滤波器并行地或独立地应用于多个子块。
将着重于解码处理或编码处理描述的实施方式应用于编码处理或解码处理包括在本发明的范围内。将以预定顺序描述的实施方式改变为不同顺序也包括在本发明的范围内。
尽管已经基于一系列步骤或流程图描述了上述实施方式,但是上述实施方式并不旨在限制本发明的时间序列顺序,并且可以同时或以不同的顺序执行。另外,组成上述实施方式中的框图的部件(例如,单元、模块等)中的每个可以被实现为硬件装置或软件,并且多个部件可以组合成一个硬件装置或软件。上述实施方式可以以程序指令的形式实现,所述程序指令可以通过各种计算机部件执行并且被记录在计算机可读记录介质中。计算机可读存储介质可以单独地或以其组合包括程序指令、数据文件、数据结构等。计算机可读存储介质的示例包括:磁记录介质例如硬盘、软盘和磁带;光学数据存储介质例如CD-ROM或DVD-ROM;磁光介质例如光盘;以及硬件装置例如只读存储器(ROM)、随机存取存储器(RAM)和闪存,这些计算机可读存储介质被特别地结构化以存储和实现程序指令。硬件装置可以被配置成由一个或更多个软件模块操作或者软件模块可以被配置成由一个或更多个硬件装置操作,以进行根据本发明的处理。
本发明可以应用于能够对图像进行编码/解码的电子装置。
- 视频信号处理设备和视频信号处理方法、视频信号编码设备和视频信号编码方法、及程序
- 视频信号处理设备和视频信号处理方法、视频信号编码设备和视频信号编码方法、及程序