圧縮・展開を知ろう
●圧縮展開とは?
インターネットや雑誌付録のCD-ROMなどが普及するにつれて、圧縮展開(圧縮解凍とも言う)という言葉も一般的になってきたように思う。ソフトウェア開発に関わる人間やパソコン通信を少しでも体験した人間にとっては身近な言葉だが、最近インターネットを始めたような初心者の中にはなんのことか分からない人もいるだろう。
圧縮とは、プログラムやデータのファイルサイズを小さくするもの、と考えればいいだろう。一定の規則に従いファイルの内容を置き換えることで、ファイルサイズを小さくすることができる。ただし、圧縮したままではデータを利用したりプログラムを実行したりはできない。そこで、元のファイルに復元する作業が必要になってくる。これが展開だ。基本的には、圧縮と展開はひとつのセットになっているのだが、ツールには圧縮展開が可能なものや圧縮のみ、または展開のみをサポートしたものもある。また、アーカイバ(書庫)と呼ばれるソフトは、圧縮だけでなく、複数のファイルをまとめる機能も持っている。一般的には、このアーカイバソフトを圧縮展開ソフトとしている場合が多い。
圧縮展開ソフトには、さまざまな形式がある。そのファイルがどんな形式で圧縮されているかは、その拡張子によって判断するのだが、展開にはその形式に対応したツールが必要となる。
●圧縮の必要性
圧縮しファイルサイズを小さくすることで、データの転送時間を節約できる。昔は300bpsとか2400bpsといった低速な通信環境しかなかったから、ほんの少しのサイズの違いでも、通信費に大きな影響があったのだ。また、圧縮することでフロッピーディスクのような容量の小さいメディアに保存できようになる場合がある。このように、プログラムやデータの配布にあたっては、圧縮することで大きなメリットが生まれるのだ。
ただし、圧縮したものは展開しなければならない。送った相手が展開ソフトを持っていない場合には、自動的に展開を行う自己解凍形式にするか後述するOS標準の圧縮形式にする必要がある。また、JPEGやPNGのようにデータ形式自体が圧縮されているものは、圧縮の効果はあまり見込めないことも知っておこう。
●どんな圧縮形式があるのか
現在、もっとも一般的な圧縮形式には、LHA(*.lha)やZIP(*.zip)がある。とりあえずこのふたつの形式に対応した圧縮展開ツールがあれば、ほとんどの場合に対応できるはずだ。また、Windows95で導入されたCAB形式(*.cab)だが、Windows98では展開ツールがOSに組み込まれているため、特別なツールがなくても展開できるという利点がある。また、UNIX系であれば標準のアーカイバtar(*.tar)のほかに、gzip(*.gz)やbzip2(*.bz2)などが使われる。Macintoshでは、StuffIt形式(*.sit)が一般的だ。Windows版のStuffIt対応ツールを用意しておけば、Macとのデータ交換の際にも便利だ。
その他、現在ではあまり利用されていない、ISH(*.ish)や市販ソフトに利用されているARJ(*.arj)、欧州方面で使われているRAR(*.rar)、独自形式のYZ1(*.yz1)など数多くの圧縮形式が存在する。
●圧縮形式を比較する
圧縮にはさまざまな形式があることを知ったところで、では、それらの形式にどのような違いがあるのだろうか?ファイルフォーマットと圧縮形式のすべての組み合わせをテストするのは難しいため、今回は代表的なLHA、ZIP、CAB形式、それに独自の形式であるYZ2形式とRAR形式について、それぞれ圧縮時間と展開時間、そして圧縮率の比較を行った。
使用したマシンはMMX Pentiuma 166MHz、メモリ64MBの環境で、a.1KBのテキストデータ150個を圧縮展開する、b.1.5MBのビットマップデータ1個を圧縮展開する、という操作を行いその結果を表にまとめた。ストップウォッチによる計測なので大きな誤差が含まれていることを、あらかじめご了承いただきたい。
自己 展開 形式 |
圧縮率 | 圧縮時間 | 展開時間 | |||||
圧縮形式 | a | b | a | b | a | b | ||
LHAユーティリティ32 | LHA | ○ | 84.3% | 69.0% | 6'44" | 5'09" | 3'03" | 1'93" |
ZIP | ○ | 46.0% | 67.5% | 4'06" | 3'37" | 4'88" | 1'30" | |
CAB | ○ | 4.7% | 50.0% | 5'91" | 12'03" | 4'62" | 1'13" | |
DeepFreezer | YZ2 | ○ | 66.7% | 69.6% | 7'47" | 6'48" | 1'21" | 2'08" |
WinRAR | RAR | ○ | 48.0% | 63.6% | 7'57" | 9'56" | 5'07" | 1'06" |
Explzh | LHA | ○ | 69.6% | 4'53" | 1'28" | |||
解凍レンジ | LHA | × | 1'48" | |||||
WinLM32 | LHA | ○ | 84.4% | 5'06" | 0'80" | |||
LHS | LHA | ○ | 50.0% | 6'31" | 3'22" |
a:1KBのテキストファイル150個を圧縮展開
b:1.5MBのビットマップファイル1個を圧縮展開
表を見て分かるように、YZ2形式で圧縮された大量のテキストファイルを展開する時間が比較的短い他はあまり違いはない。誤差の範囲といえるだろう。圧縮時間に関しては、CAB形式とRAR形式がビットマップファイルの圧縮に時間がかかっているが、他はあまり差がない。差が顕著な組み合わせは、テキストファイルをCABで圧縮した場合だ。他の形式に比べて、大幅に圧縮率が高い。CAB形式はWindows標準で展開できるという点を考え合わせると、テキストファイルのデータ受け渡しにはCAB形式が最適といえるだろう。ただし、CABファイルはWindows以外のOSではサポートされていないので、相手の環境がWindowsでないなら汎用的なLHA形式が無難だろう。また、頻繁に行うバックアップなどにも、ツールの多さと汎用性、圧縮展開の時間などからLHAをおすすめしたい。
●解凍レンジを使ってみよう
圧縮展開ツールなど使ったことがないというユーザー向けに、DOS/V PowerReportの定番ソフトにもなっている「解凍レンジ」の使い方を説明しよう。
インストールは、DOS/V PowerReportに付属のCD-ROMから簡単に行うことができる。インストールが完了すると、デスクトップにアイコンとともに、設定ダイアログボックスが表示される。
[書庫ファイルの解凍先]は、展開したファイルを保存しておくフォルダの指定。CD-ROMのデータを展開する場合を考えて、「デスクトップ」または展開専用のフォルダを指定しておくとよい。複数のファイルを展開するなら[書庫と同名のフォルダを作る]にチェックを入れておくと便利だ。また、[解凍先を自動で開く]にチェックを入れておけば、解凍後エクスプローラーが起動して展開したファイルにすぐアクセスできる。
これで展開は問題なく行えるが、[詳細設定]のタブメニューでは、上書き確認などの細かい設定もできるようになっている。
●LHAユーティリティ32を使ってみよう
展開だけでなく圧縮もできるツール「LHAユーティリティ32」の使い方も説明しておこう。使い方と言っても特に難しいことはない。圧縮したいファイルを「開いているフォルダ」ウィンドウにドラッグ&ドロップするだけで、圧縮が開始される。選択した複数のファイルやフォルダをドラッグ&ドロップしても圧縮できる。ユーティリティと名づけられているだけあって、圧縮したファイルの内容をソートしたり、エラーがないかチェックしたり、分割して保存したりといった機能もある。
LHAユーティリティには、初心者向けに圧縮ウィザードも用意されている。メニューから[ファイル]→[圧縮ウィザード]を選択すると、ウィザードが起動する。圧縮形式、圧縮するファイルまたはフォルダ、圧縮ファイルの名前を表示される質問に答える形で入力していくだけで、ファイルを圧縮することができるので、慣れていないユーザーでも安心して操作できる。
LHAユーティリティでは、圧縮展開を行う際にUNLHA32.DLLが必要になる。また、ZIP形式やCAB形式、TAR形式についても、それぞれのDLLがインストールされていれば、圧縮展開が可能となっている。DLLを入手したら、WindowsのSystemフォルダにコピーするだけで、LHAユーティリティをはじめDLL対応のツールで利用できるようになる。UNLHA32.DLLなどのアーカイバDLLは、「統合アーカイバDLLプロジェクト」で開発され公開されている。DLLだけでなく、アーカイバDLLに対応したツールが多数登録されているので、情報や最新版の入手の際にアクセスして欲しい。
圧縮解凍は、圧縮形式も多くツール類も多い。だが、圧縮展開はパソコンライフに必須のツールと言っても過言ではない。是非、自分に合ったツールを見つけて使いこなして欲しい。