(57)【特許請求の範囲】
【請求項１】
数値列を構成する数値を、Ｍ個ずつ１つのグループにまとめて符号化する符号化装置において、
前記数値の正負を調整して、Ｍ個の前記数値の正負を統一する統一手段と、
前記統一手段により正負が統一された前記数値を符号化する第１の符号化手段と、
Ｍ個の前記数値のうち特定値以外の数値の数を計算し、前記特定値以外の数値の正負が前記統一手段により調整されたかどうかの情報を、計算された前記特定値以外の数値の数だけ生成して正負情報とし、前記正負情報を符号化する第２の符号化手段と、
前記第１の符号化手段の出力と前記第２の符号化手段の出力を含む符号列を生成する符号列生成手段と
を備えることを特徴とする符号化装置。
【請求項２】
前記符号列生成手段は、前記第１の符号化手段の出力と前記第２の符号化手段の出力を交互に含むように符号列を生成する
ことを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記第１の符号化手段は、前記数値を、可変長の符号列に符号化する
ことを特徴とする請求項１に記載の符号化装置。
【請求項４】
前記可変長の符号列は、ハフマン符号よりなる
ことを特徴とする請求項３に記載の符号化装置。
【請求項５】
前記数値列は、量子化された音響波形信号である
ことを特徴とする請求項１に記載の符号化装置。
【請求項６】
数値列を構成する数値を、Ｍ個ずつ１つのグループにまとめて符号化する符号化装置の符号化方法において、
前記数値の正負を調整して、Ｍ個の前記数値の正負を統一する統一ステップと、
前記統一ステップの処理で正負が統一された前記数値を符号化する第１の符号化ステップと、
Ｍ個の前記数値のうち特定値以外の数値の数を計算し、前記特定値以外の数値の正負が前記統一ステップの処理で調整されたかどうかの情報を、計算された前記特定値以外の数値の数だけ生成して正負情報とし、前記正負情報を符号化する第２の符号化ステップと、
前記第１の符号化ステップの処理での出力と前記第２の符号化ステップの処理での出力を含む符号列を生成する符号列生成ステップと
を含むことを特徴とする符号化方法。
【請求項７】
数値列を構成する数値を、Ｍ個ずつ１つのグループにまとめて符号化する符号化装置のプログラムであって、
前記数値の正負を調整して、Ｍ個の前記数値の正負を統一する統一ステップと、
前記統一ステップの処理で正負が統一された前記数値を符号化する第１の符号化ステップと、
Ｍ個の前記数値のうち特定値以外の数値の数を計算し、前記特定値以外の数値の正負が前記統一ステップの処理で調整されたかどうかの情報を、計算された前記特定値以外の数値の数だけ生成して正負情報とし、前記正負情報を符号化する第２の符号化ステップと、
前記第１の符号化ステップの処理での出力と前記第２の符号化ステップの処理での出力を含む符号列を生成する符号列生成ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項８】
数値列を構成する数値を、Ｍ個ずつ１つのグループにまとめて符号化する符号化装置のプログラムであって、
前記数値の正負を調整して、Ｍ個の前記数値の正負を統一する統一ステップと、
前記統一ステップの処理で正負が統一された前記数値を符号化する第１の符号化ステップと、
Ｍ個の前記数値のうち特定値以外の数値の数を計算し、前記特定値以外の数値の正負が前記統一ステップの処理で調整されたかどうかの情報を、計算された前記特定値以外の数値の数だけ生成して正負情報とし、前記正負情報を符号化する第２の符号化ステップと、
前記第１の符号化ステップの処理での出力と前記第２の符号化ステップの処理での出力を含む符号列を生成する符号列生成ステップと
を含む処理をコンピュータに実行させることを特徴とするプログラム。
【請求項９】
Ｍ個の数値列を構成する数値の正負を統一して一つのグループとして符号化された第１の符号列と、前記正負を統一する際に正負が調整された数値を特定するための情報を符号化した第２の符号列とを含む符号列を受け取る入力手段と、
前記第１の符号列を復号する復号手段と、
前記第２の符号列を復号し、Ｍ個の前記数値のうちの特定値以外の前記数値の数を計算し、前記特定値以外の数値の正負が調整されたかどうかの情報を、計算された前記特定値以外の数値の数だけ読み取る読み取り手段と、
前記復号手段により復号されたＭ個の正負が調整された数値列と、前記読み取り手段により読み取られた正負が調整された数値を特定するための情報に基づいて、Ｍ個の数値列の正負を復元する復元手段と
を備えることを特徴とする復号装置。
【請求項１０】
前記入力手段は、前記第１の符号列と前記第２の符号列が交互に含まれる符号列を受け取る
ことを特徴とする請求項９に記載の復号装置。
【請求項１１】
前記読み取り手段は、前記復号手段により前記特定値が復号された場合、前記第２の符号列の読み取りを行わない
ことを特徴とする請求項９の記載の復号装置。
【請求項１２】
前記特定値は、値０である
ことを特徴とする請求項９の復号装置。
【請求項１３】
Ｍ個の数値列を構成する数値の正負を統一して一つのグループとして符号化された第１の符号列と、前記正負を統一する際に正負が調整された数値を特定するための情報を符号化した第２の符号列とを含む符号列を受け取る入力ステップと、
前記第１の符号列を復号する復号ステップと、
前記第２の符号列を復号し、Ｍ個の前記数値のうちの特定値以外の前記数値の数を計算し、前記特定値以外の数値の正負が調整されたかどうかの情報を、計算された前記特定値以外の数値の数だけ読み取る読み取りステップと、
前記復号ステップの処理で復号されたＭ個の正負が調整された数値列と、前記読み取りステップの処理で読み取られた正負が調整された数値を特定するための情報に基づいて、Ｍ個の数値列の正負を復元する復元ステップと
を含むことを特徴とする復号方法。
【請求項１４】
Ｍ個の数値列を構成する数値の正負を統一して一つのグループとして符号化された第１の符号列と、前記正負を統一する際に正負が調整された数値を特定するための情報を符号化した第２の符号列とを含む符号列を受け取る入力ステップと、
前記第１の符号列を復号する復号ステップと、
前記第２の符号列を復号し、Ｍ個の前記数値のうちの特定値以外の前記数値の数を計算し、前記特定値以外の数値の正負が調整されたかどうかの情報を、計算された前記特定値以外の数値の数だけ読み取る読み取りステップと、
前記復号ステップの処理で復号されたＭ個の正負が調整された数値列と、前記読み取りステップの処理で読み取られた正負が調整された数値を特定するための情報に基づいて、Ｍ個の数値列の正負を復元する復元ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項１５】
Ｍ個の数値列を構成する数値の正負を統一して一つのグループとして符号化された第１の符号列と、前記正負を統一する際に正負が調整された数値を特定するための情報を符号化した第２の符号列とを含む符号列を受け取る入力ステップと、
前記第１の符号列を復号する復号ステップと、
前記第２の符号列を復号し、Ｍ個の前記数値のうちの特定値以外の前記数値の数を計算し、前記特定値以外の数値の正負が調整されたかどうかの情報を、計算された前記特定値以外の数値の数だけ読み取る読み取りステップと、
前記復号ステップの処理で復号されたＭ個の正負が調整された数値列と、前記読み取りステップの処理で読み取られた正負が調整された数値を特定するための情報に基づいて、Ｍ個の数値列の正負を復元する復元ステップと
を含む処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、符号化装置および方法、復号装置および方法、記録媒体、並びにプログラムに関し、いわゆる高能率符号化によって入力ディジタルデータの符号化を行い、伝送、記録、再生し、復号化して、再生信号を得る場合に用いて好適な符号化装置および方法、復号装置および方法、記録媒体、並びにプログラムに関するものである。
【０００２】
【従来の技術】
オーディオ或いは音声等の信号の高能率符号化の手法には種々あるが、例えば、時間軸上のオーディオ信号等をブロック化しないで、複数の周波数帯域に分割して符号化する非ブロック化周波数帯域分割方式である、帯域分割符号化（サブ・バンド・コーディング：SBC(Subband Coding))や、時間軸の信号を周波数軸上の信号に変換（スペクトル変換）して、複数の周波数帯域に分割し、各帯域毎に符号化するブロック化周波数帯域分割方式、いわゆる変換符号化等を挙げることができる。
【０００３】
また、上述の帯域分割符号化と変換符号化とを組み合した高能率符号化の手法も考えられており、この場合には、例えば、帯域分割符号化で帯域分割を行った後、各帯域の信号を周波数軸上の信号にスペクトル変換し、このスペクトル変換された各帯域に符号化が施される。ここで上述した帯域分割のためのフィルタとしては、例えばQMFフィルタ(Quadrature Mirror Filter)があり、これに ついては、例えば、1976 R.E.Crochiere  Digital coding of speech in subbands，Bell Syst.Tech. J. Vol.55,No.8 1976に、述べられている。
【０００４】
また、ICASSP 83,BOSTON Polyphase Quadrature filters-A new subband coding technique, Joseph H. Rothweilerには、等バンド幅のフィルタ分割手法が述べられている。ここで、上述したスペクトル変換としては、例えば、入力オーディオ信号を所定単位時間（フレーム）でブロック化し、当該ブロック毎に離散フーリエ変換(Discrete Fourier Transform)(DFT)、離散コサイン変換(Discrete Cosine Transform)(DCT)、モディファイドDCT変換(Modified Discrete Cosine Transform)(MDCT)等を行うことで、時間軸を周波数軸に変換するようなスペクトル変換がある。MDCTについては、例えば、ICASSP 1987 Subband/Transform Coding Using Filter Bank Designs Based on Time Domain Aliasing Cancellation, J.P.Princen  A.B.Bradley   Univ. of Surrey  Royal Melbourne Inst.of Tech.に述べられている。
【０００５】
このようにフィルタやスペクトル変換によって帯域毎に分割された信号を量子化することにより、量子化雑音が発生する帯域を制御することができ、マスキング効果などの性質を利用して、聴覚的に、より高能率な符号化を行うことができる。また、ここで量子化を行う前に、各帯域毎に、例えばその帯域における信号成分の絶対値の最大値で正規化を行うようにすれば、さらに高能率な符号化を行うことができる。
【０００６】
周波数帯域分割された各周波数成分を量子化する周波数分割幅としては、例えば人間の聴覚特性を考慮した帯域分割が行われる。すなわち、一般に臨界帯域（クリティカルバンド）と呼ばれている、高域程、帯域幅が広くなるような帯域幅で、オーディオ信号を複数（例えば３２バント）の帯域に分割することがある。また、この時の各帯域毎のデータを符号化する際には、各帯域毎に所定のビット配分、或いは、各帯域毎に適応的なビット割当て（ビットアロケーシヨン）による符号化が行われる。
【０００７】
例えば、前記MDCT処理されて得られた係数データを前記ビットアロケーションによって符号化する際には、前記各ブロック毎のMDCT処理により得られる各帯域毎のMDCT係数データに対して、適応的な割当てビット数で符号化が行われることになる。ビット割当手法としては、次の２手法が知られている。
【０００８】
第１の手法は、Adaptive Transform Coding of Speech Signals，R.Zelinski and P.Noll, IEEE Transactions of Accoustics,Speech,and Signal Processing, vol. ASSP-25,No.4,August 1977に開示されている。ここでは、各帯域毎の信号 の大きさをもとに、ビット割当を行っている。この方式では、量子化雑音スペクトルが平坦となり、雑音エネルギーが最小となるが、聴感覚的にはマスキング効果が利用されていないために実際の雑音感は最適ではない。
【０００９】
また第２の手法は、ICASSP 1980 The critical band coder-digital encoding of  the perceptual requirements of the auditory system，M.A.Kransner MITに開示されている。ここには、聴覚マスキングを利用することで、各帯域に必要な信号対雑音比を得て、固定的なビット割当を行う手法が述べられている。しかしこの手法では、サイン波入力で特性を測定する場合でも、ビット割当が固定的であるために、特性値がそれほど良い値とならない。
【００１０】
これらの問題を解決するために、ビット割当に使用できる全ビットが、各小ブロック毎にあらかじめ定められた固定ビット割当パターン分と、各ブロックの信号の大きさに依存したビット配分を行う分に分割使用され、その分割比を入力信号に関係する信号に依存させ、前記信号のスペクトルが滑らかなほど前記固定ビット割当パターン分への分割比率を大きくする高能率符号化装置が提案されている。
【００１１】
この装置によれば、サイン波入力のように、特定のスペクトルにエネルギーが集中する場合には、そのスペクトルを含むブロックに多くのビットを割り当てる事により、全体の信号対雑音特性を著しく改善することができる。一般に、急峻なスペクトル成分をもつ信号に対して人間の聴覚は極めて敏感であるため、このような方法を用いる事により、信号対雑音特性を改善することは、単に測定上の数値を向上させるばかりでなく、聴感上、音質を改善するのに有効である。
【００１２】
ビット割り当ての方法としては、この他にも数多くの方法が提案されており、さらに聴覚に関するモデルが精緻化され、符号化装置の能力があがれば、聴覚的にみてより高能率な符号化が可能になる。
【００１３】
また本発明者らは、特願平５−１５２８６５号として、スペクトル信号から聴感上特に重要なトーン性の成分を分離して、他のスペクトル成分とは別に符号化する方法を先に提案した。これにより、オーディオ信号等を聴感上の劣化を殆ど生じさせずに、高い圧縮率で効率的に符号化することが可能になる。
【００１４】
波形信号をスペクトルに変換する方法として、上述のDFTやDCTを使用した場合には、M個のサンプルからなる時間ブロックで変換を行うと、M個の独立な実数データが得られる。時間ブロック間の接続歪みを軽減するために、通常、両隣のブロックとそれぞれM1個のサンプルずつオーバーラップさせるので、平均して、DFTやDCTでは(M-M1)個のサンプルに対してM個の実数データを量子化して符号化することになる。
【００１５】
これに対してスペクトルに変換する方法として上述のMDCTを使用した場合には、両隣の時間とN個ずつオーバーラップさせた2M個のサンプルから、独立なM個の実数データが得られるので、平均して、MDCTでは、M個のサンプルに対してM個の実数データを量子化して符号化することになる。復号装置においては、このようにしてMDCTを用いて得られた符号から、各ブロックにおいて逆変換を施して得られた波形要素を互いに干渉させながら加え合わせることにより、波形信号を再構成することができる。
【００１６】
一般に変換のための時間ブロックを長くすることによって、スペクトルの周波数分解能が高まり、特定のスペクトル成分にエネルギーが集中する。従って、両隣のブロックと半分ずつオーバーラップさせて長いブロック長で変換を行い、しかも、得られたスペクトル信号の個数が、元の時間サンプルの個数に対して増加しないMDCTを使用することにより、DFTやDCTを使用した場合よりも効率の良い符号化を行うことが可能となる。また、隣接するブロック同士に十分長いオーバーラップを持たせることによって、波形信号のブロック間歪みを軽減することもできる。
【００１７】
実際の符号列を構成するにあたっては、先ず、正規化および量子化が行われる帯域毎に量子化精度情報、正規化係数情報を所定のビット数で符号化し、次に、正規化および量子化されたスペクトル信号を符号化すれば良い。
【００１８】
スペクトル信号を符号化するにあたっては、例えばハフマン符号のような可変長符号を用いる方法が知られている。ハフマン符号については、例えば、David A. Huffman, "A Method for the Construction of Minimum - Redundancy Codes",Proceedings of the I.R.E., pp1098-1101, Sep., 1952に述べられている。
【００１９】
さらに複数のスペクトル信号をまとめて１つの符号で表現する多次元の可変長符号を用いる方法が知られている。一般に多次元の可変長符号を用いる符号化方法では、符号の次数が大きいほど、圧縮効率の面でより効率の良い符号化が行える。但し、次数が大きくなるに従って、符号列表の規模が飛躍的に増加してしまうため、実用面での問題が生じる。実際には圧縮効率と符号列表の規模を考慮しながら目的に応じた最適な次数が選択される。
【００２０】
一般に音響波形信号では、基本周波数成分と基本周波数の整数倍の周波数成分、いわゆる倍音成分にエネルギーが集中する場合が多く、その周波数周辺のスペクトル信号は、いわゆる倍音成分に比べてレベルが非常に小さいため、０に量子化される確率が大きくなる。このような信号を効率良く符号化するためには、発生確率の大きな０に量子化されたスペクトル信号を、可能な限り少ない情報量で符号化すればよいことになる。１次元の可変長符号を用いる場合、各々のスペクトル信号が最短符号長の１ビットで符号化されたとしても、N本のスペクトルではNビットの情報が必要となる。次数Nの多次元の可変長符号を用いた場合では、N本のスペクトルを最短符号長の１ビットで符号化することが出来るため、前記のような周波数成分を持つ信号に対して効率の良い符号化が行える。
【００２１】
但し、多次元の可変長符号を用いる符号化方法において、符号の次数を大きくすることは、圧縮効率の面でかなり有利に作用するものの、実用化を考慮した場合、際限無く符号の次数を大きくことは不可能である。
【００２２】
通常、符号列表は帯域毎に設定される量子化精度情報毎に用意されている。量子化精度が低い場合は、表現できるスペクトル信号の値が少ないため、次数を大きくしてもそれほど符号列表の規模は増大しないが、量子化精度が高い場合は、当然表現できるスペクトル信号の値も多くなるため、次数を１つ増加させるだけでも、符号列表の規模は著しく増加する。
【００２３】
以上のことを、具体例を用いてさらに説明する。いま、入力信号をMDCT変換し、図１に示すようなスペクトルを得たとする。図１はMDCTのスペクトルの絶対値を、レベルをdBに変換して示したものである。入力信号は所定の時間ブロック毎に６４個のスペクトル信号に変換されており、それらが［１］から［８］の８個の符号化ユニットにまとめられ、正規化および量子化が行われる。
【００２４】
周波数成分の分布の仕方によって符号化ユニット毎に量子化精度を変化させることにより、音質の劣化を最小限に押さえ、聴覚的に効率の良い符号化を行うことが可能である。各符号化ユニットにおいて必要な量子化精度情報は、例えば、聴覚モデルに基づいて、各符号化ユニットに対応する帯域での最小可聴レベルやマスキングレベルを計算することによって求めることができる。正規化及び量子化されたスペクトル信号は可変長符号に変換されて、各符号化ユニットに量子化精度情報及び正規化情報と共に符号化される。
【００２５】
図２は、量子化精度情報の表現方法を説明するための図である。量子化精度情報コードを３ビットで表現する場合、最大８通りの量子化精度情報を設定することが出来る。この例では、１段階、３段階、５段階、７段階、１５段階、３１段階、６３段階、または１２７段階の８通りのステップ数のどれかで量子化が行われることになる。ここで、１段階のステップに量子化されるというのは、その符号化ユニット内のスペクトル信号がすべて０の値に量子化されるということを意味する。
【００２６】
図３は、従来行われてきた可変長符号化の方法を説明するための図である。スペクトル信号は、符号化ユニット毎に決められた量子化精度情報に基づいて量子化され、量子化スペクトルが求められる。量子化スペクトルを符号化する際は、図４に示すような符号列表を参照することにより、対応する符号列に変換される。図４から明らかなように、符号列表は量子化精度情報毎に用意されている。
【００２７】
図３において、符号化ユニット［１］では、量子化精度情報としてコード”０１１”が選択されている。従って、図４に示すように、７段階のステップ数で量子化が行われ、量子化されたスペクトル信号の値（量子化スペクトル）は、周波数が低いほうから順に、３，−１，２，２となる。これらを図４の量子化精度情報コードが”０１１”の符号列表を用いて符号列に変換すると、それぞれ１１１０，１０１，１１００，１１００となり、符号長はそれぞれ４，３，４，４となる。
【００２８】
また、符号化ユニット［２］では、量子化精度情報としてコード”０１０”が選択されており、この場合、図４に示すように、５段階のステップ数で量子化が行われる。この例では、量子化スペクトルは周波数が低いほうから順に、−２，１，０，１となる。これらを図４の量子化精度情報コードが”０１０”の符号列表を用いて符号列に変換すると、それぞれ１１１，１００，０，１００となり、符号長はそれぞれ３，３，１，３となる。
【００２９】
同様に符号化ユニット［３］では、量子化精度情報としてコード”００１”が選択されており、３段階のステップ数で量子化が行われ、量子化スペクトルは０，−１，０，０、符号列は０，１１，０，０、そして符号長は１，２，１，１となる。
【００３０】
図５は、２次元の可変長符号化の方法を説明するための図である。なお、図５には、図３の場合と同様の符号化ユニットが示されている。
【００３１】
量子化精度情報コードが”００１”の場合の符号列表として、図６に示すような２次元の符号列表を用いるとすると、図５における符号化ユニット［３］の量子化スペクトルは、２本ずつ１つのグループにまとめられて１つの符号列に変換される。従って、４本のスペクトル信号の量子化スペクトルである０，−１，０，０は、（０，−１），（０，０）の２つのグループにまとめられ、１０１，０の２つの符号列に変換される。
【００３２】
符号化ユニット［３］のスペクトル信号を、図３に示したように、１次元の可変長符号で符号化すると、必要な情報量は１＋２＋１＋１＝５ビットとなる。それに対して、図５に示すように、２次元の可変長符号で符号化すると、その情報量は、３＋１＝４ビットとなる。すなわち、次数を高くすると、より少ない情報量で符号化が行えることが判る。
【００３３】
【発明が解決しようとする課題】
以上説明したように、複数の（N本の）のスペクトル信号の量子化スペクトルを、１つのグループにまとめて、N次元のデータとし、これを符号列表に従って、可変長符号に符号化することで、１次元の可変長符号を用いる場合に較べて、符号長を短くすることができる。しかしながら、次数（Nの値）が増加すると、符号列表の規模が著しく増加し、実用化が困難となる課題があった。
【００３４】
例えば、２次元の可変長符号を用いる場合、量子化精度情報コードが”００１” ，”０１０”，”１１０”の場合の符号列表は、図６乃至図８に示すように、１次元の可変長符号を用いる場合の符号列表（図４）に比べ、符号列表の規模が増加している。
【００３５】
本発明はこのような状況に鑑みてなされたものであり、多次元の可変長符号化を用いる場合のように符号列表の規模を大きくすることなく、短い符号長で符号化を行うことができるようにするものである。
【００３６】
【課題を解決するための手段】
本発明の符号化装置は、数値の正負を調整して、Ｍ個の数値の正負を統一する統一手段と、統一手段により正負が統一された数値を符号化する第１の符号化手段と、Ｍ個の数値のうち特定値以外の数値の数を計算し、特定値以外の数値の正負が統一手段により調整されたかどうかの情報を、計算された特定値以外の数値の数だけ生成して正負情報とし、正負情報を符号化する第２の符号化手段と、第１の符号化手段の出力と第２の符号化手段の出力を含む符号列を生成する符号列生成手段とを備えることを特徴とする。
【００３７】
符号列生成手段は、第１の符号化手段の出力と第２の符号化手段の出力を交互に含むように符号列を生成することができる。
【００３９】
第１の符号化手段は、数値を、可変長の符号列に符号化することができる。
【００４０】
可変長の符号列は、ハフマン符号とすることができる。
【００４１】
数値列は、量子化された音響波形信号とすることができる。
【００４２】
本発明の符号化方法は、数値の正負を調整して、Ｍ個の数値の正負を統一する統一ステップと、統一ステップの処理で正負が統一された数値を符号化する第１の符号化ステップと、Ｍ個の数値のうち特定値以外の数値の数を計算し、特定値以外の数値の正負が統一ステップの処理で調整されたかどうかの情報を、計算された特定値以外の数値の数だけ生成して正負情報とし、正負情報を符号化する第２の符号化ステップと、第１の符号化ステップの処理での出力と第２の符号化ステップの処理での出力を含む符号列を生成する符号列生成ステップとを含むことを特徴とする。
【００４３】
本発明の第１の記録媒体のプログラムは、数値の正負を調整して、Ｍ個の数値の正負を統一する統一ステップと、統一ステップの処理で正負が統一された数値を符号化する第１の符号化ステップと、Ｍ個の数値のうち特定値以外の数値の数を計算し、特定値以外の数値の正負が統一ステップの処理で調整されたかどうかの情報を、計算された特定値以外の数値の数だけ生成して正負情報とし、正負情報を符号化する第２の符号化ステップと、第１の符号化ステップの処理での出力と第２の符号化ステップの処理での出力を含む符号列を生成する符号列生成ステップとを含むことを特徴とする。
【００４４】
本発明の第１のプログラムは、数値の正負を調整して、Ｍ個の数値の正負を統一する統一ステップと、統一ステップの処理で正負が統一された数値を符号化する第１の符号化ステップと、Ｍ個の数値のうち特定値以外の数値の数を計算し、特定値以外の数値の正負が統一ステップの処理で調整されたかどうかの情報を、計算された特定値以外の数値の数だけ生成して正負情報とし、正負情報を符号化する第２の符号化ステップと、第１の符号化ステップの処理での出力と第２の符号化ステップの処理での出力を含む符号列を生成する符号列生成ステップとを含む処理をコンピュータに実行させることを特徴とする。
【００４５】
本発明の符号化装置および方法、第１の記録媒体のプログラム、並びに第１のプログラムにおいては、数値の正負を調整して、Ｍ個の数値の正負が統一され、正負が統一された数値が符号化され、Ｍ個の数値のうち特定値以外の数値の数が計算され、特定値以外の数値の正負が調整されたかどうかの情報が、計算された特定値以外の数値の数だけ生成されて正負情報とされ、正負情報が符号化され、符号列が生成される。
【００４６】
本発明の復号装置は、Ｍ個の数値列を構成する数値の正負を統一して一つのグループとして符号化された第１の符号列と、正負を統一する際に正負が調整された数値を特定するための情報を符号化した第２の符号列とを含む符号列を受け取る入力手段と、第１の符号列を復号する復号手段と、第２の符号列を復号し、Ｍ個の数値のうちの特定値以外の数値の数を計算し、特定値以外の数値の正負が調整されたかどうかの情報を、計算された特定値以外の数値の数だけ読み取る読み取り手段と、復号手段により復号されたＭ個の正負が調整された数値列と、読み取り手段により読み取られた正負が調整された数値を特定するための情報に基づいて、Ｍ個の数値列の正負を復元する復元手段とを備えることを特徴とする。
【００４７】
入力手段は、第１の符号列と第２の符号列が交互に含まれる符号列を受け取ることができる。
【００４９】
読み取り手段は、復号手段により特定値が復号された場合、第２の符号列の読み取りを行わないことができる。
【００５０】
特定値は、値０とすることができる。
【００５１】
本発明の復号方法は、Ｍ個の数値列を構成する数値の正負を統一して一つのグループとして符号化された第１の符号列と、正負を統一する際に正負が調整された数値を特定するための情報を符号化した第２の符号列とを含む符号列を受け取る入力ステップと、第１の符号列を復号する復号ステップと、第２の符号列を復号し、Ｍ個の数値のうちの特定値以外の数値の数を計算し、特定値以外の数値の正負が調整されたかどうかの情報を、計算された特定値以外の数値の数だけ読み取る読み取りステップと、復号ステップの処理で復号されたＭ個の正負が調整された数値列と、読み取りステップの処理で読み取られた正負が調整された数値を特定するための情報に基づいて、Ｍ個の数値列の正負を復元する復元ステップとを含むことを特徴とする。
【００５２】
本発明の第２の記録媒体のプログラムは、Ｍ個の数値列を構成する数値の正負を統一して一つのグループとして符号化された第１の符号列と、正負を統一する際に正負が調整された数値を特定するための情報を符号化した第２の符号列とを含む符号列を受け取る入力ステップと、第１の符号列を復号する復号ステップと、第２の符号列を復号し、Ｍ個の数値のうちの特定値以外の数値の数を計算し、特定値以外の数値の正負が調整されたかどうかの情報を、計算された特定値以外の数値の数だけ読み取る読み取りステップと、復号ステップの処理で復号されたＭ個の正負が調整された数値列と、読み取りステップの処理で読み取られた正負が調整された数値を特定するための情報に基づいて、Ｍ個の数値列の正負を復元する復元ステップとを含むことを特徴とする。
【００５３】
本発明の第２のプログラムは、Ｍ個の数値列を構成する数値の正負を統一して一つのグループとして符号化された第１の符号列と、正負を統一する際に正負が調整された数値を特定するための情報を符号化した第２の符号列とを含む符号列を受け取る入力ステップと、第１の符号列を復号する復号ステップと、第２の符号列を復号し、Ｍ個の数値のうちの特定値以外の数値の数を計算し、特定値以外の数値の正負が調整されたかどうかの情報を、計算された特定値以外の数値の数だけ読み取る読み取りステップと、復号ステップの処理で復号されたＭ個の正負が調整された数値列と、読み取りステップの処理で読み取られた正負が調整された数値を特定するための情報に基づいて、Ｍ個の数値列の正負を復元する復元ステップとを含むことを特徴とする。
【００５４】
本発明の復号装置および方法、第２の記録媒体のプログラム、並びに第２のプログラムにおいては、Ｍ個の数値列を構成する数値の正負を統一して一つのグループとして符号化された第１の符号列と、正負を統一する際に正負が調整された数値を特定するための情報を符号化した第２の符号列とを含む符号列が受け取られ、第１の符号列が復号され、第２の符号列が復号され、Ｍ個の数値のうちの特定値以外の数値の数が計算され、特定値以外の数値の正負が調整されたかどうかの情報が、計算された特定値以外の数値の数だけ読み取られ、復号されたＭ個の正負が調整された数値列と、読み取られた正負が調整された数値を特定するための情報に基づいて、Ｍ個の数値列の正負が復元される。
【００５５】
【発明の実施の形態】
図９は、本発明を適用した符号化装置の構成例を示している。
【００５６】
この符号化装置に入力された信号波形１０１は変換回路１によって信号周波数成分１０２に変換された後、信号成分符号化回路２によって各成分が符号化され、符号列生成回路３によって符号列が生成されるようになされている。この符号列は所定の伝送路に伝送されたり、情報記録媒体４に記録される。
【００５７】
図１０は、変換回路１の構成例を示している。
【００５８】
帯域分割フィルタ１１によって２つの帯域に分割された信号成分２１１，２１２が、それぞれの帯域においてMDCT等の順スペクトル変換回路１２，１３によって、スペクトル信号成分２２１，２２２に変換されるようになされている。信号２１１，２１２の帯域幅は、信号２０１の帯域幅の１／２となっている（信号２０１の１／２に間引かれている）。
【００５９】
なお、図１０の２０１は図９の１０１に、図１０の２２１，２２２は図９の１０２に、それぞれ対応している。
【００６０】
変換回路１としてはこの実施例以外にも多数考えられる。例えば、入力信号を、MDCTによってスペクトル信号に直接変換しても良いし、MDCTではなく、DFTやDCTによって変換しても良い。
【００６１】
帯域分割フィルタによって信号を帯域成分に分割するだけで、スペクトルに変換しないで処理することも可能であるが、本発明の方法は特定の周波数にエネルギーが集中する場合に特に有効に作用するので、多数の周波数成分が比較的少ない演算量で得られるスペクトル変換によって周波数成分に変換する方法をとると都合が良い。
【００６２】
図１１は、信号成分符号化回路２の構成例を示している。
【００６３】
各信号成分３０１は、正規化回路２１によって所定の帯域毎に正規化が施された後、信号３０２として量子化回路２２に入力され、量子化精度決定回路２３によって計算された量子化精度信号３０３に基づいて量子化され、信号３０４として出力されるようになされている。図１１の３０１は、図９の１０２に、図１１の３０４は、図９の１０３に、それぞれ対応しているが、ここで、３０４（１０３）には、量子化された信号成分に加え、正規化係数情報や量子化精度情報も含まれている。
【００６４】
図１２は、符号列生成回路３の構成例を示している。
【００６５】
制御部３１は、Ｍ個ずつ１つのグループにまとめられたスペクトル信号の量子化スペクトル４０１を、例えば、負の量子化スペクトルを正の値に変換して（絶対値を取り）、量子化スペクトルの正負を統一した後、それを、符号化部３２を制御して符号化させる。
【００６６】
また制御部３１は、符号化部３３を制御して、Ｍ個の量子化スペクトルのうちの特定値（この例の場合、値０）以外の量子化スペクトルの数に基づくビット数で、特定値および負の量子化スペクトルのグループ内での位置に対応するデータを符号化させ、負の量子化スペクトルを特定するための情報（以下、正負符号情報signと称する）を生成する。
【００６７】
符号化部３２により生成された符号列（量子化スペクトルの符号列）４０２、および符号化部３３により生成された符号列（正負符号情報sign）４０３は、所定の伝送路、または情報記録媒体４に出力される。
【００６８】
なお、図１２の４０１は、図９の１０３に、図１２の４０２，４０３は、図９の１０４に、それぞれ対応している。
【００６９】
次に、符号化装置（図９）の動作を説明する。音響波形信号１０１（２０１）は、変換回路１の帯域分割フィルタ１１（図１０）に入力され、より低い周波数の信号成分２１１と、より高い周波数の信号成分２１２とに分割される。より低い周波数の信号成分２１１は、順スペクトル変換回路１２に入力され、スペクトル信号成分２２１に変換される。同様に、より高い周波数の信号成分２１２は、順スペクトル変換回路１３に入力され、スペクトル信号成分２２２に変換され、出力される。
【００７０】
すなわち、図１を参照して説明すると、順スペクトル変換回路１２は、より低い周波数のスペクトル信号をユニット化し、符号化ユニット［１］乃至［６］を生成する。また、順スペクトル変換回路１３は、より高い周波数のスペクトル信号成分をユニット化し、符号化ユニット［７］，［８］を生成する。
【００７１】
順スペクトル変換回路１２，１３より出力されたスペクトル信号成分２２１，２２２（１０２）は、信号成分符号化回路２の正規化回路２１（図１１）と量子化精度決定回路２３に入力される。正規化回路２１は、符号化ユニット内の複数のスペクトル信号成分のうち、その最大値で各信号の値を割算することにより、正規化を行う。そして、得られた正規化係数３０２を量子化回路２２に供給する。
【００７２】
量子化精度決定回路２３は、各符号化ユニットに対応する帯域での最小可聴レベルやマスキングレベルを演算することで、入力されたスペクトル信号成分の量子化精度を符号化ユニット単位で決定する。量子化回路２２は、量子化精度決定回路２３より供給された量子化精度３０３で、正規化回路２１より供給された正規化係数３０２を量子化し、得られた量子化スペクトル３０４（１０３）を符号列生成回路３に供給する。
【００７３】
符号列生成回路３は、量子化スペクトル３０４を符号列に変換するが、その処理の詳細を、図１３のフローチャートを参照して説明する。
【００７４】
ステップＳ１において、符号列生成回路３の制御部３１は、それぞれ内蔵する、１つのグループにまとめられたスペクトル信号の数をカウントするカウンタｉの値、並びにレジスタＮの値およびレジスタsignの値を、値０に初期設定する。
【００７５】
次に、ステップＳ２において、制御部３１は、カウンタｉの値に対応するスペクトル信号（以下、適宜、ＱＳＰ（ｉ）と称する）の量子化スペクトルを調べ、それが特定値（この例の場合、値０）であるか否かを判定し、値０ではないと判定した場合、ステップＳ３に進む。
【００７６】
ステップＳ３において、制御部３１は、レジスタＮの値を１だけ増加させ、そしてレジスタsignの値を１ビットだけ左方向にシフトさせる（２倍にする）。
【００７７】
次に、ステップＳ４において、制御部３１は、ＱＳＰ（ｉ）の量子化スペクトルが負の値であるか否かを判定し、負の値であると判定した場合、ステップＳ５に進む。
【００７８】
ステップＳ５において、制御部３１は、ＱＳＰ（ｉ）の量子化スペクトルに値−１を乗算し、その結果得られた値を、ＱＳＰ（ｉ）の量子化スペクトルとする。すなわち、ＱＳＰ（ｉ）の量子化スペクトルが負の値である場合、正の値に変換される。またこのとき制御部３１は、レジスタsignの値を１だけ増加させる。
【００７９】
ステップＳ４で、ＱＳＰ（ｉ）の量子化スペクトルが正の値であると判定された場合、ステップＳ５の処理はスキップされ、ステップＳ６に進み、またステップＳ２で、ＱＳＰ（ｉ）の量子化スペクトルが値０であると判定された場合、ステップＳ３乃至ステップＳ５の処理がスキップされ、ステップＳ６に進む。
【００８０】
ステップＳ６において、制御部３１は、カウンタｉの値を１だけ増加させ、ステップＳ７において、そのカウンタｉの値が、１つのグループにまとめられたスペクトル信号の数Ｍ未満であるか否かを判定し、Ｍ未満であると判定した場合、ステップＳ２に戻り、それ以降の処理を実行する。
【００８１】
ステップＳ７で、カウンタｉの値が、スペクトル信号の数Ｍ未満ではないと判定された場合（それ以上である場合）、ステップＳ８に進み、制御部３１は、符号化部３２を制御して、ＱＳＰ（０）乃至ＱＳＰ（Ｍ−１）の量子化スペクトル、すなわち、１つのグループにまとめられた量子化スペクトルを、Ｍ次元の可変長符号で符号化する。
【００８２】
例えば、２次元の可変長符号がなされる場合（Ｍ＝２の場合）、符号化部３２は、図１４に示すような符号列表を参照することにより、１つのグループにまとめられた２個の量子化スペクトルを、それに対応する符号列に変換する。
【００８３】
図１４には、量子化精度情報コードが”００１”の場合の符号列、”０１０”の場合の符号列表、および”０１１”の場合の符号列表が示されているが、それらの符号列表には、４語の符号列、９語の符号列、１６語の符号列が用意されている。
【００８４】
この例の場合、負の値の量子化スペクトルは、正の値に変換されるので（ステップＳ５）、負の値の量子化スペクトルが符号化されることはない。従って、図１４の符号列表には、負の値の量子化スペクトルに対応する符号列は含まれていない。このように、例えば、量子化スペクトルを正の値に統一することにより、負の量子化スペクトルに対応する符号列を用意する必要がなくなるので、符号列表の規模を、その分小さくすることができる。
【００８５】
これに対して、従来の可変長符号においては、正の値および負の値の量子化スペクトルに対応する符号列を用意しなければならないので、符号列の規模が大きくなる。例えば、２次元の可変長符号における量子化精度情報コードが”００１”の場合の符号列表には、図６に示した９語の符号列を用意し、”０１０”の場合の符号列表には、図７に示した２５語の符号列が用意し、そして”０１１”の場合の符号列表には、図８に示した４９語の符号列が用意する必要がある。
【００８６】
また、その図示は省略するが、４次元の場合、量子化精度情報コードが”０１０”および”０１１”のとき、本発明の符号列表の大きさは、８１語および２５６語であるが、従来の場合、６２５語および２４０１語となる。
【００８７】
図１３に戻り、ステップＳ９において、制御部３１は、符号化部３３を制御して、レジスタsignの値を、レジスタＮの値と同じビット数で符号化させ、正負符号情報sign（符号列）を生成する。
【００８８】
その後、処理は終了し、次のグループにまとめられたスペクトル信号の量子化スペクトルに対してステップＳ１乃至ステップＳ９の処理が同様に実行させる。
【００８９】
次に、図１５に示す、１６本のスペクトル信号が存在する符号化ユニット（図１の例では、［７］または［８］の符号化ユニット）を例として、上述した符号列生成回路３の動作を再度説明する。なお、この例の場合、符号化ユニットのスペクトル信号は、２（＝Ｍ）本ずつ１つのグループにまとめられるものとする。
【００９０】
周波数の低いほうから２本のスペクトル信号の量子化スペクトル（１，−２）を符号化する場合において、カウンタｉ＝０、レジスタＮ＝０、およびレジスタsign＝０であるとき（ステップＳ１）、ＱＳＰ（０）の量子化スペクトル（値１）は、値０ではないので（ステップＳ２）、レジスタＮの値０が１だけ増加して値１となり、レジスタsignの値０が２倍されて値０となる（ステップＳ３）。
【００９１】
またＱＳＰ（０）の量子化スペクトル（値１）は、正の値であるので（ステップＳ４）、カウンタｉの値０が１だけ増加して値１となる（ステップＳ６）。
【００９２】
ＱＳＰ（１）の量子化スペクトル（値−２）は、値０ではないので、レジスタＮの値１がさらに１だけ増加して値２となり、レジスタsignの値０は２倍されて値０となる。
【００９３】
またＱＳＰ（１）の量子化スペクトル（値−２）は、負の値であるので、２（＝−２×−１）が、符号化されるＱＳＰ（１）の量子化スペクトルとされる（ステップＳ５）。またこのとき、レジスタsignの値０が１だけ増加して値１となる。
【００９４】
すなわち、この場合、（１，２）が１つのまとまりとして、図１４の符号列表に基づき、５ビットの”１１１１０”に符号化され（ステップＳ８）、それに続いてレジスタsignの値１が、レジスタＮの値２のビット数、すなわち２ビットの符号列”０１”に符号化されて、正負符号情報sign”０１”が生成される（ステップＳ９）。
【００９５】
正負符号情報signは、その”１”に対応する、ステップＳ８で符号化される値が負の値であることを表す。いまの場合、（１，−２）が（１，２）とされて符号化されているが、このときの正負符号情報sign”０１”は、その”１”に対応する、（１，２）のうちの”２”が、本来負の値（−２）であることを示す。後述する復号装置においては、この正負符号情報signに基づいて、信号成分の符号の正負が決定される。
【００９６】
なお、図１５に示す符号化ユニットは、本発明において、５ビットの”１１１１０”（（１，２）の符号列）および２ビットの”０１”（値１のレジスタsignの符号列）、１ビットの”０”（（０，０）の符号列）、３ビットの”１０１”（（１，０）の符号列）および１ビットの”０”（値０のレジスタsignの符号列）、３ビットの”１１０”（（１，１）の符号列）および２ビットの”１０”（値２のレジスタsignの符号列）、１ビットの”０”（（０，０）の符号列）、５ビットの”１１１００”（（０，２）の符号列）および１ビットの”０”（値０のレジスタsignの符号列）、３ビットの”１１０”（（１，１）の符号列）および２ビットの”１１”（値３のレジスタsignの符号列）、並びに５ビットの”１１１００”（（０，２）の符号列）および１ビットの”０”（値０のレジスタsignの符号列）に符号化されるので、その符号長は、３５（＝７＋１＋４＋５＋１＋６＋５＋６）となる。なお、従来の２次元の可変長符号は、図１６に示すように、３５ビットとなる。
【００９７】
図１７は、図９の符号化装置によって生成された符号列から音響信号を復号、出力する復号装置の構成例を示す。
【００９８】
伝送されてきたか、または情報記録媒体４から再生された符号列５０１から符号列分解回路４１によって各信号成分の符号が抽出され、それらの符号５０２から信号成分復号化回路４２によって各信号成分５０３が復号された後、逆変換回路４３によって音響波形信号５０４が生成、出力されるようになされている。
【００９９】
図１８は、符号列分解回路４１の構成例を示している。
【０１００】
制御部５１は、復号部５２を制御して、符号列分解回路４１に入力された符号化ユニットの符号列６０１から読み取った、量子化スペクトルの符号列（正確には、すべて正の値とされた量子化スペクトルの符号列）を復号させる。
【０１０１】
制御部５１はまた、符号化ユニットの符号列６０１から正負符号情報signを読み取るとともに、その正負符号情報signに基づいて、量子化スペクトルの正負を検出し、信号成分の符号を決定する。
【０１０２】
図１８の６０１は図１７の５０１に、図１８の６０２は図１７の５０２に、それぞれ対応している。
【０１０３】
図１９は、逆変換回路４３の構成例を示している。これは図９の変換回路１に対応したもので、逆スペクトル変換回路６１，６２によって信号７０１，７０２から得られた各帯域の信号７１１，７１２が、帯域合成フィルタ６３によって合成され、信号７２１として出力されるようになされている。図１９の７０１，７０２は図１７の５０３に、図１９の７２１は図１７の５０４に、それぞれ対応している。
【０１０４】
次に、復号装置の動作について説明する。符号列分解回路４１は、図２０のフローチャートに示すように、符号列分解処理を行う。
【０１０５】
ステップＳ２１において、制御部５１は、復号部５２を制御して、符号化ユニットの符号列から読み取った、１つのグループにまとめられたＱＳＰ（０）乃至ＱＳＰ（Ｍ−１）の量子化スペクトルの符号列（正の値に変換された量子化スペクトルの符号列）を復号させる。なお、Ｍは、符号化される際に１つのグループにまとめられたスペクトル信号の数である。
【０１０６】
ステップＳ２２において、制御部５１は、ステップＳ２１での復号により得られた値が、すべて値０であるか否かを判定し、そうではないと判定した場合、ステップＳ２３に進む。
【０１０７】
ステップＳ２３において、量子化スペクトルの符号列に続いて入力される正負符号情報sign（量子化スペクトルの正負を示す正負符号情報sign）が読み取られる。ここでの処理の詳細は、図２１のフローチャートに示されている。
【０１０８】
ステップＳ３１において、制御部５１は、それぞれ内蔵するカウンタｉおよびレジスタＮの値を、値０に初期設定する。
【０１０９】
次に、ステップＳ３２において、制御部５１は、ＱＳＰ（ｉ）に対応する、ステップＳ２１での復号により得られた値が値０であるか否かを判定し、値０であると判定した場合、ステップＳ３４に進む。
【０１１０】
一方、ステップＳ３２で、値０ではないと判定された場合、ステップＳ３３に進み、制御部５１は、レジスタＮの値を１だけ増加させ、ステップＳ３４に進む。
【０１１１】
ステップＳ３４において、制御部５１は、カウンタｉの値を１だけ増加させ、ステップＳ３５において、カウンタｉの値が、１つのグループにまとめられるスペクトル信号の数Ｍ未満であるか否かを判定し、Ｍ未満であると判定した場合、ステップＳ３２に戻り、それ以降の処理を実行する。
【０１１２】
ステップＳ３５で、カウンタｉの値が、スペクトル信号の数Ｍ未満ではないと判定された場合（それ以上である場合）、ステップＳ３６に進み、制御部５１は、符号化ユニットの符号列の、ステップＳ２１で読み取られた符号列の次のビットから、レジスタＮの値のビット数分の符号列を、正負符号情報signとして読み取る。
【０１１３】
その後、図２０のステップＳ２４に進み、ＱＳＰ（０）乃至ＱＳＰ（Ｍ−１）の符号が決定される。ここでの処理の詳細は、図２２のフローチャートに示されている。
【０１１４】
ステップＳ４１において、制御部５１は、カウンタｉの値を、値０に初期設定するとともに、レジスタmaskに設定した値１を、このときのレジスタＮの値から１だけ減算して得られた値分のビット数だけ、左方向にシフトさせる。
【０１１５】
ステップＳ４２において、制御部５１は、ＱＳＰ（ｉ）に対応する、ステップＳ２１での復号により得られた値が、値０であるか否かを判定し、値０ではないと判定した場合、ステップＳ４３に進み、ステップＳ３６で読み取られた正負符号情報signとレジスタmaskの論理積を計算し、その計算結果が値０であるか否かを判定する。
【０１１６】
ステップＳ４３で、論理積の計算結果が値０ではないと判定された場合、ＱＳＰ（ｉ）に対応する、ステップＳ２１での復号により得られた値に値−１に乗算し、ステップＳ４５に進む。
【０１１７】
一方、ステップＳ４３で、論理積の計算結果が値０であると判定された場合、ステップＳ４４の処理がスキップされて、ステップＳ４５に進む。
【０１１８】
ステップＳ４５において、制御部５１は、レジスタmaskの値を１ビットだけ右方向にシフトさせ、ステップＳ４６に進む。
【０１１９】
ステップＳ４２で、ＱＳＰ（ｉ）に対応する、ステップＳ２１での復号により得られた値が値０であると判定された場合、ステップＳ４３乃至ステップＳ４５の処理がスキップされて、ステップＳ４６に進む。
【０１２０】
ステップＳ４６において、制御部６１は、カウンタｉの値を１だけ増加させ、ステップＳ４７にいて、カウンタｉの値が、１つのグループにまとめられたスペクトル信号の数Ｍ未満であるか否かを判定し、Ｍ未満であると判定した場合、ステップＳ４２に戻り、それ以降の処理を実行する。
【０１２１】
ステップＳ４７で、カウンタｉの値がＭ未満ではないと判定された場合（それ以上である場合）、ここでの処理（ステップＳ２４の処理）とともに、図２０の処理が終了し、次に入力される量子化スペクトルの符号列に対して、ステップＳ１以降の処理が同様に行われる。
【０１２２】
次に、符号化された図１５に示す符号化ユニットを復号する場合を例として、符号列分解回路４１の動作を再度説明する。
【０１２３】
最初に読み取られた符号列”１１１１０”が復号され（ステップＳ２１）、（１，２）が得られる。（１，２）は、当然（０，０）ではないので（ステップＳ２２）、符号列”１１１１０”に続いて入力される正負符号情報sign”０１”が読み取られる（ステップＳ２３）。
【０１２４】
具体的には、（１，２）のうち、ＱＳＰ（０）に対応する値１は、値０ではないので（ステップＳ３２）、レジスタＮの値０が１だけ増加して値１になり（ステップＳ３３）、カウンタｉの値０が１だけ増加して値１となる（ステップＳ３４）。
【０１２５】
また（１，２）のうち、ＱＳＰ（１）に対応する値２も、値０ではないので、レジスタＮの値１がさらに１だけ増加して値２になり、カウンタｉの値１が１だけ増加して値２となる。
【０１２６】
そしてこの場合、量子化スペクトルの符号列”１１１１０”の次のビットから、レジスタＮの値２のビット数、すなわち、２ビット分のデータ”０１”が、正負符号情報signとして読み取られる。
【０１２７】
次に、ＱＳＰ（０），ＱＳＰ（１）の符号が決定される（ステップＳ２４）。
【０１２８】
具体的には、カウンタｉの値が、値０に初期設定され、レジスタmaskに設定された１が、１（＝レジスタＮの値２−値１）ビットだけ左方向にシフトされる。
すなわち、レジスタmaskは（１０）となる（ステップＳ４１）。
【０１２９】
（１，２）のうち、ＱＳＰ（０）に対応する値１は、値０ではないので（ステップＳ４２）、正負符号情報sign（０１）とレジスタmask（１０）の論理積が計算され、その計算結果は、０であるので（ステップＳ４３）、レジスタmask（１０）が、１ビットだけ右方向にシフトされて（０１）となる（ステップＳ４５）。すなわち、ＱＳＰ（０）に対応する値１は、もともと正の値であったので、値１が、そのままＱＳＰ（０）の符号とされる。
【０１３０】
カウンタｉの値０が１だけ増加して値１となる（ステップＳ４６）。
【０１３１】
（１，２）のうち、ＱＳＰ（１）に対応する値２は、値０でないので、正負符号情報sign（０１）とこのときのレジスタmask（０１）の論理積が計算され、その計算結果は、値１であるので、ＱＳＰ（１）に対応する値２に値−１が乗算されて値−２が得られる（ステップＳ４４）。
【０１３２】
すなわち、ＱＳＰ（１）に対応する値２は、もともと負の値であったので、ここで述べたように値−２とされ、それがＱＳＰ（１）の符号とされる。
【０１３３】
このようにして、符号列分解回路４１により抽出された符号５０２（図１７）は、信号成分復号化回路４２に入力され、復号される。この信号成分復号化回路４２は、図９に示す信号成分符号化回路２と逆の処理を行う。
【０１３４】
そして、信号成分復号化回路４２より出力された信号５０３は、そのより低い周波数のスペクトル信号成分７０１が、逆スペクトル変換回路６１に入力され、より高い周波数のスペクトル信号成分７０２が、逆スペクトル変換回路６２に入力される。逆スペクトル変換回路６１と６２は、それぞれ入力されたスペクトル信号成分７０１，７０２を、時間軸上の音響信号７１１，７１２に変換し、帯域合成フィルタ６３に出力する。帯域合成フィルタ６３は、より低い周波数の音響信号７１１と、より高い周波数の音響信号７１２を合成し、合成された音響信号７２１（５０４）として出力する。
【０１３５】
一般に音響波形信号は基本周波数とそれの整数倍の周波数成分、いわゆる倍音成分にエネルギーが集中している場合が多く、それ以外の周波数成分のスペクトル信号は量子化しても０になる場合が多い。基本周波数が高いほど、いわゆる倍音成分同士の距離が大きくなるため、０の量子化スペクトルの出現確率が高くなる。また、そのような周波数成分を持つ信号ほど、量子化精度を高くして量子化を行わないと、十分な聴感上の信号対雑音比を確保できないため、かなりの情報量を消費してしまう。特に符号化ユニットの幅が広い帯域では消費する情報量が大きい。
【０１３６】
そこで、このような信号に対して効率良く符号化を行うためには、０に量子化されたスペクトル信号をいかに少ない情報量で符号化するかが重要となる。最も良く知られている方法として、多次元の可変長符号を使う方法があるが、上述したように、膨大な量の符号列表が必要となり、実用的とは言えない。しかしながら、本発明による方法は、符号列表の規模を増大させることなく、効率の良い符号化を実現している。
【０１３７】
以上、帯域分割回路として、一旦、帯域分割フィルタにかけた信号をMDCTによりスペクトル変換したものを用い、また、帯域合成回路として、逆MDCT(IMDCT) により逆スペクトル変換したものを帯域合成フィルタにかけたものを用いた実施例について説明を行ったが、もちろん、帯域分割フィルタ、帯域合成フィルタを用いずに、MDCT変換、IMDCT変換を直接行うようにしても良い。また、スペクト ル変換の種類としては、MDCTに限らず、DFT、DCT等を用いても良い。
【０１３８】
さらに、必ずしも、スペクトル変換を用いなくても、帯域分割フィルタ、帯域合成フィルタのみによって帯域分割、帯域合成を行うようにしても良い。この場合、フィルタによって分割された帯域、またはそれらの帯域を複数個まとめた帯域を符号化ユニットとする。しかし、MDCT等のスペクトル変換を行い、多数のスペクトル信号に変換してから、実施例を用いて説明したように符号化ユニットを構成することによって、本発明の方法を効率良く適用することができる。
【０１３９】
また、以上においては、音響波形信号を処理する場合について説明を行ったが、本発明の方法は他の種類の信号に対しても適用することができ、例えば画像信号にも適用することが可能である。しかし、本発明は音響波形信号のもつ特徴を利用して、０に量子化されたスペクトル信号が多い場合に効率の良い符号化を実現しているため、音響波形信号に対して利用した場合に威力を発揮する。
【０１４０】
さらに、本発明による方法は、従来の可変長符号による方法と組み合わせて使うことも可能である。例えば、量子化精度が低い、すなわち量子化ステップ数が小さい場合においては従来の方法によって、２次元あるいは４次元の符号列表を用いて符号化を行い、量子化精度が高い、すなわち量子化ステップ数が大きい場合においては符号列表の規模を考慮し、本発明による方法を用いて符号化を行うようにすれば、より効果的である。
【０１４１】
また、上述した一連の処理は、ハードウエアにより実現させることもできるが、ソフトウエアにより実現させることもできる。一連の処理をソフトウエアにより実現する場合には、そのソフトウエアを構成するプログラムがコンピュータにインストールされ、そのプログラムがコンピュータで実行されることより、上述した符号化装置および復号装置が機能的に実現される。
【０１４２】
図２３は、上述のような符号化装置または復号装置として機能するコンピュータ１０１の一実施の形態の構成を示すブロック図である。CPU（Central Processing Unit）１１１にはバス１１５を介して入出力インタフェース１１６が接続されており、CPU１１１は、入出力インタフェース１１６を介して、ユーザから、キーボード、マウスなどよりなる入力部１１８から指令が入力されると、例えば、ROM（Read Only Memory）１１２、ハードディスク１１４、またはドライブ１２０に装着される磁気ディスク１３１、光ディスク１３２、光磁気ディスク１３３、若しくは半導体メモリ１３４などの記録媒体に格納されているプログラムを、RAM（Random Access Memory）１１３にロードして実行する。これにより、上述した各種の処理（例えば、図１３，２０のフローチャートにより示される処理）が行われる。さらに、CPU１１１は、その処理結果を、例えば、入出力インタフェース１１６を介して、LCD（Liquid Crystal Display）などよりなる出力部１１７に必要に応じて出力する。なお、プログラムは、ハードディスク１１４やROM１１２に予め記憶しておき、コンピュータ１０１と一体的にユーザに提供したり、磁気ディスク１３１、光ディスク１３２、光磁気ディスク１３３，半導体メモリ１３４等のパッケージメディアとして提供したり、衛星、ネットワーク等から通信部１１９を介してハードディスク１１４に提供することができる。
【０１４３】
なお、本明細書において、記録媒体により提供されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１４４】
【発明の効果】
本発明の符号化装置および方法、第１の記録媒体のプログラム、並びに第１のプログラムによれば、数値の正負を調整して、Ｍ個の数値の正負を統一し、正負が統一された数値を符号化し、Ｍ個の数値のうち特定値以外の数値の数を計算し、特定値以外の数値の正負が調整されたかどうかの情報を、計算された特定値以外の数値の数だけ生成して正負情報とし、正負情報を符号化し、それらを含む符号列を生成するようにしたので、例えば、符号列表の規模を増大させることなく、圧縮効率の高い符号化を行うことができる。
【０１４５】
本発明の復号装置および方法、第２の記録媒体のプログラム、並びに第２のプログラムによれば、Ｍ個の数値列を構成する数値の正負を統一して一つのグループとして符号化された第１の符号列と、正負を統一する際に正負が調整された数値を特定するための情報を符号化した第２の符号列とを含む符号列を受け取り、第１の符号列を復号し、第２の符号列を復号し、Ｍ個の数値のうちの特定値以外の数値の数を計算し、特定値以外の数値の正負が調整されたかどうかの情報を、計算された特定値以外の数値の数だけ読み取り、復号されたＭ個の正負が調整された数値列と、読み取られた正負が調整された数値を特定するための情報に基づいて、Ｍ個の数値列の正負を復元するようにしたので、例えば、符号列表の規模を増大させることなく、圧縮効率の高い符号化を行うことができる。
【図面の簡単な説明】
【図１】符号化ユニットのスペクトルを説明する図である。
【図２】量子化精度情報の表現方法を説明する図である。
【図３】従来技術による可変長符号を用いた符号化方法を説明する図である。
【図４】符号列表の例を示す図である。
【図５】従来技術による多次元の可変長符号を用いた符号化方法を説明する図である。
【図６】従来技術による多次元の符号列表の例を示す図である。
【図７】従来技術による多次元の他の符号列表の例を示す図である。
【図８】従来技術による多次元の他の符号列表の例を示す図である。
【図９】本発明を適用した符号化装置の構成例を示すブロック図である。
【図１０】図９の変換回路の構成例を示すブロック図である。
【図１１】図９の信号成分符号化回路の構成例を示すブロック図である。
【図１２】図９の符号列生成回路の構成例を示すブロック図である。
【図１３】符号列生成回路の動作を説明するフローチャートである。
【図１４】本発明で利用される符号列表の例を表す図である。
【図１５】本発明による符号化方法を説明する図である。
【図１６】従来技術による符号化方法を説明する他の図である。
【図１７】本発明を適用した復号装置の構成例を示すブロック図である。
【図１８】図１７の符号列分解回路の構成例を示すブロック図である。
【図１９】図１７の変換回路の構成例を示すブロック図である。
【図２０】符号列分解回路の動作を説明するフローチャートである。
【図２１】図２０のステップＳ２３の処理を説明するフローチャートである。
【図２２】図２０のステップＳ２４の処理を説明するフローチャートである。
【図２３】コンピュータ１０１の構成例を示すブロック図である。
【符号の説明】
１  変換回路，  ２  信号成分符号化回路，  ３  符号列生成回路，  ４  情報記録媒体，  １１  帯域分割フィルタ，  １２  順スペクトル変換回路，  １３  順スペクトル変換回路，  ２１  正規化回路，  ２２  量子化回路，  ２３量子化精度決定回路，  ３１  制御部，  ３２  符号化部，  ３３  符号化部，  ４１  符号列分解回路，  ４２  信号成分復号化回路，  ４３  逆変換回路，  ５１  制御部，  ５２  復号部，  ５３  復号部，  ６１，６２  逆スペクトル変換回路，  ６３  帯域合成フィルタ
【図１】
0004534112.tif 000002
【図２】
0004534112.tif 000003
【図３】
0004534112.tif 000004
【図４】
0004534112.tif 000005
【図５】
0004534112.tif 000006
【図６】
0004534112.tif 000007
【図７】
0004534112.tif 000008
【図８】
0004534112.tif 000009
【図９】
0004534112.tif 000010
【図１０】
0004534112.tif 000011
【図１１】
0004534112.tif 000012
【図１２】
0004534112.tif 000013
【図１３】
0004534112.tif 000014
【図１４】
0004534112.tif 000015
【図１５】
0004534112.tif 000016
【図１６】
0004534112.tif 000017
【図１７】
0004534112.tif 000018
【図１８】
0004534112.tif 000019
【図１９】
0004534112.tif 000020
【図２０】
0004534112.tif 000021
【図２１】
0004534112.tif 000022
【図２２】
0004534112.tif 000023
【図２３】
0004534112.tif 000024