一种基于新短浮点型数据的数据转换方法

文档序号:9869696阅读:614来源:国知局
一种基于新短浮点型数据的数据转换方法
【技术领域】
[0001] 本发明设及数据处理技术领域,尤其是一种基于新短浮点型数据的数据转换方 法。
【背景技术】
[0002] 随着社会的日益发展,由科学研究、社交网络、自然环境监测等产生的数W亿计的 数据呈爆炸式增长,无论在工业界还是学术界,大规模数据处理都受到火热追捧。数据的多 样性和指数级增长给数据存储和传输带来了巨大压力,严重阻碍了高性能计算在科学领域 的运用和发展。
[0003] 浮点数在计算机系统中是普遍存在的(从PC到超级计算机都广泛存在)。几乎每种 计算机语言都有浮点数型数据。浮点数型数据的通用标准是IEEE754标准。IEEE754标准在 表示浮点数时,每个浮点数均由立部分组成:符号位S (sign),指数部分E (exponent,也称 为阶码部分)和尾数部分M (mantissa)。
[0004] I邸E754标准的浮点数一般采用W下四种基本格式: (1)单精度格式他位):除去符号位1位后,E占8位,M占23位。
[0005] (2)扩展单精度格式:E〉=ll位,M〉31位。
[0006] (3)双精度格式:(64 位);E=11 位,M=52 位。
[0007] (4)扩展双精度格式:E〉=15位,M〉63位。
[000引数据的转换方式包括数据压缩、解压缩、存储与传输等。对浮点型数据来说,数据 的总位数决定了数据转换的效率。目前IEEE754标准的四种浮点型数据的总位数至少为32 位,若能采用总位数少于32位的数据格式来表示浮点型数据,将会进一步加快数据转换的 速度和效率,降低数据存储量和传输成本,运对于追求更高压缩效率的有损压缩(有损压缩 指的是解压缩时不能精确恢复原始数据,有一定的信息损失,该方法主要用于图像、视频、 音频等少量信息遗失而不会影响原有数据效果的领域)来说,显得尤为重要。

【发明内容】

[0009] 为解决上述技术问题,本发明的目的在于:提供一种转换速度快、效率高、存储量 少和传输成本低的,基于新短浮点型数据的数据转换方法。
[0010] 本发明所采取的技术方案是: 一种基于新短浮点型数据的数据转换方法,包括: A、 确定数据转换的变换形式及所采用的变换算法,所述数据转换的变换形式包括但不 限于压缩、解压缩、存储和传输; B、 根据确定的变换形式采用相应的变换算法将新短浮点型数据转换为其它浮点型数 据或将其它浮点型数据转换为新短浮点型数据,所述新短浮点型数据为8位短浮点型数据 或16位短浮点型数据。
[0011] 进一步,所述8位短浮点型数据的数据格式为:符号位为1位,阶码部分共4位,尾数 部分共3位;若阶码为O且尾数为O,则运个数的值为± O;若阶码为255且尾数为O,则运个数 为无穷数;阶码为255且尾数不为O,则运个数表示非法数;负数的表示范围为[-416,-1.953 X10-3],正数的表示范围为[1.953 X 10-3,416];相对误差小于等于6.22%。
[0012] 进一步,所述16位短浮点型数据的数据格式为:符号位为1位,阶码部分共8位,尾 数部分共7位;若阶码为0且尾数为0,则运个数的值为± 0;若阶码为15且尾数为0,则运个数 为无穷数;阶码为15且尾数不为0,则运个数表示非法数;负数的表示范围为[-3. Ol X IO38, -1.401298 X 10-45],正数的表示范围为[1.401298 X 10-45,3.Ol X 1038];相对误差小于 等于1.05%。
[0013] 进一步,所述其它浮点型数据为IEEE754标准的单精度浮点型数据或双精度浮点 型数据。
[0014] 进一步,所述步骤B中将单精度浮点型数据转换为8位短浮点型数据或16位短浮点 型数据运一步骤,其包括: B11、将浮点型数据按照整型的数据格式进行逐位读取; B12、利用位运算,分别获取单精度浮点型数据的符号位、阶码W及尾数部分; B13、通过移位W及截取运算,获得单精度浮点型数据中阶码W及尾数部分压缩后的 值; B14、采用位或运算将单精度浮点型数据的符号位、阶码W及尾数部分压缩后的值合并 为8位短浮点型数据或16位短浮点型数据。
[0015] 进一步,所述步骤B中8位短浮点型数据转换为单精度浮点型数据运一步骤,其包 括: B21、按压缩时的数据格式从8位短浮点型数据中截取符号位S,阶码部分E和尾数部分 M; B22、按IEEE754标准的数据格式,对单精度浮点型数据进行回填,所述对单精度浮点型 数据进行回填运一步骤包括: 将符号位S直接填充至单精度浮点型数据首字节位的第0位; 将尾数部分M填入单精度浮点型数据的第9位至第11位,并往单精度浮点型数据的第12 位至第31位填0; 根据阶码部分E计算解压后的阶码E',然后将E'的值填入单精度浮点型数据的第1位 至第 8 位中,其中,当 E=O 时,E'=0;当1 < E < 254时,E'= E + 120;当 E=255 时,E'=255。
[0016] 其中,本发明8位短浮点型数据的解压缩方法中对无穷(INF) W及非法数(化N)的 处理方法与IEEE754所定义的方法有所不同,能更加充分地利用存储空间。
[0017] 进一步,所述步骤B中将16位短浮点型数据转换为单精度浮点型数据运一步骤,其 包括: B31、按压缩时的数据格式从16位短浮点型数据中截取符号位S,阶码E和尾数M; B32、按照IEEE754标准的数据格式,对单精度浮点型数据进行回填,所述对单精度浮点 型数据进行回填运一步骤包括: 将符号位S直接填充至单精度浮点型数据首字节位的第0位; 将尾数部分M填入单精度浮点型数据的第9位至第15位,并往单精度浮点型数据的第16 位至第31位填0; 根据阶码部分E计算解压后的阶码E',然后将E'的值填入单精度浮点型数据的第I位 至第8位中,其中,E' = E。
[0018] 进一步,所述步骤B中将8位短浮点型数据转换为双精度浮点型数据运一步骤,其 具体为: 先将8位短浮点型数据转换为单精度浮点型数据,然后通过强制转换将单精度浮点型 数据直接转换为双精度浮点型数据; 或者先从8位短浮点型数据中截取符号位S、阶码部分E和尾数部分M,然后按照IEEE754 标准的数据格式,对双精度浮点型数据进行回填,得到转换后的双精度浮点型数据,所述对 双精度浮点型数据进行回填运一步骤包括: 将符号位S直接填充至单精度浮点型数据首字节位的第0位; 将尾数部分M填入单精度浮点型数据的第12位至第14位,并往双精度浮点型数据的第 15位至第63位填0; 根据阶码部分E计算解压后的阶码E',然后将E'的值填入双精度浮点型数据的第1位 至第 11 位中,其中,当E=O时,E'=0;当1 < E < 254时,E'= E + 120;当E=255时,E' = 255。
[0019] 进一步,若需要将单精度浮点型数据转换为8位短浮点型数据,则采用转换公式y= f8(X)或y=f8ex(X)将单精度浮点型数据X转化为8位短浮点型数据y;若需要将单精度浮点 型数据转换为16位短浮点型数据,则采用转换公式y=fl6(X)或y=fl6ex(X)将单精度浮点型 数据X转化为16位短浮点型数据y,其中,函数f8(x)和函数fi6(x)分别为8位短浮点型数据和 16位短浮点型数据的普通版本转换函数,函数fSexU)和函数f ISex(X)分别为8位短浮点型数 据和16位短浮点型数据的精确版本转换函数;函数f8(x)只根据单精度浮点型数据X的第9 位至第11位来确定8位短浮点型数据y的尾数,而函数fsexU)则根据数据X的第9位和第10位 来确定数据y尾数的前2位并根据数据X的第11位和第12位来确定数据y尾数的最后1位;函 数fi6(x)只根据单精度浮点型数据X的第9位至第15位来确定8位短浮点型数据y的尾数,而 函数fi6ex(x)则根据数据X的第9位至第14位来确定数据y尾数的前6位并根据数据X的第15 位和第16位来确定数据y尾数的最后1位。
[0020] 进一步,所述步骤B在通过压缩转换算法将其它浮点型数据转换为新短浮点型数 据时还包括W下步骤: 对新短浮点型数据进行二进制格式紧凑存储,生成二进制数据文件; 登记二进制数据文件的压缩标记。
[0021] 本发明的有益效果是:采用了 8位短浮点型数据或16位短浮点型数据来进行数据 转换,与IEEE754标准的浮点型数据相比,总位数更少,进一步加快了数据转换的速度和效 率,降低数据存储量和传输成本,具有压缩率高和存储量小的优势,尤其适用于数据的有损 压缩存储与传输。进一步,8位短浮点型数据的表示范围为[-416,416],相对误差小于等于 6.22%;而16位短浮点型数据的表示范围为[-3.Ol X 1038,3.Ol XlO38L相对误差小于等 于1.05%,使得新短浮点型数据在同等的存储空间条件下具有更大的表示范围和更高的精 度。进一步,将单精度浮点型数据转换为8位短浮点型数据或16位短浮点型数据时,能采用 精确版本转换函数来进行压缩转换
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1