情報処理技術2000年前期
第2回 ファイル圧縮とホームページ作成

2000/4/20


ファイルの圧縮と解凍

ファイルあるいは、一般的にデータそのものを有効に利用できるようにするために、「圧縮」という技術が積極的に利用されています。その圧縮について理解を深めてもらいます。

ファイルにたとえば画像データがあるとします。その画像を再現するのに必要なデータがファイルにあるわけですが、そのデータは必ずしも必要最小限のデータではなく、アプリケーションソフトが扱いやすいデータになっているのが一般的です。たとえば、300ドット×200ドットの画像の場合、60000ドットの点で構成され、各ドット3バイトとすると、18万バイト(だいたい180KB)のデータになります。写真のような画像だと、色や明るさが微妙に変化しているため、おそらく、データを数値で見ると、乱数表でも見る感じかもしれません。一方、もし、「単に真っ黒」という画像ならおそらく全データは0になるでしょう。その場合、0を18万個並べるより、「0が18万個あります」という情報にすると、もしかすると、数バイトで済むかもしれません。

現実にはそんな単純ではないのですが、「圧縮」の原理は以上のような手法です。つまり、データを保存するスペースをいかに有効に使うのかということで、さまざまな圧縮の方法が開発され、実用化されています。

圧縮した結果から元のデータを戻すことを伸張(Expand)と呼びます(圧縮はCompress)。ただし、「解凍」という用語が一般的になっています。ニュアンス的にも、解凍という方が分かりやすいので、こちらの方がとおりがよいでしょう。

圧縮には、大きく分けて2種類あります。

後者のような圧縮がはたして必要なのでしょうか? これはデータの利用形態によってはこうした手法も大変有効です。実際、デジカメの画像データは、非可逆圧縮されています(JPEG方式)。

画像データは、完全にもとのとおりでなくても、内容が判別できればいいので、非可逆にしても実用上は大きく差し支えはありません。また、一般には可逆の場合よりも非可逆圧縮の方が、よりサイズは小さくすることができます。デジカメで使われているJPEG画像の場合は、元の画像の数パーセント程度まで小さくしますが、それをもとの画像にもどしたときに、「ちょっとピントが甘いかな」と思う程度にかなり高い再現性になっています。これは、人間の視覚特性を考慮したうまい圧縮方法が開発されており、それによって、効果的な圧縮ができるのです。

一方、アプリケーションソフトのファイルや、テキストファイルなどは、非可逆圧縮してしまうと、情報が欠け落ちて意味がありません。これらのデータは可逆圧縮するのが原則です。

ファイル圧縮とは

ファイルの中身を圧縮して、一般には別のファイルに圧縮結果を保存することができます。こうした作業を「ファイル圧縮」と呼んでいます。圧縮結果から、解凍することによって、元のファイルを再現することができます。

このような圧縮の作業は、通常は、圧縮あるいは解凍を行うためのアプリケーションソフトウエアなどを利用して行います。たくさんの種類のソフトがリリースされていますが、後から具体的な例を紹介しましょう。

一般には、この場合、1つのファイルを圧縮するだけではなく、複数のファイルをまとめて圧縮して1つのファイルに入れることができます。複数のファイルを1つにまとめるのは、本来は「アーカイバ」と呼ばれるジャンルのソフトが行っていました。アーカイブすることと圧縮することは、本来は別々の処理ではありますが、現在のWindowsの世界では、圧縮ソフトと言えば、アーカイブの機能が含まれているのがあたりまえになっています。「圧縮ソフト」という名前ながら、圧縮するだけでなく、アーカイバの機能も持っている点は知っておくべきところでしょう。

圧縮ファイルの形式

圧縮ファイルに入れられるデータには形式があります。ある圧縮ソフトで圧縮した結果は、その圧縮データの形式を処理できる解凍ソフトを使わないと元のファイルに戻すことができません。したがって、どの形式で圧縮したかをよく理解する必要があります。

ファイル形式 拡張子 備考
LHA形式 .lzh 日本でよく利用されている。もともと、LHAというコマンドを入力して圧縮や屋解凍を行ったので、この名前になっている。拡張子から「LZH形式」と呼ばれることも多い。
ZIP形式 .zip 世界的に見ればいちばんよく利用されている形式。PKZIPというアプリケーションで採用された形式で、このソフトがスタンダードになったため、ファイル形式も一般化した。
StuffIt形式 .sit Mac OSで一般的な圧縮ファイルの形式
gz形式 .gz UNIXでよく利用されている圧縮ファイルの形式。gzipで圧縮をかけ、gunzipで元に戻す。いずれも単に圧縮と解凍を行うだけ
tar形式 .tar UNIXでよく利用されているアーカイブファイルの形式。使うコマンドのtarがそのまま名前になっている

特に、LHAとZIPの2つはWindowsを使う上では必ず意識しないといけないでしょう。UNIXは、圧縮、解凍、アーカイブが別々のソフト(コマンド)になっています。

自己解凍形式

圧縮したファイルが「アプリケーションソフト」という形式があります。このアプリケーションは「圧縮したデータ+解凍ソフト」という構造になっています。つまり、アプリケーションのファイルに見えますが、実際には圧縮データとそれを解凍するソフトが1つにまとまったものです。こうしたファイルを「自己解凍形式」(Self-Extract)などと呼びます。Windowsでは、ファイルの拡張子は.exeになります。Mac OSでは、.seaをファイル名の末尾につけるのが一般的です。

自己解凍形式のファイルだと、ファイルを入手した人が、解凍ソフトを持っていなくても、元ファイルを取り出すことができます。

自己解凍ファイルの作成方法は、圧縮ソフトに依存します。圧縮ソフトがこうしたファイルを作成する機能を持っていればいいのですが、ないこともよくあります。

圧縮がなぜ必要か

圧縮を行うことのメリットは次のようにまとめられます。

一方、デメリットがないわけではありません。


実際の圧縮処理とアップロード

ファイルの圧縮方法は、使用する圧縮用ソフトに依存します。学校の環境では「弥生」というソフトがインストールされているので、それの利用方法を説明しましょう。

使うソフトは「弥生」

圧縮した結果もファイル

アップロード


ファイルのダウンロードと解凍処理

ファイルの解凍を行う代表的な場面として、フリーソフトなどを入手し、その入手したファイルから実行に必要なファイルを取り出すようなものがあります。実際にゲームのファイルを入手して、解凍し、実行させてみます。

ファイルをダウンロードしてみる

ダウンロードしたファイルをLhasaで解凍する


ホームページをテキストエディタで作成する

メモ帳でホームページを作る時の基本的な手順

課題をやりながら実際に体験してみよう


本日の課題

課題提出用のページを作成する。「情報処理技術」の課題については、指定された方法で、提出用ページを利用して講師に対して提出することを基本とします。講師は期限後、適当な時期に、ページをチェックして、課題を正しく行っているかを調べます。

まず、課題の提出用のディレクトリをサーバに作成してもらいます。次のようなディレクトリを作成してください。

以下の要件のページを作成してください

→HTMLの文法についての参考資料

1回目の講義については次の内容を提出すること

ポイント ページへのリンクを設定すると、異なるページへジャンプできる。ページではなく、単にワープロの文書ファイルやあるいは、圧縮したファイルへのリンクを行うとどうなるかを実際に確かめてみよう。

2回目の講義については次の内容を提出すること

以上のページが作成できた段階で、講師宛てにメールをください。メールでは、ページができたことを知らせてください。


←「情報処理技術」のホームページへ