JP2004260251A - 動きベクトル検出装置及び動きベクトル検出プログラム - Google Patents
動きベクトル検出装置及び動きベクトル検出プログラム Download PDFInfo
- Publication number
- JP2004260251A JP2004260251A JP2003045504A JP2003045504A JP2004260251A JP 2004260251 A JP2004260251 A JP 2004260251A JP 2003045504 A JP2003045504 A JP 2003045504A JP 2003045504 A JP2003045504 A JP 2003045504A JP 2004260251 A JP2004260251 A JP 2004260251A
- Authority
- JP
- Japan
- Prior art keywords
- motion vector
- block
- motion
- detection
- detection range
- 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
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】動画像情報を高能率符号化する動き補償予測符号化に用いられ、省メモリ化と演算処理量の削減の図れる動きベクトル検出装置及び動きベクトル検出プログラムを提供する。
【解決手段】動きベクトルの検出範囲内の画素の前記検出範囲の中心からの距離に応じて、前記検出範囲内の画素に対してブロックマッチングにおける比較対象となる動き検出対象ブロック内の画素の間引き率を設定する間引き率設定手段と、前記設定された間引き率に応じて、ブロックマッチングに用いる前記動き検出対象ブロック内の画素及び前記検出範囲内の画素を間引く間引き手段とを設ける。
【選択図】 図1
【解決手段】動きベクトルの検出範囲内の画素の前記検出範囲の中心からの距離に応じて、前記検出範囲内の画素に対してブロックマッチングにおける比較対象となる動き検出対象ブロック内の画素の間引き率を設定する間引き率設定手段と、前記設定された間引き率に応じて、ブロックマッチングに用いる前記動き検出対象ブロック内の画素及び前記検出範囲内の画素を間引く間引き手段とを設ける。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は動画像情報を高能率符号化する動き補償予測符号化における動きベクトル検出に係り、特に省メモリ化と演算処理量の削減の図れる動きベクトル検出装置及び動きベクトル検出プログラムに関する。
【0002】
【従来の技術】
動画像符号化として、従来から動き補償予測が用いられている。動き補償予測はMPEGなど国際標準方式でも広く用いられていて、ブロック毎に画像間予測を行なう際に動画像の動きに合わせて画像の各ブロックを移動させてから予測する。動き補償予測は一般に16×16画素または8×8画素単位で行われ、動きベクトルもその単位で求められる。
【0003】
以下、上記のような動き補償予測を行う従来の符号化装置について図面及びフローチャートに基づき説明する。図 14は従来の動き補償予測を行う符号化装置の構成例を示すブロック図である。また図 15は従来の動き補償予測を行う符号化装置を説明するフローチャートである。
【0004】
入力された画像信号は、動き検出器111に与えられる一方、減算器101において動き補償予測器110から与えられる画像間予測信号が減算され、予測誤差となってDCT102に与えられる(ステップS103)。DCT102は8×8画素単位で離散コサイン変換(DCT)の変換処理を行い、得られた係数を量子化器103に与える(ステップS104)。量子化器103は所定の量子化ステップ幅で係数を量子化し、固定長の符号となった係数を可変長符号化器104と逆量子化器106に与える(ステップS105)。可変長符号化器104は2次元の8×8個の係数を1次元に変換し、係数をハフマン符号で符号化し、ハフマン符号列は多重化器105に与えられる(ステップS106)。
【0005】
一方、逆量子化器106及び逆DCT107ではDCT102及び量子化器103の逆処理が行われ、予測誤差を再生する(ステップS109及びステップS110)。得られた予測誤差には加算器108で予測信号が加算され参照画像となり(ステップS111)、画像メモリ109に蓄えられる(ステップS112)。画像メモリ109は参照画像を動き検出器111と動き補償予測器110に与える。
【0006】
動き補償予測器110は、動き検出器111から与えられる動きベクトルに従って、画像メモリ109に蓄積されている画像をブロック毎に移動させ、画像間予測信号を得る(ステップS102)。動き補償予測により得られた画像間予測信号は、減算器101及び加算器108に与えられる。動き検出器111では、動き補償予測のブロック単位で画像メモリ109に蓄積されている参照画像をハーフペル単位で移動させて入力画像とブロックマッチングを取り、最もマッチングのとれた移動を動きベクトルとする(ステップS101)。得られた動きベクトルは動き補償予測器110の他に、動きベクトル符号化器112にも与えられる。動きベクトル符号化器112では、所定の手順で求められた予測動きベクトルと符号化対象となるブロックの動きベクトルを水平成分、垂直成分毎に比較し、その差分値を符号化する(ステップS107)。符号化された動きベクトルの符号列は多重化器105で、画像間予測誤差の符号列と多重化される(ステップS108)。
【0007】
ここで、従来の動き補償予測における動きベクトルの検出手法について説明する。動きベクトルの検出手法にはブロックマッチング法がよく利用されている。このブロックマッチング法は、動き検出対象ブロック(N×N画素)を参照画像中の検出範囲内の画像と画素単位で全ての位置毎にマッチングをとり、マッチング評価関数を計算し、最もマッチングのとれた位置、すなわち最もマッチング評価関数の値が小さくなる位置を動きベクトルとする手法である。マッチング評価関数としては、例えばブロック内の全画素について、画素毎の画素値の差分の絶対値の和をとったもの(絶対値差分和)が使われる。
【0008】
フルサーチ法の場合は、検出範囲内の全ての位置においてブロックマッチングが行われるため計算量が膨大になるという問題がある。このため、3ステップサーチ法(例えば「会議テレビ信号の動き補償フレーム間符号化」(信学技報IE81−54 1981−7)を参照)や階層化サーチ法(例えば、「階層画素情報を用いた動画像における動き量検出方式」電子情報通信学会論文誌D−II Vol.J72−D−II No.3pp.395−403 1989年3月を参照)などの簡略化手法が提案されている。
【0009】
3ステップサーチ法は、図 16に示すように、検出範囲内の全ての位置をサーチする代わりに、まず第1段として、粗い間隔で3×3の9点のサーチを行い、最もマッチングのとれた位置を中心に、サーチする間隔を、第1段のときの半分にして第2段の検出を行う。同様の処理を複数段繰り返して、粗から密へ検出点の間隔を絞っていき動きベクトルを検出する方法である。±7画素の検出範囲の場合、3段で終了する。フルサーチ法の場合と比較すると処理量に大きく削減される。ただし、線画部分などの高解像度部分では、最初の方の段階での粗い検出位置とマッチングすべき位置がたまたま合っている場合を除いて、検出初期段階で誤った動きベクトルを検出する場合があり、実際の動き補償予測画像における予測誤差を大きくしてしまうという問題がある。
【0010】
これに対して、階層化サーチ法は、低域通過型フィルタおよびサブサンプリングによって、水平・垂直方向について、各々1/2ずつ解像度を落した複数解像度の多階層画像を生成し、低解像度階層画像から動きベクトルを検出し、順次1つ上の階層での検出動きベクトルを参照しながら次階層の動きベクトル検出を行う方法で、各階層の動きベクトル検出はブロックマッチング法を用いる。
【0011】
なお、以下の説明では、低解像度画像を下位の階層画像とし、高解像度画像を上位の階層画像と定義する。各階層での検出範囲の大きさは通常固定されていて、例えば水平・垂直±2画素の5×5=25点を検出位置とする。各階層の検出範囲の中心位置は、1つ上の階層での検出動きベクトルを2倍にした位置が使われる。
【0012】
図 17は、階層化サーチ法における検出範囲の中心位置の設定を説明する図である。下位階層において、始点10を中心として検出範囲11で動きベクトル検出を行った結果、動きベクトル12が検出されたとする。上位階層では、動きベクトル12を2倍した位置20を中心として検出範囲21で動きベクトルを検出する。
【0013】
以下、上記のような階層化サーチを行う動き検出器111について図面及びフローチャートに基づき説明する。図 18は、階層化サーチを行う従来の動き検出器の構成例を示すブロック図である。また図 19及び図 20は階層化サーチを行う従来の動き検出器を説明するフローチャートである。
【0014】
入力画像は階層レベル1サブサンプル器211に与えられる。階層レベル1サブサンプル器211は入力された画像を水平方向及び垂直方向に1/2にサブサンプルして階層レベル1の入力画像を作成し、画像メモリ212及び階層レベル0サブサンプル器221に与える。参照画像は階層レベル1サブサンプル器214に与えられる。階層レベル1サブサンプル器214は入力された画像を水平方向及び垂直方向に1/2にサブサンプルして階層レベル1の参照画像を作成し、画像メモリ213及び階層レベル0サブサンプル器224に与える(ステップS201)。
【0015】
階層レベル0サブサンプル器221は入力された画像を水平方向及び垂直方向に1/2にサブサンプルして階層レベル0の入力画像を作成し、画像メモリ222に与える。階層レベル0サブサンプル器224は入力された画像を水平方向及び垂直方向に1/2にサブサンプルして階層レベル0の参照画像を作成し、画像メモリ223に与える(ステップS202)。階層レベル0動きベクトル決定器220は、検出開始点を(0,0)、検出範囲を±1、マッチングブロックサイズを4×4に設定して(ステップS203〜ステップ206)、画像メモリ222内の階層レベル0の入力画像と画像メモリ223内の階層レベル0の参照画像から絶対値差分和が最小となる位置の階層レベル0動きベクトルV(0)を求め(ステップS207)、V(0)を階層レベル1動きベクトル決定器210に与え、次の階層レベルに進む(ステップS208)。
【0016】
階層レベル1動きベクトル決定器210は、検出開始点をV(0)を2倍にスケーリングした位置、検出範囲を±1、マッチングブロックサイズを8×8に設定して(ステップS204〜ステップ206)、画像メモリ212内の階層レベル1の入力画像と画像メモリ213内の階層レベル1の参照画像から絶対値差分和が最小となる位置の階層レベル1動きベクトルV(1)を求め(ステップS207)、V(0)を階層レベル2動きベクトル決定器200に与え、次の階層レベルに進む(ステップS208)。階層レベル2動きベクトル決定器200は、検出開始点をV(1)を2倍にスケーリングした位置、検出範囲を±1、マッチングブロックサイズを16×16に設定して(ステップS204〜ステップ206)、入力画像と参照画像から絶対値差分和が最小となる位置の階層レベル1動きベクトルV(2)を求め(ステップS207)、V(2)を動きベクトルとして出力する。ここで、動きベクトルの決定(ステップS207)について説明する。
【0017】
各階層レベルの動きベクトル検出範囲内でブロックマッチング(ステップS251)をして、ブロックマッチングの評価値を評価し(ステップS252)、その評価値が最小であればそれを動きベクトルとし(ステップS253)、そうでなければ次の検出点についてブロックマッチング(ステップS251)を行う。
【0018】
なお、階層化サーチ法には、各階層での動き検出対象ブロックの大きさを、階層によらず一定の画素数とする方法(従って低解像度階層ほど実際の画像上でのブロックサイズは大きくなる)と、各階層のサブサンプル比率に応じて、動き検出対象ブロックの大きさを変え、実際上の画像において同じ領域の動きベクトル検出を行う方法とがある。
【0019】
このような階層化サーチ法では、低域通過型フィルタおよびサブサンプリングによって多階層画像を生成して各階層の動き検出を行うため、3ステップ法で動きベクトルを誤検出するような高解像度の部分に対しても、動きベクトルの誤検出を回避することができ、誤検出の場合の、実際の動き補償予測画像における予測誤差も3ステップサーチ法に比べて大きくない。
【0020】
表1は動きベクトルの検出範囲が±7である場合のフルサーチ法におけるマッチングブロックサイズ、検出範囲、検出点数、差分演算回数を示している。表2は動きベクトルの検出範囲が±7である場合の3ステップサーチ法における各ステップでのマッチングブロックサイズ、検出範囲、検出点数、差分演算回数を示している。表3は、動きベクトルの検出範囲が±7である場合の階層化サーチ法における各階層でのマッチングブロックサイズ、検出範囲、検出点数、差分演算回数を示している。表1、表2、及び表3から3ステップサーチ法における差分演算回数はフルサーチ法における差分演算回数と比較して1/9に削減されている。また階層化サーチ法における差分演算回数はフルサーチ法における差分演算回数と比較して約1/21に削減されている。ただし、階層化サーチ法では階層レベル1及び階層レベル0の画像メモリが必要となる。
【0021】
【表1】
【0022】
【表2】
【0023】
【表3】
【0024】
【特許文献1】
特開平7−154801号公報
【0025】
【非特許文献1】
「会議テレビ信号の動き補償フレーム間符号化」(信学技報IE81−54 1981−7)
【0026】
【非特許文献2】
「階層画素情報を用いた動画像における動き量検出方式」(電子情報通信学会論文誌D−II Vol.J72−D−II No.3pp.395−403 1989年3月)
【0027】
【発明が解決しようとする課題】
フルサーチ法はブロックマッチングを用いる動きベクトル検出としては最高の精度を得ることができる。しかし、フルサーチ法では処理量は膨大であるという問題がある。階層化サーチ法はフルサーチよりも検出精度は劣るが、検出範囲内を均一に動きベクトルを検出する特徴を有している。しかし、階層化サーチ法では、高周波成分で各階層レベルにおける入力画像と参照画像のための画像メモリが必要となる問題がある。また、3ステップサーチ法では画像メモリは必要ないが、線画部分などの高解像度部分では、最初のステップで誤った動きベクトルを検出した場合には正しい動きベクトルが得られない問題がある。
【0028】
本発明は以上の点を鑑みてなされたもので、動きベクトルの検出範囲の中心点からの距離に応じてブロックマッチングに用いる画素を間引くことで、演算量を削減し、余計な画像メモリを必要としない精度の良い動きベクトル検出装置びプログラムを提供することを目的とする。
【0029】
【課題を解決するための手段】
そこで上記課題を解決するために本発明は、下記の装置及びプログラムを提供するものである。
(1) 入力画像を所定数の画素単位毎にブロック化し、前記入力画像において各ブロックを順次動き検出対象ブロックとして設定し、参照画像において前記動き検出対象ブロックに応じて順次検出範囲を設定し、前記各動き検出対象ブロック内の画素と前記各検出範囲内の画素とを比較して、ブロックマッチングにより前記各動き検出対象ブロック毎に動きベクトルを求める動画像の動きベクトル検出装置において、
前記検出範囲内の画素の前記検出範囲の中心からの距離に応じて、前記検出範囲内の画素に対してブロックマッチングにおける比較対象となる前記動き検出対象ブロック内の画素の間引き率を設定する間引き率設定手段と、
前記設定された間引き率に応じて、ブロックマッチングに用いる前記動き検出対象ブロック内の画素及び前記検出範囲内の画素を間引く間引き手段と、
を設けたことを特徴とする動きベクトル検出装置。
(2) 上記(1)記載の動きベクトル検出装置において、
動き検出対象ブロックに設定されたブロックに隣接する、既に動きベクトルが求められているブロックの動きベクトルを用いて、予め定められている所定方法に従って求められる予測動きベクトルに応じて、前記動き検出対象ブロックに対して設定される前記検出範囲の中心位置を移動させる検出範囲移動手段を設けたことを特徴とする動きベクトル検出装置。
(3) 上記(1)記載の動きベクトル検出装置において、
前記間引き率設定手段は、動き検出対象ブロックに設定されたブロックに隣接する、既に動きベクトルが求められているブロックの動きベクトル、及び前記検出範囲の中心からの距離に応じて、前記間引き率を設定するものであることを特徴とする動きベクトル検出装置。
(4) 動画像である入力画像を所定数の画素単位毎にブロック化し、前記入力画像において各ブロックを順次動き検出対象ブロックとして設定し、参照画像において前記動き検出対象ブロックに応じて順次検出範囲を設定し、前記各動き検出対象ブロック内の画素と前記各検出範囲内の画素とを比較して、ブロックマッチングにより前記各動き検出対象ブロック毎に動きベクトルを求める動作をコンピュータに行わせる動きベクトル検出プログラムにおいて、
前記検出範囲内の画素の前記検出範囲の中心からの距離に応じて、前記検出範囲内の画素に対してブロックマッチングにおける比較対象となる前記動き検出対象ブロック内の画素の間引き率を設定する間引き率設定手機能と、
前記設定された間引き率に応じて、ブロックマッチングに用いる前記動き検出対象ブロック内の画素及び前記検出範囲内の画素を間引く間引き機能と、
をコンピュータに実行させることを特徴とする動きベクトル検出プログラム。
【0030】
【発明の実施の形態】
(第1実施例)
以下、本発明の第1実施例について図面及びフローチャートに基づき説明する。図 1は本発明に係る動きベクトル検出器の第1実施例を用いた符号化装置の一実施例を示すブロック図である。図 1は、従来の動きベクトル検出器を用いた符号化装置の例である図 14と同じ構成である。ただし、動き検出器111の動作が従来例と異なる。図 1で減算器101、DCT102、量子化器103、可変長符号化器104、多重化器105、逆量子化器106、逆DCT107、加算器108、画像メモリ109、動き補償予測器110、及び動きベクトル符号化器の動作は従来例と同じである。
【0031】
図 2は本発明の第1実施例を用いた符号化装置の一実施例を説明するフローチャートである。図 2は、従来の動きベクトル検出器を用いた符号化装置を説明するフローチャートである図 15と同じ手順である。ただし、手順S101の動作が従来例と異なる。図 2で手順S102、手順S103、手順S104、手順S105、手順S106、手順S107、手順S108、手順S109、手順S110、手順S111、及び手順S112は従来例と同じである。
【0032】
以下、本実施例における動きベクトル検出器の従来例との違いを図面及びフローチャートに基づき説明する。図 3は動きベクトル検出器の第1実施例を示すブロック図である。図 4は動きベクトル検出器の第1実施例を説明するフローチャートである。
【0033】
ブロックマッチング設定器301はあらかじめ決められた(ステップS301)方法に従って動きベクトルの検出範囲の中心からの距離に応じてブロックマッチングに用いる画素の間引き率を設定し(ステップS302)、その情報を動きベクトル決定器300、間引き器302、303に与える。間引き器302は与えられた間引き率に従って入力画像を間引き、間引いた入力画像を動きベクトル決定器300に与える(ステップS303)。間引き器303は与えられた間引き率に従って参照画像を間引き、間引いた参照画像を動きベクトル決定器300に与える(ステップS304)。
【0034】
動きベクトル決定器300は与えられた間引き率に従って、ブロックマッチングを行い(ステップS305)、ブロックマッチングの評価値を評価し(ステップS306)、その評価値が最小であればそれを動きベクトルとし(ステップS307)、そうでなければ次の検出点に移る。動きベクトル検出範囲内のブロックマッチングが全て終了すると、動きベクトルを出力する。
【0035】
本実施例における動きベクトルの検出範囲の中心からの距離に応じてブロックマッチングに用いる画素の間引き率を設定する方法について図 5を用いて説明する。
【0036】
動きベクトルは16×16画素のブロック単位で求め、動きベクトルの検出範囲は水平方向、垂直方向に±7画素であるとする。ブロックマッチングに用いる画素の間引き率を検出範囲の中心からの距離に応じて3段階のマッチングレベルに分けるとする。図 5において検出中心位置50は動きベクトルを(0,0)とした位置であるとし、検出中心位置50を中心として水平方向、垂直方向に±2画素の範囲を第1の検出範囲51とする(マッチングレベル1)。第1の検出範囲51から検出中心位置50を中心として水平方向、垂直方向に±4画素の範囲を第2の検出範囲52とする(マッチングレベル2)。第2の検出範囲52から検出中心位置50を中心として水平方向、垂直方向に±7画素の範囲を第3の検出範囲53とする(マッチングレベル3)。第1の検出範囲51、第2の検出範囲52、第3の検出範囲53のそれぞれにブロックマッチングに用いる画素の間引き率を割り当てる。
【0037】
第1の検出範囲51の中では図 6(A)で示されるように、動きベクトル検出の対象となるブロックの全画素をブロックマッチングに用いる。マッチング評価関数F(x,y)は式1で表すことができる。ここでx、yは検出位置の水平位置、垂直位置であり、CurPixel(i,j)は入力画像の動きベクトル検出の対象となるブロック内の画素であり、RefPixel(i,j)は検出位置における参照画像のブロック内の画素である。
【0038】
【数1】
第2の検出範囲52の中では図 6(B)で示されるように、動きベクトル検出の対象となるブロックに対して水平方向、垂直方向にそれぞれ1/2間引いた画素をブロックマッチングに用いる。マッチング評価関数F(x,y)は式2で表すことができる。
【0039】
【数2】
第3の検出範囲53の中では図 6(C)で示されるように、動きベクトル検出の対象となるブロックに対して水平方向、垂直方向にそれぞれ1/4間引いた画素をブロックマッチングに用いる。マッチング評価関数F(x,y)は式3で表すことができる。
【0040】
【数3】
以上のようにして求めたマッチング評価関数F(x,y)の値が最小となる位置を動きベクトルとする。
【0041】
検出範囲の中心からの距離が大きくなるに従って、ブロックマッチングに用いる画素の間引き率を大きくするのは、人間の目の視覚特性に基づいた処理である。一般的に人間の目は動きの早いものに対しては認知力が低下するという特性があり、この特性を利用した処理である。認知力の高い小さな動きを高精度で検出し、認知力の低い大きな動きについては精度を落として検出することを特徴としている。
【0042】
表4は動きベクトルの検出範囲が±7である本実施例における各マッチングレベルにおけるブロックマッチングブロックサイズ、検出範囲、検出点数、差分演算回数を示している。表1、表2、表3と比較すると、本実施例の差分演算回数はフルサーチ法における差分演算回数と比較して約1/5に削減されている。検出点数がフルサーチと同じ225であるため検出した動きベクトルの精度は高い。3ステップサーチ法と比較すると差分演算回数は1.68倍になっているが、3ステップサーチ法のように検出点数を減らしていないため、線画部分などの高解像度部分において誤った動きベクトルを検出する確率は極めて低く、高精度な動きベクトルを得ることができる。階層サーチ法と比較すると差分演算回数は約4倍になっているが、階層化サーチ法のように各階層レベルにおける入力画像と参照画像のための画像メモリが不要である。
【0043】
【表4】
(第2実施例)
本発明の第2実施例について図面及びフローチャートに基づき説明する。図 7は本発明に係る動きベクトル検出器の第2実施例を用いた符号化装置の一実施例を示すブロック図である。図 7は、図 1に示す符号化装置と同じ構成である。ただし、動き検出器111の動作が図 1に示す符号化装置と異なる。図 7で、減算器101、DCT102、量子化器103、可変長符号化器104、多重化器105、逆量子化器106、逆DCT107、加算器108、画像メモリ109、動き補償予測器110、及び動きベクトル符号化器112の動作は図 1に示す符号化装置と同じである。
【0044】
以下、第2実施例における動きベクトル検出器の第1実施例との違いを図面及びフローチャートに基づき説明する。図 8は動きベクトル検出器の第2実施例を示すブロック図である。図 8は、第1実施例を示す図 3と比較して、動きベクトル予測器304が増えている。また、間引き設定器301、動きベクトル決定器300の動作が本発明の第1実施例と異なる。図 8で、間引き器302、303の動作は本発明の第1実施例と同じである。図 9は動きベクトル検出器の第2実施例を説明するフローチャートである。図 9は本発明の第1実施例を説明した図 4と比較して、手順S300が増えている。また、手順S301が本発明の第一の実施例と異なる。
【0045】
動きベクトル予測器304は予測動きベクトルを所定の手順で求め(ステップS300)、間引き設定器301に与える。間引き設定器301は与えられたは与えられた予測動きベクトルに従って、動きベクトルの検出範囲の中心からの距離に応じたブロックマッチングに用いる画素の間引き率を設定する(ステップS301)。動きベクトルの検出範囲内のブロックマッチングが終了すると、動きベクトル決定器300は動きベクトルを動きベクトル予測器304に与え、動きベクトルを出力する。
【0046】
予測動きベクトルを求める手順について図 10を用いて説明する。図 10において、ブロックXの予測動きベクトルであるMVp(X)を求める。ブロックXの隣接ブロックA、B、Cのそれぞれの動きベクトルをMV(A)、MV(B)、MV(C)とする。最も単純な方法として、左隣のブロックの動きベクトルを用いてMVp(X)=MV(C)とする方法がある。これらはMPEG−2などで用いられている方法である。またMV(A)、MV(B)、MV(C)の水平方向、垂直方向それぞれの値の中央値をとる方法もある。この方法はMPEG−4で用いられている方法であり、MV(A)=(0,2)、MV(B)=(1、−1)、MV(C)=(3,3)であれば、MVp(X)=(1,2)となる。
【0047】
本実施例における動きベクトルの検出範囲の中心からの距離に応じてブロックマッチングに用いる画素の間引き率を設定する方法について図 5と図 11を用いて説明する。予測動きベクトルMVp(x,y)に応じて、第1の検出範囲であるRange1(x,y)及び第2の検出範囲であるRange2(x,y)が式4に従って変化する。
【0048】
【数4】
例えば、MVpが(0,0)であれば、検索範囲の中心位置50は(0,0)となり、間引き率の設定範囲は第一の実施例と同じ図 5となる。MVpが(3,3)であれば、検索範囲の検出中心位置50は(0,1)となり、間引き率の設定範囲は図 11となる。図 11において検出中心位置50を中心として水平方向、垂直方向に±2画素の範囲を第1の検出範囲51とする(マッチングレベル1)。第1の検出範囲51から検出中心位置50を中心として水平方向、垂直方向に±4画素の範囲を第2の検出範囲52とする(マッチングレベル2)。第2の検出範囲52の外側を第3の検出範囲53とする(マッチングレベル3)。それぞれのマッチングレベルは表4で示されている。
【0049】
本実施例では、間引き率の設定範囲の計算に平行移動の例をあげたが、これらに拡大や縮小の計算を加えても良い。例えば、動きの小さな入力画像に対しては、図 12のように、検出中心位置50を(0,0)とし、水平方向、垂直方向に±1画素の範囲を第1の検出範囲51(マッチングレベル1)とし、第1の検出範囲51から検出中心位置50を中心として水平方向、垂直方向に±2画素の範囲を第2の検出範囲52(マッチングレベル2)とし、第2の検出範囲52の外側を第3の検出範囲53(マッチングレベル3)として、マッチングレベル1、マッチングレベル2の範囲を小さくすることで演算量をさらに減らすことが可能となる。
【0050】
この場合の各マッチングレベルにおけるブロックマッチングブロックサイズ、検出範囲、検出点数、差分演算回数を表5に示す。この場合には差分演算回数は3ステップサーチ法とほぼ同じになる。このように入力画像の動きの大小に合わせて間引き率の設定を変化させることで、演算量をより小さくすることが可能である。
【0051】
【表5】
また、MVpを利用した間引き率設定方法において、動きベクトルの検出範囲の中心をMVpとして移動させる方法もある。例えば、MVpが(0,1)である場合に、動きベクトルの検出範囲の中心を(0,1)に移動させる。この結果は図 11と同じになる。動きが大きな入力画像に対しても、予測動きベクトルが正しく予測できる限りにおいて、動きベクトルの検出範囲の中心をMVpに合わせて移動させることによって、動きベクトルの検出範囲の広い、演算量の少ない、且つ精度の高い動きベクトルを検出することができる。
【0052】
次に、隣接するブロックの動きベクトルに応じてブロック内の画素を間引く率を設定する方法について説明する。本実施例においては隣接するブロックの動きベクトルとしてMVpを用いる。MVpが(0,3)であるような水平方向に移動するような動きに対しては図 13のような水平重視型の間引き率を設定する。検出中心位置50を(2,0)とし、水平方向±3画素、垂直方向に±1画素の範囲を第1の検出範囲51(マッチングレベル1)とし、第1の検出範囲51から検出中心位置50を中心として水平方向±4画素、垂直方向に±2画素の範囲を第2の検出範囲52(マッチングレベル2)とし、第2の検出範囲52の外側を第3の検出範囲53(マッチングレベル3)とする。
【0053】
MVpが(3,0)であるような垂直方向に移動するような動きに対しては図 13のような垂直重視型の間引き率を設定する。検出中心位置50を(0,2)とし、水平方向±1画素、垂直方向に±3画素の範囲を第1の検出範囲51(マッチングレベル1)とし、第1の検出範囲51から検出中心位置50を中心として水平方向±2画素、垂直方向に±4画素の範囲を第2の検出範囲52(マッチングレベル2)とし、第2の検出範囲52の外側を第3の検出範囲53(マッチングレベル3)とする。このようにすることで、動きベクトルの検出範囲の広い、演算量の少ない、且つ精度の高い動きベクトルを検出することができる。
【0054】
即ち、隣接するブロックの動きベクトルに応じてブロック内の画素を間引く率を設定する場合に、水平方向の移動であると判断される場合には垂直方向の画素を間引き率を大きくして垂直方向の移動であると判断される場合には水平方向の画素を間引く率を大きくするようにする。
【0055】
なお、本発明は、上記した動きベクトル検出器の機能をコンピュータに実現させるためのプログラムを含むものである。このプログラムは、記録媒体から読みとられてコンピュータに取り込まれてもよいし、通信ネットワーク等を介して伝送されてコンピュータに取り込まれてもよい。
【0056】
【発明の効果】
本発明は、検出範囲の中心からの距離に応じてブロックマッチングに用いる画素の間引き率を変化させることで、演算量を減らし、余計な画像メモリを必要とせず、動きの小さな動画像に対しては特に精度の高い動きベクトルを検出することができる。
【0057】
また、予測動きベクトルに応じて動きベクトルの検出範囲の中心位置を移動させるようにした場合には、動きの大きな動画像に対しても、演算量を減らし、余計な画像メモリを必要とせず、精度の高い動きベクトルを検出することができる。
【0058】
また、隣接するブロックの動きベクトルに応じてブロックマッチングに用いる画素の間引き率を変化させるようにした場合には、さらに演算量を減らし、余計な画像メモリを必要とせず、精度の高い動きベクトルを検出することができる。
【図面の簡単な説明】
【図1】本発明に係る動きベクトル検出器の第1実施例を用いた符号化装置の一実施例を示すブロック図である。
【図2】本発明の第1実施例を用いた符号化装置の一実施例を説明するフローチャートである。
【図3】動きベクトル検出器の第1実施例を示すブロック図である。
【図4】動きベクトル検出器の第1実施例を説明するフローチャートである。
【図5】間引き率の設定範囲を示す図である。
【図6】ブロックマッチングに用いる画素の例を示す図である。
【図7】本発明に係る動きベクトル検出器の第2実施例を用いた符号化装置の一実施例を示すブロック図である。
【図8】動きベクトル検出器の第2実施例を示すブロック図である。
【図9】動きベクトル検出器の第2実施例を説明するフローチャートである。
【図10】予測動きベクトルを求める手順を示す図である。
【図11】間引き率の設定範囲を示す図である。
【図12】間引き率の設定範囲を示す図である。
【図13】間引き率の設定範囲を示す図である。
【図14】従来の動き補償予測を行う符号化装置の構成例を示すブロック図である。
【図15】従来の動き補償予測を行う符号化装置を説明するフローチャートである。
【図16】3ステップサーチ法を説明するための図である。
【図17】階層化サーチ法を説明するための図である。
【図18】階層化サーチを行う従来の動き検出器の構成例を示すブロック図である。
【図19】階層化サーチを行う従来の動き検出器を説明するフローチャートである。
【図20】階層化サーチを行う従来の動き検出器を説明するフローチャートである。
【発明の属する技術分野】
本発明は動画像情報を高能率符号化する動き補償予測符号化における動きベクトル検出に係り、特に省メモリ化と演算処理量の削減の図れる動きベクトル検出装置及び動きベクトル検出プログラムに関する。
【0002】
【従来の技術】
動画像符号化として、従来から動き補償予測が用いられている。動き補償予測はMPEGなど国際標準方式でも広く用いられていて、ブロック毎に画像間予測を行なう際に動画像の動きに合わせて画像の各ブロックを移動させてから予測する。動き補償予測は一般に16×16画素または8×8画素単位で行われ、動きベクトルもその単位で求められる。
【0003】
以下、上記のような動き補償予測を行う従来の符号化装置について図面及びフローチャートに基づき説明する。図 14は従来の動き補償予測を行う符号化装置の構成例を示すブロック図である。また図 15は従来の動き補償予測を行う符号化装置を説明するフローチャートである。
【0004】
入力された画像信号は、動き検出器111に与えられる一方、減算器101において動き補償予測器110から与えられる画像間予測信号が減算され、予測誤差となってDCT102に与えられる(ステップS103)。DCT102は8×8画素単位で離散コサイン変換(DCT)の変換処理を行い、得られた係数を量子化器103に与える(ステップS104)。量子化器103は所定の量子化ステップ幅で係数を量子化し、固定長の符号となった係数を可変長符号化器104と逆量子化器106に与える(ステップS105)。可変長符号化器104は2次元の8×8個の係数を1次元に変換し、係数をハフマン符号で符号化し、ハフマン符号列は多重化器105に与えられる(ステップS106)。
【0005】
一方、逆量子化器106及び逆DCT107ではDCT102及び量子化器103の逆処理が行われ、予測誤差を再生する(ステップS109及びステップS110)。得られた予測誤差には加算器108で予測信号が加算され参照画像となり(ステップS111)、画像メモリ109に蓄えられる(ステップS112)。画像メモリ109は参照画像を動き検出器111と動き補償予測器110に与える。
【0006】
動き補償予測器110は、動き検出器111から与えられる動きベクトルに従って、画像メモリ109に蓄積されている画像をブロック毎に移動させ、画像間予測信号を得る(ステップS102)。動き補償予測により得られた画像間予測信号は、減算器101及び加算器108に与えられる。動き検出器111では、動き補償予測のブロック単位で画像メモリ109に蓄積されている参照画像をハーフペル単位で移動させて入力画像とブロックマッチングを取り、最もマッチングのとれた移動を動きベクトルとする(ステップS101)。得られた動きベクトルは動き補償予測器110の他に、動きベクトル符号化器112にも与えられる。動きベクトル符号化器112では、所定の手順で求められた予測動きベクトルと符号化対象となるブロックの動きベクトルを水平成分、垂直成分毎に比較し、その差分値を符号化する(ステップS107)。符号化された動きベクトルの符号列は多重化器105で、画像間予測誤差の符号列と多重化される(ステップS108)。
【0007】
ここで、従来の動き補償予測における動きベクトルの検出手法について説明する。動きベクトルの検出手法にはブロックマッチング法がよく利用されている。このブロックマッチング法は、動き検出対象ブロック(N×N画素)を参照画像中の検出範囲内の画像と画素単位で全ての位置毎にマッチングをとり、マッチング評価関数を計算し、最もマッチングのとれた位置、すなわち最もマッチング評価関数の値が小さくなる位置を動きベクトルとする手法である。マッチング評価関数としては、例えばブロック内の全画素について、画素毎の画素値の差分の絶対値の和をとったもの(絶対値差分和)が使われる。
【0008】
フルサーチ法の場合は、検出範囲内の全ての位置においてブロックマッチングが行われるため計算量が膨大になるという問題がある。このため、3ステップサーチ法(例えば「会議テレビ信号の動き補償フレーム間符号化」(信学技報IE81−54 1981−7)を参照)や階層化サーチ法(例えば、「階層画素情報を用いた動画像における動き量検出方式」電子情報通信学会論文誌D−II Vol.J72−D−II No.3pp.395−403 1989年3月を参照)などの簡略化手法が提案されている。
【0009】
3ステップサーチ法は、図 16に示すように、検出範囲内の全ての位置をサーチする代わりに、まず第1段として、粗い間隔で3×3の9点のサーチを行い、最もマッチングのとれた位置を中心に、サーチする間隔を、第1段のときの半分にして第2段の検出を行う。同様の処理を複数段繰り返して、粗から密へ検出点の間隔を絞っていき動きベクトルを検出する方法である。±7画素の検出範囲の場合、3段で終了する。フルサーチ法の場合と比較すると処理量に大きく削減される。ただし、線画部分などの高解像度部分では、最初の方の段階での粗い検出位置とマッチングすべき位置がたまたま合っている場合を除いて、検出初期段階で誤った動きベクトルを検出する場合があり、実際の動き補償予測画像における予測誤差を大きくしてしまうという問題がある。
【0010】
これに対して、階層化サーチ法は、低域通過型フィルタおよびサブサンプリングによって、水平・垂直方向について、各々1/2ずつ解像度を落した複数解像度の多階層画像を生成し、低解像度階層画像から動きベクトルを検出し、順次1つ上の階層での検出動きベクトルを参照しながら次階層の動きベクトル検出を行う方法で、各階層の動きベクトル検出はブロックマッチング法を用いる。
【0011】
なお、以下の説明では、低解像度画像を下位の階層画像とし、高解像度画像を上位の階層画像と定義する。各階層での検出範囲の大きさは通常固定されていて、例えば水平・垂直±2画素の5×5=25点を検出位置とする。各階層の検出範囲の中心位置は、1つ上の階層での検出動きベクトルを2倍にした位置が使われる。
【0012】
図 17は、階層化サーチ法における検出範囲の中心位置の設定を説明する図である。下位階層において、始点10を中心として検出範囲11で動きベクトル検出を行った結果、動きベクトル12が検出されたとする。上位階層では、動きベクトル12を2倍した位置20を中心として検出範囲21で動きベクトルを検出する。
【0013】
以下、上記のような階層化サーチを行う動き検出器111について図面及びフローチャートに基づき説明する。図 18は、階層化サーチを行う従来の動き検出器の構成例を示すブロック図である。また図 19及び図 20は階層化サーチを行う従来の動き検出器を説明するフローチャートである。
【0014】
入力画像は階層レベル1サブサンプル器211に与えられる。階層レベル1サブサンプル器211は入力された画像を水平方向及び垂直方向に1/2にサブサンプルして階層レベル1の入力画像を作成し、画像メモリ212及び階層レベル0サブサンプル器221に与える。参照画像は階層レベル1サブサンプル器214に与えられる。階層レベル1サブサンプル器214は入力された画像を水平方向及び垂直方向に1/2にサブサンプルして階層レベル1の参照画像を作成し、画像メモリ213及び階層レベル0サブサンプル器224に与える(ステップS201)。
【0015】
階層レベル0サブサンプル器221は入力された画像を水平方向及び垂直方向に1/2にサブサンプルして階層レベル0の入力画像を作成し、画像メモリ222に与える。階層レベル0サブサンプル器224は入力された画像を水平方向及び垂直方向に1/2にサブサンプルして階層レベル0の参照画像を作成し、画像メモリ223に与える(ステップS202)。階層レベル0動きベクトル決定器220は、検出開始点を(0,0)、検出範囲を±1、マッチングブロックサイズを4×4に設定して(ステップS203〜ステップ206)、画像メモリ222内の階層レベル0の入力画像と画像メモリ223内の階層レベル0の参照画像から絶対値差分和が最小となる位置の階層レベル0動きベクトルV(0)を求め(ステップS207)、V(0)を階層レベル1動きベクトル決定器210に与え、次の階層レベルに進む(ステップS208)。
【0016】
階層レベル1動きベクトル決定器210は、検出開始点をV(0)を2倍にスケーリングした位置、検出範囲を±1、マッチングブロックサイズを8×8に設定して(ステップS204〜ステップ206)、画像メモリ212内の階層レベル1の入力画像と画像メモリ213内の階層レベル1の参照画像から絶対値差分和が最小となる位置の階層レベル1動きベクトルV(1)を求め(ステップS207)、V(0)を階層レベル2動きベクトル決定器200に与え、次の階層レベルに進む(ステップS208)。階層レベル2動きベクトル決定器200は、検出開始点をV(1)を2倍にスケーリングした位置、検出範囲を±1、マッチングブロックサイズを16×16に設定して(ステップS204〜ステップ206)、入力画像と参照画像から絶対値差分和が最小となる位置の階層レベル1動きベクトルV(2)を求め(ステップS207)、V(2)を動きベクトルとして出力する。ここで、動きベクトルの決定(ステップS207)について説明する。
【0017】
各階層レベルの動きベクトル検出範囲内でブロックマッチング(ステップS251)をして、ブロックマッチングの評価値を評価し(ステップS252)、その評価値が最小であればそれを動きベクトルとし(ステップS253)、そうでなければ次の検出点についてブロックマッチング(ステップS251)を行う。
【0018】
なお、階層化サーチ法には、各階層での動き検出対象ブロックの大きさを、階層によらず一定の画素数とする方法(従って低解像度階層ほど実際の画像上でのブロックサイズは大きくなる)と、各階層のサブサンプル比率に応じて、動き検出対象ブロックの大きさを変え、実際上の画像において同じ領域の動きベクトル検出を行う方法とがある。
【0019】
このような階層化サーチ法では、低域通過型フィルタおよびサブサンプリングによって多階層画像を生成して各階層の動き検出を行うため、3ステップ法で動きベクトルを誤検出するような高解像度の部分に対しても、動きベクトルの誤検出を回避することができ、誤検出の場合の、実際の動き補償予測画像における予測誤差も3ステップサーチ法に比べて大きくない。
【0020】
表1は動きベクトルの検出範囲が±7である場合のフルサーチ法におけるマッチングブロックサイズ、検出範囲、検出点数、差分演算回数を示している。表2は動きベクトルの検出範囲が±7である場合の3ステップサーチ法における各ステップでのマッチングブロックサイズ、検出範囲、検出点数、差分演算回数を示している。表3は、動きベクトルの検出範囲が±7である場合の階層化サーチ法における各階層でのマッチングブロックサイズ、検出範囲、検出点数、差分演算回数を示している。表1、表2、及び表3から3ステップサーチ法における差分演算回数はフルサーチ法における差分演算回数と比較して1/9に削減されている。また階層化サーチ法における差分演算回数はフルサーチ法における差分演算回数と比較して約1/21に削減されている。ただし、階層化サーチ法では階層レベル1及び階層レベル0の画像メモリが必要となる。
【0021】
【表1】
【0022】
【表2】
【0023】
【表3】
【0024】
【特許文献1】
特開平7−154801号公報
【0025】
【非特許文献1】
「会議テレビ信号の動き補償フレーム間符号化」(信学技報IE81−54 1981−7)
【0026】
【非特許文献2】
「階層画素情報を用いた動画像における動き量検出方式」(電子情報通信学会論文誌D−II Vol.J72−D−II No.3pp.395−403 1989年3月)
【0027】
【発明が解決しようとする課題】
フルサーチ法はブロックマッチングを用いる動きベクトル検出としては最高の精度を得ることができる。しかし、フルサーチ法では処理量は膨大であるという問題がある。階層化サーチ法はフルサーチよりも検出精度は劣るが、検出範囲内を均一に動きベクトルを検出する特徴を有している。しかし、階層化サーチ法では、高周波成分で各階層レベルにおける入力画像と参照画像のための画像メモリが必要となる問題がある。また、3ステップサーチ法では画像メモリは必要ないが、線画部分などの高解像度部分では、最初のステップで誤った動きベクトルを検出した場合には正しい動きベクトルが得られない問題がある。
【0028】
本発明は以上の点を鑑みてなされたもので、動きベクトルの検出範囲の中心点からの距離に応じてブロックマッチングに用いる画素を間引くことで、演算量を削減し、余計な画像メモリを必要としない精度の良い動きベクトル検出装置びプログラムを提供することを目的とする。
【0029】
【課題を解決するための手段】
そこで上記課題を解決するために本発明は、下記の装置及びプログラムを提供するものである。
(1) 入力画像を所定数の画素単位毎にブロック化し、前記入力画像において各ブロックを順次動き検出対象ブロックとして設定し、参照画像において前記動き検出対象ブロックに応じて順次検出範囲を設定し、前記各動き検出対象ブロック内の画素と前記各検出範囲内の画素とを比較して、ブロックマッチングにより前記各動き検出対象ブロック毎に動きベクトルを求める動画像の動きベクトル検出装置において、
前記検出範囲内の画素の前記検出範囲の中心からの距離に応じて、前記検出範囲内の画素に対してブロックマッチングにおける比較対象となる前記動き検出対象ブロック内の画素の間引き率を設定する間引き率設定手段と、
前記設定された間引き率に応じて、ブロックマッチングに用いる前記動き検出対象ブロック内の画素及び前記検出範囲内の画素を間引く間引き手段と、
を設けたことを特徴とする動きベクトル検出装置。
(2) 上記(1)記載の動きベクトル検出装置において、
動き検出対象ブロックに設定されたブロックに隣接する、既に動きベクトルが求められているブロックの動きベクトルを用いて、予め定められている所定方法に従って求められる予測動きベクトルに応じて、前記動き検出対象ブロックに対して設定される前記検出範囲の中心位置を移動させる検出範囲移動手段を設けたことを特徴とする動きベクトル検出装置。
(3) 上記(1)記載の動きベクトル検出装置において、
前記間引き率設定手段は、動き検出対象ブロックに設定されたブロックに隣接する、既に動きベクトルが求められているブロックの動きベクトル、及び前記検出範囲の中心からの距離に応じて、前記間引き率を設定するものであることを特徴とする動きベクトル検出装置。
(4) 動画像である入力画像を所定数の画素単位毎にブロック化し、前記入力画像において各ブロックを順次動き検出対象ブロックとして設定し、参照画像において前記動き検出対象ブロックに応じて順次検出範囲を設定し、前記各動き検出対象ブロック内の画素と前記各検出範囲内の画素とを比較して、ブロックマッチングにより前記各動き検出対象ブロック毎に動きベクトルを求める動作をコンピュータに行わせる動きベクトル検出プログラムにおいて、
前記検出範囲内の画素の前記検出範囲の中心からの距離に応じて、前記検出範囲内の画素に対してブロックマッチングにおける比較対象となる前記動き検出対象ブロック内の画素の間引き率を設定する間引き率設定手機能と、
前記設定された間引き率に応じて、ブロックマッチングに用いる前記動き検出対象ブロック内の画素及び前記検出範囲内の画素を間引く間引き機能と、
をコンピュータに実行させることを特徴とする動きベクトル検出プログラム。
【0030】
【発明の実施の形態】
(第1実施例)
以下、本発明の第1実施例について図面及びフローチャートに基づき説明する。図 1は本発明に係る動きベクトル検出器の第1実施例を用いた符号化装置の一実施例を示すブロック図である。図 1は、従来の動きベクトル検出器を用いた符号化装置の例である図 14と同じ構成である。ただし、動き検出器111の動作が従来例と異なる。図 1で減算器101、DCT102、量子化器103、可変長符号化器104、多重化器105、逆量子化器106、逆DCT107、加算器108、画像メモリ109、動き補償予測器110、及び動きベクトル符号化器の動作は従来例と同じである。
【0031】
図 2は本発明の第1実施例を用いた符号化装置の一実施例を説明するフローチャートである。図 2は、従来の動きベクトル検出器を用いた符号化装置を説明するフローチャートである図 15と同じ手順である。ただし、手順S101の動作が従来例と異なる。図 2で手順S102、手順S103、手順S104、手順S105、手順S106、手順S107、手順S108、手順S109、手順S110、手順S111、及び手順S112は従来例と同じである。
【0032】
以下、本実施例における動きベクトル検出器の従来例との違いを図面及びフローチャートに基づき説明する。図 3は動きベクトル検出器の第1実施例を示すブロック図である。図 4は動きベクトル検出器の第1実施例を説明するフローチャートである。
【0033】
ブロックマッチング設定器301はあらかじめ決められた(ステップS301)方法に従って動きベクトルの検出範囲の中心からの距離に応じてブロックマッチングに用いる画素の間引き率を設定し(ステップS302)、その情報を動きベクトル決定器300、間引き器302、303に与える。間引き器302は与えられた間引き率に従って入力画像を間引き、間引いた入力画像を動きベクトル決定器300に与える(ステップS303)。間引き器303は与えられた間引き率に従って参照画像を間引き、間引いた参照画像を動きベクトル決定器300に与える(ステップS304)。
【0034】
動きベクトル決定器300は与えられた間引き率に従って、ブロックマッチングを行い(ステップS305)、ブロックマッチングの評価値を評価し(ステップS306)、その評価値が最小であればそれを動きベクトルとし(ステップS307)、そうでなければ次の検出点に移る。動きベクトル検出範囲内のブロックマッチングが全て終了すると、動きベクトルを出力する。
【0035】
本実施例における動きベクトルの検出範囲の中心からの距離に応じてブロックマッチングに用いる画素の間引き率を設定する方法について図 5を用いて説明する。
【0036】
動きベクトルは16×16画素のブロック単位で求め、動きベクトルの検出範囲は水平方向、垂直方向に±7画素であるとする。ブロックマッチングに用いる画素の間引き率を検出範囲の中心からの距離に応じて3段階のマッチングレベルに分けるとする。図 5において検出中心位置50は動きベクトルを(0,0)とした位置であるとし、検出中心位置50を中心として水平方向、垂直方向に±2画素の範囲を第1の検出範囲51とする(マッチングレベル1)。第1の検出範囲51から検出中心位置50を中心として水平方向、垂直方向に±4画素の範囲を第2の検出範囲52とする(マッチングレベル2)。第2の検出範囲52から検出中心位置50を中心として水平方向、垂直方向に±7画素の範囲を第3の検出範囲53とする(マッチングレベル3)。第1の検出範囲51、第2の検出範囲52、第3の検出範囲53のそれぞれにブロックマッチングに用いる画素の間引き率を割り当てる。
【0037】
第1の検出範囲51の中では図 6(A)で示されるように、動きベクトル検出の対象となるブロックの全画素をブロックマッチングに用いる。マッチング評価関数F(x,y)は式1で表すことができる。ここでx、yは検出位置の水平位置、垂直位置であり、CurPixel(i,j)は入力画像の動きベクトル検出の対象となるブロック内の画素であり、RefPixel(i,j)は検出位置における参照画像のブロック内の画素である。
【0038】
【数1】
第2の検出範囲52の中では図 6(B)で示されるように、動きベクトル検出の対象となるブロックに対して水平方向、垂直方向にそれぞれ1/2間引いた画素をブロックマッチングに用いる。マッチング評価関数F(x,y)は式2で表すことができる。
【0039】
【数2】
第3の検出範囲53の中では図 6(C)で示されるように、動きベクトル検出の対象となるブロックに対して水平方向、垂直方向にそれぞれ1/4間引いた画素をブロックマッチングに用いる。マッチング評価関数F(x,y)は式3で表すことができる。
【0040】
【数3】
以上のようにして求めたマッチング評価関数F(x,y)の値が最小となる位置を動きベクトルとする。
【0041】
検出範囲の中心からの距離が大きくなるに従って、ブロックマッチングに用いる画素の間引き率を大きくするのは、人間の目の視覚特性に基づいた処理である。一般的に人間の目は動きの早いものに対しては認知力が低下するという特性があり、この特性を利用した処理である。認知力の高い小さな動きを高精度で検出し、認知力の低い大きな動きについては精度を落として検出することを特徴としている。
【0042】
表4は動きベクトルの検出範囲が±7である本実施例における各マッチングレベルにおけるブロックマッチングブロックサイズ、検出範囲、検出点数、差分演算回数を示している。表1、表2、表3と比較すると、本実施例の差分演算回数はフルサーチ法における差分演算回数と比較して約1/5に削減されている。検出点数がフルサーチと同じ225であるため検出した動きベクトルの精度は高い。3ステップサーチ法と比較すると差分演算回数は1.68倍になっているが、3ステップサーチ法のように検出点数を減らしていないため、線画部分などの高解像度部分において誤った動きベクトルを検出する確率は極めて低く、高精度な動きベクトルを得ることができる。階層サーチ法と比較すると差分演算回数は約4倍になっているが、階層化サーチ法のように各階層レベルにおける入力画像と参照画像のための画像メモリが不要である。
【0043】
【表4】
(第2実施例)
本発明の第2実施例について図面及びフローチャートに基づき説明する。図 7は本発明に係る動きベクトル検出器の第2実施例を用いた符号化装置の一実施例を示すブロック図である。図 7は、図 1に示す符号化装置と同じ構成である。ただし、動き検出器111の動作が図 1に示す符号化装置と異なる。図 7で、減算器101、DCT102、量子化器103、可変長符号化器104、多重化器105、逆量子化器106、逆DCT107、加算器108、画像メモリ109、動き補償予測器110、及び動きベクトル符号化器112の動作は図 1に示す符号化装置と同じである。
【0044】
以下、第2実施例における動きベクトル検出器の第1実施例との違いを図面及びフローチャートに基づき説明する。図 8は動きベクトル検出器の第2実施例を示すブロック図である。図 8は、第1実施例を示す図 3と比較して、動きベクトル予測器304が増えている。また、間引き設定器301、動きベクトル決定器300の動作が本発明の第1実施例と異なる。図 8で、間引き器302、303の動作は本発明の第1実施例と同じである。図 9は動きベクトル検出器の第2実施例を説明するフローチャートである。図 9は本発明の第1実施例を説明した図 4と比較して、手順S300が増えている。また、手順S301が本発明の第一の実施例と異なる。
【0045】
動きベクトル予測器304は予測動きベクトルを所定の手順で求め(ステップS300)、間引き設定器301に与える。間引き設定器301は与えられたは与えられた予測動きベクトルに従って、動きベクトルの検出範囲の中心からの距離に応じたブロックマッチングに用いる画素の間引き率を設定する(ステップS301)。動きベクトルの検出範囲内のブロックマッチングが終了すると、動きベクトル決定器300は動きベクトルを動きベクトル予測器304に与え、動きベクトルを出力する。
【0046】
予測動きベクトルを求める手順について図 10を用いて説明する。図 10において、ブロックXの予測動きベクトルであるMVp(X)を求める。ブロックXの隣接ブロックA、B、Cのそれぞれの動きベクトルをMV(A)、MV(B)、MV(C)とする。最も単純な方法として、左隣のブロックの動きベクトルを用いてMVp(X)=MV(C)とする方法がある。これらはMPEG−2などで用いられている方法である。またMV(A)、MV(B)、MV(C)の水平方向、垂直方向それぞれの値の中央値をとる方法もある。この方法はMPEG−4で用いられている方法であり、MV(A)=(0,2)、MV(B)=(1、−1)、MV(C)=(3,3)であれば、MVp(X)=(1,2)となる。
【0047】
本実施例における動きベクトルの検出範囲の中心からの距離に応じてブロックマッチングに用いる画素の間引き率を設定する方法について図 5と図 11を用いて説明する。予測動きベクトルMVp(x,y)に応じて、第1の検出範囲であるRange1(x,y)及び第2の検出範囲であるRange2(x,y)が式4に従って変化する。
【0048】
【数4】
例えば、MVpが(0,0)であれば、検索範囲の中心位置50は(0,0)となり、間引き率の設定範囲は第一の実施例と同じ図 5となる。MVpが(3,3)であれば、検索範囲の検出中心位置50は(0,1)となり、間引き率の設定範囲は図 11となる。図 11において検出中心位置50を中心として水平方向、垂直方向に±2画素の範囲を第1の検出範囲51とする(マッチングレベル1)。第1の検出範囲51から検出中心位置50を中心として水平方向、垂直方向に±4画素の範囲を第2の検出範囲52とする(マッチングレベル2)。第2の検出範囲52の外側を第3の検出範囲53とする(マッチングレベル3)。それぞれのマッチングレベルは表4で示されている。
【0049】
本実施例では、間引き率の設定範囲の計算に平行移動の例をあげたが、これらに拡大や縮小の計算を加えても良い。例えば、動きの小さな入力画像に対しては、図 12のように、検出中心位置50を(0,0)とし、水平方向、垂直方向に±1画素の範囲を第1の検出範囲51(マッチングレベル1)とし、第1の検出範囲51から検出中心位置50を中心として水平方向、垂直方向に±2画素の範囲を第2の検出範囲52(マッチングレベル2)とし、第2の検出範囲52の外側を第3の検出範囲53(マッチングレベル3)として、マッチングレベル1、マッチングレベル2の範囲を小さくすることで演算量をさらに減らすことが可能となる。
【0050】
この場合の各マッチングレベルにおけるブロックマッチングブロックサイズ、検出範囲、検出点数、差分演算回数を表5に示す。この場合には差分演算回数は3ステップサーチ法とほぼ同じになる。このように入力画像の動きの大小に合わせて間引き率の設定を変化させることで、演算量をより小さくすることが可能である。
【0051】
【表5】
また、MVpを利用した間引き率設定方法において、動きベクトルの検出範囲の中心をMVpとして移動させる方法もある。例えば、MVpが(0,1)である場合に、動きベクトルの検出範囲の中心を(0,1)に移動させる。この結果は図 11と同じになる。動きが大きな入力画像に対しても、予測動きベクトルが正しく予測できる限りにおいて、動きベクトルの検出範囲の中心をMVpに合わせて移動させることによって、動きベクトルの検出範囲の広い、演算量の少ない、且つ精度の高い動きベクトルを検出することができる。
【0052】
次に、隣接するブロックの動きベクトルに応じてブロック内の画素を間引く率を設定する方法について説明する。本実施例においては隣接するブロックの動きベクトルとしてMVpを用いる。MVpが(0,3)であるような水平方向に移動するような動きに対しては図 13のような水平重視型の間引き率を設定する。検出中心位置50を(2,0)とし、水平方向±3画素、垂直方向に±1画素の範囲を第1の検出範囲51(マッチングレベル1)とし、第1の検出範囲51から検出中心位置50を中心として水平方向±4画素、垂直方向に±2画素の範囲を第2の検出範囲52(マッチングレベル2)とし、第2の検出範囲52の外側を第3の検出範囲53(マッチングレベル3)とする。
【0053】
MVpが(3,0)であるような垂直方向に移動するような動きに対しては図 13のような垂直重視型の間引き率を設定する。検出中心位置50を(0,2)とし、水平方向±1画素、垂直方向に±3画素の範囲を第1の検出範囲51(マッチングレベル1)とし、第1の検出範囲51から検出中心位置50を中心として水平方向±2画素、垂直方向に±4画素の範囲を第2の検出範囲52(マッチングレベル2)とし、第2の検出範囲52の外側を第3の検出範囲53(マッチングレベル3)とする。このようにすることで、動きベクトルの検出範囲の広い、演算量の少ない、且つ精度の高い動きベクトルを検出することができる。
【0054】
即ち、隣接するブロックの動きベクトルに応じてブロック内の画素を間引く率を設定する場合に、水平方向の移動であると判断される場合には垂直方向の画素を間引き率を大きくして垂直方向の移動であると判断される場合には水平方向の画素を間引く率を大きくするようにする。
【0055】
なお、本発明は、上記した動きベクトル検出器の機能をコンピュータに実現させるためのプログラムを含むものである。このプログラムは、記録媒体から読みとられてコンピュータに取り込まれてもよいし、通信ネットワーク等を介して伝送されてコンピュータに取り込まれてもよい。
【0056】
【発明の効果】
本発明は、検出範囲の中心からの距離に応じてブロックマッチングに用いる画素の間引き率を変化させることで、演算量を減らし、余計な画像メモリを必要とせず、動きの小さな動画像に対しては特に精度の高い動きベクトルを検出することができる。
【0057】
また、予測動きベクトルに応じて動きベクトルの検出範囲の中心位置を移動させるようにした場合には、動きの大きな動画像に対しても、演算量を減らし、余計な画像メモリを必要とせず、精度の高い動きベクトルを検出することができる。
【0058】
また、隣接するブロックの動きベクトルに応じてブロックマッチングに用いる画素の間引き率を変化させるようにした場合には、さらに演算量を減らし、余計な画像メモリを必要とせず、精度の高い動きベクトルを検出することができる。
【図面の簡単な説明】
【図1】本発明に係る動きベクトル検出器の第1実施例を用いた符号化装置の一実施例を示すブロック図である。
【図2】本発明の第1実施例を用いた符号化装置の一実施例を説明するフローチャートである。
【図3】動きベクトル検出器の第1実施例を示すブロック図である。
【図4】動きベクトル検出器の第1実施例を説明するフローチャートである。
【図5】間引き率の設定範囲を示す図である。
【図6】ブロックマッチングに用いる画素の例を示す図である。
【図7】本発明に係る動きベクトル検出器の第2実施例を用いた符号化装置の一実施例を示すブロック図である。
【図8】動きベクトル検出器の第2実施例を示すブロック図である。
【図9】動きベクトル検出器の第2実施例を説明するフローチャートである。
【図10】予測動きベクトルを求める手順を示す図である。
【図11】間引き率の設定範囲を示す図である。
【図12】間引き率の設定範囲を示す図である。
【図13】間引き率の設定範囲を示す図である。
【図14】従来の動き補償予測を行う符号化装置の構成例を示すブロック図である。
【図15】従来の動き補償予測を行う符号化装置を説明するフローチャートである。
【図16】3ステップサーチ法を説明するための図である。
【図17】階層化サーチ法を説明するための図である。
【図18】階層化サーチを行う従来の動き検出器の構成例を示すブロック図である。
【図19】階層化サーチを行う従来の動き検出器を説明するフローチャートである。
【図20】階層化サーチを行う従来の動き検出器を説明するフローチャートである。
Claims (4)
- 入力画像を所定数の画素単位毎にブロック化し、前記入力画像において各ブロックを順次動き検出対象ブロックとして設定し、参照画像において前記動き検出対象ブロックに応じて順次検出範囲を設定し、前記各動き検出対象ブロック内の画素と前記各検出範囲内の画素とを比較して、ブロックマッチングにより前記各動き検出対象ブロック毎に動きベクトルを求める動画像の動きベクトル検出装置において、
前記検出範囲内の画素の前記検出範囲の中心からの距離に応じて、前記検出範囲内の画素に対してブロックマッチングにおける比較対象となる前記動き検出対象ブロック内の画素の間引き率を設定する間引き率設定手段と、
前記設定された間引き率に応じて、ブロックマッチングに用いる前記動き検出対象ブロック内の画素及び前記検出範囲内の画素を間引く間引き手段と、
を設けたことを特徴とする動きベクトル検出装置。 - 請求項1記載の動きベクトル検出装置において、
動き検出対象ブロックに設定されたブロックに隣接する、既に動きベクトルが求められているブロックの動きベクトルを用いて、予め定められている所定方法に従って求められる予測動きベクトルに応じて、前記動き検出対象ブロックに対して設定される前記検出範囲の中心位置を移動させる検出範囲移動手段を設けたことを特徴とする動きベクトル検出装置。 - 請求項1記載の動きベクトル検出装置において、
前記間引き率設定手段は、動き検出対象ブロックに設定されたブロックに隣接する、既に動きベクトルが求められているブロックの動きベクトル、及び前記検出範囲の中心からの距離に応じて、前記間引き率を設定するものであることを特徴とする動きベクトル検出装置。 - 動画像である入力画像を所定数の画素単位毎にブロック化し、前記入力画像において各ブロックを順次動き検出対象ブロックとして設定し、参照画像において前記動き検出対象ブロックに応じて順次検出範囲を設定し、前記各動き検出対象ブロック内の画素と前記各検出範囲内の画素とを比較して、ブロックマッチングにより前記各動き検出対象ブロック毎に動きベクトルを求める動作をコンピュータに行わせる動きベクトル検出プログラムにおいて、
前記検出範囲内の画素の前記検出範囲の中心からの距離に応じて、前記検出範囲内の画素に対してブロックマッチングにおける比較対象となる前記動き検出対象ブロック内の画素の間引き率を設定する間引き率設定手機能と、
前記設定された間引き率に応じて、ブロックマッチングに用いる前記動き検出対象ブロック内の画素及び前記検出範囲内の画素を間引く間引き機能と、
をコンピュータに実行させることを特徴とする動きベクトル検出プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003045504A JP2004260251A (ja) | 2003-02-24 | 2003-02-24 | 動きベクトル検出装置及び動きベクトル検出プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003045504A JP2004260251A (ja) | 2003-02-24 | 2003-02-24 | 動きベクトル検出装置及び動きベクトル検出プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004260251A true JP2004260251A (ja) | 2004-09-16 |
Family
ID=33112286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003045504A Pending JP2004260251A (ja) | 2003-02-24 | 2003-02-24 | 動きベクトル検出装置及び動きベクトル検出プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004260251A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009520407A (ja) * | 2005-12-15 | 2009-05-21 | アナログ・デバイシズ・インコーポレーテッド | 予測誘導間引き探索を使用する動き推定 |
JP2009525683A (ja) * | 2006-02-02 | 2009-07-09 | トムソン ライセンシング | 組合せ参照双方向予測を用いて動き推定を行う方法および装置 |
JP2009527173A (ja) * | 2006-02-16 | 2009-07-23 | イマジネイション テクノロジーズ リミテッド | ビデオ画像間の運動を確定するための方法と装置 |
JP2012216946A (ja) * | 2011-03-31 | 2012-11-08 | Sony Computer Entertainment Inc | 情報処理装置、情報処理方法、および位置情報のデータ構造 |
JP2015073192A (ja) * | 2013-10-02 | 2015-04-16 | 日本電信電話株式会社 | 映像符号化装置及び映像符号化プログラム |
-
2003
- 2003-02-24 JP JP2003045504A patent/JP2004260251A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009520407A (ja) * | 2005-12-15 | 2009-05-21 | アナログ・デバイシズ・インコーポレーテッド | 予測誘導間引き探索を使用する動き推定 |
JP2009525683A (ja) * | 2006-02-02 | 2009-07-09 | トムソン ライセンシング | 組合せ参照双方向予測を用いて動き推定を行う方法および装置 |
JP2009527173A (ja) * | 2006-02-16 | 2009-07-23 | イマジネイション テクノロジーズ リミテッド | ビデオ画像間の運動を確定するための方法と装置 |
JP2012216946A (ja) * | 2011-03-31 | 2012-11-08 | Sony Computer Entertainment Inc | 情報処理装置、情報処理方法、および位置情報のデータ構造 |
US9699432B2 (en) | 2011-03-31 | 2017-07-04 | Sony Corporation | Information processing apparatus, information processing method, and data structure of position information |
JP2015073192A (ja) * | 2013-10-02 | 2015-04-16 | 日本電信電話株式会社 | 映像符号化装置及び映像符号化プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7444026B2 (en) | Image processing apparatus and method of motion vector detection in a moving picture, and recording medium used therewith | |
US7023921B2 (en) | Method and apparatus for determining block match quality | |
RU2323541C2 (ru) | Способ и устройство для выполнения высококачественного быстрого поиска прогнозируемого движения | |
JP3801886B2 (ja) | ハイブリッド型高速動き推定方法 | |
US8340189B1 (en) | Phase correlation based motion estimation in hybrid video compression | |
KR950009699B1 (ko) | 움직임벡터 검출방법 및 장치 | |
KR20100015651A (ko) | 이차원 적응 내삽 필터의 필터 계수 결정 방법 | |
JP2007166038A (ja) | 動きベクトル検出装置および動きベクトル検出方法 | |
JP2021529471A (ja) | 動きベクトル精密化および動き補償のためのメモリアクセスウィンドウおよびパディング | |
JP2007124408A (ja) | 動きベクトル検出装置および動きベクトル検出方法 | |
JP2006254349A (ja) | 動きベクトル検出方法、動きベクトル検出装置およびコンピュータ上で動きベクトル検出処理を実行するコンピュータプログラム | |
JP2004229315A (ja) | 直交変換−ドメインブロックマッチングを用いる動き推定 | |
JP2009027744A (ja) | ビデオ符号化における中間画素高精度高速探索を実現する装置及び方法 | |
JP5216710B2 (ja) | 復号化処理方法 | |
KR102568199B1 (ko) | 디코더 측 모션 벡터 정제를 위한 에러 표면 기반 서브 픽셀 정밀 정제 방법 | |
JPH11239354A (ja) | 動きベクトル検出器 | |
KR20090014371A (ko) | 움직임 검출 장치 | |
JP2007129370A (ja) | 動きベクトル検出装置及び方法 | |
JP2008219141A (ja) | 動きベクトル検出装置、それを用いた画像符号化装置および撮像装置 | |
JP2004260251A (ja) | 動きベクトル検出装置及び動きベクトル検出プログラム | |
JP2007158855A (ja) | 動きベクトル検出装置および動きベクトル検出方法 | |
US6788741B1 (en) | Device and method of retrieving high-speed motion | |
JP4032049B2 (ja) | 動きベクトル検出方法及びその装置 | |
KR100790757B1 (ko) | H.264 동영상 부호화기의 적응적 고속 움직임 추정 방법 | |
JP2006033433A (ja) | 動き推定方法及び動き推定装置、並びにプログラム |