パレットのお話

256色以下しかサポートしていない画像フォーマットの殆どはパレットと言う物を持っています。
ここではGIFを例に説明して行きますが、GIF以外にもパレットを持つ画像フォーマットは幾つもあります。

パレットってなに?

誰もが小中学校の図画工作の授業で水彩画を描いたことがあるでしょう?


非常に簡単な(乱暴な?)言い方をすると、
あの授業で使う絵を描くための道具のパレットと
同じ役割をするものです。

つまり、どんな色があるかを格納しておく場所ですね。


どう言うこと?

GIFやBMPなどの画像データは細かいドット(点)が集まって構成されている訳ですが、
当然そのドット1つ1つにはどんな色を使っているかの情報が書き込まれて居るわけです。
フルカラーのBMPなどでは実際に1つ1つにR(赤)G(緑)B(青)のデータが書き込まれています。
しかし、フルカラーのBMPではその為にデータ量が非常に多くなってしまいます。
そこで、「256色しか使わないのであれば色のデータを独立させればいいじゃん?」と言う考えが
出てくるのはごく当たり前でしょう。
つまり、色のデータ(RGB値)を別の部分に格納して、個々のドットには表示すべき色が
パレットのどこにあるかを指示してやれば全体のデータ量は小さくなりますね。

この違いを図にしてみます。枠の1つがドット1つに当たると思って下さい。


BMP概念図

R256G256B256
R230G045B066
R208G000B185
R230G045B066
R256G256B256
R208G000B185
R230G045B066
R208G000B185
R256G256B256
R208G000B185
R230G045B066
R208G000B185



GIF概念図

1
2
3
2
1
3
2
3
1
3
2
3
パレット部分
(1)R256G256B256
(2)R230G045B066
(3)R208G000B185

ただし、これはあくまでもパレットを理解しやすくする為の概念図です。実際はこのようにデータが格納されているわけではありません^^;

この例ではわずか3色、ドット数は3*4の12ドットですが、
たった12ドットだけでも収納されているデータの量に大きな差が出てくるのがお判り頂けるでしょう。

GIFは256色しか使えないと言う制約がある反面、256色しか使わないことでデータサイズを
小さく出来ると言う特徴を得た訳です。

※GIF形式は書き込み時にさらに独自の技術を使い、データを圧縮をしていますが、ここでは
 「解説が複雑になる」、「アプリケーションユーザー側が意識する必要は無い」などの理由で敢えて無視しています。
 GIFが行う圧縮について詳しく知りたい方、ビュアーやレタッチツールを制作したい方は
 きちんとした画像フォーマットの解説書や米国UNISYSのHP、UNISYSが配布しているソースコードを参考にして下さい。



パレットを使いこなそう



以前「HPのサイズを削れ!」のコーナーで、以下のような問題を出しました。

もしパレットを使い切らずに済めばどうなるでしょう?CGの知識がある程度ある人には簡単な問題ですね。
正解は「ファイルサイズが小さくなる」なのですが、具体的にどうすれば良いのかは
(〜中略〜)
具体的なヒントは「 Photoshop は万能じゃない」 です。

では、この回答を。
Photoshopは元々写真(フルカラーの画像)のレタッチを目的に作られたツールであるせいか
GIF形式で保存する事は実は苦手らしいです。
Photoshop で保存した画像を見てもそれは実感できると思いますし、
古いバージョンではGIF形式で保存する事は出来ませんでしたし、4.01Jでも出力プラグインと言う形に
なっている事からもそれは推察できます。

ではどうするか?GIFの保存を Photoshop で行わなければ良いのです。
つまり、画像を作るところまでは Photoshop で、その画像をいったんBMPで保存し、
そのBMPを他のツールでGIFに変換させれば良いのです。非常に簡単なことです(笑)
BMP→GIFへの変換ですから Photoshop の様な高価なツールは必要ありません。
どのツールにするかはお好きなもので良いでしょうが、押さえるべきポイントはあります。

1.綺麗に256色、またはそれ以下に変換してくれるツールであること。

これは当たり前なんですが一番重要です。
確かに何万色からたった256色にするわけですから、ツールを作る側はかなり大変な作業です。
しかし、この部分に気を使っていないツールやこの部分はおまけで付いているツールが多いのも事実。
綺麗に変換してくれるツールをじっくり探しましょう。

2.使わないパレットは削除出来ること

色のデータはかなりサイズが大きい物です。使わない色のデータは入れないツールを使いましょう。
ごく一部のツールは使わないパレット部分を黒のデータで埋めてしまう物があります。
こういうツールではファイルサイズは小さくなりません。
色データがどの様になっているかはCGビュアーで読み込んでみて、パレット情報を見てみましょう。
Photoshopではパレットは [イメージ] - [モード] - [カラーテーブル] で見ることは出来ますが
特定のパレットが使われているか使われていないかの情報はわからない仕様になっていますので、
パレットの状態を見るにはやや不向きだと思います。
どちらかと言うと使われている色を変更するパレットエディタとしての性格が強い様です。
私はIrfunViewと言うビュアーを使っています。このビュアーでパレット情報を見ると
使われていないパレットは表示されません。


CGビュアーなどで形式変換もサポートしている物や、256色を専門に扱うツールなどもありますので、
あとは「お使いのO/Sで動くソフトか」、「あなたなりの使いやすさ」を基準にして色々調べてみて下さい。
シェアウエアでしたらまず使ってみることも可能ですから、機能に価格が見合うものかも調べられます。
ごく一部ですがフリーソフトでもこういう機能を持つツールもあります。
フリーソフトは無料で使えますが、使ってみた感想や見つけたバグを作者にメールなどで報告しましょう。
それがフリーソフトの使用料です。
そう言うやりとりをフリーソフト作者さんとすることで、あなたの知識と興味が更に深まるかもしれません。
私としてはそのような自分の経験から
「オンラインソフトは機能が同じであれば自分のためにもフリーソフトを選ぶべき」だと思っています。
・・・ただし、グラフィックツールに関してはフリーソフトは非常に少ないのですが(^^;

そんな面倒なことはしたくないと言う方は ImageReady と言うソフトがアドビから出ています。
私は使ったことはないのですが、「Adobe製品共通のユーザインターフェイス」
「Web用画像に必要な全ての機能を提供する」などとHPを作ることに特化しているのが売りの様です。
シームレス(継ぎ目の無い)画像を制作するフィルタや、アニメーションGIFもサポートされている様で、
気になる方は体験版をダウンロードしてみるのも良いかもしれません。




戻る