Tips 4
〜ファイルの圧縮・解凍〜

CGIやサーバー立ち上げの次はいきなりこれです(笑)
何の脈絡もないのですが、本屋を見てると「圧縮・解凍」だけで1冊の本を作
ってしまっているすごいモノが多数見受けられるので・・・・
Webで取り上げるネタになりうる?と思って、なんとなく・・・(笑)
(いえ、別に圧縮解凍なんて1冊の本にするよーなことかぁ?ってわけじゃあ
  りません。読んでると、誰にでも分かりやすく書いてありますし、これだけ
  で1冊書けるというのも、またすごいなーと感心してる所です。)


じゃ、リナちゃん流「必殺!解凍圧縮!」

    1  Lhasaを落としてきてください。
    2  何も考えず、インストールしてください。
    3  あとは、圧縮ファイルをダブルクリックしたら解凍できます。
        以上!めでたしめでたし。ぱちぱちぱち〜〜〜☆


本当の初心者向けって言えば、これで十分でしょう。
実際、zipとlhaの解凍ができれば現在のインターネットで困るようなことはな
いわけで、Simple is Best です。


しかし、これだと困ったようなことが出てきます。
「圧縮したい」と思っても、それができないのです。
また、初心者を脱したらzipやlhaだけでは物足りなくなってきます。
rarやgzip、cabなど、一部で使われる圧縮形式には対応できないからです。

では、その場合は次の Explzh がオススメです。
(ただしシェアウェアで1000円)
その高い操作性から、初心者〜上級者まで、欠点のないソフトだと思われます。
が、同等の機能を持つフリーウェア LHMelt もあるので、慣れている人なら
そっちの方がいいかもしれません。


インストール

    1  Explzh と、DLL を落としてきてください。
    2  何も考えず、Explzhと各種DLLをインストールしてください。
    3  再起動しましょう。


では、解凍です。

    1  圧縮ファイルをダブルクリックしてください。
    2  エクスプローラのように、内容が表示されたかと思います。
    3  あとは、それをドラッグ&ドロップで通常のフォルダに持ってくるなり
       すれば解凍できます。

解凍 Part2

    1  圧縮ファイルを右クリックして、そのままマウスを少し動かしてください。
    2  「ここに解凍」か、「フォルダを作成して解凍」を選べば、全て解凍されます。

で、圧縮です。

圧縮したいファイル(フォルダ)を右クリックすれば「書庫作成」とかできて
るでしょ?「書庫作成」を選んで、「圧縮する形式」を指定してOKを押した
らそれで圧縮されます。「形式」は、LHAかZIPを選んでおけば問題ありません。

以上!


と、片付くのですが、何もこんなこと書きたいわけじゃないので本題・・(笑)



CAB圧縮のすすめ

最近は、高圧縮を謳い文句にする形式が増えています。 一部ですっかり有名になった「rar」をはじめ、lhaの高圧縮版「lh7」、zipの 「圧縮率9」tarの「bz2」、やまざき@BinaryTechnologyの「yz1」など、 いろいろあります。 しかし、Microsoftのインストーラに使われているCAB(キャビネットファイル) を見落としていませんか? 上述の高圧縮形式よりはるかに前に登場し、Windows95が標準で解凍でき、し かもその圧縮率は上記の形式を総じて上回るのです。 よって、私は必要のない限りcab/LZX21で圧縮しています。 (確かに圧縮速度が遅いのですが、それはtar.bz2もrarも同じことです。 その点、cabの場合は圧縮レベルを落とすか、MSZIP形式にすれば高速になり ます。注目点は、他の高圧縮形式と違って解凍時には高速で解凍されます。) では、圧縮率対決してみましょう。 rarも候補に入れたかったのですが、以前WinRARを試した時に圧縮率がcabやbz2 に及ばない上にめちゃくちゃ遅いので消してしまった記憶があります。 ということで、候補はzip/Level9、lh7、yz1、tar.bz2/Level9、cabで行きます。
(単位:bytes)圧縮前cab/LZX21zip/level9lh7bz2/level9yz1
text-a1,020,0001,9993,6494,088480605
text-b1,202,235162,053197,684188,649131,261168,040
単色BMP5,760,0547,5685,7821,652654617
通常BMP9,437,2381,504,4011,954,7631,975,9551,991,6441,758,806
binary-121,372,9284,502,6897,921,7047,319,1725,385,4276,077,538
binary-217,551,84416,451,66516,516,20716,577,19415,868,43216,837,261
binary-33,203,072334,730673,562651,736412,936461,399
binary-45,530,2082,068,5512,595,1652,562,5102,508,2622,683,699


実験環境
Explzh 2.85
CAB32.DLL (0.84)
UNLHA32.DLL (1.43.0.3)
IZIP32J.DLL (0.06)
TAR32.DLL (0.53)
DeepFreezer (1.05)
text-a aaaaaaaaa・・・・と、1,000,000文字のファイル。20000bytesは改行コード。
text-b とあるチャットログ。日本語テキスト。

単色BMP 白ベタBMP。1600×1200
通常BMP とある絵画。ごく一般的な画像。2048×1536

binary-1  うちのNetscapeのHistoryファイル。20MB(爆)
binary-2  CDより吸い出したWAVファイル。17MB。
binary-3  Excelのワークシート。グラフとシートという一般的な構成。
binary-4  実行ファイル。Netscape.exe
上記のテストを見ての通り、cabとbz2が好成績を出しています。 が、bz2はテキストに強く、cabはバイナリに強いことが見て取れます。 cabが弱いパターンは、いかにもベンチマーク的なファイルだった場合のみです。 実際はaaaaaaaaaと連続したファイルや単色画像などを扱うことはないはずです。 よって、自然に存在するファイルでは、cabがコンスタントに好成績を出すこと は見て分かると思います。(特に、Netscapeの履歴やExcelワークシートでは他 の形式を圧倒しています) ここでやったテストは1つのファイルでの話ですが、複数ファイルでアーカイブ した場合、テキストにおいても他を凌ぐ圧縮率を出します。 数値は取っていませんが、bz2は圧縮・解凍ともに非常に時間がかかります。 が、cab/LZX21は圧縮に時間はかかるもののbz2ほどじゃない、解凍は圧倒的に高 速です。(なのですが、Excelのワークシートで、cab/LZX21圧縮すると非常に時 間がかかることが時々あります。その場合、凄まじい圧縮率になっているのです が、ちょっとこれは問題です) よって、実用レベルで最高の圧縮率を誇るのはcabだと結論付けました。 ですが、その真価は自動解凍書庫で発揮されるといっても過言じゃないのです。 自動解凍書庫の場合 通常、自動解凍書庫では書庫に解凍ソフトを付加した形にします。 ファイルサイズが50KB〜100KB増えてしまうこともザラです。 しかし、cabの場合はコマンドラインから解凍することができます。 1KBにも満たないbatファイルを用意することで、自動解凍書庫にもなるのです。 batファイルの内容は・・・ extract 解凍書庫名.cab *.* この1行だけです。 もちろん、他の自動解凍書庫のように、exe形式の自動解凍書庫も作ることが可 能なので、相手があまりにも初心者だった場合などはそちらの方がいいでしょう。 以上、「初心者向け ファイルの圧縮・解凍」改「cab圧縮のすすめ」でした(笑) M●は好きじゃないけど、こういった優れた技術は率直に評価しています。
用語集 Lhasa 紹介してるくせに、実はこれってほとんど知りません(笑) zipとlhaの解凍のみ可能です。 ダウンロード先は忘れましたが、雑誌などには必ず添付されているようです。 (解凍ソフト=Lhasaという図式が成り立っているとか) Explzh 鬼束裕之氏のシェアウェア。 これさえあればまず不自由はないことから、強力にオススメしたい逸品。 試用期間が一ヶ月あるので、その間に圧縮とは何かを学習した後は、フリーウ ェアのLHMeltに乗り換えてしまうのも一策。 まぁ、使用期限を過ぎた所でダイアログがうざいだけなんですが・・・ (というか、アーカイバはフリーが基本だと思うのです、あたしは。) ま、それを差し引いてもこれは非常によくできたソフトだと思います。 ダウンロードは鬼束氏のサイトから。 Explzh のホームページ LHMelt Micco氏のフリーウェア。 Unlha32の動作確認用に作られたらしく、あまり初心者向けではないのが難点。 操作性がWin95以降の世代にはキツいだけで機能は上述のExplzhと比べても実 用上問題はなく、フリーウェアという利点もあるので中級者以上ではこれの方 がいいでしょう。(ExplzhもLHmeltも、圧縮解凍の結果に差はありません) Micco氏のサイト アーカイバ用のDLL Explzhにしろ、LHMeltにしろ、昨今のアーカイバには圧縮解凍用の汎用DLLが 必要です。(これらのDLLは全てフリーウェア) DLLって何?ってことは考えず、「必要なもの」と思ってください。 実際の圧縮解凍作業を行っているのはこれらのDLLであり、アーカイバはDLLに コマンドを渡しているだけです。 これ、全部落としてくるのは酷なので、必要なものだけパッケージしようかとも 思いましたが、やはり著作権は大事&これくらい勉強しろとの理由から、あえて そういうことはしていません。 何が必要かというのも、LHmeltなりExplzhなりのヘルプ見れば分かります。 Common Archivers Library(統合アーカイバ・プロジェクト) この記事は Microsoft cab形式 の高圧縮性を紹介するもので、他の圧縮形式を批判するものではありません。 圧縮速度やパスワード機能などを勘案すれば、他の圧縮形式の方が理想的な場合もありえます。 yz1のパスワード書庫に関しては様々な意味で高く評価していますが、それはまたの機会に・・・
戻る
written by Lina