Re: [问卦] RAR压缩档的原理到底是什么的八卦?

楼主: LuSirOtaKu (鏀鏀der)   2015-09-16 03:53:29
※ 引述《flower42 (loop)》之铭言:
: 压缩档顾名思义让档案变小
: 变得更好传输
: 有去google但是有点难懂
: RAR压缩档的原理到底是什么的八卦?
不知道原Po是不是真得想要钓鱼
不过最近刚好有学到这一块就来现学现卖认真回一下
如有错误 还请各位纠正
压缩档案顾名思义就是将原有的档案的大小缩小
档案的大小缩小除了可以让D槽存更多片片外,在网络上的传输也很重要。
早期网络不发达时频宽不足 ,
传些小东西就要花很长的时间,
如果能将档案变小 ,那就可以省下不少的时间了。
而就算到了今天,
网络发展让大多数人都不需要为频宽不足而烦恼,
却也还有行动网络的存在,
档案小也意味着传输时耗费的网络流量较小。
由此可见压缩的技术在档案的保存和传输上有多大的影响。
接着进入正题
其实压缩的技术千百种,
不同的公司也有自己的算法,
但其实都不会脱离一个大概念
就是将资料从新编码。
举个例子来说 ,
假设我们现在要压缩的是一段英文的纯文字:
GGININDER
在这里我先用个我流的压缩规则来讲解:
当遇到字母时如果是还没遇过的就给予一个数字的编号
如果是遇过的就用同一个编号 并用二进制表示
用这个规则的话 原本的文字压缩后就会变成
0 0 1 10 1 10 11 100 101
G G I N I N D E R
(手机排版 如果有跑掉还请见谅)
或许这看起来跟原本差不多,
不过我们要知道的是 ,
不论是用ASCII(一个字母1 byte)或是unicode(一个字母4byte)做为文字的编码 ,
都比我们上面最多只用到3bit的编码来得大。
当然这只是一个很粗略的方法。
其它还有像是霍夫曼编码这种比较严谨的编码方式。
有兴趣的话可以上网查查资料,
在此我就不赘述了。
最后还有一点要补充 。
或许会有人想说,
如果压缩的内容不同 ,编码不就可能不一样了,
那我在解压缩的时候
怎么知道你哪个字是编成什么码?
为了解决这个问题,
所以其实在档案压缩后会自动附带一个“解码表”,让解压缩端知道要如何去解压缩这个
档案。
所以当我们要压缩的档案太小的时候
因为必须加上“解码表”的大小
遇到压缩后的档案比原本的档案大也是有可能的。
作者: Benbenyale (想讓貝魯君更爽♥)   2015-09-16 03:54:00
yoyodiy叔早就知道
作者: grant790110 (历史的过客)   2015-09-16 03:55:00
看过一个压缩档400M 解下去近十G的东西...这什么技术
作者: twdvdr (风中的一粒沙)   2015-09-16 03:56:00
grant790110 文字挡的压缩比比较高
作者: uuuujoe (Joe)   2015-09-16 03:56:00
专业
作者: ninggo (穿着裤子的男人)   2015-09-16 03:57:00
yoyo把五楼的老二压成,rar
作者: grant790110 (历史的过客)   2015-09-16 03:58:00
不不...那全是图档..是某游戏的H event 和sys 相关档
作者: juyhnmki (鲜肉宅)   2015-09-16 03:58:00
yoyo自己来表示:
作者: ap909278410   2015-09-16 03:59:00
谢谢yoyodiy
作者: saiulbb (Becky♪#是我的拉!)   2015-09-16 03:59:00
快推文不然会以为不知道
作者: jetzake (加菲猫)   2015-09-16 03:59:00
我猜grant790110的原始档案大多是BMP 这压缩率可以很惊人
作者: silverair (木栅福山雅治)   2015-09-16 04:01:00
重复率越高压缩比越大
作者: TheRock5566 (一点点的幸福)   2015-09-16 04:02:00
你们在那边瞎猜 为什么不直接请教专业人士YOYO呢不要在那边瞎猜了 去请教专业的
作者: kevin31a2 (3等士官长 士兵督导长)   2015-09-16 04:05:00
大概连续7个1占7byte改写成7和1占两byte?
作者: pasdor (Black snake Moan)   2015-09-16 04:10:00
d碟是三小。本岛只有d槽
作者: doom3 (ⓓⓞⓞⓜ③ )   2015-09-16 04:14:00
近十G的垃圾档案阿 连续0之类的 让你不好COPY
作者: grant790110 (历史的过客)   2015-09-16 04:15:00
的确是BMP 压缩档包著压缩档 全部解开是很惊人的量..
作者: ls4860 (我是熟番)   2015-09-16 04:22:00
据说yoyo大是因为当初用rar把珍藏几TB的d槽加密 结果想尻的时候忘记密码 才发愤写出绕过的程式 果然人性是进化的动力伟哉~yoyodiy!!
作者: dostey (Dos)   2015-09-16 04:25:00
===就看谁能找越小化 规则(数学解=算法)
作者: grant790110 (历史的过客)   2015-09-16 04:34:00
解完了...总大小23.5G.. 4个子压缩档含13万8864个BMP缩好后457MB 真是太神奇了
作者: office7845 (hung)   2015-09-16 04:39:00
一个字典档4.4g解压后13g,发明压缩实在惊人
作者: jetzake (加菲猫)   2015-09-16 04:39:00
grant790110兄 其实你直接把图都转成jpeg差不多就是这样不过jpeg档不能直接叠 可能是因为后续加工需要才保留BMP
作者: grant790110 (历史的过客)   2015-09-16 04:43:00
大概是因为有透明层的关系吧
作者: Arminius (奇怪的欧吉桑)   2015-09-16 05:04:00
400M算什么...当年台湾有个高中生天才, 可以将 17G 的资料压缩进去一片3.5吋磁片......
作者: kyohel15 (Eugene)   2015-09-16 05:17:00
是JEPG
作者: spirit557 (忧郁的叮当)   2015-09-16 05:39:00
谢谢yoyodiy绕过rar密码
作者: tentimes (十遍)   2015-09-16 06:10:00
无损跟有损的压缩率差很多
作者: likeyousmile   2015-09-16 07:20:00
比较先进的图档格式如jpg, png都经过高度压缩了,在用rar也压不多。bmp无压缩的就可压很多。
作者: tedium (贫穷)   2015-09-16 07:37:00
我每天寄十封信感谢yoyodiy无私的奉献
作者: pichu38 (皮丘)   2015-09-16 07:43:00
yoyodiy:
作者: gta42012 (Webb)   2015-09-16 07:53:00
有请Yoyodiy大
作者: davidcute90 (小杂碎)   2015-09-16 08:56:00
真的无法理解qq

Links booklink

Contact Us: admin [ a t ] ucptt.com