JP3698501B2 - 動きベクトル検出装置 - Google Patents
動きベクトル検出装置 Download PDFInfo
- Publication number
- JP3698501B2 JP3698501B2 JP27673196A JP27673196A JP3698501B2 JP 3698501 B2 JP3698501 B2 JP 3698501B2 JP 27673196 A JP27673196 A JP 27673196A JP 27673196 A JP27673196 A JP 27673196A JP 3698501 B2 JP3698501 B2 JP 3698501B2
- Authority
- JP
- Japan
- Prior art keywords
- target image
- motion vector
- reference image
- pixels
- register group
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
【発明の属する技術分野】
本発明は、動画像データを動き補償フレーム間符号化方式でデータ量圧縮する場合に用いられる動きベクトル検出装置に関するものである。
【0002】
【従来の技術】
動画像データはデータ量が非常に多いため、記録や伝送する際には画像圧縮や高能率符号化といわれる手法を用いて、視覚的に検知できる画質劣化を抑えつつ、データレートを記録可能又は伝送可能なレートまで、或は十分な記録時間が得られるレートまで下げることが一般的である。
【0003】
高能率符号化方式のとしては、例えばMPEG2方式がある。MPEG2はISO/IEC 13818 として規格化されている方式で、動画像の高能率符号化方式として動き報償フレーム間符号化方式を用いる。
【0004】
MPEG2方式では、フレーム画像をマクロブロックと呼ばれる16画素×16画素の領域に分割し、マクロブロック毎に動きベクトル検出を行い、符号化対象マクロブロックと動きベクトルで示されたマクロブロックサイズの参照画像データとの差分を符号化する。動きベクトルはフレーム動きベクトルとフィールド動きベクトルを適応的に用いる。フレーム動きベクトルでは、1つの予測方向に対してマクロブロック毎に1つの動きベクトルを求める。フィールド動きベクトルでは、マクロブロック、参照画像ともに2フィールドに分割し、フィールド毎に動きベクトルを求めるため、1つの予測方向に対してマクロブロック毎に2本の動きベクトルが必要になる。
【0005】
次に一般的な動きベクトル検出の動作を説明する。動きベクトル検出では、参照画像上で対象画像ブロックに似通ったブロックを探索する。そのため参照画像上で対象画像ブロックと同位置周辺に探索範囲を設定し、探索範囲内で動きベクトルの候補となる候補ベクトルを設定する。候補ベクトルは対象画像ブロックとの偏位を示し、候補ベクトル毎に参照画像のブロックサイズのデータと対象画像ブロックとの相関演算を行う。
【0006】
図17に動きベクトル検出のブロックサイズが16画素×16画素で、探索範囲が+/−16画素の場合の例を示す。この場合、対象画像ブロックと探索範囲内の様々な位置の候補ベクトルに対するブロックサイズの参照画像データとの間で相関演算を行い、最も相関の高い位置に対する偏位を動きベクトルとする。
【0007】
全探索と呼ばれる方法では、探索範囲内にとりうる全てのベクトルを候補ベクトルとする。図17に示した探索範囲が+/−16画素の場合、候補ベクトル数は整数画素精度で33×33本あり、それぞれに16画素×16画素の相関演算を行うことになり、その演算量は膨大になる。
【0008】
演算量を減らす方法として、特開平5−40828に記載の方法がある。特開平5−40828に記載の方法では、第1の探索行程として候補ベクトルを間引いて動きベクトル探索し、間引いた候補ベクトルの中から最適な動きベクトルを選択する。そして、第2の探索行程として第1の対策行程で選択した動きベクトルの周辺を候補ベクトルの密度を高くして再度動きベクトル探索するもので、相関演算の回数を減らすことで演算量を減らしている。さらには、動きベクトル探索での相関演算(ここではマッチング演算としている)に用いる画素を間引いて相関演算1回当たりの演算量を減らしている。例えば第1の探索行程で候補ベクトルを水平、垂直方向とも1/2に間引けば第1の行程での相関演算回数は1/4になり、相関演算に用いる画素を水平、垂直方向とも1/2に間引けば相関演算1回当たりの演算量も1/4になる。
【0009】
【発明が解決しようとする課題】
しかしながら、候補ベクトルを間引くと最適なベクトルが選ばれなくなることが多くなり、比較的大きな画質劣化を生じるという問題がある。また、特開平5−40828に記載の方法では、第2の探索行程においてフレームベクトルの検出は可能であるが、フィールドベクトルの検出ができない。フィールドベクトルの検出のためには、フレームベクトル探索とは別にフィールドベクトル用の探索を行う必要がある。
【0010】
また、従来の方式では参照画像データへのアクセス量が膨大になるという問題がある。特開平5−40828に記載の方式では、1つの候補ベクトルに対して動きベクトル検出ブロックと同じサイズの参照画像データが必要になる、即ち候補ベクトルの数をNとすると画像サイズのN倍の参照画像データを入力する必要がある。一般的にはNは数百以上である。
【0011】
一般的な例を説明すると、例えば図17の場合では、1つのブロックの動きベクトルを探索するために最低でも9マクロブロック分の参照画像データが必要になる。動きベクトル検出を輝度成分だけで行う場合には、動きベクトル検出だけのために対象画像、参照画像合わせて対象画像の輝度のデータレートの10倍のデータを動きベクトル検出装置に入力しなければならない。画像サイズを720画素×480画素、フレームレート30枚/秒とすると、動きベクトル検出装置に入力される輝度データ量は
720×480×30×10 = 103,680,000 画素/秒
となる。通常、動きベクトル検出では、対象画像データと参照画像データは外部のメモリから入力されるが、この値を実現するためには、動きベクトル検出装置とメモリ間のバス幅が16ビット(1画素8ビットとする)の場合で50Mワード/秒以上、64ビットの場合でも12.5Mワード/秒以上のスピードが要求される。
【0012】
本発明は、このような問題点に鑑みてなされたものであり、動きベクトル探索の相関演算に用いる画素データを間引いて演算量を減らし、かつ参照画像データの入力データレートを低くすることを可能にし、さらにフレームベクトルとフィールドベクトルを同時に検出することが可能な動きベクトル検出装置を提供することを目的とする。
【0013】
【課題を解決するための手段】
本発明では、動きベクトル検出の相関演算に用いる画素を間引き、動きベクトル検出対象ブロック当たりの演算量を減らしている。そして、演算量減少で生じた演算性能の余裕を同時処理に振り分け、複数ブロックの動きベクトルを同時に検出することで、参照画像の入力データ量を低く抑える。さらに複数の相関演算器を並列して動作させることで、より多数ブロックの動きベクトル検出を同時進行させ参照画像の入力データ量をさらに低く抑えることができるものである。
【0014】
また、相関演算をフィールド単位で行ってフィールド動きベクトルの評価値を求め、フレーム動きベクトルの評価値はフレームを構成する2つのフィールド動きベクトルの評価値の和とすることで、フィールド動きベクトルとフレーム動きベクトルの同時検出を可能にするものである。
【0015】
請求項1記載の本発明では、動きベクトル検出の対象画像をM画素×N画素のブロックに分割し、該ブロック毎に参照画像との間の動きベクトルを検出する動きベクトル検出装置であって、対象画像を格納する対象画像レジスタ群と参照画像を格納する参照画像レジスタ群と、対象画像レジスタ群と参照画像レジスタ群に接続し対象画像と参照画像間の相関値を計算する相関演算回路群を備え、対象画像レジスタ群には隣接する複数ブロックの対象画像データをフィールド毎に間引いてM×N画素とした対象画像処理ブロックを保持し、該M×N画素のデータを同時に相関演算回路群に出力し、参照画像レジスタ群はM×N×K画素分のレジスタを行列状に配置して一次元に接続し、前記参照画像レジスタ群に前記対象画像処理ブロックの動きベクトル探索に必要な参照画像を左端から上下方向に順次入力し、ブロックサイズの参照画像データを画面上の位置をシフトしながら相関演算回路群に順次出力し、該相関演算回路群は対象画像データと順次入力される参照画像データ間の相関値を計算する相関演算回路を複数備え、前記対象画像処理ブロックのうち、同一対象ブロックの同一フィールドに属する画素の相関演算に対して前記相関演算器を1つずつ割り当て、動きベクトル検出処理することを特徴とする。
【0016】
請求項2記載の本発明は、請求項1記載の動きベクトル検出装置において、複数の前記対象画像処理ブロックに対し、それぞれ前記対象画像レジスタ群と相関演算回路群を備え、隣接する前記対象画像処理ブロックに対する動きベクトル検出を並列に行うことを特徴とする。
【0017】
請求項3記載の本発明は、請求項1,2記載の動きベクトル検出装置において、動きベクトル検出の対象画像を水平方向に1/Pに間引き、垂直方向に1/Qに間引いて前記対象画像レジスタ群に入力し、対象画像レジスタ群内で水平方向にP画素毎、垂直方向にQ×2画素毎のデータが同一ブロックの同一フィールドに属する対象画像データとなるように前記対象画像処理ブロックを保持することを特徴とする。
【0018】
請求項4記載の本発明は、請求項1,2,3記載の動きベクトル検出装置において、前記相関演算回路は複数の差分絶対値回路と複数の加算器を備え、同時に入力される複数の対象画像データと参照画像データ間の相関演算を一括して行うことを特徴とする。
【0019】
【課題を解決するための手段】
請求項5記載の本発明は、動きベクトル検出の対象画像をM画素×N画素のブロックに分割し、該ブロック毎に参照画像との間の動きベクトルを検出する動きベクトル検出装置であって、対象画像を格納する対象画像レジスタ群と参照画像を格納する参照画像レジスタ群と、対象画像レジスタ群と参照画像レジスタ群に接続し対象画像と参照画像間の相関値を計算する相関演算回路群を備え、対象画像レジスタ群には隣接する複数ブロックの対象画像データをフレーム毎に間引いてM×N画素とした対象画像処理ブロックを保持し、該M×N画素のデータを同時に相関演算回路群に出力し、参照画像レジスタ群はM×N×K画素分のレジスタを行列状に配置して一次元に接続し、前記参照画像レジスタ群に前記対象画像処理ブロックの動きベクトル探索に必要な参照画像を左端から上下方向に順次入力し、ブロックサイズの参照画像データを画面上の位置をシフトしながら相関演算回路群に順次出力し、該相関演算回路群は対象画像データと順次入力される参照画像データ間の相関値を計算する相関演算回路を複数備え、前記対象画像処理ブロックのうち、同一対象ブロックに属する画素の相関演算に対して前記相関演算器を1つずつ割り当て、動きベクトル検出処理すること、を特徴とする。
【0020】
請求項6記載の本発明は、請求項5記載の動きベクトル検出装置において、動きベクトル検出の対象画像を水平方向に1/Pに間引き、垂直方向に1/Qに間引いて前記対象画像レジスタ群に入力し、対象画像レジスタ群内で水平方向にP画素毎、垂直方向にQ画素毎のデータが同一ブロックに属する対象画像データとなるように前記対象画像処理ブロックを保持することを特徴とする。
【0021】
【発明の実施の形態】
以下図面を参照しながら、本発明の実施の形態を詳細に説明する。
【0022】
ここでは、NTSCやPALといったインターレースされたテレビジョン信号をMPEG2方式で符号化する場合に用いることができる動きベクトル検出装置の例を説明する。即ち、動きベクトル検出は16画素×16画素のマクロブロック毎に求め、フレーム動きベクトルとフィールド動きベクトルの両方を求める場合である。フィールドは、マクロブロックの第1行が含まれるフィールドを奇数フィールド、第2行が含まれるフィールドを偶数フィールドと呼ぶことにする。また、動きベクトル検出の探索範囲は+/−16画素とする。
【0023】
図1に本発明の動きベクトル検出装置の第1の実施の形態を示す。これは請求項1に対応するものである。図1において動きベクトル検出装置1は対象画像レジスタ群2、参照画像レジスタ群3、相関演算回路群4、最適ベクトル選択回路5で構成され、対象画像レジスタ群2には動きベクトル検出の対象画像データが、参照画像レジスタ群3には参照画像データがそれぞれ外部のメモリから入力される。なお、図1の対象画像レジスタ群2、参照画像レジスタ群3、相関演算回路群4は概略を示しており、詳細な構成は後述する。
【0024】
図2に対象画像レジスタ群2の構成を示す。図2で’R’は8ビットのレジスタを示し、1画素分のデータを格納する。対象画像レジスタ群2には複数マクロブロックの対象画像データを間引いて1マクロブロック分のデータ量としたもの(以下では対象画像処理ブロックと呼ぶ)が入力される。図3に一例として、上下左右に隣接する4マクロブロックのデータを水平、垂直方向それぞれ1/2に間引いたものを対象画像処理ブロックとする場合の例を示す。図3は隣接する4つのマクロブロックA,B,C,Dのデータが示されており、A1,...,A256,B1,...,B256,C1,...,C256,D1,...D256は画素データを示す。このうち、対象画像レジスタ群2には、水平、垂直方向ともに1/2に間引いた斜線をつけたデータが対象画像処理ブロックとして入力される。垂直方向は、偶数フィールド、奇数フィールドそれぞれで1/2に間引いているため、フレームとしてみると2ライン毎に間引いていることになる。
【0025】
対象画像レジスタ群2には上記の対象画像処理ブロックが1画素毎に入力され、順次接続されたレジスタに転送される。そして、保持している256画素分のデータ全てが相関演算回路群4に出力される。対象画像レジスタ群2には、画素毎に水平方向のマクロブロックを交互に、2行毎に垂直方向のマクロブロックを交互に入力する。即ち、
A1, B1, A3, B3,..., A15, B15,
A17, B17, A19, B19,..., A31, B31,
C1, D1, C3, D3,..., C15, D15,
C17, D17, C19, D19,..., C31, D31,
................................
................................
A193,B193,A195,B195,...,A207,B207,
A209,B209,A211,B211,...,A223,B223,
C193,D193,C195,D195,...,C207,D207,
C209,D209,C211,D211,...,C223,D223,
の順で入力する。この順で対象画像処理ブロックデータを入力し、全データを入力した後に対象画像レジスタ群2に保持される対象画像処理ブロックデータを図4に示す。16×8画素の各フィールドデータは図4(a)に示したサブサンプリングパターンでサブサンプリングされ、サンプリングされたデータは図4(b)に示す位置に保持される。図4(b)では、水平2画素、垂直4画素の矩形ブロック内にマクロブロックA〜Dの全てのマクロブロックの偶数フィールドデータと奇数フィールドデータが含まれ、矩形内でのマクロブロック及びフィールドの位置関係は全ての矩形で同一である。
【0026】
次に参照画像レジスタ群3について説明する。参照画像レジスタ群3は垂直方向隣接した複数のマクロブロックサイズの参照画像データを格納する。参照画像レジスタ群3のサイズは、水平方向は動きベクトル検出するブロックと同一サイズ、垂直方向は対象画像レジスタ群2に保持されている垂直方向のマクロブロック数に相当するサイズと探索範囲の和である。従って、本例の場合の参照画像レジスタ群3のサイズは、
水平方向はマクロブロックサイズと同一で16画素
垂直方向は、(2マクロブロック分)+(探索範囲 +/−16画素)で64画素
となる。
【0027】
参照画像レジスタ群3には、探索範囲を探索できるだけの参照画像データを順次入力していく。本実施の形態では、図5に示すように対象マクロブロックと同位置を中心として、水平、垂直両方向とも+/−16画素広い範囲の64×64画素の参照画像データを入力することになる。
【0028】
図6に参照レジスタ群3の構成を示す。図6の’R’は8ビットのレジスタを示し、1画素分のデータを保持する。参照画像レジスタ群3へは、図5で示した参照画像データが図5に矢印で示したように、左端の列から順に垂直方向に1画素づつ入力され、入力データは順次接続されるレジスタ間を転送される。そして、垂直方向の64画素データのうち、図6に示すように下からマクロブロックサイズ分のデータ、即ち16×16画素のレジスタに保持している参照画像データを相関演算回路群4に出力する。16×16画素のレジスタに図7に斜線で示した部分のデータが保持される時点から演算回路群4に出力を開始し、相関演算を実行する。そして図6の構成により、参照画像レジスタ群3に次の参照画像データが入力されると、参照画像レジスタ群3内の全データがレジスタ間を転送され、図8のaで示すように1画素下にずれた位置のマクロブロックサイズのデータが出力されることになる。
【0029】
このように、参照画像レジスタ群3に1画素の参照画像データが入力される毎に16×16画素データが出力される。また、図8には参照画像レジスタ群3から相関演算回路群4に出力される16×16画素データの中心位置の動きを矢印で示している。中心位置は、探索領域の左上に対応する位置から始まり、参照画像データが入力される毎に下に移動し、次に順に右の列に移動する。実線で示した位置は16画素×16画素の矩形領域が出力される場合で、点線は例えば図8のbで示したようにブロックが上下に分断された無効データが出力される場合である。
【0030】
このように、参照画像レジスタ群3から相関演算回路群4に出力されるデータうち、図8に実線の矢印で示した中心位置に対応するデータをたどると探索範囲内の左端の列の最上部を左端の点とするマクロブロックサイズのデータ始まり、垂直方向下向きに移動し、次に左から2列目、...と出力される。即ち、対象マクロブロックAについてみると、
動きベクトル(−16,−16)に対応した参照画像データ
動きベクトル(−16,−15)に対応した参照画像データ
........
動きベクトル(−16,+32)に対応した参照画像データ
動きベクトル(−15,−16)に対応した参照画像データ
動きベクトル(−15,−15)に対応した参照画像データ
........
動きベクトル(+32,+32)に対応した参照画像データ
の順で出力されることになる。
【0031】
相関演算回路群4には4マクロブロックの対象画像データを間引いて16×16画素とした対象画像処理ブロックと前述した16×16画素の参照画像データが同時に入力される。そして、相関演算回路群4は対象画像データと参照画像データ間で画素毎の相関演算を行い、対象画像データのマクロブロック毎、フィールド毎の相関値を一括して求めるよう動作する。相関演算回路群4については後述する。よって、参照画像レジスタ群3に1画素の参照画像データが入力される毎に相関演算回路群4には1つの候補点に対応する16×16画素の参照画像データが入力されることになり、参照画素の入力を完了した時点で全ての候補点について対象画像との間の相関値が計算できることになる。
【0032】
図9に本発明の相関演算回路群4の構成を示す。相関演算回路群4では、4マクロブロックの対象マクロブロックを間引いて16×16画素とした対象画像データと16×16画素の参照画像データが入力され、マクロブロック毎、フィールド毎の相関値を最適ベクトル選択回路5に出力する。相関演算回路群4は請求項4記載の本発明にもとづく相関演算回路21〜28を備える。相関演算回路21〜28は同一の機能を持ち、各相関演算回路に同一の対象画像マクロブロックの同一フィールドに属するデータ及び相関演算に必要な参照画像データが入力される。本例では水平、垂直方向とも1/2に間引いているため、対象画像、参照画像各(16×8=32)画素のデータが入力され、相関値を一括して計算する。なお、ここでは画素間の差分絶対値の和を相関値と呼んでいる。
【0033】
図4(b)に相関演算回路群4に入力される対象画像処理ブロックのデータを示したが、ここからマクロブロックAの奇数フィールドだけを取り出すと図10に斜線で示したようになる。斜線の間にはマクロブロックAの偶数フィールド及びマクロブロックB,C,Dの偶数フィールド及び奇数フィールドデータが保持されているため、対象画像レジスタ2内では間引かれる前の間隔で並んでいる。間引かれる前の間隔で並ぶのはマクロブロックA〜Dの全マクロブロックの両フィールドについて同様である。一方参照画像は間引きが行われないため、全マクロブロックの両フィールドについて差分をとる対象画素と参照画素の位置が対応することになる。従って、相関演算回路群4では、画素毎に差分絶対値を計算し、対象画像のそれぞれのマクロブロック、フィールドに属する画素の差分絶対値の和を求めることでマクロブロックA〜Dについてフィールド毎の相関値を同時に得ることができる。
【0034】
図9に示した各相関演算回路は32個の差分絶対値回路(図面では|A−B|で示す)と31個の加算器(図面ではADDで示す)で構成される。各差分絶対値回路には同一マクロブロック、同一フィールドに属す32画素分の対象画像データと該画素データと相関演算を行う32画素分の参照画像データのうち各1画素が入力され、差分絶対値が出力される。出力された差分絶対値は後段の加算器で順々に加算され、32画素分の差分絶対値の和が後段の最適ベクトル選択回路5に出力される。各相関演算回路の出力は、水平、垂直それぞれ1/2に間引かれた32画素の対象画像フィールドの差分絶対値和となる。ここで、差分絶対値回路及び加算器の演算速度が遅い場合には、差分絶対値回路或は加算器にレジスタを備えパイプライン構成としてもよい。なお、相関演算回路に入力される対象画像データは固定で、参照画像データは1行づつ下向きにずれるため、フィールド間の相関演算は、まず対象画像の偶数フィールドと参照画像の偶数フィールド間、同奇数フィールドと同奇数フィールド間で行い、次に偶数フィールドと奇数フィールド間、奇数フィールドと偶数フィールド間で行うことになり、以下この動作を繰り返す。
【0035】
最適ベクトル選択回路5にはフィールドベクトルの相関値が入力される。また、フレームベクトルの相関値をフレームは構成する2フィールドに対するベクトルの相関値の和として全ての候補点に対して求める。そして、相関値から最も誤差の少ない、即ち相関の高い最適なフィールドベクトル、または最適なフレームベクトルを選択し出力する。
【0036】
次に、図11に4マクロブロックの動きベクトル検出を行う場合の対象画像レジスタ群2、参照画像レジスタ群3、相関演算回路群4のタイムチャートを示す。ここでは、図12に示すように、探索範囲の左上のマクロブロックサイズの参照画像データを(0,0)として、左下が(0,48)、右上が(48,0)、右下が(48,48)として表している。また、1クロック毎に対象画像データ又は参照画像データが1画素分入力されるとしている。
【0037】
まず、対象画像レジスタ群2には4マクロブロックのデータを1/4に間引いた対象画像処理ブロックのデータが256クロックで入力され、その後は状態を保持して相関演算回路4に256画素のデータを出力し続ける。その後、参照画像レジスタ群3に水平、垂直各4マクロブロック、即ち16マクロブロックの参照画像データが入力される。図13に参照画像データ入力期間開始の976(64×15+16)クロック後に参照画像レジスタ群3に入力されているデータを斜線で示す。参照画像データ入力期間開始の976クロック後に、図6の下側16×16画素のレジスタから(0,0)位置のマクロブロックサイズのデータが出力されることになる。
【0038】
以後図8に示したように、64クロック毎に49クロック間はマクロブロックサイズの参照画像データが出力され、15クロック間は2つの領域に分断された無効データが出力される。そして、相関演算回路群4ではマクロブロックサイズの参照画像データが得られる期間に対象画像データと参照画像データ間の相関演算を行う。相関演算回路では、1クロック毎に入力される対象画像データと参照画像データを高速に処理し、1クロック毎にフィールド単位の差分絶対値和が出力される。
【0039】
なお、本発明ではある探索範囲に対して複数マクロブロックの動きベクトルを検出するため、マクロブロックによって探索範囲が異なる。例えば、図5において対象マクロブロックA〜Dの全マクロブロックが同じ探索範囲を動きベクトル探索するため、マクロブロックAの探索範囲は、垂直マイナス方向には−16画素になるが垂直プラス方向には+32画素になる。図4に示した対象レジスタ群2に格納される位置を勘案すると、各マクロブロックの探索範囲は、
マクロブロックA 垂直 −16/+32 水平 −16/+32
マクロブロックB 垂直 −16/+32 水平 −31/+17
マクロブロックC 垂直 −30/+18 水平 −16/+32
マクロブロックD 垂直 −30/+18 水平 −31/+17
となり、最低で+/−16画素になっている。なお、マクロブロック毎に間引きのサンプル画素を変更することで、探索範囲を変化させることもできる。
【0040】
本発明の請求項1の実施の形態では、4マクロブロックの動きベクトル検出するために、対象画像1マクロブロック分、参照画像16マクロブロック分の17マクロブロック分のデータを入力する必要があるが、対象画像レジスタ群及び相関演算回路群を複数備えることで参照画像データの入力量を減らすことができる。以下にそれを説明する。
【0041】
図14に本発明の第2の実施の形態のブロック図を示す。これは請求項2に対応する。図14の実施の形態と図1の実施の形態では、図14の実施の形態では対象画像レジスタ群及び相関演算回路群を2つ備え、相関演算を並列して行う点が異なるが、各回路の動作は同一である。
【0042】
図1の実施の形態では、4マクロブロックの動きベクトル検出毎に動きベクトル探索に必要な参照画像データを入力しているが、隣接する4マクロブロックの探索範囲は重複している領域があるため、参照画像データを重複して入力する必要があった。図15を用いて説明すると、対象マクロブロックA,B,C,Dの動きベクトル検出をする場合に参照画像データとして参照マクロブロック列1,2,3,4を入力し、マクロブロックE,F,G,Hの動きベクトル検出をする場合に参照画像データとして参照マクロブロック列3,4,5,6を入力する必要があり、参照マクロブロック列3,4を重複して入力する必要がある。
【0043】
このように、図1に示した実施の形態ではほとんどの参照マクロブロック列を2度入力する必要があった。図14の第2の実施の形態では、第1の実施の形態で述べた対象画像レジスタ群を2組備え、例えば図15の対象マクロブロックA,B,C,Dを対象画像レジスタ群2で、E,F,G,Hを対象画像レジスタ群12で保持し、動きベクトル検出を2つの相関演算回路群で並列して行う。このため、水平方向に重複する探索範囲については、参照画像データを1度入力するだけで済む。
【0044】
図16に図14に示した本発明の請求項2の実施の形態のタイムチャートを示す。図16のタイムチャートを図15に沿って説明する。なお、図16のタイムチャートと図1の実施の形態のタイムチャートである図11のタイムチャートでは、図11のタイムチャートでは4マクロブロックの動きベクトル検出毎に連続する4096クロックの参照画像入力期間を設けていたが、図16のタイムチャートではこの期間を2分割し、対象画像レジスタ群2及び12に交互に対象画像データを入力する点が異なる。
【0045】
この例ではまず対象マクロブロックA,B,C,Dを最初の256クロックで対象画像レジスタ群2に入力し、続いて参照マクロブロック列1,2のデータを参照画像レジスタ群3に入力し、参照マクロブロック列1,2の範囲を相関演算回路群4で動きベクトル探索する。図16に示した相関演算期間は図11に示したのと同様に64クロック期間中、相関演算を行う49クロック間と間相関演算を行わない15クロック間の繰り返しであるが、ここではタイムチャートへの記述を省略している。
【0046】
次に対象マクロブロックE,F,G,Hを対象画像レジスタ群12に入力し、続いて参照マクロブロック列3,4を参照画像レジスタ群3に入力し、参照マクロブロック列3,4の範囲を動きベクトル探索する。このとき、対象マクロブロックA,B,C,Dの相関演算を相関演算回路群4で行い、対象マクロブロックE,F,G,Hの相関演算を相関演算回路群13で並列に行う。次に対象マクロブロックI,J,K,Lを対象画像レジスタ群2に入力する。このように2つの対象画像レジスタ群と2つの相関演算回路群を並列して動作させることで、水平方向に探索範囲が重複する場合でも、参照画像データは1度入力するだけで動きベクトル検出が可能である。
【0047】
図14の第2の実施の形態では、水平方向に探索領域が重複する場合でも参照画像データを重複することなしに入力して動きベクトル検出が可能であるが、垂直方向に探索範囲が重複している場合には、参照画像データを重複して入力しなければならない。そこで図14において、対象画像レジスタ群及び相関演算回路群を複数備え、水平方向に時分割で動きベクトル検出した原理を垂直方向にも適用することで、垂直方向にも探索範囲が重複している場合であっても参照画像データを重複なしに入力して動きベクトル検出が可能になる。
【0048】
図5及び図10で示した間引きパターンは本発明の請求項3にもとづくものであり、対象画像データを垂直、水平方向とも1/2に間引いた場合に、対象画像レジスタ内で保持されるデータが間引かれる前の状態の間隔で並ぶようにするものである。先に述べたように、このように構成すれば、対象画像レジスタに保持されているデータとマクロブロックサイズの参照画像データ間で差分をとる画素の位置が一致しているため、同一マクロブロック、同一フィールドに属する対象画像データの差分絶対値の和を求めるだけでフィールド毎の相関値が得られ、後段の相関演算回路での回路構成が容易になる。
【0049】
このことは、より一般的に水平方向に1/P、垂直方向に1/Qに間引く場合でも可能である。この場合、対象画像レジスタ群へのデータ入力順は前記の水平方向、垂直方向とも1/2に間引いた場合の入力データ順を拡張し、まず1画素毎に水平方向にPマクロブロックのデータを入力し、2行分の画素データの入力毎に、垂直方向に隣接するPマクロブロックのデータを順次入力する。そして次に最初のマクロブロックから水平方向に間引き後の第3行、第4行を入力し、2行分の入力毎に垂直方向に隣接するマクロブロックの間引き後の第3行、第4行を入力する。このように入力することで、対象画像レジスタ群には間引く前の間隔、即ち水平方向P画素毎、垂直方向Q×2画素毎に同一マクロブロックの同一フィールドのデータが保持される。
【0050】
以上はフィールドベクトルとフレームベクトルを同時検出する場合の実施の形態であるが、フレームベクトルのみ検出する構成も、対象画像データをフレーム毎に間引いて対象画像処理ブロックを構成し、1つの相関演算回路を同一ブロックに属する画素の相関演算に対して割り当てることで容易に実現可能である。
【0051】
また、その際対象画像レジスタ群に保持する対象画像データと、参照画像レジスタ内の相関演算に必要となる参照画像データの位置を一致させる方法も容易に推測できる。
【0052】
【発明の効果】
請求項1の本発明では、動きベクトル検出に必要な相関演算に用いる画素数を間引くことを利用して、複数ブロックの動きベクトル検出の同時処理を可能にしている。また、動きベクトル検出では参照画素のアクセスが非常に多く、メモリからの転送の負荷が大きな障害となるが、本発明によると複数のブロックの動きベクトルを同時に検出するため、参照画素のアクセス量が従来の約1/5に削減できる。
【0053】
また、請求項2の本発明では、対象画像処理ブロックを保持する対象画像レジスタ群及び相関演算を行う相関演算回路群を複数備えることで、参照画素の重複したアクセスを無くすことが可能で、参照画像データの読み出しをより少なくすることができる。
【0054】
また、請求項1,2,3の本発明では、間引かれた対象画像を対象画像レジスタ群に保持する際に、参照画像レジスタ群内の相関演算に必要となる画素の位置に対応するように配置するため、相関演算回路を簡素に構成することができる。さらに本発明によれば、複数ブロックの相関演算をフィールド毎に行うことができ、また、フレーム動きベクトルの相関値はブロックを構成する2フィールドに対する相関値の和として算出できるので、フィールド動きベクトルとフレーム動きベクトルの同時検出が可能である。
【0055】
また、請求項4の本発明では、相関演算回路では、1ブロックの片フィールドの相関演算を一括して行うため、対象画像データと順次入力される参照画像データ間の相関値を連続して計算できる。
【0056】
さらに、請求項5,6の本発明はフレーム動きベクトルを検出する場合に適した構成とすることも容易で、簡素な構成でフレーム動きベクトルのみを検出することが可能である。
【0057】
以上のように、本発明では動きベクトル検出の演算量が少なく、また参照画像の読み出し量も少なく、フレーム予測、フィールド予測が同時に可能であるため、MPEG2方式などフレーム予測/フィールド予測適応型動き補償フレーム間予測方式を用いる場合に、特に効果が顕著である。
【図面の簡単な説明】
【図1】請求項1記載の本発明の実施の形態のブロック図である。
【図2】対象画像レジスタ群の構成を示す図である。
【図3】対象画像レジスタ群に入力されるデータの一例である。
【図4】対象画像レジスタ群で保持されるデータの並びを示す図である。
【図5】参照画像レジスタ群に入力される参照画像データの例である。
【図6】参照画像レジスタ群の構成を示す図である。
【図7】参照画像レジスタ群から相関演算回路群に出力される参照画像データの例である。
【図8】参照画像レジスタ群から相関演算回路群に出力される参照画像データのその他の例である。
【図9】相関演算回路群及び請求項4記載の本発明である相関演算回路の構成である。
【図10】相関演算回路群に入力される対象画像データのうち、同一マクロブロックかつ同一フィールドに属するデータを示す図である。
【図11】請求項1の本発明のタイムチャートである。
【図12】参照画像データの座標表現を説明する図である。
【図13】参照画像レジスタ群に入力されるデータのその他の例である。
【図14】請求項2記載の本発明の実施の形態のブロック図である。
【図15】参照画像データを重複して入力する場合を説明する図である。
【図16】請求項2の本発明のタイムチャートである。
【図17】動きベクトル検出の探索範囲を示す図である。
【符号の説明】
1 動きベクトル検出装置
2 対象画像レジスタ群
3 参照画像レジスタ群
4 相関演算回路群
5 最適ベクトル選択回路
11 動きベクトル検出装置
12 対象画像レジスタ群
13 相関演算回路群
14 最適ベクトル選択回路
21 相関演算回路
22 相関演算回路
23 相関演算回路
24 相関演算回路
25 相関演算回路
26 相関演算回路
27 相関演算回路
28 相関演算回路
Claims (6)
- 動きベクトル検出の対象画像をM画素×N画素のブロックに分割し、該ブロック毎に参照画像との間の動きベクトルを検出する動きベクトル検出装置であって、対象画像を格納する対象画像レジスタ群と参照画像を格納する参照画像レジスタ群と、対象画像レジスタ群と参照画像レジスタ群に接続し対象画像と参照画像間の相関値を計算する相関演算回路群を備え、対象画像レジスタ群には隣接する複数ブロックの対象画像データをフィールド毎に間引いてM×N画素とした対象画像処理ブロックを保持し、該M×N画素のデータを同時に相関演算回路群に出力し、参照画像レジスタ群はM×N×K画素分のレジスタを行列状に配置して一次元に接続し、前記参照画像レジスタ群に前記対象画像処理ブロックの動きベクトル探索に必要な参照画像を左端から上下方向に順次入力し、ブロックサイズの参照画像データを画面上の位置をシフトしながら相関演算回路群に順次出力し、該相関演算回路群は対象画像データと順次入力される参照画像データ間の相関値を計算する相関演算回路を複数備え、前記対象画像処理ブロックのうち、同一対象ブロックの同一フィールドに属する画素の相関演算に対して前記相関演算器を1つずつ割り当て、動きベクトル検出処理すること、を特徴とする動きベクトル検出装置。
- 複数の前記対象画像処理ブロックに対し、それぞれ前記対象画像レジスタ群と相関演算回路群を備え、隣接する前記対象画像処理ブロックに対する動きベクトル検出を並列に行うことを特徴とする請求項1記載の動きベクトル検出装置。
- 動きベクトル検出の対象画像を水平方向に1/Pに間引き、垂直方向に1/Qに間引いて前記対象画像レジスタ群に入力し、対象画像レジスタ群内で水平方向にP画素毎、垂直方向にQ×2画素毎のデータが同一ブロックの同一フィールドに属する対象画像データとなるように前記対象画像処理ブロックを保持することを特徴とする請求項1または2記載の動きベクトル検出装置。
- 前記相関演算回路は複数の差分絶対値回路と複数の加算器を備え、同時に入力される複数の対象画像データと参照画像データ間の相関演算を一括して行うことを特徴とする請求項1,2または3記載の動きベクトル検出装置。
- 動きベクトル検出の対象画像をM画素×N画素のブロックに分割し、該ブロック毎に参照画像との間の動きベクトルを検出する動きベクトル検出装置であって、対象画像を格納する対象画像レジスタ群と参照画像を格納する参照画像レジスタ群と、対象画像レジスタ群と参照画像レジスタ群に接続し対象画像と参照画像間の相関値を計算する相関演算回路群を備え、対象画像レジスタ群には隣接する複数ブロックの対象画像データをフレーム毎に間引いてM×N画素とした対象画像処理ブロックを保持し、該M×N画素のデータを同時に相関演算回路群に出力し、参照画像レジスタ群はM×N×K画素分のレジスタを行列状に配置して一次元に接続し、前記参照画像レジスタ群に前記対象画像処理ブロックの動きベクトル探索に必要な参照画像を左端から上下方向に順次入力し、ブロックサイズの参照画像データを画面上の位置をシフトしながら相関演算回路群に順次出力し、該相関演算回路群は対象画像データと順次入力される参照画像データ間の相関値を計算する相関演算回路を複数備え、前記対象画像処理ブロックのうち、同一対象ブロックに属する画素の相関演算に対して前記相関演算器を1つずつ割り当て、動きベクトル検出処理すること、を特徴とする動きベクトル検出装置。
- 動きベクトル検出の対象画像を水平方向に1/Pに間引き、垂直方向に1/Qに間引いて前記対象画像レジスタ群に入力し、対象画像レジスタ群内で水平方向にP画素毎、垂直方向にQ画素毎のデータが同一ブロックに属する対象画像データとなるように前記対象画像処理ブロックを保持することを特徴とする請求項5記載の動きベクトル検出装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27673196A JP3698501B2 (ja) | 1996-10-21 | 1996-10-21 | 動きベクトル検出装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27673196A JP3698501B2 (ja) | 1996-10-21 | 1996-10-21 | 動きベクトル検出装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10126783A JPH10126783A (ja) | 1998-05-15 |
JP3698501B2 true JP3698501B2 (ja) | 2005-09-21 |
Family
ID=17573564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27673196A Expired - Fee Related JP3698501B2 (ja) | 1996-10-21 | 1996-10-21 | 動きベクトル検出装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3698501B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040247032A1 (en) * | 2002-07-29 | 2004-12-09 | Yuichiro Aihara | Motion vector detection device and motion vector detection method |
JP2007189441A (ja) * | 2006-01-12 | 2007-07-26 | Fujifilm Corp | 動き検出方法及びその装置 |
-
1996
- 1996-10-21 JP JP27673196A patent/JP3698501B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10126783A (ja) | 1998-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100203913B1 (ko) | 모션 벡터 생성기 | |
JP4095664B2 (ja) | 動画像符号化装置 | |
KR20030007087A (ko) | 움직임 추정 장치 및 탐색영역에서 레퍼런스매크로블록창의 스캐닝 방법 | |
JPH0568155B2 (ja) | ||
JPH07115646A (ja) | 画像処理装置 | |
JPH11168727A (ja) | 動きベクトル検出装置 | |
WO2010070809A1 (ja) | 撮像装置 | |
JP2005512202A (ja) | 画像データ検索 | |
JP3698501B2 (ja) | 動きベクトル検出装置 | |
KR101091054B1 (ko) | 동화상 부호화에 있어서의 움직임 탐색 장치 | |
JP4744943B2 (ja) | 動きベクトル検出方法および動画処理装置 | |
JPWO2004012460A1 (ja) | 動きベクトル検出装置及び動きベクトル検出方法 | |
JP2007088910A (ja) | 動きベクトル検出装置及び撮像装置 | |
US6968011B2 (en) | Motion vector detecting device improved in detection speed of motion vectors and system employing the same devices | |
JPH05300497A (ja) | 画像処理装置及びディジタル信号処理プロセッサ | |
JP3580612B2 (ja) | 動画像符号化装置の動き検出装置 | |
JP3483751B2 (ja) | 動きベクトル検出装置及び動きベクトル検出方法 | |
JP3968161B2 (ja) | 動ベクトル検出装置および記録媒体 | |
JPH10224797A (ja) | 動きベクトル検出装置及びそれを用いた動画像符号化装置 | |
JP2007151169A (ja) | 動ベクトル検出装置および記録媒体 | |
JP2866324B2 (ja) | 動きベクトル探索装置 | |
JP2931783B2 (ja) | 動きベクトル探索装置 | |
JP4570700B2 (ja) | 動ベクトル検出装置 | |
JP2866321B2 (ja) | 動きベクトル探索方法および装置 | |
JP2963369B2 (ja) | 動きベクトル探索装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050208 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050310 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050314 |
|
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: 20050705 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050705 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080715 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090715 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |