(57)【要約】【課題】動きベクトルの検出のための演算量を低減して回路規模の縮小化を図った動きベクトル検出装置を提供する。【解決手段】ピクチャＢ２に含まれる対象ブロックＢＬ０と近似する画像を有するブロックを、参照ピクチャＰ１から探索することにより、対象ブロックＢＬ０の動きベクトルＭＶ０Ｆを検出する動きベクトル検出部１２１と、動きベクトルＭＶ０Ｆに基づいて参照ピクチャＰ１の探索範囲を特定する予測演算部１２３および探索範囲制御部１２４とを備え、動きベクトル検出部１２１は、ピクチャＢ３に含まれる対象ブロックＢＬ１と近似する画像を有するブロックを、その探索範囲から探索することにより、対象ブロックＢＬ１の動きベクトルＭＶ１Ｆを検出する。【選択図】図１
2007129498.tif 000002
【特許請求の範囲】
【請求項１】
ピクチャに含まれる対象ブロックの動きベクトルを検出する動きベクトル検出装置であって、
第１のピクチャに含まれる対象ブロックと近似する画像を有するブロックを、参照ピクチャから探索することにより、前記第１のピクチャに含まれる前記対象ブロックの第１の動きベクトルを検出する第１の動き検出手段と、
前記第１の動きベクトルに基づいて、前記参照ピクチャの探索範囲を特定する探索範囲特定手段と、
第２のピクチャに含まれる対象ブロックと近似する画像を有するブロックを、前記探索範囲から探索することにより、前記第２のピクチャに含まれる前記対象ブロックの第２の動きベクトルを検出する第２の動き検出手段と
を備えることを特徴とする動きベクトル検出装置。
【請求項２】
前記探索範囲特定手段は、
前記第１および第２のピクチャと前記参照ピクチャとの間での表示時刻の時間差に応じて、前記第１の動きベクトルをスケーリングすることにより、前記第２のピクチャの前記対象ブロックの予測動きベクトルを算出する予測演算手段と、
前記予測演算手段により算出された予測動きベクトルにより示される前記参照ピクチャの範囲を前記探索範囲として特定する特定手段とを備える
ことを特徴とする請求項１記載の動きベクトル検出装置。
【請求項３】
前記予測演算手段は、前記第２のピクチャにおいて前記第１のピクチャの前記対象ブロックと空間的同一位置にある同位置ブロックを、前記第２のピクチャの前記対象ブロックとして、当該対象ブロックの前記予測動きベクトルを算出し、
前記第２の動き検出手段は、前記同位置ブロックを前記第２のピクチャの前記対象ブロックとして、当該対象ブロックの前記第２の動きベクトルを検出する
ことを特徴とする請求項２記載の動きベクトル検出装置。
【請求項４】
前記探索範囲特定手段は、前記第１のピクチャと前記参照ピクチャとの間の表示時刻の時間差と、前記第２のピクチャと前記参照ピクチャとの間の表示時刻の時間差とのうち、最も長い時間差に応じた大きさの探索可能最大範囲から、前記探索範囲を特定する
ことを特徴とする請求項１〜３の何れか１項に記載の動きベクトル検出装置。
【請求項５】
前記探索範囲特定手段は、
前記参照ピクチャにおいて前記第２のピクチャの前記対象ブロックと空間的同一位置にあるブロックを中心とする範囲を探索可能最大範囲として、当該探索可能最大範囲から前記探索範囲を特定する
ことを特徴とする請求項１〜３の何れか１個に記載の動きベクトル検出装置。
【請求項６】
前記第１の動き検出手段は、前記第１のピクチャごとに、当該第１のピクチャに含まれる前記対象ブロックの前記第１の動きベクトルを検出し、
前記探索範囲特定手段は、複数の前記第１のピクチャのうち、前記第２のピクチャとの間の表示時刻の時間差が最も短いピクチャの第１の動きベクトルに基づいて、前記参照ピクチャの探索範囲を特定する
ことを特徴とする請求項１〜３の何れか１項に記載の動きベクトル検出装置。
【請求項７】
前記特定手段は、
前記予測動きベクトルにより示される前記参照ピクチャの範囲と、前記参照ピクチャにおいて前記第２のピクチャの前記対象ピクチャと空間的同一位置にあるブロックとを、前記探索範囲として特定する
ことを特徴とする請求項２又は３記載の動きベクトル検出装置。
【請求項８】
前記第１の動き検出手段は、前記第１のピクチャに含まれる前記対象ブロックと近似する画像を有するブロックを、前記参照ピクチャの一部の部分範囲から探索し、
前記探索範囲特定手段は、前記部分範囲と同一の大きさの前記探索範囲を特定する
ことを特徴とする請求項１〜３の何れか１項に記載の動きベクトル検出装置。
【請求項９】
前記第１または第２の動き検出手段は、既に検出した前記第１または第２の動きベクトルを用いた前記第１または第２のピクチャの前記対象ブロックに対する符号化処理が行なわれている間に、前記第１または第２のピクチャに含まれる他の対象ブロックの第１または第２の動きベクトルを検出する
ことを特徴とする請求項１〜３の何れか１項に記載の動きベクトル検出装置。
【請求項１０】
ピクチャに含まれる対象ブロックの動きベクトルを検出する動きベクトル検出方法であって、
第１のピクチャに含まれる対象ブロックと近似する画像を有するブロックを、参照ピクチャから探索することにより、前記第１のピクチャに含まれる前記対象ブロックの第１の動きベクトルを検出する第１の動き検出ステップ、
前記第１の動きベクトルに基づいて、前記参照ピクチャの探索範囲を特定する探索範囲特定ステップと、
前記第２のピクチャに含まれる対象ブロックと近似する画像を有するブロックを、前記探索範囲から探索することにより、前記第２のピクチャに含まれる前記対象ブロックの第２の動きベクトルを検出する第２の動き検出ステップと
を含むことを特徴とする動きベクトル検出方法。
【請求項１１】
ピクチャに含まれる対象ブロックの動きベクトルを検出する集積回路であって、
第１のピクチャに含まれる対象ブロックと近似する画像を有するブロックを、参照ピクチャから探索することにより、前記第１のピクチャに含まれる前記対象ブロックの第１の動きベクトルを検出する第１の動き検出手段と、
前記第１の動きベクトルに基づいて、前記参照ピクチャの探索範囲を特定する探索範囲特定手段と、
前記第２のピクチャに含まれる対象ブロックと近似する画像を有するブロックを、前記探索範囲から探索することにより、前記第２のピクチャに含まれる前記対象ブロックの第２の動きベクトルを検出する第２の動き検出手段と
を備えることを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のピクチャからなる動画像のピクチャ間予測符号化に用いられる動きベクトル検出装置であって、ピクチャの一部であるブロックが他のピクチャのどの位置から動いてきたかを検出し、その動きを動きベクトルで表現する動きベクトル検出装置に関する。
【背景技術】
【０００２】
動画像符号化においては、一般に動画像が有する空間方向および時間方向の冗長性を利用して情報量の圧縮を行う。ここで、時間方向の冗長性を利用する方法として、ピクチャ間予測符号化が用いられる。ピクチャ間予測符号化では、あるピクチャを符号化する際に、表示順序で前方または後方にあるピクチャを参照ピクチャとする。そして、その参照ピクチャからの動きベクルトルを検出し、動き補償を行ったピクチャと符号化対象のピクチャとの差分値に対して空間方向の冗長度を取り除くことにより情報量の圧縮を行う。
【０００３】
ＭＰＥＧなどの動画像符号化方式では、参照ピクチャを持たずに符号化対象ピクチャのみを用いてピクチャ内予測符号化を行うピクチャをＩピクチャと呼ぶ。ここでピクチャとは、フレームおよびフィールドの両者を包含する１つの符号化の単位を意味する。また、既に符号化済みの１枚のピクチャを参照してピクチャ間予測符号化するピクチャをＰピクチャと呼び、既に符号化済みの２枚のピクチャを同時に参照してピクチャ間予測符号化するピクチャをＢピクチャと呼ぶ。
【０００４】
図２２は、動画像符号化方式における各ピクチャの予測関係を示す模式図である。
図２２において、縦線は１枚のピクチャを示しており、各ピクチャの右下にピクチャタイプ（Ｉ、Ｐ、Ｂ）を示している。また図２２中の矢印は、矢印の始端にあるピクチャが、矢印の終端にあるピクチャを参照ピクチャとして用いてピクチャ間予測符号化されることを示している。例えば、先頭から２枚目のＢピクチャは、先頭のＩピクチャと先頭から４枚目のＰピクチャを参照ピクチャとして用いることにより符号化される。
【０００５】
図２３は、ピクチャの表示順序および符号化順序を示す図である。
図２３の（ａ）に示すように、各ピクチャの表示順序は、ＰピクチャＰ１、ＢピクチャＢ２、ＢピクチャＢ３、ＰピクチャＰ４、ＢピクチャＢ５、ＢピクチャＢ６、ＰピクチャＰ７、ＢピクチャＢ８、ＢピクチャＢ９、ＰピクチャＰ１０となる。一方、これらピクチャの符号化順序は、図２３の（ｂ）に示すように、ＢピクチャＢ０、ＰピクチャＰ４、ＢピクチャＢ２、ＢピクチャＢ３、ＰピクチャＰ７、ＢピクチャＢ５、ＢピクチャＢ６、ＰピクチャＰ１０、ＢピクチャＢ８、ＢピクチャＢ９となる。
【０００６】
なお、従来のＭＰＥＧ−２のような動画像符号化方式に対し、最新の動画像符号化方式Ｈ．２６４では、Ｂピクチャは３枚以上のピクチャを参照してもよい。
【０００７】
図２４は、Ｈ．２６４における参照関係を示す図である。
この図２４に示すように、Ｂピクチャは、例えば、前方の２枚のＰピクチャと、後方の１枚のＰピクチャとを参照する。そしてＢピクチャにおける動きベクトルが検出される。このように、Ｈ．２６４では、同じ１枚のＢピクチャに対して、動きベクトル検出のために参照可能な参照ピクチャの枚数が、ＭＰＥＧ２より多くなっている（例えば、非特許文献１参照）。
【０００８】
ところで、ピクチャ間予測符号化における動きベクトルの検出は、ブロック単位に行なわれる。符号化対象ピクチャに含まれるブロックごとに、そのブロックの画像に最も近い画像を有するブロックが、参照ピクチャの中から探索される。そして、動きベクトルの検出では、通常、演算量の負荷と動きベクトルの精度を考慮し、動きベクトル検出の探索範囲が事前に設定される。このとき、時間の経過とともに対象が移動する場合を想定し、符号化対象のピクチャと参照ピクチャとの間の距離に比例して、動きベクトルの探索範囲を拡大しておく必要がある。
【０００９】
図２５は、動きベクトルの検出における探索範囲を示す図である。
例えば、符号化対象ピクチャと参照ピクチャとの間の距離（ピクチャ間距離）が１のときに、動きベクトルの探索範囲が±Ｓ×±Ｓである場合、そのピクチャ間距離がｄになると、動きベクトルの探索範囲は（ｄ×±Ｓ）×（ｄ×±Ｓ）となる。このように、探索範囲はｄ×ｄ倍に拡大する。すなわち、ピクチャ間距離が長くなる場合、探索範囲は、その距離の変化の割合の自乗に比例して拡大する。
【００１０】
図２５に示すように、（ｎ＋３）番目の符号化対象ピクチャに含まれるブロックの動きベクトルＭＶ１，ＭＶ２，ＭＶ３を、ｎ番目の参照ピクチャ、（ｎ＋１）番目の参照ピクチャ、または（ｎ＋２）番目の参照ピクチャを用いて検出する場合、（ｎ＋１）番目の参照ピクチャの探索範囲は、（ｎ＋２）番目の参照ピクチャの探索範囲の２×２倍であり、ｎ番目の参照ピクチャの探索範囲は、ｎ＋２番目の参照ピクチャの探索範囲の３×３倍となる。
【００１１】
このように、ピクチャ間距離が増大すると、動きベクトルの探索範囲は急激に拡大し、動きベクトル検出の演算回数も膨大になる。このため、演算回数を削減するために、テレスコピックサーチにより動きベクトルを検出する動きベクトル検出装置が提案されている（例えば、特許文献１、２及び３参照）。
【００１２】
テレスコピックサーチは、参照ピクチャと符号化対象ピクチャとの間に存在するピクチャに対して順次動き探索を行うことにより、動きベクトルを検出する手法である。この方法では、ピクチャ間距離が長くなっても、探索範囲は、その距離の変化の割合の自乗ではなく、その割合に比例して拡大する。
【００１３】
図２６は、テレスコピックサーチを示す図である。
例えば、（ｎ＋３）番目の符号化対象ピクチャに含まれるブロック（対象ブロック）の動きベクトルを、ｎ番目の参照ピクチャを用いて検出する。この場合、テレスコピックサーチでは、まず、（ｎ＋２）番目のピクチャの対象ブロックと同一位置を中心とする探索範囲（±Ｓ×±Ｓ）を用いて、（ｎ＋３）番目のピクチャから（ｎ＋２）番目のピクチャに対する動きベクトルｖ１を検出する。続いて、（ｎ＋１）番目のピクチャにある、動きベクトルｖ１の示す位置と同一位置を中心とする探索範囲（±Ｓ×±Ｓ）を用いて、（ｎ＋３）番目のピクチャから（ｎ＋１）番目のピクチャに対する動きベクトルｖ２＋ｖ１を検出する。同様に、ｎ番目のピクチャにある、動きベクトルｖ２＋ｖ１の示す位置と同一位置を中心とする探索範囲（±Ｓ×±Ｓ）を用いて、ｎ＋３番目のピクチャからｎ番目のピクチャへの動きベクトルｖ３＋ｖ２＋ｖ１を検出する。この動きベクトルを対象ブロックの動きベクトルｖ０とする。つまり、全体の探索範囲は３×（±Ｓ×±Ｓ）となる。
【非特許文献１】Ｄｒａｆｔ  ｏｆ  Ｖｅｒｓｉｏｎ  ４  ｏｆ  Ｈ．２６４／ＡＶＣ（ＩＴＵ−ＴＲｅｃｏｍｍｅｎｄａｔｉｏｎ  Ｈ．２６４  ａｎｄ  ＩＳＯ／ＩＥＣ  １４４９６−１０  （ＭＰＥＧ−４  ｐａｒｔ  １０）  Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）, Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ  （ＪＶＴ）  ｏｆ  ＩＳＯ／ＩＥＣ  ＭＰＥＧ  ＆  ＩＴＵ−Ｔ  ＶＣＥＧ、Ｄｏｃｕｍｅｎｔ：ＪＶＴ−Ｎ０５０ｄ１、２００５−０１−２８
【特許文献１】特許第２８３０１８３号公報
【特許文献２】特許第３３３５１３７号公報
【特許文献３】特開平１０−３４１４４０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、テレスコピックサーチを行なう特許文献１〜３の動きベクトル検出装置であっても、動きベクトルを検出するときの演算量が多いという問題がある。
【００１５】
つまり、テレスコピックサーチでは、参照ピクチャと符号化対象ピクチャの間に存在するピクチャに対して順次動き探索を行うことにより、各ピクチャにおける探索範囲は、それぞれピクチャ間距離に関係なく一定となる。しかし、テレスコピックサーチでは、参照ピクチャと符号化対象ピクチャの間に存在するピクチャに対しても順次動き探索を行うため、参照ピクチャとは無関係な途中のピクチャまで参照しなければならず、その参照回数はピクチャ間距離に比例する。したがって、全体的な探索範囲は、ピクチャ間距離に比例して大きくなり、その結果、動きベクトルを検出するときの演算量が多くなるのである。
【００１６】
さらに、テレスコピックサーチを行なう動きベクトル検出装置では、回路規模が増大するという問題がある。つまり、この動きベクトル検出装置では、参照ピクチャを格納しているメモリから、動きベクトルの検出のために読み出される探索範囲のデータ量が多い。その結果、この動きベクトル検出装置では、メモリの転送動作クロックを高速化したりメモリバンド幅（ビット幅）を広げたりするために回路規模が増大するのである。
【００１７】
図２７は、一枚の参照ピクチャにおける探索範囲の変化を示す図である。
一般に、対象ブロック（通常は、マクロブロックであって、例えば、１６画素×１６ラインから構成されるブロック）に対する参照ピクチャＲＰ１の探索範囲ＴＡ１は、参照ピクチャＲＰ１において対象ブロックと同一位置にあるブロックＴＢ１を中心とする範囲である。ここで、参照ピクチャＲＰ１は、水平Ｈ画素および垂直Ｖラインから構成され、探索範囲ＴＡ１は、水平ｈ画素および垂直ｖラインから構成される。したがって、対象ブロックの動きベクトルを検出するときには、水平ｈ画素および垂直ｖラインのデータがメモリから読み出される。
【００１８】
次に、対象ブロックが水平方向にシフトすると、その対象ブロックに対する参照ピクチャＲＰ１の探索範囲ＴＡ２は、参照ピクチャＲＰ１において対象ブロックと同一位置にあるブロックＴＢ２を中心とする範囲となる。したがって、対象ブロックが水平方向にシフトすると、探索範囲もブロックの幅ｗだけシフトする。この場合、対象ブロックの動きベクトルを検出するときにメモリから読み出されるデータは、探索範囲ＴＡ２のデータのうち探索範囲ＴＡ１に含まれていなかったデータのみとなる。即ち、新たにメモリから読み出されるデータは、１６画素および垂直ｖラインのデータとなる。
【００１９】
このように、対象ブロックが水平方向にシフトすると、新たな探索範囲に含まれる全てのデータがメモリから読み出されるのではなく、直前の探索範囲に含まれていなかったデータのみがメモリから読み出される。
【００２０】
ここで、テレスコピックサーチの場合、互いに隣接するピクチャごとに上述のような探索範囲のデータがメモリから読み出される。しかし、この場合には、各ピクチャの探索範囲が常にブロックの幅だけシフトするとは限らず、大きくシフトする可能性がある。そのため、探索範囲のデータをメモリから読み出して動きベクトルの検出を行い、そのデータを次の動きベクトルの検出用に蓄積しておいても、ほとんど重複するデータがないので、新たな探索範囲のデータの多くをメモリから読み込む必要がある。したがって、テレスコピックサーチの場合には、メモリからの転送データ量が多くなるのである。また、その結果、消費電力が上昇してしまう。
【００２１】
そこで、本発明は、かかる問題に鑑みてなされたものであって、動きベクトルの検出のための演算量を低減して回路規模の縮小化を図った動きベクトル検出装置を提供することを目的とする。
【課題を解決するための手段】
【００２２】
上記目的を達成するために、本発明に係る動きベクトル検出装置は、ピクチャに含まれる対象ブロックの動きベクトルを検出する動きベクトル検出装置であって、第１のピクチャに含まれる対象ブロックと近似する画像を有するブロックを、参照ピクチャから探索することにより、前記第１のピクチャに含まれる前記対象ブロックの第１の動きベクトルを検出する第１の動き検出手段と、前記第１の動きベクトルに基づいて、前記参照ピクチャの探索範囲を特定する探索範囲特定手段と、第２のピクチャに含まれる対象ブロックと近似する画像を有するブロックを、前記探索範囲から探索することにより、前記第２のピクチャに含まれる前記対象ブロックの第２の動きベクトルを検出する第２の動き検出手段とを備えることを特徴とする。例えば、前記探索範囲特定手段は、前記第１および第２のピクチャと前記参照ピクチャとの間での表示時刻の時間差に応じて、前記第１の動きベクトルをスケーリングすることにより、前記第２のピクチャの前記対象ブロックの予測動きベクトルを算出する予測演算手段と、前記予測演算手段により算出された予測動きベクトルにより示される前記参照ピクチャの範囲を前記探索範囲として特定する特定手段とを備える。
【００２３】
第１および第２のピクチャの表示時刻が互いに近く、それぞれのピクチャに含まれる対象ピクチャが空間的に同一の位置にあれば、第１および第２の動きベクトルの向きは等しくなる傾向にある。したがって、本発明では、例えば、第１の動きベクトルから予測動きベクトルが算出されて探索範囲が特定されるように、第１の動きベクトルに基づいて探索範囲が特定されるため、第２の動きベクトルを検出するための探索範囲を適切に特定することができる。その結果、従来のように、第２のピクチャが参照ピクチャから表示時間的に離れていても、参照ピクチャにおける探索範囲を広げることなく、適切な探索範囲で第２のピクチャの対象ブロックの動きベクトルを検出することができる。また、本発明では、テレスコピックサーチのように、直接必要のない動きベクトルまで検出する必要がない。その結果、本発明では全体的な探索範囲を小さくすることができる。さらに、本発明では、第２のピクチャの対象ブロックをずらしながら各対象ブロックの第２の動きベクトルを検出するときにも、テレスコピックサーチと比べて、参照ピクチャを格納しているメモリ（ピクチャメモリ）からの転送データ量を少なくすることができる。即ち、本発明では、表示順序で参照ピクチャと第２のピクチャとの間に他のピクチャがあっても、他のピクチャにおける探索範囲のデータをメモリから読み出す必要がなく、さらに、対象ブロックをずらしながら各対象ブロックの第２の動きベクトルを検出するときには、前回に読み出した探索範囲を有効に利用して、新たにメモリから読み出すデータ量を減らすことができる。
【００２４】
したがって、本発明では、探索範囲を適切な範囲とすることができるため、動きベクトルの検出のための演算量を低減することができるとともに、メモリからの転送データ量を少なくすることができるため、回路規模の縮小化を図ることができる。
【００２５】
また、前記予測演算手段は、前記第２のピクチャにおいて前記第１のピクチャの前記対象ブロックと空間的同一位置にある同位置ブロックを、前記第２のピクチャの前記対象ブロックとして、当該対象ブロックの前記予測動きベクトルを算出し、前記第２の動き検出手段は、前記同位置ブロックを前記第２のピクチャの前記対象ブロックとして、当該対象ブロックの前記第２の動きベクトルを検出することを特徴としてもよい。
【００２６】
これにより、第１のピクチャの対象ブロックと第２のピクチャの対象ブロックとがそれぞれ、各ピクチャ内において空間的に同一の位置にあるため、予測動きベクトルを第２の動きベクトルに近づけることができる。即ち、予測動きベクトルの精度を向上することができ、その結果、探索範囲をより適切に特定することができる。
【００２７】
また、前記第１の動き検出手段は、前記第１のピクチャごとに、当該第１のピクチャに含まれる前記対象ブロックの前記第１の動きベクトルを検出し、前記探索範囲特定手段は、複数の前記第１のピクチャのうち、前記第２のピクチャとの間の表示時刻の時間差が最も短いピクチャの第１の動きベクトルに基づいて、前記参照ピクチャの探索範囲を特定することを特徴としてもよい。
【００２８】
これにより、第１の動きベクトルが複数あるときには、第２のピクチャと表示時間的に近い第１のピクチャの第１の動きベクトルに基づいて探索範囲が特定されるため、第１の動きベクトルが複数あっても、適切な探索範囲を特定することができる。
【００２９】
また、前記特定手段は、前記予測動きベクトルにより示される前記参照ピクチャの範囲と、前記参照ピクチャにおいて前記第２のピクチャの前記対象ピクチャと空間的同一位置にあるブロックとを、前記探索範囲として特定することを特徴としてもよい。
【００３０】
これにより、前記参照ピクチャにおいて第２のピクチャの対象ピクチャと空間的に同一位置にあるブロックが探索範囲に含まれるため、予測動きベクトルにより示される参照ピクチャの範囲に、第２のピクチャの対象ピクチャと近似する画像を有するブロックがなくても、その他の範囲からそのブロックを探索することができ、第２動きベクトルを適切に検出することができる。
【００３１】
また、前記第１または第２の動き検出手段は、既に検出した前記第１または第２の動きベクトルを用いた前記第１または第２のピクチャの前記対象ブロックに対する符号化処理が行なわれている間に、前記第１または第２のピクチャに含まれる他の対象ブロックの第１または第２の動きベクトルを検出することを特徴としてもよい。
【００３２】
これにより、この動きベクトル検出装置が動画像符号化装置に組み込まれたときには、符号化処理と動き検出処理とがパイプライン処理されるため、全体的な処理時間の短縮化を図ることができる。
【００３３】
なお、本発明は、このような動きベクトル検出装置として実現することができるだけでなく、その方法やプログラム、そのプログラムを格納する記憶媒体、集積回路としても実現することができる。
【発明の効果】
【００３４】
本発明の動きベクトル検出装置は、動きベクトルの探索範囲を小さくして動きベクトルの演算量を低減することができるとともに、外部のメモリから読み出すデータ量を低減することで、低消費電力化および回路規模の縮小化を図ることができるという作用効果を奏する。
【発明を実施するための最良の形態】
【００３５】
以下、本発明の実施の形態における動きベクトル検出装置を備えた動画像符号化装置について図面を参照しながら説明する。
【００３６】
図１は、本発明の実施の形態における動きベクトル検出装置を備えた動画像符号化装置のブロック図である。
【００３７】
動画像符号化装置１００は、図１に示すように、ピクチャメモリ１１２，１２０、ブロック選択部１１１、差分演算部１１３、スイッチ１１４，１２７、符号化部１１５、整列化バッファ１１６、符号列生成部１１７、復号化部１１８、加算演算部１１９、動きベクトル検出部１２１、記憶部１２２、予測演算部１２３、探索範囲制御部１２４、モード選択部１２５および動き補償部１２６を備えている。
【００３８】
ピクチャメモリ１１２は、図２３の（ａ）に示すように、動画像を示す複数の入力画像（ピクチャ）を表示順序で取得して格納する。そして、ピクチャメモリ１１２は、ブロック選択部１１１で選択された各ピクチャの対象ブロック（動きベクトルの検出対象や符号化対象となるブロック）を差分演算部１１３、スイッチ１４および動きベクトル検出部１２１へ出力する。
【００３９】
ブロック選択部１１１は、ピクチャメモリ１１２に格納されたピクチャから、連続する複数枚のピクチャ単位、例えば、図２３の（ａ）に示すピクチャＰ１，Ｂ２，Ｂ３，Ｐ４のような単位を選択する。さらに、ブロック選択部１１１は、それら各ピクチャから所定の位置の対象ブロックを選択して出力するようにピクチャメモリ１１２を制御する。また、ブロック選択部１１１は、選択した対象ブロックの位置情報とその対象ブロックが含まれるピクチャ（対象ピクチャ）の表示順情報を、動きベクトル検出部１２１、記憶部１２２、予測演算部１２３、探索範囲制御部１２４および整列化バッファ１１６に出力する。
【００４０】
差分演算部１１３は、入力画像に含まれる対象ブロックの画像と、動き補償部１２６から出力された予測画像との差分を算出し、その算出結果を予測残差画像として出力する。
【００４１】
スイッチ１１４は、対象ブロックに対してピクチャ内予測符号化が行われるときには、対象ブロックを符号化部１１５に出力し、対象ブロックに対してピクチャ間予測符号化が行なわれるときには、差分演算部１１３からの予測残差画像を符号化部１１５に出力する。
【００４２】
スイッチ１２７は、対象ブロックに対してピクチャ間処理が行なわれるときにのみ、動き補償部１２６からの予測画像を加算演算部１１９に出力する。
【００４３】
符号化部１１５は、スイッチ１１４から出力された対象ブロックまたは予測残差画像に対して周波数変換や量子化などの符号化処理を行なうことで符号化信号を生成する。
【００４４】
整列化バッファ１１６は、符号化信号に含まれるピクチャを規格に従った並びに配列し、その符号化信号を符号列生成部１１７に出力する。
【００４５】
符号列生成部１１７は、整列化バッファ１１６から出力された符号化信号に対して可変長符号化等を行う。さらに、符号列生成部１１７は、モード選択部１２５から動きベクトルや、動き予測のモードを示す情報（後述するダイレクトモード選択情報）などを取得し、可変長符号化された符号化信号に付加することにより、符号列を生成する。
【００４６】
復号化部１１８は、符号化部１１５から出力された符号化信号に対して逆量子化や逆周波数変換等の復号化処理を行うことで復号化画像を生成する。
【００４７】
加算演算部１１９は、復号化部１１８から出力された復号化画像と、動き補償部１２６からスイッチ１２７を介して出力された予測画像とを加算することで、再構築画像を生成する。
【００４８】
ピクチャメモリ１２０は、加算演算部１１９で生成されて出力された再構築画像を順次格納する。その結果、ピクチャメモリ１２０には参照ピクチャが格納される。
【００４９】
動きベクトル検出部１２１は、ピクチャメモリ１１２から出力された対象ブロックを取得する。また、動きベクトル検出部１２１は、その対象ブロックに対する参照ピクチャの探索範囲をピクチャメモリ１２０から読み出す。そして、動きベクトル検出部１２１は、対象ブロックの画像に近似する画像を有するブロックをその探索範囲から探索することにより、対象ブロックの画像の動きを示す動きベクトル（参照ピクチャに対する対象ブロックの動きベクトル）を検出する。
【００５０】
予測演算部１２３は、後述する時間ダイレクトモードにより、対象ブロックの動きベクトルを予測して予測動きベクトルを算出する。
【００５１】
探索範囲制御部１２４は、予測演算部１２３により算出された予測動きベクトルに基づいて、参照ピクチャの探索範囲を特定してその探索範囲を動きベクトル検出部１２１に設定する。
【００５２】
記憶部１２２は、動きベクトル検出部１２１で検出された動きベクトルを記憶するための領域を有する。
【００５３】
モード選択部１２５は、動き予測のモードを選択する。即ち、モード選択部１２５は、時間ダイレクトモードと非時間ダイレクトモードの何れかを選択する。そして、モード選択部１２５は、非時間ダイレクトモードを選択したときには、動きベクトル検出部１２１で検出された動きベクトルを符号列生成部１１７に出力し、時間ダイレクトモードを選択したときには、時間ダイレクトモードが選択されたことを通知するためのダイレクトモード選択情報を符号列生成部１１７に出力する。
【００５４】
また、本実施の形態における動きベクトル検出装置１００ａは、動きベクトルの検出のための演算量を低減して回路規模の縮小化を図ることができるという点に特徴があり、ブロック選択部１１１と、モード選択部１２５と、動きベクトル検出部１２１と、記憶部１２２と、予測演算部１２３と、探索範囲制御部１２４とを備えて構成されている。さらに、本実施の形態では、動きベクトル検出部１２１が、第１の動きベクトルを検出する第１の動き検出手段と、第２の動きベクトルを検出する第２の動き検出手段とを備えて構成され、予測演算部１２３と探索範囲制御部１２４とが、第１の動きベクトルに基づいて参照ピクチャの探索範囲を特定する探索範囲特定手段として構成されている。また、本実施の形態では、予測演算部１２３が、予測演算手段として構成され、探索範囲制御部１２４が、予測動きベクトルにより示される参照ピクチャの範囲を探索範囲として特定する特定手段として構成されている。
【００５５】
ここで、一般的な時間ダイレクトモードについて詳細に説明する。
Ｈ．２６４方式では、Ｂピクチャの符号化において、動きベクトルの情報を削減するため、ダイレクトモードという符号化モードを選択することができる。このダイレクトモードには、時間的方法と空間的方法との２種類の方法がある。時間ダイレクトモードでは、対象ブロック自体は動きベクトルを持たず、符号化済みの他のピクチャの動きベクトルを参照動きベクトルとして、ピクチャ間の表示時間的位置関係に基づいてスケーリングすることによって、対象ブロックの動きベクトルを予測して生成している。
【００５６】
図２は、時間ダイレクトモードにおける動きベクトルの予測生成方法を示す模式図である。なお、この図２に示すＰ１，Ｂ２などの符号中、ＰはＰピクチャ、ＢはＢピクチャを示し、数字は各ピクチャの表示順序を示している。また、各ピクチャＰ１，Ｂ２，Ｂ３，Ｐ４は、それぞれ表示順情報Ｔ１，Ｔ２，Ｔ３，Ｔ４を有している。つまり、各ピクチャは、ピクチャＰ１、ピクチャＢ２、ピクチャＢ３、ピクチャＰ４の順に表示される。
【００５７】
ここで、ピクチャＢ３のブロックＢＬ０は、時間ダイレクトモードで符号化される。この場合、ピクチャＢ３の表示時間的に近傍に位置する既に符号化済みのピクチャであるピクチャＰ４中の、ブロックＢＬ０と同じ位置にあるブロックＢＬ１の動きベクトルＭＶ１が利用される。この動きベクトルＭＶ１は、ブロックＢＬ１が符号化される際に用いられた動きベクトルであり、ピクチャＰ１を参照ピクチャとしている。
【００５８】
つまり時間ダイレクトモードでは、動きベクトルＭＶ１を下記の（式１ａ）および（式１ｂ）に適用することにより、ブロックＢＬ０のピクチャＰ１に対する動きベクトル（前方動きベクトル）ＭＶＦと、ブロックＢＬ０のピクチャＰ４に対する動きベクトル（後方動きベクトル）ＭＶＢとを算出する。なお、（式１ａ）および（式１ｂ）中、Ｍｖは動きベクトルＭＶ１の大きさを示し、Ｍｖｆは動きベクトルＭＶＦの大きさを示し、Ｍｖｂは動きベクトルＭＶＢの大きさを示す。
【００５９】
Ｍｖｆ＝（Ｔ３−Ｔ１）／（Ｔ４−Ｔ１）×Ｍｖ  …  （式１ａ）
Ｍｖｂ＝（Ｔ４−Ｔ３）／（Ｔ４−Ｔ１）×Ｍｖ  …  （式１ｂ）
【００６０】
このように、時間ダイレクトモードでは、動きベクトルＭＶ１をスケーリングすることによって得られる動ベクトルＭＶＦおよび動きベクトルＭＶＢを用いて、ピクチャＰ１とピクチャＰ４を参照ピクチャとするブロックＢＬ０の動き補償を行う。そのため、時間ダイレクトモードであることを示す情報を符号列に含めるだけで、ブロックＢＬ０の動きベクトルを符号化して符号列に含める必要がなく、その結果、符号列のビットレートを削減することができる。
【００６１】
本実施の形態の動きベクトル検出装置１００ａでは、上述のような時間ダイレクトモードにより対象ブロックの動きベクトルを予測する。つまり、本実施の形態の動きベクトル検出装置１００ａは、対象ブロックの予測動きベクトルを算出して、その予測動きベクトルから参照ピクチャの探索範囲を特定し、その探索範囲から動きベクトルを検出する。
【００６２】
図３は、本実施の形態における予測演算部１２３によって算出される前方向の予測動きベクトルを説明するための説明図である。なお、この図３中の符号Ｐ１およびＰ４はＰピクチャを示し、符号Ｂ２およびＢ３はＢピクチャを示す。また、これらの符号中の数字は、各ピクチャの表示順序を示している。また、各ピクチャＰ１，Ｂ２，Ｂ３，Ｐ４は、それぞれ表示順情報Ｔ１，Ｔ２，Ｔ３，Ｔ４を有している。この表示順情報は、各ピクチャの表示順序や表示時刻を示している。
【００６３】
動きベクトル検出部１２１は、まず、第１のピクチャたるピクチャＢ２の対象ブロックＢＬ０の動きベクトルＭＶ０Ｆ（第１の動きベクトル）を検出する。即ち、動きベクトル検出部１２１は、参照ピクチャＰ１においてピクチャＢ２の対象ブロックＢＬ０と同じ位置を中心とするＳ画素×Ｓラインの探索範囲（部分範囲）から、対象ブロックＢＬ０の画像と最も近似する画像を有するブロックを探索することにより、そのブロックを指示す動きベクトルＭＶ０Ｆを検出する。そして、動きベクトル検出部１２１は、その動きベクトルＭＶ０Ｆを記憶部１２２に格納する。
【００６４】
予測演算部１２３は、その動きベクトルＭＶ０Ｆを記憶部１２２から読み出して、動きベクトルＭＶ０Ｆをスケーリングすることにより、第２のピクチャたるピクチャＢ３およびピクチャＰ４において対象ブロックＢＬ０と同じ位置（空間的同一位置）にある対象ブロックＢＬ１，ＢＬ２に対して、それぞれ前方向の予測動きベクトルＭＶ１Ｆ＊と予測動きベクトルＭＶ２＊とを算出する。
【００６５】
具体的に、予測演算部１２３は、ピクチャＰ１，Ｂ２，Ｂ３，Ｐ４の表示順情報Ｔ１，Ｔ２，Ｔ３，Ｔ４を使い、下記の（式２ａ）および（式２ｂ）によって、ピクチャＢ３の対象ブロックＢＬ１の参照ピクチャＰ１に対する予測動きベクトルＭＶ１Ｆ＊と、ピクチャＰ４の対象ブロックＢＬ２の参照ピクチャＰ１に対する予測動きベクトルＭＶ２＊とを算出する。なお、（式２ａ）および（式２ｂ）中、Ｍｖ１ｆ＊およびＭｖ２＊はそれぞれ予測動きベクトルＭＶ１Ｆ＊，ＭＶ２＊の大きさを示し、Ｍｖ０ｆは動きベクトルＭＶ０Ｆの大きさを示す。
【００６６】
Ｍｖ１ｆ＊＝（Ｔ３−Ｔ１）／（Ｔ２−Ｔ１）×Ｍｖ０ｆ      …（式２ａ）
Ｍｖ２＊＝（Ｔ４−Ｔ１）／（Ｔ２−Ｔ１）×Ｍｖ０ｆ        …（式２ｂ）
【００６７】
ここで、各ピクチャＰ１，Ｂ２，Ｂ３，Ｐ４の表示時間間隔（表示時刻の時間差）が等間隔である場合には、参照ピクチャＰ１の探索可能最大範囲は、（３×Ｓ）画素×（３×Ｓ）ラインの範囲となる。つまり、ピクチャＢ２と参照ピクチャＰ１との表示時間間隔が（Ｔ２−Ｔ１）＝１の場合、参照ピクチャＰ１とピクチャＰ４との表示時間間隔は（Ｔ４−Ｔ１）＝３となる。したがって、ピクチャＢ２の動きベクトルＭＶ０Ｆの探索範囲がＳ画素×Ｓラインである場合には、探索可能最大範囲は、（３×Ｓ）画素×（３×Ｓ）ラインの範囲となる。このように、探索可能最大範囲は、各対象ピクチャと参照ピクチャＰ１との間の表示時刻の時間差のうち最も長い時間差に応じた大きさとなる。
【００６８】
予測演算部１２３は、このように算出した予測動きベクトルＭＶ１Ｆ＊，ＭＶ２Ｆ＊を探索範囲制御部１２４に出力する。
【００６９】
探索範囲制御部１２４は、参照ピクチャＰ１において予測動きベクトルＭＶ１Ｆ＊により示される探索範囲を特定して、動きベクトル検出部１２１に設定する。即ち、探索範囲制御部１２４は、予測動きベクトルＭＶ１Ｆ＊により示される参照ピクチャＰ１の位置を中心とするＳ画素×Ｓラインの探索範囲を設定する。また、探索範囲制御部１２４は、参照ピクチャＰ１において予測動きベクトルＭＶ２＊により示される探索範囲を特定して、動きベクトル検出部１２１に設定する。即ち、探索範囲制御部１２４は、予測動きベクトルＭＶ２＊により示される参照ピクチャＰ１の位置を中心とするＳ画素×Ｓラインの探索範囲を設定する。このように、探索範囲制御部１２４は、対象ブロックＢＬ１，ＢＬ２の動きベクトルを検出するために、対象ブロックＢＬ０の動きベクトルＭＶ０Ｆの探索範囲（部分範囲）と同じ大きさのＳ画素×Ｓラインの探索範囲を探索可能最大範囲から特定している。
【００７０】
動きベクトル検出部１２１は、探索範囲制御部１２４によって設定された参照ピクチャＰ１の各探索範囲をピクチャメモリ１２０から読み出し、その探索範囲のそれぞれから、対象ブロックＢＬ１の前方動きベクトル（第２の動きベクトル）と対象ブロックＢＬ２の動きベクトル（第２の動きベクトル）とを検出する。つまり、動きベクトル検出部１２１は、参照ピクチャＰ１に対する対象ブロックＢＬ０の前方動きベクトルを検出した後、参照ピクチャＰ１に対する対象ブロックＢＬ１の前方動きベクトルを検出し、その次に、参照ピクチャＰ１に対する対象ブロックＢＬ２の前方動きベクトルを検出する。そして、動きベクトル検出部１２１は、対象ブロックＢＬ１および対象ブロックＢＬ２のそれぞれの動きベクトルを記憶部１２２に格納する。
【００７１】
図４は、動きベクトルの検出の順序を示す図である。
この図４では、各ブロックの動きベクトルの検出順序を、各ブロック内の数字（１,２，…，Ｎ，Ｎ＋１,…）で示している。即ち、動きベクトル検出装置１００ａは、まず、ピクチャＢ２の左上端のブロックの動きベクトルを検出し、その動きベクトルを用いて、ピクチャＢ３の左上端のブロックの動きベクトルを検出し、その後、ピクチャＰ４の左上端のブロックの動きベクトルを検出する。次に、動きベクトル検出装置１００ａは、ピクチャＢ２の左上端から右に２番目のブロックの動きベクトルを検出し、その動きベクトルを用いて、ピクチャＢ３の左上端から右に２番目のブロックの動けベクトルを検出し、その後、ピクチャＰ４の左上端から右に２番目のブロックの動きベクトルを検出する。このように、動きベクトル検出装置１００ａは、各ピクチャにおいて対象ブロックを右にずらしながら、ピクチャＢ２、ピクチャＢ３、ピクチャＰ４の順に、対象ブロックの動きベクトルを検出する。
【００７２】
そして、各ピクチャにおける最上段の全てのブロックの動きベクトルが検出されると、動きベクトル検出装置１００ａは、その段の下の段にある各ブロックを対象ブロックとし、上述と同様の順序で動きベクトルを検出する。動きベクトル検出装置１００ａは、このように動きベクトルの検出の対象となるブロックを左から右に、上から下にずらしながら、ピクチャＢ２、ピクチャＢ３、ピクチャＰ４の順に、全てのブロックに対して動きベクトルを検出する。その結果、ピクチャＢ２およびピクチャＢ３の全てのブロックの参照ピクチャＰ１に対する前方動きベクトルが検出され、ピクチャＰ４の全てのブロックの参照ピクチャＰ１に対する動きベクトルが検出される。
【００７３】
ここで、ピクチャＰ４の対象ブロックの参照ピクチャＰ１に対する動きベクトルが検出されると、動き補償部１２６は、その検出された動きベクトルと参照ピクチャＰ１を用いて動き補償を行い、ピクチャＰ４の各ブロックの予測画像を生成する。そして、差分演算部１１３、符号化部１１５、復号化部１１８および加算演算部１１９は、その予測画像から符号化信号を経て再構築画像を生成し、その再構築画像をピクチャメモリ１２０に格納する。その結果、ピクチャＰ４の全てのブロックの動きベクトルが検出された後には、ピクチャＰ４が参照ピクチャとしてピクチャメモリ１２０に格納される。
【００７４】
このように本実施の形態における動きベクトル検出装置１００ａは、対象ピクチャに含まれる１つのブロックの動きベクトルを検出すると、表示順序で次の対象ピクチャに含まれる１つのブロックの動きベクトルを検出するように、表示順序に従った順序で動きベクトルを検出する。つまり、本実施の形態では、従来のように、Ｐピクチャに含まれる全てのブロックの動きベクトルを順次検出した後に、表示順序で前方のＢピクチャに含まれる全てのブロックの動きベクトルを順次検出するような、表示順序に逆らった順序で動きベクトルを検出しない。
【００７５】
次に、動きベクトル検出装置１００ａは、ピクチャＢ２およびピクチャＢ３の後方動きベクトルを検出する。このときにも上述と同様に、動きベクトル検出装置１００ａは、ピクチャＢ２およびピクチャＢ３の対象ブロックごとに後方向の予測動きベクトルを時間ダイレクトモードにより算出し、それらの予測動きベクトルにより示される位置を中心とする探索範囲から後方動きベクトルを検出する。
【００７６】
図５は、本実施の形態における予測演算部１２３によって算出される後方向の予測動きベクトルを説明するための説明図である。
【００７７】
予測演算部１２３は、ピクチャＢ２およびピクチャＢ３のそれぞれ同じ位置にある対象ブロックＢＬ０と対象ブロックＢＬ１の後方向の予測動きベクトルを算出するときには、まず、参照ピクチャＰ４において対象ブロックＢＬ０，ＢＬ１と同じ位置にあるブロックＢＬ２の動きベクトルＭＶ２を記憶部１２２から読み出す。そして、予測演算部１２３は、動きベクトルＭＶ２をスケーリングすることにより、対象ブロックＢＬ０，ＢＬ１に対して、予測動きベクトルＭＶ０Ｂ＊と予測動きベクトルＭＶ１Ｂ＊とを算出する。
【００７８】
具体的に、予測演算部１２３は、ピクチャＰ１，Ｂ２，Ｂ３，Ｐ４の表示順情報Ｔ１，Ｔ２，Ｔ３，Ｔ４を使い、下記の（式３ａ）および（式３ｂ）によって、ピクチャＢ２の対象ブロックＢＬ０の参照ピクチャＰ４に対する予測動きベクトルＭＶ０Ｂ＊と、ピクチャＢ３の対象ブロックＢＬ１の参照ピクチャＰ４に対する予測動きベクトルＭＶ１Ｂ＊とを算出する。なお、（式３ａ）および（式３ｂ）中、Ｍｖ０ｂ＊およびＭｖ１ｂ＊はそれぞれ予測動きベクトルＭＶ０Ｂ＊，ＭＶ１Ｂ＊の大きさを示し、Ｍｖ２は動きベクトルＭＶ２の大きさを示す。
【００７９】
Ｍｖ０ｂ＊＝（Ｔ２−Ｔ４）／（Ｔ４−Ｔ１）×Ｍｖ２…      （式３ａ）
Ｍｖ１ｂ＊＝（Ｔ３−Ｔ４）／（Ｔ４−Ｔ１）×Ｍｖ２…      （式３ｂ）
【００８０】
ここで、各ピクチャＰ１，Ｂ２，Ｂ３，Ｐ４の表示時間間隔が等間隔である場合には、参照ピクチャＰ４の探索可能最大範囲は、（２×Ｓ）画素×（２×Ｓ）ラインの範囲となる。
【００８１】
予測演算部１２３は、このように算出した予測動きベクトルＭＶ０Ｂ＊，ＭＶ１Ｂ＊を探索範囲制御部１２４に出力する。
【００８２】
探索範囲制御部１２４は、参照ピクチャＰ４において予測動きベクトルＭＶ０Ｂ＊により示される探索範囲を動きベクトル検出部１２１に設定する。即ち、探索範囲制御部１２４は、予測動きベクトルＭＶ０Ｂ＊により示される参照ピクチャＰ４の位置を中心とするＳ画素×Ｓラインの探索範囲を設定する。また、探索範囲制御部１２４は、参照ピクチャＰ４において予測動きベクトルＭＶ１Ｂ＊により示される探索範囲を動きベクトル検出部１２１に設定する。即ち、探索範囲制御部１２４は、予測動きベクトルＭＶ１Ｂ＊により示される参照ピクチャＰ４の位置を中心とするＳ画素×Ｓラインの探索範囲を設定する。
【００８３】
動きベクトル検出部１２１は、探索範囲制御部１２４によって設定された参照ピクチャＰ４の探索範囲から、対象ブロックＢＬ０の後方動きベクトルと対象ブロックＢＬ１の後方動きベクトルとを検出する。つまり、動きベクトル検出部１２１は、ピクチャＰ４のブロックＢＬ２の動きベクトルＭＶ２を検出した後、参照ピクチャＰ４に対する対象ブロックＢＬ０の後方動きベクトルを検出し、その次に、参照ピクチャＰ４に対する対象ブロックＢＬ１の後方動きベクトルを検出する。そして、動きベクトル検出部１２１は、対象ブロックＢＬ０および対象ブロックＢＬ１のそれぞれの後方動きベクトルを記憶部１２２に格納する。
【００８４】
動きベクトル検出装置１００ａは、このようなピクチャＢ２およびピクチャＢ３に含まれる全てのブロックの後方動きベクトルの検出を、左上端のブロックから順に、対象ブロックを左から右に上から下にずらしながら行なう。
【００８５】
図６は、本実施の形態の動きベクトル検出装置１００ａが動きベクトルを検出する動作を示すフローチャートである。
【００８６】
まず、動きベクトル検出装置１００ａのブロック選択部１１１は、ピクチャメモリ１１２から対象ブロックを抽出する（ステップＳ１００）。例えば、ブロック選択部１１１は、図３に示すように、対象ピクチャＢ２，Ｂ３，Ｐ４のそれぞれから、ブロックＢＬ０，ＢＬ１，ＢＬ２を対象ブロックとして抽出する。そして、ブロック選択部１１１は、それらの対象ブロックから最初に処理すべきブロック、例えばブロックＢＬ０を選択する（ステップＳ１０２）。
【００８７】
動きベクトル検出部１２１は、ブロック選択部１１１によって選択された対象ブロックＢＬ０の参照ピクチャＰ１に対する動きベクトル（前方動きベクトル）ＭＶ０Ｆを検出する（ステップＳ１０４）。そして、動きベクトル検出部１２１は、その検出した動きベクトルＭＶ０Ｆを記憶部１２２に格納する（ステップＳ１０６）。
【００８８】
予測演算部１２３は、時間ダイレクトモードにより、つまり、動きベクトル検出部１２１によって検出された動きベクトルＭＶ０Ｆをスケーリングすることにより、対象ブロックＢＬ１の参照ピクチャＰ１に対する前方向の予測動きベクトルＭＶ１Ｆ＊を演算（算出）する（ステップＳ１０８）。同様に、予測演算部１２３は、動きベクトル検出部１２１によって検出された動きベクトルＭＶ０Ｆをスケーリングすることにより、対象ブロックＢＬ２の参照ピクチャＰ１に対する予測動きベクトルＭＶ２＊を演算（算出）する（ステップＳ１１０）。
【００８９】
探索範囲制御部１２４は、予測演算部１２３によって算出された対象ブロックＢＬ１の予測動きベクトルＭＶ１Ｆ＊により示される参照ピクチャＰ１の探索範囲を特定して動きベクトル検出部１２１に設定する（ステップＳ１１２）。同様に、探索範囲制御部１２４は、予測演算部１２３によって算出された対象ブロックＢＬ２の予測動きベクトルＭＶ２＊により示される参照ピクチャＰ１の探索範囲を特定して動きベクトル検出部１２１に設定する（ステップＳ１１４）。
【００９０】
動きベクトル検出部１２１は、対象ブロックＢＬ１に対して探索範囲制御部１２４により設定された探索範囲から、その対象ブロックＢＬ１に近似する画像を有するブロックを探索することにより、対象ブロックＢＬ１の動きベクトル（前方動きベクトル）ＭＶ１Ｆを検出する（ステップＳ１１６）。同様に、動きベクトル検出部１２１は、対象ブロックＢＬ２に対して探索範囲制御部１２４により設定された探索範囲から、その対象ブロックＢＬ２に近似する画像を有するブロックを探索することにより、対象ブロックＢＬ２の動きベクトルＭＶ２を検出する（ステップＳ１１８）。そして、動きベクトル検出部１２１は、検出した動きベクトルＭＶ１Ｆと動きベクトルＭＶ２を記憶部１２２に格納する（ステップＳ１２０）。
【００９１】
ステップＳ１００〜Ｓ１２０までの処理により、ブロック選択部１１１により抽出された全ての対象ブロックＢＬ０，ＢＬ１，ＢＬ２の前方動きベクトルが検出される。
【００９２】
次に、ブロック選択部１１１は、改めて対象ブロックを抽出する。例えば、ブロック選択部１１１は、図５に示すように、ピクチャメモリ１１２にある対象ピクチャＢ２，Ｂ３のそれぞれから、ブロックＢＬ０，ＢＬ１を対象ブロックとして抽出する。そして、ブロック選択部１１１は、参照ピクチャＰ４において対象ブロックＢＬ０，ＢＬ１と同じ位置にあるブロックＢＬ２を選択する。
【００９３】
予測演算部１２３は、ブロック選択部１１１によって選択された参照ピクチャＰ４のブロックＢＬ２の動きベクトルＭＶ２を記憶部１２２から読み出す（ステップＳ１２４）。そして、予測演算部１２３は、時間ダイレクトモードにより、つまり、記憶部１２２から読み出した動きベクトルＭＶ２をスケーリングすることにより、対象ブロックＢＬ０の参照ピクチャＰ４に対する後方向の予測動きベクトルＭＶ０Ｂ＊を演算（算出）する（ステップＳ１２６）。同様に、予測演算部１２３は、記憶部１２２から読み出した動きベクトルＭＶ２をスケーリングすることにより、対象ブロックＢＬ１の参照ピクチャＰ４に対する後方の予測動きベクトルＭＶ１Ｂ＊を演算（算出）する（ステップＳ１２８）。
【００９４】
探索範囲制御部１２４は、予測演算部１２３によって算出された対象ブロックＢＬ０の予測動きベクトルＭＶ０Ｂ＊により示される参照ピクチャＰ４の探索範囲を特定して動きベクトル検出部１２１に設定する（ステップＳ１３０）。同様に、探索範囲制御部１２４は、予測演算部１２３によって算出された対象ブロックＢＬ１の予測動きベクトルＭＶ１Ｂ＊により示される参照ピクチャＰ４の探索範囲を特定して動きベクトル検出部１２１に設定する（ステップＳ１３２）。
【００９５】
動きベクトル検出部１２１は、対象ブロックＢＬ０に対して探索範囲制御部１２４により設定された探索範囲から、その対象ブロックＢＬ０に近似する画像を有するブロックを探索することにより、対象ブロックＢＬ０の動きベクトル（後方動きベクトル）ＭＶ０Ｂを検出する（ステップＳ１３４）。同様に、動きベクトル検出部１２１は、対象ブロックＢＬ１に対して探索範囲制御部１２４により設定された探索範囲から、その対象ブロックＢＬ１に近似する画像を有するブロックを探索することにより、対象ブロックＢＬ１の動きベクトル（後方動きベクトル）ＭＶ１Ｂを検出する（ステップＳ１３６）。そして、動きベクトル検出部１２１は、検出した動きベクトルＭＶ０Ｂと動きベクトルＭＶ１Ｂを記憶部１２２に格納する（ステップＳ１３８）。
【００９６】
ステップＳ１２２〜Ｓ１３８までの処理により、ブロック選択部１１１により抽出された全ての対象ブロックＢＬ０，ＢＬ１の後方動きベクトルが検出される。
【００９７】
このように本実施の形態における動きベクトル検出装置１００ａでは、対象ピクチャの対象ブロックの動きベクトルを検出するために、他の対象ピクチャの対象ブロックに対して検出された動きベクトルをスケーリングして予測動きベクトルを算出し、その予測動きベクトルの示す参照ピクチャにおけるＳ画素×Ｓラインの範囲を探索範囲として特定する。したがって、対象ピクチャと参照ピクチャとの表示時刻の時間差に関わらず、常に一定の大きさの探索範囲が特定される。一方、従来では、その対象ピクチャが参照ピクチャから表示時間的に離れていれば、その時間差に応じて広い範囲が探索範囲とされている。したがって、本実施の形態では、対象ピクチャが参照ピクチャから表示時間的に離れていても、探索範囲を小さくすることができるとともに、動きベクトルＭＶ０Ｆのスケーリングにより適切な探索範囲を特定することができる。
【００９８】
また、本実施の形態では、テレスコピックサーチのように、隣接するピクチャ間の動きベクトルを求めていくことがないため、動きベクトルの検出精度の低下を防ぐことができる。さらに、本実施の形態では、テレスコピックサーチのように、直接必要のない動きベクトルまで検出する必要がない。その結果、全体的な探索範囲を小さくすることができる。さらに、本実施の形態では、対象ブロックをずらしながら各対象ブロックの動きベクトルを検出するときにも、テレスコピックサーチと比べて、参照ピクチャを格納しているピクチャメモリ１２０からの転送データ量を少なくすることができる。即ち、本実施の形態では、表示順で参照ピクチャと対象ピクチャとの間に他のピクチャがあっても、その他のピクチャにおける探索範囲のデータをピクチャメモリ１２０から読み出す必要がなく、さらに、対象ブロックをずらしながら各対象ブロックの動きベクトルを検出するときには、前回に読み出した探索範囲を有効に利用して、新たにピクチャメモリ１２０から読み出すデータ量を減らすことができる。
【００９９】
したがって、本実施の形態における動きベクトル検出装置１００ａでは、探索範囲を適切な範囲とすることができるため、動きベクトルの検出のための演算量を低減することができるとともに、ピクチャメモリ１２０からの転送データ量を少なくすることができるため、回路規模の縮小化を図ることができる。
【０１００】
モード選択部１２５は、上述のように対象ブロックの動きベクトルが検出されると、その検出された動きベクトルと、予測演算部１２３で算出された予測動きベクトルとを用いて、時間ダイレクトモードと非時間ダイレクトモードのうち何れかのモードを選択する。具体的に、モード選択部１２５は、このような選択を行なうときには、予測残差画像と、動きベクトルおよび予測動きベクトルと、対象ブロックの位置情報と、対象ピクチャの表示順序とを用いて、時間ダイレクトモードでの評価値と、非時間ダイレクトモードでの評価値とを算出する。そして、モード選択部１２５は、その評価値の比較結果に基づいてモードを選択する。
【０１０１】
図７は、モード選択部１２５が非時間ダイレクトモードの評価値を算出する動作を示すフローチャートである。
【０１０２】
まず、モード選択部１２５は対象ブロックを選択する（ステップＳ２００）。例えば、モード選択部１２５は、図３および図５に示すピクチャＢ３のブロックＢＬ１を選択する。モード選択部１２５は、ブロックＢＬ１の前方動きベクトルＭＶ１Ｆと後方動きベクトルＭＶ１Ｂとを記憶部１２２から読み出す（ステップＳ２０２，Ｓ２０４）。
【０１０３】
そして、モード選択部１２５は、動き補償部１２６に対して、その前方動きベクトルＭＶ１Ｆにより示される参照ピクチャＰ１のブロックを参照データとして抽出させるとともに（ステップＳ２０６）、後方動きベクトルＭＶ１Ｂにより示される参照ピクチャＰ４のブロックを参照データとして抽出させる（ステップＳ２０８）。さらに、モード選択部１２５は、動き補償部１２６に対して、参照ピクチャＰ１の参照データと参照ピクチャＰ４の参照データとの平均を算出させて平均化参照データを生成させる（ステップＳ２１０）。
【０１０４】
また、モード選択部１２５は、ステップＳ２０２で読み出した前方動きベクトルＭＶ１Ｆの符号量を符号列生成部１１７に算出させるとともに（ステップＳ２１２）、ステップＳ２０４で読み出した後方動きベクトルＭＶ１Ｂの符号量を符号列生成部１１７に算出させる（ステップＳ２１４）。
【０１０５】
また、モード選択部１２５は、ステップＳ２００で選択したブロックＢＬ１を、ピクチャメモリ１１２からブロック選択部１１１を介して、入力データとして抽出する（ステップＳ２１６）。そして、モード選択部１２５は、ステップＳ２１０で生成された平均化参照データと、ステップＳ２１６で抽出された入力データとの絶対値差分和を算出する（ステップＳ２１８）。
【０１０６】
モード選択部１２５は、ステップＳ２１８で算出された絶対値差分和と、ステップＳ２１２，Ｓ２１４で算出された符号量とに基づいて、非時間ダイレクトモードの評価値を算出する（ステップＳ２２０）。
【０１０７】
図８は、モード選択部１２５が時間ダイレクトモードの評価値を算出する動作を示すフローチャートである。
【０１０８】
まず、モード選択部１２５は対象ブロックを選択する（ステップＳ３００）。例えば、モード選択部１２５は、図３および図５に示すピクチャＢ３のブロックＢＬ１を選択する。そして、モード選択部１２５は、時間ダイレクトモードが選択されたことを通知するためのダイレクトモード選択情報を生成する（ステップＳ３０２）。
【０１０９】
次に、モード選択部１２５は、例えば動きベクトルＭＶ２のような時間ダイレクトモードに必要な動きベクトルを記憶部１２２から読み出す（ステップＳ３０４）。そして、モード選択部１２５は、予測演算部１２３に対して予測動きベクトルを算出させる（ステップＳ３０６，Ｓ３０８）。即ち、予測演算部１２３は、ステップＳ３０４で読み出された動きベクトルをスケーリングすることにより、例えば、ステップＳ３００で選択されたブロックＢＬ１の前方向の予測動きベクトルＭＶ１Ｆ＊と後方向の予測動きベクトルＭＶ１Ｂ＊とを算出する。
【０１１０】
そして、モード選択部１２５は、動き補償部１２６に対して、その前方向の予測動きベクトルＭＶ１Ｆ＊により示される参照ピクチャＰ１のブロックを参照データとして抽出させるとともに（ステップＳ３１０）、その後方向の予測動きベクトルＭＶ１Ｂ＊により示される参照ピクチャＰ４のブロックを参照データとして抽出させる（ステップＳ３１２）。さらに、モード選択部１２５は、動き補償部１２６に対して、参照ピクチャＰ１の参照データと参照ピクチャＰ４の参照データとの平均を算出させて平均化参照データを生成させる（ステップＳ３１４）。
【０１１１】
また、モード選択部１２５は、ステップＳ３００で選択したブロックＢＬ１を、ピクチャメモリ１１２からブロック選択部１１１を介して入力データとして抽出する（ステップＳ３１６）。そして、モード選択部１２５は、ステップＳ３１４で生成された平均化参照データと、ステップＳ３１６で抽出された入力データとの絶対値差分和を算出する（Ｓ３１８）。
【０１１２】
モード選択部１２５は、ステップＳ３１８で算出された絶対値差分和と、ステップＳ３０２で生成されたダイレクトモード選択情報とに基づいて、時間ダイレクトモードの評価値を算出する（ステップＳ３２０）。
【０１１３】
このように、モード選択部１２５は、ブロックＢＬ１に対する非時間ダイレクトモードの評価値と時間ダイレクトモードの評価値とを算出すると、それらの評価値を比較することにより、全体的な符号量が小さくなるような評価値の高いモードを選択する。
【０１１４】
そして、モード選択部１２５は、非時間ダイレクトモードを選択すると、動きベクトル検出部１２１によって検出されて記憶部１２２に格納されている対象ブロックの動きベクトルを符号列生成部１１７に出力する。その結果、符号列生成部１１７は、その動きベクトルを可変長符号化して符号列中に含める。一方、モード選択部１２５は、時間ダイレクトモードを選択すると、ダイレクトモード選択情報を符号列生成部１１７に出力する。その結果、符号列生成部１１７は、符号列中にダイレクトモード選択情報を含める。
【０１１５】
このように本実施の形態では、評価値に基づいて時間ダイレクトモードと非時間ダイレクトモードとを切り換えるため、符号列の符号量を常に少なくすることができる。また、本実施の形態では、上述のようにテレスコピックサーチの場合と比べて動きベクトルの検出精度が高いため、時間ダイレクトモードが選択される可能性が高くなり、符号量をさらに少なくすることができる。
【０１１６】
（変形例１）
ここで、本実施の形態における予測動きベクトルの算出方法についての第１の変形例を説明する。
【０１１７】
上記実施の形態では、複数の対象ピクチャのうち、表示順序が最も早いピクチャに含まれる対象ブロックの動きベクトルをスケーリングした。つまり、図３に示すように、動きベクトル検出装置１００ａは、表示順序が最も早いピクチャＢ２に含まれる対象ブロックＢＬ０の動きベクトルＭＶ０Ｆを検出し、その動きベクトルＭＶ０Ｆをスケーリングする。その結果、動きベクトル検出装置１００ａは、ピクチャＢ３に含まれる対象ブロックＢＬ１の前方向の予測動きベクトルＭＶ１Ｆ＊と、ピクチャＰ４に含まれる対象ブロックＢＬ２の前方向の予測動きベクトルＭＶ２＊とを算出する。
【０１１８】
本変形例では、複数の対象ピクチャのうち、表示順序が中間にあるピクチャの対象ブロックの動きベクトルをスケーリングすることにより、そのピクチャの前後にあるピクチャに含まれる各対象ブロックの予測動きベクトルを算出する。
【０１１９】
図９は、変形例１における予測動きベクトルの算出方法を示す図である。
まず、動きベクトル検出部１２１は、複数の対象ピクチャのうち、表示順序が中間にあるピクチャＢ３に含まれる対象ブロックＢＬ１の動きベクトルＭＶ１Ｆを検出する。そして、動きベクトル検出部１２１はその動きベクトルＭＶ１Ｆを記憶部１２２に格納する。
【０１２０】
このとき、例えば、ピクチャＢ２のブロックの参照ピクチャＰ１に対する動きベクトルの探索範囲はＳ画素×Ｓラインであって、参照ピクチャＰ１とピクチャＢ３との間の表示時間間隔は、参照ピクチャＰ１とピクチャＢ２との間の表示時間間隔の２倍である。このような場合、対象ブロックＢＬ１の動きベクトルＭＶ１Ｆを検出するための参照ピクチャＰ１上における探索範囲は、（２×Ｓ）画素×（２×Ｓ）ラインとなる。
【０１２１】
予測演算部１２３は、動きベクトルＭＶ１Ｆを記憶部１２２から読み出して、動きベクトルＭＶ１Ｆをスケーリングすることにより、ピクチャＢ２およびピクチャＰ４において対象ブロックＢＬ１と同じ位置にある対象ブロックＢＬ０，ＢＬ２に対して、予測動きベクトルＭＶ０Ｆ＊と予測動きベクトルＭＶ２＊とを算出する。
【０１２２】
具体的に、予測演算部１２３は、ピクチャＰ１，Ｂ２，Ｂ３，Ｐ４の表示順情報Ｔ１，Ｔ２，Ｔ３，Ｔ４を使い、下記の（式４ａ）および（式４ｂ）によって、ピクチャＢ２の対象ブロックＢＬ０の参照ピクチャＰ１に対する予測動きベクトルＭＶ０Ｆ＊と、ピクチャＰ４の対象ブロックＢＬ２の参照ピクチャＰ１に対する予測動きベクトルＭＶ２＊とを算出する。なお、（式４ａ）および（式４ｂ）中、Ｍｖ０ｆ＊およびＭｖ２＊はそれぞれ予測動きベクトルＭＶ０Ｆ＊，ＭＶ２＊の大きさを示し、Ｍｖ１ｆは動きベクトルＭＶ１Ｆの大きさを示す。
【０１２３】
Ｍｖ０ｆ＊＝（Ｔ２−Ｔ１）／（Ｔ３−Ｔ１）×Ｍｖ１ｆ      …（式４ａ）
Ｍｖ２＊＝（Ｔ４−Ｔ１）／（Ｔ３−Ｔ１）×Ｍｖ１ｆ        …（式４ｂ）
【０１２４】
探索範囲制御部１２４は、予測動きベクトルＭＶ０Ｆ＊により示される参照ピクチャＰ１の位置を中心とするＳ画素×Ｓラインの探索範囲を特定して動きベクトル検出部１２１に設定するとともに、予測動きベクトルＭＶ２＊により示される参照ピクチャＰ１の位置を中心とするＳ画素×Ｓラインの探索範囲を特定して動きベクトル検出部１２１に設定する。
【０１２５】
動きベクトル検出部１２１は、探索範囲制御部１２４によって設定された参照ピクチャＰ１の探索範囲から、対象ブロックＢＬ０の前方動きベクトルと対象ブロックＢＬ２の動きベクトルとを検出する。つまり、動きベクトル検出部１２１は、参照ピクチャＰ１に対する対象ブロックＢＬ１の前方動きベクトルを検出した後、参照ピクチャＰ１に対する対象ブロックＢＬ０の前方動きベクトルを検出し、その次に、参照ピクチャＰ１に対する対象ブロックＢＬ２の動きベクトルを検出する。そして、動きベクトル検出部１２１は、対象ブロックＢＬ０および対象ブロックＢＬ２のそれぞれの動きベクトルを記憶部１２２に格納する。
【０１２６】
このように本変形例では、表示順序が中間にあるピクチャの対象ブロックの動きベクトルをスケーリングすることによって、そのピクチャの前後にあるピクチャに含まれる各対象ブロックの予測動きベクトルを高い精度で算出することができる。
【０１２７】
（変形例２）
ここで、本実施の形態における予測動きベクトルの算出方法についての第２の変形例を説明する。
【０１２８】
上記実施の形態では、複数の対象ピクチャのうち、表示順序が最も早いピクチャに含まれる対象ブロックの動きベクトルをスケーリングした。
【０１２９】
本変形例では、複数の対象ピクチャのうち、表示順序が最も遅いピクチャの対象ブロックの動きベクトルをスケーリングすることにより、そのピクチャの前方にある対象ピクチャに含まれる各対象ブロックの予測動きベクトルを算出する。
【０１３０】
図１０は、変形例２における予測動きベクトルの算出方法を示す図である。
まず、動きベクトル検出部１２１は、複数の対象ピクチャのうち、表示順序が最も遅いピクチャＰ４に含まれる対象ブロックＢＬ２の動きベクトルＭＶ２を検出する。そして、動きベクトル検出部１２１はその動きベクトルＭＶ２を記憶部１２２に格納する。
【０１３１】
このとき、例えば、ピクチャＢ２のブロックの参照ピクチャＰ１に対する動きベクトルの探索範囲はＳ画素×Ｓラインであって、参照ピクチャＰ１とピクチャＰ４との間の表示時間間隔は、参照ピクチャＰ１とピクチャＢ２との間の表示時間間隔の３倍である。このような場合、対象ブロックＢＬ２の動きベクトルＭＶ２を検出するための参照ピクチャＰ１上における探索範囲は、（３×Ｓ）画素×（３×Ｓ）ラインとなる。
【０１３２】
予測演算部１２３は、動きベクトルＭＶ２を記憶部１２２から読み出して、動きベクトルＭＶ２をスケーリングすることにより、ピクチャＢ２およびピクチャＢ３において対象ブロックＢＬ２と同じ位置にある対象ブロックＢＬ０，ＢＬ１に対して、予測動きベクトルＭＶ０Ｆ＊と予測動きベクトルＭＶ１Ｆ＊とを算出する。
【０１３３】
具体的に、予測演算部１２３は、ピクチャＰ１，Ｂ２，Ｂ３，Ｐ４の表示順情報Ｔ１，Ｔ２，Ｔ３，Ｔ４を使い、下記の（式５ａ）および（式５ｂ）によって、ピクチャＢ２の対象ブロックＢＬ０の参照ピクチャＰ１に対する予測動きベクトルＭＶ０Ｆ＊と、ピクチャＢ３の対象ブロックＢＬ１の参照ピクチャＰ１に対する予測動きベクトルＭＶ１Ｆ＊とを算出する。なお、（式５ａ）および（式５ｂ）中、Ｍｖ０ｆ＊およびＭｖ１ｆ＊はそれぞれ予測動きベクトルＭＶ０Ｆ＊，ＭＶ１Ｆ＊の大きさを示し、Ｍｖ２は動きベクトルＭＶ２の大きさを示す。
【０１３４】
Ｍｖ０ｆ＊＝（Ｔ２−Ｔ１）／（Ｔ４−Ｔ１）×Ｍｖ２        …（式５ａ）
Ｍｖ１ｆ＊＝（Ｔ３−Ｔ１）／（Ｔ４−Ｔ１）×Ｍｖ２        …（式５ｂ）
【０１３５】
探索範囲制御部１２４は、予測動きベクトルＭＶ０Ｆ＊により示される参照ピクチャＰ１の位置を中心とするＳ画素×Ｓラインの探索範囲を特定して動きベクトル検出部１２１に設定するとともに、予測動きベクトルＭＶ１Ｆ＊により示される参照ピクチャＰ１の位置を中心とするＳ画素×Ｓラインの探索範囲を特定して動きベクトル検出部１２１に設定する。
【０１３６】
動きベクトル検出部１２１は、探索範囲制御部１２４によって設定された参照ピクチャＰ１の探索範囲から、対象ブロックＢＬ０の前方動きベクトルと対象ブロックＢＬ１の前方動きベクトルとを検出する。つまり、動きベクトル検出部１２１は、参照ピクチャＰ１に対する対象ブロックＢＬ２の動きベクトルＭＶ２を検出した後、参照ピクチャＰ１に対する対象ブロックＢＬ０の前方動きベクトルを検出し、その次に、参照ピクチャＰ１に対する対象ブロックＢＬ１の前方動きベクトルを検出する。そして、動きベクトル検出部１２１は、対象ブロックＢＬ０および対象ブロックＢＬ１のそれぞれの前方動きベクトルを記憶部１２２に格納する。
【０１３７】
（変形例３）
ここで、本実施の形態における予測動きベクトルの算出方法についての第３の変形例を説明する。
【０１３８】
上記実施の形態では、後方向の予測動きベクトルを算出するときには、Ｐピクチャの動きベクトルをスケーリングした。つまり、図５に示すように、動きベクトル検出装置１００ａは、Ｐピクチャである参照ピクチャＰ４に含まれるブロックＢＬ２の動きベクトルＭＶ２を検出し、その動きベクトルＭＶ２をスケーリングする。その結果、動きベクトル検出装置１００ａは、ピクチャＢ２に含まれる対象ブロックＢＬ０の後方向の予測動きベクトルＭＶ０Ｂ＊と、ピクチャＢ３に含まれる対象ブロックＢＬ１の後方向の予測動きベクトルＭＶ１Ｂ＊とを算出する。
【０１３９】
本変形例では、後方向の予測動きベクトルを算出するときには、対象ピクチャのうち、表示順序で参照ピクチャに最も近いＢピクチャの後方動きベクトルをスケーリングすることにより、他の対象ピクチャであるＢピクチャの後方向の予測動きベクトルを算出する。
【０１４０】
図１１は、変形例３における予測動きベクトルの算出方法を示す図である。
まず、動きベクトル検出部１２１は、複数の対象ピクチャのうち、表示順序で参照ピクチャＰ４に最も近いピクチャＢ３に含まれる対象ブロックＢＬ１の動きベクトル（後方動きベクトル）ＭＶ１Ｂを検出する。そして、動きベクトル検出部１２１は、その動きベクトルＭＶ１Ｂを記憶部１２２に格納する。
【０１４１】
予測演算部１２３は、動きベクトルＭＶ１Ｂを記憶部１２２から読み出して、、動きベクトルＭＶ１Ｂをスケーリングすることにより、ピクチャＢ２において対象ブロックＢＬ１と同じ位置にある対象ブロックＢＬ０に対して予測動きベクトルＭＶ０Ｂ＊を算出する。
【０１４２】
具体的に、予測演算部１２３は、ピクチャＰ１，Ｂ２，Ｂ３，Ｐ４の表示順情報Ｔ１，Ｔ２，Ｔ３，Ｔ４を使い、下記の（式６）によって、ピクチャＢ２の参照ピクチャＰ４に対する予測動きベクトルＭＶ０Ｂ＊を算出する。なお、（式６）中、Ｍｖ０ｂ＊は予測動きベクトルＭＶ０Ｂ＊の大きさを示し、Ｍｖ１ｂは動きベクトルＭＶ１Ｂの大きさを示す。
【０１４３】
Ｍｖ０ｂ＊＝（Ｔ４−Ｔ２）／（Ｔ４−Ｔ３）×Ｍｖ１ｂ      …（式６）
探索範囲制御部１２４は、予測動きベクトルＭＶ０Ｂ＊により示される参照ピクチャＰ４の位置を中心とするＳ画素×Ｓラインの探索範囲を特定して動きベクトル検出部１２１に設定する。
【０１４４】
動きベクトル検出部１２１は、探索範囲制御部１２４によって設定された参照ピクチャＰ４の探索範囲から、対象ブロックＢＬ０の後方動きベクトルを検出する。つまり、動きベクトル検出部１２１は、参照ピクチャＰ４に対する対象ブロックＢＬ１の後方動きベクトルを検出した後、参照ピクチャＰ４に対する対象ブロックＢＬ０の後方動きベクトルを検出する。そして、動きベクトル検出部１２１は、対象ブロックＢＬ０の後方動きベクトルＭＶ０Ｂを記憶部１２２に格納する。
【０１４５】
このように本変形例では、表示順序で参照ピクチャに最も近いＢピクチャの後方動きベクトルをスケールリングすることによって、そのＢピクチャの隣のＢピクチャに含まれる対象ブロックの予測動きベクトルを高い精度で算出することができる。
【０１４６】
（変形例４）
ここで、本実施の形態における予測動きベクトルの算出方法についての第４の変形例を説明する。
【０１４７】
上記実施の形態では、後方向の予測動きベクトルを算出するときには、Ｐピクチャの動きベクトルをスケーリングした。
【０１４８】
本変形例では、後方向の予測動きベクトルを算出するときには、対象ピクチャのうち、表示順序で参照ピクチャから最も遠いＢピクチャの後方動きベクトルをスケーリングすることにより、他の対象ピクチャであるＢピクチャの後方向の予測動きベクトルを算出する。
【０１４９】
図１２は、変形例４における予測動きベクトルの算出方法を示す図である。
まず、動きベクトル検出部１２１は、複数の対象ピクチャのうち、表示順序で参照ピクチャＰ４から最も遠いピクチャＢ２に含まれる対象ブロックＢＬ０の動きベクトル（後方動きベクトル）ＭＶ０Ｂを検出する。そして、動きベクトル検出部１２１は、その動きベクトルＭＶ０Ｂを記憶部１２２に格納する。
【０１５０】
このとき、例えば、ピクチャＢ３のブロックの参照ピクチャＰ４に対する動きベクトルの探索範囲はＳ画素×Ｓラインであって、参照ピクチャＰ４とピクチャＢ２との間の表示時間間隔は、参照ピクチャＰ４とピクチャＢ３との間の表示時間間隔の２倍である。このような場合、対象ブロックＢＬ０の動きベクトルＭＶ０Ｂを検出するための参照ピクチャＰ４上における探索範囲は、（２×Ｓ）画素×（２×Ｓ）ラインとなる。
【０１５１】
予測演算部１２３は、動きベクトルＭＶ０Ｂを記憶部１２２から読み出して、動きベクトルＭＶ０Ｂをスケーリングすることにより、ピクチャＢ３において対象ブロックＢＬ０と同じ位置にある対象ブロックＢＬ１に対して、予測動きベクトルＭＶ１Ｂ＊を算出する。
【０１５２】
具体的に、予測演算部１２３は、ピクチャＰ１，Ｂ２，Ｂ３，Ｐ４の表示順情報Ｔ１，Ｔ２，Ｔ３，Ｔ４を使い、下記の（式７）によって、ピクチャＢ３の対象ブロックＢＬ１の参照ピクチャＰ４に対する予測動きベクトルＭＶ１Ｂ＊を算出する。なお、（式７）中、Ｍｖ１ｂ＊は予測動きベクトルＭＶ１Ｂ＊の大きさを示し、Ｍｖ０ｂは動きベクトルＭＶ０Ｂの大きさを示す。
【０１５３】
Ｍｖ１ｂ＊＝（Ｔ４−Ｔ３）／（Ｔ４−Ｔ２）×Ｍｖ０ｂ      …（式７）
探索範囲制御部１２４は、予測動きベクトルＭＶ１Ｂ＊により示される参照ピクチャＰ４の位置を中心とするＳ画素×Ｓラインの探索範囲を特定して動きベクトル検出部１２１に設定する。
【０１５４】
動きベクトル検出部１２１は、探索範囲制御部１２４によって設定された参照ピクチャＰ４の探索範囲から、対象ブロックＢＬ１の後方動きベクトルを検出する。つまり、動きベクトル検出部１２１は、参照ピクチャＰ４に対する対象ブロックＢＬ０の後方動きベクトルを検出した後、参照ピクチャＰ４に対する対象ブロックＢＬ１の後方動きベクトルを検出する。そして、動きベクトル検出部１２１は、対象ブロックＢＬ１の後方動きベクトルを記憶部１２２に格納する。
【０１５５】
（変形例５）
ここで、本実施の形態における予測動きベクトルの算出方法についての第５の変形例を説明する。
【０１５６】
上記実施の形態では、複数の対象ピクチャのうち、１枚のピクチャの動きベクトルを検出して、その動きベクトルをスケーリングすることにより、他の対象ピクチャの予測動きベクトルを算出した。つまり、図３に示すように、動きベクトル検出装置１００ａは、複数の対象ピクチャのうち、表示順序が最も早いピクチャＢ２に含まれる対象ブロックＢＬ０の動きベクトルＭＶ０Ｆを検出し、その動きベクトルＭＶ０Ｆをスケーリングする。その結果、動きベクトル検出装置１００ａは、ピクチャＢ３に含まれる対象ブロックＢＬ１の前方向の予測動きベクトルＭＶ１Ｆ＊と、ピクチャＰ４に含まれる対象ブロックＢＬ２の前方向の予測動きベクトルＭＶ２＊とを算出する。
【０１５７】
本変形例では、複数の対象ピクチャの動きベクトルを検出し、それらのピクチャのうち、予測動きベクトルの算出対象となるピクチャに最も近いピクチャの動きベクトルをスケーリングする。これにより、予測動きベクトルが算出される。即ち、本変形例では、複数の第１のピクチャのうち、第２のピクチャとの間の表示時刻の時間差が最も短いピクチャの第１の動きベクトルに基づいて、参照ピクチャの探索範囲を特定する。
【０１５８】
図１３は、変形例５における予測動きベクトルの算出方法を示す図である。
まず、動きベクトル検出部１２１は、対象ピクチャのうち、表示順序で参照ピクチャＰ１に最も近いピクチャＢ２に含まれる対象ブロックＢＬ０の動きベクトル（前方動きベクトル）ＭＶ０Ｆを検出する。そして、動きベクトル検出部１２１は、その動きベクトルＭＶ０Ｆを記憶部１２２に格納する。さらに、動きベクトル検出部１２１は、対象ピクチャのうち、ピクチャＢ２の次に参照ピクチャＰ１に近いピクチャＢ３に含まれる対象ブロックＢＬ１の動きベクトル（前方動きベクトル）ＭＶ１Ｆを検出する。そして、動きベクトル検出部１２１は、その動きベクトルＭＶ１Ｆを記憶部１２２に格納する。
【０１５９】
このとき、例えば、ピクチャＢ２のブロックの参照ピクチャＰ１に対する動きベクトルの探索範囲はＳ画素×Ｓラインであって、参照ピクチャＰ１とピクチャＢ３との間の表示時間間隔は、参照ピクチャＰ１とピクチャＢ２との間の表示時間間隔の２倍である。このような場合、対象ブロックＢＬ１の動きベクトルＭＶ１Ｆを検出するための参照ピクチャＰ１上における探索範囲は、（２×Ｓ）画素×（２×Ｓ）ラインとなる。
【０１６０】
予測演算部１２３は、記憶部１２２に格納されている動きベクトルＭＶ０Ｆと動きベクトルＭＶ１Ｆのうち、ピクチャＰ４に最も近いピクチャＢ３の動きベクトルＭＶ１Ｆを読み出す。そして、予測演算部１２３は、動きベクトルＭＶ１Ｆをスケーリングすることにより、ピクチャＰ４において対象ブロックＢＬ０，ＢＬ１と同じ位置にある対象ブロックＢＬ２に対して、予測動きベクトルＭＶ２＊を算出する。
【０１６１】
探索範囲制御部１２４は、予測動きベクトルＭＶ２＊により示される参照ピクチャＰ１の位置を中心とするＳ画素×Ｓラインの探索範囲を特定して動きベクトル検出部１２１に設定する。
【０１６２】
動きベクトル検出部１２１は、探索範囲制御部１２４によって設定された参照ピクチャＰ１の探索範囲から、対象ブロックＢＬ２の動きベクトルを検出する。つまり、動きベクトル検出部１２１は、参照ピクチャＰ１に対する対象ブロックＢＬ０の前方動きベクトルを検出した後、参照ピクチャＰ１に対する対象ブロックＢＬ１の前方動きベクトルを検出し、その次に、参照ピクチャＰ１に対する対象ブロックＢＬ２の動きベクトルを検出する。そして、動きベクトル検出部１２１は、対象ブロックＢＬ２の動きベクトルを記憶部１２２に格納する。
【０１６３】
（変形例６）
ここで、本実施の形態における予測動きベクトルの算出方法についての第６の変形例を説明する。
【０１６４】
上記実施の形態では、複数の対象ピクチャのうち、１枚のピクチャの動きベクトルを検出して、その動きベクトルをスケーリングすることにより、他の対象ピクチャの予測動きベクトルを算出した。
【０１６５】
本変形例では、複数の対象ピクチャの動きベクトルを検出する。そして、それらの動きベクトルの向きが等しいときには、何れか一方の動きベクトルをスケーリングすることにより、他の対象ピクチャの予測動きベクトルを算出する。
【０１６６】
図１４は、変形例６における予測動きベクトルの算出方法を示す図である。
まず、動きベクトル検出部１２１は、複数の対象ピクチャのうち、表示順序で参照ピクチャＰ１に最も近いピクチャＢ２に含まれる対象ブロックＢＬ０の動きベクトル（前方動きベクトル）ＭＶ０Ｆを検出する。
【０１６７】
さらに、動きベクトル検出部１２１は、複数の対象ピクチャのうち、表示順序で参照ピクチャＰ１に最も遠いピクチャＰ４に含まれる対象ブロックＢＬ２の動きベクトルＭＶ２を検出する。そして、動きベクトル検出部１２１は、それらの動きベクトルＭＶ０Ｆ，ＭＶ２を記憶部１２２に格納する。
【０１６８】
このとき、例えば、ピクチャＢ２のブロックの参照ピクチャＰ１に対する動きベクトルの探索範囲はＳ画素×Ｓラインであって、参照ピクチャＰ１とピクチャＰ４との間の表示時間間隔は、参照ピクチャＰ１とピクチャＢ２との間の表示時間間隔の３倍である。このような場合、対象ブロックＢＬ２の動きベクトルＭＶ２を検出するための参照ピクチャＰ１上における探索範囲は、（３×Ｓ）画素×（３×Ｓ）ラインとなる。
【０１６９】
予測演算部１２３は、記憶部１２２に格納されている動きベクトルＭＶ０Ｆと動きベクトルＭＶ２を読み出して比較する。そして、予測演算部１２３は、これらの動きベクトルの向きが等しいときには、動きベクトルＭＶ０Ｆと動きベクトルＭＶ２の何れか一方をスケーリングすることにより、ピクチャＢ３において対象ブロックＢＬ０，ＢＬ２と同じ位置にある対象ブロックＢＬ１に対して、予測動きベクトルＭＶ１Ｆ＊を算出する。
【０１７０】
探索範囲制御部１２４は、予測動きベクトルＭＶ１Ｆ＊により示される参照ピクチャＰ１の位置を中心とするＳ画素×Ｓラインの探索範囲を特定して動きベクトル検出部１２１に設定する。
【０１７１】
動きベクトル検出部１２１は、探索範囲制御部１２４によって設定された参照ピクチャＰ１の探索範囲から、対象ブロックＢＬ１の動きベクトルを検出する。つまり、動きベクトル検出部１２１は、参照ピクチャＰ１に対する対象ブロックＢＬ０の前方動きベクトルを検出して、さらに、参照ピクチャＰ１に対する対象ブロックＢＬ２の動きベクトルを検出した後に、参照ピクチャＰ１に対する対象ブロックＢＬ１の前方動きベクトルを検出する。そして、動きベクトル検出部１２１は、対象ブロックＢＬ１の動きベクトルを記憶部１２２に格納する。
【０１７２】
このように本変形例では、複数のピクチャのそれぞれの動きベクトルの向きが等しい場合、それらのうち何れか一方の動きベクトルをスケーリングして予測動きベクトルを算出することによって、その予測動きベクトルの精度を高めることができる。
【０１７３】
なお、このように算出される予測動きベクトルの精度は高いため、その予測動きベクトルにより示される探索範囲から動きベクトルを検出することを省いてもよい。即ち、その予測動きベクトルを実際の動きベクトルと同様に扱ってもよい。
【０１７４】
（変形例７）
ここで、本実施の形態における予測動きベクトルの算出方法についての第７の変形例を説明する。
【０１７５】
上記実施の形態では、対象ブロックの参照ピクチャに対する予測動きベクトルを算出するときには、その対象ブロックとは異なる他のブロックの動きベクトルをスケーリングした。
【０１７６】
本変形例では、対象ブロックの参照ピクチャに対する予測動きベクトルを算出するときには、その対象ブロックの他の参照ピクチャに対する動きベクトルをスケーリングする。
【０１７７】
図１５は、変形例７における予測動きベクトルの算出方法を示す図である。
まず、動きベクトル検出部１２１は、ＢピクチャであるピクチャＢ５に含まれる対象ブロックＢＬ３の参照ピクチャＰ４に対する動きベクトルＭＶ３Ｆを検出する。
【０１７８】
予測演算部１２３は、その動きベクトル検出部１２１によって検出された動きベクトルＭＶ３Ｆをスケーリングすることにより、対象ブロックＢＬ３の参照ピクチャＰ１に対する予測動きベクトルＭＶ３Ｆ＊を算出する。
【０１７９】
探索範囲制御部１２４は、予測動きベクトルＭＶ３Ｆ＊により示される参照ピクチャＰ１の位置を中心とするＳ画素×Ｓラインの探索範囲を特定して動きベクトル検出部１２１に設定する。
【０１８０】
動きベクトル検出部１２１は、探索範囲制御部１２４によって設定された参照ピクチャＰ１の探索範囲から、対象ブロックＢＬ３の参照ピクチャＰ１に対する動きベクトルを検出する。そして、動きベクトル検出部１２１は、その対象ブロックＢＬ３の参照ピクチャＰ１に対する動きベクトルを記憶部１２２に格納する。
【０１８１】
このように本変形例は、複数のピクチャを参照することが可能なＨ．２６４で有効である。
【０１８２】
（変形例８）
ここで、本実施の形態における探索範囲についての第８の変形例を説明する。
【０１８３】
上記実施の形態では、予測動きベクトルの示す位置を中心とする参照ピクチャの探索範囲だけから探索を行って動きベクトルを検出した。つまり、図３に示すように、動きベクトル検出装置１００ａは、ピクチャＢ３に含まれる対象ブロックＢＬ１の前方動きベクトルを検出するときには、その対象ブロックＢＬ１の予測動きベクトルＭＶ１Ｆ＊の示す位置を中心とする参照ピクチャＰ１の探索範囲（Ｓ画素×Ｓライン）だけから、対象ブロックＢＬ１に近似する画像を有するブロックを探索する。
【０１８４】
本変形例では、予測動きベクトルの示す位置を中心とする参照ピクチャの探索範囲に、参照ピクチャにおいて対象ブロックと空間的同一位置にあるブロックも含める。
【０１８５】
図１６は、変形例８における探索範囲を示す図である。
本変形例に係る探索範囲制御部１２４は、予測演算部１２３によって算出された予測動きベクトルＭＶ１Ｆ＊により示される位置を中心とする参照ピクチャＰ１の探索範囲（Ｓ画素×Ｓライン）に、対象ブロックＢＬ１と同位置にある参照ピクチャＰ１のブロックＢＬを含める。また、探索範囲制御部１２４は、予測演算部１２３によって算出された予測動きベクトルＭＶ２＊により示される位置を中心とする参照ピクチャＰ１の探索範囲（Ｓ画素×Ｓライン）に、対象ブロックＢＬ２と同位置にある参照ピクチャＰ１のブロックＢＬを含める。探索範囲制御部１２４は、このようなブロックＢＬを含む探索範囲を特定して動きベクトル検出部１２１に設定する。
【０１８６】
動きベクトル検出部１２１は、参照ピクチャＰ１のブロックＢＬを含む各探索範囲からそれぞれ、対象ブロックＢＬ１の前方動きベクトルと対象ブロックＢＬ２の前方動きベクトルとを検出する。
【０１８７】
このように本変形例では、探索範囲を広げることにより、Ｓ画素×Ｓラインの範囲からでは検出できない適切な動きベクトルを検出することができる。
【０１８８】
（変形例９）
ここで、本実施の形態における予測動きベクトルの算出方法についての第９の変形例を説明する。
【０１８９】
上記実施の形態では、Ｂピクチャについて前方向の予測動きベクトルを算出した後に、後方向の予測動きベクトルを算出した。
【０１９０】
本変形例では、Ｂピクチャの前方向の予測動きベクトルと後方向の予測動きベクトルとを、同一の動きベクトルをスケーリングすることにより同時に算出する。また、本変形例では、予測動きベクトルを算出する前に、予め２枚のＰピクチャを符号化および復号化しておく。
【０１９１】
図１７は、変形例９において予測動きベクトルを算出する前の各ピクチャの状態を示す図である。
【０１９２】
本変形例では、動画像符号化装置１００は、まず、２枚のＰピクチャを符号化するとともに復号化し、それぞれのピクチャを参照ピクチャとしてピクチャメモリ１２０に格納しておく。
【０１９３】
図１８は、変形例９における予測動きベクトルの算出方法を示す図である。
上述のように本変形例では、動画像符号化装置１００は、まず、ピクチャＰ１とピクチャＰ４とを符号化するとともに復号化し、それぞれのピクチャを参照ピクチャとしてピクチャメモリ１２０に格納しておく。したがって、このような符号化および復号化が行われた後には、記憶部１２２に、参照ピクチャＰ４の各ブロックの動きベクトルが格納されている。
【０１９４】
予測演算部１２３は、対象ピクチャＢ２，Ｂ３，Ｐ７のそれぞれに含まれる同一位置の対象ブロックＢＬ０，ＢＬ１，ＢＬ５の予測動きベクトルを算出するために、それらの対象ブロックと同一位置にある参照ピクチャＰ４のブロックＢＬ２の動きベクトルＭＶ２を記憶部１２２から読み出す。
【０１９５】
そして、予測演算部１２３は、その動きベクトルＭＶ２をスケーリングすることにより、ピクチャＢ２に含まれる対象ブロックＢＬ０の、参照ピクチャＰ１に対する前方向の予測動きベクトルＭＶ０Ｆ＊と、参照ピクチャＰ４に対する後方向の予測動きベクトルＭＶ０Ｂ＊とを算出する。さらに、予測演算部１２３は、動きベクトルＭＶ２をスケーリングすることにより、ピクチャＢ３に含まれる対象ブロックＢＬ１の、参照ピクチャＰ１に対する前方向の予測動きベクトルＭＶ１Ｆ＊と、参照ピクチャＰ４に対する後方向の予測動きベクトルＭＶ１Ｂ＊とを算出する。さらに、予測演算部１２３は、動きベクトルＭＶ２をスケーリングすることにより、ピクチャＰ７に含まれる対象ブロックＢＬ５の参照ピクチャＰ４に対する予測動きベクトルＭＶ５＊を算出する。
【０１９６】
探索範囲制御部１２４は、予測演算部１２３によって算出された予測動きベクトルごとに、その予測動きベクトルにより示される位置を中心とする探索範囲（Ｓ画素×Ｓライン）を特定して動きベクトル検出部１２１に設定する。
【０１９７】
動きベクトル検出部１２１は、探索範囲制御部１２４によって設定された探索範囲ごとに、その探索範囲から動きベクトルを検出する。即ち、動きベクトル検出部１２１は、参照ピクチャＰ１の探索範囲から、ピクチャＢ２の対象ブロックＢＬ０の前方動きベクトルを検出し、参照ピクチャＰ４の探索範囲から、ピクチャＢ２の対象ブロックＢＬ０の後方動きベクトルを検出する。その後、動きベクトル検出部１２１は、参照ピクチャＰ１の探索範囲から、ピクチャＢ３の対象ブロックＢＬ１の前方動きベクトルを検出し、参照ピクチャＰ４の探索範囲から、ピクチャＢ３の対象ブロックＢＬ１の後方動きベクトルを検出する。さらにその後、動きベクトル検出部１２１は、参照ピクチャＰ４の探索範囲から、ピクチャＰ７の対象ブロックＢＬ５の動きベクトルを検出する。そして、動きベクトル検出部１２１は、このように検出した動きベクトルを記憶部１２２に順次格納する。
【０１９８】
動きベクトル検出装置１００ａは、対象ピクチャＢ２，Ｂ３，Ｐ７のそれぞれに含まれる同一位置の対象ブロックをずらしながら、このような動きベクトルの検出を各対象ブロックに対して行う。そして、動画像符号化装置１００は、このように検出された動きベクトルを用いてピクチャＢ２，Ｂ３，Ｐ７を符号化するとともに、ピクチャＰ７を復号化して参照ピクチャとしてピクチャメモリ１２０に格納する。したがって、このような符号化および復号化が行われた後には、記憶部１２２に、参照ピクチャＰ７の各ブロックの動きベクトルが格納されている。
【０１９９】
動きベクトル検出装置１００ａは、対象ピクチャＢ２，Ｂ３，Ｐ７を対象ピクチャＢ５，Ｂ６，Ｐ１０に換えて、上述のような動きベクトルの検出を、その対象ピクチャＢ５，Ｂ６，Ｐ１０に対しても繰り返し行なう。
【０２００】
（変形例１０）
ここで、本実施の形態における動きベクトルの検出方法についての第１０の変形例を説明する。
【０２０１】
本変形例では、動画像符号化装置１００は、動きベクトルの検出と、予測動きベクトルの算出および探索範囲の特定と、符号化および復号化処理とをパイプライン処理により行なう。
【０２０２】
図１９は、変形例１０におけるパイプライン処理を示す図である。
まず、動きベクトル検出部１２１は、ピクチャＢ２の（Ｎ−１）番目のブロックＢＬ０の動きベクトルＭＶ０Ｆを検出する（ステップＳ５００）。
【０２０３】
その後、予測演算部１２３は、その動きベクトルＭＶ０Ｆを用いて、ピクチャＢ３，Ｐ４のそれぞれの（Ｎ−１）番目のブロックＢＬ１，ＢＬ２の予測動きベクトルＭＶ１Ｆ＊，ＭＶ２＊を算出する。さらに、探索範囲制御部１２４は、その算出された予測動きベクトルＭＶ１Ｆ＊，ＭＶ２＊によって示される探索範囲を特定する（ステップＳ５０２）。動きベクトル検出部１２１は、このような予測動きベクトルの算出および探索範囲の特定が行なわれている間に、ピクチャＢ３の（Ｎ−２）番目のブロックＢＬ１に対して既に特定されている探索範囲から、そのブロックＢＬ１の動きベクトルＭＶ１Ｆを検出する（ステップＳ５０４）。
【０２０４】
その後、動きベクトル検出部１２１は、上述と同様に、ピクチャＰ４の（Ｎ−２）番目のブロックＢＬ２に対して既に特定されている探索範囲から、そのブロックＢＬ２の動きベクトルＭＶ２を検出する（ステップＳ５０６）。
【０２０５】
そして、動画像符号化装置１００は、上述のように検出された動きベクトルＭＶ２を用いて、ピクチャＰ４の（Ｎ−２）番目のブロックＢＬ２の予測残差画像を符号化するとともに、その符号化された予測残差画像を復号化して再構築画像を生成し、ピクチャメモリ１２０に格納する（ステップＳ５１０）。動きベクトル検出部１２１は、このような符号化および復号化処理が行なわれている間に、ピクチャＢ２のＮ番目のブロックＢＬ０の動きベクトルＭＶ０Ｆを検出する（ステップＳ５０８）。
【０２０６】
その後、上述と同様、予測演算部１２３は、その動きベクトルＭＶ０Ｆを用いて、ピクチャＢ３，Ｐ４のそれぞれのＮ番目のブロックＢＬ１，ＢＬ２の予測動きベクトルＭＶ１Ｆ＊，ＭＶ２＊を算出する。さらに、探索範囲制御部１２４は、その算出された予測動きベクトルＭＶ１Ｆ＊，ＭＶ２＊によって示される探索範囲を特定する（ステップＳ５１２）。動きベクトル検出部１２１は、このような予測動きベクトルの算出および探索範囲の特定が行なわれている間に、ピクチャＢ３の（Ｎ−１）番目のブロックＢＬ１に対して既に特定されている探索範囲から、そのブロックＢＬ１の動きベクトルＭＶ１Ｆを検出する（ステップＳ５１４）。
【０２０７】
その後、動きベクトル検出部１２１は、上述と同様に、ピクチャＰ４の（Ｎ−１）番目のブロックＢＬ２に対して既に特定されている探索範囲から、そのブロックＢＬ２の動きベクトルＭＶ２を検出する（ステップＳ５１６）。
【０２０８】
図２０は、本変形例において動きベクトルの検出対象となるブロックの順序を示す図である。
【０２０９】
なお、図２０中の各ピクチャのブロック内に示されるＮや（Ｎ−１）は、そのピクチャにおけるブロックの位置を示す。
【０２１０】
本変形例では、パイプライン処理を行なうことにより、ピクチャＢ２のＮ番目のブロックの前方動きベクトルが検出された後、ピクチャＢ３の（Ｎ−１）番目のブロックの前方動きベクトルが検出され、その後、ピクチャＰ４の（Ｎ−１）番目のブロックの前方動きベクトルが検出される。
【０２１１】
ここで、本変形例に係る動画像符号化装置１００は、変形例９における予測動きベクトルの算出方法を用いて動きベクトルを検出する場合であっても、その動きベクトルの検出と、符号化および復号化処理とをパイプライン処理により行なう。
【０２１２】
図２１は、本変形例の他のパイプライン処理を示す図である。
例えば、動きベクトル検出装置１００ａは、参照ピクチャＰ１と参照ピクチャＰ４とが既に符号化および復号化されている状態において、まず、参照ピクチャＰ４の（Ｎ−１）番目のブロックＢＬ２の動きベクトルＭＶ２をスケーリングすることにより、ピクチャＢ２の（Ｎ−１）番目のブロックＢＬ０の予測動きベクトルＭＶ０Ｆ＊，ＭＶ０Ｂ＊と、ピクチャＢ３の（Ｎ−１）番目のブロックＢＬ１の予測動きベクトルＭＶ１Ｆ＊，ＭＶ１Ｂ＊と、ピクチャＰ７の（Ｎ−１）番目のブロックＢＬ５の予測動きベクトルＭＶ５＊とを算出する。そして、動きベクトル検出装置１００ａは、算出した予測動きベクトルのそれぞれから探索範囲を特定する（ステップＳ６００）。
【０２１３】
次に、動きベクトル検出装置１００ａは、ピクチャＢ２の（Ｎ−１）番目のブロックＢＬ０の動きベクトルＭＶ０Ｆ，ＭＶ０Ｂを検出する（ステップＳ６０２）。
【０２１４】
その後、動画像符号化装置１００は、その検出された動きベクトルＭＶ０Ｆ，ＭＶ０Ｂを用いて、ピクチャＢ２の（Ｎ−１）番目のブロックＢＬ０の符号化を行なう（ステップＳ６０４）。このような符号化が行なわれている間に、動きベクトル検出装置１００ａは、ピクチャＢ３の（Ｎ−１）番目のブロックＢＬ１の動きベクトルＭＶ１Ｆ，ＭＶ１Ｂを検出する（ステップＳ６０６）。
【０２１５】
その後、動画像符号化装置１００は、その検出された動きベクトルＭＶ１Ｆ，ＭＶ１Ｂを用いて、ピクチャＢ３の（Ｎ−１）番目のブロックＢＬ１の符号化を行なう（ステップＳ６１０）。このような符号化が行なわれている間に、動きベクトル検出装置１００ａは、ピクチャＰ７の（Ｎ−１）番目のブロックＢＬ５の動きベクトルＭＶ５を検出する（ステップＳ６１２）。さらに、このとき、動きベクトル検出装置１００ａは、参照ピクチャＰ４のＮ番目のブロックＢＬ２の動きベクトルＭＶ２をスケーリングすることにより、ピクチャＢ２のＮ番目のブロックＢＬ０の予測動きベクトルＭＶ０Ｆ＊，ＭＶ０Ｂ＊と、ピクチャＢ３のＮ番目のブロックＢＬ１の予測動きベクトルＭＶ１Ｆ＊，ＭＶ１Ｂ＊と、ピクチャＰ７のＮ番目のブロックＢＬ５の予測動きベクトルＭＶ５＊とを算出する。そして、動きベクトル検出装置１００ａは、算出した予測動きベクトルのそれぞれから探索範囲を特定する（ステップＳ６０８）。
【０２１６】
次に、動きベクトル検出装置１００ａは、ピクチャＢ２のＮ番目のブロックＢＬ０の動きベクトルＭＶ０Ｆ，ＭＶ０Ｂを検出する（ステップＳ６１４）。さらに、このとき、動画像符号化装置１００は、ステップＳ６１２で検出された動きベクトルＭＶ５を用いて、ピクチャＰ７の（Ｎ−１）番目のブロックＢＬ５の予測残差画像を符号化するとともに、その符号化された予測残差画像を復号化して再構築画像を生成し、ピクチャメモリ１２０に格納する（ステップＳ６１６）。
【０２１７】
その後、動画像符号化装置１００は、ステップＳ６１４で検出された動きベクトルＭＶ０Ｆ，ＭＶ０Ｂを用いて、ピクチャＢ２のＮ番目のブロックＢＬ０の符号化を行なう（ステップＳ６１８）。このような符号化が行なわれている間に、動きベクトル検出装置１００ａは、ピクチャＢ３のＮ番目のブロックＢＬ１の動きベクトルＭＶ１Ｆ，ＭＶ１Ｂを検出する（ステップＳ６２０）。
【０２１８】
その後、動画像符号化装置１００は、その検出された動きベクトルＭＶ１Ｆ，ＭＶ１Ｂを用いて、ピクチャＢ３のＮ番目のブロックＢＬ１の符号化を行なう（ステップＳ６２４）。このような符号化が行なわれている間に、動きベクトル検出装置１００ａは、ピクチャＰ７のＮ番目のブロックＢＬ５の動きベクトルＭＶ５を検出する（ステップＳ６２６）。さらに、このとき、動きベクトル検出装置１００ａは、参照ピクチャＰ４の（Ｎ＋１）番目のブロックＢＬ２の動きベクトルＭＶ２をスケーリングすることにより、ピクチャＢ２の（Ｎ＋１）番目のブロックＢＬ０の予測動きベクトルＭＶ０Ｆ＊，ＭＶ０Ｂ＊と、ピクチャＢ３の（Ｎ＋１）番目のブロックＢＬ１の予測動きベクトルＭＶ１Ｆ＊，ＭＶ１Ｂ＊と、ピクチャＰ７の（Ｎ＋１）番目のブロックＢＬ５の予測動きベクトルＭＶ５＊とを算出する。そして、動きベクトル検出装置１００ａは、算出した予測動きベクトルのそれぞれから探索範囲を特定する（ステップＳ６２２）。
【０２１９】
このように、本変形例では、動きベクトルの検出処理と他の処理とをパイプライン処理により行うため、全体的な処理時間を短縮することができる。
【０２２０】
以上、本発明について実施の形態およびその変形例を用いて説明したが、本発明はこれらに限定されるものではない。
【０２２１】
例えば、変形例１０では、動きベクトルの検出処理と他の処理とをパイプライン処理により行ったが、複数の動きベクトルの検出処理を並列に実行してもよい。この場合には、動きベクトル検出装置１００ａは、動きベクトル検出部１２１を複数個備える。そして、これらの動きベクトル検出部１２１は、例えば、図１９に示すピクチャＢ３の（Ｎ−２）番目のブロックの前方動きベクトルＭＶ１Ｆの検出と、ピクチャＰ４の（Ｎ−２）番目のブロックの動きベクトルＭＶ２の検出とを同時に実行する。
【０２２２】
また、本発明では、ブロック図（図１など）の各機能ブロックを集積回路であるＬＳＩとして実現してもよい。これらは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されても良い。（例えばメモリ以外の機能ブロックが１チップ化されていても良い。）ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０２２３】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable GateArray）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサー を利用しても良い。
【０２２４】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。 
【０２２５】
また、各機能ブロックのうち、符号化または復号化の対象となるデータを格納する手段だけ１チップ化せずに別構成としても良い。
【産業上の利用可能性】
【０２２６】
本発明の動きベクトル検出装置は、動きベクトルの検出のための演算量を低減して回路規模の縮小化を図ることができるという効果を奏し、例えば、携帯電話、ビデオカメラ、ＤＶＤ装置、およびパーソナルコンピュータ等において、動画像を構成する各ピクチャを符号化して符号列を生成したり、生成された符号列を復号化したりするための装置として有用である。
【図面の簡単な説明】
【０２２７】
【図１】本発明の実施の形態における動きベクトル検出装置を備えた動画像符号化装置のブロック図である。
【図２】時間ダイレクトモードにおける動きベクトルの予測生成方法を示す模式図である。
【図３】本発明の実施の形態における予測演算部によって算出される前方向の予測動きベクトルを説明するための説明図である。
【図４】同上の動きベクトルの検出の順序を示す図である。
【図５】同上の予測演算部によって算出される後方向の予測動きベクトルを説明するための説明図である。
【図６】同上の動きベクトル検出装置が動きベクトルを検出する動作を示すフローチャートである。
【図７】同上のモード選択部が非時間ダイレクトモードの評価値を算出する動作を示すフローチャートである。
【図８】同上のモード選択部が時間ダイレクトモードの評価値を算出する動作を示すフローチャートである。
【図９】同上の変形例１における予測動きベクトルの算出方法を示す図である。
【図１０】同上の変形例２における予測動きベクトルの算出方法を示す図である。
【図１１】同上の変形例３における予測動きベクトルの算出方法を示す図である。
【図１２】同上の変形例４における予測動きベクトルの算出方法を示す図である。
【図１３】同上の変形例５における予測動きベクトルの算出方法を示す図である。
【図１４】同上の変形例６における予測動きベクトルの算出方法を示す図である。
【図１５】同上の変形例７における予測動きベクトルの算出方法を示す図である。
【図１６】同上の変形例８における探索範囲を示す図である。
【図１７】同上の変形例９において予測動きベクトルを算出する前の各ピクチャの状態を示す図である。
【図１８】同上の変形例９における予測動きベクトルの算出方法を示す図である。
【図１９】同上の変形例１０におけるパイプライン処理を示す図である。
【図２０】同上の変形例１０において動きベクトルの検出対象となるブロックの順序を示す図である。
【図２１】同上の変形例１０の他のパイプライン処理を示す図である。
【図２２】動画像符号化方式における各ピクチャの予測関係を示す模式図である。
【図２３】ピクチャの表示順序および符号化順序を示す図である。
【図２４】Ｈ．２６４における参照関係を示す図である。
【図２５】従来の動きベクトルの検出における探索範囲を示す図である。
【図２６】テレスコピックサーチを示す図である。
【図２７】一枚の参照ピクチャにおける探索範囲の変化を示す図である。
【符号の説明】
【０２２８】
１００  動画像符号化装置
１００ａ  動きベクトル検出装置
１１１  ブロック選択部
１１２  ピクチャメモリ
１１３  差分演算部
１１４  スイッチ
１１５  符号化部
１１６  整列化バッファ
１１７  符号列生成部
１１８  復号化部
１１９  加算演算部
１２１  動きベクトル検出部
１２２  記憶部
１２３  予測演算部
１２４  探索範囲制御部
１２５  モード選択部
１２６  動き補償部
１２７  スイッチ
【図１】
2007129498.tif 000003
【図２】
2007129498.tif 000004
【図３】
2007129498.tif 000005
【図４】
2007129498.tif 000006
【図５】
2007129498.tif 000007
【図６】
2007129498.tif 000008
【図７】
2007129498.tif 000009
【図８】
2007129498.tif 000010
【図９】
2007129498.tif 000011
【図１０】
2007129498.tif 000012
【図１１】
2007129498.tif 000013
【図１２】
2007129498.tif 000014
【図１３】
2007129498.tif 000015
【図１４】
2007129498.tif 000016
【図１５】
2007129498.tif 000017
【図１６】
2007129498.tif 000018
【図１７】
2007129498.tif 000019
【図１８】
2007129498.tif 000020
【図１９】
2007129498.tif 000021
【図２０】
2007129498.tif 000022
【図２１】
2007129498.tif 000023
【図２２】
2007129498.tif 000024
【図２３】
2007129498.tif 000025
【図２４】
2007129498.tif 000026
【図２５】
2007129498.tif 000027
【図２６】
2007129498.tif 000028
【図２７】
2007129498.tif 000029