计算式二进制数据可逆性压缩法的制作方法

文档序号:16319207发布日期:2018-12-19 05:36阅读:377来源:国知局

本发明是一种计算式二进制数据可逆性压缩法,克服了二进制数据可逆性压缩技术压缩率低下而制约了计算机及电子信息业发展的问题。它是把二进制数据中1所组成的数通过计算或排序等方式进行可逆性数据压缩,使压缩率有了极大的提高;数据压缩后并可重复再压缩,使任何大的或超大的二进制数据可逆压缩至1k以内,从而达到了更好的处理、传输及储存数据的目的。

技术背景

目前,因可逆性压缩技术发展缓慢,严重制约了计算机和电子信息业的发展。



技术实现要素:

为了更好的对二进制数据进行可逆性压缩,本发明创造了一种对二进制数据进行可逆性压缩的压缩方法,有效的提高了二进制数据的压缩率。

首先将任何二进制数据中连续的同一类数据看成一个数,两种类型的数又是有规律的一一交错,然后把它们按类型分开就形成了有一定规律的二进制数据,即:数据是由一种单一种类的数据组成。例:把二进制数据1101001110001111000011111按类型分开就形成了由二进制数据1组成11、1、111、1111、11111数和由二进制数据0组成时0、00、000、0000数。

然后,把二进制数据类型1所组成的数据两个(或三个等)相加(或相减或组合排列或其它能够区分的计算方法),如二进制数据1和11相加为1+3=4或二进制数据11和111相加为3+7=10。由于两个相加的二进制数据数的位置不能确定和如果二进制数据的总数为单数时最后一个数不能计算,所以需要规定当相加的两个二进制数相等或第一个二进制数小于第二个二进制数时所得的结果不变;当两个二进制数是第一个数大于第二个二进制数时将结果加1,如:111和11相加为7+3=10,结果应为10+1=11;当二进制数据的总个数是单数时,最后一个不能计算就保留并在后加一个数0;如最后一个二进制数据为11时结果应为3和0;另外因为二进制数据1、11这两个数相加时会使结果比原来的数据占用的空间大,就规定如果这两个数在数据中连续的两个和三个的排列组合为(1、1)(1、11)(11、1)(11、11)(1、1、1)(1、1、11)(1、11、1)(1、11、11)(11、1、1)(11、1、11)(11、11、1)(11、11、11)时其结果为与其它两个数相加的结果不冲突的数如1、2、3、6、7、12、13、15、20、21、24、25。如果使用相减的方法时结果出现冲突就规定不冲突的数为其结果,如当第一个数和第二个数相同时两个数相减的结果为其本身如1、1两个数计算的结果为1;当第一个数大于第二个数时用第一个数减去第二个数其结果不变如7、3的计算方式为7-3=4结果为4;当第一个数小于第二个数时用第二个数减去第一个数,其中如果第二个数大于7的第一个数小于7的其结果减去1如3、15的计算方式为15-3=12然后12-1=11结果为11,如果第二个数大于7的第一个数大于等于7的其结果加1如7、15的计算方式为15-7=8然后8+1=9结果为9,如果第二个数是7的第一个数是3其结果为18,如果第二个数是7的第一个数是1其结果为10,如果第二个数是3的第一个数是1其结果为5;当数据的总个数是单数时最后一个不能计算就保留并在后加一个数0如最后一个二进制数据为11时结果为3和0。

然后,将所得的结果进行统计,根据重复最多的结果到最少的依次排列,相同次数的以大小的顺序排列;然后用能区分的二进制数据段,如1、10、100、1000、10000等(或者是0、01、011、0111、01111等及10、110、100、1100等,以及用位数来区分如2位的00、01、10、11或3位的000、001等)和依次排列的结果对照,以最大限度的减少结果所表示的数据位数为目的用二进制数据代换结果的类型(结果所涉及的数字)形成数据表;再将结果代换成以数据表中的二进制表示的数据;当对由另一种二进制数据0组成的数据压缩时先将其取反转换为由二进制数据1表示的数据如:0为1、00为11、000为111等再进行以上的步骤。因为二进制数据是两个相加(或相减或其它能够区分的计算方法)所以使原始数据所占的空间大大减少,从而达到了压缩数据的目的。因为压缩后的数据仍是二进制数据,所以就可以再用以上的方法进行重复的压缩,最终将任何大小的二进制数据压缩至1k以内。

数据的解压,就是通过数据表和压缩的数据逆操作以上的压缩过程。

具体实施方式

由于将原始二进制数据分开后两种二进制数据0和1分别组成的数据压缩过程基本相同,所以这里只讨论由二进制数据1组成的数据。

将以下由二进制数据1组成的数据进行压缩:

{1、11、111、11、1111、11111、1111、111、111、11、11、1111、1111、111、111、11、1、11、111、1、1、11、111、11、11、111、111、111、111、11}

将数据两两按规则相加:

{4、11、46、23、11、18、23、11、4、9、4、11、10、14、11}

统计重复的次数:4重复3次,11重复5次,23重复2次,46、18、14、10、9为1次。形成数据表即:11=4、01=11、101=23、100=46、0011=18、0010=14、0001=10、0000=9。

将相加的结果数据代换成以数据表中的二进制表示的数据得到压缩结果:

{11011001010100111010111000011010001001001}

数据的解压,就是通过数据表和压缩结果逆操作以上的压缩过程所以不在说明。

以上是对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。



技术特征:

技术总结
本发明是一种计算式二进制数据可逆性压缩法,克服了二进制数据可逆性压缩技术压缩率低下而制约了计算机及电子信息业发展的问题。它是把二进制数据中1所组成的数通过计算或排序等方式进行可逆性数据压缩,使压缩率有了极大的提高;数据压缩后并可重复再压缩,使任何大的或超大的二进制数据可逆压缩至1K以内,从而达到了更好的处理、传输及储存数据的目的。

技术研发人员:吕志强
受保护的技术使用者:吕志强
技术研发日:2017.09.05
技术公布日:2018.12.18
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1