掌桥专利:专业的专利平台
掌桥专利
首页

视频信号处理方法及装置

文献发布时间:2024-04-18 19:58:30


视频信号处理方法及装置

本专利申请是国际申请日为2018年9月20日、国家申请号为201880035814.5、发明名称为“视频信号处理方法及装置”的专利申请的分案申请。

技术领域

本发明涉及视频信号处理方法及装置。

背景技术

近年,在各应用领域对HD(High Definition)图像以及UHD(Ultra HighDefinition)图像之类的高分辨率、高品质图像的需求增加。由于图像数据的分辨率、品质变得越高,数据量相对于现有图像数据越增加,因此如果利用现有的有无线宽频带电路之类的介质传送图像数据或者利用现有的存储介质进行存储,则传送费用和存储费用增加。为了解决伴随图像数据的高分辨率、高品质化所发生的这些问题,可以使用高效的图像压缩技术。

作为图像压缩技术,存在各种技术,如根据当前图片的上一个或者下一个图片预测当前图片所包含的像素值的画面间预测技术,利用当前图片内的像素信息预测当前图片所包含的像素值的画面内预测技术,对出现频率高的值分配短码,对出现频率低的值分配长码的熵编码技术,等等,能够利用这种图像压缩技术有效地压缩图像数据后实施传送或者存储。

另一方面,随着对高分辨率图像的需求的增加,作为新的图像服务,对立体图像内容的需求也同时增加。正对用于有效地提供高分辨率以及超高分辨率的立体图像内容的视频压缩技术进行讨论。

发明内容

本发明的目的在于,提供在对视频信号进行编码/解码时能够对编码/解码对象块有效地执行帧内预测的方法以及装置。

本发明的目的在于,提供在对视频信号进行编码/解码时利用不相邻的多个参照样本来执行帧内预测的方法以及装置。

本发明的目的在于,提供在对视频信号进行编码/解码时利用右侧以及下端参照样本来执行帧内预测的方法以及装置。

本发明的目的在于,提供在对视频信号进行编码/解码时适应性地决定计算DC值所利用的参照样本的范围的方法以及装置。

本发明的目的在于,提供在对视频信号进行编码/解码时通过对参照样本之间赋予不同的权重来计算DC值的方法以及装置。

本发明的目的在于,提供在对视频信号进行编码/解码时按照子块单位计算DC值的方法以及装置。

本发明所要解决的技术课题不限于上文中提到的技术课题,对于未提及的其他技术课题,本发明所属技术领域的普通技术人员能够根据以下记载明确理解。

本发明所涉及的视频信号解码方法以及装置,可以为:决定当前块的帧内预测模式,在上述当前块的帧内预测模式为DC模式的情况下,利用上述当前块的周边的参照样本来决定DC值,并且基于上述DC值来导出上述当前块的预测样本。此时,可以按照上述当前块内每个单位区域获取上述DC值。

本发明所涉及的视频信号编码方法以及装置,可以为:决定当前块的帧内预测模式,在上述当前块的帧内预测模式为DC模式的情况下,利用上述当前块的周边的参照样本来决定DC值,并且基于上述DC值来导出上述当前块的预测样本。此时,可以按照上述当前块内每个单位区域获取上述DC值。

本发明所涉及的视频信号编码/解码方法以及装置中,可以为:将按照上述每个单位区域获取上述DC值时所使用的参照样本的范围决定为不同。

本发明所涉及的视频信号编码/解码方法以及装置中,可以为:上述参照样本包括左侧参照样本、上端参照样本、右侧参照样本或者下端参照样本中的至少一个。

本发明所涉及的视频信号编码/解码方法以及装置中,可以为:与上述当前块的上端边界以及左侧边界接触的第一区域的DC值基于上述左侧参照样本以及上述上端参照样本来获取,与上述当前块的右侧边界以及下端边界接触的第二区域的DC值基于上述右侧参照样本以及上述下端参照样本来获取。

本发明所涉及的视频信号编码/解码方法以及装置中,可以为:上述单位区域为规定大小的子块。

本发明所涉及的视频信号编码/解码方法以及装置中,可以为:将上述当前块以右侧上端对角线为基准分割成多个区域。

本发明所涉及的视频信号编码/解码方法以及装置中,可以为:上述DC值基于上述当前块的左侧参照样本以及上端参照样本来获取,并且按照上述每个单位区域将赋予上述左侧参照样本以及上述参照样本的权重决定为不同。

在上文中对本发明进行简要概括的特征,只是后述本发明详细说明的示例性形态,并非限定本发明的范围。

根据本发明,能够对编码/解码对象块有效地执行帧内预测。

根据本发明,优点在于,通过利用不相邻的多个参照样本来执行帧内预测,由此能够提高帧内预测的效率。

根据本发明,优点在于,通过利用右侧以及下端参照样本,能够提高帧内预测的效率。

根据本发明,优点在于,可以通过适应性地决定计算DC值时所使用的参照样本的范围,能够提高帧内预测的效率。

本发明具有如下效果,即,在对视频信号进行编码/解码时,可以通过对参照样本之间赋予不同的权重来计算DC值,由此能够提高帧内预测的效率。

根据本发明,优点在于,通过按照子块单位计算DC值,能够提高帧内预测的效率。

本发明所能获得的效果不限于上文提到的效果,对于未提到的其他效果,本发明所属技术领域的普通技术人员能够根据以下记载明确理解。

附图说明

图1为表示本发明的一实施例所涉及的图像编码装置的框图。

图2为表示本发明的一实施例所涉及的图像解码装置的框图。

图3为适用本发明的一实施例,表示基于树结构(tree structure)对编码块分层次进行分割的示例的图。

图4为适用本发明的一实施例,表示允许基于二叉树的分割的分区形态的图。

图5为适用本发明的一实施例,表示只允许特定形态的基于二叉树的分割的示例的图。

图6为适用本发明的一实施例,表示用于说明对与二叉树分割允许次数有关的信息进行编码/解码的示例的图。

图7为适用本发明的一实施例,表示能够适用于编码块的分区模式的图。

图8为适用本发明的一实施例,表示在图像编码器/解码器事先定义的帧内预测模式的种类的图。

图9为适用本发明的一实施例,表示扩展帧内预测模式的种类的图。

图10为适用本发明的一实施例,表示简要示出帧内预测方法的顺序图。

图11为适用本发明的一实施例,表示基于周边样本的差分信息来补正当前块的预测样本的方法的图。

图12以及图13为表示将参照样本重新排成一列的一维参照样本组的图。

图14为表示利用多个参照样本导出右侧参照样本或者下端参照样本的示例的图。

图15以及图16为用于说明本发明的一实施例所涉及的对非正方形块决定右侧参照样本以及下端参照样本的图。

图17为用于说明利用第一参照样本导出第二参照样本的示例的图。

图18为表示构成一维参照样本组的参照样本的图。

图19为表示适用双向帧内预测的区域的图。

图20为识别表示允许双向帧内预测的方向性预测模式的示例。

图21为基于本发明所涉及的双向帧内预测模式的当前块的帧内预测方法的流程图。

图22为表示根据参照样本的位置适用不同权重的示例的图。

图23以及图24为在当前块为非正方形形态的情况下适用于参照样本的权重。

图25为表示将按照每个区域导出DC值时所使用的参照样本的范围决定为不同的示例的图。

图26为表示将按照每个区域导出DC值时所使用的参照样本的范围决定为不同的示例的图。

图27为表示将按照每个子块赋予参照样本的权重设定为不同的示例的图。

具体实施方式

本发明可以实施各种变更,并且可以具有多种实施例,下面在图中例示特定实施例,进行详细说明。然而,这并非要将本发明限定在特定的实施方式,应理解本发明的思想以及技术范围所包含的所有变更、等同物乃至代替物均包含在其中。在对各附图的说明中,类似的附图标记使用在类似的结构要素上。

第一、第二等用语虽然可以使用在对各种构成要素的说明中,但上述构成要素并非限定在上述用语。使用上述用语的目的仅在于,将一个构成要素与另一结构要素进行区分。例如,在不脱离本发明权利范围的前提下,第一构成要素可以被命名为第二结构要素,类似地,第二结构要素也可以被命名为第一结构要素。“和/或”这一用语包含多个相关记载项目的组合或者多个相关记载项目中的任一项目。

在提及某一结构要素“连接于”或者“接入”另一结构要素时,虽然可以直接连接于或者接入另一结构要素,但也应该理解成中间也可以存在其他构成要素。相反,在提及某一结构要素“直接连接于”或者“直接接入”另一结构要素时,应当理解成中间不存在其他结构要素。

本申请中所使用的用语仅为了说明特定实施例而使用,并非意图限定本发明。单数表现形式包含复数表现形式,除非在文脉上存在明确的不同含义。在本申请中,“包含”或者“具有”等用语,应当理解成用于指定说明书中所记载的特征、数字、步骤、动作、结构要素、部件或他们的组合的存在,而非事先排除一个或一个以上的其他特征或数字、步骤、动作、结构要素、部件或它们的组合的存在或附加可能性。

下面,参照附图,对本发明的优选实施例进行更详细的说明。以下,对于图中的同一结构要素使用同一附图标记,对于同一结构要素省略重复的说明。

图1为表示本发明的一实施例所涉及的图像编码装置的框图。

参照图1,图像编码装置100可包括图片分割部110、预测部120、125、转换部130、量化部135、重新整理部160、熵编码部165、反量化部140、反转换部145、滤波部150以及存储部155。

对于图1所示出的各结构部,为了在图像编码装置中表示出相互不同的特定功能而单独地示出,并非意味着各结构部由分离的硬件或者一个软件结构单位构成。即,各结构部为了便于说明而以各个结构部的形式罗列包含进来,各结构部中至少两个结构部可以合在一起构成一个结构部、或者一个结构部分为多个结构部而执行功能,这种各结构部统合在一起的实施例以及分离的实施例,只要不脱离本发明的本质,则均包含在本发明的权利范围。

此外,一部分结构要素在本发明中可能不是执行本质功能的必要性结构要素,而只是用于提高性能的选择性结构要素。本发明可以仅包含除了用于提高性能而使用的结构要素之外的实现本发明的本质所必须的结构部来实现,仅包含除了用于提高性能而使用的选择性结构要素之外的必要结构要素的结构,也包含在本发明的权利范围。

图片分割部110可以将所输入的图片分割成至少一个处理单位。此时,处理单位既可以是预测单位(Prediction Unit:PU),也可以是转换单位(Transform Unit:TU),还可以是编码单位(Coding Unit:CU)。在图片分割部110中,可以对一个图片分割成多个编码单位、预测单位以及转换单位的组合,并按照规定的基准(例如,费用函数)选择一个编码单位、预测单位以及转换单位组合,来对图片进行编码。

例如,一个图片可以被分割成多个编码单位。为了从图片分割编码单位,可以使用如四叉树结构(Quad Tree Structure)之类的递归性树结构,基于一个图像或者最大大小编码单位分割成其他编码单位的编码单元,可以分割成具有与分割出的编码单位的个数相同的子节点。因一定的限制而无法再次分割的编码单位成为叶节点。即,在假定对一个编码单元只能进行正方形分割时,一个编码单位最多能分割成四个其他编码单位。

以下,在本发明的实施例中,编码单位既可以以执行编码的单位的含义使用,也可以以执行解码的单位的含义使用。

预测单位既可以是从一个编码单位内以具有相同大小的至少一个正方形或者长方形等形态的方式分割出来的单位,也可以是从一个编码单位内分割出来的预测单位中任一个预测单位具有与另一个预测单位不同的形态和/或大小的方式分割出来的单位。

在基于编码单位生成执行帧内预测的预测单位时,在不是最小编码单位的情况下,可以不分割成多个预测单位NxN就执行帧内预测。

预测部120、125可以包括执行帧间预测的帧间预测部120和执行帧内预测的帧内预测部125。可以在决定针对预测单位是使用帧间预测还是执行帧内预测之后,根据各预测方法决定具体信息(例如,帧内预测模式、运动矢量、参照图片等)。此时,执行预测的处理单位和决定预测方法以及具体内容的处理单位可以不同。例如,预测的方法和预测模式等可以由预测单位来决定,预测的执行可以由转换单位来执行。所生成的预测块和原块之间的残差值(残差块)可以向转换部130输入。此外,为了预测而使用的预测模式信息、运动矢量信息等可以与残差值一起在熵编码部165被编码后传送给解码器。在使用特定的编码模式的情况下,可以不通过预测部120、125来生成预测块,而是将原块直接编码后传送给解码部。

帧间预测部120既可以基于当前图片的上一个图片或者下一个图片中的至少一个图片的信息来进行预测单位的预测,也可以根据情况基于当前图片内的已完成编码的一部分区域的信息,来进行预测单位的预测。帧间预测部120可包括参照图片插值部、运动预测部、动作补偿部。

在参照图片插值部中,可以从存储部155接收参照图片信息,生成参照图片中整数像素以下的像素信息。在亮度像素的情况下,可以使用为了以1/4像素单位生成整数像素以下的像素信息而使滤波系数不同的基于DCT的8抽头插值滤波器(DCT-basedInterpolation Filter)。在色差信号的情况下,可以使用为了以1/8像素单位生成整数像素以下的像素信息而使滤波系数不同的基于DCT的4抽头插值滤波器。

运动预测部可以基于由参照图片插值部插值后的参照图片来执行运动预测。作为计算运动矢量的方法,可以使用FBMA(Full search-based BlockMatching Algorithm),TSS(Three Step Search),NTS(New Three-Step Search Algorithm)等多种方法。运动矢量基于插值后的像素可以具有1/2或1/4像素单位的运动矢量值。在运动预测部中,可以使运动预测方法不同来预测当前预测单位。作为运动预测方法,可以使用跳过(Skip)法、合并(Merge)法、AMVP(Advanced Motion Vector Prediction)法、帧内块复制(IntraBlockCopy)法等多种方法。

帧内预测部125可以基于当前图片内的像素信息即当前块周边的参照像素信息来生成预测单位。由于当前预测单位的周边块为执行了帧间预测的块,因此在参照像素为执行了帧间预测的像素的情况下,可以将执行了帧间预测的块所包含的参照像素,替代为周边的执行了帧内预测的块的参照像素信息来使用。即,如果参照像素不可用,则可以将不可用参照像素信息替换成可用参照像素中的至少一个参照像素来使用。

在帧内预测中,预测模式可以具有将参照像素信息沿着预测方向使用的方向性预测模式、和执行预测时不使用方向性信息的非方向性模式。用于预测亮度信息的模式、和用于预测色差信息的模式可以不同,为了预测色差信息,而可以使用为了预测亮度信息而使用的帧内预测模式信息或者预测出的亮度信号信息。

在执行帧内预测时,若预测单位的大小和转换单位的大小相同,则可以基于存在于预测单位的左侧的像素、存在于左侧上端的像素、存在于上端的像素,来执行对预测单位的帧内预测。然而,在执行帧内预测时,若预测单位的大小和转换单位的大小不同,则可以利用基于转换单位的参照像素来执行帧内预测。此外,可以只对最小编码单位使用利用NxN分割的帧内预测。

在帧内预测方法中,可以按照预测模式对参照像素适用AIS(Adaptive IntraSmoothing)滤波器之后生成预测块。适用于参照像素的AIS滤波器的种类可以不同。为了执行帧内预测方法,当前预测单位的帧内预测模式可以根据存在于当前预测单位的周边的预测单位的帧内预测模式预测。在利用从周边预测单位预测出的模式信息来预测当前预测单位的预测模式的情况下,若当前预测单位和周边预测单位的帧内预测模式相同,则可以利用规定的标志(flag)信息,来传送当前预测单位与周边预测单位的预测模式相同这一信息,若当前预测单位和周边预测单位的预测模式不同,则可以执行熵编码来对当前块的预测模式信息实施编码。

此外,可以基于由预测部120、125生成的预测单位,生成包含执行了预测的预测单位和预测单位的原块之间的差值即残差(Residual)值信息的残差块。所生成的残差块可以输入到转换部130。

在转换部130中,可以将包含原块和通过预测部120、125生成的预测单位的残差值信息的残差块,使用如DCT(Discrete Cosine Transform)、DST(Discrete SineTransform)、KLT之类的转换方法来进行转换。对于为了转换残差块而适用DCT还是适用DST又或者适用KLT,是基于为了生成残差块而使用的预测单位的帧内预测模式信息来决定。

量化部135可以量化由转换部130转换为频率区域的值。根据块或者根据图像的重要度,可以改变量化系数。由量化部135算出的值,可以提供给反量化部140和重新整理部160。

重新整理部160可以对量化的残差值执行系数值的重新整理。

重新整理部160可以通过系数扫描方法将二维块形态系数转换成一维矢量形态。例如,在重新整理部160中,可以利用锯齿形扫描(Zig-Zag Scan)方法,从DC系数扫描至高频域系数,来变更成一维矢量形态。根据转换单位的大小以及帧内预测模式,可以代替锯齿形扫描,而使用将二维块形态系数沿列方向扫描的竖直扫描、将二维块形态系数沿行方向扫描的水平扫描。即,可以根据转换单位的大小以及帧内预测模式,决定在锯齿形扫描、竖直扫描以及水平扫描中使用哪一种扫描方法。

熵编码部165可以基于由重新整理部160算出的值来执行熵编码。熵编码例如可以使用如指数哥伦布(Exponential Golomb)、CAVLC(Context-Adaptive Variable LengthCoding)、CABAC(Context-Adaptive Binary Arithmetic Coding)之类的多种编码方法。

熵编码部165可以从重新整理部160以及预测部120、125对编码单位的残差值系数信息以及块类型信息、预测模式信息、分割单位信息、预测单位信息以及传送单位信息、运动矢量信息、参照帧信息、块的插值信息、滤波信息等多种信息进行编码。

在熵编码部165中可以对从重新整理部160输入的编码单位的系数值进行熵编码。

在反量化部140以及反转换部145中,对由量化部135量化的值实施反量化,以及对由转换部130转换的值实施反转换。由反量化部140以及反转换部145生成的残差值,可以与通过预测部120、125所包含的动作推定部、动作补偿部以及帧内预测部预测出的预测单位合在一起而生成重建块(Reconstructed Block)。

滤波部150可以包括去块滤波器、偏移补正部、ALF(Adaptive Loop Filter)中的至少一个。

去块滤波器可以去除在重建的图片中因块间的边界而生成的块失真。为了判断是否执行去块,可以基于块所包含的几个列或者行所包含的像素,判断是否对当前块适用去块滤波器。在对块适用去块滤波器的情况下,可以根据所需要的去块滤波强度,适用强滤波器或者弱滤波器。此外,在适用去块滤波器时,可以在执行竖直滤波以及水平滤波时并行处理水平方向滤波以及竖直方向滤波。

偏移补正部可以对执行了去块的图像按照像素单位补正与原图像之间的偏移。为了对特定图片执行偏移补正,而可以使用将图像所包含的像素划分成一定数量的区域之后决定要执行偏移的区域并对相应区域适用偏移的方法、或者考虑各像素的边缘信息来适用偏移的方法。

ALF(Adaptive Loop Filtering)可以基于将已滤波的重建图像和原来的图像比较而得的值执行。可以将图像所包含的像素划分为规定的组之后决定适用于相应组的一个滤波器,从而按照各组进行区别性的滤波。有关是否适用ALF的信息,可以按照编码单位(Coding Unit,CU)传送亮度信号,按照各块所要适用的ALF滤波器的图案以及滤波系数可以不同。此外,可以与适用对象块的特性无关,适用同一形态(固定形态)的ALF滤波器。

存储部155可以存储通过滤波部150算出的重建块或者图片,所存储的重建块或者图片可以在执行帧间预测时提供给预测部120、125。

图2为表示本发明的一实施例所涉及的图像解码装置的框图。

参照图2,图像解码器200可包括熵解码部210、重新整理部215、反量化部220、反转换部225、预测部230、235、滤波部240和存储部245。

在图像编码器中中输入图像比特流的情况下,所输入的比特流可以按照与图像编码器相反的步骤解码。

熵解码部210可以按照在图像编码器的熵编码部中执行熵编码的步骤相反的步骤执行熵解码。例如,与在图像编码器中所执行的方法对应地,可以适用如指数哥伦布(Exponential Golomb)、CAVLC(Context-Adaptive Variable Length Coding)、CABAC(Context-Adaptive Binary Arithmetic Coding)之类的多种方法。

在熵解码部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可以利用图像编码器中提供的当前预测单位的帧间预测所需要的信息,基于包含当前预测单位的当前图片的上一个图片或者下一个图片中的至少一个图片所包含的信息,来执行对当前预测单位的帧间预测。或者,基于包含当前预测单位的当前图片内已重建的一部分区域的信息,来执行帧间预测。

为了执行帧间预测,可以基于编码单位,判断相应编码单位所包含的预测单位的运动预测方法为跳过模式(Skip Mode)、合并模式(Merge模式)、AMVP模式(AMVP Mode)、帧内块复制模式中的哪一种方法。

帧内预测部235可以基于当前图片内的像素信息来生成预测块。在预测单位为执行了帧内预测的预测单位的情况下,可以基于图像编码器中提供的预测单位的帧内预测模式信息来执行帧内预测。帧内预测部235可以包含AIS(Adaptive Intra Smoothing)滤波器、参照图片插值部、DC滤波器。AIS滤波器为对当前块的参照像素执行滤波的部分,可以根据当前预测单位的预测模式来决定是否适用滤波器。可以利用图像编码器中提供的预测单位的预测模式以及AIS滤波器信息,来对当前块的参照像素执行AIS滤波。在当前块的预测模式为不执行AIS滤波的模式的情况下,可以不适用AIS滤波器。

参照图片插值部在预测单位的预测模式为基于对参照像素进行插值的像素值来执行帧内预测的预测单位的情况下,可以对参照像素进行插值而生成整数值以下的像素单位的参照像素。在当前预测单位的预测模式为不对参照像素进行插值就生成预测块的预测模式的情况下,可以不对参照像素进行插值。DC滤波器在当前块的预测模式为DC模式的情况下,可以通过滤波来生成预测块。

已重建的块或者图片可以提供给滤波部240。滤波部240可以包括去块滤波器、偏移补正部、ALF。

可以从图像编码器接收与是否对相应块或者图片适用去块滤波器有关的信息、以及与在适用了去块滤波器的情况下是适用了强滤波器还是适用了弱滤波器有关的信息。在图像解码器的去块滤波器中,可以接收图像编码器中提供的去块滤波器相关信息,并在图像解码器中对相应块执行去块滤波。

偏移补正部可以基于在编码时适用于图像的偏移补正的种类以及偏移值信息等,来对重建的图像执行偏移补正。

ALF可以基于从编码器提供的ALF适用与否信息、ALF系数信息等,来适用于编码单位。这种ALF信息可以包含在特定的参数集来提供。

存储部245可以存储已重建的图片或者块以使得能够作为参照图片或者参照块来适用,并且还可以将已重建的图片提供给输出部。

如上所述,以下,在本发明的实施例中,为便于说明,将编码单元(Coding Unit)作为编码单位这一用语使用,但也可以成为除执行编码之外还执行解码的单位。

此外,当前块表示编码/解码对象块,根据编码/解码步骤可以表示编码树块(或者编码树单元)、编码块(或者编码单元)、转换块(或者转换单元)或者预测块(或者预测单元)等。

一个图片,可以被分割成正方形或者非正方形的基本块来被编码/解码。此时,基本块可以称为编码树单元(Coding Tree Unit)。编码树单元可以被定义为序列(Sequence)或者条带(slice)中所允许的大小最大的编码单元。与编码树单元是正方形还是非正方形、或者编码树单元的大小有关的信息,可以通过序列参数集、图片参数集或者条带头(SliceHeader)等来用信号发送(Signaling)。编码树单元可以被分割成大小更小的分区。此时,在将通过分割编码树单元而生成的分区设为深度1(depth)的情况下,通过分割设为深度1的分区而生成的分区可以被定义为深度2。即,通过分割编码树单元内设为深度k的分区而生成的分区可以被定义为具有深度k+1。

可以将随着分割编码树单元而生成的任意大小的分区定义为编码单元。编码单元可以被递归性地分割、或者被分割成用于执行预测、量化、转换或者环路滤波(in-loopfilter)等的基本单位。作为一例,随着分割编码单元而生成的任意大小的分区可以被定义为编码单元,或者被定义为用于执行预测、量化、转换或环路滤波等的基本单位即转换单元或预测单元。

编码树单元或者编码单元的分区可以基于竖直线或者水平线中的至少一个来执行。此外,对编码树单元或者编码单元进行分区的竖直线或者水平线的个数可以为至少一个。作为一例,可以利用一个竖直线或者一个水平线将编码树单元或者编码单元分割为两个分区,或者利用两个竖直线或者两个水平线,将编码树单元或者编码单元分割为三个分区。或者,可以利用一个竖直线以及一个水平线,将编码树单元或者编码单元分割为长度以及宽度为1/2的四个分区。

在将编码树单元或者编码单元利用至少一个竖直线或者至少一个水平线分割为多个分区的情况下,分区可以具有均匀的大小或者不同的大小。或者,任一分区可以具有与剩余分区不同的大小。

在后述的实施例中,假定编码树单元或者编码单元被分割成四叉树、三叉树或者二叉树结构。然而,也可以利用数量更多的竖直线或者数量更多的水平线来分割编码树单元或者编码单元。

图3为适用本发明的一实施例,示出了基于树结构(tree structure)将编码块分层次分割的一例。

输入图像信号被解码成规定的块单位,像这样用于解码输入图像信号的基本单位称为编码块。编码块可以成为执行帧内/帧间预测、转换、量化的单位。此外,按照编码块单位决定预测模式(例如,画面内预测模式或者画面间预测模式),编码块所包含的预测块可以共享所决定的预测模式。编码块可以为属于8x8乃至64x64范围的具有任意大小的正方形或者非正方形块,可以为具有128x128、256x256或者其以上大小的正方形或者非正方形块。

具体而言,编码块可以基于四叉树(quad tree)、三叉树(triple tree)以及二叉树(binary tree)中的至少一个而分层次被分割。其中,基于四叉树的分割可以是指将2Nx2N编码块分割成四个NxN编码块的方式,基于三叉树的分割可以是指将一个编码块分割成三个编码块的方式,基于二叉树的分割可以是指将一个编码块分割成两个编码块的方式。即便执行了基于三叉树的分割或者基于二叉树的分割,下位深度可以存在正方形编码块。或者,在执行基于三叉树的分割或者基于二叉树的分割之后,也可以在下位深度限制正方形编码块的生成。

基于二叉树的分割,既可以以对称方式执行,也可以以非对称方式执行。基于二叉树分割出的编码块,既可以是正方形块,也可以是如长方形之类的非正方形块。作为一例,允许基于二叉树的分割的分区形态,如图4所示,可以包含对称形(symmetric)的2NxN(水平方向非正方编码单元)或者Nx2N(竖直方向非正方编码单元)、非对称形(asymmetric)的nLx2N、nRx2N、2NxnU或者2NxnD中的至少一个。

基于二叉树的分割,可以限制性地只允许对称形或者非对称形态分区中的任意一个。该情况下,将编码树单元构成为正方形块可以相当于四叉树CU分区,将编码树单元构成为对称形非正方形块可以相当于二叉树分区。将编码树单元构成为正方形块和对称形非正方形块可以相当于四叉树以及二叉树CU分区。

基于二叉树的分割,可以对不再执行基于四叉树的分割的编码块执行。对于基于二叉树分割出来的编码块,可以设定成不再执行基于四叉树的分割、基于三叉树的分割或者基于二叉树的分割中的至少一个。

或者,对于基于二叉树分割出来的编码块,可以在允许基于三叉树的分割或者基于二叉树的分割的同时,限制性地仅允许水平方向或者竖直方向的分割中的任意一个。

例如,可以按照基于二叉树分割出来的编码块的位置、索引、形态、相邻分区的进一步分割形态等,来对基于二叉树分割出来的编码块限制进一步分割或者进一步分割方向。作为一例,在将通过基于二叉树的分割而生成的两个编码块中编码顺序处于前面的编码块的索引设为0(下称编码块索引0),并且将编码顺序处于后面的编码块的索引设为1(下称编码块索引1)时,在对编码块索引0或者编码块索引1的编码块均适用基于二叉树的分割的情况下,编码块索引为1的编码块的基于二叉树的分割方向,可以根据编码块索引为0的编码块的基于二叉树的分割方向来决定。具体而言,在编码块索引为0的编码块的基于二叉树的分割方向为将编码块索引为0的编码块分割成正方形分区的情况下,编码块索引为1的编码块的基于二叉树的分割可以被限制成具有与编码块索引为1的编码块的基于二叉树的分割不同的方向。即,可以限制编码块索引0以及编码块索引1的编码块均分割成正方形分区。该情况下,可以省略表示编码块索引为1的编码块的二叉树分割方向的信息的编码/解码。这是因为,编码块索引0以及编码块索引1的编码块均分割成正方形分区,呈现与将上位深度块基于四叉树进行分割相同的效果,允许将编码块索引0以及编码块索引1均分割成正方形分区在编码效率方面并不优选。

基于三叉树的分割表示沿水平或竖直方向将编码块分割为三个分区。通过基于三叉树的分割而生成的三个分区可以均具有不同的大小。或者,通过基于三叉树的分割而生成的分区中,可以是两个具有相同的大小,剩余一个具有不同的大小。作为一例,随着编码块的分割而生成的分区的宽度比或者高度比,可以沿着分割方向设定为1:n:1、1:1:n、n:1:1或者m:n:1。其中,m和n为1或大于1的实数,例如可以是2之类的整数。

基于三叉树的分割可以对不再执行基于四叉树的分割的编码块执行。对于基于三叉树而分割出来的编码块,可以被设定为不再执行基于四叉树的分割、基于三叉树的分割或者基于二叉树的分割中的至少一个。

或者,对基于三叉树分割出来的编码块允许基于三叉树的分割或者基于二叉树的分割的同时,限制性地仅允许水平方向或者竖直方向的分割中的任意一个。

例如,可以根据基于三叉树分割出来的编码块的位置、索引、形态、大小、相邻分区的进一步分割形态等,来对基于三叉树分割出来的编码块限制进一步分割或者进一步分割方向。作为一例,对于因基于三叉树的分割而生成的编码块中大小最大的分区,可以限制水平方向分割或者竖直方向分割中的任意一个。具体而言,对于因基于三叉树的分割而生成的编码块中大小最大的分区,可以不允许与上位深度分区的三叉树分割方向相同的方向的二叉树分割或者相同的方向的三叉树分割方向。该情况下,可以对基于三叉树分割出来的编码块中最大的分区,省略表示二叉树分割方向或者三叉树分割方向的信息的编码/解码。

可以根据当前块的大小或者形态,限制基于二叉树或者基于三叉树的分割。其中,当前块的大小可以基于当前块的宽度、高度、宽度/高度中最小值/最大值、宽度与高度之和、宽度与高度之积或者当前块所包含的样本数量中的至少一个来表现。作为一例,在当前块的宽度或者高度中至少一个大于事先定义的值的情况下,可以不允许基于二叉树或者基于三叉树的分割。其中,事先定义的值可以为16、32、64或者128等整数。作为另一例,在当前块的宽度与高度之比大于事先定义的值的情况下或者小于事先定义的值的情况下,可以不允许基于二叉树或者基于三叉树的分割。在事先定义的值为1的情况下,可以仅针对当前块为宽度和高度相同的正方形块的情况允许基于二叉树或者基于三叉树的分割。

下位深度的分割可以依赖于上位深度的分割形态而决定。作为一例,在两个以上的深度允许基于二叉树的分割的情况下,可以在下位深度仅允许形态与上位深度的二叉树分割形态相同的基于二叉树的分割。例如,在上位深度按照2NxN形态执行了基于二叉树的分割的情况下,可以在下位深度也执行2NxN形态的基于二叉树的分割。或者,在上位深度按照Nx2N形态执行了基于二叉树的分割的情况下,可以在下位深度也允许Nx2N形态的基于二叉树的分割。

相反,在下位深度,可以仅允许形态与上位深度的二叉树分割形态不同的基于二叉树的分割。

针对序列、条带、编码树单元或者编码单元,可以限制它们仅使用特定形态的基于二叉树的分割或者特定形态的基于三叉树的分割。作为一例,可以对编码树单元进行限制而仅允许2NxN或者Nx2N形态的基于二叉树的分割。所允许的分区形态,既可以在编码器或者解码器中事先定义,也可以对与所允许的分区形态或者不允许的分区形态相关的信息进行编码并通过比特流用信号发送。

图5为表示仅允许特定形态的基于二叉树的分割的例子的图。图5的(a)表示限制成仅允许Nx2N形态的基于二叉树的分割的例子,图5的(b)表示限制成仅允许2NxN形态的基于二叉树的分割例子。为了实现基于上述四叉树或者二叉树的适应性分割,可以利用指示基于四叉树的分割的信息、与允许基于四叉树的分割的编码块的大小/深度有关的信息、指示基于二叉树的分割的信息、与允许基于二叉树的分割的编码块的大小/深度有关的信息、与不允许基于二叉树的分割的编码块的大小/深度有关的信息或者与基于二叉树的分割为纵向还是横向有关的信息等。

此外,针对编码树单元或者规定的编码单元,可以获取允许二叉树分割/三叉树分割的次数、允许二叉树分割/三叉树分割的深度或者允许二叉树分割/三叉树分割的深度的个数等。上述信息可以编码成编码树单元或者编码单元单位,并通过比特流传送给解码器。

作为一例,通过比特流,表示允许二叉树分割的最大深度的语法'max_binary_depth_idx_minus1'可以通过比特流进行编码/解码。该情况下,max_binary_depth_idx_minus1+1可以指代允许二叉树分割的最大深度。

观察图6所示出的例子可以发现,在图6中,针对深度2的编码单元以及深度3的编码单元执行了二叉树分割。由此,表示编码树单元内执行了二叉树分割的次数(两次)的信息、表示编码树单元内允许二叉树分割的最大深度(深度3)的信息或者表示编码树单元内允许二叉树分割的深度的个数(两个,深度2以及深度3)的信息中的至少一个,可以通过比特流进行编码/解码。

作为另一例,允许二叉树分割/三叉树分割的次数、允许二叉树分割/三叉树分割的深度或者允许二叉树分割/三叉树分割的深度的个数中的至少一个,可以按照序列、图片或条带获取。作为一例,上述信息可以被编码成序列、图片或条带单位后通过比特流传送。或者,按照序列、图片或者条带事先定义允许二叉树分割/三叉树分割的深度或者允许二叉树分割/三叉树分割的深度的个数。由此,第一条带以及第二条带的二叉树/三叉树分割次数、允许二叉树/三叉树分割的最大深度或者允许二叉树/三叉树分割的深度的个数中的至少一个可以不同。作为一例,在第一条带,仅在一个深度允许二叉树分割,相反在第二条带,在两个深度允许二叉树分割。

作为另一其他例子,可以根据条带或者图片的时间级别标识符(TemporalID)将允许二叉树/三叉树分割的次数、允许二叉树/三叉树分割的深度或者允许二叉树/三叉树分割的深度的个数中的至少一个设定为不同。其中,时间级别标识符(TemporalID)是用于识别在视点(view)、空间(spatial),时间(temporal)或者画质(quality)中具有至少一个的可扩展性(Scalability)的图像的多个层中的每一个。

如图3所示,分割深度(split depth)为k的第一编码块300可以基于四叉树(quadtree)而分割成多个第二编码块。例如,第二编码块310~340可以为具有第一编码块的宽度和高度的一半大小的正方形块,第二编码块的分割深度增加为k+1。

分割深度为k+1的第二编码块310可被分割为分割深度为k+2的多个第三编码块。第二编码块310的分割可以根据分割方式选择性地利用四叉树或二叉树中的任意一个来执行。其中,分割方式可以基于指示基于四叉树的分割的信息或者指示基于二叉树的分割的信息中的至少一个来决定。

在将第二编码块310基于四叉树分割的情况下,第二编码块310可以被分割成具有第二编码块的宽度和高度的一半大小的四个第三编码块310a,并且第三编码块310a的分割深度增加为k+2。相反,在将第二编码块310基于二叉树分割的情况下,第二编码块310可以被分割成两个第三编码块。此时,两个第三编码块分别为第二编码块的宽度和高度中任意一个为一半大小的非正方形块,并且分割深度增加为k+2。第二编码块可以根据分割方向决定成横向或者纵向的非正方形块,分割方向则可基于与基于二叉树的分割为纵向还是横向有关的信息来决定。

另一方面,第二编码块310可以被决定成不再基于四叉树或者二叉树分割的末端编码块,该情况下,相应编码块可以作为预测块或转换块使用。

第三编码块310a可以与第二编码块310的分割相同地决定成末端编码块,或者基于四叉树或者二叉树被进一步分割。

另一方面,基于二叉树分割出来的第三编码块310b还可以基于二叉树进一步分割成纵向的编码块310b-2或者横向的编码块310b-3,并且相应编码块的分割深度增加为k+3。或者,第三编码块310b可以被决定成不再基于二叉树分割的末端编码块310b-1,该情况下,相应编码块310b-1可以作为预测块或者转换块使用。上述的分割过程可以基于与允许基于四叉树的分割的编码块的大小/深度有关的信息、与允许基于二叉树的分割的编码块的大小/深度有关的信息或者与不允许基于二叉树的分割的编码块的大小/深度有关的信息中的至少一个来限制性地执行。

编码块所能具有的大小可以被限制为规定个数,或者规定单位内编码块的大小可以具有固定值。作为一例,序列内编码块的大小或者图片内编码块的大小可以被限制成256x256、128x128或者32x32。表示序列或者图片内编码块的大小的信息可以通过序列报头或者图片报头用信号发送。

基于四叉树、二叉树以及三叉树分割的结果,编码单元可以呈正方形或者任意大小的长方形。

可以利用跳过模式、画面内预测、画面间预测或者跳过方法中的至少一种来对编码块进行编码/解码。

作为另一例,可以通过编码块的分割而以与编码块相同的大小或者小于编码块的单位执行帧内预测或者帧间预测。为此,当编码块被决定时,可以通过编码块的预测分割来决定预测块(Prediction Block)。编码块的预测分割可以通过表示编码块的分割形态的分区模式(Part_mode)来执行。预测块的大小或形态可以根据编码块的分区模式来决定。作为一例,根据分区模式而决定的预测块的大小可以具有与编码块的大小相同或小的值。

图7为表示通过画面间预测对编码块进行编码时可适用于编码块的分区模式的图。

在通过画面间预测对编码块进行编码的情况下,如图7的示例所示,可以将8个分区模式中的任意一个适用于编码块。

在通过画面内预测对编码块进行编码的情况下,可以将分区模式PART_2Nx2N或者PART_NxN适用于编码块。

PART_NxN可以在编码块具有最小大小的情况下予以适用。其中,编码块的最小大小可以在编码器以及解码器中事先定义。或者,与编码块的最小大小有关的信息可以通过比特流用信号发送。作为一例,编码块的最小大小可以通过条带头用信号发送,因此,可以按照每个条带定义编码块的最小大小。

一般而言,预测块的大小可以具有从64x64到4x4的大小。然而,在通过画面间预测对编码块进行编码的情况下,当执行动作补偿时,为了减小存储部带宽(memorybandwidth),可以使预测块不具有4x4大小。

图8为适用本发明的一实施例,表示在图像编码器/解码器中事先定义的帧内预测模式的种类。

图像编码器/解码器可以利用事先定义的帧内预测模式中的任意一个来执行帧内预测。用于帧内预测的事先定义的帧内预测模式可以由非方向性预测模式(例如,平面模式,DC模式)以及33个方向性预测模式(directional prediction mode)构成。

或者,为了提高帧内预测的准确度,可以利用数量比33个方向性预测模式更多的方向性预测模式。即可以进一步细分方向性预测模式的角度以定义M个扩展的方向性预测模式(M>33),并利用事先定义的33个方向性预测模式中的至少一个导出具有规定角度的方向性预测模式来使用。

具体而言,可以利用数量比图8所示的35个帧内预测模式更多的帧内预测模式。可以将利用数量比图8所示的35个帧内预测模式更多的帧内预测模式称为扩展帧内预测模式。

图9为扩展帧内预测模式的一例,扩展帧内预测模式可由2个非方向性预测模式和65个扩展方向性预测模式构成。扩展帧内预测模式可以等同地使用在亮度分量和色差分量,也可以按照分量使用个数不同的帧内预测模式。例如,可以在亮度分量中使用67个扩展帧内预测模式,并且可以在色差分量中使用35个帧内预测模式。

或者,可以根据色差格式(format)使用不同个数的帧内预测模式来执行帧内预测。例如,在4:2:0格式的情况下,可以在亮度分量中使用67个帧内预测模式来执行帧内预测,并且可以在色差分量中使用35个帧内预测模式,在4:4:4格式的情况下,亮度分量和色差分量均使用67个帧内预测模式来执行帧内预测。

或者,可以根据块的大小和/或形态使用不同个数的帧内预测模式来执行帧内预测。即,可以根据PU或者CU的大小和/或形态使用35个帧内预测模式或者67个帧内预测模式来执行帧内预测。例如,在CU或者PU的大小小于64x64或者是非对称分区(asymmetricpartition)的情况下,可以使用35个帧内预测模式来执行帧内预测,在CU或者PU的大小等于或大于64x64的情况下,可以使用67个帧内预测模式来执行帧内预测。在Intra_2Nx2N中可以允许65个方向性帧内预测模式,并且在Intra_NxN中可以只允许35个方向性帧内预测模式。

可以针对每个序列、图片或条带不同地设定适用扩展帧内预测模式的块的大小。作为一例,在第一条带中,扩展帧内预测模式可以被设定成适用于比64x64大的块(例如,CU或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所示的数量更多的帧内预测模式。

参照后文中说明的附图,描述决定编码/解码对象块的帧内预测模式的方法、以及利用决定的帧内预测模式执行帧内预测的方法。

图10为适用本发明的一实施例,是简要示出帧内预测方法的流程图。

参照图10,可以决定当前块的帧内预测模式(S1000)。

具体而言,可以基于候选列表和索引来导出当前块的帧内预测模式。其中,候选列表可以包括多个候选,多个候选可以基于与当前块相邻的周边块的帧内预测模式来决定。周边块可以包括位于当前块的上端、下端、左侧、右侧或者角落的块中的至少一个。上述索引可以指定属于候选列表的多个候选中的任意一个。可以将由上述索引指定的候选设定为当前块的帧内预测模式。

可以将周边块使用于帧内预测的帧内预测模式设定为候选。作为一例,可以基于当前块的左侧块、上端块、左侧下端角落相邻块、右侧上端角落相邻块以及左侧上端角落相邻块的帧内预测模式来导出候选。如果通过帧内预测对周边块进行了编码,则可以利用周边块的并置块(Collocated block)的帧内预测模式来导出当前块的候选。

此外,可以将具有与周边块的帧内预测模式相似的方向性的帧内预测模式设定为候选。其中,可以通过在周边块的帧内预测模式添加或减去规定的常数值而得的值,来决定具有相似的方向性的帧内预测模式。规定的常数值可以为1、2或者其以上的整数,可以根据能够使用的帧内预测模式的个数来适应性地决定规定的常数值。作为一例,在能够使用的帧内预测模式的个数为35个的情况下,可以将规定的常数值设定为1,在能够使用的帧内预测模式的个数为67个的情况下,可以将规定的常数值设定为2。此外,在能够使用的帧内预测模式的个数为131个的情况下,可以将规定的常数值设定为4。

上述候选列表还可以包括默认模式。默认模式可以包括平面模式(Planar mode)、DC模式、竖直模式、水平模式、右上端对角方向模式、左上端对角方向模式中的至少一个。可以考虑当前块的候选列表所能包含的候选的最大个数,来适应性地添加默认模式。

候选列表所能包含的候选的最大个数可以为3个、4个、5个、6个、7个或者其以上。候选列表所能包含的候选的最大个数,可以是在图像编码器/解码器中事先设定的固定值,也可以基于当前块的属性可变地决定。属性可以表示块的位置/大小/形态、块所能够使用的帧内预测模式的个数/种类、色差属性、色差格式等。或者,可以另行用信号发送表示候选列表所能包含的候选的最大个数的信息,并且利用其可变地决定候选列表所能包含的候选的最大个数。可以用序列等级、图片等级、条带等级或者块等级中的至少一个用信号发送表示上述候选的最大个数的信息。

包含于候选列表的候选,可以按照事先定义的顺序排序。作为一例,可以按照左侧块、上端块、左侧下端块、右侧上端块、左侧上端块的顺序将候选排列于候选列表。或者,可以根据当前块的大小或者形态,来可变地决定候选的排列顺序。作为一例,如果当前块为高度比宽度大的非正方形块,则可以以比左侧块的帧内预测模式更高的优先级来排列上端块的帧内预测模式。

在选择性地使用扩展帧内预测模式和事先定义的35个帧内预测模式的情况下,可以将周边块的帧内预测模式转换成对应于扩展帧内预测模式的索引、或者转换成对应于35个帧内预测模式的索引来导出候选。为了转换索引,既可以使用事先定义的表,也可以使用基于规定值的缩放运算。其中,事先定义的表可以定义不同的帧内预测模式组(例如,扩展帧内预测模式和35个帧内预测模式)之间的映射关系。

例如,在左侧周边块使用35个帧内预测模式,并且左侧周边块的帧内预测模式为10(水平模式)的情况下,可以将其在扩展帧内预测模式中转换成与水平模式对应的索引16。

或者,在上端周边块使用扩展帧内预测模式,并且上端周边块的帧内预测模式索引为50(竖直模式)的情况下,可以将其在35个帧内预测模式转换成与竖直模式对应的索引26。

可以基于上述帧内预测模式决定方法,针对亮度分量和色差分量每一个,相互独立地导出帧内预测模式,并且依赖于亮度分量的帧内预测模式导出色差分量。

具体而言,色差分量的帧内预测模式,可以如下表1所示,基于亮度分量的帧内预测模式来决定。

[表1]

表1中intra_chroma_pred_mode表示为了指定色差分量的帧内预测模式而用信号发送的信息,IntraPredModeY表示亮度分量的帧内预测模式。

当候选列表被决定时,可以对表示与当前块的帧内预测模式相同的候选是否包含于候选列表的信息进行解码。在上述信息表示与当前块的帧内预测模式相同的候选包含于候选列表的情况下,可以对表示候选中任一个的索引信息(例如,MPM_index)进行解码。可以将当前块的帧内预测模式设定为与上述索引信息所指代的候选的帧内预测模式相同。

相反,在上述信息表示与当前块的帧内预测模式相同的候选不包含在候选列表的情况下,可以对指定除候选之外的残余帧内预测模式中任一个的残余帧内预测模式信息(例如,rem_intra_mode)进行解码。可以基于上述残余帧内预测模式信息所指代的帧内预测模式,来决定当前块的帧内预测模式。作为一例,可以对上述残余帧内预测模式所指示的帧内预测模式与候选进行比较,来决定当前帧内预测模式。例如,在候选的帧内预测模式小于残余帧内预测模式所指示的帧内预测模式的情况下,可以在残余帧内预测模式添加1,来导出当前块的帧内预测模式。

参照图10,可以导出用于当前块的帧内预测的参照样本(S1010)。

具体而言,可以基于当前块的周边样本来导出用于帧内预测的参照样本。周边样本可以表示上述的周边块的重建样本,其可以是适用环路滤波器之前的重建样本或者适用环路滤波器之后的重建样本。

可以将在当前块之前重建的周边样本用作参照样本,并且可以将基于规定的帧内滤波器进行滤波的周边样本用作参照样本。利用帧内滤波器对周边样本进行滤波可以称为参照样本平滑。上述帧内滤波器可以包括适用在位于同一水平线的多个周边样本的第一帧内滤波器或者适用在位于同一竖直线的多个周边样本的第二帧内滤波器中的至少一个。可以根据周边样本的位置,选择性地适用第一帧内滤波器或者第二帧内滤波器中任一个,也可以重复使用2个帧内滤波器。此时,第一帧内滤波器或者第二帧内滤波器中的至少一个的滤波系数可以是(1,2,1),但不限于此。

可以基于当前块的帧内预测模式或者有关当前块的转换块的大小中的至少一个来适应性地执行上述滤波。例如,在当前块的帧内预测模式为DC模式、竖直模式或者水平模式的情况下,可以不执行滤波。在上述转换块的大小为NxM的情况下,可以不执行滤波。其中,N和M可以是相同或不同的值,并且可以是4、8、16或者其以上的值中的任一个。作为一例,在转换块的大小为4x的情况下,可以不执行滤波。或者,可以基于当前块的帧内预测模式与竖直模式(或者水平模式)的之差与事先定义的阈值之间的比较结果,来选择性地执行滤波。例如,可以仅在当前块的帧内预测模式与竖直模式之差大于阈值的情况下,执行滤波。如表2所示,可以按照转换块的大小定义上述阈值。

[表2]

可以将上述帧内滤波器决定为在图像编码器/解码器中事先定义的多个帧内滤波器候选中的任一个。为此,可以用信号发送在多个帧内滤波器候选中指定当前块的帧内滤波器的另外的索引。或者,可以基于当前块的大小/形态、转换块的大小/形态、有关滤波强度(strength)的信息、或者周边样本的变化量(variation)中的至少一个来决定帧内滤波器。

当前块的帧内预测可以利用多个参照样本线来执行。作为一例,可以利用2个以上的参照样本线来执行。

可以根据当前块的大小、形态或者帧内预测模式等,来适应性地决定是否利用多个参照样本线来执行帧内预测。作为一例,在当前块的帧内预测模式为非方向性帧内预测模式或者特定方向的帧内预测模式的情况下,可以限制利用多个参照样本线来执行帧内预测。其中,特定方向可以包括竖直方向、水平方向或者对角方向等。

参照图10,可以利用当前块的帧内预测模式和参照样本来执行帧内预测(S1020)。

即,可以利用在S1000中决定的帧内预测模式和在S1010中导出的参照样本来获取当前块的预测样本。在利用多个参照样本线来执行帧内预测的情况下,可以基于属于不同参照样本线的参照样本的加权来获取预测样本。作为一例,可以基于属于第一参照样本线的第一参照样本和属于第二参照样本线的第二参照样本的加权来导出预测样本。此时,适用于第一参照样本和第二参照样本的权重既可以具有相同的值,也可以根据与预测对象样本之间的距离而具有不同的值。作为一例,可以对第一参照样本以及第二参照样本中与预测对象样本之间的距离更近的一方赋予更高的权重。

只是就帧内预测而言,由于利用周边块的边界样本,所以可能发生预测图像的画质下降的问题。因此,还可以包括针对通过上述的预测过程而生成的预测样本的补正过程,下面参照图11进行详细描述。只是后述的补正过程不仅仅适用于帧内预测样本,还可以适用于帧间预测样本或者重建样本,这是显而易见的。

图11为适用本发明的一实施例,表示基于周边样本的差分信息补正当前块的预测样本的方法。

可以基于多个周边样本相对于当前块的差分信息来补正当前块的预测样本。上述补正既可以针对属于当前块的所有预测样本执行,也可以仅针对属于规定的一部分区域的预测样本执行。一部分区域可以是一行/列或者多行/列,其也可以是为了在图像编码器/解码器中进行补正而事先设定的区域。作为一例,可以对位于当前块边界处的一行/列或者距当前块边界处的多行/列进行补正。或者,可以基于当前块的大小/形态或者帧内预测模式中的至少一个可变地决定一部分区域。

周边样本可以属于位于当前块的上端、左侧、左上端角落的周边块中的至少一个。为了补正而使用的周边样本的个数可以为2个、3个、4个或者其以上。可以根据作为当前块内补正对象即预测样本的位置,可变地决定周边样本的位置。或者,周边样本中的一部分可以与作为补正对象的预测样本的位置无关地具有固定位置,并且剩余部分可以根据作为补正对象的预测样本的位置而具有可变的位置。

周边样本的差分信息既可以表示周边样本之间的差分样本,也可以表示将上述差分样本缩放成规定的常数值(例如,1、2、3等)而得的值。其中,规定的常数值可以考虑作为补正对象的预测样本的位置,作为补正对象的预测样本所属的列或者行的位置、预测样本在列或者行内的位置等来决定。

例如,在当前块的帧内预测模式为竖直模式的情况下,可以利用与当前块的左侧边界邻接的周边样本p(-1,y)与左上端周边样本p(-1,-1)之间的差分样本,如下述数学式1那样获取最终预测样本。

[数学式1]

P′(O,y)=P(0,y)+((p(-1,y)-p(-1,-1))>>1fory=0…N-1

例如,在当前块的帧内预测模式为水平模式的情况下,可以利用与当前块的上端边界邻接的周边样本p(x,-1)与左上端周边样本p(-1,-1)之间的差分样本,如下述数学式2那样获取最终预测样本。

[数学式2]

P′(x,0)=p(x,0)+((p(x,-1)-p(-1,-1))>>1forx=0…N-1

例如,在当前块的帧内预测模式为竖直模式的情况下,可以利用与当前块的左侧边界邻接的周边样本p(-1,y)与左上端周边样本p(-1,-1)之间的差分样本来获取最终预测样本。此时,可以将上述差分样本加到预测样本,也可以将上述差分样本缩放成规定的常数值之后将其加到预测样本。可以根据列和/或行,不同地决定缩放所利用的规定的常数值。作为一例,可以如下述数学式3和数学式4那样补正预测样本。

[数学式3]

P′(0,y)=P(0,y)+((p(-1,y)-p(-1,-1))>>1fory=0…N-1

[数学式4]

P′(1,y)=P(1,y)+((p(-1,y)-p(-1,-1))>>2fory=0…N-1

例如,在当前块的帧内预测模式为水平模式的情况下,可以利用与当前块的上端边界邻接的周边样本p(x,-1)和左上端周边样本p(-1,-1)之间的差分样本来获取最终预测样本,这与在竖直模式中描述的一样。作为一例,可以如下述数学式5和数学式6那样补正预测样本。

[数学式5]

P′(x,0)=p(x;0)+((p(x,-1)-p(-1,-1))>>1forx=0…N-1

[数学式6]

P′(x,1)=p(x,1)+((p(x,-1)-p(-1,-1))>>2forx=0…N-1

在当前块的帧内预测模式为方向性预测模式的情况下,可以基于方向性预测模式的方向性来执行当前块的帧内预测。作为一例,表3表示从图8所示的方向性帧内预测模式即模式2到模式34的帧内方向参数(intraPredAng)。

[表3]

在表3中,作为示例说明了33个方向性帧内预测模式,但也可以定义比这更多或比这更少的数量的方向性帧内预测模式。

可以基于定义了方向性帧内预测模式与帧内方向参数的映射关系的查找表,来决定针对当前块的帧内方向参数。或者,也可以基于通过比特流用信号发送的信息,来决定针对当前块的帧内方向参数。

可以根据方向性帧内预测模式的方向性,利用左侧参照样本或者上端参照样本中的至少一个,来执行当前块的帧内预测。其中,上端参照样本可以表示具有比包含于当前块内最上端行的预测对象样本(x,0)小的y轴坐标的参照样本(例如,从(-1,-1)到(2W-1,-1)),左侧参照样本可以表示具有比包含于当前块内最左侧列的预测对象样本(0,y)小的x轴坐标的参照样本(例如,从(-1,-1)到(-1,2H-1))。

可以根据帧内预测模式的方向性,以一维方式排列当前块的参照样本。具体而言,在当前块的帧内预测时需要利用上端参照样本以及左侧参照样本这两者的情况下,假定它们沿着竖直或水平方向排成一列之后,选定各预测对象样本的参照样本。

作为一例,在帧内方向参数为负数的情况(例如,与从表3中的模式11到模式25相当的帧内预测模式的情况)下,可以将上端参照样本以及左侧参照样本沿着水平或竖直方向重新排列,来构成一维参照样本组(P_ref_1D)。

图12以及图13为表示将参照样本重新排列成一列而成的一维参照样本组。

可以根据帧内预测模式的方向性,决定将参照样本沿竖直方向重新排列还是沿着水平方向重新排列。作为一例,在帧内预测模式索引处于11~18之间的情况下,可以如图12所示示例那样,沿逆时针方向旋转当前块的上端参照样本,来生成将左侧参照样本以及上端参照样本沿竖直方向排列的一维参照样本组。

相反,在帧内预测模式索引处于19~25之间的情况下,可以如图13所示示例那样,沿顺时针方向旋转当前块地左侧参照样本左侧参照样本,来生成将左侧参照样本以及上端参照样本沿水平方向排列的一维参照样本组。

在当前块的帧内方向参数不是负数的情况下,可以仅利用左侧参照样本或者上端参照样本来执行针对当前块的帧内预测。由此,针对帧内方向参数不是负数的帧内预测模式,可以仅利用左侧参照样本或者上端参照样本,来生成一维参照样本组。

可以基于帧内方向参数,来导出用于指定在预测对象样本的预测中所使用的至少一个参照样本的参照样本决定索引iIdx。此外,可以基于帧内方向参数,导出用于决定适用于各参照样本的权重的权重相关参数i

[数学式7]

iIdx=(y+1)*(P

ifact=[(y+1)*P

如数学式7所示,根据方向性帧内预测模式的斜率,可变地决定iIdx和i

可以基于参照样本决定索引,按照每个预测对象样本指定至少一个参照样本。作为一例,可以基于参照样本决定索引,指定用于预测当前块内预测对象样本的一维参照样本组内参照样本的位置。可以基于指定出的位置的参照样本,生成针对预测对象样本的预测图像(即,预测样本)。

当考虑当前块的帧内预测模式时,在可以仅通过一个参照样本来预测预测对象样本的情况下,可以基于由当前块的帧内预测模式指定的参照样本,来生成针对预测对象样本的预测图像。

作为一例,如果根据帧内预测模式的角度或者帧内预测模式的斜率的假想角度线(angular line)穿过一维参照样本组内整数像素(integer pel)(即,整数位置的参照样本),则可以复制整数像素位置的参照样本,或者考虑整数像素位置的参照样本和预测对象样本之间的位置,生成针对预测对象样本的预测图像。作为一例,下述数学式8表示通过复制由当前块的帧内预测模式指定的一维参照样本组内参照样本P_ref_1D(x+iIdx+1),来生成针对预测对象样本的预测图像P(x,y)的例子。

[数学式8]

P(x,y)=P_ref_1D(x+iIdx+1)

在考虑了当前块的帧内预测模式时,在判断为仅通过一个参照样本无法预测预测对象样本的情况下,可以利用多个参照样本来执行针对预测对象样本的预测。具体而言,可以根据当前块的帧内预测模式,对规定位置的参照样本以及与规定位置的参照样本相邻的相邻参照样本进行线性插值或者基于抽头滤波器(Tap filter)的插值,来执行针对预测对象样本的预测。插值滤波器的抽头数可以是2以上的自然数。具体而言,根据成为插值对象的参照样本的个数,抽头滤波器的抽头数可以为2、3、4、5、6或者其以上的整数。

作为一例,如果根据帧内预测模式的角度或者帧内预测模式的斜率的假想角度线不穿过一维参照样本组内整数像素(integer pel)(即,整数位置的参照样本),则可以对处于该角度线上的参照样本以及与上述参照样本的左/右或者上/下邻接的参照样本进行插值,来生成针对预测对象样本的预测图像。作为一例,下述数学式9表示对两个以上的参照样本进行插值,来生成针对预测对象样本的预测样本P(x,y)的例子。

[数学式9]

P(x,y)=(32-i

插值滤波器的系数可以基于权重相关参数i

下述数学式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)

在使用多抽头滤波器时,可以将不相当于左侧参照样本或者上端参照样本的位置的样本,替换成在该位置最邻接的参照样本。作为一例,在上述数学式9中,当P_ref_1D(x+iIdx-1)位置的样本不相当于上端参照样本时,可以将该样本替换成P_ref_1D(x+idx)位置的参照样本。或者,当P_ref_1D(x+iIdx+2)位置的样本不相当于上端参照样本时,可以将该样本替换成P_ref_1D(x+iIdx+1)位置的参照样本。

可以将多抽头滤波器适用在沿着水平或竖直方向置于一列的多个参照样本。或者,可以将多抽头滤波器适用于四边形等规定的多边形形态。可以根据当前块的大小、形态或者帧内预测模式,可变地决定适用多抽头滤波器的形态。

如数学式8~10所示,可以将利用帧内预测的方向性对参照样本进行插值来生成预测样本称为帧内预测样本插值法。

在利用帧内预测样本插值法时,并非抽头数大的抽头滤波器保障预测准确度的提高。例如,如果当前块的大小为如2x16那样高度或者宽度相比于另一个显著大的非对称编码单元、或者如4x4那样小尺寸的块,则使用4抽头以上的抽头滤波器反而导致使预测图像过度平滑的结果。为此,可以根据当前块的大小、形态或者帧内预测模式,适应性地决定抽头滤波器的种类。其中,抽头滤波器的种类可以根据抽头数、滤波系数、滤波强度(强/弱)、滤波方向中的至少一个来区分。也可以根据滤波强度,可变地决定滤波器抽头数或者滤波系数等。此外,可以根据抽头滤波器的种类,决定横向插值、纵向插值或者横向以及纵向插值等抽头滤波器的适用方向。可以以当前块内线单位(行或者列)或者样本单位,可变地设定抽头滤波器的适用方向。

具体而言,可以基于当前块的宽度或者高度,来决定要使用的抽头滤波器的种类。作为一例,在当前块的宽度或者高度中的至少一个值小于事先定义的值的情况下,可以代替4抽头滤波器而使用2抽头滤波器来执行帧内预测样本插值法。相反,在当前块的宽度以及高度均为事先定义的值以上的情况下,可以使用4抽头滤波器来执行帧内预测样本插值法。其中,事先定义的值可以为4、8或者16等的值。

或者,可以根据当前块的宽度以及高度是否为相同值,来决定要使用的抽头滤波器的种类。作为一例,在当前块的宽度以及高度为不同值的情况下,可以代替4抽头滤波器而使用2抽头滤波器来执行帧内预测样本插值法。相反,在当前块的宽度以及高度具有相同值的情况下,可以使用4抽头滤波器来执行帧内预测样本插值法。

或者,可以根据当前块的宽度与高度之比,来决定要使用的抽头滤波器的种类。作为一例,在当前块的宽度(w)与高度(h)之比(即,w/h或者h/w)小于事先定义的阈值的情况下,可以代替4抽头滤波器而使用2抽头滤波器来执行帧内预测样本插值法。相反,在当前块的宽度与高度之比在事先定义的阈值以上的情况下,可以使用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坐标的左侧参照样本)。或者,可以根据当前块的大小、形态或者预测对象样本的位置,不同地决定导出下端参照样本所使用的上端参照样本的位置。

或者,可以利用左侧参照样本以及上端参照样本这两者,来导出右侧参照样本或者下端参照样本中的至少一个。

作为一例,可以将当前块的上端参照样本以及左侧参照样本的加权或者平均,决定为右侧参照样本或者下端参照样本中的至少一个值。

或者,可以在利用左侧下端参照样本以及右侧上端参照样本导出与当前块的右侧下端角落邻接的右侧下端参照样本之后,利用导出的右侧下端参照样本来导出右侧参照样本以及下端参照样本。右侧下端参照样本可以基于当前块的右侧上端参照样本以及左侧参照样本的加权或者平均来导出。此时,适用于右侧上端参照样本以及左侧参照样本的权重,既可以具有相同的值,也可以基于当前块的宽度/高度来决定。

当右侧下端参照样本被决定时,可以对右侧下端参照样本和右侧上端参照样本进行插值(interpolation)来导出右侧参照样本,并且对右侧下端参照样本和左侧下端参照样本进行插值来导出下端参照样本。此时,插值滤波器的系数可以基于当前块的大小、当前块的形态、距右侧下端参照样本的距离、距右侧上端参照样本的距离或者距左侧下端参照样本的距离等来决定。

为了导出右侧参照样本或者左侧参照样本,可以利用固定位置的参照样本,或者利用根据预测对象样本的位置适应性地选择的参照样本。例如,右侧参照样本可以与预测对象样本的位置无关地利用右侧上端参照样本来导出,或者利用根据预测对象样本的位置选择的左侧参照样本(例如,具有与预测对象样本相同的y轴坐标的参照样本)或者上端参照样本(例如,具有与预测对象样本相同的x轴坐标的参照样本)来导出。或者,下端参照样本可以与预测对象样本的位置无关地利用左侧下端参照样本来导出,或者利用根据预测对象样本的位置选择的左侧参照样本(例如,具有与预测对象样本相同的y轴坐标的参照样本)或者上端参照样本(例如,具有与预测对象样本相同的x轴坐标的参照样本)来导出。

图14为表示利用多个参照样本来导出右侧参照样本或者下端参照样本的示例的图。假定当前块为具有WxH大小的块。

参照14的(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,y)可以计算成右侧下端参照样本P(W,H)以及右侧上端参照样本P(W,-1)的加权或者平均值。此外,可以基于右侧下端参照样本P(W,H)以及左侧下端参照样本P(-1,H),来生成针对对象预测样本(x,y)的下端参照样本P(x,H)。作为一例,下端参照样本P(x,H)可以计算成右侧下端参照样本P(W,H)以及左侧参照样本P(-1,H)的加权或者平均值。

如图14的(b)所示,当生成右侧参照样本以及下端参照样本时,可以利用生成的参照样本,来生成针对预测对象样本的第一预测样本P

图15以及图16为用于说明本发明的一实施例所涉及的针对非正方形块决定右侧参照样本以及下端参照样本的图。

如图15所示示例所示,在当前块为(N/2)xN大小的非正方形块的情况下,可以基于右侧上端参照样本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)之后,对右侧下端参照样本和左侧下端参照样本进行插值来导出下端参照样本。

相反,如图16所示示例所示,在当前块为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)之后,对右侧下端参照样本和左侧下端参照样本进行插值来导出下端参照样本。

在通过图14~图16进行说明的示例中说明了:下端参照样本基于置于与下端参照样本相同的水平线上的当前块的左侧下端参照样本或者置于与右侧参照样本相同的竖直线上的当前块的右侧上端参照样本中的至少一个来导出,并且右侧参照样本基于置于与右侧参照样本相同的竖直线上的当前块的右侧上端参照样本或者置于与下端参照样本相同的水平线上的当前块的左侧下端参照样本中的至少一个来导出。然而,与说明的示例不同,也可以基于上侧中段参照样本或者左侧中段参照样本中的至少一个来导出右侧参照样本,或者导出左侧参照样本。作为一例,可以在利用上侧中段样本和左侧下端参照样本导出下侧中段样本之后,通过下侧中段样本和左侧下端样本的插值或者外插(extrapolation)来生成下侧样本。此外,可以在利用左侧中段样本和右侧上端样本导出右侧中段样本之后,通过右侧中段样本和右侧上端样本的插值或者外插,来生成下侧样本。

也可以根据当前块的大小或者形态,不同地决定生成第一预测图像以及第二预测图像所使用的参照样本的位置。例如,可以根据当前块的大小或者形态,不同地决定导出右侧参照样本或者下端参照样本所使用的上端参照样本或者左侧参照样本的位置。

作为一例,在当前块为NxN大小的正方形块的情况下,右侧参照样本可以基于右侧上端参照样本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/2xN大小的非正方形块的情况下,可以基于右侧上端参照样本P(N/2,-1)以及左侧中段参照样本P(-1,N/2)来导出右侧中段参照样本P(N/2,N/2),并且基于导出的右侧中段参照样本导出右侧参照样本。作为一例,可以通过右侧中段参照样本和右侧上端参照样本的插值或者外插,来导出右侧参照样本。

第一预测图像可以基于置于与预测对象样本相同的水平线上的参照样本的加权预测来计算出。此外,第二预测图像可以基于置于与预测对象样本相同的竖直线上的参照样本的加权预测来计算出。

不限于上述示例,还可以利用参照样本的平均值、最小值或者最大值等来生成第一预测图像或者第二预测图像。

可以根据预测对象样本是否包含在当前块内规定区域、当前块的大小或者形态等,来不同地设定导出参照样本的方法,或者不同地设定导出第一预测图像或者第二预测图像的方法。具体而言,可以根据预测对象样本的位置,不同地设定利用右侧或者下端参照样本时所利用的参照样本的个数或者参照样本的位置,或者不同地设定导出第一预测图像或者第二预测图像时所利用的权重或者参照样本的数量等。

作为一例,生成包含于规定区域的预测对象样本的第一预测图像时所利用的右侧参照样本,可以仅利用上端参照样本导出,并且生成包含于规定区域之外的预测对象样本的第一预测图像时所利用的右侧参照样本,可以基于上端参照样本以及左侧参照样本的加权或者平均来导出。

例如,如图15所示示例所示,在当前块为高度比宽度大的非正方形块的情况下,包含于当前块内规定区域的(x,y)位置的预测对象样本的右侧参照样本可以从P(N/2,-1)导出。例如,包含于规定区域的预测对象样本的右侧参照样本可以通过复制P(N/2,-1)参照样本的值来生成。相反,包含于当前块内规定区域之外的(x',y')位置的预测对象样本的右侧参照样本可以基于P(N/2,-1)以及P(-1,N)的加权或者平均值来导出。例如,包含于规定区域之外的预测对象样本的右侧参照样本可以通过基于P(N/2,-1)以及P(-1,N)导出的右侧下端参照样本P(N/2,N)和右侧上端参照样本P(N/2,-1)的插值来生成。

或者,如图16所示示例所示,在当前块为宽度大于高度的非正方形块的情况下,包含于当前块内规定区域的(x,y)位置的预测对象样本的下端参照样本可以从P(-1,N/2)导出。例如,包含于规定区域的预测对象样本的下端参照样本可以通过复制P(-1,N/2)参照样本的值来生成。相反,包含于当前块内规定区域之外的(x',y')位置的预测对象样本的下端参照样本可以基于P(N,-1)以及P(-1,N/2)的加权或者平均值来导出。例如,包含于规定区域之外的预测对象样本的下侧对象参照样本可以通过基于P(N,-1)以及P(-1,N/2)导出的右侧下端参照样本P(N,N/2)和左侧下端参照样本P(-1,N/2)的插值来生成。

作为另一例,包含于规定区域的预测对象样本,可以基于参照样本的加权来生成第一预测图像或者第二预测图像,规定区域之外的预测对象样本可以通过参照样本的平均值、最小值或者最大值生成第一预测图像或者第二预测图像、或者仅利用参照样本中事先定义的位置的任一个来生成第一预测图像或者第二预测图像。作为一例,如图15所示示例所示,在当前块为高度大于宽度的非正方形块的情况下,包含于当前块内规定区域的(x,y)位置的预测对象样本,可以仅利用从P(N/2,-1)导出的右侧参照样本P(N/2,y)或者P(-1,y)位置的左侧参照样本中的任一个,来生成第一预测图像。相反,不包含于上述规定区域的(x′,y′)位置的预测对象样本,可以基于从P(N/2,-1)导出的右侧参照样本P(N/2,y′)以及P(-1,y′)位置的参照样本的加权或者平均来生成第一预测图像。

或者,如图16所示示例所示,在当前块为宽度大于高度的非正方形块的情况下,包含于当前块内规定区域的(x,y)位置的预测对象样本可以仅利用基于P(-1,N/2)导出的下端参照样本P(x,N/2)或者P(x,-1)位置的上端参照样本中的任一个,来生成第二预测图像。相反,不包含于上述规定区域的(x′,y′)位置的预测对象样本,可以基于从P(-1,N/2)导出的下端参照样本P(x′,N/2)以及P(-1,y′)位置的参照样本的加权或者平均,来生成第二预测图像。

在上述的实施例中,规定区域可以是与当前块的边界邻接的至少一个样本线或者除此之外的残余区域中的一个。其中,当前块的边界可以包括左侧边界、右侧边界、上端边界或者下侧边界中的至少一个。此外,定义规定区域时所使用的边界的数量或者位置,可以根据当前块的形态来进行不同的设定。或者,规定区域可以是与当前块的一侧角落接触的块形态。此时,规定区域的大小以及形态可以基于当前块的大小或者形态中的至少一个来决定。

在平面模式下最终预测图像可以基于第一预测图像以及第二预测图像的加权、平均、最小值或者最大值来导出。

作为一例,下述数学式11表示基于第一预测图像P

[数学式11]

P(x,y)=(w*P

在上述数学式11中,预测权重w可以根据当前块的形态、大小或者预测对象样本的位置等而不同。

作为一例,可以考虑当前块的宽度、当前块的高度或者宽度-高度比等,来导出预测权重w。在当前块为宽度大于高度的非正方形块的情况下,可以以对第一预测图像赋予更多的权重的方式设定w。相反,在当前块为高度大于宽度的非正方形块的情况下,可以以对第二预测图像赋予更多的权重的方式设定w。

作为一例,在当前块为正方形的情况下,预测权重w可以具有1/2的值。相反,在当前块为高度大于宽度的非正方形块(例如,(N/2)xN)的情况下,预测权重w可以被设定为1/4,在当前块为宽度大于高度的非正方形块(例如,Nx(N/2))的情况下,预测权重w可以被设定为3/4。

除了平面模式之外,也可以在DC模式或者方向性帧内预测模式中,利用除了左侧参照样本以及上端参照样本之外的参照样本,来执行帧内预测。在以下的实施例中,将左侧参照样本和上端参照样本称为第一参照样本,将除了左侧参照样本以及上端参照样本之外的参照样本称为第二参照样本。作为一例,第二参照样本可以包括当前块的右侧参照样本和/或下端参照样本。其中,下端参照样本可以表示具有比当前块内最下端行的预测对象样本大的y轴坐标的参照样本,并且右侧参照样本可以表示具有比当前块内最右侧列的预测对象样本大的x轴坐标的参照样本。

可以基于当前块的大小、形态、帧内预测模式或者预测对象样本的位置中的至少一个,来决定是否利用第二参照样本来执行帧内预测。作为一例,可以基于当前块的帧内预测模式是竖直模式、水平模式还是对角方向模式等,来决定是否利用第二参照样本来执行帧内预测。或者,可以设定成:针对包含于当前块内规定区域的预测对象样本,利用第二参照样本来执行帧内预测,另一方面针对不包含于当前块内规定区域的预测对象样本,利用第一参照样本来执行帧内预测。

或者,通过比特流用信号发送表示是否利用第二参照样本的信息。上述信息可以是1位标志,也可以是决定当前块的帧内预测模式时所利用的索引等。

或者,可以基于在当前块的周边块中是否利用第二参照样本,来决定是否利用第二参照样本。

第二参照样本可以基于第一参照样本来生成。作为一例,可以变更第一参照样本的顺序来构成第二参照样本,或者利用特定位置的第一参照样本来导出第二参照样本。

图17为用于利用第一参照样本导出第二参照样本的示例的图。

首先,可以基于当前块的右侧上端参照样本r(W,-1)以及左侧下端参照样本r(-1,H)来导出所要导出的右侧下端参照样本P(W,H)。具体而言,右侧下端参照样本可以通过右侧上端参照样本以及左侧下端参照样本的加权或者平均运算来导出。下述数学式12表示导出右侧下端参照样本的一例。

[数学式12]

如上述数学式12所示,右侧下端参照样本可以基于右侧上端参照样本以及左侧下端参照样本之间的加权来计算。此时,适用于右侧上端参照样本以及左侧下端参照样本的权重可以根据当前块的宽度以及高度决定。作为一例,在当前块为正方形的情况下,可以对右侧上端参照样本以及左侧下端参照样本适用相同的权重,相反,在当前块为非正方形的情况下,可以对右侧上端参照样本以及左侧下端参照样本适用不同的权重。数学式12所表示的权重设定方法只是本发明的一例,本发明并非限定于此。除了数学式12所示出的示例之外,也可以基于当前块的大小、形态、帧内预测模式、参照样本的可用性、周边块的可用性、周边块是否被编码成帧内预测模式或者周边块的帧内预测模式中的至少一个来决定权重。

右侧参照样本可以基于右侧上端参照样本和右侧下端参照样本来导出。作为一例,右侧参照样本可以通过对右侧上端参照样本和右侧下端参照样本进行插值来获取。下述数学式13表示导出右侧参照样本的一例。

[数学式13]

如上述数学式13所示,右侧参照样本P

下端参照样本可以基于左侧下端参照样本和右侧下端参照样本来导出。作为一例,下端参照样本可以通过对左侧下端参照样本和右侧下端参照样本进行插值来获取。下述数学式14表示导出下端参照样本的一例。

[数学式14]

如上述数学式14所示,下端参照样本P

在当前块为非正方形的情况下,可以基于通过上述图15以及图16进行的示例,来导出右侧参照样本以及下端参照样本。

如上述示例所示,可以利用右侧上端参照样本以及左侧下端参照样本等固定位置的第一参照样本,来导出右侧参照样本以及下端参照样本等第二参照样本。也可以与上述示例不同,利用与右侧上端参照样本和/或左侧下端参照样本不同的位置的第一参照样本,来导出第二参照样本。作为一例,可以利用当前块的上端中段参照样本或者当前块的左侧中段样本等第一参照样本,来导出右侧参照样本以及下端参照样本。

或者,可以根据当前块的帧内预测模式,决定导出第二参照样本时所使用的第一参照样本。作为一例,右侧参照样本和/或下端参照样本可以基于由当前块的帧内预测模式方向性指定的左侧参照样本和/或上端参照样本来导出。

或者,可以利用多个左侧参照样本和/或多个上端参照样本决定第二参照样本。作为一例,右侧参照样本、下端参照样本或者右侧下端参照样本中的至少一个,可以基于多个左侧参照样本的加权、平均值、最大值或者最小值来生成,或者可以基于多个上端参照样本的加权、平均值、最大值或者最小值来生成。

或者,也可以通过复制第一参照样本来生成第二参照样本。此时,生成第二参照样本时所使用的第一参照样本可以具有固定的位置,也可以根据当前块的大小、形态、帧内预测模式或者第二参照样本的位置来适应性地决定。

在上述的示例中,示出了下端参照样本为W个,且右侧参照样本为H个的示例,但也可以导出比这更多数量的下端参照样本和/或右侧参照样本。作为一例,可以直至与最右侧上端参照样本r(2W-1,-1)相同的竖直线为止导出下端参照样本,或者直至与最下端左侧参照样本r(-1,2H-1)相同的水平线为止导出右侧参照样本。

此时,具有比W大的x坐标的下端参照样本可以对左侧下端参照样本和右侧下端参照样本进行外插来生成,或者对右侧下端参照样本P(W,H)和最右侧下端参照样本P(2W-1,H)进行插值来生成。最右侧下端参照样本可以通过复制最右侧上端参照样本r(2W-1,-1)来生成,或者可以通过最右侧上端参照样本与左侧下端参照样本之间的加权运算来生成。具有比H大的y坐标的右侧参照样本可以通过对右侧上端参照样本和右侧下端参照样本进行外插来生成,或者对右侧下端参照样本P(W,H)和最下端右侧参照样本P(W,2H-1)进行插值来生成。此时,最下端右侧参照样本可以通过复制最下端左侧参照样本r(-1,2H-1)来生成,或者通过最下端左侧参照样本与左侧上端参照样本之间的加权运算来生成。

可以对第一参照样本进行一维排列来生成第一一维参照样本组,并且可以对第二参照样本进行一维排列来生成第二一维参照样本组。此时,第一一维参照样本组可以构成为不仅包括第一参照样本还包括第二参照样本中的至少一个以上,第二一维参照样本组可以构成为不仅包括第二参照样本还包括第一参照样本中的至少一个以上。

图18为表示构成一维参照样本组的参照样本的图。

如图18的(a)所示示例所示,第一一维参照样本组可以由当前块的左侧参照样本以及上端参照样本构成。

相反,如图18的(b)所示示例所示,第二一维参照样本组可以构成为不仅包括当前块的右侧参照样本以及下端参照样本还包括一部分左侧参照样本以及一部分上端参照样本。

即,左侧参照样本中y轴坐标比左侧下端参照样本r(-1,H)和左侧下端参照样本大的左侧参照样本,可以均包含于第一一维参照样本组以及第二一维参照样本组。此外,上端参照样本中x轴坐标比右侧上端参照样本r(W,-1)和右侧上端参照样本大的上端参照样本,可以均包含于第一一维参照样本组以及第二一维参照样本组。

或者,可以基于当前块的大小、形态或者帧内预测模式中的至少一个,使上述一部分第一参照样本仅包含于第一一维参照样本组,或者使上述一部分第一参照样本仅包含于第二一维参照样本组。除了一维参照样本组的结构之外,构成一维参照样本组的参照样本的排列顺序,也可以基于当前块的大小、形态或者帧内预测模式中的至少一个,来可变地决定。

为便于说明,在后述的实施例中,将包含当前块的左侧参照样本以及上端参照样本的参照样本组称为第一参照样本组(例如,第一一维参照样本组),将包含当前块的右侧参照样本以及下端参照样本的参照样本组称为第二参照样本组(例如,第二一维参照样本组)。作为一例,第一参照样本组以及第二参照样本组可以根据是否包含右侧参照样本以及下端参照样本来予以区分。并且,为了执行预测对象样本的帧内预测,将选自第一参照样本组的参照样本称为第一基础参照样本,将选自第二参照样本组的参照样本称为第二基础参照样本。

可以利用第一参照样本组或者第二参照样本组中的至少一个,来执行当前块的帧内预测。作为一例,当前块内预测对象样本的预测值,可以基于选自第一参照样本组的第一基础参照样本或者选自第二参照样本组的第二基础参照样本中的至少一个来获取。此时,第一基础参照样本和/或第二基础参照样本,可以基于当前块的形态、大小或者帧内预测模式中的至少一个来决定。作为一例,在当前块的帧内预测模式被决定时,可以根据决定的帧内预测模式方向,来指定针对预测对象样本的第一基础参照样本,并且沿着决定出的帧内预测模式的反方向,指定针对预测对象样本的第二基础参照样本。

或者,可以基于第一基础参照样本的位置来决定第二基础参照样本的位置,或者基于第二基础参照样本的位置来决定第一基础参照样本的位置。作为一例,可以选择具有与第一基础参照样本相同的x坐标或者相同的y坐标的第二基础参照样本,或者可以选择在第一基础参照样本的x坐标或者y坐标加上偏移量而得的值的第二基础参照样本。其中,偏移量既可以具有固定的值,也可以根据当前块的大小、形态或者帧内预测模式来适应性地决定。

或者,也可以基于预测对象样本的位置来决定第一基础参照样本和/或第二基础参照样本的位置。作为一例,可以选择与预测对象样本相同的x坐标或者相同的y坐标的第一基础参照样本和/或第二基础参照样本,或者选择具有在预测对象样本的x坐标或者y坐标加上偏移量而得的值的第一基础参照样本和/或第二基础参照样本。其中,偏移量既可以具有固定的值,也可以根据当前块的大小、形态或者帧内预测模式来适应性地决定。

预测对象样本的预测值可以基于基于第一基础参照样本的第一预测图像或者基于第二基础参照样本的第二预测图像中的至少一个来生成。此时,第一预测图像可以基于通过上述数学式8~数学式10进行的说明来生成。

第二预测图像可以通过对根据当前块的帧内预测模式的斜率指定的第二基础参照样本进行插值或者复制来生成。作为一例,数学式15为表示通过复制第二基础参照样本来导出第二预测图像的示例的图。

[数学式15]

P

在上述数学式15中,P

当仅用一个第二基础参照样本无法表现当前块的帧内预测模式的斜率时,可以对多个第二基础参照样本进行插值来生成第二预测图像。具体而言,当根据帧内预测模式的斜率和/或角度的假想角度线不穿过整数像素(integer pel)(即,整数位置的参照样本)时,可以通过对与相应角度线的左右或者上下邻接的第二参照样本进行插值来获取第二预测图像。作为一例,数学式16表示通过对第二参照样本进行插值来获取第二预测图像的示例。

[数学式16]

插值滤波器的系数可以基于权重相关参数i

虽然在数学式16中示出了抽头数为2的插值滤波器,但也可以利用抽头数大于2的插值滤波器。

可以基于第一预测图像或者第二预测图像中的至少一个,来获取预测对象样本的最终预测图像。作为一例,可以将第一预测图像决定为预测对象样本的最终预测图像,或者可以将第二预测图像决定为预测对象样本的最终预测图像。或者,也可以基于第一预测图像和第二预测图像的加权或者平均运算,来决定预测对象样本的最终预测图像。数学式17为基于第一预测图像以及第二预测图像的加权运算来获取最终预测样本的示例。

[数学式17]

P(x,y)=w(x,y)×P

在上述数学式17中P

赋予第一预测图像以及第二预测图像的权重,可以基于预测对象样本的位置、当前块的大小、形态或者帧内预测模式中的至少一个来决定。作为一例,数学式18表示根据当前块的大小以及预测对象样本的位置来决定权重的示例。

[数学式18]

/>

在上述数学式18中,W以及H分别表示当前块的宽度以及高度,(x,y)表示预测对象样本的坐标。

如上述数学式18所示示例所示,可以设定成:预测对象样本越接近当前块的左侧上端角落,赋予第一预测图像的权重越大,并且预测对象样本越接近当前块的右侧下端角落,赋予第二预测图像的权重越大。

或者,可以从当前块的相邻块导出权重。其中,当前块的相邻块可以包括当前块的上端相邻块、左侧相邻块或者与角落邻接的相邻块(例如,左侧上端相邻块、右侧上端相邻块或者左侧下端相邻块)中的至少一个。

或者,可以通过比特流用信号发送用于决定权重的信息。上述信息既可以表示适用于第一预测图像或者第二预测图像的权重值,也可以表示当前块与相邻块之间的权重差分值。

如上述的示例所示,可以将通过第一预测图像以及第二预测图像之间的加权运算来获取最终预测图像称为双向帧内预测(Bi-intra Prediction)。

双向帧内预测可以仅针对当前块内一部分区域适用。此时,适用双向帧内预测的区域可以在编码器和解码器中事先定义。作为一例,可以对与当前块内右侧下端角落邻接的规定大小(例如,4x4)块适用双向帧内预测。或者,可以根据当前块的大小、形态或者帧内预测模式,适应性地决定适用双向帧内预测的区域。或者,可以通过比特流用信号发送用于决定适用双向帧内预测的区域的信息(例如,表示区域的大小或位置的信息)。

图19为表示适用双向帧内预测的区域的示例。

在适用双向帧内预测的区域内,可以通过对第一预测图像和第二预测图像进行加权预测来获取最终预测样本。相反,在不适用双向帧内预测的区域内,可以将第一预测图像或者第二预测图像决定为最终预测样本。

在上述的示例中,说明了利用选自第一样本组的第一基础参照样本以及选自第二样本组的第二基础参照样本来执行双向帧内预测。与上述说明的示例不同,也可以通过在第一样本组中选择多个参照样本来执行双向帧内预测,或者通过在第二样本组中选择多个参照样本来执行双向帧内预测。作为一例,在当前块的帧内预测模式为右侧上端对角方向或者左侧下端对角方向的情况下,可以通过在第一样本组中选择上端参照样本以及左侧参照样本来执行双向帧内预测。即,可以通过对基于上端参照样本获取的第一参照图像和基于下端参照样本获取的第二参照图像进行加权预测,来获取当前块的最终预测样本。

或者,也可以根据帧内预测模式,在第二样本组中选择右侧参照样本以及下端参照样本来执行双向帧内预测。

双向帧内预测可以被定义为独立的帧内预测模式。作为一例,可以通过定义N个方向性预测模式和与N个方向性预测模式对应的N个双向帧内预测模式,来定义总计2N+2个帧内预测模式。作为一例,可以通过对图8所示的帧内预测模式追加双向帧内预测模式,来定义总计68个帧内预测模式(即,2个非方向性帧内预测模式,33个方向性帧内预测模式以及33个双向帧内预测模式)。当然,也可以使用比33更多数量或者更少数量的方向性帧内预测模式或者双向帧内预测模式。

或者,可以在决定当前块的帧内预测模式之后,决定是否将决定出的帧内预测模式转用为双向预测模式。作为一例,在当前块的帧内预测模式被决定时,可以对与是否将决定出的帧内预测模式用作双向帧内预测模式有关的信息进行解码。上述信息可以是1位标志(例如,bi_intra_flag),但不限于此。bi_intra_flag的值为0表示执行方向性帧内预测,bi_intra_flag的值为1表示执行双向帧内预测。即,在bi_intra_flag的值为0的情况下,第一预测图像被决定为当前块的最终预测样本,相反,在bi_intra_flag的值为1的情况下,对第一预测图像以及第二预测图像进行了加权预测的图像被决定为当前块的最终预测样本。

或者,可以根据与当前块相邻的周边块是否利用双向帧内预测模式,来决定当前块是否使用双向帧内预测模式。作为一例,在当前块的帧内预测模式与基于周边块的帧内预测模式导出的候选(即,MPM候选)相同的情况下,可以将当前块是否使用双向帧内预测模式,与上述周边块是否使用双向帧内预测模式相同地决定。

或者,可以基于当前块的大小和/或形态来决定是否执行双向帧内预测。作为一例,可以设定成仅针对32x32以上的块允许双向帧内预测。由此,在当前块的大小小于32x32的情况下可以不适用双向帧内预测,相反,在当前块的大小为32x32以上的情况下,可以适用双向帧内预测。

作为另一例,可以仅针对正方形块允许双向帧内预测,或者仅针对非正方形形态的块允许双向帧内预测。

或者,也可以仅针对一部分方向性帧内预测模式,适用双向帧内预测。作为一例,图20为识别表示允许双向帧内预测的方向性预测模式的示例。如图20所示示例所示,可以设定成仅对水平方向与竖直方向之间的一部分帧内预测模式允许双向帧内预测。此时,在选择上述范围内帧内预测模式的情况下,可以默认执行双向帧内预测,并且在选择上述范围内帧内预测模式的情况下,可以基于通过比特流解析的信息、当前块的大小或者形态中的至少一个,来决定是否执行双向帧内预测模式。

适用双向帧内预测的帧内预测模式不限于图20所示的示例。允许双向帧内预测的帧内预测模式,既可以在编码器以及解码器中事先定义,也可以根据当前块的大小和/或形态适应性地决定。或者,可以通过比特流用信号发送用于决定允许双向帧内预测的帧内预测模式的信息。

图21为表示基于本发明所涉及的双向帧内预测模式的当前块的帧内预测方法的流程图。

首先,可以决定是否对当前块适用双向帧内预测(S2110)。可以基于从比特流解析的信息、当前块的形态、大小或者帧内预测模式,来决定是否对当前块适用双向帧内预测。

作为一例,可以在基于候选列表和索引决定当前块的帧内预测模式之后,基于当前块的大小、形态或者从比特流解析的信息(例如,bi_pred_flag),来决定是否对当前块适用双向帧内预测。或者,可以基于当前块的帧内预测模式是否为适用双向帧内预测的方向性预测模式,来决定是否对当前块适用双向帧内预测。

之后,可以导出当前块的参照样本(S2120)。首先,导出与当前块的左侧以及上端邻接的第一参照样本,在对当前块适用双向帧内预测的情况下,进一步导出与右侧以及下端邻接的第二参照样本(S2130)。

接下来,在不对当前块适用双向帧内预测的情况下,可以根据当前块的帧内预测模式,基于第一参照样本中的至少一个基础参照样本,来生成第一预测图像(S2140)。该情况下,第一预测图像被决定为当前块的最终预测样本。

相反,在对当前块适用双向帧内预测的情况下,可以基于第一预测图像以及第二参照样本中的至少一个基础参照样本,来生成第二预测图像(S2150)。第一基础参照样本以及第二基础参照样本既可以基于帧内预测模式的方向性来决定,也可以基于当前块的大小、形态或者其他基础参照样本的位置来决定。当第一预测图像以及第二预测图像被获取时,可以通过对第一预测图像以及第二预测图像进行加权预测,来获取当前块的最终预测样本。

在当前块的帧内预测模式为DC模式的情况下,可以从参照样本导出DC值,并且将导出的DC值决定为当前块内预测样本的值。作为一例,在当前块的帧内预测模式为DC模式的情况下,可以将当前块的上端参照样本以及左侧参照样本的平均值决定为DC值,并将DC值决定为当前块的预测样本值。其中,计算DC值时所使用的左侧参照样本可以包含在从r(-1,-1)到r(-1,H-1),从r(-1,-1)到r(-1,H+W-1)或者从r(-1,-1)到r(-1,2H-1)中的至少一个范围,并且计算DC值时所使用的上端参照样本可以包含在从r(-1,-1)到r(W-1,-1),从r(-1,-1)到r(W+H-1,-1)或者从r(-1,-1)到r(2W-1,-1)中的至少一个范围。或者,可以利用左侧参照样本以及上端参照样本计算DC值的同时,计算DC值时排除左侧上端参照样本r(-1,-1)。

在当前块的大小大、或者当前块不是正方形的情况下,可能因当前块与一部分参照样本之间的关联性下降而产生预测效率降低的问题。为此,可以根据当前块的大小或形态,设定为使计算DC值时所使用的参照样本的范围不同,或者,根据参照样本的位置,适用不同的权重来计算DC值。

作为一例,相比于具有比当前块的最右侧列大的x坐标的上端参照样本,对具有与当前块的最右侧列相同的x坐标或者比当前块的最右侧列小的x坐标的上端参照样本赋予更大的权重;或者相比于具有比当前块的最下端行大的y坐标值的左侧参照样本,对具有与当前块的最下端行相同的y坐标或者比当前块的最下端行小的y坐标值的左侧参照样本赋予更大的权重。

图22为表示根据参照样本的位置适用不同权重的示例的图。

在图22中,示出了对具有比当前块的最右侧列大的x坐标的上端参照样本以及具有比当前块的最下端行大的y坐标的左侧参照样本适用1的权重,并且对除此之外的上端参照样本以及左侧参照样本赋予3的权重。根据赋予上述图22的示例,可以基于下述数学式19来计算DC值。

[数学式19]

在图22所示示例中,示出了以当前块的最右侧列的x坐标以及最下端行的y坐标为基准赋予参照样本的权重发生变更的情况,但也可以以与图示不同的位置为基准调节赋予参照样本的权重。

可以基于当前块的大小和/或形态,决定每个参照样本的权重。作为一例,在当前块为宽度大于高度的非正方形形态的块的情况下,可以设定为使适用于上端参照样本中至少一部分的权重,具有比适用于左侧参照样本中至少一部分的权重大的值。相反,在当前块为高度大于宽度的非正方形形态的块的情况下,可以设定为使适用于左侧参照样本中至少一部分的权重,具有比适用于上端参照样本中至少一部分的权重大的值。

图23以及图24表示在当前块为非正方形形态的情况下适用于参照样本的权重。

在图23中,示出了对上端参照样本以及具有比当前块的最下端行大的y坐标的左侧参照样本适用1的权重,相反,对具有与当前块的最下端行相同的y坐标或者比其小的y坐标的左侧参照样本赋予3的权重。即,如图23所示示例所示,在当前块为高度大于宽度的非正方形形态的情况下,可以将赋予当前块的左侧参照样本的权重设定为大于赋予上端参照样本的权重。由此,DC值可以如下述数学式20那样获取。

[数学式20]

在图24中,示出了对左侧参照样本以及具有比当前块的最右侧列大的x坐标的上端参照样本适用1的权重,相反,对具有与当前块的最右侧列相同的x坐标或者比其小的x坐标的上端参照样本赋予3的权重。即,如图24所示示例所示,在当前块为宽度大于高度的非正方形形态的情况下,可以将赋予当前块的上端参照样本的权重,设定为大于赋予左侧参照样本的权重。由此,DC值可以如下述数学式21那样获取。

[数学式21]

虽然在图23中示出了对具有比当前块的最右侧列大的x坐标的上端参照样本以及具有与当前块的最右侧列相同的x坐标或者比其小的x坐标的上端参照样本,均赋予1的权重,但也可以将赋予它们的权重设定为不同。同样,在图24中,可以将对具有比当前块的最下端行大的y坐标的左侧参照样本以及具有与当前块的最下端行相同的y坐标或者比其小的y坐标的左侧参照样本赋予的权重设定为不同。

适用于参照样本的权重可以在编码器以及解码器中具有固定的值。或者,可以基于当前块的形态或者大小,来适应性地决定权重。作为一例,可以根据当前块的高度、宽度或者纵横比等来适应性地决定权重。

或者,可以通过比特流用信号发送表示适用于各参照样本的权重的信息。可以基于上述信息来决定适用于各参照样本的权重。

或者,也可以基于适用于与当前块相邻的周边块的权重,来决定适用于当前块的权重。作为一例,既可以将适用于周边块的权重决定为当前块的权重,也可以通过在适用于周边块的权重加上差分值来导出当前块的权重。其中,差分值可以基于通过比特流用信号发送的信息来决定。

在图22~图24中,示出了左侧参照样本或者上端参照样本中至少一个被分割为适用不同权重的2个组的情况。但与图示示例不同,也可以将左侧参照样本或者上端参照样本分割成比这数量更多的组之后,对各组适用不同的权重。作为一例,可以针对每个参照样本赋予不同的权重,或者针对单位组,赋予不同的权重来计算DC值。此时,单位组可以基于事先定义的个数来分割。即,各单位组可以包含相同个数的参照样本。或者,可以基于当前块的大小或者形态,来不同地决定各单位组所包含的参照样本的个数。

作为另一示例,可以对左侧参照样本和/或上端参照样本分别适用均匀的权重,并且不同地决定适用于左侧参照样本和上端参照样本的权重。作为一例,在当前块为宽度大于高度的非正方形形态的情况下,可以对上端参照样本赋予大于左侧参照样本的权重来获取DC值,相反,在当前块为高度大于宽度的非正方形形态的情况下,可以对左侧参照样本赋予大于上端参照样本的权重来获取DC值。

根据当前块的大小、形态或者CTU内位置,也可以利用上端参照样本或者左侧参照样本中的一部分,来计算DC值。作为一例,在当前块为宽度大于高度的非正方形形态的情况下,可以仅利用上端参照样本来计算DC值。即,在当前块为宽度大于高度的非正方形形态的情况下,可以将上端参照样本的平均值决定为DC值,或者将上端参照样本之间的权重决定为DC值。或者,在当前块为高度大于宽度的非正方形形态的情况下,可以仅利用左侧参照样本计算DC值。即,在当前块为高度大于宽度的非正方形形态的情况下,可以将左侧参照样本的平均值决定为DC值,或者将左侧参照样本之间的权重决定为DC值。或者,在导出DC值时,可以排除掉与当前块相同的上位级CU中所包含的相邻块中所包含的参照样本。作为一例,在将上位级CU沿水平方向分割为两个时,位于下端的CU的DC值可以仅利用左侧参照样本来导出。相反,在将上位级CU沿竖直方向分割为两个时,位于右侧的CU的DC值可以仅利用上端参照样本来导出。

或者,可以根据当前块的形态,排除具有比当前块的最右侧行大的x坐标值的上端参照样本或者具有比当前块的最下端行大的y坐标值的左侧参照样本中的至少一个来计算DC值。

如上述示例所示,对上端参照样本和左侧参照样本赋予不同权重来生成DC值,称为“DC加权预测”。

可以基于当前块的大小或者形态,来决定是否对当前块适用DC加权预测。作为一例,DC加权预测可以仅对具有规定的门槛值以上的大小的块允许。其中,门槛值既可以表示16x16、32x32或者64x64等块大小,也可以表示块的宽度或者高度中任一个的基准值。在当前块的大小小于门槛值的情况下,即便当前块的帧内预测模式为DC模式,也可以不适用DC加权预测。在不适用DC加权预测的情况下,可以对上端参照样本和左侧参照样本适用相同的权重来决定DC值。或者,可以仅在当前块为非正方形的情况下允许DC加权预测。

作为另一示例,可以通过比特流用信号发送表示是否适用DC加权预测的信息。

或者,可以根据在与当前块相邻的周边块中是否利用DC加权预测,来决定是否对当前块适用DC加权预测。作为一例,在当前块的帧内预测模式与基于周边块的帧内预测模式导出的候选(即,MPM候选)相同的情况下,可以将是否对当前块适用DC加权预测,与是否对上述周边块适用了DC加权预测相同地决定。

或者,在当前块的帧内预测模式为DC模式的情况下,也可以适用默认DC加权预测。

作为另一示例,也可以利用第二参照样本来导出DC值。具体而言,可以利用右侧参照样本或者左侧参照样本中的至少一个来导出DC值。

第二参照样本既可以作为第一参照样本的替代而使用在DC值的计算中,也可以与第一参照样本一起使用在DC值的计算中。作为一例,可以替代上端参照样本,而将右侧参照样本或者下端参照样本中的至少一个使用在DC值的计算中,或者替代左侧参照样本,而将右侧参照样本或者下端参照样本中的至少一个使用在DC值的计算中。或者,将右侧参照样本或者下端参照样本中的至少一个与上端参照样本以及左侧参照样本一起使用在DC值的计算中。

其中,计算DC值中所使用的右侧参照样本可以包含在从r(W,-1)到r(W,H-1),从r(W,-1)到r(W,H+W-1)或者从r(W,-1)到r(W,2H-1)中的至少一个范围,并且计算DC值中所使用的下端参照样本可以包含在从r(-1,H)到r(W-1,H),从r(-1,H)到r(W+H-1,H)或者从r(-1,H)到r(2W-1,H)中的至少一个范围。或者,也可以利用左侧参照样本以及上端参照样本计算DC值的同时,在计算DC值时排除掉与当前块的角落邻接的参照样本(例如,右侧下端参照样本r(W,H),右侧上端参照样本r(W,-1)或者左侧下端参照样本r(-1,H)中的至少一个)。

导出DC值时所使用的参照样本的范围,可以基于当前块的大小、形态、当前块的位置/索引或者相邻块的帧内预测模式来决定。作为一例,在上端参照样本或者左侧参照样本中的至少一个包含于与当前块相同的上位级CU中所包含的相邻块的情况下,可以替代上端参照样本或者左侧参照样本而使用下端参照样本或者右侧参照样本来计算DC值。作为一例,在将上位级CU沿水平方向分割为两个的情况下,位于下端的CU的DC值可以替代上端参照样本而使用下端参照样本来导出。相反,在将上位级CU沿竖直方向分割为两个的情况下,位于右侧的CU的DC值可以替代左侧参照样本而使用右侧参照样本来导出。

也可以将按照当前块内每个规定单位导出DC值时所使用的参照样本的范围设定为不同。其中,规定单位可以是样本、子块或者规定区域。作为一例,可以将按照4x4大小的子块单位或者将当前块分割成4个后按照各子块单位导出DC值时所使用的参照样本的范围不同。或者,可以将以行单位、列单位、与规定边界邻接的区域与残余区域之间或者将当前块分给为两个的对角线为基准导出左侧上端的区域与右侧下端的区域之间的DC值时所使用的参照样本的范围设定为不同。可以将按照比CU(或者,PU或者TU)小的单位导出DC值的帧内预测模式称为子块单位DC模式。

图25为将按照每个区域导出DC值时所使用的参照样本的范围决定为不同的示例的图。

图25的(a)识别表示导出位于左侧上端的区域的DC值时所使用的参照样本,图25的(b)识别表示导出位于右侧下端的区域的DC值时所使用的参照样本。

可以将当前块基于右上端对角方向的对角线分割成2个区域。此时,位于左侧上端的区域的DC值可以基于第一参照样本导出,另一方面,位于右侧下端的区域的DC值可以基于第二参照样本导出。具体而言,左侧上端区域的DC值可以基于左侧参照样本以及上端参照样本导出,另一方面,右侧下端区域的DC值可以基于右侧参照样本以及下端参照样本导出。即,当前块内规定区域的DC值可以利用与规定区域的边界邻接的参照样本导出。

可以将当前块分割为3个区域之后,针对3个区域分别利用不同的参照样本来计算DC值。作为一例,可以将x坐标或者y坐标中的至少一个小于第一基准值的区域设定为第一区域,并且将x坐标或者y坐标中的至少一个在第一基准值以上但小于第二基准值的区域设定为第二区域。此外,可以将x坐标或者y坐标中的至少一个大于第二基准值的区域设定为第三区域。此时,在第一区域可以利用第一参照样本导出DC值,并且在第三区域可以利用第二参照样本导出DC值。在第二区域,则可以利用第一参照样本以及第二参照样本这两者导出DC值。

与图25所示示例不同,可以基于左上端对角方向的对角线来将当前块分割成多个块。

图26表示将按照每个区域导出DC值时所使用的参照样本的范围决定为不同的示例的图。

图26的(a)~(d)分别识别表示导出左侧上端子块、右侧上端子块、左侧下端子块以及右侧下端子块的DC值时所使用的参照样本。

在将当前块分割成大小相同的4个子块的情况下,各子块的DC值可以利用与相应子块邻接的参照样本来导出。作为一例,左侧上端子块的DC值可以利用左侧参照样本以及上端参照样本来导出,右侧上端子块的DC值可以利用右侧参照样本以及上端参照样本来导出。左侧下端子块的DC值可以利用左侧参照样本以及下端参照样本来导出,右侧下端子块的DC值可以利用右侧参照样本以及下端参照样本来导出。

此时,在导出各子块的DC值时,可以不使用与当前块的角落邻接的参照样本。作为一例,在导出左侧上端子块的DC值时,可以排除掉与当前块的左侧上端角落邻接的参照样本,在导出右侧上端子块的DC值时,可以排除掉与当前块的右侧上端角落邻接的参照样本。

在图26中,示出了x轴坐标不大于当前块的宽度的参照样本中的一半以及y轴坐标不大于当前块的高度的参照样本中的一半,使用在各子块的DC值的导出中。但不限于图示示例,可以将x轴坐标不大于当前块的宽度的参照样本全部以及y轴坐标不大于当前块的高度的参照样本全部,使用在各子块的DC值的导出中。

与图26所示示例不同,也可以将当前块分割成比4个更少数量的子块或者更多数量的子块。

子块的形态/大小可以根据当前块的形态/大小决定。或者,可以在编码器以及解码器中事先定义子块的大小。

在当前块的帧内预测模式为DC模式的情况下,可以选择性地使用子块单位DC模式或块单位DC模式中的任一个。此时,可以通过比特流用信号发送用于选择子块单位DC模式或块单位DC模式中任一个的信息。

或者,可以基于当前块的形态、大小、相邻块的编码信息(例如,相邻块是以帧内预测编码还是以帧间预测编码)、相邻块的帧内预测模式或者当前块的位置/分区索引中的至少一个来适应性地决定。

或者,也可以针对每个子块使用相同的参照样本计算DC值的同时,将赋予参照样本的权重按照每个子块设定为不同。4个子块可以均使用左侧参照样本以及上端参照样本计算DC值的同时,按照每个子块的位置将赋予参照样本的权重设定为不同。

图27为表示将按照每个子块赋予参照样本的权重设定为不同的示例的图。如图27所示示例所示,4个子块可以均利用左侧参照样本以及上端参照样本计算DC值的同时,将按照每个子块的位置赋予参照样本的权重设定为不同。具体而言,可以将赋予与子块邻接的参照样本的权重,设定为大于赋予不与子块邻接的参照样本的权重。

在图27中仅以左侧参照样本以及上端参照样本为例进行了说明,但在利用右侧参照样本以及下端参照样本来计算DC值的情况下,也可以根据子块的位置将赋予右侧参照样本以及下端参照样本的权重决定为不同。

上述的实施例基于一系列步骤或者顺序图来进行说明,但这并非限定发明的时间序列,可以根据需要同时执行或者按照其他顺序执行。此外,在上述的实施例中构成框图的构成要素(例如,单元、模块等)每一个既可以由硬件装置或者软件来实现,也可以通过多个构成要素的结合而由一个硬件装置或者软件来实现。上述的实施例可由能够通过多种计算机构成要素来执行的程序指令形态来实现并存储于计算机可读取存储介质中。上述计算机可读取存储介质可以以单独方式或者组合方式包含程序指令、数据文件、数据结构等。作为计算机可读取存储介质的示例,包括硬盘、软盘以及磁带之类的磁介质、CD-ROM、DVD之类的光存储介质、光磁盘之类的光磁介质、以及ROM、RAM、闪存等之类的以存储程序指令并予以执行的方式特别构成的硬件装置。上述硬件装置为了执行本发明所涉及的处理而可以构成为作为一个以上的软件模块运转,反之也一样。

工业实用性

本发明可适用于能够对图像进行编码/解码的电子装置。

本发明提供了以下发明构思:

1.一种图像解码方法,其特征在于,

包括:

决定当前块的帧内预测模式的步骤;

在上述当前块的帧内预测模式为DC模式的情况下,利用上述当前块的周边的参照样本来决定DC值的步骤;以及

基于上述DC值导出上述当前块的预测样本的步骤,

按照上述当前块内每个单位区域获取上述DC。

2.根据发明构思1所述的图像解码方法,其特征在于,

将按照上述每个单位区域获取上述DC值时所使用的参照样本的范围决定为不同。

3.根据发明构思2所述的图像解码方法,其特征在于,

上述参照样本包括左侧参照样本、上端参照样本、右侧参照样本或者下端参照样本中的至少一个。

4.根据发明构思3所述的图像解码方法,其特征在于,

与上述当前块的上端边界以及左侧边界接触的第一区域的DC值基于上述左侧参照样本以及上述上端参照样本来获取,并且与上述当前块的右侧边界以及下端边界接触的第二区域的DC值基于上述右侧参照样本以及上述下端参照样本来获取。

5.根据发明构思2所述的图像解码方法,其特征在于,

上述单位区域为规定大小的子块。

6.根据发明构思2所述的图像解码方法,其特征在于,

将上述当前块以右侧上端对角线为基准分割成多个区域。

7.根据发明构思1所述的图像解码方法,其特征在于,

上述DC值基于上述当前块的左侧参照样本以及上端参照样本来获取,

按照上述每个单位区域,将赋予上述左侧参照样本以及上述参照样本的权重决定为不同。

8.一种图像编码方法,其特征在于,

包括:

决定当前块的帧内预测模式的步骤;

在上述当前块的帧内预测模式为DC模式的情况下,利用上述当前块的周边的参照样本来决定DC值的步骤;以及

基于上述DC值来导出上述当前块的预测样本的步骤,

按照上述当前块内每个单位区域来获取上述DC值。

9.根据发明构思8所述的图像编码方法,其特征在于,

将按照上述每个单位区域获取上述DC值时所使用的参照样本的范围决定为不同。

10.根据发明构思9所述的图像编码方法,其特征在于,

上述参照样本包括左侧参照样本、上端参照样本、右侧参照样本或者下端参照样本中的至少一个。

11.根据发明构思10所述的图像编码方法,其特征在于,

与上述当前块的上端边界以及左侧边界接触的第一区域的DC值基于上述左侧参照样本以及上述上端参照样本来获取,并且与上述当前块的右侧边界以及下端边界接触的第二区域的DC值基于上述右侧参照样本以及上述下端参照样本来获取。

12.根据发明构思9所述的图像编码方法,其特征在于,

上述单位区域为规定大小的子块。

13.根据发明构思9所述的图像编码方法,其特征在于,

将上述当前块以右侧上端对角线为基准分割成多个区域。

14.一种图像解码装置,其特征在于,

包括帧内预测部,该帧内预测部决定当前块的帧内预测模式,在上述当前块的帧内预测模式为DC模式的情况下,利用上述当前块的周边的参照样本来决定DC值,并且基于上述DC值来导出上述当前块的预测样本,

按照上述当前块内每个单位区域来获取上述DC值。

15.一种图像编码装置,其特征在于,

包括帧内预测部,该帧内预测部决定当前块的帧内预测模式,在上述当前块的帧内预测模式为DC模式的情况下,利用上述当前块的周边的参照样本来决定DC值,并且基于上述DC值导出上述当前块的预测样本,

按照上述当前块内每个单位区域来获取上述DC值。

相关技术
  • 一种基于FPGA分配图像视频信号量的方法及装置
  • 用于单片LCD投影设备的MIPI视频信号转换方法及其装置
  • 视频信号处理器、视频信号记录器、视频信号再现器、视频信号处理器处理方法、视频信号记录器处理方法、视频信号再现器处理方法、记录介质
  • 视频信号记录装置及其处理方法、视频信号再现装置及其处理方法
技术分类

06120116498797