技术领域
本发明涉及高效地对图像进行编码的图像编码装置以及图像编码方法、对高效地编码了的图像进行解码的图像解码装置以及图像解码方法、和图像预测装置。
背景技术:
例如,在MPEG(Moving Picture Experts Group,运动图像专家组)、“ITU-T H.26x”等国际标准影像编码方式中,将输入影像帧分割为矩形的块(编码块),并对该编码块实施使用已编码的图像信号的预测处理从而生成预测图像,将作为该编码块与预测图像的差分的预测误差信号按照块单位进行正交变换、量化处理,从而进行信息压缩。
例如,在作为国际标准方式的MPEG-4 AVC/H.264(ISO/IEC 14496-10|ITU-T H.264)中,根据已编码的附近像素进行帧内部(Intra)预测处理或者邻近帧间的运动补偿预测处理(例如,参照非专利文献1)。
在MPEG-4 AVC/H.264中,在亮度的帧内部预测模式中,能够按照块单位,从多个预测模式中选择1个预测模式。
图14是示出亮度的块尺寸是4×4像素的情况的帧内部预测模式的说明图。
在图14中,块内的白圈表示编码对象的像素,黑圈表示作为预测中使用的像素的已编码的像素。在亮度的块尺寸是4×4像素的情况下,规定了模式0至模式8这9个帧内部预测模式。
在图14中,模式2是进行平均值预测的模式,利用块的上面和左面的邻接像素的平均值,预测块内的像素。
模式2以外的模式是进行方向性预测的模式。模式0是垂直方向预测,通过在垂直方向上重复块的上面的邻接像素从而生成预测图像。例如,在竖条纹花纹时选择模式0。
模式1是水平方向预测,通过在水平方向上重复块的左面的邻接像素从而生成预测图像。例如,在横条纹花纹时选择模式1。
在模式3至模式8中,使用块的上面或者左面的已编码的像素,在规定的方向(箭头表示的方向)上生成插值像素来生成预测图像。
此处,应用帧内部预测的亮度的块尺寸能够从4×4像素、8×8像素、16×16像素中选择,在8×8像素的情况下,与4×4像素同样地规定了9个帧内部预测模式。但是,关于预测中使用的像素,并非是已编码的像素自身,而是使用针对这些像素实施滤波处理而得到的像素。
相对于此,在16×16像素的情况下,除了与平均值预测、垂直方向预测以及水平方向预测有关的帧内部预测模式以外,还规定了被称为Plane预测的4个帧内部预测模式。
与Plane预测有关的帧内部预测模式是将针对块的上面和左面的已编码的邻接像素在倾斜方向上进行内插插值而生成的像素作为预测值的模式。
另外,在方向性预测模式中,通过在预定的方向(预测方向)上重复块的邻接像素或者根据邻接像素生成的插值像素从而生成预测值,所以在图15所示那样的预测对象块内的目标的边界(边缘)的方向与预测方向一致、并且块内的信号值沿着预测方向而恒定的情况下,预测效率变高而能够削减符号量。
非专利文献1:MPEG-4 AVC(ISO/IEC 14496-10)/ITU-T H.264标准
技术实现要素:
以往的运动图像编码装置如以上那样构成,所以如果预测对象块内的目标的边界(边缘)的方向与预测方向一致、并且预测对象块内的信号值沿着该预测方向而恒定,则能够通过使用方向性预测来高精度地进行预测。但是,存在如下课题:即便预测对象块内的目标的边界(边缘)的方向与预测方向一致,在如图16所示,在信号值沿着该预测方向而变化的情况下,预测误差也会变大。
本发明是为了解决上述那样的课题而完成的,其目的在于得到一种图像编码装置、图像解码装置、图像编码方法、图像解码方法以及图像预测装置,即使在信号值沿着预测方向而变化的情况下,也能够实现高精度的预测来提高图像质量。
在本发明的图像编码装置中,帧内部预测单元在帧内部预测参数表示水平方向预测处理的情况下,对成为编码块的预测处理的单位的各块的左面所邻接的像素的亮度值相加与块的上面所邻接的像素的水平方向的亮度值变化量成比例的值,将该相加后的值作为预测图像的预测值,在帧内部预测参数表示垂直方向预测处理的情况下,对块的上面所邻接的像素的亮度值相加与块的左面所邻接的像素的垂直方向的亮度值变化量成比例的值,将该相加后的值作为预测图像的预测值。
根据本发明,帧内部预测单元构成为在帧内部预测参数表示水平方向预测处理的情况下,对块的左面所邻接的像素的亮度值相加与块的上面所邻接的像素的水平方向的亮度值变化量成比例的值,将该相加后的值作为预测图像的预测值,在帧内部预测参数表示垂直方向预测处理的情况下,对块的上面所邻接的像素的亮度值相加与块的左面所邻接的像素的垂直方向的亮度值变化量成比例的值,将该相加后的值作为预测图像的预测值,所以具有即使在信号值沿着预测方向而变化的情况下也能够实现高精度的预测来提高图像质量的效果。
附图说明
图1是示出本发明的实施方式1的运动图像编码装置的结构图。
图2是示出本发明的实施方式1的运动图像编码装置的处理内容(运动图像编码方法)的流程图。
图3是示出本发明的实施方式1的运动图像解码装置的结构图。
图4是示出本发明的实施方式1的运动图像解码装置的处理内容(运动图像解码方法)的流程图。
图5是示出最大编码块被层次性地分割为多个编码块的例子的说明图。
图6的(a)是示出分割后的编码块以及预测块的分布的说明图,(b)是示出通过层次分割而分配了编码模式m(Bn)的状况的说明图。
图7是示出编码块Bn内的各预测块Pin可选择的帧内部预测参数(帧内部预测模式)的一个例子的说明图。
图8是示出在lin=min=4的情况下生成预测块Pin内的像素的预测值时使用的像素的一个例子的说明图。
图9是示出以预测块Pin内的左上像素为原点的相对坐标的说明图。
图10是示出垂直方向预测中的以往的为了计算对预测值相加的亮度值变化量而参照的左面的预测块的邻接像素的一个例子的说明图。
图11是示出垂直方向预测中的以往的对预测值相加的亮度值变化量的缩放值的一个例子的说明图。
图12是示出水平方向预测中的以往的为了计算对预测值相加的亮度值变化量而参照的上面的预测块的邻接像素的一个例子的说明图。
图13是示出水平方向预测中的以往的对预测值相加的亮度值变化量的缩放值的一个例子的说明图。
图14是示出亮度的块尺寸是4×4像素的情况的帧内部预测模式的说明图。
图15是示出通过水平方向预测而高精度地预测的预测图像的一个例子的说明图。
图16是示出在通过水平方向预测进行了预测时发生大的预测误差的一个例子的说明图。
图17是示出编码块Bn内的各预测块Pin可选择的帧内部预测参数(帧内部预测模式)的一个例子的说明图。
(符号说明)
1:块分割部(块分割单元);2:编码控制部(编码控制单元);3:切换开关;4:帧内部预测部(帧内部预测单元);5:运动补偿预测部(运动补偿预测单元);6:减法部(量化单元);7:变换/量化部(量化单元);8:逆量化/逆变换部;9:加法部;10:帧内部预测用存储器(帧内部预测单元);11:环路滤波器部;12:运动补偿预测帧存储器(运动补偿预测单元);13:可变长编码部(可变长编码单元);31:可变长解码部(可变长解码单元);32:逆量化/逆变换部(逆量化单元);33:切换开关;34:帧内部预测部(帧内部预测单元);35:运动补偿部(运动补偿预测单元);36:加法部;37:帧内部预测用存储器(帧内部预测单元);38:环路滤波器部;39:运动补偿预测帧存储器(运动补偿预测单元)。
具体实施方式
以下,为了更详细地说明本发明,依照附图来说明用于实施本发明的方式。
实施方式1.
图1是示出本发明的实施方式1的运动图像编码装置的结构图。
在图1中,块分割部1实施如下处理:如果输入了表示输入图像的影像信号,则将该输入图像分割为由编码控制部2决定的最大尺寸的编码块即最大编码块,并且直至达到由编码控制部2决定的上限的层次数为止,将该最大编码块层次性地分割为各编码块。
即,块分割部1实施如下处理:根据由编码控制部2决定的分割而将输入图像分割为各编码块,并输出该编码块。另外,各编码块被分割为成为预测处理单位的一个或多个预测块。
另外,块分割部1构成了块分割单元。
编码控制部2实施如下处理:决定成为实施预测处理时的处理单位的编码块的最大尺寸,并且决定最大尺寸的编码块被层次性地分割时的上限的层次数,从而决定各个编码块的尺寸。
另外,编码控制部2实施如下处理:从可选择的1个以上的编码模式(1个以上的帧内部编码模式、1个以上的帧间编码模式)中,选择针对从块分割部1输出的编码块的编码效率最高的编码模式。
另外,编码控制部2实施如下处理:在编码效率最高的编码模式是帧内部编码模式的情况下,针对作为预测处理单位的每个预测块,决定在以该帧内部编码模式实施针对编码块的帧内部预测处理时所使用的帧内部预测参数,在编码效率最高的编码模式是帧间编码模式的情况下,针对作为预测处理单位的每个预测块,决定在以该帧间编码模式实施针对编码块的帧间预测处理时所使用的帧间预测参数。
而且,编码控制部2实施如下处理:决定对变换/量化部7以及逆量化/逆变换部8提供的预测差分编码参数。
另外,编码控制部2构成了编码控制单元。
切换开关3实施如下处理:如果由编码控制部2决定的编码模式是帧内部编码模式,则将从块分割部1输出的编码块输出到帧内部预测部4,如果由编码控制部2决定的编码模式是帧间编码模式,则将从块分割部1输出的编码块输出到运动补偿预测部5。
帧内部预测部4实施如下处理:针对从切换开关3输出的编码块,按照作为预测处理单位的每个预测块,一边参照帧内部预测用存储器10中储存的局部解码图像,一边实施使用了由编码控制部2决定的帧内部预测参数的帧内部预测处理(帧内预测处理)来生成帧内部预测图像。
另外,帧内部预测部4在生成预测图像时的帧内预测处理是水平方向预测处理的情况下,对预测块的左面所邻接的像素的亮度值相加与预测块的上面所邻接的像素的水平方向的亮度值变化量成比例的值,将该相加后的值决定为预测图像的预测值,在生成预测图像时的帧内预测处理是垂直方向预测处理的情况下,对预测块的上面所邻接的像素的亮度值相加与预测块的左面所邻接的像素的垂直方向的亮度值变化量成比例的值,将该相加后的值决定为预测图像的预测值。
由帧内部预测部4以及帧内部预测用存储器10构成了帧内部预测单元。
运动补偿预测部5实施如下处理:按照作为预测处理单位的预测块单位,比较从切换开关3输出的编码块和储存在运动补偿预测帧存储器12中的1帧以上的局部解码图像,来搜索运动矢量,并使用该运动矢量和由编码控制部2决定的帧间预测参数,按照预测块单位实施针对该编码块的帧间预测处理(运动补偿预测处理)而生成帧间预测图像。
减法部6实施如下处理:从由块分割部1输出的编码块减去由帧内部预测部4生成的帧内部预测图像或者由运动补偿预测部5生成的帧间预测图像,将作为其相减结果的预测差分信号(差分图像)输出到变换/量化部7。
变换/量化部7实施如下处理:参照由编码控制部2决定的预测差分编码参数,实施针对从减法部6输出的预测差分信号的正交变换处理(例如,DCT(离散余弦变换)、预先对特定的学习序列进行基底设计的KL变换等正交变换处理)来计算变换系数,并且参照该预测差分编码参数,对该变换系数进行量化,将作为量化后的变换系数的压缩数据输出到逆量化/逆变换部8以及可变长编码部13。
另外,由减法部6以及变换/量化部7构成了量化单元。
逆量化/逆变换部8实施如下处理:参照由编码控制部2决定的预测差分编码参数,对从变换/量化部7输出的压缩数据进行逆量化,并且参照该预测差分编码参数,实施针对作为逆量化后的压缩数据的变换系数的逆正交变换处理,计算与从减法部6输出的预测差分信号相当的局部解码预测差分信号。
加法部9实施如下处理:将由逆量化/逆变换部8计算出的局部解码预测差分信号、与由帧内部预测部4生成的帧内部预测图像或者由运动补偿预测部5生成的帧间预测图像进行相加,来计算与从块分割部1输出的编码块相当的局部解码图像。
帧内部预测用存储器10是储存由加法部9计算出的局部解码图像的记录介质。
环路滤波器部11实施如下处理:对由加法部9计算出的局部解码图像实施规定的滤波处理,输出滤波处理后的局部解码图像。
运动补偿预测帧存储器12是储存滤波处理后的局部解码图像的记录介质。
可变长编码部13实施如下处理:对从变换/量化部7输出的压缩数据、编码控制部2的输出信号(最大编码块内的块分割信息、编码模式、预测差分编码参数、帧内部预测参数或者帧间预测参数)、以及从运动补偿预测部5输出的运动矢量(编码模式是帧间编码模式的情况)进行可变长编码,而生成比特流。
另外,可变长编码部13构成了可变长编码单元。
在图1的例子中,设想作为运动图像编码装置的构成要素的块分割部1、编码控制部2、切换开关3、帧内部预测部4、运动补偿预测部5、减法部6、变换/量化部7、逆量化/逆变换部8、加法部9、帧内部预测用存储器10、环路滤波器部11、运动补偿预测帧存储器12以及可变长编码部13的各个由专用的硬件(例如,安装了CPU的半导体集成电路、单片式微型计算机等)构成的例子,但在运动图像编码装置由计算机构成的情况下,也可以将记述了块分割部1、编码控制部2、切换开关3、帧内部预测部4、运动补偿预测部5、减法部6、变换/量化部7、逆量化/逆变换部8、加法部9、环路滤波器部11以及可变长编码部13的处理内容的程序储存到计算机的存储器中,并由该计算机的CPU执行该存储器中储存的程序。
图2是示出本发明的实施方式1的运动图像编码装置的处理内容(运动图像编码方法)的流程图。
图3是示出本发明的实施方式1的运动图像解码装置的结构图。
在图3中,可变长解码部31实施如下处理:如果输入了由图1的运动图像编码装置生成的比特流,则从该比特流,对压缩数据、块分割信息、编码模式、帧内部预测参数(编码模式是帧内部编码模式的情况)、帧间预测参数(编码模式是帧间编码模式的情况)、预测差分编码参数以及运动矢量(编码模式是帧间编码模式的情况)进行可变长解码。
另外,可变长解码部31构成了可变长解码单元。
逆量化/逆变换部32实施如下处理:参照由可变长解码部31可变长解码了的预测差分编码参数,对由可变长解码部31可变长解码了的压缩数据进行逆量化,并且参照该预测差分编码参数来实施针对作为逆量化后的压缩数据的变换系数的逆正交变换处理,计算与从图1的逆量化/逆变换部8输出的局部解码预测差分信号相同的解码预测差分信号。
另外,逆量化/逆变换部32构成了逆量化单元。
切换开关33实施如下处理:如果由可变长解码部31可变长解码了的编码模式是帧内部编码模式,则将由可变长解码部31可变长解码了的帧内部预测参数输出到帧内部预测部34,如果由可变长解码部31可变长解码了的编码模式是帧间编码模式,则将由可变长解码部31可变长解码了的帧间预测参数以及运动矢量输出到运动补偿部35。
帧内部预测部34实施如下处理:针对根据由可变长解码部31可变长解码了的块分割信息以及编码模式而确定的解码块(与图1的运动图像编码装置的“编码块”相当的块),按照作为预测处理单位的每个预测块,一边参照帧内部预测用存储器37中储存的解码图像,一边实施使用了从切换开关33输出的帧内部预测参数的帧内部预测处理(帧内预测处理)而生成帧内部预测图像。
另外,帧内部预测部34在生成预测图像时的帧内预测处理是水平方向预测处理的情况下,对预测块的左面所邻接的像素的亮度值相加与预测块的上面所邻接的像素的水平方向的亮度值变化量成比例的值,将该相加后的值决定为预测图像的预测值,在生成预测图像时的帧内预测处理是垂直方向预测处理的情况下,对预测块的上面所邻接的像素的亮度值相加与预测块的左面所邻接的像素的垂直方向的亮度值变化量成比例的值,将该相加后的值决定为预测图像的预测值。
由帧内部预测部34以及帧内部预测用存储器37构成了帧内部预测单元。
运动补偿部35实施如下处理:针对根据由可变长解码部31可变长解码了的块分割信息以及编码模式而确定的解码块,按照作为预测处理单位的每个预测块,一边参照运动补偿预测帧存储器39中储存的解码图像,一边实施使用了从切换开关33输出的运动矢量和帧间预测参数的帧间预测处理(运动补偿预测处理)而生成帧间预测图像。
加法部36实施如下处理:将由逆量化/逆变换部32计算出的解码预测差分信号、与由帧内部预测部34生成的帧内部预测图像或者由运动补偿部35生成的帧间预测图像进行相加,计算与从图1的加法部9输出的局部解码图像相同的解码图像。
帧内部预测用存储器37是储存由加法部36计算出的解码图像的记录介质。
环路滤波器部38实施如下处理:对由加法部36计算出的解码图像实施规定的滤波处理,输出滤波处理后的解码图像。
运动补偿预测帧存储器39是储存滤波处理后的解码图像的记录介质。
在图3的例子中,设想作为运动图像解码装置的构成要素的可变长解码部31、逆量化/逆变换部32、切换开关33、帧内部预测部34、运动补偿部35、加法部36、帧内部预测用存储器37、环路滤波器部38以及运动补偿预测帧存储器39的各个由专用的硬件(例如,安装了CPU的半导体集成电路、单片式微型计算机等)构成的例子,但在运动图像解码装置由计算机构成的情况下,也可以将记述了可变长解码部31、逆量化/逆变换部32、切换开关33、帧内部预测部34、运动补偿部35、加法部36以及环路滤波器部38的处理内容的程序储存到计算机的存储器中,并由该计算机的CPU执行该存储器中储存的程序。
图4是示出本发明的实施方式1的运动图像解码装置的处理内容(运动图像解码方法)的流程图。
接下来,说明动作。
在该实施方式1中,说明运动图像编码装置和运动图像解码装置,其中,所述运动图像编码装置将影像的各帧图像作为输入图像,实施基于已编码的附近像素的帧内部预测或者邻近帧间的运动补偿预测,针对所得到的预测差分信号实施基于正交变换/量化的压缩处理,之后进行可变长编码来生成比特流,所述运动图像解码装置对从该运动图像编码装置输出的比特流进行解码。
图1的运动图像编码装置的特征在于,适应于影像信号的空间/时间方向的局部性的变化,将影像信号分割为各种尺寸的块,来进行帧内/帧间自适应编码。
一般,影像信号具有信号的复杂度在空间/时间上局部地变化的特性。在空间上观察时,有时在某个影像帧上,例如既有在天空、壁等那样的比较宽的图像区域中具有均匀的信号特性的图样,也混合存在人物或包含细微的纹理的绘画等在小的图像区域内具有复杂的纹理图案的图样。
即使在时间上观察,虽然关于天空、壁,局部性地时间方向的图样的变化小,但关于活动的人物、物体,由于其轮廓在时间上进行刚体/非刚体的运动,所以时间上的变化大。
在编码处理中,进行通过时间/空间上的预测来生成信号功率或熵小的预测差分信号从而削减整体的符号量的处理,但只要能够将预测中使用的参数均匀地应用于尽可能大的图像信号区域,就能够减小该参数的符号量。
另一方面,如果针对时间上/空间上变化大的图像信号图案,将同一预测参数应用于大的图像区域,则预测的错误增加,所以预测差分信号的符号量增加。
因此,在时间上/空间上变化大的区域中,优选减小应用同一预测参数来进行预测处理的块尺寸,增加预测中使用的参数的数据量,降低预测差分信号的功率/熵。
在该实施方式1中,为了进行与这样的影像信号的一般的性质适应的编码,采用如下结构:最初从规定的最大块尺寸开始预测处理等,层次性地分割影像信号的区域,针对所分割的每个区域,使预测处理、其预测差分的编码处理自适应化。
关于图1的运动图像编码装置设为处理对象的影像信号格式,除了由亮度信号和2个色差信号构成的YUV信号、从数字摄像元件输出的RGB信号等任意的颜色空间的彩色影像信号以外,还设为单色图像信号、红外线图像信号等影像帧由水平和垂直二维的数字采样(像素)列构成的任意的影像信号。
其中,各像素的灰度既可以是8比特,也可以是10比特、12比特等灰度。
在以下的说明中,为了方便,只要没有特别说明,就说明设为输入图像的影像信号是YUV信号、并且处理2个色差分量U、V相对亮度分量Y被子采样了的4:2:0格式的信号的情况。
另外,将与影像信号的各帧对应的处理数据单位称为“图片”。
在该实施方式1中,将“图片”设为依次扫描(逐行扫描)了的影像帧信号而进行说明,但在影像信号是隔行扫描信号的情况下,“图片”也可以是作为构成影像帧的单位的场图像信号。
最初,说明图1的运动图像编码装置的处理内容。
首先,编码控制部2决定成为编码对象的图片(当前图片)的编码中使用的最大编码块的尺寸、和对最大编码块进行层次分割的层次数的上限(图2的步骤ST1)。
作为最大编码块的尺寸的决定方法,例如既可以根据输入图像的影像信号的分辨率而对所有图片决定同一尺寸,也可以将输入图像的影像信号的局部性的运动的复杂度的差异作为参数而进行定量化,对于运动剧烈的图片决定小的尺寸,另一方面对于运动少的图片决定大的尺寸。
作为分割层次数的上限的决定方法,例如有根据输入图像的影像信号的分辨率针对所有图片决定同一层次数的方法、或在输入图像的影像信号的运动剧烈的情况下设定为增大层次数而能够检测更细微的运动且在运动少的情况下设定为抑制层次数的方法等。
另外,编码控制部2从可利用的1个以上的编码模式中选择与层次性地分割的各个编码块对应的编码模式(步骤ST2)。
即,编码控制部2针对最大编码块尺寸的每个图像区域,直至达到预先决定的分割层次数的上限为止,层次性地分割为具有编码块尺寸的编码块,决定针对各个编码块的编码模式。
在编码模式中有一个或多个帧内部编码模式(总称为“INTRA”)、和一个或多个帧间编码模式(总称为“INTER”),编码控制部2从在该图片中可利用的所有编码模式或者其子集中,选择与各个编码块对应的编码模式。
其中,由后述块分割部1层次性地分割的各个编码块被进一步分割为作为进行预测处理的单位的一个或多个预测块,预测块的分割状态也作为信息而被包含于编码模式中。
编码控制部2的编码模式的选择方法是公知的技术,所以省略详细的说明,例如有如下方法等:使用可利用的任意的编码模式来实施针对编码块的编码处理而验证编码效率,在可利用的多个编码模式中选择编码效率最佳的编码模式。
另外,编码控制部2针对各个编码块的每一个,决定在压缩差分图像时使用的量化参数以及变换块尺寸,并且决定在实施预测处理时使用的预测参数(帧内部预测参数或者帧间预测参数)。
其中,在编码块进一步被分割为进行预测处理的预测块单位的情况下,能够针对每个预测块选择预测参数(帧内部预测参数或者帧间预测参数)。
进而,在编码模式是帧内部编码模式的编码块中,由于在如后所述那样进行帧内部预测处理时使用与预测块邻接的已编码的像素,所以需要按照预测块单位进行编码,所以可选择的变换块尺寸被限制为预测块的尺寸以下。
编码控制部2将包括量化参数以及变换块尺寸的预测差分编码参数输出到变换/量化部7、逆量化/逆变换部8以及可变长编码部13。
另外,编码控制部2将帧内部预测参数根据需要而输出到帧内部预测部4。
另外,编码控制部2将帧间预测参数根据需要而输出到运动补偿预测部5。
如果输入了输入图像的影像信号,则块分割部1将该输入图像的影像信号分割为由编码控制部2决定的最大编码块尺寸,进而将分割了的最大编码块层次性地分割为由编码控制部2决定的编码块,并输出该编码块。
此处,图5是示出最大编码块被层次性地分割为多个编码块的例子的说明图。
在图5中,最大编码块是被记载为“第0层次”的亮度分量具有(L0,M0)的尺寸的编码块。
将最大编码块设为出发点,直至利用四叉树构造另行决定的规定的深度为止,层次性地进行分割,从而得到编码块。
在深度n中,编码块是尺寸(Ln,Mn)的图像区域。
其中,Ln和Mn既可以相同,也可以不同,但在图5中示出了Ln=Mn的情形。
以后,将由编码控制部2决定的编码块尺寸定义为编码块的亮度分量中的尺寸(Ln,Mn)。
由于进行四叉树分割,所以(Ln+1,Mn+1)=(Ln/2,Mn/2)始终成立。
另外,在RGB信号等所有颜色分量具有同一采样数的彩色影像信号(4:4:4格式)中,所有颜色分量的尺寸成为(Ln,Mn),但在处理4:2:0格式的情况下,所对应的色差分量的编码块尺寸成为(Ln/2,Mn/2)。
以后,设为用Bn来表示第n层次的编码块,用m(Bn)来表示在编码块Bn中可选择的编码模式。
在由多个颜色分量构成的彩色影像信号的情况下,编码模式m(Bn)既可以构成为针对每个颜色分量分别使用单独的模式,也可以构成为针对所有颜色分量使用共同的模式。以后,只要没有特别说明,就指与YUV信号、4:2:0格式的编码块的亮度分量对应的编码模式而进行说明。
编码块Bn如图6所示,通过块分割部1而被分割为表示预测处理单位的一个或多个预测块。
以后,将属于编码块Bn的预测块记载为Pin(i是第n层次中的预测块编号)。图5示出P00和P10的一个例子。
在编码模式m(Bn)中作为信息而包含有如何进行编码块Bn的预测块分割。
关于预测块Pin,全部依照编码模式m(Bn)进行预测处理,但能够针对每个预测块Pin,选择单独的预测参数(帧内部预测参数或者帧间预测参数)。
编码控制部2针对最大编码块,例如生成图6所示那样的块分割状态来确定编码块。
图6(a)的虚线所包围的矩形表示各编码块,各编码块内存在的用斜线涂覆的块表示各预测块的分割状态。
图6(b)是关于图6(a)的例子利用四叉树图形表示了通过层次分割来分配编码模式m(Bn)的状况的图。图6(b)的□所包围的节点是分配了编码模式m(Bn)的节点(编码块)。
该四叉树图形的信息与编码模式m(Bn)一起从编码控制部2输出到可变长编码部13而被复用到比特流。
切换开关3在由编码控制部2决定的编码模式m(Bn)是帧内部编码模式的情况(m(Bn)∈INTRA的情况)下,将从块分割部1输出的编码块Bn输出到帧内部预测部4。
另一方面,在由编码控制部2决定的编码模式m(Bn)是帧间编码模式的情况(m(Bn)∈INTER的情况)下,将从块分割部1输出的编码块Bn输出到运动补偿预测部5。
在帧内部预测部4中,如果由编码控制部2决定的编码模式m(Bn)是帧内部编码模式(m(Bn)∈INTRA的情况),且从切换开关3接收到编码块Bn(步骤ST3),则一边参照帧内部预测用存储器10中储存的局部解码图像,一边使用由编码控制部2决定的帧内部预测参数,来实施针对该编码块Bn内的各预测块Pin的帧内部预测处理而生成帧内部预测图像PINTRAin(步骤ST4)。
另外,运动图像解码装置需要生成与帧内部预测图像PINTRAin完全相同的帧内部预测图像,所以帧内部预测图像PINTRAin的生成中使用的帧内部预测参数从编码控制部2输出到可变长编码部13而被复用到比特流。
在后面详细叙述帧内部预测部4的处理内容。
在运动补偿预测部5中,如果由编码控制部2决定的编码模式m(Bn)是帧间编码模式(m(Bn)∈INTER的情况),且从切换开关3接收到编码块Bn(步骤ST3),则比较该编码块Bn内的各预测块Pin和运动补偿预测帧存储器12中储存的滤波处理后的局部解码图像来搜索运动矢量,使用该运动矢量和由编码控制部2决定的帧间预测参数,实施针对该编码块Bn内的各预测块Pin的帧间预测处理,生成帧间预测图像PINTERin(步骤ST5)。
另外,运动图像解码装置需要生成与帧间预测图像PINTERin完全相同的帧间预测图像,所以帧间预测图像PINTERin的生成中使用的帧间预测参数从编码控制部2输出到可变长编码部13而被复用到比特流。
另外,由运动补偿预测部5搜索到的运动矢量也输出到可变长编码部13而被复用到比特流。
减法部6如果从块分割部1接收到编码块Bn,则从该编码块Bn内的预测块Pin减去由帧内部预测部4生成的帧内部预测图像PINTRAin或者由运动补偿预测部5生成的帧间预测图像PINTERin中的某一方,将作为其相减结果的预测差分信号ein输出到变换/量化部7(步骤ST6)。
变换/量化部7如果从减法部6接收到预测差分信号ein,则参照由编码控制部2决定的预测差分编码参数,实施针对该预测差分信号ein的正交变换处理(例如,DCT(离散余弦变换)、对预先确定的学习序列进行了基底设计的KL变换等正交变换处理),计算变换系数。
另外,变换/量化部7参照该预测差分编码参数,对该变换系数进行量化,将作为量化后的变换系数的压缩数据输出到逆量化/逆变换部8以及可变长编码部13(步骤ST7)。
逆量化/逆变换部8如果从变换/量化部7接收到压缩数据,则参照由编码控制部2决定的预测差分编码参数,对该压缩数据进行逆量化。
另外,逆量化/逆变换部8参照该预测差分编码参数,实施针对作为逆量化后的压缩数据的变换系数的逆正交变换处理(例如,逆DCT、逆KL变换等),计算与从减法部6输出的预测差分信号ein相当的局部解码预测差分信号并输出到加法部9(步骤ST8)。
加法部9如果从逆量化/逆变换部8接收到局部解码预测差分信号,则将该局部解码预测差分信号、与由帧内部预测部4生成的帧内部预测图像PINTRAin和由运动补偿预测部5生成的帧间预测图像PINTERin中的某一方进行相加,从而计算局部解码图像(步骤ST9)。
另外,加法部9将该局部解码图像输出到环路滤波器部11,并且将该局部解码图像储存到帧内部预测用存储器10中。
该局部解码图像成为在以后的帧内部预测处理时使用的已编码的图像信号。
环路滤波器部11如果从加法部9接收到局部解码图像,则对该局部解码图像实施规定的滤波处理,将滤波处理后的局部解码图像储存到运动补偿预测帧存储器12中(步骤ST10)。
另外,关于由环路滤波器部11执行的滤波处理,既可以以所输入的局部解码图像的最大编码块或者各个编码块为单位进行,也可以在输入了1个图片量的局部解码图像之后集中1个图片量来进行。
另外,作为规定的滤波处理的例子,可以举出以使编码块边界的不连续性(块噪声)不会变得显著的方式对块边界进行滤波的处理、以使作为输入图像的图1的影像信号与局部解码图像之间的误差成为最小的方式对局部解码图像的失真进行补偿的滤波处理等。
但是,在进行以使作为输入图像的图1的影像信号与局部解码图像之间的误差成为最小的方式对局部解码图像的失真进行补偿的滤波处理的情况下,需要在环路滤波器部11中参照影像信号,所以需要变更图1的运动图像编码装置使得对环路滤波器部11输入影像信号。
直至针对层次性地分割了的所有编码块Bn的处理完成为止重复实施步骤ST3~ST9的处理,如果针对所有编码块Bn的处理完成,则转移到步骤ST13的处理(步骤ST11、ST12)。
可变长编码部13对从变换/量化部7输出的压缩数据、从编码控制部2输出的最大编码块内的块分割信息(以图6(b)为例子的四叉树信息)、编码模式m(Bn)以及预测差分编码参数、从编码控制部2输出的帧内部预测参数(编码模式是帧内部编码模式的情况)或者帧间预测参数(编码模式是帧间编码模式的情况)、以及从运动补偿预测部5输出的运动矢量(编码模式是帧间编码模式的情况)进行可变长编码,生成表示这些编码结果的比特流(步骤ST13)。
接下来,详细说明帧内部预测部4的处理内容。
图7是示出编码块Bn内的各预测块Pin可选择的帧内部预测参数(帧内部预测模式)的一个例子的说明图。
在图7中,示出帧内部预测模式和该帧内部预测模式所表示的预测方向矢量,在图7的例子中,进行设计使得随着可选择的帧内部预测模式的个数增加而使预测方向矢量彼此的相对角度变小。
帧内部预测部4如上述那样参照预测块Pin的帧内部预测参数,实施针对该预测块Pin的帧内部预测处理,生成帧内部预测图像PINTRAin,但此处说明生成亮度信号中的预测块Pin的帧内部预测信号的帧内部处理。
将预测块Pin的尺寸设为lin×min像素。
图8是示出生成lin=min=4的情况的预测块Pin内的像素的预测值时使用的像素的一个例子的说明图。
在图8中,将预测块Pin的上面的已编码的像素(2×lin+1)个、和左面的已编码的像素(2×min)个设为预测中使用的像素,但预测中使用的像素既可以多于图8所示的像素也可以少于图8所示的像素。
另外,在图8中,将预测块Pin的附近的1行或者1列量的像素用于预测,但也可以将2行或2列、或者其以上的像素用于预测。
在针对预测块Pin的帧内部预测模式的索引值是0(垂直方向预测)的情况下,根据下述式(1)而计算预测块Pin内的像素的预测值,生成预测图像。
S'(x,y)=S(x,-1)+(S(-1,y)-S(-1,-1))/t (1)
其中,坐标(x,y)是以预测块Pin内的左上像素为原点的相对坐标(参照图9),S’(x,y)是坐标(x,y)中的预测值,S(x,y)是坐标(x,y)中的已编码的像素的亮度值(解码了的亮度值)。
这样,对作为以往(MPEG-4 AVC/H.264)的垂直方向预测的预测值的预测块Pin的上面所邻接的已编码的像素的亮度值S(x,-1),相加与预测块Pin的左面所邻接的已编码的像素(图10的粗框所包围的像素)的表示垂直方向的亮度值的变化量的S(-1,y)-S(-1,-1)成比例的值(将表示垂直方向的亮度值的变化量的S(-1,y)-S(-1,-1)缩放为1/t而得到的值),将该相加后的值决定为预测图像的预测值,从而能够实现追随向预测方向的亮度值的变化的垂直方向预测。
但是,在上述预测值未收敛于亮度值可取的值的范围内的情况下,对值进行舍入使得收敛于该范围内。
另外,上述1/t也可以设为固定值,但还可以设为根据坐标(x,y)而变化的变量。
例如,如果设为t=2x+1,则如图11所示,缩放值从左端的列起依次如1/2、1/4、1/8、1/16那样变小,所以从预测块Pin的左面所邻接的已编码的像素起的距离越远,相加的垂直方向的亮度值的变化量越小。
由此,越是与预测块Pin的左面所邻接的已编码的像素之间的距离远而相关变低的预测对象像素,越能够使预测块Pin的左面所邻接的已编码的像素的影响变小,所以能够进行和与预测块Pin的左面所邻接的已编码的像素之间的相关对应的高精度的预测。
进而,也可以限定进行式(1)的预测处理的预测块Pin的块尺寸。一般在大的块尺寸中,在块内易于包含各种信号变化,能够使用方向性预测而高精度地进行预测的情形少,所以例如在16×16像素以上的块尺寸的预测块Pin中不应用式(1)而设为以往的垂直方向预测的预测值(预测块Pin的上面所邻接的已编码的像素的亮度值S(x,-1)),仅在比16×16像素小的块中应用式(1),从而相比于以往的垂直方向预测,能够提高预测性能,并且抑制运算量的增加。
另外,在针对预测块Pin的帧内部预测模式的索引值是1(水平方向预测)的情况下,根据下述式(2)而计算预测块Pin内的像素的预测值,生成预测图像。
S'(x,y)=S(-1,y)+(S(x,-1)-S(-1,-1))/u (2)
其中,坐标(x,y)是以预测块Pin内的左上像素为原点的相对坐标(参照图9),S’(x,y)是坐标(x,y)中的预测值,S(x,y)是坐标(x,y)中的已编码的像素的亮度值(解码了的亮度值)。
这样,对作为以往(MPEG-4 AVC/H.264)的水平方向预测的预测值的预测块Pin的左面所邻接的已编码的像素的亮度值S(-1,y),相加与预测块Pin的上面所邻接的已编码的像素(图12的粗框所包围的像素)的表示水平方向的亮度值的变化量的S(x,-1)-S(-1,-1)成比例的值(将表示水平方向的亮度值的变化量的S(x,-1)-S(-1,-1)缩放为1/u而得到的值),并将该相加后的值决定为预测图像的预测值,从而能够实现追随向预测方向的亮度值的变化的水平方向预测。
但是,在上述预测值未收敛于亮度值可取的值的范围内的情况下,对值进行舍入使得收敛于该范围内。
另外,上述1/u也可以设为固定值,但还可以设为随着坐标(x,y)而变化的变量。
例如,如果设为u=2y+1,则如图13所示,缩放值从上端的行起依次如1/2、1/4、1/8、1/16那样变小,所以从预测块Pin的上面所邻接的已编码的像素起的距离越远,相加的水平方向的亮度值的变化量越小。
由此,越是与预测块Pin的上面所邻接的已编码的像素之间的距离远而相关变低的像素,越能够使预测块Pin的上面所邻接的已编码的像素的影响变小,所以能够进行和与预测块Pin的上面所邻接的已编码的像素之间的相关对应的高精度的预测。
进而,也可以限定进行式(2)的预测处理的预测块Pin的块尺寸。一般在大的块尺寸中,在块内易于包含各种信号变化,能够使用方向性预测而高精度地进行预测的情形少,所以例如在16×16像素以上的块尺寸的预测块Pin中不应用式(2)而设为以往的水平方向预测的预测值(预测块Pin的左面所邻接的已编码的像素的亮度值S(-1,y)),仅在比16×16像素小的块中应用式(2),从而相比于以往的水平方向预测,能够提高预测性能,并且抑制运算量的增加。
另外,在针对预测块Pin的帧内部预测模式的索引值是2(平均值预测)的情况下,将预测块Pin的上面所邻接的已编码的像素和预测块Pin的左面所邻接的已编码的像素的平均值作为预测块Pin内的像素的预测值而生成预测图像。
在帧内部预测模式的索引值是0(垂直方向预测)、1(水平方向预测)、2(平均值预测)以外的情况下,根据索引值表示的预测方向矢量υp=(dx,dy),生成预测块Pin内的像素的预测值。
如图9所示,如果以预测块Pin的左上像素为原点而将预测块Pin内的相对坐标设定为(x,y),则预测中使用的参照像素的位置成为下述L和邻接像素的交点。
其中,k是负的标量值。
在参照像素处于整数像素位置的情况下,将该整数像素设为预测对象像素的预测值,在参照像素不处于整数像素位置的情况下,将根据与参照像素邻接的整数像素而生成的插值像素设为预测值。
在图8的例子中,参照像素不处于整数像素位置,所以将根据与参照像素邻接的2个像素进行内插而得到的结果作为预测值。另外,并非仅根据邻接的2个像素,而也可以根据邻接的2个像素以上的像素来生成插值像素作为预测值。
通过增加插值处理中使用的像素,具有提高插值像素的插值精度的效果,另一方面,由于插值处理所需的运算的复杂度增加,所以在即使运算负荷大但仍要求高编码性能的运动图像编码装置的情况下,优选根据更多的像素来生成插值像素。
通过同样的步骤,生成与预测块Pin内的亮度信号的所有像素对应的预测像素而输出帧内部预测图像PINTRAin。
另外,关于帧内部预测图像PINTRAin的生成中使用的帧内部预测参数,为了复用到比特流而被输出到可变长编码部13。
另外,与之前说明的MPEG-4 AVC/H.264中的8×8像素的块的帧内部预测同样地,关于在进行帧内部预测时使用的像素,也可以并非使用已编码的邻接块内的像素自身,而是使用对这些像素实施滤波处理而得到的结果。
针对预测块Pin的色差信号,也通过与亮度信号同样的步骤,实施基于帧内部预测参数(帧内部预测模式)的帧内部预测处理,将帧内部预测图像的生成中使用的帧内部预测参数输出到可变长编码部13。
其中,在色差信号中可选择的帧内部预测参数(帧内部预测模式)无需与亮度信号相同,另外,关于垂直方向预测以及水平方向预测,也可以是以往(MPEG-4 AVC/H.264)的预测方法。
例如,在YUV信号4:2:0格式的情况下,色差信号(U、V信号)是相对亮度信号(Y信号)将分辨率在水平方向、垂直方向上都缩小为1/2而得到的信号,相比于亮度信号,图像信号的复杂性低且预测容易,所以可选择的帧内部预测参数(帧内部预测模式)的数量比亮度信号少,关于垂直方向预测以及水平方向预测也设为以往的简易的预测方法,从而几乎不会降低预测效率而能够实现对帧内部预测参数(帧内部预测模式)进行编码所需的符号量的削减、预测处理的低运算化。
另外,关于作为垂直方向预测中使用的缩放值的1/t、和作为水平方向预测中使用的缩放值的1/u,也可以预先在运动图像编码装置以及运动图像解码装置之间约定,但也可以由运动图像编码装置的帧内部预测部4按照序列单位或者图片单位,将t、u输出到可变长编码部13,可变长编码部13对t、u进行可变长编码而包含到比特流中,运动图像解码装置从比特流对t、u进行可变长解码来使用。
这样能够按照序列单位或者图片单位对t、u进行自适应控制,从而能够实现进一步与输入图像的影像信号的特性对应的预测处理。
另外,关于使用式(1)的垂直方向预测、式(2)的水平方向预测的块尺寸,也可以预先在运动图像编码装置以及运动图像解码装置之间约定,但也可以由运动图像编码装置的帧内部预测部4按照序列单位或者图片单位,将表示使用式(1)的垂直方向预测、式(2)的水平方向预测的块尺寸的每个块尺寸的ON(开)/OFF(关)标志输出到可变长编码部13,可变长编码部13对上述ON/OFF标志进行可变长编码而包含到比特流中,运动图像解码装置从比特流对上述ON/OFF标志进行可变长解码而使用。
这样能够按照序列单位或者图片单位对使用式(1)的垂直方向预测、式(2)的水平方向预测的块尺寸进行自适应控制,从而能够实现进一步与输入图像的影像信号的特性对应的预测处理。
接下来,具体说明图3的运动图像解码装置的处理内容。
可变长解码部31如果输入了由图1的运动图像编码装置生成的比特流,则实施针对该比特流的可变长解码处理(图4的步骤ST21),按照由1帧以上的图片构成的序列单位、或者图片单位,对帧尺寸的信息进行解码。
此时,在垂直方向预测中使用的缩放值的参数t、水平方向预测中使用的缩放值的参数u、表示使用式(1)的垂直方向预测、式(2)的水平方向预测的块尺寸的每个块尺寸的ON/OFF标志中,只要任意一个被可变长编码并被复用到比特流的情况下,就按照由图1的运动图像编码装置编码了的单位(序列单位或者图片单位)进行解码。
可变长解码部31通过与运动图像编码装置同样的步骤,决定由图1的运动图像编码装置的编码控制部2决定的最大编码块尺寸以及分割层次数的上限(步骤ST22)。
例如,在根据影像信号的分辨率决定了最大编码块尺寸、分割层次数上限的情况下,根据所解码的帧尺寸信息,通过与运动图像编码装置同样的步骤来决定最大编码块尺寸。
最大编码块尺寸以及分割层次数上限在运动图像编码装置侧被复用到比特流中的情况下,使用从比特流解码得到的值。
以后,在运动图像解码装置中,将上述最大编码块尺寸称为最大解码块尺寸,将最大编码块称为最大解码块。
可变长解码部31按照所决定的最大解码块单位,对图6所示那样的最大解码块的分割状态进行解码。根据所解码的分割状态,层次性地确定解码块(与图1的运动图像编码装置的“编码块”相当的块)(步骤ST23)。
接下来,可变长解码部31解码对解码块分配的编码模式。根据所解码的编码模式中包含的信息,将解码块进一步分割为一个或多个预测处理单位即预测块,解码对预测块单位分配的预测参数(步骤ST24)。
在对解码块分配的编码模式是帧内部编码模式的情况下,可变长解码部31针对包含在解码块中且成为预测处理单位的一个以上的预测块的每一个,对帧内部预测参数进行解码。
进而,可变长解码部31根据预测差分编码参数中包含的变换块尺寸的信息,将解码块分割为成为变换处理单位的一个或多个变换块,针对每个变换块,对压缩数据(变换/量化后的变换系数)进行解码(步骤ST24)。
在切换开关33中,如果由可变长解码部31可变长解码了的编码模式m(Bn)是帧内部编码模式(m(Bn)∈INTRA的情况),则将由可变长解码部31可变长解码了的预测块单位的帧内部预测参数输出到帧内部预测部34。
另一方面,如果由可变长解码部31可变长解码了的编码模式m(Bn)是帧间编码模式(m(Bn)∈INTER的情况),则将由可变长解码部31可变长解码了的预测块单位的帧间预测参数以及运动矢量输出到运动补偿部35。
帧内部预测部34在由可变长解码部31可变长解码了的编码模式m(Bn)是帧内部编码模式(m(Bn)∈INTRA)的情况下(步骤ST25),接收从切换开关33输出的预测块单位的帧内部预测参数,通过与图1的帧内部预测部4同样的步骤,一边参照帧内部预测用存储器37中储存的解码图像,一边实施使用了上述帧内部预测参数的针对解码块Bn内的各预测块Pin的帧内部预测处理,生成帧内部预测图像PINTRAin(步骤ST26)。
即,帧内部预测部34在针对预测块Pin的帧内部预测模式的索引值是0(垂直方向预测)的情况下,根据上述式(1)计算预测块Pin内的像素的预测值,生成帧内部预测图像PINTRAin。
另外,在针对预测块Pin的帧内部预测模式的索引值是1(水平方向预测)的情况下,根据上述式(2)计算预测块Pin内的像素的预测值,生成帧内部预测图像PINTRAin。
但是,在使用式(1)的垂直方向预测、式(2)的水平方向预测的块尺寸被限制了的情况下,在使用式(1)的垂直方向预测、式(2)的水平方向预测的块尺寸以外的尺寸的预测块Pin中通过以往(MPEG-4 AVC/H.264)的垂直方向预测及水平方向预测进行帧内部预测处理。
运动补偿部35在由可变长解码部31可变长解码了的编码模式m(Bn)是帧间编码模式(m(Bn)∈INTER)的情况下(步骤ST25),接收从切换开关33输出的预测块单位的运动矢量和帧间预测参数,一边参照运动补偿预测帧存储器39中储存的滤波处理后的解码图像,一边实施使用了上述运动矢量和帧间预测参数的针对解码块内的各预测块Pin的帧间预测处理来生成帧间预测图像PINTERin(步骤ST27)。
逆量化/逆变换部32如果从可变长解码部31接收到压缩数据以及预测差分编码参数,则通过与图1的逆量化/逆变换部8同样的步骤,参照该预测差分编码参数,对该压缩数据进行逆量化,并且参照该预测差分编码参数,实施针对作为逆量化后的压缩数据的变换系数的逆正交变换处理,计算与从图1的逆量化/逆变换部8输出的局部解码预测差分信号相同的解码预测差分信号(步骤ST28)。
加法部36将由逆量化/逆变换部32计算出的解码预测差分信号、与由帧内部预测部34生成的帧内部预测图像PINTRAin和由运动补偿部35生成的帧间预测图像PINTERin中的某一方进行相加而计算出解码图像,并输出到环路滤波器部38,并且将该解码图像储存到帧内部预测用存储器37中(步骤ST29)。
该解码图像成为在以后的帧内部预测处理时使用的已解码的图像信号。
在环路滤波器部38中,如果针对所有解码块Bn的步骤ST23~ST29的处理完成(步骤ST30),则对从加法部36输出的解码图像实施规定的滤波处理,将滤波处理后的解码图像储存到运动补偿预测帧存储器39中(步骤ST31)。
另外,关于环路滤波器部38的滤波处理,即可以以所输入的解码图像的最大解码块或者各个解码块为单位来进行,也可以在输入了1个图片量的解码图像之后集中1个图片量来进行。
另外,作为规定的滤波处理的例子,可以举出以使编码块边界的不连续性(块噪声)不会变得显著的方式对块边界进行滤波的处理、对解码图像的失真进行补偿的滤波处理等。
该解码图像成为运动补偿预测用的参照图像,并且成为再生图像。
根据以上可知,根据该实施方式1,运动图像编码装置的帧内部预测部4构成为在生成预测图像时的帧内预测处理是水平方向预测处理的情况下,对预测块的左面所邻接的像素的亮度值相加与预测块的上面所邻接的像素的水平方向的亮度值变化量成比例的值,将该相加后的值决定为预测图像的预测值,在生成预测图像时的帧内预测处理是垂直方向预测处理的情况下,对预测块的上面所邻接的像素的亮度值相加与预测块的左面所邻接的像素的垂直方向的亮度值变化量成比例的值,将该相加后的值决定为预测图像的预测值,所以起到即使在信号值沿着预测方向而变化的情况下也能够实现高精度的预测来提高图像质量的效果。
另外,根据该实施方式1,运动图像解码装置的帧内部预测部34构成为在生成预测图像时的帧内预测处理是水平方向预测处理的情况下,对预测块的左面所邻接的像素的亮度值相加与预测块的上面所邻接的像素的水平方向的亮度值变化量成比例的值,将该相加后的值决定为预测图像的预测值,在生成预测图像时的帧内预测处理是垂直方向预测处理的情况下,对预测块的上面所邻接的像素的亮度值相加与预测块的左面所邻接的像素的垂直方向的亮度值变化量成比例的值,将该相加后的值决定为预测图像的预测值,所以起到即使在信号值沿着预测方向而变化的情况下也能够实现高精度的预测来提高图像质量的效果。
根据该实施方式1,关于由帧内部预测部4、34实施水平方向预测处理时所使用的缩放值即1/u,构成为越是与从预测块的上面所邻接的像素起距离远的行有关的缩放值,设定为越小的值,所以越是与预测块的上面所邻接的像素之间的距离远而相关变低的像素,越能够使预测块的上面所邻接的像素的影响变小,其结果,起到能够高精度地进行预测的效果。
另外,关于由帧内部预测部4、34实施垂直方向预测处理时所使用的缩放值即1/t,构成为越是与从预测块的左面所邻接的像素起距离远的列有关的缩放值,设定为越小的值,所以越是与预测块的左面所邻接的像素之间的距离远而相关变低的像素,越能够使预测块的左面所邻接的像素的影响变小,其结果,起到能够高精度地进行预测的效果。
另外,在该实施方式1中,示出了由帧内部预测部4、34实施水平方向预测处理时的预测块内的第N行(从预测块的上端起第N行)的缩放值是1/2N+1(=1/2,1/4,1/8,1/16,···)、由帧内部预测部4、34实施垂直方向预测处理时的预测块内的第M列(从预测块的左端起第M列)的缩放值是1/2M+1(=1/2,1/4,1/8,1/16,···)的例子,但这只是一个例子,只要由帧内部预测部4、34实施水平方向预测处理时越是从预测块的上端远离的行的缩放值越小、并且由帧内部预测部4、34实施垂直方向预测处理时越是从预测块的左端远离的列的缩放值越小,就可以是任意值。
实施方式2.
在上述实施方式1中,帧内部预测部4、34在生成预测图像时的帧内预测处理是垂直方向预测处理的情况下,对预测块的上面所邻接的像素的亮度值,相加对该预测块的左面所邻接的像素的垂直方向的亮度值变化量乘以针对预测块内的每列设定的缩放值而得到的值,将该相加后的值决定为预测图像的预测值,但为了实现低运算的处理,也可以关于从预测块内的左端起的规定的几列,对该预测块的上面所邻接的像素的亮度值,相加与该预测块的左面所邻接的像素的垂直方向的亮度值变化量成比例的值,将该相加后的值决定为预测图像的预测值,但关于该预测块内的剩余的列,将该预测块的上面所邻接的像素的亮度值决定为预测图像的预测值。
另外,根据同样的理由,在生成预测图像时的帧内预测处理是水平方向预测处理的情况下,也可以关于从预测块内的上端起的规定的几行,对该预测块的左面所邻接的像素的亮度值,相加对该预测块的上面所邻接的像素的水平方向的亮度值变化量乘以针对预测块内的每行设定的缩放值而得到的值,将该相加后的值决定为预测图像的预测值,但关于该预测块内的剩余的行,将该预测块的左面所邻接的像素的亮度值决定为预测图像的预测值。
以下,具体说明帧内部预测部4、34的处理内容。
帧内部预测部4、34在针对预测块Pin的帧内部预测模式的索引值是0(垂直方向预测)的情况下,根据下述式(4)计算预测块Pin内的像素的预测值来生成预测图像。
其中,B是0以上的整数,在应用式(4)的上式的x<B时,在所计算出的预测值超过亮度值可取的值的范围的情况下,以使预测值收敛于该范围内的方式对值进行舍入。
使B的值越小,能够实现越低运算的处理,在B=0的情况下,与仅使用预测块Pin的上面所邻接的已编码(已解码)像素的亮度值S(x,-1)的以往(MPEG-4 AVC/H.264)的垂直方向预测一致。
B的值也可以根据预测块Pin的块尺寸而变更。一般,如果所预测的块尺寸变大,则在块内易于包含各种信号变化,难以在单一的方向上进行预测,所以能够利用方向性预测高精度地进行预测的情形减少。
因此,仅在预测块Pin的块尺寸小于规定尺寸的情况下设定为B≥1,如果预测块Pin的块尺寸是规定尺寸以上,则设为B=0。
例如,如果规定尺寸是16×16像素,则在16×16像素以上的块尺寸的预测块Pin中成为B=0,所以与以往的垂直方向预测相同,能够抑制运算处理的增加。即,在B=0的块尺寸中,属于x<B或x≥B中的哪一个的条件判定处理变得不需要,所以始终不进行上述条件判定处理而进行以往的垂直方向预测,从而不会发生任何由以往的垂直方向预测处理所致的运算处理的增加。
另一方面,在4×4像素、8×8像素等比16×16像素小的块尺寸的预测块Pin中,成为B≥1,所以相比于以往的垂直方向预测,能够提高预测性能。
例如,在4×4像素的块尺寸的预测块Pin中,在是B=1的情况下,针对预测块Pin内的最左边的列,应用式(4)的上式,相加与预测块的左面所邻接的像素的垂直方向的亮度值变化量成比例的值。
另一方面,针对预测块Pin内的从左端起的第2~第4列,应用式(4)的下式,不相加与预测块的左面所邻接的像素的垂直方向的亮度值变化量成比例的值。
通过这样将B的值设定为小的值,能够大幅抑制运算量的增加。
另外,作为实际的装置,也可以如上述式(4)所示,在x<B的位置的像素和x≥B的位置的像素中,区分地构成预测值的计算式,还可以构成为针对预测块Pin内的所有像素,在拷贝了作为以往的垂直方向预测的预测值的预测块Pin的上面所邻接的已编码(已解码)像素的亮度值S(x,-1)之后,仅对x<B的位置的像素相加将S(-1,y)-S(-1,-1)缩放为1/t而得到的值等,只要能够计算与上述式等价的预测值,则可以任意地构成。
另外,帧内部预测部4、34在针对预测块Pin的帧内部预测模式的索引值是1(水平方向预测)的情况下,根据下述式(5)计算预测块Pin内的像素的预测值来生成预测图像。
其中,C是0以上的整数,在应用式(5)的上式的x<C时,在所计算出的预测值超过亮度值可取的值的范围的情况下,以使预测值收敛于该范围内的方式对值进行舍入。
使C的值越小,能够实现越低运算的处理,在C=0的情况下,与仅使用预测块Pin的左面所邻接的已编码(已解码)像素的亮度值S(-1,y)的以往(MPEG-4 AVC/H.264)的水平方向预测一致。
C的值也可以根据预测块Pin的块尺寸而变更。一般,如果所预测的块尺寸变大,则在块内易于包含各种信号变化,难以在单一的方向上进行预测,所以能够通过方向性预测来高精度地进行预测的情形减少。
因此,仅在预测块Pin的块尺寸比规定尺寸小的情况下设定为C≥1,如果预测块Pin的块尺寸是规定尺寸以上,则设为C=0。
例如,如果规定尺寸是16×16像素,则在16×16像素以上的块尺寸的预测块Pin中,成为C=0,所以与以往的水平方向预测相同,能够抑制运算处理的增加。即,在C=0的块尺寸中,属于y<C或y≥C中的哪一个的条件判定处理变得不需要,所以始终不进行上述条件判定处理而进行以往的水平方向预测,从而不会发生任何由以往的水平方向预测处理所致的运算处理的增加。
另一方面,在4×4像素、8×8像素等比16×16像素小的块尺寸的预测块Pin中,成为C≥1,所以相比于以往的水平方向预测,能够提高预测性能,并且大幅抑制运算量的增加。
例如,在4×4像素的块尺寸的预测块Pin中,在是C=1的情况下,针对预测块Pin内的最上面的行,应用式(5)的上式,相加与预测块的上面所邻接的像素的水平方向的亮度值变化量成比例的值。
另一方面,针对预测块Pin内的从上端起的第2~第4行,应用式(5)的下式,不相加与预测块的上面所邻接的像素的水平方向的亮度值变化量成比例的值。
通过这样将C的值设定为小的值,能够大幅抑制运算量的增加。
另外,作为实际的装置,也可以如上述式(5)所示,在y<C的位置的像素和y≥C的位置的像素中,区分地构成预测值的计算式,还可以构成为针对预测块Pin内的所有像素,在拷贝了作为以往的水平方向预测的预测值的预测块Pin的左面所邻接的已编码(已解码)像素的亮度值S(-1,y)之后,仅对y<C的位置的像素相加将S(x,-1)-S(-1,-1)缩放为1/u而得到的值等,只要能够计算与上述式等价的预测值,就可以任意地构成。
另外,关于作为在垂直方向预测中使用的缩放值的1/t、B(对预测块的上面所邻接的像素的亮度值相加与编码块的左面所邻接的像素的垂直方向的亮度值变化量成比例的值的表示预测块内的列的块内信息)、和作为在水平方向预测中使用的缩放值的1/u、C(对预测块的左面所邻接的像素的亮度值相加与预测块的上面所邻接的像素的水平方向的亮度值变化量成比例的值的表示预测块内的行的块内信息),也可以预先在运动图像编码装置以及运动图像解码装置之间约定,但也可以由运动图像编码装置的帧内部预测部4按照序列单位或者图片单位,将t、u、B、C输出到可变长编码部13,由可变长编码部13对t、u、B、C进行可变长编码而包含到比特流中,并由运动图像解码装置从比特流对t、u、B、C进行可变长解码来使用。
这样按照序列单位或者图片单位,能够自适应地控制t、u、B、C,从而能够实现进一步与输入图像的影像信号的特性对应的预测处理。
另外,关于使用式(4)的垂直方向预测、式(5)的水平方向预测的块尺寸,也可以预先在运动图像编码装置以及运动图像解码装置之间约定,但也可以由运动图像编码装置的帧内部预测部4按照序列单位或者图片单位,将表示使用式(4)的垂直方向预测、式(5)的水平方向预测的块尺寸的每个块尺寸的ON/OFF标志输出到可变长编码部13,由可变长编码部13对上述ON/OFF标志进行可变长编码而包含到比特流中,并由运动图像解码装置从比特流对上述ON/OFF标志进行可变长解码来使用。
这样按照序列单位或者图片单位,能够自适应地控制使用式(4)的垂直方向预测、式(5)的水平方向预测的块尺寸,从而能够实现进一步与输入图像的影像信号的特性对应的预测处理。
通过以上可知,根据该实施方式2,帧内部预测部4、34构成为在生成预测图像时的帧内预测处理是水平方向预测处理的情况下,关于从预测块内的上端起的规定的几行,对该预测块的左面所邻接的像素的亮度值,相加与该预测块的上面所邻接的像素的水平方向的亮度值变化量成比例的值,将该相加后的值决定为预测图像的预测值,但关于该预测块内的剩余的行,将该预测块的左面所邻接的像素的亮度值决定为预测图像的预测值,所以起到能够抑制运算量的增加并且改善水平方向预测的预测效率的效果。
另外,帧内部预测部4、34构成为在生成预测图像时的帧内预测处理是垂直方向预测处理的情况下,关于从预测块内的左端起的规定的几列,对该预测块的上面所邻接的像素的亮度值,相加与该预测块的左面所邻接的像素的垂直方向的亮度值变化量成比例的值,将该相加后的值决定为预测图像的预测值,但关于该预测块内的剩余的列,将该预测块的上面所邻接的像素的亮度值决定为预测图像的预测值,所以起到能够抑制运算量的增加并且改善垂直方向预测的预测效率的效果。
实施方式3.
该实施方式3中的运动图像编码装置的结构图与上述实施方式1中示出的图1相同,该实施方式3中的运动图像解码装置的结构图与上述实施方式1中示出的图3相同。
接下来,说明动作。
在该实施方式3中,说明如下的运动图像编码装置和运动图像解码装置,其中,该运动图像编码装置将影像的各帧图像作为输入图像,实施从已编码的附近像素进行的帧内部预测或者邻近帧间的运动补偿预测,针对所得到的预测差分信号实施基于正交变换/量化的压缩处理,之后进行可变长编码来生成比特流,该运动图像解码装置对从该运动图像编码装置输出的比特流进行解码。
图1的运动图像编码装置的特征在于,适应于影像信号的空间/时间方向的局部性的变化,而将影像信号分割为各种尺寸的块,来进行帧内/帧间自适应编码。
一般,影像信号具有在空间/时间上信号的复杂度局部地变化的特性。在空间上观察时,有时在某个影像帧上,例如既有在天空、壁等那样的比较宽的图像区域中具有均匀的信号特性的图样,也混合存在人物或包含细微的纹理的绘画等在小的图像区域内具有复杂的纹理图案的图样。
即使在时间上观察,虽然关于天空、壁,局部性地时间方向的图样的变化小,但关于活动的人物、物体,由于其轮廓在时间上进行刚体/非刚体的运动,所以时间上的变化大。
在编码处理中,进行通过时间/空间上的预测来生成信号功率或熵小的预测差分信号从而削减整体的符号量的处理,但只要能够将预测中使用的参数均匀地应用于尽可能大的图像信号区域,就能够减小该参数的符号量。
另一方面,如果针对时间上/空间上变化大的图像信号图案,将同一预测参数应用于大的图像区域,则预测的错误增加,所以预测差分信号的符号量增加。
因此,在时间上/空间上变化大的区域中,优选减小应用同一预测参数来进行预测处理的块尺寸,增加预测中使用的参数的数据量,降低预测差分信号的功率/熵。
在该实施方式3中,为了进行与这样的影像信号的一般的性质适应的编码,采用如下结构:最初从规定的最大块尺寸开始预测处理等,层次性地分割影像信号的区域,针对所分割的每个区域,使预测处理、其预测差分的编码处理自适应化。
关于图1的运动图像编码装置设为处理对象的影像信号格式,除了由亮度信号和2个色差信号构成的YUV信号、从数字摄像元件输出的RGB信号等任意的颜色空间的彩色影像信号以外,还设为单色图像信号、红外线图像信号等影像帧由水平和垂直二维的数字采样(像素)列构成的任意的影像信号。
其中,各像素的灰度既可以是8比特,也可以是10比特、12比特等灰度。
在以下的说明中,为了方便,只要没有特别说明,就说明设为输入图像的影像信号是YUV信号、并且处理2个色差分量U、V相对亮度分量Y被子采样了的4:2:0格式的信号的情况。
另外,将与影像信号的各帧对应的处理数据单位称为“图片”。
在该实施方式3中,将“图片”设为依次扫描(逐行扫描)了的影像帧信号而进行说明,但在影像信号是隔行扫描信号的情况下,“图片”也可以是作为构成影像帧的单位的场图像信号。
最初,说明图1的运动图像编码装置的处理内容。
首先,编码控制部2决定成为编码对象的图片(当前图片)的编码中使用的最大编码块的尺寸、和对最大编码块进行层次分割的层次数的上限(图2的步骤ST1)。
作为最大编码块的尺寸的决定方法,例如既可以根据输入图像的影像信号的分辨率而对所有图片决定同一尺寸,也可以将输入图像的影像信号的局部性的运动的复杂度的差异作为参数而进行定量化,对于运动剧烈的图片决定小的尺寸,另一方面对于运动少的图片决定大的尺寸。
作为分割层次数的上限的决定方法,例如有根据输入图像的影像信号的分辨率针对所有图片决定同一层次数的方法、或在输入图像的影像信号的运动剧烈的情况下设定为增大层次数而能够检测更细微的运动且在运动少的情况下设定为抑制层次数的方法等。
另外,编码控制部2从可利用的1个以上的编码模式中选择与层次性地分割的各个编码块对应的编码模式(步骤ST2)。
即,编码控制部2针对最大编码块尺寸的每个图像区域,直至达到预先决定的分割层次数的上限为止,层次性地分割为具有编码块尺寸的编码块,决定针对各个编码块的编码模式。
在编码模式中有一个或多个帧内部编码模式(总称为“INTRA”)、和一个或多个帧间编码模式(总称为“INTER”),编码控制部2从在该图片中可利用的所有编码模式或者其子集中,选择与各个编码块对应的编码模式。
其中,由后述块分割部1层次性地分割的各个编码块被进一步分割为作为进行预测处理的单位的一个或多个预测块,预测块的分割状态也作为信息而被包含于编码模式中。
编码控制部2的编码模式的选择方法是公知的技术,所以省略详细的说明,例如有如下方法等:使用可利用的任意的编码模式来实施针对编码块的编码处理而验证编码效率,在可利用的多个编码模式中选择编码效率最佳的编码模式。
另外,编码控制部2针对各个编码块的每一个,决定在压缩差分图像时使用的量化参数以及变换块尺寸,并且决定在实施预测处理时使用的预测参数(帧内部预测参数或者帧间预测参数)。
其中,在编码块进一步被分割为进行预测处理的预测块单位的情况下,能够针对每个预测块选择预测参数(帧内部预测参数或者帧间预测参数)。
进而,在编码模式是帧内部编码模式的编码块中,由于在如后所述那样进行帧内部预测处理时使用与预测块邻接的已编码的像素,所以需要按照预测块单位进行编码,所以可选择的变换块尺寸被限制为预测块的尺寸以下。
编码控制部2将包括量化参数以及变换块尺寸的预测差分编码参数输出到变换/量化部7、逆量化/逆变换部8以及可变长编码部13。
另外,编码控制部2将帧内部预测参数根据需要而输出到帧内部预测部4。
另外,编码控制部2将帧间预测参数根据需要而输出到运动补偿预测部5。
如果输入了输入图像的影像信号,则块分割部1将该输入图像的影像信号分割为由编码控制部2决定的最大编码块尺寸,进而将分割了的最大编码块层次性地分割为由编码控制部2决定的编码块,并输出该编码块。
此处,图5是示出最大编码块被层次性地分割为多个编码块的例子的说明图。
在图5中,最大编码块是被记载为“第0层次”的亮度分量具有(L0,M0)的尺寸的编码块。
将最大编码块设为出发点,直至利用四叉树构造另行决定的规定的深度为止,层次性地进行分割,从而得到编码块。
在深度n中,编码块是尺寸(Ln,Mn)的图像区域。
其中,Ln和Mn既可以相同,也可以不同,但在图5中示出了Ln=Mn的情形。
以后,将由编码控制部2决定的编码块尺寸定义为编码块的亮度分量中的尺寸(Ln,Mn)。
由于进行四叉树分割,所以(Ln+1,Mn+1)=(Ln/2,Mn/2)始终成立。
另外,在RGB信号等所有颜色分量具有同一采样数的彩色影像信号(4:4:4格式)中,所有颜色分量的尺寸成为(Ln,Mn),但在处理4:2:0格式的情况下,所对应的色差分量的编码块尺寸成为(Ln/2,Mn/2)。
以后,设为用Bn来表示第n层次的编码块,用m(Bn)来表示在编码块Bn中可选择的编码模式。
在由多个颜色分量构成的彩色影像信号的情况下,编码模式m(Bn)既可以构成为针对每个颜色分量分别使用单独的模式,也可以构成为针对所有颜色分量使用共同的模式。以后,只要没有特别说明,就指与YUV信号、4:2:0格式的编码块的亮度分量对应的编码模式而进行说明。
编码块Bn如图6所示,通过块分割部1而被分割为表示预测处理单位的一个或多个预测块。
以后,将属于编码块Bn的预测块记载为Pin(i是第n层次中的预测块编号)。图5示出P00和P10的一个例子。
在编码模式m(Bn)中作为信息而包含有如何进行编码块Bn的预测块分割。
关于预测块Pin,全部依照编码模式m(Bn)进行预测处理,但能够针对每个预测块Pin,选择单独的预测参数(帧内部预测参数或者帧间预测参数)。
编码控制部2针对最大编码块,例如生成图6所示那样的块分割状态来确定编码块。
图6(a)的虚线所包围的矩形表示各编码块,各编码块内存在的用斜线涂覆的块表示各预测块的分割状态。
图6(b)是关于图6(a)的例子利用四叉树图形表示了通过层次分割来分配编码模式m(Bn)的状况的图。图6(b)的□所包围的节点是分配了编码模式m(Bn)的节点(编码块)。
该四叉树图形的信息与编码模式m(Bn)一起从编码控制部2输出到可变长编码部13而被复用到比特流。
切换开关3在由编码控制部2决定的编码模式m(Bn)是帧内部编码模式的情况(m(Bn)∈INTRA的情况)下,将从块分割部1输出的编码块Bn输出到帧内部预测部4。
另一方面,在由编码控制部2决定的编码模式m(Bn)是帧间编码模式的情况(m(Bn)∈INTER的情况)下,将从块分割部1输出的编码块Bn输出到运动补偿预测部5。
在帧内部预测部4中,如果由编码控制部2决定的编码模式m(Bn)是帧内部编码模式(m(Bn)∈INTRA的情况),且从切换开关3接收到编码块Bn(步骤ST3),则一边参照帧内部预测用存储器10中储存的局部解码图像,一边使用由编码控制部2决定的帧内部预测参数,来实施针对该编码块Bn内的各预测块Pin的帧内部预测处理而生成帧内部预测图像PINTRAin(步骤ST4)。
另外,运动图像解码装置需要生成与帧内部预测图像PINTRAin完全相同的帧内部预测图像,所以帧内部预测图像PINTRAin的生成中使用的帧内部预测参数从编码控制部2输出到可变长编码部13而被复用到比特流。
在后面详细叙述帧内部预测部4的处理内容。
在运动补偿预测部5中,如果由编码控制部2决定的编码模式m(Bn)是帧间编码模式(m(Bn)∈INTER的情况),且从切换开关3接收到编码块Bn(步骤ST3),则比较该编码块Bn内的各预测块Pin和运动补偿预测帧存储器12中储存的滤波处理后的局部解码图像来搜索运动矢量,使用该运动矢量和由编码控制部2决定的帧间预测参数,实施针对该编码块Bn内的各预测块Pin的帧间预测处理,生成帧间预测图像PINTERin(步骤ST5)。
另外,运动图像解码装置需要生成与帧间预测图像PINTERin完全相同的帧间预测图像,所以帧间预测图像PINTERin的生成中使用的帧间预测参数从编码控制部2输出到可变长编码部13而被复用到比特流。
另外,由运动补偿预测部5搜索到的运动矢量也输出到可变长编码部13而被复用到比特流。
减法部6如果从块分割部1接收到编码块Bn,则从该编码块Bn内的预测块Pin减去由帧内部预测部4生成的帧内部预测图像PINTRAin或者由运动补偿预测部5生成的帧间预测图像PINTERin中的某一方,将作为其相减结果的预测差分信号ein输出到变换/量化部7(步骤ST6)。
变换/量化部7如果从减法部6接收到预测差分信号ein,则参照由编码控制部2决定的预测差分编码参数,实施针对该预测差分信号ein的正交变换处理(例如,DCT(离散余弦变换)、对预先确定的学习序列进行了基底设计的KL变换等正交变换处理),计算变换系数。
另外,变换/量化部7参照该预测差分编码参数,对该变换系数进行量化,将作为量化后的变换系数的压缩数据输出到逆量化/逆变换部8以及可变长编码部13(步骤ST7)。
逆量化/逆变换部8如果从变换/量化部7接收到压缩数据,则参照由编码控制部2决定的预测差分编码参数,对该压缩数据进行逆量化。
另外,逆量化/逆变换部8参照该预测差分编码参数,实施针对作为逆量化后的压缩数据的变换系数的逆正交变换处理(例如,逆DCT、逆KL变换等),计算与从减法部6输出的预测差分信号ein相当的局部解码预测差分信号并输出到加法部9(步骤ST8)。
加法部9如果从逆量化/逆变换部8接收到局部解码预测差分信号,则将该局部解码预测差分信号、与由帧内部预测部4生成的帧内部预测图像PINTRAin和由运动补偿预测部5生成的帧间预测图像PINTERin中的某一方进行相加,从而计算局部解码图像(步骤ST9)。
另外,加法部9将该局部解码图像输出到环路滤波器部11,并且将该局部解码图像储存到帧内部预测用存储器10中。
该局部解码图像成为在以后的帧内部预测处理时使用的已编码的图像信号。
环路滤波器部11如果从加法部9接收到局部解码图像,则对该局部解码图像实施规定的滤波处理,将滤波处理后的局部解码图像储存到运动补偿预测帧存储器12中(步骤ST10)。
另外,关于由环路滤波器部11执行的滤波处理,既可以以所输入的局部解码图像的最大编码块或者各个编码块为单位进行,也可以在输入了1个图片量的局部解码图像之后集中1个图片量来进行。
另外,作为规定的滤波处理的例子,可以举出以使编码块边界的不连续性(块噪声)不会变得显著的方式对块边界进行滤波的处理、以使作为输入图像的图1的影像信号与局部解码图像之间的误差成为最小的方式对局部解码图像的失真进行补偿的滤波处理等。
但是,在进行以使作为输入图像的图1的影像信号与局部解码图像之间的误差成为最小的方式对局部解码图像的失真进行补偿的滤波处理的情况下,需要在环路滤波器部11中参照影像信号,所以需要变更图1的运动图像编码装置使得对环路滤波器部11输入影像信号。
直至针对层次性地分割了的所有编码块Bn的处理完成为止重复实施步骤ST3~ST9的处理,如果针对所有编码块Bn的处理完成,则转移到步骤ST13的处理(步骤ST11、ST12)。
可变长编码部13对从变换/量化部7输出的压缩数据、从编码控制部2输出的最大编码块内的块分割信息(以图6(b)为例子的四叉树信息)、编码模式m(Bn)以及预测差分编码参数、从编码控制部2输出的帧内部预测参数(编码模式是帧内部编码模式的情况)或者帧间预测参数(编码模式是帧间编码模式的情况)、以及从运动补偿预测部5输出的运动矢量(编码模式是帧间编码模式的情况)进行可变长编码,生成表示这些编码结果的比特流(步骤ST13)。
接下来,详细说明帧内部预测部4的处理内容。
图17是示出编码块Bn内的各预测块Pin可选择的帧内部预测参数(帧内部预测模式)的一个例子的说明图。其中,NI表示帧内部预测模式数。
在图17中,示出帧内部预测模式和该帧内部预测模式所表示的预测方向矢量,在图17的例子中,进行设计使得随着可选择的帧内部预测模式的个数增加而使预测方向矢量彼此的相对角度变小。
帧内部预测部4如上述那样参照预测块Pin的帧内部预测参数,实施针对该预测块Pin的帧内部预测处理,生成帧内部预测图像PINTRAin,但此处说明生成亮度信号中的预测块Pin的帧内部预测信号的帧内部处理。
将预测块Pin的尺寸设为lin×min像素。
图8是示出生成lin=min=4的情况的预测块Pin内的像素的预测值时使用的像素的一个例子的说明图。
在图8中,将预测块Pin的上面的已编码的像素(2×lin+1)个、和左面的已编码的像素(2×min)个设为预测中使用的像素,但预测中使用的像素既可以多于图8所示的像素也可以少于图8所示的像素。
另外,在图8中,将预测块Pin的附近的1行或者1列量的像素用于预测,但也可以将2行或2列、或者其以上的像素用于预测。
在针对预测块Pin的帧内部预测模式的索引值是0(平面(Planar)预测)的情况下,将使用预测块Pin的上面所邻接的已编码的像素和预测块Pin的左面所邻接的已编码的像素根据预测块Pin内的预测对象像素与上述邻接像素之间的距离进行内插而得到的值作为预测值,生成预测图像。
在针对预测块Pin的帧内部预测模式的索引值是1(垂直方向预测)的情况下,根据下述式(1)计算预测块Pin内的像素的预测值来生成预测图像。
S'(x,y)=S(x,-1)+(S(-1,y)-S(-1,-1))/t (1)
其中,坐标(x,y)是以预测块Pin内的左上像素为原点的相对坐标(参照图9),S’(x,y)是坐标(x,y)中的预测值,S(x,y)是坐标(x,y)中的已编码的像素的亮度值(解码了的亮度值)。
这样,对作为以往(MPEG-4 AVC/H.264)的垂直方向预测的预测值的预测块Pin的上面所邻接的已编码的像素的亮度值S(x,-1),相加与预测块Pin的左面所邻接的已编码的像素(图10的粗框所包围的像素)的表示垂直方向的亮度值的变化量的S(-1,y)-S(-1,-1)成比例的值(将表示垂直方向的亮度值的变化量的S(-1,y)-S(-1,-1)缩放为1/t而得到的值),将该相加后的值决定为预测图像的预测值,从而能够实现追随向预测方向的亮度值的变化的垂直方向预测。
但是,在上述预测值未收敛于亮度值可取的值的范围内的情况下,也可以对值进行舍入使得收敛于该范围内。由此,虽然与进行舍入处理相应地运算量稍微增加,但能够抑制成为亮度值可取的值的范围外的预测值的发生从而减少预测误差。
另外,上述1/t也可以设为固定值,但还可以设为根据坐标(x,y)而变化的变量。
例如,如果设为t=2x+1,则如图11所示,缩放值从左端的列起依次如1/2、1/4、1/8、1/16那样变小,所以从预测块Pin的左面所邻接的已编码的像素起的距离越远,相加的垂直方向的亮度值的变化量越小。
由此,越是与预测块Pin的左面所邻接的已编码的像素之间的距离远而相关变低的预测对象像素,越能够使预测块Pin的左面所邻接的已编码的像素的影响变小,所以能够进行和与预测块Pin的左面所邻接的已编码的像素之间的相关对应的高精度的预测。
另外,在t=2x+1的情况下,能够如下所述通过基于比特移位(bit shift)的式来表现式(1)。
S′(x,y)=S(x,-1)+(S(-1,y)-S(-1,-1))>>(x+1) (Ia)
在式(1a)中,“>>a”表示向右算术移位a比特的运算。
通过使用移位运算来代替式(1)的除法,从而在计算机上安装的情况下能够实现高速的运算。
但是,S(-1,y)-S(-1,-1)还可以取负值,所以有时根据安装环境(编译器)等,“>>”并非被处理为算术移位而被处理为逻辑移位,计算结果与式(1)不同。
因此,作为不依赖于安装环境的t=2x+1的情况的式(1)的近似式,可以举出下述式(1b)。
S′(x,y)=S(x,-1)+S(-1,y)>>(x+1)-S(-1,-1)>>(x+1) (1b)
在式(1b)中,使亮度值S(-1,y)、S(-1,-1)分别先向右移位(x+1)比特之后进行减法运算,所以如果用正值来定义亮度值,则算术移位、逻辑移位都得到同一计算结果。
另外,进行式(1)的预测处理的预测块Pin的块尺寸也可以限定为特定的尺寸。一般,在大的块尺寸中,在块内易于包含各种信号变化,能够使用方向性预测而高精度地预测的情形少,所以例如在16×16像素以上的块尺寸的预测块Pin中,不应用式(1),而作为以往的垂直方向预测的预测值(预测块Pin的上面所邻接的已编码的像素的亮度值S(x,-1)),仅在比16×16像素小的块中应用式(1),从而相比于以往的垂直方向预测,能够提高预测性能并且抑制运算量的增加。
另外,在针对预测块Pin的帧内部预测模式的索引值是2(水平方向预测)的情况下,根据下述式(2)计算预测块Pin内的像素的预测值来生成预测图像。
S′(x,y)=S(-1,y)+(S(x,-1)-S(-1,-1))/u (2)
其中,坐标(x,y)是以预测块Pin内的左上像素为原点的相对坐标(参照图9),S’(x,y)是坐标(x,y)中的预测值,S(x,y)是坐标(x,y)中的已编码的像素的亮度值(解码了的亮度值)。
这样,对作为以往(MPEG-4 AVC/H.264)的水平方向预测的预测值的预测块Pin的左面所邻接的已编码的像素的亮度值S(-1,y),相加与预测块Pin的上面所邻接的已编码的像素(图12的粗框所包围的像素)的表示水平方向的亮度值的变化量的S(x,-1)-S(-1,-1)成比例的值(将表示水平方向的亮度值的变化量的S(x,-1)-S(-1,-1)缩放为1/u而得到的值),将该相加后的值决定为预测图像的预测值,从而能够实现追随向预测方向的亮度值的变化的水平方向预测。
但是,在上述预测值未收敛于亮度值可取的值的范围内的情况下,也可以对值进行舍入使得收敛于该范围内。由此,虽然与进行舍入处理相应地运算量稍微增加,但能够抑制成为亮度值可取的值的范围外的预测值的发生而减少预测误差。
另外,上述1/u也可以设为固定值,但还可以设为根据坐标(x,y)而变化的变量。
例如,如果设为u=2y+1,则如图13所示,缩放值从上端的行起依次如1/2、1/4、1/8、1/16那样变小,所以从预测块Pin的上面所邻接的已编码的像素起的距离越远,相加的水平方向的亮度值的变化量越小。
由此,越是与预测块Pin的上面所邻接的已编码的像素之间的距离远而相关变低的像素,越能够使预测块Pin的上面所邻接的已编码的像素的影响变小,所以能够进行和与预测块Pin的上面所邻接的已编码的像素之间的相关对应的高精度的预测。
另外,在u=2y+1的情况下,能够如下所述通过基于比特移位的式来表现式(2)。
S'(x,y)=S(-1,y)+(S(x,-1)-S(-1,-1))>>(y+1) (2a)
在式(2a)中,“>>a”表示向右算术移位a比特的运算。
通过使用移位运算来代替式(2)的除法,从而在计算机上安装的情况下能够实现高速的运算。
但是,S(x,-1)-S(-1,-1)也可以取负值,所以有时根据安装环境(编译器)等,“>>”并非被处理为算术移位而被处理为逻辑移位,计算结果与式(2)不同。
因此,作为不依赖于安装环境的u=2y+1的情况的式(2)的近似式,可以举出下述式(2b)。
S'(x,y)=S(-1,y)+S(x,-1)>>(y+1)-S(-1,-1)>>(y+1) (2b)
在式(2b)中,使亮度值S(x,-1)、S(-1,-1)分别先向右移位(y+1)比特之后进行减法运算,所以如果用正值来定义亮度值,则算术移位、逻辑移位都得到同一计算结果。
另外,进行式(2)的预测处理的预测块Pin的块尺寸也可以限定为特定的尺寸。一般,在大的块尺寸中,在块内易于包含各种信号变化,能够使用方向性预测而高精度地预测的情形少,所以例如在16×16像素以上的块尺寸的预测块Pin中,不应用式(2),而设为以往的水平方向预测的预测值(预测块Pin的左面所邻接的已编码的像素的亮度值S(-1,y)),仅在比16×16像素小的块中应用式(2),从而相比于以往的水平方向预测,能够提高预测性能并且抑制运算量的增加。
另外,在针对预测块Pin的帧内部预测模式的索引值是3(平均值(DC)预测)的情况下,将预测块Pin的上面所邻接的已编码的像素和预测块Pin的左面所邻接的已编码的像素的平均值作为预测块Pin内的像素的预测值而生成预测图像。
在帧内部预测模式的索引值是0(平面(Planar)预测)、1(垂直方向预测)、2(水平方向预测)、3(平均值(DC)预测)以外的情况下,根据索引值表示的预测方向矢量υp=(dx,dy),生成预测块Pin内的像素的预测值。
如图9所示,如果以预测块Pin的左上像素为原点而将预测块Pin内的相对坐标设定为(x,y),则预测中使用的参照像素的位置成为下述L和邻接像素的交点。
其中,k是负的标量值。
在参照像素处于整数像素位置的情况下,将该整数像素设为预测对象像素的预测值,在参照像素不处于整数像素位置的情况下,将根据与参照像素邻接的整数像素而生成的插值像素设为预测值。
在图8的例子中,参照像素不处于整数像素位置,所以将根据与参照像素邻接的2个像素进行内插而得到的结果作为预测值。另外,不仅是邻接的2个像素,也可以根据邻接的2个像素以上的像素生成插值像素而作为预测值。
通过增加插值处理中使用的像素,从而具有提高插值像素的插值精度的效果,另一方面,由于插值处理所需的运算的复杂度增加,所以在即使运算负荷大也仍要求高的编码性能的运动图像编码装置的情况下,优选根据更大量的像素生成插值像素。
通过同样的步骤,生成与预测块Pin内的亮度信号的所有像素对应的预测像素而输出帧内部预测图像PINTRAin。
另外,帧内部预测图像PINTRAin的生成中使用的帧内部预测参数为了复用到比特流而被输出到可变长编码部13。
另外,与之前说明的MPEG-4 AVC/H.264中的8×8像素的块的帧内部预测同样地,关于在进行帧内部预测时使用的像素,也可以并非使用已编码的邻接块内的像素自身,而是使用对这些像素实施滤波处理而得到的结果。
针对预测块Pin的色差信号,也通过与亮度信号同样的步骤,实施基于帧内部预测参数(帧内部预测模式)的帧内部预测处理,将帧内部预测图像的生成中使用的帧内部预测参数输出到可变长编码部13。
但是,在色差信号中可选择的帧内部预测参数(帧内部预测模式)无需与亮度信号相同,另外,关于垂直方向预测以及水平方向预测,也可以是以往(MPEG-4 AVC/H.264)的预测方法。
例如,在YUV信号4:2:0格式的情况下,色差信号(U、V信号)是相对亮度信号(Y信号)将分辨率在水平方向、垂直方向上都缩小为1/2而得到的信号,相比于亮度信号,图像信号的复杂性低且预测容易,所以可选择的帧内部预测参数(帧内部预测模式)的数量少于亮度信号,对于垂直方向预测以及水平方向预测也设为以往的简易的预测方法,从而几乎不会降低预测效率而能够实现对帧内部预测参数(帧内部预测模式)进行编码而所需的符号量的削减、预测处理的低运算化。
另外,关于作为垂直方向预测中使用的缩放值的1/t、和作为水平方向预测中使用的缩放值的1/u,也可以预先在运动图像编码装置以及运动图像解码装置之间约定,但也可以由运动图像编码装置的帧内部预测部4按照序列单位或者图片单位,将t、u输出到可变长编码部13,由可变长编码部13对t、u进行可变长编码而包含到比特流中,并由运动图像解码装置从比特流对t、u进行可变长解码来使用。
这样按照序列单位或者图片单位,自适应地控制t、u,从而能够实现进一步与输入图像的影像信号的特性对应的预测处理。
另外,关于使用式(1)的垂直方向预测、式(2)的水平方向预测的块尺寸,也可以预先在运动图像编码装置以及运动图像解码装置之间约定,但也可以由运动图像编码装置的帧内部预测部4按照序列单位或者图片单位,将表示使用式(1)的垂直方向预测、式(2)的水平方向预测的块尺寸的每个块尺寸的ON/OFF标志输出到可变长编码部13,由可变长编码部13对上述ON/OFF标志进行可变长编码而包含到比特流中,并由运动图像解码装置从比特流对上述ON/OFF标志进行可变长解码来使用。
这样能够按照序列单位或者图片单位,自适应地控制使用式(1)的垂直方向预测、式(2)的水平方向预测的块尺寸,从而能够实现进一步与输入图像的影像信号的特性对应的预测处理。
接下来,具体说明图3的运动图像解码装置的处理内容。
可变长解码部31如果输入了由图1的运动图像编码装置生成的比特流,则实施针对该比特流的可变长解码处理(图4的步骤ST21),按照由1帧以上的图片构成的序列单位、或者图片单位,对帧尺寸的信息进行解码。
此时,在垂直方向预测中使用的缩放值的参数t、水平方向预测中使用的缩放值的参数u、表示使用式(1)的垂直方向预测、式(2)的水平方向预测的块尺寸的每个块尺寸的ON/OFF标志中,只要任意一个被可变长编码并被复用到比特流的情况下,就按照由图1的运动图像编码装置编码了的单位(序列单位或者图片单位)进行解码。
可变长解码部31通过与运动图像编码装置同样的步骤,决定由图1的运动图像编码装置的编码控制部2决定的最大编码块尺寸以及分割层次数的上限(步骤ST22)。
例如,在根据影像信号的分辨率决定了最大编码块尺寸、分割层次数上限的情况下,根据所解码的帧尺寸信息,通过与运动图像编码装置同样的步骤来决定最大编码块尺寸。
最大编码块尺寸以及分割层次数上限在运动图像编码装置侧被复用到比特流中的情况下,使用从比特流解码得到的值。
以后,在运动图像解码装置中,将上述最大编码块尺寸称为最大解码块尺寸,将最大编码块称为最大解码块。
可变长解码部31按照所决定的最大解码块单位,对图6所示那样的最大解码块的分割状态进行解码。根据所解码的分割状态,层次性地确定解码块(与图1的运动图像编码装置的“编码块”相当的块)(步骤ST23)。
接下来,可变长解码部31解码对解码块分配的编码模式。根据所解码的编码模式中包含的信息,将解码块进一步分割为一个或多个预测处理单位即预测块,解码对预测块单位分配的预测参数(步骤ST24)。
即,在对解码块分配的编码模式是帧内部编码模式的情况下,可变长解码部31针对包含在解码块中且成为预测处理单位的一个以上的预测块的每一个,对帧内部预测参数进行解码。
另一方面,在对解码块分配的编码模式是帧间编码模式的情况下,针对包含在解码块中且成为预测处理单位的一个以上的预测块的每一个,对帧间预测参数以及运动矢量进行解码(步骤ST24)。
进而,可变长解码部31根据预测差分编码参数中包含的变换块尺寸的信息,将解码块分割为成为变换处理单位的一个或多个变换块,针对每个变换块,对压缩数据(变换/量化后的变换系数)进行解码(步骤ST24)。
在切换开关33中,如果由可变长解码部31可变长解码了的编码模式m(Bn)是帧内部编码模式(m(Bn)∈INTRA的情况),则将由可变长解码部31可变长解码了的预测块单位的帧内部预测参数输出到帧内部预测部34。
另一方面,如果由可变长解码部31可变长解码了的编码模式m(Bn)是帧间编码模式(m(Bn)∈INTER的情况),则将由可变长解码部31可变长解码了的预测块单位的帧间预测参数以及运动矢量输出到运动补偿部35。
帧内部预测部34在由可变长解码部31可变长解码了的编码模式m(Bn)是帧内部编码模式(m(Bn)∈INTRA)的情况下(步骤ST25),接收从切换开关33输出的预测块单位的帧内部预测参数,通过与图1的帧内部预测部4同样的步骤,一边参照帧内部预测用存储器37中储存的解码图像,一边实施使用了上述帧内部预测参数的针对解码块Bn内的各预测块Pin的帧内部预测处理,生成帧内部预测图像PINTRAin(步骤ST26)。
即,帧内部预测部34在针对预测块Pin的帧内部预测模式的索引值是0(垂直方向预测)的情况下,根据上述式(1)计算预测块Pin内的像素的预测值,生成帧内部预测图像PINTRAin。
另外,在针对预测块Pin的帧内部预测模式的索引值是1(水平方向预测)的情况下,根据上述式(2)计算预测块Pin内的像素的预测值,生成帧内部预测图像PINTRAin。
但是,在使用式(1)的垂直方向预测、式(2)的水平方向预测的块尺寸被限制了的情况下,在使用式(1)的垂直方向预测、式(2)的水平方向预测的块尺寸以外的尺寸的预测块Pin中通过以往(MPEG-4 AVC/H.264)的垂直方向预测及水平方向预测进行帧内部预测处理。
运动补偿部35在由可变长解码部31可变长解码了的编码模式m(Bn)是帧间编码模式(m(Bn)∈INTER)的情况下(步骤ST25),接收从切换开关33输出的预测块单位的运动矢量和帧间预测参数,一边参照运动补偿预测帧存储器39中储存的滤波处理后的解码图像,一边实施使用了上述运动矢量和帧间预测参数的针对解码块内的各预测块Pin的帧间预测处理来生成帧间预测图像PINTERin(步骤ST27)。
逆量化/逆变换部32如果从可变长解码部31接收到压缩数据以及预测差分编码参数,则通过与图1的逆量化/逆变换部8同样的步骤,参照该预测差分编码参数,对该压缩数据进行逆量化,并且参照该预测差分编码参数,实施针对作为逆量化后的压缩数据的变换系数的逆正交变换处理,计算与从图1的逆量化/逆变换部8输出的局部解码预测差分信号相同的解码预测差分信号(步骤ST28)。
加法部36将由逆量化/逆变换部32计算出的解码预测差分信号、与由帧内部预测部34生成的帧内部预测图像PINTRAin和由运动补偿部35生成的帧间预测图像PINTERin中的某一方进行相加而计算出解码图像,并输出到环路滤波器部38,并且将该解码图像储存到帧内部预测用存储器37中(步骤ST29)。
该解码图像成为在以后的帧内部预测处理时使用的已解码的图像信号。
在环路滤波器部38中,如果针对所有解码块Bn的步骤ST23~ST29的处理完成(步骤ST30),则对从加法部36输出的解码图像实施规定的滤波处理,将滤波处理后的解码图像储存到运动补偿预测帧存储器39中(步骤ST31)。
另外,关于环路滤波器部38的滤波处理,即可以以所输入的解码图像的最大解码块或者各个解码块为单位来进行,也可以在输入了1个图片量的解码图像之后集中1个图片量来进行。
另外,作为规定的滤波处理的例子,可以举出以使编码块边界的不连续性(块噪声)不会变得显著的方式对块边界进行滤波的处理、对解码图像的失真进行补偿的滤波处理等。
该解码图像成为运动补偿预测用的参照图像,并且成为再生图像。
根据以上可知,根据该实施方式3,运动图像编码装置的帧内部预测部4构成为在生成预测图像时的帧内预测处理是水平方向预测处理的情况下,对预测块的左面所邻接的像素的亮度值相加与预测块的上面所邻接的像素的水平方向的亮度值变化量成比例的值,将该相加后的值决定为预测图像的预测值,在生成预测图像时的帧内预测处理是垂直方向预测处理的情况下,对预测块的上面所邻接的像素的亮度值相加与预测块的左面所邻接的像素的垂直方向的亮度值变化量成比例的值,将该相加后的值决定为预测图像的预测值,所以起到即使在信号值沿着预测方向而变化的情况下也能够实现高精度的预测来提高图像质量的效果。
另外,根据该实施方式3,运动图像解码装置的帧内部预测部34构成为在生成预测图像时的帧内预测处理是水平方向预测处理的情况下,对预测块的左面所邻接的像素的亮度值相加与预测块的上面所邻接的像素的水平方向的亮度值变化量成比例的值,将该相加后的值决定为预测图像的预测值,在生成预测图像时的帧内预测处理是垂直方向预测处理的情况下,对预测块的上面所邻接的像素的亮度值相加与预测块的左面所邻接的像素的垂直方向的亮度值变化量成比例的值,将该相加后的值决定为预测图像的预测值,所以起到即使在信号值沿着预测方向而变化的情况下也能够实现高精度的预测来提高图像质量的效果。
根据该实施方式3,关于由帧内部预测部4、34实施水平方向预测处理时所使用的缩放值即1/u,构成为越是与从预测块的上面所邻接的像素起距离远的行有关的缩放值,设定为越小的值,所以越是与预测块的上面所邻接的像素之间的距离远而相关变低的像素,越能够使预测块的上面所邻接的像素的影响变小,其结果,起到能够高精度地进行预测的效果。
另外,关于由帧内部预测部4、34实施垂直方向预测处理时所使用的缩放值即1/t,构成为越是与从预测块的左面所邻接的像素起距离远的列有关的缩放值,设定为越小的值,所以越是与预测块的左面所邻接的像素之间的距离远而相关变低的像素,越能够使预测块的左面所邻接的像素的影响变小,其结果,起到能够高精度地进行预测的效果。
另外,在该实施方式3中,示出了由帧内部预测部4、34实施水平方向预测处理时的预测块内的第N行(从预测块的上端起第N行)的缩放值是1/2N+1(=1/2,1/4,1/8,1/16,···)、由帧内部预测部4、34实施垂直方向预测处理时的预测块内的第M列(从预测块的左端起第M列)的缩放值是1/2M+1(=1/2,1/4,1/8,1/16,···)的例子,但这只是一个例子,只要由帧内部预测部4、34实施水平方向预测处理时越是从预测块的上端远离的行的缩放值越小、并且由帧内部预测部4、34实施垂直方向预测处理时越是从预测块的左端远离的列的缩放值越小,就可以是任意值。
另外,本申请发明能够在本发明的范围内实现各实施方式的自由的组合、或者各实施方式的任意的构成要素的变形、或者各实施方式中的任意的构成要素的省略。
(产业上的可利用性)
本发明适用于需要高效地对运动图像进行编码的运动图像编码装置,另外适用于需要对高效地编码了的运动图像进行解码的运动图像解码装置。