ファイルの圧縮なんだけど、このファイルは圧縮するとサイズが50パーセント(半分)になる、このファイルを圧縮すると25パーセント(4分の1)になるといった一定の法則はないんです。
図1
例えば、上の○印の部分を見てください。
同じ拡張子の画像ファイル(.bmp)なのに圧縮率がtest02.bmpとtest03.bmpでは違うでしょ。
同じ拡張子の文書ファイル(.doc)なのに圧縮率がtest1.docとtest2.docでは違うでしょ。
どうしてファイルによって圧縮率が変わるかというと、
例えばABCのデータがあったとします。並び方で30が9になります。
ABCABCABCABCABCABCABCABCABCABC |
この並びだとデータの合計は30です |
AAAAAAAAAABBBBBBBBBBCCCCCCCCCC |
もしデータがこんなふうに並んでいたとしたら |
A10B10C10 |
こんなふうに省略できて データの合計は9になります |
これがファイル圧縮の仕組みなんです。
実際にはもっと複雑な仕組みで圧縮してるんだけど、これが基本形です。
僕たちビギナーは、この程度知ってればいいんじゃないのかなあ。
で、このデータの並び方で(同じ拡張子のファイルでも)圧縮率がいろいろに変わってくるわけなんです。
AAABCABCCCAAAABBBBCCCCCCABBCCC |
もしデータがこんなふうに並んでいたとしたら A3BCABC3A4B4C6AB2C3になるから データの合計は19になります |
日本版のLHA方式(***.LZH)とアメリカ版のZIP方式(***.ZIP)では、圧縮率が違うみたいです。
LHMelt(LZHファイル)で圧縮した(図1)のと同じファイルをWinZip(ZIPファイル)で圧縮してみました。
図2
(注意)LHMelt(LZH)とWinZip(ZIP)では、圧縮率の計算が逆になっています。
図1と図2を表にまとめてみました。
ファイル名 | 元のサイズ | LHA方式で圧縮したサイズ | ZIP方式で圧縮したサイズ |
test01.bmp | 547038バイト | 7076バイト | 10479バイト |
test02.bmp | 241170バイト | 3273バイト | 5149バイト |
test03.bmp | 204478バイト | 6887バイト | 9408バイト |
test1.doc | 11776バイト | 2492バイト | 2477バイト |
test2.doc | 12288バイト | 2848バイト | 2821バイト |
test3.doc | 10240バイト | 2166バイト | 2150バイト |
この表だと、画像ファイル(.bmp)は、LHA方式(LZHファイル)のほうが圧縮率いいみたい、反対に文書ファイル(.doc)はZIP方式(ZIPファイル)のほうがいいみたいです。
でもデータ次第でいろいろ変わってくるみたいです。少しでも圧縮率をよくしたい人は、いろんな圧縮方式を試してみてください。