JP2005354174A - 動き探索装置 - Google Patents
動き探索装置 Download PDFInfo
- Publication number
- JP2005354174A JP2005354174A JP2004169905A JP2004169905A JP2005354174A JP 2005354174 A JP2005354174 A JP 2005354174A JP 2004169905 A JP2004169905 A JP 2004169905A JP 2004169905 A JP2004169905 A JP 2004169905A JP 2005354174 A JP2005354174 A JP 2005354174A
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- search
- pixels
- image
- motion vector
- 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.)
- Withdrawn
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】 近傍探索に必要な参照画像のデータ転送量を低減してメモリ転送帯域を効率的に使用することが可能になる動き探索装置を提供する。
【解決手段】 サブサンプルフィルタ12で縮小画像を生成する際に間引き処理される参照画像の画素位置はサブサンプルフィルタ11で縮小画像を生成する際に間引き処理される現画像の画素位置に対し水平方向に+1画素だけ変位する。よって、動き検出装置15において、対象マクロブロックTMB1および探索領域SWSB1とを用いて動きベクトルを検出すると動きベクトルの値は0にならない。従来、近傍探索において参照画素転送量の特殊状態であった「0」変位が発生しなくなるのでフレームメモリ14から転送される参照画素の転送量を低減することが可能になる。
【選択図】 図1
【解決手段】 サブサンプルフィルタ12で縮小画像を生成する際に間引き処理される参照画像の画素位置はサブサンプルフィルタ11で縮小画像を生成する際に間引き処理される現画像の画素位置に対し水平方向に+1画素だけ変位する。よって、動き検出装置15において、対象マクロブロックTMB1および探索領域SWSB1とを用いて動きベクトルを検出すると動きベクトルの値は0にならない。従来、近傍探索において参照画素転送量の特殊状態であった「0」変位が発生しなくなるのでフレームメモリ14から転送される参照画素の転送量を低減することが可能になる。
【選択図】 図1
Description
この発明は、MPEG2に代表される動画像復号化処理において動画像の動き補償に用いられる動きベクトルを検出する動き探索装置に関し、特に、高い精度の動きベクトルを検出する際に必要な画素転送数を削減する動き探索装置に関するものである。
膨大なデータ量を有する画像信号の伝送または蓄積のためにはデータ量を削減するデータ圧縮技術が必要不可欠となる。画像データは近隣画素間の相関関係および人間の知覚特性などに起因する、かなり多くの冗長度を備える。画像データの冗長度を抑圧して伝送データ量を削減するデータ圧縮技術は高能率符号化と呼ばれる。このような高能率符号化の方式の1つにフレーム間予測符号化方式がある。
フレーム間予測符号化方式においては以下のような処理が実行される。なお、符号化の単位としてフレームとフィールドの2種類があるが、以下ではフレーム単位で符号化する場合の処理を説明する。
フレーム間予測符号化方式では符号化対象の現フレームと、参照する時間的に前または後ろのフレームとを用いて空間的に同じ位置にある画素データの差分である予測誤差が算出される。算出された予測誤差は符号化のために用いられる。
フレーム間予測符号化方式では、動きの少ない画像に関してはフレーム間の相関が大きいため高能率な符号化を行なうことができる。しかしながら、動きの大きな画像についてはフレーム間の相関が小さいため誤差が大きくなり、伝送されるデータ量が逆に増加するという問題点が生じる。
このような問題点を解決する方法として、動き補償付きフレーム間予測符号化方式がある。この方式では以下に説明するような処理が行なわれる。
まず、予測誤差を算出する前に、予め現フレームと、参照する時間的に前または後のフレームの画素データとを用いて動きベクトルが算出される。そして、この算出された動きベクトルに従って参照フレームの予測画像を移動させる。つまり、参照フレーム上で現フレームの動きベクトル探索の対象となる画像ブロックと同位置にある画像ブロックから動きベクトルだけずれた位置の画像データを参照画素として、この参照画素が予測値として用いられる。次に、この移動後の参照フレームの画素と現フレームの画素との間で予測誤差が算出される。算出された予測誤差と動きベクトルは画像符号化の処理のために送出される。
動き補償処理では画素間でのマッチング演算が繰返し行なわれるため膨大な演算量が必要となる。よって、動き補償処理ではフレームの画素を間引いて生成された縮小画像によって動きベクトルをまず算出し、続いて縮小画像によって求められた動きベクトルの近傍で画素が間引かれていないオリジナルの画像を用いて精度のより高い動きベクトルを算出するという階層的処理が行なわれる。
一般的に縮小画像による動きベクトルの探索においては、まず動きベクトルの値を粗く求めるために広範囲な探索が行なわれ、次に縮小画像で求められた動きベクトルの近傍で画素間引きを補償して正確な動きベクトルを求めるため、オリジナルの画像を用いて狭範囲での探索処理が行なわれる。具体的に説明すると、たとえば水平方向に2画素ごとに画素を間引いた縮小画像によって広範囲での探索が行なわれ、探索で得られた動きベクトルを原点にして水平方向に±1画素の領域だけ参照画像をずらした領域で探索が行なわれることで整数精度の動きベクトルが得られる。
動き探索を行なう装置の具体例として、たとえば特開平10−51793号公報(特許文献1)には、従来の全探索ブロックマッチング法における探索精度と同程度の探索精度を維持しつつ、ブロックマッチングにおける演算量を従来の全探索ブロックマッチング法の1/4に削減することができ、しかも、探索領域中の画素の転送量を従来の全探索ブロックマッチング法の1/4に抑えて単画素精度の動きベクトルを直接求めることができるブロックマッチング装置の例が記載されている。
このような処理を行なう階層的処理を実現する動き探索装置には、広範囲探索を行なうための縮小画像、および、画素間引きを補償するための狭範囲のオリジナル画像が入力される必要がある。特に、実時間処理(リアルタイム処理)を行なう場合においては、画像データに高速にアクセスすることが必要である。よって、画像データを記憶するメモリ(フレームメモリ)においては、たとえばシンクロナスDRAM(SDRAM)などの高速アクセス可能なメモリが32ビットといった多ビット構成で用いられることで処理に必要な転送レートが確保されている。
たとえばMPEG2規格の場合、画像データは1画素当たり8ビット幅である。メモリからのデータ転送時には複数の画素が同一ワードにまとめられている。たとえば32ビット幅メモリを使用する場合は、4画素のデータが1ワードにまとめられ、メモリに格納される。よって、1回のデータ転送では必要であるか不要であるかに関係なく4画素のデータが必ず転送されることになる。
また、シンクロナスDRAMなどの高速アクセス可能なメモリは、複数ワードのデータを連続転送(バースト転送)することで高速アクセスを実現しているので性能を生かすためには連続転送を行なうことが必須となる。なお、バースト転送においては、通常2ワード連続や4ワード連続あるいは8ワード連続してデータが転送される。
MPEG2規格での画像処理においては、水平方向に8画素および垂直方向に8画素からなる矩形のデータ領域である「ブロック」、あるいは、水平方向に16画素および垂直方向に16画素からなる矩形のデータ領域である「マクロブロック」を単位として処理が行なわれる。よって、メモリに画素を格納する際のデータのまとめやバースト転送の単位はブロックやマクロブロックの境界と一致するように行なわれる。
探索に用いられる参照画像の生成について要点のみ説明する。符号化された画像データにIDCT(逆離散コサイン変換)処理が行なわれて局部復号画像が生成される。局部復号画像にサブサンプル(間引き)処理が行なわれることで、縮小画像を用いた探索のための参照画像が生成される。生成された参照画像はフレームメモリに書込まれる。なお、サブサンプル処理を行なわない局部復号画像も画素を間引きしない探索に用いられるため、フレームメモリに書込まれる。
探索結果について、水平方向の近隣する2画素を1画素に間引く処理を行なって生成された縮小画像による探索の場合を例に説明する。探索結果を求める場合、水平方向の動きベクトルについては動きベクトル探索の対象となる現画像のマクロブロック(対象マクロブロック)と空間的に同一位置である「0」画素変位を中心にし、−2,0,2などのように2画素単位で得られる。
さらに、水平方向の動きベクトルの値が−2,0,2のそれぞれの場合に近傍探索で必要となる参照画素の転送量について説明する。なお、バースト転送単位は2ワード(4画素)とする。
動きベクトルの値が2の場合、探索領域となる参照画像の範囲は水平方向に参照画像を2画素変位した位置を原点として、現画像の対象マクロブロックを水平方向に±1画素変位させる範囲である。よって、探索範囲は「+1」画素変位から「+3」画素変位までの範囲になる。マクロブロックの境界と一致するように設定されたバースト転送単位でフレームメモリから参照画素のデータが転送されるので参照画素の転送量は「0」画素変位から「+4」画素変位までの範囲である10ワードになる。
動きベクトルの値が−2の場合の参照画素の転送量は動きベクトルの値が+2の場合と同様である。探索範囲は「−3」画素変位から「−1」画素変位までの範囲になる。参照画素の転送量は「−4」画素変位から「0」画素変位までの範囲である10ワードのデータになる。
動きベクトルの値が0の場合、探索領域となる参照画像の範囲は原点から現画像の対象マクロブロックを水平方向に±1画素変位させる範囲である。よって、探索範囲は「−1」画素変位から「+1」画素変位までの範囲になる。ただし、フレームメモリから4画素単位でデータが転送されるので、参照画素の転送量は「−4」画素変位から「+4」画素変位までの範囲である12ワードになる。以上のように、動きベクトルの値が0の場合には動きベクトルの値が正または負の場合よりも近傍探索に必要なデータ転送量が多くなる。
特開平10−51793号公報
縮小画像による探索結果の分布は一様分布になる。すなわち、得られる動きベクトルの値として正の値、負の値、「0」の3種類の値が等しい確率で発生する。リアルタイムに動き探索を行なうリアルタイム処理装置において、フレームメモリから転送される参照画素の転送量は縮小画像による探索結果が「0」になる場合を考慮して決める必要がある。よって、参照画像の転送量は水平方向に12ワードの転送が発生するものとして決められ、メモリ転送帯域、つまりフレームメモリから必要な転送量を実現するための時間も12ワードのデータ転送が発生するものとして決められていた。
しかし縮小画像による探索結果が「0」以外の場合、参照画像の転送量は10ワードである。よって探索結果が「0」以外の場合はデータ転送量が少ないのでメモリ転送帯域が効率的に使用されていないという問題点が生じる。
この発明は上記のような問題点を解消するためになされたもので、メモリ転送帯域を効率的に使用する動き探索装置を得ることを目的とする。
この発明は要約すれば動き探索装置であって、現画像を受け、所定の向きに所定の割合で画素を間引く第1の間引き処理を行ない、第1の縮小画像を出力する第1の間引き処理部と、参照画像を受け、第1の間引き処理によって間引かれる現画像の画素と同一の画素位置を起点として所定の向きに所定の画素数だけ変位した画素位置にある画素を間引く第2の間引き処理を行ない、第2の縮小画像を出力する第2の間引き処理部と、第1、第2の縮小画像を受け、第1、第2の縮小画像の画素同士を比較する所定のマッチング演算を行なって、第1の動きベクトルを検出する動き評価部とを備える。
この発明の動き探索装置によれば、近傍探索に必要な参照画像のデータ転送量を低減してメモリ転送帯域を効率的に使用することが可能になる。
[実施の形態1]
図1は、この発明の実施の形態1による動き探索装置を含む画像符号化装置の構成例を示す図である。
図1は、この発明の実施の形態1による動き探索装置を含む画像符号化装置の構成例を示す図である。
図1を参照して、画像符号化装置100は、フレーム単位に送られるビデオ入力(以下、現画像とも称する)と動きベクトルと参照画像を受けて動き補償処理を行ない、予測誤差を生成する減算部1を備える。減算部1では、動きベクトルに従って参照画像に含まれる予測画像を移動させ、現画像と参照画像の差から予測誤差を生成する。図1ではビデオ入力のフレームを現画像VDINとして示す。
画像符号化装置100は、さらに、予測誤差を符号化する符号化部2と、予測誤差を復号化して参照画像を生成する復号化部3と、現画像と参照画像から動きベクトルを検出する動き探索装置4とを備える。
符号化部2は、予測誤差を受けて離散コサイン変換(DCT)を行なうDCT部5と、離散コサイン変換した結果を量子化する量子化部6と、量子化部6から出力されるデータおよび動きベクトルをハフマン符号等によって可変長符号化し、符号化された各々のデータを多重化してストリームデータを出力するVLC部7とを含む。
復号化部3は、量子化部6から出力されるデータを逆量子化する逆量子化部8と、逆量子化部8の出力に対して逆DCT(IDCT)処理を行なう逆DCT部9(図中、IDCTと示す)と、逆DCT部9から出力される局部復号画像と参照画像とを合成して新しい参照画像を生成し、動き探索装置4にこの新しい参照画像を出力する加算部10とを備える。以下では新しい参照画像を単に「参照画像」と称する。
動き探索装置4は、現画像を受けて水平方向に画素の間引き処理を行ない、動きベクトル探索のための縮小画像を生成し、マクロブロック単位に縮小画像を出力する出力するサブサンプルフィルタ11と、加算部10から参照画像を受けて水平方向に画素の間引き処理を行ない、縮小画像を出力するサブサンプルフィルタ12と、サブサンプルフィルタ11,12から縮小画像を受けて動きベクトルを算出し、さらに、間引きをしていないオリジナル画像である現画像VDINと参照画像とを受け、縮小画像によって算出した動きベクトルの近傍で探索処理を行ない、より精度の高い動きベクトルを検出する動き評価部13とを含む。要約すれば動き評価部13は階層的処理を行なって動きベクトルを検出する。図1ではサブサンプルフィルタ11から出力されるマクロブロックの例として、動きベクトル探索の対象である対象マクロブロック(テンプレートマクロブロック)TMB1が示される。
動き評価部13は、サブサンプルフィルタ12から送られる縮小画像および加算部10から送られる参照画像を格納するフレームメモリ14と、探索領域(サーチウィンドウ)SWSB1と対象マクロブロックTMB1とを受けて動きベクトルを算出し、フレームメモリ14から探索領域SWを受けるとともに現画像を受けて近傍探索を行なう動き検出装置15とを含む。
なお、フレームメモリ14から出力される探索領域SWSB1は、サブサンプルフィルタ12によって間引き処理が行なわれた参照画像のうち、対象マクロブロックTMB1と動きベクトル探索を行なうために必要な領域の参照画素を含むデータである。同様に、探索領域SWは、間引き処理が行なわれていない参照画像のうち、現画像VDINと動きベクトル探索を行なうのに必要な領域の画素を含むデータである。
サブサンプルフィルタ12で縮小画像を生成する際に間引き処理される参照画像の画素位置はサブサンプルフィルタ11で縮小画像を生成する際に間引き処理される現画像の画素位置に対し水平方向に+1画素だけ変位する。よって、動き検出装置15において、対象マクロブロックTMB1および探索領域SWSB1とを用いて動きベクトルを検出すると動きベクトルの値は0にならない。従来、近傍探索において参照画素転送量の特殊状態であった「0」変位が発生しなくなるのでフレームメモリ14から転送される参照画素の転送量を低減することが可能になる。なお、サブサンプルフィルタ11,12の処理の詳細については後述する。
フレームメモリ14では複数の画素が1ワードにまとめられて格納される。フレームメモリ14は画素転送の際に複数ワードのデータを連続転送(バースト転送)する、高速アクセス可能なメモリである。フレームメモリ14の具体例としては、たとえばシンクロナスDRAM(SDRAM)である。
なお、図1の画像符号化装置100において動き探索装置4には現画像としてビデオ入力が入力されると説明したが、たとえば加算部10によって生成される参照画像が現画像であってもよい。
図2は、サブサンプルフィルタ11における間引き処理を模式的に説明する図である。
図2を参照して、サブサンプルフィルタ11に入力される画素および間引き処理(図中、サブサンプル処理と示す)を行なった後に出力される画素が示される。図2では、画素A15と画素A16との間がマクロブロックの境界であり、画素A0〜A15までの画素と画素A16とは各々異なるマクロブロックに含まれる。なお、説明の便宜のため、以後、画素A0から画素A15への方向を正方向とし、画素A0を「0番目の画素」と称することにする。
サブサンプルフィルタ11は水平方向に画素を間引いて画素数を1/2に縮小する。たとえば画素A0は間引き処理により縮小画像に含まれる画素B0として出力されるが、1番目の画素である画素A1は間引き処理によって出力されない画素である。同様に、2番目の画素である画素A2は画素B1として出力され、3番目の画素である画素A3は出力されない。このように、サブサンプルフィルタ11では、0番目の画素を含む偶数番目の画素を出力し、奇数番目の画素を出力しないという間引き処理が行なわれる。
図3は、サブサンプルフィルタ12における間引き処理を模式的に説明する図である。
図3を参照して、サブサンプルフィルタ12に入力される画素および間引き処理を行なった後に出力される画素が示される。画素C15と画素C16の間がマクロブロックの境界である。図2と同様に、画素C0を「0番目の画素」と称することにする。また、図2の画素A0と画素C0とは空間的に同一の位置にあるとする。
サブサンプルフィルタ12はサブサンプルフィルタ11と同様に水平方向に画素を間引いて画素数を1/2に縮小する。ただし、画素A0と同一の位置にある画素C0は縮小画像に出力されず、1番目の画素である画素C1が縮小画像に含まれる画素D0として出力される。つまりサブサンプルフィルタ12は奇数番目の画素を出力する処理を行なう。さらに言い換えると、サブサンプルフィルタ11の処理とサブサンプルフィルタ12の処理は間引き方向および間引く画素数の点で同一であるが、サブサンプルフィルタ12によって間引かれる入力画像の画素位置はサブサンプルフィルタ11によって間引かれる入力画像の画素位置に対し、+1画素変位している。
図4は、サブサンプルフィルタ12における間引き処理の他の例を模式的に説明する図である。
図4を参照して、入力される画素に対し間引き処理が行なわれる。図4に示される間引き処理の間引く方向、間引く画素数、縮小画像に出力される画素の画素位置は図3に示される間引き処理と同様である。ただし、画素DA0は画素C0,C1,C2のデータをそれぞれ1/4,1/2,1/4の割合で合成して得られるデータである。同様に、画素DA1は、画素C2,C3,C4のデータをそれぞれ1/4,1/2,1/4の割合で合成して得られるデータである。
間引き処理においては、出力される画素の近傍n画素(nは正の整数である)を参照して縮小画像が生成される。図3は近傍2画素(両隣)の割合が0になる例であり、図4は近傍2画素の割合が1/4になる例である。図4の間引き処理によって得られる縮小画像は図3の間引き処理で得られる縮小画像よりも、より多くの情報が含まれる。
なお、図4に示される間引き処理はサブサンプルフィルタ11で行なわれてもよい。
図5は、探索処理の単位となるマクロブロックの構成を示す図である。
図5を参照して、マクロブロックMB1は、水平方向に16画素および垂直方向に16画素からなる矩形のデータ領域である。以後においてマクロブロック上の画素を示す場合には、たとえば原点の画素であれば画素D(0,0)のように原点からの水平方向および垂直方向の変位を含めて表わすことにする。たとえば画素D(15,0)は画素D(0,0)から水平方向に+15変位した画素位置にある画素であり、画素D(0,15)は画素D(0,0)から垂直方向に+15変位した画素位置にある画素である。なお、水平方向を行とも称し、垂直方向を列とも称することにする。たとえば画素D(0,0)から画素D(15,0)までの16画素は行L0に含まれる画素である。
図6は、サブサンプルフィルタ11の処理の概要を示すフローチャートである。
図6を参照して、まず、ステップS1で処理が開始されると、次にステップS2においてビデオ入力のn枚目(ただしnは1以上の整数とする)のフレームが入力される。
続いて、ステップS3ではフレームの各行に対して図2に示される間引き処理を行ない、各行の偶数番目の画素位置にある画素を出力する。なお、ステップS3に示される処理はマクロブロック単位で行なわれる。
ステップS3ですべてのマクロブロックに対して処理が終了すると続いてステップS4に進み、n+1枚目のフレームに対する間引き処理が行なわれる。ステップS4に続いてステップS2に戻り、以後、先に説明したステップS3の処理がn+1枚目のフレームに対して行なわれる。
図7は、サブサンプルフィルタ12の処理を示すフローチャートである。
図7を参照して、ステップS11において処理が開始されると、次にステップS12において加算部10から参照画像のn枚目のフレームが入力される。
続いて、ステップS13ではフレームに含まれるマクロブロックに対し各行ごとに図3に示される間引き処理を行ない、各行の奇数番目にある画素を出力する。なお、ステップS13に示される処理もステップS3と同様にマクロブロック単位に行なわれる。
ステップS13で処理が終了すると続いてステップS14に進み、n+1枚目のフレームに対する間引き処理が行なわれる。ステップS14に続いてステップS12に戻り、以後、先に説明したステップS13の処理がn+1枚目のフレームに対して行なわれる。
図8は、対象マクロブロックTMB1の例を示す図である。
図8を参照して、対象マクロブロックTMB1において、たとえば、画素A(0,0)、画素A(2,0)のように偶数番目の画素位置にある画素は出力される画素(有効画素)であり、画素A(1,0),画素A(15,0)は間引かれた画素(無効画素)である。
図9は、フレームメモリ14から動き検出装置15に転送される画素の転送単位の例を示す図である。
図9を参照して、画素G1〜G4の4つの画素が示される。探索領域に含まれる参照画素はマクロブロック境界とバースト単位の区切りとが一致するようにフレームメモリ14上にマッピングされる。図9に示す例では画素G1,G2が1ワードであり、画素G3,G4が1ワードである。フレームメモリ14から画素を転送する際には画素G1〜G4が一度に転送される。なお、図9において示される画素G1〜G4はマクロブロックの水平方向に連続した4画素であってもよく、垂直方向に連続した4画素であってもよい。
図10は、探索領域SWSB1の例を説明する図である。
図10を参照して、探索領域SWSB1は図8の対象マクロブロックTMB1に対する探索範囲の画素を含むデータである。なお、画素B(0,0)は図8の画素A(0,0)と同一の画素位置にある画素である。
探索領域SWSB1においては、たとえば画素B(1,0)は有効画素であり、画素B(0,0)は無効画素である。探索領域SWSB1と対象マクロブロックTMB1とを比較すると、探索領域SWSB1では対象マクロブロックTMB1の画素位置から水平方向に+1画素変位した画素位置にある画素、つまり奇数番目の画素位置にある画素が有効画素である。
図10において、探索領域SWSB1の上部に示される値(−3,−1,1,3)は動きベクトル探索における水平方向の動きベクトルの値を示す。たとえば、探索領域SWSB1が対象マクロブロックTMB1に対し水平方向に+1画素変位したときの動きベクトルの値は1であるので画素B(1,0)の上部には動きベクトルの値が「1」と示される。実施の形態1において、縮小画像を用いた水平方向の動きベクトルの値は2画素単位に得られ、かつ、各々の値は奇数になる。
なお、縮小画像を用いた探索処理およびオリジナル画像を用いた近傍探索処理では水平方向および垂直方向の動きベクトルが求められる。以下では、一例として水平方向の動きベクトルに関して説明する。
図11は、図1の動き検出装置15の構成の一例を示す図である。
図11を参照して、動き検出装置15は、対象マクロブロックTMB1と探索領域SWSB1とを受けて各々の画素に対してマッチング演算を行ない、動きベクトルを算出する広範囲探索部20と、現画像VDINおよび探索領域SWを受けて各々の画素に対してマッチング演算を行ない、広範囲探索部20で算出された動きベクトルよりもさらに高い精度の動きベクトルを算出する狭範囲探索部30とを含む。
広範囲探索部20は対象マクロブロックTMB1と探索領域SWSB1を受ける入力部21と、入力部21から対象マクロブロックTMB1と探索領域SWSB1とを受け、予め定められた複数の動きベクトルの値に従って探索領域SWSB1を移動させ、探索領域SWSB1の画素と対象マクロブロックTMB1の画素との間でマッチング演算を行なった結果を評価値として出力する演算部22と、演算部22で得られる評価値を比較して最適値を求め、求めた最適値を動きベクトルとして出力する比較部23と、入力部21,演算部22および比較部23の動作を制御する制御回路24とを含む。
入力部21は、対象マクロブロックTMB1を格納するTMBメモリ25と、探索領域SWSB1を格納するSWメモリ26とを含む。
狭範囲探索部30の構成は、広範囲探索部20の構成と同様である。狭範囲探索部30は、現画像VDINと探索領域SWを受ける入力部31と、入力部31から出力される現画像VDINを構成するマクロブロック(図中、TBデータと示す)および探索領域SWとを受け、広範囲探索部20で算出された動きベクトルの近傍で探索領域SWを移動させ、探索領域SWの画素とTBデータの画素との間でマッチング演算を行なった結果を評価値として出力する演算部32と、演算部32で得られる評価値を比較して最適値を求め、求めた最適値を動きベクトルとして出力する比較部33と、入力部31,演算部32および比較部33の動作を制御する制御回路34とを含む。
入力部31は、現画像VDINを格納し、演算部32にTBデータを出力するTMBメモリ35と、探索領域SWを格納するSWメモリ36とを含む。
図12は、動き検出装置15の処理の概要を示すフローチャートである。
図12を参照して、まず、ステップS21で処理が開始されると、続いてステップS22では演算部22によってビデオ入力のn枚目のフレームの対象マクロブロックTMB1の画素とn±α枚目の参照画像の探索領域SWSB1の画素との間でマッチング演算が行なわれ、評価値が算出される。なお、ここでαは1,2,3程度の自然数である。
続いてステップS23に進み、比較部23は演算部22で算出された評価値のうちの最適値を求めることで動きベクトルを算出する。
続いて、ステップS24に進み、ステップS23で得られた動きベクトルをもとに、補正処理が行なわれる。なお、補正処理とは狭範囲探索部30で行なわれる、オリジナル画像を用いた近傍探索処理である。
ステップS24で処理が行なわれると、再びステップS22に進み、ビデオ入力のn枚目のフレームのうちの別の対象マクロブロックに対してステップS22〜ステップS24で示される処理が行なわれる。
続いて、この発明の動き探索装置によって得られる効果について説明する。
図13は、サブサンプルフィルタ11,12の間引き処理が同一の場合に得られる探索領域を示す図である。
図13を参照して、探索領域SWSB0は、図8で示される画素A(0,0)と空間的に同一の画素位置にある画素B(0,0)を動きベクトルの原点とする。この場合、図8の対象マクロブロックTMB1と探索領域SWSB0とを用いて得られる水平方向の動きベクトルの値は、画素B(0,0)を原点として2画素単位に得られる。探索領域SWSB0の上部に示される値は水平方向の動きベクトルの値である。動きベクトルの値は、たとえば2,0,−2のように2画素単位、かつ、偶数になる。
図14は、縮小画像によって得られる水平方向の動きベクトルの値が+2の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
図14を参照して、探索領域SWにおける近傍探索の原点は画素C(2,0)である。探索範囲となる参照画像の範囲は画素C(2,0)を原点として水平方向に±1画素変位した範囲である。よって、探索範囲は現画像の対象マクロブロックに対する「+1」画素変位から「+3」画素変位までの範囲である。
以後、実施の形態1における水平方向の探索範囲および参照データの転送数については代表的に探索領域SWの最上行の画素を示して説明する。
探索範囲は画素C(1,0)から画素C(18,0)までの範囲になる。マクロブロックの境界と一致するように設定されたバースト転送単位で画素がフレームメモリ14から転送される。たとえば、フレームメモリから送られる4画素のデータは画素C(0,0)から画素C(3,0)までの4画素である。よって、探索範囲に対応する画素の転送量は「0」画素変位から「+4」画素変位までの範囲、つまり画素C(0,0)から画素C(19,0)までの10ワードになる。
図15は、縮小画像によって得られる水平方向の動きベクトルの値が−2の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
図15を参照して、探索領域SWにおける近傍探索の原点は画素C(−2,0)である。探索範囲となる参照画像の範囲は画素C(−2,0)を原点として水平方向に±1画素変位した範囲である。よって、探索範囲は現画像の対象マクロブロックに対する「−1」画素変位から「−3」画素変位までの範囲である画素C(−3,0)から画素C(14,0)までの範囲になる。
図14に示される場合と同様に、マクロブロックの境界と一致するように設定されたバースト転送単位でフレームメモリ14から参照画素が転送される。よって、探索範囲に対する参照画素の転送量は「−4」画素変位から「0」画素変位までの範囲である画素C(−4,0)から画素C(15,0)までの10ワードになる。
図16は、縮小画像によって得られる水平方向の動きベクトルの値が0の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
動きベクトルの値が0の場合、探索範囲は、画素C(0,0)を原点として水平方向に±1画素変位した範囲である。よって探索範囲は、画素C(−1,0)から画素C(16,0)までの範囲になる。+1画素変位、−1画素変位の各々に対応するためフレームメモリ14から2ワードのデータが転送されるので±1画素変位のために4ワードのデータが転送される。よって探索範囲に対する参照画素の転送量は12ワードである。
このように動きベクトルの値が0となる状態が発生すると、動きベクトルの値が正あるいは負の場合よりも近傍探索に必要な参照画素の転送量の数が増える。
図17は、縮小画像によって得られる水平方向の動きベクトルの値が+1の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
図17では、実施の形態1による動き探索装置で生成された縮小画像を用いて得られる水平方向の動きベクトルの近傍で水平方向に近傍探索を行なうときに必要な探索範囲および画素転送数が示される。
図17を参照して、探索領域SWにおける近傍探索の原点は画素C(1,0)である。つまり、縮小画像によって得られる水平方向の動きベクトルの値は1である。探索範囲は現画像の対象マクロブロックに対する「0」画素変位から「+2」画素変位までの範囲である画素C(0,0)から画素C(17,0)までの範囲になる。
探索範囲に対しフレームメモリ14から転送される参照画素の範囲は「0」画素変位から「+4」画素変位である画素C(0,0)から画素C(19,0)までの範囲になる。よって、水平方向の参照画素の転送量は10ワードになる。
図18は、縮小画像によって得られる水平方向の動きベクトルの値が−1の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
図18では図17と同様に、実施の形態1による動き探索装置で生成された縮小画像を用いて得られる水平方向の動きベクトルの近傍で水平方向に近傍探索を行なうときに必要な探索範囲および画素転送数が示される。
図18を参照して、探索領域SWにおける近傍探索の原点は画素C(−1,0)である。つまり、縮小画像によって得られる水平方向の動きベクトルの値は−1である。探索範囲は現画像の対象マクロブロックに対する「−2」画素変位から「0」画素変位までの範囲である画素C(−2,0)から画素C(15,0)までの範囲になる。
探索範囲に対しフレームメモリ14から転送される参照画素の範囲は「−4」画素変位から「0」画素変位までの範囲である画素C(−4,0)から画素C(15,0)までの範囲になる。よって、水平方向の参照画素の転送量は10ワードになる。
図10において示されるように実施の形態1の動き探索装置によって得られる動きベクトルは水平方向に2画素単位となり、かつ、奇数となる。よって動きベクトルの値が0にはならない。実施の形態1においては図16に示される参照画素の転送量が12ワードになるという特殊状態は発生せず、水平方向に10ワードの参照画像のデータがあれば、近傍探索の実施が可能である。
なお、実施の形態1の場合において縮小画像による探索結果は、間引く画素位置が互いに異なる対象マクロブロックTMB1と探索領域SWSB1とを用いて得られたものであるので、間引き位置をずらした分だけ動きベクトルの補正処理を行なう必要がある。しかし、従来の動きベクトル探索と比較して特別な追加処理は不要である。以下にその理由について説明する。
縮小画像を使用した動きベクトル探索では、間引いた画素数を単位にしたベクトル値が得られる。たとえば、実施の形態1のように水平方向に2画素ごとに画素を間引く場合であれば、ベクトル値は2画素単位になる。MPEG2規格においては動きベクトルの値が1/2画素単位で必要である。よって、動きベクトルの算出では、まず縮小画像を使用した動きベクトル探索によって動きベクトルが算出され、次に算出されたベクトル位置を中心にして、その中心の近傍領域の探索が行なわれる。たとえば実施の形態1のように2画素ごとに画素を間引いた場合には、縮小画像によって得られた動きベクトルの近傍2画素(両隣の画素)を含む領域の探索によって最適な動きベクトルが算出される。
このような処理は従来から動きベクトルの算出において行なわれている処理である。実施の形態1で縮小画像によって得られるベクトル位置は従来の動きベクトルの算出によって得られる位置と異なるが、近傍探索における相違点は従来の探索処理と探索の起点が異なるという点のみである。従来の動きベクトルの算出においても縮小画像による探索後にオリジナル画像による近傍探索が行なわれ、動きベクトルの値が算出される。よって、実施の形態1の動き探索装置では従来の動きベクトル検出の処理にはない特別な追加処理が行なわれる必要はない。
以上説明したように、実施の形態1によれば近傍探索時の参照画像の画素転送数を低減することができ、メモリ転送帯域を効率的に使用することが可能になる。
[実施の形態2]
図19は、この発明の実施の形態2による動き探索装置が含まれる画像符号化装置の構成の一例を示す図である。
図19は、この発明の実施の形態2による動き探索装置が含まれる画像符号化装置の構成の一例を示す図である。
図19を参照して、画像符号化装置100Aは、図1の動き探索装置4に代えて動き探索装置4Aを含む点において図1の画像符号化装置100と相違するが、その他の部分については図1の画像符号化装置100の相当する部分と同様である。よって、図1の画像符号化装置100と同様の部分についての説明は重複になるので以後繰返さない。
動き探索装置4Aは、図1のサブサンプルフィルタ11に代えてサブサンプルフィルタ11Aを含み、図1のサブサンプルフィルタ12に代えてサブサンプルフィルタ12Aを含む点において図1の動き探索装置4と相違するが、その他の部分については図1の動き探索装置4の相当する部分と同様である。よって、図1の動き探索装置4と同様の部分についての説明は重複になるので以後繰返さない。
サブサンプルフィルタ11Aは、現画像VDINを受けて垂直方向に画素の間引き処理を行ない、対象マクロブロックTMB2を出力する。また、サブサンプルフィルタ12Aは加算部10から参照画像を受け、垂直方向に画素の間引き処理を行なって生成した縮小画像をフレームメモリ14に出力する。サブサンプルフィルタ12Aで縮小画像を生成する際に間引き処理される参照画像の画素位置はサブサンプルフィルタ11Aで縮小画像を生成する際に間引き処理される現画像の画素位置に対し垂直方向に+1画素だけ変位する。サブサンプルフィルタ11A,12Aの処理の詳細については後に説明する。
図20は、サブサンプルフィルタ11Aの処理の概要を示すフローチャートである。
図20を参照して、まず、ステップS31で処理が開始されると、次にステップS32においてビデオ入力のn枚目(ただしnは1以上の整数とする)のフレームが入力される。
続いて、ステップS33では処理の対象となる行が奇数行であるか偶数行であるかによって以後の処理が切り替わる。なお、ステップS33における「奇数行」とは、たとえば図5の行L1のように垂直方向の画素位置が奇数である行を示し、「偶数行」とは、たとえば図5の行L0のように垂直方向の画素位置が偶数である行を示すものとする。
ステップS33において、処理の対象となる行が奇数行であればステップS34に進む。ステップS34では、奇数行に含まれる画素は間引かれ、動き検出装置15に出力されない。一方、ステップS33において、処理の対象となる行が偶数行であればステップS35に進む。ステップS35では、偶数行に含まれる画素は動き検出装置15に出力される。なお、ステップS33〜S35までの処理はマクロブロックごとに行なわれる。
n枚目のフレームに含まれるすべての行の画素に対してステップS34またはS35で示される処理が終了すると、続いてステップS36に進み、n+1枚目のフレームに対する間引き処理が行なわれる。ステップS36に続いてステップS32に戻り、以後、ステップS32からステップS35で示される間引き処理が行なわれる。
図21は、サブサンプルフィルタ12Aの処理の概要を示すフローチャートである。
図21を参照して、まず、ステップS41で処理が開始されると、次にステップS42において参照画像のn枚目のフレームが入力される。
続いて、ステップS43では処理の対象となる行が奇数行であるか偶数行かによって以後の処理が切り替わる。
ステップS43において、処理の対象となる行が奇数行であればステップS44に進む。ステップS44では奇数行に含まれる画素はフレームメモリ14に出力される。一方、ステップS43において、処理の対象となる行が偶数行であればステップS45に進む。ステップS45では偶数行に含まれる画素は間引かれるのでフレームメモリ14に画素は出力されない。なお、ステップS43〜S45までの処理はマクロブロックごとに行なわれる。
n枚目のフレームに含まれるすべての行の画素に対してステップS44またはS45で示される処理が終了すると、続いてステップS46に進み、n+1枚目のフレームに対する間引き処理が行なわれる。ステップS46に続いてステップS42に戻り、以後、ステップS42からステップS45で示される間引き処理が行なわれる。
図22は、対象マクロブロックTMB2の例を示す図である。
図22を参照して、対象マクロブロックTMB2は、図20のステップS34,S35で説明される間引き処理が行なわれて生成された縮小画像である。代表的に行L0,L1に含まれる画素について説明する。行L0は偶数行であるので行L0に含まれる画素は動き検出装置15に出力される。一方、行L1は奇数行であるので行L1に含まれる画素は間引かれて出力されない。
図23は、探索領域SWSB2の例を示す図である。
図23を参照して、探索領域SWSB2は、図21のステップS44,S45で説明される間引き処理が行なわれて生成された縮小画像である。代表的に行L0,L1に含まれる画素について説明する。行L0は偶数行であるので、図21においてステップS45に示される間引き処理が行なわれ、行L0に含まれる画素は間引かれて出力されない。一方、行L1は奇数行であるので、行L1に含まれる画素はフレームメモリ14に出力される。
対象マクロブロックTMB2と探索領域SWSB2とを用いて得られる垂直方向の動きベクトルの値は2画素単位の値になり、かつ奇数になる。画素C(0,0)から画素C(0,19)までの画素の左側に示される値は縮小画像による探索によって得られる垂直方向の動きベクトルの値である。たとえば図21の画素B(0,1)と図20の画素A(0,0)とが同一位置になるように探索領域SWSB2を移動させた場合において得られる垂直方向の動きベクトルの値は1である。
なお、実施の形態1と同様に、縮小画像を用いた探索処理およびオリジナル画像を用いた近傍探索処理では水平方向および垂直方向の動きベクトルが求められる。以下では、一例として垂直方向の動きベクトルに関して説明する。
図24は、縮小画像によって得られる垂直方向の動きベクトルの値が+1の場合において近傍探索に必要な垂直方向の探索範囲および画素転送数を示す図である。
図24を参照して、探索領域SWにおける近傍探索の原点は画素C(0,1)である。つまり、縮小画像によって得られる垂直方向の動きベクトルの値は+1である。探索範囲は現画像の対象マクロブロックに対する垂直方向に±1画素の変位、つまり「0」画素変位から「+2」画素変位までの範囲である。
なお、以後、実施の形態2において探索範囲および画素転送数を説明する際には画素C(0,0)から画素C(0,19)までの画素を含む1列について代表的に説明する。
図24において探索範囲は画素C(0,0)から画素C(0,17)までの範囲になる。実施の形態1において説明されるようにマクロブロックの境界と一致するように設定されたバースト転送単位でフレームメモリ14から参照画素のデータが転送される。ただし、実施の形態2においてはフレームメモリ14から垂直方向の4画素のデータがバースト転送単位で転送される。よって、探索範囲に対する参照画素の転送量は「0」画素変位から「+4」画素変位までの範囲、つまり画素C(0,0)から画素C(0,19)までの10ワードになる。
図25は、縮小画像によって得られる垂直方向の動きベクトルの値が−1の場合において近傍探索に必要な垂直方向の探索範囲および画素転送数を示す図である。
図25を参照して、探索領域SWにおける近傍探索の原点は画素C(0,−1)である。つまり、縮小画像によって得られる垂直方向の動きベクトルの値は−1である。探索範囲は現画像の対象マクロブロックに対する「−2」画素変位から「0」画素変位までの範囲である。つまり、探索範囲は画素C(0,−2)から画素C(0,15)までの範囲になる。よって、探索範囲に対する参照画素の転送量は「−4」画素変位から「0」画素変位までの範囲、つまり画素C(0,−4)から画素C(0,15)までの10ワードになる。
実施の形態2によって得られる効果は実施の形態1によって得られる効果と同様である。現画像、参照画像の各々から縮小画像を生成する際に間引く画素の画素位置が互いに垂直方向にずれるように間引き処理が行なわれるので、縮小画像を用いた動きベクトル探索において算出される動きベクトルの値は0以外の値になる。よって実施の形態1と同様に垂直方向に10ワードの参照画像のデータがあれば、近傍探索の実施が可能である。
以上説明したように、実施の形態2によれば近傍探索時の参照画像の画素転送数を低減することができ、メモリ転送帯域を効率的に使用することが可能になる。
[実施の形態3]
図26は、この発明の実施の形態3による動き探索装置が含まれる画像符号化装置の構成の一例を示す図である。
図26は、この発明の実施の形態3による動き探索装置が含まれる画像符号化装置の構成の一例を示す図である。
図26を参照して、画像符号化装置100Bは、図1の動き探索装置4に代えて動き探索装置4Bを含む点において図1の画像符号化装置100と相違するが、その他の部分については図1の画像符号化装置100の相当する部分と同様である。よって、図1の画像符号化装置100と同様な部分についての説明は重複になるので以後繰返さない。
動き探索装置4Bは、図1のサブサンプルフィルタ11に代えてサブサンプルフィルタ11Bを含み、図1のサブサンプルフィルタ12に代えてサブサンプルフィルタ12Bを含む点において図1の動き探索装置4と相違するが、その他の部分については図1の動き探索装置4の相当する部分と同様である。よって、動き探索装置4と同様な部分についての説明は重複になるので以後繰返さない。
サブサンプルフィルタ11Bは現画像VDINを受けて、水平方向および垂直方向に画素の間引き処理を行なって対象マクロブロックTMB3を出力する。また、サブサンプルフィルタ12Bは加算部10から参照画像を受け、水平方向および垂直方向に画素の間引き処理を行なって縮小画像を生成する。ただし、サブサンプルフィルタ12Bによって生成される縮小画像の画素位置はサブサンプルフィルタ11Bによって生成される縮小画像の画素位置と水平方向に+1画素異なるように生成される。サブサンプルフィルタ11B,12Bの処理の詳細については後に説明する。
図27は、サブサンプルフィルタ11Bの処理の概要を示すフローチャートである。
図27を参照して、まず、ステップS51で処理が開始されると、次にステップS52においてビデオ入力のn枚目(ただしnは1以上の整数とする)のフレームが入力される。
続いて、ステップS53では処理の対象となる行が奇数行であるか偶数行かによって以後の処理が切り替わる。
ステップS53において、処理の対象となる行が奇数行であればステップS54に進む。ステップS54では1行に含まれる画素が間引かれ、画素は動き検出装置15に出力されない。一方、ステップS53において、処理の対象となる行が偶数行であればステップS55に進む。ステップS55では偶数番目の画素位置にある画素が動き検出装置15に出力される。なお、ステップS53〜S55までの処理はマクロブロックごとに行なわれる。
n枚目のフレームに含まれるすべての行の画素に対してステップS54またはS55で示される処理が終了すると、続いてステップS56に進み、n+1枚目のフレームに対する間引き処理が行なわれる。ステップS56に続いてステップS52に戻り、以後、ステップS52からステップS55で示される間引き処理が行なわれる。
図28は、サブサンプルフィルタ12Bの処理の概要を示すフローチャートである。
図28を参照して、まず、ステップS61で処理が開始されると、次にステップS62において参照画像のn枚目のフレームが入力される。
続いて、ステップS63では処理の対象となる行が奇数行であるか偶数行かによって以後の処理が切り替わる。
ステップS63において、処理の対象となる行が奇数行であればステップS64に進む。ステップS64では1行に含まれる画素が間引かれ、画素はフレームメモリ14に出力されない。一方、ステップS63において、処理の対象となる行が偶数行であればステップS65に進む。ステップS65では奇数番目の画素位置にある画素がフレームメモリ14に出力される。
n枚目のフレームに含まれるすべての行の画素に対してステップS64またはS65で示される処理が終了すると、続いてステップS66に進み、n+1枚目のフレームに対する間引き処理が行なわれる。ステップS66に続いてステップS62に戻り、以後、ステップS62からステップS65で示される間引き処理が行なわれる。
図29は、対象マクロブロックTMB3の例を示す図である。
図29を参照して、対象マクロブロックTMB3は、図27のステップS54,S55で説明される間引き処理が行なわれて生成された縮小画像である。代表的に行L0,L1に含まれる画素について説明する。行L0は偶数行であるので偶数番目の画素位置にある画素が動き検出装置15に出力される。一方、行L1は奇数行であるので図27におけるステップS54に示される間引き処理が行なわれ、行L1に含まれる画素は動き検出装置15に出力されない。
図30は、探索領域SWSB3の例を示す図である。
図30を参照して、探索領域SWSB3は、図28のステップS64,S65で説明される間引き処理が行なわれて生成された縮小画像である。代表的に行L0,L1に含まれる画素について説明する。行L0は偶数行であるので奇数番目の画素位置にある画素がフレームメモリ14に出力される。一方、行L1は奇数行であるので行L1に含まれる画素はフレームメモリ14に出力されない。
行L0の上部に示される値は対象マクロブロックTMB3と探索領域SWSB3とを用いて得られる水平方向の動きベクトルの値である。図30に示される水平方向の動きベクトルの値は2画素単位の値になり、かつ、奇数になる。つまり、実施の形態3において得られる水平方向の動きベクトルの値は実施の形態1において得られる水平方向の動きベクトルの値と同様である。
なお、実施の形態1,2と同様に、縮小画像を用いた探索処理およびオリジナル画像を用いた近傍探索処理では水平方向および垂直方向の動きベクトルが求められる。以下では、一例として水平方向の動きベクトルに関して説明する。
図31は、縮小画像によって得られる水平方向の動きベクトルの値が+1の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
図31を参照して、探索領域SWにおける近傍探索の原点は画素C(1,0)である。つまり、縮小画像によって得られる水平方向の動きベクトルの値は1である。探索範囲は現画像の対象マクロブロックに対する「0」画素変位から「+2」画素変位までの範囲である。
なお、以後、実施の形態3において探索範囲および画素転送数を説明する際には画素C(0,0)から画素C(19,0)までの画素を含む行について代表的に説明する。
図31において探索範囲は画素C(0,0)から画素C(17,0)までの範囲になる。実施の形態1において説明されるようにマクロブロックの境界と一致するように設定されたバースト転送単位でフレームメモリ14から参照画素のデータが転送される。よって、探索範囲に対する参照画素の転送量は「0」画素変位から「+4」画素変位までの範囲、つまり画素C(0,0)から画素C(19,0)までの10ワードになる。
図32は、縮小画像によって得られる水平方向の動きベクトルの値が−1の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
図32を参照して、動きベクトルの値が水平方向に−1の場合の探索領域SWにおける探索範囲および画素の転送数が示される。
図32を参照して、探索領域SWにおける近傍探索の原点は画素C(−1,0)である。つまり、縮小画像によって得られる水平方向の動きベクトルの値は1である。探索範囲は現画像の対象マクロブロックに対する「−2」画素変位から「0」画素変位までの範囲である画素C(−2,0)から画素C(15,0)までの範囲になる。
探索範囲に対しフレームメモリ14から転送される参照画素の範囲は「−4」画素変位から「0」画素変位までの範囲である画素C(−4,0)から画素C(15,0)までの範囲になる。よって、水平方向の参照画素の転送量は10ワードになる。
実施の形態3によって得られる効果は実施の形態1によって得られる効果と同様である。現画像、参照画像のそれぞれから縮小画像を生成する際に画素の間引き位置が互いに水平方向にずれるように間引き処理が行なわれるので、縮小画像を用いた動きベクトル探索において算出される値は0にならない。よって、参照画素の転送量が12ワードになるという特殊状態は発生せず、水平方向に10ワードの参照画像のデータがあれば、近傍探索の実施が可能である。
さらに、実施の形態3では垂直方向にも画素の間引きが行なわれた縮小画像が生成されているので動き検出装置15において縮小画像の画素ごとにマッチング演算を行なう場合の演算量を減らすことが可能になる。
以上説明したように、実施の形態3によればフレームメモリ14の転送帯域を効率的に使用することができ、かつ、演算量を減らすことが可能になる。
[実施の形態4]
図33は、この発明の実施の形態4による動き探索装置が含まれる画像符号化装置の構成の一例を示す図である。
図33は、この発明の実施の形態4による動き探索装置が含まれる画像符号化装置の構成の一例を示す図である。
図33を参照して、画像符号化装置100Cは、図1の動き探索装置4に代えて動き探索装置4Cを含む点において図1の画像符号化装置100と相違するが、その他の部分については図1の画像符号化装置100の相当する部分と同様である。よって、図1の画像符号化装置100と同様な部分についての説明は重複になるので以後繰返さない。
動き探索装置4Cは、図1のサブサンプルフィルタ11に代えてサブサンプルフィルタ11Cを含み、図1のサブサンプルフィルタ12に代えてサブサンプルフィルタ12Cを含む点において図1の動き探索装置4と相違するが、その他の部分については図1の動き探索装置4の相当する部分と同様である。よって、動き探索装置4と同様な部分についての説明は重複になるので以後繰返さない。
サブサンプルフィルタ11Cは現画像VDINを受けて、対象マクロブロックTMB4を出力する。サブサンプルフィルタ11Cの処理は水平方向に画素の間引きを行なう点においてサブサンプルフィルタ11の処理と同様であるが、サブサンプルフィルタ11よりも画素の間引き数を増やした処理である。
サブサンプルフィルタ12Cは加算部10から参照画像を受け、水平方向に画素の間引きを行なって縮小画像を出力する。サブサンプルフィルタ12Cの処理は水平方向に画素の間引きを行なう点においてサブサンプルフィルタ12の処理と同様であるが、サブサンプルフィルタ12よりも画素の間引き数を増やした処理である。サブサンプルフィルタ11C,12Cの処理の詳細については後に説明する。
図34は、サブサンプルフィルタ11Cの処理の概要を示すフローチャートである。
図34を参照して、まず、ステップS71で処理が開始されると、次にステップS72においてビデオ入力のn枚目(ただしnは1以上の整数とする)のフレームが入力される。
続いて、ステップS73では各行の4m番目に位置する画素を出力する間引き処理が行なわれる。なお、ステップS73での処理はマクロブロックごとに行なわれるのでmは0から3までの整数となる。
n枚目のフレームに含まれるすべての行の画素に対してステップS73の処理が終了すると、続いてステップS74に進み、n+1枚目のフレームに対する間引き処理が行なわれる。ステップS74に続いてステップS72に戻り、以後、ステップS72,S73で示される間引き処理が行なわれる。
図35は、サブサンプルフィルタ12Cの処理の概要を示すフローチャートである。
図35を参照して、まず、ステップS81で処理が開始されると、次にステップS82において参照画像のn枚目のフレームが入力される。
続いて、ステップS83では各行の4m+2番目に位置する画素を出力する間引き処理が行なわれる。つまり、サブサンプルフィルタ12Cで生成される縮小画像の画素位置はサブサンプルフィルタ11Cで生成される縮小画像の画素位置に対し水平方向に+2画素だけ変位する。なお、ステップS83での処理はマクロブロックごとに行なわれるのでmは0から3までの整数となる。
n枚目のフレームに含まれるすべての行の画素に対してステップS83の処理が終了すると、続いてステップS84に進み、n+1枚目のフレームに対する間引き処理が行なわれる。ステップS84に続いてステップS82に戻り、以後、ステップS82,S83で示される間引き処理が行なわれる。
図36は、対象マクロブロックTMB4の例を示す図である。
図36を参照して、対象マクロブロックTMB4は、図34のステップS73で説明される間引き処理が行なわれて生成された縮小画像である。たとえば行L0に含まれる画素について説明すると画素A(0,0)、画素A(4,0)、画素A(8,0)、画素A(12,0)が出力され、行L0の残りの画素は間引き処理によって出力されない。
図37は、探索領域SWSB4の例を示す図である。
図37を参照して、探索領域SWSB4は、図35のステップS83で説明される間引き処理が行なわれて生成された縮小画像である。たとえば行L0に含まれる画素について説明すると画素B(2,0)、画素B(6,0)、画素B(10,0)、画素B(14,0)が出力され、行L0の残りの画素は間引き処理によって出力されない。
対象マクロブロックTMB4と探索領域SWSB4とを用いて得られる水平方向の動きベクトルは4画素単位に得られる。行L0の上部に示される値は対象マクロブロックTMB4と探索領域SWSB4によって得られる水平方向の動きベクトルの値である。たとえば画素B(2,0)と図36の画素A(0,0)が同一位置になるように探索領域SWSB4を移動させた場合の水平方向の動きベクトルの値は2であり、画素B(6,0)と図36の画素A(0,0)が同一位置になるように探索領域SWSB4を移動させた場合の水平方向の動きベクトルの値は6になる。探索領域SWSB4と対象マクロブロックTMB4とで間引かれた画素の位置が異なるので動きベクトルの値は0にはならない。
なお、実施の形態1から実施の形態3までと同様に、縮小画像を用いた探索処理およびオリジナル画像を用いた近傍探索処理では水平方向および垂直方向の動きベクトルが求められる。以下では、一例として水平方向の動きベクトルに関して説明する。
図38は、縮小画像によって得られる水平方向の動きベクトルの値が+2の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
図38を参照して、探索領域SWにおける近傍探索の原点は画素C(2,0)である。つまり、縮小画像によって得られる水平方向の動きベクトルの値は+2である。探索範囲は現画像の対象マクロブロックに対する「+1」画素変位から「+3」画素変位までの範囲である。
なお、以後、実施の形態4において探索範囲および画素転送数を説明する際には画素C(0,0)から画素C(19,0)までの画素を含む行について代表的に説明する。
図38において探索範囲は画素C(1,0)から画素C(18,0)までの範囲になる。実施の形態1において説明されるようにマクロブロックの境界と一致するように設定されたバースト転送単位でフレームメモリ14から参照画素のデータが転送される。よって、探索範囲に対する参照画素の転送量は「0」画素変位から「+4」画素変位までの範囲、つまり画素C(0,0)から画素C(19,0)までの10ワードになる。
図39は、縮小画像によって得られる水平方向の動きベクトルの値が−2の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
図39を参照して、探索領域SWにおける近傍探索の原点は画素C(−2,0)である。つまり、縮小画像によって得られる水平方向の動きベクトルの値は−2である。探索範囲は現画像の対象マクロブロックに対する「−3」画素変位から「−1」画素変位までの範囲である。
図39において探索範囲は画素C(−3,0)から画素C(14,0)までの範囲になる。よって、探索範囲に対する参照画素の転送量は「−4」画素変位から「0」画素変位までの範囲、つまり画素C(−4,0)から画素C(15,0)までの10ワードになる。
実施の形態4によって得られる効果は実施の形態1によって得られる効果と同様である。現画像、参照画像のそれぞれから縮小画像を生成する際に画素の間引き位置が互いに水平方向にずれるように間引き処理が行なわれるので、縮小画像を用いた動きベクトル探索において算出される値は0にならない。よって、参照画素の転送量が12ワードになるという特殊状態は発生せず、水平方向に10ワードの参照画像のデータがあれば、近傍探索の実施が可能である。
以上説明したように、実施の形態4によればフレームメモリ14の転送帯域を効率的に使用することができ、かつ、演算量を減らすことが可能になる。
なお、一般的にフレームメモリ14において探索領域SWはマクロブロックの境界とバースト単位の区切りが一致するようにメモリ上にマッピングされる。この発明において実施の形態1から4に説明されるように、参照画素はバースト単位を超えないようにフレームメモリ14から転送される。よって、以上説明される実施の形態1から4において、2画素を1ワードとし、かつフレームメモリ14から画素を転送する際のバースト長は2であるとして説明したが、効果は1ワード当たりの画素数およびバースト長によらず、実施の形態1から4に示される効果と同様の効果が得られる。
また、実施の形態1から4に示されるサブサンプルフィルタは、それぞれの実施の形態において示される縮小画像を生成するフィルタであればよく、フィルタ構成は特に限定されるものではない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 減算部、2 符号化部、3 復号化部、4,4A,4B,4C 動き探索装置、5 DCT部、6 量子化部、7 VLC部、8 逆量子化部、9 逆DCT部、10 加算部、11,12,11A,12A,11B,12B,11C,12C サブサンプルフィルタ、13 動き評価部、14 フレームメモリ、15 動き検出装置、20 広範囲探索部、21,31 入力部、22,32 演算部、23,33 比較部、24,34 制御回路、25,35 TMBメモリ、26,36 SWメモリ、30 狭範囲探索部、100,100A,100B,100C 画像符号化装置、A0〜A16,B0,B1,C0〜C16,D0,DA0,DA1,G1〜G4 画素、L0,L1 行、MB1 マクロブロック、S1〜S84 ステップ、SW,SWSB0〜SWSB4 探索領域、TMB1〜TMB4 対象マクロブロック、VDIN 現画像。
Claims (8)
- 現画像を受け、所定の向きに所定の割合で画素を間引く第1の間引き処理を行ない、第1の縮小画像を出力する第1の間引き処理部と、
参照画像を受け、前記第1の間引き処理によって間引かれる前記現画像の画素と同一の画素位置を起点として前記所定の向きに所定の画素数だけ変位した画素位置にある画素を間引く第2の間引き処理を行ない、第2の縮小画像を出力する第2の間引き処理部と、
前記第1、第2の縮小画像を受け、前記第1、第2の縮小画像の画素同士を比較する所定のマッチング演算を行なって、第1の動きベクトルを検出する動き評価部とを備える、動き探索装置。 - 前記所定の向きは水平の向きである、請求項1に記載の動き探索装置。
- 前記所定の割合は2分の1であり、前記所定の画素数は1である、請求項2に記載の動き探索装置。
- 前記第1,第2の間引き処理は、それぞれ垂直の向きに2分の1の割合で画素をさらに間引く、請求項2に記載の動き探索装置。
- 前記所定の割合は4分の1であり、前記所定の画素数は2である、請求項2に記載の動き探索装置。
- 前記所定の向きは垂直の向きである、請求項1に記載の動き探索装置。
- 前記所定の割合は2分の1であり、前記所定の画素数は1である、請求項6に記載の動き探索装置。
- 前記動き評価部は、さらに、前記現画像と前記参照画像とを受け、前記現画像の画素と前記参照画像の画素に対して前記所定のマッチング演算を行ない、前記第1の動きベクトルよりも精度の高い第2の動きベクトルを検出する、請求項1に記載の動き探索装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004169905A JP2005354174A (ja) | 2004-06-08 | 2004-06-08 | 動き探索装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004169905A JP2005354174A (ja) | 2004-06-08 | 2004-06-08 | 動き探索装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005354174A true JP2005354174A (ja) | 2005-12-22 |
Family
ID=35588288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004169905A Withdrawn JP2005354174A (ja) | 2004-06-08 | 2004-06-08 | 動き探索装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005354174A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007194973A (ja) * | 2006-01-20 | 2007-08-02 | Victor Co Of Japan Ltd | 動きベクトル検出装置 |
JP2008294978A (ja) * | 2007-05-28 | 2008-12-04 | Ibex Technology Co Ltd | 画像復号化装置、画像復号化方法および画像復号化プログラム |
WO2010140338A1 (ja) * | 2009-06-01 | 2010-12-09 | パナソニック株式会社 | 画像符号化装置、方法、集積回路、プログラム |
-
2004
- 2004-06-08 JP JP2004169905A patent/JP2005354174A/ja not_active Withdrawn
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007194973A (ja) * | 2006-01-20 | 2007-08-02 | Victor Co Of Japan Ltd | 動きベクトル検出装置 |
JP4674549B2 (ja) * | 2006-01-20 | 2011-04-20 | 日本ビクター株式会社 | 動きベクトル検出装置 |
JP2008294978A (ja) * | 2007-05-28 | 2008-12-04 | Ibex Technology Co Ltd | 画像復号化装置、画像復号化方法および画像復号化プログラム |
WO2010140338A1 (ja) * | 2009-06-01 | 2010-12-09 | パナソニック株式会社 | 画像符号化装置、方法、集積回路、プログラム |
CN102113327A (zh) * | 2009-06-01 | 2011-06-29 | 松下电器产业株式会社 | 图像编码装置、方法、集成电路、程序 |
JP5238882B2 (ja) * | 2009-06-01 | 2013-07-17 | パナソニック株式会社 | 画像符号化装置、方法、集積回路、プログラム |
US8761239B2 (en) | 2009-06-01 | 2014-06-24 | Panasonic Corporation | Image coding apparatus, method, integrated circuit, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3277111B2 (ja) | 動画像符号化装置および動画像復号化装置 | |
RU2251820C2 (ru) | Экстраполяция вектора движения для перекодировки видеопоследовательности | |
JP4502203B2 (ja) | 画像符号化装置、及び画像復号化装置 | |
KR100739281B1 (ko) | 움직임 추정 방법 및 장치 | |
JP3655651B2 (ja) | データ処理装置 | |
JP4739651B2 (ja) | ビデオ符号化における中間画素高精度高速探索を実現する装置及び方法 | |
CN101326550A (zh) | 利用预测指导的抽取搜索的运动估计 | |
JP2000175193A (ja) | 電子ディジタル画像シ―ケンス再生システムにおける画像デ―タ補間方法、フレ―ム速度アップ変換方法、および特徴的ブロックに関連する真のモ―ション・ベクトルを決定する方法 | |
JP3979977B2 (ja) | 階層的動きベクトルサーチを利用した動き推定法及び装置及びそれを適用した動映像符号化システム | |
US6317460B1 (en) | Motion vector generation by temporal interpolation | |
JP3813320B2 (ja) | 動きベクトル検出方法および装置 | |
KR20050055553A (ko) | 동영상 부호화를 위한 움직임 추정 방법 및 이를 구현하기위한 프로그램이 기록된 기록 매체 | |
KR20090014371A (ko) | 움직임 검출 장치 | |
JP2004242309A (ja) | 飛越走査方式の動画符号化/復号化方法及びその装置 | |
JPH09182082A (ja) | 動画像の動き補償予測符号化方法とその装置 | |
WO2000005899A1 (en) | Image encoding system | |
KR100490730B1 (ko) | 비디오 영상 압축 시스템에서의 적응적 패턴을 이용한움직임 예측 장치 및 방법 | |
JP4427553B2 (ja) | 動画像復号化装置 | |
US20020168008A1 (en) | Method and apparatus for coding moving pictures | |
JP2005354174A (ja) | 動き探索装置 | |
JP2010081635A (ja) | 動き補償予測符号化装置、動き補償予測符号化方法及びプログラム | |
JP2001224036A (ja) | 動画像符号化装置 | |
US20100177827A1 (en) | Sub-pixel generating apparatus, sub-pixel generating method and storage medium, as well as motion compensating apparatus | |
JPH0262178A (ja) | 画像処理装置の動き検出方式 | |
JP4021800B2 (ja) | 動画像符号化装置,方法および動画像符号化プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20070904 |