JP2005253015A - 動きベクトル検出装置、動きベクトル検出方法、及びプログラム - Google Patents

動きベクトル検出装置、動きベクトル検出方法、及びプログラム Download PDF

Info

Publication number
JP2005253015A
JP2005253015A JP2004064717A JP2004064717A JP2005253015A JP 2005253015 A JP2005253015 A JP 2005253015A JP 2004064717 A JP2004064717 A JP 2004064717A JP 2004064717 A JP2004064717 A JP 2004064717A JP 2005253015 A JP2005253015 A JP 2005253015A
Authority
JP
Japan
Prior art keywords
block
difference
pixel
motion vector
difference feature
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
Application number
JP2004064717A
Other languages
English (en)
Inventor
Shinichiro Nishioka
伸一郎 西岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004064717A priority Critical patent/JP2005253015A/ja
Publication of JP2005253015A publication Critical patent/JP2005253015A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 整数画素以下の精度の動きベクトル検出に要する演算量を低減する。
【解決手段】 差分の正負符号を含む差分特徴量を差分評価値SADとともに出力する差分評価値演算部と、隣接する参照ブロック間で差分特徴量を比較する差分特徴量比較部と、差分評価値SADと差分特徴量比較結果により動きベクトル検出の終了を判定する終了判定部とを備え、整数画素精度の動きベクトルを検出した際に生成される上記の差分特徴量を用いて、高精度の動きベクトル検出を行う。
【選択図】 図1

Description

本発明は、動画像圧縮符号化などに用いられる動きベクトル検出を整数画素以下の精度で行うための装置、方法、及びプログラムに関し、特に動きベクトル検出に要する計算量を削減するための技術に関する。
動画素データは一般に、あるフレームの画像と次のフレームの画像はよく似ているという性質を持つ。これを時間方向の冗長性と言うが、この性質の為に、フレーム間の差分を取る事により、各フレームの画素データを直接保存、もしくは伝送する方式に比べ、全体のデータ量を大幅に削減する事ができる。
動画素データの符号化方式の国際規格であるMPEG(Moving Picture Experts Group)−1、−2、及び−4は、DCT(Discrete Cosine Transformation )変換と、動き補償(Motion Compensation)とを組み合わせた画像圧縮技術であり、上記動画素データの時間方向の冗長性を削減する為、フレーム間予測、及び動き補償(Motion Compensation)を行い、膨大な量の動画素データを効率良く圧縮している。
動き補償はまた、動きベクトル補正とも言い、時間軸方向に連続した2枚のフレームの画素データを比較することにより、画面上を移動する物体の動きの大きさと方向を示すベクトル量として動きベクトル(Motion Vector)を検出し、これをフレーム間の差分として符号化する。動きベクトルMVの検出には、まず、整数画素精度の動きベクトルMVの探索を行い、続いて半画素精度の動きベクトルMV2の探索を行う。
(整数画素精度の動きベクトル検出)
図10は、動きベクトル検出の概要を示す図である。同図に示すように、動きベクトルの検出においては、まず、時刻Tにおける符号化画像IT(現フレーム)を、縦横16画素×16画素のブロックに分割した中から、1つのブロック(カレントブロックという)を選択し、その左上端の座標を(x,y)とする。
次に、参照画像IT-1(参照フレーム)において、X方向、Y方向、ともに1画素単位の動き量(dx,dy)を1つ与える毎に、前記カレントブロックの座標(x,y)の周囲に設定した、サイズSRx×SRy(ブロック単位)の所定の探索範囲内において、左上端の座標が(x+dx,y+dy)であり、カレントブロックと同じサイズの領域が1つ定まるが、これを参照ブロックという。
上記の動き量(dx,dy)を少しずつ変化させながら、上記参照ブロックの画像パターンを、カレントブロックの画像パターンと比較し、その類似度を判定する。
2つの画像パターンの類似度を比較するための量を差分評価値と言い、後述の数式(7)に示す、差分絶対値和SAD(Sum of Absolute Difference)や、数式(8)に示す、差分2乗和SSD(Sum of Square Difference)などが用いられる。
複数の参照ブロック各々の画像パターンと、カレントブロックの画像パターンの類似度を比較した結果、最も類似度の高い参照ブロック(最適参照ブロックMBK)を選び、当該選ばれた最適参照ブロックMBKの動き量(dx、dy)を、当該カレントブロックに対する整数画素精度の動きベクトルMVとする。
上記処理により、現フレーム内の全てのカレントブロックに対して、整数画素精度の動きベクトルMV=(dx、dy)を検出した後、更に精度を向上させる為、精度を半画素に向上させた、半画素精度の動きベクトル探索を行う。
(半画素精度の動きベクトル探索)
半画素精度の動きベクトル探索では、画素データの補間処理によって、「半画素精度の参照ブロック」を作成する。これは、当該検出された動きベクトルMVに対応する、画像類似度の高い参照ブロックBKの周辺において、隣り合った2つの参照ブロックに対し、画素データの補間(線形補間)を行う事により、それらの中間に位置する、半画素精度の参照ブロックHBKを生成し、これらとカレントブロックとの画像パターンの比較を行う事により、整数画素精度の参照ブロックよりも更に画像類似度の高い参照ブロックを探索し、半画素精度の動きベクトルMV2を検出するものである。
図27は、半画素精度の動きベクトルMV2の検出における、画素データの補間処理の概要を示す図である。整数画素精度の動きベクトルMVの検出で得られた、差分評価値SADの最小値に対応した最適参照ブロックMBKの周辺において、同図に示すような、隣り合った2つの画素の中点に対する画素データの補間を行う事により、半画素精度の参照画像を生成する。
図28は、半画素精度の動きベクトル検出における探索位置を示す図である。同図に示すように、まず、整数画素精度の最適参照ブロックMBKの左上端の画素P0から、最適参照ブロックMBKに対する(半画素の)動き量を、それぞれ(dx2,dy2)={ (−1/2,1/2)、(0,1/2)、(1/2,1/2)、(−1/2,0)、(1/2,0)、(−1/2,−1/2)、(0,−1/2)、(1/2,−1/2) }とする事により、半画素ずつずらした8点、P1乃至P8を左上端とする、8個の半画素精度の参照ブロックHBK1乃至HBK8を生成する。
図29は、上記の様にして生成された、8個の半画素精度の参照ブロックHBK1乃至HBK8の位置関係、及び重なり状態を示す図である。同図に示す様に、半画素ブロックHBK1乃至HBK8は、その大半の画素が、他の半画素ブロックに重なっている。
半画素精度の参照ブロックを生成する為には、整数画素精度の参照ブロックの各画素データから、半画素の位置の画素データを補間する。例えば、図27に示す4点、A、B、C、Dの画素データから、これらの4点により囲まれる領域内の半画素位置にある5点、e、f、g、h、iの画素データを生成する際には、下記の数式(1)乃至数式(5)の様に、画素データを線形補間する。なお、下記の数式において、//は、丸め付き平均を表す。
Figure 2005253015
Figure 2005253015
Figure 2005253015
Figure 2005253015
Figure 2005253015
上記の様に、まず、整数画素の画素データを補間し、半画素位置にある各画素データを生成する事により、上記の最適参照ブロックMBKを半画素シフトした、半画素精度の参照ブロックHBK1乃至HBK8を生成する。次に、当該生成された8個の半画素精度の参照ブロックHBK1乃至HBK8について、整数画素精度の場合と同様に、差分評価値SAD1乃至SAD8をそれぞれ算出し、前記の最適参照ブロックMBKに対応するSADの最小値との比較を行う。
上記の比較により、8個の半画素精度の参照ブロックHBK1乃至HBK8の内に、上記の最適参照ブロックMBKに対応するSADの最小値よりも、更に小さい差分評価値SADを与える参照ブロックが存在した場合には、その参照ブロックを、SADの最小値を与えるブロックとし、当該参照ブロックに対応する動きベクトル(dx,dy)+(dx2,dy2)=(dx3,dy3)を、半画素精度の動きベクトルMV2とする。
上記の様に、半画素精度の動きベクトルMV2を検出する為には、半画素精度の参照ブロックHBK1乃至HBK8を線形補間により生成し、さらに、それらについてのSAD演算は計8回必要となる。一方で、図11(b)に示す、ダイヤモンドサーチパターンを用いた整数画素精度の動きベクトル探索における、最小のSAD演算回数が、P0〜P4での計5回である事を考慮すると、半画素精度の動きベクトルMV2の検出についても無視できない演算量を必要とする。
ところで、上記の半画素精度の動きベクトル探索を行っても、半画素精度の動きベクトルMV2が必ずしも半画素位置に求められるとは限らない。画素データを補間する事により生成された、8個の半画素精度の参照ブロックHBK1乃至HBK8について、差分評価値SAD1乃至SAD8をそれぞれ算出し、最適参照ブロックMBKに対応した、整数画素精度のSADの最小値と比較した結果、8個の半画素精度の参照ブロックHBK1乃至HBK8の内に、上記の整数画素精度のSADの最小値よりも、更に小さい差分評価値SADを与える参照ブロックが存在しない場合には、元の整数画素精度の動きベクトルMV=(dx,dy)が、そのまま半画素精度の動きベクトルMV2となる。この場合の半画素精度の動きベクトル探索に費やした演算処理は、無駄である。
このような無駄を防止する為には、半画素精度の動き検出を行う前に、半画素位置においてより小さい差分評価値SADが得られるか否かを推定できれば良い。その為に、整数画素精度の動きベクトル検出の結果を用いて、図11(a)に示す、P0の位置の差分絶対値和SAD0と、周辺の整数画素P1乃至P8の位置の差分絶対値和SAD1乃至SAD8の平均、A=(ΣSADi)/8との差(A−SAD0)をとり、その絶対値|A−SAD0|が、予め設定したしきい値であるΘよりも大きい場合にのみ、半画素位置においてより小さい差分評価値SADが得られると推定し、半画素精度の動きベクトル検出を行う技術が、下記の特許文献に開示されている。
特開2000−278696号公報
しかしながら、上記の従来技術によれば、中心位置の周囲の半画素位置においてより小さい差分評価値SADが得られる可能性を一括して推定するものの、個々の半画素位置における個別の可能性について精度よく知ることができない。
そのため、より可能性が高い一部の半画素位置においてのみ動きベクトルを探索することにより計算量を細かく削減するといった方策を採ることができない。
さらに、前記従来技術では、整数画素精度の動きベクトルを求めた後、その周辺においてより小さい差分評価値を示す半画素位置を求めるので、特に当該整数画素精度の動きベクトルを局所探索により求める場合、探索経路の途中に好ましい差分評価値(例えば極小値)を示す半画素位置があったとしても無視してしまう。
そのため、好ましい動きベクトルを見逃してしまうだけでなく、局所探索を早期に終了させることができないので計算量の増大を招くこととなる。
本発明は上記問題点を解決する為になされたものであり、個々の半画素位置においてより小さい差分評価値が得られる可能性を半画素位置個別かつ高精度に推定すること、及び局所探索を従来よりも早期に終了させるための新たな条件を判定することにより、もって整数画素以下の精度の動きベクトルを従来よりも少ない計算量で検出する動きベクトル検出装置、動きベクトル検出方法、及びプログラムを提供することを目的とする。
上記目的を達成する為、本発明の動きベクトル検出装置は、参照画像内に複数の参照ブロックを段階的に設定しながら、設定された参照ブロックの中から符号化対象画像内のカレントブロックとの類似度が最も高い第1最適ブロックを探索した後、前記参照ブロック間で画素補間して得た1つ以上の内挿ブロックを比較対象に加えて類似度が最も高い第2最適ブロックを求め、当該第2最適ブロックを基に整数画素以下の精度で動きベクトルを検出する動きベクトル検出装置であって、前記設定された参照ブロックの各々について、前記カレントブロック及び前記参照ブロックの対応画素の差分の正負符号をブロック内の各画素について示す差分特徴量を算出する演算手段と、隣接する参照ブロックについて算出された差分特徴量を比較することにより、当該隣接する何れの参照ブロックの類似度よりもそれらの間で画素補間して得られる内挿ブロックの類似度が高い可能性を示す比較結果を出力する比較手段と、前記比較結果が所定の可能性を示す場合に前記第1最適ブロックの探索を終了すると判定する判定手段とを備える。
また、前記動きベクトル検出装置において、前記演算手段は、前記対応画素の差分の正負符号のみをブロック内の各画素について示す差分特徴量を算出し、前記比較手段は、前記差分特徴量により示される正負符号が不一致である画素の数を前記比較結果として出力し、前記判定手段は、前記比較結果が所定のしきい値以上である場合に前記第1最適ブロックの探索を終了してもよい。
この構成によれば、隣接する参照ブロックの対応画素の差分の正負符号の比較により、それらの間に得られる内挿ブロックの類似度がより高くなる可能性を示す比較結果を算出するので、内挿ブロック個別に結果が得られる。
隣接する参照ブロックの対応画素の差分の正負符号が不一致であれば当該対応画素値の間に前記カレントブロックの画素値があるから、当該対応画素を線形補間して得た内挿画素の値は前記カレントブロックの画素の値に近い。そのような対応画素の数である前記比較結果は、内挿ブロックの類似度がより高くなる可能性を精度良く示す。
さらに、前記比較結果に基づいて前記第1最適ブロックに関する部分探索を終了させるので、前記第1最適ブロックを部分探索する場合に探索経路の途中にある好ましい内挿ブロックの検出が可能になると同時に、当該部分探索に要する計算量が削減される。
また、前記動きベクトル検出装置において、前記演算手段は、前記対応画素の差分の正負符号に加え、差分の絶対量の量子化値をブロック内の各画素について示す差分特徴量を算出し、前記比較手段は、前記差分特徴量により示される正負符号が不一致でありかつ量子化値が一致する画素の数を前記比較結果として出力し、前記判定手段は、前記比較結果が所定のしきい値以上である場合に前記第1最適ブロックの探索を終了すると判定してもよい。
この構成によれば、前記差分の正負符号が不一致で、かつ差分の絶対量が量子化の分解能で一致する対応画素の数を前記比較結果とする。このような対応画素を線形補間して得た内挿画素の値は、量子化の分解能でちょうど前記カレントブロックの画素の値となるから、前記内挿ブロックの類似度がより高くなる可能性をさらに精度良く示すことができる。
本発明の動きベクトル検出方法は、参照画像内に複数の参照ブロックを段階的に設定しながら、設定された参照ブロックの中から符号化対象画像内のカレントブロックとの類似度が最も高い第1最適ブロックを探索した後、前記参照ブロック間で画素補間して得た1つ以上の内挿ブロックを比較対象に加えて類似度が最も高い第2最適ブロックを求め、当該第2最適ブロックを基に整数画素以下の精度で動きベクトルを検出する動きベクトル検出方法であって、前記設定された参照ブロックの各々について、前記カレントブロック及び前記参照ブロックの対応画素の差分の正負符号をブロック内の各画素について示す差分特徴量を算出する演算ステップと、隣接する参照ブロックについて算出された差分特徴量を比較することにより、当該隣接する何れの参照ブロックの類似度よりもそれらの間で画素補間して得られる内挿ブロックの類似度が高いか推定する推定ステップと、肯定推定された場合に前記第1最適ブロックの探索を終了すると判定する判定ステップとを含む。
また、前記演算ステップは、前記対応画素の差分の正負符号のみをブロック内の各画素について示す差分特徴量を算出し、前記推定ステップは、前記差分特徴量により示される正負符号が不一致である画素の数が所定のしきい値以上である場合に肯定推定してもよい。
これらの方法によれば、前記内挿ブロックの類似度がより高くなるか、前述した作用によって精度良く推定し、その結果に基づいて前記第1最適ブロックに関する部分探索を終了させるので、探索経路の途中にある好ましい内挿ブロックの検出が可能になると同時に、当該部分探索に要する計算量が削減される。
また、前記推定ステップにおいて肯定推定された内挿ブロックのみを前記比較対象に加えて前記第2最適ブロックを求めてもよい。
また、本発明の動きベクトル検出方法は、参照画像内に設定した複数の参照ブロックの中から符号化対象画像内のカレントブロックとの類似度が最も高い第1最適ブロックを探索した後、前記参照ブロック間で画素補間して得た1つ以上の内挿ブロックを比較対象に加えて類似度が最も高い第2最適ブロックを求め、当該第2最適ブロックを基に整数画素以下の精度で動きベクトルを検出する動きベクトル検出方法であって、前記参照ブロックの各々について、前記カレントブロック及び前記参照ブロックの対応画素の差分の正負符号をブロック内の各画素について示す差分特徴量を算出する演算ステップと、隣接する参照ブロックについて算出された差分特徴量を比較することにより、当該隣接する何れの参照ブロックの類似度よりもそれらの間で画素補間して得られる内挿ブロックの類似度が高いか推定する推定ステップと、を含み、前記推定ステップにおいて肯定推定された内挿ブロックのみを比較対象に加えて前記第2最適ブロックを求めてもよい。
これらの方法によれば、類似度がより高くなると推定される内挿ブロックのみを前記比較対象に加えるので、実際に類似度を算出する内挿ブロックの数を抑制し前記第2最適ブロックを求めるための計算量を削減することができる。
また、前記動きベクトル検出方法において、前記演算ステップは、前記対応画素の差分の正負符号に加え、差分の絶対量の量子化値をブロック内の各画素について示す差分特徴量を算出し、前記推定ステップは、前記差分特徴量により示される正負符号が不一致でありかつ量子化値が一致する画素の数が所定のしきい値以上である場合に肯定推定してもよい。
この方法によれば、前記内挿ブロックの類似度がより高くなるか、前述した作用によってさらに精度良く推定することができる。
本発明の動きベクトル検出方法は、符号化対象画像の時間的な前後に表示される第1参照画像及び第2参照画像内にそれぞれ複数設定される第1参照ブロック及び第2参照ブロック、並びに当該第1参照ブロックと当該第2参照ブロックとの間で画素補間して得た1つ以上の時間内挿ブロックの中から、前記符号化対象画像内のカレントブロックとの類似度が最も高い最適ブロックを求め、当該最適ブロックを基に双方向に動きベクトルを検出する動きベクトル検出方法であって、前記第1参照ブロックの中から類似度が最も高い第1最適ブロックを求めると共に、前記カレントブロック及び当該第1最適ブロックの対応画素の差分の正負符号をブロックの全画素について示す第1差分特徴量を算出する第1演算ステップと、前記第2参照ブロックを段階的に設定しながら、設定された第2参照ブロックの中から類似度が最も高い第2最適ブロックを探索する探索ステップと、前記設定された第2参照ブロックの各々について、前記カレントブロック及び前記第2参照ブロックの対応画素の差分の正負符号をブロックの全画素について示す第2差分特徴量を算出する第2演算ステップと、前記第1差分特徴量と前記第2差分特徴量とを比較することにより、前記第1最適ブロック及び前記第2参照ブロックの何れの類似度よりもそれらの間で画素補間して得られる時間内挿ブロックの類似度が高いか推定する推定ステップと、肯定推定された場合に前記第2最適ブロックの探索を終了すると判定する判定ステップとを含む。
また、前記第1演算ステップは、前記対応画素の差分の正負符号のみをブロック内の各画素について示す第1差分特徴量を算出し、前記第2演算ステップは、前記対応画素の差分の正負符号のみをブロック内の各画素について示す第2差分特徴量を算出し、前記推定ステップは、前記第1差分特徴量と前記第2差分特徴量とにより示される正負符号が不一致である画素の数が所定のしきい値以上である場合に肯定推定してもよい。
また、前記第1演算ステップは、前記対応画素の差分の正負符号に加え、差分の絶対量の量子化値をブロック内の各画素について示す第1差分特徴量を算出し、前記第2演算ステップは、前記対応画素の差分の正負符号に加え、差分の絶対量の量子化値をブロック内の各画素について示す第1差分特徴量を算出し、前記推定ステップは、前記第1差分特徴量と前記第2差分特徴量とにより示される正負符号が不一致でありかつ量子化値が一致する画素の数が所定のしきい値以上である場合に肯定推定してもよい。
これらの方法は、双方向に動きベクトルを検出する場合に、前述した作用を時間方向に生ぜしめる。それにより、時間内挿ブロックの前記カレントブロックとの類似度が、前記第1参照ブロック及び第2参照ブロックの前記カレントブロックとの類似度よりも高くなるか精度良く推定し、その結果に基づいて前記第2最適ブロックの部分探索を終了させるので、探索経路の途中にある好ましい時間内挿ブロックの検出が可能になると同時に、当該部分探索に要する計算量が削減される。
また、本発明は、前記の方法に含まれる各ステップをコンピュータに実行させるためのプログラムであってもよい。
このプログラムによって、前述した効果を有する動きベクトル検出をコンピュータを用いて実施することができる。
以下、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
本実施の形態の動きベクトル検出装置について、図面を参照しながら説明する。
<構成>
(MPEG処理装置2の全体構成、接続関係)
図1は、本実施の形態の動きベクトル検出装置1を主要部とした、MPEG処理装置2の構成を示す機能ブロック図である。
MPEG処理装置2は、具体的には、CPU(Central Processing Unit)3、と当該CPU3が実行するプログラムを記憶しているROM(Read Only Memory)4、CPU3がプログラムを実行する際の作業領域であるRAM(Random Access Memory)5、フレームメモリ6、及び動きベクトル検出装置1から構成されており、各種の命令、及びデータの転送を行うグローバルバス7を介して、相互に接続されている。
(CPU3の構成、接続関係)
CPU3は、グローバルバス7を介し、ROM4、RAM5、及び動きベクトル検出装置1と接続されている。
CPU3は、ROM4又はRAM5などのメモリに格納されている各種のプログラムやデータによって動作し、MPEG処理装置2の制御部14(後述)からの送信要求に従い、MPEG処理装置2に対し、上記グローバルバス7を介して、画素データを転送する。
(フレームメモリ6の構成、接続関係)
フレームメモリ6は、現フレームメモリ8、及び参照フレームメモリ9から構成されており、グローバルバス7を介し、CPU3、ROM4、RAM5、及び動きベクトル検出装置1と接続されている。
フレームメモリ6は、CPU3によりデータ転送された、現フレームの画素データを現フレームメモリ8に格納する一方、同じくCPU3によりデータ転送された、参照フレームの画素データを参照フレームメモリ9に格納する。
当該データ転送され、格納された画素データは、制御部5からの送信要求に基づき、CPU3によって、動きベクトル検出装置1に転送され、現フレームの各カレントブロックに対する動きベクトルの探索が行われる。
(動きベクトル検出装置1の構成、接続関係)
動きベクトル検出装置1は、カレントブロックメモリ11、参照領域メモリ12、アドレス生成部13、制御部14、及びデータパス部15から構成されており、外部のCPU3、及びフレームメモリ6と、グローバルバス7を介して接続されている。
動きベクトル検出装置1は、CPU3により、フレームメモリ6からデータ転送されたカレントブロックCBKの画素データ、及び参照領域SAの画素データを基に、動きベクトルMVの探索を行う。上記探索により検出された動きベクトルMVを、動き補償(MC)を行う後続の機能ブロック(不図示)に対して出力する。
(カレントブロックメモリ11、及び参照領域メモリ12の構成、接続関係)
カレントブロックメモリ11、及び参照領域メモリ12は、グローバルバス7に接続され、当該グローバルバス7を介し、外部と画素データの授受を行う。
カレントブロックメモリ11、及び参照領域メモリ12は、制御部14の命令に基づき、CPU3により、グローバルバス7を介し、フレームメモリ6の現フレームメモリ8から転送されたカレントブロックCBKの画素データ、及び、フレームメモリ6の参照フレームメモリ9から転送された参照領域SAの画素データをそれぞれ受け取り、格納する。
カレントブロックメモリ11に格納されるデータは、現フレームの中の、カレントブロックCBKの画素データであり、参照領域メモリ12に格納されるデータは、参照フレームの中の、所定の探索領域に含まれる画素データである。
また、カレントブロックメモリ11、及び参照領域メモリ12にそれぞれ格納された画素データは、制御部14が、アドレス生成部13に対し、転送領域の先頭アドレスを指定するよう命令した後、所定の転送バイト数の画素データを、データパス部15に対して転送する。
カレントブロックメモリ11から転送されるデータは、カレントブロックCBKの画素データである一方、参照領域メモリ12から転送されるデータは、参照領域の中に含まれる、所定の参照ブロックBKの画素データである。従って、データ転送の際には、カレントブロックメモリ11の画素データは、制御部14が、データパス部15に対し、全ての画素データを転送するのに対し、参照領域メモリ12の画素データは、制御部14が、当該参照ブロックBKの画素データの先頭アドレス、及び転送バイト数などを指定した上で、データパス部15にデータ転送する。
当該転送されたカレントブロックCBKの画素データ、及び参照ブロックBKの画素データに基づいて、データパス部15は、画像の類似度を判定し、動きベクトルMVの探索を行う。
(アドレス生成部13の構成、接続関係)
アドレス生成部13は、カレントブロックメモリ11、参照領域メモリ12、制御部14、及びデータパス部15に接続される一方、グローバルバス7を介して、外部のフレームメモリ6に接続されている。
(アドレス生成部13の機能)
アドレス生成部13は、制御部14からの命令に従い、グローバルバス7を介し、外部のフレームメモリ6に対して、画素データの転送を行う際の、転送元のアドレスを指定する一方、同じく制御部14からの命令により、カレントブロックCBKや、参照ブロックBKの画素データを読み出す為、当該ブロックの位置座標(x、y)、及び画面1ライン分のデータ長などを基に、当該ブロックの画素データの(先頭アドレス、データ長)の組を算出する。
当該算出された画素データの先頭アドレス、データ長を基に、制御部14が、当該画素データが格納されたメモリから、カレントブロックCBK、及び参照ブロックBKなどの、必要な画素データを読み出し、カレントブロックメモリ11、参照領域メモリ12、及びデータパス部15などの各転送先に転送する。
(制御部14の構成、接続関係)
制御部14は、具体的には、図中に表示しないCPU、当該CPUが実行する各種の制御プログラムを記憶しているROM(不図示)、及び当該CPUがプログラムを実行する際の作業領域であるRAM(不図示)から構成されるコンピュータである。
上記CPUは、DSP(Digital Signal Processor)であっても良く、後述する動きベクトル検出装置1の当該各部の機能は、上記CPU、又はDSPが、上記ROM、又は図示しない外部の記憶装置に格納されたプログラム(後述する)に従って動作する事により実現される。
また、制御部14は、アドレス生成部13、及びデータパス部15と接続され、また、グローバルバス7を介して、外部のCPU3と接続されている。
(制御部14の機能)
制御部14は、グローバルバス7を介して接続された外部のCPU3に対して、動きベクトル検出装置1に対してフレームメモリ8に格納された画素データを転送するよう命令する。その際の転送元のアドレスの指定は、制御部14により、転送元のアドレス、及び転送バイト数などの指定を受けたアドレス生成部13が、グローバルバス7を介して、CPU3に対して指示を行う。
また制御部14は、画素データのMPEG処理が円滑に進むよう、動きベクトル検出装置1全体を制御する。更に、制御部14は、アドレス生成部13、及びデータパス部15に対し、画素データを転送する際の転送元、及び転送先アドレスを指定するよう、アドレス生成部13に命令し、当該指定された転送元のアドレスから、転送先のアドレスに対し、制御部14が、所定のバイト数の画素データを転送する。
(データパス部15の構成、接続関係)
データパス部15は、内挿演算部24、差分評価値演算部21、差分特徴量比較部22、及び終了判定部23から構成されており、カレントブロックメモリ11、及び参照領域メモリ12、アドレス生成部13、制御部14とそれぞれ接続されている。
(データパス部15の機能)
データパス部15は、カレントブロックメモリ11、及び参照領域メモリ12から、それぞれカレントブロックCBK、及び参照ブロックBKの画素データが、制御部14により、それぞれ転送される。
データパス部15は、当該転送された、カレントブロックCBKの画素データ、及び参照ブロックBKの画素データを基に、双方のデータの差分から、差分評価値SAD、及び差分特徴量を算出する事により、整数画素精度の動きベクトルMV、及び半画素精度の動きベクトルMV2の探索を行う。
(差分評価値演算部21の構成、接続関係)
図2は、差分評価値演算部21の構成を示す機能ブロック図である。差分評価値演算部21は、PEアレー30、アダーツリー40、及び累積加算器50から構成される。
(差分評価値演算部21の機能)
差分評価値演算部21は、カレントブロックメモリ11から供給されるカレントブロックCBKの画素データckl(k=0、1、2、・・・、31;l=0、1、2、・・・、7)、及び参照領域メモリ12から供給される参照ブロックBKの画素データskl(k=0、1、2、・・・、31;l=0、1、2、・・・、7)を基に、下記の式(6)で示される差分評価値SAD(BK)、及び式(7)で示される差分特徴量CHD(BK)klを、それぞれ算出し、後続の処理部である差分特徴量比較部22、及び終了判定部23に対して、それぞれ出力する。
Figure 2005253015
Figure 2005253015
差分評価値SAD(BK)は、PE31乃至38の8個並列に接続されたPEにより、32周期(サイクル)毎に1個生成される一方、差分特徴量CHD(BK)klは、毎周期(サイクル)8個同時に生成され、8ビットの差分特徴量バス55を介し、毎周期8個並列に差分特徴量比較部22に対して出力される。
(PEアレー30の構成、接続関係)
PEアレー30は、後述のPE(Processing Element)を8個並列に並べて構成される。
上記8個のPE(l)(l=0、1、2、・・・、7)は、カレントブロックメモリ11のポートc、及び参照領域メモリ12のポートsに、それぞれ接続されている。また、各PE(l)の差分絶対値和出力端子は、アダーツリー40の各入力端子に接続されている一方、差分特徴量出力端子は、差分特徴量バス48を介し、差分特徴量比較部22の入力端子に接続されている。
(PEアレー30の機能)
PEアレー30は、カレントブロックメモリ11のポートc、及び参照領域メモリ12のポートsから、それぞれ供給されるデータckl、及びskl(k=0、1、2、・・・、31;l=0、1、2、・・・、7)を基に、差分絶対値|ckl−skl|、及び差分特徴量CHD(BK)kl=sgn(ckl−skl)をそれぞれ算出する8個のPE(l)(l=0、1、2、・・・、7)により、上記の差分絶対値|ckl−skl|、及び差分特徴量CHD(BK)kl=sgn(ckl−skl)を、変数k(k=0、1、2、・・・、31)で指定される各サイクルにおいて、同時に8個生成する。
なお、以下において、添字k(k=0、1、2、・・・、31)は、本実施の形態の動きベクトル検出装置の周期(クロックサイクル)を指定する一方、添字l(l=0、1、2、・・・、7)は、8個並列に接続されたPEのうちの、l番目のPE(=PE(l))を指定するものとする。添字kの範囲は、0から31までであるが、これは、本実施の形態の動きベクトル検出装置による各マクロブロックの画素データの処理が、32サイクルを1単位として、一連の処理が行われる事を示している(動きベクトル検出装置としての実際の周期は、32サイクルよりも長くなる)。
(PEの構成、接続関係)
図3は、図2に示した8個のPE31乃至PE38の、内部構成を示す機能ブロック図である。同図に示す様に、各PE(l)(l=0、1、2、・・・、7)は、引算器61、絶対値化器62、レジスタ63、及び符号化器64から構成されている。
(PEの機能)
各PE(l)(l=0、1、2、・・・、7)は、カレントブロックメモリ11のポートc、及び参照領域メモリ12のポートsから順次供給される、カレントブロック、及び参照ブロックの画素データckl、及びskl(k=0、1、2、・・・、31;l=0、1、2、・・・、7)に対し、差分絶対値|ckl−skl|を算出する。
また、上記の画素データckl、及びsklの差分(ckl−skl)の符号sgn(ckl−skl)を、1ビットの情報“1”、又は“0” に変換し、差分特徴量CHD(BK)klとする。
本実施例では、差分(ckl−skl)の符号が正であれば、ビット“1”に変換し、0又は負であれば、ビット“0”に変換したものを、差分特徴量CHD(BK)klとする。
上記の様にして、毎サイクル8個生成される差分絶対値|ckl−skl|を、アダーツリー40に出力する一方、差分特徴量CHD(BK)kl=sgn(ckl−skl)を、毎周期(サイクル)1個生成し、差分特徴量バス48を介し、差分特徴量比較部22に出力する。
(アダーツリー40の構成、接続関係)
アダーツリー40は、図2に示す様に、2個のデータを加算する複数個の加算器41乃至加算器47を、数段に渡って配置し、結合したものである。
アダーツリー40の各入力端子は、8個のPE31乃至PE38の各出力端子にそれぞれ接続される一方、各出力端子は、累積加算器50の各入力端子にそれぞれ接続されている。
(アダーツリー40の機能)
上記の並列に配置された8個のPE31乃至PE38から出力される、複数個の差分絶対値|ckl−skl|を、2個ずつ数段に渡って加算することにより、最終的に、各PEが出力する上記データに対し、変数l(l=0、1、2、・・・、7)に関して和を取ったものを、累積加算器50に対して出力する。
(累積加算器50の構成、接続関係)
図4は、累積加算器50の構成を示す機能ブロック図である。同図に示すように、累積加算器50は、加算器51、及び累積レジスタ52を含んで構成される。
(累積加算器50の機能)
PEアレー30において、変数lで指定される各PE(l)(l=0、1、・・・、7)からは、上記の演算を行った結果である差分絶対値|ckl−skl|(k=0、1、2、・・・、31;l=0、1、2、・・・、7)に対し、アダーツリー40、及び累積加算器50が、変数l、及びkに関して、それぞれ和をとる事により、最終的に差分評価値SADが算出される。当該算出された差分評価値SADは、終了判定部23に出力される。
(差分特徴量比較部22の構成、接続関係)
図5は、差分特徴量比較部22の構成を示す、機能ブロック図である。同図に示すように、差分特徴量比較部22は、分岐器70、バンク0乃至バンク4の5個の差分特徴量レジスタ71乃至75、加算器76、比較器77、及びカウンタ78から構成されている。
(差分特徴量比較部22の機能)
差分特徴量比較部22が備える、5個の差分特徴量レジスタ71乃至75(それぞれ、バンク0乃至バンク4に対応する)は、探索パターンSPに含まれる探索中心P0、及び周囲の4点P1乃至P4の、計5点に対応しており、バンク0乃至バンク4の各バンクは、P0乃至P4の5点を左上端とする、各参照ブロックBKn(n=0、1、2、3、4)と、カレントブロックCBKとの画素データの差分符号CHD(BKn)klを、それぞれ格納する。
上記のバンク0乃至バンク4の各バンクは、それぞれ8bit×32バイト=256bitの容量があり、各バンクの1ビットが、対応する差分ブロックの、対応する差分画素データ(ckl−skl)の符号である、差分特徴量CHD(BK)kl=sgn(ckl−skl)に、それぞれ対応している(k=0、1、2、・・・、31;l=0、1、2、・・・、7)。
上記の様にして、参照ブロックBK0乃至BK4と、カレントブロックCBKとの各画素データの差分(ckl−skl(n))の符号、sgn(ckl−skl(n))(nは、参照ブロックBK0乃至BK4のうちの1つを指定する為の変数であり、n=0、1、2、3、4)を、バンク0乃至バンク4の各バンクに格納した後、後述する、差分特徴量比較結果算出処理(図6参照)によって、バンク0と、バンクn(n=1〜4)との、それぞれ(k、l)の組で指定されるビット(CHD(BK0)kl、及びCHD(BKn)kl、n=1〜4)のビット値(“0”、又は“1”)を比較し、2つのバンク間で、ビット値が異なるビットの個数をカウントし、前記カウント値を比較したものを、差分特徴量比較結果RES(BK0、BKn)(n=1、2、3、4)として、差分特徴量バス48を介し、終了判定部23に出力する。
上記の差分特徴量比較結果RES(BK0、BKn)(n=1、2、3、4)は、差分特徴量CHD(BKn)kl=sgn(ckl−skl(n))を用いて、下記の数式(8)の様に表される。
Figure 2005253015
上記の差分特徴量比較結果RES(BK0、BKn)(n=1、2、3、4)は、探索パターンSP={P0、P1、P2、P3、P4}内において隣接する、2つの参照ブロックBK0と、BKn(n=1、2、3、4)との間で、(k、l)で指定される各画素データの差分(ckl−skl)の正負符号(差分特徴量CHD(BK)kl)が、どれだけ反転しているかを示すものであり、この値が大きい程、BK0と、BKn(n=1、2、3、4)との間の半画素位置に、半画素精度の最適参照ブロックMHBKが存在する可能性が高い。
図6は、差分特徴量比較部22が行う、差分特徴量比較結果算出処理の手順を示すフローチャートである。
差分特徴量比較部22は、まず、256個の差分特徴量CHD(BK0)kl(k=0、1、2、・・・、31;l=0、1、2、・・・、7)を、バンク0に格納する(ステップS100)。
次に、iに1をセット(ステップS101)した後、差分特徴量比較結果RES(BK0、BKi)をゼロクリアする(ステップS102)。
次に、バンクiに、256個の差分特徴量CHD(BKi)kl(k=0、1、2、・・・、31;l=0、1、2、・・・、7)を格納すると共に、比較器の入力1に、差分特徴量CHD(BKi)klを転送する(ステップS103)。
また、比較器の入力2には、バンク0に格納した差分特徴量CHD(BK0)klを転送する(ステップS104)。
比較器77の入力1、及び入力2に、差分特徴量CHD(BKi)kl、及びCHD(BK0)klがセットされた状態で、次の差分特徴量カウント処理(ステップS105;詳細は、後述)を実行し、当該処理で得られた差分特徴量比較結果RES(BK0、BKi)を出力する(ステップS106)。
次に、iを“1”インクリメントし(ステップS107)、iが4以下であれば(ステップS108:No)、ステップS102に戻って、処理を継続する。一方、そうでなければ(ステップS108:Yes)、差分特徴量比較結果算出処理を終了する。
図7は、差分特徴量比較部22が行う、差分特徴量カウント処理の処理手順を示すフローチャートである。
差分特徴量比較部22は、まず、変数k、及びlに0をセットする(ステップS200)。
次に、2つの参照ブロックBKi、及びBK0に関する、256個の差分特徴量、CHD(BKi)klとCHD(BK0)kl(k=0、1、2、・・・、31;l=0、1、2、・・・、7)とを比較し、(k、l)の組を1つ定める事により指定される、それぞれの差分特徴量の値が、一致していなければ(ステップS201:Yes)、RES(BK0、BKi)を、“1”インクリメントし、また一致していれば(ステップS201:No)、そのまま次のステップS203に進む。
次に、差分特徴量比較部22は、変数lを“1”インクリメントする(ステップS203)し、
lが8以上でなければ(ステップS204:No)、ステップS201に戻り、次のlに関する比較処理を繰り返す一方、lが8以上であれば(ステップS204:Yes)、ステップS205に進み、変数lに0をセットすると共に、変数kを“1”インクリメントする。
次のステップS206において、kが32以上でなければ(ステップS206:No)、ステップS201に戻り、次のkに関する比較処理を繰り返す一方、kが32以上であれば(ステップS206:Yes)、差分特徴量カウント処理を終了し、呼び出し元にリターンする。
(終了判定部23の構成、接続関係)
図8は、終了判定部23の構成を示す機能ブロック図である。同図に示すように、終了判定部23は、第1終了判定部80、第2終了判定部81、分岐器82、及びOR回路83から構成される。
(終了判定部23の機能)
終了判定部23は、差分評価値演算部21、差分特徴量比較部22から、差分評価値SAD、及び差分特徴量比較結果RES(BK0、BKn)(n=1、2、3、4)を各々取得して、それぞれSADレジスタ90、差分特徴量比較結果レジスタ95に格納する。また、探索中心P0におけるSADの値、SAD(P0)については、特にSAD0レジスタ96に格納し、当該格納された各データをそれぞれ比較する事により、最適参照ブロックMBKの局所探索を終了するか否かについて判定を行う。
上記判定について、終了判定部23は、以下の3つの終了条件のうちのいずれかが満たされた場合には、動きベクトルの局所探索を終了する旨の判定を行う。
(A)探索パターンSPの中心位置P0において、差分評価値SADが最小値となった場合。
(B)探索回数Nsが、探索打ち切り回数に達した場合。
(C)隣り合った2つの整数画素精度の参照ブロックBK0、及びBKn(n=1、2、3、4)の差分特徴量比較結果RES(BK0、BKn)を比較する事により、半画素精度の最適参照ブロックMHBKが、この間に求められる可能性が高いと推定される場合。
上記の「終了条件」のうち、条件A、又は条件Bが成立した場合には、第1終了判定部80が、第1終了信号をOR回路83に出力し、条件Cが成立した場合には、第2終了判定部81が、第2終了信号をOR回路83に出力する。
上記の第1終了信号、及び第2終了信号のうち、いずれかが出力された場合には、終了判定部23は、局所探索を終了する為の終了通知を、制御部14に対して出力する。
終了判定部23から、上記の終了通知を受け取った制御部14は、局所探索によって得られた動きベクトルMVを、制御部14に転送すると共に、探索経路SR内で、SADの最小値を与える参照ブロックの位置に関する情報を、「MINSAD位置情報」として、制御部14に通知した後、現フレームの、次の位置のカレントブロックに対する動きベクトル探索を行う為、整数画素精度の最適参照ブロックMBKの探索処理を、同様に繰り返す。
(第1終了判定部80の構成、接続関係)
第1終了判定部80は、図8に示すように、現在のSADの値を記憶するSADレジスタ90、これまでの探索によって得られたSADの最小値(MINSAD)を記憶するMINSADレジスタ91、それら2つのSAD値の大小を比較する比較器92、及び、SADの最小値(MINSAD)を与える最適参照ブロックMBKの探索を終了するか否かを判定する第1判定部93を含んで構成される。
(第1終了判定部80の機能)
第1終了判定部80は、1つの探索パターンSP内で算出される、複数の差分評価値SADの値を比較する事により、半画素精度の最適参照ブロックMHBKの探索を終了するか否かの判定を行う。
(SADレジスタ90の構成、接続関係)
SADレジスタ9の入力側は、差分評価値演算部21から出力される差分評価値SADを2方向に分岐する、分岐器82の2つの出力のうちの一方に接続され、出力側は、比較器92、及び第2判定部97に接続されている。
(SADレジスタ90の機能)
SADレジスタ90は、差分評価値演算部21から出力された差分評価値SADの値を記憶する。
(MINSADレジスタ91の構成、接続関係)
MINSADレジスタ91の入力側は、比較器92に接続され、出力側は、MINSAD出力を再度比較する為に比較器92の入力側に接続される一方、最終的なMINSADの値を出力する為に、終了判定部23のMINSAD出力ポートに接続されている。
(MINSADレジスタ91の機能)
MINSADレジスタ91は、比較器92と組み合わされる事により、SADレジスタ90に記憶された差分評価値SADの最小値である、MINSADの値を検出し、記憶する。
SADレジスタ90に記憶された差分評価値SADの値と、MINSADレジスタ91に記憶された、差分評価値SADの最小値MINSADの値とを比較器92が比較し、現在のSADの値の方が、MINSADの値よりも小さければ、MINSADレジスタ91が記憶しているMINSADの値を、SADレジスタ90に記憶された現在のSADの値で更新する。
上記処理を繰り返した結果、得られる差分評価値SADの最小値MINSADの値を、終了判定部23のMINSAD出力ポートから出力する。
(比較器92の構成、接続関係)
比較器92の入力側は、SADレジスタ90の出力側、及びMINSADレジスタ91の出力側に接続される一方、出力側は、MINSAD値出力ポートがMINSADレジスタ91の入力側に接続される一方、比較結果出力ポートが第1判定部93の入力側に接続されている。
(比較器92の機能)
比較器92は、2つの入力ポートにそれぞれ入力された、SADレジスタ90が出力する現在の差分評価値SADの値と、MINSADレジスタ91が出力する差分評価値SADの最小値MINSADの値とを比較し、小さい方の値を、出力ポートからMINSADレジスタ91に出力する。
(第1判定部93の構成、接続関係)
第1判定部93の入力側は、制御部14のSAD位置出力ポート、探索回数出力ポート、及び比較器92の比較結果出力ポートに接続され、出力側は、最終的なMINSADの値を与える位置を出力する為に、終了判定部23のMINSAD位置出力ポートに接続され、また終了判定結果を出力する為にOR回路83の入力側にも接続されている。
(第1判定部93の機能)
第1判定部93は、制御部14のSAD位置出力ポートから出力される、現在の探索位置(SAD位置)に関する情報と、比較器92の比較結果出力ポートから出力される、SADレジスタ90に格納された、現在の差分評価値SADの値と、MINSADレジスタ91に格納された、それまでの探索によって得られたSADの最小値MINSADとの大小について、比較器92が比較した結果とを受け取る事により、現在の探索位置における探索パターンSP内で算出される、複数(np)個の参照ブロックの差分評価値SADのうち、中央の探索中心における参照ブロックBKのSAD値が最小となった場合に、整数画素精度の最適参照ブロックMBKの探索を終了する旨の判定を行う。
上記の終了条件A、又は終了条件Bが成立し、整数画素精度の最適参照ブロックMBKの探索を終了する判定を行った場合には、第1判定部93は、第1終了信号をOR回路83に対して出力する。
(第2終了判定部81の構成、接続関係)
第2終了判定部81は、図8に示すように、差分特徴量比較結果レジスタ95、SAD0レジスタ96、及び第2判定部97を含んで構成される。
(第2終了判定部81の機能)
第2終了判定部81は、隣り合った2つの整数画素精度の参照ブロックBK0と、BKnとの差分符号を比較する為の差分特徴量比較結果RES(BK0、BKn)(n=1、2、3、4)を各々比較する事により、半画素精度の最適参照ブロックMHBKの探索を終了するか否かを判定する。
第2終了判定部81の第2判定部97では、SAD0レジスタ96、SADレジスタ90、及び差分特徴量比較結果レジスタ95から、SAD(P0)、SAD(Pn)(n=1、2、3、4)、及び差分特徴量比較結果RES(BK0、BKn)(n=1、2、3、4)を、それぞれ取得し、予め設定された所定のしきい値Th1、及びTh2を用いて、各n(n=1、2、3、4)に対し、下記の2つの不等式
Figure 2005253015
Figure 2005253015
が成立するか否かを判定する。
上記の不等式(9)、及び不等式(10)が、ともに真であれば、第2判定部97は、探索中心P0と周辺位置Pn(n=1、2、3、4)の、2つの整数画素精度の参照ブロックBK0、及びBKnの間に、半画素精度の最適参照ブロックMHBKが存在する可能性が高いとして、第2終了信号を出力する。
(内挿演算部24の詳細)
(内挿演算部24の構成、接続関係)
図9は、内挿演算部24の構成を示す機能ブロック図である。同図に示すように、内挿演算部24は、半画素ブロックメモリ100、及び補間部101から構成される。
(内挿演算部24の機能)
内挿演算部24は、参照領域メモリ12に格納された参照ブロックの画素データを取得し、当該取得された画素データを基に、補間部101が画素データの内挿補間を行う事により、半画素ブロックHBKの画素データを生成する。生成された半画素ブロックHBKの各画素データは、半画素ブロックメモリ100に格納された後、差分評価値演算部21で、半画素精度の差分評価値SADを算出する事により、半画素精度の動きベクトルMV2の検出を行う。
上記の終了判定部23が、終了通知を出力した場合において、上記の終了条件Cにより、第2終了判定部81が第2終了信号を出力した場合には、上記の探索中心P0と、nで指定される周辺位置Pn(n=1、2、3、4)の2つの整数画素精度の参照ブロックBK0、及びBKnの間に、半画素精度の最適参照ブロックMHBKが存在する可能性が高いと考えられる。
このHMBKが、実際にSADの最小値を与える参照ブロックであるかどうかを確かめる為、この2つの参照ブロックBK0、及びBKnとの間で、内挿補間により、実際に半画素精度の参照ブロックHBKを生成し、差分評価値SAD(HBK)を算出し、整数画素精度の参照ブロックの差分評価値SAD(P0)、及びSAD(Pn)と比較する。
上記差分評価値SADの比較を行った結果、SAD(HBK)が、SAD(P0)、及びSAD(Pn)よりも小さい場合には、2つの参照ブロックBK0、及びBKnの間の半画素位置にある、半画素精度の参照ブロックHBKが、半画素精度の最適参照ブロックMHBKであり、これに対応する動きベクトルとして、半画素精度の動きベクトルMV2が求められる。
<動作>
(MPEG処理装置2が、全体として行う動作)
動きベクトル検出装置1が、整数画素精度の動きベクトルを探索する方法について、各部の機能と対照しつつ、図面を参照しながら説明する。
図10は、整数画素精度の動きベクトル探索の概要を示す図である。動きベクトルの検出においては、同図に示すように、まず、フレームメモリ6の現フレームメモリ8に格納された、時刻Tにおける符号化画像IT(現フレーム)を、マクロブロックと呼ばれる、縦横16×16画素のサイズの、互いに重なり合わない領域に分割した中から、所定の順序で1つずつ指定して行き、これをカレントブロックCBKとする。現フレーム画像の符号化は、カレントブロックCBKを単位として行う。
なお、本明細書中において、カレントブロックCBK、及び後述の参照ブロックBKは、ブロックの左上端にある画素の位置を代表点Pとし、P点の座標(x,y)を、当該ブロックの座標(x,y)とする。
上記指定されたカレントブロックCBKの画素データを、CPU3が、現フレームメモリ8から、カレントブロックメモリ11に転送する。現フレームメモリ8に格納された1フレーム分の画素データの中から、カレントブロックCBKの画素データを読み出す為に、アドレス生成部13は、当該カレントブロックCBKの位置座標(x0、y0)、及び画面1ライン分のデータ長を基に、当該カレントブロックCBKの画素データの(先頭アドレス、データ長)の組を、16ライン分算出する。当該算出された画素データの先頭アドレス、データ長を基に、CPU3が、現フレームメモリ8からカレントブロックCBKの画素データを読み出し、カレントブロックメモリ11に転送し、格納する。当該格納されたCBKの画素データは、制御部14の命令により、後述する参照ブロックBKの画素データとの比較を行う際に、CPU3が、データパス部15に転送する。
次に、フレームメモリ6の参照フレームメモリ9に格納された、時刻(T−1)における参照画像IT-1(参照フレーム)内の、上記カレントブロックCBKの座標(x0,y0)の周囲に、所定の広さ(Sx画素×Syライン)の探索領域SAを設定する。
上記探索領域SAの設定は、参照フレームメモリ9に格納された画素データの中から、アドレス生成部13が、当該探索領域SAの画素データの(先頭アドレス、データ長)の組を、Syライン分指定する事によって行われる。当該指定された画素データの先頭アドレス、データ長を基に、CPU3は、参照フレームメモリ9から、探索領域SAの画素データを読み出し、参照領域メモリ12に転送し、格納する。
次に、上記設定された探索領域SAにおいて、X、Yの各方向に1画素単位の動き量(dx,dy)を与える事により、縦横16×16の画素から構成され、左上端画素が、座標(x+dx,y+dy)の位置にあるブロックを指定し、これを参照ブロックBKとする。
参照ブロックBKの位置(x、y)の、カレントブロックCBKの位置(x0、y0)からのシフト量として表される動き量(dx,dy)=(x、y)−(x0、y0)は、例えば、(dx,dy)=(0、0)を初期値としても良いし、また現在のカレントブロックCBKの、1つ前のカレントブロックCBK´の動きベクトルMV´=(dx´,dy´)を初期値としても良い。
上記参照ブロックBKの画素データは、制御部14の命令により、カレントブロックCBKの画素データとの比較を行う際に、CPU3が、当該指定された参照ブロックBKの画素データを、参照領域メモリ12から読み出し、データパス部15に転送する。参照領域メモリ12に格納された、探索領域SAの画素データの中から、参照ブロックBKの画素データを読み出す為に、アドレス生成部13は、当該参照ブロックBKの位置座標(x、y)、及び領域1ライン分のデータ長を基に、当該参照ブロックBKの画素データの(先頭アドレス、データ長)の組を、16ライン分算出する。当該算出された画素データの先頭アドレス、データ長を基に、CPU3が、参照領域メモリ12から、参照ブロックBKの画素データを読み出し、データパス部15に転送する。
制御部14の命令により、動き量(dx,dy)が1画素ずつシフトされる毎に、上記参照ブロックBKは、探索領域SA内を移動し、その度に、上記参照ブロックBKの画素データが、CPU3により、データパス部15に転送される。データパス部15は、当該転送された参照ブロックBKの画素データを基に、カレントブロックCBKと、参照ブロックBKの画像パターンの類似度の比較を行う。
画像パターンの類似度の比較は、まず、データパス部15の差分評価値演算部21が、双方の画像パターンから差分評価値、及び差分特徴量を算出し、次に、データパス部15の差分特徴量比較部が、当該算出された複数の差分特徴量を比較する事によって、差分特徴量比較結果を生成する。
上記の差分評価値として、下記の数式(11)に示す、差分絶対値和(SAD:Sum of Absolute Difference)や、数式(12)に示す、差分2乗和(SSD:Sum of Square Difference)が用いられる。
Figure 2005253015
Figure 2005253015
なお、以下では、特に断らない限り、差分評価値として、差分絶対値和SADを用いる。差分評価値として、差分2乗和SSDを用いる場合は、「SAD」を、「SSD」に読み替えると共に、差分の絶対値をとる演算を、差分を2乗する演算に置き換える。
上記の差分評価値(SAD(BK))、及び差分特徴量比較結果(CHD(BK)kl)は、終了判定部23に出力され、終了判定部23は、当該入力された、差分評価値、及び差分特徴量比較結果を用いて、動きベクトルMVの探索を終了するか否かの判定を行う。上記の差分評価値、及び差分特徴量が、所定の条件(後述)を満たす場合、終了判定部23が、制御部14に対して、終了信号を出力する事により、制御部14は、動きベクトルMVの探索を終了する。
動きベクトルMVの探索を終了する場合には、終了判定部23が、差分評価値の最小値(MINSAD)を与える参照ブロックBKを、当該カレントブロックCBKに対する最適参照ブロックMBKとし、当該最適参照ブロックMBKの位置(x、y)を、MINSAD位置情報として、制御部14に通知する。
MINSAD位置情報(x、y)の通知を受けた制御部14は、当該MINSAD位置情報(x、y)から、当該カレントブロックCBKの位置(x0、y0)を引き算する事により、対応する動き量(dx,dy)を、下記の数式(13)を用いて算出し、当該算出された動き量(dx,dy)を、当該カレントブロックCBKに対する動きベクトルMVとして、図示しない、後続の処理部に対して出力する。
Figure 2005253015
上記の処理を、現フレーム内の全てのカレントブロックCBKに対して繰り返す事により、当該現フレームの、各マクロブロックに対応した動きベクトルMV=(dx、dy)が全て求められる。
なお、上記の動き量(dx,dy)は、1画素単位にシフトされる為、この場合に求められた動きベクトルMVを、整数画素精度の動きベクトルと言う。動きベクトル検出装置1は、整数画素精度の動きベクトルMVの探索を行った後、続いて、半画素精度の動きベクトルMV2の探索を行う。整数画素精度の動きベクトルMVの探索結果を用いた、半画素精度の動きベクトルMV2の探索については、後述する。
(局所探索と探索経路SR)
整数画素精度の動きベクトル探索においては、動きベクトルMV=(dx、dy)をシフトする事により、参照ブロックBKが、参照フレーム内を動き回る範囲(探索範囲)の大きさが、全体の演算量に大きな影響を及ぼす。
参照ブロックBKが、1画面内を隈なく動き回り、上記の差分評価値SADが最小となる位置を探索する方法は、全探索(フルサーチ)と呼ばれ、莫大な演算量を必要とする為、処理能力に余裕がある、据え置き型の機器で用いられる。一方、必要な演算量を大幅に削減する為に探索範囲を予め限定し、当該限定された範囲内においてのみ、上記差分評価値SADが最小となる参照ブロックBKの位置を探索する方式を、局所探索という。局所探索は、携帯電話等の、データ処理容量が小さいモバイル型の機器などにおいて用いられる。
(探索パターンSP)
図11は、局所探索において、差分評価値SADの比較を行う探索パターンSPを示す図である。同図に示す探索パターンSPは、差分評価値SADの最小値を与える位置を見つける為、ある点(図中のP0)を左上端とする参照ブロックBKに関する差分評価値SADを比較する、周囲の参照ブロックBKの左上端の点(ブロックサーチパターンでは、図中のP1乃至P8、またダイヤモンドサーチパターンでは、図中のP1乃至P4)の配置パターンを示すものであり、パターンの中央に位置する点(ブロックサーチパターン、及びダイヤモンドサーチパターンにおける、パターン中央の点P0)を、探索中心と言う。
上記の探索パターンSPを、下記の数式(14)、及び数式(15)の様に、記号的に表示する。
Figure 2005253015
Figure 2005253015
上記の各探索パターンにおいて、パターンに含まれる点の個数をnpとする。ブロックサーチパターンの場合では、np=9、ダイヤモンドサーチパターンの場合では、np=5である。
なお、以下では、特に断らない限り、探索パターンSPとしては、ダイヤモンドサーチパターンを用いるものとする。この場合、探索パターンに含まれる点の数は、np=5である。
差分評価値SADの最小値を与える点を見つける為、点P0を探索中心とし、点P0に関する差分評価値SAD(P0)を、周囲の4点(ダイヤモンドサーチパターン)の差分評価値SAD(Pi)と比較する(i=1、2、3、4)。
以下では、参照ブロックBKの左上端の点をPとした場合、参照ブロックBKに対する差分評価値SAD(BK)を、SAD(P)とも表記し、上記2つの表現を適宜使い分ける。
(探索経路SR)
図12は、探索パターンSPとして、ダイヤモンドサーチパターン(Diamond Search Pattern;np=5)を用いた場合の、局所探索における探索経路SRを示す図である。同図に示す探索経路SRを、下記の数式(16)の様に、記号的に表示する。
Figure 2005253015
上記の探索経路SRは、各探索位置Pi(i=a、b、c、d)を探索中心P0とする、探索パターンSP内の5点における差分評価値SAD(Pn)(n=0、1、・・・、4)の値を比較した結果に応じて、動きベクトルMV=(dx、dy)をシフトする事により、図中の点Paで示す探索初期位置から、最終の探索中心である点Pdまで、探索中心P0が移動した事を示す。
まず、図中の点Paにおける差分評価値SAD(P0)を算出する。次に、点Paを探索中心P0とする、探索パターンSPに含まれる周囲の点P1乃至P4における差分評価値、SAD(P1)乃至SAD(P4)を算出し、それらの値を、SAD(P0)と比較する。点Paにおける差分評価値SAD(P0)が、探索パターンSPに含まれる、各点の差分評価値SAD(Pi)(i=0、1、・・・、4)の中で最小であれば、点Paを、差分評価値SADの最小値を与える点とし、動きベクトルMVの探索を終了する。
一方、そうでなければ、SAD(P1)乃至SAD(P4)の中で、最小値を与える点に、探索中心P0を移動する。例えば、図12の点Pbにおける差分評価値SAD(P3)が最小であれば、探索中心を点Pbに移動する。この様にして、差分評価値SADの比較を繰り返しながら、探索中心P0をPa→Pb→Pc→Pd と移動し、最後に点Pdにおいて、差分評価値SAD(P0)が、探索パターンSPの各点の差分評価値SAD(P0)乃至SAD(P4)の中で最小となった場合には、点Pd点を、差分評価値SADの最小値を与える点とし、探索を終了する。
このように、探索中心P0における差分評価値SAD(P0)を、探索パターンSP内の周囲の点P1乃至P4の差分評価値SAD(P1)乃至SAD(P4)と比較し、SAD(P0)が最小となるまで、上記の探索処理を繰り返す。上記の探索処理が終了した場合、その時点における探索中心P0の位置が、差分評価値SADの最小値を与える点であり、点P0を左上端とする参照ブロックBKが、最適参照ブロックMBKとなる。上記探索の結果から、カレントブロックCBKに対する、最適参照ブロックMBKのシフト量(dx、dy)として、整数画素精度の動きベクトルMVが求められる。
(整数画素精度の動きベクトルの探索処理)
図13は、整数画素精度の動きベクトル探索の、処理手順を示すフローチャートである。
制御部14は、CPU3から動作開始の命令を受けると、まず、符号化の対象である符号化画像内のカレントブロックをフレームメモリ6の、現フレームメモリ8から読み出して、カレントブロックメモリ11に格納すると共に、既に符号化された参照画像内の所定の範囲を、フレームメモリ6の、参照フレームメモリ9から読み出して、参照領域メモリ12に格納する(ステップS300)。
次に、制御部14は、探索パターンSPとして、図11に示すような、ブロックサーチパターン、又はダイヤモンドサーチパターンのいずれかを選択すると共に、探索打切り回数を設定する(ステップS301)。
次に、探索回数Nsに0をセット(ステップS302)した後、参照ブロックの所定の探索範囲SA内で、探索位置を決定し、それを探索中心P0とすると共に、アドレス生成部13は、参照領域メモリ12内において、P0を左上端とする参照ブロックの画素データのアドレスを生成する(ステップS303)。
差分評価値演算部21は、探索初期位置、及びサーチパターンが設定された後、探索中心P0を中心として、図11に示すような、探索パターンSP内の各位置P0〜P4における差分評価値SAD(BKn)(n=0、1、・・・、4)を計算し、差分特徴量比較部22に出力する(ステップS304)。
同様に、差分評価値演算部21は、前述の差分特徴量比較結果算出処理(図6参照)において、各ブロック当り256個の差分特徴量CHD(BKn)klを算出し、差分特徴量比較部22に出力する(ステップS305)。
上記の差分評価値SAD(BKn)、及び差分特徴量CHD(BKn)kl(n=0、1、・・・、4;k=0、1、2、・・・、31;l=0、1、2、・・・、7)を受け取った差分特徴量比較部22は、後述の第1終了判定処理(図14参照)において、探索処理を終了するか否かの判定を行う(ステップS306)。
前記の第1終了判定処理においては、探索中心P0が最小SAD位置となった場合、又は、探索回数が、予め設定した探索打ち切り回数に達した場合に、探索を終了する。探索パターンSP内の各点P0〜P4の中で、SADが最小となる位置MINを検出する。最小SADを与える位置MINが、探索中心P0である場合(MIN=0)には、その位置P0が、最適参照ブロックMBKであるとして、終了フラグを立てる。
また、探索中心P0が、最小SADを与える位置とならなくても、探索回数が、予め設定した探索打ち切り回数Nsに達した場合には、同様に終了フラグを立てる。
第1終了判定処理からリターンした際に、終了フラグが立っている場合(ステップS307:Yes)、探索処理を終了する、一方、そうでなければ(ステップS307:No)、次のステップS308の、第2終了判定処理(図15参照)に進む。
ステップS308の第2終了判定処理については後述するが、第2終了判定部81の第2判定部97は、SAD0レジスタ96、SADレジスタ90、差分特徴量比較結果レジスタ95から、それぞれSAD(P0)、SAD(Pn)(n=1、2、3、4)、差分特徴量比較結果RES(BK0、BKn)(n=1、2、3、4)、及び、予め設定したしきい値Th1、Th2を用いて、下記の不等式
Figure 2005253015
Figure 2005253015
が成立するか否かの判定を、各n(n=1、2、3、4)について行い、上記不等式(17)、及び不等式(18)が、あるnに対して、共に真となった場合、探索中心P0と、周辺Pn(n=1、2、3、4)との間の半画素位置での内挿予測の効果が大きいとして、終了フラグを立てる。
第2終了判定処理からリターンした際に、終了フラグが立っている場合(ステップS309:Yes)、探索処理を終了する一方、そうでない場合(ステップS309:No)には、次のステップS310に進む。
次のステップS310において、アドレス生成部13は、周辺の最小SAD位置である探索パターン内の点P1乃至P4の内のいずれかの点に探索中心P0を移動(ステップS310)し、制御部14は、探索回数Nsに1を加算(ステップS311)し、再びステップS304に戻り、新しい位置におけるサーチパターン内の各点P0〜P4について、差分評価値SAD(BKn)、及び差分特徴量CHD(BKn)kl(n=0、1、2、・・・、4)を算出する演算を繰り返す。
探索が終了した際には、差分評価値演算部21は、制御部14に対し、終了通知、及び動きベクトルMVを出力し、整数画素精度の動きベクトル探索処理を終了する。
(整数画素精度の動きベクトル探索終了後の処理)
終了判定部23から、上記の終了通知を受け取った制御部14は、局所探索によって得られた動きベクトルMVを、後続の処理部(不図示)に転送すると共に、探索経路SR内でSADの最小値を与える参照ブロックの位置に関する情報を、「MINSAD位置情報」として制御部14に通知した後、現フレームの、次の位置のカレントブロックに対する動きベクトル検出を行う為、最適参照ブロックMBKの探索処理を繰り返す。
(第1終了判定処理)
図14は、終了判定部23が行う、整数画素精度の動きベクトル探索の、第1終了判定処理の手順を示すフローチャートである。
終了判定部23は、探索中心P0が、最小SAD位置か否かを判定する(ステップS400)。前記判断結果が肯定的な場合(ステップS400:Yes)、差分評価値演算部21は、探索中心P0の位置から、動きベクトルMVを算出(ステップS401)し、終了フラグを立てた後(ステップS402)、呼び出し元にリターンする。
一方、ステップS400において、判断結果が否定的な場合(ステップS400:No)、終了判定部23は、探索回数Nsが、探索打切り回数に達したか否かを判断し(ステップS403)、前記判断結果が肯定的な場合(ステップS403:Yes)、同様にステップS402に進み、終了フラグを立ててリターンする。一方、前記判断結果が否定的な場合には(ステップS403:No)、終了フラグを立てずに、そのままリターンする。
(第2終了判定処理)
図15は、終了判定部23が行う、整数画素精度の動きベクトル探索の、第2終了判定処理の手順を示すフローチャートである。
終了判定部23は、まず、しきい値Th1、Th2を設定(ステップS500)し、次に、nに1を代入する(ステップS501)。その後、nの各値に対して、数式(17)に示した様に、SAD(Pn)−SAD(P0)<Th1が成立するか否か(ステップS502)を判定する。
前記判定結果が肯定的な場合(ステップS502:Yes)、次に、数式(18)に示した様に、RES(BK0、BKn)>Th2が成立するか否かについて判断する(ステップS503)。前記判定の結果が肯定的な場合(ステップS503:Yes)、次のステップS504に進み、探索中心P0の位置から、動きベクトルMVを算出(ステップS504)した後、終了フラグを立てて(ステップS505)、リターンする。
一方、ステップS502における判断結果が否定的な場合(ステップS502:No)、又はステップS503における判断結果が否定的な場合(ステップS503:No)、終了判定部23は、nに1を加算(ステップS506)し、nの値が5(=np)以上であるか否かを判断(ステップS507)し、前記判断結果が否定的な場合(ステップS507:No)、ステップS502に戻り、次のnの値に対して、ステップS502以下の処理を繰り返す一方、nの値が5(=np)以上の場合(ステップS507:Yes)には、そのままリターンする。
(半画素精度の動きベクトルの探索処理)
図16は、半画素精度の動きベクトル探索の、処理手順を示すフローチャートである。
整数画素精度の探索終了後は、図28に示すような半画素位置の8点(P1〜P8)で、半画素精度のSAD演算を行い、整数画素精度の動きベクトルMVの探索で得られた、SADの最小値との比較を行う事により、半画素精度の動きベクトルMV2の探索を行う。
図13において示した、整数画素精度の動きベクトル探索のフローチャートの第2終了判定処理S308において、差分特徴量比較結果RES(BK0、BKn)(n=1、2、3、4)の各値は、既に算出されている為、これらの値RES(BK0、BKn)(n=1、2、3、4)の中から、最大値を与えるnの値を求め、それをrとする(ステップS600)。
ここで、差分特徴量比較結果RES(BK0、BKn)(n=1、2、3、4)は、2つの参照ブロックBK0、及びBKnについて、カレントブロックCBKとの画素データの差分を取ったものである、2つの「差分ブロック」(CBK−BK0)、及び(CBK−BKn)の各画素データを比較し、その符号が反転している画素の個数を表す。
上記の差分特徴量比較結果RES(BK0、BKn)(n=1、2、3、4)のうち、その最大値を与えるrに対する差分特徴量比較結果RES(BK0、BKr)は、4個のRES(BK0、BKn)(n=1、2、3、4)の中で、差分符号が反転している画素の個数が最も多いものであり、差分符号が反転している画素の個数が多いという事は、2つの参照ブロックBK0とBKrとの中間において、半画素精度の参照ブロックHBKrを、補間により生成した場合、当該HBKrに対する差分が、ほぼ0となる事、即ち、カレントブロックCBKの画素データに、ほぼ等しい画素データを持つ最適参照ブロックMHBKとなる可能性が最も高いという事を示している。
図17は、差分符号が同符号の場合と、異符号(符号が反転している)の場合とを比較した図である。同図に示す様に、カレントブロックCBK、及び2つの参照ブロックBK0、BK1について、(k、l)で指定される位置の画素データcklと、skl(P0)、skl(Pn)(n=1、2、3、4)との差分(ckl−skl(P0))、(ckl−skl(Pn))を取った場合に、この2つの差分値が同符号の場合には、2点P0、及びPnの中点((P0+Pn)/2)の半画素位置における値は、0にはならない((a)の場合)が、差分値が異符号の場合には、2点P0、及びPnの中点((P0+Pn)/2)の半画素位置における値が、ほぼ0になる((b)の場合)。
何故なら、下記の数式(20)の様に、異なる2点P0、及びPn(n=1、2、3、4)に対して、それぞれ値F(P0)=(ckl−skl(P0))、及びF(Pn)=(ckl−skl(Pn))を対応させ、その間の任意の点X(P0≦X≦Pn、又はPn≦X≦P0)に対して、下記の様な関数値F(X)を対応させる、任意の連続関数
Figure 2005253015
を考えると、上記の異なる2点P0、及びPnにおける関数値F(P0)、及びF(Pn)が異符号であれば、2点P0、及びPnの間に、F(Pz)=0となる点Pzが、必ず存在するからである(中間値の定理)。
なお、上記の関数F(X)は、2点P0、及びPnにおける関数値が、F(P0)、及びF(Pn)であるものであれば何でも良いが、図17では特に、F(X)を一次関数とし、2点P0、及びPnの間を、直線で線形補間した場合を示している。
上記は、各ブロックにおいて、2つの変数(k、l)で指定される特定の1画素に注目した場合について述べたものであり、16×16個の画素から構成されるブロック全体では、上記の差分符号が異符号である画素の数をカウントする事により、2つの参照ブロックBK0、及びBKnの間に、半画素精度の最適参照ブロックMHBKが存在する可能性について評価する事ができる。
即ち、2点P0、及びPn(n=1、2、3、4)をそれぞれ左上端の点とする2つの差分ブロックBK0、及びBKnに関し、上記の差分(ckl−skl(P0))、及び(ckl−skl(Pn))の符号(+、又は−)のみを、差分特徴量CHD(BK0)kl、CHD(BKn)klとして取り出した後、前記2つの差分特徴量に含まれる256個の符号を、各々1つずつ取り出して比較する。これらの符号の比較を、256組全てについて行い、2つのブロック間で、符号の正負が変化しているものの個数をカウントする。
前記カウントの結果を、差分特徴量比較結果RES(BK0、BKn)とし、この様にして得られた4個の差分特徴量比較結果RES(BK0、BKn)(n=1、2、3、4)の中で、値が最大のものを、RES(BK0、BKr)(1≦r≦4)とすれば、2つのブロックBK0、及びBKrの間の半画素位置にある半画素ブロックHBK(0、r)が、求める半画素精度の最適参照ブロックMHBKであり、この半画素精度の最適参照ブロックMHBKに対応するシフト量が、半画素精度の動きベクトルMV2である。
従って、本実施の形態の動きベクトル検出装置1は、半画素精度の動きベクトル検出を行う際に、背景技術の項で述べたような、処理負荷が重く、かつ画素データの冗長性の高い、半画素精度の参照ブロックを生成する事なく、半画素精度の動きベクトルMV2を推定する事ができる。
上記のステップS600における比較を行った結果、n=r(1≦r≦4)において、RES(BK0、BKn)が最大となったとすると、P0とPrとの間の半画素位置が、半画素精度の動きベクトルMV2に対応する位置である可能性が高いと推定される。
次のステップS601において、P0とPrとの間の半画素位置Ps0、もしくは、隣接する斜め方向の半画素位置Ps1、Ps2をも含めた3点について、内挿演算部24が、参照領域メモリ12の画素データを半画素化する事により、半画素精度のブロックHBK0乃至HBK2を生成する。
次に、差分評価値演算部21が、上記3つの半画素精度の半画素精度のブロックHBK0乃至HBK2について、差分評価値SAD(HBK0)乃至SAD(HBK2)を算出し(ステップS602)、整数画素精度の最小SAD値と比較する(ステップS603)。
上記の半画素位置Ps0、Ps1、Ps2の3点に対応するSADの値、SAD(HBK0)、SAD(HBK1)、SAD(HBK2)の内、整数画素精度の最小SAD値(MINSAD)よりも小さいものがある場合(ステップS603:Yes)には、その中でSADが最小となる半画素ブロックHBKminを検出(ステップS604)し、当該検出された半画素ブロックHBKminに対応した動き量が、半画素精度の動きベクトルMV2となる(ステップS605)。
一方、上記の3点の中に、整数画素精度の最小SAD値(MINSAD)よりも小さいものがない場合(ステップS603:No)には、整数画素精度の最小SAD値(MINSAD)に対応した動きベクトルMVが、そのまま半画素精度の動きベクトルMV2となる(ステップS606)。
なお、上記の半画素精度の差分評価値SADを算出する3点、Ps0、Ps1、Ps2は、必ずしも3点全てが必要ではなく、Ps0の1点のみについて、半画素精度の差分評価値SAD(HBK0)を算出し、整数画素精度の最小SAD値(MINSAD)と比較しても良い。
この様に、整数画素精度の動きベクトル探索において算出した差分評価値SAD(BK)、及び差分特徴量CHD(BK)klのみを用いる事により、半画素精度の参照ブロックを生成する事なく、半画素精度の動きベクトルMV2に対応する位置である可能性が高い点を推定できる事が、本実施の形態の動きベクトル検出装置の特長である。
なお、当該推定された半画素精度の動きベクトルMV2に対応する位置が、実際に差分評価値SADの最小値である事を確認する為に、当該位置(Ps0)、及びその周囲の2点(Ps1、及びPs2)において、実際に画素データの補間を行って、半画素精度の参照ブロックHBKを3個生成し、それらに対するSADの値を計算する事により、前記3点のうちのいずれかが、実際にSADの最小値を与える事を確認している。
図18は、上記の半画素精度の動きベクトルの探索処理を、例を挙げて説明した図である。同図の(a)は、1つの探索パターンSA(ダイヤモンドサーチパターン、np=5)内において、差分特徴量比較結果の表を示す図であり、また、(b)は、上記の探索パターンSAにおける、各点P0〜P4の配置を示す図である。なお、同図(b)においては、半画素位置の点P5〜P7も表示している。
図18の(a)に示す差分特徴量比較結果の表において、「比較する参照ブロックの位置」の行の点の組(P0、Pi)(i=1、2、3、4)は、差分特徴量CHD(BK)kl=sgn(ckl−skl)を比較する2つの参照ブロックBK0、及びBKi(i=1、2、3、4)の左上端の点が、P0、及びPiである事を示している。
「符号変化数」の行は、上記の2点(P0、Pi)の各組について、差分特徴量比較結果RES(BK0、BKi)が対応する事を示し、その値を、次の「上記の値(例)」の行に、例として示している。
図16において示した、半画素精度の動きベクトルの探索処理におけるステップS600において、同表における「上記の値(例)」の行に示す各値を比較する事により、RES(BK0、BKn)(n=1、2、3、4)の中から、最大値を与えるnの値が、n=2である事が分かり、従って、r=2となる。上記の比較により、次のステップS601では、r=2において、RES(BK0、BKr)が最大となる為、図18(b)に示すP0とP2との間の半画素位置P5、もしくは、両隣の斜め方向(P0から見て)の半画素位置P6、及びP7をも含めた3点について、内挿演算部24が、参照領域メモリ12の画素データを半画素化し、半画素精度の参照ブロックHBK(P5)、HBK(P6)、及びHBK(P7)を生成する。
その後、ステップS602において、差分評価値演算部21が、上記のHBK(P5)〜HBK(P7)に対し、半画素精度の差分評価値SAD(P5)〜SAD(P7)を算出するSAD演算を行った後、次のステップS603において、整数画素精度の最小SADの値(MINSAD)と比較する。
次のステップS604において、上記の半画素位置P5、P6、P7の3点に対応するSADの値、SAD(P5)〜SAD(P7)の内、整数画素精度の最小SAD値(MINSAD)よりも小さいものがある場合には、ステップS604において、その点に対応する半画素精度のブロックを、SADの最小値を与える半画素ブロックHBKminとし、ステップS605において、当該検出された半画素ブロックHBKminに対応する動きベクトルを、半画素精度の動きベクトルMV2とする。
一方、上記の3点、P5〜P7の中に、整数画素精度の最小SAD値(MINSAD)よりも小さいものがない場合には、ステップS606において、整数画素精度の最小SAD値(MINSAD)に対応した動きベクトルMVを、そのまま半画素精度の動きベクトルMV2とする。
(まとめ)
このように、差分特徴量比較結果RES(BK0、BKn)(n=1、2、3、4)を用いることで、処理負荷が重く、かつ画素データの冗長性が高い、半画素精度の参照ブロックHBKを生成する処理を行う事なく、半画素精度の最適参照ブロックMHBKの位置を推定する事が出来る。
勿論、当該推定された半画素精度の最適参照ブロックMHBKが、本当に差分評価値SADの最小値を与えるか否かを確認する為には、整数画素精度の動きベクトル探索処理で得られた参照ブロックBKの周辺において、実際に、半画素精度の参照ブロックHBKを1〜3個、画素データの補間により生成し、半画素精度の差分評価値SAD(HBK)を算出して、整数画素精度での最小SAD値、SAD(BK)と比較しなければばらないが、それでも、従来の様に、最初から8個の半画素ブロックHBKを生成し、半画素精度の差分評価値SAD(HBK)をそれぞれ算出して、整数画素精度の差分評価値SAD(BK)と比較する方式に比べれば、大幅に演算量を削減する事ができる。
(実施の形態2)
実施の形態1では、半画素精度の最適参照ブロックMHBKの位置の推定に際し、画素データの差分の「符号」しか考慮していなかったが、本実施の形態では、ブロック間の画素データの差分の「符号」に加え、差分の「大きさ」を考慮する。これにより、半画素精度の最適参照ブロックMHBKの位置の推定精度が、実施の形態1よりも向上する。
<構成>
本実施の形態では、PE141乃至148を含んで構成される差分評価値演算部130、及び差分特徴量比較部131が、実施の形態1と異なるが、上記以外の構成は全く同じである。なお、符号は、実施の形態1で説明したものと共通する部分には、同一の符号を付して、その説明を省略する。
(PEの構成)
図19は、本実施の形態のPE(PE141乃至148)の構成を示す機能ブロック図である。
本実施の形態では、ブロック間の画素データの差分の「符号」に加え、差分の「大きさ」を考慮する為、本実施の形態のPE(PE141乃至148)は、図3に示す構成に加えて、更に量子化器110、及びビット結合器111を備える。
上記の量子化器110、ビット結合器111は、差分絶対値|ckl−skl|が算出された後、これを量子化器110が、下記の数式(20)の様に量子化を行い、3ビットの差分量子化値qad(k、l)を生成する。
Figure 2005253015
得られた3ビットの差分量子化値qad(k、l) (k=0、1、2、・・・、31;l=0、1、2、・・・、7)に対し、ビット結合器111が、1ビットの差分符号sgn(ckl−skl)とビット列を結合し、4ビットとしたものを、本実施の形態の差分特徴量CHD(BK)klとする。
即ち、本実施の形態の差分特徴量CHD(BK)klは、下記の数式(21)で表される。なお、以下の数式において、演算“||”は、「ビット列の結合」を表すものとする。
Figure 2005253015
(k=0、1、2、・・・、31;l=0、1、2、・・・、7)
上記の量子化器110、及びビット結合器111により、上記の数式(21)によって定義される差分特徴量CHD(BK)klが生成され、差分特徴量バス135を介し、差分特徴量比較部131に出力される。差分特徴量CHD(BK)kl=sgn(ckl−skl)||(差分量子化値)(k=0、1、2、・・・、31;l=0、1、2、・・・、7)を出力する差分特徴量バス135のバス幅は、32(=4ビット×8)ビットである。
(PEの機能)
本実施の形態のPE141乃至148は、カレントブロックメモリ11のポートc、及び参照領域メモリ12のポートsから順次供給される、カレントブロック、及び参照ブロックの画素データckl、及びskl(k=0、1、2、・・・、31;l=0、1、2、・・・、7)に対し、差分絶対値|ckl−skl|を算出すると共に、画素データckl、及びsklから生成される、1ビットの差分符号sgn(ckl−skl)、及び3ビットの差分量子化値qad(k、l)を、ビット結合を行う事により、4ビットの差分特徴量CHD(BK)kl(k=0、1、2、・・・、31;l=0、1、2、・・・、7)を毎周期(サイクル)1個生成し、差分特徴量バス135を介し、差分特徴量比較部131に出力する。
(差分評価値演算部130の構成)
図20は、本実施の形態の差分評価値演算部130の構成を示す機能ブロック図である。差分評価値演算部130は、実施の形態1の差分評価値演算部21と比べて、8個のPE(PE141乃至148)、及び32ビットの差分特徴量バス135のみが異なるのみであり、他の部分は、実施の形態1と同じである。
(差分評価値演算部130の機能)
差分評価値演算部130は、PE141乃至148の8個のPEにより、32周期(サイクル)毎に1個生成される差分評価値SAD(BK)を、終了判定部23に対して出力する一方、毎周期(サイクル)並列に8個生成される4ビットの差分特徴量CHD(BK)kl(k=0、1、2、・・・、31;l=0、1、2、・・・、7)を、32ビットの差分特徴量バス135を介し、毎周期8個並列に差分特徴量比較部131に対して出力する。
(差分特徴量比較部131の構成)
図21は、本実施の形態の差分特徴量比較部131の構成を示す、機能ブロック図である。差分特徴量比較部131は、上記の32ビット幅の差分特徴量バス135を介して、差分特徴量CHD(BK)klを受け取り、対応する差分画素データ(ckl−skl)の符号である、1ビットの差分符号sgn(ckl−skl)、及び3ビットの差分量子化値qad(k、l)を、各差分ブロックに対応するバンクに、それぞれ格納する(k=0、1、2、・・・、31;l=0、1、2、・・・、7)。この為、バンク0乃至バンク4の容量は、32ビット×32×5=1024×5ビットと、実施の形態1の各バンクの容量と比べ、4倍になっている。
(差分特徴量比較部131の機能)
本実施の形態の差分特徴量比較部131は、バンク0乃至バンク4の各バンクが、32ビット×32=1024ビットの容量があり、各バンクは、対応する差分ブロックの、対応する差分画素データ(ckl−skl)の符号である、1ビットの差分特徴量=sgn(ckl−skl)、及び3ビットの差分量子化値qad(k、l)を、それぞれ格納する(k=0、1、2、・・・、31;l=0、1、2、・・・、7)と同時に、比較器147にも入力し、各ブロックの画素データから生成された差分特徴量の比較を行う事により、4個の差分特徴量比較結果RES(BK0、BKn)(n=1、2、3、4)を生成し、終了判定部23に対して出力する。
図22は、差分特徴量比較部131が行う、差分特徴量カウント処理の処理手順を示すフローチャートである。
差分特徴量比較部131は、まず、変数k、及びlに0をセットする(ステップS700)。
次に、2つの参照ブロックBKi、及びBK0に関する、256個の差分特徴量、CHD(BKi)klとCHD(BK0)kl(k=0、1、2、・・・、31;l=0、1、2、・・・、7)とを比較し、(k、l)の組を1つ定める事により指定される、それぞれの差分符号(sgn(ckl−skl))の値が、一致していなければ(ステップS701:Yes)、次のステップS702に進み、また一致していれば(ステップS701:No)、ステップS704に進む。
同様に、(k、l)の組を1つ定める事により指定される、それぞれの差分量子化値qad(k、l)の値が一致していれば(ステップS702:Yes)、次のステップS703に進み、RES(BK0、BKi)を、“1”インクリメントした後、ステップS704に進み、また一致していなければ(ステップS702:No)、ステップS704に進む。
次のステップS704において、差分特徴量比較部131は、変数lを“1”インクリメントする(ステップS704)し、lが8以上でなければ(ステップS705:No)、ステップS701に戻り、次のlに関する比較処理を繰り返す一方、lが8以上であれば(ステップS705:Yes)、ステップS706に進み、変数lに0をセットすると共に、変数kを“1”インクリメントする。
次のステップS707において、kが32以上でなければ(ステップS707:No)、ステップS701に戻り、次のkに関する比較処理を繰り返す一方、kが32以上であれば(ステップS707:Yes)、差分特徴量カウント処理を終了し、呼び出し元にリターンする。
<全体の動作>
本実施の形態の動きベクトル検出装置の動作が、実施の形態1の動きベクトル検出装置1の動作と異なる点は、参照ブロックBKから生成される差分特徴量として、画素データの差分符号sgn(ckl−skl)だけでなく、差分の大きさ(|ckl−skl|)をも考慮し、更にこれを所定の数値Qで除算する量子化を行った上で、差分データを比較する事により、半画素精度の参照ブロックHBKの位置の推定を行う点である。
より具体的には、1ビットの差分符号sgn(ckl−skl)と、3ビットの差分量子化値qad(k、l)=|ckl−skl|/Q(Qは、量子化の定数)からなる4ビットの差分特徴量CHD(BK)kl(k=0、1、2、・・・、31;l=0、1、2、・・・、7)を生成し、4×8=32ビットの差分特徴量CHD(BK)klを、比較器147に対して並列に入力し、比較する。
ここで、画素データのビット数(符号ビットを除いた部分)がMビット(M≧3)であるとすると、画素データの差分絶対値|ckl−skl|も、Mビットである。これを量子化の定数Qで除算したものが、3ビットとなる為には、量子化の定数Qは、被除数を(M−3)ビット右シフトさせる数、即ち、Q=2M-3となる。例えば、画素データの符号を除いた部分が、7ビットで表される場合、これを量子化の定数Qで除算したものが3ビットとなる為には、量子化の定数Qは、Q=27-3=16とする。
比較器147には、8個の並列に接続されたPEから、4×8=32ビットの差分特徴量CHD(BK)klが、32ビットの差分特徴量バス135を介して、毎周期(サイクル)入力される。当該比較器147では、上記入力された差分特徴量CHD(BK)klに対し、ビット毎の比較を行い、差分符号(sgn(ckl−skl))が不一致で、かつ差分量子化値(qad(k、l)=|ckl−skl|/Q)が一致する場合を“1”としてカウントし、それ以外を“0”として、カウンタ148に対して値を出力し、当該出力された比較結果を、カウンタ148がカウントする。
上記の様にして、1ブロック分の画素全体について、カウンタ148がカウントした値を、差分特徴量比較結果RES(BK0、BKn)(n=1、2、3、4)として、終了判定部23に対して出力する。
終了判定部23では、上記の4個の差分特徴量比較結果RES(BK0、BKn)(n=1、2、3、4)の値をそれぞれ比較し、この値が最大となるものに対応した参照ブロックBKr(1≦r≦4)と、BK0との中間の半画素位置を、半画素精度の最適参照ブロックMHBKが存在する可能性が、最も高い位置と推定する。上記以外の動作は、実施の形態1の動きベクトル検出装置1の動作と同様である。
これにより、半画素精度の最適参照ブロックMHBKの位置に対する推定精度が、実施の形態1よりも向上するが、ここで、差分の大きさ(|ckl−skl|)を考慮する際に、量子化を行う理由、及び差分の大きさ(|ckl−skl|)を考慮する事により、半画素精度の動きベクトルMV2の推定精度が向上する理由について、以下に説明する。
(差分の大きさを量子化する理由)
本実施例では、下記に述べる様に、画素データの差分符号sgn(ckl−skl)だけでなく、差分の大きさ(|ckl−skl|)をも考慮するが、2つの整数画素P0、及びPi(i=1、2、3、4)の間で、画素データの差分の絶対値|ckl−skl(P0)|、及び|ckl−skl(Pi)|の比較を行う場合、比較器147において、各ビット毎にビット値(“0”、又は“1”)の比較を行う。
ここで、画素データのビット数(符号ビットを除いた部分)がMビット(M≧3)であるとすると、比較器147において比較される2つの値|ckl−skl(P0)|と|ckl−skl(Pi)|も、Mビットであり、この為、比較器147が、|ckl−skl(P0)|と|ckl−skl(Pi)|とを比較して、「一致している」と判定するのは、上記2つのMビットの値が、全て一致する場合のみである。一方、上記Mビットの値のうち、1ビットでも異なるビットがあれば、「一致していない」と判定する。
この様に、比較器147における比較は、Mビットの完全一致であり、2Mの分解能(精度)があるが、本実施例の様に、画素データの差分絶対値の比が1:1であるか否かを比較する場合には、その様な高い分解能は必要ではなく、10進数にして1桁〜2桁の分解能、つまり、3ビット〜5ビットの比較を行えば十分である。逆に、ビット数が高いままで比較を行うと、分解能が高すぎる為、殆どの場合に比が1:1と判定されずに、カウント値が大幅に減少してしまう。
このように、予め量子化を行って、差分の絶対値の比が1:1かどうかを判定する場合、画素データの差分の大きさ(|ckl−skl|)を、量子化の定数Qで除算した値である、差分量子化値(qad(k、l)=|ckl−skl|/Q)のビット幅が増えるに従って、推定精度が上がるが、その一方で、大きさの比が1:1であると判定されにくくなり、カウント値が相対的に減少する事により、逆に推定精度の低下を招く。つまり、差分量子化値(qad(k、l))のビット幅(大きさの精度)と、カウント値とは、互いに相補的(Complemental)な関係にあり、上記2つのうち、片方のみを大きくしても意味が無い。
この為、差分の大きさを比較する際に、所定の値Q(量子化の定数)で除算する「量子化」を行い、分解能を予め下げた上で、画素データの差分の絶対値(|ckl−skl|)の比較を行う。本実施の形態では、上記の差分量子化値(qad(k、l))のビット幅を3ビットとし、差分符号(1ビット)と、差分量子化値(3ビット)とからなる、4ビットの差分特徴量CHD(BK)kl(k=0、1、2、・・・、31;l=0、1、2、・・・、7)を用いる事にし、差分の大きさの比較の精度を3ビットに落とす事により、カウンタ148によるカウント値を増大させ、大きさの比較精度と、カウント値とのバランスを保っている。
(差分の大きさを考慮する事により、半画素精度の動きベクトルの推定精度が向上する理由)
図23は、 整数画素間(P0、及びPi(i=1、2、3、4))で、画素データの差分((ckl−skl(P0))、及び(ckl−skl(Pi)))の符号が反転する場合に、2点P0、及びPiの間を、当該画素データの差分絶対値に応じて、内分する点を示す図であり、(a)では、m:n=1:1に内分し、(b)では、m:n=2:1に内分し、(c)では、m:n=1:2に内分する。なお、skl(P0)、skl(Pi)の表記は、それぞれ点P0、及びPiを左上端の点とする参照ブロックBK(P0)、及びBK(Pi)の、添字k、lで指定される画素位置の画素データ(輝度)を表し、また、m、nは、下記の式(22)に示す様に、2点P0、及びPiにおける画素データの差分の絶対値を表す。また、2点を内分する比の例として、本図では3つの場合(1:1、2:1、1:2)しか示していないが、実際には、m、nは正の整数であり、種々の値を取りうる一方、本実施例では、m、nの比が、1:1か否かが重要である。
Figure 2005253015
同図に示す様に、2点P0、及びPiの間の点P(P0≦P≦Pi、または、Pi≦P≦P0)における画素データの値を求める為に、「線形補間」を用いて、画素データを線形に補間する場合、2つのブロック間の差分の符号(+/−)が反転しており、かつ、その大きさ(絶対値)の比が、m:n=1:1ならば、2つのブロックの中間の半画素位置((P0+Pi)/2)において、差分が0となる。この場合、画素データの差分の直線補間によるゼロ交差点Pcは、2点P0、及びPiの中点(P0+Pi)/2である。
一方、同図の(b)、及び(c)に示す様に、2つのブロック間の差分の大きさの比m:nが、1:1でなければ、2つのブロック間をn:mに内分する点Pcにおいて、画素データの差分が0となるが、この場合、ゼロ交差点Pcは、m:n=1:1でなければ、2点P1とP2の中点((P1+P2)/2)ではなく、従ってPcは、半画素位置ではない。
つまり、画素データの差分の直線補間を行う場合、ゼロ交差点Pcが、2点P1とP2の中点((P1+P2)/2)の半画素位置となるのは、m:n=1:1の場合のみである。
従って、本実施の形態では、2つの参照ブロックBK(P0)、及びBK(Pi)(i=1、2、3、4)の差分特徴量CHD(BK0)kl、及びCHD(BKi)kl(k=0、1、2、・・・、31;l=0、1、2、・・・、7)を比較する場合、前記2つの差分特徴量の、添字k、lで指定される各要素の上位1ビットの差分符号sgn(ckl−skl)が反転しており、かつ、下位3ビットの差分量子化値qad(k、l) =|ckl−skl|/Qが等しい場合についてのみカウントを行う事により、探索の優先順位を付ける。
上記の比較、及びカウント処理を、添字k、l(k=0、1、2、・・・、31;l=0、1、2、・・・、7)の異なる全ての組合わせについて行い、各ブロックに含まれる256個全ての画素に対する当該比較が行われた結果、得られるカウント値を、差分特徴量比較結果RES(BK0、BKi)(i=1、2、3、4)とする。
更に、添字i(i=1、2、3、4)の各値に対する4個の差分特徴量比較結果RES(BK0、BKi)を互いに比較し、それらの中で値が最大のものが、RES(BK0、BKr)(1≦r≦4)であったとすると、5個の点Pn(n=0、1、2、3、4)を含むダイヤモンドサーチパターン(図11(b)参照)SPにおいて、探索中心P0から、周囲の点Pr(1≦r≦4)に向かう方向において、1ブロック分256個の画素のうち、RES(BK0、BKr)個の画素について、画素データの差分値(ckl−skl)(k=0、1、2、・・・、31;l=0、1、2、・・・、7)の符号が、2点P0、及びPrにおいて反転し、しかも各画素データをそれぞれ直線補間した場合、2点P0とPrとの中点において、画素データの差分を補間した値が、ゼロとなる事が分かる。
これは、探索パターンSPの探索中心P0から、周囲の各点Pi(i=1、2、3、4)を見た場合、半画素精度の動きベクトルMV2の終点は、点Prの方向にある事、即ち、MV2=(P0+Pr)/2である可能性が最も高い事を示しており、従って、本実施の形態の動きベクトル検出装置では、半画素精度の動きベクトルMV2の終点が、(P0+Pr)/2であると推定し、この点(P0+Pr)/2、及び、それに最も隣接する2つの半画素位置(図18(b)参照)を加えた3点に対し、差分評価値SADを算出する事により、実際にSADの最小値(MINSAD)を与える点かどうか検証を行う。
以上に述べた事により、本実施の形態の動きベクトル検出装置では、実施の形態1の動きベクトル検出装置1に比べて、半画素精度の動きベクトルMV2の推定精度が向上する。
(実施の形態3)
実施の形態1、及び実施の形態2では、時間的に過去の参照画像から現在の符号化画像を予測する順方向動き予測のみを取り上げたが、本実施の形態では、順方向動き予測に加え、未来の参照画像から動きベクトルを予測する、逆方向動き予測を加えた双方向動き予測を行う。
図24は、上記の双方向動き予測の概要を説明する為の図である。Bピクチャの符号化方法は、過去と未来の双方向から動き予測を行う、「内挿的(interpolative)フレーム間予測符号化」を行う。「内挿的フレーム間予測符号化」では、順方向予測と、逆方向予測の2つの予測結果に対し、下記の数式(23)の様に、対応する画素間で、平均化を行う。
Figure 2005253015
上式において、BKF、及びBKBは、それぞれ順方向、及び逆方向の最適参照ブロックであり、双方向動き予測の最適参照ブロックは、これらの丸め付き平均によって与えられる。
この様に、時刻t1のカレント画像を符号化するために、過去(時刻t0)と、未来(時刻t2)の画像を用いた「双方向動き予測」を行うと、片方向だけの場合と比べ、過去と未来の参照画像で、2倍のSAD演算を行う必要がある。
本実施の形態の動きベクトル検出装置は、時刻t0における差分特徴量、及び時刻t2における差分特徴量とを比較し、順方向動き予測の結果を用いて、逆方向動き予測を行うことで、逆方向の動き予測に要する差分評価値SADの演算回数を削減する。
<構成>
本実施の形態では、実施の形態1と同様、図1に示す動きベクトル検出装置1を用いて、双方向動き予測を行う。本実施の形態では、実施の形態1、及び実施の形態2の動きベクトル検出装置の、「双方向動き予測」への適用例を示す。
<動作>
(整数画素精度の双方向動き予測)
図25は、整数画素精度の双方向動き予測の処理手順を示すフローチャートである。
まず、整数画素精度の順方向動き予測により、過去の参照画像から全探索や局所探索等の方式で動きベクトルを検出し、その位置の参照ブロックを、順方向の整数画素精度の最適参照ブロックBKFとする(ステップS800)。なお、整数画素精度の順方向動き予測の処理手順は、図13に示した、整数画素精度の動きベクトル探索のフローチャートと同じである。
次に、整数画素精度の逆方向動き予測により、未来の参照画像から、全探索や局所探索等の方式で動きベクトルを検出し、その位置の参照ブロックを、逆方向の整数画素精度の最適参照ブロックBKRとする(ステップS801)。なお、整数画素精度の逆方向動き予測の処理手順は、図13に示した、整数画素精度の動きベクトル探索のフローチャートと同じであるが、逆方向動き予測の場合の第2終了判定処理は、図26のフローチャートの手順(後述する)に従う。
これらの順方向、及び逆方向の整数画素精度の最適参照ブロックBKF、BKRを、上述の式(23)の様に平均化し、双方向動き予測の最適参照ブロックBKB=(BKF+BKR)/2を生成する(ステップS802)。
最後に、これらの整数画素精度の最適参照ブロックBKF、BKR、BKBについてそれぞれ算出した、整数画素精度の差分評価値SADを比較し、前記差分評価値SADの最小値を与える最適参照ブロックに対応した動きベクトルを、整数画素精度において、最も効果的に予測できる予測方向の動きベクトルMVとして選択する(ステップS803)。
なお、ステップS800と、ステップS801とは、逆順でもよい。
MPEGでは、半画素精度の動き補償が採用されているため、上記の整数画素精度の双方向動き予測を行った後、更にその周辺において、内挿予測により、半画素精度の双方向動き予測を行う。
(逆方向動き予測において用いる第2終了判定処理)
図26は、上記の逆方向動き予測において用いる、整数画素精度の動きベクトル探索の、第2終了判定処理の手順を示すフローチャートである。
終了判定部23は、まず、しきい値Th3、Th4をセットする(ステップS900)。
次に、整数画素精度の順方向動き予測において、順方向動きベクトルMVFを検出した際の、順方向最適参照ブロックMBKFにおける順方向最小差分評価値MINSADFを終了判定部23に、また、順方向差分特徴量RES(BKF0、BKFn)(n=1、2、3、4)を差分特徴量比較部22に、それぞれセットする(ステップS901)。
次に、nに1を代入(ステップS902)した後、nの各値に対し、下記の(24)式で示される不等式
Figure 2005253015
が成立するか否かを判定する(ステップS903)。
前記判定の結果が肯定的な場合(ステップS903:Yes)、逆方向差分特徴量RES(BKR0、BKRn)を、前記の順方向差分特徴量RES(BKF0、BKFn)と比較した双方向差分特徴量比較結果RES(BKR0、BKRn)−RES(BKF0、BKFn)に対し、下記の(25)式で示される不等式
Figure 2005253015
が成立するか否かを判断する(ステップS904)。
上記の不等式(24)、及び不等式(25)が、共に真である場合(ステップS903:Yes、かつステップS904:Yes)、終了判定部23は、時間方向の内挿予測である双方向予測の効果が大きいと判断し、逆方向の半画素精度の動きベクトルMV2の探索を終了し、ステップS905に進んで、探索中心P0の位置から、逆方向の動きベクトルMV2Rを算出し、終了フラグを立てて(ステップS906)、リターンする。
一方、ステップS903、またはステップS904における判断結果が否定的な場合(ステップS903:No、又はステップS904:No)、終了判定部23は、nに“1”を加算(ステップS907)し、nの値が4よりも大きいか否かを判断(ステップS908)し、前記判断結果が否定的な場合(ステップS908:No)、ステップS903に戻り、次のnの値に対して、ステップS903、及びステップS904の条件が成立するか否かの判定を行う。一方、nの値が4よりも大きい場合(ステップS908:Yes)は、探索が終了した為、そのまま呼び出し元にリターンする。
このようにして、順方向動き予測の結果を用いて、逆方向動き予測を行うことで、逆方向動き予測に要するSAD演算回数を削減できる。なお、上記不等式の判定は、式(25)のみでもよく、また、順方向動き予測と、逆方向動き予測の順序は、逆にしてもよい。
(全体のまとめ)
以上の様に、実施の形態1乃至実施の形態3に述べた動きベクトル検出装置は、半画素精度の動きベクトル検出を行う際に、背景技術の項で述べたような、処理負荷が重く、かつ画素データの冗長性の高い、半画素精度の参照ブロックを生成する事なく、半画素精度の動きベクトルMV2を推定する事ができる。
(その他の変形例)
なお、本発明を上記の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1) 実施の形態では、差分評価値演算部21のPEアレー30を構成するPEは、8個並列に接続されていなくても良い。PEアレー30が、n個(n=1、2、3、・・・)のPEを並列に接続して構成される場合も、本発明に含まれる。その場合には、差分評価値演算部21のアダーツリー40を、n個の同時生成される差分絶対値が、順次加算される様に構成する。
(2) 半画素精度の動きベクトルの推定精度を向上させる為の差分量子化値のビット幅は、3ビットに限らない。差分量子化値のビット幅をnビット(n=1、2、3、・・・)とする場合は、差分特徴量レジスタ、及び差分特徴量バスの幅を、8×(n+1)ビットにすると共に、当該差分特徴量を生成、又は比較を行うPE内部の量子化器、ビット結合器、及び比較器などのビット幅を、nビットにする。
(3) 探索中心P0の周囲で差分評価値の比較を行う探索パターンSPは、図11に挙げたブロックサーチパターン、又はダイヤモンドサーチパターンに限らない。探索パターンSPを、探索中心P0の周囲の点Pi(i=1、2、3、・・・)で構成される、任意の形状の点の集合として構成する場合も、本発明に含まれる。
探索パターンSPが、P0、及びその周囲のm個(mは正の整数)の点、Pi(i=1、2、3、・・・、m)から構成される場合には、差分特徴量比較部22の差分特徴量レジスタのバンクの数を(m+1)個とし、P0とPi(i=1、2、3、・・・、m)とを左上端の点とする参照ブロックBK(P0)、及びBK(Pi)の差分特徴量を、対応する各バンクにそれぞれ格納した後、iの各値に対して、2個の参照ブロックBK(P0)と、BK(Pi)(i=1、2、3、・・・、m)とで前記差分特徴量の比較を行い、差分特徴量比較結果RES(BK0、BKRi)を生成する処理をm回繰り返し、それらの結果生成された、m個の差分特徴量比較結果RES(BK0、BKRi)(i=1、2、3、・・・、m)を、終了判定部に出力する。
(4) 実施の形態1乃至実施の形態3では、差分特徴量比較結果RES(BK0、BKi)(i=1、2、3、4)を互いに比較し、それらの中で、値が最大のものが、RES(BK0、BKr)(1≦r≦4)であったとすると、サーチパターンSPにおいて、探索中心P0と、周囲の点Pr(1≦r≦4)との中点Pc=(P0+Pr)/2において、半画素精度の動きベクトルMV2の終点が存在する可能性が最も高いと推定したが、半画素精度の動きベクトルMV2の終点が存在する可能性が高いと推定する点の個数は、1個に限らない。
半画素精度の動きベクトルMV2の終点が存在する可能性が高いと推定する点の個数をm個(m=1、2、3、4)とし、差分特徴量比較結果RES(BK0、BKi)(i=1、2、3、4)の値が大きい順に優先順位を付け、点P0と点Piとの中点((P0+Pi)/2)の半画素位置、又はそれに最も隣接する半画素位置(図18(b)参照)を加えた複数の半画素位置について、優先順位が高い順に、差分評価値SADを算出して比較する事により、SADの最小値を与える半画素位置を探索してもよい。
(5) 実施の形態2では、画素データの差分符号sgn(ckl−skl)だけでなく、差分絶対値(|ckl−skl|)をも考慮し、これを量子化の定数Qで除算する量子化を行った上で、差分絶対値の比が1:1であるか否かの比較を行ったが、差分絶対値を比較する比の値は、1:1に限らない。
2点P0、及びPiの間の点P(P0≦P≦Pi、または、Pi≦P≦P0)における画素データの値を求める為に、「線形補間」を用いて画素データを補間する場合に、異なる2つの参照ブロックBK(P0)、及びBK(Pi)に対する差分絶対値の比較を行って、2つの差分絶対値の比が1:1の場合以外に、1:3、3:1の場合についても差分特徴量のカウントを行い、それらのカウント値に応じて、1/4画素精度の最適参照ブロックMQBKの位置推定を行う場合も、本発明に含まれる。
差分絶対値の比が1:1の場合以外に、1:3、3:1の場合についても、差分特徴量のカウントを行う場合には、ビット毎の比較を行う比較器以外に、数値としての比較が行える新たな比較器を増設する一方、前記新たな比較器の出力をカウントする為のカウンタ、及びそれらのカウンタによるカウント値を格納する為の差分特徴量比較結果レジスタを増設する。
更に、当該レジスタに格納されたカウント値を使用して各種処理を行うフローチャート、またはプログラムにおいても、差分特徴量比較結果RES(BK0、BKn)(n=1、2、3、4)の個数が、5個以上に増加した場合に対応できる様にする。
(6) 実施の形態2では、画素データの差分符号sgn(ckl−skl)だけでなく、差分絶対値(|ckl−skl|)をも考慮し、これを量子化の定数Qで除算する量子化を行った上で、差分絶対値の比が1:1であるか否かの比較を行ったが、差分絶対値を比較する比の値は、1:1に限らない。
2点P0、及びPiの間の点P(P0≦P≦Pi、または、Pi≦P≦P0)における画素データの値を求める為に、画素データを線形補間を含む任意の方法で補間し、異なる2つの参照ブロックBK(P0)、及びBK(Pi)に対する差分絶対値の比較を行って、2つの差分絶対値の比が1:1の場合以外に、m:n(m、nは、任意の正の実数)の場合についても差分特徴量のカウントを行い、それらのカウント値に応じて、半画素以上の精度の最適参照ブロックの位置推定を行う場合も、本発明に含まれる。
上記の比較を行う場合は、前項(5)と同様、ビット毎の比較を行う比較器以外に、数値としての比較が行える新たな比較器を増設する一方、前記新たな比較器の出力をカウントする為のカウンタ、及びそれらのカウンタによるカウント値を格納する為の差分特徴量比較結果レジスタを増設する。また、当該レジスタに格納されたカウント値を使用して各種処理を行うフローチャート、またはプログラムを各々修正し、差分特徴量比較結果のデータ量増加に対応する。
(7) 上記実施の形態、及び上記変形例をそれぞれ組み合わせて実施する場合も、本発明に含まれる。
(8) 上記第1、第2の実施の形態では、動きベクトル検出装置は、特有のハードウェアを備えた構成としているが、本発明はこれに限らず、汎用パソコンを準備し、これに本発明特有の動きベクトル検出動作を行うプログラムをインストールするようにして実施することもできる。
本発明の動きベクトル検出装置は、MPEG方式等、動画像の予測符号化処理に用いられる動きベクトル検出装置として有用である。
本実施の形態の動きベクトル検出装置1を主要部とした、MPEG処理装置2の構成を示す機能ブロック図である。 差分評価値演算部21の構成を示す機能ブロック図である。 図2に示した8個のPE31乃至PE38の、内部構成を示す機能ブロック図である。 累積加算器50の構成を示す機能ブロック図である。 差分特徴量比較部22の構成を示す、機能ブロック図である。 差分特徴量比較結果算出処理の手順を示すフローチャートである。 差分特徴量カウント処理の処理手順を示すフローチャートである。 終了判定部23の構成を示す機能ブロック図である。 内挿演算部24の構成を示す機能ブロック図である。 動きベクトル検出の概要を示す図である。 局所探索において、差分評価値SADの比較を行う探索パターンSPを示す図である。 探索パターンSPとして、ダイヤモンドサーチパターン(Diamond Search Pattern;np=5)を用いた場合の、局所探索における探索経路SRを示す図である。 整数画素精度の動きベクトル探索の、処理手順を示すフローチャートである。 終了判定部23が行う、整数画素精度の動きベクトル探索の、第1終了判定処理の手順を示すフローチャートである。 終了判定部23が行う、整数画素精度の動きベクトル探索の、第2終了判定処理の手順を示すフローチャートである。 半画素精度の動きベクトル探索の、処理手順を示すフローチャートである。 差分符号が同符号の場合と、異符号(符号が反転している)の場合とを比較した図である。 半画素精度の動きベクトルの探索処理を、例を挙げて説明した図である。 実施の形態2のPE141乃至148の構成を示す機能ブロック図である。 実施の形態2の差分評価値演算部130の構成を示す機能ブロック図である。 実施の形態2の差分特徴量比較部131の構成を示す、機能ブロック図である。 実施の形態2の差分特徴量カウント処理の処理手順を示すフローチャートである。 整数画素間で、画素データの差分符号が反転する場合に、当該整数画素間を、当該画素データの差分の絶対値に応じて、内分する点を示す図である。 双方向動き予測の概要を説明する為の図である。 整数画素精度の双方向動き予測の処理手順を示すフローチャートである。 逆方向動き予測において用いる、整数画素精度の動きベクトル探索の、第2終了判定処理の手順を示すフローチャートである。 半画素精度の動きベクトルMV2の検出における、画素データの補間処理の概要を示す図である。 半画素精度の動きベクトル検出における探索位置を示す図である。 生成された8個の半画素精度の参照ブロックHBK1乃至HBK8の位置関係、及び重なり状態を示す図である。
符号の説明
1 動きベクトル検出装置
2 MPEG処理装置
3 CPU
4 ROM
5 RAM
6 フレームメモリ
7 グローバルバス
8 現フレームメモリ
9 参照フレームメモリ
11 カレントブロックメモリ
12 参照領域メモリ
13 アドレス生成部
14 制御部
15 データパス部
21 差分評価値演算部
22 差分特徴量比較部
23 終了判定部
24 内挿演算部
30 PEアレー
31 PE(0)
32 PE(1)
33 PE(2)
34 PE(3)
35 PE(4)
36 PE(5)
37 PE(6)
38 PE(7)
40 アダーツリー
41〜47 加算器
50 累積加算器
51 加算器
52 累積レジスタ
55 差分特徴量バス
61 引算器
62 絶対値化器
63 レジスタ
64 符号化器
70 差分特徴量レジスタ(バンク0)
71 差分特徴量レジスタ(バンク1)
72 差分特徴量レジスタ(バンク2)
73 差分特徴量レジスタ(バンク3)
74 差分特徴量レジスタ(バンク4)
75〜76 分岐器
77 比較器
78 カウンタ
80 第1終了判定部
81 第2終了判定部
82 分岐器
83 OR回路
90 SADレジスタ
91 MINSADレジスタ
92 比較器
93 第1判定部
95 差分特徴量比較結果レジスタ
96 SAD0レジスタ
97 第2判定部
100 半画素ブロックメモリ
101 補間部
105 符号化画像It
106 参照画像It-1
110 量子化器
111 ビット結合器
121 PE(0)
122 PE(1)
123 PE(2)
124 PE(3)
125 PE(4)
126 PE(5)
127 PE(6)
128 PE(7)
130 差分評価値演算部
131 差分評価値比較部
135 差分特徴量バス(32ビット)
140 差分特徴量レジスタ(バンク0)
141 差分特徴量レジスタ(バンク1)
142 差分特徴量レジスタ(バンク2)
143 差分特徴量レジスタ(バンク3)
144 差分特徴量レジスタ(バンク4)
145〜146 分岐器
147 比較器
148 カウンタ
150 Iピクチャ
151 Pピクチャ
152 Bピクチャ

Claims (13)

  1. 参照画像内に複数の参照ブロックを段階的に設定しながら、設定された参照ブロックの中から符号化対象画像内のカレントブロックとの類似度が最も高い第1最適ブロックを探索した後、前記参照ブロック間で画素補間して得た1つ以上の内挿ブロックを比較対象に加えて類似度が最も高い第2最適ブロックを求め、当該第2最適ブロックを基に整数画素以下の精度で動きベクトルを検出する動きベクトル検出装置であって、
    前記設定された参照ブロックの各々について、前記カレントブロック及び前記参照ブロックの対応画素の差分の正負符号をブロック内の各画素について示す差分特徴量を算出する演算手段と、
    隣接する参照ブロックについて算出された差分特徴量を比較することにより、当該隣接する何れの参照ブロックの類似度よりもそれらの間で画素補間して得られる内挿ブロックの類似度が高い可能性を示す比較結果を出力する比較手段と、
    前記比較結果が所定の可能性を示す場合に前記第1最適ブロックの探索を終了すると判定する判定手段と
    を備えることを特徴とする動きベクトル検出装置。
  2. 前記演算手段は、前記対応画素の差分の正負符号のみをブロック内の各画素について示す差分特徴量を算出し、
    前記比較手段は、前記差分特徴量により示される正負符号が不一致である画素の数を前記比較結果として出力し、
    前記判定手段は、前記比較結果が所定のしきい値以上である場合に前記第1最適ブロックの探索を終了すると判定する
    ことを特徴とする請求項1に記載の動きベクトル検出装置。
  3. 前記演算手段は、前記対応画素の差分の正負符号に加え、差分の絶対量の量子化値をブロック内の各画素について示す差分特徴量を算出し、
    前記比較手段は、前記差分特徴量により示される正負符号が不一致でありかつ量子化値が一致する画素の数を前記比較結果として出力し、
    前記判定手段は、前記比較結果が所定のしきい値以上である場合に前記第1最適ブロックの探索を終了すると判定する
    ことを特徴とする請求項1に記載の動きベクトル検出装置。
  4. 参照画像内に複数の参照ブロックを段階的に設定しながら、設定された参照ブロックの中から符号化対象画像内のカレントブロックとの類似度が最も高い第1最適ブロックを探索した後、前記参照ブロック間で画素補間して得た1つ以上の内挿ブロックを比較対象に加えて類似度が最も高い第2最適ブロックを求め、当該第2最適ブロックを基に整数画素以下の精度で動きベクトルを検出する動きベクトル検出方法であって、
    前記設定された参照ブロックの各々について、前記カレントブロック及び前記参照ブロックの対応画素の差分の正負符号をブロック内の各画素について示す差分特徴量を算出する演算ステップと、
    隣接する参照ブロックについて算出された差分特徴量を比較することにより、当該隣接する何れの参照ブロックの類似度よりもそれらの間で画素補間して得られる内挿ブロックの類似度が高いか推定する推定ステップと、
    肯定推定された場合に前記第1最適ブロックの探索を終了すると判定する判定ステップと
    を含むことを特徴とする動きベクトル検出方法。
  5. 前記推定ステップにおいて肯定推定された内挿ブロックのみを前記比較対象に加えて前記第2最適ブロックを求める
    ことを特徴とする請求項4に記載の動きベクトル検出方法。
  6. 参照画像内に設定した複数の参照ブロックの中から符号化対象画像内のカレントブロックとの類似度が最も高い第1最適ブロックを探索した後、前記参照ブロック間で画素補間して得た1つ以上の内挿ブロックを比較対象に加えて類似度が最も高い第2最適ブロックを求め、当該第2最適ブロックを基に整数画素以下の精度で動きベクトルを検出する動きベクトル検出方法であって、
    前記参照ブロックの各々について、前記カレントブロック及び前記参照ブロックの対応画素の差分の正負符号をブロック内の各画素について示す差分特徴量を算出する演算ステップと、
    隣接する参照ブロックについて算出された差分特徴量を比較することにより、当該隣接する何れの参照ブロックの類似度よりもそれらの間で画素補間して得られる内挿ブロックの類似度が高いか推定する推定ステップと、
    を含み、
    前記推定ステップにおいて肯定推定された内挿ブロックのみを比較対象に加えて前記第2最適ブロックを求める
    ことを特徴とする動きベクトル検出方法。
  7. 前記演算ステップは、前記対応画素の差分の正負符号のみをブロック内の各画素について示す差分特徴量を算出し、
    前記推定ステップは、前記差分特徴量により示される正負符号が不一致である画素の数が所定のしきい値以上である場合に肯定推定する
    ことを特徴とする請求項4乃至6の何れかに記載の動きベクトル検出方法。
  8. 前記演算ステップは、前記対応画素の差分の正負符号に加え、差分の絶対量の量子化値をブロック内の各画素について示す差分特徴量を算出し、
    前記推定ステップは、前記差分特徴量により示される正負符号が不一致でありかつ量子化値が一致する画素の数が所定のしきい値以上である場合に肯定推定する
    ことを特徴とする請求項4乃至6の何れかに記載の動きベクトル検出方法。
  9. 符号化対象画像の時間的な前後に表示される第1参照画像及び第2参照画像内にそれぞれ複数設定される第1参照ブロック及び第2参照ブロック、並びに当該第1参照ブロックと当該第2参照ブロックとの間で画素補間して得た1つ以上の時間内挿ブロックの中から、前記符号化対象画像内のカレントブロックとの類似度が最も高い最適ブロックを求め、当該最適ブロックを基に双方向に動きベクトルを検出する動きベクトル検出方法であって、
    前記第1参照ブロックの中から類似度が最も高い第1最適ブロックを求めると共に、前記カレントブロック及び当該第1最適ブロックの対応画素の差分の正負符号をブロックの全画素について示す第1差分特徴量を算出する第1演算ステップと、
    前記第2参照ブロックを段階的に設定しながら、設定された第2参照ブロックの中から類似度が最も高い第2最適ブロックを探索する探索ステップと、
    前記設定された第2参照ブロックの各々について、前記カレントブロック及び前記第2参照ブロックの対応画素の差分の正負符号をブロックの全画素について示す第2差分特徴量を算出する第2演算ステップと、
    前記第1差分特徴量と前記第2差分特徴量とを比較することにより、前記第1最適ブロック及び前記第2参照ブロックの何れの類似度よりもそれらの間で画素補間して得られる時間内挿ブロックの類似度が高いか推定する推定ステップと、
    肯定推定された場合に前記第2最適ブロックの探索を終了すると判定する判定ステップと
    を含むことを特徴とする動きベクトル検出方法。
  10. 前記第1演算ステップは、前記対応画素の差分の正負符号のみをブロック内の各画素について示す第1差分特徴量を算出し、
    前記第2演算ステップは、前記対応画素の差分の正負符号のみをブロック内の各画素について示す第2差分特徴量を算出し、
    前記推定ステップは、前記第1差分特徴量と前記第2差分特徴量とにより示される正負符号が不一致である画素の数が所定のしきい値以上である場合に肯定推定する
    ことを特徴とする請求項9に記載の動きベクトル検出方法。
  11. 前記第1演算ステップは、前記対応画素の差分の正負符号に加え、差分の絶対量の量子化値をブロック内の各画素について示す第1差分特徴量を算出し、
    前記第2演算ステップは、前記対応画素の差分の正負符号に加え、差分の絶対量の量子化値をブロック内の各画素について示す第1差分特徴量を算出し、
    前記推定ステップは、前記第1差分特徴量と前記第2差分特徴量とにより示される正負符号が不一致でありかつ量子化値が一致する画素の数が所定のしきい値以上である場合に肯定推定する
    ことを特徴とする請求項9に記載の動きベクトル検出方法。
  12. 参照画像内に設定した複数の参照ブロックの中から符号化対象画像内のカレントブロックとの類似度が最も高い第1最適ブロックを探索した後、前記参照ブロック間で画素補間して得た1つ以上の内挿ブロックを比較対象に加えて類似度が最も高い第2最適ブロックを求め、当該第2最適ブロックを基に整数画素以下の精度で動きベクトルを検出するためのコンピュータ実行可能なプログラムであって、
    請求項4乃至8の少なくとも1つに記載のステップをコンピュータに実行させる
    ことを特徴とするプログラム。
  13. 符号化対象画像の時間的な前後に表示される第1参照画像及び第2参照画像内にそれぞれ複数設定される第1参照ブロック及び第2参照ブロック、並びに当該第1参照ブロックと当該第2参照ブロックとの間で画素補間して得た1つ以上の時間内挿ブロックの中から、前記符号化対象画像内のカレントブロックとの類似度が最も高い最適ブロックを求め、当該最適ブロックを基に双方向に動きベクトルを検出するためのコンピュータ実行可能なプログラムであって、
    請求項9乃至11の少なくとも1つに記載のステップをコンピュータに実行させる
    ことを特徴とするプログラム。
JP2004064717A 2004-03-08 2004-03-08 動きベクトル検出装置、動きベクトル検出方法、及びプログラム Pending JP2005253015A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004064717A JP2005253015A (ja) 2004-03-08 2004-03-08 動きベクトル検出装置、動きベクトル検出方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004064717A JP2005253015A (ja) 2004-03-08 2004-03-08 動きベクトル検出装置、動きベクトル検出方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2005253015A true JP2005253015A (ja) 2005-09-15

Family

ID=35033032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004064717A Pending JP2005253015A (ja) 2004-03-08 2004-03-08 動きベクトル検出装置、動きベクトル検出方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2005253015A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007096804A (ja) * 2005-09-29 2007-04-12 Megachips Lsi Solutions Inc 動き探索方法
JP2009513068A (ja) * 2005-10-20 2009-03-26 クゥアルコム・インコーポレイテッド ビデオ・エンコーディングのためのスケーリング可能な動き推定
JP2013150203A (ja) * 2012-01-20 2013-08-01 Fujitsu Ltd 画像処理プログラム、装置及び方法
WO2015030226A1 (ja) * 2013-09-02 2015-03-05 三菱電機株式会社 動き探索処理装置及び画像符号化装置及び動き探索処理方法及びプログラム
WO2019151408A1 (ja) * 2018-02-02 2019-08-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法および復号方法
CN112738529A (zh) * 2020-12-23 2021-04-30 北京百度网讯科技有限公司 帧间预测方法、装置、设备、存储介质以及程序产品
CN113711592A (zh) * 2019-04-01 2021-11-26 北京字节跳动网络技术有限公司 帧内块复制编码模式中的二分之一像素插值滤波器

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007096804A (ja) * 2005-09-29 2007-04-12 Megachips Lsi Solutions Inc 動き探索方法
JP2009513068A (ja) * 2005-10-20 2009-03-26 クゥアルコム・インコーポレイテッド ビデオ・エンコーディングのためのスケーリング可能な動き推定
JP2013150203A (ja) * 2012-01-20 2013-08-01 Fujitsu Ltd 画像処理プログラム、装置及び方法
WO2015030226A1 (ja) * 2013-09-02 2015-03-05 三菱電機株式会社 動き探索処理装置及び画像符号化装置及び動き探索処理方法及びプログラム
WO2019151408A1 (ja) * 2018-02-02 2019-08-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法および復号方法
CN113711592A (zh) * 2019-04-01 2021-11-26 北京字节跳动网络技术有限公司 帧内块复制编码模式中的二分之一像素插值滤波器
CN112738529A (zh) * 2020-12-23 2021-04-30 北京百度网讯科技有限公司 帧间预测方法、装置、设备、存储介质以及程序产品
CN112738529B (zh) * 2020-12-23 2023-07-07 北京百度网讯科技有限公司 帧间预测方法、装置、设备、存储介质以及程序产品

Similar Documents

Publication Publication Date Title
US9699458B2 (en) Image encoding apparatus, image encoding method, image decoding apparatus, and image decoding method
JP5786478B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム
US8213515B2 (en) Interpolated skip mode decision in video compression
JP5669278B2 (ja) 画像シーケンスのブロックを符号化する方法およびこのブロックを再構成する方法
JP3277111B2 (ja) 動画像符号化装置および動画像復号化装置
US20080310509A1 (en) Sub-pixel Interpolation and its Application in Motion Compensated Encoding of a Video Signal
KR20070033345A (ko) 전역 움직임 벡터를 검색하는 방법
JP2005253015A (ja) 動きベクトル検出装置、動きベクトル検出方法、及びプログラム
JP2011010297A (ja) 誤差絶対値和の推定システム及び推定方法
US20050047502A1 (en) Method and apparatus for the efficient representation of interpolated video frames for motion-compensated coding
JP2010081635A (ja) 動き補償予測符号化装置、動き補償予測符号化方法及びプログラム
JP5786988B2 (ja) 動画像復号方法、動画像復号装置、及び動画像復号プログラム
JP5786989B2 (ja) 動画像符号化方法、動画像符号化装置、及び動画像符号化プログラム
JP5200981B2 (ja) 動き検出回路及びその動き検出回路を含む動画像符号化装置
JP2005064655A (ja) 動きベクトル検出方法及び動きベクトル検出装置
JPH03253180A (ja) 画像生成方法
JPH11239350A (ja) 動画像信号の動きベクトル検出方法およびフレーム間符号化装置における動きベクトル検出回路
JP5786987B2 (ja) 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム
JP2934134B2 (ja) 動画像圧縮におけるブロック・マッチング方法と装置
JP4155102B2 (ja) 画素値演算装置、動画像符号化装置及び動画像復号化装置
JP2901848B2 (ja) ベクトル相関検出回路
JP5720399B2 (ja) 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム
JPH08205167A (ja) 動きベクトル検出回路
JP2009033266A (ja) 動きベクトル探索方法、動きベクトル探索装置、符号化装置及びコンピュータプログラム
GB2436656A (en) Computing a sliding sum of absolute differences for video signal compression