(57)【要約】【課題】動き補償予測符号化における符号化効率を向上させる。【解決手段】予測動きベクトル情報設定部３３は、対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、対象ブロックと隣接する符号化済みブロックから動きベクトル情報を選択して水平予測動きベクトル情報と垂直予測動きベクトル情報をそれぞれ設定する。また、動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報を生成する。可逆符号化部１６は、水平予測動きベクトル情報と対象ブロックの水平動きベクトル情報との差分と、垂直予測動きベクトル情報と対象ブロックの垂直動きベクトル情報との差分を可変長符号化して画像圧縮情報に含める。また、水平予測ブロック情報と垂直予測ブロック情報を画像圧縮情報に含める。【選択図】        図８
2012124591.tif 000002
【特許請求の範囲】
【請求項１】
対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、前記対象ブロックと隣接する符号化済みブロックから動きベクトル情報を選択して水平予測動きベクトル情報と垂直予測動きベクトル情報の設定を行い、該動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報を生成する予測動きベクトル情報設定部
を有する画像符号化装置。
【請求項２】
前記予測動きベクトル情報設定部は、前記水平成分の符号化処理で最も符号化効率が高くなる動きベクトル情報を選択して前記水平予測動きベクトル情報として設定し、前記垂直成分の符号化処理で最も符号化効率が高くなる動きベクトル情報を選択して前記垂直予測動きベクトル情報として設定する請求項１記載の画像符号化装置。
【請求項３】
予測モード毎にコスト関数値を算出するコスト関数値算出部と、
最適予測モードの判定を行うモード判定部とをさらに有し、
前記モード判定部は、前記算出されたコスト関数値が最小となるモードを最適予測モードと判定する請求項２記載の画像符号化装置。
【請求項４】
前記水平予測ブロック情報と垂直予測ブロック情報は、画像圧縮情報に含めて伝送する請求項３記載の画像符号化装置。
【請求項５】
前記予測動きベクトル情報設定部は、前記対象ブロックの動きベクトル情報の水平成分と垂直成分に対して、前記対象ブロックと隣接する符号化済みブロックから選択した動きベクトル情報を水平垂直予測動きベクトル情報とする設定、または前記水平予測動きベクトル情報と前記垂直予測動きベクトル情報の設定を、ピクチャ毎またはスライス毎に切り替え可能とする請求項１記載の画像符号化装置。
【請求項６】
前記予測動きベクトル情報設定部は、前記水平予測動きベクトル情報と前記垂直予測動きベクトル情報、または前記水平垂直予測動きベクトル情報のいずれが用いられているかを示す識別情報を生成する請求項５記載の画像符号化装置。
【請求項７】
前記生成した識別情報は、画像圧縮情報のピクチャパラメータセットまたはスライスヘッダに含める請求項６記載の画像符号化装置。
【請求項８】
前記予測動きベクトル情報設定部は、Ｐピクチャに対して前記水平予測動きベクトル情報と前記垂直予測動きベクトル情報の設定を行い、Ｂピクチャに対して前記水平垂直予測動きベクトル情報の設定を行う請求項５記載の画像符号化装置。
【請求項９】
前記対象ブロックの動きベクトル情報の符号化を行う可逆符号化部を有し、
前記可逆符号化部は、前記水平予測ブロック情報と前記垂直予測ブロック情報とで異なるコード割り当てを行い、前記水平予測ブロック情報と前記垂直予測ブロック情報に割り当てたコードを画像圧縮情報に含める請求項１記載の画像符号化装置。
【請求項１０】
前記可逆符号化部は、動きベクトル情報が空間予測動きベクトル情報として選択されたブロックを示す予測ブロック情報と、動きベクトル情報が時間予測動きベクトル情報として選択されたブロックを示す予測ブロック情報に対して、前記水平予測ブロック情報と前記垂直予測ブロック情報で異なるコード割り当てを行う請求項９記載の画像符号化装置。
【請求項１１】
前記可逆符号化部は、撮像装置で生成された画像データを用いて検出された前記対象ブロックの動きベクトル情報の符号化処理を行う場合、前記撮像装置の動き検出結果に基づいて前記コード割り当てを行う請求項１０記載の画像符号化装置。
【請求項１２】
対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、前記対象ブロックと隣接する符号化済みブロックから動きベクトル情報を選択して水平予測動きベクトル情報と垂直予測動きベクトル情報の設定を行い、該動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報を生成する工程を設けた動きベクトル情報符号化方法。
【請求項１３】
対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、前記対象ブロックと隣接する符号化済みブロックから動きベクトル情報を選択して水平予測動きベクトル情報と垂直予測動きベクトル情報の設定を行い、該動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報を生成する手順をコンピュータで実行させるプログラム。
【請求項１４】
対象ブロックと隣接する復号化済みブロックから動きベクトル情報が水平予測動きベクトル情報として選択されたブロックを示す水平予測ブロック情報と、動きベクトル情報が垂直予測動きベクトル情報として選択されたブロックを示す垂直予測ブロック情報を画像圧縮情報から取得する可逆復号化部と、
前記水平予測ブロック情報で示されたブロックの動きベクトル情報を水平予測動きベクトル情報として設定し、前記垂直予測ブロック情報で示されたブロックの動きベクトル情報を前記垂直予測動きベクトル情報として設定する予測動きベクトル情報設定部と、
前記予測動きベクトル情報設定部で設定された前記水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて前記対象ブロックの動きベクトル情報を生成する動きベクトル情報生成部と
を有する画像復号化装置。
【請求項１５】
前記可逆復号化部は、前記水平予測動きベクトル情報と前記垂直予測動きベクトル情報、または前記対象ブロックの動きベクトル情報の水平成分と垂直成分に対して前記隣接する復号化済みブロックから選択した動きベクトル情報を示す水平垂直予測動きベクトル情報のいずれが用いられているかを示す識別情報を、前記画像圧縮情報から取得し、
前記予測動きベクトル情報設定部は、前記識別情報に基づき、前記水平予測動きベクトル情報と前記垂直予測動きベクトル情報、または前記水平垂直予測動きベクトル情報の設定を行い、
前記動きベクトル再構築部は、前記水平予測動きベクトル情報と垂直予測動きベクトル情報、または前記水平垂直予測動きベクトル情報を用いて前記対象ブロックの動きベクトル情報を生成する請求項１４記載の画像復号化装置。
【請求項１６】
前記可逆復号化部は、画像圧縮情報に含まれているコードの復号化を行い、前記水平予測ブロック情報と前記垂直予測ブロック情報を取得し、
前記予測動きベクトル情報設定部は、前記水平予測ブロック情報と前記垂直予測ブロック情報に基づき、前記水平予測動きベクトルと前記垂直予測動きベクトル情報の設定を行う
請求項１４記載の画像復号化装置。
【請求項１７】
対象ブロックと隣接する復号化済みブロックから動きベクトル情報が水平予測動きベクトル情報として選択されたブロックを示す水平予測ブロック情報と、動きベクトル情報が垂直予測動きベクトル情報として選択されたブロックを示す垂直予測ブロック情報を画像圧縮情報から取得する工程と、
前記水平予測ブロック情報で示されたブロックの動きベクトル情報を水平予測動きベクトル情報として設定し、前記垂直予測ブロック情報で示されたブロックの動きベクトル情報を前記垂直予測動きベクトル情報として設定する工程と、
前記設定された水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて前記対象ブロックの動きベクトル情報を生成する工程とを
設けた動きベクトル情報復号化方法。
【請求項１８】
対象ブロックと隣接する復号化済みブロックから動きベクトル情報が水平予測動きベクトル情報として選択されたブロックを示す水平予測ブロック情報と、動きベクトル情報が垂直予測動きベクトル情報として選択されたブロックを示す垂直予測ブロック情報を画像圧縮情報から取得する手順と、
前記水平予測ブロック情報で示されたブロックの動きベクトル情報を水平予測動きベクトル情報として設定し、前記垂直予測ブロック情報で示されたブロックの動きベクトル情報を前記垂直予測動きベクトル情報として設定する手順と、
前記設定された水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて前記対象ブロックの動きベクトル情報を生成する手順と
をコンピュータで実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像符号化装置と動きベクトル符号化方法、画像復号化装置と動きベクトル復号化方法、およびプログラムに関する。詳しくは、動画像の符号化における効率を向上させる。
【背景技術】
【０００２】
近年、画像情報をディジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を行う装置、例えば離散コサイン変換等の直交変換と動き補償により圧縮するＭＰＥＧ等の方式に準拠した装置が、放送局や一般家庭において普及しつつある。
【０００３】
特に、ＭＰＥＧ２（ＩＳＯ／ＩＥＣ１３８１８−２）は、汎用画像符号化方式として定義されており、プロフェッショナル用途およびコンシューマー用途の広範なアプリケーションに現在広く用いられている。ＭＰＥＧ２圧縮方式を用いることにより、例えば７２０×４８０画素を持つ標準解像度の飛び越し走査画像であれば４〜８Ｍｂｐｓの符号量（ビットレート）を割り当てることで、高い圧縮率と良好な画質の実現が可能である。また、１９２０×１０８８画素を持つ高解像度の飛び越し走査画像であれば１８〜２２Ｍｂｐｓの符号量を割り当てることで、高い圧縮率と良好な画質の実現が可能である。
【０００４】
また、ＭＰＥＧ２やＭＰＥＧ４といった従来の符号化方式に比べ、その符号化、復号化により多くの演算量が要求されるものの、より高い符号化効率を実現する標準化がJoint Model of Enhanced-Compression Video Codingとして行われて、Ｈ．２６４およびＭＰＥＧ−４  Ｐａｒｔ１０（以下「Ｈ．２６４／ＡＶＣ（Advanced Video Coding）」と記す）という名の下に国際標準となった。
【０００５】
Ｈ．２６４／ＡＶＣでは、図１の（Ａ）に示すように、１６×１６画素で構成される１つのマクロブロックを、１６×１６、１６×８、８×１６または８×８のいずれかのブロックサイズに分割して、それぞれ独立した動きベクトル情報を持つことが可能である。さらに、８×８画素のサブマクロブロックに関しては、図１の（Ｂ）に示されるとおり、８×８、８×４、４×８、４×４のいずれかの動き補償ブロックサイズに分割し、それぞれ独立した動きベクトル情報を持つことが可能である。なお、ＭＰＥＧ−２では、動き予測・補償処理の単位は、フレーム動き補償モードの場合には１６×１６画素、フィールド動き補償モードの場合には第一フィールド、第二フィールドのそれぞれに対し、１６×８画素を単位として動き予測・補償処理が行われる。
【０００６】
Ｈ．２６４／ＡＶＣにおいて、かかるような動き予測・補償処理が行われることで、膨大な動きベクトル情報が生成され、これをこのまま符号化することは、符号化効率の低下を招く。
【０００７】
かかる問題を解決する手法として、Ｈ．２６４／ＡＶＣにおいては、以下のようなメディアン予測を用いて、動きベクトル情報の情報量の低減が実現されている。
【０００８】
図２において、ブロックＥはこれから符号化されようとしている対象ブロック、ブロックＡ〜Ｄは、既に符号化済みであって対象ブロックＥに隣接するブロックである。
【０００９】
今、Ｘ＝Ａ，Ｂ，Ｃ，Ｄ，Ｅとして、ブロックＸに対する動きベクトル情報を、ｍｖXで表すものとする。
【００１０】
ブロックＡ，Ｂ，Ｃに関する動きベクトル情報を用い、対象ブロックＥに対する予測動きベクトル情報ｐｍｖEを、メディアン予測により式（１）のように生成する。
ｐｍｖE  ＝ｍｅｄ（ｍｖA，ｍｖB，ｍｖC）    ・・・（１）
【００１１】
隣接ブロックＣに関する情報が、画枠の端である等の理由で得られない場合は、隣接ブロックＤに関する情報で代用する。
【００１２】
画像圧縮情報に、対象ブロックＥに対する動きベクトル情報として符号化されるデータｍｖｄEは、ｐｍｖEを用いて式（２）のように生成する。
ｍｖｄE  ＝ｍｖE−ｐｍｖE        ・・・（２）
なお、実際の処理は、動きベクトル情報の水平方向、垂直方向のそれぞれの成分に対して、独立に処理が行われる。
【００１３】
また、Ｈ．２６４／ＡＶＣにおいては、複数参照フレーム（Multi-Reference Frame）方式が規定されている。図３を用いて、Ｈ．２６４／ＡＶＣにおいて規定されている複数参照フレーム方式について説明する。
【００１４】
ＭＰＥＧ２等においては、Ｐピクチャの場合、フレームメモリに格納された参照フレーム１枚のみを参照して、動き予測・補償処理を行っていた。しかし、Ｈ．２６４／ＡＶＣでは、図３に示したように、複数の参照フレームをメモリに格納して、ブロック毎に、異なるメモリを参照することが可能となっている。
【００１５】
ところで、Ｂピクチャにおける動きベクトル情報における情報量は膨大であるが、Ｈ．２６４／ＡＶＣにおいては、ダイレクトモード（Direct Mode）と呼ばれるモードが用意されている。ダイレクトモードにおいて、動きベクトル情報は、画像圧縮情報中には格納されず、復号化装置において、周辺またはアンカーブロック（Co-Located Block）の動きベクトル情報から、当該ブロックの動きベクトル情報を抽出する。なお、アンカーブロックは、参照画像において、ｘｙ座標が対象ブロックと同じであるブロックである。
【００１６】
ダイレクトモードは、空間ダイレクトモード（Spatial Direct Mode）と時間ダイレクトモード（Temporal Direct Mode）の２種類があり、どちらを用いるかは、スライス毎に切り替えることが可能である。
【００１７】
空間ダイレクトモードにおいては、式（３）に示すように、メディアン予測で生成された動きベクトル情報ｐｍｖEを、当該ブロックに適用する動きベクトル情報ｍｖEとする。
ｍｖE  ＝ｐｍｖE      ・・・（３）
【００１８】
次に図４を用いて、時間ダイレクトモード（Temporal Direct Mode）を説明する。図４において、Ｌ０参照ピクチャにおける、当該ブロックと、同じ空間上のアドレスにあるブロックを、アンカーブロックとし、アンカーブロックにおける動きベクトル情報を、動き「ｍｖcol」とする。また、当該ピクチャとＬ０参照ピクチャの時間軸上の距離を「ＴＤB」とし、Ｌ０参照ピクチャとＬ１参照ピクチャの時間軸上の距離を「ＴＤD」とする。この場合、当該ピクチャにおける、Ｌ０動きベクトル情報ｍｖＬ０およびＬ１動きベクトル情報ｍｖＬ１を、式（４）（５）のように算出する。
ｍｖＬ０  ＝（ＴＤB／ＴＤD）ｍｖcol               ・・・（４）
ｍｖＬ１  ＝（（ＴＤD−ＴＤB）／ＴＤD）ｍｖcol    ・・・（５）
なお、画像圧縮情報においては、時間軸上の距離を表す情報が存在しないため、式（４）（５）では、ＰＯＣ（Picture Order Count）を用いて演算を行うものとする。
【００１９】
また、ＡＶＣ画像圧縮情報において、ダイレクトモードは、１６×１６画素マクロブロック単位、または８×８画素サブマクロブロック単位で定義することが可能である。
【００２０】
ところで、図２に示されたような、メディアン予測を用いた動きベクトル情報の符号化を改善する非特許文献１の提案がなされている。非特許文献１では、メディアン予測で求められる空間予測動きベクトル情報に加え、時間予測動きベクトル情報および時空間予測動きベクトル情報のどれかを適応的に用いることが可能とされている。
【００２１】
すなわち、図５において、動きベクトル情報ｍｖcolを、当該対象ブロックに対するアンカーブロックに対する動きベクトル情報とする。また、動きベクトル情報ｍｖtk（ｋ＝０〜８）をその周辺ブロックの動きベクトル情報とする。
【００２２】
時間予測動きベクトル情報ｍｖtmは、例えば式（６）を用いて５つの動きベクトル情報から生成する。また、時間予測動きベクトル情報ｍｖtmは、式（７）を用いて９つの動きベクトルから生成してもよい。
ｍｖtm5  ＝ｍｅｄ（ｍｖcol，ｍｖt0，・・・ｍｖt3）  ・・・（６）
ｍｖtm9  ＝ｍｅｄ（ｍｖcol，ｍｖt0，・・・ｍｖt7）  ・・・（７）
【００２３】
また、時空間予測動きベクトル情報ｍｖsptは、式（８）を用いて５つの動きベクトル情報から生成する。
ｍｖspt  ＝ｍｅｄ（ｍｖcol，ｍｖcol，ｍｖA，ｍｖB，ｍｖC）・・・（８）
【００２４】
画像情報の符号化を行う画像処理装置においては、それぞれのブロックに関して、それぞれの予測動きベクトル情報を用いた場合のコスト関数値が算出され、最適な予測動きベクトル情報の選択が行われる。なお、画像圧縮情報においては、それぞれのブロックに対し、どの予測動きベクトル情報が用いられたかを識別可能とする例えばフラグが伝送される。
【００２５】
また、ＵＨＤ（Ultra High Definition：４０００画素×２０００画素）といった大きな画枠では、ＭＰＥＧ２やＨ．２６４／ＡＶＣで規定されている１６画素×１６画像のマクロブロックサイズは最適でない場合がある。例えば、大きな画枠では、マクロブロックサイズを大きくすることで符号化効率を高めることが可能となる場合がある。そこで、次世代符号化方式であるＨＥＶＣ（High Efficiency Video Coding）では、非特許文献２に示すように、コーディングユニットＣＵ（Coding Unit）が規定されている。また、非特許文献２では、出力となる画像圧縮情報のＳＰＳ（Sequence Parameter Set）において、コーディングユニットＣＵの最大サイズ（ＬＣＵ = Largest Coding Unit）と最小サイズ（ＳＣＵ = Smallest Coding Unit）が規定される。さらに、各ＬＣＵ内においては、ＳＣＵのサイズを下回らない範囲で、split-flag＝１とすることにより、より小さなサイズのコーディングユニットＣＵに分割することが可能とされている。
【００２６】
図６はコーディングユニットＣＵの階層構造を例示している。なお、図６では、最大サイズが１２８画素×１２８画素、階層の深さ（Depth）が「５」である場合を示している。例えば、階層の深さが「０」である場合、２Ｎ×２Ｎ（Ｎ＝６４画素）のブロックがコーディングユニットＣＵ0とされる。また、split flag＝１とすると、コーディングユニットＣＵ0は４つの独立したＮ×Ｎのブロックに分割されて、Ｎ×Ｎのブロックが１つ下の階層のブロックとされる。すなわち、階層の深さが「１」とされて、２Ｎ×２Ｎ（Ｎ＝３２画素）のブロックがコーディングユニットＣＵ1とされる。同様に、split flag＝１とされると、４つの独立したブロックに分割される。さらに、最も深い階層である深さ「４」の場合、２Ｎ×２Ｎ（Ｎ＝４画素）のブロックがコーディングユニットＣＵ4とされて、８画素×８画素がコーディングユニットＣＵの最小サイズとなる。また、ＨＥＶＣでは、コーディングユニットを分割して予測用の基本単位である予測ユニット（ＰＵ：Prediction Unit）も定義されている。
【先行技術文献】
【非特許文献】
【００２７】
【非特許文献１】“Competition-Based Scheme for Motion Vector Selection and Coding” (VCEG-AC06，ITU - Telecommunications Standardization Sector. STUDY GROUP 16 Question 6. Video Coding Experts Group  29th Meeting: Klagenfurt Austria, July, 2006)
【非特許文献２】“Test Model under Consideration”(JCTVC-B205，2nd JCT-VC Meeting, Geneva, CH, July 2010)
【発明の概要】
【発明が解決しようとする課題】
【００２８】
ところで、非特許文献１では、動きベクトル成分の、水平方向と垂直方向に対して、独立に予測情報を持つことができないため、十分な符号化効率の向上を実現できないという問題点を有している。例えば、水平方向に３種類、垂直方向に３種類の候補がある場合、水平方向と垂直方向の候補の組み合わせは９通り（３×３）であることから９種類のフラグを用意して、符号化処理を行う手法も考えられる。しかし、組み合わせが多いとフラグの種類が多くなり、フラグを示す符号量が増大するという問題点を有している。
【００２９】
そこで、この発明では、符号化効率を向上できる画像符号化装置と動きベクトル符号化方法、画像復号化装置と動きベクトル復号化方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００３０】
この発明の第１の側面は、対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、前記対象ブロックと隣接する符号化済みブロックから動きベクトル情報を選択して水平予測動きベクトル情報と垂直予測動きベクトル情報の設定を行い、該動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報を生成する予測動きベクトル情報設定部を有する画像符号化装置にある。
【００３１】
この発明は、入力画像データを複数の画素ブロックに分割し、各ブロックについて動きベクトル情報を検出して動き補償予測符号化を行う画像符号化装置において、対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、対象ブロックと隣接する符号化済みブロックから動きベクトル情報を選択して水平予測動きベクトル情報と垂直予測動きベクトル情報の設定が行われる。例えば、コスト関数値が最小となる最適予測モードで動き探索を行うことにより得られた動きベクトル情報の水平成分に対して、最も符号化効率が高くなる隣接する符号化済みブロックの動きベクトル情報が選択されて水平予測動きベクトル情報として設定される。また、最適予測モードで動き探索を行うことにより得られた動きベクトル情報の垂直成分に対して、最も符号化効率が高くなる隣接する符号化済みブロックの動きベクトル情報が選択されて垂直予測動きベクトル情報として設定される。この水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて、対象ブロックの動きベクトル情報の圧縮処理が行われる。また、動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報が生成されて、画像圧縮情報に水平予測ブロック情報と垂直予測ブロック情報が含められる。
【００３２】
また、対象ブロックの動きベクトル情報の水平成分と垂直成分に対して、対象ブロックと隣接する符号化済みブロックから選択した動きベクトル情報を水平垂直予測動きベクトル情報とする設定、または水平予測動きベクトル情報と垂直予測動きベクトル情報の設定が、ピクチャ毎またはスライス毎に切り替え可能とされる。例えば、Ｐピクチャに対して水平予測動きベクトル情報と垂直予測動きベクトル情報の設定が行われて、Ｂピクチャに対して水平垂直予測動きベクトル情報の設定が行われる。さらに、水平予測動きベクトル情報と垂直予測動きベクトル情報、または水平垂直予測動きベクトル情報のいずれが用いられているかを示す識別情報が画像圧縮情報に設けられる。
【００３３】
また、例えば、水平予測ブロック情報と垂直予測ブロック情報に対してコードがそれぞれ割り当てられて、水平予測ブロック情報と垂直予測ブロック情報に割り当てられたコードが画像圧縮情報に含められる。さらに、撮像装置で生成された画像データに基づいて検出された動きベクトル情報の符号化処理を行う場合、撮像装置の動き検出結果に基づいて、コード割り当てが行われる。
【００３４】
この発明の第２の側面は、対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、前記対象ブロックと隣接する符号化済みブロックから動きベクトル情報を選択して水平予測動きベクトル情報と垂直予測動きベクトル情報の設定を行い、該動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報を生成する工程を設けた動きベクトル情報符号化方法にある。
【００３５】
この発明の第３の側面は、対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、前記対象ブロックと隣接する符号化済みブロックから動きベクトル情報を選択して水平予測動きベクトル情報と垂直予測動きベクトル情報の設定を行い、該動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報を生成する手順をコンピュータで実行させるプログラムにある。
【００３６】
この発明の第４の側面は、対象ブロックと隣接する復号化済みブロックから動きベクトル情報が水平予測動きベクトル情報として選択されたブロックを示す水平予測ブロック情報と、動きベクトル情報が垂直予測動きベクトル情報として選択されたブロックを示す垂直予測ブロック情報を画像圧縮情報から取得する可逆復号化部と、前記水平予測ブロック情報で示されたブロックの動きベクトル情報を水平予測動きベクトル情報として設定し、前記垂直予測ブロック情報で示されたブロックの動きベクトル情報を前記垂直予測動きベクトル情報として設定する予測動きベクトル情報設定部と、前記予測動きベクトル情報設定部で設定された前記水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて前記対象ブロックの動きベクトル情報を生成する動きベクトル情報生成部とを有する画像復号化装置にある。
【００３７】
この発明は、入力画像データを複数の画素ブロックに分割し、各ブロックについて動きベクトル情報を検出して動き補償予測符号化を行うことにより生成された画像圧縮情報の復号化処理を行う画像復号化装置において、対象ブロックと隣接する復号化済みブロックから動きベクトル情報が水平予測動きベクトル情報として選択されたブロックを示す水平予測ブロック情報と、動きベクトル情報が垂直予測動きベクトル情報として選択されたブロックを示す垂直予測ブロック情報が画像圧縮情報から取得される。この水平予測ブロック情報で示されたブロックの動きベクトル情報が水平予測動きベクトル情報として設定されて、垂直予測ブロック情報で示されたブロックの動きベクトル情報が垂直予測動きベクトル情報として設定される。この設定された水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて対象ブロックの動きベクトル情報が生成される。
【００３８】
また、水平予測動きベクトル情報と垂直予測動きベクトル情報、または対象ブロックの動きベクトル情報の水平成分と垂直成分に対して隣接する復号化済みブロックから選択した動きベクトル情報を示す水平垂直予測動きベクトル情報のいずれが用いられているかを示す識別情報が画像圧縮情報から取得される。この識別情報に基づき、水平予測動きベクトル情報と垂直予測動きベクトル情報、または水平垂直予測動きベクトル情報が設定されて対象ブロックの動きベクトル情報が生成される。
【００３９】
この発明の第５の側面は、対象ブロックと隣接する復号化済みブロックから動きベクトル情報が水平予測動きベクトル情報として選択されたブロックを示す水平予測ブロック情報と、動きベクトル情報が垂直予測動きベクトル情報として選択されたブロックを示す垂直予測ブロック情報を画像圧縮情報から取得する工程と、前記水平予測ブロック情報で示されたブロックの動きベクトル情報を水平予測動きベクトル情報として設定し、前記垂直予測ブロック情報で示されたブロックの動きベクトル情報を前記垂直予測動きベクトル情報として設定する工程と、前記設定された水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて前記対象ブロックの動きベクトル情報を生成する工程とを設けた動きベクトル情報復号化方法にある。
【００４０】
この発明の第６の側面は、対象ブロックと隣接する復号化済みブロックから動きベクトル情報が水平予測動きベクトル情報として選択されたブロックを示す水平予測ブロック情報と、動きベクトル情報が垂直予測動きベクトル情報として選択されたブロックを示す垂直予測ブロック情報を画像圧縮情報から取得する手順と、前記水平予測ブロック情報で示されたブロックの動きベクトル情報を水平予測動きベクトル情報として設定し、前記垂直予測ブロック情報で示されたブロックの動きベクトル情報を前記垂直予測動きベクトル情報として設定する手順と、前記設定された水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて前記対象ブロックの動きベクトル情報を生成する手順とをコンピュータで実行させるプログラムにある。
【００４１】
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、光ディスクや磁気ディスク、半導体メモリなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【発明の効果】
【００４２】
この発明によれば、対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、対象ブロックと隣接する符号化済みブロックから動きベクトル情報が選択されて水平予測動きベクトル情報と垂直予測動きベクトル情報がそれぞれ設定されて、設定された水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて、対象ブロックの動きベクトル情報の圧縮処理が行われる。また、動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報が生成される。このため、例えば水平予測動きベクトル情報と垂直予測動きベクトル情報の候補の組み合わせ分のフラグよりも少ないデータ量である水平予測ブロック情報と垂直予測ブロック情報で水平予測動きベクトル情報と垂直予測動きベクトル情報の設定が可能となり、符号化効率を向上させることができる。
【図面の簡単な説明】
【００４３】
【図１】Ｈ．２６４／ＡＶＣにおけるブロックを示す図である。
【図２】メディアン予測を説明するための図である。
【図３】Multi-Reference Frame方式を説明するための図である。
【図４】時間ダイレクトモードを説明するための図である。
【図５】時間予測動きベクトル情報および時空間予測動きベクトル情報を説明するための図である。
【図６】コーディングユニットＣＵの階層構造を例示した図である。
【図７】画像符号化装置の構成を示す図である。
【図８】動き予測・補償部と予測動きベクトル情報設定部の構成を示す図である。
【図９】１／４画素精度の動き予測・補償処理を説明するための図である。
【図１０】画像符号化装置の動作を示すフローチャートである。
【図１１】予測処理を示すフローチャートである。
【図１２】イントラ予測処理を示すフローチャートである。
【図１３】インター予測処理を示すフローチャートである。
【図１４】予測動きベクトル情報設定処理を示すフローチャートである。
【図１５】画像復号化装置の構成を示す図である。
【図１６】動き補償部と予測動きベクトル情報設定部の構成を示す図である。
【図１７】画像復号化装置の動作を示すフローチャートである。
【図１８】予測処理を示すフローチャートである。
【図１９】インター予測画像生成処理を示すフローチャートである。
【図２０】動きベクトル情報再構築処理を示すフローチャートである。
【図２１】画像符号化装置で用いる予測動きベクトル情報設定部の他の構成を示す図である。
【図２２】画像復号化装置で用いる予測動きベクトル情報設定部の他の構成を示す図である。
【図２３】コンピュータ装置の概略構成を例示した図である。
【図２４】テレビジョン装置の概略構成を例示した図である。
【図２５】携帯電話機の概略構成を例示した図である。
【図２６】記録再生装置の概略構成を例示した図である。
【図２７】撮像装置の概略構成を例示した図である。
【発明を実施するための形態】
【００４４】
以下、発明を実施するための形態について説明する。なお、説明は以下の順序で行う。
１．画像符号化装置の構成
２．画像符号化装置の動作
３．画像復号化装置の構成
４．画像復号化装置の動作
５．予測動きベクトル情報設定部の他の構成
６．ソフトウェア処理の場合
７．電子機器に適用した場合
【００４５】
＜１．画像符号化装置の構成＞
図７は画像符号化装置の構成を示している。画像符号化装置１０は、アナログ／ディジタル変換部（Ａ／Ｄ変換部）１１、画面並び替えバッファ１２、減算部１３、直交変換部１４、量子化部１５、可逆符号化部１６、蓄積バッファ１７、レート制御部１８を備えている。さらに、画像符号化装置１０は、逆量子化部２１、逆直交変換部２２、加算部２３、デブロッキングフィルタ２４、フレームメモリ２５、イントラ予測部３１、動き予測・補償部３２、予測動きベクトル情報設定部３３、予測画像・最適モード選択部３５を備えている。
【００４６】
Ａ／Ｄ変換部１１は、アナログの画像信号をディジタルの画像データに変換して画面並べ替えバッファ１２に出力する。
【００４７】
画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１から出力された画像データに対してフレームの並べ替えを行う。画面並べ替えバッファ１２は、符号化処理にかかわるＧＯＰ（Group of Pictures）構造に応じてフレームの並べ替えを行い、並べ替え後の画像データを減算部１３とイントラ予測部３１と動き予測・補償部３２に出力する。
【００４８】
減算部１３には、画面並べ替えバッファ１２から出力された画像データと、後述する予測画像・最適モード選択部３５で選択された予測画像データが供給される。減算部１３は、画面並べ替えバッファ１２から出力された画像データと予測画像・最適モード選択部３５から供給された予測画像データとの差分である予測誤差データを算出して、直交変換部１４に出力する。
【００４９】
直交変換部１４は、減算部１３から出力された予測誤差データに対して、離散コサイン変換（DCT；Discrete Cosine Transform）、カルーネン・レーベ変換等の直交変換処理を行う。直交変換部１４は、直交変換処理を行うことで得られた変換係数データを量子化部１５に出力する。
【００５０】
量子化部１５には、直交変換部１４から出力された変換係数データと、後述するレート制御部１８からレート制御信号が供給されている。量子化部１５は変換係数データの量子化を行い、量子化データを可逆符号化部１６と逆量子化部２１に出力する。また、量子化部１５は、レート制御部１８からのレート制御信号に基づき量子化パラメータ（量子化スケール）を切り替えて、量子化データのビットレートを変化させる。
【００５１】
可逆符号化部１６には、量子化部１５から出力された量子化データと、後述するイントラ予測部３１から予測モード情報や動き予測・補償部３２から予測モード情報等が供給される。また、予測画像・最適モード選択部３５から最適モードがイントラ予測であるかインター予測であるかを示す情報が供給される。なお、予測モード情報には、イントラ予測またはインター予測に応じて、予測モードや予測ユニットのブロックサイズ情報等が含まれる。可逆符号化部１６は、量子化データに対して例えば可変長符号化または算術符号化等で可逆符号化処理を行い、画像圧縮情報を生成して蓄積バッファ１７に出力する。また、可逆符号化部１６は、最適モードがイントラ予測である場合、イントラ予測部３１から供給された予測モード情報の可逆符号化を行う。また、可逆符号化部１６は、最適モードがインター予測である場合、動き予測・補償部３２から供給された予測モード情報や予測ブロック情報、差分動きベクトル情報等の可逆符号化を行う。さらに、可逆符号化部１６は、可逆符号化が行われた情報を画像圧縮情報に含める。例えば可逆符号化部１６は、画像圧縮情報である符号化ストリームのヘッダ情報に付加する。
【００５２】
蓄積バッファ１７は、可逆符号化部１６からの画像圧縮情報を蓄積する。また、蓄積バッファ１７は、蓄積した画像圧縮情報を伝送路に応じた伝送速度で出力する。
【００５３】
レート制御部１８は、蓄積バッファ１７の空き容量の監視を行い、空き容量に応じてレート制御信号を生成して量子化部１５に出力する。レート制御部１８は、例えば蓄積バッファ１７から空き容量を示す情報を取得する。レート制御部１８は空き容量が少なくなっている場合、レート制御信号によって量子化データのビットレートを低下させる。また、レート制御部１８は蓄積バッファ１７の空き容量が十分大きい場合、レート制御信号によって量子化データのビットレートを高くする。
【００５４】
逆量子化部２１は、量子化部１５から供給された量子化データの逆量子化処理を行う。逆量子化部２１は、逆量子化処理を行うことで得られた変換係数データを逆直交変換部２２に出力する。
【００５５】
逆直交変換部２２は、逆量子化部２１から供給された変換係数データの逆直交変換処理を行い、得られたデータを加算部２３に出力する。
【００５６】
加算部２３は、逆直交変換部２２から供給されたデータと予測画像・最適モード選択部３５から供給された予測画像データを加算して復号画像データを生成して、デブロッキングフィルタ２４とフレームメモリ２５に出力する。なお、復号画像データは参照画像の画像データとして用いられる。
【００５７】
デブロッキングフィルタ２４は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタ処理を行う。デブロッキングフィルタ２４は、加算部２３から供給された復号画像データからブロック歪みを除去するフィルタ処理を行い、フィルタ処理後の復号画像データをフレームメモリ２５に出力する。
【００５８】
フレームメモリ２５は、加算部２３から供給されたフィルタ処理前の復号画像データと、デブロッキングフィルタ２４から供給されたフィルタ処理後の復号画像データを保持する。フレームメモリ２５に保持された復号画像データは、セレクタ２６を介してイントラ予測部３１または動き予測・補償部３２に参照画像データとして供給される。
【００５９】
セレクタ２６は、イントラ予測部３１でイントラ予測を行う場合、フレームメモリ２５に保持されているデブロッキングフィルタ処理前の復号画像データを参照画像データとしてイントラ予測部３１に供給する。また、セレクタ２６は、動き予測・補償部３２でインター予測を行う場合、フレームメモリ２５に保持されているデブロッキングフィルタ処理後の復号画像データを参照画像データとして動き予測・補償部３２に供給する。
【００６０】
イントラ予測部３１は、画面並べ替えバッファ１２から供給された入力画像データとフレームメモリ２５から供給された参照画像データを用いて、候補となる全てのイントラ予測モードで対象ブロックの予測を行い、最適イントラ予測モードを決定する。イントラ予測部３１は、例えば各イントラ予測モードでコスト関数値を算出して、算出したコスト関数値に基づき符号化効率が最良となるイントラ予測モードを最適イントラ予測モードとする。イントラ予測部３１は、最適イントラ予測モードで生成された予測画像データと最適イントラ予測モードでのコスト関数値を予測画像・最適モード選択部３５に出力する。さらに、イントラ予測部３１は、最適イントラ予測モードを示す予測モード情報を可逆符号化部１６に出力する。
【００６１】
動き予測・補償部３２は、画面並べ替えバッファ１２から供給された入力画像データとフレームメモリ２５から供給された参照画像データを用いて、候補となる全てのインター予測モードで対象ブロックの予測を行い、最適インター予測モードを決定する。動き予測・補償部３２は、例えば各インター予測モードでコスト関数値を算出して、算出したコスト関数値に基づき符号化効率が最良となるインター予測モードを最適インター予測モードとする。また、動き予測・補償部３２は、予測動きベクトル情報設定部３３で生成された予測ブロック情報と差分動きベクトル情報を用いてコスト関数値の算出を行う。さらに、動き予測・補償部３２は、最適インター予測モードで生成された予測画像データと最適インター予測モードでのコスト関数値を予測画像・最適モード選択部３５に出力する。また、動き予測・補償部３２は、最適インター予測モードに関する予測モード情報や予測ブロック情報および差分動きベクトル情報等を可逆符号化部１６に出力する。
【００６２】
予測動きベクトル情報設定部３３は、対象ブロックについて、符号化済みの隣接ブロックの水平動きベクトル情報を水平予測動きベクトル情報の候補とする。また、予測動きベクトル情報設定部３３は、候補の水平予測動きベクトル情報と対象ブロックの水平動きベクトル情報との差を示す差分動きベクトル情報を候補毎に生成する。さらに、予測動きベクトル情報設定部３３は、候補の中から差分動きベクトル情報の符号化効率が最も高い水平動きベクトル情報を水平予測動きベクトル情報に設定する。予測動きベクトル情報設定部３３は、設定した水平予測動きベクトル情報がいずれの隣接ブロックの動きベクトル情報であるかを示す水平予測ブロック情報を生成する。例えば、水平予測ブロック情報としてフラグ（以下「水平予測ブロックフラグ」という）を生成する。
【００６３】
予測動きベクトル情報設定部３３は、対象ブロックについて、符号化済みの隣接ブロックの垂直動きベクトル情報を垂直予測動きベクトル情報の候補とする。また、予測動きベクトル情報設定部３３は、候補の垂直予測動きベクトル情報と対象ブロックの垂直動きベクトル情報との差を示す差分動きベクトル情報を候補毎に生成する。さらに、予測動きベクトル情報設定部３３は、候補の中から差分動きベクトル情報の符号化効率が最も高い垂直動きベクトル情報を垂直予測動きベクトル情報に設定する。予測動きベクトル情報設定部３３は、設定した垂直予測動きベクトル情報がいずれの隣接ブロックの動きベクトル情報であるかを示す垂直予測ブロック情報を生成する。例えば、垂直予測ブロック情報としてフラグ（以下「垂直予測ブロックフラグ」という）を生成する。
【００６４】
さらに、予測動きベクトル情報設定部３３は、水平成分と垂直成分について、それぞれ予測ブロックフラグで示されるブロックの動きベクトル情報を予測動きベクトル情報として用いる。また、予測動きベクトル情報設定部３３は、対象ブロックの動きベクトル情報と予測動きベクトル情報の差分である差分動きベクトル情報を、水平成分と垂直成分のそれぞれについて算出して動き予測・補償部３２に出力する。
【００６５】
図８は、動き予測・補償部３２と予測動きベクトル情報設定部３３の構成を示している。動き予測・補償部３２は、動き探索部３２１、コスト関数値算出部３２２、モード判定部３２３、動き補償処理部３２４、動きベクトル情報バッファ３２５を有している。
【００６６】
動き探索部３２１には、画面並べ替えバッファ１２から供給された並べ替え後の入力画像データと、フレームメモリ２５から読み出された参照画像データが供給される。動き探索部３２１は、候補となる全てのインター予測モードで動き探索を行い、動きベクトルを検出する。動き探索部３２１は、検出した動きベクトルを示す動きベクトル情報を、動きベクトルを検出した場合の入力画像データと参照画像データと共にコスト関数値算出部３２２に出力する。
【００６７】
コスト関数値算出部３２２には、動き探索部３２１から動きベクトル情報と入力画像データと参照画像データおよび予測動きベクトル情報設定部３３から予測ブロック情報と差分動きベクトル情報が供給されている。コスト関数値算出部３２２は、動きベクトル情報と入力画像データと参照画像データおよび予測ブロックフラグと差分動きベクトル情報を用いて、候補となる全てのインター予測モードでコスト関数値を算出する。
【００６８】
コスト関数値の算出は、例えばＨ．２６４／ＡＶＣ方式における参照ソフトウェアであるＪＭ（Joint Model）で定められているように、High Complexityモードか、Low Complexityモードのいずれかの手法に基づいて行う。
【００６９】
すなわち、High Complexityモードでは、候補となる全ての予測モードに対して、仮に可逆符号化処理までを行い、次の式（９）で表されるコスト関数値を各予測モードに対して算出する。
Cost(Mode∈Ω)=Ｄ+λ・Ｒ            ・・・（９）
【００７０】
Ωは、当該ブロックの画像を符号化するための候補となる予測モードの全体集合を示している。Ｄは、予測モードで符号化を行った場合の復号画像と入力画像との差分エネルギー（歪み）を示している。Ｒは、直交変換係数，予測モード情報，予測ブロック情報，差分動きベクトル情報等を含んだ発生符号量、λは、量子化パラメータＱＰの関数として与えられるラグランジュ乗数である。
【００７１】
つまり、High Complexityモードでの符号化を行うには、上記パラメータＤおよびＲを算出するため、候補となる全ての予測モードで、一度、仮エンコード処理を行う必要があり、より高い演算量を要する。
【００７２】
一方、Low Complexityモードでは、候補となる全ての予測モードで、予測画像の生成、および予測ブロック情報や差分動きベクトル情報および予測モード情報などを含むヘッダビットの生成等を行い、次の式（１０）で表されるコスト関数値を算出する。
Cost(Mode∈Ω)=Ｄ+QP2Quant(QP)・Header＿Bit      ・・・（１０）
【００７３】
Ωは、当該ブロックの画像を符号化するための候補となる予測モードの全体集合を示している。Ｄは、予測モードで符号化を行った場合の復号画像と入力画像との差分エネルギー（歪み）を示している。Header＿Bitは、予測モードに対するヘッダビット、QP2Quantは、量子化パラメータＱＰの関数として与えられる関数である。
【００７４】
すなわち、Low Complexityモードにおいては、それぞれの予測モードに関して、予測処理を行う必要があるが、復号化画像までは必要ないため、High Complexityモードより低い演算量での実現が可能である。
【００７５】
コスト関数値算出部３２２は、算出したコスト関数値をモード判定部３２３に出力する。
【００７６】
モード判定部３２３は、コスト関数値が最小となるモードを最適インター予測モードに決定する。また、モード判定部３２３は、決定した最適インター予測モードを示す最適インター予測モード情報を、当該最適インター予測モードにかかわる動きベクトル情報と予測ブロックフラグと差分動きベクトル情報等とともに、動き補償処理部３２４に出力する。なお、予測モード情報にはブロックサイズ情報等が含まれる。
【００７７】
動き補償処理部３２４は、最適インター予測モード情報と動きベクトル情報に基づき、フレームメモリ２５から読み出された参照画像データに対して動き補償を行い、予測画像データを生成して予測画像・最適モード選択部３５に出力する。また、動き補償処理部３２４は、最適インター予測の予測モード情報と当該モードにおける差分動きベクトル情報等を、可逆符号化部１６に出力する。
【００７８】
動きベクトル情報バッファ３２５は、最適インター予測モードにかかわる動きベクトル情報を保持する。また、動きベクトル情報バッファ３２５は、符号化を行う対象ブロックに対して符号化済みの隣接ブロックの動きベクトル情報を予測動きベクトル情報設定部３３に出力する。
【００７９】
なお、動き予測・補償部３２では、例えばＨ．２６４／ＡＶＣにおいて規定されている、１／４画素精度の動き予測・補償処理を行う。図９は、１／４画素精度の動き予測・補償処理を説明するための図である。図９において位置「Ａ」は、フレームメモリ２５に格納されている整数精度画素の位置、位置「ｂ」，「ｃ」，「ｄ」は１／２画素精度の位置、位置「ｅ1」，「ｅ2」，「ｅ3」は１／４画素精度の位置である。
【００８０】
以下では、Clip1()を式（１１）のように定義する。
【数１】
2012124591.tif 000003
式（１１）において、入力画像が８ビット精度である場合、ｍａｘ＿ｐｉｘの値は２５５となる。
【００８１】
位置「ｂ」「ｄ」における画素値は、６タップのＦＩＲフィルタを用いて、式（１２）（１３）のように生成される。
Ｆ＝Ａ−２−５・Ａ−１＋２０・Ａ０＋２０・Ａ１−５・Ａ２＋Ａ３  ・・・（１２）
ｂ，ｄ＝Ｃｌｉｐ１((Ｆ＋１６)＞＞５)                   ・・・（１３）
【００８２】
位置「ｃ」における画素値は、６タップのＦＩＲフィルタを用いて、式（１４）または式（１５）のいずれかと式（１６）のように生成される。
Ｆ＝ｂ−２−５・ｂ−１＋２０・ｂ０＋２０・ｂ１−５・ｂ２＋ｂ３・・・（１４）
Ｆ＝ｄ−２−５・ｄ−１＋２０・ｄ０＋２０・ｄ１−５・ｄ２＋ｄ３・・・（１５）
ｃ＝Ｃｌｉｐ１((Ｆ＋５１２)＞＞１０)                  ・・・（１６）
なお、Ｃｌｉｐ１処理は、水平方向および垂直方向の積和処理の両方を行った後、最後に一度のみ行う。
【００８３】
位置「ｅ1」〜「ｅ3」における画素値は、線形内挿により式（１７）〜（１９）のように生成される。
ｅ1＝（Ａ＋ｂ＋１）＞＞１      ・・・（１７）
ｅ2＝（ｂ＋ｄ＋１）＞＞１      ・・・（１８）
ｅ3＝（ｂ＋ｃ＋１）＞＞１      ・・・（１９）
このようにして、動き予測・補償部３２は、１／４画素精度の動き予測・補償処理を行う。
【００８４】
予測動きベクトル情報設定部３３は、水平予測動きベクトル情報生成部３３１と垂直予測動きベクトル情報生成部３３２と識別情報生成部３３４を有している。
【００８５】
水平予測動きベクトル情報生成部３３１は、対象ブロックの動きベクトル情報の水平成分について、符号化処理で最も符号化効率が高くなる水平予測動きベクトル情報を設定する。水平予測動きベクトル情報生成部３３１は、動き予測・補償部３２から供給された符号化済みの隣接ブロックの水平動きベクトル情報を水平予測動きベクトル情報の候補とする。また、水平予測動きベクトル情報生成部３３１は、各候補の水平動きベクトル情報と、動き予測・補償部３２から供給された対象ブロックの水平動きベクトル情報との差分を示す水平差分動きベクトル情報を生成する。さらに、水平予測動きベクトル情報生成部３３１は、水平差分動きベクトル情報の符号量が最小となる候補の水平動きベクトル情報を水平予測動きベクトル情報とする。水平予測動きベクトル情報生成部３３１は、水平予測動きベクトル情報と水平予測動きベクトル情報を用いた場合の水平差分動きベクトル情報を水平予測動きベクトル情報生成結果として識別情報生成部３３４に出力する。
【００８６】
垂直予測動きベクトル情報生成部３３２は、対象ブロックの動きベクトル情報の垂直成分について、符号化処理で最も符号化効率が高くなる垂直予測動きベクトル情報を設定する。垂直予測動きベクトル情報生成部３３２は、動き予測・補償部３２から供給された符号化済みの隣接ブロックの垂直動きベクトル情報を垂直予測動きベクトル情報の候補とする。また、垂直予測動きベクトル情報生成部３３２は、各候補の垂直動きベクトル情報と、動き予測・補償部３２から供給された対象ブロックの垂直動きベクトル情報との差分を示す垂直差分動きベクトル情報を生成する。さらに、水平予測動きベクトル情報生成部３３１は、垂直差分動きベクトル情報の符号量が最小となる候補の垂直動きベクトル情報を垂直予測動きベクトル情報とする。垂直予測動きベクトル情報生成部３３２は、垂直予測動きベクトル情報と垂直予測動きベクトル情報を用いた場合の垂直差分動きベクトル情報を垂直予測動きベクトル情報生成結果として識別情報生成部３３４に出力する。
【００８７】
識別情報生成部３３４は、水平予測動きベクトル情報生成結果に基づき、動きベクトル情報が水平予測動きベクトル情報として選択されたブロックを示す水平予測ブロック情報、例えば水平予測ブロックフラグを生成する。識別情報生成部３３４は、生成した水平予測ブロックフラグを水平差分動きベクトル情報と共に、動き予測・補償部３２のコスト関数値算出部３２２に出力する。また、識別情報生成部３３４は、垂直予測動きベクトル情報生成結果に基づき、動きベクトル情報が垂直予測動きベクトル情報として選択されたブロックを示す垂直予測ブロック情報、例えば垂直予測ブロックフラグを生成する。識別情報生成部３３４は、生成した垂直予測ブロックフラグを垂直差分動きベクトル情報と共に、動き予測・補償部３２のコスト関数値算出部３２２に出力する。
【００８８】
なお、予測動きベクトル情報設定部３３は、対象ブロックの水平（垂直）動きベクトル情報と各候補の動きベクトル情報の差分を示す差分動きベクトル情報を、候補のブロックを示す情報と共にコスト関数値算出部３２２に供給してもよい。この場合、コスト関数値算出部３２２で算出されたコスト関数値が最小となる候補の水平（垂直）動きベクトル情報を水平（垂直）予測動きベクトル情報に設定する。また、コスト関数値が最小となる候補のブロックを示す識別情報をインター予測で用いるようにする。
【００８９】
図７に戻り、予測画像・最適モード選択部３５は、イントラ予測部３１から供給されたコスト関数値と動き予測・補償部３２から供給されたコスト関数値を比較して、コスト関数値が少ない方を、符号化効率が最良となる最適モードとして選択する。また、予測画像・最適モード選択部３５は、最適モードで生成した予測画像データを減算部１３と加算部２３に出力する。さらに、予測画像・最適モード選択部３５は、最適モードがイントラ予測モードであるかインター予測モードであるかを示す情報を可逆符号化部１６に出力する。なお、予測画像・最適モード選択部３５は、スライス単位でイントラ予測またはインター予測の切り替えを行う。
【００９０】
＜２．画像符号化装置の動作＞
図１０は画像符号化装置の動作を示すフローチャートである。ステップＳＴ１１において、Ａ／Ｄ変換部１１は入力された画像信号をＡ／Ｄ変換する。
【００９１】
ステップＳＴ１２において画面並べ替えバッファ１２は、画像並べ替えを行う。画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１より供給された画像データを記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
【００９２】
ステップＳＴ１３において減算部１３は、予測誤差データの生成を行う。減算部１３は、ステップＳＴ１２で並び替えられた画像の画像データと予測画像・最適モード選択部３５で選択された予測画像データとの差分を算出して予測誤差データを生成する。予測誤差データは、元の画像データに比べてデータ量が小さい。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
【００９３】
ステップＳＴ１４において直交変換部１４は、直交変換処理を行う。直交変換部１４は、減算部１３から供給された予測誤差データを直交変換する。具体的には、予測誤差データに対して離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数データを出力する。
【００９４】
ステップＳＴ１５において量子化部１５は、量子化処理を行う。量子化部１５は、変換係数データを量子化する。量子化に際しては、後述するステップＳＴ２５の処理で説明されるように、レート制御が行われる。
【００９５】
ステップＳＴ１６において逆量子化部２１は、逆量子化処理を行う。逆量子化部２１は、量子化部１５で量子化された変換係数データを量子化部１５の特性に対応する特性で逆量子化する。
【００９６】
ステップＳＴ１７において逆直交変換部２２は、逆直交変換処理を行う。逆直交変換部２２は、逆量子化部２１で逆量子化された変換係数データを直交変換部１４の特性に対応する特性で逆直交変換する。
【００９７】
ステップＳＴ１８において加算部２３は、参照画像データの生成を行う。加算部２３は、予測画像・最適モード選択部３５から供給された予測画像データと、この予測画像と対応する位置の逆直交変換後のデータを加算して、参照画像データ（復号画像データ）を生成する。
【００９８】
ステップＳＴ１９においてデブロッキングフィルタ２４は、フィルタ処理を行う。デブロッキングフィルタ２４は、加算部２３より出力された復号画像データをフィルタリングしてブロック歪みを除去する。
【００９９】
ステップＳＴ２０においてフレームメモリ２５は、参照画像データを記憶する。フレームメモリ２５はフィルタ処理後の参照画像データ（復号画像データ）を記憶する。
【０１００】
ステップＳＴ２１においてイントラ予測部３１と動き予測・補償部３２は、それぞれ予測処理を行う。すなわち、イントラ予測部３１は、イントラ予測モードのイントラ予測処理を行い、動き予測・補償部３２は、インター予測モードの動き予測・補償処理を行う。予測処理の詳細は、図１１を参照して後述するが、この処理により、候補となる全ての予測モードでの予測処理がそれぞれ行われ、候補となる全ての予測モードでのコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードが選択され、選択された予測モードで生成された予測画像とそのコスト関数値および予測モード情報が予測画像・最適モード選択部３５に供給される。
【０１０１】
ステップＳＴ２２において予測画像・最適モード選択部３５は、予測画像データの選択を行う。予測画像・最適モード選択部３５は、イントラ予測部３１および動き予測・補償部３２より出力された各コスト関数値に基づいて、符号化効率が最良となる最適モードに決定する。さらに、予測画像・最適モード選択部３５は、決定した最適モードの予測画像データを選択して、減算部１３と加算部２３に出力する。この予測画像データが、上述したように、ステップＳＴ１３，ＳＴ１８の演算に利用される。
【０１０２】
ステップＳＴ２３において可逆符号化部１６は、可逆符号化処理を行う。可逆符号化部１６は、量子化部１５より出力された量子化データを可逆符号化する。すなわち、量子化データに対して可変長符号化や算術符号化等の可逆符号化が行われて、データ圧縮される。また、可逆符号化部１６は、ステップＳＴ２２で選択された予測画像データに対応する予測モード情報等の可逆符号化を行い、量子化データを可逆符号化して生成された画像圧縮情報に、予測モード情報等の可逆符号化データが含められる。
【０１０３】
ステップＳＴ２４において蓄積バッファ１７は、蓄積処理を行う。蓄積バッファ１７は、可逆符号化部１６から出力される画像圧縮情報を蓄積する。この蓄積バッファ１７に蓄積された画像圧縮情報は、適宜読み出されて伝送路を介して復号側に伝送される。
【０１０４】
ステップＳＴ２５においてレート制御部１８は、レート制御を行う。レート制御部１８は、蓄積バッファ１７で画像圧縮情報を蓄積する場合、オーバーフローまたはアンダーフローが蓄積バッファ１７で発生しないように、量子化部１５の量子化動作のレートを制御する。
【０１０５】
次に、図１１のフローチャートを参照して、図１０のステップＳＴ２１における予測処理を説明する。
【０１０６】
ステップＳＴ３１において、イントラ予測部３１はイントラ予測処理を行う。イントラ予測部３１は対象ブロックの画像を、候補となる全てのイントラ予測モードでイントラ予測する。なお、イントラ予測において参照される復号画像の画像データは、デブロッキングフィルタ２４でブロッキングフィルタ処理が行われる前の復号画像データが用いられる。このイントラ予測処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、全てのイントラ予測モードの中から、符号化効率が最良となる１つのイントラ予測モードが選択される。
【０１０７】
ステップＳＴ３２において、動き予測・補償部３２はインター予測処理を行う。動き予測・補償部３２は、フレームメモリ２５に記憶されているデブロッキングフィルタ処理後の復号画像データを用いて、候補となるインター予測モードのインター予測処理を行う。このインター予測処理により、候補となる全てのインター予測モードで予測処理が行われ、候補となる全てのインター予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、全てのインター予測モードの中から、符号化効率が最良となる１つのインター予測モードが選択される。
【０１０８】
次に、図１２のフローチャートを参照して、図１１におけるステップＳＴ３１のイントラ予測処理について説明する。
【０１０９】
ステップＳＴ４１でイントラ予測部３１は、各予測モードのイントラ予測を行う。イントラ予測部３１は、ブロッキングフィルタ処理前の復号画像データを用いて、イントラ予測モード毎に予測画像データを生成する。
【０１１０】
ステップＳＴ４２でイントラ予測部３１は、各予測モードでのコスト関数値を算出する。コスト関数値の算出は、上述のように例えばＨ．２６４／ＡＶＣ方式における参照ソフトウェアであるＪＭ（Joint Model）で定められているように、High Complexityモードか、Low Complexityモードのいずれかの手法に基づいて行う。すなわち、High Complexityモードでは、ステップＳＴ４２の処理として、候補となる全ての予測モードに対して、仮に可逆符号化処理までを行い、式（９）で表されるコスト関数値を各予測モードに対して算出する。Low Complexityモードでは、ステップＳＴ４２の処理として、候補となる全ての予測モードに対して、予測画像の生成と動きベクトル情報や予測モード情報などのヘッダビットまでを生成して、式（１０）で表されるコスト関数値を各予測モードに対して算出する。
【０１１１】
ステップＳＴ４３でイントラ予測部３１は、最適イントラ予測モードを決定する。イントラ予測部３１は、ステップＳＴ４２において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である１つのイントラ予測モードを選択して最適イントラ予測モードに決定する。
【０１１２】
次に、図１３のフローチャートを参照して、図１１におけるステップＳＴ３２のインター予測処理について説明する。
【０１１３】
ステップＳＴ５１で動き予測・補償部３２は、動き予測処理を行う。動き予測・補償部３２は、予測モード毎に動き予測を行って動きベクトルを検出してステップＳＴ５２に進む。
【０１１４】
ステップＳＴ５２で予測動きベクトル情報設定部３３は、予測動きベクトル情報設定処理を行う。予測動きベクトル情報設定部３３は、対象ブロックに対して、予測ブロックフラグと差分動きベクトル情報を生成する。
【０１１５】
図１４は、予測動きベクトル情報設定処理を示すフローチャートである。ステップＳＴ６１で予測動きベクトル情報設定部３３は、水平予測動きベクトル情報の候補を選択する。予測動きベクトル情報設定部３３は、対象ブロックに対して隣接している符号化済みのブロックの水平方向動きベクトル情報を、水平予測動きベクトル情報の候補として選択してステップＳＴ６２に進む。
【０１１６】
ステップＳＴ６２で予測動きベクトル情報設定部３３は、水平予測動きベクトル情報設定処理を行う。予測動きベクトル情報設定部３３は、例えは式（２０）に基づき、水平差分動きベクトル情報の符号化量が最小となるｉ番目の水平動きベクトル情報を検出する。
ａｒｇｉｍｉｎ（Ｒ（ｍｖｘ−ｐｍｖｘ(i)））  ・・・（２０）
【０１１７】
なお、「ｍｖｘ」は対象ブロックの水平動きベクトル情報、「ｐｍｖｘ(i)」は水平予測動きベクトル情報のｉ番目の候補を示している。また、「Ｒ（ｍｖｘ−ｐｍｖｘ(i)）」は、水平予測動きベクトルのｉ番目の候補と対象ブロックの水平動きベクトル情報との差分を示す水平差分動きベクトル情報を符号化したときの符号量を示している。
【０１１８】
予測動きベクトル情報設定部３３は、式（２０）に基づいて検出した符号化量が最小となる水平動きベクトル情報の隣接ブロックを示す水平予測ブロックフラグを生成する。また、予測動きベクトル情報設定部３３は、当該水平動きベクトル情報を用いたときの水平差分動きベクトル情報を生成してステップＳＴ６３に進む。
【０１１９】
ステップＳＴ６３で予測動きベクトル情報設定部３３は、垂直予測動きベクトル情報の候補を選択する。予測動きベクトル情報設定部３３は、対象ブロックに対して隣接している符号化済みのブロックの垂直方向動きベクトル情報を、垂直予測動きベクトル情報の候補として選択してステップＳＴ６４に進む。
【０１２０】
ステップＳＴ６４で予測動きベクトル情報設定部３３は、垂直予測動きベクトル情報設定処理を行う。予測動きベクトル情報設定部３３は、例えは式（２１）に基づき、垂直差報の符号化量が最小となるｊ番目の垂直動きベクトル情報を検出する。
ａｒｇｊｍｉｎ（Ｒ（ｍｖｙ−ｐｍｖｙ(ｊ)））  ・・・（２１）
【０１２１】
なお、「ｍｖｙ」は対象ブロックの垂直動きベクトル情報、「ｐｍｖｙ(ｊ)」は垂直予測動きベクトル情報のｊ番目の候補を示している。また、「Ｒ（ｍｖｙ−ｐｍｖｙ(j)）」は、垂直予測動きベクトルのｊ番目の候補と対象ブロックの垂直動きベクトル情報との差分を示す垂直差分動きベクトル情報を符号化したときの符号量を示している。
【０１２２】
予測動きベクトル情報設定部３３は、式（２１）に基づいて検出した符号化量が最小となる垂直動きベクトル情報の隣接ブロックを示す垂直予測ブロックフラグを生成する。また、予測動きベクトル情報設定部３３は、当該垂直動きベクトル情報を用いたときの垂直差分動きベクトル情報を生成して予測動きベクトル情報設定処理を終了して、図１３のステップＳＴ５３に戻る。
【０１２３】
ステップＳＴ５３で動き予測・補償部３２は、各予測モードでのコスト関数値を算出する。動き予測・補償部３２は、上述した式（９）または式（１０）を用いてコスト関数値の算出を行う。また、動き予測・補償部３２は、差分動きベクトル情報を用いて発生符号量を算出する。なお、インター予測モードに対するコスト関数値の算出には、Ｈ．２６４／ＡＶＣ方式において定められているスキップドマクロブロックやダイレクトモードのコスト関数値の評価も含まれる。
【０１２４】
ステップＳＴ５４で動き予測・補償部３２は、最適インター予測モードを決定する。動き予測・補償部３２は、ステップＳＴ５４において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である１つの予測モードを選択して最適インター予測モードに決定する。
【０１２５】
このように、画像符号化装置１０は、対象ブロックに対して水平予測動きベクトルと垂直予測動きベクトルを個々に設定する。また、画像符号化装置１０は、対象ブロックの水平動きベクトル情報と水平予測動きベクトル情報との差分である水平差分動きベクトル情報を可変長符号化する。また、画像符号化装置１０は、対象ブロックの垂直動きベクトルと垂直予測動きベクトル情報との差分である垂直差分動きベクトル情報を可変長符号化する。水平予測動きベクトル情報と垂直予測動きベクトル情報は、隣接する符号化済みブロックのいずれのブロックであるか予測ブロックフラグによって示される。
【０１２６】
したがって、式（２２）に示す水平垂直予測動きベクトル情報を用いる場合に比べて、予測ブロックフラグのデータ量を少なくできる。なお、式（２２）に示すように、水平垂直予測動きベクトル情報は、水平差分動きベクトル情報の符号量と垂直差分動きベクトル情報の符号量を加算した符号量が最小となる隣接ブロックの動きベクトル情報である。
ａｒｇｋｍｉｎ（Ｒ（ｍｖｘ−ｐｍｖｘ(ｋ)）
＋Ｒ（ｍｖｙ−ｐｍｖｙ(ｋ)））・・・（２２）
【０１２７】
例えば水平動きベクトル情報に対して３種類、垂直動きベクトル情報に対して３種類の候補がある場合、本願の発明では６種類（３種類＋３種類）のフラグを用意すればよい。しかし、水平差分動きベクトル情報の符号量と垂直差分動きベクトル情報の符号量を加算した符号量に基づきブロックを決定すると、９種類（３種類×３種類）のフラグを用意しなければならない。すなわち、本願発明では、用意するフラグを少なくてきるので、動きベクトル情報の符号化における効率を向上させることができる。
【０１２８】
＜３．画像復号化装置の構成＞
次に、画像復号化装置について説明する。入力画像を符号化して生成された画像圧縮情報は、所定の伝送路や記録媒体等を介して画像復号化装置に供給されて復号される。
【０１２９】
図１５は、画像復号化装置の構成を示している。画像復号化装置５０は、蓄積バッファ５１、可逆復号化部５２、逆量子化部５３、逆直交変換部５４、加算部５５、デブロッキングフィルタ５６、画面並べ替えバッファ５７、ディジタル／アナログ変換部（Ｄ／Ａ変換部）５８を備えている。さらに、画像復号化装置５０は、フレームメモリ６１、セレクタ６２，７５、イントラ予測部７１、動き補償部７２、予測動きベクトル情報設定部７３を備えている。
【０１３０】
蓄積バッファ５１は、伝送されてきた画像圧縮情報を蓄積する。可逆復号化部５２は、蓄積バッファ５１より供給された画像圧縮情報を、図７の可逆符号化部１６の符号化方式に対応する方式で復号化する。
【０１３１】
可逆復号化部５２は、画像圧縮情報を復号して得られた予測モード情報をイントラ予測部７１や動き補償部７２に出力する。また、可逆復号化部５２は、画像圧縮情報を復号して得られた予測ブロック情報（予測ブロックフラグ）と差分動きベクトル情報を動き補償部７２に出力する。
【０１３２】
逆量子化部５３は、可逆復号化部５２で復号された量子化データを、図７の量子化部１５の量子化方式に対応する方式で逆量子化する。逆直交変換部５４は、図７の直交変換部１４の直交変換方式に対応する方式で逆量子化部５３の出力を逆直交変換して加算部５５に出力する。
【０１３３】
加算部５５は、逆直交変換後のデータとセレクタ７５から供給される予測画像データを加算して復号画像データを生成してデブロッキングフィルタ５６とフレームメモリ６１に出力する。
【０１３４】
デブロッキングフィルタ５６は、加算部５５から供給された復号画像データに対してデブロッキングフィルタ処理を行い、ブロック歪みを除去してからフレームメモリ６１に供給し蓄積させるとともに、画面並べ替えバッファ５７に出力する。
【０１３５】
画面並べ替えバッファ５７は、画像の並べ替えを行う。すなわち、図７の画面並べ替えバッファ１２で符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられて、Ｄ／Ａ変換部５８に出力される。
【０１３６】
Ｄ／Ａ変換部５８は、画面並べ替えバッファ５７から供給された画像データをＤ／Ａ変換し、図示せぬディスプレイに出力することで画像を表示させる。
【０１３７】
フレームメモリ６１は、デブロッキングフィルタ２４でフィルタ処理が行われる前の復号画像データと、デブロッキングフィルタ２４でフィルタ処理が行われた後の復号画像データを記憶する。
【０１３８】
セレクタ６２は、可逆復号化部５２から供給された予測モード情報に基づき、イントラ予測画像の復号化の場合、フレームメモリ６１に記憶されているフィルタ処理前の復号画像データをイントラ予測部７１に供給する。また、セレクタ６２は、インター予測画像の復号化の場合、フレームメモリ６１に記憶されているフィルタ処理後の復号画像データを動き補償部７２に供給する。
【０１３９】
イントラ予測部７１は、可逆復号化部５２から供給された予測モード情報とセレクタ６２を介してフレームメモリ６１から供給された復号画像データに基づいて予測画像データの生成を行い、生成した予測画像データをセレクタ７５に出力する。
【０１４０】
動き補償部７２は、可逆復号化部５２から供給された差分動きベクトル情報と予測動きベクトル情報設定部７３から供給された予測動きベクトル情報を加算して、復号化対象のブロックの動きベクトル情報を生成する。また、動き補償部７２は、生成した動きベクトル情報と可逆復号化部５２から供給された予測モード情報に基づき、フレームメモリ６１から供給された復号画像データを用いて動き補償を行い、予測画像データを生成してセレクタ７５に出力する。
【０１４１】
予測動きベクトル情報設定部７３は、可逆復号化部５２から供給された予測ブロック情報に基づき予測動きベクトル情報の設定を行う。予測動きベクトル情報設定部７３は、対象ブロックについて、復号化済みの隣接ブロックにおける水平予測ブロックフラグ情報で示されたブロックの水平動きベクトル情報を水平予測動きベクトル情報とする。また、復号化済みの隣接ブロックにおける垂直予測ブロックフラグで示されたブロックの垂直動きベクトル情報を垂直予測動きベクトル情報とする。予測動きベクトル情報設定部７３は、設定した水平予測動きベクトル情報と垂直動きベクトル情報を動き補償部７２に出力する。
【０１４２】
図１６は、動き補償部７２と予測動きベクトル情報設定部７３の構成を示している。
【０１４３】
動き補償部７２は、ブロックサイズ情報バッファ７２１、差分動きベクトル情報バッファ７２２、動きベクトル情報生成部７２３、動き補償処理部７２４、動きベクトル情報バッファ７２５を有している。
【０１４４】
ブロックサイズ情報バッファ７２１は、可逆復号化部５２から供給された予測モード情報に含まれているブロックサイズ情報を記憶する。また、ブロックサイズ情報バッファ７２１は、記憶しているブロックサイズ情報を動き補償処理部７２４と予測動きベクトル情報設定部７３に出力する。
【０１４５】
差分動きベクトル情報バッファ７２２は、可逆復号化部５２から供給された差分動きベクトル情報を記憶する。また、差分動きベクトル情報バッファ７２２は、記憶している差分動きベクトル情報を動きベクトル情報生成部７２３に出力する。
【０１４６】
動きベクトル情報生成部７２３は、差分動きベクトル情報バッファ７２２から供給された水平差分動きベクトル情報と予測動きベクトル情報設定部７３で設定された水平予測動きベクトル情報を加算する。また、動きベクトル情報生成部７２３は、差分動きベクトル情報バッファ７２２から供給された垂直差分動きベクトル情報と予測動きベクトル情報設定部７３で設定された垂直予測動きベクトル情報を加算する。動きベクトル情報生成部７２３は、差分動きベクトル情報と予測動きベクトル情報を加算して得られた動きベクトル情報を動き補償処理部７２４と動きベクトル情報バッファ７２５に出力する。
【０１４７】
動き補償処理部７２４は、可逆復号化部５２から供給された予測モード情報に基づいてフレームメモリ６１から参照画像の画像データを読み出す。動き補償処理部７２４は、参照画像の画像データと、ブロックサイズ情報バッファ７２１から供給されたブロック情報と、動きベクトル情報生成部７２３から供給された動きベクトル情報とに基づき動き補償を行う。動き補償処理部７２４は、動き補償によって生成した予測画像データをセレクタ７５に出力する。
【０１４８】
動きベクトル情報バッファ７２５は、動きベクトル情報生成部７２３から供給された動きベクトル情報を記憶する。また、動きベクトル情報バッファ７２５は、記憶している動きベクトル情報を予測動きベクトル情報設定部７３に出力する。
【０１４９】
予測動きベクトル情報設定部７３は、フラグバッファ７３０と水平予測動きベクトル情報生成部７３１、および垂直予測動きベクトル情報生成部７３２を有している。
【０１５０】
フラグバッファ７３０は、可逆復号化部５２から供給された予測ブロックフラグを記憶する。また、フラグバッファ７３０は、記憶している予測ブロックフラグを水平予測動きベクトル情報生成部７３１と、垂直予測動きベクトル情報生成部７３２に出力する。
【０１５１】
水平予測動きベクトル情報生成部７３１は、動き補償部７２の動きベクトル情報バッファ７２５に記憶されている隣接ブロックの水平動きベクトル情報から、水平予測ブロックフラグで示された動きベクトル情報を選択して水平予測動きベクトル情報に設定する。水平予測動きベクトル情報生成部７３１は、設定した水平予測動きベクトル情報を動き補償部７２の動きベクトル情報生成部７２３に出力する。
【０１５２】
垂直予測動きベクトル情報生成部７３２は、動き補償部７２の動きベクトル情報バッファ７２５に記憶されている隣接ブロックの垂直動きベクトル情報から、垂直予測ブロックフラグで示された動きベクトル情報を選択して垂直予測動きベクトル情報に設定する。垂直予測動きベクトル情報生成部７３２は、設定した垂直予測動きベクトル情報を動き補償部７２の動きベクトル情報生成部７２３に出力する。
【０１５３】
図１５に戻り、セレクタ７５は、可逆復号化部５２から供給された予測モード情報に基づき、イントラ予測である場合はイントラ予測部７１、インター予測である場合は動き補償部７２を選択する。セレクタ７５は、選択されたイントラ予測部７１または動き補償部７２で生成された予測画像データを加算部５５に出力する。
【０１５４】
＜４．画像復号化装置の動作＞
次に、図１７のフローチャートを参照して、画像復号化装置５０で行われる画像復号処理動作について説明する。
【０１５５】
ステップＳＴ８１で蓄積バッファ５１は、伝送されてきた画像圧縮情報を蓄積する。ステップＳＴ８２で可逆復号化部５２は、可逆復号化処理を行う。可逆復号化部５２は、蓄積バッファ５１から供給される画像圧縮情報を復号化する。すなわち、図７の可逆符号化部１６で符号化された各ピクチャの量子化データが得られる。また、可逆復号化部５２、画像圧縮情報に含まれている予測モード情報の可逆復号化を行い、得られた予測モード情報がイントラ予測モードに関する情報である場合、予測モード情報をイントラ予測部７１に出力する。また、可逆復号化部５２は、予測モード情報がインター予測モードに関する情報である場合、予測モード情報を動き補償部７２に出力する。
【０１５６】
ステップＳＴ８３において逆量子化部５３は、逆量子化処理を行う。逆量子化部５３は、可逆復号化部５２により復号された量子化データを、図７の量子化部１５の特性に対応する特性で逆量子化する。
【０１５７】
ステップＳＴ８４において逆直交変換部５４は、逆直交変換処理を行う。逆直交変換部５４は、逆量子化部５３により逆量子化された変換係数データを、図７の直交変換部１４の特性に対応する特性で逆直交変換する。
【０１５８】
ステップＳＴ８５において加算部５５は、復号画像データの生成を行う。加算部５５は、逆直交変換処理を行うことにより得られたデータと、後述するステップＳＴ８９で選択された予測画像データを加算して復号画像データを生成する。これにより元の画像が復号される。
【０１５９】
ステップＳＴ８６においてデブロッキングフィルタ５６は、フィルタ処理を行う。デブロッキングフィルタ５６は、加算部５５より出力された復号画像データのデブロッキングフィルタ処理を行い、復号画像に含まれているブロック歪みを除去する。
【０１６０】
ステップＳＴ８７においてフレームメモリ６１は、復号画像データの記憶処理を行う。
【０１６１】
ステップＳＴ８８においてイントラ予測部７１と動き補償部７２は、予測処理を行う。イントラ予測部７１と動き補償部７２は、可逆復号化部５２から供給される予測モード情報に対応してそれぞれ予測処理を行う。
【０１６２】
すなわち、可逆復号化部５２からイントラ予測の予測モード情報が供給された場合、イントラ予測部７１は、予測モード情報に基づいて予測画像データを生成する。また、可逆復号化部５２からインター予測の予測モード情報が供給された場合、動き補償部７２は、予測モード情報に基づき動き補償を行い、予測画像データを生成する。
【０１６３】
ステップＳＴ８９において、セレクタ７５は予測画像データの選択を行う。セレクタ７５は、イントラ予測部７１から供給された予測画像と動き補償部７２から供給された予測画像データの選択を行い、選択した予測画像データを加算部５５に供給して、上述したように、ステップＳＴ８５において逆直交変換部５４の出力と加算させる。
【０１６４】
ステップＳＴ９０において画面並べ替えバッファ５７は、画像並べ替えを行う。すなわち画面並べ替えバッファ５７は、図７の画像符号化装置１０の画面並べ替えバッファ１２で符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
【０１６５】
ステップＳＴ９１において、Ｄ／Ａ変換部５８は、画面並べ替えバッファ５７からの画像データをＤ／Ａ変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
【０１６６】
次に、図１８のフローチャートを参照して、図１７のステップＳＴ８８の予測処理について説明する。
【０１６７】
ステップＳＴ１０１で可逆復号化部５２は、対象ブロックがイントラ符号化されているか否かを判定する。可逆復号化部５２は、可逆復号化を行うことで得られた予測モード情報がイントラ予測の予測モード情報である場合、予測モード情報をイントラ予測部７１に供給してステップＳＴ１０２に進む。また、可逆復号化部５２は、予測モード情報がインター予測の予測モード情報である場合、予測モード情報を動き補償部７２に供給してステップＳＴ１０３に進む。
【０１６８】
ステップＳＴ１０２でイントラ予測部７１は、イントラ予測画像生成処理を行う。イントラ予測部７１は、フレームメモリ６１に記憶されているデブロックフィルタ処理前の復号画像データと予測モード情報を用いてイントラ予測を行い、予測画像データを生成する。
【０１６９】
ステップＳＴ１０３で動き補償部７２は、インター予測画像生成処理を行う。動き補償部７２は、可逆復号化部５２からの予測モード情報や差分動きベクトル情報に基づいて、フレームメモリ６１から読み出した参照画像の動き補償を行い、予測画像データを生成する。
【０１７０】
図１９は、ステップＳＴ１０３のインター予測画像生成処理を示すフローチャートである。ステップＳＴ１１１で動き補償部７２は、予測モード情報を取得する。動き補償部７２は、予測モード情報を可逆復号化部５２から取得してステップＳＴ１１２に進む。
【０１７１】
ステップＳＴ１１２で動き補償部７２と予測動きベクトル情報設定部７３は、動きベクトル情報再構築処理を行う。図２０は、動きベクトル情報再構築処理を示すフローチャートである。
【０１７２】
ステップＳＴ１２１で動き補償部７２と予測動きベクトル情報設定部７３は、予測ブロックフラグと差分動きベクトル情報を取得する。動き補償部７２は、可逆復号化部５２から差分動きベクトル情報を取得する。また、予測動きベクトル情報設定部７３は、可逆復号化部５２から予測ブロックフラグを取得してステップＳＴ１２２に進む。
【０１７３】
ステップＳＴ１２２で予測動きベクトル情報設定部７３は、水平予測動きベクトル情報設定処理を行う。水平予測動きベクトル情報生成部７３１は、動き補償部７２の動きベクトル情報バッファ７２５に記憶されている隣接ブロックの水平動きベクトル情報から、水平予測ブロックフラグで示されたブロックの水平動きベクトル情報を選択する。水平予測動きベクトル情報生成部７３１は、選択した水平動きベクトル情報を水平予測動きベクトル情報に設定する。
【０１７４】
ステップＳＴ１２３で動き補償部７２は、水平動きベクトル情報の再構築を行う。動き補償部７２は、水平差分動きベクトル情報と水平予測動きベクトル情報を加算して水平動きベクトル情報を再構築してステップＳＴ１２４に進む。
【０１７５】
ステップＳＴ１２４で予測動きベクトル情報設定部７３は、垂直予測動きベクトル情報設定処理を行う。垂直予測動きベクトル情報生成部７３２は、動き補償部７２の動きベクトル情報バッファ７２５に記憶されている隣接ブロックの垂直動きベクトル情報から、垂直予測ブロックフラグで示されたブロックの垂直動きベクトル情報を選択する。垂直予測動きベクトル情報生成部７３２は、選択した垂直動きベクトル情報を垂直予測動きベクトル情報に設定する。
【０１７６】
ステップＳＴ１２５で動き補償部７２は、垂直動きベクトル情報の再構築を行う。動き補償部７２は、垂直差分動きベクトル情報と垂直予測動きベクトル情報を加算して垂直動きベクトル情報を再構築して図１９のステップＳＴ１１３に進む。
【０１７７】
ステップＳＴ１１３で動き補償部７２は、予測画像データの生成を行う。動き補償部７２はステップＳＴ１１１で取得した予測モード情報や、ステップＳＴ１１２で再構築した動きベクトル情報に基づき、フレームメモリ６１から参照画像データを読み出して動き補償を行い、予測画像データを生成してセレクタ７５に出力する。
【０１７８】
このように、画像復号化装置５０は、水平予測ブロックフラグで示された隣接ブロックの水平動きベクトル情報が水平予測動きベクトル情報、垂直予測ブロックフラグで示された隣接ブロックの垂直動きベクトル情報が垂直予測動きベクトル情報に設定される。したがって、画像符号化装置１０で符号化効率を向上させるために、水平予測動きベクトル情報と垂直予測動きベクトル情報を個々に設定しても、正しく動きベクトル情報を再構築することができる。
【０１７９】
＜５．画像符号化装置と画像復号化装置の他の構成＞
ところで、上述の画像符号化装置と画像復号化装置では、個々に水平予測動きベクトル情報と垂直予測動きベクトル情報を設定して、動きベクトル情報の符号化や復号化を行う場合について説明した。しかし、個々に水平予測動きベクトル情報と垂直予測動きベクトル情報を設定可能とするだけでなく、水平垂直動きベクトル情報も設定可能とすれば、最適な符号効率を実現することも可能となる。この場合、画像符号化装置１０で用いる予測動きベクトル情報設定部３３ａは、図２１に示す構成とする。また、画像復号化装置５０で用いる予測動きベクトル情報設定部７３ａは、図２２に示す構成とする。
【０１８０】
図２１において、水平垂直予測動きベクトル情報生成部３３３は、動き予測・補償部３２から供給された符号化済みの隣接ブロックの動きベクトル情報を予測動きベクトル情報の候補とする。また、水平垂直予測動きベクトル情報生成部３３３は、各候補の動きベクトル情報と、動き予測・補償部３２から供給された対象ブロックの動きベクトル情報との差分を示す差分動きベクトル情報を生成する。さらに、水平垂直予測動きベクトル情報生成部３３３は、上述の式（２３）に基づいて検出した符号化量が最小となる動きベクトル情報を水平垂直予測動きベクトル情報とする。水平垂直予測動きベクトル情報生成部３３３は、水平垂直予測動きベクトル情報と水平垂直予測動きベクトル情報を用いた場合の差分動きベクトル情報を水平垂直予測動きベクトル情報生成結果として識別情報生成部３３４ａに出力する。
【０１８１】
識別情報生成部３３４ａは、個々に水平予測動きベクトル情報と垂直予測動きベクトル情報、または水平垂直予測動きベクトル情報のいずれかを選択して、選択した予測動きベクトル情報を差分動きベクトル情報と共にコスト関数値算出部３２２に出力する。例えば、予測動きベクトル情報として水平予測動きベクトル情報と垂直予測動きベクトル情報を選択した場合、上述のように、識別情報生成部３３４ａは、水平予測ブロックフラグと水平差分動きベクトル情報をコスト関数値算出部３２２に出力する。また、識別情報生成部３３４ａは、垂直予測ブロックフラグと垂直差分動きベクトル情報をコスト関数値算出部３２２に出力する。さらに、予測動きベクトル情報として水平垂直予測動きベクトル情報を選択した場合、識別情報生成部３３４ａは、動きベクトル情報が水平垂直予測動きベクトル情報として選択されたブロックを示す水平垂直予測ブロック情報を生成する。例えば、識別情報生成部３３４ａは、水平垂直予測ブロック情報として水平垂直予測ブロックフラグを生成する。識別情報生成部３３４ａは、生成した水平垂直予測ブロックフラグを差分動きベクトル情報と共にコスト関数値算出部３２２に出力する。
【０１８２】
また、識別情報生成部３３４ａは、水平予測動きベクトル情報と垂直予測動きベクトル情報、または水平垂直予測動きベクトル情報のいずれが選択されているかを示す識別情報を生成する。この識別情報は、動き予測・補償部３２を介して可逆符号化部１６に供給して、画像圧縮情報のピクチャパラメータセットまたはスライスヘッダに含める。
【０１８３】
識別情報生成部３３４ａは、予測動きベクトル情報を選択する場合、ピクチャ単位やスライス単位で水平予測動きベクトル情報と垂直予測動きベクトル情報、または水平垂直予測動きベクトル情報の切り替えを行うようにしてもよい。また、識別情報生成部３３４ａは、ピクチャ単位で水平予測動きベクトル情報と垂直予測動きベクトル情報、または水平垂直予測動きベクトル情報のいずれを選択する場合、例えば対象ブロックのピクチャタイプに応じて選択を行うようにしてもよい。すなわち、Ｐピクチャにおいては、多少フラグ情報に対するオーバーヘッドがあっても、その分、動きベクトル符号化の効率を向上させることが重要である。したがって、Ｐピクチャの場合、水平予測ブロックフラグと水平差分動きベクトル情報および垂直予測ブロックフラグと垂直差分動きベクトル情報をコスト関数値算出部３２２に出力する。また、Ｂピクチャにおいては、List0予測と、List1予測のそれぞれに対して、水平予測ブロックフラグと垂直予測ブロックフラグを持つことは、特に低ビットレートの場合、最適な符号化効率を実現できるとは限らない。したがって、Ｂピクチャの場合、従来のように、水平垂直予測ブロックフラグと差分動きベクトル情報をコスト関数値算出部３２２に出力することにより、最適な符号化効率を達成することが可能である。
【０１８４】
図２２において、フラグバッファ７３０ａは、画像圧縮情報に含まれている識別情報に基づき予測ブロックフラグの供給先を切り替える。例えば、水平予測動きベクトル情報と垂直予測動きベクトル情報が選択されている場合、フラグバッファ７３０ａは、予測ブロックフラグを水平予測動きベクトル情報生成部７３１と垂直予測動きベクトル情報生成部７３２に出力する。また、水平垂直予測動きベクトル情報が選択されている場合、フラグバッファ７３０ａは、予測ブロックフラグを水平垂直予測動きベクトル情報生成部７３３に出力する。また、フラグバッファ７３０ａは、例えばピクチャタイプに応じて予測動きベクトル情報の切り替えが行われる場合、予測ブロックフラグの供給先をピクチャタイプに応じて切り替える。例えばＰピクチャの場合は水平予測動きベクトル情報と垂直予測動きベクトル情報、Ｂピクチャの場合は水平垂直予測動きベクトル情報を用いて動きベクトル情報の符号化が行われているとする。この場合、フラグバッファ７３０ａは、Ｐピクチャの場合は予測ブロックフラグを水平予測動きベクトル情報生成部７３１と垂直予測動きベクトル情報生成部７３２、Ｂピクチャの場合は予測ブロックフラグを水平垂直予測動きベクトル情報生成部７３３に供給する。
【０１８５】
また、可逆符号化部１６は、水平方向と垂直方向に対して、異なるコード割り当てを行うようにしてもよい。例えば予測動きベクトル情報として空間予測動きベクトル情報と時間予測動きベクトル情報を用いることが可能であるとする。この場合、符号化対象の動画像を生成したときの撮像動作を考慮して、データ量の少ないコードを予測精度の高い予測動きベクトル情報に対して割り当てる。例えば、後述する撮像装置で撮像画像の記録を行う場合、撮像装置のパンニング操作が行われて、撮像方向が水平方向に移動すると、垂直方向の動きベクトル情報はほとんど「０」となる。このとき、垂直方向に対しては空間予測動きベクトル情報よりも時間予測動きベクトル情報の予測精度が高く、水平方向に対しては時間予測動きベクトル情報より空間予測動きベクトル情報の予測精度が高くなることが多い。したがって、水平予測ブロック情報に関しては、空間予測動きベクトル情報のブロックに対してコード番号「０」、時間方向予測動きベクトル情報のブロックに対してコード番号「１」を割り当てる。また、垂直予測ブロック情報に関しては、空間予測ベクトル情報のブロックに対してコード番号「１」、時間方向予測動きベクトル情報のブロックに対してコード番号「０」を割り当てる。このように、水平予測ブロック情報と垂直予測ブロック情報で異なるコード割り当てを行うことで、データ量の少ないコードを多く用いるようにできるので、より高い符号化効率を実現することが可能となる。
【０１８６】
＜６．ソフトウェア処理の場合＞
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、または両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させる。または、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることも可能である。
【０１８７】
図２３は、上述した一連の処理をプログラムで実行するコンピュータ装置の構成を例示した図である。コンピュータ装置８０のＣＰＵ８０１は、ＲＯＭ８０２、または記録部８０８に記録されているプログラムにしたがって各種の処理を実行する。
【０１８８】
ＲＡＭ８０３には、ＣＰＵ８０１が実行するプログラムやデータなどが適宜記憶される。これらのＣＰＵ８０１、ＲＯＭ８０２、およびＲＡＭ８０３は、バス８０４で相互に接続されている。
【０１８９】
ＣＰＵ８０１にはまた、バス８０４を介して入出力インタフェース８０５が接続されている。入出力インタフェース８０５には、タッチパネルやキーボード、マウス、マイクロホンなどの入力部８０６、ディスプレイなどよりなる出力部８０７が接続されている。ＣＰＵ８０１は、入力部８０６から入力される指令に対応して各種の処理を実行する。そして、ＣＰＵ８０１は、処理の結果を出力部８０７に出力する。
【０１９０】
入出力インタフェース８０５に接続されている記録部８０８は、例えばハードディスクからなり、ＣＰＵ８０１が実行するプログラムや各種のデータを記録する。通信部８０９は、インターネットやローカルエリアネットワークなどのネットワークやディジタル放送といった有線または無線の通信媒体を介して外部の装置と通信する。また、コンピュータ装置８０は、通信部８０９を介してプログラムを取得し、ＲＯＭ８０２や記録部８０８に記録してもよい。
【０１９１】
ドライブ８１０は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア８５が装着された場合、それらを駆動して、記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じてＲＯＭ８０２やＲＡＭ８０３または記録部８０８に転送される。
【０１９２】
ＣＰＵ８０１は、上述の一連の処理を行うプログラムを読み出して実行し、記録部８０８やリムーバブルメディア８５に記録されている画像信号や、通信部８０９を介して供給された画像信号に対する符号化処理や画像圧縮情報の復号化処理を行う。
【０１９３】
＜７．電子機器に適用した場合＞
また、以上においては、符号化方式／復号方式としてＨ．２６４／ＡＶＣ方式が用いられたが、本発明は、その他の動き予測・補償処理を行う符号化方式／復号方式を用いる画像符号化装置／画像復号装置に適用することもできる。
【０１９４】
さらに、本発明は例えば離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報（ビットストリーム）を、衛星放送、ケーブルＴＶ（テレビジョン）、インターネット、および携帯電話機などのネットワークメディアを介して受信する際に適用できる。また、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。
【０１９５】
上述した画像符号化装置１０や画像復号化装置５０は、任意の電子機器に適用することができる。以下にその例について説明する。
【０１９６】
図２４は、本発明を適用したテレビジョン装置の概略構成を例示している。テレビジョン装置９０は、アンテナ９０１、チューナ９０２、デマルチプレクサ９０３、デコーダ９０４、映像信号処理部９０５、表示部９０６、音声信号処理部９０７、スピーカ９０８、外部インタフェース部９０９を有している。さらに、テレビジョン装置９０は、制御部９１０、ユーザインタフェース部９１１等を有している。
【０１９７】
チューナ９０２は、アンテナ９０１で受信された放送波信号から所望のチャンネルを選局して復調を行い、得られたストリームをデマルチプレクサ９０３に出力する。
【０１９８】
デマルチプレクサ９０３は、ストリームから視聴対象である番組の映像や音声のパケットを抽出して、抽出したパケットのデータをデコーダ９０４に出力する。また、デマルチプレクサ９０３は、ＥＰＧ（Electronic Program Guide）等のデータのパケットを制御部９１０に出力する。なお、スクランブルが行われている場合、デマルチプレクサ等でスクランブルの解除を行う。
【０１９９】
デコーダ９０４は、パケットの復号化処理を行い、復号処理化によって生成された映像データを映像信号処理部９０５、音声データを音声信号処理部９０７に出力する。
【０２００】
映像信号処理部９０５は、映像データに対して、ノイズ除去やユーザ設定に応じた映像処理等を行う。映像信号処理部９０５は、表示部９０６に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成する。また、映像信号処理部９０５は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それを番組の映像データに重畳する。映像信号処理部９０５は、このようにして生成した映像データに基づいて駆動信号を生成して表示部９０６を駆動する。
【０２０１】
表示部９０６は、映像信号処理部９０５からの駆動信号に基づき表示デバイス（例えば液晶表示素子等）を駆動して、番組の映像などを表示させる。
【０２０２】
音声信号処理部９０７は、音声データに対してノイズ除去などの所定の処理を施し、処理後の音声データのＤ／Ａ変換処理や増幅処理を行い、スピーカ９０８に供給することで音声出力を行う。
【０２０３】
外部インタフェース部９０９は、外部機器やネットワークと接続するためのインタフェースであり、映像データや音声データ等のデータ送受信を行う。
【０２０４】
制御部９１０にはユーザインタフェース部９１１が接続されている。ユーザインタフェース部９１１は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部９１０に供給する。
【０２０５】
制御部９１０は、ＣＰＵ（Central Processing Unit）やメモリ等を用いて構成されている。メモリは、ＣＰＵで実行されるプログラムやＣＰＵが処理を行う上で必要な各種のデータ、ＥＰＧデータ、ネットワークを介して取得されたデータ等を記憶する。メモリに記憶されているプログラムは、テレビジョン装置９０の起動時などの所定タイミングでＣＰＵで読み出されて実行される。ＣＰＵは、プログラムを実行することで、テレビジョン装置９０がユーザ操作に応じた動作となるように各部を制御する。
【０２０６】
なお、テレビジョン装置９０では、チューナ９０２、デマルチプレクサ９０３、映像信号処理部９０５、音声信号処理部９０７、外部インタフェース部９０９等と制御部９１０を接続するためバス９１２が設けられている。
【０２０７】
このように構成されたテレビジョン装置では、デコーダ９０４に本願の画像復号化装置（画像復号化方法）の機能が設けられる。このため、テレビジョン装置では、生成した予測動きベクトル情報と受信した差分動きベクトル情報に基づいて、復号化を行う対象ブロックの動きベクトル情報を正しく復元できる。したがって、放送局側で水平予測動きベクトル情報と垂直予測動きベクトル情報を個々に設定して符号化効率を高める処理を行っても、テレビジョン装置で正しく復号化を行える。
【０２０８】
図２５は、本発明を適用した携帯電話機の概略構成を例示している。携帯電話機９２は、通信部９２２、音声コーデック９２３、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、制御部９３１を有している。これらは、バス９３３を介して互いに接続されている。
【０２０９】
また、通信部９２２にはアンテナ９２１が接続されており、音声コーデック９２３には、スピーカ９２４とマイクロホン９２５が接続されている。さらに制御部９３１には、操作部９３２が接続されている。
【０２１０】
携帯電話機９２は、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
【０２１１】
音声通話モードにおいて、マイクロホン９２５で生成された音声信号は、音声コーデック９２３で音声データへの変換やデータ圧縮が行われて通信部９２２に供給される。通信部９２２は、音声データの変調処理や周波数変換処理等を行い、送信信号を生成する。また、通信部９２２は、送信信号をアンテナ９２１に供給して図示しない基地局へ送信する。また、通信部９２２は、アンテナ９２１で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、得られた音声データを音声コーデック９２３に供給する。音声コーデック９２３は、音声データのデータ伸張やアナログ音声信号への変換を行い、スピーカ９２４に出力する。
【０２１２】
また、データ通信モードにおいて、メール送信を行う場合、制御部９３１は、操作部９３２の操作によって入力された文字データを受け付けて、入力された文字を表示部９３０に表示する。また、制御部９３１は、操作部９３２におけるユーザ指示等に基づいてメールデータを生成して通信部９２２に供給する。通信部９２２は、メールデータの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ９２１から送信する。また、通信部９２２は、アンテナ９２１で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、メールデータを復元する。このメールデータを、表示部９３０に供給して、メール内容の表示を行う。
【０２１３】
なお、携帯電話機９２は、受信したメールデータを、記録再生部９２９で記憶媒体に記憶させることも可能である。記憶媒体は、書き換え可能な任意の記憶媒体である。例えば、記憶媒体は、ＲＡＭや内蔵型フラッシュメモリ等の半導体メモリ、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、ＵＳＢメモリ、またはメモリカード等のリムーバブルメディアである。
【０２１４】
データ通信モードにおいて画像データを送信する場合、カメラ部９２６で生成された画像データを、画像処理部９２７に供給する。画像処理部９２７は、画像データの符号化処理を行い、画像圧縮情報を生成する。
【０２１５】
多重分離部９２８は、画像処理部９２７で生成された画像圧縮情報と、音声コーデック９２３から供給された音声データを所定の方式で多重化して、通信部９２２に供給する。通信部９２２は、多重化データの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ９２１から送信する。また、通信部９２２は、アンテナ９２１で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、多重化データを復元する。この多重化データを多重分離部９２８に供給する。多重分離部９２８は、多重化データの分離を行い、画像圧縮情報を画像処理部９２７、音声データを音声コーデック９２３に供給する。
【０２１６】
画像処理部９２７は、画像圧縮情報の復号化処理を行い、画像データを生成する。この画像データを表示部９３０に供給して、受信した画像の表示を行う。音声コーデック９２３は、音声データをアナログ音声信号に変換してスピーカ９２４に供給して、受信した音声を出力する。
【０２１７】
このように構成された携帯電話装置では、画像処理部９２７に本願の画像符号化装置（画像符号化方法）と画像復号化装置（画像復号化方法）の機能が設けられる。したがって、画像を送信する際に、対象ブロックについて、動きベクトル情報の水平成分に対して水平予測動きベクトル情報、垂直成分に対して垂直予測動きベクトル情報を個々に設定して符号化効率を向上させることができる。また、画像符号化処理によって生成した画像圧縮情報の復号化を正しく行うことができる。
【０２１８】
図２６は、本発明を適用した記録再生装置の概略構成を例示している。記録再生装置９４は、例えば受信した放送番組のオーディオデータとビデオデータを、記録媒体に記録して、その記録されたデータをユーザの指示に応じたタイミングでユーザに提供する。また、記録再生装置９４は、例えば他の装置からオーディオデータやビデオデータを取得し、それらを記録媒体に記録させることもできる。さらに、記録再生装置９４は、記録媒体に記録されているオーディオデータやビデオデータを復号して出力することで、モニタ装置等において画像表示や音声出力を行うことができるようにする。
【０２１９】
記録再生装置９４は、チューナ９４１、外部インタフェース部９４２、エンコーダ９４３、ＨＤＤ（Hard Disk Drive）部９４４、ディスクドライブ９４５、セレクタ９４６、デコーダ９４７、ＯＳＤ（On-Screen Display）部９４８、制御部９４９、ユーザインタフェース部９５０を有している。
【０２２０】
チューナ９４１は、図示しないアンテナで受信された放送信号から所望のチャンネルを選局する。チューナ９４１は、所望のチャンネルの受信信号を復調して得られた画像圧縮情報をセレクタ９４６に出力する。
【０２２１】
外部インタフェース部９４２は、ＩＥＥＥ１３９４インタフェース、ネットワークインタフェース部、ＵＳＢインタフェース、フラッシュメモリインタフェース等の少なくともいずれかで構成されている。外部インタフェース部９４２は、外部機器やネットワーク、メモリカード等と接続するためのインタフェースであり、記録する映像データや音声データ等のデータ受信を行う。
【０２２２】
エンコーダ９４３は、外部インタフェース部９４２から供給された映像データや音声データが符号化されていない場合所定の方式で符号化を行い、画像圧縮情報をセレクタ９４６に出力する。
【０２２３】
ＨＤＤ部９４４は、映像や音声等のコンテンツデータ、各種プログラムやその他のデータ等を内蔵のハードディスクに記録し、また再生時等にそれらを当該ハードディスクから読み出す。
【０２２４】
ディスクドライブ９４５は、装着されている光ディスクに対する信号の記録および再生を行う。光ディスク、例えばＤＶＤディスク（ＤＶＤ−Ｖｉｄｅｏ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等）やＢｌｕ−ｒａｙディスク等である。
【０２２５】
セレクタ９４６は、映像や音声の記録時には、チューナ９４１またはエンコーダ９４３からのいずれかのストリームを選択して、ＨＤＤ部９４４やディスクドライブ９４５のいずれかに供給する。また、セレクタ９４６は、映像や音声の再生時に、ＨＤＤ部９４４またはディスクドライブ９４５から出力されたストリームをデコーダ９４７に供給する。
【０２２６】
デコーダ９４７は、ストリームの復号化処理を行う。デコーダ９４７は、復号処理化を行うことで生成された映像データをＯＳＤ部９４８に供給する。また、デコーダ９４７は、復号処理化を行うことで生成された音声データを出力する。
【０２２７】
ＯＳＤ部９４８は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それをデコーダ９４７から出力された映像データに重畳して出力する。
【０２２８】
制御部９４９には、ユーザインタフェース部９５０が接続されている。ユーザインタフェース部９５０は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部９４９に供給する。
【０２２９】
制御部９４９は、ＣＰＵやメモリ等を用いて構成されている。メモリは、ＣＰＵで実行されるプログラムやＣＰＵが処理を行う上で必要な各種のデータを記憶する。メモリに記憶されているプログラムは、記録再生装置９４の起動時などの所定タイミングでＣＰＵにより読み出されて実行される。ＣＰＵは、プログラムを実行することで、記録再生装置９４がユーザ操作に応じた動作となるように各部を制御する。
【０２３０】
このように構成された記録再生装置では、エンコーダ９４３に本願の画像符号化装置（画像符号化方法）の機能が設けられる。また、デコーダ９４７に本願の画像復号化装置（画像復号化方法）の機能が設けられる。したがって、画像を記録媒体に記録する際に、対象ブロックについて、動きベクトル情報の水平成分に対して水平予測動きベクトル情報、垂直成分に対して垂直予測動きベクトル情報を個々に設定して符号化効率を向上させることができる。また、画像符号化処理によって生成した画像圧縮情報の復号化を正しく行うことができる。
【０２３１】
図２７は、本発明を適用した撮像装置の概略構成を例示している。撮像装置９６は、被写体を撮像し、被写体の画像を表示部に表示させたり、それを画像データとして、記録媒体に記録する。
【０２３２】
撮像装置９６は、光学ブロック９６１、撮像部９６２、カメラ信号処理部９６３、画像データ処理部９６４、表示部９６５、外部インタフェース部９６６、メモリ部９６７、メディアドライブ９６８、ＯＳＤ部９６９、制御部９７０を有している。また、制御部９７０には、ユーザインタフェース部９７１や動き検出センサ部９７２が接続されている。さらに、画像データ処理部９６４や外部インタフェース部９６６、メモリ部９６７、メディアドライブ９６８、ＯＳＤ部９６９、制御部９７０等は、バス９７３を介して接続されている。
【０２３３】
光学ブロック９６１は、フォーカスレンズや絞り機構等を用いて構成されている。光学ブロック９６１は、被写体の光学像を撮像部９６２の撮像面に結像させる。撮像部９６２は、ＣＣＤまたはＣＭＯＳイメージセンサを用いて構成されており、光電変換によって光学像に応じた電気信号を生成してカメラ信号処理部９６３に供給する。
【０２３４】
カメラ信号処理部９６３は、撮像部９６２から供給された電気信号に対してニー補正やガンマ補正、色補正等の種々のカメラ信号処理を行う。カメラ信号処理部９６３は、カメラ信号処理後の画像データを画像データ処理部９６４に供給する。
【０２３５】
画像データ処理部９６４は、カメラ信号処理部９６３から供給された画像データの符号化処理を行う。画像データ処理部９６４は、符号化処理を行うことで生成された画像圧縮情報を外部インタフェース部９６６やメディアドライブ９６８に供給する。また、画像データ処理部９６４は、外部インタフェース部９６６やメディアドライブ９６８から供給された画像圧縮情報の復号化処理を行う。画像データ処理部９６４は、復号化処理を行うことで生成された画像データを表示部９６５に供給する。また、画像データ処理部９６４は、カメラ信号処理部９６３から供給された画像データを表示部９６５に供給する処理や、ＯＳＤ部９６９から取得した表示用データを、画像データに重畳させて表示部９６５に供給する。
【０２３６】
ＯＳＤ部９６９は、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを生成して画像データ処理部９６４に出力する。
【０２３７】
外部インタフェース部９６６は、例えば、ＵＳＢ入出力端子などで構成され、画像の印刷を行う場合に、プリンタと接続される。また、外部インタフェース部９６６には、必要に応じてドライブが接続され、磁気ディスク、光ディスク等のリムーバブルメディアが適宜装着され、それらから読み出されたプログラムが、必要に応じて、インストールされる。さらに、外部インタフェース部９６６は、ＬＡＮやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。制御部９７０は、例えば、ユーザインタフェース部９７１からの指示にしたがって、メモリ部９６７から画像圧縮情報を読み出し、それを外部インタフェース部９６６から、ネットワークを介して接続される他の装置に供給させることができる。また、制御部９７０は、ネットワークを介して他の装置から供給される画像圧縮情報や画像データを、外部インタフェース部９６６を介して取得し、それを画像データ処理部９６４に供給したりすることができる。
【０２３８】
メディアドライブ９６８で駆動される記録メディアとしては、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアが用いられる。また、記録メディアは、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ＩＣカード等であってもよい。
【０２３９】
また、メディアドライブ９６８と記録メディアを一体化し、例えば、内蔵型ハードディスクドライブやＳＳＤ（Solid State Drive）等のように、非可搬性の記憶媒体で構成されるようにしてもよい。
【０２４０】
制御部９７０は、ＣＰＵやメモリ等を用いて構成されている。メモリは、ＣＰＵで実行されるプログラムやＣＰＵが処理を行う上で必要な各種のデータ等を記憶する。メモリに記憶されているプログラムは、撮像装置９６の起動時などの所定タイミングでＣＰＵにより読み出されて実行される。ＣＰＵは、プログラムを実行することで、撮像装置９６がユーザ操作に応じた動作となるように各部を制御する。
【０２４１】
このように構成された撮像装置では、画像データ処理部９６４に本願の画像符号化装置（画像符号化方法）と画像復号化装置（画像復号化方法）の機能が設けられる。したがって、撮像画像を記録する際に、対象ブロックについて、動きベクトル情報の水平成分に対して水平予測動きベクトル情報、垂直成分に対して垂直予測動きベクトル情報を個々に設定して符号化効率を向上させることができる。また、画像符号化処理によって生成した画像圧縮情報の復号化を正しく行うことができる。
【０２４２】
さらに、撮像装置９６にジャイロ等を用いて構成された動き検出センサ部９７２を設けて、撮像装置９６のパンニングやチルティング等の動きの検出結果に基づき、データ量の少ないコードを予測精度の高い予測動きベクトル情報に対して割り当てる。このように、撮像装置の動き検出結果に応じてコードの動的割り当てを行うことで、符号化効率をさらに向上させることができる。
【０２４３】
なお、本発明は、上述した発明の実施の形態に限定して解釈されるべきではない。この発明の実施の形態は、例示という形態で本発明を開示しており、本発明の要旨を逸脱しない範囲で当業者が実施の形態の修正や代用をなし得ることは自明である。すなわち、本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【産業上の利用可能性】
【０２４４】
この発明の画像符号化装置と動きベクトル符号化方法、画像復号化装置と動きベクトル復号化方法、およびプログラムでは、対象ブロックの動きベクトル情報の水平成分と垂直成分のそれぞれに対して、対象ブロックと隣接する符号化済みブロックから動きベクトル情報が選択されて水平予測動きベクトル情報と垂直予測動きベクトル情報がそれぞれ設定されて、設定された水平予測動きベクトル情報と垂直予測動きベクトル情報を用いて、対象ブロックの動きベクトル情報の圧縮処理が行われる。また、動きベクトル情報が選択されたブロックを示す水平予測ブロック情報と垂直予測ブロック情報が生成される。このため、例えば水平予測動きベクトル情報と垂直予測動きベクトル情報の候補の組み合わせ分のフラグよりも少ないデータ量である水平予測ブロック情報と垂直予測ブロック情報で水平予測動きベクトル情報と垂直予測動きベクトル情報の設定が可能となり、符号化効率を向上させることができる。したがって、高い符号化効率を実現できることから、画像圧縮情報（ビットストリーム）を、衛星放送、ケーブルＴＶ、インターネット、携帯電話などのネットワークメディアを介して送受信する際に、または光ディスク、磁気ディスク、フラッシュメモリのような記憶メディアを用いて画像の記録再生を行う装置等に適している。
【符号の説明】
【０２４５】
１０・・・画像符号化装置、１１・・・Ａ／Ｄ変換部、１２，５７・・・画面並べ替えバッファ、１３・・・減算部、１４・・・直交変換部、１５・・・量子化部、１６・・・可逆符号化部、１７，５１・・・蓄積バッファ、１８・・・レート制御部、２１，５３・・・逆量子化部、２２，５４・・・逆直交変換部、２３，５５・・・加算部、２４，５６・・・デブロッキングフィルタ、２５，６１・・・フレームメモリ、２６，６２，７５・・・セレクタ、３１，７１・・・イントラ予測部、３２・・・動き予測・補償部、３３，３３ａ，７３，７３ａ・・・予測動きベクトル情報設定部、３５・・・予測画像・最適モード選択部、５０・・・画像復号化装置、５２・・・可逆復号化部、５８・・・Ｄ／Ａ変換部、７２・・・動き補償部、８０・・・コンピュータ装置、９０・・・テレビジョン装置、９２・・・携帯電話機、９４・・・記録再生装置、９６・・・撮像装置、３２１・・・動き探索部、３２２・・・コスト関数値算出部、３２３・・・モード判定部、３２４・・・動き補償処理部、３２５・・・動きベクトルバッファ、３３１，７３１・・・水平予測動きベクトル情報生成部、３３２，７３２・・・垂直予測動きベクトル情報生成部、３３３，７３３・・・水平垂直予測動きベクトル情報生成部、３３４，３３４ａ・・・識別情報生成部、７２１・・・ブロックサイズ情報バッファ、７２２・・・差分動きベクトル情報バッファ、７２３・・・動きベクトル情報生成部、７２４・・・動き補償処理部、７２５・・・動きベクトル情報バッファ、７３０，７３０ａ・・・フラグバッファ
【図１】
2012124591.tif 000004
【図２】
2012124591.tif 000005
【図３】
2012124591.tif 000006
【図４】
2012124591.tif 000007
【図５】
2012124591.tif 000008
【図６】
2012124591.tif 000009
【図７】
2012124591.tif 000010
【図８】
2012124591.tif 000011
【図９】
2012124591.tif 000012
【図１０】
2012124591.tif 000013
【図１１】
2012124591.tif 000014
【図１２】
2012124591.tif 000015
【図１３】
2012124591.tif 000016
【図１４】
2012124591.tif 000017
【図１５】
2012124591.tif 000018
【図１６】
2012124591.tif 000019
【図１７】
2012124591.tif 000020
【図１８】
2012124591.tif 000021
【図１９】
2012124591.tif 000022
【図２０】
2012124591.tif 000023
【図２１】
2012124591.tif 000024
【図２２】
2012124591.tif 000025
【図２３】
2012124591.tif 000026
【図２４】
2012124591.tif 000027
【図２５】
2012124591.tif 000028
【図２６】
2012124591.tif 000029
【図２７】
2012124591.tif 000030