(57)【要約】【課題】処理時間を短縮し、また消費電力を低減する。【解決手段】演算処理ユニット１０２n（ｎ＝1〜12）は、プロセス生成部１０１より出力されるプロセスパケットを受信し、そのプロセスパケットに含まれる命令に従った処理を行う。ユニット１０２1〜１０２12を３つの組１０２ａ〜１０２ｃに分け、各組の入力側にルート選択部１０４1〜１０４3を挿入する。ルート選択部１０４1〜１０４3の夫々は、入力プロセスパケットに係るプロセスを実行するユニットが、直後に位置する組１０２ａ〜１０２ｃに存在しないときは、当該入力プロセスパケットを、その組の入力側に供給するのではなく、その組の出力側に供給する。プロセスパケットは、そのプロセスパケットに係るプロセスを実行するためのユニットが存在しない組をバイパスして移動していく。【選択図】      図１
2004206423.tif 000002
【特許請求の範囲】
【請求項１】
画像データを取り扱う画像処理を行うための各プロセスを生成し、該各プロセスを実行する命令を含むプロセスデータを順次出力するプロセス生成手段と、
上記プロセスデータに従って上記プロセスを実行する、直列接続された複数個の実行手段とを備え、
上記プロセスデータは、該プロセスデータに係るプロセスを実行するための実行手段のアドレスを含み、
所定数の連続する実行手段の組毎に、該組の入力側に、入力プロセスデータを該組の入力側または出力側に選択的に供給するルート選択手段が挿入され、
上記ルート選択手段は、
直後に位置する組を構成する各実行手段のアドレスを記憶する第１のアドレス記憶手段と、
入力プロセスデータに含まれる実行手段のアドレスに上記第１のアドレス記憶手段に記憶されているアドレスの少なくともいずれかが存在するとき一の状態となる判定信号を出力する第１のアドレス判定手段と、
上記第１のアドレス判定手段より出力される判定信号に基づき、上記判定信号が上記一の状態であるとき、上記入力プロセスデータを上記直後に位置する組の入力側に供給し、上記判定信号が上記一の状態でないとき、上記入力プロセスデータを上記直後に位置する組の出力側に供給する第１の切り換え手段とを有する
ことを特徴とする画像処理装置。
【請求項２】
上記複数個の実行手段のそれぞれは、
入力プロセスデータに含まれる命令に従って画像データの処理を行い、その処理結果に基づいて上記入力プロセスデータを変更して出力すべきプロセスデータを得ると共に、該出力すべきプロセスデータを出力するとき一の状態となる要求信号を出力する処理手段と、
自己のアドレスを記憶する第２のアドレス記憶手段と、
上記入力プロセスデータに含まれる実行手段のアドレスに上記第２のアドレス記憶手段に記憶されている自己のアドレスが存在するとき一の状態となる判定信号を出力する第２のアドレス判定手段と、
上記第２のアドレス判定手段より出力される判定信号および上記処理手段より出力される要求信号に基づき、上記要求信号が上記一の状態であるとき、上記処理手段で得られた出力すべきプロセスデータを出力プロセスデータとして出力し、上記要求信号が上記一の状態でなく、かつ上記判定信号が上記一の状態でないとき、上記入力プロセスデータを出力プロセスデータとして出力する第２の切り換え手段とを有する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
上記複数個の実行手段のそれぞれは、画像データを記憶するデータ記憶手段をさらに有し、
上記処理手段は、上記画像データの処理として、上記データ記憶手段への画像データの書き込み、該データ記憶手段からの画像データの読み出し、または画像データの差分の演算のうちいずれかの処理を行う
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
上記第２の切り換え手段は、
上記要求信号が上記一の状態でなく、かつ上記判定信号が上記一の状態であるときは、ハイレベルまたはローレベルのデータを出力する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項５】
上記画像処理は、動きベクトルを検出する処理である
ことを特徴とする請求項１に記載の画像処理装置。
【請求項６】
画像データを取り扱う画像処理を行うための各プロセスを生成し、該各プロセスを実行する命令を含むプロセスデータを順次出力するプロセス生成手段と、
上記プロセスデータに従って上記プロセスを実行する、直列接続された複数個の実行手段とを備え、
上記プロセスデータは、該プロセスデータに係るプロセスを実行するための実行手段のアドレスを含み、
上記複数個の実行手段のそれぞれは、
入力プロセスデータに含まれる命令に従って画像データの処理を行って、その処理結果に基づいて上記入力プロセスデータを変更して出力すべきプロセスデータを得ると共に、該出力すべきプロセスデータを出力するとき一の状態となる要求信号を出力する処理手段と、
自己のアドレスを記憶するアドレス記憶手段と、
上記入力プロセスデータに含まれる実行手段のアドレスに上記アドレス記憶手段に記憶されている自己のアドレスが存在するとき一の状態となる判定信号を出力するアドレス判定手段と、
上記アドレス判定手段より出力される判定信号および上記処理手段より出力される要求信号に基づき、上記要求信号が上記一の状態であるとき、上記処理手段で得られた出力すべきプロセスデータを出力プロセスデータとして出力し、上記要求信号が上記一の状態でなく、かつ上記判定信号が上記一の状態でないとき、上記入力プロセスデータを出力プロセスデータとして出力する切り換え手段とを有する
ことを特徴とする画像処理装置。
【請求項７】
上記複数個の実行手段のそれぞれは、画像データを記憶するデータ記憶手段をさらに有し、
上記処理手段は、上記画像データの処理として、上記データ記憶手段への画像データの書き込み、該データ記憶手段からの画像データの読み出し、または画像データの差分の演算のうちいずれかの処理を行う
ことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
上記切り換え手段は、
上記要求信号が上記一の状態でなく、かつ上記判定信号が上記一の状態であるときは、ハイレベルまたはローレベルのデータを出力する
ことを特徴とする請求項６に記載の画像処理装置。
【請求項９】
上記画像処理は、動きベクトルを検出する処理である
ことを特徴とする請求項６に記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、例えば動きベクトルの検出処理等に適用して好適な画像処理装置に関する。
【０００２】
詳しくは、この発明は、画像処理を行うための各プロセスを実行する命令を含むプロセスデータを、プロセスを実行する直列接続された複数個の実行手段を移動させていって画像処理を行うものにあって、所定数の連続する実行手段の組毎に、その入力側にルート選択手段を挿入し、ルート選択手段は、入力プロセスデータに係るプロセスを直後に位置する組を構成する実行手段で実行しないときは、当該入力プロセスデータを当該直後に位置する組の出力側に供給することによって、処理時間の短縮および消費電力の低減を図るようにした画像処理装置に係るものである。
【０００３】
また、この発明は、画像処理を行うための各プロセスを実行する命令を含むプロセスデータを、プロセスを実行する直列接続された複数個の実行手段を移動させていって画像処理を行うものにあって、実行手段は、入力プロセスデータに係るプロセスを自己が実行しないときは、当該入力プロセスデータを直ちに出力プロセスデータとして出力することによって、処理時間の短縮を図るようにした画像処理装置に係るものである。
【０００４】
【従来の技術】
例えば、画像符号化方式としてのＭＰＥＧ(Moving Picture Experts Group)では、ある大きさのブロックのうちの、注目している注目ブロックについて、動きベクトルが検出され、さらに、その動きベクトルに基づいて動き補償が行われることで、注目ブロックの予測画像が求められる。そして、ＭＰＥＧでは、注目ブロックの各画素と、予測画像の対応する画素との差分が演算され、その差分値が符号化されることで、高能率圧縮が実現されている。
【０００５】
動きベクトルの検出アルゴリズムとしては、例えば、ブロックマッチング法が知られている。
【０００６】
例えば、いま、図１４に示すように、第ｆフレームのあるブロックを、注目ブロックとするとともに、第ｆ＋１フレームを、動きベクトルの検出のために参照する参照フレームとして、第ｆ＋１フレームから第ｆフレームに向かう動きベクトルを、注目ブロックの動きベクトルとして検出する場合、ブロックマッチング法では、第ｆ＋１フレームの、注目ブロックの位置を中心とする所定の範囲が、動きベクトルの探査を行う探査範囲として設定される。さらに、第ｆ＋１フレームの探査範囲から、注目ブロックと同一の大きさのブロックが、注目ブロックの予測画像の候補である候補ブロックとして選択され、注目ブロックと候補ブロックとの差分に関する差分情報が求められる。
【０００７】
すなわち、例えば、注目ブロックおよび候補ブロックが、横×縦が４×４画素のブロックであるとすると、図１５に示すように、注目ブロックの各画素と、候補ブロックの対応する画素との差分が求められ、その差分の絶対値（差分絶対値）が求められる。さらに、その差分絶対値の総和が求められ、探査範囲に選択し得る候補ブロックの全てについて、上述のような差分絶対値の総和が求められる。
【０００８】
そして、探査範囲に選択しうる候補ブロックの中で、差分絶対値の総和を最小にする候補ブロック（以下、適宜、「最小候補ブロック」という）が求められ、その最小候補ブロックから注目ブロックに向かうベクトルが、注目ブロックの動きベクトルとして求められる。
【０００９】
なお、探査範囲としては、注目ブロックおよび候補ブロックよりも大きな範囲が用いられ、注目ブロックおよび候補ブロックが、上述したように、４×４画素のブロックであるとすると、例えば、３０×３０画素乃至５０×５０画素程度の範囲が、探査範囲として用いられる。
【００１０】
図１６は、ブロックマッチング法により動きベクトルを求める、従来の動きベクトル検出装置の一例の構成を示している。
図１６の動きベクトル検出装置は、画像データを記憶する画像メモリ２０１と、その画像データを用いて演算を行うことにより動きベクトルを求める動きベクトル抽出部２０２とから構成されており、画像メモリ２０１と、動きベクトル抽出部２０２とは、データバスを介して接続されている。
【００１１】
以上のように構成される動きベクトル検出装置では、画像メモリ２０１に、注目フレームと参照フレームの画像データが記憶される。そして、動きベクトル抽出部２０２は、画像メモリ２０１から、注目ブロックと候補ブロックを、データバスを介して読み出し、その注目ブロックと候補ブロックとの差分絶対値の総和を求める。さらに、動きベクトル抽出部２０２は、探査範囲内に選択しうる候補ブロックの中で、差分絶対値の総和を最小にする候補ブロック（最小候補ブロック）を求め、その最小候補ブロックから注目ブロックに向かうベクトルを、注目ブロックの動きベクトルとして求めて出力する。
【００１２】
【発明が解決しようとする課題】
図１６の動きベクトル検出装置において、動きベクトルを検出する場合、画像メモリ２０１からは、頻繁に、大量の画像データが読み出され、データバスを介して、動きベクトル抽出部２０２に供給される。
【００１３】
一方、画像データを記憶する画像メモリ２０１は、一般に、複数個のメモリ（半導体メモリ）で構成される。すなわち、図１６では、画像メモリ２０１は、６個のメモリ２０１1〜２０１6で構成されている。
【００１４】
画像メモリ２０１を構成するメモリ２０１1〜２０１6のそれぞれは、比較的広い面積を占有するから、メモリ２０１1〜２０１6のそれぞれから、動きベクトル抽出部２０２に画像データを転送するには、メモリ２０１1〜２０１6のそれぞれと動きベクトル抽出部２０２とを結ぶデータバスとしては、比較的長いものが必要となる。そして、長いデータバスを駆動する場合には、種々の問題が生じることとなる。
【００１５】
具体的には、データバスが長い場合、そのデータバスを構成する配線と基板との間の容量が大になり、データの転送に、大きな遅延（配線遅延）が生じる。さらに、データバスを構成する配線どうしの間に生じる容量によって、配線どうしの間に、クロストークが生じることとなる。そして、近年においては、半導体プロセスの微細化が進行しており、配線の間のクロストークが大きな問題となってきている。
【００１６】
すなわち、半導体プロセスの微細化により、配線どうしの間隔が狭くなると、配線の抵抗（配線抵抗）が大となるから、これを防止するために、配線の厚さを厚くする必要がある。そして、配線どうしの間隔が狭くなり、かつ配線の厚さが厚くなると、配線どうしの間の容量が大となり、クロストークを無視することができなくなる。
【００１７】
さらに、従来においては、配線について生じる配線容量については、配線と基板との間の容量を考慮すれば良く、また、基板の電位は一定なので、画像メモリ２０１のシミュレーションを行う場合に、配線容量は、それほど大きな問題とならなかった。
【００１８】
しかしながら、配線容量として、上述のように、配線どうしの間の容量が大となって支配的になると、注目している配線に隣接した配線における信号遷移の仕方によって、注目している配線の見かけの容量が変化し、配線遅延も変化することから、シミュレーションを行うことが困難となる。
【００１９】
また、画像メモリ２０１のデータバスが長いと、その配線端での反射による信号波形の乱れが顕著になる。
【００２０】
そこで、図１７に示すように、画像メモリ２０１と動きベクトル抽出部２０２との間に、キャッシュメモリ２０３を設けて、動きベクトル検出装置を構成する方法がある。
【００２１】
図１７の動きベクトル検出装置において、キャッシュメモリ２０３は、動きベクトル抽出部２０２で頻繁に用いられる画像データを、画像メモリ２０１から読み出して記憶する。そして、動きベクトル抽出部２０２は、キャッシュメモリ２０３に記憶された画像データを用い、ブロックマッチング法により動きベクトルを求める。
【００２２】
図１７の動きベクトル検出装置では、画像メモリ２０１からキャッシュメモリ２０３に転送されて記憶された画像データについては、画像メモリ２０１から読み出す必要がないので、長いデータバスを介して画像メモリ２０１から画像データを読み出す際の、上述した問題の頻度を低減することができる。
【００２３】
しかしながら、この場合、画像メモリ２０１とは別に、キャッシュメモリ２０３という冗長なメモリが必要となり、そのオーバヘッドが問題となる。
【００２４】
そこで、本出願人は、先に、動きベクトルの検出処理を行うための各プロセスを実行する命令を含むプロセスデータを、プロセスを実行する直列接続された複数個の実行手段を移動させていって画像処理を行うものを提案した（特願２００２−２３６８７７号参照）。これによれば、例えば、長いデータバスやキャッシュメモリの不要な設計容易なハードウェアによって、動きベクトルを検出することができる。
【００２５】
この発明は、上述したように、プロセスデータをプロセスを実行する直列接続された複数個の実行手段を移動させていって画像処理を行うものにあって、さらに処理時間の短縮を図ることを目的とする。
【００２６】
【課題を解決するための手段】
この発明に係る画像処理装置は、画像データを取り扱う画像処理を行うための各プロセスを生成し、この各プロセスを実行する命令を含むプロセスデータを順次出力するプロセス生成手段と、プロセスデータに従ってプロセスを実行する、直列接続された複数個の実行手段とを備え、プロセスデータは、このプロセスデータに係るプロセスを実行するための実行手段のアドレスを含み、所定数の連続する実行手段の組毎に、この組の入力側に、入力プロセスデータをこの組の入力側または出力側に選択的に供給するルート選択手段が挿入されるものである。そして、ルート選択手段は、直後に位置する組を構成する各実行手段のアドレスを記憶する第１のアドレス記憶手段と、入力プロセスデータに含まれる実行手段のアドレスに第１のアドレス記憶手段に記憶されているアドレスの少なくともいずれかが存在するとき一の状態となる判定信号を出力する第１のアドレス判定手段と、この第１のアドレス判定手段より出力される判定信号に基づき、判定信号が一の状態であるとき、入力プロセスデータを直後に位置する組の入力側に供給し、判定信号が一の状態でないとき、入力プロセスデータを直後に位置する組の出力側に供給する第１の切り換え手段とを有するものである。
【００２７】
この発明において、プロセス生成手段は、画像データを取り扱う画像処理を行うための各プロセスを生成し、この各プロセスを実行する命令を含むプロセスデータを順次出力する。このように順次出力されるプロセスデータがプロセスを実行する直列接続された複数個の実行手段を移動していくことで、画像処理が行われる。画像処理は、例えば動きベクトルを検出するための画像処理である。
【００２８】
複数個の実行手段は、所定数の連続する実行手段の組に分けられる。そして、各組毎に、その組の入力側に、入力プロセスデータをその組の入力側または出力側に選択的に供給するルート選択手段が挿入される。
【００２９】
ルート選択手段は、直後に位置する組を構成する各実行手段のアドレスを記憶する第１のアドレス記憶手段を有している。また、プロセスデータは、そのプロセスデータに係るプロセスを実行するための実行手段のアドレスを含んでいる。
【００３０】
ルート選択手段は、入力プロセスデータに含まれる実行手段のアドレスにアドレス記憶手段に記憶されているアドレスの少なくともいずれかが存在するとき、入力プロセスデータを直後に位置する組の入力側に供給し、そうでないときは入力プロセスデータを直後に位置する組の出力側に供給する。
【００３１】
これにより、プロセスデータは、そのプロセスデータに係るプロセスを実行するための実行手段が存在しない組をバイパスして移動していくので、処理時間を短縮できる。また、プロセスデータの無駄な移動がなくなるので、消費電力を低減できる。
【００３２】
また、この発明に係る画像処理装置は、画像データを取り扱う画像処理を行うための各プロセスを生成し、この各プロセスを実行する命令を含むプロセスデータを順次出力するプロセス生成手段と、プロセスデータに従ってプロセスを実行する、直列接続された複数個の実行手段とを備え、プロセスデータは、このプロセスデータに係るプロセスを実行するための実行手段のアドレスを含むものである。そして、複数個の実行手段のそれぞれは、入力プロセスデータに含まれる命令に従って画像データの処理を行って、その処理結果に基づいて入力プロセスデータを変更して出力すべきプロセスデータを得ると共に、この出力すべきプロセスデータを出力するとき一の状態となる要求信号を出力する処理手段と、自己のアドレスを記憶するアドレス記憶手段と、入力プロセスデータに含まれる実行手段のアドレスにアドレス記憶手段に記憶されている自己のアドレスが存在するとき一の状態となる判定信号を出力するアドレス判定手段と、このアドレス判定手段より出力される判定信号および処理手段より出力される要求信号に基づき、要求信号が一の状態であるとき、処理手段で得られた出力すべきプロセスデータを出力プロセスデータとして出力し、要求信号が一の状態でなく、かつ判定信号が一の状態でないとき、入力プロセスデータを出力プロセスデータとして出力する切り換え手段とを有するものである。
【００３３】
この発明において、プロセス生成手段は、画像データを取り扱う画像処理を行うための各プロセスを生成し、この各プロセスを実行する命令を含むプロセスデータを順次出力する。このように順次出力されるプロセスデータがプロセスを実行する直列接続された複数個の実行手段を移動していくことで、画像処理が行われる。プロセスデータは、そのプロセスデータに係るプロセスを実行するための実行手段のアドレスを含んでいる。
【００３４】
複数個の実行手段のそれぞれは、例えば画像データを記憶するデータ記憶手段をさらに有し、画像データの処理として、データ記憶手段への画像データの書き込み、このデータ記憶手段からの画像データの読み出し、または画像データの差分の演算のうちいずれかの処理を行う。画像処理は、例えば動きベクトルを検出するための画像処理である。
【００３５】
複数個の実行手段のそれぞれは、処理手段、アドレス記憶手段、アドレス判定手段および切り換え手段を有している。処理手段は、入力プロセスデータに含まれる命令に従って画像データの処理を行って、その処理結果に基づいて入力プロセスデータを変更して出力すべきプロセスデータを得ると共に、この出力すべきプロセスデータを出力するとき一の状態となる要求信号を出力する。アドレス判定手段は、入力プロセスデータに含まれる実行手段のアドレスに、アドレス記憶手段に記憶されている自己のアドレスが存在するとき一の状態となる判定信号を出力する。
【００３６】
そして、切り換え手段は、要求信号が一の状態であるとき、処理手段で得られた出力すべきプロセスデータを出力プロセスデータとして出力し、要求信号が一の状態でなく、かつ判定信号が一の状態でないとき、入力プロセスデータを出力プロセスデータとして出力する。
【００３７】
これにより、プロセスデータは、そのプロセスデータに係るプロセスを実行するものではない実行手段に入力されたとき、直ちに次の実行手段に移動するようにされるので、処理時間を短縮できる。
【００３８】
なお、切り換え手段は、要求信号が一の状態でなく、かつ判定信号が一の状態であるときは、ハイレベルまたはローレベルのデータを出力するようにしてもよい。この場合、実行手段に入力されるプロセスデータに係るプロセスが、その実行手段で実行される。入力プロセスデータを後段に供給しない場合および処理手段からの出力すべきプロセスデータを後段に供給しない状態では、ハイレベルまたはローレベルのデータが出力されるので、後段に誤ったプロセスデータが供給されることを防止できる。
【００３９】
【発明の実施の形態】
以下、この発明の実施の形態を図面を参照して説明する。
図１は、実施の形態としての動きベクトル検出装置１００の構成を示している。この動きベクトル検出装置１００では、上述したブロックマッチング法によって動きベクトルが検出される。
【００４０】
この動きベクトル検出装置１００は、動きベクトルを検出する処理を行うための各プロセスを生成し、その各プロセスを実行する命令を含むパケットであるプロセスパケット（プロセスデータ）を順次出力するプロセス生成部１０１を有している。このプロセス生成部１０１には動きベクトルの検出対象である画像データが供給される。プロセス生成部１０１は、必要に応じて、プロセスパケットにその画像データも配置する。
【００４１】
また、動きベクトル検出装置１００は、プロセスパケットに従ってプロセスを実行する、直列接続された複数個、本実施の形態では１２個の演算処理ユニット１０２1〜１０２12を有している。演算処理ユニット１０２1〜１０２12は、それぞれ実行手段を構成している。これら１２個の演算処理ユニット１０２1〜１０２12は、プロセス生成部１０１の後段に接続されている。
【００４２】
演算処理ユニット１０２n（ｎ＝1〜12）は、前段の演算処理ユニット１０２n-1（またはルート選択部）から供給されるプロセスパケットを受信し、そのプロセスパケットに含まれる命令にしたがった処理を行う。また、演算処理ユニット１０２nは、必要に応じて、その処理結果を、プロセスパケットに配置し、後段の演算処理ユニット１０２n+1（またはルート選択部、または集計部）に供給する。これにより、最後の演算処理ユニット１０２12は、後述するように、注目ブロックとある候補ブロックとの差分絶対値の総和を配置したプロセスパケットを出力する。ルート選択部および集計部については後述する。
【００４３】
また、動きベクトル検出装置１００は、３個のルート選択部１０４1〜１０４3を有している。上述の１２個の演算処理ユニット１０２1〜１０２12は、４個の連続する演算処理ユニットの組に分けられる。すなわち、ユニット１０２1〜１０２4の組１０２ａと、ユニット１０２5〜１０２8の組１０２ｂと、ユニット１０２9〜１０２12の組１０２ｃとに分けられる。上述した３個のルート選択部１０４1〜１０４3は、それぞれ組１０２ａ〜１０２ｃの入力側に挿入される。なお、組の個数は３個でなくてもよく、また各組を構成する演算処理ユニット１０２nの個数は同じでなくてもよい。
【００４４】
ルート選択部１０４1〜１０４3のそれぞれは、入力プロセスパケットを直後に位置する組１０２ａ〜１０２ｃの入力側または出力側に選択的に供給する。つまり、ルート選択部１０４1〜１０４3のそれぞれは、入力プロセスパケットに係るプロセスを実行する演算処理ユニット１０２nが直後に位置する組１０２ａ〜１０２ｃに存在するときその入力プロセスパケットをその組の入力側に供給し、そうでないときその入力プロセスパケットをその組の出力側に供給する。
【００４５】
また、動きベクトル検出装置１００は、集計部１０３を有している。この集計部１０３は、最後の演算処理ユニット１０２12の出力側に接続されており、この演算処理ユニット１０２12が出力するプロセスパケットに配置された注目ブロックと候補ブロックとの差分絶対値の総和から、動きベクトルを求めて出力する。
【００４６】
ここで、上述したプロセス生成部１０１より出力されて、演算処理ユニット１０１1〜１０２12を移動していく、プロセスパケットのフォーマットを説明する。図２は、プロセスパケットのフォーマット例を示している。
【００４７】
プロセスパケットは、例えば、その先頭から、処理ユニットアドレス部、ＰＩＤ(Process Identification)部、状態部、命令部、アドレス部、データ部が、順次設けられて構成されている。
【００４８】
処理ユニットアドレス部には、当該プロセスパケットに係るプロセスを実行するための一個または複数個の演算処理ユニットのアドレスが配置される。
【００４９】
ＰＩＤ部には、ＰＩＤが配置される。ここで、ＰＩＤとしては、ある注目ブロックの動きベクトルを求めるまでに行うべき個々のプロセスを区別することができる情報であれば、どのような情報でも採用することが可能である。すなわち、ＰＩＤとして、例えば、注目ブロックの位置を表すアドレスと、候補ブロックの位置を表すアドレスとの組み合わせなどを採用することが可能である。
【００５０】
また、注目ブロックに対する候補ブロックに、例えば通し番号となるような番号情報を与えておく場合には、ＰＩＤとして、その番号情報を採用することが可能である。なお、ＰＩＤとして、番号情報を採用する場合、集計部１０３において、全ての通し番号のプロセスパケットが揃うことにより、ある注目ブロックについて、探査範囲で選択可能なすべての候補ブロックとの間の差分絶対値和の総和が得られたことを認識することが可能となる。
【００５１】
状態部は、例えば、画像書き込み状態部、画像読み出し状態部、注目ブロック読み出し状態部、候補ブロック読み出し状態部、差分絶対値演算状態部から構成される。
【００５２】
画像書き込み状態部には、後述する演算処理ユニット１０２nのメモリ１２０に対して、ある画像データの書き込みが、まだ行われていないことを表す状態情報「未」、その画像データの書き込みが行われている途中であることを表す状態情報「中」、その画像データの書き込みが終了したことを表す状態情報「終」のうちのいずれかがセットされる。
【００５３】
すなわち、例えば、いま、演算処理ユニット１０２nを構成するメモリ１２０を、メモリ１２０nと表すこととして、ある画像データを、例えば、演算処理ユニット１０２iのメモリ１２０iと演算処理ユニット１０２jのメモリ１２０jの２つに分けて書き込む場合を考えると、メモリ１２０iとメモリ１２０jのいずれにも画像データが書き込まれていない場合、画像書き込み状態部には、状態情報「未」がセットされる。また、メモリ１２０iとメモリ１２０jのうちのいずれか一方だけに画像データが書き込まれた場合、画像書き込み状態部には、状態情報「中」がセットされる。さらに、メモリ１２０iとメモリ１２０jの両方に画像データが書き込まれた場合、画像書き込み状態部には、状態情報「終」がセットされる。
【００５４】
なお、状態部にセットされる状態情報は、演算処理ユニット１０２nに対して、画像データの書き込みなどの状態がどのようになっているかを知らせるメッセージの役割を果たす。
【００５５】
画像読み出し状態部には、メモリ１２０からの、ある画像データの読み出しが、まだ行われていないことを表す状態情報「未」、その画像データの読み出しが行われている途中であることを表す状態情報「中」、その画像データの読み出しが終了したことを表す状態情報「終」のうちのいずれかがセットされる。
【００５６】
注目ブロック読み出し状態部には、メモリ１２０からの、注目ブロックの画像データの読み出しが、まだ行われていないことを表す状態情報「未」、注目ブロックの画像データの読み出しが行われている途中であることを表す状態情報「中」、注目ブロックの画像データの読み出しが終了したことを表す状態情報「終」のうちのいずれかがセットされる。
【００５７】
候補ブロック読み出し状態部には、メモリ１２０からの、候補ブロックの画像データの読み出しが、まだ行われていないことを表す状態情報「未」、候補ブロックの画像データの読み出しが行われている途中であることを表す状態情報「中」、候補ブロックの画像データの読み出しが終了したことを表す状態情報「終」のうちのいずれかがセットされる。
【００５８】
差分絶対値演算状態部には、ある注目ブロックと候補ブロックとの差分絶対値の総和（差分絶対値和）の演算が、まだ行われていないことを表す状態情報「未」、差分絶対値和の演算が行われている途中であることを表す状態情報「中」、差分絶対値和の演算が終了したことを表す状態情報「終」のうちのいずれかがセットされる。
【００５９】
ここで、状態情報は、例えば、２ビットとし、「未」、「中」、「終」には、それぞれ「１１」、「１０」、「００」を割り当てることができる。
【００６０】
命令部には、行うべき処理を指示する命令が配置される。ここで、命令としては、例えば、メモリ１２０への画像データの書き込みを指示する書き込み命令、メモリ１２０からの画像データの読み出しを指示する読み出し命令、注目ブロックと候補ブロックとの差分絶対値和の演算を指示する差分絶対値和演算命令、各候補ブロックについて求められた差分絶対値和のうちの最小値を求め、その最小値に基づいて、注目ブロックの動きベクトルを求めることを指示する最小値判定命令の４つの命令が、少なくとも用意されている。
【００６１】
なお、命令が、上述の書き込み命令、読み出し命令、差分絶対値和演算命令、および最小値判定命令の４（＝２2）つである場合には、命令部は、２ビットで十分である。ただし、命令部は、将来の命令の種類の拡張も考慮して、２ビットより多い、例えば、４ビットなどとしておくことが望ましい。
【００６２】
アドレス部は、フィールド指定部、読み出しアドレス部、書き込みアドレス部、注目ブロックアドレス部、候補ブロックアドレス部から構成される。
【００６３】
フィールド指定部には、候補ブロックのフィールドを表すフィールド情報がセットされる。すなわち、本実施の形態では、後述するように、演算処理ユニット１０２nのメモリ１２０に、５フィールドの画像データが記憶されるが、フィールド指定部には、そのメモリ１２０に記憶された画像データのうち、候補ブロックが存在するフィールドを表すフィールド情報がセットされる。なお、５フィールドの画像データを記憶する場合、フィールド情報は、３ビットで十分であるが、将来の拡張を考慮して、３ビットより多い、例えば、４ビットなどとするのが望ましい。
【００６４】
読み出しアドレス部には、メモリ１２０から画像データを読み出す場合に、すなわち、命令部に読み出し命令がセットされている場合に、その画像データを読み出すメモリ１２０のアドレスが配置される。
【００６５】
書き込みアドレス部には、メモリ１２０に画像データを書き込む場合に、すなわち、命令部に書き込み命令がセットされている場合に、その画像データを書き込むメモリ１２０のアドレスが配置される。
【００６６】
注目ブロックアドレス部には、注目ブロックのアドレスが配置される。ここで、注目ブロックのアドレスとしては、例えば、その注目ブロックのフィールド（注目フィールド）における、注目ブロックの左上の画素の位置を表す位置情報を採用することができる。したがって、例えば、１フィールドが、７２０×２４０画素で構成されると共に、注目ブロックが、４×２画素で構成されるものとすると、注目ブロックのアドレスは、２１６００（＝７２０／４×２４０／２）通りが存在するから、１５ビットで表すことができる。
【００６７】
候補ブロックアドレス部には、候補ブロックのアドレスが配置される。ここで、候補ブロックのアドレスとしては、例えば、その候補ブロックのフィールド（参照フィールド）における、候補ブロックの左上の画素の位置を表す位置情報を採用することができる。従って、例えば、上述のように、１フィールドが、７２０×２４０画素で構成されるものとすると、候補ブロックのアドレスは、１７２８００（＝７２０×２４０）通りが存在するから、１８ビットで表すことができる。
【００６８】
データ部は、注目ブロックデータ部、候補ブロックデータ部、差分絶対値和部、候補ベクトル部から構成される。
【００６９】
注目ブロックデータ部には、注目ブロックの画像データ、即ち、注目ブロックを構成する画素（の画素値）が配置される。従って、例えば、上述のように、注目ブロックが、４×２画素で構成されるものとし、また、１画素に、例えば、８ビットが割り当てられているとした場合には、注目ブロックデータ部は、６４（＝４×２×８）ビットで構成されることになる。
【００７０】
候補ブロックデータ部には、候補ブロックの画像データ、即ち、候補ブロックを構成する画素が配置される。従って、候補ブロックが、例えば、上述のように、注目ブロックと同様の４×２画素で構成されるものとし、また、１画素に、例えば、８ビットが割り当てられているとした場合には、候補ブロックデータ部は、注目ブロックデータ部と同様に、６４（＝４×２×８）ビットで構成されることになる。
【００７１】
差分絶対値和部には、注目ブロックと候補ブロックの差分絶対値和が配置される。ここで、上述のように、例えば、１画素に８ビットが割り当てられている場合、注目ブロックのある画素とその画素に対応する候補ブロックの画素の差分絶対値は、９ビットで表される。
【００７２】
候補ベクトル部には、候補ブロックから注目ブロックに向かうベクトルが、注目ブロックの動きベクトルの候補（候補ベクトル）として配置される。なお、候補ベクトルは、注目ブロックアドレス部に配置された注目ブロックのアドレスと、候補ブロックアドレス部に配置された候補ブロックのアドレスとから求めることが可能である。また、例えば、いま、探査範囲を、６３×６３画素以下とすると、候補ベクトルのｘ方向（横方向）成分と、ｙ方向（縦方向）成分は、いずれも、６ビットで表すことができるから、候補ベクトル部は、１２（＝６＋６）ビットで構成することができる。
【００７３】
次に、図３のフローチャートを参照して、上述したプロセス生成部１０１が、ある１つのブロックを注目ブロックとして、その注目ブロックの動きベクトルを検出するために行う処理（プロセス生成処理）について説明する。
【００７４】
まず最初に、ステップＳ１において、プロセス生成部１０１は、注目ブロックが存在する注目フィールドのうちの注目ブロックの画像データと、候補ブロックが存在する参照フィールドのうちの探査範囲の画像データとを、少なくとも、メモリ１２０に書き込む書き込みプロセスの一部または全部を生成し、その書き込みプロセスを実行する書き込み命令を含むプロセスパケットを生成して、ステップＳ２に進む。
【００７５】
なお、プロセス生成部１０１は、ステップＳ１において、図２に示したプロセスパケットの命令部に書き込み命令を配置する他、メモリ１２０に書き込む注目ブロックや候補ブロックの画像データを、注目ブロックデータ部や候補ブロックデータ部に配置すると共に、その画像データを書き込むメモリ１２０のアドレスを、書き込みアドレス部に配置する。
【００７６】
また、プロセス生成部１０１は、処理ユニットアドレス部に、その書き込みプロセスを実行する一個または複数個の演算処理ユニット１０２nのアドレスを配置する。さらに、プロセス生成部１０１は、必要に応じて、プロセスパケットの状態部に、状態情報を配置する。
【００７７】
ステップＳ２では、プロセス生成部１０１は、直前のステップＳ１で生成したプロセスパケットを出力して、ステップＳ３に進む。
【００７８】
ステップＳ３では、プロセス生成部１０１は、必要な画像データ、すなわち、ここでは、注目ブロックの画像データと、候補ブロックが存在する参照フィールドのうちの探査範囲の画像データとを、少なくとも、メモリ１２０に書き込むためのプロセスの全てを生成したかどうかを判定する。ステップＳ３において、必要な画像データをメモリ１２０に書き込むためのプロセスの全てを、まだ生成していないと判定した場合、ステップＳ１に戻り、プロセス生成部１０１は、必要な画像データをメモリ１２０に書き込むためのプロセスのうち、まだ書き込まれていない画像データを書き込むためのプロセスを生成し、以下、同様の処理を繰り返す。
【００７９】
また、ステップＳ３において、プロセス生成部１０１は、必要な画像データをメモリ１２０に書き込むためのプロセスの全てを生成したと判定した場合、ステップＳ４に進む。ステップＳ４では、プロセス生成部１０１は、探査範囲内に選択し得るある候補ブロックから、注目ブロックへのベクトル（候補ベクトル）について、注目ブロックと候補ブロックとの差分絶対値和を求めるための差分絶対値和演算プロセスを生成し、その差分絶対値和演算プロセスを実行する差分絶対値和演算命令を含むプロセスパケットを生成して、ステップＳ５に進む。
【００８０】
なお、プロセス生成部１０１は、ステップＳ４において、図２に示したプロセスパケットの命令部に差分絶対値和演算命令を配置する他、メモリ１２０に書き込まれた注目ブロックや候補ブロックのアドレスを、注目ブロックアドレス部や候補ブロックアドレス部に配置するとともに、候補ベクトルを、候補ベクトル部に配置する。
【００８１】
また、プロセス生成部１０１は、処理ユニットアドレス部に、その差分絶対値和演算プロセスを実行する一個または複数個の演算処理ユニット１０２nのアドレスを配置する。さらに、プロセス生成部１０１は、候補ブロックのフィールドを表すフィールド情報を、フィールド指定部に配置すると共に、必要に応じて、プロセスパケットの状態部に、状態情報を配置する。
【００８２】
ステップＳ５では、プロセス生成部１０１は、直前のステップＳ４で生成したプロセスパケットを出力して、ステップＳ６に進む。
【００８３】
ステップＳ６では、プロセス生成部１０１は、注目ブロックの探索範囲内に選択し得る候補ベクトルの全てについて、差分絶対値和を演算するための差分絶対値和演算プロセスを生成したかどうかを判定する。
【００８４】
ステップＳ６において、プロセス生成部１０１は、注目ブロックの探索範囲内に選択し得る候補ベクトルの全てについて、差分絶対値和を演算するための差分絶対値和演算プロセスを、まだ生成していないと判定した場合、ステップＳ４に戻り、まだ差分絶対値和演算プロセスを生成していない候補ベクトルについて、差分絶対値和を演算するための差分絶対値和演算プロセスを生成し、以下、同様の処理を繰り返す。
【００８５】
また、ステップＳ６において、プロセス生成部１０１は、注目ブロックの探索範囲内に選択し得る候補ベクトルの全てについて、差分絶対値和を演算するための差分絶対値和演算プロセスを生成したと判定した場合、ステップＳ７に進む。
【００８６】
ステップＳ７では、プロセス生成部１０１は、注目ブロックの探索範囲内に選択し得る候補ベクトルの全てについて求められた差分絶対値和のうちの最小値を求め、その最小値に基づいて、注目ブロックの動きベクトルを求める最小値判定プロセスを生成し、その最小値判定プロセスを実行する最小値判定命令を含むプロセスパケットを生成して、ステップＳ８に進む。
【００８７】
ステップＳ８では、プロセス生成部１０１は、ステップＳ７で生成したプロセスパケットを出力し、その後に処理を終了する。
【００８８】
図１に示す動きベクトル検出装置１００において、上述したようにプロセス生成部１０１は、動きベクトルを検出する処理を行うための各プロセスを生成し、この各プロセスを実行する命令を含むプロセスパケットを順次出力する。この各プロセスパケットは演算処理ユニット１０２1〜１０２12を移動していき、これにより、演算処理ユニット１０２1〜１０２12において動きベクトルを検出するための各プロセスが順次実行されていく。
【００８９】
そして、最終的に、注目ブロックの探査範囲内に選択し得る候補ベクトルのそれぞれについての差分絶対値和が配置されたプロセスパケットが集計部１０３で受信される。集計部１０３は、最小値判定命令を含むプロセスパケットを受信すると、差分絶対値和演算プロセスに対応するプロセスパケットから、最小の差分絶対値和が配置されているものを選択し、そのプロセスパケットに配置されている候補ベクトルを注目ブロックの動きベクトルとして出力する。
【００９０】
なお、本実施の形態では、プロセス生成部１０１より出力される各プロセスパケットが演算処理ユニット１０２1〜１０２12の全てを移動していくわけではない。ルート選択部１０４1〜１０４3により、各プロセスパケットは、適宜バイパスされて移動していく。
【００９１】
すなわち、ルート選択部１０４1〜１０４3のそれぞれは、入力プロセスパケットに係るプロセスを実行する演算処理ユニット１０２nが、直後に位置する組１０２ａ〜１０２ｃに存在しないときは、当該入力プロセスパケットを、その組１０２ａ〜１０２ｃの入力側に供給するのではなく、その組の出力側に供給する。このように、プロセスパケットが、そのプロセスパケットに係るプロセスを実行するための演算処理ユニット１０２nが存在しない組をバイパスして移動していくので、処理時間を短縮でき、またプロセスパケットの無駄な移動がなくなるので、消費電力を低減できる。
【００９２】
次に、ルート選択部１０４n（ｎ＝1〜3）の詳細を説明する。図４は、ルート選択部１０４nの構成例を示している。
【００９３】
このルート選択部１０４nは、前段のプロセス生成部１０１（またはルート選択部、または演算処理ユニット）からデータバスを介して供給されるプロセスパケット（入力プロセスパケット）を保持するＦＩＦＯ(First-In First-Out)メモリ１３１を有している。ＦＩＦＯメモリ１３１は、そこに供給されるシステムクロックに同期して、入力プロセスパケットを取り込み、一時的に記憶する。
【００９４】
また、ルート選択部１０４nは、アドレス記憶部１３２およびアドレス判定部１３３を有している。アドレス記憶部１３２には、予め、直後に位置する組に存在する全ての演算処理ユニット１０２nのアドレスが記憶されている。例えば、ルート選択部１０４1に関しては、アドレス記憶部１３２には、直後に対応する組１０２ａに存在する演算処理ユニット１０２1〜１０２4のアドレスが記憶されている。ルート選択部１０４2，１０４3に関しても同様である。
【００９５】
アドレス判定部１３３は、ＦＩＦＯメモリ１３１より出力されるプロセスパケットＰＰｅに係るプロセスが、このルート選択部１０４nの直後に位置する組に存在する演算処理ユニット１０２nのいずれかで実行されるものであるか否かを判定する。
【００９６】
すなわち、アドレス判定部１３３は、ＦＩＦＯメモリ１３１より出力されるプロセスパケットＰＰｅの処理ユニットアドレス部（図２参照）に記憶されている一個または複数個のアドレスに、アドレス記憶部１３２に記憶されているアドレスの少なくともいずれかが存在するか否かを判定し、存在するとき一の状態、例えば「１」となり、存在しないとき他の状態、例えば「０」となる判定信号ｓ3を出力する。
【００９７】
また、ルート選択部１０４nは、判定信号ｓ3に基づいて、ＦＩＦＯメモリ１３１より出力されるプロセスパケットＰＰｅを、当該ルート選択部１０４nの直後に位置する組の入力側または出力側に選択的に供給する、切り換え手段としての切換スイッチ１３４を有している。切換スイッチ１３４は、判定信号ｓ3が「１」であるときはＡ側に接続され、判定信号ｓ3が「０」であるときはＢ側に接続される。
【００９８】
ＦＩＦＯメモリ１３１の出力側は時間調整用の遅延回路１３５を介して切換スイッチ１３４の可動端子に接続される。この切換スイッチ１３４のＡ側の固定端子は当該ルート選択部１０４nの直後に位置する組の入力側に接続され、そのＢ側の固定端子は、当該ルート選択部１０４nの直後に位置する組の出力側に接続される。
【００９９】
上述したようにアドレス判定部１３３ではＦＩＦＯメモリ１３１より出力されるプロセスパケットＰＰｅの処理ユニットアドレス部に記憶されているアドレスに基づいて、当該プロセスパケットＰＰｅに係るプロセスが、このルート選択部１０４nの直後に位置する組に存在する演算処理ユニット１０２nで実行されるものであるか否かを判定する。そして、後述するように、その判定結果である判定信号ｓ3に基づいて、切換スイッチ１３４の切り換えが制御され、当該プロセスパケットＰＰｅが、当該ルート選択部１０４nの直後に位置する組の入力側または出力側に供給される。
【０１００】
少なくとも、アドレス判定部１３３で判定が行われるときには、プロセスパケットＰＰｅの処理ユニットアドレス部の部分は既にＦＩＦＯメモリ１３１から出力された状態にあり、ＦＩＦＯメモリ１３１の出力側を切換スイッチ１３４の可動端子に直接接続したのでは、当該プロセスパケットＰＰｅを欠けなく完全な状態で当該切換スイッチ１３４から出力できない場合が発生する。
【０１０１】
上述の時間調整用の遅延回路１３５は、この当該プロセスパケットＰＰｅを欠けなく完全な状態で切換スイッチ１３４から出力するためのものであり、少なくとも、ＦＩＦＯメモリ１３１より当該プロセスパケットＰＰｅの出力が開始されてからアドレス判定部１３３で判定結果が出るまでの遅延時間を有するようにされる。
【０１０２】
図４に示すルート選択部１０４nの動作を説明する。
前段のプロセス生成部１０１（またはルート選択部、または演算処理ユニット）からデータバスを介して供給されるプロセスパケット（入力プロセスパケット）は、ＦＩＦＯメモリ１３１に取り込まれて、一時的に記憶される。そして、このＦＩＦＯメモリ１３１より出力されるプロセスパケットＰＰｅは、遅延回路１３５を介して切換スイッチ１３４の可動端子に供給される。
【０１０３】
アドレス判定部１３３は、プロセスパケットＰＰｅの処理ユニットアドレス部（図２参照）に記憶されているアドレスに、アドレス記憶部１３２に記憶されているアドレスの少なくともいずれかが存在するか否かを判定する。
【０１０４】
そして、アドレス判定部１３３は、肯定の判定結果を得るときは、当該プロセスパケットＰＰｅに係るプロセスは、このルート選択部１０４nの直後に位置する組内の演算処理ユニット１０２nで実行されるものであるとして、判定信号ｓ3を「１」にする。これにより、切換スイッチ１３４はＡ側に接続され、当該プロセスパケットＰＰｅは切換スイッチ１３４のＡ側を介して、当該ルート選択部１０４nの直後に位置する組の入力側に供給される。
【０１０５】
一方、アドレス判定部１３３は、否定の判定結果を得るときは、当該プロセスパケットＰＰｅに係るプロセスは、このルート選択部１０４nの直後に位置する組内の演算処理ユニット１０２nで実行されるものではないとして、判定信号ｓ3を「０」にする。これにより、切換スイッチ１３４はＢ側に接続され、当該プロセスパケットＰＰｅは切換スイッチ１３４のＢ側を介して、当該ルート選択部１０４nの直後に位置する組の出力側に供給される。
【０１０６】
次に、演算処理ユニット１０２nの詳細を説明する。図５は、演算処理ユニット１０２nの構成例を示している。
この演算処理ユニット１０２nは、ＰＥ(Processing Element)１１０およびメモリ１２０から構成されている。
【０１０７】
ＰＥ１１０は、ＦＩＦＯメモリ１１１，１１２および演算部１１３とを有している。これらＦＩＦＯメモリ１１１，１１２および演算部１１３は直列に接続されている。
【０１０８】
ＦＩＦＯメモリ１１１は、前段の演算処理ユニット（またはルート選択部）からデータバスを介して供給されるプロセスパケット（入力プロセスパケット）を保持するためのものである。ＦＩＦＯメモリ１１１は、そこに供給されるシステムクロックに同期して、入力プロセスパケットを取り込み、一時的に記憶する。
【０１０９】
ＦＩＦＯメモリ１１２は、演算部１１３に入力するプロセスパケットを保持するためのものである。ＦＩＦＯメモリ１１２は、そこに供給されるシステムクロックに同期して、ＦＩＦＯメモリ１１１より順次出力されるプロセスパケットＰＰａを取り込み一時的に記憶する。
【０１１０】
演算部１１３は、ＦＩＦＯメモリ１１２から順次出力されるプロセスパケットＰＰｂに含まれる命令に従った処理を行い、処理結果に基づいて当該プロセスパケットを変更して出力すべきプロセスパケットＰＰｃを得るものである。また、この演算部１１３は、この出力すべきプロセスパケットＰＰｃを出力するとき一の状態、例えば「１」となり、その他のとき他の状態、例えば「０」となる要求信号ｓ2を出力する。
【０１１１】
ここで、演算部１１３は、少なくとも、プロセスパケットに含まれる命令のデコード、デコードされた命令の実行、出力すべきプロセスパケットの生成、プロセスパケットの出力の機能を有する。
【０１１２】
演算部１１３は、入力プロセスパケットＰＰｂに含まれる命令をデコードし、その命令の実行が可能であれば、その命令を実行する。そして、演算部１１３は、命令を実行することにより行った処理の結果に基づいて入力プロセスパケットＰＰｂを変更して出力すべきプロセスパケットＰＰｃを得、そのプロセスパケットＰＰｃを出力する。
【０１１３】
なお、演算部１１３は、命令の実行が不可能であれば、入力プロセスパケットＰＰｂをそのまま出力すべきプロセスパケットＰＰｃとし、そのプロセスパケットＰＰｃを出力する。
【０１１４】
また、演算部１１３は、入力プロセスパケットＰＰｂに含まれる命令の実行は可能であるが、その入力プロセスパケットＰＰｂと同一のプロセスパケットが過去に入力されており、それによる処理を終了しているときは、その入力プロセスパケットＰＰｂに関しては何も処理を行わない。この場合の入力プロセスパケットＰＰｂは不要なプロセスパケットであるからである。
【０１１５】
メモリ１２０は、演算部１１３とデータバスを介して接続されている。演算部１１３は、必要に応じて、メモリ１２０に画像データを記憶し、あるいはメモリ１２０から画像データを読み出す。すなわち、プロセスパケットに配置される命令の中には、画像データの書き込みを指示する書き込み命令と、画像データの読み出しを指示する読み出し命令とがある。
【０１１６】
演算部１１３は、プロセスパケットに、書き込み命令と画像データが配置されている場合には、その画像データを、データバスを介し、メモリ１２０に供給して書き込む。また、演算部１１３は、プロセスパケットに、読み出し命令が配置されている場合には、メモリ１２０から、データバスを介して、画像データを読み出し、プロセスパケットに配置する。
【０１１７】
ここで、本実施の形態では、図５に示すように、メモリ１２０は、その記憶領域が５つのバンクに分割されており、これにより、５フィールドの画像データを、別々のバンクに記憶することができる。ただし、メモリ１２０の各バンクは、１フィールド分の画像データを記憶することができるだけの記憶容量を有している必要はない。
【０１１８】
本実施の形態では、メモリ１２０の各バンクは、１２個の演算処理ユニット１０２1〜１０２12の合計で、少なくとも探査範囲の画像データを記憶できる記憶容量を有していればよい。つまり、本実施の形態では、１バンクの記憶容量の１２倍の記憶容量が、探査範囲の画像データのデータ量以上であればよい。例えば、メモリ１２０の１バンクは、１／１２フィールド分の画像データを記憶できる記憶容量とされる。したがって、メモリ１２０としては、図１６で説明したような配線容量が問題とならないメモリ、すなわち、それほど記憶容量が大きくなく、ＰＥ１１０との間のデータバスを短くすることができるメモリを採用できる。
【０１１９】
また、ＰＥ１１０は、アドレス記憶部１１４およびアドレス判定部１１５を有している。アドレス記憶部１１４には、予め、演算処理ユニット１０２n自体のアドレス、つまり自己のアドレスが記憶されている。
【０１２０】
アドレス判定部１１５は、ＦＩＦＯメモリ１１１より出力されるプロセスパケットＰＰａに係るプロセスが、この演算処理ユニット１０２nで実行されるものであるか否かを判定する。すなわち、アドレス判定部１１５は、ＦＩＦＯメモリ１１１より出力されるプロセスパケットＰＰａの処理ユニットアドレス部（図２参照）に記憶されている一個または複数個のアドレスに、アドレス記憶部１１４に記憶されている自己のアドレスが存在するか否かを判定し、存在するとき一の状態、例えば「１」となり、存在しないとき他の状態、例えば「０」となる判定信号ｓ1を出力する。
【０１２１】
また、ＰＥ１１０は、ＦＩＦＯメモリ１１１より出力されるプロセスパケットＰＰａまたは演算部１１３より出力されるプロセスパケットＰＰｃを選択的に取り出す、切り換え手段としての切換スイッチ１１６と、この切換スイッチ１１６の切り換えを制御する切り換え制御部１１７とを有している。
【０１２２】
演算部１１３の出力側は切換スイッチ１１６のＡ側の固定端子に接続され、ＦＩＦＯメモリ１１１の出力側は時間調整用の遅延回路１１８を介して切換スイッチ１１６のＢ側の固定端子に接続される。さらに、切換スイッチ１１６のＯＦＦ側の固定端子は電源端子に接続される。つまり、このＯＦＦ側の固定端子には、ハイレベル「１」のデータが供給された状態とされる。なお、このＯＦＦ側の固定端子を接地し、それにローレベル「０」のデータが供給された状態としてもよい。
【０１２３】
切換スイッチ１１６の可動端子が演算処理ユニット１０２nの出力端子となる。つまり、この可動端子がデータバスを介して後段の演算処理ユニット（またはルート選択部、または集計部）に接続される。
【０１２４】
上述したようにアドレス判定部１１５ではＦＩＦＯメモリ１１１より出力されるプロセスパケットＰＰａの処理ユニットアドレス部に記憶されているアドレスに基づいて、当該プロセスパケットＰＰａに係るプロセスがこの演算処理ユニット１０２nで実行されるものであるか否かを判定する。
【０１２５】
そして、後述するように、当該プロセスパケットＰＰａがこの演算処理ユニット１０２nで実行されるものでないとき、当該プロセスパケットＰＰａを切換スイッチ１１６を介して直ちに後段に出力するものであるが、少なくとも判定時には当該プロセスパケットＰＰａの処理ユニットアドレス部の部分は既にＦＩＦＯメモリ１１１から出力された状態にあり、ＦＩＦＯメモリ１１１の出力側を切換スイッチ１１６のＢ側の固定端子に直接接続したのでは、当該プロセスパケットＰＰａを欠けなく完全な状態で後段に供給することができない。
【０１２６】
上述の時間調整用の遅延回路１１８は、この当該プロセスパケットＰＰａを欠けなく完全な状態で後段に供給するためのものであり、少なくとも、ＦＩＦＯメモリ１１１より当該プロセスパケットＰＰａの出力が開始されてからアドレス判定部１１５で判定結果が出るまでの遅延時間を有するようにされる。
【０１２７】
切り換え制御部１１７には、演算部１１３より出力される要求信号ｓ2およびアドレス判定部１１５より出力される判定信号ｓ1が供給される。そして、切り換え制御部１１７は、要求信号ｓ2が「１」であるときは、判定信号ｓ1が「１」であるか「０」であるかによらず、切換スイッチ１１６がＡ側に接続されるように制御する。また、切り換え制御部１１７は、要求信号ｓ2が「０」で、かつ判定信号ｓ1が「０」であるときは、切換スイッチ１１６がＢ側に接続されるように制御する。さらに、切り換え制御部１１７は、要求信号ｓ2が「０」で、かつ判定信号ｓ1が「１」であるときは、切換スイッチ１１６がＯＦＦ側に接続されるように制御する。
【０１２８】
図６は、判定信号ｓ1および要求信号ｓ2と、切換スイッチ１１６の切り換えの関係を示している。
【０１２９】
図５に示す演算処理ユニット１０２nの動作を説明する。
前段の演算処理ユニット（またはルート選択部）からデータバスを介して供給されるプロセスパケット（入力プロセスパケット）は、ＦＩＦＯメモリ１１１に取り込まれて、一時的に記憶される。このＦＩＦＯメモリ１１１より出力されるプロセスパケットＰＰａは、ＦＩＦＯメモリ１１２に取り込まれて、一時的に記憶される。また、ＦＩＦＯメモリ１１１より出力されるプロセスパケットＰＰａは、遅延回路１１８を介して切換スイッチ１１６のＢ側の固定端子に供給される。
【０１３０】
ＦＩＦＯメモリ１１２から順次出力されるプロセスパケットＰＰｂは、演算部１１３に供給される。演算部１１３は、プロセスパケットＰＰｂに含まれる命令をデコードし、その命令の実行が可能であればその命令を実行する。そして、演算部１１３は、命令を実行することにより行った処理の結果に基づいて入力プロセスパケットＰＰｂを変更して出力すべきプロセスパケットＰＰｃを生成し、そのプロセスパケットＰＰｃを出力する。このプロセスパケットＰＰｃは切換スイッチ１１６のＡ側の固定端子に供給される。
【０１３１】
ただし、演算部１１３は、入力プロセスパケットＰＰｂに含まれる命令の実行は可能であるが、その入力プロセスパケットＰＰｂと同一のプロセスパケットが過去に入力されており、それによる処理を終了しているときは、その入力プロセスパケットＰＰｂに関しては何も処理を行わない。同一のプロセスパケットか否かは、ＰＩＤ部（図２参照）に配置されたＰＩＤに基づいて行うことができる。
【０１３２】
一方、演算部１１３は、その命令の実行が不可能であるときは、入力プロセスパケットＰＰｂをそのまま出力すべきプロセスパケットＰＰｃとし、そのプロセスパケットＰＰｃを出力する。
【０１３３】
演算部１１３より出力されるプロセスパケットＰＰｃは、切換スイッチ１１６のＡ側の固定端子に供給される。演算部１１３は、このようにプロセスパケットＰＰｃを出力するとき、要求信号ｓ2を「１」にする。
【０１３４】
また、アドレス判定部１１５は、プロセスパケットＰＰａの処理ユニットアドレス部に記憶されているアドレスにアドレス記憶部１１４に記憶されている自己のアドレスが存在するか否かを判定する。
【０１３５】
この場合、アドレス判定部１１５は、処理ユニットアドレス部に記憶されているアドレスに自己のアドレスが存在するとき、プロセスパケットＰＰａに係るプロセスがこの演算処理ユニット１０２nで実行されるものであるとして、判定信号ｓ1を「１」にする。一方、アドレス判定部１１５は、処理ユニットアドレス部に記憶されているアドレスに自己のアドレスが存在しないとき、プロセスパケットＰＰａに係るプロセスがこの演算処理ユニット１０２nで実行されるものでないとして、判定信号ｓ1を「０」にする。
【０１３６】
演算部１１３より出力される要求信号ｓ2およびアドレス判定部１１５より出力される判定信号ｓ1は、切り換え制御部１１７に供給される。切り換え制御部１１７は、要求信号ｓ2が「１」であるとき、切換スイッチ１１６をＡ側に接続する。つまり、演算部１１３がプロセスパケットＰＰｂの処理を終了してプロセスパケットＰＰｃを出力するとき、切換スイッチ１１６はＡ側に接続される。この場合、演算部１１３より出力されるプロセスパケットＰＰｃは、切換スイッチ１１６のＡ側を介して後段の演算処理ユニット（またはルート選択部、または集計部）に、出力プロセスパケットとして供給される。
【０１３７】
また、切り換え制御部１１７は、要求信号ｓ2が「０」で、かつ判定信号ｓ1が「０」であるとき、切換スイッチ１１６をＢ側に接続する。つまり、演算部１１３がプロセスパケットＰＰｂの処理を行っており、かつＦＩＦＯメモリ１１１より出力されるプロセスパケットＰＰａに係るプロセスがこの演算処理ユニット１０２nで実行されるものでないとき、切換スイッチ１１６はＢ側に接続される。この場合、そのプロセスパケットＰＰａは、直ちに切換スイッチ１１６のＢ側を介して、後段の演算処理ユニット（またはルート選択部、または集計部）に出力プロセスパケットとして供給される。これにより、処理時間を短縮できる。
【０１３８】
また、切り換え制御部１１７は、要求信号ｓ2が「０」で、かつ判定信号ｓ1が「１」であるときは、切換スイッチ１１６をＯＦＦ側に接続する。つまり、演算部１１３がプロセスパケットＰＰｂの処理を行っており、かつＦＩＦＯメモリ１１１より出力されるプロセスパケットＰＰａに係るプロセスがこの演算処理ユニット１０２nで実行されるものであるとき、切換スイッチ１１６はＯＦＦ側に接続される。この場合、後段の演算処理ユニット（またはルート選択部、または集計部）には、ハイレベル「１」またはローレベル「０」のデータが供給される。これにより、後段の演算処理ユニット（またはルート選択部、または集計部）に、誤ったプロセスパケット、例えばＦＩＦＯメモリ１１１より出力されるプロセスパケットＰＰａ（このパケットＰＰａはこの演算処理処理ユニット１０２nの演算部１１３で処理する必要があるが、その処理を経ていない）が供給されることを防止できる。
【０１３９】
次に、図７のフローチャートを参照して、図５の演算処理ユニット１０２nの演算部１１３にプロセスパケットＰＰｂが入力された場合における、当該演算部１１３が行う処理（プロセス実行処理）について説明する。
【０１４０】
ステップＳ１１で、演算部１１３は、その入力プロセスパケットＰＰｂに配置された命令をデコードし、ステップＳ１２に進む。ステップＳ１２では、演算部１１３は、ステップＳ１１でデコードした命令の実行が可能かどうかを判定する。
【０１４１】
演算部１１３は、ステップＳ１２で命令の実行が可能でないと判定するとき、ステップＳ１３〜Ｓ１５をスキップして、ステップＳ１６に進み、要求信号ｓ2を「１」にする。そして、演算部１１３は、ステップＳ１７で、入力プロセスパケットＰＰｂをそのまま出力すべきプロセスパケットＰＰｃとして出力し、その後ステップＳ１８で、要求信号ｓ2を「０」に戻し、処理を終了する。
【０１４２】
また、演算部１１３は、ステップＳ１２で命令の実行が可能であると判定するとき、ステップＳ１３に進み、その入力プロセスパケットＰＰｂと同一のプロセスパケットが過去に入力され、処理済みであるか否かを判定する。演算部１１３は処理済みであると判定するとき、その入力プロセスパケットＰＰｂに関しては何も処理を行わず、処理を終了する。この場合、入力プロセスパケットＰＰｂは不要なプロセスパケットであり、演算部１１３は、この入力プロセスパケットＰＰｂに対応したプロセスパケットを出力することはない。
【０１４３】
また、演算部１１３は、ステップＳ１３で処理済みでないと判定するとき、ステップＳ１４に進み、入力プロセスパケットＰＰｂに配置された命令を実行し、その命令にしたがった処理を行う。そして、演算部１１３は、ステップＳ１５で、プロセスパケットに配置された命令にしたがった処理を行うことにより得られたデータを、必要に応じて、入力プロセスパケットＰＰｂに配置し、ステップＳ１５に進む。
【０１４４】
ステップＳ１５では、演算部１１３は、ステップＳ１４で行った処理に対応して、必要に応じて、入力プロセスパケットＰＰｂの状態部を書き換え、ステップＳ１６に進む。
【０１４５】
ステップＳ１６では、演算部１１３は、要求信号ｓ2を「１」にする。そして、演算部１１３は、ステップＳ１７で、ステップＳ１４，Ｓ１５で変更された入力プロセスパケットＰＰｂを出力すべきプロセスパケットＰＰｃとして出力し、その後ステップＳ１８で、要求信号ｓ2を「０」に戻し、処理を終了する。
【０１４６】
次に、図８のフローチャートを参照して、図５の演算処理ユニット１０２nの演算部１１３に書き込み命令を有するプロセスパケットＰＰｂが入力された場合における、当該演算部１１３が行う処理（プロセス実行処理）について説明する。
【０１４７】
なお、この場合、入力プロセスパケットＰＰｂには、書き込み命令の他、メモリ１２０に書き込むべき画像データと、その画像データをメモリ１２０に書き込む書き込みアドレスが、少なくとも配置されているものとする。
【０１４８】
ステップＳ１１で、演算部１１３は、その入力プロセスパケットＰＰｂに配置された命令をデコードし、ステップＳ１２に進む。ステップＳ１２では、演算部１１３は、ステップＳ１１でデコードした命令の実行が可能かどうか、ここでは、入力プロセスパケットＰＰｂに配置されている書き込みアドレスが、演算処理ユニット１０２nが有するメモリ１２０nのアドレスかどうかを判定する。
【０１４９】
演算部１１３は、ステップＳ１２でプロセスパケットに配置されている書き込みアドレスが、演算処理ユニット１０２nが有するメモリ１２０nのアドレスでないと判定するとき、ステップＳ１３〜Ｓ１５をスキップして、ステップＳ１６に進み、要求信号ｓ2を「１」にする。そして、演算部１１３は、ステップＳ１７で、入力プロセスパケットＰＰｂをそのまま出力すべきプロセスパケットＰＰｃとして出力し、その後ステップＳ１８で、要求信号ｓ2を「０」に戻し、処理を終了する。
【０１５０】
また、演算部１１３は、ステップＳ１２でプロセスパケットに配置されている書き込みアドレスが、演算処理ユニット１０２nが有するメモリ１２０nのアドレスであると判定するとき、ステップＳ１３に進み、その入力プロセスパケットＰＰｂと同一のプロセスパケットが過去に入力され、処理済みであるか否かを判定する。演算部１１３は処理済みであると判定するとき、その入力プロセスパケットＰＰｂに関しては何も処理を行わず、処理を終了する。この場合、入力プロセスパケットＰＰｂは不要なプロセスパケットであり、演算部１１３は、この入力プロセスパケットＰＰｂに対応したプロセスパケットを出力することはない。
【０１５１】
また、演算部１１３は、ステップＳ１３で処理済みでないと判定するとき、ステップＳ１４に進み、入力プロセスパケットＰＰｂに配置された命令を実行する。つまり、演算部１１３は、入力プロセスパケットＰＰｂに配置されている画像データをメモリ１２０nに書き込み、ステップＳ１５に進む。
【０１５２】
ステップＳ１５では、演算部１１３は、ステップＳ１４で行った処理に対応して、必要に応じて、入力プロセスパケットＰＰｂの状態部を書き換え、ステップＳ１６に進む。
【０１５３】
ステップＳ１６では、演算部１１３は、要求信号ｓ2を「１」にする。そして、演算部１１３は、ステップＳ１７で、ステップＳ１４，Ｓ１５で変更された入力プロセスパケットＰＰｂを出力すべきプロセスパケットＰＰｃとして出力し、その後ステップＳ１８で、要求信号ｓ2を「０」に戻し、処理を終了する。
【０１５４】
プロセス生成部１０１は、図３のプロセス生成処理のステップＳ１〜Ｓ３において、書き込み命令を有するプロセスパケット（以下、適宜、「書き込みプロセスパケット」という）を生成して出力する。この書き込みプロセスパケットが、演算処理ユニット１０２1〜１０２12を順次移動していくことにより、例えば図９に示すように、少なくとも、注目ブロックと候補ブロックの画像データが、メモリ１２０に書き込まれる。
【０１５５】
ここで、図９Ａに示すように、注目ブロックの画像データを影を付して表すとともに、候補ブロックの画像データを斜線を付して表すこととすると、図９Ｂでは、注目ブロックの一部がメモリ１２０1に、他の一部がメモリ１２０2に、さらに他の一部がメモリ１２０5に、残りがメモリ１２０6に、それぞれ書き込まれ、候補ブロックの一部がメモリ１２０3に、他の一部がメモリ１２０4に、さらに他の一部がメモリ１２０7に、残りがメモリ１２０8に、それぞれ書き込まれている。
【０１５６】
次に、図１０のフローチャートを参照して、図５の演算処理ユニット１０２nの演算部１１３に読み出し命令を有するプロセスパケットＰＰｂが入力された場合における、当該演算部１１３が行う処理（プロセス実行処理）について説明する。
【０１５７】
なお、この場合、入力プロセスパケットＰＰｂには、読み出し命令の他、メモリ１２０から読み出すべき画像データの読み出しアドレスが、少なくとも配置されているものとする。
【０１５８】
ステップＳ１１で、演算部１１３は、その入力プロセスパケットＰＰｂに配置された命令をデコードし、ステップＳ１２に進む。ステップＳ１２では、演算部１１３は、ステップＳ１１でデコードした命令の実行が可能かどうか、ここでは、入力プロセスパケットＰＰｂに配置されている読み出しアドレスが、演算処理ユニット１０２nが有するメモリ１２０nのアドレスかどうかを判定する。
【０１５９】
演算部１１３は、ステップＳ１２でプロセスパケットに配置されている読み出しアドレスが、演算処理ユニット１０２nが有するメモリ１２０nのアドレスでないと判定するとき、ステップＳ１３〜Ｓ１５をスキップして、ステップＳ１６に進み、要求信号ｓ2を「１」にする。そして、演算部１１３は、ステップＳ１７で、入力プロセスパケットＰＰｂをそのまま出力すべきプロセスパケットＰＰｃとして出力し、その後ステップＳ１８で、要求信号ｓ2を「０」に戻し、処理を終了する。
【０１６０】
また、演算部１１３は、ステップＳ１２でプロセスパケットに配置されている読み出しアドレスが、演算処理ユニット１０２nが有するメモリ１２０nのアドレスであると判定するとき、ステップＳ１３に進み、その入力プロセスパケットＰＰｂと同一のプロセスパケットが過去に入力され、処理済みであるか否かを判定する。演算部１１３は処理済みであると判定するとき、その入力プロセスパケットＰＰｂに関しては何も処理を行わず、処理を終了する。この場合、入力プロセスパケットＰＰｂは不要なプロセスパケットであり、演算部１１３は、この入力プロセスパケットＰＰｂに対応したプロセスパケットを出力することはない。
【０１６１】
また、演算部１１３は、ステップＳ１３で処理済みでないと判定するとき、ステップＳ１４に進み、入力プロセスパケットＰＰｂに配置された命令を実行する。つまり、演算部１１３は、メモリ１２０nから画像データを読み出し、その画像データを入力プロセスパケットＰＰｂに配置し、ステップＳ１５に進む
ステップＳ１５では、演算部１１３は、ステップＳ１４で行った処理に対応して、必要に応じて、入力プロセスパケットＰＰｂの状態部を書き換え、ステップＳ１６に進む。
【０１６２】
ステップＳ１６では、演算部１１３は、要求信号ｓ2を「１」にする。そして、演算部１１３は、ステップＳ１７で、ステップＳ１４，Ｓ１５で変更された入力プロセスパケットＰＰｂを出力すべきプロセスパケットＰＰｃとして出力し、その後ステップＳ１８で、要求信号ｓ2を「０」に戻し、処理を終了する。
【０１６３】
次に、図１１のフローチャートを参照して、図５の演算処理ユニット１０２nの演算部１１３に差分絶対値和演算命令を有するプロセスパケットＰＰｂが入力された場合における、当該演算部１１３が行う処理（プロセス実行処理）について説明する。
【０１６４】
なお、この場合、メモリ１２０には、既に、差分絶対値和の演算対象である注目ブロックと候補ブロックの画像データが少なくとも書き込まれているものとする。さらに、入力プロセスパケットＰＰｂには、差分絶対値和演算命令の他、メモリ１２０に記憶された注目ブロックと候補ブロックのアドレス、候補ブロックから注目ブロックに向かう候補ベクトルが、少なくとも配置されているものとする。
【０１６５】
ステップＳ１１で、演算部１１３は、その入力プロセスパケットＰＰｂに配置された命令をデコードし、ステップＳ１２に進む。ステップＳ１２では、演算部１１３は、ステップＳ１１でデコードした命令の実行が可能かどうか、ここでは、注目ブロックまたは候補ブロックのうちの少なくとも一方の画素が、演算処理ユニット１０２nが有するメモリ１２０nに記憶されているかどうかを判定する。
【０１６６】
ここで、注目ブロックの画素が、演算処理ユニット１０２nが有するメモリ１２０nに記憶されているかどうかは、入力プロセスパケットＰＰｂに配置された注目ブロックのアドレスから判定することができる。候補ブロックの画素が、演算処理ユニット１０２nが有するメモリ１２０nに記憶されているかどうかも、入力プロセスパケットＰＰｂに配置された候補ブロックのアドレスから判定することができる。
【０１６７】
演算部１１３は、ステップＳ１２で注目ブロックおよび候補ブロックのうちのいずれも、演算処理ユニット１０２nが有するメモリ１２０nに記憶されていないと判定するとき、ステップＳ１３〜Ｓ１５をスキップして、ステップＳ１６に進み、要求信号ｓ2を「１」にする。そして、演算部１１３は、ステップＳ１７で、入力プロセスパケットＰＰｂをそのまま出力すべきプロセスパケットＰＰｃとして出力し、その後ステップＳ１８で、要求信号ｓ2を「０」に戻し、処理を終了する。
【０１６８】
また、演算部１１３は、ステップＳ１２で注目ブロックまたは候補ブロックのうちの少なくとも一方の画素が、演算処理ユニット１０２nが有するメモリ１２０nに記憶されていると判定するとき、ステップＳ１３に進み、その入力プロセスパケットＰＰｂと同一のプロセスパケットが過去に入力され、処理済みであるか否かを判定する。演算部１１３は処理済みであると判定するとき、その入力プロセスパケットＰＰｂに関しては何も処理を行わず、処理を終了する。この場合、入力プロセスパケットＰＰｂは不要なプロセスパケットであり、演算部１１３は、この入力プロセスパケットＰＰｂに対応したプロセスパケットを出力することはない。
【０１６９】
また、演算部１１３は、ステップＳ１３で処理済みでないと判定するとき、ステップＳ１４に進み、入力プロセスパケットＰＰｂに配置された命令を実行する。
【０１７０】
すなわち、まず最初に、ステップＳ２１において、演算部１１３は、注目ブロックの画素が、演算処理ユニット１０２nが有するメモリ１２０nに記憶されているかどうかを判定する。演算部１１３は、ステップＳ２１で注目ブロックの画素が演算処理ユニット１０２nが有するメモリ１２０nに記憶されていないと判定するとき、ステップＳ２２をスキップして、ステップＳ２３に進む。
【０１７１】
一方、演算部１１３は、ステップＳ２１で注目ブロックの画素が演算処理ユニット１０２nが有するメモリ１２０nに記憶されていると判定するとき、ステップＳ２２に進み、メモリ１２０nに記憶されている注目ブロックの画素を読み出し、入力プロセスパケットＰＰｂに配置して、ステップＳ２３に進む。
【０１７２】
ステップＳ２３では、演算部１１３は、候補ブロックの画素が演算処理ユニット１０２nが有するメモリ１２０nに記憶されているかどうかを判定する。演算部１１３は、ステップＳ２３で候補ブロックの画素が演算処理ユニット１０２nが有するメモリ１２０nに記憶されていないと判定するとき、ステップＳ２４をスキップして、ステップＳ２５に進む。
【０１７３】
一方、演算部１１３は、ステップＳ２３で候補ブロックの画素が演算処理ユニット１０２nが有するメモリ１２０nに記憶されていると判定するとき、ステップＳ２４に進み、メモリ１２０nに記憶されている候補ブロックの画素を読み出し、入力プロセスパケットＰＰｂに配置して、ステップＳ２５に進む。
【０１７４】
ステップＳ２５では、演算部１１３は、差分絶対値和の計算が可能かどうかを判定する。この場合、演算部１１３は、入力プロセスパケットＰＰｂに、注目ブロックの画素が配置されており、かつ、その注目ブロックの画素に対応する候補ブロックの画素も配置されているかどうかによって、差分絶対値和の計算が可能かどうかを判定する。
【０１７５】
演算部１１３は、ステップＳ２５で差分絶対値和の計算が可能でないと判定するとき、すなわち入力プロセスパケットＰＰｂに、注目ブロックの画素が配置されていないか、または配置されていても、その注目ブロックの画素に対応する候補ブロックの画素が配置されていない場合、ステップＳ２６をスキップし、これにより、差分絶対値和演算命令の実行を終了して、ステップＳ１５に進む。
【０１７６】
一方、演算部１１３は、ステップＳ２５で差分絶対値和の計算が可能であると判定するとき、すなわち入力プロセスパケットＰＰｂに、注目ブロックの画素が配置されており、かつ、その注目ブロックの画素に対応する候補ブロックの画素も配置されている場合、ステップＳ２６に進み、入力プロセスパケットＰＰｂに配置されている注目ブロックの画素それぞれと、その画素に対応する候補ブロックの画素それぞれとの差分絶対値を計算し、さらに、その総和を計算する。
【０１７７】
そして、演算部１１３は、その差分絶対値の総和と、入力プロセスパケットＰＰｂの差分絶対値和部に配置されている差分絶対値和とを加算し、その加算値を新たな差分絶対値和として入力プロセスパケットＰＰｂの差分絶対値和部に上書きし、これにより、差分絶対値和演算命令の実行を終了して、ステップＳ１５に進む。
【０１７８】
ステップＳ１５では、演算部１１３は、ステップＳ１４で行った処理に対応して、必要に応じて、入力プロセスパケットＰＰｂの状態部を書き換え、ステップＳ１６に進む。
【０１７９】
ステップＳ１６では、演算部１１３は、要求信号ｓ2を「１」にする。そして、演算部１１３は、ステップＳ１７で、ステップＳ１４，Ｓ１５で変更された入力プロセスパケットＰＰｂを出力すべきプロセスパケットＰＰｃとして出力し、その後ステップＳ１８で、要求信号ｓ2を「０」に戻し、処理を終了する。
【０１８０】
プロセス生成部１０１は、図３のプロセス生成処理のステップＳ４〜Ｓ７において、差分絶対値和演算命令を有するプロセスパケット（以下、適宜、「差分絶対値和プロセスパケット」という）を生成して出力する。この差分絶対値和プロセスパケットが、演算処理ユニット１０２1〜１０２12を順次移動していくことにより、注目ブロックと候補ブロックの差分絶対値和が、図１２および図１３に示すように求められる。
【０１８１】
すなわち、いま、図１２に示すように、メモリ１２０nに、注目ブロックの一部が、メモリ１２０n+1に、注目ブロックの残りと候補ブロックの一部が、メモリ１２０n+2に、候補ブロックの残りが、それぞれ記憶されているものとする。また、演算処理ユニット１０２nのＰＥ１１０を、以下、適宜、「ＰＥ１１０n」と表すこととする。
【０１８２】
この場合、演算処理ユニット１０２nがプロセスパケットを受信すると、ＰＥ１１０nは、メモリ１２０nに記憶されている注目ブロックの一部を読み出し、プロセスパケットに配置して、次段の演算処理ユニット１０２n+1に転送する。
【０１８３】
ここで、ＰＥ１１０nでは、図１３に示すプロセスパケットが送受信される。なお、図１３では、図が煩雑になるのを避けるため、プロセスパケットについて、図１３Ａに示すように、その先頭から、ＰＩＤ部、注目ブロック読み出し状
態部、候補ブロック読み出し状態部、命令部、注目ブロックアドレス部、候補ブロックアドレス部、注目ブロックデータ部、候補ブロックデータ部、差分絶対値和部だけを図示してある。
【０１８４】
注目ブロックおよび候補ブロックは、図１２で説明したように、メモリ１２０n〜１２０n+2に記憶されているから、プロセスパケットが、ＰＥ１１０nで受信される前は、注目ブロックおよび候補ブロックのいずれの読み出しも行われておらず、従って、注目ブロック読み出し状態部と、候補ブロック読み出し状態部の状態情報は、図１３Ｂに示すように、いずれも「未」になっている。さらに、この場合、注目ブロックアドレス部と候補ブロックアドレス部には、それぞれ、注目ブロックのアドレスadd1と候補ブロックのアドレスadd2がセットされている。また、差分絶対値和部には、初期値としての０がセットされている。なお、命令部には、差分絶対値和演算命令を表す「ＭＥ」がセットされている。
【０１８５】
以上のようなプロセスパケットが、ＰＥ１１０nに入力され、図１２で説明したように処理されることにより、次のようなプロセスパケットが、ＰＥ１１０nからＰＥ１１０n+1に転送される。
【０１８６】
すなわち、ＰＥ１１０nからＰＥ１１０n+1に転送されるプロセスパケットには、図１３Ｂに示すように、メモリ１２０nに記憶されている注目ブロックの一部の画素data_a1が、新たに配置される。さらに、ＰＥ１１０nでは、メモリ１２０nから注目ブロックの一部の画素data_a1が読み出されたことから、プロセスパケットの注目ブロック読み出し状態部の状態情報が、「未」から「中」に書き換えられる。
【０１８７】
演算処理ユニット１０２n+1が、演算処理ユニット１０２nからのプロセスパケットを受信すると、ＰＥ１１０n+1は、図１２に示すように、メモリ１２０ｎ＋１に記憶されている注目ブロックの残りと、候補ブロックの一部を読み出す。ここで、演算処理ユニット１０２nからのプロセスパケットには、注目ブロックの一部が配置されているから、ＰＥ１１０n+1は、メモリ１２０n+1から読み出した注目ブロックの残りと合わせて、注目ブロック全体の画素を取得することになる。
【０１８８】
ＰＥ１１０n+1は、注目ブロック全体の画素と、メモリ１２０n+1から読み出した候補ブロックの一部の画素とを用いて計算可能な差分絶対値和を求め、プロセスパケットに配置する。さらに、ＰＥ１１０n+1は、差分絶対値和の演算に用いられなかった注目ブロックの画素を、プロセスパケットに配置し、次段の演算処理ユニット１０２n+2に転送する。
【０１８９】
すなわち、ＰＥ１１０n+1からＰＥ１１０n+2に転送されるプロセスパケットには、図１３Ｂに示すように、注目ブロックの画素のうち、差分絶対値和の演算に用いられなかった画素data_a2が、注目ブロックデータ部の画素data_a1に代えて配置されるとともに、ＰＥ１１０n+1で求められた差分絶対値和sum1が、差分絶対値和部の初期値０に代えて配置される。さらに、ＰＥ１１０n+1では、注目ブロックの画素のすべてが取得されるとともに、候補ブロックの一部の画素が取得されたことから、プロセスパケットの注目ブロック読み出し状態部の状態情報が「中」から「終」に書き換えられると共に、候補ブロック読み出し状態部の状態情報は、「未」から「中」に書き換えられる。
【０１９０】
演算処理ユニット１０２n+2が、演算処理ユニット１０２n+1からのプロセスパケットを受信すると、ＰＥ１１０n+2は、図１２に示すように、メモリ１２０n+2に記憶されている候補ブロックの残りを読み出す。
【０１９１】
ＰＥ１１０n+2は、メモリ１２０n+2から読み出した候補ブロックの残りの画素と、プロセスパケットに配置されている注目ブロックの画素とを用いて計算可能な差分絶対値和を求め、プロセスパケットに配置されている差分絶対値和と加算する。そして、ＰＥ１１０n+2は、その加算値を、新たな差分絶対値和として、プロセスパケットに上書きする形で配置し、次段の演算処理ユニット１０２n+3（図示せず）に転送する。
【０１９２】
すなわち、ＰＥ１１０n+2では、注目ブロックと候補ブロックのすべての画素についての差分絶対値和sum2が求められるから、ＰＥ１１０n+2からＰＥ１１０n+3（図示せず）に転送されるプロセスパケットには、図１３Ｂに示すように、その差分絶対値和sum2が、差分絶対値和部の差分絶対値和sum1に代えて配置される。また、プロセスパケットにおいて注目ブロックデータ部に配置されていた注目ブロックの画素data_a2は、すべて、差分絶対値和の計算に用いられるから、注目ブロックデータ部から、注目ブロックの画素data_a2が削除される。さらに、ＰＥ１１０n+2では、候補ブロックの残りの画素が取得されたことから、プロセスパケットの候補ブロック読み出し状態部の状態情報が、「中」から「終」に書き換えられる。
【０１９３】
この場合、プロセスパケットが、ＰＥ１１０n+2から出力される時点で、そのプロセスパケットには、注目ブロックと候補ブロックのすべての画素についての差分絶対値和sum2が配置されている。したがって、演算処理ユニット１０２n+3以降では、プロセスパケットは、単に転送されていき、最終的に、集計部１０３（図１参照）で受信される。
【０１９４】
次に、集計部１０３の詳細を説明する。集計部１０３も、演算処理ユニット１０２nと同様に構成されている。すなわち、集計部１０３は、ＰＥ１１０とメモリ１２０で構成されている。ただし、集計部１０３は、演算処理ユニット１０２nと異なる構成とすることも可能であるが、演算処理ユニット１０２nと同一構成とした方が、動きベクトル検出装置１００の製造コストを低く抑えることができる。
【０１９５】
プロセス生成部１０１では、図３のステップＳ４〜Ｓ６の処理によって、注目ブロックの探査範囲内に選択しうる候補ベクトルすべてについて、差分絶対値和を演算するための差分絶対値和演算プロセスが生成されるが、このプロセスに対応するプロセスパケットの全てが集計部１０３で受信されると、集計部１０３は、注目ブロックの探査範囲内に選択し得る候補ベクトルの全てについて、差分絶対値和を取得する。
【０１９６】
プロセス生成部１０１では、図３のステップＳ４〜Ｓ６の処理の後、ステップＳ７およびＳ８において、最小値判定プロセスが生成され、最小値判定命令を含むプロセスパケットが出力される。このプロセスパケットは、演算処理ユニット１０２1〜１０２12を経由して、集計部１０３で受信される。集計部１０３は、最小値判定命令を含むプロセスパケットを受信すると、それまでに受信した、差分絶対値和演算プロセスに対応するプロセスパケットから、最小の差分絶対値和が配置されているものを選択し、さらに、そのプロセスパケットに配置されている候補ベクトルを、注目ブロックの動きベクトルとして出力する。
【０１９７】
以上説明したように、上述の実施の形態においては、ＰＥ１１０nとメモリ１２０nからなる複数の演算処理ユニット１０２nを一次元的に接続し、その複数の演算処理ユニット１０２nにおいて、命令と必要なデータが配置されたプロセスパケットを転送（移動）させることにより、動きベクトルを検出するための処理を行うようにしたので、長いデータバスを駆動する際の問題としての、例えば配線遅延や配線間のクロストーク、反射の影響などを回避できる。
【０１９８】
すなわち、ＰＥ１１０nとメモリ１２０nとの間や、演算処理ユニット１０２nどうしを結ぶデータバスは、短くて済むので、長いデータバスを駆動する際の問題を回避できる。したがって、動きベクトル検出装置の設計にあたり、長いデータバスを駆動する際の問題を考慮する必要がないので、設計容易なハードウェアによって、動きベクトルを検出できる。
【０１９９】
また、上述実施の形態においては、１２個の演算処理ユニット１０２1〜１０２12が４個の連続する演算処理ユニットの組に分けられ、各組１０２ａ〜１０２ｃの入力側にそれぞれルート選択部１０４1〜１０４3が挿入される。そして、ルート選択部１０４1〜１０４3のそれぞれは、入力プロセスパケットに係るプロセスを実行する演算処理ユニット１０２nが直後に位置する組１０２ａ〜１０２ｃに存在しないときは、当該入力プロセスパケットを、その組１０２ａ〜１０２ｃの入力側に供給するのではなく、その組の出力側に供給する。
【０２００】
したがって、プロセスパケットが、そのプロセスパケットに係るプロセスを実行するための演算処理ユニット１０２nが存在しない組をバイパスして移動していくので、処理時間を短縮でき、またプロセスパケットの無駄な移動がなくなるので、消費電力を低減できる。
【０２０１】
また、上述実施の形態において、演算処理ユニット１０２nでは、演算部１１３がプロセスパケットＰＰｂの処理を行っており、かつＦＩＦＯメモリ１１１より出力されるプロセスパケットＰＰａに係るプロセスがこの演算処理ユニット１０２nで実行されるものでないとき、切換スイッチ１１６はＢ側に接続される。したがって、そのプロセスパケットＰＰａは、直ちに切換スイッチ１１６のＢ側を介して、後段の演算処理ユニット（またはルート選択部、または集計部）に出力プロセスパケットとして供給されるので、処理時間を短縮できる。
【０２０２】
また、演算部１１３がプロセスパケットＰＰｂの処理を行っており、かつＦＩＦＯメモリ１１１より出力されるプロセスパケットＰＰａに係るプロセスがこの演算処理ユニット１０２nで実行されるものであるとき、切換スイッチ１１６はＯＦＦ側に接続される。この場合、後段の演算処理ユニット（またはルート選択部、または集計部）には、ハイレベル「１」またはローレベル「０」のデータが供給される。これにより、後段に、誤ったプロセスパケット、例えばＦＩＦＯメモリ１１１より出力されるプロセスパケットＰＰａが供給されることを防止できる。
【０２０３】
なお、上述実施の形態においては、この発明を動きベクトル検出装置に適用したものであるが、この発明は画像データを取り扱うその他の画像処理を行うものにも同様に適用できる。例えば、上述した動きベクトル検出装置と同様に画像データの差分演算を行い、その差分演算結果に基づいて参照フィールドに所定の画像あるいは文字が存在するかを検索する装置にも良好に適用できる。
【０２０４】
また、上述においてフローチャートを参照して説明した処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【０２０５】
【発明の効果】
この発明によれば、画像処理を行うための各プロセスを実行する命令を含むプロセスデータを、プロセスを実行する直列接続された複数個の実行手段を移動させていって画像処理を行うものにあって、所定数の連続する実行手段の組毎に、その入力側にルート選択手段を挿入し、ルート選択手段は、入力プロセスデータに係るプロセスを直後に位置する組を構成する実行手段で実行しないときは、当該入力プロセスデータを当該直後に位置する組の出力側に供給するものであり、処理時間の短縮および消費電力の低減を図ることができる。
【０２０６】
また、この発明によれば、画像処理を行うための各プロセスを実行する命令を含むプロセスデータを、プロセスを実行する直列接続された複数個の実行手段を移動させていって画像処理を行うものにあって、実行手段は、入力プロセスデータに係るプロセスを自己が実行しないときは、当該入力プロセスデータをそのまま出力プロセスデータとして出力するものであり、処理時間の短縮を図ることができる。
【図面の簡単な説明】
【図１】
実施の形態としての動きベクトル検出装置の構成を示すブロック図である。
【図２】
プロセスパケットのフォーマットを示す図である。
【図３】
プロセス生成処理を説明するためのフローチャートである。
【図４】
ルート選択部の構成例を示すブロック図である。
【図５】
演算ユニットの構成例を示すブロック図である。
【図６】
判定信号ｓ1、要求信号ｓ2と切換スイッチの切り換えの関係を示す図である。
【図７】
演算部のプロセス実行処理を説明するフローチャートである。
【図８】
演算部のプロセス実行処理（書き込み命令の場合）を説明するための図である。
【図９】メモリに画像データが書き込まれた状態を示す図である。
【図１０】演算部のプロセス実行処理（読み出し命令の場合）を説明するための図である。
【図１１】演算部のプロセス実行処理（差分絶対値和演算命令の場合）を説明するための図である。
【図１２】演算処理ユニットの処理を説明するための図である。
【図１３】プロセスパケットの変化を示す図である。
【図１４】ブロックマッチング法を説明する図である。
【図１５】ブロックマッチング法を説明する図である。
【図１６】従来の動きベクトル検出装置の一例の構成を示すブロック図である。
【図１７】従来の動きベクトル検出装置の他の一例の構成を示すブロック図である。
【符号の説明】
１００・・・動きベクトル検出装置、１０１・・・プロセス生成部、１０２1〜１０２12，１０２n・・・演算処理ユニット、１０２ａ〜１０２ｃ・・・組、１０３・・・集計部、１０４1〜１０４3，１０４n・・・ルート選択部、１１１，１１２・・・ＦＩＦＯメモリ、１１３・・・演算部、１１４・・・アドレス記憶部、１１５・・・アドレス記憶部、１１６・・・切換スイッチ、１１７・・・切り換え制御部、１１８・・・遅延回路、１２０・・・メモリ、１３１・・・ＦＩＦＯメモリ、１３２・・・アドレス記憶部、１３３・・・アドレス判定部、１３４・・・切換スイッチ、１３５・・・遅延回路
【図１】
2004206423.tif 000003
【図２】
2004206423.tif 000004
【図３】
2004206423.tif 000005
【図４】
2004206423.tif 000006
【図５】
2004206423.tif 000007
【図６】
2004206423.tif 000008
【図７】
2004206423.tif 000009
【図８】
2004206423.tif 000010
【図９】
2004206423.tif 000011
【図１０】
2004206423.tif 000012
【図１１】
2004206423.tif 000013
【図１２】
2004206423.tif 000014
【図１３】
2004206423.tif 000015
【図１４】
2004206423.tif 000016
【図１５】
2004206423.tif 000017
【図１６】
2004206423.tif 000018
【図１７】
2004206423.tif 000019