> ホーム > 知恵と勇気道具 > 圧縮くらいできなくてどうする!

圧縮くらいできなくてどうする!

コンピュータで扱うファイルというものはそのままでは冗長(無駄)な部分が結構あります。もちろん冗長な部分が実際の運用時には大事なのですが、伝達、保管時にはこの冗長部分は必要ありません。そこで、ファイルの保管やメールなどでの情報の伝達時にはファイルを圧縮することが、ネットワーク資源、ディスク資源を有効に使うコツになってきます。

何ゆってるか分からない? 要するにふとんはふとん圧縮パックに入れろってこと!

なんで圧縮?

でかいと邪魔だから。

ぎゅうぎゅう vs 楽々

いくら容量の大きなハードディスクが安くなり、最近買ったパソコンじゃ 10GB、20GB なんて珍しくもなんともないとはいえ、ディスクは有限です。(なんか化石燃料の限界を訴えてるみたいだな。)それに CD-R や MO、フロッピーはハードディスクのようには大容量ではありません。あんまり大きなデータばかりだと、こうしたメディアにバックアップを取るのも分割などの技を駆使しなければならず、大変です。

また、大きなファイルは LAN やインターネットなどで転送するときにも大変です。

おもっ vs 軽々

だから、圧縮なんです。

[ ↑ content ↑ ]

What is 圧縮

圧縮というのは、文字通りコンピュータ上の情報を小さくしてしまうことを言います。この圧縮の方式には2種類あって、

  • ふだん使わないファイルを圧縮して小さくしておくふとん圧縮パック方式
  • 今までのものより少なくて済むファーファ 1/3 方式*1

の、ようになっています。前者の場合は一度圧縮をもとに戻さないと(俗に解凍する、正しくは伸張する)ファイルを使えませんが、後者の場合は内容を解釈する画像表示ソフト、音声再生ソフトが解凍・再生を同時に行います。

圧縮パックに入ったままのふとんでは寝れませんが、ファーファはそのまま使えますね? 比較すると以下のようになります。

*1

ファーファを連呼していますが、これには他意はありません。「小さい(少ない)まま元と同じ機能を実現しているもの」以上の意味を含みません。同じようにふとん圧縮パックも、「元の大きさに戻さないと使えないもの」以上の意味を含みません。

これらの商標はそれぞれ権利者の保有ものです。

方式 ふとん圧縮パック ファーファ 1/3
圧縮できるファイル数 複数 1つだけ
圧縮を行うソフト 専用 画像、音声などの「内容」を扱うソフトが圧縮、解凍も同時に行う。
可逆/非可逆 可逆 非可逆が多い
LHA, ZIP, gzip, StuffIt MP3, MPEG, JPEG, GIF, PNG, QuickTime, PDF

(QuickTime や PDF は単純に圧縮形式というわけではないのですが、圧縮されているのは事実なので、あえて入れておきました。)

で、例えばフリーソフトなどの配布にはふとん圧縮パック方式が、WWW 上の画像にはファーファ 1/3 方式が使われています。フリーソフトの場合はソフト本体のほかに説明書や設定ファイルなどいろんなファイルを一度に扱う必要がありますし、それらは別々のファイル形式ですのでファーファ方式を使うことができません。逆に画像はいくつかまとまっているものをいちいち手で解凍することなく、ブラウザが勝手に解凍して勝手に表示してくれた方が楽ですよね?

圧縮パック方式の概念図
圧縮展開(解凍)
複数のファイルを一つにまとめるイメージ 一つの圧縮ファイルからいくつものファイルを取り出すイメージ
実際の圧縮の効果
ファイルの大きさは違うのに同じ画像を再現できるファーファ1/3方式のイメージ
PC-Training のフォルダ 262,159 バイト
(これを最初に書いた時点で)
圧縮後のファイル 121,114 バイト

また、ファーファ方式で圧縮されたものをもう一度ふとん圧縮パック方式で圧縮しても、ほとんど無意味です。圧縮パック方式で効果が出るのは

  • アプリケーション独自形式のファイル(Word とか PhotoShop とか)
  • テキストファイル(HTML も)
  • BMP や AVI, WAVE, AIFF, PICT, WMF など

の最も基本的な形式になります。(AVI などの動画や音声ファイルはちょっと微妙ですけどね。)こうしたものは圧縮パック方式で圧縮すればそれなりに小さくなります。

簡単に言うと、画像や音声はたいがい圧縮されているので再圧縮は無意味です。

[ ↑ content ↑ ]

アーカイブ、アーカイバ

圧縮パック方式の専用ソフトを「アーカイバ」と呼びます。これは「アーカイブするソフト」という意味です。演奏する(play)人をプレイヤー(player)、書く(write)人をライター(writer)、運転する(drive)人をドライバー(driver)と呼ぶのと同じく、archive するソフトを archiver と呼びます。

音楽に合わせて喋る(rap)人をラッパー、シャネルする人をシャネラー、篠原みたいな浮き方をする人をシノラー、archive するソフトを archiver と呼びます。

さて、「アーカイブ」とは「書庫」のことです。つまり、いろんなファイルがまとめてあるもの、ってことですね。

正確にはまとめるだけでなく圧縮もしているので「圧縮アーカイバ」と呼ぶのが正しいのですが、世の中にあるアーカイバの大半は圧縮アーカイバなので気にしている人はあまりいないようですね。でも「アーカイブ」のもともとの意味が分かれば、ちょっと違うな、ってことは分かりますね。

実際、のちに触れる LHA にも「無圧縮」というモードがあって、ただ単にファイルをまとめるだけという動作をします。これでいっぱいあるファイルを1つにまとめ、改めて圧縮を掛けてやった方がそのまま圧縮するよりも小さくなるんですけど、これは意外と知られていません。

逆に、無圧縮でも「まとまっていることに意味がある」場合もあります。ファイルの転送はまさにその例で、小さいファイルが大量にあるより、大きな一塊のファイルの方が転送は速いです。これは(素朴な転送では)一つのファイルを転送するたびにネットワーク接続の手間が発生するからです。また、ディスクそのものも、小さなファイルが大量にあるよりも、大きなカタマリのファイルの方が効率的に利用できます。

[ ↑ content ↑ ]

圧縮パック形式は実はたくさんある

ふとん圧縮パック方式の場合、圧縮・解凍には専用のソフトが必要です。いわゆるアーカイバというやつで、こいつを使えばいくつもあるファイルを一つのパックに収めてしまうことも可能です。しかし、この方式は実は結構たくさん商品(種類)があります。

有名な形式を少し列挙してみましょう。

気をつけなきゃいけないのは、それぞれの形式にはまったく互換性がないということです。つまり、LHA 形式で圧縮したものを PKZIP 形式で解凍はできない、逆もまたしかり、ということですね。いろんな形式に対応するにはいろんなソフトを揃える必要があります。中には一つのソフトで多くの形式に対応しているものもありますが。

全部の形式について解説する気力もないですし、そんなことにも意味を見出せないので、ここではとりあえず LHA 形式と GNU zip と Stuff It について触れます。なお、具体的な圧縮方法については各ソフトのマニュアル、サポートページなどを参照してください。

[ ↑ content ↑ ]

LHA 形式

純国産の圧縮形式。もともとの作者は MS-DOS の時代の吉崎さん。現在、ご本人はもうメンテナンスしてないんじゃないかと思われますが、様々なプラットフォームに移植され、いろんなところで活躍しています。Win と Mac の間、Mac と UNIX の間のデータのやり取りなどにはこの形式を使えばとりあえず大丈夫でしょう。とりあえず以下のようなソフトで扱うことができます。まだまだありますけどね。あまりに多くて紹介しきれません。

拡張子は .lzh

[ ↑ content ↑ ]

GNU zip 形式

拡張子は .gz です。.zip ではありません。

Win な世界や Mac な世界でこの拡張子 .gz に出会うことはめったにありませんが、あなたが UNIX な世界に興味を持ち始めたら途端にこの拡張子に出会う確率は高くなります。ドキュメントが .gz で圧縮してあったりするので押さえておくようにしましょう。

UNIX 版については、いまどきの PC UNIX の場合は標準で入っていることが多いです。

[ ↑ content ↑ ]

Stuff It 形式

Mac な世界では標準的な形式です。StuffIt Expander はイマドキのブラウザには標準で入っていたりしますね。拡張子は .sit が一般的でしょうか。

[ ↑ content ↑ ]

PKZIP 形式

他には?

たくさんあります。あまりにたくさんあります。

ま、読んでみてください。

添付するならどれ?

基本的には Windows には Windows でポピュラーな、Mac には Mac でポピュラーな、UNIX には UNIX でポピュラーな形式があります。しかしあえて「この形式でいけば大丈夫!」と言うとすれば、UNIX な人は一般にスキルが高く、柔軟な対応ができるもの考えさせてもらえるとして、国内では LHA形式、海外とのやりとりが多い場合は ZIP形式がいちばん確実だと思います。この形式にしておけば、たいていの人はメールで送られても ftp で転送されても、ほぼ問題なく対処できると思います。

[ ↑ content ↑ ]

ファーファ方式も知っておこう

ファーファ方式はそれを扱う画像ソフト、音楽ソフト、動画ソフトによって圧縮・解凍が行われます。しかし、実際にどれがファーファ方式なのかを知らないと使いこなすことはできません。

代表的なのは以下のとおりです。

ファーファファーファ 1/3
画像BMP, WMF, PICT, TIFF, PSD, EPSGIF, JPEG, PNG, JPEG2000, SVG, SWF
オーディオwav, aiff, auMP2, MP3, wma, Ogg, AAC
動画AVIMPEG, Real, DV, qt
文書psPDF

具体的に下の絵でいきますと、

BMP GIF
7470 バイト 2123 バイト

のようになっています。差は歴然です。

と、同時に気をつけなきゃいけないのは、圧縮パックで圧縮し直してもほとんど小さくならないということと、一度圧縮すると元に戻らないものが多い、ということです。

これはいちばん最初の表で [可逆/非可逆] と表記されているものでして、例えば BMP で描いた絵を JPEG で圧縮すると、ぱっと見ても分からない程度に画質が劣化します。そしてこれは元には戻りません。つまり、完成した絵を相手に送りたい、というときには使えますが、製作途中にこの JPEG 圧縮を掛けると、せっかくの絵が汚くなっていきます。だから

描いている途中は BMP で保存、送るときは JPEG で送信

するのが正しいやり方と言えるでしょうね。もっとも、JPEG はイラストには不向きなんですけど(^^; この辺の細かい話はもっと詳しい画像、イラスト関係のページに譲るとして、とにかく圧縮は最後に掛けるのが鉄則です。

圧縮といってもやることはいつもと一緒で [ファイル] → [名前を付けて保存] を選びます。で、たいていのソフトはこのときに形式も選べるようになっています。

ファイルを保存するダイアログで画像形式を選んでいるところ

このときに目的の形式を選んでやると、ソフトが勝手に圧縮してくれる、という寸法です。

ここで現われない形式にしたい場合は、変換ソフトを使います。例えば IrfanView とか Graphic Converter とか、午後のこ〜だとか SoundApp とか TMPGenc とか。

音声の設定を変更するダイアログ

また、こうしたマルチメディア関係のファイルには自身で様々な形式をサポートしているものが多いので、質よりもファイルサイズにこだわるのであれば、結構工夫ができます。具体的には使う色数を減らす、ステレオをモノラルにする、ビットレートを落とす、フレーム数を落とす、などです。

この辺りの細かい話は各ソフトのマニュアルやオーディオ、ムービーに詳しいページなどを参照してください。

[ ↑ content ↑ ]