(57)【要約】【課題】減色処理の工数を減らした画像処理装置を提供する。【解決手段】画像処理装置は，ＲＧＢデータとインデックスを対応させたカラーパレットを，ＲＧＢデータのＲ値，Ｇ値，Ｂ値の関係に基づいて複数のグループに分けてルックアップテーブルを生成する分類部と，ルックアップテーブルを格納する格納部と，ＲＧＢデータを有する画素データが，複数のグループのいずれに対応するかを，当該画素データのＲ値，Ｇ値，Ｂ値の関係に基づいて判定し，当該判定したグループ内で画素データのＲＧＢデータに類似するＲＧＢデータを検索し，当該検索したＲＧＢデータに対応するインデックスを画素データとして出力する変換部とを有する。【選択図】  図１
2012085029.tif 000002
【特許請求の範囲】
【請求項１】
ＲＧＢデータとインデックスを対応させたカラーパレットを，前記ＲＧＢデータのＲ値，Ｇ値，Ｂ値の関係に基づいて複数のグループに分けてルックアップテーブルを生成する分類部と，
前記ルックアップテーブルを格納する格納部と，
ＲＧＢデータを有する画素データが，前記複数のグループのいずれに対応するかを，当該画素データのＲ値，Ｇ値，Ｂ値の関係に基づいて判定し，当該判定したグループ内で前記画素データのＲＧＢデータに類似するＲＧＢデータを検索し，当該検索したＲＧＢデータに対応するインデックスを画素データとして出力する変換部とを有する画像処理装置。
【請求項２】
請求項１において，
前記複数のグループは，複数の色相グループを有し，
前記分類部は，前記カラーパレットに含まれる複数の色を，当該色のＲＧＢデータのＲ値，Ｇ値，Ｂ値の大きさ順に基づいて，前記複数の色相グループのいずれかに分類する画像処理装置。
【請求項３】
請求項１において，
前記複数のグループは，グレーグループと複数の色相グループとを有し，
前記分類部は，前記カラーパレットに含まれる複数の色のうち，当該色のＲＧＢデータのＲ値，Ｇ値，Ｂ値のそれぞれの差分の絶対値が基準値より小さい色を，前記グレーグループに分類する画像処理装置。
【請求項４】
請求項３において，
前記分類部は，さらに，前記カラーパレットに含まれる複数の色を，当該色のＲＧＢデータのＲ値，Ｇ値，Ｂ値の大きさ順に基づいて，前記複数の色相グループのいずれかに分類する画像処理装置。
【請求項５】
請求項１，２または３において，
前記変換部は，前記画素データに隣接する隣接画素データについては，前記画素データに対して判定されたグループにおいて前記隣接画素データのＲＧＢデータに類似するＲＧＢデータを検索する画像処理装置。
【請求項６】
請求項１，２または３において，
前記変換部は，さらに，当該検索したＲＧＢデータを前記グループ内の先頭検索位置に移動して前記ルックアップテーブルを更新する画像処理装置。
【請求項７】
付記１，２または３において，
前記変換部は，当該判定されたグループ内での前記画素データのＲＧＢデータに類似するＲＧＢデータの検索を，画素データのＲＧＢデータと前記判定されたグループ内のＲＧＢデータとの差分が最小か否かに基づいて行う画像処理装置。
【請求項８】
請求項１，２または３において，
前記変換部は，当該判定されたグループ内での前記画素データのＲＧＢデータに類似するＲＧＢデータの検索を，画素データのＲＧＢデータと前記判定されたグループ内のＲＧＢデータとの差分が基準値より小さいか否かに基づいて行う画像処理装置。
【請求項９】
ＲＧＢデータとインデックスを対応させたカラーパレットが，前記ＲＧＢデータのＲ値，Ｇ値，Ｂ値の関係に基づいて複数のグループに分けられたルックアップテーブルを生成し，
ＲＧＢデータを有する画素データが前記複数のグループのいずれに対応するかを，当該画素データのＲ値，Ｇ値，Ｂ値の関係に基づいて判定し，
当該判定されたグループ内で前記画素データのＲＧＢデータに類似するＲＧＢデータを検索し，
当該検索したＲＧＢデータに対応するインデックスを画素データとして出力する工程を，コンピュータに実行させるコンピュータ読み取り可能な画像処理プログラム。
【請求項１０】
ＲＧＢデータとインデックスを対応させたカラーパレットが，前記ＲＧＢデータのＲ値，Ｇ値，Ｂ値の関係に基づいて複数のグループに分けられたルックアップテーブルを生成し，
ＲＧＢデータを有する画素データが前記複数のグループのいずれに対応するかを，当該画素データのＲ値，Ｇ値，Ｂ値の関係に基づいて判定し，
当該判定されたグループ内で前記画素データのＲＧＢデータに類似するＲＧＢデータを検索し，
当該検索したＲＧＢデータに対応するインデックスを画素データとして出力する画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，画像処理装置に関する。
【背景技術】
【０００２】
カラー画像のデータ量を減らすために，トゥルーカラーの画像データをインデックスカラーの画像データに減らす減色処理（色数変換処理）が行われる。トゥルーカラーの画像データは，例えば，画素毎に赤，青，緑（ＲＧＢ）それぞれに８ビット（２５６階調）の画像データを有し，フルカラー表示される。
【０００３】
また，ＲＧＢの色空間に代えて，ＹＵＶ色空間などの輝度とクロミナンスの色空間は，色の明るさである輝度を表すＹ値と，赤からＹ値を引いたＵ値（Ｙ−Ｒ）と，青からＹ値を引いたＶ値（Ｙ−Ｂ）とからなる。ＹＵＶ色空間はＲＧＢ色空間よりも狭い記憶空間で済むので，映像データなどはＹＵＶ色空間が採用されている。
【０００４】
一方，インデックスカラーの画像データは，カラーパレットの複数の色に対応したインデックスを画素データを有する。カラーパレットは，トゥルーカラーから任意に抽出した複数の色を有し，各色はＲＧＢデータを有する。２５６種類の色を有するカラーパレットは，各色に対応するインデックスは８ビットのデータになり，１６種類の色を有するカラーパレットは，インデックスは４ビットのデータになる。したがって，インデックスカラーの画像データを表示するためには，各インデックスに対応する色のＲＧＢ値を示すカラーパレットデータを参照する必要がある。
【０００５】
減色処理を行うことで，画素毎に２４ビットのトゥルーカラーの画像データを，画素毎に８ビットのインデックスカラーの画像データに変換することができ，カラー画像のデータ量を減らすことができる。
【０００６】
ＹＵＶ色空間のカラー画像データをインデックスカラーの画像データに変換することが特許文献１に記載されている。また，インデックスカラーの画像データをカラーパレットを参照してＲＧＢ値に変換することが特許文献２に記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−１９９１２２号公報
【特許文献２】特開２００２−３１５０２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
減色処理において，ＲＧＢ値からなるトゥルーカラーの画像データを，カラーパレットのＲＧＢ値とインデックスとの対応に基づいて，インデックスカラーの画像データに変換するためには，カラーパレットのＲＧＢ値とインデックスとの対応を示すルックアップテーブルを参照する必要がある。一般には，トゥルーカラーの画像データのＲＧＢ値に最も近いＲＧＢ値を有するインデックスをルックアップテーブルで探索することが行われる。
【０００９】
しかし，ルックアップテーブルでの探索処理は，減色処理時間を長くする原因になり，短時間での減色処理を行うことが求められる。
【００１０】
そこで，本発明の目的は，減色処理の工数を減らした画像処理装置を提供することにある。
【課題を解決するための手段】
【００１１】
画像処理装置の第１の側面は，ＲＧＢデータとインデックスを対応させたカラーパレットを，前記ＲＧＢデータのＲ値，Ｇ値，Ｂ値の関係に基づいて複数のグループに分けてルックアップテーブルを生成する分類部と，
前記ルックアップテーブルを格納する格納部と，
ＲＧＢデータを有する画素データが，前記複数のグループのいずれに対応するかを，当該画素データのＲ値，Ｇ値，Ｂ値の関係に基づいて判定し，当該判定したグループ内で前記画素データのＲＧＢデータに類似するＲＧＢデータを検索し，当該検索したＲＧＢデータに対応するインデックスを画素データとして出力する変換部とを有する。
【発明の効果】
【００１２】
第１の側面によれば，減色処理の工数を減らすことができる。
【図面の簡単な説明】
【００１３】
【図１】本実施の形態における画像処理装置の構成図である。
【図２】本実施の形態における画像処理装置の別の構成図である。
【図３】ルックアップテーブル生成器１６またはルックアップテーブル生成プログラム２６によるトゥルーカラー画像データの分類方法の一例を示す図である。
【図４】図３の色のグループを説明する図である。
【図５】本実施の形態におけるカラーパレットとグループ化されたカラーパレットの例を示す図である。
【図６】本実施の形態におけるカラーパレットとグループ化されたカラーパレットの例を示す図である。
【図７】本実施の形態におけるルックアップテーブル生成のフローチャート図である。
【図８】本実施の形態における第１の減色処理を示すフローチャート図である。
【図９】本実施の形態における第２の減色処理を示すフローチャート図である。
【図１０】本実施の形態における第３の減色処理を示すフローチャート図である。
【発明を実施するための形態】
【００１４】
図１は，本実施の形態における画像処理装置の構成図である。画像処理装置１０は，第１の画像データであるトゥルーカラー画像データＤ１を，カラーパレットのインデックスを画素データとする第２の画像データであるインデックスカラー画像データＤ２に変換する。画像処理装置１０は，減色処理対象のトゥルーカラー画像データＤ１を格納するフレームバッファ１２と，カラーパレットデータＤ３を複数のグループに分類してグループ別のカラーパレットからなるルックアップテーブルを生成するルックアップテーブル生成器１６と，そのルックアップテーブルを格納するメモリ１８と，フレームバッファ１２内の第１の画像データＤ１の各画素データを，ルックアップテーブルを参照して，カラーパレット内の対応する色のインデックスに変換し，インデックスを画素データとする第２の画像データＤ２を出力する減色器１４とを有する。
【００１５】
トゥルーカラー画像データＤ１の各画素データは，それぞれ８ビットのＲＧＢデータからなる２４ビットのデータである。ＲＧＢそれぞれ８ビット，２５６階調を有し，それらを混色すると16,777,216色を表現することができる。一方，カラーパレットデータＤ３は，16,777,216色のトゥルーカラーから任意の色を抜き出した複数の色からなり，複数の色はそれぞれのＲＧＢデータを持つ。そして，カラーパレットデータでは，これらの複数の色をインデックスに対応させている。インデックスが８ビットの場合は複数の色は２５６色であり，４ビットの場合は１６色である。
【００１６】
各画素が２４ビットのＲＧＢデータであるトゥルーカラー画像データＤ１に比較して，各画素がインデックスのデータであるインデックスカラー，第２の画像データＤ２は，データ量が少ない。したがって，第１の画像データＤ１を第２の画像データＤ２に変換することでデータ量を減少させることができる。そのため，インデックスカラーは，ウエブページに表示したり，テレビのメニュー画面に表示したりするのに適している。
【００１７】
ルックアップテーブル生成器１６は，カラーパレットデータＤ３を，その複数の色のＲＧＢデータのＲ値，Ｇ値，Ｂ値の関係に基づいて複数のグループに分けてルックアップテーブルを生成する分類部である。ルックアップテーブル生成器１６は，カラーパレットデータＤ３の複数の色を，例えば，類似する色相の色を有する複数の色相グループに分類する。または，ＬＵＴ生成器１６は，カラーパレットデータＤ３の複数の色を，複数の色相グループに加えて，ＲＧＢ値が同等のグレー系の色を有するグレーグループに分類してもよい。具体的な分類方法は後述する。
【００１８】
減色器１４は，第１の画像データＤ１を第２の画像データＤ２に変換する変換部である。減色器１４は，ルックアップテーブル１８内のカラーパレット内の複数の色の中から，トゥルーカラー画像データＤ１の各画素データのＲＧＢ値と類似するＲＧＢ値を有する色を検出し，その検出した色のインデックスを画素データとする第２の画像データＤ２を出力する。
【００１９】
そのために，減色器１４は，まず，トゥルーカラー画像データＤ１の画素データのＲＧＢ値が，ルックアップテーブル内のどのグループに属するかを，画素データのＲ値，Ｇ値，Ｂ値の関係に基づいて判定する。具体的な判定方法は後述する。
【００２０】
さらに，減色器１４は，判定したグループ内の複数の色を検索し，トゥルーカラー画像データＤ１の画素データのＲＧＢデータに類似するＲＧＢデータを有する色を検出する。そして，減色器１４は，検出した色に対応するインデックスを画素データとする第２の画像データＤ２を出力する。具体的な検出方法は後述する。
【００２１】
したがって，第１にトゥルーカラー画像データＤ１のＲＧＢデータをそのまま使用して，トゥルーカラーの色をインデックスカラーの色に直接変換できるので，変換工数が少ない。第２に，インデックスカラーの色が複数のグループに分けられていて，トゥルーカラー画像データの色に類似するグループ内から，インデックスカラーの色を検出するので，グループ化されていない場合よりも検出効率が良く，画像データの変換処理を短時間で行うことができる。
【００２２】
図２は，本実施の形態における画像処理装置の別の構成図である。この画像処理装置１０は，減色処理を行う減色プログラム２４と，カラーパレットをグループに分類してルックアップテーブルを生成するルックアップテーブル生成プログラム２６とを格納するメモリと，両プログラム２４，２６を実行するＣＰＵ２０とを有する。さらに，画像処理装置１０は，トゥルーカラー画像データである第１の画像データＤ１を格納するフレームバッファ２２と，カラーパレットデータＤ３を複数の色にグループ化したルックアップテーブル２８とを有する。フレームバッファ２２，ルックアップテーブル２８は，共にメモリである。これらが，バスＢＵＳを介して接続される。
【００２３】
この画像処理装置１０では，図１で説明したルックアップテーブルの生成と，減色処理とを，ルックアップテーブル生成プログラム２６と，減色プログラム２４とをＣＰＵ２０が実行することにより行う。したがって，図１と同様に，変換効率が良く，短時間で色変換を行うことができる。
【００２４】
図３は，ルックアップテーブル生成器１６またはルックアップテーブル生成プログラム２６によるトゥルーカラー画像データの分類方法の一例を示す図である。ルックアップテーブル生成器または生成プログラムは，カラーパレットデータＤ３の複数の色（例えば２５６色）を，そのＲＧＢデータのＲ値，Ｇ値，Ｂ値の関係に基づいて，複数の色相のグループ２〜７に分類する。この複数の色相グループに分類するためには，カラーパレットデータの色のＲＧＢ値の大きさの順番によって行うのが判定が単純で好ましい。
【００２５】
図３の判定式１，２に示されるとおり，色の分類は次の様に行われる。まず，最初に，Ｒ値，Ｇ値，Ｂ値のうちＧ値が最大の色であって，Ｂ値がＲ値より大きい色（Ｇ＞Ｂ＞Ｒ）は，緑〜シアンのグループ６に分類し，Ｇ値が最大の色であって，Ｒ値がＢ値以上の色（Ｇ＞Ｒ≧Ｂ）は，緑〜黄のグループ７に分類する。
【００２６】
次に，Ｇ値が最大ではなく，Ｒ値が最大の色であって，Ｇ値がＢ値より大きい色（Ｒ＞Ｇ＞Ｂ）は，赤〜黄のグループ２に分類し，Ｇ値が最大ではなく，Ｒ値が最大の色であって，Ｂ値がＧ値以上の色（Ｒ＞Ｂ≧Ｇ）は，赤〜マゼンタのグループ３に分類する。
【００２７】
最後に，Ｇ値，Ｒ値が最大ではなく，Ｂ値が最大の色であって，Ｒ値がＧ値より大きい色（Ｂ＞Ｒ＞Ｇ）は，青〜マゼンタのグループ４に分類し，Ｇ値，Ｒ値が最大ではなく，Ｂ値が最大の色であって，Ｇ値がＲ値以上の色（Ｂ＞Ｇ≧Ｒ）は，青〜シアンのグループ５に分類する。
【００２８】
上記のような分類方法によれば，ルックアップテーブル生成器１６は，簡単な論理回路で構成することができ，一方，ルックアップテーブル生成プログラム２６も，簡単な処理工程で構成することができる。
【００２９】
色の分類は，上記の６つの色相グループへの分類に加えて，Ｒ，Ｇ，Ｂ値が同等の色を，グレーのグループ１に分類してもよい。グレーグループ１に分類する場合は，上記の６つの色相グループへの分類処理の前に，Ｒ，Ｇ，Ｂ値のそれぞれの差分の絶対値が，基準値Ｚより小さいか否かの判断処理を行うことが好ましい。このようなグレーグループに属する色は，６つの色相グループに分散して分類されてしまうからである。
【００３０】
図４は，図３の色のグループを説明する図である。図４には，Ｒ，Ｇ，Ｂの色が混色された場合の色が示されている。ＲＧの混色は黄色，ＧＢの混色はシアン，ＢＲの混色はマゼンタである。したがって，図３に示した６つの色相のグループ２〜７は，図４の矢印で示された領域に属する色である。
【００３１】
図５，６は，本実施の形態におけるカラーパレットとグループ化されたカラーパレットの例を示す図である。図５，６にわたり示される左側のカラーパレットは，２５６色の色を有する。但し，１４０色しか示していない。各色は，ＲＧＢ値と８ビットのインデックス（１０進表示）Indexとが関連付けられている。一方，図５，６にわたる右側には，グループ別のカラーパレットが示されている。図３に示したグレーグループ１と，色相別のグループ２〜７が示されている。左右のカラーパレットの表示色の欄には，実際の色が表示されている。但し，図５，６では，そのグレー表示になっている。
【００３２】
グループ別カラーパレットを見ると，各色のＲＧＢは，図３の判定式１，２に対応するＲＧＢ値を有していることが理解できる。例えば，グレーグループ１は，ＲＧＢ値が全て同じの色からなる。グループ２（赤〜黄）は，Ｒ＞Ｇ＞Ｂの関係の色からなる。グループ３（赤〜マゼンタ）は，Ｒ＞Ｂ≧Ｇの関係の色からなる。グループ４（青〜マゼンタ）は，Ｂ＞Ｒ＞Ｇの関係の色からなる。グループ５（青〜シアン）は，Ｂ＞Ｇ≧Ｒの色からなる。グループ６（緑〜シアン）は，Ｇ＞Ｂ＞Ｒの色からなる。そして，グループ７（緑〜黄）は，Ｇ＞Ｒ≧Ｂの色からなる。
【００３３】
図７は，本実施の形態におけるルックアップテーブル生成のフローチャート図である。ルックアップテーブル生成では，あらかじめ与えられたカラーパレットの各色を，そのＲＧＢ値の関係に基づいて，具体的には，上記の判定式に基づいて６つの色相グループ，またはグレーグループと６つの色相グループの合計７グループに分類する。図７の例は，７グループの例である。
【００３４】
カラーパレットの各色について，図７に示された判断工程Ｓ１〜Ｓ６により７つのグループのいずれに属するかの判断が行われる。まず，色のＲＧＢ値のそれぞれの差分（Ｒ−Ｂ，Ｒ−Ｇ，Ｂ−Ｇ）の絶対値が全て，基準値Ｚより小さいか否かが判定され（Ｓ１），判定結果がＹＥＳであれば，グレーグループに分類される。
【００３５】
次に，６つの色相グループに属するか否かの判定である。最初に，Ｇ値が最大か否かが判定され（Ｓ２），ＹＥＳであればＢ＞Ｒか，Ｒ≧Ｂかが判定され（Ｓ３），その判定結果に応じて緑〜シアングループか，緑〜黄グループかに分類される。次に，Ｇ値が最大でない場合に，Ｒ値が最大か否かが判定され（Ｓ３），ＹＥＳであればＧ＞ＢかＢ≧Ｇかが判定され（Ｓ５），その判定結果に応じて赤〜黄グループか，赤〜マゼンタかに分類される。そして，Ｇ，Ｒ値ともに最大でない場合に，Ｒ＞ＧかＧ≧Ｒかの判定がされ（Ｓ６），その判定結果に応じて青〜マゼンタのグループか，青〜シアンのグループかに分類される。
【００３６】
図示していないが，各グループの色は，輝度値の大きい順に整列されることが好ましい。これは，人の目には輝度に敏感であり，色相変化に鈍感であるという特性に基づくものである。輝度値は，次の式により求められる。
輝度値＝０．６Ｇ＋０．３Ｒ＋０．１Ｂ                （１）
その結果，グループ化されたカラーパレットは，ルックアップテーブル１８としてメモリ内に格納される。
【００３７】
上記のグループ化では，６つの色相グループに加えて，グレーグループにも分類している。このように色情報をほぼ持たない無彩色（白〜グレー〜黒）のグレーグループを設けることで，ピクセルデータにおいて無彩色に含まれる微細な色相が変化しても無彩色として取り扱われる。それにより，同系色が続きやすい自然画やＣＧ画像において，連続する画素の色をグレーグループとして判定できる。
【００３８】
また，ＲＧＢ色空間は色相を持たない色空間であるが，そのような色データから，上記の判別方法により直接的に色相グループに分類している。したがって，ＲＧＢ色空間の色データをＹＵＶ色空間の色データに変換することなく，ＲＧＢ色空間の色データを色相グループに分類することができる。
【００３９】
［第１の減色処理］
図８は，本実施の形態における第１の減色処理を示すフローチャート図である。減色器１４または減色プログラム２４は，フレームバッファ１２または２２から，画素のトゥルーカラーピクセルデータを読み出す（Ｓ１０）。
【００４０】
そして，そのピクセルデータのＲＧＢ値の関係に基づいて，具体的には図７のグループ化と同じ判定方法で，ピクセルデータがどのグループに属するかを判別する（Ｓ１２）。従って，このグループ判定は，図７の判定と同じである。この場合も，ＲＧＢ色空間の色データをＹＵＶ色空間の色データに変換することなく，ＲＧＢ値の関係に基づいて，ＲＧＢ色空間の色データを色相グループに分けることができる。
【００４１】
次に，減色器１４または減色プログラム２４は，トゥルーカラーピクセルデータの色に一番近い色を，判別したグループ内の複数の色から検索する（Ｓ１４）。検索対象は判別したグループ内の全ての色のＲＧＢ値である。最も近い色を導き出す式は，以下のとおりであり，Ｄ値が最も小さい色が最も類似するカラーパレットの色になる。
Ｄ＝ｇ×｜Ｇｉ−Ｇｔ｜＋ｒ×｜Ｒｉ−Ｒｔ｜＋ｂ×｜Ｂｉ−Ｂｔ｜        （２）
但し，Ｇｉ，Ｒｉ，ＢｉはトゥルーカラーピクセルデータのＲＧＢ値であり，Ｇｔ，Ｒｔ，Ｂｔはグループ内のカラーパレットのＲＧＢ値である。また，ｇ，ｒ，ｂはＧ，Ｒ，Ｂ値の重み付け係数である。
【００４２】
重み付け係数が全て１の場合は，純粋にＲＧＢ値が最も近い色を検出することになる。また，重み付け係数を輝度計算の式（１）と同じにすると，輝度が最も近い色を検出することになる。そして，重み付け係数を１と式（１）の係数との中間値にすると，輝度と色の両方が近い色を検出することになる。輝度が近い色を検出することで，輝度に敏感で色相変化に鈍感という人の目の特性を利用して，人の目にとって最も近い色を検出することができる。
【００４３】
このように，判定したグループ内で最も近い色を検出することにより，検索対象のカラーパレットの色の数を少なくでき，検索工数を少なくし，高速処理可能になる。
【００４４】
上記の検索の結果，最も近いカラーパレットの色のインデックスIndexを，減色画像データの画素データとして出力する（Ｓ１６）。
【００４５】
上記の工程Ｓ１０〜Ｓ１６を全てのピクセルデータが終了するまで繰り返す（Ｓ１８）。
【００４６】
［第２の減色処理］
図９は，本実施の形態における第２の減色処理を示すフローチャート図である。工程Ｓ１０，Ｓ１２，Ｓ１８は，図８の対応する工程と同じ処理である。
【００４７】
第２の減色処理では，判別したグループ内のカラーパレットの検索方法が第１の減色処理と異なる。第２の減色処理では，視覚上問題ならない程度の閾値Ｘｇ，Ｘｒ，Ｘｂを設定しておき，Ｒ，Ｇ，Ｂ値の差分，またはＲ，Ｇ，Ｂ値の差分に係数を乗じた値が，全て閾値Ｘｇ，Ｘｒ，Ｘｂ未満になるカラーパレットの色を，判別したグループ内で検索する（Ｓ２０，Ｓ２２）。そして，該当するカラーパレットの色が検出された場合，その時点で検索処理を終了する（Ｓ２４）。
【００４８】
検索処理での判別式は，以下のとおりである。
（ｇ×｜Ｇｉ−Ｇｔ｜＜Ｘｇ）and（ｒ×｜Ｒｉ−Ｒｔ｜＜Ｘｒ）and（ｂ×｜Ｂｉ−Ｂｔ｜＜Ｘｂ）                                      （３）
この閾値Ｘｇ，Ｘｒ，Ｘｂを小さく設定すれば，変換精度を高くすることができるが，逆に大きく設定すれば，検出効率を高くし短時間で検出することができる。したがって，この閾値を動的に変更設定できることが好ましい。
【００４９】
減色器または減色プログラムは，上記の判別式（３）を満たすカラーパレットの色が検出すると，そのインデックスが減色画像データＤ２の画素データとして出力する（Ｓ２６）。さらに，第２の減色処理では，検出されたカラーパレットの色が，判別グループ内で検索順が先頭になるようにルックアップテーブルを更新する。
【００５０】
このルックアップテーブルの更新処理は，次のメリットを有する。すなわち，隣接するピクセルの色相が急激に変化しない確率が高い自然画像において，グループ内から類似するカラーパレットの色を検出する確率をより高くすることができる。また，隣接するピクセルの色相，輝度が連続して続く確率が高いＣＧ画像において，類似するカラーパレットの色を検出する確率をより高くすることができる。さらに，重み係数ｇ，ｒ，ｂが輝度計算式の係数に設定またはその係数に近い係数に設定される場合は，輝度が類似する色を検出することになり，輝度に敏感で色相変化に鈍感という人の目の特性を利用して，類似するカラーパレットの色を検出する確率を高くすることができる。
【００５１】
上記の判別式（３）に該当しないカラーパレットの色が判別したグループ内から見つからない場合は（Ｓ２４のＹＥＳ），判別したグループ内から一番近い色のカラーパレとを検索し，検出したカラーパレットのインデックスを画素データとして出力する（Ｓ２８）。この検索の判別方法は，第１の減色処理と同じである。さらに，その色をグループ内の検索順の先頭に更新する（Ｓ２８）。
【００５２】
２番目以降のピクセルの画素データについても，上記の処理を繰り返す（Ｓ１８）。
【００５３】
［第３の減色処理］
図１０は，本実施の形態における第３の減色処理を示すフローチャート図である。第３の減色処理では，最初のトゥルーカラーピクセルデータは，第２の減色処理と同じである。即ち，フレームバッファから最初の画素のトゥルーカラーピクセルデータを読み出し（Ｓ１０），そのピクセルデータが属するカラーピクセルのグループを判別する（Ｓ１２）。そして，判別したグループ内のカラーパレットを検索し，式（３）によりトゥルーカラーピクセルデータのＲＧＢ値との差分がそれぞれ閾値より小さいカラーパレットの色を探す（Ｓ２０，２８）。もし閾値より小さいものがない場合は，判別したグループ内の複数の色で式（２）の差分値Ｄが最小の色を検出する（Ｓ２０，２８）。そして，検出したカラーパレットのインデックスを減色画像データＤ２の画素データとして出力し，そのカラーパレットをグループ内の検索順の先頭に変更する（Ｓ２６）。
【００５４】
次の画素のトゥルーカラーピクセルデータをフレームバッファから読み出す（Ｓ３０）。そして，前画素で判別した同じグループ内のカラーパレットを検索し，式（３）によりトゥルーカラーピクセルデータのＲＧＢ値との差分がそれぞれ閾値より小さいカラーパレットの色を探す（Ｓ３２）。前画素と同じグループを先に検索するのは，自然画像やＣＧ画像では，隣接するピクセルの色が前ピクセルと同等の色相，または同等の輝度と色相を有する場合が多いからである。前ピクセルと同じグループを探索対象にすることで，次のトゥルーカラーピクセルデータが属するグループを判別する工程を省略することができる。
【００５５】
式（３）の差分が閾値より小さいカラーパレットが検出されれば（Ｓ３４のＹＥＳ），その検出したカラーパレットのインデックスを減色画像データの画素データとして出力し，検出したカラーパレットをそのグループでの検索順が先頭になるようにルックアップデータを更新する（Ｓ３６）。
【００５６】
一方，式（３）の差分が閾値より小さいカラーパレットを検出できない場合は（Ｓ３４のＮＯ），そのトゥルーカラーピクセルデータについて，どのグループに属するかの判別を行う（Ｓ３８）。この判別方法は，前述のとおり図７のように行う。そして，判別したグループのカラーパレットを検索して，式（３）によりトゥルーカラーピクセルデータのＲＧＢ値との差分がそれぞれ閾値より小さいカラーパレットの色を探す（Ｓ４０）。もし閾値より小さいものがない場合は，判別したグループ内の複数の色で式（２）の差分値Ｄが最小の色を検出する（Ｓ４０）。つまり，工程Ｓ４０は，前述の工程Ｓ２０，Ｓ２８と同じである。
【００５７】
そして，検出したカラーパレットのインデックスを減色画像データＤ２の画素データとして出力し，そのカラーパレットをグループ内の検索順の先頭に変更する（Ｓ４２）。この工程は，前述の工程Ｓ２６と同じある。
【００５８】
このように，工程Ｓ３２で前ピクセルで判別したグループ内に差分が閾値より小さいカラーパレットが存在しない場合は，フレームバッファ内のトゥルーカラーピクセルデータの色が全く異なる色に変化したとみなして，グループの判定からやり直すのが好ましい。
【００５９】
第３の減色処理では，カラーピクセルのグループ判別を行わずに前ピクセルで判別したグループ内から差分が閾値未満のカラーピクセルを検出するので，第１の画像データの隣接ピクセルが同じ色相を，または同じ輝度と色相を繰り返す場合は，変換効率を高くすることができ，減色処理時間を短縮することができる。
【００６０】
以上の実施の形態をまとめると，次の付記のとおりである。
【００６１】
（付記１）
ＲＧＢデータとインデックスを対応させたカラーパレットを，前記ＲＧＢデータのＲ値，Ｇ値，Ｂ値の関係に基づいて複数のグループに分けてルックアップテーブルを生成する分類部と，
前記ルックアップテーブルを格納する格納部と，
ＲＧＢデータを有する画素データが，前記複数のグループのいずれに対応するかを，当該画素データのＲ値，Ｇ値，Ｂ値の関係に基づいて判定し，当該判定したグループ内で前記画素データのＲＧＢデータに類似するＲＧＢデータを検索し，当該検索したＲＧＢデータに対応するインデックスを画素データとして出力する変換部とを有する画像処理装置。
【００６２】
（付記２）
付記１において，
前記複数のグループは，複数の色相グループを有し，
前記分類部は，前記カラーパレットに含まれる複数の色を，当該色のＲＧＢデータのＲ値，Ｇ値，Ｂ値の大きさ順に基づいて，前記複数の色相グループのいずれかに分類する画像処理装置。
【００６３】
（付記３）
付記１において，
前記複数のグループは，グレーグループと複数の色相グループとを有し，
前記分類部は，前記カラーパレットに含まれる複数の色のうち，当該色のＲＧＢデータのＲ値，Ｇ値，Ｂ値のそれぞれの差分の絶対値が基準値より小さい色を，前記グレーグループに分類する画像処理装置。
【００６４】
（付記４）
付記３において，
前記分類部は，さらに，前記カラーパレットに含まれる複数の色を，当該色のＲＧＢデータのＲ値，Ｇ値，Ｂ値の大きさ順に基づいて，前記複数の色相グループのいずれかに分類する画像処理装置。
【００６５】
（付記５）
付記２または４において，
前記色のＲＧＢデータのＲ値，Ｇ値，Ｂ値の大きさ順が，ＲＧＢの順，ＲＢＧの順，ＧＲＢの順，ＧＢＲの順，ＢＲＧの順，ＢＧＲの順を有する画像処理装置。
【００６６】
（付記６）
付記１，２または３において，
前記変換部は，前記画素データに隣接する隣接画素データについては，前記画素データに対して判定されたグループにおいて前記隣接画素データのＲＧＢデータに類似するＲＧＢデータを検索する画像処理装置。
【００６７】
（付記７）
付記６において，
前記変換部は，前記検索で類似するＲＧＢデータを有する色を検出できない場合は，前記第１の画像データの前記画素データが前記複数のグループのいずれに対応するかを，当該画素データのＲ値，Ｇ値，Ｂ値の関係に基づいて判定する画像処理装置。
【００６８】
（付記８）
付記１，２または３において，
前記変換部は，さらに，当該検索したＲＧＢデータを前記グループ内の先頭検索位置に移動して前記ルックアップテーブルを更新する画像処理装置。
【００６９】
（付記９）
付記１，２または３において，
前記変換部は，当該判定されたグループ内での前記画素データのＲＧＢデータに類似するＲＧＢデータの検索を，画素データのＲＧＢデータと前記判定されたグループ内のＲＧＢデータとの差分が最小か否かに基づいて行う画像処理装置。
【００７０】
（付記１０）
付記１，２または３において，
前記変換部は，当該判定されたグループ内での前記画素データのＲＧＢデータに類似するＲＧＢデータの検索を，画素データのＲＧＢデータと前記判定されたグループ内のＲＧＢデータとの差分が基準値より小さいか否かに基づいて行う画像処理装置。
【００７１】
（付記１１）
付記９において，
前記変換部は，画素データのＲＧＢデータと前記判定されたグループ内の複数の色のＲＧＢデータとの差分が基準値より小さくない場合は，当該判定されたグループ内の複数の色のうち前記画素データのＲＧＢデータに類似するＲＧＢデータを有する色の検索を，画素データのＲＧＢデータと前記判定されたグループ内の複数の色のＲＧＢデータとの差分が最小か否かに基づいて行う画像処理装置。
【００７２】
（付記１２）
付記１，２または３において，
前記変換部は，当該判定されたグループ内の複数の色のうち前記画素データのＲＧＢデータに類似するＲＧＢデータを有する色の検索を，画素データのＲＧＢデータと前記判定されたグループ内の複数の色のＲＧＢデータとの輝度の差分が最小か否かに基づいて行う画像処理装置。
【００７３】
（付記１３）
ＲＧＢデータとインデックスを対応させたカラーパレットが，前記ＲＧＢデータのＲ値，Ｇ値，Ｂ値の関係に基づいて複数のグループに分けられたルックアップテーブルを生成し，
ＲＧＢデータを有する画素データが前記複数のグループのいずれに対応するかを，当該画素データのＲ値，Ｇ値，Ｂ値の関係に基づいて判定し，
当該判定されたグループ内で前記画素データのＲＧＢデータに類似するＲＧＢデータを検索し，
当該検索したＲＧＢデータに対応するインデックスを画素データとして出力する工程を，コンピュータに実行させるコンピュータ読み取り可能な画像処理プログラム。
【００７４】
（付記１４）
付記１３において，
前記複数のグループは，複数の色相グループを有し，
前記ルックアップテーブルを生成する工程では，前記カラーパレットの複数の色を，当該色のＲＧＢデータのＲ値，Ｇ値，Ｂ値の大きさ順に基づいて，前記複数の色相グループのいずれかに分類する画像処理プログラム。
【００７５】
（付記１５）
付記１３において，
前記複数のグループは，グレーグループと複数の色相グループとを有し，
前記ルックアップテーブルを生成する工程では，前記カラーパレットの複数の色のうち，当該色のＲＧＢデータのＲ値，Ｇ値，Ｂ値のそれぞれの差分の絶対値が基準値より小さい色を，前記グレーグループに分類し，前記カラーパレットの複数の色を，当該色のＲＧＢデータのＲ値，Ｇ値，Ｂ値の大きさ順に基づいて，前記複数の色相グループのいずれかに分類する画像処理プログラム。
【００７６】
（付記１６）
ＲＧＢデータとインデックスを対応させたカラーパレットが，前記ＲＧＢデータのＲ値，Ｇ値，Ｂ値の関係に基づいて複数のグループに分けられたルックアップテーブルを生成し，
ＲＧＢデータを有する画素データが前記複数のグループのいずれに対応するかを，当該画素データのＲ値，Ｇ値，Ｂ値の関係に基づいて判定し，
当該判定されたグループ内で前記画素データのＲＧＢデータに類似するＲＧＢデータを検索し，
当該検索したＲＧＢデータに対応するインデックスを画素データとして出力する画像処理方法。
【符号の説明】
【００７７】
１２：フレームバッファ                １４：減色器（変換部）
１６：ルックアップテーブル生成部（分類部）
１８：ルックアップテーブル
Ｄ１：第１の画像データ，トゥルーカラー画像データ
Ｄ２：第２の画像データ，減色画像データ
Ｄ３：カラーパレットデータ
【図１】
2012085029.tif 000003
【図２】
2012085029.tif 000004
【図３】
2012085029.tif 000005
【図４】
2012085029.tif 000006
【図７】
2012085029.tif 000007
【図８】
2012085029.tif 000008
【図９】
2012085029.tif 000009
【図１０】
2012085029.tif 000010
【図５】
2012085029.tif 000011
【図６】
2012085029.tif 000012