(57)【特許請求の範囲】
【請求項１】
メモリの予め決められた領域において、属性データの領域と当該属性データを特定するインデックスデータの領域とを決定する決定手段と、
入力画像データにおける入力画素の位置に基づいて特定されるインデックスデータにより、前記属性データの領域から前記入力画素に対応する属性データを取得する取得手段と、
前記取得手段により取得した属性データに基づいて、前記入力画素の画素値に対して画像処理を行う処理手段と、を備え、
前記決定手段は、前記処理手段が実行する処理の内容に応じて、前記予め決められた領域におけるインデックスデータの領域と属性データの領域との割当てを決定することを特徴とする画像処理装置。
【請求項２】
前記予め決められた領域は所定サイズであり、
前記決定手段は、前記所定サイズ内においてインデックスデータの領域のサイズと属性データの領域のサイズとの割当てを決定する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記インデックスデータの領域の大きさと属性データの領域の大きさとの比は可変である
ことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記インデックスデータの領域のサイズと前記属性データの領域のサイズとの和は一定である
ことを特徴とする請求項１から３のいずれか１項に記載の画像処理装置。
【請求項５】
前記入力画像データの画素値と、前記取得手段により取得した属性データに基づく属性値とを含む処理用画像データを生成する生成手段をさらに備え、
前記処理手段は、前記生成手段により生成された処理用画像データの画素値に対して画像処理を行う
ことを特徴とする請求項１から４のいずれか１項に記載の画像処理装置。
【請求項６】
前記生成手段は、前記取得手段により取得した属性データを属性値とする
ことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記生成手段は、前記取得手段により取得した属性データに所定の処理をして得た値を属性値とする
ことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記生成手段は、画素値を保持する１以上の画素値フィールドと、属性値を保持する１以上の属性値フィールドとを含む処理用画像データを生成する
ことを特徴とする請求項５から７のいずれか1項に記載の画像処理装置。
【請求項９】
前記生成手段は、前記取得手段により取得した属性データに対して所定の処理を実行して得られた複数の属性値を各属性値フィールドの属性値に設定して前記処理用画像データを生成する
ことを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記取得手段は、１つのインデックスデータから隣り合う２以上の画素を含むブロックに対応する属性データを取得する
ことを特徴とする請求項１から９のいずれか１項に記載の画像処理装置。
【請求項１１】
前記入力画像データの１以上の入力画素を含む画像領域の画像特性に基づいて、前記入力画素に対してインデックスデータを設定し、前記メモリに格納する設定手段をさらに備える
ことを特徴とする請求項１から１０のいずれか１項に記載の画像処理装置。
【請求項１２】
前記設定手段は、入力画像データを複数に分割し、分割された入力画像データ毎に対応するインデックスデータを前記メモリに格納する
ことを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記設定手段は、前記入力画像データの隣り合う２以上の画素を含むブロック毎に属性値を設定する
ことを特徴とする請求項１１又は１２に記載の画像処理装置。
【請求項１４】
前記画像領域の画像特性は、グラフィックエリア、文字エリア及び写真エリアのうち少なくともいずれか１つを含む
ことを特徴とする請求項１１から１３のいずれか１項に記載の画像処理装置。
【請求項１５】
画素位置から対応するインデックスデータの位置を算出する算出手段をさらに備える
ことを特徴とする請求項１から１４のいずれか１項に記載の画像処理装置。
【請求項１６】
前記処理手段は、前記取得手段により取得した属性データに基づいて複数のルックアップテーブルから１つのルックアップテーブルを選択し、選択したルックアップテーブルを用いて色変換処理を実行する
ことを特徴とする請求項１から１５のいずれか１項に記載の画像処理装置。
【請求項１７】
メモリの予め決められた領域において、属性データの領域と当該属性データを特定するインデックスデータの領域とを決定する決定工程と、
入力画像データにおける入力画素の位置に基づいて特定されるインデックスデータにより、前記属性データの領域から前記入力画素に対応する属性データを取得する取得工程と、
前記取得工程により取得した属性データに基づいて、前記入力画素の画素値に対して画像処理を行う処理工程と、を備え、
前記決定工程では、前記処理工程が実行する処理の内容に応じて、前記予め決められた領域におけるインデックスデータの領域と属性データの領域との割当てを決定する
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
記録媒体に対して文字や画像等の情報を記録する記録装置が知られている。記録方式としては、例えば、インクを用いて記録を行なうインクジェット記録方式がある。近年、このようなインクジェット記録方式を採用した複合機（以下、インクジェット複合機と呼ぶ）が普及している。インクジェット複合機の特徴としては、普通紙へのコピーと写真用紙へのダイレクトプリントの両方が１台の装置で実現できるという点が挙げられる。
【０００３】
さて、記録速度の向上に伴って画像処理の高速化が要求されている。画像処理は、ハードウェア又はソフトウェアで実現される。ハードウェア規模とコストは、原則的に比例関係にあり、顧客満足度を上げるために機能を向上させつつ製品価格を下げるには、ハードウェアのコストを抑えたままその処理能力を向上させる必要がある。そこで、仕様用途に応じて柔軟に処理を変更するハードウェア技術が提案されている（特許文献１参照）。
【０００４】
一般に、コピーでは、文字加工等の処理が行なわれている。文字加工処理は、例えば、文字部をエッジ強調することによる網点部分への弊害を抑えるために行なわれる。そのため、この処理では、文字エリアと網点エリアとを判定してエリアそれぞれに合わせた画像処理を実行する必要がある（特許文献２参照）。
【０００５】
また、写真画像の記録（いわゆる、写真印刷）に際しては、覆い焼き処理等が行なわれている。覆い焼きでは、逆光状態の被写体の明度を適切にしつつ、背景部分への弊害を抑えるために、被写体とそれ以外のエリアとを判定してエリアそれぞれに合わせた処理を実行する必要がある（特許文献３参照）。同様に、フラッシュ撮影時の赤目を除去する赤目補正処理や、写真撮影時の暗部ノイズ等を除去するノイズ補正処理等においても、画像全体に対して画一的な処理を行なわない。すなわち、画質が良好な部分への弊害を抑えつつ、特定の弊害発生個所に対して補正処理を実施する必要がある（特許文献４、特許文献５参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１７８５４６号公報
【特許文献２】特開２００２−７７６２３号公報
【特許文献３】特開平９−１８７０４号公報
【特許文献４】特開平１１−３５５５９１号公報
【特許文献５】特開２００４−１５３２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
コピーや写真印刷等に際して、上述した画像処理（すなわち、エリアに応じた画像処理）を高速化する場合、一般に、それぞれ専用の回路を設ける。そのため、例えば、インクジェット複合機のようにコピー機能と写真印刷機能とを備えた装置においては、両方の回路を搭載する必要があり、コストアップを避けられない。
【０００８】
更に、エリアに応じた画像処理を各回路に並列して実行させる必要があるので、このようなデータ転送制御においては、その処理負荷が大きくなる。そのため、例えば、メモリへのアクセス速度の低下などが発生する。
【０００９】
このメモリ消費を抑えるために、例えば、インデックスアドレス指定方式等を採用することもできる。しかし、例えば、複合機等のように多機能な装置の場合には、その装置における複数の画像処理モード全てをカバーできるようにインデックスやアドレスを設定しなければならず、実現が困難であった。
【００１０】
本発明は、上記課題に鑑みてなされたものであり、インデックスアドレス方式により複数モードの画像処理の実行を制御する構成において、データ転送制御の負荷の軽減を図れるようにした技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明の一態様は画像処理装置にかかり、前記画像処理装置は、メモリの予め決められた領域において、属性データの領域と当該属性データを特定するインデックスデータの領域とを決定する決定手段と、入力画像データにおける入力画素の位置に基づいて特定されるインデックスデータにより、前記属性データの領域から前記入力画素に対応する属性データを取得する取得手段と、前記取得手段により取得した属性データに基づいて、前記入力画素の画素値に対して画像処理を行う処理手段と、を備え、前記決定手段は、前記処理手段が実行する処理の内容に応じて、前記予め決められた領域におけるインデックスデータの領域と属性データの領域との割当てを決定する。
【発明の効果】
【００１２】
本発明によれば、インデックスアドレス方式により複数モードの画像処理の実行を制御する構成において、データ転送制御の負荷の軽減を図れる。
【図面の簡単な説明】
【００１３】
【図１】画像処理装置１００の概略構成を示す斜視図。
【図２】図１に示す画像処理装置１００の制御部（不図示）の一例を示す図。
【図３】図２に示す画像処理モジュール４の構成の一例を示す図。
【図４】本実施形態に係わる処理用画像データのフォーマットの一例を示す図。
【図５】図２に示す画像処理モジュール４の構成の一例を示す図。
【図６】参照テーブルの一例を示す図。
【図７】各画素に対応して属性値が設定された画像の模式図。
【図８】図５に示す生成部２１の動作の一例を示すフローチャート。
【図９】参照テーブルの一例を示す図。
【図１０】参照テーブルの一例を示す図。
【図１１】図５に示す第１の色変換部２２における処理の概要の一例を示す図。
【図１２】画像の一例を示す図。
【図１３】図１２に示す画像に基づくマップ情報の一例を示す図。
【図１４】参照テーブルの一例を示す図。
【図１５】画像の一例を示す図。
【図１６】図１２に示す画像に基づくマップ情報の概要を説明する図。
【図１７】図１２に示す画像に基づくマップ情報の概要を説明する図。
【図１８】参照テーブルの一例を示す図。
【発明を実施するための形態】
【００１４】
以下、本発明に係わる画像処理装置及びその処理方法の一実施の形態について添付図面を参照して詳細に説明する。なお、以下の説明においては、インクジェット記録方式を採用した画像処理装置を例に挙げて説明するが、これに限られず、例えば、色材にトナーを用いる電子写真方式を採用してもよい。
【００１５】
また、画像処理装置は、例えば、記録機能のみを有するシングルファンクションプリンタであってもよいし、また、例えば、記録機能、ＦＡＸ機能、スキャナ機能等の複数の機能を有するマルチファンクションプリンタであってもよい。また、例えば、カラーフィルタ、電子デバイス、光学デバイス、微小構造物等を所定の記録方式で製造するための製造装置であってもよい。
【００１６】
なお、以下の説明において、「記録」とは、文字、図形等有意の情報を形成する場合のみならず、有意無意を問わない。更に人間が視覚で知覚し得るように顕在化したものであるか否かも問わず、広く記録媒体上に画像、模様、パターン、構造物等を形成する、又は媒体の加工を行なう場合も表す。
【００１７】
また、「記録媒体」とは、一般的な記録装置で用いられる紙のみならず、布、プラスチック・フィルム、金属板、ガラス、セラミックス、樹脂、木材、皮革等、インクを受容可能なものも表す。
【００１８】
更に、「インク」とは、上記「記録」の定義と同様広く解釈されるべきものである。従って、記録媒体上に付与されることによって、画像、模様、パターン等の形成又は記録媒体の加工、或いはインクの処理（例えば、記録媒体に付与されるインク中の色剤の凝固又は不溶化）に供され得る液体を表す。
【００１９】
図１は、本発明の一実施の形態に係わる画像処理装置１００の概略構成を示す斜視図である。
【００２０】
画像処理装置１００は、例えば、記録部と、読取部と、制御部（不図示）とを具備して構成される。記録部には、例えば、インクジェットシリアルプリンタが内蔵されており、読取部には、例えば、ＣＣＤ方式のフラットヘッドスキャナが内蔵されている。
【００２１】
読取部は、記録媒体を光学的に走査して記録媒体に形成された画像を読み取る。読取部は、一般に、記録部の上部に設けられている。読取部には、原稿を押えるための上蓋６６が設けられている。上蓋６６は、ヒンジ（不図示）により回動自在である。一方、記録部には、記録後の記録媒体を装置外に排出する排紙部６７や、記録に用いる記録紙などの記録媒体を積載した給紙部６８が設けられている。
【００２２】
図１に示すように、記録部は、例えば、ヘッドキャリッジ５１、記録ヘッド５２、インクタンク５３〜５６、シャフト５７、搬送ローラ５９、プラテン５０、ヘッドキャリッジモータ（不図示）、搬送モータ（不図示）等を具備して構成される。
【００２３】
ヘッドキャリッジ５１は、例えば、記録ヘッド５２と、黒インクを収容したインクタンク５３、シアンインクを収容したインクタンク５４、マゼンタインクを収容したインクタンク５５、イエロインクを収容したインクタンク５６を搭載する。ヘッドキャリッジ５１は、シャフト５７に沿って矢印Ｂ方向に移動する。
【００２４】
記録ヘッド５２は、例えば、熱エネルギを利用してインクを吐出するインクジェット方式により構成される。記録ヘッド５２には、発熱抵抗素子から構成される記録素子（以下、ヒータという）やヒータ駆動回路が設けられる。ヒータは、各ノズルに対応して設けられる。発熱抵抗素子を用いたインクジェット記録方式では、発熱抵抗素子に電圧を印加し、発熱抵抗素子近傍のインクを瞬時に沸騰させる。そして、沸騰時のインクの相変化により生じる急激な発泡圧によってインク滴を吐出する。なお、インクの吐出方式はこれに限られず、例えば、ピエゾ素子を用いた方式、静電素子を用いた方式、ＭＥＭＳ素子を用いた方式など、いずれの方式を採用してもよい。
【００２５】
画像処理装置１００は、記録動作に際して、給紙部６８内の一番上の記録紙５８を搬送ローラ５９と駆動モータとを用いてＵ字状（矢印Ｃ）に引き込む。記録紙５８の先端が記録ヘッド５２の下に到達すると、ヘッドキャリッジ５１が矢印Ｂ方向に往復移動し、記録紙５８に記録ヘッド５２からインク液滴を吐出する。これにより、１走査分の記録が行なわれる。画像処理装置１００は、搬送ローラ５９により１走査分に相当する長さ分、記録紙５８を搬送した後、再度、ヘッドキャリッジ５１を走査させ、記録を行なう。この動作が繰り返し実施されることにより記録が行なわれる。記録媒体に対する記録が終わると、画像処理装置１００は、記録紙５８を排紙部６７上に排紙する。これにより、記録動作が終了する。
【００２６】
図２は、図１に示す画像処理装置１００の制御部（不図示）の一例を示す図である。
【００２７】
ＣＰＵ１は、制御ユニットとして機能し、画像処理装置１００における処理を統括的に制御する。ＲＯＭ２は、プログラム等を格納する。ＲＡＭ７は、画像の展開領域やプログラム実行のための作業用領域等として用いられる。特殊用途集積回路（ＡＳＩＣ）３０は、例えば、記録ヘッド５２を制御するための制御信号を生成する。ＡＳＩＣ３０には、画像処理デバイス（以下、画像処理モジュールと呼ぶ）４−１〜４−ｍがｍ個（ｍは１以上の整数）設けられており、各種画像処理を行なう（以下、これらを総称する場合、画像処理モジュール４と呼ぶ）。詳細については後述するが、画像処理モジュール各々には、コンフィグレーションレジスタ１０１−１〜１０１−ｍがｍ個（ｍは１以上の整数）が設けられている（以下、これらを総称する場合、コンフィグレーションレジスタ１０１と呼ぶ）。
【００２８】
アービタ５は、ＲＡＭ７へのアクセスを調停する。ＲＡＭインターフェース６は、ＲＡＭ７とのインターフェースである。ヘッドインターフェース（出力インターフェース）８は、記録ヘッド５２とのインターフェースである。なお、本実施形態においては、ＣＰＵ１と、各画像処理モジュール４−１〜４−ｍとによりＲＡＭ７を共有して使用する場合を例に挙げて説明するが、ＣＰＵ１専用のＲＡＭを別途設けてもよい。
【００２９】
ここで、処理対象となる画像を受信した時の画像処理装置１００の動作について説明する。画像処理装置１００は、Ｉ／Ｏポート９において、画像を受信すると、バスブリッジ（入力インターフェース）３、アービタ５、ＲＡＭインターフェース６を介して当該受信した画像をＲＡＭ７に格納する。この処理は、例えば、ＣＰＵ１が、ＲＯＭ２に格納されたプログラムに従うことにより実行される。
【００３０】
画像の格納が済むと、画像処理装置１００は、ＣＰＵ１において、画像処理モジュール４−１のコンフィグレーションレジスタ（以下、単にレジスタと呼ぶ）１０１−１にパラメータを設定する。このパラメータの設定に伴って画像処理モジュール４−１は、動作を開始する。なお、レジスタ１０１には、画像処理モジュールを動作制御するためのパラメータが保持される。レジスタ１０１には、例えば、データが格納されたＲＡＭ７内のアドレス範囲や、処理後のデータの格納先となるＲＡＭ７内のアドレス範囲等が保持される。
【００３１】
レジスタ１０１−１にパラメータが設定されると、画像処理モジュール４−１は、当該設定されたパラメータ（この場合、アドレス範囲）に従ってＲＡＭ７からデータを読み出したり、また、ＲＡＭ７にデータを書き込んだりする。画像処理モジュール４−１は、このパラメータに従って処理を実施する。処理が終了すると、画像処理モジュール４−１は、割り込みを発生し、その旨をＣＰＵ１へ通知する。
【００３２】
割り込みの通知を受けたＣＰＵ１は、その割込要因を解析する。ここで、読出処理の終了に伴って送られてきた通知であれば、ＣＰＵ１は、次のデータの読出アドレス範囲をレジスタ１０１−１に設定し、画像処理モジュール４−１の処理を続行させる。また、書込処理の終了に伴って送られてきた通知であれば、ＣＰＵ１は、処理後のデータの格納先となるアドレス範囲をレジスタ１０１−１に設定し、画像処理モジュール４−１の処理を続行させる。このとき、ＣＰＵ１は、画像処理モジュール４−２のレジスタ１０１−２にパラメータを設定し、画像処理モジュール４−２に動作を開始させる。
【００３３】
パラメータの設定に伴って画像処理モジュール４−２は、画像処理モジュール４−１同様に処理を開始する。そして、画像処理モジュール４−２は、上述した読出処理又は書込処理が終了すると、割り込みを発生し、その旨をＣＰＵ１へ通知する。その後、上記同様の処理が行なわれ、例えば、画像処理モジュール４−３の動作が開始する。このように画像処理装置１００においては、ある画像処理モジュール４による処理が終わると、次の画像処理モジュール４が起動し、処理データが次々と各画像処理モジュール４に受け渡される。これにより、画像処理モジュール４を単位としたパイプラインが実現される。
【００３４】
１つの画像処理モジュール４において、ＣＰＵ１により指示された画像処理の実行が開始されてから当該画像処理モジュール４が画像処理を終了し、処理後のデータの出力が可能となるまでの間に、他の画像処理モジュール４でも並行して処理を行なえる。具体的には、ＲＡＭ７から他の画像処理モジュール４へのデータの入力及び当該他の画像処理モジュールで処理が終了したデータのＲＡＭ７への出力を行なえる。更に、画像処理モジュール４は、他の画像処理モジュール４と独立して画像処理を行なうため、複数の画像処理モジュール４を並行して動作させることができ、複数の画像処理を同時に進行させることができる。
【００３５】
以上のようにして画像処理モジュール４−ｍ−１まで処理が進み、所定サイズ以上のビットマップデータが生成されると、ＣＰＵ１は、記録部を起動させる。画像処理モジュール４−ｍは、記録部の同期信号に合わせてビットマップデータを記録部へ送る。これにより、記録媒体に画像が記録される。
【００３６】
図３は、図２に示す画像処理モジュール４の内部構成の一例を示す図である。
【００３７】
画像処理モジュール４は、リードバッファ１０と、サブモジュール１１−１〜１１−ｎ（これらを総称する場合、サブモジュール１１と呼ぶ）と、ライトバッファ１２と、アービタ１３と、リードアドレス生成部１４とを具備して構成される。また更に、画像処理モジュール４には、割込制御部１５と、ライトアドレス生成部１６と、スイッチ（スイッチマトリクス）１７と、レジスタ１０１と、クロック分配部１０２と、電源供給部１０３とが設けられる。
【００３８】
レジスタ（コンフィグレーションレジスタ）１０１には、スイッチマトリクス１７、リードアドレス生成部１４やライトアドレス生成部１６、等の動作に係わるパラメータが設定される。クロック分配部１０２は、装置のクロックパルスｃｌｋを画像処理モジュール４内の各部へ分配する。クロック分配部１０２は、レジスタ１０１の設定により、任意のサブモジュール１１へのクロックｃｌｋの供給を停止できる。電源供給部１０３は、画像処理モジュール４内の各部への電源供給を制御する。電源供給部１０３は、レジスタ１０１の設定により、任意のサブモジュールへの電源供給を停止できる。スイッチマトリクス１７では、予め決められた順番で複数のサブモジュール１１に対してデータを（一方の画像処理サブモジュールから他方の画像処理サブモジュールへ）順次入力する。これにより、処理対象となるデータに対して実施すべき一連の画像処理を複数のサブモジュール１１を用いて実施する。
【００３９】
スイッチマトリクス１７は、リードバッファ（入力バッファ）１０、サブモジュール１１、ライトバッファ（出力バッファ）１２と、データ線及び制御線とを接続する接続モジュールである。例えば、リードバッファ１０のｄａｔａ＿ｏｕｔは、サブモジュール１１のｄａｔａ＿ｉｎと接続される。同様に、ｖａｌｉｄ＿ｏｕｔはｖａｌｉｄ＿ｉｎと接続され、ｓｔａｌｌ＿ｏｕｔはｓｔａｌｌ＿ｉｎと接続される。この接続は、コンフィグレーションレジスタ１０１の設定によって行なわれる。スイッチマトリクス１７が、複数のサブモジュール１１に対して処理用画像データを入力する順番は、予め決められている。この順番は、例えば、リードバッファ１０、サブモジュール１、サブモジュール２、・・・、サブモジュールｎ、ライトバッファ１２のように固定的に決めることができる。これにより、スイッチマトリクス１７は、常に決められた順にサブモジュール間で処理用画像データを移動させればその役割を果たせるので、スイッチマトリクス１７の構成を簡略化できる。
【００４０】
また、ＣＰＵ１によるコンフィグレーションレジスタ１０１へのパラメータ設定によりスイッチマトリクス１７の接続状態を変更することができる。従って、画像処理モジュール４が行なうべき処理内容に応じて、各サブモジュール間（モジュール間）の接続やデータの転送順序を、動的に変更できる。従って、ＣＰＵ１の制御により、各サブモジュールに与える処理の内容の順番を入れ替えるようにすれば、１つの画像処理モジュール４で種々の画像処理を実現できる。なお、スイッチマトリクス１７は、公知のクロスバースイッチ又はセレクタ群によって構成される。また、スイッチマトリクス１７の別の形態として、リングバス（Ring Bus）などの形態であっても構わない。
【００４１】
ここで、１つの画像処理モジュール４において、種類の異なるサブモジュール１１が混在している場合を考えてみる。１つの画像処理モジュール４において、種類の異なるサブモジュールが混在している場合であっても、サブモジュール間の処理の順番を変更するように設計できる。これは、ＣＰＵ１において、サブモジュール間の処理の順番を指示する順番情報をレジスタ１０１に設定し、スイッチマトリクス１７が、当該順番情報を参照して処理用画像データの入力順番を制御するようにすれば実現できる。この場合、サブモジュール間の処理の順番を固定した場合と比べ、スイッチマトリクス１７の構成が複雑になる。しかし、この場合、複数の画像処理モジュール４それぞれにおいて別々の画像処理を実施するように構成できるため、複数の画像処理モジュール４を用いて１つの画像処理を行なう場合に比べて、画像処理速度の向上が見込める。
【００４２】
上述した通り、ＣＰＵ１は、画像処理モジュール４のレジスタ１０１にパラメータを設定する。このパラメータ設定により、リード開始アドレスとリード終了アドレスとが設定された場合、リードアドレス生成部１４は、リードイネーブル信号Ｒｅｎを出力する。このとき、リードアドレス生成部１４は、レジスタ１０１に設定されたパラメータを参照してリードアドレスＲａｄ、ＲＡＭ７からのリードアクセス単位Ｒｎを出力する。Ｒｎが固定的な値であれば、レジスタ１０１にパラメータを参照せずにＲｎを出力してもよい。また、ライト開始アドレスとライト終了アドレスとが設定された場合、ライトアドレス生成部１６は、ライトイネーブル信号Ｗｅｎを出力する。このとき、リードアドレス生成部１４は、レジスタ１０１に設定されたパラメータを参照してリードアドレスＷａｄ、ＲＡＭ７からのリードアクセス単位Ｗｎを出力する。Ｗｎが固定的な値であれば、レジスタ１０１にパラメータを参照せずにＷｎを出力してもよい。
【００４３】
アービタ１３は、リードバッファ１０の空き容量Ｒｐとリードアドレス生成部１４からのリードイネーブル信号Ｒｅｎとを検出する。検出の結果、リードアドレスが有効（Ｒｅｎ＝１）であり、また、リードバッファ１０に空き領域があるとする（Ｒｐ≧Ｒｎ（Ｒｎ：ＲＡＭ７からのリードアクセス単位））。この場合、アービタ１３は、アービタ５に対してリードリクエスト（ＰＲＥＱ＝１、ＰＮＲＷ＝０、ＰＮＵＭ＝Ｒｎ、ＰＡＤＤ＝Ｒａｄ）を発行する。
【００４４】
一方、ライトバッファ１２のデータ蓄積量Ｗｐが所定サイズ以上（Ｗｐ≧Ｗｎ（Ｗｎ：ＲＡＭ７へのライトアクセス単位）あれば、アービタ１３は、ライトアドレス生成部１６のライトイネーブル信号Ｗｅｎを検出する。そして、アービタ１３は、アービタ５に対してライトリクエストを発行する。すなわち、ライトアドレスが有効（Ｗｅｎ＝１）であり、ライトバッファ１２がデータ出力可能（Ｗｐ≧Ｗｎ）であれば、アービタ１３は、アービタ５へライトリクエスト（ＰＲＥＱ＝１、ＰＮＲＷ＝１、ＰＮＵＭ＝Ｗｎｕｍ、ＰＡＤＤ＝Ｗａｄ）を発行する。
【００４５】
アービタ５は、画像処理モジュール４からリクエスト信号ＰＲＥＱを受け取ると、信号ＰＮＲＷに基づいてリードリクエストであるかライトリクエストであるかを判定する（０：リード、１：ライト）。また、アービタ５は、信号ＰＮＵＭに基づいて転送サイズ（転送ワード数）を検出するとともに、信号ＰＡＤＤに基づいてアドレスを検出する。ここで、他のリクエスト（ＣＰＵ１、他の画像処理モジュール４からのリクエスト）がなければ、アービタ５は、ＲＡＭ７内の該当データへのアクセスを開始し、受領信号ＰＡＣＫをリクエスト元の画像処理モジュール４に返す。一方、他のリクエストがあれば、アービタ５は、各リクエストに対応した処理を調停し、優先順位に従って順番に処理を実行させる。
【００４６】
アービタ１３は、アービタ５から受領信号ＰＡＣＫを受け取ると、リードリクエストであるかライトリクエストであるかを判定する。判定の結果、リードリクエストであれば、アービタ１３は、受領信号Ｒａｃｋをリクエスト元のリードアドレス生成部１４に返す。受領信号Ｒａｃｋを受け取ったリードアドレス生成部１４は、データ読出先となるＲＡＭ７内のアドレスを生成しＲａｄへ出力する。なお、リクエストされたアドレス（リードアドレス生成部１４で生成したアドレス）がレジスタ１０１に設定されたリード終了アドレスであれば、リードアドレス生成部１４は、リードイネーブル信号Ｒｅｎをリセットする。また、リードアドレス生成部１４は、割込制御部１５に向けてリード終了信号Ｒｅｎｄを出力する。
【００４７】
一方、アービタ５からの受領信号ＰＡＣＫがライトリクエストであった場合、アービタ１３は、受領信号Ｗａｃｋをリクエスト元のライトアドレス生成部１６に返す。受領信号Ｗａｃｋを受け取ったライトアドレス生成部１６は、データ書込先となるＲＡＭ７内のアドレスを生成する。なお、リクエストされたアドレスがレジスタ１０１に設定されたライト終了アドレスであれば、ライトアドレス生成部１６は、ライトイネーブル信号Ｗｅｎをリセットするとともに、割込制御部１５に向けてライト終了信号Ｗｅｎｄを出力する。
【００４８】
ここで、割込制御部１５は、レジスタ１０１に設定されたパラメータに基づいてリード終了割込マスク及びライト終了割込マスクの設定を行なう。割込制御部１５は、各割込マスクの設定がイネーブルであれば、リード終了信号Ｒｅｎｄ又はライト終了信号Ｗｅｎｄに応じて割込信号ＩＮＴを生成し、その生成した信号をＣＰＵ１へ通知する。
【００４９】
割込信号ＩＮＴを受けたＣＰＵ１は、割込制御部１５のステータスを読み取り、割込要因を判定する。判定の結果、割込要因がリード終了であれば、ＣＰＵ１は、リード終了割込マスクをリセットして割り込みを解除する。なお、処理を継続する場合には、ＣＰＵ１において、リード開始アドレスとリード終了アドレスとをレジスタ１０１に再設定し、それに伴ってリードアドレス生成部１４において、リードイネーブル信号Ｒｅｎを出力等する。その後、割込制御部１５において、リード終了割込マスクを設定する。
【００５０】
一方、割込制御部１５のステータスを読み取った結果、その割込要因がライト終了であれば、ＣＰＵ１は、ライト終了割込マスクをリセットして割り込みを解除する。なお、処理を継続する場合には、ＣＰＵ１において、ライト開始アドレスとライト終了アドレスとをレジスタ１０１に再設定し、それに伴ってライトアドレス生成部１６において、ライトイネーブル信号Ｗｅｎを出力等する。その後、割込制御部１５において、ライト終了割込マスクを設定する。
【００５１】
ここで、ＲＡＭ７からデータが読み出されると、アービタ５は、ＲＡＭデータ有効信号ＰＶＡＬＩＤをリクエスト元の画像処理モジュール４に返す。リクエスト元の画像処理モジュール４では、アービタ１３において、リードバッファ１０へデータ有効信号Ｒｖａｌｉｄを返す。リードバッファ１０は、このデータ有効信号Ｒｖａｌｉｄが出力されている間、ＲＡＭデータ出力信号ＰＤＩＮに含まれるデータを格納する。これにより、信号ＰＡＤＤ（＝Ｒａｄ）に示されるアドレス（リードアドレス生成部１４が生成したアドレス）に基づいてＲＡＭ７から読み出されたデータがリードバッファ１０へ格納される。
【００５２】
一方、ＲＡＭ７にデータを書き込む場合、アービタ５は、ＲＡＭ７の書込タイミングに合せてリクエスト元の画像処理モジュール４にＲＡＭデータ有効信号ＰＶＡＬＩＤを返す。リクエスト元の画像処理モジュール４では、アービタ１３において、ライトバッファ１２へデータ有効信号Ｗｖａｌｉｄを返す。ライトバッファ１２は、データ有効信号Ｗｖａｌｉｄが出力されている間、ＲＡＭデータ入力信号ＰＤＯＵＴを用いて書込データを出力する。これにより、ライトバッファ１２のデータが信号ＰＡＤＤ（＝Ｗａｄ）に示されるＲＡＭ７内のアドレス（ライトアドレス生成部１６が生成したアドレス）へ格納される。
【００５３】
リードバッファ１０は、サブモジュール１１の処理に必要なデータが全て格納されると、有効信号ｖａｌｉｄ＿ｏｕｔを出力し、そうでなければ、有効信号ｖａｌｉｄ＿ｏｕｔをリセットする。また、リードバッファ１０は、サブモジュール１１からの保持要求信号ｓｔａｌｌ＿ｉｎが入力されていなければ、格納されたデータをクロックに同期してｄａｔａ＿ｏｕｔへ順次出力する。なお、サブモジュール１１からの保持要求信号ｓｔａｌｌ＿ｉｎが入力されていれば、ｄａｔａ＿ｏｕｔへ出力するデータの更新は行なわない。ここで、サブモジュール１１から出力された保持要求信号ｓｔａｌｌ＿ｏｕｔは、リードバッファ１０の保持要求信号ｓｔａｌｌ＿ｉｎへ入力される。一方、サブモジュール１１は、処理後のデータのライトバッファ１２への出力が可能になると、有効信号ｖａｌｉｄ＿ｏｕｔを出力し、そうでなければ、有効信号ｖａｌｉｄ＿ｏｕｔをリセットする。また、サブモジュール１１は、保持要求信号ｓｔａｌｌ＿ｉｎがリードバッファ１０から入力されていなければ、格納されたデータをクロックに同期してｄａｔａ＿ｏｕｔへ順次出力する。なお、保持要求信号ｓｔａｌｌ＿ｉｎがリードバッファ１０から入力されていれば、ｄａｔａ＿ｏｕｔへ出力するデータの更新は行なわない。ここで、ライトバッファ１２から出力された保持要求信号ｓｔａｌｌ＿ｏｕｔは、サブモジュール１１の保持要求信号ｓｔａｌｌ＿ｉｎへ入力される。サブモジュール１１同士のデータの送受信も、上述したサブモジュール１１、リードバッファ１０又はライトバッファ１２間の手順と同様に行われる。
【００５４】
サブモジュール１１は、リードバッファ１０又は他のサブモジュール１１から有効信号ｖａｌｉｄ＿ｏｕｔが出力されている間、ｄａｔａ＿ｉｎを介してリードバッファ１０又は他のサブモジュール１１からデータを受け取る。サブモジュール１１は、有効信号ｖａｌｉｄ＿ｏｕｔを出力している間、ｄａｔａ＿ｉｎを介してライトバッファ又は他のサブモジュール１１へデータを出力する。なお、データの受け取りができない場合、サブモジュール１１は、保持要求信号ｓｔａｌｌ＿ｏｕｔを出力する。これにより、データ送信元であるリードバッファ１０又は他のサブモジュール１１の保持要求信号ｓｔａｌｌ＿ｉｎをセットし、リードバッファ１０の出力をホールドする。また、ライトバッファ１２又は他のサブモジュール１１がデータの受け取りができない場合、ライトバッファ１２又は他のサブモジュール１１は、保持要求信号ｓｔａｌｌ＿ｏｕｔを出力する。これにより、データ送信元であるサブモジュール１１の保持要求信号ｓｔａｌｌ＿ｉｎをセットし、サブモジュール１１の出力をホールドする。リードバッファ１０、サブモジュール１１、ライトバッファ１２間のデータ入出力の順番は、スイッチマトリクスがレジスタ１０１の設定に従って管理する。そして、その順番に従って、ｄａｔａ＿ｉｎ及びｄａｔａ＿ｏｕｔ、ｖａｌｉｄ＿ｉｎ及びｖａｌｉｄ＿ｏｕｔ、ｓｔａｌｌ＿ｉｎ及びｓｔａｌｌ＿ｏｕｔが接続され、データが入出力される。なお、入力データ又は出力データを並び替える必要がなければ、リードバッファ１０やライトバッファ１２は、例えば、ＦＩＦＯで構成すればよい。
【００５５】
以上のように画像処理モジュール４の内部は、１つ以上のサブモジュール１１により構成される。各サブモジュール１１間では、上述した動作（有効信号ｖａｌｉｄと保持要求信号ｓｔａｌｌによるハンドシェーク（あるモジュールの＿ｉｎは他のモジュールの＿ｏｕｔに接続される））によってデータの受け渡しが行なわれる。これらサブモジュール１１は、各種画像処理に必要なハードリソースに着目して構成する。これにより、各サブモジュールの接続関係や処理シーケンス、演算精度等を適宜変更できるため、多様な処理モードに対応できるコンパクト且つ柔軟な画像処理装置を構築することができる。また、未使用サブモジュール１１へのクロックの停止や、未使用サブモジュール１１への電源供給を停止できるため、処理速度や処理精度のみならず、消費電力の抑制も図れる。
【００５６】
なお、画像処理モジュール４を多様なフォーマットに対応できるように構成した場合、分割処理（マルチシーケンス処理）を実現できる。この場合、上述したハードリソースでは未対応な処理であっても、別モジュールやＣＰＵ等で実行するように構成できる。基本的には、リードバッファ１０、各サブモジュール１１、ライトバッファ１２間の入力データ及び出力データのフォーマットは、統一することが望ましい。フォーマットを統一した場合、サブモジュールの処理順番を入れ替えたり、特定のサブモジュールを不使用にしたりする場合でも、リードバッファ１０、各サブモジュール１１、ライトバッファ１２間でのデータの入出力データフォーマットに変更は生じない。
【００５７】
本実施形態においては、入出力データフォーマットとして、図４に示すフォーマット（以下、処理用画像データと呼ぶ）を用いる。このフォーマットは、例えば、上述したサブモジュール１１やスイッチマトリクス１７等の間において共有して使用される。処理用画像データは、図４に示すように、例えば、８ｂｉｔの属性値フィールド３０２４〜３０２６と、２４ｂｉｔの画素値フィールド３０２１〜３０２３とがそれぞれ複数（この場合、３つ）設けられる。なお、フォーマットのサイズや形式は、これに限られず適宜変更できる。
【００５８】
ここで、画像処理モジュール４は、処理用画像データの入力に伴ってインデックステーブルからインデックス値を取得し、その値に基づいて算出されるアドレスによりデータテーブルから属性値を取得するインデックスアドレス方式を採用している。そして、この取得した属性値を用いて画像内の各領域に応じた画像処理を実行する。
【００５９】
図５は、生成部（属性値生成部）２１、第１の色変換部２２、第２の色変換部２３として各サブモジュール１１を実現した場合の画像処理モジュール４の構成の一例を示している。なお、サブモジュール（画像処理部）は、必ずしも複数設けられる必要はなく、サブモジュールとして第１の色変換部２２のみが設けられていても良い。
【００６０】
まず、画像処理モジュール４の説明に先立って、ＣＰＵ１により実施される処理について説明する。ＣＰＵ１には、図４で説明した処理用画像データを作成する役割を果たす編集処理部１ａが機能的な構成として設けられる。すなわち、編集処理部１ａにおいては、画像を表現する画像データを当該画像の各画素に対応して、当該各画素の画素値を保持する画素値フィールドと、属性値を保持する属性値フィールドとを含む処理用画像データに編集する。このＣＰＵ１により作成された処理用画像データが画像処理モジュール４内の各サブモジュール１１を伝播されることにより、各種画像処理が実施される。なお、この処理用画像データは、ＣＰＵ１ではなく、例えば、画像処理モジュール４により作成されてもよい。
【００６１】
第１の色変換部２２は、１次元ルックアップテーブル（以下、ＬＵＴと呼ぶ）を用いて第１の色変換処理を実施し、第２の色変換部２３は、３次元ＬＵＴを用いて第２の色変換処理を実施する。なお、処理用画像データに対する処理は、生成部２１、第１の色変換部２２、第２の色変換部２３の順に行なわれる。この処理の順序は、レジスタ１０１に処理の順序を示す情報を設定することで定められる。従って、処理の順序は、レジスタ１０１に異なる値を設定することにより変更できる。
【００６２】
生成部２１は、属性値を生成し、図４に示す属性値フィールド３０２４〜３０２６に設定する。生成部２１では、他のサブモジュール１１よりも先に処理用画像データに対して処理を実行する。そのため、それ以降に処理を実施するサブモジュール１１では、生成部２１により処理用画像データの属性値フィールドに埋め込まれた属性値に基づいて画素毎に異なる処理を実施する。生成部２１には、参照テーブル（インデックステーブルやデータテーブル等）を格納するメモリ２１ａが設けられている。すなわち、インデックステーブル及びデータテーブルは、生成部２１内に設けられた同一のメモリに書き込まれている。このメモリ２１ａは、インデックステーブルのサイズとデータテーブルのサイズとの和が所定のサイズになるように構成される。すなわち、いずれかのテーブルのサイズが増えると、もう一方のテーブルのサイズが小さくなる。なお、テーブルの内容やサイズは適宜変更できる。
【００６３】
ここで、生成部２１には、機能的な構成として、テーブル設定部２１ｂと、取得部２１ｃと、属性値設定部２１ｄとが具備される。
【００６４】
テーブル設定部２１ｂは、インデックステーブル及びデータテーブルをメモリ２１ａに格納する。テーブル設定部２１ｂでは、この格納に際して、画像処理モードに応じてインデックステーブルのサイズとデータテーブルのサイズとの大きさの割合を変更する。なお、テーブルの割合等は、例えば、ＣＰＵ１がレジスタ１０１等に設定した情報に基づいて変更する。
【００６５】
取得部２１ｃは、メモリ２１ａに格納された参照テーブルからインデックスアドレス方式によりデータ（すなわち、属性値）を取得する。属性値設定部２１ｄは、当該取得された属性値を処理用画像データの属性値フィールドに設定する。すなわち、生成部２１においては、インデックステーブル及びデータテーブルに保持されたデータに従って属性値の生成を行なう。なお、場合によっては、参照テーブルから取得したデータに対して、所定の処理（例えば、マスク処理やシフト演算等）を実施し、それにより得られた値を属性値として設定する。
【００６６】
ここで、図６及び図７を用いて、参照テーブル（インデックステーブル、サブインデックステーブル、データテーブル）について説明する。
【００６７】
図６は、図５に示す生成部２１に設けられたメモリ２１ａの内容を示す模式図である。図中左側には、当該メモリ内のアドレスを示す数値（０ｘ００〜０ｘ０Ｆ）が示される。アドレス一行は、メモリの１ＷＯＲＤを意味する。この場合、１６［ｂｉｔ］ＷＯＲＤ×１６のメモリ領域が示されている。
【００６８】
「０ｘ００〜０ｘ０Ｂ」のアドレスエリアには、インデックステーブルが格納されている。ここでは、説明の便宜上、図中左側をＭＳＢ（Most Significant Bit）とする。インデックステーブルには、複数の画素に対して１［ｂｉｔ］のインデックスが１つ定義されている。図６に示すインデックステーブルは、２次元状の構成を有し、１６［ｂｉｔ］×１２（幅１６ブロック、高さ１２ブロック）サイズで構成される。このインデックステーブルでは、１９２エリア分のデータを保持できる。
【００６９】
「０ｘ０Ｃ〜０ｘ０Ｆ」のアドレスエリアには、データテーブルが格納されている。このエリアに保持されたデータが属性値として画素値に対応付けて設定される。すなわち、図４に示す属性値フィールド３０２４〜３０２６のいずれかに、データテーブルに保持されたデータが属性値として設定される。属性値フィールドは、上述した通り、８［ｂｉｔ］で構成される。そのため、データテーブルに保持された１６［ｂｉｔ］のデータは、２箇所の属性値フィールドを用いれば、１つに設定できる。ここでは、生成部２１は、データテーブルの１６［ｂｉｔ］の内、任意の８［ｂｉｔ］を任意の属性値フィールドに設定して出力することとする。
【００７０】
ここで、データテーブルの先頭アドレスを示す０ｘ０Ｃは、例えば、ベースアドレスとして、生成部２１内部に設けられたレジスタ（不図示）に保持されている。また、当該レジスタには、サブインデックス値（例えば、２）も保持されている。
【００７１】
図７は、各画素に対応して属性値が設定された画像の模式図の一例を示している。各矩形枠は、画素を表しており、この場合、画像サイズは、横３２画素、縦１２画素となる。また、横２画素毎に太枠で囲っているが、これは、同一のインデックスからデータが設定されたブロックであることを示している。同一インデックスからデータが設定されたブロック内部でも、例えば、Ａ、Ｂのように異なるデータが設定されている。各ブロック（２画素毎）に対応した生成パターンを示す情報は、インデックステーブルに記述されており、ブロック内部でのパターンの変化を示す情報は、サブインデックステーブルに記述されている。
【００７２】
次に、図８を用いて、図５に示す生成部２１の動作の一例について説明する。ここでは、図６で説明した参照テーブルに保持された値と対応付けて説明する。
【００７３】
生成部２１では、処理用画像データの入力を受けると（Ｓ５０１）、画素数の計数を行なう（Ｓ５０２）。処理開始時点から処理した画素数を計数する。この場合、最初の画素なので計数値「０」をレジスタに保持する。
【００７４】
画素数の計数が済むと、生成部２１は、当該画素数に基づいて画像全体から見た入力画素の位置を算出する（Ｓ５０３）。ここでは、Ｓ５０２でのカウント値を画像幅で割り算し、その商をＹ位置、余りをＸ位置とする（式１、式２）。なお、説明の便宜上、画像の幅をＸ方向、高さをＹ方向とする。１画素目の場合、画像位置は（Ｘ，Ｙ）：（０，０）となる。
（Ｘ位置）＝（Ｓ５０２でのカウント値）％（入力画像幅）・・・（式１）
（Ｙ位置）＝（Ｓ５０２でのカウント値）／（入力画像幅）・・・（式２）
なお、「式１」に示す演算子「％」は、剰余算を表している。すなわち、演算子「％」の左側の項を演算子「％」の右側の項で除算した結果を整数の商と余りとで表したときの余りの値が、演算子「％」の演算結果となる。また、「式２」に示すように、除算の結果について商と余りとを求める場合には、例えば、商は整数まで求める。
【００７５】
次に、生成部２１は、Ｓ５０３で算出した値（画素位置）からインデックステーブル内の対応する位置（インデックス位置）を算出する（Ｓ５０４）。ここで、インデックス位置の算出式を「式３」、「式４」に示す。Ｘ位置、Ｙ位置をブロックサイズで割り算し、その結果をそれぞれインデックステーブルの幅及び高さで割り算する。このとき生じた余りがインデックステーブルのＸ位置及びＹ位置になる。ここでは、画像の幅方向及び高さ方向と、インデックステーブルの幅方向及び高さ方向とが等しいものとする。なお、このような算出式を用いてインデックステーブル内の対応する位置を算出するのは、画像がインデックステーブルに記述されたサイズを超えた場合であっても、インデックステーブルをタイル状に画像に当てはめて処理できるようにするためである。
【００７６】
生成部２１は、当該算出されたインデックステーブル内の位置を、メモリ上におけるインデックステーブルの位置に変換する。この処理では、まず、当該算出されたインデックステーブル内の位置が、インデックステーブルの何番目のブロックに相当するのかを算出する（式５）。そして、その算出値をインデックステーブルが格納されているメモリのＷＯＲＤ長で割り算する。その商がインデックスのアドレスに相当し、余りがインデックスのビット位置に相当する（式６、式７）。
【００７７】
図６に示す例では、「（Ｘブロックサイズ、Ｙブロックサイズ）：（２，１）」である。そのため、１画素目の場合、「（インデックスＸ位置、インデックスＹ位置）：（０，０）」であり、「インデックス位置＝０」となる。更に「インデックスアドレス位置＝０」、「インデックスビット位置＝１５」となる。
（インデックスＸ位置）＝（Ｘ位置）／（Ｘブロックサイズ）％（インデックステーブル幅）・・・（式３）
（インデックスＹ位置）＝（Ｙ位置）／（Ｙブロックサイズ）％（インデックステーブル高さ）・・・（式４）
（インデックス位置）＝（（インデックスＹ位置）×（インデックステーブル幅）＋（インデックスＸ位置））＊（インデックスのビット深さ）・・・（式５）
（インデックスアドレス位置）＝（インデックス位置）／（インデックステーブルＷＯＲＤ長）・・・（式６）
（インデックスビット位置）＝（インデックステーブルＷＯＲＤ長）−１−（インデックス位置）％（インデックステーブルＷＯＲＤ長）・・・（式７）
【００７８】
また、生成部２１は、Ｓ５０３で算出した値（画素位置）からサブインデックス位置を算出する（Ｓ５０５）。サブインデックスとは、同一ブロック内で付加するデータを変化させるために用いられる。この処理では、まず、サブインデックス位置を求めるために、Ｘ位置、Ｙ位置をそれぞれＸブロックサイズ、Ｙブロックサイズで割り算する。そして、そのとき生じた余りでサブインデックスＸ位置、サブインデックスＹ位置をそれぞれ求める（式８、式９）。その後、「式１０」を用いてサブインデックス位置を求める。１画素目の場合、「（サブインデックスＸ位置、サブインデックスＹ位置）：（０，０）」となり、「サブインデックス位置＝０」となる。
（サブインデックスＸ位置）＝（Ｘ位置）％（サブインデックスＸサイズ）・・・（式８）
（サブインデックスＹ位置）＝（Ｙ位置）％（サブインデックスＹサイズ）・・・（式９）
（サブインデックス位置）＝（サブインデックスＹ位置）×（Ｘブロックサイズ）＋（サブインデックスＸ位置）・・・（式１０）
【００７９】
次に、生成部２１は、「式６」、「式７」で求めたインデックステーブルのアドレス位置とビット位置とに基づいてインデックステーブルからインデックス値を取得する（Ｓ５０６）。図６の場合、「０ｘ００」のアドレスエリアの１５［ｂｉｔ］目は「０」である。そのため、「インデックス値＝０」となる。
【００８０】
インデックス値を取得すると、生成部２１は、当該インデックス値に基づいてデータ位置（データアドレス）を算出する（Ｓ５０７）。データアドレスは、データテーブルの格納された先頭アドレスを示すベースアドレスに、Ｓ５０６の処理で求めたインデックス値、「式１０」で求めたサブインデックス値を加算して求める（式１１）。１画素目の場合、「ベースアドレス＝０ｘ０Ｃ」、「インデックス値＝０」、「サブインデックス値＝０」である。そのため、「データ位置＝０ｘ０Ｃ」となる。
（データ位置）＝（ベースアドレス）＋（インデックス値）＊（サブインデックスＸサイズ）＊（サブインデックスＹサイズ）＋（サブインデックス位置）・・・（式１１）
次に、生成部２１は、Ｓ５０７の処理で求めたデータアドレスに基づいてデータを取得する（Ｓ５０８）。図６の場合、「データ位置＝０ｘ０Ｃ」には、「データ＝０ｘ０００Ａ」が格納されている。
【００８１】
データを取得すると、生成部２１は、当該取得した値（データ）を処理用画像データと結合させる（Ｓ５０９）。なお、詳細については後述するが、この入力画素との結合に際しては、必要に応じて、データテーブルから取得した値に対して所定の処理を施す。その後、生成部２１は、当該結合させた処理用画像データを出力する（Ｓ５１０）。すなわち、生成部２１は、取得した値（データ）を１画素目の画素値（ＲＧＢ）に対応付けて設定し、その結果得られた処理用画像データを出力する。生成部２１では、上述したステップＳ５００〜Ｓ５１０の処理を画素数分繰り返す。これにより、図７に示すデータが得られる。
【００８２】
ここで、図９及び図１０を用いて、図６に示すインデックステーブルと異なるｂｉｔ数を有するインデックステーブルについて説明する。
【００８３】
図９は、インデックスのビットの深さが２［ｂｉｔ］、インデックステーブルのサイズが６４、サブインデックスのサイズが２、データテーブルのサイズを８とした場合のインデックステーブルを示している。
【００８４】
上述した図６に示すテーブルでは、４種類の属性値を生成できるデータが保持されていたのに対して、図９に示すテーブルでは、それよりも複雑な８種類の属性値を生成できるデータが保持されている。本実施形態においては、インデックステーブルとデータテーブルとが同一メモリ（メモリ２１ａ）に格納されているため、データテーブルのエリアが増加すると、インデックステーブルのエリアが小さくなる。つまり、属性値の種類の複雑さと出力値の細分化とは、トレードオフの関係を有する。
【００８５】
図１０は、インデックスのビットの深さが４［ｂｉｔ］、インデックステーブルのサイズが２４、サブインデックスのサイズが１、データテーブルのサイズを１０とした場合のインデックステーブルを示している。
【００８６】
図１０に示すテーブルでは、データテーブルをより複雑にするため、インデックスのビットの深さが４［ｂｉｔ］となっている。インデックスのビットの深さが４［ｂｉｔ］であるので、最大で１６種類の属性値に対応できる。しかし、ここでは、属性値を１０種類しか設けていないため、データテーブルにはそれに対応したデータのみが保持されている。すなわち、対応（するデータ）のないインデックス値（１０〜１５）は、インデックステーブルに記述しない。以上が、生成部２１についての説明である。なお、上述した説明では、掛算器、割算器を用いて算出処理を行なう場合を例に挙げて説明したが、掛算器、割算器を用いずに、カウンタを用いて上述した算出処理を行なうようにしてもよい。
【００８７】
次に、図１１を用いて、図５に示す第１の色変換部２２について説明する。第１の色変換部２２は、例えば、８［ｂｉｔ］の入力データに対して、８［ｂｉｔ］の出力データを生成して出力する。この場合、参照する１次元ＬＵＴは、１６エントリの領域に８［ｂｉｔ］のデータが格納されている。
【００８８】
第１の色変換部２２は、処理用画像データが入力されると、画素値の上位４［ｂｉｔ］をアドレスとし、そのアドレスに基づいて１次元ＬＵＴ内のデータを参照する。更に、第１の色変換部２２は、上述したアドレスに１を加えた位置の１次元ＬＵＴ内のデータも参照する。第１の色変換部２２では、画素値である下位４［ｂｉｔ］を用いてこの２つのデータを補間演算し、その結果を出力する。第１の色変換部２２は、ＲＧＢの各コンポーネントに対してこの処理を繰り返し行なう。第１の色変換部２２は、例えば、第１の色変換用のルックアップテーブルとして、１次元ＬＵＴを複数備えており（この場合、３つ保持）、処理用画像データに保持された属性値に応じてＬＵＴを画素毎に切り替える。
【００８９】
本実施形態に係わる処理用画像データには、図４に示すように、属性値フィールドが３種類ある。そのため、第１の色変換部２２では、任意の属性値フィールドの値を読み込んでＬＵＴを変更する。どの属性値フィールドを参照するかは、例えば、レジスタ１０１のパラメータにより指定すればよい。
【００９０】
次に、第２の色変換部２３について説明する。第２の色変換部２３は、第１の色変換部２２同様に、画素値の上位４［ｂｉｔ］をアドレスとして使用し、画素値の下位４［ｂｉｔ］を補間演算に使用する。第２の色変換部２３では、ＲＧＢ各３コンポーネントを用いて３次元の色変換処理を行なう。その点が第１の色変換部２２における色変換処理と異なる点である。第２の色変換部２３は、例えば、第２の色変換用のルックアップテーブルとして、３次元ＬＵＴを複数備えており（この場合、３つ保持）、処理用画像データに設定された属性値に応じてＬＵＴを画素毎に切り替える。ＬＵＴの切り替えに際して、参照先となる属性値フィールドについても、第１の色変換部２２同様に適宜変更することができる。以上が本実施形態に係わる画像処理装置１００の構成についての説明である。
【００９１】
（実施形態１）
ここで、上述した画像処理装置１００における画像処理について具体例を挙げて説明する。実施形態１においては、第１の画像処理モード時における画像処理装置１００の動作について説明する。第１の画像処理モードでは、入力画像内の各エリアを判定し、その結果（例えば、文字エリア、写真エリア）に応じてエリア毎に異なる色変換処理を実施する。なお、実施形態１においては、サブインデックスを使用しない。
【００９２】
図１２は、入力画像の一例が示される。この画像は、オブジェクトに対応して大きく４つのエリアに分けられる。左上エリアには円グラフ、右上エリア及び左下エリアにはテキスト、右下エリアには写真がそれぞれレイアウトされている。なお、画像処理装置１００（例えば、アプリケーション）では、各エリアの位置や大きさを示すレイアウト情報を予め認識している。生成部２１は、このレイアウト情報に基づいてマップ情報を作成する。マップ情報は、属性値を生成する際に用いられる。なお、レイアウト情報は、必ずしも既知である必要はなく、例えば、オブジェクトの判定（識別）を行なう形態でも構わない。
【００９３】
生成部２１は、マップ情報に基づいて、グラフィックエリア、文字エリア、写真エリアそれぞれに対して異なる属性値を画素毎に設定する。各画素に対する画像処理は、この属性値に基づいて切り替えて実行される。第１の色変換部２２では、例えば、文字エリアであれば、それ以外のエリア（グラフィックエリア、写真エリア）に比較して、黒白のコントラストを強調した画像処理を行なう。また、第２の色変換部２３では、例えば、写真エリアに対しては写真調の色変換、また例えば、文字エリア及びグラフィックエリアに対してはグラフィック向けの色変換を行なう。
【００９４】
ここで、本実施形態に係わる画像処理を２つに大別して説明する。１つ目は、生成部２１の動作やテーブル構成等に関する設定処理であり、２つ目は、当該設定処理による設定に従った画像処理（色変換）である。
【００９５】
［設定処理］
まず、生成部２１の動作やテーブル構成等に関する設定処理について説明する。ここでは、図１２に示す画像に対して画像処理を実施する場合について説明する。図１２に示す画像に基づいたマップ情報は、図１３に示す構成となる。すなわち、この原稿のレイアウトは、大きく４エリアに分かれており、左上のエリアはグラフィックエリア、右上のエリア及び左下のエリアは文字エリア、右下のエリアは写真エリアとなっている。
【００９６】
図１４は、インデックステーブルとデータテーブルとを示している。インデックステーブルは、各エリア（この場合、３エリア）で異なる属性値を用いた画像処理を行なうために複数の要素（この場合、３種類）からなる。この場合、グラフィックエリアのインデックス値に「０」、文字エリアのインデックス値に「１」、写真エリアのインデックス値に「２」を割り当てている。本実施形態においては、画像処理方向が左から右、更に上から下である。そのため、インデックステーブルの記述される方向も処理方向に合わせて、０、１、１、２の順となっている。
【００９７】
データテーブルは、インデックステーブルが８ビットしかないため、「０ｘ０１」のアドレスエリアから記述されている。「０ｘ０１」のアドレスエリアにはグラフィックエリアでの画像処理に用いる属性値、「０ｘ０２」のアドレスエリアには文字エリアでの画像処理に用いられる属性値が保持される。また、「０ｘ０３」のアドレスエリアには写真エリアでの画像処理に用いられる属性値が保持される。
【００９８】
ここで、生成部２１のレジスタ設定値を「表１」に示す。この場合、画像特性の異なるエリアが３つある。そのため、属性値は３パターンあればよいので、インデックスのビットの深さは２［ｂｉｔ］とする。インデックステーブルは、幅２、高さ２となる。上述した通り、本実施形態においては、サブインデックスを使用しないため、サブインデックスのＸサイズ１、Ｙサイズ１とする。サブインデックスＸサイズ及びサブインデックスＹサイズが１に設定された場合、特殊処理として「式８」、「式９」におけるサブインデックスＸ位置、サブインデックスＹ位置を「１」に設定する。また、画像全体を４分割しているため、Ｘブロックサイズは画像幅の１／２、Ｙブロックサイズは画像高さの１／２に設定される。また、画像の幅と高さは、ｗ、ｈとしてそれぞれ設定する。ベースアドレスは、データエリアの先頭であるため「０ｘ０１」が設定される。
【００９９】
最後に、生成部２１は、データテーブルから取得したデータ（ビット列）を、図４に示す処理用画像データ内の３つの属性値フィールド（３０２４〜３０２６）のいずれかに設定する。属性値フィールドには、レジスタ設定値のマスク値とシフト値とを用いてデータを処理した後、その処理後のデータを設定する。具体的には、データテーブルとレジスタ設定値のマスク値とでマスク処理を行なった後、シフト値分のシフト演算を行なう。これにより、属性値フィールドへ格納する値をデータテーブルから取得する。本実施形態では、データテーブル内のＭＳＢ側の８ビットを属性値フィールド３０２４、ＬＳＢ（Least Significant Bit）側の８ビットを属性値フィールド３０２５に設定するものとする。すなわち、属性値フィールド（第１の属性値フィールド）３０２４を１次元ＬＵＴ処理（第１の色変換部２２）で参照し、属性値フィールド（第２の属性値フィールド）３０２５を３次元ＬＵＴ処理（第２の色変換部２３）で参照する。これにより、複数（２つ）の処理モジュールに対して順番に画像データを転送し、２つの処理モジュールを並行して実行させることができる。以上で生成部２１に対する設定処理は終了する。
【０１００】
（表１）
0005539071.tif 000002
【０１０１】
次に、１次元ＬＵＴと３次元ＬＵＴとの設定について説明する。１次元ＬＵＴ及び３次元ＬＵＴに関して設定が必要な項目は、図４に示す何れの属性値フィールドを用いて参照するＬＵＴを切り替えるかという点である。上述した通り、１次元ＬＵＴの切り替えは、図４に示す属性値フィールド３０２４を参照し、３次元ＬＵＴの切り替えは、図４に示す属性値フィールド３０２５を参照する。これは、例えば、レジスタ１０１にパラメータとして設定することで実現する。
【０１０２】
また、実施形態１においては、３パターンの属性値を生成できればよいため、１次元ＬＵＴ及び３次元ＬＵＴはともに、３パターン設ける。各データフィールドの下位３ビットをテーブル選択に用いる。文字用の１次元ＬＵＴは、下位３ビットが「１」である場合に参照されるように設定し、写真用及びグラフィック用の１次元ＬＵＴは、下位３ビットが「０」である場合に参照されるように設定する。同様に、文字用及びグラフィックス用の３次元ＬＵＴは、下位３ビットが「１」である場合に参照されるように設定し、写真用及びグラフィック用の３次元ＬＵＴは、下位３ビットが「０」である場合に参照されるように設定する。
【０１０３】
［画像変換処理］
次に、上述した設定処理で設定された動作に従った画像変換処理について説明する。ここでは、生成部２１において、上述した設定に従った属性値が処理用画像データに設定されているものとして説明する。
【０１０４】
画像変換処理では、まず、グラフィックエリア（左上）に対して画像処理が行なわれる。図４に示す属性値フィールド３０２４には、「０ｘ００」が設定されており、また、図４に示す属性値フィールド３０２５には、「０ｘ０１」が設定されている。具体的には、生成部２１は、まず、処理される画素が入力される都度、画素数の計数を行なう（図８で説明したＳ５０２のカウント処理）。その後、「式１」、「式２」に従ってＸ位置、Ｙ位置が計算される。次に、「式３」、「式４」に従ってインデックスＸ位置、インデックスＹ位置が計算される。インデックスＸ位置は、Ｘ位置がｗ／２まで０であり、ｗ／２を超えると１となる。インデックスＹ位置は、Ｙ位置がｈ／２まで０であり、ｈ／２を超えると１となる。その後、「式５」によりインデックス位置が計算される。次に、「式６」、「式７」に従いインデックスアドレス位置、インデックスビット位置が計算される。インデックスアドレス位置は、常に０となり、そのビット位置は、９から１５まで変化する。生成部２１は、算出したインデックスアドレス位置及びインデックスビット位置に基づいて図１４に示す参照テーブルを参照し、インデックス値を求める。ここまでの変数の関係をまとめると「表２」のようになる。
【０１０５】
（表２）
0005539071.tif 000003
【０１０６】
次に、サブインデックスの計算を「式８」〜「式１０」に従って行なうが、第１の画像処理モードでは、サブインデックスを使わない。そのため、特殊処理として、サブインデックス位置を０とする。
【０１０７】
最後に、「式１１」に従ってデータ位置を求める。「ベースアドレス＝０ｘ０１」であるので、この値にインデックス値を加算した数値をアドレスとし、このアドレスに基づいて図１４に示すテーブルを参照する。これにより、属性値の元となるデータを得る。
【０１０８】
次に、属性値フィールドマスクと属性値フィールドシフト値とを用いて、当該取得したデータに対してマスク処理及びシフト演算を行なう。これにより、属性値の元となるデータを、属性値フィールド各々に対応する属性値に分割する。そして、その得られた値を各属性値フィールドに属性値として設定する。ここでは、属性値の元となるデータの内、上位８ビットを属性値フィールド３０２４、下位８ビットを属性値フィールド３０２５へ設定するものとする。ここまでが、生成部２１において実施される処理である。
【０１０９】
生成部２１により処理された処理用画像データは、第１の色変換部２２に入力される。第１の色変換部２２では、当該属性値に従って図４に示す属性値フィールド３０２４の下位３ビットを参照する。この場合、値が「０」であるため、第１の色変換部２２は、写真用及びグラフィック用の１次元ＬＵＴを用いて画像処理を実施する。
【０１１０】
次に、処理用画像データは、第２の色変換部２３に入力される。第２の色変換部２３では、図４に示す属性値フィールド３０２５エリアの下位３ビットを参照する。この場合、値が「１」であるため、文字用及びグラフィックス用の３次元ＬＵＴを用いて画像処理を実施する。この処理を他の画素に対しても、繰り返し実行する。
【０１１１】
以上説明したように実施形態１によれば、データ（属性値、又は属性値の元となる値）を保持するデータテーブルと、インデックス値を保持するインデックステーブルとを同一のメモリに格納する。そして、画像内における画素の位置に基づいてインデックスアドレス方式によりデータテーブルからデータ（特性データ）を取得し、当該取得したデータを属性値として各画素に対応して設定する。画像処理に際しては、当該画素に対応して設定された属性値に基づいて画素毎に画像処理を切り替えて実施する。これにより、データ転送制御の負荷の軽減を実現できる。
【０１１２】
（実施形態２）
次に、実施形態２について説明する。実施形態２においては、第２の画像処理モード時における画像処理装置１００の動作について説明する。第２の画像処理モードでは、覆い焼きと呼ばれる処理を画像内の顔エリアに実施する。一般に、この画像処理（覆い焼き）では、顔エリアとそれ以外のエリアとで異なる処理を行なう必要がある。そのため、画像全体に対して画一的に顔向きの画像補正を実施した場合には、背景がボケてしまい、また、画像全体に対して画一的に背景向きの画像補正を実施した場合には、顔エリアの処理が不十分となってしまう。
【０１１３】
すなわち、顔エリアとそれ以外のエリアとで異なる画像処理を行なう必要がある。また、更なる課題として、各エリアに対して異なる画像処理を実施するようにした場合、境界エリアに不具合が出てしまう。各エリアに対して異なる画像処理を行なうため、境界エリアにおいては、処理の切り替えが目立ってしまう。これに対処するため、実施形態２においては、これら異なる画像処理の切り替えを段階的に行なう。これにより、この境界エリアでの不具合を解決する。
【０１１４】
［設定処理］
ここで、図１５に示す画像が入力されたとする。この画像内の中央の楕円は、顔エリアを示している。画像処理モジュール４においては、この画像に対して顔検出処理を実施し、当該検出された顔エリアの位置と大きさとを求める。また、マップ情報を作成する。
【０１１５】
次に、マップ情報の作成処理について説明する。まず、画像全体に２×２画素の大きさでブロックをマッピングする。次に、図１６に示すように、マッピングされたブロックを複数種類に分別する。なお、図１６に示す各矩形は、画素を表しており、２×２画素で１ブロックを表している。
【０１１６】
図１５に示す画像は、大きく３つのエリアに分けられる。具体的には、境界エリア（インデックス値０〜３、５〜８）、顔エリアの中心（インデックス値４）、顔エリア以外（インデックス値９）となる。境界エリアについては、顔の中心からそのブロックの方向によって８方向分に分けられている。ブロック内部の画素に相当する矩形の内、塗りつぶされていない矩形は、顔エリア以外を処理する画素である。斜線の矩形は、境界エリアを処理する画素であり、顔エリアと顔以外のエリアとの中庸な画像処理を行なう。また、斜線が交差する矩形は、顔エリアを処理する画素である。
【０１１７】
生成部２１においては、マップ情報をインデックス値として使用し、属性値を生成する。これにより、顔エリアと、それ以外のエリアと、両者の境界エリアとで画像処理を異ならせることができる。また、生成部２１では、異なるブロックに属する処理用画像データが入力される度に、当該処理用画像データが属するブロックの位置に基づいて、インデックスアドレス方式によりデータテーブルからデータを取得する。そして、そのデータに基づいて処理用画像データに属性値を設定する。
【０１１８】
図１７は、上述した処理により作成されたマップ情報の概要を示している。各矩形はブロックを示している。また、矩形のない領域は、顔エリア以外のエリアを示しており、ここではブロックの図示を省略している。矩形の中に点のあるエリアは、顔エリアのブロックであることを示しており、矩形の中に矢印のあるエリアは、境界エリアのブロックであることを示している。また、矢印の方向は、顔の中心から外側方向を示しており、インデックス値０〜３、５〜８で示されるパターンを示している。
【０１１９】
このようにして作成されたマップ情報を、生成部２１のメモリ内に格納する。これにより、生成部２１に対する設定処理は終了する。
【０１２０】
ここで、ブロック単位に処理を行なう場合とそうでない場合とのメモリ使用量について説明する。まず、ブロックを用いず、画素毎にインデックス値を設定する場合の参照テーブルのサイズについて考えてみる。参照テーブルのサイズは、「式１２」を用いれば求まる。なお、処理対象の画像の幅をｗ、高さをｈとしている。
（テーブルサイズ）＝（インデックスビット深さ）×ｗ／（ブロックＸサイズ）×ｈ／（ブロックＹサイズ）＋（データテーブル量）・・・（式１２）
【０１２１】
ここで、データテーブルを３パターン（顔エリア、境界エリア、顔以外のエリア）用いて処理する場合、インデックスのビットの深さは２［ｂｉｔ］となり、データテーブルは３パターン×ＷＯＲＤとなる。つまり、ブロックを使用しない場合に必要となる参照テーブルのサイズは、（式１３）で求まる。
（必要テーブルサイズ）＝３×ｗ×ｈ＋３×（ワード長さ）・・・（式１３）
次に、ブロック（２×２画素）を用いた場合の参照テーブルのサイズについて考えてみる。参照テーブルのサイズは、上記同様に、「式１２」で求められる。
【０１２２】
また、データテーブルは、各データテーブル（この場合、１０種類）につき、４×（ＷＯＲＤ長さ）分、サイズが増加する。ここでは、１０種類のデータテーブルを用いるため、インデックス値のビットの深さは４［ｂｉｔ］必要になる。一方、インデックステーブルは、２×２画素を１ブロックとしているため、１／４に減少する。つまり、ブロックを使用した場合の参照テーブルのサイズは、（式１４）で求まる。
（必要テーブルサイズ）＝４×ｗ×ｈ／４＋４０×（ワード長さ）・・・（式１４）
ここで、「式１３」と「式１４」とを比較してみると、右辺の後半（つまり、データテーブルのサイズ）は、「式１４」が大きくなってしまう。具体的には、３７×（ワード長）分大きい。右辺の前半（つまり、インデックステーブルのサイズ）の差は、２×ｗ×ｈだけ、「式１３」が大きい。画像サイズが数画素であることが考え辛い点を考慮すると、多くの場合、「式１４」により求められるサイズの方が小さいと考えられる。つまり、ブロック単位に処理する方がメモリ消費量を抑制できる。
【０１２３】
次に、生成部２１のレジスタ設定値を「表３」に示す。インデックスのビットの深さは、上述した通り、１０種類示す必要があるので４［ｂｉｔ］となる。インデックステーブルは、上述した通り、幅ｗ／２、高さｈ／２の数のブロック定義がなされている。サブインデックスは、２×２画素のサイズで構成されるので、サブインデックスＸサイズ２、Ｙサイズ２とする。また、Ｘブロックサイズは２に設定され、Ｙブロックサイズは２に設定される。また、画像の幅と高さは、ｗ、ｈとしてそれぞれ設定する。ベースアドレスは、データエリアの先頭であるので、（ｗ／２）＊（ｈ／２）＊（インデックスビット深さ：４）／（ワード長さ：１６）を設定する。最後に、データエリアのビット列を、図４に示す処理用画像データの３つの属性値フィールド（３０２４〜３０２６）のいずれかに設定する。この点は、上述した第１の画像処理モード時と同様の処理となる。以上が生成部２１に対する設定処理である。
【０１２４】
（表３）
0005539071.tif 000004
【０１２５】
［画像変換処理］
次に、画像変換処理について説明する。ここでは、第１の画像処理モードと異なる点、具体的には、属性値の生成処理について説明する。
【０１２６】
まず、「式１」〜「式７」に従って各位置やアドレスの計算がなされる点は、第１の画像処理モード時同様である。相違点としては、その後、サブインデックスの計算を「式８」〜「式１０」に従って行なうところである。
【０１２７】
ここでは、サブインデックスを２×２のサイズで定義しているため、「式８」、「式９」に示すように、サブインデックスＸ位置とサブインデックスＹ位置は、Ｘ位置、Ｙ位置の下位１ビットをマスクした値になる。この値を「式１０」に代入する。これにより、サブインデックス位置を求める。
【０１２８】
最後に、「式１１」に従ってデータ位置（データアドレス）を求める。この場合、「ベースアドレス＝（ｗ／２）＊（ｈ／２）＊４／１６」であるので、この値にインデックス値と、「式１０」により求められたサブインデックス位置を加算する。そして、得られた値をアドレスとして図１８に示すデータテーブルを参照する。これにより、当該アドレスに対応するデータを得る。
【０１２９】
次に、属性値フィールドマスクと属性値フィールドシフト値とを用いて、当該取得したデータに対してマスク処理及びシフト演算を行なう。これにより、取得したデータを、属性値フィールド各々に対応する属性値に分割する。そして、得られた値を属性値として属性値フィールドに設定する。
【０１３０】
また、顔エリア用の１次元ＬＵＴは、下位３ビットが「２」である場合に参照されるように設定し、中庸な１次元ＬＵＴは、下位３ビットが「１」である場合に参照されるように設定する。また、顔エリア以外のエリア用の１次元ＬＵＴは、下位３ビットが「０」である場合に参照されるように設定する。３次元ＬＵＴについても同様である。
【０１３１】
以上説明したように実施形態２によれば、画像内を隣接する複数の画素からなるブロックに分け、当該ブロック単位に属性値の設定等を行なう。これにより、実施形態１よりも更に、参照テーブルを格納するメモリの容量を抑制させる場合がある。
【図１】
0005539071.tif 000005
【図２】
0005539071.tif 000006
【図３】
0005539071.tif 000007
【図４】
0005539071.tif 000008
【図５】
0005539071.tif 000009
【図６】
0005539071.tif 000010
【図７】
0005539071.tif 000011
【図８】
0005539071.tif 000012
【図９】
0005539071.tif 000013
【図１０】
0005539071.tif 000014
【図１１】
0005539071.tif 000015
【図１２】
0005539071.tif 000016
【図１３】
0005539071.tif 000017
【図１４】
0005539071.tif 000018
【図１５】
0005539071.tif 000019
【図１６】
0005539071.tif 000020
【図１７】
0005539071.tif 000021
【図１８】
0005539071.tif 000022