作者vintw (阳光好青年)
看板EZsoft
标题Re: [请益] 7-zip的"字典大小"和"字组大小"的功用??
时间Sat May 17 18:06:02 2008
※ 引述《debeers (DeBeers)》之铭言:
: 7-zip在压缩档案时有"字典大小"和"字组大小"这二项可以选择
: 我google一下只知道"字典"的功用是用来比对资料用的,字典大小
: 越大的话占用的记忆体越多,但是找不到它到底有什麽功用?
: 字典越大可以减少压缩时间吗?还是增加压缩率??
: 而关於"字组"我就完全找不到资料了..
: 7-zip官网上也没有相关资料
: 可以麻烦知道的人简略的说一下这二项的功能吗? 谢谢!
我要先声明一件事,我的专长不是在资料压缩这个领域
所以下面的说明可能有错误或是不精准还请见谅,并请强者帮忙补完XD
字典(dictionary)和字组(word)指的是字典编码法中的两个核心的参数
7-zip的核心就是字典编码法的一种
字典编码法就是,我把"常常出现的字"用"比较短的方法"记录下来
因为常出现的字变短了就可以达到压缩资料的动作
举个例子好了,如果我要压缩下面这一段文章
: ptt有一个小软体板,小软体板很棒,小软体板值得推荐
: 看小软体板长知识,,小软体板很好很强大,小软体板众都是好人
: 我的最爱中一定有小软体板,小软体板荣光长存!小软体板万岁!
那麽假设我有一本"字典",里面有"小软体板"这个词,正好是字典的第一个字
那我就可以把文章改写成
: ptt有一个$1,$1很棒,$1值得推荐
: 看$1长知识,,$1很好很强大,$1众都是好人
: 我的最爱中一定有$1,$1荣光长存!$1万岁!
文章就变短了,所以就有压缩的作用
当然,在你把档案传给他人时,字典本身也要想办法给过去
这个例子离实用还很远,但是可以了解其精神
一般来说,字典编码法里面的"字"都不是真的字典里面的字
而大部分演算法的"字典"本身也不是固定的,会随着输入资料而动态改变
如果有任何字被字典所查到,那就可以被取代成较短的字串
里面的字典大小,就是指的是这本"字典"的大小
理所当然,越大的字典越能存更多的字,所以命中率越高,压缩比越可能提升
虽然字典越大也会带来一些副作用,例如查字典的时间可能会变长等等
依照个人的经验,字典大到一定程度之後,压缩比的提升就微乎其微了
而字组大小(word size)指的就是字典里面一个字的大小
在字典的大小固定的状况下,一个字越长,字典可以存的字也就越少
所以字组大小不见得和压缩比有正相关,所以不是越大愈好
如果要压缩的资料是特定格式,字组大小的设定可以大幅度的提高压缩比
但是在一般通用的状况下,随意改大不见得会有较好的效果
--
CPU: Intel PIII EB 800MHz (Coppermine) / MB: ACER S58M(i815)
RAM: Apacer PC133 256MB*2 / VGA: Gigabyte ATi 9000pro 64MB DDR
CD-RW: LiteOn LTR-52327S / DVD-RW: BenQ DW1640
HDD: Seagate 7200.7 80G*2 / PSU: AcBel 350W / Case: iCute不知名
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.136.4.217
1F:推 Rhymer:word size有限制吗? 05/17 18:22
2F:→ Rhymer:字典太大有时後压缩效果反而会变差 05/17 18:24
3F:推 mosquito520:因为牵涉到字典本身是可变动的... 05/17 19:09
4F:→ mosquito520:你根据一个档案产生出字典...自然要把字典给对方才能 05/17 19:09
5F:→ mosquito520:解压缩...所以字典大小也会占用一定的空间... 05/17 19:10
6F:→ mosquito520:其实...内建的设定不是就很堪用了吗= =??? 05/17 19:10
7F:推 Rhymer:字典可以在收发两端即时建立,不需要传送.例如LZW演算法. 05/17 20:24
8F:推 mosquito520:即时建立那就不是我提到的可变动的字典了... 05/17 23:34
9F:推 debeers:很详细的解说!! 谢谢!! ^^b 05/18 01:01
10F:推 vixen:推你的电脑配备!!! 05/18 09:25
11F:→ mizukiyun:那结实区块大小呢?感谢! ^^ 02/22 13:11