找回密码
 欢迎注册
查看: 10782|回复: 0

[原创] 一种新的数据压缩算法,多项式数据压缩

[复制链接]
发表于 2013-11-30 10:30:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
本帖最后由 wsc810 于 2013-11-30 11:46 编辑

设$N$是要压缩的数据,计算$N$以系数$0,1$的$X$进制表示,即$N=a_nX^n+a_{n-1}X^{n-1}+...+a_1X^1+a_0$ ,$a_n,a_{n-1},...,a_1,a_0$ 等于$0$或$1$

压缩算法设计思路

    给定$N$,解由$0,1$系数构成的多项式方程,其系数$0,1$向量由$2^n-1,2^n-2,...,2,1$依次递减,若找到$N$的一个正整数根,则找到$N$的一种以$X$为基的二进制表示

解压缩很简单

    直接求多项式的值即可

数据的存储与表示

    在一个存储块中,可以设定前$n$个字节存储$X$,后$n$个字节存储$0,1$二进制数$b$.

整体分析

    由于在一串二进制数据中,连续的$N$个数据组中,不可能遍历出现$0$到$2^n-1$所有的数据状态,多出现较大的数,小的数一般不出现(除非二进制数的前面有一长串0),所以存在数据冗余,即可以被压缩。
下面做一个假定,设用一个字节来表示$X$,两个字节来表示$b$ ,则最大能表示的N值
  $N=255^15+255^14+...+255+1=1258372359508183022113289901252806656$,$log[256,N]=14.9901$普通二进制需要15字节来存储,而压缩后仅需3个字节

存在的问题

    由于所有的存在状态为255*255=65025(不知道是不是这样算)所以可能导致某些数无法表示,进而不能被存储,不知道允许$X$取负值,能不能解决问题。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-23 18:56 , Processed in 0.201778 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表