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