説明

デジタルオーディオ信号の階層符号化

本発明は、デジタルオーディオ信号(S)のサンプルのスカラー量子化ベースの符号化の方法に関し、前記サンプルは量子化インデックス(IPCM)のバイナリフレームを得るために所定数のビットで符号化され、前記符号化は振幅圧縮法に従って実行され、ここで所定数の最下位ビットは量子化インデックスのバイナリフレームで考慮されない。前記符号化は、前記量子化インデックスのバイナリフレームに考慮されない最下位ビットの一部を格納(27)し、格納されたビットからなるエンハンスメントビットストリーム(IEXT)を決定(28)するステップを含む。本発明は、また、関連の復号化方法に関し、拡張ビットからなるエンハンスメントビットストリーム(I’EXT)を受信(29)し、前記バイナリフレームからのビットの後に前記拡張ビットを連結(30)するステップを含む。本発明は、また、これらの方法を実施する符号化器および復号化器に関する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オーディオデータの階層符号化(hierarchical coding)のための方法に関し、更に詳しくは、スカラー量子化ベースの符号化に関する。
【背景技術】
【0002】
この符号化は、とりわけ、オーディオ周波数信号(音声、音楽、その他)のようなデジタル信号の伝送及び/又は格納のために設計されている。
【0003】
本発明は、更詳しくは、予測(prediction)を用いず、各入力サンプルが個々に符号化されるPCM(Pulse Code Modulation)符号化のような波形の符号化に関する。
【0004】
UIT−T G.711勧告によって特定されるPCM符号化/復号化の一般原理は、図1を参照して説明されるようなものである。入力信号は、[300−3400Hz]の最小帯域幅で規定され、サンプルあたり16ビットの解像度で(「線形PCM」として知られるフォーマットで)、8kHzでサンプリングされるものと仮定されている。
【0005】
PCM符号化器13は、量子化モジュール(QPCM)10を備え、この量子化モジュール(QPCM)10は、その入力で入力信号Sを受信する。量子化モジュール10の出力の量子化インデックスIPCMは、伝送チャネル11を介して復号化器14に伝送される。
【0006】
復号化器14は、伝送チャネルから入来するインデックスI’PCMをその入力で受信し、インデックスI’PCMは、バイナリエラーの影響を受けたIPCMの変形(version)であり、そして、符号化された信号S’Micを得るために、逆量子化モジュール(Q−1PCM)12により逆量子化を実行する。
【0007】
標準化されたUIT−T G.711のPCM符号化(以下、「G.711」と称す)は、一様スカラー量子化(uniform scalar quantization)に先だって対数曲線を有する信号の振幅の圧縮を実行し、それは、広いダイナミックレンジの信号に対して概ね一定の信号対雑音比を得ることを可能にする。従って、元の信号の周波数レンジにおける量子化ステップは、その信号の振幅に比例する。
【0008】
圧縮された信号の一連のサンプルは、8ビットまたは256レベルで量子化される。公衆交換電話網(PSTN; Public Switched Telephone Network)では、これらの8ビットは、64kビット/sのビットレートを与える8kHzの周波数で伝送される。
【0009】
G.711標準による1つの量子化信号フレームは、8ビットで量子化された複数の量子化インデックス(quantization indices)から構成される。従って、もし逆量子化がテーブルによって適用されれば、それは、単に、256個の可能性のある復号化された値のうちの一つを示すインデックスから構成されるだけである。
【0010】
実施の複雑度の理由により、PCM圧縮は、セグメント化された線形曲線によって近似化されている。
【0011】
G.711標準では、二つの符号化法が規定され、一つは、主としてヨーロッパで使用されているA−law方式(law A)であり、もう一つは北アメリカと日本で使用されているμ−law方式(mu law)である。
【0012】
これらの符号化法は、振幅圧縮(またはコンパンディング(companding))を信号に適用することを可能にする。従って、信号の振幅は、符号化器において非線形関数で“圧縮”されて、伝送チャネルを通じて送信され、そして復号化器において逆関数で“解凍(decompress)”される。振幅圧縮の利点は、入力オーディオ信号の振幅の確率分布を、スカラー量子化を適用することができる準一様確率法則(quasi-uniform probability law)に変換することを可能にすることである。
【0013】
振幅圧縮の法則(law)は、一般には対数タイプの法則であり、従ってそれは、16ビットの解像度で(“線形PCM”フォーマットで)サンプリングされた信号を8ビットで(A−lawまたはμ−lawで)符号化することを可能にする。
【0014】
G.711におけるサンプルあたりの8ビットは、図1の符号15で示されるように、次の方法で割り当てられている。
− 1つのサインビットS(負値について0、その他については1);図1においては符号sgnが割り当てられている。
− セグメントを示す3つのビット(図1における符号ID_SEG);各セグメントの終端は、A−lawについては256*2nで与えられ、μ−lawについては256*2n−132で与えられ、ここで、n=0,1,…,7である。従って、量子化ステップは、(A−lawについては2番目のセグメントから開始して)さらに高次のセグメントに向かうときに2が乗算される。
− セグメント上での位置を示す4つのビット;図1においては符号ID_POSが割り当てられている。
【0015】
従って、後ろの7ビットは、符号化された絶対値(coded absolute value)を構成する。以下では、最初にA−lawの場合を検討し、それから、その結果をμ−lawについて一般化する。A−law G.711標準によれば、最後のインデックスは、最下位ビット(LSB; Least Significant Bit)から2番目の各ビットを反転させることによって得られる。この符号化法則は、最初の2つのセグメントに関して12ビットのスカラー量子化精度(故に、16の量子化ステップ)を可能とし、そしてセグメント番号が1だけ増加すれば、精度が1ビットだけ減少する。
【0016】
符号化されるサンプルの振幅と定量化器(quantifier)の判定閾値との間の単純な比較を実行することにより、16ビットで表されるデジタル信号から開始するG.711PCM量子化を実施することが可能であることが分かる。二項対立(dichotomy)の使用は、これらの比較を著しく促進する。この解法は、格納されるべき256個のエントリーを有するテーブルを必要とし、下記のテーブル1は、G.711 A−lawについてのこのようなテーブルからの抽出を表している。
【0017】
【表1】

【0018】
例えば、符号化される信号Sの元のサンプルは、−75に等しい振幅を有する。このため、この振幅は、上記テーブルのライン123(または“レベル”123)の区間[−80,−65]に含まれる。この情報の符号化は、テーブル1および図1においてI’Micで参照される、符号化された最終インデックス(coded final index)を配信することにあり、それは0x51に等しい。従って、復号化では、逆量子化処理は、インデックスI’Mic=0x51を回復することと、それに対応する、VQ=−72のような量子化された値VQを生成することにある。このため、この復号化は、この値−72を、復号化された信号S’Micの対応サンプルの振幅に割り当てる。この同一の値VQ=−72は、復号化される全てのサンプルに割り当てられ、その初期の振幅は、区間[−80、−65]における値を有し、この区間内の全てにおける16個の可能性のある値であり、それは、ここでの16の量子化ステップに対応するということが言える。一方、同一の値VQ=32256は、初期の振幅が区間[31744,32767]にあった全てのサンプルに割り当てられ、全部で1024個の可能性のある値であり、それは、1024の量子化ステップに相当する。
【0019】
PCM符号化によって得られる信号対雑音比(SNR)は、広いダイナミックレンジの信号について、おおよそ一定(〜38dB)である。元の信号の周波数レンジにおける量子化ステップは、その信号の振幅に比例する。この信号対雑音比は、0−4000Hzの周波数の帯域全体にわたって量子化雑音を聞き取れなくするのには十分でない。また、低レベルの信号(最初のセグメントと共に符号化されるもの)については、SNRは極めて悪い。
【0020】
G.711標準は、概して、[300−3400Hz]に帯域が制限された端末を有する狭帯域の電話通信アプリケーションについては良好な品質を有すると考えられる。しかしながら、例えば、[50,4000Hz]の帯域において高忠実(high-fidelity)な端末や、G.711符号化の広帯域階層拡張(wideband hierarchical extension)のような他のアプリケーションにG.711を使用する場合には、その品質は十分には高くない。
【0021】
この理由から、G.711符号化器の符号化雑音から決定されるエンハンスメントレイヤ(enhancement layer)を生成することにある階層符号化の方法が存在する。そして、この符号化雑音は、G.711とは異なる技術によって符号化され、それは、‘ベースレイヤ’(または‘コアレイヤ’)として知られるレイヤを形成する。このような階層符号化の方法は、例えば、文献「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」で述べられている。このタイプの方法は、符号化器の複雑度を著しく増加させるという欠点を有し、一方、PCMタイプの符号化は、複雑度が低いと考えられる。また、PCM符号化雑音は白色雑音であるので、無相関であり、圧縮技術が、符号化される信号の相関からの抽出特性に本質的に基づいているので、このタイプの雑音の符号化は実施が困難である。
【発明の概要】
【発明が解決しようとする課題】
【0022】
本発明は、上記状況を改善する解法(solution)を提供するものである。
【課題を解決するための手段】
【0023】
この目的のため、本発明は、デジタルオーディオ信号のサンプルのスカラー量子化ベースの符号化のための方法を提供するものであり、そのサンプルは、量子化インデックスのバイナリフレーム(binary frame)を得るために所定数のビットで符号化され、この符号化は振幅圧縮法に従って実行され、ここで、所定数の最下位ビットは、量子化インデックスのバイナリフレームで考慮されない。本方法は、
− 少なくとも、量子化インデックスバイナリフレームで考慮されない最下位ビット(複数)の一部を格納するステップと、
− このように格納された少なくとも1ビットを含むエンハンスメントビットストリームを決定するステップと、を含む。
【0024】
従って、エンハンスメントビットストリームは、量子化インデックスのバイナリフレームと同じ時間に伝送される。
【0025】
拡張ビットストリームは、符号化中に使用されない最下位ビットを利用することにより決定される。従って、この方法は、符号化器を何ら複雑化することがないという利点と、より良好な復号化精度を得る可能性を有する復号化器を提供することにより品質の所望の改善を提供するという利点を有する。
【0026】
一実施形態において、上記格納されたビットは、量子化インデックスのバイナリフレームで考慮されないビットのうちの最上位ビットである。
【0027】
対数符号化法の適用中に捨てられたビットの全ては、必ずしも、拡張ビットストリームに含まれない。従って、ビットレートの観点からの有用性および品質により拡張ビットストリームを決定することが可能である。
【0028】
変形の実施形態では、エンハンスメントビットストリームを決定するために考慮されるビットの数は、復号器への伝送中に利用可能なビットレートの関数である。
【0029】
従って、拡張ビットストリームは、上記利用可能なビットレートに依存して伝送の過程で変調されてもよい。
【0030】
本発明は、とりわけ、スカラー量子化ステップが、ITU−T G.711標準に従うμタイプまたはAタイプの対数振幅圧縮符号化法によるPCMタイプの量子化である場合に良好に適している。
【0031】
また、本発明は、振幅圧縮法に従って逆量子化ステップによる所定数のビットからなる量子化インデックスのバイナリフレームを復号化するための方法に適用可能である。本方法は、
− 1又は2以上の拡張ビットからなるエンハンスメントビットストリームを受信するステップと、
− 復号化されたオーディオ信号を得るために、バイナリーフレームから入来するビットの後に上記拡張ビットを連結するステップと
を含むものである。
【0032】
従って、拡張ビットを受信する復号化器は、受信された上記拡張ビットを、基本ビットストリームから受信される量子化インデックスフレームに存在するビットに連結することにより、その展開(expansion)または“解凍(decompression)”の精度を改善する。
【0033】
好ましい一実施形態においては、本方法は、また、上記復号化されたオーディオ信号を得るために、受信された拡張ビットの数に従って丸め値(rounding value)を設定(adapting)するためのステップを含む。
【0034】
従って、上記符号化されたオーディオ信号の検出は、上記拡張ビットストリームにおけるビット数に従って設定される。
【0035】
また、本発明は、デジタルオーディオ信号のサンプルのスカラー量子化のためのモジュールを備えたオーディオ符号化器に関し、上記サンプルは、量子化インデックスのバイナリフレームを得るために所定数のビットで符号化され、上記符号化は振幅圧縮法に従って適用され、所定数の最下位ビットは、量子化インデックスのバイナリフレームにおいて考慮されない。本符号化器は、
− 少なくとも、量子化インデックスバイナリフレームにおいて考慮されない最下位ビットの一部を格納する機能を有するメモリ領域と、
− このように格納された少なくとも1ビットからなるエンハンスメントビットストリームを決定するための手段と、を備える。
【0036】
本発明は、振幅圧縮法に従って逆量子化モジュールにより所定数のビットからなる量子化インデックスのバイナリフレームを復号化する機能を有するオーディオ復号化器に関する。本発明による復号化器は、
− 1又は2以上の拡張ビットからなるエンハンスメントビットストリームを受信するための手段と、
− 復号化されたオーディオ信号を得るために、上記バイナリーフレームから入来するビットの後に上記拡張ビットを連結するための手段と、を備える。
【0037】
最後に、本発明は、符号化器のメモリ、及び/又は、符号化器のドライブと協調動作する機能を有する記録媒体に格納されるように構成されたコンピュータプログラムを対象とし、このコンピュータプログラムは、それが上記符号化器のプロセッサによって実行されたときに本発明による符号化方法のステップを実施するためのコード命令を含んでいる。
【0038】
同様に、本発明は、復号化器のメモリ、及び/又は、復号化器のドライブと強調動作する機能を有する記録媒体に格納されるように構成されたコンピュータプログラムを対象とし、このコンピュータプログラムは、それが復号化器のプロセッサによって実行されたときに、本発明による復号化方法のステップを実施するためのコード命令を含んでいる。
本発明の他の特徴および利点は、以下の添付の図面を参照すると共に非制限的な例により提示される以下の説明から、より一層明らかになるであろう。
【図面の簡単な説明】
【0039】
【図1】従来技術からの従来型のG.711 PCM符号化/復号化システムを示す図である。
【図2】本発明による符号化/復号化システムとともに、このシステムの構成要素によって実施される本発明による方法を示す図である。
【図3a】G.711標準によるA符号化法およびμ符号化法のアプリケーションにそれぞれ従う入力値に関連する量子化値を示す図である。
【図3b】G.711標準によるA符号化法およびμ符号化法のアプリケーションにそれぞれ従う入力値に関連する量子化値を示す図である。
【図4】本発明の実施をした場合と本発明の実施をしない場合のA符号化法およびμ符号化法のアプリケーションに従う入力値に関連する量子化値の比較を示す図である。
【図5】本発明の実施をした場合と本発明の実施をしない場合のA符号化法およびμ符号化法のアプリケーションに従う入力値に関連する量子化値の比較を示す図である。
【発明を実施するための形態】
【0040】
図2は、本発明による符号化/復号化システムを示す。
符号化器23は、量子化器(QPCM)20を備え、この量子化器(QPCM)20は、伝送チャネル21を介して復号化器24に伝送される量子化インデックスIPCMのフレームを得るために入力信号Sを量子化する機能を有する。
【0041】
特定の一実施形態において、この符号化器はPCMタイプの符号化器であり、G.711標準で規定されるようなAタイプまたはμタイプの符号化法(coding law)を実施する。
【0042】
従って、得られた量子化インデックスのフレームは、符号15で示され、それは、G.711のA−lawタイプまたはμ−lawタイプのフレームによる。
【0043】
A符号化法およびμ符号化法の実施のための方法はG.711標準に含まれている。それらは、大きなテーブルの値の格納を回避する低複雑度の簡単な処理(operations)により、最後の量子化インデックスを決定することにある。
【0044】
従って、付録A−10に示される擬似コードは、G.711標準で述べられているようなA−lawの実施の例を与える(振幅圧縮法のセグメントによる線形近似を用いて)。また、この擬似コードの一つの具体的な実施は、付録A−10における例により与えられる。この実施は、ITU−T G.191 ソフトウェア・ツール・ライブラリ(STL−2005)勧告のチャプタ13の“ITU-T Basic Operations”による。この勧告は、ITUインターネットウェブサイト:
http://www.itu.int/rec/T-REC-G.191-200508-I/en)
でアクセス可能である。
【0045】
この擬似コードにおいて、8ビットでの量子化インデックスが、サインビット(sign)と、セグメントのインデックス(exp)と、セグメント上のポジション(mant)を備えることが把握される。
【0046】
この符号化の第1の部分では、図1の符号15で示されるポジション0のサインビットが決定される。そして、最上位ビット“pos”のポジションが求められ、セグメント番号(segment number)が計算され、そして、図1の符号15で示されるように、ポジション1,2,3に配置された3ビットで符号化される。
【0047】
セグメント上のポジション(pos)を形成する4ビットは、符号15に示されるように、位置4,5,6,7に配置される。
【0048】
通常、少なくとも4ビットの右へのビットのシフトが存在し(x=shift_right(x,pos-4))、故に4ビットが失われる。
【0049】
従って、最上位ビット(MSB)のみが、量子化インデックスのフレームを構成するために使用される。A−lawによる符号化のための変数“pos”の最小値は8である。従って、全てのセグメントについて、失われる最下位ビットは、少なくとも4つ存在する。よって振幅圧縮処理のための圧縮が達成される。
【0050】
サンプルあたり16ビットの解像度の入力信号(“PCMフォーマット”)について、最小の量子化ステップは16であり、4つの最下位ビットが失われる。下記のテーブル2は、G7.11のA−lawについての各セグメントに対する量子化ステップと閾値を与えている。
【0051】
【表2】

【0052】
同様に、復号化(decoding)は、擬似コードと、付録A−11に示されるようなITU−T STL−2005実施のような単純な処理とによって実施することができる。
【0053】
この擬似コードにおいて、サイン(sign)、セグメント(exp)、セグメントにおける値(val)は、8ビットインデックス(index)から復元されることが把握される。丸め値(rounding value)は8に等しく、セグメントに使用される量子化ステップの半分に相当し、量子化インターバルの中間の値を得るために適用される。従って、本発明の振幅圧縮処理が達成される。符号化において排除された最下位ビットは、ここでは近似後に回復される。
【0054】
G7.11のμ−law版はA−lawと類似する。主な相違点は、最初のセグメントにおいて、ビット7が常に1に等しいことを保証するために、128が上記値に付け足されることであり、それは、ビットの伝送に冗長性を持たせ、従って、最初のセグメントの精度を増加させる(A−lawでの16に比較して、最初のセグメントでは量子化ステップ8である)。また、これは全てのセグメントの同一の処理を可能にする。加えて、量子化された値の中のレベル0(A−lawはレベル0を有さず、最小値は8または−8である)を有するように、丸め(rounding)のために4が付け加えられる(従って、全部で、128+4=132である)。最初のセグメントにおけるこのより良い解法の代償(price)は、全てのセグメントの132のシフトである。下記のテーブル3は、閾値と、G.711法則についての各セグメントのための量子化ステップを与えている。
【0055】
【表3】

【0056】
図3aおよび図3bは、これら二つの法則(law)の解像度の最初の512個の値についての比較を可能にする。
【0057】
A−lawについてと同様に、変数のテーブルを格納しない場合の実施についての方法は、付録A−12に示されるG.711のμ−law標準に従う擬似コードを符号化する例によって与えられる。
【0058】
A−lawについてと同様に、この擬似コードにおいては、常に、少なくとも3ビットの右へのビットのシフトが存在し(x=shift_right(x,pos-4))、μ−lawについては、“pos”の最小値が7であることが把握される。
【0059】
従って、最上位ビット(MSB)のみが、量子化インデックスのフレームを構成するために使用され、振幅圧縮ステップを実行するために使用される。
【0060】
前述したように、μ−lawの場合には、最初のセグメントは他のセグメントと同じように処理されるので、μ−lawによる符号化についての変数“pos”の最小値は7である。従って、全てのセグメントについて、少なくとも3つの失われた最下位ビットが存在する。
【0061】
A−lawについて、復号化は、簡単なアルゴリズムによって簡単に実行することができ、その例は付録A−13に与えられている。
【0062】
本発明による符号化器23は、量子化インデックスIPCMのバイナリフレームの符号化について考慮されていない最下位ビットの一部を、符号27で示されるように、メモリ領域に格納することにより、A−lawまたはμ−lawによる符号化の方法を利用する。
【0063】
従って、A−lawまたはμ−lawによる対数符号化について前述したように、全てのセグメントについて少なくとも3ビットが格納されることができる。
【0064】
A−lawまたはμ−lawによる符号化方法によって失われるビットの数は、セグメントの数と共に増加し、最後のセグメントについての10ビットまで増加する。
【0065】
本発明による方法は、少なくとも、これらの失われたビットのうちの最上位ビットを回復させる。
【0066】
16kビット/sのエンハンスメントビットストリーム、即ちサンプルあたり2ビットのエンハンスメントビットストリームを決定(determine)するために、本発明による方法は、量子化インデックスのフレームを決定するために、圧縮処理において考慮されないビットのうちの二つの最上位ビットをメモリ27に格納する。
【0067】
これらのビットは、符号28において、判定手段により、拡張ビットストリームから、拡張ビットストリームIEXTを決定するために回復される。そして、このエンハンスメントビットストリームは、他の伝送チャネル25を介して復号化器24に伝送される。
【0068】
逆量子化器、ここでは逆PCM量子化器(Q−1PCM)22を備えた復号化器24は、基本ビットストリームI’PCMとエンハンスメントビットストリームI’EXTを並列に受信する。
【0069】
これらのストリームI’PCMとI’EXTは、それぞれ、IPCMとIEXTのバイナリエラーの影響を受けた変形(version)である。
【0070】
このエンハンスメントビットストリームが復号化器24の受信手段29によって受信されると、この復号化器は、セグメントにおける復号化されたサンプルの位置(location)に関して、より一層高い精度を有するであろう。この目的のため、それは、ビット連結手段30により、基本ビットストリームI’PCMにおける受信されたビットに拡張ビットを連結させ、そして符号22において逆量子化を実行する。
【0071】
実に、他のビットの付加は、セグメントレベルの数に2を乗算することを可能にする。また、レベルの数を2倍することは、信号対雑音比を6dBだけ増加させる。従って、エンハンスメントビットストリームに付加されて復号化器で受信される各ビットについて、信号対雑音比は6dBだけ増加され、それは、符号化器での複雑度を著しく増加させることなく、復号化された信号の品質を向上させる。
【0072】
図2に示される例では、エンハンスメントビットストリームIEXTは、サンプルあたり二つの拡張ビットから構成され、即ちビットレートが16kビット/sである。これらの拡張ビットは、付録A−14における擬似コードによって示されるような二つの処理においてビットシフトを適用することにより得ることができる。
【0073】
5つの最上位ビットを維持するだけのために“pos-4”ポジションだけ全てのビットを同時にシフトする代わりに、A−lawによる符号化における場合のように、7つの最上位ビットを維持するために、最初のステップとして2ポジションレス(2 positions less)のシフト(即ち、“pos-6”ポジション)が適用され、そして最後の2つのビットが符号27に格納される。そして、第2のステップでは、常に1にある最初のビットが伝送されない5つの最上位ビットを得るために、更なる2ビットのシフトがなされる。他の4ビットは、基本ビットストリームのために使用される。
【0074】
上記格納された2つのビットは、拡張ビットストリームで送信される。
【0075】
図2に示されるように、これらの2つの拡張ビットは、圧縮された信号の8番目と9番目のビットとされる。
【0076】
これらの処理の全てがA−lawについての符号化器で実施されることを可能にする擬似コードは付録A−15で与えられる。
【0077】
従来のG.711符号化に関する相違点(付録において下線が付されたセクション)は、前述したような二つの処理におけるシフトのためのステップと、エンハンスメントビットストリーム“ext”を決定して送信するために、これらの二つの格納されたビットを使用することである。
【0078】
同様に、μ−lawの実施について、符号化のための対応の擬似コードが付録A−16に示されている。
【0079】
A−lawによる符号化に関して従来の符号化との同じ相違が把握される。
【0080】
図4は、最初の128個の値について、従来のA−law(点線)と、サンプルあたり2ビットの拡張を有するA−law(実線)との間の、入力値に関する量子化値の比較を示している。
【0081】
同様に、図5は、最初の128個の値について、従来のμ−law(点線)と、サンプルあたり2ビットの拡張を有するμ−law(実線)との間の、入力値に関する量子化された値の比較を示している。
【0082】
エンハンスメントビットストリームI’EXTを受信すると、復号化器は、符号30において、振幅圧縮の逆処理である振幅解凍−即ち展開−を実行するために、このように受信した拡張ビットを基本ビットストリームI’PCMのポジションビットの後ろに連結する。
【0083】
従って、これらの追加ビットの使用は、得るべきセグメントにおける復号化されたサンプルのロケーションの一層高い精度を可能にする。
【0084】
実に、追加ビットについて、セグメントは二つに分割される。そして、復号化された値のセグメントにおけるロケーションに関する精度は、より一層重要である。
【0085】
また、セグメントの中間値(value of the middle)を見つけることを可能にする丸め値“roundval”は、受信された拡張ビットの数に応じて設定(adapt)される。
【0086】
受信された拡張ビットの数に関する情報は、例えば、図2における矢印26で表されるような外部のインジケータによって与えられる。
【0087】
また、この情報は、拡張ビットストリームの分析により直接的に推定(deduce)することができる。
【0088】
これらの拡張ビットを考慮した復号化の一例が、それぞれ、A−lawおよびμ−lawについての擬似コードにより、付録A−17で与えられている。
【0089】
従来の復号化と本発明の復号化との間の違いは(付録では下線が付され、太字で示されている)、考慮されている拡張ビットストリームのビットと、丸め値“roundval”の適用を表す。
【0090】
図2に示されるような符号化器は、ここでは示されていないが、DSP(Digital Signal Processor)タイプのプロセッサと、少なくとも、拡張ビットストリームを決定するために使用されるビットを格納するためのメモリ領域27とを備える。
【0091】
このメモリ領域27は、記憶メモリ及び/又はワーキングメモリを備えたメモリブロック部を構成することができる。
【0092】
記憶手段は、コンピュータプログラムを備え、このコンピュータプログラムは、符号化器のプロセッサによって実行されたときに、本発明による符号化方法のステップを実施するためのコード命令を含む。
【0093】
また、コンピュータプログラムは、符号化器のドライブによって読み取り可能な記録媒体、または符号化器のメモリ領域にダウンロード可能な記録媒体上に格納することができる。
【0094】
従って、この符号化器は、デジタルオーディオ信号のサンプルのスカラー量子化ベースの符号化のための本発明による方法を実施する。このサンプルは、量子化インデックスのバイナリフレームを得るために、所定数のビットで符号化され、そして、この符号化は、振幅圧縮法に従って実行される。所定数の最下位ビットは、量子化インデックスのバイナリフレームにおいては考慮されない。この符号化は、
− 少なくとも、量子化インデックスのバイナリフレームにおいて考慮されない最下位ビットの一部を格納するステップと、
− このように格納された少なくとも1ビットからなるエンハンスメントビットストリームを決定するステップと
を含む。
【0095】
同様に、本発明による復号化器は、ここでは示されていないが、DSPタイプのプロセッサを備え、振幅圧縮法に従って逆量子化ステップにより所定数のビットからなる量子化インデックスのバイナリフレームを復号化する方法を実施する機能を有する。この方法は、
− 1又は2以上の拡張ビットからなるエンハンスメントビットストリームを受信するステップと、
− 復号化されたオーディオ信号を得るために、上記拡張ビットを、上記バイナリフレームから入来するビットの後ろに連結するステップと
を含む。
【0096】
また、この復号化器は、コード命令からなるコンピュータプログラムを格納する機能を有する記憶手段(図示なし)を備え、このコード命令は、それが復号化器のプロセッサによって実行されたときに、本発明による復号化方法のステップを実施するものである。
【0097】
また、上記コンピュータプログラムは、復号化器のドライブによって読み取り可能な記録媒体、または復号化器のメモリ領域にダウンロード可能な記録媒体上に格納することができる。
【0098】
図2を参照して示され説明された例は、サンプルあたり2ビットの拡張レイヤについて与えられている。この方法は、極めて明確に、例えば、1,2,3ビット、またはそれ以上の他の個数のビットについて一般化することができる。そして、対応する擬似コードは付録A−18に示される。
【0099】
変数“ext”の最下位ビット“ext_bits”は、エンハンスメントビットストリームで送信される。
【0100】
項“pos-4-ext_bits”は、最初のセグメントにおいては、exr_bits>3について負であり、使用される法則(Aまたはμ)に依存する。このような条件下でさえ、与えられた擬似コードは正しく働く。なぜならば、shift_right(x,-v)=shift_left(x,v)であるからである。換言すれば、量子化インデックスにおいて考慮されない最下位ビットの数が、とりわけ最初のセグメントにおける拡張ビットストリームにおけるビットの数よりも少ない場合には、失われたビットは、ゼロを有する拡張ビットストリームで完結される必要があるだけである。従って、拡張ビットストリームの最上位ビットは、本発明により格納され回復されたビットであり、最下位ビットは0に設定されるであろう。
【0101】
次のセグメントに格納されるビットの数が増加するので、もはや、それらをゼロで完結させる必要はない。
【0102】
同様に、本発明は、また、伝送中にビットレートを低減させなければならない場合においても適用可能である。拡張ビットストリームが2ビットを含む場合には、この拡張ビットストリームの最下位ビットは、もはや伝送されない。
【0103】
そして、サンプルあたり一つの拡張ビットを受信するのみである。例による擬似コードで述べたような復号化器は、受信された拡張ビットがポジション1で変数“ext”に組み入れられ、そして、変数“ext”のポジション0のビットが0に設定され、従って“roundval”の値が適合(adapt)される限りにおいて、この拡張レイヤがサンプルあたり1ビットに低減されて、復号化器は正しく動作する。
【0104】
従って、与えられた例において使用されたような変数“roundval”の値は、符号化器によって受信されるビットの数に依存すると共に、使用される法則(Aまたはμ)に依存する。下記のテーブル4は、種々の状態における変数“roundval”の値を与える。
【0105】
【表4】

【0106】
従って、この例は、拡張レイヤのバイナリトレイン(binary train)が階層的であるという、提示された解法の他の利点を示す。従って、伝送の過程でそのビットレートを低減させることが可能である。
【0107】
従って、もし2ビットが復号化器に受信されれば、SNRの増加が12dBであり、1ビットが受信されれば、SNRの増加は6dBである。
【0108】
もちろん、この例は、また、一般化され、例えば、符号化器が拡張レイヤでサンプルあたり4ビットを送信することができ、復号化器が、これらのビットの4,3,2,1,0ビットを受信することができ、そして復号化された信号の品質は、受信された拡張ビットの数に比例するであろう。
【0109】
擬似コードにおいて、拡張レイヤの復号化の追加的な複雑度は、符号化器でのサンプルあたり2つの処理と、復号化器でのサンプルあたり4つの処理のみであり、これは、〜0.05WMOPS(weighted million operations per second)であることが観察され、それは無視できる程度のものである。この低複雑度は、階調符号化拡張G.711の場合に有利なように使用されるが、同時に、例えば、オーディオ会議のアプリケーションにおいて、本発明による拡張されたG.711ストリーム、またはG.711ストリームの“従来”の低複雑度ミキシングを可能とするのに対し、Hiwasakiによる論文では、“部分的ミキシング(partial mixing)”と称されるミキシングが、拡張可能なG.711符号化を用いたミキシングの複雑度を制限するために実施されている。
【0110】
他の実施形態では、本発明は、擬似コードによってではなく、拡張ビットを得ることを可能とするレベルを符号化器及び/又は復号化器のテーブルに格納することにより予め特定されるアルゴリズムに従って実施される。しかしながら、この解法は、複雑度における小利得(small gain)について、符号化器と復号化器の両方での、より大きなメモリ容量を必要とする難点を有する。
【0111】
付録:
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 */
【0112】
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 */
}
【0113】
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
【0114】
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);
}
【0115】
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 */
【0116】
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
【0117】
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*/
【0118】
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*/
【0119】
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*/
【0120】
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
【0121】
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
【0122】
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*/
【符号の説明】
【0123】
23;符号化器
24;復号化器
21,25;伝送チャネル

【特許請求の範囲】
【請求項1】
デジタルオーディオ信号(S)のサンプルのスカラー量子化ベースの符号化のための方法であって、前記サンプルは、量子化インデックス(IPCM)のバイナリフレームを得るために所定数のビットで符号化され、前記符号化は振幅圧縮法に従って実施され、ここで、所定数の最下位ビットが前記量子化インデックスのバイナリフレームで考慮されず、本方法は、
− 少なくとも、前記量子化インデックスのバイナリフレームで考慮されない前記最下位ビットの一部を格納するステップ(27)と、
− このように格納された少なくとも1ビットからなるエンハンスメントビットストリーム(IEXT)を決定するステップ(28)と
を含むことを特徴とする方法。
【請求項2】
前記格納されたビットは、前記量子化インデックスのバイナリフレームで考慮されない最上位ビットであることを特徴とする請求項1記載の方法。
【請求項3】
前記エンハンスメントビットストリームの決定で考慮されるビットの数は、復号化器への伝送中に利用可能なビットレートの関数であることを特徴とする請求項1又は2の何れか1項記載の方法。
【請求項4】
前記スカラー量子化ステップは、ITU−T G.711標準によるμタイプまたはAタイプの対数振幅圧縮符号化法に従うPCMタイプの量子化であることを特徴とする請求項1乃至3の何れか1項記載の方法。
【請求項5】
振幅圧縮法に従って逆量子化ステップ(22)により所定数のビットからなる量子化インデックス(I’PCM)のバイナリフレームを復号化するための方法であって、
− 1又は2以上の拡張ビットからなるエンハンスメントビットストリーム(I’EXT)を受信するステップと、
− 復号化されたオーディオ信号を得るために、前記バイナリフレームからのビットの後に前記拡張ビットを連結するステップと
を含むことを特徴とする方法。
【請求項6】
前記復号化されたオーディオ信号を得るために、受信された拡張ビットの数により丸め値を設定するためのステップを更に含むことを特徴とする請求項5記載の方法。
【請求項7】
デジタルオーディオ信号(S)のサンプルのスカラー量子化のためのモジュール(20)を備えたオーディオ符号化器であって、前記サンプルが、量子化インデックス(IPCM)のバイナリフレームを得るために、所定数のビットで符号化され、前記符号化が、振幅圧縮法に従って適用され、所定数の最下位ビットが前記量子化インデックスのバイナリフレームで考慮されず、本オーディオ符号化器は、
− 少なくとも、前記量子化インデックスのバイナリフレームで考慮されない前記最下位ビットの一部を格納する機能を有するメモリ領域(27)と、
− このように格納された少なくとも1ビットからなるエンハンスメントビットストリームを決定するための手段(28)と
を備えたことを特徴とするオーディオ符号化器。
【請求項8】
振幅圧縮法に従って逆量子化モジュール(22)により所定数のビットからなる量子化インデックス(I’PCM)のバイナリフレームを復号化する機能を有するオーディオ復号化器であって、
− 1又は2以上の拡張ビットからなるエンハンスメントビットストリームを受信するための手段(29)と、
− 復号化されたオーディオ信号を得るために、前記バイナリフレームからのビットの後ろに前記拡張ビットを連結(30)するための手段と
を備えたことを特徴とするオーディオ復号化器。
【請求項9】
符号化器のメモリ、及び/又は、前記符号化器のドライブと協調動作する機能を有する記録媒体に格納されるように構成されたコンピュータプログラムであって、前記符号化器のプロセッサによって実行されたときに請求項1乃至4の何れか1項記載の符号化方法のステップを実施するためのコード命令を含むコンピュータプログラム。
【請求項10】
復号化器のメモリ、及び/又は、前記復号化器のドライブと協調動作する機能を有する記録媒体に格納されるように構成されたコンピュータプログラムであって、前記復号化器のプロセッサによって実行されたときに請求項5又は6の何れか1項記載の復号化方法のステップを実施するためのコード命令を含むコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3a】
image rotate

【図3b】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2010−532876(P2010−532876A)
【公表日】平成22年10月14日(2010.10.14)
【国際特許分類】
【出願番号】特願2010−514084(P2010−514084)
【出願日】平成20年7月4日(2008.7.4)
【国際出願番号】PCT/FR2008/051248
【国際公開番号】WO2009/010674
【国際公開日】平成21年1月22日(2009.1.22)
【出願人】(591034154)フランス・テレコム (290)
【Fターム(参考)】