(57)【特許請求の範囲】
【請求項１】
パイプライン接続されている複数の処理モジュールによって画像データを処理する画像処理装置であって、
画像データを第１サイズ毎に処理する処理モジュールを含む複数の処理モジュールを備える第１パイプライン処理手段と、
前記第１パイプライン処理手段から分岐し、前記第１サイズとは異なる第２サイズ毎に画像データを処理する処理モジュールを含む複数の処理モジュールを備える第２パイプライン処理手段と、
を備え、
前記第２パイプライン処理手段は、前記第１パイプライン処理手段から前記第１サイズの部分画像データを取得し前記第２サイズの部分画像データに変更する変更手段を先頭に備えることを特徴とする画像処理装置。
【請求項２】
前記変更手段は、
前記第１サイズが前記第２サイズよりも大きい場合に、前記第２サイズに一致するように前記第１サイズの部分画像データの周辺部から所定サイズのデータを削除し、
前記第２サイズの部分画像データを後段の処理モジュールへ送信する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記変更手段は、
前記第１サイズが前記第２サイズよりも小さい場合に、前記第２サイズに一致するように前記第１サイズの部分画像データの周辺部に所定サイズのデータを付加し、
前記第２サイズの部分画像データを後段の処理モジュールへ送信する
ことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記第２パイプライン処理手段は、
前記第１パイプライン処理手段に合流するように構成され、
前記第２パイプライン処理手段の末尾に配置され、前記第２サイズの部分画像データから前記第１サイズの部分画像データに再変更する再変更手段を更に備える
ことを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
パイプライン接続されている複数の処理モジュールによって画像データを処理する画像処理装置であって、
画像データを第１サイズ毎に処理する処理モジュールを含む複数の処理モジュールを備える第１パイプライン処理手段と、
前記第１パイプライン処理手段へ合流し、前記第１サイズとは異なる第２サイズ毎に画像データを処理する処理モジュールを含む複数の処理モジュールを備える第２パイプライン処理手段と、
前記第２パイプライン処理手段の末尾に配置され、前記第２サイズの部分画像データを前記第１サイズの部分画像データに変更する変更手段と、
を備えることを特徴とする画像処理装置。
【請求項６】
前記変更手段は、
前記第２サイズが前記第１サイズよりも大きい場合に、前記第１サイズに一致するように前記第２サイズの部分画像の周辺部から所定サイズのデータを削除し、
前記第１サイズの部分画像データを後段の処理モジュールへ送信する
ことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記変更手段は、
前記第２サイズが前記第１サイズよりも小さい場合に、前記第１サイズに一致するように前記第２サイズの部分画像の周辺部に所定サイズの付加データを付加し、
前記第１サイズの部分画像データを後段の処理モジュールへ送信する
ことを特徴とする請求項５又は６に記載の画像処理装置。
【請求項８】
前記変更手段は、前段のモジュールから入力された画像データのうち、前記画像処理装置に入力された画像データに対応する有効領域に含まれる画像データを変更せずに、前記有効領域の周囲に位置する補助領域の画素数を変更した画像データを出力することを特徴とする請求項５に記載の画像処理装置。
【請求項９】
前記変更手段は、前記補助領域の一部又は全部を削除することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記変更手段は、前記前段のモジュールから入力された画像データに新たな補助領域を付加することを特徴とする請求項８に記載の画像処理装置。
【請求項１１】
前記第１パイプライン処理手段が備える前記複数の処理モジュールと前記第２パイプライン処理手段が備える前記複数の処理モジュールとを含む複数のモジュールは、リングバスによって接続されていることを特徴とする請求項１乃至１０のいずれか１項に記載の画像処理装置。
【請求項１２】
パイプライン接続されている複数の処理モジュールによって画像データを処理する画像処理装置の制御方法であって、
前記画像処理装置は、
画像データを第１サイズ毎に処理する処理モジュールを含む複数の処理モジュールを備える第１パイプライン処理手段と、
前記第１パイプライン処理手段から分岐し、前記第１サイズとは異なる第２サイズ毎に画像データを処理する処理モジュールを含む複数の処理モジュールを備える第２パイプライン処理手段と、
を備え、
前記制御方法は、
前記第２パイプライン処理手段の先頭に配置された変更手段が、前記第１パイプライン処理手段から取得した前記第１サイズの部分画像データを前記第２サイズの部分画像データに変更する工程を有することを特徴とする制御方法。
【請求項１３】
パイプライン接続されている複数の処理モジュールによって画像データを処理する画像処理装置の制御方法であって、
前記画像処理装置は、
画像データを第１サイズ毎に処理する処理モジュールを含む複数の処理モジュールを備える第１パイプライン処理手段と、
前記第１パイプライン処理手段へ合流し、前記第１サイズとは異なる第２サイズ毎に画像データを処理する処理モジュールを含む複数の処理モジュールを備える第２パイプライン処理手段と、
を備え、
前記制御方法は、
前記第２パイプライン処理手段の末尾に配置された変更手段が、前記第２サイズの部分画像データを前記第１サイズの部分画像データに変更する工程を有する
ことを特徴とする制御方法。
【請求項１４】
請求項１２又は１３に記載の制御方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来、複数のハードウェアで処理を並列に実行する方法として、特許文献１に記載されているようなバス型のパイプライン接続方式によるものがあった。しかしながら、この接続方式を用いると入力されたデータは、複数のプロセッサが物理的に接続された順序で処理され、出力端子において外部メモリ等へ出力される。したがって、複数のプロセッサに任意の処理順序でデータを処理させることができなかった。こうした課題を解決するために、プロセッサ間をリング型のバスで接続する方式がたとえば特許文献２、特許文献３および特許文献４により提案されている。
【０００３】
さらに、シグナルフローグラフの考え方を適用して、リングバス上に送出するデータに、このデータを最も直近に処理したプロセッサを特定可能にする送信元ＩＤ（識別子）を付加する方法がある。そして、送信元ＩＤが設定された送出データを、後続するプロセッサが待ち受けることにより、処理フローを分岐させることが出来る。以下では、この処理フローの分岐について簡単に説明する。
【０００４】
図１７は、データの処理を行う４つの処理部Ａ〜Ｄと、データの入出力を行う１つの入出力部２１０８とを含むリングバス型の処理ブロックを説明する図である。この処理ブロックでは、複数の通信部２１０３〜２１０７が環状に接続されており、通信部２１０３〜２１０７のそれぞれに対して、処理部Ａ〜Ｄのいずれか１つまたは入出力部２１０８が接続されている。図１８は、図１７の処理ブロックを用いて行われるデータの処理の論理的な接続関係を表すシグナルフローグラフの例を示す。シグナルフローグラフにおいて、矢印で示された辺は処理を表し、それぞれ処理部Ａ〜Ｄにおける処理に対応する。また、丸で示されたノードは処理の論理的な接続関係を表す。各ノードにはＩＤが付されている。通信部２１０３〜２１０７はそれぞれ送信元ＩＤレジスタおよび待ち受けＩＤレジスタを有する。送信元ＩＤレジスタは、通信部に接続された処理部を示す辺の終点のノードのＩＤが格納されている。送信元ＩＤレジスタに格納されたＩＤを送信元ＩＤと呼ぶ。通信部は、接続された処理部で処理が行われた場合に、自身の送信元ＩＤをデータに付して後段の通信部へ転送する。これにより、後段の通信部は転送されたデータを最も直近に処理した処理部を特定することができる。待ち受けＩＤレジスタは、通信部に接続された処理部を示す辺の始点のノードのＩＤを格納する。待ち受けＩＤレジスタに格納されたＩＤを待ち受けＩＤと呼ぶ。通信部は、自身の待ち受けＩＤと、受信したデータに付された送信元ＩＤとが一致する場合に、このデータを処理部に渡して処理させる。このように、通信部が送信元ＩＤレジスタおよび待ち受けＩＤレジスタを有することで、物理的に環状に接続された通信部を有する処理ブロックにおいて、処理フローを論理的に分岐することができる。以下、図１８を用いて、処理フローが分岐を有しない場合の具体例と処理フローが分岐を有する場合の具体例とをそれぞれ説明する。
【０００５】
図１８（ａ）は、まず入出力部２１０８がデータをリングバスに投入し、処理部Ａ、処理部Ｂ、処理部Ｃ、処理部Ｄが順にデータを処理し、入出力部２１０８が処理後のデータを外部メモリなどに送出する場合のシグナルフローグラフを示す。グラフによれば、処理部Ａに対応する辺はノード“１”からノード“２”へ接続されるので、処理部Ａに接続された通信部２１０４はノード“１”から受信したデータを処理部Ａに渡して処理し、処理後のデータをノード“２”へ送信する。そこで、通信部２１０４において、送信元ＩＤレジスタに“２”を格納し、待ち受けＩＤレジスタに“１”を格納しておく。
【０００６】
同様に、処理部Ｂに接続された通信部２１０５において、送信元ＩＤレジスタに“３”を格納し、待ち受けＩＤレジスタに“２”を格納しておく。処理部Ｃに接続された通信部２１０６において、送信元ＩＤレジスタに“４”を格納し、待ち受けＩＤレジスタに“３”を格納しておく。処理部Ｄに接続された通信部２１０７において、送信元ＩＤレジスタに“５”を格納し、待ち受けレジスタに“４”を格納しておく。
【０００７】
また、入出力部２１０８に接続された通信部２１０３において、送信元ＩＤレジスタに“１”を格納し、待ち受けＩＤレジスタに“５”を格納しておく。以上のように、各通信部２１０３〜２１０７に対して各レジスタの設定を所望の処理順序に従って行い、その後にデータ処理を開始すると、以下に示すようなデータ転送が行われる。
【０００８】
入出力部２１０８は、入力端子２１０１から入力されたデータを通信部２１０３に渡す。通信部２１０３は、受け取ったデータと、自身の送信元ＩＤである“１”とを有するパケットを生成して、後段の通信部２１０４へ転送する。通信部２１０４は、転送されたパケット内の送信元ＩＤと自身の待ち受けＩＤとを比較する。この例では一致するため、通信部２１０４はパケット内のデータを処理部Ａに入力する。そして、処理部Ａで処理されたデータと、自身の送信元ＩＤである“２”とを有するパケットを生成して、後段の通信部２１０５へ転送する。以下、同様に処理が行われ、処理部Ａ〜Ｄで順に処理されたデータを有し、送信元ＩＤとして“５”を有するパケットが通信部２１０７から通信部２１０３へ転送される。通信部２１０３はこのパケットからデータを取り出し、入出力部２１０８へ渡す。入出力部２１０８はこのデータを出力端子２１０２から出力する。
【０００９】
図１８（ｂ）は、処理フローが分岐を有する場合のシグナルフローグラフを示す。この処理フローでは、まず入出力部２１０８がデータをリングバスに投入し、処理部Ａがこのデータを処理し、このデータを処理部Ｂと処理部Ｃとがさらに処理し、この結果のデータを処理部Ｄが処理したデータを入出力部２１０８が外部メモリなどに送出する。図１８（ｂ）のように処理フローが分岐を有する場合でも、グラフに示される接続関係を満たすように、通信部２１０３〜２１０７の送信元ＩＤレジスタおよび待ち受けＩＤレジスタが設定される。すなわち、通信部２１０３において、送信元ＩＤレジスタに“１”を格納し、待ち受けＩＤレジスタに“４”を格納しておく。通信部２１０４において、送信元ＩＤレジスタに“２”を格納し、待ち受けＩＤレジスタに“１”を格納しておく。通信部２１０５と通信部２１０６とのそれぞれにおいて、送信元ＩＤレジスタに“３”を格納し、待ち受けＩＤレジスタに“２”を格納しておく。通信部２１０７において、送信元ＩＤレジスタに“４”を格納し、待ち受けＩＤレジスタに“３”を格納しておく。以上のように各レジスタを設定することで、処理フローを分岐させることが出来る。
【００１０】
上述のように、プロセッサ間をリング型のバスで接続する方式において処理フローを分岐ことができる。一方、実際の画像処理、例えばフィルタ処理などでは、注目画素を処理するために、注目画素の周囲の画素を参照することがある。このような処理において、入力画像の４つの辺の近くに位置する画素を処理するために、入力画像の外側の画素を参照しなければならない場合がある。このような周囲の画素を参照せずに処理を行う場合、フィルタ処理等で参照する周辺画素の幅分の画素を入力画像から削ってしまうことになるため、入力画像の画素数と出力画像の画素数とが異なってしまうという問題点が発生する。このような場合、複数の異なるフィルタ係数を持つフィルタに連続して通さなければならなくなるので画像処理に問題が起きやすい。なぜなら、フィルタをかける回数が多くなると画像の画素数がどんどん小さくなり、最終的な出力画像において有効な画像範囲を確保することが難しくなるためである。このため、図１９に示すように、入力画像２４０２に対してフィルタ処理を行う場合に、入力画像２４０２の端部に位置する画素に基づいて入力画像２４０２の外側の領域２４０１（斜線部）を作成する。そして、入力画像２４０２に領域２４０１を付加した画像２４０３をフィルタ処理する。以下、入力画像２４０２の外側の領域２４０１を補助領域と呼ぶ。補助領域を付加することにより、フィルタ処理により補助領域が消費されたとしても、入力画像２４０２と同じ画素数を有する出力画像を得ることができる。
【００１１】
特許文献５では、データに制御コードを付けてリング状のバスに送出し、制御コードに従ってデータの取り込みの制御を行うことが提案されている。この制御コードにより、オーバーラップ部のデータを複数のプロセッサで受信できるようにし、オーバーラップ部のデータを送付対象プロセッサごとに重複してリング上のバスに送出する。そして、複数のプロセッサのそれぞれにオーバーラップ部のデータ設定が行われ、データ処理がプロセッサごとに分割して行われる。また、特許文献６では、少ない内部メモリを効率よく使用して、入力されたデータを用い、周辺画素を生成する技術が提案されている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特許第２７３４２４６号公報
【特許文献２】特開平０１−０２３３４０号公報
【特許文献３】特許第２８３４２１０号公報
【特許文献４】特許第２５１８２９３号公報
【特許文献５】特開昭６３−２４７８５８号公報
【特許文献６】特開２００９−１５１５７１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
画像データを逐次的に処理する場合に、図１８（ｂ）に示すような分岐を有する処理フローを正しく処理が行えない場合が生じる。１つの例として、処理部Ｂが注目画素から上下左右５画素の領域を参照し、処理部Ｃが注目画素から上下左右３画素の領域を参照する場合を考える。この際、図１８（ｂ）に示す処理フローにおいて、処理部Ｂと処理部Ｃにはそれぞれ処理部Ａから同一の画像データが供給される。この画像データの画素数を仮に１００×１００画素とすると、処理部Ｂは、画像の上下左右から５画素ずつ消費して９０×９０画素の画像データを出力する。一方で、処理部Ｃは、画像の上下左右から３画素ずつ消費して９４×９４画素の画像データを出力する。このため、処理部Ｄは、異なる２つの画像の位置合わせのように、複雑な処理を行わなければならなくなる。
【００１４】
本発明は係る課題に鑑み、本発明の１つの側面は、画像データを逐次的に処理する画像処理装置において、分岐を有する処理フローを効率的に実行するための技術を提供する。
【課題を解決するための手段】
【００１５】
この課題を解決するため、本発明の１つの側面に係る画像処理装置は、パイプライン接続されている複数の処理モジュールによって画像データを処理する画像処理装置であって、画像データを第１サイズ毎に処理する処理モジュールを含む複数の処理モジュールを備える第１パイプライン処理手段と、前記１パイプライン処理手段から分岐し、前記第１サイズとは異なる第２サイズ毎に画像データを処理する処理モジュールを含む複数の処理モジュールを備える第２パイプライン処理手段とを有し、前記第２パイプライン処理手段は、前記第１パイプライン処理手段から前記第１サイズの部分画像データを取得し前記第２サイズの部分画像データに変更する変更手段を先頭に備えることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、画像データを逐次的に処理する画像処理装置において、分岐を有する処理フローを効率的に実行するための技術が提供される。
【図面の簡単な説明】
【００１７】
【図１】第１実施形態の画像処理装置の構成を示す図。
【図２】パケットの構造例を示す図。
【図３】通信部の構成を示す図。
【図４】受信部の構成を示す図。
【図５】送信部の構成を示す図。
【図６】無効化通信部の構成を示す図。
【図７】無効化部における処理のフローチャート。
【図８】第１実施形態における分岐フローの構成例を示す図。
【図９】第２実施形態における画像処理装置の構成を示す図。
【図１０】無効化通信部の受信部の構成を示す図。
【図１１】分岐を有する処理フローの各種構成例を示す図。
【図１２】第５実施形態の付加モジュールの構成を示す図。
【図１３】第５実施形態の付加部の処理のためのフローチャート。
【図１４】第６実施形態の付加通信部の受信部構成を示す図。
【図１５】画像処理装置の参考例の構成を示す図。
【図１６】パケットの構造の参考例を示す図。
【図１７】３つのデータ処理部、１つのデータ入出力部の場合の参考ブロック図。
【図１８】シグナルフローグラフの参考例を示す図。
【図１９】補助領域の例を示す図。
【図２０】第５実施形態の付加部の処理における出力部のフローチャート。
【発明を実施するための形態】
【００１８】
＜第１実施形態＞
まず、本実施形態の比較対象として、画像データを逐次的に処理する画像処理装置において、分岐フローが発生するとパイプラインを移動するパケットの利用効率が低下する例について説明する。
【００１９】
図１５は、通信路と複数のモジュールとを備える画像処理装置１９０１の例示の構成を示す。この例において複数のモジュールは通信路により物理的に直列に接続されている。このように物理的に直接に接続された複数のモジュールをパイプラインと呼ぶ。一列に並んだ各モジュールは、図において矢印で示されるように、前段のモジュール（図面で左側のモジュール）から転送された画像データを後段のモジュール（図面で右側のモジュール）へ転送する。画像処理装置１９０１は複数のモジュールとして、入力管理モジュール１９０２、出力管理モジュール１９０３、および処理モジュール１９０４を含む。入力管理モジュール１９０２は、外部メモリなどから処理対象の画像データを取得し、この画像データを後段のモジュールに転送する。出力管理モジュール１９０３は、前段のモジュールから転送された処理済みの画像データを外部メモリなどに出力する。処理モジュール１９０４は、前段のモジュールから転送された画像データの処理を必要に応じて行う。図１５に示す例において、画像処理装置１９０１は１つの入力管理モジュール１９０２、２つの出力管理モジュール１９０３、および３つの処理モジュール１９０４を備えるが、各モジュールの個数はこれに限定されない。例えば、画像処理装置１９０１は複数の入力管理モジュール１９０２を備えてもよく、この場合にそれぞれの入力管理モジュール１９０２が処理対象の画像データを取得する。
【００２０】
各モジュールは通信部１９０５を備える。通信部１９０５は画像データをパケットに格納してモジュール間の通信を行う。パケットの構造については後述する。入力管理モジュール１９０２はさらに入力部１９０６を備える。入力部１９０６は、外部メモリなどから画像データを取得し、後続の処理で消費される所定サイズの補助領域を周辺部に付して、通信部１９０５に渡す。出力管理モジュール１９０３はさらに出力部１９０７を備える。出力部１９０７は、通信部１９０５からのデータを画像データにまとめて外部メモリなどへ出力する。処理モジュール１９０４はさらに処理部１９０８を備える。処理部１９０８は通信部１９０５から受信した画像データに所定の処理を施して、処理後の画像データを通信部１９０５へ戻す。
【００２１】
図１６は、図１５の画像処理装置１９０１においてモジュール間の通信に用いられるパケットの構造を示す。フィールド２００１は、このパケットが保持している画像データが処理されるべきかどうかを示すフラグを格納する。すなわち、これはパケットが現在使用中であるかどうかを示す有効フラグと同じ意味である。以下、フィールド２００１内のフラグをＶＡＬＩＤビットと呼ぶ。例えば、ＶＡＬＩＤビットが“１”の場合に画像データが“有効”であることを示し、ＶＡＬＩＤビットが“０”の場合に画像データが“無効”であることを示す。
【００２２】
フィールド２００２は、このパケット内のデータを最も直近に処理したモジュールの送信元ＩＤを格納する。画像処理装置１９０１の複数のモジュールは、各モジュールを識別するために一意のＩＤを有する。例えば、図１５に示されるように、各モジュールはパイプラインの上流から下流に向けて順にＡからＦのＩＤを有する。各通信部１９０５は、送信元ＩＤレジスタおよび待ち受けＩＤレジスタを有し、送信元ＩＤ及び待ち受けＩＤがパイプライン処理に先立って設定されている。フィールド２００３はデータを格納する。データは画素値であってもよいし、コマンドであってもよい。
【００２３】
図１１を用いてパイプラインの分岐について説明する。図１１のグラフにおいて、四角で示されたノードはモジュールによる処理を表し、矢印は処理の順序や接続関係を表す。ここでは図１１（ａ）の例だけを説明し、他の例については後述する。図１１（ａ）に示す処理フローは６つのモジュールＡ〜Ｆで行われる処理により構成される。グラフの各ノードはモジュールＡ〜Ｆにおける処理に対応する。モジュールＡは入力管理モジュール１９０２であり、モジュールＢ、Ｃ、Ｄは処理モジュール１９０４であり、モジュールＥ、Ｆは出力管理モジュール１９０３である。この処理フローでは、まずモジュールＡが処理を行う。ここで、モジュールＡは入力管理モジュール１９０２であるため、モジュールＡにおける処理とはデータの取得である。次に、モジュールＡが処理したデータ、すなわち取得したデータをモジュールＢで処理する。モジュールＢは処理モジュールであるため、モジュールＢにおける処理とは処理部１９０８による処理である。モジュールＢで処理されたデータはモジュールＣとモジュールＤとの両方に転送されてそれぞれ処理される。最後に、出力管理モジュール１９０３であるモジュールＥ、Ｆがデータの出力を行う。図１１（ａ）に示された処理フローを実現するように、処理に先立って各通信部に送信元ＩＤおよび待ち受けＩＤを設定しておく。
【００２４】
ここで、図１１（ａ）に示される処理フローにおいて、モジュールＣ、Ｄの処理部がそれぞれ異なるサイズの補助領域を必要としている場合、どちらか一方にだけ適応できる補助領域を付加してしまうと、他方の処理が正しく行えなくなることがある。
【００２５】
これを避けるため、画像処理装置１９０１を２回に分けて起動し、Ａ、Ｂ、Ｃ、Ｅという順のパイプライン処理とＡ、Ｂ、Ｄ、Ｆという順のパイプライン処理を並行して行う手法が考えられる。例えば、入力管理モジュールＡ´をさらに１つ追加して、モジュールＡ、Ｂ、Ｃ、Ｅによる処理フローとモジュールＡ´、Ｂ、Ｄ、Ｆによる処理フローとを画像処理装置１９０１内に混在させる。
【００２６】
しかし、画像処理装置１９０１を２回に分けて起動する手法では、画像処理装置１９０１の起動処理や設定処理などのオーバーヘッドが必要となるため、画像処理全体として必要となる時間が増えてしまう。また、モジュールＡ−Ｂ間のパケット数が２倍になってしまうため、処理速度が低下する。
【００２７】
以下において、分岐を有する処理フローのうち、論理的に直列に接続された一連の部分の１つを第１処理フローと呼び、第１処理フローから分岐した部分を第２処理フローと呼ぶ。例えば、図１１（ａ）の例では、モジュールＡ〜Ｆによる処理で構成される処理フローのうち、モジュールＡ、Ｂ、Ｃ、Ｅ（第１モジュール群）が第１処理フローを実施し、モジュールＤ、Ｆ（第２モジュール群）が第２処理フローを実施する。第２処理フローは第１処理フローに合流してもよい。また、第２処理フローから更に分流する処理フローは第３処理フローと呼ぶ。ここで、図１１（ａ）の例では、モジュールＡ、Ｂ、Ｄ、Ｆが第１処理フローを実施し、モジュールＣ、Ｅが第２処理フローを実施すると表現してもよい。また、処理フローのうち、処理が並行している部分をそれぞれ分岐フローと呼ぶ。例えば、図１１（ａ）の例において、モジュールＤ、Ｆによる処理が第１分岐フローを構成し、モジュールＣ、Ｅによる処理が第２分岐フローを構成する。
【００２８】
図１は、本実施形態に係る画像処理装置１０１の全体構成を示す図である。画像処理装置１０１は、画像データを部分画像データ（ブロック、数ピクセル、画素）毎に処理する複数のモジュールを備えている。モジュールとして出力管理モジュール１０２、入力管理モジュール１０３、複数の処理モジュール１０４、および無効化モジュール１０５を備える。これらのモジュールの通信部１０６は直列に接続されている。一列に並んだ各モジュールは、図において矢印で示されるように、前段のモジュール（図面で左側のモジュール）から転送されたデータを後段のモジュール（図面で右側のモジュール）へ転送する。入力管理モジュール１０３はさらに入力部１０７を備える。出力管理モジュール１０２はさらに出力部１１０を備える。処理モジュール１０４はさらに処理部１０８を備える。無効化モジュール１０５はさらに無効化部１０９を備える。入力部１０７、出力部１１０、および処理部１０８はそれぞれ図１５の入力部１９０６、出力部１９０７、および処理部１９０８と同様のため重複する説明を省略する。無効化部１０９は、画像データの画素数を変更するため、設定値に応じてパケットに含まれる画像データの無効化を行う。画像データの無効化を行うことによって、補助領域のうち対応する画素を有する部分が削除される。また、無効化部１０９は、前段のモジュールから入力された画像データのうち、画像処理装置１０１に入力された画像データに対応する有効領域に含まれる画像データを変更しない。無効化部１０９は、有効領域の周囲に位置する補助領域の一部を削除した画像データを出力する。
【００２９】
図２は、図１の画像処理装置１０１においてモジュール間の通信に用いられるパケットの例示の構造を示す。フィールド２０１〜２０３は、図１６のフィールド２００１〜２００３と同様のため重複する説明を省略する。フィールド２０４は、フィールド２０３内の画像データの含む画素がページの先頭位置に属するか否か、すなわちこのパケットの含む画素がページの先頭の行に含まれるか否かを示すページスタートビット（以下、ＰＳビット）を格納する。ＰＳビットはこのパケットの含む画素がページ先頭位置に属する場合に“１”となり、属さない場合に“０”となる。フィールド２０５は、このパケットの含む画素がページの終端位置に属するか否か、すなわちこのパケットの含む画素がページの最後の行に含まれるか否かを示すページエンドビット（以下、ＰＥビット）を格納する。ＰＥビットはこのパケットの含む画素がページ終端位置に属する場合に“１”となり、属さない場合に“０”となる。フィールド２０６は、このパケットの含む画素がライン先頭位置に属するか否か、すなわちこのパケットの含む画素がページの先頭の列に含まれるか否かを示すラインスタートビット（以下、ＬＳビット）を格納する。ＬＳビットはこのパケットの含む画素がライン先頭位置に属する場合に“１”となり、属さない場合に“０”となる。フィールド２０７は、このパケットの含む画素がライン終端位置に属するか否か、すなわちこのパケットの含む画素がページの最後の列に含まれるか否かを示すラインエンドビット（以下、ＬＥビット）を格納する。ＬＥビットはこのパケットの含む画素がライン終端位置に属する場合に“１”となり、属さない場合に“０”となる。これまでに述べたＰＳビット、ＰＥビット、ＬＳビットおよびＬＥビットをまとめて画素位置属性情報と呼ぶ。本実施形態では、入力部１０７が取得した画像に補助領域を付してページを作成する。そして、入力部１０７がこのページの上部から下部に向かって、ラインごとに左から右に画素のスキャンを行い、１画素ずつ画素位置属性情報とともに画像データを入力管理モジュール１０３の通信部１０６へ渡す場合を扱う。しかし、本発明は、画像のスキャン方向によらず適用可能である。入力管理モジュール１０３の通信部１０６は入力部１０７から受信した画像データと画素位置属性情報とに基づいてパケットを生成し、このパケットを後続のモジュールへ転送する。
【００３０】
図３は、処理モジュール１０４の通信部１０６の例示の構成図である。通信部１０６は、バッファ３０１、受信部３０２、セレクタ３０３、および送信部３０４を備える。前段のモジュールからデータ信号線３０５を介して通信部１０６に転送されたパケットは、バッファ３０１と受信部３０２との両方へ入力される。バッファ３０１は、前段のモジュールから転送されたパケットを格納する。バッファ３０１は、データ信号線３１５を介して、格納しているパケットをセレクタ３０３と送信部３０４との両方へ出力する。バッファ３０１はまた、ＶＡＬＩＤ信号線３１３を介して、格納しているパケット内のＶＡＬＩＤビットを受信部３０２に出力する。受信部３０２は、前段のモジュールから転送されたパケット内の画像データを同一モジュール内の処理部１０８において処理すべきか否かを判定する。すなわち、受信部３０２は、パケット内のＶＡＬＩＤビットが有効であり、パケット内の送信元ＩＤと自身の待ち受けＩＤとが一致するか否かを判定する。処理すべきと判定した場合に、受信部３０２は、パケットから画像データおよび画素位置属性情報を取り出し、データ信号線３０９を介してこれらを同一モジュール内の処理部１０８へ送信する。これとともに、受信部３０２はＶＡＬＩＤ信号線３０８を介して処理部１０８へ有効であるＶＡＬＩＤ信号を送信する。さらに、受信部３０２は、ＶＡＬＩＤ信号線３１３を介して、バッファ３０１に格納されたパケット内のＶＡＬＩＤビットを無効にする。処理部１０８は、ＶＡＬＩＤ信号線３０８からのＶＡＬＩＤ信号が有効である場合にのみ受信部３０２から画像データおよび画素位置属性情報を受信して処理する。処理部１０８は例えばフィルタ処理などの画像処理を行い、画像データおよび画素位置属性情報を更新して通信部１０６へ戻す。
【００３１】
受信部３０２はまた、処理部１０８からＳＴＡＬＬ信号線３０７を介してＳＴＡＬＬ信号を受信する。受信部３０２は、処理部１０８からのＳＴＡＬＬ信号が有効である場合か、またはバッファ３０１内に格納されたパケットのＶＡＬＩＤビットが有効である場合に、ＳＴＡＬＬ信号線３０６を介して前段のモジュールへ有効であるＳＴＡＬＬ信号を送信する。これにより、前段のモジュールからのパケットの転送が抑制される。
【００３２】
セレクタ３０３は、セレクタ制御信号線３１７を介して送信部３０４から受信した制御信号に基づいて、バッファ３０１からのパケットと送信部３０４からのパケットとのいずれかを選択し、データ信号線３１８を介して後段のモジュールへ転送する。送信部３０４からの制御信号が有効でない限りセレクタはバッファ３０１からのパケットを選択する。
【００３３】
送信部３０４は、処理部１０８からＶＡＬＩＤ信号線３１１を介してＶＡＬＩＤ信号を受信する。ＶＡＬＩＤ信号が有効である場合にのみ、送信部３０４は、処理済の画像データおよび画素位置属性情報を処理部１０８からデータ信号線３１０を介して受信する。
【００３４】
送信部３０４は、バッファ３０１内のパケットのＶＡＬＩＤビットが無効であり、かつ処理部１０８からのＶＡＬＩＤ信号が有効であれば、処理部１０８から受信した画像データおよび画素位置属性情報をパケットに格納する。これとともに、送信部３０４はデータ信号線３１６を介してセレクタ３０３に送信し、このパケットを後段のモジュールへ送信することを指示するため、有効である制御信号をセレクタ３０３へセレクタ制御信号線３１７を介して送信する。送信部３０４はまた、後段のモジュールからＳＴＡＬＬ信号線３１４を介してＳＴＡＬＬ信号を受信する。後段のモジュールからのＳＴＡＬＬ信号が有効である場合に、送信部３０４は、ＳＴＡＬＬ信号線３１２を介して有効であるＳＴＡＬＬ信号を処理部１０８へ送信する。これとともに、送信部３０４はセレクタ３０３からのパケットの転送を抑制する。
【００３５】
入力管理モジュール１０３の通信部１０６も図３で示された構成と同様であるが、送信部３０４が入力部１０７からデータを受信する点で異なる。また、出力管理モジュール１０２の通信部１０６も図３で示された構成と同様であるが、受信部３０２が出力部１１０へデータを送信する点で異なる。無効化モジュール１０５の通信部１０６も図３で示された構成と同様であるが、処理部１０８の代わりに無効化部１０９と通信する点で異なる。
【００３６】
図４は、受信部３０２の例示の構成を示す図である。受信部３０２は、待ち受けＩＤレジスタ４０１、比較部４０２、および受信判定部４０３を備える。待ち受けＩＤレジスタ４０１は、前述の待ち受けＩＤを格納する。比較部ＩＤは、待ち受けＩＤと、前段のモジュールから転送されたパケット内の送信元ＩＤとを比較する。
【００３７】
比較部４０２は、送信元ＩＤと待ち受けＩＤとが一致する場合に、前段のモジュールから受信したパケット内のＶＡＬＩＤビットを受信判定部４０３へＶＡＬＩＤ信号線４０５を介して送信する。それとともに、比較部４０２は、前段のモジュールから受信したパケット内の画像データおよび画素位置属性情報を受信判定部４０３へデータ信号線４０４を介して送信する。
【００３８】
受信判定部４０３は、処理部１０８からのＳＴＡＬＬ信号が有効でない場合に、ＶＡＬＩＤ信号線４０５をＶＡＬＩＤ信号線３０８に接続し、データ信号線４０４をデータ信号線３０９に接続する。そして、受信判定部４０３は、ＶＡＬＩＤ信号線３１３を介してバッファ３０１へ無効であるＶＡＬＩＤ信号を送信する。つまり、受信判定部４０３は、処理部１０８がデータを処理する場合に、バッファ３０１に格納されたパケットのＶＡＬＩＤビットを無効にする。一方、受信判定部４０３は、処理部１０８からのＳＴＡＬＬ信号が有効である場合に、ＳＴＡＬＬ信号線３０６を介して前段のモジュールへ有効であるＳＴＡＬＬ信号を送信する。
【００３９】
図５は、送信部３０４の例示の構成を示す図である。送信部３０４は、出力制御部５０１、パケット生成部５０２および送信元ＩＤレジスタ５０３を備える。送信元ＩＤレジスタ５０３は前述の送信元ＩＤを格納する。
【００４０】
出力制御部５０１は、後段のモジュールからのＳＴＡＬＬ信号が有効である場合に、処理部１０８へのＳＴＡＬＬ信号を有効にして処理部１０８からの出力を抑制する。また、出力制御部５０１は、ＶＡＬＩＤ信号線５０４からのＶＡＬＩＤ信号が有効であり、後段のモジュールからのＳＴＡＬＬ信号が無効であり、かつバッファ３０１のＶＡＬＩＤビットが無効である場合に、セレクタ３０３へ有効である制御信号を送信する。そして更に、出力制御部５０１はデータ信号線５０５をデータ信号線３１６に接続する。それ以外の場合、例えばバッファ３０１に格納されているパケットのＶＡＬＩＤビットが有効である場合に、出力制御部５０１は無効である制御信号をセレクタ３０３へ送信する。無効である制御信号を受信したセレクタ３０３はバッファ３０１に格納されているパケットを後段のモジュールへ転送する。
【００４１】
パケット生成部５０２は、処理部１０８からのＶＡＬＩＤ信号が有効である場合に、パケットを内部バッファにて生成する。ここで生成されるパケットのフィールド２０１のＶＡＬＩＤビットには“１”（有効）が格納される。また、フィールド２０２には送信元ＩＤレジスタ５０３から取得された送信元ＩＤが格納される。フィールド２０３には処理部１０８から取得された処理済の画像データが格納される。フィールド２０４〜２０７には処理部１０８から取得された画素位置属性情報が格納される。パケット生成部５０２は生成したパケットを出力制御部５０１へデータ信号線５０５を介して送信するとともに、有効であるＶＡＬＩＤ信号を出力制御部５０１へＶＡＬＩＤ信号線５０４を介して送信する。
【００４２】
以上のように通信部１０６は、前段のモジュールからのパケット内のデータを処理すべき場合にこのパケットからデータを取り出して処理部１０８に処理させ、処理済みデータをパケットに格納して後段のモジュールに転送する。一方、通信部１０６は、前段のモジュールからのパケット内のデータを処理すべきでない場合に、このパケットを後段のモジュールへそのまま転送する。
【００４３】
図６は、無効化モジュール１０５の例示の構成を示す図である。通信部１０６の構成は前述したため、ここでは繰り返さない。無効化部１０９は、制御部６０１および後述する各種レジスタ、カウンタを備える。データ保持レジスタ６０２は受信部３０２からの画像データおよび画素位置属性情報を保持する。このレジスタは画像データおよび画素位置属性情報を格納できるだけのビット幅を有する。また、上端部無効数指定レジスタ６０３は、画像上端部において無効化する画素数を格納する。左端部無効数指定レジスタ６０４は、画像左端部において無効化する画素数を格納する。有効画像高さレジスタ６０９は、無効化モジュール１０５から出力する画像の高さを格納する。有効画像幅レジスタ６１０は、無効化モジュール１０５から出力する画像の幅を格納する。これらのレジスタの値はパイプライン処理の実行に先立って設定しておく。第１Ｙカウンタ６０５および第２Ｙカウンタ６０７は、垂直方向の画素数をカウントする。第１Ｘカウンタ６０６および第２Ｘカウンタ６０８は、水平方向の画素数をカウントする。
【００４４】
制御部６０１は無効化部１０９の制御を司り、上述のレジスタおよびカウンタの値に応じて、データ保持レジスタ６０２が保持するデータを送信部３０４に送信するか否かの判断を行う。制御部６０１は、信号線６１１を介してデータ保持レジスタ６０２から画素位置属性情報を取得し、上述のレジスタおよびカウンタの値に応じて、画素位置属性情報を補正する。制御部６０１は補正した画素位置属性情報をデータ保持レジスタに格納するとともに、通信部１０６へＶＡＬＩＤ信号を送信する。データ保持レジスタ６０２に格納されているデータおよび画素位置属性情報はデータ信号線３１０を介して送信部３０４へ送信される。
【００４５】
次に図７のフローチャートを用いて無効化部１０９の動作を説明する。画像処理装置１０１において画像を処理するパイプライン処理が開始されると、無効化部１０９は、以下のステップに従って動作する。ステップＳ７０１において、制御部６０１は、無効化部１０９が通信部１０６から画像データおよび画素位置属性情報を受信したという条件の成否を判定する。ステップＳ７０１の条件が成り立たない場合に、処理はステップＳ７０３に移り、制御部６０１は画像処理装置１０１に入力された画像データの処理が終了したかどうかを判定する。ステップＳ７０３で、画像データの処理が終了した場合にこのフローチャートによる処理は終了する。一方、ステップＳ７０３で画像データの処理が終了していない場合に、処理はステップＳ７０１へ戻る。
【００４６】
ステップ７０１の条件が成り立つ場合に、受信された画像データおよび画素位置属性情報はデータ保持レジスタ６０２に格納される。ステップＳ７０２で、制御部６０１はデータ保持レジスタ６０２に格納されているＰＳビットが有効であるか否かを判定する。ＰＳビットが有効であれば処理はステップＳ７０４に移り、有効でなければ処理はステップＳ７０５に移る。ステップ７０４で、制御部６０１は、第１Ｙカウンタ６０５の値（Ｙカウンタ＿１）、および第２Ｙカウンタ６０７の値（Ｙカウンタ＿２）をそれぞれ０に初期化する
【００４７】
ステップＳ７０５で、制御部６０１はデータ保持レジスタ６０２に格納されているＬＳビットが有効であるか否かを判定する。ＬＳビットが有効であれば処理はステップＳ７０６に移り、有効でなければ処理はステップＳ７０７に移る。ステップＳ７０６で、制御部６０１は第１Ｘカウンタ６０６の値（Ｘカウンタ＿１）および第２Ｘカウンタ６０８の値（Ｘカウンタ＿２）をそれぞれ０に初期化し、第１Ｙカウンタ６０５の値を１だけインクリメントする。ステップＳ７０７で、制御部６０１は第１Ｘカウンタ６０６の値を１だけインクリメントする。ステップＳ７０８で、制御部６０１は上端部無効数指定レジスタ６０３から上端部無効画素数を取得し、第１Ｙカウンタ６０５の値と比較する。そして、第１Ｙカウンタ６０５の値が上端部無効画素数以下である場合、ステップＳ７１２に処理が移り、制御部６０１は無効であるＶＡＬＩＤ信号を通信部１０６へ送信する。それ以外の場合には処理はステップＳ７０９に移る。
【００４８】
ステップＳ７０９で、制御部６０１は左端部無効数指定レジスタ６０４から左端部無効画素数を取得し、第１Ｘカウンタ６０６の値と比較する。そして、第１Ｘカウンタ６０６の値が左端部無効画素数以下である場合、ステップＳ７１２に処理が移り、制御部６０１は無効であるＶＡＬＩＤ信号を通信部１０６へ送信する。それ以外の場合には処理はステップＳ７１０に移る。
【００４９】
ステップＳ７１０で、制御部６０１は有効画像高さレジスタ６０９から有効画像高さを取得し、上端部無効画素数と有効画像高さとの和を第１Ｙカウンタ６０５の値と比較する。そして、第１Ｙカウンタ６０５の値がその和より大きい場合、ステップＳ７１２に処理が移り、制御部６０１は無効であるＶＡＬＩＤ信号を通信部１０６へ送信する。それ以外の場合には処理はステップＳ７１１に移る。
【００５０】
ステップＳ７１１で、制御部６０１は有効画像幅レジスタ６１０から有効画像幅を取得し、左端部無効画素数と有効画像幅との和を第１Ｘカウンタ６０６の値と比較する。そして、第１Ｘカウンタ６０６の値がその和より大きい場合、ステップＳ７１２に処理が移り、制御部６０１は無効であるＶＡＬＩＤ信号を通信部１０６へ送信する。それ以外の場合には処理はステップＳ７１３に移る。
【００５１】
ステップＳ７１３で、制御部６０１は、第２Ｘカウンタ６０８の値が０であるという条件の成否を判定する。この条件は、データ保持レジスタ６０２が保持する画像データが、無効画素分を入力画像から切り取った画像における１ラインの開始位置のものであることを意味する。ステップＳ７１３の条件が成り立つ場合に処理はステップＳ７１４に移り、制御部６０１はデータ保持レジスタ６０２が保持するＬＳビットに１を設定する。ステップＳ７１３の条件が成り立たない場合に処理はステップＳ７１７に移り、制御部６０１は第２Ｘカウンタ６０８の値を１だけインクリメントする。
【００５２】
ステップＳ７１５で、制御部６０１は、第２Ｙカウンタ６０７の値が０であるという条件の成否を判定する。この条件は、データ保持レジスタ６０２が保持する画像データが、無効画素分を入力画像から切り取った画像におけるページの先頭位置のものであることを意味する。ステップＳ７１５の条件が成り立つ場合に処理はステップＳ７１６に移り、制御部６０１はデータ保持レジスタ６０２が保持するＰＳビットに１を設定する。一方、ステップＳ７１５の条件が成り立たない場合に処理はステップＳ７１７に移り、制御部６０１は第２Ｘカウンタ６０８の値を１だけインクリメントする。
【００５３】
ステップＳ７１８で、制御部６０１は、第２Ｘカウンタ６０８の値が有効画像幅に等しいという条件の成否を判定する。この条件は、データ保持レジスタ６０２が保持する画像データの含む画素が、無効画素分を入力画像から切り取った画像における１ライン終端位置のものであることを意味する。ステップＳ７１８の条件が成り立つ場合に、処理はステップＳ７１９に移り、制御部６０１は、データ保持レジスタ６０２が保持するＬＥビットに１を設定する。そして、ステップＳ７２０で、制御部６０１は第２Ｙカウンタ６０７の値を１だけインクリメントする。一方、ステップＳ７１８の条件が成り立たない場合に、処理はステップＳ７２３に移る。
【００５４】
ステップＳ７２１で、制御部６０１は、第２Ｙカウンタ６０７の値が有効画像高さに等しいという条件の成否を判定する。この条件は、データ保持レジスタ６０２が保持する画像データの含む画素が、無効画素分を入力画像から切り取った画像におけるページ終端位置のものであることを意味する。ステップＳ７２１の条件が成り立つ場合に、処理はステップＳ７２２に移り、制御部６０１は、データ保持レジスタ６０２が保持するＰＥビットに１を設定する。一方、ステップＳ７２１の条件が成り立たない場合に、処理はステップＳ７２３に移る。
【００５５】
ステップＳ７２３で、制御部６０１は、有効であるＶＡＬＩＤ信号を通信部１０６へ送信する。その後、処理はステップＳ７０１へ戻る。
【００５６】
例えば図８に示すように、この場合の画像データに対するパイプライン処理は、第１処理フローを構成するモジュールＡ、Ｂ、Ｃ、Ｅ、Ｈによる第１パイプライン処理と、第２処理フローを構成するモジュールＦ、Ｇによる第２パイプライン処理とで行なわれる。このパイプライン処理において、モジュールＢから第１サイズの画素数の画像データが出力され、モジュールＦが第１サイズの画素数の画像データを処理対象とし、モジュールＥが第１サイズよりも小さい第２サイズの画素数の画像データを処理対象とするとする。すなわち、モジュールＦは第１サイズ毎に画像データを処理し、モジュールＥは第２サイズ毎に画像データを処理する。この場合に、モジュールＥの前段に無効化モジュールであるモジュールＣを設置し、モジュールＣが画像データの補助領域の不要な部分を削除した第２サイズの画像データをモジュールＥへ転送する。それにより、それぞれの分岐フロー上の処理モジュールに対して効率的に処理データの転送を行い所望の画像処理を行うことができる。
【００５７】
＜第２実施形態＞
第１実施形態では、処理フローの途中に無効化モジュールを設け、転送される画像の画素数が適切になるように補助領域を削除させることで、分岐フローごとに異なるサイズの補助領域の画像データを転送できることを示した。第２実施形態では通信部が補助領域を削除して処理部にデータを転送する例を示す。
【００５８】
第２実施形態を、図９から図１１を使って説明する。図９は本実施形態における画像処理装置１０１の例示の構成図である。図１と同様の要素は同一の参照符号を付して重複する説明を省略する。第２実施形態の画像処理装置１０１では、少なくとも一部の処理モジュール１０４が通信部１０６の代わりに無効化通信部９０１を備える。無効化通信部９０１は、不要な補助領域を削除して処理部にデータを転送する。無効化通信部９０１は、受信部３０２の代わりに図１０に示される受信部１００１を有する点で通信部１０６とは異なる。受信部１００１はさらに無効化部１００２を備える点で受信部３０２とは異なる。無効化部１００２は無効化部１０９と同様の構成を有する。
【００５９】
本実施形態の構成に従えば、図１１（ａ）に示すように、この場合の画像データに対するパイプライン処理は、第１処理フローを構成するモジュールＡ、Ｂ、Ｃ、Ｅによる処理と、第２処理フローを構成するモジュールＤ、Ｆによる処理とで行なわれる。モジュールＣとＤとが異なるサイズの補助領域を必要としている場合でも、モジュールＣ、Ｄが無効化通信部９０１を有するため、モジュールＣ、Ｄの両方の処理部１０８に必要なサイズの補助領域を有する画像データを送信することが可能になる。その結果、適切なサイズの画像データの転送を効率よく行い所望の画像処理を行うことが可能となる。
【００６０】
無効化通信部９０１が無効化を行う必要のない場合は、上端部無効数指定レジスタ６０３及び左端部無効数指定レジスタ６０４の値を０に指定する。そして、有効画像高さレジスタ６０９及び有効画像幅レジスタ６１０に処理部に前段モジュールから出力される画像の高さ及び幅を設定すればよい。
【００６１】
＜第３実施形態＞
第１実施形態および第２実施形態では処理フローが途中で２つに分流する例を示した。本実施形態では処理フローが途中で３つ以上に分流する例を示す。例えば、処理モジュールＢから処理モジュールＤ、Ｅ、Ｇへ処理フローが３つに分流し、処理モジュールＤ、Ｅ、Ｇが異なるサイズの補助領域を必要としている場合を考える。ここでは、処理モジュールＤが最も大きな補助領域を必要とするとする。この場合、図１１（ｂ）のように無効化モジュールＣ、Ｃ´をそれぞれモジュールＤ、Ｅの前段に配置する。すなわち、無効化モジュールは各分岐フローの最初のモジュールとなるように配置される。入力モジュールＡは処理モジュールＢから出力される画像が処理モジュールＧの必要とするサイズの補助領域を有するように、入力画像に補助領域を付加する。そして、２つの無効化モジュールＣ、Ｃ´は補助領域の不要な部分を削除し、処理モジュールＤ、Ｅの必要とする補助領域を有する画像を出力する。これにより、３つすべての分岐フローで所望の処理を行うことが可能となる。
【００６２】
また、図１１（ｃ）に示すように、無効化モジュールを配置する代わりに処理モジュールＤ、Ｅがそれぞれ第２実施形態の無効化通信部９０１を有するように構成してもよい。この場合も３つすべての分岐フローで所望の処理を行うことが可能である。
【００６３】
本実施形態では３つの分岐を有する例を示した。しかし、これ以外の個数の分岐の場合についても、所望の処理を行うことは可能である。すなわち、まずすべての分岐フロー中で最大のサイズの補助領域を必要とする分岐フローを特定する。そして、特定された処理フロー以外の処理フローに無効化モジュールを設置するか、無効化通信部９０１を配置する。
【００６４】
＜第４実施形態＞
上述の３つの実施形態では処理フローが途中で分流する例を説明した。本実施形態においては、処理フローが途中で合流する例を説明する。本実施形態においてパケットは第１実施形態同様、図２に示すような構造を有するとする。なお、本明細書では処理フローの分流と合流とをあわせて処理フローの分岐と呼んでいる。
【００６５】
例えば画像処理において合成処理などを行う場合に、２つの処理フローを途中で合流させる必要がある。例えば、図１１（ｄ）に示すようにモジュールＡ、Ｂ、Ｃ、Ｄによる処理で構成される第１処理フローに、モジュールＥ、Ｆによる処理で構成される第２処理フローがモジュールＣで合流する場合である。ここで、処理モジュールＢから出力される画像データの画素数が処理モジュールＦから出力される画像データの画素数よりも小さいとする。この場合に、何らの手当てをしないとモジュールＣが異なる画素数の画像データを処理することになる。
【００６６】
この場合に、無効化モジュールＧを処理モジュールＦの後段に配置することによって、処理モジュールＦから出力される画像データの補助領域の不要部分を無効化できる。すなわち、無効化モジュールＧは分岐フローの最後のモジュールとなるように配置される。更に、図１１（ａ）に示される処理フローの分流と図１１（ｄ）に示される処理フローの合流とを組み合わせてもよい。すなわち、第１処理フローから分流した第２処理フローが再度第１処理フローに合流してもよい。この場合に、第２処理フローの先頭で画素数が変更された画像データが、第２処理フローの末尾においてさらに画素数が再変更される。このように構成することで、前述した従来例では困難であった図１８（ｂ）のモジュールＣによる処理についても、問題なく処理することができる。
【００６７】
以上説明したように、第２処理フローが第１処理フローに合流する場合でも、所望の画像処理を行うことができる。すなわち、各分岐フローから得られる画像サイズが異なる場合でも、少なくともどちらか一方の処理フローに無効化モジュールを設け、後段のモジュールが受け取る画像の画素数を変更できるようにする。これにより、それぞれの合流先のモジュールへ効率的にデータを転送することができる。
【００６８】
＜第５実施形態＞
上述の４つの実施形態では処理フローが分流または合流する場合に、無効化部が補助領域の不要部分を削除する例を説明した。本実施形態では、パイプラインに付加モジュールを追加する場合を扱う。付加モジュールは後段のモジュールでの処理に必要な補助領域を生成し、画像の回りに付加した画像データを後段のモジュールに転送する。本実施形態においてパケットは図２に示すような構造を有するものとする。
【００６９】
本実施形態における全体構成は、第１実施形態における図１の構成と同様であり、画像処理装置は無効化モジュール１０５の代わりに付加モジュール１６０１を備える。図１２は、本実施形態の付加モジュール１６０１の構成を示す。付加モジュール１６０１の構成要素のうち、無効化モジュール１０５の構成要素と同様のものは同一の参照符号を付し、重複する説明を省略する。
【００７０】
付加データレジスタ１６０２は、補助領域を生成するときの画素値として利用する値を格納する。データ一時保持レジスタ１６０３は、前段のモジュールから受け取ったパケット内の画像データを一時的に保持する。制御部１６０４は、付加部１６０５の各処理を制御する。
【００７１】
上端部付加数指定レジスタ１６０６は、画像上端部において付加する補助領域の画素数を格納する。左端部付加数指定レジスタ１６０７は、画像左端部において付加数する補助領域の画素数を格納する。データ一時保持レジスタ１６０３は、最大でパケットを格納できるだけのビット幅を持つ。なお、データ一時保持レジスタにはパケット内のＶＡＬＩＤビット、送信元ＩＤ、ＰＳビット、ＰＥビット、ＬＳビット及びＬＥビットをも格納して構わない。付加部１６０５は、上述のレジスタおよびカウンタの値に応じて、画像の上部及び下部及び左部及び右部に必要な補助領域を生成し、画像に付して後段のモジュールに転送する。入力画像高さ保持レジスタ１６０８は付加部１６０５に入力される画像高さを格納する。入力画像幅保持レジスタ１６０９は付加部１６０５に入力される画像幅を格納する。付加部１６０５は、前段のモジュールから入力された画像データのうち、画像処理装置１０１に入力された画像データに対応する有効領域に含まれる画像データを変更しない。付加部１６０５は、有効領域の周囲に位置する補助領域に新たな補助領域を付加した画像データを出力する。
【００７２】
次に図１３のフローチャートを用いて付加部１６０５の動作を説明する。以下では、第１Ｙカウンタ６０５の値をＹカウンタ＿１、第１Ｘカウンタ６０６の値をＸカウンタ＿１、第２Ｙカウンタ６０７の値をＹカウンタ＿２、第２Ｘカウンタ６０８の値をＸカウンタ＿２と呼ぶ。
【００７３】
パイプライン処理が開始されると、付加部１６０５は以下のステップに従って処理を実行する。ステップＳ１７０１において、制御部１６０４は、付加部１６０５が通信部１０６からデータおよび画素位置属性情報を受信したか否かを判定する。付加部１６０５がデータおよび画素位置属性情報を受信していないと判定された場合に、処理はステップＳ１７０２に移り、制御部１６０４は入力された画像データの処理が終了したかどうかを判定する。ステップＳ１７０２で、画像データの処理が終了した場合にこのフローチャートによる処理は終了する。一方、ステップＳ１７０２で画像データの処理が終了していない場合に、処理はステップＳ１７０１へ戻る。ステップ１７０１でデータおよび画素位置属性情報を受信したと判定された場合に、受信されたデータおよび画素位置属性情報はデータ保持レジスタ６０２に格納される。
【００７４】
ステップＳ１７０３で、制御部１６０４は、取り込んだパケットのデータをデータ一時保持レジスタ１６０３に格納する。データ一時保持レジスタ１６０３に一時的に格納されるデータには画像データのほかにＶＡＬＩＤビット、送信元ＩＤ、ＰＳビット、ＰＥビット、ＬＳビット、ＬＥビットが含まれうるが、このうちの一部または全部が含まれていなくても構わない。
【００７５】
ステップＳ１７０４で、制御部１６０４は、データ一時保持レジスタ１６０３にデータが格納されていることを示すフラグであるデータ受信フラグを１に設定する。
【００７６】
ステップＳ１７０５で、制御部１６０４はデータ保持レジスタ６０２に格納されているＰＳビットが有効か否かを判定する。ＰＳビットが有効である場合に、処理はステップＳ１７０６に移る。そして、制御部１６０４は、データの入力画像縦位置を管理するカウンタである第１Ｙカウンタ６０５、出力画像縦位置を管理するカウンタである第２Ｙカウンタ６０７、ＬＥ受信フラグ、およびＰＥ受信フラグを０に初期化し、処理はステップＳ１７０７に移る。一方、ステップＳ１７０５でＰＳビットが無効である場合に処理はステップＳ１７０７に移る。
【００７７】
ステップＳ１７０７で、制御部１６０４はデータ保持レジスタ６０２に格納されているＬＳビットが有効か否かを判定する。ＬＳビットが有効である場合に、処理はステップＳ１７０８に移る。そして、制御部１６０４は第１Ｙカウンタ６０５の値を１だけインクリメントし、データの入力画像横位置を管理するカウンタである第１Ｘカウンタ６０６の値、出力画像横位置を管理するカウンタである第２Ｘカウンタ６０８の値を０に初期化する。そして、処理はステップＳ１７０９に移る。一方、ステップＳ１７０７でＬＳビットが無効である場合に処理はステップＳ１７０９に移る。
【００７８】
ステップＳ１７０９で、制御部１６０４はデータ保持レジスタ６０２に格納されているＬＥビットが有効か否かを判定する。ＬＥビットが有効である場合に、処理はステップＳ１７１０に移る。そして、制御部１６０４は、付加部１６０５に対する入力画像幅を保持する入力画像幅保持レジスタ１６０９に第１Ｘカウンタ６０６の値を代入し、さらにステップＳ１７１１でＬＥ受信フラグを１に設定し、処理はステップ１７１２に移る。一方、ステップＳ１７０９でＬＥビットが無効である場合に処理はステップＳ１７１２に移る。
【００７９】
ステップＳ１７１２で、制御部１６０４はデータ保持レジスタ６０２に格納されているＰＥビットが有効か否かを判定する。ＰＥビットが有効である場合に、処理はステップＳ１７１３に移る。そして、制御部１６０４は、付加部１６０５に対する入力画像高さを保持する入力画像高さ保持レジスタ１６０８に第１Ｙカウンタ６０５の値を代入し、さらにステップＳ１７１４にてＰＥ受信フラグを１に設定し、処理はステップ１７１５に移る。一方、ステップＳ１７１２でＬＥビットが無効である場合に処理はステップＳ１７１５に移る。
【００８０】
ステップＳ１７１５は出力処理であり、図２０を用いて説明する。ステップＳ２００１で、制御部１６０４はＳＴＡＬＬフラグを０に設定し、処理はステップＳ２００２に移る。ステップＳ２００２で、制御部１６０４は上端部付加数指定レジスタ１６０６の値が第２Ｙカウンタ６０７の値よりも大きいという条件の成否を判定する。ステップＳ２００２の条件が成り立つ場合に、処理はステップＳ２００６に移る。一方、ステップＳ２００２の条件が成り立たない場合に処理はステップＳ２００３に移る。
【００８１】
ステップＳ２００３で、制御部１６０４は第２Ｘカウンタ６０８の値よりも左端部付加数指定レジスタ１６０７の値が大きいという条件の成否を判定する。ステップＳ２００３の条件が成り立つ場合に処理はステップＳ２００６に移る。一方、ステップＳ２００３の条件が成り立たない場合に処理はステップＳ２００４に移る。
【００８２】
ステップＳ２００４で、制御部１６０４は第１Ｙカウンタ６０５の値と上端部付加数指定レジスタ１６０６の値との和が第２Ｙカウンタ６０７の値以下であるという条件の成否を判定する。ステップＳ２００４の条件が成り立つ場合に処理はステップＳ２００６に移る。一方、ステップＳ２００４の条件が成り立たない場合に処理はステップＳ２００５に移る。
【００８３】
ステップＳ２００５で、制御部１６０４は第１Ｘカウンタ６０６の値と左端部付加数指定レジスタ１６０７の値との和が第２Ｘカウンタ６０８の値以下であるという条件の成否を判定する。ステップＳ２００５の条件が成り立つ場合に処理はステップＳ２００６に移る。一方、ステップＳ２００５の条件が成り立たない場合に処理はステップＳ２００８に移る。
【００８４】
ステップＳ２００８で、制御部１６０４はデータ一時保持レジスタ１６０３のデータをデータ保持レジスタ６０２に上書きする。さらにステップ２００９で、制御部１６０４はデータ受信フラグに０を設定し、処理はステップＳ２０１０に移る。
【００８５】
ステップＳ２００６で、制御部１６０４は付加データレジスタ１６０２の値をデータ保持レジスタ６０２に上書きする。ステップＳ２００７で、制御部１６０４はＳＴＡＬＬフラグに１を設定し、処理はステップＳ２０１０に移る。
【００８６】
ステップＳ２０１０で、制御部１６０４はデータ保持レジスタ６０２のＰＳビット、ＰＥビット、ＬＳビット及びＬＥビットをそれぞれ０に設定する。ステップＳ２０１１で、制御部１６０４は第２Ｘカウンタ６０８の値が０であるという条件の成否を判定する。ステップＳ２０１１の条件が成り立つ場合に処理はステップＳ２０１２の処理に移り、成り立たない場合に処理はステップＳ２０１３に移る。ステップＳ２０１２で、制御部１６０４は、データ保持レジスタ６０２のＬＳビットを１に設定し、処理はステップＳ２０１７に移る。ステップＳ２０１７で、制御部１６０４は第２Ｙカウンタ６０７の値が０であるという条件の成否を判定する。ステップＳ２０１７の条件が成り立つ場合に処理はステップＳ２０１８の処理に移り、成り立たない場合に処理はステップＳ２０１９に移る。ステップＳ２０１８で、制御部１６０４はデータ保持レジスタ６０２のＰＳビットを１に設定し、処理はステップＳ２０１９に移る。
【００８７】
ステップＳ２０１３で、制御部１６０４は第２Ｘカウンタ６０８の値が有効画像幅レジスタ６１０の値から１を引いた値に等しいという条件の成否を判定する。ステップＳ２０１３の条件が成り立つ場合に処理はステップＳ２０１４に移り、制御部１６０４はデータ保持レジスタ６０２のＬＥビットを１に設定する。一方、ステップＳ２０１３の条件が成り立たない場合に、処理はステップＳ２０１９に移る。
【００８８】
ステップＳ２０１５で、制御部１６０４は第２Ｙカウンタ６０７の値が有効画像高さレジスタ６０９の値から１を引いた値に等しいという条件の成否を判定する。ステップＳ２０１５の条件が成り立つ場合に処理はステップＳ２０１６に移り、制御部１６０４はデータ保持レジスタ６０２のＰＥビットを１に設定する。一方、ステップＳ２０１５の条件が成り立たない場合に処理はステップＳ２０１９に移る。ステップＳ２０１９で、制御部１６０４は第２Ｘカウンタ６０８の値をインクリメントする。
【００８９】
ステップＳ２０２０で、制御部１６０４は第２Ｘカウンタ６０８の値が有効画像幅レジスタ６１０の値に等しいという条件の成否を判定する。ステップＳ２０２０の条件が成り立つ場合に処理はステップＳ２０２１に移り、制御部１６０４は第２Ｘカウンタ６０８の値を０に初期化し、第２Ｙカウンタ６０７の値を１だけインクリメントする。一方、ステップＳ２０２０の条件が成り立たない場合に処理はステップＳ２０２２に移る。
【００９０】
ステップＳ２０２２で、制御部１６０４は第２Ｙカウンタ６０７の値が有効画像高さレジスタ６０９の値に等しいという条件の成否を判定する。ステップＳ２０２２の条件が成り立つ場合に、処理はステップＳ２０２３に移り、制御部１６０４は第２Ｙカウンタ６０７の値を０に初期化する。一方、ステップＳ２０２２の条件が成り立たない場合に処理はステップＳ２０２４に移る。
【００９１】
ステップＳ２０２４で、制御部１６０４はデータ保持レジスタ６０２のＶＡＬＩＤビットに１を設定する。そして、ステップＳ２０２５で、制御部１６０４は通信部１０６に対してデータ保持レジスタ６０２に格納されているデータをパケットに格納して後段のモジュールに転送するように指示し、処理はステップＳ２０２６に移る。
【００９２】
ステップＳ２０２６で、制御部１６０４はデータ受信フラグが１に等しいという条件の成否を判定する。ステップＳ２０２６の条件が成り立つ場合に処理はステップＳ２０２７に移る。ステップＳ２０２７で、制御部１６０４はＳＴＡＬＬフラグを１に設定する。ステップＳ２０２６の条件が成り立たない場合は、処理はステップＳ２０２８に移る。
【００９３】
ステップＳ２０２８で、制御部１６０４はＬＥ受信フラグが１に等しいという条件の成否を判定する。ステップＳ２０２８の条件が成り立つ場合に処理はステップ２０２９に移る。ステップＳ２０２９で、制御部１６０４は、有効画像幅レジスタ６１０の値から入力画像幅保持レジスタ１６０９の値と左端部付加数指定レジスタ１６０７の値との和を引いた結果が０より大きいという条件の成否を判定する。ステップＳ２０２９の条件が成り立つ場合に処理はステップＳ２０３０に移る。ステップＳ２０３０で、制御部１６０４は、第２Ｘカウンタ６０８の値が入力画像幅保持レジスタ１６０９の値から１を引いたものに左端部付加数指定レジスタ１６０７の値を加えた結果よりも大きいという条件の成否を判定する。ステップＳ２０３０の条件が成り立つ場合に処理はステップＳ２０３１に移る。ステップＳ２０３１で、制御部１６０４はＳＴＡＬＬフラグを１に設定する。ステップＳ２０２８、ステップＳ２０２９およびステップＳ２０３０のいずれかの条件が成り立たない場合に、処理はステップＳ２０３２に移る。
【００９４】
ステップＳ２０３２で、制御部１６０４は、データ保持レジスタ６０２のＬＥビットが１に等しいという条件の成否を判定する。ステップＳ２０３２の条件が成り立つ場合に、処理はステップＳ２０３３に移り、制御部１６０４はＳＴＡＬＬフラグを０に設定し、処理はステップＳ２０３４に移る。
【００９５】
ステップＳ２０３４で、制御部１６０４は、ＰＥ受信フラグが１に等しいという条件の成否を判定する。ステップＳ２０３４の条件が成り立つ場合に処理はステップ２０３５に移る。ステップＳ２０３５で、制御部１６０４は、有効画像高さレジスタ６０９の値から入力画像高さ保持レジスタ１６０８の値と上端部付加数指定レジスタ１６０６の値との和を引いた結果が０より大きいという条件の成否を判定する。ステップＳ２０３５の条件が成り立つ場合に処理はステップＳ２０３６に移る。ステップＳ２０３６で、制御部１６０４は、第２Ｙカウンタ６０７の値が入力画像高さ保持レジスタ１６０８の値から１を引いたものに上端部付加数指定レジスタ１６０６の値を加えた結果よりも大きいという条件の成否を判定する。ステップＳ２０３６の条件が成り立つ場合に処理はステップＳ２０３７に移る。ステップＳ２０３７で、制御部１６０４はＳＴＡＬＬフラグを１に設定する。ステップＳ２０３４、ステップＳ２０３５およびステップＳ２０３６のいずれかの条件が成り立たない場合は、処理はステップＳ２０３８に移る。
【００９６】
ステップＳ２０３８で、制御部１６０４は、データ保持レジスタ６０２のＰＥビットが１に等しいという条件の成否を判定する。ステップＳ２０３８の条件が成り立つ場合に、処理はステップＳ２０３９に移る。ステップＳ２０３９で、制御部１６０４は、ＳＴＡＬＬフラグを１に設定し、処理はステップＳ２０４０に移る。ステップＳ２０３８の条件が成り立たない場合、処理はステップＳ２０４０に移る。
【００９７】
ステップＳ２０４０で、制御部１６０４はＳＴＡＬＬフラグが１に等しいという条件を判定する。ステップＳ２０４０の条件が成り立つ場合に、処理はステップＳ２０４１に移る。ステップＳ２０４１で、制御部１６０４は通信部１０６に有効であるＳＴＡＬＬ信号を送信する。通信部１０６はこのＳＴＡＬＬ信号を前段のモジュールへ転送するため、前段のモジュールはパケットの転送を一時的に停止する。その後、処理はステップＳ２００１に移る。Ｓ２０４０の条件が成り立たない場合に処理は終了する。
【００９８】
例えば先程の図８の例において、処理モジュールＥの必要とする画像データの画素数が処理モジュールＦの必要とする画像データの画素数よりも大きいとする。この場合に、モジュールＣとして付加モジュールを配置することによって、処理モジュールＢから転送された画像データを、モジュールＥ、Ｆの両方の処理部の処理に適した画素数にすることができる。これにより、分岐フロー上の処理モジュールに対して効率的に処理データの転送を行い所望の画像処理を行うことができる。
【００９９】
＜第６実施形態＞
第５実施形態では、処理フローの途中に付加モジュールを設け、転送される画像の画素数が適切になるように補助領域を付加させることで、分岐フローごとに異なるサイズの補助領域の画像データを転送できることを示した。第６実施形態では通信部が補助領域を付加して処理部にデータを転送する例を示す。
【０１００】
第５実施形態の画像処理装置では、少なくとも一部の処理モジュール１０４が通信部１０６の代わりに付加通信部（不図示）を備える。付加通信部は、画像データに必要な補助領域を付加して処理部に転送する。付加通信部は、受信部３０２の代わりに図１４に示される受信部１８０１を有する点で通信部１０６とは異なる。受信部１８０１はさらに付加部１８０２を備える点で受信部３０２とは異なる。付加部１８０２は付加部１６０５と同様の構成を有する。
【０１０１】
本実施形態の構成に従えば、図１１（ａ）に示すように、この場合の画像データに対するパイプライン処理は、第１処理フローを構成するモジュールＡ、Ｂ、Ｃ、Ｅによる処理と、第２処理フローを構成するモジュールＤ、Ｆによる処理とで行なわれる。モジュールＣとＤとが異なるサイズの補助領域を必要としている場合でも、モジュールＣ、Ｄが付加通信部を有せば、モジュールＣ、Ｄの両方の処理部１０８に必要なサイズの補助領域を有する画像データを送信することが可能になる。その結果、適切なサイズの画像データの転送を効率よく行い所望の画像処理を行うことが可能となる。
【０１０２】
無効化通信部９０１が無効化を行う必要のない場合は、上端部付加数指定レジスタ１６０６及び左端部付加数指定レジスタ１６０７の値を０に指定する。さらに、有効画像高さレジスタ６０９及び有効画像幅レジスタ６１０に処理部に前段モジュールから出力される画像の高さ及び幅を設定すればよい。また、付加する画素値に関しては終端画素を記憶しておき、それを指定された画素数だけ付加してもよいし、終端近辺の指定された領域の画素値を記憶しておきそれを鏡像形式で出力してもよい。
【０１０３】
＜第７実施形態＞
第３実施形態と同様に、処理フローが複数に分岐する場合に付加モジュール又は付加通信部を有する処理モジュールを配置することによって、各処理モジュールに適切な画素数の画像データを入力することができる。本実施形態では、分岐フローのうち、最小の画素数の補助領域を必要とする分岐フローを特定し、その分岐フローに併せた補助領域を付加して入力管理モジュール１０３が画像データを入力する。そして、不足分の補助領域を各付加モジュールが追加する。また、各処理モジュールの前段に付加モジュールを設置するか、通信部１０６を付加通信部に置き換えることで、入力管理モジュール１０３において補助領域を負荷する必要がなくなる。
【０１０４】
＜第８実施形態＞
例えば、図１１（ｆ）に示すように処理フローが２箇所以上で分岐しており、処理モジュールＤは上下に２画素、処理モジュールＥは上下に３画素、処理モジュールＨは上下に１画素の補助領域が必要な場合を説明する。図１１（ｆ）に示すように無効化モジュールＣ、Ｃ´をそれぞれ処理モジュールＤ、Ｅの前段に配置し、さらに付加モジュールＧを処理モジュールＨの前段に配置する。そして、処理モジュールＢから上下に３画素の補助領域が付加された画像データが出力されるように入力管理モジュールＡが入力画像に補助領域を付す。この場合に、無効化モジュールＣが上下１画素ずつ補助領域を削除し、付加モジュールＧが上下１画素ずつ補助領域を付加すれば、処理モジュールＤ、Ｅ、Ｇのいずれにおいても必要な画素数の補助領域を有する画像データが入力される。このように、無効化モジュールと付加モジュールとを組み合わせることにより、一層柔軟に処理フローを構成することが可能になる。
【０１０５】
＜第９実施形態＞
上述した各実施形態では各モジュールがパイプライン接続されている例を説明した。しかし、いずれの実施形態でも、各モジュールがパイプラインの代わりにリングバスにて接続されていても構わない。この場合も、上述した各実施形態と同様に処理を行うことができる。
【０１０６】
＜第１０実施形態＞
例えば、図１１（ａ）に示すように処理フローが２箇所以上で分岐している場合を考える。処理モジュールＤがサムネイル画像生成処理などの倍率の大きな変倍処理を行うものであり、処理モジュールＦは入力画像のヒストグラムなどの画素に関する度数分布分析を行う処理であるとする。この場合、処理モジュールＤにおいては、変倍処理に特有の周辺画素の参照だけでなく、例えば、１次補間処理であれば、周辺２カラム・２ライン以上の画像は参照しないため、入力画像の補助領域を削除する等の動作が行われることもある。このように、処理モジュールのアルゴリズムによっては、出力画像に影響しない入力画像領域を削除する動作をするものが存在しうる。このような場合、出力される画像には現れない領域について処理モジュールＦでヒストグラムをとることは、出力画像に対するヒストグラムとして正しくない。よって、このような実施例においても、モジュールＥにおいて、またはモジュールＦに追加して補助領域の削除・付加を行うことで、モジュールＤで全く参照しない画素領域を削除してもよい。これにより、モジュールＤが出力する画像領域に対する正しい分析結果を得ることが可能となる。このように、単に入力として必要とされる領域の差のみを削除・付加するだけでなく、処理アルゴリズムの特性に従った削除・付加をおこなってもよい。
【０１０７】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005835942.tif 000002
【図２】
0005835942.tif 000003
【図３】
0005835942.tif 000004
【図４】
0005835942.tif 000005
【図５】
0005835942.tif 000006
【図６】
0005835942.tif 000007
【図８】
0005835942.tif 000008
【図９】
0005835942.tif 000009
【図１０】
0005835942.tif 000010
【図１１】
0005835942.tif 000011
【図１２】
0005835942.tif 000012
【図１４】
0005835942.tif 000013
【図１５】
0005835942.tif 000014
【図１６】
0005835942.tif 000015
【図１７】
0005835942.tif 000016
【図１８】
0005835942.tif 000017
【図１９】
0005835942.tif 000018
【図７】
0005835942.tif 000019
【図１３】
0005835942.tif 000020
【図２０】
0005835942.tif 000021