(57)【特許請求の範囲】
【請求項１】
オーディオ信号の離散サンプル列を入力し、ディジタル符号を出力する符号化方法であって、
(a) 上記離散サンプル列を一定数の入力サンプルごとに時間／周波数変換し、周波数領域係数を得るステップと、
(b) 上記周波数領域係数を複数の係数毎にまとめた小帯域に分割するステップと、
(c) 各上記小帯域に対し、その小帯域を構成する周波数領域係数の形状の平坦度が所定値より小さい場合に予め決めたスカラ量子化を利用した符号化方法を選択し、そうでない場合に予め決めたベクトル量子化を利用した符号化方法を選択する選択情報を生成し、上記選択情報を符号化して選択情報符号として出力するステップと、
(d) 各上記小帯域を上記選択情報に従って符号化して係数符号を生成し、出力するステップ、
とを含むことを特徴とするオーディオ信号符号化方法。
【請求項２】
請求項１に記載のオーディオ信号符号化方法の各ステップをコンピュータに実施させるプログラムが記録されたコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、オーディオ信号を高能率にディジタル符号にする符号化方法及びその方法を実施するプログラムが記録された記憶媒体を提供するものであり、オーディオ信号の録音・再生や、オーディオ信号の通信路を使った伝送、放送などに利用できる。
【０００２】
【従来の技術】
オーディオ信号を高能率に符号化する従来からの手法として、例えば図１に示す変換符号化方法がある。符号化装置１０Ａでは、離散信号サンプル列として入力されたオーディオ信号を、一定サンプル数の入力ごとに時間／周波数変換部１１により時間／周波数変換を行って、周波数領域の一連の係数（以下、周波数領域係数と呼ぶ）にしてから符号化を行う。図１の例では、平坦化部１２により周波数領域係数を平坦化処理を行ってからベクトル量子化部１３で量子化を行ない、平坦化部１２で平坦化に使用した平坦化情報を表す符号とベクトル量子化部１３でのベクトル符号化による符号を多重化部１４で多重化し、出力する。
【０００３】
復号化装置１０Ｂでは、逆多重化部１５で受信した多重化符号を平坦化情報を表す符号とベクトル符号に分離し、ベクトル量子化復号化部１６でベクトル符号から平坦化周波数領域係数を得て、平坦化情報を使って逆平坦化部１７により平坦化周波数領域係数を逆平坦化して周波数領域係数を再生し、周波数／時間変換部１８により再生周波数領域係数を時間領域信号に変換して出力する。
周波数領域重み付けインタリーブベクトル量子化（Ｔｒａｎｓｆｏｒｍ−ｄｏｍａｉｎ  ＷｅｉｇｈｔｅｄＩｎｔｅｒｌｅａｖｅ  Ｖｅｃｔｏｒ  Ｑｕａｎｔｉｚａｔｉｏｎ，ＴＷＩＮＶＱ）方式はこの例に当てはまる。ＴＷＩＮＶＱ方式は、入力信号を時間／周波数変換した後、２段階の平坦化の手順を経た後に、ベクトル量子化により符号化を行っている。ベクトル量子化は、目標ベクトルとの距離が最小であるコードベクトルをコードブックから選択し、このコードベクトルを用いて復号化装置側でベクトルを再生する。このような符号化方法では、再生ベクトルと目標ベクトルとの距離は小さく高能率に符号化ができるが、ベクトル中の個々の要素についての目標値からの誤差を制御することは困難である。従って、ベクトル量子化を用いた符号化方式では、復号化装置側で再生した信号の周波数特性が、原信号の周波数特性から歪み、再生音質の劣化を招いてしまうことがある。スペクトルの形状が複雑な時、例えば入力信号に強いトーン性成分が含まれるときには、ベクトル量子化に大きな負担をかけるため、この性質が強く現れやすく、音質劣化の原因になってしまう。
【０００４】
この問題を解決するための技術が、特願  ２０００−０７８３７０「オーディオ信号符号化方法及び復号化方法、これらの装置及びプログラム記憶媒体」において提案されている。ここでは、音源のスペクトルが複雑な形状をしている場合、周波数領域係数を強弱の２系統に分離し、おのおのの系統ごとに重み付けをしたベクトル量子化をすることにより、より細かいサンプルごとの量子化誤差の制御を可能にしている。しかし、この方法では、周波数領域係数の分離情報の符号化に比較的多くのビット数を必要とし、特に強弱の出現確率が均等に近くなってくる低周波数領域では非効率を招くことがある。
【０００５】
別の解決策の手法として、ベクトル量子化に大きな影響を与える特定のサンプルだけ予め取り除いて符号化するものがあり、特願平７−２６１２３６「音響信号変換符号化方法及び復号化方法」及び７−２４８１４５「変換符号化方法及び変換復号化方法」において出願されている。前者の出願では、重要度の高いサンプルを予め取り除き、残りをベクトル量子化しているが、この方法では、取り除くサンプルの周波数軸上での位置の情報を符号化しなくてはならないので符号化の能率が悪い。後者の方法では、スペクトルに周期的なスパイクが生じるピッチ性の音源について、スパイクの基本周波数の整数倍に位置するサンプルを取り除いて別個符号化する。この方法では、符号化能率は良いが、トライアングルなどの非整数倍音構造をもつ音源に対しては効果が薄く、汎用性に乏しい。
【０００６】
なお、ＴＷＩＮＶＱ方式については、岩上他「周波数領域重み付けインタリーブベクトル量子化（ＴＷＩＮＶＱ）による楽音符号化」電子情報通信学会論文誌Ｖｏｌ．Ｊ８０−Ａ，  ｐｐ．８３０〜８３７及びＩＳＯ／ＩＥＣ  標準  １ＳＯ／ＩＥＣ  １４４９６−３  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ：  Ｃｏｄｉｎｇ  ｏｆ  Ａｕｄｉｏ−Ｖｉｓｕａｌ  Ｏｂｊｅｃｔｓ  （ＭＰＥＧ−４  Ａｕｄｉｏ）に詳細が記述されている。また、ベクトル量子化技術全般に関する詳細は、古井他著「ベクトル量子化と情報圧縮」（コロナ社、１９９８）に述べられている。
【０００７】
【発明が解決しようとする課題】
この発明は、入力信号のスペクトルを符号化するオーディオ信号の変換符号化方法において、複雑な形状を持つスペクトルを、高い汎用性で能率よく符号化する方法を提供することを課題とする。
【０００８】
【課題を解決するための手段】
符号器では、入力された信号の系列を一定時間ごとに周波数領域に変換し、得られた周波数領域の係数を、近傍同士をまとめた小帯域に分割する。小帯域ごとに、係数を符号化するモデルを決定し、その決定された方法で小帯域に属する係数を量子化及び符号化する。
【０００９】
【作用】
例えば、符号化のモデルとしてベクトル量子化を用いた方法とスカラ量子化を用いた方法の２種類を持つ場合、ベクトル量子化は、少ないビット数でも高能率に量子化ができる反面、サンプルごとの歪みの制御が困難である。スカラ量子化は、サンプルごとの独立性は良いが、量子化ビット数が足りないと能率が大幅に劣化してしまう。この発明では、このように、相異なる性質を持つ符号化モデルを複数持ち、入力スペクトルの各小帯域ごとに最適なモデルを選択することにより、汎用性が高く高能率な符号化を可能にしている。
【００１０】
【発明の実施の形態】
図２に本発明の第１の実施例を示す。図２の実施例において、符号化装置１０Ａは時間／周波数変換部１０と、符号化モデル選択部２０と、量子化・符号化部３０と、多重化部４０とにより構成され、例えば、オーディオ信号などの離散サンプル列を端子９に入力して、符号化したビット列を多重化部４０から出力する。即ち、入力信号は時間／周波数変換部１０において例えば変形離散コサイン変換（ＭＤＣＴ）により周波数領域係数に変換され、この周波数領域係数は符号化モデル選択部２０において一連の周波数領域係数を複数の係数毎に区切った小帯域毎に予め決めた複数の符号化方法のどれを使用して符号化を行うかが選択指定され、その選択情報を量子化・符号化部３０に与えると共に、選択情報の符号を多重化部４０に与える。周波数領域係数は量子化・符号化部３０において選択情報により指定された符号化方法により符号化され、その周波数領域係数の符号（以下、係数符号と呼ぶ）が多重化部４０に与えられる。多重化部４０は選択情報符号と係数符号を多重化し、ビット列として出力する。
【００１１】
復号化装置１０Ｂは逆多重化部５０と、符号化モデルの選択情報再生部６０と、係数再生部７０と、周波数／時間変換部８０とから構成され、入力された多重化符号ビット列を復号し、時間領域の離散サンプル列であるオーディオ信号を出力端子９１から出力する。即ち、入力された多重化符号ビット列は逆多重化部５０において符号化モデルの選択情報符号と係数符号とに分離され、選択情報符号は復号化モデル選択再生部６０に与えられて選択情報に再生され、その選択情報は係数再生部７０に与えられる。逆多重化部５０からの係数符号は係数再生部７０に与えられ、符号化装置１０Ａにおける符号化モデル選択部２０により各小帯域に対し選択された符号化方法に対応する復号化方法が選択情報により選択され、係数符号に対する復号化が行われ、周波数領域係数が再生される。この周波数領域係数は周波数／時間変換部８０により時間領域のサンプル系列に変換され、復号結果として端子９１に出力される。
【００１２】
次に符号化装置１０Ａの各部について図５に示す周波数領域係数に対する処理を参照して詳細に説明する。
時間／周波数変換部１０
端子９に入力されたオーディオ信号の離散サンプル列は、時間／周波数変換部１０に入力され、一定数Ｎの入力サンプル（１フレームとする）ごとに時間／周波数変換を行い、周波数領域のＮ個の係数に変換する。時間／周波数変換の方法としては、離散コサイン変換（ＤＣＴ）  や、変形離散コサイン変換（ＭＤＣＴ）を用いることができる。図５に示す例では、各丸印が１つの係数値を表し、ここでは２チャネルオーディオ信号がフレーム毎に交互に周波数領域係数に変換される場合を示している。
【００１３】
変換方法として変形離散コサイン変換を用いる場合には、Ｎ個の入力ごとに過去２×Ｎ個の入力オーディオサンプルを変換してＮ個の周波数領域の係数を得る。時間／周波数変換処理を行う直前にハミング窓やハニング窓などの窓関数をかけても良い。Ｎの値は、時間／周波数変換アルゴリズムに適用できるどのようなものを適用しても良いが、１２８から２０４８  の間の値を使うと最も効果が高い。また、入力信号の性質に応じて適応的にＮの値を切り替えても良い。例えば、通常時Ｎ＝２０４８としておき、入力音が過渡的な時Ｎ＝５１２，更に大きく過渡的であったときにはＮ＝１２８  としても良い。適応的に切り替える場合、次のフレームのＮの値を符号化して復号化装置に送る。
符号化モデル選択部２０
時間／周波数変換部１０で得られた周波数領域での一連の係数は、符号化モデル選択部２０へ送られる。符号化モデル選択部２０では、一連の周波数領域係数を例えば図５に示すように複数の係数毎にまとめることによって構成された小帯域ごとに、予め決めた複数の符号化方法のうち、どの符号化方法を用いるのが最適かを判断し、その符号化方法を選択する選択情報を出力する。図５に示す各小帯域に付けられた番号ｎ（ｃ）（ただしｎ＝０，…，Ｎ−１及びｃ＝０，１）の括弧内の番号ｃはチャネル番号を表している。この実施例では、符号化モデルとして、ベクトル量子化を用いるタイプとスカラ量子化を用いるタイプの２つが選択できる場合を示している。それぞれの符号化モデルの詳細は、後述する。
【００１４】
小帯域を構成する周波数領域係数の数は、一定数でも良いし、その小帯域が属する周波数によって変化させても良い。後者の場合には、周波数の低い領域では係数の数を少なく、周波数の高い領域では係数の数を多くとると、後段での符号化を能率よく行うことができる。
符号化モデル選択部２０におけるベクトル量子化タイプとスカラ量子化タイプの選択は、その小帯域の性質を利用して判断すれば良い。図３Ａ，３Ｂ，３Ｃ，３Ｄのそれぞれに選択アルゴリズムの例を示す。例えば図３Ａに示すように、各小帯域に含まれるＭ個の周波数領域係数ｘｉ，  ｉ＝０，…，Ｍ−１の平坦度Ｓを次式
【００１５】
【数１】
0003557164.tif 000002
のように計算し（ステップＳ１１）、平坦度Ｓを予め決めた閾値Ｓｔｈ  と比較し（ステップＳ１２）、ＳがＳｔｈ  よりより小さいとき、例えば閾値Ｓｔｈ＝０．５  を下回るときにはスカラ量子化タイプを選択し（ステップＳ１３）、そうでない時にはベクトル量子化タイプを選択し（ステップＳ１４）、各小帯域に対し選択されたタイプを表す選択情報を出力する（ステップＳ１５）。
【００１６】
あるいは、図３Ｂに示すように、小帯域に含まれるＭ個の周波数領域係数ｘｉを、その大きさで強弱の２系統ｘｊ，ｊ＝０，…，Ｊ−１及びｘｋ，ｋ＝０，…，Ｋ−１（ただしｊ≠ｋ，  Ｊ＋Ｋ＝Ｍ）に分け（ステップＳ２１）、それぞれの系統に属する係数のパワーＰＪ＝Σ｜ｘｊ｜２とＰＫ＝Σ｜ｘｋ｜２の比ＰＪ／ＰＫ  を計算し（ステップＳ２２）、このパワーの比を一定の値Ｃと比較し（ステップＳ２３）、例えばＣ＝２．０  を超えた場合にはスカラ量子化タイプを選択し（ステップＳ２４）、そうでないときにはベクトル量子化タイプを選択し（ステップＳ２５）、各小帯域に対し決定した選択情報を出力する（ステップＳ２６）。
【００１７】
あるいは、各入力フレームに対して得られた周波数領域係数の一連の小帯域のうち、低次側（低周波数側）の小帯域はスカラ量子化タイプ、高次側（高周波数側）の小帯域はベクトル量子化タイプで符号化を行うことを前提とし、低次側小帯域に対するスカラ量子化に必要なビット数が予め決めたある一定数に達する小帯域を、ベクトル量子化との切り替わりの点とする方法を用いても良い。即ち、図３Ｃに示すように、ｎ＝０，  Ｂ＝０を初期値とし（ステップＳ３１）、ｎ番目の小帯域ｎ（ｃ）に対しスカラ量子化を選択し、予め決めた量子化精度を満たすスカラ量子化ビット数ｂｎを割り当て（ステップＳ３２）、割り当てたビット数ｂｎを累積し（ステップＳ３３）、割り当てビット数の累積値Ｂが所定値ＢＳより小さいか判定し（ステップＳ３４）、小さければｎを１増加させステップＳ３２に戻り（ステップＳ３５）、ＢがＢＳ以上であれば残りの小帯域に対しベクトル量子化を選択する（ステップＳ３６）。この図３Ｃの例では、選択情報を送る替わりにどの周波数又はどの小帯域から符号化方法が変わるかを表す情報を送ればよい。
【００１８】
更に、小帯域ごとにどちらの符号化モデルを用いるか予め決めておいても良い。例えば図３Ｄに示すように、周波数F=4kHzよりも低い周波数に属する小帯域に対しスカラ量子化タイプを選択し（ステップＳ４１）、それより高い周波数に属する小帯域に対してはベクトル量子化タイプを選択する（ステップＳ４２）と予め決めても良い。この場合は、選択情報を復号化装置に送る必要はない。
なお、上記の選択方法のうち複数の方法を組み合わせても良い。例えば、図３ＤのステップＳ４１に従って2kHzよりも低い周波数に属する小帯域に対しては必ずスカラ量子化タイプで行うこととし、2kHzから7kHzの間に属する小帯域に対しては、上記図３Ｂの方法により量子化方法を選択し、7kHzよりも高い周波数に属する小帯域に対しては図３ＤのステップＳ４２に従って必ずベクトル量子化タイプを選択することとする、などの方法で決定しても良い。図３Ａ及び３Ｂの場合は、各小帯域に対し、２つの符号化モデルのいずれの一方が適用されるかを指定する選択情報が生成される。
【００１９】
このようにして決められた符号化モデルの選択情報は量子化・符号化部３０に送るとともに、符号化されて選択情報符号ＱＭＳＣとして多重化部４０に送られる。この実施例では、選択できる符号化モデルは２種類であるため、選択情報は各小帯域ごとに高々１ビットあれば符号化できる。もちろん、符号化モデルは２種類より多くてもよい。また、エントロピー符号化やランレングス符号化などを用いて、選択情報を可逆圧縮しても良い。
量子化・符号化部３０
量子化・符号化部３０では、符号化モデル選択部２０で決定された符号化方法を用いて、小帯域ごとに量子化及び符号化を行う。
【００２０】
図４に量子化・符号化部３０の詳細を示す。量子化・符号化部３０は重み計算部３１と、係数振り分け部３２と、重み振り分け部３３と、ベクトル量子化部３４と、スカラ量子化部３５と、可逆圧縮部３６とから構成されている。重み計算部３１では、入力された各小帯域の周波数領域係数に対し、量子化の重みを計算する。重みとしては、線形予測スペクトルを用いる方法、小帯域ごとに平均値あるいは最大値を求めこれを重みとする方法、あるいは、その組み合わせなどを用いることができる。
【００２１】
重み計算部３１で計算された重みは、重み振り分け部３３に送られる。また、重みは、復号化装置１０Ｂでも使用されるため、符号化して重み符号ＷＣを他の符号と共に多重化部４０を介して復号化装置１０Ｂに送られる。線形予測スペクトルは、線形予測係数をＬＳＰ係数に変換し符号化することにより、高能率に符号化することができる。また、小帯域の代表値は、その値を量子化することにより符号化できる。量子化の方法としては、ベクトル量子化を用いても良いし、スカラ量子化しても良い。量子化した量子化インデックスはエントロピー符号化などの非可逆圧縮を加えて符号化しても良い。圧縮しない場合の符号は、量子化インデックスを２進数で表すことにより得られる。
【００２２】
係数振り分け部３２では、小帯域ごとの周波数領域係数を入力とし、符号化モデル選択部２０より送られた符号化モデル選択情報に基づき、小帯域ごとに係数をベクトル量子化部３４とスカラ量子化部３５に振り分ける。符号化モデル情報は、小帯域ごとに定められた２値の値なので、この値に従って対応する符号化モデルに係数を振り分ければよい。図５の例では、選択情報に従ってチャネル０の小帯域０（０）〜３（０）はスカラ量子化に振り分けられ、小帯域４（０），  ５（０）はベクトル量子化に振り分けられ、また、チャネル１の小帯域０（１），  １（１），  ２（１），  ４（１）がスカラ量子化に振り分けられ、小帯域３（１），  ５（１）がベクトル量子化に振り分けられた場合を示している。
【００２３】
重み振り分け部３３では、係数振り分け部３２と同じ方法で重みを振り分ける。ベクトル量子化部３４では、係数振り分け部３２及び重み振り分け部３３より送られた重みを使って係数振り分け部３２からの係数をベクトル量子化する。量子化に先立ち、入力された係数をまとめ１個以上の量子化ユニットを構成する。量子化ユニットは、全係数を全て格納して１つだけ構成しても良いし、図５で示した例のステレオ符号化の場合には、ベクトル量子化ユニットＶＱ−ＣＵ０  で示すようにチャネルごとに１つの量子化ユニットを構成しても良い。また、係数を一定数ごとに分割し、多数の量子化ユニットを構成しても良い。
【００２４】
ベクトル量子化は、量子化ユニットごとに行われるが、量子化ユニットを一括してベクトル量子化しても良いし、分割してベクトル量子化しても良い。分割の方法としては、複数の領域に分ける方法、あるいは入力係数をインタリーブしてから分割する方法などを用いることができる。最適ベクトルの選択は、コードブック中のコードベクトルに重み振り分け部３３からの重みを乗算し、目標となる係数ベクトルに最も近くなるものを選択することにより行う。ベクトル量子化の形態としては、通常のベクトル量子化の他、２つのコードブックから選択したコードベクトルの和を用いる共役構造ベクトル量子化、あるいは多段ベクトル量子化などの形態を用いても良い。このようにして決定されたコードベクトルインデックスを２進数で表すことにより符号化を行い、ベクトル量子化符号ＶＱＣ  を多重化部４０に送る。
【００２５】
スカラ量子化部３５では、重み振り分け部３３からの重みを使って係数振り分け部３２からの小帯域ごとの周波数領域係数をスカラ量子化し、量子化インデックスは可逆圧縮部３６へ送られる。量子化に先立ち、入力された係数をまとめ１個以上の量子化ユニットを構成する。１小帯域ごとに１ユニットを構成すると良好な結果が得られる。量子化値は、重み振り分け部３２からの重みを掛け合わせて周波数領域係数と最も近づくような２進値を所望の量子化精度で決定する。この量子化の際に、量子化精度（例えばビット数）を決定する必要があるが、これは量子化ユニットごとに設定する。周波数領域係数のパワーとスペクトル形状に基づき決定された、最低限保証する必要がある量子化誤差から決定することが望ましい。
【００２６】
ここで決定された量子化精度情報も何らかの形で符号化し復号器に送る必要がある。最も簡単な方法としては、量子化精度を満たすのに必要な量子化ビット数を符号化することが挙げられる。その他、可逆圧縮部３６でエントロピー符号化を行う場合には、ハフマン符号化ならハフマン符号テーブル、算術符号化ならシンボルの出現頻度テーブルにより量子化精度を与えることができるので、このテーブルの種類を符号化することにより量子化精度情報を復号器に送ることができる。
【００２７】
なお、前述のベクトル量子化における重み付け及び上述のスカラ量子化における重み付けは、図１で説明した平坦化部１２による平坦化と本質的に同じである。即ち、図４に示したベクトル量子化におけるコードベクトル又はスカラ量子化における量子化値に重みを乗算する代わりに、周波数領域係数を重みで割り算し（即ち、平坦化し）、その割り算結果をベクトル量子化又はスカラ量子化しても処理手順が異なるだけで符号化結果は同じである。
【００２８】
可逆圧縮部３６では、スカラ量子化部３５で得られた量子化インデックスに可逆圧縮符号化を行ない、圧縮スカラ量子化符号CSQCを多重化部４０に供給する。可逆圧縮符号化に先立ち、１つ以上の量子化ユニットをまとめ、符号化ユニットを構成する。図５の例では、チャネル０の処理において２つの量子化ユニットSQU0，SQU1をまとめて１つの符号化ユニットSQCU0とし、２つの量子化ユニットSQU2，SQU3をまとめて１つの符号化ユニットSQCU1とし、チャネル１についても同様の処理を行っている。
【００２９】
符号化ユニットは量子化ユニットを一定数ずつまとめて構成しても良いし、似た量子化精度をもつ量子化ユニット同士をまとめて符号化ユニットを構成しても良い。後者の場合、符号化ユニットの構成情報を符号化して復号器に送る必要がある。可逆圧縮の方法としては、ハフマン符号化や算術符号化などのエントロピー符号化の他、量子化値０が長く続く場合には、ランレングス符号化を用いても効果がある。エントロピー符号化を行う場合、ハフマン符号化なら、ハフマン符号テーブル、算術符号化ならシンボルの出現頻度のテーブルを与える必要がある。このテーブルは符号化ユニットごとに与える。
【００３０】
多重化部４０は符号化モデル選択情報符号QMSC、重み符号WC、ベクトル量子化符号VQC 、圧縮スカラ量子化符号CSQCを多重化し、多重化符号ビット列として出力し、例えば記憶媒体に書き込んだり、あるいは他の装置に送信する。
次にこの発明の符号化方法により符号化された符号を復号する復号化装置１０Ｂについて説明する。
図２に示したように、入力された多重化符号ビット列は逆多重化部５０において分離され、選択情報QMSC、重み符号WC、ベクトル量子化符号VQC 、圧縮スカラ量子化符号CSQCを得る。選択情報QMSCは符号化モデル選択再生部６０において選択情報に再生され、係数再生部７０に与えられる。
符号化モデル選択再生部６０
符号化モデル選択再生部６０では、符号化モデル選択符号QMSCのビット列が入力され、符号化モデル選択情報が再生される。符号化モデル選択情報が可逆圧縮されている場合、圧縮方法に対する復号化を行い、符号化モデル選択の２値情報を得る。可逆圧縮がかけられていない場合には、ビット列を２値の整数化して、符号化モデルの選択情報とする。このようにして得られた符号化モデルの選択情報は、係数再生部７０に送られる。
係数再生部７０
係数再生部７０では、逆多重化部５０から、符号化装置１０Ａにおける量子化・符号化部３０の符号化出力である係数符号（ベクトル量子化符号VQC と、圧縮スカラ量子化符号CSQCと、重み符号WC）と選択情報が与えられ、選択情報により指定された符号化方法に対応する復号化を行って周波数領域係数を再生し、周波数／時間変換部８０に与える。
【００３１】
図６に係数再生部７０の詳細を示す。係数再生部７０は可逆圧縮復号化部７１と、スカラ量子化再生部７２と、周波数領域再構築部７３と、ベクトル量子化再生部７４と、重み再生部７５と、重み付け部７６とから構成されている。
逆多重化部５０により分離された符号ビット列のうち、ベクトル量子化符号ＶＱＣ  のビット列は、ベクトル量子化再生部７４において、２進数を整数表現することにより量子化インデックスに復元され、コードブックを参照して対応するベクトルを読み出し、そのベクトルを重みなし小帯域係数として再生する。符号化装置１０Ａにおけるベクトル量子化部３４を複数のベクトル量子化により構成した場合には、符号化装置１０Ａのベクトル量子化部３４と同じ規則を用いて再生されたベクトルをベクトル逆量子化により再構築し、重みなし小帯域係数を得る。再生された重みなし小帯域係数は、周波数領域再構築部７３に送られる。
【００３２】
逆多重化部５０からの圧縮スカラ量子化符号ＣＳＱＣのビット列は、可逆圧縮復号化部７１において、符号化装置側で可逆圧縮符号化した手法に対応する復号化を行うことによりスカラ量子化インデックスを得、スカラ量子化再生部７２に送られる。
スカラ量子化再生部７２では、可逆圧縮復号化部７１より受け取ったスカラ量子化インデックスを量子化ユニットごとにスカラ逆量子化して量子化値に復元することにより重みなし小帯域係数を再生する。再生した重みなし小帯域係数は、周波数領域再構築部７３に送られる。
【００３３】
周波数領域再構築部７３では、スカラ量子化再生部７２及びベクトル量子化再生部７３より送られた量子化ユニットごとの重みなし小帯域係数を、符号化モデル選択情報再生部６０より受け取った符号化モデル選択情報に従って重みなし周波数領域係数に再構築する。
重み再生部７５では、逆多重化部５０から重み符号ＷＣのビット列を受け取り、重みを再生する。重み付け部７６では、周波数領域再構築部７３で構築した重みなし周波数領域係数に重み再生部７５で得た重みを乗算して周波数領域係数を得る。
周波数／時間変換部８０
周波数／時間変換部８０では、整数再生部７０からの周波数領域係数に対し周波数／時間変換を行いオーディオ信号を出力する。周波数／時間変換の方法としては、逆離散コサイン変換（ＩＤＣＴ）や、逆変形離散コサイン変換（ＩＭＤＣＴ）を用いることができる。変換方法として逆変形離散コサイン変換を用いる場合には、Ｎ個の入力係数を変換して２Ｎ個の時間領域のサンプルを得る。このサンプルに、窓関数を掛けた後、現フレームの前半Ｎサンプルと一つ前のフレームの後半Ｎサンプル同士を加え合わせて得られたＮサンプルを出力とする。
【００３４】
Ｎの値は、時間／周波数変換アルゴリズムに適用できるどのようなものを適用しても良いが、１２８から２０４８  の間の値を使うと最も効果が高い。また、符号器で入力信号の性質に応じて適応的にＮの値を切り替えた場合、例えば、通常時Ｎ＝２０４８としておき、入力音が過渡的な時  Ｎ＝５１２、更に大きく過渡的であったときにはＮ＝１２８  とした場合、符号化装置から渡されたＮの情報に従ってＮの値を決定する。
【００３５】
図７はこの発明による符号化方法及びこの符号化方法により符号化された符号を復号する復号化方法をコンピュータで実施する場合の構成を示し、コンピュータ１００は、バス１８０を介して互いに接続されたＣＰＵ１１０，ＲＡＭ１２０、ＲＯＭ１３０，入出力インタフェース１４０、ハードディスク１５０を含んでいる。ＲＯＭ１３０にはコンピュータ１００を動作させる基本プログラムが格納されており、ハードディスク１５０には前述したこの発明による符号化方法及びこの符号化方法により符号化された符号を復号する復号化方法を実行するプログラムが予め格納されている。
【００３６】
例えば符号化時にはＣＰＵ１１０はハードディスク１５０から符号化プログラムをＲＡＭ１２０にロードし、インタフェース１４０から入力されたオーディオ信号サンプルを符号化プログラムに従って処理することにより符号化し、インタフェース１４０から出力する。復号時には、復号プログラムをハードディスク１５０からＲＡＭ１２０にロードし、入力符号を復号プログラムに従って処理してオーディオ信号サンプルを出力する。
【００３７】
この発明による符号化方法及びこの符号化方法により符号化された符号を復号する復号化方法を実行するプログラムは、内部バス１８０に駆動装置１６０を介して接続された外部ディスク装置１７０に記録されたものを使用してもよい。あるいは、インタフェース１４０を介して外部ネットワークからプログラムをダウンロードしてハードディスク１５０に格納したものでもよい。この発明による符号化方法を実行するプログラムが記録された記憶媒体としては、磁気記録媒体や、ＩＣメモリや、コンパクトディスクなどのような形態の記憶媒体であってもよい。
【００３８】
【発明の効果】
本発明を利用すると、低いビットレートでのオーディオ信号の符号化において、入力音の特性に適応した高能率な符号化を可能とする。
【図面の簡単な説明】
【図１】ベクトル量子化利用の変換符号化方法の一般的な形態を示すブロック図。
【図２】本発明の実施例の構成を示すブロック図。
【図３】Ａは符号化モデル選択アルゴリズムの一例を示すフロー図、Ｂは他の選択アルゴリズムを示すフロー図、Ｃは更に他の選択アルゴリズムを示すフロー図、Ｄは更に他の選択アルゴリズムを示すフロー図。
【図４】本発明の実施例中の量子化・符号化部の詳細な構成を示すブロック図。
【図５】入力周波数領域係数と、小帯域と、符号化モデル選択と、量子化ユニットと、符号化ユニットの構成例を示す図。
【図６】本発明の実施例中の、係数再生部の詳細な構成を示すブロック図。
【図７】この発明の符号化方法及びこの符号化方法により符号化された符号を復号する復号化方法をプログラムにより実施するためのコンピュータの構成を示すブロック図。
【図１】
0003557164.tif 000003
【図２】
0003557164.tif 000004
【図３】
0003557164.tif 000005
【図４】
0003557164.tif 000006
【図５】
0003557164.tif 000007
【図６】
0003557164.tif 000008
【図７】
0003557164.tif 000009