(57)【特許請求の範囲】
【請求項１】
プログラマブルなデータ処理部、画像データの記憶部、及び複数の処理プログラムの記憶部を有し、且つ、前記データ処理部は、同時に処理が可能な複数の処理部を具備し、
前記複数の処理部はそれぞれ、前記画像データの記憶部から画像データを読み込み、前記処理プログラムの記憶部から処理プログラムを読み込み、前記読み込んだ画像データに対して、前記読み込んだ処理プログラムを並列に実行し、処理後の画像データを前記画像データの記憶部に戻す処理を繰り返す画像処理装置において、
少なくとも一部の処理部（以下、第１の処理部）は、処理後の画像データを別の処理部（以下、第２の処理部）に転送し、
前記第２の処理部は、前記第１の処理部から転送された画像データに対して、所定の処理を実行して、処理後の画像データを前記画像データの記憶部に戻し、
前記第１の処理部は、前記処理後の画像データを前記第２の処理部に転送すると、前記第２の処理部での処理と並行して、前記処理プログラムの記憶部から次の処理プログラムを読み込み、前記画像データの記憶部から前記第２の処理部による処理後の画像データを読み込み、該画像データに対して次の処理を実行することを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記データ処理部の複数の処理部における、前記画像データの記憶部からの画像データの読み込み動作及び前記処理プログラムの記憶部からの処理プログラムの読み込み動作を制御する制御手段をさらに有することを特徴とする画像処理装置。
【請求項３】
同時に処理可能な複数の処理部を備えたプログラマブルなデータ処理部、画像データの記憶部、及び複数の処理プログラムの記憶部を有し、前記複数の処理部はそれぞれ、前記画像データの記憶部から画像データを読み込み、前記処理プログラムの記憶部から処理プログラムを読み込み、前記読み込んだ画像データに対して、前記読み込んだ処理プログラムを並列に実行し、処理後の画像データを前記画像データの記憶部に戻す処理を繰り返す画像処理装置における画像処理制御方法であって、
少なくとも一部の処理部（以下、第１の処理部）は、処理後の画像データを別の処理部（以下、第２の処理部）に転送し、
前記第２の処理部は、前記第１の処理部から転送された画像データに対して、所定の処理を実行して、処理後の画像データを前記画像データの記憶部に戻し、
前記第１の処理部は、前記処理後の画像データを前記第２の処理部に転送すると、前記第２の処理部での処理と並行して、前記処理プログラムの記憶部から次の処理プログラムを読み込み、前記画像データの記憶部から前記第２の処理部による処理後の画像データを読み込み、該画像データに対して次の処理を実行することを特徴とする画像処理制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル複写機、ファクシミリ装置、プリンタ等の単体機器、あるいは、これらやスキャナ等の一部あるいは全部の処理機能を複合した複合機（ＭＦＰ）、さらには、その他の画像データ処理機器に適用される画像処理装置及び画像処理制御方法に関する。
【背景技術】
【０００２】
デジタル複写機などの画像処理装置では、例えば、ライン間補正やシェーディング補正、ＭＴＦ（空間周波数特性）フィルタリング、ガンマ変換、階調処理などの処理機能が必要である。また、複合機（ＭＦＰ）では、コピー機能、スキャナ機能、ファクシミリ機能、プリンタ機能等が１台の画像処理装置に要求される。
【０００３】
従来の画像処理装置では、一般に複数の独立の専用処理部を有するデータ処理ハードウエア（ＡＳＩＣ）を用いることで、複数の処理機能を実現していた（例えば、特許文献１、特許文献２参照）。
【０００４】
図１４に、従来の複数の専用処理部を有するデータ処理ハードウエアを使用した画像処理装置のシステム構成例を示す。図１４では簡単化のために、データ処理ハードウエア（ＡＳＩＣ）１１００は３つの独立の専用ハード処理部１１１０、１１２０、１１３０からなるとしているが、一般には、それ以上の処理部を有している。ここで、処理部１１１０は、画像の処理Ａを実行する処理ブロック（処理Ａブロック）１１１１及び該処理ブロック専用のデータメモリ（Ａ専用データメモリ）１１１２で構成される。同様に、処理部１１２０は処理Ｂブロック１１２１及びＢ専用データメモリ１１２２で構成され、処理部１１３０は処理Ｃブロック１１３１及びＣ専用データメモリ１１３２で構成される。又、処理部１１１０、１１２０、１１３０の間は内部バスで接続されている。
【０００５】
図１４の画像処理装置は、このような専用ハード処理部１１１０、１１２０、１１３０を有するデータ処理ハードウエア（ＡＳＩＣ）１１００、スキャナなどで原稿等を読み取る画像読み取り部１２００、プリンタなどで画像データを紙などのメディアに出力する画像出力部１３００、外部メディア（ＣＤ、ＤＶＤ、ＳＤカード等）や外部装置（パソコン等）と画像データを送受信する外部インターフェース部（外部Ｉ／Ｆ部）１４００、データ処理ハードウエア（ＡＳＩＣ）１１００の作業用メモリであるデータメモリ１５００、ハードディスクなどでバックアップや再利用等のために画像データを保存しておく大容量記憶部１６００、及び、装置全体の動作を制御する制御部１７００等が、システムバス１８００を介して接続されている。なお、データメモリ１５００は、データ処理ハードウェア１１００だけでなく、画像読み取り部１２００、画像出力部１３００、外部インターフェース部（外部Ｉ／Ｆ部）１４００、データメモリ１５００、大容量記憶部１６００、及び、制御部１７００の作業用メモリとしても使用される。
【０００６】
図１５は、一例として、画像読み取り部１２００などから入力された画像データを、専用データ処理ハードウエア（ＡＳＩＣ）１１００内でＡ処理→Ｂ処理→Ｃ処理の順番に３種の画像処理を実行して画像出力部１３００などに出力する場合の処理フローを示した図である。まず、ハードロジックの処理Ａブロック１１１１が、Ａ専用データメモリ１１１２を使用して、入力画像データに対して処理Ａを実行し、処理結果の画像データを処理ブロック１１２１に転送する。処理Ｂブロック１１２１は、Ｂ専用データメモリ１１２２を使用して、処理Ａブロック１１１１から転送された画像データに対して処理Ｂを実行し、処理結果の画像データを処理Ｃブロック１１３１に転送する。処理Ｃブロック１１２１は、Ｃ専用データメモリ１１３２を使用して、処理Ｂブロック１１２１から転送された画像データに対して処理Ｃを実行して出力する。ここで、どの処理ブロックを動作させるかは、例えば、制御部１７００が司る。
【０００７】
図１４に示した画像処理装置のように、複数の専用処理部を有するデータ処理ハードウエア（ＡＳＩＣ）を使用する利点は、速度性能が優れていることであるが、その反面、ハードロシックのため、機能変更や追加の柔軟性に欠けるという欠点がある。これの解決策として、ＤＳＰ（デジタル信号プロセッサ）のようなプログラマブルデバイスを用いる場合がある。
【０００８】
図１６に、プログラマブルデバイス（ＤＳＰ）を用いて、複数の処理機能を実現する従来の画像処理装置のシステム構成例を示す。図１６の画像処理装置は、ＡＳＩＣのデータ処理ハードウエアをＤＳＰのプログラマブルデバイス２１００に置き替えた以外、図１４のシステム構成と基本的に同様である。プログラマブルデバイス２１００には、あらかじめ複数の処理機能に対応した複数のプログラム（ここでは、処理Ａ用プログラム、処理Ｂ用プログラム、処理Ｃ用プログラムとする）がそれぞれプログラムメモリ領域２１１１、２１１２、２１１３にロードされている。また、各処理プログラム用にそれぞれデータメモリ領域があらかじめ確保されている。ここでは、Ａ用データメモリ領域２１２１、Ｂ用データメモリ領域２１２２、Ｃ用データメモリ領域２１２３とする。
【０００９】
図１７は、一例として、画像読み取り部２２００などから入力された画像データを、プログラマブルデバイス（ＤＳＰ）２１００でＡ処理→Ｂ処理→Ｃ処理の順番に３種の画像処理を実行して画像出力部２３００などに出力する場合の処理フローを示した図である。まず、プログラムメモリ領域２１１１の処理Ａ用プログラムにより、Ａ用データメモリ領域２１２１を使用して、入力画像データに対して処理Ａを実行する。次に、プログラムメモリ領域２１１２の処理Ｂ用プログラムにより、Ｂ用データメモリ領域２１２２を使用して、処理Ａ用プログラムで処理された画像データに対して処理Ｂを実行する。最後に、プログラムメモリ領域２１１３の処理Ｃ用プログラムにより、Ｃ用データメモリ領域２１２３を使用して、処理Ｂ用プログラムで処理された画像データに対し処理Ｃを実行して出力する。どの処理プログラムを動作させるかは、例えば、制御部２７００が司る。
【００１０】
ＤＳＰのようなプログラマブルデバイスを使用する利点は、ＤＳＰ内の処理プログラムをダウンロードし直すことで、処理機能の変更・追加に柔軟に対処できることであるが、その反面、ソフト処理のため、専用のハードロジックに比べて速度性能が劣るという欠点がある。さらに、従来のプログラマブルデバイスでは処理用のプログラムメモリ及びデータメモリが各処理分必要であるため、コスト高になるという欠点がある。
【００１１】
このように、ＡＳＩＣ使用の画像処理装置とＤＳＰ使用の画像処理装置には一長一短があり、それぞれ使い分けているのが現状である。
【００１２】
【特許文献１】特開平８−２７４９８６号公報
【特許文献２】米国特許第５７１５０７０号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１３】
近年の複合機（ＭＦＰ）では、コピー機能、スキャナ機能、ファクシミリ機能、プリンタ機能等の強化により、処理フローが多様化・複雑化している。これはユーザの多様な要求に対応するために、種々の処理機能を搭載する必要があることによる。さらに、ユーザの画質性能への要求も強く、高画質化に対応するために、画像処理も増大する傾向にある。なお、処理フローの多様化・複雑化は、複合機に限らず、デジタル複写機、ファクシミリ装置、プリンタ等の単体機器、その他の画像データ処理機器でも同様である。
【００１４】
このため、ＡＳＩＣなどに代表される実際に画像処理を行うハードウエア部は肥大化し、製造コストが高くなるという問題が発生している。特にＡＳＩＣなどのデータ処理ハードウエアにおいては、上述のように内部に処理専用ブロックと処理専用メモリが必要な処理機能分だけ複数配置される構成であり、要求される処理機能を維持しながらのコスト削減は困難である。さらに、あらかじめ内部に専用ハードウエアロジックを構成し処理機能を実現するため、その後の処理変更や追加などの柔軟性に欠ける根本的問題がある。
【００１５】
一方、ＤＳＰのようなプログラマブルデバイスは、速度性能やコスト面ではＡＳＩＣなどに比べて劣るものの、ユーザの要求などに対し、その都度、機能を自由にプログラミングできる自由度の高さが最大の長所である。すなわち、行いたい処理機能をプログラミングし、プログラムコードをＤＳＰなどにダウンロードすることで、処理変更や追加が容易に実現できる。しかしながら、従来のＤＳＰなどのプログラマブルデバイスを用いた画像処理装置においては、上述のように、複数の処理機能を実行する場合、各処理分のプログラムメモリとデータメモリを必要とするため、ＤＳＰなどの規模が増大し、ＡＳＩＣなどに比べて高コストが、さらに増加する問題があった。
【００１６】
本発明は、上記の課題に鑑み、プログラミングの自由度を担保しながらも、メモリ増大を抑制して低コスト化を実現し、かつ、処理性能が向上する画像処理装置及び画像処理制御方法を提供することにある。
【課題を解決するための手段】
【００１７】
本発明は、プログラマブルなデータ処理部、画像データの記憶部、及び複数の処理プログラムの記憶部を有する画像処理装置において、データ処理部は、同時に処理が可能な複数の処理部を具備し、複数の処理部はそれぞれ、画像データの記憶部から画像データを読み込み、処理プログラムの記憶部から処理プログラムを読み込み、読み込んだ画像データに対して、読み込んだ処理プログラムを並列に実行し、処理後の画像データを画像データの記憶部に戻す処理を繰り返すことを基本とする。
【００１８】
そして、少なくとも一部の処理部（以下、第１の処理部）は、処理後の画像データを別の処理部（以下、第２の処理部）に転送することを特徴とする。さらに、第２の処理部は、第１の処理部から転送された画像データに対して、所定の処理を実行して、処理後の画像データを画像データの記憶部に戻し、第１の処理部は、処理後の画像データを第２の処理部に転送すると、第２の処理部での処理と並行して、処理プログラムの記憶部から次の処理プログラムを読み込み、画像データの記憶部から第２の処理部による処理後の画像データを読み込み、該画像データに対して次の処理を実行することを特徴とする。これにより、複数の処理の同時実行とともに、処理と並行してプログラムのロードも可能になる。
【００１９】
また、一実施形態では、複数の処理部はそれぞれ、処理プログラムの記憶部から異なる処理プログラムを読み込み、画像データの記憶部から読み込んだ画像データに対して異なる処理を並列に実行することを特徴とする。
【００２０】
また、複数の処理部はそれぞれ、前記処理プログラムの記憶部から処理対象の異なる画像データを読み込み、処理プログラムの記憶部から複数の処理プグラムを順番に読み込み、各画像データに対して複数の処理を順番に並列に実行することを特徴とする。これにより、複数の画像データそれぞれについて、所望の処理を並列に実行することが可能になる。
【００２１】
また、複数の処理部はそれぞれ、画像データの記憶部から画像データを分割して読み込み、処理プログラムの記憶部から互いに異なる処理プログラムを順番に読み込み、分割された画像データごとに、複数の処理を順番に実行することを特徴とする。あるいは、複数の処理部はそれぞれ、画像データの記憶部から画像データを分割して読み込み、処理プログラムの記憶部から互いに同じ処理プログラムを順番に読み込み、分割された画像データごとに、複数の処理を順番に実行することを特徴とする。これにより、処理対象の画像データを分割された各部分ごとに、一連の処理を並列に実行することが可能になり、全体の処理時間を短縮できる。
【発明の効果】
【００２２】
本発明によれば、プログラマブルなデータ処理部は複数の処理部を有し、各処理部ではそれぞれ複数の処理が並列に実行されるため、プログラミングの自由度を担保しなからも、メモリ増大を抑制し、且つ、処理性能の向上が可能になる。
【発明を実施するための最良の形態】
【００２３】
以下、図面を参照して本発明の実施の形態について説明する。  
［システム構成］
図１は、本発明による画像処理装置のシステム構成例を示すブロツク図である。本画像処理装置は、ＤＳＰのようなプログラマブルなデータ処理部１１０、原稿やその他の画像データを入力するスキャナなどや、その他のデータ入力部１２０、画像データを紙などのメディアに出力するプリンタなどのデータ出力部１３０、外部メディア（ＣＤ，ＤＶＤ，ＳＤカード等）や外部装置（パソコン等）と画像データを送受信する外部インターフェース部（外部Ｉ／Ｆ部）１４０、データ入力部１２０や該外部Ｉ／Ｆ部１４０から入力された画像データや処理結果の画像データ、プログラムコード（以下、プログラム）などを一時的に蓄積するＤＤＲなどのデータメモリ１５０、バックアップや再利用等のために画像データを保存しておくハードディスクなどの大容量記憶部１６０、データメモリ１５０上のプログラム、画像データをデータ処理部１１０に転送制御したり、データメモリ上の処理結果の画像データをデータ出力部１３０等に出力制御するＤＭＡコントローラなどのコントローラ部１７０、複数のプログラムが格納された不揮発性の記憶媒体１８０、装置全体の動作制御を司ると共に、記憶媒体１８０上のプログラムのデータメモリ１５０あるいはデータ処理部１１０へのロードを制御する制御ＣＰＵ１９０、および、これら各部を接続するシステムバス２００で構成される。なお、制御ＣＰＵ１９０がコントローラ部１７０の機能を兼ねてもよく、この場合にはコントローラ部１７０は不要となる。
【００２４】
データ処理部１１０は、同時に別々の処理が可能な処理部を複数備える。本実施の形態では、処理部（１）１１０−１と処理部（２）１１０−２の２組備えるとする。処理部（１）１１０−１は処理用プログラムメモリ領域（プログラムメモリ）１１１−１、データメモリ領域１１２−１、及び、処理用プログラム領域１１１−１のプログラムを実行するＣＰＵ１１３で構成される。処理部（２）１１０−２は処理用プログラムメモリ領域１１１−２、データメモリ領域１１２−２、及び、処理用プログラム領域１１１−２のプログラムを実行する同じくＣＰＵ１１３で構成される。ＣＰＵ１１３は、例えばデュアル・プロセッサであり、処理部（１）１１０−１と処理部（２）１１０−２で兼用される。なお、処理部（１）１１０−１、処理部（２）１１０−２がそれぞれ独立のＣＰＵを持つことでもよい。
【００２５】
［基本動作］
データ処理部１１０の処理部（１）１１０−１、処理部（２）１１０−２では、コントローラ部１７０あるいは制御ＣＰＵ１９０の制御下で、それぞれ並行に、一つの処理は勿論のこと、複数の処理を順番にぐるぐる回しで実行する（ぐるぐる回し処理：Ｍulti  Ｒound  Ｉmage  Ｐrocessing）ことが可能である。
【００２６】
図２は、一例として、処理部（１）１１０−１では、処理用プログラムメモリ領域１１１−１に処理Ａ用プログラム、処理Ｂ用プログラムが順番にロードされて、処理Ａ、処理Ｂがぐるぐる回しで順番に実行され、処理部（２）１１０−２では、処理用プログラムメモリ領域１１１−２に処理Ｃ用プログラム、処理Ｄ用プログラムが順番にロードされて、処理Ｃ、処理Ｄがぐるぐる回しで順番に実行されることを示している。処理用プログラムは、データメモリ１５０あるいは記録媒体１８０から処理用プログラムメモリ利用領域１１１−１、１１１−２にロードされ、それぞれ上書き形式で書き換えられる。処理対象の画像データは、データメモリ１５０からデータメモリ領域１１２−１、１１２−２に取り込まれ、処理後の画像データは再びデータメモリ１５０に書き戻される。また、一方の処理部で処理された画像データに対して、他方の処理部で次の処理を実行する場合には、データ処理部１１０の内部バスを通して、処理部同士で画像データの転送が行われる。
【００２７】
このように、データ処理部１１０の処理部（１）１１０−１及び処理部（２）１１０−２では、それぞれ、高々一つの処理プログラム分の小規模の処理用プログラムメモリ領域１１１−１、１１１−２やデータメモリ領域１１２−１、１１２−２でもって、複数の処理が可能であり、低コスト化を満たすことができる。また、データ処理部１１０はＤＳＰなどのプログラマブルデバイスであり、記録媒体１８０等のプログラムを変更あるいは追加することにより、自由に処理機能の変更や追加が可能である。さらに、処理部（１）１１０−１および処理部（２）１１０−２では、同時に別々の処理が実行可能であるため、処理性能が向上する。
【００２８】
以下に、二、三の実施例について動作を詳述する。なお、以下の説明では、データ処理部１１０の処理対象のプログラムは、あらかじめ記憶媒体１８０からデータメモリ１５０にロードされており、コントロール部１７０の制御下で該データメモリ１５０からデータ処理部１１０の処理部（１）１１０−１、処理部（２）１１０−１にロードされるとするが、制御ＣＰＵ１９０の制御下で、記憶媒体１８０からシステムバス２００経由で直接に処理部（１）１１０−１、処理部（２）１１０−２にロードすることでもよい。
【００２９】
［実施例１］
図３に本実施例におけるプログラムとデータの流れを示す。本実施例は、データ入力部１２０から入力された画像データに対して、処理Ａ→処理Ｂ→処理Ｃの３種類の画像処理を順番に実行し、処理後の画像データをデータ出力部１３０に出力する場合に、データ処理部１１０の処理部（１）１１０−１に処理Ａと処理Ｃを受け持たせ、処理部（２）１１０−２に処理Ｂを受け持たせるとしたものである。
【００３０】
図３では省略したが、制御ＣＰＵ１９０は、システム立上げ時などに、記憶媒体１８０内の処理Ａ用プログラム、処理Ｂ用プログラム及び処理Ｃ用プログラムを読み出し、システムバス２００を通してデータメモリ１５０の所定領域にロードしておく。処理用プログラムには、一般に処理用パラメータが含まれているが、ここでは省略する。また、制御ＣＰＵ１９０は、コントローラ部１７０に対して、各処理用プログラムのデータメモリ１５０内のアドレス、選択順序、送付先（ロード先）、その他、制御に必要な情報を送付し、該コントローラ部１７０内に設定する。
【００３１】
以後、制御の主導権がコントローラ部１７０に移り、該コントローラ部１７０の制御下で、図３のように、データ処理部１１０の処理部（１）１１０−１、処理部（２）１１０−２とデータメモリ１５０の間でプログラムのロード、画像データの転送及び書き戻しが繰り返されて、処理Ａ→処理Ｂ→処理Ｃがぐるぐる回しで順番に実行され、処理後の画像データがデータ出力部１３０に出力される。以下、図３のプログラムとデータの流れを順を追って詳述する。
【００３２】
スタートボタンの押下等を契機に、データ入力部１２０で読み取られた画像データは、システムバス２００を通してデータメモリ１５０に格納される。図３の処理前画像データは、これを示している。
【００３３】
コントローラ部１７０は、データメモリ１５０から処理Ａ用プログラム及び処理Ｂ用プログラムを読み出し、システムバス２００を通してＤＭＡ形式で、処理Ａ用プログラムはデータ処理部１１０の処理部（１）１１０−１に、処理Ｂ用プログラムは処理部（２）１１０−１に送付する。処理部（１）１１０−１は、送付された処理Ａ用プログラムを処理用プログラムメモリ領域１１１−１に格納（ロード）し、処理部（２）１１０−２は、送付された処理Ｂ用プログラムを処理用プログラムメモリ領域１１１−２に格納（ロード）する。
【００３４】
次に、コントローラ部１７０は、データメモリ１５０から処理対象の画像データ（処理前画像データ）を読み出し、同じくＤＭＡ形式でシステムバス２００を通してデータ処理部１１０の処理部（１）１１０−１に転送する。処理部（１）１１０−１は、データメモリ１５０から転送された画像データをデータメモリ領域１１２−１に格納する。
【００３５】
データ処理部１１０の処理部（１）１１０−１では、処理用プログラムメモリ領域１１１−１の処理Ａ用プログラムに基づいて、データメモリ領域１１２−１の画像データに対して処理Ａ（例えば、シェーディング補正など）を実行し、処理Ａ後の画像データを、データ処理部１１０の内部バスを通して処理部１１０−２のデータメモリ領域１１２−２に格納する。これにより、処理部（２）１１０−２では、処理用プログラムメモリ領域１１１−２の処理Ｂ用プログラムに基づいて、データメモリ領域１１２−２の処理Ａ後の画像データに対して処理Ｂ（例えば、ＭＴＦフィルタリングとガンマ変換など）を実行し、処理Ｂ後の画像データを、システムバス２００を通してデータメモリ１５０に書き戻す。図３の処理後画像データは、これを示している。
【００３６】
なお、処理後の画像データを、データ処理部１１０の内部バスを通して一方の処理部のデータメモリ領域から他方の処理部のデータメモリ領域に転送するか、あるいは、システムバス２００を通してデータメモリ１５０に書き戻すかは、例えば、各処理用プログラムに定義しておけばよい。あるいは、処理に先立って、制御ＣＰＵ１９０がデータ処理部１１０のＣＰＵ１１３に通知しておくことでもよい。
【００３７】
一方、コントローラ部１７０は、データ処理部１１０の処理部１１０−１からの終了通知等により、処理部１１０−１での処理Ａ用プログラムの処理終了を確認すると、データメモリ１５０から処理Ｃ用プログラムを読み出し、システムバス２００を通してＤＭＡ形式で、データ処理部１１０の処理部（１）１１０−１に送付する。処理部（１）１１０−１は、送付された処理Ｃ用プログラムを処理用プログラムメモリ領域１１１−１に、先の処理Ａ用プログラムを上書きして格納（ロード）する。この処理部（１）１１０−１における処理Ｃ用プログラムのロード動作は、処理部（２）１１０−２における処理Ｂ用プログラムの処理実行と並行して実行される。
【００３８】
次に、コントローラ部１７０は、データ処理部１１０の処理部（２）１１０−２からの終了通知や、あるいは自身によるデータメモリ１５０へのデータ書き戻し監視等により、処理部（２）１１０−２での処理Ｂ用プログラムの処理終了を確認すると、データメモリ１５０から処理Ｂ後の画像データを読み出し、システムバス２００を通してＤＭＡ形式で、データ処理部１１０の処理部（１）１１０−１に転送する。
【００３９】
データ処理部１１０の処理部（１）１１０−１は、データメモリ１５０から転送された処理Ｂ後の画像データをデータメモリ領域１１２−１に格納し、該処理Ｂ後の画像データに対して、処理用プログラムメモリ領域１１１−１の処理Ｃ用プログラムに基づいて処理Ｃ（例えば、階調処理など）を実行し、処理Ｃ後の画像データを、システムバス２００を通してデータメモリ１５０に書き戻す。
【００４０】
コントローラ部１７０は、データ処理部１１０の処理部（１）１１０−１からの終了通知、あるいは、自身によるデータメモリ１５０のデータ書き戻し監視等により、処理部（１）１１０−１での処理Ｃ用プログラムの処理終了を確認すると、必要な処理がすべて終了したと判断して、データメモリ１５０から処理後画像データを読み出し、データ出力部１３０に出力する。なお、この出力処理は、制御ＣＰＵ１９０が受け持つことでもよい。
【００４１】
図４に本実施例のタイムチャートを示す。時刻ｔ0で画像データの入力を開始し、時刻ｔ1で入力が終了すると、コントローラ部１７０は、処理部（１）１１０−１、処理部（２）１１０−２にそれぞれ処理Ａ用プログラム、処理用Ｂプログラムをロードする（ｔ1〜ｔ2）。続いて、コントローラ部１７０は、データメモリ１５０の画像データを処理部（１）１１０−１に転送し、処理部（１）１１０−１は、該画像データに対して処理Ａを実行し、処理Ａ後の画像データを処理部（２）１１０−２に転送する（ｔ2〜ｔ3）。処理部（２）１１０−２は、処理Ａ後の画像データに対して処理Ｂを実行し、処理Ｂ後の画像データをデータメモリ１５０に書き戻す（ｔ3〜ｔ4）。
【００４２】
一方、コントローラ部１７０は、処理部（２）１１０−２での処理Ｂの実行と並行して、処理部（１）１１０−１に対して処理Ｃ用プログラムを送付する（ｔ3〜ｔ4）。続いて、コントローラ部１７０はデータメモリ１５０に書き戻されている処理Ｂ後の画像データを処理部（１）１１０−１に転送し、処理部（１）１１０−１は、該処理Ｂ後の画像データに対して処理Ｃを実行し、処理Ｃ後の画像データをデータメモリ１５０に書き戻す（ｔ4〜ｔ5）。コントローラ部１７０は、時刻ｔ5以降、データメモリ１５０から処理Ｃ後の画像データをデータ出力部１３０に出力する。
【００４３】
本実施例では、処理Ａ用プログラムと処理Ｂ用プログラムの同時ロード、さらには、処理Ｂの実行と処理Ｃ用プログラムのロードの並行動作の分、処理機能が向上する。また、データ処理部１１０の処理部（１）１１０−１では、高々一つの処理プログラム分のプログラムメモリ領域でデータメモリ領域で持って、処理Ａと処理Ｃの処理が可能である。勿論、処理部（２）１１０−２が処理Ａと処理Ｃを実行し、処理部（１）１１０−１が処理Ｂを実行することでもよい。
【００４４】
［実施例２］
図５及び図６に本実施例におけるプログラムとデータの流れを示す。本実施例は、複数の処理同士に、特に処理順序性に制約がないような場合、処理対象の画像データを分割して、各分割データについて、処理部（１）１１０−１と処理部（２）１１０−２でそれぞれ複数の処理を交互に並列に実行するようにしたものである。
【００４５】
図５及び図６は、一例としてデータ入力部１２０から入力された画像データに対して、処理Ａ、処理Ｂ、処理Ｃ、処理Ｄを実行し（処理の順序は任意）、処理後の画像データをデータ出力部１３０に出力するとした場合、入力された画像データを２つに分け、前半部分の分割データ１の処理を処理部（１）１１０−１に、後半部分の分割データ２の処理を処理部（２）１１０−２に受け持たせて、最初は、処理部（１）１１０−１が分割データ１に対して処理Ａと処理Ｃを、処理部（２）１１０−２が分割データ２に対して処理Ｂと処理Ｄを並列に実行し（図５）、次に、処理部（１）１１０−１が処理Ａ，Ｃ後の分割データ１に対して処理Ｂと処理Ｄを、処理部（２）１１０−２が処理Ｂ，Ｄ後の分割データ２に対して処理Ａと処理Ｃを同じく並列に実行して（図６）、処理Ａ〜Ｄの実行された画像データを出力する場合を示したものである。
【００４６】
以下に、図５及び図６のプログラムとデータの流れを順を追って詳述する。なお、図７に本実施例におけるデータメモリ１５０内の処理後画像データの遷移を示す。
【００４７】
制御ＣＰＵ１９０は、システム立上げ時などに、記憶媒体１８０内の処理Ａ用プログラム、処理Ｂ用プログラム、処理Ｃ用プログラム及び処理Ｄ用プログラムを読み出し、システムバス２００を通してデータメモリ１５０の所定領域にロードしておく。処理用プログラムには、一般に処理用パラメータが含まれるが、ここでは省略する。また、制御ＣＰＵ１９０は、コントローラ部１７０に対して、各処理用プログラムのデータメモリ１５０内のアドレス、選択順序、送付先（ロード先）、その他、制御に必要な情報を送付し、該コントローラ部１７０内に設定する。以後、コントローラ部１７０の制御下で、図５、図６に示すように、データ処理部１１０の処理部（１）１１０−１、処理部（２）１１０−２とデータメモリ１５０の間でプログラムのロード、画像データの転送及び書き戻しが繰り返されて、入力された画像データに対して前半と後半ずつそれぞれ処理Ａ，Ｃ，Ｂ，Ｄが並行に実行され、処理Ａ〜Ｄ後の画像データがデータ出力部１３０に出力される。
【００４８】
まず、図５のプログラムとデータの流れを説明する。図５は、データ入力部１２０から画像データを入力し、該画像データの前半部分に処理Ａ、処理Ｃを実施し、後半部分に処理Ｂ、処理Ｄを実施するまでを示したものである。
【００４９】
スタートボタンの押下等を契機に、データ入力部１２０で読み取られた画像データは、システムバス２００を通してデータメモリ１５０に格納される。図５の処理前画像データは、これを示している。
【００５０】
コントローラ部１７０は、データメモリ１５０から処理Ａ用プログラムと処理Ｂ用プログラムを読み出し、システムバス２００を通してＤＭＡ形式で、処理Ａ用プログラムはデータ処理部１１０の処理部（１）１１０−１に、処理Ｂ用プログラムは処理部（２）１１０−２に送付する。処理部（１）１１０−１は、送付された処理Ａ用プログラムを処理用プログラムメモリ領域１１１−１に格納（ロード）し、処理部（２）１１０−２は、送付された処理Ｂ用プログラムを処理用プログラムメモリ領域１１１−２に格納（ロード）する。
【００５１】
次に、コントローラ部１７０は、データメモリ１５０から処理対象の画像データ（処理前画像データ）を読み出し、システムバス２００を通してＤＭＡ形式で、該画像データの前半部分（以下、分割データ１）はデータ処理部１１０の処理部（１）１１０−１に、後半部分（以下、分割データ２）は処理部（２）１１０−２に転送する。処理部（１）１１０−１は、データメモリ１５０から転送された分割データ１をデータメモリ領域１１２−１に格納して、該分割データ１に対して、処理用プログラムメモリ領域１１１−１の処理Ａ用プログラムに基づいて所定の処理Ａを実行し、処理Ａ後の分割データ１を、システムバス２００を通してデータメモリ１５０に書き戻す。処理部（２）１１０−２は、データメモリ１５０から転送された分割データ２をデータメモリ領域１１２−２に格納して、該分割データ２に対して、処理用プログラムメモリ領域１１１−２の処理用Ｂプログラムに基づいて所定の処理Ｂを実行し、処理Ｂ後の分割データ２を、システムバス２００を通してデータメモリ１５０に書き戻す。この処理部（１）１１０−１と処理部（２）１１０−２の処理は並列に実行される。図７（ａ）は、この時点のデータメモリ１５０内の処理後画像データの状態を示したものである。
【００５２】
コントローラ部１７０は、データ処理部１１０の処理部（１）１１０−１、処理部（２）１１０−２からの終了通知、あるいは、自身によるデータメモリ１５０へのデータ書き戻し監視等により、処理部（１）１１０−１、処理部（２）１１０−２での処理Ａ、処理Ｂの終了を確認すると、次に、データメモリ１５０から処理Ｃ用プログラムと処理Ｄ用プログラムを読み出し、システムバス２００を通してＤＭＡ形式で、処理Ｃ用プログラムはデータ処理部１１０の処理部（１）１１０−１に、処理Ｄ用プログラムは処理部（２）１１０−２に送付する。処理部（１）１１０−１、処理部（２）１１０−２では、送付された処理Ｃ用プログラムあるいは処理Ｄ用プログラムを、それまでの処理Ａ用プログラムあるいは処理Ｂ用プログラムを上書きする形式でそれぞれ処理プログラムメモリ領域１１１−１、処理用プログラムメモリ領域１１１−２に格納する。
【００５３】
次に、コントローラ部１７０は、データメモリ１５０から処理後画像データ（図７（ａ））を読み出し、システムバス２００を通してＤＭＡ形式で、該処理後画像データの前半部分の処理Ａ後の分割データ１はデータ処理部１１０の処理部（１）１１０−１に、後半部分の処理Ｂ後の分割データ２は処理部（２）１１０−２に転送する。処理部（１）１１０−１は、データメモリ１５０から転送された処理Ａ後の分割データ１をデータメモリ領域１１２−１に格納して、該分割データ１に対して、処理用プログラムメモリ領域１１１−１の処理Ｃ用プログラムに基づいて所定の処理Ｃを実行し、処理Ｃ後の分割データ１を、システムバス２００を通してデータメモリ１５０に書き戻す。この処理部（１）１１０−１の処理と並行して、処理部（２）１１０−２は、データメモリ１５０から転送された処理Ｂ後の分割データ２をデータメモリ領域１１２−２に格納して、該分割データ２に対して、処理用プログラムメモリ領域１１１−２の処理Ｄ用プログラムに基づいて所定の処理Ｄを実行し、処理Ｄ後の分割データ２を、システムバス２００を通してデータメモリ１５０に書き戻す。図７（ｂ）は、この時点のデータメモリ１５０内の処理後画像データの状態を示したものである。
【００５４】
ここまでが図５のプログラムとデータの流れである。次に、図６のプログラムとデータの流れを説明する。図６は、画像データの前半部分の処理Ａ、処理Ｃの処理済みの分割データ１に対して処理Ｂ、処理Ｄを実施し、後半部分の処理Ｂ、処理Ｄの処理済みの分割データ２に対して処理Ａ、処理Ｃを実施して、処理Ａ〜Ｄがすべて処理された画像データをデータ出力部１３０に出力するまでを示したものである。
【００５５】
コントローラ部１７０は、処理部（１）１１０−１、処理部（２）１１０−２での処理Ｃ、処理Ｄの終了を確認すると、データメモリ１５０から再び処理Ａプログラムと処理Ｂ用プログラムを読み出し、システムバス２００を通してＤＭＡ形式で、先とは逆に処理Ｂ用プログラムはデータ処理部１１０の処理部（１）１１０−１に、処理Ａ用プログラムは処理部（２）１１０−２に送付する。処理部（１）１１０−１は、先の処理Ｃ用プログラムを上書きする形式で送付された処理Ｂ用プログラムを処理用プログラムメモリ領域１１１−１に格納する。同様に、処理部（２）１１０−２は、先の処理Ｄ用プログラムを上書きする形式で送付された処理Ａ用プログラムを処理用プログラムメモリ領域１１１−２に格納する。
【００５６】
次に、コントローラ部１７０は、データメモリ１５０から処理後画像データ（図７（ｂ））を読み出し、システムバス２００を通してＤＭＡ形式で、該処理後画像データの前半部分の処理Ｃ後の分割データ１はデータ処理部１１０の処理部（１）１１０−１に、後半部分の処理Ｄ後の分割データ２は処理部（２）１１０−２に転送する。処理部（１）１１０−１は、データメモリ１５０から転送された処理Ｃ後の分割データ１をデータメモリ領域１１１２−１に格納して、該分割データ１（処理Ａ，Ｃが処理済み）に対して、処理用プログラムメモリ領域１１１−１の処理Ｂ用プログラムに基づいて所定の処理Ｂを実行し、処理Ｂ後の分割データ１を、システムバス２００を通してデータメモリ１５０に書き戻す。この処理部（１）１１０−１の処理と並行して、処理部（２）１１０−２は、データメモリ１５０から転送された処理Ｄ後の分割データ２をデータメモリ領域１１２−２に格納して、該分割データ２（処理Ｂ、Ｄが処理済み）にして、処理用プログラムメモリ領域１１１−２の処理Ａ用プログラムに基づいて所定の処理Ａを実行し、処理Ａ後の分割データ２を、システムバス２００を通してデータメモリ１５０に書き戻す。図７（ｃ）は、この時点のデータメモリ１５０内の処理後の画像データの状態を示したものである。
【００５７】
コントローラ部１７０は、処理部（１）１１０−１、処理部（１）１１０−２での処理Ｂ、処理Ａの終了を確認すると、データメモリ１５０から再び処理Ｃ用プログラムと処理Ｄ用プログラムを読み出し、システムバス２００を通してＤＭＡ形式で、先とは逆に処理Ｄ用プログラムはデータ処理部１１０の処理部１１０−１に、処理Ｃ用プログラムは処理部１１０−２に送付する。処理部（１）１１０−１、処理部（２）１１０−２では、送付された処理Ｄ用プログラムあるいは処理Ｃ用プログラムを、それまでの処理Ｂ用プログラムあるいは処理Ａ用プログラムを上書きする形式でそれぞれ処理用プログラムメモリ領域１１１−１、処理用プログラムメモリ領域１１１−２に格納する。
【００５８】
次に、コントローラ部１７０は、データメモリ１５０から処理後の画像データ（図７（ｃ））を読み出し、システムバス２００を通してＤＭＡ形式で、該処理後画像データの前半部分の処理Ｂ後の分割データ１はデータ処理部１１０の処理部（１）１１０−１に、後半部分の処理Ａ後の分割データ２は処理部（２）１１０−２に転送する。処理部（１）１１０−１は、データメモリ１５０から転送された処理Ｂ後の分割データ１をデータメモリ領域１１２−１に格納して、該分割データ１（処理Ａ，Ｃ，Ｂが処理済み）に対して、処理用プログラムメモリ領域１１１−１の処理Ｄ用プログラムに基づいて所定の処理Ｄを実行し、処理Ｄ後の分割データ１を、システムバス２００を通してデータメモリ１５０に書き戻す。この処理部（１）１１０−１の処理と並行して、処理部（２）１１０−２は、データメモリ１５０から転送された処理Ａ後の分割データ２をデータメモリ領域１１２−２に格納して、該分割データ２（処理Ｂ，Ｄ，Ａが処理済み）に対して、処理用プログラムメモリ領域１１２−２の処理Ｃ用プログラムに基づいて所定の処理Ｃを実行し、処理Ｃ後の分割データ２を、システムバス２００を通してデータメモ１５０に書き戻す。図７（ｄ）は、この時点のデータメモリ１５０内の処理後画像データの状態を示したものである。すなわち、これで入力された画像データに対して所定の処理Ａ〜Ｄがすべて処理されたことになる。
【００５９】
コントローラ部１７０は、処理部（１）１１０−１、処理部（２）１１０−２での処理Ｄ、処理Ｃの終了を確認すると、すなわち、入力された画像データに対する処理Ａ〜Ｄの実行がすべて終了した場合、データメモリ１５０から処理後画像データ（図７（ｄ））を読み出し、データ出力部１３０に出力する。本実施例でも、出力処理は制御ＣＰＵ１９０が受け持つことでもよい。
【００６０】
図８に本実施例の全体のタイムチャートを示す。時刻ｔ0で画像データの入力を開始し、時刻ｔ1で入力が終了すると、コントローラ部１７０は、まず、処理部（１）１１０−１、処理部（２）１１０−２にそれぞれ処理Ａ用プログラム、処理Ｂ用プログラムをロードする（ｔ1〜ｔ2）。引き続いてコントローラ部１７０は、データメモリ１５０の処理前画像データの前半部分（分割データ１）を処理部（１）１１０−１に、後半部分（分割データ２）を処理部（２）１１０−２に転送する。処理部（１）１１０−１は、分割データ１に対して処理Ａを実行して、データメモリ１５０に書き戻し、これと並行に、処理部（２）１１０−２は分割データ２に対して処理Ｂを実行して、データメモリ１５０に書き戻す（ｔ2〜ｔ3）。
【００６１】
次に、コントローラ部１７０は、処理部（１）１１０−１、処理部（２）１１０−２にそれぞれ処理Ｃ用プログラム、処理Ｄ用プログラムをロードする（ｔ3〜ｔ4）。引き続いてコントローラ部１７０は、データメモリ１５０の処理後画像データにおける処理Ａ後の分割データ１を処理部（１）１１０−１に、処理Ｂ後の分割データ２を処理部（２）１１０−２に転送する。処理部（１）１１０−１は、処理Ａ後の分割データ１に対して処理Ｃを実行して、データメモリ１５０に書き戻し、これと並行に、処理部（２）１１０−２は、処理Ｄ後の分割データ２に対して処理Ｄを実行して、データメモリ１５０に書き戻す（ｔ4〜ｔ5）。
【００６２】
ここまでで、入力画像データの前半部分は処理Ａ，Ｃが処理済みとなり、後半部分は処理Ｂ，Ｄが処理済みとなる。
【００６３】
次に、コントローラ部１７０は、処理部（１）１１０−１、処理部（２）１１０−２にそれぞれ処理Ｂ用プログラム、処理Ａ用プログラムをロードする（ｔ5〜ｔ6）。引き続いてコントローラ部１７０は、データメモリ１５０の処理後画像データにおける処理Ａ，Ｃ後の分割データ１を処理部（１）１１０−１に、処理Ｂ，Ｄ後の分割データ２を処理部（２）１１０−２に転送する。処理部（１）１１０−１は、処理Ａ，Ｃ後の分割データ１に対して処理Ｂを実行して、データメモリ１５０に書き戻し、これと並行に、処理部（２）１１０−２は、処理Ｂ，Ｄ後の分割データ２に対して処理Ａを実行して、データメモリ１５０に書き戻す（ｔ6〜ｔ7）。
【００６４】
最後に、コントローラ部１７０は、処理部（１）１１０−１、処理部（２）１１０−２にそれぞれ処理Ｄ用プログラム、処理Ｃ用プログラムをロードする（ｔ7〜ｔ8）。引き続いてコントローラ部１７０は、データメモリ１５０の処理後画像データにおける処理Ａ，Ｃ，Ｂ後の分割データ１を処理部（１）１１０−１に、処理Ｂ，Ｄ，Ａ後の分割データ２を処理部（２）１１０−２に転送する。処理部（１）１１０−１は、処理Ａ，Ｃ，Ｂ後の分割データ１に対して処理Ｄを実行して、データメモリ１５０に書き戻し、これと並行に、処理部（２）１１０−２は、処理Ｂ，Ｄ，Ａ後の分割データ２に対して処理Ｃを実行して、データメモリ１５０に書き戻す（ｔ8〜ｔ9）。
【００６５】
これにより、入力画像データに対して処理Ａ〜Ｄがすべて実行されたことになる。時刻ｔ9以降、コントローラ部１７０は、データメモリ１５０の処理Ａ〜Ｄがすべて実行された処理後画像データをデータ出力部１３０に出力する。
【００６６】
本実施例では、処理対象の画像データに対して複数の異なる処理を実行する場合、該画像データを分割し、各分割データについて、処理部（１）１１０−１、処理部（２）１１０−２で順次それぞれ異なる処理を交互に並行に行うことで、所望の複数種類の処理された画像データを出力することが可能であり、それぞれが並行に行われるため、処理性能が向上する。また、データ処理部１１０の処理部（１）１１０−１、処理部（２）１１０−２では、高々一つの処理プログラムのプログラムメモリ領域と分割データ分のデータメモリ領域でもって、それぞれ複数の処理が可能である。
【００６７】
［実施例３］
図９及び図１０に本実施例におけるプログラムとデータの流れを示す。前記実施例２は、同じ処理用プログラムを二度ロードする必要がある。また、処理の順序性に制約があるような場合には不向きである。本実施例は、処理対象の画像データを分割して、各分割データについて、処理部（１）１１０−１と処理部（２）１１０−２でそれぞれ同じ処理プログラムを並列に実行するようにして、同じ処理用プログラムを二度ロードする必要がなく、また、処理の順序性に制約があるような場合にも適用可能としたものである。
【００６８】
図９及び図１０は、一例として、データ入力部１２０から入力された処理対象の画像データを２つに分けて、前半部分の分割データ１の処理は処理部（１）１１０−１に、後半部分の分割データ２の処理は処理部（２）１１０−２に受け持たせ、処理部（１）１１０−１及び処理部（２）１１０−２が、それぞれ分割データ１、分割データ２に対して、処理Ａ→処理Ｂ→処理Ｃ→処理Ｄを順番に並列に実行し、処理後の画像データをデータ出力部１３０に出力する場合を示したものである。
【００６９】
以下に、図９及び図１０のプログラムとデータの流れを順を追って詳述する。なお、本実施例におけるデータメモリ１５０内の処理後画像データの遷移図は省略する。
【００７０】
先の実施例２と同様に、制御ＣＰＵ１９０は、システム立上げ時などに、記憶媒体１８０内の処理Ａ用プログラム、処理Ｂ用プログラム、処理Ｃ用プログラム及び処理Ｄ用プログラムを読み出し、システムバス２００を通してデータメモリ１５０の所定領域にロードしておく。処理用プログラムには、一般に処理用パラメータが含まれるが、ここでは、省略する。また、制御ＣＰＵ１９０は、コントローラ部１７０に対して、各処理用プログラムのデータメモリ１５０内のアドレス、選択順序、送付先（ロード先）、その他、制御に必要な情報を送付し、該コントローラ部１７０内に設定する。以後、コントローラ部１７０の制御下で、図９、図１０に示すように、データ処理部１１０の処理部（１）１１０−１、処理部（２）１１０−２とデータメモリ１５０の間でプログラムのロード、画像データの転送及び書き戻しが繰り返されて、入力された画像データに対して前半と後半ずつ処理Ａ〜処理Ｄが並行に実行され、処理後の画像データがデータ出力部１３０に出力される。
【００７１】
まず、図９のプログラムとデータの流れを説明する。図９は、データ入力部１２０から画像データを入力し、該画像データの前半部分と後半部分に対してそれぞれ並列に処理Ａ、処理Ｂを実行するまでを示したものである。
【００７２】
スタートボタンの押下等を契機に、データ入力部１２０で読み取られた画像データは、システムバス２００を通してデータメモリ１５０に格納される。図９の処理前画像データは、これを示している。
【００７３】
コントローラ部１７０は、まず、データメモリ１５０から処理Ａ用プログラムを読み出し、システムバス２００を通してＤＭＡ形式で、データ処理部１１０の処理部（１）１１０−１と処理部（２）１１０−２に送付する。処理部（１）１１０−１は、送付された処理Ａプログラムを処理用プログラムメモリ領域１１１−１に格納（ロード）し、処理部（２）１１０−２は、同じく送付された処理Ａ用プログラムを処理用プログラムメモリ領域１１１−２に格納（ロード）する。
【００７４】
次に、コントローラ部１７０は、データメモリ１５０から処理対象の画像データ（処理前画像データ）を読み出し、システムバス２００を通してＤＭＡ形式で、該画像データの前半部分（以下、分割データ１）はデータ処理部１１０の処理部（１）１１０−１に、後半部分（以下、分割データ２）は処理部（２）１１０−２に転送する。処理部（１）１１０−１は、データメモリ１５０から転送された分割データ１をデータメモリ領域１１２−１に格納して、該分割データ１に対して、処理用プログラムメモリ領域１１１−１の処理Ａ用プログラムに基づいて所定の処理Ａを実行し、処理Ａ後の分割データ１を、システムバス２００を通してデータメモリ１５０に書き戻す。この処理部（１）１１０−１の処理と並行して、処理部（２）１１０−２は、データメモリ１５０から転送された分割データ２をデータメモリ領域１１２−２に格納して、該分割データ２に対して、同じく処理用プログラムメモリ領域１１１−２の処理Ａ用プログラムに基づいて処理Ａを実行し、処理Ａ後の分割データ２を、システムバス２００を通してデータメモリ１５０に書き戻す。
【００７５】
コントローラ部１７０は、データ処理部１１０の処理部（１）１１０−１、処理部（２）１１０−２からの終了通知、あるいは、自身によるデータメモリ１５０へのデータ書き戻し監視等により、処理部（１）１１０−１、処理部（２）１１０−２での処理Ａの終了を確認すると、次に、データメモリ１５０から処理Ｂ用プログラムを読み出し、システムバス２００を通してＤＭＡ形式で、データ処理部１１０の処理部（１）１１０−１と処理部（２）１１０−２に送付する。処理部（１）１１０−１、処理部（２）１１０−２では、送付された処理Ｂ用プログラムを、それまでの処理Ａ用プログラムを上書きする形式でそれぞれ処理プログラムメモリ領域１１１−１、処理用プログラムメモリ領域１１１−２に格納する。
【００７６】
次に、コントローラ部１７０は、データメモリ１５０から処理Ａ後画像データを読み出し、システムバス２００を通してＤＭＡ形式で、該処理Ａ後画像データの前半部分の分割データ１はデータ処理部１１０の処理（１）１１０−１に、後半部分の分割データ２は処理部（２）１１０−２に転送する。処理部（１）１１０−１は、データメモリ１５０から転送された処理Ａ後の分割データ１をデータメモリ領域１１２−１に格納して、該分割データ１に対して、処理用プログラムメモリ領域１１１−１の処理Ｂ用プログラムに基づいて所定の処理Ｂを実行し、処理Ｂ後の分割データ１を、システムバス２００を通してデータメモリ１５０に書き戻す。この処理部（１）１１０−１の処理と並行して、処理部（２）１１０−２は、同じくデータメモリ１５０から転送された処理Ａ後の分割データ２をデータメモリ領域１１２−２に格納して、該分割データ２に対して、処理用プログラムメモリ領域１１１−２の処理Ｂ用プログラムに基づいて所定の処理Ｂを実行し、処理Ｂ後の分割データ２を、システムバス２００を通してデータメモリ１５０に書き戻す。
【００７７】
ここまでが図９のプログラムとデータの流れである。次に、図１０のプログラムとデータの流れを説明する。図１０は、処理Ａ，Ｂの処理済みの画像データに対して引き続き前半部分と後半部分ごとにそれぞれ並列に処理Ｃ、処理Ｄを実行し、処理後画像データをデータ出力部１３０に出力するまでを示したものである。
【００７８】
コントローラ部１７０は、処理部（１）１１０−１、処理部（２）１１０−２での処理Ｂの終了を確認すると、データメモリ１５０から処理Ｃ用プログラムを読み出し、システムバス２００を通してＤＭＡ形式で、データ処理部１１０の処理部（１）１１０−１と処理部（２）１１０−２に送付する。処理部（１）１１０−１は、先の処理Ｂ用プログラムを上書きする形式で送付された処理Ｃ用プログラムを処理用プログラムメモリ領域１１１−１に格納する。同様に、処理部（２）１１０−２は、先の処理Ｂ用プログラムを上書きする形式で送付された処理Ｃ用プログラムを処理用プログラムメモリ領域１１１−２に格納する。
【００７９】
次に、コントローラ部１７０は、データメモリ１５０から処理Ｂ後画像データを読み出し、システムバス２００を通してＤＭＡ形式で、該処理Ｂ後画像データの前半部分の分割データ１はデータ処理部１１０の処理部（１）１１０−１に、後半部分の分割データ２は処理部（１）１１０−２に転送する。処理部（１）１１０−１は、データメモリ１５０から転送された処理Ｂ後の分割データ１をデータメモリ領域１１１２−１に格納して、該分割データ１（処理Ａ，Ｂが処理済み）に対して、処理用プログラムメモリ領域１１１−１の処理Ｃプログラムに基づいて所定の処理Ｃを実行し、処理Ｃ後の分割データ１を、システムバス２００を通してデータメモリ１５０に書き戻す。この処理部（１）１１０−１の処理と並行して、処理部（２）１１０−２は、同様に、データメモリ１５０から転送された処理Ｂ後の分割データ２をデータメモリ領域１１２−２に格納して、該分割データ２（処理Ａ，Ｂが処理済み）にして、処理用プログラムメモリ領域１１１−２の処理Ｃプログラムに基づいて所定の処理Ｃを実行し、処理Ｃ後の分割データ２を、システムバス２００を通してデータメモリ１５０に書き戻す。
【００８０】
コントローラ部１７０は、処理部（１）１１０−１、処理部（１）１１０−２での処理Ｃの終了を確認すると、データメモリ１５０から処理Ｄ用プログラムを読み出し、システムバス２００を通してＤＭＡ形式で、データ処理部１１０の処理部１１０−１と、処理部１１０−２に送付する。処理部（１）１１０−１、処理部（２）１１０−２では、送付された処理Ｄ用プログラムを、それまでの処理Ｃ用プログラムを上書きする形式でそれぞれ処理用プログラムメモリ領域１１１−１、処理用プログラムメモリ領域１１１−２に格納する。
【００８１】
次に、コントローラ部１７０は、データメモリ１５０から処理Ｃ後画像データを読み出し、システムバス２００を通してＤＭＡ形式で、該処理Ｃ後画像データの前半部分の分割データ１はデータ処理部１１０の処理部（１）１１０−１に、後半部分の分割データ２は処理部（２）１１０−２に転送する。処理部（１）１１０−１は、データメモリ１５０から転送された処理Ｃ後の分割データ１をデータメモリ領域１１２−１に格納して、該分割データ１（処理Ａ，Ｂ，Ｃが処理済み）に対して、処理用プログラムメモリ領域１１１−１の処理Ｄ用プログラムに基づいて所定の処理Ｄを実行し、処理Ｄ後の分割データ１を、システムバス２００を通してデータメモリ１５０に書き戻す。この処理部（１）１１０−１の処理と並行して、処理部（２）１１０−２は、同様に、データメモリ１５０から転送された処理Ｃ後の分割データ２をデータメモリ領域１１２−２に格納して、該分割データ２（処理Ａ，Ｂ，Ｃが処理済み）に対して、処理用プログラムメモリ領域１１２−２の処理Ｄ用プログラムに基づいて所定の処理Ｄを実行し、処理Ｄ後の分割データ２を、システムバス２００を通してデータメモ１５０に書き戻す。これで入力された画像データに対して所定の処理Ａ〜Ｄがすべて順番に処理されたことになる。
【００８２】
コントローラ部１７０は、処理部（１）１１０−１、処理部（２）１１０−２での処理Ｄの終了を確認すると、すなわち、入力された画像データに対する処理Ａ〜Ｄの実行がすべて終了した場合、データメモリ１５０から処理後画像データを読み出し、データ出力部１３０に出力する。本実施例でも、出力処理は制御ＣＰＵ１９０が受け持つことでもよい。
【００８３】
図１１に本実施例の全体のタイムチャートを示す。時刻ｔ0で画像データの入力を開始し、時刻ｔ1で入力が終了すると、コントローラ部１７０は、まず、処理部（１）１１０−１、処理部（２）１１０−２にそれぞれ処理Ａ用プログラムをロードする（ｔ1〜ｔ2）。引き続いてコントローラ部１７０は、データメモリ１５０の処理前画像データの前半部分（分割データ１）を処理部（１）１１０−１に、後半部分（分割データ２）を処理部（２）１１０−２に転送する。処理部（１）１１０−１は、分割データ１に対して処理Ａを実行して、データメモリ１５０に書き戻し、これと並行に、処理部（２）１１０−２は同じく分割データ２に対して処理Ａを実行して、データメモリ１５０に書き戻す（ｔ2〜ｔ3）。
【００８４】
次に、コントローラ部１７０は、処理部（１）１１０−１、処理部（２）１１０−２に処理Ｂ用プログラムをロードする（ｔ3〜ｔ4）。引き続いてコントローラ部１７０は、データメモリ１５０の処理Ａ後画像データにおける前半部分の分割データ１を処理部（１）１１０−１に、後半部分の分割データ２を処理部（２）１１０−２に転送する。処理部（１）１１０−１は、処理Ａ後の分割データ１に対して処理Ｂを実行して、データメモリ１５０に書き戻し、これと並行に、処理部（２）１１０−２は、同じく処理Ａ後の分割データ２に対して処理Ｂを実行して、データメモリ１５０に書き戻す（ｔ4〜ｔ5）。
【００８５】
次に、コントローラ部１７０は、処理部（１）１１０−１、処理部（２）１１０−２にそれぞれ処理Ｃ用プログラムをロードする（ｔ5〜ｔ6）。引き続いてコントローラ部１７０は、データメモリ１５０の処理Ｂ後画像データにおける前半部分の分割データ１を処理部（１）１１０−１に、後半部分の分割データ２を処理部（２）１１０−２に転送する。処理部（１）１１０−１は、処理Ｂ後の分割データ１に対して処理Ｃを実行して、データメモリ１５０に書き戻し、これと並行に、処理部（２）１１０−２は、同じく処理Ｂ後の分割データ２に対して処理Ｃを実行して、データメモリ１５０に書き戻す（ｔ6〜ｔ7）。
【００８６】
最後に、コントローラ部１７０は、処理部（１）１１０−１、処理部（２）１１０−２に処理Ｄ用プログラムをロードする（ｔ7〜ｔ8）。引き続いてコントローラ部１７０は、データメモリ１５０の処理Ｃ後画像データにおける前半部分の分割データ１を処理部（１）１１０−１に、後半部分の分割データ２を処理部（２）１１０−２に転送する。処理部（１）１１０−１は、処理Ｃ後の分割データ１に対して処理Ｄを実行して、データメモリ１５０に書き戻し、これと並行に、処理部（２）１１０−２は、同じく処理Ｃ後の分割データ２に対して処理Ｄを実行して、データメモリ１５０に書き戻す（ｔ8〜ｔ9）。
【００８７】
これにより、入力画像データに対して処理Ａ〜Ｄがすべて実行されたことになる。時刻ｔ9以降、コントローラ部１７０は、データメモリ１５０の処理Ａ〜Ｄがすべて実行された処理後画像データをデータ出力部１３０に出力する。
【００８８】
本実施例では、処理対象の画像データに対して複数の異なる処理を順番に実行して、出力する場合、該画像データを分割し、各分割データごとに、処理部（１）１１０−１、処理部（２）１１０−２でそれぞれ各処理を順番に並行に行うことが可能であり、各処理用のプログラムのロードはそれぞれ一回でよく、さらに処理性能が向上する。
【００８９】
［実施例４］
図１２に本実施例におけるプログラムとデータの流れを示す。本実施例は、各々独立に入力される複数の画像データに対して、処理部（１）１１０−１と処理部（２）１１０−２でそれぞれ複数の処理を並列に実行するようにしたものである。
【００９０】
図１２は、一例として、外部Ｉ／Ｆ部１４０から各々独立に入力される画像データ（１）、画像データ（２）について、画像データ（１）は処理部（１）１１０−１に、画像データ（２）は処理部（２）１１０−２にそれぞれ受け持たせ、処理部（１）１１０−１が画像データ（１）に対して処理Ａと処理Ｃを、処理部（２）１１０−２が画像データ（２）に対して処理Ｂと処理Ｄを、それぞれ並列に実行し、処理後の画像データ（１）、画像データ（２）を大容量記憶部１６０に蓄積する例を示したものである。
【００９１】
以下に、図１２のプログラムとデータの流れを順を追って詳述する。
【００９２】
外部Ｉ／Ｆ部１４０入力された画像データ（１）、画像データ（２）は、それぞれシステムバス２００を通してデータメモリ１５０に格納される。図１２の処理前画像データ（１）、処理前画像データ（２）は、これを示している。ここで、画像データ（１）は処理Ａ、処理Ｃを実行し、画像データ（２）は処理Ｂ、処理Ｄを実行すべきことは、あらかじめ要求元から通知され、コントローラ部１７０が既知であるとする。
【００９３】
コントローラ部１７０は、まず、データメモリ１５０から処理Ａ用プログラムと処理Ｂ用プログラムを読み出し、システムバス２００を通してＤＭＡ形式で、処理Ａ用プログラムはデータ処理部１１０の処理部（１）１１０−１に、処理Ｂ用プログラムは処理部（２）１１０−２に送付する。処理部（１）１１０−１は、送付された処理Ａ用プログラムを処理用プログラムメモリ領域１１１−１に格納（ロード）し、処理部（２）１１０−２は、送付された処理Ｂ用プログラムを処理用プログラムメモリ領域１１１−２に格納（ロード）する。
【００９４】
次に、コントローラ部１７０は、データメモリ１５０から処理対象の画像データ（１）（処理前画像データ（１））及び画像データ（２）（処理前画像データ（２））を読み出し、システムバス２００を通してＤＭＡ形式で、画像データ（１）はデータ処理部１１０の処理部（１）１１０−１に、画像データ（２）は処理部（２）１１０−２に転送する。処理部（１）１１０−１は、データメモリ１５０から転送された画像データ（１）をデータメモリ領域１１２−１に格納して、該画像データ（１）に対して、処理用プログラムメモリ領域１１１−１の処理Ａ用プログラムに基づいて所定の処理Ａを実行し、処理Ａ後の画像データ（１）を、システムバス２００を通してデータメモリ１５０に書き戻す。図１２の処理後画像データ（１）はこれを示している。この処理部（１）１１０−１の処理と並行して、処理部（２）１１０−２は、データメモリ１５０から転送された画像データ（２）をデータメモリ領域１１２−２に格納して、該画像データ（２）に対して、処理用プログラムメモリ領域１１１−２の処理Ｂ用プログラムに基づいて所定の処理Ｂを実行し、処理Ｂ後の画像データ（２）を、システムバス２００を通してデータメモリ１５０に書き戻す。図１２の処理後画像データ（２）はこれを示している。
【００９５】
コントローラ部１７０は、データ処理部１１０の処理部（１）１１０−１、処理部（２）１１０−２からの終了通知、あるいは、自身によるデータメモリ１５０へのデータ書き戻し監視等により、処理部（１）１１０−１、処理部（２）１１０−２での処理Ａ、処理Ｂの終了を確認すると、次に、データメモリ１５０から処理Ｃ用プログラムと処理Ｄ用プログラムを読み出し、システムバス２００を通してＭＤＡ形式で、処理Ｃ用プログラムはデータ処理部１１０の処理部（１）１１０−１に、処理Ｄ用プログラムは処理部（２）１１０−２に送付する。処理部（１）１１０−１、処理部（２）１１０−２では、送付された処理Ｃ用プログラムあるいは処理Ｄ用プログムを、それまでの処理Ａ用プログラムあるいは処理Ｂ用プログラムを上書きする形式でそれぞれ処理用プログラムメモリ領域１１１−１、処理用プログラムメモリ１１１−２に格納する。
【００９６】
次に、コントローラ部１７０は、データメモリ１５０から処理Ａ後の画像データ（１）及び処理Ｂ後の画像データ（２）を読み出し、システムバス２００を通してＤＭＡ形式で、該処理Ａ後の画像データ（１）はデータ処理部１１０の処理（１）１１０−１に、処理Ｂ後の画像データ（２）は処理部（２）１１０−２に転送する。処理部（１）１１０−１は、データメモリ１５０から転送された処理Ａ後の画像データ（１）をデータメモリ領域１１２−１に格納して、該画像データ（１）に対して、処理用プログラムメモリ領域１１１−１の処理Ｃ用プログラムに基づいて所定の処理Ｃを実行し、処理Ｃ後の画像データ（１）を、システムバス２００を通してデータメモリ１５０に書き戻す。この処理部（１）１１０−１の処理と並行して、処理部（２）１１０−２は、データメモリ１５０から転送された処理Ｂ後の画像データ（２）をデータメモリ領域１１２−２に格納して、該画像データ（２）に対して、処理用プログラムメモリ領域１１１−２の処理Ｄ用プログラムに基づいて所定の処理Ｄを実行し、処理Ｄ後の画像データ（２）を、システムバス２００を通してデータメモリ１５０に書き戻す。
【００９７】
以上により、画像データ（１）に対する処理Ａと処理Ｃの処理、画像データ（２）に対する処理Ｂと処理Ｄの処理が終了する。最後に、コントローラ部１７０は、データメモリ１５０から処理Ａ，処理Ｃの処理後画像データ（１）と、処理Ｂ，処理Ｄの処理後画像データ（２）を読み出し、システムバス２００を通して大容量記憶部１６０に格納する。この大容量記憶部１６０に格納された処理後画像データは、例えば、要求元からの要求等に応じて、制御ＣＰＵ１９０等の制御下で要求元に返送されることになる。なお、処理後画像データを一旦、大容量記憶部１６０に蓄積することなく、外部Ｉ／Ｆ部１４０から直ちに要求元に返送することも可能である。
【００９８】
図１３に本実施例のタイムチャートを示す。時刻ｔ0〜ｔ1で、外部Ｉ／Ｆ部１４０からそれぞれ画像データ（１）、画像データ（２）が入力される。コントローラ部１７０は、まず、処理部（１）１１０−１、処理部（２）１１０−２にそれぞれ処理Ａ用プログラム、処理Ｂ用プログラムをロードする（ｔ1〜ｔ2）。引き続いてコントローラ部１７０は、データメモリ１５０の画像データ（１）を処理部（１）１１０−１に、画像データ（２）を処理部（２）１１０−２に転送する。処理部（１）１１０−１は、画像データ（１）に対して処理Ａを実行して、データメモリ１５０に書き戻し、これと並行に、処理部（２）１１０−２は画像データ（２）に対して処理Ｂを実行して、データメモリ１５０に書き戻す（ｔ2〜ｔ3）。
【００９９】
次に、コントローラ部１７０は、処理部（１）１１０−１、処理部（２）１１０−２にそれぞれ処理Ｃ用プログラム、処理Ｄ用プログラムをロードする（ｔ3〜ｔ4）。引き続いてコントローラ部１７０は、データメモリ１５０の処理後画像データにおける処理Ａ後の画像データ（１）を処理部（１）１１０−１に、処理Ｂ後の画像データ（２）を処理部（２）１１０−２に転送する。処理部（１）１１０−１は、処理Ａ後の画像データ（１）に対して処理Ｃを実行して、データメモリ１５０に書き戻し、これと並行に、処理部（２）１１０−２は、処理Ｂ後の画像データ（２）に対して処理Ｄを実行して、データメモリ１５０に書き戻す（ｔ4〜ｔ5）。最後に、時刻ｔ6以降、コントローラ部１７０は、データメモリ１５０から処理Ａ，Ｃ後の画像データ（１）、処理Ｂ，Ｄ後の画像データ（２）を読み出して大容量記憶部１６０に格納する。
【０１００】
本実施例によれば、各々独立に入力される複数の画像データに対して、処理部（１）１１０−１と処理部（２）１１０−２を用いてそれぞれ所望の処理を並列に実行することが可能であり、同様に処理性能が向上する。
【０１０１】
以上、本発明の実施形態をいくつか説明したが、本発明はこれらの実施形態に限定されるものでないことは云うまでもない。また、データ処理部内の処理部は２組としたが、勿論、それ以上でもよく、それらの処理部を並行に動作させることにより、さらなる性能の向上が可能になる。
【図面の簡単な説明】
【０１０２】
【図１】本発明の画像処理装置のシステム構成例を示す図。
【図２】本発明のデータ処理部でのぐるぐる回し処理概念図。
【図３】本発明の実施例１のプログラムとデータの流れを示す図。
【図４】実施例１のタイムチャートを示す図。
【図５】本発明の実施例２のプログラムとデータの流れを示す図。
【図６】本発明の実施例２のプログラムとデータの流れの続きを示す図。
【図７】実施例２のデータメモリ内の処理後画像データの遷移図。
【図８】実施例２のタイムチャートを示す図。
【図９】本発明の実施例３のプログラムとデータの流れを示す図。
【図１０】実施例３のプログラムとデータの流れの続きを示す図。
【図１１】実施例３のタイムチャートを示す図。
【図１２】本発明の実施例４のプログラムとデータの流れを示す図。
【図１３】実施例４のタイムチャートを示す図。
【図１４】従来のＡＳＩＣを使用した画像処理装置のシステム構成図。
【図１５】図１４のＡＳＩＣ内の処理フローを示す図。
【図１６】従来のＤＳＰを使用した画像処理装置のシステム構成図。
【図１７】図１６のＤＳＰ内の処理フローを示す図。
【符号の説明】
【０１０３】
１１０      データ処理部
１１０−１  処理部（１）
１１１−１  処理用プログラムメモリ領域
１１２−１  データメモリ領域
１１０−２  処理部（２）
１１１−２  処理用プログラムメモリ領域
１１２−２  データメモリ領域
１２０      データ入力部
１３０      データ出力部
１４０      外部Ｉ／Ｆ部
１５０      データメモリ
１６０      大容量記憶部
１７０      コントローラ部
１８０      記録媒体
１９０      制御ＣＰＵ
２００      システムバス
【図１】
0004640989.tif 000002
【図２】
0004640989.tif 000003
【図３】
0004640989.tif 000004
【図４】
0004640989.tif 000005
【図５】
0004640989.tif 000006
【図６】
0004640989.tif 000007
【図７】
0004640989.tif 000008
【図８】
0004640989.tif 000009
【図９】
0004640989.tif 000010
【図１０】
0004640989.tif 000011
【図１１】
0004640989.tif 000012
【図１２】
0004640989.tif 000013
【図１３】
0004640989.tif 000014
【図１４】
0004640989.tif 000015
【図１５】
0004640989.tif 000016
【図１６】
0004640989.tif 000017
【図１７】
0004640989.tif 000018