(57)【特許請求の範囲】
【請求項１】
画像データに対してそれぞれ異なる処理を実行する複数の処理部品を備えた画像処理装置であって、
複数の前記処理部品の実行順の優先度を示す情報を記憶する記憶手段と、
要求される画像処理に関する条件に基づいて、複数の前記処理部品の中から利用する処理部品を選択する選択手段と、
前記記憶手段が記憶する前記情報が示す前記実行順の優先度に基づいて、前記選択手段によって選択された処理部品の実行順を決定する実行順決定手段とを有し、
前記実行順に従って、前記選択手段によって選択された前記処理部品が処理を実行し、
前記実行順において前に実行される前記処理部品は、処理結果として生成される画像データを記憶手段に記録し、前記実行順において後に実行される前記処理部品は、処理対象とする画像データを該記憶手段より取得し、
前記後に実行される前記処理部品は、記憶手段に記憶された、複数の前記処理部品の処理速度の関係を示す情報に基づいて判定されるタイミングで、画像データの取得を開始することを特徴とする画像処理装置。
【請求項２】
前記後に実行される前記処理部品は、複数の処理部品の前記処理速度の関係を示す前記情報に基づいて判定されるデータ量の画像データが前記前に実行される前記処理部品によって記憶手段に記録されたときに、該記憶手段からの前記画像データの取得を開始することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記後に実行される前記処理部品は、前記前に実行される前記処理部品によって処理結果としての画像データが記憶手段に記録されたことを示す通知の回数が、複数の処理部品の前記処理速度の関係を示す前記情報に基づいて判定される回数に達したときに、該記憶手段からの前記画像データの取得を開始することを特徴とする請求項１記載の画像処理装置。
【請求項４】
画像データに対してそれぞれ異なる処理を実行する複数の処理部品を備えた画像処理装置が実行する画像処理制御方法であって、
要求される画像処理に関する条件に基づいて、複数の前記処理部品の中から利用する処理部品を選択する選択手順と、
記憶手段が記憶する情報が示す、複数の前記処理部品の実行順の優先度に基づいて、前記選択手順において選択された処理部品の実行順を決定する実行順決定手順とを有し、
前記実行順に従って、前記選択手順において選択された前記処理部品が処理を実行し、
前記実行順において前に実行される前記処理部品は、処理結果として生成される画像データを記憶手段に記録し、前記実行順において後に実行される前記処理部品は、処理対象とする画像データを該記憶手段より取得し、
前記後に実行される前記処理部品は、記憶手段に記憶された、複数の前記処理部品の処理速度の関係を示す情報に基づいて判定されるタイミングで、画像データの取得を開始することを特徴とする画像処理制御方法。
【請求項５】
前記後に実行される前記処理部品は、複数の処理部品の前記処理速度の関係を示す前記情報に基づいて判定されるデータ量の画像データが前記前に実行される前記処理部品によって記憶手段に記録されたときに、該記憶手段からの前記画像データの取得を開始することを特徴とする請求項４記載の画像処理制御方法。
【請求項６】
前記後に実行される前記処理部品は、前記前に実行される前記処理部品によって処理結果としての画像データが記憶手段に記録されたことを示す通知の回数が、複数の処理部品の前記処理速度の関係を示す前記情報に基づいて判定される回数に達したときに、該記憶手段からの前記画像データの取得を開始することを特徴とする請求項４記載の画像処理制御方法。
【請求項７】
画像データに対してそれぞれ異なる処理を実行する複数の処理部品を備えた画像処理装置に、
要求される画像処理に関する条件に基づいて、複数の前記処理部品の中から利用する処理部品を選択する選択手順と、
記憶手段が記憶する情報が示す、複数の前記処理部品の実行順の優先度に基づいて、前記選択手順において選択された処理部品の実行順を決定する実行順決定手順と、
前記実行順に従って、前記選択手順において選択された前記処理部品に処理を実行させる画像処理手順とを実行させ、
前記実行順において前に実行される前記処理部品は、処理結果として生成される画像データを記憶手段に記録し、前記実行順において後に実行される前記処理部品は、処理対象とする画像データを該記憶手段より取得し、
前記後に実行される前記処理部品は、記憶手段に記憶された、複数の前記処理部品の処理速度の関係を示す情報に基づいて判定されるタイミングで、画像データの取得を開始することを特徴とする画像処理制御プログラム。
【請求項８】
前記後に実行される前記処理部品は、複数の処理部品の前記処理速度の関係を示す前記情報に基づいて判定されるデータ量の画像データが前記前に実行される前記処理部品によって記憶手段に記録されたときに、該記憶手段からの前記画像データの取得を開始することを特徴とする請求項７記載の画像処理制御プログラム。
【請求項９】
前記後に実行される前記処理部品は、前記前に実行される前記処理部品によって処理結果としての画像データが記憶手段に記録されたことを示す通知の回数が、複数の処理部品の前記処理速度の関係を示す前記情報に基づいて判定される回数に達したときに、該記憶手段からの前記画像データの取得を開始することを特徴とする請求項７記載の画像処理制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理制御方法、及び画像処理制御プログラムに関し、特に画像データに対してそれぞれ異なる処理を実行する複数の処理部品を備えた画像処理装置、画像処理制御方法、及び画像処理制御プログラムに関する。
【背景技術】
【０００２】
従来、スキャナなどの画像入力装置から入力された画像に対して、画像処理を行なうことにより入力画像を出力用の画像に変換して、これを出力装置に出力する画像処理装置が存在する。このような画像処理装置は、入力画像に対して、出力装置に出力するための画像処理やユーザの所望の出力条件に応じた画像処理を行ない、その結果生成される画像を出力装置に出力する。
【０００３】
従来、斯かる画像処理は、それぞれ異なる画像処理を実行する複数の画像処理用のハードウェア部品（以下、「画像処理モジュール」という。）を連続的に実行することにより行われていた。
【特許文献１】特開２００６−２３１８５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、各画像処理モジュール間の実行順は固定的であった。したがって、出力条件の指定に応じて利用する必要のない画像処理モジュールがある場合、当該画像処理モジュールに関しては、スルー処理（画像処理は実行しないが、当該画像処理モジュール内を通過させる処理）を実行させたり、当該画像処理モジュールをバイパスさせたりといった煩雑な制御が必要とされていた。
【０００５】
但し、スルー処理やバイパスが行われたとしても、出力条件の指定に応じて必要とされる画像処理モジュールに関しては、実行順が固定されているため、画像処理の柔軟性に欠けるという問題があった。すなわち、画像処理の実行順によっては処理結果が異なる場合がある。例えば、「拡大」と「文字の印字」といった二つの画像処理を行う必要がある場合、「拡大」を行った後に「文字の印字」を行う場合と、「文字の印字」を行った後に「拡大」を行った場合とでは、前者は文字が拡大の対象とならないのに対し、後者は文字が拡大の対象となる。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、画像データに対してそれぞれ異なる処理を実行する処理部品の実行順を柔軟に制御することのできる画像処理装置、画像処理制御方法、及び画像処理制御プログラムの提供を目的とする。
【課題を解決するための手段】
【０００７】
そこで上記課題を解決するため、本発明は、画像データに対してそれぞれ異なる処理を実行する複数の処理部品を備えた画像処理装置であって、要求される画像処理に関する条件に基づいて前記処理部品の実行順を決定する実行順決定手段を有し、前記実行順に従って、前記処理部品が処理を実行することを特徴とする。
【０００８】
また、本発明は、前記実行順決定手段は、前記画像処理に関する条件に基づいて、複数の前記処理部品の中から利用する処理部品を選択し、選択された処理部品の実行順を決定することを特徴とする。
【０００９】
また、本発明は、複数の前記処理部品の実行順の制限を示す情報が記憶装置に記録され、前記実行順決定手段は、前記実行順の制限を満たすように前記選択された処理部品の実行順を決定することを特徴とする。
【００１０】
また、本発明は、実行順において前に実行される前記処理部品は、処理結果として生成される画像データを記憶装置に記録し、実行順において後に実行される前記処理部品は、処理対象とする画像データを該記憶装置より取得することを特徴とする。
【００１１】
また、本発明は、前記後に実行される前記処理部品は、前記前に実行される前記処理部品によって前記画像データの少なくとも一部が記憶装置に記録されたときに、該記憶装置からの前記画像データの取得を開始することを特徴とする。
【００１２】
また、本発明は、複数の前記処理部品の処理速度の関係を示す情報が記憶装置に記録され、前記後に実行される前記処理部品は、前記前に実行される処理部品との処理速度の関係に基づいて決定されるデータ量が記憶装置に記録されたときに、該記憶装置からの前記画像データの取得を開始することを特徴とする。
【００１３】
このような画像処理装置では、画像データに対してそれぞれ異なる処理を実行する処理部品の実行順を柔軟に制御することができる。
【発明の効果】
【００１４】
本発明によれば、画像データに対してそれぞれ異なる処理を実行する処理部品の実行順を柔軟に制御することのできる画像処理装置、画像処理制御方法、及び画像処理制御プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における画像処理システムの構成例を示す図である。図１において、画像処理システム１は、画像処理装置１０、スキャナ２１、ＦＡＸ２２、ＰＣ（Personal Computer）２３、プロッタ２４、及び操作装置２５等より構成される。
【００１６】
スキャナ２１及びプロッタ２４は、画像処理装置１０とＵＳＢ（Universal Serial Bus）ケーブル等のケーブル又はＬＡＮ（Local Area Network）等のネットワークを介して接続される。スキャナ２１は、画像処理装置１０に対して画像データの入力元として機能する。すなわち、スキャナ２１は、セットされた原稿をより画像を読み取り、読み取った画像の画像データを画像処理装置１０に供給する。
【００１７】
プロッタ２４は、画像処理装置１０に対して画像データの出力先として機能する。すなわち、プロッタ２４は、画像処理装置１０より出力される画像データを印刷用紙に印刷する。
【００１８】
ＦＡＸ２２及びＰＣ２３は、ＬＡＮ等のネットワーク２０を介して画像処理装置１０と接続される。ＦＡＸ２２及びＰＣ２３は、画像処理装置１０に対して画像データの入力元又は画像データの出力先として機能する。すなわち、ＦＡＸ２２は、原稿から読み取った画像データをネットワーク２０を介して画像処理装置２０に送信したり、ネットワーク２０を介して画像処理装置２０より受信される画像データを印刷したりする。また、ＰＣ２３は、記憶装置に保存されている画像データをネットワーク２０を介して画像処理装置２０に送信したり、ネットワーク２０を介して画像処理装置２０より受信される画像データを記憶装置に保存したりする。
【００１９】
操作装置２５は、ユーザからの操作指示（例えば、画像データに対する操作条件の設定等）を受け付け、当該操作指示を画像処理装置１０に通知する。操作装置２５は、例えば、テンキー、スタートキー、ファンクションキー、ワンタッチキー等の各種操作キー又はボタン等によって構成される。
【００２０】
画像処理装置１０は、画像データの入力元として機能する装置より画像データを受け付け、当該画像データに対して操作条件に応じた画像処理を行い、その結果生成される画像データを画像データの出力先として機能する装置に出力する。
【００２１】
なお、本実地の形態において画像処理システム１は、画像処理装置１０、スキャナ２１，ＦＡＸ２２、プロッタ２４、及び操作装置２５がそれぞれ異なる装置として構成されているが、これらが一つの筐体内に格納された複合機として構成されてもよい。
【００２２】
画像処理装置１０の機能構成について説明する。図１において、画像処理装置１０は、システム制御部１１、画像入力受付部１２、画像出力部１３、操作入力受付部１４、画像処理部１５、及び記憶部１６等より構成される。
【００２３】
システム制御部１１は、画像処理装置１０のＣＰＵによってプログラムが処理されることにより機能するソフトウェアであり、画像処理装置１０を構成する各部の制御を行う。
【００２４】
画像入力受付部１２、画像出力部１３、及び操作入力受付部１４は、それぞれ接続先の装置との通信を行うためのハードウェアと当該ハードウェアを制御するソフトウェアより構成される。
【００２５】
画像入力受付部１２は、スキャナ２１との通信や、ネットワーク２０を介した通信を制御し、画像データの入力元より画像データ（入力画像）の入力を受け付ける。
【００２６】
画像出力部１３は、プロッタ２４との通信や、ネットワーク２０を介した通信を制御し、入力画像に対して画像処理が施された画像データ（出力画像）を出力先に送信する。
【００２７】
操作入力受付部１４は、操作装置２５との通信を制御し、操作装置２５を介して入力されたユーザからの画像処理に関する指示入力を受け付ける。
【００２８】
記憶部１６は、画像メモリ１６１やＨＤＤ（Hard Disk Drive）１６２等の記憶装置（ハードウェア）と、当該記憶装置を制御するためのソフトウェアとより構成される。記憶部１６は、入力画像や出力画像を記憶したり、画像処理が行われる過程において生成される中間的な画像データ（中間画像）を一時的に記憶したりする。前者については、主にＨＤＤ１６２が利用され、後者には、主に画像メモリ１６１が利用される。ＨＤＤ１６２には、また、システム制御部１１や、後述する処理工程決定部１５１として機能するプログラムが記録される。
【００２９】
画像処理部１５は、入力画像に対して操作条件に応じた画像処理を行い、出力画像を生成する。ここで行なう画像処理とは、例えば、濃度変換や変倍、色変換等のユーザの要求に応じた画像処理や、画像のフォーマット変換や画像回転等の出力装置（画像データの出力先）に依存する画像処理である。画像処理装置１５は、処理工程決定部１５１及び画像処理コントローラ１５２より構成される。画像処理コントローラ１５２は、それぞれ異なる画像処理を実行する複数の画像処理用のハードウェア部品（以下、「画像処理モジュール」という。）より構成される。したがって、画像処理コントローラ１５２において画像処理が実行される。
【００３０】
処理工程決定部１５１は、画像処理装置１０のＣＰＵによってプログラムが処理されることにより機能するソフトウェアであり、画像処理コントローラ１５２による画像処理を制御する。具体的には、処理工程決定部１５１は、操作条件に応じて利用する画像処理モジュール選択し、その実行順を決定する。選択される画像処理モジュールは一つであってもよいし、複数であってもよい。更に、処理工程決定部１５１は、決定された実行順によって画像処理モジュールによる処理が実行されるよう制御する。
【００３１】
画像処理部１５について、更に詳しく説明する。図２は、画像処理コントローラに含まれる画像処理モジュールを説明するための図である。図２において、画像処理コントローラ１５２には、画像処理モジュールとして、圧縮部１５２１、伸張部１５２２、空間加工部１５２３、画質加工部１５２４、回転部１５２５、画像合成部１５２６、画像生成部１５２７、及び解像度変換部１５２８が含まれる。
【００３２】
圧縮部１５２１は、非圧縮の画像データの圧縮を行なう。伸張部１５２２は、圧縮されている画像データの伸張を行なう。圧縮、伸張の方式としては、周知の方法でよく、例えば、ＪＰＥＧ符号化方式等でもよい。
【００３３】
空間加工部１５２３は、画像の変倍や画素追加削除、マスク処理等の空間的な画像処理を行なう。画素削除は画像のサイズを小さくして画素を削除する処理である。マスク処理は画像のサイズをそのままにして、画素を例えば白のように特定の色に置き換える処理である。
【００３４】
画質加工部１５２４は、色変換やガンマ処理等の画質に影響を与える画像処理を行なう。回転部１５２５は、画像の回転を行なう。画像合成部１５２６は、二つ以上の画像の合成を行なう。画像生成部１５２７は、格子パターンや地紋パターン等の生成を行なう。解像度変換部１５２８は、出力先に合わせた解像度変換を行なう。
【００３５】
また、図３は、処理工程決定部の構成例を説明するためのクラス図である。図３のクラス図は、オブジェクト指向のソフトウェア開発における、プログラム設計図の統一表記法である統一モデリング言語（ＵＭＬ（Unified Modeling Language））を用いた表記法に従っている。すなわち、図３において、符号１５１１、１５１２によって示される二つの長方形はデータと操作とを持つオブジェクトの雛型であるクラスを表している（便宜上、操作は図示していない。）。長方形を結ぶ線はクラス間に関係があることを示している。処理工程決定部１５１を構成するソフトウェアシステムは、関係付けられたクラスのインスタンスが互いにメッセージを送受信し、協調動作することによって画像処理フロー（画像処理の順番）の制御を実現する。メッセージ送受信と協調動作の方法は実装依存となる。各クラスのインスタンスは状態を持っており、他のインスタンスからのメッセージを受信すると、状態に応じた所定の動作を行なう。
【００３６】
図３に示されるように、処理工程決定部１５１は、処理工程クラス１５１１及び画像処理モジュールクラス１５１２より構成される。
【００３７】
処理工程クラス１５１１は、操作条件等に応じて利用する画像処理モジュールを選択、選択された画像処理モジュールの実行順の決定、決定された実行順による画像処理モジュールの実行制御等の機能が実装されたクラスであり、そのインスタンス（処理工程オブジェクト）は、一つの処理工程決定部１５１に一つ存在する。処理工程クラス１５１１は、属性として「画像処理モジュール数」を有する。「画像処理モジュール数」属性は、利用する画像処理モジュールの数を保持するための属性である。
【００３８】
画像処理モジュールクラス１５１２は、一つのインスタンス（画像処理モジュールオブジェクト）によって一つの画像処理モジュールを表現するクラスである。画像処理モジュールクラス１５１２は、属性として「種類」、「順番」、及び「連動方法」を有する。「種類」属性は、インスタンスに対応する画像処理モジュールの種類を保持するための属性である。「順番」属性は、インスタンスに対応する画像処理モジュールの実行順を保持するための属性である。「連動方法」属性については後述する。
【００３９】
処理工程クラス１５１１は、関連ｒ１によって画像処理モジュールクラス１５１２を一対多の多重度で集約する。したがって、一つの処理工程オブジェクトによって一つ以上の画像処理モジュールオブジェクトが集約される。
【００４０】
画像処理モジュールクラス１５１２は、自ら（画像処理モジュールクラス１５１２）に対して一対一の関連ｒ２を有している。関連ｒ２の一端のロール名は「前」で有り、他端のロール名は「後」である。すなわち、関連ｒ２は、画像処理モジュールの実行順に従った順番で画像処理モジュールオブジェクトを関連付けるためのものである。実行順が前の画像処理モジュールに対応する画像処理モジュールオブジェクトは、関連ｒ２においてロール名が「前」のオブジェクトとされる。実行順が後の画像処理モジュールは、関連ｒ２においてロール名が「後」のオブジェクトとされる。
【００４１】
図３に示されるクラス図に基づいて、例えば、図４に示されるような実体が形成される。図４は、処理工程決定部のオブジェクトの構成例を示す図である。図４では、伸張部１５２２、画質加工部１５２４、及び回転部１５２５の順で画像処理が実行される場合の例が示されている。
【００４２】
この場合、図示されるように、伸張部１５２２、画質加工部１５２４、回転部１５２５のそれぞれに対応する画像処理モジュールオブジェクトとして、伸張オブジェクト１５１２Ａ、画質加工オブジェクト１５１２Ｂ、回転オブジェクト１５１２Ｃがそれぞれインスタンスかされ、その実行順に応じて、各画像処理モジュールの間が関連ｒ２によって関連付けられる。
【００４３】
また、各画像処理モジュールオブジェクトは、関連ｒ１によって処理工程オブジェクト１５１１Ａに関連付けられる。したがって、処理工程オブジェクト１５１１Ａは、関連ｒ１と、関連ｒ１によって関連付けられる画像処理モジュールオブジェクトの「種類」属性の値とに基づいて利用する画像処理モジュールを識別することができる。また、処理工程オブジェクト１５１１Ａは、各画像処理モジュールオブジェクトの関連ｒ２による接続関係に基づいて、画像処理モジュールの実行順を識別することができる。すなわち、図４に示されるようなオブジェクト構成は、画像処理モジュールによる画像処理を制御するための情報を表現する。そこで、以下、図４のようなオブジェクト構成によって表現される情報を「画像処理制御情報」という。
【００４４】
なお、各オブジェクトは、画像処理装置１０のメモリ上に生成される。したがって、オブジェクトによって管理される情報（属性や関連等）は、メモリ上に記録される。
【００４５】
以下、画像処理装置１０の処理手順について説明する。図５は、画像処理装置の処理手順を説明するためのシーケンス図である。
【００４６】
ユーザが、操作装置２５を介して、画像の入力を指示する操作入力（入力先の設定等）と、画像の出力を指示する操作入力（出力先の設定、並びにカラーモード及び濃度等の画像処理に関する操作条件（画像の出力条件）を設定等）とを行なうと、操作入力受付部１４は、操作装置２５からの操作入力を受け付ける。操作入力受付部１４は、システム制御部１１に対し、当該操作入力に応じた画像入力と画像出力との実行を要求する（Ｓ１）。
【００４７】
システム制御部１１は、操作入力受付部１４からの要求に応じ、画像入力受付部１２に画像データの入力を要求する（Ｓ２）。画像入力受付部１２は、操作要求において指定された入力先（スキャナ２１、ＦＡＸ２２、又はＰＣ２３等）より画像データ（入力画像）の入力を受け付け、当該入力画像を記憶部１６に出力する（Ｓ３）。
【００４８】
続いて、システム制御部１１は、記憶部１６に画像入力受付部１２より出力された入力画像の記憶（保存）を要求する（Ｓ４）。これにより、入力画像がバックアップ用として記憶部１６のＨＤＤ１６２に保存される。続いて、システム制御部１１は、処理工程決定部１５１に対して、画像処理対象の画像データ（入力画像）に関する情報と、画像の出力条件として指定された画像処理パラメータとを出力し、当該パラメータに応じた画像処理の実行を要求する（Ｓ５）。入力画像に関する情報とは、例えば、画素数、階調数、画像フォーマット等を示す情報である。画像処理パラメータとは、例えば伸長処理の要否や伸長する場合の伸長方法、濃度調整処理の要否や濃度調整する場合のノッチレベル等を示す情報である。
【００４９】
処理工程決定部１５１は、画像処理パラメータに基づいて利用する画像処理モジュールを選択し、選択された画像処理モジュールの実行順を決定する（Ｓ６）。当該処理の詳細については後述する。当該処理の結果として、画像処理制御情報（図４に示したようなオブジェクト構成によって表現される情報）が生成される。
【００５０】
続いて、処理工程決定部１５１は、画像処理制御情報において、関連ｒ１によって処理工程オブジェクトに関連付けられている画像処理モジュールオブジェクトの「種類」属性に基づいて、利用する各画像処理モジュールを識別し、利用する各画像処理モジュールに対して、メモリ情報、処理順情報、及び連動方法を並列的に通知する。図５は、画像処理モジュール１５２Ａ、画像処理モジュール１５２Ｂ、及び画像処理モジュール１５２Ｃが、利用する画像処理モジュールとして選択された例を示す（なお、画像処理モジュール１５２Ａ、画像処理モジュール１５２Ｂ、及び画像処理モジュール１５２Ｃは、図２に示される各画像処理モジュールを一般化して表現したものである。）。したがって、処理工程決定部１５１は、これらの各画像処理モジュールに対して、メモリ情報、処理順情報、及び連動方法を並列的に通知する（Ｓ７、Ｓ８、Ｓ９）。ここで、「並列的に」とは、画像処理モジュールの実行順において、前に実行される画像処理モジュールの実行の完了を待たずに、という意味であり、ほぼ同時であってもよい。各画像処理モジュールは、通知された情報を保持する。
【００５１】
なお、メモリ情報とは、記憶部１６（画像メモリ１６１）上において、処理対象とする画像データを取得すべき位置（入力アドレス）を示す情報と、処理結果としての画像データを出力すべき位置（出力アドレス）を示す情報をいう。処理順番とは、当該画像処理モジュールの実行順を示す情報と、実行順において当該画像処理モジュールの前後に位置する画像処理モジュールを識別するための情報等をいう。連動方法とは、前に実行される画像処理モジュールと、当該当該画像処理モジュールとの同期のタイミングを識別するための情報をいう。より具体的には、前に実行される画像処理モジュールが、どの程度（例えば、何ライン、又は全データ分）の画像データを出力した時点で、当該画像処理モジュールの処理の実行を開始するかを示す情報をいう。
【００５２】
続いて、処理工程決定部１５１は、画像処理制御情報に基づいて最初に実行する画像処理モジュールを判定し、当該画像処理モジュール（画像処理モジュール１５２Ａ）に対して処理の開始を要求する（Ｓ１０）。処理の開始を要求された画像処理モジュール１５２Ａは、メモリ情報に指定されている入力アドレスより画像データを取得（受信）する（Ｓ１１）。なお、処理工程決定部１５１は、予め、最初に実行される画像処理モジュールの入力アドレスに画像データを記録しておく。続いて、画像処理モジュール１５２Ａは、画像処理モジュール１５２Ａに特有の画像処理を実行し、その結果生成される出力画像をメモリ情報に指定されている出力アドレスに出力（送信）する（Ｓ１２）。
【００５３】
ステップＳ１１及びＳ１２の処理内容を図に示す。図６は、画像処理モジュールと画像メモリとの間の画像データの転送の様子を示す図である。図６中、図５におけるステップと対応するステップには、同一のステップ番号を付している。
【００５４】
図６に示されるように、各画像処理モジュールは、画像メモリ１６１から画像データを受信するＤＭＡ（Direct Memory Access）コントローラ（ＲＤＡＭＣ１５３Ａ）と、画像メモリ１６１に画像を送信するＤＭＡコントローラ（ＷＤＭＡＣ１５４Ａ）とを備えている。画像処理モジュールは、ＲＤＭＡＣ１５２により画像メモリ１６１の入力アドレスより画像データ５０ｉを受信し、画像データ５０ｉに対して、画像処理を行ない、その結果生成される画像データ５０ｏをＷＤＭＡＣにより画像メモリ１６１の出力アドレスに送信する。なお、入力アドレスと出力アドレスとは同じでもよい。この場合、画像データ５０ｉが格納されていた領域は、画像データ５０ｏによって上書きされる。
【００５５】
ところで、図中では、画像データ５０ｉが５つのバンドに分割され、バンド単位で画像処理が実行されている様子が示されている。このように、画像処理モジュールによる画像処理の単位は、必ずしも画像データ全体に対して一括して行われるのではなく、画像データを所定の単位（例えば、所定のライン数）で分割した単位（以下、「処理単位」という。）ごとに実行され得る。
【００５６】
画像処理モジュール１５２Ａは、処理単位分の画像処理の結果が画像メモリ１６１に出力される度に、次に実行される画像処理モジュール１５２Ｂに対して割り込みを発生させる（Ｓ１３）。なお、画像処理モジュール１５２Ａは、処理工程決定部１５１より通知されている処理順番に基づいて、次に実行される画像処理モジュールを判定する。
【００５７】
割り込みを受信した画像処理モジュール１５２Ｂは、ステップＳ１１〜Ｓ１３において説明した手順と同様の手順で処理を実行する。ここで、画像処理モジュール１５２Ｂに対して通知されている入力アドレスは、画像処理モジュール１５２Ａに対する出力アドレスと一致する。したがって、画像処理モジュール１５２Ｂは、画像処理モジュール１５２Ａによって画像処理された画像データを画像メモリ１６１より取得（受信）する（Ｓ１４）。この様子を図に示す。
【００５８】
図７は、前後の画像処理モジュール間における画像メモリを介した画像データの転送の様子を示す図である。図７中、図５又は図６と同一部分には同一符号を付している。
【００５９】
画像処理モジュール１５２Ａが画像処理を行なった画像データ５０ｏを画像メモリ１６１の出力アドレスに送信すると（Ｓ１２）、画像処理モジュール１５２Ｂに対して割り込みが発生する。画像処理モジュール１５２Ｂは、割り込みに応じ、画像メモリ１６１の入力アドレス（＝画像処理モジュール１５２Ａの出力アドレス）から画像データ５０ｏを受信して画像処理を行なう（Ｓ１４）。
【００６０】
但し、画像処理モジュール１５２Ａが画像処理を行なった画像データの全てを画像メモリ１６１に送信してから、画像処理モジュール１５２Ｂが画像メモリ１６１から画像を受信して画像処理を行なっていたのでは、画像処理に多大な時間を要してしまう。そこで、画像処理モジュール１５２Ｂは、画像処理モジュール１５２Ａがある一定のデータ量の画像データ（処理単位の画像データ）を画像メモリ１６１に送信した時点で、画像メモリ１６１から画像データの受信を開始し、画像処理を実行する。例えば、二つの画像処理モジュールは、ライン（図７の画像データにおいて左から右への水平方向における一行分）単位で画像メモリ１６１と送受信を行なう。
【００６１】
なお、各画像処理モジュールの処理速度には差異があるところ、後段の画像処理モジュール１５２Ｂが画像メモリ１６１から受信するデータ量が、前段の画像処理モジュール１５２Ａが画像メモリ１６１に送信するデータ量を上回るのは好ましくない。そこで、前段の画像処理モジュールによってどの程度のデータ量が画像メモリ１６１に送信された時点で、後段の画像処理モジュールが画像データの受信を開始するかについては調整可能とするとよい。
【００６２】
本実施の形態では、当該調整は、処理工程決定部１５１によって自動的に行われ、その調整結果が、「連動方法」として各画像処理モジュールに対して通知される。後段の画像処理モジュールは、「連動方法」に基づいて、処理を開始するタイミングを判定する。「連動方法」は、具体的には、一回の割り込みが通知された際に読み込むライン数であってもよい。また、ライン数を固定にしておいて、画像データの読み込みを開始するまでの割り込みの通知回数であってもよい。前者の場合、割り込みが通知されるたびに、後段の画像処理モジュールは、「連動方法」において指定されたライン数分の読み込みを行い、当該ライン数分の画像処理を実行する。後者の場合、割り込みの通知回数が「連動方法」において指定された回数に達するたびに、所定のライン数分の読み込みを行い、当該所定のライン数分の画像処理を実行する。
【００６３】
なお、画像入力受付部１２と画像処理部１５、画像処理部１５と画像出力部１３との間においても同様の同期制御を行ってもよい、そうすることにより、画像入力受付部１２が画像データの全てを画像メモリ１６１に送信完了する前に、画像処理部１５は画像処理を開始することが可能となる。また、画像処理部１５が画像処理を行なった画像データの全てを画像メモリ１６１に送信完了する前に、画像出力部１３は画像データの出力を開始することが可能となる。
【００６４】
図５に戻る。画像処理モジュール１５２Ｂは、処理単位分の画像処理の結果が画像メモリ１６１に出力される度に、次に実行される画像処理モジュール１５２Ｃに対して割り込みを発生させる（Ｓ１６）。割り込みを受信した画像処理モジュール１５２Ｃは、ステップＳ１１〜Ｓ１２において説明した手順と同様の手順で処理を実行する。すなわち、画像処理モジュール１５２Ｃは、画像処理モジュール１５２Ｂによって画像処理された画像データを画像メモリ１６１より取得（受信）する（Ｓ１７）。この際、取得するデータ量（処理単位）は、「連動方法」において通知されたデータ量に従う。続いて、画像処理モジュール１５２Ｃに特有の画像処理を実行し、その結果を画像メモリ１６１に出力（送信）する（Ｓ１８）。
【００６５】
システム制御部１１は、必要な画像処理の全てが完了すると、画像出力部１３に画像データの出力を要求する（Ｓ１９）。画像出力部１３は、画像メモリ１６１より画像処理結果の画像データを取得（受信）し、当該画像データを出力先（ＦＡＸ２２、ＰＣ２３、又はプロッタ２４）に出力する（Ｓ２０）。
【００６６】
続いて、図５のステップＳ６における処理工程決定部１５１による処理内容について詳細に説明する。図８は、処理工程決定部による画像処理制御情報の生成処理を説明するためのフローチャートである。図８の処理は、図３における処理工程クラスに実装されている。したがって、処理工程オブジェクトによって実行される。
【００６７】
まず、画像処理パラメータに応じて利用する画像処理モジュールの有無を判定する（Ｓ６１）。この際、優先度テーブルを用いる。
【００６８】
図９は、優先度テーブルの例を示す図である。図９の優先度テーブルには、各画像処理モジュールの実行順に関する制限を示す情報として、各画像処理モジュールの実行順の優先度が定義されている。図中では、上に位置する画像処理モジュールほど優先度が高いことを示している。
【００６９】
すなわち、各画像処理モジュールが行なう画像処理の間には、その実行順に制限が付く場合がある。例えば、圧縮されている画像を伸長して変倍する場合には、伸長処理（伸張部１５２２）が変倍処理（空間加工部１５２３）よりも先に実行される必要がある。図９で同じ優先度にある画像処理モジュール間には優先度の差はなく、どちらが先に実行されても問題はない（処理結果は変わらない）ことを示す。なお、優先度テーブルは、画像処理装置１０内の記憶装置（例えば、ＨＤＤ１６２）、又は画像処理装置１０とネットワークを介して接続する記憶装置に記録されていればよい。
【００７０】
ステップＳ６１では、斯かる優先度テーブルに定義された画像処理モジュール順に、画像パラメータに基づいて、その要否を判定する。画像パラメータに応じて利用が必要であると判定された画像処理モジュールが一つ確認されると（Ｓ６１でＹｅｓ）、当該画像処理モジュール（以下、「カレント画像処理モジュール」という。）に対応する画像処理モジュールオブジェクト（以下「カレント画像処理モジュールオブジェクト」という。）をインスタンス化（生成）する（Ｓ６２）。ここで生成されるカレント画像処理モジュールオブジェクトの「種類」属性には、カレント画像処理モジュールの種類を示す値が設定される（例えば、伸張部１５２２であれば「伸張」）。続いて、処理工程オブジェクトの「画像処理モジュール数」の値に対して１を加算し、処理工程オブジェクトに対してカレント画像処理モジュールオブジェクトを登録することにより、処理工程オブジェクトとカレント画像処理モジュールオブジェクトとの間に関連ｒ１を形成する（Ｓ６３）。
【００７１】
続いて、画像処理モジュールオブジェクトに対して実行順を設定する（Ｓ６４）。カレント画像処理モジュールオブジェクトが一番目の画像処理モジュールオブジェクトである場合、カレント画像処理モジュールオブジェクトの「順番」属性に、「１」を設定する。一方、当該画像処理モジュールオブジェクトが二番目以降の画像処理モジュールオブジェクトである場合、カレント画像処理モジュールオブジェクトの「順番」属性にその順番を設定すると共に、カレント画像処理モジュールオブジェクトと、前段の画像処理モジュールオブジェクトとの間に関連ｒ２を形成する。
【００７２】
続いて、当該画像処理モジュールオブジェクトに連動方法を判定する（Ｓ６５）。連動方法は、画像処理モジュールの処理速度の関係が定義された処理速度テーブルを用いて判定する。
【００７３】
図１０は、処理速度テーブルの例を示す図である。図１０示されるように、処理速度テーブルでは、画像処理モジュール（の識別情報）が、処理速度の速い順に整列されている。同じ行に存在する画像処理モジュールは、処理速度が同じであることを示す。
【００７４】
例えば、ステップＳ６５において、カレント画像処理モジュールの処理速度の方が、前段に実行される画像処理モジュール（カレント画像処理モジュールオブジェクトとの関連ｒ２おける関連付けにおいてロール名が「前」に相当する画像処理モジュールオブジェクトに対応する画像処理モジュール）の処理速度より速い場合は、前段の該当画像処理モジュールが全ての処理を完了した後に、カレント画像処理モジュールの処理を開始することを示す値を、カレント画像処理モジュールオブジェクトの「連動方法」属性に設定する。又は、前段の画像処理モジュールが処理を完了する前に、カレント画像処理モジュールが処理を開始しても、前段の画像処理モジュールが送信するデータ量が、カレント画像処理モジュールが処理する画像量を上回らない遅延量（処理単位）を決定して、当該処理単位をカレント画像処理モジュールオブジェクトの「連動方法」属性に設定する。後者の場合、各画像処理モジュールの処理速度の絶対値又は相対値（例えば、処理速度比）を示す情報を、処理速度テーブルにおいて画像処理モジュールオブジェクトごと、又は処理速度によって画像処理モジュールオブジェクトをグループ分けした場合はそのグループ（図１０における各行に相当）ごとに管理し、当該処理速度の絶対値又は相対値に基づいて、処理単位を決定すればよい。なお、処理速度テーブルは、画像処理装置１０内の記憶装置（例えば、ＨＤＤ１６２）、又は画像処理装置１０とネットワークを介して接続する記憶装置に記録されていればよい。
【００７５】
続いて、ステップＳ６１に戻り、前回必要であるとして選択された画像処理モジュールに対して、優先度テーブルにおいて次に位置する画像処理モジュールをカレント画像処理モジュールとしてステップＳ６２以降の処理を繰り返す。したがって、画像処理モジュールオブジェクトの関連ｒ２による関連付け（すなわち、利用される画像処理モジュールの実行順）は、優先度テーブルにおける優先度順（すなわち、実行順の制限が満たされた状態）となる。優先度テーブルにおける全ての画像処理モジュールについて要否の判定が完了すると（Ｓ６１でＮｏ）、図８の処理は終了する。当該処理が終了することにより、図４に示したようなオブジェクト構成（すなわち、画像処理制御情報）が構築される。
【００７６】
上述したように、本発明の実施の形態における画像処理装置１０によれば、複数の画像処理モジュールのうち、利用する画像処理モジュールを、画像処理の実行時に画像処理パラメータ（画像処理の条件）に応じて動的に決定することができる。また、利用する画像処理モジュールの実行順に関しても動的に決定することができる。従って、必要最小限の画像処理モジュールのみを使用することになり、画像処理を効率的に行なうことができる。また、画像処理モジュールの実行順が可変になることにより、柔軟性の高い画像処理を実現することができる。
【００７７】
また、各画像処理モジュールは、直接画像データをやりとりするのではなく、画像メモリを介して画像データの送受信（転送）を行なう。したがって、各画像処理モジュールは、他の画像処理モジュールのインタフェースを意識する必要はない（換言すれば、各画像処理モジュールの独立性が適切に保たれる。）。よって、画像処理を実行するために必要な画像処理モジュールを柔軟に組み替えることができる。
【００７８】
また、画像処理モジュールを複数使用して画像処理を行なう場合に、実行順において後段に位置する画像処理モジュールが、前段の画像処理モジュールによる画像メモリへの画像データの送信量が当該画像データの一部である一定量に達した時点で画像メモリからの画像データの受信を開始することにより、高速に画像処理を実行することができる。
【００７９】
また、本実施の形態における画像処理装置１０は、操作要求ごと利用する画像処理モジュールを決定している。したがって、使用されていない画像処理モジュールは、画像処理部１５が別の画像処理要求を受けたときに使用可能な状態にあり、並行して画像処理を行なうことができる。
【００８０】
更に、例えば、変倍してから合成する場合と、合成してから変倍する場合で生成される出力用画像は異なるが、画像処理モジュールの処理順番も動作毎に決定しているので、このような要求にも柔軟に対応できる。
【００８１】
以下、図１１〜図１４において、本実施の形態の画像処理装置１０によって可能となる、画像処理モジュールの実行順（接続関係）の具体例についてその一部を示す。
【００８２】
図１１は、画像処理モジュールの実行順の第一の例を示す図である。図１１は、スキャナ２１が画像データの入力先とされ、プロッタ２４が画像データの出力先とされた場合において、伸張処理と画質加工が必要とされる場合の画像処理モジュールの実行順を示す。
【００８３】
この場合、画像入力受付部１２が受け付ける画像データは、記憶容量節約のため圧縮されていることが考えられる。そのため、画像処理装置１０で伸張を行なってから、プロッタ出力のための画質加工を行なう。具体的には、伸張部１５２２は、画像入力受付部１２が画像メモリ１６１に送信した画像データを画像メモリ１６１から受信し、伸張を行なう。この際、伸張部１５２２は、画像入力受付部１２が画像データの全てを画像メモリ１６１に送信完了する前に画像メモリ１６１から画像データの受信を開始する。伸張部１５２２は、伸張した画像データを逐次画像メモリ１６１に送信する。同様にして、後段の画質加工部１５２４は、伸張部１５２２が全ての画像を画像メモリ１６１に送信完了する前に画像メモリ１６１から画像データの受信を開始する。画像出力部１３も画像処理部１５が全ての画像データを画像メモリ１６１に送信完了する前に画像メモリ１６１から画像を受信して画像の出力を開始する。
【００８４】
図１２は、画像処理モジュールの実行順の第二の例を示す図である。本実施の形態における画像処理装置１０では、利用する画像処理モジュールを任意に選択できる。したがって、画像処理パラメータに基づいて回転が必要であると判断された場合は、図１１の実行順に対して、回転処理（回転部１５２５）を追加できる。なお、追加可能な処理は回転処理に限らない。
【００８５】
図１３は、画像処理モジュールの実行順の第三の例を示す図である。図１３は、スキャナ２１が画像データの入力元とされ、ＦＡＸ２２が画像データの出力先とされた場合において、回転処理と解像度変換が必要とされる場合の画像処理モジュールの実行順を示す。なお、ＦＡＸ等においては、画像の向きや解像度を相手先の装置仕様に合わせて調整するようにしてもよい。
【００８６】
図１４は、画像処理モジュールの実行順の第四の例を示す図である。図１４は、画像入力受付部１２が受け付け、再利用画像（バックアップ用）としてＨＤＤ１６２に保存されている画像データを入力画像とし、伸張処理と画質加工を行なうときの画像処理モジュールの実行順を示す。すなわち、例えば、プロッタ２４の不具合により画像データを出力できなかった場合や、画像データの入力だけを単独で行なった場合等に、ＨＤＤ１６２に保存しておいた画像データを用いて画像処理を行なう例である。ＨＤＤ１６２から画像メモリ１６１に画像データが転送され、画像処理モジュールは画像メモリ１６１から画像データを受信して画像処理を行なう。以降のフローは図１１の場合と同様である。
【００８７】
なお、本実施の形態において、画像処理モジュールは、処理部品に対応する。また、処理工程決定部１５１は、実行順決定手段に対応する。
【００８８】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００８９】
【図１】本発明の実施の形態における画像処理システムの構成例を示す図である。
【図２】画像処理コントローラに含まれる画像処理モジュールを説明するための図である。
【図３】処理工程決定部の構成例を説明するためのクラス図である。
【図４】処理工程決定部のオブジェクトの構成例を示す図である。
【図５】画像処理装置の処理手順を説明するためのシーケンス図である。
【図６】画像処理モジュールと画像メモリとの間の画像データの転送の様子を示す図である。
【図７】前後の画像処理モジュール間における画像メモリを介した画像データの転送の様子を示す図である。
【図８】処理工程決定部による画像処理制御情報の生成処理を説明するためのフローチャートである。
【図９】優先度テーブルの例を示す図である。
【図１０】処理速度テーブルの例を示す図である。
【図１１】画像処理モジュールの実行順の第一の例を示す図である。
【図１２】画像処理モジュールの実行順の第二の例を示す図である。
【図１３】画像処理モジュールの実行順の第三の例を示す図である。
【図１４】画像処理モジュールの実行順の第四の例を示す図である。
【符号の説明】
【００９０】
１          画像処理システム
１０        画像処理装置
１１        システム制御部
１２        画像入力受付部
１３        画像出力部
１４        操作入力受付部
１５        画像処理部
１６        記憶部
２１        スキャナ
２２        ＦＡＸ
２３        ＰＣ
２４        プロッタ
２５        操作装置
１５１      処理工程決定部
１５２      画像処理コントローラ
１６１      画像メモリ
１６２      ＨＤＤ
１５１１    処理工程クラス
１５１２    画像処理モジュールクラス
１５２１    圧縮部
１５２２    伸張部
１５２３    空間加工部
１５２４    画質加工部
１５２５    回転部
１５２６    画像合成部
１５２７    画像生成部
１５２８    解像度変換部
【図１】
0004903092.tif 000002
【図２】
0004903092.tif 000003
【図３】
0004903092.tif 000004
【図４】
0004903092.tif 000005
【図５】
0004903092.tif 000006
【図６】
0004903092.tif 000007
【図７】
0004903092.tif 000008
【図８】
0004903092.tif 000009
【図９】
0004903092.tif 000010
【図１０】
0004903092.tif 000011
【図１１】
0004903092.tif 000012
【図１２】
0004903092.tif 000013
【図１３】
0004903092.tif 000014
【図１４】
0004903092.tif 000015