编码装置、解码装置、编码方法、编码程序、解码方法以及解码程序.pdf

上传人:t**** 文档编号:1896615 上传时间:2018-07-23 格式:PDF 页数:31 大小:4.68MB
返回 下载 相关 举报
摘要
申请专利号:

CN201280074102.7

申请日:

2012.06.21

公开号:

CN104412512A

公开日:

2015.03.11

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H03M7/36申请日:20120621|||公开

IPC分类号:

H03M7/36; G06F5/00

主分类号:

H03M7/36

申请人:

三菱电机株式会社

发明人:

柴田秀哉

地址:

日本东京

优先权:

专利代理机构:

中国国际贸易促进委员会专利商标事务所11038

代理人:

肖靖

PDF下载: PDF下载
内容摘要

数据预测值生成部(210)根据作为浮点数的数据的原始数据的履历来生成要进行编码的目标的原始数据(101)用的预测值(数据预测值)。数据预测值整形部(221)使数据预测值的指数值与原始数据(101)的指数值一致地调整数据预测值的尾数值。第一残差生成部(222)生成新的原始数据(101)与调整后的数据预测值的残差(第一残差)。第一残差预测值生成部(223)根据第一残差的履历来生成第一残差用的预测值(第一残差预测值)。第二残差生成部(224)生成第一残差与第一残差预测值的残差(第二残差)。残差编码部(230)对第二残差进行编码来生成编码数据(102)。

权利要求书

权利要求书
1.  一种编码装置,其特征在于,具备:
数据值存储部,存储数据值,该数据值是使用指数值和尾数值表示的浮点数的值且是要进行编码的目标的值;
数据关联值存储部,存储数据关联值,该数据关联值是用于对存储在所述数据值存储部中的所述数据值进行编码的浮点数的值;
调整尾数值生成部,根据存储在所述数据关联值存储部中的所述数据关联值的指数值和存储在所述数据值存储部中的所述数据值的指数值之差,调整所述数据关联值的尾数值来生成调整尾数值;
编码对象值生成部,根据存储在所述数据值存储部中的所述数据值的所述指数值来生成特定的指数值,根据所述数据值的尾数值和通过所述调整尾数值生成部所生成的所述调整尾数值来生成特定的尾数值,根据所述特定的指数值和所述特定的尾数值来生成作为浮点数的值且是要进行编码的值的编码对象值;以及
数据编码值生成部,对通过所述编码对象值生成部所生成的所述编码对象值进行编码来生成数据编码值。

2.  根据权利要求1所述的编码装置,其特征在于,
所述调整尾数值生成部计算如下情况下的所述数据关联值的变更后的尾数值作为所述调整尾数值:在将所述数据关联值的指数值变更为与所述数据值的指数值相同的值且变更所述数据关联值的所述尾数值以使得所述数据关联值的位数不会由于所述数据关联值的指数值的变更而变化。

3.  根据权利要求1或者2所述的编码装置,其特征在于,
所述调整尾数值生成部对以一个以上的位表示所述数据关联值的所述尾数值的尾数部将规定的追加位数的位追加为高位侧的位,在所述数据关联值的所述指数值为所述数据值的所述指数值以下的情况下,将所述数据关联值的所述尾数值向低位侧移动与所述数据关联值的所述指数值和所述数据值的所述指数值的指数值差相当的位数,在 所述数据关联值的所述指数值大于所述数据值的所述指数值且所述指数值差为所述追加位数以下的情况下,将所述数据关联值的所述尾数值向高位侧移动与所述指数值差相当的位数,在所述数据关联值的所述指数值大于所述数据值的所述指数值且所述指数值差大于所述追加位数的情况下,在所述数据关联值的所述尾数部设定规定的虚拟值。

4.  根据权利要求1~3中的任一项所述的编码装置,其特征在于,
所述编码对象值生成部将与所述数据值的所述指数值相同的指数值设为所述特定的指数值。

5.  根据权利要求1~4中的任一项所述的编码装置,其特征在于,
所述编码对象值生成部将所述数据值的所述尾数值与所述调整尾数值的合计值、和所述数据值的所述尾数值与所述调整尾数值之差的值中的某个值设为所述特定的尾数值。

6.  根据权利要求1~5中的任一项所述的编码装置,其特征在于,
所述编码装置还具备中间关联值存储部,该中间关联值存储部存储作为浮点数的特定的值的中间关联值,
所述编码对象值生成部使用所述特定的指数值和所述特定的尾数值来生成作为浮点数的值的中间值,根据所述中间值和存储在所述中间关联值存储部中的所述中间关联值来生成所述编码对象值。

7.  根据权利要求6所述的编码装置,其特征在于,
所述编码对象值生成部将所述中间值的指数值与所述中间关联值的指数值之差的值用作所述编码对象值的指数值,并且将与所述中间值的尾数值相同的尾数值用作所述编码对象值的尾数值来生成所述编码对象值。

8.  根据权利要求1~7中的任一项所述的编码装置,其特征在于,
所述编码装置还具备:
过去中间值存储部,将过去生成的一个以上的中间值分别存储为过去中间值;以及
中间关联值生成部,根据存储在所述过去中间值存储部中的至少某个过去中间值来生成所述中间关联值。

9.  根据权利要求1~8中的任一项所述的编码装置,其特征在于,
所述编码装置还具备:
过去数据值存储部,将过去编码了的一个以上的数据值分别存储为过去数据值;以及
数据关联值生成部,根据存储在所述过去数据值存储部中的至少某个过去数据值来生成所述数据关联值。

10.  一种解码装置,其特征在于,具备:
数据编码值存储部,存储数据编码值,该数据编码值是使用指数值和尾数值表示的浮点数的值且是被编码了的值;
数据关联值存储部,存储数据关联值,该数据关联值是用于获得要进行解码的目标的数据值的浮点数的值;
编码对象值解码部,对存储在所述数据编码值存储部中的所述数据编码值进行解码来生成作为浮点数的值的编码对象值;
数据指数值解码部,根据通过所述编码对象值解码部所生成的所述编码对象值的指数值来生成所述数据值的指数值;
调整尾数值解码部,根据通过所述数据指数值解码部所生成的所述数据值的所述指数值与存储在所述数据关联值存储部中的所述数据关联值的指数值之差,调整所述数据关联值的尾数值来生成调整尾数值;以及
数据尾数值解码部,根据通过所述调整尾数值解码部所生成的所述调整尾数部和通过所述编码对象值解码部所生成的所述编码对象值的尾数值来生成所述数据值的尾数值。

11.  一种编码方法,是使用具备数据值存储部、数据关联值存储部、调整尾数值生成部、编码对象值生成部、以及数据编码值生成部的编码装置的编码方法,该编码方法的特征在于,
所述数据值存储部是存储数据值的存储部,该数据值是使用指数值和尾数值表示的浮点数的值且是要进行编码的目标的值,
所述数据关联值存储部是存储数据关联值的存储部,该数据关联值是用于对存储在所述数据值存储部中的所述数据值进行编码的浮点 数的值,
所述调整尾数值生成部根据存储在所述数据关联值存储部中的所述数据关联值的指数值与存储在所述数据值存储部中的所述数据值的指数值之差,调整所述数据关联值的尾数值来生成调整尾数值,
所述编码对象值生成部根据存储在所述数据值存储部中的所述数据值的所述指数值来生成特定的指数值,根据所述数据值的尾数值和通过所述调整尾数值生成部所生成的所述调整尾数值来生成特定的尾数值,根据所述特定的指数值和所述特定的尾数值来生成作为浮点数的值且是要进行编码的值的编码对象值,
所述数据编码值生成部对通过所述编码对象值生成部所生成的所述编码对象值进行编码来生成数据编码值。

12.  一种编码程序,其特征在于,
使计算机执行根据权利要求11所述的编码方法。

13.  一种解码方法,是使用具备数据编码值存储部、数据关联值存储部、编码对象值解码部、生成所述数据值的指数值的数据指数值解码部、调整尾数值解码部、以及数据尾数值解码部的解码方法,该解码方法的特征在于,
所述数据编码值存储部是存储数据编码值的存储部,该数据编码值是使用指数值和尾数值表示的浮点数的值且是被编码了的值,
所述数据关联值存储部是存储数据关联值的存储部,该数据关联值是用于获得要进行解码的目标的数据值的浮点数的值,
所述编码对象值解码部对存储在所述数据编码值存储部中的所述数据编码值进行解码来生成作为浮点数的值的编码对象值,
所述数据指数值解码部根据通过所述编码对象值解码部所生成的所述编码对象值的指数值来生成所述数据值的指数值,
所述调整尾数值解码部根据通过所述数据指数值解码部所生成的所述数据值的所述指数值与存储在所述数据关联值存储部中的所述数据关联值的指数值之差,调整所述数据关联值的尾数值来生成调整尾数值,
所述数据尾数值解码部根据通过所述调整尾数值解码部所生成的所述调整尾数部和通过所述编码对象值解码部所生成的所述编码对象值的尾数值来生成所述数据值的尾数值。

14.  一种解码程序,其特征在于,
用于使计算机执行根据权利要求13所述的解码方法。

说明书

说明书编码装置、解码装置、编码方法、编码程序、解码方法以及解码程序
技术领域
本发明涉及一种例如用于对数据进行编码(压缩)或者解码的编码装置、解码装置、编码方法、编码程序、解码方法以及解码程序。
背景技术
作为对数据序列进行可逆压缩时的编码方法,使用了如下的方法。
首先,求出针对编码对象数据的预测值(预测值生成)。接着,求出预测值与编码对象数据的残差(残差生成)。然后,对由残差组成的数据序列以恰当的方式进行编码而获得编码数据(残差编码)。
当在残差编码中使用如伽马编码那样的可变长度编码的情况下,大多通过插入求出残差的阶段来获得由比编码对象数据小的值(接近0的值)组成的编码数据,通过可变长度编码来提高压缩效果。
然而,当对浮点数的数据(编码对象数据)通过简单的浮点运算来求出残差时,产生信息损失导致的误差,因此无法进行可逆压缩。
为了避免信息损失,还能够将浮点数数据视为整数数据而通过简单的整数运算来求出残差,但是该方法忽略了浮点数的数据结构,因此有可能得不到恰当的残差。
为了解决这种课题,专利文献1公开了如下的方法:将浮点数的数据(符号部、指数部、尾数部)分离为由指数部组成的第1部分、和由符号部和尾数部组成的第2部分这两个部分,将各个部分视为整数数据来求出残差。
这样,将符号部、指数部、尾数部视为独立的整数数据来求出残差的方法还能够在其它的文献(例如专利文献2)中见到,可以说被广泛地利用。
然而,在编码对象数据的指数部的值与预测值的指数部的值不同 的情况下,在编码对象数据的尾数部所表示的值与预测值的尾数部所表示的值中位数的大小不同。因此,即使通过专利文献1等所公开的方法求出尾数部的残差,也得不到作为尾数部的残差而有意义的值。这可能成为使压缩率下降的主要原因。
例如,设为编码对象数据是“1.23×10^4”(尾数部“1.23”、指数部“4”)、预测值是“9.98×10^3”(尾数部“9.98”、指数部“3”)。
在这种情况下,编码对象数据的尾数部“1.23”的一位的值“1”表示10进制数的万位的值“10000”的意思。另一方面,预测值的尾数部“9.98”的一位的值“9”表示10进制数的千位的值“9000”的意思。
即,在编码对象数据的尾数部“1.23”与预测值的尾数部“9.98”中位数的大小不同,因此这些尾数部的比较不具有作为浮点数的意义,通过这些尾数部的比较得不到作为尾数部的残差而有意义的值。
专利文献1:日本特开2011-175542号公报
专利文献2:日本特开2011-238236号公报
专利文献3:日本特开2005-018606号公报
发明内容
本发明的目的在于,例如即使在浮点数的数据值(进行可逆压缩的目标数据值)的指数值与用于编码的预测值的指数值不同的情况下,也能够不使压缩率降低地将数据值进行可逆压缩(编码)。
本发明的编码装置具备:
数据值存储部,存储数据值,该数据值是使用指数值和尾数值表示的浮点数的值且是要进行编码的目标的值;
数据关联值存储部,存储数据关联值,该数据关联值是用于对存储在所述数据值存储部中的所述数据值进行编码的浮点数的值;
调整尾数值生成部,根据存储在所述数据关联值存储部中的所述数据关联值的指数值和存储在所述数据值存储部中的所述数据值的指数值之差,调整所述数据关联值的尾数值来生成调整尾数值;
编码对象值生成部,根据存储在所述数据值存储部中的所述数据 值的所述指数值来生成特定的指数值,根据所述数据值的尾数值和通过所述调整尾数值生成部所生成的所述调整尾数值来生成特定的尾数值,根据所述特定的指数值和所述特定的尾数值来生成作为浮点数的值且是行编码的值的编码对象值;以及
数据编码值生成部,对通过所述编码对象值生成部所生成的所述编码对象值进行编码来生成数据编码值。
根据本发明,例如即使在浮点数的数据值的指数值与用于编码的预测值(数据关联值)的指数值不同的情况下,也能够不使压缩率降低地对数据值进行可逆压缩(编码)。
附图说明
图1是实施方式1中的数据压缩装置100的功能结构图。
图2是表示实施方式1中的原始数据101的数据结构的一个例子的图。
图3是表示实施方式1中的数据编码部200的功能结构的图。
图4是表示实施方式1中的数据编码部200的数据编码处理的流程图。
图5是表示实施方式1中的数据预测值整形处理(S120)的流程图。
图6是表示实施方式1中的第一残差生成处理(S130)的流程图。
图7是表示实施方式1中的符号值·尾数值设定处理(S132)的一个例子的流程图。
图8是表示实施方式1中的数据解码部300的功能结构的图。
图9是表示实施方式1中的数据解码部300的数据解码处理的流程图。
图10是表示实施方式1中的整形后原始数据解码处理(S270)的一个例子的图。
图11是表示实施方式1中的数据压缩装置100的硬件资源的一个例子的图。
附图标记说明
100:数据压缩装置;101:原始数据;102:编码数据;190:数据存储部;191:原始数据履历文件;192:第一残差履历文件;200:数据编码部;210:数据预测值生成部;220:残差生成部;221:数据预测值整形部;222:第一残差生成部;223:第一残差预测值生成部;224:第二残差生成部;230:残差编码部;300:数据解码部;301:数据预测值生成部;302:第一残差预测值生成部;310:第二残差解码部;320:第一残差解码部;330:预测值整形方法确定部;340:原始数据解码部;901:CPU;902:总线;903:ROM;904:RAM;905:通信板;911:显示器;912:键盘;913:鼠标;914:驱动器;920:磁盘装置;921:OS;922:程序群;923:文件群。
具体实施方式
实施方式1.
说明对浮点数的数据值进行压缩(编码)以及解码的数据压缩装置的方式。
图1是实施方式1中的数据压缩装置100的功能结构图。
根据图1说明实施方式1中的数据压缩装置100的功能结构。
数据压缩装置100(编码装置、解码装置的一个例子)具备数据编码部200、数据解码部300以及数据存储部190。
数据编码部200输入要进行编码的目标数据(数据值的一个例子)(下面称为“原始数据101”)。
数据编码部200生成表示进行了编码的原始数据101的数据(数据编码值的一个例子)(下面称为“编码数据102”)。
数据编码部200输出所生成的编码数据102。
关于数据编码部200的详细情况将后述。
数据解码部300输入编码数据102,使用所输入的编码数据102来对原始数据101进行解码,输出原始数据101。
关于数据解码部300的详细情况将后述。
数据存储部190(数据值存储部、数据关联值存储部、中间关联值 存储部、过去中间值存储部、过去数据值存储部、数据编码值存储部的一个例子)存储数据压缩装置100所使用的数据。
例如,数据存储部190存储原始数据101、编码数据102、原始数据履历文件191以及第一残差履历文件192。
原始数据履历文件191是包含过去被编码了的一个以上的原始数据101(原始数据101的履历)(过去数据值的一个例子)的文件。但是,也可以不是文件形式,而是将原始数据101的多个履历存储在存储器中。
第一残差履历文件192是包含过去生成了的第一残差(第一残差的履历)(过去中间值的一个例子)的文件。但是,也可以不是文件形式,而是将第一残差的多个履历存储在存储器中。关于第一残差将后述。
图2是表示实施方式1中的原始数据101的数据结构的一个例子的图。
根据图2来说明实施方式1中的原始数据101的数据结构。
原始数据101是使用符号部、指数部以及尾数部来表示的浮点数的值。另外,用于对原始数据101进行压缩(编码)或者解码的各种数据值也是浮点数的值。
在实施方式1中,设为原始数据101以及各种数据值是如图2所示的IEEE 754形式(浮点数的形式的一个例子)或者以遵照它的形式表示的单精度浮点数的值。但是,原始数据101以及各种数据值也可以是以其它的形式表示的浮点数的值。
以IEEE 754形式表示的单精度浮点数的值由1比特的符号部、8比特的指数部、以及23比特的尾数部共计32比特来表示。
下面,将符号部的值(正或者负)称为“符号值”、指数部的值称为“指数值”、尾数部的值称为“尾数值”。
例如,在10进制数形式的数据值“-1.23×10^4(=-12300)”的情况下,符号值为“-”、指数值为“4”、尾数值为“1.23”。
图3是表示实施方式1中的数据编码部200的功能结构的图。
根据图3来说明实施方式1中的数据编码部200的功能结构。
数据编码部200具备数据预测值生成部210、残差生成部220、以及残差编码部230。
数据预测值生成部210(数据关联值生成部的一个例子)根据预先存储在数据存储部190中的原始数据履历文件191(省略图示)来生成数据预测值。数据预测值(数据关联值的一个例子)是用于预测(解码)原始数据101的值。
关于数据预测值生成部210的详细情况将后述。
残差生成部220(编码对象值生成部的一个例子)根据原始数据101和通过数据预测值生成部210所生成的数据预测值来生成第二残差(编码对象值的一个例子)。
残差生成部220具备数据预测值整形部221、第一残差生成部222、第一残差预测值生成部223以及第二残差生成部224。
数据预测值整形部221(调整尾数值生成部的一个例子)根据原始数据101的指数值与数据预测值的指数值之差来对数据预测值进行整形。
第一残差生成部222生成原始数据101与整形后的数据预测值的残差(下面称为“第一残差”)。
第一残差预测值生成部223(中间关联值生成部的一个例子)根据预先存储在数据存储部190中的第一残差履历文件192(省略图示)来生成第一残差预测值。第一残差预测值(中间关联值的一个例子)是用于预测(解码)第一残差(中间值的一个例子)的值。
第二残差生成部224生成第一残差与第一残差预测值的残差(下面称为“第二残差”)。
关于残差生成部220的各功能结构的详细情况将后述。
残差编码部230(数据编码值生成部的一个例子)对通过残差生成部220的第二残差生成部224所生成的第二残差进行编码。由此,生成表示进行了编码的原始数据101的编码数据102。
关于残差编码部230的详细情况将后述。
图4是表示实施方式1中的数据编码部200的数据编码处理的流程图。
根据图4来说明实施方式1中的数据编码部200的数据编码处理(编码方法的一个例子)。
在S110中,数据预测值生成部210根据原始数据履历文件191来生成数据预测值。数据预测值是具有与原始数据101相同的数据结构的浮点数的值。
下面,将第i个(i为1以上的整数)原始数据101记为d[i]、原始数据d[i]的数据预测值记为p[i]。
例如,数据预测值生成部210从原始数据履历文件191获取前次编码了的原始数据d[i-1],将获取到的原始数据d[i-1]设定为数据预测值p[i]的变量。即,p[i]=d[i-1]。其中,d[0]设为规定的常数。
但是,数据预测值生成部210也可以通过原始数据d[i-1]以外的值来生成数据预测值p[i]。例如,数据预测值生成部210也可以将上上次的原始数据d[i-2]用作为数据预测值p[i]。另外,数据预测值生成部210也可以使用包含在原始数据履历文件191中的各原始数据来进行原始数据的线性预测,将线性预测值(加权后的各原始数据的合计值)用作为数据预测值p[i]。而且,数据预测值生成部210也可以不使用过去的原始数据101而生成数据预测值p[i]。例如,也可以将规定的数据预测值p[i]预先存储在数据存储部190中。
在S110之后,进入S120。
在S120中,数据预测值整形部221输入原始数据d[i]和数据预测值p[i],对所输入的原始数据d[i]和数据预测值p[i]进行整形。
输入意味着从数据存储部190、数据压缩装置100的输入装置获取数据。
图5是表示实施方式1中的数据预测值整形处理(S120)的流程图。
根据图5来说明实施方式1中的数据预测值整形处理(S120)。
在S121中,数据预测值整形部221在原始数据d[i]和数据预测值p[i]的各自的尾数部的高位追加(N+2)比特的比特串“00…001”(连续 (N+1)个比特值0后的比特值1是一个)。参数N是规定的整数。
例如,在原始数据d[i]的尾数部为“100…00”的情况下,追加比特串“00…001”后的原始数据d[i]的尾数部是“00…001100…00”。
追加的比特串的最后比特“1”相当于IEEE 754形式的浮点数中的尾数部的隐位。即,在使用不具有隐位“1”的浮点数的形式的情况下,数据预测值整形部221只要将(N+1)个比特值“0”排列的比特串“00…00”追加到尾数部的高位即可。
在以后的处理中,数据预测值整形部221使用追加比特串后的原始数据d[i]以及数据预测值p[i]。
在S121之后,进入S122。
在S122中,数据预测值整形部221判定原始数据d[i]的指数值是否为数据预测值p[i]的指数值以上的值。
在原始数据d[i]的指数值为数据预测值p[i]的指数值以上的值的情况下(“是”),进入S123。
在原始数据d[i]的指数值为小于数据预测值p[i]的指数值的值的情况下(“否”),进入S124。
在S123中,数据预测值整形部221将数据预测值p[i]的指数值变更为与原始数据d[i]的指数值相同的值。在数据预测值p[i]的指数值与原始数据d[i]的指数值为相同值的情况下,预测值数据p[i]的指数值不变。
而且,数据预测值整形部221将数据预测值p[i]的尾数值在尾数部内右移与原始数据d[i]的指数值和数据预测值p[i]的指数值之差(下面称为“指数值差”)相同数量的比特数(与指数值差相当的位数)(舍去从尾数部超出的低位比特)。
即,数据预测值整形部221将数据预测值p[i]的尾数值变更为小了与指数值差相当的位数的值。另外,在指数值差为零的情况下,数据预测值p[i]的尾数值不变。
从尾数部超出的低位比特也可以忽略。即,超出的低位比特的信息也可以没有。因为数据预测值p[i]的信息损失不会对原始数据d[i]的压缩的可逆性带来影响。
例如,在原始数据d[i]为10进制数形式的“1.23×10^4”、数据预测值p[i]为10进制数形式的“9.98×10^3”的情况下,数据预测值整形部221将数据预测值p[i]变更为“0.99×10^4”。
通过S123,数据预测值整形处理(S120)结束。
在S124中,数据预测值整形部221判定数据预测值p[i]与原始数据d[i]的指数值差是否为参数N以下的值。
在指数值差为参数N以下的值的情况下(“是”),进入S125。
在指数值差为大于参数N的值的情况下(“否”),进入S126。
在S125中,数据预测值整形部221将数据预测值p[i]的指数值变更为与原始数据d[i]的指数值相同的值。
而且,数据预测值整形部221将数据预测值p[i]的尾数值在尾数部内向左移动与原始数据d[i]和数据预测值p[i]的指数值差相同数量的比特数(与指数值差相当的位数)(舍去从尾数部超出的高位比特)。
即,数据预测值整形部221将数据预测值p[i]的尾数值变更为大了与指数值差相当的位数的值。
从尾数部超出的高位比特是在S121中追加的比特串“00…00”的比特,因此也可以忽略。即,即使舍去数据预测值p[i]的尾数部的高位比特,数据预测值p[i]的尾数值的信息也不会损失。
例如,在原始数据d[i]为10进制数形式的“9.98×10^3”、数据预测值p[i]为10进制数形式的“1.23×10^4”的情况下,数据预测值整形部221将数据预测值p[i]变更为“12.30×10^3”。
通过S125,数据预测值整形处理(S120)结束。
在S126中,数据预测值整形部221将数据预测值p[i]的指数值变更为与原始数据d[i]的指数值相同的值。
而且,数据预测值整形部221在数据预测值p[i]的尾数部中设定规定的虚拟值。
即,数据预测值整形部221将数据预测值p[i]的尾数值变更为与规定的虚拟值相同的值。
其中,虚拟值的比特数是在S121中追加比特串后的数据预测值p[i] 的尾数部的比特数以下。
在将数据预测值p[i]的尾数值与S125同样地向左移动的情况下,数据预测值p[i]的尾数值的高位比特被舍去,因此有可能原始数据d[i]的尾数值与数据预测值p[i]的尾数值之间没有关系。
因此,数据预测值整形部221放弃利用数据预测值p[i]而在数据预测值p[i]的尾数部中设定虚拟值。
虚拟值也可以是任意的值。例如,虚拟值也可以是零(全部的比特的比特值是0)。
另外,虚拟值也可以是(在S121中追加比特串后的)原始数据d[i]的尾数值能够取的值的中央值。该中央值能够以比特串“00…0110…00”来表示。在将中央值的虚拟值用作为数据预测值p[i]的尾数值的情况下,原始数据d[i]与数据预测值p[i]的尾数值之差缩小,能够期待抑制压缩率的降低的效果。关于缩小数据与预测值之差的方法,在专利文献3中也有公开。
通过S126,数据预测值整形处理(S120)结束。
在数据预测值整形处理(S120)中,数据预测值整形部221对数据预测值p[i]进行整形,以使得使数据预测值p[i]的指数值与原始数据d[i]的指数值一致。
此时,数据预测值整形部221使得不产生原始数据d[i]的信息损失、且使得伴随数据整形的比特数量的增加量不超过预先确定的固定值(N)。
由此,能够使用整形后的数据预测值p[i]和整形后的原始数据d[i]的各自的尾数值来进行有意义的比较以及运算。
另外,根据原始数据d[i]的指数值来对数据预测值p[i]进行整形,因此能够根据使用整形后的数据预测值p[i]所生成的编码数据102来对原始数据d[i]进行解码。关于原始数据d[i]的解码处理将后述。
回到图4,继续说明数据编码处理。
下面,将整形后的原始数据d[i]记为原始数据d’[i],将整形后的数据预测值p[i]记为数据预测值p’[i]。
在S120之后,进入S130。
在S130中,第一残差生成部222生成原始数据d’[i]与数据预测值p’[i]的残差。残差是指根据比较了多个值的比较结果而生成的值。
其中,第一残差生成部222对原始数据d’[i]和数据预测值p’[i]的各自的符号值以及尾数值计算出残差,对指数值不计算残差而使用原始数据d’[i]的指数值。
下面,将原始数据d’[i]与数据预测值p’[i]的残差记为第一残差r1[i]。第一残差r1[i]是具有与原始数据d’[i]以及数据预测值p’[i]相同的数据结构的浮点数的值。
图6是表示实施方式1中的第一残差生成处理(S130)的流程图。
根据图6来说明实施方式1中的第一残差生成处理(S130)。
在S131中,第一残差生成部222在第一残差r1[i]的指数部中设定原始数据d’[i]的指数值。
其中,第一残差生成部222也可以在第一残差r1[i]的指数部中设定基于原始数据d’[i]的指数值的其它的值。例如,第一残差生成部222也可以在第一残差r1[i]的指数部中设定从原始数据d’[i]的指数值减去规定值所得到的值(或者相加所得到的值)。
通过根据原始数据d’[i]的指数值来生成第一残差r1[i]的指数值,由此能够根据使用第一残差r1[i]所生成的编码数据102来对原始数据d[i]进行解码。关于原始数据d[i]的解码处理将后述。
在S131之后,进入S132。
在S132中,第一残差生成部222根据原始数据d’[i]和数据预测值p’[i]的各自的符号值以及尾数值来设定第一残差r1[i]的符号值以及尾数值。
下面说明符号值·尾数值设定处理(S132)的一个例子。
通过S132,第一残差生成处理(S130)结束。
图7是表示实施方式1中的符号值·尾数值设定处理(S132)的一个例子的流程图。
根据图7来说明实施方式1中的符号值·尾数值设定处理(S132) 的一个例子。
在S132-1中,第一残差生成部222判定原始数据d’[i]的符号值与数据预测值p’[i]的符号值是否为相同值。
在原始数据d’[i]的符号值与数据预测值p’[i]的符号值为相同值的情况下(“是”),进入S132-4。
在原始数据d’[i]的符号值与数据预测值p’[i]的符号值为不同值的情况下(“否”),进入S132-2。
在S132-2中,第一残差生成部222在第一残差r1[i]的符号部中设定原始数据d’[i]的符号值。
在S132-2之后,进入S132-3。
在S132-3中,第一残差生成部222在第一残差r1[i]的尾数部中设定原始数据d’[i]的尾数值与数据预测值p’[i]的尾数值的合计值。
通过S132-3,符号值·尾数值设定处理(S132)结束。
在S132-4中,第一残差生成部222判定原始数据d’[i]的尾数值是否为数据预测值p’[i]的尾数值以上的值。
在原始数据d’[i]的尾数值为数据预测值p’[i]的尾数值以上的值的情况下(“是”),进入S132-5。
在原始数据d’[i]的尾数值为小于数据预测值p’[i]的尾数值的值的情况下(“否”),进入S132-7。
在S132-5中,第一残差生成部222在第一残差r1[i]的符号部中设定原始数据d’[i]的符号值。
在S132-5之后,进入S132-6。
在S132-6中,第一残差生成部222在第一残差r1[i]的尾数部中设定从原始数据d’[i]的尾数值减去数据预测值p’[i]的尾数值所得到的值(=d’[i]的尾数值-p’[i]的尾数值)。
通过S132-6,符号值·尾数值设定处理(S132)结束。
在S132-7中,第一残差生成部222在第一残差r1[i]的符号部中设定数据预测值p’[i]的符号值。
在S132-7之后,进入S132-8。
在S132-8中,第一残差生成部222在第一残差r1[i]的尾数部中设定从数据预测值p’[i]的尾数值减去原始数据d’[i]的尾数值所得到的值(=p’[i]的尾数值-d’[i]的尾数值)。
通过S132-8,符号值·尾数值设定处理(S132)结束。
图7的符号值·尾数值设定处理(S132)是用于设定第一残差r1[i]的符号值以及尾数值的处理的一个例子,第一残差生成部222也可以通过其它的处理来设定第一残差r1[i]的符号值以及尾数值。
而且,第一残差生成部222也可以根据原始数据d’[i]和数据预测值p’[i]中的任一个来设定第一残差r1[i]的符号值以及尾数值。
例如,第一残差生成部222也可以在第一残差r1[i]的符号部中设定原始数据d’[i]的符号值,在第一残差r1[i]的尾数部中设定从原始数据d’[i]的尾数值减去规定值所得到的值(或者相加的值)。
回到图4,继续说明数据编码处理。
在S130之后,进入S140。
在S140中,第一残差预测值生成部223根据第一残差履历文件192生成第一残差r1[i]的预测值。第一残差r1[i]的预测值是具有与第一残差r1[i]相同的数据结构的浮点数的值。
下面,将第一残差r1[i]的预测值记为第一残差预测值p_r1[i]。
例如,第一残差预测值生成部223从第一残差预测值生成部223获取前次生成的第一残差r1[i-1],在第一残差预测值p_r1[i]的变量中设定获取到的第一残差r1[i-1]。即,p_r1[i]=r1[i-1]。
其中,第一残差预测值生成部223也可以将第一残差r1[i-1]以外的值用作为第一残差预测值p_r1[i](与S110相同)。
在S140之后,进入S150。
在S150中,第二残差生成部224生成第一残差r1[i]与第一残差预测值p_r1[i]的残差。
该处理是以求出在生成第一残差r1[i]时(S130)没有算出的指数值的残差为主要目标的处理。
下面,将第一残差r1[i]与第一残差预测值p_r1[i]的残差记为第二 残差r2[i]。第二残差r2[i]是具有与第一残差r1[i]以及第一残差预测值p_r1[i]相同的数据结构的浮点数的值。
例如,第二残差生成部224在第二残差r2[i]的符号部中设定第一残差r1[i]的符号值、在第二残差r2[i]的尾数部中设定第一残差r1[i]的尾数值、在第二残差r2[i]的指数部中设定从第一残差r1[i]的指数值减去第一残差预测值p_r1[i]的指数值所得到的值。
其中,第二残差生成部224也可以在第二残差r2[i]的符号部、指数部以及尾数部中设定上述以外的值。
例如,第二残差生成部224也可以与在图6以及图7中说明的第一残差生成处理(S130)同样地生成第二残差r2[i]的符号部以及尾数部,在第二残差r2[i]的指数部中设定从第一残差r1[i]的指数值减去第一残差预测值p_r1[i]的指数值所得到的值。在这种情况下,第二残差生成部224只要在图6以及图7中将第一残差r1[i]替换为第二残差r2[i]、将原始数据d’[i]替换为第一残差r1[i]、将数据预测值p’[i]替换为第一残差预测值p_r1[i]来执行处理即可。
由此,关于符号值以及尾数值能够以两个阶段(S130、S150)来计算出残差。
而且,第二残差生成部224也可以根据第一残差r1[i]和第一残差预测值p_r1[i]中的任一个来生成第二残差r2[i]。
例如,第二残差生成部224在第二残差r2[i]的符号部中设定第一残差预测值p_r1[i]的符号值(或者相反的符号值)、在第二残差r2[i]的指数部中设定第一残差预测值p_r1[i]的指数值(或者加上·减去规定值所得到的值)、在第二残差r2[i]的尾数部中设定第一残差预测值p_r1[i]的尾数值(或者加上·减去规定值所得到的值)。
在S150之后,进入S160。
在S160中,残差编码部230将第二残差r2[i]通过规定的编码处理进行编码来生成编码数据102,输出所生成的编码数据102。
例如,残差编码部230通过伽马编码、Delta编码、Golomb-rice编码或者其它的可变长度编码方式来对第二残差r2[i]进行编码。另外, 残差编码部230也可以将第二残差r2[i]的符号部、指数部、尾数部或者它们的组合与专利文献1、专利文献2同样地作为单独的整数值进行处理来对第二残差r2[i]进行编码。
输出意味着向数据存储部190的存储、向数据压缩装置100的输出装置的输出。
通过S160,数据编码处理结束。
如以上那样,数据编码部200能够不产生原始数据d[i]的信息损失地消除原始数据d[i]和数据预测值p[i]的各自的指数值的不同所导致的尾数值的位偏差(参照S120)。
另外,数据编码部200能够生成反映了浮点数的数据结构的第一残差r1[i]以及第二残差r2[i](参照S130、S150)。
并且,数据编码部200能够对这种第二残差r2[i]进行编码来生成编码数据102(参照S160)。此时,不需要用于确定S120中的数据预测值p[i]的整形方法的附加信息。即,数据编码部200能够与不需要附加信息相应地提高编码的压缩效果。
图8是表示实施方式1中的数据解码部300的功能结构的图。
根据图8来说明实施方式1中的数据解码部300的功能结构。
数据解码部300具备第二残差解码部310、第一残差解码部320、预测值整形方法确定部330、原始数据解码部340、数据预测值生成部301以及第一残差预测值生成部302。
第二残差解码部310(编码对象值解码部的一个例子)根据编码数据102来对第二残差r2[i]进行解码。
关于第二残差解码部310的详细情况将后述。
第一残差解码部320(中间值解码部的一个例子)根据第二残差r2[i]和第一残差预测值p_r1[i]来生成第一残差r1[i]。
关于第一残差解码部320的详细情况将后述。
预测值整形方法确定部330(数据指数值解码部的一个例子)根据第一残差r1[i]的指数值来生成原始数据d[i]的指数值。
预测值整形方法确定部330(调整尾数值解码部的一个例子)根据 原始数据d[i]的指数值和数据预测值p[i]来生成整形后的数据预测值p’[i]。
关于预测值整形方法确定部330的详细情况将后述。
原始数据解码部340(数据尾数值解码部的一个例子)根据整形后的数据预测值p’[i]和第一残差r1[i]来生成原始数据d[i](原始数据101)。
关于原始数据解码部340的详细情况将后述。
数据预测值生成部301(调整尾数值生成部的一个例子)是与数据编码部200的数据预测值生成部210(参照图3)相同的功能结构。
第一残差预测值生成部302(中间关联值生成部的一个例子)是与数据编码部200的第一残差预测值生成部223(参照图3)相同的功能结构。
图9是表示实施方式1中的数据解码部300的数据解码处理的流程图。
根据图9来说明实施方式1中的数据解码部300的数据解码处理(解码方法的一个例子)。
在S210中,数据预测值生成部301根据原始数据履历文件191来生成数据预测值p[i]。
数据预测值p[i]的生成方法与数据编码处理(图4参照)的S110中的生成方法相同。
在S210之后,进入S220。
在S220中,第一残差预测值生成部302根据第一残差履历文件192来生成第一残差预测值p_r1[i]。
第一残差预测值p_r1[i]的生成方法与数据编码处理(参照图4)的S140中的生成方法相同。
在S220之后,进入S230。
在S230中,第二残差解码部310输入对第二残差r2[i]进行了编码的编码数据102,对所输入的编码数据102执行规定的解码处理对将第二残差r2[i]进行解码。
但是,第二残差解码部310所执行的解码处理是与数据编码处理(参照图4)的S160中所执行的编码处理相对应的处理。
在S230之后,进入S240。
在S240中,第一残差解码部320根据第二残差r2[i]和第一残差预测值p_r1[i]来生成第一残差r1[i]。
该第一残差解码处理(S240)是与数据编码处理(参照图4)的第二残差生成处理(S150)相对应的处理(逆运算的处理)。
例如,设为第二残差生成部处理(S150)是如下的处理。
(1)在第二残差r2[i]的符号部中设定第一残差r1[i]的符号值。
(2)在第二残差r2[i]的尾数部中设定第一残差r1[i]的尾数值。
(3)在第二残差r2[i]的指数部中设定从第一残差r1[i]的指数值减去第一残差预测值p_r1[i]的指数值所得到的值。
在这种情况下,第一残差解码部320在如下的处理中生成第一残差r1[i]。
(1)在第一残差r1[i]的符号部中设定第二残差r2[i]的符号值。
(2)在第一残差r1[i]的尾数部中设定第二残差r2[i]的尾数值。
(3)在第一残差r1[i]的指数部中设定对第二残差r2[i]的指数值加上了第一残差预测值p_r1[i]的指数值所得到的值。
在S240之后,进入S250。
在S250中,预测值整形方法确定部330根据第一残差r1[i]的指数值来生成原始数据d[i]的指数值。
该原始数据指数值解码处理(S250)是与第一残差生成处理(参照图6)的S131相对应的处理(逆运算的处理)。
在第一残差生成处理(参照图6)的S131中根据原始数据d[i]的指数值来生成了第一残差r1[i]的指数值,因此能够通过逆运算的处理根据第一残差r1[i]的指数值来生成原始数据d[i]的指数值。
例如,在第一残差生成处理(参照图6)的S131为在第一残差r[i]的指数部中设定原始数据d’[i]的指数值(=原始数据d[i]的指数值)的处理的情况下,与第一残差r1[i]的指数值相同的值是原始数据d[i]的指 数值。
在S250之后,进入S260。
在S260中,预测值整形方法确定部330根据原始数据d[i]的指数值和数据预测值p[i]来生成整形后的数据预测值p’[i]。
整形后的数据预测值p’[i]的生成方法与数据预测值整形处理(参照图5)的S122~S126相同。
在数据预测值整形处理(参照图5)的S122~S126中根据原始数据d[i]的指数值和数据预测值p[i]来生成整形后的数据预测值p’[i],因此即使得不到原始数据d[i]的符号值以及尾数值也能够生成整形后的数据预测值p’[i]。
在S260之后,进入S270。
在S270中,原始数据解码部340根据整形后的数据预测值p’[i]和第一残差r1[i]来生成整形后的原始数据d’[i]。
该整形后原始数据解码处理(S270)是与第一残差生成处理(图6参照)的S132相对应的处理(逆运算的处理)。
图10是表示实施方式1中的整形后原始数据解码处理(S270)的一个例子的图。
在第一残差生成处理(图6参照)的S132为图7所示的处理的情况下,原始数据解码部340执行图10所示的处理来生成整形后的原始数据d’[i]。
在S271中,原始数据解码部340判定第一差分r1[i]的符号值与数据预测值p’[i]的符号值是否为相同值。
在第一差分r1[i]的符号值与数据预测值p’[i]的符号值为相同值的情况下(“是”),进入S272。
在第一差分r1[i]的符号值与数据预测值p’[i]的符号值为不同值的情况下(“否”),进入S274。
在S272中,原始数据解码部340在整形后的原始数据d’[i]的符号部中设定第一残差r1[i]的符号值。
在S272之后,进入S273。
在S273中,原始数据解码部340在整形后的原始数据d’[i]的尾数部中设定第一残差r1[i]的尾数值与数据预测值p’[i]的尾数值的合计值。
通过S273,整形后原始数据解码处理(S270)结束。
在S274中,原始数据解码部340判定第一残差r1[i]的尾数值是否为数据预测值p’[i]的尾数值以上的值。
在第一残差r1[i]的尾数值为数据预测值p’[i]的尾数值以上的值的情况下(“是”),进入S277。
在第一残差r1[i]的尾数值为小于数据预测值p’[i]的尾数值的值的情况下(“否”),进入S275。
在S275中,原始数据解码部340在整形后的原始数据d’[i]的符号部中设定第一残差r1[i]的符号值。
在S275之后,进入S276。
在S276中,原始数据解码部340在整形后的原始数据d’[i]的尾数部中设定从第一残差r1[i]的尾数值减去数据预测值p’[i]的尾数值所得到的值。
通过S276,整形后原始数据解码处理(S270)结束。
在S277中,原始数据解码部340在整形后的原始数据d’[i]的符号部中设定数据预测值p’[i]的符号值。
在S277之后,进入S278。
在S278中,原始数据解码部340在整形后的原始数据d’[i]的尾数部中设定从数据预测值p’[i]的尾数值减去第一残差r1[i]的尾数值所得到的值。
通过S278,整形后原始数据解码处理(S270)结束。
回到图9,继续说明数据解码处理。
在S270之后,进入S280。
在S280中,原始数据解码部340根据整形后的原始数据d’[i]来生成原始数据d[i]。
原始数据d[i]的生成方法是与数据预测值整形处理(参照图5)的S121相对应的处理(逆运算的处理)。
例如,在数据预测值整形处理(图5参照)的S121为在原始数据d[i]的尾数部的高位中追加(N+2)比特的比特串的处理的情况下,原始数据解码部340从整形后的原始数据d’[i]的尾数部删除高位的(N+2)比特。在这种情况下,从整形后的原始数据d’[i]的尾数部删除了高位的(N+2)比特的数据是原始数据d[i]。
通过S280,数据解码处理结束。
通过数据解码处理,数据解码部300能够从编码数据102正确地解码出原始数据101。
以上说明的数据压缩装置100通过使用数据预测值整形部221、第一残差生成部222以及第二残差生成部224来生成编码数据102,由此同时实现原始数据101(浮点数)的数据结构的反映和可逆压缩这两者。
另外,数据压缩装置100通过设为不需要与数据预测值p’[i]的整形方法有关的附加信息从而实现编码的高压缩性。
数据编码处理的次序、规则(包含数据预测值p[i]的整形方法(参照图5))被预先确定而存储在数据编码部200中。
另外,与数据编码处理相对应的数据解码处理的次序、规则是被预先确定后存储在数据解码部300中。
数据编码部200和数据解码部300也可以分别被包含在不同的装置中。即,也可以代替数据压缩装置100而设置具备数据编码部200的数据编码装置、具备数据解码部300的数据解码装置。
在这种情况下,数据编码部200和数据解码部300这两者所需的信息(例如,原始数据履历文件191、第一残差履历文件192)存储在各自的装置中。
图11是表示实施方式1中的数据压缩装置100的硬件资源的一个例子的图。
在图11中,数据压缩装置100(计算机的一个例子)具备有CPU 901(Central Processing Unit:中央处理单元)。CPU 901经由总线902与ROM 903、RAM 904、通信板905(通信装置)、显示器911(显示装置)、键盘912、鼠标913、驱动器914、磁盘装置920等硬件设备相 连接来控制这些硬件设备。驱动器914是对FD(Flexible Disk:软盘)、CD(Compact Disc:光盘)、DVD(Digital Versatile Disc:数字多用途光盘)等存储介质进行读写的装置。
ROM 903、RAM 904、磁盘装置920以及驱动器914是存储装置的一个例子。键盘912、鼠标913以及通信板905是输入装置的一个例子。显示器911以及通信板905是输出装置的一个例子。
通信板905以有线或者无线连接到LAN(Local Area Network:局域网)、因特网、电话线路等通信网。
在磁盘装置920中存储有OS 921(操作系统)、程序群922、文件群923。
在程序群922中包含执行在实施方式中以“~部”说明的功能的程序。程序(例如,编码程序、解码程序)是由CPU 901读出来执行。即,程序使计算机作为“~部”发挥功能,另外使计算机执行“~部”的过程、方法。
在文件群923中包含在实施方式中说明的“~部”所使用的各种数据(输入、输出、判定结果、计算结果、处理结果等)。
在实施方式中结构图以及流程图所包含的箭头主要表示数据、信号的输入输出。
根据流程图等进行说明的实施方式的处理使用CPU 901、存储装置、输入装置、输出装置等硬件来执行。
在实施方式中作为“~部”说明的部分既可以是“~电路”、“~装置”、“~设备”、另外也可以是“~步骤”、“~次序”、“~处理”。即,作为“~部”说明的部分也可以是以固件、软件、硬件或者它们的组合中的任一个来安装。
在实施方式1中,例如说明了如下的编码装置(数据压缩装置100的数据编码部200)。括弧内记载实施方式1中使用的名称。
编码装置具备数据值存储部、数据关联值存储部、调整尾数值生成部、编码对象值生成部以及编码值生成部。
数据值存储部(数据存储部190)是存储数据值(原始数据101) 的存储部,该数据值是使用指数值和尾数值表示的浮点数的值且是要进行编码的目标的值。
数据关联值存储部(数据存储部190)是存储数据关联值(数据预测值p[i])的存储部,该数据关联值是用于对存储在所述数据值存储部中的所述数据值进行编码的浮点数的值。
调整尾数值生成部(数据预测值整形部221)根据存储在所述数据关联值存储部中的所述数据关联值的指数值与存储在所述数据值存储部中的所述数据值的指数值之差,调整所述数据关联值的尾数值来生成调整尾数值(数据预测值p’[i]的尾数值)。
编码对象值生成部(残差生成部220)根据存储在所述数据值存储部中的所述数据值的所述指数值,生成特定的指数值。编码对象值生成部根据所述数据值的尾数值和通过所述调整尾数值生成部所生成的所述调整尾数值,生成特定的尾数值。编码对象值生成部根据所述特定的指数值和所述特定的尾数值,生成编码对象值(第二残差r2[i]),该编码对象值是浮点数的值且是要进行编码的值。
数据编码值生成部(残差编码部230)将通过所述编码对象值生成部所生成的所述编码对象值进行编码来生成数据编码值(编码数据102)。
所述调整尾数值生成部将在把所述数据关联值的指数值变更为与所述数据值的指数值相同的值且变更所述数据关联值的所述尾数值使得所述数据关联值的位数不会由于所述数据关联值的指数值的变更而变化的情况下的所述数据关联值的变更后的尾数值计算为所述调整尾数值(参照图5的S123、S125)。
所述调整尾数值生成部在以一个以上的位表示所述数据关联值的所述尾数值的尾数部中追加规定的追加位数(参数N)的位作为高位侧的位(参照图5的S121)。
在所述数据关联值的所述指数值为所述数据值的所述指数值以下的情况下,所述调整尾数值生成部将所述数据关联值的所述尾数值向低位侧移动与所述数据关联值的所述指数值和所述数据值的所述指数 值的指数值差相当的位数(参照图5的S123)。
在所述数据关联值的所述指数值大于所述数据值的所述指数值的情况且所述指数值差为所述追加位数以下的情况下,所述调整尾数值生成部将所述数据关联值的所述尾数值向高位侧移动与所述指数值差相当的位数(参照图5的S125)。
在所述数据关联值的所述指数值大于所述数据值的所述指数值的情况且所述指数值差大于所述追加位数的情况下,所述调整尾数值生成部在所述数据关联值的所述尾数部中设定规定的虚拟值(参照图5的S126)。
所述编码对象值生成部将与所述数据值的所述指数值相同的指数值设为所述特定的指数值(参照图6的S131)。
所述编码对象值生成部将所述数据值的所述尾数值和所述调整尾数值的合计值、以及所述数据值的所述尾数值与所述调整尾数值之差的值中的某一个值设为所述特定的尾数值(参照图7的S132-3、S132-6、S132-8)。
所述编码装置具备存储作为浮点数的特定值的中间关联值(第一差分预测值p_r1[i])的中间关联值存储部(数据存储部190)。
所述编码对象值生成部使用所述特定的指数值和所述特定的尾数值来生成作为浮点数的值的中间值(第一差分r1[i]),根据所述中间值和存储在所述中间关联值存储部中的所述中间关联值来生成所述编码对象值(第二差分r2[i])。
所述编码对象值生成部将所述中间值的指数值与所述中间关联值的指数值之差的值用作为所述编码对象值的指数值,并且将与所述中间值的尾数值相同的尾数值用作为所述编码对象值的尾数值来生成所述编码对象值(参照图4的S150)。
所述编码装置还具备过去中间值存储部、以及中间关联值生成部。
过去中间值存储部(数据存储部190的第一残差履历文件192)是将过去生成的一个以上的中间值分别存储为过去中间值的存储部。
中间关联值生成部(第一残差预测值生成部223)根据存储在所述 过去中间值存储部中的至少一个过去中间值来生成所述中间关联值(第一残差预测值p_r1[i])。
所述编码装置还具备过去数据值存储部以及数据关联值生成部。
过去数据值存储部(数据存储部190的原始数据履历文件191)是将过去编码的一个以上的数据值分别存储为过去数据值的存储部。
数据关联值生成部(数据预测值生成部210)根据存储在所述过去数据值存储部中的至少任一个过去数据值来生成所述数据关联值(数据预测值p[i])。
在实施方式1中,例如说明了如下的解码装置(数据压缩装置100)。括弧内记载实施方式1中使用的名称。
解码装置具备数据编码值存储部、数据关联值存储部、编码对象值解码部、数据指数值解码部、调整尾数值解码部、以及数据尾数值解码部。
数据编码值存储部(数据存储部190)是存储数据编码值(编码数据102)的存储部,该数据编码值是使用指数值和尾数值来表示的浮点数的值且是被编码了的值。
数据关联值存储部(数据存储部190)是存储数据关联值(数据预测值p[i])的存储部,该数据关联值是用于获得要进行解码的目标的数据值(原始数据101)的浮点数的值。
编码对象值解码部(第二残差解码部310)对存储在所述数据编码值存储部中的所述数据编码值进行解码来生成作为浮点数的值的编码对象值(第二残差r2[i])。
数据指数值解码部(预测值整形方法确定部330)根据通过所述编码对象值解码部所生成的所述编码对象值的指数值来生成所述数据值的指数值。
调整尾数值解码部(预测值整形方法确定部330)根据通过所述数据指数值解码部所生成的所述数据值的所述指数值和存储在所述数据关联值存储部中的所述数据关联值的指数值之差来调整所述数据关联值的尾数值,生成调整尾数值(数据预测值p[i]的尾数值)。
数据尾数值解码部(原始数据解码部340)根据通过所述调整尾数值解码部所生成的所述调整尾数部和通过所述编码对象值解码部所生成的所述编码对象值的尾数值来生成所述数据值的尾数值。

编码装置、解码装置、编码方法、编码程序、解码方法以及解码程序.pdf_第1页
第1页 / 共31页
编码装置、解码装置、编码方法、编码程序、解码方法以及解码程序.pdf_第2页
第2页 / 共31页
编码装置、解码装置、编码方法、编码程序、解码方法以及解码程序.pdf_第3页
第3页 / 共31页
点击查看更多>>
资源描述

《编码装置、解码装置、编码方法、编码程序、解码方法以及解码程序.pdf》由会员分享,可在线阅读,更多相关《编码装置、解码装置、编码方法、编码程序、解码方法以及解码程序.pdf(31页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 (43)申请公布日 (21)申请号 201280074102.7(22)申请日 2012.06.21H03M 7/36(2006.01)G06F 5/00(2006.01)(71)申请人三菱电机株式会社地址日本东京(72)发明人柴田秀哉(74)专利代理机构中国国际贸易促进委员会专利商标事务所 11038代理人肖靖(54) 发明名称编码装置、解码装置、编码方法、编码程序、解码方法以及解码程序(57) 摘要数据预测值生成部(210)根据作为浮点数的数据的原始数据的履历来生成要进行编码的目标的原始数据(101)用的预测值(数据预测值)。数据预测值整形部(221)使数据预测值的指数。

2、值与原始数据(101)的指数值一致地调整数据预测值的尾数值。第一残差生成部(222)生成新的原始数据(101)与调整后的数据预测值的残差(第一残差)。第一残差预测值生成部(223)根据第一残差的履历来生成第一残差用的预测值(第一残差预测值)。第二残差生成部(224)生成第一残差与第一残差预测值的残差(第二残差)。残差编码部(230)对第二残差进行编码来生成编码数据(102)。(85)PCT国际申请进入国家阶段日2014.12.19(86)PCT国际申请的申请数据PCT/JP2012/065918 2012.06.21(87)PCT国际申请的公布数据WO2013/190690 JA 2013.1。

3、2.27(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书3页 说明书16页 附图11页(10)申请公布号 CN 104412512 A(43)申请公布日 2015.03.11CN 104412512 A1/3页21.一种编码装置,其特征在于,具备:数据值存储部,存储数据值,该数据值是使用指数值和尾数值表示的浮点数的值且是要进行编码的目标的值;数据关联值存储部,存储数据关联值,该数据关联值是用于对存储在所述数据值存储部中的所述数据值进行编码的浮点数的值;调整尾数值生成部,根据存储在所述数据关联值存储部中的所述数据关联值的指数值和存储在所述数据值存储部中的所。

4、述数据值的指数值之差,调整所述数据关联值的尾数值来生成调整尾数值;编码对象值生成部,根据存储在所述数据值存储部中的所述数据值的所述指数值来生成特定的指数值,根据所述数据值的尾数值和通过所述调整尾数值生成部所生成的所述调整尾数值来生成特定的尾数值,根据所述特定的指数值和所述特定的尾数值来生成作为浮点数的值且是要进行编码的值的编码对象值;以及数据编码值生成部,对通过所述编码对象值生成部所生成的所述编码对象值进行编码来生成数据编码值。2.根据权利要求1所述的编码装置,其特征在于,所述调整尾数值生成部计算如下情况下的所述数据关联值的变更后的尾数值作为所述调整尾数值:在将所述数据关联值的指数值变更为与所。

5、述数据值的指数值相同的值且变更所述数据关联值的所述尾数值以使得所述数据关联值的位数不会由于所述数据关联值的指数值的变更而变化。3.根据权利要求1或者2所述的编码装置,其特征在于,所述调整尾数值生成部对以一个以上的位表示所述数据关联值的所述尾数值的尾数部将规定的追加位数的位追加为高位侧的位,在所述数据关联值的所述指数值为所述数据值的所述指数值以下的情况下,将所述数据关联值的所述尾数值向低位侧移动与所述数据关联值的所述指数值和所述数据值的所述指数值的指数值差相当的位数,在所述数据关联值的所述指数值大于所述数据值的所述指数值且所述指数值差为所述追加位数以下的情况下,将所述数据关联值的所述尾数值向高位。

6、侧移动与所述指数值差相当的位数,在所述数据关联值的所述指数值大于所述数据值的所述指数值且所述指数值差大于所述追加位数的情况下,在所述数据关联值的所述尾数部设定规定的虚拟值。4.根据权利要求13中的任一项所述的编码装置,其特征在于,所述编码对象值生成部将与所述数据值的所述指数值相同的指数值设为所述特定的指数值。5.根据权利要求14中的任一项所述的编码装置,其特征在于,所述编码对象值生成部将所述数据值的所述尾数值与所述调整尾数值的合计值、和所述数据值的所述尾数值与所述调整尾数值之差的值中的某个值设为所述特定的尾数值。6.根据权利要求15中的任一项所述的编码装置,其特征在于,所述编码装置还具备中间关。

7、联值存储部,该中间关联值存储部存储作为浮点数的特定的值的中间关联值,所述编码对象值生成部使用所述特定的指数值和所述特定的尾数值来生成作为浮点数的值的中间值,根据所述中间值和存储在所述中间关联值存储部中的所述中间关联值来权 利 要 求 书CN 104412512 A2/3页3生成所述编码对象值。7.根据权利要求6所述的编码装置,其特征在于,所述编码对象值生成部将所述中间值的指数值与所述中间关联值的指数值之差的值用作所述编码对象值的指数值,并且将与所述中间值的尾数值相同的尾数值用作所述编码对象值的尾数值来生成所述编码对象值。8.根据权利要求17中的任一项所述的编码装置,其特征在于,所述编码装置还具。

8、备:过去中间值存储部,将过去生成的一个以上的中间值分别存储为过去中间值;以及中间关联值生成部,根据存储在所述过去中间值存储部中的至少某个过去中间值来生成所述中间关联值。9.根据权利要求18中的任一项所述的编码装置,其特征在于,所述编码装置还具备:过去数据值存储部,将过去编码了的一个以上的数据值分别存储为过去数据值;以及数据关联值生成部,根据存储在所述过去数据值存储部中的至少某个过去数据值来生成所述数据关联值。10.一种解码装置,其特征在于,具备:数据编码值存储部,存储数据编码值,该数据编码值是使用指数值和尾数值表示的浮点数的值且是被编码了的值;数据关联值存储部,存储数据关联值,该数据关联值是用。

9、于获得要进行解码的目标的数据值的浮点数的值;编码对象值解码部,对存储在所述数据编码值存储部中的所述数据编码值进行解码来生成作为浮点数的值的编码对象值;数据指数值解码部,根据通过所述编码对象值解码部所生成的所述编码对象值的指数值来生成所述数据值的指数值;调整尾数值解码部,根据通过所述数据指数值解码部所生成的所述数据值的所述指数值与存储在所述数据关联值存储部中的所述数据关联值的指数值之差,调整所述数据关联值的尾数值来生成调整尾数值;以及数据尾数值解码部,根据通过所述调整尾数值解码部所生成的所述调整尾数部和通过所述编码对象值解码部所生成的所述编码对象值的尾数值来生成所述数据值的尾数值。11.一种编码。

10、方法,是使用具备数据值存储部、数据关联值存储部、调整尾数值生成部、编码对象值生成部、以及数据编码值生成部的编码装置的编码方法,该编码方法的特征在于,所述数据值存储部是存储数据值的存储部,该数据值是使用指数值和尾数值表示的浮点数的值且是要进行编码的目标的值,所述数据关联值存储部是存储数据关联值的存储部,该数据关联值是用于对存储在所述数据值存储部中的所述数据值进行编码的浮点数的值,所述调整尾数值生成部根据存储在所述数据关联值存储部中的所述数据关联值的指数值与存储在所述数据值存储部中的所述数据值的指数值之差,调整所述数据关联值的尾数值来生成调整尾数值,权 利 要 求 书CN 104412512 A3。

11、/3页4所述编码对象值生成部根据存储在所述数据值存储部中的所述数据值的所述指数值来生成特定的指数值,根据所述数据值的尾数值和通过所述调整尾数值生成部所生成的所述调整尾数值来生成特定的尾数值,根据所述特定的指数值和所述特定的尾数值来生成作为浮点数的值且是要进行编码的值的编码对象值,所述数据编码值生成部对通过所述编码对象值生成部所生成的所述编码对象值进行编码来生成数据编码值。12.一种编码程序,其特征在于,使计算机执行根据权利要求11所述的编码方法。13.一种解码方法,是使用具备数据编码值存储部、数据关联值存储部、编码对象值解码部、生成所述数据值的指数值的数据指数值解码部、调整尾数值解码部、以及数。

12、据尾数值解码部的解码方法,该解码方法的特征在于,所述数据编码值存储部是存储数据编码值的存储部,该数据编码值是使用指数值和尾数值表示的浮点数的值且是被编码了的值,所述数据关联值存储部是存储数据关联值的存储部,该数据关联值是用于获得要进行解码的目标的数据值的浮点数的值,所述编码对象值解码部对存储在所述数据编码值存储部中的所述数据编码值进行解码来生成作为浮点数的值的编码对象值,所述数据指数值解码部根据通过所述编码对象值解码部所生成的所述编码对象值的指数值来生成所述数据值的指数值,所述调整尾数值解码部根据通过所述数据指数值解码部所生成的所述数据值的所述指数值与存储在所述数据关联值存储部中的所述数据关联。

13、值的指数值之差,调整所述数据关联值的尾数值来生成调整尾数值,所述数据尾数值解码部根据通过所述调整尾数值解码部所生成的所述调整尾数部和通过所述编码对象值解码部所生成的所述编码对象值的尾数值来生成所述数据值的尾数值。14.一种解码程序,其特征在于,用于使计算机执行根据权利要求13所述的解码方法。权 利 要 求 书CN 104412512 A1/16页5编码装置、 解码装置、 编码方法、 编码程序、 解码方法以及解码程序技术领域0001 本发明涉及一种例如用于对数据进行编码(压缩)或者解码的编码装置、解码装置、编码方法、编码程序、解码方法以及解码程序。背景技术0002 作为对数据序列进行可逆压缩时的。

14、编码方法,使用了如下的方法。0003 首先,求出针对编码对象数据的预测值(预测值生成)。接着,求出预测值与编码对象数据的残差(残差生成)。然后,对由残差组成的数据序列以恰当的方式进行编码而获得编码数据(残差编码)。0004 当在残差编码中使用如伽马编码那样的可变长度编码的情况下,大多通过插入求出残差的阶段来获得由比编码对象数据小的值(接近0的值)组成的编码数据,通过可变长度编码来提高压缩效果。0005 然而,当对浮点数的数据(编码对象数据)通过简单的浮点运算来求出残差时,产生信息损失导致的误差,因此无法进行可逆压缩。0006 为了避免信息损失,还能够将浮点数数据视为整数数据而通过简单的整数运算。

15、来求出残差,但是该方法忽略了浮点数的数据结构,因此有可能得不到恰当的残差。0007 为了解决这种课题,专利文献1公开了如下的方法:将浮点数的数据(符号部、指数部、尾数部)分离为由指数部组成的第1部分、和由符号部和尾数部组成的第2部分这两个部分,将各个部分视为整数数据来求出残差。0008 这样,将符号部、指数部、尾数部视为独立的整数数据来求出残差的方法还能够在其它的文献(例如专利文献2)中见到,可以说被广泛地利用。0009 然而,在编码对象数据的指数部的值与预测值的指数部的值不同的情况下,在编码对象数据的尾数部所表示的值与预测值的尾数部所表示的值中位数的大小不同。因此,即使通过专利文献1等所公开。

16、的方法求出尾数部的残差,也得不到作为尾数部的残差而有意义的值。这可能成为使压缩率下降的主要原因。0010 例如,设为编码对象数据是“1.23104”(尾数部“1.23”、指数部“4”)、预测值是“9.98103”(尾数部“9.98”、指数部“3”)。0011 在这种情况下,编码对象数据的尾数部“1.23”的一位的值“1”表示10进制数的万位的值“10000”的意思。另一方面,预测值的尾数部“9.98”的一位的值“9”表示10进制数的千位的值“9000”的意思。0012 即,在编码对象数据的尾数部“1.23”与预测值的尾数部“9.98”中位数的大小不同,因此这些尾数部的比较不具有作为浮点数的意义。

17、,通过这些尾数部的比较得不到作为尾数部的残差而有意义的值。0013 专利文献1:日本特开2011-175542号公报0014 专利文献2:日本特开2011-238236号公报说 明 书CN 104412512 A2/16页60015 专利文献3:日本特开2005-018606号公报发明内容0016 本发明的目的在于,例如即使在浮点数的数据值(进行可逆压缩的目标数据值)的指数值与用于编码的预测值的指数值不同的情况下,也能够不使压缩率降低地将数据值进行可逆压缩(编码)。0017 本发明的编码装置具备:0018 数据值存储部,存储数据值,该数据值是使用指数值和尾数值表示的浮点数的值且是要进行编码的目。

18、标的值;0019 数据关联值存储部,存储数据关联值,该数据关联值是用于对存储在所述数据值存储部中的所述数据值进行编码的浮点数的值;0020 调整尾数值生成部,根据存储在所述数据关联值存储部中的所述数据关联值的指数值和存储在所述数据值存储部中的所述数据值的指数值之差,调整所述数据关联值的尾数值来生成调整尾数值;0021 编码对象值生成部,根据存储在所述数据值存储部中的所述数据值的所述指数值来生成特定的指数值,根据所述数据值的尾数值和通过所述调整尾数值生成部所生成的所述调整尾数值来生成特定的尾数值,根据所述特定的指数值和所述特定的尾数值来生成作为浮点数的值且是行编码的值的编码对象值;以及0022 。

19、数据编码值生成部,对通过所述编码对象值生成部所生成的所述编码对象值进行编码来生成数据编码值。0023 根据本发明,例如即使在浮点数的数据值的指数值与用于编码的预测值(数据关联值)的指数值不同的情况下,也能够不使压缩率降低地对数据值进行可逆压缩(编码)。附图说明0024 图1是实施方式1中的数据压缩装置100的功能结构图。0025 图2是表示实施方式1中的原始数据101的数据结构的一个例子的图。0026 图3是表示实施方式1中的数据编码部200的功能结构的图。0027 图4是表示实施方式1中的数据编码部200的数据编码处理的流程图。0028 图5是表示实施方式1中的数据预测值整形处理(S120)。

20、的流程图。0029 图6是表示实施方式1中的第一残差生成处理(S130)的流程图。0030 图7是表示实施方式1中的符号值尾数值设定处理(S132)的一个例子的流程图。0031 图8是表示实施方式1中的数据解码部300的功能结构的图。0032 图9是表示实施方式1中的数据解码部300的数据解码处理的流程图。0033 图10是表示实施方式1中的整形后原始数据解码处理(S270)的一个例子的图。0034 图11是表示实施方式1中的数据压缩装置100的硬件资源的一个例子的图。0035 附图标记说明0036 100:数据压缩装置;101:原始数据;102:编码数据;190:数据存储部;191:原始数据。

21、履历文件;192:第一残差履历文件;200:数据编码部;210:数据预测值生成部;220:说 明 书CN 104412512 A3/16页7残差生成部;221:数据预测值整形部;222:第一残差生成部;223:第一残差预测值生成部;224:第二残差生成部;230:残差编码部;300:数据解码部;301:数据预测值生成部;302:第一残差预测值生成部;310:第二残差解码部;320:第一残差解码部;330:预测值整形方法确定部;340:原始数据解码部;901:CPU;902:总线;903:ROM;904:RAM;905:通信板;911:显示器;912:键盘;913:鼠标;914:驱动器;920:。

22、磁盘装置;921:OS;922:程序群;923:文件群。具体实施方式0037 实施方式1.0038 说明对浮点数的数据值进行压缩(编码)以及解码的数据压缩装置的方式。0039 图1是实施方式1中的数据压缩装置100的功能结构图。0040 根据图1说明实施方式1中的数据压缩装置100的功能结构。0041 数据压缩装置100(编码装置、解码装置的一个例子)具备数据编码部200、数据解码部300以及数据存储部190。0042 数据编码部200输入要进行编码的目标数据(数据值的一个例子)(下面称为“原始数据101”)。0043 数据编码部200生成表示进行了编码的原始数据101的数据(数据编码值的一个。

23、例子)(下面称为“编码数据102”)。0044 数据编码部200输出所生成的编码数据102。0045 关于数据编码部200的详细情况将后述。0046 数据解码部300输入编码数据102,使用所输入的编码数据102来对原始数据101进行解码,输出原始数据101。0047 关于数据解码部300的详细情况将后述。0048 数据存储部190(数据值存储部、数据关联值存储部、中间关联值存储部、过去中间值存储部、过去数据值存储部、数据编码值存储部的一个例子)存储数据压缩装置100所使用的数据。0049 例如,数据存储部190存储原始数据101、编码数据102、原始数据履历文件191以及第一残差履历文件19。

24、2。0050 原始数据履历文件191是包含过去被编码了的一个以上的原始数据101(原始数据101的履历)(过去数据值的一个例子)的文件。但是,也可以不是文件形式,而是将原始数据101的多个履历存储在存储器中。0051 第一残差履历文件192是包含过去生成了的第一残差(第一残差的履历)(过去中间值的一个例子)的文件。但是,也可以不是文件形式,而是将第一残差的多个履历存储在存储器中。关于第一残差将后述。0052 图2是表示实施方式1中的原始数据101的数据结构的一个例子的图。0053 根据图2来说明实施方式1中的原始数据101的数据结构。0054 原始数据101是使用符号部、指数部以及尾数部来表示。

25、的浮点数的值。另外,用于对原始数据101进行压缩(编码)或者解码的各种数据值也是浮点数的值。0055 在实施方式1中,设为原始数据101以及各种数据值是如图2所示的IEEE 754形说 明 书CN 104412512 A4/16页8式(浮点数的形式的一个例子)或者以遵照它的形式表示的单精度浮点数的值。但是,原始数据101以及各种数据值也可以是以其它的形式表示的浮点数的值。0056 以IEEE 754形式表示的单精度浮点数的值由1比特的符号部、8比特的指数部、以及23比特的尾数部共计32比特来表示。0057 下面,将符号部的值(正或者负)称为“符号值”、指数部的值称为“指数值”、尾数部的值称为“。

26、尾数值”。0058 例如,在10进制数形式的数据值“-1.23104(-12300)”的情况下,符号值为“-”、指数值为“4”、尾数值为“1.23”。0059 图3是表示实施方式1中的数据编码部200的功能结构的图。0060 根据图3来说明实施方式1中的数据编码部200的功能结构。0061 数据编码部200具备数据预测值生成部210、残差生成部220、以及残差编码部230。0062 数据预测值生成部210(数据关联值生成部的一个例子)根据预先存储在数据存储部190中的原始数据履历文件191(省略图示)来生成数据预测值。数据预测值(数据关联值的一个例子)是用于预测(解码)原始数据101的值。00。

27、63 关于数据预测值生成部210的详细情况将后述。0064 残差生成部220(编码对象值生成部的一个例子)根据原始数据101和通过数据预测值生成部210所生成的数据预测值来生成第二残差(编码对象值的一个例子)。0065 残差生成部220具备数据预测值整形部221、第一残差生成部222、第一残差预测值生成部223以及第二残差生成部224。0066 数据预测值整形部221(调整尾数值生成部的一个例子)根据原始数据101的指数值与数据预测值的指数值之差来对数据预测值进行整形。0067 第一残差生成部222生成原始数据101与整形后的数据预测值的残差(下面称为“第一残差”)。0068 第一残差预测值生。

28、成部223(中间关联值生成部的一个例子)根据预先存储在数据存储部190中的第一残差履历文件192(省略图示)来生成第一残差预测值。第一残差预测值(中间关联值的一个例子)是用于预测(解码)第一残差(中间值的一个例子)的值。0069 第二残差生成部224生成第一残差与第一残差预测值的残差(下面称为“第二残差”)。0070 关于残差生成部220的各功能结构的详细情况将后述。0071 残差编码部230(数据编码值生成部的一个例子)对通过残差生成部220的第二残差生成部224所生成的第二残差进行编码。由此,生成表示进行了编码的原始数据101的编码数据102。0072 关于残差编码部230的详细情况将后述。

29、。0073 图4是表示实施方式1中的数据编码部200的数据编码处理的流程图。0074 根据图4来说明实施方式1中的数据编码部200的数据编码处理(编码方法的一个例子)。0075 在S110中,数据预测值生成部210根据原始数据履历文件191来生成数据预测说 明 书CN 104412512 A5/16页9值。数据预测值是具有与原始数据101相同的数据结构的浮点数的值。0076 下面,将第i个(i为1以上的整数)原始数据101记为di、原始数据di的数据预测值记为pi。0077 例如,数据预测值生成部210从原始数据履历文件191获取前次编码了的原始数据di-1,将获取到的原始数据di-1设定为数。

30、据预测值pi的变量。即,pidi-1。其中,d0设为规定的常数。0078 但是,数据预测值生成部210也可以通过原始数据di-1以外的值来生成数据预测值pi。例如,数据预测值生成部210也可以将上上次的原始数据di-2用作为数据预测值pi。另外,数据预测值生成部210也可以使用包含在原始数据履历文件191中的各原始数据来进行原始数据的线性预测,将线性预测值(加权后的各原始数据的合计值)用作为数据预测值pi。而且,数据预测值生成部210也可以不使用过去的原始数据101而生成数据预测值pi。例如,也可以将规定的数据预测值pi预先存储在数据存储部190中。0079 在S110之后,进入S120。00。

31、80 在S120中,数据预测值整形部221输入原始数据di和数据预测值pi,对所输入的原始数据di和数据预测值pi进行整形。0081 输入意味着从数据存储部190、数据压缩装置100的输入装置获取数据。0082 图5是表示实施方式1中的数据预测值整形处理(S120)的流程图。0083 根据图5来说明实施方式1中的数据预测值整形处理(S120)。0084 在S121中,数据预测值整形部221在原始数据di和数据预测值pi的各自的尾数部的高位追加(N+2)比特的比特串“00001”(连续(N+1)个比特值0后的比特值1是一个)。参数N是规定的整数。0085 例如,在原始数据di的尾数部为“1000。

32、0”的情况下,追加比特串“00001”后的原始数据di的尾数部是“0000110000”。0086 追加的比特串的最后比特“1”相当于IEEE 754形式的浮点数中的尾数部的隐位。即,在使用不具有隐位“1”的浮点数的形式的情况下,数据预测值整形部221只要将(N+1)个比特值“0”排列的比特串“0000”追加到尾数部的高位即可。0087 在以后的处理中,数据预测值整形部221使用追加比特串后的原始数据di以及数据预测值pi。0088 在S121之后,进入S122。0089 在S122中,数据预测值整形部221判定原始数据di的指数值是否为数据预测值pi的指数值以上的值。0090 在原始数据di。

33、的指数值为数据预测值pi的指数值以上的值的情况下(“是”),进入S123。0091 在原始数据di的指数值为小于数据预测值pi的指数值的值的情况下(“否”),进入S124。0092 在S123中,数据预测值整形部221将数据预测值pi的指数值变更为与原始数据di的指数值相同的值。在数据预测值pi的指数值与原始数据di的指数值为相同值的情况下,预测值数据pi的指数值不变。说 明 书CN 104412512 A6/16页100093 而且,数据预测值整形部221将数据预测值pi的尾数值在尾数部内右移与原始数据di的指数值和数据预测值pi的指数值之差(下面称为“指数值差”)相同数量的比特数(与指数值。

34、差相当的位数)(舍去从尾数部超出的低位比特)。0094 即,数据预测值整形部221将数据预测值pi的尾数值变更为小了与指数值差相当的位数的值。另外,在指数值差为零的情况下,数据预测值pi的尾数值不变。0095 从尾数部超出的低位比特也可以忽略。即,超出的低位比特的信息也可以没有。因为数据预测值pi的信息损失不会对原始数据di的压缩的可逆性带来影响。0096 例如,在原始数据di为10进制数形式的“1.23104”、数据预测值pi为10进制数形式的“9.98103”的情况下,数据预测值整形部221将数据预测值pi变更为“0.99104”。0097 通过S123,数据预测值整形处理(S120)结束。

35、。0098 在S124中,数据预测值整形部221判定数据预测值pi与原始数据di的指数值差是否为参数N以下的值。0099 在指数值差为参数N以下的值的情况下(“是”),进入S125。0100 在指数值差为大于参数N的值的情况下(“否”),进入S126。0101 在S125中,数据预测值整形部221将数据预测值pi的指数值变更为与原始数据di的指数值相同的值。0102 而且,数据预测值整形部221将数据预测值pi的尾数值在尾数部内向左移动与原始数据di和数据预测值pi的指数值差相同数量的比特数(与指数值差相当的位数)(舍去从尾数部超出的高位比特)。0103 即,数据预测值整形部221将数据预测值。

36、pi的尾数值变更为大了与指数值差相当的位数的值。0104 从尾数部超出的高位比特是在S121中追加的比特串“0000”的比特,因此也可以忽略。即,即使舍去数据预测值pi的尾数部的高位比特,数据预测值pi的尾数值的信息也不会损失。0105 例如,在原始数据di为10进制数形式的“9.98103”、数据预测值pi为10进制数形式的“1.23104”的情况下,数据预测值整形部221将数据预测值pi变更为“12.30103”。0106 通过S125,数据预测值整形处理(S120)结束。0107 在S126中,数据预测值整形部221将数据预测值pi的指数值变更为与原始数据di的指数值相同的值。0108 而且,数据预测值整形部221在数据预测值pi的尾数部中设定规定的虚拟值。0109 即,数据预测值整形部221将数据预测值pi的尾数值变更为与规定的虚拟值相同的值。0110 其中,虚拟值的比特数是在S121中追加比特串后的数据预测值pi的尾数部的比特数以下。0111 在将数据预测值pi的尾数值与S125同样地向左移动的情况下,数据预测值pi的尾数值的高位比特被舍去,因此有可能原始数据di的尾数值与数据预测值pi的尾数值之间没有关系。说 明 书CN 104412512 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 基本电子电路


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1