JP2009055291A - 動き検出回路 - Google Patents

動き検出回路 Download PDF

Info

Publication number
JP2009055291A
JP2009055291A JP2007219559A JP2007219559A JP2009055291A JP 2009055291 A JP2009055291 A JP 2009055291A JP 2007219559 A JP2007219559 A JP 2007219559A JP 2007219559 A JP2007219559 A JP 2007219559A JP 2009055291 A JP2009055291 A JP 2009055291A
Authority
JP
Japan
Prior art keywords
macroblock
encoded
buffer
moving image
stored
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
JP2007219559A
Other languages
English (en)
Inventor
Keitaro Ishida
圭太郎 石田
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2007219559A priority Critical patent/JP2009055291A/ja
Priority to US12/139,672 priority patent/US20090060048A1/en
Publication of JP2009055291A publication Critical patent/JP2009055291A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】マクロブロックを記憶するバッファの容量を削減して、動き検出を高速に行うことが出来る動き検出回路を提供する。
【解決手段】動き検出回路は、参照マクロブロックバッファに記憶されている参照マクロブロックのいずれか1つと第1の符号化マクロブロックバッファに記憶されている符号化マクロブロックとの間の第1差分絶対値和を算出してこれを更新し、参照マクロブロックバッファに記憶されている参照マクロブロックのいずれか1つと第2の符号化マクロブロックバッファに記憶されている符号化マクロブロックとの間の第2差分絶対値和を算出してこれを更新する。そして、第1及び第2差分絶対値和の更新値の符号化マクロブロック毎の最小値に対応する参照マクロブロックを予測マクロブロックとして検出する。
【選択図】図1

Description

本発明は、符号化対象の1つのフレーム中の符号化マクロブロックとの間の差分絶対値和が最小となる参照マクロブロックを予測マクロブロックとして検出する動き検出回路に関する。
放送やネットワークを介した動画像データの配信や動画像データを蓄積する場合等においては、動画像データの符号化が行われている。動画像データの符号化の方法としては、符号化対象フレームをマクロブロックに分割して、マクロブロック毎に参照フレームのマクロブロックとの差分を符号化する方法がある。この場合、符号化対象フレームのマクロブロック(符号化マクロブロック)との差分を算出する参照フレームのマクロブロック(参照マクロブロック)としては、符号化マクロブロックとの間の差分絶対値和が最小となる参照マクロブロックが選ばれる(例えば、特許文献1参照)。
符号化マクロブロックとの間の差分絶対値和が最小となる参照マクロブロックの検出を高速に行うために、パイプライン動作により差分絶対値和が最小となる参照マクロブロックの検出を行うことがある。符号化マクロブロックを記憶するバッファと、参照マクロブロックを記憶するバッファと、差分絶対値和を算出する演算回路の組を2つもち、各々の組で異なる符号化マクロブロックに対して差分絶対値和が最小となる参照マクロブロックの検出を行う。このようにパイプライン動作を行うことで、符号化マクロブロックとの間の差分絶対値和が最小となる参照マクロブロックの検出を高速に行うことが出来る。
特開2005−244844号公報
上記した如く装置においては、符号化マクロブロックを記憶するバッファと、参照マクロブロックを記憶するバッファと、差分絶対値和を算出する演算回路の組を2つもち、パイプライン動作を行っている。このような装置では、マクロブロックを記憶するバッファを複数もつため、マクロブロックを記憶するバッファの容量も多く必要になる。参照マクロブロックを記憶するバッファは、10ピクセル×10ピクセルの画像データを8つ記憶する必要がある。パイプライン動作を行うためには、参照マクロブロックを記憶するバッファが2個必要となる。それ故、1ピクセルの画像データを記憶するのに8ビットの記憶容量が必要な場合、参照マクロブロックを記憶するバッファには、合計で1600バイトの記憶容量が必要となる。
このようにパイプライン動作を行うためには、マクロブロックを記憶するバッファが多くの記憶容量を必要とするため、動き検出回路のために必要な基板上の面積が増大してしまう。また、バッファへの書き込み及び読み出しにより、消費電力が増大してしまう。
本発明は上記した点に鑑みてなされたものであり、マクロブロックを記憶するバッファの容量を削減して、符号化マクロブロックとの間の差分絶対値和が最小となる参照マクロブロックの検出を高速に行うことが出来る動き検出回路を提供することを目的とする。
本発明の動き検出回路は、符号化対象の1つのフレーム中の単位エリアの符号化マクロブロックの1つとの間の差分絶対値和が最小となる1つの参照マクロブロックを1つの予測マクロブロックとして検出する動き検出回路であって、各々が符号化マクロブロックを順次記憶する第1の符号化マクロブロックバッファ及び第2の符号化マクロブロックバッファと、符号化マクロブロックの動き検出の探索領域となる動画像データを記憶する参照動画像記憶手段と、符号化マクロブロックとの間で差分絶対値和を算出すべき参照マクロブロックを参照動画像記憶手段から抽出して記憶する参照マクロブロックバッファと、参照マクロブロックバッファに記憶されている参照マクロブロックのいずれか1つと第1の符号化マクロブロックバッファに記憶されている符号化マクロブロックとの間の第1差分絶対値和を算出してこれを更新する第1の差分絶対値和算出手段と、参照マクロブロックバッファに記憶されている参照マクロブロックのいずれか1つと第2の符号化マクロブロックバッファに記憶されている符号化マクロブロックとの間の第2差分絶対値和を算出してこれを更新する第2の差分絶対値和算出手段と、第1及び第2差分絶対値和の更新値の符号化マクロブロック毎の最小値に対応する参照マクロブロックを予測マクロブロックとして検出する検出手段と、を有することを特徴とする。
以下、本発明の実施例について図面を参照しつつ詳細に説明する。
図1は、本発明に係る動き検出回路の第1の実施例を示している。動き検出回路1は、バス7を介して接続している外部メモリ6に記憶されている動画像データの符号化を行う際に動き検出を行う。動き検出とは、符号化対象のフレーム中の単位エリアのマクロブロック(以下、符号化マクロブロックという)の各々に対して、差分絶対値和が最小になる参照マクロブロックを検出することである。参照マクロブロックとは、参照フレーム中のマクロブロックのことである。また、以下では差分絶対値和のことをコストという。
動き検出回路1は、符号化マクロブロックと参照マクロブロックとの間のコストを算出して、符号化マクロブロックとの間のコストが最小となった参照マクロブロックを、その符号化マクロブロックに対応する予測マクロブロックとして検出する。動き検出回路1は、参照フレームの動画像データを記憶する参照動画像記憶手段2と、符号化マクロブロックを記憶する第1符号化マクロブロックバッファ3A及び第2符号化マクロブロックバッファ3Bと、参照マクロブロックを記憶する参照マクロブロックバッファ4と、コストを算出する第1SAD演算回路5A及び第2SAD演算回路5Bから構成される。
参照動画像記憶手段2には、符号化マクロブロックの符号化対象フレーム上での座標と同じ座標を中心とする8個の参照マクロブロックが参照フレームから読み出されて記憶される。第1符号化マクロブロックバッファ3A及び第2符号化マクロブロックバッファ3Bの各々には、符号化マクロブロックが1つ記憶される。第1SAD演算回路5Aは、第1符号化マクロブロックバッファ3Aに記憶されている符号化マクロブロックと、参照マクロブロックバッファ4に記憶されている参照マクロブロックとの間のコストを算出する。第2SAD演算回路5Bは、第2符号化マクロブロックバッファ3Bに記憶されている符号化マクロブロックと、参照マクロブロックバッファ4に記憶されている参照マクロブロックとの間のコストを算出する。
参照マクロブロックバッファ4は、参照動画像記憶手段2から参照マクロブロックを読み出して記憶するものである。図2に参照マクロブロックバッファ4の構成を示す。参照マクロブロックバッファ4は、動画像データを記憶する動画像バッファ41A〜41Cと、セレクタ42A〜42Bと、制御回路43から構成される。動画像バッファ41A〜41Cの各々は、1つのブロックの周辺の動画像データ(10ピクセル×10ピクセル)を記憶することが出来る動画像レジスタを4つ有する。動画像バッファ41A〜41Cの各々は、制御回路43からの指令に従い、参照動画像記憶手段2から読み出した動画像データを記憶する。また、動画像バッファ41A〜41Cは、制御回路43からの指令に従い、記憶している動画像データを読み出して出力する。セレクタ42Aは、制御回路43からの指令に従い、動画像バッファ41A〜41Cのいずれかから出力される動画像データを選択して、第1SAD演算回路5Aに出力する。セレクタ42Bは、制御回路43からの指令に従い、動画像バッファ41A〜41Cのいずれかから出力される動画像データを選択して、第2SAD演算回路5Bに出力する。制御回路43は、動画像バッファ41A〜41C及びセレクタ42A〜42Bに対する制御や算出されたコストの比較を行う。制御回路43は、最小のコストの値を記憶する最小コストレジスタ431と、算出されたコストの値と最小のコストの値を比較する比較回路432と、最小のコストに対応する動画像バッファ41A〜41Cを表す情報を記憶する最小コストバッファ433から構成される。最小コストレジスタ431は、最小のコストの値を記憶するコストレジスタを4つもつ。4つのコストレジスタの各々は、動画像バッファ41A〜41Cの各々を構成する4つの動画像レジスタに対応している。最小コストバッファ433は、最小コストレジスタ431の4つのコストレジスタが記憶する最小コストの値に対応する動画像レジスタが動画像バッファ41A〜41Cのうちのどれに所属するかを表す情報を記憶している。比較回路432は、最小コストレジスタ431の4つの動画像レジスタが記憶するコストの値の各々について、算出されたコストの値との比較を行う。また、比較回路432の比較結果に応じて、最小コストレジスタ431及び最小コストバッファ433の内容が更新される。
尚、制御回路43と第1SAD演算回路5Aが、第1の差分絶対値和算出手段を構成する。また、制御回路43と第2SAD演算回路5Bが、第2の差分絶対値和算出手段を構成する。
図3に、符号化マクロブロックとの間のコストが最小になる参照マクロブロックを検出するマクロブロック探索ルーチンの動作を示す。マクロブロック探索ルーチンは、第1符号化マクロブロックバッファ3A及び第2符号化マクロブロックバッファ3Bの各々に記憶される符号化マクロブロックについて実行される。
まず、動き検出を行う対象となる符号化マクロブロック(16ピクセル×16ピクセル)が外部メモリ6から読み出されて、第1符号化マクロブロックバッファ3A若しくは第2符号化マクロブロックバッファ3Bに記憶される(ステップS301)。そして、動き検出の探索範囲となる動画像データが外部メモリ6から読み出されて、参照動画像記憶手段2に記憶される(ステップS302)。符号化マクロブロックの符号化対象フレーム上での座標をIとすると、参照フレーム上の座標Iを中心とする周辺の8個の参照マクロブロック(16ピクセル×16ピクセル)が動き検出の探索範囲の動画像データとなる。このとき記憶される探索範囲の動画像データを図4に示す。座標Iを中心とする周辺の8個の参照マクロブロック401〜408が参照フレームから読み出されて、参照動画像記憶手段2に記憶される。また、参照動画像記憶手段2から読み出されて参照マクロブロックバッファ4に記憶される参照マクロブロックの読み出し範囲500は、図4に示すように18ピクセル×16ピクセルの大きさである。
次に、参照動画像記憶手段2から読み出した参照マクロブロックを、参照マクロブロックバッファ4のどの位置に記憶するかを選択する(ステップS303)。参照マクロブロックバッファ4は、3つの動画像バッファ41A〜41Cを有している。動画像バッファ41A〜41Cには、座標Iの前の座標である座標I−1の符号化マクロブロックに対してコストが最小となった参照マクロブロックである探索完了参照マクロブロックが記憶されている。また、動画像バッファ41A〜41Cには、これまでマクロブロック探索ルーチンを実行した結果、座標Iの符号化マクロブロックに対して、その時点でコストが最小となった参照マクロブロックである最小参照マクロブロックも記憶されている。探索完了参照マクロブロック及び最小参照マクロブロックは、例えば、図5に示すように、探索完了参照マクロブロックが動画像バッファ41Cの動画像レジスタC1〜C4に、最小参照マクロブロックが動画像バッファ41Aの動画像レジスタA3と、動画像バッファ41Bの動画像レジスタB1、B2及びB4に記憶されている。参照動画像記憶手段2から読み出された参照マクロブロック(算出対象参照マクロブロック)の記憶先としては、動画像バッファ41A〜41Cのうち、探索完了参照マクロブロック及び最小参照マクロブロックを記憶していない位置が選択される。例えば、動画像バッファ41A〜41Cの状態が図5に示す状態であるとすると、参照動画像記憶手段2から読み出された参照マクロブロックの記憶先としては、動画像バッファ41Aの動画像レジスタA1、A2及びA4と、動画像バッファ41Bの動画像レジスタB3が選択される。
参照マクロブロックの記憶先が選択されると、参照動画像記憶手段2から参照マクロブロックが読み出されて、S303の処理で選択された記憶先に書き込まれる(ステップS304)。動画像バッファ41A〜41Cへの参照マクロブロックの書き込みの動作を図6及び図7に示す。図6は、動画像バッファ41AのレジスタA1に参照マクロブロックの左上の領域を書き込むときの動作を示している。参照動画像記憶手段2から読み出された参照マクロブロック600の中で左上の10ピクセル×8ピクセルの領域と、更にその領域の下の10ピクセル×1ピクセルの領域が選択される。そして、選択された10ピクセル×9ピクセルの領域が、動画像バッファ41AのレジスタA1に書き込まれる。動画像バッファ41AのレジスタA2への書き込みも、動画像バッファ41AのレジスタA1への書き込みと同様に行われる。図7は、動画像バッファ41AのレジスタA3に参照マクロブロックの左下の領域を書き込むときの動作を示している。参照動画像記憶手段2から読み出された参照マクロブロック600の中で左下の10ピクセル×8ピクセルの領域と、更にその領域の上の10ピクセル×1ピクセルの領域が選択される。そして、選択された10ピクセル×9ピクセルの領域が、動画像バッファ41AのレジスタA3に書き込まれる。動画像バッファ41AのレジスタA4への書き込みも、動画像バッファ41AのレジスタA3への書き込みと同様に行われる。尚、他の動画像バッファ41B〜41Cへの書き込みも動画像バッファ41Aへの書き込みと同様に行われる。
参照マクロブロックを書き込んだ後で、その書き込んだ参照マクロブロックと、第1符号化マクロブロックバッファ3A若しくは第2符号化マクロブロックバッファ3Bに記憶されている符号化マクロブロックとの間のコストを算出する(ステップS305)。例えば、動画像バッファ41A〜41Cの状態が図5に示す状態であるとすると、参照動画像記憶手段2から読み出された参照マクロブロックは、動画像バッファ41Aの動画像レジスタA1、A2及びA4と、動画像バッファ41Bの動画像レジスタB3に書き込まれる。この場合、コストを算出するときは、動画像バッファ41Aの動画像レジスタA1、A2及びA4と、動画像バッファ41Bの動画像レジスタB3を選択して、選択した動画像レジスタから参照マクロブロックを読み出す。そして、読み出した参照マクロブロックと符号化マクロブロックとの間のコストを算出する。コストの算出は、16ピクセル×16ピクセルのマクロブロックの他に、8ピクセル×8ピクセル、16ピクセル×8ピクセル、8ピクセル×16ピクセルのマクロブロックについても行われる。これらの中でコストが最小のものが選択される。
コストを算出した後、算出したコストの値と、これまでマクロブロック探索ルーチンを実行した結果、座標Iの符号化マクロブロックに対して最小になったコストの値とを比較する(ステップS306)。最小になったコストの値は、最小コストレジスタ431に記憶されている。この最小コストレジスタ431に記憶されているコストの値と、今回算出したコストの値を比較回路432で比較する。比較の結果、今回算出したコストの値が最小コストレジスタ431に記憶されているコストの値よりも小さい場合は、最小コストレジスタ431及び最小コストバッファ433の内容の更新を行う(ステップS307)。最小コストレジスタ431の内容は、今回算出されたコストの値に更新される。また、最小コストバッファ433の内容は、今回コストを算出した参照マクロブロックが記憶されている動画像レジスタを表す情報に更新される。一方、今回算出したコストの値が最小コストレジスタ431に記憶されているコストの値よりも小さくない場合は、最小コストレジスタ431及び最小コストバッファ433の内容の更新は行われない。
次に、動き検出の探索範囲の全ての参照マクロブロックについて、符号化マクロブロックとの間のコストの算出が完了したかどうかを確認する(ステップS308)。コストの算出が完了していない場合は、読み込む参照マクロブロックの領域をずらして、S303の処理から実行する。コストの算出が完了した場合は、コストが最小となった参照マクロブロックを予測マクロブロックとして検出する(ステップS309)。コストが最小となった参照マクロブロックは、最小コストバッファ433の内容が表す動画像レジスタに記憶されている。
マクロブロック探索ルーチンを実行した結果、符号化マクロブロックとの間のコストが最小となった参照マクロブロックが8ピクセル×8ピクセルのマクロブロックである場合、その8ピクセル×8ピクセルのマクロブロックの周辺の動画像データ(10ピクセル×10ピクセル)に対してブロック探索を行う。図8にブロック探索ルーチンの動作を示す。
マクロブロック探索ルーチンを実行した結果、符号化マクロブロックとの間でコストが最小となった参照マクロブロックは、動画像バッファ41A〜41Cのいずれかの動画像レジスタに記憶されている。この動画像レジスタには、例えば、図6及び図7に示すように、10ピクセル×9ピクセルの動画像データが記憶されている。ブロック探索は、10ピクセル×10ピクセルの動画像データに対して行うので、動画像レジスタの各々について、足りない10ピクセル×1ピクセルの動画像データを、参照動画像記憶手段2から読み出して動画像レジスタに書き込む(ステップS801)。このときの動画像レジスタの状態を図9に示す。ここでは、マクロブロック探索ルーチンを実行した結果、符号化マクロブロックとの間でコストが最小となった参照マクロブロックが、動画像バッファ41Aの動画像レジスタA1、A3及びA4と、動画像バッファ41Bの動画像レジスタB2に記憶されているとする。マクロブロック探索ルーチンが完了した時点で動画像レジスタの各々に記憶されている10ピクセル×9ピクセルの動画像データに、10ピクセル×1ピクセルの動画像データを加えたものが動画像レジスタの各々に記憶される。尚、符号化マクロブロックとの間のコストが最小になった参照マクロブロックを記憶する4つの動画像レジスタをブロック探索対象動画像レジスタという。
動画像データを書き込んだ後、ブロック探索対象動画像レジスタに記憶されている10ピクセル×10ピクセルの動画像データを4ピクセル×8ピクセル、8ピクセル×4ピクセル、4ピクセル×4ピクセルのブロックに分割する。そして、分割したブロックの各々と符号化マクロブロックとの間のコストを算出する(ステップS802)。コストが算出されると、算出されたコストの値が、これまでの最小のコストの値よりも小さいかどうかを確認する(ステップS803)。コストの値が小さい場合は、分割されたブロックを予測マクロブロックとして検出する(ステップS804)。
尚、マクロブロック探索ルーチン及びブロック探索ルーチンが、検出手段を構成する。
動き検出回路1で、マクロブロック探索ルーチン及びブロック探索ルーチンが実行される様子を図10に示す。マクロブロック探索ルーチン及びブロック探索ルーチンはパイプライン動作により実行される。まず、座標0の符号化マクロブロックについてのマクロブロック探索ルーチンが第1符号化マクロブロックバッファ3A、参照マクロブロックバッファ4及び第1SAD演算回路5Aを用いて実行される。その結果、座標0の符号化マクロブロックとの間でコストが最小となった参照マクロブロックは、参照マクロブロックバッファ4に記憶されている。マクロブロック探索ルーチンの完了後、座標0の符号化マクロブロックについてのブロック探索ルーチンが、第1符号化マクロブロックバッファ3A、参照マクロブロックバッファ4及び第1SAD演算回路5Aを用いて実行される。この座標0の符号化マクロブロックについてのブロック探索ルーチンの実行と平行して、座標1の符号化マクロブロックについてのマクロブロック探索ルーチンが第2符号化マクロブロックバッファ3B、参照マクロブロックバッファ4及び第2SAD演算回路5Bを用いて実行される。座標1の符号化マクロブロックについてのマクロブロック探索ルーチンの実行時は、座標0の符号化マクロブロックとの間でコストが最小となった参照マクロブロックを記憶している位置に、参照動画像記憶手段2から読み込んだ参照マクロブロックを書き込まないようにしている。それ故、座標0の符号化マクロブロックについてのブロック探索ルーチンと、座標1の符号化マクロブロックについてのマクロブロック探索ルーチンを並行して実行することが出来る。このようにパイプライン動作を行うことにより、動き検出を高速に行うことが出来る。
このように第1の実施例の動き検出回路は、1つの参照マクロブロックバッファ4を用いて、マクロブロック探索ルーチン及びブロック探索ルーチンをパイプライン動作により実行している。それ故、参照マクロブロックバッファ4を有効に使用することが出来、参照マクロブロックバッファ4の記憶容量を少なくすることが出来る。マクロブロックを記憶するバッファの記憶容量が少なくてすむため、動き検出回路のために必要な基板上の面積を小さくすることが出来、書き込み及び読み出しの消費電力が低減することが出来る。また、パイプライン動作を行っているので、動き検出を高速に行うことが出来る。
次に、本発明の第2の実施例について説明する。
図11は、本発明に係る動き検出回路の第2の実施例を示している。動き検出回路1は、バス7を介して接続している外部メモリ6に記憶されている動画像データの符号化を行う際に動き検出を行う。動き検出回路1は、符号化マクロブロックと参照マクロブロックとの間のコストを算出して、符号化マクロブロックとの間のコストが最小となった参照マクロブロックを、その符号化マクロブロックに対応する予測マクロブロックとして検出する。動き検出回路1は、参照フレームの動画像データを記憶する参照動画像記憶手段2と、符号化マクロブロックを記憶する第1符号化マクロブロックバッファ3A及び第2符号化マクロブロックバッファ3Bと、参照マクロブロックを記憶する参照マクロブロックバッファ8と、コストを算出する第1SAD演算回路5A及び第2SAD演算回路5Bから構成される。
参照動画像記憶手段2には、符号化マクロブロックの符号化対象フレーム上での座標と同じ座標を中心とする8個の参照マクロブロックが参照フレームから読み出されて記憶される。第1符号化マクロブロックバッファ3A及び第2符号化マクロブロックバッファ3Bの各々には、符号化マクロブロックが1つ記憶される。第1SAD演算回路5Aは、第1符号化マクロブロックバッファ3Aに記憶されている符号化マクロブロックと、参照マクロブロックバッファ8に記憶されている参照マクロブロックとの間のコストを算出する。第2SAD演算回路5Bは、第2符号化マクロブロックバッファ3Bに記憶されている符号化マクロブロックと、参照マクロブロックバッファ8に記憶されている参照マクロブロックとの間のコストを算出する。
参照マクロブロックバッファ8は、参照動画像記憶手段2から参照マクロブロックを読み出して記憶するものである。図12に参照マクロブロックバッファ8の構成を示す。参照マクロブロックバッファ8は、動画像データを記憶する動画像バッファ81と、セレクタ82A〜82Bと、制御回路83から構成される。動画像バッファ81は、1つのブロックの周辺の動画像データ(10ピクセル×10ピクセル)を記憶することが出来る動画像レジスタを4つ有する。動画像バッファ81は、制御回路83からの指令に従い、参照動画像記憶手段2から読み出した動画像データを記憶する。また、動画像バッファ81は、制御回路83からの指令に従い、記憶している動画像データを読み出して出力する。セレクタ82Aは、制御回路83からの指令に従い、動画像バッファ81から出力される動画像データ又は参照動画像記憶手段2から読み出された動画像データのいずれかを選択して、第1SAD演算回路5Aに出力する。セレクタ82Bは、制御回路83からの指令に従い、動画像バッファ81から出力される動画像データ又は参照動画像記憶手段2から読み出された動画像データのいずれかを選択して、第2SAD演算回路5Bに出力する。制御回路83は、動画像バッファ81及びセレクタ82A〜82Bに対する制御や算出されたコストの比較を行う。
尚、制御回路43と第1SAD演算回路5Aが第1の差分絶対値和算出手段を、制御回路43と第2SAD演算回路5Bが第2の差分絶対値和算出手段を構成する。また、制御回路43とセレクタ82Aが第1の参照マクロブロック読出手段を、制御回路43とセレクタ82Bが第2の参照マクロブロック読出手段を構成する。
図13に、符号化マクロブロックとの間のコストが最小になる参照マクロブロックを検出するマクロブロック探索ルーチンの動作を示す。マクロブロック探索ルーチンは、第1符号化マクロブロックバッファ3A及び第2符号化マクロブロックバッファ3Bの各々に記憶される符号化マクロブロックについて実行される。
まず、動き検出を行う対象となる符号化マクロブロックが外部メモリ6から読み出されて、第1符号化マクロブロックバッファ3A若しくは第2符号化マクロブロックバッファ3Bに記憶される(ステップS1301)。そして、動き検出の探索範囲となる動画像データが外部メモリ6から読み出されて、参照動画像記憶手段2に記憶される(ステップS1302)。符号化マクロブロックの符号化対象フレーム上での座標をIとすると、参照フレーム上の座標Iを中心とする周辺の8個の参照マクロブロックが動き検出の探索範囲の動画像データとなる。このとき記憶される探索範囲の動画像データを図4に示す。座標Iを中心とする周辺の8個の参照マクロブロック401〜408が参照フレームから読み出されて、参照動画像記憶手段2に記憶される。また、参照動画像記憶手段2から読み出される参照マクロブロックの読み出し範囲500は、図4に示すように18ピクセル×16ピクセルの大きさである。
次に、参照動画像記憶手段2から参照マクロブロックを読み出して、読み出した参照マクロブロックと、第1符号化マクロブロックバッファ3A若しくは第2符号化マクロブロックバッファ3Bに記憶されている符号化マクロブロックとの間のコストを算出する(ステップS1303)。コストの算出は、16ピクセル×16ピクセルのマクロブロックの他に、8ピクセル×8ピクセル、16ピクセル×8ピクセル、8ピクセル×16ピクセルのマクロブロックについても行われる。これらの中でコストが最小のものが選択される。
コストを算出した後、算出したコストの値と、これまでマクロブロック探索ルーチンを実行した結果、座標Iの符号化マクロブロックに対して最小になったコストの値とを比較する(ステップS1304)。最小になったコストの値は、制御回路83に記憶されている。この制御回路83に記憶されているコストの値と、今回算出したコストの値を比較して、今回算出したコストの値が制御回路83に記憶されているコストの値よりも小さい場合は、制御回路83が記憶している最小になったコストの値及びそのコストに対応する参照マクロブロックの位置を表す情報を更新する(ステップS1305)。
次に、動き検出の探索範囲の全ての参照マクロブロックについて、符号化マクロブロックとの間のコストの算出が完了したかどうかを確認する(ステップS1306)。コストの算出が完了していない場合は、読み込む参照マクロブロックの領域をずらして、S1303の処理から実行する。コストの算出が完了した場合は、コストが最小となった参照マクロブロックを予測マクロブロックとして検出する(ステップS1307)。そして、コストが最小となった参照マクロブロックを、参照動画像記憶手段2から読み出し、参照マクロブロックバッファ8の動画像バッファ81に書き込む。このとき、動画像バッファ81を構成する4つの動画像レジスタの各々に、コストが最小となった参照マクロブロックの周辺画像を含む10ピクセル×10ピクセルの動画像データを書き込む。
マクロブロック探索ルーチンを実行した結果、符号化マクロブロックとの間のコストが最小となった参照マクロブロックが8ピクセル×8ピクセルのマクロブロックである場合、その8ピクセル×8ピクセルのマクロブロックの周辺の動画像データ(10ピクセル×10ピクセル)に対してブロック探索を行う。図14にブロック探索ルーチンの動作を示す。
マクロブロック探索ルーチンを実行した結果、符号化マクロブロックとの間でコストが最小となった参照マクロブロックは、動画像バッファ81に記憶されている。動画像バッファ81を構成する4つの動画像レジスタの各々に記憶されている10ピクセル×10ピクセルの動画像データを4ピクセル×8ピクセル、8ピクセル×4ピクセル、4ピクセル×4ピクセルのブロックに分割する。そして、分割したブロックの各々と符号化マクロブロックとの間のコストを算出する(ステップS1401)。コストが算出されると、算出されたコストの値が、これまでの最小のコストの値よりも小さいかどうかを確認する(ステップS1402)。コストの値が小さい場合は、分割されたブロックを予測マクロブロックとして検出する(ステップS1403)。
尚、マクロブロック探索ルーチン及びブロック探索ルーチンが、検出手段を構成する。
動き検出回路1で、マクロブロック探索ルーチン及びブロック探索ルーチンが実行される様子を図15に示す。マクロブロック探索ルーチン及びブロック探索ルーチンはパイプライン動作により実行される。まず、座標0の符号化マクロブロックについてのマクロブロック探索ルーチンが第1符号化マクロブロックバッファ3A、参照マクロブロックバッファ8及び第1SAD演算回路5Aを用いて実行される。その結果、座標0の符号化マクロブロックとの間でコストが最小となった参照マクロブロックは、参照マクロブロックバッファ4に記憶される。マクロブロック探索ルーチンの完了後、座標0の符号化マクロブロックについてのブロック探索ルーチンが、第1符号化マクロブロックバッファ3A、参照マクロブロックバッファ8及び第1SAD演算回路5Aを用いて実行される。この座標0の符号化マクロブロックについてのブロック探索ルーチンの実行と平行して、座標1の符号化マクロブロックについてのマクロブロック探索ルーチンが第2符号化マクロブロックバッファ3B、参照マクロブロックバッファ8及び第2SAD演算回路5Bを用いて実行される。座標1の符号化マクロブロックについてのマクロブロック探索ルーチンを実行するときは、座標1の符号化マクロブロックの動き検出の探索領域となる動画像データが参照動画像記憶手段2に記憶される。このとき、参照マクロブロックバッファ8には、ブロック探索ルーチンの実行に必要な座標0の符号化マクロブロックとの間でコストが最小となった参照マクロブロックが記憶されている。それ故、座標0の符号化マクロブロックについてのブロック探索ルーチンと、座標1の符号化マクロブロックについてのマクロブロック探索ルーチンを並行して実行することが出来る。このようにパイプライン動作を行うことにより、動き検出を高速に行うことが出来る。
このように第2の実施例の動き検出回路は、1つの参照マクロブロックバッファ8を用いて、マクロブロック探索ルーチン及びブロック探索ルーチンをパイプライン動作により実行している。参照マクロブロックバッファ8は、各々が10ピクセル×10ピクセルの動画像データを記憶することが出来る4つの動画像レジスタから構成される動画像バッファ81を有している。それ故、第1の実施例の動き検出回路よりも更に、マクロブロックを記憶するバッファの記憶容量を少なくすることが出来る。
尚、ここでは1画素精度の動き検出回路について説明したが、整数画素未満の精度の動き検出回路においても、上記説明した実施例と同様の動作を行うことが可能である。
上記説明したように、本発明の動き検出回路によれば、参照マクロブロックバッファを有効に使用して動き検出を行っているので、参照マクロブロックバッファの記憶容量を少なくすることが出来る。それ故、動き検出回路のために必要な基板上の面積を小さくすることが出来、書き込み及び読み出しの消費電力が低減することが出来る。また、パイプライン動作を行っているので、動き検出を高速に行うことが出来る。
本発明の第1の実施例である動き検出回路を示すブロック図である。 図1の動き検出回路の参照マクロブロックバッファを示すブロック図である。 図1の動き検出回路のマクロブロック探索ルーチンの動作を示すフローチャートである。 図1の動き検出回路の参照動画像記憶手段に記憶される動画像データの例を示すブロック図である。 図1の動き検出回路の動画像バッファの内容の例を示すブロック図である。 図1の動き検出回路の動画像バッファへの動画像データの書き込み動作を示すブロック図である。 図1の動き検出回路の動画像バッファへの動画像データの書き込み動作を示すブロック図である。 図1の動き検出回路のブロック探索ルーチンの動作を示すフローチャートである。 図1の動き検出回路の動画像バッファの内容の例を示すブロック図である。 図1の動き検出回路のパイプライン動作を示すブロック図である。 本発明の第2の実施例である動き検出回路を示すブロック図である。 図11の動き検出回路の参照マクロブロックバッファを示すブロック図である。 図11の動き検出回路のマクロブロック探索ルーチンの動作を示すフローチャートである。 図11の動き検出回路のブロック探索ルーチンの動作を示すフローチャートである。 図11の動き検出回路のパイプライン動作を示すブロック図である。
符号の説明
1 動き検出回路
2 参照動画像記憶手段
3A 第1符号化マクロブロックバッファ
3B 第2符号化マクロブロックバッファ
4、8 参照マクロブロックバッファ
5A 第1SAD演算回路
5B 第2SAD演算回路
6 外部メモリ
7 バス
41A〜41C、81 動画像バッファ
42A〜42B、82A〜82B セレクタ
43、83 制御回路

Claims (3)

  1. 符号化対象の1つのフレーム中の単位エリアの符号化マクロブロックの1つとの間の差分絶対値和が最小となる1つの参照マクロブロックを1つの予測マクロブロックとして検出する動き検出回路であって、
    各々が符号化マクロブロックを順次記憶する第1の符号化マクロブロックバッファ及び第2の符号化マクロブロックバッファと、
    前記符号化マクロブロックの動き検出の探索領域となる動画像データを記憶する参照動画像記憶手段と、
    前記符号化マクロブロックとの間で差分絶対値和を算出すべき参照マクロブロックを前記参照動画像記憶手段から抽出して記憶する参照マクロブロックバッファと、
    前記参照マクロブロックバッファに記憶されている参照マクロブロックのいずれか1つと前記第1の符号化マクロブロックバッファに記憶されている符号化マクロブロックとの間の第1差分絶対値和を算出してこれを更新する第1の差分絶対値和算出手段と、
    前記参照マクロブロックバッファに記憶されている参照マクロブロックのいずれか1つと前記第2の符号化マクロブロックバッファに記憶されている符号化マクロブロックとの間の第2差分絶対値和を算出してこれを更新する第2の差分絶対値和算出手段と、
    前記第1及び第2差分絶対値和の更新値の符号化マクロブロック毎の最小値に対応する参照マクロブロックを予測マクロブロックとして検出する検出手段と、を有することを特徴とする動き検出回路。
  2. 前記参照マクロブロックバッファは、
    マクロブロック探索を実行している符号化マクロブロックとの間の差分絶対値和が最小となった最小参照マクロブロックと、マクロブロック探索の完了した符号化マクロブロックとの間の差分絶対値和が最小となった探索完了参照マクロブロックと、マクロブロック探索を実行している符号化マクロブロックとの間の差分絶対値和を算出する対象となる算出対象参照マクロブロックと、を記憶し、
    前記算出対象参照マクロブロックを前記参照動画像記憶手段から読み出して記憶する場合に、前記最小参照マクロブロック及び前記探索完了参照マクロブロックが記憶されていない領域に前記算出対象参照マクロブロックを記憶することを特徴とする請求項1記載の動き検出回路。
  3. 前記参照マクロブロックバッファは、マクロブロック探索の完了した符号化マクロブロックとの間の差分絶対値和が最小となった探索完了参照マクロブロックを記憶し、
    前記動き検出回路は、前記第1の符号化マクロブロックバッファに記憶されている符号化マクロブロックとの間の差分絶対値和を算出する対象となる算出対象参照マクロブロックを前記参照画像記憶手段から読み出して前記第1の差分絶対値和算出手段に送出する第1の参照マクロブロック読出手段と、前記第2の符号化マクロブロックバッファに記憶されている符号化マクロブロックとの間の差分絶対値和を算出する対象となる算出対象参照マクロブロックを前記参照画像記憶手段から読み出して前記第2の差分絶対値和算出手段に送出する第2の参照マクロブロック読出手段と、を有することを特徴とする請求項1記載の動き検出回路。
JP2007219559A 2007-08-27 2007-08-27 動き検出回路 Pending JP2009055291A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007219559A JP2009055291A (ja) 2007-08-27 2007-08-27 動き検出回路
US12/139,672 US20090060048A1 (en) 2007-08-27 2008-06-16 Motion detection circuit and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007219559A JP2009055291A (ja) 2007-08-27 2007-08-27 動き検出回路

Publications (1)

Publication Number Publication Date
JP2009055291A true JP2009055291A (ja) 2009-03-12

Family

ID=40407431

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007219559A Pending JP2009055291A (ja) 2007-08-27 2007-08-27 動き検出回路

Country Status (2)

Country Link
US (1) US20090060048A1 (ja)
JP (1) JP2009055291A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014239428A (ja) * 2013-06-05 2014-12-18 アクシス アーベー デジタルビデオデータを符号化するための方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104333674B (zh) * 2014-11-24 2019-01-22 广东中星电子有限公司 一种视频稳像方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6965644B2 (en) * 1992-02-19 2005-11-15 8×8, Inc. Programmable architecture and methods for motion estimation
US7685212B2 (en) * 2001-10-29 2010-03-23 Intel Corporation Fast full search motion estimation with SIMD merge instruction
US7693219B2 (en) * 2006-01-04 2010-04-06 Freescale Semiconductor, Inc. System and method for fast motion estimation

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014239428A (ja) * 2013-06-05 2014-12-18 アクシス アーベー デジタルビデオデータを符号化するための方法
US9307253B2 (en) 2013-06-05 2016-04-05 Axis Ab Method for encoding digital video data
US10045037B2 (en) 2013-06-05 2018-08-07 Axis Ab Method for encoding digital video data
US10165290B2 (en) 2013-06-05 2018-12-25 Axis Ab Method for encoding digital video data

Also Published As

Publication number Publication date
US20090060048A1 (en) 2009-03-05

Similar Documents

Publication Publication Date Title
JP6075295B2 (ja) 辞書作成装置、画像処理装置、画像処理システム、辞書作成方法、画像処理方法及びプログラム
JP5522174B2 (ja) 動画像符号化装置
JP2010288110A (ja) 画像処理装置および画像処理方法
JP2001339725A (ja) 動きベクトル検出装置
JP4597103B2 (ja) 動きベクトル探索方法及び装置
JP5938935B2 (ja) 動画像符号化装置及び動画像符号化方法
WO2017004953A1 (zh) 数字图像转换方法、装置、存储介质及设备
JP5362915B2 (ja) 描画装置および描画方法
JP2009055291A (ja) 動き検出回路
CN110619597A (zh) 一种半透明水印去除方法、装置、电子设备及存储介质
JP5703898B2 (ja) 帳票管理システム、帳票画像管理方法、及びプログラム
JP2007026285A (ja) 画像処理装置および画像処理プログラム
US9230309B2 (en) Image processing apparatus and image processing method with image inpainting
EP2169622A1 (en) Apparatus and method of image analysis
JP4547321B2 (ja) 動きベクトル検出装置及び撮像装置
JP5218345B2 (ja) 画像検出装置
JP2009021864A (ja) 動きベクトル探索装置
JP2006215657A (ja) 動きベクトル検出方法、動きベクトル検出装置、動きベクトル検出プログラム及びプログラム記録媒体
JP2001285874A (ja) 動きベクトル探索装置、方法及びプログラムを記録した記録媒体
JP2007110602A (ja) 動きベクトル検出装置
JP2004356673A (ja) 動きベクトル検出方法及び同方法を用いた画像処理装置
JP7198714B2 (ja) 情報処理装置
JP4817776B2 (ja) データ処理装置、及びその制御方法
JP2000287061A (ja) 画像処理装置
JP2020077230A (ja) 画像処理装置、画像処理方法、及びプログラム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20081224

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090127

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090623

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090811

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090908