(57)【要約】【課題】符号化効率の低下を抑止することを課題とする。【解決手段】予測モードにダイレクトモードを含む符号化装置は、ダイレクトモードにて基準ベクトルが導出される際に、例えば、トップフィールドからボトムフィールドなど、パリティの異なる画素が参照される場合には、導出された基準ベクトルの値に対して半画素に相当する値を加算もしくは減算する補正を行う。また、符号化装置は、補正された基準ベクトルが時間配分されて第一および第二のダイレクトベクトルが導出される際に、パリティの異なる画素が参照される場合には、導出されたダイレクトベクトルの値に対して半画素に相当する値を加算もしくは減算する補正を行う。【選択図】        図１
2010062769.tif 000002
【特許請求の範囲】
【請求項１】
予測モードにダイレクトモードを含む符号化装置であって、
ダイレクトモードにて基準ベクトルが導出される際に、パリティの異なる画素が参照される場合には、導出された基準ベクトルの値に対して半画素に相当する値を加算もしくは減算する補正を行う基準ベクトル補正手段と、
前記基準ベクトル補正手段によって補正された基準ベクトルが時間配分されて第一および第二のダイレクトベクトルが導出される際に、パリティの異なる画素が参照される場合には、導出されたダイレクトベクトルの値に対して半画素に相当する値を加算もしくは減算する補正を行うダイレクトベクトル補正手段と、
を備えたことを特徴とする符号化装置。
【請求項２】
前記基準ベクトル補正手段は、
mvCol_correct＝mvCol＋２＊(isBottomFieldrefPicCol−isBottomFieldCol)
を用いて基準ベクトルの補正を行い、
前記ダイレクトベクトル補正手段は、
mvL0_correct＝mvL0＋２＊(isBottomFieldrefPicCol−isBottomFieldCurr)
を用いて第一のダイレクトベクトルの補正を行い、
mvL1_correct＝mvL1＋２＊(isBottomFieldCol−isBottomFieldCurr)
を用いて第二のダイレクトベクトルの補正を行うことを特徴とする請求項１に記載の符号化装置。
【請求項３】
予測モードにダイレクトモードを含む復号装置であって、
ダイレクトモードにて基準ベクトルが導出される際に、パリティの異なる画素が参照される場合には、導出された基準ベクトルの値に対して半画素に相当する値を加算もしくは減算する補正を行う基準ベクトル補正手段と、
前記基準ベクトル補正手段によって補正された基準ベクトルが時間配分されて第一および第二のダイレクトベクトルが導出される際に、パリティの異なる画素が参照される場合には、導出されたダイレクトベクトルの値に対して半画素に相当する値を加算もしくは減算する補正を行うダイレクトベクトル補正手段と、
を備えたことを特徴とする復号装置。
【請求項４】
前記基準ベクトル補正手段は、
mvCol_correct＝mvCol＋２＊(isBottomFieldrefPicCol−isBottomFieldCol)
を用いて基準ベクトルの補正を行い、
前記ダイレクトベクトル補正手段は、
mvL0_correct＝mvL0＋２＊(isBottomFieldrefPicCol−isBottomFieldCurr)
を用いて第一のダイレクトベクトルの補正を行い、
mvL1_correct＝mvL1＋２＊(isBottomFieldCol−isBottomFieldCurr)
を用いて第二のダイレクトベクトルの補正を行うことを特徴とする請求項３に記載の復号装置。
【請求項５】
予測モードにダイレクトモードを含む符号化プログラムであって、
ダイレクトモードにて基準ベクトルが導出される際に、パリティの異なる画素が参照される場合には、導出された基準ベクトルの値に対して半画素に相当する値を加算もしくは減算する補正を行う基準ベクトル補正手順と、
前記基準ベクトル補正手順によって補正された基準ベクトルが時間配分されて第一および第二のダイレクトベクトルが導出される際に、パリティの異なる画素が参照される場合には、導出されたダイレクトベクトルの値に対して半画素に相当する値を加算もしくは減算する補正を行うダイレクトベクトル補正手順と、
をコンピュータに実行させることを特徴とする符号化プログラム。
【請求項６】
予測モードにダイレクトモードを含む復号プログラムであって、
ダイレクトモードにて基準ベクトルが導出される際に、パリティの異なる画素が参照される場合には、導出された基準ベクトルの値に対して半画素に相当する値を加算もしくは減算する補正を行う基準ベクトル補正手順と、
前記基準ベクトル補正手順によって補正された基準ベクトルが時間配分されて第一および第二のダイレクトベクトルが導出される際に、パリティの異なる画素が参照される場合には、導出されたダイレクトベクトルの値に対して半画素に相当する値を加算もしくは減算する補正を行うダイレクトベクトル補正手順と、
をコンピュータに実行させることを特徴とする復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置および復号装置に関する。
【背景技術】
【０００２】
従来、動画像データの符号化方式として、Ｈ．２６４やＭＰＥＧ（Moving  Picture  Experts  Group）−４  Ｐａｒｔ１０：ＡＶＣ（Advanced  Video  Coding）が標準化され、注目を集めている。なお、Ｈ．２６４とＭＰＥＧ−４  Ｐａｒｔ１０：ＡＶＣとは技術的に同じ内容であるので、以下では、Ｈ．２６４／ＡＶＣと呼ぶ。
【０００３】
Ｈ．２６４／ＡＶＣにおいては、Ｂピクチャ（Bi−directional  Predictive−Picture）の符号化モードとして、イントラ内予測、前方向予測、後方向予測、両方向予測、ダイレクトモードの５つの符号化モードがある。特に、ダイレクトモードは新しく追加されたモードであり、動画像データの一連性という点に着目し、時間的もしくは空間的に隣接したマクロブロック（Macroblock、以下、ＭＢと呼ぶ）の動きベクトルから現ＭＢの動きベクトルを決定する手法である。
【０００４】
ここで、図９を用いて、ダイレクトモードの内、時間ダイレクトモードの原理について説明する。図９は、ダイレクトベクトル（フレーム構造）を説明するための図である。なお、以下では、時間ダイレクトモードのことを単にダイレクトモードと呼ぶ。
【０００５】
ダイレクトモードは、直前の処理ピクチャに含まれるＭＢであって現ＭＢと同位置にあるＭＢの動きベクトルを基準ベクトルとして選択し、選択した基準ベクトルを時間配分することで現ＭＢの動きベクトル（以下、ダイレクトベクトルと呼ぶ）を決定する。通常の動画像データの符号化順では、ある特定のＢピクチャを基準に考えると、前方向（時間的に過去方向）の参照ピクチャ、後方向（時間的に未来方向）の参照ピクチャに続いて、Ｂピクチャを処理する。このため、特定のＢピクチャの直前の処理ピクチャは、時間的に未来方向の参照ピクチャとなる。
【０００６】
一般的に、過去方向の参照ピクチャはList0、未来方向の参照ピクチャはList1と呼ばれる。ダイレクトモードでは、図９に示すように、未来方向の参照ピクチャ（colPic：List1のRef_idx=0のピクチャ）の同位置ＭＢの動きベクトル（参照先のピクチャはrefPicCol）を基準ベクトル（mvCol）として選択する。そして、選択した基準ベクトルを時間配分（ＰＯＣ間隔比、ＰＯＣ：Picture  Order  Count）でスケーリングすることで、現Ｂピクチャ（CurrPic）上のＭＢの前方向のダイレクトベクトル（mvL0）および後方向のダイレクトベクトル（mvL1）を決定する。
【０００７】
具体的には、以下の原理に基づく。未来方向の参照ピクチャ（colPic）上の同位置ＭＢが、予測として過去方向の参照ピクチャ（refPicCol）上領域を基準ベクトル（mvCol）で指したとする。この場合、未来方向の参照ピクチャ（colPic）に含まれるある物体は、過去方向の参照ピクチャ（refPicCol）から基準ベクトル（mvCol）というベクトルに沿って時空間を移動したと考えるのが尤もらしいと考えるのが適当である。そうであるとすると、その未来方向の参照ピクチャ（colPic）と過去方向の参照ピクチャ（refPicCol）との間に挟まれた現ピクチャ（CurrPic）上も、物体が、基準ベクトル（mvCol）に沿って貫通するであろう。この仮説に基づき、ダイレクトモードでは、現ピクチャ（CurrPic）上のＭＢについては、基準ベクトル（mvCol）と時空間で平行なベクトルを用いて、未来方向の参照ピクチャ（colPic）と過去方向の参照ピクチャ（refPicCol）とから予測を行うというものである。以下は、時空間で未来方向の参照ピクチャ（colPic）から過去方向の参照ピクチャ（refPicCol）を指す基準ベクトル（mvCol）と平行なベクトルを、CurrPicとrefPicCol間、および、CurrPicとcolPic間で求めるための式である。
【０００８】
通常のダイレクトベクトルの計算式は、以下の通りである。なお、mvL0は、現ピクチャ（CurrPic）から過去方向の参照ピクチャ（refPicCol）へのダイレクトベクトルであり、mvL1は、現ピクチャ（CurrPic）から未来方向の参照ピクチャ（colPic）へのダイレクトベクトルである。
mvL0  ＝  mvCol＊tb/td    ・・・  （１）
mvL1  ＝  mvL0−mvCol    ・・・（２）
なお、tdは、未来方向の参照ピクチャ（colPic）と過去方向の参照ピクチャ（refPicCol）との間の時間的な距離であり、tbは、現ピクチャ（CurrPic）と過去方向の参照ピクチャ（refPicCol）との間の時間的な距離である。ここで、決定された各々のダイレクトベクトル（mvL0、mvL1）は、ピクチャ構造がフレーム構造という仮定で計算されている。
【０００９】
なお、以上では便宜上ダイレクトベクトルの説明を前方向のベクトルと後方向のベクトルを例に説明したが、Ｈ．２６４やＭＰＥＧ（Moving  Picture  Experts  Group）−４  Ｐａｒｔ１０：ＡＶＣ（Advanced  Video  Coding）においては、mvL0,mvL1のベクトルは前方向又は後方向の一方に固定されておらず、前方向/前方向又は後方向/後方向の組合せのベクトルでも同様に計算可能である。以降、ダイレクトベクトルに関する説明では計算に用いるベクトルmvL0,mvL1のベクトルを第一のベクトル（ダイレクトベクトル）と第二のベクトル（ダイレクトベクトル）と称して説明する。
【００１０】
なお、例えば、フィールド構造のピクチャをダイレクトモードで符号化する際に、パリティの異なる画素が参照される場合には、時間的な距離に応じて係数を切り替える手法などが開示されている。
【００１１】
【特許文献１】特開２００４−４８６３２号公報
【特許文献２】特表２００５−５１０９８４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
ところで、上記した従来の技術では、フィールド構造のピクチャをダイレクトモードで符号化する際に、符号化効率が低下するという課題があった。すなわち、上記した従来の技術では、フィールド構造のピクチャをダイレクトモードで符号化する際に、異なるパリティの画素を参照すると、パリティの違いに相当する誤差がベクトルに生じてしまう結果、符号化効率が低下する。
【００１３】
図１０は、ダイレクトベクトル（フィールド構造）を説明するための図である。図１０に示すように、フィールド構造のピクチャは、Bottom_fieldの画素が、Top_fieldの画素と比較して、フィールドで０．５画素分、下の方向にずれている。このため、フィールド構造のピクチャをダイレクトモードで符号化する際に、異なるパリティの画素を参照したベクトルについては、基準ベクトル（mvCol）に対し、ダイレクトベクトルmvL0、mvL1が、時空間で平行にならない。このようなダイレクトベクトルは、最尤とならない結果、符号化効率が低下するのである。
【００１４】
そこで、本発明は、上記した従来の技術の課題を解決するためになされたものであり、符号化効率の低下を抑止することが可能な符号化装置および復号装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記した課題を解決し、目的を達成するため、ダイレクトモードにて基準ベクトルが導出される際に、パリティの異なる画素が参照される場合には、導出された基準ベクトルの値に対して半画素に相当する値を加算もしくは減算する補正を行う。また、補正した基準ベクトルが時間配分されて第一および第二のダイレクトベクトルが導出される際に、パリティの異なる画素が参照される場合には、導出されたダイレクトベクトルの値に対して半画素に相当する値を加算もしくは減算する補正を行う。
【発明の効果】
【００１６】
符号化効率の低下を抑止することが可能になる。
【発明を実施するための最良の形態】
【００１７】
以下に添付図面を参照して、本発明に係る符号化装置および復号装置の実施例を詳細に説明する。なお、以下では、まず、実施例１に係る符号化装置および復号装置の概要を説明し、続いて、実施例１における符号化装置の構成、処理手順、復号装置の構成、処理手順、実施例１の効果を順に説明する。その後、他の実施例を説明する。
【実施例１】
【００１８】
［実施例１における符号化装置および復号装置の概要］
まず、図１を用いて、実施例１に係る符号化装置および復号装置の概要を説明する。図１は、実施例１に係る符号化装置および復号装置の概要を説明するための図である。
【００１９】
図１に示すように、フィールド構造のピクチャをダイレクトモードで符号化する際に、異なるパリティの画素を参照すると、パリティの違いに相当する誤差がベクトルに生じてしまう。例えば、図１に示すように、Top_fieldの画素『２』がTop_fieldの画素『１』を参照する場合、ベクトルの垂直成分は、『２』−『１』の『１画素分』であり、ベクトルの垂直成分の値は、『−４（１画素／０．２５画素）』と正しく計算される。
【００２０】
一方、図１に示すように、Bottom_fieldの画素『２』がTop_fieldの画素『１』を参照する場合、ベクトルの垂直成分は、やはり『２』−『１』の『１画素分』であり、ベクトルの垂直成分の値は、『−４（１画素／０．２５画素）』と計算されてしまう。しかしながら、フィールド構造のピクチャは、図１に示すように、Bottom_fieldの画素が、Top_fieldの画素と比較して、フィールドで０．５画素分、下の方向にずれている。このため、本来であれば、ベクトルの垂直成分は『１．５画素分』なのであり、ベクトルの垂直成分の値は、『−６（１．５画素／０．２５画素）』と計算されるべきである。
【００２１】
このように、異なるパリティの画素を参照すると、パリティの違いに相当する０．５画素分の誤差がベクトルに生じてしまうことから、実施例１における符号化装置および復号装置は、この誤算を補正する。
【００２２】
具体的には、実施例１における符号化装置および復号装置は、図１に示す３つの計算式を用いて、基準ベクトルおよびダイレクトベクトルを補正する。図１の（Ａ）式は、基準ベクトルを補正する計算式である。（Ａ）式に示すように、実施例１における符号化装置および復号装置は、過去方向の参照ピクチャのパリティと未来方向の参照ピクチャのパリティとが異なる場合には、基準ベクトルの値に対して０．５画素に相当する『２』を加算もしくは減算する補正を行う。
【００２３】
また、図１の（Ｂ）式は、第一のダイレクトベクトルを補正する計算式である。（Ｂ）式に示すように、実施例１における符号化装置および復号装置は、過去方向の参照ピクチャのパリティと現ピクチャのパリティとが異なる場合には、第一のダイレクトベクトルの値に対して０．５画素に相当する『２』を加算もしくは減算する補正を行う。
【００２４】
また、図１の（Ｃ）式は、第二のダイレクトベクトルを補正する計算式である。（Ｃ）式に示すように、実施例１における符号化装置および復号装置は、未来方向の参照ピクチャのパリティと現ピクチャのパリティとが異なる場合には、第二のダイレクトベクトルの値に対して０．５画素に相当する『２』を加算もしくは減算する補正を行う。
【００２５】
このようなことから、実施例１における符号化装置および復号装置によれば、パリティの違いに相当する半画素分の誤差を加減算して補正するので、ベクトルが正しく補正される結果、符号化効率の低下を抑制することが可能になる。
【００２６】
［実施例１における符号化装置の構成］
次に、図２を用いて、実施例１における符号化装置の構成を説明する。図２は、実施例１における符号化装置の構成を示すブロック図である。
【００２７】
図２に示すように、実施例１における符号化装置１００は、フレームメモリ１１０と、直交変換量子化部１１１と、逆直交変換逆量子化部１１２と、フレームメモリ１１３と、動き補償部（イントラ予測部）１１４とを備える。また、符号化装置１００は、動きベクトル検出部１１５と、ダイレクトベクトル決定部１１６と、予測モード判定部１１７と、可変長符号化部１１８とを備える。これらの各部は、従来の符号化装置が備えるものと同様である。これに対し、実施例１における符号化装置１００は、図２の太枠で示すように、基準ベクトル補正部１２０と、ダイレクトベクトル補正部１２１とをさらに備える。
【００２８】
まず、実施例１における符号化装置１００の通常処理を説明する。符号化装置１００は、入力画像をフレームメモリ１１０に格納し、ＭＢ単位に分割する。以下、符号化装置１００は、ＭＢ単位に処理を行う。
【００２９】
符号化装置１００において、動きベクトル検出部１１５は、フレームメモリ１１０に格納されている入力画像について、フレームメモリ１１３に格納されている参照画像の中から動きベクトルを検出する。そして、動き補償部１１４は、フレームメモリ１１３に格納されている参照画像と、動きベクトル検出部１１５によって検出された動きベクトルとを用いて、予測画像を生成する。
【００３０】
予測モード判定部１１７は、動き補償部１１４によって生成された予測画像を符号化する場合と、入力画像を符号化する場合とを比較し、効率的に符号化できる予測モードを判定する。予測モード判定部１１７による判定の結果、フレーム間符号化の場合は、フレームメモリ１１０に格納されている入力画像と、動き補償部１１４によって生成された予測画像との差分である予測差分画像が、直交変換量子化部１１１に入力される。また、予測モード判定部１１７による判定の結果、フレーム内符号化の場合は、フレームメモリ１１０に格納されている入力画像がそのまま直交変換量子化部１１１に入力される。
【００３１】
直交変換量子化部１１１は、予測差分画像を直交変換、量子化し、可変長符号化部１１８に入力する。可変長符号化部１１８は、符号化し、ビットストリームとして出力する。一方、直交変換量子化部１１１によって直交変換、量子化された予測差分画像は、次フレームの動き補償予測のために、逆直交変換逆量子化部１１２によって逆直交変換、逆量子化される。そして、動き補償部１１４によって生成された予測画像を用いて復号され、フレームメモリ１１３に格納される。
【００３２】
ここで、実施例１における符号化装置１００は、基準ベクトル補正部１２０とダイレクトベクトル補正部１２１とを備え、基準ベクトル補正部１２０およびダイレクトベクトル補正部１２１は、入力画像がフィールド構造のピクチャかつ時間ダイレクトモードである場合に動作する。
【００３３】
基準ベクトル補正部１２０は、動きベクトル検出部１１５によって基準ベクトルが検出された際に、パリティの異なる画素が参照された場合であるか否かを判定する。次に、基準ベクトル補正部１２０は、パリティの異なる画素が参照された場合であると判定すると、検出された基準ベクトルの値に対して０．５画素に相当する値を加算もしくは減算する補正を行う。そして、基準ベクトル補正部１２０は、補正後の基準ベクトルをダイレクトベクトル決定部１１６に送信する。
【００３４】
具体的には、基準ベクトル補正部１２０は、以下の計算式を用いて、補正を行う。なお、０．２５画素精度を前提とする。まず、変数を説明する。
isBottomFieldCurr：現ピクチャ（CurrPic）のパリティ(Top：0、Bottom：1)
isBottomFieldCol：未来方向参照ピクチャ（colPic）のパリティ(Top：0、Bottom：1)
isBottomFieldrefPicCol:過去方向参照ピクチャ（refPicCol）のパリティ(Top：0、Bottom：1)
mvCol_correct：基準ベクトル（mvCol）の補正後の値
mvL0_correct：第一ダイレクトベクトル（mvL0）の補正後の値
mvL1_correct：第二ダイレクトベクトル（mvL1）の補正後の値
【００３５】
基準ベクトル補正部１２０は、基準ベクトル（mvCol）の参照元の未来方向参照ピクチャ（colPic）のパリティと、参照先の過去方向参照ピクチャ（refPicCol）のパリティとを考慮して、（３）式を用いて補正する。
mvCol_correct＝mvCol＋２＊(isBottomFieldrefPicCol−isBottomFieldCol)・・・（３）
（３）式により、パリティに関わらず、基準ベクトル（mvCol）の時空間での正しい方向が求まる。
【００３６】
なお、基準ベクトル補正部１２０は、パリティの異なる画素が参照された場合でないと判定すると、動きベクトル検出部１１５によって検出された基準ベクトルをダイレクトベクトル決定部１１６に送信する。
【００３７】
ダイレクトベクトル決定部１１６は、基準ベクトル補正部１２０から送信された補正後の基準ベクトルを用いて、ダイレクトベクトルを計算し、計算後のダイレクトベクトルをダイレクトベクトル補正部１２１に送信する。
【００３８】
具体的には、ダイレクトベクトル決定部１１６は、（４）および（５）式を用いて補正する。すなわち、補正後の基準ベクトル（mvCol_correct）と、各ピクチャの時間方向の距離を用いて、補正後の基準ベクトル（mvCol_correct）と平行なダイレクトベクトルを計算する。
mvL0＝mvCol_correct＊tb/td    ・・・（４）
mvL1＝mvL0−mvCol_correct    ・・・（５）
【００３９】
ダイレクトベクトル補正部１２１は、ダイレクトベクトル決定部１１６から送信されたダイレクトベクトルが、パリティの異なる画素が参照された場合であるか否かを判定する。次に、ダイレクトベクトル補正部１２１は、パリティの異なる画素が参照された場合であると判定すると、送信されたダイレクトベクトルの値に対して０．５画素に相当する値を加算もしくは減算する補正を行う。そして、ダイレクトベクトル補正部１２１は、補正後のダイレクトベクトルを予測モード判定部１１７に送信する。
【００４０】
具体的には、ダイレクトベクトル補正部１２１は、第一ダイレクトベクトル（mvL0）は、現ピクチャ（CurrPic）と、過去方向の参照ピクチャ（refPicCol）のパリティとを考慮して、（６）式を用いて補正する。また、ダイレクトベクトル補正部１２１は、第二ダイレクトベクトル（mvL1）は、現ピクチャ（CurrPic）と、未来方向の参照ピクチャ（colPic）のパリティとを考慮して、（７）式を用いて補正する。
mvL0_correct＝mvL0＋２＊(isBottomFieldrefPicCol−isBottomFieldCurr)・・（６）
mvL1_correct＝mvL1＋２＊(isBottomFieldCol−isBottomFieldCurr)・・・（７）
【００４１】
なお、ダイレクトベクトル補正部１２１は、パリティの異なる画素が参照された場合でないと判定すると、ダイレクトベクトル決定部１１６から送信されたダイレクトベクトルを予測モード判定部１１７に送信する。
【００４２】
［実施例１における符号化装置による処理手順］
続いて、図３を用いて、実施例１における符号化装置による処理手順を説明する。図３は、実施例１における符号化装置による処理手順を示すフローチャートである。なお、図３に示す処理手順は、入力画像がフィールド構造のピクチャであり、かつ時間ダイレクトモードである場合の処理手順について、詳述するものである。
【００４３】
符号化装置１００は、入力画像が、フィールド構造かつ時間ダイレクトモードであるか否かを判定する（ステップＳ１０１）。判定の結果、フィールド構造かつ時間ダイレクトモードでない場合には（ステップＳ１０１否定）、符号化装置１００は、通常処理を行い（ステップＳ１０２）、ステップＳ１０６へ移行する。
【００４４】
一方、入力画像が、フィールド構造かつ時間ダイレクトモードである場合には（ステップＳ１０１肯定）、次に、基準ベクトル補正部１２０が、フィールド関係を考慮して、基準ベクトルを補正する（ステップＳ１０３）。
【００４５】
続いて、ダイレクトベクトル決定部１１６が、ダイレクトベクトルを計算し（ステップＳ１０４）、ダイレクトベクトル補正部１２１が、フィールド関係を考慮して、第一ダイレクトベクトルおよび第二ダイレクトベクトルを補正する（ステップＳ１０５）。
【００４６】
続いて、予測モード判定部１１７が、予測モードの判定を行い（ステップＳ１０６）、その後、直交変換量子化部１１１や可変長符号化部１１８によって、ＭＢの符号化が行われる（ステップＳ１０７）。
【００４７】
符号化装置１００は、１ピクチャの処理が終了したか否かを判定し（ステップＳ１０８）、終了した場合には（ステップＳ１０８肯定）、処理を終了する。一方、終了していない場合には（ステップＳ１０８否定）、基準ベクトル補正部１２０が、基準ベクトルを補正する処理（ステップＳ１０３）に戻る。
【００４８】
［実施例１における復号装置の構成］
次に、図４を用いて、実施例１における復号装置の構成を説明する。図４は、実施例１における復号装置の構成を示すブロック図である。
【００４９】
図４に示すように、実施例１における復号装置２００は、可変長復号化部２１０と、予測モード決定部２１１と、逆直交変換逆量子化部２１２とを備える。また、復号装置２００は、ベクトル決定部２１３と、動き補償部（イントラ予測部）２１４と、フレームメモリ２１５と、ダイレクトベクトル決定部２１６とを備える。これらの各部は、従来の復号装置が備えるものと同様である。これに対し、実施例１における復号装置２００は、図４の太枠で示すように、基準ベクトル補正部２２０と、ダイレクトベクトル補正部２２１とをさらに備える。
【００５０】
まず、実施例１における復号装置２００の通常処理を説明する。復号装置２００は、符号化装置１００から送信されたビットストリームを可変長復号化部２１０に入力する。可変長復号化部２１０は、入力されたビットストリームの上位レベルのヘッダ情報を復号した後、ＭＢ単位に分割する。以下、復号装置２００は、ＭＢ単位に処理を行う。
【００５１】
復号装置２００において、予測モード決定部２１１は、ＭＢ単位の符号化データの予測モードを決定する。予測モード決定部２１１による決定の結果、フレーム間符号化の場合は、ベクトル決定部２１３が、ビットストリームから動きベクトルを抽出する。そして、動き補償部２１４が、ベクトル決定部２１３によって抽出された動きベクトルと、フレームメモリ２１５に格納されている復号画像とを用いて、予測画像を生成する。動き補償部２１４によって生成された予測画像は、逆直交変換逆量子化部２１２によって生成された予測差分画像の復号結果と加算されることで、復号画像として出力される。
【００５２】
予測モード決定部２１１による決定の結果、フレーム内符号化の場合は、ビットストリームから抽出された信号が、逆直交変換逆量子化部２１２によってそのまま復号され、復号画像として出力される。なお、復号画像は、次フレームの動き補償処理のために、フレームメモリ２１５に格納される。
【００５３】
ここで、実施例１における復号装置２００は、基準ベクトル補正部２２０とダイレクトベクトル補正部２２１とを備え、基準ベクトル補正部２２０およびダイレクトベクトル補正部２２１は、入力画像がフィールド構造のピクチャかつ時間ダイレクトモードである場合に動作する。
【００５４】
基準ベクトル補正部２２０は、ベクトル決定部２１３によって基準ベクトルが決定された際に、パリティの異なる画素が参照された場合であるか否かを判定する。次に、基準ベクトル補正部２２０は、パリティの異なる画素が参照された場合であると判定すると、検出された基準ベクトルの値に対して０．５画素に相当する値を加算もしくは減算する補正を行う。そして、基準ベクトル補正部２２０は、補正後の基準ベクトルをダイレクトベクトル決定部２１６に送信する。
【００５５】
具体的には、基準ベクトル補正部２２０は、以下の計算式を用いて、補正を行う。なお、０．２５画素精度を前提とする。まず、変数を説明する。
isBottomFieldCurr：現ピクチャ（CurrPic）のパリティ(Top：0、Bottom：1)
isBottomFieldCol：未来方向参照ピクチャ（colPic）のパリティ(Top：0、Bottom：1)
isBottomFieldrefPicCol:過去方向参照ピクチャ（refPicCol）のパリティ(Top：0、Bottom：1)
mvCol_correct：基準ベクトル（mvCol）の補正後の値
mvL0_correct：第一ダイレクトベクトル（mvL0）の補正後の値
mvL1_correct：第二ダイレクトベクトル（mvL1）の補正後の値
【００５６】
基準ベクトル補正部２２０は、基準ベクトル（mvCol）の参照元の未来方向参照ピクチャ（colPic）のパリティと、参照先の過去方向参照ピクチャ（refPicCol）のパリティとを考慮して、（８）式を用いて補正する。
mvCol_correct＝mvCol＋２＊(isBottomFieldrefPicCol−isBottomFieldCol)・・・（８）
（８）式により、パリティに関わらず、基準ベクトル（mvCol）の時空間での正しい方向が求まる。
【００５７】
なお、基準ベクトル補正部２２０は、パリティの異なる画素が参照された場合でないと判定すると、ベクトル決定部２１３によって決定された基準ベクトルをダイレクトベクトル決定部２１６に送信する。
【００５８】
ダイレクトベクトル決定部２１６は、基準ベクトル補正部２２０から送信された補正後の基準ベクトルを用いて、ダイレクトベクトルを計算し、計算後のダイレクトベクトルをダイレクトベクトル補正部２２１に送信する。
【００５９】
具体的には、ダイレクトベクトル決定部２１６は、（９）および（１０）式を用いて補正する。すなわち、補正後の基準ベクトル（mvCol_correct）と、各ピクチャの時間方向の距離を用いて、補正後の基準ベクトル（mvCol_correct）と平行なダイレクトベクトルを計算する。
mvL0＝mvCol_correct＊tb/td    ・・・（９）
mvL1＝mvL0−mvCol_correct    ・・・（１０）
【００６０】
ダイレクトベクトル補正部２２１は、ダイレクトベクトル決定部２１６から送信されたダイレクトベクトルが、パリティの異なる画素が参照された場合であるか否かを判定する。次に、ダイレクトベクトル補正部２２１は、パリティの異なる画素が参照された場合であると判定すると、送信されたダイレクトベクトルの値に対して０．５画素に相当する値を加算もしくは減算する補正を行う。そして、ダイレクトベクトル補正部２２１は、補正後のダイレクトベクトルを動き補償部２１４に送信する。
【００６１】
具体的には、ダイレクトベクトル補正部２２１は、第一ダイレクトベクトル（mvL0）は、現ピクチャ（CurrPic）と、過去方向の参照ピクチャ（refPicCol）のパリティとを考慮して、（１１）式を用いて補正する。また、ダイレクトベクトル補正部１２１は、第二ダイレクトベクトル（mvL1）は、現ピクチャ（CurrPic）と、未来方向の参照ピクチャ（colPic）のパリティとを考慮して、（１２）式を用いて補正する。
mvL0_correct＝mvL0＋２＊(isBottomFieldrefPicCol−isBottomFieldCurr)・（１１）
mvL1_correct＝mvL1＋２＊(isBottomFieldCol−isBottomFieldCurr)・・・（１２）
【００６２】
なお、ダイレクトベクトル補正部２２１は、パリティの異なる画素が参照された場合でないと判定すると、ダイレクトベクトル決定部２１６から送信されたダイレクトベクトルを動き補償部２１４に送信する。
【００６３】
［実施例１における復号装置による処理手順］
続いて、図５を用いて、実施例１における復号装置による処理手順を説明する。図５は、実施例１における復号装置による処理手順を示すフローチャートである。なお、図５に示す処理手順は、入力画像がフィールド構造のピクチャであり、かつ時間ダイレクトモードである場合の処理手順について、詳述するものである。
【００６４】
復号装置２００において、予測モード決定部２１１は、入力ストリームが、フィールド構造かつ時間ダイレクトモードであるか否かを判定する（ステップＳ２０１）。判定の結果、フィールド構造かつ時間ダイレクトモードでない場合には（ステップＳ２０１否定）、復号装置２００は、通常処理を行い（ステップＳ２０２）、ステップＳ２０６へ移行する。
【００６５】
一方、入力ストリームが、フィールド構造かつ時間ダイレクトモードである場合には（ステップＳ２０１肯定）、次に、基準ベクトル補正部２２０が、フィールド関係を考慮して、基準ベクトルを補正する（ステップＳ２０３）。
【００６６】
続いて、ダイレクトベクトル決定部２１６が、ダイレクトベクトルを計算し（ステップＳ２０４）、ダイレクトベクトル補正部２２１が、フィールド関係を考慮して、第一ダイレクトベクトルおよび第二ダイレクトベクトルを補正する（ステップＳ２０５）。続いて、動き補償部２１４によって、ＭＢの復号化が行われる（ステップＳ２０６）。
【００６７】
復号装置２００は、１ピクチャの処理が終了したか否かを判定し（ステップＳ２０７）、終了した場合には（ステップＳ２０７肯定）、処理を終了する。一方、終了していない場合には（ステップＳ２０７否定）、基準ベクトル補正部２２０が、基準ベクトルを補正する処理（ステップＳ２０３）に戻る。
【００６８】
［実施例１の効果］
上記してきたように、実施例１によれば、符号化装置は、ダイレクトモードにて基準ベクトルが導出される際に、パリティの異なる画素が参照される場合には、導出された基準ベクトルの値に対して半画素に相当する値を加算もしくは減算する補正を行う。また、符号化装置は、補正した基準ベクトルからダイレクトベクトルが導出される際に、パリティの異なる画素が参照される場合には、導出されたダイレクトベクトルの値に対して半画素に相当する値を加算もしくは減算する補正を行う。
【００６９】
このようなことから、実施例１における符号化装置によれば、パリティの違いに相当する半画素分の誤差を加減算して補正するので、ベクトルが正しく補正される結果、符号化効率の低下を抑制することが可能になる。
【００７０】
すなわち、図６の（Ａ）に示すように、フィールド構造のピクチャは、Bottom_fieldの画素が、Top_fieldの画素と比較して、フィールドで０．５画素分、下の方向にずれている。このため、フィールド構造のピクチャをダイレクトモードで符号化する際に、異なるパリティの画素を参照したベクトルについては、基準ベクトル（mvCol）に対し、ダイレクトベクトルmvL0、mvL1が、時空間で平行にならない。すなわち、例えば、図６の（Ａ）では、基準ベクトル（mvCol）、ダイレクトベクトルmvL0、mvL1が、全て０ベクトルであるが、パリティの関係で方向が全て異なってしまう。このため、従来のダイレクトベクトルは、最尤とならない結果、符号化効率が低下していた。
【００７１】
これに対し、実施例１における符号化装置によれば、基準ベクトルおよびダイレクトベクトルに補正を行う結果、図６の（Ｂ）に示すように、基準ベクトル（mvCol）に対し、ダイレクトベクトルmvL0、mvL1が、時空間で平行になる。このため、ダイレクトベクトルは、最尤となり、符号化効率の低下が抑制される。なお、０ベクトルである場合に限られない。
【００７２】
同様に、実施例１によれば、復号装置は、ダイレクトモードにて基準ベクトルが導出される際に、パリティの異なる画素が参照される場合には、導出された基準ベクトルの値に対して半画素に相当する値を加算もしくは減算する補正を行う。また、復号装置は、補正した基準ベクトルからダイレクトベクトルが導出される際に、パリティの異なる画素が参照される場合には、導出されたダイレクトベクトルの値に対して半画素に相当する値を加算もしくは減算する補正を行う。
【００７３】
このようなことから、実施例１における復号装置によれば、パリティの違いに相当する半画素分の誤差を加減算して補正するので、ベクトルが正しく補正される結果、符号化効率の低下を抑制することが可能になる。
【実施例２】
【００７４】
［他の実施例］
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【００７５】
［システム構成等］
実施例１においては、符号化装置および復号装置の両方で、基準ベクトルおよびダイレクトベクトルの補正を行う手法を説明したが、本発明はこれに限られるものではない。符号化装置のみで補正を行う手法や、復号装置のみで補正を行う手法にも、本発明を同様に適用することができる。
【００７６】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順（図３、図５など）、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示（図２、図４など）の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵ（Central  Processing  Unit）および当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７８】
［符号化プログラムおよび復号プログラム］
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図７および図８を用いて、上記の実施例と同様の機能を有する符号化プログラムを実行するコンピュータ、復号プログラムを実行するコンピュータの一例を説明する。図７は、符号化プログラムを実行するコンピュータを示す図であり、図８は、復号プログラムを実行するコンピュータを示す図である。
【００７９】
図７に示すように、符号化プログラム（コンピュータ）１０は、キャッシュ１２、ＲＡＭ（Random  Access  Memory）１１、ＨＤＤ（Hard  Disk  Drive）１３、ＲＯＭ（Read  Only  Memory）１４およびＣＰＵ１５をバス１６で接続して構成される。ここで、ＲＯＭ１４には、上記の実施例と同様の機能を発揮する符号化プログラム、つまり、図７に示すように、直交変換量子化プログラム１４ａ、逆直交変換逆量子化プログラム１４ｂ、動き補償プログラム１４ｃ、動きベクトル検出プログラム１４ｄ、基準ベクトル補正プログラム１４ｅ、ダイレクトベクトル決定プログラム１４ｆ、ダイレクトベクトル補正プログラム１４ｇ、予測モード判定プログラム１４ｈ、可変長符号化プログラム１４ｉが備えられる。
【００８０】
そして、ＣＰＵ１５は、これらのプログラム１４ａ〜１４ｉを読み出して実行することで、図７に示すように、各プログラム１４ａ〜１４ｉは、直交変換量子化プロセス１５ａ、逆直交変換逆量子化プロセス１５ｂ、動き補償プロセス１５ｃ、動きベクトル検出プロセス１５ｄ、基準ベクトル補正プロセス１５ｅ、ダイレクトベクトル決定プロセス１５ｆ、ダイレクトベクトル補正プロセス１５ｇ、予測モード判定プロセス１５ｈ、可変長符号化プロセス１５ｉとなる。なお、各プロセス１５ａ〜１５ｉは、図２に示した、直交変換量子化部１１１、逆直交変換逆量子化部１１２、動き補償部１１４、動きベクトル検出部１１５、基準ベクトル補正部１２０、ダイレクトベクトル決定部１１６、ダイレクトベクトル補正部１２１、予測モード判定部１１７、可変長符号化部１１８にそれぞれ対応する。
【００８１】
また、ＲＡＭ１１は、図７に示すように、フレームメモリ１１ａおよびフレームメモリ１１ｂを備える。なお、フレームメモリ１１ａおよびフレームメモリ１１ｂは、図２に示したフレームメモリ１１０およびフレームメモリ１１３にそれぞれ対応する。
【００８２】
ところで、上記した各プログラム１４ａ〜１４ｉについては、必ずしもＲＯＭ１４に記憶させておく必要はなく、例えば、コンピュータ１０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータ１０の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）などを介してコンピュータ１０に接続される「他のコンピュータ（またはサーバ）」に記憶させておき、コンピュータ１０がこれらからプログラムを読み出して実行するようにしてもよい。
【００８３】
図８に示すように、復号プログラム（コンピュータ）２０は、キャッシュ２２、ＲＡＭ２１、ＨＤＤ２３、ＲＯＭ２４およびＣＰＵ２５をバス２６で接続して構成される。ここで、ＲＯＭ２４には、上記の実施例と同様の機能を発揮する復号プログラム、つまり、図８に示すように、可変長復号化プログラム２４ａ、予測モード決定プログラム２４ｂ、逆直交変換逆量子化プログラム２４ｃ、動き補償プログラム２４ｄ、ベクトル決定プログラム２４ｅ、基準ベクトル補正プログラム２４ｆ、ダイレクトベクトル決定プログラム２４ｇ、ダイレクトベクトル補正プログラム２４ｈが備えられる。
【００８４】
そして、ＣＰＵ２５は、これらのプログラム２４ａ〜２４ｈを読み出して実行することで、図８に示すように、各プログラム２４ａ〜２４ｈは、可変長復号化プロセス２５ａ、予測モード決定プロセス２５ｂ、逆直交変換逆量子化プロセス２５ｃ、動き補償プロセス２５ｄ、ベクトル決定プロセス２５ｅ、基準ベクトル補正プロセス２５ｆ、ダイレクトベクトル決定プロセス２５ｇ、ダイレクトベクトル補正プロセス２５ｈとなる。なお、各プロセス２５ａ〜２５ｈは、図４に示した、可変長復号化部２１０、予測モード決定部２１１、逆直交変換逆量子化部２１２、動き補償部２１４、ベクトル決定部２１３、基準ベクトル補正部２２０、ダイレクトベクトル決定部２１６、ダイレクトベクトル補正部２２１にそれぞれ対応する。
【００８５】
また、ＲＡＭ２１は、図８に示すように、フレームメモリ２１ａを備える。なお、フレームメモリ２１ａは、図４に示したフレームメモリ２１５に対応する。
【００８６】
ところで、上記した各プログラム２４ａ〜２４ｈについては、必ずしもＲＯＭ２４に記憶させておく必要はなく、例えば、コンピュータ２０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータ２０の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ２０に接続される「他のコンピュータ（またはサーバ）」に記憶させておき、コンピュータ２０がこれらからプログラムを読み出して実行するようにしてもよい。
【図面の簡単な説明】
【００８７】
【図１】実施例１に係る符号化装置および復号装置の概要を説明するための図である。
【図２】実施例１における符号化装置の構成を示すブロック図である。
【図３】実施例１における符号化装置による処理手順を示すフローチャート図である。
【図４】実施例１における復号装置の構成を示すブロック図である。
【図５】実施例１における復号装置による処理手順を示すフローチャート図である。
【図６】実施例１の効果を説明するための図である。
【図７】符号化プログラムを実行するコンピュータを示す図である。
【図８】復号プログラムを実行するコンピュータを示す図である。
【図９】ダイレクトベクトル（フレーム構造）を説明するための図である。
【図１０】ダイレクトベクトル（フィールド構造）を説明するための図である。
【符号の説明】
【００８８】
１００  符号化装置
１１０  フレームメモリ
１１１  直交変換量子化部
１１２  逆直交変換逆量子化部
１１３  フレームメモリ
１１４  動き補償部
１１５  動きベクトル検出部
１１６  ダイレクトベクトル決定部
１１７  予測モード判定部
１１８  可変長符号化部
１２０  基準ベクトル補正部
１２１  ダイレクトベクトル補正部
２００  復号装置
２１０  可変長復号化部
２１１  予測モード決定部
２１２  逆直交変換逆量子化部
２１３  ベクトル決定部
２１４  動き補償部
２１５  フレームメモリ
２１６  ダイレクトベクトル決定部
２２０  基準ベクトル補正部
２２１  ダイレクトベクトル補正部
１０  符号化プログラム
１１  ＲＡＭ
１２  キャッシュ
１３  ＨＤＤ
１４  ＲＯＭ
１５  ＣＰＵ
２０  復号プログラム
２１  ＲＡＭ
２２  キャッシュ
２３  ＨＤＤ
２４  ＲＯＭ
２５  ＣＰＵ
【図１】
2010062769.tif 000003
【図２】
2010062769.tif 000004
【図３】
2010062769.tif 000005
【図４】
2010062769.tif 000006
【図５】
2010062769.tif 000007
【図６】
2010062769.tif 000008
【図７】
2010062769.tif 000009
【図８】
2010062769.tif 000010
【図９】
2010062769.tif 000011
【図１０】
2010062769.tif 000012