(57)【特許請求の範囲】
【請求項１】
動画像の復号化方法であって、
符号化側から復号化側へ復号対象ブロックの動きベクトル情報が伝送されない予測モードである第１の予測モードと第２の予測モードとを有し、
前記第１の予測モードと前記第２の予測モードとをスライス単位で切り替え可能な復号化ステップを備え、
前記第１の予測モードによる復号化を行う際の前記復号化ステップには、
前方、後方の各参照方向について、復号対象ブロックに隣接する複数の隣接ブロックが参照する参照フレームについて、異なる複数の参照フレームが含まれる場合には、該複数の参照フレームのうちの１つの参照フレームを前記予測モードで用いる参照フレームとして決定し、１つの参照フレームのみが含まれる場合には、該１つの参照フレームを前記予測モードで用いる参照フレームとして決定し、参照フレームが存在しない場合には、予め定められた１つのフレームを前記予測モードで用いる参照フレームとして決定することにより、いずれの場合であっても、前記複数の隣接ブロックが参照する参照フレームまたは前記予め定められた１つのフレームのうちの１つの参照フレームを前記第１の予測モードで用いる参照フレームとして決定する参照フレーム決定処理と、
前記第１の予測モードで用いる動きベクトルを算出する動きベクトル算出処理とを含み、
前記第２の予測モードによる復号化を行う際の前記復号化ステップには、
前方、後方の各参照方向について、前記第２の予測モードで用いる参照フレームを決定する参照フレーム決定処理と、
復号対象ブロックを含むフレームに時間的に後に位置するフレームにおいて、前記復号対象ブロックと空間的に同一位置のブロックが有する前方動きベクトル情報に基づいて、前記第２の予測モードで用いる動きベクトルを算出する動きベクトル算出処理と、を含む
ことを特徴とする動画像復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮動画像データの符号化・復号化技術に係り、特にブロック単位での符号・復号化の技術に関する。
【背景技術】
【０００２】
ブロック単位で符号化・復号化処理を行う動画像の符号化・復号化方法の概要について説明する。動画像の１フレームは、図３に示すように、１個の輝度信号（Ｙ信号：６１）と２個の色差信号（Ｃｒ信号：６２，Ｃｂ信号：６３）にて構成されており、色差信号の画像サイズは縦横とも輝度信号の１／２となる。一般のビデオ規格では、動画像の各フレームを図３に示すような小ブロックに分割し、マクロブロックと呼ばれるブロック単位で再生処理を行う。図５にマクロブロックの構造を示す。マクロブロックは１６ｘ１６画素の１個のＹ信号ブロック３０と、それと空間的に一致する８ｘ８画素のＣｒ信号ブロック３１ならびにＣｂ信号ブロック３１にて構成されている。
【０００３】
ビデオの符号化は、上記に示したマクロブロック単位で処理される。符号化方法には、大きく分けて２種類あり、それぞれ、イントラ符号化（イントラモード）、予測符号化（インターモード）と呼ばれている。イントラ符号化は、符号化対象の入力マクロブロック画像に対して、あるいは入力マクロブロック画像に空間予測を施して生成した予測マクロブロック画像と入力マクロブロック画像との間で差分を取った誤差マクロブロック画像に対してＤＣＴを施し、各変換係数を量子化・符号化する空間方向のデータ圧縮方法である。このイントラ符号化は、前フレームに似通った部分がないマクロブロック（第１符号化フレームも含む）や、ＤＣＴに伴う蓄積演算誤差を解消したい部分等に配置される。
【０００４】
予測符号化のアルゴリズムは、ＭＣ−ＤＣＴ（動き補償−離散コサイン変換）と呼ばれている。動き補償とは、参照フレームから対象マクロブロックの内容と似通った部分を検索し、その動き量（動きベクトル）を符号化する時間方向の圧縮技術である。通常は、マクロブロックを更に小ブロックに分割し、小ブロック毎に動きベクトルを算出する。例えば、ＭＰＥＧ−４  Ｐａｒｔ  １０（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）では、動き補償を行う際のマクロブロック分割タイプ（輝度成分）を図７のように考える。基本はタイプ５１〜タイプ５４の４種類である。タイプ５４の場合には、４個の８×８ブロック５４−０〜５４−３それぞれについて、更にタイプ５４ａ，５４ｂ，５４ｃ，５４ｄとイントラ符号化の５種類から選択する構造となっている。各小ブロックにおける動きベクトルの検出方法としては、ブロック内の予測誤差信号の絶対値和あるいは２乗誤差和が小さい部分を選択する。演算速度を重要とする場合には絶対値和、符号化効率を追求する場合には２乗誤差和を使用する。さらに、符号化効率を追求する場合には符号量を２乗誤差和の評価値に換算し、予測誤差と符号量の両者を用いて最適な符号化モードと動き量を計算する方法が適用されることもある。
【０００５】
図４に１ブロックにおける動き補償の処理構造を示す。図４は、太枠で囲んだ現フレーム７１の輝度信号ブロック７２について、前フレーム７３（参照フレーム）上の予測ブロック７５と動きベクトル７６を示した図である。動きベクトル７６とは、現フレームの太枠ブロックに対して空間的に同位置に相当する前フレーム上のブロック７４（破線）から、前フレーム上の予測ブロック７５領域までの移動分を示している（色差信号用の動きベクトル長は、輝度信号の半分とし、符号化はしない）。この動き補償の後、複数の予測ブロックから構成される予測マクロブロック画像と入力マクロブロック画像との間で差分を取った誤差マクロブロック画像に対してＤＣＴを施し、各変換係数を量子化・符号化する。さらに検出したマクロブロック内の動きベクトルも符号化される。隣接するブロック間の動きベクトルは近い値を持つため、通常、隣接ブロックの動きベクトルとの差分値を符号化する。
【０００６】
予測符号化の動き補償方法としては、時間的に過去のフレームを参照フレームとしてＭＣを行う前方向予測符号化のほかに、時間的に過去と未来のフレームを参照フレームとしてＭＣを行う双方向予測符号化がある。上記に示した前方向予測符号化の動き補償では、前方予測のみを扱うが、双方向符号化の動き補償では、前方予測（Ｆｏｒｗａｒｄ  Ｐｒｅｄｉｃｔｉｏｎ）の他に、後方予測（Ｂａｃｋｗａｒｄ  Ｐｒｅｄｉｃｔｉｏｎ）、前方予測ブロックと後方予測ブロック内の各画素に内挿処理を施して内挿予測ブロックを生成する双方向予測（ｂｉ−ｄｉｒｅｃｔｉｏｎａｌ  Ｐｒｅｄｉｃｔｉｏｎ）、ならびに時間的に未来のフレームから過去のフレームへの動きベクトルを利用して双方向予測を行う直接予測（Ｄｉｒｅｃｔ）を扱う。前方予測、後方予測ならびに双方向予測モードでは、前方向の動きベクトルに対応する動きベクトル、後方向の動きベクトルに対応する動きベクトル、前方向の動きベクトルと後方向の動きベクトルに対応する動きベクトルを、それぞれ符号化するが、このＤｉｒｅｃｔモードでは動きベクトルの符号化は必要としない。図９にＤｉｒｅｃｔモードの予測概念を示す。図に示すように、まず、現フレーム１２０上の予測対象ブロック１２１と空間的に同一位置にあたる後方向の参照フレーム１３０上のブロック（１３１，ｃｏｌｌｏｃａｔｅｄ−ｂｌｏｃｋ）の前方向動きベクトル１３２を時間的なフレーム位置の割合で前方向動きベクトル１２２と後方向動きベクトル１２３に換算する。そして、これらの換算動きベクトルを用いて双方向予測と同様の内挿処理を施す。
【０００７】
全てのマクロブロックに対してイントラ符号化を適用したフレームをＩ−ｐｉｃｔｕｒｅ、前方向予測符号化あるいはイントラ符号化にて構成されるフレームをＰ−ｐｉｃｔｕｒｅ、双方向符号化あるいはイントラ符号化にて構成されるフレームをＢ−ｐｉｃｔｕｒｅと呼ぶ。
【０００８】
ここまでは、一般的な符号化・復号化方法について説明してきたが、近年の符号化・復号化方法では、選択の自由度を広げる機能が適用されている。以下に、新しい機能についていくつか説明する。これらの機能は、ＭＰＥＧ−４  Ｐａｒｔ  １０（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）でも検討されている。
【０００９】
１．複数参照フレーム
上記では、動き補償に用いる参照フレームの数をＰ−ｐｉｃｔｕｒｅで１枚、Ｂ−ｐｉｃｔｕｒｅで過去フレーム（ｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ）と未来フレーム（ｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ）の２枚としてきた。しかしながら、過去方向と未来方向の参照フレームとして、それぞれ複数枚を用意し、マクロブロック単位やマクロブロックを分割した小ブロック単位で異なる参照フレームを選択する方法がある。また、従来は、参照フレームは、Ｉ−ｐｉｃｔｕｒｅかＰ−ｐｉｃｔｕｒｅであったが、Ｂ−ｐｉｃｔｕｒｅをｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅとして選択することも可能とされている。
【００１０】
２．２方向参照フレーム予測
複数参照フレームにおけるｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅの候補に、時間的に過去方向のフレームを含めることを可能とする。この方法ではｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅがすべて時間的に過去方向のフレームであることも許される。そのため、総称としてＢｉ−ｄｉｒｅｃｔｉｏｎａｌの替わりに、Ｂｉ−ｐｒｅｄｉｃｔｉｖｅという言葉が用いられる。２個の参照フレーム１４０，１５０が共に時間的に過去のフレームまたは共に未来のフレームの場合には、現フレームから遠い参照フレーム１５０に対する動きベクトル１２７の符号化方法が変更される。図１０に示すように、現フレーム１２１に近い参照フレーム１４０に対する動きベクトル１２４を時間的なフレーム位置の割合で換算した動きベクトル１２５と動きベクトル１２７との差分ベクトル１２６が水平・垂直成分毎に符号化される。
【００１１】
３．符号化／復号化順序の変更
従来は、各フレームの処理順序はＩ−ｐｉｃｔｕｒｅとＰ−ｐｉｃｔｕｒｅは表示順で、時間的に２個のＩ／Ｐ−ｐｉｃｔｕｒｅ間に位置する連続するＢ−ｐｉｃｔｕｒｅが後者のＩ／Ｐ−ｐｉｃｔｕｒｅの直後に続くという図１１のフォーマットに従っていた。しかしながら、新しい機能では、許容される表示遅延の範囲であれば、この処理順に限定されない。また、Ｂｉ−ｐｒｅｄｉｃｔｉｖｅの概念を使用する場合には、Ｂ−ｐｉｃｔｕｒｅは、後方予測のための参照フレームを持たない場合でも発生し得る。なお、上記の表示順序は、ビデオデータのデータヘッダ情報として符号化されるか、あるいはビデオデータの上位概念にあたり、ビデオデータとオーディオ・音声データの同期処理や、データの分割配信を司る通信レイヤやファイルフォーマットが管理しているため、符号化・復号化処理順序の変更に伴う表示ずれの問題は発生しない。
【００１２】
４．フレーム識別
従来は、各フレームについて、表示位置を示す情報が符号化されていた。しかしながら、この表示位置情報は、実際に表示時に適用される通信パケットやファイルフォーマットに含まれる時刻情報と一致しない場合がある。この問題を避けるために、ビデオデータでは、各フレームを処理番号のみで管理する方法も検討されている。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかし、新しい機能を導入した動画像符号化・復号化方式では、ｄｉｒｅｃｔモードに使用する後方向の参照フレームが存在しない場合や、複数の後方向の参照フレームからデフォルトで設定される後方向の参照フレームが未来のフレームでない場合が考えられる。このようなフレームでは、ｄｉｒｅｃｔモードは適応できない。また、各フレームの管理が復号順の番号で管理されている場合には、後方向の参照フレームが利用可能か否かの判断ができない。また、ｄｉｒｅｃｔモードに使用する後方向の参照フレームとしてＢ−ｐｉｃｔｕｒｅが選択されるような場合には、ｃｏｌｌｏｃａｔｅｄ  ｂｌｏｃｋが前方向の動きベクトルを持たない場合が考えられる。このようなブロックでは、ｄｉｒｅｃｔモードは適応できない。
【００１４】
以上の課題に鑑み、本発明の目的は、ｄｉｒｅｃｔモードを効率よく適用できる符号化・復号化方法を提供することである。
【課題を解決するための手段】
【００１５】
デフォルトで設定される後方向の参照フレームがｄｉｒｅｃｔモードに利用可能であるか否かを示す情報をデコーダに提供する。ｃｏｌｌｏｃａｔｅｄ  ｂｌｏｃｋが利用可能な前方向動きベクトルを持たない場合に適用できる代価方式への切り換え手順と代価方式を提供する。
【００１６】
さらに、動きベクトルに関する情報を受け取り、記録される参照画像と該動きベクトルに関す情報とを用いて動き補償を行って予測画像を合成する動画像の符号化及び復号化方法について。動き補償が動きベクトルの復号を伴わないモードを含む複数のブロックモードを有し、予測方向を表す予測モードを選択し、該予測モードにおける各予測方向の予測で参照するフレームを複数の参照フレームの候補から選択し、該予測モードで用いる動きベクトルの情報を選択する方法。特に、上記予測モードを、現在のブロックに隣接するブロックが動きベクトルを有するか否かに基づいて行うこと。
【００１７】
又、参照するフレームは、ｉｎｄｅｘ番号にて識別された複数の参照フレームから１個の参照フレームを選択するものであって、複数の上記隣接ブロックが上記予測方向の予測を適用している場合には何れかの上記隣接ブロックの使用する参照フレームを選択し、１個の上記隣接ブロックのみが上記予測方向の予測を適用している場合には該１個の隣接ブロックが適用するｉｎｄｅｘ番号の参照フレームを選択し、上記隣接ブロックが上記選択された予測モードを採用していない場合にはｉｎｄｅｘ番号が０番の参照フレームを選択することを開示する。
【００１８】
又、複数の上記ブロック単位に付されるヘッダに、ブロックモードとして上記動きベクトルの復号を伴わないモードが選択された場合の予測手順を決める情報を含める方法も開示する。
【００１９】
更に、上記方法を適用した装置等も開示する。
【発明の効果】
【００２０】
本願の上記構成により、ｄｉｒｅｃｔモードを適用できるか否かの判断が明確となる。又、ｄｉｒｅｃｔモードとその代用モードを有効的に利用することが可能となり、予測効率が向上しデータ量を削減することもできる。
【図面の簡単な説明】
【００２１】
【図１】本発明におけるピクチャヘッダデータシンタックスの例を示した図である。
【図２】本発明におけるピクチャヘッダデータシンタックスの第２の例を示した図である。
【図３】マクロブロック分割を説明する図である。
【図４】動き補償の原理を説明する図である。
【図５】マクロブロックに含まれる有意ＤＣＴ係数の有無を符号化する際に利用するブロック構成を示す図である。
【図６】ＤＣＴ処理ならびに符号化処理を行うブロック単位を示すマクロブロック構成を示す図である。
【図７】動き補償を行うブロック単位を示す輝度ブロックの構成を示す図である。
【図８】予測動きベクトルの生成手段を説明する図である。
【図９】Ｄｉｒｅｃｔモードにおける双方向予測のための動きベクトル生成方法を示した図である。
【図１０】２枚の前方向参照フレームを用いた動きベクトル算出方法を示した図である。
【図１１】復号順と表示順の比較例を示した図である。
【図１２】本発明における予測方法の切り換え手順の例を示した図である。
【図１３】本発明における予測方法の切り換え手順の第２の例を示した図である。
【図１４】本発明における代用モードの全体構成を示した図である。
【図１５】本発明における代用モードの予測モード選択処理を示した図である。
【図１６】本発明における代用モードの参照フレーム選択処理を示した図である。
【図１７】本発明における代用モードの動きベクトルの選択処理を示した図である。
【図１８】予測フレームのデータシンタックスの例を示した図である。
【図１９】ユニバーサル符号化表の構成例を示した図である。
【図２０】Ｐ−ｐｉｃｔｕｒｅにおけるマクロブロックタイプの符号表と８×８ブロック分割タイプの符号表の例を示した図である。
【図２１】Ｂ−ｐｉｃｔｕｒｅにおけるマクロブロックタイプの符号表と８×８ブロック分割タイプの符号表の例を示した図である。
【図２２】本発明における符号化処理のブロック図の例を示した図である。
【図２３】本発明における復号化処理のブロック図の例を示した図である。
【図２４】本発明におけるピクチャヘッダデータシンタックスの第３の例を示した図である。
【図２５】本発明における予測方法の切り換え手順の第３の例を示した図である。
【図２６】本発明の符号化方法を実施する符号化装置における予測パラメータ算出器の例を示した図である。
【図２７】本発明の復号方法を実施する復号装置における予測パラメータ算出器の例を示した図である。
【図２８】本発明の符号化方法を実施するソフトウェア符号化器の例を示した図である。
【図２９】本発明の復号方法を実施するソフトウェア復号器の例を示した図である。
【図３０】本発明の符号化方法により生成された符号化ビットストリームを記録した光ディスクの例を示した図である。
【図３１】本発明の符号化・復号化方法を使用する装置の具体例を示した図である。
【発明を実施するための形態】
【００２２】
以下、図を用いて本発明の実施の形態を説明する。
【実施例１】
【００２３】
以下、フレームヘッダからマクロブロックデータに至る処理の流れを順に説明する。
【００２４】
図１にフレームヘッダ情報の例を示す。また、以下にＣ言語によるピクチャヘッダデータのデコード処理例を示す。
picture_layer()
{
picture_structure
frame_number
reference_picture_selection_layer()
if(coding_type() == B-picture){
direct_mv_scale_bwd_dir[index]
if(direct_mv_scale_bwd_dir[index]){ // 未来方向
direct_mv_scale_bwd[index]    
for(index=0; index<number of forward reference; index++){
direct_mv_scale_fwd_dir[index]
if(direct_mv_scale_fwd_dir[index])  // 過去方向
direct_mv_scale_fwd[index]
}
}
}
}
ｐｉｃｔｕｒｅ＿ｓｔｒｕｃｔｕｒｅ２０では、各ｐｉｃｔｕｒｅのスキャン構造（フレーム／フィールド）が示される。ｆｒａｍｅ＿ｎｕｍｂｅｒ２１には、そのフレームの識別番号が示される。このｆｒａｍｅ＿ｎｕｍｂｅｒの付け方には大きく２種類ある。１つは、時刻情報を含む場合である。この場合には、Ｉ，Ｐ−ｐｉｃｔｕｒｅでは直前のＩまたはＰ−ｐｉｃｔｕｒｅとのフレーム間隔、Ｂ−ｐｉｃｔｕｒｅでは時間的に過去の直前ＩまたはＰ−ｐｉｃｔｕｒｅとのフレーム間隔がｆｒａｍｅ＿ｎｕｍｂｅｒとなる（一般にはＴｅｍｐｏｒａｌ  ｒｅｆｅｒｅｎｃｅ；ＴＲと呼ばれている）。２つめは、単純に復号する順番を示す場合である。
【００２５】
ｒｅｆｅｒｅｎｃｅ＿ｐｉｃｔｕｒｅ＿ｓｅｌｅｃｔｉｏｎ＿ｌａｙｅｒ（）では、現フレームの動き補償処理に使用可能な複数参照フレームのｆｒａｍｅ＿ｎｕｍｂｅｒ（ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ  ｓｅｔ）とその識別番号が示される。例えば、参照フレームが５枚の場合には、ｆｒａｍｅ  ｎｕｍｂｅｒ１０の現ｐｉｃｔｕｒｅの対して以下のようにｉｎｄｅｘ０〜ｉｎｄｅｘ４へのｆｒａｍｅ＿ｎｕｍｂｅｒが割り当てられる。
Ｉｎｄｅｘ０：９
Ｉｎｄｅｘ１：８
Ｉｎｄｅｘ２：７
Ｉｎｄｅｘ３：６
Ｉｎｄｅｘ４：５
なお、ピクチャタイプがＰ−ｐｉｃｔｕｒｅの場合には、前方向の参照フレーム（ｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ  ｓｅｔ）、Ｂ−ｐｉｃｔｕｒｅの場合には、前方向と後方向の参照フレーム（ｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ  ｓｅｔとｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ  ｓｅｔ）のｆｒａｍｅ＿ｎｕｍｂｅｒが復号される。この際、前方向と後方向の参照フレーム数は個別に設定できるため、異なる場合もある。ピクチャタイプがＩ−ｐｉｃｔｕｒｅまたはＰ−ｐｉｃｔｕｒｅの場合には、これらのｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ  ｓｅｔ情報に続くバイトアライン情報（データの区切りをバイト単位に併せるための情報）にてピクチャレイヤは終了となる。以降のピクチャヘッダデータは、ピクチャタイプがＢ−ｐｉｃｔｕｒｅの場合に発生する。なお、本実施例では、上位のネットワーク・通信関連情報が含まれるレイヤに記載されているものと考える。
【００２６】
ｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｂｗｄ＿ｄｉｒ２８は、ｄｉｒｅｃｔモード用に指定される後方参照フレームが現フレームに対して未来に位置しているか過去に位置しているかを示す情報である。ｄｉｒｅｃｔモード用に指定される後方参照フレームは、通常、ｉｎｄｅｘ０に割り当てられたｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅである。データ２８が後方参照フレーム（ここでは、ｉｎｄｅｘ０に割り当てられたｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ）が現フレームに対して過去に位置していることを示している場合にはｄｉｒｅｃｔ  ｍｏｄｅが使用できず、データ２８が後方参照フレームに対して現フレームが未来に位置していることを示している場合にはｄｉｒｅｃｔ  ｍｏｄｅが使用できる。したがって、このデータ２８にて、ｉｎｄｅｘ０のｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅがｄｉｒｅｃｔモードに使用できるか否かが明確に判断できる。また、ｄｉｒｅｃｔモードが実施できない場合には、後述する代用モードを適用する必要があり、そのためのメモリ配置等の準備面で、復号作業の効率化が促進できる。さらに、ｆｒａｍｅ＿ｎｕｍｂｅｒが時刻情報を持たない場合において、ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅとｃｕｒｒｅｎｔ  ｐｉｃｔｕｒｅ間の関係を示す情報を効率良く送ることが可能となる。ｄｉｒｅｃｔモードに関するピクチャ位置情報には、ｄｉｒｅｃｔ  ｍｏｄｅ以外にも使用されるものと、使用されないものがある。後者に関しては、ｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｂｗｄ＿ｄｉｒにより符号化を避けることが可能となる。
【００２７】
具体的には、図１に示すように、ｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｂｗｄ＿ｄｉｒがｄｉｒｅｃｔモード使用可能、すなわち現フレームに対して未来方向に位置することを示すときには、データ２６，２７，２９が符号化されるが、ｄｉｒｅｃｔモード使用不可であることを示すときにはこれらのデータは符号化されない。
【００２８】
ｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｂｗｄ２９は、ｃｕｒｒｅｎｔ  ｐｉｃｔｕｒｅとｉｎｄｅｘ０のｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ間のフレーム間隔を示す情報である（図９参照）。ｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｆｗｄ＿ｄｉｒ２６は、前方参照フレームが現フレームに対して未来に位置しているか過去に位置しているかを示す情報であり、ｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｆｗｄ２７は、ｃｕｒｒｅｎｔ  ｐｉｃｔｕｒｅとｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ間のピクチャ間隔を示す情報である（図９参照）。ｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｆｗｄについては、ｒｅｆｅｒｅｎｃｅ＿ｐｉｃｔｕｒｅ＿ｓｅｌｅｃｔｉｏｎ＿ｌａｙｅｒ（２２）にて指定されるｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅの数だけ符号化されている必要がある。但し、ｄｉｒｅｃｔモードを使用するには、前方向の参照フレームは現フレームに対して過去に位置している必要があるため、ｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｆｗｄ＿ｄｉｒ２６が未来方向を示すｉｎｄｅｘについては、ｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｆｗｄ２７は省略される。ｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｄｉｖｉｄｅｒは、ｉｎｄｅｘ０のｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅとｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ間のピクチャ間隔を示す情報である（図９参照）。従って、この情報もｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅの数だけ符号化されている必要があるが、ｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｆｗｄとｄｉｒｅｃｔ＿ｒｅｆｅｒｅｎｃｅ＿ｂｗｄから算出できるため、省略することも可能である。この情報もｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｆｗｄ＿ｄｉｒ２６が未来方向を示すｉｎｄｅｘについては、ｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｆｗｄ２７は省略される。
【００２９】
Ｂ−ｐｉｃｔｕｒｅの場合においても、バイトアライン情報（データの区切りをバイト単位に併せるための情報）にてピクチャレイヤは終了となる。
【００３０】
ｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｆｗｄやｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｂｗｄは、図１０に示されるｐｉｃｔｕｒｅ＿ｄｉｓｔａｎｃｅとしても使用できるため、図１を図１０の動きベクトル符号化にも拡張したデータシンタックスを図２に示す。
picture_layer()
{
picture_structure
frame_number
reference_picture_selection_layer()
if(coding_type() == B-picture){
for(index=0; index<number of forward reference; index++){
direct_mv_scale_fwd_dir[index]
direct_mv_scale_fwd[index]
}
for(index=0; index<number of backward reference; index++){
direct_mv_scale_bwd_dir[index]
direct_mv_scale_bwd[index]
}
}
}
Ｂ−ｐｉｃｔｕｒｅの場合について説明する。この場合には、現フレームで使用可能な全ての参照フレームについて、データ２６〜２９が符号化／復号化されるが、これらのデータは図１０に示した動きベクトルの符号化処理に利用するｐｉｃｔｕｒｅ＿ｄｉｓｔａｎｃｅの情報としても利用される。この図２でも図１と同じように、ｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｂｗｄ＿ｄｉｒ［０］がｄｉｒｅｃｔモードの使用可否を示す役割を果たすが、図２では、さらにデータ２６と２８の組み合わせにより、図１０の処理が使用可能であるか否かを示す。
【００３１】
図１０の動きベクトル符号化は、２本の動きベクトルに対応する２つの参照フレームが現フレームに対して同じ方向である場合に有効となる。そのため、ブロックで選択された２つのｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅのｉｎｄｅｘ番号に対応するデータ２６と２８の値が、現フレームに対して異なる方向に位置する２つの参照フレームの組み合わせである場合には、図１０の動きベクトル符号化方法ではなく、各動きベクトルを図８の方法で個別に符号化／復号化する。一方、ブロックで選択された２つのｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅのｉｎｄｅｘ番号に対応するデータ２６と２８の値が、現フレームに対して同じ方向に位置する２つの参照フレームの組み合わせである場合には、現フレームから離れた動きベクトルについては、図１０の方法が適用される。
【００３２】
ここまでは、ｄｉｒｅｃｔモードに使用するＢａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅをｉｎｄｅｘ０として説明してきた。しかしながら、ｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ  ｓｅｔからｉｎｄｅｘ０以外の番号をｄｉｒｅｃｔモードのｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅとして選択することも考えられる。例えば、図１と２のｄｉｒｅｃｔ＿ｒｅｆｅｒｅｎｃｅ＿ｉｄｘ＿ｂｗｄ２４のように、ｄｉｒｅｃｔモードに使用するｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅのｉｎｄｅｘ番号をピクチャレイヤで示すことにより、フレーム単位でｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅを変更することが可能となる。さらに、ｄｉｒｅｃｔ＿ｒｅｆｅｒｅｎｃｅ＿ｉｄｘ＿ｂｗｄ２４をｉｎｄｅｘ番号そのものではなく、ｉｎｄｅｘ番号に１を足した値とすることにより、値“０”にｄｉｒｅｃｔモードに使用できる後方参照フレームがｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ  ｓｅｔにないという意味を持たせることが可能となる。
【００３３】
次に図１８のマクロブロックレイヤシンタックス、図２０、２１のマクロブロックタイプコード表を用いて、マクロブロックデータの構造について説明する。符号化に使用する方法としては、１種類の可変長符号表のみを用いるＵｎｉｖｅｒｓａｌ  ＶＬＣ（ＵＶＬＣ）、固定長符号化と可変長符号化（各符号化要素に異なる符号表を用意）を組み合わせた符号化方法ならびに、算術符号化（Ｗｉｔｔｅｎ  ｅｔ  ａｌ．，”Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ  ｆｏｒ  Ｄａｔａ  Ｃｏｍｐｒｅｓｓｉｏｎ”，Ｃｏｍｍ．ｏｆ  ｔｈｅ  ＡＣＭ，３０（６），１９８７，ｐｐ．５２０−５４１）などが考えられるが、本実施例では、ＵＶＬＣと算術符号化を例として説明する。図１１の表８１がＵＶＬＣの構成を示しており、Ｘｎの値は‘０’または‘１’となる。表８２に、実際の可変長符号表の例を示す。算術符号化の具体的な方法としては、各符号の意味を数ビットのバイナリーデータに置き換え、各ビットを各々の０と１の発生確率を示す生起確率モデルに応じて符号化する方法を考える。この方法は、ＣＡＢＡＣ（Ｃｏｎｔｅｘｔ−ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）と呼ばれている。
【００３４】
図１８は、Ｂ−ｐｉｃｔｕｒｅにおけるマクロブロックデータのシンタックス構造を示している。この図を用いて、Ｂ−ｐｉｃｔｕｒｅならびにＰ−ｐｉｃｔｕｒｅのマクロブロックデータ構造について説明する。なお、Ｉ−ｐｉｃｔｕｒｅについては、本願の特徴に含まれないため説明を省略する。
【００３５】
ｍｂ＿ｓｋｉｐ＿ｒｕｎ１１では、連続するＳＫＩＰモード数をランレングス符号化（連続する０の数を符号化、１つ前のマクロブロックのタイプがＳＫＩＰモードでない場合には、連続するＳＫＩＰモードの数をゼロとする）したデータで、エントロピー符号化の方法としてＵＶＬＣを用いる場合にのみ発生する。ＳＫＩＰモードとは、予測誤差信号を符号化せず、予測ブロック画像をそのまま再生ブロック画像とするマクロブロックタイプである。
【００３６】
予測ブロック画像は、Ｐ−ｐｉｃｔｕｒｅではｉｎｄｅｘ０のｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅから予測ベクトル位置に相当するマクロブロック画像を切り出す方法、Ｂ−ｐｉｃｔｕｒｅではｄｉｒｅｃｔモードにて合成される。このＳＫＩＰモードは、低レート符号化にて多く選択されるモードであり、特にＢ−ｐｉｃｔｕｒｅでは選択される確率が高い。従って、ｄｉｒｅｃｔモードの予測性能は、低レートの符号化性能に直接影響する。
【００３７】
ＣＡＢＡＣを用いた符号化方法では、ｍｂ＿ｓｋｉｐ＿ｒｕｎ１１は使用せず、ＳＫＩＰモードもｍｂ＿ｔｙｐｅ１２にて扱う（表９１，９３のｃｏｄｅ  ｎｕｍｂｅｒ０の欄参照）。ｍｂ＿ｔｙｐｅ１２では、表９１（Ｐ−ｐｉｃｔｕｒｅ）または表９３（Ｂ−ｐｉｃｔｕｒｅ）に示されるマクロブロックモードからマクロブロック毎に１つのモードが選択され、符号化される。
【００３８】
表９１では、ｃｏｄｅ  ｎｕｍｂｅｒ６，７に示されているＩｎｔｒａＭ×ＮのＭ，Ｎは空間予測を行う際の小ブロックサイズを示しており、Ｍ×Ｎは動き補償を行う際の小ブロックサイズ（図７のモード１〜モード４）を示している。但し、ｃｏｄｅ  ｎｕｍｂｅｒ５に示されるモードはＣＡＢＡＣの場合には使用しない。
【００３９】
表９３では、ｃｏｄｅ  ｎｕｍｂｅｒ２３，２４に示されているＩｎｔｒａＭ×ＮのＭ，Ｎは空間予測を行う際の小ブロックサイズ、Ｍ×Ｎは動き補償を行う際の小ブロックサイズ（図７のモード１〜モード４に対応）を示しており、ｄｉｒｅｃｔはｄｉｒｅｃｔモード（Ｄｉｒｅｃｔ（ＣＢＰ＝＝０）は、ＣＡＢＡＣ適用時のＳＫＩＰモード）を示している。表９３のＢｌｏｃｋ１ならびにＢｌｏｃｋ２は、図７のモード２またはモード３における２個の小ブロックを識別しており、各小ブロックの予測方向がＦｏｒｗａｒｄ（前方予測）、Ｂａｃｋｗａｒｄ（後方予測）、Ｂｉ−ｐｒｅｄｉｃｔｉｖｅ（２方向参照フレーム予測）のいずれであるかを示している。
【００４０】
ここで、ｄｉｒｅｃｔモードについて説明を加える。ｍｂ＿ｓｋｉｐ＿ｒｕｎ１１とｍｂ＿ｔｙｐｅ１２の選択候補にｄｉｒｅｃｔモードが含まれているが、複数参照フレーム機能や２参照フレームの機能を適用する方式では、ｄｉｒｅｃｔモードが適用できないケースが考えられる。そこで、本発明では図１２に示すように、条件に応じて予測方法を切り換える手順を用いる。
【００４１】
最初に、ピクチャヘッダ内のｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｂｗｄ＿ｄｉｒ（図１）またはｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｂｗｄ＿ｄｉｒ［０］（図２）にて、ｃｕｒｒｅｎｔ  ｐｉｃｔｕｒｅにｄｉｒｅｃｔモードが使用可能か否かをチェックする（３０１）。処理３０１にて使用不可と判定された場合には、ｃｏｌｌｏｃａｔｅｄ  ｂｌｏｃｋのｆｏｒｗａｒｄ  ＭＶを必要としない代用モード（詳細は後述）にて予測マクロブロックを作成する（３０４）。処理３０１にて使用可能と判定された場合には、８ｘ８ブロック毎に予測方法の選定を行う。ここで８ｘ８ブロックとしたのは、図７のブロック分割方法では、参照フレームと予測方向選択の最小単位が８ｘ８ブロックとされているためである。具体的には、８ｘ８ブロックに対応するｃｏｌｌｏｃａｔｅｄ  ｂｌｏｃｋにｆｏｒｗａｒｄ  ＭＶを持つ予測モードが適用されているか否かをチェックする（３０２）。そして、適用されていると判定された場合には、ｄｉｒｅｃｔモードにて予測ブロックを作成し（３０３）、適用されていないと判定された場合には、代用モードにて予測ブロックを作成する（３０４）。
【００４２】
処理３０２では、ｃｏｌｌｏｃａｔｅｄ  ８ｘ８  ｂｌｏｃｋについて、予測モードがｉｎｔｒａモードの場合、予測方向がｂａｃｋｗａｒｄ  ｐｒｅｄｉｃｔｉｏｎの場合、ｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅに対するｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｆｗｄ＿ｄｉｒ［ｉｎｄｅｘ］の値がｃｕｒｒｅｎｔ  ｐｉｃｔｕｒｅに対して後方向（未来方向）に位置することを示している場合、あるいはｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅがｃｕｒｒｅｎｔ  ｐｉｃｔｕｒｅのｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ  ｓｅｔに含まれていない場合に、ｄｉｒｅｃｔモード使用不可と判定する。
【００４３】
なお、図１２の処理３０２では、８ｘ８ブロック単位でｄｉｒｅｃｔモードの使用可否判定を実施しているが、これをマクロブロック単位で実施することも可能である。但し、この場合には、マクロブロック内のすべての予測ブロック、図７のブロック分割方法の場合には４個の８ｘ８ブロックのすべてが、ｄｉｒｅｃｔモード使用可能の状態である場合にのみ、ｄｉｒｅｃｔモード使用可能と判定される。
【００４４】
図１３は、ピクチャヘッダの構造にデータ２４が追加された場合について、予測方法を切り換える手順を示している。図１２と異なる点は、処理３０１が処理３０５に変更されている点であり、具体的には、チェックするｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｂｗｄ＿ｄｉｒのｉｎｄｅｘ番号が図１３のデータ２４にて設定した値とされている点である。
【００４５】
図１８の説明に戻る。ｍｂ＿ｔｙｐｅ１２にて８ｘ８（ｓｐｌｉｔ）が選択された場合には、図７のモード４に示される４個の８×８小ブロック５４−０〜５４−３について、それぞれ、８ｘ８  Ｐａｒｔｉｔｉｏｎ１３が発生する。具体的には、８ｘ８  Ｐａｒｔｉｔｉｏｎ１８では、表９２（Ｐ−ｐｉｃｔｕｒｅ）または表９４（Ｂ−ｐｉｃｔｕｒｅ）に示される８ｘ８  ｐａｒｔｉｔｉｏｎモードから各８ｘ８ブロックについて１つのモードが選択され、符号化される。
【００４６】
表９２では、ｃｏｄｅ  ｎｕｍｂｅｒ４に示されているＩｎｔｒａは空間予測を示しており、Ｍ×Ｎは動き補償を行う際の小ブロックサイズ（図７の８ｘ８  ｐａｒｔｉｔｉｏｎ１〜８ｘ８  ｐａｒｔｉｔｉｏｎ４）を示している。
【００４７】
表９４では、ｃｏｄｅ  ｎｕｍｂｅｒ１３に示されているＩｎｔｒａは空間予測の適用、Ｍ×Ｎは動き補償を行う際の小ブロックサイズ（図７の８ｘ８  ｐａｒｔｉｔｉｏｎ１〜８ｘ８  ｐａｒｔｉｔｉｏｎ４）を示しており、ｄｉｒｅｃｔはｄｉｒｅｃｔモードを示している。表９４のＰｒｅｄｉｃｔｉｏｎは、図７のモード４に属する各小ブロックの予測方向がＦｏｒｗａｒｄ（前方予測）、Ｂａｃｋｗａｒｄ（後方予測）、Ｂｉ−ｐｒｅｄｉｃｔｉｖｅ（２参照フレーム予測）のいずれであるかを示している。
【００４８】
８ｘ８  Ｐａｒｔｉｔｉｏｎ  １８にてｄｉｒｅｃｔモードが選択された場合においても、図１２または図１３と同様の予測方法切り換え手順が適応できる。しかしながら、８ｘ８  Ｐａｒｔｉｔｉｏｎ内のｄｉｒｅｃｔモードの予測性能はｄｉｒｅｃｔモードＭＢほど重要ではない。そこでより簡単な方法を適用することも可能である。例えば、処理３０２にてｃｏｌｌｏｃａｔｅｄ  ｂｌｏｃｋがＦｏｒｗａｒｄ  ＭＶを持っていないと判定される場合に、処理３０４の替わりに、Ｆｏｒｗａｒｄ  ＭＶを０ベクトル、ｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅならびにｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅのｉｎｄｅｘを０に設定した上でｄｉｒｅｃｔモードにて予測ブロックを生成する方法が考えられる。この際、ｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅが存在しない場合には、ｆｏｒｗａｒｄ  ｐｒｅｄｉｃｔｉｏｎのみで予測ブロックを生成すればよい。より簡単には、処理３０２にてｃｏｌｌｏｃａｔｅｄ  ｂｌｏｃｋがＦｏｒｗａｒｄ  ＭＶを持っていないと判定されるケースでは、符号化側にてｄｉｒｅｃｔモードの選択しない方法が考えられる。
【００４９】
ｍｂ＿ｔｙｐｅ１２と８ｘ８  Ｐａｒｔｉｔｉｏｎ１３の符号化方法については、ＵＶＬＣを利用する場合には、表９１〜９４のｃｏｄｅ  ｎｕｍｂｅｒに対応するコードを表８２から選択して符号化する。ＣＡＢＡＣを利用する場合には、表９１〜表９４のＢｉｎａｒｉｚａｔｉｏｎの欄に示されているビット列を各ビットの確率モデルを用いて算術符号化する。
【００５０】
ｒｅｆ＿ｉｎｄｅｘ＿ｆｗｄ１４は、動き補償に使用する前方向の参照フレームのｉｎｄｅｘ番号を示しており、当該マクロブロック内の各分割ブロック（図７の５１〜５４）について必要とされる。Ｉｎｄｅｘ番号はｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ  ｓｅｔから選択される。但し、ｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ  ｓｅｔに含まれる参照フレームが１枚のみの場合、ブロックタイプあるいはマクロブロックタイプがＳｋｉｐ，ｄｉｒｅｃｔまたはｉｎｔｒａのブロックの場合、ならびにｂｌｏｃｋ  ｐｒｅｄｉｃｔｉｏｎがｂａｃｋｗａｒｄの場合については、このコードは発生しない。
【００５１】
また、Ｐ−ｐｉｃｔｕｒｅにてｍｂ＿ｔｙｐｅとして表９１のｃｏｄｅ  ｎｕｍｂｅｒ５が選択された場合には、ｉｎｄｅｘ０のｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅが参照フレームとして自動的に選択されるため、このコードは発生しない。
【００５２】
ｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ  ｓｅｔがｉｎｄｅｘ０〜ｉｎｄｅｘ４の値を持つ場合を例として、符号化方法を考える。この例では、ｉｎｄｅｘ０〜ｉｎｄｅｘ４がそれぞれ、ｃｏｄｅ  ｎｕｍｂｅｒ０〜４に割り当てられる。ＵＶＬＣを利用する場合には、ｃｏｄｅ  ｎｕｍｂｅｒ０−４に対応するコードを表８２から選択して符号化／復号化される。ＣＡＢＡＣを利用する場合には、ｃｏｄｅ  ｎｕｍｂｅｒ０−４に対して、それぞれ１’，０１’，００１’，０００１’，００００１’のバイナリーデータを割り当て、ビット列と各ビットの確率モデルを用いて算術符号化する。
【００５３】
ｒｅｆ＿ｉｎｄｅｘ＿ｂｗｄ１５は、動き補償に使用する後ろ方向の参照フレームのｉｎｄｅｘ番号を示しており、当該マクロブロック内の各分割ブロック（図７の５１〜５４）について必要とされる。
【００５４】
Ｉｎｄｅｘ番号はｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ  ｓｅｔから選択される。但し、ピクチャの種類がＰ−ｐｉｃｔｕｒｅの場合、ｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ  ｓｅｔに含まれる参照フレームが１枚のみの場合、ブロックタイプあるいはマクロブロックタイプがｓｋｉｐ，ｄｉｒｅｃｔまたはｉｎｔｒａのブロックの場合、ならびにｂｌｏｃｋ  ｐｒｅｄｉｃｔｉｏｎがｆｏｒｗａｒｄの場合については、このコードは発生しない。符号化方法については、ｒｅｆ＿ｉｎｄｅｘ＿ｆｗｄと同じであるため、説明は割愛する。
【００５５】
ｍｖｄ＿ｆｗｄ１６は、ｍｂ＿ｔｙｐｅ１２と８ｘ８  Ｐａｒｔｉｔｉｏｎ１３がｆｏｒｗａｒｄ（ｂｉ−ｐｒｅｄｉｃｔｉｖｅも含む）に伴う動きベクトルを伴うマクロブロックであることを示す場合に発生し、マクロブロック内のｆｏｒｗａｒｄ  ＭＶの数だけ繰り返される。また、したがって、ｍｂ＿ｔｙｐｅ１２がＩｎｔｒａＭ×Ｎ、ＳＫＩＰ（Ｐ−ｐｉｃｔｕｒｅ）またはｄｉｒｅｃｔ（Ｂ−ｐｉｃｔｕｒｅ）の場合や、８ｘ８  Ｐａｒｔｉｔｉｏｎ１３がｉｎｔｒａまたはｄｉｒｅｃｔ（Ｂ−ｐｉｃｔｕｒｅ）の場合にはこのデータは発生しない。また、ｂｌｏｃｋ  ｐｒｅｄｉｃｔｉｏｎがｂａｃｋｗａｒｄの分割ブロックの場合（Ｂ−ｐｉｃｔｕｒｅ）にもこのデータは発生しない。同様にｍｖｄ＿ｂｗｄ１７は、ｍｂ＿ｔｙｐｅ１２と８ｘ８  Ｐａｒｔｉｔｉｏｎ１３がｂａｃｋｗａｒｄ（ｂｉ−ｐｒｅｄｉｃｔｉｖｅも含む）に伴う動きベクトルを伴うマクロブロックであることを示す場合に発生し、マクロブロック内のｂａｃｋｗａｒｄ  ＭＶの数だけ繰り返される。また、したがって、ピクチャタイプがＰ−ｐｉｃｔｕｒｅの場合、ｍｂ＿ｔｙｐｅ１２がＩｎｔｒａＭ×Ｎ、ｄｉｒｅｃｔの場合や、８ｘ８  Ｐａｒｔｉｔｉｏｎ１３がｉｎｔｒａまたはｄｉｒｅｃｔの場合にはこのデータは発生しない。また、ｂｌｏｃｋ  ｐｒｅｄｉｃｔｉｏｎがｆｏｒｗａｒｄの分割ブロックの場合にもこのデータは発生しない。ＣＢＰ１８は、図６に示される２４個のＤＣＴブロックについて、‘０’以外の量子化ＤＣＴ係数（有意係数）が１６個係数に含まれているか否かを示す符号化データである。
【００５６】
Ｒｅｓｉｄｕａｌ（）１９は、有意量子化ＤＣＴ係数の符号化データを示している。ＣＢＰにて有意係数が無いことが示されているブロックについては、符号化処理が省略される。したがって、ＣＢＰが０の場合には、Ｒｅｓｉｄｕａｌ（）は発生しない。さらに、ＣＢＰ１８とＲｅｓｉｄｕａｌ（）１９は、ｍｂ＿ｔｙｐｅ１２がｄｉｒｅｃｔ（ＣＢＰ＝＝０）のときには発生しない。
【００５７】
ここで、図７の分割タイプを例として、上記に示した予測動きベクトルｍｖｄ＿ｆｗｄ１６ならびにｍｖｄ＿ｂｗｄ１７の生成方法を図８に説明する。図７のモード１（５１）のブロック５１−０，モード４（５４）の小ブロック５４ａ−０、５４ｂ−０、５４ｂ−１、５４ｃ−０、５４ｃ−１ならびに５４ｄ−０〜５４ｄ−３については、同じ予測方法を用いる。動きベクトルを符号化する対象の小ブロックを５０と仮定する。これらの小ブロックでは、動きベクトルの水平・垂直成分それぞれについて、隣接位置Ａ，Ｂ，Ｃに位置する３ブロックの動きベクトルを候補としてその中間値を計算し、中間値の動きベクトルを予測動きベクトルとする。但し、符号化順序やマクロブロック位置の関係で位置Ｃのブロックが符号化前の場合や画像の外に位置する場合が考えられる。この場合には、位置Ｃのかわりに位置Ｄに位置するブロックの動きベクトルを候補動きベクトルの１つとして用いる。
【００５８】
なお、位置ＡとＤのブロックが画像の外に位置する場合には、その動きベクトルを‘０’ベクトルとして予測処理を行い、位置、ＤとＢとＣが画像の外に位置する場合には、位置Ａのブロックの動きベクトルとして予測処理を行う。この際、３個の候補ブロックのうち２個が動きベクトルを持たない場合には、残りの１つの候補動きベクトルを予測動きベクトルとする。モード２（５２）の２個の小ブロック（５２−０，５２−１）、モード３（５３）の２個の小ブロック（５３−０，５３−１）については、図８に示す矢印の根元に位置するブロックの動きベクトルを予測値とする。なお、この方法における動きベクトル符号化では、同じ参照フレームの動きベクトルのみが予測に用いられる。したがって、隣接ブロックの動きベクトルが符号化ブロックにて選択された参照フレームと異なる場合には、画像の外に位置するものとして扱う。色差成分用の動きベクトルについては符号化せず、輝度成分の動きベクトルを２で割って使用する。
【００５９】
図１４〜１７を用いてｃｏｌｌｏｃａｔｅｄ  ｂｌｏｃｋのＦｏｒｗａｒｄ  ＭＶを必要としない代用モード（４ｘ４  ｂｉ−ｐｒｅｄｉｃｔｉｖｅ）について説明する。ＤｉｒｅｃｔモードならびにＤｉｒｅｃｔモードを使用するＢ−ｐｉｃｔｕｒｅにおけるＳｋｉｐモードは、選択率が高く符号化性能を高めるために重要な予測方式である。
【００６０】
しかしながら、ＭＰＥＧ−４  Ｐａｒｔ１０のように、参照フレームの選択や各フレームの符号化手順に自由度を持たせた方式では、図１、２ならびに図１２、１３の説明で示したように、従来のＤｉｒｅｃｔモードが有効に機能しないフレームやブロックが発生する。
【００６１】
この代用モードは、従来のＤｉｒｅｃｔモードが有効に機能しない場合に切り替えて使用することにより、予測性能の低下を抑制したり、予測効率を高める効果がある。また、従来のＤｉｒｅｃｔモードが参照フレームの動きベクトルを使用するのに対して、この代用モードは現フレームの動きベクトルを利用するため、以降のフレームの符号化／復号処理のために動きベクトルをメモリに蓄積する処理が不必要となり、メモリサイズを削減する効果がある。さらに、代用モードでは、図９に示す動きベクトルのスケーリング処理が必要ないため、復号処理が簡易となる。
【００６２】
この代用モードの予測手順は、図１４に示す４パートから構成される。まず、８ｘ８ブロック単位で予測方向をｂｉ−ｐｒｅｄｉｃｔｉｖｅ，ｆｏｒｗａｒｄ，ｂａｃｋｗａｒｄから選択する（６１０）。選択には、対象８ｘ８ブロックＣ８１の直上ブロックＢ８３と直左ブロックＡ８２を用いて実施する。次に処理６１０にて選択した予測モードの実施に必要となる参照フレームの選択を実施する（６２０）。選択には、対象８ｘ８ブロックＣ８１の直上ブロックＢ８３と直左ブロックＡ８２を用いて実施する。次に４ｘ４ブロック単位で、選択した予測モードと参照フレームに対応する動きベクトルの算出処理を実施する（６３０）。最後に処理６１０と６２０にて選択した予測モードと参照フレームと処理６３０にて算出した動きベクトルにて４ｘ４予測ブロックを合成する。そして算出した動きベクトルと参照フレームのｉｎｄｅｘを予測動きベクトル予測用に保存する（６４０）。
【００６３】
このように、同一フレーム内の周囲ブロックの情報から予測処理に必要とされる各要素データを予測することにより、局所的な特徴に応じた動き予測が可能となり、予測効率が向上する。また、フレーム内の隣接ブロックのデータのみを用いるため、この代用モード実施のために保存するデータ量が削減される。以降に処理の詳細を示す。
【００６４】
図１５に処理６１０の予測方向選択処理手順を示す。まず、対象８ｘ８ブロックの直上ならびに直左の８ｘ８ブロックの何れかがＦｏｒｗａｒｄ  ＭＶを持っているか否かをチェックする（６１１）。次に同様に、対象８ｘ８ブロックの直上ならびに直左の８ｘ８ブロックの何れかがＢａｃｋｗａｒｄ  ＭＶを持っているか否かをチェックする（６１２）。そして、直上または直左の８ｘ８ブロックの何れかがｆｏｒｗａｒｄ  ＭＶとｂａｃｋｗａｒｄ  ＭＶを持っている場合と、直上と直左の８ｘ８ブロックのいずれもｆｏｒｗａｒｄ  ＭＶもｂａｃｋｗａｒｄ  ＭＶを持っていない場合には、ｂｉ−ｐｒｅｄｉｃｔｉｖｅを選択する（６１５）。直上ならびに直左の８ｘ８ブロックがｆｏｒｗａｒｄ  ＭＶのみを持っている場合にはｆｏｒｗａｒｄ  ＭＶ（６１６）、ｂａｃｋｗａｒｄ  ＭＶのみを持っている場合にはｂａｃｋｗａｒｄ  ＭＶ（６１７）を選択する。
【００６５】
この手順によれば、予測効率が最も高いｂｉ−ｐｒｅｄｉｃｔｉｖｅ予測が優先的に選択される。また、ｂｉ−ｐｒｅｄｉｃｔｉｖｅを効率良く実施するために必要な情報が周囲ブロックから得られない場合には、周囲から得られる情報に基づいて最適と推測される予測方向が選択できる。さらに、周囲から情報が十分な得られない場合には、他の予測モードに対してＤｉｒｅｃｔモードを選択する効果が高い状態となるように制御することで、予測効率の向上に貢献する。具体的には、以降に説明する図１６と図１７の処理と組み合わせることにより、ｉｎｄｅｘ０（現フレームに最も似通ったフレーム）のｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ，ｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅを参照フレームとしたゼロ動きベクトルのｂｉ−ｐｒｅｄｉｃｔｉｖｅ予測を選択するような手順となっている。
【００６６】
図１６に処理６２０の参照フレーム選択処理手順を示す。この処理は、ｆｏｒｗａｒｄとｂａｃｋｗａｒｄについて個別に実施される。図１６は、ｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ選択の場合を示しているが、ｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅについても手順は同じである。
【００６７】
まず、対象８ｘ８ブロックの直上ならびに直左の８ｘ８ブロックが何れもｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅを利用しているか否かをチェックする（６２１）。何れの８ｘ８ブロックともｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅを利用していると判定された場合には、２個の８ｘ８ブロックで使用されたｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅのうちｉｎｄｅｘ番号の小さい方を選択する（６２３）。処理６２１にて少なくとも何れかの８ｘ８ブロックがｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅを利用していないと判定された場合には、次に、対象８ｘ８ブロックの直上または直左の８ｘ８ブロックが何れかがｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅを利用しているか否かをチェックする（６２２）。処理６２２にて、何れかの８ｘ８ブロックがｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅを利用していると判断された場合には、利用したｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅを選択する（６２５）。処理６２２にて、何れの８ｘ８ブロックもｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅを利用していない場合には、ｉｎｄｅｘ０を選択する（６２４）。
【００６８】
このように、隣接ブロックの符号化に適用されたＩｎｄｅｘ番号のうち、小さい値を選択するように制御する。これは、参照フレーム候補の設定において、現フレームとの相関が高いフレームに小さいｉｎｄｅｘ番号を与えためである。Ｉｎｄｅｘ番号の設定方法には、自動的に設定される方法と、符号化時に設定する方法がある。前者では、現フレームに近いフレームから順に小さいｉｎｄｅｘ番号が与えられる。後者は、例えばシーンチェンジ時などに適用され、以前に符号化した過去の同じカメラアングルのフレームに小さいｉｎｄｅｘ番号を割り当てる。このように、小さいｉｎｄｅｘ番号を選択することにより、処理対象のフレームに近い画像を選択する可能性が高くなる。
【００６９】
図１７に処理６３０の動きベクトル算出処理手順を説明する。この処理は、４ｘ４ブロック単位で、ｆｏｒｗａｒｄ，ｂａｃｋｗａｒｄについて個別に実施する。
【００７０】
まず、直上または直左の４ｘ４ブロックの何れかが画像の外に位置しているか否かをチェックする（６３１）。処理６３１にて、何れかの４ｘ４ブロックが画像の外に位置していると判定される場合には、４ｘ４ブロックの動きベクトルをゼロベクトルとする（６２５）。処理６３１にて何れの４ｘ４ブロックも画像内に位置していると判定される場合には、次に、直上または直左の４ｘ４ブロックの何れかが処理６２０にて選択した参照フレームへの利用可能な動きベクトルを持っているか否かをチェックする（６３２）。処理６３２にて何れの４ｘ４ブロックも選択した参照フレームへの利用可能な動きベクトルを持っていないと判定される場合には、４ｘ４ブロックの動きベクトルをゼロベクトルとする（６２５）。処理６３２にて何れかの４ｘ４ブロックが選択した参照フレームへの利用可能な動きベクトルを持っていると判定される場合には、直上または直左の４ｘ４ブロックが有する何れかの動きベクトルが、処理６２０にて選択した参照フレームへのゼロベクトルであるか否かをチェックする（６３３）。処理６３３にて何れかの４ｘ４ブロックの動きベクトルが参照フレームへのゼロベクトルと判定された場合には、４ｘ４ブロックの動きベクトルをゼロベクトルとする（６２５）。処理６３３にて何れの４ｘ４ブロックの動きベクトルも参照フレームへのゼロベクトルではないと判定された場合には、４ｘ４ブロックに対する中間値予測により動きベクトルを算出する。このように、ゼロベクトルを優先的に選択するのは、Ｄｉｒｅｃｔモードが背景部分で特に効果が高いことに対応するためである。
【００７１】
本発明には次のような変形も含まれる。
【００７２】
（１）本実施例では、代用モードの使用を図１２のようにｃｏｌｌｏｃａｔｅｄ  ｂｌｏｃｋの状況によって決定しているが、ｄｉｒｅｃｔモードを代用モードに完全に切り換えることも考えられる。この方法では、処理３０１にてフレーム単位あるいはスライス単位（詳細は変形例（４）に記載）でｄｉｒｅｃｔモードと代用モードの切り替えを制御する。これにより、選択候補が増え、特殊効果を施したシーンへの適用性が向上するため、予測効率も向上する。但し、参照フレームと現フレーム図９の動きベクトルの算出を外挿処理にて行う可能性が生じるため、演算処理量に強い制約がある条件では図１２、１３に示すように２方式の切り替え制御を実施する方法が有効である。
【００７３】
（２）図１４〜１７については、予測方向、参照フレーム、動きベクトルを周囲のブロックから生成するという全体処理が一致していれば細かい条件については限定されない。例えば、処理６３１にて「直上または直左の４ｘ４ブロックの何れか」という記述を「直上ならびに直左の４ｘ４ブロックの両者が」に変更した方法も本願に含まれる。また、モード選択時に利用するブロックを２個から３個（予測ベクトルの作成に使用する）に変えた方法も本願に含まれる。このモード選択時に利用するブロックを２個から３個に変える方法は、動きベクトル推定との整合性が良く、予測効率の向上にもつながるため、演算処理量に強い制約がない条件では有効である。
【００７４】
（３）図１、２ならびに図１２、１３ではｃｏｌｌｏｃａｔｅｄ  ｂｌｏｃｋが現フレームに対して前方向のｆｏｒｗａｒｄ  ＭＶを持っていれば、そのｆｏｒｗａｒｄ  ＭＶに対するｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅのｉｎｄｅｘ番号に関わらずｄｉｒｅｃｔモードを適用する方法について示してきた。しかしながら、ｄｉｒｅｃｔモードは、ｆｏｒｗａｒｄ  ＭＶに対するｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅが現フレームから離れると効果が低くなる傾向がある。そこで、ｆｏｒｗａｒｄ  ＭＶに対するｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅのｉｎｄｅｘ番号が０の場合のみｄｉｒｅｃｔモードを適応する方法も有効と考えられる。図２４と図２５にてその方法を説明する。図２４にピクチャレイヤのデータシンタックスを示す。
picture_layer()
{
picture_structure
frame_number
reference_picture_selection_layer()
if(coding_type() == B-picture){
direct_reference_usable
if(direct_reference_usable){
direct_mv_scale_bwd
direct_mv_scale_fwd
}
for(index=0; index<number of forward reference; index++){
picture_distance_fwd_dir[index]
picture_distance_fwd[index]
}
for(index=0; index<number of backward reference; index++){
picture_distance_bwd_dir[index]
picture_distance_bwd[index]
}
}
}
ピクチャタイプがＢ−ｐｉｃｔｕｒｅの場合について説明する。ｄｉｒｅｃｔ＿ｒｅｆｅｒｅｎｃｅ＿ｕｓａｂｌｅ２３は、ｄｉｒｅｃｔモード用に指定される後方参照フレームが現フレームよりも未来に位置しているおり、かつｄｉｒｅｃｔモード用に指定される前方参照フレームが現フレームよりも過去に位置しているかを示す情報である。ｄｉｒｅｃｔモード用に指定される後方参照フレームは、通常、ｉｎｄｅｘ０に割り当てられたｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅであるが、この情報にて、ｉｎｄｅｘ０のｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅがｄｉｒｅｃｔモードに使用できるか否かが明確に判断できる。
【００７５】
また、ｄｉｒｅｃｔモード用に指定される前方参照フレームは、通常、ｉｎｄｅｘ０に割り当てられたｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅであるが、この情報にて、ｉｎｄｅｘ０のｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅがｄｉｒｅｃｔモードに使用できるか否かが明確に判断できる。このデータ２３が０、すなわちｉｎｄｅｘ０のｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅがｃｕｒｒｅｎｔ  ｐｉｃｔｕｒｅに対して前方向（過去方向）に位置しているが、あるいはｉｎｄｅｘ０のｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅがｃｕｒｒｅｎｔ  ｐｉｃｔｕｒｅに対して後方向（未来方向）に位置しているピクチャについては、ｄｉｒｅｃｔモードが実施できないため、ｄｉｒｅｃｔモードの適用のために必要とされるピクチャ間隔情報は符号化／復号化する必要はない。従って、この場合には、ｃｕｒｒｅｎｔ  ｐｉｃｔｕｒｅとｉｎｄｅｘ０のｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅの時間間隔を示すｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｆｗｄ２４２７とｃｕｒｒｅｎｔ  ｐｉｃｔｕｒｅとｉｎｄｅｘ０のｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅの時間間隔を示すｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｂｗｄ２４２９の符号化／復号化は省略される。データ２６〜２９は図１０に示すｂｉ−ｐｒｅｄｉｃｔｉｖｅの動きベクトル符号化に用いるデータである。利用方法については、図２のところで説明したため、ここでは割愛する。
【００７６】
なお、ｄｉｒｅｃｔ＿ｒｅｆｅｒｅｎｃｅ＿ｕｓａｂｌｅ２３は、ｄｉｒｅｃｔモード用に指定される後方参照フレームが現フレームよりも未来に位置しているか否かだけを示す情報とし、ｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｆｗｄの位置を示す情報（ｄｉｒｅｃｔ＿ｍｖ＿ｓｃａｌｅ＿ｆｗｄ＿ｄｉｒ）をデータ２４２７の前に符号化／復号化する方法も考えられる。図９でｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅが、ｃｕｒｒｅｎｔ  ｐｉｃｔｕｒｅよりも後方にある状態のときには、２つの動きベクトル１２２と１２１は、外挿計算にてより算出される。
【００７７】
図２５の場合について、ｄｉｒｅｃｔモードの扱いについて説明する。図１２、１３の説明で示したように、図１８のｍｂ＿ｓｋｉｐ＿ｒｕｎ１１とｍｂ＿ｔｙｐｅ１２の選択候補にｄｉｒｅｃｔモードが選択された場合でも、複数参照フレーム機能や２参照フレームの機能を適用する方式では、ｄｉｒｅｃｔモードが適用できないケースが考えられる。そこで、本発明では条件に応じて予測方法を切り換える手順を用いる。その手順を図２５に示す。
【００７８】
最初に、ピクチャヘッダ内のｄｉｒｅｃｔ＿ｒｅｆｅｒｅｎｃｅ＿ｕｓａｂｌｅ２３にて、ｃｕｒｒｅｎｔ  ｐｉｃｔｕｒｅにｄｉｒｅｃｔモードが使用可能か否かをチェックする（３０６）。処理３０６にて使用不可、すなわちｉｎｄｅｘ０のｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅがｃｕｒｒｅｎｔ  ｐｉｃｔｕｒｅに対して時間的に未来に位置しているかあるいはｉｎｄｅｘ０のｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅがｃｕｒｒｅｎｔ  ｐｉｃｔｕｒｅに対して時間的に過去に位置していると判定された場合には、ｃｏｌｌｏｃａｔｅｄ  ｂｌｏｃｋのｆｏｒｗａｒｄ  ＭＶを必要としない代用モードにて予測マクロブロックを作成する（３０４）。処理３０６にて使用可能と判定された場合には、８ｘ８ブロック毎に予測方法の判定を行う。
【００７９】
ここで８ｘ８ブロックとしたのは、図７のブロック分割方法では、参照フレームと予測方向選択の最小単位が８ｘ８ブロックとされているためである。具体的には、８ｘ８ブロックに対応するｃｏｌｌｏｃａｔｅｄ  ｂｌｏｃｋにＦｏｒｗａｒｄ  ＭＶを持つ予測モードが適用されているか否かをチェックする（３０７）。そして、適用されていると判定された場合には、ｄｉｒｅｃｔモードにて予測ブロックを作成し（３０３）、適用されていないと判定された場合には、代用モードにて予測ブロックを作成する（３０４）。処理３０７では、ｃｏｌｌｏｃａｔｅｄ  ８ｘ８  ｂｌｏｃｋについて、予測モードがｉｎｔｒａモードの場合、予測方向がｂａｃｋｗａｒｄ  ｐｒｅｄｉｃｔｉｏｎの場合、あるいはｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅがｃｕｒｒｅｎｔ  ｐｉｃｔｕｒｅのｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅ  ｓｅｔに含まれるｉｎｄｅｘ０のｒｅｆｅｒｅｎｃｅ  ｐｉｃｔｕｒｅでない場合に、ｄｉｒｅｃｔモード使用不可と判定する。
【００８０】
なお、図１２の場合と同様に、処理３０７のｄｉｒｅｃｔモードの使用可否判定をマクロブロック単位で実施することも可能である。但し、この場合には、マクロブロック内のすべての予測ブロック、図７のブロック分割方法の場合には４個の８ｘ８ブロックのすべてが、ｄｉｒｅｃｔモード使用可能の状態である場合にのみ、ｄｉｒｅｃｔモード使用可能と判定される。
【００８１】
なお、図２４の説明で示したように、ｄｉｒｅｃｔ＿ｒｅｆｅｒｅｎｃｅ＿ｕｓａｂｌｅ２３がｉｎｄｅｘ０のｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅがｃｕｒｒｅｎｔ  ｐｉｃｔｕｒｅに対して時間的に未来に位置しているか否かという条件のみを示している場合も考えられる。この場合には、図９のｄｉｒｅｃｔモード予測にて図２４の説明で示した外挿計算による動きベクトルの算出が実施される可能性がある。
【００８２】
さらに、上記変形例（１）で示したように、ｄｉｒｅｃｔ＿ｒｅｆｅｒｅｎｃｅ＿ｕｓａｂｌｅ２３にて、ｄｉｒｅｃｔモードの使用判定条件のみを示している場合も考えられる。この場合も、ｄｉｒｅｃｔモードの使用が指定されており、かつｆｏｒｗａｒｄ  ｒｅｆｅｒｅｎｃｅが時間的に未来に位置しているか、あるいはｂａｃｋｗａｒｄ  ｒｅｆｅｒｅｎｃｅが時間的に未来に位置している場合には、図９のｄｉｒｅｃｔモード予測に用いる動きベクトルは外挿計算にて算出する。
【００８３】
（４）図１、２ならびに図２４では、ピクチャヘッダのデータ構造に限定して説明しているが、複数のマクロブロックをまとめたグループであるスライスレイヤのヘッダ部にこれらの情報が記載される場合にも本発明のデータ構造は適用できる。
【００８４】
圧縮データをスライス単位でデータパケット化して伝送する方式では、スライスレイヤのヘッダ部の情報でデータの復号手順を決める。そのため、復号化手順に関連する本発明の情報はスライスヘッダ部に必要となる。１つのスライスにどのマクロブロックが属するかを示す情報は、上位の通信・ネットワーク関連情報を司る通信パケットヘッダやファイルフォーマットのヘッダ部にて示される場合や、データ全体の構成を決めるシーケンスヘッダに示される場合などがある。このスライス単位でＤｉｒｅｃｔモードと代用モードを切り替える方法は、フレーム単位で切り替える方法に比較して、選択の自由度が向上し、予測効率が向上する。但し、予測効率向上のためには、スライス単位での選択制御が必要となるため、演算量が増大する。したがって、リアルタイム処理を必要とするアプリケーションでは、フレーム構造によるフレーム単位での切り替え制御が有効と言える。
【００８５】
ここまで説明した本発明の方式は、専用回路・専用チップを用いる画像符号化装置・画像復号化装置や、汎用プロセッサを用いるソフトウェア画像符号化装置・ソフトウェア画像復号化装置に適用できる。
【００８６】
図２８に組み込み型のソフトウェア符号器・復号器の例として、アプリケーションプロセッサを用いた携帯端末の例を示す。主に無線通信処理を行うホスト部２８２０、カメラからの入力信号を処理するカメラ入力処理部２８３０、映像符号化／復号化などのアプリケーション処理を実施するアプリケーションプロセッサ部２８００、表示データを処理する出力デバイス２８４０にて構成されている。符号化時には、カメラにて撮影された画像は、まず、カメラ入力処理部２８３０にて図３に示すようなＹＵＶ信号に変換され、アプリケーションプロセッサ部２８００に入力される。
【００８７】
アプリケーションプロセッサ部２８００は、入力画像を図１（または図２または図２４）と図１８に示すようなストリームデータに符号化する。組み込み型の場合には、汎用プロセッサ２８１０内の処理部２８１１にて符号化処理（図１４〜１７のフローチャートに示す動作を含む）を実施するためのソフトウェア（アセンブラコード）は、内部ＲＡＭ２８１２または外部ＲＡＭ２８３０に予め格納されている。また、図１４〜１７のフローチャートに示されるような予測処理に利用されるデータ（複数の参照ピクチャや各マクロブロックの参照ピクチャ番号、予測方向、動きベクトル）も、予め格納する領域が内部ＲＡＭ２８１２または外部ＲＡＭ２８３０に確保されている。アセンブラコードや各データの格納領域配置は、プロセッサ能力、バス速度、アセンブラコードや各データへの推定アクセス頻度とそれらの容量のバランスで設計される。通常、内部ＲＡＭは外部ＲＡＭよりもアクセス速度が速く、外部ＲＡＭは内部ＲＡＭよりも搭載容量が多い。従って、アクセス頻度が高く、容量が少ないデータ格納領域やアセンブラコードを内部ＲＡＭに配置する。この際、アセンブラコードは内部ＲＡＭと外部ＲＡＭに分割されて配置される場合もある。
【００８８】
符号化されたビットストリームデータは、外部ＲＡＭ２８３０あるいはホスト部２８２０内のメモリに保存される。何れに保存されるかは、符号化ビットストリームデータの用途など、携帯端末向けのサービスにより異なる。復号時には、ホスト部２８２０あるいは外部ＲＡＭ２８３０からアプリケーションプロセッサ部２８００に符号化ビットストリームデータが供給される。アプリケーションプロセッサ部２８００は、入力された符号化ビットストリームデータを復号し、ＹＵＶ再生画像をＲＧＢ画像に変換したのち出力デバイス２８４０に出力する。この際、ＹＵＶ再生画像は一旦外部ＲＡＭあるいは内部ＲＡＭ内のフレームメモリに蓄積される場合もある。
【００８９】
符号化処理の場合と同様に、復号処理においても、汎用プロセッサ２８１０内の処理部２８１１にて復号処理（図１４〜１７のフローチャートに示す動作を含む）を実施するためのソフトウェア（アセンブラコード）は、内部ＲＡＭ２８１２または外部ＲＡＭ２８３０に予め格納されている。また、図１４〜１７のフローチャートに示されるような予測処理に利用されるデータ（複数の参照ピクチャや各マクロブロックの参照ピクチャ番号、予測方向、動きベクトル）も、予め格納する領域が内部ＲＡＭ２８１２または外部ＲＡＭ２８３０に確保されている。
【００９０】
図２９には、より汎用的な用途で用いられるソフトウェア符号器・復号器の例を示す。
【００９１】
符号化時には、入力画像はフレームメモリ２９５０に蓄えられ、汎用プロセッサ２９００はここから情報を読み込んで符号化処理を行う。この汎用プロセッサを駆動するためのプログラム（図１４〜１７のフローチャートに示す動作を含む）はハードディスクやフロッピー（登録商標）ディスクなどによる蓄積デバイス２９３０から読み出されてプログラム用メモリ２９２０に蓄えられている。汎用プロセッサが出力する符号化情報は一旦入出力バッファ２９４０に蓄えられた後、符号化ビットストリームとして出力される。
【００９２】
処理メモリ２９１０には、図１４〜１７のフローチャートに示されるような予測処理に利用されるデータ（複数の参照ピクチャや各マクロブロックの参照ピクチャ番号、予測方向、動きベクトル）が蓄積されており、プログラムの処理に従って汎用プロセッサにて読み込まれる。また、汎用プロセッサは、プログラムの処理に従ってデータを処理メモリに蓄積する。
【００９３】
復号時には、入力された符号化ビットストリームは一旦入出力バッファ２９４０に蓄えられ、汎用プロセッサ２９００はここから読み込んで復号する。この汎用プロセッサを駆動するためのプログラム（図１４〜１７のフローチャートに示す動作を含む）は、ハードディスクやフロッピー（登録商標）ディスクなどによる蓄積デバイス２９３０から読み出されてプログラム用メモリ２９２０に蓄えられている。復号された再生画像は一旦フレームメモリ２９５０に蓄えられた後、出力処理を実施するデバイスに出力される。処理メモリ２９１０には、図１４〜１７のフローチャートに示されるような予測処理に利用されるデータ（複数の参照ピクチャや各マクロブロックの参照ピクチャ番号、予測方向、動きベクトル）が蓄積されており、プログラムの処理に従って汎用プロセッサにて読み込まれる。また、汎用プロセッサは、プログラムの処理に従って生成されたデータを処理メモリに蓄積する。
【００９４】
専用回路・専用チップを用いる画像符号化装置の構成を図２２に示す。１個のマクロブロック処理の符号化処理について、処理の流れを説明する。まず、入力マクロブロック画像２０１とフレームメモリ２１０に蓄積されている符号化済みフレームの復号画像（参照フレーム）間の動き補償処理が全てのマクロブロックタイプ（８ｘ８  Ｐａｒｔｉｔｉｏｎタイプ）と候補参照フレームの組み合わせについて、動き補償器２１１にて行われ、最適なマクロブロックタイプと８ｘ８  Ｐａｒｔｉｔｉｏｎタイプが選択される。この際、Ｄｉｒｅｃｔモードの動き補償を行う場合には、ＭＶ予測器２１５から予測方向、参照フレーム番号、動きベクトル情報を取得する必要がある。
【００９５】
図２６にＭＶ予測器の内部構造を示す。Ｄｉｒｅｃｔモードを示すマクロブロックタイプ（８ｘ８  Ｐａｒｔｉｔｉｏｎタイプ）、マクロブロック位置情報（ブロック位置情報）ならびにｄｉｒｅｃｔモードのタイプ（ｄｉｒｅｃｔ／ａｌｔｅｒｎａｔｉｖｅ、動き補償器にて制御、ａｌｔｅｒｎａｔｉｖｅ予測は図１４〜図１７に示す代用モード）が入力されるとスイッチャ２６２０を通してスイッチャ２６３０が起動される。スイッチャ２６３０は、ｄｉｒｅｃｔモードのタイプにしたがってスイッチを切り替える。
【００９６】
ｄｉｒｅｃｔモードのタイプがｄｉｒｅｃｔ予測の場合には、動きベクトル計算部２６６０が起動される。動きベクトル計算部２６６０は内部メモリ２６１０に保存されている情報を用いて、図９に示す予測パラメータを算出する。算出されたパラメータは、内部メモリに保存されるとともに動き補償器に通知される。
【００９７】
ｄｉｒｅｃｔモードのタイプがａｌｔｅｒｎａｔｉｖｅ予測の場合には、ａｌｔｅｒｎａｔｉｖｅ予測部２６４０が起動される。ａｌｔｅｒｎａｔｉｖｅ予測部は、図１４に示す処理を実施する。具体的には、予測モード選択部２６４１，参照フレーム選択部２６４２，動きベクトル選択部２６４３が、内部メモリ２６１０に保存されている情報を用いて、ぞれぞれ、図１５、図１６、図１７のフローチャートに示す処理を実施し、予測方向、参照フレーム番号ならびに動きベクトルを算出する。これらの予測パラメータは内部メモリに保存されるとともに動き補償器に通知される。
【００９８】
動き補償器の説明に戻る。最適なマクロブロックタイプ選択後、検出された動きベクトルは、マクロブロックタイプ、予測方向情報（ｆｏｒｗａｒｄ／ｂａｃｋｗａｒｄ／ｂｉ−ｐｒｅｄｉｃｔｉｖｅ）、参照フレーム番号と共にＭＶ予測器２１５に通知され、内部メモリ２６１０の内容が更新される（ｄｉｒｅｃｔモードが選択された場合には、マクロブロックタイプあるいは８ｘ８  Ｐａｒｔｉｔｉｏｎタイプのみ）。
【００９９】
マクロブロックタイプならびに８ｘ８  Ｐａｒｔｉｔｉｏｎタイプがｄｉｒｅｃｔでないブロックについては、動きベクトル予測部２６５０（スイッチャ２６２０にて起動）にて図８に示す予測処理を実施し、差分動きベクトルを算出する。算出された差分動きベクトルは、マクロブロックタイプ、８ｘ８  Ｐａｒｔｉｔｉｏｎタイプならびに参照フレーム番号と共に多重化器２０６に出力される（ｄｉｒｅｃｔモードが選択された場合には、差分動きベクトルと参照フレーム番号は多重化されない）。
【０１００】
なお、ここでは、差分動きベクトルの算出を最適なマクロブロックタイプ（８ｘ８  Ｐａｒｔｉｔｉｏｎタイプ）についてのみについて行うものとしているが、差分動きベクトルの値やその符号量を最適マクロブロックタイプ（８ｘ８  Ｐａｒｔｉｔｉｏｎタイプ）選択時の評価値として利用する場合も考えられる。この場合には、それぞれのマクロブロックタイプ（８ｘ８  Ｐａｒｔｉｔｉｏｎタイプ）や参照フレームの組み合わせについて、ＭＶ予測器にて差分動きベクトルを算出する。
【０１０１】
動き補償により生成された参照フレームから抜き出された予測マクロブロック画像２１３は、Ｉｎｔｒａ／Ｉｎｔｅｒ判定処理部２１４に入力される。Ｉｎｔｒａ／Ｉｎｔｅｒ判定部では、イントラモードとインターモードのいずれを最終的なマクロブロックタイプとするかを決定し、判定情報２１８を多重化器２０６ならびにＭＶ予測器２１５に通知する。ＭＶ予測器２１５は、判定情報２１８がイントラモードの場合、内部メモリ内の保存データを更新する。
【０１０２】
多重化器は、イントラ／インターモード判定結果と、ＭＶ予測器から得られたインターモードのマクロブロックタイプ、８ｘ８  Ｐａｒｔｉｔｉｏｎタイプ、参照フレーム番号ならびに差分動きベクトル（ｄｉｒｅｃｔモードが選択された場合には、差分動きベクトルと参照フレーム番号はなし）から図１８に示す符号を生成し、符号化ビットストリームに多重化する。
【０１０３】
Ｉｎｔｒａ／Ｉｎｔｅｒ判定部にて選択されたマクロブロックタイプがインターモードの場合には、予測マクロブロック画像は、現フレームの入力マクロブロック画像２０１との間で差分器２０２にて差分処理され、差分マクロブロック画像が生成される。この際、同時に、予測マクロブロック画像は加算器２０９に出力される。Ｉｎｔｒａ／Ｉｎｔｅｒ判定部にて選択されたマクロブロックタイプがイントラモードの場合には、差分器２０２ならびに加算器２０９には予測マクロブロックは出力されない。
【０１０４】
差分器２０２から出力される差分マクロブロック画像あるいは入力マクロブロック画像は、まず、ＤＣＴ変換される。ＤＣＴのブロックサイズは従来の符号化方式では８×８画素が一般的であるが、最近では、ＭＰＥＧ−４  Ｐａｒｔ１０（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）などで４ｘ４画素サイズによるＤＣＴ変換も検討されているため、ここでは、４×４ＤＣＴを例に説明する。差分マクロブロック画像は、図６に示すように、２４個の４ｘ４画素ブロックに分割され、ＤＣＴ変換器２０３にてそれぞれ１６個のＤＣＴ係数に変換される。各ＤＣＴ係数は、量子化器２０４にて量子化され、多重化器２０６にて符号化される。
【０１０５】
多重化器２０６では、図１、図２あるいは図２４に示すようなヘッダ情報と共に図１８に示すようなマクロブロックデータ情報を多重化し、符号化ビットストリームを生成する。量子化ＤＣＴ係数は、局部復号器２２０の逆量子化器２０７と逆ＤＣＴ器２０８にて、差分マクロブロック画像あるいはマクロブロック画像に復号される。そのマクロブロックの予測モードがインターモードの場合には、差分マクロブロック画像が加算器２０９にて予測マクロブロック画像と加算した後、フレームメモリ２０１に合成される。そのマクロブロックがイントラモードの場合には、復元されたマクロブロック画像がフレームメモリ２０１に合成される。
【０１０６】
図２２のイントラモードではイントラ予測を実施していないが、イントラ予測を実施する符号化方式でも、本発明は適用できる。この場合、Ｉｎｔｒａ／Ｉｎｔｅｒ判定部にてイントラ予測を実施してもよいが、この処理を動き補償部に組み込む場合も考えられる。特にＭＰＥＧ−４  Ｐａｒｔ１０（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）のように複数のイントラ予測タイプを準備している符号化方式では、インター予測タイプと同列にイントラ予測タイプを扱えるため、装置構成が簡易となる。この場合には、動き補償部２１１から常に差分予測マクロブロック画像２１３が差分器２０２と加算器２０９に供給される。また、マクロブロックタイプ情報に判定情報２１８が含まれているため、判定情報２１８は削除でき、判定情報２１８の入力に伴うＭＶ予測部２１５での内部メモリ更新処理も省略される。また、ＤＣＴ係数レベルでイントラ予測を行う場合も考えられる。この場合は、ＤＣＴ変換部２０３ならびにＩＤＣＴ変換部２０８に予測処理を組み込むことで対応できる。
【０１０７】
専用回路・専用チップを用いる画像復号装置の構成を図２３に示す。１個のマクロブロック処理の復号処理について、処理の流れを説明する。まず、符号化解読器５０１にて、入力された符号化データを解析し、動きベクトル関連情報とマクロブロックタイプ情報をＭＶ予測器５０８に、量子化ＤＣＴ係数情報を逆量子化器５０２に振り分ける。
【０１０８】
マクロブロックの予測モードがインターモードの場合には、ＭＶ予測器５０８に、ブロック位置情報、マクロブロックタイプ、８ｘ８  Ｐａｒｔｉｔｉｏｎタイプ、予測方向情報、参照フレーム番号ならびに差分動きベクトルが入力される（マクロブロックタイプがｄｉｒｅｃｔモードの場合には、マクロブロックタイプとマクロブロック位置情報のみが入力される。また、８ｘ８  Ｐａｒｔｉｔｉｏｎタイプがｄｉｒｅｃｔのときは、その８ｘ８ブロックについては、参照フレーム番号ならびに差分動きベクトルは入力されない）。
【０１０９】
図２７にＭＶ予測器の内部構造を示す。マクロブロックタイプあるいは８ｘ８  Ｐａｒｔｉｔｉｏｎタイプがｄｉｒｅｃｔのときには、マクロブロック位置情報あるいはブロック位置情報と共に符号化解読器５０１で復号されたスライスヘッダ情報内のｄｉｒｅｃｔモードのタイプ（ｄｉｒｅｃｔ／ａｌｔｅｒｎａｔｉｖｅ、動き補償器にて制御）が入力される。マクロブロック位置情報（ブロック位置情報）ならびにｄｉｒｅｃｔモードのタイプ（ｄｉｒｅｃｔ／ａｌｔｅｒｎａｔｉｖｅ、動き補償器にて制御）が入力されるとスイッチャ２６２０を通してスイッチャ２６３０が起動される。スイッチャ２６３０は、ｄｉｒｅｃｔモードのタイプにしたがってスイッチを切り替える。
【０１１０】
ｄｉｒｅｃｔモードのタイプがｄｉｒｅｃｔ予測の場合には、動きベクトル計算部２６６０が起動される。動きベクトル計算部２６６０は内部メモリ２７１０に保存されている情報を用いて、図９に示す予測パラメータを算出する。算出されたパラメータは、内部メモリに保存されるとともに動き補償器５０４に通知される。
【０１１１】
ｄｉｒｅｃｔモードのタイプがａｌｔｅｒｎａｔｉｖｅ予測の場合には、ａｌｔｅｒｎａｔｉｖｅ予測部２６４０が起動される。ａｌｔｅｒｎａｔｉｖｅ予測部は、図１４に示す処理を実施する。具体的には、予測モード選択部２６４１，参照フレーム選択部２６４２，動きベクトル選択部２６４３が、内部メモリ２７１０に保存されている情報を用いて、ぞれぞれ、図１５、図１６、図１７のフローチャートに示す処理を実施し、予測方向、参照フレーム番号ならびに動きベクトルを算出する。これらの予測パラメータは内部メモリ２７１０に保存されるとともに動き補償器５０４に出力される。
【０１１２】
マクロブロックタイプ（８ｘ８  Ｐａｒｔｉｔｉｏｎタイプ）がｄｉｒｅｃｔでない時には、マクロブロックタイプ（８ｘ８  Ｐａｒｔｉｔｉｏｎタイプ）と共に、マクロブロック位置情報（ブロック位置情報）、参照フレーム番号ならびに差分動きベクトルが入力され、スイッチャ２６２０により動きベクトル予測器２７５０が起動される。
【０１１３】
動きベクトル予測部２７５０では、内部メモリ２７１０の内容と入力データを用いて図８に示す予測処理を実施し、動きベクトルを復元する。復元された動きベクトルは、予測方向情報、参照フレーム番号と共に内部メモリ２７１０と動き補償器５０４に出力される。動き補償器５０４では、入力されたデータとフレームメモリ５０７内の参照ピクチャを用いて予測マクロブロック画像を生成する。
【０１１４】
次に、予測誤差信号に関する符号化データを、逆量子化器５０２と逆ＤＣＴ器５０３において、４×４画素ブロック毎に、逆量子化・逆ＤＣＴ処理し、差分マクロブロック画像を再生する。そして、予測マクロブロック画像と差分マクロブロック画像を加算器５０５にて加算処理し、マクロブロック画像を再生する。再生されたマクロブロック画像は、合成器５０６にて復号フレーム画像に合成される。また、復号フレーム画像は、次フレームの予測用にフレームメモリ５０７に蓄積される。
【０１１５】
マクロブロックタイプがイントラモードであった場合には、復号した量子化ＤＣＴ係数情報を、逆量子化器５０２と逆ＤＣＴ器５０３において、４×４画素ブロック毎に逆量子化・逆ＤＣＴ処理し、マクロブロック画像を再生する。この際、図２７の内部メモリ２７１０の内容は、イントラモードとして更新される。この図では、イントラ予測は実施されないが、ＭＰＥＧ−４  Ｐａｒｔ１０（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）のように複数のイントラ予測タイプを準備している符号化方式でも、本発明は適用できる。この場合には、動き補償部５０４がイントラ予測の機能を含まれ、動き補償部からは常に予測マクロブロック画像が出力される。
【０１１６】
図２８や図２９に示すソフトウェア符号化器（図１４〜図１７）ならびに図２２と図２６の符号化装置により生成される符号化ビットストリームを記録した蓄積メディア（記録媒体）の例を図３０に示す。
【０１１７】
デジタル情報を記録することができる記録ディスク（磁気ディスクや光ディスク）３０００には、同心円上にデジタル情報が記録されている。このディスクに記録されているデジタル情報の一部３００１を取り出すと、ｄｉｒｅｃｔモードと代用モードの選択情報（ｄｉｒｅｃｔ＿ｒｅｆｅｒｅｎｃｅ＿ｕｓａｂｌｅ）３０１１を含むスライスヘッダ情報３０１０、ＳＫＩＰモード情報（ｍｂ＿ｓｋｉｐ＿ｒｕｎ）３０２１、３０３１、３０４１、３０５１、マクロブロックタイプ情報（ｍｂ＿ｔｙｐｅ，８ｘ８  ｐａｒｔｉｔｉｏｎ）３０２２、３０３２、３０５２、参照フレームの番号と動きベクトルの情報（ｒｅｆ＿ｉｎｄｅｘ＿ｆｅｗ，ｒｅｆ＿ｉｎｄｅｘ＿ｂｗｄ，ｍｖｄ＿ｆｗｄ，ｍｖｄ＿ｂｗｄ）３０２３、３０５３、ＤＣＴ係数ならびに符号化ブロックパターン情報（ＣＢＰ，ｒｅｓｉｄｕａｌ（））３０２４、３０５４が記録されている。以下、スライスヘッダにて、フレームタイプがＢ−ｐｉｃｔｕｒｅ、ｄｉｒｅｃｔモードが代用モードとされた場合について、データの構成を説明する。３０２１〜３０２４ならびに３０５１〜３０５４は、マクロブロックタイプがＤｉｒｅｃｔではないマクロブロックの符号化データを示している。なお、８ｘ８  Ｐａｒｔｉｔｉｏｎにｄｉｒｅｃｔが含まれる場合もこのデータ構成となる。但し、この場合、８ｘ８  Ｐａｒｔｉｔｉｏｎ  ｔｙｐｅがｄｉｒｅｃｔとなる８ｘ８ブロックに関する参照フレームの番号と動きベクトルの情報は符号化されないため、これらの情報は３０２３や３０５３には含まれず、復号時には、ソフトウェア復号器では図１４〜図１７、専用復号装置では図２７の処理２６４０にて、予測方向、参照フレーム番号ならびに動きベクトルが算出される。
【０１１８】
３０３１、３０３２、３０３５の組み合わせはマクロブロックタイプがｄｉｒｅｃｔとなるマクロブロックの符号化データを示している。この場合には、参照フレームの番号と動きベクトルの情報は符号化されない。
【０１１９】
復号時には、ソフトウェア復号器では図１４〜図１７、専用復号装置では図２７の処理２６４０にて、予測方向、参照フレーム番号ならびに動きベクトルが算出される。３０４１は、スキップマクロブロックの例であり、マクロブロックタイプがｄｉｒｅｃｔであり、ＤＣＴ係数情報は存在しない。
【０１２０】
復号時には、ソフトウェア復号器では図１４〜図１７、専用復号装置では図２７の処理２６４０にて、予測方向、参照フレーム番号ならびに動きベクトルが算出され、これらのデータにて合成された予測マクロブロック画像がそのまま再生マクロブロック画像となる。このように、蓄積メディアにマクロブロックタイプとしてｄｉｒｅｃｔモードを示す符号を効率良く埋め込むことにより、少ない情報で再生マクロブロック画像を合成することが可能となる。
【０１２１】
図３１に、本発明の符号化方法・復号方法を実現する装置の具体例を示す。記録媒体である光ディクス３１０１（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ、ＢＤ−ＲＯＭ：Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ  ＲＯＭ、ＣＤ−ＲＯＭ／ＣＤ−Ｒなど）に記録した符号化ビットストリームを読み取り、復号化する再生装置３１０２にも本発明の復号化方法を実装することが可能である。この場合、再生された映像信号はテレビモニタ３１０３に表示される。
【０１２２】
アンテナ３１１１から受信した地上デジタル放送あるいは衛星デジタル放送を符号化し、光ディスク３１１３（ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＢＤ−ＲＡＭ、ＣＤ−ＲＷなど）に符号化ビットストリームを記録する記録／再生装置３１１２にも本発明の符号化方法を実装することが可能である。また、光ディスク３１１３に記録した符号化ビットストリームを復号化する記録／再生装置３１１２にて、本発明の復号化方法も実装することが可能である。この場合、再生された映像信号はテレビモニタ３１１４に表示される。
【０１２３】
パソコン３１２１に本発明の画像符号化方法・復号化方法用のソフトウェアを組み込むことにより、画像符号化・復号化装置として活用することが可能である。このソフトウェアはコンピュータ読み取り可能な記録媒体である何らかの蓄積メディア（光ディスク、フロッピー（登録商標）ディスク、ハードディスクなど）３１２２に記録されており、これをパソコンが読み込んで使用する。また、さらに何らかの通信回線にこのパソコンを接続することにより、映像通信端末として活用することも可能となる。
【０１２４】
ケーブルテレビ用のケーブル３１３１または衛星デジタル放送あるいは地上デジタル放送のアンテナに接続されたセットトップボックス３１３２内の復号装置にも本発明の復号方法を実装することが可能であり、デジタル放送をテレビモニタ３１３３で再生する構成も考えられる。セットトップボックスではなく、テレビモニタ内に本発明の復号方法を含む復号装置を組み込んでも良い。
【０１２５】
デジタル携帯端末３１４１にも本発明の符号化方法・復号方法を含む装置あるいはソフトウェア符号化器・復号器が実装可能である。実装形式としては、符号方法・復号方法を両方持つ送受信型の端末の他に、符号化のみの送信端末、復号化のみの受信端末の３通りの実装形式が考えられる。
【０１２６】
動画像撮影用のカメラ３１５１の中に本発明の符号化装置・復号装置を組み込むことも可能である。この場合撮影用カメラは符号化装置と該符号化装置からの出力を記録媒体に記録する記録装置とを持ち、符号化装置から出力された符号化ビットストリームを記録媒体に記録する。記録媒体は光ディクスの場合もある。尚、上記携帯端末にカメラがついている場合は撮像したものを符号化してアンテナを介して送出するようにすることもできる。
【０１２７】
カメラ入力を持つＴＶ会議システム３１６１の中に本発明の符号化装置・復号装置を組み込むことも可能である。カメラから入力された映像は符号化装置にて符号化ビットストリームに符号化され、ネットワーク３１６２に配信される。ネットワークから受信した符号化ビットストリームは復号装置にて復号され、モニタに表示される。この場合、本発明の符号化方法ならびに復号方法を実現する手段は、符号化装置・復号装置ではなく、ソフトウェア符号化器・復号器の場合もある。
【０１２８】
これらの装置に本発明の符号化方法ならびに復号方法を組み込むことにより、ｄｉｒｅｃｔモードとその代用モードを有効的に利用することが可能となり、予測性能が向上する。
【０１２９】
本発明のヘッダ情報によりｄｉｒｅｃｔモードに使用できるか否かが明確に判断できるようになる。さらに、フレーム番号が時刻情報を持たない場合において、参照フレームと現フレーム間の関係を示す情報を効率良く送ることが可能となる。また、本発明の代用モードとその切り換え手順により、ｄｉｒｅｃｔモードが適用できない場合の予測性能を向上させることが可能となる。
【図１】
0005470494.tif 000002
【図２】
0005470494.tif 000003
【図３】
0005470494.tif 000004
【図４】
0005470494.tif 000005
【図５】
0005470494.tif 000006
【図６】
0005470494.tif 000007
【図７】
0005470494.tif 000008
【図８】
0005470494.tif 000009
【図９】
0005470494.tif 000010
【図１０】
0005470494.tif 000011
【図１１】
0005470494.tif 000012
【図１２】
0005470494.tif 000013
【図１３】
0005470494.tif 000014
【図１４】
0005470494.tif 000015
【図１５】
0005470494.tif 000016
【図１６】
0005470494.tif 000017
【図１７】
0005470494.tif 000018
【図１８】
0005470494.tif 000019
【図１９】
0005470494.tif 000020
【図２０】
0005470494.tif 000021
【図２１】
0005470494.tif 000022
【図２２】
0005470494.tif 000023
【図２３】
0005470494.tif 000024
【図２４】
0005470494.tif 000025
【図２５】
0005470494.tif 000026
【図２６】
0005470494.tif 000027
【図２７】
0005470494.tif 000028
【図２８】
0005470494.tif 000029
【図２９】
0005470494.tif 000030
【図３０】
0005470494.tif 000031
【図３１】
0005470494.tif 000032