"動きベクトルに関する情報を受け取り、記録される参照画像と該動きベクトルに関する情報とを用いて動き補償を行って予測画像を合成する動画像の復号化方法であって、上記動き補償は、動きベクトルの復号を伴わないモードを含む複数のブロックモードを有し、予測方向を表す予測モードを選択するステップと、該予測モードにおける各予測方向の予測で参照するフレームを複数の参照フレームの候補から選択するステップと、該予測モードで用いる動きベクトルの情報を選択するステップとを有することを特徴とする動画像の復号化方法。しかし、新しい機能を導入した動画像符号化復号化方式では、directモードに使用する後方向の参照フレームが存在しない場合や、複数の後方向の参照フレームからデフォルトで設定される後方向の参照フレームが未来のフレームでない場合が考えられる。このようなフレームでは、directモードは適応できない。また、各フレームの管理が復号順の番号で管理されている場合には、後方向の参照フレームが利用可能か否かの判断ができない。また、directモードに使用する後方向の参照フレームとしてB-pictureが選択されるような場合には、collocatedblockが前方向の動きベクトルを持たない場合が考えられる。このようなブロックでは、directモードは適応できない。以上の課題に鑑み、本発明の目的は、directモードを効率よく適用できる符号化復号化方法を提供することである。デフォルトで設定される後方向の参照フレームがdirectモードに利用可能であるか否かを示す情報をデコーダに提供する。collocatedblockが利用可能な前方向動きベクトルを持たない場合に適用できる代価方式への切り換え手順と代価方式を提供する。さらに、動きベクトルに関する情報を受け取り、記録される参照画像と該動きベクトルに関す情報とを用いて動き補償を行って予測画像を合成する動画像の符号化及び復号化方法について。動き補償が動きベクトルの復号を伴わないモードを含む複数のブロックモードを有し、予測方向を表す予測モードを選択し、該予測モードにおける各予測方向の予測で参照するフレームを複数の参照フレームの候補から選択し、該予測モードで用いる動きベクトルの情報を選択する方法。特に、上記予測モードを、現在のブロックに隣接するブロックが動きベクトルを有するか否かに基づいて行うこと。又、参照するフレームは、index番号にて識別された複数の参照フレームから1個の参照フレームを選択するものであって、複数の上記隣接ブロックが上記予測方向の予測を適用している場合には何れかの上記隣接ブロックの使用する参照フレームを選択し、1個の上記隣接ブロックのみが上記予測方向の予測を適用している場合には該1個の隣接ブロックが適用するindex番号の参照フレームを選択し、上記隣接ブロックが上記選択された予測モードを採用していない場合にはindex番号が0番の参照フレームを選択することを開示する。又、複数の上記ブロック単位に付されるヘッダに、ブロックモードとして上記動きベクトルの復号を伴わないモードが選択された場合の予測手順を決める情報を含める方法も開示する。更に、上記方法を適用した装置等も開示する。本願の上記構成により、directモードを適用できるか否かの判断が明確となる。又、directモードとその代用モードを有効的に利用することが可能となり、予測効率が向上しデータ量を削減することもできる。以下、図を用いて本発明の実施の形態を説明する。以下、フレームヘッダからマクロブロックデータに至る処理の流れを順に説明する。図1にフレームヘッダ情報の例を示す。また、以下にC言語によるピクチャヘッダデータのデコード処理例を示す。picturelayerpicturestructureframenumberreferencepictureselectionlayerifBpicturedirectmvscalebwddirindexif未来方向directmvscalebwdindexfordirectmvscalefwddirindexif過去方向directmvscalefwdindexpicture_structure20では、各pictureのスキャン構造フレーム/フィールドが示される。frame_number21には、そのフレームの識別番号が示される。このframe_numberの付け方には大きく2種類ある。1つは、時刻情報を含む場合である。この場合には、I,P-pictureでは直前のIまたはP-pictureとのフレーム間隔、B-pictureでは時間的に過去の直前IまたはP-pictureとのフレーム間隔がframe_numberとなる一般にはTemporalreference;TRと呼ばれている。2つめは、単純に復号する順番を示す場合である。reference_picture_selection_layerでは、現フレームの動き補償処理に使用可能な複数参照フレームのframe_numberreferencepicturesetとその識別番号が示される。例えば、参照フレームが5枚の場合には、framenumber10の現pictureの対して以下のようにindex0~index4へのframe_numberが割り当てられる。Index0:9Index1:8Index2:7Index3:6Index4:5なお、ピクチャタイプがP-pictureの場合には、前方向の参照フレームforwardreferencepictureset、B-pictureの場合には、前方向と後方向の参照フレームforwardreferencepicturesetとbackwardreferencepicturesetのframe_numberが復号される。この際、前方向と後方向の参照フレーム数は個別に設定できるため、異なる場合もある。ピクチャタイプがI-pictureまたはP-pictureの場合には、これらのreferencepictureset情報に続くバイトアライン情報データの区切りをバイト単位に併せるための情報にてピクチャレイヤは終了となる。以降のピクチャヘッダデータは、ピクチャタイプがB-pictureの場合に発生する。なお、本実施例では、上位のネットワーク通信関連情報が含まれるレイヤに記載されているものと考える。direct_mv_scale_bwd_dir28は、directモード用に指定される後方参照フレームが現フレームに対して未来に位置しているか過去に位置しているかを示す情報である。directモード用に指定される後方参照フレームは、通常、index0に割り当てられたbackwardreferencepictureである。データ28が後方参照フレームここでは、index0に割り当てられたbackwardreferencepictureが現フレームに対して過去に位置していることを示している場合にはdirectmodeが使用できず、データ28が後方参照フレームに対して現フレームが未来に位置していることを示している場合にはdirectmodeが使用できる。したがって、このデータ28にて、index0のbackwardreferencepictureがdirectモードに使用できるか否かが明確に判断できる。また、directモードが実施できない場合には、後述する代用モードを適用する必要があり、そのためのメモリ配置等の準備面で、復号作業の効率化が促進できる。さらに、frame_numberが時刻情報を持たない場合において、referencepictureとcurrentpicture間の関係を示す情報を効率良く送ることが可能となる。directモードに関するピクチャ位置情報には、directmode以外にも使用されるものと、使用されないものがある。後者に関しては、direct_mv_scale_bwd_dirにより符号化を避けることが可能となる。具体的には、図1に示すように、direct_mv_scale_bwd_dirがdirectモード使用可能、すなわち現フレームに対して未来方向に位置することを示すときには、データ26,27,29が符号化されるが、directモード使用不可であることを示すときにはこれらのデータは符号化されない。direct_mv_scale_bwd29は、currentpictureとindex0のbackwardreferencepicture間のフレーム間隔を示す情報である図9参照。direct_mv_scale_fwd_dir26は、前方参照フレームが現フレームに対して未来に位置しているか過去に位置しているかを示す情報であり、direct_mv_scale_fwd27は、currentpictureとforwardreferencepicture間のピクチャ間隔を示す情報である図9参照。direct_mv_scale_fwdについては、reference_picture_selection_layer22にて指定されるforwardreferencepictureの数だけ符号化されている必要がある。但し、directモードを使用するには、前方向の参照フレームは現フレームに対して過去に位置している必要があるため、direct_mv_scale_fwd_dir26が未来方向を示すindexについては、direct_mv_scale_fwd27は省略される。direct_mv_scale_dividerは、index0のbackwardreferencepictureとforwardreferencepicture間のピクチャ間隔を示す情報である図9参照。従って、この情報もforwardreferencepictureの数だけ符号化されている必要があるが、direct_mv_scale_fwdとdirect_reference_bwdから算出できるため、省略することも可能である。この情報もdirect_mv_scale_fwd_dir26が未来方向を示すindexについては、direct_mv_scale_fwd27は省略される。B-pictureの場合においても、バイトアライン情報データの区切りをバイト単位に併せるための情報にてピクチャレイヤは終了となる。direct_mv_scale_fwdやdirect_mv_scale_bwdは、図10に示されるpicture_distanceとしても使用できるため、図1を図10の動きベクトル符号化にも拡張したデータシンタックスを図2に示す。picturelayerpicturestructureframenumberreferencepictureselectionlayerifBpicturefordirectmvscalefwddirindexdirectmvscalefwdindexfordirectmvscalebwddirindexdirectmvscalebwdindexB-pictureの場合について説明する。この場合には、現フレームで使用可能な全ての参照フレームについて、データ26~29が符号化/復号化されるが、これらのデータは図10に示した動きベクトルの符号化処理に利用するpicture_distanceの情報としても利用される。この図2でも図1と同じように、direct_mv_scale_bwd_dir[0]がdirectモードの使用可否を示す役割を果たすが、図2では、さらにデータ26と28の組み合わせにより、図10の処理が使用可能であるか否かを示す。図10の動きベクトル符号化は、2本の動きベクトルに対応する2つの参照フレームが現フレームに対して同じ方向である場合に有効となる。そのため、ブロックで選択された2つのreferencepictureのindex番号に対応するデータ26と28の値が、現フレームに対して異なる方向に位置する2つの参照フレームの組み合わせである場合には、図10の動きベクトル符号化方法ではなく、各動きベクトルを図8の方法で個別に符号化/復号化する。一方、ブロックで選択された2つのreferencepictureのindex番号に対応するデータ26と28の値が、現フレームに対して同じ方向に位置する2つの参照フレームの組み合わせである場合には、現フレームから離れた動きベクトルについては、図10の方法が適用される。ここまでは、directモードに使用するBackwardreferencepictureをindex0として説明してきた。しかしながら、backwardreferencepicturesetからindex0以外の番号をdirectモードのbackwardreferencepictureとして選択することも考えられる。例えば、図1と2のdirect_reference_idx_bwd24のように、directモードに使用するbackwardreferencepictureのindex番号をピクチャレイヤで示すことにより、フレーム単位でbackwardreferencepictureを変更することが可能となる。さらに、direct_reference_idx_bwd24をindex番号そのものではなく、index番号に1を足した値とすることにより、値0にdirectモードに使用できる後方参照フレームがbackwardreferencepicturesetにないという意味を持たせることが可能となる。次に図18のマクロブロックレイヤシンタックス、図20、21のマクロブロックタイプコード表を用いて、マクロブロックデータの構造について説明する。符号化に使用する方法としては、1種類の可変長符号表のみを用いるUniversalVLCUVLC、固定長符号化と可変長符号化各符号化要素に異なる符号表を用意を組み合わせた符号化方法ならびに、算術符号化Wittenetal.,ArithmeticCodingforDataCompression,Comm.oftheACM,306,1987,pp.520-541などが考えられるが、本実施例では、UVLCと算術符号化を例として説明する。図11の表81がUVLCの構成を示しており、Xnの値は‘0’または‘1’となる。表82に、実際の可変長符号表の例を示す。算術符号化の具体的な方法としては、各符号の意味を数ビットのバイナリーデータに置き換え、各ビットを各々の0と1の発生確率を示す生起確率モデルに応じて符号化する方法を考える。この方法は、CABACContext-basedAdaptiveBinaryArithmeticCodingと呼ばれている。図18は、B-pictureにおけるマクロブロックデータのシンタックス構造を示している。この図を用いて、B-pictureならびにP-pictureのマクロブロックデータ構造について説明する。なお、I-pictureについては、本願の特徴に含まれないため説明を省略する。mb_skip_run11では、連続するSKIPモード数をランレングス符号化連続する0の数を符号化、1つ前のマクロブロックのタイプがSKIPモードでない場合には、連続するSKIPモードの数をゼロとするしたデータで、エントロピー符号化の方法としてUVLCを用いる場合にのみ発生する。SKIPモードとは、予測誤差信号を符号化せず、予測ブロック画像をそのまま再生ブロック画像とするマクロブロックタイプである。予測ブロック画像は、P-pictureではindex0のforwardreferencepictureから予測ベクトル位置に相当するマクロブロック画像を切り出す方法、B-pictureではdirectモードにて合成される。このSKIPモードは、低レート符号化にて多く選択されるモードであり、特にB-pictureでは選択される確率が高い。従って、directモードの予測性能は、低レートの符号化性能に直接影響する。CABACを用いた符号化方法では、mb_skip_run11は使用せず、SKIPモードもmb_type12にて扱う表91,93のcodenumber0の欄参照。mb_type12では、表91P-pictureまたは表93B-pictureに示されるマクロブロックモードからマクロブロック毎に1つのモードが選択され、符号化される。表91では、codenumber6,7に示されているIntraM×NのM,Nは空間予測を行う際の小ブロックサイズを示しており、M×Nは動き補償を行う際の小ブロックサイズ図7のモード1~モード4を示している。但し、codenumber5に示されるモードはCABACの場合には使用しない。表93では、codenumber23,24に示されているIntraM×NのM,Nは空間予測を行う際の小ブロックサイズ、M×Nは動き補償を行う際の小ブロックサイズ図7のモード1~モード4に対応を示しており、directはdirectモードDirectCBP==0は、CABAC適用時のSKIPモードを示している。表93のBlock1ならびにBlock2は、図7のモード2またはモード3における2個の小ブロックを識別しており、各小ブロックの予測方向がForward前方予測、Backward後方予測、Bi-predictive2方向参照フレーム予測のいずれであるかを示している。ここで、directモードについて説明を加える。mb_skip_run11とmb_type12の選択候補にdirectモードが含まれているが、複数参照フレーム機能や2参照フレームの機能を適用する方式では、directモードが適用できないケースが考えられる。そこで、本発明では図12に示すように、条件に応じて予測方法を切り換える手順を用いる。最初に、ピクチャヘッダ内のdirect_mv_scale_bwd_dir図1またはdirect_mv_scale_bwd_dir[0]図2にて、currentpictureにdirectモードが使用可能か否かをチェックする301。処理301にて使用不可と判定された場合には、collocatedblockのforwardMVを必要としない代用モード詳細は後述にて予測マクロブロックを作成する304。処理301にて使用可能と判定された場合には、8x8ブロック毎に予測方法の選定を行う。ここで8x8ブロックとしたのは、図7のブロック分割方法では、参照フレームと予測方向選択の最小単位が8x8ブロックとされているためである。具体的には、8x8ブロックに対応するcollocatedblockにforwardMVを持つ予測モードが適用されているか否かをチェックする302。そして、適用されていると判定された場合には、directモードにて予測ブロックを作成し303、適用されていないと判定された場合には、代用モードにて予測ブロックを作成する304。処理302では、collocated8x8blockについて、予測モードがintraモードの場合、予測方向がbackwardpredictionの場合、forwardreferencepictureに対するdirect_mv_scale_fwd_dir[index]の値がcurrentpictureに対して後方向未来方向に位置することを示している場合、あるいはforwardreferencepictureがcurrentpictureのforwardreferencepicturesetに含まれていない場合に、directモード使用不可と判定する。なお、図12の処理302では、8x8ブロック単位でdirectモードの使用可否判定を実施しているが、これをマクロブロック単位で実施することも可能である。但し、この場合には、マクロブロック内のすべての予測ブロック、図7のブロック分割方法の場合には4個の8x8ブロックのすべてが、directモード使用可能の状態である場合にのみ、directモード使用可能と判定される。図13は、ピクチャヘッダの構造にデータ24が追加された場合について、予測方法を切り換える手順を示している。図12と異なる点は、処理301が処理305に変更されている点であり、具体的には、チェックするdirect_mv_scale_bwd_dirのindex番号が図13のデータ24にて設定した値とされている点である。図18の説明に戻る。mb_type12にて8x8splitが選択された場合には、図7のモード4に示される4個の8×8小ブロック54-0~54-3について、それぞれ、8x8Partition13が発生する。具体的には、8x8Partition18では、表92P-pictureまたは表94B-pictureに示される8x8partitionモードから各8x8ブロックについて1つのモードが選択され、符号化される。表92では、codenumber4に示されているIntraは空間予測を示しており、M×Nは動き補償を行う際の小ブロックサイズ図7の8x8partition1~8x8partition4を示している。表94では、codenumber13に示されているIntraは空間予測の適用、M×Nは動き補償を行う際の小ブロックサイズ図7の8x8partition1~8x8partition4を示しており、directはdirectモードを示している。表94のPredictionは、図7のモード4に属する各小ブロックの予測方向がForward前方予測、Backward後方予測、Bi-predictive2参照フレーム予測のいずれであるかを示している。8x8Partition18にてdirectモードが選択された場合においても、図12または図13と同様の予測方法切り換え手順が適応できる。しかしながら、8x8Partition内のdirectモードの予測性能はdirectモードMBほど重要ではない。そこでより簡単な方法を適用することも可能である。例えば、処理302にてcollocatedblockがForwardMVを持っていないと判定される場合に、処理304の替わりに、ForwardMVを0ベクトル、forwardreferencepictureならびにbackwardreferencepictureのindexを0に設定した上でdirectモードにて予測ブロックを生成する方法が考えられる。この際、backwardreferencepictureが存在しない場合には、forwardpredictionのみで予測ブロックを生成すればよい。より簡単には、処理302にてcollocatedblockがForwardMVを持っていないと判定されるケースでは、符号化側にてdirectモードの選択しない方法が考えられる。mb_type12と8x8Partition13の符号化方法については、UVLCを利用する場合には、表91~94のcodenumberに対応するコードを表82から選択して符号化する。CABACを利用する場合には、表91~表94のBinarizationの欄に示されているビット列を各ビットの確率モデルを用いて算術符号化する。ref_index_fwd14は、動き補償に使用する前方向の参照フレームのindex番号を示しており、当該マクロブロック内の各分割ブロック図7の51~54について必要とされる。Index番号はforwardreferencepicturesetから選択される。但し、forwardreferencepicturesetに含まれる参照フレームが1枚のみの場合、ブロックタイプあるいはマクロブロックタイプがSkip,directまたはintraのブロックの場合、ならびにblockpredictionがbackwardの場合については、このコードは発生しない。また、P-pictureにてmb_typeとして表91のcodenumber5が選択された場合には、index0のforwardreferencepictureが参照フレームとして自動的に選択されるため、このコードは発生しない。forwardreferencepicturesetがindex0~index4の値を持つ場合を例として、符号化方法を考える。この例では、index0~index4がそれぞれ、codenumber0~4に割り当てられる。UVLCを利用する場合には、codenumber0-4に対応するコードを表82から選択して符号化/復号化される。CABACを利用する場合には、codenumber0-4に対して、それぞれ1’,01’,001’,0001’,00001’のバイナリーデータを割り当て、ビット列と各ビットの確率モデルを用いて算術符号化する。ref_index_bwd15は、動き補償に使用する後ろ方向の参照フレームのindex番号を示しており、当該マクロブロック内の各分割ブロック図7の51~54について必要とされる。Index番号はbackwardreferencepicturesetから選択される。但し、ピクチャの種類がP-pictureの場合、backwardreferencepicturesetに含まれる参照フレームが1枚のみの場合、ブロックタイプあるいはマクロブロックタイプがskip,directまたはintraのブロックの場合、ならびにblockpredictionがforwardの場合については、このコードは発生しない。符号化方法については、ref_index_fwdと同じであるため、説明は割愛する。mvd_fwd16は、mb_type12と8x8Partition13がforwardbi-predictiveも含むに伴う動きベクトルを伴うマクロブロックであることを示す場合に発生し、マクロブロック内のforwardMVの数だけ繰り返される。また、したがって、mb_type12がIntraM×N、SKIPP-pictureまたはdirectB-pictureの場合や、8x8Partition13がintraまたはdirectB-pictureの場合にはこのデータは発生しない。また、blockpredictionがbackwardの分割ブロックの場合B-pictureにもこのデータは発生しない。同様にmvd_bwd17は、mb_type12と8x8Partition13がbackwardbi-predictiveも含むに伴う動きベクトルを伴うマクロブロックであることを示す場合に発生し、マクロブロック内のbackwardMVの数だけ繰り返される。また、したがって、ピクチャタイプがP-pictureの場合、mb_type12がIntraM×N、directの場合や、8x8Partition13がintraまたはdirectの場合にはこのデータは発生しない。また、blockpredictionがforwardの分割ブロックの場合にもこのデータは発生しない。CBP18は、図6に示される24個のDCTブロックについて、‘0’以外の量子化DCT係数有意係数が16個係数に含まれているか否かを示す符号化データである。Residual19は、有意量子化DCT係数の符号化データを示している。CBPにて有意係数が無いことが示されているブロックについては、符号化処理が省略される。したがって、CBPが0の場合には、Residualは発生しない。さらに、CBP18とResidual19は、mb_type12がdirectCBP==0のときには発生しない。ここで、図7の分割タイプを例として、上記に示した予測動きベクトルmvd_fwd16ならびにmvd_bwd17の生成方法を図8に説明する。図7のモード151のブロック51-0,モード454の小ブロック54a-0、54b-0、54b-1、54c-0、54c-1ならびに54d-0~54d-3については、同じ予測方法を用いる。動きベクトルを符号化する対象の小ブロックを50と仮定する。これらの小ブロックでは、動きベクトルの水平垂直成分それぞれについて、隣接位置A,B,Cに位置する3ブロックの動きベクトルを候補としてその中間値を計算し、中間値の動きベクトルを予測動きベクトルとする。但し、符号化順序やマクロブロック位置の関係で位置Cのブロックが符号化前の場合や画像の外に位置する場合が考えられる。この場合には、位置Cのかわりに位置Dに位置するブロックの動きベクトルを候補動きベクトルの1つとして用いる。なお、位置AとDのブロックが画像の外に位置する場合には、その動きベクトルを‘0’ベクトルとして予測処理を行い、位置、DとBとCが画像の外に位置する場合には、位置Aのブロックの動きベクトルとして予測処理を行う。この際、3個の候補ブロックのうち2個が動きベクトルを持たない場合には、残りの1つの候補動きベクトルを予測動きベクトルとする。モード252の2個の小ブロック52-0,52-1、モード353の2個の小ブロック53-0,53-1については、図8に示す矢印の根元に位置するブロックの動きベクトルを予測値とする。なお、この方法における動きベクトル符号化では、同じ参照フレームの動きベクトルのみが予測に用いられる。したがって、隣接ブロックの動きベクトルが符号化ブロックにて選択された参照フレームと異なる場合には、画像の外に位置するものとして扱う。色差成分用の動きベクトルについては符号化せず、輝度成分の動きベクトルを2で割って使用する。図14~17を用いてcollocatedblockのForwardMVを必要としない代用モード4x4bi-predictiveについて説明する。DirectモードならびにDirectモードを使用するB-pictureにおけるSkipモードは、選択率が高く符号化性能を高めるために重要な予測方式である。しかしながら、MPEG-4Part10のように、参照フレームの選択や各フレームの符号化手順に自由度を持たせた方式では、図1、2ならびに図12、13の説明で示したように、従来のDirectモードが有効に機能しないフレームやブロックが発生する。この代用モードは、従来のDirectモードが有効に機能しない場合に切り替えて使用することにより、予測性能の低下を抑制したり、予測効率を高める効果がある。また、従来のDirectモードが参照フレームの動きベクトルを使用するのに対して、この代用モードは現フレームの動きベクトルを利用するため、以降のフレームの符号化/復号処理のために動きベクトルをメモリに蓄積する処理が不必要となり、メモリサイズを削減する効果がある。さらに、代用モードでは、図9に示す動きベクトルのスケーリング処理が必要ないため、復号処理が簡易となる。この代用モードの予測手順は、図14に示す4パートから構成される。まず、8x8ブロック単位で予測方向をbi-predictive,forward,backwardから選択する610。選択には、対象8x8ブロックC81の直上ブロックB83と直左ブロックA82を用いて実施する。次に処理610にて選択した予測モードの実施に必要となる参照フレームの選択を実施する620。選択には、対象8x8ブロックC81の直上ブロックB83と直左ブロックA82を用いて実施する。次に4x4ブロック単位で、選択した予測モードと参照フレームに対応する動きベクトルの算出処理を実施する630。最後に処理610と620にて選択した予測モードと参照フレームと処理630にて算出した動きベクトルにて4x4予測ブロックを合成する。そして算出した動きベクトルと参照フレームのindexを予測動きベクトル予測用に保存する640。このように、同一フレーム内の周囲ブロックの情報から予測処理に必要とされる各要素データを予測することにより、局所的な特徴に応じた動き予測が可能となり、予測効率が向上する。また、フレーム内の隣接ブロックのデータのみを用いるため、この代用モード実施のために保存するデータ量が削減される。以降に処理の詳細を示す。図15に処理610の予測方向選択処理手順を示す。まず、対象8x8ブロックの直上ならびに直左の8x8ブロックの何れかがForwardMVを持っているか否かをチェックする611。次に同様に、対象8x8ブロックの直上ならびに直左の8x8ブロックの何れかがBackwardMVを持っているか否かをチェックする612。そして、直上または直左の8x8ブロックの何れかがforwardMVとbackwardMVを持っている場合と、直上と直左の8x8ブロックのいずれもforwardMVもbackwardMVを持っていない場合には、bi-predictiveを選択する615。直上ならびに直左の8x8ブロックがforwardMVのみを持っている場合にはforwardMV616、backwardMVのみを持っている場合にはbackwardMV617を選択する。この手順によれば、予測効率が最も高いbi-predictive予測が優先的に選択される。また、bi-predictiveを効率良く実施するために必要な情報が周囲ブロックから得られない場合には、周囲から得られる情報に基づいて最適と推測される予測方向が選択できる。さらに、周囲から情報が十分な得られない場合には、他の予測モードに対してDirectモードを選択する効果が高い状態となるように制御することで、予測効率の向上に貢献する。具体的には、以降に説明する図16と図17の処理と組み合わせることにより、index0現フレームに最も似通ったフレームのforwardreference,backwardreferenceを参照フレームとしたゼロ動きベクトルのbi-predictive予測を選択するような手順となっている。図16に処理620の参照フレーム選択処理手順を示す。この処理は、forwardとbackwardについて個別に実施される。図16は、forwardreferencepicture選択の場合を示しているが、backwardreferencepictureについても手順は同じである。まず、対象8x8ブロックの直上ならびに直左の8x8ブロックが何れもforwardreferencepictureを利用しているか否かをチェックする621。何れの8x8ブロックともforwardreferencepictureを利用していると判定された場合には、2個の8x8ブロックで使用されたforwardreferencepictureのうちindex番号の小さい方を選択する623。処理621にて少なくとも何れかの8x8ブロックがforwardreferencepictureを利用していないと判定された場合には、次に、対象8x8ブロックの直上または直左の8x8ブロックが何れかがforwardreferencepictureを利用しているか否かをチェックする622。処理622にて、何れかの8x8ブロックがforwardreferencepictureを利用していると判断された場合には、利用したforwardreferencepictureを選択する625。処理622にて、何れの8x8ブロックもforwardreferencepictureを利用していない場合には、index0を選択する624。このように、隣接ブロックの符号化に適用されたIndex番号のうち、小さい値を選択するように制御する。これは、参照フレーム候補の設定において、現フレームとの相関が高いフレームに小さいindex番号を与えためである。Index番号の設定方法には、自動的に設定される方法と、符号化時に設定する方法がある。前者では、現フレームに近いフレームから順に小さいindex番号が与えられる。後者は、例えばシーンチェンジ時などに適用され、以前に符号化した過去の同じカメラアングルのフレームに小さいindex番号を割り当てる。このように、小さいindex番号を選択することにより、処理対象のフレームに近い画像を選択する可能性が高くなる。図17に処理630の動きベクトル算出処理手順を説明する。この処理は、4x4ブロック単位で、forward,backwardについて個別に実施する。まず、直上または直左の4x4ブロックの何れかが画像の外に位置しているか否かをチェックする631。処理631にて、何れかの4x4ブロックが画像の外に位置していると判定される場合には、4x4ブロックの動きベクトルをゼロベクトルとする625。処理631にて何れの4x4ブロックも画像内に位置していると判定される場合には、次に、直上または直左の4x4ブロックの何れかが処理620にて選択した参照フレームへの利用可能な動きベクトルを持っているか否かをチェックする632。処理632にて何れの4x4ブロックも選択した参照フレームへの利用可能な動きベクトルを持っていないと判定される場合には、4x4ブロックの動きベクトルをゼロベクトルとする625。処理632にて何れかの4x4ブロックが選択した参照フレームへの利用可能な動きベクトルを持っていると判定される場合には、直上または直左の4x4ブロックが有する何れかの動きベクトルが、処理620にて選択した参照フレームへのゼロベクトルであるか否かをチェックする633。処理633にて何れかの4x4ブロックの動きベクトルが参照フレームへのゼロベクトルと判定された場合には、4x4ブロックの動きベクトルをゼロベクトルとする625。処理633にて何れの4x4ブロックの動きベクトルも参照フレームへのゼロベクトルではないと判定された場合には、4x4ブロックに対する中間値予測により動きベクトルを算出する。このように、ゼロベクトルを優先的に選択するのは、Directモードが背景部分で特に効果が高いことに対応するためである。本発明には次のような変形も含まれる。1本実施例では、代用モードの使用を図12のようにcollocatedblockの状況によって決定しているが、directモードを代用モードに完全に切り換えることも考えられる。この方法では、処理301にてフレーム単位あるいはスライス単位詳細は変形例4に記載でdirectモードと代用モードの切り替えを制御する。これにより、選択候補が増え、特殊効果を施したシーンへの適用性が向上するため、予測効率も向上する。但し、参照フレームと現フレーム図9の動きベクトルの算出を外挿処理にて行う可能性が生じるため、演算処理量に強い制約がある条件では図12、13に示すように2方式の切り替え制御を実施する方法が有効である。2図14~17については、予測方向、参照フレーム、動きベクトルを周囲のブロックから生成するという全体処理が一致していれば細かい条件については限定されない。例えば、処理631にて直上または直左の4x4ブロックの何れかという記述を直上ならびに直左の4x4ブロックの両者がに変更した方法も本願に含まれる。また、モード選択時に利用するブロックを2個から3個予測ベクトルの作成に使用するに変えた方法も本願に含まれる。このモード選択時に利用するブロックを2個から3個に変える方法は、動きベクトル推定との整合性が良く、予測効率の向上にもつながるため、演算処理量に強い制約がない条件では有効である。3図1、2ならびに図12、13ではcollocatedblockが現フレームに対して前方向のforwardMVを持っていれば、そのforwardMVに対するforwardreferencepictureのindex番号に関わらずdirectモードを適用する方法について示してきた。しかしながら、directモードは、forwardMVに対するforwardreferencepictureが現フレームから離れると効果が低くなる傾向がある。そこで、forwardMVに対するforwardreferencepictureのindex番号が0の場合のみdirectモードを適応する方法も有効と考えられる。図24と図25にてその方法を説明する。図24にピクチャレイヤのデータシンタックスを示す。picturelayerpicturestructureframenumberreferencepictureselectionlayerifBpicturedirectreferenceusableifdirectmvscalebwddirectmvscalefwdforpicturedistancefwddirindexpicturedistancefwdindexforpicturedistancebwddirindexpicturedistancebwdindexピクチャタイプがB-pictureの場合について説明する。direct_reference_usable23は、directモード用に指定される後方参照フレームが現フレームよりも未来に位置しているおり、かつdirectモード用に指定される前方参照フレームが現フレームよりも過去に位置しているかを示す情報である。directモード用に指定される後方参照フレームは、通常、index0に割り当てられたbackwardreferencepictureであるが、この情報にて、index0のbackwardreferencepictureがdirectモードに使用できるか否かが明確に判断できる。また、directモード用に指定される前方参照フレームは、通常、index0に割り当てられたforwardreferencepictureであるが、この情報にて、index0のforwardreferencepictureがdirectモードに使用できるか否かが明確に判断できる。このデータ23が0、すなわちindex0のbackwardreferencepictureがcurrentpictureに対して前方向過去方向に位置しているが、あるいはindex0のforwardreferencepictureがcurrentpictureに対して後方向未来方向に位置しているピクチャについては、directモードが実施できないため、directモードの適用のために必要とされるピクチャ間隔情報は符号化/復号化する必要はない。従って、この場合には、currentpictureとindex0のforwardreferencepictureの時間間隔を示すdirect_mv_scale_fwd2427とcurrentpictureとindex0のbackwardreferencepictureの時間間隔を示すdirect_mv_scale_bwd2429の符号化/復号化は省略される。データ26~29は図10に示すbi-predictiveの動きベクトル符号化に用いるデータである。利用方法については、図2のところで説明したため、ここでは割愛する。なお、direct_reference_usable23は、directモード用に指定される後方参照フレームが現フレームよりも未来に位置しているか否かだけを示す情報とし、direct_mv_scale_fwdの位置を示す情報direct_mv_scale_fwd_dirをデータ2427の前に符号化/復号化する方法も考えられる。図9でforwardreferencepictureが、currentpictureよりも後方にある状態のときには、2つの動きベクトル122と121は、外挿計算にてより算出される。図25の場合について、directモードの扱いについて説明する。図12、13の説明で示したように、図18のmb_skip_run11とmb_type12の選択候補にdirectモードが選択された場合でも、複数参照フレーム機能や2参照フレームの機能を適用する方式では、directモードが適用できないケースが考えられる。そこで、本発明では条件に応じて予測方法を切り換える手順を用いる。その手順を図25に示す。最初に、ピクチャヘッダ内のdirect_reference_usable23にて、currentpictureにdirectモードが使用可能か否かをチェックする306。処理306にて使用不可、すなわちindex0のforwardreferenceがcurrentpictureに対して時間的に未来に位置しているかあるいはindex0のbackwardreferenceがcurrentpictureに対して時間的に過去に位置していると判定された場合には、collocatedblockのforwardMVを必要としない代用モードにて予測マクロブロックを作成する304。処理306にて使用可能と判定された場合には、8x8ブロック毎に予測方法の判定を行う。ここで8x8ブロックとしたのは、図7のブロック分割方法では、参照フレームと予測方向選択の最小単位が8x8ブロックとされているためである。具体的には、8x8ブロックに対応するcollocatedblockにForwardMVを持つ予測モードが適用されているか否かをチェックする307。そして、適用されていると判定された場合には、directモードにて予測ブロックを作成し303、適用されていないと判定された場合には、代用モードにて予測ブロックを作成する304。処理307では、collocated8x8blockについて、予測モードがintraモードの場合、予測方向がbackwardpredictionの場合、あるいはforwardreferencepictureがcurrentpictureのforwardreferencepicturesetに含まれるindex0のreferencepictureでない場合に、directモード使用不可と判定する。なお、図12の場合と同様に、処理307のdirectモードの使用可否判定をマクロブロック単位で実施することも可能である。但し、この場合には、マクロブロック内のすべての予測ブロック、図7のブロック分割方法の場合には4個の8x8ブロックのすべてが、directモード使用可能の状態である場合にのみ、directモード使用可能と判定される。なお、図24の説明で示したように、direct_reference_usable23がindex0のforwardreferenceがcurrentpictureに対して時間的に未来に位置しているか否かという条件のみを示している場合も考えられる。この場合には、図9のdirectモード予測にて図24の説明で示した外挿計算による動きベクトルの算出が実施される可能性がある。さらに、上記変形例1で示したように、direct_reference_usable23にて、directモードの使用判定条件のみを示している場合も考えられる。この場合も、directモードの使用が指定されており、かつforwardreferenceが時間的に未来に位置しているか、あるいはbackwardreferenceが時間的に未来に位置している場合には、図9のdirectモード予測に用いる動きベクトルは外挿計算にて算出する。4図1、2ならびに図24では、ピクチャヘッダのデータ構造に限定して説明しているが、複数のマクロブロックをまとめたグループであるスライスレイヤのヘッダ部にこれらの情報が記載される場合にも本発明のデータ構造は適用できる。圧縮データをスライス単位でデータパケット化して伝送する方式では、スライスレイヤのヘッダ部の情報でデータの復号手順を決める。そのため、復号化手順に関連する本発明の情報はスライスヘッダ部に必要となる。1つのスライスにどのマクロブロックが属するかを示す情報は、上位の通信ネットワーク関連情報を司る通信パケットヘッダやファイルフォーマットのヘッダ部にて示される場合や、データ全体の構成を決めるシーケンスヘッダに示される場合などがある。このスライス単位でDirectモードと代用モードを切り替える方法は、フレーム単位で切り替える方法に比較して、選択の自由度が向上し、予測効率が向上する。但し、予測効率向上のためには、スライス単位での選択制御が必要となるため、演算量が増大する。したがって、リアルタイム処理を必要とするアプリケーションでは、フレーム構造によるフレーム単位での切り替え制御が有効と言える。ここまで説明した本発明の方式は、専用回路専用チップを用いる画像符号化装置画像復号化装置や、汎用プロセッサを用いるソフトウェア画像符号化装置ソフトウェア画像復号化装置に適用できる。図28に組み込み型のソフトウェア符号器復号器の例として、アプリケーションプロセッサを用いた携帯端末の例を示す。主に無線通信処理を行うホスト部2820、カメラからの入力信号を処理するカメラ入力処理部2830、映像符号化/復号化などのアプリケーション処理を実施するアプリケーションプロセッサ部2800、表示データを処理する出力デバイス2840にて構成されている。符号化時には、カメラにて撮影された画像は、まず、カメラ入力処理部2830にて図3に示すようなYUV信号に変換され、アプリケーションプロセッサ部2800に入力される。アプリケーションプロセッサ部2800は、入力画像を図1または図2または図24と図18に示すようなストリームデータに符号化する。組み込み型の場合には、汎用プロセッサ2810内の処理部2811にて符号化処理図14~17のフローチャートに示す動作を含むを実施するためのソフトウェアアセンブラコードは、内部RAM2812または外部RAM2830に予め格納されている。また、図14~17のフローチャートに示されるような予測処理に利用されるデータ複数の参照ピクチャや各マクロブロックの参照ピクチャ番号、予測方向、動きベクトルも、予め格納する領域が内部RAM2812または外部RAM2830に確保されている。アセンブラコードや各データの格納領域配置は、プロセッサ能力、バス速度、アセンブラコードや各データへの推定アクセス頻度とそれらの容量のバランスで設計される。通常、内部RAMは外部RAMよりもアクセス速度が速く、外部RAMは内部RAMよりも搭載容量が多い。従って、アクセス頻度が高く、容量が少ないデータ格納領域やアセンブラコードを内部RAMに配置する。この際、アセンブラコードは内部RAMと外部RAMに分割されて配置される場合もある。符号化されたビットストリームデータは、外部RAM2830あるいはホスト部2820内のメモリに保存される。何れに保存されるかは、符号化ビットストリームデータの用途など、携帯端末向けのサービスにより異なる。復号時には、ホスト部2820あるいは外部RAM2830からアプリケーションプロセッサ部2800に符号化ビットストリームデータが供給される。アプリケーションプロセッサ部2800は、入力された符号化ビットストリームデータを復号し、YUV再生画像をRGB画像に変換したのち出力デバイス2840に出力する。この際、YUV再生画像は一旦外部RAMあるいは内部RAM内のフレームメモリに蓄積される場合もある。符号化処理の場合と同様に、復号処理においても、汎用プロセッサ2810内の処理部2811にて復号処理図14~17のフローチャートに示す動作を含むを実施するためのソフトウェアアセンブラコードは、内部RAM2812または外部RAM2830に予め格納されている。また、図14~17のフローチャートに示されるような予測処理に利用されるデータ複数の参照ピクチャや各マクロブロックの参照ピクチャ番号、予測方向、動きベクトルも、予め格納する領域が内部RAM2812または外部RAM2830に確保されている。図29には、より汎用的な用途で用いられるソフトウェア符号器復号器の例を示す。符号化時には、入力画像はフレームメモリ2950に蓄えられ、汎用プロセッサ2900はここから情報を読み込んで符号化処理を行う。この汎用プロセッサを駆動するためのプログラム図14~17のフローチャートに示す動作を含むはハードディスクやフロッピー登録商標ディスクなどによる蓄積デバイス2930から読み出されてプログラム用メモリ2920に蓄えられている。汎用プロセッサが出力する符号化情報は一旦入出力バッファ2940に蓄えられた後、符号化ビットストリームとして出力される。処理メモリ2910には、図14~17のフローチャートに示されるような予測処理に利用されるデータ複数の参照ピクチャや各マクロブロックの参照ピクチャ番号、予測方向、動きベクトルが蓄積されており、プログラムの処理に従って汎用プロセッサにて読み込まれる。また、汎用プロセッサは、プログラムの処理に従ってデータを処理メモリに蓄積する。復号時には、入力された符号化ビットストリームは一旦入出力バッファ2940に蓄えられ、汎用プロセッサ2900はここから読み込んで復号する。この汎用プロセッサを駆動するためのプログラム図14~17のフローチャートに示す動作を含むは、ハードディスクやフロッピー登録商標ディスクなどによる蓄積デバイス2930から読み出されてプログラム用メモリ2920に蓄えられている。復号された再生画像は一旦フレームメモリ2950に蓄えられた後、出力処理を実施するデバイスに出力される。処理メモリ2910には、図14~17のフローチャートに示されるような予測処理に利用されるデータ複数の参照ピクチャや各マクロブロックの参照ピクチャ番号、予測方向、動きベクトルが蓄積されており、プログラムの処理に従って汎用プロセッサにて読み込まれる。また、汎用プロセッサは、プログラムの処理に従って生成されたデータを処理メモリに蓄積する。専用回路専用チップを用いる画像符号化装置の構成を図22に示す。1個のマクロブロック処理の符号化処理について、処理の流れを説明する。まず、入力マクロブロック画像201とフレームメモリ210に蓄積されている符号化済みフレームの復号画像参照フレーム間の動き補償処理が全てのマクロブロックタイプ8x8Partitionタイプと候補参照フレームの組み合わせについて、動き補償器211にて行われ、最適なマクロブロックタイプと8x8Partitionタイプが選択される。この際、Directモードの動き補償を行う場合には、MV予測器215から予測方向、参照フレーム番号、動きベクトル情報を取得する必要がある。図26にMV予測器の内部構造を示す。Directモードを示すマクロブロックタイプ8x8Partitionタイプ、マクロブロック位置情報ブロック位置情報ならびにdirectモードのタイプdirect/alternative、動き補償器にて制御、alternative予測は図14~図17に示す代用モードが入力されるとスイッチャ2620を通してスイッチャ2630が起動される。スイッチャ2630は、directモードのタイプにしたがってスイッチを切り替える。directモードのタイプがdirect予測の場合には、動きベクトル計算部2660が起動される。動きベクトル計算部2660は内部メモリ2610に保存されている情報を用いて、図9に示す予測パラメータを算出する。算出されたパラメータは、内部メモリに保存されるとともに動き補償器に通知される。directモードのタイプがalternative予測の場合には、alternative予測部2640が起動される。alternative予測部は、図14に示す処理を実施する。具体的には、予測モード選択部2641,参照フレーム選択部2642,動きベクトル選択部2643が、内部メモリ2610に保存されている情報を用いて、ぞれぞれ、図15、図16、図17のフローチャートに示す処理を実施し、予測方向、参照フレーム番号ならびに動きベクトルを算出する。これらの予測パラメータは内部メモリに保存されるとともに動き補償器に通知される。動き補償器の説明に戻る。最適なマクロブロックタイプ選択後、検出された動きベクトルは、マクロブロックタイプ、予測方向情報forward/backward/bi-predictive、参照フレーム番号と共にMV予測器215に通知され、内部メモリ2610の内容が更新されるdirectモードが選択された場合には、マクロブロックタイプあるいは8x8Partitionタイプのみ。マクロブロックタイプならびに8x8Partitionタイプがdirectでないブロックについては、動きベクトル予測部2650スイッチャ2620にて起動にて図8に示す予測処理を実施し、差分動きベクトルを算出する。算出された差分動きベクトルは、マクロブロックタイプ、8x8Partitionタイプならびに参照フレーム番号と共に多重化器206に出力されるdirectモードが選択された場合には、差分動きベクトルと参照フレーム番号は多重化されない。なお、ここでは、差分動きベクトルの算出を最適なマクロブロックタイプ8x8Partitionタイプについてのみについて行うものとしているが、差分動きベクトルの値やその符号量を最適マクロブロックタイプ8x8Partitionタイプ選択時の評価値として利用する場合も考えられる。この場合には、それぞれのマクロブロックタイプ8x8Partitionタイプや参照フレームの組み合わせについて、MV予測器にて差分動きベクトルを算出する。動き補償により生成された参照フレームから抜き出された予測マクロブロック画像213は、Intra/Inter判定処理部214に入力される。Intra/Inter判定部では、イントラモードとインターモードのいずれを最終的なマクロブロックタイプとするかを決定し、判定情報218を多重化器206ならびにMV予測器215に通知する。MV予測器215は、判定情報218がイントラモードの場合、内部メモリ内の保存データを更新する。多重化器は、イントラ/インターモード判定結果と、MV予測器から得られたインターモードのマクロブロックタイプ、8x8Partitionタイプ、参照フレーム番号ならびに差分動きベクトルdirectモードが選択された場合には、差分動きベクトルと参照フレーム番号はなしから図18に示す符号を生成し、符号化ビットストリームに多重化する。Intra/Inter判定部にて選択されたマクロブロックタイプがインターモードの場合には、予測マクロブロック画像は、現フレームの入力マクロブロック画像201との間で差分器202にて差分処理され、差分マクロブロック画像が生成される。この際、同時に、予測マクロブロック画像は加算器209に出力される。Intra/Inter判定部にて選択されたマクロブロックタイプがイントラモードの場合には、差分器202ならびに加算器209には予測マクロブロックは出力されない。差分器202から出力される差分マクロブロック画像あるいは入力マクロブロック画像は、まず、DCT変換される。DCTのブロックサイズは従来の符号化方式では8×8画素が一般的であるが、最近では、MPEG-4Part10AdvancedVideoCodingなどで4x4画素サイズによるDCT変換も検討されているため、ここでは、4×4DCTを例に説明する。差分マクロブロック画像は、図6に示すように、24個の4x4画素ブロックに分割され、DCT変換器203にてそれぞれ16個のDCT係数に変換される。各DCT係数は、量子化器204にて量子化され、多重化器206にて符号化される。多重化器206では、図1、図2あるいは図24に示すようなヘッダ情報と共に図18に示すようなマクロブロックデータ情報を多重化し、符号化ビットストリームを生成する。量子化DCT係数は、局部復号器220の逆量子化器207と逆DCT器208にて、差分マクロブロック画像あるいはマクロブロック画像に復号される。そのマクロブロックの予測モードがインターモードの場合には、差分マクロブロック画像が加算器209にて予測マクロブロック画像と加算した後、フレームメモリ201に合成される。そのマクロブロックがイントラモードの場合には、復元されたマクロブロック画像がフレームメモリ201に合成される。図22のイントラモードではイントラ予測を実施していないが、イントラ予測を実施する符号化方式でも、本発明は適用できる。この場合、Intra/Inter判定部にてイントラ予測を実施してもよいが、この処理を動き補償部に組み込む場合も考えられる。特にMPEG-4Part10AdvancedVideoCodingのように複数のイントラ予測タイプを準備している符号化方式では、インター予測タイプと同列にイントラ予測タイプを扱えるため、装置構成が簡易となる。この場合には、動き補償部211から常に差分予測マクロブロック画像213が差分器202と加算器209に供給される。また、マクロブロックタイプ情報に判定情報218が含まれているため、判定情報218は削除でき、判定情報218の入力に伴うMV予測部215での内部メモリ更新処理も省略される。また、DCT係数レベルでイントラ予測を行う場合も考えられる。この場合は、DCT変換部203ならびにIDCT変換部208に予測処理を組み込むことで対応できる。専用回路専用チップを用いる画像復号装置の構成を図23に示す。1個のマクロブロック処理の復号処理について、処理の流れを説明する。まず、符号化解読器501にて、入力された符号化データを解析し、動きベクトル関連情報とマクロブロックタイプ情報をMV予測器508に、量子化DCT係数情報を逆量子化器502に振り分ける。マクロブロックの予測モードがインターモードの場合には、MV予測器508に、ブロック位置情報、マクロブロックタイプ、8x8Partitionタイプ、予測方向情報、参照フレーム番号ならびに差分動きベクトルが入力されるマクロブロックタイプがdirectモードの場合には、マクロブロックタイプとマクロブロック位置情報のみが入力される。また、8x8Partitionタイプがdirectのときは、その8x8ブロックについては、参照フレーム番号ならびに差分動きベクトルは入力されない。図27にMV予測器の内部構造を示す。マクロブロックタイプあるいは8x8Partitionタイプがdirectのときには、マクロブロック位置情報あるいはブロック位置情報と共に符号化解読器501で復号されたスライスヘッダ情報内のdirectモードのタイプdirect/alternative、動き補償器にて制御が入力される。マクロブロック位置情報ブロック位置情報ならびにdirectモードのタイプdirect/alternative、動き補償器にて制御が入力されるとスイッチャ2620を通してスイッチャ2630が起動される。スイッチャ2630は、directモードのタイプにしたがってスイッチを切り替える。directモードのタイプがdirect予測の場合には、動きベクトル計算部2660が起動される。動きベクトル計算部2660は内部メモリ2710に保存されている情報を用いて、図9に示す予測パラメータを算出する。算出されたパラメータは、内部メモリに保存されるとともに動き補償器504に通知される。directモードのタイプがalternative予測の場合には、alternative予測部2640が起動される。alternative予測部は、図14に示す処理を実施する。具体的には、予測モード選択部2641,参照フレーム選択部2642,動きベクトル選択部2643が、内部メモリ2710に保存されている情報を用いて、ぞれぞれ、図15、図16、図17のフローチャートに示す処理を実施し、予測方向、参照フレーム番号ならびに動きベクトルを算出する。これらの予測パラメータは内部メモリ2710に保存されるとともに動き補償器504に出力される。マクロブロックタイプ8x8Partitionタイプがdirectでない時には、マクロブロックタイプ8x8Partitionタイプと共に、マクロブロック位置情報ブロック位置情報、参照フレーム番号ならびに差分動きベクトルが入力され、スイッチャ2620により動きベクトル予測器2750が起動される。動きベクトル予測部2750では、内部メモリ2710の内容と入力データを用いて図8に示す予測処理を実施し、動きベクトルを復元する。復元された動きベクトルは、予測方向情報、参照フレーム番号と共に内部メモリ2710と動き補償器504に出力される。動き補償器504では、入力されたデータとフレームメモリ507内の参照ピクチャを用いて予測マクロブロック画像を生成する。次に、予測誤差信号に関する符号化データを、逆量子化器502と逆DCT器503において、4×4画素ブロック毎に、逆量子化逆DCT処理し、差分マクロブロック画像を再生する。そして、予測マクロブロック画像と差分マクロブロック画像を加算器505にて加算処理し、マクロブロック画像を再生する。再生されたマクロブロック画像は、合成器506にて復号フレーム画像に合成される。また、復号フレーム画像は、次フレームの予測用にフレームメモリ507に蓄積される。マクロブロックタイプがイントラモードであった場合には、復号した量子化DCT係数情報を、逆量子化器502と逆DCT器503において、4×4画素ブロック毎に逆量子化逆DCT処理し、マクロブロック画像を再生する。この際、図27の内部メモリ2710の内容は、イントラモードとして更新される。この図では、イントラ予測は実施されないが、MPEG-4Part10AdvancedVideoCodingのように複数のイントラ予測タイプを準備している符号化方式でも、本発明は適用できる。この場合には、動き補償部504がイントラ予測の機能を含まれ、動き補償部からは常に予測マクロブロック画像が出力される。図28や図29に示すソフトウェア符号化器図14~図17ならびに図22と図26の符号化装置により生成される符号化ビットストリームを記録した蓄積メディア記録媒体の例を図30に示す。デジタル情報を記録することができる記録ディスク磁気ディスクや光ディスク3000には、同心円上にデジタル情報が記録されている。このディスクに記録されているデジタル情報の一部3001を取り出すと、directモードと代用モードの選択情報direct_reference_usable3011を含むスライスヘッダ情報3010、SKIPモード情報mb_skip_run3021、3031、3041、3051、マクロブロックタイプ情報mb_type,8x8partition3022、3032、3052、参照フレームの番号と動きベクトルの情報ref_index_few,ref_index_bwd,mvd_fwd,mvd_bwd3023、3053、DCT係数ならびに符号化ブロックパターン情報CBP,residual3024、3054が記録されている。以下、スライスヘッダにて、フレームタイプがB-picture、directモードが代用モードとされた場合について、データの構成を説明する。3021~3024ならびに3051~3054は、マクロブロックタイプがDirectではないマクロブロックの符号化データを示している。なお、8x8Partitionにdirectが含まれる場合もこのデータ構成となる。但し、この場合、8x8Partitiontypeがdirectとなる8x8ブロックに関する参照フレームの番号と動きベクトルの情報は符号化されないため、これらの情報は3023や3053には含まれず、復号時には、ソフトウェア復号器では図14~図17、専用復号装置では図27の処理2640にて、予測方向、参照フレーム番号ならびに動きベクトルが算出される。3031、3032、3035の組み合わせはマクロブロックタイプがdirectとなるマクロブロックの符号化データを示している。この場合には、参照フレームの番号と動きベクトルの情報は符号化されない。復号時には、ソフトウェア復号器では図14~図17、専用復号装置では図27の処理2640にて、予測方向、参照フレーム番号ならびに動きベクトルが算出される。3041は、スキップマクロブロックの例であり、マクロブロックタイプがdirectであり、DCT係数情報は存在しない。復号時には、ソフトウェア復号器では図14~図17、専用復号装置では図27の処理2640にて、予測方向、参照フレーム番号ならびに動きベクトルが算出され、これらのデータにて合成された予測マクロブロック画像がそのまま再生マクロブロック画像となる。このように、蓄積メディアにマクロブロックタイプとしてdirectモードを示す符号を効率良く埋め込むことにより、少ない情報で再生マクロブロック画像を合成することが可能となる。図31に、本発明の符号化方法復号方法を実現する装置の具体例を示す。記録媒体である光ディクス3101DVD-ROM、DVD-R、BD-ROM:Blu-rayDiscROM、CD-ROM/CD-Rなどに記録した符号化ビットストリームを読み取り、復号化する再生装置3102にも本発明の復号化方法を実装することが可能である。この場合、再生された映像信号はテレビモニタ3103に表示される。アンテナ3111から受信した地上デジタル放送あるいは衛星デジタル放送を符号化し、光ディスク3113DVD-RAM、DVD-RW、BD-RAM、CD-RWなどに符号化ビットストリームを記録する記録/再生装置3112にも本発明の符号化方法を実装することが可能である。また、光ディスク3113に記録した符号化ビットストリームを復号化する記録/再生装置3112にて、本発明の復号化方法も実装することが可能である。この場合、再生された映像信号はテレビモニタ3114に表示される。パソコン3121に本発明の画像符号化方法復号化方法用のソフトウェアを組み込むことにより、画像符号化復号化装置として活用することが可能である。このソフトウェアはコンピュータ読み取り可能な記録媒体である何らかの蓄積メディア光ディスク、フロッピー登録商標ディスク、ハードディスクなど3122に記録されており、これをパソコンが読み込んで使用する。また、さらに何らかの通信回線にこのパソコンを接続することにより、映像通信端末として活用することも可能となる。ケーブルテレビ用のケーブル3131または衛星デジタル放送あるいは地上デジタル放送のアンテナに接続されたセットトップボックス3132内の復号装置にも本発明の復号方法を実装することが可能であり、デジタル放送をテレビモニタ3133で再生する構成も考えられる。セットトップボックスではなく、テレビモニタ内に本発明の復号方法を含む復号装置を組み込んでも良い。デジタル携帯端末3141にも本発明の符号化方法復号方法を含む装置あるいはソフトウェア符号化器復号器が実装可能である。実装形式としては、符号方法復号方法を両方持つ送受信型の端末の他に、符号化のみの送信端末、復号化のみの受信端末の3通りの実装形式が考えられる。動画像撮影用のカメラ3151の中に本発明の符号化装置復号装置を組み込むことも可能である。この場合撮影用カメラは符号化装置と該符号化装置からの出力を記録媒体に記録する記録装置とを持ち、符号化装置から出力された符号化ビットストリームを記録媒体に記録する。記録媒体は光ディクスの場合もある。尚、上記携帯端末にカメラがついている場合は撮像したものを符号化してアンテナを介して送出するようにすることもできる。カメラ入力を持つTV会議システム3161の中に本発明の符号化装置復号装置を組み込むことも可能である。カメラから入力された映像は符号化装置にて符号化ビットストリームに符号化され、ネットワーク3162に配信される。ネットワークから受信した符号化ビットストリームは復号装置にて復号され、モニタに表示される。この場合、本発明の符号化方法ならびに復号方法を実現する手段は、符号化装置復号装置ではなく、ソフトウェア符号化器復号器の場合もある。これらの装置に本発明の符号化方法ならびに復号方法を組み込むことにより、directモードとその代用モードを有効的に利用することが可能となり、予測性能が向上する。本発明のヘッダ情報によりdirectモードに使用できるか否かが明確に判断できるようになる。さらに、フレーム番号が時刻情報を持たない場合において、参照フレームと現フレーム間の関係を示す情報を効率良く送ることが可能となる。また、本発明の代用モードとその切り換え手順により、directモードが適用できない場合の予測性能を向上させることが可能となる。"