開発じたばた日誌

前へ●●●次へ
じたばた日誌目次へ戻る
TSUCHY Softへ戻る


TYOTTO GIF編

 まずはファイルの中身と英語の解説書から比較して納得することから始めました。 ファイルの最初の部分にはヘッダという部分があり、重要な情報が書かれてあります。

たとえば「私はGIF89aだ」「私はインターレースGIFだ」「縦は**ドット、横は**ドットだ」 という内容です。

 この部分は比較的わかりやすく、ふーむなるほど、と見ていけばわかります。 問題は画像データそのものの部分です。

 ビットマップファイルはまだ楽です。見ている画像とバイナリダンプしたデータがだいたい一致します。 しかしGIFのような圧縮されたデータは全くわかりません。 とりあえず英語の文献の圧縮の例題を理解する所から始めました。

 しかし英語の例題は理解できなかったので、本屋で参考書を買ってきました。 「データ圧縮ハンドブック」これはJPEGも載っています。

 圧縮されたデータはちょっと恐ろしいものがあります。 とにかくできるだけ小さくするのが優れた圧縮ですから1ビットといえどムダにはできません。 もし必ず1ビット小さくできる圧縮方法が発見されたら、その方が優れた方法なのです。 これを逆にいうと、元に戻すとき1ビットでも間違えたら、あとはぐちゃぐちゃのものにしかなりません。

 私は本の例題を理解したあと、白だけの8X8ドット程度の小さいGIFファイルを作り、 これを表示することから試みました。 ファイルをバイナリダンプしたものを印刷し、手計算でこれを元に戻してみました。

 何度も計算間違いをして、あり得ないビットパターンが出たりしました。 やっと手計算に間違いがなくなり、私の計算方法で白の8X8ドットの画像が展開されることを確認しました。

 いよいよ本当の画像のデコードにかかりましょう。