数据编码及解码装置、数据编码及解码方法

文档序号:7959854阅读:308来源:国知局
专利名称:数据编码及解码装置、数据编码及解码方法
技术领域
本发明涉及将数据分为可变长度码部分和固定长度码部分来进行编码或解码的数据编码装置、数据解码装置、数据编码方法、数据解码方法。
背景技术
在数字照相机等的摄像装置中,例如,在单镜头反光式的机种等中,在记录介质中记录被称为RAW数据的摄像数据。该RAW数据是仅对从摄像元件得到的图像信号施加简单的模拟处理之后转换为数字数据的数据。另外,近年来,由于数字照相机的摄像元件的高像素化不断推进,因此这样的RAW数据的数据大小不断增大。从而,也存在对RAW数据进行压缩处理来实现数据大小的缩小的数字照相机。但是,RAW数据是假设可由用户进行修饰的数据,在进行压缩处理的情况下,优选为无损(Lossless)压缩。
一般,压缩方式期待压缩率高,但在应用于数字照相机等的摄像装置的压缩方式的情况下,与应用于单体的个人计算机等的压缩方式的情况不同,由于规格上的限制等,还有几个优选的条件,例如,如下(1)处理时间短(2)处理所需的缓存量小这些条件内的条件(1)例如是与连拍性能、电池消耗等关联的条件。此外,条件(2)为与数字照相机的成本或尺寸、重量等关联的条件。
但是,要同时满足条件(1)和条件(2)时,导致压缩性能降低的可能性升高。
作为以往提出的压缩技术,例如举出了如美国专利5764374号中所记载的、根据编码对象像素的周围像素的梯度来对状态进行分类、在各个状态中的Golomb rice编码中设定k参数的方法。
美国专利5764374号但是,在如上述美国专利5764374号中所记载的技术中,需要针对每个状态作成由出现频数和累积误差构成的表,然后进行计算处理,因此导致缓存使用量增加,换言之,不能充分满足上述条件(2)。进而,由于对于编码对象像素进行周围像素的状态区分,因此也伴随着处理的增加,从而也不能充分满足条件(1)。

发明内容
本发明鉴于上述情况而完成,其目的在于提供处理时间短、所需存储量小、可以发挥高的压缩性能的数据编码装置、数据编码方法。
此外,本发明的目的在于提供可以用短的处理时间并且小的所需存储量对上述压缩后的数据进行解码的数据解码装置、数据解码方法。
为了达成上述目的,第一发明的数据编码装置,对数据进行预测而转换为预测误差数据,将该预测误差数据分为可变长度码部分和固定长度码部分来进行编码,其中,具有预测误差值运算部,其对数据进行自适应预测而运算预测误差值;校正预测误差值运算部,其通过对对于关注数据的预测误差值和过去求出的预测误差值进行预定的滤波,从而运算对对于上述关注数据的预测误差值进行校正后的校正预测误差值;以及编码部,其将上述校正预测误差值分为可变长度码部分和固定长度码部分来进行编码。
此外,第二发明的数据编码装置是在上述第一发明的数据编码装置中,还具有游程计数器,其用于检测上述校正预测误差值连续地小于等于预定的阈值的次数;以及码长设定部,其根据由上述游程计数器检测出的次数,设定上述校正预测误差值的固定长度码部分的码长。
进而,第三发明的数据编码装置是在上述第二发明的数据编码装置中,在由上述游程计数器检测出的次数大于等于预定的游程长度的情况下,上述码长设定部将上述码长设定为与小于预定的游程长度的情况相比更短。
第四发明的数据编码装置是在上述第二发明的数据编码装置中,可以设定多种上述阈值,上述游程计数器对于所设定的多种阈值分别检测校正预测误差值连续地小于等于该阈值的次数。
第五发明的数据编码装置是在上述第四发明的数据编码装置中,上述码长设定部将第一码长设定得比第二码长短,该第一码长是由上述游程计数器针对第一阈值检测出的次数大于等于预定的游程长度的情况下的码长,该第二码长是由上述游程计数器针对大于该第一阈值的第二阈值检测出的次数大于等于预定的游程长度的情况下的码长。
第六发明的数据编码装置是在上述第五发明的数据编码装置中,还具有动态范围计算部,其用于检测上述校正预测误差值的有效的位数作为动态范围,上述码长设定部将上述第一码长和上述第二码长中的不大者、与上述动态范围中的不小者设定为上述校正预测误差值的固定长度码部分的码长。
第七发明的数据编码方法,对数据进行预测并转换为预测误差数据,将该预测误差数据分为可变长度码部分和固定长度码部分来进行编码,其中,具有对数据进行自适应预测而运算预测误差值的步骤;通过对对于关注数据的预测误差值和过去求出的预测误差值进行预定的滤波,从而运算对对于上述关注数据的预测误差值进行校正后的校正预测误差值的步骤;以及将上述校正预测误差值分为可变长度码部分和固定长度码部分来进行编码的步骤。
第八发明的数据解码装置,对数据进行自适应预测而运算预测误差值,对对于关注数据的预测误差值和过去求出的预测误差值进行预定的滤波,从而运算对对于上述关注数据的预测误差值进行校正后的校正预测误差值,对通过将上述校正预测误差值分为可变长度码部分和固定长度码部分来进行编码而得到的编码数据进行解码,其中,具有校正预测误差值解码部,其通过将上述编码数据分为可变长度码部分和固定长度码部分来进行解码,从而求出校正预测误差值;逆滤波部,其对于由上述校正预测误差值解码部进行解码后的校正预测误差值,进行预定滤波的逆滤波,由此求出预测误差值;以及关注数据解码部,其使用由上述逆滤波部求出的预测误差值求出关注数据。
第九发明的数据解码方法,对数据进行自适应预测而运算预测误差值,对对于关注数据的预测误差值和过去求出的预测误差值进行预定的滤波,从而运算对对于上述关注数据的预测误差值进行校正后的校正预测误差值,对通过将上述校正预测误差值分为可变长度码部分和固定长度码部分来进行编码而得到的编码数据进行解码,其中,具有通过将上述编码数据分为可变长度码部分和固定长度码部分来进行解码,从而求出校正预测误差值的步骤;对于解码后的上述校正预测误差值,进行预定滤波的逆滤波,由此求出预测误差值的步骤;以及使用所求出的上述预测误差值求出关注数据的步骤。
根据本发明的数据编码装置、数据编码方法,可以用短的处理时间、并且小的必要存储量来发挥高的压缩性能。
此外,根据本发明的数据解码装置、数据解码方法,可以用短的处理时间、并且小的必要存储量对上述压缩后的数据进行解码。


图1是表示本发明的实施方式1中的数据编码装置的结构的方框图。
图2是表示上述实施方式1中的数据解码装置的结构的方框图。
图3是表示上述实施方式1中的滤波部的结构的方框图。
图4是表示上述实施方式1中的平坦度检测部的结构的方框图。
图5是表示通过上述实施方式1的数据编码装置进行的压缩处理的流程的概要的流程图。
图6是表示通过上述实施方式1的数据解码装置进行的解压处理的流程的概要的流程图。
图7是表示通过上述实施方式1的数据编码装置进行的压缩处理的细节的流程图。
图8是表示在上述实施方式1中、以像素为单位进行的平坦度检测1的处理的流程图。
图9是表示在上述实施方式1中、以像素为单位进行的平坦度检测2的处理的流程图。
图10是表示在上述实施方式1中、以行为单位进行的平坦度检测1的处理的流程图。
图11是表示在上述实施方式1中、以行为单位进行的平坦度检测2的处理的流程图。
图12是表示在上述实施方式1中、关注像素和在关注像素以前读取的附近像素之间的配置的图。
图13是表示上述实施方式1中的绝对值处理的另一例子的图表。
图14是表示成为上述实施方式1的数据编码装置的处理对象的像素数据的图。
图15是表示通过上述实施方式1的数据编码装置计算出的校正预测误差值的图。
图16是表示在上述实施方式1的以像素为单位的平坦度检测中所使用的各阈值和设定值的图表。
具体实施例方式
以下,参照

本发明的实施方式。
图1至图16表示本发明的实施方式1,图1是表示数据编码装置的结构的方框图,图2是表示数据解码装置的结构的方框图。
如图1所示,数据编码装置1构成为包含预测部11、减法器12、滤波部13、减法器14、绝对值处理部15、动态范围计算部16、平坦度检测部17、k参数确定部18、以及Golomb rice编码部19。其中,对预测部11以及减法器12输入图像数据,从滤波部13输出低位数据,从绝对值处理部15输出正负数据,从Golomb rice编码部19输出编码数据。后面参照图5、图7~图11等,随着作用说明该数据编码装置1的细节。
另外,由该数据编码装置1压缩而得到的数据可由如图2所示的数据解码装置2进行解码。即,数据解码装置2构成为包含Golomb rice解码部21、动态范围计算部22、平坦度检测部23、k参数确定部24、正负转换部25、预测误差计算部26、逆滤波部27、加法器28、以及预测部29。其中,对Golomb rice解码部21输入编码数据,对正负转换部25输入正负数据,对预测误差计算部26输入低位数据,从加法器28输出图像数据。后面参照图6等,随着作用说明该数据解码装置2的细节。
另外,在图1、图2中,由未图示的定时调节电路进行各块之间的互相的动作定时的调节。
接着,数据编码装置1的滤波部13如图3所示那样构成。图3是表示滤波部13的结构的方框图。
滤波部13是校正预测误差值运算单元的一部分,构成为包含转换预测误差/预测误差低位生成部31、校正值生成部32。其中,对转换预测误差/预测误差低位生成部31输入预测误差值,从该转换预测误差/预测误差低位生成部31输出转换预测误差值和低位数据,从校正值生成部32输出校正值。后面随着作用来说明该滤波部13的细节。
进而,数据编码装置1的平坦度检测部17或数据解码装置2的平坦度检测部23如图4所示那样构成。图4是表示平坦度检测部的结构的方框图。
平坦度检测部17、23构成为包含比较部41、游程计数器42、比较部43、k参数下限值确定部44。其中,对比较部41输入绝对值处理后的校正预测误差数据和阈值th,对游程计数器42输入外部计数器复位信号,对比较部43输入阈值th_run,对k参数下限值确定部44输入k_low以及k_high。
关于该平坦度检测部17、23的细节,也在后面随着作用进行说明。
接着,图5是表示通过数据编码装置1进行的压缩处理的流程的概要的流程图。
基本上通过如该图5所示的一系列的处理来进行数据编码装置1的压缩处理。
即,首先基于已经读取的像素数据,预测处理对象的像素数据(步骤S1)。
接着,通过取处理对象的像素数据的实际值和步骤S1中所预测的预测值之间的差分,从而生成预测误差值(步骤S2)。
接着,也考虑周围的像素的影响,如后面所述那样生成校正值(步骤S3),基于所生成的校正值生成校正预测误差值(步骤S4)。
然后,根据像素附近的状态,确定表示进行Golomb rice编码时的固定长度码部分的码长的k参数(步骤S5),基于所确定的k参数对绝对值处理后的校正预测误差值进行Golomb rice编码(步骤S6),结束。
参照图7~图16说明沿着这样的流程的压缩处理的细节。图7是表示通过数据编码装置1进行的压缩处理的细节的流程图,图8是表示以像素为单位进行的平坦度检测1的处理的流程图,图9是以像素为单位进行的平坦度检测2的处理的流程图,图10是表示以行为单位进行的平坦度检测1的处理的流程图,图11是表示以行为单位进行的平坦度检测2的处理的流程图,图12是表示关注像素和在关注像素以前读取的附近像素之间的配置的图,图13是表示绝对值处理的另一例子的图表,图14是表示成为数据编码装置1的处理对象的像素数据的图,图15是表示由数据编码装置1计算出的校正预测误差值的图,图16是表示在以像素为单位的平坦度检测中所使用的各阈值和设定值的图表。
该处理开始时,首先计算预测值(步骤S21)(与图5的步骤S1对应的处理)。该预测值的计算基于已经扫描的像素数据来预测关注像素的像素值,这里,使用如图12所示的关注像素附近的像素值。这里,在图12中,关注像素用x表示,关注像素的左邻的像素用a表示,关注像素的上邻的像素用b表示,关注像素的左上邻的像素用c表示。而且,将各像素a、b、c的像素值设为Ra、Rb、Rc、将关注像素x的预测值设为Px时,基于这样的像素数据的空间相关性,通过作为预测误差值运算单元的一部分的预测部11,使用例如下面的式1所示的预测式来计算预测值Px。
Px=max(Ra,Rb)(Rc<min(Ra、Rb)时)Px=min(Ra,Rb)(Rc>max(Ra、Rb)时)Px=Ra+Rb-Rc(为其它情况时)
这里,右边的记号max(x,y)表示取x和y中的不小者的值,记号min(x,y)表示取x和y中的不大者的值,以下也同样。
另外,这里,设为使用了如式1所示的、适合于边缘检测的预测式,但可应用的预测式不限于此,也可以使用其它各种预测式。例如,举出以下的式2~式8作为预测式的几个例子。首先,式2将关注像素的左邻的像素a的像素值Ra设为关注像素x的预测值Px。认为这在水平方向上的像素之间的相关性高的情况下,可以得到精度高的预测值。
Px=Ra接着,式3将关注像素的上邻的像素b的像素值Rb设为关注像素x的预测值Px。认为这在垂直方向上的像素之间的相关性高的情况下,可以得到精度高的预测值。
Px=Rb进而,式4将关注像素的左上邻的像素c的像素值Rc设为关注像素x的预测值Px。认为这在从左上到右下的斜方向上的像素之间的相关性高的情况下,可以得到精度高的预测值。
Px=Rc然后,式5将关注像素x的左邻的像素a的像素值Ra和关注像素x的上邻的像素b的像素值Rb相加,并减去关注像素x的左上邻的像素c的像素值Rc,设为关注像素x的预测值Px。认为这在从左上到右下的斜方向上的像素的像素值的变化率有规律性的情况下,可以得到精度高的预测值。
Px=Ra+Rb-Rc然后,式6对关注像素x的左邻的像素a的像素值Ra加上从关注像素x的上邻的像素b的像素值Rb中减去关注像素x的左上邻的像素c的像素值Rc后除以2的值,设为关注像素x的预测值Px。认为这在水平方向上的像素的像素值的变化率有规律性的情况下,可以得到精度高的预测值。
Px=Ra+{(Rb-Rc)/2}然后,式7对关注像素x的上邻的像素b的像素值Rb加上从关注像素x的左邻的像素a的像素值Ra中减去关注像素x的左上邻的像素c的像素值Rc后除以2的值,设为关注像素x的预测值Px。认为这在垂直方向上的像素的像素值的变化率有规律性的情况下,可以得到精度高的预测值。
Px=Rb+{(Ra-Rc)/2}进而,式8将关注像素x的左邻的像素a的像素值Ra和关注像素x的上邻的像素b的像素值Rb之间的平均值设为关注像素x的预测值Px。认为这在与周围的像素之间的相关性高的情况下(例如,比较平坦的情况下),可以得到精度高的预测值。
Px=(Ra+Rb)/2另外,如上述的各预测式不限于对一个图像数据仅使用一个,也可以组合使用。即,例如,即使基本上使用如式2所示的预测式,当行中的左端的像素成为关注像素时,在其更左侧不存在像素,因此考虑使用式3所示的预测式等的组合。而且,不限于上述的各预测式,只要是作为先于关注像素读取的像素、与关注像素空间距离近的像素,就可以使用任意的一个或一个以上的像素的像素数据来计算预测值。
这里,假设向数据编码装置1输入的图像数据的例如一行如图14所示,从左向右排列了例如x0、x1、…、xi、xi+1的各像素值。而且,将关注像素的像素值设为xi,将该关注像素中的预测值记为Ri而代替上述Px。
此时,作为预测误差值运算单元的一部分的减法器12如式9所示,通过从关注像素的实际像素值xi减去预测值Ri来计算预测误差值Pi(步骤S22)(与图5的步骤S2对应的处理)。
Pi=xi-Ri进而,滤波部13内的转换预测误差/预测误差低位生成部31如下面的式10所示,通过去掉(设为0)预测误差值Pi的低位(这里为最低的1位),从而计算转换预测误差值P’i。
Pi′=[Pi2]×2]]>这里,式10的右边的括号是取整函数,表示不超过括号内的数的最大整数。另外,该形状的括号在以下也同样表示取整函数。此外,除以2后使用取整函数的运算在计算机中可以通过右移位进行。从而,该式10所示的运算可以通过组合右移位和左移位来进行。而且,进行这样的处理是由于预测误差值Pi的低位的随机性高,因此分开来进行另外处理的做法利于提高压缩效率的缘故。
接着,校正值生成部32使用转换预测误差值P’i根据下面的式11所示的递推式计算校正值Ci(步骤S23)(与图5的步骤S3对应的处理)。
Ci=[Pi′2]+[Ci-12]]]>(其中,C0-1=0)观察式11可知,校正值Ci以大约一半的比例包含转换预测误差值P’i,并且根据该递推式的结构,包含大约1/4的比例的转换预测误差值P’i-1,包含大约1/8的比例的转换预测误差值P’i-2,…。由此,式11理论上构成无限滤波的结构。从而,可以认为校正值Ci是离关注像素越远则以越小的比例包含转换预测误差值P’(进而,预测误差值P)、用于将仅根据邻接像素计算的预测误差值校正为根据周围的多个像素的像素值计算的值。
另外,这里,校正值生成部32通过如式11所示的递推式来计算校正值Ci,但不限于此,例如也可以由构成如下面的式12所示的有限滤波的结构的算式来计算校正值Ci。
Ci=[Pi′2]+[Pi-12]]]>(其中,P’0-1=0)此外,转换预测误差/预测误差低位生成部31如以下的式13所示地计算并输出在式10中从预测误差值Pi中去掉的预测误差低位PLi。
PLi=Pi-P’i进而,作为校正预测误差值运算单元的一部分的减法器14如以下的式14所示那样,通过从转换预测误差值P’i中减去校正值Ci,从而计算校正预测误差值P’’i(参照图15)(步骤S24)(与图5的步骤S4对应的处理)。
Pi’’=Pi’-Ci如上所述,由于校正值Ci包含多个与像素有关的预测误差值P的信息,因此校正预测误差值P’’i也包含多个与像素有关的预测误差值P的信息。从而,期待通过使用该校正预测误差值P’’i来代替预测误差值P,即使在输入了空间相关度低的图像数据(例如,随机性高的图像数据等)时,也可以防止值增大,压缩率下降。
在以下的说明以及图8、图9的流程图中,将这样计算出的校正预测误差值P’’i记为校正预测误差值pred_diff。
接着,绝对值处理部15对校正预测误差值pred_diff进行绝对值处理,从而计算绝对值处理后的校正预测误差值abs_pred_diff(步骤S25)(与图5的步骤S5、S6的一部分对应的处理)。该绝对值处理有各种方法,例如,可以举出如下述式15所示地计算的方法。
abs_pred_diff=pred_diff (pred_diff≥0时)abs_pred_diff=abs(pred_diff)-1 (pred_diff<0时)这里,第二式右边的abs()表示取绝对值。
而且,绝对值处理部15在通过如该式15所示的运算进行绝对值处理的情况下,如图1等所示地另外单独输出表示符号的数据(正负数据)。
此外,作为绝对值处理的其它的方法,可举出如图13所示,对预测误差值‘0’提供绝对值处理数据‘0’,对预测误差值‘1’提供绝对值处理数据‘1’,对预测误差值‘-1’提供绝对值处理数据‘2’,对预测误差值‘2’提供绝对值处理数据‘3’,对预测误差值‘-2’提供绝对值处理数据‘4’等依次进行的方法。
另外,不限于此,也可以通过其它的手段进行绝对值处理。
这样绝对值处理后的校正预测误差值abs_pred_diff作为成为Golomb rice编码的对象的数据、在后面说明的步骤S31的处理中使用、同时如以下说明的那样使用以确定上述的k参数。
对于这样计算出的绝对值处理后的校正预测误差值abs_pred_diff,首先延迟一个像素,以进行确定k参数的处理(步骤S26)。
然后,基于按照扫描顺序的一个像素前的绝对值处理后的校正预测误差值abs_pred_diff,进行前像素动态范围的计算(步骤S27)、基于与第一阈值的比较的以像素为单位的平坦度检测1的处理(步骤S28)、基于与第二阈值的比较的以像素为单位的平坦度检测2的处理(步骤S29)。
这里,步骤S27中的前像素动态范围计算的处理计算前像素的有效的像素值部分的位数。即,作为动态范围计算单元的动态范围计算部16进行如下处理对于前像素的像素值,从高位向低位每次检测一位,求出最先得到不是‘0’的位值(换言之,位值‘1’)的位的位数。将此时求出的动态范围设为pre_range。
此外,步骤S28中的以像素为单位的平坦度检测1的处理如图8所示地进行。
即,开始该处理时,首先,比较部41判断绝对值处理后的校正预测误差值abs_pred_diff是否小于等于预定的阈值th1(步骤S41a)。
这里,在小于等于阈值th1的情况下,对游程计数器42内所具有的游程计数值run_count1进行向上计数(在图8中,由记号‘run_count1+1’来表示向上计数)(步骤S42a)。该游程计数值run_count1是表示小于等于阈值th1的绝对值处理后的校正预测误差值abs_pred_diff连续了几个像素的计数值。
而且,比较部43判断游程计数值run_count1是否大于等于表示预定的游程长度的阈值th_run1(步骤S43a)。
这里,在大于等于阈值th_run1的情况下,k参数下限值确定部44将预定的k参数设定值k_low1存储到k参数候选k_param1中(步骤S44a)。
此外,在步骤S41a中,在判断为绝对值处理后的校正预测误差值abs_pred_diff大于预定的阈值th1的情况下,游程计数器42对游程计数值run_count1进行初始化(即,存储‘0’)(步骤S45a)。
在该步骤S45a结束、或在步骤S43a中判断为游程计数值run_count1小于阈值th_run1的情况下,k参数下限值确定部44向k参数候选k_param1存储预定的k参数设定值k_high1(这里,k_high1>k_low1)(步骤S46a)。
这样,在步骤S44a或步骤S46a结束时,从该处理返回到图7所示的处理。
进而,步骤S29中的以像素为单位的平坦度检测2的处理如图9所示。该图9所示的处理与图8所示的处理相比,除了阈值th1变成阈值th2(th2>th1),游程计数值run_count1变成游程计数run_count2,表示预定的游程长度的阈值th_run1变成阈值th_run2,预定的k参数设定值k_low1变成预定的k参数设定值k_low2(k_low2>k_low1),预定的k参数设定值k_high1变成预定的k参数设定值k_high2(k_high2>k_low2),k参数候选k_param1变成k参数候选k_param2这些点之外,步骤S41a~S46a的各处理分别对应于步骤S41b~S46b的各处理。
另外,具体地,例如图16所示地设定图8所示的以像素为单位的平坦度检测1的处理、图9所示的以像素为单位的平坦度检测2的处理中所使用的各阈值和设定值。
即,阈值th1为‘3’,阈值th2为‘15’,阈值th_run1为‘2’,阈值th_run2为‘2’,k参数设定值k_low1为‘2’,k参数设定值k_low2为‘4’,k参数设定值k_high1为‘5’,k参数设定值k_high2为‘5’。
然后,基于上述步骤S27、S28、S29的各处理的结果、即由步骤S27计算出的pre_range、由步骤S28计算出的k_param1以及由步骤S29计算出的k_param2,k参数确定部18如以下的式16所示地确定k参数k_param(步骤S30)。
k_param=max(pre_range,min(k_param1,k_param2))另外,上述步骤S26~S30的处理对应于图5的步骤S5的处理的主要部分。
而且,基于计算出的k参数k_param,作为编码单元的Golomb rice编码部19对在上述步骤S25中绝对值处理后的校正预测误差值abs_pred_diff进行Golomb rice编码(步骤S31)(对应于图5的步骤S6的主要部分的处理)。作为具体的例子,绝对值处理后的校正预测误差值abs_pred_diff以二进制数表示为‘00001110110’,k参数k_param为‘5’的情况下,低5位‘10110’为固定长度码部分,剩余的高位‘000011’用十进制数表示时为‘3’,因此可变长度码部分为‘000’,在该可变长度码部分的后面附加分隔码‘1’而成为‘0001’。然后,通过将它们合成,根据Golomb rice编码得到的码成为‘000110110’。这样,可知11位的信息被压缩为9位。
这样,在1像素的Golomb rice编码结束后,判断该像素是否为一行中的最后的像素、即一行的编码是否已结束(步骤S32)。
这里,在判断为还有一行的编码未结束的情况下,返回步骤S21,对于同一行内的下一个像素重复进行如上述的处理。
另一方面,在步骤S32中,在判断为一行的编码已结束的情况下,进行以行为单位的平坦度检测1的处理(步骤S33)(对应于图5的步骤S5的一部分的处理)、以行为单位的平坦度检测2的处理(步骤S34)(对应于图5的步骤S5的一部分的处理)。
即,步骤S33中的以行为单位的平坦度检测1的处理如图10所示,通过由游程计数器42根据外部计数复位信号而对游程计数值run_count1进行初始化(换言之,存储‘0’)来进行(步骤S51a)。
同样,步骤S34中的以行为单位的平坦度检测2的处理如图11所示,通过由游程计数器42根据外部计数复位信号而对游程计数run_count2进行初始化(换言之,存储‘0’)来进行(步骤S51b)。
在这些步骤S33以及步骤S34的处理结束之后,判断是否对图像数据的所有行进行了处理、即图像数据整体的处理是否结束(步骤S35),在还未结束的情况下,返回上述步骤S21,对于下一行的像素重复进行如上所述的处理。
此外,在步骤S35中,在判断为图像数据整体的处理结束的情况下,结束该处理。
此外,图6是表示通过数据解码装置2进行的解压处理的流程的概要的流程图。
该处理开始时,作为校正预测误差值解码单元的Golomb rice解码部21根据与图7的步骤S31中所说明的步骤相反的步骤进行Golomb rice解码,计算绝对值处理后的校正预测误差值abs_pred_diff(步骤S11)。另外,如后所述,该绝对值处理后的校正预测误差值abs_pred_diff也用于下一像素的k参数的确定。
接着,正负转换部25使用正负数据,根据绝对值处理后的校正预测误差值abs_pred_diff计算校正预测误差值pred_diff、即校正预测误差值P’’i(步骤S12)。
接着,作为逆滤波单元的一部分的预测误差计算部26使用校正预测误差值P’’i与预测误差低位PLi生成预测误差值Pi(步骤S14)。
即,预测误差计算部26首先使用下面的式17计算转换预测误差值P’i。
Pi′=2×(Pi′′+[Ci-12])]]>(其中,C’0-1=0)这里,式17的右边的校正值Ci-1是使用已经计算出的转换预测误差值P’i-1和已经计算出的校正值Ci-2、由作为逆滤波单元的一部分的逆滤波部27在进行步骤S14之前已经通过上述式11计算出的(步骤S13)。
另外,在根据上述式12计算出校正值Ci的情况下,预测误差计算部26使用下面的式18计算转换预测误差值P’i。
Pi′=2×(Pi′′[P′i-12])]]>(其中,P’0-1=0)然后,预测误差计算部26使用下面的式19,基于由式17或式18计算出的转换预测误差值P’i和预测误差低位PLi来计算预测误差值Pi。
Pi=Pi’+PLi接着,作为关注数据解码单元的一部分的预测部29使用已经计算出的像素值,通过上述式1~式8中的任意一个来生成预测值Ri(预测值Px)(步骤S15)。
然后,作为关注数据解码单元的一部分的加法器28通过下面的式20,基于预测值Ri和预测误差值Pi计算像素值xi(步骤S16)。
xi=Ri+Pi这样计算出的像素值xi成为数据解码装置2的输出。
此外,在使Golomb rice解码部21输出的绝对值处理后的校正预测误差值abs_pred_diff延迟一像素之后,由动态范围计算部22如上所述地计算动态范围pre_range,同时由平坦度检测部23基于两种阈值th1、th2如上所述地计算k参数候选k_param1、k_param2。然后,基于这些计算结果,作为码长设定单元的k参数确定部24如式16所示这样确定k参数(步骤S17)。
另外,在上述中,作为成为处理对象的数据,举出图像数据作为例子,但由数据编码装置1和数据解码装置2处理而得到的数据当然不限于此。
此外,在上述中,通过数据编码装置1和数据解码装置2来进行了处理,但也可以通过对现有的运算器等应用数据编码方法和数据解码方法来进行处理。或者,根据用于进行与数据编码装置1和数据解码装置2同等的处理的程序,在计算机中进行处理。
此外,在上述中,作为滤波的例子,举出计算校正预测误差的技术作为例子,但不限于此,只要是将在关注像素之前读取的多个像素的信息并入到为生成k参数所使用的像素的信息中的滤波,就可以广泛地应用。
而且,在上述中,作为编码的例子举出了Golomb rice编码的例子,作为解码的例子举出了Golomb rice解码的例子,但不限于此,更一般地,只要是将数据分为可变长度码部分和固定长度码部分来进行编码的手段即可。从而,作为编码对象的不限于进行了绝对值处理后的校正预测误差值。
根据这样的实施方式1,由于仅使用邻接像素位置的信息(其中,在邻接像素位置的信息中包含有邻接像素的信息、在该邻接像素之前读取的其它像素的信息)来进行k参数的预测,因此可以减小必要的存储量。
进而,由于在进行k参数的预测之前,进行将邻接像素的附近像素的信息与邻接像素的信息一起并入到该邻接像素位置的信息中的滤波,因此可以进一步提高k参数的预测精度,能够发挥高的压缩性能。
而且,作为滤波,由于使用由加减运算和移位等的简单运算的组合构成的处理,因此可以实现处理时间的缩短。
此外,可以用短的处理时间且小的必要存储量来对压缩后的数据进行解码。
另外,本发明不限定于上述实施方式,在不脱离发明的主旨的范围内当然可以进行各种变形或应用。
本发明适用于将数据分为可变长度码部分和固定长度码部分来进行编码或解码的数据编码装置、数据解码装置、数据编码方法、数据解码方法。
权利要求
1.一种数据编码装置,对数据进行预测而转换为预测误差数据,将该预测误差数据分为可变长度码部分和固定长度码部分来进行编码,其特征在于,具有预测误差值运算部,其对数据进行自适应预测而运算预测误差值;校正预测误差值运算部,其通过对对于关注数据的预测误差值和过去求出的预测误差值进行预定的滤波,运算对对于上述关注数据的预测误差值进行校正后的校正预测误差值;以及编码部,其将上述校正预测误差值分为可变长度码部分和固定长度码部分来进行编码。
2.如权利要求1所述的数据编码装置,其特征在于,还具有游程计数器,其用于检测上述校正预测误差值连续地小于等于预定的阈值的次数;以及码长设定部,其根据由上述游程计数器检测出的次数,设定上述校正预测误差值的固定长度码部分的码长。
3.如权利要求2所述的数据编码装置,其特征在于,在由上述游程计数器检测出的次数大于等于预定的游程长度的情况下,上述码长设定部将上述码长设定为与小于预定的游程长度的情况相比更短。
4.如权利要求2所述的数据编码装置,其特征在于,可以设定多种上述阈值,上述游程计数器对于所设定的多种阈值分别检测校正预测误差值连续地小于等于该阈值的次数。
5.如权利要求4所述的数据编码装置,其特征在于,上述码长设定部将第一码长设定得比第二码长短,该第一码长是由上述游程计数器针对第一阈值检测出的次数大于等于预定的游程长度的情况下的码长,该第二码长是由上述游程计数器针对大于该第一阈值的第二阈值检测出的次数大于等于预定的游程长度的情况下的码长。
6.如权利要求5所述的数据编码装置,其特征在于,还具有动态范围计算部,其用于检测上述校正预测误差值的有效的位数作为动态范围,上述码长设定部将上述第一码长和上述第二码长中的不大者、与上述动态范围中的不小者设定为上述校正预测误差值的固定长度码部分的码长。
7.一种数据编码方法,对数据进行预测而转换为预测误差数据,将该预测误差数据分为可变长度码部分和固定长度码部分来进行编码,其特征在于,具有对数据进行自适应预测而运算预测误差值的步骤;通过对对于关注数据的预测误差值和过去求出的预测误差值进行预定的滤波,运算对对于上述关注数据的预测误差值进行校正后的校正预测误差值的步骤;以及将上述校正预测误差值分为可变长度码部分和固定长度码部分来进行编码的步骤。
8.一种数据解码装置,对数据进行自适应预测而运算预测误差值,对对于关注数据的预测误差值和过去求出的预测误差值进行预定的滤波,从而运算对对于上述关注数据的预测误差值进行校正后的校正预测误差值,对通过将上述校正预测误差值分为可变长度码部分和固定长度码部分来进行编码而得到的编码数据进行解码,其特征在于,具有校正预测误差值解码部,其通过将上述编码数据分为可变长度码部分和固定长度码部分来进行解码,求出校正预测误差值;逆滤波部,其对于由上述校正预测误差值解码部进行解码后的校正预测误差值,进行预定滤波的逆滤波,由此求出预测误差值;以及关注数据解码部,其使用由上述逆滤波部求出的预测误差值求出关注数据。
9.一种数据解码方法,对数据进行自适应预测而运算预测误差值,对对于关注数据的预测误差值和过去求出的预测误差值进行预定的滤波,从而运算对对于上述关注数据的预测误差值进行校正后的校正预测误差值,对通过将上述校正预测误差值分为可变长度码部分和固定长度码部分来进行编码而得到的编码数据进行解码,其特征在于,具有通过将上述编码数据分为可变长度码部分和固定长度码部分来进行解码,求出校正预测误差值的步骤;对于解码后的上述校正预测误差值,进行预定滤波的逆滤波,由此求出预测误差值的步骤;以及使用所求出的上述预测误差值求出关注数据的步骤。
全文摘要
本发明提供处理时间短、必要的存储量小、可以发挥高的压缩性能的数据编码装置等。数据编码装置(1)具有基于已经读取的数据来计算关注数据的预测值的预测部(11);运算作为关注数据和预测值之间的误差的预测误差值的减法器(12);通过对于关注数据的预测误差值和过去求出的预测误差值进行滤波,从而运算对于关注数据的校正预测误差值的滤波部(13)和减法器(14);对校正预测误差值进行绝对值处理的绝对值处理部(15);基于绝对值处理后的校正预测误差值的平坦度和动态范围来确定固定长度码部分的码长的k参数确定部(18);以及将绝对值处理后的校正预测误差值分为可变长度部分和固定长度部分来进行编码的Golomb rice编码部(19)。
文档编号H04N7/34GK1866750SQ20061007451
公开日2006年11月22日 申请日期2006年4月21日 优先权日2005年5月20日
发明者石川隆志 申请人:奥林巴斯映像株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1