(57)【特許請求の範囲】
【請求項１】
複数の画像圧縮規格に依存する入力信号を復号処理する第１処理部と、
前記複数の画像圧縮規格に応じた演算内容を設定する切り替え信号を、前記第１処理部に出力する信号生成部とを有し、
前記第１処理部は、
前記入力信号に対して、前記切り替え信号に応じた第１係数に基づく乗算をする第１演算部と、
前記第１演算部の出力に対して、前記切り替え信号に応じた第２係数に基づく乗算をする第２演算部と、
前記第１演算部の出力と前記第２演算部の出力とを、前記切り替え信号に応じて選択する選択部と、
前記切り替え信号に応じて前記入力信号と前記第１演算部の出力とを選択し、前記選択された信号に対して、前記切り替え信号に応じた加減算処理およびビットシフト処理の一方または両方を行う第３演算部と、
を備えることを特徴とする半導体装置。
【請求項２】
前記第１演算部は、前記入力信号に対して前記第１係数を乗算する第１可変係数乗算器と、前記入力信号に対して前記第１係数を乗算する第２可変係数乗算器を有し、
前記第２演算部は、第１可変係数乗算器の出力に対して前記第２係数を乗算する第１固定係数乗算器と、第２可変係数乗算器の出力に対して前記第２係数を乗算する第２固定係数乗算器を有し、
前記選択部は、前記第１可変係数乗算器の出力および前記第１固定係数乗算器の出力のいずれか一方を選択する第１セレクタと、前記第２可変係数乗算器の出力および前記第２固定係数乗算器の出力のいずれか一方を選択する第２セレクタを有し、
前記第３演算部は、前記入力信号の出力、前記第１可変係数乗算器の出力および前記第２可変係数乗算器の出力に対して、加減算およびビットシフトのいずれか一方または両方を行う第１加減算・シフタ部と、前記入力信号の出力、前記第１可変係数乗算器の出力および前記第２可変係数乗算器の出力に対して、加減算およびビットシフトのいずれか一方または両方を行う第２加減算・シフタ部を有することを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記入力信号がＭＰＥＧ規格に依存する信号である場合、
前記第１可変係数乗算器に前記第１係数としてｓｉｎ（π／１６）が設定され、
前記第２可変係数乗算器に前記第１係数としてｃｏｓ（π／１６）が設定され、
前記第１固定係数乗算器に前記第２係数として√２／２が設定され、
前記第２固定係数乗算器に前記第２係数として√２／２が設定され、
前記第１セレクタは前記第１固定係数乗算器の出力を選択し、
前記第２セレクタは前記第２固定係数乗算器の出力を選択し、
前記第１加減算・シフタ部は前記第２可変係数乗算器の出力に前記第１可変係数乗算器の出力を加算して下位ビット方向へ１ビット分シフトし、
前記第２加減算・シフタ部は前記第２可変係数乗算器の出力から前記第１可変係数乗算器の出力を減算して下位ビット方向へ１ビット分シフトすることにより、
前記入力信号に対して（√２／２）・ｓｉｎ（π／１６）、（√２／２）・ｃｏｓ（π／１６）、（√２／２）・ｃｏｓ（３π／１６）および（√２／２）・ｓｉｎ（３π／１６）を別々に同時に乗算した結果を得ることを特徴とする請求項２に記載の半導体装置。
【請求項４】
前記入力信号がＶＣ−１規格に依存する信号である場合、
前記第１可変係数乗算器に前記第１係数として１５が設定され、
前記第２可変係数乗算器に前記第１係数として９が設定され、
前記第１セレクタは前記第１可変係数乗算器の出力を選択し、
前記第２セレクタは前記第２可変係数乗算器の出力を選択し、
前記第１加減算・シフタ部は前記入力信号の出力を上位ビット方向へ４ビット分シフトし、
前記第２加減算・シフタ部は前記入力信号の出力を上位ビット方向へ２ビット分シフトすることにより、
前記入力信号に対して１５、９、１６および４を別々に同時に乗算した結果を得ることを特徴とする請求項２に記載の半導体装置。
【請求項５】
前記入力信号がＡＶＳ規格に依存する信号である場合、
前記第１可変係数乗算器に前記第１係数として９が設定され、
前記第２可変係数乗算器に前記第１係数として６が設定され、
前記第１セレクタは前記第１可変係数乗算器の出力を選択し、
前記第２セレクタは前記第２可変係数乗算器の出力を選択し、
前記第１加減算・シフタ部は前記入力信号の出力に前記第１可変係数乗算器の出力を加算し、
前記第２加減算・シフタ部は前記入力信号の出力を上位ビット方向へ１ビット分シフトすることにより、
前記入力信号に対して９、６、１０および２を別々に同時に乗算した結果を得ることを特徴とする請求項２に記載の半導体装置。
【請求項６】
前記入力信号がＨ．２６４規格に依存する信号である場合、
前記第１可変係数乗算器に前記第１係数として１が設定され、
前記第２可変係数乗算器に前記第１係数として０．５が設定され、
前記第１セレクタは前記第１可変係数乗算器の出力を選択し、
前記第２セレクタは前記第２可変係数乗算器の出力を選択し、
前記第１加減算・シフタ部は前記入力信号の出力に前記第２可変係数乗算器の出力を加算することにより、
前記入力信号に対して１、０．５および１．５を別々に同時に乗算した結果を得ることを特徴とする請求項２に記載の半導体装置。
【請求項７】
さらに、前記第１処理部の出力を累積加算する第２処理部を備え、
前記第２処理部は、
前記切り替え信号に応じて前記第１処理部の出力の加算または減算を繰り返す加減算器と、
前記切り替え信号に応じて前記加減算器の出力に対してエラー検出を行う第１エラー検出部と、
を備えることを特徴とする請求項１〜６のいずれか一つに記載の半導体装置。
【請求項８】
さらに、前記第２処理部の出力に対してバタフライ演算を行う第３処理部を備え、
前記第３処理部は、
前記切り替え信号に応じて前記第２処理部の出力に対して加減算およびビットシフトのいずれか一方または両方を行う第３加減算・シフタ部と、
前記切り替え信号に応じて前記第３加減算・シフタ部の出力に対してエラー検出を行う第２エラー検出部と、
を備えることを特徴とする請求項７に記載の半導体装置。
【請求項９】
前記第１処理部、前記第２処理部および前記第３処理部からなる１次元の水平演算処理を行う水平処理部と、
前記第１処理部、前記第２処理部および前記第３処理部からなる１次元の垂直演算処理を行う垂直処理部と、
前記水平処理部の出力を並び替えて前記垂直処理部へ渡す転置ＲＡＭと、
を備えることを特徴とする請求項８に記載の半導体装置。
【請求項１０】
複数の画像圧縮規格に依存する入力信号を復号処理するために、当該入力信号に対して、前記複数の画像圧縮規格に応じた演算内容を設定する切り替え信号に応じた第１係数に基づく第１乗算をするステップと、
前記第１乗算の出力に対して、前記切り替え信号に応じた第２係数に基づく第２乗算をするステップと、
前記第１乗算の出力と前記第２乗算の出力とを、前記切り替え信号に応じて選択するステップと、
前記切り替え信号に応じて前記入力信号と前記第１乗算の出力とを選択し、前記選択された信号に対して、前記切り替え信号に応じた加減算処理およびビットシフト処理の一方または両方を行う第３演算をするステップと、
を含むことを特徴とする信号処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の画像圧縮規格に依存する信号を処理する半導体装置および信号処理方法に関する。
【背景技術】
【０００２】
複数の画像圧縮規格に依存する信号を処理する装置として、マルチメディア・デコーダが公知である。従来のマルチメディア・デコーダには、複数の復号化機能ユニットと、それら復号化機能ユニットの間での接続の構成を支援するインターフェースが設けられている（例えば、特許文献１参照。）。
【０００３】
【特許文献１】特開２００６−６０３１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、前記特許文献１に開示された技術では、画像圧縮規格ごとに復号化機能ユニットが必要であるため、回路規模が大きいという欠点がある。また、復号化可能な画像圧縮規格が増えると、回路規模が増大するという問題点がある。
【０００５】
この発明は、上述した従来技術による問題点を解消するため、小規模の回路構成で、複数の画像圧縮規格に依存する信号を処理することができる半導体装置および信号処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、この半導体装置および信号処理方法は、複数の画像圧縮規格に依存する入力信号を復号処理する第１処理部と、前記複数の画像圧縮規格に応じた演算内容を設定する切り替え信号を、前記第１処理部に出力する信号生成部とを有し、前記第１処理部は、前記入力信号に対して、前記切り替え信号に応じた第１係数に基づく乗算をする第１演算部と、前記第１演算部の出力に対して、前記切り替え信号に応じた第２係数に基づく乗算をする第２演算部と、前記第１演算部の出力と前記第２演算部の出力とを、前記切り替え信号に応じて選択する選択部と、前記切り替え信号に応じて前記入力信号と前記第１演算部の出力とを選択し、前記選択された信号に対して、前記切り替え信号に応じた加減算処理およびビットシフト処理の一方または両方を行う第３演算部と、を備えることを要件とする。
【０００７】
この半導体装置および信号処理方法によれば、信号生成部から第１処理部に、画像圧縮規格に応じて切り替え信号が出力され、第１処理部は、その切り替え信号に応じて複数の画像圧縮規格に依存する入力信号を復号処理する。第１演算部においては、切り替え信号に応じて第１係数が設定され、第１係数に基づく乗算が行われる。第２演算部においては、切り替え信号に応じて、第２係数に基づく乗算が行われる。選択部においては、切り替え信号に応じた選択が行われる。第３演算部においては、切り替え信号に応じた選択と、加減算処理およびビットシフト処理の一方または両方が行われる。従って、単一の回路で、複数の画像圧縮規格に依存する信号を復号処理することができる。
【発明の効果】
【０００８】
この半導体装置および信号処理方法によれば、小規模の回路構成で、複数の画像圧縮規格に依存する信号を処理することができるという効果を奏する。
【発明を実施するための最良の形態】
【０００９】
以下に添付図面を参照して、この半導体装置および信号処理方法の好適な実施の形態を詳細に説明する。図１は、実施の形態にかかる半導体装置の要部の構成を示す説明図である。図１に示すように、第１処理部１は、複数の画像圧縮規格に応じて、複数の画像圧縮規格に依存する入力信号ｆ［］ｉｎを処理する。ここで、ｆ［］の「［］」内には０〜７の自然数が入る。第１処理部１には、図示しない信号生成部から規格／モード切り替え信号が供給される。第１処理部１は、第１演算部２、第２演算部３、第３演算部４および選択部５を備える。
【００１０】
第１演算部２の第１係数は、規格／モード切り替え信号に応じて設定される。第１演算部２は、入力信号ｆ［］ｉｎに対して第１係数に基づく乗算をする。第２演算部３は、第１演算部２の出力に対して第２係数に基づく乗算をする。ここでは、第２係数は固定値であるが、規格／モード切り替え信号に応じて設定されてもよい。選択部５は、規格／モード切り替え信号に応じて第１演算部２の出力および第２演算部３の出力のいずれか一方を選択する。第３演算部４は、規格／モード切り替え信号に応じて入力信号の出力および第１演算部２の出力の一方または両方を選択し、その選択された信号に対して、規格／モード切り替え信号に応じて加減算およびシフト処理の一方または両方を行う。選択部５からは出力信号ＭＵＬ０，ＭＵＬ１が得られる。第３演算部４からは出力信号ＭＵＬ２，ＭＵＬ３が得られる。
【００１１】
第１処理部１は、例えば画像処理装置を構成するＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）に、符号化された画像信号の復号処理を行う機能ブロックの一部として集積される。以下に、この第１処理部１が、テレビジョン、チューナ、セットトップボックス、ＨＤ−ＤＶＤ（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  ＤＶＤ）／Ｂｌｕ−ｒａｙプレーヤ等の動画像再生機器や動画像再生録画機器に使用される動画像復号装置において、ＭＰＥＧ１，２，４規格の場合には逆離散コサイン変換（ｉＤＣＴ：Ｉｎｖｅｒｓｅ  Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）処理を行い、ＶＣ−１規格、ＡＶＳ規格およびＨ．２６４規格の場合には逆整数変換処理を行う機能ブロックの一部を構成する場合を例にして説明する。以下、この機能ブロックを逆変換部とする。
【００１２】
（逆変換処理の説明）
近年、テレビジョン、インターネット上のストリーミングコンテンツまたは蓄積メディアなどには、ＭＰＥＧ２規格だけではなく、ＶＣ−１やＡＶＳやＨ．２６４などの種々の動画像符号化規格が用いられている。そのため、これらの種々の動画像符号化規格で符号化された動画像を再生する機器では、複数の動画像符号化規格に対応する必要がある。各動画像符号化規格において、逆変換処理における基本的なアルゴリズムは似ており、係数値や演算方法、およびエラー検出方法が異なる。それぞれの規格における逆変換処理は、入力と出力だけを見ると、次の（１）式に示す行列演算および係数値で表現される。
【００１３】
【数１】
0004536109.tif 000002
ただし、Ｐ［ｎ］行列およびｆ［ｎ］行列は、それぞれ、１次元逆変換処理結果の行列および１次元入力係数データの行列である。また、Ａ〜Ｈは、変換行列の係数である。規格ごとの係数Ａ〜Ｈの値を表１に示す。
【００１４】
【表１】
0004536109.tif 000003
【００１５】
Ｈ．２６４規格については、途中の演算方法が明確に規定されており、加減算とシフト処理のみを用いた処理を行わなければならない。また、途中の演算結果が所定のレンジを超えていないか否かを検出する必要がある。そのため、Ｈ．２６４規格での処理は、他の規格の行列演算とは異なる。Ｈ．２６４規格において、ブロックサイズが縦横４×４画素である場合の逆変換処理（以下、４×４逆変換処理とする）では、演算順は前記（１）式の行列式と等しくなるので、問題はない。
【００１６】
しかし、ブロックサイズが縦横８×８画素である場合の逆変換処理（以下、８×８逆変換処理とする）では、行列演算と演算順序が前記（１）式の行列式とは異なるため、前記（１）式の行列演算を行うことができない。従って、単一の逆変換処理回路でＨ．２６４規格と他の動画像符号化規格に対応するには、前記（１）式に示す行列演算による逆変換処理と、Ｈ．２６４規格における加減算およびシフト処理による逆変換処理の２種類の処理の違いを吸収した構成が必要である。また、その２種類の処理に対応する逆変換処理回路は、単純に動画像符号化規格ごとに専用の逆変換処理回路を設ける場合に比べて、回路の規模が小さくなることが望ましい。
【００１７】
一般に、２次元の逆変換処理は、次の（２）式の行列演算で表される。この（２）式で表される演算を水平演算（ｄａｔａ'＝ｄａｔａ×Ｔ）と垂直演算（Ｘ＝Ｔ'×ｄａｔａ'）の１次元逆変換に分解する。１次元の逆変換（ｄａｔａ×Ｔ）は行列演算であるが、これを水平１行または垂直１列の行列演算にさらに分解すると、次の（３）式および（４）式となる。
Ｘ＝Ｔ'×ｄａｔａ×Ｔ  ・・・（２）
【００１８】
【数２】
0004536109.tif 000004
【数３】
0004536109.tif 000005
【００１９】
ここで、Ｔ［ｎ］行列およびＲ［ｎ］行列を、それぞれ、次の（５）式および（６）式に示すように作成する。Ｔ［ｎ］行列およびＲ［ｎ］行列は、中間演算行列である。
【数４】
0004536109.tif 000006
【数５】
0004536109.tif 000007
【００２０】
これら（５）式および（６）式と前記（３）式および前記（４）式より、次の（７）式が得られる。
Ｐ［０］＝Ｔ［０］＋Ｒ［０］
Ｐ［１］＝Ｔ［１］＋Ｒ［１］
Ｐ［２］＝Ｔ［２］＋Ｒ［２］
Ｐ［３］＝Ｔ［３］＋Ｒ［３］
Ｐ［７］＝Ｔ［０］−Ｒ［０］
Ｐ［６］＝Ｔ［１］−Ｒ［１］
Ｐ［５］＝Ｔ［２］−Ｒ［２］
Ｐ［４］＝Ｔ［３］−Ｒ［３］  ・・・（７）
【００２１】
また、前記（５）式および前記（６）式を展開すると、次の（８）式となる。
Ｔ［０］＝Ａ×ｆ［０］＋Ｅ×ｆ［４］＋Ｃ×ｆ［２］＋Ｇ×ｆ［６］
Ｔ［１］＝Ａ×ｆ［０］−Ｅ×ｆ［４］＋Ｇ×ｆ［２］−Ｃ×ｆ［６］
Ｔ［３］＝Ａ×ｆ［０］＋Ｅ×ｆ［４］−（Ｃ×ｆ［２］＋Ｇ×ｆ［６］）
Ｔ［２］＝Ａ×ｆ［０］−Ｅ×ｆ［４］−（Ｇ×ｆ［２］−Ｃ×ｆ［６］）
Ｒ［０］＝Ｂ×ｆ［１］＋Ｄ×ｆ［３］＋Ｆ×ｆ［５］＋Ｈ×ｆ［７］
Ｒ［１］＝Ｄ×ｆ［１］−Ｈ×ｆ［３］−Ｂ×ｆ［５］−Ｆ×ｆ［７］
Ｒ［２］＝Ｆ×ｆ［１］−Ｂ×ｆ［３］＋Ｈ×ｆ［５］＋Ｄ×ｆ［７］
Ｒ［３］＝Ｈ×ｆ［１］−Ｆ×ｆ［３］＋Ｄ×ｆ［５］−Ｂ×ｆ［７］  ・・・（８）
上記（８）式は、８×８逆変換処理の場合であるが、４×４逆変換処理では、次の（９）式となる。なお、（９）式における乗算係数Ａ、Ｂ、ＣおよびＤは、それぞれ、表１のＡ、Ｃ、ＥおよびＧに相当する。
Ｔ［０］＝Ａ×ｆ［０］＋Ｃ×ｆ［２］
Ｔ［１］＝Ａ×ｆ［０］−Ｃ×ｆ［２］
Ｒ［０］＝Ｂ×ｆ［１］＋Ｄ×ｆ［３］
Ｒ［１］＝Ｄ×ｆ［１］−Ｂ×ｆ［３］  ・・・（９）
【００２２】
（逆変換部の全体構成）
図２は、逆変換部の全体の構成を示す説明図である。図２に示すように、逆変換部１１は、第１乗算回路部１２、第１累積加算部１３、第１バタフライ・後処理部１４、第１セレクタ（ＳＥＬ）１５、転置ＲＡＭ１６、第２セレクタ１７、第２乗算回路部１８、第２累積加算部１９、第２バタフライ・後処理部２０およびシリアル出力部２１を備えている。すべての動画像符号化規格により符号化された入力信号について、第１乗算回路部１２、第１累積加算部１３および第１バタフライ・後処理部１４において１次元の水平演算が実行される。第１バタフライ・後処理部１４の出力信号は、第１セレクタ１５、転置ＲＡＭ１６および第２セレクタ１７を経由して、第２乗算回路部１８に供給される。転置ＲＡＭ１６では、第１バタフライ・後処理部１４の出力信号の並び替えが行われる。そして、第２乗算回路部１８、第２累積加算部１９および第２バタフライ・後処理部２０において１次元の垂直演算が実行される。
【００２３】
シリアル出力部２１からは、第２バタフライ・後処理部２０からの出力ｏｕｔ［０］〜ｏｕｔ［７］が１サイクルに１つずつｆ＿ｏｕｔ［］として出力される。ここで、ｆ＿ｏｕｔ［］の「［］」内には０〜７の自然数が入る。第１乗算回路部１２、第１累積加算部１３、第１バタフライ・後処理部１４、第２乗算回路部１８、第２累積加算部１９、第２バタフライ・後処理部２０およびシリアル出力部２１は、それぞれ、規格／モード切り替え信号に応じた処理を行う。これらの詳細な構成については、これ以降、順次説明する。なお、図２の各ブロックは、同一名称の複数の演算器や回路ブロックで構成されているので、それらを区別するため、以下の説明においては、同一名称の演算器や回路ブロックに「第ｍ−ｎ」という序数を付す。
【００２４】
（乗算回路部の構成）
第１乗算回路部１２および第２乗算回路部１８は同じ構成であり、図１に示す第１処理部１により構成されている。図１に示すように、第１処理部１は、第１演算部２として例えば２個の可変係数乗算器３１，３２、第２演算部３として例えば２個の固定係数乗算器３３，３４、第３演算部４として加減算器３５，３７およびビットシフタ３６，３８からなる例えば２組の加減算・シフタ部、並びに選択部５として例えば２個のセレクタ３９，４０を備えている。可変係数乗算器は、乗算係数を任意の値に設定可能な乗算器である。固定係数乗算器は、乗算係数が固定値である乗算器である。
【００２５】
また、第１処理部１は、規格／モード切り替え信号に応じて可変係数乗算器３１，３２の乗算係数を設定する第１−１制御部４１、規格／モード切り替え信号に応じてセレクタ３９，４０の選択動作を制御する第１−２制御部４２、並びに規格／モード切り替え信号に応じて２組の加減算・シフタ部の加減算およびビットシフトを制御する第１−３制御部４３を備えている。これらの制御部４１，４２，４３は、同じであってもよいし、別々であってもよい。また、第１処理部１は、例えば９個のフリップフロップ（ＦＦ）４４〜５２を備えている。
【００２６】
第１−１フリップフロップ４４は、入力信号ｆ［］ｉｎをラッチする。第１−１可変係数乗算器３１は、第１−１フリップフロップ４４の出力信号と、第１−１制御部４１から与えられる乗算係数の乗算を行う。ここで与えられる乗算係数は、前記（８）式においてｆ［１］〜ｆ［７］に掛け合わされているＡ〜Ｈの係数である。第１−２フリップフロップ４５は、第１−１可変係数乗算器３１の出力信号をラッチする。第１−１固定係数乗算器３３は、第１−２フリップフロップ４５の出力信号と固定乗算係数（ここでは、例えば√２／２）の乗算を行う。第１−１セレクタ３９は、第１−２制御部４２から与えられるセレクト信号に基づいて、第１−１固定係数乗算器３３の出力信号または第１−２フリップフロップ４５の出力信号を選択する。第１−３フリップフロップ４６は、第１−１セレクタ３９の出力信号をラッチする。第１−３フリップフロップ４６からは、出力信号ＭＵＬ０が出力される。
【００２７】
第１−４フリップフロップ４７は、入力信号ｆ［］ｉｎをラッチする。第１−２可変係数乗算器３２は、第１−４フリップフロップ４７の出力信号と、第１−１制御部４１から与えられる乗算係数の乗算を行う。第１−５フリップフロップ４８は、第１−２可変係数乗算器３２の出力信号をラッチする。第１−２固定係数乗算器３４は、第１−５フリップフロップ４８の出力信号と固定乗算係数（ここでは、例えば√２／２）の乗算を行う。第１−２セレクタ４０は、第１−２制御部４２から与えられるセレクト信号に基づいて、第１−２固定係数乗算器３４の出力信号または第１−５フリップフロップ４８の出力信号を選択する。第１−６フリップフロップ４９は、第１−２セレクタ４０の出力信号をラッチする。第１−６フリップフロップ４９からは、出力信号ＭＵＬ１が出力される。
【００２８】
第１−７フリップフロップ５０は、第１−４フリップフロップ４７の出力信号をラッチする。第１−１加減算器３５および第１−１ビットシフタ３６からなる第１−１加減算・シフタ部は、第１−３制御部４３から与えられる加減算制御およびシフト制御の指令に基づいて、第１−２フリップフロップ４５の出力信号、第１−５フリップフロップ４８の出力信号および第１−７フリップフロップ５０の出力信号に対する加減算もしくはビットシフト、または加減算とビットシフトを組み合わせた処理を行う。第１−８フリップフロップ５１は、第１−１加減算・シフタ部の出力信号をラッチする。第１−８フリップフロップ５１からは、出力信号ＭＵＬ２が出力される。
【００２９】
第１−２加減算器３７および第１−２ビットシフタ３８からなる第１−２加減算・シフタ部は、第１−３制御部４３から与えられる加減算制御およびシフト制御の指令に基づいて、第１−２フリップフロップ４５の出力信号、第１−５フリップフロップ４８の出力信号および第１−７フリップフロップ５０の出力信号に対する加減算もしくはビットシフト、または加減算とビットシフトを組み合わせた処理を行う。第１−９フリップフロップ５２は、第１−２加減算・シフタ部の出力信号をラッチする。第１−９フリップフロップ５２からは、出力信号ＭＵＬ３が出力される。
【００３０】
（累積加算部の構成）
図３は、第２処理部の構成を示す説明図である。第１累積加算部１３および第２累積加算部１９は同じ構成であり、図３に示す第２処理部６１により構成されている。図３に示すように、第２処理部６１は、第２−１セレクタ６２、例えば８個の第２−ｋ加減算器６３〜７０、例えば８個の第２−ｋフリップフロップ７１〜７８、第２−１制御部７９および第２−１レンジオーバーエラー検出部８０を備えている。ここで、ｋは１〜８の自然数である。第２−１制御部７９は、規格／モード切り替え信号に応じて第２−１セレクタ６２の選択動作を制御する。また、第２−１制御部７９は、規格／モード切り替え信号に応じて第２−ｋ加減算器６３〜７０の加減算を制御する。
【００３１】
第２−１セレクタ６２は、第２−１制御部７９から与えられるセレクト信号に基づいて、第１処理部１の出力、すなわち乗算回路部からの出力信号ＭＵＬ０，ＭＵＬ１，ＭＵＬ２，ＭＵＬ３を選択する。第２−１加減算器６３は、第２−１制御部７９から与えられる加減算制御の指令に基づいて、第２−１加減算器６３の出力信号に対して第２−１セレクタ６２の出力信号を加算または減算する累積加算処理を行う。第２−１フリップフロップ７１は、第２−１加減算器６３の出力信号をラッチし、その信号を累積加算処理のために第２−１加減算器６３に戻す。第２−１加減算器６３において所定の累積加算処理が終了すると、第２−１フリップフロップ７１からは、出力信号Ｔ［０］が出力される。
【００３２】
第２−２、第２−３、第２−４、第２−５、第２−６、第２−７および第２−８の加減算器とフリップフロップの組み合わせについても同様であり、それらの組み合わせから出力信号Ｔ［１］、出力信号Ｔ［２］、出力信号Ｔ［３］、出力信号Ｒ［０］、出力信号Ｒ［１］、出力信号Ｒ［２］および出力信号Ｒ［３］が出力される。第２−１レンジオーバーエラー検出部８０は、Ｔ［０］〜Ｔ［３］およびＲ［０］〜Ｒ［３］の出力信号について、レンジオーバーエラーの検出を行う。第２−１レンジオーバーエラー検出部８０は、レンジオーバーエラーを検出すると、図示しないエラー制御部へ通知する。
【００３３】
（バタフライ・後処理部の構成）
図４は、第３処理部の構成を示す説明図である。第１バタフライ・後処理部１４および第２バタフライ・後処理部２０は同じ構成であり、図４に示す第３処理部９１により構成されている。図４に示すように、第３処理部９１は、第３−１セレクタ９２、第３−ｋビットシフタ９３，９５，９７，９９，１０１，１０３，１０５，１０７および第３−ｋ加減算器９４，９６，９８，１００，１０２，１０４，１０６，１０８からなる例えば８組の第３−ｋシフタ・加減算部、例えば８個の第３−ｋフリップフロップ１０９〜１１６、第３−１制御部１１７および第３−１レンジオーバーエラー検出部１１８を備えている。ここで、ｋは１〜８の自然数である。
【００３４】
第３−１制御部１１７は、規格／モード切り替え信号に応じて第３−１セレクタ９２の選択動作を制御する。また、第３−１制御部１１７は、規格／モード切り替え信号に応じて第３−ｋシフタ・加減算部のビットシフトおよび加減算を制御する。第３−１セレクタ９２は、第３−１制御部１１７から与えられるセレクト信号に基づいて、第２処理部６１の出力、すなわち累積加算部からの出力信号Ｔ［０］〜Ｔ［３］、Ｒ［０］〜Ｒ［３］および第３処理部９１の出力信号を選択する。つまり、第３処理部９１の出力信号は、もう一度、第３処理部９１で処理される場合のために、第３−１セレクタ９２に戻されることがある。
【００３５】
第３−１ビットシフタ９３および第３−１加減算器９４からなる第３−１シフタ・加減算部は、第３−１制御部１１７から与えられるシフト制御および加減算制御の指令に基づいて、第３−１セレクタ９２の出力信号に対する加減算、またはビットシフトと加減算を組み合わせた処理を行う。第３−１フリップフロップ１０９は、第３−１シフタ・加減算部の出力信号をラッチする。第３−１フリップフロップ１０９からは、出力信号Ｐ［０］が出力される。
【００３６】
第３−２、第３−３、第３−４、第３−５、第３−６、第３−７および第３−８のシフタ・加減算部とフリップフロップの組み合わせについても同様であり、それらの組み合わせから出力信号Ｐ［１］〜Ｐ［７］が出力される。また、第３−ｋフリップフロップ１０９〜１１６の出力信号は、第３−１セレクタ９２に戻されることがある。第３−１レンジオーバーエラー検出部１１８は、Ｐ［０］〜Ｐ［７］の出力信号について、レンジオーバーエラーの検出を行う。
【００３７】
Ｈ．２６４規格の８×８逆変換処理では、第３処理部９１において中間演算を行い、その結果として、第３処理部９１から中間出力Ｔ［０］〜Ｔ［３］およびＲ［０］〜Ｒ［３］が得られる。第３−１レンジオーバーエラー検出部１１８は、この中間出力Ｔ［０］〜Ｔ［３］およびＲ［０］〜Ｒ［３］についてもレンジオーバーエラーの検出を行う。第３−１レンジオーバーエラー検出部１１８は、レンジオーバーエラーを検出すると、図示しないエラー制御部へ通知する。
【００３８】
（シリアル出力部の構成）
図５は、第４処理部の構成を示す説明図である。シリアル出力部２１は、図５に示す第４処理部１２１により構成されている。図５に示すように、第４処理部１２１は、例えば４個のセレクタ１２２〜１２５、例えば２個のフリップフロップ１２６，１２７、入力信号を下位ビット方向へ５ビット分シフトする右５ビットシフタ１２８、入力信号に１を加算する＋１加算器１２９、入力信号を下位ビット方向へ１ビット分シフトする右１ビットシフタ１３０、および第４−１制御部１３１を備えている。
【００３９】
第４−１制御部１３１は、規格／モード切り替え信号に応じて４個のセレクタ１２２〜１２５の選択動作を制御する。第４−１セレクタ１２２および第４−２セレクタ１２３は、第４−１制御部１３１から与えられるセレクト信号に基づいて、第２バタフライ・後処理部２０の出力信号Ｐ［０］〜Ｐ［３］、Ｐ［６］およびＰ［７］の出力信号を選択する。第４−１フリップフロップ１２６および第４−２フリップフロップ１２７は、それぞれ、第４−１セレクタ１２２の出力信号および第４−２セレクタ１２３の出力信号をラッチする。第４−３セレクタ１２４は、第４−１制御部１３１から与えられるセレクト信号に基づいて、第２バタフライ・後処理部２０の出力信号Ｐ［０］〜Ｐ［７］、第４−１フリップフロップ１２６の出力信号および第４−２フリップフロップ１２７の出力信号を選択する。
【００４０】
右５ビットシフタ１２８は、第４−３セレクタ１２４の出力信号を下位ビット方向へ５ビット分シフトする。＋１加算器１２９は、右５ビットシフタ１２８の出力信号に１を加算する。右１ビットシフタ１３０は、１２９の出力信号を下位ビット方向へ１ビット分シフトする。第４−４セレクタ１２５は、第４−１制御部１３１から与えられるセレクト信号に基づいて、第４−３セレクタ１２４の出力信号および右１ビットシフタ１３０の出力信号を選択する。第４−４セレクタ１２５からは、ｆ＿ｏｕｔ［］が１サイクルに１係数ずつ出力される。
【００４１】
（ＭＰＥＧ１，２，４規格での動作）
逆変換処理の単位となるブロックサイズは８×８である。処理は、大まかに、前記（８）式の演算を行うステップ１、前記（７）式の演算を行うステップ２、および所定ビット数への丸め処理に分けられる。これらの処理は、転置ＲＡＭ１６を経由して水平逆変換処理および垂直逆変換処理の２回実行される。乗算回路部１２，１８では、ステップ１の演算のうち前記（８）式の乗算の部分（Ａ×ｆ［０］など）が実行される。累積加算部１３，１９では、ステップ１の演算のうち前記（８）式の加算または減算の部分（Ａ×ｆ［０］＋Ｅ×ｆ［４］＋Ｃ×ｆ［２］＋Ｇ×ｆ［６］など）が実行される。バタフライ・後処理部１４，２０では、ステップ２の演算が実行される。水平行列演算の最後には、再びバタフライ・後処理部１４において、演算処理モードから丸め処理モードに切り替わり、ステップ２の演算結果に対して、次の（１０）式に示すような丸め処理が行われる。
【００４２】
Ｐ［０］＝（Ｐ［０］＋ｘ）>>ｙ
Ｐ［１］＝（Ｐ［１］＋ｘ）>>ｙ
Ｐ［２］＝（Ｐ［２］＋ｘ）>>ｙ
Ｐ［３］＝（Ｐ［３］＋ｘ）>>ｙ
Ｐ［４］＝（Ｐ［４］＋ｘ）>>ｙ
Ｐ［５］＝（Ｐ［５］＋ｘ）>>ｙ
Ｐ［６］＝（Ｐ［６］＋ｘ）>>ｙ
Ｐ［７］＝（Ｐ［７］＋ｘ）>>ｙ  ・・・（１０）
なお、「>>」は、下位ビット方向へｙビット分シフトすることを表している。例えば、（１０）式の１行目の演算は、Ｐ［０］にｘを加算し、さらにそれを下位ビット方向へｙビット分シフトすることを表している。ここで、ｘおよびｙは整数である。
【００４３】
乗算回路部１２，１８では、ステップ１の処理において、ｆ［０］に対して係数Ａが乗算される。この演算は、図１の第１−１可変係数乗算器３１の乗算係数をＡ、すなわち表１よりｃｏｓ（π／４）に設定し、第１−１可変係数乗算器３１で入力信号ｆ［０］ｉｎにｃｏｓ（π／４）を乗算すればよい。そして、表１に示すように、係数をさらに√２／２倍するので、第１−１セレクタ３９は、第１−１固定係数乗算器３３の出力信号を選択する。また、ｆ［４］に対して係数Ｅが乗算される。この演算は、入力信号ｆ［０］ｉｎに係数Ａを乗算する場合と同じである。
【００４４】
ｆ［２］に対しては係数Ｃと係数Ｇが同時に乗算される。この演算は、図１の第１−１可変係数乗算器３１の乗算係数をＣ、すなわち表１よりｃｏｓ（π／８）に設定し、第１−１可変係数乗算器３１で入力信号ｆ［２］ｉｎにｃｏｓ（π／８）を乗算するとともに、図１の第１−２可変係数乗算器３２の乗算係数をＧ、すなわち表１よりｓｉｎ（π／８）に設定し、第１−２可変係数乗算器３２で入力信号ｆ［２］ｉｎにｓｉｎ（π／８）を乗算すればよい。この場合も係数をさらに√２／２倍するため、第１−１セレクタ３９および第１−２セレクタ４０は、それぞれ、第１−１固定係数乗算器３３の出力信号および第１−２固定係数乗算器３４の出力信号を選択する。また、ｆ［６］に対して係数Ｃと係数Ｇが同時に乗算される。この演算は、入力信号ｆ［２］ｉｎに係数Ｃと係数Ｇを同時に乗算する場合と同じである。
【００４５】
ｆ［１］、ｆ［３］、ｆ［５］およびｆ［７］に対して、係数Ｂと係数Ｄと係数Ｆと係数Ｈが同時に乗算される。表１より、Ｂ、Ｄ、ＦおよびＨは、それぞれ、ｃｏｓ（π／１６）、ｃｏｓ（３π／１６）、ｓｉｎ（３π／１６）およびｓｉｎ（π／１６）である。ｃｏｓ（３π／１６）およびｓｉｎ（３π／１６）を展開すると、それぞれ、次の（１１）式および（１２）式が得られる。
【００４６】
ｃｏｓ（３π／１６）＝ｃｏｓ（４π／１６−π／１６）
＝ｃｏｓ（π／４）×ｃｏｓ（π／１６）＋ｓｉｎ（π／４）×ｓｉｎ（π／１６）
＝（√２／２）・（ｃｏｓ（π／１６）＋ｓｉｎ（π／１６））  ・・・（１１）
ｓｉｎ（３π／１６）＝ｓｉｎ（４π／１６−π／１６）
＝ｓｉｎ（π／４）×ｃｏｓ（π／１６）−ｃｏｓ（π／４）×ｓｉｎ（π／１６）
＝（√２／２）・（ｃｏｓ（π／１６）−ｓｉｎ（π／１６））  ・・・（１２）
【００４７】
（１１）式および（１２）式をＢ、Ｄ、ＦおよびＨを用いて表すと、次の（１３）式および（１４）式が得られる。
Ｄ＝（√２／２）・（Ｂ＋Ｈ）  ・・・（１３）
Ｆ＝（√２／２）・（Ｂ−Ｈ）  ・・・（１４）
【００４８】
表１に示すように、各係数をさらに√２／２倍するので、Ｂ、Ｄ、ＦおよびＨは次の（１５）式、（１６）式、（１７）式および（１８）式で表される。
Ｂ＝（√２／２）×Ｂ・・・（１５）
Ｄ＝（Ｂ＋Ｈ）>>１  ・・・（１６）
Ｆ＝（Ｂ−Ｈ）>>１  ・・・（１７）
Ｈ＝（√２／２）×Ｈ・・・（１８）
【００４９】
従って、Ｄは、ＢとＨを加算し、さらにそれを下位ビット方向へ１ビット分シフトすることにより得られる。また、Ｆは、ＢからＨを減算し、さらにそれを下位ビット方向へ１ビット分シフトすることにより得られる。この場合の乗算回路部１２，１８の論理的なデータフローを図６に示す。図６に示すように、第１−１可変係数乗算器３１および第１−２可変係数乗算器３２の乗算係数を、それぞれ、ＨおよびＢとし、第１−１固定係数乗算器３３の出力と第１−２固定係数乗算器３４の出力を選択することにより、係数Ｈとの乗算結果および係数Ｂとの乗算結果が得られる。また、第１−１加減算器３５で係数Ｈとの乗算結果と係数Ｂとの乗算結果を加算し、第１−２加減算器３７で係数Ｂとの乗算結果から係数Ｈとの乗算結果を減算し、それぞれの演算結果を第１−１ビットシフタ３６および第１−２ビットシフタ３８で下位ビット方向へ１ビット分シフトすることにより、係数Ｄとの乗算結果および係数Ｆとの乗算結果が得られる。
【００５０】
累積加算部１３，１９では、乗算回路部１２，１８からＨ×ｆ［７］、Ｆ×ｆ［７］、Ｄ×ｆ［７］およびＢ×ｆ［７］を入力すると、第２−５加減算器６７、第２−６加減算器６８、第２−７加減算器６９および第２−８加減算器７０で、それぞれ、Ｈ×ｆ［７］の加算、Ｆ×ｆ［７］の減算、Ｄ×ｆ［７］の加算およびＢ×ｆ［７］の減算が行われる。Ｇ×ｆ［６］およびＣ×ｆ［６］を入力すると、第２−１加減算器６３、第２−２加減算器６４、第２−３加減算器６５および第２−４加減算器６６で、それぞれ、Ｇ×ｆ［６］の加算、Ｃ×ｆ［６］の減算、Ｃ×ｆ［６］の加算およびＧ×ｆ［６］の減算が行われる。
【００５１】
Ｈ×ｆ［５］、Ｆ×ｆ［５］、Ｄ×ｆ［５］およびＢ×ｆ［５］を入力すると、第２−５加減算器６７、第２−６加減算器６８、第２−７加減算器６９および第２−８加減算器７０で、それぞれ、Ｆ×ｆ［５］の加算、Ｂ×ｆ［５］の減算、Ｈ×ｆ［５］の加算およびＤ×ｆ［５］の加算が行われる。Ｇ×ｆ［２］およびＣ×ｆ［２］を入力すると、第２−１加減算器６３、第２−２加減算器６４、第２−３加減算器６５および第２−４加減算器６６で、それぞれ、Ｃ×ｆ［２］の加算、Ｇ×ｆ［２］の加算、Ｇ×ｆ［２］の減算およびＣ×ｆ［２］の減算が行われる。
【００５２】
Ｈ×ｆ［３］、Ｆ×ｆ［３］、Ｄ×ｆ［３］およびＢ×ｆ［３］を入力すると、第２−５加減算器６７、第２−６加減算器６８、第２−７加減算器６９および第２−８加減算器７０で、それぞれ、Ｄ×ｆ［３］の加算、Ｈ×ｆ［３］の減算、Ｂ×ｆ［３］の減算およびＦ×ｆ［３］の減算が行われる。Ｅ×ｆ［４］を入力すると、第２−１加減算器６３、第２−２加減算器６４、第２−３加減算器６５および第２−４加減算器６６で、それぞれ、Ｅ×ｆ［４］の加算、Ｅ×ｆ［４］の減算、Ｅ×ｆ［４］の減算およびＥ×ｆ［４］の加算が行われる。
【００５３】
Ｈ×ｆ［１］、Ｆ×ｆ［１］、Ｄ×ｆ［１］およびＢ×ｆ［１］を入力すると、第２−５加減算器６７、第２−６加減算器６８、第２−７加減算器６９および第２−８加減算器７０で、それぞれ、Ｂ×ｆ［１］の加算、Ｄ×ｆ［１］の加算、Ｆ×ｆ［１］の加算およびＨ×ｆ［１］の加算が行われる。Ａ×ｆ［０］を入力すると、第２−１加減算器６３、第２−２加減算器６４、第２−３加減算器６５および第２−４加減算器６６でＡ×ｆ［０］の加算が行われる。これら乗算回路部１２，１８からの入力信号は、第２−１セレクタ６２により各加減算器へ振り分けられる。
【００５４】
バタフライ・後処理部１４，２０では、累積加算部１３，１９からＴ［０］〜Ｔ［３］およびＲ［０］〜Ｒ［３］を入力すると、バタフライ演算が行われる。バタフライ演算では、第３−１加減算器９４、第３−２加減算器９６、第３−３加減算器９８および第３−４加減算器１００で、それぞれ、Ｔ［０］とＲ［０］の加算、Ｔ［１］とＲ［１］の加算、Ｔ［２］とＲ［２］の加算、およびＴ［３］とＲ［３］の加算が行われる。また、第３−５加減算器１０２、第３−６加減算器１０４、第３−７加減算器１０６および第３−８加減算器１０８で、それぞれ、Ｔ［３］からＲ［３］の減算、Ｔ［２］からＲ［２］の減算、Ｔ［１］からＲ［１］の減算、およびＴ［０］からＲ［０］の減算が行われる。これら累積加算部１３，１９からの入力信号は、第３−１セレクタ９２により各加減算器へ振り分けられる。
【００５５】
第１バタフライ・後処理部１４の場合には、各加減算器での演算結果Ｐ［０］〜Ｐ［７］が再び第３−１セレクタ９２に戻される。そして、第１バタフライ・後処理部１４において、戻されたＰ［０］〜Ｐ［７］に対して、後処理として前記（１０）式の丸め処理が行われる。ＭＰＥＧ１，２，４規格では、転置ＲＡＭ１６が１８ビットの構成であるので、丸め処理によって２０ビットのＰ［０］〜Ｐ［７］は１８ビットに丸められる。従って、前記（１０）式のｘとｙはともに２である。２０ビットのＰ［０］〜Ｐ［７］は、それぞれ、第３−１加減算器９４、第３−２加減算器９６、第３−３加減算器９８および第３−４加減算器１００、第３−５加減算器１０２、第３−６加減算器１０４、第３−７加減算器１０６および第３−８加減算器１０８で２を加算され、さらに第３−１ビットシフタ９３、第３−２ビットシフタ９５、第３−３ビットシフタ９７、第３−４ビットシフタ９９、第３−５ビットシフタ１０１、第３−６ビットシフタ１０３、第３−７ビットシフタ１０５および第３−８ビットシフタ１０７により下位ビット方向へ２ビット分シフトされる。
【００５６】
シリアル出力部２１では、第２バタフライ・後処理部２０からＰ［０］〜Ｐ［７］が入力されると、例えば、Ｐ［０］およびＰ［１］は、第４−１セレクタ１２２および第４−２セレクタ１２３により選択され、第４−１フリップフロップ１２６および第４−２フリップフロップ１２７に退避させられる。Ｐ［２］〜Ｐ［７］は、第４−３セレクタ１２４および第４−４セレクタ１２５を経由して、例えば、１サイクルごとにＰ［７］、Ｐ［６］、Ｐ［５］、Ｐ［４］、Ｐ［３］、Ｐ［２］の順で出力される。また、例えばＰ［２］の出力に続いて、第４−３セレクタ１２４および第４−４セレクタ１２５を経由して、Ｐ［１］、Ｐ［０］がこの順で１サイクルごとに出力される。
【００５７】
（ＶＣ−１規格での動作）
逆変換処理の単位となるブロックサイズは８×８、８×４、４×８および４×４の４通りである。８×４逆変換処理は、一次元水平８×８逆変換処理を４回実行し、転置ＲＡＭを経由した後、一次元垂直４×４逆変換処理を８回実行することにより実現される。４×８逆変換処理は、一次元水平４×４逆変換処理を８回実行し、転置を経由した後、一次元垂直８×８逆変換処理を４回実行することにより実現される。処理の流れは、ＭＰＥＧ１，２，４規格の場合と同様である。
【００５８】
８×８逆変換処理における乗算回路部１２，１８の動作は以下の通りである。ｆ［０］に対して係数Ａを乗算する場合、図１の第１−１可変係数乗算器３１に乗算係数Ａとして１２（表１参照）が設定される。そして、第１−１セレクタ３９により、第１−２フリップフロップ４５の出力信号が選択される。また、ｆ［４］に対して係数Ｅを乗算する場合は、ｆ［０］に係数Ａを乗算する場合と同じである。
【００５９】
ｆ［２］に対して係数Ｃと係数Ｇを同時に乗算する場合、図１の第１−１可変係数乗算器３１に乗算係数Ｃとして１６（表１参照）が設定され、第１−２可変係数乗算器３２に乗算係数Ｇとして６（表１参照）が設定される。そして、第１−１セレクタ３９および第１−２セレクタ４０により、それぞれ、第１−２フリップフロップ４５の出力信号および第１−５フリップフロップ４８の出力信号が選択される。また、ｆ［６］に対して係数Ｃと係数Ｇを同時に乗算する場合は、ｆ［２］に係数Ｃと係数Ｇを同時に乗算する場合と同じである。
【００６０】
ｆ［１］、ｆ［３］、ｆ［５］およびｆ［７］に対して、係数Ｂと係数Ｄと係数Ｆと係数Ｈを同時に乗算する場合、表１より、Ｂ、Ｄ、ＦおよびＨは、それぞれ、１６、１５、９および４である。１６を乗算することは、上位ビット方向へ４ビット分シフトすることと同じである。また、４を乗算することは、上位ビット方向へ２ビット分シフトすることと同じである。この場合の乗算回路部１２，１８の論理的なデータフローを図７に示す。図７に示すように、第１−１可変係数乗算器３１および第１−２可変係数乗算器３２の乗算係数を、それぞれ、Ｄの１５およびＦの９とし、第１−２フリップフロップ４５の出力と第１−５フリップフロップ４８の出力を選択することにより、係数Ｄとの乗算結果および係数Ｆとの乗算結果が得られる。
【００６１】
また、第１−７フリップフロップ５０の出力を第１−１ビットシフタ３６で上位ビット方向へ４ビット分シフトすることにより、係数Ｂとの乗算結果が得られる。また、第１−７フリップフロップ５０の出力を第１−２ビットシフタ３８で上位ビット方向へ２ビット分シフトすることにより、係数Ｈとの乗算結果が得られる。４×４逆変換処理では、入力信号に対して同時に乗算を行う係数の数は１個または２個であるので、第１−１可変係数乗算器３１と第１−２可変係数乗算器３２を用いることによって演算結果を得ることができる。
【００６２】
８×８逆変換処理における累積加算部１３，１９の動作は、ＭＰＥＧ１，２，４規格の場合と同様である。４×４逆変換処理の場合には、累積加算部１３，１９では、前記（９）式の演算が行われる。乗算回路部１２，１８からＤ×ｆ［３］およびＢ×ｆ［３］が入力されると、第２−５加減算器６７および第２−６加減算器６８で、それぞれ、Ｄ×ｆ［３］の加算およびＢ×ｆ［３］の減算が行われる。Ｃ×ｆ［２］が入力されると、第２−１加減算器６３および第２−２加減算器６４で、それぞれ、Ｃ×ｆ［２］の加算およびＣ×ｆ［２］の減算が行われる。
【００６３】
Ｄ×ｆ［１］およびＢ×ｆ［１］を入力すると、第２−５加減算器６７および第２−６加減算器６８で、それぞれ、Ｂ×ｆ［１］の加算およびＤ×ｆ［１］の加算が行われる。Ａ×ｆ［０］を入力すると、第２−１加減算器６３および第２−２加減算器６４でＡ×ｆ［０］の加算が行われる。これら乗算回路部１２，１８からの入力信号は、第２−１セレクタ６２により各加減算器へ振り分けられる。
【００６４】
８×８逆変換処理におけるバタフライ・後処理部１４，２０のバタフライ演算時の動作は、ＭＰＥＧ１，２，４規格の場合と同様である。４×４逆変換処理の場合のバタフライ演算では、次の（１９）式の演算が行われる。なお、垂直処理時の出力タイミングの関係で、Ｐ［２］およびＰ［３］のデータは、それぞれ、Ｐ［６］およびＰ［７］に格納される。
Ｐ［０］＝Ｔ［０］＋Ｒ［０］
Ｐ［１］＝Ｔ［１］＋Ｒ［１］
Ｐ［７］＝Ｔ［０］−Ｒ［０］
Ｐ［６］＝Ｔ［１］−Ｒ［１］  ・・・（１９）
【００６５】
累積加算部１３，１９からＴ［０］、Ｔ［１］、Ｒ［０］およびＲ［１］を入力し、（１９）式の演算を行う際、バタフライ・後処理部１４，２０では、第３−１加減算器９４および第３−２加減算器９６で、それぞれ、Ｔ［０］とＲ［０］の加算、およびＴ［１］とＲ［１］の加算が行われる。また、第３−８加減算器１０８および第３−７加減算器１０６で、それぞれ、Ｔ［０］からＲ［０］の減算、およびＴ［１］からＲ［１］の減算が行われる。これら累積加算部１３，１９からの入力信号は、第３−１セレクタ９２により各加減算器へ振り分けられる。
【００６６】
また、バタフライ・後処理部１４，２０では、バタフライ演算の終了後、後処理として、８×８逆変換処理の場合には前記（１０）式の丸め処理、４×４逆変換処理の場合には次の（２０）式の丸め処理が行われる。
Ｐ［０］＝（Ｐ［０］＋ｘ）>>ｙ
Ｐ［１］＝（Ｐ［１］＋ｘ）>>ｙ
Ｐ［６］＝（Ｐ［６］＋ｘ）>>ｙ
Ｐ［７］＝（Ｐ［７］＋ｘ）>>ｙ  ・・・（２０）
【００６７】
ＶＣ−１規格では、前記（１０）式および（２０）式のｘおよびｙの値は、水平処理と垂直処理で異なる。水平処理では、ｘは４であり、ｙは３である。すなわち、バタフライ演算の結果に４が加算され、さらに下位ビット方向へ３ビット分シフトされる。垂直処理では、ｘは６４または６５であり、ｙは７である。すなわち、バタフライ演算の結果に６４または６５が加算され、さらに下位ビット方向へ７ビット分シフトされる。垂直処理において、６４と６５のいずれを加算するかは、ブロックサイズと画素位置によって決まり、モード切り替え信号により選択される。
【００６８】
丸め処理の終了後、第３−１レンジオーバーエラー検出部１１８によりレンジオーバーエラー検出が行われる。水平処理では、Ｐ［０］〜Ｐ［７］（８×８の場合）のいずれか、またはＰ［０］、Ｐ［１］、Ｐ［６］およびＰ［７］（４×４の場合）のいずれかが、２12−１よりも大きいか、または−２12よりも小さいとエラーが検出される。垂直処理では、Ｐ［０］〜Ｐ［７］（８×８の場合）のいずれか、またはＰ［０］、Ｐ［１］、Ｐ［６］およびＰ［７］（４×４の場合）のいずれかが、２9−１よりも大きいか、または−２9よりも小さいとエラーが検出される。
【００６９】
８×８逆変換処理におけるシリアル出力部２１の動作は、ＭＰＥＧ１，２，４規格の場合と同様である。４×４逆変換処理の場合には、Ｐ［０］、Ｐ［１］、Ｐ［６］およびＰ［７］は、第４−３セレクタ１２４および第４−４セレクタ１２５を経由して、例えば、１サイクルごとにＰ［７］、Ｐ［６］、Ｐ［１］、Ｐ［０］の順で出力される。なお、Ｐ［７］およびＰ［６］は、本来のＰ［３］およびＰ［２］として出力される。
【００７０】
（ＡＶＳ規格での動作）
逆変換処理の単位となるブロックサイズは８×８である。処理の流れは、ＭＰＥＧ１，２，４規格の場合と同様である。乗算回路部１２，１８の動作は以下の通りである。ｆ［０］に対して係数Ａを乗算する場合、図１の第１−１可変係数乗算器３１に乗算係数Ａとして８（表１参照）が設定される。そして、第１−１セレクタ３９により、第１−２フリップフロップ４５の出力信号が選択される。また、ｆ［４］に対して係数Ｅを乗算する場合は、ｆ［０］に係数Ａを乗算する場合と同じである。
【００７１】
ｆ［２］に対して係数Ｃと係数Ｇを同時に乗算する場合、図１の第１−１可変係数乗算器３１に乗算係数Ｃとして１０（表１参照）が設定され、第１−２可変係数乗算器３２に乗算係数Ｇとして４（表１参照）が設定される。そして、第１−１セレクタ３９および第１−２セレクタ４０により、それぞれ、第１−２フリップフロップ４５の出力信号および第１−５フリップフロップ４８の出力信号が選択される。また、ｆ［６］に対して係数Ｃと係数Ｇを同時に乗算する場合は、ｆ［２］に係数Ｃと係数Ｇを同時に乗算する場合と同じである。
【００７２】
ｆ［１］、ｆ［３］、ｆ［５］およびｆ［７］に対して、係数Ｂと係数Ｄと係数Ｆと係数Ｈを同時に乗算する場合、表１より、Ｂ、Ｄ、ＦおよびＨは、それぞれ、１０、９、６および２である。１０を乗算することは、９を乗算したものと１を乗算したものを加算することと同じである。また、２を乗算することは、上位ビット方向へ１ビット分シフトすることと同じである。この場合の乗算回路部１２，１８の論理的なデータフローを図８に示す。
【００７３】
図８に示すように、第１−１可変係数乗算器３１および第１−２可変係数乗算器３２の乗算係数を、それぞれ、Ｄの９およびＦの６とし、第１−２フリップフロップ４５の出力と第１−５フリップフロップ４８の出力を選択することにより、係数Ｄとの乗算結果および係数Ｆとの乗算結果が得られる。また、第１−１加減算器３５で、第１−７フリップフロップ５０の出力と第１−２フリップフロップ４５の出力（第１−１可変係数乗算器３１の乗算結果）を加算することにより、係数Ｂとの乗算結果が得られる。また、第１−７フリップフロップ５０の出力を第１−２ビットシフタ３８で上位ビット方向へ１ビット分シフトすることにより、係数Ｈとの乗算結果が得られる。
【００７４】
累積加算部１３，１９の動作は、ＭＰＥＧ１，２，４規格の場合と同様である。バタフライ・後処理部１４，２０のバタフライ演算時の動作は、ＭＰＥＧ１，２，４規格の場合と同様である。バタフライ演算の終了後、後処理として、バタフライ・後処理部１４，２０により前記（１０）式の丸め処理が行われる。ＡＶＳ規格では、前記（１０）式のｘおよびｙの値は、水平処理と垂直処理で異なる。
【００７５】
水平処理では、ｘは４であり、ｙは３である。すなわち、バタフライ演算の結果に４が加算され、さらに下位ビット方向へ３ビット分シフトされる。ただし、４を加算した後、その値を−２15〜２15−１でクリップしてからビットシフトが行われる。垂直処理では、ｘは６４であり、ｙは７である。すなわち、バタフライ演算の結果に６４が加算され、さらに下位ビット方向へ７ビット分シフトされる。ただし、６４を加算した後、その値を−２15〜２15−１でクリップしてからビットシフトが行われる。シリアル出力部２１の動作は、ＭＰＥＧ１，２，４規格の場合と同様である。
【００７６】
（Ｈ．２６４規格での動作）
逆変換処理の単位となるブロックサイズは８×８および４×４の２通りである。４×４逆変換処理は、大まかに、次の（２１）式の演算を行うステップ１、前記（１９）式の演算を行うステップ２、および前記（２０）式の丸め処理に分けられる。ステップ１およびステップ２は、他の規格と同様に、転置ＲＡＭ１６を挟んで水平処理および垂直処理の２回実行される。丸め処理は、垂直逆変換処理後にシリアル出力部２１において１回だけ実行される。
【００７７】
Ｔ［０］＝ｆ［０］＋ｆ［２］
Ｔ［１］＝ｆ［０］−ｆ［２］
Ｒ［０］＝ｆ［１］＋（ｆ［３］>>１）
Ｒ［１］＝（ｆ［１］>>１）−ｆ［３］  ・・・（２１）
【００７８】
４×４逆変換処理における乗算回路部１２，１８の動作は以下の通りである。第１−１可変係数乗算器３１の乗算係数として１が設定される。第１−２可変係数乗算器３２の乗算係数として０．５が設定される。０．５を乗算することは、下位ビット方向へ１ビット分シフトすることと同じである。従って、乗算回路部１２，１８からｆ［０］、ｆ［１］、ｆ［２］、ｆ［３］、（ｆ［１］>>１）および（ｆ［３］>>１）が出力される。
【００７９】
４×４逆変換処理において、累積加算部１３，１９では、前記（２１）式の演算が行われる。乗算回路部１２，１８から（ｆ［３］>>１）およびｆ［３］が入力すると、第２−５加減算器６７および第２−６加減算器６８で、それぞれ、（ｆ［３］>>１）の加算およびｆ［３］の減算が行われる。ｆ［２］が入力すると、第２−１加減算器６３および第２−２加減算器６４で、それぞれ、ｆ［２］の加算およびｆ［２］の減算が行われる。
【００８０】
ｆ［１］および（ｆ［１］>>１）が入力すると、第２−５加減算器６７および第２−６加減算器６８で、それぞれ、ｆ［１］の加算および（ｆ［１］>>１）の加算が行われる。ｆ［０］が入力すると、第２−１加減算器６３および第２−２加減算器６４でｆ［０］の加算が行われる。これら乗算回路部１２，１８からの入力信号は、第２−１セレクタ６２により各加減算器へ振り分けられる。前記（２１）式の左辺算出時に、第２−１レンジオーバーエラー検出部８０によりレンジオーバーエラー検出が行われる。Ｔ［０］、Ｔ［１］、Ｒ［０］またはＲ［１］が、２15−１よりも大きいか、または−２15よりも小さいと、エラーが検出される。
【００８１】
４×４逆変換処理におけるバタフライ・後処理部１４，２０のバタフライ演算時の動作は、ＶＣ−１規格の４×４逆変換処理の場合と同様である。ただし、バタフライ演算時に、第３−１レンジオーバーエラー検出部１１８によりレンジオーバーエラー検出が行われる。第１バタフライ・後処理部１４による水平処理時には、Ｐ［０］、Ｐ［１］、Ｐ［６］またはＰ［７］が、２15−１よりも大きいか、または−２15よりも小さいと、エラーが検出される。第２バタフライ・後処理部２０による垂直処理時には、Ｐ［０］、Ｐ［１］、Ｐ［６］またはＰ［７］が、２15−３３よりも大きいか、または−２15よりも小さいと、エラーが検出される。
【００８２】
４×４逆変換処理において、シリアル出力部２１では、丸め処理が行われる。Ｈ．２６４規格では、前記（２０）式のｘは３２であり、ｙは６である。これを実現するため、シリアル出力部２１では、Ｐ［０］、Ｐ［１］、Ｐ［６］およびＰ［７］は、例えば、第４−３セレクタ１２４を経由して右５ビットシフタ１２８に渡され、下位ビット方向へ５ビット分シフトされる。続いて、＋１加算器１２９により１が加算される。続いて、右１ビットシフタ１３０により下位ビット方向へ１ビット分シフトされる。そして、第４−４セレクタ１２５を経由して、例えば、１サイクルごとにＰ［７］、Ｐ［６］、Ｐ［１］、Ｐ［０］の順で出力される。なお、Ｐ［７］およびＰ［６］は、本来のＰ［３］およびＰ［２］として出力される。
【００８３】
８×８逆変換処理は、大まかに、次の（２２）式の演算を行うステップ１、次の（２３）式の演算を行うステップ２、前記（７）式の演算を行うステップ３および前記（１０）式の丸め処理に分けられる。ステップ１、ステップ２およびステップＳ３は、他の規格と同様に、転置ＲＡＭ１６を挟んで水平処理および垂直処理の２回実行される。丸め処理は、垂直逆変換処理後にシリアル出力部２１において１回だけ実行される。
【００８４】
Ｔ［０］＝ｆ［０］＋ｆ［４］
Ｔ［１］＝ｆ［０］−ｆ［４］
Ｔ［２］＝（ｆ［２］>>１）−ｆ［６］
Ｔ［３］＝ｆ［２］＋（ｆ［６］>>１）
Ｒ［０］＝ｆ［３］＋ｆ［５］＋（ｆ［１］＋（ｆ［１］>>１）
Ｒ［１］＝−ｆ［１］＋ｆ［７］＋（ｆ［５］＋（ｆ［５］>>１）
Ｒ［２］＝ｆ［１］＋ｆ［７］−（ｆ［３］＋（ｆ［３］>>１）
Ｒ［３］＝−ｆ［３］＋ｆ［５］−（ｆ［７］＋（ｆ［７］>>１）  ・・・（２２）
【００８５】
Ｔ［０］＝Ｔ［０］＋Ｔ［３］
Ｔ［１］＝Ｔ［１］＋Ｔ［２］
Ｔ［２］＝Ｔ［１］−Ｔ［２］
Ｔ［３］＝Ｔ［０］−Ｔ［３］
Ｒ［０］＝Ｒ［０］−（Ｒ［３］>>２）
Ｒ［１］＝（Ｒ［２］>>２）−Ｒ［１］
Ｒ［２］＝Ｒ［２］＋（Ｒ［１］>>２）
Ｒ［３］＝Ｒ［３］＋（Ｒ［０］>>２）  ・・・（２３）
【００８６】
８×８逆変換処理における乗算回路部１２，１８の論理的なデータフローを図９に示す。図９に示すように、第１−１可変係数乗算器３１の乗算係数として１が設定される。これにより、乗算回路部１２，１８からｆ［０］〜ｆ［７］が出力される。また、第１−２可変係数乗算器３２の乗算係数として０．５が設定される。０．５を乗算することは、下位ビット方向へ１ビット分シフトすることと同じである。従って、乗算回路部１２，１８から（ｆ［２］>>１）および（ｆ［６］>>１）が出力される。また、第１−１加減算器３５で、第１−７フリップフロップ５０の出力と第１−５フリップフロップ４８の出力（第１−２可変係数乗算器３２の出力）を加算することにより、乗算回路部１２，１８から（ｆ［１］＋（ｆ［１］>>１）、（ｆ［３］＋（ｆ［３］>>１）、（ｆ［５］＋（ｆ［５］>>１）および（ｆ［７］＋（ｆ［７］>>１）が出力される。
【００８７】
８×８逆変換処理において、累積加算部１３，１９では、前記（２２）式の演算が行われる。乗算回路部１２，１８からｆ［７］および（ｆ［７］＋（ｆ［７］>>１）が入力されると、第２−６加減算器６８、第２−７加減算器６９および第２−８加減算器７０で、それぞれ、ｆ［７］の加算、ｆ［７］の加算および（ｆ［７］＋（ｆ［７］>>１）の減算が行われる。ｆ［６］および（ｆ［６］>>１）が入力されると、第２−３加減算器６５および第２−４加減算器６６で、それぞれ、ｆ［６］の減算および（ｆ［６］>>１）の加算が行われる。
【００８８】
ｆ［５］および（ｆ［５］＋（ｆ［５］>>１）を入力すると、第２−５加減算器６７、第２−６加減算器６８および第２−８加減算器７０で、それぞれ、ｆ［５］の加算、（ｆ［５］＋（ｆ［５］>>１）の加算およびｆ［５］の加算が行われる。ｆ［４］を入力すると、第２−１加減算器６３および第２−２加減算器６４で、それぞれ、ｆ［４］の加算およびｆ［４］の減算が行われる。ｆ［３］および（ｆ［３］＋（ｆ［３］>>１）を入力すると、第２−５加減算器６７、第２−７加減算器６９および第２−８加減算器７０で、それぞれ、ｆ［３］の加算、（ｆ［３］＋（ｆ［３］>>１）の減算およびｆ［３］の減算が行われる。
【００８９】
ｆ［２］および（ｆ［２］>>１）を入力すると、第２−３加減算器６５および第２−４加減算器６６で、それぞれ、（ｆ［２］>>１）の加算およびｆ［２］の加算が行われる。ｆ［１］および（ｆ［１］＋（ｆ［１］>>１）を入力すると、第２−５加減算器６７、第２−６加減算器６８および第２−７加減算器６９で、それぞれ、（ｆ［１］＋（ｆ［１］>>１）の加算、ｆ［１］の減算およびｆ［１］の加算が行われる。ｆ［０］を入力すると、第２−１加減算器６３および第２−２加減算器６４でｆ［０］の加算が行われる。
【００９０】
これら乗算回路部１２，１８からの入力信号は、第２−１セレクタ６２により各加減算器へ振り分けられる。前記（２２）式の左辺算出時に、第２−１レンジオーバーエラー検出部８０によりレンジオーバーエラー検出が行われる。Ｔ［０］〜Ｔ［３］およびＲ［０］〜Ｒ［３］のいずれかが、２15−１よりも大きいか、または−２15よりも小さいと、エラーが検出される。
【００９１】
８×８逆変換処理におけるバタフライ・後処理部１４，２０のバタフライ演算においては、まず、前記（２３）式の中間演算が行われる。累積加算部１３，１９からＴ［０］〜Ｔ［３］およびＲ［０］〜Ｒ［３］が入力されると、バタフライ・後処理部１４，２０は以下のように動作する。第３−８加減算器１０８により、Ｔ［０］とＴ［３］が加算され、その演算結果が新たにＴ［０］とされる。第３−７加減算器１０６により、Ｔ［１］とＴ［２］が加算され、その演算結果が新たにＴ［１］とされる。第３−６加減算器１０４により、Ｔ［１］からＴ［２］が減算され、その演算結果が新たにＴ［２］とされる。第３−５加減算器１０２により、Ｔ［０］からＴ［３］が減算され、その演算結果が新たにＴ［３］とされる。
【００９２】
また、第３−１ビットシフタ９３によりＲ［３］が下位ビット方向へ２ビット分シフトされる。これを（Ｒ［３］>>２）とすると、第３−１加減算器９４によりＲ［０］から（Ｒ［３］>>２）が減算され、その演算結果が新たにＲ［０］とされる。第３−２ビットシフタ９５によりＲ［２］が下位ビット方向へ２ビット分シフトされる。これを（Ｒ［２］>>２）とすると、第３−２加減算器９６により（Ｒ［２］>>２）からＲ［１］が減算され、その演算結果が新たにＲ［１］とされる。
【００９３】
第３−３ビットシフタ９７によりＲ［１］が下位ビット方向へ２ビット分シフトされる。これを（Ｒ［１］>>２）とすると、第３−３加減算器９８によりＲ［２］と（Ｒ［１］>>２）が加算され、その演算結果が新たにＲ［２］とされる。第３−４ビットシフタ９９によりＲ［０］が下位ビット方向へ２ビット分シフトされる。これを（Ｒ［０］>>２）とすると、第３−４加減算器１００によりＲ［３］と（Ｒ［０］>>２）が加算され、その演算結果が新たにＲ［３］とされる。
【００９４】
この中間演算時に、第３−１レンジオーバーエラー検出部１１８によりレンジオーバーエラー検出が行われる。Ｔ［０］〜Ｔ［３］およびＲ［０］〜Ｒ［３］のいずれかが、２15−１よりも大きいか、または−２15よりも小さいと、エラーが検出される。
【００９５】
中間演算が終了すると、バタフライ・後処理部１４，２０のモードが切り替わり、最終演算が行われる。最終演算では、中間演算によって新たに得られたＴ［０］〜Ｔ［３］およびＲ［０］〜Ｒ［３］が第３−１セレクタ９２に戻される。そして、第３−１加減算器９４、第３−２加減算器９６、第３−３加減算器９８および第３−４加減算器１００で、それぞれ、Ｔ［０］とＲ［０］の加算、Ｔ［１］とＲ［１］の加算、Ｔ［２］とＲ［２］の加算、およびＴ［３］とＲ［３］の加算が行われる。また、第３−５加減算器１０２、第３−６加減算器１０４、第３−７加減算器１０６および第３−８加減算器１０８で、それぞれ、Ｔ［３］からＲ［３］の減算、Ｔ［２］からＲ［２］の減算、Ｔ［１］からＲ［１］の減算、およびＴ［０］からＲ［０］の減算が行われる。これら中間演算結果は、第３−１セレクタ９２により各加減算器へ振り分けられる。
【００９６】
この最終演算時に、第３−１レンジオーバーエラー検出部１１８によりレンジオーバーエラー検出が行われる。第１バタフライ・後処理部１４による水平処理時には、Ｐ［０］〜Ｐ［７］が、２15−１よりも大きいか、または−２15よりも小さいと、エラーが検出される。第２バタフライ・後処理部２０による垂直処理時には、Ｐ［０］〜Ｐ［７］が、２15−３３よりも大きいか、または−２15よりも小さいと、エラーが検出される。
【００９７】
８×８逆変換処理において、シリアル出力部２１では、丸め処理が行われる。丸め処理は、４×４逆変換処理の場合と同様である。ただし、例えば、Ｐ［０］およびＰ［１］は、ＭＰＥＧ１，２，４規格の場合と同様に、第４−１フリップフロップ１２６および第４−２フリップフロップ１２７に退避させられる。そして、例えば、１サイクルごとにＰ［７］、Ｐ［６］、Ｐ［５］、Ｐ［４］、Ｐ［３］、Ｐ［２］、Ｐ［１］、Ｐ［０］がこの順で１サイクルごとに出力される。
【００９８】
図１０は、ＭＰＥＧ１，２，４、ＶＣ−１およびＡＶＳ規格における８×８水平逆変換処理のタイミングチャートを示す説明図である。図１１は、ＭＰＥＧ１，２，４、ＶＣ−１およびＡＶＳ規格における８×８垂直逆変換処理のタイミングチャートを示す説明図である。図１２は、Ｈ．２６４規格における８×８水平逆変換処理のタイミングチャートを示す説明図である。図１３は、Ｈ．２６４規格における８×８垂直逆変換処理のタイミングチャートを示す説明図である。これらの図では、一次元８×８逆変換処理（８画素分）を１回行った後に一次元４×４逆変換処理（４画素分）を１回行っている。
【００９９】
（動画像復号装置への適用例）
図１４は、逆変換部を内蔵する半導体装置の一例を示す説明図である。図１４に示す例は、複数の画像圧縮規格に対応する動画像復号装置に実施の形態の逆変換部を適用した例である。動画像復号装置２００は、全体制御部２０１、エントロピー復号部２０２、逆量子化部２０３、逆変換部１１、動き補償部２０４、フレーム内・フレーム間予測部２０５およびデブロッキングフィルタ２０６を備えている。動画像復号装置２００は、例えば、一つのＬＳＩとして、またはその一部として構成される。逆変換部１１については、上述した通りである。逆変換部１１を除く各部の詳細な構成および機能等については周知であるので、説明を省略する。
【０１００】
全体制御部２０１には、入力ストリームの画像圧縮規格に対応した規格信号が入力する。全体制御部２０１は、その規格信号に応じた規格切り替え信号およびモード切り替え信号を出力する。これら規格切り替え信号およびモード切り替え信号は、前記規格／モード切り替え信号として逆変換部１１に入力する。従って、全体制御部２０１は、信号生成部としての機能を有する。規格切り替え信号とモード切り替え信号は、別々の信号であってもよいし、まとめて一つの規格／モード切り替え信号であってもよい。動画像復号装置２００で復号化された画像データは、フレームバッファを構成する外部メモリ２１０に格納され、図示しない表示装置へ出力される。
【０１０１】
（動画像再生機器への適用例）
図１５は、逆変換部を内蔵する動画像再生機器の一例を示す説明図である。図１５に示す例は、テレビジョン、チューナ、セットトップボックス、ディスクプレーヤ等の動画像再生機器に実施の形態の逆変換部を適用した例である。動画像再生機器３００は、動画像復号装置２００、外部メモリ２１０、制御部３０１および表示出力部３０２を備えている。逆変換部は、動画像復号装置２００に内蔵されている。制御部３０１は、放送波や光ディスクの仕様に基づいて、入力信号の画像圧縮規格を判断し、その画像圧縮規格に対応した規格信号を動画像復号装置２００に供給する。
【０１０２】
（動画像符号化装置への適用例）
図１６は、逆変換部を内蔵する半導体装置の別の例を示す説明図である。図１６に示す例は、複数の画像圧縮規格に対応する動画像符号化装置に実施の形態の逆変換部を適用した例である。動画像符号化装置４００は、全体制御部４０１、動き補償／フレーム間／フレーム内予測符号処理部４０２、離散コサイン変換（ＤＣＴ）／整数変換部４０３、量子化部４０４、スキャン変換／エントロピー符号化部４０５、逆量子化部４０６、逆変換部１１、動き補償／フレーム間／フレーム内予測復号処理部４０７、デブロッキングフィルタ４０８およびフレームメモリ４０９を備えている。動画像符号化装置４００は、例えば、一つのＬＳＩとして、またはその一部として構成される。逆変換部１１については、上述した通りである。逆変換部１１を除く各部の詳細な構成および機能等については周知であるので、説明を省略する。
【０１０３】
全体制御部４０１は、画像圧縮規格に応じた規格／モード切り替え信号を逆変換部１１に供給する。従って、全体制御部４０１は、信号生成部としての機能を有する。動画像符号化装置４００は、画像データを符号化する際に、符号化された画像データを、逆量子化部４０６、逆変換部１１、動き補償／フレーム間／フレーム内予測復号処理部４０７およびデブロッキングフィルタ４０８により復号し、予測画像を生成する。そのため、動画像符号化装置４００に実施の形態の逆変換部１１が内蔵される。
【０１０４】
以上説明したように、本実施の形態によれば、単一の回路で、複数の画像圧縮規格に依存する信号の逆変換処理を行うことができるので、画像圧縮規格ごとに逆変換処理を行う専用の回路を設けるのに比べて、逆変換部を小型化できる。また、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やディジタル信号プロセッサ（ＤＳＰ：Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）によるソフトウェア処理で逆変換処理を行う場合には、高い周波数や膨大な回路が必要であるため、消費電力が多くなる。それに比べて、本実施の形態はハードウェアによる処理であるので、消費電力が少なくなる。従って、性能に対する回路規模や消費電力を抑えることができるという効果を奏する。
【０１０５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１０６】
（付記１）複数の画像圧縮規格に依存する入力信号を処理する第１処理部と、前記複数の画像圧縮規格に応じた演算内容を設定する切り替え信号を、前記第１処理部に出力する信号生成部とを有し、前記第１処理部は、前記入力信号に対して、前記切り替え信号に応じた第１係数に基づく演算をする第１演算部と、前記第１演算部の出力に対して、前記切り替え信号に応じた第２係数に基づく演算をする第２演算部と、前記第１演算部の出力と前記第２演算部の出力とを、前記切り替え信号に応じて選択する選択部と、前記切り替え信号に応じて前記入力信号と前記第１演算部の出力とを選択し、前記選択された信号に対して、前記切り替え信号に応じた所定の演算をする第３演算部と、を備えることを特徴とする半導体装置。
【０１０７】
（付記２）前記第１演算部は、前記入力信号に対して前記第１係数を乗算する第１可変係数乗算器と、前記入力信号に対して前記第１係数を乗算する第２可変係数乗算器を有し、前記第２演算部は、第１可変係数乗算器の出力に対して前記第２係数を乗算する第１固定係数乗算器と、第２可変係数乗算器の出力に対して前記第２係数を乗算する第２固定係数乗算器を有し、前記選択部は、前記第１可変係数乗算器の出力および前記第１固定係数乗算器の出力のいずれか一方を選択する第１セレクタと、前記第２可変係数乗算器の出力および前記第２固定係数乗算器の出力のいずれか一方を選択する第２セレクタを有し、前記第３演算部は、前記入力信号の出力、前記第１可変係数乗算器の出力および前記第２可変係数乗算器の出力に対して、加減算およびビットシフトのいずれか一方または両方を行う第１加減算・シフタ部と、前記入力信号の出力、前記第１可変係数乗算器の出力および前記第２可変係数乗算器の出力に対して、加減算およびビットシフトのいずれか一方または両方を行う第２加減算・シフタ部を有することを特徴とする付記１に記載の半導体装置。
【０１０８】
（付記３）前記入力信号がＭＰＥＧ規格に依存する信号である場合、前記第１可変係数乗算器に前記第１係数としてｓｉｎ（π／１６）が設定され、前記第２可変係数乗算器に前記第１係数としてｃｏｓ（π／１６）が設定され、前記第１固定係数乗算器に前記第２係数として√２／２が設定され、前記第２固定係数乗算器に前記第２係数として√２／２が設定され、前記第１セレクタは前記第１固定係数乗算器の出力を選択し、前記第２セレクタは前記第２固定係数乗算器の出力を選択し、前記第１加減算・シフタ部は前記第２可変係数乗算器の出力に前記第１可変係数乗算器の出力を加算して下位ビット方向へ１ビット分シフトし、前記第２加減算・シフタ部は前記第２可変係数乗算器の出力から前記第１可変係数乗算器の出力を減算して下位ビット方向へ１ビット分シフトすることにより、前記入力信号に対して（√２／２）・ｓｉｎ（π／１６）、（√２／２）・ｃｏｓ（π／１６）、（√２／２）・ｃｏｓ（３π／１６）および（√２／２）・ｓｉｎ（３π／１６）を別々に同時に乗算した結果を得ることを特徴とする付記２に記載の半導体装置。
【０１０９】
（付記４）前記入力信号がＶＣ−１規格に依存する信号である場合、前記第１可変係数乗算器に前記第１係数として１５が設定され、前記第２可変係数乗算器に前記第１係数として９が設定され、前記第１セレクタは前記第１可変係数乗算器の出力を選択し、前記第２セレクタは前記第２可変係数乗算器の出力を選択し、前記第１加減算・シフタ部は前記入力信号の出力を上位ビット方向へ４ビット分シフトし、前記第２加減算・シフタ部は前記入力信号の出力を上位ビット方向へ２ビット分シフトすることにより、前記入力信号に対して１５、９、１６および４を別々に同時に乗算した結果を得ることを特徴とする付記２に記載の半導体装置。
【０１１０】
（付記５）前記入力信号がＡＶＳ規格に依存する信号である場合、前記第１可変係数乗算器に前記第１係数として９が設定され、前記第２可変係数乗算器に前記第１係数として６が設定され、前記第１セレクタは前記第１可変係数乗算器の出力を選択し、前記第２セレクタは前記第２可変係数乗算器の出力を選択し、前記第１加減算・シフタ部は前記入力信号の出力に前記第１可変係数乗算器の出力を加算し、前記第２加減算・シフタ部は前記入力信号の出力を上位ビット方向へ１ビット分シフトすることにより、前記入力信号に対して９、６、１０および２を別々に同時に乗算した結果を得ることを特徴とする付記２に記載の半導体装置。
【０１１１】
（付記６）前記入力信号がＨ．２６４規格に依存する信号である場合、前記第１可変係数乗算器に前記第１係数として１が設定され、前記第２可変係数乗算器に前記第１係数として０．５が設定され、前記第１セレクタは前記第１可変係数乗算器の出力を選択し、前記第２セレクタは前記第２可変係数乗算器の出力を選択し、前記第１加減算・シフタ部は前記入力信号の出力に前記第２可変係数乗算器の出力を加算することにより、前記入力信号に対して１、０．５および１．５を別々に同時に乗算した結果を得ることを特徴とする付記２に記載の半導体装置。
【０１１２】
（付記７）さらに、前記第１処理部の出力を累積加算する第２処理部を備え、前記第２処理部は、前記切り替え信号に応じて前記第１処理部の出力の加算または減算を繰り返す加減算器と、前記切り替え信号に応じて前記加減算器の出力に対してエラー検出を行う第１エラー検出部と、を備えることを特徴とする付記１〜６のいずれか一つに記載の半導体装置。
【０１１３】
（付記８）前記入力信号がＨ．２６４規格に依存する信号である場合、前記第１エラー検出部は、前記加減算器の出力に対してオーバーフローを検出することを特徴とする付記７に記載の半導体装置。
【０１１４】
（付記９）さらに、前記第２処理部の出力に対してバタフライ演算を行う第３処理部を備え、前記第３処理部は、前記切り替え信号に応じて前記第２処理部の出力に対して加減算およびビットシフトのいずれか一方または両方を行う第３加減算・シフタ部と、前記切り替え信号に応じて前記第３加減算・シフタ部の出力に対してエラー検出を行う第２エラー検出部と、を備えることを特徴とする付記７または８に記載の半導体装置。
【０１１５】
（付記１０）前記入力信号がＭＰＥＧ規格に依存する信号である場合、前記第３加減算・シフタ部は、バタフライ演算結果に対して２を加算して下位ビット方向へ２ビット分シフトすることにより、丸め処理を行うことを特徴とする付記９に記載の半導体装置。
【０１１６】
（付記１１）前記入力信号がＶＣ−１規格に依存する信号である場合、前記第３加減算・シフタ部は、バタフライ演算結果に対して４を加算して下位ビット方向へ３ビット分シフトすることにより、丸め処理を行い、前記第２エラー検出部は、前記丸め処理の結果に対してオーバーフローを検出することを特徴とする付記９に記載の半導体装置。
【０１１７】
（付記１２）前記入力信号がＶＣ−１規格に依存する信号である場合、前記第３加減算・シフタ部は、バタフライ演算結果に対して６４または６５を加算して下位ビット方向へ７ビット分シフトすることにより、丸め処理を行い、前記第２エラー検出部は、前記丸め処理の結果に対してオーバーフローを検出することを特徴とする付記９に記載の半導体装置。
【０１１８】
（付記１３）前記入力信号がＡＶＳ規格に依存する信号である場合、前記第３加減算・シフタ部は、バタフライ演算結果に対して４を加算して下位ビット方向へ３ビット分シフトすることにより、丸め処理を行うことを特徴とする付記９に記載の半導体装置。
【０１１９】
（付記１４）前記入力信号がＡＶＳ規格に依存する信号である場合、前記第３加減算・シフタ部は、バタフライ演算結果に対して６４を加算して下位ビット方向へ７ビット分シフトすることにより、丸め処理を行うことを特徴とする付記９に記載の半導体装置。
【０１２０】
（付記１５）前記入力信号がＨ．２６４規格に依存する信号である場合、前記第３加減算・シフタ部は、前記第２処理部の出力に対して中間演算を行い、該中間演算の結果に対してバタフライ演算を行い、前記第２エラー検出部は、前記中間演算結果および前記バタフライ演算結果に対してオーバーフローを検出することを特徴とする付記９に記載の半導体装置。
【０１２１】
（付記１６）さらに、前記第３処理部の出力を１サイクルに一つずつ出力する第４処理部を備え、前記第４処理部は、前記入力信号がＭＰＥＧ規格、ＶＣ−１規格またはＡＶＳ規格のいずれかに依存する信号である場合、前記切り替え信号に応じて、前記第３処理部の出力をそのまま出力し、前記入力信号がＨ．２６４規格に依存する信号である場合、前記切り替え信号に応じて、前記第３処理部の出力を下位ビット方向へ５ビット分シフトし、１を加算してさらに下位ビット方向へ１ビット分シフトすることにより、丸め処理を行ってから出力することを特徴とする付記９〜１５のいずれか一つに記載の半導体装置。
【０１２２】
（付記１７）前記第１処理部、前記第２処理部および前記第３処理部からなる１次元の水平演算処理を行う水平処理部と、前記第１処理部、前記第２処理部および前記第３処理部からなる１次元の垂直演算処理を行う垂直処理部と、前記水平処理部の出力を並び替えて前記垂直処理部へ渡す転置ＲＡＭと、を備えることを特徴とする付記９〜１５のいずれか一つに記載の半導体装置。
【０１２３】
（付記１８）複数の画像圧縮規格に依存する入力信号に対して、前記複数の画像圧縮規格に応じた演算内容を設定する切り替え信号に応じた第１係数に基づく第１演算をするステップと、前記第１演算の出力に対して、前記切り替え信号に応じた第２係数に基づく第２演算をするステップと、前記第１演算の出力と前記第２演算の出力とを、前記切り替え信号に応じて選択するステップと、前記切り替え信号に応じて前記入力信号と前記第１演算の出力とを選択し、前記選択された信号に対して、前記切り替え信号に応じた所定の第３演算をするステップと、を含むことを特徴とする信号処理方法。
【図面の簡単な説明】
【０１２４】
【図１】乗算回路部の構成を示す説明図である。
【図２】逆変換部の全体の構成を示す説明図である。
【図３】累積加算部の構成を示す説明図である。
【図４】バタフライ・後処理部の構成を示す説明図である。
【図５】シリアル出力部の構成を示す説明図である。
【図６】ＭＰＥＧ１，２，４規格における乗算回路部の論理的なデータフローを示す説明図である。
【図７】ＶＣ−１規格における乗算回路部の論理的なデータフローを示す説明図である。
【図８】ＡＶＳ規格における乗算回路部の論理的なデータフローを示す説明図である。
【図９】Ｈ．２６４規格における乗算回路部の論理的なデータフローを示す説明図である。
【図１０】ＭＰＥＧ１，２，４、ＶＣ−１およびＡＶＳ規格における８×８水平逆変換処理のタイミングチャートを示す説明図である。
【図１１】ＭＰＥＧ１，２，４、ＶＣ−１およびＡＶＳ規格における８×８垂直逆変換処理のタイミングチャートを示す説明図である。
【図１２】Ｈ．２６４規格における８×８水平逆変換処理のタイミングチャートを示す説明図である。
【図１３】Ｈ．２６４規格における８×８垂直逆変換処理のタイミングチャートを示す説明図である。
【図１４】逆変換部を内蔵する半導体装置の一例を示す説明図である。
【図１５】逆変換部を内蔵する動画像再生機器の一例を示す説明図である。
【図１６】逆変換部を内蔵する半導体装置の別の例を示す説明図である。
【符号の説明】
【０１２５】
１  第１処理部
２  第１演算部
３  第２演算部
４  第３演算部
５  選択部
１２，１８  乗算回路部
１３，１９  累積加算部
１４，２０  バタフライ・後処理部
１６  転置ＲＡＭ
３１，３２  可変係数乗算器
３３，３４  固定係数乗算器
３５，３７，６３〜７０，９４，９６，９８，１００，１０２，１０４，１０６，１０８  加減算器
３６，３８，９３，９５，９７，９９，１０１，１０３，１０５，１０７  ビットシフタ
３９，４０  セレクタ
６１  第２処理部
８０，１１８  レンジオーバーエラー検出部
９１  第３処理部
２０１，４０１  全体制御部
【図１】
0004536109.tif 000008
【図２】
0004536109.tif 000009
【図３】
0004536109.tif 000010
【図４】
0004536109.tif 000011
【図５】
0004536109.tif 000012
【図６】
0004536109.tif 000013
【図７】
0004536109.tif 000014
【図８】
0004536109.tif 000015
【図９】
0004536109.tif 000016
【図１０】
0004536109.tif 000017
【図１１】
0004536109.tif 000018
【図１２】
0004536109.tif 000019
【図１３】
0004536109.tif 000020
【図１４】
0004536109.tif 000021
【図１５】
0004536109.tif 000022
【図１６】
0004536109.tif 000023