(57)【要約】【課題】  複数の画像処理モジュールを組み合わせて画像処理機能を実現する際に、入力画像や処理パラメータのみが異なる場合、さらに処理手順の一部のみが異なる場合に、それまでの画像処理モジュールを全て消去することなく、要求に適合したリンク構造を再構築可能な画像処理装置及び画像処理方法を提供する。【解決手段】  処理部３内の各モジュールは、それぞれ生成されてパイプライン形態に接続され、画像データに対して処理を行った後、解放の指示を行うことによって初期化以前と同様の状態に戻すことができる。この状態で改めて入力先設定や処理パラメータの設定を行い、初期化することにより、入力画像や処理パラメータのみが異なる場合に対応することができる。また、処理手順の一部が異なる場合も、異なるモジュールのみを消去、生成し、入力先設定をやり直せば、それまでのパイプラインを再利用することができる。【選択図】  図１
2006215880.tif 000002
【特許請求の範囲】
【請求項１】
各々所定の処理を実行する複数の画像処理手段を有し、該画像処理手段をパイプライン形態または有向非循環グラフ形態に接続して種々の画像処理機能を実行する画像処理装置であって、前記複数の画像処理手段の各々は、少なくとも入力画像情報または処理パラメータに基づいて自身を初期化する機能と、自身を再び初期化以前と同等の状態に戻す機能とを持つことを特徴とする画像処理装置。
【請求項２】
前記画像処理手段は、前記初期化する機能として、少なくとも入力される画像の属性情報と処理パラメータのいずれかに基づいて、処理を開始するために必要な手順を実行することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記処理を開始するために必要な手順は、メモリ領域の確保、値の設定、入力画像へのアクセス初期化を含むことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記画像処理手段は、前記初期化以前と同等の状態に戻す機能として、前記初期化機能により取得された資源の解放を行うことを特徴とする請求項１ないし請求項３のいずれか１項に記載の画像処理装置。
【請求項５】
前記資源の解放は、メモリ領域の解放あるいは入力画像へのアクセス閉鎖を含むことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記複数の画像処理手段のうちの少なくとも一つは、初期化以前と同等の状態において、外部から処理パラメータを変更可能な機能を有することを特徴とする請求項１ないし請求項５のいずれか１項に記載の画像処理装置。
【請求項７】
前記複数の画像処理手段のうちの少なくとも一つは、初期化以前と同等の状態において、外部から前段に接続されている画像処理手段を変更可能な機能を有することを特徴とする請求項１ないし請求項５のいずれか１項に記載の画像処理装置。
【請求項８】
前記画像処理手段は、前記自身を初期化以前と同等の状態に戻す機能とは別に、外部から呼び出し可能な自身を消去する機能を有することを特徴とする請求項１ないし請求項７のいずれか１項に記載の画像処理装置。
【請求項９】
１以上の前記画像処理手段について、実行時のパラメータや条件により１ないし複数の画像処理サブモジュールを組み合わせてまたは選択してリンク接続することで特定の機能を実現する複合画像処理手段とすることができ、前記複合画像処理手段は、入力画像情報を保存し新たな入力画像情報との比較を行う入力画像情報保存比較手段と、与えられた処理パラメータを保存し新たに与えられた処理パラメータとの比較を行う入力パラメータ保存比較手段と、前記入力画像情報保存比較手段または前記入力パラメータ保存比較手段によって新たな入力画像情報または新たな処理パラメータがそれまでの内容と異なることが検出され前記画像処理サブモジュールの組み合わせを変更する必要が生じたときにそれまでの画像処理サブモジュールを破棄して新しい画像処理サブモジュールを生成する再生成手段と、画像処理サブモジュールの組み合わせを変更する必要が生じないときにそれまでの画像処理サブモジュールを再初期化する再初期化手段を有することを特徴とする請求項１ないし請求項８のいずれか１項に記載の画像処理装置。
【請求項１０】
各々所定の処理を実行する複数の画像処理手段をパイプライン形態または有向非循環グラフ形態に接続して種々の画像処理機能を実行する画像処理方法であって、前記複数の画像処理手段の各々が、少なくとも入力画像情報または処理パラメータに基づいて自身を初期化する機能と、自身を再び初期化以前と同等の状態に戻す機能とを実行可能であることを特徴とする画像処理方法。
【請求項１１】
前記複数の画像処理手段のうちの少なくとも一つに、初期化以前と同等の状態において、外部から処理パラメータを変更可能な機能を持たせたことを特徴とする請求項１０に記載の画像処理方法。
【請求項１２】
前記複数の画像処理手段のうちの少なくとも一つは、初期化以前と同等の状態において、外部から前段に接続されている画像処理手段を変更可能な機能を持たせたことを特徴とする請求項１０に記載の画像処理方法。
【請求項１３】
前記初期化以前と同等の状態に戻す機能として、前記初期化機能により取得された資源の解放を行うことを特徴とする請求項１０ないし請求項１２のいずれか１項に記載の画像処理方法。
【請求項１４】
前記資源の解放は、メモリ領域の解放あるいは入力画像へのアクセス閉鎖を含むことを特徴とする請求項１３に記載の画像処理方法。
【請求項１５】
前記複数の画像処理手段のうちの少なくとも一つは、初期化以前と同等の状態において、外部から処理パラメータを変更可能な機能を有することを特徴とする請求項１０ないし請求項１４のいずれか１項に記載の画像処理方法。
【請求項１６】
前記複数の画像処理手段のうちの少なくとも一つは、初期化以前と同等の状態において、外部から前段に接続されている画像処理手段を変更可能な機能を有することを特徴とする請求項１０ないし請求項１４のいずれか１項に記載の画像処理方法。
【請求項１７】
前記自身を初期化以前と同等の状態に戻す機能とは別に、外部から呼び出し可能な自身を消去する機能を実行可能であることを特徴とする請求項１０ないし請求項１６のいずれか１項に記載の画像処理方法。
【請求項１８】
１以上の前記画像処理手段について、実行時のパラメータや条件により１ないし複数の画像処理サブモジュールを組み合わせてまたは選択してリンク接続することで特定の機能を実現する複合画像処理手段とすることができ、前記複合画像処理手段において、入力画像情報を入力画像情報保存比較手段に保存し、また与えられた処理パラメータを入力パラメータ保存比較手段に保存し、新たな入力画像情報または新たな処理パラメータが与えられたとき、保存しておいた入力画像情報と新たな入力画像情報とを比較し、また保存しておいた処理パラメータと新たに与えられた処理パラメータとを比較し、前記入力画像情報保存比手段または前記入力パラメータ保存比較手段によって新たな入力画像情報または新たな処理パラメータがそれまでの内容と異なることが検出されたとき、前記画像処理サブモジュールの組み合わせを変更する必要が生じていれば、再生成手段によりそれまでの画像処理サブモジュールを破棄して新しい画像処理サブモジュールを生成し、画像処理サブモジュールの組み合わせを変更する必要が生じない場合には、再初期化手段によりそれまでの画像処理サブモジュールを再初期化することを特徴とする請求項１０ないし請求項１７のいずれか１項に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル化された画像データを処理する画像処理装置および画像処理方法に関し、特に複数の要素機能的な画像処理手段をモジュール化して用意し、その組み合わせにより多種多様な画像処理機能を実行するような画像処理装置および画像処理方法に関するものである。特に、画像処理手段を任意に組み合わせて構築した画像処理手順を、入力画像や処理パラメータなどを変更して再利用するための構成及び方法に関するものである。
【背景技術】
【０００２】
複数の要素機能的な画像処理モジュールを用意して、その組み合わせにより多種多様な画像処理機能を提供する技術は、例えば文書エディタや描画ツール、あるいは画像伝送装置やプリンタ等、デジタル画像を取り扱う様々なシステムにおいて利用される。そして、このような画像処理機能は、しばしば画像処理ライブラリファイルとして提供され、その場合には画像処理機能を利用したいアプリケーションプログラムとリンクすることによりその機能が利用される。
【０００３】
画像を入力可能なＤＴＰ（デスクトップ・パブリッシング）システム、画像を出力可能なプリントシステムなどでは、処理対象となる画像に対して、例えば拡大・縮小、回転、アフィン変換、色変換、フィルタ、合成などの各種の画像処理が行われる。これらの処理を行う際には、入力画像の属性や処理内容、手順、パラメータなどが固定されている場合には専用のハードウェアを用いて処理を行う場合もあるが、例えば色空間や１画素当たりのビット数が異なる様々な画像が入力されたり、処理内容や手順、パラメータなどが様々に変更される場合には、より柔軟性のある構成が必要となる。
【０００４】
このような要求を満たす従来の技術として、例えば特許文献１や特許文献２、特許文献３などに記載されているように、プログラマブルなモジュールをパイプライン形態やＤＡＧ（Ｄｉｒｅｃｔｅｄ  Ａｃｙｃｌｉｃ  Ｇｒａｐｈ：有向非循環グラフ）形態に接続して、柔軟に所望の処理を行う技術が提案されている。
【０００５】
特許文献１には、必要な機能モジュールを所望の順番でパイプライン状に接続して初期化し、処理を行うことで、柔軟に画像処理を行うパイプライン化画像処理システムが記載されている。当該パイプライン化画像処理装置での動作は次の通りである。すなわち、各機能モジュールの接続が終了すると、最後尾のモジュールに対して必要に応じてヘッダの取得を要求し、この要求は接続されたモジュールを順次遡って先頭の画像入力モジュールに達して読み込まれる画像のヘッダ情報を返し、各モジュールは自身が変更する部分の情報を書き換えた後に後段のモジュールに渡す。例えば入力画像のサイズが１０００×１０００画素であり、処理パイプラインの中に５００×５００画素への縮小処理モジュールが含まれていた場合には、当該縮小モジュールは前段から渡されたヘッダ情報のうちのサイズ情報を１０００×１０００から５００×５００に変更して後段に渡す。このような処理を順次繰り返して、最終的に最後尾のモジュールは外部に対して当該画像処理パイプラインが出力する画像のヘッダ情報を出力する。
【０００６】
次に、得られたヘッダ情報などをもとにデータの処理を行う。データの処理もヘッダの処理と同様に、最後尾のモジュールに対して一定量のデータ出力を要求すると、最後尾のモジュールは前段のモジュールに対してそれに必要な画像データの入力を要求する。この要求は同様に前段に対して遡って伝えられて画像入力モジュールに伝えられ、必要な画像データが読み出されて後段に渡され、順次処理をされながら最終的に最後尾の処理モジュールから出力される。
【０００７】
上記の処理が画像の最後まで、または必要な部分に対して行われると、処理パイプラインは不要となるので、最後尾のモジュールに対して消去を要求する。この消去要求も前記ヘッダ情報取得や前記処理と同様にモジュールの接続を遡って最前部の画像入力モジュールに達し、画像入力モジュールは処理に用いたリソースを解放するとともに自身を消去して後段に制御を返す。制御が戻された後段も同様にリソースや自身を消去する処理を行ってさらに後段に返し、最終的に最後尾のモジュールのリソース解放と自身の消去が終了した時点で全ての操作が終了する。
【０００８】
上述のような特許文献１に記載された方式は、例えばＵＮＩＸ（登録商標）などのオペレーティングシステムで用いられている単一プロセッサによる多重処理パイプラインのシミュレーション方式を画像処理などの分野に応用したものである。そして、特に画像処理においては、１回の処理単位を例えば画像の１ラインのように画像の一部に限定することにより、各処理モジュールが処理用に保持するメモリ領域を極めて少なくすることが可能となる。その結果、少ないメモリで複雑な処理を実行できるコストの安い画像処理装置を提供することが可能となる。あるいは、仮想記憶をサポートするオペレーティングシステム上で動作させる場合には、メモリ不足によるスワップアウトが最小限に抑えられるため、高速に処理を実行することが可能となる。
【０００９】
また、特許文献２には、例えば９０度回転処理のように出力の１ラインを得るために入力画像全体を必要とする処理や、入力画像を複数の処理モジュールに対して出力する分岐モジュールなどの場合には、画像全体のバッファリングが終了したら、それよりも前段のモジュールに対して消去処理を行うことで、必要なメモリ資源を最小に抑えて高速に処理することを目指した画像処理装置が提案されている。
【００１０】
さらに、特許文献３には、例えば処理途中の画像の特徴量を解析して次に実行する処理パラメータを決める場合に、複数の処理モジュールの各々が、所定の処理を処理対象の画像データの先頭からやり直せるように状態を初期化する機能を持った画像処理装置が提案されている。この機能によって、同じ入力画像に対して同じ処理を複数回行う場合に、処理モジュールの接続を二重に生成することなく、一度目に処理を行った結果の画像データを保持するためのメモリも不要となる。
【００１１】
これまで述べたような、要素機能的なモジュールを任意に組み合わせて所望の複雑な処理を行わせることが可能な画像処理装置を実現する際に、パイプライン形態やＤＡＧ形態などのモジュールの接続構造（以下ではこれをリンクまたはリンク構造と称する）の構築は必須の作業であり、画像処理そのものと比べて低いものの若干の処理コストを必要とし、またリンクを制御する側にとっても一定の困難さがある。
【００１２】
必要とされる画像処理手順が全く異なる場合には、リンク構造を消去して再構築することはやむを得ない。しかし、例えば複数の画像に対して同じ処理を行うために入力画像だけが異なり処理内容が同一の場合や、例えば途中に含まれる縮小モジュールの倍率だけが異なるなどの処理手順が同一で処理パラメータだけが異なる場合、さらに処理結果を見てリンクの途中に処理を挿入したい／途中から処理を削除したいなど僅かに処理手順が異なる場合には、既に構築されているリンクとそれに含まれる処理モジュールを全て消去して、再度構築しなおすのは無駄が多い。
【００１３】
これらの場合に対して、従来の技術では、例えば特許文献１に記載された方式では、処理が終了するとリンク構造とそれに含まれる処理モジュールを全て消去するように構成されており、上記の場合についてはリンク構造を再構築する必要がある。また、例えば特許文献２に記載された方式では、処理に必要なメモリ資源を抑えるため、画像全体のバッファリングが終了したらそれよりも前段のモジュールを消去するため、リンク構造の一部が無くなってしまう。そのため、同一の処理を繰り返すことは不可能である。さらに例えば特許文献３に記載された方式では、同一の画像に対して同一の処理パラメータで処理を行う場合に限って、リンクに含まれる処理モジュールを再初期化して最初から処理をやり直せるように構成されている。しかし、処理対象画像が異なる場合や、リンクに含まれる複数モジュールの一つでも処理パラメータが異なる場合には、他の従来の技術と同様に、全てを消去して再構築しなおす必要があった。
【００１４】
【特許文献１】特開平７−１０５０２０号公報
【特許文献２】特開平８−２７２９８１号公報
【特許文献３】特開２００３−２８１５１７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
本発明は、上述した事情に鑑みてなされたものであり、複数の要素機能的な画像処理手段のモジュールを組み合わせて多種多様な画像処理機能を実現する際に、入力画像や処理パラメータのみが異なる場合、さらに処理手順の一部のみが異なる場合に、既に構築されているリンクとそれに含まれる処理モジュールを全て消去することなく、要求に適合したリンク構造を再構築することができる画像処理装置および画像処理方法を提供することを目的とするものである。
【課題を解決するための手段】
【００１６】
本発明は、各々所定の処理を実行する複数の画像処理手段をパイプライン形態または有向非循環グラフ形態に接続して種々の画像処理機能を実行する画像処理装置及び画像処理方法であって、複数の画像処理手段の各々が、少なくとも入力画像情報または処理パラメータに基づいて自身を初期化する機能と、自身を再び初期化以前と同等の状態に戻す機能とを持つことを特徴とするものである。初期化する機能は、例えば、少なくとも入力される画像の属性情報と処理パラメータのいずれかに基づいて、例えばメモリ領域の確保、値の設定、入力画像へのアクセス初期化など、処理を開始するために必要な手順を実行するように構成することができる。また、初期化以前と同等の状態に戻す機能は、例えば、メモリ領域の解放あるいは入力画像へのアクセス閉鎖など、初期化機能により取得された資源の解放を行うように構成することができる。あるいはさらに、初期化以前と同等の状態に戻す機能とは別に、外部から呼び出し可能な自身を消去する機能を有していてもよい。
【００１７】
また、複数の画像処理手段のうちの少なくとも一つは、初期化以前と同等の状態において、外部から処理パラメータを変更可能な機能を有するものとすることができる。また、複数の画像処理手段のうちの少なくとも一つは、初期化以前と同等の状態において、外部から前段に接続されている画像処理手段を変更可能な機能を有するものとすることができる。
【００１８】
さらに、１以上の前記画像処理手段について、実行時のパラメータや条件により１ないし複数の画像処理サブモジュールを組み合わせてまたは選択してリンク接続することで特定の機能を実現する複合画像処理手段とすることができる。この複合画像処理手段においては、入力画像情報及び処理パラメータを保存しておき、新たな入力画像情報または新たな処理パラメータが与えられたとき、保存しておいた入力画像情報または処理パラメータと比較する。新たな入力画像情報または新たな処理パラメータがそれまでの内容と異なることが検出されたとき、画像処理サブモジュールの組み合わせを変更する必要が生じていれば、それまでの画像処理サブモジュールを破棄して新しい画像処理サブモジュールを生成する。また、画像処理サブモジュールの組み合わせを変更する必要が生じない場合には、それまでの画像処理サブモジュールを再初期化するように構成することができる。
【発明の効果】
【００１９】
本発明によれば、各画像処理手段が確保したリソースなどを解放して初期化以前と同等の状態に戻るための機能と、入力される画像の属性情報や処理パラメータなどに基づいて初期化することにより入力先や初期パラメータを変更するための機能とを備えている。これにより、複数の要素機能的なモジュールである画像処理手段を組み合わせて多種多様な画像処理機能を実現する際に、入力画像や処理パラメータのみが異なる場合、さらに処理手順の一部のみが異なる場合に、既に構築されているリンクとそれに含まれる画像処理手段を全て消去することなく、要求に適合したリンク構造を再構築することができる画像処理装置および画像処理方法を提供することが可能となるという効果がある。
【００２０】
また、複合画像処理手段を利用することによって、例えば入力画像情報や処理パラメータの変更に対して最適な画像処理サブモジュールにより当該複合画像処理手段を構築することができ、また、変更を行う場合も一部の画像処理サブモジュールの変更のみで対応することができる。これにより、従来は入力画像情報や処理パラメータの変更による処理内容の違いによって再構築していたパイプラインあるいはＤＡＧをそのまま再利用し、複合画像処理手段内の再構築のみで対応することが可能になる。
【発明を実施するための最良の形態】
【００２１】
図１は、本発明の第１の実施の形態を示すブロック図である。図中、１は画像記憶部、２はメモリ部、３は処理部、４は画像出力部、５は制御部、６はバスライン、１１は画像入力モジュール、１２は拡縮処理モジュール、１３は回転処理モジュール、１４は色変換処理モジュール、１５はフィルタ処理モジュールである。図１に示す構成では、画像記憶部１、メモリ部２、処理部３、画像出力部４および制御部５がバスライン６を介して相互に接続された構成となっている。
【００２２】
画像記憶部１は、処理対象であるデジタル化された画像データを保持する。メモリ部２は、各種処理を行うために必要な処理領域や各種の演算途中結果、処理パラメータ等を保持する。なお、画像記憶部１については、メモリ部２と兼用するようにしても良い。
【００２３】
処理部３は、画像記憶部１に保持された処理対象の画像データに対して所定の処理を実行する各種の画像処理モジュールを有している。これらの画像処理モジュールの一部あるいは全部が、適宜、パイプライン形態やＤＡＧ形態に接続されて、所望される各種の処理を行う。画像処理モジュールとして、ここでは一例として画像入力モジュール１１、拡縮処理モジュール１２、回転処理モジュール１３、色変換処理モジュール１４およびフィルタ処理モジュール１５を有している。もちろん、処理部３が有する画像処理モジュールは任意であり、この例に限られるものではない。この処理部３内の各種の画像処理モジュールは、プログラムモジュールとしてメモリ部２の中に展開されて動作しても良いし、一部又は全部が専用のハードウェアで構成されていても良い。処理部３内の各種の画像処理モジュールの詳細については一例を後述する。
【００２４】
画像出力部４は、画像記憶部１に保持された画像データが処理部３内の各種の画像処理モジュールによって処理された処理結果を、バスライン６を通して図示したシステムの外部に出力する。制御部５は、ＣＰＵなどによって構成され、画像記憶部１、メモリ部２、処理部３および画像出力部４の各処理の制御を司っている。
【００２５】
図２は、画像入力モジュールの一例を示すブロック図である。図中、２１は画像入力制御部、２２は接続管理部、２３はリソース管理部、２４は出力バッファである。画像入力モジュール１１は、処理対象の画像データを入力する処理を行う画像処理モジュールであり、画像入力制御部２１および出力バッファ２４を有している。
【００２６】
画像入力制御部２１は、画像データの入力処理を制御するものである。初期化の指示によって出力バッファ２４となる領域の取得や内部の初期化を行い、解放の指示によって出力バッファ２４を含む各種のリソースを解放して初期化前の状態に戻す。また、入力先設定の指示によって画像データの入力先を設定し、ヘッダ出力の指示により入力先からヘッダ情報を取得して出力バッファ２４を介して返送し、データ出力の指示により入力先から画像データを読み出して出力バッファ２４を介して返送する。図２では入力先が画像記憶部１であるものとして示している。もちろん、このほかにも種々の指示が可能なように構成することができる。
【００２７】
この画像入力制御部２１は、接続管理部２２及びリソース管理部２３を含んで構成されている。接続管理部２２は、前段の画像処理モジュールあるいは画像データ等との接続関係を管理するものである。この画像入力モジュール１１においては、接続管理部２２は、入力先画像ファイルの情報を管理する。リソース管理部２３は、当該画像処理モジュールが処理を実行する場合に必要となるリソースを管理する。例えば入出力バッファやその他処理に必要なメモリ、ハードウェアなどを確保し、管理する。この画像入力モジュール１１においては、出力バッファ２４をメモリ部２上に確保して管理する。
【００２８】
出力バッファ２４は、読み込んだ画像データを後段のモジュールに出力するためのバッファである。この出力バッファ２４の内容は、後段のモジュールの入力バッファなどに転送される。
【００２９】
図２に示した画像入力モジュール１１の例は、パイプライン形態やＤＡＧ形態に接続されたときの最前段に配置される画像処理モジュールの例を示しており、画像入力モジュール１１以外に最前段に配置される画像処理モジュールが存在する場合には、その画像処理モジュールについては実行する処理は異なるものの、図２に示すような画像入力モジュール１１と同様の構成を有している。
【００３０】
図３は、拡縮処理モジュールの一例を示すブロック図である。図中、３１は拡縮処理制御部、３２は接続管理部、３３はリソース管理部、３４は倍率管理部、３５は入力バッファ、３６は出力バッファである。拡縮処理モジュール１２は、処理対象の画像データを拡縮する処理を行う画像処理モジュールであり、拡縮処理制御部３１、入力バッファ３５、出力バッファ３６を有している。
【００３１】
拡縮処理制御部３１は、画像データの拡縮処理を制御するものである。初期化の指示によって入力バッファ３５や出力バッファ３６となる領域の取得や内部の初期化を行い、解放の指示によって出力バッファ２４を含む各種のリソースを解放して初期化前の状態に戻す。また、入力先設定の指示によって画像データの入力先を設定する。ここでは例えば別の画像処理モジュールである画像入力モジュール１１を入力先としたものとして示している。さらに、倍率設定の指示に従って、拡縮処理を行う際の倍率を設定する。さらにまた、この例ではヘッダ出力の指示とデータ出力の指示が可能である。ヘッダ出力の指示については、入力先設定で設定された入力先に対してヘッダ出力の指示を伝える。そして入力先から入力バッファ３５を介してヘッダ情報を受け取り、受け取ったヘッダ情報を出力バッファ３６を介して転送する。また、データ出力の指示については、同じく入力先に対してデータ出力を指示し、入力バッファ３５を介して画像データを受け取る。そして、受け取った画像データに対して予め指示されている倍率に従って拡縮処理を行い、出力バッファ３６を介して転送する。もちろん、このほかにも種々の指示が可能なように構成することができる。
【００３２】
この拡縮処理制御部３１は、接続管理部３２、リソース管理部３３、倍率管理部３４を含んで構成されている。接続管理部３２は、前段に接続される画像処理モジュールあるいは画像データ等との接続関係を管理するものであり、この例では画像入力モジュール１１との接続が管理されている例を示している。リソース管理部３３は、当該画像処理モジュールが処理を実行する場合に必要となるリソースを管理する。この拡縮処理モジュール１２においては、入力バッファ３５及び出力バッファ３６をメモリ部２上に確保して管理する。倍率管理部３４は、この拡縮処理モジュール１２において行う拡縮処理の倍率を管理する。この倍率は、上述のように予め倍率設定の指示により設定される。
【００３３】
入力バッファ３５は、前段の画像処理モジュールなどの入力先から取得した画像データを一時保持しておくためのバッファである。また、出力バッファ３６は、後段の画像処理モジュールに拡縮処理後の画像データを出力するためのバッファである。
【００３４】
図３に示した拡縮処理モジュール１２の例は、パイプライン形態やＤＡＧ形態に接続されたときの中間あるいは最後に配置される画像処理モジュールの例を示しており、画像入力モジュール１２以外に中間あるいは最後に配置される画像処理モジュールが存在する場合には、その画像処理モジュールについては実行する処理は異なるものの、図３に示すような拡縮処理モジュール１２と同様の構成を有している。例えば図１に示した回転処理モジュール１３，色変換処理モジュール１４，フィルタ処理モジュール１５についても、実行する処理やその処理に関する設定項目が異なるだけで同様の構成である。
【００３５】
なお、図２に示した画像入力モジュール１１、図３に示した拡縮処理モジュール１２ともに出力バッファを設ける構成として説明したが、後段に接続された画像処理モジュールの入力バッファが出力バッファとして渡されるように構成してもよく、その場合には、各画像処理モジュールには出力バッファは不要である。逆に、前段に接続された画像処理モジュールの出力バッファが後段の画像処理モジュールの入力バッファとして構成することもでき、その場合には各画像処理モジュールには入力バッファは不要である。
【００３６】
図４は、本発明の第１の実施の形態を用いて作成したパイプラインの一例の説明図である。図１に示した処理部３内の画像入力モジュール１１、拡縮処理モジュール１２、回転処理モジュール１３、色変換処理モジュール１４、フィルタ処理モジュール１５を用いて、これらをパイプライン形態あるいはＤＡＧ形態に接続し、まとまった機能を実行させることができる。図４に示す例では、画像入力モジュール１１の入力先を画像記憶部１内の画像ファイルなどに設定し、画像入力モジュール１１、拡縮処理モジュール１２、回転処理モジュール１３、色変換処理モジュール１４をこの順にパイプライン形態に接続し、色変換処理モジュール１４の出力を画像処理部４に渡すように構成した例を示している。このような構成によって、画像データに対して拡縮処理、回転処理、色変換処理を施して、その結果を画像出力部４により出力することができる。
【００３７】
なお、使用する画像処理モジュールはいくつでもよく、画像入力モジュール１１のみでもかまわない。また、図４ではパイプライン形態に接続した例を示しているが、これに限らず、例えば特開２００３−２８１５１８号公報に記載されているような分岐モジュールを含んだＤＡＧ形態で処理が行われてもよい。
【００３８】
以下、図４に示した例のように各画像処理モジュールをパイプライン形態に接続して使用する場合について、その動作の概要を説明してゆく。はじめに、制御部５により、処理部３の画像入力モジュール１１の生成が指示され、画像入力モジュール１１が利用可能に設定される。例えば処理部３の各画像処理モジュールの一部または全部がプログラムで構成されている場合には、そのプログラムが処理部３から取り出され、メモリ部３上に当該画像処理モジュールの一部または全部として生成されることになる。また、例えばＦＰＧＡなどのプログラム可能なハードウェアの場合にも、当該画像処理モジュールを素子上に配置することになる。なお、この時点では、出力バッファ２４などの処理に必要なリソースは確保されない。
【００３９】
同様にして、制御部５により、処理部３の拡縮処理モジュール１２、回転処理モジュール１３、色変換処理モジュール１４についても生成が指示され、これらのモジュールが利用可能に設定される。なお、いずれもこの時点では入力バッファや出力バッファなどの処理に必要なリソースは確保されない。
【００４０】
次に制御部５は、図２に示した画像入力モジュール１１に対して、入力先設定の指示として画像記憶部１に保持された画像データを入力先とするように指示を与え、画像入力モジュール１１の入力先を設定する。この情報は、接続管理部２２により管理される。
【００４１】
次に制御部５は、図３に示した拡縮処理モジュール１２に対して、入力先設定の指示として拡縮処理モジュール１２の前段モジュールとなる画像入力モジュール１１を入力先とする指示を与え、図４に示す接続構造の一部を設定する。この情報は、接続管理部３２により管理される。
【００４２】
以下同様に、制御部５により回転処理モジュール１３、色変換処理モジュール１４にも入力先設定の指示が与えられ、それぞれのモジュール間の接続構造が設定される。その結果として、図４に示す処理パイプラインが完成する。
【００４３】
次に制御部５は、各モジュールの処理パラメータを設定する。具体的には、画像入力モジュール１１には特に必要ないが、拡縮処理モジュール１２に対しては倍率設定の指示を行って拡縮倍率を設定したり、回転処理モジュール１３に対しては回転角の設定などを行う。
【００４４】
なお、ここではモジュールの生成と入力先設定およびパラメータ設定を別個に行ったが、モジュール生成時に入力画像または前段モジュールの指示や、処理パラメータの付与を行い、生成と同時に接続関係の設定や処理パラメータの設定を行うよう構成してもよい。
【００４５】
次に、制御部５が最後尾のモジュール（図４における色変換処理モジュール１４）に対して初期化の指示を与えると、その初期化の指示は順次パイプライン接続を辿って先頭の画像入力モジュール１１に到達する。画像入力モジュール１１は、後段のモジュール（図４における拡縮処理モジュール１２）から、初期化の指示を受けると、自身の状態を初期化する。具体的には、接続管理部２２により管理されている入力先から画像の属性情報を読み出し、それをもとに必要なサイズの出力バッファ２４やその他処理に必要なリソース（例えば画像データが圧縮されている場合には伸長用テーブルなど）をメモリ部２上に確保／初期化し、リソース管理部２３の管理下に置く。また、例えばラインカウンタなどの処理用変数がモジュール中に存在する場合は、これらの値を初期化する。なお、前述のように、後段モジュールから出力バッファが渡される場合には、画像入力モジュール１１で確保／管理する必要はない。
【００４６】
画像入力モジュール１１の初期化が終了すると、制御はその後段の拡縮処理モジュール１２に戻る。拡縮処理モジュール１２は、画像入力モジュール１１に対してヘッダ出力の指示を与え、画像入力モジュール１１から出力される画像データの属性情報を取得し、倍率などの制御部５から与えられた処理パラメータとともに、自身の処理に必要なリソース（入力バッファ３５や拡縮処理用テーブルなど）の確保と処理用変数などの初期化を行って、制御をさらに後段の回転処理モジュール１３に戻す。
【００４７】
以下同様に、パイプライン上の各モジュールの初期化が行われる。これにより、パイプライン全体として画像記憶部１に保持された処理対象の画像データに対して所望の処理が可能な状態となる。
【００４８】
次に制御部５は、最後尾のモジュール（図４においては色変換処理モジュール１４）に対してデータ出力の指示を行い、所望の出力データを得る。この動作は、必要なデータを得るまで繰り返し行われ、例えば１回の呼び出しで１ライン分が出力され、出力画像全体が必要な場合には、出力画像の縦のライン数分だけ、繰り返される。
【００４９】
ここで、図４に示すように処理パイプライン中に回転などのように１ラインを出力するために入力画像全体を必要とするものが含まれている場合、回転処理モジュール１３は、初期化の時点で前段から入力される画像データ全部を一時保持できるバッファを確保し、前段モジュールのデータ出力インターフェースを繰り返し呼び出して画像全体を得て、回転後の画像の１ライン分を出力する。
【００５０】
その際、全てのデータを得た後には前段は不要となるので、前段の拡縮処理モジュール１２に対して解放を指示してもよい。その場合には、拡縮処理モジュール１２は、自身が確保してリソース管理部３３が管理しているバッファやテーブルなどのリソースを解放し、さらに前段の画像入力モジュール１１に対して解放を指示する。画像入力モジュール１１は、拡縮処理モジュール１２と同様に自身が確保してリソース管理部２３が管理しているリソースを解放して、前段が存在しないので制御を拡縮処理モジュール１２に返す。拡縮処理モジュール１２は、制御を回転処理モジュール１３に戻して一連の解放処理が終了する。
【００５１】
この時点では、画像入力モジュール１１および拡縮処理モジュール１２は、初期化以前と同等の状態に戻っているが、モジュール自身は存在してパイプラインとしての接続形態を保っている。そのため、再度、初期化を指示して初期化を行えば、出力画像データを得ることができる状態となっている。ここで初期化以前の状態と同等とは、最初の初期化の前と全く同じという状態と、さらにバッファやテーブルなどの処理用リソースが確保されておらず、殆どリソースに影響を与えない処理用変数などの値については最初の初期化前とは異なる値が入っていても良い状態とを、まとめて表現したものである。
【００５２】
制御部５が、パイプラインの最後尾である色変換処理モジュール１４に対してデータ出力を指示して必要な画像部分を得て、画像出力部４に出力し終わると、制御部５はパイプラインの解放または消去処理を行う。使用した処理パイプラインが不要な場合には、制御部５は色変換処理モジュール１４の消去を指示する。色変換処理モジュール１４は、前段の回転処理モジュール１３に対して消去を指示し、以下同様にパイプラインを辿って画像入力モジュール１１まで消去の指示が達する。すると、画像入力モジュール１１は（それまでに解放の指示を受けていなければ）自身が確保してリソース管理部２３が管理するリソースを解放して自身を利用されない状態とし、制御を後段の拡縮処理モジュール１２に戻す。拡縮処理モジュール１２も（それまでに解放の指示を受けていなければ）自身が確保してリソース管理部３３が管理するリソースを解放して自身を利用されない状態とし、制御を後段の回転処理モジュール１３に戻す。以下同様に、制御部５に制御が戻るまで同様の処理が行われ、パイプライン全体が消滅する。なお、各モジュールが利用されない状態とは、例えば各モジュールがプログラムで構成される場合には当該プログラムモジュールをメモリ部２から消去することであり、ＦＰＧＡなどのプログラム可能なハードウェアでも当該モジュールの占有領域を開放することなどを含む表現であって、もちろん、専用のハードウェアであればそのモジュールを利用しなくなることも含むものである。
【００５３】
上述の解放及び消去の指示は、処理パイプラインを再利用しない場合であるが、例えば入力画像のみ異なる場合や、幾つかのモジュールの処理パラメータのみが異なる場合、パイプライン中の一部のモジュールのみ異なる場合などでは、パイプライン全体を消去して作り直すよりも、既にあるパイプラインを再利用して、異なる部分のみ変更する方が効率的である。以下では、そのような場合の動作を説明する。
【００５４】
既に使用し終わった処理パイプラインを再利用する場合には、解放の指示を与える。この例では色変換処理モジュール１４に対して解放の指示を与える。すると、色変換処理モジュール１４は、自身で確保したリソースの解放を行って、前段に接続されている回転処理モジュール１３に対して解放を指示する。回転処理モジュール１３は、同様に自身で確保したリソースの解放を行って、前段に接続されている拡縮処理モジュール１２に対して解放を指示する。拡縮処理モジュール１２は、前述のように既に回転処理モジュール１３から解放の指示を受けてリソース管理部３３に未解放のリソースが残っていない場合には、何もする必要がないので、そのまま前段に接続されている画像入力モジュール１１に対して解放を指示する。もしリソース管理部３３に解放されていないリソースが残っている場合には、これを解放して前段に接続されている画像入力モジュール１１に対して解放を指示する。画像入力モジュール１１も同様であり、リソース管理部２３に未解放のリソースが残っていない場合には、何もする必要がないので、解放処理を終了して制御を拡縮処理モジュール１２に戻す。もしリソース管理部２３に解放されていないリソースが残っている場合には、これを解放して制御を拡縮処理モジュール１２に戻す。拡縮処理モジュール１２は、回転処理モジュール１３に制御を戻し、同様に回転処理モジュール１３は色変換処理モジュール１４に制御を戻し、色変換処理モジュール１４は制御部５に制御を戻して、パイプライン中のモジュールのリソース解放処理が終了する。
【００５５】
なお、ここでは拡縮処理モジュール１２のように既に解放インターフェースが呼び出されている場合にも、上流の解放インターフェースを呼び出すように記載したが、すでに解放を指示したモジュールの上流は既にリソース解放が行われているはずなので、前段のモジュールに解放を指示せずに制御を後段のモジュールへ戻すように構成してもよい。
【００５６】
この時点で、処理パイプライン中の各モジュールは、初期化以前と同等の状態に戻っている。そこで変更したいモジュールに対して、変更指示を行う。図５は、処理パイプラインの変更の具体例の説明図である。ここでは、図５（Ａ）（図４と同様）に示した処理パイプラインを図５（Ｂ）に示す構成に変更するとともに、それぞれのモジュールに対して処理パラメータを変更する例を示している。具体的には画像入力モジュール１１と拡縮処理モジュール１２の間にフィルタ処理モジュール１５を挿入するとともに回転処理モジュール１３を削除する。また、処理対象の画像ファイルを「ａ．ｔｉｆ」から「ｂ．ｔｉｆ」に変更し、拡縮処理モジュール１２の拡縮処理時の倍率を２倍から１．５倍に変更するものである。
【００５７】
制御部５は、まず画像入力モジュール１１に対して、入力先設定の指示を与えて、入力先の画像ファイルを「ａ．ｔｉｆ」から「ｂ．ｔｉｆ」に変更する。この変更指示は、画像入力制御部２１に伝えられ、接続管理部２２に保持されている入力先画像ファイルの情報が変更されることによって実現される。
【００５８】
次に制御部５は、処理部３のフィルタ処理手段３５を利用可能に生成し、その前段として画像入力モジュール１１を設定する。この前段の設定は、フィルタ処理モジュール１５に対する入力先設定の指示として行ってもよいし、また前述のように生成時のパラメータとして前段を設定するようにしてもよい。同様に、処理パラメータなども設定する。ここでは３×３サイズのフィルタ処理を行うものとし、３×３のフィルタ係数を設定すればよい。なお、この時点ではバッファなどのフィルタ処理に必要なリソースは確保されない。
【００５９】
次に制御部５は、拡縮処理モジュール１２に対して入力先設定の指示を行い、拡縮処理モジュール１２の前段を、今までの画像入力モジュール１１からフィルタ処理モジュール１５に変更する。この変更指示は、拡縮処理制御部３１に伝えられ、接続管理部３２に保持されている入力先モジュールの情報が変更されることによって実現される。
【００６０】
次に制御部５は、拡縮処理モジュール１２に対して倍率設定の指示を行い、倍率を１．５倍拡大に変更する。この変更指示は、拡縮処理制御部３１に伝えられ、倍率管理部３４に保持されている倍率情報が変更されることによって実現される。
【００６１】
次に制御部５は、回転処理モジュール１３に対して入力先設定の指示を行い、回転処理モジュール１３の前段を、入力先無しの状態に変更する。そのあとで、制御部５は、回転処理モジュール１３に対して消去の指示を行い、不要となった回転処理モジュール１３を使用されない状態にする。ここで予め入力先無しの状態にしたのは、消去の指示が上流に伝播して、上流のモジュールが消去されるのを防ぐためである。
【００６２】
次に制御部５は、色変換処理モジュール１４に対して入力先設定の指示を行い、前段のモジュールを拡縮処理モジュール１２に変更する。
【００６３】
以上の変更を終了した後、制御部５は、最後尾の色変換処理モジュール１４に対して初期化を指示する。この初期化の指示は、パイプラインを辿って最も上流の画像入力モジュール１１に到達し、画像入力モジュール１１は画像記憶部１から「ｂ．ｔｉｆ」ファイルの一部を読み込んで入力画像の属性情報を取得し、その情報をもとに自身を初期化して、制御を次のフィルタ処理モジュール１５に戻す。フィルタ処理モジュール１５は、前段の画像入力モジュール１１に対してヘッダ出力の指示を行って入力画像の属性情報を取得し、その情報と与えられたフィルタ係数などの処理パラメータをもとに、処理に必要なリソースの確保や値の初期化などを行って自身の初期化を終了し、制御を後段の拡縮処理モジュール１２に戻す。以下同様に、拡縮処理モジュール１２、色変換処理モジュール１４の初期化が順次行われ、最後に制御部５に制御が戻り、処理パイプライン中のモジュール全体の初期化が終了する。
【００６４】
このようにして初期化が終了した後、制御部５は、色変換処理部１４に対してデータ出力の指示を必要な回数だけ行い、処理パイプラインによる処理済みデータを必要なだけ取得し、その結果を画像出力部４から出力する。
【００６５】
なお、ここでは各処理モジュールがそれぞれ、入力先と処理パラメータの両方が変更できるものとして説明したが、本発明はこれに限定されるものではなく、例えば画像入力モジュール１１の入力先のみ変更できるように構成し、複数の画像データに対して同じ処理を施せるように構成してもよいし、または処理の一部（例えば拡縮処理モジュール１２の倍率パラメータのみ）を変更できるようにして、同じ画像データに対して倍率のみ異なった処理を繰り返し施せるように構成してもよい。
【００６６】
次に、本発明の第２の実施の形態について説明する。この第２の実施の形態では、複合画像処理モジュールを利用する場合の例について説明する。なお、ブロック図は上述の第１の実施の形態と同様であるので、ここでは説明を省略する。
【００６７】
上述の第１の実施の形態において、例えば図４に示した処理パイプラインを生成する場合、入力される画像データが１ビット白黒画像であれば、拡縮処理モジュール１２や回転処理モジュール１３、フィルタ処理モジュール１５などは、１ビット白黒画像に適したモジュールが用いられる。しかし、入力先設定の指示により入力される画像データが変更され、例えば各チャンネルが８ビットのカラー画像となると、それまで用いていた１ビット白黒画像用のモジュールでは対応することができず、当該画像処理モジュールの消去と再生成が必要となる。
【００６８】
同様に、例えば拡縮処理モジュール１２に対してＸ方向のみの拡縮を指示する処理パラメータを設定した場合、Ｘ方向に拡縮処理を行うモジュールが生成され使用することになる。その後、処理パラメータを変更してＸ方向とともにＹ方向についても倍率を設定して拡縮処理を行おうとしても、そのまま拡縮処理モジュール１２を再利用することができず、Ｘ方向及びＹ方向に拡縮処理を行うことができる拡縮処理モジュール１２に変更すべく、拡縮処理モジュール１２の消去と再生成が必要となってしまう。
【００６９】
この第２の実施の形態では、上述のような入力される画像データの変更や処理パラメータの変更により、同じ機能でありながら画像処理モジュールの消去及び再生成を行うことなく、処理パイプラインあるいはＤＡＧ中の複合画像処理モジュールを再利用可能な構成を提供する。
【００７０】
図６は、本発明の第２の実施の形態における画像処理モジュールの一例を示すブロック図である。図中、４１は１ビット白黒画像用拡縮処理サブモジュール、４２は８ビット階調画像用拡縮処理サブモジュール、４３はカラー画像用拡縮処理サブモジュール、４４は入力画像情報保存比較部、４５は入力パラメータ保存比較部、４６は再初期化部、４７は再生成部である。図６には複合画像処理モジュールの一例として、拡縮処理を行うモジュールの例を示しており、ここでは複合拡縮処理モジュールと呼ぶことにする。この複合画像処理モジュールは、上述の第１の実施の形態における拡縮処理モジュール１２と同様に扱われる。
【００７１】
この複合拡縮処理モジュールには、この例では、１ビット白黒画像用拡縮処理サブモジュール４１、８ビット階調画像用拡縮処理サブモジュール４２、カラー画像用拡縮処理サブモジュール４３の３つのサブモジュールが設けられている。１ビット白黒画像用拡縮処理サブモジュール４１は、１ビットの白黒画像に対する拡縮処理を行う。８ビット階調画像用拡縮処理サブモジュール４２は、８ビットの階調画像に対する拡縮処理を行う。カラー画像用拡縮処理サブモジュール４３は、各チャンネル（各色成分）が８ビットのカラー画像に対する拡縮処理を行う。これらの３つのサブモジュールは、入力画像情報あるいは処理パラメータによっていずれかが選択して用いられる。もちろん、サブモジュールとしてどのようなサブモジュールを設けておくかは任意である。
【００７２】
また、この複合拡縮処理モジュールには、入力画像情報保存比較部４４、入力パラメータ保存比較部４５、最初期化部４６、再生成部４７が設けられている。入力画像情報保存比較部４４は、それまで拡縮処理の対象となっていた画像データの情報である入力画像情報が保存されている。そして、画像データを変更するとき、保存している入力画像情報と新たな画像データの入力画像情報とを比較して、入力画像情報の変更を検出する。また入力パラメータ保存比較部４５は、それまでの拡縮処理で使用していた処理パラメータが保存されている。そして、処理パラメータを変更するとき、保存している処理パラメータと新たな処理パラメータとを比較して、処理パラメータの変更を検出する。
【００７３】
再初期化部４６は、入力画像情報保存比較部４４または入力パラメータ保存比較部４５で入力画像情報の変更あるいは処理パラメータの変更が検出されたが、その変更によって使用しているサブモジュールの変更の必要がないときに、それまで使用していたサブモジュールを再初期化する。
【００７４】
再生成部４７は、入力画像情報保存比較部４４または入力パラメータ保存比較部４５で入力画像情報の変更あるいは処理パラメータの変更が検出され、その変更によって使用しているサブモジュールの変更が必要な場合に、それまでの画像処理サブモジュールを破棄して新しいサブモジュールを生成する。
【００７５】
複合拡縮処理モジュールの動作の概要について説明する。第１の実施の形態でも説明したように、制御部５から生成の指示によって、この複合拡縮処理モジュールが利用可能な状態となる。その後、入力先設定の指示や処理パラメータの設定の指示を受け、入力先の設定及び処理パラメータの設定を行う。続いて、制御部５あるいは後段のモジュールから初期化の指示が伝達されるので、これを前段のモジュールに伝達する。前段のモジュールから制御が戻されると、前段のモジュールに対してヘッダ出力の指示を行い、入力画像情報を取得する。この入力画像情報から画像データの属性を判断し、対応するサブモジュールを利用可能な状態にする生成処理を行う。ここでは、画像データが１ビット白黒画像であるものとし、その旨を入力画像情報保存比較部４４に保存し、１ビット白黒画像用拡縮処理サブモジュール４１を利用可能な状態にする生成処理を行う。また、その他の初期化の処理、例えば入力バッファや出力バッファの確保などについても行い、後段のモジュールに対して制御を戻す。
【００７６】
その後、後段のモジュールからのデータ出力の指示を受け、前段のモジュールにこの指示を伝えるとともに、返された画像データに対して１ビット白黒画像用拡縮処理サブモジュール４１により１ビットの白黒画像として拡縮処理を行い、後段のモジュールへ送る。このような処理を繰り返すことによって、所望の画像データに対する拡縮処理をこの複合拡縮処理モジュールにおいて行い、処理パイプライン全体として、所定の画像処理を実行する。
【００７７】
このようにして、ある画像データに対する処理を終えた後、同じ処理を他の画像データに対して行おうとする。この場合、制御部５は最後尾のモジュールに対して解放の指示を行い、それぞれのモジュールを初期化以前と同等の状態に戻す。そして、最前段のモジュールに対して入力先設定の変更を指示し、処理対象の画像データを変更する。また、必要に応じて他のモジュールに対しても処理パラメータの設定を指示する。その後、最後尾のモジュールに対して初期化の指示を行う。この初期化の指示が前段へと伝播し、最前段のモジュールから初期化されてゆく。
【００７８】
この複合拡縮処理モジュールまで制御が戻ると、前段のモジュールに対してヘッダ出力の指示を行い、入力画像情報を取得する。この入力画像情報から画像データの属性を判断し、対応するサブモジュールを利用可能な状態にする生成処理を行う。この２回目では、処理対象の画像データが８ビット階調画像であったとする。入力画像情報保存比較部４４にて新旧の入力画像情報の比較が行われ、処理パラメータとともに、前回使用していた１ビット白黒画像用拡縮処理サブモジュール４１により拡縮処理を実行できるか否かを判断する。１ビット白黒画像用拡縮処理サブモジュール４１では８ビット階調画像は処理できないので、そのままでは処理できないと判断し、再生成部４７によって、１ビット白黒画像用拡縮処理サブモジュール４１を破棄し、８ビット階調画像用拡縮処理サブモジュール４２を利用可能にする生成処理を行う。また、入力画像情報保存比較部４４に８ビット階調画像であることを保存する。
【００７９】
このようにして、画像データの属性が異なり、従前のままでは処理できない場合でも、処理パイプラインはそのままで、複合拡縮処理モジュール内部のサブモジュールの再構成のみで対応することができる。
【００８０】
取得した新たな入力画像情報が１ビット白黒画像であることを示している場合には、それまで用いていた１ビット白黒画像用拡縮処理サブモジュール４１により処理可能である。このような場合には、再初期化部４６によって１ビット白黒画像用拡縮処理サブモジュール４１が再初期化され、再利用される。これにより、入力される画像データの属性が同じであれば、サブモジュールの破棄及び再生成を行うことなく、サブモジュールをそのまま再利用することができる。
【００８１】
なお、例えばそれまでの処理でカラー画像用拡縮処理サブモジュール４３を用いており、新たな入力画像情報が１ビット白黒画像あるいは８ビット白黒画像であることを示している場合に、カラー画像用拡縮処理サブモジュール４３が１ビット白黒画像あるいは８ビット白黒画像を処理可能であれば、入力画像情報が異なっていても同じサブモジュールをそのまま再利用するしてもよい。もちろん、最適なサブモジュールに変更してもよい。
【００８２】
処理パラメータの変更による場合も、入力画像情報の変更のときと同様である。１回目の拡縮処理の処理パラメータが主走査方向のみ拡縮であった（例えば主走査方向１５０％，副走査方向１００％）とき、この処理パラメータを入力パラメータ保存比較部４５にて保存し、主走査方向のみについて拡縮処理を行うサブモジュールを生成し、拡縮処理を行う。２回目の拡縮処理の処理パラメータが主走査かつ副走査方向の拡縮であった（例えば主走査方向１５０％，副走査方向１５０％）ときには、新旧の処理パラメータを入力パラメータ保存比較部４５にて比較する。その結果、前回と異なり、主走査方向とともに副走査方向にも拡縮処理を行うサブモジュールを生成する必要があると判断し、前回生成した主走査方向のみについて拡縮処理を行うサブモジュールの後段に副走査方向の拡縮処理を行うサブモジュールを生成して接続すればよい。あるいは、主走査方向のみに拡縮処理を行うサブモジュールを破棄し、主走査方向及び副走査方向ともに拡縮処理を行うサブモジュールを生成すればよい。そして、新たな処理パラメータを入力パラメータ保存比較部４５に保存しておく。
【００８３】
このようにして、処理パラメータの変更に伴って、それまで使用していたサブモジュールでは処理できない場合、処理パイプライン中の複合拡縮処理モジュールはそのままにして、サブモジュールの追加あるいは変更によって対応することができる。
【００８４】
なお、ここでは複合画像処理モジュールの一例として複合拡縮処理モジュールを示したが、他の様々な画像処理モジュールにおいて同様の複合画像処理モジュールとすることができる。その場合も同様に、各複合画像処理モジュールにおいて、入力画像情報や処理パラメータなどによって、内部のサブモジュールについて再初期化して再利用したり、そのままでは再利用できない場合にはサブモジュールの追加や変更により対処し、パイプラインの構成をそのまま再利用することができる。
【図面の簡単な説明】
【００８５】
【図１】本発明の第１の実施の形態を示すブロック図である。
【図２】画像入力モジュールの一例を示すブロック図である。
【図３】拡縮処理モジュールの一例を示すブロック図である。
【図４】本発明の第１の実施の形態を用いて作成したパイプラインの一例の説明図である。
【図５】処理パイプラインの変更の具体例の説明図である。
【図６】本発明の第２の実施の形態における画像処理モジュールの一例を示すブロック図である。
【符号の説明】
【００８６】
１…画像記憶部、２…メモリ部、３…処理部、４…画像出力部、５…制御部、６…バスライン、１１…画像入力モジュール、１２…拡縮処理モジュール、１３…回転処理モジュール、１４…色変換処理モジュール、１５…フィルタ処理モジュール、２１…画像入力制御部、２２…接続管理部、２３…リソース管理部、２４…出力バッファ、３１…拡縮処理制御部、３２…接続管理部、３３…リソース管理部、３４…倍率管理部、３５…入力バッファ、３６…出力バッファ、４１…１ビット白黒画像用拡縮処理サブモジュール、４２…８ビット階調画像用拡縮処理サブモジュール、４３…カラー画像用拡縮処理サブモジュール、４４…入力画像情報保存比較部、４５…入力パラメータ保存比較部、４６…再初期化部、４７…再生成部。
【図１】
2006215880.tif 000003
【図２】
2006215880.tif 000004
【図３】
2006215880.tif 000005
【図４】
2006215880.tif 000006
【図５】
2006215880.tif 000007
【図６】
2006215880.tif 000008