(57)【特許請求の範囲】
【請求項１】
周波数軸上のデータに変換されたのち、精度の要求度に応じた非線形量子化がなされ、さらに符号化されることによって圧縮された圧縮データを入力データとし、当該入力データとしての圧縮データを復号化したのちに精度の要求度に応じた非線形逆量子化処理し、時間軸のデータに変換する信号復号方法において、
精度の要求度が高い前記入力データに対しては、復号化されたそれぞれの入力データをKeyとしてそれぞれの圧縮データ対応の非線形逆量子化演算結果を取得できる逆量子化テーブルを用意し、
精度の要求度が低い前記入力データに対しては、復号化された所定間隔ごとのそれぞれの入力データをKeyとして当該所定間隔ごとの入力データ対応の非線形逆量子化演算結果を代表値として取得できる代表値テーブルを用意するとともに、これら各代表値の間を補間可能な補間テーブルとを用意し、
前記精度の要求度に応じた非線形逆量子化処理を行う際は、前記復号化された入力データのビット数をｎ（ｎは正の整数）としたとき、当該入力データを上位ビット（ビット数をｎ１とする）と下位ビット（ビット数をｎ２とし、ｎ１＋ｎ２＝ｎ）に分割して、前記上位ビットのデータが０であるか否かを判定し、前記上位ビットのデータが０である場合には、前記入力データの精度の要求度は高く、前記上位ビットのデータが０でない場合には、前記入力データの精度の要求度は低いと判定し、
精度の要求度が高い入力データであると判定された場合には、当該入力データをKeyとして前記逆量子化テーブルを参照することで、当該入力データに対する非線形逆量子化演算結果を取得し、
精度の要求度が低い入力データであると判定された場合には、当該入力データをKeyとして前記代表値テーブルまたは前記代表値テーブルと前記補間テーブルとの両方を参照することで、当該入力データに対する非線形逆量子化演算結果を取得する信号復号方法であって、
前記逆量子化テーブルは、前記下位ビットの取り得るデータ範囲のそれぞれのデータ対応に予め計算された非線形逆量子化演算結果が前記下位ビットの取り得るそれぞれのデータに対応付けられて格納されたテーブルであることと、
前記代表値テーブルは、当該下位ビットの取り得るデータ範囲間隔ごとの前記上位ビット側の取り得るそれぞれのデータ対応に予め計算された非線形逆量子化演算結果が前記上位ビット側の取り得るそれぞれのデータに対応付けられて格納されたテーブルであることと、
前記補間テーブルは、前記下位ビットの取り得るデータ範囲ごとの前記上位ビットの取り得るそれぞれのデータ対応の非線形逆量子化演算結果間をそれぞれ結ぶ線分の傾き値を、当該上位ビット側の取り得るそれぞれのデータ対応に予め計算して求めておき、前記傾き値が前記上位ビット側の取り得るそれぞれのデータに対応付けられて格納されたテーブルであることと
を特徴とする信号復号方法。
【請求項２】
前記精度の要求度の高い入力データであると判定された場合における前記入力データに対する非線形逆量子化演算結果を得る処理は、当該入力データの下位ビットで表現されるデータをKeyとして前記逆量子化テーブルを参照し、前記逆量子化テーブルから予め計算された非線形逆量子化演算結果を取得する処理であり、
前記精度の要求度の低い入力データであると判定された場合における前記入力データに対する非線形逆量子化演算結果を得る処理は、当該入力データの上位ビットで表現されるデータをKeyとして前記代表値テーブルを参照し、前記代表値テーブルから予め計算された非線形逆量子化演算結果を取得し、当該上位ビットに続く下位ビットのデータに対応する補間が必要な場合には、前記代表値テーブルから予め計算された非線形逆量子化演算結果を取得したあと、当該上位ビットのデータをKeyとして前記補間テーブルを参照して当該上位ビットに対応する傾き値を取得して、当該傾き値から当該上位ビットに続く下位ビットのデータに対応する補間値を求め、前記補間値を前記代表値テーブルから得られた非線形逆量子化演算結果に加えて、非線形逆量子化演算結果として得ることを特徴とする請求項１記載の信号復号方法。
【請求項３】
前記精度の要求度の低い入力データであると判定された場合における前記入力データに対する非線形逆量子化演算結果は、求めるべき非線形逆量子化演算結果をＶｘ、前記代表値テーブルから得られた非線形逆量子化演算結果をＶ、前記補間テーブルから得られた傾き値をｇ、当該上位ビットに続く下位ビットのデータをＸ_lowで表したとき、Ｖｘ＝Ｖ＋ｇ*Ｘ_low で求めることを特徴とする請求項２記載の信号復号方法。
【請求項４】
周波数軸上のデータに変換されたのち、精度の要求度に応じた非線形量子化がなされ、さらに符号化されることによって圧縮された圧縮データを入力データとし、この入力データとしての圧縮データを復号化したのちに精度の要求度に応じた非線形逆量子化処理し、時間軸のデータに変換する信号復号装置において、
前記信号復号装置は、前記符号化された入力データを復号化する復号化手段と、当該復号化されたデータを非線形逆量子化する逆量子化手段と、非線形逆量子化されたデータを時間軸のデータに変換する周波数／時間変換手段を構成要素として含み、
前記逆量子化手段は、精度の要求度が高い前記入力データに対するテーブルとして、復号化されたそれぞれの入力データをKeyとしてそれぞれの入力データ対応の非線形逆量子化演算結果を取得できる逆量子化テーブルを有し、精度の要求度が低い前記入力データに対するテーブルとして、復号化された所定間隔ごとのそれぞれの入力データをKeyとして当該所定間隔ごとの入力データ対応の非線形逆量子化演算結果を代表値として取得できる代表値テーブルを有し、さらに、これら各代表値の間を補間可能な補間テーブルを有し、
前記精度の要求度に応じた非線形逆量子化処理を行う際は、復号化された入力データのビット数をｎ（ｎは正の整数）としたとき、当該入力データを上位ビット（ビット数をｎ１とする）と下位ビット（ビット数をｎ２とし、ｎ１＋ｎ２＝ｎ）に分割して、前記上位ビットのデータが０であるか否かを判定し、前記上位ビットのデータが０である場合には、前記入力データの精度の要求度は高く、前記上位ビットのデータが０でない場合には、前記入力データの精度の要求度は低いと判定し、
精度の要求度が高い入力データであると判定された場合には、当該入力データをKeyとして前記逆量子化テーブルを参照することで、当該入力データに対する非線形逆量子化演算結果を取得し、
精度の要求度の低い入力データであると判定された場合には、当該入力データをKeyとして前記代表値テーブルまたは前記代表値テーブルと補間テーブルとの両方を参照することで、当該入力データに対する非線形逆量子化演算結果を取得する信号復号装置であって、
前記逆量子化テーブルは、前記下位ビットの取り得るデータ範囲のそれぞれのデータ対応に予め計算された非線形逆量子化演算結果が前記下位ビットの取り得るそれぞれのデータに対応付けられて格納されたテーブルであることと、
前記代表値テーブルは、当該下位ビットの取り得るデータ範囲間隔ごとの前記上位ビット側の取り得るそれぞれのデータ対応に予め計算された非線形逆量子化演算結果が前記上位ビット側の取り得るそれぞれのデータに対応付けられて格納されたテーブルであることと、
前記補間テーブルは、前記下位ビットの取り得るデータ範囲ごとの前記上位ビットの取り得るそれぞれのデータ対応の非線形逆量子化演算結果間をそれぞれ結ぶ線分の傾き値を、当該上位ビット側の取り得るそれぞれのデータ対応に予め計算して求めておき、その傾き値が前記上位ビット側の取り得るそれぞれのデータに対応付けられて格納されたテーブルであることと
を特徴とする信号復号装置。
【請求項５】
前記精度の要求度の高い入力データであると判定された場合における前記入力データに対する非線形逆量子化演算結果を得る処理は、当該入力データの下位ビットで表現されるデータをKeyとして前記逆量子化テーブルを参照し、前記逆量子化テーブルから予め計算された非線形逆量子化演算結果を取得する処理であり、
前記精度の要求度の低い入力データであると判定された場合における前記入力データに対する非線形逆量子化演算結果を得る処理は、当該入力データの上位ビットで表現されるデータをKeyとして前記代表値テーブルを参照し、前記代表値テーブルから予め計算された非線形逆量子化演算結果を取得し、当該上位ビットに続く下位ビットのデータに対応する補間が必要な場合には、前記代表値テーブルから予め計算された非線形逆量子化演算結果を取得したあと、当該上位ビットのデータをKeyとして前記補間テーブルを参照して当該上位ビットに対応する傾き値を取得し、当該傾き値から当該上位ビットに続く下位ビットのデータに対応する補間値を求め、前記補間値を前記代表値テーブルから得られた非線形逆量子化演算結果に加えて、非線形逆量子化演算結果として得ることを特徴とする請求項４記載の信号復号装置。
【請求項６】
前記精度の要求度の低い入力データであると判定された場合における前記入力データに対する非線形逆量子化演算結果は、求めるべき非線形逆量子化演算結果をＶｘ、前記代表値テーブルから得られた非線形逆量子化演算結果をＶ、前記補間テーブルから得られた傾き値をｇ、当該上位ビットに続く下位ビットのデータをＸ_lowで表したとき、Ｖｘ＝Ｖ＋ｇ*Ｘ_low で求めることを特徴とする請求項５記載の信号復号装置。
【請求項７】
周波数軸上のデータに変換されたのち、精度の要求度に応じた非線形量子化がなされ、さらに符号化されることによって圧縮された圧縮データを入力データとし、当該入力データとしての圧縮データを復号化したのちに精度の要求度に応じた非線形逆量子化処理し、時間軸のデータに変換する信号復号処理プログラムを記録した記録媒体において、
前記信号復号処理プログラムは、
前記精度の要求度に応じた非線形逆量子化処理を行う際は、復号化された入力データのビット数をｎ（ｎは正の整数）としたとき、当該入力データを上位ビット（ビット数をｎ１とする）と下位ビット（ビット数をｎ２とし、ｎ１＋ｎ２＝ｎ）とに分割し、前記上位ビットのデータが０であるか否かを判定し、前記上位ビットのデータが０である場合には、前記入力データの精度の要求度は高く、前記上位ビットのデータが０でない場合には、前記入力データの精度の要求度は低いと判定する手順と、
精度の要求度が高い入力データであると判定された場合には、当該入力データをKeyとしてそれぞれの入力データ対応に非線形逆量子化演算結果を取得できる逆量子化テーブルを参照して前記入力データに対する非線形逆量子化演算結果を取得する手順と、
精度の要求度が低い圧縮データであると判定された場合には、当該入力された所定間隔ごとのそれぞれの入力データをKeyとして当該所定間隔ごとの入力データ対応の非線形逆量子化演算結果を代表値として取得できる代表値テーブルまたは前記代表値テーブルと各代表値の間を補間可能な補間テーブルとの両方を参照して前記入力データに対する非線形逆量子化演算結果を得る手順と、
を含み、
前記逆量子化テーブルは、前記下位ビットの取り得るデータ範囲のそれぞれのデータ対応に予め計算された非線形逆量子化演算結果が前記下位ビットの取り得るそれぞれのデータに対応付けられて格納されたテーブルであることと、
前記代表値テーブルは、当該下位ビットの取り得るデータ範囲間隔ごとの前記上位ビット側の取り得るそれぞれのデータ対応に予め計算された非線形逆量子化演算結果が前記上位ビット側の取り得るそれぞれのデータに対応付けられて格納されたテーブルであることと、
前記補間テーブルは、前記下位ビットの取り得るデータ範囲ごとの前記上位ビットの取り得るそれぞれのデータ対応の非線形逆量子化演算結果間をそれぞれ結ぶ線分の傾き値を、当該上位ビット側の取り得るそれぞれのデータ対応に予め計算して求めておき、前記傾き値が前記上位ビット側の取り得るそれぞれのデータに対応付けられて格納されたテーブルであることと
を特徴とする信号復号処理プログラムを記録した記録媒体。
【請求項８】
前記精度の要求度の高い入力データであると判定された場合における前記入力データに対する非線形逆量子化演算結果を得る処理は、当該入力データの下位ビットで表現されるデータをKeyとして前記逆量子化テーブルを参照し、前記逆量子化テーブルから予め計算された非線形逆量子化演算結果を取得する処理であり、
前記精度の要求度の低い入力データであると判定された場合における前記入力データに対する非線形逆量子化演算結果を得る処理は、前記入力データの上位ビットで表現されるデータをKeyとして前記代表値テーブルを参照し、前記代表値テーブルから予め計算された非線形逆量子化演算結果を取得し、当該上位ビットに続く下位ビットのデータに対応する補間が必要な場合には、前記代表値テーブルから予め計算された非線形逆量子化演算結果を取得したあと、当該上位ビットのデータをKeyとして前記補間テーブルを参照して当該上位ビットに対応する傾き値を取得して、当該傾き値から当該上位ビットに続く下位ビットのデータに対応する補間値を求め、当該補間値を前記代表値テーブルから得られた非線形逆量子化演算結果に加えて、非線形逆量子化演算結果として得ることを特徴とする請求項７記載の信号復号処理プログラムを記録した記録媒体。
【請求項９】
前記精度の要求度の低い入力データであると判定された場合における前記入力データに対する非線形逆量子化演算結果は、求めるべき非線形逆量子化演算結果をＶｘ、前記代表値テーブルから得られた非線形逆量子化演算結果をＶ、前記補間テーブルから得られた傾き値をｇ、当該上位ビットに続く下位ビットのデータをＸ_lowで表したとき、Ｖｘ＝Ｖ＋ｇ*Ｘ_low で求めることを特徴とする請求項８記載の信号復号処理プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、信号復号方法および信号復号装置ならびに信号復号処理プログラムを記録した記録媒体に関し、特に、音楽や音声などのオーディオ信号が周波数領域に変換されたのち量子化され符号化されて圧縮されたデータを復号する信号復号方法および信号復号装置ならびに信号復号処理プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
オーディオ信号を効率的に符号化するさまざまな手法が提案されている。オーディオ信号など２０ＫＨＺ程度の帯域を有する信号は、最近、ＭＰＥＧ（Motion Picture Experts Group）オーディオ方式などを用いて符号化されている。
【０００３】
このＭＰＥＧオーディオ方式に代表される符号化方式は、時間軸のディジタルオーディオ信号を直交変換を用いて周波数軸に変換し、その周波数軸上の情報を、人間の聴覚の感度特性を考慮して、人間の聴覚に重要な情報から優先的に情報量を与えて行く非線形量子化を行う。これは、人間の聴覚は小さい音の変化には敏感であるが大きな音の変化にはあまり敏感でないことを利用し、周波数軸上に変換されたデータにおける音の変化に強さにおいて、小さな音に対しては多くの情報を割り当て、大きな音に対しては情報量の割り当てを少なくするといった処理である。
【０００４】
そして、さらに、その非線形量子化結果に対し可変長符号化を行ったのち、その符号化されたデータをビットストリームの圧縮データとして出力する。
【０００５】
なお、ＭＰＥＧオーディオ方式に関しては、たとえば、ＩＳＯ／ＩＥＣ標準ＩＳＯ−１１１７２−３およびＩＳＯ１３８１８−３などに述べられている。
【０００６】
【発明が解決しようとする課題】
上述したような手法を用いて符号化された圧縮データを復号化する際は、符号化と逆の手順によって行われる。すなわち、ビットストリームの可変長符号データを可変長符号復号化手段で復号化し、それを逆量子処理手段で非線形逆量子化したのち、周波数／時間変換手段によって周波数軸から時間軸のデータに変換してオーディオ信号として再生する。
【０００７】
ところで、本来のオーディオ信号は時間軸においては、高々１６ビット程度の分解能の信号であるが、これを周波数軸に変換すると、そのダイナミックレンジは非常に大きくなる。たとえば、１６ビット程度の分解能の信号に対して単純に周波数軸に変換した場合には、３２ビット程度（理想的には８０ビット以上）を用いないとその情報を表現できないものとなる。
【０００８】
そこで、上述したように、 ＭＰＥＧオーディオ方式では、符号化する過程において非線形量子化を行い、それをさらに可変長符号化処理を施してデータ圧縮を行っている。このＭＰＥＧオーディオ方式で行われる非線形量子化処理は、上述のＩＳＯ／ＩＥＣ標準ＩＳＯ−１１１７２−３に示されている下式によって表される。
【０００９】
【数１】
0003979026.tif 000002
【００１０】
この（１）式を用いて非線形量子化処理を行うことによって、人間の聴覚に与える影響を最小限にとどめながら、圧縮率の向上を図っている。
【００１１】
しかしながら、その代償として、非線形量子化あるいは非線形逆量子化を行う際は、上述した式を用いた浮動小数点演算を行う必要があり、演算量が非常に多くなる。したがって、このような量子化あるいは逆量子化を行う際は、それに見合った処理能力の高いハードウエアを必要とする。
【００１２】
なお、この（１）式において、ｉｓ（ｉ）の３分の４乗の計算項のあとに続く計算項は定数であるので、その定数部分の値は予め求めておくことができ、その都度の計算を行う必要はないので、演算量に与える影響は少ないが、 ｉｓ（ｉ）の３分の４乗の計算項は、入力されるデータについて、その都度、計算を行う必要がある。特に、非整数のべき乗（有理数乗）などの演算は演算量が多いので、演算負荷が非常に大きくなって、処理能力の高いハードウエアが必要となり、演算コストが非常に高くなる。
【００１３】
特に、このような圧縮データを再生する携帯型のオーディオ機器などは、小型・軽量化さらには低コストが要求されるので、使用するＣＰＵの能力に大きな制約があるのが一般的である。
【００１４】
そこで、このような非線形逆量子化の演算負荷を小さくする手法としては、入力してくるデータすべてについて予め上述した（１）式を処理能力の高い計算機を用いて予め計算して、入力される可能性のあるそれぞれの入力データに対する非線形逆量子化演算結果を格納した逆量子化テーブルを作成しておき、その逆量子化テーブルをオーディオ機器のＲＯＭなどに格納しておく手法がある。
【００１５】
これによれば、入力されてくるデータをKeyとしてその逆量子化テーブルを参照するだけで、求めるべき非線形逆量子化演算結果を得ることができ、演算負荷は大幅に削減できるが、入力される可能性のあるデータ範囲が大きいと、逆量子化テーブルの持つデータ量は膨大なものとなり、それを格納するＲＯＭも記憶容量の大きなものを使用せざる得ない。
【００１６】
ちなみに、逆量子化手段に入力されるデータが１６ビットであるとすれば、２の１６乗個の入力データに対する非線形逆量子化演算結果を持つ必要があり、逆量子化テーブルがＲＯＭの多くの領域を占有してしまうことにもなる。
【００１７】
上述したように、携帯型のオーディオ機器などは小型・軽量で低コスト化が要求される場合が多く、ＲＯＭの容量もできる限り小さなもので対応できることが望ましく、ある演算を行う際の演算量を削減するために大きな容量のＲＯＭを使用せざるを得ないというのは非現実的である。
【００１８】
そこで本発明は、上述したような非線形逆量子化演算処理を安価なハードウエアで高速に、しかも、高精度に実現することを目的としている。
【００１９】
【課題を解決するための手段】
上述した目的を達成するために、本発明の信号復号方法は、周波数軸上のデータに変換されたのち、精度の要求度に応じた非線形量子化がなされ、さらに符号化されることによって圧縮された圧縮データを入力データとし、この入力データとしての圧縮データを復号化したのちに精度の要求度に応じた非線形逆量子化処理し、それを時間軸のデータに変換する信号復号方法であって、精度の要求度が高い前記入力データに対しては、復号化されたそれぞれの入力データをKeyとしてそれぞれの圧縮データ対応の非線形逆量子化演算結果を取得できる逆量子化テーブルを用意し、精度の要求度が低い前記入力データに対しては、復号化された所定間隔ごとのそれぞれの入力データをKeyとして当該所定間隔ごとの入力データ対応の非線形逆量子化演算結果を代表値として取得できる代表値テーブルを用意するとともに、これら各代表値の間を補間可能な補間テーブルとを用意する。そして、前記精度の要求度に応じた非線形逆量子化処理を行う際、前記復号化された入力データの精度の要求度を判定する。また、精度の要求度が高い入力データであると判定された場合には、その入力データをKeyとして前記逆量子化テーブルを参照することで、その入力データに対する非線形逆量子化演算結果を取得し、精度の要求度が低い入力データであると判定された場合には、その入力データをKeyとして前記代表値テーブルまたはその代表値テーブルと補間テーブルの両方を参照することで、その入力データに対する非線形逆量子化演算結果を得るようにしている。
【００２０】
また、本発明の信号復号装置は、周波数軸上のデータに変換されたのち、精度の要求度に応じた非線形量子化がなされ、さらに符号化されることによって圧縮された圧縮データを入力データとし、この入力データとしての圧縮データを復号化したのちに精度の要求度に応じた非線形逆量子化処理し、それを時間軸のデータに変換する信号復号装置であって、この信号復号装置は、前記符号化された入力データを復号化する復号化手段と、その復号化されたデータを非線形逆量子化する逆量子化手段と、非線形逆量子化されたデータを時間軸のデータに変換する周波数／時間変換手段を構成要素として含んでいる。そして、前記逆量子化手段は、精度の要求度が高い前記入力データに対するテーブルとして、復号化されたそれぞれの入力データをKeyとしてそれぞれの入力データ対応の非線形逆量子化演算結果を取得できる逆量子化テーブルを有し、精度の要求度が低い前記入力データに対するテーブルとして、復号化された所定間隔ごとのそれぞれの入力データをKeyとして当該所定間隔ごとの入力データ対応の非線形逆量子化演算結果を代表値として取得できる代表値テーブルを有し、さらに、これら各代表値の間を補間可能な補間テーブルを有している。このような構成において、前記精度の要求度に応じた非線形逆量子化処理を行う際は、復号化された入力データの精度の要求度を判定し、精度の要求度が高い入力データであると判定された場合には、その入力データをKeyとして前記逆量子化テーブルを参照することで、その入力データに対する非線形逆量子化演算結果を取得する。また、精度の要求度の低い入力データであると判定された場合には、その入力データをKeyとして前記代表値テーブルまたはその代表値テーブルと補間テーブルの両方を参照することで、その入力データに対する非線形逆量子化演算結果を得るようにしている。
【００２１】
また、本発明の信号復号処理プログラムを記録した記録媒体は、周波数軸上のデータに変換されたのち、精度の要求度に応じた非線形量子化がなされ、さらに符号化されることによって圧縮された圧縮データを入力データとし、この入力データとしての圧縮データを復号化したのちに精度の要求度に応じた非線形逆量子化処理し、それを時間軸のデータに変換する信号復号処理プログラムを記録した記録媒体であって、その処理プログラムは、前記精度の要求度に応じた非線形逆量子化処理を行う際は、復号化された入力データの精度の要求度を判定する手順と、精度の要求度が高い入力データであると判定された場合には、当該入力データをKeyとしてそれぞれの入力データ対応に非線形逆量子化演算結果を取得できる逆量子化テーブルを参照してその入力データに対する非線形逆量子化演算結果を取得する手順と、精度の要求度が低い圧縮データであると判定された場合には、当該入力された所定間隔ごとのそれぞれの入力データをKeyとして当該所定間隔ごとの入力データ対応の非線形逆量子化演算結果を代表値として取得できる代表値テーブルまたはこの代表値テーブルと各代表値の間を補間可能な補間テーブルの両方を参照してその入力データに対する非線形逆量子化演算結果を得る手順と  を含むものである。
【００２２】
これら各発明において、前記入力データの精度の要求度の判定は、復号化された入力データのビット数をｎ（ｎは正の整数）としたとき、当該入力データを上位ビット（ビット数をｎ１とする）と下位ビット（ビット数をｎ２とし、ｎ１＋ｎ２＝ｎ）に分割して、上位ビットのデータが０であるか否かを判定し、上位ビットのデータが０である場合には、前記入力データの精度の要求度は高く、上位ビットのデータが０でない場合には、前記入力データの精度の要求度は低いと判定するようにしている。
【００２３】
また、前記逆量子化テーブルは、前記下位ビットの取り得るデータ範囲のそれぞれのデータ対応に予め計算された非線形逆量子化演算結果が前記下位ビットの取り得るそれぞれのデータに対応付けられて格納されたテーブルであって、前記代表値テーブルは、当該下位ビットの取り得るデータ範囲間隔ごとの前記上位ビット側の取り得るそれぞれのデータ対応に予め計算された非線形逆量子化演算結果が前記上位ビット側の取り得るそれぞれのデータに対応付けられて格納されたテーブルであって、前記補間テーブルは、前記下位ビットの取り得るデータ範囲ごとの前記上位ビットの取り得るそれぞれのデータ対応の非線形逆量子化演算結果間をそれぞれ結ぶ線分の傾き値を、当該上位ビット側の取り得るそれぞれのデータ対応に予め計算して求めておき、その傾き値が前記上位ビット側の取り得るそれぞれのデータに対応付けられて格納されたテーブルとしている。
【００２４】
また、前記精度の要求度の高い入力データであると判定された場合におけるその入力データに対する非線形逆量子化演算結果を得る処理は、当該入力データの下位ビットで表現されるデータをKeyとして前記逆量子化テーブルを参照し、この逆量子化テーブルから予め計算された非線形逆量子化演算結果を取得する処理である。
【００２５】
一方、前記精度の要求度の低い入力データであると判定された場合におけるその入力データに対する非線形逆量子化演算結果を得る処理は、その入力データの上位ビットで表現されるデータをKeyとして前記代表値テーブルを参照し、この代表値テーブルから予め計算された非線形逆量子化演算結果を取得し、当該上位ビットに続く下位ビットのデータに対応する補間が必要な場合には、前記代表値テーブルから予め計算された非線形逆量子化演算結果を取得したあと、その上位ビットのデータをKeyとして前記補間テーブルを参照してその上位ビットに対応する傾き値を取得して、当該傾き値から当該上位ビットに続く下位ビットのデータに対応する補間値を求め、その補間値を前記代表値テーブルから得られた非線形逆量子化演算結果に加えて、非線形逆量子化演算結果として得るようにしている。
【００２６】
また、前記精度の要求度の低い入力データであると判定された場合におけるその入力データに対する非線形逆量子化演算結果は、求めるべき非線形逆量子化演算結果をＶｘ、前記代表値テーブルから得られた非線形逆量子化演算結果をＶ、前記補間テーブルから得られた傾き値をｇ、当該上位ビットに続く下位ビットのデータをＸ_lowで表したとき、Ｖｘ＝Ｖ＋ｇ*Ｘ_low で求めるようにしている。
【００２７】
このように本発明は、圧縮データの復号処理過程で行われる精度の要求度に応じた非線形逆量子化処理を行う際に、入力される圧縮データ（入力データ）の精度の要求度を判定し、精度の要求度が高い入力データである場合には、予め作成された逆量子化テーブルを参照してその入力データに対する非線形逆量子化演算結果を取得し、  精度の要求度の低い入力データであると判定された場合には、代表値テーブルまたは代表値テーブルと補間テーブルの両方を参照してその圧縮データに対する非線形逆量子化結果を得るようにしている。
【００２８】
このように、精度の要求度が高い入力データに対しては、個々のデータ対応の非線形逆量子化演算結果を取得できるテーブルを用いて非線形逆量子化演算結果を得るようにし、精度の要求度の低い入力データに対しては、代表値テーブルまたは代表値テーブルと補間テーブルの両方を参照して非線形逆量子化演算結果を得るようにしているので、前述の（１）式におけるｉｓ（ｉ）の３分の４乗の計算項をそのまま計算するのに比べると、演算量を大幅に少なくすることができ、ＣＰＵの演算負荷を大幅に軽減することができる。
【００２９】
また、入力される可能性のあるデータ範囲の全ての入力データに対応した逆量子化テーブルを持つ場合に比べると、本発明で用いる逆量子化テーブル、代表値テーブル、補間テーブルをすべて合計してもそのデータ量を大幅に少なくすることができ、テーブルを格納するメモリの容量を小さくすることができる。
【００３０】
これらによって、本発明は、安価なハードウエアで高速に信号の復号処理が可能となり、しかも、精度の要求されるデータに対しては個々のデータ対応の非線形逆量子化演算結果をそのまま取得することができるので、高精度な復号処理を実現できる。したがって、処理対象の信号が、たとえば、オーディオ信号である場合、高品質な再生音を得ることができ、かつ、安価なハードウエアで実現できることから携帯型の安価な機器にも搭載し易いものとなる。
【００３１】
また、入力データの精度の要求度の判定は、当該入力データの上位ビット側のデータが０であるか否かを判定し、上位ビット側のデータが０である場合には、入力データの精度の要求度は高く、上位ビット側のデータが０でない場合には、入力データの精度の要求度は低いと判断するようにしている。
【００３２】
これは、オーディオ信号の場合、人間の聴覚は小さい音の変化には敏感であるが大きな音の変化にはあまり敏感でないことを利用して、非線形逆量子化対象となる入力データ（復号化されたデータ）の値が大きいか小さいかを判定し、それによって入力データの精度の要求度を判定するものである。本発明では、入力データを上位ビットと下位ビットに２分割して、上位ビットのデータが０であれば、入力データの値は小さく、精度の要求度は高いと判断し、逆に、上位ビットのデータが０でなければ、入力データの値は大きく、精度の要求度は低いと判断するようにしているので、精度の要求度の判断を簡単な処理で適正に行うことができる。
【００３３】
また、本発明で用いる逆量子化テーブルは、下位ビットの取り得るデータ範囲の個々のデータ対応に予め計算された非線形逆量子化演算結果が前記下位ビットの取り得る個々のデータに対応付けられて格納されたテーブルである。
【００３４】
これによって、たとえば、下位ビットが８ビットであれば、２の８乗個（２５６個）の入力データ対応の非線形逆量子化演算結果が格納されたテーブルとすればよい。
【００３５】
また、代表値テーブルは、当該下位ビットの取り得るデータ範囲間隔ごとの前記上位ビット側の取り得るそれぞれのデータ対応に予め計算された非線形逆量子化演算結果が前記上位ビット側の取り得る個々のデータに対応付けられて格納されたテーブルである。
【００３６】
このように、代表値テーブルは、下位ビットの取り得るデータ範囲間隔ごとの上位ビット側の取り得るそれぞれのデータ対応のテーブルであるので、この場合も、たとえば、下位ビットが８ビットであれば、２の８乗個（２５６個）の上位ビット側の取り得るそれぞれのデータ対応であり、上位ビットが８ビットであれば、２５６個の入力データに対応したテーブルとすればよい。
【００３７】
また、補間テーブルは、前記下位ビットの取り得るデータ範囲ごとの前記上位ビットの取り得る個々のデータ対応の非線形逆量子化演算結果間をそれぞれ結ぶ線分の傾き値を、当該上位ビット側の取り得る個々のデータ対応に予め計算して求めておき、その傾き値が前記上位ビット側の取り得る個々のデータに対応付けられて格納されたテーブルである。したがって、この補間テーブルも代表値テーブルと同様、上位ビットが８ビットであれば、２５６個の入力データに対応したテーブルとすればよい。
【００３８】
このように、本発明では、３つのテーブルを有するが、それぞれのテーブルはどれも小さなテーブルサイズで済み、これら３つのテーブルを合計したとしても入力データが取り得る範囲全てに対応した逆量子化テーブルに比べれば大幅にデータ量を少なくすることができ、これらのテーブルのメモリの占有率を低く抑えることができ、使用するメモリの容量を小さなものとすることが可能となる。
【００３９】
また、前記精度の要求度の高い入力データであると判定された場合におけるその圧縮データに対する非線形逆量子化演算結果を得る処理は、前記下位ビットのデータをKeyとして前記逆量子化テーブルを参照し、この逆量子化テーブルから予め計算された非線形逆量子化演算結果を取得する処理であるので、逆量子化テーブルを参照するだけの処理で、その入力データに対する適正な非線形逆量子化演算結果を得ることができる。
【００４０】
また、精度の要求度の低い入力データであると判定された場合におけるその圧縮データに対する非線形逆量子化演算結果を得る処理は、前記上位ビットのデータをKeyとして前記代表値テーブルを参照し、この代表値テーブルから非線形逆量子化演算結果を取得し、さらに、その上位ビットのデータから前記補間テーブルを参照してその上位ビットに対応する傾き値を取得して、当該傾き値から当該上位ビットに続く下位ビットに対応する補間値を求め、その補間値を前記代表値テーブルから得られた非線形逆量子化演算結果に加えて、非線形逆量子化演算結果として得る処理である。
【００４１】
このように、精度の要求度の低い入力データである場合には、代表値テーブルを参照して、そのあと、補間テーブルを参照し、それによって得られた値を用いて、単純な加算と積算を行うだけで、非線形逆量子化演算結果を得ることができる。
【００４２】
具体的な演算としては、求めるべき非線形逆量子化演算結果をＶｘ、前記代表値テーブルから得られた非線形逆量子化演算結果をＶ、前記補間テーブルから得られた傾き値をｇ、当該上位ビットに続く下位ビットのデータをＸ_lowとしたとき、Ｖｘ＝Ｖ＋ｇ*Ｘ_low で求めることができ、２回のテーブル参照（代表値テーブルと補間テーブルの参照）と、１回の積算と１回の加算だけの単純な演算を行えばよい。しかも、得られた結果は近似地ではあるが信頼性の高い高精度な値となる。なお、精度の要求度の低い入力データの場合であっても、その入力データの値によっては、補間を行わずに代表値テーブルのみによって非線形逆量子化演算結果を取得できる場合もある。
【００４３】
【発明の実施の形態】
以下、本発明の実施の形態について説明する。なお、この実施の形態で説明する内容は、本発明の信号復号方法および信号復号装置についての説明であるとともに、本発明の信号復号処理プログラムを記録した記録媒体における信号復号処理プログラムの具体的な処理内容をも含むものである。
【００４４】
図１は本発明の信号復号装置の構成を示すもので、入力データである圧縮データのビットストリームを解析するビットストリーム解析部１、可変長符号化データを復号する可変長符号復号化部２、復号化されたデータを非線形逆量子化する逆量子化処理部３、非線形逆量子化されたデータを時間軸のデータに変換してオーディを信号として出力する周波数／時間変換部４、符号化や量子化をどのように行ったかなど、この信号復号化装置が復号化処理を行うに必要な様々な規則などが記述された情報（サイド情報という）を復号化するサイド情報復号化部５を有した構成となっている。
【００４５】
この図１に示される信号復号装置に入力される圧縮データは、前述したように、時間軸のディジタルオーディオ信号を直交変換を用いて周波数軸上のデータに変換し、その周波数軸上のデータを、人間の聴覚の感度特性を考慮して、人間の聴覚に重要な情報に対しては多くの情報量を与え、逆に、人間の聴覚にあまり重要でない情報に対しては与える情報量を少なくするといった非線形量子化を行い、さらに、それを可変長符号化することによって圧縮されたデータである。
【００４６】
このような圧縮データが図１の信号復号装置の入力として与えられ、上述したように、ビットストリーム解析部１によってビットストリーム解析されてサイド情報符号化データとオーディオ符号化データとに分離され、サイド情報符号化データはサイド情報復号部５に与えられ、オーディオ符号化データは可変長符号復号化部２に与えられる。
【００４７】
そして、可変長符号復号化部２では、サイド情報復号化部５で復号化されたサイド情報を用いてオーディオ符号化データを復号し、ある長さ（ここでは１６ビットとする）の復号化データが得られる。この復号化データは逆量子化処理部３で非線形逆量子化処理され、たとえば、３２ビット程度（理想的には８０ビット以上）のデータが得られる。
【００４８】
この逆量子化処理部３で非線形逆量子化されたデータは、周波数軸上のデータであり、ここでは図示しないが、図で表すとすれば、周波数を横軸に、音の強さを縦軸にとったデータとなっており、この周波数軸のデータを周波数／時間変換部４で時間軸のデータに変換され、オーディオ信号として出力される。
【００４９】
本発明は逆量子化処理部３で行われる非線形逆量子化処理に大きな特徴があり、この非線形逆量子化処理を効率よく、しかも、高精度に実現するものである。
【００５０】
ここで、非線形逆量子化処理として、前述した（１）式のｉｓ（ｉ）の３分の４乗という計算項が存在する。つまり、図２に示すように、可変長符号復号化部２で復号化されたデータ（ここでは１６ビット）に対し、逆量子化処理部３で非線形逆量子化処理を行って、たとえば、３２ビットのデータとして出力するが、本発明はその非線形逆量子化処理としてのｉｓ（ｉ）の３分の４乗（以下では、ｉｓ（ｉ）をＸと置いて、Ｘの３分の４乗とする）の計算項を効率よく、しかも、高精度に実現するものである。
【００５１】
図３はＸの３分の４乗の近似曲線を示すもので、Ｘ（１６ビットの入力データ、つまり、可変長符号復号化部２で復号化されたデータ）に対する非線形逆量子化演算結果（Ｘの３分の４乗）を近似した曲線を示すものである。
【００５２】
この図３からもわかるように、入力データＸの値が小さいときは入力データＸの変化に対し、それぞれの入力データに対するＸの３分の４乗の値は細かい変化として出力されるが、入力データＸの値が大きくなると、入力データＸの変化に対し、それぞれの入力データに対するＸの３分の４乗の値は大きな変化として出力される。
【００５３】
これは、前述したように、人間の聴覚の感度特性を考慮して、人間の聴覚に重要な情報に対しては多くの情報量を与え、逆に、人間の聴覚にあまり重要でない情報に対しては与える情報量を少なくするといった非線形量子化を行った結果である。
【００５４】
ここで、入力データとして取り得る全てのＸの値に対して、Ｘの３分の４乗を予め計算したテーブルを持てば、全ての入力データの値をそれぞれKeyとして、そのテーブルを参照することによって、それぞれの入力データに対するＸの３分の４乗の値が即座に取得できるが、入力データを１６ビットとした場合、２の１６乗個もの入力データに対応した非線形逆量子化演算結果を持ったテーブルが必要となり、そのテーブルサイズは膨大なものとなって、実用的でないことは既に述べた。
【００５５】
そこで、本発明は精度の要求度が高い入力データ、つまり、入力データＸの値が小さい場合は、それぞれの入力データ対応に、非線形逆量子化演算（Ｘの３分の４乗）を予め行っておき、その演算結果をそれぞれの入力データに対応付けて格納した逆量子化テーブルを作成し、その逆量子化テーブルを参照して、それぞれの入力データに対応する非線形逆量子化演算結果を求めるようにする。
【００５６】
また、精度の要求度の低い入力データ、つまり、入力データＸの値が大きい場合には、所定間隔ごとの入力データ対応に、非線形逆量子化演算（Ｘの３分の４乗）を予め行っておき、その演算結果を代表値として、所定間隔ごとの入力データに対応付けて格納した代表値テーブルを作成するとともに、これら各代表値の間を補間可能な補間テーブルを作成し、この代表値テーブルまたは代表値テーブルと補間テーブルの両方を参照して、それぞれの入力データに対応する非線形逆量子化値を求めるようにする。 以下、具体的な例を用いて説明する。
【００５７】
ここで、復号化された入力データＸ（ｎビットで構成されるものとする）は、図４（ａ）に示されるように、図示の右端側を最下位ビットＬＳＢとし、図示の左端側を最上位ビットＭＳＢとする。そして、この入力データの値が大きいか小さいかを判別するために、入力データＸを上位ビットＸ_high（ｎ１ビットで構成されるものとする）と下位ビットＸ_low（ｎ２ビットで構成されるものとし、ｎ１＋ｎ２＝ｎとする）に分けて考え、上位ビットＸ_highと下位ビットＸ_lowのデータ内容によって、その入力データの値が大きいか小さいかを判断する。
【００５８】
この実施の形態では、復号化された１６ビットの入力データＸに対し、ｎ１＝ｎ２＝８ビットとなるような境界を決めるものとする。そして、上位ビットＸ_highの各ビットがすべて“０”で構成されていれば、つまり、上位ビットＸ_highの値が０あれば、その入力データＸは値が小さく、精度の要求度が高いとし、上位ビットＸ_highが０でなければ、その入力データＸは値が大きく、精度の要求度が低いとする。
【００５９】
今、可変長符号復号化部２で復号化された１６ビットの入力データＸが逆量子化処理部３に入力されると、まず、上位ビットＸ_highと下位ビットＸ_lowをそれぞれ８ビットづつに２分割して、上位ビットＸ_highと下位ビットＸ_lowを図４（ｂ）に示すように、それぞれ一時記憶手段としてのレジスタＲ１，Ｒ２にコピーする。このとき、レジスタＲ１は下位ビットＸ_lowの８ビット分のデータを“０”とし、レジスタＲ２は上位ビットＸ_highの８ビット分のデータを“０”としておく。
【００６０】
そして、上位ビットＸ_highの８ビット分のデータが“０”であったとすると、入力データＸの値は小さいと判断し、この場合は、予め用意された逆量子化テーブルＱを参照して、それぞれの入力データに対応する非線形逆量子化演算（Ｘの３分の４乗）結果を取得する。
【００６１】
この逆量子化テーブルＱは、下位ビットＸ_lowの取り得るデータ全てに対応したＸの３分の４乗の計算結果が、下位ビットＸ_lowの取り得るデータ全てに対応付けられて格納された内容となっている。したがって、逆量子化テーブルＱを参照する際は、下位ビットＸ_lowのデータをKeyとして、その下位ビットＸ_lowのデータに対応する値（非線形逆量子化演算結果）を取得すればよい。
【００６２】
たとえば、レジスタＲ２における下位ビットＸ_lowの８ビットのデータが「０ｘ０３」（１６進法の表記）であったとすると、この「０ｘ０３」をKeyとして逆量子化テーブルＱを参照すると、それに対するValueとしての非線形逆量子化演算結果として、たとえば、「０００５」が得られる。
【００６３】
この逆量子化テーブルＱは、上位ビットＸ_highの８ビットが“０”のときの下位ビットＸ_lowの８ビットの取りうるデータ全てに対応して、Ｘの３分の４乗を計算した結果そのものが、下位ビットＸ_lowの８ビットの取りうるデータそれぞれに対応付けられているため、入力データＸに対して、適正な非線形逆量子化演算結果が得られることになる。
【００６４】
このように、入力データＸの値が小さい場合、つまり、人間の聴覚に敏感で精度の要求度の高い入力データに対しては、逆量子化テーブルＱを参照するだけでその入力データに対する適正な非線形逆量子化演算結果を得ることができる。
【００６５】
しかも、このときの処理は、１回のテーブル参照（逆量子化テーブルＱの参照）を行うだけであるので、高速な処理が可能となる。また、逆量子化テーブルＱはこの実施の形態では、上述したように、上位ビットＸ_highの８ビットが“０”のときの下位ビットＸ_lowの８ビットが取り得るそれぞれのデータに対する計算結果（非線形逆量子化演算結果）だけを持てばよいので、全ての入力データ範囲に対応させた計算結果を持つ場合に比べて、テーブルサイズ大幅に小さくすることが可能となる。
【００６６】
ちなみに、この実施の形態では入力データ（可変長符号復号化部２で復号化されたデータ）を１６ビットとしているので、全ての入力データに対応できる逆量子化テーブルを作成しようとした場合、２の１６乗個もの入力データに対応した非線形逆量子化演算結果を持ったテーブルが必要となり、そのテーブルサイズは膨大なものとなるが、この逆量子化テーブルＱは、２の８乗個の入力データに対応した非線形逆量子化演算結果を持てばよい。
【００６７】
以上は上位ビットＸ_highの８ビットが“０”であった場合、つまり、入力データの値が小さい（精度の要求度が高い）場合の非線形逆量子化処理であったが、次に上位ビットＸ_highの８ビットが“０”でない場合、つまり、入力データの値が大きい（精度の要求度が低い）場合の非線形逆量子化処理について図５を参照しながら説明する。
【００６８】
この場合も、１６ビットの入力データＸが逆量子化処理部３に入力されると、まず、図５（ａ）に示すように、上位ビットＸ_highと下位ビットＸ_lowをｎ１ビットとｎ２ビットに分けて（ｎ１＝ｎ２＝８）、この上位ビットＸ_highと下位ビットＸ_lowのデータを図５（ｂ）に示すように、それぞれ一時記憶手段としてのレジスタＲ１，Ｒ２にコピーする。このとき、レジスタＲ１は下位ビットＸ_lowの８ビット分のデータを“０”とし、レジスタＲ２は上位ビットＸ_highの８ビット分のデータを“０”としておく。
【００６９】
このようにして、レジスタＲ１，Ｒ２に入力データＸの上位ビットＸ_highと下位ビットＸ_lowをコピーしたあと、このレジスタＲ１の上位ビットＸ_highのデータが“０”であるか否かを判定し、“０”でないと判定されると、入力データＸの値は大きいと判断する。
【００７０】
また、この図５では代表値テーブルＶと補間テーブルＧが存在する。代表値テーブルＶは、上位ビットＸ_highの取り得るそれぞれのデータ対応に、上述のＸの３分の４乗を計算し、その計算結果（非線形逆量子化演算結果）が上位ビットＸ_highの取り得るそれぞれのデータに対応付けられて格納されたテーブルである。したがって、入力データにおける上位ビットＸ_highのデータをKeyとしてその上位ビットＸ_highのデータ対応の非線形逆量子化演算結果を取得することができる。
【００７１】
なお、この代表値テーブルＶは、入力データＸに対して２ｎ２（このｎ２は下位ビットＸ_lowのビット数であり、この実施の形態ではｎ２＝８としているので、２ｎ２＝２５６）ごとの上位ビットＸ_highに対応するＸの３分の４乗の計算結果となる。
【００７２】
これを図６により説明する。この図６で示される曲線は図３で示した入力データＸに対するＸの３分の４乗を近似した曲線と同じものであり、この図６において、２分割された上位ビットＸ_highと下位ビットＸ_lowの境界が図示で示される位置であるとすれば、逆量子化テーブルＱは下位ビットＸ_lowの取り得るそれぞれのデータ対応にＸの３分の４乗が計算され、その計算結果（非線形逆量子化演算結果）が格納されたテーブルとなる。つまり、下位ビットＸ_lowが８ビットであれば、２の８乗個（２５６個）のデータそれぞれに対して、Ｘの３分の４乗の計算結果が格納されたテーブルとなる。
【００７３】
一方、代表値テーブルＶは、この逆量子化テーブルＱが持つＸの３分の４乗の計算結果を超えた範囲で、しかも、入力データＸに対して２ｎ２（この実施の形態ではｎ２＝８としているので、２ｎ２＝２５６）ごとの上位ビットＸ_highの取り得るそれぞれのデータに対応するＸの３分の４乗の計算結果（非線形逆量子化演算結果）が代表値として格納されたテーブルとなる。
【００７４】
たとえば、図６において、上位ビットＸ_highのデータＸｈに対するＸの３分の４乗の計算結果（非線形逆量子化演算結果）はＶｈ、上位ビットＸ_highのデータＸｉに対するＸの３分の４乗の計算結果（非線形逆量子化演算結果）はＶｉ、上位ビットＸ_highのデータがＸｊに対するＸの３分の４乗の計算結果（非線形逆量子化演算結果）はＶｊというように、 Ｘの３分の４乗の計算結果（非線形逆量子化演算結果）が所定間隔（この例では２ｎ２＝２５６）ごとの代表値として格納されたテーブルとなる。
【００７５】
なお、上位ビットＸ_highの取り得るそれぞれのデータに対する非線形逆量子化演算結果間（図６において、たとえば、非線形逆量子化演算結果ＶｈとＶｉ、ＶｉとＶｊ、 ＶｊとＶｋなどの非線形逆量子化演算結果間）における非線形逆量子化演算結果は補間テーブルＧを用いて求める。
【００７６】
この補間テーブルＧは、下位ビットＸ_lowの取り得るデータ範囲（この例では２５６）ごとの上位ビットＸ_highの取り得るそれぞれのデータ対応の非線形逆量子化演算結果間をそれぞれ結ぶ線分（図６におけるＬ１，Ｌ２，Ｌ３など）の傾き値を、当該上位ビットＸ_highの取り得るそれぞれのデータ対応に予め計算して求めておき、その傾き値が上位ビットＸ_highの取り得るそれぞれのデータに対応付けられて格納されたテーブルである。なお、この補間の仕方については後述する。
【００７７】
今、復号化された入力データＸ（１６ビットとしている）の値が「０ｘ０２１５」（１６進法での表記）であったとすると、この場合も前述と同様、上位ビットＸ_highと下位ビットＸ_lowをそれぞれ８ビットづつに区切って、上位ビットＸ_highの８ビット分のデータ「０ｘ０２」をレジスタＲ１にコピーし、下位ビットＸ_lowの８ビット分のデータ「０ｘ１５」をレジスタＲ２にコピーする。
【００７８】
ここでは、１６ビットの入力データＸが「０ｘ０２１５」であるので、上位Ｘ_highの８ビット分のデータは「０ｘ０２」であり、“０”ではないので、入力データＸの値は大きいと判断する。
【００７９】
そこで、この場合は、上位ビットＸ_highのデータ「０ｘ０２」をKeyとして、図５に示されるような代表値テーブルＶを参照すると、上位８ビット分のデータは「０ｘ０２」に対する代表値（予め計算された非線形逆量子化演算結果）として、この例では「０１４９」が得られる。
【００８０】
ただし、この「０１４９」は、レジスタＲ１に格納された上位ビットＸ_highの８ビット分のデータ「０ｘ０２」に対する非線形逆量子化演算結果である。つまり、１６ビットの入力データＸにおいて、上位ビットＸ_highの８ビットが「０ｘ０２」、下位ビットＸ_lowの８ビットが「０ｘ００」の場合であるので、実際の入力データＸ「０ｘ０２１５」の下位ビットＸ_lowの８ビット分のデータ「０ｘ１５」（レジスタＲ２に格納されている）を考慮した非線形逆量子化演算結果を得る必要がある。本発明では、その下位ビットＸ_lowの８ビット分のデータを考慮した非線形逆量子化演算結果を得るために補間を行う。
【００８１】
前述した図６において、それぞれの代表値（たとえば、Ｖｈ，Ｖｉ，Ｖｊ，・・・など）は、入力データＸにおける上位ビットＸ_highの取り得る或るデータＸｈ，Ｘｉ，Ｘｊ，・・・ごとに実際にｘの３分の４乗を計算して得られた非線形逆量子化演算結果を代表値として示すものであり、これらの代表値Ｖｈ，Ｖｉ，Ｖｊ，・・・などは代表値テーブルＶに、上位ビットＸ_highの取り得るデータそれぞれに対応付けられて格納されている。
【００８２】
そして、これら各代表値Ｖｈ，Ｖｉ，Ｖｊ，・・・を直線Ｌ１，Ｌ２，Ｌ３，・・・で結ぶことによってその間を線形補間する。すなわち、レジスタＲ１に格納されている上位ビットＸ_highの８ビット分のデータに対しては、代表値テーブルＶから予め計算された計算結果（非線形逆量子化演算結果）を求め、レジスタＲ２に格納されている下位ビットＸ_lowの８ビット分のデータに対しては、線形補間によってその値を求め、この線形補間によって求められた値を代表値テーブルＶから予め計算された計算結果に加えることによって、入力データＸの求めるべき非線形逆量子化演算結果を得るようにする。
【００８３】
なお、線形補間によって、レジスタＲ２に格納されている下位８ビット分のデータに対する値を求める手法としては、上位ビットＸ_highの８ビット分のそれぞれデータに対する傾き値を計算しておき、その傾き値を上位ビットＸ_highの８ビット分のそれぞれデータに対応付けて補間テーブルＧに格納しておく。これによって、上位ビットＸ_highの８ビット分のそれぞれデータをKeyとして、それに対応する傾き値を得て、その傾き値を下位ビットＸ_lowに掛け算することによって求める。
【００８４】
ここで、 レジスタＲ１に格納されている上位ビットＸ_highのデータをKeyとして、代表値テーブルＶから得られる非線形逆量子化演算結果（代表値）をＶとし、補間テーブルＧから得られる傾き値をｇ、当該上位ビットＸ_highに続く下位ビットのデータ（レジスタＲ２に格納されているデータ）をＸ_lowで表せば、求めるべき入力データＸの非線形逆量子化演算結果Ｖｘは、
Ｖｘ＝Ｖ＋ｇ*Ｘ_low                                            （２）
で表すことができる。
【００８５】
ここで具体例を用いて説明する。復号化された１６ビットの入力データＸが上述したように「０ｘ０２１５」であったとする。図５に示すように、この入力データＸの上位ビットＸ_highの８ビット分のデータ「０ｘ０２」をKeyとして代表値テーブルＶを参照すると、入力データ「０ｘ０２」に対する値として「０１４９」が取得される。この「０１４９」は（２）式においてＶに相当する。
【００８６】
そして次に、入力データＸの上位ビットＸ_highの８ビット分のデータ「０ｘ０２」をKeyとして補間テーブルＧを参照すると、「０ｘ０２」に対して「０００３」の傾き値ｇを得る。この「０００３」は（２）式においてｇに相当する。これらの値を（２）式のＶ，ｇに代入するとともに、下位ビットＸ_lowの８ビット分のデータを（２）式のＸ_lowに代入して、（２）式を計算することによって、そのときの入力データＸの３分の４乗を近似した値を非線形逆量子化演算結果として得ることができる。
【００８７】
これを図６により説明する。「０ｘ０２１５」の入力データＸが図６におけるＸｉとＸｊの間に存在する値であるとすると、そのときの求められるべき逆量子化演算結果はＶｉ＋Ｖａとなる。
【００８８】
つまり、「０ｘ０２１５」の入力データＸの上位ビットＸ_highの８ビット分のデータ「０ｘ０２」はＸｉに対応することになり、そのデータ「０ｘ０２」をKeyとして代表値テーブルＶを参照すると、図５に示されるように、Ｖｉとして「０１４９」が取得される。また、そのデータ「０ｘ０２」をKeyとして補間テーブルＧを参照すると、同じく図５に示されるように、そのときの傾き値ｇとして「０００３」が取得される。
【００８９】
そして、レジスタＲ２に格納されている下位ビットＸ_lowを用いて、この下位ビットＸ_lowのデータに傾き値ｇを積算することで、Ｖａを求めることができる。そして、このＶａと代表値テーブルＶから得られた代表値Ｖｉを加算すれば、「０ｘ０２１５」の入力データＸに対する非線形逆量子化演算結果を求めることができる。
【００９０】
なお、入力データＸの上位ビットＸ_highが図６に示すＸｈ，Ｘｉ，Ｘｊ，・・・などである場合には、代表値テーブルＶからそれらの入力データに対する非線形逆量子化演算結果をそのまま求めることができるので、補間を行う必要はない。
【００９１】
図７は以上説明した処理手順を示すフローチャートであり、本発明の処理手順を一般化して説明するものである。図７において、入力データＸ（可変長符号復号化部で復号化されたデータ）に対し、まず、上位ビットＸ_highと下位ビットＸ_lowに分割し（ステップｓ１）、上位ビットＸ_highが“０”であるか否かを調べ（ステップｓ２）、上位ビットＸ_highが“０”であれば、下位ビットＸ_lowをKeyとして、予め作成された逆量子化テーブルＱを参照する（ステップｓ３）。
【００９２】
このように、上位ビットＸ_highが“０”である場合には、逆量子化テーブルＱを参照するだけの処理で、求めるべき非線形逆量子化演算結果（Ｘの３分の４乗）を得ることができる。
【００９３】
一方、ステップｓ２において、上位ビットＸ_highが“０”でないと判定された場合には、上位ビットＸ_highをKeyとして代表値テーブルＶを参照して、その上位ビットＸ_highに対する代表値Ｖを得るとともに、上位ビットＸ_highをKeyとして補間テーブルＧを参照して、そのときの傾き値ｇを得る（ステップｓ４）。
【００９４】
そして、ステップｓ４で得られた代表値Ｖと傾き値ｇとステップｓ１で分割された下位ビットＸ_lowを用いて、前述の（２）式、つまり、Ｖ＋ｇ*Ｘ_lowを計算して（ステップｓ５）、そのときの入力データＸに対する非線形逆量子化演算結果を得る。
【００９５】
以上ような処理を行うことによって、逆量子化処理部３で行うべき非線形逆量子化処理の演算量を大幅に削減することができる。すなわち、この逆量子化処理部３が行うべき処理として、可変長符号復号化部２で復号化された入力データＸの３分の４乗の計算があるが（図２参照）、本発明ではこの部分の演算量を大幅に削減することができる。
【００９６】
この処理を行うには、前述したように、復号化された入力データＸの取り得るそれぞれの入力データ（入力データが１６ビットであれば２の１６乗個）すべてについて、前述のＸの３分の４乗の計算をその都度行うか、それぞれの入力データ対応の非線形逆量子化演算結果がそれぞれの入力データ対応に記述されたテーブルを持つなどが考えられるが、膨大な演算量となったり、テーブルサイズがきわめて大きくなるといった問題がある。
【００９７】
これに対して、本発明は、入力データＸを上位ビットＸ_highと下位ビットＸ_lowに分割して、上位ビットＸ_highが０である場合には、入力データＸの値が小さい（精度を要する）として、その場合には、そのときの入力データＸの下位ビットＸ_lowをKeyとして逆量子化テーブルＱを参照して、Ｘの３分の４乗の値を得るようにしている。
【００９８】
この逆量子化テーブルＱは、入力データＸの取り得る範囲すべてに対応して作成されるものではなく、下位ビットＸ_lowの取り得るデータ範囲に対応させるだけで済むので、テーブルサイズを大幅に小さくすることができる。
【００９９】
また、上位ビットＸ_highが０でない場合には、入力データの値が大きい（精度をあまり要しない）として、その場合には、そのときの入力データＸの上位ビットＸ_highをKeyとして代表値テーブルＶの参照を行って、その上位ビットＸ_highに対する代表値Ｖを得るとともに、上位ビットＸ_highをKeyとして補間テーブルＧを参照して、そのときの傾き値ｇを得る。
【０１００】
そして、その代表値Ｖと傾き値ｇとそのときの下位ビットＸ_lowを用いて、前述の（２）式、Ｖ＋ｇ*Ｘ_lowを計算することによって、そのときの入力データＸに対し、Ｘの３分の４乗を近似した値を非線形逆量子化演算結果として得ることができる。
【０１０１】
なお、このときの代表値テーブルＶは、前述したように、入力データＸに対して、２ｎ２（ｎ２は下位ビットＸ_lowのビット数）ごとに、Ｘの３分の４乗を計算した結果（非線形逆量子化演算結果）を代表値として持つテーブルとなる。たとえば、下位ビットＸ_lowのビット数が８ビット（ｎ２＝８）であれば、２の８乗（＝２５６）ごとの非線形逆量子化演算結果が代表値として格納されたテーブルとなる。
【０１０２】
そして、このそれぞれの代表値ごとに傾き値ｇを予め計算しておき、その傾き値ｇと上位ビットＸ_highの取り得るそれぞれのデータとを対応付けたものを補間テーブルＧとして持つ。なお、これら代表値テーブルＶ、補間テーブルＧ、上述の下位ビットＸ_lowに対応した逆量子化テーブルＱをすべて合わせてもその合計のデータ量は、入力データＸが取り得るすべてのデータ範囲に対応したテーブルのデータ量よりも遥かに少ないデータ量とすることができる。
【０１０３】
ちなみに、入力データが１６ビットであるとすれば、その入力データが取り得るすべてのデータ範囲は２の１６乗となって６万個以上の入力データをKeyとしたテーブルを作成する必要があるが、本発明ではすべてのテーブルを合計してもそれよりも大幅に小さなデータ量で済ませることができ、小さな容量のメモリで対応することができる。上述の例では、代表値テーブルＶ、補間テーブルＧ、逆量子化テーブルＱのそれぞれのテーブルは、２の８乗個（＝２５６個）のデータに対応するテーブルとすることができ、それぞれ小さなテーブルサイズとすることができる。
【０１０４】
また、処理手順としても、上位ビットＸ_highが０である場合には、逆量子化テーブルを１回参照するだけで非線形逆量子化演算結果を得ることができ、上位ビットＸ_highが０でない場合にも、代表値テーブルＶと、補間テーブルＧをそれぞれ１回づつ参照したのちに、（２）式で示されるように、単純な積算と加算を行うだけで非線形逆量子化演算結果を得ることができるので、処理能力のそれ程高くない安価なＣＰＵでも十分対応できる。
【０１０５】
なお、本発明は以上説明した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲で種々変形実施可能となるものである。たとえば、前述の実施の形態では、処理対象の信号としてオーディオ信号を例にとって説明したが、本発明は、オーディオ信号だけではなく、本発明で説明したような処理が必要な信号にはすべて適用できる。また、前述の実施の形態の説明で用いた具体的な数値（たとえば、復号化された入力データのビット数、上位ビットＸ_highのビット数、下位ビットＸ_lowのビット数など）は一つの例にすぎず、これに限られるものではないことは勿論である。
【０１０６】
また、本発明は、以上説明した本発明を実現するための処理手順が記述された処理プログラムを作成し、その処理プログラムをフロッピィディスク、光ディスク、ハードディスクなどの記録媒体に記録させておくことができ、本発明はその処理プログラムが記録された記録媒体をも含むものである。また、ネットワークから当該処理プログラムを得るようにしてもよい。
【０１０７】
【発明の効果】
以上説明したように本発明によれば、復号化された入力データを上位ビットと下位ビットに分割して、上位ビットが０である場合には、入力データの値が小さい（精度を要する）として、その場合には、そのときの入力データの下位ビットのデータをKeyとして逆量子化テーブルを参照して、予め計算された非線形逆量子化演算結果を得るようにしている。この逆量子化テーブルは、入力データの取り得る範囲すべてに対応して作成されるものではなく、下位ビットの取り得るデータ範囲に対応させるだけで済むので、テーブルサイズを大幅に小さくすることができる。
【０１０８】
また、上位ビットが０でない場合には、入力データの値が大きい（精度をあまり要しない）として、その場合には、そのときの入力データの上位ビットをKeyとして代表値テーブルの参照を行って、その上位ビットに対する代表値を得るとともに、上位ビットとして補間テーブルを参照して、その時の傾き値を得る。そして、その代表値と傾き値とそのときの下位ビットを用いて、その時の入力データに対し、非線形逆量子化演算結果を簡単な計算によって求めることができる。なお、このときの代表値テーブルは、入力データに対して、２ｎ２（ｎ２は下位ビットのビット数）ごとのテーブルとなる。なお、これら代表値テーブル、補間テーブル、それに下位ビットに対応した逆量子化テーブルをすべて合わせても、その合計のデータ量は、入力データが取り得るすべてのデータ範囲に対応したテーブルのデータ量よりも遥かに少ないデータ量とすることができる。
【０１０９】
ちなみに、入力データが１６ビットであるとすれば、その入力データが取り得るすべてのデータ範囲は２の１６乗となって６万個以上の入力データをKeyとしたテーブルを作成する必要があるが、本発明では全てのテーブルを合計してもそれよりも大幅に小さなテーブ量で済ませることができ、小さな容量のメモリで対応することができる。
【０１１０】
また、処理手順としても、上位ビットが０である場合には、逆量子化テーブルを１回参照するだけで非線形逆量子化演算結果を得ることができ、上位ビットが０でない場合にも、代表値テーブルと、補間テーブルをそれぞれ１回づつ参照したのちに、単純な積算と加算を行うだけで非線形逆量子化演算結果を得ることができるので、処理能力のそれ程高くない安価なＣＰＵでも十分対応できる。
【０１１１】
このように、本発明は周波数領域に変換されたのち量子化され符号化されて圧縮されたデータを復号するする際の非線形逆量子化処理を少ない演算量で効率よくかつ高精度に行うことができる。
【０１１２】
特に、本発明はこのような周波数領域に変換されたのち量子化され符号化されて圧縮されたオーディオ信号を再生する機器に適用されることで、その効果を発揮し、本発明によって、復号化処理過程で行われる非線形逆量子化処理の演算量を大幅に少なくすることができ、しかも、演算に必要なテーブルなどのデータ量を大幅に減らすことができる。それによって、ＣＰＵやメモリを安価なもので対応することができ、機器そのものの低価格化や小型・軽量化を図ることができる。
【図面の簡単な説明】
【図１】本発明の信号復号装置の概略的な構成を示すブロック図である。
【図２】図１で示された逆量子化処理部で行われる非線形逆量子化演算処理の概略を説明する図である。
【図３】図２で示した非線形逆量子化演算結果（入力データＸの３分の４乗）を近似した曲線を示す図である。
【図４】本発明の信号復号処理において入力データが小さい場合（精度の要求度が高い場合）の非線形逆量子化演算結果を求める処理手順を説明する図である。
【図５】本発明の信号復号処理において入力データが大きい場合（精度の要求度が低い場合）の非線形逆量子化演算結果を求める処理手順を説明する図である。
【図６】図３で示した非線形逆量子化演算結果（入力データＸの３分の４乗）を近似した曲線を用いて、入力データが大きい場合（精度の要求度が低い場合）における代表値テーブル参照と補間テーブル参照による非線形逆量子化演算結果を求める処理を説明する図である。
【図７】本発明の全体的な処理手順を説明するフローチャートである。
【符号の説明】
１  ビットストリーム解析部
２  可変長符号復号化部
３  逆量子化処理部
４  周波数／時間変換部
５  サイド情報復号化部
Ｘ_high  上位ビット
Ｘ_low  下位ビット
Ｒ１  上位ビットＸ_highのデータを格納するレジスタ
Ｒ２  下位ビットＸ_lowのデータを格納するレジスタ
Ｑ  逆量子化テーブル
Ｖ  代表値テーブル（取得された代表値）
Ｇ  補間テーブル
ｇ  傾き値
Ｘ  入力データ
【図１】
0003979026.tif 000003
【図２】
0003979026.tif 000004
【図３】
0003979026.tif 000005
【図４】
0003979026.tif 000006
【図５】
0003979026.tif 000007
【図６】
0003979026.tif 000008
【図７】
0003979026.tif 000009