画像処理装置及びその処理方法
【課題】画素値と属性値とを含む処理用画像データを用いて、種々の画像処理を行なえるようにした画像処理装置及びその処理方法を提供する。
【解決手段】画像処理装置は、各画素の画素値を保持する画素値フィールドと、属性値を保持する属性値フィールドとを含む処理用画像データに編集する処理手段と、複数の画像処理モジュールとを具備する。各画像処理モジュールは、処理用画像データに対して複数のサブモジュールと、制御を行なうスイッチマトリクスとを具備する。各サブモジュールは、第1の設定情報に基づいて、スイッチマトリクスから入力された処理用画像データの画素値と属性値とを編集し、当該編集された処理用画像データの属性値に基づいて、処理用画像データの画素値に対して画像処理を実施し、第2の設定情報に基づいて、画像処理された処理用画像データの画素値と属性値とを編集してスイッチマトリクスに出力する。
【解決手段】画像処理装置は、各画素の画素値を保持する画素値フィールドと、属性値を保持する属性値フィールドとを含む処理用画像データに編集する処理手段と、複数の画像処理モジュールとを具備する。各画像処理モジュールは、処理用画像データに対して複数のサブモジュールと、制御を行なうスイッチマトリクスとを具備する。各サブモジュールは、第1の設定情報に基づいて、スイッチマトリクスから入力された処理用画像データの画素値と属性値とを編集し、当該編集された処理用画像データの属性値に基づいて、処理用画像データの画素値に対して画像処理を実施し、第2の設定情報に基づいて、画像処理された処理用画像データの画素値と属性値とを編集してスイッチマトリクスに出力する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置及びその処理方法に関する。
【背景技術】
【0002】
記録媒体に対して文字や画像等の情報を記録する記録装置が知られている。記録方式としては、例えば、インクを用いて記録を行なうインクジェット記録方式がある。近年、このようなインクジェット記録方式を採用した複合機(以下、インクジェット複合機と呼ぶ)が普及している。インクジェット複合機の特徴としては、普通紙へのコピーと写真用紙へのダイレクトプリントの両方が1台の装置で実現できるという点が挙げられる。
【0003】
さて、記録速度の向上に伴って画像処理の高速化が要求されている。画像処理は、ハードウェア又はソフトウェアで実現される。ハードウェア規模とコストは、原則的に比例関係にあり、顧客満足度を上げるために機能を向上させつつ製品価格を下げるには、ハードウェアのコストを抑えたままその処理能力を向上させる必要がある。そこで、仕様用途に応じて柔軟に処理を変更するハードウェア技術が提案されている(特許文献1参照)。
【0004】
一般に、コピーでは、文字加工等の処理が行なわれている。文字加工処理は、例えば、文字部をエッジ強調することによる網点部分への弊害を抑えるために行なわれる。そのため、この処理では、文字エリアと網点エリアとを判定してエリアそれぞれに合わせた画像処理を実行する必要がある(特許文献2参照)。
【0005】
また、写真画像の記録(いわゆる、写真印刷)に際しては、覆い焼き処理等が行なわれている。覆い焼きでは、逆光状態の被写体の明度を適切にしつつ、背景部分への弊害を抑えるために、被写体とそれ以外のエリアとを判定してエリアそれぞれに合わせた処理を実行する必要がある(特許文献3参照)。同様に、フラッシュ撮影時の赤目を除去する赤目補正処理や、写真撮影時の暗部ノイズ等を除去するノイズ補正処理等においても、画像全体に対して画一的な処理を行なわない。すなわち、画質が良好な部分への弊害を抑えつつ、特定の弊害発生個所に対して補正処理を実施する必要がある(特許文献4、特許文献5参照)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−178546号公報
【特許文献2】特開2002−77623号公報
【特許文献3】特開平9−18704号公報
【特許文献4】特開平11−355591号公報
【特許文献5】特開2004−15322号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
コピーや写真印刷等に際して、上述した画像処理(すなわち、エリアに応じた画像処理)を高速化する場合、一般に、それぞれ専用の回路を設ける。そのため、例えば、インクジェット複合機のようにコピー機能と写真印刷機能とを備えた装置においては、両方の回路を搭載する必要があり、コストアップを避けられない。
【0008】
本発明は、上記課題に鑑みてなされたものであり、画素値と当該画素値に対応付けられた属性値とを含む処理用画像データを用いて、同一リソース(画像処理部)で種々の画像処理を行なえるようにした技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記課題を解決するため、本発明の一態様の画像処理装置は、画像を表現する画像データを当該画像の各画素に対応して、当該各画素の画素値を保持する画素値フィールドと、属性値を保持する属性値フィールドとを含む処理用画像データに編集する処理手段と、複数の画像処理モジュールとを具備し、前記複数の画像処理モジュール各々は、前記処理用画像データに対して画像処理を実施する複数のサブモジュールと、前記処理用画像データを前記複数のサブモジュールに対して順番に入力し、前記処理用画像データに対して実施すべき一連の画像処理を前記複数のサブモジュールを用いて実施する制御を行なうスイッチマトリクスとを具備し、前記複数のサブモジュール各々は、前記画像処理の前に前記処理用画像データに対して実施する処理を規定した第1の設定情報に基づいて、前記スイッチマトリクスから入力された処理用画像データの画素値と属性値とを編集する入力データ処理手段と、前記入力データ処理手段により編集された前記処理用画像データの属性値に基づいて、該処理用画像データの画素値に対して画像処理を実施する画像処理手段と、前記画像処理された後の処理用画像データに対して実施する処理を規定した第2の設定情報に基づいて、前記画像処理手段により処理された前記処理用画像データの前記画素値と前記属性値とを編集して前記スイッチマトリクスに出力する出力データ処理手段とを具備することを特徴とする。
【発明の効果】
【0010】
本発明によれば、画素値と当該画素値に対応付けられた属性値とを含む処理用画像データを用いて、同一リソース(画像処理部)で種々の画像処理を行なえる。
【図面の簡単な説明】
【0011】
【図1】画像処理装置100の概略構成を示す斜視図。
【図2】図1に示す画像処理装置100の制御部(不図示)の一例を示す図。
【図3】図2に示す画像処理モジュール4の構成の一例を示す図。
【図4】本実施形態に係わる処理用画像データのフォーマットの一例を示す図。
【図5】サブモジュールの構成の一例を示す図。
【図6】属性値伝達ラッパー層110を設けた構成の一例を示す図。
【図7】実施形態1を説明するための概略構成図。
【図8】図7に示す構成における画像処理の流れの一例を示すフローチャート。
【図9】実施形態2を説明するための概略構成図。
【図10】実施形態3を説明するための概略構成図。
【図11】実施形態4を説明するための概略構成図。
【図12】実施形態5を説明するための概略構成図。
【発明を実施するための形態】
【0012】
以下、本発明に係わる画像処理装置及びその処理方法の一実施の形態について添付図面を参照して詳細に説明する。なお、以下の説明においては、インクジェット記録方式を採用した画像処理装置を例に挙げて説明するが、これに限られず、例えば、色材にトナーを用いる電子写真方式を採用してもよい。
【0013】
また、画像処理装置は、例えば、記録機能のみを有するシングルファンクションプリンタであってもよいし、また、例えば、記録機能、FAX機能、スキャナ機能等の複数の機能を有するマルチファンクションプリンタであってもよい。また、例えば、カラーフィルタ、電子デバイス、光学デバイス、微小構造物等を所定の記録方式で製造するための製造装置であってもよい。
【0014】
なお、以下の説明において、「記録」とは、文字、図形等有意の情報を形成する場合のみならず、有意無意を問わない。更に人間が視覚で知覚し得るように顕在化したものであるか否かも問わず、広く記録媒体上に画像、模様、パターン、構造物等を形成する、又は媒体の加工を行なう場合も表す。
【0015】
また、「記録媒体」とは、一般的な記録装置で用いられる紙のみならず、布、プラスチック・フィルム、金属板、ガラス、セラミックス、樹脂、木材、皮革等、インクを受容可能なものも表す。
【0016】
更に、「インク」とは、上記「記録」の定義と同様広く解釈されるべきものである。従って、記録媒体上に付与されることによって、画像、模様、パターン等の形成又は記録媒体の加工、或いはインクの処理(例えば、記録媒体に付与されるインク中の色剤の凝固又は不溶化)に供され得る液体を表す。
【0017】
図1は、本発明の一実施の形態に係わる画像処理装置100の概略構成を示す斜視図である。
【0018】
画像処理装置100は、例えば、記録部と、読取部と、制御部(不図示)とを具備して構成される。記録部には、例えば、インクジェットシリアルプリンタが内蔵されており、読取部には、例えば、CCD方式のフラットヘッドスキャナが内蔵されている。
【0019】
読取部は、記録媒体を光学的に走査して記録媒体に形成された画像を読み取る。読取部は、一般に、記録部の上部に設けられている。読取部には、原稿を押えるための上蓋66が設けられている。上蓋66は、ヒンジ(不図示)により回動自在である。一方、記録部には、記録後の記録媒体を装置外に排出する排紙部67や、記録に用いる記録紙などの記録媒体を積載した給紙部68が設けられている。
【0020】
図1に示すように、記録部は、例えば、ヘッドキャリッジ51、記録ヘッド52、インクタンク53〜56、シャフト57、搬送ローラ59、プラテン50、ヘッドキャリッジモータ(不図示)、搬送モータ(不図示)等を具備して構成される。
【0021】
ヘッドキャリッジ51は、例えば、記録ヘッド52と、黒インクを収容したインクタンク53、シアンインクを収容したインクタンク54、マゼンタインクを収容したインクタンク55、イエロインクを収容したインクタンク56を搭載する。ヘッドキャリッジ51は、シャフト57に沿って矢印B方向に移動する。
【0022】
記録ヘッド52は、例えば、熱エネルギを利用してインクを吐出するインクジェット方式により構成される。記録ヘッド52には、発熱抵抗素子から構成される記録素子(以下、ヒータという)やヒータ駆動回路が設けられる。ヒータは、各ノズルに対応して設けられる。発熱抵抗素子を用いたインクジェット記録方式では、発熱抵抗素子に電圧を印加し、発熱抵抗素子近傍のインクを瞬時に沸騰させる。そして、沸騰時のインクの相変化により生じる急激な発泡圧によってインク滴を吐出する。なお、インクの吐出方式はこれに限られず、例えば、ピエゾ素子を用いた方式、静電素子を用いた方式、MEMS素子を用いた方式など、いずれの方式を採用してもよい。
【0023】
画像処理装置100は、記録動作に際して、給紙部68内の一番上の記録紙58を搬送ローラ59と駆動モータとを用いてU字状(矢印C)に引き込む。記録紙58の先端が記録ヘッド52の下に到達すると、ヘッドキャリッジ51が矢印B方向に往復移動し、記録紙58に記録ヘッド52からインク液滴を吐出する。これにより、1走査分の記録が行なわれる。画像処理装置100は、搬送ローラ59により1走査分に相当する長さ分、記録紙58を搬送した後、再度、ヘッドキャリッジ51を走査させ、記録を行なう。この動作が繰り返し実施されることにより記録が行なわれる。記録媒体に対する記録が終わると、画像処理装置100は、記録紙58を排紙部67上に排紙する。これにより、記録動作が終了する。
【0024】
図2は、図1に示す画像処理装置100の制御部(不図示)の一例を示す図である。
【0025】
CPU1は、画像処理装置100における処理を統括的に制御する。ROM2は、プログラム等を格納する。RAM7は、画像の展開領域やプログラム実行のための作業用領域等として用いられる。特殊用途集積回路(ASIC)30は、例えば、記録ヘッド52を制御するための制御信号を生成する。ASIC30には、画像処理モジュール4−1〜4−mがm個(mは1以上の整数)設けられており、各種画像処理を行なう(以下、これらを総称する場合、画像処理モジュール4と呼ぶ)。詳細については後述するが、画像処理モジュール各々には、コンフィグレーションレジスタ101−1〜101−mがm個(mは1以上の整数)が設けられている(以下、これらを総称する場合、コンフィグレーションレジスタ101と呼ぶ)。
【0026】
アービタ5は、RAM7へのアクセスを調停する。RAMインターフェース6は、RAM7とのインターフェースである。ヘッドインターフェース8は、記録ヘッド52とのインターフェースである。なお、本実施形態においては、CPU1と、各画像処理モジュール4−1〜4−mとによりRAM7を共有して使用する場合を例に挙げて説明するが、CPU1専用のRAMを別途設けてもよい。
【0027】
ここで、処理対象となる画像を受信した時の画像処理装置100の動作について説明する。画像処理装置100は、I/Oポート9において、画像を受信すると、バスブリッジ3、アービタ5、RAMインターフェース6を介して当該受信した画像をRAM7に格納する。この処理は、例えば、CPU1が、ROM2に格納されたプログラムに従うことにより実行される。
【0028】
画像の格納が済むと、画像処理装置100は、CPU1において、画像処理モジュール4−1のコンフィグレーションレジスタ(以下、単にレジスタと呼ぶ)101−1にパラメータを設定する。このパラメータの設定に伴って画像処理モジュール4−1は、動作を開始する。なお、レジスタ101には、画像処理モジュールを動作制御するためのパラメータが保持される。レジスタ101には、例えば、データが格納されたRAM7内のアドレス範囲や、処理後のデータの格納先となるRAM7内のアドレス範囲等が保持される。
【0029】
レジスタ101−1にパラメータが設定されると、画像処理モジュール4−1は、当該設定されたパラメータ(この場合、アドレス範囲)に従ってRAM7からデータを読み出したり、また、RAM7にデータを書き込んだりする。画像処理モジュール4−1は、このパラメータに従って処理を実施する。処理が終了すると、画像処理モジュール4−1は、割り込みを発生し、その旨をCPU1へ通知する。
【0030】
割り込みの通知を受けたCPU1は、その割込要因を解析する。ここで、読出処理の終了に伴って送られてきた通知であれば、CPU1は、次のデータの読出アドレス範囲をレジスタ101−1に設定し、画像処理モジュール4−1の処理を続行させる。また、書込処理の終了に伴って送られてきた通知であれば、CPU1は、処理後のデータの格納先となるアドレス範囲をレジスタ101−1に設定し、画像処理モジュール4−1の処理を続行させる。このとき、CPU1は、画像処理モジュール4−2のレジスタ101−2にパラメータを設定し、画像処理モジュール4−2に動作を開始させる。
【0031】
パラメータの設定に伴って画像処理モジュール4−2は、画像処理モジュール4−1同様に処理を開始する。そして、画像処理モジュール4−2は、上述した読出処理又は書込処理が終了すると、割り込みを発生し、その旨をCPU1へ通知する。その後、上記同様の処理が行なわれ、例えば、画像処理モジュール4−3の動作が開始する。このように画像処理装置100においては、ある画像処理モジュール4による処理が終わると、次の画像処理モジュール4が起動し、処理データが次々と各画像処理モジュール4に受け渡される。これにより、画像処理モジュール4を単位としたパイプラインが実現される。
【0032】
1つの画像処理モジュール4において、CPU1により指示された画像処理の実行が開始されてから当該画像処理モジュール4が画像処理を終了し、処理後のデータの出力が可能となるまでの間に、他の画像処理モジュール4でも並行して処理を行なえる。具体的には、RAM7から他の画像処理モジュール4へのデータの入力及び当該他の画像処理モジュールで処理が終了したデータのRAM7への出力を行なえる。更に、画像処理モジュール4は、他の画像処理モジュール4と独立して画像処理を行なうため、複数の画像処理モジュール4を並行して動作させることができ、複数の画像処理を同時に進行させることができる。
【0033】
以上のようにして画像処理モジュール4−m−1まで処理が進み、所定サイズ以上のビットマップデータが生成されると、CPU1は、記録部を起動させる。画像処理モジュール4−mは、記録部の同期信号に合わせてビットマップデータを記録部へ送る。これにより、記録媒体に画像が記録される。
【0034】
図3は、図2に示す画像処理モジュール4の内部構成の一例を示す図である。
【0035】
画像処理モジュール4は、リードバッファ10と、サブモジュール11−1〜11−n(これらを総称する場合、サブモジュール11と呼ぶ)と、ライトバッファ12と、アービタ13と、リードアドレス生成部14とを具備して構成される。また更に、画像処理モジュール4には、割込制御部15と、ライトアドレス生成部16と、スイッチマトリクス17と、レジスタ101と、クロック分配部102と、電源供給部103とが設けられる。
【0036】
レジスタ(コンフィグレーションレジスタ)101には、スイッチマトリクス17、リードアドレス生成部14やライトアドレス生成部16、等の動作に係わるパラメータが設定される。クロック分配部102は、装置のクロックパルスclkを画像処理モジュール4内の各部へ分配する。クロック分配部102は、レジスタ101の設定により、任意のサブモジュール11へのクロックclkの供給を停止できる。電源供給部103は、画像処理モジュール4内の各部への電源供給を制御する。電源供給部103は、レジスタ101の設定により、任意のサブモジュールへの電源供給を停止できる。スイッチマトリクス17では、予め決められた順番で複数のサブモジュール11に対してデータを順次入力する。これにより、処理対象となるデータに対して実施すべき一連の画像処理を複数のサブモジュール11を用いて実施する。
【0037】
スイッチマトリクス17が、複数のサブモジュール11に対して処理用画像データを入力する順番は、予め決められている。この順番は、例えば、リードバッファ10、サブモジュール1、サブモジュール2、・・・、サブモジュールn、ライトバッファ12のように固定的に決めることができる。これにより、スイッチマトリクス17は、常に決められた順にサブモジュール間で処理用画像データを移動させればその役割を果たせるので、スイッチマトリクス17の構成を簡略化できる。画像処理モジュール4内の各サブモジュール間での処理用画像データの入力順番が固定されていたとしても、CPU1において、各サブモジュールに与える処理の内容の順番を入れ替えるようにすれば、1つの画像処理モジュール4で種々の画像処理を実現できる。
【0038】
ここで、1つの画像処理モジュール4において、種類の異なるサブモジュール11が混在している場合を考えてみる。サブモジュール1(11−1)〜n−1(11−n−1)が、後述する図5に示す(適応的)画像処理部413を持つサブモジュールであり、サブモジュールn(11−n)が後述する図6に示す(静的)画像処理部413であるとする。この場合、(静的)画像処理部413が処理用画像データを処理する順番が固定されてしまうという不都合が考えられる。しかし、この不都合は、複数の画像処理モジュール4を組み合わせて使用することで解消できる。例えば、1つ目の画像処理モジュール4では、(適応的)画像処理部413及び(静的)画像処理部413において、(静的)画像処理部413を使用する処理を含む前半の画像処理を実施する。そして、(静的)画像処理部413を使用する処理の済んだ処理用画像データを2つ目の画像処理モジュール4へ転送する。当該処理用画像データを受信した2つ目の画像処理モジュール4では、(適応的)画像処理部413において、後半の画像処理を行なう。なお、2つ目の画像処理モジュール4では、(適応的)画像処理部413において、後半の画像処理を実施した後、(静的)画像処理部413を使用せずに、そのままライトバッファ12へデータを転送する。
【0039】
一方、1つの画像処理モジュール4において、種類の異なるサブモジュールが混在している場合であっても、サブモジュール間の処理の順番を変更するように設計できる。これは、CPU1において、サブモジュール間の処理の順番を指示する順番情報をレジスタ101に設定し、スイッチマトリクス17が、当該順番情報を参照して処理用画像データの入力順番を制御するようにすれば実現できる。この場合、サブモジュール間の処理の順番を固定した場合と比べ、スイッチマトリクス17の構成が複雑になる。しかし、この場合、複数の画像処理モジュール4それぞれにおいて別々の画像処理を実施するように構成できるため、複数の画像処理モジュール4を用いて1つの画像処理を行なう場合に比べて、画像処理速度の向上が見込める。
【0040】
上述した通り、CPU1は、画像処理モジュール4のレジスタ101にパラメータを設定する。このパラメータ設定により、リード開始アドレスとリード終了アドレスとが設定された場合、リードアドレス生成部14は、リードイネーブル信号Renを出力する。このとき、リードアドレス生成部14は、レジスタ101に設定されたパラメータを参照してリードアドレスRad、RAM7からのリードアクセス単位Rnを出力する。Rnが固定的な値であれば、レジスタ101にパラメータを参照せずにRnを出力してもよい。また、ライト開始アドレスとライト終了アドレスとが設定された場合、ライトアドレス生成部16は、ライトイネーブル信号Wenを出力する。このとき、リードアドレス生成部14は、レジスタ101に設定されたパラメータを参照してリードアドレスWad、RAM7からのリードアクセス単位Wnを出力する。Wnが固定的な値であれば、レジスタ101にパラメータを参照せずにWnを出力してもよい。
【0041】
アービタ13は、リードバッファ10の空き容量Rpとリードアドレス生成部14からのリードイネーブル信号Renとを検出する。検出の結果、リードアドレスが有効(Ren=1)であり、また、リードバッファ10に空き領域があるとする(Rp≧Rn(Rn:RAM7からのリードアクセス単位))。この場合、アービタ13は、アービタ5に対してリードリクエスト(PREQ=1、PNRW=0、PNUM=Rn、PADD=Rad)を発行する。
【0042】
一方、ライトバッファ12のデータ蓄積量Wpが所定サイズ以上(Wp≧Wn(Wn:RAM7へのライトアクセス単位)あれば、アービタ13は、ライトアドレス生成部16のライトイネーブル信号Wenを検出する。そして、アービタ13は、アービタ5に対してライトリクエストを発行する。すなわち、ライトアドレスが有効(Wen=1)であり、ライトバッファ12がデータ出力可能(Wp≧Wn)であれば、アービタ13は、アービタ5へライトリクエスト(PREQ=1、PNRW=1、PNUM=Wnum、PADD=Wad)を発行する。
【0043】
アービタ5は、画像処理モジュール4からリクエスト信号PREQを受け取ると、信号PNRWに基づいてリードリクエストであるかライトリクエストであるかを判定する(0:リード、1:ライト)。また、アービタ5は、信号PNUMに基づいて転送サイズ(転送ワード数)を検出するとともに、信号PADDに基づいてアドレスを検出する。ここで、他のリクエスト(CPU1、他の画像処理モジュール4からのリクエスト)がなければ、アービタ5は、RAM7内の該当データへのアクセスを開始し、受領信号PACKをリクエスト元の画像処理モジュール4に返す。一方、他のリクエストがあれば、アービタ5は、各リクエストに対応した処理を調停し、優先順位に従って順番に処理を実行させる。
【0044】
アービタ13は、アービタ5から受領信号PACKを受け取ると、リードリクエストであるかライトリクエストであるかを判定する。判定の結果、リードリクエストであれば、アービタ13は、受領信号Rackをリクエスト元のリードアドレス生成部14に返す。受領信号Rackを受け取ったリードアドレス生成部14は、データ読出先となるRAM7内のアドレスを生成しRadへ出力する。なお、リクエストされたアドレス(リードアドレス生成部14で生成したアドレス)がレジスタ101に設定されたリード終了アドレスであれば、リードアドレス生成部14は、リードイネーブル信号Renをリセットする。また、リードアドレス生成部14は、割込制御部15に向けてリード終了信号Rendを出力する。
【0045】
一方、アービタ5からの受領信号PACKがライトリクエストであった場合、アービタ13は、受領信号Wackをリクエスト元のライトアドレス生成部16に返す。受領信号Wackを受け取ったライトアドレス生成部16は、データ書込先となるRAM7内のアドレスを生成する。なお、リクエストされたアドレスがレジスタ101に設定されたライト終了アドレスであれば、ライトアドレス生成部16は、ライトイネーブル信号Wenをリセットするとともに、割込制御部15に向けてライト終了信号Wendを出力する。
【0046】
ここで、割込制御部15は、レジスタ101に設定されたパラメータに基づいてリード終了割込マスク及びライト終了割込マスクの設定を行なう。割込制御部15は、各割込マスクの設定がイネーブルであれば、リード終了信号Rend又はライト終了信号Wendに応じて割込信号INTを生成し、その生成した信号をCPU1へ通知する。
【0047】
割込信号INTを受けたCPU1は、割込制御部15のステータスを読み取り、割込要因を判定する。判定の結果、割込要因がリード終了であれば、CPU1は、リード終了割込マスクをリセットして割り込みを解除する。なお、処理を継続する場合には、CPU1において、リード開始アドレスとリード終了アドレスとをレジスタ101に再設定し、それに伴ってリードアドレス生成部14において、リードイネーブル信号Renを出力等する。その後、割込制御部15において、リード終了割込マスクを設定する。
【0048】
一方、割込制御部15のステータスを読み取った結果、その割込要因がライト終了であれば、CPU1は、ライト終了割込マスクをリセットして割り込みを解除する。なお、処理を継続する場合には、CPU1において、ライト開始アドレスとライト終了アドレスとをレジスタ101に再設定し、それに伴ってライトアドレス生成部16において、ライトイネーブル信号Wenを出力等する。その後、割込制御部15において、ライト終了割込マスクを設定する。
【0049】
ここで、RAM7からデータが読み出されると、アービタ5は、RAMデータ有効信号PVALIDをリクエスト元の画像処理モジュール4に返す。リクエスト元の画像処理モジュール4では、アービタ13において、リードバッファ10へデータ有効信号Rvalidを返す。リードバッファ10は、このデータ有効信号Rvalidが出力されている間、RAMデータ出力信号PDINに含まれるデータを格納する。これにより、信号PADD(=Rad)に示されるアドレス(リードアドレス生成部14が生成したアドレス)に基づいてRAM7から読み出されたデータがリードバッファ10へ格納される。
【0050】
一方、RAM7にデータを書き込む場合、アービタ5は、RAM7の書込タイミングに合せてリクエスト元の画像処理モジュール4にRAMデータ有効信号PVALIDを返す。リクエスト元の画像処理モジュール4では、アービタ13において、ライトバッファ12へデータ有効信号Wvalidを返す。ライトバッファ12は、データ有効信号Wvalidが出力されている間、RAMデータ入力信号PDOUTを用いて書込データを出力する。これにより、ライトバッファ12のデータが信号PADD(=Wad)に示されるRAM7内のアドレス(ライトアドレス生成部16が生成したアドレス)へ格納される。
【0051】
リードバッファ10は、サブモジュール11の処理に必要なデータが全て格納されると、有効信号valid_outを出力し、そうでなければ、有効信号valid_outをリセットする。また、リードバッファ10は、サブモジュール11からの保持要求信号stall_inが入力されていなければ、格納されたデータをクロックに同期してdata_outへ順次出力する。なお、サブモジュール11からの保持要求信号stall_inが入力されていれば、data_outへ出力するデータの更新は行なわない。ここで、サブモジュール11から出力された保持要求信号stall_outは、リードバッファ10の保持要求信号stall_inへ入力される。一方、サブモジュール11は、処理後のデータのライトバッファ12への出力が可能になると、有効信号valid_outを出力し、そうでなければ、有効信号valid_outをリセットする。また、サブモジュール11は、保持要求信号stall_inがリードバッファ10から入力されていなければ、格納されたデータをクロックに同期してdata_outへ順次出力する。なお、保持要求信号stall_inがリードバッファ10から入力されていれば、data_outへ出力するデータの更新は行なわない。ここで、ライトバッファ12から出力された保持要求信号stall_outは、サブモジュール11の保持要求信号stall_inへ入力される。サブモジュール11同士のデータの送受信も、上述したサブモジュール11、リードバッファ10又はライトバッファ12間の手順と同様に行われる。
【0052】
サブモジュール11は、リードバッファ10又は他のサブモジュール11から有効信号valid_outが出力されている間、data_inを介してリードバッファ10又は他のサブモジュール11からデータを受け取る。サブモジュール11は、有効信号valid_outを出力している間、data_inを介してライトバッファ又は他のサブモジュール11へデータを出力する。なお、データの受け取りができない場合、サブモジュール11は、保持要求信号stall_outを出力する。これにより、データ送信元であるリードバッファ10又は他のサブモジュール11の保持要求信号stall_inをセットし、リードバッファ10の出力をホールドする。また、ライトバッファ12又は他のサブモジュール11がデータの受け取りができない場合、ライトバッファ12又は他のサブモジュール11は、保持要求信号stall_outを出力する。これにより、データ送信元であるサブモジュール11の保持要求信号stall_inをセットし、サブモジュール11の出力をホールドする。リードバッファ10、サブモジュール11、ライトバッファ12間のデータ入出力の順番は、スイッチマトリクスがレジスタ101の設定に従って管理する。そして、その順番に従って、data_in及びdata_out、valid_in及びvalid_out、stall_in及びstall_outが接続され、データが入出力される。なお、入力データ又は出力データを並び替える必要がなければ、リードバッファ10やライトバッファ12は、例えば、FIFOで構成すればよい。
【0053】
以上のように画像処理モジュール4の内部は、1つ以上のサブモジュール11により構成される。各サブモジュール11間では、上述した動作(有効信号validと保持要求信号stallによるハンドシェーク(あるモジュールの_inは他のモジュールの_outに接続される))によってデータの受け渡しが行なわれる。これらサブモジュール11は、各種画像処理に必要なハードリソースに着目して構成する。これにより、各サブモジュールの接続関係や処理シーケンス、演算精度等を適宜変更できるため、多様な処理モードに対応できるコンパクト且つ柔軟な画像処理装置を構築することができる。また、未使用サブモジュール11へのクロックの停止や、未使用サブモジュール11への電源供給を停止できるため、処理速度や処理精度のみならず、消費電力の抑制も図れる。
【0054】
なお、画像処理モジュール4を多様なフォーマットに対応できるように構成した場合、分割処理(マルチシーケンス処理)を実現できる。この場合、上述したハードリソースでは未対応な処理であっても、別モジュールやCPU等で実行するように構成できる。基本的には、リードバッファ10、各サブモジュール11、ライトバッファ12間の入力データ及び出力データのフォーマットは、統一することが望ましい。フォーマットを統一した場合、サブモジュールの処理順番を入れ替えたり、特定のサブモジュールを不使用にしたりする場合でも、リードバッファ10、各サブモジュール11、ライトバッファ12間でのデータの入出力データフォーマットに変更は生じない。
【0055】
ここで、図4は、本実施形態に係わる入出力データフォーマットの一例を示す図である。このフォーマット(以下、処理用画像データと呼ぶ)は、例えば、上述したサブモジュール11やスイッチマトリクス17等の間において共有して使用される。
【0056】
処理用画像データ301は、属性値を持たない形式である。この形式は、従来同様の形式である。この処理用画像データ301は、R(赤)、G(緑)、B(青)、それぞれ32bitづつの画素値を持つ画素値フィールド(3011〜3013)から構成され、全部で96bitとなる。
【0057】
処理用画像データ302は、8bitの属性値フィールドを3つ(3024〜3026)、24bitの画素値フィールドを3つ(3021〜3023)持つ形式である。ここで、本実施形態においては、この属性値フィールドに対して各種設定値(属性値)を設定する。属性値は、その種類や役割が固定されておらず、自由な値が設定される。例えば、どの画像処理サブモジュールでどのような処理を行なうかを示す値や、属性値フィールドの内、どのフィールドを参照してどのような処理を行なうか、等を示す値を設定することができる。
【0058】
処理用画像データ303は、8bitの属性値フィールドを6つ(3034〜3039)、16bitの画素値フィールドを3つ(3031〜3033)持つ形式である。処理用画像データ304は、16bitの属性値フィールドを3つ(3044〜3046)、16bitの画素値フィールドを3つ(3041〜3043)持つ形式である。処理用画像データ305は、16bitの属性値フィールドを2つ(3054、3055)、8bitの属性値フィールドを2つ(3056、3057)、16bitの画素値フィールドを3つ(3051〜3053)持つ形式である。
【0059】
本実施形態においては、これら処理用画像データ301〜305は、いずれも全体として96bitのフォーマットで構成されている。そのため、属性値のダイナミックレンジを大きくする(属性値フィールドのbit数を多くする)と、画素値のダイナミックレンジは小さくなり(画素値フィールドのbit数が少なくなる)、属性値及び画素値は、トレードオフの関係を持つ。
【0060】
これを踏まえると、処理用画像データ301の構成は、画素値の精度を最も高く維持できる形式であるといえる。また、処理用画像データ302の構成は、画素値の精度を高く維持しつつ、属性値も使用できる形式であるといえ、処理用画像データ303の構成は、各画素の保持する属性値の数を更に増やした形式であるといえる。処理用画像データ304の構成は、属性値が画素値と同じダイナミックレンジを持ち、より高精度な属性値による制御を実現する形式であるといえる。処理用画像データ305の構成は、2種類のサイズの属性値を持ち、必要に応じて大小の属性値を組み合わせて使用できる形式であるといえる。
【0061】
以上のような処理用画像データを用いることにより、様々なユースケースにおいて異なる画像処理を実施できる。具体的には、属性値を用いることにより、同一リソースを用いて異なる画像処理を実施できる。これにより、画像処理の柔軟性と回路サイズの低減とが図れる。
【0062】
以上が処理用画像データのフォーマットについての説明であるが、上述したフォーマットの構成はあくまで一例であり、これに限られない。例えば、上述した説明では、各画素値が32bit、全体サイズが96bitである場合を例に挙げて説明したが、サイズは、これ以外であってもよい。例えば、各画素値が16bit、全体サイズが48bitであってもよい。また、各画素値のbit数は、同一である必要もなく、例えば、R:10bit、G:12bit、B:10bitのように、各画素値を不均一なサイズとしてもよい。なお、図4に示すフォーマット(処理用画像データ)は、例えば、CPU1(画像処理モジュール4であってもよい)により作成される。すなわち、CPU1においては、画像を表現する画像データを当該画像の各画素に対応して、当該各画素の画素値を保持する画素値フィールドと、属性値を保持する属性値フィールドとを含む処理用画像データに編集する機能を備える。
【0063】
次に、図5を用いて、画像処理を行なうサブモジュール(以下、画像処理サブモジュールと呼ぶ)の構成について説明する。画像処理サブモジュールは、図3に示すサブモジュール11として実現される。なお、上述した図3に示す構成と同一ものには同一の符号が付してある。
【0064】
入力データ処理方法設定部401は、レジスタ101に設定されたパラメータを参照して、入力属性値と入力画素値とに対する処理方法を設定する。なお、入力属性値及び入力画素値を含む処理用画像データは、スイッチマトリクス17からのData_in制御信号により入力される。
【0065】
出力データ処理方法設定部402は、レジスタ101に設定されたパラメータを参照して、出力属性値と出力画素値とに対する処理方法を設定する。なお、出力属性値及び出力画素値を含む処理用画像データは、Data_out制御信号によりスイッチマトリクス17に出力される。この入力処理用画像データ及び出力処理用画像データに対する処理方法の設定は、CPU1において、リードバッファ10、各サブモジュール11−n、ライトバッファ12に係わる設定値をコンフィグレーションレジスタ101に設定することで行なわれる。この設定の仕方については特に問わない。例えば、図1に示す画像処理モジュール4各々からCPU1への信号線を双方向化する。そして、CPU1と画像処理モジュール4各々のレジスタ101とを接続し、CPU1からコンフィグレーションレジスタ101に直接設定してもよい。また、CPU1と画像処理モジュール4各々のスイッチマトリクス17とを接続し、レジスタ設定コマンドを実行することでスイッチマトリクス17を介して設定してもよい。なお、以下、説明する各種設定全てについても、その設定の仕方については特に問わない。
【0066】
入力属性値処理部403は、入力処理用画像データに含まれる入力属性値を編集する。Bit拡張器404は、入力処理用画像データに含まれる入力画素値を画像処理部413の処理に適したフォーマットにBit拡張する。なお、入力属性値処理部403及びBit拡張器404における処理は、入力データ処理方法設定部401により設定される設定情報(第1の設定情報)に基づいて行なわれる。
【0067】
第1の属性値管理部405は、入力属性値処理部403により処理された入力属性値を遅延器406に保持させる。また、出力属性値の出力に際しては、所定のタイミングで出力属性値処理部407に向けて出力画素値を出力する。この出力タイミングは、画像処理部413の電気的構成に合わせる必要がある。
【0068】
例えば、画像処理部413が、以下の処理を行なうとする。
【0069】
入力画素:連続する3入力画素(画素(X−1)、画素(X)、画素(X+1))
出力画素:画素Xの位置
出力値:3画素の和
画素値(X−1)+画素値(X)+画素値(X+1)
属性値:特に処理せず、出力属性値(X)=入力属性値(X)
この場合、出力値を算出するために出力属性値(X)を用いるが、最終的な出力値が決まるのは、画素(X+1)が入力されたタイミングとなる。そのため、第1の属性値管理部405においては、出力画素値(X)が画像処理部413から出力属性値処理部407に送られるタイミングで遅延器406に既に保持されている属性値(X)を取り出し、出力属性値処理部407に出力する。すなわち、画素(X)より後に入力される画素(X+1)を用いた出力画素値(X)の演算が終了するまで、出力画素値(X)の属性値となる属性値(X)を遅延器406で保持する。以下、これと同様に、出力画素値(X)の出力タイミングとなるまで出力画素値(X)の属性値となる値を遅延器406で保持する。
【0070】
遅延器406は、上述した通り、属性値(入力属性値、出力属性値)を保持する。遅延器406は、属性値の入出力を遅延させるために設けられる。この遅延器406による処理について具体例を挙げて説明する。
例えば、画像処理部413が、以下の処理を行なうとする。
入力画素:連続する3入力画素(画素(X−1)、画素(X)、画素(X+1))
出力画素:画素Xの位置
出力値:3画素の和を属性値で除算する
(画素値(X−1)+画素値(X)+画素値(X+1))÷属性値(X)
属性値:特に処理せず、出力属性値(X)=入力属性値(X)
この場合、画像処理部413においては、入力画素値(X+1)が入ってきたタイミングで入力属性値(X)が必要となる。そのため、遅延器406において、画像処理部413への入力属性値(X)の入力を遅延させる。
【0071】
出力属性値処理部407は、画像処理部413から出力された出力属性値を編集する。Bit圧縮器408は、出力処理用画像データに含まれる出力画素値を出力用のフォーマットにBit圧縮する。なお、出力属性値処理部407及びBit圧縮器408における処理は、出力データ処理方法設定部402により設定される設定情報(第2の設定情報)に基づいて行なわれる。
【0072】
入力属性値情報設定部409は、レジスタ101に設定されたパラメータを参照して、遅延器406に保持される入力属性値の内、どの属性値を画像処理部413による画像処理時に用いるのかを規定する設定情報(第3の設定情報)を設定する。すなわち、複数の画素値フィールドの画素値と、複数の属性値フィールドの属性値とのいずれを対応付けて画像処理部413に入力するかを示す情報を設定する。
【0073】
出力属性値情報設定部410は、レジスタ101に設定されたパラメータを参照して、遅延器406に保持される出力属性値をどの属性値フィールドに設定するのかを規定する設定情報(第4の設定情報)を設定する。すなわち、画像処理部413により処理された複数の画素値フィールド各々に対して、複数の属性値フィールドのいずれかを対応付けるかを示す情報を設定する。言い換えれば、出力属性値情報設定部410は、画像処理部413により処理された出力属性値の属性値フィールドを設定する。
【0074】
第2の属性値管理部411は、画像処理部413における属性値の入出力を管理する。この管理は、入力属性値情報設定部409及び出力属性値情報設定部410により設定された設定情報に基づいて行なわれる。第2の属性値管理部411は、例えば、遅延器406から入力属性値を取り出し、画像処理部413に向けて出力する。また、第2の属性値管理部411は、例えば、画像処理部413から出力された出力属性値を遅延器406に保持させる。
【0075】
パラメータ設定部412は、レジスタ101に設定されたパラメータを参照して、画像処理固有の処理パラメータを設定する。画像処理部413は、画素毎に属性値に応じた画像処理を行なう(適応的画像処理)。具体的には、Bit拡張器404、第2の属性値管理部411、パラメータ設定部412等から入力される入力画素値、入力属性値、パラメータ等を用いて所定の画像処理を行なう。また、画像処理部413は、出力画素値を必要に応じてBit圧縮器408に向けて出力し、出力属性値を必要に応じて第2の属性値管理部411に向けて出力する。なお、本実施形態に係わる画像処理部413では、各画素値(R/G/B)それぞれを入出力ともに32bitで処理する。従って、属性値を使用する場合、Bit拡張器404において、「16bit」or「24bit」から「32bit」への拡張が行なわれる。また逆に、Bit圧縮器408においては、「32bit」から「16bit」or「24bit」への圧縮が行なわれる。すなわち、ビット数を合わせる(この場合、属性値フィールドのビット数と、画素値フィールドのビット数との比率が変更されることになる)。なお、必ずしもこのようなBit関係である必要はなく、画像処理部413における画像処理Bit数が入力属性値処理部403で抽出された画素値のBit数より小さくてもよい。この場合、例えば、図5に示すBit拡張器404とBit圧縮器408との位置を相互に入れ替えて対応すればよい。また、Bit拡張及び圧縮の方法としては、ビットシフトを用いてもよいし、乗算、除算を行なうようにしてもよい。
【0076】
このように本実施形態においては、Bit拡張器404及びBit圧縮器408を設け、処理用画像データ内で保持される画素値フィールド(すなわち、画素)のbit数が異なる場合であっても、画像処理部413の入出力段階では、Bit数を一定にする。これにより、属性値のBit数、画素値のBit数によらず、同一リソース(画像処理部)を用いた画像処理が実現できる。
【0077】
以上、画像処理サブモジュールの構成について説明したが、画像処理サブモジュールにおいては、上述した構成全てが必ずしも必須の構成ではない。例えば、1画素入力して所定の画像処理を施して1画素出力する場合には、遅延器406は不要となる。このとき、第1の属性値管理部405と第2の属性値管理部411とが一体で構成されてもよい。更に、上述した画像処理サブモジュールでは、属性値の設定変更も行なうことになるが、単に属性値を使用して画像処理を行なうモジュールを構成してもよい。この場合、出力属性値情報設定部410は不要となる。また、同様に属性値を画像処理に使用せず、属性値の設定変更のみを行なうモジュールを構成した場合には、入力属性値情報設定部409は不要となる。
【0078】
ここで、図3に示す構成においては、複数のサブモジュールが配されている。この中に属性値非対応のサブモジュール(以下、属性値非対応サブモジュールと呼ぶ)が混在している場合、そのモジュールでは、属性値が画素値として取り扱われてしまう可能性がある。この場合、正しい出力結果が得られなくなってしまう。図6を用いて、これに対処する構成について説明する。
【0079】
属性値非対応サブモジュール11とスイッチマトリクス17との間には、属性値伝達ラッパー層110が設けられる。属性値伝達ラッパー層110は、スイッチマトリクス17と属性値非対応サブモジュール11との間の中間層(すなわち、中間処理モジュールとして機能する)に位置し、属性値を伝達する役割を果たす。これにより、属性値非対応サブモジュール11は、属性値対応サブモジュールであるかのように振舞うことができる。なお、属性値伝達ラッパー層110の符号401〜408に示す各構成部は、図5を説明した各構成部と同等の機能を果たすため、その説明については省略する。
【0080】
パラメータ設定部412は、レジスタ101に設定されたパラメータを参照して、画像処理固有の処理パラメータを設定する。画像処理部413は、画素毎に一様な画像処理を行なう(静的画像処理)。具体的には、Bit拡張器404及びパラメータ設定部412等から入力される入力画素値及びパラメータ等を用いて所定の画像処理を行なう。また、画像処理部413は、出力画素値を必要に応じてBit圧縮器408に向けて出力する。なお、スイッチマトリクス17と属性値非対応サブモジュールとの間の制御信号の内、Valid_in、Stall_in、Stall_out、Valid_outについては、属性値伝達ラッパー層110を介さずに両者の間を直結するようにしてもよい。
【0081】
属性値伝達ラッパー層110から属性値非対応サブモジュール11へのData_inには、入力画素値のみが含まれる。これは、属性値伝達ラッパー層110の入力属性値処理部403及びBit拡張器404において、属性値が取り除かれるためである。また、属性値非対応サブモジュール11から属性値伝達ラッパー層110へのData_outには、出力画素値のみが含まれる。
【0082】
以上の構成により画像処理部413を変更せずに、属性値を伝達する仕組みを実現できる。ここで、仮に、画像処理部413において、32bit演算処理を行なうとした場合、画素値のBit幅が属性値の分、低減することになるが、画像処理の精度自体が変わる分けではない。また、属性値伝達ラッパー層110を設けることにより、属性値対応サブモジュールと属性値非対応サブモジュールとが混在した画像処理モジュール4を構成できる。これにより、共通のフォーマット(すなわち、処理用画像データ)を用いて、bit数の多い高精度な画像処理(静的)と、相対的にbit数は減るが適応的な画像処理との両方を実現することができる。
【0083】
次に、「表1」を用いて、入力データ処理方法設定部401により設定される設定情報について説明する。すなわち、入力属性値処理部403及びBit拡張器404は、この「表1」の設定情報に基づいて各種処理を実行する。なお、「表1」に示す設定値はあくまで一例であり、これに限られない。
(表1)
【0084】
[Get_Mode10]
この設定は、処理用画像データが図4に示すフォーマット301である場合に好適である。この場合、処理用画像データ(すなわち、96bit)は、全て画素値フィールド(画素値フィールド32bit x 3)で構成される。この設定では、入力属性値処理部403は、属性値フィールドに全て0(標準値)を設定する。なお、この場合、画素値が32bitあるので、Bit拡張器404は動作しない。
【0085】
[Get_Mode11]
この設定は、処理用画像データが図4に示すフォーマット302である場合に好適である。この場合、処理用画像データ(すなわち、96bit)は、画素値フィールドの24bit x 3と、属性値フィールドの8bit x 3とから構成される。この設定では、入力属性値処理部403は、属性値フィールドに全て0(標準値)を設定(上書き)する。これにより、画像処理部413においては、適応的な画像処理ではなく、静的な画像処理が行なわれる。また、この場合、画素値が24bitなので、Bit拡張器404は、「24bit」から「32bit」へのBit拡張を行なう。この「Get_Mode11」の設定は、例えば、他のサブモジュールの処理内容を属性値として生成し、それを設定する役割を果たすモジュール等で用いられる。例えば、「Get_Mode11」を実行するサブモジュールでは、画像の特徴を抽出する処理(エッジ部であるか否かの判定等)を行ない、元の画素値とともに出力する。この場合、「Get_Mode11」を実行するサブモジュールでは、画像処理部413において、画素値フィールドの画素値に基づき画像の特徴を抽出する。そして、その判定結果を属性値として生成し、生成した属性値を属性値フィールドに設定する。また、なんら加工や補正を行なっていない画素値を画素値フィールドに設定する。その後、出力属性値処理部407において、処理用画像データを出力する。この処理用画像データがスイッチマトリクス17を介して後続のサブモジュールへ転送される。すると、後続のサブモジュールでは、受け取った処理用画像データの属性値フィールドに設定された属性値を用いて、画素値に対する処理内容を決定して適応的に画像処理を実行する。また、この「Get_Mode11」の設定では、入力属性値処理部403において、属性値フィールドに0を設定してしまうため、属性値の伝播を中止できる。なお、属性値の伝播の中止のみを行なうのであれば、属性値フィールドに0を設定した処理用画像データを出力すればよいので、属性値の出力側、すなわち、出力属性値処理部407において、この処理(0パディング)を行なうようにしてもよい。更に、属性値の伝播を中止するとともに、新たに生成した属性値を属性値フィールドに設定する場合には、入力属性値処理部403で属性値を0にしなくてもよい。具体的には、画像処理部413において、属性値を用いずに画像処理を実施し、新たに生成した属性値を、属性値の出力側、すなわち、出力属性値処理部407において、属性値フィールドに設定する。そして、出力属性値処理部407において、処理用画像データを出力する。「Get_Mode11」を設定した場合、サブモジュール単体で処理が閉じることになるので、人為的ミス等が介在する可能性を低減させることができる。
【0086】
[Get_Mode12]
この設定は、処理用画像データが図4に示すフォーマット302である場合に好適である。この設定では、入力属性値処理部403は、入力された処理用画像データに含まれる属性値をそのまま設定することになる。「Get_Mode12」の設定は、例えば、属性値を使用して適応的な画像処理を行なう場合に用いられる。
【0087】
[Get_Mode13]
この設定は、上述した「Get_Mode11」とほぼ同じ動作となる。処理用画像データが図4に示すフォーマット303〜305である場合に好適である。「Get_Mode11」との相違点としては、属性値及び画素値のBit数にある。「Get_Mode13」を設定した場合、Bit拡張器404によるBitの拡張度合いは、「16bit」から「32bit」となる。
【0088】
[Get_Mode14]
この設定は、上述したGet_Mode12とほぼ同じ動作となる。処理用画像データが図4に示すフォーマット303〜305である場合に好適である。「Get_Mode12」との相違点としては、属性値及び画素値のBit数にある。「Get_Mode14」を設定した場合、Bit拡張器404によるBitの拡張度合いは、「16bit」から「32bit」となる。
【0089】
次に、「表2」を用いて、出力データ処理方法設定部402により設定される設定情報について説明する。すなわち、出力属性値処理部407及びBit圧縮器408は、この「表2」の設定情報に基づいて各種処理を実行する。なお、「表2」に示す設定値はあくまで一例であり、これに限られない。
(表2)
【0090】
[Put_Mode20]
この設定は、出力する処理用画像データが図4に示すフォーマット301である場合に好適である。この場合、処理用画像データ(すなわち、96bit)は、全て画素値フィールド(画素値フィールド 32bit x 3)で構成される。この設定では、出力属性値処理部407では属性値を設定しない。また、画素値が32bitあるので、Bit圧縮器408も動作しない。
【0091】
[Put_Mode21]
この設定は、出力する処理用画像データが図4に示すフォーマット302である場合に好適である。この場合、処理用画像データ(すなわち、96bit)は、画素値フィールドの24bit x 3と、属性値フィールドの8bit x 3とから構成される。この設定では、出力属性値処理部407は、属性値フィールドに全て0(標準値)を設定(上書き)する。これにより、他のサブモジュールに向けては、属性値が無効な状態の処理用画像データが出力されることになる。また、画素値が32bitあるので、Bit圧縮器408は、「32bit」から「24bit」へのBit圧縮を行なう。この「Put_Mode21」の設定は、例えば、自身(当該サブモジュール)は、属性値を用いた適応的な画像処理を実施するが、他のサブモジュールでは、属性値を用いない静的な画像処理を実施させる場合に用いられる。「Put_Mode21」の設定では、属性値フィールドに0を設定するため、属性値の伝播を中止できる。なお、属性値の入力側、すなわち、入力属性値処理部403において、この処理(0パディング)を行なうようにしてもよい。「Put_Mode21」を設定した場合、他の属性値非対応サブモジュールでの弊害発生確率を低減させることができる。
【0092】
[Put_Mode22]
この設定は、上述した「Put_Mode21」とほぼ同じ動作となる。処理用画像データが図4に示すフォーマット302である場合に好適である。この設定の場合、出力属性値処理部407は、画像処理部413から出力された属性値をそのまま用いて属性値を設定する。また、画素値が32bitあるので、Bit圧縮器408は、「32bit」から「24bit」へのBit圧縮を行なう。「Put_Mode22」の設定は、例えば、他のサブモジュールの処理内容を属性値として生成し、それを設定する役割を果たすモジュール等で用いられる。
【0093】
[Put_Mode23]
この設定は、上述した「Put_Mode21」とほぼ同じ動作となる。処理用画像データが図4に示すフォーマット303〜305である場合に好適である。「Put_Mode21」との相違点としては、属性値及び画素値のBit数にある。「Put_Mode23」を設定した場合、Bit圧縮器408によるBitの圧縮度合いが「32bit」から「16bit」となる。
【0094】
[Put_Mode24]
この設定は、上述した「Put_Mode22」とほぼ同じ動作となる。処理用画像データが図4に示すフォーマット303〜305である場合に好適な設定である。「Put_Mode22」との相違点としては、属性値及び画素値のBit数にある。「Put_Mode24」を設定した場合、Bit圧縮器408によるBitの圧縮度合いが「32bit」から「16bit」となる。
【0095】
以上のように「表2」に示す設定情報を用いて処理を行なうことにより、属性値対応サブモジュールでの属性値の使用・未使用等を制御できる。これにより、様々な画像処理を同一リソース(画像処理部)を用いて実現できる。また、処理用画像データ内のどのフィールドを属性値又は画素値に使用するかを自由に設計できるため、画像処理設計の柔軟性を実現しつつ、様々な用途にサブモジュールを利用できる。
【0096】
次に、「表3」を用いて、入力属性値情報設定部409により設定される設定情報について説明する。第2の属性値管理部411は、画像処理の開始前において、この「表3」の設定情報に基づいて各種処理を実行する。ここでは、図4に示すフォーマット302(属性値フィールドが3つ)を使用する場合の設定情報を例に挙げて説明する。
(表3)
【0097】
[In_Mode30]
この設定では、画像処理に属性値を使用しない。すなわち、第2の属性値管理部411において、属性値を画像処理部413に入力しない。この場合、サブモジュールは、属性値非対応サブモジュールとして動作する。この設定は、例えば、画像処理部413で静的な画像処理を実施する場合に好適である。画像処理部413に静的な画像処理を実施させる方法は種々あるが、例えば、画像処理部413に伝達される属性値を全て0(標準値)とすればよい。「表1」に示す「Get_Mode11」を設定した場合にも、属性値フィールドを0に設定できるが、「In_Mode30」を設定した場合には、他のサブモジュールから受け取った属性値自体を0に変更するのではないため、属性値の伝播は継続される。
【0098】
[In_Mode31]
この設定は、複数の属性値フィールド(A0〜A2)の内、属性値フィールドA0のみを用いて画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode31」を設定した場合、画像処理は、他の属性値フィールド(A1、A2)を用いずに行なわれる。「In_Mode31」を設定した場合、同一の属性値を用いて画素値フィールドの全チャネル(RGB)に対して適応的な画像処理を実施できる。ここで、A0は、図4に示すフォーマット302の属性値フィールド3024であり、A1は、図4に示すフォーマット302の属性値フィールド3025であり、A2は、図4に示すフォーマット302の属性値フィールド3026である。以下の実施形態1〜5において、A0〜A2は、属性値フィールド3024〜3026を指す。
【0099】
[In_Mode32]
この設定は、複数の属性値フィールド(A0〜A2)の内、属性値フィールドA1のみを用いて画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode32」を設定した場合、画像処理は、他の属性値フィールド(A0、A2)を用いずに行なわれる。「In_Mode32」を設定した場合、同一の属性値を用いて画素値フィールドの全チャネル(RGB)に対して適応的な画像処理を実施できる。
【0100】
[In_Mode33]
この設定は、複数の属性値フィールド(A0〜A2)の内、属性値フィールドA2のみを用いて画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode33」を設定した場合、画像処理は、他の属性値フィールド(A0、A1)を用いずに行なわれる。「In_Mode33」を設定した場合、同一の属性値を用いて画素値フィールドの全チャネル(RGB)に対して適応的な画像処理を実施できる。
【0101】
[In_Mode34]
この設定は、属性値フィールドA0を画素値R、属性値フィールドA1を画素値G、属性値フィールドA2を画素値B、に用いて適応的な画像処理を実施する場合に好適である。
【0102】
以上のように「In_Mode30〜34」を選択的に用いて処理を行なうことにより、複数の属性値フィールドの少なくとも1つの情報を用いて適応的な画像処理を実施できる。なお、「表3」に示す設定値はあくまで一例であり、これに限られない。例えば、画素値がR、G、Bではなく、Y、Cb、Crのように、明るさ(Y)情報や色(Cb/Cr)情報を含む場合には、明るさに関しては属性値フィールドA0、色に関しては属性値フィールドA1、を用いて適応的な画像処理を実施するようにしてもよい。この場合、属性値フィールドA2には、例えば、他のサブモジュールが用いる属性値等を設定すればよい。
【0103】
次に、「表4」を用いて、出力属性値情報設定部410により設定される設定情報について説明する。第2の属性値管理部411は、画像処理の終了後において、この「表4」の設定情報に基づいて各種処理を実行する。ここでは、図4に示すフォーマット303(属性値フィールドが6つ)を使用する場合の設定情報を例に挙げて説明する。
(表4)
【0104】
[Out_Mode40]
この設定は、自身(当該サブモジュール)において属性値の設定を行なわない場合に好適である。すなわち、出力属性値は、入力属性値そのままとなり、両者は同じ値となる。
【0105】
[Out_Mode41]
この設定は、複数の属性値フィールド(A0〜A2)の内、属性値フィールドA0のみを新たに設定する場合に好適である。「Out_Mode41」を設定した場合、他の属性値フィールド(A1、A2)は更新されない。
【0106】
[Out_Mode42]
この設定は、複数の属性値フィールド(A0〜A2)の内、属性値フィールドA1のみを新たに設定する場合に好適である。「Out_Mode42」を設定した場合、他の属性値フィールド(A0、A2)は更新されない。
【0107】
[Out_Mode43]
この設定は、複数の属性値フィールド(A0〜A2)の内、属性値フィールドA2のみを新たに設定する場合に好適である。「Out_Mode43」を設定した場合、他の属性値フィールド(A0、A1)は更新されない。
【0108】
[Out_Mode44]
この設定は、複数の属性値フィールドA0〜A2の全てを新たに設定する場合に好適である。
【0109】
以上のように「Out_Mode40〜44」を選択的に用いて処理を行なうことにより、複数の属性値フィールドの少なくとも1つの情報を設定変更できる。これにより、他のサブモジュールで適応的な画像処理を実施させることができる。なお、「表4」に示す設定値はあくまで一例であり、これに限られない。例えば、画素値がR、G、Bではなく、Y、Cb、Crのように、明るさ(Y)情報や色(Cb/Cr)情報を含む場合には、明るさに関しては属性値フィールドA0、色に関しては属性値フィールドA1に対して異なる属性値を設定すればよい。この場合、属性値フィールドA2には、例えば、他のサブモジュールが用いる属性値等を設定すればよい。
【0110】
次に、実施形態1〜7を用いて、画像処理サブモジュールにおける動作例と、それに伴う設定情報の設定例とについていくつか例を挙げて説明する。
【0111】
(実施形態1)
図7は、3つの属性値対応サブモジュールにおいて、外部から伝達された3つの属性値各々を使用して画像処理を行なう場合の概要を示している。ここでは、写真印刷に際して、逆光補正、赤目補正、ノイズ補正を行なう場合を例に挙げて説明する。なお、使用する処理用画像データは、図4に示すフォーマット302(属性値フィールドが3つ)であるものとする。
【0112】
ここでまず、各サブモジュールで実施される処理について説明する。逆光補正は、暗部を明るくする処理(例えば、一次元ルックアップテーブルを用いた階調変換)であり、暗部にだけ補正処理を施す必要がある。赤目補正は、赤色を黒くする処理(例えば、三次元ルックアップテーブルを用いた色変換)であり、赤目エリアにだけ補正処理を施す必要がある。ノイズ補正は、ノイズ発生エリアをぼかす(例えば、二次元平面フィルタを用いた平滑化)処理であり、ノイズ発生エリアにだけ補正処理を施す必要がある。なお、これら補正処理は、いかなる方法で実現されてもよい。
【0113】
サブモジュールと補正処理との関係は以下の通りとする。
逆光補正処理サブモジュール11−1:逆光補正処理(一次元ルックアップテーブルによる階調変換処理:属性値0で補正なし、属性値1で補正あり)
赤目補正処理サブモジュール11−2:赤目補正処理(三次元ルックアップテーブルによる色変換処理:属性値0で補正なし、属性値1で補正あり)
ノイズ補正処理サブモジュール11−3:ノイズ補正処理(二次元平面フィルタによる平滑化処理:属性値0で補正なし、属性値1で補正あり)
なお、補正の有無については、あくまで一例であり、属性値の値(8bit時:0〜255)を補正強度としてもよい。また、属性値によって補正の有り・無しを指定するのではなく、属性値によって参照するルックアップテーブルやフィルタ係数を切り替えるようにしてもよい。その場合、例えば、第1のルックアップテーブルを補正無しのテーブルとし、第2のルックアップテーブルを補正有りのテーブルとして設け、互いを切り替えて使用する。また更に、第3のルックアップテーブルを設け、逆方向の補正を行なうようにしてもよい。この場合、例えば、ぼかし〜補正なし〜エッジ強調等の処理を属性値により切り替えることができる。
【0114】
ここで、図8を用いて、図7に示す構成における画像処理(例えば、写真印刷時)の流れの一例について説明する。
【0115】
画像処理装置100は、CPU1において、まず、画像処理対象の写真が逆光写真であるか否かを判定し、補正すべき暗部を特定する(S101)。暗部の特定が済むと、画像処理装置100は、CPU1において、画像処理対象の写真内に赤目が発生しているか否かを判定し、補正すべき赤目エリアを特定する(S102)。また、画像処理装置100は、CPU1において、画像処理対象の写真内に撮影ノイズが発生しているか否かを判定し、補正すべきノイズ発生エリアを特定する(S103)。
【0116】
処理対象となるエリアの特定が済むと、画像処理装置100は、CPU1において、属性値を設定する(S104)。属性値の設定方法としては種々の方法が考えられるが、いかなる方法を用いてもよい。例えば、メモリ(RAM7)内の写真(画像)に直接書き込んでもよい。ここで、属性値の設定内容を以下に示す。この属性値は、上述したS101〜S103における処理の検出結果に応じて画素毎に設定される。
属性値フィールドA0 逆光補正属性値(0:補正不要、1:補正必要)
属性値フィールドA1 赤目補正属性値(0:補正不要、1:補正必要)
属性値フィールドA2 ノイズ補正属性値(0:補正不要、1:補正必要)
【0117】
次に、属性値の設定が済むと、画像処理装置100は、CPU1において、モジュール(画像処理モジュール4、サブモジュール11)の動作設定を行なう(S105)。このとき、サブモジュール11−1〜11−3に係わる設定情報には、図7の下部に示す内容が設定される。その他、S105の処理では、サブモジュール11−1〜11−3で使用される一次元及び三次元ルックアップテーブルの設定や、二次元フィルタ係数の設定等も行なわれる。
【0118】
この設定が済むと、画像処理装置100は、CPU1において、画像処理モジュール4及びサブモジュール11−1〜3を起動させる(S106)。これにより、サブモジュール各々は、属性値を個別に使用して各種画像処理を実施する。このサブモジュール11−1〜3で行なわれる画像処理の詳細を下記に示す。
【0119】
[逆光補正処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode31 逆光補正属性値A0に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode22 属性値A0〜A2を設定(逆光補正出力画素値と結合)して出力
[赤目補正処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode32 赤目補正属性値A1に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode22 属性値A0〜A2を設定(赤目補正出力画素値と結合)して出力
[ノイズ補正処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode33 ノイズ補正属性値A2に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode22 属性値A0〜A2を設定(ノイズ除去出力画素値と結合)して出力
【0120】
(実施形態2)
次に、図9を用いて、上述したケースと別のユースケースとして、画素値RGB各々に対して個別にぼかし度合いを切り替えてノイズ除去補正を実施する場合について説明する。なお、使用する処理用画像データは、図4に示すフォーマット302(属性値フィールドが3つ)であるものとする。
【0121】
サブモジュールと補正処理との関係は以下の通りとする。
逆光補正処理サブモジュール11−1 動作しない
赤目補正処理サブモジュール11−2 動作しない
ノイズ補正処理サブモジュール11−3 ノイズ補正処理(二次元平面フィルタによる平滑化処理。属性値A0が0でR補正なし、属性値A0が1でR補正あり、属性値A1が0でG補正なし、属性値A1が1でG補正あり、属性値A2が0でB補正なし、属性値A2が1でB補正あり)
【0122】
処理の流れは、上述した図8と同様となるので、ここでは相違点を挙げて説明する。相違点としては、S103から処理が始まる点である。また、S104の処理では、S103の処理の検出結果に応じて以下のように属性値を画素毎に設定する。
属性値フィールドA0 ノイズ補正属性値R(0:R補正不要、1:R補正必要)
属性値フィールドA1 ノイズ補正属性値G(0:G補正不要、1:G補正必要)
属性値フィールドA2 ノイズ補正属性値B(0:B補正不要、1:B補正必要)
【0123】
また、S105における設定処理では、サブモジュール11−1〜11−3に係わる設定情報として、図9の下部に示す内容が設定される。その他、S105の処理では、サブモジュール(ノイズ補正処理サブモジュール)11−3で使用される二次元フィルタ係数の設定や、サブモジュール11−1及び11−2の不使用設定等も行なわれる。また、S106における起動処理では、下記に示す設定により、サブモジュール11−3が、属性値を使用して各種画像処理を実施する。
【0124】
[ノイズ補正処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode34 属性値A0〜A2に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode22 属性値A0〜A2を設定(ノイズ除去出力画素値と結合)して出力
【0125】
以上のように構成した場合、ノイズ補正処理サブモジュール11−3のみが、属性値フィールドの属性値全てに基づいて画像処理を実施する。このとき、それ以外のサブモジュール11−1及び11−2は、画像処理を行なわない(属性値未使用)。当然ではあるが、この場合、逆光補正処理サブモジュール11−1及び赤目補正処理サブモジュール11−2に対して、属性値を使用しない静的な画像処理を実施させることもできる。
【0126】
なお、ノイズ補正処理に際しては、RGB各々のチャネルで補正を行なうか否かの判断を行なうことになるが、補正を行なうか否かは、ユーザが指示するようにしてもよいし、また、画像の解析結果に基づいて自動的に決めるようにしてもよい。自動で行なう場合には、例えば、図8に示すS101及びS102の処理結果に基づいて行なえばよい。具体的には、逆光補正と赤目補正の必要性とが低いと判断された場合に、RGBそれぞれのチャネルでノイズ補正を実施すればよい。つまり、1つの画像処理モジュール4内の一連の処理で補正すべき補正処理の数が多い場合には、それぞれの補正に際して、1つの属性値を用いて全チャネル(RGB)を補正すればよい。また、1つの画像処理モジュール4内の一連の処理で補正すべき補正処理の数が少ない場合には、それぞれの属性値を用いて各チャネルをより細かく補正すればよい。例えば、1つの画像処理モジュール4内の一連の処理で補正すべき補正処理の数が多い場合の一例として、逆光補正、赤目補正、ノイズ補正の3つを補正を行なうものとする。この場合、逆光補正に際しては、1つの属性値A0を用いて全チャネル(RGB)を補正し、赤目補正に際しては、1つの属性値A1を用いて全チャネル(RGB)を補正し、ノイズ補正に際しては、1つの属性値A2を用いて全チャネル(RGB)を補正する。一方、1つの画像処理モジュール4内の一連の処理で補正すべき補正処理の数が少ない場合の一例として、例えば、ノイズ補正のみを行なうとする。この場合、属性値A0を用いてRチャンネルを補正し、属性値A1を用いてGチャンネルを補正し、A2を用いてBチャンネルを補正すれば、より細かく補正できる。
【0127】
(実施形態3)
次に、図10を用いて、上述したケースと別のユースケースとして、コピー時に文字領域と写真領域とを像域分離し、写真領域には写真用の色補正処理、文字領域には文字加工処理を行なう場合について説明する。なお、使用する処理用画像データは、図4に示すフォーマット302(属性値フィールドが3つ)であるものとする。
【0128】
ここでまず、各サブモジュールで実施される処理について説明する。像域分離は、文字領域と写真領域とを判定する処理(例:局所的な濃度変化を用いて閾値と比較して判定)である。色補正は、写真に好適な色補正を行なう処理(例:三次元ルックアップテーブルを用いた色変換)であり、写真領域にだけ補正処理を施す必要がある。文字加工は、文字をくっきりさせる処理(例:二次元平面フィルタを用いたエッジ強調処理)であり、文字領域にだけ補正処理を施す必要がある。なお、これら補正処理は、いかなる方法で実現されてもよい。
【0129】
サブモジュールと補正処理との関係は以下の通りとする。
像域分離処理サブモジュール11−0 像域分離処理(注目画素の画素値と注目画素周辺にある周辺画素の画素値との比較処理:文字領域は属性値を0に設定、写真領域は属性値を1に設定)
色補正処理サブモジュール11−2 色補正処理(三次元ルックアップテーブルによる色変換処理:属性値0で補正なし、属性値1で補正あり)
文字加工処理サブモジュール11−3 文字加工処理(二次元平面フィルタによる平滑化処理:属性値0で補正あり、属性値1で補正なし)
ここで、像域分離処理サブモジュールに11−0という符号を使用している。これは、図7及び図8の逆光補正処理サブモジュール11−1が補正処理を行なうのに対して、当該補正処理とは異なる像域分離処理を行なうサブモジュールであることを明示するため便宜上付与した符号である。つまり、像域分離処理サブモジュール11−0は、図3に示すサブモジュール11−1に該当するサブモジュールである。
【0130】
なお、名称は異なるが、色補正処理サブモジュールと上述した赤目補正処理サブモジュールとは同一のサブモジュールで実現でき、文字加工処理サブモジュールと上述したノイズ補正処理サブモジュールとは同一のモジュールで実現できる。但し、パラメータや属性値を変更して設定する必要がある。すなわち、同一のサブモジュールにおいて、写真印刷時とコピー時とで異なる画像処理を実施できる。
【0131】
処理の流れは、上述した図8と同様となるので、ここでは相違点を挙げて説明する。相違点としては、S105から処理が始まる点である。また、S105における設定処理では、サブモジュール11−0、11−2、11−3に係わる設定情報として、図10の下部に示す内容が設定される。その他、S105の処理では、サブモジュール11−2及び11−3で使用される三次元ルックアップテーブルや二次元フィルタ係数の設定等も行なわれる。また、S106における起動処理では、下記に示す設定により、サブモジュール各々は、属性値を使用して各種画像処理を実施する。
【0132】
[像域分離処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode30 属性値未使用
属性値出力処理 Out_Mode41 像域分離属性値A0を更新
出力データ処理 Put_Mode22 属性値A0〜A2を設定(像域分離出力画素値と結合)して出力
[色補正処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode31 像域分離属性値A0に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode22 属性値A0〜A2を設定(赤目補正出力画素値と結合)して出力
[文字加工処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode31 像域分離属性値A0に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode22 属性値A0〜A2を設定(ノイズ除去出力画素値と結合)して出力
【0133】
以上のように構成した場合、同一の属性値フィールドの属性値を複数のサブモジュールで共有して使用できる。そのため、属性値を有効利用できる。例えば、図10に不図示のサブモジュールにおいて、図10に示すサブモジュールにより使用されていない属性値フィールド(例えば、A1及びA2)に基づく処理を実施させることができる。勿論、像域分離処理サブモジュール11−0において、属性値フィールドA0及びA1を設定し、それ以外のサブモジュール11−2及び11−3において、当該設定された属性値を用いて画像処理を行なうように構成してもよい。
【0134】
このように処理用画像データ内の属性値フィールドの割当方法、使用方法、設定方法をサブモジュール単位に設定できるため、システム全体での属性値の数を抑えつつ、柔軟性のある画像処理を実施することができる。
【0135】
(実施形態4)
次に、属性値対応サブモジュールと属性値非対応サブモジュールとが混在する場合について説明する。図11には、2つの属性値対応サブモジュールと、1つの属性値非対応サブモジュールとが示される。ここでは、2つの属性値対応サブモジュールにおいて、外部から伝達された属性値を使用して画像処理を行なった後、属性値非対応サブモジュールにおいて、画像処理を行なう場合について説明する。
【0136】
ここで、各サブモジュールにおいては、図4に示すフォーマット302(属性値フィールドが3つ)を用いて処理を行なう。但し、属性値非対応であるノイズ補正処理サブモジュール11−4に対しては、属性値の除去処理を実施した後、図4に示すフォーマット301を入力する。
【0137】
サブモジュールと補正処理との関係は以下の通りとする。
逆光補正処理サブモジュール11−1 逆光補正処理(一次元ルックアップテーブルによる階調変換処理:属性値0で補正なし、属性値1で補正あり)
赤目補正処理サブモジュール11−2 赤目補正処理(三次元ルックアップテーブルによる色変換処理:属性値0で補正なし、属性値1で補正あり)
ノイズ補正処理サブモジュール11−4 ノイズ補正処理(二次元平面フィルタによる平滑化処理:全画素に対して一律に同じフィルタ係数で処理を行なう)
【0138】
処理の流れは、上述した図8と同様となるので、ここでは相違点を挙げて説明する。相違点としては、S102の処理の後、S103の処理を実施せずにS104の処理に進む。ここで、S104の処理における属性値の設定内容を以下に示す。この属性値は、上述したS101及びS102における処理の検出結果に応じて画素毎に設定される。
属性値フィールドA0 逆光補正属性値 (0:補正不要、1:補正必要)
属性値フィールドA1 赤目補正属性値 (0:補正不要、1:補正必要)
属性値フィールドA2 設定なし
【0139】
また、S105における設定処理では、サブモジュール11−1、11−2、11−4に係わる設定情報として、図11の下部に示す内容が設定される。その他、S105の処理では、サブモジュール11−2及び11−3で使用される一次元及び三次元ルックアップテーブルの設定や二次元フィルタ係数の設定等も行なわれる。また、S106における起動処理では、下記に示す設定により、サブモジュール各々は、属性値を使用して各種画像処理を実施する。
【0140】
[逆光補正処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode31 逆光補正属性値A0に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode22 属性値A0〜A2を逆光補正出力画素値と結合
[赤目補正処理サブモジュール]
入力データ処理 Get_Mode128bit 属性値A0〜A2を抽出
属性値入力処理 In_Mode32 赤目補正属性値A1に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode20 属性値を用いず、赤目補正出力画素値を各チャネル拡張(32bit)して出力
[ノイズ補正処理サブモジュール]
静的画像処理 RGB各チャネル32bitの画素値を入力し、フィルタ処理を画像全体に対して一律に実施した後、RGB各チャネル32bitのフィルタ出力画素値を出力
【0141】
なお、赤目補正処理サブモジュール11−2において、属性値を用いずに各チャネル32bitに拡張するのは、属性値非対応であるノイズ補正処理サブモジュール11−4の入力フォーマットに適応させるためである。ここでは、ノイズ補正サブモジュールとして属性値非対応サブモジュール11−4が、図4に示すフォーマット301(RGB各チャンネル32bit)を処理するサブモジュールであるとして説明した。これに限らず、属性値非対応であるノイズ補正処理サブモジュール11−4の入力フォーマットが各チャネル24bitであれば、赤目補正処理サブモジュールにおいては、「Put_Mode21」で出力データ処理を実施する。すなわち、属性値領域の8bitを全て「0」に設定する。更に、属性値非対応であるノイズ補正処理サブモジュール11−4の入力フォーマットが各チャネル16bitであれば、赤目補正処理サブモジュールにおいては、「Put_Mode23」で出力データ処理を実施する。すなわち、属性値領域の16bitを全て「0」に設定する。本実施形態では、属性非対応サブモジュール11−4がノイズ補正した処理用画像データは、ライトバッファ12へ出力されるが、属性非対応サブモジュール11−4には属性値フィールドを書き替える機能がない。そのため、本実施形態の画像処理モジュール4内で使用した属性値を、画像処理モジュール4の外部に出力する必要がない場合、属性非対応サブモジュール11−4へ処理用画像データを入力する前に属性値フィールドの属性値を消去するためである。
【0142】
以上のような構成によれば、属性値非対応サブモジュールの直前に処理を行なう属性値対応のサブモジュールにおいて、属性値に全て「0」を設定する。そのため、属性値非対応サブモジュールには、属性値を書き替える機能を持たせなくて済み、画像処理モジュール4の回路構成を簡略化できる。これにより、画像処理モジュール4において、属性値対応サブモジュールと属性値非対応サブモジュールとが混在している場合においても、問題なく画像処理が行なえることになる。
【0143】
(実施形態5)
次に、図12を用いて、属性値対応サブモジュールと属性値非対応サブモジュールとが混在し、更に、属性値伝達ラッパー層110を設けた場合について説明する。ここでは、属性値非対応サブモジュールにおいて、画像処理を行なった後、2つの属性値対応サブモジュールにおいて、外部から伝達された属性値を使用して画像処理を行なう場合について説明する。
【0144】
ここで、各サブモジュールにおいては、図4に示すフォーマット302(属性値フィールドが3つ)を用いて処理を行なう。但し、属性値非対応である逆光補正処理サブモジュール11−5に対しては、属性値伝達ラッパー層110を設けることにより、図4に示すフォーマット301が入力される。
【0145】
サブモジュールと補正処理との関係は以下の通りとする。
逆光補正処理サブモジュール11−5 逆光補正処理(一次元ルックアップテーブルによる階調変換処理:全画素に対して一律同じ処理を行なう)
赤目補正処理サブモジュール11−2 赤目補正処理(三次元ルックアップテーブルによる色変換処理:属性値0で補正なし、属性値1で補正あり)
ノイズ補正処理サブモジュール11−3 ノイズ補正処理(二次元平面フィルタによる平滑化処理:属性値0で補正なし、属性値1で補正あり)
【0146】
処理の流れは、上述した図8と同様となるので、ここでは相違点を挙げて説明する。相違点としては、S102から処理が始まる点である。また、S104の処理では、S102及びS103の処理の検出結果に応じて以下のように属性値を画素毎に設定する。
属性値フィールドA0 未設定
属性値フィールドA1 赤目補正属性値 (0:補正不要、1:補正必要)
属性値フィールドA2 ノイズ補正属性値(0:補正不要、1:補正必要)
【0147】
また、S105における設定処理では、サブモジュール11−2及び11−3、属性値伝達ラッパー層110に係わる設定情報として、図12の下部に示す内容が設定される。その他、S105の処理では、サブモジュール11−2及び11−3や属性値伝達ラッパー層110で使用される一次元及び三次元ルックアップテーブルや二次元フィルタ係数の設定等も行なわれる。また、S106における起動処理では、下記に示す設定により、サブモジュール各々は、属性値を使用して各種画像処理を実施する。
【0148】
[属性値伝達ラッパー層110]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
出力データ処理 Put_Mode22 属性値A0〜A2を設定(逆光補正出力画素値と結合)して出力
[赤目補正処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode32 赤目補正属性値A1に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode22 属性値A0〜A2を設定(赤目補正出力画素値と結合)して出力
[ノイズ補正処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode33 ノイズ補正属性値A2に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode22 属性値A0〜A2を設定(ノイズ除去出力画素値と結合)して出力
【0149】
以上のような構成によれば、属性値伝達ラッパー層110を設けることにより、画像処理モジュール4において、属性値対応サブモジュールと属性値非対応サブモジュールとが混在している場合においても、問題なく画像処理が行なえる。
【0150】
このように処理用画像データ内の属性値フィールドの割当方法、使用方法、設定方法をサブモジュール単位に設定できるため、システム全体での属性値の数を抑えつつ、柔軟性のある画像処理を実施することができる。更に、既存の属性値非対応サブモジュールと混在して属性値対応サブモジュールを配すことができる。
【0151】
(実施形態6)
ここでは、図4に示すフォーマット303(属性値フィールドが6つ)を用いて各サブモジュールにおいて処理を行なう場合について説明する。
【0152】
ここで、「表5」を用いて、入力属性値情報設定部409により設定される設定情報について説明する。第2の属性値管理部411は、画像処理の開始前において、この「表5」の設定情報に基づいて各種処理を実行する。なお、「表5」に示す設定値はあくまで一例であり、これに限られない。本実施形態において、A0は、図4に示すフォーマット303の属性値フィールド3034であり、A1は、図4に示すフォーマット303の属性値フィールド3035であり、A2は図4に示すフォーマット303の属性値フィールド3036である。また、A3は、図4に示すフォーマット303の属性値フィールド3037であり、A4は、図4に示すフォーマット303の属性値フィールド3038であり、A5は、図4に示すフォーマット303の属性値フィールド3039である。
(表5)
【0153】
[In_Mode50]
この設定では、画像処理に属性値を使用しない。すなわち、第2の属性値管理部411において、属性値を画像処理部413に入力しない。この場合、サブモジュールは、属性値非対応サブモジュールとして動作する。
【0154】
[In_Mode51〜56]
この設定は、複数の属性値フィールド(A0〜A5)の内、いずれかの属性値フィールド(In_Mode51時はA0〜In_Mode56時はA5)を用いて画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode51〜56」を設定した場合、画像処理は、他の属性値フィールドを用いずに行なわれる。
【0155】
[In_Mode57]
この設定は、複数の属性値フィールド(A0〜A5)の内、属性値フィールドA0を画素値R、属性値フィールドA2を画素値G、属性値フィールドA4を画素値B、に用いて適応的な画像処理を実施する場合に好適である。「In_Mode57」を設定した場合、画像処理は、他の属性値フィールド(A1、A3、A5)を用いずに行なわれる。
【0156】
[In_Mode58]
この設定は、複数の属性値フィールド(A0〜A5)の内、属性値フィールドA1を画素値R、属性値フィールドA3を画素値G、属性値フィールドA5を画素値B、に用いて適応的な画像処理を実施する場合に好適である。「In_Mode58」を設定した場合、画像処理は、他の属性値フィールド(A0、A2、A4)を用いずに行なわれる。
【0157】
以上のように「In_Mode50〜58」を選択的に用いて処理を行なうことにより、複数の属性値フィールドの少なくとも1つの情報を用いて適応的な画像処理を実施できる。例えば、以下に示す使用例が挙げられる。
【0158】
1)6つのサブモジュールにおいて、それぞれ異なる属性値を使用してRGB共通の画像処理
2)2つのサブモジュールにおいて、それぞれ3つずつの属性値を使用してRGB個別の画像処理
3)3つのサブモジュールにおいて、それぞれ異なる属性値を使用してRGB共通の画像処理を行なうとともに、更に、1つのサブモジュールにおいて、3つの属性値を利用してRGB個別の画像処理
【0159】
次に、「表6」を用いて、出力属性値情報設定部410により設定される設定情報について説明する。第2の属性値管理部411は、画像処理の終了後において、この「表6」の設定情報に基づいて各種処理を実行する。なお、「表6」に示す設定値はあくまで一例であり、これに限られない。
(表6)
【0160】
[Out_Mode60]
この設定は、自身(当該サブモジュール)において属性値の設定を行なわない場合に好適である。すなわち、出力属性値は、入力属性値そのままとなり、両者は同じ値となる。
【0161】
[Out_Mode61〜66]
この設定は、複数の属性値フィールド(A0〜A5)の内、いずれかの属性値フィールド(Out_Mode61時はA0〜Out_Mode66時はA5)のみを新たに設定する場合に好適である。「Out_Mode61〜66」を設定した場合、他の属性値フィールドは更新されない。
【0162】
[Out_Mode67]
この設定は、複数の属性値フィールド(A0〜A5)の内、属性値フィールドA0、A2、A4のみを新たに設定する場合に好適である。「Out_Mode67」を設定した場合、他の属性値フィールド(A1、A3、A5)は更新されない。
【0163】
[Out_Mode68]
この設定は、複数の属性値フィールド(A0〜A5)の内、属性値フィールドA1、A3、A5のみを新たに設定する場合に好適である。「Out_Mode68」を設定した場合、他の属性値フィールド(A0、A2、A4)は更新されない。
【0164】
以上のように「Out_Mode60〜68」を選択的に用いて処理を行なうことにより、複数の属性値フィールドの少なくとも1つの情報を設定変更できる。例えば、以下に示す使用例が挙げられる。
【0165】
1)6つのサブモジュールにおいて、それぞれ異なる属性値を設定するケース
2)2つのサブモジュールにおいて、それぞれ3つずつの属性値を設定するケース
3)3つのサブモジュールにおいて、それぞれ異なる属性値を設定するとともに、1つのサブモジュールにおいて、3つの属性値を設定するケース
【0166】
このように属性値フィールドが増えた場合には、画像処理の柔軟性を更に高めることができる。また、属性値フィールドを増やした場合にも、処理用画像データのデータ量(96Bit)は変わらない。そのため、システム全体の規模を大きく変更せずに、画素値として割り当てるBit数(画像の階調性)と、属性値として割り当てるBit数(適応的画像処理の柔軟性)とのバランスを図った設計が行なえる。
【0167】
(実施形態7)
ここでは、図4に示すフォーマット305(属性値フィールドが4つ)を用いて各サブモジュールにおいて処理を行なう場合について説明する。本実施形態において、A0は、図4に示すフォーマット305の属性値フィールド3054であり、A1は、図4に示すフォーマット305の属性値フィールド3055である。また、A2は、図4に示すフォーマット305の属性値フィールド3056であり、A3は、図4に示すフォーマット305の属性値フィールド3057である。フォーマット305では、上述した通り、属性値フィールドA0及び属性値フィールドA1は、16bit幅で構成されているのに対して、属性値フィールドA2及び属性値フィールドA3は、8bit幅で構成されている。そして、属性値フィールドA2と属性値フィールドA3は、連続した16bit幅の属性値として取り扱ってもよいし、また、それぞれ8bitずつの異なる属性値として取り扱ってもよい。また更に、属性値フィールドA0及びA2と、属性値フィールドA1及びA3として、24bit幅の属性値として取り扱ってもよい。
【0168】
このように構成した場合、処理用画像データのフォーマットを固定したまま、属性値の数(適応的画像処理の種類)と各属性値のBit数(適応的画像処理の細かさ)とのバランスが取れるため、より柔軟な画像処理が実現できる。
【0169】
ここで、「表7」を用いて、入力属性値情報設定部409により設定される設定情報について説明する。第2の属性値管理部411は、画像処理の開始前において、この「表7」の設定情報に基づいて各種処理を実行する。なお、「表7」に示す設定値はあくまで一例であり、これに限られない。
(表7)
【0170】
[In_Mode70]
この設定では、画像処理に属性値を使用しない。すなわち、第2の属性値管理部411において、属性値を画像処理部413に入力しない。この場合、サブモジュールは、属性値非対応サブモジュールとして動作する。
【0171】
[In_Mode71]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA0のみを用いて画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode71」を設定した場合、画像処理は、他の属性値フィールド(A1、A2、A3)を用いずに行なわれる。
【0172】
[In_Mode72]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA1のみを用いて画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode72」を設定した場合、画像処理は、他の属性値フィールド(A0、A2、A3)を用いずに行なわれる。
【0173】
[In_Mode73]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA2及びA3を1つの属性値(16bit)として用いて、画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode73」を設定した場合、画像処理は、他の属性値フィールド(A0、A1)を用いずに行なわれる。
【0174】
[In_Mode74]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA0を画素値R、属性値フィールドA1を画素値G、属性値フィールドA2及びA3を1つの属性値(16bit)として画素値Bに用いる。このような属性値の使い方により、適応的な画像処理を実施する場合に好適である。
【0175】
[In_Mode75]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA0及びA2を1つの属性値(24bit)として用いて、画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode75」を設定した場合、画像処理は、他の属性値フィールド(A1、A3)を用いずに行なわれる。
【0176】
[In_Mode76]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA1及びA3を1つの属性値(24bit)として用いて、画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode76」を設定した場合、画像処理は、他の属性値フィールド(A0、A2)を用いずに行なわれる。
【0177】
[In_Mode77]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA2を1つの属性値(8bit)として用いて、画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode77」を設定した場合、画像処理は、他の属性値フィールド(A0、A1、A3)を用いずに行なわれる。
【0178】
[In_Mode78]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA3を1つの属性値(8bit)として用いて、画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode78」を設定した場合、画像処理は、他の属性値フィールド(A0、A1、A2)を用いずに行なわれる。
【0179】
以上のように「In_Mode70〜78」を選択的に用いて処理を行なうことにより、複数の属性値フィールドの少なくとも1つの情報を用いて適応的な画像処理を実施することができる。
【0180】
次に、「表8」を用いて、出力属性値情報設定部410により設定される設定情報について説明する。第2の属性値管理部411は、画像処理の終了後において、この「表8」の設定情報に基づいて各種処理を実行する。なお、「表8」に示す設定値はあくまで一例であり、これに限られない。
(表8)
【0181】
[Out_Mode80]
この設定は、自身(当該サブモジュール)において属性値の設定を行なわない場合に好適である。すなわち、出力属性値は、入力属性値そのままとなり、両者は同じ値となる。
【0182】
[Out_Mode81]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA0のみを新たに設定する場合に好適である。「Out_Mode81」を設定した場合、他の属性値フィールド(A1、A2、A3)は更新されない。
【0183】
[Out_Mode82]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA1のみを新たに設定する場合に好適である。「Out_Mode82」を設定した場合、他の属性値フィールド(A0、A2、A3)は更新されない。
【0184】
[Out_Mode83]
この設定は、属性値フィールドA2及びA3を1つの属性値(16bit)として取り扱うとともに、当該フィールドに対して新たに設定する場合に好適である。「Out_Mode83」を設定した場合、他の属性値フィールド(A0、A1)は更新されない。
【0185】
[Out_Mode84]
この設定は、複数の属性値フィールド(A0〜A3)全てに新たに設定する場合に好適である。この場合、属性値フィールドA2&A3は、1つの属性値(16bit)として取り扱われる。
【0186】
[Out_Mode85]
この設定は、属性値フィールドA0及びA2を1つの属性値(24bit)として取り扱うとともに、当該フィールドに対して新たに設定する場合に好適である。「Out_Mode85」を設定した場合、他の属性値フィールド(A1、A3)は更新されない。
【0187】
[Out_Mode86]
この設定は、属性値フィールドA1及びA3を1つの属性値(24bit)として取り扱うとともに、当該フィールドに対して新たに設定する場合に好適である。「Out_Mode86」を設定した場合、他の属性値フィールド(A0、A2)は更新されない。
【0188】
[Out_Mode87]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA2のみを新たに設定する場合に好適である。「Out_Mode87」を設定した場合、他の属性値フィールド(A0、A1、A3)は更新されない。
【0189】
[Out_Mode88]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA3のみを新たに設定する場合に好適である。「Out_Mode88」を設定した場合、他の属性値フィールド(A0、A1、A2)は更新されない。
【0190】
以上のように「Out_Mode80〜88」を選択的に用いて処理を行なうことにより、複数の属性値フィールドの少なくとも1つの情報を用いて適応的な画像処理を実施できる。
【0191】
以上が本発明の代表的な実施形態の一例であるが、本発明は、上記及び図面に示す実施形態に限定することなく、その要旨を変更しない範囲内で適宜変形して実施できるものである。
【技術分野】
【0001】
本発明は、画像処理装置及びその処理方法に関する。
【背景技術】
【0002】
記録媒体に対して文字や画像等の情報を記録する記録装置が知られている。記録方式としては、例えば、インクを用いて記録を行なうインクジェット記録方式がある。近年、このようなインクジェット記録方式を採用した複合機(以下、インクジェット複合機と呼ぶ)が普及している。インクジェット複合機の特徴としては、普通紙へのコピーと写真用紙へのダイレクトプリントの両方が1台の装置で実現できるという点が挙げられる。
【0003】
さて、記録速度の向上に伴って画像処理の高速化が要求されている。画像処理は、ハードウェア又はソフトウェアで実現される。ハードウェア規模とコストは、原則的に比例関係にあり、顧客満足度を上げるために機能を向上させつつ製品価格を下げるには、ハードウェアのコストを抑えたままその処理能力を向上させる必要がある。そこで、仕様用途に応じて柔軟に処理を変更するハードウェア技術が提案されている(特許文献1参照)。
【0004】
一般に、コピーでは、文字加工等の処理が行なわれている。文字加工処理は、例えば、文字部をエッジ強調することによる網点部分への弊害を抑えるために行なわれる。そのため、この処理では、文字エリアと網点エリアとを判定してエリアそれぞれに合わせた画像処理を実行する必要がある(特許文献2参照)。
【0005】
また、写真画像の記録(いわゆる、写真印刷)に際しては、覆い焼き処理等が行なわれている。覆い焼きでは、逆光状態の被写体の明度を適切にしつつ、背景部分への弊害を抑えるために、被写体とそれ以外のエリアとを判定してエリアそれぞれに合わせた処理を実行する必要がある(特許文献3参照)。同様に、フラッシュ撮影時の赤目を除去する赤目補正処理や、写真撮影時の暗部ノイズ等を除去するノイズ補正処理等においても、画像全体に対して画一的な処理を行なわない。すなわち、画質が良好な部分への弊害を抑えつつ、特定の弊害発生個所に対して補正処理を実施する必要がある(特許文献4、特許文献5参照)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−178546号公報
【特許文献2】特開2002−77623号公報
【特許文献3】特開平9−18704号公報
【特許文献4】特開平11−355591号公報
【特許文献5】特開2004−15322号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
コピーや写真印刷等に際して、上述した画像処理(すなわち、エリアに応じた画像処理)を高速化する場合、一般に、それぞれ専用の回路を設ける。そのため、例えば、インクジェット複合機のようにコピー機能と写真印刷機能とを備えた装置においては、両方の回路を搭載する必要があり、コストアップを避けられない。
【0008】
本発明は、上記課題に鑑みてなされたものであり、画素値と当該画素値に対応付けられた属性値とを含む処理用画像データを用いて、同一リソース(画像処理部)で種々の画像処理を行なえるようにした技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記課題を解決するため、本発明の一態様の画像処理装置は、画像を表現する画像データを当該画像の各画素に対応して、当該各画素の画素値を保持する画素値フィールドと、属性値を保持する属性値フィールドとを含む処理用画像データに編集する処理手段と、複数の画像処理モジュールとを具備し、前記複数の画像処理モジュール各々は、前記処理用画像データに対して画像処理を実施する複数のサブモジュールと、前記処理用画像データを前記複数のサブモジュールに対して順番に入力し、前記処理用画像データに対して実施すべき一連の画像処理を前記複数のサブモジュールを用いて実施する制御を行なうスイッチマトリクスとを具備し、前記複数のサブモジュール各々は、前記画像処理の前に前記処理用画像データに対して実施する処理を規定した第1の設定情報に基づいて、前記スイッチマトリクスから入力された処理用画像データの画素値と属性値とを編集する入力データ処理手段と、前記入力データ処理手段により編集された前記処理用画像データの属性値に基づいて、該処理用画像データの画素値に対して画像処理を実施する画像処理手段と、前記画像処理された後の処理用画像データに対して実施する処理を規定した第2の設定情報に基づいて、前記画像処理手段により処理された前記処理用画像データの前記画素値と前記属性値とを編集して前記スイッチマトリクスに出力する出力データ処理手段とを具備することを特徴とする。
【発明の効果】
【0010】
本発明によれば、画素値と当該画素値に対応付けられた属性値とを含む処理用画像データを用いて、同一リソース(画像処理部)で種々の画像処理を行なえる。
【図面の簡単な説明】
【0011】
【図1】画像処理装置100の概略構成を示す斜視図。
【図2】図1に示す画像処理装置100の制御部(不図示)の一例を示す図。
【図3】図2に示す画像処理モジュール4の構成の一例を示す図。
【図4】本実施形態に係わる処理用画像データのフォーマットの一例を示す図。
【図5】サブモジュールの構成の一例を示す図。
【図6】属性値伝達ラッパー層110を設けた構成の一例を示す図。
【図7】実施形態1を説明するための概略構成図。
【図8】図7に示す構成における画像処理の流れの一例を示すフローチャート。
【図9】実施形態2を説明するための概略構成図。
【図10】実施形態3を説明するための概略構成図。
【図11】実施形態4を説明するための概略構成図。
【図12】実施形態5を説明するための概略構成図。
【発明を実施するための形態】
【0012】
以下、本発明に係わる画像処理装置及びその処理方法の一実施の形態について添付図面を参照して詳細に説明する。なお、以下の説明においては、インクジェット記録方式を採用した画像処理装置を例に挙げて説明するが、これに限られず、例えば、色材にトナーを用いる電子写真方式を採用してもよい。
【0013】
また、画像処理装置は、例えば、記録機能のみを有するシングルファンクションプリンタであってもよいし、また、例えば、記録機能、FAX機能、スキャナ機能等の複数の機能を有するマルチファンクションプリンタであってもよい。また、例えば、カラーフィルタ、電子デバイス、光学デバイス、微小構造物等を所定の記録方式で製造するための製造装置であってもよい。
【0014】
なお、以下の説明において、「記録」とは、文字、図形等有意の情報を形成する場合のみならず、有意無意を問わない。更に人間が視覚で知覚し得るように顕在化したものであるか否かも問わず、広く記録媒体上に画像、模様、パターン、構造物等を形成する、又は媒体の加工を行なう場合も表す。
【0015】
また、「記録媒体」とは、一般的な記録装置で用いられる紙のみならず、布、プラスチック・フィルム、金属板、ガラス、セラミックス、樹脂、木材、皮革等、インクを受容可能なものも表す。
【0016】
更に、「インク」とは、上記「記録」の定義と同様広く解釈されるべきものである。従って、記録媒体上に付与されることによって、画像、模様、パターン等の形成又は記録媒体の加工、或いはインクの処理(例えば、記録媒体に付与されるインク中の色剤の凝固又は不溶化)に供され得る液体を表す。
【0017】
図1は、本発明の一実施の形態に係わる画像処理装置100の概略構成を示す斜視図である。
【0018】
画像処理装置100は、例えば、記録部と、読取部と、制御部(不図示)とを具備して構成される。記録部には、例えば、インクジェットシリアルプリンタが内蔵されており、読取部には、例えば、CCD方式のフラットヘッドスキャナが内蔵されている。
【0019】
読取部は、記録媒体を光学的に走査して記録媒体に形成された画像を読み取る。読取部は、一般に、記録部の上部に設けられている。読取部には、原稿を押えるための上蓋66が設けられている。上蓋66は、ヒンジ(不図示)により回動自在である。一方、記録部には、記録後の記録媒体を装置外に排出する排紙部67や、記録に用いる記録紙などの記録媒体を積載した給紙部68が設けられている。
【0020】
図1に示すように、記録部は、例えば、ヘッドキャリッジ51、記録ヘッド52、インクタンク53〜56、シャフト57、搬送ローラ59、プラテン50、ヘッドキャリッジモータ(不図示)、搬送モータ(不図示)等を具備して構成される。
【0021】
ヘッドキャリッジ51は、例えば、記録ヘッド52と、黒インクを収容したインクタンク53、シアンインクを収容したインクタンク54、マゼンタインクを収容したインクタンク55、イエロインクを収容したインクタンク56を搭載する。ヘッドキャリッジ51は、シャフト57に沿って矢印B方向に移動する。
【0022】
記録ヘッド52は、例えば、熱エネルギを利用してインクを吐出するインクジェット方式により構成される。記録ヘッド52には、発熱抵抗素子から構成される記録素子(以下、ヒータという)やヒータ駆動回路が設けられる。ヒータは、各ノズルに対応して設けられる。発熱抵抗素子を用いたインクジェット記録方式では、発熱抵抗素子に電圧を印加し、発熱抵抗素子近傍のインクを瞬時に沸騰させる。そして、沸騰時のインクの相変化により生じる急激な発泡圧によってインク滴を吐出する。なお、インクの吐出方式はこれに限られず、例えば、ピエゾ素子を用いた方式、静電素子を用いた方式、MEMS素子を用いた方式など、いずれの方式を採用してもよい。
【0023】
画像処理装置100は、記録動作に際して、給紙部68内の一番上の記録紙58を搬送ローラ59と駆動モータとを用いてU字状(矢印C)に引き込む。記録紙58の先端が記録ヘッド52の下に到達すると、ヘッドキャリッジ51が矢印B方向に往復移動し、記録紙58に記録ヘッド52からインク液滴を吐出する。これにより、1走査分の記録が行なわれる。画像処理装置100は、搬送ローラ59により1走査分に相当する長さ分、記録紙58を搬送した後、再度、ヘッドキャリッジ51を走査させ、記録を行なう。この動作が繰り返し実施されることにより記録が行なわれる。記録媒体に対する記録が終わると、画像処理装置100は、記録紙58を排紙部67上に排紙する。これにより、記録動作が終了する。
【0024】
図2は、図1に示す画像処理装置100の制御部(不図示)の一例を示す図である。
【0025】
CPU1は、画像処理装置100における処理を統括的に制御する。ROM2は、プログラム等を格納する。RAM7は、画像の展開領域やプログラム実行のための作業用領域等として用いられる。特殊用途集積回路(ASIC)30は、例えば、記録ヘッド52を制御するための制御信号を生成する。ASIC30には、画像処理モジュール4−1〜4−mがm個(mは1以上の整数)設けられており、各種画像処理を行なう(以下、これらを総称する場合、画像処理モジュール4と呼ぶ)。詳細については後述するが、画像処理モジュール各々には、コンフィグレーションレジスタ101−1〜101−mがm個(mは1以上の整数)が設けられている(以下、これらを総称する場合、コンフィグレーションレジスタ101と呼ぶ)。
【0026】
アービタ5は、RAM7へのアクセスを調停する。RAMインターフェース6は、RAM7とのインターフェースである。ヘッドインターフェース8は、記録ヘッド52とのインターフェースである。なお、本実施形態においては、CPU1と、各画像処理モジュール4−1〜4−mとによりRAM7を共有して使用する場合を例に挙げて説明するが、CPU1専用のRAMを別途設けてもよい。
【0027】
ここで、処理対象となる画像を受信した時の画像処理装置100の動作について説明する。画像処理装置100は、I/Oポート9において、画像を受信すると、バスブリッジ3、アービタ5、RAMインターフェース6を介して当該受信した画像をRAM7に格納する。この処理は、例えば、CPU1が、ROM2に格納されたプログラムに従うことにより実行される。
【0028】
画像の格納が済むと、画像処理装置100は、CPU1において、画像処理モジュール4−1のコンフィグレーションレジスタ(以下、単にレジスタと呼ぶ)101−1にパラメータを設定する。このパラメータの設定に伴って画像処理モジュール4−1は、動作を開始する。なお、レジスタ101には、画像処理モジュールを動作制御するためのパラメータが保持される。レジスタ101には、例えば、データが格納されたRAM7内のアドレス範囲や、処理後のデータの格納先となるRAM7内のアドレス範囲等が保持される。
【0029】
レジスタ101−1にパラメータが設定されると、画像処理モジュール4−1は、当該設定されたパラメータ(この場合、アドレス範囲)に従ってRAM7からデータを読み出したり、また、RAM7にデータを書き込んだりする。画像処理モジュール4−1は、このパラメータに従って処理を実施する。処理が終了すると、画像処理モジュール4−1は、割り込みを発生し、その旨をCPU1へ通知する。
【0030】
割り込みの通知を受けたCPU1は、その割込要因を解析する。ここで、読出処理の終了に伴って送られてきた通知であれば、CPU1は、次のデータの読出アドレス範囲をレジスタ101−1に設定し、画像処理モジュール4−1の処理を続行させる。また、書込処理の終了に伴って送られてきた通知であれば、CPU1は、処理後のデータの格納先となるアドレス範囲をレジスタ101−1に設定し、画像処理モジュール4−1の処理を続行させる。このとき、CPU1は、画像処理モジュール4−2のレジスタ101−2にパラメータを設定し、画像処理モジュール4−2に動作を開始させる。
【0031】
パラメータの設定に伴って画像処理モジュール4−2は、画像処理モジュール4−1同様に処理を開始する。そして、画像処理モジュール4−2は、上述した読出処理又は書込処理が終了すると、割り込みを発生し、その旨をCPU1へ通知する。その後、上記同様の処理が行なわれ、例えば、画像処理モジュール4−3の動作が開始する。このように画像処理装置100においては、ある画像処理モジュール4による処理が終わると、次の画像処理モジュール4が起動し、処理データが次々と各画像処理モジュール4に受け渡される。これにより、画像処理モジュール4を単位としたパイプラインが実現される。
【0032】
1つの画像処理モジュール4において、CPU1により指示された画像処理の実行が開始されてから当該画像処理モジュール4が画像処理を終了し、処理後のデータの出力が可能となるまでの間に、他の画像処理モジュール4でも並行して処理を行なえる。具体的には、RAM7から他の画像処理モジュール4へのデータの入力及び当該他の画像処理モジュールで処理が終了したデータのRAM7への出力を行なえる。更に、画像処理モジュール4は、他の画像処理モジュール4と独立して画像処理を行なうため、複数の画像処理モジュール4を並行して動作させることができ、複数の画像処理を同時に進行させることができる。
【0033】
以上のようにして画像処理モジュール4−m−1まで処理が進み、所定サイズ以上のビットマップデータが生成されると、CPU1は、記録部を起動させる。画像処理モジュール4−mは、記録部の同期信号に合わせてビットマップデータを記録部へ送る。これにより、記録媒体に画像が記録される。
【0034】
図3は、図2に示す画像処理モジュール4の内部構成の一例を示す図である。
【0035】
画像処理モジュール4は、リードバッファ10と、サブモジュール11−1〜11−n(これらを総称する場合、サブモジュール11と呼ぶ)と、ライトバッファ12と、アービタ13と、リードアドレス生成部14とを具備して構成される。また更に、画像処理モジュール4には、割込制御部15と、ライトアドレス生成部16と、スイッチマトリクス17と、レジスタ101と、クロック分配部102と、電源供給部103とが設けられる。
【0036】
レジスタ(コンフィグレーションレジスタ)101には、スイッチマトリクス17、リードアドレス生成部14やライトアドレス生成部16、等の動作に係わるパラメータが設定される。クロック分配部102は、装置のクロックパルスclkを画像処理モジュール4内の各部へ分配する。クロック分配部102は、レジスタ101の設定により、任意のサブモジュール11へのクロックclkの供給を停止できる。電源供給部103は、画像処理モジュール4内の各部への電源供給を制御する。電源供給部103は、レジスタ101の設定により、任意のサブモジュールへの電源供給を停止できる。スイッチマトリクス17では、予め決められた順番で複数のサブモジュール11に対してデータを順次入力する。これにより、処理対象となるデータに対して実施すべき一連の画像処理を複数のサブモジュール11を用いて実施する。
【0037】
スイッチマトリクス17が、複数のサブモジュール11に対して処理用画像データを入力する順番は、予め決められている。この順番は、例えば、リードバッファ10、サブモジュール1、サブモジュール2、・・・、サブモジュールn、ライトバッファ12のように固定的に決めることができる。これにより、スイッチマトリクス17は、常に決められた順にサブモジュール間で処理用画像データを移動させればその役割を果たせるので、スイッチマトリクス17の構成を簡略化できる。画像処理モジュール4内の各サブモジュール間での処理用画像データの入力順番が固定されていたとしても、CPU1において、各サブモジュールに与える処理の内容の順番を入れ替えるようにすれば、1つの画像処理モジュール4で種々の画像処理を実現できる。
【0038】
ここで、1つの画像処理モジュール4において、種類の異なるサブモジュール11が混在している場合を考えてみる。サブモジュール1(11−1)〜n−1(11−n−1)が、後述する図5に示す(適応的)画像処理部413を持つサブモジュールであり、サブモジュールn(11−n)が後述する図6に示す(静的)画像処理部413であるとする。この場合、(静的)画像処理部413が処理用画像データを処理する順番が固定されてしまうという不都合が考えられる。しかし、この不都合は、複数の画像処理モジュール4を組み合わせて使用することで解消できる。例えば、1つ目の画像処理モジュール4では、(適応的)画像処理部413及び(静的)画像処理部413において、(静的)画像処理部413を使用する処理を含む前半の画像処理を実施する。そして、(静的)画像処理部413を使用する処理の済んだ処理用画像データを2つ目の画像処理モジュール4へ転送する。当該処理用画像データを受信した2つ目の画像処理モジュール4では、(適応的)画像処理部413において、後半の画像処理を行なう。なお、2つ目の画像処理モジュール4では、(適応的)画像処理部413において、後半の画像処理を実施した後、(静的)画像処理部413を使用せずに、そのままライトバッファ12へデータを転送する。
【0039】
一方、1つの画像処理モジュール4において、種類の異なるサブモジュールが混在している場合であっても、サブモジュール間の処理の順番を変更するように設計できる。これは、CPU1において、サブモジュール間の処理の順番を指示する順番情報をレジスタ101に設定し、スイッチマトリクス17が、当該順番情報を参照して処理用画像データの入力順番を制御するようにすれば実現できる。この場合、サブモジュール間の処理の順番を固定した場合と比べ、スイッチマトリクス17の構成が複雑になる。しかし、この場合、複数の画像処理モジュール4それぞれにおいて別々の画像処理を実施するように構成できるため、複数の画像処理モジュール4を用いて1つの画像処理を行なう場合に比べて、画像処理速度の向上が見込める。
【0040】
上述した通り、CPU1は、画像処理モジュール4のレジスタ101にパラメータを設定する。このパラメータ設定により、リード開始アドレスとリード終了アドレスとが設定された場合、リードアドレス生成部14は、リードイネーブル信号Renを出力する。このとき、リードアドレス生成部14は、レジスタ101に設定されたパラメータを参照してリードアドレスRad、RAM7からのリードアクセス単位Rnを出力する。Rnが固定的な値であれば、レジスタ101にパラメータを参照せずにRnを出力してもよい。また、ライト開始アドレスとライト終了アドレスとが設定された場合、ライトアドレス生成部16は、ライトイネーブル信号Wenを出力する。このとき、リードアドレス生成部14は、レジスタ101に設定されたパラメータを参照してリードアドレスWad、RAM7からのリードアクセス単位Wnを出力する。Wnが固定的な値であれば、レジスタ101にパラメータを参照せずにWnを出力してもよい。
【0041】
アービタ13は、リードバッファ10の空き容量Rpとリードアドレス生成部14からのリードイネーブル信号Renとを検出する。検出の結果、リードアドレスが有効(Ren=1)であり、また、リードバッファ10に空き領域があるとする(Rp≧Rn(Rn:RAM7からのリードアクセス単位))。この場合、アービタ13は、アービタ5に対してリードリクエスト(PREQ=1、PNRW=0、PNUM=Rn、PADD=Rad)を発行する。
【0042】
一方、ライトバッファ12のデータ蓄積量Wpが所定サイズ以上(Wp≧Wn(Wn:RAM7へのライトアクセス単位)あれば、アービタ13は、ライトアドレス生成部16のライトイネーブル信号Wenを検出する。そして、アービタ13は、アービタ5に対してライトリクエストを発行する。すなわち、ライトアドレスが有効(Wen=1)であり、ライトバッファ12がデータ出力可能(Wp≧Wn)であれば、アービタ13は、アービタ5へライトリクエスト(PREQ=1、PNRW=1、PNUM=Wnum、PADD=Wad)を発行する。
【0043】
アービタ5は、画像処理モジュール4からリクエスト信号PREQを受け取ると、信号PNRWに基づいてリードリクエストであるかライトリクエストであるかを判定する(0:リード、1:ライト)。また、アービタ5は、信号PNUMに基づいて転送サイズ(転送ワード数)を検出するとともに、信号PADDに基づいてアドレスを検出する。ここで、他のリクエスト(CPU1、他の画像処理モジュール4からのリクエスト)がなければ、アービタ5は、RAM7内の該当データへのアクセスを開始し、受領信号PACKをリクエスト元の画像処理モジュール4に返す。一方、他のリクエストがあれば、アービタ5は、各リクエストに対応した処理を調停し、優先順位に従って順番に処理を実行させる。
【0044】
アービタ13は、アービタ5から受領信号PACKを受け取ると、リードリクエストであるかライトリクエストであるかを判定する。判定の結果、リードリクエストであれば、アービタ13は、受領信号Rackをリクエスト元のリードアドレス生成部14に返す。受領信号Rackを受け取ったリードアドレス生成部14は、データ読出先となるRAM7内のアドレスを生成しRadへ出力する。なお、リクエストされたアドレス(リードアドレス生成部14で生成したアドレス)がレジスタ101に設定されたリード終了アドレスであれば、リードアドレス生成部14は、リードイネーブル信号Renをリセットする。また、リードアドレス生成部14は、割込制御部15に向けてリード終了信号Rendを出力する。
【0045】
一方、アービタ5からの受領信号PACKがライトリクエストであった場合、アービタ13は、受領信号Wackをリクエスト元のライトアドレス生成部16に返す。受領信号Wackを受け取ったライトアドレス生成部16は、データ書込先となるRAM7内のアドレスを生成する。なお、リクエストされたアドレスがレジスタ101に設定されたライト終了アドレスであれば、ライトアドレス生成部16は、ライトイネーブル信号Wenをリセットするとともに、割込制御部15に向けてライト終了信号Wendを出力する。
【0046】
ここで、割込制御部15は、レジスタ101に設定されたパラメータに基づいてリード終了割込マスク及びライト終了割込マスクの設定を行なう。割込制御部15は、各割込マスクの設定がイネーブルであれば、リード終了信号Rend又はライト終了信号Wendに応じて割込信号INTを生成し、その生成した信号をCPU1へ通知する。
【0047】
割込信号INTを受けたCPU1は、割込制御部15のステータスを読み取り、割込要因を判定する。判定の結果、割込要因がリード終了であれば、CPU1は、リード終了割込マスクをリセットして割り込みを解除する。なお、処理を継続する場合には、CPU1において、リード開始アドレスとリード終了アドレスとをレジスタ101に再設定し、それに伴ってリードアドレス生成部14において、リードイネーブル信号Renを出力等する。その後、割込制御部15において、リード終了割込マスクを設定する。
【0048】
一方、割込制御部15のステータスを読み取った結果、その割込要因がライト終了であれば、CPU1は、ライト終了割込マスクをリセットして割り込みを解除する。なお、処理を継続する場合には、CPU1において、ライト開始アドレスとライト終了アドレスとをレジスタ101に再設定し、それに伴ってライトアドレス生成部16において、ライトイネーブル信号Wenを出力等する。その後、割込制御部15において、ライト終了割込マスクを設定する。
【0049】
ここで、RAM7からデータが読み出されると、アービタ5は、RAMデータ有効信号PVALIDをリクエスト元の画像処理モジュール4に返す。リクエスト元の画像処理モジュール4では、アービタ13において、リードバッファ10へデータ有効信号Rvalidを返す。リードバッファ10は、このデータ有効信号Rvalidが出力されている間、RAMデータ出力信号PDINに含まれるデータを格納する。これにより、信号PADD(=Rad)に示されるアドレス(リードアドレス生成部14が生成したアドレス)に基づいてRAM7から読み出されたデータがリードバッファ10へ格納される。
【0050】
一方、RAM7にデータを書き込む場合、アービタ5は、RAM7の書込タイミングに合せてリクエスト元の画像処理モジュール4にRAMデータ有効信号PVALIDを返す。リクエスト元の画像処理モジュール4では、アービタ13において、ライトバッファ12へデータ有効信号Wvalidを返す。ライトバッファ12は、データ有効信号Wvalidが出力されている間、RAMデータ入力信号PDOUTを用いて書込データを出力する。これにより、ライトバッファ12のデータが信号PADD(=Wad)に示されるRAM7内のアドレス(ライトアドレス生成部16が生成したアドレス)へ格納される。
【0051】
リードバッファ10は、サブモジュール11の処理に必要なデータが全て格納されると、有効信号valid_outを出力し、そうでなければ、有効信号valid_outをリセットする。また、リードバッファ10は、サブモジュール11からの保持要求信号stall_inが入力されていなければ、格納されたデータをクロックに同期してdata_outへ順次出力する。なお、サブモジュール11からの保持要求信号stall_inが入力されていれば、data_outへ出力するデータの更新は行なわない。ここで、サブモジュール11から出力された保持要求信号stall_outは、リードバッファ10の保持要求信号stall_inへ入力される。一方、サブモジュール11は、処理後のデータのライトバッファ12への出力が可能になると、有効信号valid_outを出力し、そうでなければ、有効信号valid_outをリセットする。また、サブモジュール11は、保持要求信号stall_inがリードバッファ10から入力されていなければ、格納されたデータをクロックに同期してdata_outへ順次出力する。なお、保持要求信号stall_inがリードバッファ10から入力されていれば、data_outへ出力するデータの更新は行なわない。ここで、ライトバッファ12から出力された保持要求信号stall_outは、サブモジュール11の保持要求信号stall_inへ入力される。サブモジュール11同士のデータの送受信も、上述したサブモジュール11、リードバッファ10又はライトバッファ12間の手順と同様に行われる。
【0052】
サブモジュール11は、リードバッファ10又は他のサブモジュール11から有効信号valid_outが出力されている間、data_inを介してリードバッファ10又は他のサブモジュール11からデータを受け取る。サブモジュール11は、有効信号valid_outを出力している間、data_inを介してライトバッファ又は他のサブモジュール11へデータを出力する。なお、データの受け取りができない場合、サブモジュール11は、保持要求信号stall_outを出力する。これにより、データ送信元であるリードバッファ10又は他のサブモジュール11の保持要求信号stall_inをセットし、リードバッファ10の出力をホールドする。また、ライトバッファ12又は他のサブモジュール11がデータの受け取りができない場合、ライトバッファ12又は他のサブモジュール11は、保持要求信号stall_outを出力する。これにより、データ送信元であるサブモジュール11の保持要求信号stall_inをセットし、サブモジュール11の出力をホールドする。リードバッファ10、サブモジュール11、ライトバッファ12間のデータ入出力の順番は、スイッチマトリクスがレジスタ101の設定に従って管理する。そして、その順番に従って、data_in及びdata_out、valid_in及びvalid_out、stall_in及びstall_outが接続され、データが入出力される。なお、入力データ又は出力データを並び替える必要がなければ、リードバッファ10やライトバッファ12は、例えば、FIFOで構成すればよい。
【0053】
以上のように画像処理モジュール4の内部は、1つ以上のサブモジュール11により構成される。各サブモジュール11間では、上述した動作(有効信号validと保持要求信号stallによるハンドシェーク(あるモジュールの_inは他のモジュールの_outに接続される))によってデータの受け渡しが行なわれる。これらサブモジュール11は、各種画像処理に必要なハードリソースに着目して構成する。これにより、各サブモジュールの接続関係や処理シーケンス、演算精度等を適宜変更できるため、多様な処理モードに対応できるコンパクト且つ柔軟な画像処理装置を構築することができる。また、未使用サブモジュール11へのクロックの停止や、未使用サブモジュール11への電源供給を停止できるため、処理速度や処理精度のみならず、消費電力の抑制も図れる。
【0054】
なお、画像処理モジュール4を多様なフォーマットに対応できるように構成した場合、分割処理(マルチシーケンス処理)を実現できる。この場合、上述したハードリソースでは未対応な処理であっても、別モジュールやCPU等で実行するように構成できる。基本的には、リードバッファ10、各サブモジュール11、ライトバッファ12間の入力データ及び出力データのフォーマットは、統一することが望ましい。フォーマットを統一した場合、サブモジュールの処理順番を入れ替えたり、特定のサブモジュールを不使用にしたりする場合でも、リードバッファ10、各サブモジュール11、ライトバッファ12間でのデータの入出力データフォーマットに変更は生じない。
【0055】
ここで、図4は、本実施形態に係わる入出力データフォーマットの一例を示す図である。このフォーマット(以下、処理用画像データと呼ぶ)は、例えば、上述したサブモジュール11やスイッチマトリクス17等の間において共有して使用される。
【0056】
処理用画像データ301は、属性値を持たない形式である。この形式は、従来同様の形式である。この処理用画像データ301は、R(赤)、G(緑)、B(青)、それぞれ32bitづつの画素値を持つ画素値フィールド(3011〜3013)から構成され、全部で96bitとなる。
【0057】
処理用画像データ302は、8bitの属性値フィールドを3つ(3024〜3026)、24bitの画素値フィールドを3つ(3021〜3023)持つ形式である。ここで、本実施形態においては、この属性値フィールドに対して各種設定値(属性値)を設定する。属性値は、その種類や役割が固定されておらず、自由な値が設定される。例えば、どの画像処理サブモジュールでどのような処理を行なうかを示す値や、属性値フィールドの内、どのフィールドを参照してどのような処理を行なうか、等を示す値を設定することができる。
【0058】
処理用画像データ303は、8bitの属性値フィールドを6つ(3034〜3039)、16bitの画素値フィールドを3つ(3031〜3033)持つ形式である。処理用画像データ304は、16bitの属性値フィールドを3つ(3044〜3046)、16bitの画素値フィールドを3つ(3041〜3043)持つ形式である。処理用画像データ305は、16bitの属性値フィールドを2つ(3054、3055)、8bitの属性値フィールドを2つ(3056、3057)、16bitの画素値フィールドを3つ(3051〜3053)持つ形式である。
【0059】
本実施形態においては、これら処理用画像データ301〜305は、いずれも全体として96bitのフォーマットで構成されている。そのため、属性値のダイナミックレンジを大きくする(属性値フィールドのbit数を多くする)と、画素値のダイナミックレンジは小さくなり(画素値フィールドのbit数が少なくなる)、属性値及び画素値は、トレードオフの関係を持つ。
【0060】
これを踏まえると、処理用画像データ301の構成は、画素値の精度を最も高く維持できる形式であるといえる。また、処理用画像データ302の構成は、画素値の精度を高く維持しつつ、属性値も使用できる形式であるといえ、処理用画像データ303の構成は、各画素の保持する属性値の数を更に増やした形式であるといえる。処理用画像データ304の構成は、属性値が画素値と同じダイナミックレンジを持ち、より高精度な属性値による制御を実現する形式であるといえる。処理用画像データ305の構成は、2種類のサイズの属性値を持ち、必要に応じて大小の属性値を組み合わせて使用できる形式であるといえる。
【0061】
以上のような処理用画像データを用いることにより、様々なユースケースにおいて異なる画像処理を実施できる。具体的には、属性値を用いることにより、同一リソースを用いて異なる画像処理を実施できる。これにより、画像処理の柔軟性と回路サイズの低減とが図れる。
【0062】
以上が処理用画像データのフォーマットについての説明であるが、上述したフォーマットの構成はあくまで一例であり、これに限られない。例えば、上述した説明では、各画素値が32bit、全体サイズが96bitである場合を例に挙げて説明したが、サイズは、これ以外であってもよい。例えば、各画素値が16bit、全体サイズが48bitであってもよい。また、各画素値のbit数は、同一である必要もなく、例えば、R:10bit、G:12bit、B:10bitのように、各画素値を不均一なサイズとしてもよい。なお、図4に示すフォーマット(処理用画像データ)は、例えば、CPU1(画像処理モジュール4であってもよい)により作成される。すなわち、CPU1においては、画像を表現する画像データを当該画像の各画素に対応して、当該各画素の画素値を保持する画素値フィールドと、属性値を保持する属性値フィールドとを含む処理用画像データに編集する機能を備える。
【0063】
次に、図5を用いて、画像処理を行なうサブモジュール(以下、画像処理サブモジュールと呼ぶ)の構成について説明する。画像処理サブモジュールは、図3に示すサブモジュール11として実現される。なお、上述した図3に示す構成と同一ものには同一の符号が付してある。
【0064】
入力データ処理方法設定部401は、レジスタ101に設定されたパラメータを参照して、入力属性値と入力画素値とに対する処理方法を設定する。なお、入力属性値及び入力画素値を含む処理用画像データは、スイッチマトリクス17からのData_in制御信号により入力される。
【0065】
出力データ処理方法設定部402は、レジスタ101に設定されたパラメータを参照して、出力属性値と出力画素値とに対する処理方法を設定する。なお、出力属性値及び出力画素値を含む処理用画像データは、Data_out制御信号によりスイッチマトリクス17に出力される。この入力処理用画像データ及び出力処理用画像データに対する処理方法の設定は、CPU1において、リードバッファ10、各サブモジュール11−n、ライトバッファ12に係わる設定値をコンフィグレーションレジスタ101に設定することで行なわれる。この設定の仕方については特に問わない。例えば、図1に示す画像処理モジュール4各々からCPU1への信号線を双方向化する。そして、CPU1と画像処理モジュール4各々のレジスタ101とを接続し、CPU1からコンフィグレーションレジスタ101に直接設定してもよい。また、CPU1と画像処理モジュール4各々のスイッチマトリクス17とを接続し、レジスタ設定コマンドを実行することでスイッチマトリクス17を介して設定してもよい。なお、以下、説明する各種設定全てについても、その設定の仕方については特に問わない。
【0066】
入力属性値処理部403は、入力処理用画像データに含まれる入力属性値を編集する。Bit拡張器404は、入力処理用画像データに含まれる入力画素値を画像処理部413の処理に適したフォーマットにBit拡張する。なお、入力属性値処理部403及びBit拡張器404における処理は、入力データ処理方法設定部401により設定される設定情報(第1の設定情報)に基づいて行なわれる。
【0067】
第1の属性値管理部405は、入力属性値処理部403により処理された入力属性値を遅延器406に保持させる。また、出力属性値の出力に際しては、所定のタイミングで出力属性値処理部407に向けて出力画素値を出力する。この出力タイミングは、画像処理部413の電気的構成に合わせる必要がある。
【0068】
例えば、画像処理部413が、以下の処理を行なうとする。
【0069】
入力画素:連続する3入力画素(画素(X−1)、画素(X)、画素(X+1))
出力画素:画素Xの位置
出力値:3画素の和
画素値(X−1)+画素値(X)+画素値(X+1)
属性値:特に処理せず、出力属性値(X)=入力属性値(X)
この場合、出力値を算出するために出力属性値(X)を用いるが、最終的な出力値が決まるのは、画素(X+1)が入力されたタイミングとなる。そのため、第1の属性値管理部405においては、出力画素値(X)が画像処理部413から出力属性値処理部407に送られるタイミングで遅延器406に既に保持されている属性値(X)を取り出し、出力属性値処理部407に出力する。すなわち、画素(X)より後に入力される画素(X+1)を用いた出力画素値(X)の演算が終了するまで、出力画素値(X)の属性値となる属性値(X)を遅延器406で保持する。以下、これと同様に、出力画素値(X)の出力タイミングとなるまで出力画素値(X)の属性値となる値を遅延器406で保持する。
【0070】
遅延器406は、上述した通り、属性値(入力属性値、出力属性値)を保持する。遅延器406は、属性値の入出力を遅延させるために設けられる。この遅延器406による処理について具体例を挙げて説明する。
例えば、画像処理部413が、以下の処理を行なうとする。
入力画素:連続する3入力画素(画素(X−1)、画素(X)、画素(X+1))
出力画素:画素Xの位置
出力値:3画素の和を属性値で除算する
(画素値(X−1)+画素値(X)+画素値(X+1))÷属性値(X)
属性値:特に処理せず、出力属性値(X)=入力属性値(X)
この場合、画像処理部413においては、入力画素値(X+1)が入ってきたタイミングで入力属性値(X)が必要となる。そのため、遅延器406において、画像処理部413への入力属性値(X)の入力を遅延させる。
【0071】
出力属性値処理部407は、画像処理部413から出力された出力属性値を編集する。Bit圧縮器408は、出力処理用画像データに含まれる出力画素値を出力用のフォーマットにBit圧縮する。なお、出力属性値処理部407及びBit圧縮器408における処理は、出力データ処理方法設定部402により設定される設定情報(第2の設定情報)に基づいて行なわれる。
【0072】
入力属性値情報設定部409は、レジスタ101に設定されたパラメータを参照して、遅延器406に保持される入力属性値の内、どの属性値を画像処理部413による画像処理時に用いるのかを規定する設定情報(第3の設定情報)を設定する。すなわち、複数の画素値フィールドの画素値と、複数の属性値フィールドの属性値とのいずれを対応付けて画像処理部413に入力するかを示す情報を設定する。
【0073】
出力属性値情報設定部410は、レジスタ101に設定されたパラメータを参照して、遅延器406に保持される出力属性値をどの属性値フィールドに設定するのかを規定する設定情報(第4の設定情報)を設定する。すなわち、画像処理部413により処理された複数の画素値フィールド各々に対して、複数の属性値フィールドのいずれかを対応付けるかを示す情報を設定する。言い換えれば、出力属性値情報設定部410は、画像処理部413により処理された出力属性値の属性値フィールドを設定する。
【0074】
第2の属性値管理部411は、画像処理部413における属性値の入出力を管理する。この管理は、入力属性値情報設定部409及び出力属性値情報設定部410により設定された設定情報に基づいて行なわれる。第2の属性値管理部411は、例えば、遅延器406から入力属性値を取り出し、画像処理部413に向けて出力する。また、第2の属性値管理部411は、例えば、画像処理部413から出力された出力属性値を遅延器406に保持させる。
【0075】
パラメータ設定部412は、レジスタ101に設定されたパラメータを参照して、画像処理固有の処理パラメータを設定する。画像処理部413は、画素毎に属性値に応じた画像処理を行なう(適応的画像処理)。具体的には、Bit拡張器404、第2の属性値管理部411、パラメータ設定部412等から入力される入力画素値、入力属性値、パラメータ等を用いて所定の画像処理を行なう。また、画像処理部413は、出力画素値を必要に応じてBit圧縮器408に向けて出力し、出力属性値を必要に応じて第2の属性値管理部411に向けて出力する。なお、本実施形態に係わる画像処理部413では、各画素値(R/G/B)それぞれを入出力ともに32bitで処理する。従って、属性値を使用する場合、Bit拡張器404において、「16bit」or「24bit」から「32bit」への拡張が行なわれる。また逆に、Bit圧縮器408においては、「32bit」から「16bit」or「24bit」への圧縮が行なわれる。すなわち、ビット数を合わせる(この場合、属性値フィールドのビット数と、画素値フィールドのビット数との比率が変更されることになる)。なお、必ずしもこのようなBit関係である必要はなく、画像処理部413における画像処理Bit数が入力属性値処理部403で抽出された画素値のBit数より小さくてもよい。この場合、例えば、図5に示すBit拡張器404とBit圧縮器408との位置を相互に入れ替えて対応すればよい。また、Bit拡張及び圧縮の方法としては、ビットシフトを用いてもよいし、乗算、除算を行なうようにしてもよい。
【0076】
このように本実施形態においては、Bit拡張器404及びBit圧縮器408を設け、処理用画像データ内で保持される画素値フィールド(すなわち、画素)のbit数が異なる場合であっても、画像処理部413の入出力段階では、Bit数を一定にする。これにより、属性値のBit数、画素値のBit数によらず、同一リソース(画像処理部)を用いた画像処理が実現できる。
【0077】
以上、画像処理サブモジュールの構成について説明したが、画像処理サブモジュールにおいては、上述した構成全てが必ずしも必須の構成ではない。例えば、1画素入力して所定の画像処理を施して1画素出力する場合には、遅延器406は不要となる。このとき、第1の属性値管理部405と第2の属性値管理部411とが一体で構成されてもよい。更に、上述した画像処理サブモジュールでは、属性値の設定変更も行なうことになるが、単に属性値を使用して画像処理を行なうモジュールを構成してもよい。この場合、出力属性値情報設定部410は不要となる。また、同様に属性値を画像処理に使用せず、属性値の設定変更のみを行なうモジュールを構成した場合には、入力属性値情報設定部409は不要となる。
【0078】
ここで、図3に示す構成においては、複数のサブモジュールが配されている。この中に属性値非対応のサブモジュール(以下、属性値非対応サブモジュールと呼ぶ)が混在している場合、そのモジュールでは、属性値が画素値として取り扱われてしまう可能性がある。この場合、正しい出力結果が得られなくなってしまう。図6を用いて、これに対処する構成について説明する。
【0079】
属性値非対応サブモジュール11とスイッチマトリクス17との間には、属性値伝達ラッパー層110が設けられる。属性値伝達ラッパー層110は、スイッチマトリクス17と属性値非対応サブモジュール11との間の中間層(すなわち、中間処理モジュールとして機能する)に位置し、属性値を伝達する役割を果たす。これにより、属性値非対応サブモジュール11は、属性値対応サブモジュールであるかのように振舞うことができる。なお、属性値伝達ラッパー層110の符号401〜408に示す各構成部は、図5を説明した各構成部と同等の機能を果たすため、その説明については省略する。
【0080】
パラメータ設定部412は、レジスタ101に設定されたパラメータを参照して、画像処理固有の処理パラメータを設定する。画像処理部413は、画素毎に一様な画像処理を行なう(静的画像処理)。具体的には、Bit拡張器404及びパラメータ設定部412等から入力される入力画素値及びパラメータ等を用いて所定の画像処理を行なう。また、画像処理部413は、出力画素値を必要に応じてBit圧縮器408に向けて出力する。なお、スイッチマトリクス17と属性値非対応サブモジュールとの間の制御信号の内、Valid_in、Stall_in、Stall_out、Valid_outについては、属性値伝達ラッパー層110を介さずに両者の間を直結するようにしてもよい。
【0081】
属性値伝達ラッパー層110から属性値非対応サブモジュール11へのData_inには、入力画素値のみが含まれる。これは、属性値伝達ラッパー層110の入力属性値処理部403及びBit拡張器404において、属性値が取り除かれるためである。また、属性値非対応サブモジュール11から属性値伝達ラッパー層110へのData_outには、出力画素値のみが含まれる。
【0082】
以上の構成により画像処理部413を変更せずに、属性値を伝達する仕組みを実現できる。ここで、仮に、画像処理部413において、32bit演算処理を行なうとした場合、画素値のBit幅が属性値の分、低減することになるが、画像処理の精度自体が変わる分けではない。また、属性値伝達ラッパー層110を設けることにより、属性値対応サブモジュールと属性値非対応サブモジュールとが混在した画像処理モジュール4を構成できる。これにより、共通のフォーマット(すなわち、処理用画像データ)を用いて、bit数の多い高精度な画像処理(静的)と、相対的にbit数は減るが適応的な画像処理との両方を実現することができる。
【0083】
次に、「表1」を用いて、入力データ処理方法設定部401により設定される設定情報について説明する。すなわち、入力属性値処理部403及びBit拡張器404は、この「表1」の設定情報に基づいて各種処理を実行する。なお、「表1」に示す設定値はあくまで一例であり、これに限られない。
(表1)
【0084】
[Get_Mode10]
この設定は、処理用画像データが図4に示すフォーマット301である場合に好適である。この場合、処理用画像データ(すなわち、96bit)は、全て画素値フィールド(画素値フィールド32bit x 3)で構成される。この設定では、入力属性値処理部403は、属性値フィールドに全て0(標準値)を設定する。なお、この場合、画素値が32bitあるので、Bit拡張器404は動作しない。
【0085】
[Get_Mode11]
この設定は、処理用画像データが図4に示すフォーマット302である場合に好適である。この場合、処理用画像データ(すなわち、96bit)は、画素値フィールドの24bit x 3と、属性値フィールドの8bit x 3とから構成される。この設定では、入力属性値処理部403は、属性値フィールドに全て0(標準値)を設定(上書き)する。これにより、画像処理部413においては、適応的な画像処理ではなく、静的な画像処理が行なわれる。また、この場合、画素値が24bitなので、Bit拡張器404は、「24bit」から「32bit」へのBit拡張を行なう。この「Get_Mode11」の設定は、例えば、他のサブモジュールの処理内容を属性値として生成し、それを設定する役割を果たすモジュール等で用いられる。例えば、「Get_Mode11」を実行するサブモジュールでは、画像の特徴を抽出する処理(エッジ部であるか否かの判定等)を行ない、元の画素値とともに出力する。この場合、「Get_Mode11」を実行するサブモジュールでは、画像処理部413において、画素値フィールドの画素値に基づき画像の特徴を抽出する。そして、その判定結果を属性値として生成し、生成した属性値を属性値フィールドに設定する。また、なんら加工や補正を行なっていない画素値を画素値フィールドに設定する。その後、出力属性値処理部407において、処理用画像データを出力する。この処理用画像データがスイッチマトリクス17を介して後続のサブモジュールへ転送される。すると、後続のサブモジュールでは、受け取った処理用画像データの属性値フィールドに設定された属性値を用いて、画素値に対する処理内容を決定して適応的に画像処理を実行する。また、この「Get_Mode11」の設定では、入力属性値処理部403において、属性値フィールドに0を設定してしまうため、属性値の伝播を中止できる。なお、属性値の伝播の中止のみを行なうのであれば、属性値フィールドに0を設定した処理用画像データを出力すればよいので、属性値の出力側、すなわち、出力属性値処理部407において、この処理(0パディング)を行なうようにしてもよい。更に、属性値の伝播を中止するとともに、新たに生成した属性値を属性値フィールドに設定する場合には、入力属性値処理部403で属性値を0にしなくてもよい。具体的には、画像処理部413において、属性値を用いずに画像処理を実施し、新たに生成した属性値を、属性値の出力側、すなわち、出力属性値処理部407において、属性値フィールドに設定する。そして、出力属性値処理部407において、処理用画像データを出力する。「Get_Mode11」を設定した場合、サブモジュール単体で処理が閉じることになるので、人為的ミス等が介在する可能性を低減させることができる。
【0086】
[Get_Mode12]
この設定は、処理用画像データが図4に示すフォーマット302である場合に好適である。この設定では、入力属性値処理部403は、入力された処理用画像データに含まれる属性値をそのまま設定することになる。「Get_Mode12」の設定は、例えば、属性値を使用して適応的な画像処理を行なう場合に用いられる。
【0087】
[Get_Mode13]
この設定は、上述した「Get_Mode11」とほぼ同じ動作となる。処理用画像データが図4に示すフォーマット303〜305である場合に好適である。「Get_Mode11」との相違点としては、属性値及び画素値のBit数にある。「Get_Mode13」を設定した場合、Bit拡張器404によるBitの拡張度合いは、「16bit」から「32bit」となる。
【0088】
[Get_Mode14]
この設定は、上述したGet_Mode12とほぼ同じ動作となる。処理用画像データが図4に示すフォーマット303〜305である場合に好適である。「Get_Mode12」との相違点としては、属性値及び画素値のBit数にある。「Get_Mode14」を設定した場合、Bit拡張器404によるBitの拡張度合いは、「16bit」から「32bit」となる。
【0089】
次に、「表2」を用いて、出力データ処理方法設定部402により設定される設定情報について説明する。すなわち、出力属性値処理部407及びBit圧縮器408は、この「表2」の設定情報に基づいて各種処理を実行する。なお、「表2」に示す設定値はあくまで一例であり、これに限られない。
(表2)
【0090】
[Put_Mode20]
この設定は、出力する処理用画像データが図4に示すフォーマット301である場合に好適である。この場合、処理用画像データ(すなわち、96bit)は、全て画素値フィールド(画素値フィールド 32bit x 3)で構成される。この設定では、出力属性値処理部407では属性値を設定しない。また、画素値が32bitあるので、Bit圧縮器408も動作しない。
【0091】
[Put_Mode21]
この設定は、出力する処理用画像データが図4に示すフォーマット302である場合に好適である。この場合、処理用画像データ(すなわち、96bit)は、画素値フィールドの24bit x 3と、属性値フィールドの8bit x 3とから構成される。この設定では、出力属性値処理部407は、属性値フィールドに全て0(標準値)を設定(上書き)する。これにより、他のサブモジュールに向けては、属性値が無効な状態の処理用画像データが出力されることになる。また、画素値が32bitあるので、Bit圧縮器408は、「32bit」から「24bit」へのBit圧縮を行なう。この「Put_Mode21」の設定は、例えば、自身(当該サブモジュール)は、属性値を用いた適応的な画像処理を実施するが、他のサブモジュールでは、属性値を用いない静的な画像処理を実施させる場合に用いられる。「Put_Mode21」の設定では、属性値フィールドに0を設定するため、属性値の伝播を中止できる。なお、属性値の入力側、すなわち、入力属性値処理部403において、この処理(0パディング)を行なうようにしてもよい。「Put_Mode21」を設定した場合、他の属性値非対応サブモジュールでの弊害発生確率を低減させることができる。
【0092】
[Put_Mode22]
この設定は、上述した「Put_Mode21」とほぼ同じ動作となる。処理用画像データが図4に示すフォーマット302である場合に好適である。この設定の場合、出力属性値処理部407は、画像処理部413から出力された属性値をそのまま用いて属性値を設定する。また、画素値が32bitあるので、Bit圧縮器408は、「32bit」から「24bit」へのBit圧縮を行なう。「Put_Mode22」の設定は、例えば、他のサブモジュールの処理内容を属性値として生成し、それを設定する役割を果たすモジュール等で用いられる。
【0093】
[Put_Mode23]
この設定は、上述した「Put_Mode21」とほぼ同じ動作となる。処理用画像データが図4に示すフォーマット303〜305である場合に好適である。「Put_Mode21」との相違点としては、属性値及び画素値のBit数にある。「Put_Mode23」を設定した場合、Bit圧縮器408によるBitの圧縮度合いが「32bit」から「16bit」となる。
【0094】
[Put_Mode24]
この設定は、上述した「Put_Mode22」とほぼ同じ動作となる。処理用画像データが図4に示すフォーマット303〜305である場合に好適な設定である。「Put_Mode22」との相違点としては、属性値及び画素値のBit数にある。「Put_Mode24」を設定した場合、Bit圧縮器408によるBitの圧縮度合いが「32bit」から「16bit」となる。
【0095】
以上のように「表2」に示す設定情報を用いて処理を行なうことにより、属性値対応サブモジュールでの属性値の使用・未使用等を制御できる。これにより、様々な画像処理を同一リソース(画像処理部)を用いて実現できる。また、処理用画像データ内のどのフィールドを属性値又は画素値に使用するかを自由に設計できるため、画像処理設計の柔軟性を実現しつつ、様々な用途にサブモジュールを利用できる。
【0096】
次に、「表3」を用いて、入力属性値情報設定部409により設定される設定情報について説明する。第2の属性値管理部411は、画像処理の開始前において、この「表3」の設定情報に基づいて各種処理を実行する。ここでは、図4に示すフォーマット302(属性値フィールドが3つ)を使用する場合の設定情報を例に挙げて説明する。
(表3)
【0097】
[In_Mode30]
この設定では、画像処理に属性値を使用しない。すなわち、第2の属性値管理部411において、属性値を画像処理部413に入力しない。この場合、サブモジュールは、属性値非対応サブモジュールとして動作する。この設定は、例えば、画像処理部413で静的な画像処理を実施する場合に好適である。画像処理部413に静的な画像処理を実施させる方法は種々あるが、例えば、画像処理部413に伝達される属性値を全て0(標準値)とすればよい。「表1」に示す「Get_Mode11」を設定した場合にも、属性値フィールドを0に設定できるが、「In_Mode30」を設定した場合には、他のサブモジュールから受け取った属性値自体を0に変更するのではないため、属性値の伝播は継続される。
【0098】
[In_Mode31]
この設定は、複数の属性値フィールド(A0〜A2)の内、属性値フィールドA0のみを用いて画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode31」を設定した場合、画像処理は、他の属性値フィールド(A1、A2)を用いずに行なわれる。「In_Mode31」を設定した場合、同一の属性値を用いて画素値フィールドの全チャネル(RGB)に対して適応的な画像処理を実施できる。ここで、A0は、図4に示すフォーマット302の属性値フィールド3024であり、A1は、図4に示すフォーマット302の属性値フィールド3025であり、A2は、図4に示すフォーマット302の属性値フィールド3026である。以下の実施形態1〜5において、A0〜A2は、属性値フィールド3024〜3026を指す。
【0099】
[In_Mode32]
この設定は、複数の属性値フィールド(A0〜A2)の内、属性値フィールドA1のみを用いて画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode32」を設定した場合、画像処理は、他の属性値フィールド(A0、A2)を用いずに行なわれる。「In_Mode32」を設定した場合、同一の属性値を用いて画素値フィールドの全チャネル(RGB)に対して適応的な画像処理を実施できる。
【0100】
[In_Mode33]
この設定は、複数の属性値フィールド(A0〜A2)の内、属性値フィールドA2のみを用いて画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode33」を設定した場合、画像処理は、他の属性値フィールド(A0、A1)を用いずに行なわれる。「In_Mode33」を設定した場合、同一の属性値を用いて画素値フィールドの全チャネル(RGB)に対して適応的な画像処理を実施できる。
【0101】
[In_Mode34]
この設定は、属性値フィールドA0を画素値R、属性値フィールドA1を画素値G、属性値フィールドA2を画素値B、に用いて適応的な画像処理を実施する場合に好適である。
【0102】
以上のように「In_Mode30〜34」を選択的に用いて処理を行なうことにより、複数の属性値フィールドの少なくとも1つの情報を用いて適応的な画像処理を実施できる。なお、「表3」に示す設定値はあくまで一例であり、これに限られない。例えば、画素値がR、G、Bではなく、Y、Cb、Crのように、明るさ(Y)情報や色(Cb/Cr)情報を含む場合には、明るさに関しては属性値フィールドA0、色に関しては属性値フィールドA1、を用いて適応的な画像処理を実施するようにしてもよい。この場合、属性値フィールドA2には、例えば、他のサブモジュールが用いる属性値等を設定すればよい。
【0103】
次に、「表4」を用いて、出力属性値情報設定部410により設定される設定情報について説明する。第2の属性値管理部411は、画像処理の終了後において、この「表4」の設定情報に基づいて各種処理を実行する。ここでは、図4に示すフォーマット303(属性値フィールドが6つ)を使用する場合の設定情報を例に挙げて説明する。
(表4)
【0104】
[Out_Mode40]
この設定は、自身(当該サブモジュール)において属性値の設定を行なわない場合に好適である。すなわち、出力属性値は、入力属性値そのままとなり、両者は同じ値となる。
【0105】
[Out_Mode41]
この設定は、複数の属性値フィールド(A0〜A2)の内、属性値フィールドA0のみを新たに設定する場合に好適である。「Out_Mode41」を設定した場合、他の属性値フィールド(A1、A2)は更新されない。
【0106】
[Out_Mode42]
この設定は、複数の属性値フィールド(A0〜A2)の内、属性値フィールドA1のみを新たに設定する場合に好適である。「Out_Mode42」を設定した場合、他の属性値フィールド(A0、A2)は更新されない。
【0107】
[Out_Mode43]
この設定は、複数の属性値フィールド(A0〜A2)の内、属性値フィールドA2のみを新たに設定する場合に好適である。「Out_Mode43」を設定した場合、他の属性値フィールド(A0、A1)は更新されない。
【0108】
[Out_Mode44]
この設定は、複数の属性値フィールドA0〜A2の全てを新たに設定する場合に好適である。
【0109】
以上のように「Out_Mode40〜44」を選択的に用いて処理を行なうことにより、複数の属性値フィールドの少なくとも1つの情報を設定変更できる。これにより、他のサブモジュールで適応的な画像処理を実施させることができる。なお、「表4」に示す設定値はあくまで一例であり、これに限られない。例えば、画素値がR、G、Bではなく、Y、Cb、Crのように、明るさ(Y)情報や色(Cb/Cr)情報を含む場合には、明るさに関しては属性値フィールドA0、色に関しては属性値フィールドA1に対して異なる属性値を設定すればよい。この場合、属性値フィールドA2には、例えば、他のサブモジュールが用いる属性値等を設定すればよい。
【0110】
次に、実施形態1〜7を用いて、画像処理サブモジュールにおける動作例と、それに伴う設定情報の設定例とについていくつか例を挙げて説明する。
【0111】
(実施形態1)
図7は、3つの属性値対応サブモジュールにおいて、外部から伝達された3つの属性値各々を使用して画像処理を行なう場合の概要を示している。ここでは、写真印刷に際して、逆光補正、赤目補正、ノイズ補正を行なう場合を例に挙げて説明する。なお、使用する処理用画像データは、図4に示すフォーマット302(属性値フィールドが3つ)であるものとする。
【0112】
ここでまず、各サブモジュールで実施される処理について説明する。逆光補正は、暗部を明るくする処理(例えば、一次元ルックアップテーブルを用いた階調変換)であり、暗部にだけ補正処理を施す必要がある。赤目補正は、赤色を黒くする処理(例えば、三次元ルックアップテーブルを用いた色変換)であり、赤目エリアにだけ補正処理を施す必要がある。ノイズ補正は、ノイズ発生エリアをぼかす(例えば、二次元平面フィルタを用いた平滑化)処理であり、ノイズ発生エリアにだけ補正処理を施す必要がある。なお、これら補正処理は、いかなる方法で実現されてもよい。
【0113】
サブモジュールと補正処理との関係は以下の通りとする。
逆光補正処理サブモジュール11−1:逆光補正処理(一次元ルックアップテーブルによる階調変換処理:属性値0で補正なし、属性値1で補正あり)
赤目補正処理サブモジュール11−2:赤目補正処理(三次元ルックアップテーブルによる色変換処理:属性値0で補正なし、属性値1で補正あり)
ノイズ補正処理サブモジュール11−3:ノイズ補正処理(二次元平面フィルタによる平滑化処理:属性値0で補正なし、属性値1で補正あり)
なお、補正の有無については、あくまで一例であり、属性値の値(8bit時:0〜255)を補正強度としてもよい。また、属性値によって補正の有り・無しを指定するのではなく、属性値によって参照するルックアップテーブルやフィルタ係数を切り替えるようにしてもよい。その場合、例えば、第1のルックアップテーブルを補正無しのテーブルとし、第2のルックアップテーブルを補正有りのテーブルとして設け、互いを切り替えて使用する。また更に、第3のルックアップテーブルを設け、逆方向の補正を行なうようにしてもよい。この場合、例えば、ぼかし〜補正なし〜エッジ強調等の処理を属性値により切り替えることができる。
【0114】
ここで、図8を用いて、図7に示す構成における画像処理(例えば、写真印刷時)の流れの一例について説明する。
【0115】
画像処理装置100は、CPU1において、まず、画像処理対象の写真が逆光写真であるか否かを判定し、補正すべき暗部を特定する(S101)。暗部の特定が済むと、画像処理装置100は、CPU1において、画像処理対象の写真内に赤目が発生しているか否かを判定し、補正すべき赤目エリアを特定する(S102)。また、画像処理装置100は、CPU1において、画像処理対象の写真内に撮影ノイズが発生しているか否かを判定し、補正すべきノイズ発生エリアを特定する(S103)。
【0116】
処理対象となるエリアの特定が済むと、画像処理装置100は、CPU1において、属性値を設定する(S104)。属性値の設定方法としては種々の方法が考えられるが、いかなる方法を用いてもよい。例えば、メモリ(RAM7)内の写真(画像)に直接書き込んでもよい。ここで、属性値の設定内容を以下に示す。この属性値は、上述したS101〜S103における処理の検出結果に応じて画素毎に設定される。
属性値フィールドA0 逆光補正属性値(0:補正不要、1:補正必要)
属性値フィールドA1 赤目補正属性値(0:補正不要、1:補正必要)
属性値フィールドA2 ノイズ補正属性値(0:補正不要、1:補正必要)
【0117】
次に、属性値の設定が済むと、画像処理装置100は、CPU1において、モジュール(画像処理モジュール4、サブモジュール11)の動作設定を行なう(S105)。このとき、サブモジュール11−1〜11−3に係わる設定情報には、図7の下部に示す内容が設定される。その他、S105の処理では、サブモジュール11−1〜11−3で使用される一次元及び三次元ルックアップテーブルの設定や、二次元フィルタ係数の設定等も行なわれる。
【0118】
この設定が済むと、画像処理装置100は、CPU1において、画像処理モジュール4及びサブモジュール11−1〜3を起動させる(S106)。これにより、サブモジュール各々は、属性値を個別に使用して各種画像処理を実施する。このサブモジュール11−1〜3で行なわれる画像処理の詳細を下記に示す。
【0119】
[逆光補正処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode31 逆光補正属性値A0に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode22 属性値A0〜A2を設定(逆光補正出力画素値と結合)して出力
[赤目補正処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode32 赤目補正属性値A1に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode22 属性値A0〜A2を設定(赤目補正出力画素値と結合)して出力
[ノイズ補正処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode33 ノイズ補正属性値A2に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode22 属性値A0〜A2を設定(ノイズ除去出力画素値と結合)して出力
【0120】
(実施形態2)
次に、図9を用いて、上述したケースと別のユースケースとして、画素値RGB各々に対して個別にぼかし度合いを切り替えてノイズ除去補正を実施する場合について説明する。なお、使用する処理用画像データは、図4に示すフォーマット302(属性値フィールドが3つ)であるものとする。
【0121】
サブモジュールと補正処理との関係は以下の通りとする。
逆光補正処理サブモジュール11−1 動作しない
赤目補正処理サブモジュール11−2 動作しない
ノイズ補正処理サブモジュール11−3 ノイズ補正処理(二次元平面フィルタによる平滑化処理。属性値A0が0でR補正なし、属性値A0が1でR補正あり、属性値A1が0でG補正なし、属性値A1が1でG補正あり、属性値A2が0でB補正なし、属性値A2が1でB補正あり)
【0122】
処理の流れは、上述した図8と同様となるので、ここでは相違点を挙げて説明する。相違点としては、S103から処理が始まる点である。また、S104の処理では、S103の処理の検出結果に応じて以下のように属性値を画素毎に設定する。
属性値フィールドA0 ノイズ補正属性値R(0:R補正不要、1:R補正必要)
属性値フィールドA1 ノイズ補正属性値G(0:G補正不要、1:G補正必要)
属性値フィールドA2 ノイズ補正属性値B(0:B補正不要、1:B補正必要)
【0123】
また、S105における設定処理では、サブモジュール11−1〜11−3に係わる設定情報として、図9の下部に示す内容が設定される。その他、S105の処理では、サブモジュール(ノイズ補正処理サブモジュール)11−3で使用される二次元フィルタ係数の設定や、サブモジュール11−1及び11−2の不使用設定等も行なわれる。また、S106における起動処理では、下記に示す設定により、サブモジュール11−3が、属性値を使用して各種画像処理を実施する。
【0124】
[ノイズ補正処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode34 属性値A0〜A2に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode22 属性値A0〜A2を設定(ノイズ除去出力画素値と結合)して出力
【0125】
以上のように構成した場合、ノイズ補正処理サブモジュール11−3のみが、属性値フィールドの属性値全てに基づいて画像処理を実施する。このとき、それ以外のサブモジュール11−1及び11−2は、画像処理を行なわない(属性値未使用)。当然ではあるが、この場合、逆光補正処理サブモジュール11−1及び赤目補正処理サブモジュール11−2に対して、属性値を使用しない静的な画像処理を実施させることもできる。
【0126】
なお、ノイズ補正処理に際しては、RGB各々のチャネルで補正を行なうか否かの判断を行なうことになるが、補正を行なうか否かは、ユーザが指示するようにしてもよいし、また、画像の解析結果に基づいて自動的に決めるようにしてもよい。自動で行なう場合には、例えば、図8に示すS101及びS102の処理結果に基づいて行なえばよい。具体的には、逆光補正と赤目補正の必要性とが低いと判断された場合に、RGBそれぞれのチャネルでノイズ補正を実施すればよい。つまり、1つの画像処理モジュール4内の一連の処理で補正すべき補正処理の数が多い場合には、それぞれの補正に際して、1つの属性値を用いて全チャネル(RGB)を補正すればよい。また、1つの画像処理モジュール4内の一連の処理で補正すべき補正処理の数が少ない場合には、それぞれの属性値を用いて各チャネルをより細かく補正すればよい。例えば、1つの画像処理モジュール4内の一連の処理で補正すべき補正処理の数が多い場合の一例として、逆光補正、赤目補正、ノイズ補正の3つを補正を行なうものとする。この場合、逆光補正に際しては、1つの属性値A0を用いて全チャネル(RGB)を補正し、赤目補正に際しては、1つの属性値A1を用いて全チャネル(RGB)を補正し、ノイズ補正に際しては、1つの属性値A2を用いて全チャネル(RGB)を補正する。一方、1つの画像処理モジュール4内の一連の処理で補正すべき補正処理の数が少ない場合の一例として、例えば、ノイズ補正のみを行なうとする。この場合、属性値A0を用いてRチャンネルを補正し、属性値A1を用いてGチャンネルを補正し、A2を用いてBチャンネルを補正すれば、より細かく補正できる。
【0127】
(実施形態3)
次に、図10を用いて、上述したケースと別のユースケースとして、コピー時に文字領域と写真領域とを像域分離し、写真領域には写真用の色補正処理、文字領域には文字加工処理を行なう場合について説明する。なお、使用する処理用画像データは、図4に示すフォーマット302(属性値フィールドが3つ)であるものとする。
【0128】
ここでまず、各サブモジュールで実施される処理について説明する。像域分離は、文字領域と写真領域とを判定する処理(例:局所的な濃度変化を用いて閾値と比較して判定)である。色補正は、写真に好適な色補正を行なう処理(例:三次元ルックアップテーブルを用いた色変換)であり、写真領域にだけ補正処理を施す必要がある。文字加工は、文字をくっきりさせる処理(例:二次元平面フィルタを用いたエッジ強調処理)であり、文字領域にだけ補正処理を施す必要がある。なお、これら補正処理は、いかなる方法で実現されてもよい。
【0129】
サブモジュールと補正処理との関係は以下の通りとする。
像域分離処理サブモジュール11−0 像域分離処理(注目画素の画素値と注目画素周辺にある周辺画素の画素値との比較処理:文字領域は属性値を0に設定、写真領域は属性値を1に設定)
色補正処理サブモジュール11−2 色補正処理(三次元ルックアップテーブルによる色変換処理:属性値0で補正なし、属性値1で補正あり)
文字加工処理サブモジュール11−3 文字加工処理(二次元平面フィルタによる平滑化処理:属性値0で補正あり、属性値1で補正なし)
ここで、像域分離処理サブモジュールに11−0という符号を使用している。これは、図7及び図8の逆光補正処理サブモジュール11−1が補正処理を行なうのに対して、当該補正処理とは異なる像域分離処理を行なうサブモジュールであることを明示するため便宜上付与した符号である。つまり、像域分離処理サブモジュール11−0は、図3に示すサブモジュール11−1に該当するサブモジュールである。
【0130】
なお、名称は異なるが、色補正処理サブモジュールと上述した赤目補正処理サブモジュールとは同一のサブモジュールで実現でき、文字加工処理サブモジュールと上述したノイズ補正処理サブモジュールとは同一のモジュールで実現できる。但し、パラメータや属性値を変更して設定する必要がある。すなわち、同一のサブモジュールにおいて、写真印刷時とコピー時とで異なる画像処理を実施できる。
【0131】
処理の流れは、上述した図8と同様となるので、ここでは相違点を挙げて説明する。相違点としては、S105から処理が始まる点である。また、S105における設定処理では、サブモジュール11−0、11−2、11−3に係わる設定情報として、図10の下部に示す内容が設定される。その他、S105の処理では、サブモジュール11−2及び11−3で使用される三次元ルックアップテーブルや二次元フィルタ係数の設定等も行なわれる。また、S106における起動処理では、下記に示す設定により、サブモジュール各々は、属性値を使用して各種画像処理を実施する。
【0132】
[像域分離処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode30 属性値未使用
属性値出力処理 Out_Mode41 像域分離属性値A0を更新
出力データ処理 Put_Mode22 属性値A0〜A2を設定(像域分離出力画素値と結合)して出力
[色補正処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode31 像域分離属性値A0に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode22 属性値A0〜A2を設定(赤目補正出力画素値と結合)して出力
[文字加工処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode31 像域分離属性値A0に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode22 属性値A0〜A2を設定(ノイズ除去出力画素値と結合)して出力
【0133】
以上のように構成した場合、同一の属性値フィールドの属性値を複数のサブモジュールで共有して使用できる。そのため、属性値を有効利用できる。例えば、図10に不図示のサブモジュールにおいて、図10に示すサブモジュールにより使用されていない属性値フィールド(例えば、A1及びA2)に基づく処理を実施させることができる。勿論、像域分離処理サブモジュール11−0において、属性値フィールドA0及びA1を設定し、それ以外のサブモジュール11−2及び11−3において、当該設定された属性値を用いて画像処理を行なうように構成してもよい。
【0134】
このように処理用画像データ内の属性値フィールドの割当方法、使用方法、設定方法をサブモジュール単位に設定できるため、システム全体での属性値の数を抑えつつ、柔軟性のある画像処理を実施することができる。
【0135】
(実施形態4)
次に、属性値対応サブモジュールと属性値非対応サブモジュールとが混在する場合について説明する。図11には、2つの属性値対応サブモジュールと、1つの属性値非対応サブモジュールとが示される。ここでは、2つの属性値対応サブモジュールにおいて、外部から伝達された属性値を使用して画像処理を行なった後、属性値非対応サブモジュールにおいて、画像処理を行なう場合について説明する。
【0136】
ここで、各サブモジュールにおいては、図4に示すフォーマット302(属性値フィールドが3つ)を用いて処理を行なう。但し、属性値非対応であるノイズ補正処理サブモジュール11−4に対しては、属性値の除去処理を実施した後、図4に示すフォーマット301を入力する。
【0137】
サブモジュールと補正処理との関係は以下の通りとする。
逆光補正処理サブモジュール11−1 逆光補正処理(一次元ルックアップテーブルによる階調変換処理:属性値0で補正なし、属性値1で補正あり)
赤目補正処理サブモジュール11−2 赤目補正処理(三次元ルックアップテーブルによる色変換処理:属性値0で補正なし、属性値1で補正あり)
ノイズ補正処理サブモジュール11−4 ノイズ補正処理(二次元平面フィルタによる平滑化処理:全画素に対して一律に同じフィルタ係数で処理を行なう)
【0138】
処理の流れは、上述した図8と同様となるので、ここでは相違点を挙げて説明する。相違点としては、S102の処理の後、S103の処理を実施せずにS104の処理に進む。ここで、S104の処理における属性値の設定内容を以下に示す。この属性値は、上述したS101及びS102における処理の検出結果に応じて画素毎に設定される。
属性値フィールドA0 逆光補正属性値 (0:補正不要、1:補正必要)
属性値フィールドA1 赤目補正属性値 (0:補正不要、1:補正必要)
属性値フィールドA2 設定なし
【0139】
また、S105における設定処理では、サブモジュール11−1、11−2、11−4に係わる設定情報として、図11の下部に示す内容が設定される。その他、S105の処理では、サブモジュール11−2及び11−3で使用される一次元及び三次元ルックアップテーブルの設定や二次元フィルタ係数の設定等も行なわれる。また、S106における起動処理では、下記に示す設定により、サブモジュール各々は、属性値を使用して各種画像処理を実施する。
【0140】
[逆光補正処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode31 逆光補正属性値A0に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode22 属性値A0〜A2を逆光補正出力画素値と結合
[赤目補正処理サブモジュール]
入力データ処理 Get_Mode128bit 属性値A0〜A2を抽出
属性値入力処理 In_Mode32 赤目補正属性値A1に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode20 属性値を用いず、赤目補正出力画素値を各チャネル拡張(32bit)して出力
[ノイズ補正処理サブモジュール]
静的画像処理 RGB各チャネル32bitの画素値を入力し、フィルタ処理を画像全体に対して一律に実施した後、RGB各チャネル32bitのフィルタ出力画素値を出力
【0141】
なお、赤目補正処理サブモジュール11−2において、属性値を用いずに各チャネル32bitに拡張するのは、属性値非対応であるノイズ補正処理サブモジュール11−4の入力フォーマットに適応させるためである。ここでは、ノイズ補正サブモジュールとして属性値非対応サブモジュール11−4が、図4に示すフォーマット301(RGB各チャンネル32bit)を処理するサブモジュールであるとして説明した。これに限らず、属性値非対応であるノイズ補正処理サブモジュール11−4の入力フォーマットが各チャネル24bitであれば、赤目補正処理サブモジュールにおいては、「Put_Mode21」で出力データ処理を実施する。すなわち、属性値領域の8bitを全て「0」に設定する。更に、属性値非対応であるノイズ補正処理サブモジュール11−4の入力フォーマットが各チャネル16bitであれば、赤目補正処理サブモジュールにおいては、「Put_Mode23」で出力データ処理を実施する。すなわち、属性値領域の16bitを全て「0」に設定する。本実施形態では、属性非対応サブモジュール11−4がノイズ補正した処理用画像データは、ライトバッファ12へ出力されるが、属性非対応サブモジュール11−4には属性値フィールドを書き替える機能がない。そのため、本実施形態の画像処理モジュール4内で使用した属性値を、画像処理モジュール4の外部に出力する必要がない場合、属性非対応サブモジュール11−4へ処理用画像データを入力する前に属性値フィールドの属性値を消去するためである。
【0142】
以上のような構成によれば、属性値非対応サブモジュールの直前に処理を行なう属性値対応のサブモジュールにおいて、属性値に全て「0」を設定する。そのため、属性値非対応サブモジュールには、属性値を書き替える機能を持たせなくて済み、画像処理モジュール4の回路構成を簡略化できる。これにより、画像処理モジュール4において、属性値対応サブモジュールと属性値非対応サブモジュールとが混在している場合においても、問題なく画像処理が行なえることになる。
【0143】
(実施形態5)
次に、図12を用いて、属性値対応サブモジュールと属性値非対応サブモジュールとが混在し、更に、属性値伝達ラッパー層110を設けた場合について説明する。ここでは、属性値非対応サブモジュールにおいて、画像処理を行なった後、2つの属性値対応サブモジュールにおいて、外部から伝達された属性値を使用して画像処理を行なう場合について説明する。
【0144】
ここで、各サブモジュールにおいては、図4に示すフォーマット302(属性値フィールドが3つ)を用いて処理を行なう。但し、属性値非対応である逆光補正処理サブモジュール11−5に対しては、属性値伝達ラッパー層110を設けることにより、図4に示すフォーマット301が入力される。
【0145】
サブモジュールと補正処理との関係は以下の通りとする。
逆光補正処理サブモジュール11−5 逆光補正処理(一次元ルックアップテーブルによる階調変換処理:全画素に対して一律同じ処理を行なう)
赤目補正処理サブモジュール11−2 赤目補正処理(三次元ルックアップテーブルによる色変換処理:属性値0で補正なし、属性値1で補正あり)
ノイズ補正処理サブモジュール11−3 ノイズ補正処理(二次元平面フィルタによる平滑化処理:属性値0で補正なし、属性値1で補正あり)
【0146】
処理の流れは、上述した図8と同様となるので、ここでは相違点を挙げて説明する。相違点としては、S102から処理が始まる点である。また、S104の処理では、S102及びS103の処理の検出結果に応じて以下のように属性値を画素毎に設定する。
属性値フィールドA0 未設定
属性値フィールドA1 赤目補正属性値 (0:補正不要、1:補正必要)
属性値フィールドA2 ノイズ補正属性値(0:補正不要、1:補正必要)
【0147】
また、S105における設定処理では、サブモジュール11−2及び11−3、属性値伝達ラッパー層110に係わる設定情報として、図12の下部に示す内容が設定される。その他、S105の処理では、サブモジュール11−2及び11−3や属性値伝達ラッパー層110で使用される一次元及び三次元ルックアップテーブルや二次元フィルタ係数の設定等も行なわれる。また、S106における起動処理では、下記に示す設定により、サブモジュール各々は、属性値を使用して各種画像処理を実施する。
【0148】
[属性値伝達ラッパー層110]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
出力データ処理 Put_Mode22 属性値A0〜A2を設定(逆光補正出力画素値と結合)して出力
[赤目補正処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode32 赤目補正属性値A1に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode22 属性値A0〜A2を設定(赤目補正出力画素値と結合)して出力
[ノイズ補正処理サブモジュール]
入力データ処理 Get_Mode12 属性値A0〜A2を抽出
属性値入力処理 In_Mode33 ノイズ補正属性値A2に基づいて画像処理
属性値出力処理 Out_Mode40 属性値の更新はなし
出力データ処理 Put_Mode22 属性値A0〜A2を設定(ノイズ除去出力画素値と結合)して出力
【0149】
以上のような構成によれば、属性値伝達ラッパー層110を設けることにより、画像処理モジュール4において、属性値対応サブモジュールと属性値非対応サブモジュールとが混在している場合においても、問題なく画像処理が行なえる。
【0150】
このように処理用画像データ内の属性値フィールドの割当方法、使用方法、設定方法をサブモジュール単位に設定できるため、システム全体での属性値の数を抑えつつ、柔軟性のある画像処理を実施することができる。更に、既存の属性値非対応サブモジュールと混在して属性値対応サブモジュールを配すことができる。
【0151】
(実施形態6)
ここでは、図4に示すフォーマット303(属性値フィールドが6つ)を用いて各サブモジュールにおいて処理を行なう場合について説明する。
【0152】
ここで、「表5」を用いて、入力属性値情報設定部409により設定される設定情報について説明する。第2の属性値管理部411は、画像処理の開始前において、この「表5」の設定情報に基づいて各種処理を実行する。なお、「表5」に示す設定値はあくまで一例であり、これに限られない。本実施形態において、A0は、図4に示すフォーマット303の属性値フィールド3034であり、A1は、図4に示すフォーマット303の属性値フィールド3035であり、A2は図4に示すフォーマット303の属性値フィールド3036である。また、A3は、図4に示すフォーマット303の属性値フィールド3037であり、A4は、図4に示すフォーマット303の属性値フィールド3038であり、A5は、図4に示すフォーマット303の属性値フィールド3039である。
(表5)
【0153】
[In_Mode50]
この設定では、画像処理に属性値を使用しない。すなわち、第2の属性値管理部411において、属性値を画像処理部413に入力しない。この場合、サブモジュールは、属性値非対応サブモジュールとして動作する。
【0154】
[In_Mode51〜56]
この設定は、複数の属性値フィールド(A0〜A5)の内、いずれかの属性値フィールド(In_Mode51時はA0〜In_Mode56時はA5)を用いて画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode51〜56」を設定した場合、画像処理は、他の属性値フィールドを用いずに行なわれる。
【0155】
[In_Mode57]
この設定は、複数の属性値フィールド(A0〜A5)の内、属性値フィールドA0を画素値R、属性値フィールドA2を画素値G、属性値フィールドA4を画素値B、に用いて適応的な画像処理を実施する場合に好適である。「In_Mode57」を設定した場合、画像処理は、他の属性値フィールド(A1、A3、A5)を用いずに行なわれる。
【0156】
[In_Mode58]
この設定は、複数の属性値フィールド(A0〜A5)の内、属性値フィールドA1を画素値R、属性値フィールドA3を画素値G、属性値フィールドA5を画素値B、に用いて適応的な画像処理を実施する場合に好適である。「In_Mode58」を設定した場合、画像処理は、他の属性値フィールド(A0、A2、A4)を用いずに行なわれる。
【0157】
以上のように「In_Mode50〜58」を選択的に用いて処理を行なうことにより、複数の属性値フィールドの少なくとも1つの情報を用いて適応的な画像処理を実施できる。例えば、以下に示す使用例が挙げられる。
【0158】
1)6つのサブモジュールにおいて、それぞれ異なる属性値を使用してRGB共通の画像処理
2)2つのサブモジュールにおいて、それぞれ3つずつの属性値を使用してRGB個別の画像処理
3)3つのサブモジュールにおいて、それぞれ異なる属性値を使用してRGB共通の画像処理を行なうとともに、更に、1つのサブモジュールにおいて、3つの属性値を利用してRGB個別の画像処理
【0159】
次に、「表6」を用いて、出力属性値情報設定部410により設定される設定情報について説明する。第2の属性値管理部411は、画像処理の終了後において、この「表6」の設定情報に基づいて各種処理を実行する。なお、「表6」に示す設定値はあくまで一例であり、これに限られない。
(表6)
【0160】
[Out_Mode60]
この設定は、自身(当該サブモジュール)において属性値の設定を行なわない場合に好適である。すなわち、出力属性値は、入力属性値そのままとなり、両者は同じ値となる。
【0161】
[Out_Mode61〜66]
この設定は、複数の属性値フィールド(A0〜A5)の内、いずれかの属性値フィールド(Out_Mode61時はA0〜Out_Mode66時はA5)のみを新たに設定する場合に好適である。「Out_Mode61〜66」を設定した場合、他の属性値フィールドは更新されない。
【0162】
[Out_Mode67]
この設定は、複数の属性値フィールド(A0〜A5)の内、属性値フィールドA0、A2、A4のみを新たに設定する場合に好適である。「Out_Mode67」を設定した場合、他の属性値フィールド(A1、A3、A5)は更新されない。
【0163】
[Out_Mode68]
この設定は、複数の属性値フィールド(A0〜A5)の内、属性値フィールドA1、A3、A5のみを新たに設定する場合に好適である。「Out_Mode68」を設定した場合、他の属性値フィールド(A0、A2、A4)は更新されない。
【0164】
以上のように「Out_Mode60〜68」を選択的に用いて処理を行なうことにより、複数の属性値フィールドの少なくとも1つの情報を設定変更できる。例えば、以下に示す使用例が挙げられる。
【0165】
1)6つのサブモジュールにおいて、それぞれ異なる属性値を設定するケース
2)2つのサブモジュールにおいて、それぞれ3つずつの属性値を設定するケース
3)3つのサブモジュールにおいて、それぞれ異なる属性値を設定するとともに、1つのサブモジュールにおいて、3つの属性値を設定するケース
【0166】
このように属性値フィールドが増えた場合には、画像処理の柔軟性を更に高めることができる。また、属性値フィールドを増やした場合にも、処理用画像データのデータ量(96Bit)は変わらない。そのため、システム全体の規模を大きく変更せずに、画素値として割り当てるBit数(画像の階調性)と、属性値として割り当てるBit数(適応的画像処理の柔軟性)とのバランスを図った設計が行なえる。
【0167】
(実施形態7)
ここでは、図4に示すフォーマット305(属性値フィールドが4つ)を用いて各サブモジュールにおいて処理を行なう場合について説明する。本実施形態において、A0は、図4に示すフォーマット305の属性値フィールド3054であり、A1は、図4に示すフォーマット305の属性値フィールド3055である。また、A2は、図4に示すフォーマット305の属性値フィールド3056であり、A3は、図4に示すフォーマット305の属性値フィールド3057である。フォーマット305では、上述した通り、属性値フィールドA0及び属性値フィールドA1は、16bit幅で構成されているのに対して、属性値フィールドA2及び属性値フィールドA3は、8bit幅で構成されている。そして、属性値フィールドA2と属性値フィールドA3は、連続した16bit幅の属性値として取り扱ってもよいし、また、それぞれ8bitずつの異なる属性値として取り扱ってもよい。また更に、属性値フィールドA0及びA2と、属性値フィールドA1及びA3として、24bit幅の属性値として取り扱ってもよい。
【0168】
このように構成した場合、処理用画像データのフォーマットを固定したまま、属性値の数(適応的画像処理の種類)と各属性値のBit数(適応的画像処理の細かさ)とのバランスが取れるため、より柔軟な画像処理が実現できる。
【0169】
ここで、「表7」を用いて、入力属性値情報設定部409により設定される設定情報について説明する。第2の属性値管理部411は、画像処理の開始前において、この「表7」の設定情報に基づいて各種処理を実行する。なお、「表7」に示す設定値はあくまで一例であり、これに限られない。
(表7)
【0170】
[In_Mode70]
この設定では、画像処理に属性値を使用しない。すなわち、第2の属性値管理部411において、属性値を画像処理部413に入力しない。この場合、サブモジュールは、属性値非対応サブモジュールとして動作する。
【0171】
[In_Mode71]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA0のみを用いて画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode71」を設定した場合、画像処理は、他の属性値フィールド(A1、A2、A3)を用いずに行なわれる。
【0172】
[In_Mode72]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA1のみを用いて画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode72」を設定した場合、画像処理は、他の属性値フィールド(A0、A2、A3)を用いずに行なわれる。
【0173】
[In_Mode73]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA2及びA3を1つの属性値(16bit)として用いて、画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode73」を設定した場合、画像処理は、他の属性値フィールド(A0、A1)を用いずに行なわれる。
【0174】
[In_Mode74]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA0を画素値R、属性値フィールドA1を画素値G、属性値フィールドA2及びA3を1つの属性値(16bit)として画素値Bに用いる。このような属性値の使い方により、適応的な画像処理を実施する場合に好適である。
【0175】
[In_Mode75]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA0及びA2を1つの属性値(24bit)として用いて、画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode75」を設定した場合、画像処理は、他の属性値フィールド(A1、A3)を用いずに行なわれる。
【0176】
[In_Mode76]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA1及びA3を1つの属性値(24bit)として用いて、画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode76」を設定した場合、画像処理は、他の属性値フィールド(A0、A2)を用いずに行なわれる。
【0177】
[In_Mode77]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA2を1つの属性値(8bit)として用いて、画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode77」を設定した場合、画像処理は、他の属性値フィールド(A0、A1、A3)を用いずに行なわれる。
【0178】
[In_Mode78]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA3を1つの属性値(8bit)として用いて、画素値フィールド全て(3チャネル)に対して適応的な画像処理を実施する場合に好適である。「In_Mode78」を設定した場合、画像処理は、他の属性値フィールド(A0、A1、A2)を用いずに行なわれる。
【0179】
以上のように「In_Mode70〜78」を選択的に用いて処理を行なうことにより、複数の属性値フィールドの少なくとも1つの情報を用いて適応的な画像処理を実施することができる。
【0180】
次に、「表8」を用いて、出力属性値情報設定部410により設定される設定情報について説明する。第2の属性値管理部411は、画像処理の終了後において、この「表8」の設定情報に基づいて各種処理を実行する。なお、「表8」に示す設定値はあくまで一例であり、これに限られない。
(表8)
【0181】
[Out_Mode80]
この設定は、自身(当該サブモジュール)において属性値の設定を行なわない場合に好適である。すなわち、出力属性値は、入力属性値そのままとなり、両者は同じ値となる。
【0182】
[Out_Mode81]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA0のみを新たに設定する場合に好適である。「Out_Mode81」を設定した場合、他の属性値フィールド(A1、A2、A3)は更新されない。
【0183】
[Out_Mode82]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA1のみを新たに設定する場合に好適である。「Out_Mode82」を設定した場合、他の属性値フィールド(A0、A2、A3)は更新されない。
【0184】
[Out_Mode83]
この設定は、属性値フィールドA2及びA3を1つの属性値(16bit)として取り扱うとともに、当該フィールドに対して新たに設定する場合に好適である。「Out_Mode83」を設定した場合、他の属性値フィールド(A0、A1)は更新されない。
【0185】
[Out_Mode84]
この設定は、複数の属性値フィールド(A0〜A3)全てに新たに設定する場合に好適である。この場合、属性値フィールドA2&A3は、1つの属性値(16bit)として取り扱われる。
【0186】
[Out_Mode85]
この設定は、属性値フィールドA0及びA2を1つの属性値(24bit)として取り扱うとともに、当該フィールドに対して新たに設定する場合に好適である。「Out_Mode85」を設定した場合、他の属性値フィールド(A1、A3)は更新されない。
【0187】
[Out_Mode86]
この設定は、属性値フィールドA1及びA3を1つの属性値(24bit)として取り扱うとともに、当該フィールドに対して新たに設定する場合に好適である。「Out_Mode86」を設定した場合、他の属性値フィールド(A0、A2)は更新されない。
【0188】
[Out_Mode87]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA2のみを新たに設定する場合に好適である。「Out_Mode87」を設定した場合、他の属性値フィールド(A0、A1、A3)は更新されない。
【0189】
[Out_Mode88]
この設定は、複数の属性値フィールド(A0〜A3)の内、属性値フィールドA3のみを新たに設定する場合に好適である。「Out_Mode88」を設定した場合、他の属性値フィールド(A0、A1、A2)は更新されない。
【0190】
以上のように「Out_Mode80〜88」を選択的に用いて処理を行なうことにより、複数の属性値フィールドの少なくとも1つの情報を用いて適応的な画像処理を実施できる。
【0191】
以上が本発明の代表的な実施形態の一例であるが、本発明は、上記及び図面に示す実施形態に限定することなく、その要旨を変更しない範囲内で適宜変形して実施できるものである。
【特許請求の範囲】
【請求項1】
画像を表現する画像データを当該画像の各画素に対応して、当該各画素の画素値を保持する画素値フィールドと、属性値を保持する属性値フィールドとを含む処理用画像データに編集する処理手段と、
複数の画像処理モジュールと
を具備し、
前記複数の画像処理モジュール各々は、
前記処理用画像データに対して画像処理を実施する複数のサブモジュールと、
前記処理用画像データを前記複数のサブモジュールに対して順番に入力し、前記処理用画像データに対して実施すべき一連の画像処理を前記複数のサブモジュールを用いて実施する制御を行なうスイッチマトリクスと
を具備し、
前記複数のサブモジュール各々は、
前記画像処理の前に前記処理用画像データに対して実施する処理を規定した第1の設定情報に基づいて、前記スイッチマトリクスから入力された処理用画像データの画素値と属性値とを編集する入力データ処理手段と、
前記入力データ処理手段により編集された前記処理用画像データの属性値に基づいて、該処理用画像データの画素値に対して画像処理を実施する画像処理手段と、
前記画像処理された後の処理用画像データに対して実施する処理を規定した第2の設定情報に基づいて、前記画像処理手段により処理された前記処理用画像データの前記画素値と前記属性値とを編集して前記スイッチマトリクスに出力する出力データ処理手段と
を具備することを特徴とする画像処理装置。
【請求項2】
前記第1の設定情報は、
前記処理用画像データの前記属性値を無効にするか否かを示す情報と、前記処理用画像データの前記画素値のサイズを変更するか否かを示す情報と
を含み、
前記入力データ処理手段は、
前記第1の設定情報に基づいて、前記スイッチマトリクスから入力された前記処理用画像データの前記画素値のサイズを変更する処理を選択的に実行するとともに、該処理用画像データの前記属性値を無効にする処理を選択的に実行する
ことを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記第2の設定情報は、
前記処理用画像データの前記属性値を無効にするか否かを示す情報と、前記処理用画像データの前記画素値のサイズを変更するか否かを示す情報と
を含み、
前記出力データ処理手段は、
前記第2の設定情報に基づいて、前記画像処理手段により処理された前記処理用画像データの前記画素値のサイズを変更する処理を選択的に実行するとともに、該処理用画像データの前記属性値を無効にする処理を選択的に実行する
ことを特徴とする請求項1記載の画像処理装置。
【請求項4】
前記処理用画像データは、
複数の属性値フィールドと複数の画素値フィールドとを含み、
前記入力データ処理手段は、
前記画像処理手段による画像処理時にいずれの属性値を使用するかを規定した第3の設定情報に基づいて、前記複数の画素値フィールドの画素値と、前記第3の設定情報で規定された属性値フィールドの属性値とを前記画像処理手段に出力する
ことを特徴とする請求項1記載の画像処理装置。
【請求項5】
前記処理用画像データは、
各色に対応した複数の属性値フィールドと各色に対応した複数の画素値フィールドとを含み、
前記入力データ処理手段は、
前記画像処理手段による画像処理時にいずれの属性値を使用するかを規定した第3の設定情報に基づいて、前記各色の画素値フィールドの画素値と前記属性値フィールドの属性値とを対応付けて前記画像処理手段に出力する
ことを特徴とする請求項1記載の画像処理装置。
【請求項6】
前記処理用画像データは、
複数の属性値フィールドと複数の画素値フィールドとを含み、
前記出力データ処理手段は、
前記処理用画像データに対して設定する属性値を規定した第4の設定情報に基づいて、前記画像処理手段により処理された画素値を複数の画素値フィールド各々に設定するとともに、各画素値フィールドに対応する属性値フィールドに編集された属性値又は編集されていない属性値のいずれか一方を設定する
ことを特徴とする請求項1記載の画像処理装置。
【請求項7】
前記出力データ処理手段は、
前記第4の設定情報に基づいて、前記画像処理手段により処理された画素値を複数の画素値フィールド各々に設定するとともに、前記属性値フィールドを持たない処理用画像データを前記スイッチマトリクスへ出力する
ことを特徴とする請求項6記載の画像処理装置。
【請求項8】
前記処理用画像データは、
複数の属性値フィールドと各色に対応した複数の画素値フィールドとを含み、
前記出力データ処理手段は、
前記処理用画像データに対して設定する属性値を規定した第4の設定情報に基づいて、前記画像処理手段により処理された前記各色の画素値を前記各色に対応した画素値フィールド各々に設定するとともに、前記各色の属性値フィールドに編集された属性値を対応付けて設定する
ことを特徴とする請求項1記載の画像処理装置。
【請求項9】
前記複数のサブモジュールは、
前記処理用画像データに含まれる属性値に非対応の非対応サブモジュール
を具備し、
前記出力データ処理手段は、
前記処理用画像データを次に処理するサブモジュールが前記非対応サブモジュールであれば、該処理用画像データの属性値を無効にして該処理用画像データを前記スイッチマトリクスに出力する
ことを特徴とする請求項1記載の画像処理装置。
【請求項10】
前記画像処理モジュールは、
前記処理用画像データに含まれる属性値に非対応の非対応サブモジュールと、
前記非対応サブモジュールと前記スイッチマトリクスとの間で処理を行なう中間処理モジュールと
を更に具備し、
前記中間処理モジュールは、
前記非対応サブモジュールへの前記処理用画像データの出力に際して、該処理用画像データの属性値を無効にし、前記非対応サブモジュールにより処理された前記処理用画像データの前記スイッチマトリクスへの出力に際して、該処理用画像データの属性値を変更する
ことを特徴とする請求項1記載の画像処理装置。
【請求項11】
前記複数のサブモジュール各々は、
二次元平面フィルタによる平滑化処理、ルックアップテーブルによる階調変換処理、ルックアップテーブルによる色変換処理、の少なくともいずれかの画像処理を実施する
ことを特徴とする請求項1記載の画像処理装置。
【請求項12】
前記スイッチマトリクスから前記入力データ処理手段へ入力された処理用画像データのビット数と、前記出力データ処理手段から前記スイッチマトリクスへ出力する処理用画像データのビット数とが等しく、
前記入力データ処理手段は、
前記入力された処理用画像データの画素値フィールドのビット数と異なるビット数に前記画素値を変更して前記画像処理手段へ出力することが可能であり、
前記出力データ処理手段は、
前記スイッチマトリクスへ出力する処理用画像データの画素値フィールドのビット数に合わせて前記画像処理手段が出力する画素値のビット数を変更することが可能である
ことを特徴とする請求項1記載の画像処理装置。
【請求項13】
前記スイッチマトリクスから前記入力データ処理手段へ入力された処理用画像データのビット数と、前記出力データ処理手段から前記スイッチマトリクスへ出力する処理用画像データのビット数とが等しく、
前記出力データ処理手段は、
前記スイッチマトリクスから前記入力データ処理手段へ入力された処理用画像データの属性値フィールドのビット数と、画素値フィールドのビット数との比率とが異なるべく、前記スイッチマトリクスへ出力する処理用画像データの属性値フィールドのビット数と画素値フィールドのビット数との比率を変更することが可能である
ことを特徴とする請求項1記載の画像処理装置。
【請求項14】
画像処理装置の処理方法であって、
前記画像処理装置は、
画像を表現する画像データを当該画像の各画素に対応して、当該各画素の画素値を保持する画素値フィールドと、属性値を保持する属性値フィールドとを含む処理用画像データに編集する処理手段と、
複数の画像処理モジュールと
を具備し、
前記複数の画像処理モジュール各々は、
前記処理用画像データに対して画像処理を実施する複数のサブモジュールと、
前記処理用画像データを前記複数のサブモジュールに対して順番に入力し、前記処理用画像データに対して実施すべき一連の画像処理を前記複数のサブモジュールを用いて実施する制御を行なうスイッチマトリクスと
を具備し、
前記処理方法は、
前記複数のサブモジュール各々の入力データ処理手段が、前記画像処理の前に前記処理用画像データに対して実施する処理を規定した第1の設定情報に基づいて、前記スイッチマトリクスから入力された処理用画像データの画素値と属性値とを編集する工程と、
前記複数のサブモジュール各々の画像処理手段が、前記入力データ処理手段により編集された前記処理用画像データの属性値に基づいて、該処理用画像データの画素値に対して画像処理を実施する工程と、
前記複数のサブモジュール各々の出力データ処理手段が、前記画像処理された後の処理用画像データに対して実施する処理を規定した第2の設定情報に基づいて、前記画像処理手段により処理された前記処理用画像データの前記画素値と前記属性値とを編集して前記スイッチマトリクスに出力する工程と
を含むことを特徴とする処理方法。
【請求項1】
画像を表現する画像データを当該画像の各画素に対応して、当該各画素の画素値を保持する画素値フィールドと、属性値を保持する属性値フィールドとを含む処理用画像データに編集する処理手段と、
複数の画像処理モジュールと
を具備し、
前記複数の画像処理モジュール各々は、
前記処理用画像データに対して画像処理を実施する複数のサブモジュールと、
前記処理用画像データを前記複数のサブモジュールに対して順番に入力し、前記処理用画像データに対して実施すべき一連の画像処理を前記複数のサブモジュールを用いて実施する制御を行なうスイッチマトリクスと
を具備し、
前記複数のサブモジュール各々は、
前記画像処理の前に前記処理用画像データに対して実施する処理を規定した第1の設定情報に基づいて、前記スイッチマトリクスから入力された処理用画像データの画素値と属性値とを編集する入力データ処理手段と、
前記入力データ処理手段により編集された前記処理用画像データの属性値に基づいて、該処理用画像データの画素値に対して画像処理を実施する画像処理手段と、
前記画像処理された後の処理用画像データに対して実施する処理を規定した第2の設定情報に基づいて、前記画像処理手段により処理された前記処理用画像データの前記画素値と前記属性値とを編集して前記スイッチマトリクスに出力する出力データ処理手段と
を具備することを特徴とする画像処理装置。
【請求項2】
前記第1の設定情報は、
前記処理用画像データの前記属性値を無効にするか否かを示す情報と、前記処理用画像データの前記画素値のサイズを変更するか否かを示す情報と
を含み、
前記入力データ処理手段は、
前記第1の設定情報に基づいて、前記スイッチマトリクスから入力された前記処理用画像データの前記画素値のサイズを変更する処理を選択的に実行するとともに、該処理用画像データの前記属性値を無効にする処理を選択的に実行する
ことを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記第2の設定情報は、
前記処理用画像データの前記属性値を無効にするか否かを示す情報と、前記処理用画像データの前記画素値のサイズを変更するか否かを示す情報と
を含み、
前記出力データ処理手段は、
前記第2の設定情報に基づいて、前記画像処理手段により処理された前記処理用画像データの前記画素値のサイズを変更する処理を選択的に実行するとともに、該処理用画像データの前記属性値を無効にする処理を選択的に実行する
ことを特徴とする請求項1記載の画像処理装置。
【請求項4】
前記処理用画像データは、
複数の属性値フィールドと複数の画素値フィールドとを含み、
前記入力データ処理手段は、
前記画像処理手段による画像処理時にいずれの属性値を使用するかを規定した第3の設定情報に基づいて、前記複数の画素値フィールドの画素値と、前記第3の設定情報で規定された属性値フィールドの属性値とを前記画像処理手段に出力する
ことを特徴とする請求項1記載の画像処理装置。
【請求項5】
前記処理用画像データは、
各色に対応した複数の属性値フィールドと各色に対応した複数の画素値フィールドとを含み、
前記入力データ処理手段は、
前記画像処理手段による画像処理時にいずれの属性値を使用するかを規定した第3の設定情報に基づいて、前記各色の画素値フィールドの画素値と前記属性値フィールドの属性値とを対応付けて前記画像処理手段に出力する
ことを特徴とする請求項1記載の画像処理装置。
【請求項6】
前記処理用画像データは、
複数の属性値フィールドと複数の画素値フィールドとを含み、
前記出力データ処理手段は、
前記処理用画像データに対して設定する属性値を規定した第4の設定情報に基づいて、前記画像処理手段により処理された画素値を複数の画素値フィールド各々に設定するとともに、各画素値フィールドに対応する属性値フィールドに編集された属性値又は編集されていない属性値のいずれか一方を設定する
ことを特徴とする請求項1記載の画像処理装置。
【請求項7】
前記出力データ処理手段は、
前記第4の設定情報に基づいて、前記画像処理手段により処理された画素値を複数の画素値フィールド各々に設定するとともに、前記属性値フィールドを持たない処理用画像データを前記スイッチマトリクスへ出力する
ことを特徴とする請求項6記載の画像処理装置。
【請求項8】
前記処理用画像データは、
複数の属性値フィールドと各色に対応した複数の画素値フィールドとを含み、
前記出力データ処理手段は、
前記処理用画像データに対して設定する属性値を規定した第4の設定情報に基づいて、前記画像処理手段により処理された前記各色の画素値を前記各色に対応した画素値フィールド各々に設定するとともに、前記各色の属性値フィールドに編集された属性値を対応付けて設定する
ことを特徴とする請求項1記載の画像処理装置。
【請求項9】
前記複数のサブモジュールは、
前記処理用画像データに含まれる属性値に非対応の非対応サブモジュール
を具備し、
前記出力データ処理手段は、
前記処理用画像データを次に処理するサブモジュールが前記非対応サブモジュールであれば、該処理用画像データの属性値を無効にして該処理用画像データを前記スイッチマトリクスに出力する
ことを特徴とする請求項1記載の画像処理装置。
【請求項10】
前記画像処理モジュールは、
前記処理用画像データに含まれる属性値に非対応の非対応サブモジュールと、
前記非対応サブモジュールと前記スイッチマトリクスとの間で処理を行なう中間処理モジュールと
を更に具備し、
前記中間処理モジュールは、
前記非対応サブモジュールへの前記処理用画像データの出力に際して、該処理用画像データの属性値を無効にし、前記非対応サブモジュールにより処理された前記処理用画像データの前記スイッチマトリクスへの出力に際して、該処理用画像データの属性値を変更する
ことを特徴とする請求項1記載の画像処理装置。
【請求項11】
前記複数のサブモジュール各々は、
二次元平面フィルタによる平滑化処理、ルックアップテーブルによる階調変換処理、ルックアップテーブルによる色変換処理、の少なくともいずれかの画像処理を実施する
ことを特徴とする請求項1記載の画像処理装置。
【請求項12】
前記スイッチマトリクスから前記入力データ処理手段へ入力された処理用画像データのビット数と、前記出力データ処理手段から前記スイッチマトリクスへ出力する処理用画像データのビット数とが等しく、
前記入力データ処理手段は、
前記入力された処理用画像データの画素値フィールドのビット数と異なるビット数に前記画素値を変更して前記画像処理手段へ出力することが可能であり、
前記出力データ処理手段は、
前記スイッチマトリクスへ出力する処理用画像データの画素値フィールドのビット数に合わせて前記画像処理手段が出力する画素値のビット数を変更することが可能である
ことを特徴とする請求項1記載の画像処理装置。
【請求項13】
前記スイッチマトリクスから前記入力データ処理手段へ入力された処理用画像データのビット数と、前記出力データ処理手段から前記スイッチマトリクスへ出力する処理用画像データのビット数とが等しく、
前記出力データ処理手段は、
前記スイッチマトリクスから前記入力データ処理手段へ入力された処理用画像データの属性値フィールドのビット数と、画素値フィールドのビット数との比率とが異なるべく、前記スイッチマトリクスへ出力する処理用画像データの属性値フィールドのビット数と画素値フィールドのビット数との比率を変更することが可能である
ことを特徴とする請求項1記載の画像処理装置。
【請求項14】
画像処理装置の処理方法であって、
前記画像処理装置は、
画像を表現する画像データを当該画像の各画素に対応して、当該各画素の画素値を保持する画素値フィールドと、属性値を保持する属性値フィールドとを含む処理用画像データに編集する処理手段と、
複数の画像処理モジュールと
を具備し、
前記複数の画像処理モジュール各々は、
前記処理用画像データに対して画像処理を実施する複数のサブモジュールと、
前記処理用画像データを前記複数のサブモジュールに対して順番に入力し、前記処理用画像データに対して実施すべき一連の画像処理を前記複数のサブモジュールを用いて実施する制御を行なうスイッチマトリクスと
を具備し、
前記処理方法は、
前記複数のサブモジュール各々の入力データ処理手段が、前記画像処理の前に前記処理用画像データに対して実施する処理を規定した第1の設定情報に基づいて、前記スイッチマトリクスから入力された処理用画像データの画素値と属性値とを編集する工程と、
前記複数のサブモジュール各々の画像処理手段が、前記入力データ処理手段により編集された前記処理用画像データの属性値に基づいて、該処理用画像データの画素値に対して画像処理を実施する工程と、
前記複数のサブモジュール各々の出力データ処理手段が、前記画像処理された後の処理用画像データに対して実施する処理を規定した第2の設定情報に基づいて、前記画像処理手段により処理された前記処理用画像データの前記画素値と前記属性値とを編集して前記スイッチマトリクスに出力する工程と
を含むことを特徴とする処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2011−8357(P2011−8357A)
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願番号】特願2009−149176(P2009−149176)
【出願日】平成21年6月23日(2009.6.23)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願日】平成21年6月23日(2009.6.23)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]