(57)【要約】【課題】時間ダイレクトモードにおいて符号化対象ブロックに写っている像の動きに対する動き補償の精度を向上できる動画像符号化装置を提供する。【解決手段】動画像符号化装置１は、符号化済みピクチャのうちの第１の参照ピクチャ上で、動画像データに含まれる符号化対象ピクチャを分割した複数のブロックのうちの第１のブロックと対応する位置にある第１の参照ブロックを参照元とする基準候補ベクトルの参照先である第２の参照ブロックが含まれる第２の参照ピクチャまたは第１の参照ピクチャと符号化対象ピクチャ間の第１の時間間隔が、第１の参照ピクチャと第２の参照ピクチャ間の第２の時間間隔よりも長い場合に、第２の参照ブロックを参照元とする第２の動きベクトルの参照先のブロックが含まれる第３の参照ピクチャを参照先ピクチャとし、第１の参照ピクチャを参照元ピクチャとする時間ダイレクトモード用の基準ベクトルを算出する。【選択図】図１
2011199362.tif 000002
【特許請求の範囲】
【請求項１】
動画像データに含まれるピクチャを動き補償を用いて符号化する動画像符号化装置であって、
前記動画像データに含まれる複数の符号化済みピクチャのそれぞれについて求められた動き補償用の動きベクトルを記憶する記憶部と、
前記符号化済みピクチャのうちの第１の参照ピクチャ上で、前記動画像データに含まれる符号化対象ピクチャを分割した複数のブロックのうちの第１のブロックと対応する位置にある第１の参照ブロックを参照元とする第１の動きベクトルを基準候補ベクトルとして前記記憶部から読み出し、当該基準候補ベクトルの参照先である第２の参照ブロックが含まれる第２の参照ピクチャまたは前記第１の参照ピクチャと前記符号化対象ピクチャ間の第１の時間間隔が、前記第１の参照ピクチャと前記第２の参照ピクチャ間の第２の時間間隔よりも長いか否か判定するピクチャ間隔比較部と、
前記第１の時間間隔が前記第２の時間間隔よりも短い場合に、前記基準候補ベクトルを前記第１のブロックに対する基準ベクトルとし、かつ前記第１の参照ピクチャを当該基準ベクトルの参照元ピクチャ、前記第２の参照ピクチャを当該基準ベクトルの参照先ピクチャとし、一方、前記第１の時間間隔が前記第２の時間間隔よりも長い場合に、前記第２の参照ブロックを参照元とする第２の動きベクトルを前記記憶部から読み出し、当該第２の動きベクトルの参照先のブロックが含まれる第３の参照ピクチャを前記参照先ピクチャとし、前記第１の参照ピクチャを前記参照元ピクチャとする前記基準ベクトルを算出する基準ベクトル決定部と、
前記基準ベクトルを、前記参照先ピクチャと前記参照元ピクチャ間の時間間隔に対する前記参照先ピクチャと前記符号化対象ピクチャ間の時間間隔の比に応じて分割することにより、前記第１のブロックに対する第１及び第２のダイレクト動きベクトルを算出するダイレクト動きベクトル計算部と、
前記第１のダイレクト動きベクトルに従って前記参照先ピクチャを動き補償することにより第１の動き補償画像を作成するとともに、前記第２のダイレクト動きベクトルに従って前記参照元ピクチャを動き補償することにより第２の動き補償画像を作成し、前記第１の動き補償画像と前記第２の動き補償画像に基づいて前記第１のブロックに対する予測画像を生成する予測画像生成部と、
前記予測画像と前記第１のブロックの対応する画素の差を表す誤差信号を符号化する符号化部と、
を有する動画像符号化装置。
【請求項２】
前記基準ベクトル決定部は、前記第１の時間間隔が前記第２の時間間隔よりも長い場合、前記基準候補ベクトルに前記第２の動きベクトルを加算することにより、前記基準ベクトルを算出する、請求項１に記載の動画像符号化装置。
【請求項３】
前記基準ベクトル決定部は、前記第１の時間間隔が前記第２の時間間隔よりも長い場合、前記第２の動きベクトルに、前記第１の時間間隔に対する前記第３の参照ピクチャと前記第１の参照ピクチャ間の時間間隔の比を乗じることにより、前記基準ベクトルを算出する、請求項１に記載の動画像符号化装置。
【請求項４】
前記時間間隔比較部は、前記第１の参照ピクチャ及び前記第２の参照ピクチャが同一フレームに含まれるフィールドである場合、前記第１の時間間隔が前記第２の時間間隔よりも長いと判定する、請求項１〜３の何れか一項に記載の動画像符号化装置。
【請求項５】
前記時間間隔比較部は、前記第１の参照ピクチャと前記第２の参照ピクチャの両方が、前記符号化対象ピクチャよりも時間的に後のピクチャである場合、または前記第１の参照ピクチャと前記第２の参照ピクチャの両方が、前記符号化対象ピクチャよりも時間的に前のピクチャである場合、前記第１の時間間隔が前記第２の時間間隔よりも長いと判定する、請求項１〜３の何れか一項に記載の動画像符号化装置。
【請求項６】
動画像データに含まれるピクチャを動き補償を用いて符号化する動画像符号化方法であって、
前記動画像データに含まれる符号化済みピクチャのうちの第１の参照ピクチャ上で、前記動画像データに含まれる符号化対象ピクチャを分割した複数のブロックのうちの第１のブロックと対応する位置にある第１の参照ブロックを参照元とする第１の動きベクトルを基準候補ベクトルとして、前記動画像データに含まれる複数の符号化済みピクチャのそれぞれについて求められた動き補償用の動きベクトルを記憶する記憶部から読み出し、当該基準候補ベクトルの参照先である第２の参照ブロックが含まれる第２の参照ピクチャまたは前記第１の参照ピクチャと前記符号化対象ピクチャ間の第１の時間間隔が、前記第１の参照ピクチャと前記第２の参照ピクチャ間の第２の時間間隔よりも長いか否か判定し、
前記第１の時間間隔が前記第２の時間間隔よりも短い場合に、前記基準候補ベクトルを前記第１のブロックに対する基準ベクトルとし、かつ前記第１の参照ピクチャを当該基準ベクトルの参照元ピクチャ、前記第２の参照ピクチャを当該基準ベクトルの参照先ピクチャとし、
前記第１の時間間隔が前記第２の時間間隔よりも長い場合に、前記第２の参照ブロックを参照元とする第２の動きベクトルを前記記憶部から読み出し、当該第２の動きベクトルの参照先のブロックが含まれる第３の参照ピクチャを前記参照先ピクチャとし、前記第１の参照ピクチャを前記参照元ピクチャとする前記基準ベクトルを算出し、
前記基準ベクトルを、前記参照先ピクチャと前記参照元ピクチャ間の時間間隔に対する前記参照先ピクチャと前記符号化対象ピクチャ間の時間間隔の比に応じて分割することにより、前記第１のブロックに対する第１及び第２のダイレクト動きベクトルを算出し、
前記第１のダイレクト動きベクトルに従って前記参照先ピクチャを動き補償することにより第１の動き補償画像を作成するとともに、前記第２のダイレクト動きベクトルに従って前記参照元ピクチャを動き補償することにより第２の動き補償画像を作成し、前記第１の動き補償画像と前記第２の動き補償画像に基づいて前記第１のブロックに対する予測画像を生成し、
前記予測画像と前記第１のブロックの対応する画素の差を表す誤差信号を符号化する、
ことを含む動画像符号化方法。
【請求項７】
符号化された動画像データを復号する動画像復号装置であって、
前記動画像データに含まれる、複数の復号済みピクチャのそれぞれについて求められた動き補償用の動きベクトルを記憶する記憶部と、
前記動画像データに含まれる復号対象ピクチャを分割した複数のブロックのうちの第１のブロックに対応する符号化データを可変長復号することにより、前記第１のブロックに対応する量子化信号を再生する可変長復号部と、
前記復号済みピクチャのうちの第１の参照ピクチャ上で、前記第１のブロックと対応する位置にある第１の参照ブロックを参照元とする第１の動きベクトルを基準候補ベクトルとして前記記憶部から読み出し、当該基準候補ベクトルの参照先である第２の参照ブロックが含まれる第２の参照ピクチャまたは前記第１の参照ピクチャと前記復号対象ピクチャ間の第１の時間間隔が、前記第１の参照ピクチャと前記第２の参照ピクチャ間の第２の時間間隔よりも長いか否か判定するピクチャ間隔比較部と、
前記第１の時間間隔が前記第２の時間間隔よりも短い場合に、前記基準候補ベクトルを前記第１のブロックに対する基準ベクトルとし、かつ前記第１の参照ピクチャを当該基準ベクトルの参照元ピクチャ、前記第２の参照ピクチャを当該基準ベクトルの参照先ピクチャとし、一方、前記第１の時間間隔が前記第２の時間間隔よりも長い場合に、前記第２の参照ブロックを参照元とする第２の動きベクトルを前記記憶部から読み出し、当該第２の動きベクトルの参照先のブロックが含まれる第３の参照ピクチャを前記参照先ピクチャとし、前記第１の参照ピクチャを前記参照元ピクチャとする前記基準ベクトルを算出する基準ベクトル決定部と、
前記基準ベクトルを、前記参照先ピクチャと前記参照元ピクチャ間の時間間隔に対する前記参照先ピクチャと前記復号対象ピクチャ間の時間間隔の比に応じて分割することにより、前記第１のブロックに対する第１及び第２のダイレクト動きベクトルを算出するダイレクト動きベクトル計算部と、
前記第１のダイレクト動きベクトルに従って前記参照先ピクチャを動き補償することにより第１の動き補償画像を作成するとともに、前記第２のダイレクト動きベクトルに従って前記参照元ピクチャを動き補償することにより第２の動き補償画像を作成し、前記第１の動き補償画像と前記第２の動き補償画像に基づいて前記第１のブロックに対する予測画像を生成する予測画像生成部と、
前記第１のブロックについての前記量子化信号を逆量子化及び逆直交変換することにより前記第１のブロックに含まれる各画素の予測誤差信号を再生し、当該各画素の予測誤差信号を前記予測画像の対応する画素の値に加算することにより、前記第１のブロックを再生する復号部と、
を有する動画像復号装置。
【請求項８】
符号化された動画像データを復号する動画像復号方法であって、
前記動画像データに含まれる、複数の復号済みピクチャのそれぞれについて求められた動き補償用の動きベクトルを記憶部に記憶させ、
前記動画像データに含まれる復号対象ピクチャを分割した複数のブロックのうちの第１のブロックに対応する符号化データを可変長復号することにより、前記第１のブロックに対応する量子化信号を再生し、
前記復号済みピクチャのうちの第１の参照ピクチャ上で、前記第１のブロックと対応する位置にある第１の参照ブロックを参照元とする第１の動きベクトルを基準候補ベクトルとして前記記憶部から読み出し、当該基準候補ベクトルの参照先である第２の参照ブロックが含まれる第２の参照ピクチャまたは前記第１の参照ピクチャと前記復号対象ピクチャ間の第１の時間間隔が、前記第１の参照ピクチャと前記第２の参照ピクチャ間の第２の時間間隔よりも長いか否か判定し、
前記第１の時間間隔が前記第２の時間間隔よりも短い場合に、前記基準候補ベクトルを前記第１のブロックに対する基準ベクトルとし、かつ前記第１の参照ピクチャを当該基準ベクトルの参照元ピクチャ、前記第２の参照ピクチャを当該基準ベクトルの参照先ピクチャとし、
前記第１の時間間隔が前記第２の時間間隔よりも長い場合に、前記第２の参照ブロックを参照元とする第２の動きベクトルを前記記憶部から読み出し、当該第２の動きベクトルの参照先のブロックが含まれる第３の参照ピクチャを前記参照先ピクチャとし、前記第１の参照ピクチャを前記参照元ピクチャとする前記基準ベクトルを算出し、
前記基準ベクトルを、前記参照先ピクチャと前記参照元ピクチャ間の時間間隔に対する前記参照先ピクチャと前記復号対象ピクチャ間の時間間隔の比に応じて分割することにより、前記第１のブロックに対する第１及び第２のダイレクト動きベクトルを算出し、
前記第１のダイレクト動きベクトルに従って前記参照先ピクチャを動き補償することにより第１の動き補償画像を作成するとともに、前記第２のダイレクト動きベクトルに従って前記参照元ピクチャを動き補償することにより第２の動き補償画像を作成し、前記第１の動き補償画像と前記第２の動き補償画像に基づいて前記第１のブロックに対する予測画像を生成し、
前記第１のブロックについての前記量子化信号を逆量子化及び逆直交変換することにより前記第１のブロックに含まれる各画素の予測誤差信号を再生し、当該各画素の予測誤差信号を前記予測画像の対応する画素の値に加算することにより、前記第１のブロックを再生する、
ことを含む動画像復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、符号化対象ピクチャを他のピクチャの情報を用いて符号化する動画像符号化装置、動画像符号化方法、及び符号化された動画像を復号する動画像復号装置ならびに動画像復号方法に関する。
【背景技術】
【０００２】
動画像データは、一般に非常に大きなデータ量を有する。そのため、動画像データを扱う装置は、動画像データを他の装置へ送信しようとする場合、あるいは、動画像データを記憶装置に記憶しようとする場合、動画像データを符号化することにより圧縮する。代表的な動画像の符号化方式として、International Standardization Organization/International Electrotechnical Commission(ISO/IEC)で策定されたMoving Picture Experts Group phase 2（MPEG-2）、MPEG-4、あるいはH.264 MPEG-4 Advanced Video Coding（H.264 MPEG-4 AVC）が広く利用されている。
このような符号化方式では、符号化対象のピクチャと、その前後のピクチャの情報を用いて、符号化対象のピクチャを符号化するインター符号化方法が採用されている。インター符号化方法では、符号化対象のピクチャが複数のブロックに分割される。そして、各ブロックに対して、ピクチャ間での動きを補償するために、前後の既に符号化されたピクチャを復号した参照ピクチャから、最も類似している領域がブロックマッチングにより求められる。そして、その最も類似する領域と、符号化対象ブロックとの空間的な移動量が動きベクトルとして算出される。この動きベクトルを用いて、参照ピクチャ上の符号化対象ブロックと最も類似するブロックを、符号化対象ブロックとピクチャ上の同じ位置に移動することにより、予測画像が生成される。そして予測画像と符号化対象ブロックとの差分情報と動きベクトルとが符号化される。そのため、インター符号化方法は、冗長な情報を取り除くことができるので、一般に、符号化対象の１枚のピクチャ内に含まれる情報のみを用いてそのピクチャを符号化するイントラ符号化方法の圧縮効率よりも高い圧縮効率を達成することができる。
また、動き補償の精度を向上するために、符号化対象ピクチャと複数の参照ピクチャとの間で算出された複数の動きベクトルを用いて動き補償する方法が開発されている（例えば、特許文献１を参照）。さらに、ブロックマッチングを行う参照ピクチャ上の探索範囲を、対象ブロック周囲の動きベクトルのばらつき度合いに応じて決定する技術が提案されている（例えば、特許文献２を参照）。
【０００３】
動きベクトルは、各ブロックに対して作成される。特に、２枚以上の参照ピクチャを用いて予測画像が生成される双方向予測ピクチャに対しては、各ブロックについて複数の動きベクトルが算出される。そこで、圧縮効率をさらに高めるために、動きベクトルの符号化に要する情報量を削減することが望ましい。そこで、H.264 MPEG-4 AVCでは、インター符号化方式の一つとして、双方向予測ピクチャについての動きベクトルに関する符号量を削減するための時間ダイレクトモードが採用されている。時間ダイレクトモードでは、既に符号化されている参照ピクチャP1上で双方向予測ピクチャの符号化対象ブロックと同じ位置にあるブロックの動きベクトルが、符号化対象ブロックの動きベクトルを決定するための基準ベクトルとして求められる。そして、符号化対象ブロックの動きベクトルは、基準ベクトルを、符号化対象ブロックが含まれるピクチャと参照ピクチャP1との時間間隔t1と、基準ベクトルの参照元と参照先のピクチャ間の時間間隔t2との比(t1/t2)で調節することにより算出される。この場合、動画像符号化装置は、基準ベクトルは既に符号化されているので、双方向予測ピクチャについての動きベクトルを符号化された動画像データに含めなくてもよい。そのため、動画像符号化装置は、時間ダイレクトモードを利用することにより、圧縮効率をさらに高めることができる。
【０００４】
また、符号化対象ピクチャの符号化対象ブロックと同じ位置にある参照ピクチャ上のブロックには、符号化対象ブロックに写っている像と実際には異なる動きをする像が写っている可能性がある。このような場合、符号化対象ブロックと同じ位置にある参照ピクチャ上のブロックについての動きベクトルが基準ベクトルであるとき、符号化対象ブロックと予測画像との対応画素間の差分値のばらつきが大きくなり、符号化効率が低下するおそれがある。そこで、参照ピクチャの各ブロックについて求められた動きベクトルのうち、符号化対象ブロックを透過する動きベクトルを基準ベクトルの算出に利用する技術が提案されている（例えば、特許文献３を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−１３９９４８号公報
【特許文献２】特開２００９−２１８６４号公報
【特許文献３】特開２００７−６７７３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
H.264 MPEG-4 AVCでは、インター符号化されるピクチャに対する参照ピクチャとして、既に符号化されている複数のピクチャが用いられる。そのため、時間ダイレクトモードが適用される符号化対象ピクチャの着目ブロックと同じ位置にある参照ピクチャP1上のブロックが動き補償のために参照する過去参照ピクチャP2と参照ピクチャP1の両方が、符号化対象ピクチャよりも時間的に後となることがある。このような場合、参照ピクチャP1と過去参照ピクチャP2間の時間間隔t2は、符号化対象ピクチャと参照ピクチャP1との時間間隔t1よりも短いことがある。
このような場合、(t1/t2)が１よりも大きいので、符号化対象ブロックの動きベクトルの時間方向の長さが、基準ベクトルの時間方向の長さよりも長くなる。その結果として、符号化対象ブロックの動きベクトルの動き補償精度が粗くなるので、符号化対象ブロックに対する予測画像の予測精度が低下してしまい、予測画像と符号化対象ブロックとの相違が大きくなって符号化効率が低下するおそれがあった。
【０００７】
そこで、本明細書は、時間ダイレクトモードにおいて符号化対象ブロックに写っている像の動きに対する動き補償の精度を向上できる動画像符号化装置を提供することを目的とする。また、そのような動画像符号化装置にて符号化された動画像データを復号する動画像復号装置を提供することを他の目的とする。
【課題を解決するための手段】
【０００８】
一つの実施形態によれば、動画像データに含まれるピクチャを動き補償を用いて符号化する動画像符号化装置が提供される。この動画像符号化装置は、動画像データに含まれる複数の符号化済みピクチャのそれぞれについて求められた動き補償用の動きベクトルを記憶する記憶部と、符号化済みピクチャのうちの第１の参照ピクチャ上で、動画像データに含まれる符号化対象ピクチャを分割した複数のブロックのうちの第１のブロックと対応する位置にある第１の参照ブロックを参照元とする第１の動きベクトルを基準候補ベクトルとして記憶部から読み出し、基準候補ベクトルの参照先である第２の参照ブロックが含まれる第２の参照ピクチャまたは第１の参照ピクチャと符号化対象ピクチャ間の第１の時間間隔が、第１の参照ピクチャと第２の参照ピクチャ間の第２の時間間隔よりも長いか否か判定するピクチャ間隔比較部と、第１の時間間隔が第２の時間間隔よりも短い場合に、基準候補ベクトルを第１のブロックに対する基準ベクトルとし、かつ第１の参照ピクチャを基準ベクトルの参照元ピクチャ、第２の参照ピクチャを基準ベクトルの参照先ピクチャとし、一方、第１の時間間隔が第２の時間間隔よりも長い場合に、第２の参照ブロックを参照元とする第２の動きベクトルを記憶部から読み出し、第２の動きベクトルの参照先のブロックが含まれる第３の参照ピクチャを参照先ピクチャとし、第１の参照ピクチャを参照元ピクチャとする基準ベクトルを算出する基準ベクトル決定部と、基準ベクトルを、参照先ピクチャと参照元ピクチャ間の時間間隔に対する参照先ピクチャと符号化対象ピクチャ間の時間間隔の比に応じて分割することにより、第１のブロックに対する第１及び第２のダイレクト動きベクトルを算出するダイレクト動きベクトル計算部と、第１のダイレクト動きベクトルに従って参照先ピクチャを動き補償することにより第１の動き補償画像を作成するとともに、第２のダイレクト動きベクトルに従って参照元ピクチャを動き補償することにより第２の動き補償画像を作成し、第１の動き補償画像と第２の動き補償画像に基づいて第１のブロックに対する予測画像を生成する予測画像生成部と、予測画像と第１のブロックの対応する画素の差を表す誤差信号を符号化する符号化部とを有する。
【０００９】
また他の実施形態によれば、動画像データに含まれるピクチャを動き補償を用いて符号化する動画像符号化方法が提供される。この動画像符号化方法は、動画像データに含まれる符号化済みピクチャのうちの第１の参照ピクチャ上で、動画像データに含まれる符号化対象ピクチャを分割した複数のブロックのうちの第１のブロックと対応する位置にある第１の参照ブロックを参照元とする第１の動きベクトルを基準候補ベクトルとして、動画像データに含まれる複数の符号化済みピクチャのそれぞれについて求められた動き補償用の動きベクトルを記憶する記憶部から読み出し、基準候補ベクトルの参照先である第２の参照ブロックが含まれる第２の参照ピクチャまたは第１の参照ピクチャと符号化対象ピクチャ間の第１の時間間隔が、第１の参照ピクチャと第２の参照ピクチャ間の第２の時間間隔よりも長いか否か判定し、第１の時間間隔が第２の時間間隔よりも短い場合に、基準候補ベクトルを第１のブロックに対する基準ベクトルとし、かつ第１の参照ピクチャを基準ベクトルの参照元ピクチャ、第２の参照ピクチャを基準ベクトルの参照先ピクチャとし、一方、第１の時間間隔が第２の時間間隔よりも長い場合に、第２の参照ブロックを参照元とする第２の動きベクトルを記憶部から読み出し、第２の動きベクトルの参照先のブロックが含まれる第３の参照ピクチャを参照先ピクチャとし、第１の参照ピクチャを参照元ピクチャとする基準ベクトルを算出し、基準ベクトルを、参照先ピクチャと参照元ピクチャ間の時間間隔に対する参照先ピクチャと符号化対象ピクチャ間の時間間隔の比に応じて分割することにより、第１のブロックに対する第１及び第２のダイレクト動きベクトルを算出し、第１のダイレクト動きベクトルに従って参照先ピクチャを動き補償することにより第１の動き補償画像を作成するとともに、第２のダイレクト動きベクトルに従って参照元ピクチャを動き補償することにより第２の動き補償画像を作成し、第１の動き補償画像と第２の動き補償画像に基づいて第１のブロックに対する予測画像を生成し、予測画像と第１のブロックの対応する画素の差を表す誤差信号を符号化することを含む。
【００１０】
さらに他の実施形態によれば、符号化された動画像データを復号する動画像復号装置が提供される。この動画像復号装置は、動画像データに含まれる、複数の復号済みピクチャのそれぞれについて求められた動き補償用の動きベクトルを記憶する記憶部と、動画像データに含まれる復号対象ピクチャを分割した複数のブロックのうちの第１のブロックに対応する符号化データを可変長復号することにより、第１のブロックに対応する量子化信号を再生する可変長復号部と、復号済みピクチャのうちの第１の参照ピクチャ上で、第１のブロックと対応する位置にある第１の参照ブロックを参照元とする第１の動きベクトルを基準候補ベクトルとして記憶部から読み出し、基準候補ベクトルの参照先である第２の参照ブロックが含まれる第２の参照ピクチャまたは第１の参照ピクチャと復号対象ピクチャ間の第１の時間間隔が、第１の参照ピクチャと第２の参照ピクチャ間の第２の時間間隔よりも長いか否か判定するピクチャ間隔比較部と、第１の時間間隔が第２の時間間隔よりも短い場合に、基準候補ベクトルを第１のブロックに対する基準ベクトルとし、かつ第１の参照ピクチャを基準ベクトルの参照元ピクチャ、第２の参照ピクチャを基準ベクトルの参照先ピクチャとし、一方、第１の時間間隔が第２の時間間隔よりも長い場合に、第２の参照ブロックを参照元とする第２の動きベクトルを記憶部から読み出し、第２の動きベクトルの参照先のブロックが含まれる第３の参照ピクチャを参照先ピクチャとし、第１の参照ピクチャを参照元ピクチャとする基準ベクトルを算出する基準ベクトル決定部と、基準ベクトルを、参照先ピクチャと参照元ピクチャ間の時間間隔に対する参照先ピクチャと復号対象ピクチャ間の時間間隔の比に応じて分割することにより、第１のブロックに対する第１及び第２のダイレクト動きベクトルを算出するダイレクト動きベクトル計算部と、第１のダイレクト動きベクトルに従って参照先ピクチャを動き補償することにより第１の動き補償画像を作成するとともに、第２のダイレクト動きベクトルに従って参照元ピクチャを動き補償することにより第２の動き補償画像を作成し、第１の動き補償画像と第２の動き補償画像に基づいて第１のブロックに対する予測画像を生成する予測画像生成部と、第１のブロックについての量子化信号を逆量子化及び逆直交変換することにより第１のブロックに含まれる各画素の予測誤差信号を再生し、各画素の予測誤差信号を予測画像の対応する画素の値に加算することにより、第１のブロックを再生する復号部とを有する。
【００１１】
さらに他の実施形態によれば、符号化された動画像データを復号する動画像復号方法が提供される。この動画像復号方法は、動画像データに含まれる、複数の復号済みピクチャのそれぞれについて求められた動き補償用の動きベクトルを記憶部に記憶させ、動画像データに含まれる復号対象ピクチャを分割した複数のブロックのうちの第１のブロックに対応する符号化データを可変長復号することにより、第１のブロックに対応する量子化信号を再生し、復号済みピクチャのうちの第１の参照ピクチャ上で、第１のブロックと対応する位置にある第１の参照ブロックを参照元とする第１の動きベクトルを基準候補ベクトルとして記憶部から読み出し、基準候補ベクトルの参照先である第２の参照ブロックが含まれる第２の参照ピクチャまたは第１の参照ピクチャと復号対象ピクチャ間の第１の時間間隔が、第１の参照ピクチャと第２の参照ピクチャ間の第２の時間間隔よりも長いか否か判定し、第１の時間間隔が第２の時間間隔よりも短い場合に、基準候補ベクトルを第１のブロックに対する基準ベクトルとし、かつ第１の参照ピクチャを基準ベクトルの参照元ピクチャ、第２の参照ピクチャを基準ベクトルの参照先ピクチャとし、第１の時間間隔が第２の時間間隔よりも長い場合に、第２の参照ブロックを参照元とする第２の動きベクトルを記憶部から読み出し、第２の動きベクトルの参照先のブロックが含まれる第３の参照ピクチャを参照先ピクチャとし、第１の参照ピクチャを参照元ピクチャとする基準ベクトルを算出し、基準ベクトルを、参照先ピクチャと参照元ピクチャ間の時間間隔に対する参照先ピクチャと復号対象ピクチャ間の時間間隔の比に応じて分割することにより、第１のブロックに対する第１及び第２のダイレクト動きベクトルを算出し、第１のダイレクト動きベクトルに従って参照先ピクチャを動き補償することにより第１の動き補償画像を作成するとともに、第２のダイレクト動きベクトルに従って参照元ピクチャを動き補償することにより第２の動き補償画像を作成し、第１の動き補償画像と第２の動き補償画像に基づいて第１のブロックに対する予測画像を生成し、第１のブロックについての量子化信号を逆量子化及び逆直交変換することにより第１のブロックに含まれる各画素の予測誤差信号を再生し、各画素の予測誤差信号を予測画像の対応する画素の値に加算することにより、第１のブロックを再生することを含む。
【００１２】
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を限定するものではないことを理解されたい。
【発明の効果】
【００１３】
本明細書に開示された動画像符号化装置は、時間ダイレクトモードにおいて符号化対象ブロックに写っている像の動きに対する動き補償の精度を向上できる。また、本明細書に開示された動画像復号装置は、そのような動画像符号化装置にて符号化された動画像データを復号することができる。
【図面の簡単な説明】
【００１４】
【図１】一つの実施形態に係る動画像符号化装置の概略構成図である。
【図２】時間ダイレクトモードにおいて、符号化対象ピクチャと参照ピクチャ間の時間間隔が、参照ピクチャと過去参照ピクチャ間の時間間隔よりも短い場合の基準ベクトルと動きベクトルの関係を示す図である。
【図３】時間ダイレクトモードにおいて、符号化対象ピクチャと参照ピクチャ間の時間間隔が、参照ピクチャと過去参照ピクチャ間の時間間隔よりも長い場合における、従来技術による基準ベクトル及び動きベクトルを示す図である。
【図４】時間ダイレクトモードにおいて、符号化対象ピクチャと参照ピクチャ間の時間間隔が、参照ピクチャと過去参照ピクチャ間の時間間隔よりも長い場合における、一つの実施形態による基準ベクトル及び動きベクトルを示す図である。
【図５】双方向予測ピクチャに対する動画像符号化処理の動作フローチャートである。
【図６】参照ブロック内のサブブロックを基準候補ベクトルによって移動させた移動サブブロックと、過去参照ピクチャの複数のサブブロックとの対応関係の一例を示す図である。
【図７】時間ダイレクトモードにおいて、符号化対象ピクチャと参照ピクチャ間の時間間隔が、参照ピクチャと過去参照ピクチャ間の時間間隔よりも長い場合における、他の実施形態による基準ベクトル及び動きベクトルを示す図である。
【図８】他の例による、時間ダイレクトモードにおいて、符号化対象ピクチャと参照ピクチャ間の時間間隔が、参照ピクチャと過去参照ピクチャ間の時間間隔よりも長い場合における基準ベクトル及び動きベクトルを示す図である。
【図９】何れかの実施形態に係る動画像符号化装置により符号化された動画像データを復号する動画像復号装置の概略構成図である。
【図１０】動画像復号処理の動作フローチャートである。
【発明を実施するための形態】
【００１５】
以下、図を参照しつつ、一つの実施形態による、動画像符号化装置について説明する。
この動画像符号化装置は、双方向予測ピクチャである符号化対象ピクチャの着目ブロックの動きベクトルを時間ダイレクトモードにて決定する際、参照ピクチャ上で着目ブロックと同じ位置にある参照ブロックの動きベクトルを基準候補ベクトルとする。そしてこの動画像符号化装置は、基準候補ベクトルの参照先のブロックが含まれるピクチャである過去参照ピクチャを検出する。動画像符号化装置は、参照ピクチャと過去参照ピクチャ間の時間間隔が、符号化対象ピクチャと参照ピクチャまたは過去参照ピクチャ間の時間間隔よりも短い場合、参照ブロックが参照する過去参照ピクチャ上の第２の参照ブロックの動きベクトルを求める。そしてこの動画像符号化装置は、第１の参照ブロックの動きベクトルと、第２の参照ブロックの動きベクトルとを加算して、着目ブロックに対する基準ベクトルを決定する。これにより、この動画像符号化装置は、基準ベクトルの参照元と参照先のピクチャ間の時間間隔を符号化対象ピクチャと基準ベクトルの参照先のピクチャ間の時間間隔よりも長くすることで、時間ダイレクトモードにおける動きベクトルの動き補償精度を向上する。
【００１６】
なお、ピクチャは、フレームまたはフィールドの何れであってもよい。フレームは、動画像データ中の一つの静止画像であり、一方、フィールドは、フレームから奇数行のデータあるいは偶数行のデータのみを取り出すことにより得られる静止画像である。
【００１７】
また動画像データは、Group Of Pictures（GOP）単位で符号化される。GOPは、連続する複数のピクチャを含み、各ピクチャに対する符号化方法が規定された構造を表す。また、以下では、GOPに含まれるピクチャのうち、既に符号化されている１枚のピクチャの情報を用いてインター符号化されるピクチャをPピクチャと表記する。さらに、既に符号化されている２枚のピクチャの情報を用いてインター符号化されるピクチャをBピクチャと表記する。なお、Bピクチャが参照する２枚の参照ピクチャの一方がそのBピクチャよりも時間的に前のピクチャであり、他方がそのBピクチャよりも時間的に後のピクチャであってもよい。あるいは、２枚の参照ピクチャの何れも、Bピクチャよりも時間的に前のピクチャであってもよい。さらに、２枚の参照ピクチャの何れも、Bピクチャよりも時間的に後のピクチャであってもよい。
また、イントラ符号化のみの対象となり、インター符号化されないピクチャをIピクチャと表記する。
【００１８】
図１は、一つの実施形態による動画像符号化装置の概略構成図である。動画像符号化装置１は、符号化部１０、復号部１４、参照画像記憶部１５、動きベクトル計算部１６、動きベクトル計算部１７、ピクチャ間隔比較部１８、基準ベクトル決定部１９、ダイレクト動きベクトル計算部２０、予測モード判定部２１及び予測画像生成部２２を有する。
動画像符号化装置１が有するこれらの各部は、それぞれ別個の回路として形成される。あるいは動画像符号化装置１が有するこれらの各部は、その各部に対応する回路が集積された一つの集積回路として動画像符号化装置１に実装されてもよい。さらに、動画像符号化装置１が有するこれらの各部は、動画像符号化装置１が有するプロセッサ上で実行されるコンピュータプログラムにより実現される、機能モジュールであってもよい。
【００１９】
符号化対象となるピクチャは、例えば、動画像符号化装置１全体を制御する制御部（図示せず）により所定数の画素を持つ複数のブロックに分割される。この符号化処理の単位となるブロックを、以下ではマクロブロックと呼ぶ。そして動画像符号化装置１には、各マクロブロックが、例えばH.264 MPEG-4 AVCに規定された順序で入力される。
例えば、各マクロブロックは、横16×縦16画素を含む。あるいは、各マクロブロックは、横8×縦8画素を含んでもよい。
【００２０】
符号化部１０は、動画像データのうち、符号化対象となる現在のピクチャを符号化する。そのために、符号化部１０は、予測誤差信号生成部１１と、直交変換・量子化部１２と、可変長符号化部１３とを有する。
予測誤差信号生成部１１は、入力されたマクロブロックと、予測画像生成部１９により生成された予測画像との差分演算を実行する。そして直交変換・量子化部１２は、その差分演算により得られたマクロブロック内の各画素に対応する差分値を、予測誤差信号とする。
予測誤差信号生成部１１は、予測誤差信号を直交変換・量子化部１２へ渡す。
【００２１】
直交変換・量子化部１２は、入力されたマクロブロックの予測誤差信号を直交変換することにより、予測誤差信号の水平方向の周波数成分及び垂直方向の周波数成分を表す周波数信号を求める。例えば、直交変換・量子化部１２は、直交変換処理として、離散コサイン変換（Discrete Cosine Transform、DCT）を予測誤差信号に対して実行することにより、周波数信号として、マクロブロックごとのDCT係数の組を得る。
【００２２】
次に、直交変換・量子化部１２は、周波数信号を量子化する。この量子化処理は、一定区間に含まれる信号値を一つの信号値で表す処理である。そしてその一定区間は、量子化幅と呼ばれる。例えば、直交変換・量子化部１２は、周波数信号から、量子化幅に相当する所定数の下位ビットを切り捨てることにより、その周波数信号を量子化する。量子化幅は、量子化パラメータによって決定される。例えば、直交変換・量子化部１２は、量子化パラメータの値に対する量子化幅の値を表す関数にしたがって、使用される量子化幅を決定する。またその関数は、量子化パラメータの値に対する単調増加関数とすることができ、予め設定される。
あるいは、水平方向及び垂直方向の周波数成分のそれぞれに対応する量子化幅を規定する量子化マトリクスが、予め複数準備され、直交変換・量子化部１２が有するメモリに記憶される。そして直交変換・量子化部１２は、量子化パラメータにしたがって、それら量子化マトリクスのうちの特定の量子化マトリクスを選択する。そして直交変換・量子化部１２は、選択された量子化マトリクスを参照して、周波数信号の各周波数成分に対する量子化幅を決定してもよい。
【００２３】
また直交変換・量子化部１２は、MPEG-2、MPEG-4、H.264 MPEG-4 AVCなどの動画像符号化規格に対応した様々な量子化パラメータ決定方法の何れかに従って量子化パラメータを決定すればよい。直交変換・量子化部１２は、例えば、MPEG-2の標準テストモデル5に関する量子化パラメータの算出方法を用いることができる。なお、MPEG-2の標準テストモデル5に関する量子化パラメータの算出方法に関しては、例えば、http://www.mpeg.org/MPEG/MSSG/tm5/Ch10/Ch10.htmlで特定されるURLを参照されたい。
直交変換・量子化部１２は、量子化処理を実行することにより、周波数信号の各周波数成分を表すために使用されるビットの数を削減できるので、入力されたマクロブロックに含まれる情報量を低減できる。直交変換・量子化部１２は、量子化信号を可変長符号化部１３及び復号部１４に供給する。
【００２４】
可変長符号化部１３は、直交変換・量子化部１２から受け取った量子化された信号及び動きベクトル計算部１６から受け取った動きベクトルを符号化することにより、データ量が圧縮された符号化信号を生成する。そのために、可変長符号化部１３は、例えば、その量子化信号に対して、生起確率が高い信号値ほど短くなる、可変長の符号語を割り当てる可変長符号化処理を実行する。例えば、可変長符号化部１３は、可変長符号化処理として、ハフマン符号化処理あるいは算術符号化処理を用いることができる。
【００２５】
可変長符号化部１３により生成された符号化信号に対して、動画像符号化装置１は、マクロブロックごとの予測モードなどを含む所定の情報をヘッダ情報として付加することにより、符号化された動画像データを含むデータストリームを生成する。動画像符号化装置１は、そのデータストリームを磁気記録媒体、光記録媒体あるいは半導体メモリなどを有する記憶部（図示せず）に記憶するか、あるいはそのデータストリームを他の機器へ出力する。
【００２６】
復号部１４は、直交変換・量子化部１２から受け取った量子化信号に、量子化パラメータにより決定された量子化幅に相当する所定数を乗算することにより逆量子化する。この逆量子化により、入力されたマクロブロックの周波数信号、例えば、DCT係数の組が復元される。その後、復号部１４は、周波数信号を逆直交変換処理する。例えば、直交変換・量子化部１２においてDCT処理が行われる場合、復号部１４は、逆量子化信号に対して逆DCT処理を実行する。逆量子化処理及び逆直交変換処理を量子化信号に対して実行することにより、符号化前の予測誤差信号と同程度の情報を有する予測誤差信号が再生される。
【００２７】
復号部１４は、インター符号化されるピクチャについて、参照画像を動き補償することにより作成された予測画像の各画素値に、その画素に対応する再生された予測誤差信号を加算する。一方、復号部１４は、イントラ符号化されるピクチャについての既に符号化されたマクロブロックに基づいて生成された予測画像の各画素値に、その画素に対応する、再生された予測誤差信号を加算する。これらの処理を各マクロブロックについて実行することにより、復号部１４は、その後に符号化されるマクロブロックに対する予測画像を生成するために利用される参照画像を生成する。
復号部１４は、得られた参照画像を参照画像記憶部１５に記憶させる。
【００２８】
参照画像記憶部１５は、例えば、フレームメモリを有する。そして参照画像記憶部１５は、復号部１４から受け取った参照画像を一時的に記憶する。そして参照画像記憶部１５は、動きベクトル計算部１６、予測モード判定部２１及び予測画像生成部２２にその参照画像を供給する。なお、参照画像記憶部１５は、予め定められた所定枚数分の参照画像を記憶し、参照画像の枚数がその所定枚数を超えると、符号化順序が古い参照画像から順に破棄する。
【００２９】
動きベクトル計算部１６は、インター符号化用の予測画像を生成するために、入力されたマクロブロックと参照画像とを用いて、動きベクトルを求める。動きベクトルは、入力されたマクロブロックと、そのマクロブロックに最も類似する参照画像との空間的な移動量を表す。
動きベクトル計算部１６は、入力されたマクロブロックと、参照画像とのブロックマッチングを実行することにより、入力されたマクロブロックと最も一致する参照画像及びその参照画像が含まれるピクチャ上での位置を決定する。
【００３０】
動きベクトル計算部１６は、入力されたマクロブロックのピクチャ上の位置と、そのマクロブロックに最も一致する参照画像との水平方向及び垂直方向の移動量と、その参照画像が属するピクチャを表す識別情報を、それぞれ要素とするベクトルを動きベクトルとする。
動きベクトル計算部１６は、求めた動きベクトルを、動きベクトル記憶部１７、予測モード判定部２１、予測画像生成部２２及び符号化部１０へ渡す。
【００３１】
動きベクトル記憶部１７は、動きベクトル計算部１６により求められた動きベクトルを、時間ダイレクトモードにおける基準ベクトルを決定するために一時的に記憶する。そこで、動きベクトル記憶部１７は、各マクロブロックについて求められた動きベクトルが基準ベクトルの算出のために利用される可能性のある間、例えば、符号化順序に従って数枚程度のピクチャの各マクロブロックに対する動きベクトルを記憶する。そして動きベクトル記憶部１７は、記憶している動きベクトルを、ピクチャ間隔比較部１８及び基準ベクトル決定部１９へ渡す。
【００３２】
ピクチャ間隔比較部１８、基準ベクトル決定部１９及びダイレクト動きベクトル計算部２０は、予測モードとして時間ダイレクトモードが用いられる場合における基準ベクトル及び動きベクトルを決定する。ここで、動画像符号化装置１における基準ベクトル及び動きベクトルの決定方法について説明する。
【００３３】
図２は、時間ダイレクトモードにおいて、符号化対象ピクチャと参照ピクチャ間の時間間隔が、参照ピクチャと過去参照ピクチャ間の時間間隔よりも短い場合の基準ベクトル及び動きベクトルを示す図である。
図２において、ピクチャＰ１〜Ｐ８は、左から順に時間順に並べられており、それぞれフィールドである。このうち、ピクチャＰ１、Ｂ３、Ｂ５及びＰ７は、元のフレームの奇数行のデータを含むトップフィールドであり、一方、ピクチャＰ２、Ｂ４、Ｂ６及びＰ８は、元のフレームの偶数行のデータを含むボトムフィールドである。またピクチャＰ１とピクチャＰ２は、同一のフレームに含まれ、パリティの異なるフィールドである。同様に、ピクチャＢ３とピクチャＢ４、ピクチャＢ５とピクチャＢ６、及びピクチャＰ７とピクチャＰ８は、それぞれ同一のフレームに含まれ、パリティの異なるフィールドである。
また、ピクチャＰ１、Ｐ２、Ｐ７及びＰ８はPピクチャであり、一方、ピクチャＢ３〜Ｂ６はBピクチャである。このように、ピクチャＰ１〜Ｐ８のGOPは、いわゆるIBBPとなっている。そのため、符号化順序は、Ｐ１→Ｐ２→Ｐ７→Ｐ８→Ｂ３→Ｂ４→Ｂ５→Ｂ６の順序である。ここでは、BピクチャであるピクチャＢ３が符号化対象ピクチャであり、ブロック２０１が着目するブロックである。このとき、ピクチャＰ１、Ｐ２、Ｐ７及びＰ８については符号化が完了している。
【００３４】
この場合、参照ピクチャは、ピクチャＢ３の直前に符号化された同パリティのピクチャＰ７となり、そして参照ピクチャ上で着目するブロック２０１と同じ位置にあるブロック２０２が参照ブロックとなる。したがって、ブロック２０２について求められた動きベクトルがブロック２０１についての基準ベクトルmvCol(Vx,Vy)となる。そして、基準ベクトルmvCol(Vx,Vy)の参照先であるブロック２０３が含まれるピクチャＰ１が過去参照ピクチャである。なお、Vx、Vyは、それぞれ、ブロック２０３とブロック２０２との水平方向の位置の差及び垂直方向の位置の差である。この場合、ブロック２０１の二つの動きベクトルmvL0、mvL1は、それぞれ次式により決定される。
【数１】
2011199362.tif 000003
なお、mvL0は、過去参照ピクチャＰ１を参照ピクチャとする動きベクトルであり、mvL1は、参照ピクチャＰ７を参照ピクチャとする動きベクトルである。また、tbは、符号化対象ピクチャＢ３と過去参照ピクチャＰ１間の時間間隔であり、tdは、参照ピクチャＰ７と過去参照ピクチャピクチャＰ１間の時間間隔である。
図２に示された例では、時間間隔tdの方が時間間隔tbよりも長い。そのため、基準ベクトルmvColに含まれる動き予測の誤差がtb/tdに応じて小さくなる。したがって、ブロック２０１に写っている像とブロック２０２に写っている像が同じ方向及び同じ移動量で動いていると、基準ベクトルmvColから算出される動きベクトルは、高い動き予測精度を持つことができる。
【００３５】
図３は、時間ダイレクトモードにおいて、符号化対象ピクチャと参照ピクチャ間の時間間隔が、参照ピクチャと過去参照ピクチャ間の時間間隔よりも長い場合における、従来技術による基準ベクトル及び動きベクトルを示す図である。図３に示されたピクチャＰ１〜Ｐ８も、フィールドである。また図３に示されたピクチャＰ１〜Ｐ８のピクチャタイプ及び符号化順序は、それぞれ、図２に示されたピクチャＰ１〜Ｐ８とのピクチャタイプ及び符号化順序と同一である。
図３の例では、BピクチャであるピクチャＢ４が符号化対象ピクチャであり、ピクチャＢ４上のブロック３０１が着目するブロックである。このとき、ピクチャＰ１、Ｐ２、Ｐ７及びＰ８については符号化が完了している。
【００３６】
図３に示された例では、ピクチャＢ４の直前に符号化されたフレームにおいて、ピクチャＢ４と同じパリティのピクチャＰ８が参照ピクチャとなり、そして参照ピクチャ上で着目するブロック３０１と同じ位置にあるブロック３０２が参照ブロックとなる。したがって、ブロック３０２について求められた動きベクトルがブロック３０１についての基準ベクトルmvCol(Vx,Vy)となる。そして、基準ベクトルmvCol(Vx,Vy)の参照先であるブロック３０３が含まれるピクチャＰ７が過去参照ピクチャである。この場合も、ブロック３０１の二つの動きベクトルmvL0、mvL1は、それぞれ（１）式により決定される。
図３に示された例では、時間間隔tdの方が時間間隔tbよりも短い。そのため、基準ベクトルmvColに含まれる動き予測の誤差がtb/tdに応じて大きくなる。この例では、tbがtdの3倍となっているので、mvL0、mvL1に含まれる動き予測の誤差は、それぞれ、基準ベクトルに含まれる動き予測の誤差の3倍、4倍となる。したがって、ブロック３０１に写っている像とブロック３０２に写っている像が同じ方向及び同じ移動量で動いていたとしても、基準ベクトルmvColから算出される動きベクトルが持つ動き予測精度は低くなる可能性がある。
また、例えば、H.264 MPEG-4 AVCに準拠した動画像符号化装置は、1/4画素単位で動き補償を行うことができる。しかし、上記のように、tb/tdが1よりも大きいと、時間ダイレクトモードにおいて算出される動きベクトルの水平方向及び垂直方向の移動量は、（１）式に従って、基準ベクトルの水平方向及び垂直方向の移動量に1よりも大きい係数を乗じた値となる。このように、従来技術による動画像符号化装置は、動画像補償における移動量の最小単位よりも大きい単位でしか動き補償を行うことができない。
【００３７】
図４は、時間ダイレクトモードにおいて、符号化対象ピクチャと参照ピクチャ間の時間間隔が、参照ピクチャと過去参照ピクチャ間の時間間隔よりも長い場合における、一つの実施形態による基準ベクトル及び動きベクトルを示す図である。図４に示されたピクチャＰ１〜Ｐ８も、フィールドである。また図４に示されたピクチャＰ１〜Ｐ８のピクチャタイプ及び符号化順序は、それぞれ、図２に示されたピクチャＰ１〜Ｐ８とのピクチャタイプ及び符号化順序と同一である。
図４の例では、BピクチャであるピクチャＢ４が符号化対象ピクチャであり、ピクチャＢ４上のブロック４０１が着目するブロックである。このとき、ピクチャＰ１、Ｐ２、Ｐ７及びＰ８については符号化が完了している。
【００３８】
図４に示された例でも、ピクチャＢ４の直前に符号化されたフレームにおいて、ピクチャＢ４と同じパリティのピクチャＰ８が参照ピクチャとなり、そして参照ピクチャ上で着目するブロック４０１と同じ位置にあるブロック４０２が参照ブロックとなる。そしてブロック４０１に対する基準ベクトルを決定するために、動画像符号化装置１は、参照ブロック４０２の動きベクトルMV1(Vx1,Vy1)を参照する。この動きベクトルMV1(Vx1,Vy1)は、ピクチャＰ８と同じフレームに含まれるピクチャＰ７上のブロック４０３を参照している。そのため、ピクチャＰ７が過去参照ピクチャとなる。なお、Vx1、Vy1は、それぞれ、ブロック４０３と、ブロック４０２との水平方向の位置の差及び垂直方向の位置の差である。
【００３９】
符号化対象ピクチャＢ４と過去参照ピクチャＰ７間の時間間隔tbは、参照ピクチャＰ８と過去参照ピクチャＰ７間の時間間隔tdよりも長い。一方、基準ベクトルは、時間間隔tbよりも長い時間間隔を持つ二つのピクチャ間での動きを表すベクトルであることが好ましい。このように基準ベクトルを決定することにより、基準ベクトルに含まれる動きの予測誤差が、tbとtdの比に応じて拡大されることが防止される。
【００４０】
ここで、ブロック４０２はブロック４０３を参照しているので、ブロック４０２とブロック４０３には同一の像が写っている可能性が高い。また、図４に示されるように、ブロック４０３について求められた動きベクトルMV2(Vx2,Vy2)の参照先が、ピクチャＰ１に含まれるブロック４０４であると、ブロック４０３とブロック４０４にも同一の像が写っている可能性が高い。そのため、ブロック４０２とブロック４０４にも同一の像が写っている可能性が高い。なお、Vx2、Vy2は、それぞれ、ブロック４０４と、ブロック４０３との水平方向の位置の差及び垂直方向の位置の差である。
そこで、本実施形態による動画像符号化装置１は、ブロック４０２について求められた動きベクトルMV1(Vx1,Vy1)に、ブロック４０３について求められた動きベクトルMV2(Vx2,Vy2)を加算することにより基準ベクトルmvCol(Vx,Vy)を算出する。
このように基準ベクトルを算出することにより、基準ベクトルの参照元となる参照ピクチャＰ８と、その基準ベクトルの参照先となるピクチャＰ１間の時間間隔td'は、ピクチャＢ４とピクチャＰ１間の時間間隔tb'よりも長くなる。このため、ブロック４０１に写っている像とブロック４０２、４０４に写っている像が同じ方向及び同じ移動量で動いていると、基準ベクトルmvColから算出される動きベクトルは、高い動き予測精度を持つことができる。
【００４１】
なお、この実施形態においても、ブロック４０１の二つの動きベクトルmvL0、mvL1は、それぞれ（１）式により決定される。ただし、時間間隔tbは、基準ベクトルの参照先のブロック４０４が含まれるピクチャＰ１と符号化対象ピクチャＢ４間の時間間隔となる。また時間間隔tdは、基準ベクトルの参照先のブロック４０４が含まれるピクチャＰ１と基準ベクトルの参照元のブロック４０２が含まれるピクチャＰ８との時間間隔となる。そして動きベクトルmvL0は、ピクチャＰ１を参照する動きベクトルである。また、動きベクトルmvL1は、ピクチャＰ８を参照する動きベクトルである。
【００４２】
ピクチャ間隔比較部１８は、入力されたマクロブロックが含まれる符号化対象ピクチャの直前において符号化された参照ピクチャ上で、入力されたマクロブロックと対応する位置にあるマクロブロックを参照ブロックとして特定する。そしてピクチャ間隔比較部１８は、参照ブロックについて求められた動きベクトルを基準候補ベクトルとして、動きベクトル記憶部１７から読み込む。
なお、参照ブロックは、参照ピクチャ上で入力されたマクロブロックと同じ位置にあるブロックとすることができる。あるいは、参照ブロックは、その参照ブロックを参照元とする動きベクトルの延長線上に入力されたマクロブロックが存在するブロックであってもよい。
ピクチャ間隔比較部１８は、参照ブロックが含まれる参照ピクチャと、基準候補ベクトルが参照する参照先のピクチャである過去参照ピクチャ間の時間間隔tdと、符号化対象ピクチャと過去参照ピクチャ間の時間間隔tbとを比較する。そしてピクチャ間隔比較部１８は、tbがtdよりも長いか否かの判定結果を基準ベクトル決定部１９に通知する。
あるいは、ピクチャ間隔比較部１８は、符号化対象ピクチャと参照ピクチャとの時間間隔tb2が、時間間隔tdよりも長いか否かの判定結果を基準ベクトル決定部１９に通知してもよい。さらに、ピクチャ間隔比較部１８は、tbがtdよりも長いか否かの判定結果と、tb2がtdよりも長いか否かの判定結果の両方を基準ベクトル決定部１９に通知してもよい。
【００４３】
動画像データに含まれるピクチャがフィールドである場合、参照ピクチャと過去参照ピクチャが、同一のフレームに含まれる、異なるパリティのフィールドとなることがある。この場合、参照ピクチャと過去参照ピクチャとは時間的に連続しており、符号化対象ピクチャと参照ピクチャの時間間隔よりも参照ピクチャと過去参照ピクチャの時間間隔の方が短い。そこで、参照ピクチャと過去参照ピクチャが、同一のフレームに含まれるフィールドであれば、ピクチャ間隔比較部１８は、符号化対象ピクチャと参照ピクチャとの時間間隔tb2が時間間隔tdよりも長いと判定してもよい。
【００４４】
基準ベクトル決定部１９は、入力されたマクロブロックに対する基準ベクトルを決定する。その際、基準ベクトル決定部１９は、ピクチャ間隔比較部１８から通知された時間間隔tbまたはtb2とtdとの比較結果に応じて、基準ベクトルの作成方法を選択する。
具体的には、時間間隔tb及びtb2よりも時間間隔tdの方が長い場合、基準ベクトル決定部１９は、従来の時間ダイレクトモードと同様に基準ベクトルを決定する。すなわち、基準ベクトル決定部１９は、入力されたマクロブロックが含まれる符号化対象ピクチャの直前において符号化された参照ピクチャ上で、入力されたマクロブロックと同じ位置にあるマクロブロックについての動きベクトルを基準ベクトルとする。
なお、ピクチャ間隔比較部１８がtbとtdとの比較結果のみを基準ベクトル決定部１９に通知する場合、基準ベクトル決定部１９は、tbよりも時間間隔tdの方が長い場合、従来の時間ダイレクトモードと同様に基準ベクトルを決定する。また、ピクチャ間隔比較部１８がtb2とtdとの比較結果のみを基準ベクトル決定部１９に通知する場合、基準ベクトル決定部１９は、tb2よりも時間間隔tdの方が長い場合、従来の時間ダイレクトモードと同様に基準ベクトルを決定する。
【００４５】
一方、時間間隔tbまたはtb2よりも時間間隔tdの方が短い場合、基準ベクトル決定部１９は、図４に関して説明したように基準ベクトルを決定する。そのために、基準ベクトル決定部１９は、参照ピクチャ上で入力されたマクロブロックと対応する位置にある参照ブロックを参照元とする動きベクトルMV(Vx1,Vy1)を動きベクトル記憶部１７から読み込む。さらに基準ベクトル決定部１９は、動きベクトルMV1(Vx1,Vy1)の参照先となる過去参照ピクチャ上のマクロブロックを参照元とする動きベクトルMV2(Vx2,Vy2)を動きベクトル記憶部１７から読み込む。そして基準ベクトル決定部１９は、次式に従って基準ベクトルmvCol(Vx,Vy)を求める。
【数２】
2011199362.tif 000004
なお、参照ブロックは、上記のように、参照ピクチャ上で入力されたマクロブロックと同じ位置にあるブロックとすることができる。あるいは、参照ブロックは、その参照ブロックを参照元とする動きベクトルMV1の延長線上に入力されたマクロブロックが存在するブロックであってもよい。
【００４６】
基準ベクトル決定部１９は、基準ベクトルmvCol(Vx,Vy)と、その基準ベクトルの参照元のピクチャを示す基準元ピクチャ番号及び参照先のピクチャを示す基準先ピクチャ番号をダイレクト動きベクトル計算部２０へ渡す。基準元ピクチャ番号は、上記の参照ピクチャを表す番号となる。一方、基準先ピクチャ番号は、tb/td及びtb2/tdが1未満である場合、過去参照ピクチャを表す番号となり、tb/tdまたはtb2/tdが1より大きくなる場合、動きベクトルMV2(Vx2,Vy2)の参照先のピクチャを表す番号となる。
【００４７】
ダイレクト動きベクトル計算部２０は、基準先ピクチャ番号に基づいて、基準先ピクチャ番号に示されたピクチャと入力されたマクロブロックが含まれる符号化対象ピクチャ間の時間間隔tbを算出する。またダイレクト動きベクトル計算部２０は、基準先ピクチャ番号及び基準元ピクチャ番号に基づいて、基準ベクトルの参照先のピクチャと参照元のピクチャ間の時間間隔tdを算出する。そしてダイレクト動きベクトル計算部２０は、基準ベクトル及び時間間隔tb、tdを上記の（１）式に入力することにより、入力されたマクロブロックを参照元とする二つの動きベクトルmvL0、mvL1を算出する。すなわち、ダイレクト動きベクトル計算部２０は、基準ベクトルを、基準ベクトルの参照先と参照元のピクチャ間の時間間隔tdに対する符号化対象ピクチャと参照先ピクチャとの時間間隔tbの比に応じて分割することで、二つの動きベクトルmvL0、mvL1を算出する。そしてダイレクト動きベクトル計算部２０は、二つの動きベクトルmvL0、mvL1に、それら動きベクトルの参照先のピクチャを示す番号として、それぞれ基準先ピクチャ番号及び基準元ピクチャ番号を関連付ける。
ダイレクト動きベクトル計算部２０は、算出した二つの動きベクトルmvL0、mvL1を予測モード判定部２１へ渡す。
【００４８】
予測モード判定部２１は、入力されたマクロブロックに対する予測画像の生成方法を規定する予測モードを決定する。予測モード判定部２１は、例えば、図示しない制御部から取得した、入力されたマクロブロックが含まれる符号化対象のピクチャのタイプを示す情報に基づいて、そのマクロブロックの予測モードを決定する。符号化対象のピクチャのタイプがIピクチャであれば、予測モード判定部２１は適用される予測モードとしてイントラ符号化モードを選択する。
【００４９】
また、符号化対象のピクチャのタイプがPピクチャであれば、予測モード判定部２１は、例えば、適用される予測モードとして、インター符号化モード及びイントラ符号化モードの何れかを選択する。なお、インター符号化モードとして、時間的に前のピクチャを参照する前方向予測モードか、時間的に後のピクチャを参照する後方向予測モードかは、符号化対象のピクチャのGOP内の位置を示す情報に基づいて決定される。
さらに、符号化対象のピクチャのタイプがBピクチャであれば、予測モード判定部２１は、適用される予測モードを、イントラ符号化モード、前方向予測モード、後方向予測モード、双方向予測モード及び時間ダイレクトモードの中から選択する。
【００５０】
予測モード判定部２１は、複数の予測モードの中から一つの予測モードを選択する場合、各予測モードについてのマクロブロックの符号化されたデータ量の評価値であるコストをそれぞれ算出する。そして予測モード判定部２１は、コストが最小となる予測モードを、入力されたマクロブロックに対して適用される予測モードとする。
各モードに対するコストは、例えば、次のように計算される。
【数３】
2011199362.tif 000005
ここで、costd、costf、costb、costbi、costiは、それぞれ、時間ダイレクトモード、前方向予測モード、後方向予測モード、双方向予測モード及びイントラ符号化モードに対応するコストである。orgi,jは、入力されたマクロブロックに含まれる水平方向座標i、垂直方向座標jの画素の値を表す。またrefi,jは、予測画像に含まれる水平方向座標i、垂直方向座標jの画素の値を表す。なお、予測モード判定部２１は、予測画像生成部２２と同様の方法によって参照画像から予測画像を生成する。またmv1、mv2は、入力されたマクロブロックに対する動きベクトルを表し、premv1、premv2は、直前に符号化されたマクロブロックの動きベクトルを表す。さらに、Table[a,b]は、ベクトルaとベクトルbの差分ベクトルに対応する推定符号量を出力する。例えば、Table[a,b]は、様々な差分ベクトルに対する推定符号量を示した参照テーブルであってもよい。またλは重み定数であり、例えば、1に設定される。AveMBは、入力されたマクロブロックに含まれる画素値の平均値である。
【００５１】
予測モード判定部２１は、（３）式に従って、選択対象となる予測モードのそれぞれについてコストを算出する。そして予測モード判定部２１は、コストが最小となる予測モードを、入力されたマクロブロックに対して適用される予測モードとして選択する。
なお、予測モード判定部２１は、特定の予測モード、例えば、時間ダイレクトモードが選択され易くなるように、または選択され難くなるように、（３）式によって算出されるその特定の予測モードのコスト値にオフセット値を加えるか、補正係数を乗じてもよい。
予測モード判定部２１は、選択した予測モードを予測画像生成部２２に通知する。
【００５２】
予測画像生成部２２は、予測モード判定部２１によって選択された予測モードに従って予測画像を生成する。予測画像生成部２２は、入力されたマクロブロックが前方向予測モード、後方向予測モードによってインター符号化される場合、参照画像記憶部１５から得た参照画像を、動きベクトル計算部１６から提供される動きベクトルに基づいて動き補償する。そして予測画像生成部２２は、動き補償されたマクロブロック単位のインター符号化用の予測画像を生成する。なお、動き補償は、動きベクトルで表された、マクロブロックとそれに対して最も類似する参照画像上のブロックの位置ずれ量を相殺するように、その最も類似する参照画像上のブロックの位置を移動する処理である。
また、入力されたマクロブロックが双方向予測モードまたは時間ダイレクトモードによってインター符号化される場合、予測画像生成部２２は、二つの動きベクトルのそれぞれによって特定された参照画像を、その対応する動きベクトルで動き補償する。そして予測画像生成部２２は、動き補償により得られた二つの補償画像の対応する画素間で画素値を平均することにより予測画像を生成する。あるいは、予測画像生成部２２は、その二つの補償画像の対応する画素の値に、対応する動きベクトルの時間方向の長さが短いほど大きい重み係数を乗じて加重平均することにより、予測画像を生成してもよい。ただし、時間ダイレクトモードによってインター符号化される場合、予測画像生成部２２は、ダイレクト動きベクトル計算部２０によって算出された二つの動きベクトルを利用する。
【００５３】
また予測画像生成部２２は、入力されたマクロブロックがイントラ符号化される場合、入力されたマクロブロックに隣接するマクロブロックから予測画像を生成する。その際、予測画像生成部２２は、例えば、H.264 MPEG-4 AVCに規定されている水平モード、ＤＣモード、プレーンモードなどに従って予測画像を生成する。
予測画像生成部２２は、生成された予測画像を予測誤差信号生成部１１へ渡す。
【００５４】
図５は、動画像符号化装置１により実行される、双方向予測ピクチャに対する動画像符号化処理の動作フローチャートである。動画像符号化装置１は、双方向予測ピクチャに含まれるマクロブロックごとに図５に示される動画像符号化処理を実行する。
動きベクトル計算部１６は、入力されたマクロブロックで参照される可能性の有る参照画像を参照画像記憶部１５から読み込む。そして動きベクトル計算部１６は、参照画像及び入力されたマクロブロックに基づいて動きベクトルを算出する（ステップＳ１０１）。動きベクトル計算部１６は、求めた動きベクトルを、その動きベクトルの参照元である入力マクロブロックが含まれる符号化対象ピクチャのピクチャ番号及び参照先のピクチャのピクチャ番号とともに動きベクトル記憶部１７に記憶させる。また動きベクトル計算部１６は、求めた動きベクトルを予測モード判定部２１へ渡す。
【００５５】
ピクチャ間隔比較部１８は、動きベクトル記憶部１７から、入力されたマクロブロックが含まれる符号化対象ピクチャの直前に符号化された参照ピクチャ上で入力されたマクロブロックと対応する位置にあるマクロブロックを参照元とする動きベクトルを読み出す。そしてピクチャ間隔比較部１８は、その動きベクトルを基準候補ベクトルMV1(Vx1,Vy1)とする。ピクチャ間隔比較部１８は、基準候補ベクトルMV1(Vx1,Vy1)の参照元の参照ピクチャ及び参照先の過去参照ピクチャ間の時間間隔tdを算出する（ステップＳ１０２）。また、ピクチャ間隔比較部１８は、符号化対象ピクチャと過去参照ピクチャ間の時間間隔tbと符号化対象ピクチャと参照ピクチャ間の時間間隔tb2のいずれか一方または両方を算出する（ステップＳ１０３）。そしてピクチャ間隔比較部１８は、時間間隔tbあるいはtb2が時間間隔tdよりも長いか否か判定する（ステップＳ１０４）。ピクチャ間隔比較部１８は、時間間隔tbあるいはtb2が時間間隔tdよりも長いか否かの判定結果を基準ベクトル決定部１９に通知する。
【００５６】
時間間隔tb及びtb2が時間間隔tdよりも短い場合（ステップＳ１０４−Ｎｏ）、基準ベクトル決定部１９は、基準候補ベクトルMV1(Vx1,Vy1)を基準ベクトルmvCol(Vx,Vy)とする（ステップＳ１０５）。なお、時間間隔tbまたはtb2の何れか一方しか求められていない場合、その求められている方の時間間隔が時間間隔tdよりも短い場合も、基準ベクトル決定部１９は、基準候補ベクトルを基準ベクトルとする。
一方、時間間隔tbあるいはtb2が時間間隔tdよりも長い場合（ステップＳ１０４−Ｙｅｓ）、基準ベクトル決定部１９は、基準候補ベクトルMV1(Vx1,Vy1)の参照先のマクロブロックを参照元とする動きベクトルMV2(Vx2,Vy2)を動きベクトル記憶部１７から読み込む。そして基準ベクトル決定部１９は、基準候補ベクトルMV1(Vx1,Vy1)と動きベクトルMV2(Vx2,Vy2)の和を、基準ベクトルmvCol(Vx,Vy)とする（ステップＳ１０６）。
【００５７】
ステップＳ１０５またはＳ１０６の後、基準ベクトル決定部１９は、求めた基準ベクトル及び基準ベクトルの参照先及び参照元のピクチャの番号をダイレクト動きベクトル計算部２０へ渡す。
ダイレクト動きベクトル計算部２０は、基準ベクトルの参照先及び参照元のピクチャ間の時間間隔tdと、符号化対象ピクチャと基準ベクトルの参照先のピクチャ間の時間間隔tbを算出する。そしてダイレクト動きベクトル計算部２０は、基準ベクトルと、時間間隔tbとtdとの比(tb/td)を（１）式に入力することにより、二つの動きベクトルmvL0、mvL1を算出する（ステップＳ１０７）。ダイレクト動きベクトル計算部２０は、求めた二つの動きベクトルを予測モード判定部２１へ渡す。
【００５８】
予測モード判定部２１は、イントラ符号化モード、前方向予測モード、後方向予測モード、双方向予測モード、時間ダイレクトモードのそれぞれについて入力されたマクロブロックの符号量の評価値を表すコストを算出する。そして予測モード判定部２１は、コストが最小となる予測モードを入力されたマクロブロックに適用する予測モードとして選択する（ステップＳ１０８）。
予測モード判定部２１は、選択した予測モードを予測画像生成部２２へ通知する。
【００５９】
予測画像生成部２２は、参照画像記憶部１５から読み込んだ参照画像に基づいて、選択した予測モードに応じた予測画像を生成する（ステップＳ１０９）。予測画像生成部２２は、生成した予測画像を符号化部１０の予測誤差信号生成部１１へ渡す。そして予測誤差信号生成部１１は、入力されたマクロブロックと予測画像生成部１９により生成された予測画像間の予測誤差信号を算出する（ステップＳ１１０）。符号化部１０の直交変換・量子化部１２は、予測誤差信号生成部１１により算出された予測誤差信号を直交変換及び量子化して量子化信号を生成する（ステップＳ１１１）。直交変換・量子化部１２は、量子化信号を復号部１４及び符号化部１０の可変長符号化部１３へ渡す。
【００６０】
復号部１４は、量子化信号を逆量子化及び逆直交変換して得られたマクロブロックの各画素の予測誤差信号を、予測画像の各画素に加えることによりマクロブロックを再生する（ステップＳ１１２）。そして復号部１４は、得られたマクロブロックを所定の順序に従って結合することにより再現されるピクチャを参照画像として参照画像記憶部１５に記憶する。
また、符号化部１０の可変長符号化部１３は、量子化信号及び動きベクトルなどの関連情報を可変長符号化する（ステップＳ１１３）。そして可変長符号化部１３は、可変長符号化された符号化データを出力する。
そして動画像符号化装置１は、一つのマクロブロックに対する動画像符号化処理を終了する。
【００６１】
なお、ステップＳ１０１とステップＳ１０２〜Ｓ１０７の処理の順序は入れ替わっても良い。また、Iピクチャに含まれるマクロブロックについては、ステップＳ１０１〜Ｓ１０８の処理は省略される。そしてステップＳ１０９において、予測画像生成部２２は、イントラ符号化用の予測画像を生成する。また、Pピクチャに含まれるマクロブロックについては、ステップＳ１０２〜Ｓ１０７の処理は省略される。そしてステップＳ１０８において、予測モード判定部２１は、イントラ符号化モードと、前方向予測モード及び後方向予測モードの何れか一方とについてのコストを算出する。そして予測モード判定部２１は、コストが最小となる予測モードを入力されたマクロブロックに適用する予測モードとして選択する。さらに、インター符号化及びイントラ符号化の何れも行われないマクロブロックに対しては、ステップＳ１０１〜Ｓ１１０の処理は省略される。そしてステップＳ１１１において、直交変換・量子化部１２は、入力されたマクロブロックを直交変換する。
【００６２】
以上に説明してきたように、この動画像符号化装置は、時間ダイレクトモードが適用されるマクロブロックに対して、基準ベクトルの参照元のピクチャと参照先のピクチャ間の時間間隔が長くなるように基準ベクトルを設定する。具体的には、動画像符号化装置は、基準ベクトルの参照元と参照先のピクチャ間の時間間隔が、そのマクロブロックが含まれる符号化対象ピクチャと基準ベクトルの参照先または参照元のピクチャ間の時間間隔よりも長くなるように、基準ベクトルを設定する。そのため、この動画像符号化装置は、基準ベクトルに含まれる動き予測の誤差が、基準ベクトルから算出される動きベクトルにおいて拡大されることを防止できる。したがって、この動画像符号化装置は、時間ダイレクトモードにおける基準ベクトルのマクロブロックに写っている像の動きに対する予測精度を向上できる。その結果として、この動画像符号化装置は、時間ダイレクトモードが適用されるマクロブロックを増やせるとともに、動画像データの符号化効率を向上できる。
【００６３】
なお、一つのマクロブロック内に複数のサブブロックが規定されることもある。例えば、縦16画素×横16画素のマクロブロック内に、縦8画素×横8画素のサブブロックが4個含まれたり、縦4画素×横4画素のサブブロックが16個含まれることがある。あるいは、縦16画素×横16画素のマクロブロック内に、縦8画素×横16画素のサブブロックあるいは縦16画素×横8画素のサブブロックが2個含まれることがある。さらに、一つのマクロブロック内に大きさの異なるサブブロックが複数含まれることもある。そこで、参照ブロックが複数のサブブロックに分割されている場合、基準ベクトル決定部１９は、一つのマクロブロックに対して、サブブロックごとに基準ベクトルを決定してもよい。例えば、一つの参照ブロックに４個のサブブロックが含まれる場合、基準ベクトル決定部１９は、符号化対象ピクチャの着目する一つのマクロブロックに対して４個の基準ベクトルを求める。そしてダイレクト動きベクトル計算部２０は、サブブロックごとに求められた基準ベクトルごとに、（１）式に従って動きベクトルを作成する。
【００６４】
また、動きベクトルは、マクロブロックのサイズよりも小さい単位で空間方向の移動量を指定できる。そのため、参照ピクチャ上の参照ブロックを、その参照ブロックについての動きベクトルMV1(Vx1,Vy1)によって空間的に移動させた移動ブロックが、過去参照ピクチャの何れのマクロブロックとも完全に一致しないこともある。そこで基準ベクトル決定部１９は、参照ブロックの中心位置(RefCx1,RefCy1)に、その参照ブロックの動きベクトルMV1を加えた移動中心位置(RefCx1+Vx1,RefCy1+Vy1)が含まれる、過去参照ピクチャ上のマクロブロックを対応ブロックとして決定する。そして基準ベクトル決定部１９は、対応ブロックについて求められた動きベクトルを、基準ベクトルを決定するための動きベクトルMV2(Vx2,Vy2)とする。
なお、上記のように、参照ブロックが複数のサブブロックに分割されている場合、基準ベクトル決定部１９は、参照ブロックに含まれるサブブロックごとに、過去参照ピクチャ上の対応するブロックを決定する。すなわち、基準ベクトル決定部１９は、各サブブロックの中心位置に、そのサブブロックの動きベクトルを加えた位置が含まれる、過去参照ピクチャ上のサブブロックを対応サブブロックとして決定する。そして基準ベクトル決定部１９は、対応サブブロックについて求められた動きベクトルを、基準ベクトルを決定するための動きベクトルMV2(Vx2,Vy2)とする。
【００６５】
また基準ベクトル決定部１９は、過去参照ピクチャ上の各マクロブロックのうち、移動ブロックと少なくとも一部が重なるマクロブロックについての動きベクトルを、その重なった領域の面積で加重平均することにより、動きベクトルMV2(Vx2,Vy2)を求めてもよい。
同様に、参照ブロックが複数のサブブロックに分割されている場合、基準ベクトル決定部１９は、参照ブロックに含まれる着目サブブロックを、そのサブブロックについての動きベクトルで移動させた移動サブブロックを求めてもよい。そして基準ベクトル決定部１９は、過去参照ピクチャ上の各サブブロックのうち、移動サブブロックと少なくとも一部が重なるサブブロックについての動きベクトルを、その重なった領域の面積で加重平均する。基準ベクトル決定部１９は、その加重平均された動きベクトルを、着目するサブブロックの動きベクトルMV2(Vx2,Vy2)としてもよい。
【００６６】
図６は、参照ブロック内のサブブロックを基準候補ベクトルによって移動させた移動サブブロックと、過去参照ピクチャの複数のサブブロックとの対応関係の一例を示す図である。
図６に示されるように、この例では、移動サブブロック６０１は、過去参照ピクチャのサブブロック６１１〜６１４と重なっている。移動サブブロック６０１の左上端点の座標は(msbl, msbt)であり、移動サブブロック６０１の右下端点の座標は(msbr, msbb)である。なお、移動サブブロック６０１の移動元となる、参照ピクチャ上の着目サブブロックの左上端点及び右下端点の座標が、それぞれ(sbl, sbt)、(sbr, sbb)であり、着目サブブロックの動きベクトルがMV1(Vx1,Vy1)であれば、それらの座標に以下の関係がある。
(msbl, msbt) = (sbl+Vx1, sbt+Vy1)
(msbr, msbb) = (sbr+Vx1, sbb+Vy1)
【００６７】
また、過去参照ピクチャ上のサブブロック６１１の左上端点及び右下端点の座標は、それぞれ(Rsbx1, Rsby1)、(Rsbx2, Rsby2)である。同様に、サブブロック６１２の左上端点及び右下端点の座標は、それぞれ(Rsbx2, Rsby1)、(Rsbx3, Rsby2)である。また、サブブロック６１３の左上端点及び右下端点の座標は、それぞれ(Rsbx1, Rsby2)、(Rsbx2, Rsby3)である。そしてサブブロック６１４の左上端点及び右下端点の座標は、それぞれ(Rsbx2, Rsby2)、(Rsbx3, Rsby3)である。
この場合、移動サブブロック６０１とサブブロック６１１〜６１４のそれぞれとが重なる領域６２１〜６２４の面積s1〜s4は、以下のようになる。
S1 = (Rsbx2 - msbl) * (Rsby2 - msbt)
S2 = (msbｒ - Rsbx2) * (Rsby2 - msbt)
S3 = (Rsbx2 - msbl) * (msbb - Rsby2)
S4 = (msbｒ - Rsbx2) * (msbb - Rsby2)
そこで、サブブロック６１１〜６１４のそれぞれの動きベクトルがMVs1(Vxs1,Vys1)〜MVs4(Vxs4,Vys4)であれば、着目サブブロックの基準ベクトルを決定するための動きベクトルMV2(Vx2,Vy2)の水平方向移動量Vx2及び垂直方向移動量Vy2は、次のように求められる。
Vx2 = (S1 * Vxs1 + S2 * Vxs2 + S3 * Vxs3 + S4 * Vxs4)/(S1+S2+S3+S4)
Vy2 = (S1 * Vys1 + S2 * Vys2 + S3 * Vys3 + S4 * Vys4)/(S1+S2+S3+S4)
【００６８】
また、基準ベクトル決定部１９は、符号化対象ピクチャと参照ピクチャ間の時間間隔が、参照ピクチャと過去参照ピクチャ間の時間間隔よりも長い場合、入力されたマクロブロックに対する基準ベクトルを、別の方法で求めてよい。
他の実施形態によれば、基準ベクトル決定部１９は、基準ベクトルを、参照ピクチャ上の参照ブロックの基準候補ベクトルMV1(Vx1,Vy1)の参照先である過去参照ピクチャ上のマクロブロックについての動きベクトルMV2(Vx2,Vy2)に基づいて算出する。例えば、基準ベクトル決定部１９は、次式に従って基準ベクトルmvCol(Vx,Vy)を算出する。
【数４】
2011199362.tif 000006
なお、taは、動きベクトルMV2(Vx2,Vy2)の参照先のピクチャと、過去参照ピクチャとの時間間隔であり、td'は、参照ピクチャと動きベクトルMV2(Vx2,Vy2)の参照先のピクチャとの時間間隔である。
【００６９】
図７は、時間ダイレクトモードにおいて、符号化対象ピクチャと参照ピクチャ間の時間間隔が、参照ピクチャと過去参照ピクチャ間の時間間隔よりも長い場合における、他の実施形態による基準ベクトル及び動きベクトルを示す図である。
図７に示されたピクチャＰ１〜Ｐ８も、フィールドである。また図７に示されたピクチャＰ１〜Ｐ８のピクチャタイプ及び符号化順序は、それぞれ、図２に示されたピクチャＰ１〜Ｐ８とのピクチャタイプ及び符号化順序と同一である。
図７の例では、BピクチャであるピクチャＢ４が符号化対象ピクチャであり、ピクチャＢ４上のブロック７０１が着目するブロックである。このとき、ピクチャＰ１、Ｐ２、Ｐ７及びＰ８については符号化が完了している。
【００７０】
図７に示された例では、参照ピクチャは、ピクチャＢ４の直前に符号化され、ピクチャＢ４と同じパリティのピクチャＰ８となり、そして参照ピクチャ上で着目するブロック７０１と同じ位置にあるブロック７０２が参照ブロックとなる。そしてブロック７０１に対する基準ベクトルを決定するために、基準ベクトル決定部１９は、参照ブロック７０２の動きベクトルMV1(Vx1,Vy1)を参照する。この動きベクトルMV1(Vx1,Vy1)は、ピクチャＰ８と同じフレームに含まれるピクチャＰ７上のブロック７０３を参照している。そのため、ピクチャＰ７が過去参照ピクチャとなる。なお、Vx1、Vy1は、それぞれ、ブロック７０３と、ブロック７０２との水平方向の位置の差及び垂直方向の位置の差である。
【００７１】
符号化対象ピクチャＢ４と過去参照ピクチャＰ７間の時間間隔tbは、参照ピクチャＰ８と過去参照ピクチャＰ７間の時間間隔tdよりも長い。
そこで、基準ベクトル決定部１９は、ブロック７０３についての動きベクトルMV2(Vx2,Vy2)を動きベクトル記憶部１７から読み込む。そして基準ベクトル決定部１９は、（３）式に従って基準ベクトルmvCol(Vx,Vy)を算出する。ここで時間間隔taは、MV2(Vx2,Vy2)の参照先のブロック７０４が含まれるピクチャＰ１と過去参照ピクチャＰ７との時間間隔であり、時間間隔td'は、ピクチャＰ１と参照ピクチャＰ８間の時間間隔である。すなわち、基準ベクトルの参照先のピクチャがピクチャＰ１となり、基準ベクトルの参照元のピクチャがＰ８となる。なお、Vx2、Vy2は、それぞれ、ブロック７０４と、ブロック７０３との水平方向の位置の差及び垂直方向の位置の差である。
【００７２】
このように基準ベクトルを算出することによっても、基準ベクトルの参照元のピクチャＰ８と参照先のピクチャＰ１間の時間間隔tdは、符号化対象ピクチャＢ４と基準ベクトルの参照先のピクチャＰ１間の時間間隔tbよりも長くなる。このため、ブロック７０１に写っている像とブロック７０２、７０４に写っている像が同じ方向及び同じ移動量で動いていると、基準ベクトルmvColから算出される動きベクトルは、高い動き予測精度を持つことができる。
なお、この実施形態においても、ブロック７０１の二つの動きベクトルmvL0、mvL1は、それぞれ（１）式により決定される。ただし、動きベクトルmvL0は、ピクチャＰ１を参照先とする動きベクトルである。また、動きベクトルmvL1は、ピクチャＰ８を参照先とする動きベクトルである。
【００７３】
さらに、符号化対象の動画像データに含まれるピクチャがフィールドである場合、同一フレームに含まれる異なるパリティの２枚のピクチャにおいて、そのフレームの同じ領域に対応するマクロブロックに写っている像は類似する可能性が高い。そこで、図７に示されたように、過去参照ピクチャと参照ピクチャが同一フレームに含まれる場合、基準ベクトル決定部１９は、過去参照ピクチャ上で参照ブロックと同一の位置にあるマクロブロックを特定する。そして基準ベクトル決定部１９は、特定されたマクロブロックについての動きベクトルを、基準ベクトルの決定に用いる動きベクトルMV2(Vx2,Vy2)としてもよい。
【００７４】
また、符号化対象となる動画像データに含まれる何れかのBピクチャが、他のPピクチャまたはBピクチャをインター符号化するために参照されるピクチャであってもよい。このような場合、符号化対象となる動画像データに含まれるピクチャがフレームであっても、符号化対象ピクチャと過去参照ピクチャ間の時間間隔tbが、過去参照ピクチャと参照ピクチャ間の時間間隔tdよりも長くなることがある。
【００７５】
図８は、他の例による、時間ダイレクトモードにおいて、符号化対象ピクチャと参照ピクチャ間の時間間隔が、参照ピクチャと過去参照ピクチャ間の時間間隔よりも長い場合における基準ベクトル及び動きベクトルを示す図である。
図８において、ピクチャＰ１及びＰ７はPピクチャであり、一方、ピクチャＢ２〜Ｂ６はBピクチャである。このうち、ピクチャＢ３及びＢ５は、他のBピクチャが参照可能なピクチャである。符号化順序は、Ｐ０→Ｐ７→Ｂ３→Ｂ５→Ｂ２→Ｂ４→Ｂ６の順序であるとする。この例では、BピクチャであるピクチャＢ２が符号化対象ピクチャであり、ブロック８０１が着目するブロックである。このとき、ピクチャＰ１、Ｂ３、Ｂ５及びＰ７については符号化が完了している。
【００７６】
図８に示された例では、参照ピクチャは、ピクチャＢ２の直前に符号化されたピクチャＢ５となり、そして参照ピクチャ上で着目するブロック８０１と同じ位置にあるブロック８０２が参照ブロックとなる。そしてブロック８０１に対する基準ベクトルを決定するために、参照ブロック８０２の動きベクトルMV1(Vx1,Vy1)が参照される。この動きベクトルMV1(Vx1,Vy1)は、ピクチャＢ２よりも時間的に後のピクチャＢ３上のブロック８０３を参照している。そのため、ピクチャＢ３が過去参照ピクチャとなる。なお、Vx1、Vy1は、それぞれ、ブロック８０３と、ブロック８０２との水平方向の位置の差及び垂直方向の位置の差である。
なお、ピクチャＢ５はBピクチャであるため、ブロック８０２に対して二つの動きベクトルが規定されている可能性がある。この場合、基準ベクトルを決定するための動きベクトルMV1(Vx1,Vy1)として、例えば、H.264 MPEG-4 AVCに規定される、List0に示される動きベクトルが優先的に利用される。そして、例えば、予測モード判定の結果などにより、List0に示される動きベクトルが存在しない場合に、List1に示される動きベクトルが動きベクトルMV1(Vx1,Vy1)として利用される。
【００７７】
このように、符号化対象ピクチャＢ２よりも参照ピクチャＢ５と過去参照ピクチャＢ３の両方が時間的に後にある場合、符号化対象ピクチャＢ２と参照ピクチャＢ５間の時間間隔tb2は、過去参照ピクチャＢ３と参照ピクチャＢ５間の時間間隔tdよりも長い。
そこで、ピクチャ間隔比較部１８は、参照ピクチャと過去参照ピクチャの両方が、符号化対象ピクチャよりも時間的に後側にある場合、tb2がtdよりも長いとの判定結果を基準ベクトル決定部１９へ通知してもよい。
また、ピクチャ間隔比較部１８は、参照ピクチャと過去参照ピクチャの両方が、符号化対象ピクチャよりも時間的に前側にある場合、tbがtdよりも長いとの判定結果を基準ベクトル決定部１９へ通知してもよい。
この場合も、基準ベクトル決定部１９は、（２）式または（４）式に従って基準ベクトルmvCol(Vx,Vy)を求めることができる。
【００７８】
図９は、上記の各実施形態による動画像符号化装置により符号化された動画像データを復号する動画像復号装置の概略構成図である。動画像復号装置３は、可変長復号部３１、予測モード判定部３２、動きベクトル記憶部３３、ピクチャ間隔比較部３４、基準ベクトル決定部３５、ダイレクト動きベクトル計算部３６、予測画像生成部３７、復号部３８、記憶部３９及び結合部４０を有する。
動画像復号装置３が有するこれらの各部は、それぞれ別個の回路として形成される。あるいは動画像復号装置３が有するこれらの各部は、その各部に対応する回路が集積された一つの集積回路として動画像復号装置３に実装されてもよい。さらに、動画像復号装置３が有するこれらの各部は、動画像復号装置３が有するプロセッサ上で実行されるコンピュータプログラムにより実現される、機能モジュールであってもよい。
【００７９】
動画像復号装置３は、符号化された動画像データを含むデータストリームを、例えば、通信ネットワーク及び動画像復号装置３を通信ネットワークに接続するためのインターフェース回路を介して取得する。そして動画像復号装置３は、そのデータストリームを、図示しないバッファメモリに記憶させる。動画像復号装置３は、符号化された動画像データを、符号化されたマクロブロック単位でバッファメモリから読み出し、そのマクロブロック単位のデータを可変長復号部３１へ入力する。
【００８０】
可変長復号部３１は、マクロブロック単位で符号化されているデータを可変長復号する。そして可変長復号部３１は、量子化された予測誤差信号である量子化信号を再生する。また可変長復号部３１は、着目するマクロブロックが、時間ダイレクトモード以外のインター符号化モードによってインター符号化されたマクロブロックであれば、そのマクロブロックについての動きベクトルを可変長復号する。そして可変長復号部３１は、再生した動きベクトルを予測画像生成部３７及び動きベクトル記憶部３３へ渡す。また可変長復号部３１は、量子化信号を復号部３８へ渡す。
【００８１】
予測モード判定部３２は、符号化された動画像データに含まれるヘッダ情報から、復号対象ピクチャの着目するマクロブロックに対して適用された予測モードを特定する。そして予測モード判定部３２は、適用された予測モードが時間ダイレクトモードである場合、ピクチャ間隔比較部３４、基準ベクトル決定部３５及びダイレクト動きベクトル計算部３６に、時間ダイレクトモード用の動きベクトルを求めさせる。
また予測モード判定部３２は、着目するマクロブロックに対して適用された予測モードを予測画像生成部３７へ通知する。
【００８２】
動きベクトル記憶部３３は、動画像符号化装置１の動きベクトル記憶部１７と同様の機能を有する。また、ピクチャ間隔比較部３４、基準ベクトル決定部３５及びダイレクト動きベクトル計算部３６は、それぞれ、動画像符号化装置１のピクチャ間隔比較部１８、基準ベクトル決定部１９及びダイレクト動きベクトル計算部２０の機能と同様の機能を有する。
【００８３】
すなわち、動きベクトル記憶部３３は、時間ダイレクトモードにおける基準ベクトルの決定に利用される可能性のある、複数枚のピクチャ分の再生された動きベクトルを記憶する。
ピクチャ間隔比較部３４は、復号対象のピクチャにおいて着目するマクロブロックと、直前に復号されている参照ピクチャ上で対応する位置にある参照ブロックを参照元とする動きベクトルを動きベクトル記憶部３３から読み出し、基準候補ベクトルとする。そしてピクチャ間隔比較部３４は、基準候補ベクトルの参照先のマクロブロックが含まれるピクチャを過去参照ピクチャとする。そしてピクチャ間隔比較部３４は、復号対象ピクチャと参照ピクチャまたは過去参照ピクチャ間の時間間隔が、参照ピクチャと過去参照ピクチャ間の時間間隔よりも長いか否か判定する。なお、その判定方法の詳細は、動画像符号化装置１のピクチャ間隔比較部１８についての説明を参照されたい。そしてピクチャ間隔比較部３４は、その判定結果を基準ベクトル決定部３５に通知する。
なお、参照ブロックは、参照ピクチャ上で着目するマクロブロックと同じ位置にあるマクロブロックとすることができる。あるいは、参照ブロックは、基準候補ベクトルの延長線上に着目するマクロブロックが存在する参照ピクチャ上のマクロブロックとしてもよい。
【００８４】
基準ベクトル決定部３５は、復号対象ピクチャと参照ピクチャ及び過去参照ピクチャ間の時間間隔が、参照ピクチャと過去参照ピクチャ間の時間間隔よりも短い場合、基準候補ベクトルを基準ベクトルとする。
一方、復号対象ピクチャと参照ピクチャまたは過去参照ピクチャ間の時間間隔が、参照ピクチャと過去参照ピクチャ間の時間間隔よりも長い場合、基準ベクトル決定部３５は、基準候補ベクトルの参照先のマクロブロックを参照元とする動きベクトルMV2(Vx2,Vy2)を動きベクトル記憶部３３から読み出す。そして基準ベクトル決定部３５は、動きベクトルMV2(Vx2,Vy2)に基づいて、上記の（２）式または（４）式に従って基準ベクトルを決定する。基準ベクトル決定部３５は、基準ベクトルをダイレクト動きベクトル計算部３６へ渡す。
【００８５】
ダイレクト動きベクトル計算部３６は、基準ベクトルと上記の（１）式に従って、二つの動きベクトルを算出する。そしてダイレクト動きベクトル計算部３６は、算出した二つの動きベクトルを予測画像生成部３７へ渡す。
【００８６】
予測画像生成部３７は、動画像符号化装置１の予測画像生成部２２の機能と同様の機能を有する。そして予測画像生成部３７は、復号対象ピクチャ上の着目するマクロブロックについて適用された予測モードに応じて、予測画像を生成する。
予測画像生成部３７は、記憶部３９から、着目するマクロブロックを符号化する際に用いられた参照画像を読み込む。そして適用された予測モードが前方向予測モードまたは後方向予測モードなど、インター符号化モードの何れかであれば、予測画像生成部３７は動きベクトルを用いてその参照画像を動き補償することにより予測画像を生成する。その際、予測モードが時間ダイレクトモードであれば、予測画像生成部３７はダイレクト動きベクトル計算部３６により算出された二つの動きベクトルを用いて動き補償を行う。
また、適用された予測モードがイントラ符号化モードであれば、予測画像生成部３７は、そのイントラ符号化モードのうちの適用された予測画像生成モードに従って参照画像から予測画像を生成する。
予測画像生成部３７は、生成した予測画像を復号部３８へ渡す。
【００８７】
復号部３８は、可変長復号部３１から受け取った量子化信号に、符号化された動画像データに含まれるヘッダ情報から取得した量子化パラメータにより決定された量子化幅に相当する所定数を乗算することにより逆量子化する。この逆量子化により、着目するマクロブロックの周波数信号、例えば、DCT係数の組が復元される。その後、復号部３８は、周波数信号を逆直交変換処理する。逆量子化処理及び逆直交変換処理を量子化信号に対して実行することにより予測誤差信号が再生される。
【００８８】
復号部３８は、インター符号化されるピクチャについて、動き補償された予測画像の各画素値に、その画素に対応する再生された予測誤差信号を加算する。一方、復号部３８は、イントラ符号化されるピクチャについて、既に符号化されたマクロブロックに基づいて生成された予測画像の各画素値に、その画素に対応する、再生された予測誤差信号を加算する。これらの処理を着目するマクロブロックについて実行することにより、復号部３８は、着目するマクロブロックを再生できる。そして復号部３８は、再生されたマクロブロックの符号化順序に従って結合することにより、ピクチャを再生する。復号部３８は、再生されたピクチャを記憶部３９に記憶させる。
【００８９】
記憶部３９は、例えば、フレームメモリを有する。そして記憶部３９は、復号部３８から受け取ったピクチャを一時的に記憶する。そして記憶部３９は、予測画像生成部３７にそのピクチャを参照画像として供給する。また記憶部３９は、そのピクチャを結合部４０へ出力する。なお、記憶部３９は、予め定められた所定枚数分のピクチャを記憶し、記憶されているデータ量がその所定枚数に相当する量を超えると、符号化順序が古いピクチャから順に破棄する。
【００９０】
結合部４０は、再生されたピクチャを時間順に再配置して、動画像データを再生する。結合部４０は、再生した動画像データを出力する。出力された動画像データは、例えば、図示しない記憶装置に記憶される。あるいは、出力された動画像データは、動画像復号装置３と接続された、図示しない表示装置に表示される。
【００９１】
図１０は、動画像復号装置３により実行される、動画像復号処理の動作フローチャートである。動画像復号装置３は、マクロブロックごとに図１０に示される動画像復号処理を実行する。
可変長復号部３１は、マクロブロック単位で符号化されているデータを可変長復号することにより、量子化された予測誤差信号及び動きベクトルを再生する（ステップＳ２０１）。可変長復号部３１は、再生した動きベクトルを予測画像生成部３７及び動きベクトル記憶部３３へ渡す。また可変長復号部３１は、量子化された予測誤差信号を復号部３８へ渡す。
また、予測モード判定部３２は、符号化された動画像データに含まれるヘッダ情報から、復号対象ピクチャの着目するマクロブロックに対して適用された予測モードを特定する（ステップＳ２０２）。そして予測モード判定部３２は、着目するマクロブロックに対して適用された予測モードを予測画像生成部３７へ通知する。
また予測モード判定部３２は、適用された予測モードが時間ダイレクトモードか否か判定する（ステップＳ２０３）。適用された予測モードが時間ダイレクトモードである場合（ステップＳ２０３−Ｙｅｓ）、予測モード判定部３２は、ピクチャ間隔比較部３４、基準ベクトル決定部３５及びダイレクト動きベクトル計算部３６に、時間ダイレクトモード用の動きベクトルを求めさせる。
【００９２】
そこでピクチャ間隔比較部３４は、動きベクトル記憶部３９から、着目するマクロブロックと参照ピクチャ上の対応する位置にある参照ブロックを参照元とする動きベクトルを読み出し、その動きベクトルを基準候補ベクトルMV1(Vx1,Vy1)とする。そしてピクチャ間隔比較部３４は、基準候補ベクトルMV1(Vx1,Vy1)の参照元の参照ピクチャ及び参照先の過去参照ピクチャ間の時間間隔tdを算出する（ステップＳ２０４）。また、ピクチャ間隔比較部３４は、着目するマクロブロックが含まれる復号対象ピクチャと過去参照ピクチャ間の時間間隔tbあるいは復号対象ピクチャと参照ピクチャ間の時間間隔tb2を算出する（ステップＳ２０５）。そしてピクチャ間隔比較部３４は、時間間隔tbあるいはtb2が時間間隔tdよりも長いか否か判定する（ステップＳ２０６）。そしてピクチャ間隔比較部３４は、時間間隔tbあるいはtb2が時間間隔tdよりも長いか否かの判定結果を基準ベクトル決定部３５に通知する。
【００９３】
時間間隔tb及びtb2が時間間隔tdよりも短い場合（ステップＳ２０６−Ｎｏ）、基準ベクトル決定部３５は、基準候補ベクトルMV1(Vx1,Vy1)を基準ベクトルmvCol(Vx,Vy)とする（ステップＳ２０７）。
一方、時間間隔tbあるいはtb2が時間間隔tdよりも長い場合（ステップＳ２０６−Ｙｅｓ）、基準ベクトル決定部３５は、基準候補ベクトルMV1(Vx1,Vy1)の参照先のマクロブロックについての動きベクトルMV2(Vx2,Vy2)に基づいて基準ベクトルmvCol(Vx,Vy)を算出する（ステップＳ２０８）。具体的には、基準ベクトル決定部３５は、（２）式または（４）式に従って基準ベクトルmvCol(Vx,Vy)を算出する。また、参照ブロックを基準候補ベクトルMV1(Vx1,Vy1)を用いて動き補償することにより得られる移動ブロックが、過去参照ピクチャ上の何れのマクロブロックとも完全に一致しないことがある。この場合、基準ベクトル決定部３５は、過去参照ピクチャ上の複数のマクロブロックのうち、移動ブロックの中心位置が含まれるマクロブロックの動きベクトルを動きベクトルMV2(Vx2,Vy2)とする。基準ベクトル決定部３５は、過去参照ピクチャ上の複数のマクロブロックのうち、移動ブロックと少なくとも一部が重なる領域を持つマクロブロックの動きベクトルを、その領域の面積に応じて加重平均することにより、動きベクトルMV2(Vx2,Vy2)を求めてもよい。
また、参照ブロックが複数のサブブロックに分割されている場合、基準ベクトル決定部３５は、サブブロックごとに基準ベクトルを求める。
ステップＳ２０７またはＳ２０８の後、基準ベクトル決定部３５は、求めた基準ベクトル及び基準ベクトルの参照先及び参照元のピクチャの番号をダイレクト動きベクトル計算部３６へ渡す。
【００９４】
ダイレクト動きベクトル計算部３６は、基準ベクトルの参照先及び参照元のピクチャ間の時間間隔tdと、復号対象ピクチャと基準ベクトルの参照先のピクチャ間の時間間隔tbを算出する。そしてダイレクト動きベクトル計算部３６は、基準ベクトルと、時間間隔tbとtdとの比(tb/td)を（１）式に入力することにより、二つの動きベクトルを算出する（ステップＳ２０９）。ダイレクト動きベクトル計算部３６は、求めた二つの動きベクトルを予測画像生成部３７へ渡す。
【００９５】
ステップＳ２０９の後、あるいは適用された予測モードが時間ダイレクトモードでない場合（ステップＳ２０３−Ｎｏ）、予測画像生成部３７は、記憶部３９から、既に復号されたピクチャを参照画像として読み出す。そして予測画像生成部３７は、参照画像に基づいて、着目マクロブロックについて適用された予測モードに応じた予測画像を生成する（ステップＳ２１０）。予測画像生成部３７は、生成した予測画像を復号部３８へ渡す。
【００９６】
復号部３８は、量子化信号を逆量子化及び逆直交変換して得られた各画素の予測誤差信号を、予測画像の各画素に加えることにより着目マクロブロックを再生する（ステップＳ２１１）。そして復号部３８は、再生された着目マクロブロックをマクロブロックの符号化順序に従って順次結合することにより、ピクチャを再生する（ステップＳ２１２）。復号部３８は、再生したピクチャを記憶部３９に記憶する。
結合部４０は、再生されたピクチャを時間順に並べ替えて出力する。
そして動画像復号装置３は、動画像復号処理を終了する。
【００９７】
なお、動画像符号化装置１の各部の機能をプロセッサ上で実行可能なコンピュータプログラムは、コンピュータによって読み取り可能な媒体に記録された形で提供されてもよい。同様に、動画像復号装置３の各部の機能をプロセッサ上で実行可能なコンピュータプログラムは、コンピュータによって読み取り可能な媒体に記録された形で提供されてもよい。
【００９８】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【００９９】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
（付記１）
動画像データに含まれるピクチャを動き補償を用いて符号化する動画像符号化装置であって、
前記動画像データに含まれる複数の符号化済みピクチャのそれぞれについて求められた動き補償用の動きベクトルを記憶する記憶部と、
前記符号化済みピクチャのうちの第１の参照ピクチャ上で、前記動画像データに含まれる符号化対象ピクチャを分割した複数のブロックのうちの第１のブロックと対応する位置にある第１の参照ブロックを参照元とする第１の動きベクトルを基準候補ベクトルとして前記記憶部から読み出し、当該基準候補ベクトルの参照先である第２の参照ブロックが含まれる第２の参照ピクチャまたは前記第１の参照ピクチャと前記符号化対象ピクチャ間の第１の時間間隔が、前記第１の参照ピクチャと前記第２の参照ピクチャ間の第２の時間間隔よりも長いか否か判定するピクチャ間隔比較部と、
前記第１の時間間隔が前記第２の時間間隔よりも短い場合に、前記基準候補ベクトルを前記第１のブロックに対する基準ベクトルとし、かつ前記第１の参照ピクチャを当該基準ベクトルの参照元ピクチャ、前記第２の参照ピクチャを当該基準ベクトルの参照先ピクチャとし、一方、前記第１の時間間隔が前記第２の時間間隔よりも長い場合に、前記第２の参照ブロックを参照元とする第２の動きベクトルを前記記憶部から読み出し、当該第２の動きベクトルの参照先のブロックが含まれる第３の参照ピクチャを前記参照先ピクチャとし、前記第１の参照ピクチャを前記参照元ピクチャとする前記基準ベクトルを算出する基準ベクトル決定部と、
前記基準ベクトルを、前記参照先ピクチャと前記参照元ピクチャ間の時間間隔に対する前記参照先ピクチャと前記符号化対象ピクチャ間の時間間隔の比に応じて分割することにより、前記第１のブロックに対する第１及び第２のダイレクト動きベクトルを算出するダイレクト動きベクトル計算部と、
前記第１のダイレクト動きベクトルに従って前記参照先ピクチャを動き補償することにより第１の動き補償画像を作成するとともに、前記第２のダイレクト動きベクトルに従って前記参照元ピクチャを動き補償することにより第２の動き補償画像を作成し、前記第１の動き補償画像と前記第２の動き補償画像に基づいて前記第１のブロックに対する予測画像を生成する予測画像生成部と、
前記予測画像と前記第１のブロックの対応する画素の差を表す誤差信号を符号化する符号化部と、
を有する動画像符号化装置。
（付記２）
前記基準ベクトル決定部は、前記第１の時間間隔が前記第２の時間間隔よりも長い場合、前記基準候補ベクトルに前記第２の動きベクトルを加算することにより、前記基準ベクトルを算出する、付記１に記載の動画像符号化装置。
（付記３）
前記基準ベクトル決定部は、前記第１の時間間隔が前記第２の時間間隔よりも長い場合、前記第２の動きベクトルに、前記第１の時間間隔に対する前記第３の参照ピクチャと前記第１の参照ピクチャ間の時間間隔の比を乗じることにより、前記基準ベクトルを算出する、付記１に記載の動画像符号化装置。
（付記４）
前記時間間隔比較部は、前記第１の参照ピクチャ及び前記第２の参照ピクチャが同一フレームに含まれるフィールドである場合、前記第１の時間間隔が前記第２の時間間隔よりも長いと判定する、付記１〜３の何れか一項に記載の動画像符号化装置。
（付記５）
前記時間間隔比較部は、前記第１の参照ピクチャと前記第２の参照ピクチャの両方が、前記符号化対象ピクチャよりも時間的に後のピクチャである場合、または前記第１の参照ピクチャと前記第２の参照ピクチャの両方が、前記符号化対象ピクチャよりも時間的に前のピクチャである場合、前記第１の時間間隔が前記第２の時間間隔よりも長いと判定する、付記１〜３の何れか一項に記載の動画像符号化装置。
（付記６）
前記基準ベクトル決定部は、前記第１の時間間隔が前記第２の時間間隔よりも長い場合、前記第１の参照ブロックを前記基準候補ベクトルで空間的に移動させた移動ブロックの中心位置が含まれる、前記第２の参照ピクチャ上のブロックを、前記第２の参照ブロックとする、付記１〜５の何れか一項に記載の動画像符号化装置。
（付記７）
前記基準ベクトル決定部は、前記第１の時間間隔が前記第２の時間間隔よりも長い場合、前記第１の参照ブロックを前記基準候補ベクトルで空間的に移動させた移動ブロックと重なる領域を持つ、前記第２の参照ピクチャ上の複数のブロックのそれぞれについての動きベクトルを前記記憶部から読み出し、読み出したそれぞれの動きベクトルを、当該動きベクトルに対応するブロックと前記移動ブロックとが重なる領域の面積に応じて加重平均することにより、前記第２の動きベクトルを算出する、付記１〜５の何れか一項に記載の動画像符号化装置。
（付記８）
動画像データに含まれるピクチャを動き補償を用いて符号化する動画像符号化方法であって、
前記動画像データに含まれる符号化済みピクチャのうちの第１の参照ピクチャ上で、前記動画像データに含まれる符号化対象ピクチャを分割した複数のブロックのうちの第１のブロックと対応する位置にある第１の参照ブロックを参照元とする第１の動きベクトルを基準候補ベクトルとして、前記動画像データに含まれる複数の符号化済みピクチャのそれぞれについて求められた動き補償用の動きベクトルを記憶する記憶部から読み出し、当該基準候補ベクトルの参照先である第２の参照ブロックが含まれる第２の参照ピクチャまたは前記第１の参照ピクチャと前記符号化対象ピクチャ間の第１の時間間隔が、前記第１の参照ピクチャと前記第２の参照ピクチャ間の第２の時間間隔よりも長いか否か判定し、
前記第１の時間間隔が前記第２の時間間隔よりも短い場合に、前記基準候補ベクトルを前記第１のブロックに対する基準ベクトルとし、かつ前記第１の参照ピクチャを当該基準ベクトルの参照元ピクチャ、前記第２の参照ピクチャを当該基準ベクトルの参照先ピクチャとし、
前記第１の時間間隔が前記第２の時間間隔よりも長い場合に、前記第２の参照ブロックを参照元とする第２の動きベクトルを前記記憶部から読み出し、当該第２の動きベクトルの参照先のブロックが含まれる第３の参照ピクチャを前記参照先ピクチャとし、前記第１の参照ピクチャを前記参照元ピクチャとする前記基準ベクトルを算出し、
前記基準ベクトルを、前記参照先ピクチャと前記参照元ピクチャ間の時間間隔に対する前記参照先ピクチャと前記符号化対象ピクチャ間の時間間隔の比に応じて分割することにより、前記第１のブロックに対する第１及び第２のダイレクト動きベクトルを算出し、
前記第１のダイレクト動きベクトルに従って前記参照先ピクチャを動き補償することにより第１の動き補償画像を作成するとともに、前記第２のダイレクト動きベクトルに従って前記参照元ピクチャを動き補償することにより第２の動き補償画像を作成し、前記第１の動き補償画像と前記第２の動き補償画像に基づいて前記第１のブロックに対する予測画像を生成し、
前記予測画像と前記第１のブロックの対応する画素の差を表す誤差信号を符号化する、
ことを含む動画像符号化方法。
（付記９）
動画像データに含まれるピクチャを動き補償を用いて符号化する動画像符号化用コンピュータプログラムであって、
前記動画像データに含まれる符号化済みピクチャのうちの第１の参照ピクチャ上で、前記動画像データに含まれる符号化対象ピクチャを分割した複数のブロックのうちの第１のブロックと対応する位置にある第１の参照ブロックを参照元とする第１の動きベクトルを基準候補ベクトルとして、前記動画像データに含まれる複数の符号化済みピクチャのそれぞれについて求められた動き補償用の動きベクトルを記憶する記憶部から読み出し、当該基準候補ベクトルの参照先である第２の参照ブロックが含まれる第２の参照ピクチャまたは前記第１の参照ピクチャと前記符号化対象ピクチャ間の第１の時間間隔が、前記第１の参照ピクチャと前記第２の参照ピクチャ間の第２の時間間隔よりも長いか否か判定し、
前記第１の時間間隔が前記第２の時間間隔よりも短い場合に、前記基準候補ベクトルを前記第１のブロックに対する基準ベクトルとし、かつ前記第１の参照ピクチャを当該基準ベクトルの参照元ピクチャ、前記第２の参照ピクチャを当該基準ベクトルの参照先ピクチャとし、
前記第１の時間間隔が前記第２の時間間隔よりも長い場合に、前記第２の参照ブロックを参照元とする第２の動きベクトルを前記記憶部から読み出し、当該第２の動きベクトルの参照先のブロックが含まれる第３の参照ピクチャを前記参照先ピクチャとし、前記第１の参照ピクチャを前記参照元ピクチャとする前記基準ベクトルを算出し、
前記基準ベクトルを、前記参照先ピクチャと前記参照元ピクチャ間の時間間隔に対する前記参照先ピクチャと前記符号化対象ピクチャ間の時間間隔の比に応じて分割することにより、前記第１のブロックに対する第１及び第２のダイレクト動きベクトルを算出し、
前記第１のダイレクト動きベクトルに従って前記参照先ピクチャを動き補償することにより第１の動き補償画像を作成するとともに、前記第２のダイレクト動きベクトルに従って前記参照元ピクチャを動き補償することにより第２の動き補償画像を作成し、前記第１の動き補償画像と前記第２の動き補償画像に基づいて前記第１のブロックに対する予測画像を生成し、
前記予測画像と前記第１のブロックの対応する画素の差を表す誤差信号を符号化する、
ことをコンピュータに実行させるコンピュータプログラム。
（付記１０）
符号化された動画像データを復号する動画像復号装置であって、
前記動画像データに含まれる、複数の復号済みピクチャのそれぞれについて求められた動き補償用の動きベクトルを記憶する記憶部と、
前記動画像データに含まれる復号対象ピクチャを分割した複数のブロックのうちの第１のブロックに対応する符号化データを可変長復号することにより、前記第１のブロックに対応する量子化信号を再生する可変長復号部と、
前記復号済みピクチャのうちの第１の参照ピクチャ上で、前記第１のブロックと対応する位置にある第１の参照ブロックを参照元とする第１の動きベクトルを基準候補ベクトルとして前記記憶部から読み出し、当該基準候補ベクトルの参照先である第２の参照ブロックが含まれる第２の参照ピクチャまたは前記第１の参照ピクチャと前記復号対象ピクチャ間の第１の時間間隔が、前記第１の参照ピクチャと前記第２の参照ピクチャ間の第２の時間間隔よりも長いか否か判定するピクチャ間隔比較部と、
前記第１の時間間隔が前記第２の時間間隔よりも短い場合に、前記基準候補ベクトルを前記第１のブロックに対する基準ベクトルとし、かつ前記第１の参照ピクチャを当該基準ベクトルの参照元ピクチャ、前記第２の参照ピクチャを当該基準ベクトルの参照先ピクチャとし、一方、前記第１の時間間隔が前記第２の時間間隔よりも長い場合に、前記第２の参照ブロックを参照元とする第２の動きベクトルを前記記憶部から読み出し、当該第２の動きベクトルの参照先のブロックが含まれる第３の参照ピクチャを前記参照先ピクチャとし、前記第１の参照ピクチャを前記参照元ピクチャとする前記基準ベクトルを算出する基準ベクトル決定部と、
前記基準ベクトルを、前記参照先ピクチャと前記参照元ピクチャ間の時間間隔に対する前記参照先ピクチャと前記復号対象ピクチャ間の時間間隔の比に応じて分割することにより、前記第１のブロックに対する第１及び第２のダイレクト動きベクトルを算出するダイレクト動きベクトル計算部と、
前記第１のダイレクト動きベクトルに従って前記参照先ピクチャを動き補償することにより第１の動き補償画像を作成するとともに、前記第２のダイレクト動きベクトルに従って前記参照元ピクチャを動き補償することにより第２の動き補償画像を作成し、前記第１の動き補償画像と前記第２の動き補償画像に基づいて前記第１のブロックに対する予測画像を生成する予測画像生成部と、
前記第１のブロックについての前記量子化信号を逆量子化及び逆直交変換することにより前記第１のブロックに含まれる各画素の予測誤差信号を再生し、当該各画素の予測誤差信号を前記予測画像の対応する画素の値に加算することにより、前記第１のブロックを再生する復号部と、
を有する動画像復号装置。
（付記１１）
符号化された動画像データを復号する動画像復号方法であって、
前記動画像データに含まれる、複数の復号済みピクチャのそれぞれについて求められた動き補償用の動きベクトルを記憶部に記憶させ、
前記動画像データに含まれる復号対象ピクチャを分割した複数のブロックのうちの第１のブロックに対応する符号化データを可変長復号することにより、前記第１のブロックに対応する量子化信号を再生し、
前記復号済みピクチャのうちの第１の参照ピクチャ上で、前記第１のブロックと対応する位置にある第１の参照ブロックを参照元とする第１の動きベクトルを基準候補ベクトルとして前記記憶部から読み出し、当該基準候補ベクトルの参照先である第２の参照ブロックが含まれる第２の参照ピクチャまたは前記第１の参照ピクチャと前記復号対象ピクチャ間の第１の時間間隔が、前記第１の参照ピクチャと前記第２の参照ピクチャ間の第２の時間間隔よりも長いか否か判定し、
前記第１の時間間隔が前記第２の時間間隔よりも短い場合に、前記基準候補ベクトルを前記第１のブロックに対する基準ベクトルとし、かつ前記第１の参照ピクチャを当該基準ベクトルの参照元ピクチャ、前記第２の参照ピクチャを当該基準ベクトルの参照先ピクチャとし、
前記第１の時間間隔が前記第２の時間間隔よりも長い場合に、前記第２の参照ブロックを参照元とする第２の動きベクトルを前記記憶部から読み出し、当該第２の動きベクトルの参照先のブロックが含まれる第３の参照ピクチャを前記参照先ピクチャとし、前記第１の参照ピクチャを前記参照元ピクチャとする前記基準ベクトルを算出し、
前記基準ベクトルを、前記参照先ピクチャと前記参照元ピクチャ間の時間間隔に対する前記参照先ピクチャと前記復号対象ピクチャ間の時間間隔の比に応じて分割することにより、前記第１のブロックに対する第１及び第２のダイレクト動きベクトルを算出し、
前記第１のダイレクト動きベクトルに従って前記参照先ピクチャを動き補償することにより第１の動き補償画像を作成するとともに、前記第２のダイレクト動きベクトルに従って前記参照元ピクチャを動き補償することにより第２の動き補償画像を作成し、前記第１の動き補償画像と前記第２の動き補償画像に基づいて前記第１のブロックに対する予測画像を生成し、
前記第１のブロックについての前記量子化信号を逆量子化及び逆直交変換することにより前記第１のブロックに含まれる各画素の予測誤差信号を再生し、当該各画素の予測誤差信号を前記予測画像の対応する画素の値に加算することにより、前記第１のブロックを再生する、
ことを含む動画像復号方法。
（付記１２）
符号化された動画像データを復号する動画像復号用コンピュータプログラムであって、
前記動画像データに含まれる、複数の復号済みピクチャのそれぞれについて求められた動き補償用の動きベクトルを記憶部に記憶させ、
前記動画像データに含まれる復号対象ピクチャを分割した複数のブロックのうちの第１のブロックに対応する符号化データを可変長復号することにより、前記第１のブロックに対応する量子化信号を再生し、
前記復号済みピクチャのうちの第１の参照ピクチャ上で、前記第１のブロックと対応する位置にある第１の参照ブロックを参照元とする第１の動きベクトルを基準候補ベクトルとして前記記憶部から読み出し、当該基準候補ベクトルの参照先である第２の参照ブロックが含まれる第２の参照ピクチャまたは前記第１の参照ピクチャと前記復号対象ピクチャ間の第１の時間間隔が、前記第１の参照ピクチャと前記第２の参照ピクチャ間の第２の時間間隔よりも長いか否か判定し、
前記第１の時間間隔が前記第２の時間間隔よりも短い場合に、前記基準候補ベクトルを前記第１のブロックに対する基準ベクトルとし、かつ前記第１の参照ピクチャを当該基準ベクトルの参照元ピクチャ、前記第２の参照ピクチャを当該基準ベクトルの参照先ピクチャとし、
前記第１の時間間隔が前記第２の時間間隔よりも長い場合に、前記第２の参照ブロックを参照元とする第２の動きベクトルを前記記憶部から読み出し、当該第２の動きベクトルの参照先のブロックが含まれる第３の参照ピクチャを前記参照先ピクチャとし、前記第１の参照ピクチャを前記参照元ピクチャとする前記基準ベクトルを算出し、
前記基準ベクトルを、前記参照先ピクチャと前記参照元ピクチャ間の時間間隔に対する前記参照先ピクチャと前記復号対象ピクチャ間の時間間隔の比に応じて分割することにより、前記第１のブロックに対する第１及び第２のダイレクト動きベクトルを算出し、
前記第１のダイレクト動きベクトルに従って前記参照先ピクチャを動き補償することにより第１の動き補償画像を作成するとともに、前記第２のダイレクト動きベクトルに従って前記参照元ピクチャを動き補償することにより第２の動き補償画像を作成し、前記第１の動き補償画像と前記第２の動き補償画像に基づいて前記第１のブロックに対する予測画像を生成し、
前記第１のブロックについての前記量子化信号を逆量子化及び逆直交変換することにより前記第１のブロックに含まれる各画素の予測誤差信号を再生し、当該各画素の予測誤差信号を前記予測画像の対応する画素の値に加算することにより、前記第１のブロックを再生する、
ことをコンピュータに実行させるコンピュータプログラム。
【符号の説明】
【０１００】
１    動画像符号化装置
１０    符号化部
１１    予測誤差信号生成部
１２    直交変換・量子化部
１３    可変長符号化部
１４    復号部
１５    参照画像記憶部
１６    動きベクトル計算部
１７    動きベクトル記憶部
１８    ピクチャ間隔比較部
１９    基準ベクトル決定部
２０    ダイレクト動きベクトル計算部
２１    予測モード判定部
２２    予測画像生成部
３    動画像復号装置
３１    可変長符号化部
３２    予測モード判定部
３３    動きベクトル記憶部
３４    ピクチャ間隔比較部
３５    基準ベクトル決定部
３６    ダイレクト動きベクトル計算部
３７    予測画像生成部
３８    復号部
３９    記憶部
４０    結合部
【図１】
2011199362.tif 000007
【図２】
2011199362.tif 000008
【図３】
2011199362.tif 000009
【図４】
2011199362.tif 000010
【図５】
2011199362.tif 000011
【図６】
2011199362.tif 000012
【図７】
2011199362.tif 000013
【図８】
2011199362.tif 000014
【図９】
2011199362.tif 000015
【図１０】
2011199362.tif 000016