(58)【調査した分野】(Int.Cl.,DB名)
拡張可能なオーディオ処理方法をプログラム可能な制御装置に実行させるためのプログラム命令群を記憶したプログラム可能な記憶装置であって、前記プログラム可能な制御装置に、
入力オーディオ信号の各フレーム毎に、符号化ビットレートの利用可能な合計ビット数に基づき、該符号化ビットレートを第1及び第2の周波数帯域用の第1および第2のビットレート割当てに振り分けるべく、該第1及び第2の周波数帯域用の該第1および第2のビットレート割当てを決定する手順と、
時間領域の前記入力オーディオ信号の前記各フレームを、複数サブバンドの周波数領域の変換係数に変換符号化する手順と、
各フレーム毎に、前記第1の周波数帯域における当該フレームの複数の前記変換係数からなる第1のセットに対して前記第1のビットレート割当てを配分し、前記第2の周波数帯域における当該フレームの複数の前記変換係数からなる第2のセットに対して前記第2のビットレート割当てを配分する手順と、
各フレーム毎に、当該フレームに対応して配分された前記第1のビット割当てを有する複数サブバンドの前記変換係数の前記第1のセット、および当該フレームに対応して配分された前記第2のビットレート割当てを有する複数サブバンドの前記変換係数の前記第2のセットを、1パケットにパケット化する手順と、
前記パケットを前記処理装置により送信する手順と
を実行させるためのプログラム命令群を記憶したプログラム可能な記憶装置。
前記処理装置が、オーディオ会議エンドポイント、ビデオ会議エンドポイント、オーディオ再生装置、個人用音楽プレーヤ、コンピュータ、サーバ、通信装置、携帯電話、および携帯情報端末のいずれかである請求項16の処理装置。
【背景技術】
【0002】
オーディオ信号を符号化または復号化するために多様な技術が存在する(信号を符号化および復号化するプロセッサまたは処理モジュールを一般にコーデック(codec)と称する)。会議システムではオーディオコーデックを用いて、近端から遠端まで送信しなければならない、オーディオを表すデータ量を低減する。例えば、オーディオ会議(音声会議)およびビデオ会議用のオーディオコーデックは、得られる送信用信号が最良品質を保ちながらも、最小ビット数となるように、高忠実度のオーディオ入力を圧縮する。そうすれば、オーディオコーデックを有する会議装置に必要な記憶容量はより少なく、オーディオ信号を送信するためにその装置で用いる通信チャンネルの帯域幅は狭くて済む。
【0003】
オーディオコーデックは多様な技法を用いて、会議中の一エンドポイントから別のエンドポイントへ送信するためにオーディオを符号化および復号化できる。普通に用いられるいくつかのオーディオコーデックは、変換符号化技法を用いてネットワーク上に送信されるオーディオデータを符号化および復号化する。オーディオコーデックの一形式はPolycom社のSirenコーデックである。Polycom社のSirenコーデックの1つのバージョンは、ITU−T(国際電気通信連合電気通信標準化部門)勧告G.722.1(Polycom Siren7)である。Siren7は7kHzまでの信号を符号化する広帯域コーデックである。もう1つのバージョンは、ITU−T G.722.1.C(Polycom Siren14)である。Siren14は14kHzまでの信号を符号化する超広帯域コーデックである。
【0004】
Sirenコーデックは、変調重複変換(MLT)ベースのオーディオコーデックである。従って、Sirenコーデックは、オーディオ信号を時間領域から変調重複変換(Modulation Lapped Transform)(MLT)領域に変換する。周知のように、変調重複変換(MLT)は、各種信号を変換符号化するために用いるコサイン変調フィルターバンクの一形式である。一般に、重複変換は、長さLのオーディオブロックを取り出し、そのブロックをM個の係数に変換する(条件L>M)。この変換を実行するには、変換された係数の連続ブロックを用いて合成信号を得ることができるように、連続するブロック間でのL−Mサンプルの重複がなければならない。
【0005】
図1Aおよび
図1BはSirenコーデックのような変換符号化コーデックの特徴を簡単に示す。特定のオーディオコーデックの実際の詳細は、用いられるコーデックの実装および形式に依存する。例えば、Siren14の公知の詳細についてはITU−T勧告G.722.1の付属書Cに、Siren7の公知の詳細についてはITU−T勧告G.722.1に記載があり、ともに引用して本明細書に組み込む。オーディオ信号の変換符号化に関連する別の詳細情報は、引用して本明細書に組み込まれた米国特許出願第11/550,629号および第11/550,682号に記載されている。
【0006】
図1Aに、変換符号化コーデック(例えば、Sirenコーデック)用の符号器10を示す。符号器10はアナログオーディオ信号から変換されたデジタル信号12を受信する。アナログオーディオ信号の振幅は特定周波数でサンプリングされ、振幅を表す数字に変換されている。典型的なサンプリング周波数は、8kHz(すなわち、毎秒8,000回のサンプリング)、16kHz〜196kHz、またはその間である。一例として、このデジタル信号12は、約20msブロックまたはフレームで、48kHzまたは他のレートでサンプリングされていてもよい。
【0007】
離散コサイン変換(DCT)であってもよい変換20は、デジタル信号12を時間領域から、変換係数を有する周波数領域に変換する。例えば、変換20は、オーディオブロックまたはフレーム毎に960個の変換係数のスペクトルを生成できる。符号器10は、正規化プロセス22で係数の平均エネルギーレベル(規範)を求める。次に、符号器10が、高速格子ベクトル量子化(FLVQ)アルゴリズム24等により係数を量子化してパケット化および送信のための出力信号14を符号化する。
【0008】
図1Bに、変換符号化コーデック(例えば、Sirenコーデック)用の復号器50を示す。復号器50は、ネットワークから受信されて入ってくる入力信号52のビットストリームを取り出し、元の信号の最良推定値を再現する。そのために、復号器50は、入力信号52に格子復号化(逆FLVQ)60を実行し、逆量子化プロセス62を用いて、復号化した変換係数を逆量子化する。更に、変換係数のエネルギーレベルを各周波数帯域で補正してもよい。最後に、出力信号54として送信するために、逆変換64は、逆DCTとして動作し、周波数領域から時間領域に信号を変換する。
【0009】
このようなオーディオコーデックは効果的ではあり、オーディオ会議用途でのニーズの高まりとともに、複雑さも増大し、更に多目的かつ強力なオーディオ符号化技法が求められている。例えば、オーディオコーデックは、ネットワーク上で動作しなければならず、多様な条件(帯域幅、受信器の各種接続速度等)が動的に変化する。チャンネルのビットレートが時間経過とともに変化する無線ネットワークはその一例である。従って、無線ネットワークのエンドポイント(ネットワーク端末)は様々なビットレートでビットストリームを送出してネットワーク条件に順応しなければならない。
【0010】
Polycom社のRMXシリーズおよびMGCシリーズ製品等のMCU(マルチウェイ制御ユニット)の使用はもう1つの実施例であり、そこでは、より多目的かつ強力なオーディオ符号化技法を利用できる。例えば、会議においてMCUは、先ず第1エンドポイント(ネットワーク端末)Aからビットストリームを受信し、次に、いくつかの他のエンドポイント(ネットワーク端末)B、C、D、E、F...へ異なる長さでビットストリームを送出する必要がある。送出すべき様々なビットストリームは、各エンドポイントが持つネットワーク帯域幅がどれほどであるかに依存する。例えば、一エンドポイントBはオーディオ用に64kbpsでネットワークに接続され、別のエンドポイントCは僅か8kbpsで接続される場合がある。
【0011】
従って、MCUは、一エンドポイントBには64kbpsでビットストリームを送出し、他のエンドポイントCには8kbpsでビットストリームを送出し、というようにエンドポイント毎に送出する。現在、MCUが、第1エンドポイントAからのビットストリームを復号化、すなわちビットストリームを時間領域に変換して戻している。次いで、MCUは、1つ1つのエンドポイントB、C、D、E、F...毎に符号化を行い、それによりビットストリームを各エンドポイントに設定できるようにしている。明らかに、この手法は多くの計算リソースを必要とし、信号待ち時間を長くし、実行される符号変換に起因して信号品質は低下してしまう。
【0012】
失われたパケットの処理は、より多目的かつ強力なオーディオ符号化技法が有効な別の領域である。ビデオ会議またはVoIPの通話では、符号化されたオーディオ情報は、例えば、典型的にはパケット当たり20ミリ秒のオーディオを有するパケットで送出される。パケットは送信中に失われることもあり、オーディオパケットが失われると、受信されたオーディオに空隙が生じる。ネットワークにおけるパケットロスに対抗する一方法は、パケット(すなわち、ビットストリーム)を多数回、例えば4回、送信することである。これらのパケットの4つが全て失われる可能性は非常に低いので、空隙が生じる可能性は低下する。
【0013】
しかし、パケットを多数回送信すると必要なネットワーク帯域幅は4倍に増加する。コストを最小に抑えるために、通常、同じ20msの時間領域信号を、高ビットレート(通常モード、例えば48kbps)で符号化するとともに、低ビットレート(例えば8kbps)でも符号化する。低ビット(8kbps)ストリームは多数回送信されるビットストリームである。こうすると、必要な合計帯域幅は、元データが多数回送出された場合の48
×4=192kbpsではなく48+8
×3=72kbpsとなる。マスク効果により、48+8
×3の方式は、ネットワークがパケットロスを有する場合の会話品質に関して、48
×4方式とほぼ同じ性能を持つ。但し、同一の20ms時間領域データを異なるビットレートでそれぞれ符号化するこの従来の解決法は、計算リソースを必要とする。
【0014】
最後に、エンドポイントによっては、完全に復号化するのに十分な計算リソースが備わっていないこともある。例えば、エンドポイントが低速の信号プロセッサしか持っていなかったり、信号プロセッサが他の実行タスクに占有されていたりすることがある。この場合、エンドポイントが受信するビットストリームの一部だけの復号化では、有効なオーディオを生成しないことがある。言うまでもなく、オーディオ品質は復号器が受信し、復号化するビット数に依存する。
【0015】
これらの理由から、オーディオ会議およびビデオ会議で用いられる拡張可能なオーディオコーデックの必要性がある。
【発明を実施するための形態】
【0041】
本開示によるオーディオコーデックは拡張可能であり、利用可能なビット数を複数の周波数帯域の間で割り当てる(配分する)。更に、オーディオコーデックは、重要度に基づいてこれらの帯域それぞれの周波数領域に順位を付ける。ビット剥落が発生しても、重要度が高いこれらの周波数領域はビットストリームの最初にパケット化されている。こうして、ビット剥落が生じても、より有用なオーディオが維持されることになる。オーディオコーデックのこれらの詳細および他の詳細を本明細書に開示する。
【0042】
本開示の多様な実施の形態は、オーディオ会議(音声会議)、ビデオ会議、およびストリーム音楽または会話を含むストリームメディア等の分野で有用な用途を見いだすことができる。従って、本開示のオーディオ処理装置には、オーディオ会議エンドポイント(オーディオ会議ネットワーク端末)、ビデオ会議エンドポイント(ビデオ会議ネットワーク端末)、オーディオ再生装置、個人用音楽プレーヤ、コンピュータ、サーバ、電話通信装置、携帯電話、携帯情報端末、VoIP電話装置、コールセンター装置、音声記録装置、音声メッセージ装置などが含まれる。例えば、ここに開示する技術は専用のオーディオ会議またはビデオ会議のエンドポイントにとって有用である。同様に、コンピュータまたは他の装置をデスクトップ会議またはデジタルオーディオの送受信に使用してもよく、ここで開示する技術はこれらの装置にとって有用である。
A.会議エンドポイント
【0043】
上記のように、本開示のオーディオ処理装置には会議のエンドポイントつまり端末が含まれる。
図2Aは、エンドポイントつまり端末100の実施例を略示する。図示のように、会議端末100は、ネットワーク125上の送信器および受信器の両方とすることができる。また、図示のように、会議端末100は、オーディオ会議能力はもとより、ビデオ会議能力を持つこともできる。概して、端末100はマイクロホン102およびスピーカ108を有し、ビデオカメラ103、ディスプレイ109、キーボード、マウス等の他の各種入力/出力装置を有してもよい。更に、端末100は、プロセッサ160、メモリ162、変換器電子回路164、および、特定のネットワーク125に適合したネットワークインターフェース122/124を有する。オーディオコーデック110は、ネットワーク端末用の適切なプロトコルに従って標準規格ベースの会議を提供する。これらの標準規格の全体を、メモリ162に格納されたソフトウエアで実装してもよく、プロセッサ160、専用ハードウエア、またはこれらの組合せを用いて実行する。
【0044】
送信パス(送信経路)では、マイクロホン102により収音されたアナログ入力信号が変換器電子回路164によりデジタル信号に変換され、端末のプロセッサ160上で動作するオーディオコーデック110がインターネット等のネットワーク125上に送信器インターフェース122を介して送信するためのデジタルオーディオ信号を符号化する符号器200を有する。ビデオ符号器170を有するビデオコーデックがあれば、ビデオ信号用の類似機能を実行できる。
【0045】
受信パス(受信経路)では、端末100は、オーディオコーデック110に接続されたネットワーク受信器インターフェース124を有する。復号器250は、受信したオーディオ信号を復号化し、変換器電子回路164が、スピーカ108へ出力するためにデジタル信号をアナログ信号に変換する。ビデオ復号器172を有するビデオコーデックがあれば、ビデオ信号用の類似機能を実行できる。
B.オーディオ処理構成
【0046】
図2Bは、第1のオーディオ処理装置100A(送信器として作用する)が、圧縮されたオーディオ信号を第2のオーディオ処理装置100B(この文脈では受信器として作用する)へ送出する会議編成を示す。送信器100Aおよび受信器100Bはともに、ITU G.722.1(Polycom Siren7)またはITU G.722.1.C(Polycom Siren14)で使用されるものと類似の、変換符号化を実行する拡張可能なオーディオコーデック110を有する。説明のために、送信器および受信器100A、100Bは、オーディオ会議またはビデオ会議内のエンドポイントつまり端末とすることができるが、他の種類の装置であってもよい。
【0047】
動作中は、送信器100Aのマイクロホン102は、ソースのオーディオを取得し、電子回路がそのオーディオのブロックまたはフレームをサンプリングする。典型的には、オーディオのブロックまたはフレームのスパン(間隔)は入力オーディオの20msである。この時点で、オーディオコーデック110の正変換が、各オーディオフレームを1セットの周波数領域の変換係数群に変換する。次いで、当技術分野で公知の技法を用いて、これらの変換係数群を量子化器115により量子化し、符号化する。
【0048】
符号化されると、送信器100Aは、そのネットワークインターフェース120を用いて、パケット内の符号化された変換係数群をネットワーク125経由で受信器100Bに送出する。IP(インターネットプロトコル)ネットワーク、PSTN(公衆交換電話網)、ISDN(デジタル総合サービス網)等を含むがそれらに限定はされない、任意の適切なネットワークを使用できる。それらの一部では、送信されるパケットは任意の適切なプロトコルまたは標準規格を使用できる。例えば、パケット内のオーディオデータは、TOCの後に続けることができ、オーディオフレームを含む全てのオクテットをユニットとしてペイロードに添えることができる。オーディオフレームおよびパケットに関する追加詳細はITU−T勧告G.722.1およびG.722.1Cに規定されるが、これらを引用して本明細書に組み込む。
【0049】
受信器100Bで、ネットワークインターフェース120はパケットを受信する。続く逆処理では、受信器100Bは、逆量子化器115およびコーデック110の逆変換を用いて、符号化された変換係数群を逆量子化し、復号化する。逆変換は、係数群を時間領域に変換して戻すことにより、受信器のスピーカ108用の出力オーディオ信号を生成する。オーディオ会議およびビデオ会議では、受信器100Bおよび送信器100Aは、会議をしている間、交互に動作する。
C.オーディオコーデック動作
【0050】
オーディオコーデック110およびオーディオ処理装置100を理解したところで、オーディオコーデック110が本開示に従ってどのようにオーディオを符号化し、復号化するかの説明に移る。
図3に示すように、送信器100Aのオーディオコーデック110は、時間領域のオーディオデータを受信し(ブロック310)、オーディオデータのオーディオブロックまたはフレームを取り出す(ブロック312)。
【0051】
正変換を用いて、オーディオコーデック110は、オーディオフレームを周波数領域の変換係数群に変換する(ブロック314)。上記説明のように、オーディオコーデック110は、Polycom社のSiren技術を用いてこの変換を実行する。ここで、オーディオコーデックは、MP3、MPEG AAC等を含む任意の変換コーデックとすることができるが、それらに限定はされない。
【0052】
オーディオフレームを変換する場合、オーディオコーデック110は、フレームのスペクトル包絡線も量子化し、符号化する(ブロック316)。この包絡線は符号化されるオーディオの振幅を記述するが、位相の詳細情報は何も提供しない。スペクトル包絡線の符号化はビット数をさほど必要としないので、直ちに完成させることができる。更に、以下から分かるように、ビットが送信から剥落された場合、スペクトル包絡線は、オーディオ復号化において後で使用され得る。
【0053】
インターネット等のネットワーク上で通信する場合、帯域幅が変わることがあり、パケットが失われることがあり、そして接続レートが異なることがある。これらの困難に対抗するために、本開示に係るオーディオコーデック110は拡張可能(scalable)である。この方法で、オーディオコーデック110は、より詳細に後述するプロセスで、利用可能な複数ビット(ビット数)を少なくとも2つの周波数帯域間で割り当てる(配分する)(ブロック318)。コーデックの符号器200は、割り当てられた周波数帯域のそれぞれにおいて変換係数群を量子化し、符号化し(ブロック320)、次いで、領域の重要度に基づいて周波数領域毎にビットの順位を付け直す(ブロック322)。全般的に見れば、符号化プロセス全体で約20msの遅延しか発生しない。
【0054】
より詳細に後述するビットの重要度判定は、いくつもの理由でビットが剥落する場合、遠端(遠隔地点)で再生できるオーディオ品質を向上させる。ビットの順位を付け直してから、ビットを遠端に送出するためにパケット化する。最後に、パケットを遠端に送信し、それにより次のフレームを処理できるようになる(ブロック324)。
【0055】
遠端では、受信器100Bはパケットを受信し、それらを周知の技法に従って取り扱う。次に、コーデックの復号器250は、スペクトル包絡線を復号化して、逆量子化し(ブロック352)、複数周波数帯域間に割り当てられた複数ビットを判定する(ブロック354)。復号器250が周波数帯域間のビット割当てを判定する方法の詳細については後述する。ビット割当てが分かると、復号器250は変換係数群を復号化して、逆量子化し(ブロック356)、各帯域の係数群について逆変換を実行する(ブロック358)。最後に、復号器250はオーディオを時間領域に変換して戻し、受信器のスピーカ用に出力オーディオを生成する(ブロック360)。
D.符号化技術
【0056】
上記のように、開示のオーディオコーデック110は拡張可能であり、変換符号化を用いて、少なくとも2つの周波数帯域の配分ビットでオーディオを符号化する。拡張可能なオーディオコーデック100により実行される符号化技術の詳細を
図4のフロー図に示す。最初に、オーディオコーデック110は、1フレームの入力オーディオ信号を得て(ブロック402)、当技術分野で周知の変調重複変換を用いて、そのフレームを変換係数群に変換する(ブロック404)。周知のように、これら変換係数群の各係数は、それぞれ大きさ(マグニチュード)を有し、正であっても負であってもよい。また、オーディオコーデック110は、上記したように、スペクトル包絡線[0Hz〜22kHz]を量子化し、符号化する(ブロック406)。
【0057】
この時点で、オーディオコーデック110は、2つの周波数帯域間で1フレーム分の複数ビットを割り当てる(配分する)(ブロック408)。このビット割当ては、オーディオコーデック110が受信オーディオデータを符号化するときにフレーム単位で動的に判定される。2つの帯域を分ける分割周波数が選択されることで、利用可能な第1の数のビットが該分割周波数以下の低周波数領域に割り当てられ、残りのビットが該分割周波数より上の高周波数領域に割り当てられる。
【0058】
帯域のビット割当てが決定された後、オーディオコーデック110は、低周波数帯域および高周波数帯域両方の正規化された係数を各割当てビット数により符号化する(ブロック410)。次に、オーディオコーデック110は、これら両方の周波数帯域内の各周波数領域の重要度を決定し(ブロック412)、決定された重要度に基づいて周波数領域を順位付ける(ブロック414)。
【0059】
上記のように、オーディオコーデック110は、Sirenコーデックに類似させることができ、時間領域から、MLT係数を有する周波数領域へオーディオ信号を変換できる(簡単にするために、本開示は、かかるMLT変換の変換係数に言及するが、FFT(高速フーリエ変換)およびDCT(離散コサイン変換)等の他の変換形式を用いてもよい)。
【0060】
サンプリングレートで、MLT変換は約960個のMLT係数(すなわち、25Hz毎に1つの係数)を生成する。これらの係数は、0、1、2...のインデックスの昇順に従って周波数領域で並べられる。例えば、最初の領域0は周波数範囲[0〜500Hz]をカバーし、次の領域1は[500〜1000Hz]をカバーし、という具合である。従来なされていたように周波数領域を昇順で送出するだけでなく、拡張可能なオーディオコーデック110は、オーディオ全体の脈絡で領域の重要度を判定してから、重要度の高い方から重要度の低い方へという基準で領域の順位を付け直す。重要度に基づくこの再配列は、両方の周波数帯域で行われる。
【0061】
各周波数領域の重要度の判定は様々な方法で行うことができる。1つの実装例において、符号器200は、量子化した信号パワースペクトルに基づいて領域の重要度を判定する。この場合、大きなパワーを持つ領域の方が重要度が高い。別の実装例では、知覚モデルを用いて領域の重要度を判定できる。知覚モデルは、人が知覚しない外来オーディオ、ノイズ等をマスクする。これら技法についてはそれぞれ、より詳細に後述する。
【0062】
重要度に基づいて順位を付けてから、最も重要度が高い領域を最初に、続いて重要度がより低い領域を、というようにパケット化する(ブロック416)。最後に、順位を付け、パケット化した領域をネットワークに載せて遠端に送出する(ブロック420)。パケットを送出するとき、変換係数の領域の順位に関するインデックス情報は送出しなくてもよい。それが無くても、ビットストリームから復号化されるスペクトル包絡線に基づいて、復号器内でインデックス情報を計算できる。
【0063】
ビット剥落が発生すると、エンドポイントに向かってパケット化されたこれらのビットが剥落してしまうことがある。領域は順位付けられているので、より重要度の高い領域の係数が最初にパケット化されている。従って、ビット剥落が発生した場合、最後にパケット化された重要度の低い領域の方が剥落する可能性が高い。
【0064】
遠端では、送信器100Aにより最初に与えられた順位付け重要度を既に反映した受信データを、復号器250が復号化し変換する。こうして、受信器100Bがパケットを復号化し、時間領域のオーディオを生成した場合、受信器のオーディオコーデック110が、入力オーディオ内の、重要度が高い係数の方の領域を実際に受信し、処理する機会が増加える。予想されるように、帯域幅、計算能力、およびその他のリソースの変化が会議中に起き、それにより、オーディオが失われたり、符号化されなかったりする。
【0065】
オーディオ信号が複数帯域間でビット割り当て(ビット配分)され、重要度で順位付けられるなら、オーディオコーデック110は更に有用なオーディオを遠端で処理する機会を増やすことができる。これら全てを考え合わせると、どのような理由であれオーディオ品質が低下する時に、ビットストリームからビット(すなわち、部分的なビットストリーム)が剥落しても、オーディオコーデック110は依然として実用的なオーディオ信号を生成できる。
1.ビット割当て
【0066】
上記のように、本願で開示する拡張可能なコーデック110は、利用可能なビット数を複数の周波数帯域間で割り当てる。
図4Bに示すように、オーディオコーデック(110)は、特定のサンプリング周波数(例えば、48kHz)でオーディオ信号430をそれぞれ約20msの連続フレームF1、F2、F3等でサンプリングし、デジタル化する(実際にはフレームが重なっていてもよい)。従って、各フレームF1、F2、F3等は、約960個のサンプルを有する(48kHz
×0.02s=960)。次いで、オーディオコーデック(110)は、各フレームF1、F2、F3等を時間領域から周波数領域に変換する。所与のフレームに対して、例えば、この変換は
図4Cに示すような1セットのMLT係数を生成する。この1フレームに約960個のMLT係数がある(すなわち、25Hz毎に1つのMLT係数)。符号化帯域幅が22kHzなので、約22kHzを超える周波数を表すMLT変換係数は無視される。
【0067】
符号化された情報をパケット化し、ネットワーク上に送信できるように、0〜22kHzの周波数領域の変換係数セットを符号化しなければならない。一例では、オーディオコーデック(110)は、64kbpsの最高レートでフルバンドのオーディオ信号を符号化するように構成されている。更に、本明細書で説明するように、オーディオコーデック(110)は、1フレームを符号化するために利用可能なビット数を2つの周波数帯域間で割り当てる(配分する)。
【0068】
ビット数を割り当てるために、オーディオコーデック110は、利用可能な合計ビット数を第1の帯域[0〜12kHz]と第2の帯域[12kHz〜22kHz]の間で分割するようにできる。2つの帯域を分ける分割周波数(12kHz)は、主として会話の音質変化および主観テストに基づいて選定できる。所与の実装形態に対応して他の分割周波数を使用できるであろう。
【0069】
利用可能な合計ビットの分割は、2つの帯域の間のエネルギー比に基づいている。1つの実施例では、2つの帯域の間で分割するための4つのモードの可能性がある。例えば、64kbpsの利用可能な合計ビットを以下のように分割できる。
【表1】
【0070】
遠端へ送信される情報内にこれら4つの可能性を表すには、符号器(200)が送信のビットストリーム内で2ビットを使用する必要がある。遠端復号器(250)は、これらの送信されたビットからの情報を用いて、受信時に所与のフレームに対するビット割当てを決定できる。ビット割当てが分かると、復号器(250)はこの決定されたビット割当てに基づいて信号を復号化することができる。
【0071】
図4Cに示す別の例では、オーディオコーデック(110)は、[0〜14kHz]の第1の帯域(LoBand)440と、[14kHz〜22kHz]の第2の帯域(HiBand)450との間で、利用可能な合計ビット数を分けることによりビット数を割り当てるよう構成されている。実装に応じて他の値を使用できようが、14kHzの分割周波数は、会話/音楽、ノイジー/明瞭、男声/女声等の主観的な聴覚品質に基づいていて好ましい。14kHzで信号をHiBandとLoBandとに分割することにより、拡張可能なオーディオコーデック110を既存のSiren14オーディオコーデックと同等にする。
【0072】
この例では、可能性のある8つの分割モードによりフレーム単位でフレームを分割できる。この8モード(bit_split_mode;ビット分割モード)は、2つの帯域440、450の間のエネルギー比に基づいている。ここで、低周波数帯域(LoBand)のエネルギーまたはパワー値をLoBandsPowerとする一方、高周波数帯域(HiBand)のエネルギーまたはパワー値をHiBandsPowerとする。所与のフレームの特定のモード(bit_split_mode;ビット分割モード)は以下のように決定される:
if (HiBandsPower > (LoBandsPower*4.0))
bit_split_mode = 7;
else if (HiBandsPower > (LoBandsPower*3.0))
bit_split_mode = 6;
else if (HiBandsPower > (LoBandsPower*2.0))
bit_split_mode = 5;
else if (HiBandsPower > (LoBandsPower*1.0))
bit_split_mode = 4;
else if (HiBandsPower > (LoBandsPower*0.5))
bit_split_mode = 3;
else if (HiBandsPower > (LoBandsPower*0.01))
bit_split_mode = 2;
else if (HiBandsPower > (LoBandsPower*0.001))
bit_split_mode = 1;
else bit_split_mode = 0;
【0073】
ここで、低周波数帯域(LoBandsPower)のパワー値は、
【数1】
として計算される、ここで、範囲インデックスi=0,1,2,...25である。(各領域の帯域幅は500Hzなので、対応する周波数範囲は0Hz〜12,500Hzである)。既存のSirenコーデックに利用可能な予め定義済みの表を用いて、各領域のパワーを量子化して、quantized_region_power[i] の値を求めることができる。その部分については、高周波数帯域(HiBandsPower)のパワー値も同様に計算する。但し、13kHz〜22kHzの周波数範囲を使用する。従って、このビット割当て技術における分割周波数は、信号スペクトルは14kHzで分割されるが、実際には13kHzである。これは掃引サイン波テストに合格するように行われる。
【0074】
次に、上記のように、帯域のパワー値のエネルギー比から判定されたビット分割モード(bit_split_mode)に基づいて、2つの周波数帯域440、450のビット割当てを計算する。詳細には、HiBand周波数帯域は、利用可能な合計64kbpsの内の(16+4 * bit_split_mode)kbpsを得る一方、LoBand周波数帯域は、利用可能な合計64kbpsの内の残りのビットを得る。これは、以下の8モードの割当てに展開される。
【表2】
【0075】
遠端に送信された情報内のこれら8つの可能性を表すには、送信コーデック(110)がビットストリーム中に3ビットを使用する必要がある。遠端の復号器(250)はこれら3ビットにより指示されるビット割当てを使用でき、このビット割当てに基づいて所与のフレームを復号化できる。
【0076】
図4Dは、可能性のある8つのモード(0〜7)のビット割当て460のグラフである。フレームは20ミリ秒のオーディオを有するので、64kbpsの最大ビットレートは、フレームあたり利用可能な合計1280ビット(すなわち、64,000bps×0.02s)に対応する。繰り返しになるが、使用するモードは、2つの周波数帯域のパワー値474、475のエネルギー比に依存する。様々な比470も
図4Dにグラフとして描かれている。
【0077】
従って、HiBandのパワー値475がLoBandのパワー値474の4倍を超えると、決定されるビット分割モード(bit_split_mode)は"7"となる。これは、LoBandの20kbps(または400ビット)の第1のビット割当て464に対応し、利用可能な64kbps(または1280ビット)の内のHiBandの44kbps(または880ビット)の第2のビット割当て465に対応する。別の実施例として、HiBandのパワー値464が、LoBandのパワー値465の半分を超えるが、LoBandのパワー値464の1倍未満の場合、ビット分割モード(bit_split_mode)は、"3"と決定される。これは、LoBandの36kbps(または720ビット)の第1のビット割当て464と対応し、利用可能な64kbps(または1280ビット)の内のHiBandの28kbps(または、560ビット)の第2のビット割当て465と対応する。
【0078】
これら2つの可能性のあるビット割当ての形から分かるように、2つの周波数帯域の間でビット数を割り当てる方法を決定するのは、所与の実装形態のいくつかの細目に依存しており、これらのビット割当て方式が例示に過ぎないことを意味している。3つ以上の周波数帯域をビット割当てに関与させて、所与のオーディオ信号のビット割当てを更に精緻にすることも考えられる。従って、本開示の全体のビット割当ておよびオーディオの符号化/復号化は、3つ以上の周波数帯域をカバーするように拡張でき、また、本開示の教示により与えられる分割モード数を増加/減少させるように拡張できる。
2.順位付け直し
【0079】
上記のように、ビット割当てに加えて、開示するオーディオコーデック(110)は、より重要な領域における係数の順位を付け直して、それらの係数が最初にパケット化されるようにする。こうすると、通信事情のせいでビットストリームからビットが剥落する時に、重要な領域の方が削除される可能性は低くなる。例えば、
図5Aは、従来の、ビットストリーム500に入る領域のパケット順を示す。上記のように、各領域は、対応する周波数範囲の変換係数を有する。図示のように、この従来の構成では、周波数範囲[0〜500Hz]の最初の領域"0"が最初にパケット化される。[500〜1000Hz]をカバーする次の領域"1"が次にパケット化され、最後の領域がパケット化されるまでこのプロセスが繰り返される。その結果が従来のビットストリーム500であり、周波数領域0、1、2、...Nの昇順で領域が配列される。
【0080】
領域の重要度を判定し、次いで、より重要な領域をビットストリームの最初にパケット化することにより、本開示のオーディオコーデック110は、
図5Bに示すようなビットストリーム510を生成する。ここで、最も重要な領域(周波数範囲とは無関係に)を最初にパケット化し、続いて2番目に重要な領域をパケット化する。このプロセスを重要度が最も低い領域がパケット化されるまで繰り返す。
【0081】
図5Cに示すように、何らかの理由で、ビット群がビットストリーム510から剥落することがある。例えば、ビットストリームの送信中または受信中にビット群が脱落することがある。しかし、残りのビットストリームは、保持されているビットについて、まだ復号化することができる。これらのビットは重要度に基づいて順位付けられているので、最も重要度が低い領域のビット520は、これが発生すると剥落する可能性が高くなる。最後に、
図5Cで明らかなように、順位を付け直したビットストリーム510にビット剥落が発生しても、全体のオーディオ品質を維持することができる。
3.重要度を決定するためのパワースペクトル技術
【0082】
上記のように、符号化オーディオ内の領域の重要度を判定する技術は、領域のパワー信号を用いて領域に順位を付けることである。
図6Aに示すように、本開示に係るオーディオコーデック(110)が使用するパワースペクトルモデル600が、領域毎の信号パワーを計算する(すなわち、領域0[0〜500Hz]、領域1[500〜1000Hz]等)(ブロック602)。オーディオコーデック(110)がこれを行う1つの方法は、所与の領域内の各変換係数の二乗和を計算し、これを所与の領域の信号パワーに使用することである。
【0083】
所与の周波数帯域のオーディオを変換係数に変換してから(例えば、
図4のブロック410で実行するように)、オーディオコーデック(110)は、各領域内の係数の二乗を計算する。現在の変換では、各領域は500Hzをカバーし、それぞれ25Hzをカバーする20個の変換係数を有する。所与の領域内のこれら20個の変換係数のそれぞれの二乗和が、この領域のパワースペクトルを生成する。対象とする帯域内の領域毎にこれを実行して、対象とする帯域内の領域毎にパワースペクトル値を計算する。
【0084】
領域の信号パワーの計算を終えると(ブロック602)、それらを量子化する(ブロック603)。次に、モデル600がパワーの降順で領域をソートし、各帯域内の最大パワー領域で開始し、最小パワー領域で終了する(ブロック604)。最後に、オーディオコーデック(110)は、決定された順位で係数のビットをパケット化することにより、モデル600を完了させる(ブロック606)。
【0085】
結局、オーディオコーデック(110)は、領域の信号パワーに基づき他の領域と比較して領域の重要度を判定している。この場合、大きなパワーを有する領域は高い重要度を有する。最後にパケット化された領域が、送信プロセス内の何らかの理由で剥落した場合、より大きなパワー信号を有するこれらの領域が最初にパケット化され、剥落しない有用なオーディオを含む可能性が高い。
4.重要度を判定するための知覚技法
【0086】
上記のように、符号化信号内の領域の重要度を判定するための別の技術は、知覚モデル650を使用する。その一例を
図6Bに示す。最初に、知覚モデル650は、2つの帯域のそれぞれの各領域の信号パワーを計算するが、上記とほとんど同じ方法で行うことができ(ブロック652)、次いで、モデル650は信号パワーを量子化する(ブロック653)。
【0087】
次に、モデル650は、領域毎の変更した領域パワー値(すなわち、modified_region_power)を定義する(ブロック654)。変更した領域パワー値は、所与の領域の重要度を考慮する場合、周囲の領域の影響を考慮して重み付けした合計に基づく。従って、知覚モデル650は、1つの領域内の信号パワーが別の領域内の量子化ノイズをマスクでき、2つの領域がスペクトル上で近い場合にこのマスキング効果が最大になるという事実を利用している。従って、所与の領域の変更した領域パワー値(すなわち、modified_region_power(region_index))を次のように定義できる:
SUM ( weight [region_index, r ] * quantized_region_power(r));
ここで、r=[0...43]であり;
quantized_region_power(r)は、領域の算出信号パワーであり;
weight [region_index, r ]は、スペクトル距離|region_index − r|が増加すると減少する固定関数である。
【0088】
従って、知覚モデル650は、重み付け関数が以下のように定義されると、
図6Aのモデルに帰着する:
r = region_index のとき、weight(region_index, r) = 1
r != region_index のとき、weight(region_index, r) = 0
【0089】
上記概説したように、変更した領域パワー値を計算してから、知覚モデル650は、降順で変更した領域パワー値に基づいて領域をソートする(ブロック656)。上記のように、特に、2つの領域がスペクトル上で互いに近い場合、重み付けをしたことにより、1つの領域の信号パワーは別の領域の量子化ノイズをマスクできる。次いで、オーディオコーデック(110)は、決定された順位で領域のビットをパケット化することによりモデル650を完了させる(ブロック658)。
5.パケット化
【0090】
上記説明のように、開示のオーディオコーデック(110)は、低周波数および高周波数の帯域に使用される特定のビット割当ての詳細を遠端の復号器(250)へ送出できるように、ビットを符号化し、それらをパケット化する。更に、スペクトル包絡線が、パケット化される2つの周波数帯域における変換係数の割当てビットと共にパケット化される。以下の表は、近端から遠端へ送信されるべき所与のフレームのビットストリームにおいてビットがパケット化される(第1ビットから最後のビットまで)方法を示す。
【表3】
【0091】
表から分かるように、特定のビット割当てを指示する(可能性のある8つのモードの)3ビットをフレーム用に先ずパケット化する。次に、この帯域のスペクトル包絡線用のビット群を最初にパケット化することにより低周波数帯域(LoBand)をパケット化する。普通、包絡線は振幅情報を含むが位相情報は含まないので、少ない符号化ビットで済む。包絡線用のビット群をパケット化した後、特定の割当てビット数を低周波数帯域(LoBand)の正規化係数用にパケット化する。スペクトル包絡線用のビット群は、それらビットの典型的な昇順に基づいてパケット化されるだけである。更に、上記概説したように、低周波数帯域(LoBand)の係数用に割り当てられたビット群が重要度に従って順位が付け直されている時、それらビットがパケット化される。
【0092】
最後に、表から分かるように、高周波数帯域(HiBand)を、この帯域のスペクトル包絡線用のビット群を先ずパケット化することによりパケット化し、次いで、同じ方法で、HiBand周波数帯域の正規化係数用の特定の割当て数からなるビット群をパケット化する。
E.復号化技術
【0093】
先に、
図2Aで説明したように、本開示のオーディオコーデック110の復号器250は、パケットを受信すると、それらのビットを復号化するので、オーディオコーデック110は、係数を時間領域に変換して戻すことにより、出力オーディオを生成することができる。この処理を
図7に詳細に示す。
【0094】
最初に、受信器(例えば、
図2Bの100B)がビットストリームでパケットを受信し、周知の技術を用いてパケットを処理する(ブロック702)。パケットを送出する場合、例えば、送信器100Aは、送出されるパケットに含まれるシーケンス番号を作成する。周知のように、パケットは、送信器100Aから受信器100Bまで、ネットワーク125上の様々なルートを通過することがあるので、パケットは受信器100Bに様々な時間に到着するかもしれない。つまり、パケットが到着する順序はランダムとなる。この「ジッター」と呼ばれる変化する到着時間を処理するために、受信器100Bは受信器のインターフェース120に接続されるジッターバッファ(不図示)を有する。典型的には、ジッターバッファは、同時に4つ以上のパケットを保持する。従って、受信器100Bは、パケットのシーケンス番号に基づいてジッターバッファ内のパケットを並べ替える。
【0095】
ビットストリーム内の最初の3ビットを用いて(例えば、
図5Bの520)、復号器250は、処理される所与のフレームのビット割当て用パケットを復号化する(ブロック704)。上記のように、構成によって、1つの実装内に8つのビット割当ての可能性がある。使用される分割が分かると(最初の3ビットにより指示される)、復号器250は帯域毎に割り当てられた数のビットを復号化できる。
【0096】
低周波数で開始すると、復号器250は、フレーム用の低周波数帯域(LoBand)のスペクトル包絡線を復号化し、逆量子化する(ブロック706)。次に、復号器250は、ビットが受信され、剥落されていない限り、低周波数帯域の係数を復号化し、逆量子化する。従って、復号器250は順次に、繰返しプロセスを経由し、それ以上ビットが残っているかどうかを判定する(決定710)。ビットが利用可能な限り、復号器250は、低周波数帯域内の領域の正規化係数を復号化し(ブロック712)、現在の係数値を計算する(ブロック714)。この計算のために、復号器250は、変換係数をスペクトル包絡線の値に、正規化した係数の値を乗じてcoeff=envelop*normalized_coeffとして計算する(ブロック714)。これを、全てのビットを復号化し、低周波数帯域のスペクトル包絡線値を乗じるまで続ける。
【0097】
ビットは周波数領域の重要度に従って順位付けられているので、復号器250は、ビットストリームが剥落したビットを持っているかどうかに関わらず、たいていはビットストリーム内の最も重要な領域を最初に復号化する。次に復号器250は2番目に重要な領域、というように以下順次復号化する。復号器250は全てのビットが使用されてしまうまで続ける(判定710)。
【0098】
全てのビットを処理したら(実際には、ビット剥落のせいで元のまま復号化された全てのビットでないかもしれない)、剥ぎ取られているかもしれない最低重要度のこれら領域をノイズで満たし、この低周波数帯域内の信号の残っている部分を完了させる。
【0099】
ビットストリームでビットが剥落している場合、剥落したビットの係数情報は失われている。しかし、復号器250は、低周波数帯域のスペクトル包絡線を既に受信し、復号化している。従って、復号器250には少なくともその信号の振幅が分かっているが、位相は分からない。ノイズを満たすために、復号器250は剥落したビット内に既知の振幅についての位相情報を満たす。
【0100】
ノイズで満たすために、復号器250は、ビットが欠けているいずれかの残りの領域用の係数を計算する(ブロック716)。残りの領域用のこれらの係数は、ノイズ充填値(NOISE_FILL)を乗じたスペクトル包絡線の値として計算される。このノイズ充填値(NOISE_FILL)は、ビット剥落のせいで欠けて失われた領域の係数を満たすために用いられるランダム値とすることができる。ノイズで満たすことにより、端末の復号器250は、10kbpsのような極端に低いビットレートであっても、ビットストリームをフルバンドとして知覚できる。
【0101】
低周波数帯域を処理した後、復号器250は高周波数帯域(HiBand)の全体の処理を繰り返す(ブロック720)。従って、復号器250は、HiBandのスペクトル包絡線を復号化して、逆量子化し、ビットの正規化係数を復号化し、ビットの現在の係数値を計算し、そしてビットを欠いた残りの領域(剥落していれば)のノイズ埋込み係数を計算する。
【0102】
復号器250が、LoBandおよびHiBand両方の全ての領域の変換係数を決定し、スペクトル包絡線から導かれた領域の順位を知り得たので、復号器250は変換係数に逆変換を実行して、フレームを時間領域に変換する(ブロック722)。最後に、オーディオコーデックは時間領域でオーディオを生成する(ブロック724)。
F.オーディオ欠損パケットの復元
【0103】
ここで開示するように、拡張可能なオーディオコーデック110はビット剥落が発生している場合のオーディオ処理に有用である。加えて、拡張可能なオーディオコーデック110は、パケットロス(欠損)復元の支援に用いることもできる。パケットロスに対抗する普通のアプローチは、出力用に既に処理してある、以前に受信したオーディオを単に繰り返して、パケットロスでできた空隙を埋めることである。このアプローチは、オーディオの空隙によって発生する歪みを減らせるが、歪みを解消することはない。例えば、5%を超えるパケットロスのレートでは、以前送信されたオーディオを繰り返すことにより発生するアーチファクトが目立つようになる。
【0104】
拡張可能なオーディオコーデック110は、連続するパケットにおいて1オーディオフレームの高品質バージョンと低品質をインターレースする(織り混ぜる)ことによりパケットロスに対抗する。これは拡張可能であり、異なる品質でオーディオフレームを2回符号化しなくてよいので、オーディオコーデック110は計算コストを低減させることができる。それどころか、拡張可能なオーディオコーデック110が既に生成した高品質バージョンからビットを落とすだけで低品質バージョンが得られる
【0105】
図8は、送信器100Aにある本開示の拡張可能なオーディオコーデック110が、オーディオ信号を2回符号化しなくてもオーディオフレームの高品質と低品質のバージョンをインターレースできる方法を示す。以下の説明で、「フレーム」についての言及は、本明細書で説明するような20ms位のオーディオブロックを意味している。更に、インターレース(織り混ぜ)処理は、送信パケット、変換係数領域、ビット補正等に適用できる。加えて、32kbpsの最小一定ビットレートおよび、より低品質の8kbpsのレートについても説明するが、オーディオコーデック110が用いるインターレース技術は他のビットレートにも適用できる。
【0106】
典型的には、このオーディオコーデック110は、32kbpsの最小一定ビットレートを用いて劣化しないオーディオ品質を達成できる。パケットはそれぞれ20msのオーディオを持っているので、この最小ビットレートは640ビット/パケットに相当する。但し、このビットレートは、無視できるほどの主観的な歪みを持つ8kbps(つまり160ビット/パケット)に低下することが稀にある。これは、640ビットで符号化されたパケットが、160ビットだけで符号化されたこれらの稀に発生するパケットからの符号化歪みをマスクするように見えるので起こり得る。
【0107】
このプロセスでは、送信器100Aのオーディオコーデック110が、最小でも32kbpsのビットレートを与えられた各20msパケット毎の640ビットを用いて、現在の20msのオーディオフレームを符号化する。パケットロスの可能性に対処するために、オーディオコーデック110は、未来の各フレーム毎に低品質の160ビットを用いて、未来のN個のオーディオフレームを符号化する。しかし、フレームを2回符号化しなければならないのではなく、代わりに、オーディオコーデック110が高品質バージョンからビットを落とす処理を行うことにより低品質の未来のフレームを作成する。何らかの送信オーディオ遅延を導入できるので、送信器100Aにオーディオ遅延を追加しなくても、符号化できる可能性のある低品質フレームの数は、例えば、N=4に制限してもよい。
【0108】
この段階で、次に、送信器100Aは高品質ビットと低品質ビットを単一パケットに組み合せ、それを受信器100Bに送出する。
図8に示すように、例えば、第1のオーディオフレーム810aは、32kbpsの最小一定ビットレートで符号化される。第2のオーディオフレーム810bも、同じく32kbpsの最小一定ビットレートで符号化されるが、160ビットの低品質でも符号化される。本明細書で説明するように、この低品質バージョン814bは、既に符号化されている高品質バージョン812bからビットを落とす(ビットレートを落とす)ことにより実際に達成される。このオーディオコーデック110が重要度の領域を区分するとすると、高品質バージョン812bから低品質バージョン814bへとビットを落とすことは、この低品質バージョン814bにおいても何らかの有用なオーディオ品質が実際に保持されるであろう。
【0109】
第1の符号化パケット820aを生成するために、第1のオーディオフレーム810aの高品質バージョン812aを、第2のオーディオフレーム810bの低品質バージョン814bと組み合せる。この符号化パケット820aは、上記のように分割された低周波数および高周波数の帯域のためのビット割当ておよび順位付け直しの技術を組み込むことができ、かつ、これら技術は、高品質および低品質のバージョンの一方または両方812a/814bに適用できる。従って、例えば、符号化したパケット820aには、ビット分割割当ての指示、フレームの高品質バージョン812aの低周波数帯域の第1のスペクトル包絡線、低周波数帯域の順位付けられた領域重要度の第1の変換係数、フレームの高品質バージョン812aの高周波数帯域の第2のスペクトル包絡線、および高周波数帯域の順位付けられた領域重要度の第2の変換係数を含めることができる。次いで、これに、ビット割当て等と無関係に後続のフレームの低品質バージョン814bだけが続く。代替として、後続のフレームの低品質バージョン814bは、スペクトル包絡線および2つの帯域周波数の係数が含むことができる。
【0110】
高品質符号化、低品質へのビット落とし、および隣接するオーディオフレームとの組合せは、符号化プロセス全体を通じて繰り返される。従って、例えば、第3のオーディオフレーム810cの低品質バージョン814c(すなわち、ビット落としバージョン)と組み合わされた第2のオーディオフレーム810bの高品質バージョン812bを含む第2の符号化パケット820bが生成される。
【0111】
受信端末で、受信器100Bは送信されたパケット820を受信する。パケットが良好であれば(すなわち、受信されると)、受信器のオーディオコーデック110は、現在の20ミリ秒のオーディオを表す640ビットを復号化し、受信器のスピーカにそれを提供する。例えば、受信器110Bで受信した第1の符号化パケット820aが良好なので、受信器110Bはパケット820aの第1のフレーム810aの高品質バージョン812aを復号化して、第1の復号化オーディオフレーム830aを生成する。受信した第2の符号化パケット820bも良好かもしれない。従って、受信器110Bは、このパケット820bの第2のフレーム810bの高品質バージョン812bを復号化して、第2の復号化オーディオフレーム830bを生成する。
【0112】
パケットが不良または失われている場合、受信器のオーディオコーデック110は、受信した最新の良好パケットに含まれる現在のフレームの低品質バージョン(160ビットの符号化データ)を用いて、失われたオーディオを復元する。図示のように、例えば、第3の符号化パケット820cは送信中に失われてしまった。従来なされていたように別のフレームのオーディオで空隙を埋めるのではなく、受信器100Bのオーディオコーデック110は、失われたフレーム820cに代えて、良好だった前回の符号化パケット820bから得られる低品質オーディオバージョン814cを用いる。次に、この低品質オーディオを用いて、失われた第3の符号化オーディオフレーム830cを再構築できる。こうして、失われたパケット820cのフレームに、低品質ではあるが、実際に失われたオーディオを使用できるのである。しかも、この低品質は、マスキングのせいで知覚的な歪みをさほど起こさないと予想される。
【0113】
本開示の拡張可能なオーディオコーデックを会議システムのエンドポイントつまり端末で使用するための説明を行ってきた。しかし、開示の拡張可能なオーディオコーデックは、エンドポイント、端末、ルータ、カンファレンスブリッジ等の各種の会議システムのコンポーネントで使用することができる。これらのそれぞれにおいて、本開示の拡張可能なオーディオコーデックは、帯域幅、計算、およびメモリーリソースを節約できる。同様に、本開示のオーディオコーデックは、短い待ち時間および少ないアーチファクト(作為)という点でオーディオ品質を改善することができる。
【0114】
本開示の技法は、デジタル電子回路もしくはコンピューターハードウエア、ファームウエア、ソフトウエア、またはこれらの組合せに実装することができる。これらの技法を実施する装置は、プログラマブルプロセッサが実行するためのマシン読取り可能な格納装置へ具体的に実装されるコンピュータープログラム製品に実装でき、開示する技法の方法ステップは、命令プログラムを実行するプログラマブルプロセッサにより実行されて、入力データ上で動作し、出力を生成することにより開示する技法の機能を実行できる。適切なプロセッサには、例示に過ぎないが、汎用および専用の両方のマイクロプロセッサが含まれる。概して、プロセッサは、命令とリードオンリーメモリおよび/またはランダムアクセスメモリからのデータとを受け取る。概して、コンピュータにはデータファイルを格納するための1つ以上の大容量記憶装置が含まれ、そのような装置には、内蔵ハードディスクおよびリムーバブルディスクのような磁気ディスク;光磁気ディスク;および光ディスクが含まれる。コンピュータープログラム命令およびデータを具体的に実装するために適した格納装置には、例示にすぎないが、EPROM、EEPROM、およびフラッシュメモリデバイス等の半導体メモリーデバイス;内蔵ハードディスクおよびリムーバブルディスク等の磁気ディスク;光磁気ディスク;およびCD−ROMディスクを含むあらゆる形式の不揮発メモリが含まれる。上記の内の何れかは、ASIC(特定用途向け集積回路)により補完されるか、またはASICに組み込むことができる。
【0115】
好適な実施の形態および他の実施の形態についての上記説明は、出願人が着想した本発明の概念の範囲または用途を制限または限定するものではない。本明細書に含まれる発明概念を開示する代わりに、本出願人は付帯する特許請求の範囲により付与される全ての特許権を希求する。従って、付帯する特許請求の範囲は、以下の請求項またはその均等物の範囲内にある限りにおいて、あらゆる変形および代替が含まれるものとする。