图像编码装置、图像解码装置及它们的控制方法

文档序号:7650604阅读:116来源:国知局
专利名称:图像编码装置、图像解码装置及它们的控制方法
技术领域
本发明涉及图像编码装置、图像解码装置及它们的控制方法。
背景技术
作为用于图像编码的熵编码的形式,有使用静态概率分布模型的形式和基于动态模型的形式。使用静态概率分布模型的形式,是调查或假定信息源的性质,预先准备概率分布的模型,并进行适于该模型的编码的形式。此外,使用动态概率分布模型的形式,是在编码过程中学习信息源的性质,动态地边变更概率分布的模型边进行编码的形式。
在此,对多值图像的无损失压缩(lossless)编码,列举其2个例子。
在作为连续灰阶静止图像的国际标准编码方式由ISO和ITU-T推荐的JPEG所规定的无损失压缩编码方式中,使用预先确定的霍夫曼表对关注像素和预测值的差进行编码,使用了静态模型。
而作为连续灰阶静止图像的可逆和准可逆压缩的国际标准方式由ISO和ITU-T推荐的JPEG-LS Part1是动态模型的一个例子。JPEG-LS在预测误差的编码中,采用了可通过改变编码参数来应对不同概率分布的Golomb编码技术。对每个由关注像素的周围4个像素确定的前后关系(context),参考已编码的符号(symbol)的概率分布状况选择“k”,由此动态地进行概率分布模型的变更。
以下,说明JPEG-LS中的预测误差编码的总体流程和Golomb编码参数的确定方法。在以下的说明中,省略与本发明没有直接关系的因素,例如关注像素的周围像素全部为相同像素值时适用的运行模式、或用于准可逆编码的量化处理等。关于标准方式的详细情况请参照说明书。
图3表示在JPEG-LS中参照的关注像素“x”与其周围像素a、b、c、d的相对位置关系。请注意由于是按照光栅扫描顺序对像素进行编码,因此,关注像素“x”的周围像素a、b、c、d全部已编码。各个像素的值也用a、b、c、d表示。首先,利用以下的公式求出a和c、c和b、b和d的差,得到D1、D2、D3。
D1=d-bD2=b-cD3=c-a将该差值D1、D2、D3量化成九种(从-4到4),求出各自的差的量化值Q1、Q2、Q3。图2表示差值的范围与其量化值的对应关系。T1、T2、T3是预先确定的非负的整数值。
例如,对取0~255值的8位图像,设定T1=3、T2=7、T3=21这样的值。这样得到的Q1、Q2、Q3的组合(Q1,Q2,Q3),由于Q1、Q2、Q3分别能够具有从-4到4的九种的值,因而是9×9×9=729种。
在此,认为在状态(Q1,Q2,Q3)下发生预测误差e的概率和在状态(-Q1,-Q2,-Q3)下发生预测误差-e的概率相同。因此,合并这两个状态缩减至365种。表示该组合的信息是上述前后关系。将表示是365种状态的哪一个的标识符取为S,以下,将该标识符S称作状态序号。
使用周围像素a、b、c利用以下的公式求出对关注像素值x的预测值p。
p=min(a,b)(max(a,b)≤c时),或者p=max(a,b)(min(a,b)≥c时),或者p=a+b-c(其它情况下)在此,min(x,y)是返回x、y中较小者的函数,max(x,y)是返回较大者的函数。
请注意如下情况虽然预测值p的值的取得方法要根据周围像素a、b、c的值的大小关系进行切换,但由于a、b、c是已编码的像素,因此,能够不传送关于切换的附加信息地,在编码侧和解码侧取得相同的预测值p。在JPEG-LS中为了提高预测精度,采用了如下技术参照此前在状态S下进行了编码的像素中发生的预测误差的平均值来修正预测值p,但在此省略说明。
求出该预测值p和关注像素x的差e,将其转换成非负的整数值进行Golomb编码。此时,按照关注像素的前后关系确定编码的参数k。
在JPEG-LS中,对每个状态S,保持发生次数N[S]和在该状态下进行了编码的预测误差的绝对值之和A[S]。Golomb编码的参数k,满足使用了这2个值的以下的条件。“x^y”表示x的y次幂。
2^(k-1)<A[S]/N[S]≤2^k实际上,不需要做A[S]/N[S]的除法。只要求出满足N[S]×2^k≥A[S]的最小的k即可。由此,在预测误差的绝对值的平均大的状态下作为k参数选择大的值,相反地在绝对值的平均小的状态下选择小的k参数。
在编码的开始时刻预先对A[S]、N[S]设定初始值,通过在编码处理的过程中随时更新值,动态地追踪各个状态的概率分布。
在基于上述JPEG-LS的图像处理装置中,每当对预测误差进行编码时,执行用于确定k参数的处理。
虽然人们采取了使得不进行除法等减轻处理负荷的措施,但从处理负荷的观点来看,每次都要进行伴随不定次数的判断的处理不能说是有效率的。
此外,保持预测误差的绝对值之和需要有较多的位数,根据情况A[S]的存储容量有时会成为问题。
此外,根据预测误差的绝对值的平均来确定编码参数k。由此,仍然会有这样的问题例如在对状态分离不充分造成统计性质的变化较大的信息源进行编码的情况下,在发生了较大的预测误差时,对此后要编码的多个预测误差带来k参数变大等影响。

发明内容
本发明正是鉴于上述问题而完成的。并且,根据本发明的实施方式,提供如下的技术在使用动态概率分布模型的图像编码中,能够简单地确定编码参数,并且,实现良好的编码性能。
本发明的第1实施方式的图像编码装置具有以下结构。即,一种图像编码装置,包括输入单元,输入编码对象的符号;编码单元,按照编码参数对上述编码对象的符号进行编码,生成编码数据;判断单元,判断上述编码对象的符号是否超过了上述编码参数中的目标范围的上限,以及是否低于该目标范围的下限;以及更新单元,按照上述判断单元的判断结果,进行编码参数的更新。
此外,本发明的第2实施方式的图像编码装置的控制方法具有以下结构。即,一种图像编码装置的控制方法,包括输入步骤,输入编码对象的符号;编码步骤,按照编码参数对上述编码对象的符号进行编码,生成编码数据;判断步骤,判断上述编码对象的符号是否超过了上述编码参数中的目标范围的上限,以及是否低于该目标范围的下限;以及更新步骤,按照上述判断步骤的判断结果,进行编码参数的更新。
此外,本发明的第3实施方式的图像解码装置具有以下结构。即,一种图像解码装置,包括输入单元,输入编码数据;解码单元,按照解码参数对所输入的编码数据进行解码,生成符号;
判断单元,判断上述符号是否超过了上述解码参数的目标范围的上限,以及是否低于上述目标范围的下限;以及更新单元,按照上述判断单元的判断结果,进行解码参数的更新。
此外,本发明的第4实施方式的图像解码装置的控制方法具有以下结构。即,一种图像解码装置的控制方法,包括输入步骤,输入编码数据;解码步骤,按照解码参数对所输入的编码数据进行解码,生成符号;判断步骤,判断上述符号是否超过了上述解码参数的目标范围的上限,以及是否低于上述目标范围的下限;以及更新步骤,按照上述判断步骤的判断结果,进行解码参数的更新。
此外,本发明的第5实施方式的图像编码装置具有以下结构。即,一种基于动态概率分布模型对图像数据进行编码的图像编码装置,包括输入单元,按照像素单位输入图像数据;符号生成单元,从由上述输入单元所输入的关注像素数据,生成成为熵编码对象的符号;编码单元,按照所给的编码参数对由上述符号生成单元所生成的符号进行编码,生成编码数据;判断单元,判断在对成为上述编码单元编码对象的符号进行编码时使用的编码参数,是在用于使上述编码对象的符号的代码字为目标代码长度内的编码参数可取的范围内,还是超过上述范围的上限,或是低于上述范围的下限;以及更新单元,根据上述判断单元的判断结果更新上述编码参数。
此外,本发明的第6实施方式的图像编码装置的控制方法具有以下结构。即,一种基于动态概率分布模型对图像数据进行编码的图像编码装置的控制方法,包括输入步骤,按照像素单位输入图像数据;符号生成步骤,从在上述输入步骤所输入的关注像素数据,生成成为熵编码对象的符号;编码步骤,按照所给的编码参数对在上述符号生成步骤所生成的符号进行编码,生成编码数据;判断步骤,判断在对成为上述编码步骤的编码对象的符号进行编码时使用的编码参数,是在用于使上述编码对象的符号的代码字为目标代码长度内的编码参数可取的范围内,还是超过上述范围的上限,或是低于上述范围的下限;以及更新步骤,根据上述判断步骤的判断结果更新上述编码参数。
此外,本发明的第7实施方式的图像解码装置具有以下结构。即,一种对基于动态概率分布模型进行了编码的图像数据进行解码的图像解码装置,包括输入单元,输入像素单位的编码数据;解码单元,按照所给的解码参数对由上述输入单元所输入的编码数据进行解码,生成关注像素的符号;像素数据恢复单元,从解码得到的符号恢复成关注像素的像素数据;判断单元,判断在对由上述解码单元得到的符号进行解码时使用的解码参数,是在用于将上述符号的代码字的代码长度容纳于目标代码长度内的编码参数可取的范围内,还是超过上述范围的上限,或是低于上述范围的下限;以及更新单元,根据上述判断单元的判断结果更新上述解码参数。
此外,本发明的第8实施方式的图像解码装置的控制方法具有以下结构。即,
一种对基于动态概率分布模型进行了编码的图像数据进行解码的图像解码装置的控制方法,包括输入步骤,输入像素单位的编码数据;解码步骤,按照所给的解码参数对在上述输入步骤所输入的编码数据进行解码,生成关注像素的符号;像素数据恢复步骤,从解码得到的符号恢复成关注像素的像素数据;判断步骤,判断对在上述解码步骤得到的符号进行解码时使用的解码参数,是在用于将上述符号的代码字的代码长度容纳于目标代码长度内的编码参数可取的范围内,还是超过上述范围的上限,或是低于上述范围的下限;以及更新步骤,根据上述判断步骤的判断结果更新上述解码参数。
根据本发明,能够用处理负荷和存储成本较少的简单方法确定编码参数,并且,能够以良好的压缩性能对图像数据进行编码。
通过如下参照附图的对示例性实施方式的说明,本发明的其它特征将得以清楚。


附图包含在说明书中,构成其一部分,用于说明本发明的实施方式,并与说明书的记述一起用于解释本发明的原理。
图1是第1实施方式所涉及的图像处理装置的框结构图。
图2是表示用于对周围像素之间的差进行量化的表的图。
图3是表示编码对象像素x与其周围像素a、b、c的相对位置关系的图。
图4是表示第1实施方式所涉及的编码处理流程的流程图。
图5A是表示Golomb编码的k参数和各个符号的代码长度的关系的表。
图5B是表示Golomb编码的k参数、各个符号的代码长度以及修正值的关系的表。
图6是表示第1实施方式所涉及的图像处理装置中的k参数变迁的例子的图。
图7是表示k=1时使编码效率最大的概率分布f(n,1)的图。
图8A和8B是表示k参数的变迁概率的图。
图9是表示本图像处理装置的输出码串的结构的图。
图10是第2实施方式和第3实施方式所涉及的图像处理装置的框结构图。
图11是表示第2实施方式中的k参数更新部1002的处理流程的流程图。
图12是表示第3实施方式中的索引值i和参数k的对应关系的图。
图13是表示第3实施方式中的k参数更新部1002的处理流程的流程图。
图14是表示用软件实现第1~第3实施方式时的信息处理装置的框结构图。
图15是进行在第1实施方式中的解码的图像处理装置的框结构图。
图16是表示Golomb编码的例子的图。
具体实施例方式
下面,参照附图按照优选实施方式详细地说明本发明。
<第1实施方式>
图1是表示本实施方式所涉及的图像处理装置的功能结构的框结构图。
如图1所示,本实施方式所涉及的进行图像编码的图像处理装置具有图像输入部101、行缓冲器(line buffer)102、预测器103、预测误差生成部104、预测顺序转换部105、Golomb编码部106、k参数更新部107以及码串形成部108。在图1中109表示信号线。
以下,参照图1说明本实施方式所涉及的图像处理装置进行的图像编码处理。在此,编码对象图像,取为各个像素由8位(0~255的范围)的表示亮度值或者密度值的像素数据构成的、单色图像数据。但是,本方式也同样能够适用于RGB、CMYK等1个像素用多个分量(component)(颜色)表现的彩色图像、各个分量用8位以上的位精度表现的图像数据。例如,在适用于彩色图像时,只要分离成每个分量,与单色图像同样地对各个分量进行编码即可。编码对象图像,由水平方向W像素、垂直方向G像素构成。
接着,说明本实施方式的图像处理装置的各部的动作。
图像输入部101,输入编码对象图像数据的像素数据x。该输入为光栅扫描顺序。假定输入源为图像扫描仪,但也可以是存储有图像数据文件的存储介质,不管该输入源的种类如何。
行缓冲器102具有存储2行图像数据的存储容量,依次存储从图像输入部101输入的图像数据。即,行缓冲器102所需要的容量是2×W字节。行缓冲器102所保持的2行的像素数据,在编码开始时刻用预定的值初始化。作为像素的初始值,只要是可在编码装置和解码装置中共同设定的值即可。在此,为了简化说明,在开始编码处理时假定用“0”对行缓冲器102进行初始化。
预测器103,对从图像输入部101输入的像素(以下称作关注像素),参照已编码的周围像素a、b、c生成预测值p。关注像素x与周围像素a、b、c的相对位置关系如图3所示。已编码的周围像素a、b、c由行缓冲器102提供。在关注像素x为行的起始时或者行的最后的像素的情况下,周围像素a、b、c的任意一个有时会在编码对象图像的范围外。在这样的情况下,虽然在编码装置和解码装置中使用共同的值,但在此图像的范围外的值取为0。在本实施方式中,预测值p利用以下的公式求出。
p=min(a,b)(max(a,b)≤c时),或者p=max(a,b)(min(a,b)≥c时),或者p=a+b-c(其它情况下)在生成预测值时除了上述方法还可以使用各种方法。例如,也可以像可在JPEG标准方式的无损失压缩编码中使用的7个预测式那样,使用其它预测式。此外,还能够使用像JPEG-LS标准方式那样,通过使用在已编码的像素中平均发生的预测误差值修正上述预测值p,来提高预测精度的方法。
预测误差生成部104,对由预测器103生成的预测值p和从图像输入部101输入的关注像素值x的差“x-p”进行运算,将其结果作为预测误差e输出。
预测顺序转换部105,利用以下的公式将由预测误差生成部104求出的预测误差e映射成非负的整数值M(e)。以下,将M(e)称作预测顺序。
M(e)=2×e(e≥0时)M(e)=-2×e-1 (e<0时)由此,M(e)成为非负的整数,能够根据其是偶数还是奇数来辨别预测误差e的正负记号(sign)。
Golomb编码部106,使用在k参数更新部107内部保持的k参数,对从预测顺序转换部105输出的预测顺序M(e)进行Golomb编码,输出2值符号串。
Golomb编码具有如下特征可将非负的整数值作为编码对象,用取决于参数变量m而不同的多个概率模型进行编码。此外,由于能够根据编码对象符号和参数变量m导出代码字,因而还具有不需要代码表这样的优点。在以下的说明中,限定于参数变量m为2^k的Golomb编码的特殊形式,将k作为参数变量进行说明。在由ISO和ITU-T作为国际标准推荐的JPEG-LS(ISO/IEC 14495-1|ITU-TRecommendation T.87)中,这样的Golomb编码的一种形式被用作预测误差的编码方式。
用编码参数k对编码对象的非负的整数值n进行Golomb编码的顺序如下所述。首先,将n右移k位求出整数值u。简单地说,整数值u是n除以2^k得到的商。
对符号n的代码,由u个“0”后面的“1”(可变长部)和n的下位k位(固定长部)的组合构成。图16表示k=0,1,2,3时Golomb编码的例子。
例如,在k=2(因此m=4)、符号n=5时,u=floor(5/4)=1,因此,可变长部成为二进制的“01”。此外,符号n的下位2位成为“01”,因此,k=2时的符号“5”的Golomb代码字(codeword)成为“0101”,代码长度为4位。
在此所说的代码的构成方法是一个例子,即使调换固定长部和可变长部的顺序也能够构成可唯一解码的代码。此外,也可以使0和1相反地构成代码。
k参数更新部107,在由Golomb编码部106对从预测顺序转换部105输出的预测顺序M(e)进行了编码后,进行在内部保持的k参数的更新处理。更新处理通过以下方式来进行比较编码后的预测顺序M(e)的值和用当前保持的k参数能够得到最小代码长度的范围(以下称作最佳符号范围),根据需要将k的值+1或者-1。
图5A是表示Golomb编码的各个符号的值(纵轴)、k参数(横轴)和二维空间中的代码长度的表。如图所示,表示用k=0~5各自的编码参数对0~28的编码对象符号(对应于预测顺序M(e))进行编码时发生的代码长度(位数)。
在图示的表中,分成3个区域进行显示。第1个区域是关注各个符号,其代码字的代码长度为最小(最短)的区域50。其余的2个区域是由区域50隔开的区域51、52。区域51,可以说成是用比规定区域50的编码参数k的值大的编码参数k、和不是最小代码长度的代码长度定义的区域。此外,区域52,可以说成是用比规定区域50的编码参数k的值小的编码参数k、和不是最小代码长度的代码长度定义的区域。
例如,在编码对象符号为“8”、编码参数k=2~4的范围内,最小代码长度为“5”。因此,在符号为“8”时,编码参数k=2~4的范围的代码长度为“5”的位置,在区域50内。
此外,在编码对象符号为“8”、编码参数k=5时,代码长度为“6”,不是最小代码长度“5”。故而,在符号为“8”时,编码参数k=5的代码长度为“6”的位置,在区域51内。
同样地,在编码对象符号为“8”、编码参数k=0、1时,代码长度为“9”或“6”,仍然不是最小代码长度“5”。故而,在符号为“8”时,编码参数k=0、1的代码长度为“9”或“6”的位置,在区域52内。
本实施方式的k参数更新部107,当编码对象的预测顺序M(e)在区域51内时,在对接下来的像素进行编码时,判断为适合更小的k参数,将k的值修正为更小的值。具体地说,准备接下来的像素的编码,从参数k减1。
此外,当编码后的预测顺序M(e)在区域52内时,判断为更大的k参数合适,将k的值修正为更大的值。具体地说,将k加1进行更新。
并且,当编码后的预测顺序M(e)在区域50内时,判断为当前的k参数合适,不修正而是维持k的值。
图示的区域51、52的边界能够根据参数k导出。当用n表示编码对象符号的值时,区域51是满足“n<2^(k-1)”的关系的范围,区域52是3×2^k≤n的范围。换言之,不必存储全部的图5A的表,只要仅存储定义区域50的信息即可。区域50,只要存储各个符号的值,并对于每个符号存储对其进行编码时成为最小代码长度的参数k的下限值和上限值即可。
此外,为了不要该判断处理,也可以预先由k参数更新部107存储保持图5B所示的表。图5B的表,是在图5A的表中追加为下一次编码准备的修正值(-1、0、+1)的项目而成的。区域50内的修正值是“0”,区域51内的修正值是“-1”,并且,区域52内的修正值是“+1”。因此,修正值H(=-1、0、+1)可表现为H(n,k),因此,将该值H(n,k)与当前的k参数相加即可更新k参数。
码串形成部108,使从Golomb编码部106输出的码串(2值符号串)结合起来,加上必要的附加信息形成成为本图像处理装置的输出的编码数据,从信号线109输出。如果输出目的地是存储装置,则存储为文件。
图9是表示本图像处理装置的输出码串的结构的图。在输出码串的起始,作为首部添加有对图像进行解码所需要的信息,例如图像的水平方向像素数、垂直方向像素数、表示颜色空间的属性信息、分量数、各个分量的位数等附加信息。
图4是表示基于本实施方式所涉及的图像处理装置的编码对象图像数据的编码处理流程的流程图。以下,参照图4所示的流程图,说明本实施方式所涉及的图像处理装置进行的图像编码处理的整体流程。
首先,在编码处理之前,先进行存储于行缓冲器102的像素数据、和保持于k参数更新部107的编码参数k的初始化。在本实施方式中,将行缓冲器102的像素数据全部初始化为0,将k参数更新部107所保持的k参数设定为“2”(步骤S400)。接着,图像输入部101,按照光栅扫描顺序开始输入图像数据,将所输入的图像数据的各个像素数据存储到行缓冲器102,并且,提供给预测误差生成部104(步骤S401)。
接着,从行缓冲器102读取关注像素的周围像素a、b、c,由预测器103生成预测值p(步骤S402)。预测误差生成部104,求出关注像素x和预测器103生成的预测值p的差,作为预测误差e输出(步骤S403)。预测顺序转换部105,将该预测误差e转换成预测顺序M(e)(步骤S404)。Golomb编码部106,使用在k参数更新部107内部所保持的k参数,对预测顺序M(e)进行Golomb编码(步骤S405)。
接着,由k参数更新部107比较编码后的预测顺序M(e)和更新前的k参数时的最佳范围,根据需要更新自身所保持的k参数(步骤S406)。即,判断用预测顺序M(e)和由Golomb编码部106使用的k参数所表示的位置,位于图5A或者图5B的区域50~52的哪个区域内,根据位于哪个区域更新(修正)将在对接下来的像素进行编码时使用的k参数。
接着,判断编码后的像素是否为图像的最后的像素(步骤S407),在为最后的像素时结束编码处理,在不是时将处理转移至步骤S401,进行接下来的像素的编码处理。
根据以上的处理,进行图像整体的编码。编码处理不必一定按照该顺序进行。例如,在此虽然按照像素数据的读取(步骤S401)、预测值的生成(步骤S402)这样的顺序进行了说明,但也可以将顺序调换。此外,如果能够正确地交接更新前的k参数,则也可以进行改变Golomb编码(步骤S405)和k参数的更新(步骤S406)的顺序,或者并行进行这样的变更。
在此,以对从预测顺序转换部105依次输出的预测顺序的列“0,0,2,0,0,1,0,3,0…”进行编码的情况为例,在图6中表示编码所使用的k参数的值、更新处理的内容以及更新处理后的k值的推移。
以下,依次说明k参数的变化。在开始编码时将k参数的初始值设定为“2”,使用该k=2对最初的符号“0”进行Golomb编码。相对于k=2,符号“0”属于图5A的区域51。因此,从k减1,更新为k=1。
用更新后的k(此时k=1)对第2个符号“0”进行编码。此时,符号“0”同样属于图5A的区域51,因此,从k减1,更新为k=0。
接着,用k=0对符号“2”进行编码。符号“2”位于k=0的最佳符号范围,因此,k的值没有变化。以下,同样对符号串“0,0,1,0”进行编码,但基于同样的理由k的值没有变化。
接着,用k=0对符号“3”进行编码,由于符号相当于区域52,因此加1更新为k=1。用k=1对接下来的符号“0”进行编码,由于属于区域51,因此减1更新为k=0。这样,进行编码和参数k的更新处理。由该例子可知按照编码对象符号的局部的性质逐步变更k参数的情况。
当要对由本实施方式的图像处理装置生成的编码数据进行解码时,参照在首部所示的附加信息,按照编码处理的相反顺序逐步对各个像素进行解码即可。此时,在对各个符号进行解码时,Golomb编码的k参数使用在编码侧和解码侧相同的值。即,在解码侧也给予与编码侧相同的初始值开始解码,判断解码后的符号属于当前的k参数是否位于最佳符号范围,根据需要用与编码时相同的算法逐步进行更新。
图15是表示解码侧的图像处理装置的功能结构的框图。对于与在先说明的图1共同的框标注相同的序号,省略说明。如图所示,解码侧的图像处理装置具有编码数据输入部1501、Golomb编码解码部1502、预测顺序逆转换部1503、像素值恢复部1504、首部分析部1505、行缓冲器102、预测器103以及k参数更新部107。
以下,说明进行解码处理的图像处理装置的各个处理部的动作。
编码数据输入部1501,输入成为解码对象的编码数据。此时,编码数据输入部1501,进行编码数据的构造分析,向首部分析部1505传送首部,向Golomb编码解码部1502传送像素编码数据。
首部分析部1505,分析从编码数据输入部1501传送的首部,取出编码后的图像数据的水平、垂直方向像素数等解码处理所需要的信息,使之反映到图像处理装置的控制。
Golomb编码解码部1502,取得k参数更新部107所保持的k参数,使用它恢复到预测顺序M(e)。
k参数更新部107,采用与在先说明的编码时的更新处理相同的方法,基于解码后的预测顺序M(e)根据需要更新k参数。
预测顺序逆转换部1503,根据由Golomb编码解码部1502解码后的预测顺序M(e)利用以下的公式恢复预测误差e。
e=M(e)/2(M(e)为偶数时)e=-(M(e)+1)/2 (M(e)为奇数时)像素值恢复部1504,根据由预测顺序逆转换部1503恢复的预测误差e和由预测器103生成的预测值p,通过e+p恢复关注像素值x进行输出。解码后的像素值x被存储到行缓冲器102,在生成以下的像素的预测值时使用。
通过反复进行从Golomb编码解码部1502到像素值恢复部1504的处理,根据编码数据进行图像数据的解码,直到构成图像的全部像素被解码为止。
如以上说明的那样,在本实施方式所涉及的图像处理装置中,判断编码后的符号或者解码后的符号是否位于当前的k参数中的最佳符号范围内,当不在最佳符号范围内时通过+1或者-1进行更新,进行控制使之成为合适的k参数。由此,即使是局部的统计性质不同的图像数据,也能够追踪性质的变化高效率地进行编码。
<第1实施方式的变形例>
也可以由个人计算机等通用信息处理装置和在其上运行的计算机程序来实现上述实施方式。
图14是表示本变形例所涉及的信息处理装置的基本结构的图。在图14中,1401是CPU,使用存储于RAM1402或ROM1403的程序或数据控制本装置整体,并且,执行后述的图像编码处理。
1402是RAM,具有用于存储经由外部存储装置1407、存储介质驱动器1408、或者I/F1409从外部装置下载的程序或数据的区域,并且,还具有CPU1401在执行各种处理时使用的工作区域。
1403是ROM,存储引导程序、本装置的设定程序和数据。
1404、1405分别是键盘、鼠标等定点设备,能够对CPU1401输入各种指示。
1406是显示装置,由CRT或液晶画面等构成,能够显示图像、文字等信息。
1407是外部存储装置,是硬盘驱动装置等大容量信息存储装置,其中保存有OS、后述的用于图像编码、解码处理的应用程序、编码对象的图像数据等。OS和应用程序,通过CPU1401的控制,加载到RAM1402上的预定区域,从而被执行。
1408是存储介质驱动器,用于读取存储于CD-ROM、DVD-ROM等存储介质的程序或数据,输出到RAM1402或外部存储装置1407。也可以预先在该存储介质中记录后述的用于图像编码处理的程序、编码对象图像。在这样的情况下,存储介质驱动器1408,通过CPU1401的控制,将这些程序或数据加载到RAM1402上的预定区域。
1409是I/F,通过该I/F1409将外部装置连接到本装置,从而能够在本装置与外部装置之间进行数据通信。例如能够经由I/F1409将成为编码对象的图像数据输入到本装置的RAM1402或外部存储装置1407,或者相反地,将所生成的图像编码数据从本装置的RAM1402或外部存储装置1407输出到装置外部。1410是连接上述各部的总线。
在进行图像编码处理时,将对应的程序从外部存储装置1407加载到RAM1402,由CPU1401执行该处理。该编码处理的程序,基本上按照图4的流程图进行处理即可。此外,该程序由相当于图1所示的各个结构的模块(也可以称作函数、子程序)构成即可。不过,行缓冲器102将会在RAM1402确保相应容量的数据区域。
此外,解码处理所涉及的程序,无疑也可以由图15所示的模块构成。
<第2实施方式>
接着,说明第2实施方式。在第1实施方式的图像处理装置中,每当编码对象的符号在最佳符号范围外时,通过增减编码参数k来进行修正。在这样的情况下,具有能够迅速应对信息源的统计性质变化的优点,但在性质变化较少的信息源中稳定性将成为问题。
例如,考虑在各自的k参数中编码效率最大的概率分布f(n,k)=(1/2)^L(n,k)。L(n,k)是用编码参数k对编码对象符号n进行Golomb编码时的代码长度,由L(n,k)=k+1+floor(n/(2^k))给出。x^y表示x的y次幂,floor(x)表示返回不超过x的最大整数的函数。
图7表示k=1时的概率分布f(n,1)。
对于概率分布f(n,k),研究属于图5A所示的区域52的任意一个符号出现的概率,即在某个k时属于区域52的符号的出现概率的和时,可知在任何k参数时均为12.5%。
当同样地观察区域51时,除了k=0时,区域51的符号的出现概率为25%。即,表示即使用某个k参数(k≠0)对其理想的概率分布的信息源f(n,k)进行了编码时,k参数仍以37.5%(=12.5%+25%)的概率变化。
图8A表示k=0时对具有f(n,k)的概率分布的信息源的符号进行编码所引起的k参数的变迁;图8B表示k>0时对具有f(n,k)的概率分布的信息源的符号进行编码所引起的k参数的变迁。
在此,作为本发明的第2实施方式,说明抑制k参数的变动,提高稳定性的方法。
图10是表示本第2实施方式所涉及的图像处理装置的功能结构的框图。对于与在第1实施方式中说明的图1共同的框标注相同的序号,省略说明。
本第2实施方式所涉及的图像处理装置具有图像输入部101、行缓冲器102、预测器103、预测误差生成部104、预测顺序转换部105、Golomb编码部106、前后关系生成部1001、k参数更新部1002以及码串形成部108。此外,在图10中109表示信号线。
本第2实施方式所涉及的图像处理装置的基本结构,也可以由专用的硬件来构成各自的功能。此外,也可以与在先说明的第1实施方式的变形例同样地取为图14所示的结构,通过使计算机实现图10所示的各部的功能的程序来实现。在为后者的情况下,该程序经由上述外部存储装置1407、存储介质驱动器1408或者I/F1409从外部装置加载到RAM1402,由CPU1401执行。
以下,使用图10说明本第2实施方式所涉及的图像处理装置进行的处理。
本第2实施方式所涉及的图像处理装置的作为编码对象的图像数据,与第1实施方式相同,作为各个像素用8位表现0~255范围的亮度值的单色图像数据进行说明。不过,还能够适用于RGB、CMYK彩色图像等由多个分量构成的图像数据。此外,编码对象的图像数据,按照光栅扫描顺序排列各个像素的值而构成。图像由水平方向W像素、垂直方向H像素构成。
在本第2实施方式的图像处理装置中,也与第1实施方式的图像处理装置相同,图像输入部101输入成为编码对象的像素数据x,将该像素数据x存储到行缓冲器102。由在先说明的预测器103、预测误差生成部104、预测顺序转换部105,生成成为熵编码对象的非负的整数值M(e)。
另一方面,在前后关系生成部1001中,从行缓冲器102读取关注像素x的周围像素a、b、c、d,生成表示关注像素周围的状态的前后关系。在本实施方式中,采用与JPEG-LS相类似的方法,分离成状态序号S为0~728的729种的状态。
如在现有技术的说明部分中说明的那样,对于周围像素a、b、c、d,分别按照图2的表对a和b、b和c、c和d的差进行量化,得到Q1、Q2、Q3。生成唯一地表示该组合的状态序号S。在本第2实施方式中利用以下的公式确定状态序号S。
S=81×Q1+9×Q2+Q3+364与JPEG-LS相同地,可以合并状态(Q1,Q2,Q3)和状态(-Q1,-Q2,-Q3)缩减至365个状态,也可以参照a、b、c、d以外的周围像素生成前后关系。
在k参数更新部1002内部,保持存储对应于各个状态S的k参数的阵列K[S],和在后述的更新处理中参照的标记阵列F[S]。在开始编码时,阵列K[S](S=0,1,2,…)被设定为初始值(在本实施方式中为2),将标记阵列F[S](S=0,1,2,…)初始化为“0”。
图11是表示对关注像素x进行编码时k参数更新部1002的处理流程的流程图。使用图11说明在各个像素中进行的k参数更新部1002的处理流程。
首先,k参数更新部1002,取得从前后关系生成部1001输出的状态序号S和从预测顺序转换部105输出的预测顺序M(e)(步骤S1101)。接着,k参数更新部1002,利用阵列元素K[S]取得对应于所输入的状态序号S的k参数,将其输出到Golomb编码部106(步骤S1102)。由此,Golomb编码部106,进行预测顺序M(e)的编码。
接着,判断用当前的k参数的值、即K[S]和作为符号的预测顺序M(e)表示的位置(K[S],M(e))是否在区域51内(步骤S1103)。
换言之,就是判断当前的k参数的值,是否超过了成为预测顺序M(e)的最小代码长度的k参数的上限值。
当判断为位置(K[S],M(e))在区域51内时,将处理前进至步骤S1107,判断标记阵列的元素F[S]是否为“1”。在判断为不是“1”时,对标记阵列元素F[S]设定“1”(步骤S1110)。此外,当在步骤S1107中判断为标记阵列的元素F[S]是“1”时,从K[S]减“1”进行更新(步骤S1108),对标记阵列的元素F[S]设定“0”(步骤S1109)。
当在步骤S1103中判断为位置(K[S],M(e))不属于区域51时,前进至步骤S1104,判断位置(K[S],M(e))是否在区域52内。
换言之,就是判断当前的k参数的值,是否低于成为预测顺序M(e)的最小代码长度的k参数的下限值。
当判断为位置(K[S],M(e))在区域52内时,对K[S]加“1”进行更新,对F[S]设定“0”(步骤S1106)。
此外,当在步骤S1104中判断为位置(K[S],M(e))不属于区域52时,即,判断为位置(K[S],M(e))位于区域50内时,判断为当前的编码处理状态处于最佳符号范围,不进行k参数的更新。
此后,更新后的K[S]适用于关注像素以后的、为相同状态序号S的像素的编码。
总结以上内容,在本第2实施方式中,当位置(K[S],M(e))位于区域52内时,与第1实施方式相同地直接对k参数加1进行更新。但是,使用标记F[S],将当位置(K[S],M(e))位于区域51内时减1进行更新的处理取1/2的频率。
在此,再次考虑用某个k参数对在本实施方式的说明的开始所述的概率分布f(n,k)的信息源进行编码的情况,在本实施方式中,考虑发生增大k的方向的更新的概率为12.5%,发生减小k的方向的更新的概率为12.5%以下,因此,不进行k参数变迁的概率为75%以上。
因此,能够减小k参数更新中、增加方向和减少方向的概率偏差,并且,减少不需要的k参数变动的发生概率。
与第1实施方式相同地,Golomb编码部106,使用从k参数更新部107输出的k参数,对预测顺序M(e)进行编码,由码串形成部108进行合并,作为对编码对象的图像数据的码串,由码串形成部108生成的最终码串通过信号线109被输出到装置外部。
基于本第2实施方式所涉及的图像处理装置的编码对象图像数据的编码处理流程,仅对图4所示的第1实施方式的图像处理装置的流程图实施了细微的改动。具体而言,在从步骤S401到步骤S404的处理时序由前后关系生成部1001进行前后关系生成处理。例如,在步骤S401读取关注像素数据和在步骤S402生成预测值之间,实施该前后关系生成处理。
对由本第2实施方式的图像处理装置所生成的编码数据进行解码,只要参照首部所示的附加信息按照编码处理的相反顺序对各个像素进行解码即可。
此时,在各个符号的解码中,Golomb编码的k参数使用在编码侧和解码侧相同的值。
即,在解码侧也给出与编码侧相同的初始值开始解码,判断解码后的符号相对于当前的k参数是否位于最佳符号范围,根据需要采用与编码时相同的算法预先更新即可。
像以上说明的那样,在本第2实施方式所涉及的图像处理装置中,能够采用简单的方法进行追踪信息源性质的编码。此外,能够通过调整参数变迁的频率,减少相对于统计性质变化较少的信息源无用的参数变迁。
<第3实施方式>
在上述第2实施方式中,示出了在发生2次区域51的符号时减少k参数的方法,但也可以根据k参数改变实施更新的发生次数。将其例子作为第3实施方式进行说明。
本第3实施方式的图像处理装置的框图,与在第2实施方式说明的图10相同,仅k参数更新部1002的处理不同。以下,说明本第3实施方式中的k参数更新部1002的处理。
本第3实施方式的k参数更新部1002,保持图12所示的索引值i和参数k的对应表,以及对由前后关系生成部1001分类的365个状态序号S存储索引值i的阵列I[S]。阵列I[S]的所有元素在开始编码的时刻被设定为初始值(在此为4)。即,不管状态序号S如何,初始状态的参数k都为“2”。更清楚地说,如果用阵列K[i]表现基于索引i的k参数,则可表记为K[i]=K[I[S]]。
图13是表示对关注像素x进行编码时k参数更新部1002的处理流程的流程图。使用图13说明在各个像素中进行的k参数更新部1002的处理流程。
k参数更新部1002,取得从前后关系生成部1001输出的状态序号S和从预测顺序转换部105输出的预测顺序M(e)(步骤S1301)。取出所输入的状态序号S的索引值阵列的元素I[S],将参照图12的对应表与之对应得k参数的值输出到Golomb编码部106(步骤S1102)。例如,如果对于某个状态序号S,I[S]的值为5,则参照对应表k参数为K[I[S]]=K“5”,因此,作为k参数将“3”输出到Golomb编码部106。由此,Golomb编码部106,进行对应于关注像素x的预测顺序M(e)的编码。
接着,判断用当前的k参数和预测顺序M(e)表示的位置是否在区域51内(步骤S1303)。当判断为该位置属于区域51内时,将处理移至步骤S1308,当不属于时,移至步骤S1304。
当属于区域51时,检查阵列元素I[S]是否为0(步骤S1308),在不是0时从I[S]的值中减1进行更新(步骤S1309)。此外,当阵列元素I[S]为0时,不进行上述减法。
当在步骤S1303中判断为用参数k和M(e)表示的位置在区域51以外时,判断该位置是否在区域52之内(步骤S1304)。
当判断为在区域52内时,使I[S]的值与“2”相加进行更新(步骤S1305)。此外,检查I[S]是否超过了预先确定的索引的最大值(在本实施方式中为23)(步骤S1306),在超过了时将I[S]设定为最大值(步骤S1307)。
此外,当在步骤S1304中判断为用参数k和M(e)表示的位置不属于区域52时,表示该位置位于区域50内。即,判断为处于最佳符号范围,不进行索引I[S]的更新。更新后的I[S],在对关注像素以后的成为相同状态序号S的像素进行编码时使用。
由上述处理可知,在本第3实施方式中示出了在k参数小的部分索引I[S]和k参数的变迁迅速进行、在k参数大的部分变迁变得缓慢的例子。
不仅能够通过直接增减k参数进行更新,还能够通过像本第3实施方式那样导入索引值间接地控制k参数,符合编码对象的信息源的动态特性地,更自由地设计编码系统。
<其他变形例>
本发明不限于上述实施方式。例如,虽然示出了作为预测误差的生成方法采用与JPEG-LS相同的方法,适当地切换a、b、a+b-c这三种预测式的例子,但也可以使用(a+b)/2等除此以外的预测式。并且,只要是从已编码的区域生成预测值的方法即可,例如,也可以采用如下方法在由多个帧构成的动图像中,将存在于在编码完成之前的上一帧中与关注像素相同的空间位置的像素值作为预测值。
此外,如在JPEG-LS所采用的那样,也可以参照已编码的预测误差修正预测值来提高预测精度。
此外,也可以预测预测误差的符号再进行符号翻转,或者与通过模转换去除动态范围这样的效率改善的研究组合起来使用。
此外,在第1~第3实施方式中,示出了以代码长度最小的范围为基准判断k参数的更新的结构。例如,在k=2的情况下,在编码对象的符号(在实施方式中为M(e))为2~11时作为最佳符号范围不进行参数更新,在为0或者1时在减小k的方向进行更新,在为12以上时在增大k的方向进行更新。
但是,例如也可以进行将到最小代码长度+1认为是适当的范围等,使范围变宽或者变窄的修正。
如果k=2时将到最小代码长度+1认为是适当范围,则在符号的值为1~15时不进行参数更新,参数稳定性提高。但是,在这样的情况下,由于不从k=1变迁成k=0,因此,需要在k=1时不适用范围扩大等的例外处理。
此外,在上述实施方式中,示出了作为熵编码使用参数变量m=2^k的Golomb编码的例子,但不限于此。也可以使用不为2^k的m来适用本方法。并且,还能够适用Exponential-Golomb编码等Golomb编码的派生形式。
此外,在实施方式中,特别地以进行编码/解码的图像处理装置为例进行了说明,但也可以适用于进行图像的编码或解码的装置,例如复印机、打印机、读取器等装置。此外,如在先说明的那样,本实施方式的功能,也可以通过计算机读取、执行的计算机程序来实现,因此,计算机程序显然也属于本发明的范畴。此外,通常计算机程序被存储于CD-ROM等计算机可读存储介质,将其设置为计算机的读入装置(CD-ROM驱动器等),可通过复制或安装到系统中来执行之。由此,这样的计算机可读存储介质显然也属于本发明的范畴。
尽管参照示例性实施方式描述了本发明,但是应当理解为本发明不限于所公开的示例性实施方式。将按照最宽的范围来解释后附的权利要求的范围,以便概括所有这些修改和等同的结构和功能。
权利要求
1.一种图像编码装置,包括输入单元,输入编码对象的符号;编码单元,按照编码参数对上述编码对象的符号进行编码,生成编码数据;判断单元,判断上述编码对象的符号是否超过了上述编码参数的目标范围的上限,以及是否低于该目标范围的下限;以及更新单元,按照上述判断单元的判断结果,进行编码参数的更新。
2.一种图像编码装置的控制方法,包括输入步骤,输入编码对象的符号;编码步骤,按照编码参数对上述编码对象的符号进行编码,生成编码数据;判断步骤,判断上述编码对象的符号是否超过了上述编码参数中的目标范围的上限,以及是否低于该目标范围的下限;以及更新步骤,按照上述判断步骤的判断结果,进行编码参数的更新。
3.一种图像解码装置,包括输入单元,输入编码数据;解码单元,按照解码参数对所输入的编码数据进行解码,生成符号;判断单元,判断上述符号是否超过了上述解码参数的目标范围的上限,以及是否低于上述目标范围的下限;以及更新单元,按照上述判断单元的判断结果,进行解码参数的更新。
4.一种图像解码装置的控制方法,包括输入步骤,输入编码数据;解码步骤,按照解码参数对所输入的编码数据进行解码,生成符号;判断步骤,判断上述符号是否超过了上述解码参数的目标范围的上限,以及是否低于上述目标范围的下限;以及更新步骤,按照上述判断步骤的判断结果,进行解码参数的更新。
5.一种基于动态概率分布模型对图像数据进行编码的图像编码装置,包括输入单元,以像素单位输入图像数据;符号生成单元,从由上述输入单元所输入的关注像素数据,生成成为熵编码对象的符号;编码单元,按照所给的编码参数对由上述符号生成单元所生成的符号进行编码,生成编码数据;判断单元,判断在对成为上述编码单元的编码对象的符号进行编码时使用的编码参数,是在用于使上述编码对象的符号的代码字为目标代码长度内的编码参数可取范围内,还是超过上述范围的上限,或是低于上述范围的下限;以及更新单元,根据上述判断单元的判断结果更新上述编码参数。
6.根据权利要求5所述的图像编码装置,上述编码单元是Golomb编码单元。
7.根据权利要求5所述的图像编码装置,上述符号生成单元包括预测值计算单元,根据位于关注像素数据的周围、已经编码的至少1个像素数据,计算关注像素数据的预测值;预测误差计算单元,计算作为被计算出的预测值和关注像素数据的差的预测误差;以及转换单元,将所计算出的预测误差的正负记号转换成可判断的非负的整数值;上述符号生成单元,生成由上述转换单元转换而成的非负的整数值,作为上述符号。
8.根据权利要求5所述的图像编码装置,当将由上述编码单元对上述符号进行编码时使用的编码参数定义为K、将使上述符号的代码长度为目标代码长度的编码参数的范围的下限和上限定义为K Smin和K Smax时,上述更新单元,在处于K<K Smin的关系时,使编码参数K增大,在处于K Smax<K的关系时,使编码参数K减小,在处于K Smin≤K≤K Smax的关系时,维持编码参数K的值。
9.根据权利要求5所述的图像编码装置,还包括状态信息计算单元,根据已经编码的、位于关注像素X周围的像素数据,计算关注像素位置的状态信息S;以及编码参数存储单元,存储上述状态信息S可取的范围的编码参数阵列K[];上述编码单元,按照由关注像素数据的状态信息S确定的编码参数K[S]进行编码;上述更新单元,更新编码参数K[S]。
10.根据权利要求9所述的图像编码装置,当将由上述编码单元对上述符号进行编码时使用的编码参数定义为K[S]、将上述符号的代码长度为目标代码长度的编码参数的范围的下限和上限定义为K Smin和K Smax时,上述更新单元,在处于K[S]<K Smin的关系时,使编码参数K[S]增大,在处于K Smax<K[S]的关系时,以小于1的概率使编码参数K[S]减小,在处于K Smin≤K[S]≤K Smax的关系时,维持编码参数K[S]的值。
11.根据权利要求5所述的图像编码装置,还包括状态信息计算单元,根据已经编码的、位于关注像素X周围的像素数据,计算关注像素位置的状态信息S;索引存储单元,存储由上述状态信息计算单元计算出的状态信息S可取的范围的索引阵列i[];以及编码参数存储单元,存储上述索引阵列i[]可取的范围的编码参数阵列K[i];上述编码单元,按照由关注像素数据的状态信息S确定的编码参数K[i[S]]进行编码;上述更新单元,更新编码参数K[i[S]]。
12.根据权利要求11所述的图像编码装置,当将由上述编码单元对上述符号进行编码时使用的编码参数定义为K、将上述符号的代码长度为目标代码长度的编码参数的范围的下限和上限定义为K Smin和K Smax时,上述更新单元,在处于K[i[S]]<K Smin的关系时,使编码参数K[i[S]]增大预先设定的修正值α,在处于K Smax<K[i[S]]的关系时,使编码参数K[i[S]]减小比上述修正值α小的修正值β,在处于K Smin≤K[i[S]]≤K Smax的关系时,维持编码参数K[i[S]]的值。
13.一种基于动态概率分布模型对图像数据进行编码的图像编码装置的控制方法,包括输入步骤,按照像素单位输入图像数据;符号生成步骤,从在上述输入步骤所输入的关注像素数据,生成成为熵编码对象的符号;编码步骤,按照所给的编码参数对在上述符号生成步骤所生成的符号进行编码,生成编码数据;判断步骤,判断在对成为上述编码步骤的编码对象的符号进行编码时使用的编码参数,是在用于使上述编码对象的符号的代码字为目标代码长度内的编码参数可取的范围内,还是超过上述范围的上限,或是低于上述范围的下限;以及更新步骤,根据上述判断步骤的判断结果更新上述编码参数。
14.一种对基于动态概率分布模型进行了编码的图像数据进行解码的图像解码装置,包括输入单元,输入像素单位的编码数据;解码单元,按照所给的解码参数对由上述输入单元所输入的编码数据进行解码,生成关注像素的符号;像素数据恢复单元,从解码得到的符号恢复成关注像素的像素数据;判断单元,判断在对由上述解码单元得到的符号进行解码时使用的解码参数,是在用于将上述符号的代码字的代码长度容纳于目标代码长度内的编码参数可取的范围内,还是超过上述范围的上限,或是低于上述范围的下限;以及更新单元,根据上述判断单元的判断结果更新上述解码参数。
15.一种对基于动态概率分布模型进行了编码的图像数据进行解码的图像解码装置的控制方法,包括输入步骤,输入像素单位的编码数据;解码步骤,按照所给的解码参数对在上述输入步骤所输入的编码数据进行解码,生成关注像素的符号;像素数据恢复步骤,从解码得到的符号恢复成关注像素的像素数据;判断步骤,判断对在上述解码步骤得到的符号进行解码时使用的解码参数,是在用于将上述符号的代码字的代码长度容纳于目标代码长度内的编码参数可取的范围内,还是超过上述范围的上限,或是低于上述范围的下限;以及更新步骤,根据上述判断步骤的判断结果更新上述解码参数。
全文摘要
本发明提供一种图像编码装置、图像解码装置及它们的控制方法,能够用处理负荷和存储成本较少的简单方法确定编码参数,并且,能够以良好的压缩性能对图像数据进行编码。为此,本发明的编码装置的预测误差生成部,计算关注像素和预测值的差(预测误差)。预测顺序转换部将预测误差转换成非负的整数,将其作为预测顺序M(e)输出。Golomb编码部,按照从k参数更新部提供的k参数进行编码。k参数更新部,根据关注像素的预测顺序M(e)和提供给Golomb编码部的k参数,更新用于接下来的编码的k参数。
文档编号H04N1/41GK101039422SQ20071008836
公开日2007年9月19日 申请日期2007年3月16日 优先权日2006年3月17日
发明者梶原浩 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1