(57)【要約】【課題】双方向予測モードに従って符号化されるブロックについて、動きベクトルの符号化データ量を抑制可能な動画像符号化装置を提供する。【解決手段】動画像符号化装置１は、第１の方向についての動きベクトルを予測する第１の予測ベクトルの候補を選択し、第２の方向についての動きベクトルを予測する第２の予測ベクトルの候補を選択する予測ベクトル選択部１５と、第１の予測ベクトルの候補のうちで第１の予測ベクトルを特定する第１の選択情報と、第２の予測ベクトルの候補のうちで第２の予測ベクトルを特定する第２の選択情報とを設定する選択情報設定部１７と、第１及び第２の選択情報を可変長符号化する可変長符号化部１８とを有する。そして動画像符号化装置１は、第１の予測ベクトルに対応するブロックについての第２の方向の動きベクトルから求められる第２の予測ベクトルの候補を第２の予測ベクトルとする第２の選択情報に所定の符号を割り当てる。【選択図】図２
2014143650.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）が広く利用されている。
【０００３】
このような符号化方式では、符号化対象のピクチャと、その前後のピクチャの情報を用いて、符号化対象のピクチャを符号化するインター符号化方法が採用されている。インター符号化方法では、符号化対象のピクチャが複数のブロックに分割される。そして、各ブロックに対して、ピクチャ間での動きを補償するために、前後の既に符号化されたピクチャを復号した参照ピクチャから最も類似している領域が、予測ブロックとしてブロックマッチングにより求められる。そして、予測ブロックと、符号化対象ブロックとの空間的な移動量が動きベクトルとして算出される。この動きベクトルを用いて、参照ピクチャ上の予測ブロックが特定され、予測ブロックと符号化対象ブロックとの差分情報と動きベクトルとが符号化される。そのため、インター符号化方法は、冗長な情報を取り除くことができるので、一般に、符号化対象の１枚のピクチャ内に含まれる情報のみを用いてそのピクチャを符号化するイントラ符号化方法の圧縮効率よりも高い圧縮効率を達成することができる。
また、動き補償の精度を向上するために、符号化対象ピクチャと複数の参照ピクチャとの間で算出された複数の動きベクトルを用いて動き補償する方法が開発されている（例えば、特許文献１を参照）。
【０００４】
動きベクトルは、各ブロックに対して作成される。特に、２枚以上の参照ピクチャを用いて予測ブロックが生成される双方向予測ピクチャに対しては、符号化対象ブロックについて複数の予測方向が設定される。そして予測方向ごとに動きベクトルが算出される。圧縮効率をさらに高めるために、動きベクトルの符号化に要する情報量を削減することが好ましい。そこで、ISO/IECとITU-Tにて検討されている、次世代動画像符号化方式(High Efficiency Video Coding、HEVC)では、符号化対象ブロック以前に符号化されたブロックの動きベクトルの中から、予測方向ごとに、予測ベクトルが選択される。そして、予測方向ごとに、動きベクトルと予測ベクトル間の要素ごとの差分値を表す差分ベクトルと、予測ベクトルを特定するための情報とが可変長符号化される（例えば、非特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−１３９９４８号公報
【非特許文献】
【０００６】
【非特許文献１】B. Bross他、「High Efficiency Video Coding (HEVC) text specification draft 8」、[online]、2012年7月、[2012年11月27日検索]、インターネット(URL:http://phenix.it-sudparis.eu/jct/doc_end_user/current_document.php?id=6465)
【発明の概要】
【発明が解決しようとする課題】
【０００７】
HEVCでは、予測ベクトルは、予測方向ごとに独立して決定される。そのため、双方向予測の対象となるブロックについては、予測方向ごとに、予測ベクトルを符号化するための情報が、それぞれ別個に符号化されるので、１方向のみの参照ピクチャが参照される場合よりも、予測ベクトルに関する符号化データの量が多くなる。
【０００８】
そこで、本明細書は、双方向予測モードに従って動き補償されることにより符号化されるブロックについて、動きベクトルの符号化データ量を抑制可能な動画像符号化装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの実施形態によれば、動画像データに含まれる符号化対象ピクチャが分割された複数のブロックのうちの符号化対象ブロックを双方向予測モードで符号化する動画像符号化装置が提供される。この動画像符号化装置は、符号化対象ブロックについて、符号化対象ピクチャから第１の方向にある第１の参照ピクチャ上の参照領域と符号化対象ピクチャとの間の空間的な移動量を表す第１の動きベクトルを算出し、符号化対象ピクチャから第２の方向にある第２の参照ピクチャ上の参照領域と符号化対象ピクチャとの間の空間的な移動量を表す第２の動きベクトルを算出する動きベクトル計算部と、符号化対象ブロックよりも前に符号化されたブロックについて算出された動きベクトルのなかから、第１の動きベクトルを予測する第１の予測ベクトルの複数の候補を選択し、かつ、第２の動きベクトルを予測する第２の予測ベクトルの複数の候補を選択する予測ベクトル選択部と、第１の動きベクトルと第１の予測ベクトルの候補のそれぞれとの間の誤差を表す第１の差分ベクトルを計算し、かつ、第２の動きベクトルと第２の予測ベクトルの候補のそれぞれとの間の誤差を表す第２の差分ベクトルを計算する予測誤差算出部と、第１の予測ベクトルの候補のなかから、第１の差分ベクトルの情報量が最小となる候補を第１の予測ベクトルとして特定する第１の選択情報を設定し、かつ、第２の予測ベクトルの候補のなかから、第２の差分ベクトルの情報量が最小となる候補を第２の予測ベクトルとして特定する第２の選択情報を設定する選択情報設定部と、第１の選択情報及び第２の選択情報を可変長符号化する可変長符号化部とを有する。そして動画像符号化装置は、第１の選択情報に基づいて、第２の予測ベクトルの複数の候補のうち、第１の予測ベクトルに対応する符号化されたブロックについての第２の方向における動きベクトルに基づいて決定された候補が第２の予測ベクトルであることを表す第２の選択情報に所定の符号を割り当てる。
【００１０】
また他の実施形態によれば、符号化された動画像データに含まれる復号対象ピクチャを分割した複数のブロックのうちの双方向予測符号化された復号対象ブロックを復号する動画像復号装置が提供される。この動画像復号装置は、復号対象ブロックに対応する符号化データを可変長復号することにより、復号対象ピクチャから第１の方向にある第１の参照ピクチャ上の参照領域と復号対象ピクチャとの間の空間的な移動量を表す第１の動きベクトルについての第１の予測ベクトルの選択情報と、第１の動きベクトルと第１の予測ベクトル間の第１の差分ベクトルとを再生するとともに、復号対象ピクチャから第２の方向にある第２の参照ピクチャ上の参照領域と復号対象ピクチャとの間の空間的な移動量を表す第２の動きベクトルについての第２の予測ベクトルの選択情報と、第２の動きベクトルと第２の予測ベクトル間の第２の差分ベクトルとを再生する可変長復号部と、復号対象ブロックよりも前に復号されたブロックについての動きベクトルのなかから第１の予測ベクトルの複数の候補を選択し、第１の選択情報に従って第１の予測ベクトルの複数の候補のなかから第１の予測ベクトルを特定し、復号対象ブロックよりも前に復号されたブロックについての動きベクトルのなかから第２の予測ベクトルの複数の候補を選択し、第１の選択情報に基づいて、第２の選択情報が、第２の予測ベクトルの複数の候補のうち、第１の予測ベクトルに対応する復号されたブロックについての第２の方向における動きベクトルに基づいて決定された候補が第２の予測ベクトルであることを表す所定の符号か否かを判定することにより、第２の予測ベクトルの複数の候補のなかから第２の予測ベクトルを特定する予測ベクトル選択部と、第１の予測ベクトルに第１の差分ベクトルを加算することにより第１の動きベクトルを復号し、かつ、第２の予測ベクトルに第２の差分ベクトルを加算することにより第２の動きベクトルを復号する動きベクトル復号部とを有する。
【００１１】
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を限定するものではないことを理解されたい。
【発明の効果】
【００１２】
本明細書に開示された動画像符号化装置は、双方向予測モードに従って動き補償されることにより符号化されるブロックについて、動きベクトルの符号化データ量を抑制できる。
【図面の簡単な説明】
【００１３】
【図１】（ａ）は、符号化対象ブロック及び周囲のブロックの動きベクトルとピクチャ上のオブジェクトとの関係を示す概念図である。（ｂ）は、同じオブジェクトが写っている二つのブロックについての、各方向の動きベクトルの一例を示す図である。
【図２】一つの実施形態に係る動画像符号化装置の概略構成図である。
【図３】予測ベクトルの候補リストの作成手順を示すフローチャートである。
【図４】空間予測ベクトルの登録順序を示す図である。
【図５】時間予測ベクトルの概念図である。
【図６】動画像符号化処理の動作フローチャートである。
【図７】L0方向について選択された予測ベクトルに対応するブロックに基づく、L1方向についての空間予測ブロックの登録順序の決定手順を示すフローチャートである。
【図８】変形例による、空間予測ベクトルの導出手順を示すフローチャートである。
【図９】実施形態または変形例による動画像符号化装置により符号化された動画像データを復号する動画像復号装置の概略構成図である。
【図１０】動画像復号処理の動作フローチャートである。
【図１１】実施形態またはその変形例による動画像符号化装置または動画像復号装置の各部の機能を実現するコンピュータプログラムが動作することにより、動画像符号化装置または動画像復号装置として動作するコンピュータの構成図である。
【発明を実施するための形態】
【００１４】
以下、図を参照しつつ、一つの実施形態による、動画像符号化装置について説明する。
発明者は、符号化対象ピクチャにおいて、剛体であるオブジェクトが写っている領域内の各ブロックについて、動きベクトルがほぼ同一になることに着目した。
【００１５】
図１（ａ）は、符号化対象ブロック及び周囲のブロックの動きベクトルとピクチャ上のオブジェクトとの関係を示す概念図である。符号化対象ブロック１００と、符号化対象ブロック１００の右上方に隣接するブロック１０１に、オブジェクト１１０が写っている。一方、符号化対象ブロック１００の左下方に隣接するブロック１０２には、オブジェクト１１０は写っていない。符号化対象ブロック１００を符号化するために参照される参照ピクチャと、符号化対象ブロック１００が含まれる符号化対象ピクチャ間の時間は1秒にも満たない短時間である。そのため、オブジェクト１１０は、ほとんど変化しない剛体であるとみなせる可能性が高い。したがって、符号化対象ブロック１００について求められる動きベクトルmvL0とブロック１０１について求められる動きベクトルmvL0Bは、オブジェクト１１０の動きベクトルmvObjと略等しい可能性が高い。一方、オブジェクト１１０が写っていないブロック１０２の動きベクトルmvL0Aは、符号化対象ブロック１００の動きベクトルmvL0と異なる可能性が高い。したがって、ブロック１０１及びブロック１０２が既に符号化されている場合、符号化対象ブロック１００の予測ベクトルとして、動きベクトルmvLoAよりも動きベクトルmvL0Bを採用する方が好ましい。その方が、動きベクトルmvL0と予測ベクトル間の差分ベクトルの各要素が小さくなるためである。一般に、差分ベクトルの各要素の値が0に近いほど、その要素の値の出現頻度が高く、そのため、差分ベクトルを可変長符号化する際に、0に近い要素の値ほど短い符号が割り当てられる。そのため、差分ベクトルの各要素の値が0に近いほど、動きベクトルmvL0の符号化データの量が少なくて済む。
【００１６】
図１（ｂ）は、同じオブジェクトが写っている二つのブロックについての、各方向の動きベクトルの一例を示す図である。図１（ｂ）において、横軸は時間を表す。符号化対象ピクチャ１５０上の符号化対象ブロック１００と隣接するブロック１０１に同じオブジェクトが写っていれば、符号化対象ブロック１００の動きベクトルmvL0は、ブロック１０１の動きベクトルmvL0Bと略等しい。なお、動きベクトルmvL0、mvL0Bは、それぞれ、符号化対象ピクチャ１５０よりも時間的に前の参照ピクチャ１５１を参照する。また、上記のように、参照ピクチャから符号化対象ピクチャまでの時間は、1秒にも満たない短い時間なので、ピクチャ上のオブジェクトの形状はあまり変化しない。したがって、符号化対象ピクチャ１５０よりも時間的に後の参照ピクチャ１５２に対する、符号化対象ブロック１００の動きベクトルmvL1も、ブロック１０１の動きベクトルmvL1Bと略等しい可能性が高い。
【００１７】
そこで、本実施形態では、動画像符号化装置は、双方向予測符号化される符号化対象ブロックについて、各方向の動きベクトルの予測ベクトルを特定するための選択情報を可変長符号化する。そしてこの動画像符号化装置は、一方向について動きベクトルが符号化対象ブロックの予測ベクトルとして採用されたブロックの他方向についての動きベクトルを予測ベクトルとして特定する選択情報に同一の符号を割り当てる。これにより、この動画像符号化装置は、他方向についての予測ベクトルの選択情報が同一の符号となる確率を上げることで、動きベクトルの符号化データ量を削減する。なお、以下では、便宜上、双方向予測符号化される符号化対象ブロックについて、動きベクトルの予測ベクトルが先に求められる方向をL0方向と呼び、後で予測ベクトルが求められる方向をL1方向と呼ぶ。
【００１８】
なお、ピクチャは、フレームまたはフィールドの何れであってもよい。フレームは、動画像データ中の一つの静止画像であり、一方、フィールドは、フレームから奇数行のデータあるいは偶数行のデータのみを取り出すことにより得られる静止画像である。
【００１９】
また動画像データは、Group Of Pictures（GOP）単位で符号化される。GOPは、連続する複数のピクチャを含み、各ピクチャに対する符号化方法が規定された構造を表す。また、以下では、GOPに含まれるピクチャのうち、既に符号化されている１枚のピクチャの情報を用いてインター符号化されるピクチャをPピクチャと表記する。さらに、既に符号化されている２枚のピクチャの情報を用いて双方向予測符号化されるピクチャをBピクチャと表記する。なお、Bピクチャが参照する２枚の参照ピクチャの一方がそのBピクチャよりも時間的に前のピクチャであり、他方がそのBピクチャよりも時間的に後のピクチャであってもよい。この場合、L0方向は、例えば、符号化対象ピクチャから時間的に前方を示す向きとなり、L1方向は、符号化対象ピクチャから時間的に後方を示す向きとなる。あるいは、２枚の参照ピクチャの何れも、Bピクチャよりも時間的に前のピクチャであってもよい。この場合、L0方向、L1方向は、何れも、符号化対象ピクチャから時間的に前方を示す向きとなる。さらに、２枚の参照ピクチャの何れも、Bピクチャよりも時間的に後のピクチャであってもよい。この場合、L0方向、L1方向は、何れも、符号化対象ピクチャから時間的に後方を示す向きとなる。
また、イントラ符号化のみの対象となり、インター符号化されないピクチャをIピクチャと表記する。
【００２０】
図２は、一つの実施形態による動画像符号化装置の概略構成図である。動画像符号化装置１は、量子化係数算出部１０と、記憶部１１と、動きベクトル計算部１２と、予測モード判定部１３と、予測画像生成部１４と、予測ベクトル選択部１５と、予測誤差算出部１６と、選択情報設定部１７と、可変長符号化部１８とを有する。
動画像符号化装置１が有するこれらの各部は、それぞれ別個の回路として形成される。あるいは動画像符号化装置１が有するこれらの各部は、その各部に対応する回路が集積された一つの集積回路として動画像符号化装置１に実装されてもよい。さらに、動画像符号化装置１が有するこれらの各部は、動画像符号化装置１が有するプロセッサ上で実行されるコンピュータプログラムにより実現される、機能モジュールであってもよい。
【００２１】
符号化対象となるピクチャは、例えば、動画像符号化装置１全体を制御する制御部（図示せず）により所定数の画素を持つ複数のブロックに分割される。例えば、各ブロックは、横4画素×縦4画素のサイズから、横64画素×縦64画素のサイズの何れかに設定される。そして動画像符号化装置１には、各ブロックが、例えば非特許文献１で規定された順序またはH.264 MPEG-4 AVCに規定された順序で入力される。
【００２２】
量子化係数算出部１０は、符号化対象ブロックと、予測画像生成部１４により生成された予測ブロックとの差分演算を実行する。そして量子化係数算出部１０は、その差分演算により得られたブロック内の各画素に対応する差分値を、予測誤差信号とする。
【００２３】
量子化係数算出部１０は、符号化対象ブロックの予測誤差信号を直交変換することにより、予測誤差信号の水平方向の周波数成分及び垂直方向の周波数成分を表す周波数信号を求める。例えば、量子化係数算出部１０は、直交変換処理として、離散コサイン変換（Discrete Cosine Transform、DCT）を予測誤差信号に対して実行することにより、周波数信号として、ブロックごとのDCT係数の組を得る。
【００２４】
次に、量子化係数算出部１０は、周波数信号を量子化することにより、その周波数信号の量子化係数を算出する。この量子化処理は、一定区間に含まれる信号値を一つの信号値で表す処理である。そしてその一定区間は、量子化幅と呼ばれる。例えば、量子化係数算出部１０は、周波数信号から、量子化幅に相当する所定数の下位ビットを切り捨てることにより、その周波数信号を量子化する。量子化幅は、量子化パラメータによって決定される。例えば、量子化係数算出部１０は、量子化パラメータの値に対する量子化幅の値を表す関数にしたがって、使用される量子化幅を決定する。またその関数は、量子化パラメータの値に対する単調増加関数とすることができ、予め設定される。
あるいは、水平方向及び垂直方向の周波数成分のそれぞれに対応する量子化幅を規定する量子化マトリクスが、予め複数準備され、量子化係数算出部１０が有するメモリに記憶される。そして量子化係数算出部１０は、量子化パラメータにしたがって、それら量子化マトリクスのうちの特定の量子化マトリクスを選択する。そして量子化係数算出部１０は、選択された量子化マトリクスを参照して、周波数信号の各周波数成分に対する量子化幅を決定してもよい。
【００２５】
また量子化係数算出部１０は、上記の非特許文献１に記載された動画像符号化規格、または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処理を実行する。逆量子化処理及び逆直交変換処理を量子化信号に対して実行することにより、符号化前の予測誤差信号と同程度の情報を有する予測誤差信号が再生される。
【００２７】
量子化係数算出部１０は、予測ブロックの各画素値に、その画素に対応する再生された予測誤差信号を加算する。これらの処理を各ブロックについて実行することにより、量子化係数算出部１０は、その後に符号化されるブロックに対する予測ブロックを生成するために利用される参照ブロックを生成する。
量子化係数算出部１０は、参照ブロックを生成する度に、その参照ブロックを記憶部１１に記憶させる。
【００２８】
記憶部１１は、量子化係数算出部１０から受け取った参照ブロックを一時的に記憶する。なお、参照ピクチャは、各ブロックの符号化順序にしたがって、１枚のピクチャ分の参照ブロックを結合することで得られる。記憶部１１は、動きベクトル計算部１２、予測モード判定部１３及び予測画像生成部１４に、参照ピクチャまたは参照ブロックを供給する。なお、記憶部１１は、符号化対象ピクチャが参照する可能性がある、予め定められた所定枚数分の参照ピクチャを記憶し、参照ピクチャの枚数がその所定枚数を超えると、符号化順序が古い参照画ピクチャから順に破棄する。
【００２９】
さらに、記憶部１１は、インター符号化された参照ブロックのそれぞれについての動きベクトルを記憶する。そして記憶部１１は、その動きベクトルを予測ベクトル選択部１５へ供給する。
【００３０】
動きベクトル計算部１２は、インター符号化用の予測ブロックを生成するために、符号化対象ブロックと参照ピクチャとを用いて、動きベクトルを求める。動きベクトルは、符号化対象ブロックと、そのブロックに最も類似する参照ピクチャ上の領域間の空間的な移動量を表す。
動きベクトル計算部１２は、符号化対象ブロックと、参照ピクチャとのブロックマッチングを実行することにより、符号化対象ブロックと最も一致する参照ピクチャ及びその参照ピクチャ上の領域の位置を決定する。
【００３１】
動きベクトル計算部１２は、符号化対象ブロックの符号化対象ピクチャ上の位置と、そのブロックに最も一致する参照ピクチャ上の領域との水平方向及び垂直方向の移動量を動きベクトルとする。
動きベクトル計算部１２は、求めた動きベクトルと、参照ピクチャの識別情報を、記憶部１１、予測モード判定部１３、予測画像生成部１４及び予測誤差算出部１６へ渡す。
【００３２】
予測モード判定部１３は、符号化対象ブロックに対する予測ブロックの生成方法を規定する予測モードを決定する。予測モード判定部１３は、例えば、図示しない制御部から取得した、符号化対象ブロックが含まれる符号化対象のピクチャのタイプを示す情報に基づいて、そのブロックの予測モードを決定する。符号化対象のピクチャのタイプがIピクチャであれば、予測モード判定部１３は適用される予測モードとしてイントラ符号化モードを選択する。
【００３３】
また、符号化対象のピクチャのタイプがPピクチャであれば、予測モード判定部１３は、例えば、適用される予測モードとして、インター符号化モード及びイントラ符号化モードの何れかを選択する。なお、インター符号化モードとして、時間的に前のピクチャを参照する前方向予測モードか、時間的に後のピクチャを参照する後方向予測モードかは、符号化対象のピクチャのGOP内の位置を示す情報に基づいて決定される。
さらに、符号化対象のピクチャのタイプがBピクチャであれば、予測モード判定部１３は、適用される予測モードを、イントラ符号化モード、前方向予測モード、後方向予測モード及び双方向予測モードの中から選択する。
【００３４】
予測モード判定部１３は、複数の予測モードの中から一つの予測モードを選択する場合、各予測モードについてのブロックの符号化されたデータ量の評価値であるコストをそれぞれ算出する。そして予測モード判定部１３は、コストが最小となる予測モードを、符号化対象ブロックに対して適用される予測モードとする。
各モードに対するコストは、例えば、次のように計算される。
【数１】
2014143650.tif 000003
ここで、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に規定されている水平モード、ＤＣモード、プレーンモードなどに従って予測ブロックを生成する。
予測画像生成部１４は、生成された予測ブロックを量子化係数算出部１０へ渡す。
【００３９】
予測ベクトル選択部１５、予測誤差算出部１６及び選択情報設定部１７は、動きベクトルを符号化するための処理を実行する。
【００４０】
予測ベクトル選択部１５は、既に符号化されているブロックの動きベクトルの中から、符号化対象ブロックの動きベクトルを予測するために利用される予測ベクトルを選択する。本実施形態では、予測ベクトル選択部１５は、HEVCに規定された予測ベクトル選択方式である、Adaptive Motion Vector Prediction(AMVP)に従って予測ベクトルを選択する。すなわち、予測ベクトル選択部１５は、二つの予測ベクトルの候補を含むリストを作成し、そのリスト内で予測ベクトルとして採用する方を示すフラグを求める。
【００４１】
なお、予測ベクトル選択部１５は、前方向予測、後方向予測、及び双方向予測におけるL0方向、L1方向について、以下の処理を実行する。そのため、以下では、一つの方向についての予測ベクトルの選択について説明する。
【００４２】
図３は、予測ベクトル選択部１５による、予測ベクトルの候補リストの作成手順を示すフローチャートである。
予測ベクトル選択部１５は、まず、符号化対象ブロックに隣接する、既に符号化されたブロックの動きベクトルのなかから、予測ベクトルの候補を選択する。以下では、符号化対象ブロックに隣接するブロックの動きベクトルのなかから選択される予測ベクトルの候補を、空間予測ベクトルと呼ぶ。
【００４３】
具体的には、予測ベクトル選択部１５は、符号化対象ブロックの左側に隣接するブロックの動きベクトルを、所定の順序に従って空間予測ベクトルmvLXAとして選択する（ステップＳ１０１）。
【００４４】
図４を参照しつつ、空間予測ベクトルの選択についての詳細を説明する。図４は、空間予測ベクトルの登録順序を示す図である。予測ベクトル選択部１５は、符号化対象ブロック４００について、矢印４０１に示されるように、左下に隣接するブロックA0、ブロックA0の上側に隣接するブロックA1の順に、各ブロックの動きベクトルを空間予測ベクトルとして登録するか否かを判定する。
予測ベクトル選択部１５は、ブロックA0が符号化済みであるか否か判定する。ブロックA0が符号化済みである場合、予測ベクトル選択部１５は、ブロックA0が符号化対象ブロック４００と同じ方向についてインター符号化されているか否か判定する。ブロックA0が符号化対象ブロック４００と同じ方向についてインター符号化されている場合、予測ベクトル選択部１５は、ブロックA0の参照ピクチャrefIdxLXA0が、符号化対象ブロック４００の参照ピクチャrefIdxLXと一致するか否か判定する。参照ピクチャrefIdxLXA0が参照ピクチャrefIdxLXと一致する場合、予測ベクトル選択部１５は、ブロックA0の動きベクトルを１番目の空間予測ベクトルmvLXAとして選択する。
【００４５】
一方、ブロックA0が符号化されていないか、参照ピクチャrefIdxLXA0が参照ピクチャrefIdxLXと一致しない場合、予測ベクトル選択部１５は、ブロックA1について同様の判定処理を行う。そして予測ベクトル選択部１５は、ブロックA1が符号化済みであり、かつ、ブロックA1が参照する参照ピクチャrefIdxLXA1が、参照ピクチャrefIdxLXと一致する場合、ブロックA1の動きベクトルを空間予測ベクトルmvLXAとして選択する。
【００４６】
参照ピクチャrefIdxLXA0及びrefIdxLXA1の何れも参照ピクチャrefIdxLXと一致せず、かつ、ブロックA0が符号化対象ブロック４００と同じ方向についてインター符号化されている場合、予測ベクトル選択部１５は、ブロックA0の動きベクトルを選択する。そして予測ベクトル選択部１５は、符号化対象ブロック４００が含まれる符号化対象ピクチャと参照ピクチャrefIdxLXA0間の時間に対する、符号化対象ピクチャと参照ピクチャrefIdxLX間の時間の比を、ブロックA0の動きベクトルに乗じる。これにより得られたベクトルを、予測ベクトル選択部１５は、空間予測ベクトルmvLXAとする。
【００４７】
上記の処理によっても空間予測ベクトルmvLXAが求められず、かつ、ブロックA1が符号化対象ブロック４００と同じ方向についてインター符号化されている場合、予測ベクトル選択部１５は、ブロックA1の動きベクトルを選択する。そして予測ベクトル選択部１５は、符号化対象ピクチャと参照ピクチャrefIdxLXA1間の時間に対する、符号化対象ピクチャと参照ピクチャrefIdxLX間の時間の比を、ブロックA1の動きベクトルに乗じる。これにより得られたベクトルを、予測ベクトル選択部１５は、空間予測ベクトルmvLXAとする。
なお、ブロックA0、A1の何れもが、符号化対象ブロック４００と同じ方向についてインター符号化されていなければ、空間予測ベクトルmvLXAは選択されない。
【００４８】
次に、予測ベクトル選択部１５は、符号化対象ブロックの上側に隣接するブロックの動きベクトルを、所定の順序に従って空間予測ベクトルmvLXBとして選択する（ステップＳ１０２）。
再度図４を参照すると、予測ベクトル選択部１５は、矢印４０２に示される順に、符号化対象ブロック４００の上側に隣接するブロックB0、B1、B2に対して、ブロックA0、A1に対する選択処理と同様の処理を行う。そして予測ベクトル選択部１５は、それらのブロックの動きベクトルを空間予測ベクトルmvLXBとして選択するか否かを判定する。なお、ブロックB0は、符号化対象ブロック４００の右上に隣接し、ブロックB1は、ブロックB0の左隣に隣接する。そしてブロックB2は、符号化対象ブロック４００の左上に隣接する。
【００４９】
すなわち、予測ベクトル選択部１５は、ブロックB0からB2の順で、参照ピクチャと符号化対象ブロック４００の参照ピクチャrefIdxLXが最初に一致するブロックの動きベクトルを空間予測ベクトルmvLXBとして選択する。一方、ブロックB0〜B2の参照ピクチャの何れもが、参照ピクチャrefIdxLXと一致しなければ、予測ベクトル選択部１５は、ブロックB0からB2の順で、動きベクトルが求められている最初のブロックを特定する。そして、特定されたブロックの動きベクトルに、特定されたブロックが参照する参照ピクチャと符号化対象ピクチャ間の時間に対する符号化対象ピクチャと参照ピクチャrefIdxLX間の時間の比を乗じて得られるベクトルが空間予測ベクトルmvLXBとなる。
【００５０】
なお、ブロックB0〜B2の何れもが、符号化対象ブロック４００と同じ方向についてインター符号化されていなければ、予測ベクトル選択部１５は、空間予測ベクトルmvLXBに空間予測ベクトルmxLXAを代入する。また、この場合において、空間予測ベクトルmxLXAが選択されていなければ、空間予測ベクトルmvLXBも選択されない。
【００５１】
予測ベクトル選択部１５は、空間予測ベクトルmxLXA、mxLXBを、予測ベクトルの候補リストmvpListLXに登録する（Ｓ１０３）。ただし、空間予測ベクトルmxLXAと空間予測ベクトルmvLXBが等しい場合、予測ベクトル選択部１５は、空間予測ベクトルmxLXBを候補リストmvpListLXから消去する。
【００５２】
予測ベクトル選択部１５は、候補リストmvpListLXに登録されている予測ベクトルの候補が２以上か否か判定する（ステップＳ１０４）。候補リストmvpListLXに登録されている予測ベクトルの候補が２以上であれば（ステップＳ１０４−Ｙｅｓ）、予測ベクトル選択部１５は、予測ベクトルの候補リストの作成を終了する。一方、候補リストmvpListLXに登録されている空間予測ベクトルが２個未満である場合（ステップＳ１０４−Ｎｏ）、予測ベクトル選択部１５は、符号化済みのピクチャ上の所定位置のブロックColBlockを選択する。そして予測ベクトル選択部１５は、そのブロックColBlockの動きベクトルmvColを、予測ベクトルの候補として利用か否か判定する（ステップＳ１０５）。以下では、符号化済みのピクチャ上のブロックの動きベクトルのなかから選択される予測ベクトルの候補を、時間予測ベクトルと呼ぶ。
【００５３】
図５を参照しつつ、時間予測ベクトルの選択の詳細を説明する。なお、図５において、横軸は時間を表す。予測ベクトル選択部１５は、符号化対象ブロック５１０が参照する可能性がある符号化済みピクチャの中から候補となるピクチャ５０１を選択する。そして予測ベクトル選択部１５は、ピクチャ５０１上で、符号化対象ブロック５１０と同位置のブロックに隣接する（例えば、右下に隣接する）ブロックColBlockを特定する。予測ベクトル選択部１５は、ブロックColBlockの動きベクトルmvColが、符号化対象ブロック５１０の動きベクトルmvLXColの参照ピクチャ５０２を参照している場合、その動きベクトルmvColを利用可能と判定する。
動きベクトルmvColが利用可能な場合（ステップＳ１０５−Ｙｅｓ）、予測ベクトル選択部１５は、その動きベクトルmvColを時間スケーリングして得られるベクトルを時間予測ベクトルとして候補リストmvpListLXに登録する（ステップＳ１０６）。具体的には、予測ベクトル選択部１５は、ピクチャ５０１と参照ピクチャ５０２間の時間に対する、符号化対象ブロック５１０が含まれる符号化対象ピクチャ５００と参照ピクチャ５０２間の時間の比を、動きベクトルmvColに乗じる。
【００５４】
なお、符号化対象ブロック５１０が参照する可能性がある符号化済みピクチャの全てにおいて、ブロックColBlockがインター符号化されていない場合、時間予測ベクトルは選択されない。また、複数の符号化済みピクチャのブロックColBlock候補が存在している場合、予測ベクトル選択部１５は、例えば、符号化対象ピクチャ５００に最も近いピクチャ上のブロックColBlockについての動きベクトルを選択することができる。
【００５５】
ステップＳ１０６の後、あるいは、ステップＳ１０５で動きベクトルmvColが利用できない場合（ステップＳ１０５−Ｎｏ）、候補リストmvpListLXに登録されている予測ベクトルの候補が２以上か否か判定する（ステップＳ１０７）。候補リストmvpListLXに登録されている予測ベクトルの候補が２以上であれば（ステップＳ１０７−Ｙｅｓ）、予測ベクトル選択部１５は、予測ベクトルの候補リストの作成を終了する。一方、候補リストmvpListLXに登録されている空間予測ベクトルが２個未満である場合（ステップＳ１０７−Ｎｏ）、予測ベクトル選択部１５は、予測ベクトルの候補としてゼロベクトルを候補リストmvpListLXに登録する（ステップＳ１０８）。なお、ゼロベクトルは、水平方向の移動量を表す要素の値及び垂直方向の移動量を表す要素の値がともに0のベクトルである。
【００５６】
予測ベクトル選択部１５は、候補リストmvpListLXを予測誤差算出部１６及び選択情報設定部１７へ通知する。
【００５７】
予測誤差算出部１６は、候補リストmvpListLXに登録されている予測ベクトルの候補のそれぞれと、動きベクトル間の差分ベクトルを算出する。そして予測誤差算出部１６は、差分ベクトルの情報量が最小となる差分ベクトルを可変長符号化部１８へ出力するとともに、差分ベクトルの情報量が最小となる予測ベクトルの候補を選択情報設定部１７へ通知する。なお、差分ベクトルの情報量は、例えば、差分ベクトルの各要素の値の絶対値和あるいは２乗和で表される。
【００５８】
選択情報設定部１７は、差分ベクトルの情報量が最小となる予測ベクトルの候補が予測ベクトルであることを示す選択情報を設定し、その選択情報を可変長符号化部１８へ出力する。
ここで、符号化対象ブロックが前方向予測または後方向予測される場合、選択情報設定部１７は、選択情報として、候補リストmvpListLX内での、差分ベクトルの情報量が最小となる予測ベクトルの候補の位置を表すフラグmvpLXflagを設定する。フラグmvpLXflagは、例えば、候補リストmvpListLX内の先頭のベクトルが予測ベクトルである場合、'0'となり、候補リストmvpListLX内の２番目のベクトルが予測ベクトルである場合、'1'となる。
【００５９】
また、選択情報設定部１７は、符号化対象ブロックが双方向予測される場合も、最初に予測ベクトルが決定されるL0方向については、前方向予測及び後方向予測と同様に、フラグmvpL0flagを設定し、そのフラグを可変長符号化部１８へ出力する。
一方、L0方向の次に予測ベクトルが決定されるL1方向については、選択情報設定部１７は、L0方向についての予測ベクトルに基づいて、L1方向についての予測ベクトルの候補リストmvpListL1に登録されている各予測ベクトルの候補を並び替える。本実施形態では、選択情報設定部１７は、L0方向についての予測ベクトルに対応するブロックの、L1方向での動きベクトルが、候補リストmvpListL1内で先頭に位置するように、予測ベクトルの候補を並べ替える。そして選択情報設定部１７は、並べ替えられた候補リストmvpListL1について、差分ベクトルの情報量が最小となる予測ベクトルの候補を表すようにフラグmvpL1flagを設定する。
【００６０】
例えば、再度図１（ａ）を参照すると、L0方向において、ブロックA0、ブロックB0には、それぞれ、動きベクトルmvL0A、mvL0Bが算出されている。そのため、L0方向についての予測ベクトルの候補リストmvpListL0は、例えば、
{mvL0A, mvL0B}
となる。ここで、ブロックB0と符号化対象ブロックには、同一のオブジェクトが写っているので、動きベクトルmvL0Bが、予測ベクトルとして選択される。
そこで、選択情報設定部１７は、L1方向についての予測ベクトルの候補リストmvpListL1を、以下のように、ブロックB0の動きベクトルmvL1Bが先頭に位置するように、ベクトルの配置を置換する。
{mvL1B, mvL1A}
【００６１】
選択情報設定部１７は、L1方向について上記のように候補リスト内の候補ベクトルを並び替えることにより、候補リスト内の先頭のベクトルが予測ベクトルとなる確率が高くなる。そのため、L1方向についての予測ベクトルを示すフラグmvpL1flagの値が'0'となる確率が、'1'となる確率よりも高くなる。この選択情報であるフラグmvpL1flagの値は、可変長符号化部１８により符号化される符号に相当する。その結果として、後述するように、選択情報であるフラグmvpL1flagが算術符号化されることにより、動画像全体として、フラグmvpL1flagに割り当てられる符号量が1ビットよりも少なくなる。したがって、L0方向のフラグmvpL0flagとL1方向のフラグmvpL1flagとを独立に符号化するよりも、フラグmvpL1flagの符号量が少なくなる。
【００６２】
可変長符号化部１８は、量子化係数算出部１０から受け取った量子化係数を、生起確率が高い信号値ほど短くなるように可変長符号化する。また可変長符号化部１８は、選択情報設定部１７から受け取った予測ベクトルの選択情報と、予測誤差算出部１６から受け取った差分ベクトルを可変長符号化する。可変長符号化部１８は、例えば、可変長符号化処理として、CAVLCといったハフマン符号化処理あるいはCABACといった算術符号化処理を用いることができる。特に、可変長符号化部１８は、予測ベクトルの選択情報を算術符号化することが好ましい。これにより、可変長符号化部１８は、動画像全体に対して、双方向予測されるブロックのL1方向についての予測ベクトルの選択情報に割り当てるビット数を1ビット未満にすることができる。
【００６３】
可変長符号化部１８により生成された符号化信号に対して、動画像符号化装置１は、ブロックごとの予測モードなどを含む所定の情報をヘッダ情報として付加することにより、符号化された動画像データを含むデータストリームを生成する。動画像符号化装置１は、そのデータストリームを磁気記録媒体、光記録媒体あるいは半導体メモリなどを有する記憶部（図示せず）に記憶するか、あるいはそのデータストリームを他の機器へ出力する。
【００６４】
図６は、動画像符号化装置１により実行される、動画像符号化処理の動作フローチャートである。動画像符号化装置１は、ブロックごとに図６に示される動画像符号化処理を実行する。
【００６５】
予測モード判定部１３は、符号化対象ブロックの予測モードを判定する（ステップＳ２０１）。予測モードが双方向予測モード以外のモードであれば、動画像符号化装置１は、その予測モードに従って符号化対象ブロックを符号化する（ステップＳ２０２）。
【００６６】
一方、予測モードが双方向予測モードであれば、動きベクトル計算部１２は、L0方向及びL1方向のそれぞれについて動きベクトルを算出する（ステップＳ２０３）。予測画像生成部１４は、その二つの動きベクトルに基づいて予測ブロックを生成する（ステップＳ２０４）。そして量子化係数算出部１０は、符号化対象ブロックと予測ブロック間の予測誤差信号を算出し、その予測誤差信号を直交変換して得られる周波数信号を量子化することにより、量子化係数を算出する（ステップＳ２０５）。可変長符号化部１８は、その量子化係数を可変長符号化する（ステップＳ２０６）。
【００６７】
また、予測ベクトル選択部１５は、L0方向の動きベクトルに対する予測ベクトルの候補リストmvpListL0及びL1方向の動きベクトルに対する予測ベクトルの候補リストmvpListL1を作成する（ステップＳ２０７）。そして予測誤差算出部１６は、L0方向の動きベクトルと、予測ベクトルの候補のそれぞれとの間の差分ベクトルを算出する（ステップＳ２０８）。選択情報設定部１７は、L0方向についての予測ベクトルの候補リストmvpListL0の中で、差分ベクトルの情報量が最小となる候補を表すフラグmvpL0flagを、予測ベクトルの選択情報として求める（ステップＳ２０９）。
【００６８】
また、選択情報設定部１７は、L1方向の候補リストmvpListL1について、L0方向で予測ベクトルとして選択された動きベクトルに対応するブロックのL1方向の動きベクトルが先頭に位置するように、予測ベクトルの候補を並び替える（ステップＳ２１０）。そして予測誤差算出部１６は、L1方向の動きベクトルと、予測ベクトルの候補のそれぞれとの間の差分ベクトルを算出する（ステップＳ２１１）。選択情報設定部１７は、L1方向についての予測ベクトルの候補リストmvpListL1の中で、差分ベクトルの情報量が最小となる候補を表すフラグmvpL1flagを、予測ベクトルの選択情報として求める（ステップＳ２１２）。そして可変長符号化部１８は、L0方向及びL1方向について、情報量が最小となる差分ベクトル及び予測ベクトルの選択情報を可変長符号化する（ステップＳ２１３）。そして動画像符号化装置１は、一つのブロックに対する動画像符号化処理を終了する。
【００６９】
なお、動画像符号化装置１は、ステップＳ２０４〜Ｓ２０６の処理と、Ｓ２０７〜Ｓ２１３の処理の順序を入れ換えてもよく、あるいは、ステップＳ２０４〜Ｓ２０６の処理と、Ｓ２０７〜Ｓ２１３の処理を並列に実行してもよい。また動画像符号化装置１は、L0方向についての差分ベクトル及び予測ベクトルの選択情報を求めた後に、L1方向についての予測ベクトルの候補リストを作成してもよい。
【００７０】
以上に説明してきたように、この動画像符号化装置は、双方向予測モードで符号化されたブロックのL1方向について、L1方向の予測ベクトルの選択情報が同じ符号となる確率を上げることで、その選択情報に割り当てる符号量を削減できる。そのため、この動画像符号化装置は、動画像データの符号化効率を向上できる。
【００７１】
変形例によれば、選択情報設定部１７は、L1方向の候補リストmvpListL1について、L0方向で予測ベクトルとして選択された動きベクトルに対応するブロックのL1方向の動きベクトルが最後尾に位置するように、予測ベクトルの候補を並び替えてもよい。この場合には、L1方向について、候補リスト内の最後尾のベクトルが予測ベクトルとなる確率が高くなる。そのため、L1方向についての予測ベクトルを示すフラグmvpL1flagの値が'1'となる確率が、'0'となる確率よりも高くなる。その結果として、選択情報であるフラグmvpL1flagが算術符号化されることにより、動画像全体として、フラグmvpL1flagに割り当てられる符号量が1ビットよりも少なくなる。
【００７２】
また他の変形例によれば、予測ベクトル選択部１５は、３個以上の動きベクトルを、予測ベクトルの候補として選択してもよい。例えば、予測ベクトル選択部１５は、予測ベクトルの候補として、二つの空間予測ベクトルと、時間予測ベクトルと、ゼロベクトルとを、予測ベクトルの候補リストに登録してもよい。この場合には、候補のベクトルの数が３以上あるので、予測ベクトルを表す選択情報として、2ビット以上の長さを持つインデックスが用いられる。
【００７３】
この場合も、選択情報設定部１７は、L0方向において予測ベクトルとして選択された動きベクトルに対応するブロックのL1方向における動きベクトルが、L1方向についての候補リストの先頭に登録されるように、候補リスト内のベクトルを並び替える。これにより、L1方向について、候補リスト内の先頭のベクトルが予測ベクトルとして選択される可能性が高くなる。
【００７４】
そしてこの場合、可変長符号化部１８は、候補リストの先頭を表すインデックスの値に割り当てる符号の長さが最短となるように、予測ベクトルを表すインデックスの値ごとの符号の値を決定する。これにより、L1方向に関して、可変長符号化部１８は、最短の符号が選択される確率が高くなる。したがって、選択情報がハフマン符号により符号化される場合でも、L0方向のフラグmvpL0flagとL1方向のフラグmvpL1flagとを独立に符号化するよりも、フラグmvpL1flagの符号量が少なくなる。
【００７５】
また他の変形例によれば、予測ベクトル選択部１５は、L1方向について予測ベクトルの候補リストを作成する際、L0方向についての予測ベクトルに応じて、空間予測ベクトル、時間予測ベクトル、ゼロベクトルの登録順を変更してもよい。例えば、L0方向における予測ベクトルが時間予測ベクトルであれば、予測ベクトル選択部１５は、L1方向について、時間予測ベクトルを予測ベクトルの候補リストに最初に登録し、その後に、必要に応じて空間予測ベクトル、ゼロベクトルの順に登録すればよい。また、L0方向における予測ベクトルがゼロベクトルであれば、予測ベクトル選択部１５は、L1方向について、ゼロベクトルを予測ベクトルの候補リストに最初に登録し、その後に、必要に応じて空間予測ベクトル、時間予測ベクトルの順に登録すればよい。なお、L0方向における予測ベクトルが空間予測ベクトルであれば、予測ベクトル選択部１５は、L1方向についても、上記の実施形態と同様の順序で予測ベクトルの候補を登録すればよい。なお、空間予測ベクトル、時間予測ベクトル及びゼロベクトルの登録手順自体は、上記の実施形態による各ベクトルの登録手順と同じでよい。
【００７６】
この変形例によれば、L1方向に関して、予測ベクトルとして選択される可能性が最も高い候補が、予測ベクトルの候補リストの先頭に登録される。そのため、上記の実施形態と同様に、動画像符号化装置は、L1方向についての予測ベクトルの選択情報に割り当てる符号量を削減できる。またこの変形例では、動画像符号化装置は、予測ベクトルとして選択される可能性が最も高い候補から順に予測ベクトルの候補リストに登録するので、選択される可能性が最も高い候補が候補リストから漏れる可能性を低減できる。
【００７７】
さらに他の変形例によれば、予測ベクトル選択部１５は、L0方向についての予測ベクトルが空間予測ベクトルである場合、その空間予測ベクトルに対応するブロックに近いブロックから順にL1方向についての空間予測ブロックを候補リストに登録する。
【００７８】
図７は、L0方向について選択された予測ベクトルに対応するブロックに基づく、L1方向についての空間予測ブロックの登録順序の決定手順を示すフローチャートである。
予測ベクトル選択部１５は、L0方向について選択された予測ベクトルが、図４に示されるブロックA0の動きベクトルmvL0A0か否か判定する（ステップＳ３０１）。予測ベクトルが動きベクトルmvL0A0である場合（ステップＳ３０１−Ｙｅｓ）、予測ベクトル選択部１５は、L1方向について、図４におけるA0→A1→B0→B1→B2の順に、空間予測ベクトルを登録する（ステップＳ３０２）。
【００７９】
一方、予測ベクトルが動きベクトルmvL0A0でない場合（ステップＳ３０１−Ｎｏ）、予測ベクトル選択部１５は、L0方向について選択された予測ベクトルが、ブロックA1の動きベクトルmvL0A1か否か判定する（ステップＳ３０３）。予測ベクトルが動きベクトルmvL0A1である場合（ステップＳ３０３−Ｙｅｓ）、予測ベクトル選択部１５は、L1方向について、A1→A0→B0→B1→B2の順に、空間予測ベクトルを登録する（ステップＳ３０４）。
【００８０】
一方、予測ベクトルが動きベクトルmvL0A1でない場合（ステップＳ３０３−Ｎｏ）、予測ベクトル選択部１５は、L0方向について選択された予測ベクトルが、ブロックB0の動きベクトルmvL0B0か否か判定する（ステップＳ３０５）。予測ベクトルが動きベクトルmvL0B0である場合（ステップＳ３０５−Ｙｅｓ）、予測ベクトル選択部１５は、L1方向について、B0→B1→B2→A0→A1の順に、空間予測ベクトルを登録する（ステップＳ３０６）。
【００８１】
一方、予測ベクトルが動きベクトルmvL0B0でない場合（ステップＳ３０５−Ｎｏ）、予測ベクトル選択部１５は、L0方向について選択された予測ベクトルが、ブロックB1の動きベクトルmvL0B1か否か判定する（ステップＳ３０７）。予測ベクトルが動きベクトルmvL0B1である場合（ステップＳ３０７−Ｙｅｓ）、予測ベクトル選択部１５は、L1方向について、B1→B0→B2→A0→A1の順に、空間予測ベクトルを登録する（ステップＳ３０８）。
【００８２】
一方、予測ベクトルが動きベクトルmvL0B1でない場合（ステップＳ３０７−Ｎｏ）、L0方向について選択された予測ベクトルは、ブロックB2の動きベクトルmvL0B2である。この場合、予測ベクトル選択部１５は、L1方向について、B2→B1→B0→A0→A1の順に、空間予測ベクトルを登録する（ステップＳ３０９）。
【００８３】
この変形例によれば、L0方向に関して空間予測ベクトルが予測ベクトルとして選択された場合、L1方向に関して、予測ベクトルとして選択される可能性が最も高いブロックの候補が、空間予測ベクトルとして予測ベクトルの候補のリストに最初に登録される。そのため、動画像符号化装置は、予測ベクトルとして選択される可能性が最も高い候補がリストから漏れる可能性を低減できる。
なお、予測ベクトル選択部１５は、空間予測ベクトルの登録対象となる複数のブロックのうち、L0方向についての予測ベクトルに対応するブロックからのユークリッド距離が近いブロックから順に、L1方向についての空間予測ブロックを登録してもよい。
【００８４】
さらに他の変形例によれば、予測ベクトル選択部１５は、L0方向についての予測ベクトルが空間予測ベクトルである場合、その空間予測ベクトルに対応するブロックの符号化情報に基づいてL1方向における空間予測ベクトルの導出方法を変更してもよい。
この変形例では、予測ベクトル選択部１５は、符号化対象ブロックの隣接ブロックのうち、L0方向についての予測ベクトルに対応するブロックを最初に着目するブロックに設定する。そして予測ベクトル選択部１５は、図７に示されたフローチャートに従って、２番目以降に着目するブロックの順序を決定する。あるいは、予測ベクトル選択部１５は、２番目以降に着目するブロックの順序について、L1方向の動きベクトルについて算出された差分ベクトルの情報量が小さい方からの順としてもよい。
【００８５】
図８は、この変形例による、空間予測ベクトルの導出手順を示すフローチャートである。予測ベクトル選択部１５は、符号化対象ブロックの隣接ブロック(図４のA0,A1,B0,B1,B2)のうち、着目するブロックについて、L1方向の動きベクトルが算出されているか否か判定する（ステップＳ４０１）。L1方向の動きベクトルが算出されていなければ（ステップＳ４０１−Ｎｏ）、予測ベクトル選択部１５は、着目するブロックからは予測ベクトルの候補を設定せず、処理を終了し、次のブロックについてステップＳ４０１以降の処理を実行する。
【００８６】
一方、L1方向の動きベクトルが算出されていれば（ステップＳ４０１−Ｙｅｓ）、予測ベクトル選択部１５は、L1方向について、符号化対象ブロックの参照ピクチャと着目するブロックの参照ピクチャが同一か否か判定する（ステップＳ４０２）。符号化対象ブロックの参照ピクチャと着目するブロックの参照ピクチャが異なれば（ステップＳ４０２−Ｎｏ）、予測ベクトル選択部１５は、着目するブロックからは予測ベクトルの候補を設定せず、処理を終了する。そして予測ベクトル選択部１５は、次のブロックについてステップＳ４０１以降の処理を実行する。
【００８７】
一方、符号化対象ブロックの参照ピクチャと着目するブロックの参照ピクチャが同一であれば（ステップＳ４０２−Ｙｅｓ）、予測ベクトル選択部１５は、着目するブロックのL1方向の予測ベクトルが空間予測ベクトルか否か判定する（ステップＳ４０３）。着目するブロックのL1方向についての予測ベクトルが空間予測ベクトルでなければ（ステップＳ４０３−Ｎｏ）、予測ベクトル選択部１５は、着目するブロックからは予測ベクトルの候補を設定せず、処理を終了する。そして予測ベクトル選択部１５は、次のブロックについてステップＳ４０１以降の処理を実行する。
【００８８】
着目するブロックのL1方向の予測ベクトルが空間予測ベクトルである場合（ステップＳ４０３−Ｙｅｓ）、予測ベクトル選択部１５は、着目するブロックのL1方向についての差分ベクトルの情報量が閾値MVDTH未満か否か判定する（ステップＳ４０４）。なお、閾値MVDTHは、例えば、視聴者が動きベクトルの誤差による画質の劣化に気付かないその誤差の最大値、例えば、1に設定される。
【００８９】
差分ベクトルの情報量が閾値MVDTH未満である場合（ステップＳ４０４−Ｙｅｓ）、予測ベクトル選択部１５は、着目するブロックのL1方向についての動きベクトルを、符号化対象ブロックのL1方向についての予測ベクトルとする（ステップＳ４０５）。そして予測ベクトル選択部１５は、予測ベクトルの導出を終了する。なお、最初の着目ブロックのL1方向の動きベクトルが予測ベクトルとなる場合には、予測ベクトルの選択情報であるフラグmvpL1flagが動画像復号装置に伝送されなくても、動画像復号装置は、符号化対象ブロックのL1方向の予測ベクトルを特定できる。そのため、L1方向についての選択情報は設定されず、フラグmvpL1flagは符号化されなくてもよい。また、動画像符号化装置１は、予測ベクトルと動きベクトルが同一であるとみなして、差分ベクトルも符号化しなくてもよい。そのため、この変形例では、符号化効率がより向上する。
【００９０】
一方、差分ベクトルの情報量が閾値MVDTH以上である場合（ステップＳ４０４−Ｎｏ）、予測ベクトル選択部１５は、着目するブロックのL1方向についての動きベクトルを、予測ベクトルの候補リストmvpListL1に追加する（ステップＳ４０６）。その後、予測ベクトル選択部１５は、次に着目するブロックについて、ステップＳ４０１以降の処理を実行する。そして、空間予測ベクトルの導出対象となる、何れかのブロックにおいて、差分ベクトルの情報量が閾値MVDTH未満となれば、予測ベクトル選択部１５は、その時点で予測ベクトルの導出を終了する。その後、選択情報設定部１７は、上記の実施形態と同様に、L1方向についてのフラグmvpL1flagを設定する。そして、可変長符号化部１８は、そのフラグmvpL1flagを可変長符号化する。
【００９１】
さらに他の変形例によれば、可変長符号化部１８は、L1方向についての予測ベクトルの候補リスト内の各ベクトルを、L0方向についての選択情報に基づいて並び替える代わりに、各ベクトルに割り当てられる、可変長符号を変更してもよい。例えば、可変長符号化部１８は、L0方向について選択された予測ベクトルに対応するブロックの、L1方向についての動きベクトルが予測ベクトルの候補リストに登録されていれば、その動きベクトルに対して、最短の符号を割り当てる。なお、選択情報が候補リスト内の位置を示すフラグであれば、L0方向について選択された予測ベクトルに対応するブロックの、L1方向についての動きベクトルの候補リスト内の位置を表すフラグの値が'0'に設定されればよい。これにより、L1方向の予測ベクトルを表す情報として、最短の符号が選択される確率が高くなるので、符号化効率が向上する。さらに、選択情報が算術符号化される場合でも、L1方向について、特定の符号（例えば、'0'）が選択される確率が高くなる。そのため、可変長符号化部１８は、動画像データ全体における、双方向予測されるブロックのL1方向についての選択情報の符号量を1ビット未満に低減できる。
【００９２】
図９は、上記の実施形態または変形例による動画像符号化装置により符号化された動画像データを復号する動画像復号装置の概略構成図である。動画像復号装置２は、可変長復号部３１と、予測モード判定部３２と、予測ベクトル選択部３３と、動きベクトル復号部３４と、動きベクトル記憶部３５と、予測画像生成部３６と、復号部３７と、記憶部３８と、結合部３９とを有する。
動画像復号装置２が有するこれらの各部は、それぞれ別個の回路として形成される。あるいは動画像復号装置２が有するこれらの各部は、その各部に対応する回路が集積された一つの集積回路として動画像復号装置２に実装されてもよい。さらに、動画像復号装置２が有するこれらの各部は、動画像復号装置２が有するプロセッサ上で実行されるコンピュータプログラムにより実現される、機能モジュールであってもよい。
【００９３】
動画像復号装置２は、符号化された動画像データを含むデータストリームを、例えば、通信ネットワーク及び動画像復号装置２を通信ネットワークに接続するためのインターフェース回路を介して取得する。そして動画像復号装置２は、そのデータストリームを、図示しないバッファメモリに記憶させる。動画像復号装置２は、符号化された動画像データを、符号化されたブロック単位でバッファメモリから読み出し、そのブロック単位のデータを可変長復号部３１へ入力する。
【００９４】
可変長復号部３１は、ブロック単位で符号化されているデータを可変長復号する。そして可変長復号部３１は、予測誤差信号を直交変換して得られた周波数信号が量子化された係数である量子化係数を再生する。また可変長復号部３１は、着目するブロックが、インター符号化モードによってインター符号化されたブロックであれば、そのブロックについての動きベクトルの選択情報及び差分ベクトルを可変長復号する。そして可変長復号部３１は、再生した選択情報を予測ベクトル選択部３３へ渡し、再生した差分ベクトルを動きベクトル復号部３４へ渡す。また可変長復号部３１は、量子化係数を復号部３７へ渡す。
【００９５】
予測モード判定部３２は、符号化された動画像データに含まれるヘッダ情報から、復号対象ブロックに対して適用された予測モードを特定する。そして予測モード判定部３２は、適用された予測モードを予測ベクトル選択部３３及び予測画像生成部３６へ通知する。
【００９６】
予測ベクトル選択部３３は、動画像符号化装置１の予測ベクトル選択部１５と同様の処理を実行することで、予測ベクトルの候補リストを作成する。そして予測ベクトル選択部３３は、可変長復号部３１から通知された選択情報にしたがって、その候補リストに登録されたベクトルのなかから予測ベクトルを特定する。
また、復号対象ブロックが双方向予測モードで符号化されている場合、予測ベクトル選択部３３は、L0方向の選択情報を参照する。そして予測ベクトル選択部３３は、L1方向の選択情報が、L0方向の予測ベクトルに対応するブロックについてのL1方向における動きベクトルに基づいて決定された候補ベクトルがL1方向の予測ベクトルであることを表す所定の符号か否かを判定する。そして予測ベクトル選択部３３は、L1方向の予測ベクトルの複数の候補のなかからL1方向の予測ベクトルを特定する。
例えば、予測ベクトル選択部３３は、L1方向についての候補リストに登録されている各ベクトルを、動画像符号化装置１の予測ベクトル選択部１５と同様に並び替える。すなわち、予測ベクトル選択部３３は、L0方向について予測ベクトルとして選択された動きベクトルに対応するブロックのL1方向についての動きベクトルを候補リスト内で先頭にする。そして予測ベクトル選択部３３は、並び替え後の候補リストのなかから、L1方向についての選択情報にしたがって予測ベクトルを特定する。
【００９７】
また動画像符号化装置１の変形例のように、予測ベクトル選択部３３は、LO方向についての予測ベクトルに対応するブロックの動きベクトルを、L1方向の予測ベクトルの候補リストに最初に登録してもよい。あるいは、動画像符号化装置１が、図８に示されるフローチャートに従って予測ベクトルを特定している場合、予測ベクトル選択部３３も、そのフローチャートに従って予測ベクトルを特定してもよい。
さらにまた、変形例によっては、動画像符号化装置１の可変長符号化部１８が、L0方向についての予測ベクトルの選択情報に従って、L1方向についての候補ベクトルに割り当てる符号を変更している。この場合、予測ベクトル選択部３３も、L0方向についての予測ベクトルの選択情報に従って、復号された符号に対応するL1方向についての候補ベクトルを変更すればよい。
【００９８】
予測ベクトル選択部３３は、特定された予測ベクトルを表す情報を動きベクトル復号部３４へ通知する。
【００９９】
動きベクトル復号部３４は、特定された予測ベクトルを表す情報にしたがって、動きベクトル記憶部３５から、予測ベクトルとして特定された復号済みのブロックの動きベクトルを読み込む。そして動きベクトル復号部３４は、読み込んだ動きベクトルに、差分ベクトルを加算することで、復号対象ブロックの動きベクトルを復号する。
動きベクトル復号部３４は、復号した動きベクトルを予測画像生成部３６に出力するとともに、動きベクトル記憶部３５に記憶させる。
【０１００】
動きベクトル記憶部３５は、予測ベクトルとして参照される可能性がある間、復号済みのブロックの動きベクトルを記憶する。
【０１０１】
予測画像生成部３６は、動画像符号化装置１の予測画像生成部１４と同様の処理を実行することにより、復号対象ブロックについて適用された予測モードに応じて、予測ブロックを生成する。そして予測画像生成部３６は、生成した予測ブロックを復号部３７へ渡す。
【０１０２】
復号部３７は、可変長復号部３１から受け取った量子化係数に、符号化された動画像データに含まれるヘッダ情報から取得した量子化パラメータにより決定された量子化幅に相当する所定数を乗算することにより逆量子化する。この逆量子化により、復号対象ブロックの周波数信号、例えば、DCT係数の組が復元される。その後、復号部３７は、周波数信号を逆直交変換処理する。逆量子化処理及び逆直交変換処理を量子化係数に対して実行することにより予測誤差信号が再生される。
【０１０３】
復号部３７は、予測ブロックの各画素値に、その画素に対応する再生された予測誤差信号を加算することにより、復号対象ブロックを再生できる。そして復号部３７は、ピクチャごとに、再生されたブロックを、符号化順序に従って結合することにより、ピクチャを再生する。復号部３７は、再生されたピクチャを記憶部３８に記憶させる。
【０１０４】
記憶部３８は、復号部３７から受け取ったピクチャを一時的に記憶する。そして記憶部３８は、予測画像生成部３６にそのピクチャを参照ピクチャとして供給する。また記憶部３８は、そのピクチャを結合部３９へ出力する。なお、記憶部３８は、予め定められた所定枚数分のピクチャを記憶し、記憶されているデータ量がその所定枚数に相当する量を超えると、符号化順序が古いピクチャから順に破棄する。
【０１０５】
結合部３９は、再生されたピクチャを時間順に再配置して、動画像データを再生する。結合部３９は、再生した動画像データを出力する。出力された動画像データは、例えば、図示しない記憶装置に記憶される。あるいは、出力された動画像データは、動画像復号装置２と接続された、図示しない表示装置に表示される。
【０１０６】
図１０は、動画像復号装置２により実行される、動画像復号処理の動作フローチャートである。動画像復号装置２は、復号対象ブロックごとに図１０に示される動画像復号処理を実行する。
可変長復号部３１は、ブロック単位で符号化されているデータを可変長復号することにより、復号対象ブロックの量子化係数、予測ベクトルの選択情報及び差分ベクトルを再生する（ステップＳ５０１）。
また、予測モード判定部３２は、符号化された動画像データに含まれるヘッダ情報から、復号対象ブロックに対して適用された予測モードを特定する（ステップＳ５０２）。そして予測モード判定部３２は、復号対象ブロックに対して適用された予測モードを予測画像生成部３６へ通知する。
【０１０７】
予測ベクトル選択部３３は、予測ベクトルの候補リストを作成し、可変長復号部３１から通知された選択情報にしたがって、その候補リストに登録されたベクトルのなかから予測ベクトルを特定する（ステップＳ５０３）。
【０１０８】
動きベクトル復号部３４は、特定された予測ベクトルを表す情報にしたがって、動きベクトル記憶部３５から、予測ベクトルとして特定された復号済みのブロックの動きベクトルを読み込む。そして動きベクトル復号部３４は、読み込んだ動きベクトルに、差分ベクトルを加算することで、復号対象ブロックの動きベクトルを復号する（ステップＳ５０４）。
【０１０９】
また、予測画像生成部３６は、復号対象ブロックについて適用された予測モードに応じて、予測ブロックを生成する（ステップＳ５０５）。
【０１１０】
復号部３７は、可変長復号部３１から受け取った量子化係数に、符号化された動画像データに含まれるヘッダ情報から取得した量子化パラメータにより決定された量子化幅に相当する所定数を乗算することにより逆量子化する。そして、復号部３７は、周波数信号を逆直交変換処理することにより予測誤差信号を再生する。その後、復号部３７は、予測ブロックの各画素値に、その画素に対応する再生された予測誤差信号を加算することにより、復号対象ブロックを再生する（ステップＳ５０６）。そして復号部３７は、ピクチャごとに、再生されたブロックを、符号化順序に従って結合することにより、ピクチャを再生する。復号部３７は、再生されたピクチャを記憶部３８に記憶させる。
そして動画像復号装置２は、復号対象ブロックについての動画像復号処理を終了する。
【０１１１】
図１１は、上記の実施形態またはその変形例による動画像符号化装置または動画像復号装置の各部の機能を実現するコンピュータプログラムが動作することにより、動画像符号化装置または動画像復号装置として動作するコンピュータの構成図である。
【０１１２】
コンピュータ１００は、ユーザインターフェース部１０１と、通信インターフェース部１０２と、記憶部１０３と、記憶媒体アクセス装置１０４と、プロセッサ１０５とを有する。プロセッサ１０５は、ユーザインターフェース部１０１、通信インターフェース部１０２、記憶部１０３及び記憶媒体アクセス装置１０４と、例えば、バスを介して接続される。
【０１１３】
ユーザインターフェース部１０１は、例えば、キーボードとマウスなどの入力装置と、液晶ディスプレイといった表示装置とを有する。または、ユーザインターフェース部１０１は、タッチパネルディスプレイといった、入力装置と表示装置とが一体化された装置を有してもよい。そしてユーザインターフェース部１０１は、例えば、ユーザの操作に応じて、符号化する動画像データあるいは復号する符号化動画像データを選択する操作信号をプロセッサ１０５へ出力する。またユーザインターフェース部１０１は、プロセッサ１０５から受け取った、復号された動画像データを表示してもよい。
【０１１４】
通信インターフェース部１０２は、コンピュータ１００を、動画像データを生成する装置、例えば、ビデオカメラと接続するための通信インターフェース及びその制御回路を有してもよい。そのような通信インターフェースは、例えば、Universal Serial Bus（ユニバーサル・シリアル・バス、USB）とすることができる。
【０１１５】
さらに、通信インターフェース部１０２は、イーサネット（登録商標）などの通信規格に従った通信ネットワークに接続するための通信インターフェース及びその制御回路を有してもよい。
【０１１６】
この場合には、通信インターフェース部１０２は、通信ネットワークに接続された他の機器から、符号化する動画像データまたは復号する符号化動画像データを取得し、それらのデータをプロセッサ１０５へ渡す。また通信インターフェース部１０２は、プロセッサ１０５から受け取った、符号化動画像データまたは復号された動画像データを通信ネットワークを介して他の機器へ出力してもよい。
【０１１７】
記憶部１０３は、例えば、読み書き可能な半導体メモリと読み出し専用の半導体メモリとを有する。そして記憶部１０３は、プロセッサ１０５上で実行される、動画像符号化処理または動画像復号処理を実行するためのコンピュータプログラム、及びこれらの処理の途中または結果として生成されるデータを記憶する。
【０１１８】
記憶媒体アクセス装置１０４は、例えば、磁気ディスク、半導体メモリカード及び光記憶媒体といった記憶媒体１０６にアクセスする装置である。記憶媒体アクセス装置１０４は、例えば、記憶媒体１０６に記憶されたプロセッサ１０５上で実行される、動画像符号化処理または動画像復号処理用のコンピュータプログラムを読み込み、プロセッサ１０５に渡す。
【０１１９】
プロセッサ１０５は、上記の実施形態または変形例による動画像符号化処理用コンピュータプログラムを実行することにより、符号化動画像データを生成する。そしてプロセッサ１０５は、生成された符号化動画像データを記憶部１０３に保存し、または通信インターフェース部１０２を介して他の機器へ出力する。またプロセッサ１０５は、上記の実施形態または変形例による動画像復号処理用コンピュータプログラムを実行することにより、符号化動画像データを復号する。そしてプロセッサ１０５は、復号された動画像データを記憶部１０３に保存し、ユーザインターフェース部１０１に表示し、または通信インターフェース部１０２を介して他の機器へ出力する。
【０１２０】
なお、動画像符号化装置１の各部の機能をプロセッサ上で実行可能なコンピュータプログラムは、コンピュータによって読み取り可能な媒体に記録された形で提供されてもよい。同様に、動画像復号装置２の各部の機能をプロセッサ上で実行可能なコンピュータプログラムは、コンピュータによって読み取り可能な媒体に記録された形で提供されてもよい。ただし、そのような記録媒体には、搬送波は含まれない。
【０１２１】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【０１２２】
１    動画像符号化装置
１０    量子化係数算出部
１１    記憶部
１２    動きベクトル計算部
１３    予測モード判定部
１４    予測画像生成部
１５    予測ベクトル選択部
１６    予測誤差算出部
１７    選択情報設定部
１８    可変長符号化部
２    動画像復号装置
３１    可変長復号部
３２    予測モード判定部
３３    予測ベクトル選択部
３４    動きベクトル復号部
３５    動きベクトル記憶部
３６    予測画像生成部
３７    復号部
３８    記憶部
３９    結合部
１００    コンピュータ
１０１    ユーザインターフェース部
１０２    通信インターフェース部
１０３    記憶部
１０４    記憶媒体アクセス装置
１０５    プロセッサ
【図１】
2014143650.tif 000004
【図２】
2014143650.tif 000005
【図３】
2014143650.tif 000006
【図４】
2014143650.tif 000007
【図５】
2014143650.tif 000008
【図６】
2014143650.tif 000009
【図７】
2014143650.tif 000010
【図８】
2014143650.tif 000011
【図９】
2014143650.tif 000012
【図１０】
2014143650.tif 000013
【図１１】
2014143650.tif 000014