(57)【要約】  【課題】画像処理装置において、インデックス変換（パレットの作成を含む。）の処理効率を向上するための技術を提供する。  【解決手段】画像処理装置は、スキャンされた画像データの入力を受け付ける制御部１４１と、画像データの階調値のヒストグラムを生成するヒストグラム生成部１４５と、画像データをインデックスカラー形式の画像データに変換するために用いられるパレットを生成するパレット生成部１４３とを有する。ここで、パレット生成部１４３は、ヒストグラム生成部１４５が処理対象の画素の階調値についてヒストグラムを生成する時に、当該階調値が始めて出現した階調値である場合に、当該階調値にインデックスを割り付ける。【選択図】図２
2011044897.tif 000002
【特許請求の範囲】
【請求項１】
多値画像データを処理する画像処理装置であって、
階調値毎にその出現度数を記憶するヒストグラム記憶手段と、
インデックス値毎にその階調値を記憶するパレット記憶手段と、
前記画像データに含まれる画素データ毎に、前記ヒストグラム記憶手段にアクセスして、その階調値の出現度数を出力する、出力手段と、
前記画像データに含まれる画素データ毎に、前記ヒストグラム記憶手段にアクセスして、その階調値の出現度数に１加算する、ヒストグラム生成手段と、
前記出力手段により出力された出現度数が０である場合に、当該階調値にインデックス値を割り当て、前記パレット記憶手段にアクセスして、当該インデックス値の階調値として記憶する、パレット生成手段と、
を有することを特徴とする画像処理装置。
【請求項２】
多値画像データを処理する画像処理装置であって、
階調値毎にその出現度数を記憶するヒストグラム記憶手段と、
インデックス値毎に、前記画像データに含まれる画素データの階調値のビット数よりも所定ビット数小さい階調値を記憶する、パレット記憶手段と、
前記画像データに含まれる画素データ毎に、前記ヒストグラム記憶手段にアクセスして、その階調値を前記所定ビット数削減した階調値と上位の階調値が等しい複数の階調値の出現度数を出力する、出力手段と、
前記画像データに含まれる画素データ毎に、前記ヒストグラム記憶手段にアクセスして、その階調値の出現度数に１加算する、ヒストグラム生成手段と、
前記出力手段により出力された複数の出現度数がいずれも０である場合に、当該階調値を前記所定ビット数削減した階調値にインデックス値を割り当て、前記パレット記憶手段にアクセスして、当該インデックス値の階調値として記憶する、パレット生成手段と、
を有することを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置であって、
前記ヒストグラム記憶手段は、
前記所定ビット数の最小値から最大値までの値ごとに、並列アクセス可能な複数の記憶領域に分割されており、また、前記複数の記憶領域のそれぞれは、前記画像データに含まれる画素データの階調値のビット数よりも前記所定ビット数小さい階調値毎に、その出現度数を記憶し、
前記出力手段は、
前記画像データに含まれる画素データ毎に、前記複数の記憶領域それぞれに並列にアクセスし、その階調値を前記所定ビット数削減した階調値の出現度数を並列に出力する、
ことを特徴とする画像処理装置。
【請求項４】
多値画像データを処理する画像処理装置であって、
前記画像データに含まれる画素データの階調値のビット数よりも所定ビット数小さい階調値毎に、その出現度数を記憶する、ヒストグラム記憶手段と、
インデックス値毎に、前記画像データに含まれる画素データの階調値のビット数よりも所定ビット数小さい階調値を記憶する、パレット記憶手段と、
前記画像データに含まれる画素データ毎に、前記ヒストグラム記憶手段にアクセスして、その階調値を前記所定ビット数削減した階調値の出現度数を出力する、出力手段と、
前記画像データに含まれる画素データ毎に、前記ヒストグラム記憶手段にアクセスして、その階調値を前記所定ビット数削減した階調値の出現度数に１加算する、ヒストグラム生成手段と、
前記出力手段により出力された出現度数が０である場合に、当該階調値を前記所定ビット数削減した階調値にインデックス値を割り当て、前記パレット記憶手段にアクセスして、当該インデックス値の階調値として記憶する、パレット生成手段と、
を有することを特徴とする画像処理装置。
【請求項５】
請求項１〜４いずれか一項に記載の画像処理装置であって、
１フレームの画像データ毎に、ヒストグラムおよびパレットが生成される、
ことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力された画像データをインデックスカラー形式の画像データに変換する技術に関する。
【背景技術】
【０００２】
スキャナー、プリンター、コピー機、複合機等の画像処理装置において、メモリーなどの記憶装置で保持する画像データのサイズを削減するため、パレットと呼ばれるテーブル（色ごとに色番号としてのインデックスが対応付けられている）を用いて、入力された画像データ（例えば、ＲＧＢ各２４ビットのフルカラーの画像データ）を、当該画像データに含まれる各画素をインデックスで表現したインデックスカラー形式の画像データに変換する技術が知られている。
【０００３】
また、画像処理装置において、入力された画像データに対して、当該画像データに含まれる各画素の色の出現頻度分布に基づいて所定の画像処理を行うため、入力された画像データに含まれる各画素の色のヒストグラムを生成する技術が知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−３７２７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、入力された画像データのヒストグラム生成も、インデックス変換（パレットの作成を含む。）も、入力された画像データに含まれる各画素について処理を行う必要があるため、画像処理装置の処理負荷が大きい。例えば、ヒストグラム生成およびインデックス変換（パレットの作成を含む。）の両方を行う場合には、画像処理装置の処理負荷がより大きい。
【０００６】
本発明は、インデックス変換（パレットの作成を含む。）の処理効率を向上するための技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するための本発明の第１態様は、多値画像データを処理する画像処理装置であって、階調値毎にその出現度数を記憶するヒストグラム記憶手段と、インデックス値毎にその階調値を記憶するパレット記憶手段と、前記画像データに含まれる画素データ毎に、前記ヒストグラム記憶手段にアクセスして、その階調値の出現度数を出力する、出力手段と、前記画像データに含まれる画素データ毎に、前記ヒストグラム記憶手段にアクセスして、その階調値の出現度数に１加算する、ヒストグラム生成手段と、前記出力手段により出力された出現度数が０である場合に、当該階調値にインデックス値を割り当て、前記パレット記憶手段にアクセスして、当該インデックス値の階調値として記憶する、パレット生成手段と、を有することを特徴とする。
【０００８】
上記の課題を解決するための本発明の第２態様は、多値画像データを処理する画像処理装置であって、階調値毎にその出現度数を記憶するヒストグラム記憶手段と、インデックス値毎に、前記画像データに含まれる画素データの階調値のビット数よりも所定ビット数小さい階調値を記憶する、パレット記憶手段と、前記画像データに含まれる画素データ毎に、前記ヒストグラム記憶手段にアクセスして、その階調値を前記所定ビット数削減した階調値と上位の階調値が等しい複数の階調値の出現度数を出力する、出力手段と、前記画像データに含まれる画素データ毎に、前記ヒストグラム記憶手段にアクセスして、その階調値の出現度数に１加算する、ヒストグラム生成手段と、前記出力手段により出力された複数の出現度数がいずれも０である場合に、当該階調値を前記所定ビット数削減した階調値にインデックス値を割り当て、前記パレット記憶手段にアクセスして、当該インデックス値の階調値として記憶する、パレット生成手段と、を有することを特徴とする。
【０００９】
ここで、上記の画像処理装置であって、前記ヒストグラム記憶手段は、前記所定ビット数の最小値から最大値までの値ごとに、並列アクセス可能な複数の記憶領域に分割されており、また、前記複数の記憶領域のそれぞれは、前記画像データに含まれる画素データの階調値のビット数よりも前記所定ビット数小さい階調値毎に、その出現度数を記憶し、前記出力手段は、前記画像データに含まれる画素データ毎に、前記複数の記憶領域それぞれに並列にアクセスし、その階調値を前記所定ビット数削減した階調値の出現度数を並列に出力する、ことを特徴としていてもよい。
【００１０】
上記の課題を解決するための本発明の第３態様は、多値画像データを処理する画像処理装置であって、前記画像データに含まれる画素データの階調値のビット数よりも所定ビット数小さい階調値毎に、その出現度数を記憶する、ヒストグラム記憶手段と、インデックス値毎に、前記画像データに含まれる画素データの階調値のビット数よりも所定ビット数小さい階調値を記憶する、パレット記憶手段と、前記画像データに含まれる画素データ毎に、前記ヒストグラム記憶手段にアクセスして、その階調値を前記所定ビット数削減した階調値の出現度数を出力する、出力手段と、前記画像データに含まれる画素データ毎に、前記ヒストグラム記憶手段にアクセスして、その階調値を前記所定ビット数削減した階調値の出現度数に１加算する、ヒストグラム生成手段と、前記出力手段により出力された出現度数が０である場合に、当該階調値を前記所定ビット数削減した階調値にインデックス値を割り当て、前記パレット記憶手段にアクセスして、当該インデックス値の階調値として記憶する、パレット生成手段と、を有することを特徴とする。
【００１１】
なお、上記のいずれかの画像処理装置では、１フレームの画像データ毎に、ヒストグラムおよびパレットが生成される。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１実施形態に係る画像処理装置の、ハードウェアの概略構成の一例を示すブロック図。
【図２】画像処理装置におけるヒストグラム生成およびパレット生成、インデックス変換に関連する構成の一例を示すブロック図。
【図３】画像処理装置におけるヒストグラム生成およびパレット生成の処理手順を説明する図。
【図４】画像処理装置におけるインデックス変換の処理手順を説明する図。
【図５】ヒストグラムおよびパレットを格納するＳＲＡＭのサイズを説明する図。
【図６】ヒストグラムおよびデータ量を削減したパレットを格納するＳＲＡＭのサイズを説明する図（変形例１）。
【図７】データ量を削減したパレット作成の処理手順を説明する図（変形例１）。
【図８】ヒストグラムを格納するＳＲＡＭの構成およびアクセス手順を説明する図（変形例１）。
【図９】データ量を削減したヒストグラムおよびパレットを格納するＳＲＡＭのサイズを説明する図（変形例２）。
【図１０】画素データのデータ量を削減した場合のヒストグラムおよびパレット作成の手順を説明する図（変形例２）。
【図１１】本発明の第２実施形態に係る画像処理装置におけるパレット生成およびインデックス変換に関連する構成の一例を示すブロック図。
【図１２】画像処理装置におけるパレット生成およびインデックス変換の処理手順を説明する図。
【発明を実施するための形態】
【００１３】
＜第１実施形態＞
本発明の第１実施形態について、図面を参照しながら説明する。
【００１４】
図１は、本発明の第１実施形態に係る画像処理装置１の、ハードウェアの概略構成の一例を示すブロック図である。本実施形態の画像処理装置１は、スキャナー機能と印刷機能を有するいわゆるコピー機である。
【００１５】
画像処理装置１は、コントローラー１０と、スキャナー２０と、印刷エンジン３０と、操作パネル４０とを有する。
【００１６】
コントローラー１０は、ＣＰＵ１１と、ＤＲＡＭ１２と、ＲＯＭ１３、メモリー制御ＡＳＩＣ（Application Specific Integrated Circuit）１４と、スキャナー制御ＡＳＩＣ１５と、印刷制御ＡＳＩＣ１６と、入出力（Ｉ／Ｏ）制御ＡＳＩＣ１７と、ネットワークインターフェイス（Ｉ／Ｆ）１８とを有する。
【００１７】
ＣＰＵ１１は、所定のプログラムを実行して、画像処理装置１を統合的に制御する。ＤＲＡＭ１２は、データおよびプログラム等を一時的に記憶する揮発性メモリーであり、例えば、ＤＤＲ−ＳＤＲＡＭである。ＲＯＭ１３は、データやプログラム等を格納している不揮発性メモリーであり、例えば、フラッシュメモリーである。ＲＯＭ１３は、メモリー制御ＡＳＩＣ１４ではなく、Ｉ／Ｏ制御ＡＳＩＣ１７に接続されていてもよい。
【００１８】
メモリー制御ＡＳＩＣ１４は、接続されているＤＲＡＭ１２およびＲＯＭ１３へのアクセスを制御するユニットである。メモリー制御ＡＳＩＣ２３は、例えば、スキャナー制御ＡＳＩＣ１５から出力された画像データを、ＤＲＡＭ１２に格納する。また、例えば、ＤＲＡＭ１２に格納された画像データを、印刷制御ＡＳＩＣ１６に出力する。また、例えば、ネットワークＩ／Ｆ１８およびＩ／Ｏ制御ＡＳＩＣ１７を介してネットワーク上のホストＰＣから送られてきた、印刷対象の画像データをＤＲＡＭ１２に格納する。
【００１９】
なお、後述するように、本実施形態では、メモリー制御ＡＳＩＣ１４は、スキャナー制御ＡＳＩＣ１５から出力された画像データについて、ヒストグラムの生成、パレットの生成、およびインデックス変換を行うための機能を有する。
【００２０】
スキャナー制御ＡＳＩＣ１５は、スキャナー２０による画像読み取りを制御し、コントローラー１０において処理可能な形式の画像データを生成するユニットである。スキャナー制御ＡＳＩＣ１５は、例えば、スキャナー２０が有するイメージセンサー、モーター、Ａ／Ｄ変換器、ＡＤＦ（Auto Document Feeder）などを制御して、原稿の画像読み取りを行う。また、例えば、スキャナー２０から出力された画像データに、所定の画像処理（例えば、シェーディング補正、ガンマ補正など）を施し、メモリー制御ＡＳＩＣ１４に出力する。
【００２１】
印刷制御ＡＳＩＣ１６は、印刷エンジン３０において処理可能な印刷データを生成し、印刷エンジン３０による印刷を制御するユニットである。印刷制御ＡＳＩＣ１６は、例えば、ＤＲＡＭ１２から画像データを読み出し、所定の画像処理（例えば、色変換、圧縮、伸張、２値化）を施して印刷データを生成する。そして、生成した印刷データを印刷エンジン３０に送信して印刷を実行させる。
【００２２】
Ｉ／Ｏ制御ＡＳＩＣ１７は、Ｉ／Ｏ装置やＩ／Ｆ装置を制御するユニットである。Ｉ／Ｏ装置としては、例えば、操作パネル４０、ハードディスク装置等がある。Ｉ／Ｆ装置としては、ネットワークＩ／Ｆ１８、ＵＳＢＩ／Ｆ、パラレルＩ／Ｆ等がある。Ｉ／Ｏ制御ＡＳＩＣ１７は、例えば、ネットワークＩ／Ｆ１８を介して受信した画像データを、ＤＲＡＭ１２にＤＭＡ（Direct Memory Access）転送する。また、例えば、操作パネル４０から出力される信号をＣＰＵ１１に転送したり、ＣＰＵ１１から送られた描画データを操作パネル４０に転送したりする。
【００２３】
ネットワークＩ／Ｆ１８は、ホストＰＣなどのネットワーク上の装置と各種データの送受信を行うユニットである。ネットワークＩ／Ｆ１８は、例えば、ホストＰＣから受信した印刷ジョブをＤＲＡＭ１２に転送する。
【００２４】
スキャナー２０は、筐体の上面に画像読取面を備えたいわゆるフラットベッド型イメージスキャナーである。スキャナー２０は、ＡＤＦを備えていてもよい。ＡＤＦを使用しない場合、スキャナー２０は、画像読取面上に固定された原稿に下から光を当てて、イメージセンサーを移動させながら画像を読み取る。また、ＡＤＦを使用する場合、スキャナー２０は、イメージセンサーを所定の位置に固定し、ＡＤＦにより原稿を搬送しながら画像を読み取る。スキャナー２０は、読み取った画像データをＡ／Ｄ変換して、スキャナー制御ＡＳＩＣ１５に出力する。
【００２５】
印刷エンジン３０は、印刷制御ＡＳＩＣ１６から供給されたデータを、印刷媒体に印刷するユニットである。印刷エンジン３０は、例えば、トナーカートリッジ、感光体ドラム、レーザー光照射機構、転写機構、紙送り機構、給排紙機構などを有するレーザー方式のエンジンである。もちろん、印刷エンジン３０は、レーザー方式に限られず、インクジェット方式であってもよい。
【００２６】
操作パネル４０は、ユーザーと画像処理装置１との間の入出力インターフェイスとして、画像処理装置１の筐体に設けられているユニットである。操作パネル４０は、例えば、液晶ディスプレイ（Liquid Crystal Display）や有機ＥＬディスプレイ（Electro-Luminescence Display）などのディスプレイと、タッチパネルと、ハードスイッチ等を有する。
【００２７】
上記の画像処理装置１の構成は、本願発明の特徴を説明するにあたって主要構成を説明したのであって、上記に限られない。また、一般的な画像処理装置が備える他の構成を排除するものではない。
【００２８】
図２は、画像処理装置１におけるヒストグラム生成およびパレット生成、インデックス変換に関連する構成の一例を示すブロック図である。なお、スキャナー制御ＡＳＩＣ１５から出力される画像データは、画素データ（ＲＧＢ各色の階調値を有するデータ）で構成されている。
【００２９】
メモリー制御ＡＳＩＣ１４は、制御部１４１と、インデックス変換部１４２と、パレット生成部１４３と、ＳＲＡＭ１４４と、ヒストグラム生成部１４５と、ＳＲＡＭ１４６とを有する。
【００３０】
制御部１４１は、メモリー制御ＡＳＩＣ１４を統合的に制御するとともに、ＤＲＡＭ１２へのアクセスを制御する回路である。もちろん、ＤＲＡＭ１２へのアクセス制御を行う部分は、制御部１４１と独立していてもよい。
【００３１】
例えば、制御部１４１は、スキャナー制御ＡＳＩＣ２０から順次出力される画素データを受け付ける。また、受け付けた各画素データと同一の画素データを、ＤＲＡＭ１２、ヒストグラム生成部１４５、およびパレット生成部１４３にそれぞれ出力する。また、制御部１４１は、パレット生成部１４３によるパレット作成が終了すると、ＤＲＡＭ１２に格納した１フレーム（１ページ）の画像データに含まれる画素データを順次リードし、インデックス変換部１４２に出力する。
【００３２】
また、制御部１４１は、インデックス変換部１４２から出力されるインデックス変換後の画像データの各インデックス値を順次受け付け、ＤＲＡＭ１２に出力する。また、制御部１４１は、作成が完了したパレットをＳＲＡＭ１４４から取得し、インデックス変換が完了した画像データに対応付けて、ＤＲＡＭ１２に格納する。また、作成が完了したヒストグラムをＳＲＡＭ１４６から取得し、インデックス変換された画像データと対応付けて、ＤＲＡＭ１２に格納してもよい。
【００３３】
ヒストグラム生成部１４５は、制御部１４１から順次出力される画素データに基づいて、階調値毎の画素の度数（頻度）を、ＳＲＡＭ１４６に記録する回路である。ヒストグラム生成部１４５は、制御部１４１から画素データを受け付けると、当該画素データの階調値に対応する度数データをＳＲＡＭ１４６からリードしてパレット生成部１４３に出力する。その後、リードした度数データに１加算した度数データをＳＲＡＭ１４６にライトする。なお、ヒストグラム生成部１４５は、１フレーム（１ページ）分の画像データ毎にヒストグラムを生成する。
【００３４】
ＳＲＡＭ１４６は、画像データに含まれる画素データの階調値のヒストグラムを格納するための揮発性メモリーである。ＳＲＡＭ１４６は、アドレス（階調値）ごとにデータ（度数）を格納する領域を有する（図３参照）。
【００３５】
パレット生成部１４３は、制御部１４１から順次出力される画素データと、当該画素データについてヒストグラム生成部１４５から出力される度数データに基づいて、階調値毎にインデックス値を割り付け、各インデックス値に対応する階調値をＳＲＡＭ１４４に記録する回路である。パレット生成部１４３は、処理対象の画素データ（階調値）の度数データが0である場合（すなわち、初めてその階調値の画素を検出した場合）に、当該階調値にインデックスを割り当て、当該階調値をインデックス値に対応付けてＳＲＡＭ１４４に格納する。なお、パレット生成部１４３は、１フレーム（１ページ）分の画像データ毎にパレットを生成する。
【００３６】
ＳＲＡＭ１４４は、画像データに含まれる画素データの階調値とインデックス値とを対応づけたパレットを格納するための揮発性メモリーである。ＳＲＡＭ１４４は、アドレス（インデックス値）ごとにデータ（階調値）を格納する領域を有する（図３参照）。
【００３７】
インデックス変換部１４２は、制御部１４１から順次出力される画素データを、ＳＲＡＭ１４４のパレットを参照してインデックス値に変換し、制御部１４１を介してＤＲＡＭ１２に出力する回路である。
【００３８】
ここで、ＳＲＡＭ１４６およびＳＲＡＭ１４４について具体例を挙げて説明する。図５は、ヒストグラムおよびパレットを格納するＳＲＡＭのサイズを説明する図である。本図は、画像データ（A4/600dpi/32Mpixel/RGB各8bit）を8bitのインデックスカラー画像データに変換する場合を示している。
【００３９】
ＳＲＡＭ１４６は、少なくとも、25bit（225は32Mpixelを表現できる）の度数データを、224（16777216階調）アドレス分格納できる容量である。
【００４０】
また、ＳＲＡＭ１４４は、少なくとも、24bit（RGB各8bit）の階調値データを、28（256のインデックス）アドレス分格納できる容量である。
【００４１】
上記のメモリー制御ＡＳＩＣ１４の構成は、本願発明の特徴を説明するにあたって主要構成を説明したのであって、上記に限られない。また、一般的なメモリー制御ＡＳＩＣが備える他の構成を排除するものではない。例えば、インデックス変換部１４２のＳＲＡＭ１４４へのアクセス制御を行う部分、パレット生成部１４３のＳＲＡＭ１４４へのアクセス制御を行う部分は、独立した１つの回路となっていてもよい。また、ヒストグラム生成部１４５のＳＲＡＭ１４６へのアクセス制御を行う部分は、独立した１つの回路となっていてもよい。
【００４２】
図３は、画像処理装置１におけるヒストグラム生成およびパレット生成の処理手順を説明する図である。本図は、１フレームの画像データを処理する場合を説明している。
【００４３】
制御部１４１は、スキャナー制御ＡＳＩＣ１５から順次出力される画素データを受け付け、各画素データと同一の画素データを、ＤＲＡＭ１２、ヒストグラム生成部１４５、およびパレット生成部１４３にそれぞれ出力する。すなわち、制御部１４１は、画素データを順次ＤＲＡＭ１２にライトして、１フレームの画像データ１２１をＤＲＡＭ１２に格納する。また、この制御部１４１の処理と並行して、画像データ１２１について、ヒストグラム生成部１４５によりヒストグラムが生成され、パレット生成部１４３によりパレットが生成される。
【００４４】
ヒストグラム生成部１４５は、画素データごとにＳ１〜Ｓ４の処理を実行する。
【００４５】
Ｓ１では、ヒストグラム生成部１４５は、制御部１４１から出力された画素データを受け付ける。
【００４６】
Ｓ２では、ヒストグラム生成部１４５は、Ｓ１で受け付けた画素データの階調値をアドレスとして設定して、当該アドレスに格納されている度数データをＳＲＡＭ１４６からリードする。
【００４７】
Ｓ３では、ヒストグラム生成部１４５は、Ｓ２でリードした度数データをパレット生成部１４３に出力する。
【００４８】
Ｓ４では、ヒストグラム生成部１４５は、Ｓ２でリードした度数データに１を加算する。また、Ｓ１で受け付けた画素データの階調値をアドレスとして設定して、ＳＲＡＭ１４６の当該アドレスに、１加算後の度数データをライトする。
【００４９】
パレット生成部１４３は、画素データごとにＳ１１〜Ｓ１３の処理を実行する。
【００５０】
Ｓ１１では、パレット生成部１４３は、制御部１４１から出力された画素データを受け付け、また、当該画素データに対応する、Ｓ３でヒストグラム生成部１４５から出力された度数データを受け付ける。
【００５１】
Ｓ１２では、まず、パレット生成部１４３は、Ｓ１１で受け付けた度数データが0であるか否かを判定する。そして、度数データが0である場合、パレット生成部１４３は、Ｓ１１で受け付けた画素データにインデックス値を割り当て、当該インデックス値をアドレスとして設定して、ＳＲＡＭ１４４の当該アドレスに、画素データの階調値をライトする。そして、処理をＳ１３に進める。一方、度数が0でない場合、パレット生成部１４３は、インデックス値を割り当て済みと判定し、次の画素データの処理のため、処理をＳ１１に戻す。
【００５２】
本実施形態では、インデックスの数は、予め定めた数（例えば、２５６個）である。パレット生成部１４３は、最小のインデックス値から昇順に（例えば、０〜２５５の順に）割り当てを行う。また、パレット生成部１４３は、Ｓ１２において割り当てるべきインデックス値を保持している。もちろん、インデックス値の割り当て順序は、昇順に限られず、例えば、降順であってもよいし、所定の規則に基づく順序であってもよい。
【００５３】
Ｓ１３では、パレット生成部１４３は、Ｓ１２において割り当て済みのインデックス値を１インクリメントする。ここで、パレット生成部１４３は、１インクリメントした後のインデックス値が、予め定めた最大値（例えば、インデックス値が２５６個の場合、２５５）を超え、かつ、処理対象の画素データが１フレームの画像データ中の最後の画素でない場合、パレットの作成を中止する。すなわち、パレット生成部１４３は、次の画素データ以降Ｓ１１〜１３の処理を行わない。
【００５４】
上記のようにして、１フレームの画像データがＤＲＡＭ１２に格納され、また、当該画像データのヒストグラムおよびパレットが生成される。なお、パレットの作成が中止された場合、制御部１４１は画素データをパレット生成部１４３に出力しないようにしてもよいし、パレット生成部１４３は画素データを受け付けないようにしてもよい。
【００５５】
図４は、画像処理装置１におけるインデックス変換の処理手順を説明する図である。本図は、図３におけるパレット作成の完了後、１フレームの画像データを処理する場合を説明している。
【００５６】
制御部１４１は、パレット生成部１４３によるパレット生成が完了した場合、ＤＲＡＭ１２に格納されている画像データ１２１に含まれる画素データを順次リードしてインデックス変換部１４２に出力する。また、インデックス変換部１４２から順次出力されるインデックス値をＤＲＡＭ１２にライトして、画像データ１２１をインデックス変換したインデックス画像データ１２２をＤＲＡＭ１２に格納する。なお、インデックス画像データ１２２の生成が終了した場合、画像データ１２１をＤＲＡＭ１２から削除してよい。
【００５７】
インデックス変換部１４２は、画素データごとにＳ２１〜Ｓ２３の処理を実行する。
【００５８】
Ｓ２１では、インデックス変換部１４２は、制御部１４１から出力された画素データを受け付ける。
【００５９】
Ｓ２２では、インデックス変換部１４２は、インデックス値を最小値から最大値まで（例えば、０〜２５５）順次変化させ、インデックス値（アドレス）毎に、ＳＲＡＭ１４４から階調値データをリードする。また、インデックス変換部１４２は、リードした階調値データ毎に、当該階調値データとＳ２１で受け付けた画素データの階調値との比較を行い、階調値が一致するインデックス値を特定する。すなわち、インデックス変換部１４２は、階調値が一致するインデックス値が見つかるまで、繰り返しＳＲＡＭ１４４にアクセスする。
【００６０】
Ｓ２３では、インデックス変換部１４２は、Ｓ２１で受け付けた画素データに対応するＳ２２で特定したインデックス値を、制御部１４１に出力する。
【００６１】
上記のようにして、１フレームの画像データ１２１が、インデックス画像データ１２２に変換されてＤＲＡＭ１２に格納される。なお、制御部１４１は、インデックス画像データ１２２の生成の完了後、パレットをＳＲＡＭ１４４から読み出し、当該インデックス画像データ１２２と関連付けて、ＤＲＡＭ１２に格納する。
【００６２】
以上、本発明の第１実施形態について説明した。本実施形態によれば、インデックス変換（パレットの作成を含む。）の処理効率を向上することができる。すなわち、本実施形態では、ヒストグラム生成と並行して、ヒストグラムの値を参照しながらパレット作成が行われる。このような構成により、パレット作成時に、画素データ毎に、当該階調値に対応するインデックス値が割り当て済みであるか否か判定する必要がなくなり、インデックス変換処理が全体的に効率化される。
【００６３】
ところで、上記の第１実施形態では、インデックス変換部１４２は、画素データ毎に、対応するインデックス値が見つかるまで繰り返しＳＲＡＭ１４４にアクセスしている（図４のＳ２２）。そのため、例えば、１フレームの画像データにおいて、インデックス値が大きい階調値の画素データの割合が多い場合には、処理負荷が大きくなる。
【００６４】
そこで、複数のインデックス値（アドレス）の階調値データを並列にリードできるようにＳＲＡＭ１４４を構成するとともに、並列にリードした各階調値データと処理対象の画素データの階調値とを並列に比較できるようにインデックス変換部１４２を構成してもよい。
【００６５】
具体的には、例えば、24bit（RGB各8bit）の階調値データを、28（256のインデックス）アドレス分格納できる容量が必要な場合、ＳＲＡＭ１４４を、24bitの階調値データを格納するフリップフロップ回路を256個設けた構成とする。各フリップフロップ回路は、それぞれ0〜256のインデックス値に対応する。また、各フリップフロップ回路には並列アクセスできる構成とする。
【００６６】
インデックス変換部１４２には、各フリップフロップ回路に対応する比較回路を設ける。インデックス変換部１４２は、処理対象の画素データを各比較回路に入力し、また、各フリップフロップ回路から並列に読み出された階調値データを各比較回路に入力する。そして、各比較回路から並列に出力される比較結果を参照して、処理対象の画素データのインデックス値を特定する。
【００６７】
上記のようにＳＲＡＭ１４４とインデックス変換部１４２を構成すれば、各画素データのインデックス値を特定するためにＳＲＡＭ１４４にアクセスする回数は１回となり、処理負荷が軽減される。
【００６８】
次に、上記の第１実施形態の変形例（変形例１、２）について説明する。
【００６９】
第１実施形態では、元画像データの階調数（図５の例では、24bit）をそのまま使用して、パレット作成が行われる。すなわち、インデックスの最大数（図５の例では、256個）に比べて出現が予想される階調数が大幅に多いため、パレット生成中に割り当て可能なインデックスが足りなくなり、パレットを完成できない可能性が高い。
【００７０】
そこで、変形例１では、パレット生成の際に、元画像データの階調数を削減する。変形例２では、ヒストグラム生成の際に、元画像データの階調数を削減する。以下、具体的に、第１実施形態と異なる点を中心に説明する。
【００７１】
＜変形例１＞
本変形例では、図６に示すように、ＳＲＡＭ１４４は、階調数の異なる３つのＳＲＡＭ１４４ａ〜ｃにより構成される。
【００７２】
ＳＲＡＭ１４４ａは、図５のＳＲＡＭ１４４と同様に、24bit（RGB各8bit）の階調値データを、28（256のインデックス）アドレス分格納できる容量である。ＳＲＡＭ１４４ｂは、21bit（RGB各7bit、RGB各1bit削減）の階調値データを、28（256のインデックス）アドレス分格納できる容量である。ＳＲＡＭ１４４ｃは、18bit（RGB各8bit、RGB各2bit削減）の階調値データを、28（256のインデックス）アドレス分格納できる容量である。
【００７３】
ヒストグラム生成部１４５は、制御部１４１から画素データを受け付けると、各ＳＲＡＭ１４４ａ〜ｃの階調数に応じて、必要な数の度数データをＳＲＡＭ１４６からリードし、パレット生成部１４３に出力する。
【００７４】
具体的には、ヒストグラム生成部１４５は、階調数24bitについては、処理対象の画素データの階調値（24bit）をアドレスとして設定して、ＳＲＡＭ１４６から度数データを１個リードし、パレット生成部１４３に出力する。
【００７５】
また、ヒストグラム生成部１４５は、階調数21bitについては、処理対象の画素データの階調値（24bit）の所定の3bit（RGB各下位1bit）を最小値から最大値まで変化させ、各階調値をアドレスとして設定して度数データを８個リードし、パレット生成部１４３に出力する。
【００７６】
また、ヒストグラム生成部１４５は、階調数18bitについては、処理対象の画素データの階調値（24bit）の所定の6bit（RGB各下位2bit）を最小値から最大値まで変化させ、各階調値をアドレスとして設定して度数データを６４個リードし、パレット生成部１４３に出力する。
【００７７】
例えば、図７に示すように、パレット生成において階調数24bitを21bitに削減する場合、ＳＲＡＭ１４６の階調値（アドレス）を、連続する８階調毎のグループとして扱う。ヒストグラム生成部１４５は、度数データを読み出す際に、処理対象の画素データの階調値が属するグループの度数データを８個リードする。そして、リードした８階調分の度数データを全てパレット生成部１４３に出力する。同様に、階調数24bitを18bitに削減する場合は、連続する６４階調分の度数データが１つの度数データとして扱われる。
【００７８】
なお、ヒストグラム生成部１４５は、各ＳＲＡＭ１４４ａ〜ｃの階調数について、必要な数の度数データをパレット生成部１４３に出力した後、上述の第１実施形態と同様に、画素データの階調値に対応する度数データを１加算して、ＳＲＡＭ１４６に格納する。
【００７９】
パレット生成部１４３は、制御部１４１から出力された画素データと、当該画素データについてヒストグラム生成部１４５から出力された、各ＳＲＡＭ１４４ａ〜ｃの階調数ごとの度数データとに基づいて、階調値毎にインデックス値を割り付け、各インデックス値に対応する階調値をＳＲＡＭ１４４ａ〜ｃに格納する。
【００８０】
具体的には、パレット生成部１４３は、階調数24bitのパレットについては、ヒストグラム生成部１４５から出力された１個の度数データが0である場合に、画素データの階調値（24bit）にインデックス値を割り当て、当該インデックス値をアドレスとして画素データをＳＲＡＭ１４４ａに格納する。
【００８１】
また、パレット生成部１４３は、階調数21bitのパレットについては、ヒストグラム生成部１４５から出力された８個の度数データが全て0である場合に、画素データの階調値（24bit）にインデックス値を割り当てる。また、図７に示すように、パレット生成部１４３は、画素データ（24bit、RGB各8bit）のRGB各下位1bitを削減し、画素データ（21bit、RGB各7bit）に変更する。そして、割り当てたインデックス値をアドレスとして設定し、データ削減後の画素データをＳＲＡＭ１４４ｂに格納する。
【００８２】
また、パレット生成部１４３は、階調数18bitのパレットについては、ヒストグラム生成部１４５から出力された６４個の度数データが全て0である場合に、画素データの階調値（24bit）にインデックス値を割り当てる。また、パレット生成部１４３は、画素データ（24bit、RGB各8bit）のRGB各下位2bitを削減し、画素データ（18bit、RGB各6bit）に変更する。また、割り当てたインデックス値をアドレスとして設定し、データ削減後の画素データをＳＲＡＭ１４４ｃに格納する。
【００８３】
上記のようにして、パレット生成部１４３は、各階調数のパレットを作成する。そして、作成が完了した（インデックスの割り当てが足りた）パレットのうち、階調数が最も大きいパレットを、インデックス変換に使用するパレットとして選択する。なお、インデックス変換部１４２は、この選択されたパレットのＳＲＡＭを参照しながら、元画像データのインデックス変換を行う。
【００８４】
上記の変形例１によれば、元画像データの階調数のままでは、インデックスの割り当てが足りずにパレットを作成できない場合であっても、階調数を減らすことにより、パレットを作成することができる。その結果、画像処理装置１において画像データをインデックス画像データとして保持することができ、メモリーの空き容量をできる限り大きくすることができる。
【００８５】
ところで、上記の変形例１では、ヒストグラム生成部１４５による、度数データのリードのためのＳＲＡＭ１４６へのアクセス回数は、処理対象の１つの画素データについて、階調数（24bit、21bit、18bit）ごとに、それぞれ、１回、８回、６４回である。そのため、ＳＲＡＭ１４６へのアクセス処理の負荷が大きくなる。
【００８６】
そこで、ＳＲＡＭ１４６を、複数の部分に分割して構成し、連続する階調値の度数データを並列にリードできるようにしてもよい。
【００８７】
具体的には、図８に示すように、ＳＲＡＭ１４６を、８個のＳＲＡＭデバイス０〜７で構成する。各ＳＲＡＭデバイスは、25bitの度数データを、221（RGB各7bit、2097152階調）アドレス分格納できる容量である。各ＳＲＡＭデバイスには、RGB各下位1bitが等しい階調値の度数データが格納される。
【００８８】
ＳＲＡＭデバイス０には、RGB各下位1bitが000の階調値の度数データが格納される。ＳＲＡＭデバイス１には、RGB各下位1bitが001の階調値の度数データが格納される。ＳＲＡＭデバイス２には、RGB各下位1bitが010の階調値の度数データが格納される。ＳＲＡＭデバイス３には、RGB各下位1bitが011の階調値の度数データが格納される。ＳＲＡＭデバイス４には、RGB各下位1bitが100の階調値の度数データが格納される。ＳＲＡＭデバイス５には、RGB各下位1bitが101の階調値の度数データが格納される。ＳＲＡＭデバイス６には、RGB各下位1bitが110の階調値の度数データが格納される。ＳＲＡＭデバイス７には、RGB各下位1bitが111の階調値の度数データが格納される。
【００８９】
ヒストグラム生成部１４５は、階調数24bitのパレット作成のために度数データをリードする場合、処理対象の画素データのRGB各下位1bitをデバイスセレクト信号として設定するとともに、RGB各上位7bitをアドレスとして設定し、１個のＳＲＡＭデバイスから度数データを１個リードする。
【００９０】
また、ヒストグラム生成部１４５は、階調数21bitのパレット作成のために度数データをリードする場合、処理対象の画素データのRGB各下位1bitの最小値から最大値（000〜111）までをデバイスセレクト信号として設定するとともに、RGB各上位7bitをアドレスとして設定し、８個のＳＲＡＭデバイスから度数データを並列に８個リードする。
【００９１】
ヒストグラム生成部１４５は、階調数18bitのパレット作成のために度数データをリードする場合、処理対象の画素データのRGB各下位1bitの最小値から最大値（000〜111）までをデバイスセレクト信号として設定する。また、RGB各上位7bitのうち各下位1bitを最小値から最大値まで（000〜111）順次変化させて、８個のＳＲＡＭデバイスから度数データを並列に８個リードする処理を８回行う。
【００９２】
上記のようにＳＲＡＭ１４６を構成すれば、ヒストグラム生成部１４５による、度数データのリードのためのＳＲＡＭ１４６へのアクセス回数を削減することができる。上記の例では、アクセス回数は、階調数（24bit、21bit、18bit）ごとに、それぞれ、１回、１回、８回となる。
【００９３】
なお、上記の変形例１では、階調数（24bit、21bit、18bit）ごとにＳＲＡＭ１４４ａ〜ｃを設けているが、ＳＲＡＭ１４４ｂまたはＳＲＡＭ１４４ｃのいずれか１つを設けた構成としてもよい。また、ＳＲＡＭ１４４ａと、ＳＲＡＭ１４４ｂまたはＳＲＡＭ１４４ｃのいずれか１つとを設けた構成としてもよい。このようにすれば、ＳＲＡＭを削減することができる。もちろん、上記の変形例１では、削減した階調数として、21bitおよび18bitを採用しているが、さらに小さい階調数であってもよい。
【００９４】
＜変形例２＞
本変形例では、図９に示すように、ヒストグラムのＳＲＡＭ１４４およびパレットのＳＲＡＭ１４６の両方の容量を削減する。ＳＲＡＭ１４４の構成は、図６のＳＲＡＭ１４４ｂと同様である。
【００９５】
ＳＲＡＭ１４６は、25bit（225は32Mpixを表現できる）の度数データを、221（2097152階調）アドレス分格納できる容量である。
【００９６】
ヒストグラム生成部１４５は、制御部１４１から画素データ（24bit）を受け付けると、図１０に示すように、RGB各下位1bitを削除する。そして、当該画素データ（21bit）をアドレスとして設定し、ＳＲＡＭ１４６から度数データをリードしてパレット生成部１４３に出力する。また、リードした度数に１加算した度数をＳＲＡＭ１４６にライトする。
【００９７】
パレット生成部１４３は、制御部１４１から画素データ（24bit）を受け付けると、図１０に示すように、RGB各下位1bitを削除する。また、ヒストグラム生成部１４５から出力された、処理対象の画素データ（21bit）の度数データが0である場合に、インデックスを割り当てる。そして、当該インデックス値をアドレスとして設定して、ＳＲＡＭ１４４の当該アドレスに、処理対象の画素データ（21bit）をライトする。
【００９８】
上記の変形例２によれば、元画像データの階調値のままでは、インデックスの割り当てが足りずにパレットを作成できない場合であっても、階調数を減らすことにより、パレットを作成することができる。その結果、画像処理装置１において画像データをインデックス画像データとして保持することができ、メモリーの空き容量をできる限り大きくすることができる。また、ヒストグラムを生成する段階で、階調数を削減するため、ヒストグラムを生成するためのメモリー容量を削減できる。
【００９９】
なお、上記の変形例２では、削減した階調数として、21bitを採用しているが、さらに小さい階調数であってもよい。また、ヒストグラムのＳＲＡＭ１４６の階調数よりもパレットのＳＲＡＭ１４４の階調数を小さくしてもよい。
【０１００】
＜第２実施形態＞
本発明の第２実施形態について、図面を参照しながら説明する。本実施形態の画像処理装置１は、ヒストグラム生成を行わない構成である。以下、第１実施形態と異なる点を中心に説明する。
【０１０１】
図１１は、画像処理装置１におけるパレット生成およびインデックス変換に関連する構成の一例を示すブロック図である。
【０１０２】
本実施形態では、メモリー制御ＡＳＩＣ１４は、スキャナー制御ＡＳＩＣ１５から出力された画像データについて、パレットの生成、およびインデックス変換を行うための機能を有する。メモリー制御ＡＳＩＣ１４は、制御部１４７と、パレット生成・インデックス変換部１４８と、ＳＲＡＭ１４９とを有する。
【０１０３】
制御部１４７は、メモリー制御ＡＳＩＣ１４を統合的に制御するとともに、ＤＲＡＭ１２へのアクセスを制御する回路である。もちろん、ＤＲＡＭ１２へのアクセス制御を行う部分は、制御部１４７と独立していてもよい。
【０１０４】
例えば、制御部１４７は、スキャナー制御ＡＳＩＣ２０から順次出力される画素データを受け付ける。また、受け付けた各画素データと同一の画素データを、ＤＲＡＭ１２、およびパレット生成・インデックス変換部１４８にそれぞれ出力する。
【０１０５】
また、制御部１４７は、パレット生成・インデックス変換部１４８から出力されるインデックス変換後の画像データの各インデックス値を順次受け付け、ＤＲＡＭ１２に出力する。また、制御部１４７は、作成が完了したパレットをＳＲＡＭ１４９から取得し、インデックス変換された画像データと対応付けて、ＤＲＡＭ１２に格納する。
【０１０６】
パレット生成・インデックス変換部１４８は、制御部１４７から順次出力される画素データに基づいて、階調値毎にインデックス値を割り付け、各インデックス値に対応する階調値をＳＲＡＭ１４９に記録する。また、画素データをインデックス値に変換し、制御部１４７を介してＤＲＡＭ１２に出力する。本実施形態では、パレット生成・インデックス変換部１４８は、１ラスタ（１ライン分の画像データ）毎に、パレット生成およびインデックス変換を行う。
【０１０７】
ＳＲＡＭ１４９は、図２のＳＲＡＭ１４４と同様に、アドレス（インデックス値）ごとにデータ（階調値）を格納する領域を有する（図１２参照）。ＳＲＡＭ１４９は、例えば、24bit（RGB各8bit）の階調値データを、28（256のインデックス）アドレス分格納できる容量である。
【０１０８】
図１２は、画像処理装置１におけるパレット生成およびインデックス変換の処理手順を説明する図である。本図は、１ラスタの画像データを処理する場合を説明している。
【０１０９】
制御部１４７は、スキャナー制御ＡＳＩＣ１５から順次出力される画素データを受け付け、各画素データと同一の画素データを、ＤＲＡＭ１２およびパレット生成・インデックス変換部１４８にそれぞれ出力する。すなわち、制御部１４７は、画素データを順次ＤＲＡＭ１２にライトして、１ラスタの画像データ１２３をＤＲＡＭ１２に格納する。また、この制御部１４７の処理と並行して、画像データ１２３について、パレット生成・インデックス変換部１４８によりパレットの生成およびインデックス変換が実行される。
【０１１０】
また、制御部１４７は、パレット生成・インデックス変換部１４８から順次出力されたインデックス値をＤＲＡＭ１２にライトして、１ラスタの画像データ１２３をインデックス変換したインデックス画像データ１２４をＤＲＡＭ１２に格納する。なお、インデックス画像データ１２４の生成が終了した場合、画像データ１２３をＤＲＡＭ１２から削除してよい。
【０１１１】
パレット生成・インデックス変換部１４８は、画素データごとにＳ３１〜Ｓ３４の処理を実行する。
【０１１２】
Ｓ３１では、パレット生成・インデックス変換部１４８は、制御部１４７から出力された画素データを受け付ける。
【０１１３】
Ｓ３２では、まず、パレット生成・インデックス変換部１４８は、インデックス値を最小値から割り当て済みの値まで順次変化させ、インデックス値（アドレス）毎に、ＳＲＡＭ１４９から階調値データをリードする。また、パレット生成・インデックス変換部１４８は、リードした階調値データ毎に、当該階調値データとＳ３１で受け付けた画素データの階調値との比較を行い、当該階調値データにインデックス値が割り当て済みであるか否かを判定する。
【０１１４】
そして、処理対象の画素データの階調値にインデックス値が割り当て済みでない場合、パレット生成・インデックス変換部１４８は、Ｓ３１で受け付けた画素データにインデックス値を割り当て、当該インデックス値をアドレスとして設定して、ＳＲＡＭ１４９の当該アドレスに、画素データの階調値をライトする。一方、処理対象の画素データの階調値にインデックス値が割り当て済みである場合、画素データの階調値をＳＲＡＭ１４９にライトしない。
【０１１５】
Ｓ３３では、パレット生成・インデックス変換部１４８は、Ｓ３１で受け付けた画素データにＳ３２で新たに割り当てたインデックス値、もしくは、Ｓ３２で特定した割り当て済みのインデックス値を、制御部１４７に出力する。
【０１１６】
Ｓ３４では、パレット生成・インデックス変換部１４８は、Ｓ３２において新たにインデックス値を割り当てた場合、インデックス値を１インクリメントする。ここで、パレット生成・インデックス変換部１４８は、１インクリメントした後のインデックス値が、予め定めた最大値（例えば、インデックス値が２５６個の場合、２５５）を超え、かつ、処理対象の画素データが１ラスタの画像データ中の最後の画素でない場合、当該ラスタの画像データのパレットの作成を中止する。すなわち、パレット生成・インデックス変換部１４８は、次の画素データ以降Ｓ３１〜３４の処理を行わない。
【０１１７】
上記のようにして、ラスタ毎にパレットおよびインデックス画像データが生成され、ＤＲＡＭ１２に格納される。また、インデックス値の割り当てが足りずにパレットを作成できなかったラスタについては、元画像データがそのままＤＲＡＭ１２に保持される。
【０１１８】
なお、上記では、ラスタ毎にパレットおよびインデックス画像データを生成しているが、全てのインデックス値（例えば、２５６個）を割り当てたときに、ＤＲＡＭ１２に生成されているインデックス画像データを１つの単位としてもよい。すなわち、生成された各インデックス画像データに対応するパレットのサイズは全て同じであり、一方、各インデックス画像データのサイズは必ずしも同じとならない。このように構成すれば、パレットの作成を完了できない場合がなくなるとともに、元画像データをＤＲＡＭ１２に保持する必要がなくなり、メモリーの空き容量をできる限り大きくすることができる。
【０１１９】
また、上記では、制御部１４７が１ラスタの画像データ１２３をＤＲＡＭ１２に格納するようにしているが、１ラスタの画像データを格納できるＳＲＡＭを設け、当該ＳＲＡＭに、パレット生成・インデックス変換部１４８が、制御部１４７から出力された１ラスタの画像データを格納するようにしてもよい。
【０１２０】
以上、本発明の第２実施形態について説明した。本実施形態によれば、インデックス変換（パレットの作成を含む。）の処理効率を向上することができる。すなわち、本実施形態によれば、パレット生成と並行して、割り当てたインデックス値を用いてインデックス変換が行われる。このような構成により、階調値に対応するインデックス値を特定するためにパレットに繰り返しアクセスをする必要がなくなり、インデックス変換処理が全体的に効率化される。
【０１２１】
なお、上記の本発明の実施形態は、本発明の要旨と範囲を例示することを意図し、限定するものではない。多くの代替物、修正および変形例が当業者にとって明らかである。
【０１２２】
例えば、上記の実施形態では、スキャナー制御ＡＳＩＣ１５から出力される画像データを、ヒストグラム生成、パレット生成、インデックス変換の対象としていたが、これに限られない。Ｉ／Ｏ制御ＡＳＩＣ１７から出力される画像データ（例えば、ネットワークＩ／Ｆ、ＵＳＢＩ／Ｆ、パラレルＩ／Ｆから入力される画像データ）を対象としてもよい。
【符号の説明】
【０１２３】
１：画像処理装置、１０：コントローラー、１１：ＣＰＵ、１２：ＤＲＡＭ、１３：ＲＯＭ、１４：メモリー制御ＡＳＩＣ、１５：スキャナー制御ＡＳＩＣ、１６：印刷制御ＡＳＩＣ、１７：入出力（Ｉ／Ｏ）制御ＡＳＩＣ、１８：ネットワークインターフェイス（Ｉ／Ｆ）、２０：スキャナー、３０：印刷エンジン、４０：操作パネル、１２１：画像データ、１２２：インデックス画像データ、１２３：画像データ、１２４：インデックス画像データ、１４１：制御部、１４２：インデックス変換部、１４３：パレット生成部、１４４：ＳＲＡＭ、１４５：ヒストグラム生成部、１４６：ＳＲＡＭ、１４７：制御部、１４８：パレット生成・インデックス変換部
【図１】
2011044897.tif 000003
【図２】
2011044897.tif 000004
【図３】
2011044897.tif 000005
【図４】
2011044897.tif 000006
【図５】
2011044897.tif 000007
【図６】
2011044897.tif 000008
【図７】
2011044897.tif 000009
【図８】
2011044897.tif 000010
【図９】
2011044897.tif 000011
【図１０】
2011044897.tif 000012
【図１１】
2011044897.tif 000013
【図１２】
2011044897.tif 000014