(57)【特許請求の範囲】
【請求項１】
周波数領域から時間領域への複数の変換モードを必要に応じて切り換えて、圧縮画像データを復号化する画像復号化装置であって、
入力される複数の画素データに対して、演算処理を施すための演算部と、
前記演算部による演算結果を保存する演算データ保存部と、
前記演算部に入力すべき画素データを、前記圧縮画像データから読み出すか、または前記演算データ保存部に保存されている画素データから読み出すか選択し、読み出した画素データを前記演算部に入力する入力選択部と、
各変換モードでの演算手順を、前記演算部における１回の演算で実行可能な単位毎に、演算回数に対応させて予め定義しており、使用する前記変換モードおよび前記演算部における演算回数に基づいて、前記入力選択部が前記演算部に入力すべき画素データの読み出し先を制御すると共に、前記演算部において演算処理の対象となる前記画素データの組み合わせおよび演算処理における乗算係数を制御する演算制御部とを備え、
前記演算部は、基本単位となる演算処理を実行可能な構成を有しており、
前記演算制御部は、各変換モードでの演算手順を、演算回数毎に、前記基本単位となる演算処理に分割して定義しており、前記基本単位となる演算処理を前記演算部に繰り返させるように、前記演算処理の対象となる画素データの組み合わせを制御すると共に、前記乗算係数を制御し、
前記演算制御部は、
前記演算回数と、前記乗算係数と、前記画像データの読み出し先の情報とを対応付けた設定情報を、前記変換モードごとに保存する乗数保存部と、
前記演算部での演算順序を管理する演算順序管理部とを含む、画像復号化装置。
【請求項２】
前記演算部は、整数演算を実行可能な構成を有しており、
前記演算制御部は、前記整数演算の対象となる画素データの組み合わせを制御すると共に、前記演算部におけるビットシフト量を前記乗算係数として制御する、請求項１に記載の画像復号化装置。
【請求項３】
前記演算部は、
第１〜第８の端子と、
前記第２の端子への入力をビットシフトする第１のビット演算部と、
前記第３の端子への入力をビットシフトする第２のビット演算部と、
前記第６の端子への入力をビットシフトする第３のビット演算部と、
前記第７の端子への入力をビットシフトする第４のビット演算部と、
前記第１の端子への入力と前記第２のビット演算部の出力とを加算する第１の加算部と、
前記第１のビット演算部の出力から前記第４の端子への入力を減算する第１の減算部と、
前記第４のビット演算部の出力から前記第５の端子への入力を減算する第２の減算部と、
前記第８の端子への入力と前記第３のビット演算部の出力とを加算する第２の加算部とを含み、
前記演算データ保存部は、前記第１および第２の加算部、ならびに前記第１および第２の減算部の演算結果を保存し、
前記演算制御部は、前記変換モードおよび前記演算回数に基づいて、前記第１〜第８の端子に入力すべき画素データを制御し、かつ、前記第１〜第４のビット演算部でのビットシフト量を制御する、請求項２に記載の画像復号化装置。
【請求項４】
前記複数の変換モードは、４×４逆整数変換、８×８逆整数変換、およびアダマール変換の内、少なくともいずれか２つの変換モードである、請求項２に記載の画像復号化装置。
【請求項５】
前記基本単位となる演算処理は、２入力２出力のデータフローを構成することができる演算処理である、請求項１に記載の画像復号化装置。
【請求項６】
前記演算制御部は、新たな変換モードに関する画素データの組み合わせおよび乗算係数を、演算回数に対応させて保存することができ、前記新たな変換モードが使用される場合、当該保存内容に基づいて、前記入力選択部および前記演算部を制御する、請求項１に記載の画像復号化装置。
【請求項７】
前記演算部は、
第１〜第４の端子と、
前記第１の端子への入力に対して乗算処理を施す第１の乗算部と、
前記第３の端子への入力に対して乗算処理を施す第２の乗算部と、
前記第２の端子への入力に対して乗算処理を施す第３の乗算部と、
前記第４の端子への入力に対して乗算処理を施す第４の乗算部と、
前記第１の乗算部の出力と前記第２の乗算部の出力とを加算する第１の加算部と、
前記第３の乗算部の出力と前記第４の乗算部の出力とを加算する第２の加算部とを含み、
前記演算データ保存部は、前記第１および第２の加算部の演算結果を保存し、
前記演算制御部は、前記変換モードおよび前記演算回数に基づいて、前記第１〜第４の端子に入力すべき画素データを前記入力選択部に制御させ、かつ、前記第１〜第４の乗算部での前記乗算係数である乗数を制御する、請求項１に記載の画像復号化装置。
【請求項８】
前記演算制御部は、
前記第１〜第４の乗算部での前記乗数を設定する乗数設定部と、
変換モードを管理する変換モード設定部とをさらに含み、
前記乗数設定部は、前記変換モード設定部が管理する現在の変換モードおよび前記演算順序管理部が管理する前記演算回数に基づいて、前記乗数保存部から、適切な乗数を読み出して、前記第１〜第４の乗算部に設定し、
前記演算順序管理部は、前記現在の変換モードおよび前記演算回数に基づいて、前記第１〜第４の端子に入力すべき画素データを前記入力選択部に制御させる、請求項７に記載の画像復号化装置。
【請求項９】
前記演算制御部は、さらに、
新たな変換モードで使用する乗数を演算回数と対応付けて設定するための乗数設定部と、
前記乗数設定部で設定された乗数を保存する新変換モード乗数保存部とを含み、
前記新たな変換モードが使用された場合、
前記乗数設定部は、演算回数に対応した乗数を前記新変換モード乗数保存部から読み出して、前記第１〜第４の乗算部に設定し、
前記演算順序管理部は、演算回数に基づいて、前記第１〜第４の端子に入力すべき画素データを前記入力選択部に制御させる、請求項８に記載の画像復号化装置。
【請求項１０】
前記複数の変換モードは、逆離散コサイン変換、４×４逆整数変換、８×８逆整数変換、およびアダマール変換の内、少なくともいずれか２つの変換モードである、請求項１に記載の画像復号化装置。
【請求項１１】
前記演算部が複数並列または直列に接続されており、
前記演算制御部は、並列または直列に接続された、前記複数の演算部を制御する、請求項１に記載の画像復号化装置。
【請求項１２】
時間領域から周波数領域への複数の変換モードを必要に応じて切り換えて、画像データを符号化する画像符号化装置であって、
入力される複数の画素データに対して、演算処理を施すための演算部と、
前記演算部による演算結果を保存する演算データ保存部と、
前記演算部に入力すべき画素データを、前記画像データから読み出すか、または前記演算データ保存部に保存されている画素データから読み出すか選択し、読み出した画素データを前記演算部に入力する入力選択部と、
各変換モードでの演算手順を、前記演算部における１回の演算で実行可能な単位毎に、演算回数に対応させて予め定義しており、使用する前記変換モードおよび前記演算部における演算回数に基づいて、前記入力選択部が前記演算部に入力すべき画素データの読み出し先を制御すると共に、前記演算部において演算処理の対象となる前記画素データの組み合わせおよび演算処理における乗算係数を制御する演算制御部とを備え、
前記演算部は、基本単位となる演算処理を実行可能な構成を有しており、
前記演算制御部は、各変換モードでの演算手順を、演算回数毎に、前記基本単位となる演算処理に分割して定義しており、前記基本単位となる演算処理を前記演算部に繰り返させるように、前記演算処理の対象となる画素データの組み合わせを制御すると共に、前記乗算係数を制御し、
前記演算制御部は、
前記演算回数と、前記乗算係数と、前記画像データの読み出し先の情報とを対応付けた設定情報を、前記変換モードごとに保存する乗数保存部と、
前記演算部での演算順序を管理する演算順序管理部とを含む、画像符号化装置。
【請求項１３】
前記演算部は、整数演算を実行可能な構成を有しており、
前記演算制御部は、前記整数演算の対象となる画素データの組み合わせを制御すると共に、前記演算部におけるビットシフト量を前記乗算係数として制御する、請求項１２に記載の画像符号化装置。
【請求項１４】
前記演算部は、
第１〜第８の端子と、
前記第２の端子への入力をビットシフトする第１のビット演算部と、
前記第３の端子への入力をビットシフトする第２のビット演算部と、
前記第６の端子への入力をビットシフトする第３のビット演算部と、
前記第７の端子への入力をビットシフトする第４のビット演算部と、
前記第１の端子への入力をビットシフトする第５のビット演算部と、
前記第４の端子への入力をビットシフトする第６のビット演算部と、
前記第５の端子への入力をビットシフトする第７のビット演算部と、
前記第８の端子への入力をビットシフトする第８のビット演算部と、
前記第５のビット演算部の出力と前記第２のビット演算部の出力とを加算する第１の加算部と、
前記第１のビット演算部の出力から前記第６のビット演算部の出力を減算する第１の減算部と、
前記第４のビット演算部の出力から前記第７のビット演算部の出力を減算する第２の減算部と、
前記第８のビット演算部の出力と前記第３のビット演算部の出力とを加算する第２の加算部とを含み、
前記演算データ保存部は、前記第１および第２の加算部、ならびに前記第１および第２の減算部の演算結果を保存し、
前記演算制御部は、前記変換モードおよび前記演算回数に基づいて、前記第１〜第８の端子に入力すべき画素データを制御し、かつ、前記第１〜第４のビット演算部でのビットシフト量を制御する、請求項１３に記載の画像符号化装置。
【請求項１５】
前記複数の変換モードは、４×４逆整数変換、８×８逆整数変換、４×４整数変換、８×８整数変換、およびアダマール変換の内、少なくともいずれか２つの変換モードである、請求項１３に記載の画像符号化装置。
【請求項１６】
前記基本単位となる演算処理は、２入力２出力のデータフローを構成することができる演算処理である、請求項１２に記載の画像符号化装置。
【請求項１７】
前記演算制御部は、新たな変換モードに関する画素データの組み合わせおよび乗算係数を、演算回数に対応させて保存することができ、前記新たな変換モード が使用される場合、当該保存内容に基づいて、前記入力選択部および前記演算部を制御する、請求項１２に記載の画像符号化装置。
【請求項１８】
前記演算部は、
第１〜第４の端子と、
前記第１の端子への入力に対して乗算処理を施す第１の乗算部と、
前記第３の端子への入力に対して乗算処理を施す第２の乗算部と、
前記第２の端子への入力に対して乗算処理を施す第３の乗算部と、
前記第４の端子への入力に対して乗算処理を施す第４の乗算部と、
前記第１の乗算部の出力と前記第２の乗算部の出力とを加算する第１の加算部と、
前記第３の乗算部の出力と前記第４の乗算部の出力とを加算する第２の加算部とを含み、
前記演算データ保存部は、前記第１および第２の加算部の演算結果を保存し、
前記演算制御部は、前記変換モードおよび前記演算回数に基づいて、前記第１〜第４の端子に入力すべき画素データを前記入力選択部に制御させ、かつ、前記第１〜第４の乗算部での前記乗算係数である乗数を制御する、請求項１２に記載の画像符号化装置。
【請求項１９】
前記演算制御部は、
前記第１〜第４の乗算部での前記乗数を設定する乗数設定部と、
変換モードを管理する変換モード設定部とをさらに含み、
前記乗数設定部は、前記変換モード設定部が管理する現在の変換モードおよび前記演算順序管理部が管理する前記演算回数に基づいて、前記乗数保存部から、適切な乗数を読み出して、前記第１〜第４の乗算部に設定し、
前記演算順序管理部は、前記現在の変換モードおよび前記演算回数に基づいて、前記第１〜第４の端子に入力すべき画素データを前記入力選択部に制御させる、請求項１８に記載の画像符号化装置。
【請求項２０】
前記演算制御部は、さらに、
新たな変換モードで使用する乗数を演算回数と対応付けて設定するための乗数設定部と、
前記乗数設定部で設定された乗数を保存する新変換モード乗数保存部とを含み、
前記新たな変換モードが使用された場合、
前記乗数設定部は、演算回数に対応した乗数を前記新変換モード乗数保存部から読み出して、前記第１〜第４の乗算部に設定し、
前記演算順序管理部は、演算回数に基づいて、前記第１〜第４の端子に入力すべき画素データを前記入力選択部に制御させる、請求項１９に記載の画像符号化装置。
【請求項２１】
前記複数の変換モードは、逆離散コサイン変換、４×４逆整数変換、８×８逆整数変換、離散コサイン変換、４×４整数変換、８×８整数変換、およびアダマール変換の内、少なくともいずれか２つの変換モードである、請求項１２に記載の画像符号化装置。
【請求項２２】
前記演算部が複数並列または直列に接続されており、
前記演算制御部は、並列または直列に接続された、前記複数の演算部を制御する、請求項１２に記載の画像符号化装置。
【請求項２３】
周波数領域から時間領域への複数の変換モードを必要に応じて切り換えて、圧縮画像データを復号化する画像復号化装置で用いられる集積回路であって、
入力される複数の画素データに対して、演算処理を施すための演算部と、
前記演算部に入力すべき画素データを、前記圧縮画像データから読み出すか、または前記演算部の演算結果から読み出すか選択し、読み出した画素データを前記演算部に入力する入力選択部と、
各変換モードでの演算手順を、前記演算部における１回の演算で実行可能な単位毎に、演算回数に対応させて予め定義しており、使用する前記変換モードおよび前記演算部における演算回数に基づいて、前記入力選択部が前記演算部に入力すべき画素データの読み出し先を制御すると共に、前記演算部において演算処理の対象となる前記画素データの組み合わせおよび演算処理における乗算係数を制御する演算制御部とを備え、
前記演算部は、基本単位となる演算処理を実行可能な構成を有しており、
前記演算制御部は、各変換モードでの演算手順を、演算回数毎に、前記基本単位となる演算処理に分割して定義しており、前記基本単位となる演算処理を前記演算部に繰り返させるように、前記演算処理の対象となる画素データの組み合わせを制御すると共に、前記乗算係数を制御し、
前記演算制御部は、
前記演算回数と、前記乗算係数と、前記画像データの読み出し先の情報とを対応付けた設定情報を、前記変換モードごとに保存する乗数保存部と、
前記演算部での演算順序を管理する演算順序管理部とを含む、集積回路。
【請求項２４】
時間領域から周波数領域への複数の変換モードを必要に応じて切り換えて、画像データを符号化する画像符号化装置で用いられる集積回路であって、
入力される複数の画素データに対して、演算処理を施すための演算部と、
前記演算部に入力すべき画素データを、前記画像データから読み出すか、または前記演算部の演算結果から読み出すか選択し、読み出した画素データを前記演算部に入力する入力選択部と、
各変換モードでの演算手順を、前記演算部における１回の演算で実行可能な単位毎に、演算回数に対応させて予め定義しており、使用する前記変換モードおよび前記演算部における演算回数に基づいて、前記入力選択部が前記演算部に入力すべき画素データの読み出し先を制御すると共に、前記演算部において演算処理の対象となる前記画素データの組み合わせおよび演算処理における乗算係数を制御する演算制御部とを備え、
前記演算部は、基本単位となる演算処理を実行可能な構成を有しており、
前記演算制御部は、各変換モードでの演算手順を、演算回数毎に、前記基本単位となる演算処理に分割して定義しており、前記基本単位となる演算処理を前記演算部に繰り返させるように、前記演算処理の対象となる画素データの組み合わせを制御すると共に、前記乗算係数を制御し、
前記演算制御部は、
前記演算回数と、前記乗算係数と、前記画像データの読み出し先の情報とを対応付けた設定情報を、前記変換モードごとに保存する乗数保存部と、
前記演算部での演算順序を管理する演算順序管理部とを含む、集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化装置および画像復号化装置、ならびにそれらで用いられる集積回路であって、時間領域と周波数領域との間の変換および逆変換に特徴を有する画像符号化装置および画像復号化装置、ならびにそれらで用いられる集積回路に関する。
【背景技術】
【０００２】
動画像符号化方式として、既にデジタル放送やＤＶＤなどでＭＰＥＧ−２が、インターネット・ストリーミングや移動体通信などの分野でＭＰＥＧ−４が用いられている。さらに圧縮効率のよい符号化方式が、ＪＶＴ（Ｊｏｉｎｔ Ｖｉｄｅｏ Ｔｅａｍ）によって標準化された。この符号化方式は、「Ｈ．２６４／ＭＰＥＧ−４ ＡＶＣ」や「ＭＰＥＧ−４ ｐａｒｔ１０」として知られている（以下、Ｈ．２６４と示す）。
【０００３】
ＭＰＥＧ−２やＭＰＥＧ−４のように、画面内相関関係によって圧縮（符号化）する方式では、まず、８×８画素のブロックが離散コサイン変換（ＤＣＴ）され、時間領域から周波数領域へ変換される。次に、得られた周波数領域の各係数が、ある除数（量子化ステップ）で割り算され、余りが丸められる。これによって、符号化および圧縮が行われる。逆に、復号処理においては、８×８画素のブロックに対して量子化ステップが掛け算され、逆量子化が行われる。逆量子化の後、逆離散コサイン変換（ＩＤＣＴ）が行われ、周波数領域から時間領域への変換が行われる。
【０００４】
一方、Ｈ．２６４では、符号化の際、１６×１６画素からなるマクロブロックが４×４画素のブロックに分ける。得られた４×４ブロックは、それを一つの単位として、ビットシフトおよび加減算によって、時間領域から周波数領域へ変換される。逆に、復号化の際は、周波数領域として得られている４×４ブロックが、ビットシフトおよび加減算によって、周波数領域から時間領域へ変換される。このように、ビットシフトおよび加減算によって、時間領域を周波数領域へ変換する変換を整数変換という。また、ビットシフトおよび加減算によって、周波数領域を時間領域へ変換する変換を逆整数変換と呼ぶ（非特許文献１参照）。
【０００５】
さらに、Ｈ．２６４では、時間領域から周波数領域への変換の際、１６×１６画素単位のフレーム内符号化（以下、Ｉｎｔｒａ１６×１６モードという）および色差の符号化では、整数変換を行った後、整数変換後に得られるＤＣ成分に対してアダマール変換を行う（非特許文献１参照）。図３０は、Ｉｎｔｒａ１６×１６モードでの画素データの変換の流れを示す図である。まず、時間領域の輝度の１６×１６画素に対して、４×４画素単位で整数変換が行われ、周波数領域に変換される。次に、整数変換後の４×４画素単位に含まれるＤＣ成分を抽出してできる４×４行列に対してアダマール変換による圧縮が行われる。その後、アダマール変換による圧縮が行われたＤＣ成分が量子化されると共に、ＤＣ成分以外の整数変換されたデータが量子化される。これによって、Ｉｎｔｒａ１６×１６モードでの符号化が実現される。
【０００６】
図３１は、Ｈ．２６４における復号化の処理手順を示す図である。まず、符号化されているデータが、Ｉｎｔｒａ１６×１６モードで符号化されているか、色差であるか、それ以外であるかが判断される（ステップＳ９０１）。Ｉｎｔｒａ１６×１６モードで符号化されている場合、符号化されているデータは、ＤＣ成分がアダマール変換され（ステップＳ９０２）、アダマール変換されたＤＣ成分、およびその他の成分が逆量子化される（ステップＳ９０３）。符号化されているデータが色差である場合、符号化されているデータは、ＤＣ成分がアダマール変換され（ステップＳ９０４）、アダマール変換されたＤＣ成分、およびその他の成分が逆量子化される（ステップＳ９０５）。符号化されているデータがその他のデータである場合、逆量子化される（ステップＳ９０６）。その後、逆量子化されたデータは、逆整数変換されて、復号化される（ステップＳ９０７）。
【０００７】
数１は、ステップＳ９０２，９０４において、ＤＣ成分のみの４×４行列Ｃ（ｃij）（ｉ，ｊ＝１，１，２，３）をアダマール変換するときの変換式である。数１において、４×４行列Ｃ（Ｃij）に、アダマール変換行列Ａを左右から乗算することによって、アダマール変換後の４×４行列ｆが得られる（非特許文献１の１３１頁、式（８−２５４）参照）。
【数１】
0004704333.tif 000002
【０００８】
数２は、ステップＳ９０７において、周波数領域の成分ｄij（ｉ，ｊ＝０，１，２，３）を逆整数変換し、時間領域の成分ｆij（ｉ，ｊ＝０，１，２，３）を得るための演算式を示す。数２で示す演算式を用いて、まず、周波数領域における任意のｉ（＝０，１，２，３）に対して、成分ｅi0〜ｅi3および成分ｆi0〜ｆi3が求められる（非特許文献１の１３３頁、式（８−２６６）〜（８−２７３）参照）。さらに、成分ｆijを転置して（ｉとｊとを入れ替えて）、転置によって得られた成分を成分ｄijとして、再度、成分ｅi0〜ｅi3および成分ｆi0〜ｆi3が求められる。最終的に求められた成分ｆijが逆整数変換によって得られた時間領域の成分となる。なお、数２において、（ｘ＞＞ｋ）は、ｘを右方向にｋビットシフトすることを意味する（以下同様）。また、（ｘ＜＜ｋ）は、ｘを左方向にｋビットシフトすることを意味する（以下同様）。
【数２】
0004704333.tif 000003
【０００９】
さらに、１６×１６画素からなるマクロブロックにおいて、処理ブロックサイズを適応的に変化させて、サイズが変化されたブロックを整数変換する場合が提案されている（非特許文献２参照）。数３は、処理ブロックサイズを８×８としたときの逆整数変換のための変換式を示す（非特許文献２の１４２頁、式（１２−１０）および（１２−１２）参照）。数３において、８×８行列Ｗ（ｗij）（ｉ，ｊ＝０，１，…，７）は、逆整数変換するための周波数領域を示す。８×８行列Ｔは、逆整数変換のための行列である。８×８行列Ｘは、逆整数変換後の時間領域を示す。数３に示す変換式によって、逆整数変換後の時間領域を得ることができる。
【数３】
0004704333.tif 000004
【００１０】
数４に示すように、数３に示す行列Ｔの代わりとして、逆整数変換のための行列Ｔａが提案されている（非特許文献３の１６５頁〜１６６頁、式（８−３４１）〜（８−３５６）参照）。
【数４】
0004704333.tif 000005
【００１１】
数５は、数４に示す行列Ｔａを用いて逆整数変換を行う場合の演算式を示す。数５において、ｉｎ［ｊ］は、行として任意のｉ（ｉ＝０，１，…７）を選んだときの、ｗijを示す。行として任意のｉを選ぶと、数５の演算式によって、ａ［０］〜ａ［７］およびｂ［０］〜ｂ［７］を計算することができる。ｂ［０］〜ｂ［７］を用いて、任意のｉに対するｏｕｔ［０］〜ｏｕｔ［７］が計算される。ここで得られるｏｕｔ［０］〜ｏｕｔ［７］は、任意のｉに対して、行列ＷＴａの各成分となる。次に、ｏｕｔ［０］〜ｏｕｔ［７］のｉとｊとを転置して、転置した値をｉｎ［０］〜ｉｎ［７］とする。そして、同様に、数５を用いて、演算し、ｏｕｔ［０］〜ｏｕｔ［７］を得る。得られたｏｕｔ［０］〜ｏｕｔ［７］は、行列ＴａTＷＴａの各成分となるので、逆整数変換後の時間領域を示す。
【数５】
0004704333.tif 000006
【非特許文献１】Ｄｒａｆｔ  ＩＴＵ−Ｔ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  ａｎｄＦｉｎａｌ  Ｄｒａｆｔ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄ  ｏｆ  Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＴＵ−Ｔ  Ｒｅｃ．Ｈ．２６４｜ＩＳＯ／ＩＥＣ  １４４９６−１０  ＡＶＣ）、Ｄｏｃ．ＪＶＴ−Ｇ０５０ｒ１、２００３年５月２７日、１２７頁〜１３４頁
【非特許文献２】Ｊｏｉｎｔ  Ｆｉｎａｌ  Ｃｏｍｍｉｔｔｅｅ  Ｄｒａｆｔ（ＪＦＣＤ）ｏｆ  Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＴＵ−Ｔ  Ｒｅｃ．Ｈ．２６４｜ＩＳＯ／ＩＥＣ  １４４９６−１０  ＡＶＣ）、Ｄｏｃ．ＪＶＴ−Ｄ１５７、２００２年８月１０日、１４１頁〜１４３頁
【非特許文献３】Ｄｒａｆｔ  ｏｆ  Ｖｅｒｓｉｏｎ  ４  ｏｆ  Ｈ．２６４／ＡＶＣ（ＩＴＵ−Ｔ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  Ｈ．２６４  ａｎｄ  ＩＳＯ／ＩＥＣ  １４４９６−１０  （ＭＰＥＧ−４  ｐａｒｔ  １０）Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）、Ｄｏｃ．ＪＶＴ−Ｎ０５０ｄ１、２００５年１月２８日、１５３頁〜１７０頁
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上記のように、Ｈ．２６４において、復号化する場合、アダマール変換、４×４逆整数変換、および８×８逆整数変換を組み合わせて利用する必要がある。アダマール変換、４×４逆整数変換、および８×８逆整数変換のそれぞれに対応した演算器を個別に用意したのでは、復号装置の回路規模が大きくなってしまう。同様のことが、符号化装置についても言える。
【００１３】
また、近年、画像符号化のための複数の規格が混在しており、さらに、新たな規格が続々と提案されている状況にある。このような状況においては、複数の規格および新たに追加される規格に容易に対応することができる画像符号化装置および画像復号化装置が必要となってくる。当然、各規格に対応した演算器を個別に用意して、復号装置および符号化装置に設ければよいが、それでは、回路規模が大きくなってしまう。
【００１４】
それゆえ、本発明の目的は、様々な符号化規格に対応しながらも、小型化を図ることができる画像符号化装置および画像復号化装置を提供することである。
【課題を解決するための手段】
【００１５】
上記課題を解決するために、本発明は、以下のような特徴を有する。本発明の第１の局面は、周波数領域から時間領域への複数の変換モードを必要に応じて切り換えて、圧縮画像データを復号化する画像復号化装置であって、入力される複数の画素データに対して、演算処理を施すための演算部と、演算部による演算結果を保存する演算データ保存部と、演算部に入力すべき画素データを、圧縮画像データから読み出すか、または演算データ保存部に保存されている画素データから読み出すか選択し、読み出した画素データを演算部に入力する入力選択部と、各変換モードでの演算手順を、演算部における１回の演算で実行可能な単位毎に、演算回数に対応させて予め定義しており、使用する変換モードおよび演算部における演算回数に基づいて、入力選択部が演算部に入力すべき画素データの読み出し先を制御すると共に、演算部において演算処理の対象となる画素データの組み合わせおよび演算処理における乗算係数を制御する演算制御部とを備える。
【００１６】
本発明の第１の局面によれば、演算制御部は、各変換モードにおける演算手順を演算部での１回の演算で実行可能な単位に分割して定義しているので、それぞれの変換モードにおける演算を単一の演算部で実行することができる。したがって、様々な符号化規格に対応しながらも、小型化を図ることができる画像復号化装置が提供されることとなる。
【００１７】
本発明の第２の局面において、演算部は、整数演算を実行可能な構成を有しており、演算制御部は、整数演算の対象となる画素データの組み合わせを制御すると共に、演算部におけるビットシフト量を乗算係数として制御する。
【００１８】
本発明の第２の局面によれば、演算部は、整数演算を実行可能な構成を有しているので、様々な整数変換を切り換えて実行することができる画像復号化装置が提供されることとなる。
【００１９】
たとえば、演算部は、第１〜第８の端子と、第２の端子への入力をビットシフトする第１のビット演算部と、第３の端子への入力をビットシフトする第２のビット演算部と、第６の端子への入力をビットシフトする第３のビット演算部と、第７の端子への入力をビットシフトする第４のビット演算部と、第１の端子への入力と第２のビット演算部の出力とを加算する第１の加算部と、第１のビット演算部の出力から第４の端子への入力を減算する第１の減算部と、第４のビット演算部の出力から第５の端子への入力を減算する第２の減算部と、第８の端子への入力と第３のビット演算部の出力とを加算する第２の加算部とを含み、演算データ保存部は、第１および第２の加算部、ならびに第１および第２の減算部の演算結果を保存し、演算制御部は、変換モードおよび演算回数に基づいて、第１〜第８の端子に入力すべき画素データを制御し、かつ、第１〜第４のビット演算部でのビットシフト量を制御する。
【００２０】
たとえば、複数の変換モードは、４×４逆整数変換、８×８逆整数変換、およびアダマール変換の内、少なくともいずれか２つの変換モードである。
【００２１】
これにより、Ｈ．２６４における圧縮画像データの復号を小型の装置で実現することができる。
【００２２】
本発明の第３の局面において、演算制御部は、各変換モードでの演算手順を、演算回数毎に、基本単位となる演算処理に分割して定義しており、演算部は、基本単位となる演算処理を実行可能な構成を有しており、演算制御部は、基本単位となる演算処理を演算部に繰り返させるように、演算処理の対象となる画素データの組み合わせを制御すると共に、乗算係数を制御する。
【００２３】
本発明の第３の局面によれば、基本単位となる演算処理に各変換モードでの演算手順が分割されているので、より簡易な構成によって、演算部を構成することができ、様々な符号化規格に対応しながらも、小型化を図ることができる画像復号化装置が提供されることとなる。
【００２４】
好ましくは、基本単位となる演算処理は、２入力２出力のデータフローを構成することができる演算処理であるとよい。
【００２５】
これにより、各変換モードにおける演算手順は２入力２出力のデータフローに分割することができるので、２入力２出力のデータフローを基本単位とすることよって、規格間での共有化、装置の小型化が実現できる。
【００２６】
好ましくは、演算制御部は、新たな変換モードに関する画素データの組み合わせおよび乗算係数を、演算回数に対応させて保存することができ、新たな変換モードが使用される場合、当該保存内容に基づいて、入力選択部および演算部を制御するとよい。
【００２７】
これにより、新たな変換モードが導入されたとしても、復号化することができる小型の画像復号化装置が提供されることとなる。
【００２８】
たとえば、演算部は、第１〜第４の端子と、第１の端子への入力に対して乗算処理を施す第１の乗算部と、第３の端子への入力に対して乗算処理を施す第２の乗算部と、第２の端子への入力に対して乗算処理を施す第３の乗算部と、第４の端子への入力に対して乗算処理を施す第４の乗算部と、第１の乗算部の出力と第２の乗算部の出力とを加算する第１の加算部と、第３の乗算部の出力と第４の乗算部の出力とを加算する第２の加算部とを含み、演算データ保存部は、第１および第２の加算部の演算結果を保存し、演算制御部は、変換モードおよび演算回数に基づいて、第１〜第４の端子に入力すべき画素データを入力選択部に制御させ、かつ、第１〜第４の乗算部での乗算係数である乗数を制御する。
【００２９】
好ましくは、演算制御部は、変換モードに対応させて、乗数を保存する乗数保存部と、第１〜第４の乗算部での乗数を設定する乗数設定部と、変換モードを管理する変換モード設定部と、演算部での演算順序を管理する演算順序管理部とを含み、乗数設定部は、変換モード設定部が管理する現在の変換モードおよび演算順序管理部が管理する演算回数に基づいて、乗数保存部から、適切な乗数を読み出して、第１〜第４の乗算部に設定し、演算順序管理部は、現在の変換モードおよび演算回数に基づいて、第１〜第４の端子に入力すべき画素データを入力選択部に制御させるとよい。
【００３０】
好ましくは、演算制御部は、さらに、新たな変換モードで使用する乗数を演算回数と対応付けて設定するための乗数設定部と、乗数設定部で設定された乗数を保存する新変換モード乗数保存部とを含み、新たな変換モードが使用された場合、乗数設定部は、演算回数に対応した乗数を新変換モード乗数保存部から読み出して、第１〜第４の乗算部に設定し、演算順序管理部は、演算回数に基づいて、第１〜第４の端子に入力すべき画素データを入力選択部に制御させるとよい。
【００３１】
たとえば、複数の変換モードは、逆離散コサイン変換、４×４逆整数変換、８×８逆整数変換、およびアダマール変換の内、少なくともいずれか２つの変換モードである。
【００３２】
これにより、ＪＰＥＧ、ＭＰＥＧ−２、ＭＰＥＧ−４、ＭＰＥＧ−４ＡＶＣ（Ｈ．２６４）、および新たな変換モードに対応することができる画像復号化装置が提供されることとなる。
【００３３】
好ましくは、演算部が複数並列または直列に接続されており、演算制御部は、並列または直列に接続された、複数の演算部を制御するとよい。
【００３４】
これにより、パイプライン処理が可能となり、処理速度が向上する。
【００３５】
本発明の第４の局面は、時間領域から周波数領域への複数の変換モードを必要に応じて切り換えて、画像データを符号化する画像符号化装置であって、入力される複数の画素データに対して、演算処理を施すための演算部と、演算部による演算結果を保存する演算データ保存部と、演算部に入力すべき画素データを、画像データから読み出すか、または演算データ保存部に保存されている画素データから読み出すか選択し、読み出した画素データを演算部に入力する入力選択部と、各変換モードでの演算手順を、演算部における１回の演算で実行可能な単位毎に、演算回数に対応させて予め定義しており、使用する変換モードおよび演算部における演算回数に基づいて、入力選択部が演算部に入力すべき画素データの読み出し先を制御すると共に、演算部において演算処理の対象となる画素データの組み合わせおよび演算処理における乗算係数を制御する演算制御部とを備える。
【００３６】
本発明の第５の局面において、演算部は、整数演算を実行可能な構成を有しており、演算制御部は、整数演算の対象となる画素データの組み合わせを制御すると共に、演算部におけるビットシフト量を乗算係数として制御する。
【００３７】
たとえば、演算部は、第１〜第８の端子と、第２の端子への入力をビットシフトする第１のビット演算部と、第３の端子への入力をビットシフトする第２のビット演算部と、第６の端子への入力をビットシフトする第３のビット演算部と、第７の端子への入力をビットシフトする第４のビット演算部と、第１の端子への入力をビットシフトする第５のビット演算部と、第４の端子への入力をビットシフトする第６のビット演算部と、第５の端子への入力をビットシフトする第７のビット演算部と、第８の端子への入力をビットシフトする第８のビット演算部と、第５のビット演算部の出力と第２のビット演算部の出力とを加算する第１の加算部と、第１のビット演算部の出力から第６のビット演算部の出力を減算する第１の減算部と、第４のビット演算部の出力から第７のビット演算部の出力を減算する第２の減算部と、第８のビット演算部の出力と第３のビット演算部の出力とを加算する第２の加算部とを含み、演算データ保存部は、第１および第２の加算部、ならびに第１および第２の減算部の演算結果を保存し、演算制御部は、変換モードおよび演算回数に基づいて、第１〜第８の端子に入力すべき画素データを制御し、かつ、第１〜第４のビット演算部でのビットシフト量を制御する。
【００３８】
たとえば、複数の変換モードは、４×４逆整数変換、８×８逆整数変換、４×４整数変換、８×８整数変換、およびアダマール変換の内、少なくともいずれか２つの変換モードである。上記具体的構成により、これらの変換モードに全て対応可能な変換器が提供される。
【００３９】
本発明の第６の局面において、演算制御部は、各変換モードでの演算手順を、演算回数毎に、基本単位となる演算処理に分割して定義しており、演算部は、基本単位となる演算処理を実行可能な構成を有しており、演算制御部は、基本単位となる演算処理を演算部に繰り返させるように、演算処理の対象となる画素データの組み合わせを制御すると共に、乗算係数を制御する。
【００４０】
好ましくは、基本単位となる演算処理は、２入力２出力のデータフローを構成することができる演算処理であるとよい。
【００４１】
好ましくは、演算制御部は、新たな変換モードに関する画素データの組み合わせおよび乗算係数を、演算回数に対応させて保存することができ、新たな変換モードが使用される場合、当該保存内容に基づいて、入力選択部および演算部を制御する。
【００４２】
たとえば、演算部は、第１〜第４の端子と、第１の端子への入力に対して乗算処理を施す第１の乗算部と、第３の端子への入力に対して乗算処理を施す第２の乗算部と、第２の端子への入力に対して乗算処理を施す第３の乗算部と、第４の端子への入力に対して乗算処理を施す第４の乗算部と、第１の乗算部の出力と第２の乗算部の出力とを加算する第１の加算部と、第３の乗算部の出力と第４の乗算部の出力とを加算する第２の加算部とを含み、演算データ保存部は、第１および第２の加算部の演算結果を保存し、演算制御部は、変換モードおよび演算回数に基づいて、第１〜第４の端子に入力すべき画素データを入力選択部に制御させ、かつ、第１〜第４の乗算部での乗算係数である乗数を制御する。
【００４３】
たとえば、演算制御部は、変換モードに対応させて、乗数を保存する乗数保存部と、第１〜第４の乗算部での乗数を設定する乗数設定部と、変換モードを管理する変換モード設定部と、演算部での演算順序を管理する演算順序管理部とを含み、乗数設定部は、変換モード設定部が管理する現在の変換モードおよび演算順序管理部が管理する演算回数に基づいて、乗数保存部から、適切な乗数を読み出して、第１〜第４の乗算部に設定し、演算順序管理部は、現在の変換モードおよび演算回数に基づいて、第１〜第４の端子に入力すべき画素データを入力選択部に制御させる。
【００４４】
好ましくは、演算制御部は、さらに、新たな変換モードで使用する乗数を演算回数と対応付けて設定するための乗数設定部と、乗数設定部で設定された乗数を保存する新変換モード乗数保存部とを含み、新たな変換モードが使用された場合、乗数設定部は、演算回数に対応した乗数を新変換モード乗数保存部から読み出して、第１〜第４の乗算部に設定し、演算順序管理部は、演算回数に基づいて、第１〜第４の端子に入力すべき画素データを入力選択部に制御させる。
【００４５】
たとえば、複数の変換モードは、逆離散コサイン変換、４×４逆整数変換、８×８逆整数変換、離散コサイン変換、４×４整数変換、８×８整数変換、およびアダマール変換の内、少なくともいずれか２つの変換モードである。上記具体的構成により、これらの変換モードに全て対応可能な変換器が提供される。
【００４６】
好ましくは、演算部が複数並列または直列に接続されており、演算制御部は、並列または直列に接続された、複数の演算部を制御する。
【００４７】
画像符号化装置についても、画像復号化装置と同様の効果を得ることができる。
【００４８】
本発明の第７の局面は、周波数領域から時間領域への複数の変換モードを必要に応じて切り換えて、圧縮画像データを復号化する画像復号化装置で用いられる集積回路であって、入力される複数の画素データに対して、演算処理を施すための演算部と、演算部に入力すべき画素データを、圧縮画像データから読み出すか、または演算部の演算結果から読み出すか選択し、読み出した画素データを演算部に入力する入力選択部と、各変換モードでの演算手順を、演算部における１回の演算で実行可能な単位毎に、演算回数に対応させて予め定義しており、使用する変換モードおよび演算部における演算回数に基づいて、入力選択部が演算部に入力すべき画素データの読み出し先を制御すると共に、演算部において演算処理の対象となる画素データの組み合わせおよび演算処理における乗算係数を制御する演算制御部とを備える。
【００４９】
本発明の第８の局面は、時間領域から周波数領域への複数の変換モードを必要に応じて切り換えて、画像データを符号化する画像符号化装置で用いられる集積回路であって、入力される複数の画素データに対して、演算処理を施すための演算部と、演算部に入力すべき画素データを、画像データから読み出すか、または演算部の演算結果から読み出すか選択し、読み出した画素データを演算部に入力する入力選択部と、各変換モードでの演算手順を、演算部における１回の演算で実行可能な単位毎に、演算回数に対応させて予め定義しており、使用する変換モードおよび演算部における演算回数に基づいて、入力選択部が演算部に入力すべき画素データの読み出し先を制御すると共に、演算部において演算処理の対象となる画素データの組み合わせおよび演算処理における乗算係数を制御する演算制御部とを備える。
【発明の効果】
【００５０】
以上、本発明の画像符号化装置および画像復号化装置によれば、様々な符号化規格に対応しながらも、小型化を図ることができる。
本発明のこれらおよび他の目的、特徴、局面、効果は、添付図面と照合して、以下の詳細な説明から一層明らかになるであろう。
【発明を実施するための最良の形態】
【００５１】
以下、本発明の実施形態について、図面を参照しながら説明する。
【００５２】
（第１の実施形態）
第１の実施形態では、整数変換部および逆整数変換部を時分割で使用して、整数変換および逆整数変換する画像符号化装置および画像復号化装置について説明する。
【００５３】
図１は、本発明の第１の実施形態に係る画像符号化装置１の構成の一例を示すブロック図である。図１において、画像復号化装置１は、画面内予測部１１と、整数変換部１２と、量子化部１３と、エントロピー符号化部１４と、逆量子化部１５と、逆整数変換部１６と、加算部１７と、デブロッキングフィルタ部１８と、フレームメモリ部１９と、動き補償部２０と、動き検出部２１と、減算部２２とを備える。
【００５４】
画面内予測部１１は、入力される動画像信号のＩピクチャについて、フレーム内予測を実行し、差分値を出力する。整数変換部１２は、画面内予測部１１から出力された差分値を整数変換（Ｉｎｔｅｇｅｒ  Ｔｒａｎｓｆｏｒｍ）する。量子化部１３は、整数変換部１２から出力される周波数領域の成分を量子化する。エントロピー符号化部１４は、量子化部１３からの出力をエントロピー符号化して、圧縮画像データとして出力する。
【００５５】
逆量子化部１５は、量子化部１３からの出力を逆量子化して出力する。逆整数変換部１６は、逆量子化部１５からの出力を逆整数変換して出力する。加算部１７は、画面内予測部１１または動き補償部２０からの出力と逆整数変換部１６からの出力とを加算する。デブロッキングフィルタ部１８は、加算部１７からの出力のブロックノイズを除去する。フレームメモリ部１９は、フレームを記憶する。動き補償部２０は、動き補償を行い、重み付けを予測して、重み係数を乗算したフレームを減算部２２に入力する。減算部２２は、Ｉピクチャ以外のフレームについて、動き補償部２０からのフレームを減算して、整数変換部１２に入力する。動き検出部２１は、動きベクトルを検出し、エントロピー符号化部１４に入力する。エントロピー符号化部１４は、当該動きベクトルに基づいて、エントロピー符号化を実行する。これにより、動き補償が改善された圧縮画像データが出力されることとなる。
【００５６】
図２は、本発明の第１の実施形態に係る画像復号化装置２の構成の一例を示すブロック図である。図２において、画像復号化装置２は、エントロピー復号化部２３と、逆量子化部２４と、逆整数変換部２５と、デブロッキングフィルタ部２６と、動き補償部２７と、重み付け予測部２８と、画面内予測部２９と、加算部３０とを備える。
【００５７】
エントロピー復号化部２３に入力された圧縮画像データは、エントロピー復号化される。逆量子化部２４は、エントロピー復号化部２３からの出力を逆量子化する。逆整数変換部２５は、逆量子化部２４からの出力を逆整数変換して、時間領域のデータを動画像信号として出力する。
【００５８】
デブロッキングフィルタ部２６は、逆整数変換部２５からの出力のブロックノイズを除去して出力する。動き補償部２７は、エントロピー復号化部２３からの出力に基づいて、動き補償を行う。重み付け予測部２８は、動き補償の結果、重み付けを予測して、重み係数を乗算したフレームを出力する。画面内予測部２９は、エントロピー復号化部２３からの出力に基づいて、フレーム間の差分を予測し、加算部３０と、画面内予測部２９および重み付け予測部２８との間の切り換えを制御する。これにより、動き補償が改善された動画像信号が出力されることとなる。
【００５９】
本実施形態における画像符号化装置は、時間領域から周波数領域への複数の変換モードを有しており、必要に応じて、当該複数の変換モードを切り換えながら、画像を符号化する。また、本実施形態における画像復号化装置は、周波数領域から時間領域への複数の変換モードを有しており、必要に応じて、当該複数の変換モードを切り換えながら、画像を復号化する。
【００６０】
本発明は、整数変換および逆整数変換の構造に特徴を有する。したがって、以下に開示する整数変換および逆整数変換の構造は、上記図１および図２に示した構成以外の画像符号化装置および画像復号化装置に適用可能である。また、本発明の整数変換および逆整数変換の構造は、Ｈ．２６４以外においても、適用可能である。
【００６１】
図３は、本発明の第１の実施形態に係る整数変換器１０００の構成を示す図である。整数変換器１０００は、図１に示す整数変換部１２および逆整数変換部１６、ならびに図２に示す逆整数変換部２５に適用される。図１および図２以外の画像復号化装置および画像符号化装置にあっても、整数変換または逆整数変換を行う部分に、図３に示す整数変換器１０００が適用される。
【００６２】
図３において、整数変換器１０００は、演算部１００と、演算制御部１０１と、入力選択部１０２と、入力データ保存部１１１と、演算データ保存部１１２とを含む。なお、入力データ保存部１１１および／または演算データ保存部１１２は、整数変換器１０００の外部にあってもよい。
【００６３】
演算部１００は、入力される複数の画素データに対して、演算処理を施す。演算部１００は、端子ｐ１〜ｐ８と、ビット演算部１０３、１０４、１０５、１０６と、加算部１０７、１１０と、減算部１０８、１０９とを有する。ビット演算部１０４は、端子ｐ２への入力をビットシフトする。ビット演算部１０３は、端子ｐ３への入力をビットシフトする。ビット演算部１０６は、端子ｐ６への入力をビットシフトする。ビット演算部１０５は、端子ｐ７への入力をビットシフトする。加算部１０７は、端子ｐ１への入力とビット演算部１０３の出力とを加算する。減算部１０８は、ビット演算部１０４の出力から端子ｐ４への入力を減算する。減算部１０９は、ビット演算部１０５の出力から端子ｐ５への入力を減算する。加算部１１０は、端子ｐ８への入力とビット演算部１０６の出力とを加算する。このように、演算部１００は、整数演算を実行可能な構成を有している。演算データ保存部１１２は、加算部１０７、１１０、および減算部１０８、１０９の演算結果を保存する。
【００６４】
演算制御部１０１は、入力選択部１０２が演算を行う画素データを、入力データ保存部１１１から読み出すか、演算データ保存部１１２から行方向で読み出すか、演算データ保存部１１２から列方向で読み出すかの指示と、現在の演算回数とを入力選択指示信号として出力する。また、演算制御部１０１は、現在の演算回数および処理の対象がアダマール変換、４×４逆整数変換、８×８逆整数変換かによって、ビット演算部１０３、１０４、１０５、１０６のビットシフト量を決定し、ビット演算部１０３、１０４、１０５、１０６に対してビットシフト指示信号を出力する。
【００６５】
演算部１００は、上記のような構成を有しているので、一回の演算で実行可能な処理内容は限られている。演算制御部１０１は、各変換モードでの演算手順を、演算部１００における１回の演算で実行可能な単位に、演算回数に対応させて予め定義している。演算制御部１０１は、使用する変換モードおよび演算回数に基づいて、入力選択部１０２が演算部１００に入力すべき画素データの読み出し先を制御すると共に、演算部１００において演算処理の対象となる画素データの組み合わせおよび演算処理における乗算係数（ビットシフト量）を制御する。
【００６６】
入力選択部１０２は、演算制御部１０１からの入力選択指示信号に基づいて、入力データ保存部１１１または演算データ保存部１１２から、処理対象となる画素データを読み出す。また、入力選択部１０２は、当該入力選択指示信号が示す演算回数に基づいて、演算処理の対象となる画素データの組み合わせを認識し、読み出した画素データを、適切な端子ｐ１からｐ８に出力する。
【００６７】
ビット演算部１０３、１０４、１０５、１０６は、演算制御部１０１から入力されるビットシフト指示信号に応じて、入力選択部１０２から入力される画素データに対して、ビットシフトなし、１ビット右シフト、２ビット右シフトのいずれかを行い、加算部１０７、１１０、減算部１０８、１０９に対してビットシフト画素データを出力する。なお、ビット演算部１０３、１０４、１０５、１０６から出力される画素データは、ビットシフトされていなくても、ビットシフト画素データということとする。
【００６８】
加算部１０７、１１０は、ビット演算部１０３、１０６からのビットシフト画素データと、端子ｐ１、ｐ８より入力された画素データとをそれぞれ加算する。
【００６９】
減算部１０８、１０９は、ビット演算部１０４、１０５からのビットシフト画素データから、端子ｐ４、ｐ５より入力された画素データを減算する。
【００７０】
入力データ保存部１１１は、メモリ等の記憶媒体であり、整数変換の対象となる画素データを保存する。
【００７１】
演算データ保存部１１２は、メモリ等の記憶媒体であり、演算部１００によって変換された画素データを保存する。また、演算データ保存部１１２は、データの転置を行うため、行方向の書き込みと読み出し、列方向の書き込みと読み出しとを行う。
【００７２】
以下、４×４逆整数変換、８×８逆整数変換、アダマール変換、４×４整数変換、および８×８整数変換が、図３に示す整数変換器１０００によって演算可能であることを説明する。なお、上記変換モードの内、少なくとも二つの変換モードの切り換えが可能であればよい。
【００７３】
まず、前提として、これらの変換では、変換前の画素データを成分として含む正方行列（たとえば、Ｗ）に対して、変換のための正方行列Ｔを右から乗算し、乗算された結果得られる正方行列ＷＴに対して、左から正方行列Ｔの転置行列ＴTを乗算する。これによって得られる正方行列ＴTＷＴの各成分が、変換後の画素データとなる。以下、正方行列Ｗに対して、正方行列Ｔを右から乗算する演算を、行方向の演算という。また、正方行列ＷＴに対して、転置行列ＴTを左から乗算する演算を列方向の演算という。
【００７４】
（４×４逆整数変換の場合の動作）
図４は、演算回数に対応した演算式、および入力選択部１０２によって入力端子ｐ１〜ｐ８に入力されて演算処理の対象となる画素データの組み合わせの関係を示す図である。図４に示すような関係が演算制御部１０１に定義されている。定義方法は、図４のようなテーブル形式に限るものではなく、特に限定されない。
【００７５】
図４では、行方向および列方向の演算が示されている。入力される画素データは、４×４の行列の各成分によって表される。図４では、入力される画素データを成分に含む４×４の行列のある１行の成分をｉｎ［０］〜ｉｎ［３］とする。第１回目の演算において、端子ｐ１およびｐ２にｉｎ［０］が、端子ｐ３およびｐ４にｉｎ［２］が、端子ｐ７およびｐ８にｉｎ［１］が、端子ｐ５およびｐ６にｉｎ［３］が入力される。第１回目の演算式によって、ａ［０］〜ａ［３］が得られる。次に、図４に示すように、ａ［０］〜ａ［３］が対応する端子ｐ１〜ｐ８に入力される。第２回目の演算式によって、ｂ［０］〜ｂ［３］が得られる。上記２回の演算が、入力された４×４の画素データの全ての行に渡って行われる。これによって、行方向の演算が完了し、４×４の画素データが得られる。
【００７６】
その後、行方向の演算によって得られた４×４の画素データの行列に対して列方向の演算を行う。列方向の演算では、転置によって得られた行列のある１列の成分をｉｎ［０］〜ｉｎ［３］とする。列方向の演算の第１回目の演算において、図４に示すように、端子ｐ１〜ｐ８に、ｉｎ［１］〜ｉｎ［３］が入力される。第１回目の演算式によって、ａ［０］〜ａ［３］が得られる。次に、図４に示すように、ａ［０］〜ａ［３］が対応する端子ｐ１〜ｐ８に入力される。第２回目の演算式によって、ｂ［０］〜ｂ［３］が得られる。上記２回の演算が、転置後の４×４の画素データの全ての列に渡って行われる。これによって、列方向の演算が完了する。結果、４×４逆整数変換された４×４の画素データが得られる。
【００７７】
図５は、４×４逆整数変換において、行方向の演算を実行するときの演算制御部１０１の動作を示すフローチャートである。以下、図５を参照しながら、４×４逆整数変換において、行方向の演算を実行するときの演算制御部１０１の動作について説明する。
【００７８】
図５において、ループＬ１は、入力された４×４の画素データの全ての行（４行）に渡って、ループＬ１内の演算が完了したときを終了条件とするループである。ループＬ２は、図４に示す行方向の演算回数が２回に達したときを終了条件するループである。以下、入力された４×４の画素データを入力画素行列という。
【００７９】
入力画素行列の行方向１回目（ループＬ２＝１回目、ステップＳ１００＝１回目）の演算のとき、演算制御部１０１は、入力選択指示信号を出力し、入力選択部１０２に入力する。当該入力選択指示信号には、入力画素行列における第１行の成分を入力データ保存部１１１から読み出させるための指示と、演算回数が１回目であることの通知とが含まれる（ステップＳ１０１）。
【００８０】
当該入力選択指示信号に応じて、入力選択部１０２は、入力データ保存部１１１から、４画素分の入力データを読み出し、図３に示すように端子ｐ１からｐ８に入力する。
【００８１】
次に、演算制御部１０１は、ビットシフト指示信号を出力する。当該ビットシフト指示信号には、ビットシフトなしとするビット演算部１０３，１０４に対する指示と、１ビット右にシフトさせるビット演算部１０５、１０６に対する指示とが含まれる（ステップＳ１０２）。
【００８２】
当該ビットシフト指示信号に応じて、ビット演算部１０５、１０６は、入力されたデータを右１ビットシフトしたビットシフト画素データを生成して、出力する。
【００８３】
加算部１０７は、ビット演算部１０３の出力と端子ｐ１への入力とを加算する。減算部１０８は、ビット演算部１０４の出力から端子ｐ４への入力を減算する。減算部１０９は、ビット演算部１０５の出力から端子ｐ５への入力を減算する。加算部１１０は、ビット演算部１０６の出力と端子ｐ８への入力とを加算する。これらの加減算によって得られた結果は、行方向１回目の演算結果となる。演算データ保存部１１２は、当該演算結果を１行目の行方向に保存する。
【００８４】
入力画素行列の行方向２回目（ループＬ２＝２回目、ステップＳ１００＝２回目）の演算のとき、演算制御部１０１は、入力選択指示信号を出力し、入力選択部１０２に入力する。当該入力選択指示信号には、上記行方向１回目の演算結果を演算データ保存部１１２から読み出させるための指示と、演算回数が２回目であることの通知とが含まれる（ステップＳ１０３）。
【００８５】
当該入力選択指示信号に応じて、入力選択部１０２は、演算データ保存部１１２に保存された行方向１回目演算結果を行方向から１行分読み出し、４画素分の入力データを、図３に示すように、２回目の演算に対応する端子ｐ１からｐ８に入力する。
【００８６】
次に、演算制御部１０１は、ビットシフト指示信号を出力する。当該ビットシフト指示信号には、ビットシフトなしとするビット演算部１０３、１０４、１０５、１０６に対する指示が含まれる（ステップＳ１０４）。
【００８７】
当該ビットシフト指示信号に応じて、ビット演算部１０３、１０４、１０５、１０６は、ビットシフトをしないで入力されたデータを出力する。
【００８８】
加算部１０７、１１０、および減算部１０８、１０９は、入力されるデータに基づいて、演算を行い、演算データ保存部１１２に行方向２回目の演算結果を１行目に保存する。これによって、１行目のループＬ２の処理が終了する。
【００８９】
演算制御部１０１は、ループＬ２の処理を残り３行分実行する。これによって、ループＬ１の終了条件が満たされる。結果、行方向の演算による４行分の画素データが得られる。演算データ保存部１１２は、４行分の画素データを、４×４行列行方向演算結果として、保存する。
【００９０】
図６は、４×４逆整数変換において、列方向の演算を実行するときの演算制御部１０１の動作を示すフローチャートである。以下、図６を参照しながら、４×４逆整数変換において、列方向の演算を実行するときの演算制御部１０１の動作について説明する。
【００９１】
図６において、ループＬ３は、行方向の演算で得られた４×４行列行方向演算結果の全ての列（４列）に渡って、ループＬ１内の演算が完了したときを終了条件とするループである。ループＬ４は、図４に示す列方向の演算回数が２回に達したときを終了条件するループである。
【００９２】
４×４行列行方向演算結果の列方向１回目（ループＬ４＝１回目、ステップＳ２００＝１回目）の演算のとき、演算制御部１０１は、入力選択指示信号を出力し、入力選択部１０２に入力する。当該入力選択指示信号には、演算データ保存部１１２に保存された４×４行列行方向演算結果を列方向から読み出させるための指示と、演算回数が１回目であることの通知とが含まれる（ステップＳ２０１）。
【００９３】
当該入力選択指示信号に応じて、入力選択部１０２は、演算データ保存部１１２に保存された前記４×４行列行方向演算結果を列方向に１列分読み出し、４画素分の画素データｉｎ［０］〜ｉｎ［３］として、図３に示すように端子ｐ１からｐ８に入力する。
【００９４】
次に、演算制御部１０１は、ビットシフト指示信号を出力する。当該ビットシフト指示信号には、ビットシフトなしとするビット演算部１０３，１０４に対する指示と、１ビット右にシフトさせるビット演算部１０５、１０６に対する指示とが含まれる（ステップＳ２０２）。
【００９５】
当該ビットシフト指示信号に応じて、ビット演算部１０５、１０６は、入力されたデータを右１ビットシフトしたビットシフト画素データを生成して、出力する。
【００９６】
加算部１０７は、ビット演算部１０３の出力と端子ｐ１への入力とを加算する。減算部１０８は、ビット演算部１０４の出力から端子ｐ４への入力を減算する。減算部１０９は、ビット演算部１０５の出力から端子ｐ５への入力を減算する。加算部１１０は、ビット演算部１０６の出力と端子ｐ８への入力とを加算する。これらの加減算によって得られた結果は、列方向１回目の演算結果となる。演算データ保存部１１２は、当該演算結果を１列目の列方向に保存する。
【００９７】
４×４行列行方向演算結果の列方向２回目（ループＬ４＝２回目、ステップＳ２００＝２回目）の演算のとき、演算制御部１０１は、入力選択指示信号を出力し、入力選択部１０２に入力する。当該入力選択指示信号には、上記列方向１回目の演算結果を演算データ保存部１１２から読み出させるための指示と、演算回数が２回目であることの通知とが含まれる（ステップＳ２０３）。
【００９８】
当該入力選択指示信号に応じて、入力選択部１０２は、演算データ保存部１１２に保存された列方向１回目演算結果を列方向から１行分読み出し、４画素分の入力データを、図３に示すように、２回目の演算に対応する端子ｐ１からｐ８に入力する。
【００９９】
次に、演算制御部１０１は、ビットシフト指示信号を出力する。当該ビットシフト指示信号には、ビットシフトなしとするビット演算部１０３、１０４、１０５、１０６に対する指示が含まれる（ステップＳ２０４）。
【０１００】
当該ビットシフト指示信号に応じて、ビット演算部１０３、１０４、１０５、１０６は、ビットシフトをしないで入力されたデータを出力する。
【０１０１】
加算部１０７、１１０、および減算部１０８、１０９は、入力されるデータに基づいて、演算を行い、演算データ保存部１１２に行方向２回目の演算結果を１列目に保存する。これによって、１列目のループＬ４の処理が終了する。
【０１０２】
演算制御部１０１は、ループＬ４の処理を残り３列分実行する。これによって、ループＬ３の終了条件が満たされる。結果、列方向の演算による４列分の画素データが得られる。当該４列分の画素データは、４×４逆整数変換によって得られた最終結果である。よって、演算データ保存部１１２は、当該４列分の画素データを出力画素行列として、出力する。
【０１０３】
このようにして、整数変換器１０００は、４×４逆整数変換を行うことができる。
【０１０４】
（８×８逆整数変換の場合の動作）
図７は、演算回数に対応した演算式、および入力選択部１０２によって入力端子ｐ１〜ｐ８に入力されるべき画素データの関係を示す図である。図７に示すような関係が演算制御部１０１に定義されている。定義方法は、図７のようなテーブル形式に限るものではなく、特に限定されない。
【０１０５】
図７では、行方向および列方向の演算が示されている。入力される画素データは、８×８の行列の各成分によって表される。図７では、入力される画素データを成分に含む８×８の行列のある１行（１列）の成分をｉｎ［０］〜ｉｎ［７］とする。第１〜８回目の演算において、端子ｐ１〜ｐ８に入力される画素データの組み合わせが対応付けられている。第１〜第８回目の演算によって、それぞれ、演算式で定義された演算結果が得られる。図７に示す第８回目までの演算によって、行方向（列方向）の演算が完了し、８×８の画素データが得られる。
【０１０６】
図８は、８×８逆整数変換において、行方向の演算を実行するときの演算制御部１０１の動作を示すフローチャートである。以下、図８を参照しながら、８×８逆整数変換において、行方向の演算を実行するときの演算制御部１０１の動作について説明する。
【０１０７】
図８において、ループＬ５は、入力された８×８の画素データの全ての行（８行）に渡って、ループＬ５内の演算が完了したときを終了条件とするループである。ループＬ６は、図８に示す行方向の演算回数が８回に達したときを終了条件するループである。以下、入力された８×８の画素データを入力画素行列という。
【０１０８】
８×８逆整数変換を行う場合、（数３）で与えられた行（列）方向の一次元の変換式を図７に示すような８回の演算に分け処理を行う。
【０１０９】
入力画素行列の行方向１回目（ループＬ６＝１回目、ステップＳ３００＝１回目）の演算のとき、演算制御部１０１は、入力選択指示信号を出力し、入力選択部１０２に入力する。当該入力選択指示信号には、入力画素行列における第１行の成分であるｉｎ［０］，ｉｎ［４］，ｉｎ［２］，ｉｎ［６］を入力データ保存部１１１から読み出させるための指示と、演算回数が１回目であることの通知とが含まれる（ステップＳ３０１）。
【０１１０】
当該入力選択指示信号に応じて、入力選択部１０２は、入力データ保存部１１１から、入力画素データｉｎ［０］、ｉｎ［２］、ｉｎ［４］、ｉｎ［６］を読み出し、図７にしめすように、端子ｐ１からｐ８に入力する。
【０１１１】
次に、演算制御部１０１は、ビットシフト指示信号を出力する。当該ビットシフト指示信号には、ビットシフトなしとするビット演算部１０３、１０４に対する指示と、１ビット右にシフトさせるビット演算部１０５、１０６に対する指示とが含まれる（ステップＳ３０２）。
【０１１２】
当該ビットシフト指示信号に応じて、ビット演算部１０５、１０６は、入力されたデータを右１ビットシフトしたビットシフト画素データを生成して、出力する。
【０１１３】
加算部１０７は、ビット演算部１０３の出力と端子ｐ１への入力とを加算する。減算部１０８は、ビット演算部１０４の出力から端子ｐ４への入力を減算する。減算部１０９は、ビット演算部１０５の出力から端子ｐ５への入力を減算する。加算部１１０は、ビット演算部１０６の出力と端子ｐ８への入力とを加算する。これらの加減算によって得られた結果は、行方向１回目演算結果として、演算データ保存部１１２に行方向に保存される。
【０１１４】
行方向２回目（ループＬ６＝２回目、ステップＳ３００＝２回目）の演算では、演算制御部１０１は、入力選択指示信号を出力し、入力選択部１０２に入力する。当該入力選択指示信号には、行方向１回目演算結果を演算データ保存部１１２から読み出させるための指示と、演算回数が２回目であることの通知とが含まれる（ステップＳ３０３）。
【０１１５】
当該入力選択指示信号に応じて、入力選択部１０２は、演算データ保存部１１２に保存された行方向１回目演算結果を読み出し、４画素分の入力データを、図７のように、２回目の演算に対応する端子ｐ１からｐ８に入力する。
【０１１６】
次に、演算制御部１０１は、ビットシフト指示信号を出力する。当該ビットシフト指示信号には、ビットシフトなしとするビット演算部１０３、１０４、１０５、１０６に対する指示が含まれる（ステップＳ３０４）。
【０１１７】
当該ビットシフト指示信号に応じて、ビット演算部１０３、１０４、１０５、１０６は、ビットシフトをしないで入力されたデータを出力する。
【０１１８】
加算部１０７、１１０、および減算部１０８、１０９は、入力されるデータに基づいて、演算を行い、演算データ保存部１１２に行方向２回目演算結果を保存する。
【０１１９】
行方向３回目（ループＬ６＝３回目、ステップＳ３００＝３回目）および行方向４回目（ループＬ６＝４回目、ステップＳ３００＝４回目）の演算では、演算制御部１０１は、入力データ保存部１１１からの読み出しの指示と演算回数３回目および４回目であることの通知とを含む入力選択指示信号を出力する（ステップＳ３０１）。また、演算制御部１０１は、ビット演算部１０３、１０４に対してビットシフトなしを指示し、ビット演算部１０５、１０６に対して１ビット右シフトを指示するビットシフト指示信号を出力する（ステップＳ３０２）。
【０１２０】
当該入力選択指示信号に応じて、入力選択部１０２は、入力データ保存部１１１からの入力画素データのｉｎ［１］、ｉｎ［３］、ｉｎ［５］、ｉｎ［７］を読み出し、演算回数に合わせて、図７のように、端子ｐ１からｐ８に入力する。
【０１２１】
当該ビットシフト指示信号に応じて、ビット演算部１０５，１０６は、データを右に１ビットシフトしたビットシフト画素データを生成して出力する。
【０１２２】
加算部１０７、１１０、および減算部１０８、１０９は、演算を行う。演算データ保存部１１２は、行方向３回目演算結果、および行方向４回目演算結果を行方向に保存する。
【０１２３】
行方向５回目（ループＬ６＝５回目、ステップＳ３００＝５回目）の演算では、演算制御部１０１は、行方向３回目演算結果および行方向４回目演算結果を演算データ保存部１１２から読み出すための指示と、演算回数５回目であることの通知とを含む入力選択指示信号を出力する（ステップＳ３０３）。また、演算制御部１０１は、ビット演算部１０３、１０４、１０５、１０６に対してビットシフトをしないように指示するビットシフト指示信号を出力する（ステップＳ３０４）。
【０１２４】
当該入力選択指示信号に応じて、入力選択部１０２は、入力データ保存部１１１に保存された行方向３回目演算結果および行方向４回目演算結果を読み出し、８画素分の入力データを、図７のように、対応する端子ｐ１からｐ８に入力する。
【０１２５】
当該ビットシフト指示信号に応じて、ビット演算部１０３、１０４、１０５、１０６は、入力されたデータをビットシフトしないで出力する。
【０１２６】
加算部１０７、１１０、および減算部１０８、１０９は、演算を行う。演算データ保存部１１２は、行方向５回目演算結果を行方向に保存する。
【０１２７】
行方向６回目（ループＬ６＝６回目、ステップＳ３００＝６回目）の演算では、演算制御部１０１は、行方向５回目演算結果を演算データ保存部１１２から読み出すための指示と、演算回数６回目であることの通知とを含む入力選択指示信号を出力する（ステップＳ３０５）。また、演算制御部１０１は、ビット演算部１０３、１０４、１０５、１０６に対して、２ビット右シフトするように指示するビットシフト指示信号を出力する（ステップＳ３０６）。
【０１２８】
当該入力選択指示信号に応じて、入力選択部１０２は、演算データ保存部１１２に保存された行方向５回目演算結果を読み出し、図７のように、対応する端子ｐ１からｐ８に入力する。
【０１２９】
当該ビットシフト指示信号に応じて、ビット演算部１０３、１０４、１０５、１０６は、入力されたデータを２ビット右シフトし、ビットシフト画素データとして出力する。
【０１３０】
加算部１０７、１１０、および減算部１０８、１０９は、演算を行う。演算データ保存部１１２は、行方向６回目演算結果を行方向に保存する。
【０１３１】
行方向７回目（ループＬ６＝７回目、ステップＳ３００＝７回目）および行方向８回目（ループＬ６＝８回目、ステップＳ３００＝８回目）の演算では、演算制御部１０１は、行方向２回目演算結果と行方向６回目演算結果とを演算データ保存部１１２から読み出すための指示と、演算回数７回目および８回目の演算であることの通知とを含む入力選択指示信号を出力する。また、演算制御部１０１は、ビット演算部１０３、１０４、１０５、１０６に対してビットシフトをしないように指示するビットシフト指示信号を出力する（ステップＳ３０４）。
【０１３２】
当該入力選択指示信号に応じて、入力選択部１０２は、演算データ保存部１１２に保存された行方向２回目演算結果と行方向６回目演算結果とを読み出し、４画素分の入力データを、図７のように、対応する端子ｐ１からｐ８に入力する。
【０１３３】
当該ビットシフト指示信号に応じて、ビット演算部１０３、１０４、１０５、１０６は、入力されたデータをビットシフトしないでビットシフト画素データとして出力する。
【０１３４】
加算部１０７、１１０、および減算部１０８、１０９は、演算を行う。演算データ保存部１１２は、行方向７回目演算結果および行方向８回目演算結果を行方向に保存する。行方向７回目演算結果および行方向８回目演算結果によって、行方向演算における１行分の演算結果が得られる。
【０１３５】
ループＬ６の処理が、残り７行分実行される。それによって、８×８行列行方向演算結果が得られ、演算データ保存部１１２に保存される。
【０１３６】
次に、整数変換器１０００は、得られた８×８行列行方向演算結果に対して、列方向の演算を行う。列方向の演算において、演算制御部１０１は、８×８行列行方向演算結果の１列毎に、ループＬ６に示す８回の演算を演算部１００に実行させて１列のデータを得て、全部で８列のデータを得るように、ループＬ６に示す８回の演算を演算部１００に実行させる。この列方向の演算によって得られた８列の画素データは、８×８逆整数変換によって得られた最終結果となる。よって、演算データ保存部１１２は、当該８列分の画素データを出力画素行列として、出力する。
【０１３７】
このようにして、整数変換器１０００は、８×８逆整数変換を行うことができる。
【０１３８】
上述のように、演算制御部１０１は、４×４逆整数変換および８×８逆整数変換での演算手順を、演算部１００における１回の演算で実行可能な単位に、演算回数に対応させて分割して定義している。そして、演算制御部は、使用する変換モードおよび演算回数に応じて、入力選択部１０２が端子ｐ１〜ｐ８に入力する画素データの組み合わせを制御し、ビット演算部１０３〜１０６でのビットシフト量（乗算係数）を制御する。これによって、単一の整数変換器１０００を用いて、４×４逆整数変換および８×８逆整数変換の切り換えを実現することができる。
【０１３９】
（４×４整数変換の場合の動作）
４×４整数変換の行方向の変換式は、数６で与えられるため、図９に示すように、入力選択部１０２は、画素データを端子ｐ１〜ｐ８に入力する。演算制御部１０１は、ビット演算部１０５，１０６におけるビットシフト量を第２回目の演算において、左に１ビットシフトするように演算制御を行う。なお、これによって、４×４整数変換が、図３に示す回路によって実現することができる。
【数６】
0004704333.tif 000007
なお、数６および図９において、ｄ［ｉ］［ｊ］がｉｎ［ｉ］に対応し、ｅ［ｉ］［ｊ］がａ［ｉ］に対応し、ｆ［ｉ］［ｊ］がｂ［ｉ］に対応する。
【０１４０】
（８×８整数変換の場合の動作）
８×８整数変換の行方向の演算式は、数７で与えられるため、図１０Ａに示すように、入力選択部１０２は、画素データを端子ｐ１〜ｐ８に入力する。演算制御部１０１は、ビットシフト量を調整して、演算制御を行う。
【数７】
0004704333.tif 000008
なお、数７および図１０Ａにおいて、ｆ［ｉ］［ｊ］がｉｎ［ｉ］に対応し、ｇ［ｉ］［ｊ］がａ［ｉ］に対応し、ｋ［ｉ］［ｊ］がｏｕｔ［ｉ］に対応する。なお、ｈ，ｂ，ｂ１，ｂ２の対応関係は、数７および図１０Ａから理解できる。
【０１４１】
（Ｉｎｔｒａ１６×１６のアダマール変換の場合の動作）
Ｉｎｔｒａ１６×１６のアダマール変換の場合、４×４単位でアダマール変換が実行される。アダマール変換は、図３０に示したように、１６×１６の時間領域を４×４単位で整数変換して得られるＤＣ成分を抽出して、４×４の行列にして、変換する。アダマール変換のための変換式は、数８のように表される。
【数８】
0004704333.tif 000009
ここで、Ｃij（ｉ，ｊ＝０，１，…３）は、抽出されたＤＣ成分を示す。
【０１４２】
（１）を展開すると、数９のようになる。
【数９】
0004704333.tif 000010
【０１４３】
ここで、数１０のように定義する。
【数１０】
0004704333.tif 000011
【０１４４】
すると、数９は、数１１のようになる。
【数１１】
0004704333.tif 000012
【０１４５】
数１１を数１２のように定義する。
【数１２】
0004704333.tif 000013
【０１４６】
数１２を用いて、数８の（２）を展開すると、数１３のようになる。
【数１３】
0004704333.tif 000014
【０１４７】
ここで、数１４のように定義する。
【数１４】
0004704333.tif 000015
【０１４８】
すると、数１３は、数１５のようになる。
【数１５】
0004704333.tif 000016
【０１４９】
上記のような計算結果より、Ｉｎｔｒａ１６×１６のアダマール変換は、図３の整数変換器１０００で演算することができることが分かる。すなわち、整数変換器１０００は、以下の演算手順で、演算を実行すればよい。
（ステップ１）演算制御部１０１は、ＤＣ成分の４×４行列（Ｃij）の１行４係数分を横方向に読み出し、対応する端子ｐ１〜ｐ８に入力する。なお、どの端子に入力すべきかは、上記の式から定義できる。
（ステップ２）演算制御部１０１は、ビットシフトしない旨のビットシフト指示信号を出力する。
（ステップ３）第１回目の演算において、加算部１０７，１１０および減算部１０８，１０９は、数１０に示すＡ，Ｂ，Ｃ，Ｄを算出し、演算データ保存部１１２に保存する。
（ステップ４）第２回目の演算において、演算制御部１０１によって、演算データ保存部１１２からＡ，Ｂ，Ｃ，Ｄを読み出す旨の入力選択指示信号およびビットシフト指示信号が出力され、加算部１０７，１１０および減算部１０８，１０９は、数１１に示す第１行目を演算する。これによって、数９に示す第１行目の演算が完了する。
（ステップ５）同様にして、数９に示す第２行目〜第４行目までの演算が行われる。結果、数１２が得られる。
（ステップ６）そして、演算制御部１０１は、列方向の演算を実行して、数１３に示す行列を得る。この列方向の演算も、ステップ５までの行方向の演算と同様であるので、演算部１００によって、実行可能である。
【０１５０】
このように、Ｉｎｔｒａ１６×１６のアダマール変換も、演算制御部１０１は、演算部における１回の演算で実行可能な単位に分割して、演算回数と対応させて定義している。したがって、演算回数に応じて、演算制御部１０１は、演算部１００に入力すべき画素データの組み合わせおよびビットシフト量を制御することによって、Ｉｎｔｒａ１６×１６のアダマール変換を実行することができる。なお、上記では、符号化の場合のアダマール変換について説明したが、復号化の場合のアダマール変換についても、変換式が同じであるので、整数変換器１０００を用いて、実行することができる。
【０１５１】
（Ｃｈｒｏｍａアダマール変換の場合の動作）
Ｃｈｒｏｍａアダマール変換の場合、２×２単位でアダマール変換が実行される。Ｃｈｒｏｍａアダマール変換のための変換式は、数１６のように表される。
【数１６】
0004704333.tif 000017
【０１５２】
ここで、Ｃij（ｉ，ｊ＝０，１）は、抽出されたＤＣ成分を示す。
【０１５３】
（３）を展開すると、数１７のようになる。
【数１７】
0004704333.tif 000018
【０１５４】
ここで、数１８のように定義する。
【数１８】
0004704333.tif 000019
【０１５５】
そして、（４）を展開すると、数１９のようになる。
【数１９】
0004704333.tif 000020
【０１５６】
上記のような計算結果により、Ｃｈｒｏｍａアダマール変換は、図３の整数変換器１０００で演算することができることが分かる。すなわち、整数変換器１０００は、以下の演算手順で、演算を実行する。
（ステップ１）演算制御部１０１は、２×２行列（Ｃij）の４係数分を入力選択部１０２に読み出させ、対応する端子ｐ１〜ｐ８に入力する。なお、どの端子に入力すべきかは、上記の式から容易に推定できるので、省略する。
（ステップ２）加算部１０７，１１０および減算部１０８，１０９によって、Ａ，Ｂ，Ｃ，Ｄが算出され、演算データ保存部１１２に保存される。
（ステップ３）演算制御部１０１は、演算データ保存部１１２に保存されているＡ，Ｂ，Ｃ，Ｄを入力選択部１０２に読み出させ、数１９の計算が行えるように、端子ｐ１〜ｐ８に入力させる。これによって、演算部１００は、数１９に示す結果を計算することができる。
【０１５７】
このように、Ｃｈｒｏｍａアダマール変換も、演算制御部１０１は、演算部における１回の演算で実行可能な単位に分割して、演算回数と対応させて定義している。したがって、演算回数に応じて、演算制御部１０１は、演算部１００に入力すべき画素データの組み合わせおよびビットシフト量を制御することによって、Ｃｈｒｏｍａアダマール変換を実行することができる。なお、上記では、符号化の場合のＣｈｒｏｍａアダマール変換について説明したが、復号化の場合のＣｈｒｏｍａアダマール変換についても、変換式が同じであるので、整数変換器１０００を用いて、実行することができる。
【０１５８】
なお、単に、アダマール変換と言った場合、Ｉｎｔｒａ１６×１６アダマール変換、およびＣｈｒｏｍａアダマール変換のことを意味するものとする。
【０１５９】
上述のように、演算制御部１０１は、４×４逆整数変換、８×８逆整数変換、４×４整数変換、８×８整数変換、およびアダマール変換での演算手順を、演算部１００における１回の演算で実行可能な単位に、演算回数に対応させて分割して定義している。そして、演算制御部は、使用する変換モードおよび演算回数に応じて、入力選択部１０２が端子ｐ１〜ｐ８に入力する画素データの組み合わせを制御し、ビット演算部１０３〜１０６でのビットシフト量（乗算係数）を制御する。これによって、単一の整数変換器１０００を用いて、４×４逆整数変換、８×８逆整数変換、４×４整数変換、８×８整数変換、およびアダマール変換の切り換えを実現することができる。
【０１６０】
その理由は、以下の通りである。第１の実施形態で示した変換式の内、図７に示す８×８逆整数変換における第５回目の演算式は、４つの値（たとえば、ａ１［１］，ａ１［５］，ａ２［１］，ａ２［５］）を入力して、２つの値（たとえば、ａ［１］，ａ［５］）を出力する二つの演算式が一組（＊１）となって、このような演算式が二組（＊１および＊２）存在する。それ以外の演算式は、２つの値を入力して２つの値を出力する演算式となっている。８×８逆整数変換における第５回目の演算式が実現できる回路の最低限の構成は、端子ｐ１〜ｐ４、ビット演算部１０３，１０４、加算部１０７、および減算部１０８である。演算部１００では、当該最低限の構成をさらにもう一つ用意している（端子ｐ５〜ｐ８、ビット演算部１０５，１０６、減算部１０９、および加算部１１０）。当該最小限の構成を、４入力２出力回路ということにする。４入力２出力回路は、８×８逆整数変換における第５回目の演算式以外の演算式のように、二つの端子に同じ値が入力されれば、２入力２出力の回路として機能する。したがって、４×４逆整数変換、８×８逆整数変換、４×４整数変換、８×８整数変換、Ｉｎｔｒａ１６×１６のアダマール変換（４×４のアダマール変換）、およびＣｈｒｏｍａアダマール変換（２×２のアダマール変換）を、４入力２出力回路または２入力２出力回路で演算可能な演算式によって定義することによって、データを入力する端子およびビットシフト量さえ演算制御部１０１によって制御すれば、共通の整数変換器を用いて、変換を実現することができる。
【０１６１】
よって、画像符号化装置および画像復号化装置は、単一の整数変換器を必要に応じて、使用する規格を変更しながら、時分割で使用することができ、様々な符号化規格に対応しながらも、小型化を図ることができる。
【０１６２】
（第２の実施形態）
第２の実施形態では、演算部が二つ含まれている整数変換器について説明する。第２の実施形態に係る整数変換器では、演算部が二つ存在するので、整数変換のための処理速度を向上させることができる。
【０１６３】
図１１は、本発明の第２の実施形態に係る整数変換器２０００の構成を示すブロック図である。第２の実施形態に係る整数変換器２０００は、図１に示す整数変換部１２および逆整数変換部１６、ならびに図２に示す逆整数変換部２５に適用される。図１および図２以外の画像復号化装置および画像符号化装置にあっても、整数変換または逆整数変換を行う部分に、図１１に示す整数変換器２０００が適用される。
【０１６４】
図１１において、整数変換器２０００は、第１の演算部１１００と、第２の演算部２１００と、入力データ保存部１１１と、演算データ保存部１１２と、演算制御部２０１とを含む。図１１において、第１の実施形態と同様の機能を有する部分については、同一の参照符号を付し、説明を省略する。
【０１６５】
図１２は、第１の演算部１１００の構成を示すブロック図である。図１２において、第１の演算部１１００は、入力選択部１１０２と、ビット演算部１１０３、１１０４、１１０５、１１０６と、加算部１１０７、１１１０と、減算部１１０８、１１０９とを有する。第１の演算部１１００の内部構成は、第１の実施形態に示す演算部１００と同様であるので、説明を省略する。
【０１６６】
図１３は、第２の演算部２１００の構成を示すブロック図である。図１３において、第１の演算部２１００は、入力選択部２１０２と、ビット演算部２１０３、２１０４、２１０５、２１０６と、加算部２１０７、２１１０と、減算部２１０８、２１０９とを有する。第２の演算部２１００の内部構成は、第１の実施形態に示す演算部１００と同様であるので、説明を省略する。
【０１６７】
演算制御部２０１は、第１の演算部１１００の入力選択部１１０２が入力データ保存部１１１からデータを読み出すか、演算データ保存部１１２から行方向でデータを読み出すか、それとも演算データ保存部１１２から列方向でデータを読み出すかを示す指示と、現在の演算回数を示す指示とを含む第１の入力選択指示信号を出力する。また、演算制御部２０１は、変換モード（４×４アダマール変換、２×２アダマール変換、４×４逆整数変換、８×８逆整数変換、４×４整数変換、または８×８整数変換）と演算回数とに基づいて、ビット演算部１１０３、１１０４、１１０５、１１０６のビットシフト量を決定し、ビット演算部１１０３、１１０４、１１０５、１１０６に対して、決定したビットシフト量を第１のビットシフト指示信号として出力する。
【０１６８】
同様に、演算制御部２０１は、第２の演算部２１００の入力選択部２１０２が入力データ保存部１１１からデータを読み出すか、演算データ保存部１１２から行方向でデータを読み出すか、それとも演算データ保存部１１２から列方向でデータを読み出すかを示す指示と、現在の演算回数を示す指示とを含む第２の入力選択指示信号を出力する。また、演算制御部２０１は、変換モード（４×４アダマール変換、２×２アダマール変換、４×４逆整数変換、８×８逆整数変換、４×４整数変換、または８×８整数変換）と演算回数とに基づいて、ビット演算部２１０３、２１０４、２１０５、２１０６のビットシフト量を決定し、ビット演算部２１０３、２１０４、２１０５、２１０６に対して、決定したビットシフト量を第２のビットシフト指示信号として出力する。
【０１６９】
４×４アダマール変換、２×２アダマール変換、４×４逆整数変換、および４×４整数変換の場合、演算制御部２０１は、第１の演算部１１００を用いて、変換処理を行うように、第１の入力選択指示信号および第１のビットシフト指示信号を出力する。このときの整数変換器２０００は、第２の演算部２１００が使用されない以外は、第１の実施形態に係る整数変換器１０００の動作と同様であるので、説明を省略する。
【０１７０】
演算制御部２０１は、８×８逆整数変換および８×８整数変換の場合に、第１および第２の演算部１１００、２１００を使用して、変換処理速度を向上させる。
【０１７１】
（８×８逆整数変換の場合の動作）
図１５は、演算回数に対応した第１の演算部１１００での演算式および第２の演算部２１００での演算式を示す図である。図１５に示すような関係が演算制御部２０１に定義されている。定義方法は、図１５のようなテーブル形式に限るものではなく、特に限定されない。
【０１７２】
図１５に示す処理番号は、図７に示す演算回数と対応し、それぞれの演算式が同じである。例えば、図１５における処理番号３は、図７における第３回目の演算回数に対応する。図１５に示す演算において、第１および第２の演算部１１００，２１００は、処理番号に対応する演算に必要なデータを、入力データ保存部１１１または演算データ保存部１１２から読み出して、同様の演算を実行する。
【０１７３】
図１６は、８×８逆整数変換において、行方向の演算を実行するときの演算制御部２０１の動作を示すフローチャートである。以下、図１６を参照しながら、８×８逆変換において、行方向の演算を実行するときの演算制御部２０１の動作について説明する。
【０１７４】
図１６において、ループＬ７は、入力された８×８の画素データの全ての行（８行）に渡って、ループＬ７内の演算が完了したときを終了条件とするループである。ループＬ８は、図１６に示す行方向の演算回数が４回に達したときを終了条件するループである。以下、入力された８×８の画素データを入力画素行列という。
【０１７５】
入力画素行列の行方向１回目（ループＬ８＝１回目、ステップＳ４００＝１回目）の演算のとき、演算制御部２０１は、第１の入力選択指示信号を出力して第１の演算部１１００に入力し（ステップＳ４０１）、第２の入力選択指示信号を出力して第２の演算部２１００に入力する（ステップＳ４０２）。当該第１の入力選択指示信号には、入力データ保存部１１１から入力画素データｉｎ［１］、ｉｎ［３］、ｉｎ［５］、ｉｎ［７］を読み出すための指示と、処理番号が３である旨の通知とが含まれている。当該第２の入力選択指示信号には、入力データ保存部１１１から入力画素データｉｎ［１］、ｉｎ［３］、ｉｎ［５］、ｉｎ［７］の読み出すための指示と、処理番号が４である旨の通知とが含まれている。
【０１７６】
第１および第２の入力選択指示信号に応じて、入力選択部１１０２、２１０２は、第１の実施形態における入力選択部１０２の第３および第４回目の演算と同様に動作する。
【０１７７】
次に、演算制御部２０１は、第１のビットシフト指示信号を出力し（ステップＳ４０３）、第２のビットシフト指示信号を出力する（ステップＳ４０４）。当該第１のビットシフト指示信号には、ビット演算部１１０５、１１０６に対して１ビット右シフトさせる指示が含まれる。当該第２のビットシフト指示信号には、ビット演算部２１０５、２１０６に対して１ビット右シフトさせる指示が含まれる。
【０１７８】
第１および第２のビットシフト指示信号に応じて、第１および第２の演算部１１００、２１００は、第１の実施形態における演算部１００の第３および第４回目の演算と同様に動作する。
【０１７９】
行方向２回目（ループＬ８＝２回目、ステップＳ４００＝２回目）の演算のとき、演算制御部２０１は、第１の入力選択指示信号を出力して第１の演算部１１００に入力し（ステップＳ４１１）、第２の入力選択指示信号を出力して第２の演算部２１００に入力する（ステップＳ４１２）。当該第１の入力選択指示信号には、入力データ保存部１１１から入力画素データｉｎ［０］、ｉｎ［２］、ｉｎ［４］、ｉｎ［６］を読み出すための指示と、処理番号が１である旨の通知とが含まれている。当該第２の入力選択指示信号には、演算データ保存部１１２に保存された行方向一回目の演算結果を読み出すための指示と、処理番号が５である旨の通知とが含まれている。
【０１８０】
第１および第２の入力選択指示信号に応じて、入力選択部１１０２、２１０２は、第１の実施形態における入力選択部１０２の第１および第５回目の演算と同様に動作する。
【０１８１】
次に、演算制御部２０１は、第１のビットシフト指示信号を出力し（ステップＳ４１３）、第２のビットシフト指示信号を出力する（ステップＳ４１４）。当該第１のビットシフト指示信号には、ビット演算部１１０５、１１０６に対して１ビット右シフトさせる指示が含まれる。当該第２のビットシフト指示信号には、ビット演算部２１０３、２１０４、２１０５、２１０６に対してビットシフトを行わせない指示が含まれる。
【０１８２】
第１および第２のビットシフト指示信号に応じて、第１および第２の演算部１１００、２１００は、第１の実施形態における演算部１００の第１および第５回目の演算と同様に動作する。
【０１８３】
行方向３回目（ループＬ８＝３回目、ステップＳ４００＝３回目）の演算のとき、演算制御部２０１は、第１の入力選択指示信号を出力して第１の演算部１１００に入力し（ステップＳ４２１）、第２の入力選択指示信号を出力して第２の演算部２１００に入力する（ステップＳ４２２）。当該第１の入力選択指示信号には、演算データ保存部１１２から行方向２回目の演算結果を読み出すための指示と、処理番号が２である旨の通知とが含まれている。当該第２の入力選択指示信号には、演算データ保存部１１２から行方向２回目の演算結果を読み出すための指示と、処理番号が６である旨の通知とが含まれている。
【０１８４】
第１および第２の入力選択指示信号に応じて、入力選択部１１０２、２１０２は、第１の実施形態における入力選択部１０２の第２および第６回目の演算と同様に動作する。
【０１８５】
次に、演算制御部２０１は、第１のビットシフト指示信号を出力し（ステップＳ４２３）、第２のビットシフト指示信号を出力する（ステップＳ４２４）。当該第１のビットシフト指示信号には、ビット演算部１１０３、１１０４、１１０５、１１０６に対してビットシフトを行わせない指示が含まれる。当該第２のビットシフト指示信号には、ビット演算部２１０３、２１０４、２１０５、２１０６に対して２ビット右シフトさせるための指示が含まれる。
【０１８６】
第１および第２のビットシフト指示信号に応じて、第１および第２の演算部１１００、２１００は、第１の実施形態における演算部１００の第２および第６回目の演算と同様に動作する。
【０１８７】
行方向４回目（ループＬ８＝４回目、ステップＳ４００＝４回目）の演算のとき、演算制御部２０１は、第１の入力選択指示信号を出力して第１の演算部１１００に入力し（ステップＳ４３１）、第２の入力選択指示信号を出力して第２の演算部２１００に入力する（ステップＳ４３２）。当該第１の入力選択指示信号には、演算データ保存部１１２から行方向３回目の演算結果を読み出すため指示と、処理番号が７である旨の通知とが含まれている。当該第２の入力選択指示信号には、演算データ保存部１１２から行方向３回目の演算結果を読み出すため指示と、処理番号が８である旨の通知とが含まれている。
【０１８８】
第１および第２の入力選択指示信号に応じて、入力選択部１１０２、２１０２は、第１の実施形態における入力選択部１０２の第７および第８回目の演算と同様に動作する。
【０１８９】
次に、演算制御部２０１は、第１のビットシフト指示信号を出力し（ステップＳ４３３）、第２のビットシフト指示信号を出力する（ステップＳ４３４）。当該第１のビットシフト指示信号には、ビット演算部１１０３、１１０４、１１０５、１１０６に対してビットシフトを行わせない指示が含まれる。当該第２のビットシフト指示信号には、ビット演算部２１０３、２１０４、２１０５、２１０６に対してビットシフトを行わせない指示が含まれる。
【０１９０】
第１および第２のビットシフト指示信号に応じて、第１および第２の演算部１１００、２１００は、第１の実施形態における演算部１００の第７および第８回目の演算と同様に動作する。
【０１９１】
ループＬ８の処理が、残り７行分実行される。それによって、８×８行列行方向演算結果が得られ、演算データ保存部１１２に保存される。
【０１９２】
次に、整数変換器２０００は、得られた８×８行列行方向演算結果に対して、列方向の演算を行う、列方向の演算において、８×８行列行方向演算結果の１列毎に、ループＬ８に示す４回の演算を第１および第２の演算部１１００、２１００に実行させ、１列のデータを得て、全部で８列のデータを得るように、ループ８に示す４回の演算を第１および第２の演算部１１００、２１００に実行させる。この列方向の演算によって得られた８列の画素データは、８×８逆整数変換によって得られた最終結果となる。よって、演算データ保存部１１２は、当該８列分の画素データを出力画素行列として、出力する。
【０１９３】
このようにして、整数変換器２０００は、８×８逆整数変換を行うことができる。
【０１９４】
（８×８整数変換の場合の動作）
上記の８×８逆整数変換の説明において、図７の処理手順を図１５の処理順序で行ったのと同様に、図１０Ａの処理番号（１，２）、（４，５）、（３，６）、（７，８）をそれぞれ同時に行うことで、図１１の回路を用いて、８×８整数変換が実現できる。
【０１９５】
なお、上記実施形態では、第１および第２の整数変換器１１００、２１００を並列に接続して、演算を並列に行わせることとしたが、第１および第２の整数変換器１１００、２１００を直列に接続して、処理速度を向上させてもよい。具体的には、図３に示す演算部１００を直列に接続し、演算制御部が、必要なデータを各演算部１００の入力選択部１０２に取得させ、後段の演算部１００で演算をしている間に、次の演算を前段の演算部１００で実行すればよい。たとえば、４×４の逆整数変換の演算で、図４の１回目の計算を前段の演算部１１００で行わせ、２回目の計算を後段の演算部２１００で行わせ、前段の演算部１１００へ行方向データを順次入力することで、後段の演算部２１００から行方向の結果を順に得ることができ、第１の実施形態より処理速度が向上する。
【０１９６】
なお、本発明は、整数変換器が２つである場合に限らず、３つ以上の複数であってもよい。３つ以上の複数であっても、整数変換器は、並列または直列に接続され、演算制御部によって、入力されるデータおよびビットシフト量が制御されれば、正しく、変換処理を実行することができる。たとえば、図１４に示すように、演算部を構成することによって、図７の演算回数に対応した演算を図１４に示す各演算部が実行することができる。これによって、８×８逆整数変換の処理速度を向上させることができる。なお、４×４逆変換などでは、１回目および２回目の演算部のみを使って、破線のパスから、入力データ保存部に出力するとよい。
【０１９７】
なお、上記実施形態では、演算部を並列または直列に接続して、８×８逆整数変換、８×８整数変換をパイプライン処理することとしたが、４×４逆整数変換、４×４整数変換、４×４のアダマール変換、および２×２のアダマール変換についても、演算部を並列または直列に接続して、パイプライン処理を実行してもよい。具体的には、演算式毎に、異なる演算部を使用すれば、処理速度が向上する。
【０１９８】
なお、上記実施形態では、演算式毎に、異なる演算部を使用して、８×８逆整数変換、８×８整数変換、４×４逆整数変換、４×４整数変換、４×４のアダマール変換、および２×２のアダマール変換の高速化を図ることとしたが、画素毎に、異なる演算部を使用して、処理速度を向上させてもよい。
【０１９９】
第２の実施形態によれば、演算制御部２０１は、演算回数に対応させて、複数の演算部の内、いずれの演算部に、必要な画素データを入力し、必要な演算を実行させるかを予め定義しておいて、複数の演算部を並列または直列に使用する。このように、基本となる演算部を並列または直列に接続して使用することで、簡単な構成でパイプライン処理が可能となり、処理速度が向上する画像符号化装置および画像復号化装置を提供することができる。
【０２００】
（第３の実施形態）
第３の実施形態では、ＤＣＴ、逆ＤＣＴ、４×４整数変換、４×４逆整数変換、８×８整数変換、８×８逆整数変換、４×４アダマール変換、２×２アダマール変換、および新たに追加される未知の変換方式に対応することが可能でありながらも、小型化された画像符号化装置および画像復号化装置について説明する。
【０２０１】
まず、画像符号化装置および画像復号化装置の概略的な構成について説明する。図１７は、画像符号化装置３の概略的構成を示すブロック図である。図１７では、時間領域を周波数領域に変換して圧縮するための構成のみ示し、動き補償予測等によって圧縮するための構成については、省略している。図１７において、画像符号化装置３は、画像データ入力部３１と、時間周波数変換部３２と、量子化部３３と、圧縮データ出力部３４とを備える。画像データ入力部３１は、時間領域の画像データを時間周波数変換部３２に入力する。時間周波数変換部３２は、時間領域の画像データを周波数領域の画像データに変換する。時間周波数変換部３２は、ＤＣＴ、４×４整数変換、８×８整数変換、４×４アダマール変換、２×２アダマール変換、または新たに追加される未知の変換方式のいずれかを用いて、時間領域から周波数領域への変換を実行する。量子化部３３は、当該周波数領域の画像データを可変長符号化して、量子化することによって、元の画像データを圧縮する。圧縮データ出力部３４は、圧縮された画像データを出力したり、保存したりする。
【０２０２】
図１８は、画像復号化装置４の概略的構成を示すブロック図である。図１８では、周波数領域を時間領域に変換して復号化するための構成のみを示し、動き補償予測等によって復号化するための構成についは、省略している。図１８において、画像復号化装置４は、圧縮データ入力部４１と、逆量子化部４２と、周波数時間変換部４３と、画像データ出力部４４とを備える。圧縮データ入力部４１は、圧縮された画像データを逆量子化部４２に入力する。逆量子化部４２は、当該画像データを逆量子化し、可変長復号化することによって、周波数領域の画像データを得る。周波数時間変換部４３は、当該周波数領域の画像データを時間領域の画像データに変換する。周波数時間変換部４３は、逆ＤＣＴ、４×４逆整数変換、８×８逆整数変換、４×４アダマール変換、２×２アダマール変換、または新たに追加される未知の変換方式のいずれかを用いて、周波数領域から時間領域への変換を実行する。画像データ出力部４４が、周波数時間変換部４３によって得られた時間領域の画像データを出力したり、保存したりする。
【０２０３】
時間周波数変換部３２および周波数時間変換部４３は、ＤＣＴ、逆ＤＣＴ、４×４整数変換、４×４逆整数変換、８×８整数変換、８×８逆整数変換、４×４アダマール変換、２×２アダマール変換、および新たに追加される新規の変換方式を実行することができる。時間周波数変換部３２および周波数時間変換部４３は、共通の構成で実現できる。以下、時間周波数変換部３２および周波数時間変換部４３を、単に、変換器３０００と呼ぶことにする。
【０２０４】
図１９は、変換器３０００の構成を示すブロック図である。図１９において、変換器３０００は、入力データ保存部３００１と、入力選択部３００２と、演算部３０１０と、演算データ保存部３００９と、乗数設定部３０１１と、演算順序管理部３０１２と、変換モード設定部３０１３と、第１の乗数保存部３０１４と、第２の乗数保存部３０１５と、新変換モード乗数保存部３０１６と、新乗数設定部３０１７とを含む。演算部３０１０は、乗算部３００３、３００４、３００５、３００６と、加算部３００７、３００８とを有する。乗数設定部３０１１と、演算順序管理部３０１２と、変換モード設定部３０１３と、第１の乗数保存部３０１４と、第２の乗数保存部３０１５と、新変換モード乗数保存部３０１６と、新乗数設定部３０１７とによって、演算制御部が構成される。
【０２０５】
第３の実施形態で利用可能な変換方式は、ＤＣＴ、逆ＤＣＴ、４×４整数変換、４×４逆整数変換、８×８整数変換、８×８逆整数変換、４×４アダマール変換、２×２アダマール変換、および新たに追加される新規の変換方式である。新規の変換モードは、図示しないプロセッサによって、変換モード設定部３０１３に設定される。
【０２０６】
入力データ保存部３００１は、変換する対象のデータを保存するメモリである。演算データ保存部３００９は、演算部３０１０から出力された演算後のデータを保存するメモリである。
【０２０７】
演算順序管理部３０１２は、変換モード設定部３０１３で管理されている変換モードに応じて、変換のための演算回数を管理し、現在何回目の演算であるかを入力選択部３００２に通知する。入力選択部３００２は、演算順序管理部３０１２からの通知に応じて、入力データ保存部３００１または演算データ保存部３００９から、必要なデータを読み出し、端子ｐ１〜ｐ４の内、適切な端子に、読み出したデータを入力する。変換方式および演算回数に応じて、入力選択部３００２が入力データ保存部３００１からどのデータを読み出すか、入力選択部３００２が演算データ保存部３００９からどのデータを読み出すかは、予め決められている。
【０２０８】
第１の乗数保存部３０１４は、ＤＣＴおよび逆ＤＣＴ用の変換に必要な乗数（乗数係数）を保存している。なお、画像符号化装置３では、第１の乗数保存部３０１４は、ＤＣＴ用の乗数を保存しているだけでよい。また、画像復号化装置４では、第１の乗数保存部３０１４は、逆ＤＣＴ用の乗数を保存しているだけでよい。
【０２０９】
第２の乗数保存部３０１４は、Ｈ．２６４における変換のための乗数、すなわち、４×４整数変換、４×４逆整数変換、８×８整数変換、８×８逆整数変換、４×４アダマール変換、および２×２アダマール変換に必要な乗数を保存している。なお、画像符号化装置３では、第１の乗数保存部３０１４は、４×４整数変換、８×８整数変換、４×４アダマール変換、および２×２アダマール変換用の乗数を保存しているだけでよい。また、画像復号化装置４では、第１の乗数保存部３０１４は、４×４逆整数変換、８×８逆整数変換、４×４アダマール変換、および２×２アダマール変換用の乗数を保存しているだけでよい。
【０２１０】
新乗数設定部３０１７は、新たな変換モードを導入する必要が生じたときに、新たな変換モードで使用する乗数を演算回数と対応付けて設定することができる。新変換モード乗数保存部３０１６は、図示しないプロセッサ等によって新乗数設定部３０１７から設定された新たな乗数を保存するメモリである。
【０２１１】
乗数設定部３０１１は、演算回数に対応させて、乗算部３００３〜３００６で使用すべき乗数を、予め記憶している。乗数設定部３０１１は、変換モード設定部３０１３で管理されている現在の変換モード、および演算順序管理部３０１２で管理されている演算回数に応じて、必要な乗数を第１〜第３の乗数保存部３０１４、３０１５、３０１６のいずれかから読み出す。乗数設定部３０１１は、読み出した乗数を、適切な乗算部３００３〜３００６に入力する。
【０２１２】
演算部３０１０において、乗算部３００３〜３００６は、端子ｐ１〜ｐ４に入力されたデータに、乗数設定部３０１１からの乗数を掛け算して出力する。加算部３００７は、乗算部３００３、３００４から出力されるデータを加算して出力する。加算部３００８は、乗算部３００５、３００６から出力されるデータを加算して出力する。加算部３００７、３００８から出力されたデータは、演算データ保存部３００９に保存される。演算データ保存部３００９は、行方向および列方向の全ての演算が終了したら、演算結果を出力画素データとして出力する。
【０２１３】
次に、演算部３０１０の構成によって、ＤＣＴ、逆ＤＣＴ、４×４整数変換、４×４逆整数変換、８×８整数変換、８×８逆整数変換、４×４アダマール変換、および２×２アダマール変換のすべてが演算可能である理由について説明する。
【０２１４】
図２０は、演算部３０１０における演算の流れを説明するためのデータフローである。まず、図２０の見方について説明する。図２０において、右側のα、βが、入力を示す。左側のγ、δが、出力を示す。線上のａ、ｂ、ｃ、ｄは、乗数を示す。図２０に示すデータフローによって、γ＝ｂ×α＋ｃ×β、δ＝ｄ×α＋ａ×βが得られる。演算部３０１０において、端子ｐ１の入力をαとし、端子ｐ３の入力をβとし、乗算部３００３での乗数をｄとし、乗算部３００４での乗数をａとすると、加算部３００７から出力される値は、δ＝ｄ×α＋ａ×βとなる。また、演算部３０１０において、端子ｐ２の入力をαとし、端子ｐ４の入力をβとし、乗算部３００５での乗数をｂとし、乗算部３００６での乗数をｃとすると、加算部３００８から出力される値は、γ＝ｂ×α＋ｃ×βとなる。したがって、図２０に示す基本データフローは、演算部３０１０による演算によって得られるデータフローを示していると言える。
【０２１５】
このように、演算部３０１０は、図２０に示すように、２入力２出力のデータフローを構成することができる演算処理を実行することができる。２入力２出力のデータフローを構成することができる演算処理を基本単位の演算処理という。
【０２１６】
変換器３０００が扱いたい変換モードを、図２０に示す基本データフローによる演算の繰り返しによって実現することができれば、ＤＣＴ、逆ＤＣＴ、４×４整数変換、４×４逆整数変換、８×８整数変換、８×８逆整数変換、４×４アダマール変換、および２×２アダマール変換のすべてを、変換器３０００に実行させることができる。したがって、演算制御部は、各変換モードでの演算手順を、演算回数毎に、上記基本単位となる演算処理に分割して定義し、基本単位となる演算処理を演算部３０１０に繰り返させることによって、各変換の実行が可能となる。
【０２１７】
そこで、本発明者は、ＤＣＴ、逆ＤＣＴ、４×４整数変換、４×４逆整数変換、８×８整数変換、８×８逆整数変換、４×４アダマール変換、および２×２アダマール変換のそれぞれについて、演算式を操作することによって、基本単位の演算を繰り返すデータフローを得ることができた（図２１から図２７参照）。
【０２１８】
図２１は、逆ＤＣＴ変換のデータフローを示す図である。図２１において、たとえば、点線の矩形で囲った部分Ａの演算の流れについて説明する。図２１において、ＣＳk＝Ｃｏｓ（ｋπ／１６）である。入力データＸ0は、端子ｐ１およびｐ２に入力される。入力データＸ4は、端子ｐ３およびｐ４に入力される。乗算部３００３の乗数は、ＣＳ4であるとする。乗算部３００４の乗数は、ＣＳ4であるとする。乗算部３００５の乗数は、ＣＳ4であるとする。乗算部３００６の乗数は、−ＣＳ4であるとする。これによって、加算部３００７からは、ｐ’i4が出力される。加算部３００８からは、ｐ’i0が出力される。図２１に示すデータフローは、すべて、部分Ａのように、基本単位のデータフロー（以下、基本データフローという）の組み合わせによって構成されている。ここで、基本データフローの演算を実行することを一回の演算という。よって、乗数設定部３０１１は、変換モード設定部３０１３によって現在の変換モードが逆ＤＣＴであると設定されている場合、図２１に示すデータフローに従って、演算回数毎に対応する乗数を乗算部３００３〜３００６に入力する。入力選択部３００２は、必要なデータを入力データ保存部３００１または演算データ保存部３００９から読み出して、演算回数に対応させて、端子ｐ１〜ｐ４に入力する。
【０２１９】
図２１に示すデータフローに基づいて、どのように、変換器３０００は、演算部３０１０に乗数およびデータを入力すればよいかについて、念のため説明しておく。図２１に示すデータフローについて、変換器３０００の設計者は、まず、一つの基本データフローを選び出す。次に、選んだ基本データフローにおいて、図２０に示すαに対応するデータが、端子ｐ１およびｐ２に入力されるべきであると決める。図２０に示すβに対応するデータが、端子ｐ３およびｐ４に入力されるべきであると決める。図２０に示すａに対応する乗数は、乗算部３００６に入力されるべきであると決める。図２０に示すｂに対応する乗数は、乗算部３００３に入力されるべきであると決める。図２０に示すｃに対応する乗数は、乗算部３００４に入力されるべきであると決める。図２０に示すｄに対応する乗数は、乗算部３００５に入力されるべきであると決める。このような規則を、選び出した基本データフロー毎（演算回数毎）に定義しておいて、入力選択部３００２、演算順序管理部３０１２、乗数設定部３０１１、第１の乗数保存部３０１４が設計されればよい。そして、変換器３０００は、行方向および列方向について、図２１に示すデータフローに基づいて、演算を実行し、変換後の画素データを出力する。
【０２２０】
上述のような変換器３０００の設計手法については、他の変換モードについても、同様に適用可能であるので、他の変換モードについては、データフローを示すのみにする。
【０２２１】
なお、逆ＤＣＴ変換のデータフローの矢印を逆に向け、乗数はそのままで、入力段を左側とし、出力段を右側と見なすことで、ＤＣＴ変換は実現できる。したがって、逆ＤＣＴ変換とＤＣＴ変換とは、第１の乗数保存部３０１４において、共通の乗数として保存されていてもよい。
【０２２２】
図２２は、８×８逆整数変換のデータフローを示す図である。図２２に示すように、８×８逆整数変換についても、基本データフローの組み合わせによって、行方向の演算を行うことができる。同様に、列方向の演算を行うことができる。したがって、８×８逆整数変換についても、図１９に示す演算部３０１０の構成によって、演算可能である。８×８逆整数変換に必要な乗数は、第２の乗数保存部３０１５に保存されている。図２１に示すデータフローと図２２に示すデータフローとは、乗数が異なる以外は同様であるので、逆ＤＣＴ変換と８×８逆整数変換とは、同様の手順で演算可能である。したがって、変換器３０００の構成が簡易になる。
【０２２３】
図２３は、８×８整数変換のデータフローを示す図である。図２３に示すように、８×８整数変換についても、基本データフローの組み合わせによって、行方向の演算を行うことができる。同様に、列方向の演算を行うことができる。したがって、８×８整数変換についても、図１９に示す演算部３０１０の構成によって、演算可能である。８×８整数変換に必要な乗数は、第２の乗数保存部３０１５に保存されている。
【０２２４】
図２４は、４×４逆整数変換のデータフローを示す図である。図２４に示すように、４×４逆整数変換についても、基本データフローの組み合わせによって、行方向の演算を行うことができる。同様に、列方向の演算を行うことができる。したがって、４×４逆整数変換についても、図１９に示す演算部３０１０の構成によって、演算可能である。４×４逆整数変換に必要な乗数は、第２の乗数保存部３０１５に保存されている。図２４と図２２とを見比べると分かるように、点線枠Ｂで囲んだ領域の計算手順が重複している。したがって、変換器３０００は、４×４逆整数変換については、８×８逆整数変換における計算手順を途中でやめるように動作すればよい。
【０２２５】
図２５は、４×４整数変換のデータフローを示す図である。図２５に示すように、４×４整数変換についても、基本データフローの組み合わせによって、行方向の演算を行うことができる。同様に、列方向の演算を行うことができる。したがって、４×４整数変換についても、図１９に示す演算部３０１０の構成によって、演算可能である。４×４整数変換に必要な乗数は、第２の乗数保存部３０１５に保存されている。図２５と図２３とを見比べると分かるように、一部の乗数は異なるものの、点線枠Ｃで囲んだ領域の入力順序が一致している。したがって、変換器３０００は、４×４整数変換については、８×８整数変換における入力順序の一部となるように動作すればよい。
【０２２６】
図２６は、４×４アダマール変換のデータフローを示す図である。図２６に示すように、４×４アダマール変換についても、基本データフローの組み合わせによって、行方向の演算を行うことができる。同様に、列方向の演算を行うことができる。したがって、４×４アダマール変換についても、図１９に示す演算部３０１０の構成によって、演算可能である。４×４アダマール変換に必要な乗数は、第２の乗数保存部３０１５に保存されている。
【０２２７】
図２７は、２×２アダマール変換のデータフローを示す図である。図２７に示すように、２×２アダマール変換についても、基本データフローの組み合わせによって、行方向の演算を行うことができる。同様に、列方向の演算を行うことができる。したがって、２×２アダマール変換についても、図１９に示す演算部３０１０の構成によって、演算可能である。２×２アダマール変換に必要な乗数は、第２の乗数保存部３０１５に保存されている。
【０２２８】
新たな変換モードが登場した場合、設計者は、新たな変換モードに関する演算手順を、上記基本単位の演算処理に分割して、演算回数に対応させて、画素データの組み合わせおよび乗数係数を設定する。その上で、上述のように、データフローを作成して、乗数および計算手順を決定すればよい。決定された乗数は、演算回数と対応させて、新乗数設定部３０１７に入力される。また、演算回数と対応させて、どのデータを入力データ保存部３００１および演算データ保存部３００９から読み出すべきかが、新乗数設定部３０１７に入力される。新乗数設定部３０１７は、入力された乗数を、演算回数と対応させて、新変換モード乗数保存部３０１６に格納すると共に、どのデータを入力データ保存部３００１および演算データ保存部３００９から読み出すべきかを新変換モード乗数保存部３０１６に格納する。なお、新たな変換方式においても８×８行列による変換を行う場合、計算手順は、ＤＣＴや８×８整数変換と同一となるので、演算回数と乗数および読み出し先の対応付けは、容易に行うことができる。変換モード設定部３０１３で新たな演算方式が設定されたら、乗数設定部３０１１は、新変換モード乗数保存部３０１６から、演算回数毎に、適切な乗数を読み出して、演算部３０１０に入力すると共に、どのデータを読み出すべきかを、演算順序管理部３０１２を介して、入力選択部３００２に指示する。このように、新たな変換方式であっても、データフローを基本データフローの組み合わせにすることによって、他の変換方式と共通の変換部を用いることが可能となる。
【０２２９】
このように、第３の実施形態によれば、各変換モードの変換を基本データフローの組み合わせに帰着させることによって、演算部を共通化することができるので、ＤＣＴ、逆ＤＣＴ、４×４整数変換、４×４逆整数変換、８×８整数変換、８×８逆整数変換、４×４アダマール変換、２×２アダマール変換、および新たに追加される未知の変換方式に対応することが可能でありながらも、小型化された画像符号化装置および画像復号化装置が提供されることとなる。
【０２３０】
なお、第３の実施形態では、逆ＤＣＴおよびＤＣＴと整数変換および逆整数変換とが切り換え可能な画像符号化装置および画像復号化装置を提案したが、整数変換および逆整数変換のみが切り換え可能であってもよい。
【０２３１】
（第４の実施形態）
図２８は、第４の実施形態に係る変換器４０００の構成を示すブロック図である。図２８において、変換器４０００は、入力データ保存部４００１と、複数の演算部４００２と、演算制御部４００３と、演算データ保存部４００４とを備える。図２８において、入力データ保存部４００１は、入力データを保存する。各演算部４００２は、図１９に示す演算部３０１０と同様の構成を有する。複数の演算部４００２は、並列に接続されている。演算データ保存部４００４は、演算部４００２による演算によって得られたデータを保存する。演算制御部４００３は、変換モードおよび演算回数に応じて、データの読み出し先および乗数を演算部４００２に指示する。演算制御部４００３は、第３の実施形態において行われていた基本データフロー単位の演算を一度に複数の演算部４００２に実行させるように、各演算部４００２に対して、必要な乗数およびデータの読み出し先を指示する。演算制御部４００３は、図１９に示す演算順序管理部３０１２と、乗数設定部３０１１と、変換モード設定部３０１３と、第１〜第２の乗数保存部３０１４，３０１５と、新変換モード乗数保存部３０１６と、新乗数設定部３０１７とを含む。乗数設定部３０１１では、第３の実施形態と異なり、複数の演算を一度に複数の演算部４００２に実行させるように、各演算部４００２に対して、必要な乗数およびデータの読み出し先を指示する。
【０２３２】
このように、第４の実施形態によれば、演算制御部４００３は、演算回数に対応させて、複数の演算部の内、いずれの演算部に、必要な画素データを入力し、必要な演算を実行させるかを予め定義しておいて、複数の演算部を並列に使用する。基本データフロー単位の演算を複数の変換部に実行させることができるので、変換器の処理速度が向上する。
【０２３３】
なお、上記では、基本データフロー単位の演算を複数の演算部４００２に実行させることとしたが、演算制御部４００３は、変換対象となる画素データを複数の演算部４００２に変換させてもよい。
【０２３４】
（第５の実施形態）
図２９は、第５の実施形態に係る変換器５０００の構成を示すブロック図である。図２９において、変換器５０００は、入力データ保存部５００１と、複数の演算部５００２と、演算制御部５００３と、演算データ保存部５００４とを備える。図２９において、入力データ保存部５００１は、入力データを保存する。各演算部５００２は、図１９に示す演算部３０１０と同様の構成を有する。複数の演算部５００２は、直列に接続されている。演算データ保存部５００４は、最終段の演算部５００２による演算によって得られたデータを保存する。演算制御部５００３は、変換モードおよび演算回数に応じて、データの読み出し先および乗数を演算部５００２に指示する。複数の演算部５００２は直列に接続されているので、演算制御部５００３は、初段以外の演算部５００２に対しては、前段の演算部５００２の演算結果を利用するように指示する。一方、演算制御部５００３は、初段の演算部５００２に対しては、演算データ保存部５００４または入力データ保存部５００１からデータを読み出すように指示する。各演算部５００２は、第３の実施形態において行われていた基本データフロー単位の演算を行っていく。ある演算部５００２が基本データフロー単位の演算を行っている最中、他の演算部５００２は、基本データフロー単位の別の演算を行う。したがって、演算が同時進行で複数行われるので、処理速度が向上する。
【０２３５】
演算制御部５００３は、図１９に示す演算順序管理部３０１２と、乗数設定部３０１１と、変換モード設定部３０１３と、第１〜第２の乗数保存部３０１４，３０１５と、新変換モード乗数設定部３０１６と、新乗数設定部３０１７とを含む。乗数設定部３０１１では、第３の実施形態と異なり、複数の演算を一度に複数の演算部５００２に実行させるように、各演算部５００２に対して、必要な乗数およびデータの読み出し先を指示する。
【０２３６】
このように、第５の実施形態によれば、演算制御部５００３は、演算回数に対応させて、複数の演算部の内、いずれの演算部に、必要な画素データを入力し、必要な演算を実行させるかを予め定義しておいて、複数の演算部を直列に使用する。基本データフロー単位の演算を複数の変換部に実行させることができるので、変換器の処理速度が向上する。
【０２３７】
なお、上記では、基本データフロー単位の演算を複数の演算部５００２に実行させることとしたが、演算制御部５００３は、変換対象となる画素データを複数の演算部５００２に変換させてもよい。
【０２３８】
なお、図３、図１１、図１２、図１３、図１４、図１９、図２８、図２９に示した各機能ブロックは、集積回路であるＬＳＩとして実現されてもよい。これらの機能ブロックは、１チップ化されていてもよいし、一部又は全てを含むように１チップ化されていてもよい。ここでは、ＬＳＩといったが、集積度の違いによっては、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと称呼されることもある。また、集積回路化の手法は、ＬＳＩに限られるものではなく、専用回路または汎用プロセッサで集積回路化を行ってもよい。また、ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを用いてもよい。さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックを集積化してもよい。バイオ技術の適応等が可能性としてあり得る。
【０２３９】
なお、本発明は、ソフト的に実現されてもよい。すなわち、記憶装置を有するコンピュータ装置に、上記で説明した動作を実行することができるプログラムを格納しておき、画素データを変換する際、当該プログラムをＣＰＵで実行しながら、適宜、必要なデータを記憶装置に格納しておき、変換後の画素データを得るようにしてもよい。
【０２４０】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
【産業上の利用可能性】
【０２４１】
本発明にかかる整数変換器は、Ｈ．２６４に特有の行列演算をひとつの回路で実施することができ、システムＬＳＩ等でハードウェアのエンジンの一部として、小型化が望まれる携帯向け商品等に有用である。また、パイプライン処理を行うことで処理速度を向上させることができ、ＨＤＴＶ（Ｈｉｇｈ Ｄｅｆｉｎｉｔｉｏｎ Ｔｅｌｅｖｉｓｉｏｎ）等の用途にも適用できる。また、ＤＣＴ、逆ＤＣＴ、整数変換、逆整数変換、およびアダマール変換、ならびに新たな変換方式に対応することが可能でかつ小型の変換器が提供され、画像符号・復号化装置等に極めて有用である。
【図面の簡単な説明】
【０２４２】
【図１】本発明の第１の実施形態に係る画像符号化装置１の構成の一例を示すブロック図
【図２】本発明の第１の実施形態に係る画像復号化装置２の構成の一例を示すブロック図
【図３】本発明の第１の実施形態に係る整数変換器１０００の構成を示す図
【図４】演算回数に対応した演算式、および入力選択部１０２によって入力端子ｐ１〜ｐ８に入力されて演算処理の対象となる画素データの組み合わせの関係を示す図
【図５】４×４逆整数変換において、行方向の演算を実行するときの演算制御部１０１の動作を示すフローチャート
【図６】４×４逆整数変換において、列方向の演算を実行するときの演算制御部１０１の動作を示すフローチャート
【図７】算回数に対応した演算式、および入力選択部１０２によって入力端子ｐ１〜ｐ８に入力されるべき画素データの関係を示す図
【図８】８×８逆整数変換において、行方向の演算を実行するときの演算制御部１０１の動作を示すフローチャート
【図９】４×４整数変換において演算回数に対応した演算式、および入力選択部１０２によって入力端子ｐ１〜ｐ８に入力されるべき画素データの関係を示す図
【図１０Ａ】８×８整数変換において演算回数に対応した演算式、および入力選択部１０２によって入力端子ｐ１〜ｐ８に入力されるべき画素データの関係を示す図
【図１１】本発明の第２の実施形態に係る整数変換器２０００の構成を示すブロック図
【図１２】第１の演算部１１００の構成を示すブロック図
【図１３】第２の演算部２１００の構成を示すブロック図
【図１４】演算部を直列および／または並列に接続することによって、８×８整数変換を実現するときの演算部の構成を示すブロック図
【図１５】演算回数に対応した第１の演算部１１００での演算式および第２の演算部２１００での演算式を示す図
【図１６】８×８逆整数変換において、行方向の演算を実行するときの演算制御部２０１の動作を示すフローチャート
【図１７】画像符号化装置３の概略的構成を示すブロック図
【図１８】画像復号化装置４の概略的構成を示すブロック図
【図１９】変換器３０００の構成を示すブロック図
【図２０】演算部３０１０における演算の流れを説明するためのデータフロー
【図２１】逆ＤＣＴ変換のデータフローを示す図
【図２２】８×８逆整数変換のデータフローを示す図
【図２３】８×８整数変換のデータフローを示す図
【図２４】４×４逆整数変換のデータフローを示す図
【図２５】４×４整数変換のデータフローを示す図
【図２６】４×４アダマール変換のデータフローを示す図
【図２７】２×２アダマール変換のデータフローを示す図
【図２８】第４の実施形態に係る変換器４０００の構成を示すブロック図
【図２９】第５の実施形態に係る変換器５０００の構成を示すブロック図
【図３０】Ｉｎｔｒａ１６×１６モードでの画素データの変換の流れを示す図
【図３１】Ｈ．２６４における復号化の処理手順を示す図
【符号の説明】
【０２４３】
１  画像符号化装置
２  画像復号化装置
３  画像符号化装置
４  画像復号化装置
１１  画面内予測部
１２  整数変換部
１３  量子化部
１４  エントロピー符号化部
１５  逆量子化部
１６  逆整数変換部
１７  加算部
１８  デブロッキングフィルタ部
１９  フレームメモリ部
２０  動き補償部
２１  動き検出部
２２  減算部
２３  エントロピー復号化部
２４  逆量子化部
２５  逆整数変換部
２６  デブロッキングフィルタ部
２７  動き補償部
２８  重み付け予測部
２９  画面内予測部
３０  加算部
３１  画像データ入力部
３２  時間周波数変換部
３３  量子化部
３４  圧縮データ出力部
４１  圧縮データ入力部
４２  逆量子化部
４３  周波数時間変換部
４４  画像データ出力部
１００  演算部
１０１  演算制御部
１０２  入力選択部
１０３  ビット演算部
１０３ａ  ビット演算部
１０４  ビット演算部
１０４ａ  ビット演算部
１０５  ビット演算部
１０５ａ  ビット演算部
１０６  ビット演算部
１０６ａ  ビット演算部
１０７  加算部
１０８  減算部
１０９  減算部
１１０  加算部
１１１  入力データ保存部
１１２  演算データ保存部
２０１  演算制御部
１０００  整数変換器
１１００  第１の演算部
１１０２  入力選択部
１１０３  ビット演算部
１１０５  ビット演算部
１１０７  加算部
１１０８  減算部
２０００  整数変換器
２１００  第２の演算部
２１０２  入力選択部
２１０３  ビット演算部
２１０５  ビット演算部
２１０７  加算部
２１０８  減算部
３０００  変換器
３００１  入力データ保存部
３００２  入力選択部
３００３  乗算部
３００４  乗算部
３００５  乗算部
３００６  乗算部
３００７  加算部
３００８  加算部
３００９  演算データ保存部
３０１０  演算部
３０１１  乗数設定部
３０１２  演算順序管理部
３０１３  変換モード設定部
３０１４  第１の乗数保存部
３０１５  第２の乗数保存部
３０１６  新変換モード乗数保存部
３０１７  新乗数設定部
４０００  変換器
４００１  入力データ保存部
４００２  演算部
４００３  演算制御部
４００４  演算データ保存部
５０００  変換器
５００１  入力データ保存部
５００２  演算部
５００３  演算制御部
５００４  演算データ保存部
【図１】
0004704333.tif 000021
【図２】
0004704333.tif 000022
【図３】
0004704333.tif 000023
【図４】
0004704333.tif 000024
【図５】
0004704333.tif 000025
【図６】
0004704333.tif 000026
【図７】
0004704333.tif 000027
【図８】
0004704333.tif 000028
【図９】
0004704333.tif 000029
【図１０Ａ】
0004704333.tif 000030
【図１１】
0004704333.tif 000031
【図１２】
0004704333.tif 000032
【図１３】
0004704333.tif 000033
【図１４】
0004704333.tif 000034
【図１５】
0004704333.tif 000035
【図１６】
0004704333.tif 000036
【図１７】
0004704333.tif 000037
【図１８】
0004704333.tif 000038
【図１９】
0004704333.tif 000039
【図２０】
0004704333.tif 000040
【図２１】
0004704333.tif 000041
【図２２】
0004704333.tif 000042
【図２３】
0004704333.tif 000043
【図２４】
0004704333.tif 000044
【図２５】
0004704333.tif 000045
【図２６】
0004704333.tif 000046
【図２７】
0004704333.tif 000047
【図２８】
0004704333.tif 000048
【図２９】
0004704333.tif 000049
【図３０】
0004704333.tif 000050
【図３１】
0004704333.tif 000051