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