图像编码设备和方法以及图像解码设备和方法与制造工艺

文档序号:11057090阅读:350来源:国知局
图像编码设备和方法以及图像解码设备和方法与制造工艺
本发明涉及图像编码设备、图像编码方法及其程序和图像解码设备、图像解码方法及其程序。更特别地,本发明涉及针对图像中的量化参数的预测编码方法。

背景技术:
作为用于压缩并记录运动图像的方法,已知有H.264/MPEG-4AVC(以下称为H.264)(ISO/IEC14496-10;2004Informationtechnology-Codingofaudio-visualobjects-Part10:AdvancedVideoCoding)。H.264广泛用于单段地上数字广播。H.264使得能够通过使用mb_qp_delta代码来以宏块为单位(16×16个像素)改变量化参数。上述文献所述的公式7-23将差值mb_qp_delta与紧前解码的宏块的量化参数QPYPREV相加,以按宏块为单位(16×16个像素)改变量化参数。近年来,进行高效率视频编码(HEVC)的国际标准化的活动已经开始。(HEVC是作为H.264的后续者的甚至更高效率的编码方法)。随着画面大小的增大,该活动考虑利用比传统宏块(16×16个像素)大的块大小来进行分割。根据JCT-VC贡献JCTVC-A205.doc,将具有较大大小的基本块称为最大编码树块(LCTB)。该考虑假定64×64个像素的大小(JCT-VC贡献JCTVC-A205.doc<http://wftp3.itu.int/av-arch/jctvc-site/2010_04_A_Dresden/>)。LCTB进一步被分割成多个子块、即经过变换和量化的编码树块(CTB)。作为分割方法,使用区域四叉树结构来将块分割成四个子块(垂直方向上为两个且水平方向上为两个)。图2A示出区域四叉树结构。粗框10000表示基本块,其中为了简化说明,该基本块由64×64个像素构成。各子块10001和10010由16×16个像素构成。各子块10002~10009由8×8个像素构成。子块以这种方式形成并且用于进行变换和其它编码处理。利用HEVC,以相同方式按基本块为单位对H.264的宏块进行量化参数控制。然而,从图像质量的观点,实际上期望以子块为单位进行量化参数控制。在这种情况下,期望以子块为单位通过量化参数控制来进行较小单位的量化。然而,即使可以进行较小单位的量化,也基于区域四叉树结构来进行处理。因此,无法高效地进行以子块为单位的并行处理,使得无法改善编码和解码的处理速度。具体地,参考图2A,按顺序依次处理子块10001(16×16个像素)、子块10002~10009(8×8个像素)和子块10010(16×16个像素)。由于通过使用相对于前一子块的量化参数的差值作为预测值来计算各子块的量化参数,因此需要对这些量化参数进行顺次处理,由此无法进行以子块为单位的高效并行处理。此外,在针对各子块尝试量化参数最优化的情况下,由于基于区域四叉树结构来进行用于获取量化参数差值的处理,因此差值将改变。例如,图2B示出在各子块的中央示出的量化参数值。图2B的示例假定量化参数值从左上方向着右下方逐渐改变的情况。在通常的自然图像中有可能发生该现象。由于子块10001的量化参数为12并且子块10002的量化参数为14,因此子块10002与子块10001的差值为+2。后续的差值为+4、-6、+6、-6、+-0、+2、+4和+2。这样根据区域四叉树结构获取差值会导致这些差值随机波动,这造成所产生的代码大的问题。

技术实现要素:
本发明涉及使得能够并行地进行针对各子块的编码和解码,以不仅实现高速处理、还实现高效率的量化参数的编码和解码。根据本发明的方面,一种图像编码设备,包括:分割部件,用于将输入图像分割成经过量化控制的多个子块;子块量化参数计算部件,用于计算所述多个子块中的各子块的量化参数;基本块量化参数计算部件,用于设置包括至少两个子块的基本块,并且计算所述基本块的量化参数;差值计算部件,用于计算所述基本块的量化参数和所述基本块内所包括的各子块的量化参数之间的差值;以及差值编码部件,用于对所述差值进行编码。根据本发明的典型实施例,可以基于基本块的量化参数来以子块为单位独立对各子块的量化参数进行编码和解码,从而便于进行以子块为单位的并行处理。此外,抑制预测误差使得能够进行高效率的量化参数的编码和解码。通过以下参考附图对典型实施例的详细说明,本发明的其它特征和方面将变得明显。附图说明包含在说明书中并构成说明书一部分的附图示出了本发明的典型实施例、特征和方面,并和说明书一起用来解释本发明的原理。图1是示出根据本发明的第一典型实施例的图像编码设备的结构的框图。图2A示出块分割的示例。图2B示出块分割的示例。图3是示出根据本发明的第一典型实施例的图像编码设备中的量化参数编码单元的详细框图。图4是示出根据本发明的第一典型实施例的图像编码设备所进行的图像编码处理的流程图。图5A示出编码时的并行处理。图5B示出编码时的并行处理。图6是示出根据本发明的第二典型实施例的图像解码设备的结构的框图。图7是示出根据本发明的第二典型实施例的量化参数解码单元的详细框图。图8是示出根据本发明的第二典型实施例的图像解码设备所进行的图像解码处理的流程图。图9A示出解码时的并行处理。图9B示出解码时的并行处理。图10是示出根据本发明的第三典型实施例的图像编码设备的结构的框图。图11是示出根据本发明的第三典型实施例的图像编码设备中的量化参数编码单元的详细框图。图12是示出根据本发明的第三典型实施例的图像编码设备所进行的图像编码处理的流程图。图13是示出根据本发明的第四典型实施例的图像解码设备的结构的框图。图14是示出根据本发明的第四典型实施例的图像解码设备中的量化参数解码单元的详细框图。图15是示出根据本发明的第四典型实施例的图像解码设备所进行的图像解码处理的流程图。图16是示出根据本发明的第五典型实施例的图像编码设备中的量化参数编码单元的详细框图。图17是示出根据本发明的第五典型实施例的图像编码设备所进行的图像编码处理的流程图。图18是示出根据本发明的第六典型实施例的图像解码设备中的量化参数解码单元的详细框图。图19是示出根据本发明的第六典型实施例的图像解码设备所进行的图像解码处理的流程图。图20是示出可应用于根据本发明的典型实施例的图像编码设备和图像解码设备的计算机的硬件结构示例的框图。具体实施方式以下将参考附图来详细说明本发明的各种典型实施例、特征和方面。图1是示出根据本发明的第一典型实施例的图像编码设备的框图。参考图1,该图像编码设备从端子1000输入图像数据。块分割单元1001将输入图像分割成多个基本块、即从输入图像多次切出基本块,并且根据需要进一步将各基本块分割成多个子块。图像编码设备以子块为单位进行量化控制。尽管为了简化说明、假定输入图像具有8位的像素值,但像素值不限于此。基本块的大小为64×64个像素,并且子块的最小大小为8×8个像素。在这种情况下,基本块包括四个子块。尽管以下将基于用于将块分割成四个子块(垂直方向上为两个且水平方向上为两个)的方法来说明块分割,但块的形状和大小不限于此。基本块需要包括至少两个子块。子块分割不限于任何特定方法。例如,整个图像可以在边缘量计算和聚类之后分割成多个子块。具体地,在边缘多的部分处设置小的子块,并且在平坦部分处设置大的子块。量化参数确定单元1002确定各基本块的量化参数和各子块的量化参数。块预测单元1003以块分割单元1001所形成的子块为单位进行预测以计算各子块的预测误差。块预测单元1003对静止图像和运动图像的内帧应用帧内预测,并且还对运动图像应用运动补偿预测。块变换单元1004对各子块的预测误差应用正交变换以计算正交变换系数。正交变换不限于任何特定方法,并且可以基于离散余弦变换和Hadamard(阿达玛)变换。块量化单元1005基于量化参数确定单元1002所确定的各子块的量化参数来对上述的正交变换系数进行量化。该量化使得能够获得量化系数。块编码单元1006对这样获取到的各子块的量化系数应用可变长度编码以生成量化系数代码数据。编码不限于任何特定方法,并且可以基于霍夫曼代码或算术代码。块再现图像生成单元1007通过进行块量化单元1005和块变换单元1004的逆操作来再现预测误差,以基于块预测单元1003的处理结果来生成基本块的解码图像。所再现的图像数据被存储并且用于进行块预测单元1003的预测。量化参数编码单元1008对量化参数确定单元1002所确定的基本块的量化参数和各子块的量化参数进行编码以生成量化参数代码数据。合并编码单元1009生成头信息和与预测有关的代码,并且将量化参数编码单元1008所生成的量化参数代码数据和块编码单元1006所生成的量化系数代码数据合并。合并编码单元1009将所生成的位流经由端子1010输出至外部。以下将说明根据本典型实施例的图像编码设备所进行的图像编码处理。在本典型实施例中,尽管运动图像数据是以帧为单位输入的,但也可以输入一帧的静止图像数据。块分割单元1001从端子1000输入一帧的图像数据,并且将该图像数据分割成各自由64×64个像素构成的多个基本块。根据需要,块分割单元1001进一步将各基本块分割成各自由至少8×8个像素构成的多个子块。量化参数确定单元1002和块预测单元1003输入与分割成子块有关的信息以及分割后的图像数据。块预测单元1003参考存储在块再现图像生成单元1007中的再现图像来进行预测,生成预测误差,并且将所生成的预测误差输出至块变换单元1004和块再现图像生成单元1007。块变换单元1004对所输入的预测误差进行正交变换,计算正交变换系数,并且将所计算出的正交变换系数输出至块量化单元1005。考虑到各子块中发生的输入代码量,量化参数确定单元1002以子块为单位基于图像质量和代码量之间的平衡来确定最佳量化参数。例如,可以使用日本特开平4-323961所论述的技术。量化参数确定单元1002将所确定的各子块的量化参数输出至块量化单元1005、块再现图像生成单元1007和量化参数编码单元1008。块量化单元1005基于量化参数确定单元1002所确定的各量化参数来对(从块变换单元1004输入的)正交变换系数进行量化以生成量化系数。块量化单元1005将所生成量化系数输出至块编码单元1006和块再现图像生成单元1007。块再现图像生成单元1007输入该量化系数,并且基于量化参数确定单元1002所确定的各量化参数来再现正交变换系数。块再现图像生成单元1007对所再现的正交变换系数应用逆正交变换以再现预测误差,基于所再现的预测误差和预测时所参考的像素值来生成再现图像,并且存储该再现图像。块编码单元1006对该量化系数进行编码以生成量化系数代码数据,并且将所生成的量化系数代码数据输出至合并编码单元1009。量化参数编码单元1008以基本块为单位对量化参数确定单元1002所确定的量化参数进行编码。图3是示出量化参数编码单元1008的详细框图。参考图3,量化参数编码单元1008经由端子1从图1中的量化参数确定单元1002输入各子块的量化参数。量化参数存储单元2一次存储所输入的子块的量化参数。基本块量化参数确定单元3基于量化参数存储单元2中所存储的各子块的量化参数来确定基本块的量化参数。基本块量化参数编码单元4对该基本块的量化参数进行编码以生成基本块量化参数代码。基本块量化参数编码单元4将所生成的基本块量化参数代码经由端子5输出至图1中的合并编码单元1009。子块量化参数差单元6获取基本块的量化参数和各子块的量化参数之间的差。子块量化参数编码单元7对该差进行编码以生成子块量化参数差值代码。子块量化参数编码单元7将所生成的子块量化参数差值代码经由端子8输出至图1中的合并编码单元1009。利用上述结构,量化参数存储单元2以基本块为单位存储从端子1输入的子块的量化参数。在将所有的子块的量化参数存储在量化参数存储单元2中的情况下,基本块量化参数确定单元3计算基本块量化参数。利用本典型实施例,基本块量化参数确定单元3计算子块量化参数的平均值。参考图2B,平均值为14.6。在以整数为单位进行量化参数编码的情况下,基本块量化参数确定单元3对平均值14.6进行四舍五入,因此将基本块量化参数设置为15。基本块量化参数确定单元3将所确定的基本块量化参数输出至基本块量化参数编码单元4和子块量化参数差单元6。基本块量化参数编码单元4通过Golomb(哥伦布)编码对所输入的基本块量化参数进行编码以生成基本块量化参数代码,并且将所生成的基本块量化参数代码经由端子5输出至外部。子块量化参数差单元6计算各子块量化参数和基本块量化参数之间的差。参考图2B,差值按区域四叉树结构的顺序依次为-3、-1、+3、-3、+3、-3、-3、-1、-1和+5。子块量化参数差单元6将这些差值输出至子块量化参数编码单元7。子块量化参数编码单元7将这些差值连同变化的有无一起进行编码。第一子块10001的量化参数不同于基本块量化参数或15。子块量化参数编码单元7通过Golomb编码对表示变化的1位值“1”和差值“-3”进行编码,并且将由此产生的代码经由端子8输出至外部作为子块量化参数差值编码数据。随后,子块量化参数编码单元7对第二子块10002的子块量化参数差值进行编码。由于该差值不同于基本块量化参数,因此子块量化参数编码单元7将包括表示变化的1位值“1”和子块量化参数差值“-1”的Golomb代码经由端子8输出至外部。随后,以与上述相同的方式,子块量化参数编码单元7对表示变化的1位值“1”和子块量化参数差值进行编码以生成子块量化参数差值编码数据。返回参考图1,合并编码单元1009生成图像序列、帧头和其它代码。针对各基本块,合并编码单元1009从块预测单元1003获取诸如预测模式等的信息并且对该信息进行编码。然后,合并编码单元1009从量化参数编码单元1008输入基本块量化参数代码。随后,合并编码单元1009针对各子块合并子块量化参数差值编码数据和量化系数代码数据,并且将该合成数据作为位流经由端子1010输出至外部。图4是示出根据本发明的第一典型实施例的图像编码设备所进行的图像编码处理的流程图。在步骤S001中,合并编码单元1009生成序列、帧头和其它代码,并且将所生成的代码经由端子1010输出至外部。在步骤S002中,块分割单元1001针对输入图像从其左上角开始顺次切出各基本块。在步骤S003中,块分割单元1001进一步将各基本块分割成多个子块。在步骤S004中,量化参数确定单元1002确定子块的量化参数。在步骤S005中,图像编码设备基于步骤S004中所确定的子块的量化参数来确定基本块的量化参数。为了简化说明,根据本典型实施例的图像编码设备计算基本块内的子块的量化参数的平均值作为基本块的量化参数。在步骤S006中,图像编码设备通过Golomb编码对(步骤S005中所确定的)基本块的量化参数进行编码,并且输出由此得到的代码作为基本块量化参数代码。在步骤S007中,图像编码设备以子块为单位对子块的量化参数进行编码。在按区域四叉树结构的顺序使用与基本块量化参数相同的量化参数的情况下,图像编码设备输出1位代码“0”。在使用不同的量化参数的情况下,图像编码设备输出1位代码“1”以及各子块量化参数和基本块量化参数之间的差。在步骤S008中,图像编码设备对子块图像数据进行预测以获得预测误差,对该预测误差应用正交变换和量化,对所获得的量化系数进行编码,并且输出量化系数代码数据。在步骤S009中,图像编码设备对所获得的量化系数应用逆量化和逆变换以计算预测误差。图像编码设备基于该预测误差和从再现图像获得的预测值来生成相关子块的再现图像。在步骤S010中,图像编码设备判断针对基本块内的所有子块是否完成了编码处理。在针对所有子块完成了编码处理的情况下(步骤S010中为“是”),该处理进入步骤S011。相反,在针对所有子块没有完成编码处理的情况下(步骤S010中为“否”),该处理返回至步骤S007以处理下一子块。在步骤S011中,图像编码设备判断针对所有基本块是否完成了编码处理。在针对所有基本块完成了编码处理的情况下(步骤S011中为“是”),该处理结束。相反,在针对所有基本块没有完成编码处理的情况下(步骤S011中为“否”),该处理返回至步骤S002以处理下一基本块。特别是在步骤S005~S009中,上述结构和操作使得能够通过使用基本块的量化参数来对各子块量化参数差值进行编码,由此抑制所生成的代码量。在本典型实施例中,尽管原样使用子块的量化参数的平均值作为基本块的量化参数,但基本块的量化参数不限于此,并且可以是最接近平均值的实际子块量化参数值。例如,尽管在图2B的示例中平均值为14.6,但代替通过对该平均值进行四舍五入所获得的值,可以使用最接近该平均值的实际子块量化参数值、即14。这样获取子块量化参数使得能够将表示变化的代码设置为“0”,从而减少要发送的子块量化参数差值的数量。上述结构还使得能够高效地并行进行预测、量化、变换和编码,从而实现高速处理。图5A和5B示出用于对图2A所示的基本块10000内的子块10001~10005应用量化、变换和编码处理的示例并行处理。在这种情况下,为了简化说明,假定使用三个处理器来进行编码处理。处理器A~C计算各子块的量化参数(QP),计算并编码各子块量化参数差值(ΔQP),对预测误差应用正交变换和量化,并且对量化系数进行编码。在这种情况下,利用另一处理器合并这些代码。图5A示出传统的并行处理的示例。首先,图像编码设备将子块10001的处理分配至处理器A,将子块10002的处理分配至处理器B,并且将子块10003的处理分配至处理器C。QP计算所用的处理时间依赖于块大小和图像复杂度。存在如下趋势:针对块大小较大的子块10001的量化参数计算与针对子块10002和10003的量化参数计算相比需要更长时间。在量化参数计算之后,图像编码设备计算量化参数差值。需要完成针对子块10001的子块量化参数计算以开始针对子块10002的子块量化参数差值计算。这意味着处理器B进行等待,直到处理器A完成针对子块10001的子块量化参数计算为止。在与计算子块10003的量化参数相比、计算子块10002的量化参数需要更长时间的情况下,需要完成针对子块10002的子块量化参数计算以开始针对子块10003的子块量化参数差值计算。处理器C进行等待,直到处理器B完成针对子块10002的子块量化参数计算为止。图5B示出根据本典型实施例的并行处理的示例。与传统情况相同,图像编码设备将子块10001的处理分配至处理器A,将子块10002的处理分配至处理器B,并且将子块10003的处理分配至处理器C。在子块量化参数计算之后,图像编码设备计算子块量化参数差值。由于完成了基本块量化参数计算,因此针对子块10002的子块量化参数差值计算可以紧挨在子块量化参数的计算之后开始。因而,本发明实现了高效的并行处理。特别地,在存在具有多个大小的子块的情况下,本发明提供了缩短处理间隔的显著效果。在本典型实施例中,尽管对基本块量化参数值本身进行编码,但可以通过使用先前处理的基本块量化参数来进行预测。在本典型实施例中,尽管基本块由64×64个像素构成、并且子块由8×8个像素构成,但像素结构不限于此。例如,基本块的块大小可以改变为128×128个像素。基本块和子块的形状不限于正方形,并且可以是诸如8×4个像素等的矩形。本发明的本质保持不变。在本典型实施例中,尽管将子块量化参数的平均值视为基本块量化参数,但基本块量化参数不限于此。例如,当然以下是可能的:基本块量化参数可以是子块量化参数的中间值或频率最高的子块量化参数值。当然可以这样准备多个计算方法,并且选择最高效的基本块量化参数。尽管在子块量化参数差值编码数据中设置了表示变化的1位代码,但该处理不限于此。当然,甚至在不存在变化的情况下也可以对子块量化参数差值进行编码。在本典型实施例中,尽管使用Golomb编码来对基本块量化参数、子块量化参数差值和量化系数进行编码,但该处理不限于此。例如,当然可以使用霍夫曼编码和其...
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1