(57)【特許請求の範囲】
【請求項１】
画面を構成する複数の画像データを処理して出力するためのデータ駆動型情報処理システムであって、
１つ以上の種類の異なる命令コードのそれぞれに対応して１つ以上の演算器を有し、命令コードを格納するための命令フィールドと、データを格納するためのデータフィールドとを少なくとも有したデータパケットを入力して、前記１つ以上の演算器のいずれかにより、該入力データパケットの前記データフィールドの内容を前記命令フィールドの前記命令コードに従い処理して、処理結果を該入力データパケットの前記データフィールドに格納して、該入力データパケットを出力する演算部と、
複数の前記命令コードを含むデータフロープログラムを記憶したプログラム記憶部を有し、前記演算部から出力された前記データパケットを入力して、前記プログラム記憶部から読出された次位の前記命令コードを、該入力データパケットの前記命令フィールドに格納して、該入力データパケットを前記データ駆動型情報処理システムの外部または前記演算部に出力する制御部とを備え、
前記１つ以上の演算器には、前記入力データパケットの前記データフィールドの複数の前記画像データを、該入力データパケットの前記命令フィールドの所定の前記命令コードに従って所定演算する所定演算器が含まれ、
前記データフィールドの前記複数の画像データに対応した前記画面の走査に従う時系列の順番は、異なることを特徴とする、データ駆動型情報処理システム。
【請求項２】
前記所定の命令コードには、前記画面を構成する前記複数の画像データを圧縮するための演算を指示するコードが含まれることを特徴とする、請求項１に記載のデータ駆動型情報処理システム。
【請求項３】
前記所定の命令コードには、前記画面を構成する圧縮された前記複数の画像データを伸張するための演算を指示するコードが含まれていることを特徴とする、請求項１ないし２のいずれかに記載のデータ駆動型情報処理システム。
【請求項４】
前記所定演算は、バタフライ演算であることを特徴とする、請求項２または３に記載のデータ駆動型情報処理システム。
【請求項５】
前記所定の命令コードには、前記入力データパケットの前記データフィールドの複数の前記画像データを並び替えることを指示するコードが含まれていることを特徴とする、請求項１ないし４のいずれかに記載のデータ駆動型情報処理システム。
【請求項６】
前記データ駆動型情報処理システムは、
前記画面を構成する複数の前記画像データが予め格納された画像記憶部と、
与えられる前記データパケットの内容に基づくアドレス指定により、前記画像記憶部をアクセスして、アクセス結果を前記データパケットの前記データフィールドに格納して、該データパケットを前記演算部に出力するアクセス部とをさらに有し,
前記アクセス結果には、該データパケットの前記命令フィールドの前記命令コードにより処理される前記複数の画像データが含まれることを特徴とする、請求項１ないし５のいずれかに記載のデータ駆動型情報処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はデータ駆動型情報処理システムに関し、特に、映像信号による画像データを処理できるデータ駆動型情報処理システムに関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
映像信号処理などの大量データの高速処理が望まれる場合には、並列処理が有効である。並列処理向きアーキテクチャのうちでも、データ駆動型と呼ばれるものは特に注目される。
【０００３】
データ駆動型情報処理システムでは、「ある処理に必要な入力データがすべて揃い、かつその処理に必要な演算装置などの資源が割当てられたときに処理が行なわれる」という規則に従って処理が並列に進行する。
【０００４】
図１６は従来の映像処理向けデータ駆動型情報処理システムのブロック構成図である。図１６と同様のブロック構成は、文献「動的データ駆動型プロセッサによる並列処理方式の検討」（情報処理学会主催のマイクロコンピュータアーキテクチャシンポジウム１９９１．１１．１２）に示される。
【０００５】
図１７（Ａ）と（Ｂ）は、従来のデータパケットのフィールド構成図である。図１７（Ａ）においてデータパケットは命令コードＣを格納するフィールドＦ１、ノード番号Ｎを格納するフィールドＦ２、世代番号Ｇを格納するフィールドＦ３、データＤ１を格納するフィールドＦ４およびデータＤ２を格納するフィールドＦ５を含む。
【０００６】
図１６において映像処理向けデータ駆動型情報処理システムは、データ駆動型情報処理装置６２および画像メモリ部６１を含み、画像メモリ部６１は、画面を構成する複数の画像データが予め格納される画像メモリ６３およびメモリインターフェイス６４を含む。データ駆動型情報処理装置６２はデータ伝送路６５、６６および７０のそれぞれが接続される入力ポートＩＡ，ＩＢおよびＩＶ、ならびにデータ伝送路６７、６８および６９のそれぞれが接続される出力ポートＯＡ、ＯＢおよびＯＶを含む。
【０００７】
データ駆動型情報処理装置６２はデータ伝送路６５または６６から入力ポートＩＡまたはＩＢを介して、信号入力のためのデータパケットが、時系列的に入力される。データ駆動型情報処理装置６２には、所定の処理内容がプログラムとして予め記憶されており、そのプログラム内容に基づく処理が実行される。
【０００８】
メモリインターフェイス６４はデータ駆動型情報処理装置６２の出力ポートＯＶから出力された画像メモリ６３に対するアクセス（画像メモリ６３の内容の参照／更新など）要求をデータ伝送路６６を介して受理する。メモリインターフェイス６４は受理したアクセス要求に従ってメモリアクセス制御線７１を介して画像メモリ６３に対してアクセスを行なった後、その結果を、データ伝送路７０および入力ポートＩＶを介してデータ駆動型情報処理装置６２に与える。
【０００９】
データ駆動型情報処理装置６２は、入力したデータパケットに対する処理が終了した後、出力ポートＯＡおよびデータ伝送路６７または出力ポートＯＢおよびデータ伝送路６８を介して信号出力のためのデータパケットを出力する。
【００１０】
図１８は図１６のデータ駆動型情報処理装置６２の構成図である。図において、データ駆動型情報処理装置６２は合流部７２、データ駆動型の処理を行なうための発火制御部７３、演算部７４およびプログラム記憶部７５、ならびに分岐部７６を含む。
【００１１】
合流部７２は、データ伝送路６５または６６を介して与えられるデータパケット、ならびに分岐部７６から出力されるデータパケットを順次入力して、発火制御部７３に出力する。発火制御部７３には、対となるデータパケットを検出する（これを発火という）のための待合メモリ７３１が含まれる。待合メモリ７３１は定数データが１つ以上格納される定数データメモリ７３２を含む。発火制御部７３は、待合メモリ７３１を利用して合流部７２から与えられるデータパケットについて必要に応じて待合を行なう。この結果、ノード番号Ｎおよび世代番号Ｇが一致する、すなわち対となる異なる２つのデータパケットのうち、一方のデータパケットのフィールドＦ４のデータＤ１およびフィールドＦ５のデータＤ２のいずれか１つを、他方のデータパケットのフィールドＦ４およびＦ５のいずれか一方に格納して、この他方のデータパケットを演算部７４に出力する。このとき、一方のデータパケットは消去される。
【００１２】
演算部７４は、発火制御部７３から与えられたデータパケットを入力して、データパケットの命令コードＣを解読して、解読結果に基づいて、所定の処理を行なう。命令コードＣがデータＤ１またはＤ２に対する演算命令を示す場合には、該命令コードＣに従い対応のデータＤ１またはＤ２について所定の演算処理が施されて、その結果は該データパケットのフィールドＦ４に格納されて、該データパケットはプログラム記憶部７５に出力される。また、命令コードＣが画像メモリ６３に対するアクセス命令を示す場合には、アクセス要求として、該データパケットを、データ伝送路６０を介してメモリインターフェイス６４に与える。
【００１３】
メモリインターフェイス６４は、データ伝送路６９を介して与えられたデータパケットを入力して、該入力データパケットの内容に従って、メモリアクセス制御線７１を介して画像メモリ６３をアクセスする。そのアクセスの結果は該入力データパケットのフィールドＦ４にデータＤ１として格納されて、該データパケットはデータ伝送路７０を介して演算部７４に与えられる。
【００１４】
プログラム記憶部７５は、複数の次位のノード番号Ｎと次位の命令コードＣとからなるデータフロープログラムが予め記憶されたプログラムメモリ４１を有する。プログラム記憶部７５は、演算部７４から与えられたデータパケットを入力し、該入力データパケットのノード番号Ｎに基づくアドレス指定によって、次位のノード番号Ｎおよび次位の命令コードＣを読出し、読出したノード番号Ｎおよび命令コードＣを、該入力データパケットのフィールドＦ２およびＦ１のそれぞれに格納して、該入力データパケットを分岐部７６に出力する。
【００１５】
図１７（Ａ）のデータパケットの命令コードＣは画像メモリ６３に対する処理の内容を指示する命令、たとえば画像メモリ６３の内容の参照あるいは更新などを含むプログラムに関する実行命令である場合には、世代番号Ｇには次のような内容が設定されている。つまり、世代番号Ｇは、本来、該データパケットの識別子である。具体的には、データパケットには、データ伝送路６５または６６を介してデータ駆動型情報処理装置６２に対して入力される時点において、世代番号Ｇは入力時系列の順序に従って割付けられている。世代番号Ｇは、発火制御部７３における対データ検出のためのデータ待合の際に利用されるとともに、画像メモリ部６１においては、画像メモリ６３をアクセスする際のアドレス指定に用いられる。このアドレス指定に用いられる場合には、世代番号Ｇは、上位ビットからフィールドアドレスＦＤ♯、ラインアドレスＬＮ♯およびピクセルアドレスＰＸ♯を示す。
【００１６】
データＤ１およびＤ２は、対応の命令コードＣの内容によって解釈されるデータである。たとえば命令コードＣが画像メモリ６３に対する内容更新を示す場合は、データＤ１は画像メモリ６３に書込まれるデータであり、データＤ２は意味を持たない。命令コードＣが画像メモリ６３に対する内容の参照を示す場合は、データＤ１およびＤ２は意味を持たない。
【００１７】
次に、図１６のデータ駆動型情報処理装置６２において、入力ポートＩＡまたはＩＢを介して映像信号入力のためのデータパケットが、時系列的に、たとえば画面の走査順番に従って入力されて、該入力データパケットの内容に対してバタフライ演算を行なう場合を説明する。まず、バタフライ演算について簡単に説明する。映像信号による大量の画像データを効率よく処理するために、高率でデータを圧縮するためにＤＣＴ（離散コサイン変換の略）およびＦＦＴ（高速フーリエ変換の略）ならびに圧縮されたデータを伸張するためのこれらの逆変換などが用いられる。ＤＣＴおよびＦＦＴならびにこれらの逆変換は、たとえば画像を圧縮・伸張する標準方式であるＭＰＥＧ（Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐの略）およびＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐの略）において採用されている。
【００１８】
例えば、ＤＣＴによる画像の圧縮は、画像内の予め特定された小さなブロック（たとえば、８画素×８画素のブロック）のそれぞれについて、該ブロックに対応の複数の画像データに対して直交変換を施すものである。このようなＤＣＴにの演算をシリアルな演算処理とするために、バタフライ演算が採用される。ＤＣＴの演算にバタフライ演算が利用される場合には、ＤＣＴの複雑な演算は、積算と加算による単純な演算をシリアルに実行することで達成されるという特徴がある。この特徴は、この逆変換についても同様に得られる。また、同様な特徴は、ＦＦＴによる画像の圧縮および伸張についても得られる。
【００１９】
図１９は、従来のバタフライ演算を含む処理を示すデータフローグラフである。このデータフローグラフは、データフロープログラムとして予め、プログラム記憶部７５のプログラムメモリ７５１にストアされている。
【００２０】
画像データを処理する場合、異なる世代番号Ｇのパケット同士、すなわちピクセルアドレスＰＸ♯の異なる画素データ同士を演算する場合がある。しかしながら、従来のデータ駆動型情報処理システムでは、異なる世代番号Ｇのデータパケット同士は演算することができなかったので、このような不都合を解消するために、演算部７４においてテーブルメモリ７４１が設けられていた。テーブルメモリ７４１のアクセスを利用した処理により、従来のデータ駆動型情報処理システムであっても、異なる世代番号Ｇのデータパケット同士を演算することが可能であった。
【００２１】
具体的には、データ駆動型情報処理装置６２に入力したデータが、一旦、テーブルメモリ７４１に書込まれる。その後、所定の世代番号Ｇを有したデータパケットが入力されると、該入力データパケットの内容に基づいて、テーブルメモリ７４１がアクセスされて、アクセス結果得られたデータを用いて、乗算、加算、減算などの処理が行なわれていた。この処理を、図１９のフローグラフに従い具体的に説明する。図１９では、ノード７８〜８６のそれぞれについて、該ノードにおいて実行される命令コードＣが示される。図において、命令コード“ＭＵＬ”は乗算命令を、命令コード“ＡＤＤ”は加算命令を、命令コード“ＳＵＢ”は減算命令をそれぞれ示す。また、図において命令コード“ＳＷＰＸ”は、入力するデータパケットを、そのピクセルアドレスＰＸ＃の値に従い、選択的に出力先のノードを分岐させる命令を示す。具体的には、入力データパケットのピクセルアドレスＰＸ＃が１であれば、該入力データパケットは右側のノード（ノード７９）に出力されて、０であれば、左側のノード（ノード８０〜８２）に出力される。図において命令コード“ＴＲＥＰＰＸ”は、テーブルメモリ７４１の内容を更新する命令である。具体的には、与えられるデータパケットのピクセルアドレスＰＸ♯に基づいてテーブルメモリ７４１をアドレス指定して、該データパケットのデータＤ１を書込むことを指示する。命令コード“ＴＳＥＬ”は、テーブルメモリ７４１の内容を参照する命令である。具体的にはテーブルメモリ７４１を、与えられたデータに基づいてアドレス指定して、指定されたアドレスから読出されたデータを、この際に入力したデータパケット中のフィールドＦ４およびＦ５のいずれか一方に格納して、該データパケットを出力することを指示する。
【００２２】
まず、例として、次の２つのデータパケットが入力されて処理が実行される。一方のデータパケットには、ピクセルアドレスＰＸ♯として１、およびデータＤ１としてＡ１が格納される。他方のデータパケットにはピクセルアドレスＰＸ♯として０、およびデータＤ１としてＡ０が格納される。なお、ノード８０に割当てられた命令コード“ＴＳＥＬ”に対応のテーブルメモリ７４１をアドレス指定するために用いられるアドレスは、該ノード８０の左側に与えられている定数データ（＝１）とする。該定数データは定数データメモリ７３２から読出されたデータである。
【００２３】
まず、一方のデータパケットについては、ノード７９において命令コード“ＴＲＥＰＰＸ”が実行される。その結果、テーブルメモリ７４１には、アドレスＰＸ♯（＝１）にデータＤ１（＝Ａ１）が書込まれる。なお、この明細書では、データＡｉ（ｉ＝０，１，２，３、…）は、演算の対象となる画像データを示す。また定数データＢｉ（ｉ＝０，１，２，３、…）は、バタフライ演算において演算の対象となる画像データＡｉを処理するための係数などの定数データを示す。
【００２４】
他方のデータパケットについては、ノード７８において命令コード“ＳＷＰＸ”が実行されることにより、コピー処理されて、３つのデータパケットが生成されて、その１つ目はノード８０に入力され、２つ目はノード８１に入力され、３つ目はノード８２に入力される。この１つ目のデータパケットについては、ノード８０において命令コード“ＴＳＥＬ”が実行される。その結果、テーブルメモリ７４１のアドレス（＝１）が指定されて、該指定アドレスに格納されたデータ、すなわちノード７９における処理においてテーブルメモリ７４１に予め書込まれたデータ（＝Ａ１）が読出される。読出されたデータ（＝Ａ１）は該１つ目のデータパケットにデータＤ１として格納される。その後、該データパケットはコピー処理されて、２つのデータパケットが生成される。生成された各データパケットは次位のノード８３と８４にそれぞれ与えられる。
【００２５】
その後、ノード８１〜８４のそれぞれにおいて、左側に入力したデータパケットのデータＤ１は対応の命令コード（＝ＭＵＬ）に従って、該ノードの右側に与えられている定数データ（＝Ｂ０またはＢ１）と乗算処理されて、その結果データをデータＤ１として格納したデータパケットが次位のノード８５および８６にそれぞれ与えられる。これらの定数データは定数データメモリ７３２から読出されたデータである。その後、ノード８５と８６のそれぞれにおいて、入力された２つのデータパケットのデータＤ１同士は、対応の命令コード（＝ＡＤＤまたはＳＵＢ）に従って、加算または減算の処理が施される。その結果、データＤ１として（Ａ０＊Ｂ１−Ａ１＊Ｂ０）を格納し、ピクセルアドレスＰＸ♯として０を格納したデータパケットと、同様にデータＤ１として（Ａ０＊Ｂ０＋Ａ１＊Ｂ１）を格納し、ピクセルアドレスＰＸ♯として０を格納したデータパケットとが、それぞれ出力される。
【００２６】
上述した従来のバタフライ演算をデータフロープログラムに記述した際には、図１９で示されるようにノード７８〜ノード８６で示される９ステップが必要とされるから、バタフライ演算を含んだプログラムはステップ数が増加する。それゆえに、容量の大きいプログラムメモリ７５１が必要とされること、多くのプログラムステップ数を実行するためにデータ駆動型情報処理システムにおける処理速度は低下する。
【００２７】
また、従来のデータ駆動型情報処理システムでは、前述したように異なる世代番号Ｇを有したデータパケット同士を演算処理することが不可能なため、一時的にデータを記憶するためのテーブルメモリ７４１が特別に必要とされて、システムのコストが高くなっていた。さらに、このテーブルメモリ７４１に関しては、ランダムアクセスがなされる。この際、テーブルメモリ７４１に係るバンド幅の制約に起因して処理速度はさらに低下する。
【００２８】
それゆえにこの発明の目的は、映像信号に関する画像データ処理を効率良く行うことのできるデータ駆動型情報処理システムを提供することである。
【００２９】
【課題を解決するための手段】
この発明に係るデータ駆動型情報処理システムは、画面を構成する複数の画像データを処理して出力するためのものであって、演算部と制御部とを備える。
【００３０】
演算部は、１つ以上の種類の異なる命令コードのそれぞれに対応して１つ以上の演算器を有する。そして、命令コードを格納するための命令フィールドと、データを格納するためのデータフィールドとを少なくとも有したデータパケットを入力すると、１つ以上の演算器のいずれかにより、該入力データパケットのデータフィールドの内容を命令フィールドの命令コードに従い処理する。そして、処理結果を該入力データパケットのデータフィールドに格納して、該入力データパケットを出力する。
【００３１】
制御部は、複数の命令コードを含むデータフロープログラムを記憶したプログラム記憶部を有する。そして、演算部から出力されたデータパケットを入力すると、プログラム記憶部から読出された次位の命令コードを、該入力データパケットの命令フィールドに格納して、該入力データパケットを該データ駆動型情報処理システムの外部または演算部に出力する。
【００３２】
上述した１つ以上の演算器には、入力データパケットのデータフィールドの複数の画像データを、該入力データパケットの命令フィールドの所定の命令コードに従って所定演算する所定演算器が含まれる。
【００３３】
上述したように、入力したデータパケット中のデータフィールドの複数の異なる画像データに対する所定演算は、従来は、複数の画像データを専用のメモリに書込みおよび読出ししながらなされていたので、所定演算に関して多くのプログラムステップを実行する必要がありプログラムメモリ容量の増大および処理速度の低下を招いていた。また、専用メモリの容量とバス幅の増大により処理速度のさらなる低下を招いていた。これに対して、本発明に係るデータ駆動型情報処理システムによれば、このような所定演算はメモリのアクセス無しに演算部の所定演算器のみにより所定命令コードのみが実行されることによりなされる。それゆえに、本発明に係るデータ駆動型情報処理システムによれば、メモリのバンド幅および容量は削減され、また実行すべきプログラムステップ数の減少により処理速度も向上して、画像データ処理を効率良く行うことのできる。
【００３４】
上述のデータ駆動型情報処理システムにおいて、データフィールドの複数の画像データに対応した画面の走査に従う時系列の順番は、異なることを特徴とする。
【００３５】
したがって、本発明に係るデータ駆動型情報処理システムでは、画面の走査に従う時系列の順番が異なる複数の画像データ同士に対する所定演算を、メモリのアクセス無しに演算部の所定演算器のみにより所定命令コードのみが実行されることによりなされる。それゆえに、本発明に係るデータ駆動型情報処理システムによれば、メモリの容量およびバンド幅を削減して、かつ実行すべきプログラムステップ数を少なくして、画面の走査に従う時系列の順番が異なる複数の画像データ同士に対して所定演算を行なうことができて、結果として画像データ処理を効率良く行うことのできる。
【００３６】
上述したデータ駆動型情報処理システムは、所定の命令コードに、画面を構成する複数の画像データを圧縮するための演算を指示するコードが含まれるという特徴を更に有する。
【００３７】
したがって、本発明に係るデータ駆動型情報処理システムでは、所定命令コードにより指示される画面を構成する複数の画像データを圧縮するための所定演算は、メモリのアクセス無しに演算部の所定演算器のみにより該所定命令コードのみが実行されることによりなされる。それゆえに、本発明に係るデータ駆動型情報処理システムによれば、メモリのバンド幅と容量を少なくして、かつ実行すべきプログラムステップ数を少なくして、画面を構成する複数の画像データを圧縮するための所定演算を行なうことができて、結果として画像データ処理を効率良く行うことのできる。
【００３８】
上述したデータ駆動型情報処理システムは、所定の命令コードに、画面を構成する圧縮された複数の画像データを伸張するための演算を指示するコードが含まれるという特徴を更に有する。
【００３９】
したがって、本発明に係るデータ駆動型情報処理システムでは、所定命令コードにより指示される画面を構成する圧縮された複数の画像データを伸張するための所定演算は、メモリのアクセス無しに演算部の所定演算器のみにより該所定命令コードのみが実行されることによりなされる。それゆえに、本発明に係るデータ駆動型情報処理システムによれば、メモリのバンド幅および容量を削減して、かつ実行すべきプログラムステップ数を少なくして、画面を構成する圧縮された複数の画像データを伸張するための所定演算を行なうことができて、結果として画像データ処理を効率良く行うことのできる。
【００４０】
上述したデータ駆動型情報処理システムは、所定演算は、バタフライ演算であるという特徴を更に有する。
【００４１】
したがって、本発明に係るデータ駆動型情報処理システムでは、画面を構成する複数の異なる画像データの圧縮または伸張の処理に適用されるバタフライ演算は、メモリのアクセス無しに演算部の所定演算器のみにより該バタフライ演算を指示する所定命令コードのみが実行されることによりなされる。それゆえに、本発明に係るデータ駆動型情報処理システムによれば、メモリのバンド幅と容量を削減して、かつ実行すべきプログラムステップ数を少なくして、画面を構成する複数の異なる画像データに対する圧縮および伸張処理に関連のバタフライ演算を行なうことができて、結果として画像データに関する圧縮および伸張処理を効率良く行うことのできる。
【００４２】
上述したデータ駆動型情報処理システムは、所定の命令コードには、入力データパケットのデータフィールドの複数の画像データを並び替えることを指示するコードが含まれているという特徴を更に有する。
【００４３】
上述したような入力データパケット中のデータフィールドの複数の画像データに対する並び替えを指示する所定命令コードに対応の所定演算は、従来は、複数の異なる画像データを専用のメモリに書込みおよび読出ししながらなされていたので、該所定演算に関して多くのプログラムステップを実行する必要がありプログラムメモリ容量の増大および処理速度の低下を招くとともに、メモリのバンド幅と容量が増大していた。これに対して、本発明に係るデータ駆動型情報処理システムによれば、このような並び替えのための所定演算はメモリのアクセス無しに演算部の所定演算器により所定命令コードのみが実行されることによりなされる。それゆえに、本発明に係るデータ駆動型情報処理システムによれば、メモリのバンド幅および容量は削減され、また実行すべきプログラムステップ数の減少により処理速度も向上して、画像データ処理を効率良く行うことのできる。
【００４４】
上述のデータ駆動型情報処理システムは、さらに、画像記憶部とアクセス部とを備える。画像記憶部には、画面を構成する複数の異なる画像データが予め格納される。アクセス部は、与えられるデータパケットの内容に基づくアドレス指定により、画像記憶部をアクセスして、アクセス結果をデータパケットのデータフィールドに格納して、該データパケットを演算部に出力する。そして、このアクセス結果には、該データパケットの命令フィールドの命令コードにより処理される複数の異なる画像データが含まれることを特徴とする。
【００４５】
したがって、データフィールドの複数の異なる画像データとして、画像記憶部に予め記憶された画像データを用いることができて、上述したような各所定演算を画像記憶部に予め記憶された画像データに対しても同様にして施すことができる。それゆえに、メモリのバンド幅と容量を削減して、かつ実行すべきプログラムステップ数を少なくして、画面を構成するために予め画像記憶部に記憶された複数の異なる画像データに対して上述の各所定演算を行なうことができて、結果として画像データに関する処理を効率良く行うことのできる。
【００４６】
【発明の実施の形態】
以下、この発明の各実施の形態について図面を参照して詳細に説明する。
【００４７】
（実施の形態１）
図１は、この発明の各実施の形態に適用されるデータ駆動型情報処理システムのブロック構成図である。図１のブロック構成と図１６のそれとを比較して異なる点は、図１においては、図１６のデータ駆動型情報処理装置６２に代替えしてデータ駆動型情報処理装置６２０が設けられている点にある。図１のその他の構成は、図１６のそれと同様であり、説明は省略される。
【００４８】
図２は、図１のデータ駆動型情報処理装置６２０のブロック構成図である。図２のブロック構成と図１７のそれとを比較して異なる点は、図２においては、図１８の演算部７４に代替えして演算部７４０が設けられた点にある。データ駆動型情報処理装置６２０のその他の構成は、図１７のデータ駆動型情報処理装置６２に示されたものと同様であるから、説明は省略する。
【００４９】
図３は、図２の演算部７４０の概略ブロック構成図である。演算部７４０は、図示されるように、演算部７４が有していたテーブルメモリ７４１を備えていなない。演算部７４０は、発火制御部７３から出力されたデータパケットを入力して、処理して、出力する処理部７４２および、処理部７４２から出力されたデータパケットを入力して、処理して、処理結果を格納したデータパケットをプログラム記憶部７５へ出力する命令コード演算部７４３を含む。
【００５０】
命令コード演算部７４３は、複数の異なる演算器８ｉ（ｉ＝１、２、３、…、ｎ）を含む。複数の演算器８ｉのそれぞれは、種類の異なる命令コードＣのそれぞれに対応して設けられて、対応の命令コードＣに従う所定の演算処理を実行する。ここでは説明を簡単にするために、演算器８１、８２、８３および８４は実施の形態１、２、３および４で示される命令コード“ｂｕｆｔｘ２”、“ｂｕｆｔｘ４”、“ｒｅｏｒｄｅｒ”および“ｍｒｅｏｒｄｅｒ”に従う演算処理を実行するものと想定する。なお、これらの命令コードの詳細は後述する。
【００５１】
処理部７４２は、デコード部７４Ａと分岐部７４Ｂを有する。デコード７４Ａは発火制御部７３からデータパケットを入力して、入力したデータパケット中の命令コードＣをデコードして、そのデコード結果と該入力データパケットを分岐部７４Ｂに与える。
【００５２】
分岐部７４Ｂは、デコード部７４Ａから与えられるデコード結果とデータパケットを入力して、該入力データパケットを、与えられたデコード結果に基づいて選択された命令コード演算部７４３中の１つの演算器８ｉに出力する。その結果,該入力データパケットは、該データパケット中の命令コードＣを演算処理可能な演算器８ｉに出力される。
【００５３】
今、図３において演算器８１は、本実施の形態１に係る命令コードＣ（＝“ｂｕｆｔｘ２”）に従う演算を実行可能な機能を有する。命令コード“ｂｕｆｔｘ２”は、データパケット中に格納された２つの画像データについて、バタフライ演算を実行する場合に適用される。
【００５４】
図４は、本実施の形態１に係るバタフライ演算に関する命令コードの演算器８１の概略ブロック図である。図５（Ａ）と（Ｂ）は、本実施の形態１に係るバタフライ演算に関する命令コードを含むデータフローグラフである。図５（Ａ）と（Ｂ）で示される処理内容は、前述した図１９のそれと同じ処理内容を示している。図示されるように、図１９の９ステップの処理は、図５（Ａ）または（Ｂ）で示される１ステップの処理で実行されることがわかる。
【００５５】
図５（Ａ）は、バタフライ演算に係る定数データを、定数データメモリ７３２から読出して処理する場合のデータフローグラフであり、図５（Ｂ）はバタフライ演算に係る定数データが格納されたデータパケットを入力して処理する場合のデータフローグラフである。
【００５６】
図６（Ａ）〜（Ｅ）は、図５（Ａ）と（Ｂ）のデータフローグラフに従う処理を実行するために適用されるデータを説明する図である。図６（Ａ）と（Ｃ）〜（Ｅ）に示されるように本実施の形態１に係るデータパケットではデータフィールドＦ４１とＦ５１のそれぞれには、複数のデータが格納される。他のフィールドＦ１〜Ｆ３の内容は、前述したものと同様である。
【００５７】
図４において、演算器８ｉはパケット入力部９１Ｉとパケット出力部９１Ｏと、乗算器４〜７、加算器８および減算器９を含む。演算器８ｉにおいて処理部７４２から入力されたデータパケットは、パケット入力部９１Ｉとパケット出力部９１Ｏとに並行して与えられる。
【００５８】
パケット入力部９１Ｉは、コピー部１と２を含む。コピー部１と２のそれぞれは、与えられたデータパケットのデータを、すなわちフィールドＦ４およびＦ５の内容をそれぞれコピーして、コピー結果得られたデータをそれぞれ出力する。ここでは、データをコピー処理するとしているが、図示されるように、接続される複数の伝送路のそれぞれにデータを並行して出力するとしても良い。
【００５９】
パケット出力部９１Ｏは、バッファＢ３０とＢ３１を有して、加算器８および減算器９から与えられるデータを入力して、これらを処理部７４２から与えられるデータパケットのフィールドＦ４に格納した後、該データパケットをプログラム記憶部７５に出力する。
【００６０】
次に、図５（Ａ）のデータフローグラフに従う動作について説明する。
まず、図６（Ａ）のデータパケットがデータ伝送路６５および６６のいずれかを介して、データ駆動型情報処理装置６２０に入力される。該データパケットはフィールドＦ１に命令コードＣとして“ｂｕｆｔｘ２”が格納されて、データフィールドＦ４１にデータＡ０とＡ１とが格納されている。
【００６１】
該データパケットは、図２の合流部７２を経由して発火制御部７３に与えられると、該データパケットのデータＡ０とＡ１は待合メモリ７３１の定数データメモリ７３２に予め格納された定数データＢ０とＢ１と対となる（発火する）。その結果、発火制御部７３からは、入力されたデータパケット（図６（Ａ）参照）のフィールドＦ５１に定数データＢ０とＢ１が格納されたデータパケット（図６（Ｄ）参照）が出力される。なお、この対データの検出の際には、入力データパケット（図６（Ａ））のノード番号Ｎと世代番号Ｇに基づくアドレス指定により定数データメモリ７３２から定数データＢ０とＢ１とが読出される。
【００６２】
演算部７４０は、発火制御部７３から出力されたデータパケット（図６（Ｄ）参照）を入力して、以下のように処理する。まず、該入力データパケットは処理部７４２により、その命令コードＣ（“ｂｕｆｔｘ２”）のデコード結果に基づいて、演算器８１に与えられる。
【００６３】
演算器８１では、入力されたデータパケットはパケット入力部９１Iとパケット出力部９１Ｏに並行して与えられる。パケット入力部９１Ｉでは、与えられたデータパケット（図６（Ｄ）参照）を入力して、該入力データパケットのフィールドＦ４１のデータＡ０とＡ１、およびフィールドＦ５１の定数データＢ０とＢ１は、コピー部１および２においてそれぞれコピー処理されて、コピー処理結果得られたデータのそれぞれは、対応の乗算器に与えられる。詳述するとデータＡ０はコピーされて、コピー処理結果得られた２つのデータＡ０は、それぞれ乗算器４と５の一方の入力側に与えられる。また、データＡ１も同様にしてコピー処理されて、乗算器６と７の一方の入力側にそれぞれ与えられる。また、データＢ０も同様にしてコピー処理されて、乗算器４と７の他方の入力側にそれぞれ与えられる。また、データＢ１も同様にしてコピー処理されて、乗算器５と６の他方の入力側にそれぞれ与えられる。
【００６４】
乗算器４〜７のそれぞれにおいては、一方の入力側に与えられたデータと他方の入力側に与えられたデータとが乗算されてその結果データとして、Ａ０＊Ｂ０，Ａ０＊Ｂ１，Ａ１＊Ｂ１およびＡ１＊Ｂ０のそれぞれが、次段の回路に出力される。加算器８では、乗算器４と６から出力されるデータがそれぞれ入力されて加算されて、その結果データとして、Ａ０＊Ｂ０＋Ａ１＊Ｂ１がパケット出力部９１ＯのバッファＢ３０に与えられる。減算器９では、乗算器５と７から出力されるデータがそれぞれ入力されて減算されて、その結果データとして、Ａ０＊Ｂ１−Ａ１＊Ｂ０がパケット出力部９１０ＯのバッファＢ３１に与えられる。
【００６５】
パケット出力部９１０では、バッファＢ３０とＢ３１に格納された内容を、処理部７４２から与えられたデータパケット（図６（Ｄ）参照）のフィールドＦ４１にデータＣ０（＝Ａ０＊Ｂ０＋Ａ１＊Ｂ１）とＣ１（＝Ａ０＊Ｂ１−Ｂ０＊Ａ１）として格納して、図６（Ｅ）のデータパケットとしてプログラム記憶部７５へ出力する。
【００６６】
以降、プログラム記憶部７５においては、演算部７４０から与えられたデータパケット（図６（Ｅ）参照）が入力されて、該入力データパケットの内容に基づいて、次位のプログラムデータ（命令コードＣとノード番号Ｎ）がプログラムメモリ７５１から読出されて、該データパケット（図６（Ｅ）参照）のフィールドＦ１とＦ２に格納されて、該データパケットが分岐部７６に出力される。以降の、各部において前述したような処理が行われて、プログラムメモリ７５１に記憶されたデータフロープログラムに従う処理が実行される。
【００６７】
図５（Ｂ）のフローグラフに従う動作においては、定数データＢ０とＢ１は、対となるデータ（データＡ０とＡ１）を定数データメモリ７３２において待合ているのではなくて、図６（Ｃ）のデータパケットとして図６（Ａ）のデータパケットと同様にデータ駆動型情報処理装置６２０に与えられる。この場合は図６（Ａ）と（Ｃ）のデータパケット同士は、発火制御部７３において発火する。これにより、図６（Ｄ）に示されるデータパケットが得られて、該データパケットは演算部７４０に出力される。演算部７４０においは、前述と同様にして命令コード“ｂｕｆｔｘ２”に従う演算処理が実行される。その結果、図６（Ｅ）のデータパケットが得られて、該データパケットはプログラム記憶部７５に出力される。以降、前述と同様にして処理が進行し、プログラムメモリ７５１に記憶されたデータフロープログラムに従う処理が実行される。
【００６８】
本実施の形態１においては、図１９で示された複数の命令を組合せて演算が実行される場合とは異なり、１命令（“ｂｕｆｔｘ２”）で従来と同様の演算を実行することが可能となって、プログラムメモリ７５１の容量を削減できるとともに、処理速度を高速化できる。また、テーブルメモリ７４１を用いることなくバタフライ演算を実行できるので、該データ駆動型情報処理システムにおけるメモリに関するバンド幅および容量を大幅に削減できる。その結果、データ駆動型情報処理システムにおける映像信号に関する処理効率を高めることができる。
【００６９】
（実施の形態２）
次に実施の形態２について説明する。図７は、本実施の形態２に係るバタフライ演算のための演算器８２の概略ブロック図である。図８は本実施の形態２に係るバタフライ演算命令を示すデータフローグラフである。図９（Ａ）〜（Ｄ）は、図８のデータフローグラフに従う処理を実行するために適用されるデータを説明する図である。
【００７０】
図７において演算器８２は、パケット入力部９２Ｉ、パケット出力部９２Ｏ、乗算器２７〜３４、加算器３５および３６、ならびに減算器３７および３８を含む。
【００７１】
処理部７４２から図７の演算器８２に与えられて入力されたデータパケットは、パケット入力部９２Ｉとパケット出力部９２Ｏとに並行して与えられる。
【００７２】
パケット入力部９２Ｉはコピー部２４と２５を含んで、前述したパケット入力部９１Ｉと同様の機能を有する。パケット出力部９２ＯはバッファＢ４０〜Ｂ４３を含んで前述したパケット出力部９１Ｏと同様の機能を有する。
【００７３】
前述した実施の形態１では、２つの画像データ（Ａ０とＡ１）についてバタフライ演算を実行する場合を例示したが、演算の対象とされるデータの数、すなわち処理対象となる画像内のブロックの大きさは、これに限定されない。たとえば、本実施の形態２で示されるように、４つの画像データ（Ａ０、Ａ１、Ａ２およびＡ３）からなるブロックについてバタフライ演算を実行することもできる。本実施の形態２ではバタフライ演算の命令コードとして“ｂｕｆｔｘ４”が適用される。
【００７４】
次に、図８のフローグラフに従う動作について説明する。
まず、図９（Ａ）のデータパケットがデータ駆動型情報処理装置６２０に入力されて発火制御部７３に与えられると、発火制御部７３においては、該入力データパケットのフィールドＦ４１のデータ（Ａ０〜Ａ３）と図９（Ｂ）の定数データメモリ７３２に予め格納された定数データＢ０〜Ｂ３とが対となる（発火する）。なお、この対データの検出の際には、入力データパケット（図９（Ａ）参照）のノード番号Ｎと世代番号Ｇに基づくアドレス指定により定数データメモリ７３２から定数データＢ０〜Ｂ３が読出される。この発火の結果、図９（Ｃ）に示されるデータパケットが発火制御部７３から出力されて、演算部７４０に与えられる。
【００７５】
演算部７４０では、入力データパケット（図９（Ｃ）参照）は前述と同様に処理されて、図７の演算器８２に与えられる。演算器８２のパケット入力部９２Ｉでは、コピー部２４において、該入力データパケットのフィールドＦ４１のデータ（データＡ０、Ａ１、Ａ２およびＡ３）のそれぞれについてコピー処理が行なわれて、コピー結果得られたデータのそれぞれは対応の乗算器２７〜３４のそれぞれの一方の入力側に与えられる。また、コピー部２５においては、該入力データパケットのフィールドＦ５のデータ（データＢ０、Ｂ１、Ｂ２およびＢ３）のそれぞれについてコピー処理が行なわれて、コピー結果得られた各データは、対応の乗算器２７〜３４のそれぞれの他方に入力側に与えられる。乗算器２７〜３４のそれぞれにおいては、与えられる２つデータについて乗算処理が施されて、その結果得られたデータは次段の回路に与えられる。これにより、加算器３５の一方の入力側には乗算器２７による乗算結果が与えられ、他方の入力側には乗算器２９による乗算結果が与えられる。また、加算器３６には一方の入力側には乗算器３１による乗算結果が与えられ、他方の入力側には乗算器３３による乗算結果が与えられる。また減算器３７には一方の入力側に乗算器２８による乗算結果が与えられ、他方の入力側には乗算器３０による乗算結果が与えられる。また減算器３８には一方の入力側に乗算器３２による乗算結果が与えられ、他方の入力側に乗算器３４による乗算結果が与えられる。その後、加算器３５および３６のそれぞれにおいて与えられるデータに関して加算処理が実行されて、加算結果得られたデータはパケット出力部９２ＯのバッファＢ４０およびＢ４２のそれぞれにデータＣ０およびＣ２として格納される。また減算器３７および３８のそれぞれは、与えられるデータを減算処理して、その結果得られたデータをパケット出力部９２ＯのバッファＢ４１およびＢ４３のそれぞれに、データＣ１およびＣ３として格納する。このようにしてバッファＢ４０〜Ｂ４３に所定のデータが格納されると、パケット出力部９２Ｏにおいては、処理部７４２から与えられたデータパケット（図９（Ａ）参照）のフィールドＦ４１にバッファＢ４０〜Ｂ４３の内容が格納されて、図９（Ｄ）のデータパケットとして出力される。該データパケットはプログラム記憶部７５に与えられる。このようにすることで、出力データパケット（図９（Ｄ）参照）のフィールドＦ４１に格納されたデータの値については、（Ｃ０，Ｃ１，Ｃ２，Ｃ３）＝（Ａ０＊Ｂ０＋Ａ１＊Ｂ１，Ａ０＊Ｂ１−Ｂ０＊Ａ１，Ａ２＊Ｂ３−Ｂ２＊Ａ３，Ａ２＊Ｂ３−Ｂ２＊Ａ３）となる。
【００７６】
なお、本実施の形態では、定数データＢ０〜Ｂ３は定数データメモリ７３２から読出されることで対応のデータＡ０〜Ａ３と対データ検出されるとしているが、これに特定されない。つまり、図５（Ｂ）で示されたのと同様に、データパケットに格納された定数データＢ０〜Ｂ３と、他のデータパケットに格納された対応のデータＡ０〜Ａ３とが対データ検出されるとしてもよい。
【００７７】
上述したように、本実施の形態２においても、図１９で示された複数の命令を組合せて演算が実行される場合とは異なり、図８に示されるように１命令（“ｂｕｆｔｘ４”）で従来と同様の演算を実行することが可能となって、プログラムメモリ７５１の容量を削減できるとともに、処理速度を高速化できる。また、テーブルメモリ７４１を用いることなくバタフライ演算を実行できるので、該データ駆動型情報処理システムにおけるメモリに関するバンド幅および容量を大幅に削減できる。その結果、データ駆動型情報処理システムにおける映像信号に関する処理効率を高めることができる。
【００７８】
また、実施の形態１および２で示したように、画像内のＤＣＴなどの処理対象となるブロックの大きさにかかわらず、該ブロックについて１命令を実行することにより、従来と同様のバタフライ演算を施すことが可能となる。
【００７９】
なお、実施の形態１および２では、対応の演算器において複数の画像データのついて、加減乗算を施すようにしているが、施される演算内容はこれに限定されず、他の種類の演算器を用いた演算内容であってもよい。
【００８０】
（実施の形態３）
次に実施の形態３について説明する。図１０は、本実施の形態３に係るバタフライ演算に関する命令コードの演算器８３の概略ブロック図である。図１１は本実施の形態３に係るバタフライ演算に関する命令コードを含むデータフローグラフである。図１２（Ａ）〜（Ｄ）は、図１１のデータフローグラフに従う処理を実行するために適用されるデータを説明する図である。
【００８１】
今、図３において演算器８３は、本実施の形態３に係る命令コードＣ（＝“ｒｅｏｒｄｅｒ”）に従う演算を実行可能な機能を有する。命令コード“ｒｅｏｒｄｅｒ”は、データパケット中のフィールドＦ４１に格納された複数個の画像データについて、バタフライ演算を実行する場合に適用される。
【００８２】
ＤＣＴでは、複数個の画像データＡｉについてバタフライ演算が施される場合には演算対象となる画像データＡｉは変わらないが、画像データＡｉのそれぞれに対応の定数データＢｉを異ならせてバタフライ演算が施される場合がある。つまり、前述した実施の形態２では、（Ｃ０，Ｃ１，Ｃ２，Ｃ３）＝（Ａ０＊Ｂ０＋Ａ１＊Ｂ１，Ａ０＊Ｂ１−Ｂ０＊Ａ１，Ａ２＊Ｂ３−Ｂ２＊Ａ３，Ａ２＊Ｂ３−Ｂ２＊Ａ３）という演算結果を得たが、同じ複数の画像データＡｉ（同じブロック）について、命令コード“ｂｕｆｔｘ４”を用いて（Ｃ０，Ｃ１，Ｃ２，Ｃ３）＝（Ａ３＊Ｂ０＋Ａ２＊Ｂ１，Ａ３＊Ｂ１−Ｂ０＊Ａ２，Ａ０＊Ｂ３−Ｂ２＊Ａ１，Ａ０＊Ｂ３−Ｂ２＊Ａ１）という演算結果を得ることが望まれる。
【００８３】
本実施の形態３では、上述した要望に応じるための、命令コード“ｒｅｏｒｄｅｒ”が示される。該命令コード“ｒｅｏｒｄｅｒ”は、データパケットのフィールドＦ４１に格納された複数個の画像データＡｉのそれぞれを、定数データＢｉに従い並べ替えるための命令コードである。なお、ここでは、４つの画像データＡ０〜Ａ３についての並べ替えが示されるが、並べ替えられる画像データＡｉの数は４個に限定されない。つまり、処理対象となる画像内のブロックの大きさにより決定される。
【００８４】
以下、本実施の形態３に係る演算器８３の構成と動作について説明する。図１０において演算器８３は、パケット入力部９３Ｉ、パケット出力部９３Ｏおよびマルチプレクサ回路（以下、ＭＵＸと略す）４５〜４８を含む。パケット入力部９３Ｉはコピー部４２とバッファ４３を含む。パケット出力部９３ＯはＭＵＸ４５〜４８の出力データを入力して格納するバッファＢ５０〜Ｂ５３を含んで、バッファＢ５０〜Ｂ５３の内容を、与えられる入力データパケットのフィールドＦ４１に格納して出力する。つまり、前述したパケット出力部９２Ｏと同様の機能を有する。ＭＵＸ４５〜４８のそれぞれは、第１〜第５の入力を有して、第５の入力データに応じて、第１〜第４の入力データのいずれか１つを選択して、パケット出力部９２Ｏに出力する。
【００８５】
動作において、データ駆動型情報処理装置６２０には図１２（Ａ）のデータパケットが入力される。また、定数データメモリ７３２には図１２（Ｂ）のような定数データが格納されている。このとき、図１２（Ａ）で示されるデータパケットについては、発火制御部７３および処理部７４２において実施の形態２と同様に処理が行なわれて、その結果、図１２（Ｃ）のデータパケットが演算器８３に与えられる。
【００８６】
図１０に示されるように、演算器８３には、処理部７４２から与えられたデータパケットは、パケット入力部９３Ｉとパケット出力部９３Ｏとに並行して与えられる。
【００８７】
パケット入力部９３Ｉに与えられたデータパケット（図１２（Ｃ）参照）のフィールドＦ４１の内容（データＡ０〜Ａ３）は、コピー部４２においてコピー処理されて、ＭＵＸ４５〜４８のそれぞれの第１〜第４の入力に与えられる。具体的には、データＡ０、Ａ１、Ａ２およびＡ３はＭＵＸ４５〜４８のそれぞれの第１、第２、第３および第４の入力に与えられる。一方、パケット入力部９３Ｉに与えられたデータパケット（図１２（Ｃ）参照）のフィールドＦ５１の内容（定数データＢ０〜Ｂ３）はバッファ４３に一旦格納された後、ＭＵＸ４５〜４８のそれぞれの第５の入力に与えられる。具体的には、定数データＢ０、Ｂ１、Ｂ２およびＢ３はＭＵＸ４５〜４８のそれぞれの第５の入力に与えられる。
【００８８】
今、定数データＢ０、Ｂ１、Ｂ２およびＢ３はそれぞれ、３，２，０および１である（図１１参照）から、ＭＵＸ４５、４６、４７および４８においては、対応の第５の入力データに基づいて、第４の入力データ（データＡ３）、第３の入力データ（データＡ２）、第１の入力データ（データＡ０）および第２の入力データ（データＡ１）が選択されて、選択された各データはパケット出力部９２ＯのバッファＢ５０，Ｂ５１、Ｂ５２およびＢ５３にそれぞれ与えられる。
【００８９】
この結果、パケット出力部９３Ｏからは、入力データパケット（図１２（Ｃ）参照）のフィールドＦ４１にバッファＢ５０〜Ｂ５３のデータが格納されて、図１２（Ｄ）のデータパケットとしてプログラム記憶部５７に出力される。
【００９０】
プログラム記憶部５７にデータパケット（図１２（Ｄ）参照）が入力されると、プログラムメモリ７５１から次位の命令コードＣが読出される。この際、次位の命令コードＣとして、命令コード“ｂｕｆｔｘ４”が読出されたとする。その後、該データパケットは、該命令コード“ｂｕｆｔｘ４”に従い、実施の形態２と同様に処理が実行されるから、演算結果として、前述した所望される演算結果、すなわち（Ｃ０，Ｃ１，Ｃ２，Ｃ３）＝（Ａ３＊Ｂ０＋Ａ２＊Ｂ１，Ａ３＊Ｂ１−Ｂ０＊Ａ２，Ａ０＊Ｂ３−Ｂ２＊Ａ１，Ａ０＊Ｂ３−Ｂ２＊Ａ１）を得ることができる。
【００９１】
なお、本実施の形態では、定数データＢ０〜Ｂ３は定数データメモリ７３２から読出されることで対応のデータＡ０〜Ａ３と対データ検出されるとしているが、これに特定されない。つまり、図５（Ｂ）で示されたのと同様に、データパケットに格納された定数データＢ０〜Ｂ３と、他のデータパケットに格納された対応のデータＡ０〜Ａ３とが対データ検出されるとしてもよい。
【００９２】
このように、本実施の形態３では、図１１に示されるように１命令（“ｒｅｏｒｄｅｒ”）を実行するだけで、データパケットのフィールドＦ４１の複数の画素データを、対応する定数データによって、フィールドＦ４１における格納の順番を入れ替えることができる。一方、従来は、このような格納順番の入れ替えは、テーブルメモリ７４１に一度、画素データそれぞれを書込んでから、その後ランダムにアクセスして、これら画素データをテーブルメモリ７４１から読出すことでなされていた。したがって、本実施の形態３に従えば、従来行なわれていた、テーブルメモリ７４１への画素データの書込みとランダムな読出しの処理は不要となる。また、従来、このような処理は、複数の命令コードを実行しなければならないのに対して、本実施の形態３に従えば、１命令コード（“ｒｅｏｒｄｅｒ”）で実行可能である。それゆえに、本実施の形態３に従えば、プログラムメモリ７５１の容量を削減できるとともに、処理速度を高速化できる。また、テーブルメモリ７４１を用いることなくバタフライ演算に関する処理を実行できるので、該データ駆動型情報処理システムにおけるメモリに関するバンド幅および容量を大幅に削減できる。その結果、データ駆動型情報処理システムにおける映像信号に関する処理効率を高めることができる。
【００９３】
（実施の形態４）
次に実施の形態４について説明する。図１３は、本実施の形態４に係るバタフライ演算に関する命令コードの演算器８４の概略ブロック図である。図１４は本実施の形態４に係るバタフライ演算に関する命令コードを含むデータフローグラフである。図１５（Ａ）〜（Ｄ）は、図１４のデータフローグラフに従う処理を実行するために適用されるデータを説明する図である。
【００９４】
今、図１３において演算器８４は、本実施の形態４に係る命令コードＣ（＝“ｍｒｅｏｒｄｅｒ”）に従う演算を実行可能な機能を有する。命令コード“ｍｒｅｏｒｄｅｒ”は、データパケット中のフィールドＦ４１に格納された複数個の参照画素データについて、バタフライ演算に関する処理を実行する場合に適用される。なお、ここでは、参照画素データとは、図１の画像メモリ６３を参照して読出された画素データを指す。
【００９５】
上述した各実施の形態では、バタフライ演算が施される画素データは、データ駆動型情報処理システムに対してデータ伝送路６５または６６を経由して外部から与えられるとしていたが、バタフライ演算が施される画素データの入力経路はこれに限定されない。つまり、本実施の形態４で示されるように、画像メモリ６３から読出されるとしてもよい。なお、ここでは、説明を簡単にするために、参照画素データについて実施の形態３で示されたような並べ替えを行なうための命令コード“ｍｒｅｏｒｄｅｒ”を実行する例のみを示しているが、参照画素データに対しては実施の形態１と２で示されたような命令コードについても同様に適用することができる。
【００９６】
命令コード“ｍｒｅｏｒｄｅｒ”に従う処理内容と、前述した命令コード“ｒｅｏｒｄｅｒ”に従う処理内容とを比較して異なる点は、命令コード“ｒｅｏｒｄｅｒ”は外部から与えられた画素データを処理の対象としているが、命令コード“ｍｒｅｏｒｄｅｒ”は参照画素データを処理の対象としている点にある。
【００９７】
なお、ここでは、４つの参照画素データＡＡ０〜ＡＡ３についての並べ替えが示されるが、並べ替えられる画素データＡＡｉ（ｉ＝１，２，３、…）の数は４個に限定されず、処理対象となる画像のブロックの大きさにより決定される。
【００９８】
以下、本実施の形態４に係る演算器８４の構成と動作について説明する。図１３において演算器８４は、パケット入力部９４Ｉ、パケット出力部９４ＯおよびＭＵＸ５５〜５８を含む。処理部７４２から入力されたデータパケットはパケット入力部９４Ｉとパケット出力部９４Ｏとに並行して与えられる。パケット出力部９４ＯはＭＵＸ５５〜５８の出力データを入力して格納するバッファＢ６０〜Ｂ６３を含んで、バッファＢ６０〜Ｂ６３の内容を、与えられる入力データパケットのフィールドＦ４１に格納して、該入力データパケットを出力する。ＭＵＸ５５〜５８のそれぞれは、第１〜第５の入力を有して、第５の入力データに応じて、第１〜第４の入力データのいずれか１つを選択して、パケット出力部９４Ｏに出力する。パケット入力部９４Ｉは、コピー部５２とバッファ５３を含む。
【００９９】
動作において、データ駆動型情報処理装置６２０においては、予め、従来と同様にして、画像メモリ６３のアクセス要求を示すデータパケット（図示省略）が入力されて、演算部７４０に与えられる。演算部７４０では、該入力データパケットの内容に従うアクセス要求がデータ伝送路６９を介してメモリインターフェイス６４に与えられる。この結果、メモリインターフェイス６４によりアクセス要求内容に基づいて、従来と同様に画像メモリ６３がアクセスされる（参照される）ので、画像メモリ６３からは要求される１つ以上の画素データが読み出される。この結果、読み出された画素データは該入力パケットのフィールドＦ４１に参照画素データＡＡｉとして格納されて、プログラム記憶部７５に与えられる。プログラム記憶部７５では与えられるデータパケットが入力されて、該入力データパケットの内容に基づいてプログラムメモリ７５１から次位の命令コードＣ（“ｍｒｅｏｒｄｅｒ”）と次位のノード番号Ｎとが読出されて、該入力データパケットのフィールドＦ１とＦ２にそれぞれ格納されて、該入力データパケットは、図１５（Ａ）のデータパケットとして、分岐部７６および合流部７２を介して発火制御部７３に与えられる。
【０１００】
発火制御部７３の定数データメモリ７３２には図１５（Ｂ）のような定数データが格納されている。発火制御部７３では、与えられるデータパケット（図１５（Ａ）参照）が入力されて、該入力データパケットのノード番号Ｎと世代番号Ｇに基づくアドレス指定により定数データメモリ７３２から定数データＢ０〜Ｂ３が読出されて、該データパケットのフィールドＦ５１に格納される。その結果、発火制御部７３からは図１５（Ｃ）のデータパケットが出力される。該データパケットは演算部７４０の処理部７４２に与えられる。
【０１０１】
処理部７４２では、与えられたデータパケット（図１５（Ｃ）参照）が入力されて、該入力データパケットについて実施の形態３と同様に処理が行なわれて、その結果、該入力データパケットは、その命令コード（“ｍｒｅｏｒｄｅｒ”）のデコード結果に基づいて演算器８４に与えられる。演算器８４では、与えられたデータパケット（図１５（Ｃ）参照）は入力されて、パケット入力部９４Ｉとパケット出力部９４Ｏとに並行して与えられる。
【０１０２】
パケット入力部９４Ｉは与えられたデータパケット（図１５（Ｃ）参照）を入力して、該入力データパケットのフィールドＦ４１の参照画像データＡＡ０〜ＡＡ３はコピー部５２に与えられ、フィールドＦ５１の定数データＢ０〜Ｂ３はバッファ５３に与えられる。参照画像データＡＡ０〜ＡＡ３は、コピー部５２においてコピー処理されて、ＭＵＸ５５〜５８のそれぞれの第１〜第４の入力に与えられる。具体的には、参照画像データＡＡ０はＭＵＸ５５〜５８のそれぞれの第１の入力に与えられ、参照画像データＡＡ１はＭＵＸ５５〜５８のそれぞれの第２の入力に与えられ、参照画像データＡＡ２はＭＵＸ５５〜５８のそれぞれの第３の入力に与えられ、そして参照画像データＡＡ３はＭＵＸ５５〜５８のそれぞれの第４の入力に与えられる。一方、バッファ５３に与えられて、ここに一旦格納されたフィールドＦ５１の定数データＢ０〜Ｂ３のそれぞれは、ＭＵＸ４５〜４８のそれぞれの第５の入力に与えられる。
【０１０３】
今、定数データＢ０、Ｂ１、Ｂ２およびＢ３はそれぞれ、３，２，０および１である（図１４参照）から、ＭＵＸ５５においては、対応の第５の入力データに基づいて、第４の入力データ（参照画像データＡＡ３）が選択されてパケット出力部９４ＯのバッファＢ６０に出力されて、ここに一旦格納される。同様に、ＭＵＸ５６〜５８のそれぞれにおいても、対応する第５の入力データに基づいて、入力データの選択的な出力が行なわれる。その結果、パケット出力部９４ＯのバッファＢ６１〜Ｂ６３のそれぞれには、第３の入力データ（参照画像データＡＡ２）、第１の入力データ（参照画像データＡＡ０）および第２の入力データ（参照画像データＡＡ１）のそれぞれが格納される。パケット出力部９４Ｏでは、処理部７４２から入力していたデータパケット（図１５（Ｃ）参照）のフィールドＦ４１にバッファＢ５０〜Ｂ５３に格納された参照画像データが格納されて、該入力データパケットは、図１５（Ｄ）のデータパケットとしてプログラム記憶部７５に出力される。
【０１０４】
プログラム記憶部７５に演算部７４０から出力されたデータパケット（図１５（Ｄ）参照）が入力されると、該入力データパケットの内容に基づいて、プログラムメモリ７５１から次位の命令コードと次位のノード番号Ｎが読出される。この際、プログラムメモリ７５１からは次位の命令コードＣとして、命令コード“ｂｕｆｔｘ４”が読出されたとする。読出された命令コードＣとノード番号Ｎとは、該入力データパケットのフィールドＦ１とＦ２にそれぞれ格納されて、該入力データパケットは、分岐部７６および合流部７２を介して発火制御部７３に出力される。発火制御部７３および演算部７４０においては、該データパケットについて、実施の形態２と同様に処理が実行されるから、演算結果として、（Ｃ０，Ｃ１，Ｃ２，Ｃ３）＝（ＡＡ３＊Ｂ０＋ＡＡ２＊Ｂ１，ＡＡ３＊Ｂ１−Ｂ０＊ＡＡ２，ＡＡ０＊Ｂ３−Ｂ２＊ＡＡ１，ＡＡ０＊Ｂ３−Ｂ２＊ＡＡ１）を得ることができる。
【０１０５】
なお、本実施の形態では、定数データＢ０〜Ｂ３は定数データメモリ７３２から読出されることで対応の参照画像データＡＡ０〜ＡＡ３と対データ検出されるとしているが、これに特定されない。つまり、図５（Ｂ）で示されたのと同様に、データパケットに格納された定数データＢ０〜Ｂ３と、他のデータパケットに格納された対応の参照画像データＡＡ０〜ＡＡ３とが対データ検出されるとしてもよい。
【０１０６】
このように、本実施の形態４では、図１４に示されるように、１命令コード（“ｍｒｅｏｒｄｅｒ”）を実行するだけで、定数データによって、画像メモリ６３の複数の画素データついてデータパケットのフィールドＦ４１における格納の順番を入れ替えることができる。一方、従来は、画像メモリ６３の複数の画素データについて、このような入れ替え処理が行なわれる場合には、ランダムアクセスにより画像メモリ６３から画素データのそれぞれを読出していた。したがって、本実施の形態４に従えば、画像メモリ６３のランダムアクセスは省略されて、処理の速度は向上する。また、従来において、画像メモリ６３のランダムアクセスに関して、インターリーブなどの機能を利用してアクセス回数を減らすように工夫している場合などにおいても、本実施の形態４の技術を適用することで、画像メモリ６３に関するバンド幅を減少させることができて、処理は高速となる。
【０１０７】
また、従来、このような入れ替え処理が行なわれる場合には、複数の命令コードを実行しなければならないのに対して、本実施の形態４に従えば、１命令コード（“ｒｅｏｒｄｅｒ”）で実行可能である。それゆえに、本実施の形態４に従えば、プログラムメモリ７５１の容量を削減できるとともに、処理速度を高速化できる。また、テーブルメモリ７４１を用いることなくバタフライ演算に関する処理を実行できるので、該データ駆動型情報処理システムにおけるメモリに関するバンド幅および容量を大幅に削減できる。その結果、データ駆動型情報処理システムにおける映像信号に関する処理効率を高めることができる。
【０１０８】
上述した各実施の形態では、処理対象となるデータパケット内の複数の画像データＡｉは、それぞれ異なるデータであってもよくまた同じデータであってもよい。言換えると、処理対象となるデータパケット内の複数の画像データＡｉは、該画像による画面の走査に従う時系列の順番に対応しており、複数の画像データＡｉのそれぞれについて、対応の時系列順番が全く異なっていてもよく、また複数の画像データＡｉの内の１部または全部の画像データＡｉ同士について対応の時系列順番が同じ全くであってもよい。
【０１０９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【図１】  この発明の各実施の形態に適用されるデータ駆動型情報処理システムのブロック構成図である。
【図２】  図１のデータ駆動型情報処理装置のブロック構成図である。
【図３】  図２の演算部の概略ブロック構成図である。
【図４】  本実施の形態１に係るバタフライ演算に関する命令コードの演算器の概略ブロック図である。
【図５】  （Ａ）と（Ｂ）は、本実施の形態１に係るバタフライ演算に関する命令コードを含むデータフローグラフである。
【図６】  （Ａ）〜（Ｅ）は、図５（Ａ）と（Ｂ）のデータフローグラフに従う処理を実行するために適用されるデータを説明する図である。
【図７】  本実施の形態２に係るバタフライ演算のための演算器の概略ブロック図である。
【図８】  本実施の形態２に係るバタフライ演算命令を示すデータフローグラフである。
【図９】  （Ａ）〜（Ｄ）は、図８のデータフローグラフに従う処理を実行するために適用されるデータを説明する図である。
【図１０】  本実施の形態３に係るバタフライ演算に関する命令コードの演算器の概略ブロック図である。
【図１１】  本実施の形態３に係るバタフライ演算に関する命令コードを含むデータフローグラフである。
【図１２】  （Ａ）〜（Ｄ）は、図１１のデータフローグラフに従う処理を実行するために適用されるデータを説明する図である。
【図１３】  本実施の形態４に係るバタフライ演算に関する命令コードの演算器の概略ブロック図である。
【図１４】  本実施の形態４に係るバタフライ演算に関する命令コードを含むデータフローグラフである。
【図１５】  （Ａ）〜（Ｄ）は、図１４のデータフローグラフに従う処理を実行するために適用されるデータを説明する図である。
【図１６】  従来の映像処理向けデータ駆動型情報処理システムのブロック構成図である。
【図１７】  （Ａ）と（Ｂ）は、従来のデータパケットのフィールド構成図である。
【図１８】  図１６のデータ駆動型情報処理装置６２の構成図である。
【図１９】  従来のバタフライ演算を含む処理を示すデータフローグラフである。
【符号の説明】
８ｉ  演算器、６３  画像メモリ、６４  メモリインターフェース、７３  発火制御部、７５  プログラム記憶部、６２０  データ駆動型情報処理装置、７４０  演算部、７４２  処理部、７４３  命令コード演算部、Ｃ  命令コード、Ｎノード番号、Ｇ  世代番号、Ａｉ  画素データ、Ａａｉ  参照画素データ、Ｂｉ  定数データ。
【図１】
0003907369.tif 000002
【図２】
0003907369.tif 000003
【図３】
0003907369.tif 000004
【図４】
0003907369.tif 000005
【図５】
0003907369.tif 000006
【図６】
0003907369.tif 000007
【図７】
0003907369.tif 000008
【図８】
0003907369.tif 000009
【図９】
0003907369.tif 000010
【図１０】
0003907369.tif 000011
【図１１】
0003907369.tif 000012
【図１２】
0003907369.tif 000013
【図１３】
0003907369.tif 000014
【図１４】
0003907369.tif 000015
【図１５】
0003907369.tif 000016
【図１６】
0003907369.tif 000017
【図１７】
0003907369.tif 000018
【図１８】
0003907369.tif 000019
【図１９】
0003907369.tif 000020