JPWO2002037860A1 - 動きベクトル検出装置 - Google Patents
動きベクトル検出装置 Download PDFInfo
- Publication number
- JPWO2002037860A1 JPWO2002037860A1 JP2002540466A JP2002540466A JPWO2002037860A1 JP WO2002037860 A1 JPWO2002037860 A1 JP WO2002037860A1 JP 2002540466 A JP2002540466 A JP 2002540466A JP 2002540466 A JP2002540466 A JP 2002540466A JP WO2002037860 A1 JPWO2002037860 A1 JP WO2002037860A1
- Authority
- JP
- Japan
- Prior art keywords
- search
- pixel
- motion vector
- vector
- unit
- 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.)
- Pending
Links
Images
Classifications
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/557—Motion estimation characterised by stopping computation or iteration based on certain criteria, e.g. error magnitude being too large or early exit
-
- 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
-
- 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
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
動きベクトル検出部(7A)は、各画素パターンについて複数の探索ベクトルを指定していき、サーチウインドウメモリ部(2)および交換器(3)は、指定された探索ベクトルおよび画素パターンの画素データを出力し、評価部(4)は、指定された探索ベクトルおよび画素パターンについての評価値を計算し、画素パターン累積器(8)は、その評価値の累積を計算していき、動きベクトル検出部(7A)は、評価値の累積値の小さい探索ベクトルでの評価値の累積を打ち切り、その探索ベクトルを動きベクトルの候補から削除する。
Description
技術分野
この発明は、H.261方式、MPEG(Moving Picture Experts Group)方式などの画像処理方式において、画像データにおけるフレームを分割した各ブロックについて、既に符号化されたフレームに対する動きベクトルを検出する動きベクトル検出装置に関するものである。
背景技術
第1図は、従来の動きベクトル検出装置の構成を示すブロック図である。第2図は、第1図のサーチウィンドウメモリ部におけるメモリの入出力を制御する回路の一例を示すブロック図である。第3図は、第1図の交換器の構成例を示すブロック図であり、第4図は、第3図の水平交換部におけるセレクタ部の構成例を示すブロック図であり、第5図は、第3図の垂直交換部におけるセレクタ部の構成例を示すブロック図である。第6図は、第1図のリファレンスメモリ部におけるメモリの入出力を制御する回路の一例を示すブロック図である。
なお、この従来の動きベクトル検出装置は、リファレンスブロックが16行16列であり、リファレンスブロックを分割したときの分割ブロックが4行4列である場合のものである。
第1図において、1は、H.261方式、MPEG方式などの画像処理方式においてフレーム間予測符号化により既に符号化されたフレームの画素データであって、現時点で符号化されるフレームにおける予測のための画素データを記憶する既符号フレームメモリである。なお、現時点で符号化されるフレームの予測においては、符号化されるフレームを分割した各ブロックに対する動きベクトルが検出される。すなわち、現時点において符号化されるフレームにおけるそのブロックの位置と、既に符号化されたフレームにおけるそのブロックに対応する範囲の位置との水平方向および垂直方向の距離が動きベクトルとして検出される。
102は、リファレンスブロックを所定の個数に分割したときの分割ブロックと同一の大きさの領域にサーチウィンドウを分割したときの、分割後の領域における同一の行Iかつ同一の列Jの画素データを記憶するメモリ111−(I,J)を有するサーチウィンドウメモリ部である。すなわち、メモリ111−(I,J)は、分割ブロックの画素の数と同一の数だけ設けられ、リファレンスブロックをN個に分割したときの分割ブロックでサーチウィンドウが(N×M)個に分割された場合、各メモリ111−(I,J)には、各領域における同一の行Iかつ同一の列Jの(N×M)個の画素データが記憶される。
第2図において、141は、メモリ111−(I,J)への画素データ書込み時に書込みアドレスを供給され、メモリ111−(I,J)からの画素データ読出し時に読出しアドレスを供給され、書込み/検出切替信号の値に応じて、それらのアドレスのいずれかをメモリ111−(I,J)に供給するセレクタである。
131は、探索ベクトルの水平成分と、サーチウィンドウの左上角からのリファレンスブロックの左上角の水平方向の位置との和を計算し、その計算結果を出力する加算器である。132は、加算器131の出力値からメモリ111−(I,J)の列番号Iを減算し、その計算結果を出力する減算器である。133は、減算器132の出力値と定数3との和を計算し、その計算結果を出力する加算器である。142は、加算器133の出力値と、分割ブロックの水平アドレスq(後述)を4倍した値との和を計算し、その計算結果を出力する加算器である。134は、加算器142の出力値を定数4で除した値の整数部を出力する除算器である。
135は、探索ベクトルの垂直成分と、サーチウィンドウの左上角からのリファレンスブロックの左上角の垂直方向の位置との和を計算し、その計算結果を出力する加算器である。136は、加算器135の出力値からメモリ111−(I,J)の行番号Jを減算し、その計算結果を出力する減算器である。137は、減算器136の出力値と定数3との和を計算し、その計算結果を出力する加算器である。150は、加算器137の出力値と、分割ブロックの垂直アドレスr(後述)を4倍にした値との和を計算し、その計算結果を出力する加算器である。138は、加算器150の出力値を定数4で除した値の整数部を出力する除算器である。139は、除算器138の出力値と定数14との積を計算し、その計算結果を出力する乗算器である。
140は、除算器134の出力値と乗算器139の出力値との和を計算し、その計算結果をメモリ111−(I,J)に対する読出しアドレスとしてセレクタ141に供給する加算器である。
第1図に戻り、103は、サーチウィンドウメモリ部102のメモリ111−(0,0)〜111−(3,3)に記憶された画素データのうちの、リファレンスブロックの分割ブロックと同一の大きさで、リファレンスブロックの分割ブロックの位置から探索ベクトルだけ離れた位置の探索ブロックに含まれる画素データを供給され、探索分割ブロックにおける座標値が(I,J)である各画素データを評価部104の画素比較部113−(I,J)にそれぞれ出力する交換器である。
第3図に示す交換器103において、114は、探索分割ブロックの行Jごとにメモリ111−(0,J)〜111−(3,J)から画素データを供給され、内蔵のセレクタ部151−(0,J)〜151−(3,J)によりすべての画素データからそれぞれ1つの画素データを探索ベクトルの水平成分の値に応じて選択し、出力する水平交換部である。115は、水平交換部114のセレクタ部151−(I,0)〜151−(I,3)から、画素データを内蔵のセレクタ部152−(I,0)〜152−(I,3)に供給され、セレクタ部152−(I,0)〜152−(I,3)によりすべての画素データからそれぞれ1つの画素データを探索ベクトルの垂直成分の値に応じて選択し、出力する垂直交換部である。
第4図に示すセレクタ部151−(I,J)において、123は、セレクタ部151−(I,J)の列番号Iと探索ベクトルの水平成分との和を計算し、その計算結果をROM124に出力する加算器である。124は、加算器123からの値に対して4で除した剰余の値を選択信号としてセレクタ125に供給するROMである。125は、ROM124からの選択信号の値SSに応じてメモリ111−(SS,J)からの値を選択し、出力するセレクタである。
第5図に示すセレクタ部152−(I,J)において、126は、セレクタ部152−(I,J)の行番号Jと探索ベクトルの垂直成分との和を計算し、その計算結果をROM127に出力する加算器である。127は、加算器126からの値に対して4で除した剰余の値を選択信号としてセレクタ128に供給するROMである。128は、ROM127からの選択信号の値SSに応じてセレクタ部151−(I,SS)からの値を選択し、出力するセレクタである。
第1図に戻り、5は、現時点で符号化されるフレームの画素データを記憶する符号化フレームメモリである。
106は、現時点で符号化されるフレームを分割した16行16列のブロックのうちのいずれかのブロック(リファレンスブロック)を所定の個数の分割ブロックに分割したときの、その分割ブロックにおける同一の行Iかつ同一の列Jの画素データを記憶するメモリ116−(I,J)を有するリファレンスメモリ部である。すなわち、メモリ116−(I,J)は、分割ブロックの画素の数と同一の数だけ設けられ、リファレンスブロックをM個の分割ブロックに分割した場合、各メモリ116−(I,J)には、各分割ブロックにおける同一の行Iかつ同一の列JのM個の画素データが記憶される。
第6図において、145は、ブロック累積器108の垂直4進カウンタ144より供給される分割ブロックの垂直アドレスrと定数4との積を計算し、その計算結果を出力する乗算器である。146は、乗算器145の出力値と、ブロック累積器108の水平4進カウンタ143より供給される分割ブロックの水平アドレスqとの和を計算し、その計算結果をメモリ116−(I,J)に対する読出しアドレスとしてセレクタ147に出力する加算器である。147は、メモリ116−(I,J)への画素データ書込み時に書込みアドレスを供給され、メモリ116−(I,J)からの画素データ読出し時に読出しアドレスを供給され、書込み/検出切替信号の値に応じて、それらのアドレスのいずれかをメモリ116−(I,J)に供給するセレクタである。
第1図に戻り、104は、リファレンスメモリ部106の各メモリ116−(I,J)(I=0,・・・,3,J=0,・・・,3)の画素データと、交換器103のセレクタ部152−(I,J)からの画素データとをそれぞれ比較する画素比較部113−(I,J)を有する評価部である。
108は、第6図に示す水平4進カウンタ143および垂直4進カウンタ144によりリファレンスブロック内の分割ブロックを水平方向および垂直方向についてカウントしていき、それらのカウント値を分割ブロックの垂直アドレスrおよび水平アドレスqとしてサーチウィンドウメモリ部102、交換器103およびリファレンスメモリ部106に供給するとともに、その評価部104の各画素比較部113−(I,J)の比較結果を分割ブロックごとに一時的に蓄積し、ブロックを構成するすべての分割ブロックに対する上記比較結果をまとめて動きベクトル検出部107に出力するブロック累積器である。
107は、ブロック累積器108からの1ブロック分の比較結果に基づいて、最適な探索ベクトルを動きベクトルとして検出するとともに、サーチウィンドウメモリ部102および交換器103における探索ベクトルを設定する動きベクトル検出部である。例えば、各画素比較部113−(I,J)により2つの画素データの差を算出させ、リファレンスブロックにおけるそれらの差の絶対値の総和が最小であるときの探索ベクトルが動きベクトルとされる。
次に動作について説明する。
第7図は、サーチウィンドウおよび探索分割ブロックの一例を示す図であり、第8図は、実施の形態2における探索分割ブロックおよび探索分割ブロックの水平アドレスおよび垂直アドレスを示す図である。
まず、既符号フレームメモリ1は、サーチウィンドウをリファレンスブロックの分割ブロックと同一の大きさの領域に分割したときの、分割後の領域における同一の行Iかつ同一の列Jの画素データをサーチウィンドウメモリ部102のメモリ111−(I,J)に出力する。
このとき、例えば第7図および第8図に示すように、ブロックを16分割したときの各分割ブロックにブロック内の水平アドレスqおよび垂直アドレスrを割り振るとともに、サーチウィンドウにおける水平アドレスhおよび垂直アドレスvを割り振ると、メモリ111−(I,J)は、水平アドレスhおよび垂直アドレスvの分割ブロックにおける第J行第I列の画素データを、値(14×v+h)のアドレスに記憶する。
次に、動きベクトルの探索を実行する場合には、動きベクトル検出部107から探索ベクトルがサーチウィンドウメモリ部102および交換器103に供給されるとともに、ブロック累積器108から探索分割ブロックの水平アドレスqおよび垂直アドレスrがサーチウィンドウメモリ部102、交換器103およびリファレンスメモリ部106に順次供給される。
サーチウィンドウメモリ部102においては、探索ベクトルの水平成分が加算器131に供給され、探索ベクトルの垂直成分が加算器135に供給される。また、探索分割ブロックの水平アドレスqを4倍にした値が加算器142に供給され、分割ブロックの垂直アドレスrを4倍にした値が加算器150に供給される。
そして、加算器131,133,135,137,140,142,150、減算器132,136、除算器134,138および乗算器139により、供給された探索ベクトルおよび分割ブロックの水平アドレスqおよび垂直アドレスrに対応したメモリ111−(I,J)に対する読出しアドレスが算出される。メモリ111−(I,J)は、供給された読出しアドレスに記憶された画素データを交換器103のセレクタ部151−(0,J)〜151−(3,J)に出力する。
なお、メモリ111−(I,J)に対する読出しアドレスA(I,J)は、xを探索ベクトルの水平成分とし、yを探索ベクトルの垂直成分とし、SWH0をサーチウィンドウの左上角からのリファレンスブロックの左上角の水平方向の位置とし、SWV0をサーチウィンドウの左上角からのリファレンスブロックの左上角の垂直方向の位置としたとき、加算器131,133,135,137,140,142,150、減算器132,136、除算器134,138および乗算器139により、次式に従って計算される。
A(I,J)=(int((SWV0+y−J+r×4+3)/4))×14+int((SWH0+x−I+q×4+3)/4)
ここで、int()は、引数の小数点以下を切り捨てる関数または演算子である。
そして、交換器103においては、水平交換部114の各セレクタ部151−(I,J)が、動きベクトル検出部107より供給された探索ベクトルの水平成分に応じて、メモリ111−(0,J)〜111−(3,J)からの値のいずれかを選択し、選択した値を垂直交換部115のセレクタ部152−(I,0)〜152−(I,3)に出力する。
このとき、各セレクタ部151−(I,J)においては、加算部123およびROM124により、セレクタ部151−(I,J)の列番号Iおよび探索ベクトルの水平成分に基づいて選択信号が計算され、セレクタ125に供給される。そして、その選択信号の値SSに応じて、メモリ111−(SS,J)からの値が出力される。なお、選択信号の値SSは、セレクタ部151−(I,J)の列番号Iおよび探索ベクトルの水平成分xに基づいて、加算部123およびROM124により次式に従って計算される。
SS=mod(I+x,4)
ここで、mod(a,b)はaをbで除算したときの剰余である。
その後、垂直交換部115の各セレクタ部152−(I,J)は、動きベクトル検出部107より供給された探索ベクトルの垂直成分に応じて、セレクタ部151−(I,0)〜151−(I,3)からの値のいずれかを選択し、選択した値を評価部104の画素比較部113−(I,J)に出力する。
このとき、各セレクタ部152−(I,J)においては、加算部126およびROM127により、セレクタ部152−(I,J)の行番号Jおよび探索ベクトルの垂直成分に基づいて選択信号が計算され、セレクタ128に供給される。そして、その選択信号の値SSに応じて、セレクタ部151−(I,SS)からの値が出力される。なお、選択信号の値SSは、セレクタ部152−(I,J)の行番号Jおよび探索ベクトルの垂直成分yに基づいて、加算部126およびROM127により次式に従って計算される。
SS=mod(J+y,4)
一方、符号化フレームメモリ105は、符号化されるフレームを分割したブロックのうちのいずれか1ブロックの画素データを、分割ブロックにおける同一の行Iかつ同一の列Jの画素データごとにメモリ116−(I,J)に記憶させる。
そして、リファレンスメモリ部106のメモリ116−(0,0)〜116−(3,3)は、供給された水平アドレスqおよび垂直アドレスrに対応する分割ブロックの画素データを、1クロックごとに評価部104の画素比較部113−(0,0)〜113−(3,3)にそれぞれ供給する。
このとき、リファレンスメモリ部106においては、乗算器145および加算器146により、供給された水平アドレスqおよび垂直アドレスrから読出しアドレス(=r×4+q)が計算され、セレクタ147を介してメモリ116−(0,0)〜116−(3,3)に供給される。
交換器103およびリファレンスメモリ部106からそれぞれ画素データが供給されると、評価部104の画素比較部113−(I,J)は、交換器103のセレクタ部152−(I,J)からの画素データと、リファレンスメモリ部106のメモリ116−(I,J)からの画素データとの差を計算し、その差をブロック累積部108に供給する。ブロック累積部108は、画素データの差が供給されると、次の分割ブロックを指定するための水平アドレスqおよび垂直アドレスrを出力するとともに、1ブロック分の画素データの差が蓄積されると、その画素データの差を動きベクトル検出部107に出力する。動きベクトル検出部107は、そのときの探索ベクトルに関連づけて、評価部104より供給された画素データの差の絶対値の総和を評価値として記憶する。
そして、動きベクトル検出部107は、所定の順番に基づいて、あるいは既に計算された探索ベクトルと評価値との関係に基づいて、新たな探索ベクトルをサーチウィンドウメモリ部102および交換器103に供給する。
このようにして、動きベクトル検出部107は、所定の順番が終了するまで、あるいは評価値が所定の値以下になるまで探索ベクトルを更新していき、評価値の最も小さいときの探索ベクトルを動きベクトルに決定する。
以上のように、この従来の動きベクトル検出装置では、リファレンスメモリ部106に、リファレンスブロックを分割した分割ブロックを構成する画素データを記憶させ、サーチウィンドウメモリ部102に、符号化されたフレームのうちのサーチウィンドウを分割ブロックと同一の大きさの領域に分割したときの、分割後の領域における同一の行かつ同一の列の画素データごとに、符号化されたフレームのうちのサーチウィンドウの画素データを記憶させ、サーチウィンドウメモリ部102のメモリ111−(I,J)に記憶された分割後の領域における同一の行かつ同一の列の画素データのうちのいずれか1つをそれぞれ選択して、分割ブロックの位置から探索ベクトルだけ離れた位置の探索分割ブロックを選択し、リファレンスメモリ部106に記憶された画素データと、選択された画素データとを画素ごとに比較し、その比較の結果に基づいて動きベクトルを検出するようにする。
従来の動きベクトル検出装置は以上のように構成されているので、評価部104の画素比較部113−(I,J)の数を低減して回路規模を小さくし、装置のコストを低減することができるものの、ブロック全域を構成するすべての分割ブロックについて画素データの比較を実行する必要があり、この点に関して動きベクトルを検出するために要する時間を低減することが困難であるなどの課題があった。
また、従来の動きベクトル検出装置は以上のように構成されているので、双方向予測を実行する場合、前方向の動きベクトルを検出するための装置と後方向の動きベクトルを検出するための装置の2つの装置が必要になり、装置の規模が大きくなるなどの課題があった。
この発明は上記のような課題を解決するためになされたもので、ブロックを構成する複数の画素パターンを構成する画素のデータを記憶する第1の記憶手段と、符号化されたフレームのうちの所定の範囲において所定の画素数おきの所定の数の画素でそれぞれ構成される複数の画素パターンにおける同一位置の画素のデータごとに、符号化されたフレームのうちの所定の範囲の画素のデータを記憶する第2の記憶手段と、所定の探索ベクトルを供給され、その所定の範囲においてその探索ベクトルで指定されたブロックにおける1つの画素パターンを選択する選択手段と、選択手段により選択された画素パターンと、その画素パターンと同一の、第1の記憶手段に記憶された画素パターンとを画素ごとに比較する比較手段と、比較手段による比較の結果に基づいて動きベクトルを検出する検出手段とを備えるようにして、各画素パターンについての比較結果をブロック全域についての比較結果に近似させ、比較結果に必要とされる精度に応じて、必ずしもブロック全域を構成する画素パターンのすべてについて比較を実行する必要がなくなり、短時間で各ブロックについての比較結果が得られ、動きベクトルを短時間で検出することができる動きベクトル検出装置を得ることを目的とする。
また、この発明は上記のような課題を解決するためになされたもので、ブロックを構成する複数の画素パターンまたは複数の分割ブロックを構成する画素のデータを記憶する第1の記憶手段と、符号化されたフレームのうちの所定の範囲を構成する複数の画素パターンまたは複数の分割ブロックにおける同一位置の画素のデータごとに、符号化されたフレームのうちの所定の範囲の画素のデータを記憶する第2の記憶手段と、動きベクトルの候補である複数の探索ベクトルを供給され、その所定の範囲において各探索ベクトルで指定されたブロックにおける同一の画素パターンまたは各分割ブロックを順次選択する選択手段と、選択手段により選択された画素パターンまたは分割ブロックと、その画素パターンまたは分割ブロックと同一の、第1の記憶手段に記憶された画素パターンまたは分割ブロックとを画素ごとに比較する比較手段と、1つの探索ベクトルについて比較手段による全画素パターンまたは全分割ブロックについての比較が完了する以前に、その時点までの画素パターンまたは分割ブロックについての比較結果に応じて、その探索ベクトルについての選択手段および比較手段による処理を中止させ、その探索ベクトルを動きベクトルの候補から削除する探索ベクトル絞込手段と、比較手段による比較の結果に基づいて動きベクトルの候補から動きベクトルを検出する検出手段とを備えるようにして、動きベクトルとならない可能性の高い探索ベクトルを打ち切り、動きベクトルを検出するまでの計算量を低減し、動きベクトルを短時間で検出することができる動きベクトル検出装置を得ることを目的とする。
さらに、この発明は上記のような課題を解決するためになされたもので、ブロックを構成する画素データのうちの所定の数の画素データを記憶する第1の記憶手段と、符号化されたフレームのうち、前方向の動きベクトル検出用の第1の範囲内、および後方向の動きベクトル検出用の第2の範囲内の画素データを記憶する第2の記憶手段と、前方向の探索ベクトルおよび後方向の探索ベクトルを供給され、第2の記憶手段に記憶された画素データのうちの、ブロックの位置から探索ベクトルだけ離れた位置の、ブロックと同一の大きさの範囲の画素データのうちの所定の数の画素データを選択する選択手段と、第1の記憶手段に記憶された所定の数の画素データと、選択手段により選択された所定の数の画素データとを比較する比較手段と、比較手段による比較の結果に基づいて前方向の動きベクトルおよび後方向の動きベクトルを検出する検出手段とを備えるようにして、第2の記憶手段に必要な記憶容量が増加するものの、他の構成要素を増加させることなく、前方向および後方向の動きベクトルを検出することができる動きベクトル検出装置を得ることを目的とする。
発明の開示
この発明に係る動きベクトル検出装置は、ブロックを構成する複数の画素パターンを構成する画素のデータを記憶する第1の記憶手段と、符号化されたフレームのうちの所定の範囲において所定の画素数おきの所定の数の画素でそれぞれ構成される複数の画素パターンにおける同一位置の画素のデータごとに、符号化されたフレームのうちの所定の範囲の画素のデータを記憶する第2の記憶手段と、所定の探索ベクトルを供給され、その所定の範囲においてその探索ベクトルで指定されたブロックにおける1つの画素パターンを選択する選択手段と、選択手段により選択された画素パターンと、その画素パターンと同一の、第1の記憶手段に記憶された画素パターンとを画素ごとに比較する比較手段と、比較手段による比較の結果に基づいて動きベクトルを検出する検出手段とを備えるものである。このことによって、各画素パターンについての比較結果がブロック全域についての比較結果に近似し、比較結果に必要とされる精度に応じて、必ずしもブロック全域を構成する画素パターンのすべてについて比較を実行する必要がなくなり、短時間で各ブロックについての比較結果が得られ、動きベクトルを短時間で検出することができるという効果が得られる。
この発明に係る動きベクトル検出装置は、ブロックを構成する複数の画素パターンまたは複数の分割ブロックを構成する画素のデータを記憶する第1の記憶手段と、符号化されたフレームのうちの所定の範囲を構成する複数の画素パターンまたは複数の分割ブロックにおける同一位置の画素のデータごとに、符号化されたフレームのうちの所定の範囲の画素のデータを記憶する第2の記憶手段と、動きベクトルの候補である複数の探索ベクトルを供給され、その所定の範囲において各探索ベクトルで指定されたブロックにおける同一の画素パターンまたは各分割ブロックを順次選択する選択手段と、選択手段により選択された画素パターンまたは分割ブロックと、その画素パターンまたは分割ブロックと同一の、第1の記憶手段に記憶された画素パターンまたは分割ブロックとを画素ごとに比較する比較手段と、1つの探索ベクトルについて比較手段による全画素パターンまたは全分割ブロックについての比較が完了する以前に、その時点までの画素パターンまたは分割ブロックについての比較結果に応じて、その探索ベクトルについての選択手段および比較手段による処理を中止させ、その探索ベクトルを動きベクトルの候補から削除する探索ベクトル絞込手段と、比較手段による比較の結果に基づいて動きベクトルの候補から動きベクトルを検出する検出手段とを備えるものである。このことによって、動きベクトルとならない可能性の高い探索ベクトルを打ち切り、動きベクトルを検出するまでの計算量を低減し、動きベクトルを短時間で検出することができるという効果が得られる。
この発明に係る動きベクトル検出装置によれば、探索ベクトル絞込手段は、複数の探索ベクトルについての同一の画素パターンまたは同一の分割ブロックごとに、その同一の画素パターンまたは同一の分割ブロックの比較が完了した後ごとに、所定の条件を満足する場合に複数の探索ベクトルのうちの少なくとも1つを動きベクトルの候補から削除する。このことによって、評価値の累積を打ち切るための処理が簡単になるという効果が得られる。
この発明に係る動きベクトル検出装置によれば、比較手段は、比較結果として評価値を算出し、探索ベクトル絞込手段は、各探索ベクトルについて複数の画素パターンでの評価値の累積値を計算し、複数の探索ベクトルについての評価値の累積値を昇順または降順に配列して記憶していき、その配列における評価値の順序に基づいて1または複数の探索ベクトルを動きベクトルの候補から削除する。このことによって、評価値の累積を打ち切る探索ベクトルを選択する際に、改めてすべての探索ベクトルについての評価値の累積値を参照する必要がなく、評価値の累積を打ち切る探索ベクトルの選択を迅速に実行することができるという効果が得られる。
この発明に係る動きベクトル検出装置によれば、比較手段は、比較結果として評価値を算出し、探索ベクトル絞込手段は、複数の探索ベクトルについての評価値の累積値において最小値または最大値の評価値に対応する探索ベクトルを選択し、選択した探索ベクトルについて評価値の累積を実行し、検出手段は、最小値または最大値の評価値の累積回数が所定の回数である場合、その探索ベクトルを動きベクトルとする。このことによって、動きベクトルとなる可能性の高い探索ベクトルについての評価値の累積がより進行していくため、より短時間で動きベクトルを検出することができるという効果が得られる。
この発明に係る動きベクトル検出装置によれば、探索ベクトル絞込手段は、複数の探索ベクトルについての評価値の累積値を昇順または降順に配列して記憶していき、その配列の先頭に対応する探索ベクトルを選択し、選択した探索ベクトルについて評価値の累積を実行し、複数の探索ベクトルについての評価値の累積値を昇順または降順に再配列し、配列の先頭の評価値の累積回数が所定の回数である場合、その探索ベクトルを動きベクトルとする。このことによって、次に評価値の累積を実行する探索ベクトルを選択する際に、単に配列の先頭の探索ベクトルを選択すればよく、各探索ベクトルについての評価値の累積値を参照する必要がなく、評価値の累積を打ち切る探索ベクトルの選択を迅速に実行することができるという効果が得られる。
この発明に係る動きベクトル検出装置は、ブロックを構成する画素データのうちの所定の数の画素データを記憶する第1の記憶手段と、符号化されたフレームのうち、前方向の動きベクトル検出用の第1の範囲内、および後方向の動きベクトル検出用の第2の範囲内の画素データを記憶する第2の記憶手段と、前方向の探索ベクトルおよび後方向の探索ベクトルを供給され、第2の記憶手段に記憶された画素データのうちの、ブロックの位置から探索ベクトルだけ離れた位置の、ブロックと同一の大きさの範囲の画素データのうちの所定の数の画素データを選択する選択手段と、第1の記憶手段に記憶された所定の数の画素データと、選択手段により選択された所定の数の画素データとを比較する比較手段と、比較手段による比較の結果に基づいて前方向の動きベクトルおよび後方向の動きベクトルを検出する検出手段とを備えるものである。このことによって、第2の記憶手段に必要な記憶容量が増加するものの、他の構成要素を増加させることなく、前方向および後方向の動くベクトルを検出することができるという効果が得られる。
発明を実施するための最良の形態
以下、この発明をより詳細に説明するために、この発明を実施するための最良の形態について、添付の図面に従って説明する。
実施の形態1.
第9図は、この発明の実施の形態1による動きベクトル検出装置の構成を示すブロック図である。第10図は、第9図のサーチウィンドウメモリ部におけるメモリの入出力を制御する回路の一例を示すブロック図である。第11図は、第9図の交換器の構成例を示すブロック図であり、第12図は、第11図の水平交換部におけるセレクタ部の構成例を示すブロック図であり、第13図は、第11図の垂直交換部におけるセレクタ部の構成例を示すブロック図である。
なお、この実施の形態1による動きベクトル検出装置は、リファレンスブロックが16行16列であり、リファレンスブロックが16の画素パターンで構成される場合のものである。
第9図において、1は、H.261方式、MPEG方式などの画像処理方式においてフレーム間予測符号化により既に符号化されたフレームの画素データであって、現時点で符号化されるフレームにおける予測のための画素データを記憶する既符号フレームメモリである。なお、現時点で符号化されるフレームの予測においては、符号化されるフレームを分割した各ブロックに対する動きベクトルが検出される。すなわち、現時点において符号化されるフレームにおけるそのブロックの位置と、既に符号化されたフレームにおけるそのブロックに対応する範囲の位置との水平方向および垂直方向の距離が動きベクトルとして検出される。
2は、サーチウィンドウ内の、所定の画素数おきの所定の数の画素でそれぞれ構成される複数の画素パターンにおける同一位置の画素のデータごとに、符号化されたフレームのうちのサーチウィンドウを構成する画素のデータを記憶するサーチウィンドウメモリ部(第2の記憶手段、選択手段)である。
この実施の形態1におけるサーチウィンドウメモリ部2において、11−(I,J)は、サーチウィンドウをリファレンスブロックと同一サイズに分割した各分割ブロックを構成する複数の画素パターンにおける同一位置の画素データを記憶するメモリである。例えば、サーチウィンドウのサイズが64画素×32画素であり、リファレンスブロックのサイズが16画素×16画素であり、縦横3画素おきの画素で各画素パターンが構成される場合には、サーチウィンドウがまず、縦2つ横4つの合計8つのブロックに分割され、その各ブロック(縦16画素、横16画素)における縦横4画素の16の領域(I,J)(I=0,・・・,3、J=0,・・・,3)の画素データが、16のメモリ11−(I,J)にそれぞれ記憶される。
すなわち、この場合、各ブロックにおいて、p(p=0,・・・,3)およびq(q=0,・・・,3)として、各画素パターンは、画素(50+p,0+q)、画素(4+p,0+q)、画素(8+p,0+q)、画素(12+p,0+q)、画素(0+p,4+q)、画素(4+p,4+q)、画素(8+p,4+q)、画素(12+p,4+q)、画素(0+p,8+q)、画素(4+p,8+q)、画素(8+p,8+q)、画素(12+p,8+q)、画素(0+p,12+q)、画素(4+p,12+q)、画素(8+p,12+q)および画素(12+p,12+q)の16の画素で構成される。これにより、16のメモリ11−(I,J)から、同時に、16の画素で構成される画素パターンを構成する画素データを読み出すことが可能になる。
第10図において、41は、メモリ11−(I,J)への画素データ書込み時に書込みアドレスを供給され、メモリ11−(I,J)からの画素データ読出し時に読出しアドレスを供給され、書込み/検出切替信号の値に応じて、それらのアドレスのいずれかをメモリ11−(I,J)に供給するセレクタである。42は、メモリ11−(0,0)〜11−(3,3)から、1つの画素パターンを構成する画素データを同時に出力させる際のメモリ11−(I,J)の読出しアドレスA(I,J)を式(1)に従って演算する読出しアドレス演算部である。
A(I,J)=(int((y1+12−4×j)/16)×4+mod(y1,4))×16+int((x1+12−4×i)/16)×4+mod(x1,4) ・・・(1)
ここで、x1=24+x+p、y1=8+y+qとし、(x,y)を探索ベクトルとする。なお、この式はサーチウィンドウの原点に対して動きが0である位置が(24,8)である場合のものである。
第9図に戻り、3は、サーチウィンドウメモリ部2のメモリ11−(0,0)〜11−(3,3)に記憶された画素データのうちの、リファレンスブロックの位置から探索ベクトルだけ離れた位置の探索ブロックにおけるいずれかの画素パターンを構成する画素データを供給され、その画素パターンを構成する16個の画素データを所定の順序に配列して評価部4の画素比較部13−(I,J)にそれぞれ出力する交換器(選択手段)である。
第11図に示す交換器3において、14は、行Jごとにメモリ11−(0,J)〜11−(3,J)から画素データを供給され、内蔵のセレクタ部51−(0,J)〜51−(3,J)によりすべての画素データからそれぞれ1つの画素データを探索ベクトルの水平成分の値に応じて選択し、出力する水平交換部である。15は、水平交換部14のセレクタ部51−(I,0)〜51−(I,3)から、画素データを内蔵のセレクタ部52−(I,0)〜52−(I,3)に供給され、セレクタ部52−(I,0)〜52−(I,3)によりすべての画素データからそれぞれ1つの画素データを探索ベクトルの垂直成分の値に応じて選択し、出力する垂直交換部である。
第12図に示すセレクタ部51−(I,J)において、21は、セレクタ部51−(I,J)の番号I、探索ベクトルの水平成分xおよび画素パターンの水平方向のオフセットpに基づいて式(2)に従って演算した値Shを有する選択信号を生成する選択信号生成部である。
Sh=mod(int(24+x+p+4×I)/4,4) ・・・(2)
22は、選択信号生成部21からの選択信号の値Shに応じてメモリ11−(Sh,J)からの値を選択し、出力するセレクタである。
第13図に示すセレクタ部52−(I,J)において、26は、セレクタ部52−(I,J)の番号J、探索ベクトルの垂直成分yおよび画素パターンの垂直方向のオフセットqに基づいて式(3)に従って演算した値Svを有する選択信号を生成する選択信号生成部である。
Sv=mod(int(8+y+q+4×J)/4,4) ・・・(3)
27は、選択信号生成部26からの選択信号の値Svに応じてセレクタ部51−(I,Sv)からの値を選択し、出力するセレクタである。
第9図に戻り、5は、現時点で符号化されるフレームの画素データを記憶する符号化フレームメモリである。
6は、現時点で符号化されるフレームを分割した16行16列のブロックのうちのいずれかのブロック(リファレンスブロック)を構成する複数の画素パターンにおける同一位置の画素のデータをそれぞれ記憶するメモリ16−(I,J)を有するリファレンスメモリ部(第1の記憶手段)である。すなわち、メモリ16−(I,J)は、画素パターンを構成する画素の数と同一の数だけ設けられ、リファレンスブロックがM個の画素パターンで構成される場合、各メモリ16−(I,J)には、各画素パターンにおける同一位置のM個の画素データが記憶される。
4は、リファレンスメモリ部6の各メモリ16−(I,J)(I=0,・・・,3,J=0,・・・,3)の画素データと、交換器3のセレクタ部52−(I,J)からの画素データとをそれぞれ比較する画素比較部13−(I,J)を有する評価部(比較手段)である。
8は、画素パターンのオフセット値の水平成分pおよび垂直成分qを所定の順番に従って順次選択していき、それらの値p,qを、サーチウィンドウメモリ部2、交換器3およびリファレンスメモリ部6に供給するとともに、評価部4の各画素比較部13−(I,J)の比較結果を画素パターンごとに一時的に蓄積し、ブロックを構成するすべての画素パターンに対する上記比較結果をまとめて動きベクトル検出部7に出力する画素パターン累積器(検出手段)である。
7は、画素パターン累積器8からの1ブロック分の比較結果に基づいて、サーチウィンドウメモリ部2および交換器3における次の探索ベクトルを設定し、最適な探索ベクトルを動きベクトルとして検出する動きベクトル検出部(検出手段)である。例えば、各画素比較部13−(I,J)により2つの画素データの差を算出させ、リファレンスブロックにおけるそれらの差の絶対値の総和が最小であるときの探索ベクトルが動きベクトルとされる。
次に動作について説明する。
第14図は、サーチウィンドウメモリ部における各画素データのアドレスとその各画素データが記憶されるメモリとの対応関係の一例、およびサーチウィンドウにおける画素パターンの一例を示す図である。第15図は、リファレンスメモリ部における各画素データのアドレスとその各画素データが記憶されるメモリとの対応関係の一例、およびサーチウィンドウにおける画素パターンの一例を示す図である。第16図は、画素パターンの選択順序の一例を示す図である。
サーチウィンドウメモリ部2は、複数の画素パターンにおける同一位置の画素のデータごとに、既符号フレームメモリ1における符号化されたフレームのうちのサーチウィンドウを構成する画素のデータを記憶する。すなわち、1つの画素パターンを構成する各画素は互いに異なるメモリ11−(I,J)に記憶される。
例えば第14図に示すように、サーチウィンドウメモリ部2におけるメモリ11−(I,J)は、サーチウィンドウをリファレンスブロックと同一サイズに分割した各分割ブロックを構成する複数の画素パターンにおける同一位置の画素データを記憶する。この場合、第14図に示すように、サーチウィンドウのサイズが64画素×32画素であり、リファレンスブロックのサイズが16画素×16画素であり、縦横3画素おきの画素で各画素パターンが構成される場合には、サーチウィンドウがまず、縦2つ横4つの合計8つのブロックに分割され、その各ブロック(縦16画素、横16画素)における縦横4画素の16の領域(I,J)(I=0,・・・,3、J=0,・・・,3)の画素データが、16のメモリ11−(I,J)にそれぞれ記憶される。
そして、サーチウィンドウメモリ部2の読出しアドレス演算部42は、画素パターン累積部8からの画素パターンのオフセット(p,q)および動きベクトル検出部7からの探索ベクトル(x,y)に基づいて、式(1)に従ってメモリ11−(I,J)の読出しアドレスA(I,J)を演算し、セレクタ41に供給する。画素データの読み出し時には、セレクタ41を介して、その読み出しアドレスがメモリ11−(I,J)に供給され、そのアドレスの画素データが交換器3に供給される。例えば第14図には、探索ベクトルが(19,−6)であり、オフセットが(2,1)である場合の画素パターンが示されている。
交換器3は、サーチウィンドウメモリ部2からの、画素パターンを構成する画素データを所定の順序に配列させて評価部4の画素比較部13−(I,J)にそれぞれ出力する。
このとき、交換器3では、水平交換部14が、まず、行Jごとにメモリ11−(0,J)〜11−(3,J)から画素データを供給され、内蔵のセレクタ部51−(0,J)〜51−(3,J)によりすべての画素データからそれぞれ1つの画素データを探索ベクトルの水平成分の値に応じて選択し、垂直交換部15へ出力する。このとき、各セレクタ部51−(I,J)においては、選択信号生成部21により式(2)に従って演算された値Shを有する選択信号がセレクタ22に供給され、セレクタ22により、その選択信号の値Shに応じてメモリ11−(Sh,J)からの値が選択される。
交換器3では次に、垂直交換部15が、水平交換部14のセレクタ部51−(I,0)〜51−(I,3)からの画素データを、内蔵の各セレクタ部52−(I,J)によりすべての画素データからそれぞれ1つの画素データを探索ベクトルの垂直成分の値に応じて選択し、出力する。このとき、セレクタ部52−(I,J)では、選択信号生成部26により式(3)に従って演算された値Svを有する選択信号がセレクタ27に供給され、セレクタ27により、その選択信号の値Svに応じてセレクタ部51−(I,Sv)からの値が選択される。
このようにして探索ベクトル(x,y)およびオフセット(p,q)に応じて選択された画素パターンを構成する画素のデータが評価部4に供給される。
一方、リファレンスメモリ部6は、符号化フレームメモリ5から、現時点で符号化されるフレームを分割した16行16列のブロックのうちのいずれかのブロック(リファレンスブロック)を構成する複数の画素パターンにおける同一位置の画素のデータをそれぞれ読み出し、内蔵のメモリ16−(I,J)に記憶する。すなわち、1つの画素パターンを構成する各画素は互いに異なるメモリ16−(I,J)に記憶される。そして、リファレンスメモリ部16は、例えば第15図に示すように、画素パターン累積器8からのオフセット(p,q)(第15図の場合、p=2、q=1)で指定された画素パターンを、交換器3から評価部4への画素データの配列と同様の配列で、評価部4の画素比較部13−(I,J)にそれぞれ出力する。
そして、評価部4は、リファレンスメモリ部6の各メモリ16−(I,J)からの画素データと、交換器3のセレクタ部52−(I,J)からの画素データとを画素比較部13−(I,J)でそれぞれ比較し、その比較結果である評価値を画素パターン累積器8に供給する。このときの評価値は、例えば、リファレンスメモリ部6の各メモリ16−(I,J)からの画素データと、交換器3のセレクタ部52−(I,J)からの画素データとの差の絶対値の総和とされる。なお、このときの評価値を、両者の画素データとの差の2乗の総和としてもよい。
画素パターン累積器8は、画素パターンのオフセット値の水平成分pおよび垂直成分qを所定の順番に従って順次選択していき、それらの値p,qを、サーチウィンドウメモリ部2、交換器3およびリファレンスメモリ部6に供給し、各オフセット値p,qの場合に評価部4の各画素比較部13−(I,J)からの評価値を累積し、各探索ベクトルについて、ブロックを構成するすべての画素パターンに対する評価値をまとめて動きベクトル検出部7に出力する。
このとき、画素パターン累積器8は、画素パターンのオフセット(p,q)を、例えば第16図(a)に示すように、片寄りなく選択していく。これにより、3回選択されたオフセットに応じた3つの画素パターンは第16図(b)に示すようになる。
動きベクトル検出部7は、画素パターン累積器8からの1ブロック分の評価値に基づいて、サーチウィンドウメモリ部2および交換器3における次の探索ベクトルを設定し、最適な探索ベクトルを動きベクトルとして検出する。
以上のように、この実施の形態1によれば、リファレンスメモリ部6に、ブロックを構成する複数の画素パターンを構成する画素のデータを記憶し、サーチウィンドウメモリ部2に、符号化されたフレームのうちの所定のサーチウィンドウにおいて所定の画素数おきの所定の数の画素でそれぞれ構成される複数の画素パターンにおける同一位置の画素のデータごとに、そのサーチウィンドウにおける画素データを記憶し、動きベクトル検出部7からの探索ベクトルに応じてサーチウィンドウメモリ部2および交換器3により1つの画素パターンを選択し、評価部4により、その選択した画素パターンと、その画素パターンと同一の、リファレンスメモリ部6に記憶された画素パターンとを画素ごとに比較し、画素パターン累積器8により、複数の画素パターンについての評価部4による比較結果をまとめ、動きベクトル検出部7により、それらの比較の結果に基づいて動きベクトルを検出するようにしたので、ブロックにおける画素のうち、比較に使用される画素がブロック全域に分散しているため、各画素パターンについての比較結果がブロック全域についての比較結果に近似し、比較結果に必要とされる精度に応じて、必ずしもブロック全域を構成する画素パターンのすべてについて比較を実行する必要がなくなり、短時間で各ブロックについての比較結果が得られ、動きベクトルを短時間で検出することができるという効果が得られる。
第17図は、分割ブロックにより使用される画素、および画素パターンにより使用される画素の一例を示す図である。すなわち、第17図に示すように、従来のように分割ブロックについて比較を実行する場合(第17図(a))には、ブロックにおいて局所的に画素データが参照されるが、この実施の形態1のように上述の画素パターンについて比較を実行する場合(第17図(b))には、ブロックにおいて均一的に画素データが参照される。
実施の形態2.
この発明の実施の形態2による動きベクトル検出装置は、1つの画素パターンについて複数の探索ベクトルでの評価値の累積を計算していき、評価値の累積値の小さい探索ベクトルについての評価値の累積を打ち切り、その探索ベクトルを動きベクトルの候補から削除するようにしたものである。
第18図は、この発明の実施の形態2による動きベクトル検出装置の構成を示すブロック図である。第18図において、7Aは、動きベクトル検出部7と同様に動作する他、1つの探索ベクトルについて全画素パターンまたは全分割ブロックについての評価部4による評価値の算出が完了する以前に、その時点までの画素パターンについての評価値に応じて、その探索ベクトルについての交換器3および評価部4による処理を中止させ、その探索ベクトルを動きベクトルの候補から削除する動きベクトル検出部(検出手段、探索ベクトル絞込手段)である。
第19図は、この実施の形態2における動きベクトル検出部7Aおよび画素パターン累積器8の構成例を示すブロック図である。第19図において、61は評価部4からの評価値と、記憶手段66からの過去の評価値の累積値とを加算する加算器であり、66は各探索ベクトルについての評価値の累積回数および累積値を記憶するレジスタ、メモリなどの記憶手段であり、67は各探索ベクトルについての評価値の累積回数および累積値に基づいて評価値の計算を打ち切る探索ベクトルを決定するシーケンサ、プロセッサなどの演算手段である。
なお、第18図におけるその他の構成要素については実施の形態1によるものと同様であるので、その説明を省略する。
次に動作について説明する。
動きベクトル検出部7Aは、探索ベクトルごとに全画素パターンに対する評価値の累積値を連続して計算させるのではなく、各画素パターンのオフセット(p,q)について探索ベクトル(x,y)を変化させて、各画素パターンのオフセット(p,q)で複数の探索ベクトルについて並行して計算させていく。
このとき、演算手段67は、各画素パターンのオフセット(p,q)について探索ベクトル(x,y)を変化させて、そのオフセット(p,q)をサーチウィンドウメモリ部2、交換器3およびリファレンスメモリ部6に供給し、その探索ベクトル(x,y)をサーチウィンドウメモリ部2および交換器3に供給し、その探索ベクトルについての評価値の累積値を記憶手段66から加算器61へ供給させる。
そして、そのオフセットおよび探索ベクトルに対する評価値が評価部4から加算器61に供給され、評価値の累積値が計算され、その値で記憶手段66に記憶されている評価値の累積値が更新される。第20図は記憶手段66に記憶された各探索ベクトルについての評価値の累積回数と累積値などの一例を示す図である。
また、演算手段67は、各探索ベクトルについての評価値の累積値に基づいて、評価値の累積を打ち切る探索ベクトルを選択し、選択した探索ベクトルについては以降の評価値の計算を実行させず、動きベクトルの候補から削除する。
なお、その他の構成要素の動作については実施の形態1によるものと同様であるので、その説明を省略する。
以上のように、この実施の形態2によれば、動きベクトル検出部8Aは各画素パターンについて複数の探索ベクトルを順次選択し、各探索ベクトルに対して、その画素パターンでの画素ごとの比較を実行させ、1つの探索ベクトルについて全画素パターンの比較が完了する以前に、その時点までの画素パターンについての比較結果に応じて、その探索ベクトルについての以降の画素パターンについての比較を打ち切り、その探索ベクトルを動きベクトルの候補から削除し、残った探索ベクトルから比較の結果に基づいて動きベクトルを検出するようにしたので、動きベクトルとならない可能性の高い探索ベクトルを打ち切り、動きベクトルを検出するまでの計算量を低減し、動きベクトルを短時間で検出することができるという効果が得られる。
なお、ブロックを複数の画素パターンではなく従来の技術のように複数の分割ブロックに分割して、1つの分割ブロックについて複数の探索ベクトルでの評価値の累積を計算していき、評価値の累積値の低い探索ベクトルでの評価値の累積を打ち切り、その探索ベクトルを動きベクトルの候補から削除するようにしたも同様の効果が得られる。
実施の形態3.
この発明の実施の形態3による動きベクトル検出装置は、動きベクトル検出部7Aの演算手段67が、各累積回数において、各探索ベクトルについての評価値の累積値に基づいて、評価値の累積を打ち切る探索ベクトルを選択し、動きベクトルの候補から削除するようにしたものである。
なお、実施の形態3による動きベクトル検出装置の構成については、実施の形態2によるものと同様であるので、その説明を省略する。
次に動作について説明する。
第21図は、実施の形態3における評価値の累積の打ち切りの一例を説明する図である。
動きベクトル検出部7Aの演算手段67は、まず、所定の数の探索ベクトルについての第1回目の評価値の累積の後、それらの探索ベクトルのうちの、評価値の小さいもの16個以外のものを削除する。例えば第21図においては、探索ベクトル(x0,y0)〜(x15,y15)以外の探索ベクトルについての評価値の累積が打ち切られる。
次に、動きベクトル検出部7Aの演算手段67は、その16個の探索ベクトルについて第2回目の評価値の累積を実行させる。
そして第2回目から所定の第8回目までの各回数の評価値の累積の後に、演算手段67は、評価値の累積を継続している探索ベクトルについての評価値の累積値の平均値の1.5倍以上の累積値となっている探索ベクトルについての評価値の累積を打ち切る。例えば第21図においては、第2回目の評価値の累積の後、探索ベクトル(x4,y4)および探索ベクトル(x7,y7)についての評価値の累積が打ち切られ、第3回目の評価値の累積の後、探索ベクトル(x11,y11)、探索ベクトル(x13,y13)および探索ベクトル(x15,y15)についての評価値の累積が打ち切られ、第4回目の評価値の累積の後、探索ベクトル(x1,y1)、探索ベクトル(x12,y12)および探索ベクトル(x14,y14)についての評価値の累積が打ち切られ、第5回目の評価値の累積の後、探索ベクトル(x9,y9)についての評価値の累積が打ち切られる。
その後、第9回目以降の評価値の累積では、演算手段67は、評価値の累積を継続している探索ベクトルのうち、評価値の累積値が最大である1つの探索ベクトルについての評価値の累積を打ち切る。ただし、評価値の累積を継続している探索ベクトルの数が2になった場合、探索ベクトルについての評価値の累積の打ち切りは実行しない。そして最後まで残った探索ベクトルのうち、評価値が最小であるものが動きベクトルとされる。
例えば第21図においては、第9回目の評価値の累積の後、探索ベクトル(x6,y6)についての評価値の累積が打ち切られ、第10回目の評価値の累積の後、探索ベクトル(x0,y0)についての評価値の累積が打ち切られ、第11回目の評価値の累積の後、探索ベクトル(x10,y10)についての評価値の累積が打ち切られ、第12回目の評価値の累積の後、探索ベクトル(x2,y2)についての評価値の累積が打ち切られ、第13回目の評価値の累積の後、探索ベクトル(x8,y8)についての評価値の累積が打ち切られる。これにより、第2回目以降では、評価値の累積の処理は全体で101(=16+14+11+8+7+7+7+7+6+5+4+3+2+2+2)回で済む。
なお、その他の構成要素の動作については実施の形態2によるものと同様であるので、その説明を省略する。また、各累積回数における、評価値の累積の打ち切りの条件については上述の方法に限定されるものではなく、初回および最終回での探索ベクトルの数、条件を変更する累積回数などはもちろん変更してもよい。
以上のように、この実施の形態3によれば、動きベクトル検出部7Aの演算手段67が、各累積回数において、各探索ベクトルについての評価値の累積値に基づいて、評価値の累積を打ち切る探索ベクトルを選択し、動きベクトルの候補から削除するようにしたので、評価値の累積を打ち切るための処理が簡単になるという効果が得られる。
実施の形態4.
この発明の実施の形態4による動きベクトル検出装置は、実施の形態3による動きベクトル検出装置において、複数の探索ベクトルについての評価値の累積値を昇順または降順に配列して記憶していき、その配列における評価値の順序に基づいて1または複数の探索ベクトルを動きベクトルの候補から削除するようにしたものである。
第22図は、実施の形態4における動きベクトル検出部7Aおよび画素パターン累積器8Aの記憶手段66の構成を示すブロック図である。第22図に示す動きベクトル検出部7Aにおいて、71−1〜71−(n+1)は記憶手段66としてのシフトレジスタを構成する(n+1)個(例えば17個)の記憶部である。第23図は、第22図における各記憶部の構成例を示すブロック図である。第23図に示す各記憶部71において、81はレジスタ84に記憶された累積データのうちの累積値E(i)と、画素パターン累積器8Aからの累積データのうちの累積値E(new)とを比較する比較器であり、82は内蔵される記憶部71−iの比較器81からの比較結果、前段の記憶部71−(i−1)の比較器81からの比較結果、および後段の記憶部71−(i+1)の比較器81からの比較結果に基づいて、前段の記憶部71−(i−1)からの累積データ、後段の記憶部71−(i+1)からの累積データ、内蔵される記憶部71−iの累積データ、画素パターン累積器8Aからの新たな累積データ、および所定の最大値を累積値として有する累積データのいずれかを選択させるための選択信号を生成する制御回路であり、83は制御回路82からの選択信号に基づいていずれかの累積データを選択するセレクタであり、84は累積データを記憶するレジスタである。
第22図において、8Aは評価部4から評価値を供給され、また記憶手段66における第1番目の記憶部71−1からの累積データを供給され、その累積データにおける評価値の累積値に評価部4からの評価値を累積して新たな累積データを生成し、各記憶部71−iに供給する画素パターン累積器である。
なお、実施の形態4におけるその他の構成要素については、実施の形態2によるものと同様であるので、その説明を省略する。
次に動作について説明する。
初期状態としてまず演算手段67は、各記憶部71−iの制御回路82を制御してセレクタ83に所定の最大値を有する累積データを選択させ、レジスタ84に選択させる。
次にn個の探索ベクトルについての第1回目の評価値の累積における動きベクトル検出部7Aの動作について説明する。画素パターン累積器8Aから、評価部4からの評価値、現在の探索ベクトルおよび累積回数(=1)で構成される新たな累積データが記憶部71−1〜71−(n+1)の比較器81およびセレクタ83に供給される。
各記憶部71−iの比較器81は、レジスタ84に記憶されている累積データのうちの累積値E(i)と、画素パターン累積器8Aからの累積データのうちの累積値E(new)とを比較し、その比較結果、すなわち、E(i)>E(new)であるか否かを制御回路82、並びに、前段および後段の記憶部71−(i−1),71−(i+1)の制御回路82に供給する。
そして制御回路82は、E(i)>E(new)ではない場合、レジスタ84の累積データを選択する選択信号を生成し、E(i)>E(new)である場合であって、i>1についてE(i−1)>E(new)ではない場合、画素パターン累積器8Aからの新たな累積データを選択する選択信号を生成し、i>1についてE(i−1)>E(new)である場合、前段の記憶部71−(i−1)のレジスタ84からの累積データを選択する選択信号を生成する。制御回路82は選択信号を生成するとセレクタ83に供給する。セレクタ83はその選択信号に応じてレジスタ84からの累積データ、画素パターン累積器8Aからの累積データおよび前段の記憶部71−(i−1),71−(i+1)からの累積データのうちのいずれかを選択し、レジスタ84に供給する。レジスタ84は所定のクロック信号CLKに同期して、記憶している累積データを、供給された累積データで更新する。
これにより、第1回目の評価値の累積により、n個の探索ベクトルについての評価値が記憶手段66において昇順に記憶される。
次に第2回目以降の評価値の累積における動きベクトル検出部7Aの動作について説明する。
第1番目の記憶部71−1、すなわち累積値が最小である累積データを有する記憶部からその累積データが演算手段67および画素パターン累積器8Aに供給される。
そして、演算手段67はその累積データにおける探索ベクトルおよび次の画素パターンを指定して、評価値を演算させる。その評価値が評価部4から供給されると、画素パターン累積器8Aは、記憶手段66からの累積データにおける評価値に、その評価部4からの評価値を累積し、累積回数を1だけ増加させて、新たな累積データを生成し、記憶手段66の各記憶部71−iに供給する。
このとき、演算手段67は、記憶部71−1〜71−(n+1)の制御回路82を制御して、第(n+1)番目の記憶部71−(n+1)のレジスタ84に、その新たな累積データを記憶させる。そして、演算手段67は、記憶部71−1〜71−(n+1)のレジスタ84に記憶された累積データをシフトさせ、記憶部71−(i+1)(i=1,・・・,n)のレジスタ84に記憶された累積データを記憶部71−iのレジスタ84に記憶させる。
この時点では、記憶部71−1〜71−(n−1)には、累積回数が1である累積データが記憶されており、記憶部71−nには、累積回数が2である累積データが記憶されている。
次に、第1番目の記憶部71−1から累積データ(累積回数が1である累積データのうちの累積値が最小であるもの)が演算手段67および画素パターン累積器8Aに供給される。
そして、演算手段67はその累積データにおける探索ベクトルおよび次の画素パターンを指定して、評価値を演算させる。その評価値が評価部4から供給されると、画素パターン累積器8Aは、記憶手段66からの累積データにおける評価値に、その評価部4からの評価値を累積し、累積回数を1だけ増加させて、新たな累積データを生成し、記憶手段66の各記憶部71−iに供給する。
このとき、演算手段67は、累積回数が2である累積データを記憶する記憶部71−nの制御回路82のみを動作させ、新たな累積値E(new)がレジスタ84の累積値E(n)以上であるか否かを判断させ、新たな累積値E(new)がレジスタ84の累積値E(n)以上である場合、記憶部71−2〜71−nのレジスタ84の累積データを記憶部71−1〜71−(n−1)のレジスタ84に順次記憶させていき、新たな累積データを記憶部71−nのレジスタ84に記憶させる。一方、新たな累積値E(new)がレジスタ84の累積値E(n)より小さい場合、演算手段67は、記憶部71−2〜71−(n−1)のレジスタ84の累積データをシフトさせ、記憶部71−1〜71−(n−2)のレジスタ84に順次記憶させていき、新たな累積データを記憶部71−(n−1)のレジスタ84に記憶させる。
この時点では、記憶部71−1〜71−(n−2)には累積回数が1である累積データが記憶され、記憶部71−(n−1),71−nには累積回数が2である累積データが記憶されている。
以下、第2回目の評価値の累積では、同様に、記憶部71−1に順次シフトされてくる第m番目の探索ベクトルについて、評価値が計算され、新たな累積データが生成され、演算手段67は、累積回数が2である累積データを記憶する記憶部71−(n−m+1)〜71−nの制御回路82のみを動作させ、新たな累積値E(new)がレジスタ84の累積値E(j)(j=n−m+1,・・・,n−1)以上であり、かつ新たな累積値E(new)がレジスタ84の累積値E(j+1)より小さい場合(また、新たな累積値E(new)がレジスタ84の累積値E(j)(j=n)以上である場合)、記憶部71−2〜71−jのレジスタ84の累積データをシフトさせ、記憶部71−1〜71−(j−1)のレジスタ84に順次記憶させていき、新たな累積データを記憶部71−jのレジスタ84に記憶させる。この処理を第n(m=n)番目の探索ベクトルについてまで繰り返し実行した場合、第2回目の評価値の累積が完了し、記憶部71−1〜71−nに、累積回数が2であるn個の累積データが昇順に記憶された状態になる。
ここまでで、演算手段67は、すべて(n個)の探索ベクトルについての累積回数が1である累積データを供給されているので、それらの累積データにおける累積値に関して所定の条件を満たすか否かを判断して、評価値の累積を打ち切る探索ベクトルを決定する。評価値の累積を打ち切る探索ベクトルがある場合には、評価値の累積を打ち切る探索ベクトルの数をDとすると、演算手段67は、探索ベクトルの数nの値を値(n−D)に更新する。
その後、第2回目の評価値の累積と同様にして第3回目以降の累積を実行する。
以上のように、この実施の形態4によれば、複数の探索ベクトルについての評価値の累積値を昇順または降順に配列して記憶していき、その配列における評価値の順序に基づいて1または複数の探索ベクトルを動きベクトルの候補から削除するようにしたので、評価値の累積を打ち切る探索ベクトルを選択する際に、改めてすべての探索ベクトルについての評価値の累積値を参照する必要がなく、評価値の累積を打ち切る探索ベクトルの選択を迅速に実行することができるという効果が得られる。
実施の形態5.
この発明の実施の形態5による動きベクトル検出装置は、複数の探索ベクトルについての評価部4による評価値の累積値において最小値または最大値の評価値に対応する探索ベクトルを選択し、選択した探索ベクトルについて評価値の累積を実行し、最小値または最大値の評価値の累積回数が所定の回数である場合、その探索ベクトルを動きベクトルの候補とするようにしたものである。
なお、実施の形態5による動きベクトル検出装置の構成については実施の形態2によるものと同様であり、動きベクトル検出部7Aの動作のみが異なる。
次に動作について説明する。
第24図は、実施の形態5における評価値の累積の順序の一例を示す図である。
動きベクトル検出部7Aの演算手段67は、まず、所定の数の探索ベクトルについての第1回目の評価値の累積の後、それらの探索ベクトルのうちの、評価値の小さいもの16個以外のものを削除する。
次に、動きベクトル検出部7Aの演算手段67は、その16個の探索ベクトルについて第2回目以降の評価値の累積を実行させる。
そして第2回目以降の評価値の累積では、演算手段67は、16個の探索ベクトルのうち、累積回数に拘わらず評価値の累積値が最小である探索ベクトルを選択し、その探索ベクトルについて次の画素パターンをオフセットで指定して評価値を計算させ、その評価値を累積し、評価値の累積値を更新する。
演算手段67は、評価値の累積値が最小である探索ベクトルの累積回数が所定の回数(画素パターンの数と同数)である探索ベクトルが出現するまで、評価値の累積値が最小である探索ベクトルについて次の画素パターンの評価値を累積し、評価値の累積値を更新し、評価値の累積値が最小である探索ベクトルの累積回数が所定の回数(画素パターンの数)である探索ベクトルを動きベクトルとする。
例えば第24図に示すように、括弧内に示す第2回目以降の評価値の累積における累積の順序で、評価値を計算する探索ベクトルが選択されていき、第93番目に、画素パターン数と同数(=16)の累積回数である探索ベクトル(x5,y5)が、累積値が最小である探索ベクトルとして出現するので、この探索ベクトル(x5,y5)が動きベクトルとされる。これにより、第2回目以降では、評価値の累積の処理は全体で93回で済む。
なお、その他の構成要素の動作については実施の形態2によるものと同様であるので、その説明を省略する。また、初回および第2回目の評価値の累積での探索ベクトルの数などはもちろん変更してもよい。また、ここでは、評価値が最小となる探索ベクトルを動きベクトルとしているが、評価値の計算のしかたによっては評価値が最大となる探索ベクトルが動きベクトルとされることもある。
以上のように、この実施の形態5によれば、複数の探索ベクトルについての評価部4による評価値の累積値において最小値または最大値の評価値に対応する探索ベクトルを選択し、選択した探索ベクトルについて評価値の累積を実行し、最小値または最大値の評価値の累積回数が所定の回数である場合、その探索ベクトルを動きベクトルの候補とするようにしたので、動きベクトルとなる可能性の高い探索ベクトルについての評価値の累積がより進行していくため、より短時間で動きベクトルを検出することができるという効果が得られる。また、常に累積値が最小である探索ベクトルが選択されるので、確実に、所定の累積回数で累積値が最小である探索ベクトルが動きベクトルとされる。
実施の形態6.
この発明の実施の形態6による動きベクトル検出装置は、実施の形態5による動きベクトル検出装置において、複数の探索ベクトルについての評価値の累積値を昇順または降順に配列して記憶していき、その配列の先頭に対応する探索ベクトルを選択し、選択した探索ベクトルについて評価値の累積を実行し、複数の探索ベクトルについての評価値の累積値を昇順または降順に再配列し、配列の先頭の評価値の累積回数が所定の回数である場合、その探索ベクトルを動きベクトルとするようにしたものである。
第25図は、実施の形態6による動きベクトル検出装置における動きベクトル検出部7Aの構成例を示すブロック図である。第25図において、71−1〜71−nはn個(例えば16個)の探索ベクトルについての評価値の累積値が昇順になるようにn個の累積データを記憶するシフトレジスタを構成するn個の記憶部であり、67は記憶部71−1の累積データにおける探索ベクトルについて評価値の累積を実行させ、複数の探索ベクトルについての評価値の累積値を昇順に再配列させ、配列の先頭の評価値の累積回数が所定の回数である場合、その探索ベクトルを動きベクトルとする演算手段である。
なお、実施の形態6による動きベクトル検出装置におけるその他の構成要素については実施の形態5によるものと同様であるので、その説明を省略する。また、記憶部71−iは、第23図に示す記憶部71−iと同様である。
次に動作について説明する。
初期状態としてまず演算手段67は、各記憶部71−iの制御回路82を制御してセレクタ83に所定の最大値を有する累積データを選択させ、レジスタ84に選択させる。
次に第1回目の評価値の累積の場合における動きベクトル検出部7Aの動作について説明する。演算手段67は、各探索ベクトルについて第1番目の画素パターンをオフセットで指定して第1回目の評価値を順次計算させる。各評価値は評価部4から画素パターン累積器8Aに供給される。そして、画素パターン累積器8Aから、評価部4からの評価値、現在の探索ベクトルおよび累積回数(=1)で構成される新たな累積データが記憶部71−1〜71−nの比較器81およびセレクタ83に供給される。
各記憶部71−iの比較器81は、レジスタ84に記憶されている累積データにおける累積値E(i)と、画素パターン累積器8Aからの累積データにおける累積値E(new)とを比較し、その比較結果、すなわち、E(i)>E(new)であるか否かを制御回路82、並びに、前段および後段の記憶部71−(i−1),71−(i+1)の制御回路82に供給する。
そして制御回路82は、E(i)>E(new)ではない場合、レジスタ84の累積データを選択する選択信号を生成し、E(i)>E(new)である場合であって、i>1についてE(i−1)>E(new)ではない場合、画素パターン累積器8Aからの新たな累積データを選択する選択信号を生成し、i>1についてE(i−1)>E(new)である場合、前段の記憶部71−(i−1)のレジスタ84からの累積データを選択する選択信号を生成する。制御回路82は選択信号を生成するとセレクタ83に供給する。セレクタ83はその選択信号に応じてレジスタ84からの累積データ、画素パターン累積器8Aからの累積データおよび前段の記憶部71−(i−1),71−(i+1)からの累積データのうちのいずれかを選択し、レジスタ84に供給する。レジスタ84は所定のクロック信号CLKに同期して、記憶している累積データを、供給された累積データで更新する。
これにより、第1回目の評価値の累積により、n個の探索ベクトルについての累積データが記憶手段66において評価値(の累積値)の昇順に記憶される。
次に第2回目以降の評価値の累積の場合における動きベクトル検出部7Aの動作について説明する。
第2回目以降の評価値の累積では、演算手段67は、先頭の記憶部71−1に記憶されている累積データ、すなわち累積値が最小である累積データにおける探索ベクトルについて次の画素パターンをオフセットで指定して次の評価値を計算させる。その評価値は評価部4から画素パターン累積器8Aに供給される。そして、画素パターン累積器8Aから新たな累積データが記憶部71−1〜71−nの比較器81およびセレクタ83に供給される。
各記憶部71−iの比較器81は、レジスタ84に記憶されている累積データにおける累積値E(i)と、画素パターン累積器8Aからの累積データにおける累積値E(new)とを比較し、その比較結果、すなわち、E(i)>E(new)であるか否かを制御回路82、並びに、前段および後段の記憶部71−(i−1),71−(i+1)の制御回路82に供給する。
そして記憶部71−i(i=1,・・・,n−1)の制御回路82は、E(i+1)>E(new)ではない場合、後段の記憶部71−(i+1)からの累積データを選択する選択信号を生成し、E(i)>E(new)ではなく、かつE(i+1)>E(new)である場合、画素パターン累積器8Aからの新たな累積データを選択する選択信号を生成し、E(i)>E(new)であり、かつE(i+1)>E(new)である場合、レジスタ84の累積データを選択する選択信号を生成する。また記憶部71−nの制御回路82は、E(n)>E(new)ではない場合、画素パターン累積器8Aからの新たな累積データを選択する選択信号を生成する。制御回路82は選択信号を生成するとセレクタ83に供給する。セレクタ83はその選択信号に応じてレジスタ84からの累積データ、画素パターン累積器8Aからの累積データおよび後段の記憶部71−(i+1)からの累積データのうちのいずれかを選択し、レジスタ84に供給する。レジスタ84は所定のクロック信号CLKに同期して、記憶している累積データを、供給された累積データで更新する。
これにより、第2回目以降の評価値の累積では、累積値が最小である探索ベクトルについての評価値の累積が順次実行され、その探索ベクトルについての新たな累積データが記憶手段66に供給され、その探索ベクトルの元の累積データが破棄され、新たな累積データを含めたn個の累積データが、累積値の昇順に配列される。
なお、その他の構成要素の動作については実施の形態5によるものと同様であるので、その説明を省略する。また、ここでは、評価値の累積値の昇順に累積データが配列されているが、評価値の計算のしかたによっては降順に配列される場合もある。
以上のように、この実施の形態6によれば、複数の探索ベクトルについての評価値の累積値を昇順または降順に配列して記憶していき、その配列の先頭に対応する探索ベクトルを選択し、選択した探索ベクトルについて評価値の累積を実行し、複数の探索ベクトルについての評価値の累積値を昇順または降順に再配列し、配列の先頭の評価値の累積回数が所定の回数である場合、その探索ベクトルを動きベクトルとするようにしたので、次に評価値の累積を実行する探索ベクトルを選択する際に、単に配列の先頭の探索ベクトルを選択すればよく、各探索ベクトルについての評価値の累積値を参照する必要がなく、評価値の累積を打ち切る探索ベクトルの選択を迅速に実行することができるという効果が得られる。
実施の形態7.
この発明の実施の形態7による動きベクトル検出装置は、MPEG2方式などのように双方向予測を実行する際に、符号化されたフレームのうちの、ブロックの位置から所定の行および所定の列の、前方向の動きベクトル検出用の第1のサーチウィンドウ、および後方向の動きベクトル検出用の第2のサーチウィンドウの画素のデータをサーチウィンドウメモリ部2に記憶し、上述と同様にして、前方向の動きベクトルおよび後方向の動きベクトルを検出するようにしたものである。
なお、実施の形態7による動きベクトル検出装置の構成については実施の形態1〜6のいずれかによるものと同様であるが、サーチウィンドウメモリ部2のメモリ11−(I,J)には、前方向および後方向双方のサーチウィンドウにおける画素データが記憶される。
次に動作について説明する。
第26図は前方向のサーチウィンドウおよび前方向の探索ブロックの一例を示す図である。第27図は後方向のサーチウィンドウおよび後方向の探索ブロックの一例を示す図である。
例えば第26図および第27図に示すように、サーチウィンドウメモリ部2のメモリ11−(I,J)には、前方向のサーチウィンドウにおける画素データが記憶され、その後のアドレスに、後方向のサーチウィンドウにおける画素データが記憶される。
そして、まず、前方向のサーチウィンドウにおいて前方向の動きベクトルが、上述の実施の形態1〜6のように探索され、検出される。その後に、後方向のサーチウィンドウにおいて後方向の動きベクトルが、上述の実施の形態1〜6のように探索され、検出される。
以上のように、この実施の形態7によれば、符号化されたフレームのうちの、ブロックの位置から所定の行および所定の列の、前方向の動きベクトル検出用の第1のサーチウィンドウ、および後方向の動きベクトル検出用の第2のサーチウィンドウの画素のデータをサーチウィンドウメモリ部2に記憶し、それらのデータから前方向の動きベクトルおよび後方向の動きベクトルを検出するようにしたので、サーチウィンドウメモリ部2に必要な記憶容量が増加するものの、他の構成要素を増加させることなく、前方向および後方向の動きベクトルを検出することができるという効果が得られる。
なお、実施の形態7は、上述の実施の形態1〜6のいずれかに適用されるものであるが、従来の動きベクトル検出装置に適用してもよい。
なお、上記のサーチウィンドウ、ブロックおよび画素パターンにおける画素の数、メモリ11−(I,J),16−(I,J)の数などは一例にすぎず、必要に応じて他の数としてもよい。
産業上の利用可能性
以上のように、この発明は、動き予測を実行する画像処理方式において動きベクトルを検出するのに適している。
【図面の簡単な説明】
第1図は、従来の動きベクトル検出装置の構成を示すブロック図である。
第2図は、第1図のサーチウィンドウメモリ部におけるメモリの入出力を制御する回路の一例を示すブロック図である。
第3図は、第1図の交換器の構成例を示すブロック図である。
第4図は、第3図の水平交換部におけるセレクタ部の構成例を示すブロック図である。
第5図は、第3図の垂直交換部におけるセレクタ部の構成例を示すブロック図である。
第6図は、第1図のリファレンスメモリ部におけるメモリの入出力を制御する回路の一例を示すブロック図である。
第7図は、サーチウィンドウおよび探索分割ブロックの一例を示す図である。
第8図は、実施の形態2における探索分割ブロックおよび探索分割ブロックの水平アドレスおよび垂直アドレスを示す図である。
第9図は、この発明の実施の形態1による動きベクトル検出装置の構成を示すブロック図である。
第10図は、第9図のサーチウィンドウメモリ部におけるメモリの入出力を制御する回路の一例を示すブロック図である。
第11図は、第9図の交換器の構成例を示すブロック図である。
第12図は、第11図の水平交換部におけるセレクタ部の構成例を示すブロック図である。
第13図は、第11図の垂直交換部におけるセレクタ部の構成例を示すブロック図である。
第14図は、サーチウィンドウメモリ部における各画素データのアドレスとその各画素データが記憶されるメモリとの対応関係の一例、およびサーチウィンドウにおける画素パターンの一例を示す図である。
第15図は、リファレンスメモリ部における各画素データのアドレスとその各画素データが記憶されるメモリとの対応関係の一例、およびサーチウィンドウにおける画素パターンの一例を示す図である。
第16図は、画素パターンの選択順序の一例を示す図である。
第17図は、分割ブロックにより使用される画素、および画素パターンにより使用される画素の一例を示す図である。
第18図は、この発明の実施の形態2による動きベクトル検出装置の構成を示すブロック図である。
第19図は、この実施の形態2における動きベクトル検出部および画素パターン累積部の構成例を示すブロック図である。
第20図は、記憶手段に記憶された各探索ベクトルについての評価値の累積回数と累積値などの一例を示す図である。
第21図は、実施の形態3における評価値の累積の打ち切りの一例を説明する図である。
第22図は、実施の形態4における動きベクトル検出部および画素パターン累積器の記憶手段の構成を示すブロック図である。
第23図は、第22図における各記憶部の構成例を示すブロック図である。
第24図は、実施の形態5における評価値の累積の順序の一例を示す図である。
第25図は、実施の形態6による動きベクトル検出装置における動きベクトル検出部の構成例を示すブロック図である。
第26図は、前方向のサーチウィンドウおよび前方向の探索ブロックの一例を示す図である。
第27図は、後方向のサーチウィンドウおよび後方向の探索ブロックの一例を示す図である。
この発明は、H.261方式、MPEG(Moving Picture Experts Group)方式などの画像処理方式において、画像データにおけるフレームを分割した各ブロックについて、既に符号化されたフレームに対する動きベクトルを検出する動きベクトル検出装置に関するものである。
背景技術
第1図は、従来の動きベクトル検出装置の構成を示すブロック図である。第2図は、第1図のサーチウィンドウメモリ部におけるメモリの入出力を制御する回路の一例を示すブロック図である。第3図は、第1図の交換器の構成例を示すブロック図であり、第4図は、第3図の水平交換部におけるセレクタ部の構成例を示すブロック図であり、第5図は、第3図の垂直交換部におけるセレクタ部の構成例を示すブロック図である。第6図は、第1図のリファレンスメモリ部におけるメモリの入出力を制御する回路の一例を示すブロック図である。
なお、この従来の動きベクトル検出装置は、リファレンスブロックが16行16列であり、リファレンスブロックを分割したときの分割ブロックが4行4列である場合のものである。
第1図において、1は、H.261方式、MPEG方式などの画像処理方式においてフレーム間予測符号化により既に符号化されたフレームの画素データであって、現時点で符号化されるフレームにおける予測のための画素データを記憶する既符号フレームメモリである。なお、現時点で符号化されるフレームの予測においては、符号化されるフレームを分割した各ブロックに対する動きベクトルが検出される。すなわち、現時点において符号化されるフレームにおけるそのブロックの位置と、既に符号化されたフレームにおけるそのブロックに対応する範囲の位置との水平方向および垂直方向の距離が動きベクトルとして検出される。
102は、リファレンスブロックを所定の個数に分割したときの分割ブロックと同一の大きさの領域にサーチウィンドウを分割したときの、分割後の領域における同一の行Iかつ同一の列Jの画素データを記憶するメモリ111−(I,J)を有するサーチウィンドウメモリ部である。すなわち、メモリ111−(I,J)は、分割ブロックの画素の数と同一の数だけ設けられ、リファレンスブロックをN個に分割したときの分割ブロックでサーチウィンドウが(N×M)個に分割された場合、各メモリ111−(I,J)には、各領域における同一の行Iかつ同一の列Jの(N×M)個の画素データが記憶される。
第2図において、141は、メモリ111−(I,J)への画素データ書込み時に書込みアドレスを供給され、メモリ111−(I,J)からの画素データ読出し時に読出しアドレスを供給され、書込み/検出切替信号の値に応じて、それらのアドレスのいずれかをメモリ111−(I,J)に供給するセレクタである。
131は、探索ベクトルの水平成分と、サーチウィンドウの左上角からのリファレンスブロックの左上角の水平方向の位置との和を計算し、その計算結果を出力する加算器である。132は、加算器131の出力値からメモリ111−(I,J)の列番号Iを減算し、その計算結果を出力する減算器である。133は、減算器132の出力値と定数3との和を計算し、その計算結果を出力する加算器である。142は、加算器133の出力値と、分割ブロックの水平アドレスq(後述)を4倍した値との和を計算し、その計算結果を出力する加算器である。134は、加算器142の出力値を定数4で除した値の整数部を出力する除算器である。
135は、探索ベクトルの垂直成分と、サーチウィンドウの左上角からのリファレンスブロックの左上角の垂直方向の位置との和を計算し、その計算結果を出力する加算器である。136は、加算器135の出力値からメモリ111−(I,J)の行番号Jを減算し、その計算結果を出力する減算器である。137は、減算器136の出力値と定数3との和を計算し、その計算結果を出力する加算器である。150は、加算器137の出力値と、分割ブロックの垂直アドレスr(後述)を4倍にした値との和を計算し、その計算結果を出力する加算器である。138は、加算器150の出力値を定数4で除した値の整数部を出力する除算器である。139は、除算器138の出力値と定数14との積を計算し、その計算結果を出力する乗算器である。
140は、除算器134の出力値と乗算器139の出力値との和を計算し、その計算結果をメモリ111−(I,J)に対する読出しアドレスとしてセレクタ141に供給する加算器である。
第1図に戻り、103は、サーチウィンドウメモリ部102のメモリ111−(0,0)〜111−(3,3)に記憶された画素データのうちの、リファレンスブロックの分割ブロックと同一の大きさで、リファレンスブロックの分割ブロックの位置から探索ベクトルだけ離れた位置の探索ブロックに含まれる画素データを供給され、探索分割ブロックにおける座標値が(I,J)である各画素データを評価部104の画素比較部113−(I,J)にそれぞれ出力する交換器である。
第3図に示す交換器103において、114は、探索分割ブロックの行Jごとにメモリ111−(0,J)〜111−(3,J)から画素データを供給され、内蔵のセレクタ部151−(0,J)〜151−(3,J)によりすべての画素データからそれぞれ1つの画素データを探索ベクトルの水平成分の値に応じて選択し、出力する水平交換部である。115は、水平交換部114のセレクタ部151−(I,0)〜151−(I,3)から、画素データを内蔵のセレクタ部152−(I,0)〜152−(I,3)に供給され、セレクタ部152−(I,0)〜152−(I,3)によりすべての画素データからそれぞれ1つの画素データを探索ベクトルの垂直成分の値に応じて選択し、出力する垂直交換部である。
第4図に示すセレクタ部151−(I,J)において、123は、セレクタ部151−(I,J)の列番号Iと探索ベクトルの水平成分との和を計算し、その計算結果をROM124に出力する加算器である。124は、加算器123からの値に対して4で除した剰余の値を選択信号としてセレクタ125に供給するROMである。125は、ROM124からの選択信号の値SSに応じてメモリ111−(SS,J)からの値を選択し、出力するセレクタである。
第5図に示すセレクタ部152−(I,J)において、126は、セレクタ部152−(I,J)の行番号Jと探索ベクトルの垂直成分との和を計算し、その計算結果をROM127に出力する加算器である。127は、加算器126からの値に対して4で除した剰余の値を選択信号としてセレクタ128に供給するROMである。128は、ROM127からの選択信号の値SSに応じてセレクタ部151−(I,SS)からの値を選択し、出力するセレクタである。
第1図に戻り、5は、現時点で符号化されるフレームの画素データを記憶する符号化フレームメモリである。
106は、現時点で符号化されるフレームを分割した16行16列のブロックのうちのいずれかのブロック(リファレンスブロック)を所定の個数の分割ブロックに分割したときの、その分割ブロックにおける同一の行Iかつ同一の列Jの画素データを記憶するメモリ116−(I,J)を有するリファレンスメモリ部である。すなわち、メモリ116−(I,J)は、分割ブロックの画素の数と同一の数だけ設けられ、リファレンスブロックをM個の分割ブロックに分割した場合、各メモリ116−(I,J)には、各分割ブロックにおける同一の行Iかつ同一の列JのM個の画素データが記憶される。
第6図において、145は、ブロック累積器108の垂直4進カウンタ144より供給される分割ブロックの垂直アドレスrと定数4との積を計算し、その計算結果を出力する乗算器である。146は、乗算器145の出力値と、ブロック累積器108の水平4進カウンタ143より供給される分割ブロックの水平アドレスqとの和を計算し、その計算結果をメモリ116−(I,J)に対する読出しアドレスとしてセレクタ147に出力する加算器である。147は、メモリ116−(I,J)への画素データ書込み時に書込みアドレスを供給され、メモリ116−(I,J)からの画素データ読出し時に読出しアドレスを供給され、書込み/検出切替信号の値に応じて、それらのアドレスのいずれかをメモリ116−(I,J)に供給するセレクタである。
第1図に戻り、104は、リファレンスメモリ部106の各メモリ116−(I,J)(I=0,・・・,3,J=0,・・・,3)の画素データと、交換器103のセレクタ部152−(I,J)からの画素データとをそれぞれ比較する画素比較部113−(I,J)を有する評価部である。
108は、第6図に示す水平4進カウンタ143および垂直4進カウンタ144によりリファレンスブロック内の分割ブロックを水平方向および垂直方向についてカウントしていき、それらのカウント値を分割ブロックの垂直アドレスrおよび水平アドレスqとしてサーチウィンドウメモリ部102、交換器103およびリファレンスメモリ部106に供給するとともに、その評価部104の各画素比較部113−(I,J)の比較結果を分割ブロックごとに一時的に蓄積し、ブロックを構成するすべての分割ブロックに対する上記比較結果をまとめて動きベクトル検出部107に出力するブロック累積器である。
107は、ブロック累積器108からの1ブロック分の比較結果に基づいて、最適な探索ベクトルを動きベクトルとして検出するとともに、サーチウィンドウメモリ部102および交換器103における探索ベクトルを設定する動きベクトル検出部である。例えば、各画素比較部113−(I,J)により2つの画素データの差を算出させ、リファレンスブロックにおけるそれらの差の絶対値の総和が最小であるときの探索ベクトルが動きベクトルとされる。
次に動作について説明する。
第7図は、サーチウィンドウおよび探索分割ブロックの一例を示す図であり、第8図は、実施の形態2における探索分割ブロックおよび探索分割ブロックの水平アドレスおよび垂直アドレスを示す図である。
まず、既符号フレームメモリ1は、サーチウィンドウをリファレンスブロックの分割ブロックと同一の大きさの領域に分割したときの、分割後の領域における同一の行Iかつ同一の列Jの画素データをサーチウィンドウメモリ部102のメモリ111−(I,J)に出力する。
このとき、例えば第7図および第8図に示すように、ブロックを16分割したときの各分割ブロックにブロック内の水平アドレスqおよび垂直アドレスrを割り振るとともに、サーチウィンドウにおける水平アドレスhおよび垂直アドレスvを割り振ると、メモリ111−(I,J)は、水平アドレスhおよび垂直アドレスvの分割ブロックにおける第J行第I列の画素データを、値(14×v+h)のアドレスに記憶する。
次に、動きベクトルの探索を実行する場合には、動きベクトル検出部107から探索ベクトルがサーチウィンドウメモリ部102および交換器103に供給されるとともに、ブロック累積器108から探索分割ブロックの水平アドレスqおよび垂直アドレスrがサーチウィンドウメモリ部102、交換器103およびリファレンスメモリ部106に順次供給される。
サーチウィンドウメモリ部102においては、探索ベクトルの水平成分が加算器131に供給され、探索ベクトルの垂直成分が加算器135に供給される。また、探索分割ブロックの水平アドレスqを4倍にした値が加算器142に供給され、分割ブロックの垂直アドレスrを4倍にした値が加算器150に供給される。
そして、加算器131,133,135,137,140,142,150、減算器132,136、除算器134,138および乗算器139により、供給された探索ベクトルおよび分割ブロックの水平アドレスqおよび垂直アドレスrに対応したメモリ111−(I,J)に対する読出しアドレスが算出される。メモリ111−(I,J)は、供給された読出しアドレスに記憶された画素データを交換器103のセレクタ部151−(0,J)〜151−(3,J)に出力する。
なお、メモリ111−(I,J)に対する読出しアドレスA(I,J)は、xを探索ベクトルの水平成分とし、yを探索ベクトルの垂直成分とし、SWH0をサーチウィンドウの左上角からのリファレンスブロックの左上角の水平方向の位置とし、SWV0をサーチウィンドウの左上角からのリファレンスブロックの左上角の垂直方向の位置としたとき、加算器131,133,135,137,140,142,150、減算器132,136、除算器134,138および乗算器139により、次式に従って計算される。
A(I,J)=(int((SWV0+y−J+r×4+3)/4))×14+int((SWH0+x−I+q×4+3)/4)
ここで、int()は、引数の小数点以下を切り捨てる関数または演算子である。
そして、交換器103においては、水平交換部114の各セレクタ部151−(I,J)が、動きベクトル検出部107より供給された探索ベクトルの水平成分に応じて、メモリ111−(0,J)〜111−(3,J)からの値のいずれかを選択し、選択した値を垂直交換部115のセレクタ部152−(I,0)〜152−(I,3)に出力する。
このとき、各セレクタ部151−(I,J)においては、加算部123およびROM124により、セレクタ部151−(I,J)の列番号Iおよび探索ベクトルの水平成分に基づいて選択信号が計算され、セレクタ125に供給される。そして、その選択信号の値SSに応じて、メモリ111−(SS,J)からの値が出力される。なお、選択信号の値SSは、セレクタ部151−(I,J)の列番号Iおよび探索ベクトルの水平成分xに基づいて、加算部123およびROM124により次式に従って計算される。
SS=mod(I+x,4)
ここで、mod(a,b)はaをbで除算したときの剰余である。
その後、垂直交換部115の各セレクタ部152−(I,J)は、動きベクトル検出部107より供給された探索ベクトルの垂直成分に応じて、セレクタ部151−(I,0)〜151−(I,3)からの値のいずれかを選択し、選択した値を評価部104の画素比較部113−(I,J)に出力する。
このとき、各セレクタ部152−(I,J)においては、加算部126およびROM127により、セレクタ部152−(I,J)の行番号Jおよび探索ベクトルの垂直成分に基づいて選択信号が計算され、セレクタ128に供給される。そして、その選択信号の値SSに応じて、セレクタ部151−(I,SS)からの値が出力される。なお、選択信号の値SSは、セレクタ部152−(I,J)の行番号Jおよび探索ベクトルの垂直成分yに基づいて、加算部126およびROM127により次式に従って計算される。
SS=mod(J+y,4)
一方、符号化フレームメモリ105は、符号化されるフレームを分割したブロックのうちのいずれか1ブロックの画素データを、分割ブロックにおける同一の行Iかつ同一の列Jの画素データごとにメモリ116−(I,J)に記憶させる。
そして、リファレンスメモリ部106のメモリ116−(0,0)〜116−(3,3)は、供給された水平アドレスqおよび垂直アドレスrに対応する分割ブロックの画素データを、1クロックごとに評価部104の画素比較部113−(0,0)〜113−(3,3)にそれぞれ供給する。
このとき、リファレンスメモリ部106においては、乗算器145および加算器146により、供給された水平アドレスqおよび垂直アドレスrから読出しアドレス(=r×4+q)が計算され、セレクタ147を介してメモリ116−(0,0)〜116−(3,3)に供給される。
交換器103およびリファレンスメモリ部106からそれぞれ画素データが供給されると、評価部104の画素比較部113−(I,J)は、交換器103のセレクタ部152−(I,J)からの画素データと、リファレンスメモリ部106のメモリ116−(I,J)からの画素データとの差を計算し、その差をブロック累積部108に供給する。ブロック累積部108は、画素データの差が供給されると、次の分割ブロックを指定するための水平アドレスqおよび垂直アドレスrを出力するとともに、1ブロック分の画素データの差が蓄積されると、その画素データの差を動きベクトル検出部107に出力する。動きベクトル検出部107は、そのときの探索ベクトルに関連づけて、評価部104より供給された画素データの差の絶対値の総和を評価値として記憶する。
そして、動きベクトル検出部107は、所定の順番に基づいて、あるいは既に計算された探索ベクトルと評価値との関係に基づいて、新たな探索ベクトルをサーチウィンドウメモリ部102および交換器103に供給する。
このようにして、動きベクトル検出部107は、所定の順番が終了するまで、あるいは評価値が所定の値以下になるまで探索ベクトルを更新していき、評価値の最も小さいときの探索ベクトルを動きベクトルに決定する。
以上のように、この従来の動きベクトル検出装置では、リファレンスメモリ部106に、リファレンスブロックを分割した分割ブロックを構成する画素データを記憶させ、サーチウィンドウメモリ部102に、符号化されたフレームのうちのサーチウィンドウを分割ブロックと同一の大きさの領域に分割したときの、分割後の領域における同一の行かつ同一の列の画素データごとに、符号化されたフレームのうちのサーチウィンドウの画素データを記憶させ、サーチウィンドウメモリ部102のメモリ111−(I,J)に記憶された分割後の領域における同一の行かつ同一の列の画素データのうちのいずれか1つをそれぞれ選択して、分割ブロックの位置から探索ベクトルだけ離れた位置の探索分割ブロックを選択し、リファレンスメモリ部106に記憶された画素データと、選択された画素データとを画素ごとに比較し、その比較の結果に基づいて動きベクトルを検出するようにする。
従来の動きベクトル検出装置は以上のように構成されているので、評価部104の画素比較部113−(I,J)の数を低減して回路規模を小さくし、装置のコストを低減することができるものの、ブロック全域を構成するすべての分割ブロックについて画素データの比較を実行する必要があり、この点に関して動きベクトルを検出するために要する時間を低減することが困難であるなどの課題があった。
また、従来の動きベクトル検出装置は以上のように構成されているので、双方向予測を実行する場合、前方向の動きベクトルを検出するための装置と後方向の動きベクトルを検出するための装置の2つの装置が必要になり、装置の規模が大きくなるなどの課題があった。
この発明は上記のような課題を解決するためになされたもので、ブロックを構成する複数の画素パターンを構成する画素のデータを記憶する第1の記憶手段と、符号化されたフレームのうちの所定の範囲において所定の画素数おきの所定の数の画素でそれぞれ構成される複数の画素パターンにおける同一位置の画素のデータごとに、符号化されたフレームのうちの所定の範囲の画素のデータを記憶する第2の記憶手段と、所定の探索ベクトルを供給され、その所定の範囲においてその探索ベクトルで指定されたブロックにおける1つの画素パターンを選択する選択手段と、選択手段により選択された画素パターンと、その画素パターンと同一の、第1の記憶手段に記憶された画素パターンとを画素ごとに比較する比較手段と、比較手段による比較の結果に基づいて動きベクトルを検出する検出手段とを備えるようにして、各画素パターンについての比較結果をブロック全域についての比較結果に近似させ、比較結果に必要とされる精度に応じて、必ずしもブロック全域を構成する画素パターンのすべてについて比較を実行する必要がなくなり、短時間で各ブロックについての比較結果が得られ、動きベクトルを短時間で検出することができる動きベクトル検出装置を得ることを目的とする。
また、この発明は上記のような課題を解決するためになされたもので、ブロックを構成する複数の画素パターンまたは複数の分割ブロックを構成する画素のデータを記憶する第1の記憶手段と、符号化されたフレームのうちの所定の範囲を構成する複数の画素パターンまたは複数の分割ブロックにおける同一位置の画素のデータごとに、符号化されたフレームのうちの所定の範囲の画素のデータを記憶する第2の記憶手段と、動きベクトルの候補である複数の探索ベクトルを供給され、その所定の範囲において各探索ベクトルで指定されたブロックにおける同一の画素パターンまたは各分割ブロックを順次選択する選択手段と、選択手段により選択された画素パターンまたは分割ブロックと、その画素パターンまたは分割ブロックと同一の、第1の記憶手段に記憶された画素パターンまたは分割ブロックとを画素ごとに比較する比較手段と、1つの探索ベクトルについて比較手段による全画素パターンまたは全分割ブロックについての比較が完了する以前に、その時点までの画素パターンまたは分割ブロックについての比較結果に応じて、その探索ベクトルについての選択手段および比較手段による処理を中止させ、その探索ベクトルを動きベクトルの候補から削除する探索ベクトル絞込手段と、比較手段による比較の結果に基づいて動きベクトルの候補から動きベクトルを検出する検出手段とを備えるようにして、動きベクトルとならない可能性の高い探索ベクトルを打ち切り、動きベクトルを検出するまでの計算量を低減し、動きベクトルを短時間で検出することができる動きベクトル検出装置を得ることを目的とする。
さらに、この発明は上記のような課題を解決するためになされたもので、ブロックを構成する画素データのうちの所定の数の画素データを記憶する第1の記憶手段と、符号化されたフレームのうち、前方向の動きベクトル検出用の第1の範囲内、および後方向の動きベクトル検出用の第2の範囲内の画素データを記憶する第2の記憶手段と、前方向の探索ベクトルおよび後方向の探索ベクトルを供給され、第2の記憶手段に記憶された画素データのうちの、ブロックの位置から探索ベクトルだけ離れた位置の、ブロックと同一の大きさの範囲の画素データのうちの所定の数の画素データを選択する選択手段と、第1の記憶手段に記憶された所定の数の画素データと、選択手段により選択された所定の数の画素データとを比較する比較手段と、比較手段による比較の結果に基づいて前方向の動きベクトルおよび後方向の動きベクトルを検出する検出手段とを備えるようにして、第2の記憶手段に必要な記憶容量が増加するものの、他の構成要素を増加させることなく、前方向および後方向の動きベクトルを検出することができる動きベクトル検出装置を得ることを目的とする。
発明の開示
この発明に係る動きベクトル検出装置は、ブロックを構成する複数の画素パターンを構成する画素のデータを記憶する第1の記憶手段と、符号化されたフレームのうちの所定の範囲において所定の画素数おきの所定の数の画素でそれぞれ構成される複数の画素パターンにおける同一位置の画素のデータごとに、符号化されたフレームのうちの所定の範囲の画素のデータを記憶する第2の記憶手段と、所定の探索ベクトルを供給され、その所定の範囲においてその探索ベクトルで指定されたブロックにおける1つの画素パターンを選択する選択手段と、選択手段により選択された画素パターンと、その画素パターンと同一の、第1の記憶手段に記憶された画素パターンとを画素ごとに比較する比較手段と、比較手段による比較の結果に基づいて動きベクトルを検出する検出手段とを備えるものである。このことによって、各画素パターンについての比較結果がブロック全域についての比較結果に近似し、比較結果に必要とされる精度に応じて、必ずしもブロック全域を構成する画素パターンのすべてについて比較を実行する必要がなくなり、短時間で各ブロックについての比較結果が得られ、動きベクトルを短時間で検出することができるという効果が得られる。
この発明に係る動きベクトル検出装置は、ブロックを構成する複数の画素パターンまたは複数の分割ブロックを構成する画素のデータを記憶する第1の記憶手段と、符号化されたフレームのうちの所定の範囲を構成する複数の画素パターンまたは複数の分割ブロックにおける同一位置の画素のデータごとに、符号化されたフレームのうちの所定の範囲の画素のデータを記憶する第2の記憶手段と、動きベクトルの候補である複数の探索ベクトルを供給され、その所定の範囲において各探索ベクトルで指定されたブロックにおける同一の画素パターンまたは各分割ブロックを順次選択する選択手段と、選択手段により選択された画素パターンまたは分割ブロックと、その画素パターンまたは分割ブロックと同一の、第1の記憶手段に記憶された画素パターンまたは分割ブロックとを画素ごとに比較する比較手段と、1つの探索ベクトルについて比較手段による全画素パターンまたは全分割ブロックについての比較が完了する以前に、その時点までの画素パターンまたは分割ブロックについての比較結果に応じて、その探索ベクトルについての選択手段および比較手段による処理を中止させ、その探索ベクトルを動きベクトルの候補から削除する探索ベクトル絞込手段と、比較手段による比較の結果に基づいて動きベクトルの候補から動きベクトルを検出する検出手段とを備えるものである。このことによって、動きベクトルとならない可能性の高い探索ベクトルを打ち切り、動きベクトルを検出するまでの計算量を低減し、動きベクトルを短時間で検出することができるという効果が得られる。
この発明に係る動きベクトル検出装置によれば、探索ベクトル絞込手段は、複数の探索ベクトルについての同一の画素パターンまたは同一の分割ブロックごとに、その同一の画素パターンまたは同一の分割ブロックの比較が完了した後ごとに、所定の条件を満足する場合に複数の探索ベクトルのうちの少なくとも1つを動きベクトルの候補から削除する。このことによって、評価値の累積を打ち切るための処理が簡単になるという効果が得られる。
この発明に係る動きベクトル検出装置によれば、比較手段は、比較結果として評価値を算出し、探索ベクトル絞込手段は、各探索ベクトルについて複数の画素パターンでの評価値の累積値を計算し、複数の探索ベクトルについての評価値の累積値を昇順または降順に配列して記憶していき、その配列における評価値の順序に基づいて1または複数の探索ベクトルを動きベクトルの候補から削除する。このことによって、評価値の累積を打ち切る探索ベクトルを選択する際に、改めてすべての探索ベクトルについての評価値の累積値を参照する必要がなく、評価値の累積を打ち切る探索ベクトルの選択を迅速に実行することができるという効果が得られる。
この発明に係る動きベクトル検出装置によれば、比較手段は、比較結果として評価値を算出し、探索ベクトル絞込手段は、複数の探索ベクトルについての評価値の累積値において最小値または最大値の評価値に対応する探索ベクトルを選択し、選択した探索ベクトルについて評価値の累積を実行し、検出手段は、最小値または最大値の評価値の累積回数が所定の回数である場合、その探索ベクトルを動きベクトルとする。このことによって、動きベクトルとなる可能性の高い探索ベクトルについての評価値の累積がより進行していくため、より短時間で動きベクトルを検出することができるという効果が得られる。
この発明に係る動きベクトル検出装置によれば、探索ベクトル絞込手段は、複数の探索ベクトルについての評価値の累積値を昇順または降順に配列して記憶していき、その配列の先頭に対応する探索ベクトルを選択し、選択した探索ベクトルについて評価値の累積を実行し、複数の探索ベクトルについての評価値の累積値を昇順または降順に再配列し、配列の先頭の評価値の累積回数が所定の回数である場合、その探索ベクトルを動きベクトルとする。このことによって、次に評価値の累積を実行する探索ベクトルを選択する際に、単に配列の先頭の探索ベクトルを選択すればよく、各探索ベクトルについての評価値の累積値を参照する必要がなく、評価値の累積を打ち切る探索ベクトルの選択を迅速に実行することができるという効果が得られる。
この発明に係る動きベクトル検出装置は、ブロックを構成する画素データのうちの所定の数の画素データを記憶する第1の記憶手段と、符号化されたフレームのうち、前方向の動きベクトル検出用の第1の範囲内、および後方向の動きベクトル検出用の第2の範囲内の画素データを記憶する第2の記憶手段と、前方向の探索ベクトルおよび後方向の探索ベクトルを供給され、第2の記憶手段に記憶された画素データのうちの、ブロックの位置から探索ベクトルだけ離れた位置の、ブロックと同一の大きさの範囲の画素データのうちの所定の数の画素データを選択する選択手段と、第1の記憶手段に記憶された所定の数の画素データと、選択手段により選択された所定の数の画素データとを比較する比較手段と、比較手段による比較の結果に基づいて前方向の動きベクトルおよび後方向の動きベクトルを検出する検出手段とを備えるものである。このことによって、第2の記憶手段に必要な記憶容量が増加するものの、他の構成要素を増加させることなく、前方向および後方向の動くベクトルを検出することができるという効果が得られる。
発明を実施するための最良の形態
以下、この発明をより詳細に説明するために、この発明を実施するための最良の形態について、添付の図面に従って説明する。
実施の形態1.
第9図は、この発明の実施の形態1による動きベクトル検出装置の構成を示すブロック図である。第10図は、第9図のサーチウィンドウメモリ部におけるメモリの入出力を制御する回路の一例を示すブロック図である。第11図は、第9図の交換器の構成例を示すブロック図であり、第12図は、第11図の水平交換部におけるセレクタ部の構成例を示すブロック図であり、第13図は、第11図の垂直交換部におけるセレクタ部の構成例を示すブロック図である。
なお、この実施の形態1による動きベクトル検出装置は、リファレンスブロックが16行16列であり、リファレンスブロックが16の画素パターンで構成される場合のものである。
第9図において、1は、H.261方式、MPEG方式などの画像処理方式においてフレーム間予測符号化により既に符号化されたフレームの画素データであって、現時点で符号化されるフレームにおける予測のための画素データを記憶する既符号フレームメモリである。なお、現時点で符号化されるフレームの予測においては、符号化されるフレームを分割した各ブロックに対する動きベクトルが検出される。すなわち、現時点において符号化されるフレームにおけるそのブロックの位置と、既に符号化されたフレームにおけるそのブロックに対応する範囲の位置との水平方向および垂直方向の距離が動きベクトルとして検出される。
2は、サーチウィンドウ内の、所定の画素数おきの所定の数の画素でそれぞれ構成される複数の画素パターンにおける同一位置の画素のデータごとに、符号化されたフレームのうちのサーチウィンドウを構成する画素のデータを記憶するサーチウィンドウメモリ部(第2の記憶手段、選択手段)である。
この実施の形態1におけるサーチウィンドウメモリ部2において、11−(I,J)は、サーチウィンドウをリファレンスブロックと同一サイズに分割した各分割ブロックを構成する複数の画素パターンにおける同一位置の画素データを記憶するメモリである。例えば、サーチウィンドウのサイズが64画素×32画素であり、リファレンスブロックのサイズが16画素×16画素であり、縦横3画素おきの画素で各画素パターンが構成される場合には、サーチウィンドウがまず、縦2つ横4つの合計8つのブロックに分割され、その各ブロック(縦16画素、横16画素)における縦横4画素の16の領域(I,J)(I=0,・・・,3、J=0,・・・,3)の画素データが、16のメモリ11−(I,J)にそれぞれ記憶される。
すなわち、この場合、各ブロックにおいて、p(p=0,・・・,3)およびq(q=0,・・・,3)として、各画素パターンは、画素(50+p,0+q)、画素(4+p,0+q)、画素(8+p,0+q)、画素(12+p,0+q)、画素(0+p,4+q)、画素(4+p,4+q)、画素(8+p,4+q)、画素(12+p,4+q)、画素(0+p,8+q)、画素(4+p,8+q)、画素(8+p,8+q)、画素(12+p,8+q)、画素(0+p,12+q)、画素(4+p,12+q)、画素(8+p,12+q)および画素(12+p,12+q)の16の画素で構成される。これにより、16のメモリ11−(I,J)から、同時に、16の画素で構成される画素パターンを構成する画素データを読み出すことが可能になる。
第10図において、41は、メモリ11−(I,J)への画素データ書込み時に書込みアドレスを供給され、メモリ11−(I,J)からの画素データ読出し時に読出しアドレスを供給され、書込み/検出切替信号の値に応じて、それらのアドレスのいずれかをメモリ11−(I,J)に供給するセレクタである。42は、メモリ11−(0,0)〜11−(3,3)から、1つの画素パターンを構成する画素データを同時に出力させる際のメモリ11−(I,J)の読出しアドレスA(I,J)を式(1)に従って演算する読出しアドレス演算部である。
A(I,J)=(int((y1+12−4×j)/16)×4+mod(y1,4))×16+int((x1+12−4×i)/16)×4+mod(x1,4) ・・・(1)
ここで、x1=24+x+p、y1=8+y+qとし、(x,y)を探索ベクトルとする。なお、この式はサーチウィンドウの原点に対して動きが0である位置が(24,8)である場合のものである。
第9図に戻り、3は、サーチウィンドウメモリ部2のメモリ11−(0,0)〜11−(3,3)に記憶された画素データのうちの、リファレンスブロックの位置から探索ベクトルだけ離れた位置の探索ブロックにおけるいずれかの画素パターンを構成する画素データを供給され、その画素パターンを構成する16個の画素データを所定の順序に配列して評価部4の画素比較部13−(I,J)にそれぞれ出力する交換器(選択手段)である。
第11図に示す交換器3において、14は、行Jごとにメモリ11−(0,J)〜11−(3,J)から画素データを供給され、内蔵のセレクタ部51−(0,J)〜51−(3,J)によりすべての画素データからそれぞれ1つの画素データを探索ベクトルの水平成分の値に応じて選択し、出力する水平交換部である。15は、水平交換部14のセレクタ部51−(I,0)〜51−(I,3)から、画素データを内蔵のセレクタ部52−(I,0)〜52−(I,3)に供給され、セレクタ部52−(I,0)〜52−(I,3)によりすべての画素データからそれぞれ1つの画素データを探索ベクトルの垂直成分の値に応じて選択し、出力する垂直交換部である。
第12図に示すセレクタ部51−(I,J)において、21は、セレクタ部51−(I,J)の番号I、探索ベクトルの水平成分xおよび画素パターンの水平方向のオフセットpに基づいて式(2)に従って演算した値Shを有する選択信号を生成する選択信号生成部である。
Sh=mod(int(24+x+p+4×I)/4,4) ・・・(2)
22は、選択信号生成部21からの選択信号の値Shに応じてメモリ11−(Sh,J)からの値を選択し、出力するセレクタである。
第13図に示すセレクタ部52−(I,J)において、26は、セレクタ部52−(I,J)の番号J、探索ベクトルの垂直成分yおよび画素パターンの垂直方向のオフセットqに基づいて式(3)に従って演算した値Svを有する選択信号を生成する選択信号生成部である。
Sv=mod(int(8+y+q+4×J)/4,4) ・・・(3)
27は、選択信号生成部26からの選択信号の値Svに応じてセレクタ部51−(I,Sv)からの値を選択し、出力するセレクタである。
第9図に戻り、5は、現時点で符号化されるフレームの画素データを記憶する符号化フレームメモリである。
6は、現時点で符号化されるフレームを分割した16行16列のブロックのうちのいずれかのブロック(リファレンスブロック)を構成する複数の画素パターンにおける同一位置の画素のデータをそれぞれ記憶するメモリ16−(I,J)を有するリファレンスメモリ部(第1の記憶手段)である。すなわち、メモリ16−(I,J)は、画素パターンを構成する画素の数と同一の数だけ設けられ、リファレンスブロックがM個の画素パターンで構成される場合、各メモリ16−(I,J)には、各画素パターンにおける同一位置のM個の画素データが記憶される。
4は、リファレンスメモリ部6の各メモリ16−(I,J)(I=0,・・・,3,J=0,・・・,3)の画素データと、交換器3のセレクタ部52−(I,J)からの画素データとをそれぞれ比較する画素比較部13−(I,J)を有する評価部(比較手段)である。
8は、画素パターンのオフセット値の水平成分pおよび垂直成分qを所定の順番に従って順次選択していき、それらの値p,qを、サーチウィンドウメモリ部2、交換器3およびリファレンスメモリ部6に供給するとともに、評価部4の各画素比較部13−(I,J)の比較結果を画素パターンごとに一時的に蓄積し、ブロックを構成するすべての画素パターンに対する上記比較結果をまとめて動きベクトル検出部7に出力する画素パターン累積器(検出手段)である。
7は、画素パターン累積器8からの1ブロック分の比較結果に基づいて、サーチウィンドウメモリ部2および交換器3における次の探索ベクトルを設定し、最適な探索ベクトルを動きベクトルとして検出する動きベクトル検出部(検出手段)である。例えば、各画素比較部13−(I,J)により2つの画素データの差を算出させ、リファレンスブロックにおけるそれらの差の絶対値の総和が最小であるときの探索ベクトルが動きベクトルとされる。
次に動作について説明する。
第14図は、サーチウィンドウメモリ部における各画素データのアドレスとその各画素データが記憶されるメモリとの対応関係の一例、およびサーチウィンドウにおける画素パターンの一例を示す図である。第15図は、リファレンスメモリ部における各画素データのアドレスとその各画素データが記憶されるメモリとの対応関係の一例、およびサーチウィンドウにおける画素パターンの一例を示す図である。第16図は、画素パターンの選択順序の一例を示す図である。
サーチウィンドウメモリ部2は、複数の画素パターンにおける同一位置の画素のデータごとに、既符号フレームメモリ1における符号化されたフレームのうちのサーチウィンドウを構成する画素のデータを記憶する。すなわち、1つの画素パターンを構成する各画素は互いに異なるメモリ11−(I,J)に記憶される。
例えば第14図に示すように、サーチウィンドウメモリ部2におけるメモリ11−(I,J)は、サーチウィンドウをリファレンスブロックと同一サイズに分割した各分割ブロックを構成する複数の画素パターンにおける同一位置の画素データを記憶する。この場合、第14図に示すように、サーチウィンドウのサイズが64画素×32画素であり、リファレンスブロックのサイズが16画素×16画素であり、縦横3画素おきの画素で各画素パターンが構成される場合には、サーチウィンドウがまず、縦2つ横4つの合計8つのブロックに分割され、その各ブロック(縦16画素、横16画素)における縦横4画素の16の領域(I,J)(I=0,・・・,3、J=0,・・・,3)の画素データが、16のメモリ11−(I,J)にそれぞれ記憶される。
そして、サーチウィンドウメモリ部2の読出しアドレス演算部42は、画素パターン累積部8からの画素パターンのオフセット(p,q)および動きベクトル検出部7からの探索ベクトル(x,y)に基づいて、式(1)に従ってメモリ11−(I,J)の読出しアドレスA(I,J)を演算し、セレクタ41に供給する。画素データの読み出し時には、セレクタ41を介して、その読み出しアドレスがメモリ11−(I,J)に供給され、そのアドレスの画素データが交換器3に供給される。例えば第14図には、探索ベクトルが(19,−6)であり、オフセットが(2,1)である場合の画素パターンが示されている。
交換器3は、サーチウィンドウメモリ部2からの、画素パターンを構成する画素データを所定の順序に配列させて評価部4の画素比較部13−(I,J)にそれぞれ出力する。
このとき、交換器3では、水平交換部14が、まず、行Jごとにメモリ11−(0,J)〜11−(3,J)から画素データを供給され、内蔵のセレクタ部51−(0,J)〜51−(3,J)によりすべての画素データからそれぞれ1つの画素データを探索ベクトルの水平成分の値に応じて選択し、垂直交換部15へ出力する。このとき、各セレクタ部51−(I,J)においては、選択信号生成部21により式(2)に従って演算された値Shを有する選択信号がセレクタ22に供給され、セレクタ22により、その選択信号の値Shに応じてメモリ11−(Sh,J)からの値が選択される。
交換器3では次に、垂直交換部15が、水平交換部14のセレクタ部51−(I,0)〜51−(I,3)からの画素データを、内蔵の各セレクタ部52−(I,J)によりすべての画素データからそれぞれ1つの画素データを探索ベクトルの垂直成分の値に応じて選択し、出力する。このとき、セレクタ部52−(I,J)では、選択信号生成部26により式(3)に従って演算された値Svを有する選択信号がセレクタ27に供給され、セレクタ27により、その選択信号の値Svに応じてセレクタ部51−(I,Sv)からの値が選択される。
このようにして探索ベクトル(x,y)およびオフセット(p,q)に応じて選択された画素パターンを構成する画素のデータが評価部4に供給される。
一方、リファレンスメモリ部6は、符号化フレームメモリ5から、現時点で符号化されるフレームを分割した16行16列のブロックのうちのいずれかのブロック(リファレンスブロック)を構成する複数の画素パターンにおける同一位置の画素のデータをそれぞれ読み出し、内蔵のメモリ16−(I,J)に記憶する。すなわち、1つの画素パターンを構成する各画素は互いに異なるメモリ16−(I,J)に記憶される。そして、リファレンスメモリ部16は、例えば第15図に示すように、画素パターン累積器8からのオフセット(p,q)(第15図の場合、p=2、q=1)で指定された画素パターンを、交換器3から評価部4への画素データの配列と同様の配列で、評価部4の画素比較部13−(I,J)にそれぞれ出力する。
そして、評価部4は、リファレンスメモリ部6の各メモリ16−(I,J)からの画素データと、交換器3のセレクタ部52−(I,J)からの画素データとを画素比較部13−(I,J)でそれぞれ比較し、その比較結果である評価値を画素パターン累積器8に供給する。このときの評価値は、例えば、リファレンスメモリ部6の各メモリ16−(I,J)からの画素データと、交換器3のセレクタ部52−(I,J)からの画素データとの差の絶対値の総和とされる。なお、このときの評価値を、両者の画素データとの差の2乗の総和としてもよい。
画素パターン累積器8は、画素パターンのオフセット値の水平成分pおよび垂直成分qを所定の順番に従って順次選択していき、それらの値p,qを、サーチウィンドウメモリ部2、交換器3およびリファレンスメモリ部6に供給し、各オフセット値p,qの場合に評価部4の各画素比較部13−(I,J)からの評価値を累積し、各探索ベクトルについて、ブロックを構成するすべての画素パターンに対する評価値をまとめて動きベクトル検出部7に出力する。
このとき、画素パターン累積器8は、画素パターンのオフセット(p,q)を、例えば第16図(a)に示すように、片寄りなく選択していく。これにより、3回選択されたオフセットに応じた3つの画素パターンは第16図(b)に示すようになる。
動きベクトル検出部7は、画素パターン累積器8からの1ブロック分の評価値に基づいて、サーチウィンドウメモリ部2および交換器3における次の探索ベクトルを設定し、最適な探索ベクトルを動きベクトルとして検出する。
以上のように、この実施の形態1によれば、リファレンスメモリ部6に、ブロックを構成する複数の画素パターンを構成する画素のデータを記憶し、サーチウィンドウメモリ部2に、符号化されたフレームのうちの所定のサーチウィンドウにおいて所定の画素数おきの所定の数の画素でそれぞれ構成される複数の画素パターンにおける同一位置の画素のデータごとに、そのサーチウィンドウにおける画素データを記憶し、動きベクトル検出部7からの探索ベクトルに応じてサーチウィンドウメモリ部2および交換器3により1つの画素パターンを選択し、評価部4により、その選択した画素パターンと、その画素パターンと同一の、リファレンスメモリ部6に記憶された画素パターンとを画素ごとに比較し、画素パターン累積器8により、複数の画素パターンについての評価部4による比較結果をまとめ、動きベクトル検出部7により、それらの比較の結果に基づいて動きベクトルを検出するようにしたので、ブロックにおける画素のうち、比較に使用される画素がブロック全域に分散しているため、各画素パターンについての比較結果がブロック全域についての比較結果に近似し、比較結果に必要とされる精度に応じて、必ずしもブロック全域を構成する画素パターンのすべてについて比較を実行する必要がなくなり、短時間で各ブロックについての比較結果が得られ、動きベクトルを短時間で検出することができるという効果が得られる。
第17図は、分割ブロックにより使用される画素、および画素パターンにより使用される画素の一例を示す図である。すなわち、第17図に示すように、従来のように分割ブロックについて比較を実行する場合(第17図(a))には、ブロックにおいて局所的に画素データが参照されるが、この実施の形態1のように上述の画素パターンについて比較を実行する場合(第17図(b))には、ブロックにおいて均一的に画素データが参照される。
実施の形態2.
この発明の実施の形態2による動きベクトル検出装置は、1つの画素パターンについて複数の探索ベクトルでの評価値の累積を計算していき、評価値の累積値の小さい探索ベクトルについての評価値の累積を打ち切り、その探索ベクトルを動きベクトルの候補から削除するようにしたものである。
第18図は、この発明の実施の形態2による動きベクトル検出装置の構成を示すブロック図である。第18図において、7Aは、動きベクトル検出部7と同様に動作する他、1つの探索ベクトルについて全画素パターンまたは全分割ブロックについての評価部4による評価値の算出が完了する以前に、その時点までの画素パターンについての評価値に応じて、その探索ベクトルについての交換器3および評価部4による処理を中止させ、その探索ベクトルを動きベクトルの候補から削除する動きベクトル検出部(検出手段、探索ベクトル絞込手段)である。
第19図は、この実施の形態2における動きベクトル検出部7Aおよび画素パターン累積器8の構成例を示すブロック図である。第19図において、61は評価部4からの評価値と、記憶手段66からの過去の評価値の累積値とを加算する加算器であり、66は各探索ベクトルについての評価値の累積回数および累積値を記憶するレジスタ、メモリなどの記憶手段であり、67は各探索ベクトルについての評価値の累積回数および累積値に基づいて評価値の計算を打ち切る探索ベクトルを決定するシーケンサ、プロセッサなどの演算手段である。
なお、第18図におけるその他の構成要素については実施の形態1によるものと同様であるので、その説明を省略する。
次に動作について説明する。
動きベクトル検出部7Aは、探索ベクトルごとに全画素パターンに対する評価値の累積値を連続して計算させるのではなく、各画素パターンのオフセット(p,q)について探索ベクトル(x,y)を変化させて、各画素パターンのオフセット(p,q)で複数の探索ベクトルについて並行して計算させていく。
このとき、演算手段67は、各画素パターンのオフセット(p,q)について探索ベクトル(x,y)を変化させて、そのオフセット(p,q)をサーチウィンドウメモリ部2、交換器3およびリファレンスメモリ部6に供給し、その探索ベクトル(x,y)をサーチウィンドウメモリ部2および交換器3に供給し、その探索ベクトルについての評価値の累積値を記憶手段66から加算器61へ供給させる。
そして、そのオフセットおよび探索ベクトルに対する評価値が評価部4から加算器61に供給され、評価値の累積値が計算され、その値で記憶手段66に記憶されている評価値の累積値が更新される。第20図は記憶手段66に記憶された各探索ベクトルについての評価値の累積回数と累積値などの一例を示す図である。
また、演算手段67は、各探索ベクトルについての評価値の累積値に基づいて、評価値の累積を打ち切る探索ベクトルを選択し、選択した探索ベクトルについては以降の評価値の計算を実行させず、動きベクトルの候補から削除する。
なお、その他の構成要素の動作については実施の形態1によるものと同様であるので、その説明を省略する。
以上のように、この実施の形態2によれば、動きベクトル検出部8Aは各画素パターンについて複数の探索ベクトルを順次選択し、各探索ベクトルに対して、その画素パターンでの画素ごとの比較を実行させ、1つの探索ベクトルについて全画素パターンの比較が完了する以前に、その時点までの画素パターンについての比較結果に応じて、その探索ベクトルについての以降の画素パターンについての比較を打ち切り、その探索ベクトルを動きベクトルの候補から削除し、残った探索ベクトルから比較の結果に基づいて動きベクトルを検出するようにしたので、動きベクトルとならない可能性の高い探索ベクトルを打ち切り、動きベクトルを検出するまでの計算量を低減し、動きベクトルを短時間で検出することができるという効果が得られる。
なお、ブロックを複数の画素パターンではなく従来の技術のように複数の分割ブロックに分割して、1つの分割ブロックについて複数の探索ベクトルでの評価値の累積を計算していき、評価値の累積値の低い探索ベクトルでの評価値の累積を打ち切り、その探索ベクトルを動きベクトルの候補から削除するようにしたも同様の効果が得られる。
実施の形態3.
この発明の実施の形態3による動きベクトル検出装置は、動きベクトル検出部7Aの演算手段67が、各累積回数において、各探索ベクトルについての評価値の累積値に基づいて、評価値の累積を打ち切る探索ベクトルを選択し、動きベクトルの候補から削除するようにしたものである。
なお、実施の形態3による動きベクトル検出装置の構成については、実施の形態2によるものと同様であるので、その説明を省略する。
次に動作について説明する。
第21図は、実施の形態3における評価値の累積の打ち切りの一例を説明する図である。
動きベクトル検出部7Aの演算手段67は、まず、所定の数の探索ベクトルについての第1回目の評価値の累積の後、それらの探索ベクトルのうちの、評価値の小さいもの16個以外のものを削除する。例えば第21図においては、探索ベクトル(x0,y0)〜(x15,y15)以外の探索ベクトルについての評価値の累積が打ち切られる。
次に、動きベクトル検出部7Aの演算手段67は、その16個の探索ベクトルについて第2回目の評価値の累積を実行させる。
そして第2回目から所定の第8回目までの各回数の評価値の累積の後に、演算手段67は、評価値の累積を継続している探索ベクトルについての評価値の累積値の平均値の1.5倍以上の累積値となっている探索ベクトルについての評価値の累積を打ち切る。例えば第21図においては、第2回目の評価値の累積の後、探索ベクトル(x4,y4)および探索ベクトル(x7,y7)についての評価値の累積が打ち切られ、第3回目の評価値の累積の後、探索ベクトル(x11,y11)、探索ベクトル(x13,y13)および探索ベクトル(x15,y15)についての評価値の累積が打ち切られ、第4回目の評価値の累積の後、探索ベクトル(x1,y1)、探索ベクトル(x12,y12)および探索ベクトル(x14,y14)についての評価値の累積が打ち切られ、第5回目の評価値の累積の後、探索ベクトル(x9,y9)についての評価値の累積が打ち切られる。
その後、第9回目以降の評価値の累積では、演算手段67は、評価値の累積を継続している探索ベクトルのうち、評価値の累積値が最大である1つの探索ベクトルについての評価値の累積を打ち切る。ただし、評価値の累積を継続している探索ベクトルの数が2になった場合、探索ベクトルについての評価値の累積の打ち切りは実行しない。そして最後まで残った探索ベクトルのうち、評価値が最小であるものが動きベクトルとされる。
例えば第21図においては、第9回目の評価値の累積の後、探索ベクトル(x6,y6)についての評価値の累積が打ち切られ、第10回目の評価値の累積の後、探索ベクトル(x0,y0)についての評価値の累積が打ち切られ、第11回目の評価値の累積の後、探索ベクトル(x10,y10)についての評価値の累積が打ち切られ、第12回目の評価値の累積の後、探索ベクトル(x2,y2)についての評価値の累積が打ち切られ、第13回目の評価値の累積の後、探索ベクトル(x8,y8)についての評価値の累積が打ち切られる。これにより、第2回目以降では、評価値の累積の処理は全体で101(=16+14+11+8+7+7+7+7+6+5+4+3+2+2+2)回で済む。
なお、その他の構成要素の動作については実施の形態2によるものと同様であるので、その説明を省略する。また、各累積回数における、評価値の累積の打ち切りの条件については上述の方法に限定されるものではなく、初回および最終回での探索ベクトルの数、条件を変更する累積回数などはもちろん変更してもよい。
以上のように、この実施の形態3によれば、動きベクトル検出部7Aの演算手段67が、各累積回数において、各探索ベクトルについての評価値の累積値に基づいて、評価値の累積を打ち切る探索ベクトルを選択し、動きベクトルの候補から削除するようにしたので、評価値の累積を打ち切るための処理が簡単になるという効果が得られる。
実施の形態4.
この発明の実施の形態4による動きベクトル検出装置は、実施の形態3による動きベクトル検出装置において、複数の探索ベクトルについての評価値の累積値を昇順または降順に配列して記憶していき、その配列における評価値の順序に基づいて1または複数の探索ベクトルを動きベクトルの候補から削除するようにしたものである。
第22図は、実施の形態4における動きベクトル検出部7Aおよび画素パターン累積器8Aの記憶手段66の構成を示すブロック図である。第22図に示す動きベクトル検出部7Aにおいて、71−1〜71−(n+1)は記憶手段66としてのシフトレジスタを構成する(n+1)個(例えば17個)の記憶部である。第23図は、第22図における各記憶部の構成例を示すブロック図である。第23図に示す各記憶部71において、81はレジスタ84に記憶された累積データのうちの累積値E(i)と、画素パターン累積器8Aからの累積データのうちの累積値E(new)とを比較する比較器であり、82は内蔵される記憶部71−iの比較器81からの比較結果、前段の記憶部71−(i−1)の比較器81からの比較結果、および後段の記憶部71−(i+1)の比較器81からの比較結果に基づいて、前段の記憶部71−(i−1)からの累積データ、後段の記憶部71−(i+1)からの累積データ、内蔵される記憶部71−iの累積データ、画素パターン累積器8Aからの新たな累積データ、および所定の最大値を累積値として有する累積データのいずれかを選択させるための選択信号を生成する制御回路であり、83は制御回路82からの選択信号に基づいていずれかの累積データを選択するセレクタであり、84は累積データを記憶するレジスタである。
第22図において、8Aは評価部4から評価値を供給され、また記憶手段66における第1番目の記憶部71−1からの累積データを供給され、その累積データにおける評価値の累積値に評価部4からの評価値を累積して新たな累積データを生成し、各記憶部71−iに供給する画素パターン累積器である。
なお、実施の形態4におけるその他の構成要素については、実施の形態2によるものと同様であるので、その説明を省略する。
次に動作について説明する。
初期状態としてまず演算手段67は、各記憶部71−iの制御回路82を制御してセレクタ83に所定の最大値を有する累積データを選択させ、レジスタ84に選択させる。
次にn個の探索ベクトルについての第1回目の評価値の累積における動きベクトル検出部7Aの動作について説明する。画素パターン累積器8Aから、評価部4からの評価値、現在の探索ベクトルおよび累積回数(=1)で構成される新たな累積データが記憶部71−1〜71−(n+1)の比較器81およびセレクタ83に供給される。
各記憶部71−iの比較器81は、レジスタ84に記憶されている累積データのうちの累積値E(i)と、画素パターン累積器8Aからの累積データのうちの累積値E(new)とを比較し、その比較結果、すなわち、E(i)>E(new)であるか否かを制御回路82、並びに、前段および後段の記憶部71−(i−1),71−(i+1)の制御回路82に供給する。
そして制御回路82は、E(i)>E(new)ではない場合、レジスタ84の累積データを選択する選択信号を生成し、E(i)>E(new)である場合であって、i>1についてE(i−1)>E(new)ではない場合、画素パターン累積器8Aからの新たな累積データを選択する選択信号を生成し、i>1についてE(i−1)>E(new)である場合、前段の記憶部71−(i−1)のレジスタ84からの累積データを選択する選択信号を生成する。制御回路82は選択信号を生成するとセレクタ83に供給する。セレクタ83はその選択信号に応じてレジスタ84からの累積データ、画素パターン累積器8Aからの累積データおよび前段の記憶部71−(i−1),71−(i+1)からの累積データのうちのいずれかを選択し、レジスタ84に供給する。レジスタ84は所定のクロック信号CLKに同期して、記憶している累積データを、供給された累積データで更新する。
これにより、第1回目の評価値の累積により、n個の探索ベクトルについての評価値が記憶手段66において昇順に記憶される。
次に第2回目以降の評価値の累積における動きベクトル検出部7Aの動作について説明する。
第1番目の記憶部71−1、すなわち累積値が最小である累積データを有する記憶部からその累積データが演算手段67および画素パターン累積器8Aに供給される。
そして、演算手段67はその累積データにおける探索ベクトルおよび次の画素パターンを指定して、評価値を演算させる。その評価値が評価部4から供給されると、画素パターン累積器8Aは、記憶手段66からの累積データにおける評価値に、その評価部4からの評価値を累積し、累積回数を1だけ増加させて、新たな累積データを生成し、記憶手段66の各記憶部71−iに供給する。
このとき、演算手段67は、記憶部71−1〜71−(n+1)の制御回路82を制御して、第(n+1)番目の記憶部71−(n+1)のレジスタ84に、その新たな累積データを記憶させる。そして、演算手段67は、記憶部71−1〜71−(n+1)のレジスタ84に記憶された累積データをシフトさせ、記憶部71−(i+1)(i=1,・・・,n)のレジスタ84に記憶された累積データを記憶部71−iのレジスタ84に記憶させる。
この時点では、記憶部71−1〜71−(n−1)には、累積回数が1である累積データが記憶されており、記憶部71−nには、累積回数が2である累積データが記憶されている。
次に、第1番目の記憶部71−1から累積データ(累積回数が1である累積データのうちの累積値が最小であるもの)が演算手段67および画素パターン累積器8Aに供給される。
そして、演算手段67はその累積データにおける探索ベクトルおよび次の画素パターンを指定して、評価値を演算させる。その評価値が評価部4から供給されると、画素パターン累積器8Aは、記憶手段66からの累積データにおける評価値に、その評価部4からの評価値を累積し、累積回数を1だけ増加させて、新たな累積データを生成し、記憶手段66の各記憶部71−iに供給する。
このとき、演算手段67は、累積回数が2である累積データを記憶する記憶部71−nの制御回路82のみを動作させ、新たな累積値E(new)がレジスタ84の累積値E(n)以上であるか否かを判断させ、新たな累積値E(new)がレジスタ84の累積値E(n)以上である場合、記憶部71−2〜71−nのレジスタ84の累積データを記憶部71−1〜71−(n−1)のレジスタ84に順次記憶させていき、新たな累積データを記憶部71−nのレジスタ84に記憶させる。一方、新たな累積値E(new)がレジスタ84の累積値E(n)より小さい場合、演算手段67は、記憶部71−2〜71−(n−1)のレジスタ84の累積データをシフトさせ、記憶部71−1〜71−(n−2)のレジスタ84に順次記憶させていき、新たな累積データを記憶部71−(n−1)のレジスタ84に記憶させる。
この時点では、記憶部71−1〜71−(n−2)には累積回数が1である累積データが記憶され、記憶部71−(n−1),71−nには累積回数が2である累積データが記憶されている。
以下、第2回目の評価値の累積では、同様に、記憶部71−1に順次シフトされてくる第m番目の探索ベクトルについて、評価値が計算され、新たな累積データが生成され、演算手段67は、累積回数が2である累積データを記憶する記憶部71−(n−m+1)〜71−nの制御回路82のみを動作させ、新たな累積値E(new)がレジスタ84の累積値E(j)(j=n−m+1,・・・,n−1)以上であり、かつ新たな累積値E(new)がレジスタ84の累積値E(j+1)より小さい場合(また、新たな累積値E(new)がレジスタ84の累積値E(j)(j=n)以上である場合)、記憶部71−2〜71−jのレジスタ84の累積データをシフトさせ、記憶部71−1〜71−(j−1)のレジスタ84に順次記憶させていき、新たな累積データを記憶部71−jのレジスタ84に記憶させる。この処理を第n(m=n)番目の探索ベクトルについてまで繰り返し実行した場合、第2回目の評価値の累積が完了し、記憶部71−1〜71−nに、累積回数が2であるn個の累積データが昇順に記憶された状態になる。
ここまでで、演算手段67は、すべて(n個)の探索ベクトルについての累積回数が1である累積データを供給されているので、それらの累積データにおける累積値に関して所定の条件を満たすか否かを判断して、評価値の累積を打ち切る探索ベクトルを決定する。評価値の累積を打ち切る探索ベクトルがある場合には、評価値の累積を打ち切る探索ベクトルの数をDとすると、演算手段67は、探索ベクトルの数nの値を値(n−D)に更新する。
その後、第2回目の評価値の累積と同様にして第3回目以降の累積を実行する。
以上のように、この実施の形態4によれば、複数の探索ベクトルについての評価値の累積値を昇順または降順に配列して記憶していき、その配列における評価値の順序に基づいて1または複数の探索ベクトルを動きベクトルの候補から削除するようにしたので、評価値の累積を打ち切る探索ベクトルを選択する際に、改めてすべての探索ベクトルについての評価値の累積値を参照する必要がなく、評価値の累積を打ち切る探索ベクトルの選択を迅速に実行することができるという効果が得られる。
実施の形態5.
この発明の実施の形態5による動きベクトル検出装置は、複数の探索ベクトルについての評価部4による評価値の累積値において最小値または最大値の評価値に対応する探索ベクトルを選択し、選択した探索ベクトルについて評価値の累積を実行し、最小値または最大値の評価値の累積回数が所定の回数である場合、その探索ベクトルを動きベクトルの候補とするようにしたものである。
なお、実施の形態5による動きベクトル検出装置の構成については実施の形態2によるものと同様であり、動きベクトル検出部7Aの動作のみが異なる。
次に動作について説明する。
第24図は、実施の形態5における評価値の累積の順序の一例を示す図である。
動きベクトル検出部7Aの演算手段67は、まず、所定の数の探索ベクトルについての第1回目の評価値の累積の後、それらの探索ベクトルのうちの、評価値の小さいもの16個以外のものを削除する。
次に、動きベクトル検出部7Aの演算手段67は、その16個の探索ベクトルについて第2回目以降の評価値の累積を実行させる。
そして第2回目以降の評価値の累積では、演算手段67は、16個の探索ベクトルのうち、累積回数に拘わらず評価値の累積値が最小である探索ベクトルを選択し、その探索ベクトルについて次の画素パターンをオフセットで指定して評価値を計算させ、その評価値を累積し、評価値の累積値を更新する。
演算手段67は、評価値の累積値が最小である探索ベクトルの累積回数が所定の回数(画素パターンの数と同数)である探索ベクトルが出現するまで、評価値の累積値が最小である探索ベクトルについて次の画素パターンの評価値を累積し、評価値の累積値を更新し、評価値の累積値が最小である探索ベクトルの累積回数が所定の回数(画素パターンの数)である探索ベクトルを動きベクトルとする。
例えば第24図に示すように、括弧内に示す第2回目以降の評価値の累積における累積の順序で、評価値を計算する探索ベクトルが選択されていき、第93番目に、画素パターン数と同数(=16)の累積回数である探索ベクトル(x5,y5)が、累積値が最小である探索ベクトルとして出現するので、この探索ベクトル(x5,y5)が動きベクトルとされる。これにより、第2回目以降では、評価値の累積の処理は全体で93回で済む。
なお、その他の構成要素の動作については実施の形態2によるものと同様であるので、その説明を省略する。また、初回および第2回目の評価値の累積での探索ベクトルの数などはもちろん変更してもよい。また、ここでは、評価値が最小となる探索ベクトルを動きベクトルとしているが、評価値の計算のしかたによっては評価値が最大となる探索ベクトルが動きベクトルとされることもある。
以上のように、この実施の形態5によれば、複数の探索ベクトルについての評価部4による評価値の累積値において最小値または最大値の評価値に対応する探索ベクトルを選択し、選択した探索ベクトルについて評価値の累積を実行し、最小値または最大値の評価値の累積回数が所定の回数である場合、その探索ベクトルを動きベクトルの候補とするようにしたので、動きベクトルとなる可能性の高い探索ベクトルについての評価値の累積がより進行していくため、より短時間で動きベクトルを検出することができるという効果が得られる。また、常に累積値が最小である探索ベクトルが選択されるので、確実に、所定の累積回数で累積値が最小である探索ベクトルが動きベクトルとされる。
実施の形態6.
この発明の実施の形態6による動きベクトル検出装置は、実施の形態5による動きベクトル検出装置において、複数の探索ベクトルについての評価値の累積値を昇順または降順に配列して記憶していき、その配列の先頭に対応する探索ベクトルを選択し、選択した探索ベクトルについて評価値の累積を実行し、複数の探索ベクトルについての評価値の累積値を昇順または降順に再配列し、配列の先頭の評価値の累積回数が所定の回数である場合、その探索ベクトルを動きベクトルとするようにしたものである。
第25図は、実施の形態6による動きベクトル検出装置における動きベクトル検出部7Aの構成例を示すブロック図である。第25図において、71−1〜71−nはn個(例えば16個)の探索ベクトルについての評価値の累積値が昇順になるようにn個の累積データを記憶するシフトレジスタを構成するn個の記憶部であり、67は記憶部71−1の累積データにおける探索ベクトルについて評価値の累積を実行させ、複数の探索ベクトルについての評価値の累積値を昇順に再配列させ、配列の先頭の評価値の累積回数が所定の回数である場合、その探索ベクトルを動きベクトルとする演算手段である。
なお、実施の形態6による動きベクトル検出装置におけるその他の構成要素については実施の形態5によるものと同様であるので、その説明を省略する。また、記憶部71−iは、第23図に示す記憶部71−iと同様である。
次に動作について説明する。
初期状態としてまず演算手段67は、各記憶部71−iの制御回路82を制御してセレクタ83に所定の最大値を有する累積データを選択させ、レジスタ84に選択させる。
次に第1回目の評価値の累積の場合における動きベクトル検出部7Aの動作について説明する。演算手段67は、各探索ベクトルについて第1番目の画素パターンをオフセットで指定して第1回目の評価値を順次計算させる。各評価値は評価部4から画素パターン累積器8Aに供給される。そして、画素パターン累積器8Aから、評価部4からの評価値、現在の探索ベクトルおよび累積回数(=1)で構成される新たな累積データが記憶部71−1〜71−nの比較器81およびセレクタ83に供給される。
各記憶部71−iの比較器81は、レジスタ84に記憶されている累積データにおける累積値E(i)と、画素パターン累積器8Aからの累積データにおける累積値E(new)とを比較し、その比較結果、すなわち、E(i)>E(new)であるか否かを制御回路82、並びに、前段および後段の記憶部71−(i−1),71−(i+1)の制御回路82に供給する。
そして制御回路82は、E(i)>E(new)ではない場合、レジスタ84の累積データを選択する選択信号を生成し、E(i)>E(new)である場合であって、i>1についてE(i−1)>E(new)ではない場合、画素パターン累積器8Aからの新たな累積データを選択する選択信号を生成し、i>1についてE(i−1)>E(new)である場合、前段の記憶部71−(i−1)のレジスタ84からの累積データを選択する選択信号を生成する。制御回路82は選択信号を生成するとセレクタ83に供給する。セレクタ83はその選択信号に応じてレジスタ84からの累積データ、画素パターン累積器8Aからの累積データおよび前段の記憶部71−(i−1),71−(i+1)からの累積データのうちのいずれかを選択し、レジスタ84に供給する。レジスタ84は所定のクロック信号CLKに同期して、記憶している累積データを、供給された累積データで更新する。
これにより、第1回目の評価値の累積により、n個の探索ベクトルについての累積データが記憶手段66において評価値(の累積値)の昇順に記憶される。
次に第2回目以降の評価値の累積の場合における動きベクトル検出部7Aの動作について説明する。
第2回目以降の評価値の累積では、演算手段67は、先頭の記憶部71−1に記憶されている累積データ、すなわち累積値が最小である累積データにおける探索ベクトルについて次の画素パターンをオフセットで指定して次の評価値を計算させる。その評価値は評価部4から画素パターン累積器8Aに供給される。そして、画素パターン累積器8Aから新たな累積データが記憶部71−1〜71−nの比較器81およびセレクタ83に供給される。
各記憶部71−iの比較器81は、レジスタ84に記憶されている累積データにおける累積値E(i)と、画素パターン累積器8Aからの累積データにおける累積値E(new)とを比較し、その比較結果、すなわち、E(i)>E(new)であるか否かを制御回路82、並びに、前段および後段の記憶部71−(i−1),71−(i+1)の制御回路82に供給する。
そして記憶部71−i(i=1,・・・,n−1)の制御回路82は、E(i+1)>E(new)ではない場合、後段の記憶部71−(i+1)からの累積データを選択する選択信号を生成し、E(i)>E(new)ではなく、かつE(i+1)>E(new)である場合、画素パターン累積器8Aからの新たな累積データを選択する選択信号を生成し、E(i)>E(new)であり、かつE(i+1)>E(new)である場合、レジスタ84の累積データを選択する選択信号を生成する。また記憶部71−nの制御回路82は、E(n)>E(new)ではない場合、画素パターン累積器8Aからの新たな累積データを選択する選択信号を生成する。制御回路82は選択信号を生成するとセレクタ83に供給する。セレクタ83はその選択信号に応じてレジスタ84からの累積データ、画素パターン累積器8Aからの累積データおよび後段の記憶部71−(i+1)からの累積データのうちのいずれかを選択し、レジスタ84に供給する。レジスタ84は所定のクロック信号CLKに同期して、記憶している累積データを、供給された累積データで更新する。
これにより、第2回目以降の評価値の累積では、累積値が最小である探索ベクトルについての評価値の累積が順次実行され、その探索ベクトルについての新たな累積データが記憶手段66に供給され、その探索ベクトルの元の累積データが破棄され、新たな累積データを含めたn個の累積データが、累積値の昇順に配列される。
なお、その他の構成要素の動作については実施の形態5によるものと同様であるので、その説明を省略する。また、ここでは、評価値の累積値の昇順に累積データが配列されているが、評価値の計算のしかたによっては降順に配列される場合もある。
以上のように、この実施の形態6によれば、複数の探索ベクトルについての評価値の累積値を昇順または降順に配列して記憶していき、その配列の先頭に対応する探索ベクトルを選択し、選択した探索ベクトルについて評価値の累積を実行し、複数の探索ベクトルについての評価値の累積値を昇順または降順に再配列し、配列の先頭の評価値の累積回数が所定の回数である場合、その探索ベクトルを動きベクトルとするようにしたので、次に評価値の累積を実行する探索ベクトルを選択する際に、単に配列の先頭の探索ベクトルを選択すればよく、各探索ベクトルについての評価値の累積値を参照する必要がなく、評価値の累積を打ち切る探索ベクトルの選択を迅速に実行することができるという効果が得られる。
実施の形態7.
この発明の実施の形態7による動きベクトル検出装置は、MPEG2方式などのように双方向予測を実行する際に、符号化されたフレームのうちの、ブロックの位置から所定の行および所定の列の、前方向の動きベクトル検出用の第1のサーチウィンドウ、および後方向の動きベクトル検出用の第2のサーチウィンドウの画素のデータをサーチウィンドウメモリ部2に記憶し、上述と同様にして、前方向の動きベクトルおよび後方向の動きベクトルを検出するようにしたものである。
なお、実施の形態7による動きベクトル検出装置の構成については実施の形態1〜6のいずれかによるものと同様であるが、サーチウィンドウメモリ部2のメモリ11−(I,J)には、前方向および後方向双方のサーチウィンドウにおける画素データが記憶される。
次に動作について説明する。
第26図は前方向のサーチウィンドウおよび前方向の探索ブロックの一例を示す図である。第27図は後方向のサーチウィンドウおよび後方向の探索ブロックの一例を示す図である。
例えば第26図および第27図に示すように、サーチウィンドウメモリ部2のメモリ11−(I,J)には、前方向のサーチウィンドウにおける画素データが記憶され、その後のアドレスに、後方向のサーチウィンドウにおける画素データが記憶される。
そして、まず、前方向のサーチウィンドウにおいて前方向の動きベクトルが、上述の実施の形態1〜6のように探索され、検出される。その後に、後方向のサーチウィンドウにおいて後方向の動きベクトルが、上述の実施の形態1〜6のように探索され、検出される。
以上のように、この実施の形態7によれば、符号化されたフレームのうちの、ブロックの位置から所定の行および所定の列の、前方向の動きベクトル検出用の第1のサーチウィンドウ、および後方向の動きベクトル検出用の第2のサーチウィンドウの画素のデータをサーチウィンドウメモリ部2に記憶し、それらのデータから前方向の動きベクトルおよび後方向の動きベクトルを検出するようにしたので、サーチウィンドウメモリ部2に必要な記憶容量が増加するものの、他の構成要素を増加させることなく、前方向および後方向の動きベクトルを検出することができるという効果が得られる。
なお、実施の形態7は、上述の実施の形態1〜6のいずれかに適用されるものであるが、従来の動きベクトル検出装置に適用してもよい。
なお、上記のサーチウィンドウ、ブロックおよび画素パターンにおける画素の数、メモリ11−(I,J),16−(I,J)の数などは一例にすぎず、必要に応じて他の数としてもよい。
産業上の利用可能性
以上のように、この発明は、動き予測を実行する画像処理方式において動きベクトルを検出するのに適している。
【図面の簡単な説明】
第1図は、従来の動きベクトル検出装置の構成を示すブロック図である。
第2図は、第1図のサーチウィンドウメモリ部におけるメモリの入出力を制御する回路の一例を示すブロック図である。
第3図は、第1図の交換器の構成例を示すブロック図である。
第4図は、第3図の水平交換部におけるセレクタ部の構成例を示すブロック図である。
第5図は、第3図の垂直交換部におけるセレクタ部の構成例を示すブロック図である。
第6図は、第1図のリファレンスメモリ部におけるメモリの入出力を制御する回路の一例を示すブロック図である。
第7図は、サーチウィンドウおよび探索分割ブロックの一例を示す図である。
第8図は、実施の形態2における探索分割ブロックおよび探索分割ブロックの水平アドレスおよび垂直アドレスを示す図である。
第9図は、この発明の実施の形態1による動きベクトル検出装置の構成を示すブロック図である。
第10図は、第9図のサーチウィンドウメモリ部におけるメモリの入出力を制御する回路の一例を示すブロック図である。
第11図は、第9図の交換器の構成例を示すブロック図である。
第12図は、第11図の水平交換部におけるセレクタ部の構成例を示すブロック図である。
第13図は、第11図の垂直交換部におけるセレクタ部の構成例を示すブロック図である。
第14図は、サーチウィンドウメモリ部における各画素データのアドレスとその各画素データが記憶されるメモリとの対応関係の一例、およびサーチウィンドウにおける画素パターンの一例を示す図である。
第15図は、リファレンスメモリ部における各画素データのアドレスとその各画素データが記憶されるメモリとの対応関係の一例、およびサーチウィンドウにおける画素パターンの一例を示す図である。
第16図は、画素パターンの選択順序の一例を示す図である。
第17図は、分割ブロックにより使用される画素、および画素パターンにより使用される画素の一例を示す図である。
第18図は、この発明の実施の形態2による動きベクトル検出装置の構成を示すブロック図である。
第19図は、この実施の形態2における動きベクトル検出部および画素パターン累積部の構成例を示すブロック図である。
第20図は、記憶手段に記憶された各探索ベクトルについての評価値の累積回数と累積値などの一例を示す図である。
第21図は、実施の形態3における評価値の累積の打ち切りの一例を説明する図である。
第22図は、実施の形態4における動きベクトル検出部および画素パターン累積器の記憶手段の構成を示すブロック図である。
第23図は、第22図における各記憶部の構成例を示すブロック図である。
第24図は、実施の形態5における評価値の累積の順序の一例を示す図である。
第25図は、実施の形態6による動きベクトル検出装置における動きベクトル検出部の構成例を示すブロック図である。
第26図は、前方向のサーチウィンドウおよび前方向の探索ブロックの一例を示す図である。
第27図は、後方向のサーチウィンドウおよび後方向の探索ブロックの一例を示す図である。
Claims (7)
- 画像データにおけるフレームを分割した各ブロックについて、既に符号化されたフレームに対する動きベクトルを検出する動きベクトル検出装置において、
前記ブロックを構成する複数の画素パターンを構成する画素のデータを記憶する第1の記憶手段と、
前記符号化されたフレームのうちの所定の範囲において所定の画素数おきの所定の数の画素でそれぞれ構成される複数の画素パターンにおける同一位置の画素のデータごとに、前記符号化されたフレームのうちの前記所定の範囲の画素のデータを記憶する第2の記憶手段と、
所定の探索ベクトルを供給され、前記所定の範囲においてその探索ベクトルで指定されたブロックにおける1つの画素パターンを選択する選択手段と、
前記選択手段により選択された画素パターンと、その画素パターンと同一の、前記第1の記憶手段に記憶された画素パターンとを画素ごとに比較する比較手段と、
前記比較手段による比較の結果に基づいて前記動きベクトルを検出する検出手段と
を備えることを特徴とする動きベクトル検出装置。 - 画像データにおけるフレームを分割した各ブロックについて、既に符号化されたフレームに対する動きベクトルを検出する動きベクトル検出装置において、
前記ブロックを構成する複数の画素パターンまたは複数の分割ブロックを構成する画素のデータを記憶する第1の記憶手段と、
前記符号化されたフレームのうちの所定の範囲を構成する複数の画素パターンまたは複数の分割ブロックにおける同一位置の画素のデータごとに、前記符号化されたフレームのうちの前記所定の範囲の画素のデータを記憶する第2の記憶手段と、
前記動きベクトルの候補である複数の探索ベクトルを供給され、前記所定の範囲において各探索ベクトルで指定されたブロックにおける同一の画素パターンまたは各分割ブロックを順次選択する選択手段と、
前記選択手段により選択された画素パターンまたは分割ブロックと、その画素パターンまたは分割ブロックと同一の、前記第1の記憶手段に記憶された画素パターンまたは分割ブロックとを画素ごとに比較する比較手段と、
1つの探索ベクトルについて前記比較手段による全画素パターンまたは全分割ブロックについての比較が完了する以前に、その時点までの画素パターンまたは分割ブロックについての比較結果に応じて、その探索ベクトルについての前記選択手段および比較手段による処理を中止させ、その探索ベクトルを前記動きベクトルの候補から削除する探索ベクトル絞込手段と、
前記比較手段による比較の結果に基づいて前記動きベクトルの候補から前記動きベクトルを検出する検出手段と
を備えることを特徴とする動きベクトル検出装置。 - 探索ベクトル絞込手段は、複数の探索ベクトルについての同一の画素パターンまたは同一の分割ブロックごとに、その同一の画素パターンまたは同一の分割ブロックの比較が完了した後ごとに、所定の条件を満足する場合に前記複数の探索ベクトルのうちの少なくとも1つを動きベクトルの候補から削除する
ことを特徴とする請求の範囲第2項記載の動きベクトル検出装置。 - 比較手段は、比較結果として評価値を算出し、
探索ベクトル絞込手段は、各探索ベクトルについて複数の画素パターンでの評価値の累積値を計算し、複数の探索ベクトルについての前記評価値の累積値を昇順または降順に配列して記憶していき、その配列における前記評価値の順序に基づいて1または複数の探索ベクトルを動きベクトルの候補から削除する
ことを特徴とする請求の範囲第3項記載の動きベクトル検出装置。 - 比較手段は、比較結果として評価値を算出し、
探索ベクトル絞込手段は、前記複数の探索ベクトルについての前記評価値の累積値において最小値または最大値の評価値に対応する探索ベクトルを選択し、選択した探索ベクトルについて前記評価値の累積を実行し、検出手段は、最小値または最大値の評価値の累積回数が所定の回数である場合、その探索ベクトルを動きベクトルとする
ことを特徴とする請求の範囲第2項記載の動きベクトル検出装置。 - 探索ベクトル絞込手段は、複数の探索ベクトルについての評価値の累積値を昇順または降順に配列して記憶していき、その配列の先頭に対応する探索ベクトルを選択し、選択した探索ベクトルについて前記評価値の累積を実行し、複数の探索ベクトルについての評価値の累積値を昇順または降順に再配列し、配列の先頭の評価値の累積回数が所定の回数である場合、その探索ベクトルを動きベクトルとする
ことを特徴とする請求の範囲第5項記載の動きベクトル検出装置。 - 画像データにおけるフレームを分割した各ブロックについて、既に符号化されたフレームに対する動きベクトルを検出する動きベクトル検出装置において、
前記ブロックを構成する画素データのうちの所定の数の画素データを記憶する第1の記憶手段と、
前記符号化されたフレームのうち、前方向の動きベクトル検出用の第1の範囲内、および後方向の動きベクトル検出用の第2の範囲内の画素データを記憶する第2の記憶手段と、
前方向の探索ベクトルおよび後方向の探索ベクトルを供給され、前記第2の記憶手段に記憶された前記画素データのうちの、前記ブロックの位置から前記探索ベクトルだけ離れた位置の、前記ブロックと同一の大きさの範囲の画素データのうちの所定の数の画素データを選択する選択手段と、
前記第1の記憶手段に記憶された所定の数の画素データと、前記選択手段により選択された所定の数の画素データとを比較する比較手段と、
前記比較手段による比較の結果に基づいて前方向の動きベクトルおよび後方向の動きベクトルを検出する検出手段と
を備えることを特徴とする動きベクトル検出装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2000/007598 WO2002037860A1 (en) | 2000-10-27 | 2000-10-27 | Moving vector detector |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2002037860A1 true JPWO2002037860A1 (ja) | 2004-03-11 |
Family
ID=11736634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002540466A Pending JPWO2002037860A1 (ja) | 2000-10-27 | 2000-10-27 | 動きベクトル検出装置 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1331826A1 (ja) |
JP (1) | JPWO2002037860A1 (ja) |
CN (1) | CN1415171A (ja) |
WO (1) | WO2002037860A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4610523B2 (ja) * | 2006-06-13 | 2011-01-12 | Okiセミコンダクタ株式会社 | 動画処理装置 |
CN106851306B (zh) | 2011-01-12 | 2020-08-04 | 太阳专利托管公司 | 动态图像解码方法和动态图像解码装置 |
WO2012117728A1 (ja) | 2011-03-03 | 2012-09-07 | パナソニック株式会社 | 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、及び動画像符号化復号装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02274083A (ja) * | 1989-04-17 | 1990-11-08 | Nec Corp | 動ベクトル検出装置 |
JPH02295288A (ja) * | 1989-05-10 | 1990-12-06 | Nec Corp | 動ベクトル検出装置 |
JPH04180382A (ja) * | 1990-11-14 | 1992-06-26 | Matsushita Electric Ind Co Ltd | 動ベクトル検出方法 |
JPH05260460A (ja) * | 1992-03-09 | 1993-10-08 | Matsushita Electric Ind Co Ltd | 動き検出装置 |
JPH07162864A (ja) * | 1993-12-08 | 1995-06-23 | Ricoh Co Ltd | 動きベクトル検出方法 |
JP2000069484A (ja) * | 1998-08-21 | 2000-03-03 | Sony Corp | 動きベクトル算出方法及び動きベクトル算出プログラムを記録した記録媒体 |
-
2000
- 2000-10-27 CN CN00817874.7A patent/CN1415171A/zh active Pending
- 2000-10-27 WO PCT/JP2000/007598 patent/WO2002037860A1/ja not_active Application Discontinuation
- 2000-10-27 EP EP00970180A patent/EP1331826A1/en not_active Withdrawn
- 2000-10-27 JP JP2002540466A patent/JPWO2002037860A1/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
CN1415171A (zh) | 2003-04-30 |
WO2002037860A1 (en) | 2002-05-10 |
EP1331826A1 (en) | 2003-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3863376B2 (ja) | 動き推定器 | |
US20070110161A1 (en) | Motion vector estimation apparatus | |
JP2005303984A (ja) | 動きベクトル検出装置及び方法、及びその動きベクトル検出装置を利用可能な画像符号化装置 | |
US6687299B2 (en) | Motion estimation method and apparatus for interrupting computation which is determined not to provide solution | |
WO2022110386A1 (zh) | 数据处理方法及人工智能处理器 | |
KR101091054B1 (ko) | 동화상 부호화에 있어서의 움직임 탐색 장치 | |
JPWO2002037860A1 (ja) | 動きベクトル検出装置 | |
JPH0965339A (ja) | 画像ブロック動き検出装置 | |
US6380987B1 (en) | Motion vector detection circuit enabling high-speed search of motion vector | |
US6990149B2 (en) | Circuit and method for full search block matching | |
CN100553341C (zh) | 运动矢量检测装置和运动矢量检测方法 | |
KR0178302B1 (ko) | 양방향 병렬 파이프라인 구조에 근거한 탐색 이동 예측처리기 | |
JP2005253015A (ja) | 動きベクトル検出装置、動きベクトル検出方法、及びプログラム | |
JP4101645B2 (ja) | 動きベクトル検出装置,動きベクトル検出方法,プログラム,および記録媒体 | |
JP2006013873A (ja) | 動きベクトル検出装置および方法 | |
KR20010052624A (ko) | 움직임 추정 | |
KR100282614B1 (ko) | 저 전송률 비디오 코덱을 위한 움직임 예측장치 | |
JP2618146B2 (ja) | 動きベクトル検出回路 | |
JP2008177630A (ja) | 動きベクトル検出装置 | |
CN110313015A (zh) | 数据处理方法和处理电路 | |
JP2000041251A (ja) | 動きベクトル検出装置 | |
KR100647009B1 (ko) | 비디오 부호화기의 계층적 움직임 탐색을 위한 공유시스톨릭 어레이 장치 | |
KR100571907B1 (ko) | 동영상 추정 알고리즘에 있어서 프로세싱 엘레멘트 수 결정 방법 | |
CN116074533A (zh) | 运动矢量预测方法、***、电子设备及存储介质 | |
KR20050108075A (ko) | 계층적 움직임 추정장치 및 방법 |