情報処理技術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をファイル名の末尾につけるのが一般的です。
自己解凍形式のファイルだと、ファイルを入手した人が、解凍ソフトを持っていなくても、元ファイルを取り出すことができます。
自己解凍ファイルの作成方法は、圧縮ソフトに依存します。圧縮ソフトがこうしたファイルを作成する機能を持っていればいいのですが、ないこともよくあります。
圧縮がなぜ必要か
圧縮を行うことのメリットは次のようにまとめられます。
- データサイズの縮小
- たとえば、ハードディスクにあるファイルを圧縮することで、ハードディスクの空き容量を増やすことが期待できます。
- 通信時間の短縮
- 元データをそのまま通信を利用して伝送する場合に比べ、圧縮したほうが時間を短縮することができます
- 通信時間の短縮という意味だけでなく、一定時間により多くの情報を伝送できるという意味にも解釈できます。たとえば、インターネットを使った映像の表示や音声放送などは、圧縮という技術なしには実現しません。
- ストレージ(記憶領域)やリソースの節約により、結果的に安定した動作
- 前者の2つと同じような意味ですが、圧縮した結果、本来よりも小さなサイズのデータになります。ただ、いちがいにはいえないものの、データサイズが増大することで、ソフトウエアの不安定要素は増えることが言えるため、データを圧縮することで、安定した動作を期待することができます。
- アーカイバの機能により、複数のファイルを1つにまとめる
- 複数のファイルの伝送を、1個のファイルの伝送、つまり1回で済ますことができます
- 一連のファイルを1つのファイルにまとめて整理がつきやすくなります
- 一般には複数のファイルがある場合に比べて、ディスクの空き容量が増えます(ハードディスクなどはファイルのサイズによらず、一定サイズのブロックを単独あるいは複数個使ってファイルを保存するため、ファイルサイズ+αのディスク領域を使用します。)
一方、デメリットがないわけではありません。
- データを直接利用する場合に比べて、圧縮や解凍するだけ余分に時間がかかる
- 元ファイルなど、元データは必ずしも直接参照することができるとは限らない
- ファイルの圧縮では、圧縮した結果と元のファイル、あるいは圧縮ファイルとそこから元に戻したファイルのように、同じものが2重化されて存在し、管理の複雑さの増大は免れない
実際の圧縮処理とアップロード
ファイルの圧縮方法は、使用する圧縮用ソフトに依存します。学校の環境では「弥生」というソフトがインストールされているので、それの利用方法を説明しましょう。
使うソフトは「弥生」
- 圧縮して1つにまとめたいファイルを、NTエクスプローラなどでともかく見えるようにする
- 圧縮したいファイルを選択する。1つのファイルでもよい、複数のファイルでもよい
- それをデスクトップ上の「弥生」とういアイコンにドラッグ&ドロップする
圧縮した結果もファイル
- 圧縮した結果、「圧縮ファイル」が新たに作成できる
- ファイルがどこにできるかをよく認識すること
- 通常は圧縮元のファイルはそのまま残る。設定によっては元ファイルを削除することもできる
アップロード
- 圧縮したファイルをサーバーにアップロードして、たとえばWebブラウザからダウンロードするようにもできます。
- アップロードはftpソフト(WS_FTPなど)を使います。
- テキストモードでアップロードしてはいけません。バイナリーモード(ファイルの内容を変更しないモード)でアップロードします。普通は圧縮ファイルは自動的にバイナリーモードになりますが、不安な場合やうまくいかない場合には、ftpソフトの設定をバイナリモードにします。
ファイルのダウンロードと解凍処理
ファイルの解凍を行う代表的な場面として、フリーソフトなどを入手し、その入手したファイルから実行に必要なファイルを取り出すようなものがあります。実際にゲームのファイルを入手して、解凍し、実行させてみます。
ファイルをダウンロードしてみる
- フリーソフトがたくさんあるベクターのサイトを開いてみる:アドレスはhttp://www.vector.co.jp/
- ライブラリ→Windows→ゲームの中のパズル→Brain Panic養成
- Downloadボタンを押す→ダイアログボックスの指示に従う→ファイルをデスクトップに保存
ダウンロードしたファイルをLhasaで解凍する
- ダウンロードしたファイル(上記の手順だと、brain200.lzh)がデスクトップにある
- そのファイルを、同じくデスクトップにあるLhasaにドラッグ&ドロップする
- 解凍され、ファイルの中にあったファイルが取り出された
- ウインドウが表示されるが、それがどこのフォルダなのかを認識するのが大切
ホームページをテキストエディタで作成する
- HTMLはほんとうはテキストファイル
- テキストファイルで作成する
- ページ作成ソフトでも、HTMLによる記述は参照できる
メモ帳でホームページを作る時の基本的な手順
- まず、作ったページを保存するフォルダをどこかに用意しておく
- メモ帳を起動する
- 骨格部分を入力する
- とりあえず保存する。ファイル名は必ず、.htmlで終わるように指定しないといけない。フォルダはもちろん、作ったフォルダに入れておく
- 残りの部分を作成する。時々保存をしておき、不測の事態に備える
- ひととおり作り終えたら、ftpでアップロードを行う。WS_FTPが使えるようになっている
課題をやりながら実際に体験してみよう
本日の課題
課題提出用のページを作成する。「情報処理技術」の課題については、指定された方法で、提出用ページを利用して講師に対して提出することを基本とします。講師は期限後、適当な時期に、ページをチェックして、課題を正しく行っているかを調べます。
まず、課題の提出用のディレクトリをサーバに作成してもらいます。次のようなディレクトリを作成してください。
- 自分のホームディレクトリに、public_htmlがあることを確認する(ないはずはない)
- そのディレクトリの中に「it2000」というフォルダを作る。全部半角文字である。必ず、この名前にすること。
以下の要件のページを作成してください
- 独立した1つのページであること
- そのページは、public_html内のit2000ディレクトリに、kadai.htmlという名前で存在するようにしなさい
- ディレクトリ内のファイルを参照しやすくするため、index.htmlファイルはit2000ディレクトリには作らないでください。
- ページは、メモ帳などテキストエディタを使って、HTMLを直接記述すること
- ページのタイトル(「情報処理技術」課題提出ページ、など)は、冒頭にH1タグで記載すること
- タイトルの下に、学生番号、名前、メールアドレスへのリンク(クリックしたらメールできる形式のリンク)を作成すること。この部分は中央揃えにしておくこと。
- 1回の講義の分は次の通り
- 講義日:右寄せにすること
- 講義のタイトル:H2タグを使って記述すること
- 課題:内容は適当に
- 以上の形式で、2回分までの課題を掲載すること。以後、この形式で課題の提出を続けること
→HTMLの文法についての参考資料
1回目の講義については次の内容を提出すること
- メールの課題については、ページ掲載は不要です。
- 作成したWordの文書を、そのままサーバーにアップロードしておく
- 保存するフォルダは、自分のホームディレクトリの、public_html内にあるit2000にすること
- ファイル名は次の規則にしたがって、必ず正確につけてください。
-
課題番号 |
- |
学籍番号 |
. |
拡張子 |
課題ごとに指定します |
|
学籍番号そのままです |
|
ファイルの種類に応じたものです |
- 今回の課題番号は、01です。拡張子は、docとなっているはずです。
- たとえば、学籍番号19806015の川合君の場合は、
01-19806015.doc
というファイル名のファイルが、it2000ディレクトリに存在する必要があります。
- http://www.slis.keio.ac.jp/~自分のアカウント/it2000/
を、Webブラウザで調べてみること。そのディレクトリにあるファイルの一覧が出るはず。
- 課題提出のページに、そのアップロードした文書へのリンクを作成しておくこと
- そのリンクないしはファイル名を手がかりに、講師は課題で作成した文書ファイルを取得します。
ポイント |
ページへのリンクを設定すると、異なるページへジャンプできる。ページではなく、単にワープロの文書ファイルやあるいは、圧縮したファイルへのリンクを行うとどうなるかを実際に確かめてみよう。 |
2回目の講義については次の内容を提出すること
- 1回目の講義で作ったWord文書を圧縮し、その圧縮したファイルをサーバーにアップロードしておくこと
- 保存する先は、ホームディレクトリの、public_htmlにあるit2000ディレクトリです。
- 圧縮したファイルの課題番号は02です。拡張子は、lzhです。
- たとえば学籍番号19807640の小林君の場合、
02-19807640.lzh
というファイルが、it2000ディレクトリに存在する必要があります。
- 課題提出のページに、そのアップロードした文書へのリンクを作成しておくこと
- Word文書の元のサイズと圧縮後のサイズを、課題提出のページに記載しておくこと。結果的に何パーセンスの大きさになったかを求めておくこと。
以上のページが作成できた段階で、講師宛てにメールをください。メールでは、ページができたことを知らせてください。
←「情報処理技術」のホームページへ