JP2004206423A - 画像処理装置 - Google Patents
画像処理装置 Download PDFInfo
- Publication number
- JP2004206423A JP2004206423A JP2002374862A JP2002374862A JP2004206423A JP 2004206423 A JP2004206423 A JP 2004206423A JP 2002374862 A JP2002374862 A JP 2002374862A JP 2002374862 A JP2002374862 A JP 2002374862A JP 2004206423 A JP2004206423 A JP 2004206423A
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit
- address
- output
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
【解決手段】演算処理ユニット102n(n=1〜12)は、プロセス生成部101より出力されるプロセスパケットを受信し、そのプロセスパケットに含まれる命令に従った処理を行う。ユニット1021〜10212を3つの組102a〜102cに分け、各組の入力側にルート選択部1041〜1043を挿入する。ルート選択部1041〜1043の夫々は、入力プロセスパケットに係るプロセスを実行するユニットが、直後に位置する組102a〜102cに存在しないときは、当該入力プロセスパケットを、その組の入力側に供給するのではなく、その組の出力側に供給する。プロセスパケットは、そのプロセスパケットに係るプロセスを実行するためのユニットが存在しない組をバイパスして移動していく。
【選択図】 図1
Description
【発明の属する技術分野】
この発明は、例えば動きベクトルの検出処理等に適用して好適な画像処理装置に関する。
【0002】
詳しくは、この発明は、画像処理を行うための各プロセスを実行する命令を含むプロセスデータを、プロセスを実行する直列接続された複数個の実行手段を移動させていって画像処理を行うものにあって、所定数の連続する実行手段の組毎に、その入力側にルート選択手段を挿入し、ルート選択手段は、入力プロセスデータに係るプロセスを直後に位置する組を構成する実行手段で実行しないときは、当該入力プロセスデータを当該直後に位置する組の出力側に供給することによって、処理時間の短縮および消費電力の低減を図るようにした画像処理装置に係るものである。
【0003】
また、この発明は、画像処理を行うための各プロセスを実行する命令を含むプロセスデータを、プロセスを実行する直列接続された複数個の実行手段を移動させていって画像処理を行うものにあって、実行手段は、入力プロセスデータに係るプロセスを自己が実行しないときは、当該入力プロセスデータを直ちに出力プロセスデータとして出力することによって、処理時間の短縮を図るようにした画像処理装置に係るものである。
【0004】
【従来の技術】
例えば、画像符号化方式としてのMPEG(Moving Picture Experts Group)では、ある大きさのブロックのうちの、注目している注目ブロックについて、動きベクトルが検出され、さらに、その動きベクトルに基づいて動き補償が行われることで、注目ブロックの予測画像が求められる。そして、MPEGでは、注目ブロックの各画素と、予測画像の対応する画素との差分が演算され、その差分値が符号化されることで、高能率圧縮が実現されている。
【0005】
動きベクトルの検出アルゴリズムとしては、例えば、ブロックマッチング法が知られている。
【0006】
例えば、いま、図14に示すように、第fフレームのあるブロックを、注目ブロックとするとともに、第f+1フレームを、動きベクトルの検出のために参照する参照フレームとして、第f+1フレームから第fフレームに向かう動きベクトルを、注目ブロックの動きベクトルとして検出する場合、ブロックマッチング法では、第f+1フレームの、注目ブロックの位置を中心とする所定の範囲が、動きベクトルの探査を行う探査範囲として設定される。さらに、第f+1フレームの探査範囲から、注目ブロックと同一の大きさのブロックが、注目ブロックの予測画像の候補である候補ブロックとして選択され、注目ブロックと候補ブロックとの差分に関する差分情報が求められる。
【0007】
すなわち、例えば、注目ブロックおよび候補ブロックが、横×縦が4×4画素のブロックであるとすると、図15に示すように、注目ブロックの各画素と、候補ブロックの対応する画素との差分が求められ、その差分の絶対値(差分絶対値)が求められる。さらに、その差分絶対値の総和が求められ、探査範囲に選択し得る候補ブロックの全てについて、上述のような差分絶対値の総和が求められる。
【0008】
そして、探査範囲に選択しうる候補ブロックの中で、差分絶対値の総和を最小にする候補ブロック(以下、適宜、「最小候補ブロック」という)が求められ、その最小候補ブロックから注目ブロックに向かうベクトルが、注目ブロックの動きベクトルとして求められる。
【0009】
なお、探査範囲としては、注目ブロックおよび候補ブロックよりも大きな範囲が用いられ、注目ブロックおよび候補ブロックが、上述したように、4×4画素のブロックであるとすると、例えば、30×30画素乃至50×50画素程度の範囲が、探査範囲として用いられる。
【0010】
図16は、ブロックマッチング法により動きベクトルを求める、従来の動きベクトル検出装置の一例の構成を示している。
図16の動きベクトル検出装置は、画像データを記憶する画像メモリ201と、その画像データを用いて演算を行うことにより動きベクトルを求める動きベクトル抽出部202とから構成されており、画像メモリ201と、動きベクトル抽出部202とは、データバスを介して接続されている。
【0011】
以上のように構成される動きベクトル検出装置では、画像メモリ201に、注目フレームと参照フレームの画像データが記憶される。そして、動きベクトル抽出部202は、画像メモリ201から、注目ブロックと候補ブロックを、データバスを介して読み出し、その注目ブロックと候補ブロックとの差分絶対値の総和を求める。さらに、動きベクトル抽出部202は、探査範囲内に選択しうる候補ブロックの中で、差分絶対値の総和を最小にする候補ブロック(最小候補ブロック)を求め、その最小候補ブロックから注目ブロックに向かうベクトルを、注目ブロックの動きベクトルとして求めて出力する。
【0012】
【発明が解決しようとする課題】
図16の動きベクトル検出装置において、動きベクトルを検出する場合、画像メモリ201からは、頻繁に、大量の画像データが読み出され、データバスを介して、動きベクトル抽出部202に供給される。
【0013】
一方、画像データを記憶する画像メモリ201は、一般に、複数個のメモリ(半導体メモリ)で構成される。すなわち、図16では、画像メモリ201は、6個のメモリ2011〜2016で構成されている。
【0014】
画像メモリ201を構成するメモリ2011〜2016のそれぞれは、比較的広い面積を占有するから、メモリ2011〜2016のそれぞれから、動きベクトル抽出部202に画像データを転送するには、メモリ2011〜2016のそれぞれと動きベクトル抽出部202とを結ぶデータバスとしては、比較的長いものが必要となる。そして、長いデータバスを駆動する場合には、種々の問題が生じることとなる。
【0015】
具体的には、データバスが長い場合、そのデータバスを構成する配線と基板との間の容量が大になり、データの転送に、大きな遅延(配線遅延)が生じる。さらに、データバスを構成する配線どうしの間に生じる容量によって、配線どうしの間に、クロストークが生じることとなる。そして、近年においては、半導体プロセスの微細化が進行しており、配線の間のクロストークが大きな問題となってきている。
【0016】
すなわち、半導体プロセスの微細化により、配線どうしの間隔が狭くなると、配線の抵抗(配線抵抗)が大となるから、これを防止するために、配線の厚さを厚くする必要がある。そして、配線どうしの間隔が狭くなり、かつ配線の厚さが厚くなると、配線どうしの間の容量が大となり、クロストークを無視することができなくなる。
【0017】
さらに、従来においては、配線について生じる配線容量については、配線と基板との間の容量を考慮すれば良く、また、基板の電位は一定なので、画像メモリ201のシミュレーションを行う場合に、配線容量は、それほど大きな問題とならなかった。
【0018】
しかしながら、配線容量として、上述のように、配線どうしの間の容量が大となって支配的になると、注目している配線に隣接した配線における信号遷移の仕方によって、注目している配線の見かけの容量が変化し、配線遅延も変化することから、シミュレーションを行うことが困難となる。
【0019】
また、画像メモリ201のデータバスが長いと、その配線端での反射による信号波形の乱れが顕著になる。
【0020】
そこで、図17に示すように、画像メモリ201と動きベクトル抽出部202との間に、キャッシュメモリ203を設けて、動きベクトル検出装置を構成する方法がある。
【0021】
図17の動きベクトル検出装置において、キャッシュメモリ203は、動きベクトル抽出部202で頻繁に用いられる画像データを、画像メモリ201から読み出して記憶する。そして、動きベクトル抽出部202は、キャッシュメモリ203に記憶された画像データを用い、ブロックマッチング法により動きベクトルを求める。
【0022】
図17の動きベクトル検出装置では、画像メモリ201からキャッシュメモリ203に転送されて記憶された画像データについては、画像メモリ201から読み出す必要がないので、長いデータバスを介して画像メモリ201から画像データを読み出す際の、上述した問題の頻度を低減することができる。
【0023】
しかしながら、この場合、画像メモリ201とは別に、キャッシュメモリ203という冗長なメモリが必要となり、そのオーバヘッドが問題となる。
【0024】
そこで、本出願人は、先に、動きベクトルの検出処理を行うための各プロセスを実行する命令を含むプロセスデータを、プロセスを実行する直列接続された複数個の実行手段を移動させていって画像処理を行うものを提案した(特願2002−236877号参照)。これによれば、例えば、長いデータバスやキャッシュメモリの不要な設計容易なハードウェアによって、動きベクトルを検出することができる。
【0025】
この発明は、上述したように、プロセスデータをプロセスを実行する直列接続された複数個の実行手段を移動させていって画像処理を行うものにあって、さらに処理時間の短縮を図ることを目的とする。
【0026】
【課題を解決するための手段】
この発明に係る画像処理装置は、画像データを取り扱う画像処理を行うための各プロセスを生成し、この各プロセスを実行する命令を含むプロセスデータを順次出力するプロセス生成手段と、プロセスデータに従ってプロセスを実行する、直列接続された複数個の実行手段とを備え、プロセスデータは、このプロセスデータに係るプロセスを実行するための実行手段のアドレスを含み、所定数の連続する実行手段の組毎に、この組の入力側に、入力プロセスデータをこの組の入力側または出力側に選択的に供給するルート選択手段が挿入されるものである。そして、ルート選択手段は、直後に位置する組を構成する各実行手段のアドレスを記憶する第1のアドレス記憶手段と、入力プロセスデータに含まれる実行手段のアドレスに第1のアドレス記憶手段に記憶されているアドレスの少なくともいずれかが存在するとき一の状態となる判定信号を出力する第1のアドレス判定手段と、この第1のアドレス判定手段より出力される判定信号に基づき、判定信号が一の状態であるとき、入力プロセスデータを直後に位置する組の入力側に供給し、判定信号が一の状態でないとき、入力プロセスデータを直後に位置する組の出力側に供給する第1の切り換え手段とを有するものである。
【0027】
この発明において、プロセス生成手段は、画像データを取り扱う画像処理を行うための各プロセスを生成し、この各プロセスを実行する命令を含むプロセスデータを順次出力する。このように順次出力されるプロセスデータがプロセスを実行する直列接続された複数個の実行手段を移動していくことで、画像処理が行われる。画像処理は、例えば動きベクトルを検出するための画像処理である。
【0028】
複数個の実行手段は、所定数の連続する実行手段の組に分けられる。そして、各組毎に、その組の入力側に、入力プロセスデータをその組の入力側または出力側に選択的に供給するルート選択手段が挿入される。
【0029】
ルート選択手段は、直後に位置する組を構成する各実行手段のアドレスを記憶する第1のアドレス記憶手段を有している。また、プロセスデータは、そのプロセスデータに係るプロセスを実行するための実行手段のアドレスを含んでいる。
【0030】
ルート選択手段は、入力プロセスデータに含まれる実行手段のアドレスにアドレス記憶手段に記憶されているアドレスの少なくともいずれかが存在するとき、入力プロセスデータを直後に位置する組の入力側に供給し、そうでないときは入力プロセスデータを直後に位置する組の出力側に供給する。
【0031】
これにより、プロセスデータは、そのプロセスデータに係るプロセスを実行するための実行手段が存在しない組をバイパスして移動していくので、処理時間を短縮できる。また、プロセスデータの無駄な移動がなくなるので、消費電力を低減できる。
【0032】
また、この発明に係る画像処理装置は、画像データを取り扱う画像処理を行うための各プロセスを生成し、この各プロセスを実行する命令を含むプロセスデータを順次出力するプロセス生成手段と、プロセスデータに従ってプロセスを実行する、直列接続された複数個の実行手段とを備え、プロセスデータは、このプロセスデータに係るプロセスを実行するための実行手段のアドレスを含むものである。そして、複数個の実行手段のそれぞれは、入力プロセスデータに含まれる命令に従って画像データの処理を行って、その処理結果に基づいて入力プロセスデータを変更して出力すべきプロセスデータを得ると共に、この出力すべきプロセスデータを出力するとき一の状態となる要求信号を出力する処理手段と、自己のアドレスを記憶するアドレス記憶手段と、入力プロセスデータに含まれる実行手段のアドレスにアドレス記憶手段に記憶されている自己のアドレスが存在するとき一の状態となる判定信号を出力するアドレス判定手段と、このアドレス判定手段より出力される判定信号および処理手段より出力される要求信号に基づき、要求信号が一の状態であるとき、処理手段で得られた出力すべきプロセスデータを出力プロセスデータとして出力し、要求信号が一の状態でなく、かつ判定信号が一の状態でないとき、入力プロセスデータを出力プロセスデータとして出力する切り換え手段とを有するものである。
【0033】
この発明において、プロセス生成手段は、画像データを取り扱う画像処理を行うための各プロセスを生成し、この各プロセスを実行する命令を含むプロセスデータを順次出力する。このように順次出力されるプロセスデータがプロセスを実行する直列接続された複数個の実行手段を移動していくことで、画像処理が行われる。プロセスデータは、そのプロセスデータに係るプロセスを実行するための実行手段のアドレスを含んでいる。
【0034】
複数個の実行手段のそれぞれは、例えば画像データを記憶するデータ記憶手段をさらに有し、画像データの処理として、データ記憶手段への画像データの書き込み、このデータ記憶手段からの画像データの読み出し、または画像データの差分の演算のうちいずれかの処理を行う。画像処理は、例えば動きベクトルを検出するための画像処理である。
【0035】
複数個の実行手段のそれぞれは、処理手段、アドレス記憶手段、アドレス判定手段および切り換え手段を有している。処理手段は、入力プロセスデータに含まれる命令に従って画像データの処理を行って、その処理結果に基づいて入力プロセスデータを変更して出力すべきプロセスデータを得ると共に、この出力すべきプロセスデータを出力するとき一の状態となる要求信号を出力する。アドレス判定手段は、入力プロセスデータに含まれる実行手段のアドレスに、アドレス記憶手段に記憶されている自己のアドレスが存在するとき一の状態となる判定信号を出力する。
【0036】
そして、切り換え手段は、要求信号が一の状態であるとき、処理手段で得られた出力すべきプロセスデータを出力プロセスデータとして出力し、要求信号が一の状態でなく、かつ判定信号が一の状態でないとき、入力プロセスデータを出力プロセスデータとして出力する。
【0037】
これにより、プロセスデータは、そのプロセスデータに係るプロセスを実行するものではない実行手段に入力されたとき、直ちに次の実行手段に移動するようにされるので、処理時間を短縮できる。
【0038】
なお、切り換え手段は、要求信号が一の状態でなく、かつ判定信号が一の状態であるときは、ハイレベルまたはローレベルのデータを出力するようにしてもよい。この場合、実行手段に入力されるプロセスデータに係るプロセスが、その実行手段で実行される。入力プロセスデータを後段に供給しない場合および処理手段からの出力すべきプロセスデータを後段に供給しない状態では、ハイレベルまたはローレベルのデータが出力されるので、後段に誤ったプロセスデータが供給されることを防止できる。
【0039】
【発明の実施の形態】
以下、この発明の実施の形態を図面を参照して説明する。
図1は、実施の形態としての動きベクトル検出装置100の構成を示している。この動きベクトル検出装置100では、上述したブロックマッチング法によって動きベクトルが検出される。
【0040】
この動きベクトル検出装置100は、動きベクトルを検出する処理を行うための各プロセスを生成し、その各プロセスを実行する命令を含むパケットであるプロセスパケット(プロセスデータ)を順次出力するプロセス生成部101を有している。このプロセス生成部101には動きベクトルの検出対象である画像データが供給される。プロセス生成部101は、必要に応じて、プロセスパケットにその画像データも配置する。
【0041】
また、動きベクトル検出装置100は、プロセスパケットに従ってプロセスを実行する、直列接続された複数個、本実施の形態では12個の演算処理ユニット1021〜10212を有している。演算処理ユニット1021〜10212は、それぞれ実行手段を構成している。これら12個の演算処理ユニット1021〜10212は、プロセス生成部101の後段に接続されている。
【0042】
演算処理ユニット102n(n=1〜12)は、前段の演算処理ユニット102n-1(またはルート選択部)から供給されるプロセスパケットを受信し、そのプロセスパケットに含まれる命令にしたがった処理を行う。また、演算処理ユニット102nは、必要に応じて、その処理結果を、プロセスパケットに配置し、後段の演算処理ユニット102n+1(またはルート選択部、または集計部)に供給する。これにより、最後の演算処理ユニット10212は、後述するように、注目ブロックとある候補ブロックとの差分絶対値の総和を配置したプロセスパケットを出力する。ルート選択部および集計部については後述する。
【0043】
また、動きベクトル検出装置100は、3個のルート選択部1041〜1043を有している。上述の12個の演算処理ユニット1021〜10212は、4個の連続する演算処理ユニットの組に分けられる。すなわち、ユニット1021〜1024の組102aと、ユニット1025〜1028の組102bと、ユニット1029〜10212の組102cとに分けられる。上述した3個のルート選択部1041〜1043は、それぞれ組102a〜102cの入力側に挿入される。なお、組の個数は3個でなくてもよく、また各組を構成する演算処理ユニット102nの個数は同じでなくてもよい。
【0044】
ルート選択部1041〜1043のそれぞれは、入力プロセスパケットを直後に位置する組102a〜102cの入力側または出力側に選択的に供給する。つまり、ルート選択部1041〜1043のそれぞれは、入力プロセスパケットに係るプロセスを実行する演算処理ユニット102nが直後に位置する組102a〜102cに存在するときその入力プロセスパケットをその組の入力側に供給し、そうでないときその入力プロセスパケットをその組の出力側に供給する。
【0045】
また、動きベクトル検出装置100は、集計部103を有している。この集計部103は、最後の演算処理ユニット10212の出力側に接続されており、この演算処理ユニット10212が出力するプロセスパケットに配置された注目ブロックと候補ブロックとの差分絶対値の総和から、動きベクトルを求めて出力する。
【0046】
ここで、上述したプロセス生成部101より出力されて、演算処理ユニット1011〜10212を移動していく、プロセスパケットのフォーマットを説明する。図2は、プロセスパケットのフォーマット例を示している。
【0047】
プロセスパケットは、例えば、その先頭から、処理ユニットアドレス部、PID(Process Identification)部、状態部、命令部、アドレス部、データ部が、順次設けられて構成されている。
【0048】
処理ユニットアドレス部には、当該プロセスパケットに係るプロセスを実行するための一個または複数個の演算処理ユニットのアドレスが配置される。
【0049】
PID部には、PIDが配置される。ここで、PIDとしては、ある注目ブロックの動きベクトルを求めるまでに行うべき個々のプロセスを区別することができる情報であれば、どのような情報でも採用することが可能である。すなわち、PIDとして、例えば、注目ブロックの位置を表すアドレスと、候補ブロックの位置を表すアドレスとの組み合わせなどを採用することが可能である。
【0050】
また、注目ブロックに対する候補ブロックに、例えば通し番号となるような番号情報を与えておく場合には、PIDとして、その番号情報を採用することが可能である。なお、PIDとして、番号情報を採用する場合、集計部103において、全ての通し番号のプロセスパケットが揃うことにより、ある注目ブロックについて、探査範囲で選択可能なすべての候補ブロックとの間の差分絶対値和の総和が得られたことを認識することが可能となる。
【0051】
状態部は、例えば、画像書き込み状態部、画像読み出し状態部、注目ブロック読み出し状態部、候補ブロック読み出し状態部、差分絶対値演算状態部から構成される。
【0052】
画像書き込み状態部には、後述する演算処理ユニット102nのメモリ120に対して、ある画像データの書き込みが、まだ行われていないことを表す状態情報「未」、その画像データの書き込みが行われている途中であることを表す状態情報「中」、その画像データの書き込みが終了したことを表す状態情報「終」のうちのいずれかがセットされる。
【0053】
すなわち、例えば、いま、演算処理ユニット102nを構成するメモリ120を、メモリ120nと表すこととして、ある画像データを、例えば、演算処理ユニット102iのメモリ120iと演算処理ユニット102jのメモリ120jの2つに分けて書き込む場合を考えると、メモリ120iとメモリ120jのいずれにも画像データが書き込まれていない場合、画像書き込み状態部には、状態情報「未」がセットされる。また、メモリ120iとメモリ120jのうちのいずれか一方だけに画像データが書き込まれた場合、画像書き込み状態部には、状態情報「中」がセットされる。さらに、メモリ120iとメモリ120jの両方に画像データが書き込まれた場合、画像書き込み状態部には、状態情報「終」がセットされる。
【0054】
なお、状態部にセットされる状態情報は、演算処理ユニット102nに対して、画像データの書き込みなどの状態がどのようになっているかを知らせるメッセージの役割を果たす。
【0055】
画像読み出し状態部には、メモリ120からの、ある画像データの読み出しが、まだ行われていないことを表す状態情報「未」、その画像データの読み出しが行われている途中であることを表す状態情報「中」、その画像データの読み出しが終了したことを表す状態情報「終」のうちのいずれかがセットされる。
【0056】
注目ブロック読み出し状態部には、メモリ120からの、注目ブロックの画像データの読み出しが、まだ行われていないことを表す状態情報「未」、注目ブロックの画像データの読み出しが行われている途中であることを表す状態情報「中」、注目ブロックの画像データの読み出しが終了したことを表す状態情報「終」のうちのいずれかがセットされる。
【0057】
候補ブロック読み出し状態部には、メモリ120からの、候補ブロックの画像データの読み出しが、まだ行われていないことを表す状態情報「未」、候補ブロックの画像データの読み出しが行われている途中であることを表す状態情報「中」、候補ブロックの画像データの読み出しが終了したことを表す状態情報「終」のうちのいずれかがセットされる。
【0058】
差分絶対値演算状態部には、ある注目ブロックと候補ブロックとの差分絶対値の総和(差分絶対値和)の演算が、まだ行われていないことを表す状態情報「未」、差分絶対値和の演算が行われている途中であることを表す状態情報「中」、差分絶対値和の演算が終了したことを表す状態情報「終」のうちのいずれかがセットされる。
【0059】
ここで、状態情報は、例えば、2ビットとし、「未」、「中」、「終」には、それぞれ「11」、「10」、「00」を割り当てることができる。
【0060】
命令部には、行うべき処理を指示する命令が配置される。ここで、命令としては、例えば、メモリ120への画像データの書き込みを指示する書き込み命令、メモリ120からの画像データの読み出しを指示する読み出し命令、注目ブロックと候補ブロックとの差分絶対値和の演算を指示する差分絶対値和演算命令、各候補ブロックについて求められた差分絶対値和のうちの最小値を求め、その最小値に基づいて、注目ブロックの動きベクトルを求めることを指示する最小値判定命令の4つの命令が、少なくとも用意されている。
【0061】
なお、命令が、上述の書き込み命令、読み出し命令、差分絶対値和演算命令、および最小値判定命令の4(=22)つである場合には、命令部は、2ビットで十分である。ただし、命令部は、将来の命令の種類の拡張も考慮して、2ビットより多い、例えば、4ビットなどとしておくことが望ましい。
【0062】
アドレス部は、フィールド指定部、読み出しアドレス部、書き込みアドレス部、注目ブロックアドレス部、候補ブロックアドレス部から構成される。
【0063】
フィールド指定部には、候補ブロックのフィールドを表すフィールド情報がセットされる。すなわち、本実施の形態では、後述するように、演算処理ユニット102nのメモリ120に、5フィールドの画像データが記憶されるが、フィールド指定部には、そのメモリ120に記憶された画像データのうち、候補ブロックが存在するフィールドを表すフィールド情報がセットされる。なお、5フィールドの画像データを記憶する場合、フィールド情報は、3ビットで十分であるが、将来の拡張を考慮して、3ビットより多い、例えば、4ビットなどとするのが望ましい。
【0064】
読み出しアドレス部には、メモリ120から画像データを読み出す場合に、すなわち、命令部に読み出し命令がセットされている場合に、その画像データを読み出すメモリ120のアドレスが配置される。
【0065】
書き込みアドレス部には、メモリ120に画像データを書き込む場合に、すなわち、命令部に書き込み命令がセットされている場合に、その画像データを書き込むメモリ120のアドレスが配置される。
【0066】
注目ブロックアドレス部には、注目ブロックのアドレスが配置される。ここで、注目ブロックのアドレスとしては、例えば、その注目ブロックのフィールド(注目フィールド)における、注目ブロックの左上の画素の位置を表す位置情報を採用することができる。したがって、例えば、1フィールドが、720×240画素で構成されると共に、注目ブロックが、4×2画素で構成されるものとすると、注目ブロックのアドレスは、21600(=720/4×240/2)通りが存在するから、15ビットで表すことができる。
【0067】
候補ブロックアドレス部には、候補ブロックのアドレスが配置される。ここで、候補ブロックのアドレスとしては、例えば、その候補ブロックのフィールド(参照フィールド)における、候補ブロックの左上の画素の位置を表す位置情報を採用することができる。従って、例えば、上述のように、1フィールドが、720×240画素で構成されるものとすると、候補ブロックのアドレスは、172800(=720×240)通りが存在するから、18ビットで表すことができる。
【0068】
データ部は、注目ブロックデータ部、候補ブロックデータ部、差分絶対値和部、候補ベクトル部から構成される。
【0069】
注目ブロックデータ部には、注目ブロックの画像データ、即ち、注目ブロックを構成する画素(の画素値)が配置される。従って、例えば、上述のように、注目ブロックが、4×2画素で構成されるものとし、また、1画素に、例えば、8ビットが割り当てられているとした場合には、注目ブロックデータ部は、64(=4×2×8)ビットで構成されることになる。
【0070】
候補ブロックデータ部には、候補ブロックの画像データ、即ち、候補ブロックを構成する画素が配置される。従って、候補ブロックが、例えば、上述のように、注目ブロックと同様の4×2画素で構成されるものとし、また、1画素に、例えば、8ビットが割り当てられているとした場合には、候補ブロックデータ部は、注目ブロックデータ部と同様に、64(=4×2×8)ビットで構成されることになる。
【0071】
差分絶対値和部には、注目ブロックと候補ブロックの差分絶対値和が配置される。ここで、上述のように、例えば、1画素に8ビットが割り当てられている場合、注目ブロックのある画素とその画素に対応する候補ブロックの画素の差分絶対値は、9ビットで表される。
【0072】
候補ベクトル部には、候補ブロックから注目ブロックに向かうベクトルが、注目ブロックの動きベクトルの候補(候補ベクトル)として配置される。なお、候補ベクトルは、注目ブロックアドレス部に配置された注目ブロックのアドレスと、候補ブロックアドレス部に配置された候補ブロックのアドレスとから求めることが可能である。また、例えば、いま、探査範囲を、63×63画素以下とすると、候補ベクトルのx方向(横方向)成分と、y方向(縦方向)成分は、いずれも、6ビットで表すことができるから、候補ベクトル部は、12(=6+6)ビットで構成することができる。
【0073】
次に、図3のフローチャートを参照して、上述したプロセス生成部101が、ある1つのブロックを注目ブロックとして、その注目ブロックの動きベクトルを検出するために行う処理(プロセス生成処理)について説明する。
【0074】
まず最初に、ステップS1において、プロセス生成部101は、注目ブロックが存在する注目フィールドのうちの注目ブロックの画像データと、候補ブロックが存在する参照フィールドのうちの探査範囲の画像データとを、少なくとも、メモリ120に書き込む書き込みプロセスの一部または全部を生成し、その書き込みプロセスを実行する書き込み命令を含むプロセスパケットを生成して、ステップS2に進む。
【0075】
なお、プロセス生成部101は、ステップS1において、図2に示したプロセスパケットの命令部に書き込み命令を配置する他、メモリ120に書き込む注目ブロックや候補ブロックの画像データを、注目ブロックデータ部や候補ブロックデータ部に配置すると共に、その画像データを書き込むメモリ120のアドレスを、書き込みアドレス部に配置する。
【0076】
また、プロセス生成部101は、処理ユニットアドレス部に、その書き込みプロセスを実行する一個または複数個の演算処理ユニット102nのアドレスを配置する。さらに、プロセス生成部101は、必要に応じて、プロセスパケットの状態部に、状態情報を配置する。
【0077】
ステップS2では、プロセス生成部101は、直前のステップS1で生成したプロセスパケットを出力して、ステップS3に進む。
【0078】
ステップS3では、プロセス生成部101は、必要な画像データ、すなわち、ここでは、注目ブロックの画像データと、候補ブロックが存在する参照フィールドのうちの探査範囲の画像データとを、少なくとも、メモリ120に書き込むためのプロセスの全てを生成したかどうかを判定する。ステップS3において、必要な画像データをメモリ120に書き込むためのプロセスの全てを、まだ生成していないと判定した場合、ステップS1に戻り、プロセス生成部101は、必要な画像データをメモリ120に書き込むためのプロセスのうち、まだ書き込まれていない画像データを書き込むためのプロセスを生成し、以下、同様の処理を繰り返す。
【0079】
また、ステップS3において、プロセス生成部101は、必要な画像データをメモリ120に書き込むためのプロセスの全てを生成したと判定した場合、ステップS4に進む。ステップS4では、プロセス生成部101は、探査範囲内に選択し得るある候補ブロックから、注目ブロックへのベクトル(候補ベクトル)について、注目ブロックと候補ブロックとの差分絶対値和を求めるための差分絶対値和演算プロセスを生成し、その差分絶対値和演算プロセスを実行する差分絶対値和演算命令を含むプロセスパケットを生成して、ステップS5に進む。
【0080】
なお、プロセス生成部101は、ステップS4において、図2に示したプロセスパケットの命令部に差分絶対値和演算命令を配置する他、メモリ120に書き込まれた注目ブロックや候補ブロックのアドレスを、注目ブロックアドレス部や候補ブロックアドレス部に配置するとともに、候補ベクトルを、候補ベクトル部に配置する。
【0081】
また、プロセス生成部101は、処理ユニットアドレス部に、その差分絶対値和演算プロセスを実行する一個または複数個の演算処理ユニット102nのアドレスを配置する。さらに、プロセス生成部101は、候補ブロックのフィールドを表すフィールド情報を、フィールド指定部に配置すると共に、必要に応じて、プロセスパケットの状態部に、状態情報を配置する。
【0082】
ステップS5では、プロセス生成部101は、直前のステップS4で生成したプロセスパケットを出力して、ステップS6に進む。
【0083】
ステップS6では、プロセス生成部101は、注目ブロックの探索範囲内に選択し得る候補ベクトルの全てについて、差分絶対値和を演算するための差分絶対値和演算プロセスを生成したかどうかを判定する。
【0084】
ステップS6において、プロセス生成部101は、注目ブロックの探索範囲内に選択し得る候補ベクトルの全てについて、差分絶対値和を演算するための差分絶対値和演算プロセスを、まだ生成していないと判定した場合、ステップS4に戻り、まだ差分絶対値和演算プロセスを生成していない候補ベクトルについて、差分絶対値和を演算するための差分絶対値和演算プロセスを生成し、以下、同様の処理を繰り返す。
【0085】
また、ステップS6において、プロセス生成部101は、注目ブロックの探索範囲内に選択し得る候補ベクトルの全てについて、差分絶対値和を演算するための差分絶対値和演算プロセスを生成したと判定した場合、ステップS7に進む。
【0086】
ステップS7では、プロセス生成部101は、注目ブロックの探索範囲内に選択し得る候補ベクトルの全てについて求められた差分絶対値和のうちの最小値を求め、その最小値に基づいて、注目ブロックの動きベクトルを求める最小値判定プロセスを生成し、その最小値判定プロセスを実行する最小値判定命令を含むプロセスパケットを生成して、ステップS8に進む。
【0087】
ステップS8では、プロセス生成部101は、ステップS7で生成したプロセスパケットを出力し、その後に処理を終了する。
【0088】
図1に示す動きベクトル検出装置100において、上述したようにプロセス生成部101は、動きベクトルを検出する処理を行うための各プロセスを生成し、この各プロセスを実行する命令を含むプロセスパケットを順次出力する。この各プロセスパケットは演算処理ユニット1021〜10212を移動していき、これにより、演算処理ユニット1021〜10212において動きベクトルを検出するための各プロセスが順次実行されていく。
【0089】
そして、最終的に、注目ブロックの探査範囲内に選択し得る候補ベクトルのそれぞれについての差分絶対値和が配置されたプロセスパケットが集計部103で受信される。集計部103は、最小値判定命令を含むプロセスパケットを受信すると、差分絶対値和演算プロセスに対応するプロセスパケットから、最小の差分絶対値和が配置されているものを選択し、そのプロセスパケットに配置されている候補ベクトルを注目ブロックの動きベクトルとして出力する。
【0090】
なお、本実施の形態では、プロセス生成部101より出力される各プロセスパケットが演算処理ユニット1021〜10212の全てを移動していくわけではない。ルート選択部1041〜1043により、各プロセスパケットは、適宜バイパスされて移動していく。
【0091】
すなわち、ルート選択部1041〜1043のそれぞれは、入力プロセスパケットに係るプロセスを実行する演算処理ユニット102nが、直後に位置する組102a〜102cに存在しないときは、当該入力プロセスパケットを、その組102a〜102cの入力側に供給するのではなく、その組の出力側に供給する。このように、プロセスパケットが、そのプロセスパケットに係るプロセスを実行するための演算処理ユニット102nが存在しない組をバイパスして移動していくので、処理時間を短縮でき、またプロセスパケットの無駄な移動がなくなるので、消費電力を低減できる。
【0092】
次に、ルート選択部104n(n=1〜3)の詳細を説明する。図4は、ルート選択部104nの構成例を示している。
【0093】
このルート選択部104nは、前段のプロセス生成部101(またはルート選択部、または演算処理ユニット)からデータバスを介して供給されるプロセスパケット(入力プロセスパケット)を保持するFIFO(First-In First-Out)メモリ131を有している。FIFOメモリ131は、そこに供給されるシステムクロックに同期して、入力プロセスパケットを取り込み、一時的に記憶する。
【0094】
また、ルート選択部104nは、アドレス記憶部132およびアドレス判定部133を有している。アドレス記憶部132には、予め、直後に位置する組に存在する全ての演算処理ユニット102nのアドレスが記憶されている。例えば、ルート選択部1041に関しては、アドレス記憶部132には、直後に対応する組102aに存在する演算処理ユニット1021〜1024のアドレスが記憶されている。ルート選択部1042,1043に関しても同様である。
【0095】
アドレス判定部133は、FIFOメモリ131より出力されるプロセスパケットPPeに係るプロセスが、このルート選択部104nの直後に位置する組に存在する演算処理ユニット102nのいずれかで実行されるものであるか否かを判定する。
【0096】
すなわち、アドレス判定部133は、FIFOメモリ131より出力されるプロセスパケットPPeの処理ユニットアドレス部(図2参照)に記憶されている一個または複数個のアドレスに、アドレス記憶部132に記憶されているアドレスの少なくともいずれかが存在するか否かを判定し、存在するとき一の状態、例えば「1」となり、存在しないとき他の状態、例えば「0」となる判定信号s3を出力する。
【0097】
また、ルート選択部104nは、判定信号s3に基づいて、FIFOメモリ131より出力されるプロセスパケットPPeを、当該ルート選択部104nの直後に位置する組の入力側または出力側に選択的に供給する、切り換え手段としての切換スイッチ134を有している。切換スイッチ134は、判定信号s3が「1」であるときはA側に接続され、判定信号s3が「0」であるときはB側に接続される。
【0098】
FIFOメモリ131の出力側は時間調整用の遅延回路135を介して切換スイッチ134の可動端子に接続される。この切換スイッチ134のA側の固定端子は当該ルート選択部104nの直後に位置する組の入力側に接続され、そのB側の固定端子は、当該ルート選択部104nの直後に位置する組の出力側に接続される。
【0099】
上述したようにアドレス判定部133ではFIFOメモリ131より出力されるプロセスパケットPPeの処理ユニットアドレス部に記憶されているアドレスに基づいて、当該プロセスパケットPPeに係るプロセスが、このルート選択部104nの直後に位置する組に存在する演算処理ユニット102nで実行されるものであるか否かを判定する。そして、後述するように、その判定結果である判定信号s3に基づいて、切換スイッチ134の切り換えが制御され、当該プロセスパケットPPeが、当該ルート選択部104nの直後に位置する組の入力側または出力側に供給される。
【0100】
少なくとも、アドレス判定部133で判定が行われるときには、プロセスパケットPPeの処理ユニットアドレス部の部分は既にFIFOメモリ131から出力された状態にあり、FIFOメモリ131の出力側を切換スイッチ134の可動端子に直接接続したのでは、当該プロセスパケットPPeを欠けなく完全な状態で当該切換スイッチ134から出力できない場合が発生する。
【0101】
上述の時間調整用の遅延回路135は、この当該プロセスパケットPPeを欠けなく完全な状態で切換スイッチ134から出力するためのものであり、少なくとも、FIFOメモリ131より当該プロセスパケットPPeの出力が開始されてからアドレス判定部133で判定結果が出るまでの遅延時間を有するようにされる。
【0102】
図4に示すルート選択部104nの動作を説明する。
前段のプロセス生成部101(またはルート選択部、または演算処理ユニット)からデータバスを介して供給されるプロセスパケット(入力プロセスパケット)は、FIFOメモリ131に取り込まれて、一時的に記憶される。そして、このFIFOメモリ131より出力されるプロセスパケットPPeは、遅延回路135を介して切換スイッチ134の可動端子に供給される。
【0103】
アドレス判定部133は、プロセスパケットPPeの処理ユニットアドレス部(図2参照)に記憶されているアドレスに、アドレス記憶部132に記憶されているアドレスの少なくともいずれかが存在するか否かを判定する。
【0104】
そして、アドレス判定部133は、肯定の判定結果を得るときは、当該プロセスパケットPPeに係るプロセスは、このルート選択部104nの直後に位置する組内の演算処理ユニット102nで実行されるものであるとして、判定信号s3を「1」にする。これにより、切換スイッチ134はA側に接続され、当該プロセスパケットPPeは切換スイッチ134のA側を介して、当該ルート選択部104nの直後に位置する組の入力側に供給される。
【0105】
一方、アドレス判定部133は、否定の判定結果を得るときは、当該プロセスパケットPPeに係るプロセスは、このルート選択部104nの直後に位置する組内の演算処理ユニット102nで実行されるものではないとして、判定信号s3を「0」にする。これにより、切換スイッチ134はB側に接続され、当該プロセスパケットPPeは切換スイッチ134のB側を介して、当該ルート選択部104nの直後に位置する組の出力側に供給される。
【0106】
次に、演算処理ユニット102nの詳細を説明する。図5は、演算処理ユニット102nの構成例を示している。
この演算処理ユニット102nは、PE(Processing Element)110およびメモリ120から構成されている。
【0107】
PE110は、FIFOメモリ111,112および演算部113とを有している。これらFIFOメモリ111,112および演算部113は直列に接続されている。
【0108】
FIFOメモリ111は、前段の演算処理ユニット(またはルート選択部)からデータバスを介して供給されるプロセスパケット(入力プロセスパケット)を保持するためのものである。FIFOメモリ111は、そこに供給されるシステムクロックに同期して、入力プロセスパケットを取り込み、一時的に記憶する。
【0109】
FIFOメモリ112は、演算部113に入力するプロセスパケットを保持するためのものである。FIFOメモリ112は、そこに供給されるシステムクロックに同期して、FIFOメモリ111より順次出力されるプロセスパケットPPaを取り込み一時的に記憶する。
【0110】
演算部113は、FIFOメモリ112から順次出力されるプロセスパケットPPbに含まれる命令に従った処理を行い、処理結果に基づいて当該プロセスパケットを変更して出力すべきプロセスパケットPPcを得るものである。また、この演算部113は、この出力すべきプロセスパケットPPcを出力するとき一の状態、例えば「1」となり、その他のとき他の状態、例えば「0」となる要求信号s2を出力する。
【0111】
ここで、演算部113は、少なくとも、プロセスパケットに含まれる命令のデコード、デコードされた命令の実行、出力すべきプロセスパケットの生成、プロセスパケットの出力の機能を有する。
【0112】
演算部113は、入力プロセスパケットPPbに含まれる命令をデコードし、その命令の実行が可能であれば、その命令を実行する。そして、演算部113は、命令を実行することにより行った処理の結果に基づいて入力プロセスパケットPPbを変更して出力すべきプロセスパケットPPcを得、そのプロセスパケットPPcを出力する。
【0113】
なお、演算部113は、命令の実行が不可能であれば、入力プロセスパケットPPbをそのまま出力すべきプロセスパケットPPcとし、そのプロセスパケットPPcを出力する。
【0114】
また、演算部113は、入力プロセスパケットPPbに含まれる命令の実行は可能であるが、その入力プロセスパケットPPbと同一のプロセスパケットが過去に入力されており、それによる処理を終了しているときは、その入力プロセスパケットPPbに関しては何も処理を行わない。この場合の入力プロセスパケットPPbは不要なプロセスパケットであるからである。
【0115】
メモリ120は、演算部113とデータバスを介して接続されている。演算部113は、必要に応じて、メモリ120に画像データを記憶し、あるいはメモリ120から画像データを読み出す。すなわち、プロセスパケットに配置される命令の中には、画像データの書き込みを指示する書き込み命令と、画像データの読み出しを指示する読み出し命令とがある。
【0116】
演算部113は、プロセスパケットに、書き込み命令と画像データが配置されている場合には、その画像データを、データバスを介し、メモリ120に供給して書き込む。また、演算部113は、プロセスパケットに、読み出し命令が配置されている場合には、メモリ120から、データバスを介して、画像データを読み出し、プロセスパケットに配置する。
【0117】
ここで、本実施の形態では、図5に示すように、メモリ120は、その記憶領域が5つのバンクに分割されており、これにより、5フィールドの画像データを、別々のバンクに記憶することができる。ただし、メモリ120の各バンクは、1フィールド分の画像データを記憶することができるだけの記憶容量を有している必要はない。
【0118】
本実施の形態では、メモリ120の各バンクは、12個の演算処理ユニット1021〜10212の合計で、少なくとも探査範囲の画像データを記憶できる記憶容量を有していればよい。つまり、本実施の形態では、1バンクの記憶容量の12倍の記憶容量が、探査範囲の画像データのデータ量以上であればよい。例えば、メモリ120の1バンクは、1/12フィールド分の画像データを記憶できる記憶容量とされる。したがって、メモリ120としては、図16で説明したような配線容量が問題とならないメモリ、すなわち、それほど記憶容量が大きくなく、PE110との間のデータバスを短くすることができるメモリを採用できる。
【0119】
また、PE110は、アドレス記憶部114およびアドレス判定部115を有している。アドレス記憶部114には、予め、演算処理ユニット102n自体のアドレス、つまり自己のアドレスが記憶されている。
【0120】
アドレス判定部115は、FIFOメモリ111より出力されるプロセスパケットPPaに係るプロセスが、この演算処理ユニット102nで実行されるものであるか否かを判定する。すなわち、アドレス判定部115は、FIFOメモリ111より出力されるプロセスパケットPPaの処理ユニットアドレス部(図2参照)に記憶されている一個または複数個のアドレスに、アドレス記憶部114に記憶されている自己のアドレスが存在するか否かを判定し、存在するとき一の状態、例えば「1」となり、存在しないとき他の状態、例えば「0」となる判定信号s1を出力する。
【0121】
また、PE110は、FIFOメモリ111より出力されるプロセスパケットPPaまたは演算部113より出力されるプロセスパケットPPcを選択的に取り出す、切り換え手段としての切換スイッチ116と、この切換スイッチ116の切り換えを制御する切り換え制御部117とを有している。
【0122】
演算部113の出力側は切換スイッチ116のA側の固定端子に接続され、FIFOメモリ111の出力側は時間調整用の遅延回路118を介して切換スイッチ116のB側の固定端子に接続される。さらに、切換スイッチ116のOFF側の固定端子は電源端子に接続される。つまり、このOFF側の固定端子には、ハイレベル「1」のデータが供給された状態とされる。なお、このOFF側の固定端子を接地し、それにローレベル「0」のデータが供給された状態としてもよい。
【0123】
切換スイッチ116の可動端子が演算処理ユニット102nの出力端子となる。つまり、この可動端子がデータバスを介して後段の演算処理ユニット(またはルート選択部、または集計部)に接続される。
【0124】
上述したようにアドレス判定部115ではFIFOメモリ111より出力されるプロセスパケットPPaの処理ユニットアドレス部に記憶されているアドレスに基づいて、当該プロセスパケットPPaに係るプロセスがこの演算処理ユニット102nで実行されるものであるか否かを判定する。
【0125】
そして、後述するように、当該プロセスパケットPPaがこの演算処理ユニット102nで実行されるものでないとき、当該プロセスパケットPPaを切換スイッチ116を介して直ちに後段に出力するものであるが、少なくとも判定時には当該プロセスパケットPPaの処理ユニットアドレス部の部分は既にFIFOメモリ111から出力された状態にあり、FIFOメモリ111の出力側を切換スイッチ116のB側の固定端子に直接接続したのでは、当該プロセスパケットPPaを欠けなく完全な状態で後段に供給することができない。
【0126】
上述の時間調整用の遅延回路118は、この当該プロセスパケットPPaを欠けなく完全な状態で後段に供給するためのものであり、少なくとも、FIFOメモリ111より当該プロセスパケットPPaの出力が開始されてからアドレス判定部115で判定結果が出るまでの遅延時間を有するようにされる。
【0127】
切り換え制御部117には、演算部113より出力される要求信号s2およびアドレス判定部115より出力される判定信号s1が供給される。そして、切り換え制御部117は、要求信号s2が「1」であるときは、判定信号s1が「1」であるか「0」であるかによらず、切換スイッチ116がA側に接続されるように制御する。また、切り換え制御部117は、要求信号s2が「0」で、かつ判定信号s1が「0」であるときは、切換スイッチ116がB側に接続されるように制御する。さらに、切り換え制御部117は、要求信号s2が「0」で、かつ判定信号s1が「1」であるときは、切換スイッチ116がOFF側に接続されるように制御する。
【0128】
図6は、判定信号s1および要求信号s2と、切換スイッチ116の切り換えの関係を示している。
【0129】
図5に示す演算処理ユニット102nの動作を説明する。
前段の演算処理ユニット(またはルート選択部)からデータバスを介して供給されるプロセスパケット(入力プロセスパケット)は、FIFOメモリ111に取り込まれて、一時的に記憶される。このFIFOメモリ111より出力されるプロセスパケットPPaは、FIFOメモリ112に取り込まれて、一時的に記憶される。また、FIFOメモリ111より出力されるプロセスパケットPPaは、遅延回路118を介して切換スイッチ116のB側の固定端子に供給される。
【0130】
FIFOメモリ112から順次出力されるプロセスパケットPPbは、演算部113に供給される。演算部113は、プロセスパケットPPbに含まれる命令をデコードし、その命令の実行が可能であればその命令を実行する。そして、演算部113は、命令を実行することにより行った処理の結果に基づいて入力プロセスパケットPPbを変更して出力すべきプロセスパケットPPcを生成し、そのプロセスパケットPPcを出力する。このプロセスパケットPPcは切換スイッチ116のA側の固定端子に供給される。
【0131】
ただし、演算部113は、入力プロセスパケットPPbに含まれる命令の実行は可能であるが、その入力プロセスパケットPPbと同一のプロセスパケットが過去に入力されており、それによる処理を終了しているときは、その入力プロセスパケットPPbに関しては何も処理を行わない。同一のプロセスパケットか否かは、PID部(図2参照)に配置されたPIDに基づいて行うことができる。
【0132】
一方、演算部113は、その命令の実行が不可能であるときは、入力プロセスパケットPPbをそのまま出力すべきプロセスパケットPPcとし、そのプロセスパケットPPcを出力する。
【0133】
演算部113より出力されるプロセスパケットPPcは、切換スイッチ116のA側の固定端子に供給される。演算部113は、このようにプロセスパケットPPcを出力するとき、要求信号s2を「1」にする。
【0134】
また、アドレス判定部115は、プロセスパケットPPaの処理ユニットアドレス部に記憶されているアドレスにアドレス記憶部114に記憶されている自己のアドレスが存在するか否かを判定する。
【0135】
この場合、アドレス判定部115は、処理ユニットアドレス部に記憶されているアドレスに自己のアドレスが存在するとき、プロセスパケットPPaに係るプロセスがこの演算処理ユニット102nで実行されるものであるとして、判定信号s1を「1」にする。一方、アドレス判定部115は、処理ユニットアドレス部に記憶されているアドレスに自己のアドレスが存在しないとき、プロセスパケットPPaに係るプロセスがこの演算処理ユニット102nで実行されるものでないとして、判定信号s1を「0」にする。
【0136】
演算部113より出力される要求信号s2およびアドレス判定部115より出力される判定信号s1は、切り換え制御部117に供給される。切り換え制御部117は、要求信号s2が「1」であるとき、切換スイッチ116をA側に接続する。つまり、演算部113がプロセスパケットPPbの処理を終了してプロセスパケットPPcを出力するとき、切換スイッチ116はA側に接続される。この場合、演算部113より出力されるプロセスパケットPPcは、切換スイッチ116のA側を介して後段の演算処理ユニット(またはルート選択部、または集計部)に、出力プロセスパケットとして供給される。
【0137】
また、切り換え制御部117は、要求信号s2が「0」で、かつ判定信号s1が「0」であるとき、切換スイッチ116をB側に接続する。つまり、演算部113がプロセスパケットPPbの処理を行っており、かつFIFOメモリ111より出力されるプロセスパケットPPaに係るプロセスがこの演算処理ユニット102nで実行されるものでないとき、切換スイッチ116はB側に接続される。この場合、そのプロセスパケットPPaは、直ちに切換スイッチ116のB側を介して、後段の演算処理ユニット(またはルート選択部、または集計部)に出力プロセスパケットとして供給される。これにより、処理時間を短縮できる。
【0138】
また、切り換え制御部117は、要求信号s2が「0」で、かつ判定信号s1が「1」であるときは、切換スイッチ116をOFF側に接続する。つまり、演算部113がプロセスパケットPPbの処理を行っており、かつFIFOメモリ111より出力されるプロセスパケットPPaに係るプロセスがこの演算処理ユニット102nで実行されるものであるとき、切換スイッチ116はOFF側に接続される。この場合、後段の演算処理ユニット(またはルート選択部、または集計部)には、ハイレベル「1」またはローレベル「0」のデータが供給される。これにより、後段の演算処理ユニット(またはルート選択部、または集計部)に、誤ったプロセスパケット、例えばFIFOメモリ111より出力されるプロセスパケットPPa(このパケットPPaはこの演算処理処理ユニット102nの演算部113で処理する必要があるが、その処理を経ていない)が供給されることを防止できる。
【0139】
次に、図7のフローチャートを参照して、図5の演算処理ユニット102nの演算部113にプロセスパケットPPbが入力された場合における、当該演算部113が行う処理(プロセス実行処理)について説明する。
【0140】
ステップS11で、演算部113は、その入力プロセスパケットPPbに配置された命令をデコードし、ステップS12に進む。ステップS12では、演算部113は、ステップS11でデコードした命令の実行が可能かどうかを判定する。
【0141】
演算部113は、ステップS12で命令の実行が可能でないと判定するとき、ステップS13〜S15をスキップして、ステップS16に進み、要求信号s2を「1」にする。そして、演算部113は、ステップS17で、入力プロセスパケットPPbをそのまま出力すべきプロセスパケットPPcとして出力し、その後ステップS18で、要求信号s2を「0」に戻し、処理を終了する。
【0142】
また、演算部113は、ステップS12で命令の実行が可能であると判定するとき、ステップS13に進み、その入力プロセスパケットPPbと同一のプロセスパケットが過去に入力され、処理済みであるか否かを判定する。演算部113は処理済みであると判定するとき、その入力プロセスパケットPPbに関しては何も処理を行わず、処理を終了する。この場合、入力プロセスパケットPPbは不要なプロセスパケットであり、演算部113は、この入力プロセスパケットPPbに対応したプロセスパケットを出力することはない。
【0143】
また、演算部113は、ステップS13で処理済みでないと判定するとき、ステップS14に進み、入力プロセスパケットPPbに配置された命令を実行し、その命令にしたがった処理を行う。そして、演算部113は、ステップS15で、プロセスパケットに配置された命令にしたがった処理を行うことにより得られたデータを、必要に応じて、入力プロセスパケットPPbに配置し、ステップS15に進む。
【0144】
ステップS15では、演算部113は、ステップS14で行った処理に対応して、必要に応じて、入力プロセスパケットPPbの状態部を書き換え、ステップS16に進む。
【0145】
ステップS16では、演算部113は、要求信号s2を「1」にする。そして、演算部113は、ステップS17で、ステップS14,S15で変更された入力プロセスパケットPPbを出力すべきプロセスパケットPPcとして出力し、その後ステップS18で、要求信号s2を「0」に戻し、処理を終了する。
【0146】
次に、図8のフローチャートを参照して、図5の演算処理ユニット102nの演算部113に書き込み命令を有するプロセスパケットPPbが入力された場合における、当該演算部113が行う処理(プロセス実行処理)について説明する。
【0147】
なお、この場合、入力プロセスパケットPPbには、書き込み命令の他、メモリ120に書き込むべき画像データと、その画像データをメモリ120に書き込む書き込みアドレスが、少なくとも配置されているものとする。
【0148】
ステップS11で、演算部113は、その入力プロセスパケットPPbに配置された命令をデコードし、ステップS12に進む。ステップS12では、演算部113は、ステップS11でデコードした命令の実行が可能かどうか、ここでは、入力プロセスパケットPPbに配置されている書き込みアドレスが、演算処理ユニット102nが有するメモリ120nのアドレスかどうかを判定する。
【0149】
演算部113は、ステップS12でプロセスパケットに配置されている書き込みアドレスが、演算処理ユニット102nが有するメモリ120nのアドレスでないと判定するとき、ステップS13〜S15をスキップして、ステップS16に進み、要求信号s2を「1」にする。そして、演算部113は、ステップS17で、入力プロセスパケットPPbをそのまま出力すべきプロセスパケットPPcとして出力し、その後ステップS18で、要求信号s2を「0」に戻し、処理を終了する。
【0150】
また、演算部113は、ステップS12でプロセスパケットに配置されている書き込みアドレスが、演算処理ユニット102nが有するメモリ120nのアドレスであると判定するとき、ステップS13に進み、その入力プロセスパケットPPbと同一のプロセスパケットが過去に入力され、処理済みであるか否かを判定する。演算部113は処理済みであると判定するとき、その入力プロセスパケットPPbに関しては何も処理を行わず、処理を終了する。この場合、入力プロセスパケットPPbは不要なプロセスパケットであり、演算部113は、この入力プロセスパケットPPbに対応したプロセスパケットを出力することはない。
【0151】
また、演算部113は、ステップS13で処理済みでないと判定するとき、ステップS14に進み、入力プロセスパケットPPbに配置された命令を実行する。つまり、演算部113は、入力プロセスパケットPPbに配置されている画像データをメモリ120nに書き込み、ステップS15に進む。
【0152】
ステップS15では、演算部113は、ステップS14で行った処理に対応して、必要に応じて、入力プロセスパケットPPbの状態部を書き換え、ステップS16に進む。
【0153】
ステップS16では、演算部113は、要求信号s2を「1」にする。そして、演算部113は、ステップS17で、ステップS14,S15で変更された入力プロセスパケットPPbを出力すべきプロセスパケットPPcとして出力し、その後ステップS18で、要求信号s2を「0」に戻し、処理を終了する。
【0154】
プロセス生成部101は、図3のプロセス生成処理のステップS1〜S3において、書き込み命令を有するプロセスパケット(以下、適宜、「書き込みプロセスパケット」という)を生成して出力する。この書き込みプロセスパケットが、演算処理ユニット1021〜10212を順次移動していくことにより、例えば図9に示すように、少なくとも、注目ブロックと候補ブロックの画像データが、メモリ120に書き込まれる。
【0155】
ここで、図9Aに示すように、注目ブロックの画像データを影を付して表すとともに、候補ブロックの画像データを斜線を付して表すこととすると、図9Bでは、注目ブロックの一部がメモリ1201に、他の一部がメモリ1202に、さらに他の一部がメモリ1205に、残りがメモリ1206に、それぞれ書き込まれ、候補ブロックの一部がメモリ1203に、他の一部がメモリ1204に、さらに他の一部がメモリ1207に、残りがメモリ1208に、それぞれ書き込まれている。
【0156】
次に、図10のフローチャートを参照して、図5の演算処理ユニット102nの演算部113に読み出し命令を有するプロセスパケットPPbが入力された場合における、当該演算部113が行う処理(プロセス実行処理)について説明する。
【0157】
なお、この場合、入力プロセスパケットPPbには、読み出し命令の他、メモリ120から読み出すべき画像データの読み出しアドレスが、少なくとも配置されているものとする。
【0158】
ステップS11で、演算部113は、その入力プロセスパケットPPbに配置された命令をデコードし、ステップS12に進む。ステップS12では、演算部113は、ステップS11でデコードした命令の実行が可能かどうか、ここでは、入力プロセスパケットPPbに配置されている読み出しアドレスが、演算処理ユニット102nが有するメモリ120nのアドレスかどうかを判定する。
【0159】
演算部113は、ステップS12でプロセスパケットに配置されている読み出しアドレスが、演算処理ユニット102nが有するメモリ120nのアドレスでないと判定するとき、ステップS13〜S15をスキップして、ステップS16に進み、要求信号s2を「1」にする。そして、演算部113は、ステップS17で、入力プロセスパケットPPbをそのまま出力すべきプロセスパケットPPcとして出力し、その後ステップS18で、要求信号s2を「0」に戻し、処理を終了する。
【0160】
また、演算部113は、ステップS12でプロセスパケットに配置されている読み出しアドレスが、演算処理ユニット102nが有するメモリ120nのアドレスであると判定するとき、ステップS13に進み、その入力プロセスパケットPPbと同一のプロセスパケットが過去に入力され、処理済みであるか否かを判定する。演算部113は処理済みであると判定するとき、その入力プロセスパケットPPbに関しては何も処理を行わず、処理を終了する。この場合、入力プロセスパケットPPbは不要なプロセスパケットであり、演算部113は、この入力プロセスパケットPPbに対応したプロセスパケットを出力することはない。
【0161】
また、演算部113は、ステップS13で処理済みでないと判定するとき、ステップS14に進み、入力プロセスパケットPPbに配置された命令を実行する。つまり、演算部113は、メモリ120nから画像データを読み出し、その画像データを入力プロセスパケットPPbに配置し、ステップS15に進む
ステップS15では、演算部113は、ステップS14で行った処理に対応して、必要に応じて、入力プロセスパケットPPbの状態部を書き換え、ステップS16に進む。
【0162】
ステップS16では、演算部113は、要求信号s2を「1」にする。そして、演算部113は、ステップS17で、ステップS14,S15で変更された入力プロセスパケットPPbを出力すべきプロセスパケットPPcとして出力し、その後ステップS18で、要求信号s2を「0」に戻し、処理を終了する。
【0163】
次に、図11のフローチャートを参照して、図5の演算処理ユニット102nの演算部113に差分絶対値和演算命令を有するプロセスパケットPPbが入力された場合における、当該演算部113が行う処理(プロセス実行処理)について説明する。
【0164】
なお、この場合、メモリ120には、既に、差分絶対値和の演算対象である注目ブロックと候補ブロックの画像データが少なくとも書き込まれているものとする。さらに、入力プロセスパケットPPbには、差分絶対値和演算命令の他、メモリ120に記憶された注目ブロックと候補ブロックのアドレス、候補ブロックから注目ブロックに向かう候補ベクトルが、少なくとも配置されているものとする。
【0165】
ステップS11で、演算部113は、その入力プロセスパケットPPbに配置された命令をデコードし、ステップS12に進む。ステップS12では、演算部113は、ステップS11でデコードした命令の実行が可能かどうか、ここでは、注目ブロックまたは候補ブロックのうちの少なくとも一方の画素が、演算処理ユニット102nが有するメモリ120nに記憶されているかどうかを判定する。
【0166】
ここで、注目ブロックの画素が、演算処理ユニット102nが有するメモリ120nに記憶されているかどうかは、入力プロセスパケットPPbに配置された注目ブロックのアドレスから判定することができる。候補ブロックの画素が、演算処理ユニット102nが有するメモリ120nに記憶されているかどうかも、入力プロセスパケットPPbに配置された候補ブロックのアドレスから判定することができる。
【0167】
演算部113は、ステップS12で注目ブロックおよび候補ブロックのうちのいずれも、演算処理ユニット102nが有するメモリ120nに記憶されていないと判定するとき、ステップS13〜S15をスキップして、ステップS16に進み、要求信号s2を「1」にする。そして、演算部113は、ステップS17で、入力プロセスパケットPPbをそのまま出力すべきプロセスパケットPPcとして出力し、その後ステップS18で、要求信号s2を「0」に戻し、処理を終了する。
【0168】
また、演算部113は、ステップS12で注目ブロックまたは候補ブロックのうちの少なくとも一方の画素が、演算処理ユニット102nが有するメモリ120nに記憶されていると判定するとき、ステップS13に進み、その入力プロセスパケットPPbと同一のプロセスパケットが過去に入力され、処理済みであるか否かを判定する。演算部113は処理済みであると判定するとき、その入力プロセスパケットPPbに関しては何も処理を行わず、処理を終了する。この場合、入力プロセスパケットPPbは不要なプロセスパケットであり、演算部113は、この入力プロセスパケットPPbに対応したプロセスパケットを出力することはない。
【0169】
また、演算部113は、ステップS13で処理済みでないと判定するとき、ステップS14に進み、入力プロセスパケットPPbに配置された命令を実行する。
【0170】
すなわち、まず最初に、ステップS21において、演算部113は、注目ブロックの画素が、演算処理ユニット102nが有するメモリ120nに記憶されているかどうかを判定する。演算部113は、ステップS21で注目ブロックの画素が演算処理ユニット102nが有するメモリ120nに記憶されていないと判定するとき、ステップS22をスキップして、ステップS23に進む。
【0171】
一方、演算部113は、ステップS21で注目ブロックの画素が演算処理ユニット102nが有するメモリ120nに記憶されていると判定するとき、ステップS22に進み、メモリ120nに記憶されている注目ブロックの画素を読み出し、入力プロセスパケットPPbに配置して、ステップS23に進む。
【0172】
ステップS23では、演算部113は、候補ブロックの画素が演算処理ユニット102nが有するメモリ120nに記憶されているかどうかを判定する。演算部113は、ステップS23で候補ブロックの画素が演算処理ユニット102nが有するメモリ120nに記憶されていないと判定するとき、ステップS24をスキップして、ステップS25に進む。
【0173】
一方、演算部113は、ステップS23で候補ブロックの画素が演算処理ユニット102nが有するメモリ120nに記憶されていると判定するとき、ステップS24に進み、メモリ120nに記憶されている候補ブロックの画素を読み出し、入力プロセスパケットPPbに配置して、ステップS25に進む。
【0174】
ステップS25では、演算部113は、差分絶対値和の計算が可能かどうかを判定する。この場合、演算部113は、入力プロセスパケットPPbに、注目ブロックの画素が配置されており、かつ、その注目ブロックの画素に対応する候補ブロックの画素も配置されているかどうかによって、差分絶対値和の計算が可能かどうかを判定する。
【0175】
演算部113は、ステップS25で差分絶対値和の計算が可能でないと判定するとき、すなわち入力プロセスパケットPPbに、注目ブロックの画素が配置されていないか、または配置されていても、その注目ブロックの画素に対応する候補ブロックの画素が配置されていない場合、ステップS26をスキップし、これにより、差分絶対値和演算命令の実行を終了して、ステップS15に進む。
【0176】
一方、演算部113は、ステップS25で差分絶対値和の計算が可能であると判定するとき、すなわち入力プロセスパケットPPbに、注目ブロックの画素が配置されており、かつ、その注目ブロックの画素に対応する候補ブロックの画素も配置されている場合、ステップS26に進み、入力プロセスパケットPPbに配置されている注目ブロックの画素それぞれと、その画素に対応する候補ブロックの画素それぞれとの差分絶対値を計算し、さらに、その総和を計算する。
【0177】
そして、演算部113は、その差分絶対値の総和と、入力プロセスパケットPPbの差分絶対値和部に配置されている差分絶対値和とを加算し、その加算値を新たな差分絶対値和として入力プロセスパケットPPbの差分絶対値和部に上書きし、これにより、差分絶対値和演算命令の実行を終了して、ステップS15に進む。
【0178】
ステップS15では、演算部113は、ステップS14で行った処理に対応して、必要に応じて、入力プロセスパケットPPbの状態部を書き換え、ステップS16に進む。
【0179】
ステップS16では、演算部113は、要求信号s2を「1」にする。そして、演算部113は、ステップS17で、ステップS14,S15で変更された入力プロセスパケットPPbを出力すべきプロセスパケットPPcとして出力し、その後ステップS18で、要求信号s2を「0」に戻し、処理を終了する。
【0180】
プロセス生成部101は、図3のプロセス生成処理のステップS4〜S7において、差分絶対値和演算命令を有するプロセスパケット(以下、適宜、「差分絶対値和プロセスパケット」という)を生成して出力する。この差分絶対値和プロセスパケットが、演算処理ユニット1021〜10212を順次移動していくことにより、注目ブロックと候補ブロックの差分絶対値和が、図12および図13に示すように求められる。
【0181】
すなわち、いま、図12に示すように、メモリ120nに、注目ブロックの一部が、メモリ120n+1に、注目ブロックの残りと候補ブロックの一部が、メモリ120n+2に、候補ブロックの残りが、それぞれ記憶されているものとする。また、演算処理ユニット102nのPE110を、以下、適宜、「PE110n」と表すこととする。
【0182】
この場合、演算処理ユニット102nがプロセスパケットを受信すると、PE110nは、メモリ120nに記憶されている注目ブロックの一部を読み出し、プロセスパケットに配置して、次段の演算処理ユニット102n+1に転送する。
【0183】
ここで、PE110nでは、図13に示すプロセスパケットが送受信される。なお、図13では、図が煩雑になるのを避けるため、プロセスパケットについて、図13Aに示すように、その先頭から、PID部、注目ブロック読み出し状
態部、候補ブロック読み出し状態部、命令部、注目ブロックアドレス部、候補ブロックアドレス部、注目ブロックデータ部、候補ブロックデータ部、差分絶対値和部だけを図示してある。
【0184】
注目ブロックおよび候補ブロックは、図12で説明したように、メモリ120n〜120n+2に記憶されているから、プロセスパケットが、PE110nで受信される前は、注目ブロックおよび候補ブロックのいずれの読み出しも行われておらず、従って、注目ブロック読み出し状態部と、候補ブロック読み出し状態部の状態情報は、図13Bに示すように、いずれも「未」になっている。さらに、この場合、注目ブロックアドレス部と候補ブロックアドレス部には、それぞれ、注目ブロックのアドレスadd1と候補ブロックのアドレスadd2がセットされている。また、差分絶対値和部には、初期値としての0がセットされている。なお、命令部には、差分絶対値和演算命令を表す「ME」がセットされている。
【0185】
以上のようなプロセスパケットが、PE110nに入力され、図12で説明したように処理されることにより、次のようなプロセスパケットが、PE110nからPE110n+1に転送される。
【0186】
すなわち、PE110nからPE110n+1に転送されるプロセスパケットには、図13Bに示すように、メモリ120nに記憶されている注目ブロックの一部の画素data_a1が、新たに配置される。さらに、PE110nでは、メモリ120nから注目ブロックの一部の画素data_a1が読み出されたことから、プロセスパケットの注目ブロック読み出し状態部の状態情報が、「未」から「中」に書き換えられる。
【0187】
演算処理ユニット102n+1が、演算処理ユニット102nからのプロセスパケットを受信すると、PE110n+1は、図12に示すように、メモリ120n+1に記憶されている注目ブロックの残りと、候補ブロックの一部を読み出す。ここで、演算処理ユニット102nからのプロセスパケットには、注目ブロックの一部が配置されているから、PE110n+1は、メモリ120n+1から読み出した注目ブロックの残りと合わせて、注目ブロック全体の画素を取得することになる。
【0188】
PE110n+1は、注目ブロック全体の画素と、メモリ120n+1から読み出した候補ブロックの一部の画素とを用いて計算可能な差分絶対値和を求め、プロセスパケットに配置する。さらに、PE110n+1は、差分絶対値和の演算に用いられなかった注目ブロックの画素を、プロセスパケットに配置し、次段の演算処理ユニット102n+2に転送する。
【0189】
すなわち、PE110n+1からPE110n+2に転送されるプロセスパケットには、図13Bに示すように、注目ブロックの画素のうち、差分絶対値和の演算に用いられなかった画素data_a2が、注目ブロックデータ部の画素data_a1に代えて配置されるとともに、PE110n+1で求められた差分絶対値和sum1が、差分絶対値和部の初期値0に代えて配置される。さらに、PE110n+1では、注目ブロックの画素のすべてが取得されるとともに、候補ブロックの一部の画素が取得されたことから、プロセスパケットの注目ブロック読み出し状態部の状態情報が「中」から「終」に書き換えられると共に、候補ブロック読み出し状態部の状態情報は、「未」から「中」に書き換えられる。
【0190】
演算処理ユニット102n+2が、演算処理ユニット102n+1からのプロセスパケットを受信すると、PE110n+2は、図12に示すように、メモリ120n+2に記憶されている候補ブロックの残りを読み出す。
【0191】
PE110n+2は、メモリ120n+2から読み出した候補ブロックの残りの画素と、プロセスパケットに配置されている注目ブロックの画素とを用いて計算可能な差分絶対値和を求め、プロセスパケットに配置されている差分絶対値和と加算する。そして、PE110n+2は、その加算値を、新たな差分絶対値和として、プロセスパケットに上書きする形で配置し、次段の演算処理ユニット102n+3(図示せず)に転送する。
【0192】
すなわち、PE110n+2では、注目ブロックと候補ブロックのすべての画素についての差分絶対値和sum2が求められるから、PE110n+2からPE110n+3(図示せず)に転送されるプロセスパケットには、図13Bに示すように、その差分絶対値和sum2が、差分絶対値和部の差分絶対値和sum1に代えて配置される。また、プロセスパケットにおいて注目ブロックデータ部に配置されていた注目ブロックの画素data_a2は、すべて、差分絶対値和の計算に用いられるから、注目ブロックデータ部から、注目ブロックの画素data_a2が削除される。さらに、PE110n+2では、候補ブロックの残りの画素が取得されたことから、プロセスパケットの候補ブロック読み出し状態部の状態情報が、「中」から「終」に書き換えられる。
【0193】
この場合、プロセスパケットが、PE110n+2から出力される時点で、そのプロセスパケットには、注目ブロックと候補ブロックのすべての画素についての差分絶対値和sum2が配置されている。したがって、演算処理ユニット102n+3以降では、プロセスパケットは、単に転送されていき、最終的に、集計部103(図1参照)で受信される。
【0194】
次に、集計部103の詳細を説明する。集計部103も、演算処理ユニット102nと同様に構成されている。すなわち、集計部103は、PE110とメモリ120で構成されている。ただし、集計部103は、演算処理ユニット102nと異なる構成とすることも可能であるが、演算処理ユニット102nと同一構成とした方が、動きベクトル検出装置100の製造コストを低く抑えることができる。
【0195】
プロセス生成部101では、図3のステップS4〜S6の処理によって、注目ブロックの探査範囲内に選択しうる候補ベクトルすべてについて、差分絶対値和を演算するための差分絶対値和演算プロセスが生成されるが、このプロセスに対応するプロセスパケットの全てが集計部103で受信されると、集計部103は、注目ブロックの探査範囲内に選択し得る候補ベクトルの全てについて、差分絶対値和を取得する。
【0196】
プロセス生成部101では、図3のステップS4〜S6の処理の後、ステップS7およびS8において、最小値判定プロセスが生成され、最小値判定命令を含むプロセスパケットが出力される。このプロセスパケットは、演算処理ユニット1021〜10212を経由して、集計部103で受信される。集計部103は、最小値判定命令を含むプロセスパケットを受信すると、それまでに受信した、差分絶対値和演算プロセスに対応するプロセスパケットから、最小の差分絶対値和が配置されているものを選択し、さらに、そのプロセスパケットに配置されている候補ベクトルを、注目ブロックの動きベクトルとして出力する。
【0197】
以上説明したように、上述の実施の形態においては、PE110nとメモリ120nからなる複数の演算処理ユニット102nを一次元的に接続し、その複数の演算処理ユニット102nにおいて、命令と必要なデータが配置されたプロセスパケットを転送(移動)させることにより、動きベクトルを検出するための処理を行うようにしたので、長いデータバスを駆動する際の問題としての、例えば配線遅延や配線間のクロストーク、反射の影響などを回避できる。
【0198】
すなわち、PE110nとメモリ120nとの間や、演算処理ユニット102nどうしを結ぶデータバスは、短くて済むので、長いデータバスを駆動する際の問題を回避できる。したがって、動きベクトル検出装置の設計にあたり、長いデータバスを駆動する際の問題を考慮する必要がないので、設計容易なハードウェアによって、動きベクトルを検出できる。
【0199】
また、上述実施の形態においては、12個の演算処理ユニット1021〜10212が4個の連続する演算処理ユニットの組に分けられ、各組102a〜102cの入力側にそれぞれルート選択部1041〜1043が挿入される。そして、ルート選択部1041〜1043のそれぞれは、入力プロセスパケットに係るプロセスを実行する演算処理ユニット102nが直後に位置する組102a〜102cに存在しないときは、当該入力プロセスパケットを、その組102a〜102cの入力側に供給するのではなく、その組の出力側に供給する。
【0200】
したがって、プロセスパケットが、そのプロセスパケットに係るプロセスを実行するための演算処理ユニット102nが存在しない組をバイパスして移動していくので、処理時間を短縮でき、またプロセスパケットの無駄な移動がなくなるので、消費電力を低減できる。
【0201】
また、上述実施の形態において、演算処理ユニット102nでは、演算部113がプロセスパケットPPbの処理を行っており、かつFIFOメモリ111より出力されるプロセスパケットPPaに係るプロセスがこの演算処理ユニット102nで実行されるものでないとき、切換スイッチ116はB側に接続される。したがって、そのプロセスパケットPPaは、直ちに切換スイッチ116のB側を介して、後段の演算処理ユニット(またはルート選択部、または集計部)に出力プロセスパケットとして供給されるので、処理時間を短縮できる。
【0202】
また、演算部113がプロセスパケットPPbの処理を行っており、かつFIFOメモリ111より出力されるプロセスパケットPPaに係るプロセスがこの演算処理ユニット102nで実行されるものであるとき、切換スイッチ116はOFF側に接続される。この場合、後段の演算処理ユニット(またはルート選択部、または集計部)には、ハイレベル「1」またはローレベル「0」のデータが供給される。これにより、後段に、誤ったプロセスパケット、例えばFIFOメモリ111より出力されるプロセスパケットPPaが供給されることを防止できる。
【0203】
なお、上述実施の形態においては、この発明を動きベクトル検出装置に適用したものであるが、この発明は画像データを取り扱うその他の画像処理を行うものにも同様に適用できる。例えば、上述した動きベクトル検出装置と同様に画像データの差分演算を行い、その差分演算結果に基づいて参照フィールドに所定の画像あるいは文字が存在するかを検索する装置にも良好に適用できる。
【0204】
また、上述においてフローチャートを参照して説明した処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
【0205】
【発明の効果】
この発明によれば、画像処理を行うための各プロセスを実行する命令を含むプロセスデータを、プロセスを実行する直列接続された複数個の実行手段を移動させていって画像処理を行うものにあって、所定数の連続する実行手段の組毎に、その入力側にルート選択手段を挿入し、ルート選択手段は、入力プロセスデータに係るプロセスを直後に位置する組を構成する実行手段で実行しないときは、当該入力プロセスデータを当該直後に位置する組の出力側に供給するものであり、処理時間の短縮および消費電力の低減を図ることができる。
【0206】
また、この発明によれば、画像処理を行うための各プロセスを実行する命令を含むプロセスデータを、プロセスを実行する直列接続された複数個の実行手段を移動させていって画像処理を行うものにあって、実行手段は、入力プロセスデータに係るプロセスを自己が実行しないときは、当該入力プロセスデータをそのまま出力プロセスデータとして出力するものであり、処理時間の短縮を図ることができる。
【図面の簡単な説明】
【図1】
実施の形態としての動きベクトル検出装置の構成を示すブロック図である。
【図2】
プロセスパケットのフォーマットを示す図である。
【図3】
プロセス生成処理を説明するためのフローチャートである。
【図4】
ルート選択部の構成例を示すブロック図である。
【図5】
演算ユニットの構成例を示すブロック図である。
【図6】
判定信号s1、要求信号s2と切換スイッチの切り換えの関係を示す図である。
【図7】
演算部のプロセス実行処理を説明するフローチャートである。
【図8】
演算部のプロセス実行処理(書き込み命令の場合)を説明するための図である。
【図9】メモリに画像データが書き込まれた状態を示す図である。
【図10】演算部のプロセス実行処理(読み出し命令の場合)を説明するための図である。
【図11】演算部のプロセス実行処理(差分絶対値和演算命令の場合)を説明するための図である。
【図12】演算処理ユニットの処理を説明するための図である。
【図13】プロセスパケットの変化を示す図である。
【図14】ブロックマッチング法を説明する図である。
【図15】ブロックマッチング法を説明する図である。
【図16】従来の動きベクトル検出装置の一例の構成を示すブロック図である。
【図17】従来の動きベクトル検出装置の他の一例の構成を示すブロック図である。
【符号の説明】
100・・・動きベクトル検出装置、101・・・プロセス生成部、1021〜10212,102n・・・演算処理ユニット、102a〜102c・・・組、103・・・集計部、1041〜1043,104n・・・ルート選択部、111,112・・・FIFOメモリ、113・・・演算部、114・・・アドレス記憶部、115・・・アドレス記憶部、116・・・切換スイッチ、117・・・切り換え制御部、118・・・遅延回路、120・・・メモリ、131・・・FIFOメモリ、132・・・アドレス記憶部、133・・・アドレス判定部、134・・・切換スイッチ、135・・・遅延回路
Claims (9)
- 画像データを取り扱う画像処理を行うための各プロセスを生成し、該各プロセスを実行する命令を含むプロセスデータを順次出力するプロセス生成手段と、
上記プロセスデータに従って上記プロセスを実行する、直列接続された複数個の実行手段とを備え、
上記プロセスデータは、該プロセスデータに係るプロセスを実行するための実行手段のアドレスを含み、
所定数の連続する実行手段の組毎に、該組の入力側に、入力プロセスデータを該組の入力側または出力側に選択的に供給するルート選択手段が挿入され、
上記ルート選択手段は、
直後に位置する組を構成する各実行手段のアドレスを記憶する第1のアドレス記憶手段と、
入力プロセスデータに含まれる実行手段のアドレスに上記第1のアドレス記憶手段に記憶されているアドレスの少なくともいずれかが存在するとき一の状態となる判定信号を出力する第1のアドレス判定手段と、
上記第1のアドレス判定手段より出力される判定信号に基づき、上記判定信号が上記一の状態であるとき、上記入力プロセスデータを上記直後に位置する組の入力側に供給し、上記判定信号が上記一の状態でないとき、上記入力プロセスデータを上記直後に位置する組の出力側に供給する第1の切り換え手段とを有する
ことを特徴とする画像処理装置。 - 上記複数個の実行手段のそれぞれは、
入力プロセスデータに含まれる命令に従って画像データの処理を行い、その処理結果に基づいて上記入力プロセスデータを変更して出力すべきプロセスデータを得ると共に、該出力すべきプロセスデータを出力するとき一の状態となる要求信号を出力する処理手段と、
自己のアドレスを記憶する第2のアドレス記憶手段と、
上記入力プロセスデータに含まれる実行手段のアドレスに上記第2のアドレス記憶手段に記憶されている自己のアドレスが存在するとき一の状態となる判定信号を出力する第2のアドレス判定手段と、
上記第2のアドレス判定手段より出力される判定信号および上記処理手段より出力される要求信号に基づき、上記要求信号が上記一の状態であるとき、上記処理手段で得られた出力すべきプロセスデータを出力プロセスデータとして出力し、上記要求信号が上記一の状態でなく、かつ上記判定信号が上記一の状態でないとき、上記入力プロセスデータを出力プロセスデータとして出力する第2の切り換え手段とを有する
ことを特徴とする請求項1に記載の画像処理装置。 - 上記複数個の実行手段のそれぞれは、画像データを記憶するデータ記憶手段をさらに有し、
上記処理手段は、上記画像データの処理として、上記データ記憶手段への画像データの書き込み、該データ記憶手段からの画像データの読み出し、または画像データの差分の演算のうちいずれかの処理を行う
ことを特徴とする請求項2に記載の画像処理装置。 - 上記第2の切り換え手段は、
上記要求信号が上記一の状態でなく、かつ上記判定信号が上記一の状態であるときは、ハイレベルまたはローレベルのデータを出力する
ことを特徴とする請求項2に記載の画像処理装置。 - 上記画像処理は、動きベクトルを検出する処理である
ことを特徴とする請求項1に記載の画像処理装置。 - 画像データを取り扱う画像処理を行うための各プロセスを生成し、該各プロセスを実行する命令を含むプロセスデータを順次出力するプロセス生成手段と、
上記プロセスデータに従って上記プロセスを実行する、直列接続された複数個の実行手段とを備え、
上記プロセスデータは、該プロセスデータに係るプロセスを実行するための実行手段のアドレスを含み、
上記複数個の実行手段のそれぞれは、
入力プロセスデータに含まれる命令に従って画像データの処理を行って、その処理結果に基づいて上記入力プロセスデータを変更して出力すべきプロセスデータを得ると共に、該出力すべきプロセスデータを出力するとき一の状態となる要求信号を出力する処理手段と、
自己のアドレスを記憶するアドレス記憶手段と、
上記入力プロセスデータに含まれる実行手段のアドレスに上記アドレス記憶手段に記憶されている自己のアドレスが存在するとき一の状態となる判定信号を出力するアドレス判定手段と、
上記アドレス判定手段より出力される判定信号および上記処理手段より出力される要求信号に基づき、上記要求信号が上記一の状態であるとき、上記処理手段で得られた出力すべきプロセスデータを出力プロセスデータとして出力し、上記要求信号が上記一の状態でなく、かつ上記判定信号が上記一の状態でないとき、上記入力プロセスデータを出力プロセスデータとして出力する切り換え手段とを有する
ことを特徴とする画像処理装置。 - 上記複数個の実行手段のそれぞれは、画像データを記憶するデータ記憶手段をさらに有し、
上記処理手段は、上記画像データの処理として、上記データ記憶手段への画像データの書き込み、該データ記憶手段からの画像データの読み出し、または画像データの差分の演算のうちいずれかの処理を行う
ことを特徴とする請求項6に記載の画像処理装置。 - 上記切り換え手段は、
上記要求信号が上記一の状態でなく、かつ上記判定信号が上記一の状態であるときは、ハイレベルまたはローレベルのデータを出力する
ことを特徴とする請求項6に記載の画像処理装置。 - 上記画像処理は、動きベクトルを検出する処理である
ことを特徴とする請求項6に記載の画像処理装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002374862A JP3832431B2 (ja) | 2002-12-25 | 2002-12-25 | 画像処理装置 |
CNB2003801076811A CN100388310C (zh) | 2002-12-25 | 2003-12-12 | 图像处理设备 |
US10/540,641 US7782959B2 (en) | 2002-12-25 | 2003-12-12 | Image processing apparatus |
PCT/JP2003/015976 WO2004059576A1 (ja) | 2002-12-25 | 2003-12-12 | 画像処理装置 |
KR20057012009A KR100975454B1 (ko) | 2002-12-25 | 2003-12-12 | 화상 처리 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002374862A JP3832431B2 (ja) | 2002-12-25 | 2002-12-25 | 画像処理装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004206423A true JP2004206423A (ja) | 2004-07-22 |
JP2004206423A5 JP2004206423A5 (ja) | 2005-03-10 |
JP3832431B2 JP3832431B2 (ja) | 2006-10-11 |
Family
ID=32677313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002374862A Expired - Fee Related JP3832431B2 (ja) | 2002-12-25 | 2002-12-25 | 画像処理装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7782959B2 (ja) |
JP (1) | JP3832431B2 (ja) |
KR (1) | KR100975454B1 (ja) |
CN (1) | CN100388310C (ja) |
WO (1) | WO2004059576A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012119008A (ja) * | 2005-04-19 | 2012-06-21 | D.E. Shaw Research LLC | 粒子相互作用を計算するための並行計算アーキテクチャ |
JP2016224989A (ja) * | 2005-08-18 | 2016-12-28 | ディ.イー.ショー リサーチ, エルエルシーD.E.Shaw Research, Llc | 粒子相互作用を計算するための並行計算アーキテクチャ |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7912126B2 (en) * | 2005-06-30 | 2011-03-22 | Intel Corporation | Systems and methods for improved motion estimation |
US8448234B2 (en) | 2007-02-15 | 2013-05-21 | Marvell Israel (M.I.S.L) Ltd. | Method and apparatus for deep packet inspection for network intrusion detection |
US20080225948A1 (en) * | 2007-03-13 | 2008-09-18 | National Tsing Hua University | Method of Data Reuse for Motion Estimation |
US10122735B1 (en) * | 2011-01-17 | 2018-11-06 | Marvell Israel (M.I.S.L) Ltd. | Switch having dynamic bypass per flow |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5442797A (en) * | 1991-12-04 | 1995-08-15 | Casavant; Thomas L. | Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging |
JPH07115646A (ja) * | 1993-10-20 | 1995-05-02 | Sony Corp | 画像処理装置 |
JPH07250328A (ja) * | 1994-01-21 | 1995-09-26 | Mitsubishi Electric Corp | 動きベクトル検出装置 |
JPH08161271A (ja) | 1994-12-08 | 1996-06-21 | Com Syst:Kk | データ処理装置 |
JPH08171536A (ja) | 1994-12-16 | 1996-07-02 | Com Syst:Kk | データ処理装置 |
JPH1079947A (ja) * | 1996-09-03 | 1998-03-24 | Mitsubishi Electric Corp | 動きベクトル検出装置 |
JP3019787B2 (ja) * | 1996-09-20 | 2000-03-13 | 日本電気株式会社 | 動きベクトル検出装置 |
JPH10327415A (ja) * | 1997-05-22 | 1998-12-08 | Mitsubishi Electric Corp | 動きベクトル検出装置 |
JP4672094B2 (ja) * | 1999-01-22 | 2011-04-20 | ソニー株式会社 | 画像処理装置および方法、並びに記録媒体 |
JP3504210B2 (ja) | 2000-03-31 | 2004-03-08 | 理想科学工業株式会社 | 画像処理装置 |
JP4345273B2 (ja) | 2002-08-15 | 2009-10-14 | ソニー株式会社 | 動きベクトル検出装置および動きベクトル検出方法 |
JP4462823B2 (ja) * | 2002-11-20 | 2010-05-12 | ソニー株式会社 | 画像信号の処理装置および処理方法、それに使用される係数データの生成装置および生成方法、並びに各方法を実行するためのプログラム |
-
2002
- 2002-12-25 JP JP2002374862A patent/JP3832431B2/ja not_active Expired - Fee Related
-
2003
- 2003-12-12 WO PCT/JP2003/015976 patent/WO2004059576A1/ja active Application Filing
- 2003-12-12 CN CNB2003801076811A patent/CN100388310C/zh not_active Expired - Fee Related
- 2003-12-12 US US10/540,641 patent/US7782959B2/en not_active Expired - Fee Related
- 2003-12-12 KR KR20057012009A patent/KR100975454B1/ko not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012119008A (ja) * | 2005-04-19 | 2012-06-21 | D.E. Shaw Research LLC | 粒子相互作用を計算するための並行計算アーキテクチャ |
JP2016224989A (ja) * | 2005-08-18 | 2016-12-28 | ディ.イー.ショー リサーチ, エルエルシーD.E.Shaw Research, Llc | 粒子相互作用を計算するための並行計算アーキテクチャ |
Also Published As
Publication number | Publication date |
---|---|
JP3832431B2 (ja) | 2006-10-11 |
US20060120628A1 (en) | 2006-06-08 |
KR20050085899A (ko) | 2005-08-29 |
CN100388310C (zh) | 2008-05-14 |
CN1732480A (zh) | 2006-02-08 |
KR100975454B1 (ko) | 2010-08-11 |
US7782959B2 (en) | 2010-08-24 |
WO2004059576A1 (ja) | 2004-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004206423A (ja) | 画像処理装置 | |
EP2190206B1 (en) | Device for motion search in dynamic image encoding | |
US20080056368A1 (en) | Motion vector search apparatus | |
US6990149B2 (en) | Circuit and method for full search block matching | |
US20040247032A1 (en) | Motion vector detection device and motion vector detection method | |
JP4345273B2 (ja) | 動きベクトル検出装置および動きベクトル検出方法 | |
JPH05236455A (ja) | 動画像の動きベクトル検出装置 | |
JP4488805B2 (ja) | 動きベクトル検出装置および方法 | |
JP2636088B2 (ja) | 情報処理装置 | |
JP2000023163A (ja) | 動きベクトル検出装置 | |
KR970057953A (ko) | 양방향 병렬 파이프라인 구조에 근거한 탐색 이동 예측처리기 | |
JP4170173B2 (ja) | ブロックマッチング演算装置 | |
JP5089632B2 (ja) | 動画像復号装置 | |
JPH09503324A (ja) | 画素ブロックの比較のためのプロセッサ(ブロックマッチングプロセッサ) | |
JP2009055291A (ja) | 動き検出回路 | |
JP2004145493A (ja) | マッチング演算回路 | |
JP2004302647A (ja) | ベクトルプロセッサおよびレジスタのアドレス指定方法 | |
JP2618146B2 (ja) | 動きベクトル検出回路 | |
JPH11187424A (ja) | 動きベクトル検出装置及び動きベクトル検出方法 | |
JPH09218949A (ja) | ブロックマッチング装置 | |
JP3988522B2 (ja) | データ処理装置及び半導体装置 | |
JP4784514B2 (ja) | リストベクトル処理装置及び方法 | |
JP4609109B2 (ja) | 信号処理装置及び方法、並びにプログラム | |
JP2007336259A (ja) | 画像符号化装置および方法 | |
JPH1013837A (ja) | 動きベクトル検出回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040406 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040406 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060428 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060627 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060710 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090728 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100728 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100728 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110728 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120728 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130728 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |