(57)【特許請求の範囲】
【請求項１】
各々異なるデータ処理を行う複数の処理手段が接続されたパイプライン制御装置であって、
前記複数の処理手段のうちいずれかで処理されたデータを他の処理手段へ転送するデータ伝送手段と、
前記複数の処理手段の各々に対応して設けられ、前記複数の処理手段による複数の処理の順序を示したプロセスデータに基づき前記データ伝送手段上を流れるデータがその対応する処理手段で処理すべきものか否かを判定する複数の判定手段と、
前記複数の処理手段の各々に対応して設けられ、前記判定手段によって処理すべきデータと判定された場合に、前記プロセスデータに示された前記複数の処理手段による複数の処理の順序に基づいて前記データ伝送手段上を流れるデータを次にすべき処理に対応する処理手段へ出力する複数の出力手段と、
前記複数の処理手段の各々に対応して設けられ、対応する処理手段によって処理されたデータを前記データ伝送手段から受け付ける複数の入力手段と
を備えていることを特徴とするパイプライン制御装置。
【請求項２】
前記複数の処理手段の各々に対応して設けられ、前記判定手段で処理すべきであると判定されたデータの処理後のデータに、前記プロセスデータから処理を行った処理手段の示されている順番を削除して残りの順番を新たなプロセスデータとして付加するプロセスデータ付加手段を備えている
ことを特徴とする請求項１記載のパイプライン制御装置。
【請求項３】
各々異なるデータ処理を行う複数の処理手段が接続され、前記複数の処理手段による複数の処理を所定の順序で行うデータ処理方法であって、
前記複数の処理手段の各々に対応して設けられた判定手段によって、前記複数の処理手段による複数の処理の順序を示したプロセスデータに基づき前記データ伝送手段上を流れるデータがその対応する処理手段で処理すべきものか否かを判定するステップと、
前記複数の処理手段の各々に対応して設けられ、前記判定手段によって処理すべきデータと判定された場合に、前記プロセスデータに示された前記複数の処理手段による複数の処理の順序に基づいて前記データ伝送手段上を流れるデータを次にすべき処理に対応する他の処理手段へ出力するステップと
を備えることを特徴とするデータ処理方法。
【請求項４】
前記複数の処理手段の各々に対応して設けられ、前記判定手段で処理すべきであると判定されたデータの処理後のデータに、前記プロセスデータから処理を行った処理手段の示されている順番を削除して残りの順番を新たなプロセスデータとして付加するステップ
を備えることを特徴とする請求項３記載のデータ処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、各々異なるデータ処理を行う複数の処理手段が接続され、任意のパイプラインを構成することができるパイプライン制御装置およびデータ処理方法に関する。
【０００２】
【従来の技術】
従来のパイプライン制御として、特開昭６２−１３８９７３号公報に記載されるパイプラインマルチ接続制御方式では、パイプラインの構成要素の各モジュールに付設された制御手段に、処理数とイニシャルスキップ数とインタバルスキップ数とを設定し、この設定値に従い、システムタイミングに同期して各モジュールが画像データを取り込むまたは出力するタイミングを選択できるようにし、１組の画像データバスを介して複数個のモジュール間を接続するパイプラインマルチ接続を可能とする技術が開示されている。
【０００３】
【発明が解決しようとする課題】
しかしながら、このようなパイプライン制御では、ひとつのデータ転送の流れを決定するのにすべての処理モジュールおよび入出力モジュールに設定を行う必要があり、処理の順序や段数の変更への対応にも多くの手順を踏む必要がある。また、処理および入出力モジュール毎に入出力制御部を持つ必要があり、データ転送制御部が全体でのシステムに占める割合が大きくなってしまうという問題がある。
【０００４】
【課題を解決するための手段】
本発明はこのような課題を解決するために成されたパイプライン制御装置である。すなわち、本発明は、各々異なるデータ処理を行う複数の処理手段が接続されたパイプライン制御装置であって、複数の処理手段のうちいずれかで処理されたデータを他の処理手段へ転送するデータ伝送手段と、複数の処理手段の各々に対応して設けられ、複数の処理手段による複数の処理の順序を示したプロセスデータに基づきデータ伝送手段上を流れるデータがその対応する処理手段で処理すべきものか否かを判定する複数の判定手段と、複数の処理手段の各々に対応して設けられ、判定手段によって処理すべきデータと判定された場合に、プロセスデータに示された複数の処理手段による複数の処理の順序に基づいてデータ伝送手段上を流れるデータを次にすべき処理に対応する処理手段へ出力する複数の出力手段と、複数の処理手段の各々に対応して設けられ、対応する処理手段によって処理されたデータをデータ伝送手段から受け付ける複数の入力手段とを備えている。
【０００５】
また、複数の処理手段の各々に対応して設けられ、判定手段で処理すべきであると判定されたデータの処理後のデータに、プロセスデータから処理を行った処理手段の示されている順番を削除して残りの順番を新たなプロセスデータとして付加するプロセスデータ付加手段を備えているものでもある。
【０００６】
本発明では、データ伝送手段を介して複数の処理手段が接続されており、データに付加されたプロセスデータを、各処理手段に対応して設けられた判定手段が各々参照することで、データの処理を行う処理手段の順番が決まる。つまり、各処理手段は、データがどの処理手段から送られるかや、処理済のデータをどの処理手段へ転送するかということを認識せずに処理を行うことができる。また、プロセスデータを組み換えることで、任意のパイプラインを構成することができるようになる。
【０００７】
【発明の実施の形態】
以下に、本発明のパイプライン制御装置における実施の形態を図に基づいて説明する。図１は本実施形態におけるパイプライン制御装置のブロック図、図２はパイプライン制御装置の構成例を示すブロック図である。本実施形態では、主として画像処理装置にパイプライン制御装置を適用する場合を例とする。
【０００８】
図２に示すように、本実施形態におけるパイプライン制御装置１には、画像データ入力部２と、画像データ処理部（Ａ）３と、画像データ処理部（Ｂ）４と、画像データ出力部４とが各々データ伝送手段であるスロット（第１スロット１０１、第２スロット２０１、第３スロット３０１、第４スロット４０１）に接続されている。
【０００９】
図１に示すように、このパイプライン制御装置１は、各々のスロットに対応して構成さている。すなわち、図１に示すパイプライン制御装置１には４つのスロット（第１スロット１０１、第２スロット２０１、第３スロット３０１、第４スロット４０１）が設けられている。
【００１０】
このうちの第１スロット１０１に対しては、プロセスデータ付加部（１）１０２、データ入力部（１）１０３、プロセスＩＤ格納部（１）１０４、プロセスＩＤ反転部（１）１０５、データ出力部（１）１０６、プロセスデータ分離部（１）１０７、プロセスデータ格納部（１）１０８が設けられている。この第１スロット１０１には、図２に示す画像データ入力部２が接続されている。
【００１１】
また、第２スロット２０１に対しては、プロセスデータ付加部（２）２０２、データ入力部（２）２０３、プロセスＩＤ格納部（２）２０４、プロセスＩＤ反転部（２）２０５、データ出力部（２）２０６、プロセスデータ分離部（２）２０７、プロセスデータ格納部（２）２０８が設けられている。この第２スロット２０１には、図２に示す画像データ処理部（Ａ）３が接続されている。
【００１２】
また、第３スロット３０１に対しては、プロセスデータ付加部（３）３０２、データ入力部（３）３０３、プロセスＩＤ格納部（３）３０４、プロセスＩＤ反転部（３）３０５、データ出力部（３）３０６、プロセスデータ分離部（３）３０７、プロセスデータ格納部（３）３０８が設けられている。この第３スロット３０１には、図２に示す画像データ処理部（Ｂ）４が接続されている。
【００１３】
さらに、第４スロット３０１に対しては、プロセスデータ付加部（４）４０２、データ入力部（４）４０３、プロセスＩＤ格納部（４）４０４、プロセスＩＤ反転部（４）４０５、データ出力部（４）４０６、プロセスデータ分離部（４）４０７、プロセスデータ格納部（４）４０８が設けられている。この第４スロット４０１には、図２に示す画像データ出力部５が接続されている。
【００１４】
図３は、本実施形態におけるパイプライン制御装置１において取り扱われるデータに付加されたプロセスデータのフォーマット例を示す図である。このようにプロセスデータ部分は、所望の処理の順番に沿って記述されたプロセスＩＤと、プロセスデータ終了コードとから構成されている。また、処理対象となるデータはプロセスデータ部分の後ろにある。
【００１５】
本実施形態のパイプライン制御装置１は、このデータに付加されたプロセスデータ部分のプロセスＩＤに沿った順にデータを転送し、パイプラインを構成することになる。つまり、パイプライン制御装置１によってプロセスＩＤを判別し、対応する各処理手段である画像データ入力部２、画像データ処理部（Ａ）３、画像データ処理部（Ｂ）４、画像データ出力部５へデータを転送する。
【００１６】
各処理手段である画像データ入力部２、画像データ処理部（Ａ）３、画像データ処理部（Ｂ）４、画像データ出力部５プロセスＩＤは、データのみを受け取って処理を行い、パイプライン制御装置１へ転送するため、データがどの処理手段から送られるかや、処理済のデータをどの処理手段へ転送するかということを認識せずに処理を行うことができる。
【００１７】
次に、具体的なデータの処理例について説明する。図４はプロセスデータの構成例を示す図（その１）である。このプロセスデータは、プロセスＩＤ２、プロセスＩＤ３、プロセスＩＤ４、プロセスデータ終了コード（Process End ）から構成されている。つまり、このプロセスデータは、画像入力部２で得たデータを第２スロット２０１に接続された画像データ処理部（Ａ）３で処理し、次に第３スロット３０１に接続された画像データ処理部（Ｂ）４で処理した後、最後に第４スロット４０１に接続された画像データ出力部５で処理する順序が記述されている。
【００１８】
図５は、図４に示すプロセスデータに基づく順序で処理を行う際のデータ転送タイミングを説明する図である。すなわち、画像データ入力部２からはプロセスデータの付加された画像データがパイプライン制御装置１へ転送される。パイプライン制御装置１では、このプロセスデータを参照して最初に画像データ処理部（Ａ）３へ画像データのみを転送する。
【００１９】
次に、処理（Ａ）済の画像データは画像データ処理部（Ａ）３からパイプライン制御装置１へ転送され、ここで先のプロセスデータを参照して処理（Ａ）済の画像データを画像データ処理部（Ｂ）４へ転送する。処理（Ａ）および処理（Ｂ）済の画像データは、画像データ処理部（Ｂ）４からパイプライン制御装置１へ転送され、先のプロセスデータを参照して画像データ処理部５へ転送される。
【００２０】
この流れを図１に基づいて説明すると、先ず、画像データが入力される前では、パイプライン制御装置１の各プロセスデータ格納部すなわちプロセスデータ格納部（１）１０８、プロセスデータ格納部（２）２０８、プロセスデータ格納部（３）３０８、プロセスデータ格納部（４）４０８、の内容はクリアされている。
【００２１】
この状態で図４に示すようなプロセスデータ付きの画像データが第１スロット１０１に入力されると、その画像データはデータ入力部（１）１０３を経て第２スロット２０１に対応したプロセスＩＤ判別部（２）２０５、第３スロット３０１に対応したプロセスＩＤ判別部（３）３０５、第４スロット４０１に対応したプロセスＩＤ判別部（４）４０５へ送られる。
【００２２】
プロセスＩＤ判別部（２）２０５、プロセスＩＤ判別部（３）３０５、プロセスＩＤ判別部（４）４０５は、各々プロセスＩＤ格納部（２）２０４、プロセスＩＤ格納部（３）３０４、プロセスＩＤ格納部（４）４０４に格納されている各スロットに対応したプロセスＩＤと、プロセスデータの一番上にあるプロセスＩＤとの一致、不一致を判別する。
【００２３】
図４に示すプロセスデータでは、一番上にあるプロセスＩＤが「２」であるため、第２スロット２０１に対応したプロセスＩＤ判別部（２）２０５が、このプロセスＩＤの一致を判別し、画像データをデータ出力部（２）２０６からプロセスデータ分離部（２）２０７へ渡す。
【００２４】
プロセスデータ分離部（２）２０７では、プロセスデータ付きの画像データをプロセスデータと画像データとに分離し、プロセスデータの先頭のプロセスＩＤ（ここでは、プロセスＩＤ２）を除去して残り（ここでは、プロセスＩＤ３、４）をプロセスデータ格納部（２）２０８に格納する。そして、プロセスデータを分離した残りの画像データのみを第２スロット２０１から画像データ処理部（Ａ）３へ転送することになる。
【００２５】
次に、画像データ処理部（Ａ）３にて処理された画像データ（処理Ａ済）は、再び第２スロット２０１から入力され、プロセスデータ付加部（２）２０２へ渡される。プロセスデータ付加部（２）２０２では、渡された画像データ（処理Ａ済）へプロセスデータ格納部（２）２０８に格納されているプロセスデータを付加する。これにより、画像データ（処理Ａ済）には、プロセスデータ（プロセスＩＤ３、４）が付加され、データ入力部（２）２０３へ渡される。
【００２６】
データ入力部（２）２０３へ渡されたプロセスデータ付きの画像データは、プロセスＩＤ判定部（１）１０５、プロセスＩＤ判定部（３）３０５、プロセスＩＤ判定部（４）４０５へ渡される。
【００２７】
そして、先と同様に、プロセスＩＤ判定部（１）１０５、プロセスＩＤ判定部（３）２０５、プロセスＩＤ判定部（４）４０５は、各々プロセスＩＤ格納部（１）１０４、プロセスＩＤ格納部（３）３０４、プロセスＩＤ格納部（４）４０４に格納されている各スロットに対応したプロセスＩＤと、プロセスデータの一番上にあるプロセスＩＤとの一致、不一致を判別する。
【００２８】
この段階では、プロセスデータの一番上にあるプロセスＩＤが「３」となっていることから、第３スロット３０１に対応したプロセスＩＤ判別部（３）３０５が、このプロセスＩＤの一致を判別し、画像データをデータ出力部（３）３０６からプロセスデータ分離部（３）３０７へ渡す。
【００２９】
プロセスデータ分離部（３）３０７では、プロセスデータ付きの画像データをプロセスデータと画像データとに分離し、プロセスデータの先頭のプロセスＩＤ（ここでは、プロセスＩＤ３）を除去して残り（ここでは、プロセスＩＤ４）をプロセスデータ格納部（３）３０８に格納する。そして、プロセスデータを分離した残りの画像データのみを第３スロット３０１から画像データ処理部（Ｂ）４へ転送することになる。
【００３０】
さらに、画像データ処理部（Ｂ）４にて処理された画像データ（処理Ａ、Ｂ済）は、再び第３スロット３０１から入力され、プロセスデータ付加部（３）３０２へ渡される。プロセスデータ付加部（３）３０２では、渡された画像データ（処理Ａ、Ｂ済）へプロセスデータ格納部（３）３０８に格納されているプロセスデータを付加する。これにより、画像データ（処理Ａ、Ｂ済）には、プロセスデータ（プロセスＩＤ４）が付加され、データ入力部（３）３０３へ渡される。
【００３１】
データ入力部（３）３０３へ渡されたプロセスデータ付きの画像データは、プロセスＩＤ判定部（１）１０５、プロセスＩＤ判定部（２）２０５、プロセスＩＤ判定部（４）４０５へ渡される。
【００３２】
そして同様に、プロセスＩＤ判定部（１）１０５、プロセスＩＤ判定部（２）２０５、プロセスＩＤ判定部（４）４０５は、各々プロセスＩＤ格納部（１）１０４、プロセスＩＤ格納部（２）２０４、プロセスＩＤ格納部（４）４０４に格納されている各スロットに対応したプロセスＩＤと、プロセスデータの一番上にあるプロセスＩＤとの一致、不一致を判別する。
【００３３】
この段階では、プロセスデータの一番上にあるプロセスＩＤが「４」となっていることから、第４スロット４０１に対応したプロセスＩＤ判別部（４）４０５が、このプロセスＩＤの一致を判別し、画像データをデータ出力部（４）４０６からプロセスデータ分離部（４）４０７へ渡す。
【００３４】
プロセスデータ分離部（４）４０７では、プロセスデータ付きの画像データをプロセスデータと画像データとに分離し、プロセスデータの先頭のプロセスＩＤ（ここでは、プロセスＩＤ４）を除去して残り（ここでは、プロセスデータ終了コード）をプロセスデータ格納部（４）４０８に格納する。なお、このプロセスデータ終了コードを格納した時点で、次の処理を行った後のデータをスロットから入力する必要がなくなる。そして、プロセスデータを分離した残りの画像データのみを第４スロット４０１から画像データ出力部５へ転送することになる。
【００３５】
このような一連の処理により、画像データに付加されたプロセスＩＤの順序に沿って各処理手段での処理が実行される。また、この際、各処理手段へは画像データのみを渡すため、処理手段側では画像データがどこから渡されたかや、処理後の画像データをどこへ渡すかを認識することなく画像データの処理のみを行えばよいことになる。
【００３６】
図６はデータの流れを説明する図である。この例では、第２スロットにデータが入力され、プロセスデータ格納部（２）２０８にプロセスＩＤ４、３が格納されている場合を示している。
【００３７】
プロセスデータ付加部（２）２０２では、データ入力部（２）２０３に対してデータにプロセスデータ格納部（２）２０８に格納されたプロセスＩＤをプロセスデータとして付加して出力する。これにより、データの先頭部分にプロセスデータとしてプロセスＩＤ４、３が付加される。
【００３８】
このプロセスデータの付加されたデータは、各スロットに対応したプロセスＩＤ判定部（１）１０５、プロセスＩＤ判定部（３）３０５、プロセスＩＤ判定部（４）４０５へ渡される。
【００３９】
そして、プロセスＩＤ判定部（１）１０５、プロセスＩＤ判定部（３）３０５、プロセスＩＤ判定部（４）４０５は、各々プロセスＩＤ格納部（１）１０４、プロセスＩＤ格納部（３）３０４、プロセスＩＤ格納部（４）４０４に格納されている各スロットに対応したプロセスＩＤと、プロセスデータの一番上にあるプロセスＩＤとの一致、不一致を判別する。
【００４０】
この段階では、プロセスデータの一番上にあるプロセスＩＤが「４」となっていることから、第４スロット４０１に対応したプロセスＩＤ判別部（４）４０５が、このプロセスＩＤの一致を判別し、画像データをデータ出力部（４）４０６からプロセスデータ分離部（４）４０７へ渡す。
【００４１】
プロセスデータ分離部（４）４０７では、プロセスデータ付きの画像データをプロセスデータと画像データとに分離し、プロセスデータの先頭のプロセスＩＤ（ここでは、プロセスＩＤ４）を除去して残り（ここでは、プロセスＩＤ３）をプロセスデータ格納部（４）４０８に格納する。そして、プロセスデータを分離した残りの画像データのみを第４スロット４０１から画像データ出力部５へ転送することになる。
【００４２】
このように、本実施形態におけるパイプライン制御装置１では、データに付加されたプロセスデータに沿って各処理が行われることから、このプロセスデータを組み換えることで、任意のパイプラインを構成できることになる。例えば、画像データに対してデータ処理（Ｂ）〜データ処理（Ａ）〜データ出力〜データ入力という処理を行いたい場合には、図７に示すように、プロセスデータを、プロセスＩＤ３、プロセスＩＤ２、プロセスＩＤ４、プロセスＩＤ１、プロセスデータ終了コード（Process End ）の順に設定しておけば、各処理手段に対して何ら変更を加えることなくこの処理を実行するパイプラインを構成できるようになる。
【００４３】
また、画像データを流す前に各処理部／出力部に動作パラメータの設定を行う必要がある場合は、図８に示すようなパラメータ設定用プロセスデータを図９に示すようなタイミングでパイプライン制御装置１へ送るようにする。
【００４４】
すなわち、図８に示すプロセスデータの先頭には、パラメータが設定される処理部／出力部が接続されているスロットのプロセスＩＤを記述し、２段目には、画像データ入力部２が接続されているスロットのプロセスＩＤを記述する。さらに、プロセスデータ終了コードの後には、先の例の画像データの代わりにパラメータであることを示すコード（パラメータコード）と、設定パラメータとがある。
【００４５】
このようなプロセスデータによって、図９に示すように画像データ入力部２から入力したパラメータは、画像データ処理部（Ａ）３や画像データ処理部（Ｂ）４、画像データ出力部５に渡され、各処理部／出力部からは画像データ入力部２に対してステータスを返すようになる。
【００４６】
また、各処理部／出力部へのステータス要求のみを行いたい場合には、図８に示すパラメータコードの代わりにステータスを要求するコードを記述してパラメータ設定時と同様なタイミングで送るようにすればよい。
【００４７】
なお、パラメータ設定やステータス要求を行うのは画像データ入力部２に限定されず、画像データ処理部（Ａ）３や画像データ処理部（Ｂ）４から画像データ入力部２や画像データ出力部５に対して行うようにしてもよい。
【００４８】
さらに、画像データ処理部（Ａ）３、画像データ処理部（Ｂ）４、画像データ出力部５（Ａ）３から画像入力および処理出力を制御したい場合には、例えば、図１０に示すようなプロセスデータを図１１に示すようなタイミングでパイプライン制御装置１へ送るようにすればよい。
【００４９】
図１０に示すプロセスデータの例では、画像データ処理部（Ａ）３から画像データ入力部２に対して画像データの要求を行い、その画像データを画像データ処理部（Ｂ）４で処理し、次いで画像データ処理部（Ａ）３で処理し、画像データ出力部５へ送るようにしている。また、画像データ出力部５からはステータスが画像データ処理部（Ａ）３へ送られるようになっている。
【００５０】
このように、画像データ処理部（Ａ）３、画像データ処理部（Ｂ）４、画像データ出力部５（Ａ）３から画像入力および処理出力を制御したい場合には、データの代わりにデータ要求を示すコード（データリクエスト）を転送するようにすればよい。
【００５１】
【発明の効果】
以上説明したように、本発明のパイプライン制御装置によれば次のような効果がある。すなわち、入力部から出力部までのデータ処理の流れが複雑になってもデータの先頭のプロセスデータのみでパイプラインの構成を変更できるため、複雑なバス制御が不要となり、処理の順序や段数の変更に対する対応が容易となる。また、入力部から連続して送られてくるデータに対して複数の処理を並列で行うことができ系全体の処理の高速化を図ることが可能となる。さらに、パイプライン制御装置に対して各々独立しスロットを介して接続される入力部、各処理部、出力部は、パイプラインのための入出力制御部を持つ必要がなく、ハードウェアおよびソフトウェア構成を非常に簡素化できることになる。
【図面の簡単な説明】
【図１】  本実施形態におけるパイプライン制御装置を説明するブロック図である。
【図２】  構成例を説明するブロック図である。
【図３】  プロセスデータフォーマット例を示す図である。
【図４】  プロセスデータの構成例を示す図（その１）である。
【図５】  データ転送タイミングを説明する図（その１）である。
【図６】  データの流れを説明する図である。
【図７】  プロセスデータの構成例を示す図（その２）である。
【図８】  プロセスデータの構成例を示す図（その３）である。
【図９】  データ転送タイミングを説明する図（その２）である。
【図１０】  プロセスデータの構成例を示す図（その４）である。
【図１１】  データ転送タイミングを説明する図（その３）である。
【符号の説明】
１  パイプライン制御装置
２  画像データ入力部
３  画像データ処理部（Ａ）
４  画像データ処理部（Ｂ）
５  画像データ出力部
【図１】
0003680446.tif 000002
【図２】
0003680446.tif 000003
【図３】
0003680446.tif 000004
【図４】
0003680446.tif 000005
【図５】
0003680446.tif 000006
【図６】
0003680446.tif 000007
【図７】
0003680446.tif 000008
【図８】
0003680446.tif 000009
【図９】
0003680446.tif 000010
【図１０】
0003680446.tif 000011
【図１１】
0003680446.tif 000012