のりだー君の画像処理講座

第2回 − 減色処理について −

前回にて画像表示時における問題について説明しました。今回は、その問題を解決する減色処理について解説していきます。本題に入る前に色の基礎について少し話しておきます。

色は非常に生理学的、視覚的なものではあるが、画像処理での色は、定量的、定性的に把握する必要があります。ここでは、以下の解説に出てくるカラースペース(色空間)に的を絞って説明します。

人間に見える色がRGBの強弱のある、重ね合わせで表わすことができるので、全部で3つの変数の値を決めれば1つの色を特定できます。変数の値を変えて得られる色の全体をカラースペースといいます。この色を特定する3変数をR,G, BとするとRGBカラースペースといいます。

RGBカラースペースは、R,G,Bを3次元のお互いに直交する軸にとり、明るさ最大の値を1とすれば、全ての色は長さが1の立方体の中の点として表すことがでる空間です。また、一辺を8ビットとすれば、最大の値が255となり、全部で16777216色の点を表す空間となります。特に原点はK(黒)を表し、その向かい合う頂点はW(白)を表しています。KとWを結ぶ線分は無彩色を表します。また、この線分KWに対して対称な位置にある2つの点の表す色はお互いに補色であるといいます。補色は足し合わせると無彩色になる2つの色です。

■減色処理

減色処理とは、カラーパレットが表現できる色の数を超えた色数を持つ画像を表示するための手法で、豊富な色の中から限られた色の数をどのように選定し、カラーパレットに登録するかが、色調再現の鍵となります。

減色処理は、次の2つのステップに分けて考えることができます。

@原画像の色分布の統計量を計算し、その画像を再現するのに最適なN色(N:ディスプレイの表示色)を選定し、カラーパレットを作成する。
このとき、選定された色を代表色とよぶ。
A原画像の各画素値に最も近い色をカラーパレット上で選定し、ディスプレイに表示する。

@は、最適なN個の代表色を選定する問題であり、Aは、各画素値とN個の代表色の対応を決定する問題であります。

減色処理の1つ目のステップ、最適なN個の代表色を選定するアルゴリズムとして、均等量子化法および細分化量子化法があります。

@均等量子化法(uniform quantization method)
原画像の色分布の統計量を考慮せず、単純に色分布領域を代表色数N個に均等分割し、各領域の中央値などを代表色とします。通常はRGB空間等に原画像の全画素値を投影し、分割領域がN個になるまで分布領域を各軸ごとに順次均等分割していき、各分割領域の中央値などをその領域の代表色とします。処理が単純で、各画素値と代表色の対応も同時に決定される利点があるが、その反面、原画像の色の頻度分布等を考慮しないため、原画像の色分布によりその再現性が大きく左右されてします。
A細分化量子化法(tapered quantization method)
原画像の色度分布の統計量をもとに代表色を選定するもので、各種アルゴリズムが考案されています。
  ・頻度法(popularity algorithm)
  ・色空間線形分割法
  ・中央値分割法(median cut algorithm)
   etc...

では、画像表示時における問題の@の解決方法は、一般的に細分化量子化法で対応します。上記のように各種アルゴリズムが考案されていますが、ここでは中央値分割法を取り上げます。

中央値分割法(median cut algorithm:メディアン カット アルゴリズム)は、まず原画像のRGB空間における色分布に外接する直方体を考え、RGB3軸のうち、直方体の最も長い辺に平行な軸で、原画像の総画素数を等分するように直方体を2分する。以下これを繰り返し、直方体を細分化していき、最後に同数の画素からなるN個の直方体を生成し、各直方体内の色データの平均値を代表色とします。また、2分する軸は最も長い軸ではなく、最も分散の大きい軸とすることもあります。

一般には良好な色再現が得られるが、中央値を求める計算を繰り返し行う処理などにより計算時間がかかります。

次に、減色処理の2つ目のステップ、各画素値とN個の代表色の対応を決定する最近隣色探索法は、原画像の各画素の色に最も近い色を選定する手法で、次のアルゴリズムが考案されています。

  ・徹底探索法(exhaustive search method)
  ・局所区分探索法(locally sorted search method)
   etc...

以上の処理によって、256色表示ディスプレイでの24ビット画像表示、つまり、16777216色を256色で表現することができるのです。

しかし、これらの処理では写真などの自然画像の表現には、利用できる色数の不足により、奇麗に見えない場合があります。このような場合、高い階調の画像を低い階調の画像に変換するディザ処理を行います。

今回は、減色処理を解説しました。少し足早になってしまいましたが、いかがでしょうか。次回は、ディザ処理と画像表示時における問題のAの解決方法について解説していきます。

1999.9.28入稿