(57)【要約】  本発明は、デジタルオーディオ信号（Ｓ）のサンプルのスカラー量子化ベースの符号化の方法に関し、前記サンプルは量子化インデックス（ＩＰＣＭ）のバイナリフレームを得るために所定数のビットで符号化され、前記符号化は振幅圧縮法に従って実行され、ここで所定数の最下位ビットは量子化インデックスのバイナリフレームで考慮されない。前記符号化は、前記量子化インデックスのバイナリフレームに考慮されない最下位ビットの一部を格納（２７）し、格納されたビットからなるエンハンスメントビットストリーム（ＩＥＸＴ）を決定（２８）するステップを含む。本発明は、また、関連の復号化方法に関し、拡張ビットからなるエンハンスメントビットストリーム（Ｉ’ＥＸＴ）を受信（２９）し、前記バイナリフレームからのビットの後に前記拡張ビットを連結（３０）するステップを含む。本発明は、また、これらの方法を実施する符号化器および復号化器に関する。
2010532876.tif 000002
【特許請求の範囲】
【請求項１】
デジタルオーディオ信号（Ｓ）のサンプルのスカラー量子化ベースの符号化のための方法であって、前記サンプルは、量子化インデックス（ＩＰＣＭ）のバイナリフレームを得るために所定数のビットで符号化され、前記符号化は振幅圧縮法に従って実施され、ここで、所定数の最下位ビットが前記量子化インデックスのバイナリフレームで考慮されず、本方法は、
−  少なくとも、前記量子化インデックスのバイナリフレームで考慮されない前記最下位ビットの一部を格納するステップ（２７）と、
−  このように格納された少なくとも１ビットからなるエンハンスメントビットストリーム（ＩＥＸＴ）を決定するステップ（２８）と
を含むことを特徴とする方法。
【請求項２】
前記格納されたビットは、前記量子化インデックスのバイナリフレームで考慮されない最上位ビットであることを特徴とする請求項１記載の方法。
【請求項３】
前記エンハンスメントビットストリームの決定で考慮されるビットの数は、復号化器への伝送中に利用可能なビットレートの関数であることを特徴とする請求項１又は２の何れか１項記載の方法。
【請求項４】
前記スカラー量子化ステップは、ＩＴＵ−Ｔ  Ｇ．７１１標準によるμタイプまたはＡタイプの対数振幅圧縮符号化法に従うＰＣＭタイプの量子化であることを特徴とする請求項１乃至３の何れか１項記載の方法。
【請求項５】
振幅圧縮法に従って逆量子化ステップ（２２）により所定数のビットからなる量子化インデックス（Ｉ’ＰＣＭ）のバイナリフレームを復号化するための方法であって、
−  １又は２以上の拡張ビットからなるエンハンスメントビットストリーム（Ｉ’ＥＸＴ）を受信するステップと、
−  復号化されたオーディオ信号を得るために、前記バイナリフレームからのビットの後に前記拡張ビットを連結するステップと
を含むことを特徴とする方法。
【請求項６】
前記復号化されたオーディオ信号を得るために、受信された拡張ビットの数により丸め値を設定するためのステップを更に含むことを特徴とする請求項５記載の方法。
【請求項７】
デジタルオーディオ信号（Ｓ）のサンプルのスカラー量子化のためのモジュール（２０）を備えたオーディオ符号化器であって、前記サンプルが、量子化インデックス（ＩＰＣＭ）のバイナリフレームを得るために、所定数のビットで符号化され、前記符号化が、振幅圧縮法に従って適用され、所定数の最下位ビットが前記量子化インデックスのバイナリフレームで考慮されず、本オーディオ符号化器は、
−  少なくとも、前記量子化インデックスのバイナリフレームで考慮されない前記最下位ビットの一部を格納する機能を有するメモリ領域（２７）と、
−  このように格納された少なくとも１ビットからなるエンハンスメントビットストリームを決定するための手段（２８）と
を備えたことを特徴とするオーディオ符号化器。
【請求項８】
振幅圧縮法に従って逆量子化モジュール（２２）により所定数のビットからなる量子化インデックス（Ｉ’ＰＣＭ）のバイナリフレームを復号化する機能を有するオーディオ復号化器であって、
−  １又は２以上の拡張ビットからなるエンハンスメントビットストリームを受信するための手段（２９）と、
−  復号化されたオーディオ信号を得るために、前記バイナリフレームからのビットの後ろに前記拡張ビットを連結（３０）するための手段と
を備えたことを特徴とするオーディオ復号化器。
【請求項９】
符号化器のメモリ、及び／又は、前記符号化器のドライブと協調動作する機能を有する記録媒体に格納されるように構成されたコンピュータプログラムであって、前記符号化器のプロセッサによって実行されたときに請求項１乃至４の何れか１項記載の符号化方法のステップを実施するためのコード命令を含むコンピュータプログラム。
【請求項１０】
復号化器のメモリ、及び／又は、前記復号化器のドライブと協調動作する機能を有する記録媒体に格納されるように構成されたコンピュータプログラムであって、前記復号化器のプロセッサによって実行されたときに請求項５又は６の何れか１項記載の復号化方法のステップを実施するためのコード命令を含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オーディオデータの階層符号化(hierarchical coding)のための方法に関し、更に詳しくは、スカラー量子化ベースの符号化に関する。
【背景技術】
【０００２】
この符号化は、とりわけ、オーディオ周波数信号（音声、音楽、その他）のようなデジタル信号の伝送及び／又は格納のために設計されている。
【０００３】
本発明は、更詳しくは、予測(prediction)を用いず、各入力サンプルが個々に符号化されるＰＣＭ(Pulse Code Modulation)符号化のような波形の符号化に関する。
【０００４】
ＵＩＴ−Ｔ  Ｇ．７１１勧告によって特定されるＰＣＭ符号化／復号化の一般原理は、図１を参照して説明されるようなものである。入力信号は、[３００−３４００Ｈｚ]の最小帯域幅で規定され、サンプルあたり１６ビットの解像度で（「線形ＰＣＭ」として知られるフォーマットで）、８ｋＨｚでサンプリングされるものと仮定されている。
【０００５】
ＰＣＭ符号化器１３は、量子化モジュール（ＱＰＣＭ）１０を備え、この量子化モジュール（ＱＰＣＭ）１０は、その入力で入力信号Ｓを受信する。量子化モジュール１０の出力の量子化インデックスＩＰＣＭは、伝送チャネル１１を介して復号化器１４に伝送される。
【０００６】
復号化器１４は、伝送チャネルから入来するインデックスＩ’ＰＣＭをその入力で受信し、インデックスＩ’ＰＣＭは、バイナリエラーの影響を受けたＩＰＣＭの変形(version)であり、そして、符号化された信号Ｓ’Ｍｉｃを得るために、逆量子化モジュール（Ｑ−１ＰＣＭ）１２により逆量子化を実行する。
【０００７】
標準化されたＵＩＴ−Ｔ  Ｇ．７１１のＰＣＭ符号化（以下、「Ｇ．７１１」と称す）は、一様スカラー量子化(uniform scalar quantization)に先だって対数曲線を有する信号の振幅の圧縮を実行し、それは、広いダイナミックレンジの信号に対して概ね一定の信号対雑音比を得ることを可能にする。従って、元の信号の周波数レンジにおける量子化ステップは、その信号の振幅に比例する。
【０００８】
圧縮された信号の一連のサンプルは、８ビットまたは２５６レベルで量子化される。公衆交換電話網(PSTN; Public Switched Telephone Network)では、これらの８ビットは、６４ｋビット／ｓのビットレートを与える８ｋＨｚの周波数で伝送される。
【０００９】
Ｇ．７１１標準による１つの量子化信号フレームは、８ビットで量子化された複数の量子化インデックス(quantization indices)から構成される。従って、もし逆量子化がテーブルによって適用されれば、それは、単に、２５６個の可能性のある復号化された値のうちの一つを示すインデックスから構成されるだけである。
【００１０】
実施の複雑度の理由により、ＰＣＭ圧縮は、セグメント化された線形曲線によって近似化されている。
【００１１】
Ｇ．７１１標準では、二つの符号化法が規定され、一つは、主としてヨーロッパで使用されているＡ−ｌａｗ方式(law A)であり、もう一つは北アメリカと日本で使用されているμ−ｌａｗ方式(mu law)である。
【００１２】
これらの符号化法は、振幅圧縮（またはコンパンディング(companding)）を信号に適用することを可能にする。従って、信号の振幅は、符号化器において非線形関数で“圧縮”されて、伝送チャネルを通じて送信され、そして復号化器において逆関数で“解凍(decompress)”される。振幅圧縮の利点は、入力オーディオ信号の振幅の確率分布を、スカラー量子化を適用することができる準一様確率法則(quasi-uniform probability law)に変換することを可能にすることである。
【００１３】
振幅圧縮の法則(law)は、一般には対数タイプの法則であり、従ってそれは、１６ビットの解像度で（“線形ＰＣＭ”フォーマットで）サンプリングされた信号を８ビットで（Ａ−ｌａｗまたはμ−ｌａｗで）符号化することを可能にする。
【００１４】
Ｇ．７１１におけるサンプルあたりの８ビットは、図１の符号１５で示されるように、次の方法で割り当てられている。
−  １つのサインビットＳ（負値について０、その他については１）；図１においては符号ｓｇｎが割り当てられている。
−  セグメントを示す３つのビット（図１における符号ＩＤ＿ＳＥＧ）；各セグメントの終端は、Ａ−ｌａｗについては２５６＊２ｎで与えられ、μ−ｌａｗについては２５６＊２ｎ−１３２で与えられ、ここで、ｎ＝０，１，…，７である。従って、量子化ステップは、（Ａ−ｌａｗについては２番目のセグメントから開始して）さらに高次のセグメントに向かうときに２が乗算される。
−  セグメント上での位置を示す４つのビット；図１においては符号ＩＤ＿ＰＯＳが割り当てられている。
【００１５】
従って、後ろの７ビットは、符号化された絶対値(coded absolute value)を構成する。以下では、最初にＡ−ｌａｗの場合を検討し、それから、その結果をμ−ｌａｗについて一般化する。Ａ−ｌａｗ  Ｇ．７１１標準によれば、最後のインデックスは、最下位ビット(LSB; Least Significant Bit)から２番目の各ビットを反転させることによって得られる。この符号化法則は、最初の２つのセグメントに関して１２ビットのスカラー量子化精度（故に、１６の量子化ステップ）を可能とし、そしてセグメント番号が１だけ増加すれば、精度が１ビットだけ減少する。
【００１６】
符号化されるサンプルの振幅と定量化器(quantifier)の判定閾値との間の単純な比較を実行することにより、１６ビットで表されるデジタル信号から開始するＧ．７１１ＰＣＭ量子化を実施することが可能であることが分かる。二項対立(dichotomy)の使用は、これらの比較を著しく促進する。この解法は、格納されるべき２５６個のエントリーを有するテーブルを必要とし、下記のテーブル１は、Ｇ．７１１  Ａ−ｌａｗについてのこのようなテーブルからの抽出を表している。
【００１７】
【表１】
2010532876.tif 000003
【００１８】
例えば、符号化される信号Ｓの元のサンプルは、−７５に等しい振幅を有する。このため、この振幅は、上記テーブルのライン１２３（または“レベル”１２３）の区間[−８０，−６５]に含まれる。この情報の符号化は、テーブル１および図１においてＩ’Ｍｉｃで参照される、符号化された最終インデックス(coded final index)を配信することにあり、それは０ｘ５１に等しい。従って、復号化では、逆量子化処理は、インデックスＩ’Ｍｉｃ＝０ｘ５１を回復することと、それに対応する、ＶＱ＝−７２のような量子化された値ＶＱを生成することにある。このため、この復号化は、この値−７２を、復号化された信号Ｓ’Ｍｉｃの対応サンプルの振幅に割り当てる。この同一の値ＶＱ＝−７２は、復号化される全てのサンプルに割り当てられ、その初期の振幅は、区間[−８０、−６５]における値を有し、この区間内の全てにおける１６個の可能性のある値であり、それは、ここでの１６の量子化ステップに対応するということが言える。一方、同一の値ＶＱ＝３２２５６は、初期の振幅が区間[３１７４４，３２７６７]にあった全てのサンプルに割り当てられ、全部で１０２４個の可能性のある値であり、それは、１０２４の量子化ステップに相当する。
【００１９】
ＰＣＭ符号化によって得られる信号対雑音比（ＳＮＲ）は、広いダイナミックレンジの信号について、おおよそ一定（〜３８ｄＢ）である。元の信号の周波数レンジにおける量子化ステップは、その信号の振幅に比例する。この信号対雑音比は、０−４０００Ｈｚの周波数の帯域全体にわたって量子化雑音を聞き取れなくするのには十分でない。また、低レベルの信号（最初のセグメントと共に符号化されるもの）については、ＳＮＲは極めて悪い。
【００２０】
Ｇ．７１１標準は、概して、[３００−３４００Ｈｚ]に帯域が制限された端末を有する狭帯域の電話通信アプリケーションについては良好な品質を有すると考えられる。しかしながら、例えば、[５０，４０００Ｈｚ]の帯域において高忠実(high-fidelity)な端末や、Ｇ．７１１符号化の広帯域階層拡張(wideband hierarchical extension)のような他のアプリケーションにＧ．７１１を使用する場合には、その品質は十分には高くない。
【００２１】
この理由から、Ｇ．７１１符号化器の符号化雑音から決定されるエンハンスメントレイヤ(enhancement layer)を生成することにある階層符号化の方法が存在する。そして、この符号化雑音は、Ｇ．７１１とは異なる技術によって符号化され、それは、‘ベースレイヤ’（または‘コアレイヤ’）として知られるレイヤを形成する。このような階層符号化の方法は、例えば、文献「Y.Hiwasaki, H.Ohmuro, T.Mori, S.Kurihara and A.Kataoka “A G.711 embedded wideband speech coding for VoIP conferences”, IEICE Trans. Inf. & Syst, Vol. E89-D, No 9, September 2006」で述べられている。このタイプの方法は、符号化器の複雑度を著しく増加させるという欠点を有し、一方、ＰＣＭタイプの符号化は、複雑度が低いと考えられる。また、ＰＣＭ符号化雑音は白色雑音であるので、無相関であり、圧縮技術が、符号化される信号の相関からの抽出特性に本質的に基づいているので、このタイプの雑音の符号化は実施が困難である。
【発明の概要】
【発明が解決しようとする課題】
【００２２】
本発明は、上記状況を改善する解法(solution)を提供するものである。
【課題を解決するための手段】
【００２３】
この目的のため、本発明は、デジタルオーディオ信号のサンプルのスカラー量子化ベースの符号化のための方法を提供するものであり、そのサンプルは、量子化インデックスのバイナリフレーム(binary frame)を得るために所定数のビットで符号化され、この符号化は振幅圧縮法に従って実行され、ここで、所定数の最下位ビットは、量子化インデックスのバイナリフレームで考慮されない。本方法は、
−  少なくとも、量子化インデックスバイナリフレームで考慮されない最下位ビット（複数）の一部を格納するステップと、
−  このように格納された少なくとも１ビットを含むエンハンスメントビットストリームを決定するステップと、を含む。
【００２４】
従って、エンハンスメントビットストリームは、量子化インデックスのバイナリフレームと同じ時間に伝送される。
【００２５】
拡張ビットストリームは、符号化中に使用されない最下位ビットを利用することにより決定される。従って、この方法は、符号化器を何ら複雑化することがないという利点と、より良好な復号化精度を得る可能性を有する復号化器を提供することにより品質の所望の改善を提供するという利点を有する。
【００２６】
一実施形態において、上記格納されたビットは、量子化インデックスのバイナリフレームで考慮されないビットのうちの最上位ビットである。
【００２７】
対数符号化法の適用中に捨てられたビットの全ては、必ずしも、拡張ビットストリームに含まれない。従って、ビットレートの観点からの有用性および品質により拡張ビットストリームを決定することが可能である。
【００２８】
変形の実施形態では、エンハンスメントビットストリームを決定するために考慮されるビットの数は、復号器への伝送中に利用可能なビットレートの関数である。
【００２９】
従って、拡張ビットストリームは、上記利用可能なビットレートに依存して伝送の過程で変調されてもよい。
【００３０】
本発明は、とりわけ、スカラー量子化ステップが、ＩＴＵ−Ｔ  Ｇ．７１１標準に従うμタイプまたはＡタイプの対数振幅圧縮符号化法によるＰＣＭタイプの量子化である場合に良好に適している。
【００３１】
また、本発明は、振幅圧縮法に従って逆量子化ステップによる所定数のビットからなる量子化インデックスのバイナリフレームを復号化するための方法に適用可能である。本方法は、
−  １又は２以上の拡張ビットからなるエンハンスメントビットストリームを受信するステップと、
−  復号化されたオーディオ信号を得るために、バイナリーフレームから入来するビットの後に上記拡張ビットを連結するステップと
を含むものである。
【００３２】
従って、拡張ビットを受信する復号化器は、受信された上記拡張ビットを、基本ビットストリームから受信される量子化インデックスフレームに存在するビットに連結することにより、その展開(expansion)または“解凍(decompression)”の精度を改善する。
【００３３】
好ましい一実施形態においては、本方法は、また、上記復号化されたオーディオ信号を得るために、受信された拡張ビットの数に従って丸め値(rounding value)を設定(adapting)するためのステップを含む。
【００３４】
従って、上記符号化されたオーディオ信号の検出は、上記拡張ビットストリームにおけるビット数に従って設定される。
【００３５】
また、本発明は、デジタルオーディオ信号のサンプルのスカラー量子化のためのモジュールを備えたオーディオ符号化器に関し、上記サンプルは、量子化インデックスのバイナリフレームを得るために所定数のビットで符号化され、上記符号化は振幅圧縮法に従って適用され、所定数の最下位ビットは、量子化インデックスのバイナリフレームにおいて考慮されない。本符号化器は、
−  少なくとも、量子化インデックスバイナリフレームにおいて考慮されない最下位ビットの一部を格納する機能を有するメモリ領域と、
−  このように格納された少なくとも１ビットからなるエンハンスメントビットストリームを決定するための手段と、を備える。
【００３６】
本発明は、振幅圧縮法に従って逆量子化モジュールにより所定数のビットからなる量子化インデックスのバイナリフレームを復号化する機能を有するオーディオ復号化器に関する。本発明による復号化器は、
−  １又は２以上の拡張ビットからなるエンハンスメントビットストリームを受信するための手段と、
−  復号化されたオーディオ信号を得るために、上記バイナリーフレームから入来するビットの後に上記拡張ビットを連結するための手段と、を備える。
【００３７】
最後に、本発明は、符号化器のメモリ、及び／又は、符号化器のドライブと協調動作する機能を有する記録媒体に格納されるように構成されたコンピュータプログラムを対象とし、このコンピュータプログラムは、それが上記符号化器のプロセッサによって実行されたときに本発明による符号化方法のステップを実施するためのコード命令を含んでいる。
【００３８】
同様に、本発明は、復号化器のメモリ、及び／又は、復号化器のドライブと強調動作する機能を有する記録媒体に格納されるように構成されたコンピュータプログラムを対象とし、このコンピュータプログラムは、それが復号化器のプロセッサによって実行されたときに、本発明による復号化方法のステップを実施するためのコード命令を含んでいる。
本発明の他の特徴および利点は、以下の添付の図面を参照すると共に非制限的な例により提示される以下の説明から、より一層明らかになるであろう。
【図面の簡単な説明】
【００３９】
【図１】従来技術からの従来型のＧ．７１１  ＰＣＭ符号化／復号化システムを示す図である。
【図２】本発明による符号化／復号化システムとともに、このシステムの構成要素によって実施される本発明による方法を示す図である。
【図３ａ】Ｇ．７１１標準によるＡ符号化法およびμ符号化法のアプリケーションにそれぞれ従う入力値に関連する量子化値を示す図である。
【図３ｂ】Ｇ．７１１標準によるＡ符号化法およびμ符号化法のアプリケーションにそれぞれ従う入力値に関連する量子化値を示す図である。
【図４】本発明の実施をした場合と本発明の実施をしない場合のＡ符号化法およびμ符号化法のアプリケーションに従う入力値に関連する量子化値の比較を示す図である。
【図５】本発明の実施をした場合と本発明の実施をしない場合のＡ符号化法およびμ符号化法のアプリケーションに従う入力値に関連する量子化値の比較を示す図である。
【発明を実施するための形態】
【００４０】
図２は、本発明による符号化／復号化システムを示す。
符号化器２３は、量子化器（ＱＰＣＭ）２０を備え、この量子化器（ＱＰＣＭ）２０は、伝送チャネル２１を介して復号化器２４に伝送される量子化インデックスＩＰＣＭのフレームを得るために入力信号Ｓを量子化する機能を有する。
【００４１】
特定の一実施形態において、この符号化器はＰＣＭタイプの符号化器であり、Ｇ．７１１標準で規定されるようなＡタイプまたはμタイプの符号化法(coding law)を実施する。
【００４２】
従って、得られた量子化インデックスのフレームは、符号１５で示され、それは、Ｇ．７１１のＡ−ｌａｗタイプまたはμ−ｌａｗタイプのフレームによる。
【００４３】
Ａ符号化法およびμ符号化法の実施のための方法はＧ．７１１標準に含まれている。それらは、大きなテーブルの値の格納を回避する低複雑度の簡単な処理(operations)により、最後の量子化インデックスを決定することにある。
【００４４】
従って、付録Ａ−１０に示される擬似コードは、Ｇ．７１１標準で述べられているようなＡ−ｌａｗの実施の例を与える（振幅圧縮法のセグメントによる線形近似を用いて）。また、この擬似コードの一つの具体的な実施は、付録Ａ−１０における例により与えられる。この実施は、ＩＴＵ−Ｔ  Ｇ．１９１  ソフトウェア・ツール・ライブラリ（ＳＴＬ−２００５）勧告のチャプタ１３の“ITU-T Basic Operations”による。この勧告は、ＩＴＵインターネットウェブサイト：
http://www.itu.int/rec/T-REC-G.191-200508-I/en)
でアクセス可能である。
【００４５】
この擬似コードにおいて、８ビットでの量子化インデックスが、サインビット(sign)と、セグメントのインデックス(exp)と、セグメント上のポジション(mant)を備えることが把握される。
【００４６】
この符号化の第１の部分では、図１の符号１５で示されるポジション０のサインビットが決定される。そして、最上位ビット“pos”のポジションが求められ、セグメント番号(segment number)が計算され、そして、図１の符号１５で示されるように、ポジション１，２，３に配置された３ビットで符号化される。
【００４７】
セグメント上のポジション(pos)を形成する４ビットは、符号１５に示されるように、位置４，５，６，７に配置される。
【００４８】
通常、少なくとも４ビットの右へのビットのシフトが存在し(x=shift_right(x,pos-4))、故に４ビットが失われる。
【００４９】
従って、最上位ビット（ＭＳＢ）のみが、量子化インデックスのフレームを構成するために使用される。Ａ−ｌａｗによる符号化のための変数“pos”の最小値は８である。従って、全てのセグメントについて、失われる最下位ビットは、少なくとも４つ存在する。よって振幅圧縮処理のための圧縮が達成される。
【００５０】
サンプルあたり１６ビットの解像度の入力信号（“ＰＣＭフォーマット”）について、最小の量子化ステップは１６であり、４つの最下位ビットが失われる。下記のテーブル２は、Ｇ７．１１のＡ−ｌａｗについての各セグメントに対する量子化ステップと閾値を与えている。
【００５１】
【表２】
2010532876.tif 000004
【００５２】
同様に、復号化(decoding)は、擬似コードと、付録Ａ−１１に示されるようなＩＴＵ−Ｔ  ＳＴＬ−２００５実施のような単純な処理とによって実施することができる。
【００５３】
この擬似コードにおいて、サイン(sign)、セグメント(exp)、セグメントにおける値(val)は、８ビットインデックス(index)から復元されることが把握される。丸め値(rounding value)は８に等しく、セグメントに使用される量子化ステップの半分に相当し、量子化インターバルの中間の値を得るために適用される。従って、本発明の振幅圧縮処理が達成される。符号化において排除された最下位ビットは、ここでは近似後に回復される。
【００５４】
Ｇ７．１１のμ−ｌａｗ版はＡ−ｌａｗと類似する。主な相違点は、最初のセグメントにおいて、ビット７が常に１に等しいことを保証するために、１２８が上記値に付け足されることであり、それは、ビットの伝送に冗長性を持たせ、従って、最初のセグメントの精度を増加させる（Ａ−ｌａｗでの１６に比較して、最初のセグメントでは量子化ステップ８である）。また、これは全てのセグメントの同一の処理を可能にする。加えて、量子化された値の中のレベル０（Ａ−ｌａｗはレベル０を有さず、最小値は８または−８である）を有するように、丸め(rounding)のために４が付け加えられる（従って、全部で、１２８＋４＝１３２である）。最初のセグメントにおけるこのより良い解法の代償(price)は、全てのセグメントの１３２のシフトである。下記のテーブル３は、閾値と、Ｇ．７１１法則についての各セグメントのための量子化ステップを与えている。
【００５５】
【表３】
2010532876.tif 000005
【００５６】
図３ａおよび図３ｂは、これら二つの法則(law)の解像度の最初の５１２個の値についての比較を可能にする。
【００５７】
Ａ−ｌａｗについてと同様に、変数のテーブルを格納しない場合の実施についての方法は、付録Ａ−１２に示されるＧ．７１１のμ−ｌａｗ標準に従う擬似コードを符号化する例によって与えられる。
【００５８】
Ａ−ｌａｗについてと同様に、この擬似コードにおいては、常に、少なくとも３ビットの右へのビットのシフトが存在し(x=shift_right(x,pos-4))、μ−ｌａｗについては、“pos”の最小値が７であることが把握される。
【００５９】
従って、最上位ビット（ＭＳＢ）のみが、量子化インデックスのフレームを構成するために使用され、振幅圧縮ステップを実行するために使用される。
【００６０】
前述したように、μ−ｌａｗの場合には、最初のセグメントは他のセグメントと同じように処理されるので、μ−ｌａｗによる符号化についての変数“pos”の最小値は７である。従って、全てのセグメントについて、少なくとも３つの失われた最下位ビットが存在する。
【００６１】
Ａ−ｌａｗについて、復号化は、簡単なアルゴリズムによって簡単に実行することができ、その例は付録Ａ−１３に与えられている。
【００６２】
本発明による符号化器２３は、量子化インデックスＩＰＣＭのバイナリフレームの符号化について考慮されていない最下位ビットの一部を、符号２７で示されるように、メモリ領域に格納することにより、Ａ−ｌａｗまたはμ−ｌａｗによる符号化の方法を利用する。
【００６３】
従って、Ａ−ｌａｗまたはμ−ｌａｗによる対数符号化について前述したように、全てのセグメントについて少なくとも３ビットが格納されることができる。
【００６４】
Ａ−ｌａｗまたはμ−ｌａｗによる符号化方法によって失われるビットの数は、セグメントの数と共に増加し、最後のセグメントについての１０ビットまで増加する。
【００６５】
本発明による方法は、少なくとも、これらの失われたビットのうちの最上位ビットを回復させる。
【００６６】
１６ｋビット／ｓのエンハンスメントビットストリーム、即ちサンプルあたり２ビットのエンハンスメントビットストリームを決定(determine)するために、本発明による方法は、量子化インデックスのフレームを決定するために、圧縮処理において考慮されないビットのうちの二つの最上位ビットをメモリ２７に格納する。
【００６７】
これらのビットは、符号２８において、判定手段により、拡張ビットストリームから、拡張ビットストリームＩＥＸＴを決定するために回復される。そして、このエンハンスメントビットストリームは、他の伝送チャネル２５を介して復号化器２４に伝送される。
【００６８】
逆量子化器、ここでは逆ＰＣＭ量子化器（Ｑ−１ＰＣＭ）２２を備えた復号化器２４は、基本ビットストリームＩ’ＰＣＭとエンハンスメントビットストリームＩ’ＥＸＴを並列に受信する。
【００６９】
これらのストリームＩ’ＰＣＭとＩ’ＥＸＴは、それぞれ、ＩＰＣＭとＩＥＸＴのバイナリエラーの影響を受けた変形(version)である。
【００７０】
このエンハンスメントビットストリームが復号化器２４の受信手段２９によって受信されると、この復号化器は、セグメントにおける復号化されたサンプルの位置(location)に関して、より一層高い精度を有するであろう。この目的のため、それは、ビット連結手段３０により、基本ビットストリームＩ’ＰＣＭにおける受信されたビットに拡張ビットを連結させ、そして符号２２において逆量子化を実行する。
【００７１】
実に、他のビットの付加は、セグメントレベルの数に２を乗算することを可能にする。また、レベルの数を２倍することは、信号対雑音比を６ｄＢだけ増加させる。従って、エンハンスメントビットストリームに付加されて復号化器で受信される各ビットについて、信号対雑音比は６ｄＢだけ増加され、それは、符号化器での複雑度を著しく増加させることなく、復号化された信号の品質を向上させる。
【００７２】
図２に示される例では、エンハンスメントビットストリームＩＥＸＴは、サンプルあたり二つの拡張ビットから構成され、即ちビットレートが１６ｋビット／ｓである。これらの拡張ビットは、付録Ａ−１４における擬似コードによって示されるような二つの処理においてビットシフトを適用することにより得ることができる。
【００７３】
５つの最上位ビットを維持するだけのために“pos-4”ポジションだけ全てのビットを同時にシフトする代わりに、Ａ−ｌａｗによる符号化における場合のように、７つの最上位ビットを維持するために、最初のステップとして２ポジションレス(2 positions less)のシフト（即ち、“pos-6”ポジション）が適用され、そして最後の２つのビットが符号２７に格納される。そして、第２のステップでは、常に１にある最初のビットが伝送されない５つの最上位ビットを得るために、更なる２ビットのシフトがなされる。他の４ビットは、基本ビットストリームのために使用される。
【００７４】
上記格納された２つのビットは、拡張ビットストリームで送信される。
【００７５】
図２に示されるように、これらの２つの拡張ビットは、圧縮された信号の８番目と９番目のビットとされる。
【００７６】
これらの処理の全てがＡ−ｌａｗについての符号化器で実施されることを可能にする擬似コードは付録Ａ−１５で与えられる。
【００７７】
従来のＧ．７１１符号化に関する相違点（付録において下線が付されたセクション）は、前述したような二つの処理におけるシフトのためのステップと、エンハンスメントビットストリーム“ext”を決定して送信するために、これらの二つの格納されたビットを使用することである。
【００７８】
同様に、μ−ｌａｗの実施について、符号化のための対応の擬似コードが付録Ａ−１６に示されている。
【００７９】
Ａ−ｌａｗによる符号化に関して従来の符号化との同じ相違が把握される。
【００８０】
図４は、最初の１２８個の値について、従来のＡ−ｌａｗ（点線）と、サンプルあたり２ビットの拡張を有するＡ−ｌａｗ（実線）との間の、入力値に関する量子化値の比較を示している。
【００８１】
同様に、図５は、最初の１２８個の値について、従来のμ−ｌａｗ（点線）と、サンプルあたり２ビットの拡張を有するμ−ｌａｗ（実線）との間の、入力値に関する量子化された値の比較を示している。
【００８２】
エンハンスメントビットストリームＩ’ＥＸＴを受信すると、復号化器は、符号３０において、振幅圧縮の逆処理である振幅解凍−即ち展開−を実行するために、このように受信した拡張ビットを基本ビットストリームＩ’ＰＣＭのポジションビットの後ろに連結する。
【００８３】
従って、これらの追加ビットの使用は、得るべきセグメントにおける復号化されたサンプルのロケーションの一層高い精度を可能にする。
【００８４】
実に、追加ビットについて、セグメントは二つに分割される。そして、復号化された値のセグメントにおけるロケーションに関する精度は、より一層重要である。
【００８５】
また、セグメントの中間値(value of the middle)を見つけることを可能にする丸め値“roundval”は、受信された拡張ビットの数に応じて設定(adapt)される。
【００８６】
受信された拡張ビットの数に関する情報は、例えば、図２における矢印２６で表されるような外部のインジケータによって与えられる。
【００８７】
また、この情報は、拡張ビットストリームの分析により直接的に推定(deduce)することができる。
【００８８】
これらの拡張ビットを考慮した復号化の一例が、それぞれ、Ａ−ｌａｗおよびμ−ｌａｗについての擬似コードにより、付録Ａ−１７で与えられている。
【００８９】
従来の復号化と本発明の復号化との間の違いは（付録では下線が付され、太字で示されている）、考慮されている拡張ビットストリームのビットと、丸め値“roundval”の適用を表す。
【００９０】
図２に示されるような符号化器は、ここでは示されていないが、ＤＳＰ(Digital Signal Processor)タイプのプロセッサと、少なくとも、拡張ビットストリームを決定するために使用されるビットを格納するためのメモリ領域２７とを備える。
【００９１】
このメモリ領域２７は、記憶メモリ及び／又はワーキングメモリを備えたメモリブロック部を構成することができる。
【００９２】
記憶手段は、コンピュータプログラムを備え、このコンピュータプログラムは、符号化器のプロセッサによって実行されたときに、本発明による符号化方法のステップを実施するためのコード命令を含む。
【００９３】
また、コンピュータプログラムは、符号化器のドライブによって読み取り可能な記録媒体、または符号化器のメモリ領域にダウンロード可能な記録媒体上に格納することができる。
【００９４】
従って、この符号化器は、デジタルオーディオ信号のサンプルのスカラー量子化ベースの符号化のための本発明による方法を実施する。このサンプルは、量子化インデックスのバイナリフレームを得るために、所定数のビットで符号化され、そして、この符号化は、振幅圧縮法に従って実行される。所定数の最下位ビットは、量子化インデックスのバイナリフレームにおいては考慮されない。この符号化は、
−  少なくとも、量子化インデックスのバイナリフレームにおいて考慮されない最下位ビットの一部を格納するステップと、
−  このように格納された少なくとも１ビットからなるエンハンスメントビットストリームを決定するステップと
を含む。
【００９５】
同様に、本発明による復号化器は、ここでは示されていないが、ＤＳＰタイプのプロセッサを備え、振幅圧縮法に従って逆量子化ステップにより所定数のビットからなる量子化インデックスのバイナリフレームを復号化する方法を実施する機能を有する。この方法は、
−  １又は２以上の拡張ビットからなるエンハンスメントビットストリームを受信するステップと、
−  復号化されたオーディオ信号を得るために、上記拡張ビットを、上記バイナリフレームから入来するビットの後ろに連結するステップと
を含む。
【００９６】
また、この復号化器は、コード命令からなるコンピュータプログラムを格納する機能を有する記憶手段（図示なし）を備え、このコード命令は、それが復号化器のプロセッサによって実行されたときに、本発明による復号化方法のステップを実施するものである。
【００９７】
また、上記コンピュータプログラムは、復号化器のドライブによって読み取り可能な記録媒体、または復号化器のメモリ領域にダウンロード可能な記録媒体上に格納することができる。
【００９８】
図２を参照して示され説明された例は、サンプルあたり２ビットの拡張レイヤについて与えられている。この方法は、極めて明確に、例えば、１，２，３ビット、またはそれ以上の他の個数のビットについて一般化することができる。そして、対応する擬似コードは付録Ａ−１８に示される。
【００９９】
変数“ext”の最下位ビット“ext_bits”は、エンハンスメントビットストリームで送信される。
【０１００】
項“pos-4-ext_bits”は、最初のセグメントにおいては、exr_bits>3について負であり、使用される法則（Ａまたはμ）に依存する。このような条件下でさえ、与えられた擬似コードは正しく働く。なぜならば、shift_right(x,-v)=shift_left(x,v)であるからである。換言すれば、量子化インデックスにおいて考慮されない最下位ビットの数が、とりわけ最初のセグメントにおける拡張ビットストリームにおけるビットの数よりも少ない場合には、失われたビットは、ゼロを有する拡張ビットストリームで完結される必要があるだけである。従って、拡張ビットストリームの最上位ビットは、本発明により格納され回復されたビットであり、最下位ビットは０に設定されるであろう。
【０１０１】
次のセグメントに格納されるビットの数が増加するので、もはや、それらをゼロで完結させる必要はない。
【０１０２】
同様に、本発明は、また、伝送中にビットレートを低減させなければならない場合においても適用可能である。拡張ビットストリームが２ビットを含む場合には、この拡張ビットストリームの最下位ビットは、もはや伝送されない。
【０１０３】
そして、サンプルあたり一つの拡張ビットを受信するのみである。例による擬似コードで述べたような復号化器は、受信された拡張ビットがポジション１で変数“ext”に組み入れられ、そして、変数“ext”のポジション０のビットが０に設定され、従って“roundval”の値が適合(adapt)される限りにおいて、この拡張レイヤがサンプルあたり１ビットに低減されて、復号化器は正しく動作する。
【０１０４】
従って、与えられた例において使用されたような変数“roundval”の値は、符号化器によって受信されるビットの数に依存すると共に、使用される法則（Ａまたはμ）に依存する。下記のテーブル４は、種々の状態における変数“roundval”の値を与える。
【０１０５】
【表４】
2010532876.tif 000006
【０１０６】
従って、この例は、拡張レイヤのバイナリトレイン(binary train)が階層的であるという、提示された解法の他の利点を示す。従って、伝送の過程でそのビットレートを低減させることが可能である。
【０１０７】
従って、もし２ビットが復号化器に受信されれば、ＳＮＲの増加が１２ｄＢであり、１ビットが受信されれば、ＳＮＲの増加は６ｄＢである。
【０１０８】
もちろん、この例は、また、一般化され、例えば、符号化器が拡張レイヤでサンプルあたり４ビットを送信することができ、復号化器が、これらのビットの４，３，２，１，０ビットを受信することができ、そして復号化された信号の品質は、受信された拡張ビットの数に比例するであろう。
【０１０９】
擬似コードにおいて、拡張レイヤの復号化の追加的な複雑度は、符号化器でのサンプルあたり２つの処理と、復号化器でのサンプルあたり４つの処理のみであり、これは、〜０．０５ＷＭＯＰＳ(weighted million operations per second)であることが観察され、それは無視できる程度のものである。この低複雑度は、階調符号化拡張Ｇ．７１１の場合に有利なように使用されるが、同時に、例えば、オーディオ会議のアプリケーションにおいて、本発明による拡張されたＧ．７１１ストリーム、またはＧ．７１１ストリームの“従来”の低複雑度ミキシングを可能とするのに対し、Hiwasakiによる論文では、“部分的ミキシング(partial mixing)”と称されるミキシングが、拡張可能なＧ．７１１符号化を用いたミキシングの複雑度を制限するために実施されている。
【０１１０】
他の実施形態では、本発明は、擬似コードによってではなく、拡張ビットを得ることを可能とするレベルを符号化器及び／又は復号化器のテーブルに格納することにより予め特定されるアルゴリズムに従って実施される。しかしながら、この解法は、複雑度における小利得(small gain)について、符号化器と復号化器の両方での、より大きなメモリ容量を必要とする難点を有する。
【０１１１】
付録:
A-10:
function  lin_to_Alaw(input_16bit)
x = input_16bit
sign = 0x80  /*supposing + */
if x < 0
x = ~x  /*abs(x) - 1*/
sign = 0
end
if x > 255  /* 1st bit 1 + 4 saved bits */
pos = search_position_most_significant_bit_1 (x)  /* 14 >= pos >= 8 */
exp = shift_left(pos - 7, 4)
x = shift_right(x, pos - 4)
mant = x - 16  /* remove leading 1 */
else
exp = 0
mant = shift_right(x, 4)
end
ind_tmp = sign + exp + mant
index = xor(ind_tmp, 0x0055)  /* toggle odd bits */
return index  /* only 8LSB bits are used */
【０１１２】
Version ITU-T STL-2005:
short lin_to_Alaw(short input_16bit) {
short x, sign, pos, exp, mant, ind_tmp, index;
x = input_16bit;
sign = 0x80;  /*supposing + */
IF(x < 0)
{
x = s_xor(x, (short)0xFFFF);  /*abs(x) - 1*/
sign = 0;
}
IF (sub(x, 255) > 0) /* 1st bit 1 + 4 saved bits */
{
pos = sub(14, norm_s(x));  /* 14 >= pos >= 8 */
exp = shl(sub(pos, 7), 4);
x = shr(x, sub(pos, 4));
mant = sub(x, 16);  /* remove leading 1 */
}
ELSE
{
exp = 0;
mant = shr(x, 4);
}
ind_tmp = add(sign, add(exp, mant) );
index = s_xor(ind_tmp, 0x0055);  /* toogle odd bits */
return(index); /* only 8LSB bits are used */
}
【０１１３】
A-11:
function  Alaw_to_lin(index)
sign = and(index, 0x80);
y = and(xor(index, 0x0055), 0x7F)  /* without sign */
exp = shift_right(y, 4)
val = shift_left(and(y, 0xF), 4) + 8  /* with rounding */
if exp > 0
val = shift_left(val + 256, exp - 1)  /* add leading 1 */
end
if sign == 0  /* sign bit ==0 → negative value */
val = -val
end
return val
【０１１４】
Version ITU-T STL-2005:
short Alaw_to_lin (short index)
{
short y, sign, exp, val;
sign = s_and(index, 0x80);
y = s_and(s_xor(index, 0x0055), 0x7F);  /* without sign */
exp = shr(y, 4);
val = add(shl(s_and(y, 0xF), 4), 8);  /* rounding */
if(exp > 0)
{
val = shl(add(val, 256), sub(exp, 1));  /*add leading 1 */
}
if(sign == 0)  /* sign bit ==0 ' negative value */
{
val = negate(val);
}
return(val);
}
【０１１５】
A-12:
function  lin_to_mulaw(input_16bit)
x = input_16bit
sign = 0x80  /* supposing + */
if x > 32635  /* to avoid overflow after adding 132*/
x = 32635
end
if x < -32635 
x = -32635
end
if x < 0 
x = ~x  /*abs(x) - 1*/
sign = 0x00
end
x = x + 132
/* always 1st bit 1 + 4 saved bits */
pos = search_position_most_significant_bit_1(x)  /* 14 >= pos >= 7 */
exp = shift_left(pos - 7, 4)
x = shift_right(x, pos - 4)
mant = x - 16  /* remove leading 1 */
ind_tmp = sign + exp + mant
index = xor(ind_tmp, 0x007F)  /* toggle all bits */
return index  /* only 8LSB bits are used */
【０１１６】
A-13:
function  mulaw_to_lin(index)
sign = and(index, 0x80);
y = and(xor(index, 0x00FF), 0x7F)  /* without sign */
exp = shift_right(y, 4)
val = shift_left(and(y, 0xF), 3) + 132  /* leading 1 & rounding */
val = shift_left(val, exp) - 132 /* suppress encoder offset */
if sign == 0   /* sign bit ==0 → negative value */
val = -val
end
return val
【０１１７】
A-14:
x = shift_right(x, pos - 6) /* first part of shift*/
ext = and(x, 0x3) /*save last two bits*/
x = shift_right(x, 2) /* finish shift*/
【０１１８】
A-15:
function  lin_to_Alaw_enh(input_16bit)
x = input_16bit
sign = 0x80  /*supposing + */
if x < 0
x = ~x  /*abs(x) - 1*/
sign = 0
end
if x > 255  /* 1st bit 1 + 4 saved bits */
pos = search_position_most_significant_bit_1(x)  /* 14 >= pos >= 8 */
exp = shift_left(pos - 7, 4)
x = shift_right(x, pos - 6) /* first part of shift */
ext = and(x, 0x3)           /* save last to bits */
x = shift_right(x, 2)       /* finish shift */
mant = x - 16  /* remove leading 1 */
else
exp = 0
x = shift_right(x, 2)
ext = and(x, 0x3)     /* save last two bits */
x = shift_right(x, 2) /* finish shift */
end
ind_tmp = sign + exp + mant
index = xor(ind_tmp, 0x0055)  /* toggle odd bits */
return index, ext /* only 8LSB bits are used in index and 2LSB bits in ext*/
【０１１９】
A-16:
function  lin_to_mulaw_enh(input_16bit)
x = input_16bit
sign = 0x80  /* supposing + */
if x > 32635  /* to avoid overflow after adding 132*/
x = 32635
end
if x < -32635 
x = -32635
end
if x < 0
x = ~x  /*abs(x) - 1*/
sign = 0x00
end
x = x + 132
/* always 1st bit 1 + 4 saved bits */
pos = search_position_most_significant_bit_1(x)  /* 14 >= pos >= 7 */
exp = shift_left(pos - 7, 4)
x = shift_right(x, pos - 6) /* first part of shift */
ext = and(x, 0x3)           /* save last two bits */
x = shift_right(x, 2)       /* finish shift */
mant = x - 16  /* remove leading 1 */
ind_tmp = sign + exp + mant
index = xor(ind_tmp, 0x007F)  /* toggle all bits */
return index, ext  /* only 8LSB bits are used in index and 2LSB bits in ext*/
【０１２０】
A-17:
A law:
function  Alaw_to_lin_enh(index, ext, roundval)
sign = and(index, 0x80);
y = and(xor(index, 0x0055), 0x7F)  /* without sign */
exp = shift_right(y, 4)
ext = shift_left(and(ext, 0x03), 2) /* put extension bits in position 2 & 3 */
val = shift_left(and(y, 0xF), 4) + ext + roundval  /* with rounding */
if exp > 0
val = shift_left(val + 256, exp - 1)  /* adding leading 1 */
end
if sign == 0  /* sign bit ==0 → negative value */
val = -val
end
return val
【０１２１】
Mu law:
function  mulaw_to_lin_enh(index, ext, roundval)
sign = and(index, 0x80);
y = and(xor(index, 0x007F), 0x7F)  /* without sign */
exp = shift_right(y, 4)
ext = shift_left(and(ext, 0x03), 1) /* put extension bits in position 1 & 2 */
val = shift_left(and(y, 0xF), 3) + 128 + ext + roundval  /* leading 1 & rounding */
val = shift_left(val, exp) - 132 /* suppress encoder offset */
if sign == 0   /* sign bit ==0 → negative value */
val = -val
end
return val
【０１２２】
A-18:
x = shift_right(x, pos - 4 - ext_bits) /* first part of shift*/
ext = and(x, shift_left(1, ext_bits) -1) /* last ext_bits bits*/
x = shift_right(x, ext_bits) /* finish shift*/
【符号の説明】
【０１２３】
２３；符号化器
２４；復号化器
２１，２５；伝送チャネル
【図１】
2010532876.tif 000007
【図２】
2010532876.tif 000008
【図３ａ】
2010532876.tif 000009
【図３ｂ】
2010532876.tif 000010
【図４】
2010532876.tif 000011
【図５】
2010532876.tif 000012
【国際調査報告】
2010532876.tif 000013
2010532876.tif 000014
2010532876.tif 000015
2010532876.tif 000016
2010532876.tif 000017
2010532876.tif 000018