(57)【要約】【課題】画像の復号化や符号化を効率よく行うことができるようにする。【解決手段】複数の可変長復号化部５２によって、互いに異なる階層に応じて可変長符号化に対応する可変長復号化が符号化されたストリームに対して行われる。選択部５２２は、ストリームに含まれている復号化対象のブロックの階層を示す階層構造情報に基づき、復号化対象のブロックの階層に対応した可変長復号化部の出力を選択する。予測動きベクトル設定部５２３は、復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを予測動きベクトルに設定して、加算部５２５は、設定された予測動きベクトルと選択された可変長復号化部から出力された差分動きベクトルを加算して、復号化対象のブロックの動きベクトルを算出する。【選択図】        図１４
2011259093.tif 000002
【特許請求の範囲】
【請求項１】
符号化されたストリームの復号化を行い、差分動きベクトルを出力する可変長復号化部と、
復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを、該復号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定部と、
前記差分動きベクトルと前記予測動きベクトルを加算して、前記復号化対象のブロックの動きベクトルを算出する加算部と
を有する画像復号化装置。
【請求項２】
複数の前記可変長復号化部と、
前記可変長復号化部から出力される差分動きベクトルを選択する選択部をさらに有し、
前記複数の可変長復号化部は、互いに異なる階層に応じて可変長符号化に対応する可変長復号化を前記ストリームに対して行い、
前記選択部は、復号化対象のブロックの階層を示す階層構造情報に基づき、復号化対象のブロックの階層に対応した可変長復号化部の出力を選択する請求項１記載の画像復号化装置。
【請求項３】
符号化されたストリームの復号化を行い、差分動きベクトルを出力する可変長復号化工程と、
復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを、該復号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定工程と、
前記差分動きベクトルと前記予測動きベクトルを加算して、前記復号化対象のブロックの動きベクトルを算出する加算工程と
を設けた画像復号化方法。
【請求項４】
画像符号化をコンピュータで実行させるプログラムであって、
符号化されたストリームの復号化を行い、差分動きベクトルを出力する可変長復号化手順と、
復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを、該復号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定手順と、
前記差分動きベクトルと前記予測動きベクトルを加算して、前記復号化対象のブロックの動きベクトルを算出する加算手順と
を前記コンピュータで実行させるプログラム。
【請求項５】
符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを、該符号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定部と、
前記符号化対象のブロックの動きベクトルと、前記設定された予測動きベクトルとの差分を算出する差分演算部と、
前記差分動きベクトルの可変長符号化を行う可変長符号化部と
を有する画像符号化装置。
【請求項６】
最上位階層のブロックサイズであるマクロブロックごとに、該マクロブロックに含まれる符号化対象のブロックの階層を示す階層構造情報を生成する階層構造情報生成部をさらに有する請求項５記載の画像符号化装置。
【請求項７】
複数の前記可変長符号化部と、
前記複数の可変長符号化部から出力される符号化データを選択する選択部をさらに有し、
前記複数の可変長符号化部は、互いに異なる階層に対して符号化効率が最も高くなるように最適化した可変長符号化を前記差分動きベクトルに対して行い、
前記選択部は、符号化対象のブロックの階層に対応する可変長符号化部の出力を選択する請求項６記載の画像符号化装置。
【請求項８】
前記予測動きベクトル設定部は、隣接する符号化済みのマクロブロックの動きベクトルを用いて予測動きベクトルの候補として、該候補から符号化効率が最も高くなる動きベクトルを選択して前記最上位階層の予測動きベクトルに設定する請求項６記載の画像符号化装置。
【請求項９】
符号化対象のブロックの画像に対して多重解像度解析と画像の再構築を行う多重解像度解析・再構築部と、
前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析部と、
前記参照画像の多重解像度解析結果を記憶するメモリと、
前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築部とをさらに有し、
前記動きベクトルの検出を行う動き予測部は、前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う請求項５記載の画像符号化装置。
【請求項１０】
符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを、該符号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定工程と、
前記符号化対象のブロックの動きベクトルと、前記設定された予測動きベクトルとの差分を算出する差分演算工程と、
前記差分動きベクトルの符号化を行う可変長符号化工程と
を設けた画像符号化方法。
【請求項１１】
画像符号化をコンピュータで実行させるプログラムであって、
符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを、該符号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定手順と、
前記符号化対象のブロックの動きベクトルと、前記設定された予測動きベクトルとの差分を算出する差分演算手順と、
前記差分動きベクトルの符号化を行う可変長符号化手順と
を前記コンピュータで実行させるプログラム。
【請求項１２】
符号化対象のブロックの画像に対して多重解像度解析と画像の再構築を行う多重解像度解析・再構築部と、
前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析部と、
前記参照画像の多重解像度解析結果を記憶するメモリと、
前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築部と、
前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う動き予測部と
を有する画像符号化装置。
【請求項１３】
前記メモリは、第１のメモリと第２のメモリで構成して、
前記第１のメモリは、多重解像度解析結果を低解像度から高解像度の順に記憶して、該第１のメモリのメモリ容量を超える多重解像度解析結果を前記第２のメモリに記憶させて、
前記多重解像度再構築部は、前記第１のメモリに記憶されている前記多重解像度解析結果を用いて画像の再構築を行い、必要とする前記多重解像度解析結果が前記第１のメモリに記憶されていないとき、前記第２のメモリから必要とする前記多重解像度解析結果を読み出す請求項１２記載の画像符号化装置。
【請求項１４】
符号化対象のブロックの画像に対して多重解像度解析と再構築を行う多重解像度解析・再構築工程と、
前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析工程と、
前記多重解像度解析結果をメモリに記憶する記憶工程と、
前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築工程と、
前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う動き予測工程と
を設けた画像符号化方法。
【請求項１５】
画像符号化をコンピュータで実行させるプログラムであって、
符号化対象のブロックの画像に対して多重解像度解析と再構築を行う多重解像度解析・再構築手順と、
前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析手順と、
前記多重解像度解析結果をメモリに記憶させる記憶手順と、
前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築手順と、
前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う動き予測手順と
を前記コンピュータで実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像復号化装置と画像符号化装置およびその方法とプログラムに関する。詳しくは、画像の復号化や符号化を効率よく行うことができる画像復号化装置と画像符号化装置およびその方法とプログラムを提供する。
【背景技術】
【０００２】
近年、画像情報をディジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するＭＰＥＧなどの方式に準拠した装置が、放送局などの情報配信、および一般家庭における情報受信の双方において普及しつつある。
【０００３】
特に、ＭＰＥＧ２（ＩＳＯ／ＩＥＣ １３８１８−２）は、汎用画像符号化方式として定義されており、飛び越し走査画像および順次走査画像の双方、並びに標準解像度画像および高精細画像を網羅する標準で、プロフェッショナル用途およびコンシューマー用途の広範なアプリケーションに現在広く用いられている。ＭＰＥＧ２圧縮方式を用いることにより、例えば７２０×４８０画素を持つ標準解像度の飛び越し走査画像であれば４〜８Ｍｂｐｓの符号量（ビットレート）を割り当てることで、高い圧縮率と良好な画質の実現が可能である。また、１９２０×１０８８画素を持つ高解像度の飛び越し走査画像であれば、１８〜２２Ｍｂｐｓの符号量を割り当てることで、高い圧縮率と良好な画質の実現が可能である。
【０００４】
ＭＰＥＧ２は主として放送用に適合する高画質符号化を対象としていたが、ＭＰＥＧ１より低い符号量（ビットレート）、つまりより高い圧縮率の符号化方式には対応していなかった。携帯端末の普及により、今後そのような符号化方式のニーズは高まると思われ、これに対応してＭＰＥＧ４符号化方式の標準化が行われた。画像符号化方式に関しては、１９９８年１２月にＩＳＯ／ＩＥＣ １４４９６−２としてその規格が国際標準に承認された。
【０００５】
さらに、近年、ＭＰＥＧ２やＭＰＥＧ４といった符号化方式に比べ、その符号化、復号化により多くの演算量が要求されるものの、より高い符号化効率が実現されている。例えば、Ｈ．２６Ｌをベースとして、Ｈ．２６Ｌではサポートされない機能をも取り入れ、より高い符号化効率を実現する標準化が行われてＨ．２６４およびＭＰＥＧ−４  Part１０  （Advanced Video Coding、以下Ｈ．２６４／ＡＶＣと記す）という名で国際標準となっている。
【０００６】
また、Ｈ．２６４／ＡＶＣを用いて画像データをより効率的に符号化することが特許文献１等に開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−４９８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、従来の方法では、高い符号化効率の実現がはかられているが、さらに符号化効率の向上をより効率よく実現可能とすることが望まれている。
【０００９】
そこで、この発明では、画像の復号化や符号化を効率よく行うことができる画像復号化装置と画像符号化装置およびその方法とプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
この発明の第１の側面は、符号化されたストリームの復号化を行い差分動きベクトルを出力する可変長復号化部と、復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを、該復号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定部と、前記差分動きベクトルと前記予測動きベクトルを加算して、前記復号化対象のブロックの動きベクトルを算出する加算部とを有する画像復号化装置にある。
【００１１】
この発明では、複数の可変長復号化部によって、互いに異なる階層に応じて可変長符号化に対応する可変長復号化が符号化されたストリームに対して行われる。また、ストリームに含まれている復号化対象のブロックの階層を示す階層構造情報に基づき、復号化対象のブロックの階層に対応した可変長復号化部の出力が選択される。さらに、復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルが予測動きベクトルに設定されて、この設定された予測動きベクトルと選択された可変長復号化部から出力された差分動きベクトルが加算されて、復号化対象のブロックの動きベクトルが算出される。
【００１２】
この発明の第２の側面は、符号化されたストリームの復号化を行い、差分動きベクトルを出力する可変長復号化工程と、復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを、該復号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定工程と、前記差分動きベクトルと前記予測動きベクトルを加算して、前記復号化対象のブロックの動きベクトルを算出する加算工程とを設けた画像復号化方法にある。
【００１３】
この発明の第３の側面は、画像符号化をコンピュータで実行させるプログラムであって、符号化されたストリームの復号化を行い、差分動きベクトルを出力する可変長復号化手順と、復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを、該復号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定手順と、前記差分動きベクトルと前記予測動きベクトルを加算して、前記復号化対象のブロックの動きベクトルを算出する加算手順とを前記コンピュータで実行させるプログラムにある。
【００１４】
この発明の第４の側面は、符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを、該符号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定部と、前記符号化対象のブロックの動きベクトルと、前記設定された予測動きベクトルとの差分を算出する差分演算部と、算出された差分動きベクトルの可変長符号化を行う可変長符号化部とを有する画像符号化装置にある。
【００１５】
この発明では、符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルが、符号化対象のブロックの予測動きベクトルに設定される。また、符号化対象のブロックの動きベクトルと、設定された予測動きベクトルとの差分を示す差分動きベクトルが生成される。互いに異なる階層に対して符号化効率が最も高くなるように最適化した可変長符号化を行う複数の可変長符号化部で差分動きベクトルの符号化が行われて、符号化対象のブロックの階層に対応する可変長符号化部の出力が選択されて符号化ストリームに含められる。また、最上位階層のブロックサイズであるマクロブロックごとに、このマクロブロックに含まれる符号化対象のブロックの階層を示す階層構造情報が生成されて符号化ストリームに含められる。さらに、隣接する符号化済みのマクロブロックの動きベクトルが予測動きベクトルの候補とされて、この候補から符号化効率が最も高くなる動きベクトルが最上位階層の予測動きベクトルに設定される。
【００１６】
この発明の第５の側面は、符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを、該符号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定工程と、前記符号化対象のブロックの動きベクトルと、前記動きベクトルとの差分を算出する差分演算工程と、前記算出された差分動きベクトルの符号化を行う可変長符号化工程とを設けた画像符号化方法にある。
【００１７】
この発明の第６の側面は、画像符号化をコンピュータで実行させるプログラムであって、符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを、該符号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定手順と、前記符号化対象のブロックの動きベクトルと、前記動きベクトルとの差分を算出する差分演算手順と、前記算出された差分動きベクトルの符号化を行う可変長符号化手順とを前記コンピュータで実行させるプログラムにある。
【００１８】
この発明の第７の側面は、符号化対象のブロックの画像に対して多重解像度解析と画像の再構築を行う多重解像度解析・再構築部と、前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析部と、前記参照画像の多重解像度解析結果を記憶するメモリと、前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築部と、前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う動き予測部とを有する画像符号化装置にある。
【００１９】
この発明では、符号化対象のブロックの画像に対して多重解像度解析と画像の再構築が行われる。また、動きベクトルの算出に用いる参照画像に対して多重解像度解析が行われて、参照画像の多重解像度解析結果が低解像度から高解像度の順に第１のメモリに記憶される。また、第１のメモリのメモリ容量を超える多重解像度解析結果は第２のメモリに記憶される。この第１のメモリに記憶されている多重解像度解析結果を用いて、画像の再構築が行われる。動きベクトルの検出では、符号化対象のブロックの画像に対する多重解像度解析と画像の再構築によって生成された低解像度符号化対象画像と、第１のメモリに記憶されている多重解像度解析結果を用いて再構築された低解像度参照画像とを用いて動きベクトルの粗検出が行われる。さらに、高解像度符号化対象画像と、粗検出した動きベクトルに基づいて設定した選択領域の高解像度選択参照画像を用いて動きベクトルの詳細検出が行われる。また、画像の再構築に必要とする多重解像度解析結果が第１のメモリに記憶されていないとき、第２のメモリから必要とする多重解像度解析結果を読み出して高解像度選択参照画像の生成が行われる。
【００２０】
この発明の第８の側面は、符号化対象のブロックの画像に対して多重解像度解析と再構築を行う多重解像度解析・再構築工程と、前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析工程と、前記多重解像度解析結果をメモリに記憶する記憶工程と、前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築工程と、前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う動き予測工程とを設けた画像符号化方法にある。
【００２１】
この発明の第９の側面は、画像符号化をコンピュータで実行させるプログラムであって、符号化対象のブロックの画像に対して多重解像度解析と再構築を行う多重解像度解析・再構築手順と、前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析手順と、前記多重解像度解析結果をメモリに記憶させる記憶手順と、前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築手順と、前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う動き予測手順とを前記コンピュータで実行させるプログラム。
【００２２】
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、光ディスクや磁気ディスク、半導体メモリなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【発明の効果】
【００２３】
この発明によれば、符号化されたストリームの復号化を行い、差分動きベクトルが生成される。さらに、復号化対象のブロックを含む復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルが予測動きベクトルに設定されて、生成された差分動きベクトルと設定された予測動きベクトルが加算されて、復号化対象のブロックの動きベクトルが算出される。また、符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルが、符号化対象のブロックの予測動きベクトルに設定されて、符号化対象のブロックの動きベクトルと設定された予測動きベクトルとの差分を示す差分動きベクトルの可変長符号化が行われる。このように、上位階層の動きベクトルを予測動きベクトルとして用いて予測精度を向上させることで、画像の符号化や復号化を効率よく行うことができる。
【００２４】
また、符号化対象のブロックの画像に対して多重解像度解析と画像の再構築が行われる。さらに、参照画像に対して多重解像度解析が行われて、参照画像の多重解像度解析結果がメモリに記憶される。このメモリに記憶されている多重解像度解析結果を用いて、画像の再構築が行われて、動きベクトルの検出では、符号化対象のブロックの画像に対する多重解像度解析と画像の再構築によって生成された低解像度符号化対象画像と、メモリに記憶されている多重解像度解析結果を用いて再構築された低解像度参照画像とを用いて動きベクトルの粗検出が行われる。また、高解像度符号化対象画像と、粗検出した動きベクトルに基づいて設定した選択領域の高解像度選択参照画像を用いて動きベクトルの詳細検出が行われる。このように低解像度の画像を用いて動きベクトルの粗検出を行い、高解像度符号化対象画像と粗検出結果を用いて設定した選択領域の高解像選択参照画像を用いて動きベクトルの詳細検出が行われるので、動きベクトルの検出のためにメモリから読み出すデータ量が少なく、効率よく動きベクトルを検出できることから画像の符号化を効率よく行うことができる
【図面の簡単な説明】
【００２５】
【図１】予測動きベクトルの従来の設定方法を説明するための図である。
【図２】画像符号化装置の構成を示した図である。
【図３】可逆符号化部における動きベクトルに関する構成を示す図である。
【図４】差分動きベクトルの長さと確率密度の関係を例示した図である。
【図５】画像符号化処理で用いる予測ブロックサイズを示した図である。
【図６】画像符号化処理動作を示すフローチャートである。
【図７】予測処理を示すフローチャートである。
【図８】イントラ予測処理を示すフローチャートである。
【図９】インター予測処理を示すフローチャートである。
【図１０】可逆符号化部で行われる動きベクトルに関する符号化処理を示すフローチャートである。
【図１１】動きベクトルに関する符号化処理を行ったときの動作を例示した図である。
【図１２】階層構造情報を説明するための図である。
【図１３】画像復号化装置の構成を示した図である。
【図１４】可逆復号化部における動きベクトルに関する構成を示す図である。
【図１５】画像復号化処理動作を示すフローチャートである。
【図１６】可逆復号化部で行われる動きベクトルに関する復号化処理を示すフローチャートである。
【図１７】予測処理を示すフローチャートである。
【図１８】画像符号化装置の他の構成を示した図である。
【図１９】１次元のサブバンド分解を説明するための図である。
【図２０】２次元空間のサブバンド分解を行ったときのサブバンド分解結果を例示した図である。
【図２１】動きベクトルの検出動作を示すフローチャートである。
【図２２】テレビジョン装置の概略構成を例示した図である。
【図２３】携帯電話機の概略構成を例示した図である。
【図２４】記録再生装置の概略構成を例示した図である。
【図２５】撮像装置の概略構成を例示した図である。
【発明を実施するための形態】
【００２６】
以下、発明を実施するための形態について説明する。なお、説明は以下の順序で行う。
１．画像符号化装置の構成
２．可逆符号化部の構成
３．画像符号化装置の動作
４．画像復号化装置の構成
５．可逆復号化部の構成
６．画像復号化装置の動作
７．画像符号化装置の他の構成
８．動きベクトルの検出動作
９．ソフトウェア処理の場合
１０．電子機器に適用した場合
【００２７】
＜１．画像符号化装置の構成＞
画像データの符号化では、符号化対象のブロックの動きベクトルと予測動きベクトルとの差分を取り、その差分動きベクトルを符号化してストリームに含めることで、符号量の削減が行われている。ここで、Ｈ．２６４／ＡＶＣ方式のように隣接ブロックの動きベクトルの中央値（メディアン）を予測動きベクトルとして用いる場合、必ずしも中央値が最適な予測動きベクトルとは限らない。
【００２８】
図１は、予測動きベクトルの従来の設定方法を説明するための図である。例えば、図１の（Ａ）に示すように、予測ブロックサイズ（動き補償ブロックサイズ）が小さいとき、隣接ブロックの動きベクトルＭＶ＿Ａ，ＭＶ＿Ｂ，ＭＶ＿Ｃは符号化対象のブロックと近接した領域の動きベクトルとなり予測精度が高い。すなわち、中央値ＭＶ＿mdと符号化対象のブロックの動きベクトルＭＶｏｂとの差が少ない。しかし、図１の（Ｂ）に示すように、予測ブロックサイズが大きいとき、隣接ブロックでは符号化対象のブロックから離れている領域も含まれることになる。このため、中央値ＭＶ＿mdと符号化対象のブロックの動きベクトルＭＶｏｂとの差が大きい場合が生じて、予測ブロックサイズが小さい場合に比べて、予測精度が低下するおそれがある。
【００２９】
また、大きなサイズのブロック（上位階層のブロック）について検出した動きベクトルと、この上位階層のブロック内に含まれるサイズの小さいブロック（下位階層のブロック）について検出した動きベクトルは、下位階層のブロックが上位階層のブロックに含まれているため、下位階層の動きベクトルは、上位階層の動きベクトルと近似している場合が多い。
【００３０】
そこで、本発明の画像符号化装置では、符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを予測動きベクトルとして用いることで、予測精度の向上をはかり、画像の符号化を効率よく行うことができるようにする。
【００３１】
図２は、画像符号化装置の構成を示している。画像符号化装置１０は、アナログ／ディジタル変換部（Ａ／Ｄ変換部）１１、画面並び替えバッファ１２、減算部１３、直交変換部１４、量子化部１５、可逆符号化部１６、蓄積バッファ１７、レート制御部１８を備えている。さらに、画像符号化装置１０は、逆量子化部２１、逆直交変換部２２、加算部２３、デブロッキングフィルタ２４、フレームメモリ２７、イントラ予測部３１、動き予測・補償部３２、予測画像・最適モード選択部３３を備えている。
【００３２】
Ａ／Ｄ変換部１１は、アナログの画像信号をディジタルの画像データに変換して画面並べ替えバッファ１２に出力する。
【００３３】
画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１から出力された画像データに対してフレームの並べ替えを行う。画面並べ替えバッファ１２は、符号化処理に係るＧＯＰ（Group of Pictures）構造に応じてフレームの並べ替えを行い、並べ替え後の画像データを減算部１３とイントラ予測部３１と動き予測・補償部３２に出力する。
【００３４】
減算部１３には、画面並べ替えバッファ１２から出力された画像データと、後述する予測画像・最適モード選択部３３で選択された予測画像データが供給される。減算部１３は、画面並べ替えバッファ１２から出力された画像データと予測画像・最適モード選択部３３から供給された予測画像データとの差分である予測誤差データを算出して、直交変換部１４に出力する。
【００３５】
直交変換部１４は、減算部１３から出力された予測誤差データに対して、離散コサイン変換（DCT；Discrete Cosine Transform）、カルーネン・レーベ変換等の直交変換処理を行う。直交変換部１４は、直交変換処理を行うことにより得られた変換係数データを量子化部１５に出力する。
【００３６】
量子化部１５には、直交変換部１４から出力された変換係数データと、後述するレート制御部１８からレート制御信号が供給されている。量子化部１５は変換係数データの量子化を行い、量子化データを可逆符号化部１６と逆量子化部２１に出力する。また、量子化部１５は、レート制御部１８からのレート制御信号に基づき量子化パラメータ（量子化スケール）を切り替えて、量子化データのビットレートを変化させる。
【００３７】
可逆符号化部１６には、量子化部１５から出力された量子化データと、後述するイントラ予測部３１と動き予測・補償部３２および予測画像・最適モード選択部３３から予測モード情報が供給される。なお、予測モード情報には、イントラ予測またはインター予測に応じて、予測ブロックサイズを示すマクロブロックタイプ、予測モード、参照ピクチャ情報等が含まれる。可逆符号化部１６は、量子化データに対して例えば可変長符号化または算術符号化等により符号化処理を行い、符号化ストリームを生成して蓄積バッファ１７に出力する。また、可逆符号化部１６は、予測モード情報を可逆符号化して、符号化ストリームの例えばヘッダ情報に付加する。さらに、可逆符号化部１６は、符号化対象の画像のブロックである最適モードの予測ブロックに対して、この予測ブロックを含む１つ上の階層のブロックについて検出した動きベクトルを予測動きベクトルとして設定して、予測動きベクトルと符号化対象のブロックの動きベクトルとの差分を示す差分動きベクトルの可逆符号化を行って、符号化ストリームに付加する。また、可逆符号化部１６は、後述するコスト関数値の算出においても、各予測ブロックに対して予測動きベクトルを設定して、予測ブロックの動きベクトルとの差分を示す差分動きベクトルの可逆符号化を行うことで、差分動きベクトルの符号化データを含めた発生符号量を算出できるようにする。
【００３８】
蓄積バッファ１７は、可逆符号化部１６からの符号化ストリームを蓄積する。また、蓄積バッファ１７は、蓄積した符号化ストリームを伝送路に応じた伝送速度で出力する。
【００３９】
レート制御部１８は、蓄積バッファ１７の空き容量の監視を行い、空き容量に応じてレート制御信号を生成して量子化部１５に出力する。レート制御部１８は、例えば蓄積バッファ１７から空き容量を示す情報を取得する。レート制御部１８は空き容量が少なくなっているとき、レート制御信号によって量子化データのビットレートを低下させる。また、レート制御部１８は蓄積バッファ１７の空き容量が十分大きいとき、レート制御信号によって量子化データのビットレートを高くする。
【００４０】
逆量子化部２１は、量子化部１５から供給された量子化データの逆量子化処理を行う。逆量子化部２１は、逆量子化処理を行うことで得られた変換係数データを逆直交変換部２２に出力する。
【００４１】
逆直交変換部２２は、逆量子化部２１から供給された変換係数データの逆直交変換処理を行うことで得られたデータを加算部２３に出力する。
【００４２】
加算部２３は、逆直交変換部２２から供給されたデータと予測画像・最適モード選択部３３から供給された予測画像データを加算して参照画像データを生成して、この参照画像データをデブロッキングフィルタ２４とイントラ予測部３１に出力する。
【００４３】
デブロッキングフィルタ２４は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタ処理を行う。デブロッキングフィルタ２４は、加算部２３から供給された参照画像データからブロック歪みを除去するフィルタ処理を行い、フィルタ処理後の参照画像データをフレームメモリ２７に出力する。
【００４４】
フレームメモリ２７は、デブロッキングフィルタ２４から供給されたフィルタ処理後の参照画像データとを保持する。
【００４５】
イントラ予測部３１は、画面並べ替えバッファ１２から出力された符号化対象画像の画像データと加算部２３から供給された参照画像データを用いて、候補となるすべてのイントラ予測モードのイントラ予測処理を行う。さらに、イントラ予測部３１は、各イントラ予測モードに対してコスト関数値を算出して、算出したコスト関数値が最小となるイントラ予測モード、すなわち符号化効率が最良となるイントラ予測モードを、最適イントラ予測モードとして選択する。イントラ予測部３１は、最適イントラ予測モードで生成された予測画像データと最適イントラ予測モードに関する予測モード情報、および最適イントラ予測モードでのコスト関数値を予測画像・最適モード選択部３３に出力する。また、イントラ予測部３１は、後述するようにコスト関数値の算出で用いる発生符号量を得るため、各イントラ予測モードのイントラ予測処理において、イントラ予測モードに関する予測モード情報を可逆符号化部１６に出力する。
【００４６】
動き予測・補償部３２は、マクロブロックに対応するすべての予測ブロックサイズ（動き補償ブロックサイズ）で動き予測・補償処理を行う。動き予測・補償部３２は、画面並べ替えバッファ１２から読み出されたマクロブロックの画像における各予測ブロックサイズの画像ごとに、フレームメモリ２７から読み出されたフィルタ処理後の参照画像データを用いて動きベクトルを検出する。さらに、動き予測・補償部３２は、検出した動きベクトルに基づいて参照画像に動き補償処理を施して予測画像の生成を行う。
【００４７】
また、動き予測・補償部３２は、予測動きベクトルの候補ごとにコスト関数値を算出して可逆符号化部１６に通知する。動き予測・補償部３２は、各予測ブロックサイズで算出したコスト関数値に基づき、コスト関数値が最小となる予測ブロックサイズ、すなわち符号化効率が最良となる予測ブロックサイズを、最適インター予測モードとして選択する。動き予測・補償部３２は、最適インター予測モードで生成された予測画像データと最適インター予測モードに関する予測モード情報、および最適インター予測モードでのコスト関数値を予測画像・最適モード選択部３３に出力する。また、動き予測・補償部３２は、コスト関数値の算出で用いる発生符号量を得るため、各予測ブロックサイズでのインター予測処理において、インター予測モードに関する予測モード情報を可逆符号化部１６に出力する。なお、動き予測・補償部３２は、インター予測モードとして、スキップドマクロブロックやダイレクトモードの予測も行う。
【００４８】
予測画像・最適モード選択部３３は、イントラ予測部３１から供給されたコスト関数値と動き予測・補償部３２から供給されたコスト関数値を、マクロブロック単位で比較して、コスト関数値が少ない方を、符号化効率が最良となる最適モードとして選択する。また、予測画像・最適モード選択部３３は、最適モードで生成した予測画像データを減算部１３と加算部２３に出力する。さらに、予測画像・最適モード選択部３３は、最適モードの予測モード情報を可逆符号化部１６に出力する。なお、予測画像・最適モード選択部３３は、スライス単位でイントラ予測またはインター予測を行う。
【００４９】
＜２．可逆符号化部の構成＞
図３は、可逆符号化部における動きベクトルに関する構成を示している。可逆符号化部１６は、予測動きベクトル設定部１６１、差分演算部１６３、可変長符号化部１６４-1〜１６４-n、選択部１６５を備えている。また、予測動きベクトル設定部１６１は、動きベクトル記憶部１６１ａと動きベクトル選択部１６１ｂを備えている。
【００５０】
動きベクトル記憶部１６１ａは、予測ブロックサイズが最大である最上位階層において、予測ブロックサイズが最大であるときの符号化対象のブロック（マクロブロック）に隣接した符号化済みの隣接ブロックの動きベクトルを最上位階層の予測動きベクトルの候補として記憶する。なお、動きベクトル記憶部１６１ａは、ダイレクトモードに対応するため、参照ピクチャにおける符号化対象と同一のブロックの動きベクトルも記憶してもよい。また、動きベクトル記憶部１６１ａは、動き予測・補償部３２から供給された各階層のブロックの動きベクトルを記憶する。
【００５１】
動きベクトル選択部１６１ｂは、予測画像・最適モード選択部３３から供給された最適モードの予測モード情報に基づき、符号化対象のブロックである最適モードの予測ブロックがいずれの階層であるか判別する。動きベクトル選択部１６１ｂは、符号化対象のブロックが最上位階層であるとき、動き予測・補償部３２から供給されたコスト関数値に基づき、予測動きベクトルの候補から符号化効率が最良となる予測動きベクトルを設定する。また、動きベクトル選択部１６１ｂは、符号化対象のブロックが最上位階層でないとき、判別した階層よりも１つサイズが上の階層であって、符号化対象のブロックを含むブロックについて検出されている動きベクトルを予測動きベクトルとして設定する。
【００５２】
差分演算部１６３は、符号化対象のブロックの動きベクトルと予測動きベクトル設定部１６１で設定された予測動きベクトルとの差分動きベクトルを算出する。
【００５３】
可変長符号化部１６４-1〜１６４-nは、差分演算部１６３で算出された差分動きベクトルの可変長符号化を行う。可変長符号化部１６４-1〜１６４-nは、互いに異なる階層に対して符号化効率が最も高くなるように最適化した可変長符号化を差分動きベクトルに対して行う。
【００５４】
ここで、動きベクトルは、図１を用いて上述のように、ブロックサイズが小さいときはブロックサイズが大きい場合に比べて動きベクトルのばらつきが小さくなると考えられる。このため、差分動きベクトルについても、差分動きベクトルの長さが短い発生確率は、ブロックサイズが大きいときよりも、ブロックサイズが小さい方が多くなる。すなわち、差分動きベクトルの長さと確率密度の関係は、例えば図４に示すようになる。
【００５５】
したがって、可変長符号化部１６４-1〜１６４-nは、上位階層のブロックサイズの可変長符号化に比べて、差分動きベクトルの長さが短い発生確率が多いため、差分動きベクトルの長さが短い場合に割り当てる符号量を少なくする。例えば、可変長符号化部１６４-1は、最上位階層に対して符号化効率が最も高くなるように最適化したＶＬＣテーブル例えば図４における破線の特性に対して符号化効率が最も高くなるように最適化したＶＬＣテーブルを用いて可変長符号化を行う。また、可変長符号化部１６４-nは最下位階層に対して符号化効率が最も高くなるように最適化したＶＬＣテーブル例えば図４における実線の特性に対して符号化効率が最も高くなるように最適化したＶＬＣテーブルを用いて可変長符号化を行う。このように、階層に応じて可変長符号化を行うことで、符号化効率を高くできる。
【００５６】
選択部１６５は、可変長符号化部１６４-1〜１６４-nから供給された符号化データから最適モードの予測ブロックサイズに応じた符号化データを選択して、符号化ストリームのヘッダ情報に付加する。
【００５７】
階層構造情報生成部１６６は、予測画像・最適モード選択部３３から供給された最適モードの予測ブロックサイズに基づき、最上位階層のブロックサイズであるマクロブロックごとに、このマクロブロックに含まれる符号化対象のブロックの階層を示す階層構造情報を生成する。階層構造情報生成部１６６は、生成した階層構造情報を符号化ストリームのヘッダ情報に付加する。
【００５８】
また、図示せずも、可逆符号化部１６は、画像復号化装置で予測動きベクトルを生成できるようにするため、最上位階層の予測動きベクトルとしていずれの候補が選択されたかを示す予測動きベクトル情報を符号化ストリームのヘッダ情報に付加する。なお、最上位階層については、予測動きベクトル情報と差分動きベクトルの符号化データに替えて、最上位階層のブロックの動きベクトルを符号化して符号化ストリームに含めるようにしてもよい。
【００５９】
＜３．画像符号化装置の動作＞
次に、画像符号化処理動作について説明する。図５は、画像符号化処理で用いる予測ブロックサイズを示している。Ｈ．２６４／ＡＶＣ方式では、１６×１６画素のマクロブロックに対して、図５の（Ｃ）（Ｄ）に示すように１６×１６画素〜４×４画素の予測ブロックサイズが規定されている。また、Ｈ．２６４／ＡＶＣ方式よりも拡張された大きさのマクロブロックを用いる場合、例えば３２×３２画素のマクロブロックを用いる場合、例えば図５の（Ｂ）に示す予測ブロックサイズが規定される。また、例えば６４×６４画素のマクロブロックを用いる場合、例えば図５の（Ａ）に示す予測ブロックサイズが規定される。
【００６０】
なお、図５において、「Ｓｋｉｐ／ｄｉｒｅｃｔ」は、動き予測・補償部３２において、スキップドマクロブロックやダイレクトモードを選択したときの予測ブロックサイズであることを示している。また、「ＭＥ」は動き補償ブロックサイズであることを示している。また、「Ｐ８×８」は、マクロブロックのサイズを小さくした下位の階層でさらに分割できることを示している。
【００６１】
画像符号化装置では、動きベクトルの符号化においてブロックサイズに応じた階層化を行う。なお、説明を容易とするため、階層化では、例えば３２×３２画素のブロックサイズを最上位階層（第１階層）として、このブロックを上下左右に２分割して得られる１６×１６画素のブロックをさらに１つ下の階層（第２階層）のブロックとする。さらに、１６×１６画素のブロックを上下左右に２分割して得られる８×８画素のブロックをさらに１つ下の階層（第３階層）のブロック、８×８画素のブロックを上下左右に２分割して得られる４×４画素のブロックを最下位階層（第４階層）のブロックとした場合について例示する。
【００６２】
図６は、画像符号化処理動作を示すフローチャートである。ステップＳＴ１１において、Ａ／Ｄ変換部１１は入力された画像信号をＡ／Ｄ変換する。
【００６３】
ステップＳＴ１２において画面並べ替えバッファ１２は、画像並べ替えを行う。画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１より供給された画像データを記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
【００６４】
ステップＳＴ１３において減算部１３は、予測誤差データの生成を行う。減算部１３は、ステップＳＴ１２で並び替えられた画像の画像データと予測画像・最適モード選択部３３で選択された予測画像データとの差分を算出して予測誤差データを生成する。予測誤差データは、元の画像データに比べてデータ量が小さい。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
【００６５】
ステップＳＴ１４において直交変換部１４は、直交変換処理を行う。直交変換部１４は、減算部１３から供給された予測誤差データを直交変換する。具体的には、予測誤差データに対して離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数データを出力する。
【００６６】
ステップＳＴ１５において量子化部１５は、量子化処理を行う。量子化部１５は、変換係数データを量子化する。量子化に際しては、後述するステップＳＴ２５の処理で説明されるように、レート制御が行われる。
【００６７】
ステップＳＴ１６において逆量子化部２１は、逆量子化処理を行う。逆量子化部２１は、量子化部１５により量子化された変換係数データを量子化部１５の特性に対応する特性で逆量子化する。
【００６８】
ステップＳＴ１７において逆直交変換部２２は、逆直交変換処理を行う。逆直交変換部２２は、逆量子化部２１により逆量子化された変換係数データを直交変換部１４の特性に対応する特性で逆直交変換する。
【００６９】
ステップＳＴ１８において加算部２３は、参照画像データの生成を行う。加算部２３は、予測画像・最適モード選択部３３から供給された予測画像データと、この予測画像と対応する位置の逆直交変換後のデータを加算して、参照画像データを生成する。
【００７０】
ステップＳＴ１９においてデブロッキングフィルタ２４は、フィルタ処理を行う。デブロッキングフィルタ２４は、加算部２３より出力された参照画像データをフィルタリングしてブロック歪みを除去する。
【００７１】
ステップＳＴ２０においてフレームメモリ２７は、参照画像データを記憶する。フレームメモリ２７は、フィルタ処理後の参照画像データを記憶する。
【００７２】
ステップＳＴ２１においてイントラ予測部３１と動き予測・補償部３２は、それぞれ予測処理を行う。すなわち、イントラ予測部３１は、イントラ予測モードのイントラ予測処理を行い、動き予測・補償部３２は、インター予測モードの動き予測・補償処理を行う。予測処理の詳細は、図７を参照して後述するが、この処理により、候補となるすべての予測モードでの予測処理がそれぞれ行われ、候補となるすべての予測モードでのコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードが選択され、選択された予測モードで生成された予測画像とそのコスト関数および予測モード情報が予測画像・最適モード選択部３３に供給される。
【００７３】
ステップＳＴ２２において予測画像・最適モード選択部３３は、予測画像データの選択を行う。予測画像・最適モード選択部３３は、イントラ予測部３１および動き予測・補償部３２より出力された各コスト関数値に基づいて、符号化効率が最良となる最適モードに決定する。さらに、予測画像・最適モード選択部３３は、決定した最適モードの予測画像データを選択して、減算部１３と加算部２３に供給する。この予測画像が、上述したように、ステップＳＴ１３，ＳＴ１８の演算に利用される。なお、選択した予測画像データに対応する予測モード情報は、可逆符号化部１６に出力される。
【００７４】
ステップＳＴ２３において可逆符号化部１６は、可逆符号化処理を行う。可逆符号化部１６は、量子化部１５より出力された量子化データを可逆符号化する。すなわち、量子化データに対して可変長符号化や算術符号化等の可逆符号化が行われて、データ圧縮される。このとき、上述したステップＳＴ２２において可逆符号化部１６に入力された予測モード情報（例えばマクロブロックタイプや予測モード、参照ピクチャ情報等を含む）や差分動きベクトルなども可逆符号化される。さらに、量子化データを可逆符号化して生成された符号化ストリームのヘッダ情報に、予測モード情報等の可逆符号化データが付加される。
【００７５】
ステップＳＴ２４において蓄積バッファ１７は、蓄積処理を行う。蓄積バッファ１７は、可逆符号化部１６から出力される符号化ストリームを蓄積する。この蓄積バッファ１７に蓄積された符号化ストリームは、適宜読み出されて伝送路を介して復号側に伝送される。
【００７６】
ステップＳＴ２５においてレート制御部１８は、レート制御を行う。レート制御部１８は、蓄積バッファ１７で符号化ストリームを蓄積するとき、オーバーフローまたはアンダーフローが蓄積バッファ１７で発生しないように、量子化部１５の量子化動作のレートを制御する。
【００７７】
次に、図７のフローチャートを参照して、図６のステップＳＴ２１における予測処理を説明する。
【００７８】
ステップＳＴ３１において、イントラ予測部３１はイントラ予測処理を行う。イントラ予測部３１は処理対象のブロックの画像を、候補となるすべてのイントラ予測モードでイントラ予測する。なお、イントラ予測では、加算部２３から供給された参照画像データが用いられる。イントラ予測処理の詳細は後述するが、この処理により、候補となるすべてのイントラ予測モードでイントラ予測が行われ、候補となるすべてのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、すべてのイントラ予測モードの中から、符号化効率が最良となる１つのイントラ予測モードが選択される。
【００７９】
ステップＳＴ３２において、動き予測・補償部３２はインター予測処理を行う。動き予測・補償部３２は、フレームメモリ２７に記憶されているフィルタ処理後の参照画像データを用いて、候補となるすべてのインター予測モード（すべての予測ブロックサイズ）のインター予測処理を行う。インター予測処理の詳細は後述するが、この処理により、候補となるすべてのインター予測モードで予測処理が行われ、候補となるすべてのインター予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、すべてのインター予測モードの中から、符号化効率が最良となる１つのインター予測モードが選択される。
【００８０】
次に、図７のステップＳＴ３１におけるイントラ予測処理について図８のフローチャートを参照して説明する。
【００８１】
ステップＳＴ４１でイントラ予測部３１は、各予測モードのイントラ予測を行う。イントラ予測部３１は、加算部２３から供給された参照画像データを用いて、イントラ予測モードごとに予測画像データを生成する。
【００８２】
ステップＳＴ４２でイントラ予測部３１は、各予測モードに対するコスト関数値を算出する。コスト関数値としては、Ｈ．２６４／ＡＶＣ方式における参照ソフトウェアであるＪＭ(Joint Model)で定められているように、High Complexity モードか、Low Complexity モードのいずれの手法に基づいて行う。
【００８３】
すなわち、High Complexity モードにおいては、ステップＳＴ４２の処理として、候補となるすべての予測モードに対して、仮に可逆符号化処理までを行い、次の式（１）で表されるコスト関数値を各予測モードに対して算出する。
Cost(Mode∈Ω)=Ｄ+λ・Ｒ            ・・・（１）
Ωは、当該ブロック乃至マクロブロックを符号化するための候補となる予測モードの全体集合を示している。Ｄは、予測モードで符号化を行った場合の参照画像と入力画像との差分エネルギー（歪み）を示している。Ｒは、直交変換係数や予測モード情報等を含んだ発生符号量、λは、量子化パラメータＱＰの関数として与えられるラグランジュ乗数である。
【００８４】
つまり、High Complexity Modeでの符号化を行うには、上記パラメータＤおよびＲを算出するため、候補となるすべての予測モードにより、一度、仮エンコード処理を行う必要があり、より高い演算量を要する。
【００８５】
一方、Low Complexity モードにおいては、ステップＳＴ４２の処理として、候補となるすべての予測モードに対して、予測画像の生成、および予測モード情報などのヘッダビットまでを算出し、次の式（２）で表されるコスト関数値を各予測モードに対して算出する。
Cost(Mode∈Ω)=Ｄ+QPtoQuant(QP)・Header＿Bit      ・・・（２）
Ωは、当該ブロック乃至マクロブロックを符号化するための候補となる予測モードの全体集合を示している。Ｄは、予測モードで符号化を行った場合の参照画像と入力画像との差分エネルギー（歪み）を示している。Header＿Bitは、予測モードに対するヘッダビット、QPtoQuantは、量子化パラメータＱＰの関数として与えられる関数である。
【００８６】
すなわち、Low Complexity Modeにおいては、それぞれの予測モードに関して、予測処理を行う必要があるが、復号化画像までは必要ないため、High Complexity Modeより低い演算量での実現が可能である。
【００８７】
ステップＳＴ４３でイントラ予測部３１は、最適イントラ予測モードを決定する。イントラ予測部３１は、ステップＳＴ４２において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である１つのイントラ予測モードを選択して最適イントラ予測モードに決定する。
【００８８】
次に、図９のフローチャートを参照して、図７のステップＳＴ３２のインター予測処理について説明する。
【００８９】
ステップＳＴ５１で動き予測・補償部３２は、各予測モードに対して動きベクトルと参照画像をそれぞれ決定する。すなわち、動き予測・補償部３２は、各予測モードの処理対象のブロックについて、動きベクトルと参照画像をそれぞれ決定する。
【００９０】
ステップＳＴ５２で動き予測・補償部３２は、各予測モードに対して動き補償を行う。動き予測・補償部３２は、各予測モード（各予測ブロックサイズ）について、ステップＳＴ５１で決定された動きベクトルに基づいて、参照画像に対する動き補償を行い、各予測モードについて予測画像データを生成する。
【００９１】
ステップＳＴ５３で動き予測・補償部３２は、各インター予測モードに対して、コスト関数値の算出を行う。動き予測・補償部３２は、上述した式（１）または式（２）を用いてコスト関数値の算出を行う。コスト関数値の算出では、選択部１６５で選択された符号化情報等を含めた発生符号量を用いる。なお、インター予測モードに対するコスト関数値の算出には、Ｈ．２６４／ＡＶＣ方式において定められているSkip ModeおよびDirect Modeのコスト関数値の評価も含まれる。
【００９２】
ステップＳＴ５４で動き予測・補償部３２は、最適インター予測モードを決定する。動き予測・補償部３２は、ステップＳＴ５３において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である１つの予測モードを選択して最適インター予測モードに決定する。
【００９３】
次に、可逆符号化部１６で行われる動きベクトルに関する符号化処理について、図１０のフローチャートを用いて説明する。なお、図１０では、図５において、最も大きいブロックサイズ例えば３２×３２画素のサイズを第１階層（最上位階層）とする。また、１６×１６画素のサイズを第２階層、８×８画素のサイズを第３階層、最も小さいブロックサイズ例えば４×４画素のサイズを第４階層（最下位階層）とする。
【００９４】
ステップＳＴ６１で可逆符号化部１６は、最上位階層のブロックについて候補から予測動きベクトルを設定する。可逆符号化部１６は、予測動きベクトルの候補、すなわち隣接ブロックの動きベクトルＭＶ＿Ａ，ＭＶ＿Ｂ，ＭＶ＿Ｃ，ＭＶ＿co，ＭＶ＿0からコスト関数値が最小となる動きベクトルを、第１階層の予測動きベクトルに設定してステップＳＴ６２に進む。
【００９５】
ステップＳＴ６２で可逆符号化部１６は、最上位階層のブロックについて差分動きベクトルを算出してステップＳＴ６３に進む。
【００９６】
ステップＳＴ６３で可逆符号化部１６は、予測ブロックが第１階層であるか判別する。可逆符号化部１６は、最適モードの予測ブロックが第１階層であるときステップＳＴ７０に進み、第１階層よりも下層であるときステップＳＴ６４に進む。
【００９７】
ステップＳＴ６４で可逆符号化部１６は、予測ブロックが第２階層であるか判別する。可逆符号化部１６は、予測ブロックが第２階層であるときステップＳＴ６５に進み、第２階層よりも下層であるときステップＳＴ６６に進む。
【００９８】
ステップＳＴ６５で可逆符号化部１６は、第１階層の対応するブロックの動きベクトルを予測動きベクトルに設定してステップＳＴ６９に進む。
【００９９】
ステップＳＴ６６で可逆符号化部１６は、予測ブロックが第３階層であるか判別する。可逆符号化部１６は、予測ブロックが第３階層であるときステップＳＴ６７に進み、第３階層よりも下層すなわち最下位階層であるときステップＳＴ６８に進む。
【０１００】
ステップＳＴ６７で可逆符号化部１６は、第２階層の対応するブロックの動きベクトルを予測動きベクトルに設定してステップＳＴ６９に進む。
【０１０１】
ステップＳＴ６７で可逆符号化部１６は、第３階層の対応するブロックの動きベクトルを予測動きベクトルに設定してステップＳＴ６９に進む。
【０１０２】
ステップＳＴ６９で可逆符号化部１６は、差分動きベクトルを算出する。可逆符号化部１６は、各ブロックの動きベクトルと予測動きベクトルとの差分を示す差分動きベクトルを算出してステップＳＴ７０に進む。
【０１０３】
ステップＳＴ７０で可逆符号化部１６は、可逆符号化処理を行う。可逆符号化部１６は、ＶＬＣテーブルや算術符号化を用いて、差分動きベクトルの可逆符号化処理を行う。この可逆符号化処理では、例えば階層ごとに設けられているＶＬＣテーブルを用いて符号化処理を行う。また、可逆符号化部１６は、後述する階層構造情報を生成する。
【０１０４】
図１１は、図１０の符号化処理を行ったときの動作を例示している。例えば、図１１の（Ａ）に示すように予測ブロックが３２×３２画素のサイズである第１階層のブロック（マクロブロック）である場合、隣接ブロックの動きベクトルから、コスト関数値が最小となる動きベクトルが予測動きベクトルとされる。
【０１０５】
第１階層のブロックＢＫ0を上下左右に２分割した図１１の（Ｂ）に示す第２階層では、第１階層のブロックＢＫ0で検出された動きベクトルＭＶ0を予測動きベクトルとする。したがって、第２階層のブロックＢＫ00の差分動きベクトルｄＭＶ00は、「ＭＶ00−ＭＶ0＝ｄＭＶ00」となる。同様に、第２階層のブロックＢＫ01，ＢＫ02，ＢＫ03の差分動きベクトルｄＭＶ01，ｄＭＶ02，ｄＭＶ03は、「ＭＶ01−ＭＶ0＝ｄＭＶ01」「ＭＶ02−ＭＶ0＝ｄＭＶ02」「ＭＶ03−ＭＶ0＝ｄＭＶ03」となる。
【０１０６】
第２階層のブロックを上下左右に２分割した図１１の（Ｃ）に示す第３階層では、第２階層のブロックで検出された動きベクトルを予測動きベクトルとする。例えば、第２階層のブロックＢＫ02を上下左右に２分割した第３階層のブロックでは、ブロックＢＫ02について検出された動きベクトルＭＶ02を予測動きベクトルとする。したがって、第３階層のブロックＢＫ020の差分動きベクトルｄＭＶ020は、「ＭＶ020−ＭＶ02＝ｄＭＶ020」となる。同様に、第３階層のブロックＢＫ021，ＢＫ022，ＢＫ023の差分動きベクトルｄＭＶ021，ｄＭＶ022，ｄＭＶ023は、「ＭＶ021−ＭＶ02＝ｄＭＶ021」「ＭＶ022−ＭＶ02＝ｄＭＶ022」「ＭＶ023−ＭＶ02＝ｄＭＶ023」となる。
【０１０７】
第３階層を上下左右に２分割した図１１の（Ｄ）（Ｅ）に示す第４階層では、第３階層のブロックで検出された動きベクトルを予測動きベクトルとする。例えば、第３階層のブロックＢＫ021を上下左右に２分割した第４階層のブロックでは、ブロックＢＫ021について検出された動きベクトルＭＶ021を予測動きベクトルとする。したがって、第３階層のブロックＢＫ0210の差分動きベクトルｄＭＶ0210は、「ＭＶ0210−ＭＶ021＝ｄＭＶ0210」となる。同様に、第４階層のブロックＢＫ0211，ＢＫ0212，ＢＫ0213の差分動きベクトルｄＭＶ0211，ｄＭＶ0212，ｄＭＶ0213は、「ＭＶ0211−ＭＶ021＝ｄＭＶ0211」「ＭＶ0212−ＭＶ021＝ｄＭＶ0212」「ＭＶ0213−ＭＶ021＝ｄＭＶ0213」となる。
【０１０８】
図１２は、階層構造情報を説明するための図である。階層構造情報は、当該ブロックを分割した下位階層のブロックが存在するときは「１」、下位階層のブロックが存在しないときは「０」として情報の生成を行う。
【０１０９】
例えば図１１，１２に示すようにブロックの階層化が行われている場合、第１階層であるマクロブロックに対して下位階層のブロックが生じていることから第１階層の構造を示す情報は「１」となる。第２階層では、左下のブロックに対して下位階層のブロックが生じている。したがって、ブロック順序を左上，右上，左下，右下の順序とすると、第２階層の構造を示す情報は「００１０」となる。第３階層では、右上のブロックに対して下位階層のブロックが生じている。したがって、ブロック順序を左上，右上，左下，右下の順序とすると、第３階層の構造を示す情報は「０１００」となる。さらに、第４階層では、下位階層のブロックが生じていないことから第４階層の構造を示す情報は「００００」となる。このように各階層で得られた情報を最上位階層から最下位階層まで順に並べることで、図１２に示す階層構造を示す階層構造情報「１００１００１００００００」を生成できる。
【０１１０】
可逆符号化部１６は、階層ごとに算出された差分動きベクトルの可逆符号化を行い、得られた符号化データを階層構造情報に対応するブロック順序として、階層構造情報や最上位階層における予測動きベクトル選択情報と共にストリーム情報に含める。また、可逆符号化部１６では、階層ごとに最適化された例えばＶＬＣテーブルを用いて可逆符号化を行う。
【０１１１】
このように、本願発明の画像符号化装置および方法によれば、ブロックサイズの大きい１つ上の上位階層のブロックで検出された動きベクトルが予測動きベクトルに設定される。したがって、上位階層を分割した下位階層のブロックでは、差分動きベクトルの小さいブロックが多くなることから、符号化効率が向上されて、画像の符号化を効率よく行うことができる。また、動きベクトルの伝送に要する符号量の削減に伴い、量子化データのビットレートを高めることが可能となるので画質を改善できる。
【０１１２】
＜４．画像復号化装置の構成＞
次に、符号化ストリームの復号化を行い、再生画像データを生成する場合について説明する。画像符号化装置１０で生成された符号化ストリームは、所定の伝送路や記録媒体等を介して画像復号化装置に供給されて復号される。
【０１１３】
図１３は、画像復号化装置の構成を示している。画像復号化装置５０は、蓄積バッファ５１、可逆復号化部５２、逆量子化部５３、逆直交変換部５４、加算部５５、デブロッキングフィルタ５６、画面並べ替えバッファ５７、ディジタル／アナログ変換部（Ｄ／Ａ変換部）５８を備えている。さらに、画像復号化装置５０は、フレームメモリ６１、イントラ予測部６２、動き補償部６３、セレクタ６４を備えている。
【０１１４】
蓄積バッファ５１は、伝送されてきた符号化ストリームを蓄積する。可逆復号化部５２は、蓄積バッファ５１より供給された符号化ストリームを、図２の可逆符号化部１６の符号化方式に対応する方式で復号化する。
【０１１５】
可逆復号化部５２は、符号化ストリームのヘッダ情報を復号して得られた予測モード情報をイントラ予測部６２や動き補償部６３、デブロッキングフィルタ５６に出力する。また、可逆復号化部５２は、復号化対象のブロックと復号化済みの隣接ブロックの動きベクトルを用いて予測動きベクトルの候補を設定する。可逆復号化部５２は、符号化ストリームを可逆復号化して得られた予測動きベクトル選択情報に基づき、予測動きベクトルの候補から予測動きベクトルを選択して、選択した動きベクトルを最上位階層の予測動きベクトルとする。また、可逆復号化部５２は、符号化ストリームを可逆復号化して得られた差分動きベクトルに予測動きベクトルを加算して復号化対象のブロックの動きベクトルを算出して、動き補償部６３に出力する。また、可逆復号化部５２は、最上位階層よりもサイズの小さい階層では、１つ上の階層の動きベクトルを予測動きベクトルとして用いる。
【０１１６】
逆量子化部５３は、可逆復号化部５２で復号された量子化データを、図２の量子化部１５の量子化方式に対応する方式で逆量子化する。逆直交変換部５４は、図２の直交変換部１４の直交変換方式に対応する方式で逆量子化部５３の出力を逆直交変換して加算部５５に出力する。
【０１１７】
加算部５５は、逆直交変換後のデータとセレクタ６４から供給される予測画像データを加算して復号画像データを生成してデブロッキングフィルタ５６とイントラ予測部６２に出力する。
【０１１８】
デブロッキングフィルタ５６は、加算部５５から供給された復号画像データに対してフィルタ処理を行い、ブロック歪みを除去してからフレームメモリ６１に供給し蓄積させるとともに、画面並べ替えバッファ５７に出力する。
【０１１９】
画面並べ替えバッファ５７は、画像の並べ替えを行う。すなわち、図２の画面並べ替えバッファ１２により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられて、Ｄ／Ａ変換部５８に出力される。
【０１２０】
Ｄ／Ａ変換部５８は、画面並べ替えバッファ５７から供給された画像データをＤ／Ａ変換し、図示せぬディスプレイに出力することで画像を表示させる。
【０１２１】
フレームメモリ６１は、デブロッキングフィルタ２４から供給されたフィルタ処理後の復号画像データを保持する。
【０１２２】
イントラ予測部６２は、可逆復号化部５２から供給された予測モード情報に基づいて予測画像の生成を行い、生成した予測画像データをセレクタ６４に出力する。
【０１２３】
動き補償部６３は、可逆復号化部５２から供給された予測モード情報や動きベクトルに基づいて動き補償を行い、予測画像データを生成してセレクタ６４に出力する。すなわち、動き補償部６３は、可逆復号化部５２から供給された動きベクトルおよび参照フレーム情報に基づいて、参照フレーム情報で示された参照画像に対して、動きベクトルに基づき動き補償を行い、予測ブロックサイズの予測画像データを生成する。
【０１２４】
セレクタ６４は、イントラ予測部６２で生成された予測画像データを加算部５５に供給する。また、セレクタ６４は、動き補償部６３で生成された予測画像データを加算部５５に供給する。
【０１２５】
＜５．可逆復号化部の構成＞
図１４は、可逆復号化部における動きベクトルに関する構成を示している。可逆復号化部５２は、可変長復号化部５２１-1〜５２１-n、選択部５２２、予測動きベクトル設定部５２３、加算部５２５を備えている。また、予測動きベクトル設定部５２３は、動きベクトル記憶部５２３ａと動きベクトル選択部５２３ｂを備えている。
【０１２６】
可変長復号化部５２１-1は、可変長符号化部１６４-1で行われた符号化に対応する可変長復号化を行う。同様に、可変長復号化部５２１-2〜５２１-nは、可変長符号化部１６４-2〜１６４-nで行われた符号化に対応する可変長復号化を行う。可変長復号化部５２１-1〜５２１-nは、ＶＬＣテーブルまたは算術符号を用いて符号化ストリームの可逆可変長復号化を行い、差分動きベクトルを生成する。
【０１２７】
選択部５２２は、階層構造情報に基づき、階層に対応する復号化部から出力された差分動きベクトルを選択して加算部５２５に出力する。
【０１２８】
動きベクトル記憶部５２３ａは、予測ブロックサイズが最大である最上位階層において、予測ブロックサイズが最大であるときの復号化対象のブロックに隣接した復号化済みの隣接ブロックの動きベクトルを最上位階層の予測動きベクトルの候補として記憶する。なお、動きベクトル記憶部５２３ａは、ダイレクトモードに対応するため、参照ピクチャにおける復号化対象と同一のブロックの動きベクトルも記憶してもよい。また、動きベクトル記憶部５２３ａは、復号化対象のブロックを含む上位階層の動きベクトルを記憶する。
【０１２９】
動きベクトル選択部５２３ｂは、階層構造情報に基づき階層に応じた予測動きベクトルを動きベクトル記憶部５２３ａから読み出して加算部５２５に出力する。また、予測動きベクトル情報に基づき、予測動きベクトルの候補から動きベクトルを選択して、最上位階層のブロックに対する予測動きベクトルとして加算部５２５に出力する。
【０１３０】
加算部５２５は、選択部５２２で選択された差分動きベクトルに、予測動きベクトル設定部５２３から出力された予測動きベクトルを加算することで、復号化対象のブロックの動きベクトルを算出して動き補償部６３に出力する。また算出した動きベクトルを動きベクトル記憶部５２３ａに記憶して、下位階層の予測動きベクトルとして用いることができるようにする。なお、符号化ストリームに最上位階層のブロックの動きベクトルを示す符号化データが含まれている場合には、可変長復号化によって得られた動きベクトルを動きベクトル記憶部５２３ａに記憶して、下位階層の予測動きベクトルとして用いることができるようにする。
【０１３１】
＜６．画像復号化装置の動作＞
次に、図１５のフローチャートを参照して、画像復号化装置５０で行われる画像復号処理動作について説明する。
【０１３２】
ステップＳＴ８１で蓄積バッファ５１は、伝送されてきた符号化ストリームを蓄積する。ステップＳＴ８２で可逆復号化部５２は、可逆復号化処理を行う。可逆復号化部５２は、蓄積バッファ５１から供給される符号化ストリームを復号化する。すなわち、図２の可逆符号化部１６により符号化された各ピクチャの量子化データが得られる。また、可逆復号化部５２、符号化ストリームのヘッダ情報に含まれている予測モード情報の可逆復号化を行い、得られた予測モード情報をデブロッキングフィルタ５６やセレクタ６４に供給する。さらに、可逆復号化部５２は、予測モード情報がイントラ予測モードに関する情報である場合、予測モード情報をイントラ予測部６２に出力する。また、可逆復号化部５２は、予測モード情報がインター予測モードに関する情報である場合、予測モード情報を動き補償部６３に出力する。また、可逆復号化部５２は、復号化対象のブロックの動きベクトルを動き補償部６３に出力する。
【０１３３】
ステップＳＴ８３において逆量子化部５３は、逆量子化処理を行う。逆量子化部５３は、可逆復号化部５２により復号された量子化データを、図２の量子化部１５の特性に対応する特性で逆量子化する。
【０１３４】
ステップＳＴ８４において逆直交変換部５４は、逆直交変換処理を行う。逆直交変換部５４は、逆量子化部５３により逆量子化された変換係数データを、図２の直交変換部１４の特性に対応する特性で逆直交変換する。
【０１３５】
ステップＳＴ８５において加算部５５は、復号画像データの生成を行う。加算部５５は、逆直交変換処理を行うことにより得られたデータと、後述するステップＳＴ８９で選択された予測画像データを加算して復号画像データを生成する。これにより元の画像が復号される。
【０１３６】
ステップＳＴ８６においてデブロッキングフィルタ５６は、フィルタ処理を行う。デブロッキングフィルタ５６は、加算部５５より出力された復号画像データのフィルタ処理を行い、復号画像に含まれているブロック歪みを除去する。
【０１３７】
ステップＳＴ８７においてフレームメモリ６１は、復号画像データの記憶処理を行う。
【０１３８】
ステップＳＴ８８においてイントラ予測部６２と動き補償部６３は、予測処理を行う。イントラ予測部６２と動き補償部６３は、可逆復号化部５２から供給される予測モード情報に対応してそれぞれ予測処理を行う。
【０１３９】
すなわち、可逆復号化部５２からイントラ予測の予測モード情報が供給された場合、イントラ予測部６２は、予測モード情報に基づいてイントラ予測処理を行い、予測画像データを生成する。また、可逆復号化部５２からインター予測の予測モード情報が供給された場合、動き補償部６３は、予測モード情報に基づき動き補償を行い、予測画像データを生成する。
【０１４０】
ステップＳＴ８９において、セレクタ６４は予測画像データの選択を行う。すなわち、セレクタ６４は、イントラ予測部６２から供給された予測画像と動き補償部６３で生成された予測画像データを選択して加算部５５に供給して、上述したように、ステップＳＴ８５において逆直交変換部５４の出力と加算させる。
【０１４１】
ステップＳＴ９０において画面並べ替えバッファ５７は、画像並べ替えを行う。すなわち画面並べ替えバッファ５７は、図２の画像符号化装置１０の画面並べ替えバッファ１２により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
【０１４２】
ステップＳＴ９１において、Ｄ／Ａ変換部５８は、画面並べ替えバッファ５７からの画像データをＤ／Ａ変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
【０１４３】
次に、可逆復号化部５２で行われる動きベクトルに関する復号化処理について、図１６のフローチャートを用いて説明する。ステップＳＴ１０１で可逆復号化部５２は、階層構造情報を取得する。可逆復号化部５２は、蓄積バッファ５１から階層構造情報を取得して、第１階層のブロックサイズのブロックがどのような階層のブロックで構成されているか判別する。
【０１４４】
ステップＳＴ１０２で可逆復号化部５２は、可逆符号化部１６に対応して構成されており、画像符号化装置と対応する複数のＶＬＣテーブル等を用いて可逆復号化処理を行い、差分動きベクトルを生成する。
【０１４５】
ステップＳＴ１０３で可逆復号化部５２は、差分動きベクトルの選択を行う。可逆復号化部５２は、複数のＶＬＣテーブル等を用いて生成された差分動きベクトルから、復号対象のブロックの階層に対応した差分動きベクトルを選択する。
【０１４６】
ステップＳＴ１０４で可逆復号化部５２は、最上位階層の動きベクトルを算出する。可逆復号化部５２は、最上位階層に対する予測動きベクトルの候補から、符号化ストリームに含まれている予測動きベクトル選択情報に基づき予測動きベクトルを設定する。さらに、可逆復号化部５２は、設定した予測動きベクトルと最上位階層の差分動きベクトルを加算して、最上位階層のブロックの動きベクトルを算出してステップＳＴ１０５に進む。
【０１４７】
ステップＳＴ１０５で可逆復号化部５２は、復号対象のブロックが第１階層のブロックであるか否か判別する。可逆復号化部５２は、復号対象のブロックが第１階層のブロックであるとき符号化対象のブロックについての動きベクトルの復号化処理を終了する。また、可逆復号化部５２は、復号対象のブロックが第１階層のブロックでないときステップＳＴ１０６に進む。可逆復号化部５２は、階層構造情報に基づき復号対象のブロックがいずれの階層のブロックであるか判別する。可逆復号化部５２は、第１階層の構造を示す情報が「０」で第１階層の分割が行われていないことを示しているとき、符号化対象のブロックについての動きベクトルの復号化処理を終了する。可逆復号化部５２は、第１階層の構造を示す情報が「１」で第１階層の分割が行われていることを示しているとき、ステップＳＴ１０６に進む。
【０１４８】
ステップＳＴ１０６で可逆復号化部５２は、復号対象のブロックが第２階層のブロックであるか否か判別する。可逆復号化部５２は、復号対象のブロックが第２階層のブロックであるときステップＳＴ１０７に進み、第２階層のブロックでないときステップＳＴ１０８に進む。可逆復号化部５２は、第２階層の構造を示す情報が「０」で第２階層の分割が行われていないことを示しているときはステップＳＴ１０７に進む。また、可逆復号化部５２は、第２階層の構造を示す情報が「１」で第２階層の分割が行われていることを示しているときはステップＳＴ１０８に進む。
【０１４９】
ステップＳＴ１０７で可逆復号化部５２は、第１階層の対応するブロックの動きベクトルを予測動きベクトルに設定してステップＳＴ１１１に進む。
【０１５０】
ステップＳＴ１０８で可逆復号化部５２は、復号対象のブロックが第３階層のブロックであるか否か判別する。可逆復号化部５２は、復号対象のブロックが第３階層のブロックであるときステップＳＴ１０９に進み、第２階層のブロックでないときステップＳＴ１１０に進む。可逆復号化部５２は、第３階層の構造を示す情報が「０」で第３階層の分割が行われていないことを示しているときはステップＳＴ１０９に進む。また、可逆復号化部５２は、第３階層の構造を示す情報が「１」で第３階層の分割が行われていることを示しているときはステップＳＴ１１０に進む。
【０１５１】
ステップＳＴ１０９で可逆復号化部５２は、第２階層の対応するブロックの動きベクトルを予測動きベクトルに設定してステップＳＴ１１１に進む。
【０１５２】
ステップＳＴ１１０で可逆復号化部５２は、第３階層の対応するブロックの動きベクトルを予測動きベクトルに設定してステップＳＴ１１１に進む。
【０１５３】
ステップＳＴ１１１で可逆復号化部５２は、差分動きベクトルと予測動きベクトルを加算して、復号化対象のブロックの動きベクトルを算出する。
【０１５４】
次に、図１７のフローチャートを参照して、図１５のステップＳＴ８８の予測処理について説明する。
【０１５５】
ステップＳＴ１２１で可逆復号化部５２は、対象ブロックがイントラ符号化されているか否かを判定する。可逆復号化部５２は、可逆復号化を行うことにより得られた予測モード情報がイントラ予測モード情報であるとき、予測モード情報をイントラ予測部６２に供給してステップＳＴ１２２に進む。また、可逆復号化部５２は、予測モード情報がイントラ予測モード情報でないとき、予測モード情報を動き補償部６３に供給してステップＳＴ１２３に進む。
【０１５６】
ステップＳＴ１２２でイントラ予測部６２は、イントラ予測処理を行う。イントラ予測部６２は、加算部５５から供給された復号画像データと予測モード情報を用いてイントラ予測を行い、予測画像データを生成する。
【０１５７】
ステップＳＴ１２３で動き補償部６３は、インター予測処理を行う。動き補償部６３は、可逆復号化部５２からの予測モード情報や動きベクトルに基づいて、フレームメモリ６１から供給された復号画像データの動き補償を行う。さらに、動き補償部６３は、動き補償により生成した予測画像データをセレクタ６４に出力する。
【０１５８】
このように、本願発明の画像復号化装置および方法では、画像符号化において、上位階層のブロックで検出された動きベクトルを予測動きベクトルに設定して、符号化効率や画質の改善が行われても、符号化ストリームを正しく復号化することができる。
【０１５９】
＜７．画像符号化装置の他の構成＞
次に、画像符号化装置の他の構成について説明する。画像符号化において、符号化対象のブロックの画像と参照画像を比較して動きベクトルの算出を行う場合、フレームメモリから参照画像の画像データを読み出す必要がある。また、参照画像の画像データは、データ量が大きいことからフレームメモリとしてＤＲＡＭ(Dynamic Random Access Memory)が使用されることが多い。しかし、ＤＲＡＭは大容量である一方、読み出しあるいは書き込みを行う際の遅延が大きく、不連続な読み出しあるいは書き込みには転送速度が遅くなる問題がある。このため、動きベクトルの算出に時間を要してしまう。
【０１６０】
そこで、画像符号化装置の他の構成では、参照画像の画像データに対して多重解像度解析を行い、多重解像度解析結果を、ＳＲＡＭ(Static Random Access Memory)等を用いたキャッシュメモリに記憶する。また、キャッシュメモリに記憶された多重解像度解析結果を利用して、データ量が少ない低解像度の画像を生成する。画像符号化装置は、低解像度の画像を用いて動き予測を行い、動きベクトルの粗検出を行う。さらに、画像符号化装置は、動きベクトルの粗検出の結果に基づき選択領域を設定して、この選択領域の高解像度画像を用いて動きベクトルの詳細検出を行う。このような動きベクトルの検出を繰り返すことで、メモリから読み出す画像データのデータ量を削減しても動きベクトルを高精度に検出できるようにする。
【０１６１】
図１８は、画像符号化装置の他の構成を示している。なお、図１８において、図２と対応する部分については同一符号を付している。
【０１６２】
画像符号化装置１０ａは、アナログ／ディジタル変換部（Ａ／Ｄ変換部）１１、画面並び替えバッファ１２、減算部１３、直交変換部１４、量子化部１５、可逆符号化部１６、蓄積バッファ１７、レート制御部１８を備えている。また、画像符号化装置１０ａは、逆量子化部２１、逆直交変換部２２、加算部２３、デブロッキングフィルタ２４、多重解像度解析部２５、キャッシュメモリ２６、フレームメモリ２７、多重解像度再構築部２８、多重解像度解析・再構築部２９を有している。さらに、画像符号化装置１０ａは、イントラ予測部３１、動き予測・補償部３２ａ、予測画像・最適モード選択部３３を備えている。
【０１６３】
Ａ／Ｄ変換部１１は、アナログの画像信号をディジタルの画像データに変換して画面並べ替えバッファ１２に出力する。
【０１６４】
画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１から出力された画像データに対してフレームの並べ替えを行う。画面並べ替えバッファ１２は、符号化処理に係るＧＯＰ（Group of Pictures）構造に応じてフレームの並べ替えを行い、並べ替え後の画像データを減算部１３とイントラ予測部３１と動き予測・補償部３２ａに出力する。
【０１６５】
減算部１３には、画面並べ替えバッファ１２から出力された画像データと、後述する予測画像・最適モード選択部３３で選択された予測画像データが供給される。減算部１３は、画面並べ替えバッファ１２から出力された画像データと予測画像・最適モード選択部３３から供給された予測画像データとの差分である予測誤差データを算出して、直交変換部１４に出力する。
【０１６６】
直交変換部１４は、減算部１３から出力された予測誤差データに対して、離散コサイン変換（DCT；Discrete Cosine Transform）、カルーネン・レーベ変換等の直交変換処理を行う。直交変換部１４は、直交変換処理を行うことにより得られた変換係数データを量子化部１５に出力する。
【０１６７】
量子化部１５には、直交変換部１４から出力された変換係数データと、後述するレート制御部１８からレート制御信号が供給されている。量子化部１５は変換係数データの量子化を行い、量子化データを可逆符号化部１６と逆量子化部２１に出力する。また、量子化部１５は、レート制御部１８からのレート制御信号に基づき量子化パラメータ（量子化スケール）を切り替えて、量子化データのビットレートを変化させる。
【０１６８】
可逆符号化部１６には、量子化部１５から出力された量子化データと、後述するイントラ予測部３１と動き予測・補償部３２および予測画像・最適モード選択部３３から予測モード情報が供給される。なお、予測モード情報には、イントラ予測またはインター予測に応じて、予測ブロックサイズを示すマクロブロックタイプ、予測モード、参照ピクチャ情報等が含まれる。可逆符号化部１６は、量子化データに対して例えば可変長符号化または算術符号化等により符号化処理を行い、符号化ストリームを生成して蓄積バッファ１７に出力する。また、可逆符号化部１６は、予測モード情報を可逆符号化して、符号化ストリームの例えばヘッダ情報に付加する。さらに、可逆符号化部１６は、符号化対象の画像のブロックである最適モードの予測ブロックに対して、この予測ブロックを含む１つ上の階層のブロックについて検出した動きベクトルを予測動きベクトルとして設定して、予測動きベクトルと符号化対象のブロックの動きベクトルとの差分を示す差分動きベクトルの可逆符号化を行って、符号化ストリームに付加する。また、可逆符号化部１６は、後述するコスト関数値の算出においても、各予測ブロックについて予測動きベクトルを設定して、予測ブロックの動きベクトルとの差分を示す差分動きベクトルの可逆符号化を行うことで、差分動きベクトルの符号化データを含めた発生符号量を算出できるようにする。
【０１６９】
蓄積バッファ１７は、可逆符号化部１６からの符号化ストリームを蓄積する。また、蓄積バッファ１７は、蓄積した符号化ストリームを伝送路に応じた伝送速度で出力する。
【０１７０】
レート制御部１８は、蓄積バッファ１７の空き容量の監視を行い、空き容量に応じてレート制御信号を生成して量子化部１５に出力する。レート制御部１８は、例えば蓄積バッファ１７から空き容量を示す情報を取得する。レート制御部１８は空き容量が少なくなっているとき、レート制御信号によって量子化データのビットレートを低下させる。また、レート制御部１８は蓄積バッファ１７の空き容量が十分大きいとき、レート制御信号によって量子化データのビットレートを高くする。
【０１７１】
逆量子化部２１は、量子化部１５から供給された量子化データの逆量子化処理を行う。逆量子化部２１は、逆量子化処理を行うことで得られた変換係数データを逆直交変換部２２に出力する。
【０１７２】
逆直交変換部２２は、逆量子化部２１から供給された変換係数データの逆直交変換処理を行うことで得られたデータを加算部２３に出力する。
【０１７３】
加算部２３は、逆直交変換部２２から供給されたデータと予測画像・最適モード選択部３３から供給された予測画像データを加算して参照画像データを生成して、この参照画像データをデブロッキングフィルタ２４とイントラ予測部３１に出力する。
【０１７４】
デブロッキングフィルタ２４は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタ処理を行う。デブロッキングフィルタ２４は、加算部２３から供給された参照画像データからブロック歪みを除去するフィルタ処理を行い、フィルタ処理後の参照画像データを多重解像度解析部２５に出力する。
【０１７５】
多重解像度解析部２５は、参照画像データに対して、多重解像度解析、例えば離散ウェーブレット変換を用いたサブバンド分解を行い、多重解像度解析結果をキャッシュメモリ２６に出力する。多重解像度解析部２５は、例えば５／３可逆フィルタを用いて画像のウェーブレット変換を行う。
【０１７６】
図１９は、１次元のサブバンド分解と再構築を説明するための図である。サブバンド分解では、図１９の（Ａ）に示すように、変換対象画像０Ｌに対して高域通過フィルタ（ＨＰＦ）７１１によるフィルタ処理と間引き部（ダウンサンプラ）７１２による間引き処理を行い高域成分画像１Ｈを生成する。また、変換対象画像０Ｌに対して低域通過フィルタ（ＬＰＦ）７１３によるフィルタ処理と間引き部７１４による間引き処理を行い、低域成分画像１Ｌを生成する。さらに、低域成分画像１Ｌに対して高域通過フィルタ７１５によるフィルタ処理と間引き部７１６による間引き処理を行い、高域成分画像２Ｈを生成する。また、低域成分画像１Ｌに対して低域通過フィルタ７１７によるフィルタ処理と間引き部７１８による間引き処理を行い、低域成分画像２Ｌを生成する。このように、フィルタ処理と間引き処理を行うことで、解像度の異なる画像を生成できる。さらに、図１９の（Ａ）に示す処理を水平方向および垂直方向に対して行うと、２次元空間のサブバンド分解結果は図２０に示すようになる。
【０１７７】
キャッシュメモリ２６は、多重解像度解析結果を低解像度から高解像度の順に記憶する。また、キャッシュメモリは、メモリ容量を超える多重解像度解析結果をフレームメモリ２７に記憶させる。
【０１７８】
多重解像度再構築部２８は、解像度の異なる参照画像を再構築して動き予測・補償部３２ａに出力する。多重解像度再構築部２８は、例えば５／３可逆フィルタを用いて逆ウェーブレット変換を行う。多重解像度再構築部２８は、低域成分画像と高域成分画像の合成によって画像の再構築を行う。画像の再構築では、図１９の（Ｂ）に示すように、低域成分画像２Ｌに対して補間部（アップサンプラ）７２１による補間処理と低域通過フィルタ７２２によるフィルタ処理、高域成分画像２Ｈに対して補間部７２３による補間処理と高域通過フィルタ７２４によるフィルタ処理をそれぞれ行う。さらに、フィルタ処理後の画像を加算部７２５で加算して低域成分画像１Ｌを生成する。また、低域成分画像１Ｌに対して補間部７２６による補間処理と低域通過フィルタ７２７によるフィルタ処理、高域成分画像１Ｈに対して補間部７２８による補間処理と高域通過フィルタ７２９によるフィルタ処理をそれぞれ行う。さらに、フィルタ処理後の画像を加算部７３０で加算してサブバンド分割前の画像０Ｌを生成する。このように、補間処理とフィルタ処理を行うことで、解像度の異なる画像からサブバンド分解前の画像を再構築できる。さらに、図１９の（Ｂ）に示す処理を水平方向および垂直方向に対して行うと、図２０に示すサブバンド分解後の画像を分割前の画像に戻すことができる。例えば図２０に示す画像２ＬＬ，２ＨＬ，２ＬＨ，２ＨＨを合成して画像１ＬＬを生成できる。また、画像１ＬＬ，１ＨＬ，１ＬＨ，１ＨＨを合成して画像０ＬＬを再構築できる。
【０１７９】
多重解像度解析・再構築部２９は、符号化対象画像に対して、多重解像度解析部２５と同様な多重解像度解析例えば離散ウェーブレット変換を行う。また、多重解像度解析・再構築部２９は、多重解像度再構築部２８と同様に多重解像度解析結果を選択的に用いて画像の再構築を行い、解像度の異なる符号化対象画像を生成して動き予測・補償部３２ａに出力する。
【０１８０】
イントラ予測部３１は、画面並べ替えバッファ１２から出力された符号化対象画像の画像データと加算部２３から供給された参照画像データを用いて、候補となるすべてのイントラ予測モードのイントラ予測処理を行う。さらに、イントラ予測部３１は、各イントラ予測モードに対してコスト関数値を算出して、算出したコスト関数値が最小となるイントラ予測モード、すなわち符号化効率が最良となるイントラ予測モードを、最適イントラ予測モードとして選択する。イントラ予測部３１は、最適イントラ予測モードで生成された予測画像データと最適イントラ予測モードに関する予測モード情報、および最適イントラ予測モードでのコスト関数値を予測画像・最適モード選択部３３に出力する。また、イントラ予測部３１は、後述するようにコスト関数値の算出で用いる発生符号量を得るため、各イントラ予測モードのイントラ予測処理において、イントラ予測モードに関する予測モード情報を可逆符号化部１６に出力する。
【０１８１】
動き予測・補償部３２ａは、マクロブロックに対応するすべての予測ブロックサイズ（動き補償ブロックサイズ）で動き予測・補償処理を行う。動き予測・補償部３２ａは、画面並べ替えバッファ１２から読み出されたマクロブロックの画像における各予測ブロックサイズの画像ごとに、多重解像度再構築部２８と多重解像度解析・再構築部２９から供給された画像データを用いて動きベクトルを検出する。さらに、動き予測・補償部３２ａは、検出した動きベクトルに基づいて参照画像に動き補償処理を施して予測画像の生成を行う。
【０１８２】
また、動き予測・補償部３２ａは、予測動きベクトルの候補ごとにコスト関数値を算出して可逆符号化部１６に通知する。動き予測・補償部３２ａは、各予測ブロックサイズで算出したコスト関数値に基づき、コスト関数値が最小となる予測ブロックサイズ、すなわち符号化効率が最良となる予測ブロックサイズを、最適インター予測モードとして選択する。動き予測・補償部３２ａは、最適インター予測モードで生成された予測画像データと最適インター予測モードに関する予測モード情報、および最適インター予測モードでのコスト関数値を予測画像・最適モード選択部３３に出力する。また、動き予測・補償部３２ａは、コスト関数値の算出で用いる発生符号量を得るため、各予測ブロックサイズでのインター予測処理において、インター予測モードに関する予測モード情報を可逆符号化部１６に出力する。なお、動き予測・補償部３２ａは、インター予測モードとして、スキップドマクロブロックやダイレクトモードの予測も行う。
【０１８３】
予測画像・最適モード選択部３３は、イントラ予測部３１から供給されたコスト関数値と動き予測・補償部３２ａから供給されたコスト関数値を、マクロブロック単位で比較して、コスト関数値が少ない方を、符号化効率が最良となる最適モードとして選択する。また、予測画像・最適モード選択部３３は、最適モードで生成した予測画像データを減算部１３と加算部２３に出力する。さらに、予測画像・最適モード選択部３３は、最適モードの予測モード情報を可逆符号化部１６に出力する。なお、予測画像・最適モード選択部３３は、スライス単位でイントラ予測またはインター予測を行う。
【０１８４】
＜８．動きベクトルの検出動作＞
図２１は、動き予測・補償部３２ａにおける動きベクトルの検出動作を示すフローチャートである。なお、多重解像度解析では、図２０に示すサブバンド分解が行われたとする。
【０１８５】
ステップＳＴ１３１で動き予測・補償部３２ａは、低解像度符号化対象画像を取得する。動き予測・補償部３２ａは、例えば多重解像度解析・再構築部２９から最も低解像度である画像２ＬＬに相当する符号化対象のブロックの画像を低解像度符号化対象画像として取得する。
【０１８６】
ステップＳＴ１３２で動き予測・補償部３２ａは、低解像度参照画像を取得する。動き予測・補償部３２ａは、例えば多重解像度再構築部２８から符号化対象ブロックに対応する画像２ＬＬの参照画像を取得する。
【０１８７】
ステップＳＴ１３３で動き予測・補償部３２ａは、動きベクトルを検出する。動き予測・補償部３２ａは、符号化対象ブロックの画像と参照画像とでブロックマッチング等を行い、符号化対象ブロックの動きベクトルを検出する。
【０１８８】
ステップＳＴ１３４で動き予測・補償部３２ａは、動きベクトルの検出に用いた画像が最も高解像度の画像であるか判別する。動き予測・補償部３２ａは、動きベクトルの検出に用いた画像が最も高解像度の画像であるとき、動きベクトルの検出動作を終了する。また、動き予測・補償部３２ａは、動きベクトルの検出に用いた画像が最も高解像度の画像ではないときステップＳＴ１３５に進む。
【０１８９】
ステップＳＴ１３５で動き予測・補償部３２ａは、高解像度符号化対象画像を取得する。動き予測・補償部３２ａは、多重解像度解析・再構築部２９から、前回の動きベクトルの検出で用いた画像よりも高解像度である符号化対象画像を取得する。例えば、前回の動きベクトルの検出で画像２ＬＬが用いられている場合、画像２ＬＬよりも高解像度である画像１ＬＬに相当する符号化対象のブロックの画像を、高解像度符号化対象画像として取得する。
【０１９０】
ステップＳＴ１３６で動き予測・補償部３２ａは、高解像度選択参照画像を取得する。動き予測・補償部３２ａは、前回の動きベクトルの検出で検出された動きベクトルに基づき選択領域を設定する。また、動き予測・補償部３２ａは、前回の動きベクトルの検出で用いた画像よりも高解像度である選択領域の参照画像を高解像度選択参照画像として取得する。例えば、前回の動きベクトルの検出で画像２ＬＬが用いられている場合、画像２ＬＬよりも高解像度である画像１ＬＬに相当する選択領域の参照画像を高解像度選択参照画像として取得して、ステップＳＴ１３３に戻り、高解像度の画像を用いて動きベクトルをさらに精度よく検出する。
【０１９１】
また、画像１ＬＬは、最も高解像度の画像でないことから、さらに高解像度の画像すなわち符号化対象ブロックの画像０ＬＬを取得する。また、画像１ＬＬの解像度の画像を用いて検出した動きベクトルに基づき選択領域を設定する。さらに、動き予測・補償部３２ａは、前回の動きベクトルの検出で用いた画像よりも高解像度である選択領域の参照画像を取得する。この取得した画像を用いることで、動きベクトルをさらに精度よく検出できるようになる。
【０１９２】
このように、図２１の処理を行うと、多重解像度解析結果を選択的に用いて、最も低解像度の画像の取得や選択領域の高解像度の画像の再構築を行うことで、動きベクトルを精度よく検出できる。したがって、メモリから読み出す画像データのデータ量を削減しても動きベクトルを高精度に検出できるようになるので、データの読み出しの遅延や転送速度の遅れ等の影響を軽減して、画像の符号化を効率よく行うことができる。
【０１９３】
また、キャッシュメモリ２６は、多重解像度解析結果を低解像度から高解像度の順に記憶して、メモリ容量を超える多重解像度解析結果をフレームメモリ２７に記憶させる。したがって、最も低解像度の画像の取得や選択領域の高解像度の画像の再構築を速やかに行うことが可能となり、動きベクトルの検出を効率よく行うことができる。
【０１９４】
＜９．ソフトウェア処理の場合＞
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、または両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させる。または、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることも可能である。
【０１９５】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Read Only Memory)に予め記録しておくことができる。または、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的または永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
【０１９６】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１９７】
プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１９８】
＜１０．電子機器に適用した場合＞
また、以上においては、符号化方式／復号方式としてＨ．２６４／ＡＶＣ方式が用いられたが、本発明は、その他の動き予測・補償処理を行う符号化方式／復号方式を用いる画像符号化装置／画像復号装置に適用することもできる。
【０１９９】
さらに、本発明は、例えば、ＭＰＥＧ，Ｈ．２６ｘ等のように、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報（ビットストリーム）を、衛星放送、ケーブルＴＶ（テレビジョン）、インターネット、および携帯電話機などのネットワークメディアを介して受信する際に、あるいは、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。
【０２００】
上述した画像符号化装置１０や画像復号化装置５０は、任意の電子機器に適用することができる。以下にその例について説明する。
【０２０１】
図２２は、本発明を適用したテレビジョン装置の概略構成を例示している。テレビジョン装置９０は、アンテナ９０１、チューナ９０２、デマルチプレクサ９０３、デコーダ９０４、映像信号処理部９０５、表示部９０６、音声信号処理部９０７、スピーカ９０８、外部インタフェース部９０９を有している。さらに、テレビジョン装置９０は、制御部９１０、ユーザインタフェース部９１１等を有している。
【０２０２】
チューナ９０２は、アンテナ９０１で受信された放送波信号から所望のチャンネルを選局して復調を行い、得られたストリームをデマルチプレクサ９０３に出力する。
【０２０３】
デマルチプレクサ９０３は、ストリームから視聴対象である番組の映像や音声のパケットを抽出して、抽出したパケットのデータをデコーダ９０４に出力する。また、デマルチプレクサ９０３は、ＥＰＧ（Electronic Program Guide）等のデータのパケットを制御部９１０に供給する。なお、スクランブルが行われている場合、デマルチプレクサ等でスクランブルの解除を行う。
【０２０４】
デコーダ９０４は、パケットの復号化処理を行い、復号処理化によって生成された映像データを映像信号処理部９０５、音声データを音声信号処理部９０７に出力する。
【０２０５】
映像信号処理部９０５は、映像データに対して、ノイズ除去やユーザ設定に応じた映像処理等を行う。映像信号処理部９０５は、表示部９０６に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成する。また、映像信号処理部９０５は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それを番組の映像データに重畳する。映像信号処理部９０５は、このようにして生成した映像データに基づいて駆動信号を生成して表示部９０６を駆動する。
【０２０６】
表示部９０６は、映像信号処理部９０５からの駆動信号に基づき表示デバイス（例えば液晶表示素子等）を駆動して、番組の映像などを表示させる。
【０２０７】
音声信号処理部９０７は、音声データに対してノイズ除去などの所定の処理を施し、処理後の音声データのＤ／Ａ変換処理や増幅処理を行い、スピーカ９０８に供給することで音声出力を行う。
【０２０８】
外部インタフェース部９０９は、外部機器やネットワークと接続するためのインタフェースであり、映像データや音声データ等のデータ送受信を行う。
【０２０９】
制御部９１０にはユーザインタフェース部９１１が接続されている。ユーザインタフェース部９１１は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部９１０に供給する。
【０２１０】
制御部９１０は、ＣＰＵ(Central Processing Unit)やメモリ等を用いて構成されている。メモリは、ＣＰＵにより実行されるプログラムやＣＰＵが処理を行う上で必要な各種のデータ、ＥＰＧデータ、ネットワークを介して取得されたデータ等を記憶する。メモリに記憶されているプログラムは、テレビジョン装置９０の起動時などの所定のタイミングでＣＰＵにより読み出されて実行される。ＣＰＵは、プログラムを実行することで、テレビジョン装置９０がユーザ操作に応じた動作となるように各部を制御する。
【０２１１】
なお、テレビジョン装置９０では、チューナ９０２、デマルチプレクサ９０３、映像信号処理部９０５、音声信号処理部９０７、外部インタフェース部９０９等と制御部９１０を接続するためバス９１２が設けられている。
【０２１２】
このように構成されたテレビジョン装置では、デコーダ９０４に本願の画像復号化装置（画像復号化方法）の機能が設けられる。このため、放送局側で本願の画像符号化装置の機能を用いることにより、符号化効率や画質の改善がはかられて符号化ストリームの生成が行われても、テレビジョン装置で符号化ストリームの復号化を正しく行うことができる。
【０２１３】
図２３は、本発明を適用した携帯電話機の概略構成を例示している。携帯電話機９２は、通信部９２２、音声コーデック９２３、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、制御部９３１を有している。これらは、バス９３３を介して互いに接続されている。
【０２１４】
また、通信部９２２にはアンテナ９２１が接続されており、音声コーデック９２３には、スピーカ９２４とマイクロホン９２５が接続されている。さらに制御部９３１には、操作部９３２が接続されている。
【０２１５】
携帯電話機９２は、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
【０２１６】
音声通話モードにおいて、マイクロホン９２５で生成された音声信号は、音声コーデック９２３で音声データへの変換やデータ圧縮が行われて通信部９２２に供給される。通信部９２２は、音声データの変調処理や周波数変換処理等を行い、送信信号を生成する。また、通信部９２２は、送信信号をアンテナ９２１に供給して図示しない基地局へ送信する。また、通信部９２２は、アンテナ９２１で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、得られた音声データを音声コーデック９２３に供給する。音声コーデック９２３は、音声データのデータ伸張やアナログ音声信号への変換を行い、スピーカ９２４に出力する。
【０２１７】
また、データ通信モードにおいて、メール送信を行う場合、制御部９３１は、操作部９３２の操作によって入力された文字データを受け付けて、入力された文字を表示部９３０に表示する。また、制御部９３１は、操作部９３２におけるユーザ指示等に基づいてメールデータを生成して通信部９２２に供給する。通信部９２２は、メールデータの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ９２１から送信する。また、通信部９２２は、アンテナ９２１で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、メールデータを復元する。このメールデータを、表示部９３０に供給して、メール内容の表示を行う。
【０２１８】
なお、携帯電話機９２は、受信したメールデータを、記録再生部９２９で記憶媒体に記憶させることも可能である。記憶媒体は、書き換え可能な任意の記憶媒体である。例えば、記憶媒体は、ＲＡＭや内蔵型フラッシュメモリ等の半導体メモリ、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、ＵＳＢメモリ、またはメモリカード等のリムーバブルメディアである。
【０２１９】
データ通信モードにおいて画像データを送信する場合、カメラ部９２６で生成された画像データを、画像処理部９２７に供給する。画像処理部９２７は、画像データの符号化処理を行い、符号化データを生成する。
【０２２０】
多重分離部９２８は、画像処理部９２７で生成された符号化データと、音声コーデック９２３から供給された音声データを所定の方式で多重化して、通信部９２２に供給する。通信部９２２は、多重化データの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ９２１から送信する。また、通信部９２２は、アンテナ９２１で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、多重化データを復元する。この多重化データを多重分離部９２８に供給する。多重分離部９２８は、多重化データの分離を行い、符号化データを画像処理部９２７、音声データを音声コーデック９２３に供給する。
【０２２１】
画像処理部９２７は、符号化データの復号化処理を行い、画像データを生成する。この画像データを表示部９３０に供給して、受信した画像の表示を行う。音声コーデック９２３は、音声データをアナログ音声信号に変換してスピーカ９２４に供給して、受信した音声を出力する。
【０２２２】
このように構成された携帯電話装置では、画像処理部９２７に本願の画像符号化装置（画像符号化方法）や画像復号化装置（画像復号化方法）の機能が設けられる。したがって、画像データの通信を行う際に、符号化効率や画質を改善することができる。
【０２２３】
図２４は、本発明を適用した記録再生装置の概略構成を例示している。記録再生装置９４は、例えば受信した放送番組のオーディオデータとビデオデータを、記録媒体に記録して、その記録されたデータをユーザの指示に応じたタイミングでユーザに提供する。また、記録再生装置９４は、例えば他の装置からオーディオデータやビデオデータを取得し、それらを記録媒体に記録させることもできる。さらに、記録再生装置９４は、記録媒体に記録されているオーディオデータやビデオデータを復号して出力することで、モニタ装置等において画像表示や音声出力を行うことができるようにする。
【０２２４】
記録再生装置９４は、チューナ９４１、外部インタフェース部９４２、エンコーダ９４３、ＨＤＤ（Hard Disk Drive）部９４４、ディスクドライブ９４５、セレクタ９４６、デコーダ９４７、ＯＳＤ（On-Screen Display）部９４８、制御部９４９、ユーザインタフェース部９５０を有している。
【０２２５】
チューナ９４１は、図示しないアンテナで受信された放送信号から所望のチャンネルを選局する。チューナ９４１は、所望のチャンネルの受信信号を復調して得られた符号化ストリームをセレクタ９４６に出力する。
【０２２６】
外部インタフェース部９４２は、ＩＥＥＥ１３９４インタフェース、ネットワークインタフェース部、ＵＳＢインタフェース、フラッシュメモリインタフェース等の少なくともいずれで構成されている。外部インタフェース部９４２は、外部機器やネットワーク、メモリカード等と接続するためのインタフェースであり、記録する映像データや音声データ等のデータ受信を行う。
【０２２７】
エンコーダ９４３は、外部インタフェース部９４２から供給された映像データや音声データが符号化されていないとき所定の方式で符号化を行い、符号化ストリームをセレクタ９４６に出力する。
【０２２８】
ＨＤＤ部９４４は、映像や音声等のコンテンツデータ、各種プログラムやその他のデータ等を内蔵のハードディスクに記録し、また再生時等にそれらを当該ハードディスクから読み出す。
【０２２９】
ディスクドライブ９４５は、装着されている光ディスクに対する信号の記録および再生を行う。光ディスク、例えばＤＶＤディスク（ＤＶＤ−Ｖｉｄｅｏ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等）やＢｌｕ−ｒａｙディスク等である。
【０２３０】
セレクタ９４６は、映像や音声の記録時には、チューナ９４１またはエンコーダ９４３からのいずれのストリームを選択して、ＨＤＤ部９４４やディスクドライブ９４５のいずれに供給する。また、セレクタ９４６は、映像や音声の再生時に、ＨＤＤ部９４４またはディスクドライブ９４５から出力されたストリームをデコーダ９４７に供給する。
【０２３１】
デコーダ９４７は、ストリームの復号化処理を行う。デコーダ９４７は、復号処理化を行うことにより生成された映像データをＯＳＤ部９４８に供給する。また、デコーダ９４７は、復号処理化を行うことにより生成された音声データを出力する。
【０２３２】
ＯＳＤ部９４８は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それをデコーダ９４７から出力された映像データに重畳して出力する。
【０２３３】
制御部９４９には、ユーザインタフェース部９５０が接続されている。ユーザインタフェース部９５０は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部９４９に供給する。
【０２３４】
制御部９４９は、ＣＰＵやメモリ等を用いて構成されている。メモリは、ＣＰＵにより実行されるプログラムやＣＰＵが処理を行う上で必要な各種のデータを記憶する。メモリに記憶されているプログラムは、記録再生装置９４の起動時などの所定のタイミングでＣＰＵにより読み出されて実行される。ＣＰＵは、プログラムを実行することで、記録再生装置９４がユーザ操作に応じた動作となるように各部を制御する。
【０２３５】
このように構成された記録再生装置では、エンコーダ９４３に本願の画像符号化装置（画像符号化方法）の機能、デコーダ９４７に画像復号化装置（画像復号化方法）の機能が設けられて、符号化効率や画質を改善して映像の記録再生を効率よく行うことができる。
【０２３６】
図２５は、本発明を適用した撮像装置の概略構成を例示している。撮像装置９６は、被写体を撮像し、被写体の画像を表示部に表示させたり、それを画像データとして、記録媒体に記録する。
【０２３７】
撮像装置９６は、光学ブロック９６１、撮像部９６２、カメラ信号処理部９６３、画像データ処理部９６４、表示部９６５、外部インタフェース部９６６、メモリ部９６７、メディアドライブ９６８、ＯＳＤ部９６９、制御部９７０を有している。また、制御部９７０には、ユーザインタフェース部９７１が接続されている。さらに、画像データ処理部９６４や外部インタフェース部９６６、メモリ部９６７、メディアドライブ９６８、ＯＳＤ部９６９、制御部９７０等は、バス９７２を介して接続されている。
【０２３８】
光学ブロック９６１は、フォーカスレンズや絞り機構等を用いて構成されている。光学ブロック９６１は、被写体の光学像を撮像部９６２の撮像面に結像させる。撮像部９６２は、ＣＣＤまたはＣＭＯＳイメージセンサを用いて構成されており、光電変換によって光学像に応じた電気信号を生成してカメラ信号処理部９６３に供給する。
【０２３９】
カメラ信号処理部９６３は、撮像部９６２から供給された電気信号に対してニー補正やガンマ補正、色補正等の種々のカメラ信号処理を行う。カメラ信号処理部９６３は、カメラ信号処理後の画像データを画像データ処理部９６４に供給する。
【０２４０】
画像データ処理部９６４は、カメラ信号処理部９６３から供給された画像データの符号化処理を行う。画像データ処理部９６４は、符号化処理を行うことにより生成された符号化データを外部インタフェース部９６６やメディアドライブ９６８に供給する。また、画像データ処理部９６４は、外部インタフェース部９６６やメディアドライブ９６８から供給された符号化データの復号化処理を行う。画像データ処理部９６４は、復号化処理を行うことにより生成された画像データを表示部９６５に供給する。また、画像データ処理部９６４は、カメラ信号処理部９６３から供給された画像データを表示部９６５に供給する処理や、ＯＳＤ部９６９から取得した表示用データを、画像データに重畳させて表示部９６５に供給する。
【０２４１】
ＯＳＤ部９６９は、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを生成して画像データ処理部９６４に出力する。
【０２４２】
外部インタフェース部９６６は、例えば、ＵＳＢ入出力端子などで構成され、画像の印刷を行う場合に、プリンタと接続される。また、外部インタフェース部９６６には、必要に応じてドライブが接続され、磁気ディスク、光ディスク等のリムーバブルメディアが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、インストールされる。さらに、外部インタフェース部９６６は、ＬＡＮやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。制御部９７０は、例えば、ユーザインタフェース部９７１からの指示にしたがって、メモリ部９６７から符号化データを読み出し、それを外部インタフェース部９６６から、ネットワークを介して接続される他の装置に供給させることができる。また、制御部９７０は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース部９６６を介して取得し、それを画像データ処理部９６４に供給したりすることができる。
【０２４３】
メディアドライブ９６８で駆動される記録メディアとしては、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアが用いられる。また、記録メディアは、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ＩＣカード等であってもよい。
【０２４４】
また、メディアドライブ９６８と記録メディアを一体化し、例えば、内蔵型ハードディスクドライブやＳＳＤ（Solid State Drive）等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
【０２４５】
制御部９７０は、ＣＰＵやメモリ等を用いて構成されている。メモリは、ＣＰＵにより実行されるプログラムやＣＰＵが処理を行う上で必要な各種のデータ等を記憶する。メモリに記憶されているプログラムは、撮像装置９６の起動時などの所定のタイミングでＣＰＵにより読み出されて実行される。ＣＰＵは、プログラムを実行することで、撮像装置９６がユーザ操作に応じた動作となるように各部を制御する。
【０２４６】
このように構成された撮像装置では、画像データ処理部９６４に本願の画像符号化装置（画像符号化方法）や画像復号化装置（画像復号化方法）の機能が設けられる。したがって、撮像画像をメモリ部９６７や記録メディア等に記録する際に、符号化効率や画質の改善をはかり撮像画像の記録再生を効率よく行うことができる。
【０２４７】
さらに、本発明は、上述した発明の実施の形態に限定して解釈されるべきではない。この発明の実施の形態は、例示という形態で本発明を開示しており、本発明の要旨を逸脱しない範囲で当業者が実施の形態の修正や代用をなし得ることは自明である。すなわち、本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【産業上の利用可能性】
【０２４８】
この発明の画像復号化装置と画像符号化装置およびその方法とプログラムでは、上位階層の動きベクトルを予測動きベクトルとして用いて予測精度を向上させることで、画像の復号化や符号化を効率よく行うことができる。また、動きベクトルの検出では、符号化対象のブロックの画像に対する多重解像度解析と画像の再構築によって生成された低解像度符号化対象画像と、参照画像に対して多重解像度解析wを行うことにより得られた多重解像度解析結果を用いて再構築された低解像度参照画像とを用いて動きベクトルの粗検出を行い、高解像度符号化対象画像と粗検出結果を用いて設定した選択領域の高解像選択参照画像を用いて動きベクトルの詳細検出が行われるので、動きベクトルの検出のためにメモリから読み出すデータ量が少なく、効率よく動きベクトルを検出できることから画像の符号化を効率よく行うことができる
したがって、ＭＰＥＧ、Ｈ.２６ｘ等のように、ブロック単位で符号化を行うことにより得られた画像情報（ビットストリーム）を、衛星放送、ケーブルＴＶ、インターネット、携帯電話などのネットワークメディアを介して送受信する際に、若しくは光、磁気ディスク、フラッシュメモリのような記憶メディア上で処理する際に用いられる画像復号化装置や画像符号化装置等に適している。
【符号の説明】
【０２４９】
１０，１０ａ・・画像符号化装置、１１・・・Ａ／Ｄ変換部、１２，５７・・・画面並べ替えバッファ、１３，１６６・・・減算部、１４・・・直交変換部、１５・・・量子化部、１６・・・可逆符号化部、１７，５１・・・蓄積バッファ、１８・・・レート制御部、２１，５３・・・逆量子化部、２２，５４・・・逆直交変換部、２３，５５，５２５・・・加算部、２４，５６・・・デブロッキングフィルタ、２５・・・多重解像度解析部、２６・・・キャッシュメモリ、２７，６１・・・フレームメモリ、２８・・・多重解像度再構築部、２９・・・多重解像度解析・再構築部、３１，６２・・・イントラ予測部、３２，３２ａ・・・動き予測・補償部、３３・・・予測画像・最適モード選択部、５０・・・画像復号化装置、５２・・・可逆復号化部、５８・・・Ｄ／Ａ変換部、６２・・・動き補償部、６４，９４６・・・セレクタ、９０・・・テレビジョン装置、９２・・・携帯電話機、９４・・・記録再生装置、９６・・・撮像装置、１６１，５２３・・・予測動きベクトル設定部、１６１ａ，５２３ａ・・・動きベクトル記憶部、１６１ｂ，５２３ｂ・・・動きベクトル選択部、１６４-1〜１６４-n・・・可変長符号化部、１６５，５２２・・・選択部、１６６・・・階層構造情報生成部、５２１-1〜５２１-n・・・可変長復号化部、９０１、９２１・・・アンテナ、９０２、９４１・・・チューナ、９０３・・・デマルチプレクサ、９０４，９４７・・・デコーダ、９０５・・・映像信号処理部、９０６・・・表示部、９０７・・・音声信号処理部、９０８・・・スピーカ、９０９、９４２、９６６・・・外部インタフェース部、９１０、９３１，９４９，９７０・・・制御部、９１１，９３２，９７１・・・ユーザインタフェース部、９１２，９３３，９７２・・・バス、９２２・・・通信部、９２３・・・音声コーデック、９２４・・・スピーカ、９２５・・・マイクロホン、９２６・・・カメラ部、９２７・・・画像処理部、９２８・・・多重分離部、９２９・・・記録再生部、９３０・・・表示部、９４３・・・エンコーダ、９４４・・・ＨＤＤ部、９４５・・・ディスクドライブ、９４８、９６９・・・ＯＳＤ部、９６１・・・光学ブロック、９６２・・・撮像部、９６３・・・カメラ信号処理部、９６４・・・画像データ処理部、９６５・・・表示部、９６７・・・メモリ部、９６８・・・メディアドライブ
【図１】
2011259093.tif 000003
【図２】
2011259093.tif 000004
【図３】
2011259093.tif 000005
【図４】
2011259093.tif 000006
【図５】
2011259093.tif 000007
【図６】
2011259093.tif 000008
【図７】
2011259093.tif 000009
【図８】
2011259093.tif 000010
【図９】
2011259093.tif 000011
【図１０】
2011259093.tif 000012
【図１１】
2011259093.tif 000013
【図１２】
2011259093.tif 000014
【図１３】
2011259093.tif 000015
【図１４】
2011259093.tif 000016
【図１５】
2011259093.tif 000017
【図１６】
2011259093.tif 000018
【図１７】
2011259093.tif 000019
【図１８】
2011259093.tif 000020
【図１９】
2011259093.tif 000021
【図２０】
2011259093.tif 000022
【図２１】
2011259093.tif 000023
【図２２】
2011259093.tif 000024
【図２３】
2011259093.tif 000025
【図２４】
2011259093.tif 000026
【図２５】
2011259093.tif 000027