具体实施方式
在下文中,将通过参照附图来描述本发明的优选实施方式。在下面将与附图一起描述的说明书要描述本发明的示例性实施方式,并非旨在描述可以实现本发明的仅有实施方式。以下的描述包括特定细节以便提供对本发明的完整理解。然而,应该明白,对于本领域技术人员来说,可以在没有这些特定细节的情况下实施本发明。
在一些情形中,为了防止本发明的技术构思不清楚,可以省略公知的结构或者设备,或者公知的结构或者设备可以被绘制为集中于结构或者设备的核心功能的框图。
此外,尽管尽可能多地选择当前广泛地使用的常规术语作为本发明中的术语,但是在特定情形中使用由申请人任意选择的术语。由于在这样的情况下,将在说明书的相应部分中清楚地描述术语的含义,因此,应该理解,本发明并非由仅在本发明的说明书中使用的术语来简单地解释,而是应该领会术语的含义。
可以提供以下的描述中使用的特定术语以帮助理解本发明。此外,在本发明的技术构思的范围内,特定术语可以变型为其它形式。例如,信号、数据、样本、图片、帧和块等可以在每个编码过程中适当地替换和解释。
在本说明书中,“块”或“单元”是指执行诸如预测、变换和/或量化之类的编码/解码处理的单位,并且可以由样本(或像素)的多维阵列构成。
“块”或“单元”可以是指关于亮度分量的样本的多维阵列或者关于色度分量的样本的多维阵列。另外,“块”或“单元”可以共同指代关于亮度分量的样本的多维阵列和关于色度分量的样本的多维阵列。
例如,“块”或“单元”可以被解释为包括编码块(CB)、编码树块(CTB)、预测块(PB)(或预测单元(PU))、以及变换块(TB)(或变换单元(TU))全部在内的含义,编码块(CB)是指将在其上执行编码/解码的样本的阵列,编码树块(CTB)配置有多个编码块,预测块(PB)是指相同预测所应用于的样本的阵列,变换块(TB)是指相同变换所应用于的样本的阵列。
此外,除非在说明书中另有说明,否则“块”或“单元”可被解释为包括在关于亮度分量和/或色度分量的样本的阵列的编码/解码过程中使用的语法结构的含义。在此情况下,语法结构是指以特定顺序存在于比特流中的0个或更多个语法元素。语法元素是指呈现在比特流中的数据元素。
例如,“块”或“单元”可以被解释为包括以下的含义:包括编码块(CB)和用于对相应编码块(CB)进行编码的语法结构的编码单元(CU);配置有多个编码单元的编码树单元(CTU);包括预测块(PB)和用于相应预测块(PB)的预测的语法结构的预测单元(PU);以及包括变换块(TB)和用于相应变换块(TB)的变换的语法结构的变换单元(TU)。
另外,在本说明书中,“块”或“单元”本质上不限于正方形或矩形形式的样本(或图片元素、像素)的阵列,并且可以指具有三个或更多个顶点的多边形形式的样本(或图片元素、像素)的阵列。在这种情况下,它可以称为多边形块或多边形单元。
此外,在下文中,在本说明书中,像素或图片元素通常称为样本。此外,使用样本可以意味着使用像素值或图片元素值。
此外,在下文中,除非另外描述,否则本说明书中提出的技术所应用于的当前块指示非正方形块。
图1例示了作为本发明所应用于的实施方式的、执行静止图像或者视频信号的编码的编码器的示意性框图。
参考图1,编码器100可以包括视频分割单元110、减法器115、变换部120、量化单元130、解量化单元140、逆变换部150、滤波单元160、经解码图片缓冲器(DPB)170、预测单元180和熵编码单元190。此外,预测单元180可以包括帧间预测(inter-prediction)单元181和帧内预测(intra-prediction)单元182。
视频分割单元110将输入到编码器100的输入视频信号(或者图片或帧)分割为一个或更多个处理单元。
减法器115通过从输入视频信号减去由预测单元180(即,帧间预测单元181或者帧内预测单元182)输出的预测信号(或者预测块)来生成残差信号(或者残差块)。生成的残差信号(或者残差块)被发送给变换部120。
变换部120通过将变换方案(例如,离散余弦变换(DCT)、离散正弦变换(DST)、基于图形的变换(GBT)或者卡南-洛伊夫变换(Karhunen-Loeve transform,KLT))应用于残差信号(或者残差块)来生成变换系数。在这种情况下,变换部120可以通过使用应用于残差块的预测模式和基于残差块的尺寸所确定的变换方案执行变换,生成变换系数。
量化单元130对变换系数进行量化,并且将其发送给熵编码单元190,而熵编码单元190执行经量化信号的熵编码操作并将其作为比特流进行输出。
此外,由量化单元130输出的经量化信号可以用于生成预测信号。例如,可以通过经由解量化单元140和逆变换部150对经量化信号应用解量化和逆变换,来重构残差信号。可以通过将重构的残差信号加至由帧间预测单元181或者帧内预测单元182输出的预测信号来生成重构的信号。
此外,在这样的压缩过程期间,相邻块通过不同的量化参数来量化。因此,可能出现示出块边界的伪影(artifact)。这样的现象称为块伪影,其是用于评估图像质量的重要因素之一。为了减少这样的伪影,可以执行滤波过程。通过这样的滤波过程,块伪影被去除并且同时降低了当前图片的误差,从而改善图像质量。
滤波单元160对重构的信号应用滤波,并且通过回放设备进行输出,或者发送给经解码图片缓冲器170。发送给经解码图片缓冲器170的经滤波的信号可以在帧间预测单元181中用作参考图片。如上所述,在图片间预测模式中使用经滤波的图片作为参考图片,能够改善编码率以及图像质量。
经解码图片缓冲器170可以存储经滤波的图片,以便在帧间预测单元181中将其用作参考图片。
帧间预测单元181参照重构的图片来执行时间预测和/或空间预测,以便除去时间冗余和/或空间冗余。在这种情况下,因为用于执行预测的参考图片是当在以前编码/解码时以块为单位经历了量化或者解量化的经变换的信号,因此可能出现块伪影或者振铃状伪影。
因此,为了解决可归因于这种信号的不连续性或者量化的性能退化,通过将低通滤波器应用于帧间预测单元181,可以以子像素为单位来对像素之间的信号进行插值。在这种情况下,子像素是指通过应用插值滤波器生成的虚拟像素,并且整数像素是指存在于重构的图片中的实际像素。可以应用线性插值、双线性插值、维纳滤波器等等作为插值方法。
插值滤波器可以应用于重构的图片,并且可以改善预测的准确度。例如,帧间预测单元181可以通过将插值滤波器应用于整数像素生成插值像素并且通过使用包括插值像素的插值块作为预测块来执行预测。
帧内预测单元182参照与现在要编码的块相邻的样本来预测当前块。帧内预测单元182可以执行以下的处理以便执行帧内预测。首先,帧内预测单元182可以准备生成预测信号所必需的参考样本。此外,帧内预测单元182可以使用准备的参考样本来生成预测信号。此外,帧内预测单元182可以对预测模式进行编码。在这种情况下,可以通过参考样本填充和/或参考样本滤波来准备参考样本。因为参考样本经历了预测和重构过程,所以可能存在量化误差。因此,为了降低这种误差,可以对用于帧内预测的每个预测模式执行参考样本滤波过程。
通过帧间预测单元181或者帧内预测单元182生成的预测信号(或者预测块)可以用于生成重构信号(或者重构块),或者可以用于生成残差信号(或者残差块)。
图2例示了作为应用了本发明的实施方式的、执行静止图像或者视频信号的解码的解码器的示意性框图。
参照图2,解码器200可以包括熵解码单元210、解量化单元220、逆变换部230、加法器235、滤波单元240、经解码图片缓冲器(DPB)250和预测单元260。此外,预测单元260可以包括帧间预测单元261和帧内预测单元262。
此外,通过解码器200输出的重构的视频信号可以通过回放设备来回放。
解码器200接收由图1中示出的编码器100输出的信号(即,比特流)。熵解码单元210对接收的信号执行熵解码操作。
解量化单元220使用量化步长信息,从经熵解码的信号获得变换系数。
逆变换部230通过应用逆变换方案对变换系数进行逆变换,来获得残差信号(或残差块)。
加法器235将获得的残差信号(或残差块)与由预测单元260(即,帧间预测单元261或者帧内预测单元262)输出的预测信号(或预测块)相加,从而生成重构信号(或重构块)。
滤波单元240对重构信号(或重构块)应用滤波,并且将经滤波的信号输出至回放设备,或者将经滤波的信号发送给经解码图片缓冲器250。发送给经解码图片缓冲器250的经滤波的信号可以在帧间预测单元261中用作参考图片。
在本说明书中,在编码器100的滤波单元160、帧间预测单元181和帧内预测单元182中描述的实施方式可以分别地等同地应用于解码器的滤波单元240、帧间预测单元261和帧内预测单元262。
通常,基于块的图像压缩方法用于静止图像或者视频的压缩技术(例如,HEVC)中。基于块的图像压缩方法是通过将图像分割为特定块单元来处理图像的方法,并且可以降低存储器使用和计算负载。
图3是用于描述可以应用于本发明的编码单元的分割结构的图。
编码器将单个图像(或者图片)分割为四边形形式的编码树单元(CTU),并且按照光栅扫描顺序依次逐个地编码CTU。
在HEVC中,CTU的尺寸可以确定为64×64、32×32和16×16中的一个。编码器可以基于输入视频信号的分辨率或者输入视频信号的特性来选择和使用CTU的尺寸。CTU包括用于亮度分量的编码树块(CTB)和用于与其相对应的二个色度分量的CTB。
一个CTU可以以四叉树结构进行分割。也就是说,一个CTU可以分割为各自具有正方形形式并且具有一半水平尺寸和一半垂直尺寸的四个单元,从而能够生成编码单元(CU)。四叉树结构的这种分割可以递归地执行。也就是说,以四叉树结构从一个CTU分等级地分割CU。
CU是指用于输入视频信号的处理过程(例如,在其中执行帧内/帧间预测的编码)的基本单位。CU包括用于亮度分量的编码块(CB)和用于与亮度分量相对应的两个色度分量的CB。在HEVC中,CU尺寸可以被确定为64×64、32×32、16×16和8×8中的一个。
参照图3,四叉树的根节点与CTU有关。四叉树被分割,直至达到叶节点。叶节点对应于CU。
对此进行更详细地描述。CTU对应于根节点,并且具有最小深度(即,深度=0)值。根据输入视频信号的特性,CTU可以不被分割。在这种情况下,CTU对应于CU。
CTU可以以四叉树形式进行分割。结果,生成下节点,也就是说,深度1(深度=1)。此外,属于深度为1的下节点并且不再分割的节点(即,叶节点)对应于CU。例如,在图3的(b)中,对应于节点a、b和j的CU(a)、CU(b)和CU(j)已经从CTU分割了一次,并且深度为1。
深度为1的节点中的至少一个可以以四叉树形式被分割。结果,生成具有深度1(即,深度=2)的下节点。此外,属于深度为2的下节点并且不再分割的节点(即,叶节点)对应于CU。例如,在图3的(b)中,对应于节点c、h和i的CU(c)、CU(h)和CU(i)已经从CTU分割了两次,并且深度为2。
此外,深度为2的节点中的至少一个可以以四叉树形式再次进行分割。结果,生成具有深度3(即,深度=3)的下节点。此外,属于深度为3的下节点并且不再分割的节点(即,叶节点)对应于CU。例如,在图3的(b)中,对应于节点d、e、f和g的CU(d)、CU(e)、CU(f)和CU(g)已经从CTU分割了三次,并且深度为3。
在编码器中,可以基于视频图像的特性(例如,分辨率)或者通过考虑编码率来确定CU的最大尺寸或者最小尺寸。此外,关于最大尺寸或者最小尺寸的信息或者能够推导出该信息的信息可以包括在比特流中。具有最大尺寸的CU称为最大编码单元(LCU),而具有最小尺寸的CU称为最小编码单元(SCU)。
此外,具有树结构的CU可以以预定的最大深度信息(或者最大等级信息)分等级地分割。此外,每个分割的CU可以具有深度信息。由于深度信息表示CU的分割计数和/或分割度,深度信息可以包括关于CU的尺寸的信息。
由于LCU以四叉树形状进行分割,所以SCU的尺寸可以通过使用LCU的尺寸和最大深度信息来获得。或者,相反地,LCU的尺寸可以通过使用SCU的尺寸和树的最大深度信息来获得。
对于单个CU,表示相应CU是否被分割的信息(例如,分割CU标志(split_cu_flag))可以转发给解码器。该分割信息包括在除了SCU之外的所有CU中。例如,当表示是否分割的标志的值为“1”时,相应CU被进一步分割为四个CU,而当表示是否分割的标志的值为“0”时,相应CU不再分割,并且可以执行用于相应CU的处理过程。
如上所述,CU是在其中执行帧内预测或者帧间预测的编码的基本单位。HEVC将CU分割成预测单元(PU),以更加有效地对输入视频信号进行编码。
PU是用于生成预测块的基本单位,并且即使在单个CU中,也可以以PU为单位以不同的方式生成预测块。然而,对于属于单个CU的PU不一起使用帧内预测和帧间预测,而属于单个CU的PU通过相同的预测方法(即,帧内预测或者帧间预测)来编码。
PU不以四叉树结构进行分割,而是在单个CU中以预定形状分割一次。这些将在下面通过参照附图来描述。
图4是用于描述可以应用于本发明的预测单元的图。
根据是使用帧内预测模式还是使用帧间预测模式作为PU所属的CU的编码模式,PU被不同地分割。
图4中的(a)例示了使用帧内预测模式时的PU,而图4中的(b)例示了使用帧间预测模式时的PU。
参照图4中的(a),假设单个CU的尺寸是2N×2N(N=4、8、16和32),单个CU可以被分割为两种类型(即,2N×2N或者N×N)。
在这种情况下,如果单个CU被分割为2N×2N形状的PU,则这意味着仅一个PU存在于单个CU中。
此外,如果单个CU被分割为N×N形状的PU,则单个CU被分割为四个PU,并且对于每个PU单元生成不同的预测块。然而,只有在CU的用于亮度分量的CB的尺寸是最小尺寸(即,CU是SCU的情况)时,可以执行这样的PU分割。
参照图4中的(b),假设单个CU的尺寸是2N×2N(N=4、8、16和32),单个CU可以被分割为八个PU类型(即,2N×2N、N×N、2N×N、N×2N、nL×2N、nR×2N、2N×nU和2N×nD)。
像在帧内预测中一样,只有在CU的用于亮度分量的CB的尺寸是最小尺寸(即,CU是SCU的情况)时,可以执行N×N形状的PU分割。
帧间预测支持在水平方向上分割的2N×N形状和在垂直方向上分割的N×2N形状的PU分割。
此外,帧间预测支持作为不对称运动分割(AMP)的nL×2N、nR×2N、2N×nU和2N×nD形状的PU分割。在这种情况下,“n”是指2N的1/4值。然而,如果PU所属于的CU是最小尺寸的CU,则不可以使用AMP。
为了在单个CTU中高效地编码输入视频信号,可以通过如下的处理过程基于最小率失真值来确定编码单元(CU)、预测单元(PU)和变换单元(TU)的最佳分割结构。例如,关于在64×64CTU中的最佳CU分割过程,可以通过从64×64尺寸的CU到8×8尺寸的CU的分割过程来计算率失真代价。详细过程如下。
1)通过对64×64尺寸的CU执行帧间/帧内预测、变换/量化、解量化/逆变换和熵编码来确定生成最小率失真值的PU和TU的最佳分割结构。
2)PU和TU的最佳分割结构被确定为将64×64CU分割为32×32尺寸的四个CU,并且生成每个32×32CU的最小率失真值。
3)PU和TU的最佳分割结构被确定为进一步将32×32CU分割为16×16尺寸的四个CU,并且生成每个16×16CU的最小率失真值。
4)PU和TU的最佳分割结构被确定为进一步将16×16CU分割为8×8尺寸的四个CU,并且生成每个8×8CU的最小率失真值。
5)通过将在过程3)中获得的16×16CU的率失真值与在过程4)中获得的四个8×8CU的率失真值之和进行比较,来确定在16×16块中的CU的最佳分割结构。也以相同方式对于其余三个16×16CU来执行这个过程。
6)通过将在过程2)中获得的32×32CU的率失真值与在过程5)中获得的四个16×16CU的率失真值之和进行比较,来确定在32×32块中的CU的最佳分割结构。也以相同方式对于其余三个32×32CU来执行这个过程。
7)最后,通过将在过程1)中获得的64×64CU的率失真值与在过程6)中获得的四个32×32CU的率失真值之和进行比较,来确定在64×64块中CU的最佳分割结构。
在帧内预测模式中,按照PU为单位选择预测模式,并且以实际的TU为单位对选择的预测模式执行预测和重构。
TU是指执行实际预测和重构的基本单位。TU包括用于亮度分量的变换块(TB)和用于与亮度分量相对应的两个色度分量的TB。
在图3的示例中,如同在一个CTU被以四叉树结构进行分割以生成CU的示例中一样,从要编码的一个CU以四叉树结构分等级地分割TU。
因为TU被以四叉树结构进行分割,所以从CU分割的TU可以被分割为更小和更低的TU。在HEVC中,TU的尺寸可以被确定为32×32、16×16、8×8和4×4中的一个。
返回参照图3,假设四叉树的根节点与CU相关。分割四叉树,直至达到叶节点,并且叶节点对应于TU。
对此进行更详细地描述。CU对应于根节点,并且具有最小深度(即,深度=0)值。根据输入图像的特性,可以不分割CU。在这种情况下,CU对应于TU。
CU可以以四叉树形式进行分割。结果,生成具有深度1(深度=1)的下节点。此外,属于深度为1的下节点并且不再分割的节点(即,叶节点)对应于TU。例如,在图3的(b)中,对应于节点a、b和j的TU(a)、TU(b)和TU(j)已经从CU分割了一次,并且深度为1。
深度为1的节点中的至少一个可以再次以四叉树形式进行分割。结果,生成具有深度2(即,深度=2)的下节点。此外,属于深度为2的下节点并且不再分割的节点(即,叶节点)对应于TU。例如,在图3的(b)中,对应于节点c、h和i的TU(c)、TU(h)和TU(i)已经从CU分割了两次并且深度为2。
此外,深度为2的节点中的至少一个可以以四叉树形式再次进行分割。结果,生成具有深度3(即,深度=3)的下节点。此外,属于深度为3的下节点并且不再分割的节点(即,叶节点)对应于CU。例如,在图3的(b)中,对应于节点d、e、f和g的TU(d)、TU(e)、TU(f)和TU(g)已经从CU分割了三次,并且深度为3。
具有树结构的TU可以以预定的最大深度信息(或者最大等级信息)分等级地分割。此外,每个分割TU可以具有深度信息。该深度信息可以包括关于TU的尺寸的信息,因为其指示TU的分割数和/或分割度。
指示相应TU是否已经相对于一个TU进行了分割的信息(例如,分割TU标志“split_transform_flag”)可以被传送给解码器。分割信息被包括在除了最小尺寸的TU之外的所有TU中。例如,如果指示TU是否已分割的标志的值为“1”,则相应TU被分割为四个TU。如果指示TU是否已分割的标志的值为“0”,则相应TU不再分割。
预测
为了重新配置对其执行解码的当前处理单元,可以使用包括当前处理单元的当前图片或其它图片的已解码的部分。
仅使用当前图片用于重构(即,仅对其执行帧内预测)的图片(条带)可被称作内图片(intra-picture)或I图片(条带)。为了预测每个单元使用最多一个运动矢量和参考索引的图片(条带)可以被称作预测图片或P图片(条带)。使用最多两个运动矢量和参考索引的图片(条带)可以被称作双预测图片或者B图片(条带)。
帧内预测意指从相同解码的图片(或条带)的数据元素(例如,样本值)推导出当前处理块的预测方法。也就是说,帧内预测意指参考当前图片内的重构的区域来预测当前处理块的像素值的方法。
帧间预测意指基于除当前图片以外的图片的数据元素(例如,样本值或运动矢量)来推导出当前处理块的预测方法。也就是说,帧间预测意指参考除当前图片以外的另一重构的图片内的重构的区域来预测当前处理块的像素值的方法。
在下文中,对帧内预测进行更具体的描述。
帧内预测(或在帧内的预测)
图5是应用了本发明的实施方式,并且是例示帧内预测方法的图。
参照图5,解码器推导当前处理块的帧内预测模式(S501)。
帧内预测可以依据预测模式而具有用于预测的参考样本的位置的预测方向。具有预测方向的帧内预测模式被称为帧内角度预测模式(Intra_Angular预测模式)。相反,不具有预测方向的帧内预测模式包括帧内平面(INTRA_PLANAR)预测模式和帧内DC(INTRA_DC)预测模式。
表1例示了帧内预测模式和相关名称。
[表1]
在帧内预测中,基于推导出的预测模式对当前处理块执行预测。用于预测的参考样本和详细预测方法依据预测模式而不同。如果当前块是帧内预测模式,则解码器推导当前块的预测模式以便执行预测。
解码器检查当前处理块的相邻样本是否能够用于预测,并构建要用于预测的参考样本(S502)。
在帧内预测中,当前处理块的相邻样本意指与nS×nS尺寸的当前处理块的左边界相邻的样本、与当前处理块的左下方相邻的总共2×nS个样本、与当前处理块的顶边界相邻的样本、与当前处理块的右上方相邻的总共2×nS个样本、以及与当前处理块的左上方相邻的一个样本。
然而,当前处理块的一些相邻样本尚未编码或可能不可用。在这种情况下,解码器可以通过用可用样本替代不可用样本来构建要用于预测的参考样本。
解码器可以基于帧内预测模式对参考样本执行滤波(S503)。
是否对参考样本执行滤波可以基于当前处理块的尺寸来确定。此外,可以基于由编码器传送的滤波标志来确定参考样本的滤波方法。
解码器基于帧内预测模式和参考样本来生成用于当前处理块的预测块(S504)。也就是说,解码器基于在帧内预测模式推导的步骤(S501)中推导出的帧内预测模式和在参考样本配置步骤(S502)和参考样本滤波步骤(S503)中获得的参考样本,生成用于当前处理块的预测块(即,生成当前处理块内的预测样本)。
如果当前处理块已经以INTRA_DC模式编码,则为了使处理块之间边界的不连续性最小化,在步骤S504可以对预测块的左边界样本(即,预测块内与左边界相邻的样本)和顶边界样本(即,预测块内与顶边界相邻的样本)进行滤波。
此外,在步骤S504,相对于帧内角度预测模式的垂直模式和水平模式,如在INTRA_DC模式一样,可以对左边界样本或顶边界样本应用滤波。
更具体地,如果当前处理块已经以垂直模式或水平模式被编码,则基于位于预测方向上的参考样本的值可以推导预测样本的值。在这种情况下,在预测块的左边界样本或顶边界样本当中不位于预测方向上的边界样本可以与不用于预测的参考样本相邻。也就是说,距未用于预测的参考样本的距离可以比距用于预测的参考样本的距离更近。
因此,依据帧内预测方向是垂直方向还是水平方向,解码器可以适应性地对左边界样本或顶边界样本应用滤波。也就是说,如果帧内预测方向是垂直方向,则解码器可以对左边界样本应用滤波,而如果帧内预测方向是水平方向,则解码器可以对顶边界样本应用滤波。
图6例示了根据帧内预测模式的预测方向。
如上所述,在HEVC中,使用用于帧内预测的总共35种预测方法生成当前块的预测块,35种预测方法包括33种角度预测方法和2种非角度预测方法。
在33种角度预测模式的情况下,当根据参考样本计算预测样本时,通过考虑方向性将参考样本值复制到相应的预测样本。
相反,在DC模式和平面模式中的每一个中,即,2种非角度预测方法中,预测样本被计算为相邻参考样本的平均值和加权和。
图7是应用了本发明的实施方式,并且是用于例示四叉树二叉树(以下称为“QTBT”)块分割结构的图。
四叉树二叉树(QTBT)
QTBT是指其中已经组合了四叉树结构和二叉树结构的编码块的结构。具体地,在QTBT块分割结构中,图像以CTU为单位被编码。CTU以四叉树形式分割。四叉树的叶节点以二叉树形式进行附加分割。
在下文中,参照图7描述QTBT结构和支持该QTBT结构的分割标志语法。
参照图7,当前块可以以QTBT结构分割。也就是说,CTU可以首先以四叉树形式分等级分割。此外,四叉树的不再以四叉树形式分割的叶节点可以以二叉树形式分等级地分割。
编码器可以发信号通知分割标志,以便确定是否以QTBT结构分割四叉树。在这种情况下,可以通过MinQTLumaISlice、MinQTChromaISlice或MinQTNonISlice值来调整(或限制)四叉树分割。在这种情况下,MinQTLumaISlice指示I-条带中亮度分量的四叉树叶节点的最小尺寸。MinQTLumaChromaISlice指示I-条带中色度分量的四叉树叶节点的最小尺寸。MinQTNonISlice指示非I-条带中的四叉树叶节点的最小尺寸。
在QTBT的四叉树结构中,亮度分量和色度分量可以在I-条带中具有独立的分割结构。例如,在QTBT结构的I-条带的情况下,可以不同地确定亮度分量和色度分量的分割结构。为了支持这种分割结构,MinQTLumaISlice和MinQTChromaISlice可以具有不同的值。
对于另一示例,在QTBT的非I-条带中,可以相同地确定四叉树结构的亮度分量和色度分量的分割结构。例如,在非I-条带的情况下,可以通过MinQTNonISlice值来调整亮度分量和色度分量的四叉树分割结构。
在QTBT结构中,四叉树的叶节点可以以二叉树形式分割。在这种情况下,可以通过MaxBTDepth、MaxBTDepthISliceL和MaxBTDepthISliceC来调整(或限制)二叉树分割。在这种情况下,MaxBTDepth指示在非I-条带中基于四叉树的叶节点的二叉树分割的最大深度。MaxBTDepthISliceL指示在I-条带中亮度分量的二叉树分割的最大深度。MaxBTDepthISliceC指示在I-条带中色度分量的二叉树分割的最大深度。
此外,在QTBT的I-条带中,MaxBTDepthISliceL和MaxBTDepthISliceC可以在I-条带中具有不同的值,因为亮度分量和色度分量可以具有不同的结构。
在QTBT的分割结构的情况下,四叉树结构和二叉树结构可以一起使用。在这种情况下,可以应用以下规则。
首先,MaxBTSize小于或等于MaxQTSize。在这种情况下,MaxBTSize指示二叉树分割的最大尺寸,而MaxQTSize指示四叉树分割的最大尺寸。
其次,QT的叶节点成为BT的根。
第三,一旦执行分割为BT,就不能再将其分割为QT。
第四,BT定义了垂直分割和水平分割。
第五,MaxQTDepth、MaxBTDepth先前已定义。在这种情况下,MaxQTDepth表示四叉树分割的最大深度,而MaxBTDepth指示二叉树分割的最大深度。
第六,MaxBTSize、MinQTSize可能根据条带类型而不同。
图8示出了根据本发明的实施方式的在当前处理块是正方形块时的当前处理块和用于生成当前处理块的预测块的参考样本。
参照图7,在QTBT分割结构中,当前处理块(编码块)可以对应于正方形块或非正方形块。正方形块是具有相同宽度长度和高度长度的正方形块。非正方形块是具有不同的宽度长度和高度长度的矩形块。在下文中,首先描述当前处理块是正方形块的情况。
在图8中,当前处理块(为方便起见,下文中称为当前块)8010是具有N×N尺寸的正方形块。例如,在图8中所示的块中,N对应于4。
当执行帧内预测时,可参考的参考样本8020包括当前块8010的相邻样本。参照图8,在当前块8010的尺寸是N×N时,参考样本8020可以包括在当前块8010顶部的2N个样本、在当前块8010左侧的2N个样本、以及在当前块8010的左上方的1个样本。也就是说,参考样本8020可以包括最多4N+1个样本。在一些情况下,如果所有周围参考样本8020不存在,则可以用可以呈现的像素值范围的中间值填充所有参考样本8020。此外,如果仅一些周围参考样本8020是可用的,则可以执行用可用样本替换不可用样本的填充。
在帧内预测中,参考样本8020对应于重构的样本,因为它是在对参考样本执行量化之后重构的。因此,参考样本8020包括量化误差。为了减少可归因于量化误差的预测误差,可以执行参考样本滤波(或帧内平滑)。参考样本滤波可以防止由于样本之间的差异导致导出的预测块的潜在视觉伪影。为此,可以使用低通滤波器。
在执行预测之前,首先基于当前块8010的尺寸、预测模式和像素值来确定是否将对参考样本8020执行滤波。下面的表2示出了根据当前块8010(或预测块)的尺寸和编码器/解码器中的帧内预测模式是否执行(应用)滤波。可以在编码器/解码器中预先定义下面的表2。
[表2]
|
4×4 |
8×8 |
16×16 |
32×32 |
|
4×4 |
8×8 |
16×16 |
32×32 |
0 |
× |
× |
○ |
○ |
18 |
× |
○ |
○ |
○ |
1 |
× |
× |
× |
× |
19 |
× |
× |
○ |
○ |
2 |
× |
○ |
○ |
○ |
20 |
× |
× |
○ |
○ |
3 |
× |
× |
○ |
○ |
21 |
× |
× |
○ |
○ |
4 |
× |
× |
○ |
○ |
22 |
× |
× |
○ |
○ |
5 |
× |
× |
○ |
○ |
23 |
× |
× |
○ |
○ |
6 |
× |
× |
○ |
○ |
24 |
× |
× |
○ |
○ |
7 |
× |
× |
○ |
○ |
25 |
× |
× |
× |
○ |
8 |
× |
× |
○ |
○ |
26 |
× |
× |
× |
× |
9 |
× |
× |
× |
○ |
27 |
× |
× |
× |
○ |
10 |
× |
× |
× |
× |
28 |
× |
× |
○ |
○ |
11 |
× |
× |
× |
○ |
29 |
× |
× |
○ |
○ |
12 |
× |
× |
○ |
○ |
30 |
× |
× |
○ |
○ |
13 |
× |
× |
○ |
○ |
31 |
× |
× |
○ |
○ |
14 |
× |
× |
○ |
○ |
32 |
× |
× |
○ |
○ |
15 |
× |
× |
○ |
○ |
33 |
× |
× |
○ |
○ |
16 |
× |
× |
○ |
○ |
34 |
× |
○ |
○ |
○ |
17 |
× |
× |
○ |
○ |
|
|
|
|
|
在表2中,纵轴中的数字0至34指示帧内预测模式,而横轴中的4×4、8×8、16×16和32×32指示当前块8010的尺寸。
参考表2,在DC模式(模式1)、水平模式(模式10)和垂直模式(模式26)中,不管当前块8010的尺寸如何,总是不执行滤波。在DC模式中,不对参考样本8020进行滤波,以防止可归因于滤波的参考样本的值的失真。
在具有小尺寸的块(例如,4×4或8×8)中,仅在非常有限的预测模式中执行滤波。随着块的尺寸增加,对滤波的限制减少。如果块的尺寸足够大(例如,32×32),则可以在除DC模式、水平模式(模式10)和垂直模式(模式26)之外的所有模式中执行滤波。此外,可以基于预测块的尺寸、预测模式和参考样本8020的值来确定滤波器类型。
使用当前块8010的参考样本8020生成当前块8010的预测块。此后,解码器通过组合预测块和接收的残差信号来重构当前块8010。
图9示出了根据本发明的实施方式的在当前处理块是非正方形块时的当前处理块和用于生成当前处理块的预测块的参考样本。
在图9中,当前块是非正方形块9010。如在关于图7和图8的描述中所描述的,在QTBT分割结构中,当前处理块可以对应于非正方形块。例如,非正方形块9010可以具有2N×N或2N×hN(h=一半)的尺寸。此外,如在关于图8的描述中所描述的,在正方形块中,基于当前块的尺寸(即,一条边的长度N)根据表2确定是否将对参考样本执行滤波。然而,非正方形块9010的块的宽度长度和高度长度不同。因此,在非正方形块9010的情况下,与正方形块不同,因为两条边的长度不同,因此根据表2是否执行滤波是基于哪条边的长度,这是模糊的。
首先,描述非正方形块9010的参考样本。参考样本包括顶部(上方)参考样本9020和左参考样本9030。顶部参考样本9020也可以称为上边界样本,而左参考样本9030也可以称为左边界样本。
顶部参考样本9020是与当前块的顶部相邻的参考样本。顶部参考样本9020包括位于当前块的顶部水平边缘(即,上方水平边)的上(顶)侧和右上侧的样本。例如,当左上方样本9040的位置是[X][Y]=[-1][-1]时,顶部参考样本9020具有[X][-1]的位置。也就是说,顶部参考样本9020与当前块的上侧相邻,并且参考样本被水平布置。
左参考样本9030是与当前块的左侧相邻的参考样本。左参考样本9030包括位于当前块的左垂直边缘(即,左侧垂直边)的左侧和左下方的样本。例如,当左上方样本9040的位置是[X][Y]=[-1][-1]时,左参考样本9030具有[-1][y]的位置。也就是说,左参考样本9030与当前块的左侧相邻,并且参考样本被垂直布置。
可以基于当前块和周围块将顶部参考样本9020和左参考样本9030的长度确定为适当的长度。例如,在当前块具有2N×N尺寸时,顶部/左参考样本的最大长度可以具有4N的长度,即,一边的长度的两倍。此外,顶部参考样本9020和左参考样本9030可以具有不同的长度。
在这种情况下,左上方样本9040可以包括在顶部参考样本9020或左参考样本9030之一中并被处理。例如,图9示出了左上方样本9040包括在左参考样本9030中。左上方样本9040可以包括在顶部参考样本9020中并被处理。
参照与图5有关的描述,使用参考样本生成预测块。使用所生成的预测块来重构视频的帧内预测可以由帧内预测单元执行。具体地,帧内预测单元可以获得当前块的帧内预测模式(参考S501),并且可以获得用于使用当前块的相邻样本来生成当前块的预测块的参考样本(参考S502)。此后,帧内预测单元可确定是否对参考样本执行滤波。当确定要执行滤波时,帧内预测单元可以对参考样本进行滤波(参考S503)。此后,帧内预测单元可以使用未滤波的参考样本或滤波的参考样本生成预测块(参考S504)。
下面描述用于确定是否执行非正方形块9010的参考样本滤波和滤波器类型的准则。除了确定是否执行滤波/滤波器类型的方法之外,可以以与现有HEVC滤波方法相同的方式执行滤波处理。在解码器(视频解码装置)中,帧内预测模式可以由编码器作为因素进行发送。
在以下实施方式中,在由帧内预测单元确定是否执行滤波以及确定滤波器类型的过程中,当前块参数和/或周围块参数与帧内预测模式一起使用。当前块参数是与当前块有关的参数。周围块参数是与当前块的周围块有关的参数。
当前块参数包括(i)当前块的边(水平边缘或垂直边缘)的长度、(ii)当前块的样本(像素)的数量、(iii)当前块的量化率(QP)、和/或(iv)预测样本和参考样本之间的距离信息。
周围块参数包括(i)周围块的量化率(QP)、(ii)残差系数的周围块相关信息、(iii)周围块的边界/边缘相关信息、和/或(iv)周围块的分割信息。
可以使用以下实施方式来确定是否对非正方形块9010的参考样本执行滤波和/或滤波器类型。
实施方式1:使用当前块的边长
在实施方式1中,帧内预测单元在确定是否执行滤波和/或滤波器类型的过程中使用当前块参数。当前块参数包括当前块的边长。此外,在实施方式1中,在确定是否执行滤波的过程中没有定义单独的表,并且使用与和正方形块相关的表对应的表2。
当前块参数可以包括当前块的水平边长(即,水平边缘的长度)和/或垂直边长(即,垂直边缘的长度)。也就是说,帧内预测单元可以基于当前块的边长当中的较长边(即,具有较大值的边缘的长度)或较小边(即,具有较小值的边缘的长度)来确定是否执行参考样本滤波。当前块的边长对应于当前块的一条边中包括的样本(图片元素或像素)的数量。
作为使用边长的第一种方法,帧内预测单元可以基于水平边和垂直边的长度当中的较长长度来确定是否执行滤波。例如,当水平边的长度是8,垂直边的长度是16,并且预测模式是14时,因为较长的长度是16,所以基于与表2的16×16块的情况的准则相同的准则来确定是否执行滤波。也就是说,根据表2,因为在预测模式14中针对16×16块执行参考样本滤波,所以对8×16块的参考样本执行滤波。再例如,当水平边的长度为32,垂直边的长度为8,预测模式为10时,基于表2的32×32块,不对32×8块的参考样本执行滤波。如果确定要执行滤波,则可以使用一维二项式滤波器作为平滑滤波器。一维二项式滤波器可以包括1-2-1滤波器或1-4-6-4-1滤波器。
参照表2,随着预测块的尺寸增加,将要执行滤波的可能性增加。因此,如果基于较大边的长度确定是否执行滤波,则根据随着块尺寸的增加允许平滑的规则,可以进一步平滑参考样本。此外,如果当前块是噪声块并且伪影与预测样本混合,则可以减少误差传播。
作为使用边长的第二种方法,帧内预测单元可以基于水平边和垂直边的长度中的较短长度来确定是否执行滤波。例如,当水平边的长度为8,垂直边的长度为16,并且预测模式为14时,因为较短的长度为8,所以是否执行滤波是基于与表2的8×8块的准则相同的准则来确定的。也就是说,根据表2,因为在所有预测模式中针对8×8块不执行参考样本滤波,所以不对8×16块的参考样本执行滤波。再例如,当水平边的长度为32,垂直边的长度为8,预测模式为2时,根据表2的8×8的块,对32×8块的参考样本执行滤波。如果确定要执行滤波,则可以使用一维二项式滤波器作为平滑滤波器。一维二项式滤波器可以包括1-2-1滤波器或1-4-6-4-1滤波器。
参照表2,随着预测块的尺寸减小,将要执行滤波的可能性降低。因此,如果基于较小边确定是否应用滤波,则根据随着块的尺寸变小而限制滤波的应用的规则,可以阻止平滑效果。此外,如果需要将参考样本的复杂特性应用于预测块而没有任何改变,则可以通过降低滤波可能性来生成更准确的预测样本。
在实施方式1中,未定义单独的表,并且在确定是否执行滤波的过程中使用与正方形块相关的表2。如果定义用于是否执行非正方形块9010的参考样本滤波的单独表,则消耗额外的存储器以便存储该表。实施方式1因为没有定义用于非正方形块9010的单独的附加表,并且在确定是否执行非正方形块9010的参考样本滤波的过程中使用用于正方形块的表,所以可以减少编码器和解码器的存储器。
实施方式2:使用当前块的样本的数量
在实施方式2中,帧内预测单元在确定是否执行滤波和/或滤波器类型的过程中使用当前块参数。当前块参数包括当前块的样本(像素)的数量。在实施方式2中,与实施方式1中一样,在确定是否执行滤波的过程中使用表2。
如果存在具有与当前块中包括的样本的数量相同数量的样本的正方形块,则通过应用与该正方形块的准则相同的准则来确定是否执行滤波。
如果不存在具有与当前块相同数量的样本的正方形块,则基于具有小于当前块的样本数量的数量的样本的正方形块当中具有最大尺寸的块,来确定是否执行滤波。也就是说,这是根据不同的方法描述的。如果不存在具有与当前块相同数量的样本的正方形块,则基于当前块的较小边的长度(即,与对应于较小边的长度的正方形块相同的准则)来确定是否执行滤波。
例如,在当前块的上边的长度为8并且其左边的长度为32(即,当前块是8×32块)时,当前块中包括的样本的数量与16×16块中包括的样本的数量相同。因此,在这种情况下,将与16×16块的准则相同的准则应用于当前块。如果预测模式是模式14,则因为根据表2对16×16块执行参考样本滤波,所以对32×8块(即,当前块)执行参考样本滤波。
再例如,在当前块的上边的长度为16并且其左边的长度为8(即,当前块是16×8块)时,不存在具有与当前块相同数量的样本的正方形块。16×8块的像素数量小于16×16块的像素数量,并且大于8×8块的像素数量。因此,在这种情况下,基于8×8块的准则确定是否执行当前块的参考样本滤波。参照表2,当预测模式为14时,不对8×8块的参考样本执行滤波。因此,不执行当前块(16×8块)的参考样本滤波。
如果确定要执行滤波,则可以使用一维二项式滤波器作为平滑滤波器。一维二项式滤波器可以包括1-2-1滤波器或1-4-6-4-1滤波器。
实施方式3:使用当前块/周围块的量化参数
在实施方式3中,帧内预测单元在确定是否执行滤波和/或滤波器类型的过程中使用当前块或周围块的参数。当前块/周围块参数包括当前块/周围块的量化参数。
在量化中,特定范围的输入值被映射为关于输入数据的单个代表值。例如,在编码器中,当前块的残差块被变换为频率区域的信号。因此,可以获得变换块,并且可以量化变换块的系数(变换系数)。
量化参数(QP)与编码块的量化率(QP_step)有关。量化率可以表示为量化范围。随着量化率增加,表示数据的代表值的数量减少。可以通过改变量化率来调整数据压缩率。由于量化率是实数值,所以可以使用量化参数(即,整数值)来代替量化率,以便于计算。例如,量化参数可以具有从0到51的整数值,并且可以基于整数值来量化当前块或周围块的变换系数。每个编码块的量化参数可以从编码器发送到解码器。也就是说,解码器可以解析每个编码块的量化参数。
在实施方式3中,基于当前块的量化参数(下文中,当前块的QP)或周围块的量化参数(下文中,周围块的QP),来确定是否对当前块的参考样本执行滤波。除非在下文中另外描述,否则QP包括当前块的QP和周围块的QP二者。以下方法可以应用于当前块的QP和周围块的QP二者。
具体地,在当前块或周围块的QP大于(或者大于或等于)阈值(QP阈值)时,帧内预测单元可以确定执行当前块的参考样本滤波。此外,如果帧内预测单元确定执行滤波,则可以应用强平滑滤波器,也就是说,具有强滤波强度的滤波器。
如果当前块或周围块的QP小于(或者小于或等于)阈值,则帧内预测单元可以确定不执行当前块的参考样本滤波。然而,当QP小于阈值时,帧内预测单元可以确定执行参考样本滤波。在这种情况下,帧内预测单元可以应用弱平滑滤波器,也就是说,具有弱滤波强度的滤波器。
可以使用一维二项式滤波器作为弱平滑滤波器。一维二项式滤波器可以包括1-2-1滤波器或1-4-6-4-1滤波器。平均滤波器或其他类型的线性/非线性加权滤波器可以用作强平滑滤波器。
QP阈值可以确定为先前在编码器和解码器之间协定的值。此外,阈值可以包括在VPS、SPS、PPS、条带报头或块报头中并且可以从编码器发送给解码器。解码器可基于所接收的阈值来确定是否执行参考样本滤波和滤波器类型。
由于表示数据的代表值的数量随着QP变小而增加,因此更好地保留了图像的详细特征。因此,通过将弱滤波应用于精细或细微(即,块内样本值中的变化大)图像,可以提高预测块的准确度。此外,由于代表值的数量随着QP增加而减少,因此出现许多误差,例如块状伪影。因此,在这种情况下,可以通过应用强滤波来提高预测块的准确度。
实施方式4:使用周围块的残差系数相关信息
在实施方式4中,在确定是否执行滤波和/或滤波器类型的过程中使用周围块参数。周围块参数包括周围块的残差系数相关信息。残差系数相关信息包括周围块的残差系数的数量和/或指示周围块中是否存在残差系数的标志(编码块标志,Cbf)。
参考样本配置有当前块周围的样本,这些样本已经通过编码被解码。因此,包括重构的参考样本的每个周围块包括Cbf和残差系数。从编码器向解码器发送Cbf和残差系数的信息。
残差系数指示在将残差块变换为频率区域之后已经量化的变换块的系数。残差块是通过在编码器中从原始编码块中减去预测块而获得的块。Cbf是指示周围块中是否存在残差系数的标志。也就是说,Cbf指示在周围块的变换块在被量化之后块中是否存在一个或更多个系数(即,残差系数)。例如,当Cbf为1时,这可以意味着存在残差系数。
当周围块的Cbf指示存在残差系数时,帧内预测单元可以确定执行参考样本滤波,并且当周围块的Cbf指示不存在残差系数时,帧内预测单元可以确定不执行滤波。也就是说,如果存在残差系数,则这意味着用于预测的参考样本是复杂的或者可能包括噪声。因此,在这种情况下,可以执行参考样本滤波以便提高预测准确度。如果确定要执行参考样本滤波,则可以应用强滤波(强平滑滤波器)。
当残差系数的数量大于(或者大于或等于)阈值时,帧内预测单元可以确定执行参考样本滤波。原因在于,如果残差系数的数量很多,则这指示图像的复杂性很大。在这种情况下,可以应用强滤波。此外,当残差系数的数量小于(或者小于或等于)阈值时,帧内预测单元可以确定不执行滤波或者可以确定应用滤波,但是应用弱滤波(弱平滑滤波器)。
可以使用一维二项式滤波器作为弱平滑滤波器。一维二项式滤波器可以包括1-2-1滤波器或1-4-6-4-1滤波器。平均滤波器或其他类型的线性/非线性加权滤波器可以用作强平滑滤波器。
残差系数的数量的阈值可以确定为先前在编码器和解码器之间协定的值。此外,阈值可以包括在VPS、SPS、PPS、条带报头或块报头中,并且从编码器发送给解码器。解码器可以基于所接收的阈值确定是否执行参考样本滤波和滤波器类型。
如果周围块的残差减小(即,残差系数的数量减少),则这指示周围块的预测块和原始块的同质性高。在这种情况下,帧内预测单元可以生成相对准确的预测块(预测值),尽管它仅使用弱平滑滤波器。然而,随着周围块的残差增加(即,残差系数的数量增加),周围块的图像可能是详细的图像,或者可以包括许多误差,例如噪声或伪影。因此,帧内预测单元可以使用强平滑滤波器来提高预测块的准确度。
实施方式5:使用周围块的边界/边缘相关信息
在实施方式5中,在确定是否执行滤波和/或滤波器类型的过程中使用周围块参数。周围块参数指示与周围块的边界或边缘有关的信息。
参考样本包括多个样本。多个样本属于与当前块相邻的不同周围样本。边界相关信息包括指示周围块的边界或边缘是否包括在参考样本中的参数(下文中称为边界参数或边缘参数)或参考样本内包括块边界的不同周围样本的数量(下文中,边界样本数量)。
帧内预测单元可基于边缘参数确定是否执行参考样本滤波和/或滤波器类型。边参数指示周围块的边界是否包括在参考样本中。也就是说,具体地,边缘参数指示顶部参考样本9020或左参考样本9030中的至少一个是否配置有属于不同周围样本的样本。例如,当边缘参数为1时,它可以指示周围块的边界包括在参考样本中。
当边缘参数指示顶部参考样本9020或左参考样本9030中的至少一个配置有属于不同周围样本的样本时,帧内预测单元可以确定执行参考样本滤波。在这种情况下,可以使用强平滑滤波器。如果不是,则帧内预测单元不执行参考样本滤波,或者执行参考样本滤波但可以确定使用弱平滑滤波器。
此外,当边界样本数量大于(或者大于或等于)阈值时,帧内预测单元可以基于边界样本数量确定执行参考样本滤波。如果不是,则帧内预测单元不执行参考样本滤波,或者执行参考样本滤波但是可以确定使用弱平滑滤波器。
边界样本数量的阈值可以被确定为先前在编码器和解码器之间协定的值。阈值可以包括在VPS、SPS、PPS、条带报头或块报头中,并且从编码器发送给解码器。解码器可以基于所接收的阈值确定是否执行参考样本滤波和滤波器类型。
可以使用一维二项式滤波器作为弱平滑滤波器。一维二项式滤波器可以包括1-2-1滤波器或1-4-6-4-1滤波器。平均滤波器或其他类型的线性/非线性加权滤波器可以用作强平滑滤波器。
随着当前块的周围块的尺寸减小,参考样本中包括的周围块的边界的数量增加。随着块边界的数量增加,可能发生诸如伪影之类的误差的可能性增加。因此,当周围块的边界包括在参考样本中或者包括边界的周围块的数量大于阈值时,帧内预测单元可以通过使用强平滑滤波器对参考样本进行滤波来提高预测块的准确度。
实施方式6:使用当前块的预测样本与参考样本之间的距离信息
在实施方式6中,在确定是否执行滤波和/或滤波器类型的过程中使用当前块参数。当前块参数包括预测样本和参考样本之间的距离信息。具体地,距离信息包括预测块中要预测的当前样本(下文中称为预测样本)与顶部参考样本9020之间的垂直距离(下文中称为垂直距离)和/或预测样本与左参考样本9030之间的水平距离(下文中为水平距离)。
帧内预测单元可以基于当前块内的预测样本的位置适应性地确定是否执行参考样本滤波和/或滤波器类型。例如,在当前块的一条边的长度为N时,帧内预测单元可以确定当预测样本的x坐标或y坐标中的至少任意一个大于N/2时在生成预测样本的预测值的过程中执行参考样本滤波。在这种情况下,帧内预测单元可以使用强平滑滤波器。
也就是说,帧内预测单元可以针对每个预测样本确定是否执行参考样本滤波。当每个预测样本的水平距离或垂直距离中的至少一个大于阈值(或阈值距离)时,帧内预测单元可以确定在生成相应预测样本的预测值的过程中执行参考样本滤波。在这种情况下,帧内预测单元可以使用强平滑滤波器。如果不是,则帧内预测单元在生成相应预测样本的预测值的过程中不执行参考样本滤波,或者确定执行滤波但是可以使用弱平滑滤波器。
垂直距离和/或水平距离中的每一个的阈值可以确定为先前在编码器和解码器之间协定的值。阈值可以包括在VPS、SPS、PPS、条带报头或块报头中,并且从编码器发送给解码器。解码器可以基于所接收的阈值确定是否执行参考样本滤波和滤波器类型。
可以使用一维二项式滤波器作为弱平滑滤波器。一维二项式滤波器可以包括1-2-1滤波器或1-4-6-4-1滤波器。平均滤波器或其他类型的线性/非线性加权滤波器可以用作强平滑滤波器。
随着预测样本和参考样本之间的距离增加,预测的准确性降低。此外,随着距离增加,诸如噪声之类的不必要信息将传播的可能性增加。因此,对于距参考样本具有较大距离的预测样本使用强平滑滤波器,可以提高预测准确度。
实施方式7:使用实施方式1至实施方式6的组合
可以通过组合实施方式1至实施方式6中的一个或更多个准则来确定是否执行参考样本滤波和/或滤波器类型。
例如,可以定义其中组合了当前块的较长边的长度(实施方式1)和周围块边界信息(实施方式5)的新准则。又例如,可以定义其中组合了当前块的较小边的长度(实施方式1)、当前块的样本的数量(实施方式2)、以及当前块/周围块的量化参数(实施方式3)的新准则。通过组合上述实施方式可以进一步提高预测准确度。
实施方式8:确定是否独立地对顶部参考样本和左参考样本进行滤波和/或滤波器
类型
实施方式8是以实施方式1为基础的。在实施方式8中,帧内预测单元基于当前块的每条边的长度确定是否对顶部参考样本9020和左参考样本9030执行滤波和/或滤波器类型。在实施方式8中也使用表2。
具体地,返回参照图9,基于当前块的水平边缘长度(水平边长度)确定是否对顶部参考样本9020执行滤波和/或滤波类型。基于垂直边缘长度(垂直边长度)确定是否对左参考样本9030执行滤波和/或滤波类型。也就是说,根据左边(或垂直边)的长度的准则被应用于左参考样本9030。根据顶边(或水平边)的长度的准则被应用于顶部参考样本9020。如图9所示,结果,参考样本滤波可以应用于左参考样本9030,并且参考样本滤波可以不应用于顶部参考样本9020。因此,可以独立地对两个参考样本进行滤波。
例如,当垂直边长度为16并且预测模式为8时,可以根据表2的16×16块确定要对左参考样本9030执行滤波。如果水平边的长度为8并且预测模式为8,则可以根据表2的8×8块确定不对顶部参考样本9020执行滤波。
如在实施方式1中那样,左上方样本9040可以包括在左参考样本9030和顶部参考样本9020中的任何一个中。图9示出了左上方样本包括在左参考样本9030中并被处理。
除了分离地确定是否对左参考样本9030和顶部参考样本9020应用滤波之外,实施方式1中描述的内容可以相同地应用于内容(滤波器类型等)。例如,可以将强平滑滤波器(平均滤波器或其他类型的线性/非线性加权滤波器)应用于左参考样本9030。
实施方式9:首先确定对参考样本的参考是否是有可能的
在实施方式9中,在实施方式1至8之前,首先确定对每个参考样本的参考是否是有可能的(每个参考样本是否可以用于生成预测块)。本实施方式可以应用于在参考样本滤波之前获得/生成参考样本的过程。
在一些情况下,帧内预测(帧内模式)方法可以在生成预测块的过程中不使用参考样本。例如,不能使用参考样本的情况包括当前块位于图像的边缘的情况或者以帧间预测模式(帧间模式)已经解码相邻块的情况(这仅限于某些情况)。
因此,在实施方式9中,帧内预测单元首先确定对参考顶部参考样本9020和左参考样本9030中的每一个的参考是否是有可能的。
具体地,1)如果在左参考样本9030和顶部参考样本9020当中仅对左参考样本9030的参考是有可能的,则帧内预测单元基于左边(垂直边)的长度来确定是否执行参考样本滤波,并且如果仅对参考顶部参考样本9020的参考是有可能的,则基于顶边(水平边)的长度确定是否执行参考样本滤波。在这种情况下,基于可参考的左边或上边的长度来确定是否执行滤波,但是确定要执行滤波之后的滤波的应用被应用于左参考样本9030和顶部参考样本9020二者。对于基于边长确定是否应用滤波的详细方法,参照实施方式7或实施方式1的描述。
2)如果对左参考样本和顶部参考样本二者的参考是有可能的,或者对左参考样本和顶部参考样本二者的参考都是不可能的,则帧内预测单元可以根据实施方式1至实施方式8的准则确定是否执行参考样本滤波和/或滤波器类型。此外,再例如,如果对左/顶部参考样本9020的参考是不可能的,则帧内预测单元可以用默认值(1<<(bitDepth-1))填充所有参考样本并使用它们来生成预测块。例如,在8比特图像的情况下,可以用128值填充参考样本,而在10比特图像的情况下,可以用512值填充参考样本。
可以在编码器或解码器的帧内预测单元中执行实施方式1至实施方式9的所有方法。
图10是根据本发明的实施方式的帧内预测单元的框图。
帧内预测单元10010基于帧内预测模式生成当前块的预测块。帧内预测单元10010包括在编码器(视频编码装置)和/或解码器(视频解码装置)中。
帧内预测单元10010包括帧内预测模式获取单元10020、参考样本获取单元10030、参考样本滤波单元10040和预测块生成单元10050。
帧内预测模式获取单元10020获得当前块的帧内预测模式。帧内预测模式获取单元10020可以执行图5的S501处理。
在获得帧内预测模式之后,参考样本获取单元10030获得用于生成预测块的参考样本。参考样本获取单元10030可以执行图5的S502处理。
在获得参考样本之后,参考样本滤波单元10040确定是否对参考样本执行滤波。如果确定要执行滤波,则参考样本滤波单元10040对参考样本进行滤波。如果确定不对参考样本执行滤波,则参考样本滤波单元10040不对参考样本进行滤波。
在帧内预测单元10010中处理的当前块可以对应于正方形块或非正方形块。如果当前块是非正方形块,则参考样本滤波单元10040基于当前块参数和/或周围块参数以及帧内预测模式来确定是否执行滤波。关于当前块参数和周围块参数的详细内容,参照与图9有关的描述。也就是说,如果当前块是非正方形块,则参考样本滤波单元10040可以根据实施方式1至实施方式8的准则确定是否执行参考样本滤波和/或滤波器类型。
预测块生成单元10050使用尚未滤波的参考样本或经滤波的参考样本来生成当前块的预测块。预测块生成单元10050可以执行图5的S504处理。
图11示出了根据本发明的实施方式的视频解码方法的流程图。
视频解码由视频解码装置(解码器)执行。
视频解码装置获得当前块的帧内预测模式(S11010)。该处理可以与图1的S501处理相同或类似地执行,因此,省略其详细描述。
视频解码装置使用当前块的相邻样本获得用于生成当前块的预测块的参考样本(S11020)。该处理可以与图5的S502处理相同或类似地执行,并且省略其详细描述。此外,在该步骤中,可以执行图9的实施方式9的方法。
此后,视频解码装置确定是否对参考样本执行滤波(S11030),并且当确定要执行滤波时对参考样本进行滤波(S11040)。
在确定是否执行滤波的步骤(S11030)中,视频解码装置基于当前块参数(即,与当前块有关的参数)和/或周围块参数(即,与当前块的周围块有关的参数)以及帧内预测模式来确定是否执行滤波。关于当前块参数和周围块参数的详细内容,参照与图9有关的描述。
此后,视频解码装置基于帧内预测模式使用参考样本或经滤波的参考样本生成预测块(S11050)。该处理可以与图5的S504处理相同或类似地执行,因此省略其详细描述。
在前述实施方式中,本发明的元件和特征已经以特定形式组合。除非另有明确说明,否则每个元件或特征可以认为是可选的。每个元件或特征可以以不与另一元件或特征组合的形式实现。此外,一些元件和/或特征可以组合以形成本发明的实施方式。在本发明的实施方式中描述的操作的顺序可以改变。实施方式的一些元件或特征可以包括在另一实施方式中,或者可以用另一实施方式的相应元件或特征代替。显然,可以通过组合权利要求书中没有明确引用关系的权利要求来构造实施方式,或者可以在提交申请之后通过修改将实施方式包括进来作为新的权利要求。
根据本发明的实施方式可以通过各种手段来实现,例如,硬件、固件、软件或它们的组合。在通过硬件实现的情况下,可以使用一个或更多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器和/或微处理器来实现本发明的实施方式。
在通过固件或软件实现的情况下,本发明的实施方式可以以用于执行上述功能或操作的模块、过程或功能的形式实现。软件代码可以存储在存储器中并由处理器驱动。存储器可以位于处理器内部或外部,并且可以通过各种已知手段与处理器交换数据。
显然,对于本领域技术人员来说,在不脱离本发明的基本特征的情况下,本发明可以以其它特定形式实现。因此,详细描述不应被解释为限制性的,而应被解释为从所有方面都是示例性的。本发明的范围应通过对所附权利要求的合理分析来确定,并且在本发明的等同范围内的所有变型都包括在本发明的范围内。
工业实用性
已经出于示例性目的公开了本发明的上述优选实施方式,并且在不脱离所附权利要求中公开的本发明的技术精神和范围的情况下,本领域技术人员可以改进、改变、替代或添加各种其它实施方式。