(57)【要約】【課題】符号化効率の改善をはかる。【解決手段】符号化ビットストリームを処理を可逆復号化部５２と逆量子化部５３と逆直交変換部５４で順に行い直交変換後の係数データと符号化パラメータ情報を得る。逆直交変換部５４は、符号化パラメータ情報で示されたマクロブロック内における変換ブロックの位置に応じて、予め設定されている基底を用いて係数データの逆直交変換を行い予測誤差データを得る。イントラ予測部６２は予測画像データを生成する。加算部５５は、予測誤差データに予測画像データを加算して画像データを復号する。変換ブロックの位置に応じて設定されている基底を用いることで、最適な逆直交変換を行うことが可能となり、符号化効率を改善できる。【選択図】        図１３
2011259205.tif 000002
【特許請求の範囲】
【請求項１】
画像データと予測画像データとの誤差である予測誤差データを、変換ブロック毎に直交変換して、該直交変換後の係数データを処理して生成された符号化ビットストリームから前記画像データを復号する画像復号化装置において、
前記符号化ビットストリームを処理して、前記直交変換後の係数データと符号化パラメータ情報を得るデータ処理部と、
前記符号化パラメータ情報で示されたマクロブロック内における前記変換ブロックの位置に応じて、予め設定されている基底を用いて前記係数データの逆直交変換を行い予測誤差データを得る逆直交変換部と、
前記予測画像データを生成する予測画像データ生成部と、
前記逆直交変換部で得られた前記予測誤差データに前記予測画像データ生成部で生成された予測画像データを加算して前記画像データを復号する加算部と
を有する画像復号化装置。
【請求項２】
前記逆直交変換部は、前記変換ブロックの位置と前記符号化パラメータ情報で示された予測モードに応じて、予め設定されている基底を用いて前記逆直交変換を行う請求項１記載の画像復号化装置。
【請求項３】
前記逆直交変換部は、前記符号化パラメータ情報に基づきマクロブロックに変換ブロックが複数含まれるとき、前記マクロブロックに含まれる各変換ブロックの直交変換後の最も低い周波数成分の係数データについての直交変換後の係数データに対して、予測モードに応じて予め設定されている基底を用いて前記逆直交変換を行う請求項２記載の画像復号化装置。
【請求項４】
前記逆直交変換部で用いられる基底は、前記予測誤差データを変換ブロック毎に直交変換したときに用いられる基底の逆行例である請求項２記載の画像復号化装置。
【請求項５】
前記逆直交変換部は、前記基底を用いてカルーネン・レーベ逆変換を行う請求項１記載の画像復号化装置。
【請求項６】
画像データと予測画像データとの誤差である予測誤差データを、変換ブロック毎に直交変換して、該直交変換後の係数データを処理して生成された符号化ビットストリームから前記画像データを復号する画像復号化方法において、
前記符号化ビットストリームを処理して、前記直交変換後の係数データと符号化パラメータ情報を得るデータ処理工程と、
前記符号化パラメータ情報で示されたマクロブロック内における前記変換ブロックの位置に応じて、予め設定されている基底を用いて前記係数データの逆直交変換を行い予測誤差を得る逆直交変換工程と、
前記予測画像データを生成する予測画像データ生成工程と、
前記逆直交変換部で得られた前記予測誤差に前記生成された予測画像データを加算して前記画像データを復号する加算工程と
を設けた画像復号化方法。
【請求項７】
画像データと予測画像データとの誤差である予測誤差データを、変換ブロック毎に直交変換して、該直交変換後の係数データを処理して生成された符号化ビットストリームから前記画像データを復号する画像符号化をコンピュータで実行させるプログラムであって、
前記符号化ビットストリームを処理して、前記直交変換後の係数データと符号化パラメータ情報を得るデータ処理手順と、
前記符号化パラメータ情報で示されたマクロブロック内における前記変換ブロックの位置に応じて、予め設定されている基底を用いて前記係数データの逆直交変換を行い予測誤差を得る逆直交変換手順と、
前記予測画像データを生成する予測画像データ生成手順と、
前記逆直交変換部で得られた前記予測誤差に前記生成された予測画像データを加算して前記画像データを復号する加算手順と
を前記コンピュータで実行させるプログラム。
【請求項８】
画像データの符号化を行う画像符号化装置において、
前記画像データの予測画像データを生成する予測部と、
前記画像データと前記予測画像データとの誤差である予測誤差データを生成する減算部と、
前記予測誤差の直交変換を変換ブロック毎に行い、マクロブロック内における前記変換ブロックの位置に応じて、予め設定されている基底を用いて前記直交変換を行う直交変換部と、
前記直交変換部の出力データを処理して符号化ビットストリームを生成するデータ処理部と
を有する画像符号化装置。
【請求項９】
前記直交変換部は、前記変換ブロックの位置と前記予測部で前記予測画像データの生成を行ったときの予測モードに応じて、予め設定されている基底を用いて前記直交変換を行う請求項８記載の画像符号化装置。
【請求項１０】
前記直交変換部は、前記マクロブロックに含まれる変換ブロックが複数であるとき、マクロブロックに含まれる各変換ブロックの直交変換後の最も低い周波数成分の係数を用いたブロックについて、前記予測モードに応じて、予め設定されている基底を用いて直交変換を行う請求項９記載の画像符号化装置。
【請求項１１】
前記直交変換部で用いられる基底は、予め用意されている複数の画像を用いて、前記マクロブロックサイズ、前記変換ブロックサイズ、前記マクロブロック内における変換ブロックの位置、および前記予測モード毎の各変換ブロック内の予測誤差データから算出した行列の固有値に対応する固有ベクトルである請求項９記載の画像符号化装置。
【請求項１２】
前記直交変換部で用いられる基底は、基底間の距離に応じてグループ化されている請求項１１記載の画像符号化装置。
【請求項１３】
前記直交変換部で用いられる基底は、参照画素からの距離に応じてグループ化されている請求項１１記載の画像符号化装置。
【請求項１４】
前記直交変換部は、前記基底を用いてカルーネン・レーベ変換を行う請求項８記載の画像符号化装置。
【請求項１５】
画像データの符号化を行う画像符号化方法において、
前記画像データの予測画像データを生成する予測画像データ生成工程と、
前記画像データと前記予測画像データとの誤差である予測誤差データを生成する減算工程と、
前記予測誤差の直交変換を変換ブロック毎に行い、マクロブロック内における前記変換ブロックの位置に応じて、予め設定されている基底を用いて前記直交変換を行う直交変換工程と
を設けた画像符号化方法。
【請求項１６】
画像データの符号化をコンピュータで実行させるプログラムであって、
前記画像データの予測画像データを生成する予測画像データ生成手順と、
前記画像データと前記予測画像データとの誤差である予測誤差データを生成する減算手順と、
前記予測誤差の直交変換を変換ブロック毎に行い、マクロブロック内における前記変換ブロックの位置に応じて、予め設定されている基底を用いて前記直交変換を行う直交変換手順と
を前記コンピュータで実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像復号化装置と画像符号化装置およびその方法とプログラムに関する。詳しくは、効率的な復号化や符号化を行うことができる画像復号化装置と画像符号化装置およびその方法とプログラムを提供する。
【背景技術】
【０００２】
近年、画像情報をディジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、直交変換と動き補償により圧縮するＭＰＥＧなどの方式に準拠した装置が、放送局などの情報配信、および一般家庭における情報受信の双方において普及しつつある。
【０００３】
特に、ＭＰＥＧ２（ＩＳＯ／ＩＥＣ １３８１８−２）は、汎用画像符号化方式として定義されている。ＭＰＥＧ２圧縮方式は、飛び越し走査画像および順次走査画像の双方、並びに標準解像度画像および高精細画像を網羅する標準で、プロフェッショナル用途およびコンシューマー用途の広範なアプリケーションに現在広く用いられている。ＭＰＥＧ２圧縮方式を用いることにより、例えば１９２０×１０８８画素を持つ高解像度の飛び越し走査画像であれば１８〜２２Ｍｂｐｓの符号量（ビットレート）を割り当てることで、高い圧縮率と良好な画質の実現が可能である。
【０００４】
ＭＰＥＧ２は主として放送用に適合する高画質符号化を対象としていたが、ＭＰＥＧ１より低い符号量（ビットレート）、つまりより高い圧縮率の符号化方式には対応していなかった。携帯端末の普及により、今後そのような符号化方式のニーズは高まると思われ、これに対応してＭＰＥＧ４符号化方式の標準化が行われた。画像符号化方式に関しては、１９９８年１２月にＩＳＯ／ＩＥＣ １４４９６−２としてその規格が国際標準に承認された。
【０００５】
さらに、近年、ＭＰＥＧ２やＭＰＥＧ４といった符号化方式に比べ、その符号化、復号化により多くの演算量が要求されるものの、より高い符号化効率を実現できるＨ．２６４およびＭＰＥＧ−４  Part１０（Advanced Video Coding、以下Ｈ．２６４／ＡＶＣと記す）という名で国際標準となっている。このＨ．２６４／ＡＶＣは、Ｈ．２６Ｌをベースとして、Ｈ．２６Ｌではサポートされない機能をも取り入れている。
【０００６】
また、Ｈ．２６４／ＡＶＣを用いて画像データをより効率的に符号化することが特許文献１等に開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−４９８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、イントラ予測では、イントラ予測の方向に合わせて変換手法の切り替えを行う、ＭＤＤＴ（Mode dependent directional transform）と呼ばれる方式が提案されている。このようなＭＤＤＴ方式を用いる場合、イントラ予測の方向に合わせて行われる変換が最適化されていないと、符号化効率を改善することが困難である。
【０００９】
そこで、この発明では、符号化効率を改善できる画像復号化装置と画像符号化装置およびその方法とプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
この発明の第１の側面は、画像データと予測画像データとの誤差である予測誤差データを、変換ブロック毎に直交変換して、該直交変換後の係数データを処理して生成された符号化ビットストリームから前記画像データを復号する画像復号化装置において、前記符号化ビットストリームを処理して、前記直交変換後の係数データと符号化パラメータ情報を得るデータ処理部と、前記符号化パラメータ情報で示されたマクロブロック内における前記変換ブロックの位置に応じて予め設定されている基底を用いて前記係数データの逆直交変換を行い予測誤差を得る逆直交変換部と、前記予測画像データを生成する予測画像データ生成部と、前記逆直交変換部で得られた前記予測誤差に前記予測画像データ生成部で生成された予測画像データを加算して前記画像データを復号する加算部とを有する画像復号化装置にある。
【００１１】
この発明の画像復号化装置では、符号化ビットストリームを処理して得られた直交変換後の係数データの逆直交変換を行う際に、前記符号化ビットストリームに含まれている画像データを復号するための符号化パラメータ情報で示されたマクロブロック内における変換ブロックのブロック位置やブロック位置と符号化パラメータ情報で示された予測モードに応じて予め設定されている基底が用いられて、逆直交変換例えばカルーネン・レーベ逆変換が行われる。また、マクロブロックに含まれる変換ブロックが複数であるとき、各変換ブロックの直交変換後の最も低い周波数成分の係数を用いたブロックの直交変換後の係数データに対して、予測モードに応じて予め設定されている基底を用いて、カルーネン・レーベ逆変換が行われる。また、逆直交変換部で用いられる基底は、予測誤差データを変換ブロック毎に直交変換したときに用いられる基底の逆行例である。このような基底を予め設けておき、ブロック位置等に応じた基底を選択して用いて逆直交変換を行い直交変換が行われるまえの予測誤差データを生成する。
【００１２】
この発明の第２の側面は、画像データと予測画像データとの誤差である予測誤差データを、変換ブロック毎に直交変換して、該直交変換後の係数データを処理して生成された符号化ビットストリームから前記画像データを復号する画像復号化方法において、前記符号化ビットストリームを処理して、前記直交変換後の係数データと符号化パラメータ情報を得るデータ処理工程と、前記符号化パラメータ情報で示されたマクロブロック内における前記変換ブロックの位置に応じて、予め設定されている基底を用いて前記係数データの逆直交変換を行い予測誤差を得る逆直交変換工程と、前記予測画像データを生成する予測画像データ生成工程と、前記逆直交変換部で得られた前記予測誤差に前記生成された予測画像データを加算して前記画像データを復号する加算工程とを設けた画像復号化方法にある。
【００１３】
この発明の第３の側面は、画像データと予測画像データとの誤差である予測誤差データを、変換ブロック毎に直交変換して、該直交変換後の係数データを処理して生成された符号化ビットストリームから前記画像データを復号する画像符号化をコンピュータで実行させるプログラムであって、前記符号化ビットストリームを処理して、前記直交変換後の係数データと符号化パラメータ情報を得るデータ処理手順と、前記符号化パラメータ情報で示されたマクロブロック内における前記変換ブロックの位置に応じて、予め設定されている基底を用いて前記係数データの逆直交変換を行い予測誤差を得る逆直交変換手順と、前記予測画像データを生成する予測画像データ生成手順と、前記逆直交変換部で得られた前記予測誤差に前記生成された予測画像データを加算して前記画像データを復号する加算手順とを前記コンピュータで実行させるプログラムにある。
【００１４】
この発明の第４の側面は、画像データの符号化を行う画像符号化装置において、前記画像データの予測画像データを生成する予測部と、前記画像データと前記予測画像データとの誤差である予測誤差データを生成する減算部と、前記予測誤差の直交変換を変換ブロック毎に行い、マクロブロック内における前記変換ブロックの位置に応じて予め設定されている基底を用いて、前記直交変換を行う直交変換部と、前記直交変換部の出力データを処理して符号化ビットストリームを生成するデータ処理部とを有する画像符号化装置にある。
【００１５】
この発明の画像符号化装置では、画像データと予測画像データの誤差を示す予測誤差データを変換ブロック毎に直交変換する際に、マクロブロック内における変換ブロックのブロック位置やブロック位置と予測画像データを生成したときの予測モードに応じて予め設定されている基底が用いられて、直交変換例えばカルーネン・レーベ変換が行われる。また、マクロブロックに含まれる変換ブロックが複数であるとき、各変換ブロックにおける直交変換後の最も低い周波数成分の係数で構成したブロックのカルーネン・レーベ変換が行われる。このカルーネン・レーベ変換では、予測モードに応じて予め設定されている基底が用いられる。この基底は、予め基底の学習用に用意されている複数の画像を用いて、マクロブロックサイズ毎、変換ブロックサイズ毎、マクロブロック内における変換ブロックの位置毎、および予測モード毎の各変換ブロック内の予測誤差データから算出した行列の固有値に対応する固有ベクトルである。また、基底は、基底間の距離または参照画素からの距離に応じてグループ化されている。このような基底を予め設けておき、ブロック位置等に応じた基底を選択して用いて直交変換を行う。さらに、直交変換後の係数データに対して量子化や可逆符号化等の処理が行われて、符号化ビットストリームの生成が行われる。
【００１６】
この発明の第５の側面は、画像データの符号化を行う画像符号化方法において、前記画像データの予測画像データを生成する予測画像データ生成工程と、前記画像データと前記予測画像データとの誤差である予測誤差データを生成する減算工程と、前記予測誤差の直交変換を変換ブロック毎に行い、マクロブロック内における前記変換ブロックの位置に応じて予め設定されている基底を用いて、前記直交変換を行う直交変換工程とを設けた画像符号化方法にある。
【００１７】
この発明の第６の側面は、画像データの符号化をコンピュータで実行させるプログラムであって、前記画像データの予測画像データを生成する予測画像データ生成手順と、前記画像データと前記予測画像データとの誤差である予測誤差データを生成する減算手順と、前記予測誤差の直交変換を変換ブロック毎に行い、マクロブロック内における前記変換ブロックの位置に応じて予め設定されている基底を用いて、前記直交変換を行う直交変換手順とを前記コンピュータで実行させるプログラムにある。
【００１８】
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、光ディスクや磁気ディスク、半導体メモリなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【発明の効果】
【００１９】
この発明によれば、画像データの符号化時に行われる直交変換において、マクロブロック内における変換ブロックのブロック位置に応じて予め設定されている基底を用いて直交変換が行われる。また、ブロック位置に応じて予め設定されている基底を用いて直交変換を行うことに得られた係数データを処理して生成された符号化ビットストリームの復号化において、符号化ビットストリームに含まれている符号化パラメータ情報で示されたマクロブロック内のブロック位置に応じて予め設定されている基底が用いられて、逆直交変換が行われるので、直交変換後の係数データを直交変換前の予測誤差データに戻すことができる。このように、マクロブロック内のブロック位置に応じた基底を用いて直交変換や逆直交変換が行われるので、ブロック位置に応じて最適化した変換を行うことが可能となり、符号化効率を改善することができる。
【図面の簡単な説明】
【００２０】
【図１】画像符号化装置の構成を示した図である。
【図２】４×４画素のブロックについてのイントラ予測モードを示す図である。
【図３】予測モードと予測誤差の関係を示した図である。
【図４】直交変換部におけるＫＬ変換を示す図である。
【図５】直交変換部の構成を示す図である。
【図６】画像符号化処理動作を示すフローチャートである。
【図７】予測処理を示すフローチャートである。
【図８】イントラ予測処理を示すフローチャートである。
【図９】インター予測処理を示すフローチャートである。
【図１０】符号化パラメータ生成処理を示すフローチャートである。
【図１１】直交変換処理を示すフローチャートである。
【図１２】直交変換動作を説明するための図である。
【図１３】画像復号化装置の構成を示した図である。
【図１４】逆直交変換部の構成を示す図である。
【図１５】画像復号化処理動作を示すフローチャートである。
【図１６】逆直交変換処理を示すフローチャートである。
【図１７】逆直交変換処理を説明するための図である。
【図１８】予測処理を示すフローチャートである。
【図１９】基底の学習動作を示すフローチャートである。
【図２０】基底のグループ化を説明するための図である。
【図２１】テレビジョン装置の概略構成を例示した図である。
【図２２】携帯電話機の概略構成を例示した図である。
【図２３】記録再生装置の概略構成を例示した図である。
【図２４】撮像装置の概略構成を例示した図である。
【発明を実施するための形態】
【００２１】
以下、発明を実施するための形態について説明する。なお、説明は以下の順序で行う。
１．画像符号化装置の構成
２．直交変換部の構成
３．画像符号化装置の動作
４．画像復号化装置の構成
５．逆直交変換部の構成
６．画像復号化装置の動作
７．基底の学習動作
８．ソフトウェア処理の場合
９．電子機器に適用した場合
【００２２】
＜１．画像符号化装置の構成＞
図１は、画像符号化装置の構成を示している。画像符号化装置１０は、アナログ／ディジタル変換部（Ａ／Ｄ変換部）１１、画面並び替えバッファ１２、減算部１３、直交変換部１４、量子化部１５、可逆符号化部１６、蓄積バッファ１７、レート制御部１８を備えている。さらに、画像符号化装置１０は、逆量子化部２１、逆直交変換部２２、加算部２３、デブロッキングフィルタ２４、フレームメモリ２７、イントラ予測部３１、動き予測・補償部３２、予測画像・最適モード選択部３３を備えている。
【００２３】
Ａ／Ｄ変換部１１は、アナログの画像信号をディジタルの画像データに変換して画面並べ替えバッファ１２に出力する。
【００２４】
画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１から出力された画像データに対してフレームの並べ替えを行う。画面並べ替えバッファ１２は、符号化処理に係るＧＯＰ（Group of Pictures）構造に応じてフレームの並べ替えを行い、並べ替え後の画像データを減算部１３とイントラ予測部３１と動き予測・補償部３２に出力する。
【００２５】
減算部１３には、画面並べ替えバッファ１２から出力された画像データと、後述する予測画像・最適モード選択部３３で選択された予測画像データが供給される。減算部１３は、画面並べ替えバッファ１２から出力された画像データと予測画像・最適モード選択部３３から供給された予測画像データとの差分である予測誤差データを算出して、直交変換部１４に出力する。
【００２６】
直交変換部１４は、減算部１３から出力された予測誤差データに対して直交変換処理を行う。また、直交変換部１４は、イントラ予測を行う場合、予測モードに応じた直交変換処理を行う。直交変換部１４は、直交変換処理を行うことにより得られた係数データを量子化部１５に出力する。
【００２７】
量子化部１５には、直交変換部１４から出力された係数データと、後述するレート制御部１８からレート制御信号が供給されている。量子化部１５は係数データの量子化を行い、量子化データを可逆符号化部１６と逆量子化部２１に出力する。また、量子化部１５は、レート制御部１８からのレート制御信号に基づき量子化パラメータ（量子化スケール）を切り替えて、量子化データのビットレートを変化させる。
【００２８】
可逆符号化部１６には、量子化部１５から出力された量子化データと、後述するイントラ予測部３１と動き予測・補償部３２や予測画像・最適モード選択部３３から符号化パラメータ情報が供給される。なお、符号化パラメータ情報には、イントラ予測であるかインター予測であるかを示す情報、マクロブロックサイズを示すマクロブロック情報、イントラ予測に関する情報、インター予測に関する情報等が含まれる。可逆符号化部１６は、量子化データに対して例えば可変長符号化または算術符号化等により可逆符号化処理を行い、符号化ビットストリームを生成して蓄積バッファ１７に出力する。また、可逆符号化部１６は、符号化パラメータ情報を可逆符号化して、符号化ビットストリームの例えばヘッダ情報に付加する。なお、量子化部１５や可逆符号化部１６が、直交変換部１４の出力データを処理して符号化ビットストリームを生成するデータ処理部に相当する。
【００２９】
蓄積バッファ１７は、可逆符号化部１６からの符号化ビットストリームを蓄積する。また、蓄積バッファ１７は、蓄積した符号化ビットストリームを伝送路に応じた伝送速度で出力する。
【００３０】
レート制御部１８は、蓄積バッファ１７の空き容量の監視を行い、空き容量に応じてレート制御信号を生成して量子化部１５に出力する。レート制御部１８は、例えば蓄積バッファ１７から空き容量を示す情報を取得する。レート制御部１８は空き容量が少なくなっているとき、レート制御信号によって量子化データのビットレートを低下させる。また、レート制御部１８は蓄積バッファ１７の空き容量が十分大きいとき、レート制御信号によって量子化データのビットレートを高くする。
【００３１】
逆量子化部２１は、量子化部１５から供給された量子化データの逆量子化処理を行う。逆量子化部２１は、逆量子化処理を行うことで得られた係数データを逆直交変換部２２に出力する。
【００３２】
逆直交変換部２２は、逆量子化部２１から供給された係数データの逆直交変換処理を行うことで得られたデータを加算部２３に出力する。
【００３３】
加算部２３は、逆直交変換部２２から供給されたデータと予測画像・最適モード選択部３３から供給された予測画像データを加算して参照画像データを生成して、デブロッキングフィルタ２４とイントラ予測部３１に出力する。
【００３４】
デブロッキングフィルタ２４は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタ処理を行う。デブロッキングフィルタ２４は、加算部２３から供給された参照画像データからブロック歪みを除去するフィルタ処理を行い、フィルタ処理後の参照画像データをフレームメモリ２７に出力する。
【００３５】
フレームメモリ２７は、デブロッキングフィルタ２４から供給されたフィルタ処理後の参照画像データとを保持する。
【００３６】
イントラ予測部３１は、画面並べ替えバッファ１２から出力された符号化対象画像の画像データと加算部２３から供給された参照画像データを用いて、イントラ予測処理を行う。イントラ予測部３１は、直交変換における変換ブロックサイズ毎、およびイントラ予測の予測モード毎にイントラ予測処理を行う。イントラ予測部３１は、生成した予測画像データを予測画像・最適モード選択部３３に出力する。また、イントラ予測部３１は、イントラ予測処理に関する符号化パラメータ情報を生成して、可逆符号化部１６と予測画像・最適モード選択部３３に出力する。イントラ予測部３１は、符号化パラメータ情報に、例えばマクロブロックサイズや変換ブロックサイズ、マクロブロック内における変換ブロックの位置、予測モード等を含める。
【００３７】
また、イントラ予測部３１は、各イントラ予測処理においてコスト関数値を算出して、算出したコスト関数値が最小となるイントラ予測処理、すなわち符号化効率が最も高くなる最適イントラ予測処理を選択する。イントラ予測部３１は、最適イントラ予測処理における符号化パラメータ情報とコスト値と最適イントラ予測処理で生成した予測画像データを、予測画像・最適モード選択部３３に出力する。
【００３８】
動き予測・補償部３２は、マクロブロックに対するすべての動き補償ブロックサイズでインター予測処理を行い、予測画像データを生成して予測画像・最適モード選択部３３に出力する。動き予測・補償部３２は、画面並べ替えバッファ１２から読み出された符号化対象画像における各動き補償ブロックサイズの画像毎に、フレームメモリ２７から読み出されたフィルタ処理後の参照画像データを用いて動きベクトルを検出する。さらに、動き予測・補償部３２は、検出した動きベクトルに基づいて参照画像に動き補償処理を施して予測画像データの生成を行う。また、動き予測・補償部３２は、インター予測処理に関する符号化パラメータ情報、例えばマクロブロックサイズや動き補償ブロックサイズ、動きベクトル等を示す符号化パラメータ情報を生成して、可逆符号化部１６と予測画像・最適モード選択部３３に出力する。
【００３９】
また、動き予測・補償部３２は、各動き補償ブロックサイズに対してコスト関数値を算出して、算出したコスト関数値が最小となるインター予測処理、すなわち符号化効率が最も高くなるインター予測処理を選択する。動き予測・補償部３２は、最適インター予測処理における符号化パラメータ情報とコスト値と最適インター予測処理で生成した予測画像データを予測画像・最適モード選択部３３に出力する。
【００４０】
予測画像・最適モード選択部３３は、イントラ予測部３１で変換ブロックサイズや予測モード毎にイントラ予測処理を行い最適イントラ予測処理を選択するとき、符号化パラメータ情報を直交変換部１４と可逆符号化部１６、予測画像データを減算部１３に出力する。また、予測画像・最適モード選択部３３は、動き予測・補償部３２で予測ブロック毎にインター予測処理を行って最適インター予測処理を選択するとき、符号化パラメータ情報を直交変換部１４と可逆符号化部１６に出力し、予測画像データを減算部１３に出力する。さらに、予測画像・最適モード選択部３３は、最適イントラ予測処理と最適インター予測処理のいずれかを選択して最適モードとするとき、最適イントラ予測処理のコスト関数値と最適インター予測処理のコスト関数値を比較する。予測画像・最適モード選択部３３は、比較結果に基づき、コスト関数値の小さい予測処理、すなわち符号化効率の高い予測処理を最適モードとして選択して、選択した最適モードで生成された予測画像データを減算部１３出力する。また、予測画像・最適モード選択部３３は、最適モードの予測処理を示す符号化パラメータ情報を直交変換部１４と可逆符号化部１６に出力する。
【００４１】
＜２．直交変換部の構成＞
イントラ予測処理では、符号化済みの隣接ブロックの画素を用いて予測が行われており、複数の予測方向から最適な予測方向を選択することが行われている。例えば、Ｈ．２６４／ＡＶＣでは、１６×１６画素のブロックについての予測モードとして、予測モード０〜予測モード３の４つモードが設定されている。また、８×８画素のブロックについての予測モードとして、予測モード０〜予測モード８の９つの予測モードが設定されている。さらに、４×４画素のブロックについての予測モードとして、予測モード０〜予測モード８の９つの予測モードが設定されている。
【００４２】
図２は、例えば４×４画素のブロックについての予測モードを示している。以下、図２の各予測モードについて簡単に説明する。なお、図２において矢印は予測方向を示している。
【００４３】
図２の（Ａ）は予測モード０(vertical)を示している。予測モード０は、垂直方向に隣接する参照画素(reference pixel)Ａ〜Ｄをより予測値を生成するモードである。図２の（Ｂ）は予測モード１(horizontal)を示している。予測モード１は、矢印で示すように、水平方向に隣接する参照画素Ｉ〜Ｌより予測値を生成するモードである。図２の（Ｃ）は予測モード２（DC）を示している。予測モード２は、１３個の参照画素Ａ〜Ｍのうち、このブロックの垂直方向および水平方向に隣接する参照画素Ａ〜ＤおよびＩ〜Ｌより予測値を生成するモードである。
【００４４】
図２の（Ｄ）は予測モード３(diagonal down-left)を示している。予測モード３は、１３個の参照画素Ａ〜Ｍのうち、水平方向に連続する参照画素Ａ〜Ｈより予測値を生成するモードである。図２の（Ｅ）は予測モード４(diagonal down-right)を示している。予測モード４は、１３個の参照画素Ａ〜Ｍのうち、当該ブロックに隣接する参照画素Ａ〜Ｄ、Ｉ〜Ｍとにより予測値を生成するモードである。図２の（Ｆ）は予測モード５(vertical-right)を示している。予測モード５は、１３個の参照画素Ａ〜Ｍのうち、当該ブロックに隣接する参照画素Ａ〜Ｄ、Ｉ〜Ｍとにより予測値を生成するモードである。
【００４５】
図２の（Ｇ）は予測モード６(horizontal-down)を示している。予測モード６は、予測モード４および予測モード５と同様に、１３個の参照画素Ａ〜Ｍのうち、当該ブロックに隣接する参照画素Ａ〜Ｄ、Ｉ〜Ｍにより予測値を生成するモードである。図２の（Ｈ）は予測モード７(vertical-left)を示している。予測モード７は、１３個の参照画素Ａ〜Ｍのうち、当該ブロックの上方に隣接する４個の参照画素Ａ〜Ｄと、この４個の参照画素Ａ〜Ｄに続く４個の参照画素Ｅ〜Ｇとにより予測値を生成するモードである。図２の（Ｉ）は予測モード８(horizontal-up)を示している。予測モード８は、１３個の参照画素Ａ〜Ｍのうち、当該ブロックの左方に隣接する４個の参照画素Ｉ〜Ｌにより予測値を生成するモードである。
【００４６】
このように予測値を生成する場合、ブロック内の画素において、予測値との誤差（予測誤差）は予測に用いる画素に近い画素ほど少なくなる場合が多い。したがって、例えば、図３の（Ａ）に示すように最適モードとして予測モード０(vertical)が選択された場合、画素Ｐ0〜Ｐ3は画素Ｐ12〜Ｐ15よりも予測誤差が少ない。また、図３の（Ｂ）に示すように予測モード１(horizontal)が選択された場合、画素Ｐ0，Ｐ4，Ｐ8，Ｐ12は画素Ｐ3，Ｐ7，Ｐ11，Ｐ15よりも予測誤差が少ない。また、図３の（Ｃ）に示すように予測モード４(diagonal down-right)が選択された場合、画素Ｐ0は画素Ｐ15よりも予測誤差が少ない。このように、予測誤差は予測モードに依存している。また、マクロブロック内のブロック位置についても、符号化済みの隣接マクロブロックに近いブロックほど予測誤差が少なくなる場合が多く、予測誤差はマクロブロックにおけるブロック位置にも依存する。したがって、直交変換部１４は、予測モードおよびマクロブロック内の直交変換を行うブロックの位置毎に最適な基底を設定することで、予測誤差の直交変換を最適化する。
【００４７】
また、直交変換において、カルーネン・レーベ変換（以下「ＫＬ(Karhunen-Loeve)変換」という）は、変換後の係数が互いに無相関となるように変換する変換方式、すなわち最大の符号化効率を得ようとする最適な変換方式であることが知られている。しかし、ＫＬ変換の基底を知るためには、予測誤差に基づいた行列の生成や生成した行列の固有値に対応する固有ベクトルを算出しなければならない。ここで、画像符号化装置でその都度基底を計算すると、画像符号化装置における演算量が大きくなってしまう。また、計算した基底を符号化ビットストリームに付加すると符号化効率の悪化を招いてしまう。そこで、マクロブロック内の直交変換を行うブロック位置や予測モード毎に最適な基底を予め学習によって算出しておく。この算出した基底を画像符号化装置と画像復号化装置で用いるようにすれば、画像符号化装置と画像復号化装置で基底の算出を行う必要がなく、画像符号化装置と画像復号化装置の構成は、基底を算出する場合に比べて簡易となる。さらに、基底を伝送する必要がないので、ＫＬ変換を用いて符号化効率を高めることができるようになる。なお、基底の学習については後述する。
【００４８】
イントラ予測では、マクロブロックが１６×１６画素であるとき、符号化対象画像のブロックサイズである変換ブロックサイズは、例えば１６×１６画素、８×８画素、４×４画素のいずれかのブロックサイズとされる。また、マクロブロックが８×８画素であるとき、変換ブロックサイズは、例えば８×８画素、４×４画素のいずれかのブロックサイズとされる。したがって、直交変換部１４は、図４に示すように、マクロブロックが１６×１６画素であるとき、１６×１６画素、８×８画素、４×４画素のブロックサイズで予測モードに応じたＫＬ変換を行うことができるように構成する。また、直交変換部１４は、マクロブロックが８×８画素であるとき、８×８画素、４×４画素のブロックサイズで予測モードに応じたＫＬ変換を行うことができるように構成する。さらに、直交変換部１４は、マクロブロック内に複数の変換ブロックが設けられる場合、マクロブロック内のブロック位置ｌｏｃに応じたＫＬ変換を行う。
【００４９】
図５は、ＫＬ変換を用いた直交変換部１４の構成を例示している。直交変換部１４は、１６×１６ＫＬ変換部１４１、８×８ＫＬ変換部１４２、２×２ＫＬ変換部１４３，１４６、４×４ＫＬ変換部１４４，１４５、ＤＣＴ部１４７、係数選択部１４８を有している。
【００５０】
１６×１６ＫＬ変換部１４１は、予測モード毎に予め学習されている最適な基底を用いて、１６×１６画素のブロック単位で予測誤差データのＫＬ変換を行い、得られた係数を係数選択部１４８に出力する。
【００５１】
８×８ＫＬ変換部１４２は、予測モードおよびマクロブロック内におけるブロック位置毎に予め学習されている最適な基底を用いて、８×８画素のブロック単位で予測誤差データのＫＬ変換を行う。また、予測誤差データが１６×１６画素のブロックサイズに対応するデータであるとき、１６×１６画素のブロックには８×８画素のブロックが４個含まれる。したがって、８×８ＫＬ変換部１４２は、８×８画素の各ブロックにおける最も低い周波数成分の係数（以下「最低周波数成分係数」という）を２×２ＫＬ変換部１４３に出力し、他の係数を係数選択部１４８に出力する。また、８×８ＫＬ変換部１４２は、予測誤差データが８×８画素のブロックサイズに対応するデータであるとき、予測モード毎に予め学習されている最適な基底を用いて、８×８画素のブロック単位で予測誤差データのＫＬ変換を行う。８×８ＫＬ変換部１４２は、ＫＬ変換によって得られた係数を係数選択部１４８に出力する。
【００５２】
２×２ＫＬ変換部１４３は、予測モード毎に予め学習されている最適な基底を用いて、８×８ＫＬ変換部１４２から供給された２×２ブロック分の係数のＫＬ変換を予測モードに対応する基底を用いて行い、得られた係数を係数選択部１４８に出力する。
【００５３】
４×４ＫＬ変換部１４４は、予測モードおよびマクロブロック内におけるブロック位置毎に予め学習されている最適な基底を用いて、４×４画素のブロック単位で予測誤差データのＫＬ変換を行う。また、予測誤差データが１６×１６画素のブロックサイズに対応するデータであるとき、１６×１６画素のブロックには４×４画素のブロックが１６個含まれる。したがって、４×４ＫＬ変換部１４４は、４×４画素の各ブロックにおける最低周波数成分係数を４×４ＫＬ変換部１４５に出力し、他の係数を係数選択部１４８に出力する。また、予測誤差データが８×８画素のブロックサイズに対応するデータであるとき、８×８画素のブロックには４×４画素のブロックが４個含まれる。したがって、４×４ＫＬ変換部１４４は、４×４画素の各ブロックにおける最低周波数成分係数を２×２ＫＬ変換部１４６に出力し、他の係数を係数選択部１４８に出力する。
【００５４】
４×４ＫＬ変換部１４５は、予測モード毎に予め学習されている最適な基底を用いて、４×４ＫＬ変換部１４４から供給された４×４ブロック分の最低周波数成分係数のブロックについてＫＬ変換を、４×４ＫＬ変換部１４４から示された予測モードに対応する基底を用いて行う。４×４ＫＬ変換部１４５は、ＫＬ変換によって得られた係数を係数選択部１４８に出力する。
【００５５】
２×２ＫＬ変換部１４６は、予測モード毎に予め学習されている最適な基底を用いて、４×４ＫＬ変換部１４４から供給された２×２ブロック分の最低周波数成分係数のブロックについてＫＬ変換を予測モードに対応する基底を用いて行う。２×２ＫＬ変換部１４６は、ＫＬ変換によって得られた係数を係数選択部１４８に出力する。
【００５６】
ＤＣＴ部１４７は、予測誤差データの離散コサイン変換を行い、得られた係数を係数選択部１４８に出力する。
【００５７】
係数選択部１４８は、マクロブロックサイズと、変換ブロックサイズすなわち予測誤差データに対応するブロックサイズに応じて係数の選択を行う。係数選択部１４８は、マクロブロックサイズが１６×１６画素であるとき、１６×１６ＫＬ変換部１４１から出力された係数、８×８ＫＬ変換部１４２と２×２ＫＬ変換部１４３から出力された係数、４×４ＫＬ変換部１４４と４×４ＫＬ変換部１４５から出力された係数のいずれかを変換ブロックサイズに基づき選択する。係数選択部１４８は、選択した係数を量子化部１５に出力する。
【００５８】
また、係数選択部１４８は、マクロブロックサイズが８×８画素であるとき、８×８ＫＬ変換部１４２から出力された係数、４×４ＫＬ変換部１４４と２×２ＫＬ変換部１４６から出力された係数のいずれかを変換ブロックサイズに基づき選択する。係数選択部１４８は、選択した係数を量子化部１５に出力する。なお、係数選択部１４８は、予測画像・最適モード選択部３３から供給された符号化パラメータ情報によってインター予測モードであることが示されたとき、ＤＣＴ部１４７から出力された係数を量子化部１５に出力する。
【００５９】
＜３．画像符号化装置の動作＞
次に、画像符号化処理動作について説明する。図６は、画像符号化処理動作を示すフローチャートである。ステップＳＴ１１において、Ａ／Ｄ変換部１１は入力された画像信号をＡ／Ｄ変換する。
【００６０】
ステップＳＴ１２において画面並べ替えバッファ１２は、画像並べ替えを行う。画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１より供給された画像データを記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
【００６１】
ステップＳＴ１３において減算部１３は、予測誤差データの生成を行う。減算部１３は、ステップＳＴ１２で並び替えられた画像の画像データと予測画像・最適モード選択部３３で選択された予測画像データとの差分を算出して予測誤差データを生成する。予測誤差データは、元の画像データに比べてデータ量が小さい。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
【００６２】
ステップＳＴ１４において直交変換部１４は、直交変換処理を行う。直交変換部１４は、減算部１３から供給された予測誤差データを直交変換する。直交変換部１４は、例えば予測誤差データに対してカルーネン・レーベ変換や離散コサイン変換等の直交変換を行い、係数データを出力する。なお、直交変換部１４の動作の詳細については後述する。
【００６３】
ステップＳＴ１５において量子化部１５は、量子化処理を行う。量子化部１５は、係数データを量子化する。量子化に際しては、後述するステップＳＴ２６の処理で説明されるように、レート制御が行われる。
【００６４】
ステップＳＴ１６において逆量子化部２１は、逆量子化処理を行う。逆量子化部２１は、量子化部１５により量子化された係数データを量子化部１５の特性に対応する特性で逆量子化する。
【００６５】
ステップＳＴ１７において逆直交変換部２２は、逆直交変換処理を行う。逆直交変換部２２は、逆量子化部２１により逆量子化された係数データを直交変換部１４の特性に対応する特性で逆直交変換する。
【００６６】
ステップＳＴ１８において加算部２３は、参照画像データの生成を行う。加算部２３は、予測画像・最適モード選択部３３から供給された予測画像データと、この予測画像データと対応するブロック位置の逆直交変換後のデータを加算して、参照画像データを生成する。
【００６７】
ステップＳＴ１９においてデブロッキングフィルタ２４は、フィルタ処理を行う。デブロッキングフィルタ２４は、加算部２３より出力された参照画像データをフィルタリングしてブロック歪みを除去する。
【００６８】
ステップＳＴ２０においてフレームメモリ２７は、参照画像データを記憶する。フレームメモリ２７は、フィルタ処理後の参照画像データを記憶する。
【００６９】
ステップＳＴ２１においてイントラ予測部３１と動き予測・補償部３２は、それぞれ予測処理を行う。すなわち、イントラ予測部３１は、イントラ予測モードのイントラ予測処理を行い、動き予測・補償部３２は、インター予測モードの動き予測・補償処理を行う。予測処理の詳細は、図７を参照して後述するが、この処理により、候補となるすべての予測モードで予測処理がそれぞれ行われ、候補となるすべての予測モードでコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測処理と最適インター予測処理が選択され、選択された予測処理で生成された予測画像データとそのコスト関数および符号化パラメータ情報が予測画像・最適モード選択部３３に供給される。
【００７０】
ステップＳＴ２２において予測画像・最適モード選択部３３は、予測画像データの選択を行う。予測画像・最適モード選択部３３は、イントラ予測部３１および動き予測・補償部３２より出力された各コスト関数値に基づいて、符号化効率が最良となる最適モードを決定する。また、予測画像・最適モード選択部３３は、決定した最適モードの予測画像データを選択して、減算部１３と加算部２３に供給する。この予測画像データは、上述したように、ステップＳＴ１３，ＳＴ１８の演算に利用される。
【００７１】
ステップＳＴ２３において予測画像・最適モード選択部３３は、符号化パラメータ情報生成処理を行う。予測画像・最適モード選択部３３は、選択した予測画像データに関する符号化パラメータ情報を最適モードの符号化パラメータ情報として直交変換部１４と可逆符号化部１６に出力する。
【００７２】
ステップＳＴ２４において可逆符号化部１６は、可逆符号化処理を行う。可逆符号化部１６は、量子化部１５より出力された量子化データを可逆符号化する。すなわち、量子化データに対して可変長符号化や算術符号化等の可逆符号化が行われて、データ圧縮される。このとき、上述したステップＳＴ２３において可逆符号化部１６に供給された符号化パラメータ情報等も可逆符号化される。さらに、量子化データを可逆符号化して生成された符号化ビットストリームのヘッダ情報に、符号化パラメータ情報等の可逆符号化データが付加される。
【００７３】
ステップＳＴ２５において蓄積バッファ１７は、蓄積処理を行う。蓄積バッファ１７は、可逆符号化部１６から出力される符号化ビットストリームを蓄積する。この蓄積バッファ１７に蓄積された符号化ビットストリームは、適宜読み出されて伝送路を介して復号側に伝送される。
【００７４】
ステップＳＴ２６においてレート制御部１８は、レート制御を行う。レート制御部１８は、蓄積バッファ１７で符号化ビットストリームを蓄積するとき、オーバーフローまたはアンダーフローが蓄積バッファ１７で発生しないように、量子化部１５の量子化動作のレートを制御する。
【００７５】
次に、図７のフローチャートを参照して、図６のステップＳＴ２１における予測処理を説明する。
【００７６】
ステップＳＴ３１において、イントラ予測部３１はイントラ予測処理を行う。イントラ予測部３１は処理対象のブロックの画像を、候補となるすべての予測モードでイントラ予測処理する。なお、イントラ予測処理では、加算部２３から供給された参照画像データが用いられる。イントラ予測は、後述するように各予測モードでイントラ予測処理が行われて、各予測モードにおけるコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、符号化効率が最も高いイントラ予測処理が選択される。
【００７７】
ステップＳＴ３２において、動き予測・補償部３２はインター予測を行う。動き予測・補償部３２は、フレームメモリ２７に記憶されているフィルタ処理後の参照画像データを用いて、各動き補償ブロックサイズでインター予測処理を行う。インター予測では、各動き補償ブロックサイズでインター予測処理が行われて、各予測ブロックにおけるコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、符号化効率が最も高いインター予測処理が選択される。
【００７８】
次に、図７のステップＳＴ３１におけるイントラ予測処理について図８のフローチャートを参照して説明する。
【００７９】
ステップＳＴ４１でイントラ予測部３１は、各予測モードおよび変換ブロックサイズで仮にイントラ予測処理を行う。イントラ予測部３１は、各予測モードおよび変換ブロックサイズで、仮に加算部２３から供給された参照画像データを用いて予測画像データの生成と、予測誤差データの生成から可逆符号化までの処理を行う。なお、イントラ予測部３１は、各イントラ予測処理において、イントラ予測処理に関する符号化パラメータ情報を直交変換部１４と可逆符号化部１６に出力する。
【００８０】
ステップＳＴ４２でイントラ予測部３１は、各予測モードと各変換ブロックサイズに対するコスト関数値を算出する。コスト関数値としては、Ｈ．２６４／ＡＶＣ方式における参照ソフトウェアであるＪＭ(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のコスト関数値の評価も含まれる。
【００９１】
ステップＳＴ５３で動き予測・補償部３２は、最適インター予測処理を決定する。動き予測・補償部３２は、ステップＳＴ５４において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である１つのインター予測処理を選択して最適インター予測処理に決定する。
【００９２】
次に、図１０のフローチャートを参照して、図６におけるステップＳＴ２３の符号化パラメータ情報生成処理について、イントラ予測処理の場合を説明する。符号化パラメータ情報は、上述のようにイントラ予測部３１で生成する。また、予測画像・最適モード選択部３３で最適モードを選択したとき、選択した予測処理に応じた符号化パラメータ情報を予測画像・最適モード選択部３３で生成するようにしてもよい。
【００９３】
ステップＳＴ６１でイントラ予測部３１は、マクロブロックサイズが１６×１６画素であるか否かを判別する。イントラ予測部３１は、マクロブロックサイズが１６×１６画素であるときステップＳＴ６２に進み、１６×１６画素でないときステップＳＴ６３に進む。
【００９４】
ステップＳＴ６２でイントラ予測部３１は、１６×１６画素における変換ブロックサイズ情報を設定してステップＳＴ６５に進む。イントラ予測部３１は、例えば直交変換部１４でＫＬ変換を行うときの変換ブロックサイズを４×４画素とするとき、変換ブロックサイズを示す変換ブロックサイズ情報を「０」に設定する。また、イントラ予測部３１は、直交変換部１４でＫＬ変換を行うときの変換ブロックサイズを８×８画素とするとき、変換ブロックサイズ情報を「１」、１６×１６画素とするとき「２」に設定する。
【００９５】
ステップＳＴ６３でイントラ予測部３１は、マクロブロックサイズが８×８画素であるか否か判別する。イントラ予測部３１は、マクロブロックサイズが８×８画素であるときステップＳＴ６４に進み、８×８画素でないときステップＳＴ６５に進む。
【００９６】
ステップＳＴ６４でイントラ予測部３１は、８×８画素における変換ブロックサイズ情報を設定してステップＳＴ６５に進む。イントラ予測部３１は、例えば直交変換部１４でＫＬ変換を行うときの変換ブロックサイズを４×４画素とするとき、変換ブロックサイズ情報を「０」に設定する。また、イントラ予測部３１は、直交変換部１４でＫＬ変換を行うときの変換ブロックサイズを８×８画素とするとき、変換ブロックサイズ情報を「１」とする。
【００９７】
ステップＳＴ６５でイントラ予測部３１は、符号化パラメータ情報を生成する。イントラ予測部３１は、イントラ予測であることを示す情報、マクロブロックサイズ、変換ブロックサイズ情報、予測モード、マクロブロック内のブロック位置等を用いて符号化パラメータ情報を構成する。
【００９８】
次に、図１１のフローチャートを参照して、直交変換処理について説明する。ステップＳＴ７１で直交変換部１４は、イントラ予測であるか否か判別する。直交変換部１４は、符号化パラメータ情報でイントラ予測であることが示されているときステップＳＴ７２に進み、イントラ予測であることが示されていないときステップＳＴ８１に進む。
【００９９】
ステップＳＴ７２で直交変換部１４は、マクロブロックサイズが１６×１６画素であるか否か判別する。直交変換部１４は、符号化パラメータ情報でマクロブロックサイズが１６×１６画素であることを示しているときステップＳＴ７３に進み、１６×１６画素であることを示していないとき、すなわち８×８画素であるときステップＳＴ７８に進む。
【０１００】
ステップＳＴ７３で直交変換部１４は、変換ブロックサイズが４×４画素であるか否か判別する。直交変換部１４は、符号化パラメータ情報で変換ブロックサイズが４×４画素であることを示しているときステップＳＴ７４に進み、４×４画素であることを示していないときステップＳＴ７５に進む。
【０１０１】
ステップＳＴ７４で直交変換部１４は、４×４直交変換処理を行う。直交変換部１４は、予測モードとブロック位置に応じて予め学習されている基底を用いて４×４画素のブロック毎にＫＬ変換を行う。ここで、１６×１６画素のブロックには、４×４画素のブロックが１６個含まれることから１６回のＫＬ変換を行う。さらに、直交変換部１４は、４×４画素のブロックについてＫＬ変換を行って得られた係数から、最低周波数成分係数を選択して、選択した４×４の係数に対して予測モードに応じた基底を用いてＫＬ変換を行う。直交変換部１４は、最低周波数成分係数に対してＫＬ変換を行って得られた係数と、最低周波数成分係数を除いた他の係数を量子化部１５に出力する。すなわち、図５に示す直交変換部１４の係数選択部１４８は、４×４ＫＬ変換部１４４，１４６から出力される係数を選択して量子化部１５に出力する。
【０１０２】
ステップＳＴ７５で直交変換部１４は、変換ブロックサイズが８×８画素であるか否か判別する。直交変換部１４は、符号化パラメータ情報で変換ブロックサイズが８×８画素であることを示しているときステップＳＴ７６に進み、８×８画素であることを示していないときステップＳＴ７７に進む。
【０１０３】
ステップＳＴ７６で直交変換部１４は、８×８直交変換処理を行う。直交変換部１４は、予測モードとブロック位置に応じて予め学習されている基底を用いて８×８画素のブロック毎にＫＬ変換を行う。ここで、１６×１６画素のブロックには、８×８画素のブロックが４個含まれることから４回のＫＬ変換を行う。さらに、直交変換部１４は、８×８画素のブロックについてＫＬ変換を行って得られた係数から、最低周波数成分係数を選択して、選択した２×２の係数に対して予測モードに応じた基底を用いてＫＬ変換を行う。直交変換部１４は、最低周波数成分係数に対してＫＬ変換を行って得られた係数と、最低周波数成分係数を除いた他の係数を量子化部１５に出力する。すなわち、図５に示す直交変換部１４の係数選択部１４８は、８×８ＫＬ変換部１４２と２×２ＫＬ変換部１４３から出力される係数を選択して量子化部１５に出力する。
【０１０４】
ステップＳＴ７７で直交変換部１４は、１６×１６直交変換処理を行う。直交変換部１４は、予測モードに応じて予め学習されている基底を用いて１６×１６画素のブロックのＫＬ変換を行い、得られた係数を量子化部１５に出力する。すなわち、図５に示す直交変換部１４の係数選択部１４８は、１６×１６ＫＬ変換部１４１から出力される係数を選択して量子化部１５に出力する。
【０１０５】
ステップＳＴ７２からステップＳＴ７８に進むと、直交変換部１４は、変換ブロックサイズが４×４画素であるか否か判別する。直交変換部１４は、符号化パラメータ情報で変換ブロックサイズが４×４画素であることを示しているときステップＳＴ７９に進み、４×４画素であることを示していないときステップＳＴ８０に進む。
【０１０６】
ステップＳＴ７９で直交変換部１４は、４×４直交変換処理を行う。直交変換部１４は、予測モードとブロック位置に応じて予め学習されている基底を用いて４×４画素のブロック毎にＫＬ変換を行う。ここで、８×８画素のブロックには、４×４画素のブロックが４個含まれることから４回のＫＬ変換を行う。さらに、４×４画素のブロックについてＫＬ変換を行って得られた係数から、最低周波数成分係数を選択して、選択した２×２の係数に対して予測モードに応じた基底を用いてＫＬ変換を行う。直交変換部１４は、最低周波数成分係数に対してＫＬ変換を行って得られた係数と、最低周波数成分係数を除いた他の係数を量子化部１５に出力する。すなわち、図５に示す直交変換部１４の係数選択部１４８は、４×４ＫＬ変換部１４４と２×２ＫＬ変換部１４６から出力される係数を選択して量子化部１５に出力する。
【０１０７】
ステップＳＴ８０で直交変換部１４は、８×８画素のブロック単位で直交変換を行う。直交変換部１４は、予測モードに応じて予め学習されている基底を用いて８×８画素のブロックのＫＬ変換を行い、得られた係数を量子化部１５に出力する。すなわち、図５に示す直交変換部１４の係数選択部１４８は、８×８ＫＬ変換部１４２から出力される係数を選択して量子化部１５に出力する。
【０１０８】
ステップＳＴ８１で直交変換部１４は、離散コサイン変換（ＤＣＴ）を行う。直交変換部１４は、離散コサイン変換を行って得られた係数を量子化部１５に出力する。すなわち、図５に示す直交変換部１４の係数選択部１４８は、ＤＣＴ部１４７から出力される係数を選択して量子化部１５に出力する。
【０１０９】
図１２は、直交変換動作を説明するための図であり、マクロブロックサイズが図１２の（Ａ）に示すように１６×１６画素であり、変換ブロックサイズが４×４画素であると、図１２の（Ｂ）に示すように、マクロブロック内には１６個の変換ブロックが含まれる。なお、ブロック内の数字はブロック位置ｌｏｃを示している。直交変換部１４の４×４ＫＬ変換部１４４は、各変換ブロックについて、各ブロックの予測モードとブロック位置に対して最適化された基底を用いてＫＬ変換を行い、図１２の（Ｃ）に示すようにブロック毎の係数を生成する。さらに、４×４ＫＬ変換部１４５は、各ブロックにおける最低周波数成分係数（斜線で示す）を用いて、図１２の（Ｄ）に示すように４×４のブロックを構成する。４×４ＫＬ変換部１４５は、このブロックに対して、予測モードに応じて最適化された基底を用いてＫＬ変換を行い、図１２の（Ｅ）に示すようにブロック毎の係数を生成する。直交変換部１４は図１２の（Ｅ）に示す係数と、図１２の（Ｃ）における最低周波数成分係数を除いた他の係数を量子化部１５に出力する。
【０１１０】
マクロブロックサイズが図１２の（Ｆ）に示すように８×８画素であり、変換ブロックサイズが４×４画素であると、図１２の（Ｇ）に示すように、マクロブロック内には４個の変換ブロックが含まれる。なお、ブロック内の数字はブロック位置ｌｏｃを示している。直交変換部１４の４×４ＫＬ変換部１４４は、各変換ブロックについて、各ブロックの予測モードとブロック位置に対して最適化された基底を用いてＫＬ変換を行い、図１２の（Ｈ）に示すようにブロック毎の係数を生成する。さらに、２×２ＫＬ変換部１４６は、各ブロックにおける最低周波数成分係数（斜線で示す）を用いて、図１２の（Ｉ）に示すように２×２のブロックを構成する。２×２ＫＬ変換部１４６は、このブロックに対して、予測モードに応じて最適化された基底を用いてＫＬ変換を行い、図１２の（Ｊ）に示すようにブロック毎の係数を生成する。直交変換部１４は図１２の（Ｊ）に示す係数と、図１２の（Ｈ）における最低周波数成分係数を除いた他の係数を量子化部１５に出力する。
【０１１１】
このように、本願発明の画像符号化装置および方法によれば、画像データの符号化時に行われる直交変換において、マクロブロック内における変換ブロックのブロック位置に応じて予め設定されている基底を用いて直交変換が行われる。したがって、ブロック位置に応じて最適化した変換を行うことが可能となり、符号化効率を改善することができる。また、ブロック位置だけでなく予測モードに応じて予め設定されている基底を用いて直交変換を行うことで、さらに最適化した直交変換を行うことが可能となり、さらに符号化効率を改善することができる。また、符号化効率を改善することで、例えば符号化ビットストリームのデータ量を増やさなくとも画質を改善できる。
【０１１２】
＜４．画像復号化装置の構成＞
入力画像を符号化して生成された符号化ビットストリームは、所定の伝送路や記録媒体等を介して画像復号化装置に供給されて復号される。
【０１１３】
図１３は、画像復号化装置の構成を示している。画像復号化装置５０は、蓄積バッファ５１、可逆復号化部５２、逆量子化部５３、逆直交変換部５４、加算部５５、デブロッキングフィルタ５６、画面並べ替えバッファ５７、ディジタル／アナログ変換部（Ｄ／Ａ変換部）５８を備えている。さらに、画像復号化装置５０は、フレームメモリ６１、イントラ予測部６２、動き補償部６３、セレクタ６４を備えている。
【０１１４】
蓄積バッファ５１は、伝送されてきた符号化ビットストリームを蓄積する。可逆復号化部５２は、蓄積バッファ５１より供給された符号化ビットストリームを、図１の可逆符号化部１６の符号化方式に対応する方式で復号化する。
【０１１５】
可逆復号化部５２は、符号化ビットストリームのヘッダ情報を復号して得られた符号化パラメータ情報をイントラ予測部６２や動き補償部６３、デブロッキングフィルタ５６に出力する。また、可逆復号化部５２は、復号化対象のブロックと復号化済みの隣接ブロックの動きベクトルを用いて予測動きベクトルの候補を設定する。可逆復号化部５２は、符号化ビットストリームを可逆復号化して得られた予測動きベクトル選択情報に基づき、予測動きベクトルの候補から動きベクトルを選択して、選択した動きベクトルを予測動きベクトルとする。また、可逆復号化部５２は、符号化ビットストリームを可逆復号化して得られた差分動きベクトルに予測動きベクトルを加算して復号化対象のブロックの動きベクトルを算出して、動き補償部６３に出力する。
【０１１６】
逆量子化部５３は、可逆復号化部５２で復号された量子化データを、図１の量子化部１５の量子化方式に対応する方式で逆量子化する。逆直交変換部５４は、図１の直交変換部１４の直交変換方式に対応する方式で逆量子化部５３の出力を逆直交変換して加算部５５に出力する。
【０１１７】
加算部５５は、逆直交変換後のデータとセレクタ６４から供給される予測画像データを加算して復号画像データを生成してデブロッキングフィルタ５６とイントラ予測部６２に出力する。
【０１１８】
デブロッキングフィルタ５６は、加算部５５から供給された復号画像データに対してフィルタ処理を行い、ブロック歪みを除去してからフレームメモリ６１に供給し蓄積させるとともに、画面並べ替えバッファ５７に出力する。
【０１１９】
画面並べ替えバッファ５７は、画像の並べ替えを行う。すなわち、図１の画面並べ替えバッファ１２により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられて、Ｄ／Ａ変換部５８に出力される。
【０１２０】
Ｄ／Ａ変換部５８は、画面並べ替えバッファ５７から供給された画像データをＤ／Ａ変換し、図示せぬディスプレイに出力することで画像を表示させる。
【０１２１】
フレームメモリ６１は、デブロッキングフィルタ２４から供給されたフィルタ処理後の復号画像データとを保持する。
【０１２２】
イントラ予測部６２は、可逆復号化部５２から供給された符号化パラメータ情報に基づいて予測画像の生成を行い、生成した予測画像データをセレクタ６４に出力する。
【０１２３】
動き補償部６３は、可逆復号化部５２から供給された符号化パラメータ情報や動きベクトルに基づいて動き補償を行い、予測画像データを生成してセレクタ６４に出力する。すなわち、動き補償部６３は、可逆復号化部５２から供給された動きベクトルおよび参照フレーム情報に基づいて、参照フレーム情報で示された参照画像に対して、動きベクトルに基づき動き補償を行い、動き補償ブロックサイズの予測画像データを生成する。
【０１２４】
セレクタ６４は、イントラ予測部６２で生成された予測画像データを加算部５５に供給する。また、セレクタ６４は、動き補償部６３で生成された予測画像データを加算部５５に供給する。
【０１２５】
＜５．逆直交変換部の構成＞
図１４は、逆直交変換部５４の構成を示している。逆直交変換部５４は、１６×１６ＫＬ逆変換部５４１、２×２ＫＬ逆変換部５４２，５４５、８×８ＫＬ逆変換部５４３、４×４ＫＬ逆変換部５４４，５４６、ＩＤＣＴ部５４７およびデータ選択部５４８を有している。
【０１２６】
１６×１６ＫＬ逆変換部５４１は、図５に示す１６×１６ＫＬ変換部１４１で行われたＫＬ変換に対応するＫＬ逆変換を行う。１６×１６ＫＬ逆変換部５４１は、可逆復号化部５２から供給された最適モードの符号化パラメータ情報が示す予測モード（最適予測モード）に応じた基底を用いて、逆量子化部５３から出力された逆量子化後データのＫＬ逆変換を行う。１６×１６ＫＬ逆変換部５４１は、ＫＬ逆変換を行うことにより得られた画像データをデータ選択部５４８に出力する。
【０１２７】
２×２ＫＬ逆変換部５４２は、図５に示す２×２ＫＬ変換部１４３で行われたＫＬ変換に対応するＫＬ逆変換を行う。２×２ＫＬ逆変換部５４２は、最適モードの符号化パラメータ情報が示す予測モードに応じた基底を用いて、逆量子化部５３から出力された逆量子化後データのＫＬ逆変換を行う。２×２ＫＬ逆変換部５４２は、ＫＬ逆変換を行うことにより得られた最低周波数成分係数を８×８ＫＬ逆変換部５４３に出力する。
【０１２８】
８×８ＫＬ逆変換部５４３は、図５に示す８×８ＫＬ変換部１４３で行われたＫＬ変換に対応するＫＬ逆変換を行う。８×８ＫＬ逆変換部５４３は、可逆復号化部５２から供給された最適モードの符号化パラメータ情報に基づいてＫＬ逆変換を行う。例えば、８×８ＫＬ逆変換部５４３は、マクロブロックサイズが１６×１６画素であるとき、最適モードの符号化パラメータ情報が示す予測モードとブロック位置に応じた基底を用いて、２×２ＫＬ逆変換部５４２から出力された最低周波数成分係数と逆量子化部５３から出力された逆量子化後データとのＫＬ逆変換を行う。８×８ＫＬ逆変換部５４３は、ＫＬ逆変換を行うことにより得られた画像データをデータ選択部５４８に出力する。また、８×８ＫＬ逆変換部５４３は、マクロブロックサイズが８×８画素であるとき、予測モードとブロック位置に応じた基底を用いて、逆量子化部５３から出力された逆量子化後データのＫＬ逆変換を行い、得られた画像データをデータ選択部５４８に出力する。
【０１２９】
４×４ＫＬ逆変換部５４４は、図５に示す４×４ＫＬ変換部１４５で行われたＫＬ変換に対応するＫＬ逆変換を行う。４×４ＫＬ逆変換部５４４は、最適モードの符号化パラメータ情報が示す予測モードに応じた基底を用いて、逆量子化部５３から出力された逆量子化後データのＫＬ逆変換を行う。４×４ＫＬ逆変換部５４４は、ＫＬ逆変換を行うことにより得られた最低周波数成分係数を４×４ＫＬ逆変換部５４６に出力する。
【０１３０】
２×２ＫＬ逆変換部５４５は、図５に示す２×２ＫＬ変換部１４６で行われたＫＬ変換に対応するＫＬ逆変換を行う。２×２ＫＬ逆変換部５４５は、最適モードの符号化パラメータ情報が示す予測モードに応じた基底を用いて、逆量子化部５３から出力された逆量子化後データのＫＬ逆変換を行う。２×２ＫＬ逆変換部５４５は、ＫＬ逆変換を行うことにより得られた最低周波数成分係数を４×４ＫＬ逆変換部５４６に出力する。
【０１３１】
４×４ＫＬ逆変換部５４６は、図５に示す４×４ＫＬ変換部１４４で行われたＫＬ変換に対応するＫＬ逆変換を行う。４×４ＫＬ逆変換部５４６は、可逆復号化部５２から供給された最適モードの符号化パラメータ情報に基づいてＫＬ逆変換を行う。例えば、４×４ＫＬ逆変換部５４６は、マクロブロックサイズが１６×１６画素であるとき、最適モードの符号化パラメータ情報が示す予測モードとブロック位置に応じた基底を用いて、４×４ＫＬ逆変換部５４４から出力された最低周波数成分係数と逆量子化部５３から出力された逆量子化後データとのＫＬ逆変換を行う。４×４ＫＬ逆変換部５４６は、ＫＬ逆変換を行うことにより得られた画像データをデータ選択部５４８に出力する。また、４×４ＫＬ逆変換部５４６は、マクロブロックサイズが８×８画素であるとき、予測モードとブロック位置に応じた基底を用いて、２×２ＫＬ逆変換部５４５から出力された最低周波数成分係数と逆量子化部５３から出力された逆量子化後データとのＫＬ逆変換を行う。４×４ＫＬ逆変換部５４６は、ＫＬ逆変換を行うことにより得られた画像データをデータ選択部５４８に出力する。
【０１３２】
ＩＤＣＴ部５４７は、逆量子化部５３から出力された逆量子化後データを用いて、逆離散コサイン変換を行い、得られた画像データをデータ選択部５４８に出力する。
【０１３３】
データ選択部５４８は、符号化パラメータ情報に基づいて、１６×１６ＫＬ逆変換部５４１、８×８ＫＬ逆変換部５４３、４×４ＫＬ逆変換部５４６、ＩＤＣＴ部５４７から出力された画像データの選択を行う。データ選択部５４８は、選択した画像データを予測誤差データとして加算部５５に出力する。
【０１３４】
＜６．画像復号化装置の動作＞
次に、図１５のフローチャートを参照して、画像復号化装置５０で行われる画像復号処理動作について説明する。
【０１３５】
ステップＳＴ９１で蓄積バッファ５１は、伝送されてきた符号化ビットストリームを蓄積する。ステップＳＴ９２で可逆復号化部５２は、可逆復号化処理を行う。可逆復号化部５２は、蓄積バッファ５１から供給される符号化ビットストリームを復号化する。すなわち、図１の可逆符号化部１６により符号化された各ピクチャの量子化データが得られる。また、可逆復号化部５２、符号化ビットストリームのヘッダ情報に含まれている符号化パラメータ情報の可逆復号化を行い、得られた符号化パラメータ情報をデブロッキングフィルタ５６やセレクタ６４に供給する。さらに、可逆復号化部５２は、符号化パラメータ情報がイントラ予測モードに関する情報である場合、符号化パラメータ情報をイントラ予測部６２に出力する。また、可逆復号化部５２は、符号化パラメータ情報がインター予測モードに関する情報である場合、符号化パラメータ情報を動き補償部６３に出力する。
【０１３６】
ステップＳＴ９３において逆量子化部５３は、逆量子化処理を行う。逆量子化部５３は、可逆復号化部５２により復号された量子化データを、図１の量子化部１５の特性に対応する特性で逆量子化する。
【０１３７】
ステップＳＴ９４において逆直交変換部５４は、逆直交変換処理を行う。逆直交変換部５４は、逆量子化部５３からの逆量子化後データに対して、図１の直交変換部１４の直交変換に対応する逆直交変換を行う。
【０１３８】
ステップＳＴ９５において加算部５５は、復号画像データの生成を行う。加算部５５は、逆直交変換処理を行うことにより得られた予測誤差データと、後述するステップＳＴ９９で選択された予測画像データを加算して復号画像データを生成する。これにより元の画像が復号される。
【０１３９】
ステップＳＴ９６においてデブロッキングフィルタ５６は、フィルタ処理を行う。デブロッキングフィルタ５６は、加算部５５より出力された復号画像データのフィルタ処理を行い、復号画像に含まれているブロック歪みを除去する。
【０１４０】
ステップＳＴ９７においてフレームメモリ６１は、復号画像データの記憶処理を行う。
【０１４１】
ステップＳＴ９８においてイントラ予測部６２と動き補償部６３は、予測処理を行う。イントラ予測部６２と動き補償部６３は、可逆復号化部５２から供給される符号化パラメータ情報に対応してそれぞれ予測処理を行う。
【０１４２】
すなわち、可逆復号化部５２から供給された符号化パラメータ情報がイントラ予測であることを示している場合、イントラ予測部６２は、符号化パラメータ情報に基づいてイントラ予測処理を行い、予測画像データを生成する。また、可逆復号化部５２から供給された符号化パラメータ情報がインター予測であることを示している場合、動き補償部６３は、符号化パラメータ情報に基づき動き補償を行い、予測画像データを生成する。
【０１４３】
ステップＳＴ９９において、セレクタ６４は予測画像データの選択を行う。すなわち、セレクタ６４は、イントラ予測部６２から供給された予測画像データと動き補償部６３で生成された予測画像データを選択して加算部５５に供給して、上述したように、ステップＳＴ９５において逆直交変換部５４の出力と加算させる。
【０１４４】
ステップＳＴ１００において画面並べ替えバッファ５７は、画像並べ替えを行う。すなわち画面並べ替えバッファ５７は、図１の画像符号化装置１０の画面並べ替えバッファ１２により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
【０１４５】
ステップＳＴ１０１において、Ｄ／Ａ変換部５８は、画面並べ替えバッファ５７からの画像データをＤ／Ａ変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
【０１４６】
次に、逆直交変換処理について、図１６に示すフローチャートを用いて説明する。ステップＳＴ１１１で逆直交変換部５４は、イントラ予測であるか否か判別する。逆直交変換部５４は、例えば可逆復号化部５２で符号化ビットストリームから取り出された符号化パラメータ情報に基づき復号化を行うブロックがイントラ予測であるか否か判別する。逆直交変換部５４は、符号化パラメータ情報がイントラ予測であることを示しているときステップＳＴ１１２に進み、イントラ予測であることを示していないとき、すなわちインター予測であるときステップＳＴ１２１に進む。
【０１４７】
ステップＳＴ１１２で逆直交変換部５４は、マクロブロックサイズが１６×１６画素であるか否か判別する。逆直交変換部５４は、符号化パラメータ情報でマクロブロックサイズが１６×１６画素であることを示しているときステップＳＴ１１３に進み、１６×１６画素であることを示していないときステップＳＴ１１８に進む。
【０１４８】
ステップＳＴ１１３で逆直交変換部５４は、変換ブロックサイズが４×４画素であるか判別する。逆直交変換部５４は符号化パラメータ情報における変換ブロックサイズ情報が「０」であるときステップＳＴ１１４に進み、「０」でないときステップＳＴ１１５に進む。
【０１４９】
ステップＳＴ１１４で逆直交変換部５４は、４×４逆直交変換処理を行う。逆直交変換部５４は、予測モードとブロック位置に応じて予め学習されている基底を用いて４×４ＫＬ逆変換を行う。マクロブロックサイズが１６×１６画素であるとき、符号化では１６回のＫＬ変換とＫＬ変換を行って得られた係数から最低周波数成分係数を選択してＫＬ変換が行われている。したがって、逆直交変換部５４は、予測モードに応じた基底を用いて、最低周波数成分係数の逆量子化後データのＫＬ逆変換を行う。また、逆直交変換部５４は、このＫＬ逆変換によって得られた最低周波数成分係数と他の成分の係数からなる１６個のブロックに対して、予測モードとブロック位置に応じた基底を用いてＫＬ逆変換を行う。逆直交変換部５４は、ＫＬ逆変換を行うことにより得られた予測誤差データを加算部５５に出力する。すなわち、図１４に示す逆直交変換部５４のデータ選択部５４８は、４×４ＫＬ逆変換部５４４の出力を用いて４×４ＫＬ逆変換部５４６でＫＬ逆変換を行うことにより得られたデータを選択して加算部５５に出力する。
【０１５０】
ステップＳＴ１１５で逆直交変換部５４は、変換ブロックサイズが８×８画素であるか判別する。逆直交変換部５４は符号化パラメータ情報における変換ブロックサイズ情報が「１」であるときステップＳＴ１１６に進み、「１」でないときステップＳＴ１１７に進む。
【０１５１】
ステップＳＴ１１６で逆直交変換部５４は、８×８逆直交変換処理を行う。逆直交変換部５４は、予測モードとブロック位置に応じて予め学習されている基底を用いて８×８ＫＬ逆変換を行う。マクロブロックサイズが１６×１６画素であるとき、符号化では４回のＫＬ変換とＫＬ変換を行って得られた係数から最低周波数成分係数を選択してＫＬ変換が行われている。したがって、逆直交変換部５４は、予測モードに応じた基底を用いて、最低周波数成分係数の逆量子化後データのＫＬ逆変換を行う。また、逆直交変換部５４は、このＫＬ逆変換によって得られた最低周波数成分係数と他の成分の係数からなる４個のブロックに対して、予測モードとブロック位置に応じた基底を用いてＫＬ逆変換を行う。逆直交変換部５４は、ＫＬ逆変換を行うことにより得られた予測誤差データを加算部５５に出力する。すなわち、図１４に示す逆直交変換部５４のデータ選択部５４８は、２×２ＫＬ逆変換部５４２の出力を用いて８×８ＫＬ逆変換部５４３でＫＬ逆変換を行うことにより得られたデータを選択して加算部５５に出力する。
【０１５２】
ステップＳＴ１１７で逆直交変換部５４は、１６×１６逆直交変換処理を行う。逆直交変換部５４は、予測モードに応じて予め学習されている基底を用いて１６×１６ＫＬ逆変換を行う。逆直交変換部５４は、ＫＬ逆変換を行うことにより得られた予測誤差データを加算部５５に出力する。すなわち、図１４に示す逆直交変換部５４のデータ選択部５４８は、１６×１６ＫＬ逆変換部５４１でＫＬ逆変換を行うことにより得られたデータを選択して加算部５５に出力する。
【０１５３】
ステップＳＴ１１２からステップＳＴ１１８に進むと、逆直交変換部５４は、変換ブロックサイズが４×４画素であるか判別する。逆直交変換部５４は符号化パラメータ情報における変換ブロックサイズ情報が「０」であるときステップＳＴ１１９に進み、「０」でないときステップＳＴ１２０に進む。
【０１５４】
ステップＳＴ１１９で逆直交変換部５４は、４×４逆直交変換処理を行う。逆直交変換部５４は、予測モードとブロック位置に応じて予め学習されている基底を用いて４×４ＫＬ逆変換処理を行う。マクロブロックサイズが８×８画素であるとき、符号化では４回のＫＬ変換とＫＬ変換を行って得られた係数から最低周波数成分係数を選択してＫＬ変換が行われている。したがって、逆直交変換部５４は、予測モードに応じた基底を用いて、最低周波数成分係数の逆量子化後データのＫＬ逆変換を行う。また、逆直交変換部５４は、このＫＬ逆変換によって得られた最低周波数成分係数と他の成分の係数からなる４個のブロックに対して、予測モードとブロック位置に応じた基底を用いてＫＬ逆変換を行う。逆直交変換部５４は、ＫＬ逆変換を行うことにより得られた予測誤差データを加算部５５に出力する。すなわち、図１４に示す逆直交変換部５４のデータ選択部５４８は、２×２ＫＬ逆変換部５４５の出力を用いて４×４ＫＬ逆変換部５４６でＫＬ逆変換を行うことにより得られたデータを選択して加算部５５に出力する。
【０１５５】
ステップＳＴ１２０で逆直交変換部５４は、８×８逆直交変換処理を行う。逆直交変換部５４は、予測モードに応じて予め学習されている基底を用いて８×８ＫＬ逆変換を行う。逆直交変換部５４は、ＫＬ逆変換を行うことにより得られた予測誤差データを加算部５５に出力する。すなわち、図１４に示す逆直交変換部５４のデータ選択部５４８は、８×８ＫＬ逆変換部５４３でＫＬ逆変換を行うことにより得られたデータを選択して加算部５５に出力する。
【０１５６】
ステップＳＴ１２１で逆直交変換部５４は、逆離散コサイン変換（ＩＤＣＴ）を行う。逆直交変換部５４は、逆離散コサイン変換を行って得られた係数を加算部５５に出力する。すなわち、図１４に示す逆直交変換部５４のデータ選択部５４８は、ＩＤＣＴ部５４７から出力されるデータを選択して加算部５５に出力する。
【０１５７】
図１７は、逆直交変換動作を説明するための図であり、図１２の直交変換動作で生成された変換係数の逆直交変換を例示している。
【０１５８】
例えば、マクロブロックサイズが１６×１６画素で変換ブロックサイズが４×４画素とする。この場合、４×４ＫＬ逆変換部５４４は、最適モードの符号化パラメータ情報が示す予測モードに応じた基底を用いて図１７の（Ａ）に示す最低周波数成分係数のＫＬ変換後データ（逆量子化データ）のＫＬ逆変換を行う。４×４ＫＬ逆変換部５４４は、このＫＬ逆変換によって、図１７の（Ｂ）に示す最も低い周波数成分の係数を生成する。４×４ＫＬ逆変換部５４６は、図１７の（Ｃ）に示すように、最低周波数成分係数と他のＫＬ変換後データ（逆量子化データ）をブロック毎の係数に戻す。さらに、４×４ＫＬ逆変換部５４６は、図１７の（Ｄ）に示すように、符号化パラメータ情報が示す予測モードとブロック位置に応じた基底を用いて１６個の４×４ブロック毎にＫＬ逆変換を行い、図１７の（Ｅ）に示す予測誤差データを生成する。データ選択部５４８は、生成された予測誤差データを選択して加算部５５に出力する。
【０１５９】
また、マクロブロックサイズが８×８画素で変換ブロックサイズが４×４画素であるとする。この場合、２×２ＫＬ逆変換部５４５は、最適モードの符号化パラメータ情報が示す予測モードに応じた基底を用いて、図１７の（Ｆ）に示す最低周波数成分係数のＫＬ変換後データ（逆量子化データ）のＫＬ逆変換を行う。２×２ＫＬ逆変換部５４５は、このＫＬ逆変換によって、図１７の（Ｇ）に示す最低周波数成分係数を生成する。４×４ＫＬ逆変換部５４６は、図１７の（Ｈ）に示すように、最低周波数成分係数と他のＫＬ変換後データ（逆量子化データ）をブロック毎の係数に戻す。さらに、４×４ＫＬ逆変換部５４６は、図１７の（Ｉ）に示すように、符号化パラメータ情報が示す予測モードとブロック位置に応じた基底を用いて４個の４×４ブロック毎にＫＬ逆変換を行い、図１７の（Ｊ）に示す予測誤差データを生成する。データ選択部５４８は、生成された予測誤差データを選択して加算部５５に出力する。
【０１６０】
次に、図１８のフローチャートを参照して、図１５のステップＳＴ９８の予測処理について説明する。
【０１６１】
ステップＳＴ１３１で可逆復号化部５２は、対象ブロックがイントラ符号化されているか否かを判定する。可逆復号化部５２は、可逆復号化を行うことにより得られた符号化パラメータ情報がイントラ予測の情報であるとき、符号化パラメータ情報をイントラ予測部６２に供給してステップＳＴ１３２に進む。また、可逆復号化部５２は、符号化パラメータ情報がイントラ予測の情報でないとき、符号化パラメータ情報を動き補償部６３に供給してステップＳＴ１３３に進む。
【０１６２】
ステップＳＴ１３２でイントラ予測部６２は、イントラ予測処理を行う。イントラ予測部６２は、加算部５５から供給された復号画像データと符号化パラメータ情報を用いてイントラ予測を行い、予測画像データを生成する。
【０１６３】
ステップＳＴ１３３で動き補償部６３は、インター予測処理を行う。動き補償部６３は、可逆復号化部５２からの符号化パラメータ情報や動きベクトルに基づいて、フレームメモリ６１から供給された復号画像データの動き補償を行う。さらに、動き補償部６３は、動き補償により生成した予測画像データをセレクタ６４に出力する。
【０１６４】
このように、本願発明の画像復号化装置および方法では、ブロック位置に応じて予め設定されている基底を用いて直交変換を行うことに得られた係数データを処理して生成された符号化ビットストリームの復号化において、符号化ビットストリームに含まれている符号化パラメータ情報で示されたマクロブロック内のブロック位置に応じて予め設定されている基底が用いられて、逆直交変換が行われる。したがって、直交変換後の係数データを直交変換前の予測誤差データに戻すことができるので、マクロブロック内のブロック位置に応じた基底を用いて直交変換が行われても、直交変換前の予測誤差データに戻すことができる。また、予測モードに応じた基底を用いて符号化が行われても、符号化パラメータ情報で示された予測モードに応じて予め設定されている基底を用いることで、直交変換後の係数データを直交変換前の予測誤差データに戻すことができる。
【０１６５】
＜７．基底の学習動作＞  
次に、直交変換部１４と逆直交変換部５４で用いられる基底を、学習動作によって予め生成する基底生成部について説明する。図１９は、基底の学習動作を示すフローチャートであり、基底生成部は、学習用に用意した画像を用いて図１９に示す処理を行い基底を生成する。なお、学習用の画像としては、画像の内容によって学習に偏りが起こらないように、なるべく異なる多くの画像を用いるようにする。
【０１６６】
ステップＳＴ１４１で基底生成部は、学習に用いていない画像が残っているか判別する。基底生成部は、学習に用いていない画像が残っているときはステップＳＴ１４２に進み、すべての画像を用いて学習が行われたときはステップＳＴ１５２に進む。
【０１６７】
ステップＳＴ１４２で基底生成部は、学習に用いていないマクロブロックが残っているか判別する。基底生成部は、学習に使う画像において、学習に用いていないマクロブロックが残っているときはステップＳＴ１４３に進み、すべてのマクロブロックを用いて学習が行われたときはステップＳＴ１４１に戻る。
【０１６８】
ステップＳＴ１４３で基底生成部は、マクロブロックサイズが１６×１６画素であるか判別する。基底生成部は、マクロブロックサイズが１６×１６画素であるときステップＳＴ１４４に進み、マクロブロックサイズが１６×１６画素でないときステップＳＴ１４８に進む。
【０１６９】
ステップＳＴ１４４で基底生成部は、１６×１６予測誤差データを生成する。基底生成部はイントラ予測を行い１６×１６画素の予測誤差データを生成する。
【０１７０】
ステップＳＴ１４５で基底生成部は、４×４直交変換の対称行列を算出する。基底生成部は、１６×１６予測誤差データを４×４画素である１６個の変換ブロックに分割して、予測モードとマクロブロック内における変換ブロックのブロック位置毎に対称行列Ｍを算出する。基底生成部は、４×４画素の変換ブロックの予測誤差データを並べて１６次のベクトルとして、１６次のベクトルの平均と各ベクトルとの差を算出する。基底生成部は、この差を「ｑ」として式（３）の演算を行い対称行列Ｍを求める。
【数１】
2011259205.tif 000003
【０１７１】
なお、式（３）において、「ｍｄｔ」はマクロブロックサイズと変換ブロックサイズを判別可能とする変換モード情報である。「ｍｉｄ」はイントラ予測の予測モードである。「ｌｏｃ」は、マクロブロック内における変換ブロックのブロック位置である。「ｎｕｍ」は学習回数である。また「Ｔ」は転置行列であることを示している。
【０１７２】
ステップＳＴ１４６で基底生成部は、８×８直交変換の対称行列を算出する。基底生成部は、１６×１６予測誤差データを８×８画素である４個の変換ブロックに分割して、予測モードとマクロブロック内における変換ブロックのブロック位置毎に対称行列Ｍを算出する。基底生成部は、８×８画素の変換ブロックの予測誤差データを並べて６４次のベクトルとして、６４次のベクトルの平均と各ベクトルとの差を算出する。基底生成部は、この差を「ｑ」として式（３）の演算を行い対称行列Ｍを求める。
【０１７３】
ステップＳＴ１４７で基底生成部は、１６×１６直交変換の対称行列を算出する。基底生成部は、予測モード毎に１６×１６画素の変換ブロックの予測誤差データを並べて２５６次のベクトルとして、２５６次のベクトルの平均と各ベクトルとの差を算出する。基底生成部は、この差を「ｑ」として式（３）の演算を行い、予測モード毎に対称行列Ｍを求める。
【０１７４】
ステップＳＴ１４３からステップＳＴ１４８に進むと、基底生成部は、マクロブロックサイズが８×８画素であるか判別する。基底生成部は、マクロブロックサイズが８×８画素であるときステップＳＴ１４９に進み、マクロブロックサイズが８×８画素でないときステップＳＴ１４２に戻る。
【０１７５】
ステップＳＴ１４９で基底生成部は、８×８予測誤差データを生成する。基底生成部はイントラ予測を行い８×８画素の予測誤差データを生成する。
【０１７６】
ステップＳＴ１５０で基底生成部は、４×４直交変換の対称行列を算出する。基底生成部は、８×８予測誤差データを４×４画素である４個の変換ブロックに分割して、予測モードとマクロブロック内における変換ブロックのブロック位置毎に対称行列Ｍを算出する。基底生成部は、４×４画素の変換ブロックの予測誤差データを並べて１６次のベクトルとして、１６次のベクトルの平均と各ベクトルとの差を算出する。基底生成部は、この差を「ｑ」として式（３）の演算を行い対称行列Ｍを求める。
【０１７７】
ステップＳＴ１５１で基底生成部は、８×８直交変換の対称行列を算出する。基底生成部は、予測モード毎に８×８画素の変換ブロックの予測誤差データを並べて６４次のベクトルとして、６４次のベクトルの平均と各ベクトルとの差を算出する。基底生成部は、この差を「ｑ」として式（３）の演算を行い、予測モード毎に対称行列Ｍを求める。
【０１７８】
ステップＳＴ１５２で基底生成部は、ＫＬ変換の基底を算出する。基底生成部は、各対称行列Ｍの固有値に対応する固有ベクトルを求め、固有値の大きさの順に固有ベクトルを並べて、ＫＬ変換の基底とする。
【０１７９】
このような処理を行うと、１６×１６ＫＬ変換部１４１、８×８ＫＬ変換部１４２、２×２ＫＬ変換部１４３，１４６、４×４ＫＬ変換部１４４，１４５でＫＬ変換を行うときの基底を生成できる。また、各基底の逆行列の算出を行うことで、１６×１６ＫＬ逆変換部５４１、２×２ＫＬ逆変換部５４２，５４５、８×８ＫＬ逆変換部５４３、４×４ＫＬ逆変換部５４４，５４６でＫＬ逆変換を行うときの基底を生成できる。
【０１８０】
さらに、マクロブロックサイズ毎と予測モード毎およびマクロブロック内のブロック位置毎に各ブロックのＫＬ変換やＫＬ逆変換を行うための基底を、画像符号化装置と画像復号化装置のそれぞれで記憶すると、記憶しておく基底の数が多くなってしまう。すなわち、容量の大きいメモリが必要となる。そこで、基底のグループ化を行い、記憶する基底を削減する。
【０１８１】
次に、グループ化の方法について、２つの方法を例示する。第１の方法は、学習で求めた基底について、基底間でユークリッド距離を計算し、距離が小さいものをグループ化して、グループ内の複数の基底を代表する１つの基底に置き換える。このようにグループ化を行えば、基底の数を削減できる。
【０１８２】
第２の方法は、参照画素かの距離に応じてグループ化する方法である。図２０に示すように、予測モード０(Vertical)では、例えばＧｒｏｕｐ１＝｛Ｐ4，Ｐ5，Ｐ6，Ｐ7｝のブロックは 参照画素からの距離が等しくなる。このような場合、画素Ｐ4，Ｐ5，Ｐ6，Ｐ7の予測誤差は同じような特性になる場合が多い。そこで、このＧｒｏｕｐ１はすべて同じ基底を採用する。同様に、Ｇｒｏｕｐ０，２，３も同じ基底を採用することで、１６種類から４種類に基底を削減できる。
【０１８３】
同様に、予測モード１(horizontal)では、例えばＧｒｏｕｐ１＝｛Ｐ1，Ｐ5，Ｐ9，Ｐ13｝のブロックは 参照画素からの位置関係（あるいは距離）が等しくなる。このような場合、画素Ｐ1，Ｐ5，Ｐ9，Ｐ13の予測誤差は同じような特性になる場合が多い。そこで、このＧｒｏｕｐ１はすべて同じ基底を採用する。同様に、Ｇｒｏｕｐ０，２，３も同じ基底を採用することで、１６種類から４種類に基底を削減できる。
【０１８４】
また、予測モード４(diagonal down-right)では、参照画素と各ブロックの位置関係が同じにならない。しかし、９０度回転することでＰ3，Ｐ12は参照画素との位置関係が同じになる。そこで、９０度回転することで参照画素との位置関係が同じとなる｛Ｐ1，Ｐ4｝}，｛Ｐ2，Ｐ8｝，｛Ｐ6，Ｐ9｝，｛Ｐ7，Ｐ13｝，｛Ｐ11，Ｐ14｝をそれぞれグループ化して同じ基底を採用する。
【０１８５】
さらに、予測モード０(Vertical)を９０度回転したときの参照画素と各ブロックの位置関係は、予測モード１(horizontal)と等しくなることから、予測モード０(Vertical)と予測モード１(horizontal)をグループ化すれば、さらに基底を削減できることになる。
【０１８６】
＜８．ソフトウェア処理の場合＞
明細書中において説明した一連の処理はハードウェア、またはソフトウェア、または両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させる。または、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることも可能である。
【０１８７】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（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）等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
【０２３６】
制御部９７０は、ＣＰＵやメモリ等を用いて構成されている。メモリは、ＣＰＵにより実行されるプログラムやＣＰＵが処理を行う上で必要な各種のデータ等を記憶する。メモリに記憶されているプログラムは、撮像装置９６の起動時などの所定のタイミングでＣＰＵにより読み出されて実行される。ＣＰＵは、プログラムを実行することで、撮像装置９６がユーザ操作に応じた動作となるように各部を制御する。
【０２３７】
このように構成された撮像装置では、画像データ処理部９６４に本願の画像符号化装置（画像符号化方法）や画像復号化装置（画像復号化方法）の機能が設けられる。したがって、撮像画像をメモリ部９６７や記録メディア等に記録する際に、符号化効率や画質の改善をはかり撮像画像の記録再生を効率よく行うことができる。
【０２３８】
さらに、本発明は、上述した発明の実施の形態に限定して解釈されるべきではない。例えば、上述のマクロブロックサイズや変換ブロックサイズおよび予測モードに限定されるべきではない。この発明の実施の形態は、例示という形態で本発明を開示しており、本発明の要旨を逸脱しない範囲で当業者が実施の形態の修正や代用をなし得ることは自明である。すなわち、本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【産業上の利用可能性】
【０２３９】
この発明の画像復号化装置と画像符号化装置およびその方法とプログラムでは、画像データの符号化時に行われる直交変換において、マクロブロック内における変換ブロックのブロック位置に応じて予め設定されている基底を用いて直交変換が行われる。また、ブロック位置に応じて予め設定されている基底を用いて直交変換を行うことに得られた係数データを処理して生成された符号化ビットストリームの復号化において、符号化ビットストリームに含まれている符号化パラメータ情報で示されたマクロブロック内のブロック位置に応じて予め設定されている基底が用いられて、逆直交変換が行われて、直交変換後の係数データが直交変換前の予測誤差データに戻される。このように、マクロブロック内のブロック位置に応じた基底を用いて直交変換や逆直交変換が行われるので、ブロック位置に応じて最適化した変換を行うことが可能となり、符号化効率を改善することができる。したがって、ＭＰＥＧ、Ｈ.２６ｘ等のように、ブロック単位で符号化を行うことにより得られた画像情報（符号化ビットストリーム）を、衛星放送、ケーブルＴＶ、インターネット、携帯電話などのネットワークメディアを介して送受信する際に、若しくは光、磁気ディスク、フラッシュメモリのような記憶メディア上で処理する際に用いられる画像復号化装置や画像符号化装置等に適している。
【符号の説明】
【０２４０】
１０・・画像符号化装置、１１・・・Ａ／Ｄ変換部、１２，５７・・・画面並べ替えバッファ、１３・・・減算部、１４・・・直交変換部、１５・・・量子化部、１６・・・可逆符号化部、１７，５１・・・蓄積バッファ、１８・・・レート制御部、２１，５３・・・逆量子化部、２２，５４・・・逆直交変換部、２３，５５・・・加算部、２４，５６・・・デブロッキングフィルタ、２７，６１・・・フレームメモリ、３１，６２・・・イントラ予測部、３２，６３・・・動き予測・補償部、３３・・・予測画像・最適モード選択部、５０・・・画像復号化装置、５２・・・可逆復号化部、５８・・・Ｄ／Ａ変換部、６４，９４６・・・セレクタ、９０・・・テレビジョン装置、９２・・・携帯電話機、９４・・・記録再生装置、９６・・・撮像装置、１４１・・・１６×１６ＫＬ変換部、１４２・・・８×８ＫＬ変換部、１４３，１４６・・・２×２ＫＬ変換部、１４４，１４５・・・４×４ＫＬ変換部、１４７・・・ＤＣＴ部、１４８・・・係数選択部、５４１・・・１６×１６ＫＬ逆変換部、５４２，５４５・・・２×２ＫＬ逆変換部、５４３・・・８×８ＫＬ逆変換部、５４４，５４６・・・ＫＬ逆変換部、５４７・・・ＩＤＣＴ部、５４８・・・データ選択部、９０１、９２１・・・アンテナ、９０２、９４１・・・チューナ、９０３・・・デマルチプレクサ、９０４，９４７・・・デコーダ、９０５・・・映像信号処理部、９０６・・・表示部、９０７・・・音声信号処理部、９０８・・・スピーカ、９０９、９４２、９６６・・・外部インタフェース部、９１０、９３１，９４９，９７０・・・制御部、９１１，９３２，９７１・・・ユーザインタフェース部、９１２，９３３，９７２・・・バス、９２２・・・通信部、９２３・・・音声コーデック、９２４・・・スピーカ、９２５・・・マイクロホン、９２６・・・カメラ部、９２７・・・画像処理部、９２８・・・多重分離部、９２９・・・記録再生部、９３０・・・表示部、９４３・・・エンコーダ、９４４・・・ＨＤＤ部、９４５・・・ディスクドライブ、９４８、９６９・・・ＯＳＤ部、９６１・・・光学ブロック、９６２・・・撮像部、９６３・・・カメラ信号処理部、９６４・・・画像データ処理部、９６５・・・表示部、９６７・・・メモリ部、９６８・・・メディアドライブ
【図１】
2011259205.tif 000004
【図２】
2011259205.tif 000005
【図３】
2011259205.tif 000006
【図４】
2011259205.tif 000007
【図５】
2011259205.tif 000008
【図６】
2011259205.tif 000009
【図７】
2011259205.tif 000010
【図８】
2011259205.tif 000011
【図９】
2011259205.tif 000012
【図１０】
2011259205.tif 000013
【図１１】
2011259205.tif 000014
【図１２】
2011259205.tif 000015
【図１３】
2011259205.tif 000016
【図１４】
2011259205.tif 000017
【図１５】
2011259205.tif 000018
【図１６】
2011259205.tif 000019
【図１７】
2011259205.tif 000020
【図１８】
2011259205.tif 000021
【図１９】
2011259205.tif 000022
【図２０】
2011259205.tif 000023
【図２１】
2011259205.tif 000024
【図２２】
2011259205.tif 000025
【図２３】
2011259205.tif 000026
【図２４】
2011259205.tif 000027