(57)【要約】【課題】  近傍探索に必要な参照画像のデータ転送量を低減してメモリ転送帯域を効率的に使用することが可能になる動き探索装置を提供する。【解決手段】  サブサンプルフィルタ１２で縮小画像を生成する際に間引き処理される参照画像の画素位置はサブサンプルフィルタ１１で縮小画像を生成する際に間引き処理される現画像の画素位置に対し水平方向に＋１画素だけ変位する。よって、動き検出装置１５において、対象マクロブロックＴＭＢ１および探索領域ＳＷＳＢ１とを用いて動きベクトルを検出すると動きベクトルの値は０にならない。従来、近傍探索において参照画素転送量の特殊状態であった「０」変位が発生しなくなるのでフレームメモリ１４から転送される参照画素の転送量を低減することが可能になる。【選択図】        図１
2005354174.tif 000002
【特許請求の範囲】
【請求項１】
現画像を受け、所定の向きに所定の割合で画素を間引く第１の間引き処理を行ない、第１の縮小画像を出力する第１の間引き処理部と、
参照画像を受け、前記第１の間引き処理によって間引かれる前記現画像の画素と同一の画素位置を起点として前記所定の向きに所定の画素数だけ変位した画素位置にある画素を間引く第２の間引き処理を行ない、第２の縮小画像を出力する第２の間引き処理部と、
前記第１、第２の縮小画像を受け、前記第１、第２の縮小画像の画素同士を比較する所定のマッチング演算を行なって、第１の動きベクトルを検出する動き評価部とを備える、動き探索装置。
【請求項２】
前記所定の向きは水平の向きである、請求項１に記載の動き探索装置。
【請求項３】
前記所定の割合は２分の１であり、前記所定の画素数は１である、請求項２に記載の動き探索装置。
【請求項４】
前記第１，第２の間引き処理は、それぞれ垂直の向きに２分の１の割合で画素をさらに間引く、請求項２に記載の動き探索装置。
【請求項５】
前記所定の割合は４分の１であり、前記所定の画素数は２である、請求項２に記載の動き探索装置。
【請求項６】
前記所定の向きは垂直の向きである、請求項１に記載の動き探索装置。
【請求項７】
前記所定の割合は２分の１であり、前記所定の画素数は１である、請求項６に記載の動き探索装置。
【請求項８】
前記動き評価部は、さらに、前記現画像と前記参照画像とを受け、前記現画像の画素と前記参照画像の画素に対して前記所定のマッチング演算を行ない、前記第１の動きベクトルよりも精度の高い第２の動きベクトルを検出する、請求項１に記載の動き探索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＭＰＥＧ２に代表される動画像復号化処理において動画像の動き補償に用いられる動きベクトルを検出する動き探索装置に関し、特に、高い精度の動きベクトルを検出する際に必要な画素転送数を削減する動き探索装置に関するものである。
【背景技術】
【０００２】
膨大なデータ量を有する画像信号の伝送または蓄積のためにはデータ量を削減するデータ圧縮技術が必要不可欠となる。画像データは近隣画素間の相関関係および人間の知覚特性などに起因する、かなり多くの冗長度を備える。画像データの冗長度を抑圧して伝送データ量を削減するデータ圧縮技術は高能率符号化と呼ばれる。このような高能率符号化の方式の１つにフレーム間予測符号化方式がある。
【０００３】
フレーム間予測符号化方式においては以下のような処理が実行される。なお、符号化の単位としてフレームとフィールドの２種類があるが、以下ではフレーム単位で符号化する場合の処理を説明する。
【０００４】
フレーム間予測符号化方式では符号化対象の現フレームと、参照する時間的に前または後ろのフレームとを用いて空間的に同じ位置にある画素データの差分である予測誤差が算出される。算出された予測誤差は符号化のために用いられる。
【０００５】
フレーム間予測符号化方式では、動きの少ない画像に関してはフレーム間の相関が大きいため高能率な符号化を行なうことができる。しかしながら、動きの大きな画像についてはフレーム間の相関が小さいため誤差が大きくなり、伝送されるデータ量が逆に増加するという問題点が生じる。
【０００６】
このような問題点を解決する方法として、動き補償付きフレーム間予測符号化方式がある。この方式では以下に説明するような処理が行なわれる。
【０００７】
まず、予測誤差を算出する前に、予め現フレームと、参照する時間的に前または後のフレームの画素データとを用いて動きベクトルが算出される。そして、この算出された動きベクトルに従って参照フレームの予測画像を移動させる。つまり、参照フレーム上で現フレームの動きベクトル探索の対象となる画像ブロックと同位置にある画像ブロックから動きベクトルだけずれた位置の画像データを参照画素として、この参照画素が予測値として用いられる。次に、この移動後の参照フレームの画素と現フレームの画素との間で予測誤差が算出される。算出された予測誤差と動きベクトルは画像符号化の処理のために送出される。
【０００８】
動き補償処理では画素間でのマッチング演算が繰返し行なわれるため膨大な演算量が必要となる。よって、動き補償処理ではフレームの画素を間引いて生成された縮小画像によって動きベクトルをまず算出し、続いて縮小画像によって求められた動きベクトルの近傍で画素が間引かれていないオリジナルの画像を用いて精度のより高い動きベクトルを算出するという階層的処理が行なわれる。
【０００９】
一般的に縮小画像による動きベクトルの探索においては、まず動きベクトルの値を粗く求めるために広範囲な探索が行なわれ、次に縮小画像で求められた動きベクトルの近傍で画素間引きを補償して正確な動きベクトルを求めるため、オリジナルの画像を用いて狭範囲での探索処理が行なわれる。具体的に説明すると、たとえば水平方向に２画素ごとに画素を間引いた縮小画像によって広範囲での探索が行なわれ、探索で得られた動きベクトルを原点にして水平方向に±１画素の領域だけ参照画像をずらした領域で探索が行なわれることで整数精度の動きベクトルが得られる。
【００１０】
動き探索を行なう装置の具体例として、たとえば特開平１０−５１７９３号公報（特許文献１）には、従来の全探索ブロックマッチング法における探索精度と同程度の探索精度を維持しつつ、ブロックマッチングにおける演算量を従来の全探索ブロックマッチング法の１／４に削減することができ、しかも、探索領域中の画素の転送量を従来の全探索ブロックマッチング法の１／４に抑えて単画素精度の動きベクトルを直接求めることができるブロックマッチング装置の例が記載されている。
【００１１】
このような処理を行なう階層的処理を実現する動き探索装置には、広範囲探索を行なうための縮小画像、および、画素間引きを補償するための狭範囲のオリジナル画像が入力される必要がある。特に、実時間処理（リアルタイム処理）を行なう場合においては、画像データに高速にアクセスすることが必要である。よって、画像データを記憶するメモリ（フレームメモリ）においては、たとえばシンクロナスＤＲＡＭ（ＳＤＲＡＭ）などの高速アクセス可能なメモリが３２ビットといった多ビット構成で用いられることで処理に必要な転送レートが確保されている。
【００１２】
たとえばＭＰＥＧ２規格の場合、画像データは１画素当たり８ビット幅である。メモリからのデータ転送時には複数の画素が同一ワードにまとめられている。たとえば３２ビット幅メモリを使用する場合は、４画素のデータが１ワードにまとめられ、メモリに格納される。よって、１回のデータ転送では必要であるか不要であるかに関係なく４画素のデータが必ず転送されることになる。
【００１３】
また、シンクロナスＤＲＡＭなどの高速アクセス可能なメモリは、複数ワードのデータを連続転送（バースト転送）することで高速アクセスを実現しているので性能を生かすためには連続転送を行なうことが必須となる。なお、バースト転送においては、通常２ワード連続や４ワード連続あるいは８ワード連続してデータが転送される。
【００１４】
ＭＰＥＧ２規格での画像処理においては、水平方向に８画素および垂直方向に８画素からなる矩形のデータ領域である「ブロック」、あるいは、水平方向に１６画素および垂直方向に１６画素からなる矩形のデータ領域である「マクロブロック」を単位として処理が行なわれる。よって、メモリに画素を格納する際のデータのまとめやバースト転送の単位はブロックやマクロブロックの境界と一致するように行なわれる。
【００１５】
探索に用いられる参照画像の生成について要点のみ説明する。符号化された画像データにＩＤＣＴ（逆離散コサイン変換）処理が行なわれて局部復号画像が生成される。局部復号画像にサブサンプル（間引き）処理が行なわれることで、縮小画像を用いた探索のための参照画像が生成される。生成された参照画像はフレームメモリに書込まれる。なお、サブサンプル処理を行なわない局部復号画像も画素を間引きしない探索に用いられるため、フレームメモリに書込まれる。
【００１６】
探索結果について、水平方向の近隣する２画素を１画素に間引く処理を行なって生成された縮小画像による探索の場合を例に説明する。探索結果を求める場合、水平方向の動きベクトルについては動きベクトル探索の対象となる現画像のマクロブロック（対象マクロブロック）と空間的に同一位置である「０」画素変位を中心にし、−２，０，２などのように２画素単位で得られる。
【００１７】
さらに、水平方向の動きベクトルの値が−２，０，２のそれぞれの場合に近傍探索で必要となる参照画素の転送量について説明する。なお、バースト転送単位は２ワード（４画素）とする。
【００１８】
動きベクトルの値が２の場合、探索領域となる参照画像の範囲は水平方向に参照画像を２画素変位した位置を原点として、現画像の対象マクロブロックを水平方向に±１画素変位させる範囲である。よって、探索範囲は「＋１」画素変位から「＋３」画素変位までの範囲になる。マクロブロックの境界と一致するように設定されたバースト転送単位でフレームメモリから参照画素のデータが転送されるので参照画素の転送量は「０」画素変位から「＋４」画素変位までの範囲である１０ワードになる。
【００１９】
動きベクトルの値が−２の場合の参照画素の転送量は動きベクトルの値が＋２の場合と同様である。探索範囲は「−３」画素変位から「−１」画素変位までの範囲になる。参照画素の転送量は「−４」画素変位から「０」画素変位までの範囲である１０ワードのデータになる。
【００２０】
動きベクトルの値が０の場合、探索領域となる参照画像の範囲は原点から現画像の対象マクロブロックを水平方向に±１画素変位させる範囲である。よって、探索範囲は「−１」画素変位から「＋１」画素変位までの範囲になる。ただし、フレームメモリから４画素単位でデータが転送されるので、参照画素の転送量は「−４」画素変位から「＋４」画素変位までの範囲である１２ワードになる。以上のように、動きベクトルの値が０の場合には動きベクトルの値が正または負の場合よりも近傍探索に必要なデータ転送量が多くなる。
【特許文献１】特開平１０−５１７９３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
縮小画像による探索結果の分布は一様分布になる。すなわち、得られる動きベクトルの値として正の値、負の値、「０」の３種類の値が等しい確率で発生する。リアルタイムに動き探索を行なうリアルタイム処理装置において、フレームメモリから転送される参照画素の転送量は縮小画像による探索結果が「０」になる場合を考慮して決める必要がある。よって、参照画像の転送量は水平方向に１２ワードの転送が発生するものとして決められ、メモリ転送帯域、つまりフレームメモリから必要な転送量を実現するための時間も１２ワードのデータ転送が発生するものとして決められていた。
【００２２】
しかし縮小画像による探索結果が「０」以外の場合、参照画像の転送量は１０ワードである。よって探索結果が「０」以外の場合はデータ転送量が少ないのでメモリ転送帯域が効率的に使用されていないという問題点が生じる。
【００２３】
この発明は上記のような問題点を解消するためになされたもので、メモリ転送帯域を効率的に使用する動き探索装置を得ることを目的とする。
【課題を解決するための手段】
【００２４】
この発明は要約すれば動き探索装置であって、現画像を受け、所定の向きに所定の割合で画素を間引く第１の間引き処理を行ない、第１の縮小画像を出力する第１の間引き処理部と、参照画像を受け、第１の間引き処理によって間引かれる現画像の画素と同一の画素位置を起点として所定の向きに所定の画素数だけ変位した画素位置にある画素を間引く第２の間引き処理を行ない、第２の縮小画像を出力する第２の間引き処理部と、第１、第２の縮小画像を受け、第１、第２の縮小画像の画素同士を比較する所定のマッチング演算を行なって、第１の動きベクトルを検出する動き評価部とを備える。
【発明の効果】
【００２５】
この発明の動き探索装置によれば、近傍探索に必要な参照画像のデータ転送量を低減してメモリ転送帯域を効率的に使用することが可能になる。
【発明を実施するための最良の形態】
【００２６】
［実施の形態１］
図１は、この発明の実施の形態１による動き探索装置を含む画像符号化装置の構成例を示す図である。
【００２７】
図１を参照して、画像符号化装置１００は、フレーム単位に送られるビデオ入力（以下、現画像とも称する）と動きベクトルと参照画像を受けて動き補償処理を行ない、予測誤差を生成する減算部１を備える。減算部１では、動きベクトルに従って参照画像に含まれる予測画像を移動させ、現画像と参照画像の差から予測誤差を生成する。図１ではビデオ入力のフレームを現画像ＶＤＩＮとして示す。
【００２８】
画像符号化装置１００は、さらに、予測誤差を符号化する符号化部２と、予測誤差を復号化して参照画像を生成する復号化部３と、現画像と参照画像から動きベクトルを検出する動き探索装置４とを備える。
【００２９】
符号化部２は、予測誤差を受けて離散コサイン変換（ＤＣＴ）を行なうＤＣＴ部５と、離散コサイン変換した結果を量子化する量子化部６と、量子化部６から出力されるデータおよび動きベクトルをハフマン符号等によって可変長符号化し、符号化された各々のデータを多重化してストリームデータを出力するＶＬＣ部７とを含む。
【００３０】
復号化部３は、量子化部６から出力されるデータを逆量子化する逆量子化部８と、逆量子化部８の出力に対して逆ＤＣＴ（ＩＤＣＴ）処理を行なう逆ＤＣＴ部９（図中、ＩＤＣＴと示す）と、逆ＤＣＴ部９から出力される局部復号画像と参照画像とを合成して新しい参照画像を生成し、動き探索装置４にこの新しい参照画像を出力する加算部１０とを備える。以下では新しい参照画像を単に「参照画像」と称する。
【００３１】
動き探索装置４は、現画像を受けて水平方向に画素の間引き処理を行ない、動きベクトル探索のための縮小画像を生成し、マクロブロック単位に縮小画像を出力する出力するサブサンプルフィルタ１１と、加算部１０から参照画像を受けて水平方向に画素の間引き処理を行ない、縮小画像を出力するサブサンプルフィルタ１２と、サブサンプルフィルタ１１，１２から縮小画像を受けて動きベクトルを算出し、さらに、間引きをしていないオリジナル画像である現画像ＶＤＩＮと参照画像とを受け、縮小画像によって算出した動きベクトルの近傍で探索処理を行ない、より精度の高い動きベクトルを検出する動き評価部１３とを含む。要約すれば動き評価部１３は階層的処理を行なって動きベクトルを検出する。図１ではサブサンプルフィルタ１１から出力されるマクロブロックの例として、動きベクトル探索の対象である対象マクロブロック（テンプレートマクロブロック）ＴＭＢ１が示される。
【００３２】
動き評価部１３は、サブサンプルフィルタ１２から送られる縮小画像および加算部１０から送られる参照画像を格納するフレームメモリ１４と、探索領域（サーチウィンドウ）ＳＷＳＢ１と対象マクロブロックＴＭＢ１とを受けて動きベクトルを算出し、フレームメモリ１４から探索領域ＳＷを受けるとともに現画像を受けて近傍探索を行なう動き検出装置１５とを含む。
【００３３】
なお、フレームメモリ１４から出力される探索領域ＳＷＳＢ１は、サブサンプルフィルタ１２によって間引き処理が行なわれた参照画像のうち、対象マクロブロックＴＭＢ１と動きベクトル探索を行なうために必要な領域の参照画素を含むデータである。同様に、探索領域ＳＷは、間引き処理が行なわれていない参照画像のうち、現画像ＶＤＩＮと動きベクトル探索を行なうのに必要な領域の画素を含むデータである。
【００３４】
サブサンプルフィルタ１２で縮小画像を生成する際に間引き処理される参照画像の画素位置はサブサンプルフィルタ１１で縮小画像を生成する際に間引き処理される現画像の画素位置に対し水平方向に＋１画素だけ変位する。よって、動き検出装置１５において、対象マクロブロックＴＭＢ１および探索領域ＳＷＳＢ１とを用いて動きベクトルを検出すると動きベクトルの値は０にならない。従来、近傍探索において参照画素転送量の特殊状態であった「０」変位が発生しなくなるのでフレームメモリ１４から転送される参照画素の転送量を低減することが可能になる。なお、サブサンプルフィルタ１１，１２の処理の詳細については後述する。
【００３５】
フレームメモリ１４では複数の画素が１ワードにまとめられて格納される。フレームメモリ１４は画素転送の際に複数ワードのデータを連続転送（バースト転送）する、高速アクセス可能なメモリである。フレームメモリ１４の具体例としては、たとえばシンクロナスＤＲＡＭ（ＳＤＲＡＭ）である。
【００３６】
なお、図１の画像符号化装置１００において動き探索装置４には現画像としてビデオ入力が入力されると説明したが、たとえば加算部１０によって生成される参照画像が現画像であってもよい。
【００３７】
図２は、サブサンプルフィルタ１１における間引き処理を模式的に説明する図である。
【００３８】
図２を参照して、サブサンプルフィルタ１１に入力される画素および間引き処理（図中、サブサンプル処理と示す）を行なった後に出力される画素が示される。図２では、画素Ａ１５と画素Ａ１６との間がマクロブロックの境界であり、画素Ａ０〜Ａ１５までの画素と画素Ａ１６とは各々異なるマクロブロックに含まれる。なお、説明の便宜のため、以後、画素Ａ０から画素Ａ１５への方向を正方向とし、画素Ａ０を「０番目の画素」と称することにする。
【００３９】
サブサンプルフィルタ１１は水平方向に画素を間引いて画素数を１／２に縮小する。たとえば画素Ａ０は間引き処理により縮小画像に含まれる画素Ｂ０として出力されるが、１番目の画素である画素Ａ１は間引き処理によって出力されない画素である。同様に、２番目の画素である画素Ａ２は画素Ｂ１として出力され、３番目の画素である画素Ａ３は出力されない。このように、サブサンプルフィルタ１１では、０番目の画素を含む偶数番目の画素を出力し、奇数番目の画素を出力しないという間引き処理が行なわれる。
【００４０】
図３は、サブサンプルフィルタ１２における間引き処理を模式的に説明する図である。
【００４１】
図３を参照して、サブサンプルフィルタ１２に入力される画素および間引き処理を行なった後に出力される画素が示される。画素Ｃ１５と画素Ｃ１６の間がマクロブロックの境界である。図２と同様に、画素Ｃ０を「０番目の画素」と称することにする。また、図２の画素Ａ０と画素Ｃ０とは空間的に同一の位置にあるとする。
【００４２】
サブサンプルフィルタ１２はサブサンプルフィルタ１１と同様に水平方向に画素を間引いて画素数を１／２に縮小する。ただし、画素Ａ０と同一の位置にある画素Ｃ０は縮小画像に出力されず、１番目の画素である画素Ｃ１が縮小画像に含まれる画素Ｄ０として出力される。つまりサブサンプルフィルタ１２は奇数番目の画素を出力する処理を行なう。さらに言い換えると、サブサンプルフィルタ１１の処理とサブサンプルフィルタ１２の処理は間引き方向および間引く画素数の点で同一であるが、サブサンプルフィルタ１２によって間引かれる入力画像の画素位置はサブサンプルフィルタ１１によって間引かれる入力画像の画素位置に対し、＋１画素変位している。
【００４３】
図４は、サブサンプルフィルタ１２における間引き処理の他の例を模式的に説明する図である。
【００４４】
図４を参照して、入力される画素に対し間引き処理が行なわれる。図４に示される間引き処理の間引く方向、間引く画素数、縮小画像に出力される画素の画素位置は図３に示される間引き処理と同様である。ただし、画素ＤＡ０は画素Ｃ０，Ｃ１，Ｃ２のデータをそれぞれ１／４，１／２，１／４の割合で合成して得られるデータである。同様に、画素ＤＡ１は、画素Ｃ２，Ｃ３，Ｃ４のデータをそれぞれ１／４，１／２，１／４の割合で合成して得られるデータである。
【００４５】
間引き処理においては、出力される画素の近傍ｎ画素（ｎは正の整数である）を参照して縮小画像が生成される。図３は近傍２画素（両隣）の割合が０になる例であり、図４は近傍２画素の割合が１／４になる例である。図４の間引き処理によって得られる縮小画像は図３の間引き処理で得られる縮小画像よりも、より多くの情報が含まれる。
【００４６】
なお、図４に示される間引き処理はサブサンプルフィルタ１１で行なわれてもよい。
【００４７】
図５は、探索処理の単位となるマクロブロックの構成を示す図である。
【００４８】
図５を参照して、マクロブロックＭＢ１は、水平方向に１６画素および垂直方向に１６画素からなる矩形のデータ領域である。以後においてマクロブロック上の画素を示す場合には、たとえば原点の画素であれば画素Ｄ（０，０）のように原点からの水平方向および垂直方向の変位を含めて表わすことにする。たとえば画素Ｄ（１５，０）は画素Ｄ（０，０）から水平方向に＋１５変位した画素位置にある画素であり、画素Ｄ（０，１５）は画素Ｄ（０，０）から垂直方向に＋１５変位した画素位置にある画素である。なお、水平方向を行とも称し、垂直方向を列とも称することにする。たとえば画素Ｄ（０，０）から画素Ｄ（１５，０）までの１６画素は行Ｌ０に含まれる画素である。
【００４９】
図６は、サブサンプルフィルタ１１の処理の概要を示すフローチャートである。
【００５０】
図６を参照して、まず、ステップＳ１で処理が開始されると、次にステップＳ２においてビデオ入力のｎ枚目（ただしｎは１以上の整数とする）のフレームが入力される。
【００５１】
続いて、ステップＳ３ではフレームの各行に対して図２に示される間引き処理を行ない、各行の偶数番目の画素位置にある画素を出力する。なお、ステップＳ３に示される処理はマクロブロック単位で行なわれる。
【００５２】
ステップＳ３ですべてのマクロブロックに対して処理が終了すると続いてステップＳ４に進み、ｎ＋１枚目のフレームに対する間引き処理が行なわれる。ステップＳ４に続いてステップＳ２に戻り、以後、先に説明したステップＳ３の処理がｎ＋１枚目のフレームに対して行なわれる。
【００５３】
図７は、サブサンプルフィルタ１２の処理を示すフローチャートである。
【００５４】
図７を参照して、ステップＳ１１において処理が開始されると、次にステップＳ１２において加算部１０から参照画像のｎ枚目のフレームが入力される。
【００５５】
続いて、ステップＳ１３ではフレームに含まれるマクロブロックに対し各行ごとに図３に示される間引き処理を行ない、各行の奇数番目にある画素を出力する。なお、ステップＳ１３に示される処理もステップＳ３と同様にマクロブロック単位に行なわれる。
【００５６】
ステップＳ１３で処理が終了すると続いてステップＳ１４に進み、ｎ＋１枚目のフレームに対する間引き処理が行なわれる。ステップＳ１４に続いてステップＳ１２に戻り、以後、先に説明したステップＳ１３の処理がｎ＋１枚目のフレームに対して行なわれる。
【００５７】
図８は、対象マクロブロックＴＭＢ１の例を示す図である。
【００５８】
図８を参照して、対象マクロブロックＴＭＢ１において、たとえば、画素Ａ（０，０）、画素Ａ（２，０）のように偶数番目の画素位置にある画素は出力される画素（有効画素）であり、画素Ａ（１，０），画素Ａ（１５，０）は間引かれた画素（無効画素）である。
【００５９】
図９は、フレームメモリ１４から動き検出装置１５に転送される画素の転送単位の例を示す図である。
【００６０】
図９を参照して、画素Ｇ１〜Ｇ４の４つの画素が示される。探索領域に含まれる参照画素はマクロブロック境界とバースト単位の区切りとが一致するようにフレームメモリ１４上にマッピングされる。図９に示す例では画素Ｇ１，Ｇ２が１ワードであり、画素Ｇ３，Ｇ４が１ワードである。フレームメモリ１４から画素を転送する際には画素Ｇ１〜Ｇ４が一度に転送される。なお、図９において示される画素Ｇ１〜Ｇ４はマクロブロックの水平方向に連続した４画素であってもよく、垂直方向に連続した４画素であってもよい。
【００６１】
図１０は、探索領域ＳＷＳＢ１の例を説明する図である。
【００６２】
図１０を参照して、探索領域ＳＷＳＢ１は図８の対象マクロブロックＴＭＢ１に対する探索範囲の画素を含むデータである。なお、画素Ｂ（０，０）は図８の画素Ａ（０，０）と同一の画素位置にある画素である。
【００６３】
探索領域ＳＷＳＢ１においては、たとえば画素Ｂ（１，０）は有効画素であり、画素Ｂ（０，０）は無効画素である。探索領域ＳＷＳＢ１と対象マクロブロックＴＭＢ１とを比較すると、探索領域ＳＷＳＢ１では対象マクロブロックＴＭＢ１の画素位置から水平方向に＋１画素変位した画素位置にある画素、つまり奇数番目の画素位置にある画素が有効画素である。
【００６４】
図１０において、探索領域ＳＷＳＢ１の上部に示される値（−３，−１，１，３）は動きベクトル探索における水平方向の動きベクトルの値を示す。たとえば、探索領域ＳＷＳＢ１が対象マクロブロックＴＭＢ１に対し水平方向に＋１画素変位したときの動きベクトルの値は１であるので画素Ｂ（１，０）の上部には動きベクトルの値が「１」と示される。実施の形態１において、縮小画像を用いた水平方向の動きベクトルの値は２画素単位に得られ、かつ、各々の値は奇数になる。
【００６５】
なお、縮小画像を用いた探索処理およびオリジナル画像を用いた近傍探索処理では水平方向および垂直方向の動きベクトルが求められる。以下では、一例として水平方向の動きベクトルに関して説明する。
【００６６】
図１１は、図１の動き検出装置１５の構成の一例を示す図である。
【００６７】
図１１を参照して、動き検出装置１５は、対象マクロブロックＴＭＢ１と探索領域ＳＷＳＢ１とを受けて各々の画素に対してマッチング演算を行ない、動きベクトルを算出する広範囲探索部２０と、現画像ＶＤＩＮおよび探索領域ＳＷを受けて各々の画素に対してマッチング演算を行ない、広範囲探索部２０で算出された動きベクトルよりもさらに高い精度の動きベクトルを算出する狭範囲探索部３０とを含む。
【００６８】
広範囲探索部２０は対象マクロブロックＴＭＢ１と探索領域ＳＷＳＢ１を受ける入力部２１と、入力部２１から対象マクロブロックＴＭＢ１と探索領域ＳＷＳＢ１とを受け、予め定められた複数の動きベクトルの値に従って探索領域ＳＷＳＢ１を移動させ、探索領域ＳＷＳＢ１の画素と対象マクロブロックＴＭＢ１の画素との間でマッチング演算を行なった結果を評価値として出力する演算部２２と、演算部２２で得られる評価値を比較して最適値を求め、求めた最適値を動きベクトルとして出力する比較部２３と、入力部２１，演算部２２および比較部２３の動作を制御する制御回路２４とを含む。
【００６９】
入力部２１は、対象マクロブロックＴＭＢ１を格納するＴＭＢメモリ２５と、探索領域ＳＷＳＢ１を格納するＳＷメモリ２６とを含む。
【００７０】
狭範囲探索部３０の構成は、広範囲探索部２０の構成と同様である。狭範囲探索部３０は、現画像ＶＤＩＮと探索領域ＳＷを受ける入力部３１と、入力部３１から出力される現画像ＶＤＩＮを構成するマクロブロック（図中、ＴＢデータと示す）および探索領域ＳＷとを受け、広範囲探索部２０で算出された動きベクトルの近傍で探索領域ＳＷを移動させ、探索領域ＳＷの画素とＴＢデータの画素との間でマッチング演算を行なった結果を評価値として出力する演算部３２と、演算部３２で得られる評価値を比較して最適値を求め、求めた最適値を動きベクトルとして出力する比較部３３と、入力部３１，演算部３２および比較部３３の動作を制御する制御回路３４とを含む。
【００７１】
入力部３１は、現画像ＶＤＩＮを格納し、演算部３２にＴＢデータを出力するＴＭＢメモリ３５と、探索領域ＳＷを格納するＳＷメモリ３６とを含む。
【００７２】
図１２は、動き検出装置１５の処理の概要を示すフローチャートである。
【００７３】
図１２を参照して、まず、ステップＳ２１で処理が開始されると、続いてステップＳ２２では演算部２２によってビデオ入力のｎ枚目のフレームの対象マクロブロックＴＭＢ１の画素とｎ±α枚目の参照画像の探索領域ＳＷＳＢ１の画素との間でマッチング演算が行なわれ、評価値が算出される。なお、ここでαは１，２，３程度の自然数である。
【００７４】
続いてステップＳ２３に進み、比較部２３は演算部２２で算出された評価値のうちの最適値を求めることで動きベクトルを算出する。
【００７５】
続いて、ステップＳ２４に進み、ステップＳ２３で得られた動きベクトルをもとに、補正処理が行なわれる。なお、補正処理とは狭範囲探索部３０で行なわれる、オリジナル画像を用いた近傍探索処理である。
【００７６】
ステップＳ２４で処理が行なわれると、再びステップＳ２２に進み、ビデオ入力のｎ枚目のフレームのうちの別の対象マクロブロックに対してステップＳ２２〜ステップＳ２４で示される処理が行なわれる。
【００７７】
続いて、この発明の動き探索装置によって得られる効果について説明する。
【００７８】
図１３は、サブサンプルフィルタ１１，１２の間引き処理が同一の場合に得られる探索領域を示す図である。
【００７９】
図１３を参照して、探索領域ＳＷＳＢ０は、図８で示される画素Ａ（０，０）と空間的に同一の画素位置にある画素Ｂ（０，０）を動きベクトルの原点とする。この場合、図８の対象マクロブロックＴＭＢ１と探索領域ＳＷＳＢ０とを用いて得られる水平方向の動きベクトルの値は、画素Ｂ（０，０）を原点として２画素単位に得られる。探索領域ＳＷＳＢ０の上部に示される値は水平方向の動きベクトルの値である。動きベクトルの値は、たとえば２，０，−２のように２画素単位、かつ、偶数になる。
【００８０】
図１４は、縮小画像によって得られる水平方向の動きベクトルの値が＋２の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
【００８１】
図１４を参照して、探索領域ＳＷにおける近傍探索の原点は画素Ｃ（２，０）である。探索範囲となる参照画像の範囲は画素Ｃ（２，０）を原点として水平方向に±１画素変位した範囲である。よって、探索範囲は現画像の対象マクロブロックに対する「＋１」画素変位から「＋３」画素変位までの範囲である。
【００８２】
以後、実施の形態１における水平方向の探索範囲および参照データの転送数については代表的に探索領域ＳＷの最上行の画素を示して説明する。
【００８３】
探索範囲は画素Ｃ（１，０）から画素Ｃ（１８，０）までの範囲になる。マクロブロックの境界と一致するように設定されたバースト転送単位で画素がフレームメモリ１４から転送される。たとえば、フレームメモリから送られる４画素のデータは画素Ｃ（０，０）から画素Ｃ（３，０）までの４画素である。よって、探索範囲に対応する画素の転送量は「０」画素変位から「＋４」画素変位までの範囲、つまり画素Ｃ（０，０）から画素Ｃ（１９，０）までの１０ワードになる。
【００８４】
図１５は、縮小画像によって得られる水平方向の動きベクトルの値が−２の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
【００８５】
図１５を参照して、探索領域ＳＷにおける近傍探索の原点は画素Ｃ（−２，０）である。探索範囲となる参照画像の範囲は画素Ｃ（−２，０）を原点として水平方向に±１画素変位した範囲である。よって、探索範囲は現画像の対象マクロブロックに対する「−１」画素変位から「−３」画素変位までの範囲である画素Ｃ（−３，０）から画素Ｃ（１４，０）までの範囲になる。
【００８６】
図１４に示される場合と同様に、マクロブロックの境界と一致するように設定されたバースト転送単位でフレームメモリ１４から参照画素が転送される。よって、探索範囲に対する参照画素の転送量は「−４」画素変位から「０」画素変位までの範囲である画素Ｃ（−４，０）から画素Ｃ（１５，０）までの１０ワードになる。
【００８７】
図１６は、縮小画像によって得られる水平方向の動きベクトルの値が０の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
【００８８】
動きベクトルの値が０の場合、探索範囲は、画素Ｃ（０，０）を原点として水平方向に±１画素変位した範囲である。よって探索範囲は、画素Ｃ（−１，０）から画素Ｃ（１６，０）までの範囲になる。＋１画素変位、−１画素変位の各々に対応するためフレームメモリ１４から２ワードのデータが転送されるので±１画素変位のために４ワードのデータが転送される。よって探索範囲に対する参照画素の転送量は１２ワードである。
【００８９】
このように動きベクトルの値が０となる状態が発生すると、動きベクトルの値が正あるいは負の場合よりも近傍探索に必要な参照画素の転送量の数が増える。
【００９０】
図１７は、縮小画像によって得られる水平方向の動きベクトルの値が＋１の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
【００９１】
図１７では、実施の形態１による動き探索装置で生成された縮小画像を用いて得られる水平方向の動きベクトルの近傍で水平方向に近傍探索を行なうときに必要な探索範囲および画素転送数が示される。
【００９２】
図１７を参照して、探索領域ＳＷにおける近傍探索の原点は画素Ｃ（１，０）である。つまり、縮小画像によって得られる水平方向の動きベクトルの値は１である。探索範囲は現画像の対象マクロブロックに対する「０」画素変位から「＋２」画素変位までの範囲である画素Ｃ（０，０）から画素Ｃ（１７，０）までの範囲になる。
【００９３】
探索範囲に対しフレームメモリ１４から転送される参照画素の範囲は「０」画素変位から「＋４」画素変位である画素Ｃ（０，０）から画素Ｃ（１９，０）までの範囲になる。よって、水平方向の参照画素の転送量は１０ワードになる。
【００９４】
図１８は、縮小画像によって得られる水平方向の動きベクトルの値が−１の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
【００９５】
図１８では図１７と同様に、実施の形態１による動き探索装置で生成された縮小画像を用いて得られる水平方向の動きベクトルの近傍で水平方向に近傍探索を行なうときに必要な探索範囲および画素転送数が示される。
【００９６】
図１８を参照して、探索領域ＳＷにおける近傍探索の原点は画素Ｃ（−１，０）である。つまり、縮小画像によって得られる水平方向の動きベクトルの値は−１である。探索範囲は現画像の対象マクロブロックに対する「−２」画素変位から「０」画素変位までの範囲である画素Ｃ（−２，０）から画素Ｃ（１５，０）までの範囲になる。
【００９７】
探索範囲に対しフレームメモリ１４から転送される参照画素の範囲は「−４」画素変位から「０」画素変位までの範囲である画素Ｃ（−４，０）から画素Ｃ（１５，０）までの範囲になる。よって、水平方向の参照画素の転送量は１０ワードになる。
【００９８】
図１０において示されるように実施の形態１の動き探索装置によって得られる動きベクトルは水平方向に２画素単位となり、かつ、奇数となる。よって動きベクトルの値が０にはならない。実施の形態１においては図１６に示される参照画素の転送量が１２ワードになるという特殊状態は発生せず、水平方向に１０ワードの参照画像のデータがあれば、近傍探索の実施が可能である。
【００９９】
なお、実施の形態１の場合において縮小画像による探索結果は、間引く画素位置が互いに異なる対象マクロブロックＴＭＢ１と探索領域ＳＷＳＢ１とを用いて得られたものであるので、間引き位置をずらした分だけ動きベクトルの補正処理を行なう必要がある。しかし、従来の動きベクトル探索と比較して特別な追加処理は不要である。以下にその理由について説明する。
【０１００】
縮小画像を使用した動きベクトル探索では、間引いた画素数を単位にしたベクトル値が得られる。たとえば、実施の形態１のように水平方向に２画素ごとに画素を間引く場合であれば、ベクトル値は２画素単位になる。ＭＰＥＧ２規格においては動きベクトルの値が１／２画素単位で必要である。よって、動きベクトルの算出では、まず縮小画像を使用した動きベクトル探索によって動きベクトルが算出され、次に算出されたベクトル位置を中心にして、その中心の近傍領域の探索が行なわれる。たとえば実施の形態１のように２画素ごとに画素を間引いた場合には、縮小画像によって得られた動きベクトルの近傍２画素（両隣の画素）を含む領域の探索によって最適な動きベクトルが算出される。
【０１０１】
このような処理は従来から動きベクトルの算出において行なわれている処理である。実施の形態１で縮小画像によって得られるベクトル位置は従来の動きベクトルの算出によって得られる位置と異なるが、近傍探索における相違点は従来の探索処理と探索の起点が異なるという点のみである。従来の動きベクトルの算出においても縮小画像による探索後にオリジナル画像による近傍探索が行なわれ、動きベクトルの値が算出される。よって、実施の形態１の動き探索装置では従来の動きベクトル検出の処理にはない特別な追加処理が行なわれる必要はない。
【０１０２】
以上説明したように、実施の形態１によれば近傍探索時の参照画像の画素転送数を低減することができ、メモリ転送帯域を効率的に使用することが可能になる。
【０１０３】
［実施の形態２］
図１９は、この発明の実施の形態２による動き探索装置が含まれる画像符号化装置の構成の一例を示す図である。
【０１０４】
図１９を参照して、画像符号化装置１００Ａは、図１の動き探索装置４に代えて動き探索装置４Ａを含む点において図１の画像符号化装置１００と相違するが、その他の部分については図１の画像符号化装置１００の相当する部分と同様である。よって、図１の画像符号化装置１００と同様の部分についての説明は重複になるので以後繰返さない。
【０１０５】
動き探索装置４Ａは、図１のサブサンプルフィルタ１１に代えてサブサンプルフィルタ１１Ａを含み、図１のサブサンプルフィルタ１２に代えてサブサンプルフィルタ１２Ａを含む点において図１の動き探索装置４と相違するが、その他の部分については図１の動き探索装置４の相当する部分と同様である。よって、図１の動き探索装置４と同様の部分についての説明は重複になるので以後繰返さない。
【０１０６】
サブサンプルフィルタ１１Ａは、現画像ＶＤＩＮを受けて垂直方向に画素の間引き処理を行ない、対象マクロブロックＴＭＢ２を出力する。また、サブサンプルフィルタ１２Ａは加算部１０から参照画像を受け、垂直方向に画素の間引き処理を行なって生成した縮小画像をフレームメモリ１４に出力する。サブサンプルフィルタ１２Ａで縮小画像を生成する際に間引き処理される参照画像の画素位置はサブサンプルフィルタ１１Ａで縮小画像を生成する際に間引き処理される現画像の画素位置に対し垂直方向に＋１画素だけ変位する。サブサンプルフィルタ１１Ａ，１２Ａの処理の詳細については後に説明する。
【０１０７】
図２０は、サブサンプルフィルタ１１Ａの処理の概要を示すフローチャートである。
【０１０８】
図２０を参照して、まず、ステップＳ３１で処理が開始されると、次にステップＳ３２においてビデオ入力のｎ枚目（ただしｎは１以上の整数とする）のフレームが入力される。
【０１０９】
続いて、ステップＳ３３では処理の対象となる行が奇数行であるか偶数行であるかによって以後の処理が切り替わる。なお、ステップＳ３３における「奇数行」とは、たとえば図５の行Ｌ１のように垂直方向の画素位置が奇数である行を示し、「偶数行」とは、たとえば図５の行Ｌ０のように垂直方向の画素位置が偶数である行を示すものとする。
【０１１０】
ステップＳ３３において、処理の対象となる行が奇数行であればステップＳ３４に進む。ステップＳ３４では、奇数行に含まれる画素は間引かれ、動き検出装置１５に出力されない。一方、ステップＳ３３において、処理の対象となる行が偶数行であればステップＳ３５に進む。ステップＳ３５では、偶数行に含まれる画素は動き検出装置１５に出力される。なお、ステップＳ３３〜Ｓ３５までの処理はマクロブロックごとに行なわれる。
【０１１１】
ｎ枚目のフレームに含まれるすべての行の画素に対してステップＳ３４またはＳ３５で示される処理が終了すると、続いてステップＳ３６に進み、ｎ＋１枚目のフレームに対する間引き処理が行なわれる。ステップＳ３６に続いてステップＳ３２に戻り、以後、ステップＳ３２からステップＳ３５で示される間引き処理が行なわれる。
【０１１２】
図２１は、サブサンプルフィルタ１２Ａの処理の概要を示すフローチャートである。
【０１１３】
図２１を参照して、まず、ステップＳ４１で処理が開始されると、次にステップＳ４２において参照画像のｎ枚目のフレームが入力される。
【０１１４】
続いて、ステップＳ４３では処理の対象となる行が奇数行であるか偶数行かによって以後の処理が切り替わる。
【０１１５】
ステップＳ４３において、処理の対象となる行が奇数行であればステップＳ４４に進む。ステップＳ４４では奇数行に含まれる画素はフレームメモリ１４に出力される。一方、ステップＳ４３において、処理の対象となる行が偶数行であればステップＳ４５に進む。ステップＳ４５では偶数行に含まれる画素は間引かれるのでフレームメモリ１４に画素は出力されない。なお、ステップＳ４３〜Ｓ４５までの処理はマクロブロックごとに行なわれる。
【０１１６】
ｎ枚目のフレームに含まれるすべての行の画素に対してステップＳ４４またはＳ４５で示される処理が終了すると、続いてステップＳ４６に進み、ｎ＋１枚目のフレームに対する間引き処理が行なわれる。ステップＳ４６に続いてステップＳ４２に戻り、以後、ステップＳ４２からステップＳ４５で示される間引き処理が行なわれる。
【０１１７】
図２２は、対象マクロブロックＴＭＢ２の例を示す図である。
【０１１８】
図２２を参照して、対象マクロブロックＴＭＢ２は、図２０のステップＳ３４，Ｓ３５で説明される間引き処理が行なわれて生成された縮小画像である。代表的に行Ｌ０，Ｌ１に含まれる画素について説明する。行Ｌ０は偶数行であるので行Ｌ０に含まれる画素は動き検出装置１５に出力される。一方、行Ｌ１は奇数行であるので行Ｌ１に含まれる画素は間引かれて出力されない。
【０１１９】
図２３は、探索領域ＳＷＳＢ２の例を示す図である。
【０１２０】
図２３を参照して、探索領域ＳＷＳＢ２は、図２１のステップＳ４４，Ｓ４５で説明される間引き処理が行なわれて生成された縮小画像である。代表的に行Ｌ０，Ｌ１に含まれる画素について説明する。行Ｌ０は偶数行であるので、図２１においてステップＳ４５に示される間引き処理が行なわれ、行Ｌ０に含まれる画素は間引かれて出力されない。一方、行Ｌ１は奇数行であるので、行Ｌ１に含まれる画素はフレームメモリ１４に出力される。
【０１２１】
対象マクロブロックＴＭＢ２と探索領域ＳＷＳＢ２とを用いて得られる垂直方向の動きベクトルの値は２画素単位の値になり、かつ奇数になる。画素Ｃ（０，０）から画素Ｃ（０，１９）までの画素の左側に示される値は縮小画像による探索によって得られる垂直方向の動きベクトルの値である。たとえば図２１の画素Ｂ（０，１）と図２０の画素Ａ（０，０）とが同一位置になるように探索領域ＳＷＳＢ２を移動させた場合において得られる垂直方向の動きベクトルの値は１である。
【０１２２】
なお、実施の形態１と同様に、縮小画像を用いた探索処理およびオリジナル画像を用いた近傍探索処理では水平方向および垂直方向の動きベクトルが求められる。以下では、一例として垂直方向の動きベクトルに関して説明する。
【０１２３】
図２４は、縮小画像によって得られる垂直方向の動きベクトルの値が＋１の場合において近傍探索に必要な垂直方向の探索範囲および画素転送数を示す図である。
【０１２４】
図２４を参照して、探索領域ＳＷにおける近傍探索の原点は画素Ｃ（０，１）である。つまり、縮小画像によって得られる垂直方向の動きベクトルの値は＋１である。探索範囲は現画像の対象マクロブロックに対する垂直方向に±１画素の変位、つまり「０」画素変位から「＋２」画素変位までの範囲である。
【０１２５】
なお、以後、実施の形態２において探索範囲および画素転送数を説明する際には画素Ｃ（０，０）から画素Ｃ（０，１９）までの画素を含む１列について代表的に説明する。
【０１２６】
図２４において探索範囲は画素Ｃ（０，０）から画素Ｃ（０，１７）までの範囲になる。実施の形態１において説明されるようにマクロブロックの境界と一致するように設定されたバースト転送単位でフレームメモリ１４から参照画素のデータが転送される。ただし、実施の形態２においてはフレームメモリ１４から垂直方向の４画素のデータがバースト転送単位で転送される。よって、探索範囲に対する参照画素の転送量は「０」画素変位から「＋４」画素変位までの範囲、つまり画素Ｃ（０，０）から画素Ｃ（０，１９）までの１０ワードになる。
【０１２７】
図２５は、縮小画像によって得られる垂直方向の動きベクトルの値が−１の場合において近傍探索に必要な垂直方向の探索範囲および画素転送数を示す図である。
【０１２８】
図２５を参照して、探索領域ＳＷにおける近傍探索の原点は画素Ｃ（０，−１）である。つまり、縮小画像によって得られる垂直方向の動きベクトルの値は−１である。探索範囲は現画像の対象マクロブロックに対する「−２」画素変位から「０」画素変位までの範囲である。つまり、探索範囲は画素Ｃ（０，−２）から画素Ｃ（０，１５）までの範囲になる。よって、探索範囲に対する参照画素の転送量は「−４」画素変位から「０」画素変位までの範囲、つまり画素Ｃ（０，−４）から画素Ｃ（０，１５）までの１０ワードになる。
【０１２９】
実施の形態２によって得られる効果は実施の形態１によって得られる効果と同様である。現画像、参照画像の各々から縮小画像を生成する際に間引く画素の画素位置が互いに垂直方向にずれるように間引き処理が行なわれるので、縮小画像を用いた動きベクトル探索において算出される動きベクトルの値は０以外の値になる。よって実施の形態１と同様に垂直方向に１０ワードの参照画像のデータがあれば、近傍探索の実施が可能である。
【０１３０】
以上説明したように、実施の形態２によれば近傍探索時の参照画像の画素転送数を低減することができ、メモリ転送帯域を効率的に使用することが可能になる。
【０１３１】
［実施の形態３］
図２６は、この発明の実施の形態３による動き探索装置が含まれる画像符号化装置の構成の一例を示す図である。
【０１３２】
図２６を参照して、画像符号化装置１００Ｂは、図１の動き探索装置４に代えて動き探索装置４Ｂを含む点において図１の画像符号化装置１００と相違するが、その他の部分については図１の画像符号化装置１００の相当する部分と同様である。よって、図１の画像符号化装置１００と同様な部分についての説明は重複になるので以後繰返さない。
【０１３３】
動き探索装置４Ｂは、図１のサブサンプルフィルタ１１に代えてサブサンプルフィルタ１１Ｂを含み、図１のサブサンプルフィルタ１２に代えてサブサンプルフィルタ１２Ｂを含む点において図１の動き探索装置４と相違するが、その他の部分については図１の動き探索装置４の相当する部分と同様である。よって、動き探索装置４と同様な部分についての説明は重複になるので以後繰返さない。
【０１３４】
サブサンプルフィルタ１１Ｂは現画像ＶＤＩＮを受けて、水平方向および垂直方向に画素の間引き処理を行なって対象マクロブロックＴＭＢ３を出力する。また、サブサンプルフィルタ１２Ｂは加算部１０から参照画像を受け、水平方向および垂直方向に画素の間引き処理を行なって縮小画像を生成する。ただし、サブサンプルフィルタ１２Ｂによって生成される縮小画像の画素位置はサブサンプルフィルタ１１Ｂによって生成される縮小画像の画素位置と水平方向に＋１画素異なるように生成される。サブサンプルフィルタ１１Ｂ，１２Ｂの処理の詳細については後に説明する。
【０１３５】
図２７は、サブサンプルフィルタ１１Ｂの処理の概要を示すフローチャートである。
【０１３６】
図２７を参照して、まず、ステップＳ５１で処理が開始されると、次にステップＳ５２においてビデオ入力のｎ枚目（ただしｎは１以上の整数とする）のフレームが入力される。
【０１３７】
続いて、ステップＳ５３では処理の対象となる行が奇数行であるか偶数行かによって以後の処理が切り替わる。
【０１３８】
ステップＳ５３において、処理の対象となる行が奇数行であればステップＳ５４に進む。ステップＳ５４では１行に含まれる画素が間引かれ、画素は動き検出装置１５に出力されない。一方、ステップＳ５３において、処理の対象となる行が偶数行であればステップＳ５５に進む。ステップＳ５５では偶数番目の画素位置にある画素が動き検出装置１５に出力される。なお、ステップＳ５３〜Ｓ５５までの処理はマクロブロックごとに行なわれる。
【０１３９】
ｎ枚目のフレームに含まれるすべての行の画素に対してステップＳ５４またはＳ５５で示される処理が終了すると、続いてステップＳ５６に進み、ｎ＋１枚目のフレームに対する間引き処理が行なわれる。ステップＳ５６に続いてステップＳ５２に戻り、以後、ステップＳ５２からステップＳ５５で示される間引き処理が行なわれる。
【０１４０】
図２８は、サブサンプルフィルタ１２Ｂの処理の概要を示すフローチャートである。
【０１４１】
図２８を参照して、まず、ステップＳ６１で処理が開始されると、次にステップＳ６２において参照画像のｎ枚目のフレームが入力される。
【０１４２】
続いて、ステップＳ６３では処理の対象となる行が奇数行であるか偶数行かによって以後の処理が切り替わる。
【０１４３】
ステップＳ６３において、処理の対象となる行が奇数行であればステップＳ６４に進む。ステップＳ６４では１行に含まれる画素が間引かれ、画素はフレームメモリ１４に出力されない。一方、ステップＳ６３において、処理の対象となる行が偶数行であればステップＳ６５に進む。ステップＳ６５では奇数番目の画素位置にある画素がフレームメモリ１４に出力される。
【０１４４】
ｎ枚目のフレームに含まれるすべての行の画素に対してステップＳ６４またはＳ６５で示される処理が終了すると、続いてステップＳ６６に進み、ｎ＋１枚目のフレームに対する間引き処理が行なわれる。ステップＳ６６に続いてステップＳ６２に戻り、以後、ステップＳ６２からステップＳ６５で示される間引き処理が行なわれる。
【０１４５】
図２９は、対象マクロブロックＴＭＢ３の例を示す図である。
【０１４６】
図２９を参照して、対象マクロブロックＴＭＢ３は、図２７のステップＳ５４，Ｓ５５で説明される間引き処理が行なわれて生成された縮小画像である。代表的に行Ｌ０，Ｌ１に含まれる画素について説明する。行Ｌ０は偶数行であるので偶数番目の画素位置にある画素が動き検出装置１５に出力される。一方、行Ｌ１は奇数行であるので図２７におけるステップＳ５４に示される間引き処理が行なわれ、行Ｌ１に含まれる画素は動き検出装置１５に出力されない。
【０１４７】
図３０は、探索領域ＳＷＳＢ３の例を示す図である。
【０１４８】
図３０を参照して、探索領域ＳＷＳＢ３は、図２８のステップＳ６４，Ｓ６５で説明される間引き処理が行なわれて生成された縮小画像である。代表的に行Ｌ０，Ｌ１に含まれる画素について説明する。行Ｌ０は偶数行であるので奇数番目の画素位置にある画素がフレームメモリ１４に出力される。一方、行Ｌ１は奇数行であるので行Ｌ１に含まれる画素はフレームメモリ１４に出力されない。
【０１４９】
行Ｌ０の上部に示される値は対象マクロブロックＴＭＢ３と探索領域ＳＷＳＢ３とを用いて得られる水平方向の動きベクトルの値である。図３０に示される水平方向の動きベクトルの値は２画素単位の値になり、かつ、奇数になる。つまり、実施の形態３において得られる水平方向の動きベクトルの値は実施の形態１において得られる水平方向の動きベクトルの値と同様である。
【０１５０】
なお、実施の形態１，２と同様に、縮小画像を用いた探索処理およびオリジナル画像を用いた近傍探索処理では水平方向および垂直方向の動きベクトルが求められる。以下では、一例として水平方向の動きベクトルに関して説明する。
【０１５１】
図３１は、縮小画像によって得られる水平方向の動きベクトルの値が＋１の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
【０１５２】
図３１を参照して、探索領域ＳＷにおける近傍探索の原点は画素Ｃ（１，０）である。つまり、縮小画像によって得られる水平方向の動きベクトルの値は１である。探索範囲は現画像の対象マクロブロックに対する「０」画素変位から「＋２」画素変位までの範囲である。
【０１５３】
なお、以後、実施の形態３において探索範囲および画素転送数を説明する際には画素Ｃ（０，０）から画素Ｃ（１９，０）までの画素を含む行について代表的に説明する。
【０１５４】
図３１において探索範囲は画素Ｃ（０，０）から画素Ｃ（１７，０）までの範囲になる。実施の形態１において説明されるようにマクロブロックの境界と一致するように設定されたバースト転送単位でフレームメモリ１４から参照画素のデータが転送される。よって、探索範囲に対する参照画素の転送量は「０」画素変位から「＋４」画素変位までの範囲、つまり画素Ｃ（０，０）から画素Ｃ（１９，０）までの１０ワードになる。
【０１５５】
図３２は、縮小画像によって得られる水平方向の動きベクトルの値が−１の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
【０１５６】
図３２を参照して、動きベクトルの値が水平方向に−１の場合の探索領域ＳＷにおける探索範囲および画素の転送数が示される。
【０１５７】
図３２を参照して、探索領域ＳＷにおける近傍探索の原点は画素Ｃ（−１，０）である。つまり、縮小画像によって得られる水平方向の動きベクトルの値は１である。探索範囲は現画像の対象マクロブロックに対する「−２」画素変位から「０」画素変位までの範囲である画素Ｃ（−２，０）から画素Ｃ（１５，０）までの範囲になる。
【０１５８】
探索範囲に対しフレームメモリ１４から転送される参照画素の範囲は「−４」画素変位から「０」画素変位までの範囲である画素Ｃ（−４，０）から画素Ｃ（１５，０）までの範囲になる。よって、水平方向の参照画素の転送量は１０ワードになる。
【０１５９】
実施の形態３によって得られる効果は実施の形態１によって得られる効果と同様である。現画像、参照画像のそれぞれから縮小画像を生成する際に画素の間引き位置が互いに水平方向にずれるように間引き処理が行なわれるので、縮小画像を用いた動きベクトル探索において算出される値は０にならない。よって、参照画素の転送量が１２ワードになるという特殊状態は発生せず、水平方向に１０ワードの参照画像のデータがあれば、近傍探索の実施が可能である。
【０１６０】
さらに、実施の形態３では垂直方向にも画素の間引きが行なわれた縮小画像が生成されているので動き検出装置１５において縮小画像の画素ごとにマッチング演算を行なう場合の演算量を減らすことが可能になる。
【０１６１】
以上説明したように、実施の形態３によればフレームメモリ１４の転送帯域を効率的に使用することができ、かつ、演算量を減らすことが可能になる。
【０１６２】
［実施の形態４］
図３３は、この発明の実施の形態４による動き探索装置が含まれる画像符号化装置の構成の一例を示す図である。
【０１６３】
図３３を参照して、画像符号化装置１００Ｃは、図１の動き探索装置４に代えて動き探索装置４Ｃを含む点において図１の画像符号化装置１００と相違するが、その他の部分については図１の画像符号化装置１００の相当する部分と同様である。よって、図１の画像符号化装置１００と同様な部分についての説明は重複になるので以後繰返さない。
【０１６４】
動き探索装置４Ｃは、図１のサブサンプルフィルタ１１に代えてサブサンプルフィルタ１１Ｃを含み、図１のサブサンプルフィルタ１２に代えてサブサンプルフィルタ１２Ｃを含む点において図１の動き探索装置４と相違するが、その他の部分については図１の動き探索装置４の相当する部分と同様である。よって、動き探索装置４と同様な部分についての説明は重複になるので以後繰返さない。
【０１６５】
サブサンプルフィルタ１１Ｃは現画像ＶＤＩＮを受けて、対象マクロブロックＴＭＢ４を出力する。サブサンプルフィルタ１１Ｃの処理は水平方向に画素の間引きを行なう点においてサブサンプルフィルタ１１の処理と同様であるが、サブサンプルフィルタ１１よりも画素の間引き数を増やした処理である。
【０１６６】
サブサンプルフィルタ１２Ｃは加算部１０から参照画像を受け、水平方向に画素の間引きを行なって縮小画像を出力する。サブサンプルフィルタ１２Ｃの処理は水平方向に画素の間引きを行なう点においてサブサンプルフィルタ１２の処理と同様であるが、サブサンプルフィルタ１２よりも画素の間引き数を増やした処理である。サブサンプルフィルタ１１Ｃ，１２Ｃの処理の詳細については後に説明する。
【０１６７】
図３４は、サブサンプルフィルタ１１Ｃの処理の概要を示すフローチャートである。
【０１６８】
図３４を参照して、まず、ステップＳ７１で処理が開始されると、次にステップＳ７２においてビデオ入力のｎ枚目（ただしｎは１以上の整数とする）のフレームが入力される。
【０１６９】
続いて、ステップＳ７３では各行の４ｍ番目に位置する画素を出力する間引き処理が行なわれる。なお、ステップＳ７３での処理はマクロブロックごとに行なわれるのでｍは０から３までの整数となる。
【０１７０】
ｎ枚目のフレームに含まれるすべての行の画素に対してステップＳ７３の処理が終了すると、続いてステップＳ７４に進み、ｎ＋１枚目のフレームに対する間引き処理が行なわれる。ステップＳ７４に続いてステップＳ７２に戻り、以後、ステップＳ７２，Ｓ７３で示される間引き処理が行なわれる。
【０１７１】
図３５は、サブサンプルフィルタ１２Ｃの処理の概要を示すフローチャートである。
【０１７２】
図３５を参照して、まず、ステップＳ８１で処理が開始されると、次にステップＳ８２において参照画像のｎ枚目のフレームが入力される。
【０１７３】
続いて、ステップＳ８３では各行の４ｍ＋２番目に位置する画素を出力する間引き処理が行なわれる。つまり、サブサンプルフィルタ１２Ｃで生成される縮小画像の画素位置はサブサンプルフィルタ１１Ｃで生成される縮小画像の画素位置に対し水平方向に＋２画素だけ変位する。なお、ステップＳ８３での処理はマクロブロックごとに行なわれるのでｍは０から３までの整数となる。
【０１７４】
ｎ枚目のフレームに含まれるすべての行の画素に対してステップＳ８３の処理が終了すると、続いてステップＳ８４に進み、ｎ＋１枚目のフレームに対する間引き処理が行なわれる。ステップＳ８４に続いてステップＳ８２に戻り、以後、ステップＳ８２，Ｓ８３で示される間引き処理が行なわれる。
【０１７５】
図３６は、対象マクロブロックＴＭＢ４の例を示す図である。
【０１７６】
図３６を参照して、対象マクロブロックＴＭＢ４は、図３４のステップＳ７３で説明される間引き処理が行なわれて生成された縮小画像である。たとえば行Ｌ０に含まれる画素について説明すると画素Ａ（０，０）、画素Ａ（４，０）、画素Ａ（８，０）、画素Ａ（１２，０）が出力され、行Ｌ０の残りの画素は間引き処理によって出力されない。
【０１７７】
図３７は、探索領域ＳＷＳＢ４の例を示す図である。
【０１７８】
図３７を参照して、探索領域ＳＷＳＢ４は、図３５のステップＳ８３で説明される間引き処理が行なわれて生成された縮小画像である。たとえば行Ｌ０に含まれる画素について説明すると画素Ｂ（２，０）、画素Ｂ（６，０）、画素Ｂ（１０，０）、画素Ｂ（１４，０）が出力され、行Ｌ０の残りの画素は間引き処理によって出力されない。
【０１７９】
対象マクロブロックＴＭＢ４と探索領域ＳＷＳＢ４とを用いて得られる水平方向の動きベクトルは４画素単位に得られる。行Ｌ０の上部に示される値は対象マクロブロックＴＭＢ４と探索領域ＳＷＳＢ４によって得られる水平方向の動きベクトルの値である。たとえば画素Ｂ（２，０）と図３６の画素Ａ（０，０）が同一位置になるように探索領域ＳＷＳＢ４を移動させた場合の水平方向の動きベクトルの値は２であり、画素Ｂ（６，０）と図３６の画素Ａ（０，０）が同一位置になるように探索領域ＳＷＳＢ４を移動させた場合の水平方向の動きベクトルの値は６になる。探索領域ＳＷＳＢ４と対象マクロブロックＴＭＢ４とで間引かれた画素の位置が異なるので動きベクトルの値は０にはならない。
【０１８０】
なお、実施の形態１から実施の形態３までと同様に、縮小画像を用いた探索処理およびオリジナル画像を用いた近傍探索処理では水平方向および垂直方向の動きベクトルが求められる。以下では、一例として水平方向の動きベクトルに関して説明する。
【０１８１】
図３８は、縮小画像によって得られる水平方向の動きベクトルの値が＋２の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
【０１８２】
図３８を参照して、探索領域ＳＷにおける近傍探索の原点は画素Ｃ（２，０）である。つまり、縮小画像によって得られる水平方向の動きベクトルの値は＋２である。探索範囲は現画像の対象マクロブロックに対する「＋１」画素変位から「＋３」画素変位までの範囲である。
【０１８３】
なお、以後、実施の形態４において探索範囲および画素転送数を説明する際には画素Ｃ（０，０）から画素Ｃ（１９，０）までの画素を含む行について代表的に説明する。
【０１８４】
図３８において探索範囲は画素Ｃ（１，０）から画素Ｃ（１８，０）までの範囲になる。実施の形態１において説明されるようにマクロブロックの境界と一致するように設定されたバースト転送単位でフレームメモリ１４から参照画素のデータが転送される。よって、探索範囲に対する参照画素の転送量は「０」画素変位から「＋４」画素変位までの範囲、つまり画素Ｃ（０，０）から画素Ｃ（１９，０）までの１０ワードになる。
【０１８５】
図３９は、縮小画像によって得られる水平方向の動きベクトルの値が−２の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
【０１８６】
図３９を参照して、探索領域ＳＷにおける近傍探索の原点は画素Ｃ（−２，０）である。つまり、縮小画像によって得られる水平方向の動きベクトルの値は−２である。探索範囲は現画像の対象マクロブロックに対する「−３」画素変位から「−１」画素変位までの範囲である。
【０１８７】
図３９において探索範囲は画素Ｃ（−３，０）から画素Ｃ（１４，０）までの範囲になる。よって、探索範囲に対する参照画素の転送量は「−４」画素変位から「０」画素変位までの範囲、つまり画素Ｃ（−４，０）から画素Ｃ（１５，０）までの１０ワードになる。
【０１８８】
実施の形態４によって得られる効果は実施の形態１によって得られる効果と同様である。現画像、参照画像のそれぞれから縮小画像を生成する際に画素の間引き位置が互いに水平方向にずれるように間引き処理が行なわれるので、縮小画像を用いた動きベクトル探索において算出される値は０にならない。よって、参照画素の転送量が１２ワードになるという特殊状態は発生せず、水平方向に１０ワードの参照画像のデータがあれば、近傍探索の実施が可能である。
【０１８９】
以上説明したように、実施の形態４によればフレームメモリ１４の転送帯域を効率的に使用することができ、かつ、演算量を減らすことが可能になる。
【０１９０】
なお、一般的にフレームメモリ１４において探索領域ＳＷはマクロブロックの境界とバースト単位の区切りが一致するようにメモリ上にマッピングされる。この発明において実施の形態１から４に説明されるように、参照画素はバースト単位を超えないようにフレームメモリ１４から転送される。よって、以上説明される実施の形態１から４において、２画素を１ワードとし、かつフレームメモリ１４から画素を転送する際のバースト長は２であるとして説明したが、効果は１ワード当たりの画素数およびバースト長によらず、実施の形態１から４に示される効果と同様の効果が得られる。
【０１９１】
また、実施の形態１から４に示されるサブサンプルフィルタは、それぞれの実施の形態において示される縮小画像を生成するフィルタであればよく、フィルタ構成は特に限定されるものではない。
【０１９２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１９３】
【図１】この発明の実施の形態１による動き探索装置を含む画像符号化装置の構成例を示す図である。
【図２】サブサンプルフィルタ１１における間引き処理を模式的に説明する図である。
【図３】サブサンプルフィルタ１２における間引き処理を模式的に説明する図である。
【図４】サブサンプルフィルタ１２における間引き処理の他の例を模式的に説明する図である。
【図５】探索処理の単位となるマクロブロックの構成を示す図である。
【図６】サブサンプルフィルタ１１の処理の概要を示すフローチャートである。
【図７】サブサンプルフィルタ１２の処理を示すフローチャートである。
【図８】対象マクロブロックＴＭＢ１の例を示す図である。
【図９】フレームメモリ１４から動き検出装置１５に転送される画素の転送単位の例を示す図である。
【図１０】探索領域ＳＷＳＢ１の例を説明する図である。
【図１１】図１の動き検出装置１５の構成の一例を示す図である。
【図１２】動き検出装置１５の処理の概要を示すフローチャートである。
【図１３】サブサンプルフィルタ１１，１２の間引き処理が同一の場合に得られる探索領域を示す図である。
【図１４】縮小画像によって得られる水平方向の動きベクトルの値が＋２の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
【図１５】縮小画像によって得られる水平方向の動きベクトルの値が−２の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
【図１６】縮小画像によって得られる水平方向の動きベクトルの値が０の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
【図１７】縮小画像によって得られる水平方向の動きベクトルの値が＋１の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
【図１８】縮小画像によって得られる水平方向の動きベクトルの値が−１の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
【図１９】この発明の実施の形態２による動き探索装置が含まれる画像符号化装置の構成の一例を示す図である。
【図２０】サブサンプルフィルタ１１Ａの処理の概要を示すフローチャートである。
【図２１】サブサンプルフィルタ１２Ａの処理の概要を示すフローチャートである。
【図２２】対象マクロブロックＴＭＢ２の例を示す図である。
【図２３】探索領域ＳＷＳＢ２の例を示す図である。
【図２４】縮小画像によって得られる垂直方向の動きベクトルの値が＋１の場合において近傍探索に必要な垂直方向の探索範囲および画素転送数を示す図である。
【図２５】縮小画像によって得られる垂直方向の動きベクトルの値が−１の場合において近傍探索に必要な垂直方向の探索範囲および画素転送数を示す図である。
【図２６】この発明の実施の形態３による動き探索装置が含まれる画像符号化装置の構成の一例を示す図である。
【図２７】サブサンプルフィルタ１１Ｂの処理の概要を示すフローチャートである。
【図２８】サブサンプルフィルタ１２Ｂの処理の概要を示すフローチャートである。
【図２９】対象マクロブロックＴＭＢ３の例を示す図である。
【図３０】探索領域ＳＷＳＢ３の例を示す図である。
【図３１】縮小画像によって得られる水平方向の動きベクトルの値が＋１の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
【図３２】縮小画像によって得られる水平方向の動きベクトルの値が−１の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
【図３３】この発明の実施の形態４による動き探索装置が含まれる画像符号化装置の構成の一例を示す図である。
【図３４】サブサンプルフィルタ１１Ｃの処理の概要を示すフローチャートである。
【図３５】サブサンプルフィルタ１２Ｃの処理の概要を示すフローチャートである。
【図３６】対象マクロブロックＴＭＢ４の例を示す図である。
【図３７】探索領域ＳＷＳＢ４の例を示す図である。
【図３８】縮小画像によって得られる水平方向の動きベクトルの値が＋２の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
【図３９】縮小画像によって得られる水平方向の動きベクトルの値が−２の場合において近傍探索に必要な水平方向の探索範囲および画素転送数を示す図である。
【符号の説明】
【０１９４】
１  減算部、２  符号化部、３  復号化部、４，４Ａ，４Ｂ，４Ｃ  動き探索装置、５  ＤＣＴ部、６  量子化部、７  ＶＬＣ部、８  逆量子化部、９  逆ＤＣＴ部、１０  加算部、１１，１２，１１Ａ，１２Ａ，１１Ｂ，１２Ｂ，１１Ｃ，１２Ｃ  サブサンプルフィルタ、１３  動き評価部、１４  フレームメモリ、１５  動き検出装置、２０  広範囲探索部、２１，３１  入力部、２２，３２  演算部、２３，３３  比較部、２４，３４  制御回路、２５，３５  ＴＭＢメモリ、２６，３６  ＳＷメモリ、３０  狭範囲探索部、１００，１００Ａ，１００Ｂ，１００Ｃ  画像符号化装置、Ａ０〜Ａ１６，Ｂ０，Ｂ１，Ｃ０〜Ｃ１６，Ｄ０，ＤＡ０，ＤＡ１，Ｇ１〜Ｇ４  画素、Ｌ０，Ｌ１  行、ＭＢ１  マクロブロック、Ｓ１〜Ｓ８４  ステップ、ＳＷ，ＳＷＳＢ０〜ＳＷＳＢ４  探索領域、ＴＭＢ１〜ＴＭＢ４  対象マクロブロック、ＶＤＩＮ  現画像。
【図１】
2005354174.tif 000003
【図２】
2005354174.tif 000004
【図３】
2005354174.tif 000005
【図４】
2005354174.tif 000006
【図５】
2005354174.tif 000007
【図６】
2005354174.tif 000008
【図７】
2005354174.tif 000009
【図８】
2005354174.tif 000010
【図９】
2005354174.tif 000011
【図１０】
2005354174.tif 000012
【図１１】
2005354174.tif 000013
【図１２】
2005354174.tif 000014
【図１３】
2005354174.tif 000015
【図１４】
2005354174.tif 000016
【図１５】
2005354174.tif 000017
【図１６】
2005354174.tif 000018
【図１７】
2005354174.tif 000019
【図１８】
2005354174.tif 000020
【図１９】
2005354174.tif 000021
【図２０】
2005354174.tif 000022
【図２１】
2005354174.tif 000023
【図２２】
2005354174.tif 000024
【図２３】
2005354174.tif 000025
【図２４】
2005354174.tif 000026
【図２５】
2005354174.tif 000027
【図２６】
2005354174.tif 000028
【図２７】
2005354174.tif 000029
【図２８】
2005354174.tif 000030
【図２９】
2005354174.tif 000031
【図３０】
2005354174.tif 000032
【図３１】
2005354174.tif 000033
【図３２】
2005354174.tif 000034
【図３３】
2005354174.tif 000035
【図３４】
2005354174.tif 000036
【図３５】
2005354174.tif 000037
【図３６】
2005354174.tif 000038
【図３７】
2005354174.tif 000039
【図３８】
2005354174.tif 000040
【図３９】
2005354174.tif 000041