(57)【特許請求の範囲】
【請求項１】
符号化対象の画像を縮小した縮小画像を複数の領域に分割して、前記領域ごとに第１の動きベクトルの検出を行う第１の動きベクトル検出部と、
判定対象の前記第１の動きベクトルが含まれる前記領域に隣接する複数の前記領域の前記第１の動きベクトルの第１方向成分と第２方向成分の最小値または最大値と、前記判定対象の前記第１の動きベクトルの第１方向成分と第２方向成分との比較結果に基づき、前記判定対象の前記第１の動きベクトルが正しいか否かを判定することで、前記領域ごとに検出された前記第１の動きベクトルの確からしさを判定する動きベクトル判定部と、
確からしさの判定結果をもとに、正しいと判定された前記第１の動きベクトルの予測方向を選択する予測方向選択部と、
元の前記画像において、選択された前記予測方向で第２の動きベクトルの検出を行う第２の動きベクトル検出部と、
を有することを特徴とする動画像符号化装置。
【請求項２】
前記予測方向選択部は、前記第１の動きベクトル検出部にて前方向予測及び後方向予測により検出されたそれぞれの前記第１の動きベクトルが、両方正しいと判定された場合、前記前方向予測時の差分絶対和と前記後方向予測時の差分絶対和の比較結果に応じて、一方の前記予測方向を選択することを特徴とする請求項１記載の動画像符号化装置。
【請求項３】
前記予測方向選択部は、前記第１の動きベクトル検出部にて前方向予測及び後方向予測により検出されたそれぞれの前記第１の動きベクトルが、両方正しいと判定された場合、前記画像が存在するフレームに対して、時間的に近い位置に存在する参照ピクチャを参照する方向を前記予測方向として選択することを特徴とする請求項１または２に記載の動画像符号化装置。
【請求項４】
前記前方向予測時の前記差分絶対和と、前記後方向予測時の前記差分絶対和の差分の絶対値が所定の閾値よりも小さい場合に、前記フレームに対して、時間的に近い位置に存在する前記参照ピクチャを参照する前記方向を前記予測方向として選択することを特徴とする請求項３記載の動画像符号化装置。
【請求項５】
符号化対象の画像を縮小した縮小画像を複数の領域に分割して、前記領域ごとに第１の動きベクトルの検出を行い、
判定対象の前記第１の動きベクトルが含まれる前記領域に隣接する複数の前記領域の前記第１の動きベクトルの第１方向成分と第２方向成分の最小値または最大値と、前記判定対象の前記第１の動きベクトルの第１方向成分と第２方向成分との比較結果に基づき、前記判定対象の前記第１の動きベクトルが正しいか否かを判定することで、前記領域ごとに検出された前記第１の動きベクトルの確からしさを判定し、
確からしさの判定結果をもとに、正しいと判定された前記第１の動きベクトルの予測方向を選択し、
元の前記画像において、選択された前記予測方向で第２の動きベクトルの検出を行うことを特徴とする動きベクトル検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像符号化装置及び動きベクトル検出方法に関する。
【背景技術】
【０００２】
動画像データはデータ量が大きいため、送信装置から受信装置へ伝送される際、あるいは記憶装置に格納される際には、圧縮符号化処理が施されることが多い。代表的な動画像の圧縮符号化方式として、ＩＳＯ／ＩＥＣ（International Standardization Organization／International Electrotechnical Commission）で策定されたＭＰＥＧ（Moving Picture Experts Group）−２／ＭＰＥＧ−４が広く利用されている。また、ＩＴＵ（国際電気通信連合）とＩＳＯ／ＩＥＣのＭＰＥＧによって策定された、Ｈ．２６４／ＡＶＣ（Advanced Video Coding）が知られている。
【０００３】
これらの圧縮符号化方式における動きベクトルの検出処理では、符号化対象のピクチャにおいて、マクロブロックごとに参照ピクチャに対する物体の位置座標（動きベクトル）が評価され、最も類似している部分の動きベクトルが検出される。類似度の評価値としては、予測対象のマクロブロックの画素と空間的に近い位置にある参照ピクチャの画素の値の差分の絶対値を、マクロブロックの全画素に関して加えたＳＡＤ（差分絶対値和）が主として用いられる。
【０００４】
たとえば、Ｈ．２６４／ＡＶＣなどにおいては、符号化の際、画面内予測を行うＩピクチャ、前方向予測を行うＰピクチャ、前方向予測と後方向予測の両方を行うＢピクチャの３種類のピクチャが存在する。Ｂピクチャでは複数の参照ピクチャの中から最適な動きベクトルを検出する必要があり、演算量が多くなる。
【０００５】
演算量削減の方法として、階層的な動きベクトル検出方法が知られている。この方法では、たとえば、フレームの画素を間引いて生成した縮小画像を用いて動きベクトルを検出し（前処理検出）、検出した動きベクトルを中心に元の画像で、前方向予測、後方向予測における１画素精度の動きベクトルを検出する（主検出）。
【０００６】
また、参照ピクチャのインデックス番号を符号化する際に必要なビットに応じて、動きベクトルの検出の際に選択する参照ピクチャを決定することが知られている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２００６／００１４８５号
【特許文献２】特開２００４−６４５６４号公報
【特許文献３】特開２００３−１５３２７９号公報
【特許文献４】特開平７−１６２８６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、縮小画像ではＳＡＤの信頼性が低いため、ＳＡＤをもとに求められる動きベクトルの精度が低下し、画質の劣化が生じるといった問題があった。
たとえば、画素値のばらつきが大きい原画像から、画素を一定間隔で間引いたり、一定領域ごとの画素値を平均化して生成した縮小画像を用いてＳＡＤを計算すると、正しい動きベクトルが得られない可能性があるからである。
【０００９】
上記の点を鑑みて、本発明は、画質の劣化を抑制しつつ、動きベクトル検出における演算量を削減可能な動画像符号化装置及び動きベクトル検出方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、以下のような動画像符号化装置が提供される。
この動画像符号化装置は、符号化対象の画像を縮小した縮小画像を用いて第１の動きベクトルの検出を行う第１の動きベクトル検出部と、検出された前記第１の動きベクトルの確からしさを判定する動きベクトル判定部と、確からしさの判定結果をもとに、正しいと判定された前記第１の動きベクトルの予測方向を選択する予測方向選択部と、元の前記画像において、選択された前記予測方向で第２の動きベクトルの検出を行う第２の動きベクトル検出部と、を有する。
【００１１】
また、上記目的を達成するために、以下のような動きベクトル検出方法が提供される。
この動きベクトル検出方法は、符号化対象の画像を縮小した縮小画像を用いて第１の動きベクトルの検出を行い、検出された前記第１の動きベクトルの確からしさを判定し、確からしさの判定結果をもとに、正しいと判定された前記第１の動きベクトルの予測方向を選択し、元の前記画像において、選択された前記予測方向で第２の動きベクトルの検出を行う。
【発明の効果】
【００１２】
開示の動画像符号化装置及び動きベクトル検出方法によれば、画質の劣化を抑止しつつ、動きベクトル検出における演算量を削減できる。
【図面の簡単な説明】
【００１３】
【図１】本実施の形態の動画像符号化装置の主要部の構成を示す図である。
【図２】動きベクトル検出方法の一例を示すフローチャートである。
【図３】ピクチャの並びの一例を示す図である。
【図４】１フレームの画像（原画像）と縮小画像の一例を示す図である。
【図５】動きベクトルの確からしさの判定動作の具体例を示す図である。
【図６】予測方向の選択処理の流れを示すフローチャートである。
【図７】動きベクトル検出（主検出）処理の流れを示すフローチャートである。
【図８】動きベクトル検出の際のピクチャ間の参照関係を示す図である。
【図９】動画像符号化装置の一例の構成を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態を、図面を参照しつつ説明する。
図１は、本実施の形態の動画像符号化装置の主要部の構成を示す図である。
動画像符号化装置１０は、縮小画像生成部１１、縮小動きベクトル検出部１２、動きベクトル判定部１３、予測方向選択部１４、動きベクトル検出部１５を有している。
【００１５】
縮小画像生成部１１は、画像１フレームを図示しないフレームメモリから読み出し、縮小画像を生成する。たとえば、縮小画像生成部１１は、元の画像を縦１／ｎ、横１／ｎに縮小する。具体的な縮小の例については後述する。
【００１６】
縮小動きベクトル検出部１２は、生成された縮小画像を用いて動きベクトルの検出を行う。ここでは、縮小動きベクトル検出部１２は、たとえば、各フレームの縮小画像間のＳＡＤをマクロブロックごとに計算して、動きベクトルを検出する。
【００１７】
動きベクトル判定部１３は、検出された動きベクトルの確からしさを判定する。動きベクトル判定部１３は、判定対象のマクロブロックの動きベクトルを、隣接するマクロブロックの動きベクトルと比較して、その確からしさを判定する。詳細は後述する。
【００１８】
予測方向選択部１４は、確からしさの判定結果をもとに、正しいと判定された動きベクトルの予測方向を選択する。Ｂピクチャの場合、前方向予測と後方向予測があるが、前方向予測で得られた動きベクトルが正しく、後方向予測で得られた動きベクトルが正しくないと判定された場合、予測方向選択部１４は、予測方向として前方向を選択する。
【００１９】
動きベクトル検出部１５は、元の画像において、選択された予測方向で動きベクトル検出を行う。
このように、本実施の形態の動画像符号化装置１０は、縮小画像をもとに検出されたベクトルの確からしさを判定して、正しいと判定された動きベクトルの予測方向で、元の画像の動きベクトルの検出を行う。これにより、動きベクトル検出の際の予測方向を限定できるため、演算量を削減できる。また、縮小画像をもとに検出されたベクトルの確からしさを判定して、正しいと判定された動きベクトルの予測方向を用いるため、精度よく動きベクトルを検出でき、画質の劣化を抑制できる。
【００２０】
以下、本実施の形態の動画像符号化装置１０による動きベクトル検出方法を、より具体的に説明する。
図２は、動きベクトル検出方法の一例を示すフローチャートである。
【００２１】
縮小画像生成部１１は、１フレームの符号化対象画像を図示しないフレームメモリから読み出し、縮小画像を生成する（ステップＳ１）。
図３は、ピクチャの並びの一例を示す図である。
【００２２】
ここでは、時間軸に沿って、Ｉ０／Ｐ０ピクチャ２０、Ｂ１ピクチャ２１、Ｂ２ピクチャ２２、Ｉ３／Ｐ３ピクチャ２３と、フレームごとに原画像が順に現れる場合について示されている。ただし、このような入力ピクチャは符号化順に並び変えられる。つまりＢ１ピクチャ２１、Ｂ２ピクチャ２２の符号化の際に、時間的に後に入力されるＩ３／Ｐ３ピクチャ２３が参照ピクチャとして用いられる場合があるので、Ｉ３／Ｐ３ピクチャ２３がこれらＢピクチャよりも先の符号化順となる。
【００２３】
縮小画像生成部１１は、上記のようなフレームの各画素Ｐ（ｘ，ｙ）に対して、以下のような式（１）でＰａ（ｘ，ｙ）を計算する。
【００２４】
【数１】
0005407974.tif 000002
【００２５】
式（１）において、ｘは水平方向の座標、ｙは垂直方向の座標、ａ（ｉ，ｊ）は係数を示す。ａ（ｉ，ｊ）は低周波通過フィルタとなるような値を用いることが望ましく、たとえば、ｉ，ｊの値によらずａ（ｉ，ｊ）＝１／４９などとしてもよい。
【００２６】
そして、縮小画像生成部１１は、算出されたＰａ（ｘ，ｙ）のうち、ｘ＝４ｍ＋ａ、ｙ＝４ｍ＋ｂ（ｍは０以上の整数、ａ、ｂは０以上３以下の任意の整数）の画素をサンプリングし、これを縮小画像として、図示しないフレームメモリに保存する。
【００２７】
図４は、１フレームの画像（原画像）と縮小画像の一例を示す図である。
図中の白丸と黒丸は画素を示しており、黒丸の画素は縮小画像の生成の際にサンプリングされる画素を示している。また、横軸がｘ方向の画素の位置、縦軸がｙ方向の画素の位置を示している。
【００２８】
この例の場合、縮小画像生成部１１は、ｘ＝４ｍ＋１、ｙ＝４ｍ＋１の画素をサンプリングすることで、元の画像に対して１／４の縮小率の縮小画像を生成している。
上記のように、低周波通過フィルタを通すことで、高周波成分の折り返し歪みや、ノイズの影響を抑制した縮小画像を生成することができ、後述する縮小動きベクトルの検出精度が高まる。
【００２９】
次に、縮小動きベクトル検出部１２による動き検出が行われる。なお、以下の説明では、Ｂピクチャ（図３に示したような、Ｂ１ピクチャ２１またはＢ２ピクチャ２２）に関する動きベクトルの検出方法について説明する。
【００３０】
まず、縮小動きベクトル検出部１２は、縮小画像生成部１１で生成された縮小画像をマクロブロック（図２中ではＭＢと表記している）に分割して、最初のマクロブロックを処理対象マクロブロックとして設定する（ステップＳ２）。
【００３１】
そして、縮小動きベクトル検出部１２は、処理対象マクロブロックに対して、まず前方向予測による動きベクトル検出を行う（ステップＳ３）。たとえば、処理対象マクロブロックが、図３に示したＢ１ピクチャ２１の縮小画像に属する場合は、Ｂ１ピクチャ２１に対して時間的に前方向にあるＩ０／Ｐ０ピクチャ２０の縮小画像が参照ピクチャとなる。この場合、縮小動きベクトル検出部１２は、たとえば、処理対象マクロブロックと、Ｉ０／Ｐ０ピクチャ２０の縮小画像の探索範囲内のそれぞれの画素との間で、ＳＡＤを計算する。
【００３２】
ＳＡＤは以下の式で求められる。
【００３３】
【数２】
0005407974.tif 000003
【００３４】
ここで、ｃ（ｉ，ｊ）は処理対象マクロブロックの（ｉ，ｊ）の位置に存在する画素の値を示し、ｒ（ｘ＋ｉ，ｙ＋ｊ）は、参照ピクチャにおいて（ｉ，ｊ）から水平方向にｘ、垂直方向にｙだけ離れた（ｘ＋ｉ，ｙ＋ｊ）の位置に存在する画素の値を示す。また、ｎは処理対象マクロブロックの水平方向の画素数、ｍは処理対象マクロブロックの垂直方向の画素数である。縦横１６×１６画素をマクロブロックとしている原画像を１／４に縮小する場合は、ｎ＝ｍ＝４となる。また、水平方向を１／４、垂直方向を１／２の縮小率で原画像を縮小する場合には、ｎ＝４、ｍ＝８となる。
【００３５】
そして、縮小動きベクトル検出部１２は、探索範囲内の各画素に対して求められたＳＡＤのうち、最も小さいＳＡＤを示す（ｘ，ｙ）を動きベクトルとして検出する。
次に、縮小動きベクトル検出部１２は、処理対象マクロブロックに対して、後方向予測による動きベクトル検出を行う（ステップＳ４）。
【００３６】
たとえば、処理対象マクロブロックが、図３に示したＢ１ピクチャ２１の縮小画像に属する場合は、Ｂ１ピクチャ２１に対して時間的に後方向にあるＩ３／Ｐ３ピクチャ２３の縮小画像が参照ピクチャとなる。この場合、縮小動きベクトル検出部１２は、処理対象マクロブロックと、Ｉ３／Ｐ３ピクチャ２３の縮小画像の探索範囲内のそれぞれの画素との間で、前述の式（２）によりＳＡＤを計算する。
【００３７】
そして、縮小動きベクトル検出部１２は、探索範囲内の各画素に対して求められたＳＡＤのうち、最も小さいＳＡＤを示す（ｘ，ｙ）を動きベクトルとして検出する。
こうして検出された各方向の動きベクトルの情報は、たとえば、図示しないメモリなどに保持される。
【００３８】
縮小動きベクトル検出部１２は、生成した縮小画像の全てのマクロブロックに対して動きベクトルの検出処理が終了したか判定し（ステップＳ５）、終了していなければ、処理対象のマクロブロックとして次のマクロブロックを設定する（ステップＳ６）。そして、縮小動きベクトル検出部１２は、全マクロブロックの動きベクトルの検出が終了するまで、ステップＳ３〜Ｓ６の処理を繰り返す。
【００３９】
縮小画像での動きベクトルの検出が終了すると、動きベクトル判定部１３の処理が開始される。ここで動きベクトル判定部１３は、まず、最初のマクロブロックを処理対象マクロブロックとして設定し（ステップＳ７）、処理対象マクロブロックに対して動きベクトルの確からしさの判定を行う（ステップＳ８）。
【００４０】
図５は、動きベクトルの確からしさの判定動作の具体例を示す図である。
ここでは、縮小画像におけるマクロブロック３０の動きベクトルＭＶの確からしさを判定する例を示す。図５では、動きベクトルＭＶのｘ成分及びｙ成分を（ｘ，ｙ）と示している。
【００４１】
動きベクトル判定部１３は、処理対象のマクロブロック３０に隣接するマクロブロック３１，３２，３３，３４の動きベクトルＭＶ１，ＭＶ２，ＭＶ３，ＭＶ４をもとに、動きベクトルＭＶの確からしさを判定する。
【００４２】
処理対象のマクロブロック３０に対して上に隣接するマクロブロック３１の動きベクトルＭＶ１のｘ成分及びｙ成分を（ｘ１，ｙ１）、右に隣接するマクロブロック３２の動きベクトルＭＶ２のｘ成分及びｙ成分を（ｘ２，ｙ２）としている。また、処理対象のマクロブロック３０に対して下に隣接するマクロブロック３３の動きベクトルＭＶ３のｘ成分及びｙ成分を（ｘ３，ｙ３）、左に隣接するマクロブロック３４の動きベクトルＭＶ４のｘ成分及びｙ成分を（ｘ４，ｙ４）としている。
【００４３】
動きベクトル判定部１３は、まず、マクロブロック３０に隣接するマクロブロック３１〜３４の動きベクトルＭＶ１〜ＭＶ４の各成分の最小値及び最大値を求める。
ｘ方向の最小値は、ＭＩＮｘ＝ＭＩＮ（ｘ１，ｘ２，ｘ３，ｘ４）、ｙ方向の最小値は、ＭＩＮｙ＝ＭＩＮ（ｙ１，ｙ２，ｙ３，ｙ４）と表す。ｘ方向の最大値は、ＭＡＸｘ＝ＭＡＸ（ｘ１，ｘ２，ｘ３，ｘ４）、ｙ方向の最大値は、ＭＡＸｙ＝ＭＡＸ（ｙ１，ｙ２，ｙ３，ｙ４）と表す。
【００４４】
ここで、動きベクトル判定部１３は、動きベクトルＭＶの（ｘ，ｙ）が、ｘ≧ＭＩＮｘ、ｙ≧ＭＩＮｙ、ｘ≦ＭＡＸｘ、ｙ≦ＭＡＸｙを全て満たしているか否か判定する。動きベクトル判定部１３は、（ｘ，ｙ）がこれらの式を全て満たしている場合には、動きベクトルＭＶは正しいと判定し、何れか一つでも満たしていない場合には、正しくないと判定する。
【００４５】
なお、動きベクトル判定部１３は、たとえば、上記４つの条件のうち、少なくとも３つを満たしていれば正しいと判定するようにしてもよい。
動きベクトル判定部１３は、上記のような判定処理を、前方向予測に基づいて検出された動きベクトルと、後方向予測に基づいて検出された動きベクトルの両方について行う。
【００４６】
次に、予測方向選択部１４は、動きベクトル判定部１３での判定結果をもとに、動きベクトルの予測方向を選択する（ステップＳ９）。
図６は、予測方向の選択処理の流れを示すフローチャートである。
【００４７】
Ｆｌａｇ＿ｆｗｄは前方向の予測方向の選択の有無を示すフラグであり、Ｆｌａｇ＿ｂｗｄは後方向の予測方向の選択の有無を示すフラグであり、いずれも初期値は０とする。
まず、予測方向選択部１４は、ステップＳ８の処理の結果、前方向予測と後方向予測に基づき検出された動きベクトルＭＶが、両方正しいと判断されたか否かを判定する（ステップＳ３０）。ここで、両方の動きベクトルが正しいと判断された場合にはステップＳ３６の処理が行われ、何れか一方または両方の動きベクトルＭＶが正しくない場合には、ステップＳ３１の処理が行われる。
【００４８】
ステップＳ３１の処理において、予測方向選択部１４は、前方向予測に基づき検出された動きベクトルＭＶが正しいか否か判定する。前方向予測に基づき検出された動きベクトルＭＶが正しい場合、予測方向選択部１４は、Ｆｌａｇ＿ｆｗｄ＝１とし、前方向の予測方向を選択する（ステップＳ３２）。
【００４９】
前方向予測に基づき検出された動きベクトルＭＶが正しくない場合、予測方向選択部１４は、後方向予測に基づき検出された動きベクトルＭＶが正しいか判定する（ステップＳ３３）。後方向予測に基づき検出された動きベクトルＭＶが正しい場合、予測方向選択部１４は、Ｆｌａｇ＿ｂｗｄ＝１とし、後方向の予測方向を選択する（ステップＳ３４）。
【００５０】
これにより一方向の予測方向が選択され、次の動きベクトル検出処理（ステップＳ１０）では、縮小画像での動きベクトルが正しくないと判定された予測方向での検出は行われないので、演算量を削減できるとともに、精度よく動きベクトルが検出できる。
【００５１】
ただし、後方向予測に基づき検出された動きベクトルＭＶも正しくない場合、予測方向選択部１４は、Ｆｌａｇ＿ｆｗｄ、Ｆｌａｇ＿ｂｗｄを両方とも１とし、予測方向として両方向を選択する（ステップＳ３５）。これにより、次の動きベクトル検出処理では、両方向の予測が行われ、精度よく動きベクトルが検出可能になる。
【００５２】
一方、ステップＳ３０の処理で、前方向予測及び後方向予測に基づき検出された動きベクトルＭＶが両方とも正しいと判定された場合、予測方向選択部１４は、ＳＡＤ＿ｆｗｄ−ＳＡＤ＿ｂｗｄの絶対値が閾値ＴＨより小さいか否か判定する（ステップＳ３６）。
【００５３】
ＳＡＤ＿ｆｗｄは、前方向予測に基づき検出された動きベクトルＭＶを求める際に用いられたＳＡＤである。ＳＡＤ＿ｂｗｄは、後方向予測に基づき検出された動きベクトルＭＶを求める際に用いられたＳＡＤである。閾値ＴＨは、縮小画像でＳＡＤを計算することによる誤差に応じた値である。たとえば、１６×１６画素のマクロブロックの原画像を１／４に縮小した縮小画像を用いた場合、マクロブロックは４×４画素となる。このとき、各画素の値が０〜２５５であることから、ＳＡＤは、０≦ＳＡＤ≦２５５×１６となる。この場合、閾値ＴＨとして、画素値のばらつきを考慮すると、１００〜２００程度の値を用いることが望ましい。
【００５４】
予測方向選択部１４は、｜ＳＡＤ＿ｆｗｄ−ＳＡＤ＿ｂｗｄ｜＜ＴＨの場合、前方向予測と後方向予測に基づくＳＡＤが、誤差より小さい程度しか差異がないと判定し、ＳＡＤを用いての予測方向選択を行わない。その代わり、予測方向選択部１４は処理対象マクロブロックが、図３で示したようなＢ１ピクチャ２１を縮小した縮小画像内のものであるか否かを判定する（ステップＳ３７）。
【００５５】
Ｂ１ピクチャ２１は、図３に示したように、前方向予測の参照画像としてＩ０／Ｐ０ピクチャ２０を参照し、後方向予測の参照ピクチャとしてＩ３／Ｐ３ピクチャ２３を参照する。
【００５６】
ステップＳ３７の処理で、処理対象マクロブロックが、Ｂ１ピクチャ２１を縮小した縮小画像内のものであると判定された場合には、予測方向選択部１４は、Ｆｌａｇ＿ｆｗｄ＝１とし、前方向の予測方向を選択する（ステップＳ３８）。これにより、次の元の原画像（等倍の原画像）を用いた動きベクトル検出処理では、この処理対象マクロブロックに対応した等倍（１６×１６画素）のマクロブロックに対しては、Ｂ１ピクチャ２１に時間的に近いＩ０／Ｐ０ピクチャ２０が参照ピクチャとなる。
【００５７】
ステップＳ３７の処理で、処理対象マクロブロックが、Ｂ１ピクチャ２１を縮小した縮小画像内のものでないと判定された場合には、図３に示したように、処理対象マクロブロックは、Ｂ２ピクチャ２２を縮小した縮小画像内のものである。この場合、予測方向選択部１４は、Ｆｌａｇ＿ｂｗｄ＝１とし、後方向の予測方向を選択する（ステップＳ３９）。これにより、次の、等倍の原画像を用いた動きベクトル検出処理では、この処理対象マクロブロックに対応した等倍（１６×１６画素）のマクロブロックに対しては、Ｂ２ピクチャ２２に時間的に近いＩ３／Ｐ３ピクチャ２３が参照ピクチャとなる。
【００５８】
動画像では、フレームとフレームの時間間隔が短いほど、類似度が高くなる。そのため、ステップＳ３７〜Ｓ３９の処理で、時間的に近いフレームが参照ピクチャとなるように予測方向を選択することで、次の動きベクトル検出処理で、処理対象マクロブロックに、より類似した画像を指し示す動きベクトルを検出できる。また、予測方向選択部１４は、一方向の予測方向を選択することで、次の動きベクトル検出処理の演算量を削減できる。
【００５９】
一方、ステップＳ３６の処理で、｜ＳＡＤ＿ｆｗｄ−ＳＡＤ＿ｂｗｄ｜＜ＴＨではない場合、予測方向選択部１４は、ＳＡＤ＿ｆｗｄ＜ＳＡＤ＿ｂｗｄであるか否かを判定する（ステップＳ４０）。ＳＡＤ＿ｆｗｄ＜ＳＡＤ＿ｂｗｄである場合、前方向予測を行った方が動きベクトルの検出精度がよいため、予測方向選択部１４は、Ｆｌａｇ＿ｆｗｄ＝１とし、前方向の予測方向を選択する（ステップＳ４１）。ＳＡＤ＿ｆｗｄ＜ＳＡＤ＿ｂｗｄでない場合、後方向予測を行った方が動きベクトルの検出精度がよいため、予測方向選択部１４は、Ｆｌａｇ＿ｂｗｄ＝１とし、後方向の予測方向を選択する（ステップＳ４２）。このように、予測方向選択部１４は、一方向の予測方向を選択することで、次の動きベクトル検出処理の演算量を削減できる。
【００６０】
以上のような処理により予測方向が選択されると、動きベクトル検出部１５は、元の等倍の原画像のマクロブロックを用いて、選択された予測方向で動きベクトルの検出を行う（ステップＳ１０）。
【００６１】
図７は、動きベクトル検出（主検出）処理の流れを示すフローチャートである。
動きベクトル検出部１５は、ステップＳ９の処理の結果、選択された予測方向が前方向、すなわち、Ｆｌａｇ＿ｆｗｄ＝１であるか否か判定する（ステップＳ５０）。Ｆｌａｇ＿ｆｗｄ＝１である場合、動きベクトル検出部１５は、処理対象マクロブロックに対応する等倍のマクロブロック（１６×１６画素）に対して、前方向予測で動きベクトルの検出を行う（ステップＳ５１）。
【００６２】
ステップＳ５１の処理の後、またはステップＳ５０の処理で、Ｆｌａｇ＿ｆｗｄ＝１ではないと判定された場合、動きベクトル検出部１５は、選択された予測方向が後方向（Ｆｌａｇ＿ｂｗｄ＝１）であるか否か判定する（ステップＳ５２）。Ｆｌａｇ＿ｂｗｄ＝１である場合、動きベクトル検出部１５は、処理対象マクロブロックに対応する等倍のマクロブロック（１６×１６画素）に対して、後方向予測で動きベクトルの検出を行う（ステップＳ５３）。
【００６３】
図８は、動きベクトル検出の際のピクチャ間の参照関係を示す図である。
矢印ａは前方向予測の方向を示しており、矢印ｂは後方向予測の予測方向を示している。ここでの動きベクトルの検出は、１６×１６画素のマクロブロック２０ａ，２１ａ，２２ａ，２３ａごとに行われる。符号化対象がＢ１ピクチャ２１のマクロブロック２１ａのとき、前方向予測の参照ピクチャとしてＩ０／Ｐ０ピクチャ２０を、後ろ方向予測の参照ピクチャとしてＩ３／Ｐ３ピクチャ２３が使用可能である。しかし、Ｆｌａｇ＿ｆｗｄ＝１でＦｌａｇ＿ｂｗｄ＝０の場合には、Ｂ１ピクチャ２１の動きベクトル検出には、参照ピクチャとして、Ｉ０／Ｐ０ピクチャ２０が用いられ、Ｉ３／Ｐ３ピクチャ２３は用いられない。また、Ｆｌａｇ＿ｆｗｄ＝０でＦｌａｇ＿ｂｗｄ＝１の場合には、Ｂ１ピクチャ２１の動きベクトル検出には、参照ピクチャとして、Ｉ０／Ｐ０ピクチャ２０が用いられ、Ｉ３／Ｐ３ピクチャ２３は用いられない。このように、一方向の予測方向で動き検出が行われるので、演算量が少なくて済む。
【００６４】
動きベクトルの検出は、式（２）により算出されるＳＡＤを用いて行われる。なお、このとき、マクロブロックは１６×１６画素であるので、式（２）において、ｎ＝ｍ＝１６となる。
【００６５】
ステップＳ５３の処理後、または、ステップＳ５２の処理で、Ｆｌａｇ＿ｂｗｄ＝１ではない場合には、動きベクトル検出が終了し、図２で示したステップＳ１１の処理が行われる。ステップＳ１１の処理では、処理対象のマクロブロックに対して、動きベクトルが検出された場合、動きベクトル検出部１５は、動きベクトルを出力する。
【００６６】
その後、動きベクトル判定部１３は、全てのマクロブロックの処理が終了したか判定し（ステップＳ１２）、終了していなければ、処理対象のマクロブロックとして次のマクロブロックを設定する（ステップＳ１３）。そして、動きベクトル判定部１３、予測方向選択部１４、動きベクトル検出部１５は、全マクロブロックの動きベクトルの検出が終了するまで、ステップＳ８〜Ｓ１３の処理を繰り返す。
【００６７】
全マクロブロックの動きベクトルの検出が終了すると、このフレームの処理が終了し、次のフレームにおいても同様にステップＳ１〜１３の処理が行われ、動きベクトルが検出される。
【００６８】
以上のような動きベクトル検出方法によれば、縮小画像をもとに検出されたベクトルの確からしさを判定して、正しいと判定された動きベクトルの予測方向で、元の画像の動きベクトルの検出を行う。これにより、Ｂピクチャにおける動きベクトル検出の際、予測方向を限定できるため、両方向の予測を行う場合と比べて、主検出における演算量を最大で５０％削減できる。また、精度よく動きベクトルを検出できるため、画質の劣化を抑制できる。また、参照ピクチャをフレームメモリから読み出す枚数を２枚から１枚に削減できる。
【００６９】
以下、動画像符号化装置の一例の全体構成を説明する。
図９は、動画像符号化装置の一例の構成を示す図である。
動画像符号化装置５０は、画像並べ替え部５１、予測誤差信号生成部５２、整数変換部５３、量子化部５４、エントロピー符号化部５５、逆量子化部５６、逆整数変換部５７、参照ピクチャ生成部５８、フィルタ処理部５９を有している。さらに動画像符号化装置５０は、フレームメモリ６０、画面内予測部６１、動き検出部６２、動き補償部６３、予測画像選択部６４を有している。なお、動画像符号化装置５０の各部を制御する制御部については図示を省略している。
【００７０】
画像並べ替え部５１は、符号化のために、原画像のフレームをＧＯＰ（Group Of Pictures）構造に応じて並べ替える。
予測誤差信号生成部５２は、並べ替えられた原画像のフレームにおいて、マクロブロックの画素データと、予測画像選択部６４で選択された予測画像のマクロブロックの画素データとの差分を演算することにより、予測誤差信号を生成する。整数変換部５３は、予測誤差信号生成部５２からの予測誤差信号を整数変換した信号を出力する。量子化部５４は、整数変換部５３からの出力信号を量子化する。これにより、予測誤差信号の符号量が低減される。
【００７１】
エントロピー符号化部５５は、量子化部５４からの量子化データ、画面内予測部６１からの出力データ、動き検出部６２から出力される動きベクトルの情報をエントロピー符号化し、符号化画像データを出力する。ここで、エントロピー符号化とは、シンボルの出現頻度に応じて可変長の符号を割り当てる符号化方式を指す。
【００７２】
逆量子化部５６は、量子化部５４からの量子化データを逆量子化する。逆整数変換部５７は、逆量子化部５６からの出力データに逆整数変換処理を施す。これにより、符号化前の予測誤差信号と同程度の信号が得られる。
【００７３】
参照ピクチャ生成部５８は、動き補償部６３により動き補償されたマクロブロックの画素データと、逆量子化部５６及び逆整数変換部５７によって復号された予測誤差信号とを加算する。これにより、動き補償された参照ピクチャのマクロブロックが生成される。
【００７４】
フィルタ処理部５９は、マクロブロックのデータに対してデブロッキングフィルタ処理を行い、ブロックノイズの発生を抑制した後、フレームメモリ６０に蓄積する。
画面内予測部６１は、同じピクチャにおける周辺画素から、予測画像のマクロブロックを生成する。
【００７５】
動き検出部６２は、図１に示した各部の機能を有し、画像並べ替え部５１から出力される原画像のマクロブロックと、フレームメモリ６０から読み込んだ参照ピクチャのデータをもとに動きベクトルを算出し、出力する。
【００７６】
動き補償部６３は、動き検出部６２から出力された動きベクトルをもとに、フレームメモリ６０から読み込んだ参照ピクチャのデータに対して動き補償することにより、動き補償された予測画像のマクロブロックを生成する。
【００７７】
予測画像選択部６４は、画面内予測部６１または動き補償部６３のどちらか一方から出力される予測画像のマクロブロックを選択し、予測誤差信号生成部５２及び参照ピクチャ生成部５８に出力する。
【００７８】
このような、動画像符号化装置５０の動き検出部６２に対して、図１に示したような構成を適用することで、動きベクトル検出における演算量を削減できるため、動画像符号化装置５０全体における演算量を削減でき、符号化処理を高速化できる。また、縮小画像における動きベクトルの確からしさを判定して、主検出の動きベクトル検出の際の予測方向を選択しているので高精度に動きベクトルを検出でき、その動きベクトルを用いることで、符号化に伴う画質の劣化を抑制することができる。
【００７９】
以上、実施の形態に基づき、本発明の動画像符号化装置及び動きベクトル検出方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【００８０】
たとえば、上記の説明では、マクロブロックは１６×１６画素として説明したが、１６×８画素、８×１６画素、８×８画素、４×８画素、８×４画素、または４×４画素としてもよい。
【００８１】
また、上記では、Ｂピクチャの符号化の際に、前方向及び後方向の参照ピクチャを１枚ずつ参照する場合について説明したが、複数枚参照するようにしてもよい。
また、縮小画像を生成する際に、原画像の画素を間引きするのではなく、一定領域ごとの画素値を平均したものを縮小画像の画素値とするようにしてもよい。
【符号の説明】
【００８２】
１０  動画像符号化装置
１１  縮小画像生成部
１２  縮小動きベクトル検出部
１３  動きベクトル判定部
１４  予測方向選択部
１５  動きベクトル検出部
【図１】
0005407974.tif 000004
【図２】
0005407974.tif 000005
【図３】
0005407974.tif 000006
【図４】
0005407974.tif 000007
【図５】
0005407974.tif 000008
【図６】
0005407974.tif 000009
【図７】
0005407974.tif 000010
【図８】
0005407974.tif 000011
【図９】
0005407974.tif 000012