(57)【要約】【課題】  探索領域の大きなマクロブロックを減少させると共に、同マクロブロックが少ない場合でも動きベクトルの検出精度を保ちつつ、動きベクトル探索の演算量を削減した動画像符号化方法及び装置を得ることを目的とする。【解決手段】  動画像を所定の水平画素数と所定の垂直ライン数から成るブロックに分割して、大きな探索領域を設定する第１のブロックと、小さな探索領域を設定する第２のブロックとに分類する。第１のステップで第１のブロックの動きベクトルを検出し、第２のステップで複数の第１のブロックの動きベクトルから補間処理を行なう。その結果に基づいて第２のブロックの探索領域の設定を行ない、動きベクトルを検出する。【選択図】        図４
2006129367.tif 000002
【特許請求の範囲】
【請求項１】
動画像を所定の水平画素数と所定の垂直ライン数から成るブロックに分割して符号化する動画像符号化方法において、
第１の探索領域が設定される第１のブロックについての動きベクトルを検出する第１のステップと、
複数の前記第１のブロックの動きベクトルに基づいて補間処理を行い第２の探索領域を設定し、前記第２のブロックについての動きベクトルを検出する第２のステップとを備えることを特徴とする動画像符号化方法。
【請求項２】
前記第２のブロックの左側に位置する前記第１のブロックのうち動きベクトルが類似しているブロックを選択して左側グループを構成し、前記第２のブロックの右側に位置する前記第１のブロックのうち動きベクトルが類似しているブロックを選択して右側グループを構成し、前記左側グループ及び前記右側グループに属する前記第１のブロックの動きベクトルと予め設定された補間フィルタ係数から前記第２のブロックの探索領域の中心点の偏移を求めることを特徴とする請求項１記載の動画像符号化方法。
【請求項３】
前記左側グループに属する第１のブロックの動きベクトルにより求めた中間補間ベクトルの偏移における予測誤差評価基準値と、前記右側グループに属する第１のブロックの動きベクトルにより求めた中間補間ベクトルの偏移における予測誤差評価基準値とを比較し、予測誤差評価基準値が小さい方の偏移を前記第２のブロックの探索領域の中心点の偏移とすることを特徴とする請求項２記載の動画像符号化方法。
【請求項４】
動画像を所定の水平画素数と所定の垂直ライン数から成るブロックに分割して符号化する動画像符号化装置において、
第１の探索領域が設定される第１のブロックについての動きベクトルを検出する第１の動きベクトル検出部と、
複数の前記第１のブロックの動きベクトルに基づいて補間処理を行い第２の探索領域を設定する動きベクトル補間部と、
前記第２のブロックについての動きベクトルを検出する第２の動きベクトル検出部とを備えることを特徴とする動画像符号化装置。
【請求項５】
前記第２のブロックの左側に位置する前記第１のブロックのうち動きベクトルが類似しているブロックを選択して左側グループを構成し、前記第２のブロックの右側に位置する前記第１のブロックのうち動きベクトルが類似しているブロックを選択して右側グループを構成し、前記左側グループ及び前記右側グループに属する前記第１のブロックの動きベクトルと予め設定された補間フィルタ係数から前記第２のブロックの探索領域の中心点の偏移を求めることを特徴とする請求項４記載の動画像符号化装置。
【請求項６】
前記左側グループに属する第１のブロックの動きベクトルにより求めた中間補間ベクトルの偏移における予測誤差評価基準値と、前記右側グループに属する第１のブロックの動きベクトルにより求めた中間補間ベクトルの偏移における予測誤差評価基準値とを比較し、予測誤差評価基準値が小さい方の偏移を前記第２のブロックの探索領域の中心点の偏移とすることを特徴とする請求項５記載の動画像符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、動画像を高能率符号化してディジタル伝送するシステムにおいて、動画像を所定の水平画素数と所定の垂直ライン数から成るブロックに分割し、このブロック毎に動画像の動きベクトルを検出し動き補償予測を行なう動画像符号化方法及び装置に関するものである。
【背景技術】
【０００２】
動画像を圧縮して伝送する技術として動き補償予測を用いたものがある。動き補償予測を行なうためには動きベクトルの検出が必要であるが、例として、動画像符号化の国際標準化方式であるＭＰＥＧ−２のテストモデル、ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１／Ｎ０４００  “ＴＥＳＴ  ＭＯＤＥＬ５”に示された方法がある。この方法は、基本的にはブロックマッチング法と呼ばれる方法である。ブロックマッチング法とは周知のように、例えば現画像をブロック（例えば１６画素×１６ライン、あるいは１６画素×８ライン等）に分割し、差分絶対値総和等の誤差評価基準を用いて、現画像の当該ブロックに対して、その予測誤差評価基準値が最も小さくなるブロックを参照画像から求め、そのブロックから動きベクトルを検出する方法である。
【０００３】
前述のように検出した動きベクトルを用いて動き補償予測を行う動画像符号化装置について説明する。代表的な構成例としては、入力画像のフレーム順序を入れ替える並べ替え部、減算器、直行変換部、量子化部、信号に符号を割り当てる可変長符号化部、データを一時蓄えて出力するバッファメモリ、逆量子化部、直行変換されたデータに逆変換を施す逆直行変換部、加算器、２つの画像メモリ、検出された動きベクトルに従って動き補償予測を行う動き補償部、現画像と参照画像により動きベクトルを検出する動きベクトル検出部を備えている。
【０００４】
次に上記構成に係る動き補償予測を用いた画像圧縮装置の動作の説明をする。先ず、入力画像信号は、並べ替え部にて入力画像のフレーム順序入替えを施される。これは、動画像符号化の国際標準化方式である、ＭＰＥＧ−２などで採用されている、両方向予測に対応するためで、時間的に未来に当たる参照画像を、現画像の符号化画像より先に符号化しておく必要があるからである。次に減算器で動き補償予測部より出力される動き補償予測信号との差分がとられ、直交変換部にて直交変換された後、量子化部で量子化され、可変長符号化部で符号が割り当てられ、バッファメモリを介して符号化データとして出力される。なお、イントラ符号化が選択された場合には、減算器には動き補償予測部の出力の代わりにゼロ値が送られることで、イントラ符号化が実行されることになる。
【０００５】
ここで、上記の動き補償予測画像信号の生成については以下のように行なわれる。量子化部の出力は逆量子化部において逆量子化され、続いて逆直交変換部において逆直交変換された後、更に加算器において動き補償予測画像信号と加算されてどちらか一方の画像メモリに蓄積される。ここで、画像メモリが２面存在するのは、両方向予測を行なうためであり、１面に時間的に過去の画像を、もう１面に時間的に未来の映像を蓄積することで両方向予測を行なうことが出来る。両画像メモリよりそれぞれ出力される参照画像の画像信号と、現画像の画像信号を用いて動きベクトル検出部が動きベクトルの検出を行なう。検出方法については上述のようにブロックマッチング法が有名である。ただし、両方向予測を行なう場合には、時間的に過去の画像からの予測と、時間的に未来の画像からの予測を、それぞれブロックマッチング法で行なった後、それぞれの選択された動きベクトルの位置で１対１の線形内挿を行なって作成した参照画像を用いて予測誤差評価基準値を求め、合わせて３つのうちより予測誤差評価基準値が最小のものを選択するのが一般的である。上記のＭＰＥＧ−２のテストモデル、ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１／Ｎ０４００  “ＴＥＳＴ  ＭＯＤＥＬ５”にもこの方法が示されている。この動きベクトルデータを受けて動き補償部では、参照画像の、対応する動きベクトルで示されたブロックを出力する。なお、イントラ符号化が選択された場合には、加算器には動き補償予測信号の代わりにゼロ値が送られることで、イントラ符号化が実行されることになる。
【０００６】
上記、ブロックマッチング法による動きベクトル探索は、探索領域内のにおいて1画素づつ移動させながら動きベクトル候補となる全ての点で予測誤差評価基準値を求めるという操作を行なうため、膨大な演算量が必要となる。そのため、動きベクトルの検出精度を保ちつつ、演算量を削減するために様々な改良が行われてきた。
【０００７】
次に、改良された動きベクトル探索方法の一例（例えば、特許文献１参照）を以下に説明する。入力された現画像の画面をマクロブロックに分割して動きベクトル探索を実行する際、先ず、隣り合わないマクロブロックに関して上述のブロックマッチング法による動きベクトル探索を行なう（１ｓｔステップ）。この時、参照画像上の探索領域は、現画像の当該マクロブロックと同位置のブロックを中心として、水平、垂直にそれぞれ対称となるように設定する（探索領域（大））。ここで、現画像の当該マクロブロックの左上隅を、参照画像上の探索領域の全ての画素位置に移動させながら動きベクトル探索を行なう。
【０００８】
続いて、１ｓｔステップで探索を行われなかったマクロブロックの動きベクトル探索を行なう（２ｎｄステップ）。先ず、マクロブロックのうち、１ｓｔステップで探索されたマクロブロックと左右を隣接するマクロブロックについて、動きベクトル探索を行なう。この時、左右に隣接するマクロブロックの動きベクトルを用いて探索領域の設定を行なう。ここで、左右に隣接するマクロブロック同士の動きベクトルの差分絶対値をΔＶａとする。
【０００９】
ΔＶａが閾値よりも小さい場合、左右のマクロブロックの動きベクトルの相加平均を平均ベクトルとすると、当該マクロブロックの探索領域は平均ベクトル分だけ偏移した位置に中心点を取り、また、左右のマクロブロックより小さな領域として設定する（探索領域（小））。
【００１０】
ΔＶａが閾値よりも大きい場合、当該マクロブロックの探索領域は、左右のマクロブロックの動きベクトルの各々の位置だけ偏移した位置に中心点を取り、また、左右のマクロブロックより小さな領域として、２つの領域を設定する（探索領域（小））。
【００１１】
次に、残りのマクロブロックについて動きベクトル探索を行なう。この時、上下に隣接するマクロブロックの動きベクトルを用いて探索領域の設定を行なう。上下に隣接するマクロブロック同士の動きベクトルの差分絶対値をΔＶｂとする（探索領域（小））。
【００１２】
ΔＶｂが閾値よりも小さい場合、上下のマクロブロックの動きベクトルの相加平均を平均ベクトルとすると、当該マクロブロックの探索領域は平均ベクトル分だけ偏移した位置に中心点を取り、また、上下のマクロブロックより小さな領域として設定する（探索領域（小））。
【００１３】
ΔＶｂが閾値よりも大きい場合、当該マクロブロックの探索領域は、上下のマクロブロックの動きベクトルの各々の位置だけ偏移した位置に中心点を取り、また、上下のマクロブロックより小さな領域として、２つの領域を設定する（探索領域（小））。
【００１４】
【特許文献１】特開２０００−１３４６２８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
従来の動きベクトル検出方式は、以上のような方式であり、特に特許文献１の方法では、１ｓｔステップで探索を行うマクロブロック（探索領域（大））が１マクロブロックおきに存在しており、動きベクトル探索の演算量削減が限られていた。また、同演算量を削減するために、１ｓｔステップで探索を行うマクロブロックを更に減少させた場合、動きベクトルの検出精度が著しく低下するという課題があった。その一方で、上述の動きベクトルの差分絶対値ΔＶａ、またはΔＶｂが閾値よりも大きい場合、２ｎｄステップでの探索領域（探索領域（小））を２箇所設定するため、処理が複雑であり、演算量も増えるという課題もあった。
【００１６】
この発明は上記のような課題を解消するためになされたもので、１ｓｔステップでの探索領域の大きなマクロブロックを更に減少させると共に、同マクロブロックが少ない場合でも動きベクトルの検出精度を保ちつつ、動きベクトル探索の演算量を削減した動画像符号化方法及び装置を得ることを目的とする。
【課題を解決するための手段】
【００１７】
この発明に係る動画像符号化方法は、動画像を所定の水平画素数と所定の垂直ライン数から成るブロックに分割して、大きな探索領域を設定する第１のブロックと、小さな探索領域を設定する第２のブロックとに分類する。第１のステップで第１のブロックの動きベクトルを検出し、第２のステップで複数の第１のブロックの動きベクトルから補間処理を行なう。その結果に基づいて第２のブロックの探索領域の設定を行ない、動きベクトルを検出する。
【発明の効果】
【００１８】
この発明によれば、動きベクトルの検出精度を保ちつつ、１ｓｔステップでの探索領域の大きなマクロブロックを減少させることで、動きベクトル探索の演算量を大きく削減することが出来るという効果が得られる。
【発明を実施するための最良の形態】
【００１９】
実施の形態１．
以下、この発明の実施の形態１について説明する。図１は実施の形態１に係る動画像符号化装置の構成図である。本動画像符号化装置は、並べ替え部２、減算器３、直行変換部４、量子化部５、可変長符号化部６、バッファメモリ７、逆量子化部９、逆直行変換部１０、加算器１１、第１画像メモリ１２、第２画像メモリ１３、動き補償部１４、第１動きベクトル検出部（大領域）１６、第２動きベクトル検出部１７（小領域）、遅延要素１８、動きベクトル補間部１９、セレクタ２０を備えている。ここで、前述の従来の動画像符号化装置では動きベクトル検出部単一であった部分が、本動画像符号化装置では、第１動きベクトル検出部（大領域）１６、第２動きベクトル検出部（小領域）１７、遅延要素１８、動きベクトル補間部１９、セレクタ２０の５つの要素から構成されている。その他の基本的な構成は従来の動画像符号化装置と同様であるので、以下は前記５つの構成要素について中心に説明する。
【００２０】
次に、動作について説明する。図１で、第１動きベクトル検出部（大領域）１６は、ｎマクロブロック（ｎは整数、ｎ≧２）おきに、大きな探索領域での動きベクトル探索を行なう（１ｓｔステップ）。遅延要素１８は、第１動きベクトル検出部（大領域）１６の出力を遅延させる。遅延要素１８は、後述するように必要に応じて複数種類の遅延した出力を行う。また、動きベクトル補間部１９は、第１動きベクトル検出部（大領域）１６の出力した動きベクトルと、それを遅延要素１８にて遅延した動きベクトルとを入力とし、第１動きベクトル検出部（大領域）１６が探索対象としない各マクロブロック位置に対して動きベクトルの補間処理（探索領域の中心を求める）を実行する。第２動きベクトル検出部（小領域）１７は、第１動きベクトル検出部（大領域）１６が探索対象としない各マクロブロック位置に対して、動きベクトル補間部１９の出力を探索領域の中心点として、１ｓｔステップの探索領域より小さい探索領域での動きベクトル探索を行なう（２ｎｄステップ）。セレクタ２０は、遅延要素１８の出力と、第２動きベクトル検出部（小領域）１７の出力を選択することで、左側に位置するマクロブロックから右側に位置するマクロブロックの順序で、動きベクトル情報を出力する。
【００２１】
実施の形態１における動きベクトル探索方法について説明する。図２は入力された現画像の画面がマクロブロックに分割される様子を示す図であり、図３は１ｓｔステップ探索の探索領域設定を示す図である。図２のように、現画像の画面をマクロブロックに分割して動きベクトル探索を実行する際、先ず、網掛けのあるマクロブロックに関して上述のブロックマッチング法による動きベクトル探索を行なう（１ｓｔステップ）。この時、従来と同様に、参照画像上の探索領域は、現画像の当該マクロブロックと同位置のブロックを中心として、水平、垂直にそれぞれ対称となるように設定する（探索領域（大））。ここで、図３は、当該マクロブロックの左上隅を、探索領域の全ての画素位置に移動させながら動きベクトル探索を行なうことを表している。尚、図２において、網掛けのあるマクロブロックをｎマクロブロック（ｎは整数、ｎ≧２）間隔に配置することとする。ここでは例として、ｎ＝４として説明を進める。
【００２２】
次に、白抜きのマクロブロックについての動きベクトル探索を行なう（２ｎｄステップ）。２ｎｄステップ探索について図４〜図１４を用いて以下に説明する。白抜きのマクロブロックについては、網掛けのあるマクロブロックｍ個（ｍは整数、ｍ≧２）の動きベクトルを用いて、ブロックマッチングする探索領域の設定を行なうものとする（探索領域（小））。ここでは例として、ｍ＝４として説明を進める。
【００２３】
図４は２ｎｄステップ探索の探索領域設定において、水平方向に並んだ網掛けのあるマクロブロック同士の動きベクトルが全て類似している場合を示す図である。図４において、横一列に並んだマクロブロックに、マクロブロック番号を０番〜１２番まで割り振る。各々のマクロブロックを、左からＭＢ［０］〜ＭＢ［１２］とする。また、各々のマクロブロックの動きベクトルをＶ［０］〜Ｖ［１２］とする。ここで、動きベクトル探索対象のマクロブロックはＭＢ［５］〜ＭＢ［７］の３つであり、網掛けのあるマクロブロックＭＢ［０］、ＭＢ［４］、ＭＢ［８］、及びＭＢ［１２］を用いてこれら３つのマクロブロックの動きベクトル探索を行なう。ここで、Ｖ［０］とＶ［４］の差分絶対値をΔＶａ１、Ｖ［４］とＶ［８］の差分絶対値をΔＶａ２、Ｖ［８］とＶ［１２］の差分絶対値をΔＶａ３とする。また、ＭＢ［５］〜ＭＢ［７］の白抜きのマクロブロックの探索領域の中心点の偏移を、Ｄ［５］〜Ｄ［７］で表わす。例えば、探索領域の中心点の偏移Ｄ［５］とは、参照画像上における探索領域の中心を、現画像のマクロブロックＭＢ［５］と同位置からどれだけずらすかを表すものである。従って、ＭＢ［５］、ＭＢ［６］、ＭＢ［７］の探索領域は、図４に示すように、それぞれ同位置からＤ［５］、Ｄ［６］、Ｄ［７］偏移した位置を中心とする探索領域（小）Ａ５、Ａ６、Ａ７となる。
【００２４】
以下、ΔＶａ２が予め設定した閾値よりも小さい場合（図４〜７）について、ΔＶａ１、ΔＶａ３を場合分けして説明する。先ず、ΔＶａ１、及びΔＶａ３が予め設定した閾値よりも小さい場合、図４に示すように、Ｄ［５］〜Ｄ［７］は、Ｖ［０］、Ｖ［４］、Ｖ［８］、及びＶ［１２］の４つから以下のようにして求める。
Ｄ［５］＝Ｖ［０］×α１＋Ｖ［４］×β１＋Ｖ［８］×γ１＋Ｖ［１２］×ε１
（α１＋β１＋γ１＋ε１＝１．０）
Ｄ［６］＝Ｖ［０］×α２＋Ｖ［４］×β２＋Ｖ［８］×γ２＋Ｖ［１２］×ε２
（α２＋β２＋γ２＋ε２＝１．０）
Ｄ［７］＝Ｖ［０］×α３＋Ｖ［４］×β３＋Ｖ［８］×γ３＋Ｖ［１２］×ε３
（α３＋β３＋γ３＋ε３＝１．０）
ここで、αｚ、βｚ、γｚ、及びεｚ（ｚは１〜３）は補間フィルタ係数であり、αｚ＋βｚ＋γｚ＋εｚ＝１．０を満たす任意の値である。
【００２５】
図５は２ｎｄステップ探索の探索領域設定において、水平方向に並んだ網掛けのあるマクロブロック同士の動きベクトルのうち、左側のグループに大きく異なる動きベクトル（例としてＶ［０］）が存在し、かつその他の左側のグループと右側のグループの動きベクトルは類似している場合を示す図である。ΔＶａ１が予め設定した閾値よりも大きく、ΔＶａ３が予め設定した閾値よりも小さい場合、図５に示すように、Ｄ［５］〜Ｄ［７］は、Ｖ［４］、Ｖ［８］、及びＶ［１２］の３つから以下のようにして求める。
Ｄ［５］＝Ｖ［４］×β５＋Ｖ［８］×γ５＋Ｖ［１２］×ε５
（β５＋γ５＋ε５＝１．０）
Ｄ［６］＝Ｖ［４］×β６＋Ｖ［８］×γ６＋Ｖ［１２］×ε６
（β６＋γ６＋ε６＝１．０）
Ｄ［７］＝Ｖ［４］×β７＋Ｖ［８］×γ７＋Ｖ［１２］×ε７
（β７＋γ７＋ε７＝１．０）
ここで、βｚ、γｚ、及びεｚ（ｚは５〜７）は補間フィルタ係数であり、βｚ＋γｚ＋εｚ＝１．０を満たす任意の値である。
【００２６】
図６は２ｎｄステップ探索の探索領域設定において、水平方向に並んだ網掛けのあるマクロブロック同士の動きベクトルのうち、右側のグループに大きく異なる動きベクトル（例としてＶ［１２］）が存在し、かつ左側のグループとその他の右側のグループの動きベクトルは類似している場合を示す図である。ΔＶａ１が予め設定した閾値よりも小さく、ΔＶａ３が予め設定した閾値よりも大きい場合、図６に示すように、Ｄ［５］〜Ｄ［７］は、Ｖ［０］、Ｖ［４］、及びＶ［８］の３つから以下のようにして求める。
Ｄ［５］＝Ｖ［０］×α８＋Ｖ［４］×β８＋Ｖ［８］×γ８
（α８＋β８＋γ８＝１．０）
Ｄ［６］＝Ｖ［０］×α９＋Ｖ［４］×β９＋Ｖ［８］×γ９
（α９＋β９＋γ９＝１．０）
Ｄ［７］＝Ｖ［０］×α１０＋Ｖ［４］×β１０＋Ｖ［８］×γ１０
（α１０＋β１０＋γ１０＝１．０）
ここで、αｚ、βｚ、γｚ、及びεｚ（ｚは８〜１０）は補間フィルタ係数であり、αｚ＋βｚ＋γｚ＝１．０を満たす任意の値である。
【００２７】
図７は２ｎｄステップ探索の探索領域設定において、水平方向に並んだ網掛けのあるマクロブロック同士の動きベクトルのうち、左右のグループに大きく異なる動きベクトル（例としてＶ［０］、Ｖ［１２］）がそれぞれ存在し、かつその他の左側のグループと右側のグループの動きベクトルは類似している場合を示す図である。ΔＶａ１、及びΔＶａ３が予め設定した閾値よりも大きい場合、図７に示すように、Ｄ［５］〜Ｄ［７］は、Ｖ［４］、及びＶ［８］の２つから以下のようにして求める。
Ｄ［５］＝Ｖ［４］×β１１＋Ｖ［８］×γ１１      （β１１＋γ１１＝１．０）
Ｄ［６］＝Ｖ［４］×β１２＋Ｖ［８］×γ１２      （β１２＋γ１２＝１．０）
Ｄ［７］＝Ｖ［４］×β１３＋Ｖ［８］×γ１３      （β１３＋γ１３＝１．０）
ここで、βｚ、γｚ（ｚは１１〜１３）は補間フィルタ係数であり、βｚ＋γｚ＝１．０を満たす任意の値である。
【００２８】
続いて、ΔＶａ２が予め設定した閾値よりも大きい場合（図８〜１１）について、ΔＶａ１、ΔＶａ３を場合分けして説明する。図８は２ｎｄステップ探索の探索領域設定において、水平方向に並んだ網掛けのあるマクロブロック同士の動きベクトルのうち、左側のグループと右側のグループの動きベクトルが大きく異なる場合を示す図である。ΔＶａ２が予め設定した閾値よりも大きい場合について、ΔＶａ１、ΔＶａ３を場合分けして説明する。先ず、ΔＶａ１、及びΔＶａ３が予め設定した閾値よりも小さい場合、図８に示すように、Ｄ［５］〜Ｄ［７］は以下のように求める。先ず、中間補間ベクトルＡ［５］〜Ａ［７］、及びＢ［５］〜Ｂ［７］を以下のように求める。
Ａ［５］＝Ｖ［０］×α１４＋Ｖ［４］×β１４      （α１４＋β１４＝１．０）
Ａ［６］＝Ｖ［０］×α１５＋Ｖ［４］×β１５      （α１５＋β１５＝１．０）
Ａ［７］＝Ｖ［０］×α１６＋Ｖ［４］×β１６      （α１６＋β１６＝１．０）
ここで、αｚ、βｚ（ｚは１４〜１６）は補間フィルタ係数であり、αｚ＋βｚ＝１．０を満たす任意の値である。
Ｂ［５］＝Ｖ［８］×γ１７＋Ｖ［１２］×ε１７      （γ１７＋ε１７＝１．０）
Ｂ［６］＝Ｖ［８］×γ１８＋Ｖ［１２］×ε１８      （γ１８＋ε１８＝１．０）
Ｂ［７］＝Ｖ［８］×γ１９＋Ｖ［１２］×ε１９      （γ１９＋ε１９＝１．０）
ここで、γｚ、εｚ（ｚは１７〜１９）は補間フィルタ係数であり、γｚ＋εｚ＝１．０を満たす任意の値である。次に、ＭＢ［５］については、Ａ［５］及びＢ［５］の偏移（図８のＳ５及びＴ５）における予測誤差評価基準値を演算し、Ｂ［５］の偏移よりＡ［５］の偏移における予測誤差評価基準値の方が小さい場合はＤ［５］＝Ａ［５］とし、逆の場合はＤ［５］＝Ｂ［５］とする。ここで、Ａ［５］、Ｂ［５］の偏移とは、参照画像上で、ＭＢ［５］をＡ［５］、Ｂ［５］分それぞれ偏移させた位置にある歪演算ブロックＳ５、Ｔ５である。なお、図７にはＭＢ［５］に関してのみ図示してあるが、ＭＢ［６］、ＭＢ［７］に関しても同様である。
【００２９】
図９は２ｎｄステップ探索の探索領域設定において、水平方向に並んだ網掛けのあるマクロブロック同士の動きベクトルのうち、左側のグループに大きく異なる動きベクトル（例としてＶ［０］）が存在し、かつその他の左側のグループと右側のグループの動きベクトルも大きく異なる場合を示す図である。ΔＶａ１が予め設定した閾値よりも大きく、ΔＶａ３が予め設定した閾値よりも小さい場合、図９に示すように、Ｄ［５］〜Ｄ［７］は以下のように求める。先ず、中間補間ベクトルＢ［５］〜Ｂ［７］を以下のように求める。
Ｂ［５］＝Ｖ［８］×γ１７＋Ｖ［１２］×ε１７      （γ１７＋ε１７＝１．０）
Ｂ［６］＝Ｖ［８］×γ１８＋Ｖ［１２］×ε１８      （γ１８＋ε１８＝１．０）
Ｂ［７］＝Ｖ［８］×γ１９＋Ｖ［１２］×ε１９      （γ１９＋ε１９＝１．０）
ここで、γｚ、εｚ（ｚは１７〜１９）は補間フィルタ係数であり、γｚ＋εｚ＝１．０を満たす任意の値である。次に、ＭＢ［５］について、Ｖ［４］及びＢ［５］の偏移（図９のＳ５及びＴ５）における予測誤差評価基準値を演算する。Ｂ［５］の偏移よりＶ［４］の偏移における予測誤差評価基準値の方が小さい場合はＤ［５］＝Ｖ［４］とし、逆の場合はＤ［５］＝Ｂ［５］とする。なお、図８にはＭＢ［５］に関してのみ図示してあるが、ＭＢ［６］、ＭＢ［７］に関しても同様である。
【００３０】
図１０は２ｎｄステップ探索の探索領域設定において、水平方向に並んだ網掛けのあるマクロブロック同士の動きベクトルのうち、右側のグループに大きく異なる動きベクトル（例としてＶ［１２］）が存在し、かつ左側のグループとその他の右側のグループの動きベクトルも大きく異なる場合を示す図である。ΔＶａ１が予め設定した閾値よりも小さく、ΔＶａ３が予め設定した閾値よりも大きい場合、図１０に示すように、Ｄ［５］〜Ｄ［７］は以下のように求める。先ず、中間補間ベクトルＡ［５］〜Ａ［７］を以下のように求める。
Ａ［５］＝Ｖ［０］×α１４＋Ｖ［４］×β１４      （α１４＋β１４＝１．０）
Ａ［６］＝Ｖ［０］×α１５＋Ｖ［４］×β１５      （α１５＋β１５＝１．０）
Ａ［７］＝Ｖ［０］×α１６＋Ｖ［４］×β１６      （α１６＋β１６＝１．０）
ここで、αｚ、βｚ（ｚは１４〜１６）は補間フィルタ係数であり、αｚ＋βｚ＝１．０を満たす任意の値である。次に、ＭＢ［５］について、Ａ［５］及びＶ［８］の偏移（図１０のＳ５及びＴ５）における予測誤差評価基準値を演算する。Ｖ［８］の偏移よりＡ［５］の偏移における予測誤差評価基準値の方が小さい場合はＤ［５］＝Ａ［５］とし、逆の場合はＤ［５］＝Ｖ［８］とする。なお、図９にはＭＢ［５］に関してのみ図示してあるが、ＭＢ［６］、ＭＢ［７］に関しても同様である。
【００３１】
図１１は２ｎｄステップ探索の探索領域設定において、水平方向に並んだ網掛けのあるマクロブロック同士の動きベクトルのうち、左右のグループに大きく異なる動きベクトル（例としてＶ［０］、Ｖ［１２］）がそれぞれ存在し、かつその他の左側のグループと右側のグループの動きベクトルも大きく異なる場合を示す図である。ΔＶａ１、及びΔＶａ３が予め設定した閾値よりも大きい場合、図１１に示すように、Ｄ［５］〜Ｄ［７］は以下のように求める。ＭＢ［５］については、Ｖ［４］及びＶ［８］の偏移（図１１のＳ５及びＴ５）における予測誤差評価基準値を演算し、Ｖ［８］の偏移よりＶ［４］の偏移における予測誤差評価基準値の方が小さい場合はＤ［５］＝Ｖ［４］とし、逆の場合はＤ［５］＝Ｖ［８］とする。なお、図１１にはＭＢ［５］に関してのみ図示してあるが、ＭＢ［６］、ＭＢ［７］に関しても同様である。
【００３２】
尚、上述の処理を行なう際、画面の左端付近、及び右端付近では網掛けのあるマクロブロック数が少なくなるが、その場合には図１２〜１４のように処理する。図１２は２ｎｄステップ探索の探索領域設定において、画面左端点付近での様子を示す図である。画面の左端付近では、図１２のように左端のＭＢ［０］が存在しない。その場合、ΔＶａ１が予め設定した閾値よりも大きい場合（図５、７、９、１１参照）に準じて処理するものとする。
【００３３】
図１３は２ｎｄステップ探索の探索領域設定において、画面右端のマクロブロックが網掛けのあるマクロブロックである場合、画面右端点付近での様子を示す図である。画面の右端付近では、図１３のように右端のＭＢ［１２］が存在しない。その場合、ΔＶａ３が予め設定した閾値よりも大きい場合（図６、７、１０、１１参照）に準じて処理するものとする。
【００３４】
図１４は２ｎｄステップ探索の探索領域設定において、画面右端のマクロブロックが網掛けのないマクロブロックである場合、画面右端点付近での様子を示す図である。画面の右端付近では、図１４のように右端の２つの網掛けのあるマクロブロック、ＭＢ［８］、及びＭＢ［１２］が存在しない場合があり得る。その場合、ΔＶａ２、及びΔＶａ３が予め設定した閾値よりも大きく、かつ、Ｖ［８］の偏移での予測誤差評価基準値が他の如何なる偏移の演算結果よりも大きい場合（図１０、１１参照）に準じて処理するものとする。
【００３５】
次に、図１５を用いて上述した処理を実行する際のタイミングを説明する。図１５はマクロブロック単位の動きベクトル探索のタイミングを示す図である。図１５において、１マクロブロック時間とは、１画面の処理時間を、１画面に包含されるマクロブロック数で除した時間とする。
【００３６】
従来の動画像符号化装置では、全てのマクロブロックを探索する場合、１マクロブロック当たり１マクロブロック時間で探索しなければならず、必然的に演算器を多数実装し並列処理を行なっていた。本発明の動画像符号化装置では、１ｓｔステップの探索において、水平方向に４つ並んだマクロブロックのうち、網掛けのある１つのマクロブロックについてのみ探索するので（ｎ＝４）、１マクロブロック当たり４マクロブロック時間を掛けて探索することができる。その結果、単位時間当たりの演算量が減るので、演算回路の小規模化や動作周波数を低くすることが可能となる。
【００３７】
１ｓｔステップの探索結果を４マクロブロック時間単位で遅延させた出力を３種類用意し、これらを用いて２ｎｄステップ探索を行なう。２ｎｄステップの探索では、１ｓｔステップの探索結果とその遅延結果を用いて、１マクロブロック当たり１マクロブロック時間を掛けて探索する。最後に、２ｎｄステップの探索結果と、１ｓｔステップの探索結果の遅延出力を選択して出力することで、ラスタスキャン順に並んだ動きベクトルデータを出力する。
【００３８】
以上のように、この実施の形態１によれば、動きベクトルの検出精度を保ちつつ、１ｓｔステップでは動きベクトルを探索するマクロブロックを減らし、２ｎｄステップでは動きベクトルを探索する領域を減らすことで、同探索の演算量を大きく削減することが出来るという効果が得られる。
【００３９】
実施の形態１では、ｍ＝４として説明を行なったが、ｍはｍ≧２を満たすどんな正の整数でも構わない。その際には前述のｍ＝４の場合と同様に行う。即ち、網掛けのマクロブロックの動きベクトルのうち、左側半分のｍ／２個のマクロブロックに関しては、動きベクトルを中央から左側へ順に見て、動きベクトルが連続して類似しているもののみを使用し、大きく異なった時点から左側の動きベクトルは使用しないものとする。また、右側半分のｍ／２個のマクロブロックに関しても、中央から右側に順に見て、動きベクトルが連続して類似しているもののみを使用し、大きく異なった時点から右側の動きベクトルは使用しないものとする。更に、左側のグループと右側のグループの動きベクトル同士が類似している場合はこれら全てを用いた補間処理を行なう一方、大きく異なる場合は、左側のグループの補間結果と右側のグループの補間結果とにおける予測誤差評価基準値を比較して、値の小さい方を採用するものとする。
【００４０】
また、実施の形態１では、ｎ＝４として説明を行なったが、ｎはｎ≧２を満たすどんな正の整数でも構わない。その際、補間処理用のフィルタ係数はそれに見合うだけ、（ｎ−１）組分用意することとする。
【００４１】
実施の形態２．
以下、この発明の実施の形態２を説明する。図１６は実施の形態２に係る動画像符号化装置の構成図である。図１６の動画像符号化装置は基本的な構成は実施の形態１（図１参照）と同様であるが、図１における遅延要素１８が動きベクトルメモリ２１に置き換わり、全ての動きベクトルの入出力はこの動きベクトルメモリ２１を介して行なわれるようになっている。また、それに伴いセレクタ２０が削除されている。他の部分は実施の形態１の構成と同様であるため、以下、動きベクトルメモリ２１の置き換えに伴う実施の形態１との相違点を中心に説明する。
【００４２】
次に、動作について説明する。図１６で、第１動きベクトル検出部（大領域）１６は、水平方向にｎａマクロブロック（ｎａは整数、ｎａ≧２）間隔、垂直方向にｎｂマクロブロック（ｎｂは整数、ｎｂ≧２）間隔で、大きな探索領域での動きベクトル探索を行なうものとする。動きベクトルメモリ２１は、第１動きベクトル検出部（大領域）１６から出力された動きベクトルを記憶する。また、動きベクトルメモリ２１は、記憶している動きベクトルを必要に応じて複数種類出力する。動きベクトル補間部１９は、動きベクトルメモリ２１の出力した動きベクトルの入力を受け、第１動きベクトル検出部（大領域）１６が探索対象としない各マクロブロック位置に対して動きベクトルの補間処理を実行する。第２動きベクトル検出部（小領域）１７は、第１動きベクトル検出部（大領域）１６が探索対象としない各マクロブロック位置に対して、動きベクトル補間部１９の出力を探索領域の中心点として、小さい探索領域での動きベクトル探索を行なう。動きベクトルメモリ２１は、第２動きベクトル検出部（小領域）１７から出力された動きベクトルも記憶する。更に、動きベクトルメモリ２１は、記憶した動きベクトルをラスタスキャン順に並び替えて可変長符号化部６へ出力する。
【００４３】
次に、第２の実施の形態における動きベクトル探索方法について説明する。図１７は画面がマクロブロックに分割される様子を示す図である。図１７のように、画面をマクロブロックに分割して動きベクトル探索を実行する際、先ず、網掛けのあるマクロブロックに関して上述のブロックマッチング法による動きベクトル探索を行なう（１ｓｔステップ）。この時、探索領域は図３に示すように当該マクロブロックを中心として水平にも、垂直にも対称となるように設定する。ここで、図３は、当該マクロブロックの左上隅を、探索領域の全ての画素位置に移動させながら動きベクトル探索を行なうことを表している。なお、図１７において、網掛けのあるマクロブロックを水平方向にはｎａマクロブロック（ｎａは整数、ｎａ≧２）間隔で、垂直方向にはｎｂマクロブロック（ｎｂは整数、ｎｂ≧２）間隔で配置することとする。図１７では例としてｎａ＝４、ｎｂ＝４としている。
【００４４】
次に白抜きのマクロブロックの動きベクトル探索を行なう（２ｎｄステップ）。先ず、水平方向に、網掛けのあるマクロブロックに挟まれたマクロブロックについて、探索領域の設定と動きベクトル探索を実施する。探索方法は、実施の形態１で述べた方法で行なう。実施の形態１の探索を完了した時点で、網掛けのあるマクロブロックの存在する水平方向のマクロブロックに関しては、網掛けのあるマクロブロック、及び白抜きのマクロブロックの両方に対して動きベクトル探索を完了していることとなる。
【００４５】
更にその後、垂直方向に、既に動きベクトル探索を完了した網掛けのあるマクロブロックに挟まれた、白抜きのマクロブロックについて、探索領域の設定と動きベクトル探索を実施する。方法は、第１の実施の形態で述べた方法を、水平方向から垂直方向に変更した方法で行なう。
【００４６】
以上のように、この実施の形態２によれば、実施の形態１による水平方向のブロックマッチング法を行うべきマクロブロックの出現頻度の減少に加えて、垂直方向でも同出現頻度の減少が可能となり、更なる動きベクトル探索の演算量の削減が実現出来るという効果が得られる。
【図面の簡単な説明】
【００４７】
【図１】この発明の実施の形態１に係る動画像符号化装置の構成図である。
【図２】この発明の実施の形態１において、画面がマクロブロックに分割される様子を示す図である。
【図３】この発明の実施の形態１の１ｓｔステップ探索の探索領域設定を示す図である。
【図４】この発明の実施の形態１の２ｎｄステップ探索の探索領域設定において、水平方向に並んだ網掛けのあるマクロブロック同士の動きベクトルが全て類似している場合を示す図である。
【図５】この発明の実施の形態１の２ｎｄステップ探索の探索領域設定において、水平方向に並んだ網掛けのあるマクロブロック同士の動きベクトルのうち、左側のグループに大きく異なる動きベクトルが存在し、かつその他の左側のグループと右側のグループの動きベクトルは類似している場合を示す図である。
【図６】この発明の実施の形態１の２ｎｄステップ探索の探索領域設定において、水平方向に並んだ網掛けのあるマクロブロック同士の動きベクトルのうち、右側のグループに大きく異なる動きベクトルが存在し、かつ左側のグループとその他の右側のグループの動きベクトルは類似している場合を示す図である。
【図７】この発明の実施の形態１の２ｎｄステップ探索の探索領域設定において、水平方向に並んだ網掛けのあるマクロブロック同士の動きベクトルのうち、左右のグループに大きく異なる動きベクトルがそれぞれ存在し、かつその他の左側のグループと右側のグループの動きベクトルは類似している場合を示す図である。
【図８】この発明の実施の形態１の２ｎｄステップ探索の探索領域設定において、水平方向に並んだ網掛けのあるマクロブロック同士の動きベクトルのうち、左側のグループと右側のグループの動きベクトルが大きく異なる場合を示す図である。
【図９】この発明の実施の形態１の２ｎｄステップ探索の探索領域設定において、水平方向に並んだ網掛けのあるマクロブロック同士の動きベクトルのうち、左側のグループに大きく異なる動きベクトルが存在し、かつその他の左側のグループと右側のグループの動きベクトルも大きく異なる場合を示す図である。
【図１０】この発明の実施の形態１の２ｎｄステップ探索の探索領域設定において、水平方向に並んだ網掛けのあるマクロブロック同士の動きベクトルのうち、右側のグループに大きく異なる動きベクトルが存在し、かつ左側のグループとその他の右側のグループの動きベクトルも大きく異なる場合を示す図である。
【図１１】この発明の実施の形態１の２ｎｄステップ探索の探索領域設定において、水平方向に並んだ網掛けのあるマクロブロック同士の動きベクトルのうち、左右のグループに大きく異なる動きベクトルがそれぞれ存在し、かつその他の左側のグループと右側のグループの動きベクトルも大きく異なる場合を示す図である。
【図１２】この発明の実施の形態１の２ｎｄステップ探索の探索領域設定において、画面左端点付近での様子を示す図である。
【図１３】この発明の実施の形態１の２ｎｄステップ探索の探索領域設定において、画面右端のマクロブロックが網掛けのあるマクロブロックである場合、画面右端点付近での様子を示す図である。
【図１４】この発明の実施の形態１の２ｎｄステップ探索の探索領域設定において、画面右端のマクロブロックが網掛けのないマクロブロックである場合、画面右端点付近での様子を示す図である。
【図１５】この発明の実施の形態１におけるマクロブロック単位の動きベクトル探索のタイミングを示す図である。
【図１６】この発明の実施の形態２に係る動画像符号化装置の構成図である。
【図１７】この発明の実施の形態２において、画面がマクロブロックに分割される様子を示す図である。
【符号の説明】
【００４８】
１  入力画像信号、２  並べ替え部、３  減算器、４  直交変換部、５  量子化部、６  可変長符号化部、７  バッファメモリ、８  符号化データ、９  逆量子化部、１０  逆直交変換部、１１  加算器、１２  第１画像メモリ、１３  第２画像メモリ、１４  動き補償部、１６  第１動きベクトル検出部（大領域）、１７  第２動きベクトル検出部（小領域）、１８  遅延要素、１９  動きベクトル補間部、２０  セレクタ、２１  動きベクトルメモリ。
【図１】
2006129367.tif 000003
【図２】
2006129367.tif 000004
【図３】
2006129367.tif 000005
【図４】
2006129367.tif 000006
【図５】
2006129367.tif 000007
【図６】
2006129367.tif 000008
【図７】
2006129367.tif 000009
【図８】
2006129367.tif 000010
【図９】
2006129367.tif 000011
【図１０】
2006129367.tif 000012
【図１１】
2006129367.tif 000013
【図１２】
2006129367.tif 000014
【図１３】
2006129367.tif 000015
【図１４】
2006129367.tif 000016
【図１５】
2006129367.tif 000017
【図１６】
2006129367.tif 000018
【図１７】
2006129367.tif 000019