技術が進歩した結果、コンピューティングデバイスはより小型に、より強力になっている。たとえば、現在、小型、軽量で、ユーザが容易に持ち運べる、ポータブルワイヤレス電話、携帯情報端末(PDA)、およびページングデバイスなどのワイヤレスコンピューティングデバイスを含む、様々なポータブルパーソナルコンピューティングデバイスが存在する。より具体的には、携帯電話およびインターネットプロトコル(IP)電話などのポータブルワイヤレス電話は、ワイヤレスネットワークを介して音声およびデータパケットを通信することができる。さらに、多くのそのようなワイヤレス電話は、その中に組み込まれた他のタイプのデバイスを含む。たとえば、ワイヤレス電話は、デジタルスチルカメラ、デジタルビデオカメラ、デジタルレコーダ、およびオーディオファイルプレーヤを含むこともできる。
デジタル技法による音声の送信は、特に、長距離およびデジタル無線電話の用途において普及している。復元された音声の知覚品質を維持しながらチャネルを介して送られ得る情報の最少量を決定することに関心があり得る。音声がサンプリングおよびデジタル化によって送信される場合、アナログ電話の音声品質を実現するために、64キロビット毎秒(kbps)程度のデータレートが使用され得る。その後に受信機においてコーディング、送信、および再合成が続く音声分析を使用することにより、データレートにおける著しい低下が実現される場合がある。
音声を圧縮するためのデバイスは、電気通信の多くの分野において使用法を見つけることができる。例示的な分野はワイヤレス通信である。ワイヤレス通信の分野は、たとえば、コードレス電話、ページング、ワイヤレスローカルループ、セルラーおよびパーソナル通信サービス(PCS)の電話システムなどのワイヤレス電話、モバイルIP電話、ならびに衛星通信システムを含む、多くの適用例を有する。特定の適用例は、モバイル加入者向けのワイヤレス電話である。
周波数分割多元接続(FDMA)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、および時分割同期CDMA(TD-SCDMA)を含むワイヤレス通信システム向けに、様々なオーバージエアインターフェースが開発されてきた。それに関連して、たとえば、高度モバイルフォンサービス(AMPS)、モバイル通信用グローバルシステム(GSM(登録商標))、およびInterim Standard 95(IS-95)を含む、様々な国内規格および国際規格が確立されている。例示的なワイヤレス電話通信システムは、符号分割多元接続(CDMA)システムである。(本明細書ではIS-95と総称される)IS-95規格ならびにその派生規格であるIS-95A、ANSI J-STD-008、およびIS-95Bは、セルラーまたはPCSの電話通信システム向けのCDMAオーバージエアインターフェースの使用を明示するように、米国電気通信工業会(TIA)および他のよく知られている規格団体によって公表されている。
IS-95規格は、その後、より多くの容量および高速のパケットデータサービスを提供する、cdma2000およびWCDMA(登録商標)などの「3G」システムに発展した。cdma2000の2つの変形形態は、TIAによって発行された、文書IS-2000(cdma2000 1xRTT)およびIS-856(cdma2000 1xEV-DO)によって提示されている。cdma2000 1xRTT通信システムは153kbpsのピークデータレートを提供し、cdma2000 1xEV-DO通信システムは、38.4kbpsから2.4Mbpsまでの範囲のデータレートのセットを定義する。WCDMA(登録商標)規格は、第3世代パートナーシッププロジェクト「3GPP」、文書番号3G TS 25.211、3G TS 25.212、3G TS 25.213、および3G TS 25.214において具体化されている。国際モバイル電気通信アドバンスト(IMTアドバンスト)仕様は、「4G」規格を立案している。IMTアドバンスト仕様は、4Gサービス向けのピークデータレートを、(たとえば、列車および自動車からの)高速移動通信用の100メガビット毎秒(Mbit/s)、ならびに(たとえば、歩行者および静止ユーザからの)低速移動通信用の1ギガビット毎秒(Gbit/s)に設定する。
人間の音声発生のモデルに関するパラメータを抽出することによって音声を圧縮する技法を採用するデバイスは、スピーチコーダと呼ばれる。スピーチコーダはエンコーダおよびデコーダを備える場合がある。エンコーダは、入って来る音声信号を時間のブロック、すなわち分析フレームに分割する。各時間セグメント(すなわち「フレーム」)の継続時間は、信号のスペクトルエンベロープが比較的静的なままになることが予想され得るほど十分に短くなるように選択され得る。たとえば、1フレームの長さは20ミリ秒であり、それは8キロヘルツ(kHz)のサンプリングレートにおける160サンプルに相当するが、特定の適用例に適していると見なされる任意のフレーム長またはサンプリングレートが使用されてよい。
エンコーダは、入って来る音声フレームを分析していくつかの関連するパラメータを抽出し、次いで、パラメータをバイナリ表現に、たとえば、ビットのセットまたはバイナリデータパケットに量子化する。データパケットは、通信チャネル(すなわち、有線および/またはワイヤレスのネットワーク接続)を介して受信機およびデコーダに送信される。デコーダは、データパケットを処理し、処理されたデータパケットを逆量子化してパラメータを生成し、逆量子化されたパラメータを使用して音声フレームを再合成する。
スピーチコーダの機能は、音声に固有の自然な冗長構成を除去することにより、デジタル化された音声信号を低ビットレート信号に圧縮することである。デジタル圧縮は、パラメータのセットで入力音声フレームを表し、量子化を利用してビットのセットでパラメータを表すことによって実現され得る。入力音声フレームがNi個のビットを有し、スピーチコーダによって生成されたデータパケットがNo個のビットを有する場合、スピーチコーダによって実現された圧縮率は、Cr = Ni/Noである。課題は、目標の圧縮率を実現しながら、復号された音声の高い音声品質を保持することである。スピーチコーダの性能は、(1)音声モデル、すなわち上述された分析プロセスと合成プロセスの組合せがいかに良好に作動するか、および(2)フレーム当たりNoビットの目標ビットレートにおいてパラメータ量子化プロセスがいかに良好に実施されるかに依存する。音声モデルの目的は、フレームごとに小さいセットのパラメータで、音声信号の本質、すなわち目標音声品質をこのように取り込むことである。
スピーチコーダは、一般に、(ベクトルを含む)パラメータのセットを利用して音声信号を記述する。良いセットのパラメータは、理想的には、知覚的に正確な音声信号の復元のための低システム帯域幅を実現する。ピッチ、信号電力、スペクトルエンベロープ(すなわちフォルマント)、振幅スペクトル、および位相スペクトルは、音声コーディングパラメータの例である。
スピーチコーダは時間領域コーダとして実装される場合があり、時間領域コーダは、高時間分解能処理を利用して1度に音声の小さいセグメント(たとえば、5ミリ秒(ms)のサブフレーム)を符号化することにより、時間領域音声波形を取り込むように試みる。サブフレームごとに、コードブック空間からの高精細表現が探索アルゴリズムによって見つけられる。代替として、スピーチコーダは周波数領域コーダとして実装される場合があり、周波数領域コーダは、パラメータのセットで入力音声フレームの短期音声スペクトルを取り込み(分析)、対応する合成プロセスを利用してスペクトルパラメータから音声波形を再現するように試みる。パラメータ量子化器は、既知の量子化技法に従ってコードベクトルの記憶された表現でパラメータを表すことによってパラメータを保存する。
1つの時間領域スピーチコーダは、コード励起線形予測(CELP)コーダである。CELPコーダでは、音声信号内の短期相関関係すなわち冗長構成は、短期フォルマントフィルタの係数を見つける線形予測(LP)分析によって除去される。入って来る音声フレームに短期予測フィルタを適用するとLP残差信号が生成され、LP残差信号はさらに、長期予測フィルタパラメータおよび後続の確率的コードブックを用いてモデル化および量子化される。このようにして、CELPコーディングは、時間領域音声波形を符号化するタスクを、LP短期フィルタ係数を符号化すること、およびLP残差を符号化することの別々のタスクに分割する。時間領域コーディングは、固定レートで(すなわち、フレームごとに同じ数Noのビットを使用して)、または(様々なタイプのフレームコンテンツに様々なビットレートが使用される)可変レートで実施され得る。可変レートコーダは、目標品質を得るのに十分なレベルまでコーデックパラメータを符号化するために必要とされるビット量を使用するように試みる。
CELPコーダなどの時間領域コーダは、時間領域音声波形の確度を保持するために、フレーム当たりN0個の多数のビットに依拠する。そのようなコーダは、フレーム当たりのビットの数N0が比較的大きい(たとえば、8kbps以上)ならば、優れた音声品質を送出することができる。低ビットレート(たとえば、4kbps以下)では、時間領域コーダは、限定された数の利用可能ビットに起因して、高い品質およびロバストな性能を保持することができない場合がある。低ビットレートでは、限定されたコードブック空間により、より高いレートの商業用途において配置される時間領域コーダの波形適合能力が減少する。したがって、時間とともに改善するにもかかわらず、低ビットレートにおいて動作する多くのCELPコーディングシステムは、雑音として特徴づけられる知覚的に著しいひずみを被る。
低ビットレートにおけるCELPコーダに対する代替物は、CELPコーダと同様の原理の下で動作する「雑音励起線形予測」(NELP)コーダである。NELPコーダは、コードブックではなく、フィルタリングされた擬似ランダム雑音信号を使用して、音声をモデル化する。NELPはコード化音声により簡単なモデルを使用するので、NELPはCELPよりも低いビットレートを実現する。NELPは、無声音声または沈黙を圧縮または表現することに使用され得る。
2.4kbps程度のレートで動作するコーディングシステムは、実際は全体的にパラメトリックである。すなわち、そのようなコーディングシステムは、一定の間隔で、音声信号のピッチ周期およびスペクトルエンベロープ(すなわちフォルマント)を記述するパラメータを送信することによって動作する。これらのいわゆるパラメトリックコーダの実例はLPボコーダシステムである。
LPボコーダは、ピッチ周期当たりたった1つのパルスを用いて有声音声信号をモデル化する。この基本技法は、とりわけ、スペクトルエンベロープについての送信情報を含むように拡張され得る。LPボコーダは全体的に妥当な性能を実現するが、それらは、ざわめきとして特徴づけられる知覚的に著しいひずみをもたらす場合がある。
近年、波形コーダとパラメトリックコーダの両方のハイブリッドであるコーダが出現している。これらのいわゆるハイブリッドコーダの実例は、プロトタイプ波形補間(PWI)音声コーディングシステムである。PWIコーディングシステムは、プロトタイプピッチ周期(PPP)スピーチコーダとしても知られる場合がある。PWIコーディングシステムは、有声音声をコーディングするための効率的な方法を提供する。PWIの基本概念は、固定間隔で代表的なピッチサイクル(プロトタイプ波形)を抽出すること、その記述を送信すること、およびプロトタイプ波形の間を補間することによって音声信号を復元することである。PWI方法は、LP残差信号または音声信号のいずれかに対して動作することができる。
音声信号(たとえば、コード化された音声信号、復元された音声信号、または両方)のオーディオ品質を改善することに研究的関心および商業的利益があり得る。たとえば、通信デバイスは、最適な音声品質より低い品質を有する音声信号を受信することができる。たとえば、通信デバイスは、音声通話の間に別の通信デバイスから音声信号を受信することができる。音声通話品質は、環境騒音(たとえば、風、街頭騒音)、通信デバイスのインターフェースの限界、通信デバイスによる信号処理、パケット損失、帯域幅制限、ビットレート制限などの様々な理由によって悪化する場合がある。
従来型の電話システム(たとえば、公衆交換電話網(PSTN))では、信号帯域幅は、300ヘルツ(Hz)から3.4kHzの周波数範囲に限定される。セルラー電話およびボイスオーバーインターネットプロトコル(VoIP)などの広帯域(WB)アプリケーションでは、信号帯域幅は、0kHzから8kHzまでの周波数範囲に及ぶ場合がある。超広帯域(SWB)コーディング技法は、おおよそ16kHzまで及ぶ帯域幅をサポートする。信号帯域幅を3.4kHzの狭帯域電話から16kHzのSWB電話まで拡張すると、信号復元の品質、明瞭性、および自然性が改善される場合がある。
WBコーディング技法は、通常、入力信号の下位周波数部分(たとえば、「ローバンド」とも呼ばれる0Hz〜6kHz)を符号化および送信することを伴う。たとえば、ローバンドは、フィルタパラメータおよび/またはローバンド励起信号を使用して表される場合がある。しかしながら、コーディング効率を改善するために、入力信号の上位周波数部分(たとえば、「ハイバンド」とも呼ばれる6kHz〜8kHz)は、完全に符号化および送信されるとはかぎらない場合がある。代わりに、受信機は、信号モデル化を利用してハイバンドを予測する場合がある。いくつかの実装形態では、予測を支援するために、ハイバンドに関連付けられたデータが受信機に供給される場合がある。そのようなデータは「副次情報」と呼ばれる場合があり、利得情報、線スペクトル周波数(LSF、線スペクトル対(LSP)とも呼ばれる)などを含む場合がある。
信号モデル化を使用してハイバンドを予測することは、エンコーダにおいてハイバンド目標信号を生成することを含む場合がある。ハイバンド目標信号は、LPスペクトルエンベロープを推定するため、およびハイバンドの時間利得パラメータを推定するために使用され得る。ハイバンド目標信号を生成するために、入力信号は、「スペクトルフリップ」演算を受けてスペクトルフリップされた信号を生成することができ、その結果、入力信号の8kHz周波数成分はスペクトルフリップされた信号の0kHz周波数に配置され、入力信号の0kHz周波数成分はスペクトルフリップされた信号の8kHz周波数に配置される。スペクトルフリップされた信号は、デシメーション演算(たとえば、「4によるデシメーション演算」)を受けてハイバンド目標信号を生成することができる。
デシメーション後のローバンドおよびハイバンドの精度が保持されるように、入力信号はスケーリングされる場合がある。しかしながら、ローバンドの第1のエネルギーレベルがハイバンドの第2のエネルギーレベルよりも数倍大きいときに、入力信号全体に対して固定のスケーリングファクタが適用された場合、スペクトルフリップ演算およびデシメーション演算の後、ハイバンドは精度を失う場合がある。その後、推定されるハイバンド利得パラメータは粗く量子化され、アーティファクトを生じる場合がある。
ハイバンド目標信号の精度を制御するための技法が開示される。エンコーダは、約0kHzから6kHzまでの範囲のローバンドを有し、約6kHzから8kHzまでの範囲のハイバンドを有する入力信号を受信することができる。ローバンドは第1のエネルギーレベルを有する場合があり、ハイバンドは第2のエネルギーレベルを有する場合がある。エンコーダは、ハイバンドのLPスペクトルエンベロープを推定するため、およびハイバンドの時間利得パラメータを推定するために使用されるハイバンド目標信号を生成することができる。LPスペクトルエンベロープおよび時間利得パラメータは、符号化され、ハイバンドを復元するためにデコーダに送信され得る。ハイバンド目標信号は、入力信号に基づいて生成され得る。たとえば、エンコーダは、入力信号のスケーリングされたバージョンに対してスペクトルフリップ演算を実施してスペクトルフリップされた信号を生成することができ、スペクトルフリップされた信号は、デシメーションを受けてハイバンド目標信号を生成することができる。
通常、入力信号は、デシメーション中にさらなる演算が実施された場合ハイバンド目標信号の飽和の可能性を大幅に低減するヘッドルームを含むように、(周波数帯域全体を考慮して信号のピーク絶対値に基づいて)スケーリングされる。たとえば、ワード16入力信号は、-32768から32767までの固定小数点範囲を含むことができる。エンコーダは、ハイバンド目標信号の飽和を低減する目的で、3ビットのヘッドルームを含むように入力信号をスケーリングすることができる。3ビットのヘッドルームを含むように入力信号をスケーリングすると、-4096から4095までの固定小数点範囲を効果的に削減することができる。
ハイバンドの第2のエネルギーレベルがローバンドの第1のエネルギーレベルよりもかなり低い場合、ハイバンド目標信号は、非常に低いエネルギーまたは「低精度」を有する場合があり、さらに、元の入力信号の周波数帯域全体に基づいて計算されたヘッドルームを含むように入力信号をスケーリングすると、アーティファクトが生じる場合がある。無視できるエネルギーを有するハイバンド目標信号を生成することを回避するために、エンコーダは、入力信号のスペクトル傾斜を特定することができる。スペクトル傾斜は、周波数帯域全体に対するハイバンドのエネルギー分布を表すことができる。たとえば、スペクトル傾斜は、周波数帯域全体のエネルギーを表す遅延指数0における自己相関(R0)に基づき、遅延指数1における自己相関(R1)に基づく場合がある。スペクトル傾斜がしきい値を満たすことができない場合(たとえば、第1のエネルギーレベルが第2のエネルギーレベルよりもかなり大きい場合)、エンコーダは、入力信号のスケーリング中にヘッドロームの量を減少させて、ハイバンド目標信号により大きい範囲を与えることができる。ハイバンド目標信号により大きい範囲を与えると、低エネルギーハイバンドについてのより正確なエネルギー推定が可能になる場合があり、それにより、次にアーティファクトが低減される場合がある。スペクトル傾斜がしきい値を満たす場合(たとえば、第1のエネルギーレベルが第2のエネルギーレベルよりもかなり大きくはない場合)、エンコーダは、入力信号のスケーリング中にヘッドルームの量を増大させて、ハイバンド目標信号の飽和の可能性を低減することができる。
開示された実装形態のうちの少なくとも1つによって提供される特別の利点は、ハイバンド目標信号の精度を増大させてアーティファクトを低減することを含む。たとえば、入力信号のスケーリング中に使用されるヘッドルームの量は、入力信号のスペクトル傾斜に基づいて動的に調整され得る。入力信号の上位周波数部分のエネルギーレベルが入力信号の下位周波数部分のエネルギーレベルよりもかない小さいときにヘッドルームを減少させると、ハイバンド目標信号用のより大きい範囲をもたらす場合がある。より大きい範囲により、ハイバンドについてのより正確なエネルギー推定が可能になる場合があり、それにより、次にアーティファクトが低減される場合がある。本開示の他の実装形態、利点、および特徴は、本出願全体を検討した後に明らかになるであろう。
図1を参照すると、ハイバンド目標信号の精度を制御するように動作可能なシステムが示され、全体的に100と指定される。特定の実装形態では、システム100は、(たとえば、ワイヤレス電話のコーダ/デコーダ(コーデック)内の)符号化システムまたは符号化装置に組み込まれる場合がある。他の実装形態では、システム100は、例示的で非限定的な例として、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、PDA、固定位置データユニット、またはコンピュータに組み込まれる場合がある。特定の実装形態では、システム100は、ボコーダに対応するか、またはボコーダに含まれる場合がある。
以下の説明では、図1のシステム100によって実施される様々な機能は、いくつかの構成要素またはモジュールによって実施されるものとして記載されることに留意されたい。しかしながら、構成要素およびモジュールのこの分割は、説明のためのものにすぎない。代替の実装形態では、特定の構成要素またはモジュールによって実施される機能は、代わりに、複数の構成要素またはモジュールの間で分割される場合がある。その上、代替の実装形態では、図1の2つ以上の構成要素またはモジュールは、単一の構成要素またはモジュールに組み込まれる場合がある。図1に示された各々の構成要素またはモジュールは、ハードウェア(たとえば、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、コントローラなど)、ソフトウェア(たとえば、プロセッサによって実行可能な命令)、またはそれらの任意の組合せを使用して実装される場合がある。
システム100は、入力オーディオ信号102を受信するように構成された分析フィルタバンク110を含む。たとえば、入力オーディオ信号102は、マイクロフォンまたは他の入力デバイスによって供給される場合がある。特定の実装形態では、入力オーディオ信号102は音声を含む場合がある。入力オーディオ信号102は、約0Hzから約8kHzまでの周波数範囲内の音声コンテンツを含む場合がある。本明細書において使用される「約」は、記載された周波数の特定の範囲内の周波数を含む場合がある。たとえば、約は、記載された周波数の10パーセント、記載された周波数の5パーセント、記載された周波数の1パーセントなど以内の周波数を含む場合がある。例示的で非限定的な例として、「約8kHz」は、7.6kHz(たとえば、8kHz-8kHz*0.05)から8.4kHz(たとえば、8kHz+8kHz*0.05)までの周波数を含む場合がある。入力オーディオ信号102は、約0Hzから6kHzにわたるローバンド部分と、約6kHzから8kHzにわたるハイバンド部分とを含む場合がある。入力オーディオ信号102は、広帯域信号(たとえば、0Hzと8kHzとの間の周波数範囲を有する信号)として描写されるが、本開示に関して記載された技法は、超広帯域信号(たとえば、0Hzと16kHzとの間の周波数範囲を有する信号)および全帯域信号(たとえば、0Hzと20kHzとの間の周波数範囲を有する信号)にも適用可能であり得る。
分析フィルタバンク110は、リサンプラ103と、スペクトル傾斜分析モジュール105と、スケーリングファクタ選択モジュール107と、スケーリングモジュール109と、ハイバンド目標信号生成モジュール113とを含む。入力オーディオ信号102は、リサンプラ103、スペクトル傾斜分析モジュール105、およびスケーリングモジュール109に供給され得る。リサンプラ103は、入力オーディオ信号102の高周波数成分を除去して、ローバンド信号122を生成するように構成され得る。たとえば、リサンプラ103は、約0Hzから約6.4kHzにわたる帯域幅を有するローバンド信号122を生成するために、約6.4kHzのカットオフ周波数を有することができる。
スペクトル傾斜分析モジュール105、スケーリングファクタ選択モジュール107、スケーリングモジュール109、およびハイバンド目標信号生成モジュール113は、入力オーディオ信号102のハイバンドのLPスペクトルエンベロープを推定するために使用され、入力オーディオ信号102のハイバンドの時間利得パラメータを推定するために使用されるハイバンド目標信号126を、連携して生成するように動作することができる。たとえば、スペクトル傾斜分析モジュール105は、入力オーディオ信号102に関連付けられたスペクトル傾斜を特定することができる。スペクトル傾斜は、入力オーディオ信号102のエネルギー分布に基づく場合がある。たとえば、スペクトル傾斜は、時間領域内の入力オーディオ信号102の周波数帯域全体のエネルギーを表す遅延指数0における自己相関(R0)と、時間領域内のエネルギーを表す遅延指数1における自己相関(R1)との間の比に基づく場合がある。一実装形態によれば、遅延指数1における自己相関(R1)は、隣接するサンプルの積の合計に基づいて計算され得る。下記に記載される擬似コードでは、遅延指数0における自己相関(R0)は「temp1」と指定され、遅延指数1における自己相関(R1)は「temp2」と指定される。一実装形態によれば、スペクトル傾斜は、自己相関(R1)および自己相関(R0)から生じる商(たとえば、R1/R0またはtemp2/temp1)として表され得る。スペクトル傾斜分析モジュール105は、スペクトル傾斜を示す信号106を生成することができ、スケーリングファクタ選択モジュール107に信号106を供給することができる。
スケーリングファクタ選択モジュール107は、入力オーディオ信号102をスケーリングするために使用されるべきスケーリングファクタ(たとえば、「精度制御ファクタ」または「ノルムファクタ」)を選択することができる。スケーリングファクタは、信号106によって示されるスペクトル傾斜に基づく場合がある。たとえば、スケーリングファクタ選択モジュール107は、スペクトル傾斜をしきい値と比較してスケーリングファクタを決定することができる。非限定的な例として、スケーリングファクタ選択モジュール107は、スペクトル傾斜を95パーセント(たとえば、0.95)のしきい値と比較する場合がある。
スペクトル傾斜がしきい値を満たすことができない(たとえば、しきい値よりも小さくない、すなわち、R1/R0>=0.95である)場合、スケーリングファクタ選択モジュール107は第1のスケーリングファクタを選択することができる。第1のスケーリングファクタを選択することは、ローバンドの第1のエネルギーレベルがハイバンドの第2のエネルギーレベルよりもかなり大きいシナリオを示す場合がある。たとえば、入力オーディオ信号102のエネルギー分布は、スペクトル傾斜がしきい値を満たすことができないとき、比較的急勾配であり得る。スペクトル傾斜がしきい値を満たす(たとえば、しきい値よりも小さい)場合、スケーリングファクタ選択モジュール107は第2のスケーリングファクタを選択することができる。第2のスケーリングファクタを選択することは、ローバンドの第1のエネルギーレベルがハイバンドの第2のエネルギーレベルよりもかなり大きくはないシナリオを示す場合がある。たとえば、入力オーディオ信号102のエネルギー分布は、スペクトル傾斜がしきい値を満たす(すなわち、R1/R0< 0.95である)とき、ローバンドおよびハイバンドにわたって比較的平坦であり得る。一例として、第1のスケーリングファクタは、3ビットのヘッドルームを残す(すなわち、16ビットタイプの信号に対して入力信号を-4096〜4095に制限する)ために入力信号を正規化するように推定される場合があり、第2のスケーリングファクタは、ヘッドルームを残さない(すなわち、16ビットタイプの信号に対して入力信号を-32768〜32767に制限する)ために入力信号を正規化するように推定される場合がある。
スケーリングファクタ選択モジュール107は、選択されたスケーリングファクタを示す信号108を生成することができ、スケーリングモジュール109に信号108を供給することができる。たとえば、第1のスケーリングファクタが選択された場合、信号108は、第1のスケーリングファクタがスケーリングファクタ選択モジュール107によって選択されたことを示す第1の値を有することができる。第2のスケーリングファクタが選択された場合、信号108は、第2のスケーリングファクタがスケーリングファクタ選択モジュール107によって選択されたことを示す第2の値を有することができる。一例として、信号108は選択されたスケールファクタ値そのものであり得る。
スケーリングモジュール109は、選択されたスケーリングファクタによって入力オーディオ信号102をスケーリングして、スケーリングされた入力オーディオ信号112を生成するように構成され得る。たとえば、第2のスケーリングファクタが選択された場合、スケーリングモジュール109は、入力オーディオ信号102のスケーリング中にヘッドルームの量を増大させて、スケーリングされた入力オーディオ信号112を生成することができる。一実装形態によれば、スケーリングモジュール109は、入力オーディオ信号102に割り振られたヘッドルームを3ビットのヘッドルームに増大させる(または維持する)ことができる。下記に記載されるように、入力オーディオ信号102のスケーリング中にヘッドルームの量を増大させると、ハイバンド目標信号126の生成中の飽和の可能性が低減され得る。第1のスケーリングファクタが選択された場合、スケーリングモジュール109は、入力オーディオ信号102のスケーリング中にヘッドルームの量を減少させて、スケーリングされた入力オーディオ信号112を生成することができる。一実装形態によれば、スケーリングモジュール109は、入力オーディオ信号102に割り振られたヘッドルームを0ビットのヘッドルームに減少させることができる。下記に記載されるように、入力オーディオ信号102のスケーリング中にヘッドルームの量を減少させると、低エネルギーハイバンドのより正確なエネルギー推定が可能になる場合があり、それにより、次にアーティファクトが低減される場合がある。
ハイバンド目標信号生成モジュール113は、スケーリングされた入力オーディオ信号112を受信することができ、スケーリングされた入力オーディオ信号112に基づいてハイバンド目標信号126を生成するように構成され得る。たとえば、ハイバンド目標信号生成モジュール113は、スケーリングされた入力オーディオ信号112に対してスペクトルフリップ演算を実施して、スペクトルフリップされた信号を生成することができる。たとえば、スケーリングされた入力オーディオ信号112の上位周波数成分はスペクトルフリップされた信号の下位周波数に配置される場合があり、スケーリングされた入力オーディオ信号112の下位周波数成分はスペクトルフリップされた信号の上位周波数に配置される場合がある。したがって、スケーリングされた入力オーディオ信号112が0Hzから8kHzにわたる8kHz帯域幅を有する場合、スケーリングされた入力オーディオ信号112の8kHz周波数成分はスペクトルフリップされた信号の0kHzに配置される場合があり、スケーリングされた入力オーディオ信号112の0kHz周波数成分はスペクトルフリップされた信号の8kHzに配置される場合がある。
ハイバンド目標信号生成モジュール113は、スペクトルフリップされた信号に対してデシメーション演算を実施して、ハイバンド目標信号126を生成するように構成され得る。たとえば、ハイバンド目標信号生成モジュール113は、スペクトルフリップされた信号を4倍にデシメートして、ハイバンド目標信号126を生成することができる。ハイバンド目標信号126は、0Hzから2kHzにわたるベースバンド信号の場合があり、入力オーディオ信号102のハイバンドを表すことができる。
ハイバンド目標信号126は、スケーリングファクタ選択モジュール107によって選択された動的なスケーリングファクタに基づいて増大された精度を有することができる。たとえば、ローバンドの第1のエネルギーレベルがハイバンドの第2のエネルギーレベルよりもかなり大きいシナリオでは、入力オーディオ信号102は、ヘッドルームの量を減少させるようにスケーリングされ得る。ヘッドルームの量を減少させると、ハイバンド目標信号126を生成するためにより大きい範囲が与えられる場合があり、その結果、ハイバンドのエネルギーがより正確に取り込まれる場合がある。ハイバンド目標信号によってハイバンドのエネルギーを正確に取り込むと、ハイバンド利得パラメータ(たとえば、ハイバンド副次情報172)の推定が改善される結果になり、アーティファクトが低減される場合がある。たとえば、図2Bを参照すると、ハイバンド目標信号126を使用して推定されたハイバンド時間利得が基準時間利得と比較されるプロットが示される。推定された時間利得が基準時間利得から著しく逸脱する図2Aと比較すると、ハイバンド目標信号126を使用して推定された時間利得は基準時間利得とよく似ている。したがって、信号復元中にアーティファクト(たとえば、雑音)が低減される結果になり得る。
ローバンドの第1のエネルギーレベルがハイバンドの第2のエネルギーレベルよりもかなり大きくはないシナリオでは、入力オーディオ信号102は、ヘッドルームの量を増大させるようにスケーリングされ得る。量を増大させると、ハイバンド目標信号126の生成中の飽和の可能性が低減される場合がある。たとえば、デシメーション中に、ハイバンド目標信号生成モジュール113は、十分なヘッドルームがない場合に飽和を引き起こす場合がある、さらなる演算を実施する場合がある。ヘッドルームの量を増大させる(またはあらかじめ定義されたヘッドルームの量を維持する)と、ハイバンド目標信号126の飽和が大幅に低減される場合がある。たとえば、図3Bを参照すると、基準広帯域目標信号と比較されるハイバンド目標信号126の時間領域プロットが示される。エネルギーレベルが基準広帯域目標信号のエネルギーレベルから著しく逸脱する図3Aと比較すると、ハイバンド目標信号126のエネルギーレベルは基準広帯域目標信号のエネルギーレベルとよく似ている。したがって、飽和の低減が実現され得る。
分析フィルタバンク110は複数のモジュール105、107、109、113を含むが、他の実装形態では、モジュール105、107、109、113のうちの1つまたは複数の機能は組み合わされる場合がある。一実装形態によれば、モジュール105、107、109、113のうちの1つまたは複数は、以下の擬似コードに基づいて、ハイバンド目標信号126の精度を生成および制御するように動作することができる。
max_wb = 1;
/* 長さ320の入力信号バッファ内の最大値を計算する*/
FOR (i = 0; i < 320; i++ ) {
max_wb = s_max(max_wb, abs_s(new_inp_resamp16k[i]));
}
Q_wb_sp = norm_s(max_wb);
/* rxx(0)およびrxx(1)を推定する前に信号を3ビットだけ右にシフトする*/
scale_sig(new_inp_resamp16k, temp_buf, 320, -3);
temp1 = L_mac0(temp1, temp_buf[0], temp_buf[0]);
FOR (i = 1; i < 320; i++) {
temp1 = L_mac0(temp1, temp_buf[i], temp_buf[i]);
temp2 = L_mac0(temp2, temp_buf[i-1], temp_buf[i]);
}
if( temp2 < temp1* 0.95 ) {
/* スペクトル傾斜が強くない場合、3ビット以上のヘッドルームを残す*/
Q_wb_sp = sub(Q_wb_sp, 3);
}
/* Q_wb_spのとおり信号new_inp_resamp16kをスケーリングし、temp_bufに書き込む*/
scale_sig(new_inp_resamp16k, temp_buf, 320, Q_wb_sp);
/* スペクトルをフリップし、4倍にデシメートする*/
flip_spectrum_and_decimby4( );
/* HB目標信号を再スケーリングし、Q-1に戻して記憶する*/
scale_sig(hb_speech, 80, -Q_wb_sp);
擬似コードによれば、「max_wb」は入力オーディオ信号102の最大サンプル値に対応し、「new_inp_resamp16k[i]」は入力オーディオ信号102に対応する。たとえば、new_inp_resamp16k[i]は、0Hzから8kHzにわたる周波数を有することができ、16kHzのナイキストサンプリングレートでサンプリングされ得る。サンプルごとに、入力オーディオ信号102(max_wb)は、入力オーディオ信号102(new_inp_resamp16k[i])の最大絶対値に設定され得る。パラメータ(「Q_wb_sp」)は、入力オーディオ信号102(new_inp_resamp16k[i])が信号(new_inp_resamp16k[i])のフルレンジをカバーしながら左にシフトされ得るビット数を示すことができる。擬似コードによれば、パラメータ(Q_wb_sp)はmax_wbのノルムに等しい場合がある。
擬似コードによれば、スペクトル傾斜は、入力オーディオ信号102の遅延指数1における自己相関(R1)(「temp2」)と、遅延指数0における自己相関(R0)(「temp1」)との間の比に基づく場合がある。遅延指数1における自己相関(R1)は、隣接するサンプルの積の合計に基づいて計算され得る。
自己相関(R1)がしきい値(0.95)×自己相関(R0)よりも小さい場合、パラメータ(Q_wb_sp)は、スケーリング中に3ビット以上のさらなるヘッドルームを維持して、ハイバンド目標信号126の生成中の飽和の可能性を低減することができる。自己相関(R1)がしきい値(0.95)×自己相関(R0)よりも小さくない場合、パラメータ(Q_wb_sp)は、スケーリング中にさらなるヘッドルームを0ビットに減少させて、ハイバンドのエネルギーがより正確に取り込まれ得るように、ハイバンド目標信号126を生成するためにより大きい範囲を与えることができる。擬似コードによれば、入力信号はQ_wb_sp個のビットだけ左にシフトされ、スケーリングファクタ選択モジュール107によって選択された最終スケールファクタが2Q_wb_spに相当するはずであることを意味する。ハイバンド目標信号によってハイバンドのエネルギーをより正確に取り込むと、ハイバンド利得パラメータ(たとえば、ハイバンド副次情報172)の推定が改善され、アーティファクトが低減される場合がある。いくつかの例示的な実施形態では、ハイバンド目標信号126は、再スケーリングされて(たとえば、Q値:Q0またはQ1において)元の入力レベルに戻ることができ、その結果、メモリはハイバンドパラメータ推定値を更新し、フレームにわたるハイバンド合成は固定された時間スケールファクタの調整値を維持する。
上記の例は、WBコーディング(たとえば、約0Hzから8kHzまでのコーディング)のためのフィルタリングを示す。他の例では、分析フィルタバンク110は、SWBコーディング(たとえば、約0Hzから16kHzまでのコーディング)および全帯域(FB)コーディング(たとえば、約0Hzから20kHzまでのコーディング)のために入力オーディオ信号をフィルタリングすることができる。たとえば。説明しやすいように、他で注記されていないかぎり、以下の説明は、全体的にWBコーディングに関して記載される。しかしながら、SWBコーディングおよびFBコーディングを実施するために同様の技法が適用され得る。
システム100は、ローバンド信号122を受信するように構成されたローバンド分析モジュール130を含む場合がある。特定の実施形態では、ローバンド分析モジュール130はCELPエンコーダを表す場合がある。ローバンド分析モジュール130は、LP分析およびコーディングモジュール132と、線形予測係数(LPC)-LSP変換モジュール134と、量子化器136とを含む場合がある。LSPはLSFと呼ばれる場合もあり、2つの用語(LSPおよびLSF)は、本明細書では互換的に使用される場合がある。LP分析およびコーディングモジュール132は、LPCのセットとしてローバンド信号122のスペクトルエンベロープを符号化することができる。LPCは、オーディオのフレーム(たとえば、16kHzのサンプリングレートにおいて320個のサンプルに対応する20msのオーディオ)ごとに、オーディオのサブフレーム(たとえば、5msのオーディオ)ごとに、またはそれらの任意の組合せに対して生成され得る。フレームまたはサブフレームごとに生成されるLPCの数は、実施されるLP分析の「順序」によって決定され得る。特定の実装形態では、LP分析およびコーディングモジュール132は、10次LP分析に対応する11個のLPCのセットを生成することができる。
LPC-LSP変換モジュール134は、LP分析およびコーディングモジュール132によって生成されたLPCのセットを、(たとえば、1対1の変換を使用して)LSPの対応するセットに変換することができる。代替として、LPCのセットは、パーコール係数、対数-面積比値、イミッタンススペクトル対(ISP)、またはイミッタンススペクトル周波数(ISF)の対応するセットに1対1変換され得る。LPCのセットとLSPのセットとの間の変換は、誤差がなく可逆的であり得る。
量子化器136は、変換モジュール134によって生成されたLSPのセットを量子化することができる。たとえば、量子化器136は、複数のエントリ(たとえば、ベクトル)を含む複数のコードブックを含むか、またはそれらに結合される場合がある。LSPのセットを量子化するために、量子化器136は、(たとえば、最小2乗または平均2乗誤差などのひずみ尺度に基づいて)LSPのセットに「最も近い」コードブックのエントリを識別することができる。量子化器136は、コードブック内の識別されたエントリの位置に対応するインデックス値または一連のインデックス値を出力することができる。したがって、量子化器136の出力は、ローバンドビットストリーム142に含まれるローバンドフィルタパラメータを表すことができる。
ローバンド分析モジュール130は、ローバンド励起信号144も生成することができる。たとえば、ローバンド励起信号144は、ローバンド分析モジュール130によって実施されるLPプロセスの間に生成されるLP残差信号を量子化することによって生成される符号化信号であり得る。LP残差信号はローバンド励起信号144の予測誤差を表すことができる。
システム100はさらに、分析フィルタバンク110からハイバンド目標信号126を受信し、ローバンド分析モジュール130からローバンド励起信号144を受信するように構成されたハイバンド分析モジュール150を含む場合がある。ハイバンド分析モジュール150は、ハイバンド目標信号126に基づき、またローバンド励起信号144に基づいて、ハイバンド副次情報172を生成することができる。たとえば、ハイバンド副次情報172は、ハイバンドLSP、利得情報、および/または位相情報を含む場合がある。
図示されたように、ハイバンド分析モジュール150は、LP分析およびコーディングモジュール152と、LPC-LSP変換モジュール154と、量子化器156とを含む場合がある。LP分析およびコーディングモジュール152、変換モジュール154、および量子化器156の各々は、ローバンド分析モジュール130の対応する構成要素を参照して上述されたように、しかし、(たとえば、係数ごとのわずかのビット、LSPなどを使用して)比較的低減された分解能で機能することができる。LP分析およびコーディングモジュール152は、変換モジュール154によってLSPのセットに変換され、コードブック163に基づいて量子化器156によって量子化される、ハイバンド目標信号126用のLPCのセットを生成することができる。
LP分析およびコーディングモジュール152、変換モジュール154、および量子化器156は、ハイバンド目標信号126を使用して、ハイバンド副次情報172に含まれるハイバンドフィルタ情報(たとえば、ハイバンドLSP)を決定することができる。たとえば、LP分析およびコーディングモジュール152、変換モジュール154、および量子化器156は、ハイバンド目標信号126およびハイバンド励起信号162を使用して、ハイバンド副次情報172を決定することができる。
量子化器156は、変換モジュール154によって供給されるLSPなどのスペクトル周波数値のセットを量子化するように構成され得る。他の実装形態では、量子化器156は、LSFもしくはLSPに加えて、またはLSFもしくはLSPの代わりに、1つまたは複数の他のタイプのスペクトル周波数値のセットを受信し量子化することができる。たとえば、量子化器156は、LP分析およびコーディングモジュール152によって生成されたLPCのセットを受信し量子化することができる。他の例には、量子化器156において受信され量子化され得るパーコール係数、対数-面積比値、およびISFのセットが含まれる。量子化器156は、コードブック163などのテーブルまたはコードブック内の対応するエントリに対するインデックスとして、入力ベクトル(たとえば、ベクトルフォーマットのスペクトル周波数値のセット)を符号化するベクトル量子化器を含む場合がある。別の例として、量子化器156は、ストレージから取り出されるのではなく、スパースコードブックの実施形態などの、入力ベクトルがデコーダにおいてそれらから動的に生成され得る1つまたは複数のパラメータを決定するように構成され得る。たとえば、スパースコードブックの例は、3GPP2(第3世代パートナーシップ2)のEVRC(拡張可変レートコーデック)などの業界規格に従って、CELPおよびコーデックなどのコーディング方式において適用される場合がある。別の実装形態では、ハイバンド分析モジュール150は量子化器156を含む場合があり、いくつかのコードブックベクトルを使用して、(たとえば、フィルタパラメータのセットに従って)合成信号を生成し、知覚的に重み付けされた領域内などの、ハイバンド目標信号126に最も良く合致する合成信号に関連付けられたコードブックベクトルのうちの1つを選択するように構成され得る。
ハイバンド分析モジュール150は、ハイバンド励起生成器160を含む場合もある。ハイバンド励起生成器160は、ローバンド分析モジュール130からのローバンド励起信号144に基づいて、ハイバンド励起信号162(たとえば、調和的に拡張された信号)を生成することができる。ハイバンド分析モジュール150は、LP合成モジュール166を含む場合もある。LP合成モジュール166は、量子化器156によって生成されたLPC情報を使用して、ハイバンド目標信号126の合成バージョンを生成する。ハイバンド励起生成器160およびLP合成モジュール166は、受信機にあるデコーダにおける性能をエミュレートするローカルデコーダに含まれる場合がある。LP合成モジュール166の出力は、ハイバンド目標信号126に対する比較に使用される場合があり、パラメータ(たとえば、利得パラメータ)は比較に基づいて調整され得る。
ローバンドビットストリーム142およびハイバンド副次情報172は、出力ビットストリーム199を生成するために、マルチプレクサ170によって多重化され得る。出力ビットストリーム199は、入力オーディオ信号102に対応する符号化されたオーディオ信号を表すことができる。出力ビットストリーム199は、(たとえば、有線チャネル、ワイヤレスチャネル、もしくは光チャネルを介して)送信機198によって送信される、かつ/または記憶される場合がある。受信機において、オーディオ信号(たとえば、スピーカまたは他の出力デバイスに供給される入力オーディオ信号102の復元バージョン)を生成するために、デマルチプレクサ(DEMUX)、ローバンドデコーダ、ハイバンドデコーダ、およびフィルタバンクによって逆動作が実施され得る。ローバンドビットストリーム142を表すために使用されるビット数は、ハイバンド副次情報172を表すために使用されるビット数よりも大幅に大きい場合がある。したがって、出力ビットストリーム199内のビットの大部分は、ローバンドデータを表すことができる。ハイバンド副次情報172は、信号モデルに従ってローバンドデータからハイバンド励起信号162、164を再生するために、受信機において使用され得る。たとえば、信号モデルは、ローバンドデータ(たとえば、ローバンド信号122)とハイバンドデータ(たとえば、ハイバンド信号126)との間の関係または相関の予想されるセットを表すことができる。したがって、様々な種類のオーディオデータ(たとえば、音声、音楽など)に様々な信号モデルが使用される場合があり、使用中の特定の信号モデルは、符号化されたオーディオデータの通信より前に、送信機および受信機によって交渉(または業界規格によって定義)され得る。信号モデルを使用して、送信機にあるハイバンド分析モジュール150は、受信機にある対応するハイバンド分析モジュールが信号モデルを使用して、出力ビットストリーム199からハイバンド目標信号126を復元することができるように、ハイバンド副次情報172を生成することができる場合がある。
図1のシステム100は、スケーリングファクタ選択モジュール107によって選択された動的なスケーリングファクタに基づいて、ハイバンド目標信号126の精度を制御することができる。たとえば、ローバンドの第1のエネルギーレベルがハイバンドの第2のエネルギーレベルよりもかなり大きいシナリオでは、入力オーディオ信号102は、ヘッドルームの量を減少させるようにスケーリングされ得る。ヘッドルームの量を減少させると、ハイバンド目標信号126を生成するためにより大きい範囲が与えられる場合があり、その結果、ハイバンドのエネルギーがより正確に取り込まれる場合がある。ハイバンド目標信号によってハイバンドのエネルギーを正確に取り込むと、ハイバンド利得パラメータ(たとえば、ハイバンド副次情報172)の推定が改善される結果になり、アーティファクトが低減される場合がある。ローバンドの第1のエネルギーレベルがハイバンドの第2のエネルギーレベルよりもかなり大きくはないシナリオでは、入力オーディオ信号102は、ヘッドルームの量を増大させるようにスケーリングされ得る。量を増大させると、ハイバンド目標信号126の生成中の飽和の可能性が低減される場合がある。たとえば、デシメーション中に、ハイバンド目標信号生成モジュール113は、十分なヘッドルームがない場合に飽和を引き起こす場合がある、さらなる演算を実施する場合がある。ヘッドルームの量を増大させる(またはあらかじめ定義されたヘッドルームの量を維持する)と、ハイバンド目標信号126の飽和が大幅に低減される場合がある。
図4Aを参照すると、ハイバンド目標信号を生成する方法400のフローチャートが示される。方法400は図1のシステム100によって実施され得る。
方法400は、402において、エンコーダにおいて、ローバンド部分およびハイバンド部分を有する入力信号を受信することを含む。たとえば、図1を参照すると、分析フィルタバンク110は入力オーディオ信号102を受信することができる。詳細には、リサンプラ103、スペクトル傾斜分析モジュール105、およびスケーリングモジュール109が入力オーディオ信号102を受信することができる。入力オーディオ信号102は、0Hzと6kHzとの間の周波数範囲を有するローバンド部分を有する場合がある。入力オーディオ信号102は、6kHzと8kHzとの間の周波数範囲を有するハイバンド部分も有する場合がある。
404において、入力信号に関連付けられたスペクトル傾斜が特定され得る。スペクトル傾斜は、入力信号のエネルギー分布に基づく場合がある。一実装形態によれば、入力信号のエネルギー分布は、ローバンドの第1のエネルギーレベルおよびハイバンドの第2のエネルギーレベルに少なくとも部分的に基づく場合がある。図1を参照すると、スペクトル傾斜分析モジュール105は、入力オーディオ信号102に関連付けられたスペクトル傾斜を特定することができる。スペクトル傾斜は、入力オーディオ信号102のエネルギー分布に基づく場合がある。たとえば、スペクトル傾斜は、時間領域内の入力オーディオ信号102の周波数帯域全体のエネルギーを表す遅延指数0における自己相関(R0)と、時間領域内のハイバンドのエネルギーを表す遅延指数1における自己相関(R1)との間の比に基づく場合がある。一実装形態によれば、遅延指数1における自己相関(R1)は、隣接するサンプルの積の合計に基づいて計算され得る。スペクトル傾斜は、自己相関(R1)および自己相関(R0)から生じる商(たとえば、R1/R0)として表され得る。スペクトル傾斜分析モジュール105は、スペクトル傾斜を示す信号106を生成することができ、スケーリングファクタ選択モジュール107に信号106を供給することができる。
406において、スペクトル傾斜に基づいてスケーリングファクタが選択され得る。たとえば、図1を参照すると、スケーリングファクタ選択モジュール107は、入力オーディオ信号102をスケーリングするために使用されるように、スケーリングファクタを選択することができる。スケーリングファクタは、信号106によって示されるスペクトル傾斜に基づく場合がある。たとえば、スケーリングファクタ選択モジュール107は、スペクトル傾斜をしきい値と比較してスケーリングファクタを決定することができる。スペクトル傾斜がしきい値を満たすことができない(たとえば、しきい値よりも小さくない、すなわち、R1/R0>=0.95である)場合、スケーリングファクタ選択モジュール107は第1のスケーリングファクタを選択することができる。第1のスケーリングファクタを選択することは、ローバンドの第1のエネルギーレベルがハイバンドの第2のエネルギーレベルよりもかなり大きいシナリオを示す場合がある。たとえば、入力オーディオ信号102のエネルギー分布は、スペクトル傾斜がしきい値を満たすことができないとき、比較的急勾配であり得る。スペクトル傾斜がしきい値を満たす(たとえば、しきい値よりも小さい)場合、スケーリングファクタ選択モジュール107は第2のスケーリングファクタを選択することができる。第2のスケーリングファクタを選択することは、ローバンドの第1のエネルギーレベルがハイバンドの第2のエネルギーレベルよりもかなり大きくはないシナリオを示す場合がある。たとえば、入力オーディオ信号102のエネルギー分布は、スペクトル傾斜がしきい値を満たす(すなわち、R1/R0< 0.95である)とき、ローバンドおよびハイバンドにわたって比較的平坦であり得る。
408において、スケーリングされた入力信号を生成するためにスケーリングファクタによって入力信号がスケーリングされてもよい。たとえば、図1を参照すると、スケーリングモジュール109は、選択されたスケーリングファクタによって入力オーディオ信号102をスケーリングして、スケーリングされた入力オーディオ信号112を生成することができる。たとえば、第1のスケーリングファクタが選択された場合、スケーリングモジュール109は、生じるスケーリングされた入力オーディオ信号112が第1の量のヘッドルームを有するように、入力オーディオ信号102をスケーリングすることができる。第2のスケーリングファクタが選択された場合、スケーリングモジュール109は、生じるスケーリングされた入力オーディオ信号112が、第1の量のヘッドルームよりも小さい第2の量のヘッドルームを有するように、入力オーディオ信号102をスケーリングすることができる。一実装形態によれば、第1の量のヘッドルームは3ビットのヘッドルームに等しい場合があり、第2の量のヘッドルームは0ビットのヘッドルームに等しい場合がある。第1の量のヘッドルームを有するスケーリングされた入力オーディオ信号112を生成すると、ハイバンド目標信号126の生成中の飽和の可能性が低減される場合がある。第2の量のヘッドルームを有するスケーリングされた入力オーディオ信号112を生成すると、低エネルギーハイバンドについてのより正確なエネルギー推定が可能になる場合があり、それにより、次にアーティファクトが低減される場合がある。
410において、スケーリングされた入力信号に基づいてハイバンド目標信号が生成され得る。たとえば、図1を参照すると、スケーリングされた入力オーディオ信号112に対してスペクトルフリップ演算が実施されて、スペクトルフリップされた信号を生成することができる。加えて、スペクトルフリップされた信号に対してデシメーション演算が実施されて、ハイバンド目標信号126を生成することができる。一実装形態によれば、デシメーション演算は、スペクトルフリップされた信号を4倍にデシメートすることができる。方法400は、ハイバンド目標信号に基づいて、線形予測スペクトルエンベロープ、時間利得パラメータ、またはそれらの組合せを生成することを含む場合もある。
図4Aの方法400は、スケーリングファクタ選択モジュール107によって選択された動的なスケーリングファクタに基づいて、ハイバンド目標信号126の精度を制御することができる。たとえば、ローバンドの第1のエネルギーレベルがハイバンドの第2のエネルギーレベルよりもかなり大きいシナリオでは、入力オーディオ信号102は、ヘッドルームの量を減少させるようにスケーリングされ得る。ヘッドルームの量を減少させると、ハイバンド目標信号126を生成するためにより大きい範囲が与えられる場合があり、その結果、ハイバンドのエネルギーがより正確に取り込まれる場合がある。ハイバンド目標信号によってハイバンドのエネルギーを正確に取り込むと、ハイバンド利得パラメータ(たとえば、ハイバンド副次情報172)の推定が改善される結果になり、アーティファクトが低減される場合がある。ローバンドの第1のエネルギーレベルがハイバンドの第2のエネルギーレベルよりもかなり大きくはないシナリオでは、入力オーディオ信号102は、ヘッドルームの量を増大させるようにスケーリングされ得る。量を増大させると、ハイバンド目標信号126の生成中の飽和の可能性が低減される場合がある。たとえば、デシメーション中に、ハイバンド目標信号生成モジュール113は、十分なヘッドルームがない場合に飽和を引き起こす場合がある、さらなる演算を実施する場合がある。ヘッドルームの量を増大させる(またはあらかじめ定義されたヘッドルームの量を維持する)と、ハイバンド目標信号126の飽和が大幅に低減される場合がある。
図4Bを参照すると、ハイバンド目標信号を生成する方法420の別のフローチャートが示される。方法420は図1のシステム100によって実施され得る。
方法420は、422において、エンコーダにおいて、ローバンド部分およびハイバンド部分を有する入力信号を受信することを含む。たとえば、分析フィルタバンク110は、入力オーディオ信号102を受信することができる。詳細には、リサンプラ103、スペクトル傾斜分析モジュール105、およびスケーリングモジュール109が入力オーディオ信号102を受信することができる。入力オーディオ信号102は、0Hzと6kHzとの間の周波数範囲を有するローバンド部分を有する場合がある。入力オーディオ信号102は、6kHzと8kHzとの間の周波数範囲を有するハイバンド部分も有する場合がある。
424において、入力信号の第1の自己相関値が入力信号の第2の自己相関値と比較され得る。たとえば、上述された擬似コードによれば、分析フィルタバンク110は、入力オーディオ信号102の遅延指数1における自己相関(R1)(「temp2」)および遅延指数0における自己相関(R0)(「temp1」)を使用して、比較演算を実施することができる。たとえば、分析フィルタバンク110は、第2の自己相関値(たとえば、遅延指数1における自己相関(R1))が、第1の自己相関値(たとえば、遅延指数0における自己相関(R0))としきい値(たとえば、95パーセントのしきい値)との積よりも小さいかどうかを判定することができる。遅延指数1における自己相関(R1)は、隣接するサンプルの積の合計に基づいて計算され得る。
426において、スケーリングされた入力信号を生成するためにスケーリングファクタによって入力信号がスケーリングされてもよい。スケーリングファクタは比較の結果に基づいて決定され得る。たとえば、図1を参照すると、スケーリングファクタ選択モジュール107は、第2の自己相関値(R1)が第1の自己相関値(R0)としきい値(たとえば、0.95)との積よりも小さくない場合、スケーリングファクタとして第1のスケーリングファクタを選択することができる。スケーリングファクタ選択モジュール107は、第2の自己相関値(R1)が第1の自己相関値(R0)としきい値(たとえば、0.95)との積よりも小さい場合、スケーリングファクタとして第2のスケーリングファクタを選択することができる。スケーリングモジュール109は、選択されたスケーリングファクタによって入力オーディオ信号102をスケーリングして、スケーリングされた入力オーディオ信号112を生成することができる。たとえば、第1のスケーリングファクタが選択された場合、スケーリングモジュール109は、生じるスケーリングされた入力オーディオ信号112が第1の量のヘッドルームを有するように、入力オーディオ信号102をスケーリングすることができる。第2のスケーリングファクタが選択された場合、スケーリングモジュール109は、生じるスケーリングされた入力オーディオ信号112が、第1の量のヘッドルームよりも小さい第2の量のヘッドルームを有するように、入力オーディオ信号102をスケーリングすることができる。一実装形態によれば、第1の量のヘッドルームは3ビットのヘッドルームに等しい場合があり、第2の量のヘッドルームは0ビットのヘッドルームに等しい場合がある。第1の量のヘッドルームを有するスケーリングされた入力オーディオ信号112を生成すると、ハイバンド目標信号126の生成中の飽和の可能性が低減される場合がある。第2の量のヘッドルームを有するスケーリングされた入力オーディオ信号112を生成すると、低エネルギーハイバンドについてのより正確なエネルギー推定が可能になる場合があり、それにより、次にアーティファクトが低減される場合がある。他の代替の例示的な実装形態では、スケーリングファクタ選択モジュール107は、第1の自己相関値と第2の自己相関値との間で実施される比較の複数のしきい値に基づいて、複数の(たとえば、3つ以上の)スケーリングファクタの中から選択することができる。代替として、スケーリングファクタ選択モジュール107は、第1の自己相関値および第2の自己相関値を出力スケーリングファクタにマッピングすることができる。
代替の実装形態では、スケーリングファクタ選択モジュール107は、スケーリングファクタとして第1のスケーリングファクタを選択することができる。スケーリングファクタ選択モジュール107は、第2の自己相関値(R1)が第1の自己相関値(R0)としきい値(たとえば、0.95)との積よりも小さい場合、スケーリングファクタの値を第2のスケーリングファクタに修正することができる。スケーリングモジュール109は、選択されたスケーリングファクタによって入力オーディオ信号102をスケーリングして、スケーリングされた入力オーディオ信号112を生成することができる。たとえば、第1のスケーリングファクタが選択され、スケーリングファクタの値が第2のスケーリングファクタに修正されない場合、スケーリングモジュール109は、生じるスケーリングされた入力オーディオ信号112が第1の量のヘッドルームを有するように、入力オーディオ信号102をスケーリングすることができる。第1の自己相関値および第2の自己相関値の比較に基づいて、スケーリングファクタの値が第1のスケーリングファクタから第2のスケーリングファクタに修正された場合、スケーリングモジュール109は、生じるスケーリングされた入力オーディオ信号112が第1の量のヘッドルームよりも小さい第2の量のヘッドルームを有するように、入力オーディオ信号102をスケーリングすることができる。一実装形態によれば、第1の量のヘッドルームは3ビットのヘッドルームに等しい場合があり、第2の量のヘッドルームは0ビットのヘッドルームに等しい場合がある。
428において、入力信号に基づいてローバンド信号が生成される場合があり、スケーリングされた入力信号に基づいてハイバンド目標信号が生成される場合がある。ローバンド信号は、スケーリングされた入力信号とは無関係に生成され得る。たとえば、図1を参照すると、スケーリングされた入力オーディオ信号112に対してスペクトルフリップ演算が実施されて、スペクトルフリップされた信号を生成することができる。加えて、スペクトルフリップされた信号に対してデシメーション演算が実施されて、ハイバンド目標信号126を生成することができる。加えて、リサンプラ103は、入力オーディオ信号102の高周波数成分を除去して、ローバンド信号122を生成することができる。
方法420によれば、第2の自己相関値(R1)がしきい値(0.95)×第1の自己相関値(R0)よりも小さい場合、パラメータ(Q_wb_sp)は、スケーリング中に3ビット以上のさらなるヘッドルームを維持して、ハイバンド目標信号126の生成中の飽和の可能性を低減することができる。第2の自己相関値(R1)がしきい値(0.95)×第1の自己相関値(R0)よりも小さくない場合、パラメータ(Q_wb_sp)は、スケーリング中にさらなるヘッドルームを0ビットに減少させて、ハイバンドのエネルギーがより正確に取り込まれ得るようにハイバンド目標信号126を生成するために、より大きい範囲を与えることができる。擬似コードによれば、入力信号はQ_wb_sp個のビットだけ左にシフトされ、スケーリングファクタ選択モジュール107によって選択された最終スケールファクタが2Q_wb_spに相当するはずであることを意味する。ハイバンド目標信号によってハイバンドのエネルギーを正確に取り込むと、ハイバンド利得パラメータ(たとえば、ハイバンド副次情報172)の推定が改善される結果になり、アーティファクトが低減される場合がある。いくつかの例示的な実施形態では、ハイバンド目標信号126は、再スケーリングされて(たとえば、Q値:Q0またはQ1において)元の入力レベルに戻ることができ、その結果、メモリはハイバンドパラメータ推定値を更新し、フレームにわたるハイバンド合成は固定された時間スケールファクタの調整値を維持する。
図4Bの方法420は、スケーリングファクタ選択モジュール107によって選択された動的なスケーリングファクタに基づいて、ハイバンド目標信号126の精度を制御することができる。たとえば、ローバンドの第1のエネルギーレベルがハイバンドの第2のエネルギーレベルよりもかなり大きいシナリオでは、入力オーディオ信号102は、ヘッドルームの量を減少させるようにスケーリングされ得る。ヘッドルームの量を減少させると、ハイバンド目標信号126を生成するためにより大きい範囲が与えられる場合があり、その結果、ハイバンドのエネルギーがより正確に取り込まれる場合がある。
特定の実装形態では、図4A〜図4Bの方法400、420は、中央処理装置(CPU)、DSP、もしくはコントローラなどの処理ユニットのハードウェア(たとえば、FPGAデバイス、ASICなど)を介して、ファームウェアデバイスを介して、またはそれらの任意の組合せで実装される場合がある。一例として、図4A〜図4Bの方法400、420は、図5に関して記載されるように、命令を実行するプロセッサによって実施され得る。
図5を参照すると、デバイスのブロック図が描写され、全体的に500と指定される。特定の実装形態では、デバイス500はプロセッサ506(たとえば、CPU)を含む。デバイス500は、1つまたは複数のさらなるプロセッサ510(たとえば、1つまたは複数のDSP)を含む場合がある。プロセッサ510は、音声および音楽コーデック508を含む場合がある。音声および音楽コーデック508は、ボコーダエンコーダ592、ボコーダデコーダ(図示せず)、または両方を含む場合がある。特定の実装形態では、ボコーダエンコーダ592は、図1のシステム100などの符号化システムを含む場合がある。
デバイス500は、メモリ532と、アンテナ542に結合されたワイヤレスコントローラ540とを含む場合がある。デバイス500は、ディスプレイコントローラ526に結合されたディスプレイ528を含む場合がある。スピーカ536、マイクロフォン538、または両方がコーデック534に結合される場合がある。コーデック534は、デジタルアナログ変換器(DAC)502とアナログデジタル変換器(ADC)504とを含む場合がある。
特定の実装形態では、コーデック534は、マイクロフォン538からアナログ信号を受信し、アナログデジタル変換器504を使用してアナログ信号をデジタル信号に変換し、パルスコード変調(PCM)フォーマットなどで音声および音楽コーデック508にデジタル信号を供給することができる。音声および音楽コーデック508は、デジタル信号を処理することができる。特定の実装形態では、音声および音楽コーデック508は、コーデック534にデジタル信号を供給することができる。コーデック534は、デジタルアナログ変換器502を使用してデジタル信号をアナログ信号に変換することができ、スピーカ536にアナログ信号を供給することができる。
メモリ532は、図4A〜図4Bの方法400、420などの、本明細書で開示された方法およびプロセスを実施するために、プロセッサ506、プロセッサ510、コーデック534、デバイス500の別の処理ユニット、またはそれらの組合せによって実行可能な命令560を含む場合がある。図1のシステム100の1つまたは複数の構成要素は、専用ハードウェア(たとえば、回路)を介して、1つもしくは複数のタスクを実施するように命令(たとえば、命令560)を実行するプロセッサによって、またはそれらの組合せで実装される場合がある。一例として、メモリ532、またはプロセッサ506、プロセッサ510、および/もしくはコーデック534の1つもしくは複数の構成要素は、ランダムアクセスメモリ(RAM)、磁気抵抗ランダムアクセスメモリ(MRAM)、スピントルクトランスファMRAM(STT-MRAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、またはコンパクトディスク読取り専用メモリ(CD-ROM)などのメモリデバイスであり得る。メモリデバイスは、コンピュータ(たとえば、コーデック534内のプロセッサ、プロセッサ506、および/またはプロセッサ510)によって実行されると、図4A〜図4Bの方法400、420をコンピュータに実施させることができる命令(たとえば命令560)を含む場合がある。一例として、メモリ532、またはプロセッサ506、プロセッサ510、および/もしくはコーデック534の1つもしくは複数の構成要素は、コンピュータ(たとえば、コーデック534内のプロセッサ、プロセッサ506、および/またはプロセッサ510)によって実行されると、図4A〜図4Bの方法400、420の少なくとも一部分をコンピュータに実施させる命令(たとえば、命令560)を含む非一時的コンピュータ可読媒体であり得る。
特定の実装形態では、デバイス500は、移動局モデム(MSM)などのシステムインパッケージまたはシステムオンチップデバイス522に含まれる場合がある。特定の実装形態では、プロセッサ506、プロセッサ510、ディスプレイコントローラ526、メモリ532、コーデック534、およびワイヤレスコントローラ540は、システムインパッケージまたはシステムオンチップデバイス522に含まれる場合がある。特定の実装形態では、タッチスクリーンおよび/またはキーパッドなどの入力デバイス530、ならびに電源544は、システムオンチップデバイス522に結合される。その上、特定の実装形態では、図5に示されたように、ディスプレイ528、入力デバイス530、スピーカ536、マイクロフォン538、アンテナ542、および電源544は、システムオンチップデバイス522の外部にある。しかしながら、ディスプレイ528、入力デバイス530、スピーカ536、マイクロフォン538、アンテナ542、および電源544の各々は、インターフェースまたはコントローラなどの、システムオンチップデバイス522の構成要素に結合され得る。説明のための例では、デバイス500は、モバイル通信デバイス、スマートフォン、携帯電話、ラップトップコンピュータ、コンピュータ、タブレットコンピュータ、携帯情報端末、ディスプレイデバイス、テレビジョン、ゲーミングコンソール、音楽プレーヤ、ラジオ、デジタルビデオプレーヤ、光ディスクプレーヤ、チューナ、カメラ、ナビゲーションデバイス、デコーダシステム、エンコーダシステム、またはそれらの任意の組合せに対応する。
記載された実装形態と連携して、装置は、ローバンド部分およびハイバンド部分を有する入力信号を受信するための手段を含む。たとえば、入力信号を受信するための手段は、図1の分析フィルタバンク110、図1のリサンプラ103、図1のスペクトル傾斜分析モジュール105、図1のスケーリングモジュール109、図5の音声および音楽コーデック508、図5のボコーダエンコーダ592、入力信号を受信するように構成された1つもしくは複数のデバイス(たとえば、非一時的コンピュータ可読記憶媒体にある命令を実行するプロセッサ)、またはそれらの組合せを含む場合がある。
装置は、入力信号の第1の自己相関値を入力信号の第2の自己相関値と比較するための手段を含む場合もある。たとえば、比較するための手段は、図1の分析フィルタバンク110、図5の音声および音楽コーデック508、図5のボコーダエンコーダ592、第1の自己相関値を第2の自己相関値と比較するように構成された1つもしくは複数のデバイス(たとえば、非一時的コンピュータ可読記憶媒体にある命令を実行するプロセッサ)、またはそれらの組合せを含む場合がある。
装置は、スケーリングされた入力信号を生成するためにスケーリングファクタによって入力信号をスケーリングするための手段を含む場合もある。スケーリングファクタは比較の結果に基づいて決定され得る。たとえば、入力信号をスケーリングするための手段は、図1の分析フィルタバンク110、図1のスケーリングモジュール109、図5の音声および音楽コーデック508、図5のボコーダエンコーダ592、入力信号をスケーリングするように構成された1つもしくは複数のデバイス(たとえば、非一時的コンピュータ可読記憶媒体にある命令を実行するプロセッサ)、またはそれらの組合せを含む場合がある。
装置は、入力信号に基づいてローバンド信号を生成するための手段を含む場合もある。ローバンド信号は、スケーリングされた入力信号とは無関係に生成され得る。たとえば、ローバンド信号を生成するための手段は、図1の分析フィルタバンク110、図1のリサンプラ103、図5の音声および音楽コーデック508、図5のボコーダエンコーダ592、ローバンド信号を生成するように構成された1つもしくは複数のデバイス(たとえば、非一時的コンピュータ可読記憶媒体にある命令を実行するプロセッサ)、またはそれらの組合せを含む場合がある。
装置は、スケーリングされた入力信号に基づいてハイバンド目標信号を生成するための手段を含む場合もある。たとえば、ハイバンド目標信号を生成するための手段は、図1の分析フィルタバンク110、図1のハイバンド目標信号生成モジュール113、図5の音声および音楽コーデック508、図5のボコーダエンコーダ592、ハイバンド目標信号を生成するように構成された1つもしくは複数のデバイス(たとえば、非一時的コンピュータ可読記憶媒体にある命令を実行するプロセッサ)、またはそれらの組合せを含む場合がある。
図6を参照すると、基地局600の特定の説明のための例のブロック図が描写される。様々な実装形態では、基地局600は、図6に示されたよりも多い構成要素または少ない構成要素を有する場合がある。説明のための例では、基地局600は、図1のシステム100を含む場合がある。説明のための例では、基地局600は、図4Aの方法400、図4Bの方法420、またはそれらの組合せに従って動作することができる。
基地局600は、ワイヤレス通信システムの一部であり得る。ワイヤレス通信システムは、複数の基地局と複数のワイヤレス通信デバイスとを含む場合がある。ワイヤレス通信システムは、ロングタームエボリューション(LTE)システム、符号分割多元接続(CDMA)システム、モバイル通信用グローバルシステム(GSM(登録商標))システム、ワイヤレスローカルエリアネットワーク(WLAN)システム、または他の何らかのワイヤレスシステムであり得る。CDMAシステムは、広帯域CDMA(WCDMA(登録商標))、CDMA 1X、エボリューションデータオプティマイズド(EVDO)、時分割同期CDMA(TD-SCDMA)、またはCDMAの他の何らかのバージョンを実装する場合がある。
ワイヤレスデバイスは、ユーザ機器(UE)、移動局、端末、アクセス端末、加入者ユニット、局などと呼ばれる場合もある。ワイヤレスデバイスには、携帯電話、スマートフォン、タブレット、ワイヤレスモデム、携帯情報端末(PDA)、ハンドヘルドデバイス、ラップトップコンピュータ、スマートブック、ネットブック、タブレット、コードレスフォン、ワイヤレスローカルループ(WLL)局、ブルートゥース(登録商標)デバイスなどが含まれる場合がある。ワイヤレスデバイスは、図5のデバイス500を含むか、またはそれに相当する場合がある。
メッセージおよびデータ(たとえば、オーディオデータ)を送受信することなどの様々な機能は、基地局600の1つまたは複数の構成要素によって(かつ/または図示されていない他の構成要素において)実施され得る。特定の例では、基地局600はプロセッサ606(たとえば、CPU)を含む。基地局600はトランスコーダ610を含む場合がある。トランスコーダ610はオーディオコーデック608を含む場合がある。たとえば、トランスコーダ610は、オーディオコーデック608の演算を実施するように構成された1つまたは複数の構成要素(たとえば、回路)を含む場合がある。別の例として、トランスコーダ610は、1つまたは複数のコンピュータ可読命令を実行して、オーディオコーデック608の演算を実施するように構成され得る。オーディオコーデック608はトランスコーダ610の構成要素として示されているが、他の例では、オーディオコーデック608の1つまたは複数の構成要素が、プロセッサ606、別の処理構成要素、またはそれらの組合せに含まれる場合がある。たとえば、ボコーダデコーダ638は、受信機データプロセッサ664に含まれる場合がある。別の例として、ボコーダエンコーダ636は、送信データプロセッサ667に含まれる場合がある。
トランスコーダ610は、2つ以上のネットワークの間でメッセージおよびデータをコード変換するように機能することができる。トランスコーダ610は、メッセージおよびオーディオデータを第1のフォーマット(たとえば、デジタルフォーマット)から第2のフォーマットに変換するように構成され得る。たとえば、ボコーダデコーダ638は、第1のフォーマットを有する符号化信号を復号することができ、ボコーダエンコーダ636は、復号信号を、第2のフォーマットを有する符号化信号に符号化することができる。追加または代替として、トランスコーダ610は、データレート適応を実施するように構成され得る。たとえば、トランスコーダ610は、オーディオデータのフォーマットを変更せずに、データレートをダウンコンバートするか、またはデータレートをアップコンバートすることができる。たとえば、トランスコーダ610は、64kbit/s信号を16kbit/s信号にダウンコンバートすることができる。
オーディオコーデック608は、ボコーダエンコーダ636とボコーダデコーダ638とを含む場合がある。ボコーダエンコーダ636は、図5を参照して記載されたように、エンコーダセレクタと、音声エンコーダと、音楽エンコーダとを含む場合がある。ボコーダデコーダ638は、デコーダセレクタと、音声デコーダと、音楽デコーダとを含む場合がある。
基地局600はメモリ632を含む場合がある。コンピュータ可読ストレージデバイスなどのメモリ632は命令を含む場合がある。命令は、図4Aの方法400、図4Bの方法420、またはそれらの組合せを実施するように、プロセッサ606、トランスコーダ610、またはそれらの組合せによって実行可能な1つまたは複数の命令を含む場合がある。基地局600は、アンテナのアレイに結合された第1のトランシーバ652および第2のトランシーバ654などの、複数の送信機および受信機(たとえば、トランシーバ)を含む場合がある。アンテナのアレイは、第1のアンテナ642と第2のアンテナ644とを含む場合がある。アンテナのアレイは、図5のデバイス500などの1つまたは複数のワイヤレスデバイスとワイヤレス通信するように構成され得る。たとえば、第2のアンテナ644は、ワイヤレスデバイスからデータストリーム614(たとえば、ビットストリーム)を受信することができる。データストリーム614は、メッセージ、データ(たとえば、符号化音声データ)、またはそれらの組合せを含む場合がある。
基地局600は、バックホール接続などのネットワーク接続660を含む場合がある。ネットワーク接続660は、ワイヤレス通信ネットワークのコアネットワークまたは1つもしくは複数の基地局と通信するように構成され得る。たとえば、基地局600は、ネットワーク接続660を介してコアネットワークから第2のデータストリーム(たとえば、メッセージまたはオーディオデータ)を受信することができる。基地局600は、第2のデータストリームを処理してメッセージまたはオーディオデータを生成し、アンテナのアレイの1つもしくは複数のアンテナを介して1つもしくは複数のワイヤレスデバイスに、またはネットワーク接続660を介して別の基地局に、メッセージまたはオーディオデータを供給することができる。特定の実装形態では、ネットワーク接続660は、例示的で非限定的な例として、ワイドエリアネットワーク(WAN)接続であり得る。いくつかの実装形態では、コアネットワークは、公衆交換電話網(PSTN)、パケットバックボーンネットワーク、または両方を含むか、またはそれらに対応する場合がある。
基地局600は、ネットワーク接続660およびプロセッサ606に結合されたメディアゲートウェイ670を含む場合がある。メディアゲートウェイ670は、様々な通信技術のメディアストリームの間を変換するように構成され得る。たとえば、メディアゲートウェイ670は、様々な通信プロトコル、様々なコーディング方式、または両方の間を変換することができる。たとえば、メディアゲートウェイ670は、例示的で非限定的な例として、PCM信号からリアルタイムトランスポートプロトコル(RTP)信号に変換することができる。メディアゲートウェイ670は、パケット交換ネットワーク(たとえば、ボイスオーバーインターネットプロトコル(VoIP)ネットワーク、IPマルチメディアサブシステム(IMS)、LTE、WiMax、およびUMBなどの第4世代(4G)ワイヤレスネットワークなど)、回線交換ネットワーク、ならびにハイブリッドネットワーク(たとえば、GSM(登録商標)、GPRS、およびEDGEなどの第2世代(2G)ワイヤレスネットワーク、WCDMA(登録商標)、EV-DO、およびHSPAなどの第3世代(3G)ワイヤレスネットワークなど)の間でデータを変換することができる。
加えて、メディアゲートウェイ670は、トランスコーダ610などのトランスコーダを含む場合があり、コーデックの互換性がないときにデータをコード変換するように構成され得る。たとえば、メディアゲートウェイ670は、例示的で非限定的な例として、適応マルチレート(AMR)コーデックとG.711コーデックとの間をコード変換することができる。メディアゲートウェイ670は、ルータと複数の物理インターフェースとを含む場合がある。いくつかの実装形態では、メディアゲートウェイ670はコントローラ(図示せず)を含む場合もある。特定の実装形態では、メディアゲートウェイコントローラは、メディアゲートウェイ670の外部、基地局600の外部、または両方にあり得る。メディアゲートウェイコントローラは、複数のメディアゲートウェイの動作を制御および調整することができる。メディアゲートウェイ670は、メディアゲートウェイコントローラから制御信号を受信することができ、様々な伝送技術間をブリッジするように機能することができ、エンドユーザの機能および接続にサービスを追加することができる。
基地局600は、トランシーバ652、654、受信機データプロセッサ664、およびプロセッサ606に結合された復調器662を含む場合があり、受信機データプロセッサ664はプロセッサ606に結合される場合がある。復調器662は、トランシーバ652、654から受信された変調信号を復調し、復調されたデータを受信機データプロセッサ664に供給するように構成され得る。受信機データプロセッサ664は、復調されたデータからメッセージまたはオーディオデータを抽出し、メッセージまたはオーディオデータをプロセッサ606に送るように構成され得る。
基地局600は、送信データプロセッサ667と送信多入力多出力(MIMO)プロセッサ668とを含む場合がある。送信データプロセッサ667は、プロセッサ606および送信MIMOプロセッサ668に結合される場合がある。送信MIMOプロセッサ668は、トランシーバ652、654、およびプロセッサ606に結合される場合がある。いくつかの実装形態では、送信MIMOプロセッサ668は、メディアゲートウェイ670に結合される場合がある。送信データプロセッサ667は、プロセッサ606からメッセージまたはオーディオデータを受信し、例示的で非限定的例として、CDMAまたは直交周波数分割多重化(OFDM)などのコーディング方式に基づいて、メッセージまたはオーディオデータをコーディングするように構成され得る。送信データプロセッサ667は、送信MIMOプロセッサ668にコード化データを供給することができる。
コード化データは、多重化データを生成するために、CDMA技法またはOFDM技法を使用して、パイロットデータなどの他のデータと多重化され得る。次いで、多重化データは、変調シンボルを生成するために、特定の変調方式(たとえば、二位相シフトキーイング(「BPSK」)、四位相シフトキーイング(「QSPK」)、多値位相シフトキーイング(「M-PSK」)、多値直交振幅変調(「M-QAM」)など)に基づいて、送信データプロセッサ667によって変調(すなわち、シンボルマッピング)され得る。特定の実装形態では、コード化データおよび他のデータは、様々な変調方式を使用して変調され得る。データストリームごとのデータレート、コーディング、および変調は、プロセッサ606によって実行される命令によって決定され得る。
送信MIMOプロセッサ668は、送信データプロセッサ667から変調シンボルを受信するように構成されてよく、変調シンボルをさらに処理することができ、データに対してビームフォーミングを実施することができる。たとえば、送信MIMOプロセッサ668は、変調シンボルにビームフォーミング重みを加えることができる。ビームフォーミング重みは、変調シンボルがそこから送信されるアンテナのアレイの1つまたは複数のアンテナに対応する場合がある。
動作中、基地局600の第2のアンテナ644は、データストリーム614を受信することができる。第2のトランシーバ654は、第2のアンテナ644からデータストリーム614を受信することができ、復調器662にデータストリーム614を供給することができる。復調器662は、データストリーム614の変調信号を復調し、復調されたデータを受信機データプロセッサ664に供給することができる。受信機データプロセッサ664は、復調されたデータからオーディオデータを抽出し、抽出されたオーディオデータをプロセッサ606に供給することができる。
プロセッサ606は、コード変換するためにオーディオデータをトランスコーダ610に供給することができる。トランスコーダ610のボコーダデコーダ638は、オーディオデータを第1のフォーマットから、復号されたオーディオデータに復号することができ、ボコーダエンコーダ636は、復号されたオーディオデータを第2のフォーマットに符号化することができる。いくつかの実装形態では、ボコーダエンコーダ636は、ワイヤレスデバイスから受信されたよりも高いデータレート(たとえば、アップコンバート)または低いデータレート(たとえば、ダウンコンバート)を使用して、オーディオデータを符号化することができる。他の実装形態では、オーディオデータはコード変換されない場合がある。コード変換(たとえば、復号および符号化)は、トランスコーダ610によって実施されるものとして示されているが、コード変換動作(たとえば、復号および符号化)は、基地局600の複数の構成要素によって実施される場合がある。たとえば、復号は受信機データプロセッサ664によって実施される場合があり、符号化は送信データプロセッサ667によって実施される場合がある。他の実装形態では、プロセッサ606は、別の伝送プロトコル、コーディング方式、または両方への変換のために、メディアゲートウェイ670にオーディオデータを供給することができる。メディアゲートウェイ670は、ネットワーク接続660を介して別の基地局またはコアネットワークに変換されたデータを供給することができる。
ボコーダデコーダ638、ボコーダエンコーダ636、または両方は、パラメータデータを受信することができ、フレームごとにパラメータデータを識別することができる。ボコーダデコーダ638、ボコーダエンコーダ636、または両方は、フレームごとに、パラメータデータに基づいて合成信号を分類することができる。合成信号は、音声信号、非音声信号、音楽信号、雑音が多い音声信号、背景雑音信号、またはそれらの組合せとして分類され得る。ボコーダデコーダ638、ボコーダエンコーダ636、または両方は、分類に基づいて、特定のデコーダ、エンコーダ、または両方を選択することができる。コード変換されたデータなどの、ボコーダエンコーダ636において生成された符号化オーディオデータは、プロセッサ606を介して送信データプロセッサ667またはネットワーク接続660に供給され得る。
トランスコーダ610からのコード変換されたオーディオデータは、変調シンボルを生成するために、OFDMなどの変調方式によるコーディング用に送信データプロセッサ667に供給され得る。送信データプロセッサ667は、変調シンボルを、さらなる処理およびビームフォーミングのために送信MIMOプロセッサ668に供給することができる。送信MIMOプロセッサ668は、ビームフォーミング重みを加えることができ、第1のトランシーバ652を介して、第1のアンテナ642などのアンテナのアレイの1つまたは複数のアンテナに変調シンボルを供給することができる。したがって、基地局600は、ワイヤレスデバイスから受信されたデータストリーム614に対応するコード変換されたデータストリーム616を別のワイヤレスデバイスに供給することができる。コード変換されたデータストリーム616は、データストリーム614とは異なる符号化フォーマット、データレート、または両方を有する場合がある。他の実装形態では、コード変換されたデータストリーム616は、別の基地局またはコアネットワークへの送信用に、ネットワーク接続660に供給され得る。
したがって、基地局600は、プロセッサ(たとえば、プロセッサ606またはトランスコーダ610)によって実行されると、符号化オーディオ信号を復号して合成信号を生成することを含む動作をプロセッサに実施させる命令を記憶するコンピュータ可読ストレージデバイス(たとえば、メモリ632)を含む場合がある。動作は、符号化オーディオ信号から特定された少なくとも1つのパラメータに基づいて合成信号を分類することを含む場合もある。
本明細書で開示された実装形態に関して記載された様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、ハードウェアプロセッサなどの処理デバイスによって実行されるコンピュータソフトウェア、またはその両方の組合せとして実装され得ることを当業者ならさらに諒解されよう。様々な例示的な構成要素、ブロック、構成、モジュール、回路、およびステップは、それらの機能に関して全体的に上述されている。そのような機能がハードウェアとして実装されるか、または実行可能なソフトウェアとして実装されるかは、特定の適用例、およびシステム全体に課される設計制約に依存する。当業者は、特定の適用例ごとに様々な方法で記載された機能を実装することができるが、そのような実装の判断が本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
本明細書で開示された実装形態に関して記載された方法またはアルゴリズムのステップは、直接ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、またはその2つの組合せにおいて具現化され得る。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、磁気抵抗ランダムアクセスメモリ(MRAM)、スピントルクトランスファMRAM(STT-MRAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD-ROM)などのメモリデバイス内に存在する場合がある。プロセッサがメモリデバイスから情報を読み取り、メモリデバイスに情報を書き込むことができるように、例示的なメモリデバイスはプロセッサに結合される。代替として、メモリデバイスはプロセッサと一体化される場合がある。プロセッサおよび記憶媒体はASIC内に存在する場合がある。ASICはコンピューティングデバイスまたはユーザ端末内に存在する場合がある。代替として、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末内の個別構成要素として存在する場合がある。
開示された実装形態のこれまでの説明は、開示された実装形態を当業者が作成または使用することを可能にするために提供される。これらの実装形態に対する様々な修正は当業者には容易に明らかであり、本明細書で定義された原理は、本開示の範囲から逸脱することなく他の実装形態に適用され得る。したがって、本開示は、本明細書に示された実装形態に限定されるものではなく、以下の特許請求の範囲によって定義される原理および新規の特徴と一致する、考えられる最も広い範囲を与えられるべきである。