(57)【要約】【課題】  動き補償のダイレクトモードでは、符号化の基準となる動きベクトルと実際の動きベクトルの誤差が大きい場合、符号化効率が悪化する。【解決手段】  動きベクトル探索部６２は、後方参照先フレームの各動きベクトルが通過する双方向予測フレームの単位領域を求め、通過する単位領域に関する情報を通過領域番号保持部６６に保存する。基準ベクトル予測部６８は、通過領域番号保持部６６を参照して、双方向予測フレームの対象単位領域を通過する後方参照フレームの動きベクトルを動きベクトル保持部６４から取得し、当該対象単位領域に適用すべき基準ベクトルを決定する。動きベクトル探索部６２は、その基準ベクトルを双方向予測フレームの対象単位領域に適用し、線形予測により当該対象単位領域の順方向動きベクトルと逆方向動きベクトルを求め、対象単位領域を双方向で動き補償予測し、予測画像を生成する。【選択図】        図４
2007067731.tif 000002
【特許請求の範囲】
【請求項１】
動画像を構成するピクチャであって、双方向ピクチャ間予測符号化されるピクチャの符号化対象領域の符号化の際に参照される後方参照ピクチャの動きベクトルであって、その動きベクトルの示す動きが前記符号化対象領域内を通過するものを、前記符号化対象領域の順方向動きベクトルと逆方向動きベクトルを線形予測する際の線形予測の基準となるベクトルとして選択することを特徴とする符号化方法。
【請求項２】
前記符号化対象領域内を通過する前記後方参照ピクチャの動きベクトルが複数ある場合に、複数の動きベクトルの中から、所定の優先順位のもと、少なくとも１つの動きベクトルを前記線形予測の基準となるベクトルとして選択することを特徴とする請求項１に記載の符号化方法。
【請求項３】
前記符号化対象領域内を通過する前記後方参照ピクチャの動きベクトルが複数ある場合に、複数の動きベクトルを組み合わせて得られるベクトルを前記線形予測の基準となるベクトルとして選択することを特徴とする請求項１または２に記載の符号化方法。
【請求項４】
前記符号化対象領域内を通過する前記後方参照ピクチャの動きベクトルが複数ある場合に、選択の候補となる前記動きベクトルの個数を所定の上限値に制限し、前記選択の候補となった動きベクトルの中から、前記線形予測の基準となるベクトルを選択することを特徴とする請求項１から３のいずれかに記載の符号化方法。
【請求項５】
前記符号化対象領域内を通過する前記後方参照ピクチャの動きベクトルが属する当該後方参照ピクチャ内の領域が所定の制限領域内にある場合に、その制限領域内にある前記動きベクトルを選択の候補とし、前記選択の候補となった動きベクトルの中から、前記線形予測の基準となるベクトルを選択することを特徴とする請求項１から４のいずれかに記載の符号化方法。
【請求項６】
前記符号化対象領域内を通過する前記後方参照ピクチャの動きベクトルが存在しない場合、前記符号化対象領域の近傍を通過する前記後方参照ピクチャの動きベクトルを前記線形予測の基準となるベクトルとして選択することを特徴とする請求項１から５のいずれかに記載の符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像を符号化する符号化方法に関する。
【背景技術】
【０００２】
ブロードバンドネットワークが急速に発展しており、高品質な動画像を利用したサービスに期待が集まっている。また、ＤＶＤなど大容量の記録媒体が利用されており、高画質の画像を楽しむユーザ層が広がっている。動画像を通信回線で伝送したり、記録媒体に蓄積するために不可欠な技術として圧縮符号化がある。動画像圧縮符号化技術の国際標準として、ＭＰＥＧ４の規格やＨ．２６４／ＡＶＣ規格がある。また、１つのストリームにおいて高画質のストリームと低画質のストリームを併せもつＳＶＣのような次世代画像圧縮技術がある。
【０００３】
高解像度の動画像をストリーム配信したり、記録媒体に蓄積する場合、通信帯域を圧迫しないように、あるいは、記憶容量が大きくならないように、動画ストリームの圧縮率を高める必要がある。動画像の圧縮効果を高めるために、動き補償フレーム間予測符号化が行われる。動き補償フレーム間予測符号化では、符号化対象フレームをブロックに分割し、既に符号化された参照フレームからの動きをブロック毎に予測して動きベクトルを検出し、差分画像とともに動きベクトル情報を符号化する。
【０００４】
特許文献１には、双方向動き補償を利用して動画像を符号するビデオ画像符号化装置が開示されている。
【特許文献１】特開平９−１８２０８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
Ｈ．２６４／ＡＶＣ規格では、動き補償において、よりきめ細かな予測を行うために、動き補償のブロックサイズを可変にしたり、動き補償の画素精度を１／４画素精度まで細かくすることができるようになっており、動きベクトルに関する符号量が多くなる。また、次世代画像圧縮技術であるＳＶＣ（Scalable Video Coding）では、時間的スケーラビリティを高めるために、ＭＣＴＦ（Motion Compensated Temporal Filtering、動き補償時間方向フィルタ）技術が検討されている。これは、時間軸方向のサブバンド分割に動き補償を組み合わせたものであり、階層的な動き補償を行うため、動きベクトルの情報が非常に多くなる。このように最近の動画圧縮符号化技術では、動きベクトルに関する情報量が増えることにより動画ストリーム全体のデータ量が増大する傾向にあり、動きベクトル情報に起因する符号量を削減する技術が一層求められている。
【０００６】
本発明はこうした状況に鑑みてなされたもので、その目的は、符号化効率が高く、また、精度の高い動き予測を行うことのできる動画像の符号化技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様の符号化方法は、動画像を構成するピクチャであって、双方向ピクチャ間予測符号化されるピクチャの符号化対象領域の符号化の際に参照される後方参照ピクチャの動きベクトルであって、その動きベクトルの示す動きが前記符号化対象領域内を通過するものを、前記符号化対象領域の順方向動きベクトルと逆方向動きベクトルを線形予測する際の線形予測の基準となるベクトルとして選択する。
【０００８】
「ピクチャ」は、フレーム、フィールド、ＶＯＰ（Video Object Plane）などを含む符号化の単位である。
【０００９】
この態様によると、動き補償の精度を高め、また、動きベクトル情報の符号量を減らすことができる。
【００１０】
前記符号化対象領域内を通過する前記後方参照ピクチャの動きベクトルが複数ある場合に、複数の動きベクトルの中から、所定の優先順位のもと、少なくとも１つの動きベクトルを前記線形予測の基準となるベクトルとして選択してもよい。これによれば、複数の候補ベクトルから実際の動きベクトルに近い最適な基準ベクトルを選ぶことにより、画素の差分情報を減らし、符号量を削減できる。
【００１１】
前記符号化対象領域内を通過する前記後方参照ピクチャの動きベクトルが複数ある場合に、複数の動きベクトルを組み合わせて得られるベクトルを前記線形予測の基準となるベクトルとして選択してもよい。これによれば、複数の候補ベクトルを組み合わせて、実際の動きベクトルに近い、最適な基準ベクトルを求めることにより、画素の差分情報を減らし、符号量を削減できる。
【００１２】
前記符号化対象領域内を通過する前記後方参照ピクチャの動きベクトルが複数ある場合に、選択の候補となる前記動きベクトルの個数を所定の上限値に制限し、前記選択の候補となった動きベクトルの中から、前記線形予測の基準となるベクトルを選択してもよい。所定の優先順位で選択の候補となる前記動きベクトルを取捨選択してもよい。選択の候補となる動きベクトルの個数が所定の上限値に達した時点で、符号化対象領域内を通過する後方参照ピクチャの動きベクトルの探索を打ち切ってもよい。選択の候補となるベクトルの個数を制限することで、線形予測の基準となるベクトルを求めるための演算を削減することができる。
【００１３】
前記符号化対象領域内を通過する前記後方参照クチャの動きベクトルが属する当該後方参照ピクチャ内の領域が所定の制限領域内にある場合に、その制限領域内にある前記動きベクトルを選択の候補とし、前記選択の候補となった動きベクトルの中から、前記線形予測の基準となるベクトルを選択してもよい。前記制約領域は、前記符号化対象領域と同位置にある前記後方参照ピクチャ上の領域を含む所定の画素数の領域であってもよい。選択の候補となるベクトルの属する領域を実際の動きベクトルが存在する可能性の高い領域に制限することで、実際の動きベクトルからかけ離れているものをあらかじめ取り除くことができ、演算量を削減することができる。
【００１４】
前記符号化対象領域内を通過する前記後方参照ピクチャの動きベクトルが存在しない場合、前記符号化対象領域の近傍を通過する前記後方参照のピクチャの動きベクトルを前記線形予測の基準となるベクトルとして選択してもよい。動きベクトルの選択の候補として符号化対象領域の近傍を通過する後方参照ピクチャのベクトルを用いることで、符号化対象領域内を通過するベクトルが存在しない場合でも、符号化対象領域内を通過する動きベクトルが存在する場合と同等の効果をあげることができる。
【００１５】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１６】
本発明によれば、動画像の符号化効率を向上し、また、高い精度の動き予測を行うことできる。
【発明を実施するための最良の形態】
【００１７】
実施の形態１
図１は、実施の形態１に係る符号化装置１００の構成図である。これらの構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされた画像符号化機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
【００１８】
本実施の形態の符号化装置１００は、国際標準化機関であるＩＳＯ（International Organization for Standardization）／ＩＥＣ（International Electrotechnical Commission）によって標準化されたＭＰＥＧ（Moving Picture Experts Group）シリーズの規格（ＭＰＥＧ−１、ＭＰＥＧ−２およびＭＰＥＧ−４）、電気通信に関する国際標準機関であるＩＴＵ−Ｔ（International Telecommunication Union-Telecommunication Standardization Sector）によって標準化されたＨ．２６ｘシリーズの規格（Ｈ．２６１、Ｈ．２６２およびＨ．２６３）、もしくは両方の標準化機関によって合同で標準化された最新の動画像圧縮符号化標準規格であるＨ．２６４／ＡＶＣ（両機関における正式勧告名はそれぞれMPEG-4 Part 10: Advanced Video CodingとH.264）に準拠して動画像の符号化を行う。
【００１９】
ＭＰＥＧシリーズの規格では、フレーム内符号化を行う画像フレームをＩ（Intra）フレーム、過去のフレームを参照画像として順方向のフレーム間予測符号化を行う画像フレームをＰ（Predictive）フレーム、過去と未来のフレームを参照画像として双方向のフレーム間予測符号化を行う画像フレームをＢフレームという。
【００２０】
一方、Ｈ．２６４／ＡＶＣでは、参照画像として利用できるフレームは、時間の先後を問わず、過去の２枚のフレームを参照画像としてもよく、未来の２枚のフレームを参照画像としてもよい。また、参照画像として利用できるフレームの枚数も問わず、３枚以上のフレームを参照画像として用いることもできる。したがって、ＭＰＥＧ−１／２／４では、Ｂフレームは双方向予測（Bi-directional prediction）フレームのことを指していたが、Ｈ．２６４／ＡＶＣでは、Ｂフレームは、参照画像の時間の先後は問わないため、双予測（Bi-predictive prediction）フレームのことを指すことに留意する。
【００２１】
なお、実施の形態では、符号化の単位としてフレームを例に挙げて説明するが、符号化の単位はフィールドであってもよい。また、符号化の単位はＭＰＥＧ−４におけるＶＯＰであってもよい。
【００２２】
符号化装置１００は、フレーム単位で動画像の入力を受け取り、動画像を符号化し、符号化ストリームを出力する。
【００２３】
ブロック生成部１０は、入力された画像フレームをマクロブロックに分割する。画像フレームの左上から右下方向の順にマクロブロックが形成される。ブロック生成部１０は生成したマクロブロックを差分器１２と動き補償部６０に供給する。
【００２４】
差分器１２は、ブロック生成部１０から供給される画像フレームがＩフレームであれば、そのままＤＣＴ部２０に出力するが、ＰフレームまたはＢフレームであれば、動き補償部６０から供給される予測画像との差分を計算してＤＣＴ部２０に供給する。
【００２５】
動き補償部６０は、フレームバッファ８０に格納されている過去または未来の画像フレームを参照画像として利用し、ブロック生成部１０から入力されたＰフレームまたはＢフレームのマクロブロック毎に動き補償を行い、動きベクトルと予測画像を生成する。動き補償部６０は、生成した動きベクトルを可変長符号化部９０に供給し、予測画像を差分器１２と加算器１４に供給する。
【００２６】
差分器１２は、ブロック生成部１０から出力される現在の画像と、動き補償部６０から出力される予測画像との差分を求め、ＤＣＴ部２０に出力する。ＤＣＴ部２０は、差分器１２から与えられた差分画像を離散コサイン変換（ＤＣＴ）し、ＤＣＴ係数を量子化部３０に与える。
【００２７】
量子化部３０は、ＤＣＴ係数を量子化し、可変長符号化部９０に与える。可変長符号化部９０は、動き補償部６０から与えられた動きベクトルとともに差分画像の量子化されたＤＣＴ係数を可変長符号化し、符号化ストリームを生成する。可変長符号化部９０は、符号化ストリームを生成する際、符号化されたフレームを時間順序に並べ替える処理を行う。
【００２８】
量子化部３０は、画像フレームの量子化されたＤＣＴ係数を逆量子化部４０に供給する。逆量子化部４０は、与えられた量子化データを逆量子化し、逆ＤＣＴ部５０に与え、逆ＤＣＴ部５０は、与えられた逆量子化データを逆離散コサイン変換する。これにより、符号化された画像フレームが復元される。復元された画像フレームは加算器１４に入力される。
【００２９】
加算器１４は、逆ＤＣＴ部５０から供給される画像フレームがＩフレームであれば、そのままフレームバッファ８０に格納する。加算器１４は、逆ＤＣＴ部５０から供給される画像フレームがＰフレームまたはＢフレームであれば、それは差分画像であるため、逆ＤＣＴ部５０から供給された差分画像と動き補償部６０から供給される予測画像とを加算することにより、元の画像フレームを再構成し、フレームバッファ８０に格納する。
【００３０】
ＰフレームもしくはＢフレームの符号化処理の場合は、上述のように動き補償部６０が動作するが、Ｉフレームの符号化処理の場合は、動き補償部６０は動作せず、ここでは図示しないが、フレーム内予測が行われる。
【００３１】
動き補償部６０は、Ｂフレームの動き補償をする際、改良ダイレクトモードで動作する。ＭＰＥＧ−４やＨ．２６４／ＡＶＣの規格には、Ｂフレームの動き補償にダイレクトモードがあるが、改良ダイレクトモードはこのダイレクトモードを改良したものである。
【００３２】
まず、比較のために通常のダイレクトモードを説明し、その後、本実施の形態の改良ダイレクトモードを説明する。
【００３３】
図２（ａ）〜（ｃ）は、通常のダイレクトモードによる動き補償の手順を説明する図である。ダイレクトモードでは、線形動きモデルにしたがって、一つの動きベクトルを順方向、逆方向に線形補間することで双方向予測の効果をもたせる。
【００３４】
同図は左から右を時間の流れとして、４枚のフレームを表示時間順に図示しており、Ｐフレーム１、Ｂフレーム２、Ｂフレーム３、Ｐフレーム４の順に表示がなされる。符号化の順序はこの表示順序とは異なり、まず同図の１番目のＰフレーム１が符号化され、次に、４番目のＰフレーム４が、１番目のＰフレーム１を参照画像として動き補償が行われて符号化される。その後、Ｂフレーム２、Ｂフレーム３がそれぞれ、前後の２枚のＰフレーム１、４を参照画像として動き補償が行われて符号化される。なお、同図の１番目のＰフレームはＩフレームであってもよい。また、同図の４番目のＰフレームはＩフレームであってもよい。その際、Ｉフレーム内の対応するブロックにおける動きベクトルは（０，０）として扱われる。
【００３５】
今、２枚のＰフレーム１、４の符号化が完了し、Ｂフレーム２を符号化する段階であるとする。このＢフレーム２を対象Ｂフレームと呼び、対象Ｂフレームより後に表示されるＰフレーム４を後方参照Ｐフレーム、対象Ｂフレームより前に表示されるＰフレーム１を前方参照Ｐフレームと呼ぶ。
【００３６】
双方向予測モードでは、対象Ｂフレーム２を前方参照Ｐフレーム１、後方参照Ｐフレーム４の２枚のフレームによって双方向に予測して、前方参照Ｐフレーム１に対する動きを示す順方向動きベクトルと、後方参照Ｐフレーム４に対する動きを示す逆方向動きベクトルをそれぞれ独立に求め、２つの動きベクトルを生成する。それに対して、ダイレクトモードでは、対象Ｂフレーム２を前方参照Ｐフレーム１、後方参照Ｐフレーム４の２枚のフレームによって双方向に予測する点は同じであるが、１つの基準となる動きベクトルから順方向、逆方向の動きベクトルを線形予測する点が異なる。
【００３７】
図２（ａ）は、後方参照Ｐフレーム４の符号化の際に得られたマクロブロック２１０の動きベクトルｍｖＣｏｌ（符号２３０）を示す。
【００３８】
対象Ｂフレーム２を符号化する際、ダイレクトモードでは、図２（ｂ）に示すように、対象Ｂフレーム２の対象マクロブロック２２０と空間的な位置が一致する後方参照Ｐフレーム４の参照マクロブロック２１０について既に求められた動きベクトルｍｖＣｏｌ（符号２３０）が、対象Ｂフレーム２の対象マクロブロック２２０の動きベクトルｍｖＣｏｌ’（符号２３２）であると想定する。想定された対象マクロブロック２２０の動きベクトルｍｖＣｏｌ’を基準ベクトルと呼ぶ。
【００３９】
次に、図２（ｃ）に示すように、対象Ｂフレーム２の対象マクロブロック２２０の実際の動きに合わせるために、基準ベクトルｍｖＣｏｌ’（符号２３２）を水平方向、垂直方向にそれぞれΔＶｘ、ΔＶｙだけ平行移動させ、最適な動きベクトル（符号２３４）を求める。差分ベクトルΔＶ＝（ΔＶｘ、ΔＶｙ）は、基準ベクトルｍｖＣｏｌ’（符号２３２）にもとづいて線形予測された対象マクロブロック２２０の移動位置と実際の移動位置のずれを示すものである。
【００４０】
基準ベクトルｍｖＣｏｌ’は、後方参照Ｐフレーム４を符号化する際に既に動きベクトルｍｖＣｏｌとして符号化されているため、ダイレクトモードで符号化するベクトル情報は、差分ベクトルΔＶ＝（ΔＶｘ、ΔＶｙ）の情報だけでよい。
【００４１】
対象Ｂフレーム２の対象マクロブロック２２０の順方向動きベクトルｍｖＬ０と、逆方向動きベクトルｍｖＬ１は、それぞれ、次式のように、基準ベクトルｍｖＣｏｌ’をフレーム間の時間間隔の比で内分し、差分ベクトルΔＶにより補正することにより求められる。
【００４２】
ｍｖＬ０＝ｍｖＣｏｌ×ｔｂ／ｔｄ＋ΔＶ
ｍｖＬ１＝ｍｖＬ０−ｍｖＣｏｌ＝ｍｖＣｏｌ×（ｔｂ−ｔｄ）／ｔｄ＋ΔＶ
【００４３】
ここで、ｔｂは、前方参照Ｐフレーム１から対象Ｂフレーム２までの時間間隔であり、ｔｄは、前方参照Ｐフレーム１から後方参照Ｐフレーム４までの時間間隔である。
【００４４】
同図では、２次元画像を１次元的に図示しているが、動きベクトルが画像の水平方向と垂直方向の２次元成分をもつのに対応して、差分ベクトルΔＶも水平方向と垂直方向の２次元成分をもつことに留意する。
【００４５】
ダイレクトモードでは、逆方向動きベクトルｍｖＬ１による後方参照Ｐフレーム４の参照位置から順方向動きベクトルｍｖＬ０による前方参照Ｐフレーム１の参照位置への動きを示す動きベクトル（符号２３４）は、後方参照Ｐフレーム４の参照マクロブロック２１０の動きベクトルｍｖＣｏｌ（符号２３０）すなわち対象Ｂフレーム２の対象マクロブロック２２０の基準動きベクトルｍｖＣｏｌ’（符号２３２）と平行であり、動きベクトルの傾きに変化がないことに留意する。
【００４６】
ダイレクトモードでは、順方向動きベクトルｍｖＬ０と逆方向動きベクトルｍｖＬ１を用いて対象マクロブロック２２０を動き補償し、予測画像を生成する。
【００４７】
動きベクトルの符号量を考えた場合、双方向予測では、順方向と逆方向で独立した動きベクトルを検出するため、参照画像との差分誤差は小さくなるが、２つの独立した動きベクトルの情報を符号化するため、動きベクトル情報の符号量が多くなる。最近の高画質の圧縮符号化では、１／４画素精度での動きベクトルの探索が行われることが多く、動きベクトル情報の符号量が一層増大することになる。
【００４８】
一方、ダイレクトモードでは、後方参照Ｐフレーム４の動きベクトルを利用して順方向と逆方向の動きベクトルを線形予測するため、動きベクトルの符号化は不要であり、差分ベクトルΔＶの情報だけを符号化すればよい。しかも、差分ベクトルΔＶは、実際の動きが線形動きに近いほど小さい値になる。線形動きモデルで近似できる場合は、差分ベクトルΔＶの符号量は十分に小さい。
【００４９】
しかしながら、ダイレクトモードでは、図２（ｂ）で説明したように、対象Ｂフレーム２の対象マクロブロック２２０の基準ベクトルｍｖＣｏｌ’（符号２３２）の傾きは、当該対象マクロブロック２２０と同位置にある後方参照Ｐフレーム４の参照マクロブロック２１０の動きベクトルｍｖＣｏｌ（符号２３０）の傾きと同じであるという制約がある。このため、基準ベクトルｍｖＣｏｌ’の傾きが対象マクロブロック２２０の実際の動きベクトルの傾きから大きくずれていた場合、基準ベクトルｍｖＣｏｌ’を用いて、前方参照Ｐフレーム１、後方参照Ｐフレーム４との間で動き予測を行うと、予測誤差が大きくなり、符号量が増えてしまう。
【００５０】
ダイレクトモードは、対象Ｂフレーム２と後方参照Ｐフレーム４の間に相関があり、後方参照Ｐフレーム４の参照マクロブロック２１０の動きベクトルｍｖＣｏｌを平行移動させて得られる対象Ｂフレーム２の対象マクロブロック２２０の基準ベクトルｍｖＣｏｌ’が、当該対象マクロブロック２２０の実際の動きベクトルに近い場合は、符号化効率が高いが、そうでない場合は、予測誤差が大きくなり、符号化効率が悪くなる傾向がある。
【００５１】
図３（ａ）〜（ｃ）は、上述の通常のダイレクトモードによる動き補償の課題を具体的な例で説明する図である。
【００５２】
図３（ａ）〜（ｃ）は、それぞれ前方参照Ｐフレーム１、対象Ｂフレーム２、後方参照Ｐフレーム４を示す。図３（ｂ）に示された領域４００ｂは、対象Ｂフレーム２の対象マクロブロックであり、この対象マクロブロックと同位置にある前方参照Ｐフレーム１内の領域４００ａと後方参照Ｐフレーム４内の領域４００ｃが、それぞれ図３（ａ）と図３（ｃ）に図示されている。
【００５３】
前方参照Ｐフレーム１、対象Ｂフレーム２および後方参照Ｐフレーム４上で、斜線で示した円形のオブジェクトが符号４１２ａ〜４１２ｃで示すように左上から右下に斜め方向に移動しており、また、斜線で示した正方形のオブジェクトが符号４１０ａ〜４１０ｃに示すように左から右に水平方向に移動している。
【００５４】
図３（ｂ）の対象Ｂフレーム２の領域４００ｂの実際の動きは、図示された水平方向の順方向動きベクトルｍｖＬ０および逆方向動きベクトルｍｖＬ１で表されるとする。これは、対象Ｂフレーム２の領域４００ｂ内にある正方形のオブジェクト４１０ｂの順方向および逆方向の動きに対応するものである。
【００５５】
ところが、図３（ｃ）に示すように、対象Ｂフレーム２の領域４００ｂに対応する後方参照Ｐフレーム４の領域４００ｃの動きベクトルｍｖＣｏｌ（符号４２０）は、左上に向かう斜め方向の動きを示している。これは、後方参照Ｐフレーム４の領域４００ｃ内にある円形のオブジェクト４１２ｃの動きに対応するものである。
【００５６】
ダイレクトモードでは、図３（ｃ）に示された後方参照Ｐフレーム４の領域４００ｃの動きベクトルｍｖＣｏｌを平行移動させて対象Ｂフレーム２の領域４００ｂの基準ベクトルとして利用する。この例では、基準ベクトルは斜め方向であり、実際の動きベクトルは水平方向であるから、両者の傾きは大きくずれており、この基準ベクトルを利用して動き予測を行うと、画質が劣化するか、符号量が増加する。
【００５７】
このように、ダイレクトモードは、双方向予測モードに比べて符号化効率の面では優れているものの、基準動きベクトルと実際の動きベクトルのずれが大きい場合には、符号化効率が低下することがあり、改良の余地があることを本出願人は認識するに至った。以下、ダイレクトモードを改良した「改良ダイレクトモード」を説明する。
【００５８】
図４は、動き補償部６０の構成を説明する図である。
【００５９】
動きベクトル探索部６２は、フレーム間予測符号化の対象となるフレームについて動き探索を行って、各単位領域の動きベクトルを求め、各単位領域を動き補償し、予測画像を生成する。動きベクトル探索部６２は、予測画像を差分器１２および加算器１４に与え、動きベクトル情報を可変長符号化部９０に与える。
【００６０】
ここで、単位領域は、縦横の画素数がそれぞれ任意のブロックであり、一例として、マクロブロックもしくはサブマクロブロックである。
【００６１】
動きベクトル探索部６２は、双方向予測フレームの後方参照先となるフレームの動き探索を行った場合、各単位領域における動きベクトルｍｖＣｏｌを可変長符号化部９０に与えるとともに、動きベクトル保持部６４に保存する。
【００６２】
図５は、動きベクトル保持部６４に記憶される後方参照フレームの各単位領域の動きベクトルｍｖＣｏｌを説明する図である。動きベクトル保持部６４の保存領域は、後方参照フレームの単位領域番号に対応づけて分けられており、各保存領域には、対応する単位領域の動きベクトルｍｖＣｏｌの値が保持される。同図の例では、後方参照フレームの単位領域０番、１番、…、４番に対応する保存領域０番、１番、…、４番（符号６４ａ〜６４ｅ）に、後方参照フレームの単位領域０番、１番、…、４番に属する動きベクトルｍｖＣｏｌ０〜ｍｖＣｏｌ４の値が格納されている。
【００６３】
また、動きベクトル探索部６２は、後方参照フレームの各単位領域の動きベクトルが双方向予測フレームにおいてどの単位領域を通過するかを求め、通過する単位領域（以下、単に「通過領域」ということもある）に関する情報を通過領域番号保持部６６に保存する。
【００６４】
図６は、通過領域番号保持部６６に記憶される通過領域に関する情報を説明する図である。通過領域番号保持部６６の保存領域は、双方向予測フレームの単位領域番号に対応づけて分けられており、各保存領域には、双方向予測フレームの対応する単位領域を通過する後方参照フレームの動きベクトル（以下、単に「通過動きベクトル」ということもある）がある場合に、その通過動きベクトルが定義された後方参照フレームの単位領域番号が格納される。
【００６５】
同図の例では、保存領域０番（符号６６ａ）には、双方向予測フレームの単位領域０番を通過する通過動きベクトルが属する後方参照フレームの単位領域の番号０および１が格納されている。
【００６６】
同様に、保存領域１番（符号６６ｂ）には、双方向予測フレームの単位領域１番を通過する通過動きベクトルが属する後方参照フレームの単位領域の番号４が格納されており、保存領域２番（符号６６ｃ）には、双方向予測フレームの単位領域２番を通過する通過動きベクトルが属する後方参照フレームの単位領域の番号２、３および１８が格納されている。
【００６７】
動きベクトル探索部６２は、後方参照フレームの各単位領域について動きベクトルを求めたときに、その動きベクトルが通過する双方向予測フレームの単位領域を求め、その通過する単位領域に対応する通過領域番号保持部６６の保存領域に後方参照フレームの単位領域番号を保存していく。
【００６８】
たとえば、動きベクトル探索部６２は、後方参照フレームの単位領域０番について求めた動きベクトルが双方向予測フレームの単位領域０番を通過する場合、その通過する単位領域０番に対応する保存領域０番に後方参照フレームの単位領域の番号０を格納する。
【００６９】
同様にして、後方参照フレームの単位領域１番、２番、３番、４番、１８番の動きベクトルが、双方向予測フレームの単位領域０番、２番、２番、１番、２番をそれぞれ通過するとき、動きベクトル探索部６２は、双方向予測フレームの単位領域０番に対応する保存領域０番に、後方参照フレームの単位領域の番号１をさらに格納し、双方向予測フレームの単位領域１番に対応する保存領域１番に、後方参照フレームの単位領域の番号４を格納し、双方向予測フレームの単位領域２番に対応する保存領域２番に、後方参照フレームの単位領域の番号２、３、１８を格納する。
【００７０】
このようにして、図６に示した、双方向予測フレームの各単位領域番号に対して、その単位領域を通過する動きベクトルの属する後方参照フレームの単位領域番号のリストを対応づけたテーブルが得られる。後方参照フレームを参照する双方向予測フレームが複数ある場合は、このテーブルは双方向予測フレーム毎に作られる。
【００７１】
再び、図４を参照し、動きベクトル探索部６２が、双方向予測フレームの動き探索を行う場合の動作を説明する。
【００７２】
基準ベクトル予測部６８は、双方向予測フレームの動きベクトルを求めるべき対象単位領域について、その対象単位領域を通過する後方参照フレームの動きベクトルが属する後方参照フレームの単位領域番号を通過領域番号保持部６６から読み出す。次に、基準ベクトル予測部６８は、読み出された後方参照フレームの単位領域番号にもとづいて、動きベクトル保持部６４から、双方向予測フレームの対象単位領域を通過する後方参照フレームの動きベクトルの値を読み出す。
【００７３】
図５および図６の例で言えば、基準ベクトル予測部６８は、双方向予測フレームの対象単位領域０番を通過する通過動きベクトルが属する後方参照フレームの単位領域番号として０番と１番を通過領域番号保持部６６から読み出す。次に、基準ベクトル予測部６８は、読み出された後方参照フレームの単位領域０番および１番の動きベクトルｍｖＣｏｌ０およびｍｖＣｏｌ１の値を通過動きベクトルとして動きベクトル保持部６４から読み出す。
【００７４】
基準ベクトル予測部６８は、動きベクトル保持部６４から読み出した通過動きベクトルを参照して、双方向予測フレームの対象単位領域に適用すべき基準ベクトルｍｖＣｏｌ’を決定し、動きベクトル探索部６２に与える。
【００７５】
双方向予測フレームの対象単位領域を通過する通過動きベクトルが複数ある場合、基準ベクトル予測部６８は、いずれか１つの通過動きベクトルを基準ベクトルとして選択してもよく、あるいは、それらの中から一部もしくはすべてを選択し、組み合わせて用いてもよい。また、対象単位領域を通過する通過動きベクトルが複数ある場合、基準ベクトル予測部６８は、いずれの動きベクトルを選択して基準ベクトルとしたか、あるいは、いかなる優先順位で複数の通過動きベクトルの中から基準ベクトルを選択したかなどを示す基準ベクトル選択情報を必要に応じて符号化するために可変長符号化部９０に与える。
【００７６】
動きベクトル探索部６２は、基準ベクトル予測部６８から与えられた基準ベクトルを双方向予測フレームの対象単位領域に適用し、実際の動きに合わせるため差分ベクトルΔＶにより最適化する。動きベクトル探索部６２は、差分ベクトルΔＶにより最適化された基準ベクトルにもとづいて線形予測することにより、対象単位領域の順方向動きベクトルｍｖＬ０と逆方向動きベクトルｍｖＬ１を求める。動きベクトル探索部６２は、求めた順方向動きベクトルｍｖＬ０と逆方向動きベクトルｍｖＬ１により、対象単位領域を双方向で動き補償予測し、予測画像を生成する。動きベクトル探索部６２は、予測画像を差分器１２および加算器１４に与え、差分ベクトルΔＶを動きベクトル情報として可変長符号化部９０に与える。
【００７７】
図７（ａ）〜（ｃ）は、動き補償部６０により改良ダイレクトモードによる動き補償を実行する手順を説明する図である。図７（ａ）〜（ｃ）は、通常のダイレクトモードによる動き補償を説明した図２（ａ）〜（ｃ）と同符号を用いて、改良ダイレクトモードによる動き補償を説明する図であり、図２（ａ）〜（ｃ）と共通する説明は省略する。
【００７８】
後方参照Ｐフレーム４を符号化する際、動きベクトル探索部６２は、図７（ａ）に示すように、後方参照Ｐフレーム４の各マクロブロックの動きベクトルを求めて、動きベクトル保持部６４に保存する。ここでは、後方参照Ｐフレーム４の第１のマクロブロック２１０の動きベクトルｍｖＣｏｌ（符号２３０）と、第２のマクロブロック２４０の動きベクトルｍｖＣｏｌ（符号２５０）を図示している。
【００７９】
対象Ｂフレーム２を符号化する際、基準ベクトル予測部６８は、図７（ｂ）に示すように、動きベクトル保持部６４に保持された後方参照Ｐフレーム４の各マクロブロックの動きベクトルのうち、対象Ｂフレーム２の対象マクロブロック２２０を通過する動きベクトルを当該対象マクロブロック２２０の基準動きベクトルｍｖＣｏｌ’（符号２５２）として選択する。
【００８０】
図７（ａ）の第１のマクロブロック２１０の動きベクトルｍｖＣｏｌ（符号２３０）は、対象Ｂフレーム２の対象マクロブロック２２０を通過しないので、基準動きベクトルとして選択されることはない。一方、図７（ａ）の第２のマクロブロック２４０の動きベクトルｍｖＣｏｌ（符号２５０）は、対象Ｂフレーム２の対象マクロブロック２２０を通過するので、基準動きベクトルの候補となる。
【００８１】
一般に、対象Ｂフレーム２の対象マクロブロック２２０を通過する後方参照Ｐフレーム４の動きベクトルは複数存在することもあるが、ここでは１つしか存在しないとして、図７（ａ）の第２のマクロブロック２４０の動きベクトルｍｖＣｏｌ（符号２５０）が、図７（ｂ）に示すように、そのまま対象マクロブロック２２０の基準ベクトルｍｖＣｏｌ’（符号２５２）として選ばれた場合を図示している。
【００８２】
次に、動きベクトル探索部６２は、図７（ｃ）に示すように、対象Ｂフレーム２の対象マクロブロック２２０の実際の動きに合わせるために、基準ベクトルｍｖＣｏｌ’（符号２５２）を水平方向、垂直方向にそれぞれΔＶｘ、ΔＶｙだけ平行移動させ、最適な動きベクトル（符号２５４）を求める。差分ベクトルΔＶ＝（ΔＶｘ、ΔＶｙ）は、基準ベクトルｍｖＣｏｌ’（符号２５２）にもとづいて線形予測された対象マクロブロック２２０の移動位置と実際の移動位置のずれを示すものである。
【００８３】
動きベクトル探索部６２は、対象Ｂフレーム２の対象マクロブロック２２０の順方向動きベクトルｍｖＬ０と、逆方向動きベクトルｍｖＬ１を、それぞれ、次式のように、基準ベクトルｍｖＣｏｌ’をフレーム間の時間間隔の比で内分し、差分ベクトルΔＶにより補正することにより求める。
【００８４】
ｍｖＬ０＝ｍｖＣｏｌ×ｔｂ／ｔｄ＋ΔＶ
ｍｖＬ１＝ｍｖＬ０−ｍｖＣｏｌ＝ｍｖＣｏｌ×（ｔｂ−ｔｄ）／ｔｄ＋ΔＶ
【００８５】
動きベクトル探索部６２は、求めた順方向動きベクトルｍｖＬ０と逆方向動きベクトルｍｖＬ１を用いて対象マクロブロック２２０を動き補償し、予測画像を生成する。
【００８６】
図７（ｂ）で説明したように、対象Ｂフレーム２の対象マクロブロック２２０の基準ベクトルｍｖＣｏｌ’（符号２５２）として、対象Ｂフレーム２の対象マクロブロック２２０を通過する後方参照Ｐフレーム４の動きベクトルを選ぶため、基準ベクトルｍｖＣｏｌ’は、対象マクロブロック２２０の実際の動きベクトルに近いものである可能性が高い。そのため、この基準ベクトルｍｖＣｏｌ’を用いて、前方参照Ｐフレーム１、後方参照Ｐフレーム４との間で動き予測を行うと、予測誤差が小さくなり、符号化効率が良い。
【００８７】
図８（ａ）〜（ｃ）は、上述の改良ダイレクトモードによる動き補償の効果を具体的な例で説明する図である。図８（ａ）〜（ｃ）は、図３（ａ）〜（ｃ）と同符号を用いて、改良ダイレクトモードによる動き補償を説明する図であり、図３（ａ）〜（ｃ）と共通する説明は省略する。
【００８８】
図８（ｂ）の対象Ｂフレーム２の領域４００ｂの実際の動きは、この領域４００ｂ内にある正方形のオブジェクト４１０ｂの順方向および逆方向の動きに対応して、図示された水平方向の順方向動きベクトルｍｖＬ０および逆方向動きベクトルｍｖＬ１で表されるとする。
【００８９】
図８（ｃ）は、対象Ｂフレーム２の領域４００ｂと同位置にある後方参照Ｐフレーム４の領域４００ｃとその隣接領域４０２のそれぞれの動きベクトルを示す。対象Ｂフレーム２の領域４００ｂと同位置にある後方参照Ｐフレーム４の領域４００ｃの動きベクトル（符号４２０）は、この領域４００ｃ内にある円形のオブジェクト４１２ｃの動きに対応して、左上に向かう斜め方向の動きを示している。一方、後方参照Ｐフレーム４の隣接領域４０２の動きベクトルｍｖＣｏｌ（符号４２２）は、この隣接領域４０２内にある正方形のオブジェクト４１０ｃの動きに対応して、水平方向の動きを示しており、対象Ｂフレーム２の領域４００ｂを通過する。
【００９０】
改良ダイレクトモードでは、対象Ｂフレーム２の領域４００ｂを通過する動きベクトルを基準ベクトルとするから、図８（ｃ）に示された後方参照Ｐフレーム４の隣接領域４００ｃの動きベクトルｍｖＣｏｌを平行移動させて対象Ｂフレーム２の領域４００ｂの基準ベクトルとして利用する。この例では、基準ベクトルは水平方向であり、実際の動きベクトルも水平方向であるから、両者の傾きは一致し、この基準ベクトルを利用して動き予測を行うと、予測誤差が小さくなり、符号量を減らすことができる。
【００９１】
実施の形態２
実施の形態２は、実施の形態１の符号化装置１００において、動き補償部６０の一部の構成と動作が異なる。変形の形態２では、実施の形態１と同様、動き補償部６０の動きベクトル探索部６２は、後方参照フレームの各単位領域の動きベクトルが双方向予測フレームにおいて通過する単位領域（「通過領域」）を求め、通過領域に関する情報を通過領域番号保持部６６に保存するが、通過領域番号保持部６６における通過領域に関する情報の保存形式が異なる。それに伴い、動きベクトル探索部６２と基準ベクトル予測部６８の動作が異なる。実施の形態１と同じ構成と動作については説明を省き、異なる構成と動作についてのみ説明する。
【００９２】
図９は、実施の形態２に係る通過領域番号保持部６６に記憶される通過領域に関する情報を説明する図である。
【００９３】
通過領域番号保持部６６の保存領域は、後方参照フレームの単位領域番号に対応づけて分けられており、各保存領域には、対応する単位領域で求められた後方参照フレームの動きベクトルが通過する双方向予測フレームの単位領域（「通過領域」）の番号が格納される。
【００９４】
同図の例では、保存領域０番（符号６６ａ）には、後方参照フレームの単位領域０番に属する動きベクトルが通過する双方向予測フレームの単位領域の番号０が格納されている。
【００９５】
同様に、保存領域１、２、３、４番（符号６６ｂ、６６ｃ、６６ｄ、６６ｅ）には、それぞれ後方参照フレームの単位領域１、２、３、４番に属する動きベクトルが通過する双方向予測フレームの単位領域の番号０、２、２、１が格納されている。
【００９６】
動きベクトル探索部６２は、後方参照フレームの各単位領域について動きベクトルを求めたときに、その動きベクトルが通過する双方向予測フレームの単位領域を求め、その通過する単位領域の番号を、後方参照フレームの単位領域に対応する通過領域番号保持部６６の保存領域に保存していく。
【００９７】
たとえば、動きベクトル探索部６２は、後方参照フレームの単位領域０番について求めた動きベクトルが双方向予測フレームの単位領域０番を通過する場合、その通過する単位領域の番号０を、後方参照フレームの単位領域０番に対応する保存領域０番に格納する。
【００９８】
同様に、動きベクトル探索部６２は、後方参照フレームの単位領域１、２、３、４番の動きベクトルが、双方向予測フレームの単位領域０、２、２、１番をそれぞれ通過するとき、その通過する単位領域の番号０、２、２、１を後方参照フレームの単位領域１、２、３、４番に対応する保存領域１、２、３、４番にそれぞれ格納する。
【００９９】
このようにして、図９に示した、後方参照フレームの各単位領域番号に対して、その単位領域に属する動きベクトルが通過する双方向予測フレームの単位領域番号を対応づけたテーブルが得られる。後方参照フレームを参照する双方向予測フレームが複数ある場合は、このテーブルは双方向予測フレーム毎に作られる。
【０１００】
基準ベクトル予測部６８は、通過領域番号保持部６６に保持された通過領域に関する情報を検索して、双方向予測フレームの動きベクトルを求めるべき対象単位領域について、その対象単位領域を通過する後方参照フレームの動きベクトルが属する後方参照フレームの単位領域番号を取得する。
【０１０１】
図９の例で言えば、対象単位領域の番号が２番であるとき、基準ベクトル予測部６８は、通過領域番号保持部６６を検索して、値２が格納されている保存領域の番号２、３から、対象単位領域２番を通過する動きベクトルが属する後方参照フレームの単位領域の番号２、３を取得する。
【０１０２】
次に、基準ベクトル予測部６８は、取得された後方参照フレームの単位領域番号にもとづいて、動きベクトル保持部６４から、双方向予測フレームの対象単位領域を通過する後方参照フレームの動きベクトルの値を読み出す。
【０１０３】
図５の例で言えば、取得された後方参照フレームの単位領域２番および３番の動きベクトルｍｖＣｏｌ２およびｍｖＣｏｌ３の値を通過動きベクトルとして動きベクトル保持部６４から読み出す。
【０１０４】
これ以降の動作は、実施の形態１の動作と同じである。
【０１０５】
実施の形態３
実施の形態３は、実施の形態１の符号化装置１００において、動き補償部６０の一部の構成と動作が異なる。実施の形態３では、動き補償部６０は通過領域番号保持部６６の構成をもたない。それに伴い、動きベクトル探索部６２と基準ベクトル予測部６８の動作が異なる。実施の形態１と同じ構成と動作については説明を省き、異なる構成と動作についてのみ説明する。
【０１０６】
図１０は、実施の形態３に係る動き補償部６０の構成を説明する図である。実施の形態１とは異なり、動き補償部６０は通過領域番号保持部６６の構成を含まない。動きベクトル探索部６２は、後方参照フレームの各単位領域における動きベクトルを求め、動きベクトル保持部６４に保存するが、実施の形態１とは異なり、動き補償部６０は、求めた動きベクトルが通過する双方向予測フレームの単位領域を求めることはしない。動きベクトル保持部６４の構成は、実施の形態１と同じである。
【０１０７】
基準ベクトル予測部６８は、動きベクトル保持部６４から後方参照フレームの各単位領域の動きベクトルの値を読み出し、各動きベクトルが通過する双方向予測フレームの単位領域を求める。次に、その結果を利用して、基準ベクトル予測部６８は、双方向予測フレームの動きベクトルを求めるべき対象単位領域について、その対象単位領域を通過する後方参照フレームの動きベクトルを特定する。これ以降の動作は、実施の形態１の動作と同じである。
【０１０８】
この構成によれば、基準ベクトル予測部６８が、双方向予測フレームの符号化の際に、後方参照フレームの動きベクトルが通過する双方向予測フレームの単位領域を求めるため、動きベクトル探索部６２は、後方参照フレームの符号化の際に、後方参照フレームの動きベクトルが通過する双方向予測フレームの単位領域を求める必要はなく、また、その通過する双方向予測フレームの単位領域に関する情報を保存しておくメモリも必要としない。したがって、この構成は、動き補償部６０が利用できるメモリ容量に制限がある場合に、特に効果的である。
【０１０９】
以下、実施の形態１〜３の符号化装置１００のいずれにも共通することとして、双方向予測フレームの符号化対象の単位領域を通過する後方参照フレームの動きベクトルが複数存在する場合に、基準ベクトルを選定する基準について詳しく説明する。
【０１１０】
双方向予測フレームの対象単位領域を通過する後方参照フレームの動きベクトルが複数ある場合に、基準ベクトル予測部６８は、各通過動きベクトルが属する単位領域が所定の制約領域内にあるかどうかを判定し、制約領域内にある通過動きベクトルを基準ベクトルの候補としてもよい。
【０１１１】
図１１は、通過動きベクトルの属する単位領域と制約領域の関係を説明する図である。Ｂフレーム２の対象マクロブロック２２０と同位置にある後方参照Ｐフレーム４のマクロブロック２１０を中心とする所定の画素幅の領域を制約領域として設定する。
【０１１２】
後方参照Ｐフレーム４の第１のマクロブロック２４０の動きベクトル（符号２６０）および第２のマクロブロック２４２の動きベクトル（符号２６２）は、ともに対象マクロブロック２２０を通過する。しかし、第１のマクロブロック２４０は制約領域内にあるが、第２のマクロブロック２４２は制約領域外にある。この場合、制約領域内にある第１のマクロブロック２４０の動きベクトル（符号２６０）は、基準ベクトルの候補になるが、制約領域外にある第２のマクロブロック２４２の動きベクトル（符号２６２）は、基準ベクトルの候補から外される。
【０１１３】
双方向予測フレームの対象単位領域を通過する通過動きベクトルが複数ある場合、基準ベクトル予測部６８は、いずれか１つの通過動きベクトルを基準ベクトルとして選択してもよく、あるいは、それらの中から一部もしくはすべてを選択し、組み合わせて基準ベクトルを生成してもよい。複数の通過動きベクトルから選択したり、複数の通過動きベクトルを組み合わせることにより、基準ベクトルの精度が向上し、予測誤差がより少ない予測画像を得ることができるため、差分画像に関する符号量を一層減少させ、符号化効率を上げることができる。
【０１１４】
基準ベクトル予測部６８は、複数の通過動きベクトルから基準ベクトルを選択する際の優先順位として、以下の基準を用いることができる。以下の基準は単独で用いられてもよく、複数組み合わせて用いられてもよい。
【０１１５】
双方向予測フレームの対象単位領域を通過する複数の通過動きベクトルに対して、その対象単位領域の中央と、通過動きベクトルが通過する位置との距離を基準として優先順位を設ける。距離が短い、すなわち、通過点が対象単位領域に近い通過動きベクトルほど、優先的に基準ベクトルとして選択される。
【０１１６】
複数の通過動きベクトルの平均値を基準として、平均値に近い順に優先順位を設ける。平均的な動きに近い通過動きベクトルほど、優先的に基準ベクトルとして選択される。平均値の代わりに、メジアン（中央値）もしくはモード（最頻値）を基準としてもよい。あるいは、複数の通過動きベクトルのうち、最大のものと最小のものの平均値を基準として用いてもよい。
【０１１７】
複数の通過動きベクトルの大きさを基準に優先順位を設けてもよい。たとえば、通過動きベクトルの大きさが小さいものから順に優先順位を高く設定する。動き量が小さい通過動きベクトルほど、優先的に基準ベクトルとして選択される。
【０１１８】
双方向予測フレームの対象単位領域の周囲の隣接単位領域の符号化済みの動きベクトルの大きさを基準として優先順位を設ける。周囲の隣接単位領域とは、１単位領域分、上、下、左、右、右上、左上、右下、左下を指す。符号化済みの動きベクトルが複数ある場合は、それらのうちの１つを選択してもよく、それらのうちのいくつかを選択し、それらの平均値、メジアン、モード、最大値と最小値の平均のいずれかを基準として優先順位を設けてもよい。
【０１１９】
双方向予測フレームの対象単位領域を通過する複数の通過動きベクトルに対して、対象単位領域と同位置にある後方参照フレームの動きベクトルを基準として、その同位置の動きベクトルの値に近いものから順に、優先順位を設ける。または、対象単位領域と同位置にある前方参照フレームの動きベクトルを基準として、その同位置の動きベクトルの値に近いものから順に、優先順位を設ける。
【０１２０】
符号化対象のフレーム、後方参照フレーム、前方参照フレームのいずれかのグローバル動きベクトルを基準として、そのグローバル動きベクトルの値に近い順に、複数の通過動きベクトルの間に優先順位を設ける。
【０１２１】
デジタルビデオカメラの信号処理部など符号化装置１００の外部の構成から取得されるフレーム全体に関する動きベクトル情報をもとにして得られた、双方向予測フレームの対象単位領域のベクトルを基準として、その基準値に近い順に、複数の通過動きベクトルの間に優先順位を設ける。たとえば、画面全体がパン、チルト、ズームのような動きをする場合、そのような画面全体の動きをアフィン変換等のパラメータ値で表すことができる。このパラメータ値をもとにして、対象単位領域のベクトルを求め、基準値とすることができる。
【０１２２】
上記の基準において、「距離」は、水平方向と垂直方向の距離の和でもよく、すなわち水平方向と垂直方向の各距離の自乗和などで得られる直線距離であってもよい。動きベクトルの大きさで順位を定める場合、動きベクトルの大きさの差を、水平方向の差と垂直方向の差の和で求めてもよく、水平方向の差の自乗と垂直方向の差の自乗の和で求めてもよい。
【０１２３】
複数の通過動きベクトルを選択して、組み合わせて基準ベクトルを生成する場合の方法として、選択された通過動きベクトルの平均を基準ベクトルとしてもよく、選択された通過動きベクトルの加重平均を基準ベクトルとしてもよい。加重平均を求める場合の重みは、上述の複数の通過動きベクトルの優先度を決めるのに用いた指標のいずれかを用いて決めてもよく、もしくはそれらの指標を組み合わせて決めてもよい。
【０１２４】
通過動きベクトルが複数ある場合、複数の通過動きベクトルからの選択を任意に行い、いずれの動きベクトルを選択したかを示す選択情報を符号化してもよい。選択情報は、基準ベクトルとして選択された動きベクトルが属する後方参照フレームの単位領域の位置番号であってもよく、選択の際に用いた優先順位の番号であってもよい。
【０１２５】
また、複数の通過動きベクトルからの選択を上記の基準で説明した優先順位を用いて規則的に行ってもよい。基準ベクトルの選択を規則的に行う限り、復号側でその規則がわかっていれば、基準ベクトルとして選択された動きベクトルを特定することができるため、通過動きベクトルのいずれを選択したかを示す選択情報を符号化する必要がなく、符号量の削減を図ることができる。
【０１２６】
双方向予測フレームの対象単位領域を通過する通過動きベクトルが複数ある場合に、選択の候補となる通過動きベクトルの数を制限してもよい。候補数を制限する際、双方向予測フレームの対象単位領域の位置と、通過動きベクトルが属する後方参照フレームの単位領域の位置とが近いものを優先したり、通過動きベクトルの大きさが小さいものを優先したり、通過動きベクトルの通過点が対象単位領域の中央に近いものを優先するなどにより、候補となる通過動きベクトルの優先順位を定めてもよい。候補数を制限することにより、実施の形態１の通過領域番号保持部６６の容量を小さくすることができる。
【０１２７】
双方向予測フレームの対象単位領域を通過する動きベクトルが１つもない場合、以下の方法で基準ベクトルを定めてもよい。
【０１２８】
対象単位領域の最も近くを通過している動きベクトルを基準ベクトルとする。対象単位領域と同位置の前方参照フレームもしくは後方参照フレーム内の単位領域の動きベクトルを基準ベクトルとする。
【０１２９】
対象単位領域の周辺の隣接単位領域の符号化済み動きベクトルを基準ベクトルとする。周囲の隣接単位領域の定義は上述の通りである。符号化済みの動きベクトルが複数ある場合は、それらのうちの１つを基準ベクトルとしてもよく、それらのうちのいくつかを選択し、それらの平均値、メジアン、モード、最大値と最小値の平均のいずれかを基準ベクトルとしてもよい。
【０１３０】
符号化対象のフレーム、後方参照フレーム、前方参照フレームのいずれかのグローバル動きベクトルを基準ベクトルとする。デジタルビデオカメラの信号処理部など符号化装置１００の外部の構成から取得されるフレーム全体に関する動きベクトル情報をもとにして得られた、双方向予測フレームの対象単位領域のベクトルを基準ベクトルとする。
【０１３１】
以上述べたように、実施の形態１から３の符号化装置１００によれば、双方向予測フレームの対象単位領域を符号化する際に、既に符号化された参照フレームの動きベクトルの内、双方向予測フレームの当該対象単位領域を通過する動きベクトルを基準ベクトルとして動き補償予測符号化を行うため、基準ベクトルと当該対象単位領域の実際の動きベクトルの誤差が小さく、動きベクトル符号量を削減して、動画像全体の圧縮符号化効率を高めることができる。
【０１３２】
画像の解像度が高くなると、動きベクトルの大きさが大きくなるため、符号全体に占める動きベクトル情報の符号量の割合が増える。したがって、本実施の形態の改良ダイレクトモードによる動きベクトル符号量の削減効果が大きくなり、他の符号化モードと比較して符号化効率が一層向上する。
【０１３３】
図１２は、実施の形態１から３に共通する復号装置３００の構成図である。これらの機能ブロックもハードウエアのみ、ソフトウエアのみ、またはそれらの組み合わせによっていろいろな形で実現することができる。
【０１３４】
復号装置３００は、符号化装置１００により符号化された符号化ストリームの入力を受け取り、符号化ストリームを復号して出力画像を生成する。
【０１３５】
可変長復号部３１０は、入力された符号化ストリームを可変長復号し、復号された画像データを逆量子化部３２０に供給し、動きベクトル情報を動き補償部３６０に供給する。
【０１３６】
逆量子化部３２０は、可変長復号部３１０により復号された画像データを逆量子化し、逆ＤＣＴ部３３０に供給する。逆量子化部３２０により逆量子化された画像データはＤＣＴ係数である。逆ＤＣＴ部３３０は、逆量子化部３２０により逆量子化されたＤＣＴ係数を逆離散コサイン変換（ＩＤＣＴ）することにより、元の画像データを復元する。逆ＤＣＴ部３３０により復元された画像データは、加算器３１２に供給される。
【０１３７】
加算器３１２は、逆ＤＣＴ部３３０から供給された画像データが、Ｉフレームである場合、そのＩフレームの画像データをそのまま出力するとともに、ＰフレームやＢフレームの予測画像を生成するための参照画像として、フレームバッファ３８０に格納する。
【０１３８】
加算器３１２は、逆ＤＣＴ部３３０から供給された画像データが、Ｐフレームである場合、その画像データは差分画像であるから、逆ＤＣＴ部３３０から供給された差分画像と動き補償部３６０から供給される予測画像を加算することにより、元の画像データを復元し、出力する。
【０１３９】
動き補償部３６０は、可変長復号部３１０から供給される動きベクトル情報と、フレームバッファ３８０に格納された参照画像を用いて、ＰフレームまたはＢフレームの予測画像を生成し、加算器３１２に供給する。改良ダイレクトモードで符号化されたＢフレームを復号するための動き補償部３６０の構成と動作を説明する。
【０１４０】
図１３は、動き補償部３６０の構成図である。動き補償予測部３６２は、フレーム間予測符号化されたフレームについて動き補償を行って、予測画像を加算器３１２に与える。また、動き補償予測部３６２は、双方向予測フレームの後方参照先となるフレームの動き補償を行った場合、各単位領域における動きベクトルｍｖＣｏｌを動きベクトル保持部３６４に保存する。
【０１４１】
基準ベクトル取得部３６８は、双方向予測フレームの復号対象の単位領域について、可変長復号部３１０から復号された基準ベクトル選択情報を受け取り、基準ベクトル選択情報を参照して、動きベクトル保持部３６４に保持された後方参照フレームの中から基準ベクトルｍｖＣｏｌ’を取得する。基準ベクトル選択情報には、基準ベクトルとして参照すべき後方参照フレームの動きベクトルの属する単位領域の番号や、参照すべき後方参照フレームの動きベクトルが複数ある場合の優先順位の番号などが含まれ、後方参照フレームの動きベクトルから当該復号対象の単位領域に適用すべき基準ベクトルを特定可能である。
【０１４２】
基準ベクトル取得部３６８は、取得した基準ベクトルｍｖＣｏｌ’を動き補償予測部３６２に与える。動き補償予測部３６２は、基準ベクトル取得部３６８から与えられた基準ベクトルを双方向予測フレームの復号対象の単位領域に適用し、可変長復号部３１０から取得した差分ベクトルΔＶを用いて、復号対象の単位領域の順方向動きベクトルｍｖＬ０と逆方向動きベクトルｍｖＬ１を求める。動き補償予測部３６２は、求めた順方向動きベクトルｍｖＬ０と逆方向動きベクトルｍｖＬ１により、復号対象の単位領域を動き補償し、予測画像を生成する。
【０１４３】
本実施の形態の復号装置３００によれば、双方向予測フレームの復号対象の単位領域を復号する際に、既に復号された参照フレームの動きベクトルの内、双方向予測フレームの当該復号対象の単位領域を通過する動きベクトルを基準ベクトルとして動き補償を行うため、基準ベクトルと当該復号対象の単位領域の実際の動きベクトルの誤差が小さく、高い精度の動き補償を行って、高画質で動画を再生することができる。
【０１４４】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１４５】
上記の説明では、表示時間の前後のＰフレームを用いた双方向予測によりＢフレームを動き補償する場合のダイレクトモードを改良した改良ダイレクトモードを説明したが、本実施の形態の符号化装置１００の動き補償部６０による改良ダイレクトモードは、必ずしも時間前後の参照画像を用いる場合に限定されない。過去の２枚のＰフレーム、未来の２枚のＰフレームを用いた線形予測において、同様に、２つの差分ベクトルを用いて補正を行うようにしてもよい。
【０１４６】
本発明の改良ダイレクトモードによる直接予測と、従来からある前方予測、後方予測、双方向予測、フレーム内予測とを適宜切り替えて用いてもよい。フレーム毎もしくは単位領域毎に最適な予測方法を選ぶことにより、より効率のよい符号化が可能となる。
【図面の簡単な説明】
【０１４７】
【図１】実施の形態１に係る符号化装置の構成図である。
【図２】通常のダイレクトモードによる動き補償の手順を説明する図である。
【図３】通常のダイレクトモードによる動き補償の課題を具体的な例で説明する図である。
【図４】図１の動き補償部の構成を説明する図である。
【図５】図４の動きベクトル保持部に記憶される後方参照フレームの各単位領域の動きベクトルを説明する図である。
【図６】図４の通過領域番号保持部に記憶される通過領域に関する情報を説明する図である。
【図７】図４の動き補償部により改良ダイレクトモードによる動き補償を実行する手順を説明する図である。
【図８】図７の改良ダイレクトモードによる動き補償の効果を具体的な例で説明する図である。
【図９】実施の形態２に係る通過領域番号保持部に記憶される通過領域に関する情報を説明する図である。
【図１０】実施の形態３に係る動き補償部の構成を説明する図である。
【図１１】双方向予測フレームの対象単位領域を通過する後方参照フレームの動きベクトルの属する単位領域と制約領域の関係を説明する図である。
【図１２】実施の形態１から３に係る復号装置の構成図である。
【図１３】図１２の動き補償部の構成図である。
【符号の説明】
【０１４８】
１０  ブロック生成部、  １２  差分器、  １４  加算器、  ２０  ＤＣＴ部、  ３０  量子化部、  ４０  逆量子化部、  ５０  逆ＤＣＴ部、  ６０  動き補償部、  ６２  動きベクトル探索部、  ６４  動きベクトル保持部、  ６６  通過領域番号保持部、  ６８  基準ベクトル予測部、  ８０  フレームバッファ、  ９０  可変長符号化部、  １００  符号化装置、  ３００  復号装置、  ３１０  可変長復号部、  ３１２  加算器、  ３２０  逆量子化部、  ３３０  逆ＤＣＴ部、  ３６０  動き補償部、  ３８０  フレームバッファ、  ３６２  動き補償予測部、  ３６４  動きベクトル保持部、  ３６８  基準ベクトル取得部。
【図１】
2007067731.tif 000003
【図２】
2007067731.tif 000004
【図３】
2007067731.tif 000005
【図４】
2007067731.tif 000006
【図５】
2007067731.tif 000007
【図６】
2007067731.tif 000008
【図７】
2007067731.tif 000009
【図８】
2007067731.tif 000010
【図９】
2007067731.tif 000011
【図１０】
2007067731.tif 000012
【図１１】
2007067731.tif 000013
【図１２】
2007067731.tif 000014
【図１３】
2007067731.tif 000015