| テキストファイル ( 8, 463, 874 バイト ) を圧縮 | ||||
|---|---|---|---|---|
| 形式 | バイト | 圧縮率 | メーター | ランク |
| bzip | 1, 983, 585 | 76.6 |
|
1 |
| cab | 2, 055, 457 | 75.7 |
|
2 |
| gzip | 2, 466, 797 | 70.9 |
|
3 |
| lha | 2, 870, 894 | 66.1 |
|
5 |
| zip | 2, 780, 496 | 67.1 |
|
4 |
| 実行ファイル ( 7, 387, 756 バイト ) を圧縮 | ||||
|---|---|---|---|---|
| 形式 | バイト | 圧縮率 | メーター | ランク |
| bzip | 2, 805, 906 | 62.0 |
|
2 |
| cab | 2, 355, 208 | 68.1 |
|
1 |
| gzip | 2, 943, 462 | 60.2 |
|
3 |
| lha | 2, 994, 802 | 59.5 |
|
5 |
| zip | 2, 950, 675 | 60.1 |
|
4 |
| イメージファイル ( 8, 391, 414 バイト ) を圧縮その 1 | ||||
|---|---|---|---|---|
| 形式 | バイト | 圧縮率 | メーター | ランク |
| bzip | 3, 619, 697 | 56.9 |
|
2 ( 3 ) |
| cab | 3, 592, 467 | 57.2 |
|
1 ( 2 ) |
| gzip | 3, 921, 337 | 53.3 |
|
3 ( 4 ) |
| lha | 3, 953, 183 | 52.9 |
|
5 ( 7 ) |
| zip | 3, 923, 184 | 53.2 |
|
4 ( 5 ) |
| jpeg | 1, 054, 171 | 87.4 |
|
( 1 ) |
| png | 3, 932, 782 | 53.1 |
|
( 6 ) |
| イメージファイル ( 33, 210, 264 バイト ) を圧縮その 2 | ||||
|---|---|---|---|---|
| 形式 | バイト | 圧縮率 | メーター | ランク |
| bzip | 14, 859, 363 | 55.3 |
|
1 |
| cab | 16, 906, 040 | 49.1 |
|
2 |
| gzip | 18, 638, 398 | 43.9 |
|
3 |
| lha | 19, 187, 111 | 42.2 |
|
5 |
| zip | 18, 642, 744 | 43.9 |
|
4 |
| サウンドファイル ( 36, 088, 512 バイト ) を圧縮 | ||||
|---|---|---|---|---|
| 形式 | バイト | 圧縮率 | メーター | ランク |
| bzip | 29, 803, 718 | 17.4 |
|
1 ( 2 ) |
| cab | 31, 553, 341 | 12.6 |
|
2 ( 3 ) |
| gzip | 31, 846, 432 | 11.8 |
|
4 ( 5 ) |
| lha | 31, 877, 172 | 11.7 |
|
5 ( 6 ) |
| zip | 31, 824, 071 | 11.8 |
|
3 ( 4 ) |
| mp3 | 3, 256, 188 | 91.0 |
|
( 1 ) |
注意事項
これから見ると、bzip と cab
が頭一つ抜け出している。ついで、gzip、zip、lha
の順となる。 lha は lh7
とすることで、微妙に圧縮率が向上するが、ほとんど誤差と言っていいほどである。
圧縮速度は、当然 gzip 、zip 、lha が早く、bzip と cab
は遅いが、cab は圧縮率を落とすと早くなる。 time
があればなぁ。
テキストファイルの圧縮率は非常に高く、平均 70% 程度。 バイナリファイルである実行ファイルもかなり高く、60% 程度。 イメージファイルも平均 50% 程度の圧縮率となっている。 これらに対し、サウンドファイルは軒並み 20% 以下で、かなり圧縮率が悪い。
8 bit bmp を jpge に変換 ( 品質係数 100 ) した場合、87.4%
という驚異的な圧縮率となった。 png にすると、53.1%
と、普通の圧縮と似たような圧縮率。
ただし、jpeg にすると、損失ができるし、8 bit の画像でも
24 bit となるので注意。png は損失なし ( のはず ) 。
小さく、かつ、綺麗にしようとすると、フラクタル圧縮がよいらしい
( jpeg は離散コサイン変換圧縮 ) 。
128 k ビットの mp3 にすると、3, 256, 188 バイトとなって、
91.0% という、これも驚異的な圧縮率となった。
ただ、mp3 にすると、損失ができるので注意。
サイズの小さい大量のファイル ( 数千個 ) は、
単に一つのファイルにアーカイブするだけで、ディスクの空き容量を簡単に増やせる。
クラスタサイズが 4 KB の場合、1 ファイルあたり、平均 2 KB
の無駄ができるので、 2 KB * 2000 個 = 4000 KB = 約 4 MB
という理屈に。 inf
ファイルで実行してみると、分かりやすい。
圧縮とは直接関係ないが、ディスクスペースの節約という点では同じ。
1 メールを 1
ファイルで管理するメールアプリケーションなどで使うとよいかも。
圧縮法による特徴の考察。
cab
と並び、高圧縮。ただし、圧縮展開が遅いのが難点。bzip
単体では、一つのファイルしか圧縮できないので、 まず
tar で一つのファイルにして、それを bzip
で圧縮することになる。
tar
で一まとめにした後、圧縮するので、サイズが異常に小さいファイルでもそれなりの圧縮率となる。
自己解凍書庫も作れるらしいが… ?
bzip と並び、高圧縮。ただし、圧縮率を上げるほど速度が遅くなるので注意。展開は速そう。 Windows 98 以降では、OS 自体に展開機能がついているので楽 ( ただし、ディレクトリ構造は復元できない )。 自己解凍書庫も作れる。
圧縮率は bzip や cab より劣るが、その分速度は速い。bzip
と同じく、tar 後に圧縮するので、
小さなサイズのファイルを大量に圧縮するのに向く。
UNIX
系では、標準的圧縮方法。自己解凍書庫も作れるらしいが…
?
gzip と同じく、圧縮率は bzip や cab
より劣るが、その分速度は速い。
非常にサイズが小さいファイル ( 60 バイト程度 )
は圧縮できないらしい ( lh0 で格納される )。
日本国内の Windows
系では、ほぼ標準となっているので、配布目的なら、lha
を選択すべき。 自己解凍書庫も作れる。
gzip と同じく、圧縮率は bzip や cab
より劣るが、その分速度は速い。 Windows 98 の Plus!
や、Windows ME では、OS
に圧縮展開機能がついているので楽。
海外では、lha よりはるかに標準的圧縮法。グローバル展開
( 笑 ) するつもりなら、zip でどうぞ。
自己解凍書庫も作れる。
単に複数のファイルを一つのファイルにまとめるもの。圧縮はしないので、絶対にサイズが増えてしまうが、 使用クラスタの関係で、小さなサイズのファイルを大量にまとめる場合は有効。 当然、bzip や gzip を併用した場合より展開が速い。
ファイルによる圧縮法の選択
圧縮率を考えれば cab がよい。Win 98 以降なら、OS
に展開機能がついているのも選択理由の一つ。
速さを重視するなら、zip か低圧縮率の cab がよい。zip
の場合、Win ME なら OS に圧縮展開機能がついている。 cab は
Win 98 以降。
サイズの小さい大量のファイルの場合は、tar + gzip
がよさそう。 tar
のみ、という手もよいが、それなら速さ的に lha でも zip
でも、大して変わらないだろう。
損失があってもよいなら、jpeg を選択すべき。
損失があると困る場合は、png がよい。わざわざ bzip
などで圧縮すると、展開に時間がかかるし、 png
と圧縮率も大して変わらない。 ただ、この場合は png
を表示するアプリケーションがあることが前提。
たとえば、Internet Explorer 4.0 以降や Netscape 4.0
以降のブラウザなら OK 。
損失があってもよいなら、mp3 を選択。
損失があると困る場合は、圧縮しないほうがよい。たかだか
10 % 程度のために、展開時間を作るのは無駄である。
ちなみに、サンプリング周波数を半分にする、ビット数を半分にする、ステレオをモノラルにする、
と、それぞれサイズが半分になる。すべて行うと、1/8
になる。一般人は、ビット数と周波数を半分にしても、
ほとんど判らないという。さすがに、ステレオをモノラルにすると、簡単にわかるが…。
テキストファイルと同じ。
Windows NT 4.0 や Windows 2000 では、OS 自体に圧縮機能が付いていて、 しかも、見かけ上は普通のファイルと同じなので、使いやすい。 ヘルプファイルなどは圧縮しても、なんら問題ないはず。
最後に、これらのデータは、環境やファイルによって左右されることが多いので、
すべてを鵜呑みにしない方がよい。
最適化、コンパイラ、プラットフォームによっていろいろ変わるので…。
ちなみに、Win 32 ( Windows ME 4.90.3000 ) での調査。