本申请是原案申请号为201780068150.8的发明专利申请(国际申请号:PCT/KR2017/009705,申请日:2017年9月5日,发明名称:图像编码/解码方法及其装置)的分案申请。
具体实施方式
在下文中,将通过参照附图来描述本发明的优选实施方式。在下面将与附图一起描述的说明书要描述本发明的示例性实施方式,并非旨在描述可以实现本发明的仅有实施方式。以下的描述包括特定细节以便提供对本发明的完整理解。然而,应该明白,对于本领域技术人员来说,可以在没有这些特定细节的情况下实施本发明。
在一些情形中,为了防止本发明的技术构思不清楚,可以省略公知的结构或者设备,或者公知的结构或者设备可以被绘制为集中于结构或者设备的核心功能的框图。
此外,尽管尽可能多地选择当前广泛地使用的常规术语作为本发明中的术语,但是在特定情形中使用由申请人任意选择的术语。由于在这样的情况下,将在说明书的相应部分中清楚地描述术语的含义,因此,应该理解,本发明并非由仅在本发明的说明书中使用的术语来简单地解释,而是应该领会术语的含义。
可以提供以下的描述中使用的特定术语以帮助理解本发明。此外,在本发明的技术构思的范围内,特定术语可以变型为其它形式。例如,信号、数据、样本、图片、帧和块等可以在每个编码过程中适当地替换和解释。
在本说明书中,“块”或“单元”是指执行诸如预测、变换和/或量化之类的编码/解码处理的单位,并且可以由样本(或像素)的多维布置构成。
“块”或“单元”可以是指关于亮度分量的样本的多维布置或者关于色度分量的样本的多维布置。另外,“块”或“单元”可以共同指代关于亮度分量的样本的多维布置和关于色度分量的样本的多维布置。
例如,“块”或“单元”可以被解释为包括编码块(CB)、编码树块(CTB)、预测块(PB)(或预测单元(PU))、以及变换块(TB)(或变换单元(TU))的含义,编码块(CB)是指要被编码/解码的样本的布置,编码树块(CTB)由多个编码块组成,预测块(PB)是指相同预测所应用于的样本的布置,变换块(TB)是指相同变换所应于的样本的布置。
此外,除非另有说明,否则“块”或“单元”可被解释为包括在关于亮度分量和/或色度分量的样本的布置的编码/解码过程中使用的语法结构的含义。这里,语法结构是指以特定顺序存在于比特流中的0个或更多个语法元素,并且语法元素是指呈现在比特流中的数据元素。
例如,“块”或“单元”可以被解释为包括以下的含义:包括编码块和用于对编码块进行编码的语法结构的编码单元(CU);由多个编码单元组成的编码树单元;包括预测块和用于预测块的预测的语法结构的预测单元(PU);以及包括变换块和用于变换块的变换的语法结构的变换单元(TU)。
另外,在本说明书中,“块”或“单元”不限于正方形或矩形形式的样本(或像素)的布置,并且可以指具有三个或更多个顶点的多边形形式的样本(或像素)的布置。在这种情况下,它可以称为多边形块或多边形单元。
图1示出了根据本发明的实施方式的执行视频信号的编码的编码器的框图。
参照图1,编码器100包括图像分区单元110、变换部120、量化单元130、解量化单元140、逆变换部150、滤波单元160、经解码图片缓冲器(DPB)170、帧间预测单元180、帧内预测单元185、以及熵编码单元190。
图片分区单元110可以将馈入编码器的输入图像(或图片或帧)分区为一个或更多个处理单元。例如,处理单元可以是编码树单元(CTU)、编码单元(CU)、预测单元(PU)或变换单元(TU)。
编码器100可以通过从输入图像信号中减去从帧间预测单元180或帧内预测单元185输出的预测信号来生成残差信号,之后将所生成的残差信号馈送到变换部120。
变换部120可以通过将变换技术应用于残差信号来生成变换系数。例如,变换技术可以包括离散余弦变换(DCT)、离散正弦变换(DST)、卡南-洛伊夫变换(Karhunen-Loevetransform,KLT)、基于图形的变换(GBT)或有条件非线性变换(CNT)中的至少一个。这里,GBT意指从表示关于像素间的关系的信息的图形获得的变换。CNT意指基于通过使用所有先前重构的像素生成的预测信号而获得的变换。此外,变换处理可以应用于相同尺寸的正方形像素块或可变尺寸的非正方形块。
量化单元130可以量化变换系数并将经量化的变换系数输出到熵编码单元190,其中经量化信号被熵编码并作为比特流被输出。
从量化单元130输出的经量化信号可以用于生成预测信号。例如,可以通过在环路内部通过解量化单元140和逆变换部150对经量化信号应用解量化和逆变换,来重构残差信号。可以通过将重构的残差信号添加到从帧间预测单元180或帧内预测单元185输出的预测信号来生成重构的信号。
滤波单元160对重构的信号应用滤波,并将经滤波和重构的信号输出或发送到回放设备或经解码图片缓冲器170。输出到经解码图片缓冲器170的经滤波的信号可以在帧间预测单元180中用作参考图片。以这种方式,通过在帧内预测模式中使用经滤波的图片作为参考图片,不仅可以提高图像质量而且可以提高编码效率。
经解码图片缓冲器170可以存储经滤波的图片以在帧间预测单元180中将其用作参考图片。
帧间预测单元180参照重构的图片来执行时间和/或空间预测,以去除时间和/或空间冗余。
帧内预测单元185可以通过参考在要编码的当前块的周围的样本来预测当前块。帧内预测单元185可以执行以下处理以执行帧内预测。首先,帧内预测单元185可准备参考样本以生成预测信号。此外,可以通过使用所准备的参考样本来生成预测信号。此后,对预测模式进行编码。此时,可以通过参考样本填充和/或参考样本滤波来准备参考样本。因为参考样本经历了预测和重构过程,所以可能存在量化误差。因此,为了降低误差,可以在用于帧内预测的每个预测模式中执行参考样本滤波处理。
通过帧间预测单元180或帧内预测单元185生成的预测信号可以用于生成重构信号或残差信号。
图2示出了根据本发明的实施方式的执行视频信号的解码的解码器的框图。
参照图2,解码器200可以包括熵解码单元210、解量化单元220、逆变换部230、滤波单元240、经解码图片缓冲器(DPB)单元250、帧间预测单元260和帧内预测单元265。
此外,通过解码器200输出的重构的图像信号可以由回放设备播放。
解码器200可以接收从图1的编码器100输出的信号,其中可以通过熵解码单元210对接收的信号进行熵解码。
解量化单元220通过使用量化步长信息从经熵解码的信号中获得变换系数。
逆变换部230通过对变换系数进行逆变换来获得残差信号。
将所获得的残差信号与从帧间预测单元260或帧内预测单元265输出的预测信号相加,由此生成重构的信号。
滤波单元240对重构的信号应用滤波,并将经滤波和重构的信号输出至回放设备,或者将经滤波和重构的信号发送给经解码图片缓冲器(DPB)单元250。馈送到DPB单元250的经滤波的信号可以被帧间预测单元260用作参考图片。
在本说明书中,参照编码器100的滤波单元260、帧间预测单元180和帧内预测单元185描述的实施方式可以分别以相同的方式应用于解码器的滤波单元240、帧间预测单元260、和帧内预测单元265。
图像分区
图3示出了根据本发明的实施方式的编码单元的分区结构。
编码器可以将一个图像(或图片)分区为矩形形状的编码树单元(CTU)。此外,编码器根据光栅扫描顺序逐个地对CTU进行编码。
一个CTU可以分解为四叉树(下文中,它表示为“QT”)结构。例如,一个CTU可以细分为四个正方形形状的单元,其中每个单元的边长是CTU相应边的一半。QT结构的这种分区可以递归地执行。
参照图3,QT的根节点可以与CTU相关联。可以分解QT直至它到达叶节点,此时,叶节点可以称为编码单元(CU)。
参照图3,CTU对应于根节点并且具有最小深度值(即,级别0)。依据图像的特性,CTU可以不被细分,对于这种情况,CTU对应于CU。
CTU可以以QT结构进行细分,结果,可以生成深度为级别1的子节点。从级别1的深度处的子节点不再细分的节点(即,叶节点)对应于CU。例如,在图3的(b)中,对应于节点a、b和j的CU(a)、CU(b)和CU(j)已经从CTU细分一次并且深度为级别1。
对于每个CU,指示相应CU是否被细分的信息可以被发送至解码器。例如,信息可以由分割标志定义,分割标志可以由语法元素“split_cu_flag”表示。分割标志可以包括在除SCU之外的所有CU中。例如,如果分割标志为“1”,则相应CU进一步细分为四个CU,而如果分割标志为“0”,则相应CU不再细分,并且可以对相应CU执行编码处理。
尽管图3的实施方式描述了用于细分CU的过程,但是以上详细描述的相同QT结构也可以应用于细分变换单元(TU)的过程,该变换单元是用于执行变换的基本单位。
可以以QT结构从要编码的CU分层级地细分TU。例如,CU可以对应于与TU相关联的树的根节点。
因为以QT结构来细分TU,因此从CU细分出的TU可以进一步细分为更小的TU。例如,TU的尺寸可以由32×32、16×16、8×8和4×4中的一个确定;然而,本发明不限于特定示例,并且在高分辨率图像的情况下,TU的尺寸可以增加或具有各种值。
对于每个TU,指示相应TU是否被细分的信息可以被发送至解码器。例如,信息可以由分割变换标志来定义,分割变换标志可以通过语法元素“split_transform_flag”表示。
如上所述,CU是用于编码的基本单位,通过其来执行帧内预测或帧间预测。为了更高效地执行输入图像的编码,CU可以被细分为预测单元(PU)。
PU是用于生成预测块的基本单位,即使在一个CU内,也可以就PU而言不同地生成不同预测块。依据是帧内预测模式还是帧间预测模式用于CU的编码模式,可以从CU中不同地细分PU。
图4示出了根据本发明的实施方式的编码单元的分区结构当中的四叉树加二叉树结构。
编码器可以将一个图像(或图片)分区为矩形形状的编码树单元(CTU)。此外,编码器根据光栅扫描顺序逐个地对CTU进行编码。
一个CTU可以分解为四叉树(下文中,其表示为“QT”)和二叉树(下文中,其表示为“BT”)结构。例如,一个CTU可以细分为四个正方形形状的单元(其中每个单元的边长为CTU相应边的一半),或者可以细分为两个矩形单元(其中每个单元的宽度或高度为相应CTU的一半)。这种以QTBT结构进行的分区可以递归地执行。
参照图4,QT的根节点可以与CTU相关联。可以分解QT直至它到达QT叶节点,其中QT叶节点可以被细分为BT,BT可以被进一步细分直至到达BT叶节点。
参照图4,CTU对应于根节点并且具有最小深度值(即,级别0)。依据图像的特性,CTU可以不被细分,对于这种情况,CTU对应于CU。
可以QT结构对CTU进行细分,并且可以以BT结构对QT叶节点进行细分。结果,可以生成深度为级别n的子节点。此外,从级别n的深度处的子节点不再细分的节点(即,叶节点)对应于CU。
对于每个CU,可以将指示相应CU是否被细分的信息发送至解码器。例如,该信息可以由分割标志定义,分割标志可以由语法元素“split_cu_flag”表示。此外,指示QT叶节点是否被细分为BT的信息可以被发送至解码器。例如,该信息可以由BT分割标志定义,BT分割标志可以由语法元素“bt_split_flag”表示。另外,当根据split_bt_flag将QT叶节点细分为BT时,BT细分形状可以被发送至解码器,使得对应于QT叶节点的区域被细分为宽度为区域宽度一半的矩形、或者高度为区域高度一半的矩形。例如,该信息可以由BT分割模式定义,BT分割模式可以由“bt_split_mode”表示。
帧内预测
图5例示了根据本发明的实施方式的取决于帧内预测模式的预测方向。
图5中的(a)例示了35种帧内预测模式。
表1示出了图5中的(a)中所例示的35种帧内预测模式的名称。
[表1]
图5中的(b)例示了67种帧内预测模式。
为了高分辨率图像的帧内编码和更准确的预测,35种角度模式被扩展到67种角度模式。图5的(b)中的虚线表示的箭头表示新增加的32种角度模式。帧内_平面(INTRA_PLANAR)模式和帧内_DC(INTRA_DC)模式与现有的帧内平面模式和帧内DC模式相同。应用所有新添加的32种方向模式,并且进一步全部应用于亮度分量和色度分量的帧内编码中。
表2示出了图5中的(b)中所例示的67种帧内预测模式的名称。
[表2]
在帧内预测中,可以根据预测模式提供用于预测的参考样本的位置的预测方向。在本说明书中,具有预测方向的帧内预测模式被称为帧内角度预测模式或Intra_Angular模式。相反,不具有预测方向的帧内预测模式包括INTRA_PLANAR预测模式和INTRA_DC预测模式。
在帧内预测中,基于推导出的预测模式执行当前处理块。由于用于预测的参考样本和详细预测方法依据预测模式而改变,所以当按照帧内预测模式编码当前块时,解码器可以推导出当前块的预测模式以便执行预测。
解码器可以检查当前处理块的邻近样本是否可以用于预测,并配置要用于预测的参考样本。
帧内预测中当前处理块的邻近样本意指邻近nS×nS尺寸的当前处理块的左边界和左下方的总共2×nS个样本、邻近当前处理块的顶部边界和右上方的总共2×nS个样本、以及邻近当前处理块的左上方的一个样本。
然而,当前处理块的一些邻近样本可能尚未被解码或可能尚不可用。在这种情况下,解码器可以通过将不可用的样本替换为可用样本来配置要用于预测的参考样本。
解码器可以基于帧内预测模式对参考样本进行滤波。
解码器可以基于帧内预测模式和参考样本生成用于当前处理块的预测块。也就是说,解码器可以基于在帧内预测模式推导步骤中推导出的帧内预测模式和通过参考样本配置步骤和参考样本滤波步骤获取的参考样本,生成用于当前处理块的预测块。
参考样本滤波
编码器/解码器在图片内预测(即,帧内预测)的过程中根据预测方向对预测块的边界像素进行滤波。
在下文中,将描述用于在HEVC图片内预测的过程中对预测块的块边界像素进行滤波的方法以及用于对当前QTBT结构中的预测块的块边界像素进行滤波的方法。
在下文中,为了便于描述,像素的坐标由(x,y)表示,其中假设x表示水平方向上的x轴的坐标(值从左向右增加)并且y表示垂直方向上的y轴坐标(值从顶部到底部增加)。此外,预测块中的左上像素的坐标被假设为(0,0)。
此外,下面在本说明书中,为了便于描述,描述了在具有35种帧内预测模式和/或67种帧内预测模式的帧内预测方法中的边界像素滤波方法,但是本发明不限于此并且即使对于与此不同地定义的帧内预测方法,也可以类似地应用帧内预测模式。
图6例示了根据本发明的实施方式的通过帧内预测生成的预测方向。
在图6中,白色的虚线块代表参考像素(即,参考样本)并且灰色的实线块代表预测块(即,预测符(predictor))。
在下文中,为了便于描述,将描述根据HEVC和QTBT的帧内预测模式的边界像素滤波。
首先,将描述当帧内预测模式是DC模式时预测块的边界像素的滤波方法。
图7和图8是用于描述根据本发明的实施方式的、当帧内预测模式是DC模式时对预测块的边界像素的滤波的图。
在图7和8中,深灰色实线块表示经滤波的预测块(即,经滤波的预测符)并且如图7所例示,在DC模式的情况下,对左方和顶部的块边界的像素进行了滤波。
图8中的(a)和图8中的(b)例示了用于在DC模式的情况下对顶部块边界的像素进行滤波的方法。
如图8中的(a)所例示,使用预测像素和参考像素对顶部块边界上的像素801a进行滤波。
另外,如图8中的(b)所例示,用于滤波的参考像素和预测像素是根据在顶部块边界上的像素801a的每个像素的位置来确定的。
也就是说,顶部块边界上的经滤波的像素(即,预测符)(x,y)的值被计算为{(3×预测像素(即,预测符)(x,y)的值+参考像素(x,y-1)的值+2)>>2}。
在下文中,在本说明书中,x>>y表示x的二进制补码整数表达式通过y个二进制数位来进行计算的算术右移。该函数是仅针对y的非负整数值定义的。作为右移结果而移位到最高有效位(MSB)的比特与移位操作之前的x的最高有效位(MSB)具有相同的值。
图8中的(c)和图8中的(d)例示了用于在DC模式的情况下对左块边界的像素进行滤波的方法。
如图8中的(c)所例示,使用预测像素和参考像素对左块边界处的像素801c进行滤波。
另外,如图8中的(d)所例示的,用于滤波的参考像素和预测像素是根据在左块边界上的像素801c的每个像素位置来确定的。
也就是说,左边块边界上的经滤波的像素(即,预测符)(x,y)的值被计算为{(3×预测像素(即,预测符)(x,y)的值+参考像素(x-1,y)的值+2)>>2}。
接下来,将描述当帧内预测模式是水平模式时对预测块的边界像素的滤波方法。
图9是用于描述根据本发明的实施方式的、当帧内预测模式是水平模式时对预测块的边界像素的滤波的图。
图9例示了当在诸如HEVC的具有35种帧内预测模式的帧内预测方法中以第10预测模式或者在具有67种帧内预测模式的帧内预测方法中以第18预测模式、第19预测模式和第17预测模式(参见以上图5)生成预测块时的块边界滤波。
从图9中的(a)中可以看出,由于HEVC的第10模式或67种预测模式中的第17模式、第18模式和第19模式是水平预测模式(参见以上图5),因此对顶部块边界的像素901a进行滤波。
另外,如图9中的(b)和图9中的(c)所例示的,用于滤波的参考像素和预测像素是根据在顶部块边界上的像素901a的每个像素的位置来确定的。
也就是说,顶部块边界上的经滤波的像素(x,y)(即,预测符)的值被计算为{预测像素(x,y)的值+(第一参考像素(-1,-1)的值-第二参考像素(x,y-1)的值)>>1)}。
接下来,将描述当帧内预测模式是垂直模式时对预测块的边界像素的滤波方法。
图10是用于描述根据本发明的实施方式的当帧内预测模式是垂直模式时对预测块的边界像素的滤波的图。
图10例示了在当在诸如HEVC的具有35种帧内预测模式的帧内预测方法中以第26预测模式或者在具有67种帧内预测模式的帧内预测方法中以第49预测模式、第50预测模式和第51预测模式生成预测块时的块边界滤波。
从图10中的(a)中可以看出,由于HEVC的第26模式或67种预测模式中的第49模式、第50模式和第51模式是垂直预测模式(参见以上图5),因此对左块边界的像素1001a进行滤波。
另外,如图10中的(b)和图10中的(c)所例示,用于滤波的参考像素和预测像素是根据在左块边界上的像素1001a的每个像素的位置来确定的。
也就是说,左块边界上的经滤波的像素(x,y)(即,预测符)的值被计算为{预测像素(x,y)的值+(第一参考像素(-1,-1)的值-第二参考像素(x-1,y)的值)>>1)}。
在以上参照图9和图10描述的水平或垂直预测模式的情况下,可以仅在预测块的尺寸是特定尺寸或更小(例如,16×16或更小)的块上对预测块边界的像素进行滤波。
接下来,将描述当帧内预测模式是(例如,如以上图5中所例示的35种或67种帧内预测模式当中的)第二模式时预测块的边界像素的滤波方法。
图11至图13是用于描述根据本发明的实施方式的、当帧内预测模式是第二模式时对预测块的边界像素的滤波的图。
如图11中所例示的,当帧内预测模式是第二模式时,由于从左下参考像素开始执行预测,因此针对四个顶部预测像素行执行滤波。
如图12中的(a)和图12中的(b)所例示,根据从最上端开始的第一预测像素行的像素1201a的每个像素的位置,来确定用于滤波的参考像素和预测像素。
也就是说,第一预测像素行的经滤波的像素(x,y)的值被计算为{(8×预测像素(x,y)的值+8×参考像素(x+1,y-1)的值+8)>>4}。
如图12中的(c)和图12中的(d)所例示,根据从最上端开始的第二预测像素行的像素1201c的每个像素的位置,来确定用于滤波的参考像素和预测像素。
也就是说,第二预测像素行的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+4×参考像素(x+2,y-2)的值+8)>>4}。
如图13中的(a)和图13中的(b)所例示,根据从最上端开始的第三预测像素行的像素1301a的每个像素的位置,来确定用于滤波的参考像素和预测像素。
也就是说,第三预测像素行的经滤波的像素(x,y)的值被计算为{(14×预测像素(x,y)的值+2×参考像素(x+3,y-3)的值+8)>>4}。
如图13中的(c)和图13中的(d)所示,根据从最上端开始的第四预测像素行的像素1301c的每个像素的位置,来确定用于滤波的参考像素和预测像素。
也就是说,第四预测像素行的经滤波的像素(x,y)的值被计算为{(15×预测像素(x,y)的值+参考像素(x+4,y-4)的值+8)>>4}。
接下来,将描述当帧内预测模式是(例如,如以上图5中所例示的35种帧内预测模式当中的)第34模式时预测块的边界像素的滤波方法。
图14至图16是用于描述根据本发明的实施方式的当帧内预测模式是的35种帧内预测模式中的模式#34或67种帧内预测模式中的预测模式#66时对预测块的边界像素的滤波的图。
如图14中所例示,在帧内预测模式是第34模式(在35种帧内预测模式的情况下)或第66模式(在67种帧内预测模式的情况下)的情况下,由于从右上参考像素开始执行预测,因此针对四个左侧预测像素行(pixel line)执行滤波。
如图15中的(a)和图15中的(b)所例示,根据从最左侧开始的第一预测像素行的像素1501a的每个像素的位置,来确定用于滤波的参考像素和预测像素。
也就是说,第一预测像素行的经滤波的像素(x,y)的值被计算为{(8×预测像素(x,y)的值+8×参考像素(x-1,y+1)的值+8)>>4}。
如图15中的(c)和图15中的(d)所例示,根据从最左侧开始的第二预测像素行的像素1501c的每个像素的位置,来确定用于滤波的参考像素和预测像素。
也就是说,第二预测像素行的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+4×参考像素(x-2,y+2)的值+8)>>4}。
如图16中的(a)和图16中的(b)所例示,根据从最左侧开始的第三预测像素行的像素1601a的每个像素的位置,来确定用于滤波的参考像素和预测像素。
也就是说,第三预测像素行的经滤波的像素(x,y)的值被计算为{(14×预测像素(x,y)的值+2×参考像素(x-3,y+3)的值+8)>>4}。
如图16中的(c)和图16中的(d)所例示,根据从最左侧开始的第四预测像素行的像素1601c的每个像素的位置,来确定用于滤波的参考像素和预测像素。
也就是说,第四预测像素行的经滤波的像素(x,y)的值被计算为{(15×预测像素(x,y)的值+参考像素(x-4,y+4)的值+8)>>4}。
接下来,将描述当帧内预测模式是(例如,如以上图5所例示的35种帧内预测模式当中的)第3模式、第4模式、第5模式或第6模式或者第30模式、第31模式、第32模式或第33模式时对预测块的边界像素的滤波方法。
图17是用于描述根据本发明的实施方式的、当帧内预测模式是35种帧内预测模式中的第3模式、第4模式、第5模式或第6模式时对预测块的边界像素的滤波的图。
由于帧内预测第3模式、第4模式、第5模式或第6模式是从左参考样本开始执行预测的模式,因此对预测块的顶部边界像素执行滤波,并且根据每个模式的角度(即,预测方向的角度),用于滤波的参考像素的位置以及参考像素和预测像素的权重之间存在差异。
图17中的(a)例示了在帧内预测第3模式的情况下对预测块的边界像素的滤波。
如图17中的(a)所例示,根据顶部块边界的像素1701a的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,顶部块边界上的经滤波的像素(x,y)的值被计算为{(8×预测像素(x,y)的值+6×第一参考像素(x+1,y-1)的值+2×第二参考像素(x+2,y-1)的值+8)>>4}。
图17中的(b)例示了在帧内预测模式#4的情况下对预测块的边界像素的滤波。
如图17中的(b)所例示,根据顶部块边界的像素1701b的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,顶部块边界上的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+2×第一参考像素(x+1,y-1)的值+2×第二参考像素(x+2,y-1)的值+8)>>4}。
图17中的(c)例示了在帧内预测第五模式的情况下对预测块的边界像素的滤波。
如图17中的(c)所例示,根据顶部块边界的像素1701c的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,顶部块边界上的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+1×第一参考像素(x+1,y-1)的值+3×第二参考像素(x+2,y-1)的值+8)>>4}。
图17中的(d)例示了在帧内预测第6模式的情况下对预测块的边界像素的滤波。
如图17中的(d)所例示,根据顶部块边界的像素1701d的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,顶部块边界上的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+3×第一参考像素(x+2,y-1)的值+1×第二参考像素(x+3,y-1)的值+8)>>4}。
图18是用于描述根据本发明的实施方式的、当帧内预测模式是35种帧内预测模式中的第30模式、第31模式、第32模式或第33模式时对预测块的边界像素的滤波的图。
由于帧内预测第30模式、第31模式、第32模式或第33模式是从顶部参考样本开始执行预测的模式,因此对预测块的左边界像素执行滤波,并且根据每个模式的角度(即,预测方向的角度),用于滤波的参考像素的位置以及参考像素和预测像素的权重之间存在差异。
图18中的(a)例示了在帧内预测模式#30的情况下对预测块的边界像素的滤波。
如图18中的(a)所示,根据左块边界的像素1801a的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,左边块边界上的经滤波的像素(x,y)的值被计算为{(8×预测像素(x,y)的值+6×第一参考像素(x-1,y+1)的值+2×第二参考像素(x-2,y+2)的值+8)>>4}。
图18中的(b)例示了在帧内预测模式#31的情况下对预测块的边界像素的滤波。
如图18中的(b)所例示,根据左块边界的像素1801b的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,左边块边界上的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+2×第一参考像素(x-1,y+1)的值+2×第二参考像素(x-1,y+2)的值+8)>>4}。
图18中的(c)例示了在帧内预测模式#32的情况下对预测块的边界像素的滤波。
如图18中的(c)所例示,根据左块边界的像素1801c的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,左边块边界上的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+1×第一参考像素(x-1,y+1)的值+3×第二参考像素(x-1,y+2)的值+8)>>4}。
图18中的(d)例示了在帧内预测模式#33的情况下对预测块的边界像素的滤波。
如图18中的(d)所例示,根据左块边界的像素1801d的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,左块边界上的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+3×第一参考像素(x-1,y+2)的值+1×第二参考像素(x-1,y+3)的值+8)>>4}。
接下来,将描述当帧内预测模式是(例如,如以上图5所例示的67种帧内预测模式当中的)模式#3、#4、#5、#6、#7、#8、#9或#10时对预测块的边界像素的滤波方法。
图19和图20是用于描述根据本发明的实施方式的、当帧内预测模式是67种帧内预测模式中的第3模式、第4模式、第5模式、第6模式、第7模式、第8模式、第9模式或第10模式时对预测块的边界像素的滤波的图。
由于帧内预测第3模式、第4模式、第5模式、第6模式、第7模式、第8模式、第9模式或第10模式是从左参考样本开始执行预测的模式,因此对预测块的顶部边界像素执行滤波,并且根据每个模式的角度(即,预测方向的角度),用于滤波的参考像素的位置以及参考像素和预测像素的权重之间存在差异。
图19中的(a)例示了在帧内预测模式#3的情况下对预测块的边界像素的滤波。
如图19中的(a)所例示,根据顶部块边界的像素1901a的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,顶部块边界上的经滤波的像素(x,y)的值被计算为{(8×预测像素(x,y)的值+7×第一参考像素(x+1,y-1)的值+1×第二参考像素(x+2,y-1)的值+8)>>4}。
图19中的(b)例示了在帧内预测模式#4的情况下对预测块的边界像素的滤波。
如图19中的(b)所例示,根据顶部块边界的像素1901b的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,顶部块边界上的经滤波的像素(x,y)的值被计算为{(8×预测像素(x,y)的值+6×第一参考像素(x+1,y-1)的值+2×第二参考像素(x+2,y-1)的值+8)>>4}。
图19中的(c)例示了在帧内预测模式#5的情况下对预测块的边界像素的滤波。
如图19中的(c)所示,根据顶部块边界的像素1901c的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,顶部块边界上的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+3×第一参考像素(x+1,y-1)的值+1×第二参考像素(x+2,y-1)的值+8)>>4}。
图19中的(d)例示了在帧内预测模式#6的情况下对预测块的边界像素的滤波。
如图19中的(d)所例示,根据顶部块边界的像素1901d的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,顶部块边界上的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+2×第一参考像素(x+1,y-1)的值+2×第二参考像素(x+2,y-1)的值+8)>>4}。
图20中的(a)例示了在帧内预测模式#7的情况下对预测块的边界像素的滤波。
如图20中的(a)所例示,根据顶部块边界的像素2001a的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,顶部块边界上的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+3×第一参考像素(x+1,y-1)的值+2×第二参考像素(x+2,y-1)的值+8)>>4}。
图20中的(b)例示了在帧内预测模式#8的情况下对预测块的边界像素的滤波。
如图20中的(b)所例示,根据顶部块边界的像素2001b的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,顶部块边界上的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+1×第一参考像素(x+1,y-1)的值+3×第二参考像素(x+2,y-1)的值+8)>>4}。
图20中的(c)例示了在帧内预测模式#9的情况下对预测块的边界像素的滤波。
如图20中的(c)所例示,根据顶部块边界的像素2001c的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,顶部块边界上的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+3×第一参考像素(x+2,y-1)的值+1×第二参考像素(x+3,y-1)的值+8)>>4}。
图20中的(d)例示了在帧内预测模式#10的情况下对预测块的边界像素的滤波。
如图20中的(d)所例示,根据顶部块边界的像素2001d的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,顶部块边界上的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+3×第一参考像素(x+2,y-1)的值+1×第二参考像素(x+3,y-1)的值+8)>>4}。
接下来,将描述当帧内预测模式是(例如,如在上图5所例示的67种帧内预测模式当中的)第59模式、第60模式、第61模式、第62模式、第63模式、第64模式、第65模式或第66模式时对预测块的边界像素的滤波方法。
图21和图22是用于描述当根据本发明的实施方式的、当帧内预测模式是67种帧内预测模式中的第59模式、第60模式、第61模式、第62模式、第63模式、第64模式、第65模式或第66模式时对预测块的边界像素的滤波的图。
由于帧内预测第59模式、第60模式、第61模式、第62模式、第63模式、第64模式、第65模式或第66模式是从顶部参考样本开始执行预测的模式,因此对预测块的左边界像素执行滤波,并且根据每个模式的角度(即,预测方向的角度),用于滤波的参考像素的位置以及参考像素和预测像素的权重之间存在差异。
图21中的(a)例示了在帧内预测模式#59的情况下对预测块的边界像素的滤波。
如图21中的(a)所例示,根据左块边界的像素2101a的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,左块边界上的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+3×第一参考像素(x-1,y+2)的值+1×第二参考像素(x-1,y+3)的值+8)>>4}。
图21中的(b)例示了在帧内预测模式#60的情况下对预测块的边界像素的滤波。
如图21中的(b)所例示,根据左块边界的像素2101b的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,左块边界上的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+3×第一参考像素(x-1,y+2)的值+1×第二参考像素(x-1,y+3)的值+8)>>4}。
图21中的(c)例示了在帧内预测模式#61的情况下对预测块的边界像素的滤波。
如图21中的(c)所例示,根据左块边界的像素2101c的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,左边块边界上的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+1×第一参考像素(x-1,y+1)的值+3×第二参考像素(x-1,y+2)的值+8)>>4}。
图21中的(d)例示了在帧内预测模式#62的情况下对预测块的边界像素的滤波。
如图21中的(d)所例示,根据左块边界的像素2101d的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,左块边界上的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+3×第一参考像素(x-1,y+1)的值+2×第二参考像素(x-1,y+2)的值+8)>>4}。
图22中的(a)例示了在帧内预测模式#63的情况下对预测块的边界像素的滤波。
如图22中的(a)所例示,根据左块边界的像素2201a的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,左边块边界上的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+2×第一参考像素(x-1,y+1)的值+2×第二参考像素(x-1,y+2)的值+8)>>4}。
图22中的(b)例示了在帧内预测模式#64的情况下对预测块的边界像素的滤波。
如图22中的(b)所例示,根据左块边界的像素2201b的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,左块边界上的经滤波的像素(x,y)的值被计算为{(12×预测像素(x,y)的值+3×第一参考像素(x-1,y+1)的值+1×第二参考像素(x-1,y+2)的值+8)>>4}。
图22中的(c)例示了在帧内预测模式#65的情况下对预测块的边界像素的滤波。
如图22中的(c)所例示,根据左块边界的像素2201c的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,左边块边界上的经滤波的像素(x,y)的值被计算为{(8×预测像素(x,y)的值+6×第一参考像素(x-1,y+1)的值+2×第二参考像素(x-1,y+2)的值+8)>>4}。
图22中的(d)例示了在帧内预测模式#66的情况下对预测块的边界像素的滤波。
如图22中的(d)所例示,根据左块边界的像素2201d的每个像素的位置来确定用于滤波的参考像素的位置。
也就是说,左块边界上的经滤波的像素(x,y)的值被计算为{(8×预测像素(x,y)的值+7×第一参考像素(x-1,y+1)的值+1×第二参考像素(x-1,y+2)的值+8)>>4}。
如上面在图6至图22中所描述的那样,根据每种帧内预测模式执行对通过帧内预测生成的预测块中的块边界像素的滤波。然而,到目前为止,在滤波处理中,根据预测块的尺寸来确定是否应用滤波。即使在QTBT块分区结构中,这样的过程也是类似的。
图23例示了根据本发明的实施方式的在QTBT结构中对预测块的边界像素进行滤波的过程。
参照图23,当解码器开始预测符(即,预测样本/预测像素)滤波时,解码器接收预测符作为输入值(即,预测块生成),并且解码器检查帧内预测模式(intraPredMode)是否是从左侧块生成预测块的模式#18、#19或#17(即水平模式)或者从顶部块生成预测块的模式#49、#50或#51(即垂直模式)(S2301)(即,intraPredMode(18,19,20)||intraPredMode(50,51,49))。
在步骤S2301中,当帧内预测模式(intraPredMode)是模式#18、#19或#17(即,水平模式)或模式#49、#50或#51(即,垂直模式)时,解码器检查是否应用残差差分脉冲编码调制(RDPCM)和TQ旁通(S2302)(即,!(RDPCMenabled&&TQ Bypass))。
这里,作为HEVC范围扩展(RangeExtension)技术的RDPCM是对残差信号执行差分脉冲编码调制(DPCM)并发送残差信号的技术,而TQ旁通是一种无需变换/量化来发送残差信号的方法。
当在步骤S2302中未应用RDPCM和TQ旁通时,解码器检查预测块是否是亮度(Luma)块并且预测块大小的尺寸是否小于16×16(S2303)(即,Luma&&块<16×16)。否则,解码器终止预测符滤波。
在步骤S2303中,当预测块是亮度(Luma)块并且预测块的尺寸小于16×16时,解码器执行预测符滤波处理1(S2304)。否则,解码器终止预测符滤波。
这里,在模式#18、#19和#17(即,水平模式)的情况下,根据以上图9中所例示的方法执行预测符滤波处理1的过程,而在模式#49、#50和#51(即垂直模式)的情况下,根据以上图10所例示的方法执行预测符滤波处理1的过程。
此外,在步骤S2301中,当帧内预测模式(intraPredMode)不是模式#18、#19和#17(即,水平模式)和#49、#50和#51(即,垂直模式)时,解码器检查是否未应用PDPC、宽度是否为16或更大、或者未应用RSAF(S2305)(即,(!PDPC||宽度>=16||!SPS.useRSAF)。
这里,由于位置相关帧内预测组合(PDPC)生成自预测块,所以不需要边界滤波,而自适应参考样本平滑(ARSS)通过对参考样本进行滤波来生成预测块,ARSS是一种防止过度滤波的技术。
在步骤S2305中,当未应用PDPC、宽度为16或更大、或者未应用RSAF时,解码器确定预测块是亮度(Luma)块、预测块的宽度大于2并且预测块的高度大于2(S2306)。否则,解码器终止预测符滤波。
在步骤S2306中,当预测块是亮度(Luma)块、预测块的宽度大于2、并且预测块的高度大于2时,解码器执行预测符滤波处理2(S2307)。否则,解码器终止预测符滤波。
这里,将参照图24描述预测符滤波处理2。
此外,步骤S2302和S2305可以选择性地实现和省略。
图24例示了根据本发明的实施方式的QTBT结构中的预测符滤波处理。
参照图24,当预测符滤波处理2开始时,解码器检查帧内预测模式(intraPredMode)是否是DC模式、或者大于模式#1且小于模式#11、或者大于模式#58且小于等于模式#66(S2401)(即intraPredMode(DC)||1<intraPredMode<11||58<intraPredMode<=66)。
在步骤S2401中,当帧内预测模式(intraPredMode)是DC模式、或者大于模式#1且小于模式#11、或者大于模式#58且小于等于模式#66时,解码器检查帧内预测模式(intraPredMode)是否是DC模式(S2402)。否则,解码器终止预测符滤波处理2。
在步骤S2402中,当帧内预测模式(intraPredMode)是DC模式时,解码器执行边界像素滤波(S2403)。如以上图7和图8中所例示的方法那样执行边界像素滤波。
相反,当在步骤S2402中帧内预测模式(intraPredMode)不是DC模式时,解码器检查帧内预测模式(intraPredMode)是否是#2或#66(S2404)。
在步骤S2404中,当帧内预测模式(intraPredMode)是模式#66时,解码器对与边界周围2行相对应的边界像素进行滤波(S2405)。
针对模式#66的边界像素滤波遵循如以上图14至图16中所例示的方法并且对与边界周围2行相对应的边界像素进行滤波。
解码器检查预测块的宽度(BlockWidth)是否大于2(S2406)。
当预测块的宽度(BlockWidth)大于2时,解码器对与边界周围额外2行相对应的边界像素进行滤波(S2407)。否则,解码器终止预测符滤波处理2。
当在步骤S2404中帧内预测模式(intraPredMode)是模式#2时,解码器对与边界周围2行相对应的边界像素进行滤波(S2408)。
针对模式#2的边界像素滤波遵循以上图11至图13中所例示的方法并且对与边界周围2行相对应的边界像素进行滤波。
解码器检查预测块的高度(BlockHeight)是否大于2(S2409)。
当预测块的高度(BlockHeight)大于2时,解码器对与边界周围额外2行相对应的边界像素进行滤波(S2410)。否则,解码器终止预测符滤波处理2。
当帧内预测模式(intraPredMode)不是模式#66或#2时,解码器对与边界周围1行相对应的边界像素进行滤波(S2411)。
预测块的边界像素的滤波方法
1)实施方式1
本发明的实施方式提出了一种当非正方形块的帧内预测(图片内预测)是DC模式时边界像素的滤波方法。
如以上图7和图8中所描述的,在DC模式的情况下,针对左块边界和顶部块边界执行滤波。然而,在HEVC中,仅针对块尺寸为16×16或更小的亮度(luma)块执行滤波。
约束需要适应性地应用于非正方形块。然而,根据以上当前定义的方法,因为边界像素的滤波仅应用于块尺寸16×16或更小的块,所以约束可能无法适应性地应用于32×4、4×32、4×32等的宽度长度或高度长度。为了解决这样的问题,提出了一种用于在预测模式是DC模式时根据自适应条件确定是否执行滤波的方法。
图25是例示了根据本发明的实施方式的当帧内预测模式是DC模式时用于对边界像素进行滤波的方法的图。
参照图25,当DC模式边界像素滤波开始时,解码器检查当前预测块是否是非正方形块(S2501)。
当在步骤S2501中当前预测块是非正方形块时,解码器检查预测块的宽度是否是最大滤波尺寸(MAXIMUM_FILTERING_SIZE)或更小(S2502)(即,宽度<=MAXIMUM_FILTERING_SIZE)。
当在步骤S2502中预测块的宽度是最大滤波尺寸(MAXIMUM_FILTERING_SIZE)或更小时,解码器执行对预测块的顶部边界像素的滤波(S2503)。
这里,顶部边界像素滤波遵循以上图7和图8中所例示的方法,并且仅对顶部边界像素进行滤波。
在步骤S2503执行了顶部边界像素滤波之后或者当在步骤S2502中预测块的宽度超过最大滤波尺寸(MAXIMUM_FILTERING_SIZE)时,解码器检查预测块的高度是否是最大滤波尺寸(MAXIMUM_FILTERING_SIZE)或更小(S2504)(即,高度<=MAXIMUM_FILTERING_SIZE)。
当在步骤S2504中预测块的高度是最大滤波尺寸(MAXIMUM_FILTERING_SIZE)或更小时,解码器执行对预测块的左边界像素的滤波(S2505)。否则,解码器终止DC模式边界像素滤波。
这里,左边界像素滤波遵循以上图7和图8中所例示的方法,并且仅对左边界像素进行滤波。
此外,在步骤S2501中,在当前预测块不是非正方形块(即,正方形块)时,解码器执行用于DC模式的现有边界像素滤波(S2506)。
这里,用于DC模式的现有边界像素滤波遵循以上图7和图8中所例示的方法。
2)实施方式2
本发明的实施方式提出了当非正方形块的帧内预测模式是水平模式或垂直模式时边界像素的滤波方法。
如以上图9中所描述的HEVC的水平模式(或者使用67种帧内预测模式的预测方法中的模式#17、#18或#19)以及如以上图10中所描示的HEVC的垂直模式(或使用67种帧内预测模式的预测方法中的模式#49、#50或#51)经过块边界像素滤波。
然而,不是在所有条件下都执行滤波,并且在以下图26所例示的条件下仅对预测块尺寸为16×16或更小的块执行滤波。
图26是例示了根据本发明的实施方式的当帧内预测模式是水平/垂直模式时边界像素滤波处理的图。
参照图26,当水平/垂直模式(或在使用67种帧内预测模式的预测方法中的模式#17、#18或#19或者#49、#50或#51)的边界像素滤波开始时,解码器检查RDPCM和TQ旁通是否未应用于当前预测块(S2601)(即,!(RDPCMenabled&&TQ Bypass))。
当在步骤S2601中RDPCM和TQ旁通未应用于当前预测块时,解码器检查预测块是否是亮度(Luma)块并且预测块尺寸的大小为16×16或更小(S2602)(S2602)(即,Luma&&块<=16×16)。
当在步骤S2602中预测块是亮度(Luma)块并且预测块的尺寸为16×16或更小时,解码器执行预测符滤波处理1(S2603)。否则,终止水平/垂直模式(或使用67种帧内预测模式的预测方法中的模式#17、#18、或#19、或者#49、#50、或#51)的边界像素滤波。
这里,预测符滤波处理1遵循以上图9或图10中所例示的方法。
此外,可以选择性地实现和省略步骤S2601。
图26的条件需要适应性地应用于由于QTBT结构的分区而可具有各种尺寸的块。例如,根据图26的条件,在4×32、32×4等的块中不执行边界像素滤波。
为了解决这样的问题,在实施方式中,如以下图27所例示的,可以针对在从左块开始执行预测的模式#17、#18或#19(在定义了67种预测模式的预测方法的情况下)中或者在HEVC的水平模式中预测的16×N、8×N和4×N的块,执行顶部块边界像素的滤波。类似地,可以针对在从顶部块开始执行预测的模式#49、#50或#51中(在定义了67种预测模式的预测方法的情况下)或者在HEVC的垂直模式中预测的N×4、N×8和N×16的块,执行左块边界像素的滤波。
图27是例示了根据本发明的实施方式的用于对预测块的边界像素进行滤波的方法的图。
参照图27,当水平/垂直模式(或在使用67种帧内预测模式的预测方法中的模式#17、#18、或#19、或者#49、#50或#51)的边界像素滤波开始时,解码器检查RDPCM和TQ旁通是否未应用于当前预测块,并且当前预测块是否是亮度(luma)块(S2701)(即,!(RDPCMenabled&&TQ Bypass)&&Luma)。
当在步骤S2701中,RDPCM和TQ Bypass未应用于当前预测块并且当前预测块是亮度(luma)块时,解码器检查当前预测块的帧内预测模式的方向性(predIntraMode)是否属于基于水平帧内预测模式的方向性(IntraDir(Hor))的预定范围(-α到+α),并且块的宽度(BlockWidth)是否等于或小于预定边界像素滤波的最大块尺寸β(S2702)(即,(IntraDir(Hor)-α<=predIntraMode<=IntraDir(Hor)+α)&&(BlockWidth<=β))。否则,终止边界像素滤波。
这里,α表示帧内方向模式的差,β表示边界滤波的最大块尺寸。
当在步骤S2702中当前预测块的帧内预测模式的方向性(predIntraMode)属于基于水平帧内预测模式的方向性(IntraDir(Hor)的预定范围(-α到+α)并且块的宽度(BlockWidth)等于或小于预定的边界像素滤波的最大块尺寸β时,解码器执行预测块的顶部边界像素滤波(S2703)。
这里,预测块的顶部边界像素滤波可以采用以上图9中所描述的方法。
在执行预测块的顶部边界像素滤波之后或者当在步骤S2702中当前预测块的帧内预测模式的方向性(predIntraMode)不属于基于水平帧内预测模式的方向性(IntraDir(Hor))的预定范围(-α到+α)或块的宽度BlockWidth大于预定的边界像素滤波的最大块尺寸β时,解码器检查当前块的帧内预测模式的方向性(predIntraMode)是否属于基于垂直帧内预测模式的方向性(IntraDir(Ver))的预定范围(-α到+α)并且块的高度(BlockHeight)是否等于或小于预定的边界像素滤波的最大块尺寸β(S2704)(即,(IntraDir(Ver)-α<=predIntraMode<=IntraDir(Ver)+α)&&(BlockHeight<=β))。
当在步骤S2704中当前预测块的帧内预测模式的方向性(predIntraMode)属于基于垂直帧内预测模式的方向性(IntraDir(Ver))的预定范围(-α到+α)并且块的高度(BlockHeight)等于或小于预定的边界像素滤波的最大块尺寸β时,解码器执行预测块的左边界像素滤波(S2705)。
这里,预测块的左边界像素滤波可以采用以上图10中所描述的方法。
此外,可以选择性地实现和省略步骤S2701。
3)实施方式3
本发明的实施方式提出了当在帧内预测模式的总数为35的情况下帧内预测模式为2或34时,以及当在帧内预测模式的总数是67的情况下非正方形块的帧内预测模式为2或66时,预测块的边界像素的滤波方法。
如以上图11至图16中所描述的,对属于块边界周围四行的边界像素进行滤波的模式的滤波确定结构被部分变型并应用于当前QTBT结构中。然而,由于在当前QTBT结构中没有优化这种确定结构,所以该实施方式提出了一种可以高效地应用边界像素的滤波的方法。
在QTBT结构中,由于二叉树,在亮度的情况下最小块尺寸可以对应于4×N或N×4,而在色度的情况下最小块尺寸可以对应于2×N或N×2。因此,如以上图25中所例示的,在应用于QTBT中的滤波结构中,存在以下问题:在尺寸为4×N或N×4的亮度(Luma)块中整个预测块被滤波,以及在色度的情况下2×N或N×2块的所有预测像素也被滤波。
为了解决这样的问题,本发明的实施方式提出了一种根据预测方向和块尺寸来限制边界像素的滤波范围的方法。将参考以下附图对此进行描述。
图28和图29是例示了根据本发明的实施方式的用于对预测块的边界像素进行滤波的方法的图。
图28例示了当帧内预测模式的总数是35/67时应用模式#2的情况,而图29例示了当帧内预测模式的总数是35时应用模式#34以及当帧内预测模式的总数是67时应用模式#66时的情况。
如图28中所例示的,当帧内预测模式为模式#2时,如果块尺寸为8×N,则在现有技术中对块的所有像素进行滤波,但是在本实施方式提出的方法中,针对N×4块可以仅对预测块边界的两个像素行2801b进行滤波。
此外,如图29所例示,当帧内预测模式是模式#34/66时,如果块尺寸是N×8,则在现有技术中对块的所有像素进行滤波,但是在本实施方式提出的方法中,针对N×4块,可以仅对属于预测块边界的两个像素行的像素2901b进行滤波。
这里,用于对属于块边界周围的两个像素行的像素进行滤波的方法可以分为两种方法。
如图30所例示,使用现有的滤波方法并且可以仅对边界周围的仅两个像素行进行滤波,或者如图31所例示,可以对相应预测块应用新的弱滤波器。
图30是例示了根据本发明的实施方式的用于对预测块的边界像素进行滤波的方法的图。
参照图30,当预测符滤波处理2开始时,解码器检查帧内预测模式(intraPredMode)是否是DC模式、大于模式#1且小于模式#11、或者大于模式#58且小于等于模式#66(S3001)(即,intraPredMode(DC)||1<intraPredMode<11||58<intraPredMode<=66)。
当帧内预测模式(intraPredMode)是DC模式、或者大于模式#1且小于模式#11、或者大于模式#58且小于等于模式#66时,解码器检查帧内预测模式(intraPredMode)是否是DC模式(S3002)。否则,解码器终止预测符滤波处理2。
当在步骤S3002中帧内预测模式(intraPredMode)是DC模式时,解码器执行边界像素滤波(S3003)。预测块边界像素滤波如图7和图8中所例示的方法那样来执行。
相反,当在步骤S3002中帧内预测模式(intraPredMode)不是DC模式时,解码器检查帧内预测模式(intraPredMode)是否是#2或#66(S3004)。
当在步骤S3004中帧内预测模式(intraPredMode)是#2或#66时,解码器检查是否帧内预测模式(intraPredMode)是模式#2且块高度大于4或者是否帧内预测模式(intraPredMode)是模式#66且块宽度大于4(S3005)(即,(intraPredMode(2)&&blockHeight>4)||(intraPredMode(66)&&blockWidth>4))。
当在步骤S3005中帧内预测模式(intraPredMode)是模式#2且块高度大于4、或者帧内预测模式(intraPredMode)是模式#66且块宽度大于4时,解码器对属于预测块边界周围4行的边界像素进行滤波(S3006)。否则,解码器对属于预测块边界周围2行的边界像素进行滤波。
这里,对预测块的边界像素进行滤波可以采用以上图11至图16中描述的方法。然而,在步骤S3007中,可以仅对属于预测块边界周围2行的像素进行滤波。
当帧内预测模式(intraPredMode)既不是模式#2也不是模式#66时,解码器对与边界周围1行相对应的边界像素进行滤波(S3008)。
这里,对预测块的边界像素进行滤波可以采用以上图17至图22中描述的方法。
此外,在步骤S3004之后,在当前块的帧内预测模式(intraPredMode)是模式#2或模式#3到#10时,可以仅在当前块的宽度等于或小于边界滤波的最大块尺寸的情况下应用边界像素的滤波。也就是说,在当前块的宽度等于或小于边界滤波的最大块尺寸时,随后可以执行步骤S3005或S3008。
此外,在步骤S3004之后,在当前块的帧内预测模式(intraPredMode)是模式#66或模式#59到#65时,可以仅在当前块的高度等于或小于边界滤波的最大块尺寸的情况下应用边界像素的滤波。也就是说,在当前块的高度等于或小于边界滤波的最大块尺寸的情况下,随后可以执行步骤S3005或S3008。
图31是例示了根据本发明的实施方式的用于对预测块的边界像素进行滤波的方法的图。
参照图31,当预测符滤波处理2开始时,解码器检查帧内预测模式(intraPredMode)是否是DC模式、大于模式#1且小于模式#11、或大于模式#58且小于等于模式#66(S3101)(即intraPredMode(DC)||1<intraPredMode<11||58<intraPredMode<=66)。
当帧内预测模式(intraPredMode)是DC模式,或者大于模式#1且小于模式#11,或者大于模式#58且小于等于模式#66时,解码器检查帧内预测模式(intraPredMode)是否是DC模式(S3102)。否则,解码器终止预测符滤波处理2。
当在步骤S3102中帧内预测模式(intraPredMode)是DC模式时,解码器执行边界像素滤波(S3103)。预测块边界像素滤波如图7和图8中所例示的方法中那样执行。
相反,当在步骤S3102中帧内预测模式(intraPredMode)不是DC模式时,解码器检查帧内预测模式(intraPredMode)是否是#2或#66(S3104)。
当在步骤S3104中帧内预测模式(intraPredMode)是#2或#66时,解码器检查是否帧内预测模式(intraPredMode)是模式#2且块高度大于4或者是否帧内预测模式(intraPredMode)是模式#66且块宽度大于4(S3105)(即,(intraPredMode(2)&&blockHeight>4)||(intraPredMode(66)&&blockWidth>4))。
当在步骤S3105中帧内预测模式(intraPredMode)是模式#2且块高度大于4,或者帧内预测模式(intraPredMode)是模式#66且块宽度大于4时,解码器对属于预测块边界周围4行的边界像素进行滤波(S3106)。否则,解码器通过弱滤波器对属于预测块边界周围2行的边界像素进行滤波(S3107)。
这里,在步骤S3106中对预测块的边界像素进行滤波可以采用以上图11至图16中描述的方法。然而,在步骤S3107中,可以仅对属于预测块边界周围2行的像素进行滤波。
当帧内预测模式(intraPredMode)既不是模式#2也不是模式#66时,解码器对与边界周围1行相对应的边界像素进行滤波(S3108)。
这里,对预测块的边界像素进行滤波可以采用以上图17至图22中描述的方法。
此外,在步骤S3104之后,在当前块的帧内预测模式(intraPredMode)是模式#2或模式#3到#10时,可以仅在当前块的宽度等于或小于边界滤波的最大块尺寸的情况下应用边界像素的滤波。也就是说,在当前块的宽度等于或小于边界滤波的最大块尺寸时,随后可以执行步骤S3105或S3108。
此外,在步骤S3104之后,在当前块的帧内预测模式(intraPredMode)是模式#66或模式#59到#65时,可以仅在当前块的高度等于或小于边界滤波的最大块尺寸的情况下应用边界像素的滤波。也就是说,在当前块的高度等于或小于边界滤波的最大块尺寸的情况下,随后可以执行步骤S3105或S3108。
图32是例示了根据本发明的实施方式的帧内预测方法的图。
参照图32,解码器推导出当前块的帧内预测模式(S3201)。
如以上图5中所描述的,帧内预测模式可以具有根据预测模式的针对用于预测的参考样本的位置的预测方向性,并且可以不具有方向性。此外,帧内预测模式可以被定义为总共35种模式或者被定义为总共67种模式。
解码器可以检查当前块的邻近样本是否可以用于预测,并配置要用于预测的参考样本(S3202)。
例如,帧内预测中当前块的邻近样本意味着邻近尺寸为nS×nS'的当前处理块的左边界和左下方的总共2×nS'个样本、邻近当前块的顶部边界和右上方的总共2×nS个样本、以及邻近当前块的左上方的一个样本。
在这种情况下,当前处理块的一些邻近样本可能尚未被解码或可能不可用。在这种情况下,解码器可以通过用可用样本替换不可用样本,来配置要用于预测的参考样本。
此外,解码器可以基于帧内预测模式对参考样本进行滤波。可以基于当前块的尺寸来确定是否对参考样本进行滤波。此外,参考样本的滤波方法可以由从编码器传送的滤波标志来确定。
解码器通过使用参考样本来生成当前块的预测样本(S3203)。
解码器根据当前块的帧内预测模式,通过使用邻近当前块的参考样本来生成当前块的预测样本。
解码器对预测样本中与当前块的顶部边界和/或左边界相邻的样本进行滤波(S3204)。
解码器可以使用以上图5至图31中描述的方法对与当前块的边界相邻的预测样本(即,预测块边界像素)进行滤波。
如上所述,在当前块是非正方形块时,可以通过仅考虑当前块的宽度来确定是否对与当前块的顶部边界相邻的样本进行滤波,以及可以通过仅考虑当前块的高度来确定是否对与当前块的左边界相邻的样本进行滤波。
例如,在当前块的帧内预测模式是DC模式时,可以在当前块的宽度等于或小于预定尺寸时,执行对与当前块的顶部边界相邻的样本的滤波,以及可以在当前块的高度等于或小于预定尺寸时,执行对与当前块的左边界相邻的样本的滤波。
此外,在当前块的帧内预测模式的方向性属于基于水平帧内预测模式的预定范围时,可以在当前块的宽度等于或小于预定尺寸时,执行对与当前块的顶部边界相邻的样本的滤波。
此外,在当前块的帧内预测模式的方向性属于基于垂直帧内预测模式的预定范围时,可以在当前块的高度等于或小于预定尺寸时,执行对与当前块的左边界相邻的样本的滤波。
此外,在定义了总共67种帧内预测模式的帧内预测模式方法中,在当前块的帧内预测模式为模式#2时,可以在当前块的宽度等于或小于预定尺寸时执行对与当前块的顶部边界相邻的样本的滤波。在这种情况下,在当前块的高度大于4时,可以对属于与当前块的顶部边界相邻的四行的样本进行滤波。相反,在当前块的高度不大于4时,可以仅对属于与当前块的顶部边界相邻的两行的样本进行滤波。
此外,在定义了总共67种帧内预测模式的帧内预测模式方法中,在当前块的帧内预测模式是模式#66时,可以在当前块的高度等于或小于预定尺寸时执行对与当前块的左边界相邻的样本的滤波。在这种情况下,在当前块的宽度大于4时,可以对属于与当前块的左边界相邻的四行的样本进行滤波。相反,在当前块的宽度不大于4时,可以仅对属于与当前块的左边界相邻的两行的样本进行滤波。
图33是更具体地例示了根据本发明的实施方式的帧内预测单元的图。
参照图33,帧内预测单元实现以上图5至图31中提出的功能、过程和/或方法。此外,帧内预测单元与以上图1中所例示的编码器的所有或一些元件组合以实现为编码装置或者与以上图2中所例示的解码器的所有或一些元件相结合以实现为解码装置。
具体地,帧内预测单元可以被配置为包括预测模式推导单元3301、参考样本配置单元3302、预测样本生成单元3303和预测样本滤波单元3304。
帧内预测模式推导单元3301推导出当前块的帧内预测模式。
如以上图5中所描述的,帧内预测模式可以具有根据预测模式的针对用于预测的参考样本的位置的预测方向性,并且可以不具有方向性。此外,帧内预测模式可以被定义为总共35种模式或者被定义为总共67种模式。
参考样本配置单元3302检查当前块的邻近样本是否可以用于预测,并配置要用于预测的参考样本。
例如,帧内预测中当前块的邻近样本意味着邻近尺寸为nS×nS'的当前处理块的左边界和左下方的总共2×nS'个样本、邻近当前块的顶部边界和右上方的总共2×nS个样本、以及邻近当前块的左上方的一个样本。
在这种情况下,当前处理块的一些邻近样本可能尚未被解码或可能不可用。在这种情况下,参考样本配置单元3302可以通过将不可用的样本替换为可用样本来配置要用于预测的参考样本。
此外,参考样本配置单元3302可以基于帧内预测模式对参考样本进行滤波。可以基于当前块的尺寸来确定是否对参考样本进行滤波。此外,参考样本的滤波方法可以由从编码器传送的滤波标志来确定。
预测样本生成单元3303通过使用参考样本生成当前块的预测样本。
预测样本生成单元3303根据当前块的帧内预测模式,通过使用邻近当前块的参考样本来生成当前块的预测样本。
预测样本滤波单元3304对预测样本中与当前块的顶部边界和/或左边界相邻的样本进行滤波。
预测样本滤波单元3304可以使用以上图5至图31中描述的方法对与当前块的边界相邻的预测样本(即,预测块边界像素)进行滤波。
如上所述,在当前块是非正方形块时,预测样本滤波单元3304可以通过仅考虑当前块的宽度来确定是否对与当前块的顶部边界相邻的样本进行滤波,以及通过仅考虑当前块的高度来确定是否对与当前块的左边界相邻的样本进行滤波。
例如,在当前块的帧内预测模式是DC模式时,预测样本滤波单元3304可以在当前块的宽度等于或小于预定尺寸时,执行对与当前块的上边界相邻的样本的滤波,以及在当前块的高度等于或小于预定尺寸时,执行对与当前块的左边界相邻的样本的滤波。
此外,在当前块的帧内预测模式的方向性属于基于水平帧内预测模式的预定范围时,预测样本滤波单元3304可以在当前块的宽度等于或小于预定尺寸时,执行对与当前块的顶部边界相邻的样本的滤波。
此外,在当前块的帧内预测模式的方向性属于基于垂直帧内预测模式的预定范围时,预测样本滤波单元3304可以在当前块的高度等于或小于预定尺寸时,执行对与当前块的左边界相邻的样本的滤波。
此外,在定义了总共67种帧内预测模式的帧内预测模式方法中,在当前块的帧内预测模式为模式#2时,预测样本滤波单元3304可以在当前块的宽度等于或小于预定尺寸时执行对与当前块的顶部边界相邻的样本的滤波。在这种情况下,在当前块的高度大于4时,预测样本滤波单元3304可以对属于与当前块的顶部边界相邻的四行的样本进行滤波。相反,在当前块的高度不大于4时,预测样本滤波单元3304可以仅对属于与当前块的顶部边界相邻的两行的样本进行滤波。
此外,在定义了总共67种帧内预测模式的帧内预测模式方法中,在当前块的帧内预测模式是模式#66时,预测样本滤波单元3304可以在当前块的高度等于或小于预定尺寸时执行对与当前块的左边界相邻的样本的滤波。在这种情况下,在当前块的宽度大于4时,预测样本滤波单元3304可以对属于与当前块的左边界相邻的四行的样本进行滤波。相反,在当前块的宽度不大于4时,预测样本滤波单元3304可以仅对属于与当前块的左边界相邻的两行的样本进行滤波。
以上描述的实施方式是本发明的元件和特征的组合。除非另有提及,否则可以认为元件或特征是选择性的。每个元件或特征可以在不与其他元件或特征组合的情况下实施。此外,可以通过组合元件和/或特征中的一部分来构造本发明的实施方式。在本发明的实施方式中描述的操作顺序可以重新排列。任何一个实施方式的一些构造可以包括在另一个实施方式中,并且可以用另一个实施方式的相应构造代替。显然,提交申请之后,在所附权利要求中未明确引用的权利要求可以组合呈现来作为本发明的示例性实施方式,或者通过随后的修改作为新的权利要求包括进来。
可以通过例如,硬件、固件、软件或其组合的各种手段来实现本发明的实施方式。在硬件配置中,根据本发明的实施方式的方法可以通过一个或更多个ASIC(专用集成电路)、DSP(数字信号处理器)、DSPD(数字信号处理设备)、PLD(可编程逻辑器件)、PGA(现场可编程门阵列)、处理器、控制器、微控制器、微处理器等来实现。
在固件或软件配置中,本发明的实施方式可以以模块、过程、功能等的形式实现。软件代码可以存储在存储器单元中并由处理器执行。存储器单元可以位于处理器的内部或外部,并且可以通过各种已知手段将数据发送到处理器以及从处理器接收数据。
本领域技术人员将理解,在不脱离本发明的精神和基本特征的情况下,本发明可以以除了本文所提出之外的其他特定方式实施。因此,上述实施方式在所有方面都被解释为示例性的而非限制性的。本发明的范围应由所附权利要求及其合法等同物来确定,而不是由以上描述确定,并且落入所附权利要求的含义和等同范围内的所有变型都旨在包含在其中。
工业实用性
本发明的上述优选实施方式仅是示例性的,并非旨在代表本发明的所有方面,并且本领域技术人员应该理解,本发明将覆盖落入本发明的精神和范围内的所有变型、等同物和替代物。