作者y3k ( )
看板EZsoft
标题Re: [请问] 结实压缩档 我真是搞不懂你阿
时间Mon Nov 14 19:04:19 2011
结石压缩档的意思 和你想的不太一样喔
我把我个人粗浅的认知大略的讲解一下 我想你会比较清楚
今天我们有三个mp3要做压缩打包
a.mp3
b.mp3
c.mp3
用一般的压缩方式压出来的档案可能是这样子
<r39q34t0ogwh9gweqglm F9RY890Q98O5QWYTJ4QOIJA TRGHEHAIOEAWIAODRS>
中间的压缩原理和演算我省略不讲
你会发现为了让电脑能够更快速的辨识压缩完的档案各自在哪里
用了三个空格(当然实际不会简单到这麽无脑)来分隔他们
这样的话 如果进行3个档案 会有(3-1)*n个浪费掉的空格
那如果20000个档案的话 就会浪费掉(20000-1)*n个空格
这种状况下影响是很可观的 而结实压缩档就是把那些空格舍去
用更简短或根本省略的方式做表达 有效率地降低压缩档的大小
至於本来压缩出来的档案资料流会长甚麽样子 是不会影响的
但是这样的缺点就是 在结实压缩档解压缩任何一个或数个档案的时候
必须要把压缩档整个扫过一遍而没办法就只读那个档案那段
实务上用的方式一定比我讲的这个还要聪明 甚至聪明到天才的地步
但是对普通使用者应该是这样理解就够你判断了
以你的情况 压缩几个ISO 并不会改变太多的
这时候用结实压缩档的好处就不会那麽明显
你要求压缩比高 应该改用7z的lzma2(推荐XD)或把RAR压缩方式调成压缩最佳
而你那张图纯粹是因为被打包的档案不一样 所以索引字典之类的也不一样
当然同个档案压出来的效果也不同
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.34.214.97
※ 编辑: y3k 来自: 114.34.214.97 (11/14 19:06)
1F:推 rick65134:请问你能帮我解释为何两个相同的4063KB的档案压缩起来会 11/14 19:09
2F:→ rick65134:很小 几乎相当於单一4063KB的档案去压缩 但4065KB则无 11/14 19:10
3F:→ y3k:你确定4065kb你是拿两个一样的档案去压吗 11/14 19:15
4F:推 rick65134:百分之百确定 因为是直接复制的 你也可以自己做一下实验 11/14 19:20
5F:→ rick65134:不会花您太多的时间 11/14 19:20
6F:→ y3k:我突然要去哪里生一个4065kb的档案=_= 11/14 19:21
7F:推 hirokofan:7z安定^_^ 11/14 19:22
9F:→ y3k:我可以肯定的是 只要你的RAM够大 用7z一定能有让你满意的结果 11/14 19:22
10F:→ rick65134:不必一定要4065KB 以此档案大小当边界 随便一个3MB和5MB 11/14 19:22
11F:→ rick65134:对了 我的图里面都有显示CRC32 可见是一样的档案 11/14 19:24
12F:→ y3k:7z除了一般根本不会用到的rr功能外几乎完胜rar 11/14 19:24
13F:→ rick65134:唉 我是要玩免空的 rr很重要阿 11/14 19:25
14F:→ y3k:那应该就是rar字典设计上的问题了 这个你可能要找WINRAR公司 11/14 19:25
15F:→ y3k:不然你可以考虑这样:7z压缩候用rar再包一层加RR 11/14 19:26
16F:→ rick65134:嗯 真没办法也只好这样试试了 谢谢您的建议 11/14 19:40
17F:→ y3k:7z建议这样:选7z+lzma2 字组大小ㄍㄧㄥ到最大 字典大小再ㄍㄧ 11/14 19:41
18F:→ y3k:ㄥ到你RAM的极限w 11/14 19:42
19F:推 rick65134:谢谢您 马上来试试 11/14 19:43
22F:推 rick65134:不过7z的设定和您说的有点不同 字典和字组都有其极限 11/14 20:07
23F:→ rick65134:而区块大小的设定是到64GB 再上去那个"结实"似乎表示∞ 11/14 20:08
25F:→ y3k:字组是273 字典是1024阿 如果用多线程会让RAM使用量增加就是了 11/14 20:09
26F:→ y3k:这些都是不需要在意的细节 你稳稳用就好了~ 11/14 20:10
27F:推 bestpika:反正原原PO的问题跟结实无关就对了。 11/14 20:12
28F:推 rick65134:刚据我刚刚用7z测试的结果 7z称之为"结实区块大小" 11/14 20:16
30F:推 rick65134:我想下面的图可以说明我的问题就是"结实压缩档" 11/14 20:35
32F:→ rick65134:根据以上实验结果推测 7z可以设定"结实区块大小" 小於 11/14 20:39
33F:→ rick65134:此大小的档案 会去比较相似程度 大於此大小的则单独压缩 11/14 20:39
34F:→ rick65134:至於winrar 部分 目前实验结果显示 "结实区块大小"预设 11/14 20:40
35F:→ rick65134:约4063KB 超过或小於的运作方式和7z雷同 11/14 20:42
36F:→ rick65134:而上篇那些嘘我的人 如果方便 请提出实验或网页反驳我吧 11/14 20:44
37F:→ rick65134:刚刚再测试了一下 和字典档大小似乎也有关系 11/15 15:48
38F:→ rick65134:即便结实区块大小已经设成64GB了 但是超过64MB的档案 11/15 15:51
39F:→ rick65134:依旧无法达到瘦身的效果 7Z字典档最多64MB 而且压缩时需 11/15 15:53
40F:→ rick65134:要709MB的记忆体 解压需要66MB的记忆体 根据我的推算 11/15 15:54
41F:→ rick65134:压缩2GB的档案 需要21GB的记忆体 且解压缩也要2GB记忆体 11/15 15:55
42F:→ firejox:你可以尝试看看先用tar包起来再来压 或许有不同的效果... 11/15 18:37
43F:推 rick65134:tar喔 来找找看windows下要用哪个压比较好 7Z适合吗? 11/15 21:06
44F:→ firejox:一般常见是gz和bz来压 gz较快 bz压的比较多 7z倒是没试过 11/15 23:09
45F:→ y3k:win底下我也只知道7zip能做tarball 11/15 23:22
46F:→ y3k:还有rick你压缩方式有没有选lzma2啊@@ 11/15 23:23
48F:→ rick65134:所有设定调到最大 但只要大於64MB 则依旧无效果 11/16 02:14