JP4129788B2 - Image data processing apparatus and method, recording medium, and program - Google Patents
Image data processing apparatus and method, recording medium, and program Download PDFInfo
- Publication number
- JP4129788B2 JP4129788B2 JP2002295591A JP2002295591A JP4129788B2 JP 4129788 B2 JP4129788 B2 JP 4129788B2 JP 2002295591 A JP2002295591 A JP 2002295591A JP 2002295591 A JP2002295591 A JP 2002295591A JP 4129788 B2 JP4129788 B2 JP 4129788B2
- Authority
- JP
- Japan
- Prior art keywords
- class code
- pixel
- tap
- image
- pixels
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、画像データ処理装置および方法、記録媒体、並びにプログラムに関し、例えば、連続する画像上の画素同士をマッチングさせ、マッチングの結果に基づいて動きベクトルを検出する場合に用いて好適な画像データ処理装置および方法、記録媒体、並びにプログラムに関する。
【0002】
【従来の技術】
例えば、MPEG2(Moving Picture Experts Group)方式等の画像信号を圧縮符号化する処理においては、隣接するフレーム間の相関関係に基づく符号化処理、いわゆる動き補償フレーム間予測が用いられている。動き補償フレーム間予測では、隣接するフレーム間(一方を現フレーム、他方を参照フレームと記述する)における各画素単位または所定サイズの画素ブロック単位の動きベクトルを検出する処理が必要となる。
【0003】
動きベクトルを検出する方法としては、従来、ブロックマッチングアルゴリズムと称される方法が用いられている(例えば、特許文献1参照)。
【0004】
図1は、ブロックマッチングアルゴリズムに従って動きベクトルを検出する動きベクトル検出装置の構成例を示している。この動きベクトル検出装置1は、入力される画像信号を1フレーム分だけ保持して後段に出力するフレームメモリ2,3、およびフレームメモリ2,3から入力される2フレームの画像信号に基づき、フレームメモリ2から入力される画像信号の画像内の動きベクトルを検出する検出部4から構成される。
【0005】
フレームメモリ2は、入力された画像信号を1フレーム分だけ保持し、次のフレームの画像信号が入力されたとき、保持していた画像信号をフレームメモリ3および検出部4に出力する。フレームメモリ3は、フレームメモリ2から入力された画像信号を1フレーム分だけ保持し、次のフレームの画像信号が入力されたとき、保持していた画像信号を検出部4に出力する。
【0006】
したがって、検出部4には、前後する2フレームの画像信号が入力されることになる。以下、フレームメモリ2から検出部4に入力された1フレーム分の画像信号の画像を、対象フレームFcと記述する。また、フレームメモリ3から検出部4に入力された、対象フレームFcよりも1フレーム前の画像信号の画像を、参照フレームFrと記述する。
【0007】
検出部4は、ブロックマッチングアルゴリズムに従い、対象フレームFc内の動きベクトルを算出する。ブロックマッチングアルゴリズムについて、図2に示す対象フレームFcと参照フレームFrの対応図および図3に示すフローチャートを参照して説明する。
【0008】
ブロックマッチングアルゴリズムでは、対象フレームFc内の全ての画素が、順次、注目画素に設定され、注目画素を中心とする所定サイズ(L×L画素)の基準ブロックと、参照フレームFrのサーチエリアSR内で移動される参照ブロック(基準ブロックと同じサイズ)との対応する画素対の画素値の差分絶対値和が次式(1)に従って演算される。
ΣiΣj=|Fc(i,j)−Frn(i,j)| ・・・(1)
【0009】
ただし、Fc(i,j)は基準ブロックの画素の画素値であり、Frn(i,j)は識別番号nの参照ブロックの画素の画素値であり、Σiは、iを1からLまで1ずつインクリメントしたときの総和演算、Σjは、jを1からLまで1ずつインクリメントしたときの総和演算を意味するものとする。
【0010】
そして、基準ブロックと参照ブロックとの対応する画素対の画素値の差分絶対値和が最小となるときの参照ブロックの中心座標と注目画素の座標との差分ベクトルが動きベクトルとして算出される。
【0011】
具体的には、対象フレームFcの注目画素に対して、以下の処理が実行される。ステップS1において、検出部4は、参照フレームFcに、対象フレームFcの注目画素の座標(x,y)と同じ座標を中心として、基準ブロックよりも大きなサイズのサーチエリアSRを設定する。
【0012】
ステップS2において、検出部4は、差分絶対値和の最小値を格納する変数minを、その最大値に初期化する。例えば、1画素の画素値が8ビット、基準ブロックのサイズが4×4画素である場合、変数minが、4096(=28×16)に初期化される。
【0013】
ステップS3において、検出部4は、サーチエリアSR内で移動させる参照ブロックの識別番号nを1に初期化する。ステップS4において、検出部4は、差分絶対値和の演算結果を格納する変数sumを0に初期化する。
【0014】
ステップS5において、検出部4は、対象フレームFcの基準ブロックと、参照フレームFrに設定したサーチエリアSR内の識別番号nの参照ブロックとの同じ場所に位置する画素対の画素の差分絶対値和を演算して、変数sumに代入する。ステップS6において、検出部4は、ステップS5の演算結果である変数sumと変数minを比較し、変数sumが変数minよりも小さいか否かを判定する。変数sumが変数minよりも小さいと判定された場合、処理はステップS7に進む。
【0015】
ステップS7において、検出部4は、変数minを、変数sumで置換する。また、検出部4は、いまの参照ブロックの識別番号nを、動きベクトル番号として記憶する。
【0016】
ステップS8において、検出部4は、参照ブロックの識別番号nが最大値であるか否か、すなわち、サーチエリアSRの全域に参照ブロックを移動し終えたか否かを判定する。参照ブロックの識別番号nが最大値ではないと判定された場合、処理はステップS9に進む。ステップS9において、検出部4は、参照ブロックの識別番号nを1だけインクリメントし、ステップS4の処理に戻って、それ以降の処理を繰り返す。
【0017】
なお、ステップS6において、変数sumが変数minよりも小さくないと判定された場合、処理はステップS7の処理はスキップされる。
【0018】
その後、ステップS8において、参照ブロックの識別番号nが最大値ではないと判定された場合、すなわち、サーチエリアSRの全域に参照ブロックを移動し終えた場合、処理はステップS10に進む。
【0019】
ステップS10において、検出部4は、動きベクトル番号として記憶している識別番号nに対応する参照ブロックの中心座標と、対象フレームFcの注目画素の座標(x,y)との差分ベクトルを、対象フレームFcの注目画素の動きベクトルとして算出する。以上で、ブロックマッチングアルゴリズムの説明を終了する。
【0020】
【特許文献1】
特許第3277417号公報
【0021】
【発明が解決しようとする課題】
上述したブロックマッチングアルゴリズムは、ステップS5における画素対の画素の差分絶対値和の演算量が非常に膨大となっており、画像圧縮処理の大半の時間がこの演算に費やされてしまうという課題があった。
【0022】
本発明はこのような状況に鑑みてなされたものであり、各画素に対して生成するクラスコードを用いることにより、ブロックマッチングアルゴリズムに比較して少ない演算量で画像間のマッチングを行い、さらに生成するクラスコードのロバスト性を向上させて、動きベクトル等を精度良く検出できるようにするものである。
【0023】
【課題を解決するための手段】
本発明の画像データ処理装置は、動画像を構成する画像の各画素を注目画素とし、注目画素に対する空間的な特徴量を示すクラスコードを、注目画素とその近傍に位置する画素の画素値を用いて生成するクラスコード生成手段と、全てのクラスコードをそれぞれアドレスとする複数の座標格納部を有し、画像の各画素に対するクラスコードの生成結果を記憶するための記憶部であって、各画素の座標を、対応するクラスコードをアドレスとする座標格納部に記憶する記憶部と、動画像を構成する第1の画像の注目画素のクラスコードと、記憶部に記憶されている、第1の画像と前後する第2の画像の各画素に対するクラスコードの生成結果との比較結果に基づき、第1の画像の注目画素の動きベクトルを検出する検出手段とを備え、クラスコード生成手段は、注目画素の近傍の所定の位置に配置された複数の画素からなる複数のクラスコード用タップ候補を設定する設定手段と、設定された各クラスコード用タップ候補に対して、クラスコード用タップ候補を構成する複数の画素の画素値の分散の程度を示す評価値を演算する演算手段と、演算された評価値に基づき、構成する複数の画素の画素値の分散の程度が最大のクラスコード用タップ候補をクラスコード用タップに決定する決定手段と、決定されたクラスコード用タップを構成する複数の画素の各画素値を1ビット符号化することにより、注目画素に対するクラスコード用タップを構成する画素数と同じビット数のクラスコードを生成する生成手段とを含む。
【0024】
前記演算手段は、設定された各クラスコード用タップ候補に対して、クラスコード用タップ候補を構成する複数の画素の画素値の最小値に、複数の画素の画素値のダイナミックレンジの1/2を加算して閾値を算出し、クラスコード用タップ候補を構成する複数の画素の各画素値と、算出した閾値との差の総和を、評価値として演算するようにすることができる。
【0026】
本発明の画像データ処理方法は、動画像を構成する画像の各画素を注目画素とし、注目画素に対する空間的な特徴量を示すクラスコードを、注目画素とその近傍に位置する画素の画素値を用いて生成するクラスコード生成ステップと、全てのクラスコードをそれぞれアドレスとする複数の座標格納部を有し、画像の各画素の座標を、対応するクラスコードをアドレスとする座標格納部に記憶する記憶部に、画像の各画素に対するクラスコードの生成結果を記憶する記憶ステップと、動画像を構成する第1の画像の注目画素のクラスコードと、記憶部に記憶されている、第1の画像と前後する第2の画像の各画素に対するクラスコードの生成結果との比較結果に基づき、第1の画像の注目画素の動きベクトルを検出する検出ステップとを含み、クラスコード生成ステップは、注目画素の近傍の所定の位置に配置された複数の画素からなる複数のクラスコード用タップ候補を設定する設定ステップと、設定された各クラスコード用タップ候補に対して、クラスコード用タップ候補を構成する複数の画素の画素値の分散の程度を示す評価値を演算する演算ステップと、演算された評価値に基づき、構成する複数の画素の画素値の分散の程度が最大のクラスコード用タップ候補をクラスコード用タップに決定する決定ステップと、決定されたクラスコード用タップを構成する複数の画素の各画素値を1ビット符号化することにより、注目画素に対するクラスコード用タップを構成する画素数と同じビット数のクラスコードを生成する生成ステップとを含む。
【0027】
本発明の記録媒体は、動画像を構成する画像の各画素を注目画素とし、注目画素に対する空間的な特徴量を示すクラスコードを、注目画素とその近傍に位置する画素の画素値を用いて生成するクラスコード生成ステップと、全てのクラスコードをそれぞれアドレスとする複数の座標格納部を有し、画像の各画素の座標を、対応するクラスコードをアドレスとする座標格納部に記憶する記憶部に、画像の各画素に対するクラスコードの生成結果を記憶する記憶ステップと、動画像を構成する第1の画像の注目画素のクラスコードと、記憶部に記憶されている、第1の画像と前後する第2の画像の各画素に対するクラスコードの生成結果との比較結果に基づき、第1の画像の注目画素の動きベクトルを検出する検出ステップとを含み、クラスコード生成ステップは、注目画素の近傍の所定の位置に配置された複数の画素からなる複数のクラスコード用タップ候補を設定する設定ステップと、設定された各クラスコード用タップ候補に対して、クラスコード用タップ候補を構成する複数の画素の画素値の分散の程度を示す評価値を演算する演算ステップと、演算された評価値に基づき、構成する複数の画素の画素値の分散の程度が最大のクラスコード用タップ候補をクラスコード用タップに決定する決定ステップと、決定されたクラスコード用タップを構成する複数の画素の各画素値を1ビット符号化することにより、注目画素に対するクラスコード用タップを構成する画素数と同じビット数のクラスコードを生成する生成ステップとを含む処理をコンピュータに実行させるプログラムが記録されている。
【0028】
本発明のプログラムは、動画像を構成する画像の各画素を注目画素とし、注目画素に対する空間的な特徴量を示すクラスコードを、注目画素とその近傍に位置する画素の画素値を用いて生成するクラスコード生成ステップと、全てのクラスコードをそれぞれアドレスとする複数の座標格納部を有し、画像の各画素の座標を、対応するクラスコードをアドレスとする座標格納部に記憶する記憶部に、画像の各画素に対するクラスコードの生成結果を記憶する記憶ステップと、動画像を構成する第1の画像の注目画素のクラスコードと、記憶部に記憶されている、第1の画像と前後する第2の画像の各画素に対するクラスコードの生成結果との比較結果に基づき、第1の画像の注目画素の動きベクトルを検出する検出ステップとを含み、クラスコード生成ステップは、注目画素の近傍の所定の位置に配置された複数の画素からなる複数のクラスコード用タップ候補を設定する設定ステップと、設定された各クラスコード用タップ候補に対して、クラスコード用タップ候補を構成する複数の画素の画素値の分散の程度を示す評価値を演算する演算ステップと、演算された評価値に基づき、構成する複数の画素の画素値の分散の程度が最大のクラスコード用タップ候補をクラスコード用タップに決定する決定ステップと、決定されたクラスコード用タップを構成する複数の画素の各画素値を1ビット符号化することにより、注目画素に対するクラスコード用タップを構成する画素数と同じビット数のクラスコードを生成する生成ステップとを含む処理をコンピュータに実行させる。
【0029】
本発明においては、注目画素の近傍の所定の位置に配置された複数の画素からなる複数のクラスコード用タップ候補が設定され、設定された各クラスコード用タップ候補に対して、クラスコード用タップ候補を構成する複数の画素の画素値の分散の程度を示す評価値が演算され、演算された評価値に基づき、構成する複数の画素の画素値の分散の程度が最大のクラスコード用タップ候補がクラスコード用タップに決定される。さらに、決定されたクラスコード用タップを構成する複数の画素の各画素値が1ビット符号化されることにより、注目画素に対するクラスコード用タップを構成する画素数と同じビット数のクラスコードが生成される。
【0030】
【発明の実施の形態】
本発明を適用した動きベクトル検出装置の構成例について、図4を参照して説明する。この動きベクトル検出装置11は、フレームメモリ12,13、クラスコード生成部14、MEメモリ15、および動きベクトル演算部16から構成される。
【0031】
フレームメモリ12は、入力された画像信号を1フレーム分だけ保持し、次のフレームの画像信号が入力されたとき、保持していた画像信号をフレームメモリ13およびクラスコード生成部14に出力する。フレームメモリ13は、入力された画像信号を1フレーム分だけ保持し、次のフレームの画像信号がフレームメモリ12から入力されたとき、保持していた画像信号をクラスコード生成部14に出力する。
【0032】
従って、フレームメモリ13からクラスコード生成部14に入力される画像信号は、フレームメモリ12からクラスコード生成部14に入力される画像信号の1フレーム前のものとなる。以下、フレームメモリ12からクラスコード生成部14に入力される1フレーム分の画像信号の画像を、対象フレームFcと記述する。また、フレームメモリ13からクラスコード生成部14に入力される、対象フレームFcの1フレーム前の画像信号の画像を、参照フレームFrと記述する。
【0033】
クラスコード生成部14は、対象フレームFcの各画素に対して空間的な特徴を示すクラスコードを生成して、動きベクトル演算部16に出力する。具体的には、対象フレームFcの全ての画素を、順次、注目画素に設定し、注目画素を中心とする所定サイズのクラスコード用タップを決定して、クラスコード用タップに含まれる複数の画素の画素値を、1ビットADRC(Adaptive Dynamic Range Coding:適応的量子化)により、それぞれ0また1に量子化して、所定のビット数のクラスコードを生成する。なお、クラスコードを生成する処理については、図6以降を参照して詳述する。
【0034】
また、クラスコード生成部14は、参照フレームFrの各画素に対して空間的な特徴を示すクラスコードを生成して、MEメモリ15に出力する。ただし、参照フレームFrは、1回前のタイミングにおいて対象フレームFcであったものであるので、そのクラスコードは既に1回前に生成されている。よって、1回前のタイミングにおいて対象フレームFcの各画素に対して生成されたクラスコードを保持するようにして、今回の参照フレームFrの各画素に対するクラスコードとして流用するようにしてもよい。
【0035】
MEメモリ15は、クラスコード生成部14から入力される参照フレームFrの各画素に対するクラスコードを、クラスコードに各画素の座標を対応付けて記憶する。
【0036】
図5は、MEメモリ15の構造を示している。MEメモリ15は、特徴量アドレス0乃至aと、フラグアドレス0乃至bによって示される(a+1)×(b+1)個のセルにより構成される。以下、例えば、特徴量アドレス1、フラグアドレス2のセルをセル(1,2)と記述する。
【0037】
特徴量アドレスは、クラスコード生成部14によって生成されるクラスコードに対応する。例えば、クラスコードが7ビットである場合、特徴量アドレスの最大値a=27となり、クラスコードが9ビットである場合、特徴量アドレスの最大値a=29となる。
【0038】
特徴量アドレス0のフラグアドレス1以降のセルには、クラスコード生成部14によってクラスコード0が生成された参照フレームFrの画素の座標がラスタ順に格納される。特徴量アドレス0のフラグアドレス0のセルには、クラスコード0の画素の座標が格納されている、特徴量アドレス0のフラグアドレス1以降のセルの数が格納される。例えば、参照フレームFrの画素のうち、3画素に対してクラスコード0が生成された場合、セル(0,1)、セル(0,2)、セル(0,3)に、3画素それぞれの座標が格納され、セル(0,0)に、3が格納される。
【0039】
特徴量アドレス1のフラグアドレス1以降のセルには、クラスコード生成部14によってクラスコード1が生成された参照フレームFrの画素の座標がラスタ順に格納される。特徴量アドレス1のフラグアドレス0のセルには、クラスコード1の画素の座標が格納されている、特徴量アドレス0のフラグアドレス1以降のセルの数が格納される。例えば、参照フレームFrの画素のうち、10画素に対してクラスコード1が生成された場合、セル(1,1)、・・・、セル(1,10)に、10画素それぞれの座標が格納され、セル(1,0)には、10が格納される。特徴量アドレス2以降のセルについても同様である。
【0040】
図4に戻る。動きベクトル演算部16は、対象フレームFcの各画素について、同じクラスコードを有する参照フレームFrの画素の座標を、MEメモリ15から検索し、検索された画素のうち、注目画素の座標に最も距離が近い座標の画素を、注目画素に対応する画素に決定して、注目画素の動きベクトルを算出する。
【0041】
なお、MEメモリ15の構造、および動きベクトル演算部16の処理の詳細については、本出願人が特願2002−222044号として既に提案済である。
【0042】
次に、クラスコード生成部4による第1のクラスコード生成処理について、図6のフローチャートを参照して説明する。この処理は、対象フレームFcの各画素が、順次、注目画素に設定されて、注目画素に対して実行される。
【0043】
ステップS11において、クラスコード生成部14は、注目画素を中心とする所定サイズのクラスコード用タップを設定し、クラスコード用タップに含まれる複数の画素の画素値を取得する。以下においては、図7に示すように、クラスコード用タップのサイズを3×3画素とし、左上の画素を先頭に右下の画素までの画素値をそれぞれP1乃至P9として説明を継続する。
【0044】
ステップS12において、クラスコード生成部14は、画素値P1乃至P9の最大値PMAXと最小値PMINを判定する。ステップS13において、クラスコード生成部14は、画素値P1乃至P9のダイナミックレンジDR(=|最大値PMAX−最小値PMIN|)を算出する。ステップS14において、クラスコード生成部14は、次式(2)のように、画素値P1乃至P9の最小値PMINに、ダイナミックレンジDR/2を加算して閾値Thを決定する。
Th=PMIN+DR/2 ・・・(2)
【0045】
ステップS15において、クラスコード生成部14は、画素値P1乃至P9のうち、閾値Thに最も近い所定の個数(例えば、2個)の画素値を除外する。ステップS16において、クラスコード生成部14は、画素値P1乃至P9のうちの残った7画素を、それぞれ閾値Thと比較し、閾値Thよりも大きい場合には1に量子化し、閾値Thよりも小さい場合には0に量子化して、番号順に並べた7ビットを注目画素のクラスコードとして生成する。
【0046】
例えば、クラスコード用タップに含まれる9画素の画素値P1乃至P9が図8に示すような状態である場合、閾値Thに最も近い画素値P6と画素値P8が除外され、7ビットのクラスコード1010011が生成される。
【0047】
また例えば、クラスコード用タップに含まれる9画素の画素値P1乃至P9が図9に示すような状態である場合、閾値Thに最も近い画素値P5と画素値P6が除外され、7ビットのクラスコード1010101が生成される。
【0048】
なお、閾値Thに近い所定の個数の画素値を除外する代わりに、閾値Thに近い所定の個数の画素値を、それぞれ、0に量子化した場合の9ビットのクラスコードと、1に量子化した場合の9ビットのクラスコードと生成するようにしてもよい。
【0049】
すなわち、例えば、クラスコード用タップに含まれる9画素の画素値P1乃至P9が図10に示すような状態である場合、閾値Thに最も近い2個の画素値P6と画素値P8を、それぞれ、0に量子化した場合と、1に量子化した場合の4種類の9ビットのクラスコード101000101、101000111、101001101、101001111を、注目画素に対応するクラスコードとして生成するようにしてもよい。
【0050】
また、閾値Thに近い所定の個数の画素値に対して、上述したような処理を施すことの代わりに、閾値Thを中心とする所定の範囲(±Δ)に含まれる全ての画素値に対して、上述したような処理を施すようにしてもよい。
【0051】
例えば、クラスコード用タップに含まれる9画素の画素値P1乃至P9が図11に示すような状態である場合、閾値Thを中心とする所定の範囲(±Δ)に含まれる画素値P6と画素値P8を、それぞれ、0に量子化した場合と、1に量子化した場合の4種類の9ビットのクラスコード101000111、101001111、111000111、111001111を生成するようにしてもよい。
【0052】
あるいは、閾値Thを中心とする所定の範囲(±Δ)に含まれる画素値P6と画素値P8を除外して、7ビットのクラスコードを生成するようにしてもよい。
【0053】
このように、クラスコード用タップに含まれる全画素のうち、閾値Thの近傍の画素値に対して、量子化の対象から除外するか、あるいは、0に量子化した場合のクラスコードと、1に量子化した場合のクラスコードを生成するようにしたことにより、閾値Thの近傍の画素値がノイズなどに影響されて変動したとしても、クラスコード内にビットの反転が発生することを抑止することができる。したがって、クラスコードのロバスト性を向上させることができる。
【0054】
なお、クラスコード用タップを構成する画素の数、およびクラスコードのビット数は、上述した例に限るものではなく、任意である。以上で、第1のクラスコード生成処理の説明を終了する。
【0055】
次に、上述した第1のクラスコード生成処理に代えることができる、本発明の主眼である第2のクラスコード生成処理について、図12のフローチャートを参照して説明する。この処理は、対象フレームFcの各画素が、順次、注目画素に設定されて、注目画素に対して実行される。
【0056】
ステップS21において、クラスコード生成部14は、注目画素を中心とする所定サイズのクラスコード用ブロックを設定し、クラスコード用ブロックに含まれる複数の画素の画素値を取得する。以下においては、図13に示すように、クラスコード用ブロックのサイズを3×3画素とし、左上の画素を先頭に右下の画素までの画素値をそれぞれP1乃至P9として説明を継続する。
【0057】
ステップS22において、クラスコード生成部14は、クラスコード用ブロックに含まれる画素値P1乃至P9のうち、所定の個数(以下、例えば7個とする)の画素値を用いた複数のクラスコード用タップ候補を生成する。ここで生成されるクラスコード用タップ候補のパターンは、予め設定されている。図14は、生成される複数のクラスコード用タップ候補の3例を示している。なお、図14のクラスコード用タップ候補上の矢印は、画素値を量子化して並べ、7ビットのクラスコードを生成するときの並び順を示している。
【0058】
ステップS23において、クラスコード生成部14は、いずれのクラスコード用タップ候補が最もクラスコード用タップに適しているかを判断するために、各クラスコード用タップ候補に対して評価値を演算する。
【0059】
各クラスコード用タップ候補の評価値を演算する処理について、図15のフローチャートを参照して説明する。ステップS31において、クラスコード生成部14は、クラスコード用タップ候補に含まれる7画素の画素値のうちの最大値PMAXと最小値PMINを検出する。ステップS32において、クラスコード生成部14は、クラスコード用タップ候補に含まれる7画素の画素値のダイナミックレンジDR(=|最大値PMAX−最小値PMIN|)を算出する。
【0060】
ステップS33において、クラスコード生成部14は、式(2)を用いて閾値Thを決定する。
【0061】
ステップS34において、クラスコード生成部14は、当該クラスコード用タップ候補の評価値として、クラスコード用タップ候補に含まれる7画素の画素値と閾値Thとの差の総和を演算する。
【0062】
例えば、図16に示すような画素値を有するクラスコード用タップ候補1(図14A)の評価値は、次式(3)のように演算される。
ただし、Th1は、クラスコード用タップ候補1に含まれる7画素の画素値に基づいて算出された閾値である。
【0063】
また、例えば、図17に示すような画素値を有するクラスコード用タップ候補2(図14B)の評価値は、次式(4)のように演算される。
ただし、Th2は、クラスコード用タップ候補2に含まれる7画素の画素値に基づいて算出された閾値である。
【0064】
以上で、各クラスコード用タップ候補の評価値を演算する処理の説明を終了する。処理は図12のステップS24に戻る。
【0065】
ステップS24において、クラスコード生成部14は、複数のクラスコード用タップ候補のうち、ステップS23の処理で演算した評価値が最も大きいもの(すなわち、閾値Thを中心とする各画素値の分散が大きいもの)を、クラスコード用タップに決定する。
【0066】
ステップS25において、クラスコード生成部14は、ステップS24で決定されたクラスコード用タップに含まれる7画素の画素値を、それぞれ、1ビットADRCにより、0または1に量子化して、7ビットのクラスコードを生成する。
【0067】
例えば、ステップS24の処理で、図16に示された画素値を有する7画素からなるクラスコード用タップ候補1がクラスコード用タップに決定された場合、7ビットのクラスコード1001100が生成される。また、例えば、ステップS24の処理で、図17に示された画素値を有する7画素からなるクラスコード用タップ候補2が、クラスコード用タップに決定された場合、7ビットのクラスコード1001100が生成される。
【0068】
このように、複数のクラスコード用タップ候補のうち、評価値が最も大きいもの(すなわち、閾値Thを中心とする各画素値の分散が大きいもの)を、クラスコード用タップに決定し、クラスコードを生成するようにしたことにより、クラスコード内にビットの反転が発生することを抑止することができる。したがって、クラスコードのロバスト性を向上させることができる。
【0069】
なお、クラスコード用ブロックを構成する画素の数、およびクラスコード用タップ候補を構成する画素の数は、任意であって、上述した例の他、例えば、クラスコード用ブロックを5×5画素で構成し、クラスコード用タップ候補を9画素で構成するようにしてもよい。以上で、第2のクラスコード生成処理の説明を終了する。
【0070】
以上説明したように、本実施の形態によれば、クラスコード生成部14は、対象フレームFcおよび参照フレームFrの各画素に対し、1ビットADRCという容易な演算により、高いロバスト性を有するクラスコードを生成することができる。よって、対象フレームFcの画素と参照フレームFrの画素とを、高い精度でマッチングさせることができる。したがって、動きベクトルを精度良く検出することが可能となる。
【0071】
また、本発明は、画像を構成する画素の画素値の他、例えば、音声データなどの任意のデータに対してクラスコードを生成する場合に適用することが可能である。
【0072】
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば、図18に示すように構成される汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【0073】
このパーソナルコンピュータは、CPU(Central Processing Unit)31を内蔵している。CPU31にはバス34を介して、入出力インタフェース35が接続されている。バス34には、ROM(Read Only Memory)32およびRAM(Random Access Memory)33が接続されている。
【0074】
入出力インタフェース35には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部36、処理結果の映像を表示するCRT(Cathode Ray Tube)またはLCD(Liquid Crystal Display)等よりなる出力部37、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部38、およびモデム、LAN(Local Area Network)アダプタなどよりなり、インタネットに代表されるネットワークを介した通信処理を実行する通信部39が接続されている。また、磁気ディスク41、光ディスク42、光磁気ディスク43、および半導体メモリ44などの記録媒体に対してデータを読み書きするドライブ40が接続されている。
【0075】
CPU31に上述した一連の処理を実行させるプログラムは、磁気ディスク41(フレキシブルディスクを含む)、光ディスク42(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク43(MD(Mini Disc)を含む)、もしくは半導体メモリ44に格納された状態でパーソナルコンピュータに供給され、ドライブ40によって読み出されて記憶部38に内蔵されるハードディスクドライブにインストールされている。記憶部38にインストールされているプログラムは、入力部36に入力されるユーザからのコマンドに対応するCPU31の指令によって、記憶部38からRAM33にロードされて実行される。
【0076】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0077】
【発明の効果】
以上のように、本発明によれば、僅かな演算量のみで画像間のマッチングを行うことができる。また、本発明によれば、動きベクトル等を精度良く検出することが可能となる。
【図面の簡単な説明】
【図1】従来の動きベクトル検出装置の構成例を示すブロック図である。
【図2】対象フレームFcと参照フレームFrの対応関係を示す図である。
【図3】ブロックマッチングアルゴリズムを説明するフローチャートである。
【図4】本発明の一実施の形態である動きベクトル検出装置の構成例を示すブロック図である。
【図5】図4のMEメモリの構造を示す図である。
【図6】図4のクラスコード生成部による第1のクラスコード生成処理を説明するフローチャートである。
【図7】クラスコード用タップの一例を示す図である。
【図8】第1のクラスコード生成処理を説明するための図である。
【図9】第1のクラスコード生成処理を説明するための図である。
【図10】第1のクラスコード生成処理の変形例を説明するための図である。
【図11】第1のクラスコード生成処理の変形例を説明するための図である。
【図12】図4のクラスコード生成部による第2のクラスコード生成処理を説明するフローチャートである。
【図13】クラスコード用ブロックの一例を示す図である。
【図14】クラスコード用タップ候補の例を示す図である。
【図15】図12のステップS23における評価値演算処理を説明するフローチャートである。
【図16】第2のクラスコード生成処理を説明するための図である。
【図17】第2のクラスコード生成処理を説明するための図である。
【図18】汎用のパーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
11 動きベクトル検出装置, 12,13 フレームメモリ, 14 クラスコード生成部, 15 MEメモリ, 16 動きベクトル演算部, 31 CPU, 41 磁気ディスク, 42 光ディスク, 43 光磁気ディスク,44 半導体メモリ[0001]
BACKGROUND OF THE INVENTION
The present inventionimageRegarding data processing apparatus and method, recording medium, and program, for example, suitable for use when matching pixels on consecutive images and detecting a motion vector based on the result of matchingimageThe present invention relates to a data processing apparatus and method, a recording medium, and a program.
[0002]
[Prior art]
For example, in a process of compressing and encoding an image signal such as an MPEG2 (Moving Picture Experts Group) method, an encoding process based on a correlation between adjacent frames, so-called motion compensation inter-frame prediction, is used. In motion compensation inter-frame prediction, it is necessary to detect a motion vector for each pixel unit or pixel block unit of a predetermined size between adjacent frames (one is described as a current frame and the other as a reference frame).
[0003]
Conventionally, a method called a block matching algorithm is used as a method for detecting a motion vector (see, for example, Patent Document 1).
[0004]
FIG. 1 shows a configuration example of a motion vector detection apparatus that detects a motion vector according to a block matching algorithm. The motion
[0005]
The
[0006]
Accordingly, the image signal of two frames before and after is input to the detection unit 4. Hereinafter, an image of an image signal for one frame input from the
[0007]
The detection unit 4 calculates a motion vector in the target frame Fc according to a block matching algorithm. The block matching algorithm will be described with reference to the correspondence diagram between the target frame Fc and the reference frame Fr shown in FIG. 2 and the flowchart shown in FIG.
[0008]
In the block matching algorithm, all the pixels in the target frame Fc are sequentially set as the target pixel, and a reference block having a predetermined size (L × L pixel) centered on the target pixel and the search area SR of the reference frame Fr. The difference absolute value sum of the pixel values of the corresponding pixel pair with the reference block (same size as the base block) moved in is calculated according to the following equation (1).
ΣiΣj= | Fc (i, j) -Frn (i, j) | (1)
[0009]
Where Fc (i, j) is the pixel value of the pixel of the base block, Frn (i, j) is the pixel value of the pixel of the reference block with the identification number n, and ΣiIs the sum operation when i is incremented by 1 from 1 to L, ΣjMeans a sum operation when j is incremented by 1 from 1 to L.
[0010]
Then, a difference vector between the center coordinates of the reference block and the coordinates of the target pixel when the sum of absolute differences of the pixel values of the corresponding pixel pairs of the base block and the reference block is minimized is calculated as a motion vector.
[0011]
Specifically, the following processing is executed for the target pixel of the target frame Fc. In step S <b> 1, the detection unit 4 sets a search area SR having a size larger than that of the reference block around the same coordinates as the coordinates (x, y) of the target pixel of the target frame Fc in the reference frame Fc.
[0012]
In step S2, the detection unit 4 initializes a variable min for storing the minimum value of the sum of absolute differences to the maximum value. For example, when the pixel value of one pixel is 8 bits and the size of the reference block is 4 × 4 pixels, the variable min is 4096 (= 28X16).
[0013]
In step S3, the detection unit 4 initializes the identification number n of the reference block to be moved within the search area SR to 1. In step S4, the detection unit 4 initializes a variable sum for storing a calculation result of the sum of absolute differences to zero.
[0014]
In step S5, the detection unit 4 calculates the sum of absolute differences of the pixels of the pixel pair located at the same location of the reference block of the target frame Fc and the reference block of the identification number n in the search area SR set in the reference frame Fr. Is substituted into the variable sum. In step S6, the detection unit 4 compares the variable sum that is the calculation result of step S5 with the variable min, and determines whether or not the variable sum is smaller than the variable min. If it is determined that the variable sum is smaller than the variable min, the process proceeds to step S7.
[0015]
In step S7, the detection unit 4 replaces the variable min with the variable sum. Further, the detection unit 4 stores the identification number n of the current reference block as a motion vector number.
[0016]
In step S8, the detection unit 4 determines whether or not the reference block identification number n is the maximum value, that is, whether or not the reference block has been moved to the entire search area SR. If it is determined that the identification number n of the reference block is not the maximum value, the process proceeds to step S9. In step S9, the detection unit 4 increments the identification number n of the reference block by 1, returns to the process of step S4, and repeats the subsequent processes.
[0017]
If it is determined in step S6 that the variable sum is not smaller than the variable min, the process of step S7 is skipped.
[0018]
Thereafter, when it is determined in step S8 that the reference block identification number n is not the maximum value, that is, when the reference block has been moved to the entire search area SR, the process proceeds to step S10.
[0019]
In step S10, the detection unit 4 uses the difference vector between the center coordinates of the reference block corresponding to the identification number n stored as the motion vector number and the coordinates (x, y) of the target pixel of the target frame Fc. This is calculated as the motion vector of the target pixel of the frame Fc. This is the end of the description of the block matching algorithm.
[0020]
[Patent Document 1]
Japanese Patent No. 3277417
[0021]
[Problems to be solved by the invention]
The block matching algorithm described above has a problem that the amount of calculation of the sum of absolute differences of the pixels of the pixel pair in step S5 is very large, and most of the image compression processing time is spent on this calculation. there were.
[0022]
The present invention has been made in view of such a situation,By using the class code generated for each pixel, it is less than the block matching algorithmCalculationamountTo match between imagesIn addition, the robustness of the generated class code is improved,Make it possible to detect motion vectors with high accuracyIs a thing.
[0023]
[Means for Solving the Problems]
Of the present inventionimageData processing equipmentClass code generation means for generating a class code indicating a spatial feature amount for a target pixel using each pixel of an image constituting the moving image as a target pixel, using pixel values of the target pixel and pixels located in the vicinity thereof A storage unit for storing the generation result of the class code for each pixel of the image having a plurality of coordinate storage units each having all the class codes as addresses, and the coordinates of each pixel corresponding to the corresponding class code A storage unit that stores in the coordinate storage unit having the address as the address, a class code of the pixel of interest of the first image that constitutes the moving image, and a second image that is stored in the storage unit and that is before and after the first image Detection means for detecting a motion vector of the target pixel of the first image based on a comparison result with the generation result of the class code for each pixel of A plurality of pixels arranged in a predetermined positionA plurality ofClass code tapA setting means for setting candidates;SettingDefinedTap for each class codeFor candidates,Class code tapMultiple candidatesPixel value of the pixelComputing means for computing an evaluation value indicating the degree of dispersion ofPerformanceBased on the calculated evaluation value,Class code tap candidate with maximum degree of dispersion of pixel values of multiple pixelsA decision means to decide;DecisionDefinedClass code tapMake up multiple1 bit for each pixel value of a pixelCodingBy, AttentionPixelAgainstThe same number of bits as the number of pixels constituting the class code tapGenerating means for generating class code.
[0024]
The computing means isSettingEach setClass code tapFor candidates,Class code tapThe threshold value is calculated by adding 1/2 of the dynamic range of the pixel values of the plurality of pixels to the minimum value of the pixel values of the plurality of pixels constituting the candidate.And tap for class codeMultiple candidatesEach pixel value of the pixel and calculatedThe sum of differences from the threshold is used as the evaluation value.CalculationTo be able to.
[0026]
Of the present inventionPictureThe image data processing method isA class code generation step of generating a class code indicating a spatial feature amount of the target pixel by using each pixel of the image constituting the moving image as a target pixel, using pixel values of the target pixel and a pixel located in the vicinity thereof; A plurality of coordinate storage units each having all class codes as addresses, and storing the coordinates of each pixel of the image in the coordinate storage unit having the corresponding class code as an address, for each pixel of the image Each of the storage step for storing the generation result of the class code, the class code of the target pixel of the first image constituting the moving image, and the second image before and after the first image stored in the storage unit Detecting the motion vector of the target pixel of the first image based on the comparison result with the generation result of the class code for the pixel. A plurality of pixels arranged in a predetermined position in the vicinity of the pixelA plurality ofClass code tapA setting step for setting candidates,SettingDefinedTap for each class codeFor candidates,Class code tapMultiple candidatesPixel value of the pixelA calculation step for calculating an evaluation value indicating the degree of dispersion ofPerformanceBased on the calculated evaluation value,Class code tap candidate with maximum degree of dispersion of pixel values of multiple pixelsA decision step to decide;DecisionDefinedClass code tapMake up multiple1 bit for each pixel value of a pixelCodingBy, AttentionPixelAgainstThe same number of bits as the number of pixels constituting the class code tapGenerating step for generating class code.
[0027]
Recording medium of the present inventionbodyIsA class code generation step of generating a class code indicating a spatial feature amount of the target pixel by using each pixel of the image constituting the moving image as a target pixel, using pixel values of the target pixel and a pixel located in the vicinity thereof; A plurality of coordinate storage units each having all class codes as addresses, and storing the coordinates of each pixel of the image in the coordinate storage unit having the corresponding class code as an address, for each pixel of the image Each of the storage step for storing the generation result of the class code, the class code of the target pixel of the first image constituting the moving image, and the second image before and after the first image stored in the storage unit Detecting the motion vector of the target pixel of the first image based on the comparison result with the generation result of the class code for the pixel. A plurality of pixels arranged in a predetermined position in the vicinity of the pixelA plurality ofClass code tapA setting step for setting candidates,SettingDefinedTap for each class codeFor candidates,Class code tapMultiple candidatesPixel value of the pixelA calculation step for calculating an evaluation value indicating a degree of dispersion ofPerformanceBased on the calculated evaluation value,Class code tap candidate with maximum degree of dispersion of pixel values of multiple pixelsA decision step to decide;DecisionDefinedClass code tapMake up multiple1 bit for each pixel value of a pixelCodingBy, AttentionPixelAgainstThe same number of bits as the number of pixels constituting the class code tapGenerating step for generating class codeLet the computer execute the processThe program is recorded.
[0028]
The program of the present inventionA class code generation step of generating a class code indicating a spatial feature amount of the target pixel by using each pixel of the image constituting the moving image as a target pixel, using pixel values of the target pixel and a pixel located in the vicinity thereof; A plurality of coordinate storage units each having all class codes as addresses, and storing the coordinates of each pixel of the image in the coordinate storage unit having the corresponding class code as an address, for each pixel of the image Each of the storage step for storing the generation result of the class code, the class code of the target pixel of the first image constituting the moving image, and the second image before and after the first image stored in the storage unit Detecting the motion vector of the target pixel of the first image based on the comparison result with the generation result of the class code for the pixel. A plurality of pixels arranged in a predetermined position in the vicinity of the pixelA plurality ofClass code tapA setting step for setting candidates,SettingDefinedTap for each class codeFor candidates,Class code tapMultiple candidatesPixel value of the pixelA calculation step for calculating an evaluation value indicating the degree of dispersion ofPerformanceBased on the calculated evaluation value,Class code tap candidate with maximum degree of dispersion of pixel values of multiple pixelsA decision step to decide;DecisionDefinedClass code tapMake up multiple1 bit for each pixel value of a pixelCodingBy, AttentionPixelAgainstThe same number of bits as the number of pixels constituting the class code tapGenerating step for generating class codeHave the computer execute the process.
[0029]
Main departureLightInA plurality of pixels arranged at predetermined positions in the vicinity of the target pixelA plurality ofClass code tapCandidate is set and setTap for each class codeFor candidates,Class code tapMultiple candidatesPixel value of the pixelAn evaluation value indicating the degree of variance of the is calculated, and based on the calculated evaluation value,Class code tap candidate with maximum degree of dispersion of pixel values of multiple pixelsIt is determined. Furthermore, determinedClass code tapMake up multipleEach pixel value of a pixel is 1 bitCodingBy being, AttentionPixelAgainstThe same number of bits as the number of pixels constituting the class code tapClass code is generated.
[0030]
DETAILED DESCRIPTION OF THE INVENTION
A configuration example of a motion vector detection apparatus to which the present invention is applied will be described with reference to FIG. The motion vector detection device 11 includes
[0031]
The
[0032]
Therefore, the image signal input from the
[0033]
The class
[0034]
Further, the class
[0035]
The
[0036]
FIG. 5 shows the structure of the
[0037]
The feature amount address corresponds to the class code generated by the class
[0038]
In the cells after the
[0039]
In the cells after the
[0040]
Returning to FIG. The motion
[0041]
The applicant has already proposed the structure of the
[0042]
next,TheThe first class code generation process by the lath code generation unit 4 will be described with reference to the flowchart of FIG. This process is executed for the target pixel, with each pixel of the target frame Fc being sequentially set as the target pixel.
[0043]
In step S11, the class
[0044]
In step S12, the class
Th = PMIN+ DR / 2 (2)
[0045]
In step S15, the class
[0046]
For example, when the pixel values P1 to P9 of nine pixels included in the class code tap are in the state shown in FIG. 8, the pixel value P6 and the pixel value P8 closest to the threshold Th are excluded, and the 7-bit class code 1010011 is generated.
[0047]
Further, for example, when the pixel values P1 to P9 of 9 pixels included in the class code tap are in the state as shown in FIG. 9, the pixel values P5 and P6 closest to the threshold Th are excluded, and the 7-bit class Code 1010101 is generated.
[0048]
It should be noted that instead of excluding a predetermined number of pixel values close to the threshold Th, a predetermined number of pixel values close to the threshold Th are each quantized to a 9-bit class code when quantized to 0 and 1 In this case, a 9-bit class code may be generated.
[0049]
That is, for example, when the pixel values P1 to P9 of the nine pixels included in the class code tap are in the state shown in FIG. 10, the two pixel values P6 and P8 that are closest to the threshold Th are respectively Four types of 9-bit class codes 101000101, 101000111, 10100101, and 101001111 when quantized to 0 and quantized to 1 may be generated as class codes corresponding to the target pixel.
[0050]
Further, instead of performing the above-described processing on a predetermined number of pixel values close to the threshold Th, all pixel values included in a predetermined range (± Δ) centered on the threshold Th are used. Thus, the processing as described above may be performed.
[0051]
For example, when the pixel values P1 to P9 of the nine pixels included in the class code tap are in the state shown in FIG. 11, the pixel value P6 and the pixels included in a predetermined range (± Δ) centered on the threshold Th Four types of 9-bit class codes 101000111, 101001111, 111000111, and 111001111 may be generated when the value P8 is quantized to 0 and when it is quantized to 1, respectively.
[0052]
Alternatively, a 7-bit class code may be generated by excluding the pixel value P6 and the pixel value P8 included in a predetermined range (± Δ) centering on the threshold Th.
[0053]
In this way, among all the pixels included in the class code tap, the pixel values in the vicinity of the threshold Th are excluded from the quantization target, or the class code when quantized to 0 and 1 By generating a class code in the case of quantizing to, even if the pixel value near the threshold Th fluctuates due to noise or the like, the occurrence of bit inversion in the class code is suppressed. be able to. Therefore, the robustness of the class code can be improved.
[0054]
The number of pixels constituting the class code tap and the number of bits of the class code are not limited to the above-described example, and are arbitrary. This is the end of the description of the first class code generation process.
[0055]
Next, it can be replaced with the first class code generation process described above.The main point of the present inventionThe second class code generation process will be described with reference to the flowchart of FIG. This process is executed for the target pixel, with each pixel of the target frame Fc being sequentially set as the target pixel.
[0056]
In step S <b> 21, the class
[0057]
In step S22, the class
[0058]
In step S23, the class
[0059]
Processing for calculating the evaluation value of each class code tap candidate will be described with reference to the flowchart of FIG. In step S31, the class
[0060]
In step S <b> 33, the class
[0061]
In step S34, the class
[0062]
For example, the evaluation value of the class code tap candidate 1 (FIG. 14A) having pixel values as shown in FIG. 16 is calculated as in the following equation (3).
However, Th1 is a threshold value calculated based on the pixel value of 7 pixels included in the class
[0063]
Further, for example, the evaluation value of the class code tap candidate 2 (FIG. 14B) having the pixel value as shown in FIG. 17 is calculated as the following equation (4).
However, Th2 is a threshold value calculated based on the pixel value of 7 pixels included in the class
[0064]
Above, description of the process which calculates the evaluation value of each class code tap candidate is complete | finished. The process returns to step S24 in FIG.
[0065]
In step S24, the class
[0066]
In step S25, the class
[0067]
For example, when the class
[0068]
In this way, among the plurality of class code tap candidates, the one having the largest evaluation value (that is, the one having a large variance of the pixel values centered on the threshold Th) is determined as the class code tap, and the class code is selected. Is generated, it is possible to suppress the occurrence of bit inversion in the class code. Therefore, the robustness of the class code can be improved.
[0069]
The number of pixels constituting the class code block and the number of pixels constituting the class code tap candidate are arbitrary. In addition to the above example, for example, the class code block may be 5 × 5 pixels. The class code tap candidate may be configured by nine pixels. This is the end of the description of the second class code generation process.
[0070]
As described above, according to the present embodiment, the class
[0071]
Further, the present invention can be applied to a case where a class code is generated for arbitrary data such as audio data in addition to the pixel values of pixels constituting an image.
[0072]
By the way, the series of processes described above can be executed by hardware, but can also be executed by software. When a series of processing is executed by software, a program constituting the software may execute various functions by installing a computer incorporated in dedicated hardware or various programs. For example, it is installed from a recording medium in a general-purpose personal computer configured as shown in FIG.
[0073]
This personal computer includes a CPU (Central Processing Unit) 31. An input /
[0074]
The input /
[0075]
Programs for causing the
[0076]
In the present specification, the step of describing the program recorded in the recording medium is not limited to the processing performed in time series according to the described order, but is not necessarily performed in time series, either in parallel or individually. The process to be executed is also included.
[0077]
【The invention's effect】
As described above, according to the present invention, matching between images can be performed with only a small amount of calculation. Further, according to the present invention, it is possible to detect motion vectors and the like with high accuracy.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration example of a conventional motion vector detection device.
FIG. 2 is a diagram illustrating a correspondence relationship between a target frame Fc and a reference frame Fr.
FIG. 3 is a flowchart illustrating a block matching algorithm.
FIG. 4 is a block diagram illustrating a configuration example of a motion vector detection device according to an embodiment of the present invention.
FIG. 5 is a diagram showing a structure of the ME memory of FIG. 4;
6 is a flowchart illustrating first class code generation processing by a class code generation unit in FIG. 4; FIG.
FIG. 7 is a diagram illustrating an example of a class code tap.
FIG. 8 is a diagram for explaining first class code generation processing;
FIG. 9 is a diagram for explaining first class code generation processing;
FIG. 10 is a diagram for explaining a modification of the first class code generation process.
FIG. 11 is a diagram for explaining a modification of the first class code generation process;
12 is a flowchart for explaining second class code generation processing by the class code generation unit in FIG. 4; FIG.
FIG. 13 is a diagram illustrating an example of a class code block.
FIG. 14 is a diagram illustrating an example of class code tap candidates.
FIG. 15 is a flowchart illustrating an evaluation value calculation process in step S23 of FIG.
FIG. 16 is a diagram for describing second class code generation processing;
FIG. 17 is a diagram for explaining second class code generation processing;
FIG. 18 is a block diagram illustrating a configuration example of a general-purpose personal computer.
[Explanation of symbols]
11 motion vector detector, 12, 13 frame memory, 14 class code generator, 15 ME memory, 16 motion vector calculator, 31 CPU, 41 magnetic disk, 42 optical disk, 43 magneto-optical disk, 44 semiconductor memory
Claims (5)
全ての前記クラスコードをそれぞれアドレスとする複数の座標格納部を有し、前記画像の各画素に対する前記クラスコードの生成結果を記憶するための記憶部であって、前記各画素の座標を、対応する前記クラスコードをアドレスとする前記座標格納部に記憶する記憶部と、
前記動画像を構成する第1の画像の注目画素のクラスコードと、前記記憶部に記憶されている、前記第1の画像と前後する第2の画像の各画素に対する前記クラスコードの生成結果との比較結果に基づき、前記第1の画像の注目画素の動きベクトルを検出する検出手段とを備え、
前記クラスコード生成手段は、
前記注目画素の近傍の所定の位置に配置された複数の画素からなる複数のクラスコード用タップ候補を設定する設定手段と、
設定された各クラスコード用タップ候補に対して、前記クラスコード用タップ候補を構成する複数の画素の画素値の分散の程度を示す評価値を演算する演算手段と、
演算された前記評価値に基づき、構成する複数の画素の画素値の分散の程度が最大の前記クラスコード用タップ候補をクラスコード用タップに決定する決定手段と、
決定された前記クラスコード用タップを構成する複数の画素の各画素値を1ビット符号化することにより、前記注目画素に対する前記クラスコード用タップを構成する画素数と同じビット数の前記クラスコードを生成する生成手段とを含む
画像データ処理装置。 Class code generation that uses each pixel of an image constituting a moving image as a pixel of interest, and generates a class code indicating a spatial feature amount for the pixel of interest using pixel values of the pixel of interest and pixels located in the vicinity thereof Means,
A plurality of coordinate storage units each having all the class codes as addresses, and a storage unit for storing the generation result of the class code for each pixel of the image, wherein the coordinates of each pixel are associated with each other; A storage unit for storing the class code as an address in the coordinate storage unit;
A class code of a target pixel of the first image constituting the moving image, and a generation result of the class code for each pixel of the second image before and after the first image stored in the storage unit; Detecting means for detecting a motion vector of a target pixel of the first image based on the comparison result of
The class code generation means includes
Setting means for setting a plurality of class code tap candidates composed of a plurality of pixels arranged at predetermined positions in the vicinity of the target pixel ;
Against set to each class code tap candidates, calculating means for calculating an evaluation value indicating the degree of variance of pixel values of a plurality of pixels constituting the tap candidates for the class code,
Based on the computation by said evaluation value, and determination means for the degree of variance of pixel values of a plurality of pixels constituting determines the tap candidates for the largest of the class code to the tap class code,
By 1 bit coding each pixel value of a plurality of pixels constituting the decision has been the tap class code, the class code of the same number of bits as the number of pixels constituting the tap class code for the pixel of interest Generating means for generating
Image data processing device.
設定された各クラスコード用タップ候補に対して、前記クラスコード用タップ候補を構成する複数の画素の画素値の最小値に、前記複数の画素の画素値のダイナミックレンジの1/2を加算して閾値を算出し、
前記クラスコード用タップ候補を構成する複数の画素の各画素値と、算出した前記閾値との差の総和を、前記評価値として演算する
請求項1に記載の画像データ処理装置。The computing means is
Against set to each class code tap candidates, the minimum value of pixel values of a plurality of pixels constituting the tap candidates for the class code, adds 1/2 of the dynamic range of the pixel values of the plurality of pixels To calculate the threshold ,
Image data processing apparatus according to each pixel value of a plurality of pixels constituting the pre-Symbol tap candidates for the class code, the total sum of the difference between the calculated the threshold, in Claim 1, calculated as the evaluation value.
全ての前記クラスコードをそれぞれアドレスとする複数の座標格納部を有し、画像の各画素の座標を、対応する前記クラスコードをアドレスとする前記座標格納部に記憶する記憶部に、前記画像の各画素に対する前記クラスコードの生成結果を記憶する記憶ステップと、
前記動画像を構成する第1の画像の注目画素のクラスコードと、前記記憶部に記憶されている、前記第1の画像と前後する第2の画像の各画素に対する前記クラスコードの生成結果との比較結果に基づき、前記第1の画像の注目画素の動きベクトルを検出する検出ステップとを含み、
前記クラスコード生成ステップは、
前記注目画素の近傍の所定の位置に配置された複数の画素からなる複数のクラスコード用タップ候補を設定する設定ステップと、
設定された各クラスコード用タップ候補に対して、前記クラスコード用タップ候補を構成する複数の画素の画素値の分散の程度を示す評価値を演算する演算ステップと、
演算された前記評価値に基づき、構成する複数の画素の画素値の分散の程度が最大の 前記クラスコード用タップ候補をクラスコード用タップに決定する決定ステップと、
決定された前記クラスコード用タップを構成する複数の画素の各画素値を1ビット符号化することにより、前記注目画素に対する前記クラスコード用タップを構成する画素数と同じビット数の前記クラスコードを生成する生成ステップとを含む
画像データ処理方法。 Class code generation that uses each pixel of an image constituting a moving image as a pixel of interest, and generates a class code indicating a spatial feature amount for the pixel of interest using pixel values of the pixel of interest and pixels located in the vicinity thereof Steps,
A plurality of coordinate storage units each having all the class codes as addresses are provided, and the coordinates of each pixel of the image are stored in the coordinate storage unit having the corresponding class code as an address. A storage step of storing the generation result of the class code for each pixel;
A class code of a target pixel of the first image constituting the moving image, and a generation result of the class code for each pixel of the second image before and after the first image stored in the storage unit; Detecting a motion vector of the target pixel of the first image based on the comparison result of
The class code generation step includes:
A setting step of setting a plurality of class code tap candidates including a plurality of pixels arranged at predetermined positions in the vicinity of the target pixel ;
Against set to each class code tap candidates, the calculation step of calculating an evaluation value indicating the degree of variance of pixel values of a plurality of pixels constituting the tap candidates for the class code,
Based on the computation by said evaluation value, the determination step of the degree of variance of pixel values of a plurality of pixels constituting determines the tap candidates for the largest of the class code to the tap class code,
By 1 bit coding each pixel value of a plurality of pixels constituting the decision has been the tap class code, the class code of the same number of bits as the number of pixels constituting the tap class code for the pixel of interest Generating step
Image data processing method.
全ての前記クラスコードをそれぞれアドレスとする複数の座標格納部を有し、画像の各画素の座標を、対応する前記クラスコードをアドレスとする前記座標格納部に記憶する記憶部に、前記画像の各画素に対する前記クラスコードの生成結果を記憶する記憶ステップと、
前記動画像を構成する第1の画像の注目画素のクラスコードと、前記記憶部に記憶されている、前記第1の画像と前後する第2の画像の各画素に対する前記クラスコードの生成結果との比較結果に基づき、前記第1の画像の注目画素の動きベクトルを検出する検出ステップとを含み、
前記クラスコード生成ステップは、
前記注目画素の近傍の所定の位置に配置された複数の画素からなる複数のクラスコード用タップ候補を設定する設定ステップと、
設定された各クラスコード用タップ候補に対して、前記クラスコード用タップ候補を構成する複数の画素の画素値の分散の程度を示す評価値を演算する演算ステップと、
演算された前記評価値に基づき、構成する複数の画素の画素値の分散の程度が最大の前記クラスコード用タップ候補をクラスコード用タップに決定する決定ステップと、
決定された前記クラスコード用タップを構成する複数の画素の各画素値を1ビット符号化することにより、前記注目画素に対する前記クラスコード用タップを構成する画素数と同じビット数の前記クラスコードを生成する生成ステップとを含む
処理をコンピュータに実行させるプログラムが記録されている記録媒体。 Class code generation that uses each pixel of an image constituting a moving image as a pixel of interest, and generates a class code indicating a spatial feature amount for the pixel of interest using pixel values of the pixel of interest and pixels located in the vicinity thereof Steps,
A plurality of coordinate storage units each having all the class codes as addresses are provided, and the coordinates of each pixel of the image are stored in the coordinate storage unit having the corresponding class code as an address. A storage step of storing the generation result of the class code for each pixel;
A class code of a target pixel of the first image constituting the moving image, and a generation result of the class code for each pixel of the second image before and after the first image stored in the storage unit; Detecting a motion vector of the target pixel of the first image based on the comparison result of
The class code generation step includes:
A setting step of setting a plurality of class code tap candidates including a plurality of pixels arranged at predetermined positions in the vicinity of the target pixel ;
Against set to each class code tap candidates, the calculation step of calculating an evaluation value indicating the degree of variance of pixel values of a plurality of pixels constituting the tap candidates for the class code,
Based on the computation by said evaluation value, the determination step of the degree of variance of pixel values of a plurality of pixels constituting determines the tap candidates for the largest of the class code to the tap class code,
By 1 bit coding each pixel value of a plurality of pixels constituting the decision has been the tap class code, the class code of the same number of bits as the number of pixels constituting the tap class code for the pixel of interest Generating step
A recording medium on which a program for causing a computer to execute processing is recorded.
全ての前記クラスコードをそれぞれアドレスとする複数の座標格納部を有し、画像の各画素の座標を、対応する前記クラスコードをアドレスとする前記座標格納部に記憶する記憶部に、前記画像の各画素に対する前記クラスコードの生成結果を記憶する記憶ステップと、
前記動画像を構成する第1の画像の注目画素のクラスコードと、前記記憶部に記憶されている、前記第1の画像と前後する第2の画像の各画素に対する前記クラスコードの生成結果との比較結果に基づき、前記第1の画像の注目画素の動きベクトルを検出する検出ステップとを含み、
前記クラスコード生成ステップは、
前記注目画素の近傍の所定の位置に配置された複数の画素からなる複数のクラスコード用タップ候補を設定する設定ステップと、
設定された各クラスコード用タップ候補に対して、前記クラスコード用タップ候補を構成する複数の画素の画素値の分散の程度を示す評価値を演算する演算ステップと、
演算された前記評価値に基づき、構成する複数の画素の画素値の分散の程度が最大の前記クラスコード用タップ候補をクラスコード用タップに決定する決定ステップと、
決定された前記クラスコード用タップを構成する複数の画素の各画素値を1ビット符号化することにより、前記注目画素に対する前記クラスコード用タップを構成する画素数と同じビット数の前記クラスコードを生成する生成ステップとを含む
処理をコンピュータに実行させるプログラム。 Class code generation that uses each pixel of an image constituting a moving image as a pixel of interest, and generates a class code indicating a spatial feature amount for the pixel of interest using pixel values of the pixel of interest and pixels located in the vicinity thereof Steps,
A plurality of coordinate storage units each having all the class codes as addresses are provided, and the coordinates of each pixel of the image are stored in the coordinate storage unit having the corresponding class code as an address. A storage step of storing the generation result of the class code for each pixel;
A class code of a target pixel of the first image constituting the moving image, and a generation result of the class code for each pixel of the second image before and after the first image stored in the storage unit; Detecting a motion vector of the target pixel of the first image based on the comparison result of
The class code generation step includes:
A setting step of setting a plurality of class code tap candidates including a plurality of pixels arranged at predetermined positions in the vicinity of the target pixel ;
Against set to each class code tap candidates, the calculation step of calculating an evaluation value indicating the degree of variance of pixel values of a plurality of pixels constituting the tap candidates for the class code,
Based on the computation by said evaluation value, the determination step of the degree of variance of pixel values of a plurality of pixels constituting determines the tap candidates for the largest of the class code to the tap class code,
By 1 bit coding each pixel value of a plurality of pixels constituting the decision has been the tap class code, the class code of the same number of bits as the number of pixels constituting the tap class code for the pixel of interest Generating step
A program that causes a computer to execute processing .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002295591A JP4129788B2 (en) | 2002-10-09 | 2002-10-09 | Image data processing apparatus and method, recording medium, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002295591A JP4129788B2 (en) | 2002-10-09 | 2002-10-09 | Image data processing apparatus and method, recording medium, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004134911A JP2004134911A (en) | 2004-04-30 |
JP4129788B2 true JP4129788B2 (en) | 2008-08-06 |
Family
ID=32285784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002295591A Expired - Fee Related JP4129788B2 (en) | 2002-10-09 | 2002-10-09 | Image data processing apparatus and method, recording medium, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4129788B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101977326B (en) * | 2010-11-22 | 2012-05-09 | 天柏宽带网络科技(北京)有限公司 | Stunt stream generation method based on MPEG (Moving Picture Experts Group)-2 transmission stream |
US10230956B2 (en) * | 2012-09-26 | 2019-03-12 | Integrated Device Technology, Inc. | Apparatuses and methods for optimizing rate-distortion of syntax elements |
US10277907B2 (en) | 2012-10-25 | 2019-04-30 | Integrated Device Technology, Inc. | Rate-distortion optimizers and optimization techniques including joint optimization of multiple color components |
CN110429878B (en) * | 2019-07-23 | 2021-07-27 | 浙江工业大学 | Double-active-disturbance-rejection control method for stepping motor type electro-mechanical converter |
-
2002
- 2002-10-09 JP JP2002295591A patent/JP4129788B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004134911A (en) | 2004-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5045320B2 (en) | Image processing apparatus, image processing method, and computer program | |
US20060285596A1 (en) | Motion-vector detecting device, motion-vector detecting method, and computer program | |
US20050276330A1 (en) | Method and apparatus for sub-pixel motion estimation which reduces bit precision | |
US9113170B2 (en) | Motion vector decision apparatus, motion vector decision method and computer readable storage medium | |
US20080002774A1 (en) | Motion vector search method and motion vector search apparatus | |
US20140212046A1 (en) | Bit depth reduction techniques for low complexity image patch matching | |
KR102263619B1 (en) | Signal analysis and generation of transient information | |
US6259737B1 (en) | Method and apparatus for fast motion estimation in video coding | |
JP2010114597A (en) | Motion vector detection apparatus, motion vector processing method and program | |
US8175160B1 (en) | System, method, and computer program product for refining motion vectors | |
JP4129788B2 (en) | Image data processing apparatus and method, recording medium, and program | |
US20070092005A1 (en) | Method and apparatus for encoding, method and apparatus for decoding, program, and storage medium | |
JP2010114596A (en) | Motion vector detection apparatus, motion vector processing method and program | |
JP2004348741A (en) | Image comparison method, computer readable storage medium for storing program for execution of the method, and device for execution of the method | |
US8098944B2 (en) | Image processing apparatus, method, storage medium, and program | |
US20030081675A1 (en) | Method and apparatus for motion estimation in a sequence of digital images | |
JP2012004616A (en) | Adaptive quantization method, adaptive quantization apparatus and adaptive quantization program | |
JP4144316B2 (en) | Image data processing apparatus and method, recording medium, and program | |
JP4239557B2 (en) | Image processing apparatus and method, recording medium, and program | |
JP4329331B2 (en) | Image processing apparatus and method, recording medium, and program | |
US10063880B2 (en) | Motion detecting apparatus, motion detecting method and program | |
US7800624B2 (en) | Memory device signal processing apparatus image signal processing apparatus and methods of the same | |
JP2009267726A (en) | Moving image encoding apparatus, recorder, moving image encoding method, moving image encoding program | |
JP3861325B2 (en) | Motion vector detection apparatus and detection method | |
KR20190001444A (en) | Motion prediction method for generating interpolation frame and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050817 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080222 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080403 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080428 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080511 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110530 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120530 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130530 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |