JP2004129099A - 動きベクトル探索方法および装置 - Google Patents
動きベクトル探索方法および装置 Download PDFInfo
- Publication number
- JP2004129099A JP2004129099A JP2002293206A JP2002293206A JP2004129099A JP 2004129099 A JP2004129099 A JP 2004129099A JP 2002293206 A JP2002293206 A JP 2002293206A JP 2002293206 A JP2002293206 A JP 2002293206A JP 2004129099 A JP2004129099 A JP 2004129099A
- Authority
- JP
- Japan
- Prior art keywords
- search
- motion vector
- image
- reduction
- reference image
- 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
Abstract
【課題】探索精度の低下を最小限に抑えて高速に動きベクトルを探索できる探索方法及び装置を提供する。
【解決手段】画像の縦方向及び横方向を異なる縮小率で縮小し、縮小画像に基づいて第1段の動きベクトルを探索する。続いて、第1段の動きベクトルにより決定される位置の探索範囲内で、元の画像解像度により第2段の動きベクトルを探索する。第2段の探索範囲は画像の縮小率に応じて決定することができる。さらに、第2段探索において、横方向探索により横方向の位置を決定し、その位置における縦方向の探索を実行して第2段の動きベクトルを探索する。
【選択図】 図1
【解決手段】画像の縦方向及び横方向を異なる縮小率で縮小し、縮小画像に基づいて第1段の動きベクトルを探索する。続いて、第1段の動きベクトルにより決定される位置の探索範囲内で、元の画像解像度により第2段の動きベクトルを探索する。第2段の探索範囲は画像の縮小率に応じて決定することができる。さらに、第2段探索において、横方向探索により横方向の位置を決定し、その位置における縦方向の探索を実行して第2段の動きベクトルを探索する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は動き補償予測符号化技術に係り、特に多段探索法で用いられる動きベクトル探索方法および装置ならびにコンピュータシステムに関する。
【0002】
【従来の技術】
動画像信号を記録あるいは伝送する際の圧縮符号化では、符号化効率を高めるために画像フレーム間の相関を利用した符号化方法が一般に用いられる。画像フレーム間の相関を利用する符号化方式は動き補償予測符号化と呼ばれ、MPEG (Moving Picture Experts Group)2などで採用されている。
【0003】
動き補償予測符号化では、フレーム間の映像の動きの情報(動きベクトル)と、動きベクトルによって生成される予測画像と符号化中のフレームとの差分画像(予測誤差)を符号化する。画像フレーム間の相関が大きければ、予測誤差が小さくなり、符号化する情報量を小さくでき圧縮率を向上させることができる。動き補償予測符号化では、一般に、フレームを16×16画素などの一定サイズのブロックに分割し、分割したブロックごとに動きベクトルを割り当てる。
【0004】
具体的には、すでに符号化が完了しているフレーム(参照フレーム)の中から、ブロックごとに相関が最も大きくなる場所を探し、そのブロック間の差分を求め、符号化する。相関が大きくなる場所を探す処理を動きベクトル探索という。相関の大小は、参照フレームと符号化中フレームとのブロック内の各画素の差異を総和することで評価できる。
【0005】
指定された探索範囲のすべての点を単純に探索し、相関の大きさを調べれば最適な動きベクトルが得られるが、この方法では演算量が極めて大きくなり現実的でない。演算量を削減するために、初めに粗く第1段の探索をおこない、その探索結果を中心にして細かい第2段の探索を行うのが一般的である。このような方法は多段探索法と呼ばれ、Renxiang Li 等によるIEEE Transactions on Circuits and Systems for Video Technology, Vol.4, No.4, August, 1994, pp.438−441 などに開示されている。以下、多段探索法について簡単に説明する。
【0006】
図10(A)は、一般的な多段探索法を説明するための画素配列を示す模式図であり、(B)は第2段の探索の様子を示すシーケンス図である。例えば、初めに第1段の探索として2画素精度探索(図10(A)の”1”でラベルされた位置の探索)を実行し、そのなかで最も相関が大きくなる位置を決定する。続いて、第1段の探索結果である位置を中心に、第2段の探索として1画素精度探索(図10(A)の”2”でラベルされた位置の探索)を実行し、その中で最も相関が大きくなる位置を最終的な動きベクトルとする。
【0007】
通常、第1段の動きベクトル探索は、フレームをサブサンプリングして解像度を下げたフレームデータを用いる。例えば、フレームデータを縦横ともに半分にして第1段の動きベクトル探索をおこない、その探索結果の周囲を探索範囲として本来の解像度で第2段の探索を実行し、最終的な動きベクトルを求める。たとえば図10(B)に示すように、第2段の探索範囲が縦および横方向±1画素の範囲である場合には、探索範囲内のすべての位置(図10(B)の(a)〜(i))でマッチングが行われる。
【0008】
動きベクトル探索の効率は符号化処理能力を決定する主な要因であることから、様々な探索手法が提案されている。
【0009】
特開平9−130808号公報には、上述した第1段および第2段の動きベクトル探索を用いた多段探索方法についての一般的な説明がある(段落番号0018〜0020)。さらに、同公報に開示された動画像圧縮方法では、ピクチャタイプがBピクチャの場合、第1段の探索処理に基づいて最適な動きベクトルを判定しており、多少の画質の劣化を許容しつつ処理の効率化を図っている(段落番号0065)。
【0010】
また、特開平10−126783号公報に開示された動きベクトル検出方法では、動きベクトルを検出する対象画像データを垂直および水平の両方向で間引いてブロックサイズにした後、参照画像データの探索範囲内で順次マッチングを行い、最適な動きベクトルを検出している(段落番号0008、0024〜0028、0049)。
【0011】
更に、特開平9−162747号公報に開示された動きベクトル検出方法では、探索範囲のブロック画像に対して水平および垂直方向の少なくとも一方向でサブサンプルを行い、対象画像との相関演算によって最適動きベクトルを検出する(要約、段落番号0019、0034)。
【0012】
【特許文献1】
特開平9−130808号公報(要約、段落番号0018〜0020、図9)
【特許文献2】
特開平10−126783号公報(要約、段落番号0008、0024〜0028、図3、図5、図7)
【特許文献3】
特開平9−162747号公報(要約、段落番号0019、0034)。
【0013】
【発明が解決しようとする課題】
特許文献1に記載されている一般的な多段探索方法では、例えばソフトウェア制御によりリアルタイムで符号化を行う場合に、探索範囲を狭くするなどして演算量を削減しているのが現状である。しかしながら、探索範囲が狭い場合は適切な動きベクトルが得られない場合があり、符号化効率が下がり画質が低下する。そこで特許文献1では、動きベクトル探索における演算量を更に削減するために、Bピクチャの場合に第1段の探索だけで動きベクトルの判定を行っている。この場合も、適切な動きベクトルが得られないことがあり、画質の低下は免れない。
【0014】
他方、特許文献2に記載されている方法は、多段ではなく1段階で動き探索を効率良く実現しようとするものである。対象画像データを垂直および水平の両方向で間引いてブロックサイズに縮小してから相関演算を行うが、その目的は演算量が低減した分を並列処理に振り分けることにある。
【0015】
また、特許文献3に記載されている方法は、多段ではなく1段階で動き探索を精度良く実現しようとするものである。そのために、探索範囲のみ水平および垂直方向で異なる縮小率にサブサンプリングする点が記載されているが、対象画像はサブサンプリングしないことを特徴としている。
【0016】
本発明の目的は、動きベクトルを高速に探索できる新規な動きベクトル探索方法および装置ならびにコンピュータシステムを提供することにある。
【0017】
本発明の他の目的は、探索精度の低下を最小限に抑えて高速に動きベクトルを探索できる動きベクトル探索方法および装置ならびにコンピュータシステムを提供することにある。
【0018】
【課題を解決するための手段】
本発明の第1の側面による動きベクトル探索装置は、対象画像および参照画像の縦方向及び横方向を異なる縮小率で縮小し、縮小対象画像および縮小参照画像をそれぞれ生成する画像縮小手段と、前記縮小対象画像および縮小参照画像に基づいて第1動きベクトルを探索する第1探索手段と、前記第1動きベクトルにより決定される位置の探索範囲内で、前記縮小前の画像解像度により第2動きベクトルを探索して前記動きベクトルを決定する第2探索手段と、を有することを特徴とする。これにより、第1探索の高速化を実現できる。
【0019】
また、本発明による動きベクトル探索装置は、第2探索手段の探索範囲が前記縮小率に応じて決定されることを特徴とする。これにより、第1探索の高速化に伴う精度劣化を補償することが可能となる。
【0020】
本発明の第2の側面による動きベクトル探索装置は、対象画像および参照画像を縮小して縮小対象画像および縮小参照画像をそれぞれ生成する画像縮小手段と、前記縮小対象画像および縮小参照画像に基づいて第1動きベクトルを探索する第1探索手段と、前記第1動きベクトルにより決定される位置の探索範囲内で、前記縮小前の画像解像度により縦方向の探索と横方向の探索とを独立して実行し、第2動きベクトルを探索して前記動きベクトルを決定する第2探索手段と、を有することを特徴とする。これにより第2探索の高速化が可能となる。
【0021】
画像縮小手段は、前記対象画像および参照画像の縦方向及び横方向を異なる縮小率で縮小して前記縮小対象画像および縮小参照画像をそれぞれ生成してもよい。また、探索範囲は前記縮小率に応じて決定することができる。
【0022】
第2探索手段は、横方向探索により横方向動きベクトルを決定する横方向探索手段と、前記横方向動きベクトルにより決定された位置の縦方向の探索を実行して前記第2動きベクトルを探索する縦方向探索手段と、を有することが望ましい。このように縦方向及び横方向を独立して探索することにより、探索範囲内のすべての点を探索するよりも演算量が削減でき、高速な動きベクトル探索処理が可能となる。第2段探索では一般に探索範囲が狭いので縦横独立に探索しても、すべての点を探索した場合と比べて探索精度の低下は小さくなる。
【0023】
なお、上記の第1段動き探索の高速化手法と第2段動き探索の高速化手法は片方のみを採用してもよいが、両方を同時に採用することでより高速に動きベクトル探索を実行できる。
【0024】
【発明の実施の形態】
構成
図1は、本発明による動きベクトル探索装置の一実施形態を示すブロック図である。図1において、現フレームバッファ101には符号化中のフレームのデータが格納され、参照フレームバッファ102には参照フレームデータが格納されている。サブサンプリング処理部103は現フレームバッファ101および参照フレームバッファ102からそれぞれ現フレームデータおよび参照フレームデータを入力し、後述するように横方向と縦方向とで縮小率が異なるサンプリングを行い、縮小現フレームデータおよび縮小参照フレームデータを生成する。
【0025】
第1段の動き探索処理部104は、縮小現フレームデータおよび縮小参照フレームデータを用いて動き探索を行い、その探索結果である第1段の動きベクトルの位置情報を第2段の動き探索処理部105へ出力する。第2段の動き探索処理部105は、現フレームバッファ101および参照フレームバッファ102から本来の現フレームデータ及び参照フレームデータを入力し、第1段の動きベクトルの位置を中心として詳細な動きベクトル探索を実行する。こうして、最終的な動きベクトルを決定する。
【0026】
本実施形態におけるサブサンプリング処理103は、縦/横の縮小をおこなう縮小処理部111と、縦方向のみの縮小をおこなう縦方向縮小処理部112と、を有し、縮小処理部111および縦方向縮小処理部112により縮小された縮小現フレームデータおよび縮小参照フレームデータを縮小現フレームバッファ113および縮小参照フレームバッファ114にそれぞれ格納する。
【0027】
第2段の動き探索処理部105は、横方向の探索と縦方向の探索とを独立して実行することができる。本実施形態における動き探索処理部105は、横方向の探索を行う横方向探索処理部115と、その横方向の探索により決定された位置に基づいて縦方向の探索を行う縦方向探索処理部116と、を備える。次に、本実施形態の全体的動作について詳細に説明する。
【0028】
全体的動作
図2は、本実施形態の全体的動作を示すフローチャートである。まず、縮小処理部111は、符号化しようとしている現フレームデータを現フレームバッファ101から入力してサブサンプリングする(ステップS201)。続いて、縦方向縮小処理部112は、サンプリングされた現フレームデータを更に縦方向のみサブサンプリングし(ステップS202)、縮小現フレームバッファ113に格納する。
【0029】
同様に、縮小処理部111は、参照フレームデータを参照フレームバッファ102から入力してサブサンプリングする(ステップS203)。続いて、縦方向縮小処理部112は、サンプリングされた参照フレームデータを更に縦方向のみサブサンプリングし(ステップS204)、縮小参照フレームバッファ114に格納する。
【0030】
このように、縦方向縮小処理部112により縦方向のみをサブサンプリングすることで、縦方向の探索精度を下げる。なお、ここでは、縮小処理部111で従来と同様のサブサンプリングを行った後に縦方向縮小処理部112により再度縦方向のみのサブサンプリングを実行しているが、1度のサブサンプリング処理で縦方向の縮小率のみを大きくしても同様の効果が得られる。つまり、サブサンプリング処理では縦方向の縮小率を高くして横長の縮小画像を作成し動きベクトル探索をおこなう。
【0031】
なお、本実施形態では縦方向のみ探索精度を下げている。一般にソフトウェアで動きベクトル探索をおこなう場合、すべての演算はCPUが命令を実行することで行われる。その際、CPUが1命令で複数のデータを処理できるSIMD(single instruction multiple data stream)型の命令を備えている場合には、横方向複数画素のマッチング演算が並列処理可能となる。そのために横方向については、探索精度を下げなくても並列処理により高速化が可能である。そこで、本実施形態では、SIMD型命令を採用して横方向については精度を下げずに探索を実行し、縦方向のみ探索精度を下げて演算量の削減を図っている。
【0032】
次に、フレーム先頭から第1段の動きベクトル探索処理を開始するために縮小現フレームの先頭のブロックにポインタを合わせ(ステップS205)、第1段の動きベクトル探索を実行する(ステップS206)。第1段の動き探索処理部104は、探索範囲内のすべての点を探索して相関が最も大きくなる位置を決定する。すなわち、1つのブロックの探索が終了したら、次のブロックにポインタを移動させ(ステップS207)、フレーム内のすべてのブロックについて探索が終了するまで、同様の動きベクトル探索を繰り返す(ステップS208)。
第1段の動きベクトル探索が終了すると(ステップS208のYES)、第2段の動き探索処理部105は、現フレームの先頭のブロックにポインタを合わせ(ステップS209)、第1段の探索で決定された動きベクトルを中心に、本来の画像解像度で動きベクトル探索を開始する。第2段の探索では、横方向の探索と縦方向の探索とを独立して実行する。
【0033】
まず、横方向の探索は、第1段探索で決定された動きベクトルを中心に横方向探索処理部115により実行される(ステップS210)。続いて、縦方向探索処理部116が横方向で探索した位置を入力し、第1段探索で決定された動きベクトルを中心に、その横方向で探索した位置での縦方向の探索を実行する(ステップS111)。横方向および縦方向の探索の具体例は後述する。
【0034】
第2段の動き探索処理部105は、1つのブロックの探索が終了したら、次のブロックにポインタを移動させ(ステップS212)、フレーム内のすべてのブロックについて探索が終了するまで、同様の動きベクトル探索を繰り返す(ステップS213)。フレーム内のすべてのブロックについて探索が終了したら第2段の探索を終了させ(ステップS213のYES)、第2段の探索で相関が最も大きいと判定された位置を最終的な動きベクトルとする。
【0035】
図3は、本発明による動きベクトル探索方法の第1実施形態を説明するための画素配列の一例を示す模式図である。上述したように横方向よりも縦方向の縮小率が高くなっている。この例では、横方向が1/2に縮小され、縦方向が1/4に縮小されており、第1段の横方向探索は2画素精度、縦方向探索は4画素精度に下がっている(図3の”1”でラベルされた位置の探索)。縦方向の探索精度を下げることにより、探索点数が少なくなり第1段探索の演算量が削減され、高速な動きベクトル探索を実現できる。
【0036】
第1段の探索において最も相関が大きくなる位置が決定され、続いて、その探索結果である位置を中心に、第2段の探索として1画素精度探索(図3の”2”でラベルされた位置の探索)が実行される。そして、その中で最も相関が大きくなる位置が最終的な動きベクトルとして決定される。
【0037】
第2段探索(横方向と縦方向の独立実行)
第2段の動き探索では、1画素精度探索が行われるために演算量が一般的に大きくなるが、本発明では縦方向および横方向の動きベクトルを独立に求めることで演算量を低減させることができる。
【0038】
図4(A)は横方向探索時における探索範囲とマッチング単位との関係を示す模式図であり、(B)は縦方向探索時における探索範囲とマッチング単位との関係を示す模式図である。ここでは、探索をおこなうブロックサイズを横N画素×縦M画素、探索範囲を横N±n画素、縦M±m画素と仮定している。
【0039】
初めに横方向の動きベクトルを求める。横方向探索時には、 図4(A)に示すように、マッチング単位(ハッチング部)を横N画素×縦(M+2m)画素に設定する。つまり、マッチング単位の縦サイズを探索範囲と同じサイズにする。このマッチング単位を使って横方向の探索をおこない、横方向の動きベクトルを求める。
【0040】
続いて、横方向の探索結果の位置における縦方向の探索をおこなう。縦方向探索時には、図4(B)に示すように、マッチング単位を横N画素×縦M画素のブロックサイズに設定して通常の探索をおこなう。その際、横方向探索により決定された位置の縦方向で探索が行われる。たとえば、図4(B)に示すように、横方向探索の結果、矢印401で示される最左端の位置が決定されたとすると、その位置における縦方向にマッチング単位を1画素ずつシフトさせながら探索が行われる。以下、本発明による動きベクトル探索方法の第1実施形態における横方向及び縦方向の探索動作の一例を説明する。
【0041】
図5(A−1)〜(A−3)は、本発明による動きベクトル探索方法の第1実施形態における横方向探索時の探索範囲とマッチング単位との関係を示す模式図、図5(B−1)〜(B−3)は縦方向探索時の探索範囲とマッチング単位との関係を示す模式図である。ここでは、ブロックサイズが8×8画素、探索範囲が10×10画素とする。
【0042】
図5(A−1)〜(A−3)に示すように、横方向探索では、マッチング単位(ハッチング部)の縦サイズを探索範囲と同じサイズにし、左から順に図5(A−1)、(A−2)、(A−3)の位置でそれぞれマッチング処理を行う。そして、相関が最も大きくなる位置を横方向探索の結果として出力する。ここでは、図5(A−3)の矢印501で示す位置が最大相関値を示すものとする。
【0043】
続いて、横方向探索の結果を用いて縦方向探索を行う。図5(B−1)〜(B−3)に示すように、マッチング単位をブロックサイズに一致させ、矢印501の位置において、上から順に図5(B−1)、(B−2)、(B−3)の位置でそれぞれマッチング処理を実行し、相関が最も大きくなる位置を探す。こうして得られた最大相関値を示す位置が最終的な動きベクトルとして出力される。
【0044】
上述したように、第1実施形態では、サブサンプリングしたフレームで動きベクトル探索を行う場合に、縦方向と横方向とで独立して縮小率を設定している。その際、縦方向の縮小率を高くして横長の映像を用いて動きベクトル探索を行うことで、探索点数を削減でき、高速に動きベクトルを探索できる。
【0045】
また、本実施形態では、第2段の探索において、横方向および縦方向の動きベクトルを独立に探索し、一方の探索結果を用いて探索演算量を削減することができるために、さらに高速の動きベクトル探索を実現できる。
【0046】
他の実施形態
上述したように、本発明では、第1段の探索において、縦方向の探索精度を横方向の探索精度より低くしている。そのため、最終的な動きベクトル探索の精度が低下する傾向にある。そこで第2実施形態では、第2段の探索における縦方向の探索範囲を広げることにより探索精度の低下を防ぐ。このようにサブサンプリング時の縮小率に応じて探索範囲を変えることで探索精度の低下を最小限に抑えることが可能となる。
【0047】
図6は、本発明による動きベクトル探索方法の第2実施形態を説明するための画素配列の一例を示す模式図である。第1実施形態の場合と同様に、この例でも、横方向が1/2に縮小され、縦方向が1/4に縮小されており、第1段の横方向探索は2画素精度、縦方向探索は4画素精度に下がっている(図6の”1”でラベルされた位置の探索)。
【0048】
また、第1段探索の結果を中心にして、第2段の探索として1画素精度探索(図6の”2”でラベルされた位置の探索)が実行されるが、その際の縦方向の探索範囲は、図6の”2”でラベルされた位置のように、縦方向の縮小率に応じて広げられている。例えば、横方向が1/2に縮小され、縦方向が1/4に縮小されている場合は、探索範囲を横方向に±1画素、縦方向に±2画素拡張する。この例を用いて、具体的に説明する。
【0049】
図7(A−1)〜(A−3)は、本発明による動きベクトル探索方法の第2実施形態における横方向探索時の探索範囲とマッチング単位との関係を示す模式図、図7(B−1)〜(B−5)は縦方向探索時の探索範囲とマッチング単位との関係を示す模式図である。ここでは、フレームデータが横方向に1/2、縦方向に1/4だけ縮小されている場合を仮定し、それに応じて第2段の探索範囲が横方向に±1画素、縦方向に±2画素だけ拡張されている。すなわち、ブロックサイズが8×8画素、探索範囲が14×10画素とする。
【0050】
図7(A−1)〜(A−3)に示すように、横方向探索では、マッチング単位(ハッチング部)の縦サイズを探索範囲と同じサイズにし、左から順に図7(A−1)、(A−2)、(A−3)の位置でそれぞれマッチング処理を行う。そして、相関が最も大きくなる位置を横方向探索の結果として出力する。ここでは、図7(A−3)の矢印701で示す位置が最大相関値を示すものとする。
【0051】
続いて、横方向探索の結果を用いて縦方向探索を行う。図7(B−1)〜(B−5)に示すように、マッチング単位をブロックサイズに一致させ、矢印701の位置において、上から順に図7(B−1)〜(B−5)の位置でそれぞれマッチング処理を実行し、相関が最も大きくなる位置を探す。こうして得られた最大相関値を示す位置が最終的な動きベクトルとして出力される。
【0052】
この場合、第2段探索では探索範囲が広くなるので計算量は増加してしまう。しかしながら、第1段探索の精度を下げたことによる計算量削減が第2段探索での計算量増加を上回るならば、動き探索処理全体としての計算量は削減される。したがって、通常の動きベクトル探索より高速な処理が可能となり、動きベクトル探索の探索精度の低下も最小限に抑えられる。
【0053】
【実施例】
次に、横方向の画素数が720、縦方向の画素数が480の動画像を符号化する場合を具体例として、本発明による動きベクトル探索方法について説明する。
【0054】
符号化方式は横方向16画素、縦方向16画素を一つのブロックとして、ブロックごとに動きベクトルを割り当てる方式を採用しているものとする。
【0055】
図8は、本発明による動きベクトル探索方法の一実施例を説明するための模式的な流れ図である。まず、縦480画素×横720画素のオリジナルフレームデータ801を所定の縮小率(横方向に1/2、縦方向に1/4)でサブサンプリングし、120×360画素の縮小フレームデータ802を生成する。
【0056】
この縮小フレームデータ802を用いて、縦4画素×横8画素のブロック単位で第1段の探索を実行する。上述したように、各ブロックにおいて、あらかじめ指定された探索範囲内のすべての点を探索し相関が最も大きくなる位置を探す。ここでは、第1段探索によって、縮小フレーム左上から右に10画素、下に3画素の位置803が特定されたと仮定する。
【0057】
次に、第2段の探索を行うために、第1段探索で得られた探索結果の画素位置803を本来の解像度の画素位置804にマッピングする。画素位置803が(10,3)であると仮定した場合、本来の解像度での画素位置804は、それを横方向に2倍、縦方向に4倍した、右に20画素、下に12画素の位置となる。
【0058】
第2段探索では、この画素位置804とその周辺をさらに詳細に探索することになる。すなわち、上記第1実施形態あるいは第2実施形態で説明したように、所定の探索範囲内で、横方向探索を行い、その結果に基づいて縦方向探索を行う。このようにして、演算量を抑制しつつ精度の良い動きベクトル探索を行うことができる。
【0059】
図9は、本発明による動きベクトル探索装置の他の実施形態であるコンピュータシステムを示すブロック図である。このコンピュータシステムには、すでに述べたように、SIMD型命令を備えたプログラム制御プロセッサ901が装備されている。これによって、横方向については精度を下げずに探索を実行し、縦方向のみ探索精度を下げて演算量を削減できる。
【0060】
更に、プログラム制御プロセッサ901には、現フレームバッファ101および参照フレームバッファ102の他に、必要なプログラムを格納したプログラムメモリ902と、縮小現フレームバッファ113および縮小参照フレームバッファ114を含む縮小フレームバッファ903と、が接続されている。
【0061】
プログラムメモリ902には、本発明による動きベクトル探索を実行するためのメインプログラムの他に、上述した縮小処理部111および縦方向縮小処理部112、第1段動き探索処理部104、第2段動き探索処理部105の探索範囲セッティング処理部、横方向探索処理部115、および縦方向探索処理部116をそれぞれ機能的に実現するプログラムモジュールが格納されている。メインプログラムおよび各機能モジュールをプログラム制御プロセッサ901で実行することで、本発明による動きベクトル探索が実行される。
【0062】
なお、上記実施形態及び実施例では、フレーム単位の動画像の場合を例示したが、フィールド単位であっても、フィールド情報を残したまま縮小すれば、本発明は容易に適用できる。
【0063】
【発明の効果】
以上説明したように、本発明による動きベクトル探索方法及び装置は、縦方向と横方向とで異なる縮小率のサブサンプリングを行って第1の探索を実行し、その結果に基づいて第2探索を実行する。さらに、第2探索において、縦方向探索と横方向探索とを独立して実行し最終的な動きベクトルを決定する。このように構成することで、探索点数が少なくなり演算量が削減され、動きベクトル探索を高速化できる。特に、より細かい第2段探索において、横方向探索により決定された横方向位置において縦方向探索を実行することが望ましい。
【0064】
さらに、本発明による動きベクトル探索方法及び装置は、第1段探索の探索精度を粗くした分を第2段探索の探索範囲の拡大で補うことができるために、高速動きベクトル探索において探索精度の低下を最小限に抑えることができる。
【図面の簡単な説明】
【図1】本発明による動きベクトル探索装置の一実施形態を示すブロック図である。
【図2】本実施形態の全体的動作を示すフローチャートである。
【図3】本発明による動きベクトル探索方法の第1実施形態を説明するための画素配列の一例を示す模式図である。
【図4】(A)は横方向探索時における探索範囲とマッチング単位との関係を示す模式図であり、(B)は縦方向探索時における探索範囲とマッチング単位との関係を示す模式図である。
【図5】(A−1)〜(A−3)は、本発明による動きベクトル探索方法の第1実施形態における横方向探索時の探索範囲とマッチング単位との関係を示す模式図、(B−1)〜(B−3)は縦方向探索時の探索範囲とマッチング単位との関係を示す模式図である。
【図6】本発明による動きベクトル探索方法の第2実施形態を説明するための画素配列の一例を示す模式図である。
【図7】(A−1)〜(A−3)は、本発明による動きベクトル探索方法の第2実施形態における横方向探索時の探索範囲とマッチング単位との関係を示す模式図、(B−1)〜(B−5)は縦方向探索時の探索範囲とマッチング単位との関係を示す模式図である。
【図8】本発明による動きベクトル探索方法の一実施例を説明するための模式的な流れ図である。
【図9】本発明による動きベクトル探索装置の他の実施形態であるコンピュータシステムを示すブロック図である。
【図10】(A)は、一般的な多段探索法を説明するための画素配列を示す模式図であり、(B)は第2段の探索の様子を示すシーケンス図である。
【符号の説明】
101 現フレームバッファ
102 参照フレームバッファ
103 サブサンプリング処理部
104 第1段動き探索処理部
105 第2段動き探索処理部
111 縮小処理部
112 縦方向縮小処理部
113 縮小現フレームバッファ
114 縮小参照フレームバッファ
115 横方向探索処理部
116 縦方向探索処理部
【発明の属する技術分野】
本発明は動き補償予測符号化技術に係り、特に多段探索法で用いられる動きベクトル探索方法および装置ならびにコンピュータシステムに関する。
【0002】
【従来の技術】
動画像信号を記録あるいは伝送する際の圧縮符号化では、符号化効率を高めるために画像フレーム間の相関を利用した符号化方法が一般に用いられる。画像フレーム間の相関を利用する符号化方式は動き補償予測符号化と呼ばれ、MPEG (Moving Picture Experts Group)2などで採用されている。
【0003】
動き補償予測符号化では、フレーム間の映像の動きの情報(動きベクトル)と、動きベクトルによって生成される予測画像と符号化中のフレームとの差分画像(予測誤差)を符号化する。画像フレーム間の相関が大きければ、予測誤差が小さくなり、符号化する情報量を小さくでき圧縮率を向上させることができる。動き補償予測符号化では、一般に、フレームを16×16画素などの一定サイズのブロックに分割し、分割したブロックごとに動きベクトルを割り当てる。
【0004】
具体的には、すでに符号化が完了しているフレーム(参照フレーム)の中から、ブロックごとに相関が最も大きくなる場所を探し、そのブロック間の差分を求め、符号化する。相関が大きくなる場所を探す処理を動きベクトル探索という。相関の大小は、参照フレームと符号化中フレームとのブロック内の各画素の差異を総和することで評価できる。
【0005】
指定された探索範囲のすべての点を単純に探索し、相関の大きさを調べれば最適な動きベクトルが得られるが、この方法では演算量が極めて大きくなり現実的でない。演算量を削減するために、初めに粗く第1段の探索をおこない、その探索結果を中心にして細かい第2段の探索を行うのが一般的である。このような方法は多段探索法と呼ばれ、Renxiang Li 等によるIEEE Transactions on Circuits and Systems for Video Technology, Vol.4, No.4, August, 1994, pp.438−441 などに開示されている。以下、多段探索法について簡単に説明する。
【0006】
図10(A)は、一般的な多段探索法を説明するための画素配列を示す模式図であり、(B)は第2段の探索の様子を示すシーケンス図である。例えば、初めに第1段の探索として2画素精度探索(図10(A)の”1”でラベルされた位置の探索)を実行し、そのなかで最も相関が大きくなる位置を決定する。続いて、第1段の探索結果である位置を中心に、第2段の探索として1画素精度探索(図10(A)の”2”でラベルされた位置の探索)を実行し、その中で最も相関が大きくなる位置を最終的な動きベクトルとする。
【0007】
通常、第1段の動きベクトル探索は、フレームをサブサンプリングして解像度を下げたフレームデータを用いる。例えば、フレームデータを縦横ともに半分にして第1段の動きベクトル探索をおこない、その探索結果の周囲を探索範囲として本来の解像度で第2段の探索を実行し、最終的な動きベクトルを求める。たとえば図10(B)に示すように、第2段の探索範囲が縦および横方向±1画素の範囲である場合には、探索範囲内のすべての位置(図10(B)の(a)〜(i))でマッチングが行われる。
【0008】
動きベクトル探索の効率は符号化処理能力を決定する主な要因であることから、様々な探索手法が提案されている。
【0009】
特開平9−130808号公報には、上述した第1段および第2段の動きベクトル探索を用いた多段探索方法についての一般的な説明がある(段落番号0018〜0020)。さらに、同公報に開示された動画像圧縮方法では、ピクチャタイプがBピクチャの場合、第1段の探索処理に基づいて最適な動きベクトルを判定しており、多少の画質の劣化を許容しつつ処理の効率化を図っている(段落番号0065)。
【0010】
また、特開平10−126783号公報に開示された動きベクトル検出方法では、動きベクトルを検出する対象画像データを垂直および水平の両方向で間引いてブロックサイズにした後、参照画像データの探索範囲内で順次マッチングを行い、最適な動きベクトルを検出している(段落番号0008、0024〜0028、0049)。
【0011】
更に、特開平9−162747号公報に開示された動きベクトル検出方法では、探索範囲のブロック画像に対して水平および垂直方向の少なくとも一方向でサブサンプルを行い、対象画像との相関演算によって最適動きベクトルを検出する(要約、段落番号0019、0034)。
【0012】
【特許文献1】
特開平9−130808号公報(要約、段落番号0018〜0020、図9)
【特許文献2】
特開平10−126783号公報(要約、段落番号0008、0024〜0028、図3、図5、図7)
【特許文献3】
特開平9−162747号公報(要約、段落番号0019、0034)。
【0013】
【発明が解決しようとする課題】
特許文献1に記載されている一般的な多段探索方法では、例えばソフトウェア制御によりリアルタイムで符号化を行う場合に、探索範囲を狭くするなどして演算量を削減しているのが現状である。しかしながら、探索範囲が狭い場合は適切な動きベクトルが得られない場合があり、符号化効率が下がり画質が低下する。そこで特許文献1では、動きベクトル探索における演算量を更に削減するために、Bピクチャの場合に第1段の探索だけで動きベクトルの判定を行っている。この場合も、適切な動きベクトルが得られないことがあり、画質の低下は免れない。
【0014】
他方、特許文献2に記載されている方法は、多段ではなく1段階で動き探索を効率良く実現しようとするものである。対象画像データを垂直および水平の両方向で間引いてブロックサイズに縮小してから相関演算を行うが、その目的は演算量が低減した分を並列処理に振り分けることにある。
【0015】
また、特許文献3に記載されている方法は、多段ではなく1段階で動き探索を精度良く実現しようとするものである。そのために、探索範囲のみ水平および垂直方向で異なる縮小率にサブサンプリングする点が記載されているが、対象画像はサブサンプリングしないことを特徴としている。
【0016】
本発明の目的は、動きベクトルを高速に探索できる新規な動きベクトル探索方法および装置ならびにコンピュータシステムを提供することにある。
【0017】
本発明の他の目的は、探索精度の低下を最小限に抑えて高速に動きベクトルを探索できる動きベクトル探索方法および装置ならびにコンピュータシステムを提供することにある。
【0018】
【課題を解決するための手段】
本発明の第1の側面による動きベクトル探索装置は、対象画像および参照画像の縦方向及び横方向を異なる縮小率で縮小し、縮小対象画像および縮小参照画像をそれぞれ生成する画像縮小手段と、前記縮小対象画像および縮小参照画像に基づいて第1動きベクトルを探索する第1探索手段と、前記第1動きベクトルにより決定される位置の探索範囲内で、前記縮小前の画像解像度により第2動きベクトルを探索して前記動きベクトルを決定する第2探索手段と、を有することを特徴とする。これにより、第1探索の高速化を実現できる。
【0019】
また、本発明による動きベクトル探索装置は、第2探索手段の探索範囲が前記縮小率に応じて決定されることを特徴とする。これにより、第1探索の高速化に伴う精度劣化を補償することが可能となる。
【0020】
本発明の第2の側面による動きベクトル探索装置は、対象画像および参照画像を縮小して縮小対象画像および縮小参照画像をそれぞれ生成する画像縮小手段と、前記縮小対象画像および縮小参照画像に基づいて第1動きベクトルを探索する第1探索手段と、前記第1動きベクトルにより決定される位置の探索範囲内で、前記縮小前の画像解像度により縦方向の探索と横方向の探索とを独立して実行し、第2動きベクトルを探索して前記動きベクトルを決定する第2探索手段と、を有することを特徴とする。これにより第2探索の高速化が可能となる。
【0021】
画像縮小手段は、前記対象画像および参照画像の縦方向及び横方向を異なる縮小率で縮小して前記縮小対象画像および縮小参照画像をそれぞれ生成してもよい。また、探索範囲は前記縮小率に応じて決定することができる。
【0022】
第2探索手段は、横方向探索により横方向動きベクトルを決定する横方向探索手段と、前記横方向動きベクトルにより決定された位置の縦方向の探索を実行して前記第2動きベクトルを探索する縦方向探索手段と、を有することが望ましい。このように縦方向及び横方向を独立して探索することにより、探索範囲内のすべての点を探索するよりも演算量が削減でき、高速な動きベクトル探索処理が可能となる。第2段探索では一般に探索範囲が狭いので縦横独立に探索しても、すべての点を探索した場合と比べて探索精度の低下は小さくなる。
【0023】
なお、上記の第1段動き探索の高速化手法と第2段動き探索の高速化手法は片方のみを採用してもよいが、両方を同時に採用することでより高速に動きベクトル探索を実行できる。
【0024】
【発明の実施の形態】
構成
図1は、本発明による動きベクトル探索装置の一実施形態を示すブロック図である。図1において、現フレームバッファ101には符号化中のフレームのデータが格納され、参照フレームバッファ102には参照フレームデータが格納されている。サブサンプリング処理部103は現フレームバッファ101および参照フレームバッファ102からそれぞれ現フレームデータおよび参照フレームデータを入力し、後述するように横方向と縦方向とで縮小率が異なるサンプリングを行い、縮小現フレームデータおよび縮小参照フレームデータを生成する。
【0025】
第1段の動き探索処理部104は、縮小現フレームデータおよび縮小参照フレームデータを用いて動き探索を行い、その探索結果である第1段の動きベクトルの位置情報を第2段の動き探索処理部105へ出力する。第2段の動き探索処理部105は、現フレームバッファ101および参照フレームバッファ102から本来の現フレームデータ及び参照フレームデータを入力し、第1段の動きベクトルの位置を中心として詳細な動きベクトル探索を実行する。こうして、最終的な動きベクトルを決定する。
【0026】
本実施形態におけるサブサンプリング処理103は、縦/横の縮小をおこなう縮小処理部111と、縦方向のみの縮小をおこなう縦方向縮小処理部112と、を有し、縮小処理部111および縦方向縮小処理部112により縮小された縮小現フレームデータおよび縮小参照フレームデータを縮小現フレームバッファ113および縮小参照フレームバッファ114にそれぞれ格納する。
【0027】
第2段の動き探索処理部105は、横方向の探索と縦方向の探索とを独立して実行することができる。本実施形態における動き探索処理部105は、横方向の探索を行う横方向探索処理部115と、その横方向の探索により決定された位置に基づいて縦方向の探索を行う縦方向探索処理部116と、を備える。次に、本実施形態の全体的動作について詳細に説明する。
【0028】
全体的動作
図2は、本実施形態の全体的動作を示すフローチャートである。まず、縮小処理部111は、符号化しようとしている現フレームデータを現フレームバッファ101から入力してサブサンプリングする(ステップS201)。続いて、縦方向縮小処理部112は、サンプリングされた現フレームデータを更に縦方向のみサブサンプリングし(ステップS202)、縮小現フレームバッファ113に格納する。
【0029】
同様に、縮小処理部111は、参照フレームデータを参照フレームバッファ102から入力してサブサンプリングする(ステップS203)。続いて、縦方向縮小処理部112は、サンプリングされた参照フレームデータを更に縦方向のみサブサンプリングし(ステップS204)、縮小参照フレームバッファ114に格納する。
【0030】
このように、縦方向縮小処理部112により縦方向のみをサブサンプリングすることで、縦方向の探索精度を下げる。なお、ここでは、縮小処理部111で従来と同様のサブサンプリングを行った後に縦方向縮小処理部112により再度縦方向のみのサブサンプリングを実行しているが、1度のサブサンプリング処理で縦方向の縮小率のみを大きくしても同様の効果が得られる。つまり、サブサンプリング処理では縦方向の縮小率を高くして横長の縮小画像を作成し動きベクトル探索をおこなう。
【0031】
なお、本実施形態では縦方向のみ探索精度を下げている。一般にソフトウェアで動きベクトル探索をおこなう場合、すべての演算はCPUが命令を実行することで行われる。その際、CPUが1命令で複数のデータを処理できるSIMD(single instruction multiple data stream)型の命令を備えている場合には、横方向複数画素のマッチング演算が並列処理可能となる。そのために横方向については、探索精度を下げなくても並列処理により高速化が可能である。そこで、本実施形態では、SIMD型命令を採用して横方向については精度を下げずに探索を実行し、縦方向のみ探索精度を下げて演算量の削減を図っている。
【0032】
次に、フレーム先頭から第1段の動きベクトル探索処理を開始するために縮小現フレームの先頭のブロックにポインタを合わせ(ステップS205)、第1段の動きベクトル探索を実行する(ステップS206)。第1段の動き探索処理部104は、探索範囲内のすべての点を探索して相関が最も大きくなる位置を決定する。すなわち、1つのブロックの探索が終了したら、次のブロックにポインタを移動させ(ステップS207)、フレーム内のすべてのブロックについて探索が終了するまで、同様の動きベクトル探索を繰り返す(ステップS208)。
第1段の動きベクトル探索が終了すると(ステップS208のYES)、第2段の動き探索処理部105は、現フレームの先頭のブロックにポインタを合わせ(ステップS209)、第1段の探索で決定された動きベクトルを中心に、本来の画像解像度で動きベクトル探索を開始する。第2段の探索では、横方向の探索と縦方向の探索とを独立して実行する。
【0033】
まず、横方向の探索は、第1段探索で決定された動きベクトルを中心に横方向探索処理部115により実行される(ステップS210)。続いて、縦方向探索処理部116が横方向で探索した位置を入力し、第1段探索で決定された動きベクトルを中心に、その横方向で探索した位置での縦方向の探索を実行する(ステップS111)。横方向および縦方向の探索の具体例は後述する。
【0034】
第2段の動き探索処理部105は、1つのブロックの探索が終了したら、次のブロックにポインタを移動させ(ステップS212)、フレーム内のすべてのブロックについて探索が終了するまで、同様の動きベクトル探索を繰り返す(ステップS213)。フレーム内のすべてのブロックについて探索が終了したら第2段の探索を終了させ(ステップS213のYES)、第2段の探索で相関が最も大きいと判定された位置を最終的な動きベクトルとする。
【0035】
図3は、本発明による動きベクトル探索方法の第1実施形態を説明するための画素配列の一例を示す模式図である。上述したように横方向よりも縦方向の縮小率が高くなっている。この例では、横方向が1/2に縮小され、縦方向が1/4に縮小されており、第1段の横方向探索は2画素精度、縦方向探索は4画素精度に下がっている(図3の”1”でラベルされた位置の探索)。縦方向の探索精度を下げることにより、探索点数が少なくなり第1段探索の演算量が削減され、高速な動きベクトル探索を実現できる。
【0036】
第1段の探索において最も相関が大きくなる位置が決定され、続いて、その探索結果である位置を中心に、第2段の探索として1画素精度探索(図3の”2”でラベルされた位置の探索)が実行される。そして、その中で最も相関が大きくなる位置が最終的な動きベクトルとして決定される。
【0037】
第2段探索(横方向と縦方向の独立実行)
第2段の動き探索では、1画素精度探索が行われるために演算量が一般的に大きくなるが、本発明では縦方向および横方向の動きベクトルを独立に求めることで演算量を低減させることができる。
【0038】
図4(A)は横方向探索時における探索範囲とマッチング単位との関係を示す模式図であり、(B)は縦方向探索時における探索範囲とマッチング単位との関係を示す模式図である。ここでは、探索をおこなうブロックサイズを横N画素×縦M画素、探索範囲を横N±n画素、縦M±m画素と仮定している。
【0039】
初めに横方向の動きベクトルを求める。横方向探索時には、 図4(A)に示すように、マッチング単位(ハッチング部)を横N画素×縦(M+2m)画素に設定する。つまり、マッチング単位の縦サイズを探索範囲と同じサイズにする。このマッチング単位を使って横方向の探索をおこない、横方向の動きベクトルを求める。
【0040】
続いて、横方向の探索結果の位置における縦方向の探索をおこなう。縦方向探索時には、図4(B)に示すように、マッチング単位を横N画素×縦M画素のブロックサイズに設定して通常の探索をおこなう。その際、横方向探索により決定された位置の縦方向で探索が行われる。たとえば、図4(B)に示すように、横方向探索の結果、矢印401で示される最左端の位置が決定されたとすると、その位置における縦方向にマッチング単位を1画素ずつシフトさせながら探索が行われる。以下、本発明による動きベクトル探索方法の第1実施形態における横方向及び縦方向の探索動作の一例を説明する。
【0041】
図5(A−1)〜(A−3)は、本発明による動きベクトル探索方法の第1実施形態における横方向探索時の探索範囲とマッチング単位との関係を示す模式図、図5(B−1)〜(B−3)は縦方向探索時の探索範囲とマッチング単位との関係を示す模式図である。ここでは、ブロックサイズが8×8画素、探索範囲が10×10画素とする。
【0042】
図5(A−1)〜(A−3)に示すように、横方向探索では、マッチング単位(ハッチング部)の縦サイズを探索範囲と同じサイズにし、左から順に図5(A−1)、(A−2)、(A−3)の位置でそれぞれマッチング処理を行う。そして、相関が最も大きくなる位置を横方向探索の結果として出力する。ここでは、図5(A−3)の矢印501で示す位置が最大相関値を示すものとする。
【0043】
続いて、横方向探索の結果を用いて縦方向探索を行う。図5(B−1)〜(B−3)に示すように、マッチング単位をブロックサイズに一致させ、矢印501の位置において、上から順に図5(B−1)、(B−2)、(B−3)の位置でそれぞれマッチング処理を実行し、相関が最も大きくなる位置を探す。こうして得られた最大相関値を示す位置が最終的な動きベクトルとして出力される。
【0044】
上述したように、第1実施形態では、サブサンプリングしたフレームで動きベクトル探索を行う場合に、縦方向と横方向とで独立して縮小率を設定している。その際、縦方向の縮小率を高くして横長の映像を用いて動きベクトル探索を行うことで、探索点数を削減でき、高速に動きベクトルを探索できる。
【0045】
また、本実施形態では、第2段の探索において、横方向および縦方向の動きベクトルを独立に探索し、一方の探索結果を用いて探索演算量を削減することができるために、さらに高速の動きベクトル探索を実現できる。
【0046】
他の実施形態
上述したように、本発明では、第1段の探索において、縦方向の探索精度を横方向の探索精度より低くしている。そのため、最終的な動きベクトル探索の精度が低下する傾向にある。そこで第2実施形態では、第2段の探索における縦方向の探索範囲を広げることにより探索精度の低下を防ぐ。このようにサブサンプリング時の縮小率に応じて探索範囲を変えることで探索精度の低下を最小限に抑えることが可能となる。
【0047】
図6は、本発明による動きベクトル探索方法の第2実施形態を説明するための画素配列の一例を示す模式図である。第1実施形態の場合と同様に、この例でも、横方向が1/2に縮小され、縦方向が1/4に縮小されており、第1段の横方向探索は2画素精度、縦方向探索は4画素精度に下がっている(図6の”1”でラベルされた位置の探索)。
【0048】
また、第1段探索の結果を中心にして、第2段の探索として1画素精度探索(図6の”2”でラベルされた位置の探索)が実行されるが、その際の縦方向の探索範囲は、図6の”2”でラベルされた位置のように、縦方向の縮小率に応じて広げられている。例えば、横方向が1/2に縮小され、縦方向が1/4に縮小されている場合は、探索範囲を横方向に±1画素、縦方向に±2画素拡張する。この例を用いて、具体的に説明する。
【0049】
図7(A−1)〜(A−3)は、本発明による動きベクトル探索方法の第2実施形態における横方向探索時の探索範囲とマッチング単位との関係を示す模式図、図7(B−1)〜(B−5)は縦方向探索時の探索範囲とマッチング単位との関係を示す模式図である。ここでは、フレームデータが横方向に1/2、縦方向に1/4だけ縮小されている場合を仮定し、それに応じて第2段の探索範囲が横方向に±1画素、縦方向に±2画素だけ拡張されている。すなわち、ブロックサイズが8×8画素、探索範囲が14×10画素とする。
【0050】
図7(A−1)〜(A−3)に示すように、横方向探索では、マッチング単位(ハッチング部)の縦サイズを探索範囲と同じサイズにし、左から順に図7(A−1)、(A−2)、(A−3)の位置でそれぞれマッチング処理を行う。そして、相関が最も大きくなる位置を横方向探索の結果として出力する。ここでは、図7(A−3)の矢印701で示す位置が最大相関値を示すものとする。
【0051】
続いて、横方向探索の結果を用いて縦方向探索を行う。図7(B−1)〜(B−5)に示すように、マッチング単位をブロックサイズに一致させ、矢印701の位置において、上から順に図7(B−1)〜(B−5)の位置でそれぞれマッチング処理を実行し、相関が最も大きくなる位置を探す。こうして得られた最大相関値を示す位置が最終的な動きベクトルとして出力される。
【0052】
この場合、第2段探索では探索範囲が広くなるので計算量は増加してしまう。しかしながら、第1段探索の精度を下げたことによる計算量削減が第2段探索での計算量増加を上回るならば、動き探索処理全体としての計算量は削減される。したがって、通常の動きベクトル探索より高速な処理が可能となり、動きベクトル探索の探索精度の低下も最小限に抑えられる。
【0053】
【実施例】
次に、横方向の画素数が720、縦方向の画素数が480の動画像を符号化する場合を具体例として、本発明による動きベクトル探索方法について説明する。
【0054】
符号化方式は横方向16画素、縦方向16画素を一つのブロックとして、ブロックごとに動きベクトルを割り当てる方式を採用しているものとする。
【0055】
図8は、本発明による動きベクトル探索方法の一実施例を説明するための模式的な流れ図である。まず、縦480画素×横720画素のオリジナルフレームデータ801を所定の縮小率(横方向に1/2、縦方向に1/4)でサブサンプリングし、120×360画素の縮小フレームデータ802を生成する。
【0056】
この縮小フレームデータ802を用いて、縦4画素×横8画素のブロック単位で第1段の探索を実行する。上述したように、各ブロックにおいて、あらかじめ指定された探索範囲内のすべての点を探索し相関が最も大きくなる位置を探す。ここでは、第1段探索によって、縮小フレーム左上から右に10画素、下に3画素の位置803が特定されたと仮定する。
【0057】
次に、第2段の探索を行うために、第1段探索で得られた探索結果の画素位置803を本来の解像度の画素位置804にマッピングする。画素位置803が(10,3)であると仮定した場合、本来の解像度での画素位置804は、それを横方向に2倍、縦方向に4倍した、右に20画素、下に12画素の位置となる。
【0058】
第2段探索では、この画素位置804とその周辺をさらに詳細に探索することになる。すなわち、上記第1実施形態あるいは第2実施形態で説明したように、所定の探索範囲内で、横方向探索を行い、その結果に基づいて縦方向探索を行う。このようにして、演算量を抑制しつつ精度の良い動きベクトル探索を行うことができる。
【0059】
図9は、本発明による動きベクトル探索装置の他の実施形態であるコンピュータシステムを示すブロック図である。このコンピュータシステムには、すでに述べたように、SIMD型命令を備えたプログラム制御プロセッサ901が装備されている。これによって、横方向については精度を下げずに探索を実行し、縦方向のみ探索精度を下げて演算量を削減できる。
【0060】
更に、プログラム制御プロセッサ901には、現フレームバッファ101および参照フレームバッファ102の他に、必要なプログラムを格納したプログラムメモリ902と、縮小現フレームバッファ113および縮小参照フレームバッファ114を含む縮小フレームバッファ903と、が接続されている。
【0061】
プログラムメモリ902には、本発明による動きベクトル探索を実行するためのメインプログラムの他に、上述した縮小処理部111および縦方向縮小処理部112、第1段動き探索処理部104、第2段動き探索処理部105の探索範囲セッティング処理部、横方向探索処理部115、および縦方向探索処理部116をそれぞれ機能的に実現するプログラムモジュールが格納されている。メインプログラムおよび各機能モジュールをプログラム制御プロセッサ901で実行することで、本発明による動きベクトル探索が実行される。
【0062】
なお、上記実施形態及び実施例では、フレーム単位の動画像の場合を例示したが、フィールド単位であっても、フィールド情報を残したまま縮小すれば、本発明は容易に適用できる。
【0063】
【発明の効果】
以上説明したように、本発明による動きベクトル探索方法及び装置は、縦方向と横方向とで異なる縮小率のサブサンプリングを行って第1の探索を実行し、その結果に基づいて第2探索を実行する。さらに、第2探索において、縦方向探索と横方向探索とを独立して実行し最終的な動きベクトルを決定する。このように構成することで、探索点数が少なくなり演算量が削減され、動きベクトル探索を高速化できる。特に、より細かい第2段探索において、横方向探索により決定された横方向位置において縦方向探索を実行することが望ましい。
【0064】
さらに、本発明による動きベクトル探索方法及び装置は、第1段探索の探索精度を粗くした分を第2段探索の探索範囲の拡大で補うことができるために、高速動きベクトル探索において探索精度の低下を最小限に抑えることができる。
【図面の簡単な説明】
【図1】本発明による動きベクトル探索装置の一実施形態を示すブロック図である。
【図2】本実施形態の全体的動作を示すフローチャートである。
【図3】本発明による動きベクトル探索方法の第1実施形態を説明するための画素配列の一例を示す模式図である。
【図4】(A)は横方向探索時における探索範囲とマッチング単位との関係を示す模式図であり、(B)は縦方向探索時における探索範囲とマッチング単位との関係を示す模式図である。
【図5】(A−1)〜(A−3)は、本発明による動きベクトル探索方法の第1実施形態における横方向探索時の探索範囲とマッチング単位との関係を示す模式図、(B−1)〜(B−3)は縦方向探索時の探索範囲とマッチング単位との関係を示す模式図である。
【図6】本発明による動きベクトル探索方法の第2実施形態を説明するための画素配列の一例を示す模式図である。
【図7】(A−1)〜(A−3)は、本発明による動きベクトル探索方法の第2実施形態における横方向探索時の探索範囲とマッチング単位との関係を示す模式図、(B−1)〜(B−5)は縦方向探索時の探索範囲とマッチング単位との関係を示す模式図である。
【図8】本発明による動きベクトル探索方法の一実施例を説明するための模式的な流れ図である。
【図9】本発明による動きベクトル探索装置の他の実施形態であるコンピュータシステムを示すブロック図である。
【図10】(A)は、一般的な多段探索法を説明するための画素配列を示す模式図であり、(B)は第2段の探索の様子を示すシーケンス図である。
【符号の説明】
101 現フレームバッファ
102 参照フレームバッファ
103 サブサンプリング処理部
104 第1段動き探索処理部
105 第2段動き探索処理部
111 縮小処理部
112 縦方向縮小処理部
113 縮小現フレームバッファ
114 縮小参照フレームバッファ
115 横方向探索処理部
116 縦方向探索処理部
Claims (15)
- 動画像の符号化における動きベクトルを探索する装置において、
対象画像および参照画像の縦方向及び横方向を異なる縮小率で縮小し、縮小対象画像および縮小参照画像をそれぞれ生成する画像縮小手段と、
前記縮小対象画像および縮小参照画像に基づいて第1動きベクトルを探索する第1探索手段と、
前記第1動きベクトルにより決定される位置の探索範囲内で、前記縮小前の画像解像度により第2動きベクトルを探索して前記動きベクトルを決定する第2探索手段と、
を有することを特徴とする動きベクトル探索装置。 - 前記探索範囲は、前記縮小率に応じて決定されることを特徴とする請求項1記載の動きベクトル探索装置。
- 前記画像データの縮小率は、縦方向の方が横方向よりも大きいことを特徴とする請求項1または2記載の動きベクトル探索装置。
- 前記第2探索手段は、縦方向の探索と横方向の探索とを独立して実行することを特徴とする請求項1乃至3のいずれかに記載の動きベクトル探索装置。
- 動画像の符号化における動きベクトルを探索する装置において、
対象画像および参照画像を縮小して縮小対象画像および縮小参照画像をそれぞれ生成する画像縮小手段と、
前記縮小対象画像および縮小参照画像に基づいて第1動きベクトルを探索する第1探索手段と、
前記第1動きベクトルにより決定される位置の探索範囲内で、前記縮小前の画像解像度により縦方向の探索と横方向の探索とを独立して実行し、第2動きベクトルを探索して前記動きベクトルを決定する第2探索手段と、
を有することを特徴とする動きベクトル探索装置。 - 前記画像縮小手段は、前記対象画像および参照画像の縦方向及び横方向を異なる縮小率で縮小して前記縮小対象画像および縮小参照画像をそれぞれ生成することを特徴とする請求項5記載の動きベクトル探索装置。
- 前記探索範囲は、前記縮小率に応じて決定されることを特徴とする請求項6記載の動きベクトル探索装置。
- 前記第2探索手段は、
横方向探索により横方向動きベクトルを決定する横方向探索手段と、
前記横方向動きベクトルにより決定された位置の縦方向の探索を実行して前記第2動きベクトルを探索する縦方向探索手段と、
を有することを特徴とする請求項5乃至7のいずれかに記載の動きベクトル探索装置。 - 動画像の符号化における動きベクトルを探索する方法において、
対象画像および参照画像の縦方向及び横方向を異なる縮小率で縮小することで縮小対象画像および縮小参照画像をそれぞれ生成し、
前記縮小対象画像および縮小参照画像に基づいて第1動きベクトルを探索し、前記第1動きベクトルにより決定される位置の探索範囲内で、前記縮小前の画像解像度により第2動きベクトルを探索して前記動きベクトルを決定する、
ことを特徴とする動きベクトル探索方法。 - 動画像の符号化における動きベクトルを探索する方法において、
対象画像および参照画像を縮小して縮小対象画像および縮小参照画像をそれぞれ生成し、
前記縮小対象画像および縮小参照画像に基づいて第1動きベクトルを探索し、
前記第1動きベクトルにより決定される位置の探索範囲内で、前記縮小前の画像解像度により縦方向の探索と横方向の探索とを独立して実行することで、第2動きベクトルを探索して前記動きベクトルを決定する、
ことを特徴とする動きベクトル探索方法。 - 動画像の符号化における動きベクトル探索を実行するコンピュータシステムにおいて、
対象画像データを格納する対象画像バッファと、
参照画像を格納する参照画像バッファと、
動画像の符号化における動きベクトル探索をコンピュータに実行させるための命令からなるプログラムを格納するメモリと、
前記プログラムを実行するプログラム制御プロセッサと、
を有し、前記プログラムは、少なくとも、
前記対象画像および前記参照画像の縦方向及び横方向を異なる縮小率で縮小し、縮小対象画像および縮小参照画像をそれぞれ生成する画像縮小部と、
前記縮小対象画像および縮小参照画像に基づいて第1動きベクトルを探索する第1探索部と、
前記第1動きベクトルにより決定される位置の探索範囲内で、前記縮小前の画像解像度により第2動きベクトルを探索して前記動きベクトルを決定する第2探索部と、
からなることを特徴とするコンピュータシステム。 - 動画像の符号化における動きベクトル探索を実行するコンピュータシステムにおいて、
対象画像データを格納する対象画像バッファと、
参照画像を格納する参照画像バッファと、
動画像の符号化における動きベクトル探索をコンピュータに実行させるための命令からなるプログラムを格納するメモリと、
前記プログラムを実行するプログラム制御プロセッサと、
を有し、前記プログラムは、少なくとも、
前記対象画像および前記参照画像を縮小して縮小対象画像および縮小参照画像をそれぞれ生成する画像縮小部と、
前記縮小対象画像および縮小参照画像に基づいて第1動きベクトルを探索する第1探索部と、
前記第1動きベクトルにより決定される位置の探索範囲内で、前記縮小前の画像解像度により縦方向の探索と横方向の探索とを独立して実行し、第2動きベクトルを探索して前記動きベクトルを決定する第2探索部と、
からなることを特徴とするコンピュータシステム。 - 前記プログラム制御プロセッサは、1命令で複数のデータを処理できる方式のプロセッサであることを特徴とする請求項11または12に記載のコンピュータシステム。
- 動画像の符号化における動きベクトル探索をコンピュータに実行させるための命令からなるコンピュータプログラムにおいて、
前記対象画像および前記参照画像の縦方向及び横方向を異なる縮小率で縮小し、縮小対象画像および縮小参照画像をそれぞれ生成する画像縮小部と、
前記縮小対象画像および縮小参照画像に基づいて第1動きベクトルを探索する第1探索部と、
前記第1動きベクトルにより決定される位置の探索範囲内で、前記縮小前の画像解像度により第2動きベクトルを探索して前記動きベクトルを決定する第2探索部と、
を有することを特徴とする動きベクトル探索プログラム。 - 動画像の符号化における動きベクトル探索をコンピュータに実行させるための命令からなるコンピュータプログラムにおいて、
前記対象画像および前記参照画像を縮小して縮小対象画像および縮小参照画像をそれぞれ生成する画像縮小部と、
前記縮小対象画像および縮小参照画像に基づいて第1動きベクトルを探索する第1探索部と、
前記第1動きベクトルにより決定される位置の探索範囲内で、前記縮小前の画像解像度により縦方向の探索と横方向の探索とを独立して実行し、第2動きベクトルを探索して前記動きベクトルを決定する第2探索部と、
を有することを特徴とする動きベクトル探索プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002293206A JP2004129099A (ja) | 2002-10-07 | 2002-10-07 | 動きベクトル探索方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002293206A JP2004129099A (ja) | 2002-10-07 | 2002-10-07 | 動きベクトル探索方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004129099A true JP2004129099A (ja) | 2004-04-22 |
Family
ID=32284182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002293206A Pending JP2004129099A (ja) | 2002-10-07 | 2002-10-07 | 動きベクトル探索方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004129099A (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009071642A (ja) * | 2007-09-14 | 2009-04-02 | Canon Inc | 動画像符号化装置 |
WO2009102010A1 (ja) * | 2008-02-14 | 2009-08-20 | Nec Corporation | 移動領域検出装置 |
US7852939B2 (en) | 2004-10-18 | 2010-12-14 | Kabushiki Kaisha Toshiba | Motion vector detection method and device of the same |
JP2011130265A (ja) * | 2009-12-18 | 2011-06-30 | Nippon Telegr & Teleph Corp <Ntt> | 動きベクトル検出装置、動きベクトル検出方法およびプログラム |
JP2011530199A (ja) * | 2008-08-02 | 2011-12-15 | エコール・ドゥ・テクノロジー・スュペリュール | 動き補償ビデオ符号化における画像ブロック比較のためのメトリックを決定する方法及びシステム |
JP2013165488A (ja) * | 2012-01-11 | 2013-08-22 | Panasonic Corp | 画像処理装置、撮像装置、およびプログラム |
US8681870B2 (en) | 2008-02-14 | 2014-03-25 | Nec Corporation | Motion vector detection device |
WO2015098559A1 (ja) * | 2013-12-27 | 2015-07-02 | ソニー株式会社 | 復号装置および復号方法、並びに、符号化装置および符号化方法 |
US9100656B2 (en) | 2009-05-21 | 2015-08-04 | Ecole De Technologie Superieure | Method and system for efficient video transcoding using coding modes, motion vectors and residual information |
US9420284B2 (en) | 2010-11-29 | 2016-08-16 | Ecole De Technologie Superieure | Method and system for selectively performing multiple video transcoding operations |
-
2002
- 2002-10-07 JP JP2002293206A patent/JP2004129099A/ja active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7852939B2 (en) | 2004-10-18 | 2010-12-14 | Kabushiki Kaisha Toshiba | Motion vector detection method and device of the same |
JP2009071642A (ja) * | 2007-09-14 | 2009-04-02 | Canon Inc | 動画像符号化装置 |
US8629936B2 (en) | 2008-02-14 | 2014-01-14 | Nec Corporation | Moving region detection device |
WO2009102010A1 (ja) * | 2008-02-14 | 2009-08-20 | Nec Corporation | 移動領域検出装置 |
JP5471449B2 (ja) * | 2008-02-14 | 2014-04-16 | 日本電気株式会社 | 移動領域検出装置 |
US8681870B2 (en) | 2008-02-14 | 2014-03-25 | Nec Corporation | Motion vector detection device |
US8831101B2 (en) | 2008-08-02 | 2014-09-09 | Ecole De Technologie Superieure | Method and system for determining a metric for comparing image blocks in motion compensated video coding |
JP2011530199A (ja) * | 2008-08-02 | 2011-12-15 | エコール・ドゥ・テクノロジー・スュペリュール | 動き補償ビデオ符号化における画像ブロック比較のためのメトリックを決定する方法及びシステム |
JP2014239497A (ja) * | 2008-08-02 | 2014-12-18 | エコール・ドゥ・テクノロジー・スュペリュール | 動き補償ビデオ符号化における画像ブロック比較のためのメトリックを決定する方法、システム、およびプログラム |
US9100656B2 (en) | 2009-05-21 | 2015-08-04 | Ecole De Technologie Superieure | Method and system for efficient video transcoding using coding modes, motion vectors and residual information |
JP2011130265A (ja) * | 2009-12-18 | 2011-06-30 | Nippon Telegr & Teleph Corp <Ntt> | 動きベクトル検出装置、動きベクトル検出方法およびプログラム |
US9420284B2 (en) | 2010-11-29 | 2016-08-16 | Ecole De Technologie Superieure | Method and system for selectively performing multiple video transcoding operations |
JP2013165488A (ja) * | 2012-01-11 | 2013-08-22 | Panasonic Corp | 画像処理装置、撮像装置、およびプログラム |
WO2015098559A1 (ja) * | 2013-12-27 | 2015-07-02 | ソニー株式会社 | 復号装置および復号方法、並びに、符号化装置および符号化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7020201B2 (en) | Method and apparatus for motion estimation with all binary representation | |
KR100486249B1 (ko) | 움직임 추정 장치 및 탐색영역에서 레퍼런스매크로블록창의 스캐닝 방법 | |
JP4528441B2 (ja) | ブロック整合法及び統合投射法を用いた階層的動き評価処理及び装置 | |
JP4166781B2 (ja) | 動きベクトル検出装置および動きベクトル検出方法 | |
US9407931B2 (en) | Motion vector estimator | |
US8243804B2 (en) | Hierarchical motion estimation for images with varying horizontal and/or vertical dimensions | |
JP2006333436A (ja) | 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、及び、動画像復号プログラム | |
JP2009147807A (ja) | 画像処理装置 | |
JP2005303984A (ja) | 動きベクトル検出装置及び方法、及びその動きベクトル検出装置を利用可能な画像符号化装置 | |
JP3880985B2 (ja) | 動きベクトル検出装置および動きベクトル検出方法 | |
JP4793070B2 (ja) | 動きベクトル探索方法及び装置 | |
JP2004129099A (ja) | 動きベクトル探索方法および装置 | |
JP2000106674A (ja) | 動き検出方法および装置 | |
US20080212719A1 (en) | Motion vector detection apparatus, and image coding apparatus and image pickup apparatus using the same | |
JPH11262020A (ja) | モーションベクトル検出装置 | |
JP4228705B2 (ja) | 動きベクトル探索方法および装置 | |
JPH09261646A (ja) | 画像の動き検出装置 | |
KR101091054B1 (ko) | 동화상 부호화에 있어서의 움직임 탐색 장치 | |
JP2007158855A (ja) | 動きベクトル検出装置および動きベクトル検出方法 | |
JP4488805B2 (ja) | 動きベクトル検出装置および方法 | |
JP4797999B2 (ja) | 画像符号化・復号化装置 | |
US20040247032A1 (en) | Motion vector detection device and motion vector detection method | |
JP2004064518A (ja) | 動画像符号化方法、動画像符号化装置、およびコンピュータプログラム | |
JP5461721B2 (ja) | 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、及び、動画像復号プログラム | |
JPH0262178A (ja) | 画像処理装置の動き検出方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050913 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070829 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070904 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080108 |