コンピュータで扱うファイルというものはそのままでは冗長(無駄)な部分が結構あります。もちろん冗長な部分が実際の運用時には大事なのですが、伝達、保管時にはこの冗長部分は必要ありません。そこで、ファイルの保管やメールなどでの情報の伝達時にはファイルを圧縮することが、ネットワーク資源、ディスク資源を有効に使うコツになってきます。
何ゆってるか分からない? 要するにふとんはふとん圧縮パックに入れろってこと!
でかいと邪魔だから。
いくら容量の大きなハードディスクが安くなり、最近買ったパソコンじゃ 10GB、20GB なんて珍しくもなんともないとはいえ、ディスクは有限です。(なんか化石燃料の限界を訴えてるみたいだな。)それに CD-R や MO、フロッピーはハードディスクのようには大容量ではありません。あんまり大きなデータばかりだと、こうしたメディアにバックアップを取るのも分割などの技を駆使しなければならず、大変です。
また、大きなファイルは LAN やインターネットなどで転送するときにも大変です。
だから、圧縮なんです。
圧縮というのは、文字通りコンピュータ上の情報を小さくしてしまうことを言います。この圧縮の方式には2種類あって、
の、ようになっています。前者の場合は一度圧縮をもとに戻さないと(俗に解凍する、正しくは伸張する)ファイルを使えませんが、後者の場合は内容を解釈する画像表示ソフト、音声再生ソフトが解凍・再生を同時に行います。
圧縮パックに入ったままのふとんでは寝れませんが、ファーファはそのまま使えますね? 比較すると以下のようになります。
ファーファを連呼していますが、これには他意はありません。「小さい(少ない)まま元と同じ機能を実現しているもの」以上の意味を含みません。同じようにふとん圧縮パックも、「元の大きさに戻さないと使えないもの」以上の意味を含みません。
これらの商標はそれぞれ権利者の保有ものです。
方式 | ふとん圧縮パック | ファーファ 1/3 |
---|---|---|
圧縮できるファイル数 | 複数 | 1つだけ |
圧縮を行うソフト | 専用 | 画像、音声などの「内容」を扱うソフトが圧縮、解凍も同時に行う。 |
可逆/非可逆 | 可逆 | 非可逆が多い |
例 | LHA, ZIP, gzip, StuffIt | MP3, MPEG, JPEG, GIF, PNG, QuickTime, PDF |
(QuickTime や PDF は単純に圧縮形式というわけではないのですが、圧縮されているのは事実なので、あえて入れておきました。)
で、例えばフリーソフトなどの配布にはふとん圧縮パック方式が、WWW 上の画像にはファーファ 1/3 方式が使われています。フリーソフトの場合はソフト本体のほかに説明書や設定ファイルなどいろんなファイルを一度に扱う必要がありますし、それらは別々のファイル形式ですのでファーファ方式を使うことができません。逆に画像はいくつかまとまっているものをいちいち手で解凍することなく、ブラウザが勝手に解凍して勝手に表示してくれた方が楽ですよね?
圧縮 | 展開(解凍) |
---|---|
PC-Training のフォルダ 262,159 バイト (これを最初に書いた時点で) |
圧縮後のファイル 121,114 バイト |
また、ファーファ方式で圧縮されたものをもう一度ふとん圧縮パック方式で圧縮しても、ほとんど無意味です。圧縮パック方式で効果が出るのは
の最も基本的な形式になります。(AVI などの動画や音声ファイルはちょっと微妙ですけどね。)こうしたものは圧縮パック方式で圧縮すればそれなりに小さくなります。
簡単に言うと、画像や音声はたいがい圧縮されているので再圧縮は無意味です。
圧縮パック方式の専用ソフトを「アーカイバ」と呼びます。これは「アーカイブするソフト」という意味です。演奏する(play)人をプレイヤー(player)、書く(write)人をライター(writer)、運転する(drive)人をドライバー(driver)と呼ぶのと同じく、archive するソフトを archiver と呼びます。
音楽に合わせて喋る(rap)人をラッパー、シャネルする人をシャネラー、篠原みたいな浮き方をする人をシノラー、archive するソフトを archiver と呼びます。
さて、「アーカイブ」とは「書庫」のことです。つまり、いろんなファイルがまとめてあるもの、ってことですね。
正確にはまとめるだけでなく圧縮もしているので「圧縮アーカイバ」と呼ぶのが正しいのですが、世の中にあるアーカイバの大半は圧縮アーカイバなので気にしている人はあまりいないようですね。でも「アーカイブ」のもともとの意味が分かれば、ちょっと違うな、ってことは分かりますね。
実際、のちに触れる LHA にも「無圧縮」というモードがあって、ただ単にファイルをまとめるだけという動作をします。これでいっぱいあるファイルを1つにまとめ、改めて圧縮を掛けてやった方がそのまま圧縮するよりも小さくなるんですけど、これは意外と知られていません。
逆に、無圧縮でも「まとまっていることに意味がある」場合もあります。ファイルの転送はまさにその例で、小さいファイルが大量にあるより、大きな一塊のファイルの方が転送は速いです。これは(素朴な転送では)一つのファイルを転送するたびにネットワーク接続の手間が発生するからです。また、ディスクそのものも、小さなファイルが大量にあるよりも、大きなカタマリのファイルの方が効率的に利用できます。
ふとん圧縮パック方式の場合、圧縮・解凍には専用のソフトが必要です。いわゆるアーカイバというやつで、こいつを使えばいくつもあるファイルを一つのパックに収めてしまうことも可能です。しかし、この方式は実は結構たくさん商品(種類)があります。
有名な形式を少し列挙してみましょう。
気をつけなきゃいけないのは、それぞれの形式にはまったく互換性がないということです。つまり、LHA 形式で圧縮したものを PKZIP 形式で解凍はできない、逆もまたしかり、ということですね。いろんな形式に対応するにはいろんなソフトを揃える必要があります。中には一つのソフトで多くの形式に対応しているものもありますが。
全部の形式について解説する気力もないですし、そんなことにも意味を見出せないので、ここではとりあえず LHA 形式と GNU zip と Stuff It について触れます。なお、具体的な圧縮方法については各ソフトのマニュアル、サポートページなどを参照してください。
純国産の圧縮形式。もともとの作者は MS-DOS の時代の吉崎さん。現在、ご本人はもうメンテナンスしてないんじゃないかと思われますが、様々なプラットフォームに移植され、いろんなところで活躍しています。Win と Mac の間、Mac と UNIX の間のデータのやり取りなどにはこの形式を使えばとりあえず大丈夫でしょう。とりあえず以下のようなソフトで扱うことができます。まだまだありますけどね。あまりに多くて紹介しきれません。
拡張子は .lzh
LHA と ZIP の両方に対応した解凍専用ソフト。あまりに有名。ちなみに Windows は me から cab 形式に、XP から zip 形式に、標準で対応しています。(仮想フォルダになるので分かりにくいですけどね。)
ポスト Lhasa を目論む DLL 不要の LHA, ZIP 形式対応の圧縮解凍ソフト。これも起動時には設定を行い、関連付けやショートカットアイコンへのドロップで実際の圧縮解凍を行う。最近のバージョンでは対応形式の数もかなり増え、子のソフトだけでなんでもかんでもできるようになってきてます。(アングラ系などの特殊用途を除いて)
UNLHA32.DLL にコマンドラインオプションを渡すだけのコンソールアプリ。Windows のコマンドラインで LHA を使いたい方へ。
Windows 用の LHA 関係ユーティリティ開発の第一人者、Micco さんのページ。LHMelt や UNLHA32.DLL のオリジナルサイト。
Vector 内の Macintosh 版 LHA のページ。GUI な LHA ツールとしてはシンプルだけどこれがいちばんイイデキのような気がする。Win 版はもっと精進してほしい。
Lhasa のようなお手軽 LHA 解凍専用ソフト。Mac 壊れたそうで、バージョンアップの見込みはないです。とほほ…。
読んで字の如し。まぁ、ここを読んでる人には用のないところだと思います(^^;
今後はこっちがメインになる、のかな?
日本語ファイル名にも対応してますがリソースフォークを扱うことができません。Mac で閉じたいならおとなしく LHA はやめろということでしょうか。(賛成しますけど。)
LHA のオリジナル(MS-DOS版)などのダウンロードや、吉崎氏自身のヒストリーにアクセスできます。……だったのですが。なくなっちゃいましたね。
Windows のアーカイバに関してはたぶんここにいちばん情報とソフトウェアが集まっているでしょう。
私も今はこの辺から dll を片っ端から入れて、ファイラーで扱うようになりました。(以前はその dll を集めてくるのが面倒だったのですが。)
拡張子は .gz です。.zip ではありません。
Win な世界や Mac な世界でこの拡張子 .gz に出会うことはめったにありませんが、あなたが UNIX な世界に興味を持ち始めたら途端にこの拡張子に出会う確率は高くなります。ドキュメントが .gz で圧縮してあったりするので押さえておくようにしましょう。
本家。各プラットフォームのバイナリが手に入る。
MS-DOS 版からのパワーアップ移植版。当然コンソールアプリ。DLL を利用する版もあるけど、こっちは DLL を使わない、自己完結 EXE。
Mac 上の gzip に関して、ソフトウェアもドキュメントも手に入るサイト。ただし英語。
Mac 上のアーカイバについて、入手先と関連ページの一覧が載っているページ。
UNIX 版については、いまどきの PC UNIX の場合は標準で入っていることが多いです。
Mac な世界では標準的な形式です。StuffIt Expander はイマドキのブラウザには標準で入っていたりしますね。拡張子は .sit が一般的でしょうか。
StuffIt だけでなくいろんな形式に対応しているのですが、どーも正確に展開できないことがちょこちょこあるような。。。gzip とか LHA とかはちゃんと専用のソフトを用意した方がよさそうな印象です。
たくさんあります。あまりにたくさんあります。
ま、読んでみてください。
基本的には Windows には Windows でポピュラーな、Mac には Mac でポピュラーな、UNIX には UNIX でポピュラーな形式があります。しかしあえて「この形式でいけば大丈夫!」と言うとすれば、UNIX な人は一般にスキルが高く、柔軟な対応ができるもの考えさせてもらえるとして、国内では LHA形式、海外とのやりとりが多い場合は ZIP形式がいちばん確実だと思います。この形式にしておけば、たいていの人はメールで送られても ftp で転送されても、ほぼ問題なく対処できると思います。
ファーファ方式はそれを扱う画像ソフト、音楽ソフト、動画ソフトによって圧縮・解凍が行われます。しかし、実際にどれがファーファ方式なのかを知らないと使いこなすことはできません。
代表的なのは以下のとおりです。
ファーファ | ファーファ 1/3 | |
---|---|---|
画像 | BMP, WMF, PICT, TIFF, PSD, EPS | GIF, JPEG, PNG, JPEG2000, SVG, SWF |
オーディオ | wav, aiff, au | MP2, MP3, wma, Ogg, AAC |
動画 | AVI | MPEG, Real, DV, qt |
文書 | ps |
具体的に下の絵でいきますと、
BMP | GIF |
7470 バイト | 2123 バイト |
のようになっています。差は歴然です。
と、同時に気をつけなきゃいけないのは、圧縮パックで圧縮し直してもほとんど小さくならないということと、一度圧縮すると元に戻らないものが多い、ということです。
これはいちばん最初の表で [可逆/非可逆] と表記されているものでして、例えば BMP で描いた絵を JPEG で圧縮すると、ぱっと見ても分からない程度に画質が劣化します。そしてこれは元には戻りません。つまり、完成した絵を相手に送りたい、というときには使えますが、製作途中にこの JPEG 圧縮を掛けると、せっかくの絵が汚くなっていきます。だから
するのが正しいやり方と言えるでしょうね。もっとも、JPEG はイラストには不向きなんですけど(^^; この辺の細かい話はもっと詳しい画像、イラスト関係のページに譲るとして、とにかく圧縮は最後に掛けるのが鉄則です。
圧縮といってもやることはいつもと一緒で [ファイル] → [名前を付けて保存] を選びます。で、たいていのソフトはこのときに形式も選べるようになっています。
このときに目的の形式を選んでやると、ソフトが勝手に圧縮してくれる、という寸法です。
ここで現われない形式にしたい場合は、変換ソフトを使います。例えば IrfanView とか Graphic Converter とか、午後のこ〜だとか SoundApp とか TMPGenc とか。
また、こうしたマルチメディア関係のファイルには自身で様々な形式をサポートしているものが多いので、質よりもファイルサイズにこだわるのであれば、結構工夫ができます。具体的には使う色数を減らす、ステレオをモノラルにする、ビットレートを落とす、フレーム数を落とす、などです。
この辺りの細かい話は各ソフトのマニュアルやオーディオ、ムービーに詳しいページなどを参照してください。