戻る088284


−圧縮・解凍について−

 

●圧縮ファイルとは

ファイルを圧縮する目的は主に2つ有ります。1つはファイルサイズを小さくすることです。ファイルサイズが小さくなると、保管しておく際にディスクスペースを節約できるとともに、通信するときには転送時間を短くすることができます。

もう1つは複数のファイルをまとめて取り扱うためです。多くのソフトでは少なくとも、プログラムそのものである実行ファイル、説明書きのテキストファイル、ソフトの使い方が書かれたヘルプファイルなど複数のファイルを必要とします。これらは常に一緒に取り扱う必要があります。ダウンロードする際にわざわざ複数のファイルを指定するよりも、1つにまとめて置ける方が、入手する側も管理する側も手間が減ります。

圧縮されたファイルを元に戻す操作を展開(Expand)と呼びます。展開といっても圧縮ファイルに含まれた情報を元に本来のファイルと同じ物を再現するという操作ですので抽出(Extract)と表現されることもあります。つまり、展開作業を行っても圧縮ファイルには変化がありませんので、圧縮ファイルをバックアップしておけば何度でも元のファイルを復元することができます。また機密保持の為に暗号化することもできます。この場合パスワードを知らないと解凍できません。また最近はパスワードの代わりにあるファイル(俗にキーファイルと呼ばれる)をいわゆる鍵として使用することができる圧縮形式もあります。

 

 

−圧縮形式−

 

LHA方式

純国産の圧縮形式です。※この方式で圧縮されたファイルは拡張子が”LZH”になります。

圧縮方式としてlh5、lh6、lh7がありますが、まずlh5以外は使われません。

 

ZIP方式

最もスタンダードな圧縮形式で世界中で普及しています。アメリカで開発されました。圧縮率がLHAよりは若干高いです。

 

CAB方式

これはマイクロソフトが開発した圧縮方式です。ファイルのサイズを小さくする目的よりも、プログラムの流通に便利なように、複数のファイルをいくつかの指定サイズのファイルに一緒に収めるのが目的です。トップクラス圧縮率をほこりますが圧縮解凍速度がとても遅いです。インストールのセットアッププログラムによく使われます。※InstallShieldのCAB形式は

通常のCABファイルとは異なるので専用の解凍プログラムでなければ解答できません。

 

RAR形式

RAR形式は、先進的な機能を数多くサポートしています。圧縮率を上げることができるソリッドモード持ち運びに便利なマルチボリューム書庫、壊れたデータを修復することができるリカバリレコードなどです。

また、圧縮率重視の圧縮形式の中では圧縮解凍速度は群を抜いて早いです。最も優秀な圧縮書庫といえるでしょう。

 

ACE形式

RAR形式とほぼ同等の機能を持ちますが、圧縮率、圧縮解凍速度、普及率において一歩譲る形となっています。

 

GCA、DGCA

最近、開発された圧縮形式でGCAはRARと同等の圧縮率を誇りますが圧縮解凍速度がCAB形式と同じくとても遅いです。また日本国内でしか普及していませんのであまりおすすめできません。

現在はGCAの発展系であるDGCAが開発中です。まだ発展途中ですがGCAよりさらに高い圧縮率を以前と同等かそれ以下の圧縮解凍速度で実現しています。ほかにも修復情報の付加や分割書庫を新たにサポートしていて期待の圧縮形式です。ただ、こちらも国内でかつ知人同士のやりとりでしか使われないでしょう。

DGCAの拡張子は“DGCR”です。

 

TAR

UNIXで広く利用されているtarコマンドが作成するアーカイブファイルです。 tarは複数のファイルを一つにまとめるだけで圧縮を行わないため、 通常はさらにgzipなどでtarアーカイブを圧縮します。

 

GZ、TGZ

UNIXで広く利用されているgzipコマンドの圧縮ファイルです。 .TGZは、tarアーカイブをgzipで圧縮したことを表しています。

 

7−ZIP

オープンソースの圧縮形式で圧縮率は高いですが圧縮解凍速度はおそいです。発展途上なのでひょっとしたらRAR形式を超えるかもしれません。

 

 

 

 

 

 

 

 

 

 

 

 

 

−用語集−

 

アーカイブ    :複数のファイルを一つにまとめる事、厳密には圧縮するという意味はないが

圧縮書庫の事を指す場合が多い。

アーカイバー  :圧縮解凍ソフトの総称

書庫          :圧縮されたファイルのこと

圧縮形式       :代表的なものとしてLZH、ZIP、CABなど

圧縮率                :(圧縮後) 元のサイズと比較してどれだけ小さくなったかの度合い。

シェアウェア  :有料のソフトウェア、大抵は試用期間やが定めてあるか機能制限がされている。

お金を払うと(レジスト)、作者から制限解除のパスワードが送られてくる

マルチボリューム     :分割書庫とも呼ばれる。一般的に、大きいサイズの書庫をいくつかのフロッピィディスク

 またはリムーバブルメディアに保存するために使用されます。

自己解凍書庫  :SFX(SelF-eXtracting)とも呼ばれる。単体で解凍できるので

別個に解凍ソフトを必要としない。自己解凍モジュール+書庫で構成される。

ソリッド書庫  :複数のファイルを一つのファイルとみなして圧縮した書庫。

圧縮率を上げることができるが個別に解凍することができなくなる

リカバリレコード     :RAR書庫形式は、リカバリレコードと呼ばれる特別なタイプの冗長な情報をサポートします。

書庫がリカバリレコードを持っている場合、フロッピィディスクの故障やその他のデータ喪失による物理的なデータのダメージを修復することができます

 

−総合アーカイバDLL−

 

1. 総合アーカイバDLLとは

DLLとはダイナミック・リンク・ライブラリーの英語の頭文字をとったものです。

よくある難しい説明通りに表現すると、あるプログラムが実行されているとき、そのプログラムが必要なときだけ、必要なプログラムを随時メモリーに読み込んで実行したり、プログラム本体が終了していなくてもメモリーから解放できるプログラムです。そして総合アーカイバDLLとは決められた仕様にそって作られた圧縮解凍機能をもったDLLでメインプログラムはこれをよびだすだけで書庫を圧縮解凍することができます。

 

2.使い方

統合アーカイバ・プロジェクトからダウンロードもしくはcaldixを使ってダウンロードしたDLLをシステムフォルダ(デフォルトではWinXPならC:\WINDOWS\system32 、Win2000ならC:\WINNT\system32、Win98ならC:\WINDOWS\systemとなってます。)にコピーしてください。そうすれば認識されるはずです。また圧縮解凍ソフトと同じディレクトリに置いてもほとんどの場合、認識されます。

これで統合アーカイバDLLを利用するソフトで圧縮解凍を行えるようになります。

 

−圧縮解凍ソフト−

 

+Lhaca

http://www.au.wakwak.com/~app/Lhaca/

+Lhacaは、DLLは不要でZipとLZHファイルの圧縮・解凍ができます。使いやすさから圧縮・解凍ソフトの定番になっているソフトです。解凍は、ショートカットアイコンにドラッグ&ドロップすれば解凍出来るので非常に簡単です。また関連付けしておけばダブルクリックでも解凍できます。B,GZ,Z,BZ2,TAR,TGZ,TAZ, TBZ,JAR,ARJ,RARの解凍とCAB, TGZ, TBZ, TARの圧縮機能、パスワード付きZIP, RAR解凍機能をもつデラックス版も用意されています。

 

WinAce  ※シェアウェア$29.00

http://www.winace.com/

ACE・ZIP・LHA・CAB形式に対応した圧縮機能と,ACE・ZIP・LHA・CAB・RAR・ARJ・ARC・GZIP・TAR・ZOO形式に対応した解凍機能を内蔵している。また,複数ディスクに分割したACEおよびCAB形式の書庫と,ACEまたはZIP形式の自己解凍型書庫を作成可能。

 

WinRAR ※シェアウェア¥3,480

http://www.diana.dti.ne.jp/~winrar/

ZIPやLZHより高い圧縮率を誇るRAR書庫を扱える圧縮解凍ソフトです。 RARのほかにZIPの圧縮解凍に完全対応していてCAB/ARJ/LZH/TAR/GZ/ACE/UUEの解凍も可能です。一定のサイズの複数のファイルに分割して圧縮する分割圧縮(マルチボリューム書庫)の作成が可能です。クリックするだけで解凍できる自己解凍書庫の作成や、信頼証明情報(署名)を付加する、書庫を変更できないようにロックするなど、多くの便利な機能があります。圧縮率が高いのはいいのですが値段が3480円とちょっとどころか、かなり高く設定されているが最大の難点です。

 

解凍レンジ

http://sira.jp/soft//

外部DLLを使わないで簡単操作で解凍できる解凍専用Toolです。一発解凍の他にも「Shift」または「Ctrl」キーを市ながら解凍すると書庫の中を開いてファイルを個別に解凍して取り出すことが出来ます。解凍できる形式はlzh,zip,cab,arj,tar,gz,bz2,z,tgz,tbz,taz,jar,lzs,exeと各種自己解凍形式に対応しています。足りなそうな形式は、RAR、GCAぐらいです。しかしこのソフトはどちらかというと初めて圧縮解凍ソフトを使うような方向けなのでそんなまず見かけない形式に対応する必要もないと言えばないです。
長所は他のソフトに比べてLHA形式等の解凍速度が速いです。

 

Archive Converter

http://www.ponsoftware.com/archiver/

書庫ファイルを変換ツール。LZH、ZIP、CAB、ARJ、TAR(GZ/BZ2)、RAR形式の書庫ファイルをLZH、ZIP、CAB、TAR(GZ/BZ2)、7z形式書庫へ変換できる。また自己解凍書庫を通常の書庫に変換することもできる。

 

caldix

http://www.kmonos.net/

圧縮解凍用DLLの自動ダウンロードソフトです。 DLLファイルとは複数のアプリケーションで共通して使うファイルのことです。9x系だとsystemフォルダ、NT系だとsystem32フォルダにたくさん入っています。caldixは総合アーカイバプロジェクトで配布されている圧縮解凍用のUnZip32.dll、Unlzh32.dll、Cab32.dll、sfx32gui.dat、Tar32.dll、Unrar32.dll、Bga32.dll、 Jack32.dll、UnGCA32.dll、Unbel32.dll、Aish32.dll、Ish32.dllの最新版を調べて自動でダウンロード、インストールしてくれます。

 

Easy圧縮

http://sira.jp/soft//

Easy圧縮は圧縮専用。ボタン1つでデスクトップか「送る」(C:\Windows\SendTo)にショートカットを作成して設定は完了。あとは圧縮したいファイル・フォルダをデスクトップのショートカット上にドラッグ&ドロップするか、「右クリック」→「送る」→「Easy圧縮」とするかでアッと言う間に圧縮ファイルがデスクトップ(←好きな場所を指定できる)に出来上がります。Version1.0の頃から圧縮専用というシンプルさとその平易な使い勝手が魅力的でしたが、Version1.1では圧縮ルーチンを内蔵したり自己解凍書庫を作成できるようになったりと大幅にパワーアップ!さらにVersion1.2ではシェル拡張も可能になりますます便利になりました。初級者から上級者まで皆さんにお薦めです!

日本で一般的なLZH版の他、ZIP版とCAB版が同梱されたデラックス版もあります。

 

Noah

http://www.kmonos.net/

統合アーカイバ・プロジェクト のDLLを使用してさまざまなマイナーな形式にも対応する圧縮解凍ソフトです。一度にすべてを解凍するのではなく、解凍する前に書庫内のファイルを一覧表示しそこから必要なファイルのみ解凍することが可能です。また複数のファイルを一つ一つ個別の書庫に圧縮できます。自己解凍形式での圧縮も可能です。拡張スクリプトによって100を超える形式に対応することができます。

 

Explzh  ※シェアウェア¥1000

http://www.ponsoftware.com/archiver/

多機能で操作性も良い圧縮・解凍・分割ソフトです。統合アーカイバ仕様の外部DLLを利用します。試用期間中(60日間)は起動時の面倒なダイアログボックスや機能的な制限は一切なく思う存分試用出来ます。

このソフトの大きなウリはファイル操作。アーカイブ(書庫)内の格納ファイル/フォルダをエクスプローラ風のツリー表示及びリスト表示で閲覧し、解凍する前でも普通のファイル/フォルダを扱っているかのような操作性を可能にしています(実際はTempフォルダを使って一時的に解凍しているわけですが)。またLhasa風にダブルクリックで一発解凍したり、シェルエクステンションを有効にすれば右クリックメニューから各種操作を行えます。その他、各アーカイバDLLの最新ヴァージョンを簡単に確認出来て、もしより新しいDLLがある場合はファイルのダウンロードからインストールまでをワンタッチで行ってくれるなど、さすがにシェアウェアの中で定番と言われるだけあって至れり尽せりの機能を備えています。

 

7-ZIP

http://www.7-zip.org/ja/

通常の Zip圧縮 より高圧縮なZIP書庫を作成できます。対応解凍:7z・ZIP・GZIP・TAR・BZIP2・RAR・CAB・ARJ・cpio・rpm 対応圧縮:7z・ZIP・GZIP・TAR・BZIP2

 

DGCA&GCA

http://www.emit.jp/

ZIPやLZHに比べて非常に高い圧縮を誇るGCA形式の圧縮解凍Toolです。使い方はドラッグ&ドロップから自動的にGCA形式のファイルなら解凍して、その他のファイルなら圧縮してくれます。GCAを持ってなくても解凍できる自己展開形式での圧縮もできます。パスワードでの暗号化も可能です。

 

eo

http://member.nifty.ne.jp/beambitious/

操作性に優れ誰にでも簡単に扱える解凍専用ソフトです。外部DLLを使用しません。対応形式はZIP/LZH/RAR/CAB/ARJ/GZ/BZ2/Z/TAR/??/UUE/XXE/MIM/HQXと実に多彩な形式に対応しています。自己解凍形式のアーカイバも解凍可能です。解凍方法は、お馴染みのアイコンにドラッグ&ドロップでの解凍、関連付けをしてダブルクリックでの解凍、ドロップメニューからの解凍、コンテキストメニュー(右クリックメニュー)からの解凍、「送る」メニューからの解凍とさまざまな方法から解凍できます。 ディレクトリ内のアーカイブもすべて解凍する徹底解凍機能を持っています。ShiftとCtrlキーを押しながら解凍すると設定ウィンドウが開いて一時的に違う設定で解凍することが出来ます。

 

Lhaplus

http://www.an.wakwak.com/~schezo/

ZIP形式アーカイブのパスワードを解析する機能、MIMEヘッダーをデコードする機能、SJIS、JIS、EUC、Unicodeの文字列を相互変換して表示する機能も搭載

 

−その他のリンク−

 

統合整備計画:マイナーなコマンドラインプログラムやDLLのリンクがたくさんあります

http://members.tripod.co.jp/dllexe/

 

統合アーカイバ・プロジェクト:主要な圧縮形式のDLLがあります

http://www.csdinc.co.jp/archiver/

 

 

 

 

おまけ : 主な圧縮アルゴリズム

 

ハフマン法

ハフマン法は、符号化データの発生確率の偏りに依存した可変長符号を用います。 (ハフマン法によって得られるコードをハフマンコードといいます) これは、頻出文字に短いコードを割り振り、ほとんど現れない文字に長いコードを割り振れば、(ほとんどの場合)コード全体の長さが短くなることを利用しています。なお、ハフマンコードは発生確率を利用した符号化としては最良であることが証明されています。またハフマン法は、あらかじめ符号化データの発生確率を計算する手間がかかるのが問題となりますが、これを解消する方式として 動的ハフマン符号化方式 が考えられています。

Lampel-Ziv (LZ) 法

1977年、LampelとZivによって ある圧縮法が発表されました。この圧縮法はLampelとZivの頭文字と発表年をとってLZ77と呼ばれ、以後圧縮法を大きく発展させるきっかけとなりました。さらにその翌年にはLZ78が発表されました。
一般的にLZ法はこれから圧縮しようとする文字列が辞書(過去に入力した文字列)にあるかどうかしらべ、もしあれば辞書の位置(と一致長)に置き換えて圧縮する方法で、文字列に対して圧縮を行うため、大幅な圧縮が可能です。
また、ハフマン法とは圧縮の手法が全く異なるため、ハフマン法とLZ法を組み合わせることができ、有名なLHAはまさしくこれをメインに利用しています。

BWT法 (Burrows-Wheeler Transform)

1983年BurrowsとWheelerによって考えられた方法でblocksortingとも呼ばれる。
blocksortingは文字列をある規則に従いソートをする手法で、また、いつでも元に戻すこともできます。(つまりフィルターの様なもので、これ自体圧縮法ではありません。)そして、似た文字列があるとソート後の位置が接近するという性質から、ソート後の文字列の分布に偏り(同じ文字が連続するようになる)ができます。これをMove to front法(仕組みはBSTW)で圧縮すればかなりの圧縮率が得られるというものです。最近ではこれに連長圧縮や算術圧縮等を組み合わせることでPkzipに勝る圧縮率が得られており、近年研究が盛んです。