(57)【要約】【課題】予測ベクトル候補の予測精度を上げること。【解決手段】動画像符号化方法であって、処理対象ブロックが参照可能なピクチャのピクチャ情報及び処理対象ブロックに対して空間的又は時間的に隣接するブロックの動きベクトルｍｖｃ（ｍｖｃｘ、ｍｖｃｙ）と、該動きベクトルｍｖｃが参照するピクチャを示す参照ピクチャ識別子とを含む動きベクトル情報を用いて、前記処理対象ブロックの動きベクトルｍｖに対する予測ベクトル候補ｍｖｃ'を、前記隣接するブロックの動きベクトルｍｖｃをスケーリングして算出する場合で、Ｓｃａｌｅ係数は小数点以下の精度としてＮビット有し、Ｎ＝８ビットの場合、所定の数式を用いて該予測ベクトル候補を０方向に補正してスケーリングし、スケーリングされた予測ベクトル候補ｍｖｃ'を用いて前記処理対象ブロックの動きベクトルとの差分を算出する。【選択図】図２５
2014112947.tif 000002
【特許請求の範囲】
【請求項１】
入力画像が分割された処理対象ブロックごとに、該処理対象ブロックの動きベクトルと該動きベクトルの予測ベクトル候補とを用いて符号化処理を行う動画像符号化装置が実行する動画像符号化方法であって、
前記処理対象ブロックが参照可能なピクチャのピクチャ情報及び前記処理対象ブロックに対して空間的又は時間的に隣接するブロックの水平成分ｍｖｃｘ及び垂直成分ｍｖｃｙを有する動きベクトルｍｖｃと、該動きベクトルｍｖｃが参照するピクチャを示す参照ピクチャ識別子とを含む動きベクトル情報を用いて、前記処理対象ブロックの動きベクトルｍｖに対する予測ベクトル候補ｍｖｃ'を、前記隣接するブロックの動きベクトルｍｖｃをスケーリングして算出する場合で、Ｓｃａｌｅ係数は小数点以下の精度としてＮビット有し、Ｎ＝８ビットの場合、
ｍｖｃｘ'＝ｓｉｇｎ（Ｓｃａｌｅ×ｍｖｃｘ）×｛（ａｂｓ（Ｓｃａｌｅ×ｍｖｃｘ）−ａ＋１２８）＞＞８｝
ｍｖｃｙ'＝ｓｉｇｎ（Ｓｃａｌｅ×ｍｖｃｙ）×｛（ａｂｓ（Ｓｃａｌｅ×ｍｖｃｙ）−ａ＋１２８）＞＞８｝
ａｂｓ（・）：絶対値を返す関数
ｓｉｇｎ（・）：符号（１または−１）を返す関数
として求め、所定量ａを、１≦ａ≦２Ｎ−２の範囲で、該予測ベクトル候補を０方向に補正してスケーリングし、
スケーリングされた予測ベクトル候補ｍｖｃ'＝（ｍｖｃｘ'、ｍｖｃｙ'）を用いて前記処理対象ブロックの動きベクトルとの差分を算出する動画像符号化方法。
【請求項２】
入力画像が分割された処理対象ブロックごとに、該処理対象ブロックの動きベクトルと該動きベクトルの予測ベクトル候補とを用いて符号化処理を行う動画像符号化装置であって、
前記処理対象ブロックが参照可能なピクチャのピクチャ情報を記憶する参照ピクチャリスト記憶部と、
前記処理対象ブロックに対して空間的又は時間的に隣接するブロックのの水平成分ｍｖｃｘ及び垂直成分ｍｖｃｙを有する動きベクトルｍｖｃ、該動きベクトルｍｖｃが参照するピクチャを示す参照ピクチャ識別子を含む動きベクトル情報を記憶する動きベクトル情報記憶部と、
前記ピクチャ情報及び前記動きベクトル情報を用いて、前記処理対象ブロックの動きベクトルｍｖに対する予測ベクトル候補ｍｖｃ'を、前記隣接するブロックの動きベクトルｍｖｃをスケーリングして算出する場合で、Ｓｃａｌｅ係数は小数点以下の精度としてＮビット有し、Ｎ＝８ビットの場合、
ｍｖｃｘ'＝ｓｉｇｎ（Ｓｃａｌｅ×ｍｖｃｘ）×｛（ａｂｓ（Ｓｃａｌｅ×ｍｖｃｘ）−ａ＋１２８）＞＞８｝
ｍｖｃｙ'＝ｓｉｇｎ（Ｓｃａｌｅ×ｍｖｃｙ）×｛（ａｂｓ（Ｓｃａｌｅ×ｍｖｃｙ）−ａ＋１２８）＞＞８｝
ａｂｓ（・）：絶対値を返す関数
ｓｉｇｎ（・）：符号（１または−１）を返す関数
として求め、所定量ａを、１≦ａ≦２Ｎ−２の範囲で、該予測ベクトル候補を０方向に補正してスケーリングする予測ベクトル生成部と、
を備える動画像符号化装置。
【請求項３】
入力画像が分割された処理対象ブロックごとに、該処理対象ブロックの動きベクトルと該動きベクトルの予測ベクトル候補とを用いて符号化処理を行う動画像符号化装置に実行させる動画像符号化プログラムであって、
前記処理対象ブロックが参照可能なピクチャのピクチャ情報及び前記処理対象ブロックに対して空間的又は時間的に隣接するブロックの水平成分ｍｖｃｘ及び垂直成分ｍｖｃｙを有する動きベクトルｍｖｃと、該動きベクトルｍｖｃが参照するピクチャを示す参照ピクチャ識別子とを含む動きベクトル情報を用いて、前記処理対象ブロックの動きベクトルｍｖに対する予測ベクトル候補ｍｖｃ'を、前記隣接するブロックの動きベクトルｍｖｃをスケーリングして算出する場合で、Ｓｃａｌｅ係数は小数点以下の精度としてＮビット有し、Ｎ＝８ビットの場合、
ｍｖｃｘ'＝ｓｉｇｎ（Ｓｃａｌｅ×ｍｖｃｘ）×｛（ａｂｓ（Ｓｃａｌｅ×ｍｖｃｘ）−ａ＋１２８）＞＞８｝
ｍｖｃｙ'＝ｓｉｇｎ（Ｓｃａｌｅ×ｍｖｃｙ）×｛（ａｂｓ（Ｓｃａｌｅ×ｍｖｃｙ）−ａ＋１２８）＞＞８｝
ａｂｓ（・）：絶対値を返す関数
ｓｉｇｎ（・）：符号（１または−１）を返す関数
として求め、所定量ａを、１≦ａ≦２Ｎ−２の範囲で、該予測ベクトル候補を０方向に補正してスケーリングし、
スケーリングされた予測ベクトル候補ｍｖｃ'＝（ｍｖｃｘ'、ｍｖｃｙ'）を用いて前記処理対象ブロックの動きベクトルとの差分を算出する、
処理を動画像符号化装置に実行させる動画像符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各ピクチャを複数のブロックに分割してブロックごとに動き補償する動画像符号化方法、動画像符号化装置、及び動画像符号化プログラムに関する。
【背景技術】
【０００２】
近年の動画像符号化では、画像をブロックに分割し、ブロックに含まれる画素を予測して予測差分を符号化することで高い圧縮率を達成している。符号化対象のピクチャ内の画素から予測画素を構成する予測モードをイントラ予測といい、動き補償と呼ばれる過去に符号化した参照画像から予測画素を構成する予測モードをインター予測という。
【０００３】
動画像符号化装置において、インター予測では、予測画素として参照する領域を動きベクトルという水平成分・垂直成分の２次元座標データで表現し、動きベクトルと画素の予測差分データを符号化する。動きベクトルは、その符号量を抑えるため、符号化対象ブロックに隣接するブロックの動きベクトルから予測ベクトルを生成し、動きベクトルと予測ベクトルとの差分ベクトルを符号化する。小さい差分ベクトルほど符号量を小さく割り当てることで、動きベクトルの符号量を削減することができ、符号効率を向上させることができる。
【０００４】
動画像復号装置においても、各ブロックで動画像符号化装置と同一の予測ベクトルを決定し、符号化された差分ベクトルと予測ベクトルを加算することによって動きベクトルを復元する。そのため、動画像符号化装置と動画像復号装置とは、同一の動きベクトル予測部を備える。
【０００５】
動画像復号装置において、各ブロックは、一般には画像の左上から右下に向かってラスタースキャンやｚスキャンの順序で復号される。そのため、動画像符号化装置及び動画像復号装置における動きベクトル予測部が、予測に利用できる周辺ブロックの動きベクトルは、動画像復号装置にて処理対象ブロックを復号するときに既に復号済みとなる左や上に隣接するブロックの動きベクトルとなる。
【０００６】
さらに、ＭＰＥＧ（Moving Picture Experts Group）−４ ＡＶＣ／Ｈ．２６４（以下、Ｈ．２６４ともいう）では、処理対象ピクチャではなく、過去に符号化、復号処理した参照ピクチャの動きベクトルを用いて予測ベクトルを決定することもある（非特許文献１）。
【０００７】
予測ベクトル決定方法の従来技術として、国際標準化団体ＩＳＯ／ＩＥＣとＩＴＵ−Ｔが共同に標準化を検討している動画像符号化方式ＨＥＶＣ（High Efficiency Video Coding）の技術が開示されている（非特許文献２）。また、参照ソフトウェアとしてはＨＭ Ｓｏｆｔｗａｒｅ（Version 3.0）が開示されている。
【０００８】
以下に、ＨＥＶＣに関する概要説明を行う。ＨＥＶＣでは、参照可能なピクチャのリスト（以下、参照ピクチャリストともいう）として、Ｌ０と、Ｌ１という２つのリストを持つ。各ブロックは、Ｌ０とＬ１それぞれに対応する動きベクトルによって、最大２つの参照ピクチャの領域をインター予測に使用することができる。
【０００９】
Ｌ０とＬ１とは一般には、表示時間の方向に対応し、Ｌ０は処理対象ピクチャに対して過去のピクチャの参照リストであり、Ｌ１は未来のピクチャの参照リストである。参照ピクチャリストの各エントリは、画素データの記憶位置、及びそのピクチャの表示時間情報ＰＯＣ（Picture Order Count）値を含む情報を有する。
【００１０】
ＰＯＣとは、各ピクチャの表示順序と相対的な表示時間を表す整数値である。ＰＯＣ値が０となるピクチャの表示時間を０としたときに、あるピクチャの表示時間は、そのピクチャのＰＯＣ値の定数倍で表すことができる。例えば、フレームの表示周期（Ｈｚ）をｆｒ、ＰＯＣ値がｐであるピクチャの表示時間は、式（１）で表すことができる。これにより、ＰＯＣはある定数（秒）を単位とした表示時間と見なすことができる。
表示時間＝p×（ｆｒ／２）  ・・・式（１）
１つの参照ピクチャリストのエントリ数が２以上であった場合、各動きベクトルは、参照ピクチャリスト内のインデックス番号（参照インデックス）によって、どの参照ピクチャを参照するかを指定する。特に参照ピクチャリストのエントリ数が１ピクチャしか含まない場合、そのリストに対応する動きベクトルの参照インデックスは自動的に０番となるため、明示的に参照インデックスを指定する必要はない。
【００１１】
すなわち、ブロックの動きベクトルは、Ｌ０／Ｌ１リスト識別子と、参照インデックスと、ベクトルデータ（Ｖｘ，Ｖｙ）とを含む。Ｌ０／Ｌ１リスト識別子と、参照インデックスとにより参照ピクチャが指定される。参照ピクチャ内の領域は、（Ｖｘ，Ｖｙ）で指定される。ＶｘとＶｙとは、それぞれ水平方向と垂直方向における参照領域の座標と処理対象ブロック（現ブロックともいう）の座標の差であり、例えば１／４画素単位で表現される。Ｌ０／Ｌ１リスト識別子と、参照インデックスとを参照ピクチャ識別子と呼び、（Ｖｘ，Ｖｙ）をベクトルデータと呼び、（０，０）のベクトルを０ベクトルと呼ぶ。
【００１２】
ＨＥＶＣにおける予測ベクトルの決定方法について説明する。予測ベクトルは、Ｌ０／Ｌ１リスト識別子と、参照インデックスとで指定された参照ピクチャごとに決定される。参照ピクチャリストがＬＸ、参照インデックスがｒｅｆｉｄｘで指定される参照ピクチャを参照する動きベクトルに対する予測ベクトルのベクトルデータｍｖｐを決定するとき、最大で３つのベクトルデータを予測ベクトル候補として算出する。
【００１３】
処理対象ブロックに対して空間方向と時間方向に隣接するブロックは、左方向に隣接したブロック、上方向に隣接したブロック、時間方向に隣接したブロックの３つに分類される。この３グループからそれぞれ最大で１本の予測ベクトル候補が選出される。
【００１４】
選出された予測ベクトル候補は、時間方向に隣接したグループ、左に隣接したグループ、上に隣接したグループの優先順序でリスト化される。このリストを配列ｍｖｐ＿ｃａｎｄとする。もし、全てのグループで予測ベクトル候補が１つも存在していなかった場合、０ベクトルをｍｖｐ＿ｃａｎｄに追加する。
【００１５】
また、候補リスト内のいずれの予測ベクトル候補を予測ベクトルとして使用するかの識別子として、予測候補インデックスｍｖｐ＿ｉｄｘを用いる。予測ベクトルｍｖｐは、ｍｖｐ＿ｃａｎｄのｍｖｐ＿ｉｄｘ番目にエントリされた予測ベクトル候補のベクトルデータとなる。
【００１６】
動画像符号化装置において、符号化対象ブロックのＬＸのｒｅｆｉｄｘを参照する動きベクトルがｍｖであったとき、ｍｖｐ＿ｃａｎｄの中で、ｍｖと最も近い予測ベクトル候補を探し、そのインデックスをｍｖｐ＿ｉｄｘとする。さらに、差分ベクトルｍｖｄを式（２）で算出し、リストＬＸの動きベクトル情報として、ｒｅｆｉｄｘ、ｍｖｄ、ｍｖｐ＿ｉｄｘが符号化される。
ｍｖｄ＝ｍｖ−ｍｖｐ  ・・・式（２）
動画像復号装置は、ｒｅｆｉｄｘ、ｍｖｄ、ｍｖｐ＿ｉｄｘを復号し、ｒｅｆｉｄｘに基づき、ｍｖｐ＿ｃａｎｄを決定し、予測ベクトルｍｖｐを、ｍｖｐ＿ｃａｎｄのｍｖｐ＿ｉｄｘ番目の予測ベクトル候補とする。動画像復号装置は、式（３）に基づき、処理対象ブロックの動きベクトルｍｖを復元する。
ｍｖ＝ｍｖｄ＋ｍｖｐ  ・・・式（３）
次に、空間方向に隣接したブロックの説明をする。図１は、従来技術（その１）を説明するための図である。図１に示す例では、左隣接のブロックと、上隣接ブロックから予測ベクトル候補を選択する手順について説明する。
【００１７】
まず、左隣接ブロックから予測ベクトル候補を選出する手順について説明する。処理対象ブロックの左側に隣接したブロックＩ、ブロックＨの順で、参照リストがＬＸでｒｅｆｉｄｘと等しい参照インデックスを持つ動きベクトルが見つかるまで探索する。参照リストがＬＸでｒｅｆｉｄｘと等しい参照インデックスを持つ動きベクトル１が見つかれば、この動きベクトル１が選択される。
【００１８】
動きベクトル１が見つからなければ、ＬＸではない参照リストＬＹの中で、参照リストＬＸのｒｅｆｉｄｘが示す参照ピクチャと同一の参照ピクチャを参照する動きベクトル２があれば、その動きベクトル２が選択される。
【００１９】
動きベクトル２が見つからなければ、インター予測による動きベクトル３が存在すれば、この動きベクトル３が選択される。参照リストＬＸのｒｅｆｉｄｘが示す参照ピクチャと同一の参照ピクチャを参照する動きベクトルが選択されなかった場合、後述するスケーリング処理が行われる。
【００２０】
次に、上隣接ブロックから予測ベクトル候補を選出する手順について説明する。処理対象ブロックの上側に隣接したブロックＥ、ブロックＤ、ブロックＡの順で、参照リストがＬＸでｒｅｆｉｄｘと等しい参照インデックスを持つ動きベクトル１が見つかるまで探索する。参照リストがＬＸでｒｅｆｉｄｘと等しい参照インデックスを持つ動きベクトル１が見つかれば、この動きベクトル１が選択される。
【００２１】
動きベクトル１が見つからなければ、ＬＸではない参照リストＬＹの中で、参照リストＬＸのｒｅｆｉｄｘが示す参照ピクチャと同一の参照ピクチャを参照する動きベクトル２があれば、その動きベクトル２が選択される。
【００２２】
動きベクトル２が見つからなければ、インター予測による動きベクトル３が存在すれば、この動きベクトル３が選択される。参照リストＬＸのｒｅｆｉｄｘが示す参照ピクチャと同一の参照ピクチャを参照する動きベクトルが選択されなかった場合、後述するスケーリング処理が行われる。
【００２３】
次に、時間方向に隣接したブロックの説明をする。図２は、従来技術（その２）を説明するための図である。図２に示す例では、時間方向に隣接するブロックから予測ベクトル候補を選択する手順について説明する。
【００２４】
まず、時間方向に隣接するブロックを含むピクチャとしてＣｏｌｌｏｃａｔｅｄ Ｐｉｃｔｕｒｅ（以下、ＣｏｌＰｉｃともいう）と呼ばれる時間方向に隣接した参照ピクチャ２０が指定される。ＣｏｌＰｉｃ２０は、Ｌ０とＬ１とのどちらかの参照リストの参照インデックス０番の参照ピクチャである。通常はＬ１の参照インデックス０番がＣｏｌＰｉｃとなる。
【００２５】
ＣｏｌＰｉｃ２０の中で処理対象ブロック１１と同一位置のブロック（Ｃｏｌブロック）２１が有する動きベクトルをｍｖＣｏｌ２２とし、ｍｖＣｏｌ２２を後述するスケーリング方法にてスケーリングして、予測ベクトル候補が生成される。
【００２６】
動きベクトルのスケーリング方法について記述する。入力の動きベクトルをｍｖｃ＝（ｍｖｃｘ、ｍｖｃｙ）とし、出力ベクトル（予測ベクトル候補）をｍｖｃ'＝（ｍｖｃｘ'、ｍｖｃｙ'）とする。次に、ｍｖｃがｍｖＣｏｌである場合を例として説明する。
【００２７】
ｍｖｃが参照するピクチャをＣｏｌＲｅｆＰｉｃ２３とする。ｍｖｃを有するピクチャ２０のＰＯＣ値をＣｏｌＰｉｃＰｏｃ、ＣｏｌＲｅｆＰｉｃ２３のＰＯＣをＣｏｌＲｅｆＰｏｃとする。現在の処理対象ピクチャ１０のＰＯＣ値をＣｕｒＰｏｃ、ＲｅｆＰｉｃＬｉｓｔ ＬＸとＲｅｆＩｄｘとで指定されるピクチャ２５のＰＯＣ値をＣｕｒｒＲｅｆＰｏｃとする。
【００２８】
なおスケーリング対象の動きベクトルが、空間方向に隣接するブロックの動きベクトルであった場合、ＣｏｌＰｉｃＰｏｃは、ＣｕｒｒＰＯＣと等しい。また、スケーリング対象の動きベクトルが、時間方向に隣接するブロックの動きベクトルであった場合、ＣｏｌＰｉｃＰｏｃはＣｏｌＰｉｃのＰＯＣ値と等しい。
【００２９】
ｍｖｃは、式（４）、式（５）に示すように、ピクチャの時間間隔の比に基づいてスケーリングされる。
ｍｖｃｘ'＝ｍｖｃｘ×（ＣｕｒｒＰｏｃ−ＣｕｒＲｅｆＰｏｃ）÷（ＣｏｌＰｉｃＰｏｃ−ＣｏｌＲｅｆＰｏｃ）  ・・・式（４）
ｍｖｃｙ'＝ｍｖｃｙ×（ＣｕｒｒＰｏｃ−ＣｕｒＲｅｆＰｏｃ）÷（ＣｏｌＰｉｃＰｏｃ−ＣｏｌＲｅｆＰｏｃ）  ・・・式（５）
ただし、除算は計算量が大きいため、例えば、以下のようにして、ｍｖｃ'は乗算とシフトで近似して算出される。
ＤｉｆｆＰｏｃＤ＝ＣｏｌＰｉｃＰＯＣ−ＣｏｌＲｅｆＰＯＣ  ・・・式（６）
ＤｉｆｆＰｏｃＢ＝ＣｕｒｒＰＯＣ−ＣｕｒｒＲｅｆＰＯＣ  ・・・式（７）
とすると、
ＴＤＢ＝Ｃｌｉｐ３（−１２８，１２７，ＤｉｆｆＰｏｃＢ）  ・・・式（８）
ＴＤＤ＝Ｃｌｉｐ３（−１２８，１２７，ＤｉｆｆＰｏｃＤ）  ・・・式（９）
ｉＸ＝（０ｘ４０００＋ａｂｓ（ＴＤＤ／２））／ＴＤＤ  ・・・式（１０）
Ｓｃａｌｅ＝Ｃｌｉｐ３（−１０２４，１０２３，（ＴＤＢ×ｉＸ＋３２）＞＞６）・・・式（１１）
ａｂｓ（・）：絶対値を返す関数
Ｃｌｉｐ３（ｘ，ｙ，ｚ）：ｘ、ｙ、ｚの中央値を返す関数
＞＞：算術右シフト
最終的に求まったＳｃａｌｅをスケーリング係数とする。この例では、Ｓｃａｌｅが２５６の場合、１倍の係数、すなわち、スケールしないことを意味する。このとき、Ｓｃａｌｅ係数は小数点以下の精度として８ビットを有し、スケーリング係数を乗算することで、動きベクトルは小数点以下の精度が８ビット拡張される。
【００３０】
次に、スケーリング係数に基づいて行うスケーリング演算は、以下のようにして算出される。
ｍｖｃｘ'＝（Ｓｃａｌｅ×ｍｖｃｘ＋１２８）＞＞８  ・・・式（１２）
ｍｖｃｙ'＝（Ｓｃａｌｅ×ｍｖｃｙ＋１２８）＞＞８  ・・・式（１３）
当業者には自明であるが、２Ｎ−１を加算してＮビット右シフトすることは、小数点以下Ｎビットの値を最も近い整数に丸めることを意味する。また、このスケーリング処理は、Ｈ．２６４（非特許文献１）でも同様の処理が行われる。このｍｖｃ'は、予測ベクトル候補となる。
【先行技術文献】
【非特許文献】
【００３１】
【非特許文献１】ISO/IEC 14496-10 (MPEG-4 Part 10) ／ ITU-T Rec.H.264
【非特許文献２】Thomas Wiegand、Woo-Jin Han、Benjamin Bross、Jens-Rainer Ohm、Gary J. Sullivan、"WD3: Working Draft 3 of High-Efficiency Video Coding" JCTVC-E603, JCT-VC 5th Meeting, 2011年3月
【発明の概要】
【発明が解決しようとする課題】
【００３２】
ＨＥＶＣやＨ．２６４において、各フレーム間の動きは、ブロックごとに動きベクトルによって表現される。通常、時間方向に隣接するブロックから予測ベクトルを生成する場合、時間方向に隣接するブロックの動きベクトルをスケーリングする。このとき、処理対象ピクチャの表示時間と処理対象ブロックが参照するピクチャの表示時間との差Ｔ１と、時間方向に隣接するブロックが属するピクチャの表示時間と、時間方向に隣接するブロックの動きベクトルが参照するピクチャの表示時間との差Ｔ２が異なる。
【００３３】
ここで、単位時間あたりの動き量を一定とするために、表示時間差の比（Ｔ１÷Ｔ２）で動きベクトルをスケーリングする。このとき、例えば式（１２）（１３）に示すように、所定の小数点以下の精度を有するスケーリング係数でスケーリングを行い、スケーリングされたベクトルと最も近い整数値を持つベクトルを予測ベクトルとしてしまっては、予測ベクトルの精度が上がらないという問題があった。
【００３４】
そこで、開示の技術は、予測ベクトルの精度を向上させることを目的とする。
【課題を解決するための手段】
【００３５】
開示の一態様における動画像符号化方法は、入力画像が分割された処理対象ブロックごとに、該処理対象ブロックの動きベクトルと該動きベクトルの予測ベクトル候補とを用いて符号化処理を行う動画像符号化装置が実行する動画像符号化方法であって、
前記処理対象ブロックが参照可能なピクチャのピクチャ情報及び前記処理対象ブロックに対して空間的又は時間的に隣接するブロックの水平成分ｍｖｃｘ及び垂直成分ｍｖｃｙを有する動きベクトルｍｖｃと、該動きベクトルｍｖｃが参照するピクチャを示す参照ピクチャ識別子とを含む動きベクトル情報を用いて、前記処理対象ブロックの動きベクトルｍｖに対する予測ベクトル候補ｍｖｃ'を、前記隣接するブロックの動きベクトルｍｖｃをスケーリングして算出する場合で、Ｓｃａｌｅ係数は小数点以下の精度としてＮビット有し、Ｎ＝８ビットの場合、
ｍｖｃｘ'＝ｓｉｇｎ（Ｓｃａｌｅ×ｍｖｃｘ）×｛（ａｂｓ（Ｓｃａｌｅ×ｍｖｃｘ）−ａ＋１２８）＞＞８｝
ｍｖｃｙ'＝ｓｉｇｎ（Ｓｃａｌｅ×ｍｖｃｙ）×｛（ａｂｓ（Ｓｃａｌｅ×ｍｖｃｙ）−ａ＋１２８）＞＞８｝
ａｂｓ（・）：絶対値を返す関数
ｓｉｇｎ（・）：符号（１または−１）を返す関数
として求め、所定量ａを、１≦ａ≦２Ｎ−２の範囲で、該予測ベクトル候補を０方向に補正してスケーリングし、
スケーリングされた予測ベクトル候補ｍｖｃ'＝（ｍｖｃｘ'、ｍｖｃｙ'）を用いて前記処理対象ブロックの動きベクトルとの差分を算出する。
【発明の効果】
【００３６】
開示の技術によれば、予測ベクトルの精度を向上させることができる。
【図面の簡単な説明】
【００３７】
【図１】従来技術（その１）を説明するための図。
【図２】従来技術（その２）を説明するための図。
【図３】ｍｖｐ'とｍｖＣｏｌとの関係を示す図。
【図４】ｍｖｐ'が正の場合のｍｖの出現確率分布を示す図。
【図５】ｍｖｐ'が負の場合のｍｖの出現確率分布を示す図。
【図６】実施例１における動画像復号装置の構成の一例を示すブロック図。
【図７】実施例１における予測ベクトル生成部の構成の一例を示すブロック図。
【図８】実施例１におけるスケーリング演算部の構成の一例を示すブロック図。
【図９】スケーリング演算部の各部の構成（その１）の一例を示すブロック図。
【図１０】スケーリング演算部の各部の構成（その２）の一例を示すブロック図。
【図１１】具体例を用いたスケーリング演算部の処理を説明するための図。
【図１２】スケーリング演算部の各部の構成（その３）の一例を示すブロック図。
【図１３】実施例１における動画像復号装置の処理の一例を示すフローチャート。
【図１４】実施例１における予測ベクトル生成部による処理（その１）の一例を示すフローチャート。
【図１５】実施例１における予測ベクトル生成部による処理（その２）の一例を示すフローチャート。
【図１６】実施例２における予測ベクトル生成部の構成の一例を示すブロック図。
【図１７】実施例２における予測ベクトル生成部による処理の一例を示すフローチャート。
【図１８】実施例３における予測ベクトル生成部の構成の一例を示すブロック図。
【図１９】実施例３における予測ベクトル生成部による処理（その１）の一例を示すフローチャート。
【図２０】実施例３における予測ベクトル生成部による処理（その２）の一例を示すフローチャート。
【図２１】実施例４における予測ベクトル生成部の構成の一例を示すブロック図。
【図２２】実施例４における予測ベクトル生成部による処理（その１）の一例を示すフローチャート。
【図２３】実施例４における予測ベクトル生成部による処理（その２）の一例を示すフローチャート。
【図２４】実施例５における動画像符号化装置の構成の一例を示すブロック図。
【図２５】動画像符号化装置の処理の一例を示すフローチャート。
【図２６】画像処理装置の構成の一例を示すブロック図。
【発明を実施するための形態】
【００３８】
まず、発明者らによる予測ベクトルの精度に関する検証について説明する。図３は、ｍｖｐ'とｍｖＣｏｌとの関係を示す図である。図３に示すように、処理対象ブロック１１と時間方向に隣接するブロック（Ｃｏｌブロック）２１の動きベクトルをｍｖＣｏｌ２２とし、処理対象ブロックの動きベクトルをｍｖとする。
【００３９】
また、ｍｖＣｏｌ２２を前述した（Ｔ１÷Ｔ２）の比で無限の実数精度でスケーリングして得られる動きベクトル（予測ベクトル候補）を、ｍｖｐ'とする。
ｍｖｐ'＝ｍｖＣｏｌ×（Ｔ１÷Ｔ２）  ・・・式（１４）
予測ベクトルは、ｍｖと等しい予測ベクトルが予測ベクトル候補から選択されると、差分ベクトルが０となり、符号化効率が向上する。よって、このｍｖｐ'がｍｖと等しい又は近似することが符号化効率を上げるのに重要となってくる。ここで、スケーリングされたｍｖｐ'とｍｖとの誤差を発明者らは調べた。
【００４０】
図４は、ｍｖｐ'が正の場合のｍｖの出現確率分布を示す図である。図４に示す確率分布は、ベクトルの水平成分に着目した場合を示す。図５は、ｍｖｐ'が負の場合のｍｖの出願確率分布を示す図である。図５に示す確率分布も、ベクトルの水平成分に着目した場合を示す。
【００４１】
発明者らは、スケーリング対象の動きベクトルから算出されたｍｖｐ'とｍｖを比較すると、図４及び図５に示すように、０ベクトル方向にｍｖの出現頻度が高くなることを発見した。そこで、以下に示す実施例は、スケーリング係数でスケーリングする際に、予測ベクトル候補を０ベクトルの方向に補正する。以下、添付図面を参照しながら各実施例について詳細に説明する。
【００４２】
［実施例１］
＜構成＞
図６は、実施例１における動画像復号装置１００の構成の一例を示すブロック図である。図６に示す動画像復号装置１００は、エントロピー復号部１０１、参照ピクチャリスト記憶部１０２、動きベクトル情報記憶部１０３、予測ベクトル生成部１０４、動きベクトル復元部１０５、予測画素生成部１０６、逆量子化部１０７、逆直交変換部１０８、復号画素生成部１０９、復号画像記憶部１１０を有する。
【００４３】
エントロピー復号部１０１は、圧縮されたストリームに対してエントロピー復号を行い、処理対象ブロックのＬ０とＬ１の参照インデックス、差分ベクトル、予測候補インデックス、直交変換係数を復号する。
【００４４】
参照ピクチャリスト記憶部１０２は、処理対象ブロックが参照可能なピクチャのＰＯＣを含むピクチャ情報や画像データの記憶位置などを記憶する。
【００４５】
動きベクトル情報記憶部１０３は、処理対象ブロックの時間的及び空間的に隣接するブロックの動きベクトル、この動きベクトルが参照するピクチャを示す参照ピクチャ識別子を含む動きベクトル情報を記憶する。これらの動きベクトル情報は、動きベクトル復元部１０５により生成される。
【００４６】
予測ベクトル生成部１０４は、エントロピー復号部１０１からＬ０とＬ１との参照インデックス（参照ピクチャ識別子）を取得し、処理対象ブロックの動きベクトルに対する予測ベクトルの候補リストを生成する。予測ベクトル生成部１０４の詳細については後述する。
【００４７】
動きベクトル復元部１０５は、エントロピー復号部１０１からＬ０とＬ１との予測候補インデックス、差分ベクトルを取得し、予測候補インデックスが示す予測ベクトル候補と差分ベクトルとを加算して動きベクトルを復元する。
【００４８】
予測画素生成部１０６は、復元された動きベクトルと復号画像記憶部１１０に記憶される復号画像とを用いて予測画素信号を生成する。
【００４９】
逆量子化部１０７は、エントロピー復号部１０１から取得した直交変換係数に対して逆量子化処理を行う。逆直交変換部１０８は、逆量子化された出力信号に対して逆直交変換処理を行い、予測誤差信号を生成する。予測誤差信号は復号画素生成部１０９に出力される。
【００５０】
復号画素生成部１０９は、予測画素信号と予測誤差信号とを加算して復号画素を生成する。
【００５１】
復号画像記憶部１１０は、復号画素生成部１０９により生成された復号画素を含む復号画像を記憶する。復号画像記憶部１１０に記憶された復号画像は、ディスプレイなどの表示部に出力される。
【００５２】
次に、予測ベクトル生成部１０４について詳細に説明する。図７は、実施例１における予測ベクトル生成部１０４の構成の一例を示すブロック図である。図７に示す予測ベクトル生成部１０４は、スケーリング係数計算部２０１、ベクトル情報取得部２０２、スケーリング演算部２０３を有する。
【００５３】
予測ベクトル生成部１０４は、処理対象ブロックの参照ピクチャ識別子、処理対象ブロックのＰＯＣ情報を入力する。ここで、処理対象ブロックの参照ピクチャ識別子に含まれる参照リスト識別子をＬＸ、参照インデックスをｒｅｆｉｄｘとする。
【００５４】
動きベクトル情報記憶部１０３は、過去に処理したブロックの動きベクトル情報を保持する。動きベクトル情報は、各動きベクトルを有するブロックが属するピクチャの識別子と、動きベクトルの参照先となるピクチャの識別子（参照ピクチャ識別子）と、動きベクトルの水平成分と垂直成分の値を記憶している。
【００５５】
ベクトル情報取得部２０２は、動きベクトル情報記憶部１０３から処理対象ブロックに隣接するブロックの動きベクトル情報を取得する。動きベクトル情報には、動きベクトル、動きベクトルを有するブロックが属するピクチャの識別子、動きベクトルの参照先の参照ピクチャ識別子が含まれる。
【００５６】
ベクトル情報取得部２０２は、処理対象ブロックに対し、空間方向または時間方向に隣接するブロックの動きベクトル情報を、順次に取得する。この処理は、前述したように、まず、左方向に隣接するブロックの動きベクトルを探索する。ベクトル情報取得部２０２は、参照リストがＬＸでｒｅｆｉｄｘと等しい参照インデックスを持つ動きベクトルが見つかるまで探索し、見つかればその動きベクトルを選択する。
【００５７】
この動きベクトルが見つからなければ、ベクトル情報取得部２０２は、ＬＸでない参照リストＬＹの中で、参照リストＬＸのｒｅｆｉｄｘが示す参照ピクチャと同一の参照ピクチャを参照する動きベクトルがあれば、その動きベクトルを選択する。
【００５８】
さらに、この動きベクトルが見つからなければ、ベクトル情報取得部２０２は、動きベクトルが存在すれば、その動きベクトルを選択する。参照リストＬＸのｒｅｆｉｄｘが示す参照ピクチャと同一の参照ピクチャを参照する動きベクトルが選択されなかった場合、次にスケーリング処理が行われる。ベクトル情報取得部２０２は、取得した動きベクトル情報をスケーリング係数計算部２０１に出力する。
【００５９】
スケーリング係数計算部２０１は、ベクトル情報取得部２０２から動きベクトル情報を取得し、参照ピクチャリスト記憶部１０２から動きベクトルが属するピクチャのＰＯＣ値を取得し、スケーリング係数を計算する。
【００６０】
ここで、処理対象ピクチャのＰＯＣ値をＣｕｒｒＰＯＣとする。スケーリング係数計算部２０１は、参照ピクチャリスト記憶部１０２から、処理対象ブロックが参照するピクチャのＰＯＣ値ＣｕｒｒＲｅｆＰｏｃと、スケーリング対象の動きベクトルが属するピクチャのＰＯＣ値ＣｏｌＰｉｃＰｏｃと、この動きベクトルが参照するピクチャのＰＯＣ値ＣｏｌＲｅｆＰｏｃとを取得する。
【００６１】
スケーリング係数計算部２０１は、スケーリング係数を次の式により算出する。
スケーリング係数を、以下のように計算する。
ＤｉｆｆＰｏｃＤ＝ＣｏｌＰｉｃＰＯＣ−ＣｏｌＲｅｆＰＯＣ  ・・・式（６）
ＤｉｆｆＰｏｃＢ＝ＣｕｒｒＰＯＣ−ＣｕｒｒＲｅｆＰＯＣ  ・・・式（７）
ＴＤＢ＝Ｃｌｉｐ３（−１２８，１２７，ＤｉｆｆＰｏｃＢ）  ・・・式（８）
ＴＤＤ＝Ｃｌｉｐ３（−１２８，１２７，ＤｉｆｆＰｏｃＤ）  ・・・式（９）
ｉＸ＝（０ｘ４０００＋ａｂｓ（ＴＤＤ／２））／ＴＤＤ  ・・・式（１０）
Ｓｃａｌｅ＝Ｃｌｉｐ３（−１０２４，１０２３，（ＴＤＢ＊ｉＸ＋３２）＞＞６）・・・式（１１）
ａｂｓ（ｘ）：ｘの絶対値を返す関数
Ｃｌｉｐ３（ｘ，ｙ，ｚ）：ｘ、ｙ、ｚの中央値を返す関数
＞＞：算術右シフト
計算されたスケーリング係数は、小数点以下の精度として８ビット精度を有する。スケーリング係数計算部２０１は、計算されたスケール係数Ｓｃａｌｅをスケーリング演算部２０３に出力する。
【００６２】
スケーリング演算部２０３は、ベクトル情報取得部２０２から取得した動きベクトル情報とスケーリング係数計算部２０１から取得したスケーリング係数とに基づき、動きベクトルをスケーリングする。
【００６３】
図８は、実施例１におけるスケーリング演算部２０３の構成の一例を示すブロック図である。スケーリング演算部２０３は、スケーリング係数計算部２０１で計算されたスケーリング係数と、ベクトル情報取得部２０２により取得されたスケーリング対象の動きベクトル（ｍｖｃｘ，ｍｖｃｙ）を入力する。スケーリング対象の動きベクトルは予測ベクトル候補である。スケーリング演算部２０３は、スケーリング後の動きベクトル（ｍｖｃｘ'，ｍｖｃｙ'）を出力する。出力される動きベクトルが、最終的な予測ベクトル候補となる。
【００６４】
図８に示すスケーリング演算部２０３は、スケーリング部３０１、補正部３０２、調整部３０３を有する。スケーリング係数は、所定の小数点以下の精度を有しており、スケーリング部３０１は、スケーリング係数を予測ベクトル候補に乗算してスケーリングされた予測ベクトル候補を求める。スケーリングされた予測ベクトル候補はスケーリング係数が有する小数点以下の精度に拡張される。
【００６５】
補正部３０２は、スケーリング部３０１でスケーリングされた予測ベクトル候補を０方向に所定量補正する。調整部３０３は、スケーリング部３０１で所定の小数点以下の精度を有するスケーリング係数でスケーリングされ、補正部３０２で補正された予測ベクトル候補を、最も近い整数値を持つ動きベクトルに変換する。以下にスケーリング部３０１、補正部３０２、調整部３０３の詳細な動作を説明する。
スケーリング部３０１は、スケーリング係数Ｓｃａｌｅ×動きベクトル（ｍｖｃｘ，ｍｖｃｙ）を算出する。スケーリング係数は、小数点以下の精度としてＮビットの精度を有していた場合、スケーリング係数を乗算することで得られるスケーリング後の動きベクトルの小数点以下の精度はＮビットに拡張される。
【００６６】
補正部３０２は、スケーリング後の動きベクトルに対し０方向に補正するために、絶対値演算をした後に所定量ａを減算する。調整部３０３は、減算後の値を最も近い整数値に丸めるため、２Ｎ−１を加算した後、Nビット右シフトする。右シフトした後に絶対値化したスケーリング後の動きベクトルの符号を乗算する。
【００６７】
以上をまとめると、スケーリング演算部２０３は、スケーリング対象となる動きベクトルに対して、以下の式により、スケーリング演算を行う。
ｍｖｃｘ'＝ｓｉｇｎ（Ｓｃａｌｅ×ｍｖｃｘ）×｛（ａｂｓ（Ｓｃａｌｅ×ｍｖｃｘ）−ａ＋２Ｎ−１）＞＞Ｎ｝  ・・・式（１５）
ｍｖｃｙ'＝ｓｉｇｎ（Ｓｃａｌｅ×ｍｖｃｙ）×｛（ａｂｓ（Ｓｃａｌｅ×ｍｖｃｙ）−ａ＋２Ｎ−１）＞＞Ｎ｝  ・・・式（１６）
ａｂｓ（・）：絶対値を返す関数
ｓｉｇｎ（・）：符号（１または−１）を返す関数
式（１５）、式（１６）で絶対値を求める理由は、（Ｓｃａｌｅ×ｍｖｃｘ）が正又は負の場合でも、aを減算することで０方向に補正するためである。式（１５）、式（１６）は、スケーリング後の動きベクトルに対し、０ベクトル方向に所定量ａ補正することを表す。aだけ０方向に補正することにより、スケーリング演算部２０３が出力する予測ベクトル候補の平均値を０に近づけることが出来る。
【００６８】
例えば、式（１５）、式（１６）のＮを８とした場合、式（１５）、式（１６）はそれぞれ式（１７）、式（１８）になる。
ｍｖｃｘ'＝ｓｉｇｎ（Ｓｃａｌｅ×ｍｖｃｘ）×｛（ａｂｓ（Ｓｃａｌｅ×ｍｖｃｘ）−ａ＋１２８）＞＞８｝  ・・・式（１７）
ｍｖｃｙ'＝ｓｉｇｎ（Ｓｃａｌｅ×ｍｖｃｙ）×｛（ａｂｓ（Ｓｃａｌｅ×ｍｖｃｙ）−ａ＋１２８）＞＞８｝  ・・・式（１８）
発明者らは所定量ａに対する実験を行ったところ、所定量ａが、１≦ａ≦２Ｎ−２の範囲にあるときに、符号化効率がよくなることが判明した。よって、例えばＮ＝８の場合、所定量ａは、１≦ａ≦６４のいずれかの値とする。
【００６９】
ここで、所定量ａの値については、上記の範囲の固定値でもよい。また、シーン毎や、スケーリング係数に応じて最適な値を動的に求め、その値を用いてよい。スケーリング係数に応じて値を動的に変更する例は、後述する。
【００７０】
図９は、スケーリング演算部２０３の各部の構成（その１）の一例を示すブロック図である。図９に示す例では、スケーリング部３０１が、式（１５）、式（１６）の（Ｓｃａｌｅ×ｍｖｃｘ）を算出する。
【００７１】
補正部３０２は、（Ｓｃａｌｅ×ｍｖｃｘ）に対し、絶対値演算ａｂｓ（Ｓｃａｌｅ×ｍｖｃｘ）を行い、この値から所定量ａを減算する。また、補正部３０２は、（Ｓｃａｌｅ×ｍｖｃｘ）に対し、ｓｉｇｎ（Ｓｃａｌｅ×ｍｖｃｘ）を計算し、符号を求める。
【００７２】
調整部３０３は、所定量ａが減算された値に所定量２Ｎ−１を加算し、Ｎビットシフトする。調整部３０３は、Ｎビットシフトした値に符号を乗算することで、スケーリング後の動きベクトル（ｍｖｃｘ'，ｍｖｃｙ'）を予測ベクトル候補として出力する。
【００７３】
図１０は、スケーリング演算部２０３の各部の構成（その２）の一例を示すブロック図である。図１０に示す例では、補正部３０４は、ａｂｓ（Ｓｃａｌｅ×ｍｖｃｘ）に２Ｎ−１−ａを加算する。
【００７４】
調整部３０５は、補正部３０４から出力される値に対してＮビットシフト演算を行い、符号を乗算する。スケーリング部３０１の処理は、図９に示すスケーリング部３０１の処理と同様である。
【００７５】
図１１は、具体例を用いたスケーリング演算部２０３の処理を説明するための図である。図１１に示す例は、入力ストリームが静止した物体を写した動画像を圧縮したものとする。しかし、静止した物体を写した動画像であっても、各画像に乗っているノイズなどにより、動きベクトルとして０でない小さいベクトルが選択される場合がある。
【００７６】
ここで、入力ストリームが完全に静止しており、０ベクトルが予測されることが期待される状況とする。時間方向に隣接した動きベクトルが０でなかった場合、例えば、（ｍｖｃｘ、ｍｖｃｙ）＝（２、０）（画素単位で言うと（２／４画素、０画素）の動き）で、Ｓｃａｌｅ＝６４として１／４倍にスケーリングする例を考える。このとき、ｍｖｃｘ／４＝０．５であるために、出力する予測ベクトル候補としてｍｖｃｘ'＝０を選択するか、ｍｖｃｘ'＝１を選択するか、の２通りが考えられる。
【００７７】
このとき、式（１２）、式（１３）に従うスケーリング演算方法では、ｍｖｃｘ'＝１となる（図１１に示す予測ベクトル候補２）。実施例の式（１５）、式（１６）に従うスケーリング演算部２０３は、まず、スケーリング部３０１は、２（ｍｖｃｘ）×６４（Ｓｃａｌｅ）＝１２８を出力する。補正部３０２は、１２８−a＋１２８＝２５６−aとする。上記のaの範囲においては、調整部３０３は、８ビットシフトし、ｍｖｃｘ'＝０となる（図１１に示す予測ベクトル候補１）。
【００７８】
よって、（ｍｖｃｘ'、ｍｖｃｙ'）＝（０、０）となり、スケーリング演算部２０３は、期待される静止した予測ベクトル候補を得ることができる。
【００７９】
ここで、ｍｖが（０，０）である頻度がＮ０回で、ｍｖが（１，０）である頻度がＮ１回であった場合、Ｎ０＞Ｎ１であれば、予測ベクトルが０ベクトルになる回数が従来技術よりも増加し、差分ベクトルの符号量が低下し、符号化効率が向上する。
【００８０】
また、スケーリング演算方法は、次のような方法であってもよい。図１２は、スケーリング演算部２０３の各部の構成（その３）の一例を示すブロック図である。図１２に示す例では、所定量ａをスケーリング係数の大きさに基づいて計算する。２Ｎ−１−ａをオフセットと呼ぶ。
【００８１】
図１２に示す補正部３０６は、オフセット計算部３６１を有する。オフセット計算部３６１は、スケーリング係数をスケーリング部３０１から取得し、スケーリング係数の大きさに基づいて、所定量ａを計算し、オフセット（２Ｎ−１−ａ）を計算する。例えば、所定量ａを、例えば次の式により計算する。
ａ＝ＭＩＮ（２Ｎ−２、ａｂｓ（Ｓｃａｌｅ）＞＞３）  ・・・式（１９）
ＭＩＮ（ｘ、ｙ）：ｘとｙで小さい方を返す関数
スケーリング係数Ｓｃａｌｅの絶対値が大きいとき、所定量ａが大きくなるので、０ベクトル方向に丸める度合いが大きくなる。式（１９）は、スケーリング係数が大きくなればａの値が大きくなり、ａの上限値が２Ｎ−２であることを表す式である。
【００８２】
以上により、予測ベクトル候補をスケーリングするときに、０ベクトル方向に補正をすることで、予測ベクトルの精度を上げることができる。
【００８３】
＜動作＞
次に、実施例１における動画像復号装置１００の動作について説明する。図１３は、実施例１における動画像復号装置の処理の一例を示すフローチャートである。図１３に示す処理は、１処理単位ブロックにおける復号処理である。
【００８４】
ステップＳ１０１で、エントロピー復号部１０１で、入力されたストリームデータをエントロピー復号する。エントロピー復号部１０１は、処理対象ブロックのＬ０の参照インデックスと差分ベクトル、予測候補インデックス、Ｌ１の参照インデックスと差分ベクトル、予測候補インデックスと、直交変換係数を復号する。
【００８５】
ステップＳ１０２で、予測ベクトル生成部１０４は、復号されたＬ０とＬ１との参照インデックス、動きベクトル情報などを用いて、Ｌ０とＬ１の予測ベクトル候補のリストを算出する。
【００８６】
ステップＳ１０３で、動きベクトル復元部１０５は、エントロピー復号部１０１で復号されたＬ０とＬ１の予測候補インデックスと差分ベクトル情報を取得する。動きベクトル復元部１０５は、予測ベクトル候補リストの中から予測候補インデックスによって識別される予測ベクトルをＬ０とＬ１それぞれ算出する。動きベクトル復元部１０５は、予測ベクトルと差分ベクトルとを加算することによりＬ０とＬ１それぞれの動きベクトルを復元する。
【００８７】
ステップＳ１０４で、動きベクトル復元部１０５は、復元したＬ０とＬ１の参照インデックスと、動きベクトル情報とを動きベクトル情報記憶部１０３に記憶する。これらの情報は、以降のブロックの復号処理で用いられる。
【００８８】
ステップＳ１０５で、予測画素生成部１０６は、Ｌ０動きベクトルとＬ１動きベクトルを取得し、復号画像記憶部１１０から動きベクトルが参照する領域の画素データを取得し、予測画素信号を生成する。
【００８９】
ステップＳ１０６で、逆量子化部１０７は、エントロピー復号部１０１で復号された直交変換係数を取得し、逆量子化処理を行う。
【００９０】
ステップＳ１０７で、逆直交変換部１０８で、逆量子化された信号に対し、逆直交変換処理を行う。逆直交変換処理の決定、予測誤差信号が生成される。
【００９１】
なお、ステップＳ１０２〜Ｓ１０４の処理と、ステップＳ１０６、Ｓ０７の処理とは、並列で行われ、順不同である。
【００９２】
ステップＳ１０８で、復号画素生成部１０９は、予測画素信号と予測誤差信号とを加算し、復号画素を生成する。
【００９３】
ステップＳ１０９で、復号画像記憶部１１０は、復号画素を含む復号画像を記憶する。以上で、ブロックの復号処理が終了し、次のブロックの復号処理に移行する。
【００９４】
（空間方向に隣接するブロックの予測ベクトル候補）
次に、予測ベクトル生成部１０４の動作について説明する。まず、処理対象ブロックと空間方向で隣接するブロックの予測ベクトル候補を生成する処理について説明する。図１４は、実施例１における予測ベクトル生成部による処理（その１）の一例を示すフローチャートである。図１４に示すステップＳ２０１で、ベクトル情報取得部２０２は、処理対象ブロックに対して空間方向に隣接したブロック（上隣接ブロック及び左隣接ブロック）の動きベクトル情報を、順次取得する。動きベクトル情報の取得については前述した通りである。
【００９５】
ステップＳ２０２で、ベクトル情報取得部２０２は、参照リストＬＸのｒｅｆｉｄｘが示す参照ピクチャと同一の参照ピクチャを参照する動きベクトル（所定の動きベクトルとも言う）が選択されたか否かを判定する。所定の動きベクトルが選択されていれば（ステップＳ２０２−ＹＥＳ）ステップＳ２０５に進み、所定の動きベクトルが選択されていなければ（ステップＳ２０２−ＮＯ）ステップＳ２０３に進む。
【００９６】
ステップＳ２０３で、スケーリング係数計算部２０１は、前述した式（５）〜（１０）を用いてスケーリング係数を計算する。
【００９７】
ステップＳ２０４で、スケーリング演算部２０３は、スケーリング後の動きベクトル（予測ベクトル候補）に対し、０ベクトル方向に所定量補正を行い、ビットシフト演算を行う。
【００９８】
ステップＳ２０５で、スケーリング演算部２０３は、スケーリング後の補正された動きベクトルを予測ベクトル候補として出力する。また、スケーリング演算部２０３は、所定の動きベクトルであれば、スケーリング演算を行わずに、所定の動きベクトルを予測ベクトル候補として出力する。
【００９９】
（時間方向に隣接するブロックの予測ベクトル候補）
次に、処理対象ブロックと時間方向で隣接するブロックの予測ベクトル候補を生成する処理について説明する。図１５は、実施例１における予測ベクトル生成部による処理（その２）の一例を示すフローチャートである。
【０１００】
図１５に示すステップＳ３０１で、ベクトル情報取得部２０２は、処理対象ブロックに対して時間方向に隣接したブロックの動きベクトル情報を取得する。動きベクトル情報の取得については前述した通りである。
【０１０１】
ステップＳ３０２で、スケーリング係数計算部２０１は、前述した式（５）〜（１０）を用いてスケーリング係数を計算する。
【０１０２】
ステップＳ３０３で、スケーリング係数計算部２０１は、スケーリング係数Ｓｃａｌｅが１でないか否かを判定する。スケーリング係数が１でなければ（ステップＳ３０３−ＹＥＳ）ステップＳ３０４に進み、スケーリング係数が１であれば（ステップＳ３０３−ＮＯ）ステップＳ３０５に進む。
【０１０３】
ステップＳ３０４で、スケーリング演算部２０３は、スケーリング後の動きベクトル（予測ベクトル候補）に対し、０ベクトル方向に所定量補正を行い、ビットシフト演算を行う。
【０１０４】
ステップＳ３０５で、スケーリング演算部２０３は、スケーリング後の補正された動きベクトルを予測ベクトル候補として出力する。また、スケーリング演算部２０３は、スケーリング係数が１であれば、スケーリング演算を行わずに、その動きベクトルを予測ベクトル候補として出力する。
【０１０５】
以上、実施例１によれば、発明者らの発見に基づき、予測ベクトル候補を０ベクトル方向に補正することで、予測ベクトルの精度を向上させ、差分ベクトルの符号量を小さくし、符号化効率を向上させることができる。
【０１０６】
［実施例２］
次に、実施例２における動画像復号装置について説明する。実施例２では、予測ベクトル候補の動きベクトルが属するピクチャが、処理対象ブロックと空間方向に隣接するか、時間方向に隣接するかでスケーリング演算を切り替える。
【０１０７】
＜構成＞
実施例２における動画像復号装置の構成は、予測ベクトル生成部以外は実施例１と同様であるため、以下、予測ベクトル生成部について説明する。
【０１０８】
図１６は、実施例２における予測ベクトル生成部４００の構成の一例を示すブロック図である。図１６に示す例では、予測ベクトル生成部４００は、スケーリング演算部を複数有し、これらを適応的に切り替える構成である。図１６に示す構成で、実施例１における構成と同様のものは同じ符号を付し、その説明を省略する。
【０１０９】
ブロック判定部４０１は、予測ベクトル候補の生成に使用する動きベクトルを有するブロックが、処理対象ブロックと空間方向に隣接しているか、時間方向に隣接しているかを判定する。ブロック判定部４０１は、時間方向に隣接していればスケーリング演算部Ａ４０２、空間方向に隣接していればスケーリング演算部Ｂ４０３に切り替える。
【０１１０】
スケーリング演算部Ａ４０２は、実施例１のスケーリング演算部２０３と同様の処理（式（１５）、式（１６）を用いるスケーリング演算）を行い、スケーリング対象の予測ベクトル候補を補正する。
【０１１１】
スケーリング演算部Ｂ４０３は、式（１２）、式（１３）を用いて、予測ベクトル候補をスケーリングする。各スケーリング演算部で生成された動きベクトルが、予測ベクトル候補となる。
【０１１２】
これは、予測ベクトル候補の生成に使用する動きベクトルが属するブロックが、処理対象ブロックと空間方向に隣接しているか、時間方向に隣接しているかで、ｍｖの出現頻度の偏りが異なってくると考えられるからである。時間方向に隣接するか、空間方向に隣接するかを示す情報を隣接情報と呼ぶ。
【０１１３】
例えば、時間方向に隣接する場合は、スケーリングを行うことが多いため、実施例１で説明した補正を行うことで、符号化効率を向上させることができる。一方、空間方向に隣接する場合は、そもそもスケーリングを行うことが少ないため、式（１２）、式（１３）によりスケーリングを行っても問題にはならない。
【０１１４】
なお、実施例２では、複数のスケーリング演算部を用いる例について説明したが、１つのスケーリング演算部でも実施することができる。例えば、ブロック判定部４０１は、隣接情報をスケーリング演算部に通知する。
【０１１５】
スケーリング演算部は、隣接情報が時間方向を示せば、式（１５）、式（１６）を用いてスケーリングを行い、隣接情報が空間方向を示せば、式（１５）、式（１６）の所定量ａを減算する処理を省略してスケーリングを行えばよい。
【０１１６】
これにより、ブロック判定部４０１の判定結果により、所定量ａを減算するかしないかを切り替えれば、１つのスケーリング演算部で実施例２を実施することができる。
【０１１７】
＜動作＞
次に、実施例２における動画像復号装置の処理について説明する。復号処理は、図１３に示す処理と同様であるため説明を省略する。
【０１１８】
図１７は、実施例２における予測ベクトル生成部による処理の一例を示すフローチャートである。
【０１１９】
ステップＳ４０１で、予測ベクトル生成部４００は、予測ベクトル候補の動きベクトルを有するブロックが、処理対象ブロックと空間方向に隣接するか、時間方向に隣接するかを判定する。この判定は、ピクチャ識別子を参照すれば判定できる。時間方向に隣接すれば（ステップＳ４０１−ＹＥＳ）ステップＳ４０２に進み、空間方向に隣接すれば（ステップＳ４０１−ＮＯ）ステップＳ４０７に進む。
【０１２０】
ステップＳ４０２〜Ｓ４０６は、図１５で説明したステップＳ３０１〜Ｓ３０５と同様であるため説明を省略する。スケーリング演算Ａは、スケーリング演算部Ａ４０２により行われる。
【０１２１】
ステップＳ４０７〜Ｓ４０９、Ｓ４１１は、図１４で説明したステップＳ２０１〜Ｓ２０３、Ｓ２０５と同様である。
【０１２２】
ステップＳ４１０で、スケーリング演算部Ｂ４０３は、式（１２）、式（１３）に示すスケーリング演算を行う。
【０１２３】
以上、実施例２によれば、予測ベクトル候補の動きベクトルが属するブロックの隣接情報に応じて、スケーリング演算処理を適応的に切り替え、予測ベクトルの精度を向上させることができる。
【０１２４】
［実施例３］
次に、実施例３における動画像復号装置について説明する。実施例３では、予測ベクトル候補の動きベクトルの大きさに基づいて、スケーリング演算を切り替える。
【０１２５】
＜構成＞
実施例３における動画像復号装置の構成は、予測ベクトル生成部以外は実施例１と同様であるため、以下、予測ベクトル生成部について説明する。
【０１２６】
図１８は、実施例３における予測ベクトル生成部５００の構成の一例を示すブロック図である。図１８に示す例では、予測ベクトル生成部５００は、スケーリング演算部を複数有し、これらを適応的に切り替える構成である。図１８に示す構成で、実施例１における構成と同様のものは同じ符号を付し、その説明を省略する。
【０１２７】
動きベクトル判定部５０１は、入力されたスケーリング前の動きベクトル（予測ベクトル候補）の大きさに応じて、スケーリング演算部を切り替える。例えば、動きベクトル判定部５０１は、取得した動きベクトルの大きさが所定値（例えば１６）以下となるか否かを判定する。
【０１２８】
動きベクトル判定部５０１は、動きベクトルの大きさが所定値以下であれば、スケーリング演算部Ａ５０２、動きベクトルの大きさが所定値より大きければ、スケーリング演算部Ｂ５０３に切り替える。
【０１２９】
スケーリング演算部Ａ５０２は、実施例１のスケーリング演算部２０３と同様の処理（式（１５）、式（１６）を用いるスケーリング演算）を行い、スケーリング対象の予測ベクトル候補を補正する。
【０１３０】
スケーリング演算部Ｂ５０３は、式（１２）、式（１３）を用いて、予測ベクトル候補をスケーリングする。各スケーリング演算部で生成された動きベクトルが、最終的な予測ベクトル候補となる。
【０１３１】
これは、スケーリング前の動きベクトル（予測ベクトル候補）の大きさによって、ｍｖの出現頻度の偏りが異なってくる可能性があるからである。動きベクトルの絶対値が小さいほど、予測ベクトルとの誤差の影響が大きくなるので、動きベクトルの絶対値が小さい場合に、実施例１で説明した補正処理を行う。
【０１３２】
なお、実施例３では、複数のスケーリング演算部を用いる例について説明したが、１つのスケーリング演算部でも実施することができる。例えば、動きベクトル判定部５０１は、動きベクトルの大きさが所定値以下であるか否かの判定結果をスケーリング演算部に通知する。
【０１３３】
スケーリング演算部は、判定結果が、所定値以下であることを示せば、式（１５）、式（１６）を用いてスケーリングを行い、判定結果が、所定値より大きいことを示せば、式（１５）、式（１６）の所定量ａを減算する処理を省略してスケーリングを行えばよい。
【０１３４】
これにより、動きベクトル判定部５０１の判定結果により、所定量ａを減算するかしないかを切り替えれば、１つのスケーリング演算部で実施例３を実施することができる。
【０１３５】
＜動作＞
次に、実施例３における動画像復号装置の処理について説明する。復号処理は、図１３に示す処理と同様であるため説明を省略する。実施例３における予測ベクトル生成部による処理について説明する。
【０１３６】
（空間方向に隣接するブロックの予測ベクトル候補）
図１９は、実施例３における予測ベクトル生成部による処理（その１）の一例を示すフローチャートである。図１９に示すステップＳ５０１〜５０３の処理は、図１４に示すステップＳ２０１〜Ｓ２０３の処理と同様である。
【０１３７】
ステップＳ５０４で、動きベクトル判定部５０１は、動きベクトル（予測ベクトル候補）の大きさが所定値以下であるか否かを判定する。動きベクトルの大きさが所定値以下であれば（ステップＳ５０４−ＹＥＳ）ステップＳ５０５に進み、動きベクトルの大きさが所定値より大きければ（ステップＳ５０４−ＮＯ）ステップＳ５０６に進む。
【０１３８】
ステップＳ５０５で、スケーリング演算部Ａ５０２は、式（１５）、式（１６）を用いて、所定量ａで補正を行うスケーリング演算を行う。
【０１３９】
ステップＳ５０６で、スケーリング演算部Ｂ５０３は、式（１２）、式（１３）を用いて、スケーリング演算を行う。
【０１４０】
ステップＳ５０７で、予測ベクトル生成部５００は、各スケーリング演算部で算出された動きベクトルを予測ベクトル候補として出力する。また、予測ベクトル生成部５００は、所定の動きベクトルであれば、スケーリング演算を行わずに、所定の動きベクトルを予測ベクトル候補として出力する。
【０１４１】
（時間方向に隣接するブロックの予測ベクトル候補）
図２０は、実施例３における予測ベクトル生成部による処理（その２）の一例を示すフローチャートである。
【０１４２】
図２０に示すステップＳ６０１〜Ｓ６０３は、図１５に示すステップＳ３０１〜Ｓ３０３の処理と同様である。
【０１４３】
ステップＳ６０４で、動きベクトル判定部５０１は、動きベクトル（予測ベクトル候補）の大きさが所定値以下であるか否かを判定する。動きベクトルの大きさが所定値以下であれば（ステップＳ６０４−ＹＥＳ）ステップＳ６０５に進み、動きベクトルの大きさが所定値より大きければ（ステップＳ６０４−ＮＯ）ステップＳ６０６に進む。
【０１４４】
ステップＳ６０５で、スケーリング演算部Ａ５０２は、式（１５）、式（１６）を用いて、所定量ａで補正を行うスケーリング演算を行う。
【０１４５】
ステップＳ６０６で、スケーリング演算部Ｂ５０３は、式（１２）、式（１３）を用いて、スケーリング演算を行う。
【０１４６】
ステップＳ６０７で、予測ベクトル生成部５００は、各スケーリング演算部で算出された動きベクトルを予測ベクトル候補として出力する。また、予測ベクトル生成部５００は、スケーリング係数が１であれば、スケーリング演算を行わずに、その動きベクトルを予測ベクトル候補として出力する。
【０１４７】
以上、実施例３によれば、予測ベクトル候補の動きベクトルの大きさに応じて、スケーリング演算処理を適応的に切り替え、予測ベクトルの精度を向上させることができる。
【０１４８】
［実施例４］
次に、実施例４における動画像復号装置について説明する。実施例４では、スケーリング前の動きベクトル（予測ベクトル候補）の属するピクチャの表示時間と、動きベクトルが参照するピクチャの表示時間との差に基づいて、スケーリング演算を切り替える。
【０１４９】
＜構成＞
実施例４における動画像復号装置の構成は、予測ベクトル生成部以外は実施例１と同様であるため、以下、予測ベクトル生成部について説明する。
【０１５０】
図２１は、実施例４における予測ベクトル生成部６００の構成の一例を示すブロック図である。図２１に示す例では、予測ベクトル生成部６００は、スケーリング演算部を複数有し、これらを適応的に切り替える構成である。図２１に示す構成で、実施例１における構成と同様のものは同じ符号を付し、その説明を省略する。
【０１５１】
時間差判定部６０１は、スケーリング前の動きベクトル（予測ベクトル候補）の属するピクチャの表示時間と、動きベクトルが参照するピクチャの表示時間との差に応じて、スケーリング演算部を切り替える。
【０１５２】
例えば、時間差判定部６０１は、処理対象ブロックの参照ピクチャ識別子と、処理対象ピクチャのＰＯＣ値を取得する。また、時間差判定部６０１は、ベクトル情報取得部２０２が取得した動きベクトルが属するピクチャの識別子と、その動きベクトルが参照するピクチャの識別子を取得する。
【０１５３】
時間差判定部６０１は、取得した各ピクチャのＰＯＣ値を参照ピクチャリスト記憶部１０２から取得し、スケーリング前の動きベクトル（予測ベクトル候補）の属するピクチャのＰＯＣ値と、動きベクトルが参照するピクチャのＰＯＣ値との差を算出する。時間差判定部６０１は、このＰＯＣを用いて算出した時間差（間隔）が、所定値（例えば４）以下となるか否かを判定する。
【０１５４】
時間差判定部６０１は、ＰＯＣの時間差（間隔）が所定値以下であれば、スケーリング演算部Ａ６０２、ＰＯＣの時間差が所定値より大きければ、スケーリング演算部Ｂ６０３に切り替える。
【０１５５】
スケーリング演算部Ａ６０２は、実施例１のスケーリング演算部２０３と同様の処理（式（１５）、式（１６）を用いるスケーリング演算）を行い、スケーリング後の予測ベクトル候補を補正する。
【０１５６】
スケーリング演算部Ｂ６０３は、式（１２）、式（１３）を用いて、予測ベクトル候補をスケーリングする。各スケーリング演算部で生成された動きベクトルが、最終的な予測ベクトル候補となる。
【０１５７】
これは、スケーリング前の動きベクトル（予測ベクトル候補）の属するピクチャの表示時間と、動きベクトルが参照するピクチャの表示時間との差によって、ｍｖの出現頻度の偏りが異なってくる可能性があるからである。
【０１５８】
なお、実施例４では、複数のスケーリング演算部を用いる例について説明したが、１つのスケーリング演算部でも実施することができる。例えば、時間差判定部６０１は、算出した時間差が所定値以下であるか否かの判定結果をスケーリング演算部に通知する。
【０１５９】
スケーリング演算部は、判定結果が、所定値以下であることを示せば、式（１５）、式（１６）を用いてスケーリングを行い、判定結果が、所定値より大きいことを示せば、式（１５）、式（１６）の所定量ａを減算する処理を省略してスケーリングを行えばよい。
【０１６０】
これにより、時間差判定部６０１の判定結果により、所定量ａを減算するかしないかを切り替えれば、１つのスケーリング演算部で実施例４を実施することができる。
【０１６１】
＜動作＞
次に、実施例４における動画像復号装置の処理について説明する。復号処理は、図１３に示す処理と同様であるため説明を省略する。実施例４における予測ベクトル生成部による処理について説明する。
【０１６２】
（空間方向に隣接するブロックの予測ベクトル候補）
図２２は、実施例４における予測ベクトル生成部による処理（その１）の一例を示すフローチャートである。図２２に示すステップＳ７０１〜７０３の処理は、図１４に示すステップＳ２０１〜Ｓ２０３の処理と同様である。
【０１６３】
ステップＳ７０４で、時間差判定部６０１は、スケーリング前の動きベクトル（予測ベクトル候補）の属するピクチャの表示時間と、動きベクトルが参照するピクチャの表示時間との差が所定値以下であるか否かを判定する。時間差が所定値以下であれば（ステップＳ７０４−ＹＥＳ）ステップＳ７０５に進み、時間差が所定値より大きければ（ステップＳ７０４−ＮＯ）ステップＳ７０６に進む。
【０１６４】
ステップＳ７０５で、スケーリング演算部Ａ６０２は、式（１５）、式（１６）を用いて、所定量ａで補正を行うスケーリング演算を行う。
【０１６５】
ステップＳ７０６で、スケーリング演算部Ｂ６０３は、式（１２）、式（１３）を用いて、スケーリング演算を行う。
【０１６６】
ステップＳ７０７で、予測ベクトル生成部６００は、各スケーリング演算部で算出された動きベクトルを予測ベクトル候補として出力する。また、予測ベクトル生成部６００は、所定の動きベクトルであれば、スケーリング演算を行わずに、所定の動きベクトルを予測ベクトル候補として出力する。
【０１６７】
（時間方向に隣接するブロックの予測ベクトル候補）
図２３は、実施例４における予測ベクトル生成部による処理（その２）の一例を示すフローチャートである。
【０１６８】
図２３に示すステップＳ８０１〜Ｓ８０３は、図１５に示すステップＳ３０１〜Ｓ３０３の処理と同様である。
【０１６９】
ステップＳ８０４で、時間差判定部６０１は、スケーリング前の動きベクトル（予測ベクトル候補）の属するピクチャの表示時間と、動きベクトルが参照するピクチャの表示時間との差が所定値以下であるか否かを判定する。時間差が所定値以下であれば（ステップＳ８０４−ＹＥＳ）ステップＳ８０５に進み、時間差が所定値より大きければ（ステップＳ８０４−ＮＯ）ステップＳ８０６に進む。
【０１７０】
ステップＳ８０５で、スケーリング演算部Ａ６０２は、式（１５）、式（１６）を用いて、所定量ａで補正を行うスケーリング演算を行う。
【０１７１】
ステップＳ８０６で、スケーリング演算部Ｂ６０３は、式（１２）、式（１３）を用いて、スケーリング演算を行う。
【０１７２】
ステップＳ８０７で、予測ベクトル生成部６００は、各スケーリング演算部で算出された動きベクトルを予測ベクトル候補として出力する。また、予測ベクトル生成部６００は、スケーリング係数が１であれば、スケーリング演算を行わずに、その動きベクトルを予測ベクトル候補として出力する。
【０１７３】
以上、実施例４によれば、スケーリング前の動きベクトルの属するピクチャの表示時間と、動きベクトルが参照するピクチャの表示時間との差に応じて、スケーリング演算処理を適応的に切り替え、予測ベクトルの精度を向上させることができる。
【０１７４】
［実施例５］
次に、実施例５における動画像符号化装置について説明する。実施例５における動画像符号化装置は、実施例１〜４のいずれかの予測ベクトル生成部を有する動画像符号化装置である。
【０１７５】
＜構成＞
図２４は、実施例５における動画像符号化装置７００の構成の一例を示すブロック図である。図２４に示す動画像符号化装置７００は、動き検出部７０１、参照ピクチャリスト記憶部７０２、復号画像記憶部７０３、動きベクトル情報記憶部７０４、予測ベクトル生成部７０５、差分ベクトル算出部７０６を有する。
【０１７６】
また、動画像符号化装置７００は、予測画素生成部７０７、予測誤差生成部７０８、直交変換部７０９、量子化部７１０、逆量子化部７１１、逆直交変換部７１２、復号画素生成部７１３、エントロピー符号化部７１４を有する。
【０１７７】
動き検出部７０１は、原画像を取得し、参照ピクチャリスト記憶部７０２から参照ピクチャの記憶位置を取得し、復号画像記憶部７０３から参照ピクチャの画素データを取得する。動き検出部７０１は、Ｌ０、Ｌ１の参照インデックスと動きベクトルを検出する。動き検出部７０１は、検出された動きベクトルが参照する参照画像の領域位置情報を予測画素生成部７０７に出力する。
【０１７８】
参照ピクチャリスト記憶部７０２は、参照ピクチャの記憶位置と、処理対象ブロックが参照可能なピクチャのＰＯＣ情報を含むピクチャ情報を記憶する。
【０１７９】
復号画像記憶部７０３は、動き補償の参照ピクチャとして利用するため、過去に符号化処理し、動画像符号化装置内で局所復号処理されたピクチャを記憶する。
【０１８０】
動きベクトル情報記憶部７０４は、動き検出部７０１で検出された動きベクトル及びＬ０とＬ１の参照インデックス情報を含む動きベクトル情報を記憶する。動きベクトル情報記憶部７０４は、例えば、処理対象ブロックに対して空間的及び時間的に隣接するブロックの動きベクトル、この動きベクトルが参照するピクチャを示す参照ピクチャ識別子を含む動きベクトル情報を記憶する。
【０１８１】
予測ベクトル生成部７０５は、Ｌ０とＬ１とで予測ベクトル候補リストを生成する。予測ベクトル候補を生成する処理は、実施例１〜４で説明した処理と同様である。
【０１８２】
差分ベクトル算出部７０６は、動き検出部７０１からＬ０とＬ１の動きベクトルを取得し、予測ベクトル生成部７０５からＬ０とＬ１の予測ベクトル候補リストを取得し、それぞれの差分ベクトルを算出する。
【０１８３】
例えば、差分ベクトル算出部７０６は、Ｌ０とＬ１の動きベクトルに最も近い予測ベクトルを予測ベクトル候補リストの中からそれぞれ選択し、Ｌ０とＬ１の予測ベクトルと予測ベクトル候補インデックスをそれぞれ決定する。
【０１８４】
さらに、差分ベクトル算出部７０６は、Ｌ０の動きベクトルからＬ０の予測ベクトルを減算してＬ０の差分ベクトルを生成し、Ｌ１の動きベクトルからＬ１の予測ベクトルを減算してＬ１の差分ベクトルを生成する。
【０１８５】
予測画素生成部７０７は、入力された参照画像の領域位置情報に基づいて、復号画像記憶部７０３から参照画素を取得し、予測画素信号を生成する。
【０１８６】
予測誤差生成部７０８は、原画像と予測画素信号とを取得し、原画像と予測画素信号の差分を算出することで予測誤差信号を生成する。
【０１８７】
直交変換部７０９は、予測誤差信号に離散コサイン変換などの直交変換処理を行い、直交変換係数を量子化部７１０に出力する。量子化部７１０は、直交変換係数を量子化する。
【０１８８】
逆量子化部７１１は、量子化された直交変換係数に対し、逆量子化処理を行う。逆直交変換部７１２は、逆量子化された係数に対し、逆直交変換処理を行う。
【０１８９】
復号画素生成部７１３は、予測誤差信号と予測画素信号とを加算することで、復号画素を生成する。生成された復号画素を含む復号画像は、復号画像記憶部７０３に記憶される。
【０１９０】
エントロピー符号化部７１４は、差分ベクトル算出部７０６及び量子化部７１０から取得した、Ｌ０とＬ１との参照インデックスと差分ベクトルと予測候補インデックス、量子化された直交変換係数に対し、エントロピー符号化を行う。エントロピー符号化部７１４は、エントロピー符号化後のデータをストリームとして出力する。
【０１９１】
＜動作＞
次に、実施例５における動画像符号化装置７００の動作について説明する。図２５は、動画像符号化装置の処理の一例を示すフローチャートである。図２５に示す符号化処理は、１処理単位ブロックの符号化処理を示す。
【０１９２】
ステップＳ９０１で、動きベクトル検出部７０１は、原画像を取得し、参照ピクチャの画素データを取得し、Ｌ０、Ｌ１の参照インデックスと動きベクトルを検出する。
【０１９３】
ステップＳ９０２で、予測ベクトル生成部７０５は、Ｌ０とＬ１の予測ベクトル候補リストをそれぞれ算出する。このとき、予測ベクトル生成部７０５は、実施例１〜４のいずれか同様、予測ベクトル候補に対して、スケーリングを行う場合は、０ベクトル方向に所定量ａ補正するようにする。
【０１９４】
ステップＳ９０３で、差分ベクトル算出部７０６は、Ｌ０とＬ１の動きベクトルに最も近い予測ベクトルを予測ベクトル候補リストの中からそれぞれ選択し、Ｌ０とＬ１の予測ベクトルと予測候補インデックスをそれぞれ決定する。
【０１９５】
さらに、差分ベクトル算出部７０６は、Ｌ０の動きベクトルからＬ０の予測ベクトルを減算してＬ０の差分ベクトルを生成し、Ｌ１の動きベクトルからＬ１の予測ベクトルを減算してＬ１の差分ベクトルを生成する。
【０１９６】
ステップＳ９０４で、予測画素生成部７０７は、入力された参照画像の領域位置情報に基づいて、復号画像記憶部７０３から参照画素を取得し、予測画素信号を生成する。
【０１９７】
ステップＳ９０５で、予測誤差生成部７０８は、原画像と予測画素信号が入力され、原画像と予測画素信号の差分を算出することで予測誤差信号を生成する。
【０１９８】
ステップＳ９０６で、直交変換部７０９は、予測誤差信号に対して直交変換処理を行い、直交変換係数を生成する。
【０１９９】
ステップＳ９０７で、量子化部７１０は、直交変換係数に対して、量子化処理を行い、量子化後の直交変換係数を生成する。
【０２００】
ステップＳ９０８で、動きベクトル情報記憶部７０４は、動きベクトル検出部７０１から出力されたＬ０とＬ１の参照インデックス情報と動きベクトルを含む動きベクトル情報を記憶する。これらの情報は、次のブロックの符号化に利用される。
【０２０１】
なお、ステップＳ９０２〜Ｓ９０３、ステップＳ９０４〜Ｓ９０７、Ｓ９０８の各処理は、並列して行われ、順不同である。
【０２０２】
ステップＳ９０９で、逆量子化部７１１は、量子化された直交変換係数に対し、逆量子化処理を行い、直交変換係数を生成する。次に、逆直交変換部７１２は、直交変換係数に対し、逆直交変換処理を行い、予測誤差信号を生成する。
【０２０３】
ステップＳ９１０で、復号画素生成部７１３は、予測誤差信号と予測画素信号とを加算し、復号画素を生成する。
【０２０４】
ステップＳ９１１で、復号画像記憶部７０３は、復号画素を含む復号画像を記憶する。この復号画像は、以降のブロックの符号化処理に用いられる。
【０２０５】
ステップＳ９１２で、エントロピー符号化部７１４は、Ｌ０とＬ１との参照インデックスと差分ベクトルと予測候補インデックス、量子化された直交変換係数をエントロピー符号化し、ストリームとして出力する。
【０２０６】
以上、実施例５によれば、予測ベクトルの精度を向上させることができ、符号化効率を上げた動画像符号化装置を提供することができる。なお、動画像符号化装置７００の予測ベクトル生成部７０５について、当該業者においては、各実施例１〜４のいずれかの予測ベクトル生成部を用いることができることは自明である。
【０２０７】
また、各実施例で説明した予測ベクトル生成部により予測ベクトル候補を算出することで、標準化技術のテストシーケンスに対して、符号化効率が約１％〜２％良くなることが発明者らの実験により確認された。
【０２０８】
［変形例］
図２６は、画像処理装置８００の構成の一例を示すブロック図である。画像処理装置８００は、実施例で説明した動画像符号化装置、又は動画像復号装置の一例である。図２６に示すように、画像処理装置８００は、制御部８０１、主記憶部８０２、補助記憶部８０３、ドライブ装置８０４、ネットワークＩ／Ｆ部８０６、入力部８０７、表示部８０８を含む。これら各構成は、バスを介して相互にデータ送受信可能に接続されている。
【０２０９】
制御部８０１は、コンピュータの中で、各装置の制御やデータの演算、加工を行うＣＰＵである。また、制御部８０１は、主記憶部８０２や補助記憶部８０３に記憶されたプログラムを実行する演算装置であり、入力部８０７や記憶装置からデータを受け取り、演算、加工した上で、表示部８０８や記憶装置などに出力する。
【０２１０】
主記憶部８０２は、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などであり、制御部８０１が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【０２１１】
補助記憶部８０３は、ＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【０２１２】
ドライブ装置８０４は、記録媒体８０５、例えばフレキシブルディスクからプログラムを読み出し、記憶装置にインストールする。
【０２１３】
また、記録媒体８０５は、所定のプログラムを格納する。この記録媒体８０５に格納されたプログラムは、ドライブ装置８０４を介して画像処理装置８００にインストールされる。インストールされた所定のプログラムは、画像処理装置８００により実行可能となる。
【０２１４】
ネットワークＩ／Ｆ部８０６は、有線及び／又は無線回線などのデータ伝送路により構築されたＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）などのネットワークを介して接続された通信機能を有する周辺機器と画像処理装置８００とのインターフェースである。
【０２１５】
入力部８０７は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、表示部８０８の表示画面上でキーの選択等を行うためのマウスやスライスパット等を有する。また、入力部８０７は、ユーザが制御部８０１に操作指示を与えたり、データを入力したりするためのユーザインターフェースである。
【０２１６】
表示部８０８は、ＬＣＤ（Liquid Crystal Display）等を有し、制御部８０１から入力される表示データに応じた表示が行われる。なお、表示部８０８は、外部に設けられてもよく、その場合は、画像処理装置８００は、表示制御部を有する。
【０２１７】
このように、前述した実施例で説明した動画像符号化処理又は動画像復号処理は、コンピュータに実行させるためのプログラムとして実現されてもよい。このプログラムをサーバ等からインストールしてコンピュータに実行させることで、前述した画像符号化処理又は画像復号処理を実現することができる。
【０２１８】
また、この動画像符号化プログラム又は動画像復号プログラムを記録媒体８０５に記録し、このプログラムが記録された記録媒体８０５をコンピュータや携帯端末に読み取らせて、前述した動画像符号化処理又は動画像復号処理を実現させることも可能である。
【０２１９】
なお、記録媒体８０５は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。また、前述した各実施例で説明した動画像符号化処理又は動画像復号処理は、１つ又は複数の集積回路に実装してもよい。
【０２２０】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。
【０２２１】
なお、以上の実施例に関し、さらに以下の付記を開示する。
（付記１）
処理対象ブロックごとに、該処理対象ブロックの動きベクトルと該動きベクトルの予測ベクトル候補とを用いて復号処理を行う動画像復号装置であって、
前記処理対象ブロックが参照可能なピクチャのピクチャ情報を記憶する参照ピクチャリスト記憶部と、
前記処理対象ブロックに対して空間的及び時間的に隣接するブロックの動きベクトル、該動きベクトルが参照するピクチャを示す参照ピクチャ識別子を含む動きベクトル情報を記憶する動きベクトル情報記憶部と、
前記処理対象ブロックの動きベクトルに対する予測ベクトル候補に、前記ピクチャ情報及び前記動きベクトル情報を用いてスケーリングを行う場合、該予測ベクトル候補を０方向に所定量補正する予測ベクトル生成部と、
を備える動画像復号装置。
（付記２）
前記予測ベクトル生成部は、
前記ピクチャ情報及び前記動きベクトル情報を用いてスケーリング係数を計算するスケーリング係数計算部と、
前記スケーリング係数の大きさに基づいて前記所定量を計算し、計算された該所定量を用いて前記予測ベクトル候補を補正するスケーリング演算部と、
を備える付記１記載の動画像復号装置。
（付記３）
前記スケーリング係数は、小数点以下の精度として所定の精度を有し、
前記スケーリング演算部は、
前記スケーリング係数を予測ベクトル候補に乗算して所定の小数点以下の精度に拡張し、スケーリングされた予測ベクトル候補を求めるスケーリング部と、
前記スケーリング部でスケーリングされた予測ベクトル候補を０方向に所定量補正する補正部と、
前記スケーリング部で所定の小数点以下の精度を有するスケーリング係数でスケーリングされ前記補正部で補正された予測ベクトル候補を、最も近い整数に変換する調整部と、
を備える付記１又は２記載の動画像復号装置。
（付記４）
前記所定の小数点以下の精度がNビットである際に、前記調整部は、２N-1を加算した後にNビット分右シフトすることを特徴とする付記３記載の動画像復号装置。
（付記５）
前記予測ベクトル生成部は、
前記予測ベクトル候補が時間方向に隣接するブロックに属する場合に、予測ベクトル候補の補正処理を行う付記１乃至４いずれか一項に記載の動画像復号装置。
（付記６）
前記予測ベクトル生成部は、
前記予測ベクトル候補の大きさが第１所定値以下の場合に、予測ベクトル候補の補正処理を行う付記１乃至４いずれか一項に記載の動画像復号装置。
（付記７）
前記予測ベクトル生成部は、
予測ベクトルの属するピクチャと、該予測ベクトルが参照するピクチャとの間隔が第２所定値以下の場合に、予測ベクトル候補の補正処理を行う付記１乃至４いずれか一項に記載の動画像復号装置。
（付記８）
前記スケーリング係数の小数点以下の精度がNビットであった際に、前記補正部で補正する所定値は、１以上２Ｎ−２以下とする付記１乃至７いずれか一項に記載の動画像復号装置。
（付記９）
入力画像が分割された処理対象ブロックごとに、該処理対象ブロックの動きベクトルと該動きベクトルの予測ベクトル候補とを用いて符号化処理を行う動画像符号化装置であって、
前記処理対象ブロックが参照可能なピクチャのピクチャ情報を記憶する参照ピクチャリスト記憶部と、
前記処理対象ブロック空間的及び時間的に隣接するブロックの動きベクトル、該動きベクトルが参照するピクチャを示す参照ピクチャ識別子を含む動きベクトル情報を記憶する動きベクトル情報記憶部と、
前記処理対象ブロックの動きベクトルに対する予測ベクトル候補に、前記ピクチャ情報及び前記動きベクトル情報を用いてスケーリングを行う場合、該予測ベクトル候補を０方向に所定量補正する予測ベクトル生成部と、
を備える動画像符号化装置。
（付記１０）
処理対象ブロックごとに、該処理対象ブロックの動きベクトルと該動きベクトルの予測ベクトル候補とを用いて復号処理を行う動画像復号装置が実行する動画像復号方法であって、
前記処理対象ブロックが参照可能なピクチャのピクチャ情報及び前記処理対象ブロックに対して空間的及び時間的に隣接するブロックの動きベクトルと、該動きベクトルが参照するピクチャを示す参照ピクチャ識別子とを含む動きベクトル情報を用いて、前記処理対象ブロックの動きベクトルに対する予測ベクトル候補にスケーリングを行う場合、該予測ベクトル候補を０方向に所定量補正してスケーリングし、
スケーリングされた予測ベクトル候補を用いて前記処理対象ブロックの動きベクトルとの差分を算出する動画像復号方法。
（付記１１）
入力画像が分割された処理対象ブロックごとに、該処理対象ブロックの動きベクトルと該動きベクトルの予測ベクトル候補とを用いて符号化処理を行う動画像符号化装置が実行する動画像符号化方法であって、
前記処理対象ブロックが参照可能なピクチャのピクチャ情報及び前記処理対象ブロックに対して空間的及び時間的に隣接するブロックの動きベクトルと、該動きベクトルが参照するピクチャを示す参照ピクチャ識別子とを含む動きベクトル情報を用いて、前記処理対象ブロックの動きベクトルに対する予測ベクトル候補にスケーリングを行う場合、該予測ベクトル候補を０方向に所定量補正してスケーリングし、
スケーリングされた予測ベクトル候補を用いて前記処理対象ブロックの動きベクトルとの差分を算出する動画像符号化方法。
（付記１２）
処理対象ブロックごとに、該処理対象ブロックの動きベクトルと該動きベクトルの予測ベクトル候補とを用いて復号処理を行う動画像復号装置に実行させる動画像復号プログラムであって、
前記処理対象ブロックが参照可能なピクチャのピクチャ情報及び前記処理対象ブロックに対して空間的及び時間的に隣接するブロックの動きベクトルと、該動きベクトルが参照するピクチャを示す参照ピクチャ識別子とを含む動きベクトル情報を用いて、前記処理対象ブロックの動きベクトルに対する予測ベクトル候補にスケーリングを行う場合、該予測ベクトル候補を０方向に所定量補正してスケーリングし、
スケーリングされた予測ベクトル候補を用いて前記処理対象ブロックの動きベクトルとの差分を算出する、
処理を動画像復号装置に実行させる動画像復号プログラム。
（付記１３）
入力画像が分割された処理対象ブロックごとに、該処理対象ブロックの動きベクトルと該動きベクトルの予測ベクトル候補とを用いて符号化処理を行う動画像符号化装置に実行させる動画像符号化プログラムであって、
前記処理対象ブロックが参照可能なピクチャのピクチャ情報及び前記処理対象ブロックに対して空間的及び時間的に隣接するブロックの動きベクトルと、該動きベクトルが参照するピクチャを示す参照ピクチャ識別子とを含む動きベクトル情報を用いて、前記処理対象ブロックの動きベクトルに対する予測ベクトル候補にスケーリングを行う場合、該予測ベクトル候補を０方向に所定量補正してスケーリングし、
スケーリングされた予測ベクトル候補を用いて前記処理対象ブロックの動きベクトルとの差分を算出する、
処理を動画像符号化装置に実行させる動画像符号化プログラム。
【符号の説明】
【０２２２】
１００  動画像復号装置
１０１  エントロピー復号部
１０２  参照ピクチャリスト記憶部
１０３  動きベクトル情報記憶部
１０４  予測ベクトル生成部
１０５  動きベクトル復元部
１０６  予測画素生成部
１０７  逆量子化部
１０８  逆直交変換部
１０９  復号画素生成部
１１０  復号画像記憶部
２０１  スケーリング係数計算部
２０２  ベクトル情報取得部
２０３  スケーリング演算部
３０１  スケーリング部
３０２、３０４、３０６  補正部
３０３、３０５  調整部
３６１  オフセット計算部
４０１  ブロック判定部
４０２、５０２、６０２  スケーリング演算部Ａ
４０３、５０３、６０３  スケーリング演算部Ｂ
５０１  動きベクトル判定部
６０１  時間差判定部
７００  動画像符号化装置
７０１  動き検出部
７０２  参照ピクチャリスト記憶部
７０３  復号画像記憶部
７０４  動きベクトル情報記憶部
７０５  予測ベクトル生成部
７０６  差分ベクトル算出部
７０７  予測画素生成部
７０８  予測誤差生成部
７０９  直交変換部
７１０  量子化部
７１１  逆量子化部
７１２  逆直交変換部
７１３  復号画素生成部
７１４  エントロピー符号化部
【図１】
2014112947.tif 000003
【図２】
2014112947.tif 000004
【図３】
2014112947.tif 000005
【図４】
2014112947.tif 000006
【図５】
2014112947.tif 000007
【図６】
2014112947.tif 000008
【図７】
2014112947.tif 000009
【図８】
2014112947.tif 000010
【図９】
2014112947.tif 000011
【図１０】
2014112947.tif 000012
【図１１】
2014112947.tif 000013
【図１２】
2014112947.tif 000014
【図１３】
2014112947.tif 000015
【図１４】
2014112947.tif 000016
【図１５】
2014112947.tif 000017
【図１６】
2014112947.tif 000018
【図１７】
2014112947.tif 000019
【図１８】
2014112947.tif 000020
【図１９】
2014112947.tif 000021
【図２０】
2014112947.tif 000022
【図２１】
2014112947.tif 000023
【図２２】
2014112947.tif 000024
【図２３】
2014112947.tif 000025
【図２４】
2014112947.tif 000026
【図２５】
2014112947.tif 000027
【図２６】
2014112947.tif 000028