作者gwliao (gwliao)
看板CSSE
标题Re: [问题] 以bit为单位的无失真compressor...
时间Wed May 10 00:42:07 2006
※ 引述《jmren (学生)》之铭言:
: ※ 引述《jmren (学生)》之铭言:
: : 请问各位先进
: : 有人使用过以bit为单位的现成无失真compressor吗
: : 网路上找到的大部份都是以byte为单位...囧
: : 感谢^^"
: 应该说现在假如有0001110010100001110010101010等bit 字串
: 现成的compressor都是以byte为单位下去压缩
: 所以想问说
: 有那种以bit为基准的去压缩的吗...
很多压缩法都是用字典的方式.
那字典是由很多个字组成, 字是由很多个字母组成.
那你把0和1当成字母,
然後再由这些字母找出字,
然後用这些字去组一个字典.
所以现在很多的压缩的演算法都可以套用,
只是要自己改code而已......把Byte的operation变成bit的operation XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.230.125
1F:推 jmren:和老师说的不谋而合,正在努力coding LZW...囧 05/10 00:44
2F:推 jmren:只是问问有没有人会sparse matrix的压缩法...没有那就算了 05/10 00:49
帮你做实验, 加强你的信心. XD
我用rand()产生资料 (25%为1, 75%为0)
bit-1.txt是每一个bit为一笔资料.
bit-8.txt是每一个byte为一笔资料, 资料只有"0"和"1"两种.
16384 bit-1.txt
131072 bit-8.txt
15222 bit-1.txt.bz2 15222/16384 =92.9%
16699 bit-8.txt.bz2 16699/131072=12.74%
所以......还是努力coding吧. :P
※ 编辑: gwliao 来自: 140.112.230.125 (05/10 00:55)
※ 编辑: gwliao 来自: 140.112.230.125 (05/10 00:55)
3F:推 jmren:bz2是什麽压缩法,竟然比LZMA还厉害...QQ 05/10 01:12
4F:→ jmren:呵,这实验我已经做了n次了...QQ,8byte是12.5%,1bit是84% 05/10 01:14
5F:→ jmren:但还是感谢你的热心回应哟:) 05/10 01:14
7F:推 reader:bz2 是使用 BWT 的压缩法, 请参考 #66 05/10 02:19
jmren大哥, 你会错意了.
我想表达的是.......原本的压缩法对你的资料其实是很有用的.
( 只是要将byte operation改成bit operation. XD )
而不是哪个压缩法很有用.
实际试一下, 发现.....这些方法是很不错. :)
再秀一些资料. gz表示用gzip压, 7z......你应该知道. XD
(gzip -9)
13743 bit-1.txt.gz 83.88%
17392 bit-8.txt.gz 13.26%
(7z, 64Mb, 48 Bit)
14054 bit-1.txt.7z 85.78%
15774 bit-8.txt.7z 12.03%
※ 编辑: gwliao 来自: 140.112.230.125 (05/10 08:06)
8F:推 jmren:感谢感谢^^",但是其实那个以byte为单位存档後再压缩,他的 05/10 09:08
9F:→ jmren:压缩率不能这样算哟,因为原始资料只有131072bits,把每个 05/10 09:09
10F:→ jmren:bit改成byte下去存,所以变成131072byte,再拿去压缩,故压 05/10 09:11
11F:→ jmren:缩率应该是15774*8(bits) / 131072 (bits),是96.27% :) 05/10 09:11
12F:推 gwliao:我知道, 所以我说"这实验是加强信心用的" XD 05/10 09:12
13F:→ jmren:上述分母是原始资料大小,而分子则是你压缩结果:) 05/10 09:13
14F:→ gwliao:只是秀一下, 假如你的资料是以byte的形式出现的话 05/10 09:14
15F:→ gwliao:可以能压多少. 05/10 09:15
16F:→ jmren:soga...呵,很感谢你热心帮我^^" 05/10 09:15
17F:→ gwliao:那些演算法都是以byte为单位撰写, 所以把你的data也用 05/10 09:16
18F:→ gwliao:data也用来表现, 试试现有的方法的表现, 用以估计... 05/10 09:16
19F:→ gwliao:用以估计那个程式是不是要写下去. XD 所以是加强信心. 05/10 09:17
20F:→ gwliao:这麽有少字....Orz data也用"byte"来表现, 05/10 09:18