(57)【要約】【課題】  回路規模が小さく、かつ、演算誤差が小さい逆量子化装置を提供する。【解決手段】  スケールファクタインデックスＳｃｆ、ビットアロケーションＢａ、量子化符号Ｘを入力し、逆量子化値Ｙを出力する逆量子化処理を、ビットシフト処理を用いることによって、乗算の回数を減じて行なう。乗算を１回しか行なわない場合でも、スケールファクタインデックスから２の整数乗の部分を第１のシフト量Ｓ１として取出すことだけでなく、ビットアロケーションＢａおよび参照値Ｒから２の整数乗の部分を第２のシフト量Ｓ２として取出し、できる限り量子化符号Ｘに対する乗算処理をビットシフト処理に置き換えて、１回の乗算で発生する誤差を小さく抑えている。【選択図】        図２
2005099629.tif 000002
【特許請求の範囲】
【請求項１】
量子化符号Ｘ、スケールファクタインデックスＳｃｆおよびビットアロケーションＢａを受けて逆量子化および逆スケーリング処理を行い逆量子化値Ｙを出力する逆量子化装置であって、
下式(1)，(2)に基づき予め算出された各スケールファクタインデックスＳｃｆに対応するシフト量Ｓ１および参照値Ｒを格納する第１の記憶手段と、
前記第１の記憶手段を参照して、入力されたスケールファクタインデックスＳｃｆに対応する前記シフト量Ｓ１および前記参照値Ｒを得る第１の参照手段と、
下式(3)，(4)，(5)に基づき予め算出された各参照値Ｒおよび各ビットアロケーションＢａに対応するシフト量Ｓ２，変換係数Ｃ１およびＣ２を格納する第２の記憶手段と、
前記第２の記憶手段を参照して、前記第１の参照手段から出力された前記参照値Ｒと入力されたビットアロケーションＢａに対応する前記シフト量Ｓ２，前記変換係数Ｃ１およびＣ２を得る第２の参照手段と、
入力された量子化符号Ｘと前記第２の参照手段から出力された変換係数Ｃ１およびＣ２とを用いて下式(6)に従う変換を行い変換値Ｚを出力する変換手段と、
前記変換手段から出力された前記変換値Ｚに対し前記第１、第２の参照手段によってぞれぞれ得られた前記シフト量Ｓ１，Ｓ２を用い下式(7)に従うシフト処理を行い前記逆量子化値Ｙを出力するシフト処理手段とを備える、逆量子化装置：
Ｓ１＝ｉｎｔ（Ｐ１［Ｓｃｆ］／Ｍ）                                …(1)
Ｒ＝ｍｏｄ（Ｐ１［Ｓｃｆ］，Ｍ）                                  …(2)
Ｓ２＝ｉｎｔ（（Ｒ／Ｍ）＋ｌｏｇ2（Ｐ２［Ｂａ］）                  …(3)
Ｃ１＝（２(R/M)＊Ｐ２［Ｂａ］）＊（２(-S2)）                          …(4)
Ｃ２＝Ｐ３［Ｂａ］                                                …(5)
Ｚ＝Ｃ１＊（Ｘ＋Ｃ２）                                            …(6)
Ｙ＝Ｚ＊２(S1+S2)                                                    …(7)
ただし、Ｐ１［Ｓｃｆ］は、各スケールファクタインデックスＳｃｆの値に対し予め定められた整数を示し、Ｐ２［Ｂａ］，Ｐ３［Ｂａ］は、各ビットアロケーションＢａの値に対し予め定められた小数を示し、Ｍは、予め定められた正の整数を示す。
【請求項２】
前記シフト処理手段は、前記シフト処理を、前記シフト量Ｓ１に対応する第１のシフト演算を行ない、さらに、前記シフト量Ｓ２に対応する第２のシフト演算を行なうことにより実行する、請求項１に記載の逆量子化装置。
【請求項３】
前記シフト処理手段は、前記シフト処理を、前記シフト量Ｓ１と前記シフト量Ｓ２の合計値に対応するシフト演算を一括して行なうことにより実行する、請求項１に記載の逆量子化装置。
【請求項４】
前記変換手段は、変換係数Ｃ１，Ｃ２および量子化符号Ｘに基づき次式
Ｚ＝Ｃ１＊Ｘ＋Ｃ２
に従い前記変換値Ｚを生成する、請求項１〜３のいずれかに記載の逆量子化装置。
【請求項５】
前記Ｐ１［Ｓｃｆ］は、３−Ｓｃｆであり、
前記Ｍは、３である、請求項１〜４のいずれかに記載の逆量子化装置。
【請求項６】
復号化時に逆量子化処理を含むオーディオ符号化方式に基づいて復号化処理を行なうオーディオ復号化装置であって、
請求項１〜５のいずれかに記載の逆量子化装置を備える、オーディオ復号化装置。
【請求項７】
復号化時に逆量子化処理を含む画像符号化方式に基づいて復号化処理を行なう画像復号化装置であって、
請求項１〜５のいずれかに記載の逆量子化装置を備える、画像復号化装置。
【請求項８】
量子化符号Ｘ、スケールファクタインデックスＳｃｆおよびビットアロケーションＢａを受けて逆量子化および逆スケーリング処理を行い逆量子化値Ｙを出力する逆量子化方法であって、
下式(1)，(2)に基づき予め算出された各スケールファクタインデックスＳｃｆに対応するシフト量Ｓ１および参照値Ｒを格納する第１の記憶手段を参照して、入力されたスケールファクタインデックスＳｃｆに対応する前記シフト量Ｓ１および前記参照値Ｒを得るステップと、
下式(3)，(4)，(5)に基づき予め算出された各参照値Ｒおよび各ビットアロケーションＢａに対応するシフト量Ｓ２，変換係数Ｃ１およびＣ２を格納する第２の記憶手段を参照して、得られた前記参照値Ｒと入力されたビットアロケーションＢａに対応する前記シフト量Ｓ２，前記変換係数Ｃ１およびＣ２を得るステップと、
入力された量子化符号Ｘと得られた前記変換係数Ｃ１およびＣ２とを用いて下式(6)に従う変換を行い変換値Ｚを出力するステップと、
出力された前記変換値Ｚに対し得られた前記シフト量Ｓ１，Ｓ２を用い下式(7)に従うシフト処理を行い前記逆量子化値Ｙを出力するステップとを備える、逆量子化方法：
Ｓ１＝ｉｎｔ（Ｐ１［Ｓｃｆ］／Ｍ）                                …(1)
Ｒ＝ｍｏｄ（Ｐ１［Ｓｃｆ］，Ｍ）                                  …(2)
Ｓ２＝ｉｎｔ（（Ｒ／Ｍ）＋ｌｏｇ2（Ｐ２［Ｂａ］）                  …(3)
Ｃ１＝（２(R/M)＊Ｐ２［Ｂａ］）＊（２(-S2)）                          …(4)
Ｃ２＝Ｐ３［Ｂａ］                                                …(5)
Ｚ＝Ｃ１＊（Ｘ＋Ｃ２）                                            …(6)
Ｙ＝Ｚ＊２(S1+S2)                                                    …(7)
ただし、Ｐ１［Ｓｃｆ］は、各スケールファクタインデックスＳｃｆの値に対し予め定められた整数を示し、Ｐ２［Ｂａ］，Ｐ３［Ｂａ］は、各ビットアロケーションＢａの値に対し予め定められた小数を示し、Ｍは、予め定められた正の整数を示す。
【請求項９】
請求項８に記載の逆量子化方法に基づく処理を、コンピュータに実行させるための逆量子化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、逆量子化装置、オーディオ復号化装置、画像復号化装置、逆量子化方法および逆量子化プログラムに関し、より特定的には、入力値Ｘ、スケールファクタインデックスＳｃｆおよびビットアロケーションＢａから逆量子化値Ｙを生成する逆量子化装置、オーディオ復号化装置、画像復号化装置、逆量子化方法および逆量子化プログラムに関する。
【背景技術】
【０００２】
アナログ信号を、デジタル信号処理で扱うためには、信号の定義域を離散化する標本化に加え、信号の値域を離散化する量子化の過程が必要である。また、既に値域の離散化が行なわれたデジタル信号を、より少ないデータで扱う場合などに、さらに粗く離散化することがある。この過程も量子化と呼ぶ。
【０００３】
この量子化において離散化後の値を量子化値と呼び、その量子化値を割当てられた符号を量子化符号と呼ぶ。また、隣り合う量子化値の間隔を量子化ステップ幅と呼び、値域全体に含まれる量子化値の個数を量子化ステップ数と呼ぶ。
【０００４】
逆に、デジタル信号処理を行なった後、アナログ信号として出力する場合などには、量子化符号からもとの連続的な値や、もとの小さなステップ幅で離散化された値を復元する過程が必要である。この過程を逆量子化と呼ぶ。
【０００５】
逆量子化の過程では、量子化符号に対応する量子化値を、逆量子化後の値（逆量子化値）とする変換が行なわれる。
【０００６】
量子化値は、量子化の過程において連続的な値を近似したものである。このため、量子化値にはもとの値との誤差（量子化誤差）が発生している。
【０００７】
したがって、逆量子化の過程では量子化が行なわれる前の値を復元することはできず、復元される値は量子化誤差を含んだ近似的な値になる。
【０００８】
また、量子化の過程において、実際の信号が取る値域の範囲（ダイナミックレンジ）で信号を正規化してから量子化を行なうスケーリング処理が行なわれる場合がある。スケーリング処理を行なう場合には、正規化の係数（スケールファクタ）と正規化後の信号に対する量子化符号が個別に保持される。スケーリング処理が行なわれる場合には逆量子化の過程においては、正規化後の信号に対する量子化符号を逆量子化した後、スケールファクタにより逆正規化を行ない、逆量子化値を算出する逆スケーリング処理が行なわれる。
【０００９】
スケーリング処理により、実際に信号が存在している値域にだけ量子化符号を割当てることができるので、限られた量子化ステップ数であっても、量子化誤差を抑えて、入力となる信号に応じた効果的な量子化が可能になる。
【００１０】
以上のような量子化、および、スケーリングの技術は、ＭＰＥＧ(Motion Picture Experts Group)規格などに代表される画像符号化やオーディオ符号化など広い分野で用いられている。
【００１１】
また、量子化に関する一般的な説明は、たとえば、「画像のデジタル信号処理、日刊工業」の第６章や、「音響システムとデジタル処理、電子情報通信学会」の第１章などに記載されている。
【００１２】
ここでは、標準的なオーディオ符号化の１つである、ＩＳＯ／ＩＥＣ１１１７２−３に記載されたMPEG1−Audio Layer II方式で採用されている量子化方式を例にして、具体的な逆量子化、および逆スケーリング処理を行なう従来の装置について説明する。
【００１３】
ＩＳＯ／ＩＥＣ１１１７２−３に記載されたMPEG1−Audio Layer II方式は、高い音質を保ちながら、オーディオ信号のデータ量を圧縮することを目的としたオーディオ符号化方式であり、音質をほとんど劣化させることなく、オーディオ信号のデータ量を約５分の１に圧縮することが可能である。
【００１４】
データの保存や伝送を行なう場合には、時系列のオーディオ信号をMPEG1−Audio Layer IIフォーマットのデータに変換する符号化処理によって、データの圧縮が行なわれる。
【００１５】
また、データの再生を行なう場合は、復号化処理によってデータ圧縮されたMPEG1−Audio Layer IIフォーマットのデータが、時系列のオーディオ信号に変換される。この復号化処理では、オーディオ信号の振幅を符号化する際に、後述するような逆量子化、および、逆スケーリング処理が行なわれる。
【００１６】
上記の復号化処理を行なう復号化装置の詳細については、ＩＳＯ／ＩＥＣ１１１７２−３に記載されている。
【００１７】
次に、ＩＳＯ／ＩＥＣ１１１７２−３に記載されたMPEG1−Audio Layer II方式で採用されている逆量子化、および、逆スケーリング処理について説明する。
【００１８】
逆量子化、および、逆スケーリング処理における入力値は、スケーリング処理の係数に対応する符号であるスケールファクタインデックスＳｃｆ、量子化ステップ数、量子化ステップ幅に対応した符号であるビットアロケーションＢａ、オーディオ信号の振幅に対応した符号である量子化符号Ｘである。
【００１９】
スケールファクタインデックスＳｃｆ、ビットアロケーションＢａおよび量子化符号Ｘは、MPEG1−Audio Layer IIフォーマットのデータに所定の形式で格納されており、このデータから対応する箇所のビット列を取出し、所定の加工を行なって生成される。
【００２０】
以下、この点について詳しく説明する。
【００２１】
［ストリームからの数値の取出し］
スケールファクタインデックスＳｃｆは、MPEG1−Audio Layer IIフォーマット中に６ビットのビット列として格納されている。このビット列がそのまま整数値として読出され、スケールファクタインデックスＳｃｆとして使用される。ただし、ＩＳＯ／ＩＥＣ１１１７２−３の中で、この６ビット中の全ビットが“１”となることは禁止されているので、読出されるスケールファクタインデックスＳｃｆは、０〜６２の範囲の整数値となる。
【００２２】
次にビットアロケーションＢａの生成について説明する。まずビットアロケーションＢａのもととなるデータが、MPEG1−Audio Layer IIフォーマット中に所定のビット数で格納されている。ここでは、このもととなるデータを、インデックス（index）データと呼ぶ。インデックスデータは、所定のビット数に応じた整数値となる。インデックスデータのビット数は、ＩＳＯ／ＩＥＣ１１１７２−３のテーブルＢ．２において定められているように、２〜４ビットのいずれかである。
【００２３】
また、インデックスデータをステップ数に変換する方法もＩＳＯ／ＩＥＣ１１１７２−３のテーブルＢ．２において定められている。ステップ数は、次に図１１で説明するように、サンプリング周波数、１チャネル当りのビットレート、および、逆量子化されるオーディオ信号の属する周波数帯域（サブバンド）に応じて決められる。
【００２４】
図１１は、ＩＳＯ／ＩＥＣ１１１７２−３のテーブルＢ．２の一例を示した図である。
【００２５】
ＩＳＯ／ＩＥＣ１１１７２−３のテーブルＢ．２には複数のテーブルがあり、サンプリング周波数、１チャンネル当りのビットレートに基づいて、どのテーブルを使用するかが決定される。
【００２６】
図１１を参照して、ｓｂはサブバンドを示す。ｎｂａｌという語の下の１列は、インデックスデータがMPEG1−Audio Layer IIフォーマット中に何ビットで入っているかを示す値である。ｎｂａｌの右には、各インデックスデータ０〜１５に対応するステップ数が記載されている。ここで、このステップ数は、「Number of steps」とＩＳＯ／ＩＥＣ１１１７２−３では記載されている。
【００２７】
サンプリング周波数、１チャネル当りのビットレートによってテーブルが選択され、そのテーブルにより逆量子化されるオーディオ信号の属する周波数帯域（サブバンド）に対応するインデックスデータのビット数がいくらであるかが取得される。そしてインデックスデータがストリーム中から読出され、再びこのテーブルを用いてインデックスデータ０〜１５が、オーディオ信号のサブバンドでどのようなステップ数に相当するかが取得される。取得されたステップ数は、量子化ステップ数に相当する値である。
【００２８】
MPEG1−Audio Layer II方式において取り得るステップ数の種類は、図１１に示されるように、３，５，７，９，１５，３１，６３，１２７，２５５，５１１，１０２３，２０４７，４０９５，８１９１，１６３８３，３２７６７，６５５３５の１７種類である。この１７種類のステップ数にそれぞれ別の符号を割当て、このように得られる符号をビットアロケーションＢａと定義する。
【００２９】
図１２は、ビットアロケーションＢａとステップ数（Number of steps）との対応を示した図である。
【００３０】
図１２では、ステップ数の小さい方から順に０〜１６の整数をビットアロケーションＢａとして割当てている。
【００３１】
量子化符号Ｘは、MPEG1−Audio Layer IIフォーマットのデータに所定のビット数で格納されている数値をもとに生成される。このビット数は、図１１に例示したＩＳＯ／ＩＥＣ１１１７２−３のテーブルＢ．４と図１２とに基づいて定められる。
【００３２】
図１３は、ＩＳＯ／ＩＥＣ１１１７２−３のテーブルＢ．４を示した図である。
【００３３】
図１２、図１３に記載のステップ数（Number of steps）、符号語あたりのサンプル数（Samples per codeword）、符号語あたりのビット数（Bits per codeword）を参照して、ビットアロケーションＢａをもとにして所定のビット数が決められる。なお、Samples per codewordは１つの符号に何オーディオサンプルのデータが符号化されているかを示す値である。また、Bits per codewordは、その符号は何ビットで符号化されているかを示す値である。
【００３４】
ＩＳＯ／ＩＥＣ１１１７２−３では、Samples per codeword、Bits per codewordの組合わせにより、１つのオーディオサンプルが１つの符号で符号化されている場合と、３つのオーディオサンプルが１つの符号で符号化されている場合とがある。しかしいずれの場合も、ＩＳＯ／ＩＥＣ１１１７２−３でで定められた処理によって、各オーディオサンプルに対して、０からステップ数の間の整数値が取得される。MPEG1−Audio Layer IIフォーマットのデータから取得された整数値は、ステップ数を２進数表現したときの桁数の最上位ビットを符号ビットとし、それ以降のビットを小数部分とする固定小数点形式の小数値として保持され、さらにその符号ビットが反転された形式に変換される。
【００３５】
たとえば、ＤＳＰ（デジタルシグナルプロセッサ）などの２４ビットのレジスタ上で、最上位ビットが符号ビットとして保持される場合について述べる。ビットアロケーションＢａ＝５で、データから取得された整数値＝５（２進数表現で１０１）であったとする。図１２から、ビットアロケーションＢａ＝５ならばステップ数が３１であるので、取得された整数値を２進数表現した場合の桁数は５となる。５桁の２進数は最大で３１だからである。この場合、ＤＳＰのレジスタ上では５桁目が最上位ビットとなるように最上位ビット側に値が詰められる。保持される値は２進数表現で、
0010 1000 0000 0000 0000 0000として保持される。
【００３６】
さらに、その符号ビットが反転されるので、保持される値は、２進数表現で、
1010 1000 0000 0000 0000 0000となる。
【００３７】
したがって、この２進数を２４ビットの固定小数点形式で読めば、最終的に保持された値は、−０．６８７５となる。このようにして得られる小数値を量子化符号Ｘと定義する。
【００３８】
次式(11)は、ＩＳＯ／ＩＥＣ１１１７２−３に記載されたMPEG1−Audio Layer II方式の復号化時における逆量子化、および、逆スケーリングの変換式である。
Ｙ＝２(P1[Scf]/M)＊Ｐ２［Ｂａ］＊（Ｘ＋Ｐ３［Ｂａ］）          …(11)
ここで、「＊」は乗算を表す演算符号であり、「／」は除算を表す演算符号である。Ｐ２［Ｂａ］，Ｐ３［Ｂａ］は、ビットアロケーションＢａに対して決まる小数値であり、図１３に示したテーブルの値Ｃ，Ｄとしてそれぞれ定められている。ビットアロケーションＢａと小数値Ｐ２［Ｂａ］，Ｐ３［Ｂａ］との対応付けは、図１２、図１３を参照することで決定される。
【００３９】
MPEG1−Audio Layer IIフォーマットのデータから以上のような処理を行ない、スケールファクタインデックスＳｃｆ，ビットアロケーションＢａ，量子化符号Ｘを取出し、式(11)に従って逆量子化値Ｙに変換することで、逆量子化、および、逆スケーリング処理が行なわれる。
【００４０】
［従来の逆量子化および逆スケーリング処理］
次に、ＩＳＯ／ＩＥＣ１１１７２−３に記載されたMPEG1−Audio Layer II方式で採用されている逆量子化、および、逆スケーリング処理を実現する、従来の逆量子化および逆スケーリング装置について説明する。
【００４１】
図１４は、従来の、逆量子化、および、逆スケーリング装置を説明するための概略ブロック図である。
【００４２】
図１４を参照して、スケールファクタインデックスＳｃｆ，ビットアロケーションＢａ，量子化符号Ｘがこの装置に入力される。これらの入力値は、前述のように、MPEG1−Audio Layer IIフォーマットのデータの中から読出された値に基づいて発生される。テーブル参照部１１０は、スケールファクタインデックスＳｃｆを入力として、変換用テーブルＴｏ１を参照して、スケーリング係数Ｓｖを生成し出力する。
【００４３】
変換用テーブルＴｏ１には、０〜６２の範囲のスケールファクタインデックスＳｃｆに対応する小数値であるスケーリング係数Ｓｖが格納されている。スケーリング係数Ｓｖは、次式(12)で予め演算された結果の値である。
Ｓｖ＝２((3-Scf)/3)                                            …(12)
テーブル参照部１１１は、ビットアロケーションＢａを入力として、変換用テーブルＴｏ２を参照して、変換係数Ｃｏ１，Ｃｏ２を生成して出力する。変換用テーブルＴｏ２には、図１２で示された０〜１６のビットアロケーションＢａに対して、対応する図１３のＣが変換係数Ｃｏ１の値として格納され、図１３の対応するＤが変換係数Ｃｏ２の値として格納されている。
【００４４】
変換部１１２は、変換係数Ｃｏ１，Ｃｏ２と、量子化符号Ｘとを入力として受け、変換値Ｚｏを生成し出力する。変換部１１２における変換は次式(13)に示された加算および乗算処理によって行なわれる。
Ｚｏ＝Ｃｏ１＊（Ｘ＋Ｃｏ２）                                …(13)
変換部１１３は、スケーリング係数Ｓｖと、変換値Ｚｏとを入力として受け、逆量子化値Ｙを生成し出力する。変換部１１３における変換は、次式(14)に示された乗算処理によって行なわれる。
Ｙ＝Ｓｖ＊Ｚｏ                                              …(14)
以上のようにして、従来は、逆量子化、および、逆スケーリングが行なわれていた。
【００４５】
図１５は、従来の逆量子化および逆スケーリング処理をＤＳＰ等のコンピュータを用いて行なう場合のフローチャートである。
【００４６】
図１５を参照して、ステップＳ１０１において逆量子化および逆スケーリング処理が開始される。続いてステップＳ１０２においてテーブルＴｏ１参照処理が行なわれる。ＤＳＰにおいては、MPEG1−Audio Layer IIフォーマットのデータの中から、所定の処理を介してスケールファクタインデックスＳｃｆ，ビットアロケーションＢａおよび量子化符号Ｘが読出されてランダムアクセスメモリ（ＲＡＭ）に格納されているとする。
【００４７】
テーブルＴｏ１参照処理では、ＲＡＭからスケールファクタインデックスＳｃｆを読出し、リードオンリメモリ（ＲＯＭ）に格納された変換用テーブルＴｏ１を参照して、スケーリング係数Ｓｖを生成しＲＡＭに格納する。変換用テーブルＴｏ１は図１４のものと同じである。
【００４８】
ステップＳ１０２が終了すると続いてステップＳ１０３においてテーブルＴｏ２参照処理が行なわれる。ステップＳ１０３では、ＲＡＭからビットアロケーションＢａを読出し、ＲＯＭに格納された変換用テーブルＴｏ２を参照して、変換係数Ｃｏ１，Ｃｏ２を生成し、ＲＡＭに格納する。変換用テーブルＴｏ２は、図１４のものと同じである。
【００４９】
続いてステップＳ１０４において第１の変換処理が行なわれる。ステップＳ１０４では、ＲＡＭから変換係数Ｃｏ１，Ｃｏ２と量子化符号Ｘとを読出して、次の式(15)に示された加算および乗算処理を行ない、変換値Ｚｏを生成しＲＡＭに格納する。
Ｚｏ＝Ｃｏ１＊（Ｘ＋Ｃｏ２）                                …(15)
ステップＳ１０４が終了すると、続いてステップＳ１０５において第２の変換処理が行なわれる。ステップＳ１０５では、ＲＡＭからスケーリング係数Ｓｖと、変換値Ｚｏとを読出し、次の式(16)に示された乗算処理を行ない、逆量子化値Ｙを生成しＲＡＭに格納する。
Ｙ＝Ｓｖ＊Ｚｏ                                              …(16)
最後に、ステップＳ１０６において逆量子化および逆スケーリング処理が終了する。
【００５０】
以上のようにしてＤＳＰを用いた場合においても、逆量子化および逆スケーリング処理が行なわれる。
【００５１】
なお、上記の従来技術の説明は、ＩＳＯ／ＩＥＣ１１１７２−３に記載されたMPEG1−Audio Layer II方式に限らず、逆量子化および逆スケーリング処理のうち、特に式(11)に従って変換を行なうものに、一般性を失うことなく適用できるものである。
Ｙ＝２(P1[Scf]/M)＊Ｐ２［Ｂａ］＊（Ｘ＋Ｐ３［Ｂａ］）          …(11)再掲
なお、逆量子化処理の演算の負荷を小さくする関連技術が、特開平８−２９２７９５（特許文献１）に開示されている。
【特許文献１】特開平８−２９２７９５号公報
【発明の開示】
【発明が解決しようとする課題】
【００５２】
式(11)に従う逆量子化、および、逆スケーリングを行なう場合、図１４で説明した従来の方法では、１オーディオサンプルに対して２回の乗算を行なう必要がある。
【００５３】
一般に、乗算をハードウェアとして実現する場合は、規模の大きな回路が必要であり、ソフトウェアとして実現する場合は、多くの処理ステップ数を必要とする。したがって、ＤＳＰなどでこの逆量子化、および、逆スケーリングを実現する場合には、コスト高になるという問題が生ずる。
【００５４】
また、ＤＳＰなどを用いてデジタル信号処理を実現する場合、演算の桁数に制限があるので、乗算を繰返すことによって誤差が累積していく。さらに、固定小数点形式で演算する場合にも、１回目の乗算で小さな値を乗じて、２回目の乗算で大きな値を乗ずると、１回目の乗算で有効桁数が少なくなり、２回目の乗算でその誤差が増幅される現象が起こる。このように、乗算回数が増えるほど、大きな演算誤差が発生しやすくなるという問題が生ずる。また、乗算の順序を考慮しないと誤差が増幅されてしまうという問題も生ずる。
【００５５】
本発明は、このような問題を解決するために提案されたものであり、少ない乗算回数で、精度よく逆量子化および逆スケーリングを実現する逆量子化装置およびオーディオ復号化装置を提供することを目的とする。
【課題を解決するための手段】
【００５６】
この発明は、要約すると、量子化符号Ｘ、スケールファクタインデックスＳｃｆおよびビットアロケーションＢａを受けて逆量子化および逆スケーリング処理を行い逆量子化値Ｙを出力する逆量子化装置であって、第１の記憶手段と、第１の参照手段と、第２の記憶手段と、第２の参照手段と、変換手段と、シフト処理手段とを備える。
【００５７】
第１の記憶手段は、下式(1)，(2)に基づき予め算出された各スケールファクタインデックスＳｃｆに対応するシフト量Ｓ１および参照値Ｒを格納する。第１の参照手段は、第１の記憶手段を参照して、入力されたスケールファクタインデックスＳｃｆに対応するシフト量Ｓ１および参照値Ｒを得る。第２の記憶手段は、下式(3)，(4)，(5)に基づき予め算出された各参照値Ｒおよび各ビットアロケーションＢａに対応するシフト量Ｓ２，変換係数Ｃ１およびＣ２を格納する。第２の参照手段は、第２の記憶手段を参照して、第１の参照手段から出力された参照値Ｒと入力されたビットアロケーションＢａに対応するシフト量Ｓ２，変換係数Ｃ１およびＣ２を得る。変換手段は、入力された量子化符号Ｘと第２の参照手段から出力された変換係数Ｃ１およびＣ２とを用いて下式(6)に従う変換を行い変換値Ｚを出力する。シフト処理手段は、変換手段から出力された変換値Ｚに対し第１、第２の参照手段によってぞれぞれ得られたシフト量Ｓ１，Ｓ２を用い下式(7)に従うシフト処理を行い逆量子化値Ｙを出力する。シフト処理手段とを備える。
Ｓ１＝ｉｎｔ（Ｐ１［Ｓｃｆ］／Ｍ）                          …(1)
Ｒ＝ｍｏｄ（Ｐ１［Ｓｃｆ］，Ｍ）                            …(2)
Ｓ２＝ｉｎｔ（（Ｒ／Ｍ）＋ｌｏｇ2（Ｐ２［Ｂａ］）            …(3)
Ｃ１＝（２(R/M)＊Ｐ２［Ｂａ］）＊（２(-S2)）                    …(4)
Ｃ２＝Ｐ３［Ｂａ］                                          …(5)
Ｚ＝Ｃ１＊（Ｘ＋Ｃ２）                                      …(6)
Ｙ＝Ｚ＊２(S1+S2)                                              …(7)
ただし、Ｐ１［Ｓｃｆ］は、各スケールファクタインデックスＳｃｆの値に対し予め定められた整数を示し、Ｐ２［Ｂａ］，Ｐ３［Ｂａ］は、各ビットアロケーションＢａの値に対し予め定められた小数を示し、Ｍは、予め定められた正の整数を示す。
【００５８】
好ましくは、シフト処理手段は、シフト処理を、シフト量Ｓ１に対応する第１のシフト演算を行ない、さらに、シフト量Ｓ２に対応する第２のシフト演算を行なうことにより実行する。
【００５９】
好ましくは、シフト処理手段は、シフト処理を、シフト量Ｓ１とシフト量Ｓ２の合計値に対応するシフト演算を一括して行なうことにより実行する。
【００６０】
好ましくは、変換手段は、変換係数Ｃ１，Ｃ２および量子化符号Ｘに基づき次式
Ｚ＝Ｃ１＊Ｘ＋Ｃ２
に従い変換値Ｚを生成する。
【００６１】
好ましくは、Ｐ１［Ｓｃｆ］は、３−Ｓｃｆであり、Ｍは、３である。
【００６２】
または、復号化時に逆量子化処理を含むオーディオ符号化方式に基づいて復号化処理を行なうオーディオ復号化装置であって、上記いずれかの逆量子化装置を備える。
【００６３】
または、復号化時に逆量子化処理を含む画像符号化方式に基づいて復号化処理を行なう画像復号化装置であって、上記いずれかの逆量子化装置を備える。
【００６４】
この発明の他の局面に従うと、量子化符号Ｘ、スケールファクタインデックスＳｃｆおよびビットアロケーションＢａを受けて逆量子化および逆スケーリング処理を行い逆量子化値Ｙを出力する逆量子化方法であって、下式(1)，(2)に基づき予め算出された各スケールファクタインデックスＳｃｆに対応するシフト量Ｓ１および参照値Ｒを格納する第１の記憶手段を参照して、入力されたスケールファクタインデックスＳｃｆに対応するシフト量Ｓ１および参照値Ｒを得るステップと、下式(3)，(4)，(5)に基づき予め算出された各参照値Ｒおよび各ビットアロケーションＢａに対応するシフト量Ｓ２，変換係数Ｃ１およびＣ２を格納する第２の記憶手段を参照して、得られた参照値Ｒと入力されたビットアロケーションＢａに対応するシフト量Ｓ２，変換係数Ｃ１およびＣ２を得るステップと、入力された量子化符号Ｘと得られた変換係数Ｃ１およびＣ２とを用いて下式(6)に従う変換を行い変換値Ｚを出力するステップと、出力された変換値Ｚに対し得られたシフト量Ｓ１，Ｓ２を用い下式(7)に従うシフト処理を行い逆量子化値Ｙを出力するステップとを備える。
Ｓ１＝ｉｎｔ（Ｐ１［Ｓｃｆ］／Ｍ）                          …(1)
Ｒ＝ｍｏｄ（Ｐ１［Ｓｃｆ］，Ｍ）                            …(2)
Ｓ２＝ｉｎｔ（（Ｒ／Ｍ）＋ｌｏｇ2（Ｐ２［Ｂａ］）            …(3)
Ｃ１＝（２(R/M)＊Ｐ２［Ｂａ］）＊（２(-S2)）                    …(4)
Ｃ２＝Ｐ３［Ｂａ］                                          …(5)
Ｚ＝Ｃ１＊（Ｘ＋Ｃ２）                                      …(6)
Ｙ＝Ｚ＊２(S1+S2)                                              …(7)
ただし、Ｐ１［Ｓｃｆ］は、各スケールファクタインデックスＳｃｆの値に対し予め定められた整数を示し、Ｐ２［Ｂａ］，Ｐ３［Ｂａ］は、各ビットアロケーションＢａの値に対し予め定められた小数を示し、Ｍは、予め定められた正の整数を示す。
【００６５】
または、逆量子化プログラムであって、上記逆量子化方法に基づく処理を、コンピュータに実行させる。
【発明の効果】
【００６６】
本発明によれば、逆量子化および逆スケーリング装置において、乗算を１回しか行なっていない。したがって、ハードウェアとして実現する場合は、回路規模を小さくすることができる。またソフトウェアとして実現する場合は、処理ステップ数を減らすことができる。これにより低コストで逆量子化および逆スケーリング処理を行なうことが可能となる。
【００６７】
加えて、乗算を１回しか行なわないことにより、演算誤差が累積することや、以前の乗算による誤差が後続の乗算により増幅されることもない。したがってより精度のよい逆量子化および逆スケーリング処理が可能となる。
【００６８】
また、本発明によれば、逆量子化および逆スケーリング処理を含むオーディオ符号化方式に対し、少ない乗算回数で精度よく復号化を行なうオーディオ復号化装置を実現することができる。
【発明を実施するための最良の形態】
【００６９】
以下、図面を参照して本発明の実施の形態を詳しく説明する。なお、図中同一符号は同一または相当部分を示す。
【００７０】
［実施の形態１］
図１は、実施の形態１のオーディオ復号化装置の構成例を示したブロック図である。
【００７１】
図１を参照して、オーディオ復号化装置１は、フォーマット解析部２と、逆量子化・逆スケーリング部３と、フィルタ部４とを含む。
【００７２】
フォーマット解析部２は、１フレーム分のＭＰＥＧストリーム（MPEG1−Audio Layer II方式のデータストリーム）を入力として受取り、規格で定められたフォーマットに従って、フレーム内に格納された各種の情報を分離して、所定の形式で取出す。この取出された情報には、スケールファックインデックスＳｃｆ，ビットアロケーションＢａおよび量子化符号Ｘが含まれる。
【００７３】
逆量子化・逆スケーリング部３は、分離されたスケールファクタインデックスＳｃｆ、ビットアロケーションＢａおよび量子化符号Ｘをフォーマット解析部２から受けて、逆量子化と逆スケーリング処理とを行ない、逆量子化値Ｙを生成する。
【００７４】
MPEG1−Audio Layer IIフォーマット内では、オーディオデータはある種の周波数変換がされた状態で格納されており、ここで得られた逆量子化値Ｙも周波数領域の値である。
【００７５】
フィルタ部４は、逆量子化値Ｙにフィルタ処理を行なうことで、時間領域への変換を行ない、時系列データであるオーディオデータＡＤＡＴＡを生成して出力する。
【００７６】
以上の処理によって、１フレーム分のMPEG1−Audio Layer II方式のデータが復号化される。これをフレームごとに繰返すことにより、MPEG1−Audio Layer II方式の復号化処理が行なわれる。
【００７７】
図２は、図１における逆量子化・逆スケーリング部３の構成を示すブロック図である。
【００７８】
図２を参照して、スケールファクタインデックスＳｃｆ、ビットアロケーションＢａおよび量子化符号Ｘは、逆量子化・逆スケーリング部３の入力であり、これらの値はMPEG1−Audio Layer IIフォーマットのデータの中から図１のフォーマット解析部２によって取出された値である。
【００７９】
逆量子化・逆スケーリング部３は、テーブル参照部１０と、変換用テーブルＴ１と、テーブル参照部１１と、変換用テーブルＴ２と、変換部１２と、シフト処理部１３とを含む。
【００８０】
テーブル参照部１０は、スケールファクタインデックスＳｃｆを入力として受け、変換用テーブルＴ１を参照して、シフト量Ｓ１と参照値Ｒとを生成し出力する。変換用テーブルＴ１には、０〜６２の範囲の整数値であるスケールファクタインデックスＳｃｆにそれぞれ対応するシフト量Ｓ１および参照値Ｒが格納されている。シフト量Ｓ１は次の式(17)で予め求められた値である。また参照値Ｒは次の式(18)で予め求められた値である。
Ｓ１＝ｉｎｔ（（３−Ｓｃｆ）／３）                          …(17)
Ｒ＝ｍｏｄ（３−Ｓｃｆ，３）                                …(18)
ここで、ｉｎｔ（Ａ）は、Ａを超えない最大の整数を生成する演算である。また、ｍｏｄ（Ａ，Ｂ）は、整数Ａ，整数Ｂに対し、Ａ−ｉｎｔ（Ａ／Ｂ）＊Ｂを算出する演算である。このとき、参照値Ｒは、０〜２の範囲の整数値となる。
【００８１】
テーブル参照部１１は、ビットアロケーションＢａと参照値Ｒとを入力として受ける。そして、テーブル参照部１１は、変換用テーブルＴ２を参照して、シフト量Ｓ２と変換係数Ｃ１，Ｃ２とを生成して出力する。変換用テーブルＴ２にはシフト量Ｓ２と変換係数Ｃ１，Ｃ２とが格納されている。シフト量Ｓ１は、次の式(19)で予め算出された値の整数値である。また、変換係数Ｃ１は次の式(20)で予め算出された小数値である。変換係数Ｃ２は次の式(21)で予め定められた小数値である。
Ｓ２＝ｉｎｔ（（Ｒ／３）＋ｌｏｇ2（Ｐ２［Ｂａ］）            …(19)
Ｃ１＝（２(R/3)＊Ｐ２［Ｂａ］）＊（２(-S2)）                    …(20)
Ｃ２＝Ｐ３［Ｂａ］                                          …(21)
ここで、Ｐ２［Ｂａ］は、図１３のＣと図１２とを参照してビットアロケーションＢａから得られる値である。また、Ｐ３［Ｂａ］は、図１３のＤと図１２とを参照してビットアロケーションＢａから得られる値である。
【００８２】
変換部１２は、変換係数Ｃ１，Ｃ２と量子化符号Ｘとを入力として受けて、変換値Ｚを生成して出力する。変換値Ｚは、次の式(6)で示された加算および乗算処理によって変換部１２において求められる。
Ｚ＝Ｃ１＊（Ｘ＋Ｃ２）                                    …(6)
シフト処理部１３は、シフト量Ｓ１，Ｓ２と、変換値Ｚとを入力として受けて逆量子化値Ｙを生成し出力する。シフト処理部１３は、次の式(22)、式(23)に示された演算に基づいて逆量子化値Ｙを算出する。Ｙは結局、式(7)で示される値となる。
Ｚ２＝Ｚ＊２(S1)                                            …(22)
Ｙ＝Ｚ２＊２(S2)                                            …(23)
Ｙ＝Ｚ＊２(S1+S2)                                            …(7)
このとき、２の整数乗を乗算することは、ビットシフト処理として容易に実現することができる。
【００８３】
なお、以下の式変形により、従来手法の式(11)に対してＰ１［Ｓｃｆ］＝３−Ｓｃｆ、Ｍ＝３を代入した次式(24)に対して、式(23)で得られた逆量子化値Ｙが本質的に等価であることが示される。
Ｙ＝２((3-Scf)/3)＊Ｐ２［Ｂａ］＊（Ｘ＋Ｐ３［Ｂａ］）          …(24)
Ｙ＝Ｚ２＊２(S2)                                            …(23)再掲
式(23)に式(22)を用いてＺ２を展開すると、
Ｙ＝Ｚ＊２(S1)＊２(S2)                                        …(25)
さらに、式(6)を用いてＺを展開すると、
Ｙ＝Ｃ１＊（Ｘ＋Ｃ２）＊２(S1)＊２(S2)                        …(26)
さらに、式(20)(21)を用いてＣ１，Ｃ２を展開すると
Ｙ＝（２(R/3)＊Ｐ２［Ｂａ］）＊２(-S2)＊（Ｘ＋Ｐ３［Ｂａ］）＊２(S1)＊２(S2)    …(27)
式を整理して、
Ｙ＝（２(R/3)＊Ｐ２［Ｂａ］）＊（Ｘ＋Ｐ３［Ｂａ］）＊２(S1)    …(28)
さらに、式(17)(18)を用いてＲ，Ｓ１を展開して、
Ｙ＝（２(mod(3-Scf，3)/3)＊Ｐ２［Ｂａ］）＊（Ｘ＋Ｐ３［Ｂａ］）＊２(int((3-Scf)/3))  …(29)
式を整理して、
Ｙ＝（２(mod(3-Scf，3)/3+int((3-Scf)/3))＊Ｐ２［Ｂａ］）＊（Ｘ＋Ｐ３［Ｂａ］）      …(30)
ｍｏｄ、ｉｎｔの定義より、
Ｙ＝２((3-Scf)/3)＊Ｐ２［Ｂａ］＊（Ｘ＋Ｐ３［Ｂａ］）          …(31)
以上より式(31)は式(24)と同じになる。したがって、式(23)で得られた逆量子化値Ｙが従来手法の式(11)に対して本質的に等価であることが示された。
【００８４】
本発明によれば、逆量子化および逆スケーリング装置において、乗算を１回しか行なっていない。したがって、ハードウェアとして実現する場合は、回路規模を小さくすることができる。またソフトウェアとして実現する場合は、処理ステップ数を減らすことができる。これにより低コストで逆量子化および逆スケーリング処理を行なうことが可能となる。
【００８５】
加えて、乗算を１回しか行なわないことにより、演算誤差が累積することや、以前の乗算による誤差が後続の乗算により増幅されることもない。したがってより精度のよい逆量子化および逆スケーリング処理が可能となる。さらに、乗算を１回しか行なわない場合でも、スケールファクタインデックスから２の整数乗の部分を第１のシフト量Ｓ１として取出すことだけでなく、ビットアロケーションＢａおよび参照値Ｒから２の整数乗の部分を第２のシフト量Ｓ２として取出し、できる限り量子化符号Ｘに対する乗算処理をビットシフト処理に置き換えて、１回の乗算で誤差の発生を小さく抑えている。
【００８６】
［変形例１］
シフト処理部１３は、シフト量Ｓ１，Ｓ２と、変換値Ｚとを入力としてまず次の式(32)に従って全体のシフト量を求め、次に式(33)に従ってシフト量Ｓ１，Ｓ２の両者をまとめてビットシフト処理してもよい。
Ｓ３＝Ｓ１＋Ｓ２                                            …(32)
Ｙ＝Ｚ＊２(S3)                                                …(33)
これにより、１回のビットシフト処理で、逆量子化および逆スケーリング処理を実現することができ、処理がより簡素化される場合もある。
【００８７】
［変形例２］
変換用テーブルＴ２に式(34)に基づき予め算出した係数Ｃ３を格納しておき、変換部１２はテーブル参照部１１から係数Ｃ３を受けて、式(35)に基づいて加算および乗算処理を行ない変換値Ｚを生成して出力してもよい。
Ｃ２＝Ｃ１＊Ｃ２                                            …(34)
Ｚ＝Ｃ１＊Ｘ＋Ｃ２                                          …(35)
このような変形例でも同様に逆量子化および逆スケーリング処理を実現することができる。
【００８８】
また、本実施の形態では、Ｐ１［Ｓｃｆ］＝３−Ｓｃｆ、Ｍ＝３となる場合を例に挙げて説明したが、本発明の内容は、この場合に限定されるものではない。
【００８９】
一般に、Ｐ１［Ｓｃｆ］がスケールファクタインデックスＳｃｆに対して整数値として定められており、Ｍが整数値であるならば、変換用テーブルＴ１、変換用テーブルＴ２に格納される値として、式(17)〜(21)で定められる値の代わりに、式(1)〜(5)の値を用いて定められる値を格納しておき、同様の処理を行なうことで逆量子化および逆スケーリング処理を実現することができる。
Ｓ１＝ｉｎｔ（Ｐ１［Ｓｃｆ］／Ｍ）                          …(1)
Ｒ＝ｍｏｄ（Ｐ１［Ｓｃｆ］，Ｍ）                            …(2)
Ｓ２＝ｉｎｔ（（Ｒ／Ｍ）＋ｌｏｇ2（Ｐ２［Ｂａ］）            …(3)
Ｃ１＝（２(R/M)＊Ｐ２［Ｂａ］）＊（２(-S2)）                    …(4)
Ｃ２＝Ｐ３［Ｂａ］                                          …(5)
また、本実施の形態では、Ｐ２［Ｂａ］、Ｐ３［Ｂａ］の値として、ＩＳＯ／ＩＥＣ１１１７２−３で定められた値を用いたが、本発明の内容は、この場合に限定されるものではなく、予め定められた係数であれば、同様の処理を行なうことで、逆量子化および逆スケーリング処理を実現することができる。
【００９０】
また、従来技術、および、実施の形態では、量子化符号Ｘとして、MPEG1−Audio Layer IIフォーマットのデータの中から読出された値を最上位ビット側に詰めた場合を説明したが、変換用テーブルＴ２に格納された変換係数Ｃ２の桁位置を最下位ビット側に詰めた量子化符号Ｘの桁位置と予め合わせておき、変換用テーブルＴ２に格納されたシフト量Ｓ２にその桁数分のオフセットを予め加えておくことで、同様の処理で逆量子化、および、逆スケーリング処理を実現することができる。
【００９１】
また、従来技術、および実施の形態では、量子化符号ＸとしてMPEG1−Audio Layer IIフォーマットのデータの中から読出された値を最上位ビットを反転して用いる場合を説明したが、最上位ビットの反転が固定小数点値の２の補数表現において、−１．０を加算することに相当することを考えれば、変換用テーブルＴ２に格納された変換係数Ｃ２に予め−１．０分のオフセットを加えておくことで、同様の処理で逆量子化、および、逆スケーリング処理を実現することができる。
【００９２】
以上のように、本発明の内容は、値を保持する桁位置や符号ビットの反転処理の有無に関して実施の形態に示したような場合に限定されるものではなく、値が上位ビット詰めである場合、下位ビット詰めである場合、他の適当な位置に合わせられる場合、符号ビットの反転処理がある場合、ない場合にも同様に適用できるものである。
【００９３】
［実施の形態２］
図３は、実施の形態２のオーディオ復号化装置２１の構成例を説明するブロック図である。
【００９４】
図４は、図３に示したオーディオ復号化装置において行なわれる復号化の処理を説明するためのフローチャートである。
【００９５】
図３、図４を参照して、演算部２３は、図４に示した符号処理が記述されたプログラムコードをＲＯＭ２４から読出して実行するブロックである。演算部２３は、復号化処理に必要な各種の演算を行なうとともに、ＲＯＭ２４、ＲＡＭ２５、入力Ｉ／Ｆ部２２および出力Ｉ／Ｆ部へのアクセスを行なう。
【００９６】
ＲＯＭ２４は、読出可能な記録手段であり、図４の復号処理を記述したプログラムコードやその復号処理に必要なテーブルデータを格納するブロックである。
【００９７】
ＲＡＭ２５は、読出および書込が可能な記録手段であり、復号処理に用いられるＭＰＥＧデータや、一時的に生成される演算結果を保存するブロックである。
【００９８】
入力Ｉ／Ｆ部は、ＭＰＥＧストリームＭＳを取得するためのブロックで、メモリ、ＣＤ(compact disc)、ＨＤＤ(hard disk drive)などＭＰＥＧストリームを格納した蓄積媒体や、ＳＰＤＩＦ(SONY / Philips Digital Interface Format)、インターネットなどＭＰＥＧストリームを伝送する通信媒体に接続するためのインターフェイスと、入力されたＭＰＥＧストリームを一時的に格納するためのバッファなどからなる。
【００９９】
出力Ｉ／Ｆ部２６は、オーディオデータＡＤＡＴＡを出力するためのブロックで、復号されたオーディオデータを一時的に格納するためのバッファと、アンプやスピーカなどの再生装置やＭＤ、ＣＤなどの記録装置に接続するためのインターフェイスなどからなる。
【０１００】
なお、図３のような構成は、ＭＰＥＧ規格などに代表される画像符号化されたデータの復号処理においても用いられる構成である。したがって、オーディオ復号化装置に限らず、逆量子化・逆スケーリング処理を行なうものであれば画像復号化装置にも本発明は適用できる。
【０１０１】
次に、オーディオ復号化装置２１で行なわれる処理を説明する。
【０１０２】
まず図４のステップＳ１において復号化処理が開始される。次にステップＳ２においてＭＰＥＧデータの取得が行なわれる。このステップＳ２では、演算部２３が入力Ｉ／Ｆ部２２を介して１フレーム分のＭＰＥＧデータを取得し、ＲＡＭ２５に格納する。
【０１０３】
続いてステップＳ３においてフォーマット解析が行なわれる。フォーマット解析は、ＲＡＭ２５に格納されたＭＰＥＧデータを読出して、MPEG1−Audio Layer II方式の規格として定められたフォーマットに従ってフレーム内に格納された各種の情報を分離して、所定の形式で取出す。取出された情報はＲＡＭ２５に保存される。
【０１０４】
この取出された情報の例としては、続くステップＳ４の逆量子化・逆スケーリング処理における入力となるスケーフファクタインデックスＳｃｆ、ビットアロケーションＢａおよび量子化符号Ｘ等が挙げられる。
【０１０５】
ステップＳ４の逆量子化・逆スケーリングでは、スケールファクタインデックスＳｃｆ、ビットアロケーションＢａおよび量子化符号ＸはＲＡＭ２４から読出され、これらを用いて逆量子化と逆スケーリング処理が行なわれ、逆量子化値Ｙが生成される。逆量子化値ＹはＲＡＭ２５に格納される。逆量子化・逆スケーリング処理に必要なテーブルデータはＲＡＭ２４から適宜読出されて用いられる。
【０１０６】
MPEG1−Audio Layer IIフォーマット内では、オーディオデータは、ある種の周波数変換がされた状態で格納されており、ステップＳ４の結果得られた逆量子化値Ｙも周波数領域の値である。そこで、続くステップＳ５のフィルタ処理において、ＲＡＭ２５から逆量子化値Ｙが読出され、フィルタ処理が行なわれ、時間領域への変換が行なわれる。
【０１０７】
その結果、時系列データであるオーディオデータが生成され、ＲＡＭ２５に格納される。ステップＳ６においてオーディオデータの出力が行なわれる。すなわち生成されたオーディオデータをＲＡＭ２５から読出し、出力Ｉ／Ｆ部２６を介してオーディオデータが出力される。
【０１０８】
以上の処理によって、１フレーム分のMPEG1−Audio Layer II方式のデータが復号化される。この処理をフレームごとに繰返すことにより、MPEG1−Audio Layer II方式の復号化処理が行なわれる。
【０１０９】
そしてステップＳ７において復号化処理が終了する。
【０１１０】
図５は、図４におけるステップＳ４の逆量子化・逆スケーリング処理をさらに詳細に示したフローチャートである。
【０１１１】
図５を参照して、ステップＳ１１において逆量子化・逆スケーリング処理が開始される。スケールファクタインデックスＳｃｆ、ビットアロケーションＢａおよび量子化符号Ｘはこの処理の入力であり、MPEG1−Audio Layer IIフォーマットのデータの中から読出されてＲＡＭ２５に格納されている。
【０１１２】
まず、ステップＳ１２において、テーブルＴ１を参照する処理が行なわれる。ステップＳ１２では、ＲＡＭ２５からスケールファクタインデックスＳｃｆが読出され、ＲＯＭ２４に格納されている変換用テーブルＴ１が参照され対応するシフト量Ｓ１と参照値ＲとがＲＯＭから読出される。読出されたシフト量Ｓ１と参照値ＲはＲＡＭ２５に格納される。なお、変換用テーブルＴ１は、図２で示した変換用テーブルＴ１と同様なものであるので説明は繰返さない。
【０１１３】
続いて、ステップＳ１３においてテーブルＴ２を参照する処理が行なわれる。ステップＳ１３では、ＲＡＭ２５からビットアロケーションＢａと参照値Ｒとが読出され、ＲＯＭに格納されている変換用テーブルＴ２を参照してシフト量Ｓ２と変換係数Ｃ１，Ｃ２とが生成される。このシフト量Ｓ２および変換係数Ｃ１，Ｃ２はＲＡＭ２５に格納される。なお、変換用テーブルＴ２については図２で説明した変換用テーブルＴ２と同様であるので説明は繰返さない。
【０１１４】
続いて、ステップＳ１４において変換処理が行なわれる。変換処理は、ＲＡＭ２５から変換係数Ｃ１，Ｃ２と量子化符号Ｘとが読出され、次の式(6)に示された加算および乗算処理が行なわれ、変換値Ｚが生成される。生成された変換値ＺはＲＡＭ２５に格納される。
Ｚ＝Ｃ１＊（Ｘ＋Ｃ２）                                    …(6)再掲
続いてステップＳ１５においてシフト処理が行なわれる。シフト処理は、シフト量Ｓ１，Ｓ２と変換値ＺとがＲＡＭ２５から読出され、次の式(22)にさらに式(23)に示された演算が行なわれ、逆量子化値Ｙが生成される。生成された逆量子化値ＹはＲＡＭに格納される。
Ｚ２＝Ｚ＊２(S1)                                            …(22)再掲
Ｙ＝Ｚ２＊２(S2)                                            …(23)再掲
以上のようにして、逆量子化および逆スケーリング処理が行なわれステップＳ１６においてこの処理が終了する。
【０１１５】
実施の形態２で示すように、コンピュータを用いてソフトウェアで逆量子化および逆スケーリング処理を行なう場合でも本発明は適用が可能である。
【０１１６】
［演算精度の改善の検討］
以下に、具体的な数値を例に挙げて、本発明による逆量子化および逆スケーリング処理が、従来の手法と比べて演算精度が改善される場合について説明する。
【０１１７】
まず、２４ビットの固定小数点演算用のアーキテクチャを装備したＤＳＰを用いて演算を行なうことを想定する。
【０１１８】
このＤＳＰの仕様について説明する。ＲＡＭ、ＲＯＭへのアクセス単位は２４ビット長であり、ＲＯＭに格納されたテーブルデータやＲＡＭに格納される演算結果などの値は２４ビットデータとして扱われる。
【０１１９】
また、ＤＳＰ内のレジスタのビット長は２４ビットであり、演算結果を格納するアキュムレータは５６ビットである。加算と乗算では、２つのレジスタ内のデータを入力とし、演算結果をアキュムレータに出力する。次の演算を行なうために、その演算結果をＲＡＭやレジスタに格納する場合は、アキュムレータの５６ビット中の任意の箇所の２４ビットを取出して格納する。つまり、ＤＳＰは、２４ビットの値を入力とし、２４ビットの値を出力とするような加算および乗算が可能である。また、加算、乗算いずれの場合も、２４ビット中の最上位ビットは符号ビットとして扱われるものとする。
【０１２０】
ところで、このようなＤＳＰを用いて演算を行なう場合、次のような性質がある。
【０１２１】
第１に、値を固定小数点の２４ビットデータとして扱うので、設定する小数点の位置により表現できる値の範囲が異なる。たとえば、最上位ビットが符号ビット、続く２ビットが整数部、残り２１ビットが小数部と設定すると、値の範囲は−４〜＋４となり、値がこれを超える場合桁あふれが発生する。
【０１２２】
第２に、２の‐２１乗未満の値には、対応するビットがないので、四捨五入などにより近似され、丸め誤差が生ずる。小数点の位置を上位ビット側に設定するほど丸め誤差は小さくなるが、桁あふれを起こしやすくなる。逆に、小数点の位置を下位ビット側に設定するほど桁あふれは防げるが丸め誤差は大きくなる。
【０１２３】
このような性質があるため、精度よく演算を行なうためには桁あふれの起こらない範囲で、できる限り丸め誤差が小さくなるように小数点の位置を設定する必要がある。
【０１２４】
以上のようなＤＳＰを想定して、従来手法で逆量子化および逆スケーリング処理の演算を行なうと次のようになる。従来の手法では、次式に従って処理を行なう。
【０１２５】
Ｙ＝Ｓｖ＊Ｐ２［Ｂａ］＊（Ｘ＋Ｐ３［Ｂａ］）              …(36)
この計算過程で生ずる各値の範囲と最適な小数点の設定によって誤差に大きな影響がある。
【０１２６】
図６は、従来の手法による演算の計算過程で生ずる値の範囲と小数点の位置を示した図である。
【０１２７】
図６を参照して、スケーリング係数Ｓｖの値は、スケールファクタインデックスＳｃｆが０〜６２の範囲でＳｖ＝２((3-Scf)/3)を計算することにより求めた。また、Ｐ２［Ｂａ］、Ｐ３［Ｂａ］の範囲は、図１３により求めた。
【０１２８】
図７は、図６の最大値、最小値を算出するために計算した計算結果を示す図である。
【０１２９】
図７における、Ｘ，（Ｘ＋Ｐ３［Ｂａ］），Ｐ２［Ｂａ］＊（Ｘ＋Ｐ３［Ｂａ］）の各値については、背景技術の説明で記載したＸの作成方法と図１３とに基づいて各ステップ数に対する最大値、最小値を実際に計算して求めたものである。
【０１３０】
図８は、誤差の発生を考慮しない理論値と、従来手法で行なった場合の計算値とを比較した図である。
【０１３１】
図８では、ステップ数＝９、Ｘ＝０．０、Ｓｃｆ＝１（Ｓｖ＝1.58740105196820に対応）の場合の計算値の例が示されている。従来手法では、逆量子化値Ｙは、理論値に対して約0.000000256（＝1.4110231572988900−1.4110229015350300）の演算誤差が発生する。なお、Ｓｖの理論値との差が大きいのは、図６においてＳｖの小数部ビットが２１と他より小さくなっているのがその原因の１つである。
【０１３２】
これと比較するため、本発明において用いられる演算による誤差の検討を行なう。本発明では次式に従って処理を行なう。
Ｙ＝（Ｃ１＊（Ｘ＋Ｐ３［Ｂａ］））＞＞（Ｓ１＋Ｓ２）        …(37)
但し、＞＞はビットシフト演算子を示す。また、上式において各変数は、
Ｃ１＝（２(mod(3-Scf,3)/3)＊Ｐ２［Ｂａ］）＊（２(-S2)）            …(38)
Ｓ２＝ｉｎｔ（（ｍｏｄ（３−Ｓｃｆ，３）／３）＋ｌｏｇ2（Ｐ２［Ｂａ］）…(39)
Ｓ１＝ｉｎｔ（（３−Ｓｃｆ）／３）                          …(40)
である。
【０１３３】
図９は、本発明の演算過程で生じる各値の範囲と最適な小数点位置の設定をまとめた図である。
【０１３４】
図９において、Ｘ、Ｐ３［Ｂａ］、（Ｘ＋Ｐ３［Ｂａ］）、Ｙが、図９に示した範囲となる理由は図６に示した従来の演算の場合と同様であるので説明は繰返さない。また、Ｃ１の範囲についての理由は、Ｓ２が（２(mod(3-Scf,3)/3)＊Ｐ２［Ｂａ］）を２未満にするためのシフト量を示しており、Ｃ１がＳ２だけシフトされた値として定義されているからである。
【０１３５】
図９において（Ｃ１＊（Ｘ＋Ｐ３［Ｂａ］））の範囲について記述されていないのは、Ｙを求めるときの（Ｓ１＋Ｓ２）のシフト処理が、アキュムレータから２４ビットデータを取出す位置の調整で実現できるためである。つまり、（Ｃ１＊（Ｘ＋Ｐ３［Ｂａ］））の値をアキュムレータに保持したままＹの算出ができるので、小数点位置の設定をする必要がないからである。
【０１３６】
図１０は、本発明の演算手法で算出した計算値と理論値とを比較した図である。
【０１３７】
図１０では、ステップ数＝９、Ｘ＝０．０、Ｓｃｆ＝１として、図８に対応する計算を行なった結果を示している。
【０１３８】
図１０では、逆量子化値Ｙは、理論値に対して約0.0000000017（＝1.4110231572988900−1.4110231399536100）の演算誤差が発生している。この演算誤差は、図８で示した従来の手法に比べ演算誤差の大きさが１０分の１以下に抑えられている。したがって本発明では、逆量子化値Ｙを算出する際の演算誤差が低減できる。
【０１３９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１４０】
【図１】実施の形態１のオーディオ復号化装置の構成例を示したブロック図である。
【図２】図１における逆量子化・逆スケーリング部３の構成を示すブロック図である。
【図３】実施の形態２のオーディオ復号化装置２１の構成例を説明するブロック図である。
【図４】図３に示したオーディオ復号化装置において行なわれる復号化の処理を説明するためのフローチャートである。
【図５】図４におけるステップＳ４の逆量子化・逆スケーリング処理をさらに詳細に示したフローチャートである。
【図６】従来の手法による演算の計算過程で生ずる値の範囲と小数点の位置を示した図である。
【図７】図６の最大値、最小値を算出するために計算した計算結果を示す図である。
【図８】誤差の発生を考慮しない理論値と、従来手法で行なった場合の計算値とを比較した図である。
【図９】本発明の演算過程で生じる各値の範囲と最適な小数点位置の設定をまとめた図である。
【図１０】本発明の演算手法で算出した計算値と理論値とを比較した図である。
【図１１】ＩＳＯ／ＩＥＣ１１１７２−３のテーブルＢ．２の一例を示した図である。
【図１２】ビットアロケーションＢａとステップ数（Number of steps）との対応を示した図である。
【図１３】ＩＳＯ／ＩＥＣ１１１７２−３のテーブルＢ．４を示した図である。
【図１４】従来の、逆量子化、および、逆スケーリング装置を説明するための概略ブロック図である。
【図１５】従来の逆量子化および逆スケーリング処理をＤＳＰ等のコンピュータを用いて行なう場合のフローチャートである。
【符号の説明】
【０１４１】
１  オーディオ復号化装置、２  フォーマット解析部、３  逆量子化・逆スケーリング部、４  フィルタ部、１０，１１  テーブル参照部、１２  変換部、１３  シフト処理部、２１  オーディオ復号化装置、２２  入力Ｉ／Ｆ部、２３  演算部、２６  出力Ｉ／Ｆ部、１１０，１１１  テーブル参照部、１１２  変換部、１１３  変換部、Ｔ１，Ｔ２  テーブル。
【図１】
2005099629.tif 000003
【図２】
2005099629.tif 000004
【図３】
2005099629.tif 000005
【図４】
2005099629.tif 000006
【図５】
2005099629.tif 000007
【図６】
2005099629.tif 000008
【図７】
2005099629.tif 000009
【図８】
2005099629.tif 000010
【図９】
2005099629.tif 000011
【図１０】
2005099629.tif 000012
【図１１】
2005099629.tif 000013
【図１２】
2005099629.tif 000014
【図１３】
2005099629.tif 000015
【図１４】
2005099629.tif 000016
【図１５】
2005099629.tif 000017