(57)【要約】【課題】  参照メモリへのアクセスを低減する動き補償方法を提供する。【解決手段】  画像符号化装置３００は、復号化対象マクロブロックに対応する復号化済みのマクロブロックを構成するブロック群のうちで、前記復号化済みのマクロブロックの隅に位置するブロックの動きベクトルに応じて、動き補償対象ブロックに対する動きベクトルの検出方法を選択し、選択された方法により動きベクトルを検出する動きベクトル検出部３０２と、検出された動きベクトルに基づいて動き補償対象ブロックの予測画像を生成する動き補償符号化部３０３とを備える。【選択図】        図１ 
2004194283.tif 000002
【特許請求の範囲】
【請求項１】
画像信号を符号化または復号化するための動き補償方法であって、
符号化対象または復号化対象マクロブロックに対応する符号化済みまたは復号化済みのマクロブロックを構成するブロック群のうちで、前記符号化済みまたは復号化済みのマクロブロックの隅に位置するブロックの動きベクトルに応じて、前記符号化対象または復号化対象マクロブロック内のブロックに対する動きベクトルの生成方法を選択する選択ステップと、
選択された方法により生成された動きベクトルに基づいて前記符号化対象または復号化対象マクロブロック内のブロックの予測画像を生成する動き補償ステップと
を含むことを特徴とする動き補償方法。
【請求項２】
前記ブロック群の各ブロックの大きさは（Ｎｘ）画素×（Ｎｙ）画素（ただし、Ｎｘ、Ｎｙは自然数）であり、前記符号化対象または復号化対象マクロブロック内のブロックの大きさは（ＫｘＮｘ）画素×（ＫｙＮｙ）画素（ただし、Ｋｘ、Ｋｙは自然数）である
ことを特徴とする請求項１記載の動き補償方法。
【請求項３】
前記動き補償方法において、ＮｘおよびＮｙのいずれか一方は他方の倍数であり、ＫｘＮｘ≧８かつＫｙＮｙ≧８である
ことを特徴とする請求項２記載の動き補償方法。
【請求項４】
前記動きベクトルの生成方法の１つは、動きベクトルを「０」とする方法である
ことを特徴とする請求項１〜３のいずれか１項に記載の動き補償方法。
【請求項５】
前記動きベクトルの生成方法の１つは、前記符号化対象または復号化対象マクロブロックが属するピクチャにおいて前記符号化対象または復号化対象マクロブロックの周辺に位置する符号化済みまたは復号化済みブロックの動きベクトルを参照して動きベクトルを生成する方法である
ことを特徴とする請求項１〜４のいずれか１項に記載の動き補償方法。
【請求項６】
前記動き補償方法では、複数の符号化済みまたは復号化済みピクチャを参照して前記各符号化対象または復号化対象マクロブロック内のブロックの予測画像を生成する
ことを特徴とする請求項１〜５のいずれか１項に記載の動き補償方法。
【請求項７】
画像信号を符号化する画像符号化方法であって、
符号化対象マクロブロックに対応する符号化済みのマクロブロックを構成するブロック群のうちで、前記符号化済みのマクロブロックの隅に位置するブロックの動きベクトルに応じて、前記符号化対象マクロブロック内のブロックに対する動きベクトルの生成方法を選択する選択ステップと、
選択された方法により生成された動きベクトルに基づいて前記符号化対象マクロブロック内のブロックの予測画像を生成する動き補償ステップと
前記画像信号と前記予測画像との差分を符号化する符号化ステップ
とを含むことを特徴とする画像符号化方法。
【請求項８】
前記ブロック群の各ブロックの大きさは（Ｎｘ）画素×（Ｎｙ）画素（ただし、Ｎｘ、Ｎｙは自然数）であり、前記符号化対象または復号化対象マクロブロック内のブロックの大きさは（ＫｘＮｘ）画素×（ＫｙＮｙ）画素（ただし、Ｋｘ、Ｋｙは自然数）である
ことを特徴とする請求項７記載の画像符号化方法。
【請求項９】
前記動き補償方法において、ＮｘおよびＮｙのいずれか一方は他方の倍数であり、ＫｘＮｘ≧８かつＫｙＮｙ≧８である
ことを特徴とする請求項８記載の動き補償方法。
【請求項１０】
ストリームを復号化し復号化画像を得るための画像復号化方法であって、
復号化対象マクロブロックに対応する復号化済みのマクロブロックを構成するブロック群のうちで、前記復号化済みのマクロブロックの隅に位置するブロックの動きベクトルに応じて、前記復号化対象マクロブロック内のブロックに対する動きベクトルの生成方法を選択する選択ステップと、
選択された方法により生成された動きベクトルに基づいて前記復号化対象マクロブロック内のブロックの予測画像を生成する動き補償ステップと、
前記ストリームを復号化した差分画像と前記予測画像とを加算して復号化画像とする復号化ステップと
を含むことを特徴とする画像復号化方法。
【請求項１１】
前記ブロック群の各ブロックの大きさは（Ｎｘ）画素×（Ｎｙ）画素（ただし、Ｎｘ、Ｎｙは自然数）であり、前記符号化対象または復号化対象マクロブロック内のブロックの大きさは（ＫｘＮｘ）画素×（ＫｙＮｙ）画素（ただし、Ｋｘ、Ｋｙは自然数）である
ことを特徴とする請求項１０記載の画像復号化方法。
【請求項１２】
前記動き補償方法において、ＮｘおよびＮｙのいずれか一方は他方の倍数であり、ＫｘＮｘ≧８かつＫｙＮｙ≧８である
ことを特徴とする請求項１１記載の動き補償方法。
【請求項１３】
画像信号を動き補償するためのプログラムであって、
符号化対象または復号化対象マクロブロックに対応する符号化済みまたは復号化済みのマクロブロックを構成するブロック群のうちで、前記符号化済みまたは復号化済みのマクロブロックの隅に位置するブロックの動きベクトルに応じて、前記符号化対象または復号化対象マクロブロック内のブロックに対する動きベクトルの生成方法を選択する選択ステップと、
選択された方法により生成された動きベクトルに基づいて前記符号化対象または復号化対象マクロブロック内のブロックの予測画像を生成する動き補償ステップと
をコンピュータに実行させるプログラム。
【請求項１４】
画像信号を符号化するためのプログラムであって、
符号化対象マクロブロックに対応する符号化済みのマクロブロックを構成するブロック群のうちで、前記符号化済みのマクロブロックの隅に位置するブロックの動きベクトルに応じて、前記符号化対象マクロブロック内のブロックに対する動きベクトルの生成方法を選択する選択ステップと、
選択された方法により生成された動きベクトルに基づいて前記符号化対象マクロブロック内のブロックの予測画像を生成する動き補償ステップと、
前記画像信号と前記予測画像との差分を符号化する符号化ステップ
をコンピュータに実行させるプログラム。
【請求項１５】
ストリームを復号化し復号化画像を得るためのプログラムであって、
復号化対象マクロブロックに対応する復号化済みのマクロブロックを構成するブロック群のうちで、前記復号化済みのマクロブロックの隅に位置するブロックの動きベクトルに応じて、前記復号化対象マクロブロック内のブロックに対する動きベクトルの生成方法を選択する選択ステップと、
選択された方法により生成された動きベクトルに基づいて前記復号化対象マクロブロック内のブロックの予測画像を生成する動き補償ステップと、
前記ストリームを復号化した差分画像と前記予測画像とを加算して復号化画像とする復号化ステップと
をコンピュータに実行させるプログラム。
【請求項１６】
画像信号を符号化する画像符号化装置であって、
符号化対象マクロブロックに対応する符号化済みのマクロブロックを構成するブロック群のうちで、前記符号化済みのマクロブロックの隅に位置するブロックの動きベクトルに応じて、前記符号化対象マクロブロック内のブロックに対する動きベクトルの生成方法を選択する選択手段と、
選択された方法により生成された動きベクトルに基づいて前記符号化対象マクロブロック内のブロックの予測画像を生成する動き補償手段と、
前記画像信号と前記予測画像との差分を符号化する符号化手段と
を備えることを特徴とする画像符号化装置。
【請求項１７】
ストリームを復号化し復号化画像を得るための画像復号化装置であって、
復号化対象マクロブロックに対応する復号化済みのマクロブロックを構成するブロック群のうちで、前記復号化済みのマクロブロックの隅に位置するブロックの動きベクトルに応じて、前記復号化対象マクロブロック内のブロックに対する動きベクトルの生成方法を選択する選択手段と、
選択された方法により生成された動きベクトルに基づいて前記復号化対象マクロブロック内のブロックの予測画像を生成する動き補償手段と、
前記ストリームを復号化した差分画像と前記予測画像とを加算して復号化画像とする復号化手段と
を備えることを特徴とする画像復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きベクトルを用いた動き補償方法、その動き補償を用いた画像符号化方法および画像復号化方法に関する。
【背景技術】
【０００２】
近年、マルチメディアアプリケーションの発展に伴い、画像・音声・テキストなど、あらゆるメディアの情報を統一的に扱うことが一般的になってきた。この時、全てのメディアをディジタル化することにより、統一的にメディアを扱うことが可能になる。しかしながら、ディジタル化された画像は膨大なデータ量を持つため、蓄積・伝送のためには、画像の情報圧縮技術が不可欠である。一方で、圧縮した画像データを相互運用するためには、圧縮技術の標準化も重要である。画像圧縮技術の標準規格としては、ＩＴＵ‐Ｔ（国際電気通信連合  電気通信標準化部門）のＨ．２６１、Ｈ．２６３、ＩＳＯ／ＩＥＣ（国際標準化機構  国際電気標準会議）のＭＰＥＧ（Moving Picture Experts Group）−１、ＭＰＥＧ−２、ＭＰＥＧ−４などがある。
【０００３】
一般に動画像の符号化では、時間方向および空間方向の冗長性を削減することによって情報量の圧縮を行う。そこで時間的な冗長性の削減を目的とする画面間予測符号化では、前方または後方のピクチャを参照してブロック単位で動きの検出および予測画像の作成を行い、得られた予測画像と符号化対象ピクチャとの差分値に対して符号化を行う。ここで、ピクチャとは１枚の画面を表す用語であり、プログレッシブ画像ではフレームを意味し、インタレース画像ではフレームもしくはフィールドを意味する。ここで、インタレース画像とは、１つのフレームが時刻の異なる２つのフィールドから構成される画像である。インタレース画像の符号化や復号化処理においては、１つのフレームをフレームのまま処理したり、２つのフィールドとして処理したり、フレーム内のブロック毎にフレーム構造またはフィールド構造として処理したりすることができる。
【０００４】
参照画像を持たず画面内予測符号化を行うものをＩピクチャと呼ぶ。また、１枚のピクチャのみを参照し画面間予測符号化を行うものをＰピクチャと呼ぶ。また、同時に２枚のピクチャを参照して画面間予測符号化を行うことのできるものをＢピクチャと呼ぶ。Ｂピクチャは表示時間が前方もしくは後方から任意の組み合わせとして２枚のピクチャを参照することが可能である。参照画像（参照ピクチャ）は符号化および復号化の基本単位であるブロックごとに適切なものを選択することができ、符号化を行ったビットストリーム中に先に記述される方の参照ピクチャを第１参照ピクチャ、後に記述される方を第２参照ピクチャとして区別する。ただし、これらのピクチャを符号化および復号化する場合の条件として、参照するピクチャが既に符号化および復号化されている必要がある。
【０００５】
Ｐピクチャ又はＢピクチャの符号化には、動き補償画面間予測符号化が用いられている。動き補償画面間予測符号化とは、画面間予測符号化に動き補償を適用した符号化方式である。動き補償とは、単純に参照フレームの同じ座標位置の画素値から予測するのではなく、ピクチャ内の各部の動き量（以下、これを「動きベクトル」と呼ぶ）を検出し、当該動き量を考慮した予測を行うことにより予測精度を向上すると共に、データ量を減らす方式である。例えば、符号化対象ピクチャの動きベクトルを検出し、その動きベクトルの分だけシフトした予測値と符号化対象ピクチャとの画素ごとの画素値の差分である予測残差を符号化することによりデータ量を低減している。この方式の場合には、復号化の際に動きベクトルの情報が必要になるため、動きベクトルも符号化されて記録又は伝送される。
【０００６】
動きベクトルは所定のサイズのブロック単位で検出されており、具体的には、符号化対象ピクチャ側の各ブロックに対して、参照ピクチャ側でブロックを探索範囲内で移動させ、符号化対象ブロックと最も似通った参照ブロックの位置を見つけることにより、動きベクトルが検出される。
【０００７】
図１５は、従来の画像符号化装置１００の構成を示すブロック図である。画像符号化装置１００は、差分器１０１、画像符号化部１０２、可変長符号化部１０３、画像復号化部１０４、加算器１０５、画像メモリ１０６、ピクチャメモリ１０７、動き補償部１０８、動きベクトル検出部１０９および動きベクトル記憶部１１０を備えている。なお、動き補償のブロックのサイズとしては、現在策定中の規格案であるＩＴＵ−Ｔ  Ｈ．２６Ｌ  ＴＭＬ８では、４画素×４画素、４画素×８画素、８画素×４画素、８画素×８画素、８画素×１６画素、１６画素×８画素、１６画素×１６画素の７通りの動き補償のブロックサイズからマクロブロック単位で適切なものを選択して符号化・復号化に使用する（例えば、非特許文献１参照。）。
【０００８】
ピクチャメモリ１０７は、表示時間順にピクチャ単位で入力された、動画像を表す画像データImgを格納する。差分器１０１は、ピクチャメモリ１０７より読み出された画像データImgと、動き補償部１０８より入力された予測画像データPredとの差分を演算し、予測残差画像データResを生成する。画像符号化部１０２は、入力された予測残差画像データResに対して周波数変換や量子化等の符号化処理を行い、残差画像符号化データCodedResを生成する。画面内符号化の場合には、画面間の動き補償を行わないので、予測画像データPredの値は「０」と考える。
【０００９】
動きベクトル検出部１０９は、画像メモリ１０６に記憶された符号化済みの復号化画像データである参照画像データRefを参照ピクチャとして用いて、そのピクチャ内の探索領域において最適と予測される位置を示す動きベクトルを検出し、検出された動きベクトルを表す動きパラメータMotionParamを出力する。なお、その際に動きベクトル検出部１０９は、符号化対象ピクチャがＰピクチャであるかＢピクチャであるかのいずれかに応じて、参照ピクチャを切り替える。符号化モードModは、ブロックをどのような方法（例えば、双予測、片方向予測、ダイレクトモードのいずれか）で動き補償するかを示すものである。例えば、ダイレクトモードでは、動きベクトル検出部１０９は、他のブロックで導出された動きベクトルを用いて、当該動き補償対象ブロックの双予測動きベクトルを算出する。ここで、ダイレクトモードの動きベクトルを導出するために参照するピクチャを基準ピクチャと呼び、対象ブロックと同じ座標位置の基準ピクチャのブロックを基準ブロックと呼ぶことにする。この場合、ダイレクトモードの動きベクトルの値は、実際に動き補償の単位となるブロックサイズにかかわらず、１６画素×１６画素のマクロブロックを単位として算出され、算出された動きベクトルは符号化されない。そして、算出した動きベクトルを使用するか、もしくは動きベクトル（０，０）を使用するかを４画素×４画素単位で切り替える。動き補償部１０８は、符号化対象ブロックの符号化モードModと、動きベクトル検出部１０９で検出された動きベクトルとに基づいて予測画像データPredを生成する。
【００１０】
さらに、動き補償部１０８では、動きベクトルが１／２画素、１／４画素などの小数以下の画素位置を指す場合には、低域通過フィルタなどを用いて１／２画素、１／４画素などの小数画素位置の画素値を補間生成する。動きベクトル記憶部１１０は、動きベクトル検出部１０９から出力された動きパラメータMotionParamを記憶する。可変長符号化部１０３は、入力された残差画像符号化データCodedResおよび動きベクトル検出部１０９から出力された動きパラメータMotionParamに対して可変長符号化等を行い、さらに符号化モードModを付加することにより符号化データBitstreamを生成する。
【００１１】
画像復号化部１０４は、入力された残差画像符号化データCodedResに対して逆量子化や逆周波数変換等の復号化処理を行い、復号残差画像データReconResを生成する。加算器１０５は、画像復号化部１０４より出力された復号残差画像データReconResと、動き補償部１０８より入力された予測画像データPredとを加算し、復号化画像データReconを生成する。画像メモリ１０６は、生成された復号化画像データReconを格納する。
【００１２】
被写体の移動量が整数画素単位より小さい場合は、整数画素単位より小さい動きで予測を行うと予測効果が高い場合がある。一般に、整数画素単位より小さい単位の動きを伴う予測画像の画素値の計算には画素補間を使用する。この画素補間は、参照画像の画素値に対して線形フィルタ（低域通過フィルタ）によるフィルタリングを行うことにより実行される。この線形フィルタのタップ数を増やせば良好な周波数特性を持つフィルタを実現しやすくなり、予測効果が高くなるが処理量は大きくなる。一方、フィルタのタップ数が少ないとフィルタの周波数特性は悪くなり、予測効果は低くなるがフィルタの演算量は小さくなる。
【００１３】
図１６は、画素補間を行う従来の画像復号化装置２００の構成を示すブロック図である。画像復号化装置２００は、可変長復号化部２０１、画像復号化部２０２、加算器２０３、画像メモリ２０４、動きベクトル記憶部２０５および動き補償部２０６を備えている。
【００１４】
可変長復号化部２０１は、入力された符号化データBitstreamから、残差画像符号化データCodedRes、動きパラメータMotionParamおよび符号化時に用いられた符号化モードModの情報等の各種データの抽出を行う。画像復号化部２０２は、入力された残差画像符号化データCodedResの復号化を行い、残差画像データResを生成する。動きベクトル記憶部２０５は、可変長復号化部２０１により抽出された動きパラメータMotionParamを格納する。動き補償部２０６は、線形フィルタなどを用いて１／２画素、１／４画素などの小数画素位置の画素値を補間生成する図示しない画素補間部を内部に備え、符号化時の符号化モードModおよび動きパラメータMotionParam等に基づいて、画像メモリ２０４内の復号化画像データReconから動き補償画像データである予測画像データPredを生成する。この際に、動き補償部２０６は、ダイレクトモードの場合に、動きベクトル記憶部２０５から読み出した基準ピクチャの基準ブロックの動き補償のブロックサイズと同じブロックサイズで動き補償対象ブロックの予測画像データPredを生成する。加算器２０３は、画像復号化部２０２から出力された残差画像データResと、動き補償部２０６から出力された動き補償画像データである予測画像データPredとを加算し、復号化画像データReconを生成する。画像メモリ２０４は、生成された復号化画像データReconを格納する。
【非特許文献１】ＭＰＥＧ−４ビジュアル規格書(１９９９年、ＩＳＯ／ＩＥＣ１４４９６‐２:1999 Information technology -- Coding of audio-visual objects -- Part2: Visual)
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、小数精度の動き補償を行うためには、動き補償対象ブロックのみならず、その周辺、数画素分の画素値が必要である。つまり、補間処理によって小数画素精度の画素値を生成するために、実際の予測ブロックより大きな領域の画素値が必要となる。補間処理で画素値を生成するためには、低域通過フィルタを用いるのが一般的であり、低域フィルタを適用するためには対象画素の近傍数画素（低域フィルタの係数分の画素）をアクセスする（読み出す）必要がある。図１７は、画素補間を行う場合において予測画像を生成するために画素値を読み出すことが必要な動き補償対象ブロックとその周辺画素との一例を示す図である。図１７（ａ）は、動き補償対象ブロックが小さい場合の動き補償対象ブロックとその周辺画素とを示す図である。図１７（ｂ）は、動き補償対象ブロックが大きい場合の動き補償対象ブロックとその周辺画素とを示す図である。図１７（ａ）および図１７（ｂ）において、中央の矩形部分は１つの動き補償対象ブロックを示し、その周囲の斜線部は画素補間を行うために参照メモリから画素値が読み出される周辺画素を示している。ここでは、例えば、低域通過フィルタとして９タップ（画素値が９画素分必要）のフィルタを用いるとすると、ブロック境界部の画素に低域通過フィルタ処理を行うためには少なくともブロック外の４画素の画素値が必要であり、中央の動き補償対象ブロックに対して、その周囲４画素分の画素値を含むメモリをアクセスしなければならない。例えば、４画素×４画素のブロックでは１ブロックで（４＋４＋４）×（４＋４＋４）＝１４４画素の画素値を読み出す必要がある。８画素×８画素のブロックでは（４＋８＋４）×（４＋８＋４）＝２５６画素の画素値を読み出す必要がある。１６画素x１６画素のマクロブロックを８画素×８画素の４ブロックで動き補償する場合には２５６画素×４＝１０２４画素の画素値を読み出すだけでよいが、４画素×４画素のブロックを単位として１６画素×１６画素を動き補償する場合には、１４４画素×１６＝２３０４画素の画素値を読み出さなければならない。従って、８ｘ８画素単位の動き補償の方が４画素×４画素単位の動き補償４回分に対して約半分のメモリアクセス量になる。
【００１６】
以上の例から明らかなように、１つの動き補償対象ブロックに対して、その周囲の画素値を同画素数分だけ余分に読み出すとした場合、動き補償対象ブロックの大きさが小さいほど、参照メモリから読み出される画素数に関して、動き補償対象ブロックの画素数に対する周辺ブロックの画素数の割合が大きくなる。この結果、参照メモリから動き補償対象ブロックの画素値を読み出す際に、動き補償の対象でない周辺画素を参照することによるメモリ・読み出しアクセスの負荷が大きくなってしまうという問題がある。特に、同時に２つのピクチャを参照して符号化または復号化対象ピクチャの動き補償画素値を計算するＢピクチャの双予測動き補償の場合には、片方向予測動き補償と比べて参照メモリへのアクセスが約２倍と多くなるため、動き補償対象ブロックのサイズが小さい場合には、前記オーバヘッドの問題がより顕著になってしまう。
【００１７】
本発明の目的は、参照メモリへのアクセスを低減する動き補償方法を提供することである。
また、本発明は、前記動き補償方法を用いた画像符号化方法および画像復号化方法を提供することを第２の目的としている。
【課題を解決するための手段】
【００１８】
この課題を解決するために、本発明の動き補償方法は、画像信号を符号化または復号化するための動き補償方法であって、符号化対象または復号化対象マクロブロックに対応する符号化済みまたは復号化済みのマクロブロックを構成するブロック群のうちで、前記符号化済みまたは復号化済みのマクロブロックの隅に位置するブロックの動きベクトルに応じて、前記符号化対象または復号化対象マクロブロック内のブロックに対する動きベクトルの生成方法を選択する選択ステップと、選択された方法により生成された動きベクトルに基づいて前記符号化対象または復号化対象マクロブロック内のブロックの予測画像を生成する動き補償ステップとを含むことを特徴とする。これにより、１つの動き補償対象ブロックに対して、複数のブロックからなる符号化済みまたは復号化済みのブロック群が対応する場合であっても、当該ブロック群を含むマクロブロックの隅に位置するブロック１つの動きを判定することにより、動き補償対象ブロックの動き補償に用いられる動きベクトルの生成方法を選択することができる。
【００１９】
また、本発明の動き補償方法を用いた画像符号化装置および画像復号化装置によれば、より大きいサイズの動き補償対象ブロックを単位として動き補償を行うので、例えばＢピクチャの双予測動き補償を用いた符号化および復号化における画像メモリへのアクセスによるオーバヘッドを低減することができる。
【００２０】
なお、本発明は、このような動き補償方法、画像符号化方法および画像復号化方法として実現することができるだけでなく、これらの方法に含まれる特徴的なステップを手段とする画像符号化装置や画像復号化装置として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して配信させることができるのは言うまでもない。
【発明の効果】
【００２１】
本発明の動き補償方法を用いた画像符号化装置３００および画像復号化装置４００によれば、より大きいサイズの動き補償対象ブロックを単位として動き補償を行うので、例えばＢピクチャの双予測動き補償を用いた符号化および復号化における画像メモリへのアクセスによるオーバヘッドを低減することができる。
【００２２】
また、動き補償対象ブロックの動きベクトルを（０、０）としない場合には、すでに検出されている周辺ブロックの動きベクトルを用いて動きベクトルを決定することにより、Ｂピクチャの符号化および復号化における動きベクトル決定のための計算量を低減して、例えばＢピクチャの符号化における画像符号化装置３００の処理負荷を軽減することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態について、図１から図１４を用いて説明する。
（実施の形態１）
以下、本発明の第１の実施形態について図面を用いて詳細に説明する。
【００２４】
図１は、本発明に係る画像符号化方法を用いた画像符号化装置３００の一実施の形態の構成を示すブロック図である。画像符号化装置３００は、２つのピクチャを参照して符号化が行われるＢピクチャの動き補償を行う際に、Ｐピクチャの動き補償のブロックサイズよりも大きいブロックサイズで動き補償を行う画像符号化装置であって、差分器１０１、画像符号化部１０２、可変長符号化部１０３、画像復号化部１０４、加算器１０５、画像メモリ１０６、ピクチャメモリ１０７、動きベクトル記憶部１１０、動き情報変換部３０１、動きベクトル検出部３０２および動き補償部３０３を備えている。
【００２５】
ピクチャメモリ１０７は、表示時間順に入力された、動画像を表す画像データImgをピクチャ単位で格納する。差分器１０１は、ピクチャメモリ１０７より読み出された画像データImgと、動き補償部３０３より入力された予測画像データPredとの差分を演算し、予測残差画像データResを生成する。これにおいて、画面内符号化の場合には、画面間の動き補償を行わないので、予測画像データPredの値は「０」と考える。画像符号化部１０２は、入力された予測残差画像データResに対して周波数変換や量子化等の符号化処理を行い、残差画像符号化データCodedResを生成する。動き情報変換部３０１は、符号化対象ピクチャがBピクチャの場合には、所定のブロックサイズで動き補償が行われるように動きベクトルを導出し、動きベクトル検出部３０２および動き補償部３０３に通知する。すなわち、Bピクチャの場合には片方向予測、双予測とダイレクトモードを可能にして双予測およびダイレクトモード動き補償を大きなブロックサイズで行うようにし（例えば８画素×８画素未満のブロックサイズで動きベクトルを検出することを禁止）、Pピクチャの場合には片方向予測を小さなブロックサイズでも可能にする。これにより、特にメモリへのアクセスが多い双予測モードにおいて、小さいブロックサイズで参照ピクチャを参照する動きベクトルを選択できないようにする。また、動き情報変換部３０１は、動きベクトル記憶部１１０に記憶されている参照ピクチャの動きパラメータを、所定のブロックサイズ（例えば８画素×８画素）の動きパラメータ（動きベクトル等）に変換するか、またはこの変換に相当する動きパラメータの読み替えを動きベクトル検出部３０２および動き補償部３０３に指示する。
【００２６】
動きベクトル検出部３０２は、画像メモリ１０６に記憶された符号化済みピクチャの復号化画像データである参照画像データRefを参照ピクチャとして用いて、参照ピクチャ内の探索領域において最適と予測されるブロックの位置を示す動きベクトルを検出し、検出された動きベクトルを含む動きパラメータMotionParamを出力する。動きベクトル記憶部１１０は、動きベクトル検出部３０２から出力された動きパラメータMotionParamを記憶する。
【００２７】
また、動きベクトル検出部３０２は、符号化対象ピクチャがPピクチャかBピクチャのいずれであるかに対応して、符号化モードModで動き補償した場合の誤差を評価し、片方向予測および双予測で参照ピクチャ内の探索を行った場合とダイレクトモードで導出した動きベクトルの動き補償誤差を比較する。すなわち、ダイレクトモードでは、動き情報変換部３０１によって変換された、動き補償対象ブロックの後方同位置にある動き補償済みブロックの動きベクトル（例えば８画素×８画素以上のブロックサイズの動きに変換）に応じて、動き補償対象ブロックの動きベクトルを複数の動きベクトルのうちから選択する。なお、ダイレクトモードとは、動き補償対象ブロックの動きベクトルを他のブロックで導出された動きベクトルを用いて算出し、当該動き補償対象ブロックの動きベクトルを符号化しない双予測モードをいう。導出した動きベクトルを使用するか、動きベクトル（０，０）を使うかは、後方同位置にあるブロックの動きベクトルの大きさによって決定する（どちらを選択したかの識別情報は符号化しない）。また、後方同位置にあるブロックとは、表示順で符号化対象ピクチャの直近後方にあるピクチャ内（基準ピクチャ）で符号化対象ピクチャ内のブロックと同位置にあるブロック（基準ブロック）をいう。
【００２８】
動き補償部３０３は、この符号化モードModと、動きベクトル検出部３０２で検出された動きベクトルとに基づいて予測画像データPredを生成する。Ｂピクチャのダイレクトモードにおいては、動き補償部３０３は、８画素×８画素の動き補償対象ブロックごとに、動きベクトル検出部３０２によって算出された動きベクトルを用いて、予測画像を生成する。なお、動き補償部３０３では、動きベクトルが１／２画素、１／４画素などの小数以下の画素位置を指す場合には、線形フィルタ（低域通過フィルタ）などを用いて１／２画素、１／４画素などの小数画素位置の画素値を補間生成する。この場合、動きベクトル検出部３０２では双予測モードにおいて小さなブロックサイズの動きベクトルが選択されないため、動き補償部３０３は、双予測モードではメモリアクセスがあまり多くない比較的大きなブロックサイズで動き補償を行うことができる。また、片方向予測モードでは小さなブロックサイズでの動き補償も可能な動き補償を行う。可変長符号化部１０３は、入力された残差画像符号化データCodedResおよび動きベクトル検出部３０２から出力された動きパラメータMotionParamに対して可変長符号化等を行い、さらに符号化モードModを付加することにより符号化データBitstreamを生成する。
【００２９】
画像復号化部１０４は、入力された残差画像符号化データCodedResに対して逆量子化や逆周波数変換等の復号化処理を行い、復号残差画像データReconResを生成する。加算器１０５は、画像復号化部１０４より出力された復号残差画像データReconResと、動き補償部３０３より入力された予測画像データPredとを加算し、復号化画像データReconを生成する。画像メモリ１０６は、生成された復号化画像データReconを格納する。
【００３０】
図２は、本発明に係る画像復号化方法を用いた画像復号化装置４００の一実施の形態の構成を示すブロック図である。画像復号化装置４００は、可変長復号化部２０１、画像復号化部２０２、加算器２０３、画像メモリ２０４、動きベクトル記憶部２０５、動き情報変換部４０１および動き補償部４０２を備えている。
【００３１】
可変長復号化部２０１は、入力された符号化データBitstreamから、残差画像符号化データCodedRes、動きパラメータMotionParamおよび符号化時に用いられた符号化モードModの情報等の各種データの抽出を行う。画像復号化部２０２は、入力された残差画像符号化データCodedResの復号化を行い、残差画像データResを生成する。動き情報変換部４０１は、動きベクトル記憶部２０５から読み出した参照ピクチャの動きパラメータを、所定のブロックサイズ（例えば８画素×８画素）の動きパラメータ（動きベクトル等）に変換するか、またはこの変換に相当する動きパラメータの読み替えを動き補償部４０２に対して指示する。動き補償部４０２は、内部に、線形フィルタなどを用いて１／２画素、１／４画素などの小数画素位置の画素値を補間生成する図示しない画素補間部を備え、符号化時の符号化モードModおよび動きパラメータMotionParam等に基づいて、画像メモリ２０４内の復号化画像データReconから動き補償画像データである予測画像データPredを生成する。この際に、復号化対象マクロブロックがダイレクトモードで符号化されている場合、予測画像データPredを生成するための動きベクトルは符号化されていない。このため、動き補償部４０２は、動き情報変換部４０１で変換された動きベクトル（例えば８画素×８画素以上のブロックサイズの動きに変換）および復号化対象マクロブロックの周辺ブロックで導出されている動きベクトルを用いて、動き補償対象ブロックの動きベクトルを算出し、Ｐピクチャの最小ブロックサイズより大きいサイズの動き補償対象ブロック（例えば、８画素×８画素）の単位で予測画像データPredを生成する。動きベクトル記憶部２０５は、可変長復号化部２０１により抽出された動きパラメータMotionParamを格納する。加算器２０３は、画像復号化部２０２から出力された残差画像データResと、動き補償部４０２から出力された動き補償画像データである予測画像データPredとを加算し、復号化画像データReconを生成する。画像メモリ２０４は、生成された復号化画像データReconを格納する。
【００３２】
以下では、上記のように構成された画像符号化装置３００および画像復号化装置４００の動作について説明する。
【００３３】
本実施の形態では、Ｂピクチャのダイレクトモードにおいて、画像符号化装置３００においては動きベクトル検出部３０２、画像復号化装置４００においては動き補償部４０２は、動き補償対象ブロックの後方同位置にある動き補償済みブロックの動きベクトルに応じて、複数の動きベクトルのうちから動き補償対象ブロックの動き補償に用いる動きベクトルを選択する。例えば、動きベクトル検出部３０２または動き補償部４０２は、符号化または復号化対象ピクチャ内ですでに符号化または復号化されている周辺ブロックの動きベクトルを用いて算出される符号化または復号化対象マクロブロックの動きベクトル、または動きベクトル（０、０）のいずれかを選択し、動き補償対象ブロックの動きベクトルとする。周辺ブロックとは、符号化対象ピクチャの同一画面内において、すでに符号化または復号化されているブロックであって、符号化または復号化対象マクロブロックの近傍のブロックをいう。以下では、すでに決定された周辺ブロックの動きベクトルと、後方の参照ピクチャの動きパラメータとを用いて動き補償対象ブロックの動きベクトルを決定する方法による、ダイレクトモードの動き補償方法について、まず、画像符号化装置３００における処理を説明する。
【００３４】
図３（ａ）は、周辺ブロックが符号化または復号化対象マクロブロックと同じ１６画素×１６画素のブロックサイズで動き補償されている場合に、周辺ブロックの動きベクトルを用いて符号化または復号化対象マクロブロックの動きベクトルＭＶを決定する方法を示す図である。図３（ｂ）は、符号化または復号化対象マクロブロックと後方同位置マクロブロックとが同じブロックサイズで動き補償されている場合において、動き補償対象ブロックとその後方同位置にあるブロックとの対応を示す図である。図４は、周辺ブロックが符号化または復号化対象マクロブロックより小さいブロックサイズで動き補償されている場合に、周辺ブロックの動きベクトルを用いて符号化または復号化対象マクロブロックの動きベクトルＭＶを決定する方法を示す図である。図５は、符号化または復号化対象マクロブロックと後方同位置マクロブロックとが同じブロックサイズで動き補償されている場合において、動き補償対象ブロックの後方同位置にあるブロックの動きに応じて、異なる方法で動き補償対象ブロックを動き補償するための処理手順を示すフローチャートである。
【００３５】
まず、符号化対象ピクチャＢ１内の動き補償対象ブロックと、後方のＰピクチャＰ２内で当該動き補償対象ブロックと同位置にあるブロックとが同じ大きさであり、一対一に対応している場合について説明する。動き情報変換部３０１は、動き補償対象ブロックの後方同位置にあるブロックの動き補償のサイズが動き補償対象ブロックのサイズと同じか否かを判断し、同じである場合、図５のフローチャートに示される手順で、動き補償対象ブロックの動きベクトルを算出するよう動きベクトル検出部３０２に指示する。図５のフローチャートに示すように、動きベクトル検出部３０２は、まず、図３（ｂ）に示す符号化対象ピクチャＢ１の後方のＰピクチャ（基準ピクチャ）、すなわち、対象ピクチャＢ１よりも時間的に後に表示されるＰピクチャであって、符号化対象ピクチャＢ１に近いピクチャＰ２内で、動き補償対象ブロックと同位置にあるブロック（基準ブロック）の「動きが小さい」か否かを調べ（Ｓ４０１）、「動きが小さい」場合、動き補償対象ブロックの動きベクトルを（０、０）とする（Ｓ４０２）。すなわち、この動き補償対象ブロックについては、動きベクトルを（０，０）として画面間予測を用いた動き補償を行う。ここで、「動きが小さい」とは、そのブロックが画像として最も近いピクチャを参照して符号化されており、その動きベクトルの大きさ（絶対値）が「１」以内であることをいう。但し、単に動きベクトルの大きさが所定値以下である場合に「動きが小さい」としてもよく、また、特定のピクチャを参照ピクチャとした場合に「動きが小さい」としてもよい。
【００３６】
一方、後方のＰピクチャ内で動き補償対象ブロックと同位置にあるブロックの「動きが小さく」ない場合、すなわち、基準ブロックが最も近いピクチャを参照して符号化されていないか、または動きベクトルの大きさが「１」を超える場合、動きベクトル検出部３０２は、符号化対象マクロブロックの周辺ブロックの動きベクトルから算出される符号化対象マクロブロックの動きベクトルＭＶを、当該動き補償対象ブロックの動きベクトルとする（Ｓ４０４）。なお、以下の説明では、説明を簡単にするためピクチャＰ０、ピクチャＰ２はそれぞれピクチャＢ１に最も近いピクチャとする。
【００３７】
符号化対象マクロブロックの動きベクトルＭＶを算出するために、動きベクトル検出部３０２は、まず、符号化対象マクロブロック近傍の符号化済みのブロック（周辺ブロック）を３つ選択する。選択の基準および方法は、ここでは重要ではないので説明を省略する。図３（ａ）は、符号化対象マクロブロックに対して選択された３つの周辺ブロックを示している。同図のように、符号化対象マクロブロックの上に位置するマクロブロックでは、動きベクトルＭＶ２がすでに決定されており、右上に位置するマクロブロックでは、動きベクトルＭＶ３が決定されている。また、符号化対象マクロブロックの左に位置するマクロブロックについては、動きベクトルＭＶ１が決定されている。動きベクトル検出部３０２は、これらの動きベクトルＭＶ１、動きベクトルＭＶ２および動きベクトルＭＶ３を用いて、当該符号化対象マクロブロックの動きベクトルＭＶを決定する。例えば、動きベクトルＭＶ１、動きベクトルＭＶ２および動きベクトルＭＶ３の中で時間的に直近のピクチャを参照したものを当該符号化対象マクロブロックの動きベクトルＭＶの候補とする。ここで、「符号化対象ピクチャから時間的に直近のピクチャ」とは、符号化対象マクロブロックにおいて前方のピクチャを参照した動きベクトルを予測する場合には、符号化対象ピクチャから前方かつ直近のピクチャをいい、後方のピクチャを参照した動きベクトルを予測する場合には、後方かつ直近のピクチャをいう。これにおいて、動きベクトル検出部３０２は、
（１）符号化対象ピクチャから時間的に直近のピクチャを参照したものがない場合、当該符号化対象マクロブロックの動きベクトルＭＶを（０、０）とする。
（２）直近のピクチャを参照しているものが１つの場合、その候補を、当該符号化対象マクロブロックの動きベクトルＭＶとする。また、
（３）直近のピクチャを参照しているものが２つ以上の場合、直近のピクチャを参照していない周辺ブロックの動きベクトルを（０、０）として、周辺ブロックの３つの動きベクトルの中央値を符号化対象マクロブロックの動きベクトルＭＶとする。
【００３８】
以上では、図３（ａ）を用いて符号化対象マクロブロックの周辺ブロックが、符号化対象マクロブロックと同じサイズで動き補償されている場合について説明したが、図４に示すように、周辺ブロックが符号化対象マクロブロックとは異なる、より小さいブロックサイズで動き補償されている場合でも、同様にして符号化対象マクロブロックの動きベクトルＭＶを算出することができる。図４は、１６画素×１６画素の符号化対象マクロブロックに対して、周辺ブロックでは４画素×４画素のブロックを単位として動きベクトルが検出されている場合を示している。このような場合、符号化対象マクロブロックの動きベクトルＭＶを算出するために、動きベクトル検出部３０２は、まず周辺ブロックを３つ（ブロックＡ、ブロックＢおよびブロックＣ）選択する。
【００３９】
ブロックＡは、例えば、符号化対象マクロブロックの左に位置するマクロブロックに属し、符号化対象マクロブロックの左上の角に接するブロックである。また、ブロックＢは、例えば、符号化対象マクロブロックの上に位置するマクロブロックに属し、符号化対象マクロブロックの左上の角に接するブロックである。さらに、ブロックＣは、例えば、符号化対象マクロブロックの右上に位置するマクロブロックに属し、符号化対象マクロブロックの右上の角に接するブロックである。
【００４０】
ブロックＡに対しては動きベクトルＭＶ１がすでに決定されており、ブロックＢに対しては動きベクトルＭＶ２が、ブロックＣに対しては動きベクトルＭＶ３が、すでに決定されている。動きベクトル検出部３０２は、これらの動きベクトルＭＶ１、動きベクトルＭＶ２および動きベクトルＭＶ３に、上記（１）（２）および（３）を適用し、符号化対象マクロブロックと周辺ブロックとが同じサイズで動き補償されている場合と同様にして、符号化対象マクロブロックの動きベクトルＭＶを決定することができる。符号化対象マクロブロック内の各動き補償対象ブロックについては、すでに説明したように、後方同位置にあるブロックの「動きが小さい」か否かに応じて、動きベクトル（０、０）を用いて動き補償するか、動きベクトルＭＶを用いて動き補償するかのいずれかを選択する。
【００４１】
上記のようにして動き補償対象ブロックの動きベクトルが決定されると、動き補償部３０３は、決定された動きベクトルを用いて画像メモリ１０６内の参照画像データRefから予測画像データPredを生成する（Ｓ４０３）。
【００４２】
以上では、動き補償対象ブロックの後方同位置にあるブロックが、動き補償対象ブロックと同じブロックサイズで動き補償されている場合について説明したが、以下では、後方同位置にあるブロックが、動き補償対象ブロックとは異なるブロックサイズで動き補償されている場合について説明する。画像符号化装置３００において、動き補償部３０３および動きベクトル検出部３０２は、Ｂピクチャの双予測動き補償を行う際には、ＰピクチャやＢピクチャの片方向予測動き補償対象ブロックとなりうる最小（４画素×４画素）のブロックよりも大きい、一定サイズ（例えば、８画素×８画素）のブロックを対象として動き補償を行う。このため、双予測で動き補償されるピクチャの後方の参照ピクチャが片方向予測で動き補償されている場合、動き補償対象ブロックの後方同位置にあるブロックが動き補償対象ブロックより小さいブロックサイズで動き補償されている場合が生じる。
【００４３】
図６は、符号化または復号化対象マクロブロックとその後方同位置マクロブロックとが異なるブロックサイズで動き補償されている場合において、動き補償対象ブロックとその後方同位置にある複数のブロックとの対応を示す図である。同図の左側には、符号化対象Ｂピクチャ内の符号化対象マクロブロックが示されている。同図の右側には、符号化対象Ｂピクチャの直近後方のピクチャ（ＰピクチャまたはＢピクチャ）における符号化対象マクロブロックの後方同位置マクロブロックが示されている。前記マクロブロックのサイズは、いずれも、例えば１６画素×１６画素である。右側に示される後方同位置マクロブロックは符号化対象ピクチャよりも先に符号化されており、例えば、それぞれ４画素×４画素のブロック（図中の最小区画）を単位として、すでに動き補償が行われているものとする。
【００４４】
図７は、符号化または復号化対象マクロブロックと後方同位置マクロブロックとが異なるブロックサイズで動き補償されている場合において、動き補償対象ブロックの後方同位置にあるブロックの動きに応じて、異なる動きベクトルで動き補償対象ブロックを動き補償するための処理手順を示すフローチャートである。動き情報変換部３０１は、まず、動き補償対象ブロックの後方同位置にあるブロックが動き補償対象ブロックと同じブロックサイズで動き補償されているか否かを判断し、同じブロックサイズで動き補償されていない場合、図７のフローチャートに示される手順で動き補償対象ブロックの動きベクトルを算出するよう、動きベクトル検出部３０２に指示する。ここでは、動き補償対象ブロックのサイズが８画素×８画素であり、後方同位置にあるブロックは４画素×４画素で動き補償されているので、動きベクトル検出部３０２は図７に示すフローチャートに従って動き補償対象ブロックの動きベクトルを算出する。
【００４５】
図７のフローチャートではステップＳ５０１の処理が、図５のフローチャートに示したステップＳ４０１の処理と異なる。図６に示したように、本発明の動き補償方法では、１つの符号化対象マクロブロックは４つの動き補償対象ブロックごとに動き補償が行われる。それらを例えば、動き補償対象ブロックａ、動き補償対象ブロックｂ、動き補償対象ブロックｃおよび動き補償対象ブロックｄとする。これらの動き補償対象ブロックに対し、後方同位置マクロブロック内では、ブロックａ'、ブロックｂ'、ブロックｃ'およびブロックｄ'がそれぞれ対応する。これらのブロックａ'、ブロックｂ'、ブロックｃ'およびブロックｄ'は、それぞれがさらに、４画素×４画素の４つの動き補償ブロックから構成されている。動きベクトル検出部３０２は、まず、後方同位置マクロブロック内で、符号化対象マクロブロック内の動き補償対象ブロックａに対応するブロックａ'を調べ、ブロックａ'を構成している４つの動き補償ブロックのうち、２つ以上の動き補償ブロックの「動きが小さい」か否かを調べる（Ｓ５０１）。
【００４６】
動き補償ブロックの「動きが小さい」か否かを判定する基準は、図５に示したフローチャートのステップＳ４０１における判定基準と同様である。２つ以上の動き補償ブロックの「動きが小さい」場合、動きベクトル検出部３０２は、符号化対象マクロブロック内の動き補償対象ブロックａの動きベクトルを（０、０）とし（Ｓ５０２）、動き補償部３０３は、決定された動きベクトル（０、０）を用いて動き補償する（Ｓ５０３）。２つ以上の動き補償ブロックの「動きが小さく」ない場合、すなわち、「動きが小さい」動き補償ブロックの数が２つ未満である場合、動きベクトル検出部３０２は、符号化対象マクロブロックの周辺ブロックの動きベクトルから符号化対象マクロブロックの動きベクトルＭＶを決定する（Ｓ５０４）。周辺ブロックの動きベクトルから符号化対象マクロブロックの動きベクトルＭＶを決定する処理は、図５のステップＳ４０４における処理と同様である。動き補償部３０３は、このように決定された動きベクトルＭＶを用いて動き補償対象ブロックａの動き補償予測画素値を生成する（Ｓ５０３）。
【００４７】
動き補償部３０３、動きベクトル検出部３０２および動き情報変換部３０１は、上記ステップＳ５０１〜ステップＳ５０４の処理を、残りの動き補償対象ブロックｂ、動き補償対象ブロックｃ、動き補償対象ブロックｄについて繰り返し、動き補償対象ブロックａ、動き補償対象ブロックｂ、動き補償対象ブロックｃおよび動き補償対象ブロックｄのすべての動き補償を行うと、当該符号化対象マクロブロックの動き補償を完了する。
【００４８】
一方、画像復号化装置４００では、画像符号化装置３００によって符号化された符号化データBitstreamを復号化する。ダイレクトモードにおいて、画像復号化装置４００では、動き情報変換部４０１が画像符号化装置３００の動き情報変換部３０１に対応する処理を行い、動き補償部４０２が画像符号化装置３００の動きベクトル検出部３０２および動き補償部３０３に対応する処理を行うことによって、画像符号化装置３００と同様にして、各動き補償対象ブロックの動き補償を行うことができる。
【００４９】
可変長復号化部２０１によって符号化データBitstreamから抽出された符号化モードModに、復号化対象マクロブロックがダイレクトモードで符号化されていることが示されている場合、動き情報変換部４０１は、動き補償対象ブロックの後方同位置にある動き補償済みブロックの動き補償のサイズが動き補償対象ブロックのサイズと同じか否かを判断し、同じである場合、図５のフローチャートに示される手順で、動き補償対象ブロックの動きベクトルを算出するよう動き補償部４０２に指示する。
【００５０】
この指示に従って、動き補償部４０２は、まず、図３（ｂ）に示す復号化対象ピクチャＢ１の後方のＰピクチャ（後方の参照ピクチャ）Ｐ２内で、動き補償対象ブロックと同位置にある動き補償済みブロックの「動きが小さい」か否かを調べ（Ｓ４０１）、「動きが小さい」場合、動き補償対象ブロックの動きベクトルを（０、０）とする（Ｓ４０２）。すなわち、この動き補償対象ブロックについては、画面間予測を用いた動き補償を行わない。一方、後方のＰピクチャ内で動き補償対象ブロックと同位置にある動き補償済みブロックの「動きが小さく」ない場合、動き補償部４０２は、復号化対象マクロブロックの周辺ブロックの動きベクトルから算出される復号化対象マクロブロックの動きベクトルＭＶを、当該動き補償対象ブロックの動きベクトルとする（Ｓ４０４）。復号化済みの周辺ブロックの動きベクトルを用いて復号化対象マクロブロックの動きベクトルを算出する方法は、画像符号化装置３００の場合に説明した方法と同じである。
【００５１】
ステップＳ４０２またはステップＳ４０４において動き補償対象ブロックの動きベクトルが決定されると、動き補償部４０２は、画像メモリ２０４内の参照画像データRefのうち、決定された動きベクトルで示される位置のブロックを読み出し、予測画像データPredを生成する（Ｓ４０３）。このようにして、動き補償部４０２は、動き補償対象ブロックとその後方同位置にある動き補償済みブロックとが同じブロックサイズで動き補償されている場合においても、後方同位置の動き補償済みブロックの「動きが小さい」か否かに応じて、動き補償対象ブロックごとの動きベクトルを決定し、動き補償を行うことができる。
【００５２】
また、抽出された符号化モードModに、復号化対象マクロブロックがダイレクトモードで符号化されていることが示されている場合で、動き補償対象ブロックとその後方同位置にある動き補償済みブロックとが同じブロックサイズで動き補償されていない場合、動き情報変換部４０１は、図７のフローチャートに示される手順で動き補償対象ブロックの動きベクトルを算出するよう動き補償部４０２に指示する。動き補償部４０２は、（復号化対象ピクチャ内）復号化対象マクロブロックの（直近後方のＰピクチャ内）後方同位置マクロブロックにおいて、８画素×８画素の動き補償対象ブロックに対応する８画素×８画素のブロックに含まれる、４つの４画素×４画素の動き補償済みブロックの動きを調べ、４つのうち、２つ以上の動き補償済みブロックの「動きが小さい」場合には、動き補償対象ブロックの動きベクトルを（０、０）とする（Ｓ５０２）。そうでない場合には、復号化対象マクロブロックの周辺ブロックの動きベクトルを用いて算出された、復号化対象マクロブロックの動きベクトルＭＶを動き補償対象ブロックの動きベクトルとする（Ｓ５０４）。ステップＳ５０２またはステップＳ５０４において動き補償対象ブロックの動きベクトルが決定されると、動き補償部４０２は、画像メモリ２０４内の参照画像データRefのうち、決定された動きベクトルで示される位置のブロックを読み出し、予測画像データPredを生成する（Ｓ５０３）。これにより、動き補償部４０２は、動き補償対象ブロックとその後方同位置にある動き補償済みブロックとが同じブロックサイズで動き補償されていない場合においても、後方同位置の動き補償済みブロックの「動きが小さい」か否かを判定することができる。従って、動き補償部４０２は、この判定結果に応じて、動き補償対象ブロックごとの動きベクトルを決定し、動き補償対象ブロックの動き補償を行うことができる。
【００５３】
以上のように本発明の動き補償方法を用いた画像符号化装置３００および画像復号化装置４００によれば、Ｂピクチャの動き補償符号化において、従来の動き補償対象ブロックより大きいサイズの動き補償対象ブロックを単位として動き補償を行うので、Ｂピクチャの符号化および復号化における画像メモリへのアクセスによる負荷を低減することができる。
【００５４】
なお、上記実施の形態１では、Ｂピクチャの動き補償対象ブロックのサイズを８画素×８画素、Ｐピクチャの動き補償済みブロックのサイズを４画素×４画素として説明したが、本発明はこれに限定されず、これとは異なるブロックサイズに定めてもよい。また、直近後方ピクチャにおいて動き補償対象ブロックに対応するブロックのうちの２つ以上の動き補償済みブロックの「動きが小さい」場合、動き補償対象ブロックの動きベクトルを（０、０）としたが、必ずしも「２つ以上」である必要はなく、「１つ以上」、「３つ以上」または「全部」としてもよい。また、ＢピクチャとＰピクチャとの動き補償対象ブロックおよび動き補償対象ブロックのサイズを上記以外に定めた場合には、それらのブロックサイズの比に応じて適当に定めればよい。以下の実施の形態においても同様である。
【００５５】
さらに、上記実施の形態１において、図５または図７に示したフローチャートでは、周辺ブロックの動きベクトルに基づいて決定される動きベクトルは、１つの符号化または復号化対象マクロブロックについて１つであるので、同一符号化または復号化対象マクロブロック内の動き補償対象ブロックにつき、ステップＳ４０４またはステップＳ５０４の処理が実行される場合には、毎回、同じ計算処理をする結果となっている。しかし、本発明はこれに限定されず、例えば、符号化または復号化対象マクロブロックごとにあらかじめ周辺ブロックの動きベクトルに基づいて動きベクトルを決定しておき、すなわち、ステップＳ４０１またはステップＳ５０１の判断の前にステップＳ４０４またはステップＳ５０４の処理を行っておき、ステップＳ４０４またはステップＳ５０４では、単に、「周辺ブロックの動きベクトルに基づいてあらかじめ決定された動きベクトルの値を、当該動き補償対象ブロックの動きベクトルとして用いる」としてもよい。このようにすれば、動き補償対象ブロックの後方同位置にあるブロックの「動きが小さく」ない場合に、周辺ブロックの動きベクトルに基づく動きベクトルの計算回数を、より少なくし、動きベクトル検出部３０２および動き補償部４０２の処理負荷を低減することができるという効果がある。以下の実施の形態においても同様である。
【００５６】
また、ステップＳ４０１またはステップＳ５０１の判断の前にステップＳ４０４またはステップＳ５０４の処理を行っておく代わりに、ステップＳ４０４またはステップＳ５０４の処理があった場合には、算出された符号化または復号化対象マクロブロックの動きベクトルＭＶをメモリなどに保持するとしてもよい。動きベクトルＭＶを保持しておく期間は、同一符号化または復号化対象マクロブロック内の動き補償対象ブロックを処理している期間である。具体的には、動きベクトル検出部３０３または動き補償部４０２は、符号化または復号化対象マクロブロックにおいて、動き補償対象ブロックの後方同位置にあるブロックの「動きが小さく」ない場合に初めて符号化または復号化対象マクロブロックの動きベクトルＭＶを算出し、同じ符号化または復号化対象マクロブロック内の動き補償対象ブロックの処理が行われている間、符号化または復号化対象マクロブロックの動きベクトルＭＶを保持しているとしてもよい。このようにすれば、動きベクトル検出部３０２および動き補償部４０２の動きベクトル算出回数をさらに低減することができ、動きベクトル検出部３０２および動き補償部４０２の処理負荷をさらに低減することができるという効果がある。
【００５７】
また、上記実施の形態１において、図５または図７のフローチャートのステップＳ４０４またはステップＳ５０４では、周辺ブロックの動きベクトルを用いて符号化または復号化対象マクロブロックの動きベクトルＭＶを決定するとしたが、必ずしもこの方法で符号化または復号化対象マクロブロックの動きベクトルＭＶを決定する必要はない。例えば、動きベクトルがあらかじめ決定されている他のピクチャにおいて、符号化または復号化対象マクロブロックと同位置にあるブロックの動きベクトルを用いて符号化または復号化対象マクロブロックの動きベクトルを決定するとしてもよい。以下の実施の形態においても同様である。
【００５８】
なお、上記実施の形態では、動き情報変換部３０１は、参照ピクチャの動きパラメータが動きベクトル記憶部１１０に格納された後、所定のブロックサイズの動きパラメータに変換すると説明しているが、参照ピクチャの動きパラメータが動きベクトル記憶部１１０に格納される前に変換するとしてもよい。以下の実施の形態においても同様である。例えば、動き情報変換部３０１は、参照ピクチャの動きパラメータが、４画素×４画素のブロックを動き補償の単位として検出されている場合、それぞれ１６画素×１６画素のマクロブロックを４分割した８画素×８画素のブロックごとに、そのブロック（８画素×８画素）に含まれる４つの４画素×４画素のブロックで検出された動きベクトルの値を、すべて、その８画素×８画素のブロック内でマクロブロック（１６画素×１６画素）の４隅にあたる４画素×４画素の動き補償対象ブロックで検出された動きベクトルの値に書き換える。これにより、マクロブロックを４分割して得られる８画素×８画素のブロックをさらに４分割して得られる４画素×４画素のブロックは、いずれも、８画素×８画素のブロック内でマクロブロックの隅にあるブロック（４画素×４画素）に対して検出された同じ動きベクトルを持つことになる。このように変換された動きパラメータを動きベクトル記憶部１１０に格納しておくことにより、動きベクトル検出部３０２は、後方同位置にあるブロックに含まれるいずれか１つの４画素×４画素のブロックの動きベクトルを読み出せば、それを用いて容易に後方同位置にあるブロックの動きを判定することができる。
【００５９】
また、動き情報変換部３０１は、例えば、参照ピクチャの動きパラメータが、４画素×４画素のブロックを動き補償の単位として検出されている場合、動きベクトル記憶部１１０内において、１６画素×１６画素のマクロブロックを４分割した８画素×８画素の各ブロックに対応付けて、１つの動きベクトルだけを格納しておくとしてもよい。以下の実施の形態においても同様である。この動きベクトルは、８画素×８画素のブロック内でマクロブロックの隅にあるブロック（４画素×４画素）に対して検出された動きベクトルなどである。これにより、動きベクトル検出部３０２は、参照ピクチャの動きパラメータが、４画素×４画素のブロックを動き補償の単位として検出されている場合であっても、図３（ｂ）および図５に示した処理と同様にして、後方同位置にあるブロックの「動きが小さい」か否かを判定することができる。
【００６０】
さらに、動き情報変換部３０１は、例えば、参照ピクチャの動きパラメータが、４画素×４画素のブロックを動き補償の単位として検出されている場合、８画素×８画素のブロック内でマクロブロックの隅にあるブロック（４画素×４画素）に対して検出された動きベクトルから、そのブロック（４画素×４画素）の「動きが小さい」か否かを判定し、その判定結果を示すフラグを、符号化対象マクロブロック内の８画素×８画素の各ブロックに対応付けて動きベクトル記憶部１１０に格納しておくとしてもよい。以下の実施の形態においても同様である。これにより、動きベクトル検出部３０２は、Ｂピクチャの動き補償の際に、後方同位置にあるブロックの「動きが小さい」か否かを判定する必要がなくなり、Ｂピクチャの動き補償における処理負荷を低減することができるという効果がある。
【００６１】
（実施の形態２）
次に説明する本実施の形態２は、符号化または復号化対象マクロブロックと後方同位置マクロブロックとが異なるブロックサイズで動き補償されている場合において、動き補償対象ブロックの動きベクトルを（０、０）とするか、周辺ブロックの動きベクトルから決定するかのいずれかを選択する際の判定方法が実施の形態１と異なる。符号化または復号化対象マクロブロックと後方同位置マクロブロックとが同じブロックサイズで動き補償されている場合には、実施の形態１の図３（ａ）から図５で説明した方法により、動き補償対象ブロックの動き補償が行われる。従って、構成の点では、本実施の形態２の画像符号化装置および画像復号化装置が、実施の形態１に示した画像符号化装置３００および画像復号化装置４００と異なる主たる部分は、画像符号化装置の動き情報変換部および動きベクトル検出部と、画像復号化装置の動き情報変換部および動き補償部である。よって、以下では、重複する構成要素の説明を省略する。
【００６２】
図８は、本実施の形態２において、符号化または復号化対象マクロブロックとその後方同位置マクロブロックとが異なるブロックサイズで動き補償されている場合の動き補償対象ブロックとその後方同位置にある複数のブロックとの対応を示す図である。同図の左側には、図６と同様に、符号化または復号化対象Ｂピクチャ内の符号化または復号化対象マクロブロックが示されている。同図の右側には、図６と同様に、符号化または復号化対象マクロブロックの後方同位置マクロブロックが示されている。右側に示される後方同位置マクロブロックはＰピクチャまたはＢピクチャであり、例えば、それぞれ４画素×４画素のブロック（図中の最小区画）を単位として、すでに動きベクトルの検出および動き補償が行われている。左側に示される符号化または復号化対象マクロブロックでは、図６と同様に、８画素×８画素のブロック（図中の最小区画）を単位として動きベクトルの決定および動き補償が行われる。
【００６３】
図８に示すように、１つの符号化または復号化対象マクロブロックは４つの動き補償対象ブロックから構成される。それらを例えば、動き補償対象ブロックａ、動き補償対象ブロックｂ、動き補償対象ブロックｃおよび動き補償対象ブロックｄとすると、その後方同位置マクロブロック内では、それぞれ４画素×４画素の４つの動き補償済みブロックから構成される４つの８×８画素のブロックが、それぞれの動き補償対象ブロックに対応する。
【００６４】
図９は、実施の形態２において、符号化または復号化対象マクロブロックと後方同位置マクロブロックとが異なるブロックサイズで動き補償されている場合において、動き補償対象ブロックの後方同位置にあるブロックの動きに応じて、異なる動きベクトルで動き補償対象ブロックを動き補償するための処理手順を示すフローチャートである。すでに説明したように、本実施の形態２の動き補償方法では、動き補償対象ブロックの動きベクトルを選択する際の判定方法が異なるだけであるので、フローチャートでは、図９のステップＳ７０１の処理と、図７のステップＳ５０１の処理とが異なるだけである。
【００６５】
まず、動き情報変換部は、動き補償対象ブロックの後方同位置にあるブロックの動き補償のサイズが動き補償対象ブロックのサイズと同じか否かを判断し、同じである場合、図５のフローチャートに示される手順で、動き補償対象ブロックの動きベクトルを算出するよう動きベクトル検出部または動き補償部に指示する。逆に、同じブロックサイズで動き補償されていない場合、図９のフローチャートに示される手順で動き補償対象ブロックの動きベクトルを算出するよう、動きベクトル検出部または動き補償部に指示する。
【００６６】
動きベクトル検出部または動き補償部は、符号化または復号化対象マクロブロック内の動き補償対象ブロックａにつき、後方同位置マクロブロック内の対応するブロックを構成している４つの動き補償済みブロックのうち、後方同位置マクロブロックの隅に位置する動き補償済みブロックａ'の「動きが小さい」か否かを調べる（Ｓ７０１）。
【００６７】
動き補償済みブロックａ'の「動きが小さい」か否かを判定する基準は、図５に示したステップＳ４０１における判定基準と同様である。動き補償済みブロックａ'の「動きが小さい」場合、動きベクトル検出部または動き補償部は、符号化または復号化対象マクロブロック内の動き補償対象ブロックａの動きベクトルを（０、０）とする（Ｓ７０２）。動き補償部は、決定された動きベクトル（０、０）を用いて動き補償対象ブロックａを動き補償する（Ｓ７０３）。
【００６８】
動き補償対象ブロックａ'の「動きが小さく」ない場合、動きベクトル検出部または動き補償部は、符号化または復号化対象マクロブロックの周辺ブロックの動きベクトルから当該符号化または復号化対象マクロブロックの動きベクトルＭＶを決定する（Ｓ７０４）。周辺ブロックの動きベクトルから符号化または復号化対象マクロブロックの動きベクトルＭＶを決定する処理は、図５のステップＳ４０４における処理と同様である。動き補償部は、このように決定された符号化または復号化対象マクロブロックの動きベクトルＭＶを用いて動き補償対象ブロックａの動き補償予測画素値を生成する（Ｓ７０３）。以上の処理により、１つの動き補償対象ブロックａの動き補償が完了する。
【００６９】
実施の形態２の画像符号化装置において、動きベクトル検出部、動き補償部および動き情報変換部と、画像復号化装置において動き補償部および動き情報変換部とは、続いて、上記ステップＳ７０１〜ステップＳ７０４の処理を、残りの動き補償対象ブロックｂ、動き補償対象ブロックｃ、および動き補償対象ブロックｄについて繰り返すことにより、１つの符号化または復号化対象マクロブロックの動き補償を完了する。
【００７０】
すなわち、動き補償対象ブロックｂについては、動き補償対象ブロックｂの後方同位置にあるブロックにおいて、符号化または復号化対象マクロブロックの後方同位置マクロブロックの隅に位置する動き補償済みブロックｂ'の「動きが小さい」か否かを調べ、動き補償済みブロックｂ'の「動きが小さい」場合には動きベクトル（０、０）を選択する。動き補償済みブロックｂ'の「動きが小さく」ない場合には、周辺ブロックの動きベクトルを用いて算出される符号化または復号化対象マクロブロックの動きベクトルＭＶを選択する。動き補償部は、選択された動きベクトルを用いて、動き補償対象ブロックｂの動き補償を行う。
【００７１】
また、動き補償対象ブロックｃおよび動き補償対象ブロックｄについても同様に、動き補償済みブロックｃ'および動き補償済みブロックｄ'の動きに応じて動きベクトルを選択し、選択された動きベクトルで動き補償対象ブロックｃおよび動き補償対象ブロックｄを動き補償する。このようにして、符号化または復号化対象マクロブロック内のすべての動き補償対象ブロックの動き補償を行うと、当該符号化または復号化対象マクロブロックの動き補償を完了する。
【００７２】
以上のように本実施の形態２の動き補償方法によれば、後方同位置マクロブロックの隅に位置する１つの動き補償済みブロックの動きを調べるだけで、動き補償対象ブロックの動き補償に用いる動きベクトルを選択することができるので、実施の形態１の動き補償方法よりも動きベクトル検出部または動き補償部の処理負荷を低減することができるという効果がある。
【００７３】
（実施の形態３）
さらに、上記各実施の形態で示した画像符号化方法および画像復号化方法の構成を実現するためのプログラムを、フレキシブルディスク等の記録媒体に記録するようにすることにより、上記各実施の形態で示した処理を、独立したコンピュータシステムにおいて簡単に実施することが可能となる。
【００７４】
図１０は、上記実施の形態１から実施の形態２の画像符号化方法および画像復号化方法をコンピュータシステムにより実現するためのプログラムを格納するための記録媒体についての説明図である。
【００７５】
図１０（ｂ）は、フレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示し、図１０（ａ）は、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示している。フレキシブルディスクＦＤはケースＦ内に内蔵され、該ディスクの表面には、同心円状に外周からは内周に向かって複数のトラックＴｒが形成され、各トラックは角度方向に１６のセクタＳｅに分割されている。従って、上記プログラムを格納したフレキシブルディスクでは、上記フレキシブルディスクＦＤ上に割り当てられた領域に、上記プログラムとしての画像符号化方法および画像復号化方法が記録されている。
【００７６】
また、図１０（ｃ）は、フレキシブルディスクＦＤに上記プログラムの記録再生を行うための構成を示す。上記プログラムをフレキシブルディスクＦＤに記録する場合は、コンピュータシステムＣｓから上記プログラムとしての画像符号化方法および画像復号化方法を、フレキシブルディスクドライブを介して書き込む。また、フレキシブルディスク内のプログラムにより上記画像符号化方法および画像復号化方法をコンピュータシステム中に構築する場合は、フレキシブルディスクドライブによりプログラムをフレキシブルディスクから読み出し、コンピュータシステムに転送する。
【００７７】
なお、上記説明では、記録媒体としてフレキシブルディスクを用いて説明を行ったが、光ディスクを用いても同様に行うことができる。また、記録媒体はこれに限らず、ＣＤ−ＲＯＭ、メモリカード、ＲＯＭカセット等、プログラムを記録できるものであれば同様に実施することができる。
【００７８】
（実施の形態４）
さらにここで、上記実施の形態で示した画像符号化方法や画像復号化方法の応用例とそれを用いたシステムを説明する。
【００７９】
図１１は、コンテンツ配信サービスを実現するコンテンツ供給システムex１００の全体構成を示すブロック図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex１０７〜ex１１０が設置されている。
【００８０】
このコンテンツ供給システムex１００は、例えば、インターネットex１０１にインターネットサービスプロバイダex１０２および電話網ex１０４、および基地局ex１０７〜ex１１０を介して、コンピュータex１１１、ＰＤＡ（personal digital assistant）ex１１２、カメラex１１３、携帯電話ex１１４、カメラ付きの携帯電話ex１１５などの各機器が接続される。
【００８１】
しかし、コンテンツ供給システムex１００は図１１のような組合せに限定されず、いずれかを組み合わせて接続するようにしてもよい。また、固定無線局である基地局ex１０７〜ex１１０を介さずに、各機器が電話網ex１０４に直接接続されてもよい。
【００８２】
カメラex１１３はデジタルビデオカメラ等の動画撮影が可能な機器である。また、携帯電話は、ＰＤＣ（Personal Digital Communications）方式、ＣＤＭＡ（Code Division Multiple Access）方式、Ｗ−ＣＤＭＡ（Wideband-Code Division Multiple Access）方式、若しくはＧＳＭ（Global System for Mobile Communications）方式の携帯電話機、またはＰＨＳ（Personal Handyphone System）等であり、いずれでも構わない。
【００８３】
また、ストリーミングサーバex１０３は、カメラex１１３から基地局ex１０９、電話網ex１０４を通じて接続されており、カメラex１１３を用いてユーザが送信する符号化処理されたデータに基づいたライブ配信等が可能になる。撮影したデータの符号化処理はカメラex１１３で行っても、データの送信処理をするサーバ等で行ってもよい。また、カメラex１１６で撮影した動画データはコンピュータex１１１を介してストリーミングサーバex１０３に送信されてもよい。カメラex１１６はデジタルカメラ等の静止画、動画が撮影可能な機器である。この場合、動画データの符号化はカメラex１１６で行ってもコンピュータex１１１で行ってもどちらでもよい。また、符号化処理はコンピュータex１１１やカメラex１１６が有するＬＳＩex１１７において処理することになる。なお、画像符号化・復号化用のソフトウェアをコンピュータex１１１等で読み取り可能な記録媒体である何らかの蓄積メディア（ＣＤ−ＲＯＭ、フレキシブルディスク、ハードディスクなど）に組み込んでもよい。さらに、カメラ付きの携帯電話ex１１５で動画データを送信してもよい。このときの動画データは携帯電話ex１１５が有するＬＳＩで符号化処理されたデータである。
【００８４】
このコンテンツ供給システムex１００では、ユーザがカメラex１１３、カメラex１１６等で撮影しているコンテンツ（例えば、音楽ライブを撮影した映像等）を上記実施の形態同様に符号化処理してストリーミングサーバex１０３に送信する一方で、ストリーミングサーバex１０３は要求のあったクライアントに対して上記コンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex１１１、ＰＤＡex１１２、カメラex１１３、携帯電話ex１１４等がある。このようにすることでコンテンツ供給システムex１００は、符号化されたデータをクライアントにおいて受信して再生することができ、さらにクライアントにおいてリアルタイムで受信して復号化し、再生することにより、個人放送をも実現可能になるシステムである。
【００８５】
このシステムを構成する各機器の符号化、復号化には上記各実施の形態で示した画像符号化装置あるいは画像復号化装置を用いるようにすればよい。
【００８６】
その一例として携帯電話について説明する。
図１２は、上記実施の形態で説明した画像符号化方法と画像復号化方法を用いた携帯電話ex１１５を示す図である。携帯電話ex１１５は、基地局ex１１０との間で電波を送受信するためのアンテナex２０１、ＣＣＤカメラ等の映像、静止画を撮ることが可能なカメラ部ex２０３、カメラ部ex２０３で撮影した映像、アンテナex２０１で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex２０２、操作キーex２０４群から構成される本体部、音声出力をするためのスピーカ等の音声出力部ex２０８、音声入力をするためのマイク等の音声入力部ex２０５、撮影した動画もしくは静止画のデータ、受信したメールのデータ、動画のデータもしくは静止画のデータ等、符号化されたデータまたは復号化されたデータを保存するための記録メディアex２０７、携帯電話ex１１５に記録メディアex２０７を装着可能とするためのスロット部ex２０６を有している。記録メディアex２０７はＳＤカード等のプラスチックケース内に電気的に書換えや消去が可能な不揮発性メモリであるＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）の一種であるフラッシュメモリ素子を格納したものである。
【００８７】
さらに、携帯電話ex１１５について図１３を用いて説明する。携帯電話ex１１５は表示部ex２０２及び操作キーex２０４を備えた本体部の各部を統括的に制御するようになされた主制御部ex３１１に対して、電源回路部ex３１０、操作入力制御部ex３０４、画像符号化部ex３１２、カメラインターフェース部ex３０３、ＬＣＤ（Liquid Crystal Display）制御部ex３０２、画像復号化部ex３０９、多重分離部ex３０８、記録再生部ex３０７、変復調回路部ex３０６及び音声処理部ex３０５が同期バスex３１３を介して互いに接続されている。
【００８８】
電源回路部ex３１０は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することによりカメラ付ディジタル携帯電話ex１１５を動作可能な状態に起動する。
【００８９】
携帯電話ex１１５は、ＣＰＵ、ＲＯＭ及びＲＡＭ等でなる主制御部ex３１１の制御に基づいて、音声通話モード時に音声入力部ex２０５で集音した音声信号を音声処理部ex３０５によってディジタル音声データに変換し、これを変復調回路部ex３０６でスペクトラム拡散処理し、送受信回路部ex３０１でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex２０１を介して送信する。また携帯電話機ex１１５は、音声通話モード時にアンテナex２０１で受信した受信データを増幅して周波数変換処理及びアナログディジタル変換処理を施し、変復調回路部ex３０６でスペクトラム逆拡散処理し、音声処理部ex３０５によってアナログ音声データに変換した後、これを音声出力部ex２０８を介して出力する。
【００９０】
さらに、データ通信モード時に電子メールを送信する場合、本体部の操作キーex２０４の操作によって入力された電子メールのテキストデータは操作入力制御部ex３０４を介して主制御部ex３１１に送出される。主制御部ex３１１は、テキストデータを変復調回路部ex３０６でスペクトラム拡散処理し、送受信回路部ex３０１でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex２０１を介して基地局ex１１０へ送信する。
【００９１】
データ通信モード時に画像データを送信する場合、カメラ部ex２０３で撮像された画像データをカメラインターフェース部ex３０３を介して画像符号化部ex３１２に供給する。また、画像データを送信しない場合には、カメラ部ex２０３で撮像した画像データをカメラインターフェース部ex３０３及びＬＣＤ制御部ex３０２を介して表示部ex２０２に直接表示することも可能である。
【００９２】
画像符号化部ex３１２は、本願発明で説明した画像符号化装置を備えた構成であり、カメラ部ex２０３から供給された画像データを上記実施の形態で示した画像符号化装置に用いた符号化方法によって圧縮符号化することにより符号化画像データに変換し、これを多重分離部ex３０８に送出する。また、このとき同時に携帯電話機ex１１５は、カメラ部ex２０３で撮像中に音声入力部ex２０５で集音した音声を音声処理部ex３０５を介してディジタルの音声データとして多重分離部ex３０８に送出する。
【００９３】
多重分離部ex３０８は、画像符号化部ex３１２から供給された符号化画像データと音声処理部ex３０５から供給された音声データとを所定の方式で多重化し、その結果得られる多重化データを変復調回路部ex３０６でスペクトラム拡散処理し、送受信回路部ex３０１でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex２０１を介して送信する。
【００９４】
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、アンテナex２０１を介して基地局ex１１０から受信した受信データを変復調回路部ex３０６でスペクトラム逆拡散処理し、その結果得られる多重化データを多重分離部ex３０８に送出する。
【００９５】
また、アンテナex２０１を介して受信された多重化データを復号化するには、多重分離部ex３０８は、多重化データを分離することにより画像データのビットストリームと音声データのビットストリームとに分け、同期バスex３１３を介して当該符号化画像データを画像復号化部ex３０９に供給すると共に当該音声データを音声処理部ex３０５に供給する。
【００９６】
次に、画像復号化部ex３０９は、本願発明で説明した画像復号化装置を備えた構成であり、画像データのビットストリームを上記実施の形態で示した符号化方法に対応した復号化方法で復号することにより再生動画像データを生成し、これをＬＣＤ制御部ex３０２を介して表示部ex２０２に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まれる動画データが表示される。このとき同時に音声処理部ex３０５は、音声データをアナログ音声データに変換した後、これを音声出力部ex２０８に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まる音声データが再生される。
【００９７】
なお、上記システムの例に限られず、最近は衛星、地上波によるディジタル放送が話題となっており、図１４に示すようにディジタル放送用システムにも上記実施の形態の少なくとも画像符号化装置または画像復号化装置のいずれかを組み込むことができる。具体的には、放送局ex４０９では映像情報のビットストリームが電波を介して通信または放送衛星ex４１０に伝送される。これを受けた放送衛星ex４１０は、放送用の電波を発信し、この電波を衛星放送受信設備をもつ家庭のアンテナex４０６で受信し、テレビ（受信機）ex４０１またはセットトップボックス（ＳＴＢ）ex４０７などの装置によりビットストリームを復号化してこれを再生する。また、記録媒体であるＣＤやＤＶＤ等の蓄積メディアex４０２に記録したビットストリームを読み取り、復号化する再生装置ex４０３にも上記実施の形態で示した画像復号化装置を実装することが可能である。この場合、再生された映像信号はモニタex４０４に表示される。また、ケーブルテレビ用のケーブルex４０５または衛星／地上波放送のアンテナex４０６に接続されたセットトップボックスex４０７内に画像復号化装置を実装し、これをテレビのモニタex４０８で再生する構成も考えられる。このときセットトップボックスではなく、テレビ内に画像復号化装置を組み込んでも良い。また、アンテナex４１１を有する車ex４１２で衛星ex４１０からまたは基地局ex１０７等から信号を受信し、車ex４１２が有するカーナビゲーションex４１３等の表示装置に動画を再生することも可能である。
【００９８】
更に、画像信号を上記実施の形態で示した画像符号化装置で符号化し、記録媒体に記録することもできる。具体例としては、ＤＶＤディスクex４２１に画像信号を記録するＤＶＤレコーダや、ハードディスクに記録するディスクレコーダなどのレコーダex４２０がある。更にＳＤカードex４２２に記録することもできる。レコーダex４２０が上記実施の形態で示した画像復号化装置を備えていれば、ＤＶＤディスクex４２１やSDカードex４２２に記録した画像信号を再生し、モニタex４０８で表示することができる。
【００９９】
なお、カーナビゲーションex４１３の構成は例えば図１３に示す構成のうち、カメラ部ex２０３とカメラインターフェース部ex３０３、画像符号化部ex３１２を除いた構成が考えられ、同様なことがコンピュータex１１１やテレビ（受信機）ex４０１等でも考えられる。
【０１００】
また、上記携帯電話ex１１４等の端末は、符号化器・復号化器を両方持つ送受信型の端末の他に、符号化器のみの送信端末、復号化器のみの受信端末の３通りの実装形式が考えられる。
【０１０１】
このように、上記実施の形態で示した画像符号化方法あるいは画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記実施の形態で説明した効果を得ることができる。
【０１０２】
また、本発明はかかる上記実施形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
【産業上の利用可能性】
【０１０３】
本発明に係る画像符号化装置は、通信機能を備えるパーソナルコンピュータ、ＰＤＡ、ディジタル放送の放送局および携帯電話機などに備えられる画像符号化装置として有用である。
【０１０４】
また、本発明に係る画像復号化装置は、通信機能を備えるパーソナルコンピュータ、ＰＤＡ、ディジタル放送を受信するＳＴＢおよび携帯電話機などに備えられる画像復号化装置として有用である。
【図面の簡単な説明】
【０１０５】
【図１】本発明に係る画像符号化方法を用いた画像符号化装置の一実施の形態の構成を示すブロック図である。
【図２】本発明に係る画像復号化方法を用いた画像復号化装置の一実施の形態の構成を示すブロック図である。
【図３】（ａ）周辺ブロックが符号化または復号化対象マクロブロックと同じブロックサイズで動き補償されている場合に、周辺ブロックの動きベクトルを用いて符号化または復号化対象マクロブロックの動きベクトルＭＶを決定する方法を示す図である。（ｂ）符号化または復号化対象マクロブロックと後方同位置マクロブロックとが同じブロックサイズで動き補償されている場合において、動き補償対象ブロックとその後方同位置にある基準ブロックとの対応を示す図である。
【図４】周辺ブロックが符号化または復号化対象マクロブロックより小さいブロックサイズで動き補償されている場合に、周辺ブロックの動きベクトルを用いて符号化対象マクロブロックの動きベクトルＭＶを決定する方法を示す図である。
【図５】符号化対象マクロブロックと後方同位置マクロブロックとが同じブロックサイズで動き補償されている場合において、動き補償対象ブロックの後方同位置にある基準ブロックの動きに応じて、異なる動きベクトルで動き補償対象ブロックを動き補償するための処理手順を示すフローチャートである。
【図６】符号化対象マクロブロックとその後方同位置マクロブロックとが異なるブロックサイズで動き補償されている場合において、動き補償対象ブロックとその後方同位置にある複数のブロックとの対応を示す図である。
【図７】符号化または復号化対象マクロブロックと後方同位置マクロブロックとが異なるブロックサイズで動き補償されている場合において、動き補償対象ブロックの後方同位置にあるブロックの動きに応じて、異なる動きベクトルで動き補償対象ブロックを動き補償するための処理手順を示すフローチャートである。
【図８】実施の形態２において、符号化または復号化対象マクロブロックとその後方同位置マクロブロックとが異なるブロックサイズで動き補償されている場合の動き補償対象ブロックとその後方同位置にある複数のブロックとの対応を示す図である。
【図９】実施の形態２において、符号化または復号化対象マクロブロックと後方同位置マクロブロックとが異なるブロックサイズで動き補償されている場合において、動き補償対象ブロックの後方同位置にあるブロックの動きに応じて異なる動きベクトルで動き補償対象ブロックを動き補償するための処理手順を示すフローチャートである。
【図１０】（ａ）記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示している。（ｂ）フレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示す。（ｃ）フレキシブルディスクＦＤに上記プログラムの記録再生を行うための構成を示す。
【図１１】コンテンツ配信サービスを実現するコンテンツ供給システムex１００の全体構成を示すブロック図である。
【図１２】上記実施の形態で説明した動画像符号化方法と動画像復号化方法を用いた携帯電話ex１１５を示す図である。
【図１３】携帯電話の構成を示すブロック図である。
【図１４】ディジタル放送用システムの一例を示す図である。
【図１５】従来の画像符号化装置の構成を示すブロック図である。
【図１６】画素補間を行う従来の画像復号化装置の構成を示すブロック図である。
【図１７】画素補間を行う場合において予測画像を生成するために必要な動き補償対象ブロックとその周辺画素との一例を示す図である。
【符号の説明】
【０１０６】
３００    画像符号化装置
１０１    差分器
１０２    画像符号化部
１０３    可変長符号化部
１０４    画像復号化部
１０５    加算器
１０６    画像メモリ
１０７    ピクチャメモリ
１１０    動きベクトル記憶部
３０１    動き情報変換部
３０２    動きベクトル検出部
３０３    動き補償部
４００    画像復号化装置
２０１    可変長復号化部
２０２    画像復号化部
２０３    加算器
２０４    画像メモリ
２０５    動きベクトル記憶部
４０１    動き情報変換部
４０２    動き補償部
Img             画像データ
Res             差分画像データ
CodedRes        差分画像符号化データ
Bitstream      符号化データ
Pred            予測画像データ
Recon           復号化画像データ
Ref             参照画像データ
MotionParam     動きパラメータ
Mod             符号化モード
【図１】
2004194283.tif 000003
【図２】
2004194283.tif 000004
【図３】
2004194283.tif 000005
【図４】
2004194283.tif 000006
【図５】
2004194283.tif 000007
【図６】
2004194283.tif 000008
【図７】
2004194283.tif 000009
【図８】
2004194283.tif 000010
【図９】
2004194283.tif 000011
【図１０】
2004194283.tif 000012
【図１１】
2004194283.tif 000013
【図１２】
2004194283.tif 000014
【図１３】
2004194283.tif 000015
【図１４】
2004194283.tif 000016
【図１５】
2004194283.tif 000017
【図１６】
2004194283.tif 000018
【図１７】
2004194283.tif 000019