JP3979026B2 - 信号復号方法および信号復号装置ならびに信号復号処理プログラムを記録した記録媒体 - Google Patents
信号復号方法および信号復号装置ならびに信号復号処理プログラムを記録した記録媒体 Download PDFInfo
- Publication number
- JP3979026B2 JP3979026B2 JP2001101649A JP2001101649A JP3979026B2 JP 3979026 B2 JP3979026 B2 JP 3979026B2 JP 2001101649 A JP2001101649 A JP 2001101649A JP 2001101649 A JP2001101649 A JP 2001101649A JP 3979026 B2 JP3979026 B2 JP 3979026B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- input data
- inverse quantization
- operation result
- bits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
本発明は、信号復号方法および信号復号装置ならびに信号復号処理プログラムを記録した記録媒体に関し、特に、音楽や音声などのオーディオ信号が周波数領域に変換されたのち量子化され符号化されて圧縮されたデータを復号する信号復号方法および信号復号装置ならびに信号復号処理プログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
オーディオ信号を効率的に符号化するさまざまな手法が提案されている。オーディオ信号など20KHZ程度の帯域を有する信号は、最近、MPEG(Motion Picture Experts Group)オーディオ方式などを用いて符号化されている。
【0003】
このMPEGオーディオ方式に代表される符号化方式は、時間軸のディジタルオーディオ信号を直交変換を用いて周波数軸に変換し、その周波数軸上の情報を、人間の聴覚の感度特性を考慮して、人間の聴覚に重要な情報から優先的に情報量を与えて行く非線形量子化を行う。これは、人間の聴覚は小さい音の変化には敏感であるが大きな音の変化にはあまり敏感でないことを利用し、周波数軸上に変換されたデータにおける音の変化に強さにおいて、小さな音に対しては多くの情報を割り当て、大きな音に対しては情報量の割り当てを少なくするといった処理である。
【0004】
そして、さらに、その非線形量子化結果に対し可変長符号化を行ったのち、その符号化されたデータをビットストリームの圧縮データとして出力する。
【0005】
なお、MPEGオーディオ方式に関しては、たとえば、ISO/IEC標準ISO−11172−3およびISO13818−3などに述べられている。
【0006】
【発明が解決しようとする課題】
上述したような手法を用いて符号化された圧縮データを復号化する際は、符号化と逆の手順によって行われる。すなわち、ビットストリームの可変長符号データを可変長符号復号化手段で復号化し、それを逆量子処理手段で非線形逆量子化したのち、周波数/時間変換手段によって周波数軸から時間軸のデータに変換してオーディオ信号として再生する。
【0007】
ところで、本来のオーディオ信号は時間軸においては、高々16ビット程度の分解能の信号であるが、これを周波数軸に変換すると、そのダイナミックレンジは非常に大きくなる。たとえば、16ビット程度の分解能の信号に対して単純に周波数軸に変換した場合には、32ビット程度(理想的には80ビット以上)を用いないとその情報を表現できないものとなる。
【0008】
そこで、上述したように、 MPEGオーディオ方式では、符号化する過程において非線形量子化を行い、それをさらに可変長符号化処理を施してデータ圧縮を行っている。このMPEGオーディオ方式で行われる非線形量子化処理は、上述のISO/IEC標準ISO−11172−3に示されている下式によって表される。
【0009】
【数1】
【0010】
この(1)式を用いて非線形量子化処理を行うことによって、人間の聴覚に与える影響を最小限にとどめながら、圧縮率の向上を図っている。
【0011】
しかしながら、その代償として、非線形量子化あるいは非線形逆量子化を行う際は、上述した式を用いた浮動小数点演算を行う必要があり、演算量が非常に多くなる。したがって、このような量子化あるいは逆量子化を行う際は、それに見合った処理能力の高いハードウエアを必要とする。
【0012】
なお、この(1)式において、is(i)の3分の4乗の計算項のあとに続く計算項は定数であるので、その定数部分の値は予め求めておくことができ、その都度の計算を行う必要はないので、演算量に与える影響は少ないが、 is(i)の3分の4乗の計算項は、入力されるデータについて、その都度、計算を行う必要がある。特に、非整数のべき乗(有理数乗)などの演算は演算量が多いので、演算負荷が非常に大きくなって、処理能力の高いハードウエアが必要となり、演算コストが非常に高くなる。
【0013】
特に、このような圧縮データを再生する携帯型のオーディオ機器などは、小型・軽量化さらには低コストが要求されるので、使用するCPUの能力に大きな制約があるのが一般的である。
【0014】
そこで、このような非線形逆量子化の演算負荷を小さくする手法としては、入力してくるデータすべてについて予め上述した(1)式を処理能力の高い計算機を用いて予め計算して、入力される可能性のあるそれぞれの入力データに対する非線形逆量子化演算結果を格納した逆量子化テーブルを作成しておき、その逆量子化テーブルをオーディオ機器のROMなどに格納しておく手法がある。
【0015】
これによれば、入力されてくるデータをKeyとしてその逆量子化テーブルを参照するだけで、求めるべき非線形逆量子化演算結果を得ることができ、演算負荷は大幅に削減できるが、入力される可能性のあるデータ範囲が大きいと、逆量子化テーブルの持つデータ量は膨大なものとなり、それを格納するROMも記憶容量の大きなものを使用せざる得ない。
【0016】
ちなみに、逆量子化手段に入力されるデータが16ビットであるとすれば、2の16乗個の入力データに対する非線形逆量子化演算結果を持つ必要があり、逆量子化テーブルがROMの多くの領域を占有してしまうことにもなる。
【0017】
上述したように、携帯型のオーディオ機器などは小型・軽量で低コスト化が要求される場合が多く、ROMの容量もできる限り小さなもので対応できることが望ましく、ある演算を行う際の演算量を削減するために大きな容量のROMを使用せざるを得ないというのは非現実的である。
【0018】
そこで本発明は、上述したような非線形逆量子化演算処理を安価なハードウエアで高速に、しかも、高精度に実現することを目的としている。
【0019】
【課題を解決するための手段】
上述した目的を達成するために、本発明の信号復号方法は、周波数軸上のデータに変換されたのち、精度の要求度に応じた非線形量子化がなされ、さらに符号化されることによって圧縮された圧縮データを入力データとし、この入力データとしての圧縮データを復号化したのちに精度の要求度に応じた非線形逆量子化処理し、それを時間軸のデータに変換する信号復号方法であって、精度の要求度が高い前記入力データに対しては、復号化されたそれぞれの入力データをKeyとしてそれぞれの圧縮データ対応の非線形逆量子化演算結果を取得できる逆量子化テーブルを用意し、精度の要求度が低い前記入力データに対しては、復号化された所定間隔ごとのそれぞれの入力データをKeyとして当該所定間隔ごとの入力データ対応の非線形逆量子化演算結果を代表値として取得できる代表値テーブルを用意するとともに、これら各代表値の間を補間可能な補間テーブルとを用意する。そして、前記精度の要求度に応じた非線形逆量子化処理を行う際、前記復号化された入力データの精度の要求度を判定する。また、精度の要求度が高い入力データであると判定された場合には、その入力データをKeyとして前記逆量子化テーブルを参照することで、その入力データに対する非線形逆量子化演算結果を取得し、精度の要求度が低い入力データであると判定された場合には、その入力データをKeyとして前記代表値テーブルまたはその代表値テーブルと補間テーブルの両方を参照することで、その入力データに対する非線形逆量子化演算結果を得るようにしている。
【0020】
また、本発明の信号復号装置は、周波数軸上のデータに変換されたのち、精度の要求度に応じた非線形量子化がなされ、さらに符号化されることによって圧縮された圧縮データを入力データとし、この入力データとしての圧縮データを復号化したのちに精度の要求度に応じた非線形逆量子化処理し、それを時間軸のデータに変換する信号復号装置であって、この信号復号装置は、前記符号化された入力データを復号化する復号化手段と、その復号化されたデータを非線形逆量子化する逆量子化手段と、非線形逆量子化されたデータを時間軸のデータに変換する周波数/時間変換手段を構成要素として含んでいる。そして、前記逆量子化手段は、精度の要求度が高い前記入力データに対するテーブルとして、復号化されたそれぞれの入力データをKeyとしてそれぞれの入力データ対応の非線形逆量子化演算結果を取得できる逆量子化テーブルを有し、精度の要求度が低い前記入力データに対するテーブルとして、復号化された所定間隔ごとのそれぞれの入力データをKeyとして当該所定間隔ごとの入力データ対応の非線形逆量子化演算結果を代表値として取得できる代表値テーブルを有し、さらに、これら各代表値の間を補間可能な補間テーブルを有している。このような構成において、前記精度の要求度に応じた非線形逆量子化処理を行う際は、復号化された入力データの精度の要求度を判定し、精度の要求度が高い入力データであると判定された場合には、その入力データをKeyとして前記逆量子化テーブルを参照することで、その入力データに対する非線形逆量子化演算結果を取得する。また、精度の要求度の低い入力データであると判定された場合には、その入力データをKeyとして前記代表値テーブルまたはその代表値テーブルと補間テーブルの両方を参照することで、その入力データに対する非線形逆量子化演算結果を得るようにしている。
【0021】
また、本発明の信号復号処理プログラムを記録した記録媒体は、周波数軸上のデータに変換されたのち、精度の要求度に応じた非線形量子化がなされ、さらに符号化されることによって圧縮された圧縮データを入力データとし、この入力データとしての圧縮データを復号化したのちに精度の要求度に応じた非線形逆量子化処理し、それを時間軸のデータに変換する信号復号処理プログラムを記録した記録媒体であって、その処理プログラムは、前記精度の要求度に応じた非線形逆量子化処理を行う際は、復号化された入力データの精度の要求度を判定する手順と、精度の要求度が高い入力データであると判定された場合には、当該入力データをKeyとしてそれぞれの入力データ対応に非線形逆量子化演算結果を取得できる逆量子化テーブルを参照してその入力データに対する非線形逆量子化演算結果を取得する手順と、精度の要求度が低い圧縮データであると判定された場合には、当該入力された所定間隔ごとのそれぞれの入力データをKeyとして当該所定間隔ごとの入力データ対応の非線形逆量子化演算結果を代表値として取得できる代表値テーブルまたはこの代表値テーブルと各代表値の間を補間可能な補間テーブルの両方を参照してその入力データに対する非線形逆量子化演算結果を得る手順と を含むものである。
【0022】
これら各発明において、前記入力データの精度の要求度の判定は、復号化された入力データのビット数をn(nは正の整数)としたとき、当該入力データを上位ビット(ビット数をn1とする)と下位ビット(ビット数をn2とし、n1+n2=n)に分割して、上位ビットのデータが0であるか否かを判定し、上位ビットのデータが0である場合には、前記入力データの精度の要求度は高く、上位ビットのデータが0でない場合には、前記入力データの精度の要求度は低いと判定するようにしている。
【0023】
また、前記逆量子化テーブルは、前記下位ビットの取り得るデータ範囲のそれぞれのデータ対応に予め計算された非線形逆量子化演算結果が前記下位ビットの取り得るそれぞれのデータに対応付けられて格納されたテーブルであって、前記代表値テーブルは、当該下位ビットの取り得るデータ範囲間隔ごとの前記上位ビット側の取り得るそれぞれのデータ対応に予め計算された非線形逆量子化演算結果が前記上位ビット側の取り得るそれぞれのデータに対応付けられて格納されたテーブルであって、前記補間テーブルは、前記下位ビットの取り得るデータ範囲ごとの前記上位ビットの取り得るそれぞれのデータ対応の非線形逆量子化演算結果間をそれぞれ結ぶ線分の傾き値を、当該上位ビット側の取り得るそれぞれのデータ対応に予め計算して求めておき、その傾き値が前記上位ビット側の取り得るそれぞれのデータに対応付けられて格納されたテーブルとしている。
【0024】
また、前記精度の要求度の高い入力データであると判定された場合におけるその入力データに対する非線形逆量子化演算結果を得る処理は、当該入力データの下位ビットで表現されるデータをKeyとして前記逆量子化テーブルを参照し、この逆量子化テーブルから予め計算された非線形逆量子化演算結果を取得する処理である。
【0025】
一方、前記精度の要求度の低い入力データであると判定された場合におけるその入力データに対する非線形逆量子化演算結果を得る処理は、その入力データの上位ビットで表現されるデータをKeyとして前記代表値テーブルを参照し、この代表値テーブルから予め計算された非線形逆量子化演算結果を取得し、当該上位ビットに続く下位ビットのデータに対応する補間が必要な場合には、前記代表値テーブルから予め計算された非線形逆量子化演算結果を取得したあと、その上位ビットのデータをKeyとして前記補間テーブルを参照してその上位ビットに対応する傾き値を取得して、当該傾き値から当該上位ビットに続く下位ビットのデータに対応する補間値を求め、その補間値を前記代表値テーブルから得られた非線形逆量子化演算結果に加えて、非線形逆量子化演算結果として得るようにしている。
【0026】
また、前記精度の要求度の低い入力データであると判定された場合におけるその入力データに対する非線形逆量子化演算結果は、求めるべき非線形逆量子化演算結果をVx、前記代表値テーブルから得られた非線形逆量子化演算結果をV、前記補間テーブルから得られた傾き値をg、当該上位ビットに続く下位ビットのデータをX_lowで表したとき、Vx=V+g*X_low で求めるようにしている。
【0027】
このように本発明は、圧縮データの復号処理過程で行われる精度の要求度に応じた非線形逆量子化処理を行う際に、入力される圧縮データ(入力データ)の精度の要求度を判定し、精度の要求度が高い入力データである場合には、予め作成された逆量子化テーブルを参照してその入力データに対する非線形逆量子化演算結果を取得し、 精度の要求度の低い入力データであると判定された場合には、代表値テーブルまたは代表値テーブルと補間テーブルの両方を参照してその圧縮データに対する非線形逆量子化結果を得るようにしている。
【0028】
このように、精度の要求度が高い入力データに対しては、個々のデータ対応の非線形逆量子化演算結果を取得できるテーブルを用いて非線形逆量子化演算結果を得るようにし、精度の要求度の低い入力データに対しては、代表値テーブルまたは代表値テーブルと補間テーブルの両方を参照して非線形逆量子化演算結果を得るようにしているので、前述の(1)式におけるis(i)の3分の4乗の計算項をそのまま計算するのに比べると、演算量を大幅に少なくすることができ、CPUの演算負荷を大幅に軽減することができる。
【0029】
また、入力される可能性のあるデータ範囲の全ての入力データに対応した逆量子化テーブルを持つ場合に比べると、本発明で用いる逆量子化テーブル、代表値テーブル、補間テーブルをすべて合計してもそのデータ量を大幅に少なくすることができ、テーブルを格納するメモリの容量を小さくすることができる。
【0030】
これらによって、本発明は、安価なハードウエアで高速に信号の復号処理が可能となり、しかも、精度の要求されるデータに対しては個々のデータ対応の非線形逆量子化演算結果をそのまま取得することができるので、高精度な復号処理を実現できる。したがって、処理対象の信号が、たとえば、オーディオ信号である場合、高品質な再生音を得ることができ、かつ、安価なハードウエアで実現できることから携帯型の安価な機器にも搭載し易いものとなる。
【0031】
また、入力データの精度の要求度の判定は、当該入力データの上位ビット側のデータが0であるか否かを判定し、上位ビット側のデータが0である場合には、入力データの精度の要求度は高く、上位ビット側のデータが0でない場合には、入力データの精度の要求度は低いと判断するようにしている。
【0032】
これは、オーディオ信号の場合、人間の聴覚は小さい音の変化には敏感であるが大きな音の変化にはあまり敏感でないことを利用して、非線形逆量子化対象となる入力データ(復号化されたデータ)の値が大きいか小さいかを判定し、それによって入力データの精度の要求度を判定するものである。本発明では、入力データを上位ビットと下位ビットに2分割して、上位ビットのデータが0であれば、入力データの値は小さく、精度の要求度は高いと判断し、逆に、上位ビットのデータが0でなければ、入力データの値は大きく、精度の要求度は低いと判断するようにしているので、精度の要求度の判断を簡単な処理で適正に行うことができる。
【0033】
また、本発明で用いる逆量子化テーブルは、下位ビットの取り得るデータ範囲の個々のデータ対応に予め計算された非線形逆量子化演算結果が前記下位ビットの取り得る個々のデータに対応付けられて格納されたテーブルである。
【0034】
これによって、たとえば、下位ビットが8ビットであれば、2の8乗個(256個)の入力データ対応の非線形逆量子化演算結果が格納されたテーブルとすればよい。
【0035】
また、代表値テーブルは、当該下位ビットの取り得るデータ範囲間隔ごとの前記上位ビット側の取り得るそれぞれのデータ対応に予め計算された非線形逆量子化演算結果が前記上位ビット側の取り得る個々のデータに対応付けられて格納されたテーブルである。
【0036】
このように、代表値テーブルは、下位ビットの取り得るデータ範囲間隔ごとの上位ビット側の取り得るそれぞれのデータ対応のテーブルであるので、この場合も、たとえば、下位ビットが8ビットであれば、2の8乗個(256個)の上位ビット側の取り得るそれぞれのデータ対応であり、上位ビットが8ビットであれば、256個の入力データに対応したテーブルとすればよい。
【0037】
また、補間テーブルは、前記下位ビットの取り得るデータ範囲ごとの前記上位ビットの取り得る個々のデータ対応の非線形逆量子化演算結果間をそれぞれ結ぶ線分の傾き値を、当該上位ビット側の取り得る個々のデータ対応に予め計算して求めておき、その傾き値が前記上位ビット側の取り得る個々のデータに対応付けられて格納されたテーブルである。したがって、この補間テーブルも代表値テーブルと同様、上位ビットが8ビットであれば、256個の入力データに対応したテーブルとすればよい。
【0038】
このように、本発明では、3つのテーブルを有するが、それぞれのテーブルはどれも小さなテーブルサイズで済み、これら3つのテーブルを合計したとしても入力データが取り得る範囲全てに対応した逆量子化テーブルに比べれば大幅にデータ量を少なくすることができ、これらのテーブルのメモリの占有率を低く抑えることができ、使用するメモリの容量を小さなものとすることが可能となる。
【0039】
また、前記精度の要求度の高い入力データであると判定された場合におけるその圧縮データに対する非線形逆量子化演算結果を得る処理は、前記下位ビットのデータをKeyとして前記逆量子化テーブルを参照し、この逆量子化テーブルから予め計算された非線形逆量子化演算結果を取得する処理であるので、逆量子化テーブルを参照するだけの処理で、その入力データに対する適正な非線形逆量子化演算結果を得ることができる。
【0040】
また、精度の要求度の低い入力データであると判定された場合におけるその圧縮データに対する非線形逆量子化演算結果を得る処理は、前記上位ビットのデータをKeyとして前記代表値テーブルを参照し、この代表値テーブルから非線形逆量子化演算結果を取得し、さらに、その上位ビットのデータから前記補間テーブルを参照してその上位ビットに対応する傾き値を取得して、当該傾き値から当該上位ビットに続く下位ビットに対応する補間値を求め、その補間値を前記代表値テーブルから得られた非線形逆量子化演算結果に加えて、非線形逆量子化演算結果として得る処理である。
【0041】
このように、精度の要求度の低い入力データである場合には、代表値テーブルを参照して、そのあと、補間テーブルを参照し、それによって得られた値を用いて、単純な加算と積算を行うだけで、非線形逆量子化演算結果を得ることができる。
【0042】
具体的な演算としては、求めるべき非線形逆量子化演算結果をVx、前記代表値テーブルから得られた非線形逆量子化演算結果をV、前記補間テーブルから得られた傾き値をg、当該上位ビットに続く下位ビットのデータをX_lowとしたとき、Vx=V+g*X_low で求めることができ、2回のテーブル参照(代表値テーブルと補間テーブルの参照)と、1回の積算と1回の加算だけの単純な演算を行えばよい。しかも、得られた結果は近似地ではあるが信頼性の高い高精度な値となる。なお、精度の要求度の低い入力データの場合であっても、その入力データの値によっては、補間を行わずに代表値テーブルのみによって非線形逆量子化演算結果を取得できる場合もある。
【0043】
【発明の実施の形態】
以下、本発明の実施の形態について説明する。なお、この実施の形態で説明する内容は、本発明の信号復号方法および信号復号装置についての説明であるとともに、本発明の信号復号処理プログラムを記録した記録媒体における信号復号処理プログラムの具体的な処理内容をも含むものである。
【0044】
図1は本発明の信号復号装置の構成を示すもので、入力データである圧縮データのビットストリームを解析するビットストリーム解析部1、可変長符号化データを復号する可変長符号復号化部2、復号化されたデータを非線形逆量子化する逆量子化処理部3、非線形逆量子化されたデータを時間軸のデータに変換してオーディを信号として出力する周波数/時間変換部4、符号化や量子化をどのように行ったかなど、この信号復号化装置が復号化処理を行うに必要な様々な規則などが記述された情報(サイド情報という)を復号化するサイド情報復号化部5を有した構成となっている。
【0045】
この図1に示される信号復号装置に入力される圧縮データは、前述したように、時間軸のディジタルオーディオ信号を直交変換を用いて周波数軸上のデータに変換し、その周波数軸上のデータを、人間の聴覚の感度特性を考慮して、人間の聴覚に重要な情報に対しては多くの情報量を与え、逆に、人間の聴覚にあまり重要でない情報に対しては与える情報量を少なくするといった非線形量子化を行い、さらに、それを可変長符号化することによって圧縮されたデータである。
【0046】
このような圧縮データが図1の信号復号装置の入力として与えられ、上述したように、ビットストリーム解析部1によってビットストリーム解析されてサイド情報符号化データとオーディオ符号化データとに分離され、サイド情報符号化データはサイド情報復号部5に与えられ、オーディオ符号化データは可変長符号復号化部2に与えられる。
【0047】
そして、可変長符号復号化部2では、サイド情報復号化部5で復号化されたサイド情報を用いてオーディオ符号化データを復号し、ある長さ(ここでは16ビットとする)の復号化データが得られる。この復号化データは逆量子化処理部3で非線形逆量子化処理され、たとえば、32ビット程度(理想的には80ビット以上)のデータが得られる。
【0048】
この逆量子化処理部3で非線形逆量子化されたデータは、周波数軸上のデータであり、ここでは図示しないが、図で表すとすれば、周波数を横軸に、音の強さを縦軸にとったデータとなっており、この周波数軸のデータを周波数/時間変換部4で時間軸のデータに変換され、オーディオ信号として出力される。
【0049】
本発明は逆量子化処理部3で行われる非線形逆量子化処理に大きな特徴があり、この非線形逆量子化処理を効率よく、しかも、高精度に実現するものである。
【0050】
ここで、非線形逆量子化処理として、前述した(1)式のis(i)の3分の4乗という計算項が存在する。つまり、図2に示すように、可変長符号復号化部2で復号化されたデータ(ここでは16ビット)に対し、逆量子化処理部3で非線形逆量子化処理を行って、たとえば、32ビットのデータとして出力するが、本発明はその非線形逆量子化処理としてのis(i)の3分の4乗(以下では、is(i)をXと置いて、Xの3分の4乗とする)の計算項を効率よく、しかも、高精度に実現するものである。
【0051】
図3はXの3分の4乗の近似曲線を示すもので、X(16ビットの入力データ、つまり、可変長符号復号化部2で復号化されたデータ)に対する非線形逆量子化演算結果(Xの3分の4乗)を近似した曲線を示すものである。
【0052】
この図3からもわかるように、入力データXの値が小さいときは入力データXの変化に対し、それぞれの入力データに対するXの3分の4乗の値は細かい変化として出力されるが、入力データXの値が大きくなると、入力データXの変化に対し、それぞれの入力データに対するXの3分の4乗の値は大きな変化として出力される。
【0053】
これは、前述したように、人間の聴覚の感度特性を考慮して、人間の聴覚に重要な情報に対しては多くの情報量を与え、逆に、人間の聴覚にあまり重要でない情報に対しては与える情報量を少なくするといった非線形量子化を行った結果である。
【0054】
ここで、入力データとして取り得る全てのXの値に対して、Xの3分の4乗を予め計算したテーブルを持てば、全ての入力データの値をそれぞれKeyとして、そのテーブルを参照することによって、それぞれの入力データに対するXの3分の4乗の値が即座に取得できるが、入力データを16ビットとした場合、2の16乗個もの入力データに対応した非線形逆量子化演算結果を持ったテーブルが必要となり、そのテーブルサイズは膨大なものとなって、実用的でないことは既に述べた。
【0055】
そこで、本発明は精度の要求度が高い入力データ、つまり、入力データXの値が小さい場合は、それぞれの入力データ対応に、非線形逆量子化演算(Xの3分の4乗)を予め行っておき、その演算結果をそれぞれの入力データに対応付けて格納した逆量子化テーブルを作成し、その逆量子化テーブルを参照して、それぞれの入力データに対応する非線形逆量子化演算結果を求めるようにする。
【0056】
また、精度の要求度の低い入力データ、つまり、入力データXの値が大きい場合には、所定間隔ごとの入力データ対応に、非線形逆量子化演算(Xの3分の4乗)を予め行っておき、その演算結果を代表値として、所定間隔ごとの入力データに対応付けて格納した代表値テーブルを作成するとともに、これら各代表値の間を補間可能な補間テーブルを作成し、この代表値テーブルまたは代表値テーブルと補間テーブルの両方を参照して、それぞれの入力データに対応する非線形逆量子化値を求めるようにする。 以下、具体的な例を用いて説明する。
【0057】
ここで、復号化された入力データX(nビットで構成されるものとする)は、図4(a)に示されるように、図示の右端側を最下位ビットLSBとし、図示の左端側を最上位ビットMSBとする。そして、この入力データの値が大きいか小さいかを判別するために、入力データXを上位ビットX_high(n1ビットで構成されるものとする)と下位ビットX_low(n2ビットで構成されるものとし、n1+n2=nとする)に分けて考え、上位ビットX_highと下位ビットX_lowのデータ内容によって、その入力データの値が大きいか小さいかを判断する。
【0058】
この実施の形態では、復号化された16ビットの入力データXに対し、n1=n2=8ビットとなるような境界を決めるものとする。そして、上位ビットX_highの各ビットがすべて“0”で構成されていれば、つまり、上位ビットX_highの値が0あれば、その入力データXは値が小さく、精度の要求度が高いとし、上位ビットX_highが0でなければ、その入力データXは値が大きく、精度の要求度が低いとする。
【0059】
今、可変長符号復号化部2で復号化された16ビットの入力データXが逆量子化処理部3に入力されると、まず、上位ビットX_highと下位ビットX_lowをそれぞれ8ビットづつに2分割して、上位ビットX_highと下位ビットX_lowを図4(b)に示すように、それぞれ一時記憶手段としてのレジスタR1,R2にコピーする。このとき、レジスタR1は下位ビットX_lowの8ビット分のデータを“0”とし、レジスタR2は上位ビットX_highの8ビット分のデータを“0”としておく。
【0060】
そして、上位ビットX_highの8ビット分のデータが“0”であったとすると、入力データXの値は小さいと判断し、この場合は、予め用意された逆量子化テーブルQを参照して、それぞれの入力データに対応する非線形逆量子化演算(Xの3分の4乗)結果を取得する。
【0061】
この逆量子化テーブルQは、下位ビットX_lowの取り得るデータ全てに対応したXの3分の4乗の計算結果が、下位ビットX_lowの取り得るデータ全てに対応付けられて格納された内容となっている。したがって、逆量子化テーブルQを参照する際は、下位ビットX_lowのデータをKeyとして、その下位ビットX_lowのデータに対応する値(非線形逆量子化演算結果)を取得すればよい。
【0062】
たとえば、レジスタR2における下位ビットX_lowの8ビットのデータが「0x03」(16進法の表記)であったとすると、この「0x03」をKeyとして逆量子化テーブルQを参照すると、それに対するValueとしての非線形逆量子化演算結果として、たとえば、「0005」が得られる。
【0063】
この逆量子化テーブルQは、上位ビットX_highの8ビットが“0”のときの下位ビットX_lowの8ビットの取りうるデータ全てに対応して、Xの3分の4乗を計算した結果そのものが、下位ビットX_lowの8ビットの取りうるデータそれぞれに対応付けられているため、入力データXに対して、適正な非線形逆量子化演算結果が得られることになる。
【0064】
このように、入力データXの値が小さい場合、つまり、人間の聴覚に敏感で精度の要求度の高い入力データに対しては、逆量子化テーブルQを参照するだけでその入力データに対する適正な非線形逆量子化演算結果を得ることができる。
【0065】
しかも、このときの処理は、1回のテーブル参照(逆量子化テーブルQの参照)を行うだけであるので、高速な処理が可能となる。また、逆量子化テーブルQはこの実施の形態では、上述したように、上位ビットX_highの8ビットが“0”のときの下位ビットX_lowの8ビットが取り得るそれぞれのデータに対する計算結果(非線形逆量子化演算結果)だけを持てばよいので、全ての入力データ範囲に対応させた計算結果を持つ場合に比べて、テーブルサイズ大幅に小さくすることが可能となる。
【0066】
ちなみに、この実施の形態では入力データ(可変長符号復号化部2で復号化されたデータ)を16ビットとしているので、全ての入力データに対応できる逆量子化テーブルを作成しようとした場合、2の16乗個もの入力データに対応した非線形逆量子化演算結果を持ったテーブルが必要となり、そのテーブルサイズは膨大なものとなるが、この逆量子化テーブルQは、2の8乗個の入力データに対応した非線形逆量子化演算結果を持てばよい。
【0067】
以上は上位ビットX_highの8ビットが“0”であった場合、つまり、入力データの値が小さい(精度の要求度が高い)場合の非線形逆量子化処理であったが、次に上位ビットX_highの8ビットが“0”でない場合、つまり、入力データの値が大きい(精度の要求度が低い)場合の非線形逆量子化処理について図5を参照しながら説明する。
【0068】
この場合も、16ビットの入力データXが逆量子化処理部3に入力されると、まず、図5(a)に示すように、上位ビットX_highと下位ビットX_lowをn1ビットとn2ビットに分けて(n1=n2=8)、この上位ビットX_highと下位ビットX_lowのデータを図5(b)に示すように、それぞれ一時記憶手段としてのレジスタR1,R2にコピーする。このとき、レジスタR1は下位ビットX_lowの8ビット分のデータを“0”とし、レジスタR2は上位ビットX_highの8ビット分のデータを“0”としておく。
【0069】
このようにして、レジスタR1,R2に入力データXの上位ビットX_highと下位ビットX_lowをコピーしたあと、このレジスタR1の上位ビットX_highのデータが“0”であるか否かを判定し、“0”でないと判定されると、入力データXの値は大きいと判断する。
【0070】
また、この図5では代表値テーブルVと補間テーブルGが存在する。代表値テーブルVは、上位ビットX_highの取り得るそれぞれのデータ対応に、上述のXの3分の4乗を計算し、その計算結果(非線形逆量子化演算結果)が上位ビットX_highの取り得るそれぞれのデータに対応付けられて格納されたテーブルである。したがって、入力データにおける上位ビットX_highのデータをKeyとしてその上位ビットX_highのデータ対応の非線形逆量子化演算結果を取得することができる。
【0071】
なお、この代表値テーブルVは、入力データXに対して2n2(このn2は下位ビットX_lowのビット数であり、この実施の形態ではn2=8としているので、2n2=256)ごとの上位ビットX_highに対応するXの3分の4乗の計算結果となる。
【0072】
これを図6により説明する。この図6で示される曲線は図3で示した入力データXに対するXの3分の4乗を近似した曲線と同じものであり、この図6において、2分割された上位ビットX_highと下位ビットX_lowの境界が図示で示される位置であるとすれば、逆量子化テーブルQは下位ビットX_lowの取り得るそれぞれのデータ対応にXの3分の4乗が計算され、その計算結果(非線形逆量子化演算結果)が格納されたテーブルとなる。つまり、下位ビットX_lowが8ビットであれば、2の8乗個(256個)のデータそれぞれに対して、Xの3分の4乗の計算結果が格納されたテーブルとなる。
【0073】
一方、代表値テーブルVは、この逆量子化テーブルQが持つXの3分の4乗の計算結果を超えた範囲で、しかも、入力データXに対して2n2(この実施の形態ではn2=8としているので、2n2=256)ごとの上位ビットX_highの取り得るそれぞれのデータに対応するXの3分の4乗の計算結果(非線形逆量子化演算結果)が代表値として格納されたテーブルとなる。
【0074】
たとえば、図6において、上位ビットX_highのデータXhに対するXの3分の4乗の計算結果(非線形逆量子化演算結果)はVh、上位ビットX_highのデータXiに対するXの3分の4乗の計算結果(非線形逆量子化演算結果)はVi、上位ビットX_highのデータがXjに対するXの3分の4乗の計算結果(非線形逆量子化演算結果)はVjというように、 Xの3分の4乗の計算結果(非線形逆量子化演算結果)が所定間隔(この例では2n2=256)ごとの代表値として格納されたテーブルとなる。
【0075】
なお、上位ビットX_highの取り得るそれぞれのデータに対する非線形逆量子化演算結果間(図6において、たとえば、非線形逆量子化演算結果VhとVi、ViとVj、 VjとVkなどの非線形逆量子化演算結果間)における非線形逆量子化演算結果は補間テーブルGを用いて求める。
【0076】
この補間テーブルGは、下位ビットX_lowの取り得るデータ範囲(この例では256)ごとの上位ビットX_highの取り得るそれぞれのデータ対応の非線形逆量子化演算結果間をそれぞれ結ぶ線分(図6におけるL1,L2,L3など)の傾き値を、当該上位ビットX_highの取り得るそれぞれのデータ対応に予め計算して求めておき、その傾き値が上位ビットX_highの取り得るそれぞれのデータに対応付けられて格納されたテーブルである。なお、この補間の仕方については後述する。
【0077】
今、復号化された入力データX(16ビットとしている)の値が「0x0215」(16進法での表記)であったとすると、この場合も前述と同様、上位ビットX_highと下位ビットX_lowをそれぞれ8ビットづつに区切って、上位ビットX_highの8ビット分のデータ「0x02」をレジスタR1にコピーし、下位ビットX_lowの8ビット分のデータ「0x15」をレジスタR2にコピーする。
【0078】
ここでは、16ビットの入力データXが「0x0215」であるので、上位X_highの8ビット分のデータは「0x02」であり、“0”ではないので、入力データXの値は大きいと判断する。
【0079】
そこで、この場合は、上位ビットX_highのデータ「0x02」をKeyとして、図5に示されるような代表値テーブルVを参照すると、上位8ビット分のデータは「0x02」に対する代表値(予め計算された非線形逆量子化演算結果)として、この例では「0149」が得られる。
【0080】
ただし、この「0149」は、レジスタR1に格納された上位ビットX_highの8ビット分のデータ「0x02」に対する非線形逆量子化演算結果である。つまり、16ビットの入力データXにおいて、上位ビットX_highの8ビットが「0x02」、下位ビットX_lowの8ビットが「0x00」の場合であるので、実際の入力データX「0x0215」の下位ビットX_lowの8ビット分のデータ「0x15」(レジスタR2に格納されている)を考慮した非線形逆量子化演算結果を得る必要がある。本発明では、その下位ビットX_lowの8ビット分のデータを考慮した非線形逆量子化演算結果を得るために補間を行う。
【0081】
前述した図6において、それぞれの代表値(たとえば、Vh,Vi,Vj,・・・など)は、入力データXにおける上位ビットX_highの取り得る或るデータXh,Xi,Xj,・・・ごとに実際にxの3分の4乗を計算して得られた非線形逆量子化演算結果を代表値として示すものであり、これらの代表値Vh,Vi,Vj,・・・などは代表値テーブルVに、上位ビットX_highの取り得るデータそれぞれに対応付けられて格納されている。
【0082】
そして、これら各代表値Vh,Vi,Vj,・・・を直線L1,L2,L3,・・・で結ぶことによってその間を線形補間する。すなわち、レジスタR1に格納されている上位ビットX_highの8ビット分のデータに対しては、代表値テーブルVから予め計算された計算結果(非線形逆量子化演算結果)を求め、レジスタR2に格納されている下位ビットX_lowの8ビット分のデータに対しては、線形補間によってその値を求め、この線形補間によって求められた値を代表値テーブルVから予め計算された計算結果に加えることによって、入力データXの求めるべき非線形逆量子化演算結果を得るようにする。
【0083】
なお、線形補間によって、レジスタR2に格納されている下位8ビット分のデータに対する値を求める手法としては、上位ビットX_highの8ビット分のそれぞれデータに対する傾き値を計算しておき、その傾き値を上位ビットX_highの8ビット分のそれぞれデータに対応付けて補間テーブルGに格納しておく。これによって、上位ビットX_highの8ビット分のそれぞれデータをKeyとして、それに対応する傾き値を得て、その傾き値を下位ビットX_lowに掛け算することによって求める。
【0084】
ここで、 レジスタR1に格納されている上位ビットX_highのデータをKeyとして、代表値テーブルVから得られる非線形逆量子化演算結果(代表値)をVとし、補間テーブルGから得られる傾き値をg、当該上位ビットX_highに続く下位ビットのデータ(レジスタR2に格納されているデータ)をX_lowで表せば、求めるべき入力データXの非線形逆量子化演算結果Vxは、
Vx=V+g*X_low (2)
で表すことができる。
【0085】
ここで具体例を用いて説明する。復号化された16ビットの入力データXが上述したように「0x0215」であったとする。図5に示すように、この入力データXの上位ビットX_highの8ビット分のデータ「0x02」をKeyとして代表値テーブルVを参照すると、入力データ「0x02」に対する値として「0149」が取得される。この「0149」は(2)式においてVに相当する。
【0086】
そして次に、入力データXの上位ビットX_highの8ビット分のデータ「0x02」をKeyとして補間テーブルGを参照すると、「0x02」に対して「0003」の傾き値gを得る。この「0003」は(2)式においてgに相当する。これらの値を(2)式のV,gに代入するとともに、下位ビットX_lowの8ビット分のデータを(2)式のX_lowに代入して、(2)式を計算することによって、そのときの入力データXの3分の4乗を近似した値を非線形逆量子化演算結果として得ることができる。
【0087】
これを図6により説明する。「0x0215」の入力データXが図6におけるXiとXjの間に存在する値であるとすると、そのときの求められるべき逆量子化演算結果はVi+Vaとなる。
【0088】
つまり、「0x0215」の入力データXの上位ビットX_highの8ビット分のデータ「0x02」はXiに対応することになり、そのデータ「0x02」をKeyとして代表値テーブルVを参照すると、図5に示されるように、Viとして「0149」が取得される。また、そのデータ「0x02」をKeyとして補間テーブルGを参照すると、同じく図5に示されるように、そのときの傾き値gとして「0003」が取得される。
【0089】
そして、レジスタR2に格納されている下位ビットX_lowを用いて、この下位ビットX_lowのデータに傾き値gを積算することで、Vaを求めることができる。そして、このVaと代表値テーブルVから得られた代表値Viを加算すれば、「0x0215」の入力データXに対する非線形逆量子化演算結果を求めることができる。
【0090】
なお、入力データXの上位ビットX_highが図6に示すXh,Xi,Xj,・・・などである場合には、代表値テーブルVからそれらの入力データに対する非線形逆量子化演算結果をそのまま求めることができるので、補間を行う必要はない。
【0091】
図7は以上説明した処理手順を示すフローチャートであり、本発明の処理手順を一般化して説明するものである。図7において、入力データX(可変長符号復号化部で復号化されたデータ)に対し、まず、上位ビットX_highと下位ビットX_lowに分割し(ステップs1)、上位ビットX_highが“0”であるか否かを調べ(ステップs2)、上位ビットX_highが“0”であれば、下位ビットX_lowをKeyとして、予め作成された逆量子化テーブルQを参照する(ステップs3)。
【0092】
このように、上位ビットX_highが“0”である場合には、逆量子化テーブルQを参照するだけの処理で、求めるべき非線形逆量子化演算結果(Xの3分の4乗)を得ることができる。
【0093】
一方、ステップs2において、上位ビットX_highが“0”でないと判定された場合には、上位ビットX_highをKeyとして代表値テーブルVを参照して、その上位ビットX_highに対する代表値Vを得るとともに、上位ビットX_highをKeyとして補間テーブルGを参照して、そのときの傾き値gを得る(ステップs4)。
【0094】
そして、ステップs4で得られた代表値Vと傾き値gとステップs1で分割された下位ビットX_lowを用いて、前述の(2)式、つまり、V+g*X_lowを計算して(ステップs5)、そのときの入力データXに対する非線形逆量子化演算結果を得る。
【0095】
以上ような処理を行うことによって、逆量子化処理部3で行うべき非線形逆量子化処理の演算量を大幅に削減することができる。すなわち、この逆量子化処理部3が行うべき処理として、可変長符号復号化部2で復号化された入力データXの3分の4乗の計算があるが(図2参照)、本発明ではこの部分の演算量を大幅に削減することができる。
【0096】
この処理を行うには、前述したように、復号化された入力データXの取り得るそれぞれの入力データ(入力データが16ビットであれば2の16乗個)すべてについて、前述のXの3分の4乗の計算をその都度行うか、それぞれの入力データ対応の非線形逆量子化演算結果がそれぞれの入力データ対応に記述されたテーブルを持つなどが考えられるが、膨大な演算量となったり、テーブルサイズがきわめて大きくなるといった問題がある。
【0097】
これに対して、本発明は、入力データXを上位ビットX_highと下位ビットX_lowに分割して、上位ビットX_highが0である場合には、入力データXの値が小さい(精度を要する)として、その場合には、そのときの入力データXの下位ビットX_lowをKeyとして逆量子化テーブルQを参照して、Xの3分の4乗の値を得るようにしている。
【0098】
この逆量子化テーブルQは、入力データXの取り得る範囲すべてに対応して作成されるものではなく、下位ビットX_lowの取り得るデータ範囲に対応させるだけで済むので、テーブルサイズを大幅に小さくすることができる。
【0099】
また、上位ビットX_highが0でない場合には、入力データの値が大きい(精度をあまり要しない)として、その場合には、そのときの入力データXの上位ビットX_highをKeyとして代表値テーブルVの参照を行って、その上位ビットX_highに対する代表値Vを得るとともに、上位ビットX_highをKeyとして補間テーブルGを参照して、そのときの傾き値gを得る。
【0100】
そして、その代表値Vと傾き値gとそのときの下位ビットX_lowを用いて、前述の(2)式、V+g*X_lowを計算することによって、そのときの入力データXに対し、Xの3分の4乗を近似した値を非線形逆量子化演算結果として得ることができる。
【0101】
なお、このときの代表値テーブルVは、前述したように、入力データXに対して、2n2(n2は下位ビットX_lowのビット数)ごとに、Xの3分の4乗を計算した結果(非線形逆量子化演算結果)を代表値として持つテーブルとなる。たとえば、下位ビットX_lowのビット数が8ビット(n2=8)であれば、2の8乗(=256)ごとの非線形逆量子化演算結果が代表値として格納されたテーブルとなる。
【0102】
そして、このそれぞれの代表値ごとに傾き値gを予め計算しておき、その傾き値gと上位ビットX_highの取り得るそれぞれのデータとを対応付けたものを補間テーブルGとして持つ。なお、これら代表値テーブルV、補間テーブルG、上述の下位ビットX_lowに対応した逆量子化テーブルQをすべて合わせてもその合計のデータ量は、入力データXが取り得るすべてのデータ範囲に対応したテーブルのデータ量よりも遥かに少ないデータ量とすることができる。
【0103】
ちなみに、入力データが16ビットであるとすれば、その入力データが取り得るすべてのデータ範囲は2の16乗となって6万個以上の入力データをKeyとしたテーブルを作成する必要があるが、本発明ではすべてのテーブルを合計してもそれよりも大幅に小さなデータ量で済ませることができ、小さな容量のメモリで対応することができる。上述の例では、代表値テーブルV、補間テーブルG、逆量子化テーブルQのそれぞれのテーブルは、2の8乗個(=256個)のデータに対応するテーブルとすることができ、それぞれ小さなテーブルサイズとすることができる。
【0104】
また、処理手順としても、上位ビットX_highが0である場合には、逆量子化テーブルを1回参照するだけで非線形逆量子化演算結果を得ることができ、上位ビットX_highが0でない場合にも、代表値テーブルVと、補間テーブルGをそれぞれ1回づつ参照したのちに、(2)式で示されるように、単純な積算と加算を行うだけで非線形逆量子化演算結果を得ることができるので、処理能力のそれ程高くない安価なCPUでも十分対応できる。
【0105】
なお、本発明は以上説明した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲で種々変形実施可能となるものである。たとえば、前述の実施の形態では、処理対象の信号としてオーディオ信号を例にとって説明したが、本発明は、オーディオ信号だけではなく、本発明で説明したような処理が必要な信号にはすべて適用できる。また、前述の実施の形態の説明で用いた具体的な数値(たとえば、復号化された入力データのビット数、上位ビットX_highのビット数、下位ビットX_lowのビット数など)は一つの例にすぎず、これに限られるものではないことは勿論である。
【0106】
また、本発明は、以上説明した本発明を実現するための処理手順が記述された処理プログラムを作成し、その処理プログラムをフロッピィディスク、光ディスク、ハードディスクなどの記録媒体に記録させておくことができ、本発明はその処理プログラムが記録された記録媒体をも含むものである。また、ネットワークから当該処理プログラムを得るようにしてもよい。
【0107】
【発明の効果】
以上説明したように本発明によれば、復号化された入力データを上位ビットと下位ビットに分割して、上位ビットが0である場合には、入力データの値が小さい(精度を要する)として、その場合には、そのときの入力データの下位ビットのデータをKeyとして逆量子化テーブルを参照して、予め計算された非線形逆量子化演算結果を得るようにしている。この逆量子化テーブルは、入力データの取り得る範囲すべてに対応して作成されるものではなく、下位ビットの取り得るデータ範囲に対応させるだけで済むので、テーブルサイズを大幅に小さくすることができる。
【0108】
また、上位ビットが0でない場合には、入力データの値が大きい(精度をあまり要しない)として、その場合には、そのときの入力データの上位ビットをKeyとして代表値テーブルの参照を行って、その上位ビットに対する代表値を得るとともに、上位ビットとして補間テーブルを参照して、その時の傾き値を得る。そして、その代表値と傾き値とそのときの下位ビットを用いて、その時の入力データに対し、非線形逆量子化演算結果を簡単な計算によって求めることができる。なお、このときの代表値テーブルは、入力データに対して、2n2(n2は下位ビットのビット数)ごとのテーブルとなる。なお、これら代表値テーブル、補間テーブル、それに下位ビットに対応した逆量子化テーブルをすべて合わせても、その合計のデータ量は、入力データが取り得るすべてのデータ範囲に対応したテーブルのデータ量よりも遥かに少ないデータ量とすることができる。
【0109】
ちなみに、入力データが16ビットであるとすれば、その入力データが取り得るすべてのデータ範囲は2の16乗となって6万個以上の入力データをKeyとしたテーブルを作成する必要があるが、本発明では全てのテーブルを合計してもそれよりも大幅に小さなテーブ量で済ませることができ、小さな容量のメモリで対応することができる。
【0110】
また、処理手順としても、上位ビットが0である場合には、逆量子化テーブルを1回参照するだけで非線形逆量子化演算結果を得ることができ、上位ビットが0でない場合にも、代表値テーブルと、補間テーブルをそれぞれ1回づつ参照したのちに、単純な積算と加算を行うだけで非線形逆量子化演算結果を得ることができるので、処理能力のそれ程高くない安価なCPUでも十分対応できる。
【0111】
このように、本発明は周波数領域に変換されたのち量子化され符号化されて圧縮されたデータを復号するする際の非線形逆量子化処理を少ない演算量で効率よくかつ高精度に行うことができる。
【0112】
特に、本発明はこのような周波数領域に変換されたのち量子化され符号化されて圧縮されたオーディオ信号を再生する機器に適用されることで、その効果を発揮し、本発明によって、復号化処理過程で行われる非線形逆量子化処理の演算量を大幅に少なくすることができ、しかも、演算に必要なテーブルなどのデータ量を大幅に減らすことができる。それによって、CPUやメモリを安価なもので対応することができ、機器そのものの低価格化や小型・軽量化を図ることができる。
【図面の簡単な説明】
【図1】本発明の信号復号装置の概略的な構成を示すブロック図である。
【図2】図1で示された逆量子化処理部で行われる非線形逆量子化演算処理の概略を説明する図である。
【図3】図2で示した非線形逆量子化演算結果(入力データXの3分の4乗)を近似した曲線を示す図である。
【図4】本発明の信号復号処理において入力データが小さい場合(精度の要求度が高い場合)の非線形逆量子化演算結果を求める処理手順を説明する図である。
【図5】本発明の信号復号処理において入力データが大きい場合(精度の要求度が低い場合)の非線形逆量子化演算結果を求める処理手順を説明する図である。
【図6】図3で示した非線形逆量子化演算結果(入力データXの3分の4乗)を近似した曲線を用いて、入力データが大きい場合(精度の要求度が低い場合)における代表値テーブル参照と補間テーブル参照による非線形逆量子化演算結果を求める処理を説明する図である。
【図7】本発明の全体的な処理手順を説明するフローチャートである。
【符号の説明】
1 ビットストリーム解析部
2 可変長符号復号化部
3 逆量子化処理部
4 周波数/時間変換部
5 サイド情報復号化部
X_high 上位ビット
X_low 下位ビット
R1 上位ビットX_highのデータを格納するレジスタ
R2 下位ビットX_lowのデータを格納するレジスタ
Q 逆量子化テーブル
V 代表値テーブル(取得された代表値)
G 補間テーブル
g 傾き値
X 入力データ
Claims (9)
- 周波数軸上のデータに変換されたのち、精度の要求度に応じた非線形量子化がなされ、さらに符号化されることによって圧縮された圧縮データを入力データとし、当該入力データとしての圧縮データを復号化したのちに精度の要求度に応じた非線形逆量子化処理し、時間軸のデータに変換する信号復号方法において、
精度の要求度が高い前記入力データに対しては、復号化されたそれぞれの入力データをKeyとしてそれぞれの圧縮データ対応の非線形逆量子化演算結果を取得できる逆量子化テーブルを用意し、
精度の要求度が低い前記入力データに対しては、復号化された所定間隔ごとのそれぞれの入力データをKeyとして当該所定間隔ごとの入力データ対応の非線形逆量子化演算結果を代表値として取得できる代表値テーブルを用意するとともに、これら各代表値の間を補間可能な補間テーブルとを用意し、
前記精度の要求度に応じた非線形逆量子化処理を行う際は、前記復号化された入力データのビット数をn(nは正の整数)としたとき、当該入力データを上位ビット(ビット数をn1とする)と下位ビット(ビット数をn2とし、n1+n2=n)に分割して、前記上位ビットのデータが0であるか否かを判定し、前記上位ビットのデータが0である場合には、前記入力データの精度の要求度は高く、前記上位ビットのデータが0でない場合には、前記入力データの精度の要求度は低いと判定し、
精度の要求度が高い入力データであると判定された場合には、当該入力データをKeyとして前記逆量子化テーブルを参照することで、当該入力データに対する非線形逆量子化演算結果を取得し、
精度の要求度が低い入力データであると判定された場合には、当該入力データをKeyとして前記代表値テーブルまたは前記代表値テーブルと前記補間テーブルとの両方を参照することで、当該入力データに対する非線形逆量子化演算結果を取得する信号復号方法であって、
前記逆量子化テーブルは、前記下位ビットの取り得るデータ範囲のそれぞれのデータ対応に予め計算された非線形逆量子化演算結果が前記下位ビットの取り得るそれぞれのデータに対応付けられて格納されたテーブルであることと、
前記代表値テーブルは、当該下位ビットの取り得るデータ範囲間隔ごとの前記上位ビット側の取り得るそれぞれのデータ対応に予め計算された非線形逆量子化演算結果が前記上位ビット側の取り得るそれぞれのデータに対応付けられて格納されたテーブルであることと、
前記補間テーブルは、前記下位ビットの取り得るデータ範囲ごとの前記上位ビットの取り得るそれぞれのデータ対応の非線形逆量子化演算結果間をそれぞれ結ぶ線分の傾き値を、当該上位ビット側の取り得るそれぞれのデータ対応に予め計算して求めておき、前記傾き値が前記上位ビット側の取り得るそれぞれのデータに対応付けられて格納されたテーブルであることと
を特徴とする信号復号方法。 - 前記精度の要求度の高い入力データであると判定された場合における前記入力データに対する非線形逆量子化演算結果を得る処理は、当該入力データの下位ビットで表現されるデータをKeyとして前記逆量子化テーブルを参照し、前記逆量子化テーブルから予め計算された非線形逆量子化演算結果を取得する処理であり、
前記精度の要求度の低い入力データであると判定された場合における前記入力データに対する非線形逆量子化演算結果を得る処理は、当該入力データの上位ビットで表現されるデータをKeyとして前記代表値テーブルを参照し、前記代表値テーブルから予め計算された非線形逆量子化演算結果を取得し、当該上位ビットに続く下位ビットのデータに対応する補間が必要な場合には、前記代表値テーブルから予め計算された非線形逆量子化演算結果を取得したあと、当該上位ビットのデータをKeyとして前記補間テーブルを参照して当該上位ビットに対応する傾き値を取得して、当該傾き値から当該上位ビットに続く下位ビットのデータに対応する補間値を求め、前記補間値を前記代表値テーブルから得られた非線形逆量子化演算結果に加えて、非線形逆量子化演算結果として得ることを特徴とする請求項1記載の信号復号方法。 - 前記精度の要求度の低い入力データであると判定された場合における前記入力データに対する非線形逆量子化演算結果は、求めるべき非線形逆量子化演算結果をVx、前記代表値テーブルから得られた非線形逆量子化演算結果をV、前記補間テーブルから得られた傾き値をg、当該上位ビットに続く下位ビットのデータをX_lowで表したとき、Vx=V+g*X_low で求めることを特徴とする請求項2記載の信号復号方法。
- 周波数軸上のデータに変換されたのち、精度の要求度に応じた非線形量子化がなされ、さらに符号化されることによって圧縮された圧縮データを入力データとし、この入力データとしての圧縮データを復号化したのちに精度の要求度に応じた非線形逆量子化処理し、時間軸のデータに変換する信号復号装置において、
前記信号復号装置は、前記符号化された入力データを復号化する復号化手段と、当該復号化されたデータを非線形逆量子化する逆量子化手段と、非線形逆量子化されたデータを時間軸のデータに変換する周波数/時間変換手段を構成要素として含み、
前記逆量子化手段は、精度の要求度が高い前記入力データに対するテーブルとして、復号化されたそれぞれの入力データをKeyとしてそれぞれの入力データ対応の非線形逆量子化演算結果を取得できる逆量子化テーブルを有し、精度の要求度が低い前記入力データに対するテーブルとして、復号化された所定間隔ごとのそれぞれの入力データをKeyとして当該所定間隔ごとの入力データ対応の非線形逆量子化演算結果を代表値として取得できる代表値テーブルを有し、さらに、これら各代表値の間を補間可能な補間テーブルを有し、
前記精度の要求度に応じた非線形逆量子化処理を行う際は、復号化された入力データのビット数をn(nは正の整数)としたとき、当該入力データを上位ビット(ビット数をn1とする)と下位ビット(ビット数をn2とし、n1+n2=n)に分割して、前記上位ビットのデータが0であるか否かを判定し、前記上位ビットのデータが0である場合には、前記入力データの精度の要求度は高く、前記上位ビットのデータが0でない場合には、前記入力データの精度の要求度は低いと判定し、
精度の要求度が高い入力データであると判定された場合には、当該入力データをKeyとして前記逆量子化テーブルを参照することで、当該入力データに対する非線形逆量子化演算結果を取得し、
精度の要求度の低い入力データであると判定された場合には、当該入力データをKeyとして前記代表値テーブルまたは前記代表値テーブルと補間テーブルとの両方を参照することで、当該入力データに対する非線形逆量子化演算結果を取得する信号復号装置であって、
前記逆量子化テーブルは、前記下位ビットの取り得るデータ範囲のそれぞれのデータ対応に予め計算された非線形逆量子化演算結果が前記下位ビットの取り得るそれぞれのデータに対応付けられて格納されたテーブルであることと、
前記代表値テーブルは、当該下位ビットの取り得るデータ範囲間隔ごとの前記上位ビット側の取り得るそれぞれのデータ対応に予め計算された非線形逆量子化演算結果が前記上位ビット側の取り得るそれぞれのデータに対応付けられて格納されたテーブルであることと、
前記補間テーブルは、前記下位ビットの取り得るデータ範囲ごとの前記上位ビットの取り得るそれぞれのデータ対応の非線形逆量子化演算結果間をそれぞれ結ぶ線分の傾き値を、当該上位ビット側の取り得るそれぞれのデータ対応に予め計算して求めておき、その傾き値が前記上位ビット側の取り得るそれぞれのデータに対応付けられて格納されたテーブルであることと
を特徴とする信号復号装置。 - 前記精度の要求度の高い入力データであると判定された場合における前記入力データに対する非線形逆量子化演算結果を得る処理は、当該入力データの下位ビットで表現されるデータをKeyとして前記逆量子化テーブルを参照し、前記逆量子化テーブルから予め計算された非線形逆量子化演算結果を取得する処理であり、
前記精度の要求度の低い入力データであると判定された場合における前記入力データに対する非線形逆量子化演算結果を得る処理は、当該入力データの上位ビットで表現されるデータをKeyとして前記代表値テーブルを参照し、前記代表値テーブルから予め計算された非線形逆量子化演算結果を取得し、当該上位ビットに続く下位ビットのデータに対応する補間が必要な場合には、前記代表値テーブルから予め計算された非線形逆量子化演算結果を取得したあと、当該上位ビットのデータをKeyとして前記補間テーブルを参照して当該上位ビットに対応する傾き値を取得し、当該傾き値から当該上位ビットに続く下位ビットのデータに対応する補間値を求め、前記補間値を前記代表値テーブルから得られた非線形逆量子化演算結果に加えて、非線形逆量子化演算結果として得ることを特徴とする請求項4記載の信号復号装置。 - 前記精度の要求度の低い入力データであると判定された場合における前記入力データに対する非線形逆量子化演算結果は、求めるべき非線形逆量子化演算結果をVx、前記代表値テーブルから得られた非線形逆量子化演算結果をV、前記補間テーブルから得られた傾き値をg、当該上位ビットに続く下位ビットのデータをX_lowで表したとき、Vx=V+g*X_low で求めることを特徴とする請求項5記載の信号復号装置。
- 周波数軸上のデータに変換されたのち、精度の要求度に応じた非線形量子化がなされ、さらに符号化されることによって圧縮された圧縮データを入力データとし、当該入力データとしての圧縮データを復号化したのちに精度の要求度に応じた非線形逆量子化処理し、時間軸のデータに変換する信号復号処理プログラムを記録した記録媒体において、
前記信号復号処理プログラムは、
前記精度の要求度に応じた非線形逆量子化処理を行う際は、復号化された入力データのビット数をn(nは正の整数)としたとき、当該入力データを上位ビット(ビット数をn1とする)と下位ビット(ビット数をn2とし、n1+n2=n)とに分割し、前記上位ビットのデータが0であるか否かを判定し、前記上位ビットのデータが0である場合には、前記入力データの精度の要求度は高く、前記上位ビットのデータが0でない場合には、前記入力データの精度の要求度は低いと判定する手順と、
精度の要求度が高い入力データであると判定された場合には、当該入力データをKeyとしてそれぞれの入力データ対応に非線形逆量子化演算結果を取得できる逆量子化テーブルを参照して前記入力データに対する非線形逆量子化演算結果を取得する手順と、
精度の要求度が低い圧縮データであると判定された場合には、当該入力された所定間隔ごとのそれぞれの入力データをKeyとして当該所定間隔ごとの入力データ対応の非線形逆量子化演算結果を代表値として取得できる代表値テーブルまたは前記代表値テーブルと各代表値の間を補間可能な補間テーブルとの両方を参照して前記入力データに対する非線形逆量子化演算結果を得る手順と、
を含み、
前記逆量子化テーブルは、前記下位ビットの取り得るデータ範囲のそれぞれのデータ対応に予め計算された非線形逆量子化演算結果が前記下位ビットの取り得るそれぞれのデータに対応付けられて格納されたテーブルであることと、
前記代表値テーブルは、当該下位ビットの取り得るデータ範囲間隔ごとの前記上位ビット側の取り得るそれぞれのデータ対応に予め計算された非線形逆量子化演算結果が前記上位ビット側の取り得るそれぞれのデータに対応付けられて格納されたテーブルであることと、
前記補間テーブルは、前記下位ビットの取り得るデータ範囲ごとの前記上位ビットの取り得るそれぞれのデータ対応の非線形逆量子化演算結果間をそれぞれ結ぶ線分の傾き値を、当該上位ビット側の取り得るそれぞれのデータ対応に予め計算して求めておき、前記傾き値が前記上位ビット側の取り得るそれぞれのデータに対応付けられて格納されたテーブルであることと
を特徴とする信号復号処理プログラムを記録した記録媒体。 - 前記精度の要求度の高い入力データであると判定された場合における前記入力データに対する非線形逆量子化演算結果を得る処理は、当該入力データの下位ビットで表現されるデータをKeyとして前記逆量子化テーブルを参照し、前記逆量子化テーブルから予め計算された非線形逆量子化演算結果を取得する処理であり、
前記精度の要求度の低い入力データであると判定された場合における前記入力データに対する非線形逆量子化演算結果を得る処理は、前記入力データの上位ビットで表現されるデータをKeyとして前記代表値テーブルを参照し、前記代表値テーブルから予め計算された非線形逆量子化演算結果を取得し、当該上位ビットに続く下位ビットのデータに対応する補間が必要な場合には、前記代表値テーブルから予め計算された非線形逆量子化演算結果を取得したあと、当該上位ビットのデータをKeyとして前記補間テーブルを参照して当該上位ビットに対応する傾き値を取得して、当該傾き値から当該上位ビットに続く下位ビットのデータに対応する補間値を求め、当該補間値を前記代表値テーブルから得られた非線形逆量子化演算結果に加えて、非線形逆量子化演算結果として得ることを特徴とする請求項7記載の信号復号処理プログラムを記録した記録媒体。 - 前記精度の要求度の低い入力データであると判定された場合における前記入力データに対する非線形逆量子化演算結果は、求めるべき非線形逆量子化演算結果をVx、前記代表値テーブルから得られた非線形逆量子化演算結果をV、前記補間テーブルから得られた傾き値をg、当該上位ビットに続く下位ビットのデータをX_lowで表したとき、Vx=V+g*X_low で求めることを特徴とする請求項8記載の信号復号処理プログラムを記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001101649A JP3979026B2 (ja) | 2001-03-30 | 2001-03-30 | 信号復号方法および信号復号装置ならびに信号復号処理プログラムを記録した記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001101649A JP3979026B2 (ja) | 2001-03-30 | 2001-03-30 | 信号復号方法および信号復号装置ならびに信号復号処理プログラムを記録した記録媒体 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002300042A JP2002300042A (ja) | 2002-10-11 |
JP2002300042A5 JP2002300042A5 (ja) | 2005-10-20 |
JP3979026B2 true JP3979026B2 (ja) | 2007-09-19 |
Family
ID=18954935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001101649A Expired - Fee Related JP3979026B2 (ja) | 2001-03-30 | 2001-03-30 | 信号復号方法および信号復号装置ならびに信号復号処理プログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3979026B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010060989A (ja) | 2008-09-05 | 2010-03-18 | Sony Corp | 演算装置および方法、量子化装置および方法、オーディオ符号化装置および方法、並びにプログラム |
JP4702645B2 (ja) | 2008-09-26 | 2011-06-15 | ソニー株式会社 | 演算装置および方法、量子化装置および方法、並びにプログラム |
JP2010078965A (ja) | 2008-09-26 | 2010-04-08 | Sony Corp | 演算装置および方法、量子化装置および方法、並びにプログラム |
-
2001
- 2001-03-30 JP JP2001101649A patent/JP3979026B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002300042A (ja) | 2002-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5048680B2 (ja) | オーディオ信号の符号化及び復号化方法、オーディオ信号の符号化及び復号化装置 | |
WO2012137617A1 (ja) | 符号化方法、復号方法、符号化装置、復号装置、プログラム、記録媒体 | |
KR960040018A (ko) | 휴먼 비쥬얼 시스템 모델링을 이용한 웨이블렛 영상 압축/복원 장치 및 방법 | |
JP3636094B2 (ja) | 信号符号化装置及び方法、並びに信号復号装置及び方法 | |
JP7123910B2 (ja) | インデックスコーディング及びビットスケジューリングを備えた量子化器 | |
JP3274593B2 (ja) | 可逆変換可能な変換装置及び逆変換装置 | |
JP3979026B2 (ja) | 信号復号方法および信号復号装置ならびに信号復号処理プログラムを記録した記録媒体 | |
WO2019216187A1 (ja) | ピッチ強調装置、その方法、およびプログラム | |
JPH0969781A (ja) | オーディオデータ符号化装置 | |
JP4918103B2 (ja) | 符号化方法、復号方法、それらの装置、プログラム及び記録媒体 | |
WO2019216037A1 (ja) | ピッチ強調装置、その方法、プログラム、および記録媒体 | |
JP4241517B2 (ja) | 画像符号化装置及び画像復号装置 | |
JP3877683B2 (ja) | 量子化装置及び逆量子化装置、並びにそれらの装置を利用可能なオーディオ及び画像の符号化装置及び復号装置 | |
WO2019216192A1 (ja) | ピッチ強調装置、その方法、およびプログラム | |
JPH09230898A (ja) | 音響信号変換符号化方法及び復号化方法 | |
WO2019107041A1 (ja) | ピッチ強調装置、その方法、およびプログラム | |
JP2009210644A (ja) | 線形予測係数算出装置、線形予測係数算出方法、線形予測係数算出プログラム、および記憶媒体 | |
JP2004015803A (ja) | 多様なフレームサイズを支援する整数コーディング方法及びそれを適用したコデック装置 | |
JP5006773B2 (ja) | 符号化方法、復号化方法、これらの方法を用いた装置、プログラム、記録媒体 | |
JPH02131671A (ja) | 画像データ圧縮方法 | |
JP3889738B2 (ja) | 逆量子化装置、オーディオ復号化装置、画像復号化装置、逆量子化方法および逆量子化プログラム | |
JP7183776B2 (ja) | 符号化装置、復号装置、これらの方法及びプログラム | |
JP4438655B2 (ja) | 符号化装置、復号装置、符号化方法及び復号方法 | |
JPWO2010067800A1 (ja) | 符号化方法、復号方法、それらの装置、プログラム及び記録媒体 | |
JPH09247668A (ja) | 画像信号符号化方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050622 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050622 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061219 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070219 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070605 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070618 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100706 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110706 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110706 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120706 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |