複数のオーディオ信号を符号化するように動作可能なシステムおよびデバイスが開示される。デバイスが、複数のオーディオ信号を符号化するように構成されたエンコーダを含み得る。複数のオーディオ信号は、複数の記録デバイス、たとえば複数のマイクロフォンを使用して、同時にキャプチャされ得る。いくつかの例では、複数のオーディオ信号(またはマルチチャネルオーディオ)は、同時にまたは異なる時間に記録されたいくつかのオーディオチャネルを多重化することによって、合成的に(たとえば、人工的に)生成され得る。説明のための例として、オーディオチャネルの同時記録または多重化は、2チャネル構成(すなわち、ステレオ:左および右)、5.1チャネル構成(左、右、中央、左サラウンド、右サラウンド、および低周波数強調(LFE:low frequency emphasis)チャネル)、7.1チャネル構成、7.1+4チャネル構成、22.2チャネル構成、またはNチャネル構成をもたらし得る。
遠隔会議室(またはテレプレゼンス室)におけるオーディオキャプチャデバイスは、空間オーディオを取得する複数のマイクロフォンを含み得る。空間オーディオは、符号化され送信されるスピーチならびに背景オーディオを含み得る。所与の音源(たとえば、話者)からのスピーチ/オーディオは複数のマイクロフォンに、マイクロフォンがどのように配置されているか、ならびに音源(たとえば、話者)がマイクロフォンおよび部屋の寸法に対してどこに位置するかに応じて、異なる時間に到着し得る。たとえば、音源(たとえば、話者)が、デバイスに関連する第2のマイクロフォンよりも、デバイスに関連する第1のマイクロフォンに近いことがある。したがって、音源から出された音が、第2のマイクロフォンよりも時間的に早く第1のマイクロフォンに到着することがある。デバイスは、第1のマイクロフォンを介して第1のオーディオ信号を受信することがあり、第2のマイクロフォンを介して第2のオーディオ信号を受信することがある。
いくつかの例では、マイクロフォンは、複数の音源からオーディオを受信し得る。複数の音源は、支配的音源(たとえば、話者)および1つまたは複数の2次的音源(たとえば、通過する車、往来、バックグラウンドミュージック、街頭雑音)を含み得る。支配的音源から出された音は、第2のマイクロフォンよりも時間的に早く第1のマイクロフォンに到着し得る。
オーディオ信号は、セグメントまたはフレームにおいて符号化され得る。フレームは、サンプルの数(たとえば、1920サンプルまたは2000サンプル)に対応し得る。ミッド-サイド(MS:mid-side)コーディングおよびパラメトリックステレオ(PS:parametric stereo)コーディングは、デュアル-モノコーディング技法と比べて効率の改善をもたらし得るステレオコーディング技法である。デュアル-モノコーディングでは、左(L)チャネル(または信号)および右(R)チャネル(または信号)は、チャネル間相関を利用することなく独立してコーディングされる。MSコーディングは、コーディングの前に、左チャネルおよび右チャネルを和チャネルおよび差チャネル(たとえば、サイドチャネル)に変換することによって、相関付けられたL/Rチャネルペアの間の冗長性を低減する。和信号および差信号は、MSコーディングにおいて波形コーディングされる。和信号ではサイド信号よりも、相対的に多くのビットが使われる。PSコーディングは、L/R信号を和信号とサイドパラメータのセットとに変換することによって、各サブバンドにおける冗長性を低減する。サイドパラメータは、チャネル間強度差(IID:inter-channel intensity difference)、チャネル間位相差(IPD:inter-channel phase difference)、チャネル間時間差(ITD:inter-channel time difference)などを示し得る。和信号は波形コーディングされ、サイドパラメータとともに送信される。ハイブリッドシステムでは、サイドチャネルは、下位バンド(たとえば、2〜3キロヘルツ(kHz)未満)において波形コーディングされ、チャネル間位相保持が知覚的にさほど重要ではない上位バンド(たとえば、2〜3kHz以上)においてPSコーディングされ得る。
MSコーディングおよびPSコーディングは、周波数領域またはサブバンド領域のいずれかにおいて行われ得る。いくつかの例では、左チャネルおよび右チャネルは無相関であり得る。たとえば、左チャネルおよび右チャネルは無相関合成信号を含み得る。左チャネルおよび右チャネルが無相関であるとき、MSコーディング、PSコーディング、または両方のコーディング効率は、デュアル-モノコーディングのコーディング効率に近くなり得る。
記録構成に応じて、左チャネルと右チャネルとの間の時間的シフト、ならびにエコーおよび室内反響などの他の空間的影響があり得る。チャネル間の時間的シフトおよび位相不一致が補償されない場合、和チャネルおよび差チャネルは、MSまたはPS技法に関連するコーディング利得を低減する同等のエネルギーを含み得る。コーディング利得の低減は、時間的(または位相)シフトの量に基づき得る。和信号および差信号の同等のエネルギーは、チャネルが時間的にシフトされるが強く相関付けられているいくつかのフレームにおけるMSコーディングの使用を限定し得る。ステレオコーディングでは、ミッドチャネル(たとえば、和チャネル)およびサイドチャネル(たとえば、差チャネル)が以下の式に基づいて生成され得る。
M=(L+R)/2、S=(L-R)/2、式1
上式で、Mはミッドチャネルに対応し、Sはサイドチャネルに対応し、Lは左チャネルに対応し、Rは右チャネルに対応する。
いくつかの場合には、ミッドチャネルおよびサイドチャネルは、以下の式に基づいて生成され得る。
M=c(L+R)、S=c(L-R)、式2
上式で、cは、フレームごとに、周波数もしくはサブバンドごとに、またはそれらの組合せで異なり得る複素数値または実数値に対応する。
いくつかの場合には、ミッドチャネルおよびサイドチャネルは、以下の式に基づいて生成され得る。
M=(c1*L+c2*R)、S=(c3*L-c4*R)、式3
上式で、c1、c2、c3およびc4は、フレームごとに、サブバンドもしくは周波数ごとに、またはそれらの組合せで異なり得る複素数値または実数値である。式1、式2、または式3に基づいてミッドチャネルおよびサイドチャネルを生成することは、「ダウンミキシング」アルゴリズムを実行することと呼ばれ得る。式1、式2、または式3に基づいてミッドチャネルおよびサイドチャネルから左チャネルおよび右チャネルを生成する逆プロセスは、「アップミキシング」アルゴリズムを実行することと呼ばれ得る。
特定のフレームに関してMSコーディングまたはデュアル-モノコーディングの間で選択するために使用されるアドホック手法が、ミッド信号およびサイド信号を生成することと、ミッド信号およびサイド信号のエネルギーを計算することと、エネルギーに基づいてMSコーディングを実行するかどうかを決定することとを含み得る。たとえば、MSコーディングは、サイド信号およびミッド信号のエネルギーの比率がしきい値未満であるとの判断に応答して実行され得る。例示すると、右チャネルが少なくとも第1の時間(たとえば、約0.001秒または48kHzで48サンプル)だけシフトされる場合、いくつかのフレームに関して(左信号と右信号との和に対応する)ミッド信号の第1のエネルギーが(左信号と右信号との間の差に対応する)サイド信号の第2のエネルギーと同等であり得る。第1のエネルギーが第2のエネルギーと同等であるとき、より多くのビットがサイドチャネルを符号化するために使用され、それによって、デュアル-モノコーディングに対してMSコーディングのコーディング効率が低下し得る。したがって、第1のエネルギーが第2のエネルギーと同等であるとき(たとえば、第1のエネルギーおよび第2のエネルギーの比率がしきい値以上であるとき)には、デュアル-モノコーディングが使用され得る。代替手法では、特定のフレームに関するMSコーディングとデュアル-モノコーディングとの間の決定は、しきい値と左チャネルおよび右チャネルの正規化相互相関値との比較に基づいて行われ得る。
いくつかの例では、エンコーダは、第2のオーディオ信号に対する第1のオーディオ信号の時間的不一致(たとえば、シフト)を示す不一致値(たとえば、時間的シフト値、利得値、エネルギー値、チャネル間予測値)を決定し得る。シフト値(たとえば、不一致値)は、第1のマイクロフォンにおける第1のオーディオ信号の受信と第2のマイクロフォンにおける第2のオーディオ信号の受信との間の時間的遅延の量に対応し得る。さらに、エンコーダは、フレームごとに、たとえば、各20ミリ秒(ms)のスピーチ/オーディオフレームに基づいて、シフト値を決定し得る。たとえば、シフト値は、第2のオーディオ信号の第2のフレームが第1のオーディオ信号の第1のフレームに対して遅延する時間量に対応し得る。代替的に、シフト値は、第1のオーディオ信号の第1のフレームが第2のオーディオ信号の第2のフレームに対して遅延する時間量に対応し得る。
音源が第2のマイクロフォンよりも第1のマイクロフォンに近いとき、第2のオーディオ信号のフレームは、第1のオーディオ信号のフレームに対して遅延し得る。この場合、第1のオーディオ信号は「基準オーディオ信号」または「基準チャネル」と呼ばれることがあり、遅延する第2のオーディオ信号は「ターゲットオーディオ信号」または「ターゲットチャネル」と呼ばれることがある。代替的に、音源が第1のマイクロフォンよりも第2のマイクロフォンに近いとき、第1のオーディオ信号のフレームは、第2のオーディオ信号のフレームに対して遅延し得る。この場合、第2のオーディオ信号は「基準オーディオ信号」または「基準チャネル」と呼ばれることがあり、遅延する第1のオーディオ信号は「ターゲットオーディオ信号」または「ターゲットチャネル」と呼ばれることがある。
音源(たとえば、話者)が会議室もしくはテレプレゼンス室のどこに位置するか、または音源(たとえば、話者)の位置がマイクロフォンに対してどのように変化するかに応じて、基準チャネルおよびターゲットチャネルはフレームごとに変化することがあり、同様に、時間的不一致(たとえば、シフト)値もフレームごとに変化することがある。しかしながら、いくつかの実装形態では、時間的シフト値は常に、「基準」チャネルに対する「ターゲット」チャネルの遅延量を示すために正であり得る。さらに、シフト値は、遅延ターゲットチャネルが「基準」チャネルと整合する(たとえば、最大限に整合する)ように、ターゲットチャネルが時間的に「引き戻される」「非因果的シフト」値に対応し得る。ターゲットチャネルを「引き戻す」ことは、時間的にターゲットチャネルを前進させることに対応し得る。「非因果的シフト」は、遅延オーディオチャネル(たとえば、遅行オーディオチャネル)を先行オーディオチャネルと時間的に整合させるための、先行オーディオチャネルに対する遅延オーディオチャネルのシフトに対応し得る。ミッドチャネルおよびサイドチャネルを決定するためのダウンミックスアルゴリズムは、基準チャネルおよび非因果的シフトされたターゲットチャネルに対して実行され得る。
エンコーダは、第1のオーディオチャネルと第2のオーディオチャネルに適用される複数のシフト値とに基づいて、シフト値を決定し得る。たとえば、第1のオーディオチャネルの第1のフレーム、Xが、第1の時間(m1)に受信され得る。第2のオーディオチャネルの第1の特定のフレーム、Yが、第1のシフト値、たとえばシフト1=n1-m1に対応する第2の時間(n1)に受信され得る。さらに、第1のオーディオチャネルの第2のフレームが、第3の時間(m2)に受信され得る。第2のオーディオチャネルの第2の特定のフレームが、第2のシフト値、たとえばシフト2=n2-m2に対応する第4の時間(n2)に受信され得る。
デバイスは、フレーム(たとえば、20msごとのサンプル)を第1のサンプリングレート(たとえば、32kHzサンプリングレート(すなわち、フレームあたり640サンプル))で生成するために、フレーミングまたはバッファリングアルゴリズムを実行し得る。エンコーダは、第1のオーディオ信号の第1のフレームおよび第2のオーディオ信号の第2のフレームがデバイスに同時に到着するとの判断に応答して、シフト値(たとえば、シフト1)を、0サンプルに等しいと推定し得る。(たとえば、第1のオーディオ信号に対応する)左チャネルおよび(たとえば、第2のオーディオ信号に対応する)右チャネルが時間的に整合し得る。いくつかの場合には、左チャネルおよび右チャネルは、整合するときでも、様々な理由(たとえば、マイクロフォンのキャリブレーション)によりエネルギーが異なり得る。
いくつかの例では、左チャネルおよび右チャネルは、様々な理由(たとえば、話者などの音源がマイクロフォンのうちの一方に、もう一方よりも近いことがあり、2つのマイクロフォンがしきい値(たとえば、1〜20センチメートル)の距離を超えて離れていることがある)により時間的に一致しない(たとえば、整合しない)ことがある。マイクロフォンに対する音源のロケーションは、左チャネルおよび右チャネルにおいて異なる遅延をもたらし得る。さらに、左チャネルと右チャネルとの間の利得差、エネルギー差、またはレベル差があり得る。
いくつかの例では、複数の音源(たとえば、話者)からのマイクロフォンにおけるオーディオ信号の到着時間が、複数の話者が(たとえば、重複することなく)交互に話しているときに異なることがある。そのような場合、エンコーダは、基準チャネルを識別するために話者に基づいて時間的シフト値を動的に調整し得る。いくつかの他の例では、複数の話者が同時に話していることがあり、その結果、誰が最も声の大きい話者であるか、マイクロフォンに最も近いかなどに応じて、異なる時間的シフト値が生じることがある。
いくつかの例では、第1のオーディオ信号および第2のオーディオ信号は、2つの信号が弱い相関(たとえば、相関なし)を潜在的に示すときに、合成または人工的に生成され得る。本明細書で説明する例は説明のためのものであり、同様の状況または異なる状況における第1のオーディオ信号と第2のオーディオ信号との間の関係を判断する際に有益であり得ることを理解されたい。
エンコーダは、第1のオーディオ信号の第1のフレームと第2のオーディオ信号の複数のフレームとの比較に基づいて、比較値(たとえば、差値または相互相関値)を生成し得る。複数のフレームの各フレームは、特定のシフト値に対応し得る。エンコーダは、比較値に基づいて第1の推定シフト値(たとえば、第1の推定不一致値)を生成し得る。たとえば、第1の推定シフト値は、第1のオーディオ信号の第1のフレームと第2のオーディオ信号の対応する第1のフレームとの間のより高い時間的類似性(またはより小さい差)を示す比較値に対応し得る。正のシフト値(たとえば、第1の推定シフト値)は、第1のオーディオ信号が先行オーディオ信号(たとえば、時間的先行オーディオ信号)であること、および第2のオーディオ信号が遅行オーディオ信号(たとえば、時間的遅行オーディオ信号)であることを示し得る。遅行オーディオ信号のフレーム(たとえば、サンプル)は、先行オーディオ信号のフレーム(たとえば、サンプル)に対して時間的に遅延し得る。
エンコーダは最終シフト値(たとえば、最終不一致値)を、複数の段階において一連の推定シフト値を精緻化することによって決定し得る。たとえば、エンコーダは最初に、第1のオーディオ信号および第2のオーディオ信号のステレオ前処理され再サンプリングされたバージョンから生成された比較値に基づいて、「暫定的」シフト値を推定し得る。エンコーダは、推定「暫定的」シフト値に最も近いシフト値に関連する補間済み比較値を生成し得る。エンコーダは、補間済み比較値に基づいて、第2の推定「補間済み」シフト値を決定し得る。たとえば、第2の推定「補間済み」シフト値は、残りの補間済み比較値および第1の推定「暫定的」シフト値よりも高い時間的類似性(または小さい差)を示す特定の補間済み比較値に対応し得る。現在フレーム(たとえば、第1のオーディオ信号の第1のフレーム)の第2の推定「補間済み」シフト値が前フレーム(たとえば、第1のフレームに先行する第1のオーディオ信号のフレーム)の最終シフト値とは異なる場合、現在フレームの「補間済み」シフト値は、第1のオーディオ信号とシフトされた第2のオーディオ信号との間の時間的類似性を改善するためにさらに「補正」される。具体的には、第3の推定「補正済み」シフト値が、現在フレームの第2の推定「補間済み」シフト値および前フレームの最終推定シフト値の辺りを探索することによって、時間的類似性のより正確な測定値に対応し得る。第3の推定「補正済み」シフト値は、フレーム間のシフト値の見せかけの(spurious)変化を制限することによって最終シフト値を推定するようにさらに調整され、本明細書で説明するように2つの連続するフレームにおいて負のシフト値から正のシフト値に(またはその逆に)切り替わらないようにさらに制御される。
いくつかの例では、エンコーダは、連続フレームまたは隣接フレームにおいて正のシフト値と負のシフト値との間またはその逆で切り替えるのを控え得る。たとえば、エンコーダは最終シフト値を、第1のフレームの推定「補間済み」または「補正済み」シフト値および第1のフレームに先行する特定のフレームにおける対応する推定「補間済み」または「補正済み」または最終シフト値に基づいて、時間的シフトなしを示す特定の値(たとえば、0)に設定し得る。例示すると、エンコーダは、現在フレーム(たとえば、第1のフレーム)の最終シフト値を、現在フレームの推定「暫定的」または「補間済み」または「補正済み」シフト値の一方が正であり、前フレーム(たとえば、第1のフレームに先行するフレーム)の推定「暫定的」または「補間済み」または「補正済み」または「最終」推定シフト値の他方が負であるとの判断に応答して、時間的シフトなし、すなわちシフト1=0を示すように設定し得る。代替的に、エンコーダはまた、現在フレーム(たとえば、第1のフレーム)の最終シフト値を、現在フレームの推定「暫定的」または「補間済み」または「補正済み」シフト値の一方が負であり、前フレーム(たとえば、第1のフレームに先行するフレーム)の推定「暫定的」または「補間済み」または「補正済み」または「最終」推定シフト値の他方が正であるとの判断に応答して、時間的シフトなし、すなわちシフト1=0を示すように設定し得る。本明細書で言及する、「時間的シフト」は、時間シフト、時間オフセット、サンプルシフト、サンプルオフセット、またはオフセットに対応し得る。
エンコーダは、シフト値に基づいて「基準」または「ターゲット」として、第1のオーディオ信号または第2のオーディオ信号のフレームを選択し得る。たとえば、最終シフト値が正であるとの判断に応答して、エンコーダは、第1のオーディオ信号が「基準」信号であること、および第2のオーディオ信号が「ターゲット」信号であることを示す第1の値(たとえば、0)を有する基準チャネルまたは信号インジケータを生成し得る。代替的に、最終シフト値が負であるとの判断に応答して、エンコーダは、第2のオーディオ信号が「基準」信号であること、および第1のオーディオ信号が「ターゲット」信号であることを示す第2の値(たとえば、1)を有する基準チャネルまたは信号インジケータを生成し得る。
基準信号は先行信号に対応することができ、ターゲット信号は遅行信号に対応することができる。特定の態様では、基準信号は、第1の推定シフト値によって先行信号として示される同じ信号であり得る。代替の態様では、基準信号は、第1の推定シフト値によって先行信号として示される信号とは異なり得る。基準信号は、基準信号が先行信号に対応することを第1の推定シフト値が示すかどうかにかかわらず、先行信号として扱われ得る。たとえば、基準信号は、基準信号に対して他方の信号(たとえば、ターゲット信号)をシフトする(たとえば、調整する)ことによって、先行信号として扱われ得る。
いくつかの例では、エンコーダは、符号化されるべきフレームに対応する不一致値(たとえば、推定シフト値または最終シフト値)および以前符号化されたフレームに対応する不一致(たとえば、シフト)値に基づいて、ターゲット信号または基準信号のうちの少なくとも1つを識別または決定し得る。エンコーダは、メモリに不一致値を記憶し得る。ターゲットチャネルは、2つのオーディオチャネルのうちの時間的遅行オーディオチャネルに対応することができ、基準チャネルは、2つのオーディオチャネルのうちの時間的先行オーディオチャネルに対応することができる。いくつかの例では、エンコーダは、時間的遅行チャネルを識別することがあり、メモリからの不一致値に基づいて、ターゲットチャネルを基準チャネルと最大限に整合させないことがある。たとえば、エンコーダは、1つまたは複数の不一致値に基づいて、ターゲットチャネルを基準チャネルと部分的に整合させ得る。いくつかの他の例では、エンコーダは、不一致値全体(たとえば、100サンプル)を符号化された複数のフレーム(たとえば、4つのフレーム)でより小さい不一致値(たとえば、25サンプル、25サンプル、25サンプル、25サンプル)に「非因果的に」分散することによって、一連のフレームでターゲットチャネルを漸進的に調整し得る。
エンコーダは、基準信号および非因果的シフトされたターゲット信号に関連する相対利得(たとえば、相対利得パラメータ)を推定し得る。たとえば、最終シフト値が正であるとの判断に応答して、エンコーダは、非因果的シフト値(たとえば、最終シフト値の絶対値)によってオフセットされる第2のオーディオ信号に対する第1のオーディオ信号のエネルギーまたは電力レベルを正規化または等化するための利得値を推定し得る。代替的に、最終シフト値が負であるとの判断に応答して、エンコーダは、第2のオーディオ信号に対する非因果的シフトされた第1のオーディオ信号の電力レベルを正規化または等化するための利得値を推定し得る。いくつかの例では、エンコーダは、非因果的シフトされた「ターゲット」信号に対する「基準」信号のエネルギーまたは電力レベルを正規化または等化するための利得値を推定し得る。他の例では、エンコーダは、ターゲット信号(たとえば、シフトされていないターゲット信号)に対する基準信号に基づく利得値(たとえば、相対利得値)を推定し得る。
エンコーダは、基準信号、ターゲット信号(たとえば、シフトされたターゲット信号またはシフトされていないターゲット信号)、非因果的シフト値、および相対利得パラメータに基づいて、少なくとも1つの符号化された信号(たとえば、ミッド信号、サイド信号、または両方)を生成し得る。サイド信号は、第1のオーディオ信号の第1のフレームの第1のサンプルと第2のオーディオ信号の被選択フレームの被選択サンプルとの間の差に対応し得る。エンコーダは、最終シフト値に基づいて被選択フレームを選択し得る。第1のフレームと同時にデバイスによって受信される第2のオーディオ信号のフレームに対応する第2のオーディオ信号の他のサンプルと比較して、第1のサンプルと被選択サンプルとの間の差が縮小することに起因して、サイドチャネル信号を符号化するために、より少ないビットが使用され得る。デバイスの送信機は、少なくとも1つの符号化された信号、非因果的シフト値、相対利得パラメータ、基準チャネルまたは信号インジケータ、あるいはそれらの組合せを送信し得る。
エンコーダは、基準信号、ターゲット信号(たとえば、シフトされたターゲット信号もしくはシフトされていないターゲット信号)、非因果的シフト値、相対利得パラメータ、第1のオーディオ信号の特定のフレームのローバンドパラメータ、特定のフレームのハイバンドパラメータ、またはそれらの組合せに基づいて、少なくとも1つの符号化された信号(たとえば、ミッド信号、サイド信号、または両方)を生成し得る。特定のフレームは、第1のフレームに先行し得る。1つまたは複数の先行フレームからのいくつかのローバンドパラメータ、ハイバンドパラメータ、またはそれらの組合せは、第1のフレームのミッド信号、サイド信号、または両方を符号化するために使用され得る。ローバンドパラメータ、ハイバンドパラメータ、またはそれらの組合せに基づいてミッド信号、サイド信号、または両方を符号化することで、非因果的シフト値およびチャネル間相対利得パラメータの推定値を改善し得る。ローバンドパラメータ、ハイバンドパラメータ、またはそれらの組合せは、ピッチパラメータ、有声化パラメータ(voicing parameter)、コーダタイプパラメータ、ローバンドエネルギーパラメータ、ハイバンドエネルギーパラメータ、チルトパラメータ、ピッチ利得パラメータ、FCB利得パラメータ、コーディングモードパラメータ、音声活動パラメータ、雑音推定パラメータ、信号対雑音比パラメータ、フォーマットパラメータ、スピーチ/ミュージック決定パラメータ、非因果的シフト、チャネル間利得パラメータ、またはそれらの組合せを含み得る。デバイスの送信機は、少なくとも1つの符号化された信号、非因果的シフト値、相対利得パラメータ、基準チャネル(または信号)インジケータ、あるいはそれらの組合せを送信し得る。本明細書で言及するオーディオ「信号」は、オーディオ「チャネル」に対応する。本明細書で言及する「シフト値」は、オフセット値、不一致値、時間オフセット値、サンプルシフト値、またはサンプルオフセット値に対応する。本明細書で言及する、ターゲット信号を「シフトすること」は、ターゲット信号を表すデータのロケーションをシフトすること、1つもしくは複数のメモリバッファにデータをコピーすること、ターゲット信号に関連する1つもしくは複数のメモリポインタを移動すること、またはそれらの組合せに対応し得る。
図1を参照すると、システムの特定の説明のための例が開示され、全体的に100と指定されている。システム100は、ネットワーク120を介して第2のデバイス106に通信可能に結合された第1のデバイス104を含む。ネットワーク120は、1つもしくは複数のワイヤレスネットワーク、1つもしくは複数のワイヤードネットワーク、またはそれらの組合せを含み得る。
第1のデバイス104は、エンコーダ114、送信機110、1つもしくは複数の入力インターフェース112、またはそれらの組合せを含み得る。入力インターフェース112の第1の入力インターフェースが第1のマイクロフォン146に結合され得る。入力インターフェース112の第2の入力インターフェースが第2のマイクロフォン148に結合され得る。エンコーダ114は、時間的等化器108を含むことができ、本明細書で説明するように、複数のオーディオ信号をダウンミックスおよび符号化するように構成され得る。第1のデバイス104はまた、分析データ190を記憶するように構成されたメモリ153を含み得る。第2のデバイス106はデコーダ118を含み得る。デコーダ118は、複数のチャネルをアップミックスおよびレンダリングするように構成された時間的バランサ124を含み得る。第2のデバイス106は、第1のラウドスピーカー142、第2のラウドスピーカー144、または両方に結合され得る。
動作中、第1のデバイス104は、第1のマイクロフォン146から第1の入力インターフェースを介して第1のオーディオ信号130を受信することがあり、第2のマイクロフォン148から第2の入力インターフェースを介して第2のオーディオ信号132を受信することがある。第1のオーディオ信号130は、右チャネル信号または左チャネル信号のうちの一方に対応し得る。第2のオーディオ信号132は、右チャネル信号または左チャネル信号のうちの他方に対応し得る。第1のマイクロフォン146および第2のマイクロフォン148は、音源152(たとえば、ユーザ、スピーカー、周囲雑音、楽器など)からオーディオを受信し得る。特定の態様では、第1のマイクロフォン146、第2のマイクロフォン148、または両方は、複数の音源からオーディオを受信し得る。複数の音源は、支配的(または最も支配的な)音源(たとえば、音源152)および1つまたは複数の2次的音源を含み得る。1つまたは複数の2次的音源は、往来、バックグラウンドミュージック、別の話者、街頭雑音などに対応し得る。音源152(たとえば、支配的音源)は、第2のマイクロフォン148よりも第1のマイクロフォン146に近いことがある。したがって、音源152からのオーディオ信号が、第2のマイクロフォン148を介してよりも早い時間に第1のマイクロフォン146を介して入力インターフェース112において受信され得る。複数のマイクロフォンを通じたマルチチャネル信号取得のこの自然な遅延は、第1のオーディオ信号130と第2のオーディオ信号132との間の時間的シフトをもたらし得る。
第1のデバイス104は、第1のオーディオ信号130、第2のオーディオ信号132、または両方をメモリ153に記憶し得る。時間的等化器108は、図10A〜図10Bを参照してさらに説明するように、第2のオーディオ信号132(たとえば、「基準」)に対する第1のオーディオ信号130(たとえば、「ターゲット」)のシフト(たとえば、非因果的シフト)を示す最終シフト値116(たとえば、非因果的シフト値)を決定し得る。最終シフト値116(たとえば、最終不一致値)は、第1のオーディオ信号と第2のオーディオ信号との間の時間的不一致(たとえば、時間遅延)の量を示し得る。本明細書で言及する「時間遅延」は、「時間的遅延」に対応し得る。時間的不一致は、第1のオーディオ信号130の第1のマイクロフォン146を介した受信と第2のオーディオ信号132の第2のマイクロフォン148を介した受信との間の時間遅延を示し得る。たとえば、最終シフト値116の第1の値(たとえば、正の値)は、第2のオーディオ信号132が第1のオーディオ信号130に対して遅延していることを示し得る。この例では、第1のオーディオ信号130は先行信号に対応することができ、第2のオーディオ信号132は遅行信号に対応することができる。最終シフト値116の第2の値(たとえば、負の値)は、第1のオーディオ信号130が第2のオーディオ信号132に対して遅延していることを示し得る。この例では、第1のオーディオ信号130は遅行信号に対応することができ、第2のオーディオ信号132は先行信号に対応することができる。最終シフト値116の第3の値(たとえば、0)は、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延がないことを示し得る。
いくつかの実装形態では、最終シフト値116の第3の値(たとえば、0)は、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延が符号を切り替えたことを示し得る。たとえば、第1のオーディオ信号130の第1の特定のフレームが第1のフレームに先行し得る。第1の特定のフレームおよび第2のオーディオ信号132の第2の特定のフレームは、音源152によって出された同じ音に対応し得る。同じ音は、第2のマイクロフォン148よりも早く第1のマイクロフォン146において検出され得る。第1のオーディオ信号130と第2のオーディオ信号132との間の遅延は、第1の特定のフレームが第2の特定のフレームに対して遅延している状態から第2のフレームが第1のフレームに対して遅延している状態に切り替わり得る。代替的に、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延は、第2の特定のフレームが第1の特定のフレームに対して遅延している状態から第1のフレームが第2のフレームに対して遅延している状態に切り替わり得る。時間的等化器108は、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延が符号を切り替えたとの判断に応答して、図10A〜図10Bを参照してさらに説明するように、第3の値(たとえば、0)を示すように最終シフト値116を設定し得る。
時間的等化器108は、図12を参照してさらに説明するように、最終シフト値116に基づいて基準信号インジケータ164(たとえば、基準チャネルインジケータ)を生成し得る。たとえば、時間的等化器108は、最終シフト値116が第1の値(たとえば、正の値)を示すとの判断に応答して、第1のオーディオ信号130が「基準」信号であることを示す第1の値(たとえば、0)を有するように基準信号インジケータ164を生成し得る。時間的等化器108は、最終シフト値116が第1の値(たとえば、正の値)を示すとの判断に応答して、第2のオーディオ信号132が「ターゲット」信号に対応すると判断し得る。代替的に、時間的等化器108は、最終シフト値116が第2の値(たとえば、負の値)を示すとの判断に応答して、第2のオーディオ信号132が「基準」信号であることを示す第2の値(たとえば、1)を有するように基準信号インジケータ164を生成し得る。時間的等化器108は、最終シフト値116が第2の値(たとえば、負の値)を示すとの判断に応答して、第1のオーディオ信号130が「ターゲット」信号に対応すると判断し得る。時間的等化器108は、最終シフト値116が第3の値(たとえば、0)を示すとの判断に応答して、第1のオーディオ信号130が「基準」信号であることを示す第1の値(たとえば、0)を有するように基準信号インジケータ164を生成し得る。時間的等化器108は、最終シフト値116が第3の値(たとえば、0)を示すとの判断に応答して、第2のオーディオ信号132が「ターゲット」信号に対応すると判断し得る。代替的に、時間的等化器108は、最終シフト値116が第3の値(たとえば、0)を示すとの判断に応答して、第2のオーディオ信号132が「基準」信号であることを示す第2の値(たとえば、1)を有するように基準信号インジケータ164を生成し得る。時間的等化器108は、最終シフト値116が第3の値(たとえば、0)を示すとの判断に応答して、第1のオーディオ信号130が「ターゲット」信号に対応すると判断し得る。いくつかの実装形態では、時間的等化器108は、最終シフト値116が第3の値(たとえば、0)を示すとの判断に応答して、基準信号インジケータ164を変えないでおくことができる。たとえば、基準信号インジケータ164は、第1のオーディオ信号130の第1の特定のフレームに対応する基準信号インジケータと同じであり得る。時間的等化器108は、最終シフト値116の絶対値を示す非因果的シフト値162(たとえば、非因果的不一致値)を生成し得る。
時間的等化器108は、「ターゲット」信号のサンプルに基づいて、かつ「基準」信号のサンプルに基づいて利得パラメータ160(たとえば、コーデック利得パラメータ)を生成し得る。たとえば、時間的等化器108は、非因果的シフト値162に基づいて第2のオーディオ信号132のサンプルを選択し得る。本明細書で言及する、シフト値に基づいてオーディオ信号のサンプルを選択することは、シフト値に基づいてオーディオ信号を調整する(たとえば、シフトする)ことによって、修正された(たとえば、時間シフトされた)オーディオ信号を生成し、修正されたオーディオ信号のサンプルを選択することに対応し得る。たとえば、時間的等化器108は、非因果的シフト値162に基づいて第2のオーディオ信号132をシフトすることによって、時間シフトされた第2のオーディオ信号を生成することができ、時間シフトされた第2のオーディオ信号のサンプルを選択することができる。時間的等化器108は、非因果的シフト値162に基づいて、第1のオーディオ信号130または第2のオーディオ信号132のうちの単一オーディオ信号(たとえば、単一チャネル)を調整する(たとえば、シフトする)ことができる。代替的に、時間的等化器108は、非因果的シフト値162とは無関係に第2のオーディオ信号132のサンプルを選択し得る。時間的等化器108は、第1のオーディオ信号130が基準信号であるとの判断に応答して、第1のオーディオ信号130の第1のフレームの第1のサンプルに基づいて、被選択サンプルの利得パラメータ160を決定し得る。代替的に、時間的等化器108は、第2のオーディオ信号132が基準信号であるとの判断に応答して、被選択サンプルに基づいて、第1のサンプルの利得パラメータ160を決定し得る。一例として、利得パラメータ160は、以下の式のうちの1つに基づき得る。
上式で、gDはダウンミックス処理のための相対利得パラメータ160に対応し、Ref(n)は「基準」信号のサンプルに対応し、N1は第1のフレームの非因果的シフト値162に対応し、Targ(n+N1)は「ターゲット」信号のサンプルに対応する。利得パラメータ160(gD)は、たとえば、フレーム間の利得の大幅な増大を回避するための長期平滑化/ヒステリシス論理を組み込むために、式1a〜1fのうちの1つに基づいて修正され得る。ターゲット信号が第1のオーディオ信号130を含むとき、第1のサンプルはターゲット信号のサンプルを含むことができ、被選択サンプルは基準信号のサンプルを含むことができる。ターゲット信号が第2のオーディオ信号132を含むとき、第1のサンプルは基準信号のサンプルを含むことができ、被選択サンプルはターゲット信号のサンプルを含むことができる。
いくつかの実装形態では、時間的等化器108は、基準信号インジケータ164にかかわらず、第1のオーディオ信号130を基準信号として扱い、第2のオーディオ信号132をターゲット信号として扱うことに基づいて、利得パラメータ160を生成し得る。たとえば、時間的等化器108は、式1a〜1fのうちの1つに基づいて利得パラメータ160を生成することができ、式中、Ref(n)は第1のオーディオ信号130のサンプル(たとえば、第1のサンプル)に対応し、Targ(n+N1)は第2のオーディオ信号132のサンプル(たとえば、被選択サンプル)に対応する。代替実装形態では、時間的等化器108は、基準信号インジケータ164にかかわらず、第2のオーディオ信号132を基準信号として扱い、第1のオーディオ信号130をターゲット信号として扱うことに基づいて、利得パラメータ160を生成し得る。たとえば、時間的等化器108は、式1a〜1fのうちの1つに基づいて利得パラメータ160を生成することができ、式中、Ref(n)は第2のオーディオ信号132のサンプル(たとえば、被選択サンプル)に対応し、Targ(n+N1)は第1のオーディオ信号130のサンプル(たとえば、第1のサンプル)に対応する。
時間的等化器108は、第1のサンプル、被選択サンプル、およびダウンミックス処理のための相対利得パラメータ160に基づいて、1つまたは複数の符号化された信号102(たとえば、ミッドチャネル信号、サイドチャネル信号、または両方)を生成し得る。たとえば、時間的等化器108は、以下の式のうちの1つに基づいてミッド信号を生成し得る。
M=Ref(n)+gDTarg(n+N1)、式2a
M=Ref(n)+Targ(n+N1)、式2b
上式で、Mはミッドチャネル信号に対応し、gDはダウンミックス処理のための相対利得パラメータ160に対応し、Ref(n)は「基準」信号のサンプルに対応し、N1は第1のフレームの非因果的シフト値162に対応し、Targ(n+N1)は「ターゲット」信号のサンプルに対応する。
時間的等化器108は、以下の式のうちの1つに基づいてサイドチャネル信号を生成し得る。
S=Ref(n)-gDTarg(n+N1)、式3a
S=gDRef(n)-Targ(n+N1)、式3b
上式で、Sはサイドチャネル信号に対応し、gDはダウンミックス処理のための相対利得パラメータ160に対応し、Ref(n)は「基準」信号のサンプルに対応し、N1は第1のフレームの非因果的シフト値162に対応し、Targ(n+N1)は「ターゲット」信号のサンプルに対応する。
送信機110は、符号化された信号102(たとえば、ミッドチャネル信号、サイドチャネル信号、もしくは両方)、基準信号インジケータ164、非因果的シフト値162、利得パラメータ160、またはそれらの組合せを、ネットワーク120を介して第2のデバイス106に送信し得る。いくつかの実装形態では、送信機110は、符号化された信号102(たとえば、ミッドチャネル信号、サイドチャネル信号、もしくは両方)、基準信号インジケータ164、非因果的シフト値162、利得パラメータ160、またはそれらの組合せを、後のさらなる処理または復号のためにネットワーク120のデバイスまたはローカルデバイスに記憶し得る。
デコーダ118は、符号化された信号102を復号し得る。時間的バランサ124は、(たとえば、第1のオーディオ信号130に対応する)第1の出力信号126、(たとえば、第2のオーディオ信号132に対応する)第2の出力信号128、または両方を生成するためにアップミキシングを実行し得る。第2のデバイス106は、第1のラウドスピーカー142を介して第1の出力信号126を出力し得る。第2のデバイス106は、第2のラウドスピーカー144を介して第2の出力信号128を出力し得る。
したがって、システム100は、時間的等化器108がミッド信号よりも少ないビットを使用してサイドチャネル信号を符号化することを可能にし得る。第1のオーディオ信号130の第1のフレームの第1のサンプルおよび第2のオーディオ信号132の被選択サンプルは、音源152によって出された同じ音に対応することができ、したがって、第1のサンプルと被選択サンプルとの間の差は、第1のサンプルと第2のオーディオ信号132の他のサンプルとの間の差よりも小さくなり得る。サイドチャネル信号は、第1のサンプルと被選択サンプルとの間の差に対応し得る。
図2を参照すると、システムの特定の例示的な態様が開示され、全体的に200と指定されている。システム200は、ネットワーク120を介して第2のデバイス106に結合された第1のデバイス204を含む。第1のデバイス204は、図1の第1のデバイス104に対応し得る。システム200は、第1のデバイス204が3つ以上のマイクロフォンに結合されるという点で、図1のシステム100とは異なる。たとえば、第1のデバイス204は、第1のマイクロフォン146、第Nのマイクロフォン248、および1つまたは複数の追加のマイクロフォン(たとえば、図1の第2のマイクロフォン148)に結合され得る。第2のデバイス106は、第1のラウドスピーカー142、第Yのラウドスピーカー244、1つもしくは複数の追加のスピーカー(たとえば、第2のラウドスピーカー144)、またはそれらの組合せに結合され得る。第1のデバイス204はエンコーダ214を含み得る。エンコーダ214は、図1のエンコーダ114に対応し得る。エンコーダ214は、1つまたは複数の時間的等化器208を含み得る。たとえば、時間的等化器208は図1の時間的等化器108を含み得る。
動作中、第1のデバイス204は、3つ以上のオーディオ信号を受信し得る。たとえば、第1のデバイス204は、第1のマイクロフォン146を介して第1のオーディオ信号130、第Nのマイクロフォン248を介して第Nのオーディオ信号232、および追加のマイクロフォン(たとえば、第2のマイクロフォン148)を介して1つまたは複数の追加のオーディオ信号(たとえば、第2のオーディオ信号132)を受信し得る。
時間的等化器208は、図14〜図15を参照してさらに説明するように、1つもしくは複数の基準信号インジケータ264、最終シフト値216、非因果的シフト値262、利得パラメータ260、符号化された信号202、またはそれらの組合せを生成し得る。たとえば、時間的等化器208は、第1のオーディオ信号130が基準信号であり、第Nのオーディオ信号232および追加のオーディオ信号の各々がターゲット信号であると判断し得る。時間的等化器208は、図14を参照してさらに説明するように、基準信号インジケータ264と、最終シフト値216と、非因果的シフト値262と、利得パラメータ260と、第1のオーディオ信号130ならびに第Nのオーディオ信号232および追加のオーディオ信号の各々に対応する符号化された信号202とを生成し得る。
基準信号インジケータ264は、基準信号インジケータ164を含み得る。最終シフト値216は、図14を参照してさらに説明するように、第1のオーディオ信号130に対する第2のオーディオ信号132のシフトを示す最終シフト値116、第1のオーディオ信号130に対する第Nのオーディオ信号232のシフトを示す第2の最終シフト値、または両方を含み得る。非因果的シフト値262は、図14を参照してさらに説明するように、最終シフト値116の絶対値に対応する非因果的シフト値162、第2の最終シフト値の絶対値に対応する第2の非因果的シフト値、または両方を含み得る。利得パラメータ260は、図14を参照してさらに説明するように、第2のオーディオ信号132の被選択サンプルの利得パラメータ160、第Nのオーディオ信号232の被選択サンプルの第2の利得パラメータ、または両方を含み得る。符号化された信号202は、符号化された信号102のうちの少なくとも1つを含み得る。たとえば、符号化された信号202は、図14を参照してさらに説明するように、第1のオーディオ信号130の第1のサンプルおよび第2のオーディオ信号132の被選択サンプルに対応するサイドチャネル信号、第1のサンプルおよび第Nのオーディオ信号232の被選択サンプルに対応する第2のサイドチャネル、または両方を含み得る。符号化された信号202は、図14を参照してさらに説明するように、第1のサンプル、第2のオーディオ信号132の被選択サンプル、および第Nのオーディオ信号232の被選択サンプルに対応するミッドチャネル信号を含み得る。
いくつかの実装形態では、時間的等化器208は、図15を参照して説明するように、複数の基準信号および対応するターゲット信号を決定し得る。たとえば、基準信号インジケータ264は、基準信号およびターゲット信号の各ペアに対応する基準信号インジケータを含み得る。例示すると、基準信号インジケータ264は、第1のオーディオ信号130および第2のオーディオ信号132に対応する基準信号インジケータ164を含み得る。最終シフト値216は、基準信号およびターゲット信号の各ペアに対応する最終シフト値を含み得る。たとえば、最終シフト値216は、第1のオーディオ信号130および第2のオーディオ信号132に対応する最終シフト値116を含み得る。非因果的シフト値262は、基準信号およびターゲット信号の各ペアに対応する非因果的シフト値を含み得る。たとえば、非因果的シフト値262は、第1のオーディオ信号130および第2のオーディオ信号132に対応する非因果的シフト値162を含み得る。利得パラメータ260は、基準信号およびターゲット信号の各ペアに対応する利得パラメータを含み得る。たとえば、利得パラメータ260は、第1のオーディオ信号130および第2のオーディオ信号132に対応する利得パラメータ160を含み得る。符号化された信号202は、基準信号およびターゲット信号の各ペアに対応するミッドチャネル信号およびサイドチャネル信号を含み得る。たとえば、符号化された信号202は、第1のオーディオ信号130および第2のオーディオ信号132に対応する符号化された信号102を含み得る。
送信機110は、基準信号インジケータ264、非因果的シフト値262、利得パラメータ260、符号化された信号202、またはそれらの組合せを、ネットワーク120を介して第2のデバイス106に送信し得る。デコーダ118は、基準信号インジケータ264、非因果的シフト値262、利得パラメータ260、符号化された信号202、またはそれらの組合せに基づいて、1つまたは複数の出力信号を生成し得る。たとえば、デコーダ118は、第1のラウドスピーカー142を介して第1の出力信号226、第Yのラウドスピーカー244を介して第Yの出力信号228、1つもしくは複数の追加のラウドスピーカー(たとえば、第2のラウドスピーカー144)を介して1つもしくは複数の追加の出力信号(たとえば、第2の出力信号128)、またはそれらの組合せを出力し得る。
したがって、システム200は、時間的等化器208が3つ以上のオーディオ信号を符号化することを可能にし得る。たとえば、符号化された信号202は、非因果的シフト値262に基づいてサイドチャネル信号を生成することによって、対応するミッドチャネルよりも少ないビットを使用して符号化される複数のサイドチャネル信号を含み得る。
図3を参照すると、サンプルの説明のための例が示され、全体的に300と指定されている。サンプル300の少なくともサブセットが、本明細書で説明するように、第1のデバイス104によって符号化され得る。
サンプル300は、第1のオーディオ信号130に対応する第1のサンプル320、第2のオーディオ信号132に対応する第2のサンプル350、または両方を含み得る。第1のサンプル320は、サンプル322、サンプル324、サンプル326、サンプル328、サンプル330、サンプル332、サンプル334、サンプル336、1つもしくは複数の追加のサンプル、またはそれらの組合せを含み得る。第2のサンプル350は、サンプル352、サンプル354、サンプル356、サンプル358、サンプル360、サンプル362、サンプル364、サンプル366、1つもしくは複数の追加のサンプル、またはそれらの組合せを含み得る。
第1のオーディオ信号130は、複数のフレーム(たとえば、フレーム302、フレーム304、フレーム306、またはそれらの組合せ)に対応し得る。複数のフレームの各々は、第1のサンプル320の(たとえば、32kHzでの640サンプルまたは48kHzでの960サンプルなど、20msに対応する)サンプルのサブセットに対応し得る。たとえば、フレーム302は、サンプル322、サンプル324、1つもしくは複数の追加のサンプル、またはそれらの組合せに対応し得る。フレーム304は、サンプル326、サンプル328、サンプル330、サンプル332、1つもしくは複数の追加のサンプル、またはそれらの組合せに対応し得る。フレーム306は、サンプル334、サンプル336、1つもしくは複数の追加のサンプル、またはそれらの組合せに対応し得る。
サンプル322は、図1の入力インターフェース112において、サンプル352とほぼ同時に受信され得る。サンプル324は、図1の入力インターフェース112において、サンプル354とほぼ同時に受信され得る。サンプル326は、図1の入力インターフェース112において、サンプル356とほぼ同時に受信され得る。サンプル328は、図1の入力インターフェース112において、サンプル358とほぼ同時に受信され得る。サンプル330は、図1の入力インターフェース112において、サンプル360とほぼ同時に受信され得る。サンプル332は、図1の入力インターフェース112において、サンプル362とほぼ同時に受信され得る。サンプル334は、図1の入力インターフェース112において、サンプル364とほぼ同時に受信され得る。サンプル336は、図1の入力インターフェース112において、サンプル366とほぼ同時に受信され得る。
最終シフト値116の第1の値(たとえば、正の値)は、第1のオーディオ信号130に対する第2のオーディオ信号132の時間的遅延を示す第1のオーディオ信号130と第2のオーディオ信号132との間の時間的不一致の量を示し得る。たとえば、最終シフト値116の第1の値(たとえば、+Xmsまたは+Yサンプルであって、XおよびYが正の実数を含む)は、フレーム304(たとえば、サンプル326〜332)がサンプル358〜364に対応することを示し得る。第2のオーディオ信号132のサンプル358〜364は、サンプル326〜332に対して時間的に遅延し得る。サンプル326〜332およびサンプル358〜364は、音源152から出された同じ音に対応し得る。サンプル358〜364は、第2のオーディオ信号132のフレーム344に対応し得る。図1〜図15のうちの1つまたは複数におけるクロスハッチング付きサンプルの図は、サンプルが同じ音に対応することを示し得る。たとえば、サンプル326〜332およびサンプル358〜364は、サンプル326〜332(たとえば、フレーム304)およびサンプル358〜364(たとえば、フレーム344)が音源152から出された同じ音に対応することを示すために、図3においてクロスハッチング付きで示されている。
図3に示すYサンプルの時間的オフセットは例示的なものであることを理解されたい。たとえば、時間的オフセットは、0以上であるサンプル数Yに対応し得る。時間的オフセットY=0サンプルである第1のケースでは、(たとえば、フレーム304に対応する)サンプル326〜332および(たとえば、フレーム344に対応する)サンプル356〜362は、フレームオフセットをまったく伴わない高い類似性を示し得る。時間的オフセットY=2サンプルである第2のケースでは、フレーム304およびフレーム344は2サンプルだけオフセットされ得る。この場合、第1のオーディオ信号130は、入力インターフェース112において、Y=2サンプルまたはX=(2/Fs)msだけ第2のオーディオ信号132の前に受信され得、FsがkHzでのサンプルレートに対応する。いくつかの場合には、時間的オフセットYは、非整数値、たとえば、32kHzでのX=0.05msに対応するY=1.6サンプルを含み得る。
図1の時間的等化器108は、最終シフト値116に基づいて、第1のオーディオ信号130が基準信号に対応し、第2のオーディオ信号132がターゲット信号に対応すると判断し得る。基準信号(たとえば、第1のオーディオ信号130)は先行信号に対応することができ、ターゲット信号(たとえば、第2のオーディオ信号132)は遅行信号に対応することができる。たとえば、第1のオーディオ信号130は、最終シフト値116に基づいて、第1のオーディオ信号130に対して第2のオーディオ信号132をシフトすることによって、基準信号として扱われ得る。
時間的等化器108は、サンプル326〜332が(サンプル356〜362と比較して)サンプル358〜364とともに符号化されるべきであることを示すために、第2のオーディオ信号132をシフトし得る。たとえば、時間的等化器108は、サンプル358〜364のロケーションをサンプル356〜362のロケーションにシフトし得る。時間的等化器108は、1つまたは複数のポインタを、サンプル356〜362のロケーションを示す指示から、サンプル358〜364のロケーションを示すように更新し得る。時間的等化器108はバッファに、サンプル356〜362に対応するデータをコピーすることと比較して、サンプル358〜364に対応するデータをコピーし得る。時間的等化器108は、図1を参照して説明したように、サンプル326〜332およびサンプル358〜364を符号化することによって、符号化された信号102を生成し得る。
図4を参照すると、サンプルの説明のための例が示され、全体的に400と指定されている。例400は、第1のオーディオ信号130が第2のオーディオ信号132に対して遅延するという点で、例300とは異なる。
最終シフト値116の第2の値(たとえば、負の値)は、第1のオーディオ信号130と第2のオーディオ信号132との間の時間的不一致の量が、第2のオーディオ信号132に対する第1のオーディオ信号130の時間的遅延を示すことを示し得る。たとえば、最終シフト値116の第2の値(たとえば、-Xmsまたは-Yサンプルであって、XおよびYが正の実数を含む)は、フレーム304(たとえば、サンプル326〜332)がサンプル354〜360に対応することを示し得る。サンプル354〜360は、第2のオーディオ信号132のフレーム344に対応し得る。サンプル326〜332は、サンプル354〜360に対して時間的に遅延している。サンプル354〜360(たとえば、フレーム344)およびサンプル326〜332(たとえば、フレーム304)は、音源152から出された同じ音に対応し得る。
図4に示す-Yサンプルの時間的オフセットは例示的なものであることを理解されたい。たとえば、時間的オフセットは、0以下であるサンプル数-Yに対応し得る。時間的オフセットY=0サンプルである第1のケースでは、(たとえば、フレーム304に対応する)サンプル326〜332および(たとえば、フレーム344に対応する)サンプル356〜362は、フレームオフセットをまったく伴わない高い類似性を示し得る。時間的オフセットY=-6サンプルである第2のケースでは、フレーム304およびフレーム344は6サンプルだけオフセットされ得る。この場合、第1のオーディオ信号130は、入力インターフェース112において、Y=-6サンプルまたはX=(-6/Fs)msだけ第2のオーディオ信号132の後に受信され得、FsがkHzでのサンプルレートに対応する。いくつかの場合には、時間的オフセットYは、非整数値、たとえば、32kHzでのX=-0.1msに対応するY=-3.2サンプルを含み得る。
図1の時間的等化器108は、第2のオーディオ信号132が基準信号に対応し、第1のオーディオ信号130がターゲット信号に対応すると判断し得る。特に、時間的等化器108は、図5を参照して説明するように、最終シフト値116から非因果的シフト値162を推定し得る。時間的等化器108は、最終シフト値116の符号に基づいて、第1のオーディオ信号130または第2のオーディオ信号132のうちの一方を基準信号として、また第1のオーディオ信号130または第2のオーディオ信号132のうちの他方をターゲット信号として識別する(たとえば、指定する)ことができる。
基準信号(たとえば、第2のオーディオ信号132)は先行信号に対応することができ、ターゲット信号(たとえば、第1のオーディオ信号130)は遅行信号に対応することができる。たとえば、第2のオーディオ信号132は、最終シフト値116に基づいて、第2のオーディオ信号132に対して第1のオーディオ信号130をシフトすることによって、基準信号として扱われ得る。
時間的等化器108は、サンプル354〜360が(サンプル324〜330と比較して)サンプル326〜332とともに符号化されるべきであることを示すために、第1のオーディオ信号130をシフトし得る。たとえば、時間的等化器108は、サンプル326〜332のロケーションをサンプル324〜330のロケーションにシフトし得る。時間的等化器108は、1つまたは複数のポインタを、サンプル324〜330のロケーションを示す指示から、サンプル326〜332のロケーションを示すように更新し得る。時間的等化器108はバッファに、サンプル324〜330に対応するデータをコピーすることと比較して、サンプル326〜332に対応するデータをコピーし得る。時間的等化器108は、図1を参照して説明したように、サンプル354〜360およびサンプル326〜332を符号化することによって、符号化された信号102を生成し得る。
図5を参照すると、システムの説明のための例が示され、全体的に500と指定されている。システム500は、図1のシステム100に対応し得る。たとえば、図1のシステム100、第1のデバイス104、または両方は、システム500の1つまたは複数の構成要素を含み得る。時間的等化器108は、リサンプラ504、信号比較器506、補間器510、シフトリファイナ511、シフト変化分析器512、絶対シフト生成器513、基準信号指定器508、利得パラメータ生成器514、信号生成器516、またはそれらの組合せを含み得る。
動作中、リサンプラ504は、図6を参照してさらに説明するように、1つまたは複数の再サンプリングされた信号を生成し得る。たとえば、リサンプラ504は、再サンプリング(たとえば、ダウンサンプリングまたはアップサンプリング)係数(D)(たとえば、≧1)に基づいて第1のオーディオ信号130を再サンプリングする(たとえば、ダウンサンプリングする、またはアップサンプリングする)ことによって、第1の再サンプリングされた信号530(たとえば、ダウンサンプリングされた信号またはアップサンプリングされた信号)を生成し得る。リサンプラ504は、再サンプリング係数(D)に基づいて第2のオーディオ信号132を再サンプリングすることによって、第2の再サンプリングされた信号532を生成し得る。リサンプラ504は、第1の再サンプリングされた信号530、第2の再サンプリングされた信号532、または両方を信号比較器506に提供し得る。
信号比較器506は、図7を参照してさらに説明するように、比較値534(たとえば、差値、類似性値、コヒーレンス値、もしくは相互相関値)、暫定的シフト値536(たとえば、暫定的不一致値)、または両方を生成し得る。たとえば、信号比較器506は、図7を参照してさらに説明するように、第1の再サンプリングされた信号530と第2の再サンプリングされた信号532に適用される複数のシフト値とに基づいて、比較値534を生成し得る。信号比較器506は、図7を参照してさらに説明するように、比較値534に基づいて暫定的シフト値536を決定し得る。第1の再サンプリングされた信号530は、第1のオーディオ信号130よりも少ないサンプルまたは多いサンプルを含み得る。第2の再サンプリングされた信号532は、第2のオーディオ信号132よりも少ないサンプルまたは多いサンプルを含み得る。代替の態様では、第1の再サンプリングされた信号530は第1のオーディオ信号130と同じであってよく、第2の再サンプリングされた信号532は第2のオーディオ信号132と同じであってよい。再サンプリングされた信号(たとえば、第1の再サンプリングされた信号530および第2の再サンプリングされた信号532)のより少ないサンプルに基づいて比較値534を決定する場合は、元の信号(たとえば、第1のオーディオ信号130および第2のオーディオ信号132)のサンプルに基づく場合よりも少ないリソース(たとえば、時間、動作の数、または両方)を使用し得る。再サンプリングされた信号(たとえば、第1の再サンプリングされた信号530および第2の再サンプリングされた信号532)のより多いサンプルに基づいて比較値534を決定する場合は、元の信号(たとえば、第1のオーディオ信号130および第2のオーディオ信号132)のサンプルに基づく場合よりも精度が向上し得る。信号比較器506は、比較値534、暫定的シフト値536、または両方を補間器510に提供し得る。
補間器510は、暫定的シフト値536を拡大適用する(extend)ことができる。たとえば、補間器510は、図8を参照してさらに説明するように、補間済みシフト値538(たとえば、補間済み不一致値)を生成し得る。たとえば、補間器510は、比較値534を補間することによって、暫定的シフト値536に最も近いシフト値に対応する補間済み比較値を生成し得る。補間器510は、補間済み比較値および比較値534に基づいて、補間済みシフト値538を決定し得る。比較値534は、シフト値のより粗い細分性に基づき得る。たとえば、比較値534は、シフト値のセットの第1のサブセットに基づき得、結果として、第1のサブセットの第1のシフト値と第1のサブセットの各第2のシフト値との間の差がしきい値(たとえば、≧1)以上となる。しきい値は、再サンプリング係数(D)に基づき得る。
補間済み比較値は、再サンプリングされた暫定的シフト値536に最も近いシフト値のより細かい細分性に基づき得る。たとえば、補間済み比較値は、シフト値のセットの第2のサブセットに基づき得、結果として、第2のサブセットの最も高いシフト値と再サンプリングされた暫定的シフト値536との間の差がしきい値(たとえば、≧1)未満となり、第2のサブセットの最も低いシフト値と再サンプリングされた暫定的シフト値536との間の差がしきい値未満となる。シフト値のセットのより粗い細分性(たとえば、第1のサブセット)に基づいて比較値534を決定する場合は、シフト値のセットのより細かい細分性(たとえば、すべて)に基づいて比較値534を決定する場合よりも少ないリソース(たとえば、時間、動作、または両方)を使用し得る。シフト値の第2のサブセットに対応する補間済み比較値を決定する場合は、シフト値のセットの各シフト値に対応する比較値を決定することなく、暫定的シフト値536に最も近いシフト値のより小さいセットのより細かい細分性に基づいて暫定的シフト値536を拡大適用することができる。したがって、シフト値の第1のサブセットに基づいて暫定的シフト値536を決定し、補間済み比較値に基づいて補間済みシフト値538を決定する場合は、リソースの使用と推定シフト値の精緻化とのバランスをとることができる。補間器510は、補間済みシフト値538をシフトリファイナ511に提供し得る。
シフトリファイナ511は、図9A〜図9Cを参照してさらに説明するように、補間済みシフト値538を精緻化することによって補正済みシフト値540を生成し得る。たとえば、シフトリファイナ511は、図9Aを参照してさらに説明するように、第1のオーディオ信号130と第2のオーディオ信号132との間のシフトの変化がシフト変化しきい値よりも大きいことを補間済みシフト値538が示すかどうかを判断し得る。シフトの変化は、補間済みシフト値538と図3のフレーム302に関連する第1のシフト値との間の差によって示され得る。シフトリファイナ511は、差がしきい値以下であるとの判断に応答して、補正済みシフト値540を補間済みシフト値538に設定し得る。代替的に、シフトリファイナ511は、図9Aを参照してさらに説明するように、差がしきい値よりも大きいとの判断に応答して、シフト変化しきい値以下である差に対応する複数のシフト値を決定し得る。シフトリファイナ511は、第1のオーディオ信号130と第2のオーディオ信号132に適用される複数のシフト値とに基づいて、比較値を決定し得る。シフトリファイナ511は、図9Aを参照してさらに説明するように、比較値に基づいて補正済みシフト値540を決定し得る。たとえば、シフトリファイナ511は、図9Aを参照してさらに説明するように、比較値および補間済みシフト値538に基づいて、複数のシフト値のうちのシフト値を選択し得る。シフトリファイナ511は、被選択シフト値を示すように補正済みシフト値540を設定し得る。フレーム302に対応する第1のシフト値と補間済みシフト値538との間の非0の差は、第2のオーディオ信号132のいくつかのサンプルが両方のフレーム(たとえば、フレーム302およびフレーム304)に対応することを示し得る。たとえば、第2のオーディオ信号132のいくつかのサンプルは、符号化中に複製され得る。代替的に、非0の差は、第2のオーディオ信号132のいくつかのサンプルがフレーム302にもフレーム304にも対応しないことを示し得る。たとえば、第2のオーディオ信号132のいくつかのサンプルは、符号化中に紛失し得る。補正済みシフト値540を複数のシフト値のうちの1つに設定することは、連続(または隣接)フレーム間のシフトの大きい変化を防ぎ、それによって、符号化中のサンプル紛失またはサンプル複製の量を低減することができる。シフトリファイナ511は、補正済みシフト値540をシフト変化分析器512に提供し得る。
いくつかの実装形態では、シフトリファイナ511は、図9Bを参照して説明するように、補間済みシフト値538を調整し得る。シフトリファイナ511は、調整された補間済みシフト値538に基づいて補正済みシフト値540を決定し得る。いくつかの実装形態では、シフトリファイナ511は、図9Cを参照して説明するように、補正済みシフト値540を決定し得る。
シフト変化分析器512は、図1を参照して説明したように、補正済みシフト値540が第1のオーディオ信号130と第2のオーディオ信号132との間のタイミングの切替えまたは反転を示すかどうかを判断し得る。具体的には、タイミングの反転または切替えは、フレーム302に関して、第1のオーディオ信号130が入力インターフェース112において第2のオーディオ信号132の前に受信されており、後続フレーム(たとえば、フレーム304またはフレーム306)に関して、第2のオーディオ信号132が入力インターフェースにおいて第1のオーディオ信号130の前に受信されていることを示し得る。代替的に、タイミングの反転または切替えは、フレーム302に関して、第2のオーディオ信号132が入力インターフェース112において第1のオーディオ信号130の前に受信されており、後続フレーム(たとえば、フレーム304またはフレーム306)に関して、第1のオーディオ信号130が入力インターフェースにおいて第2のオーディオ信号132の前に受信されていることを示し得る。言い換えれば、タイミングの切替えまたは反転は、フレーム302に対応する最終シフト値が、フレーム304に対応する補正済みシフト値540の第2の符号とは別個の第1の符号を有すること(たとえば、正から負への移行またはその逆)を示し得る。シフト変化分析器512は、図10Aを参照してさらに説明するように、補正済みシフト値540およびフレーム302に関連する第1のシフト値に基づいて、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延が符号を切り替えたかどうかを判断し得る。シフト変化分析器512は、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延が符号を切り替えたとの判断に応答して、最終シフト値116を、時間シフトなしを示す値(たとえば、0)に設定し得る。代替的に、シフト変化分析器512は、図10Aを参照してさらに説明するように、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延が符号を切り替えていないとの判断に応答して、最終シフト値116を補正済みシフト値540に設定し得る。シフト変化分析器512は、図10A、図11を参照してさらに説明するように、補正済みシフト値540を精緻化することによって推定シフト値を生成し得る。シフト変化分析器512は、最終シフト値116を推定シフト値に設定し得る。時間シフトなしを示すように最終シフト値116を設定することは、第1のオーディオ信号130および第2のオーディオ信号132を第1のオーディオ信号130の連続(または隣接)フレームに関して反対方向で時間シフトするのを控えることによって、デコーダにおけるひずみを低減し得る。シフト変化分析器512は、最終シフト値116を基準信号指定器508、絶対シフト生成器513、または両方に提供し得る。いくつかの実装形態では、シフト変化分析器512は、図10Bを参照して説明するように、最終シフト値116を決定し得る。
絶対シフト生成器513は、最終シフト値116に絶対関数を適用することによって、非因果的シフト値162を生成し得る。絶対シフト生成器513は、非因果的シフト値162を利得パラメータ生成器514に提供し得る。
基準信号指定器508は、図12〜図13を参照してさらに説明するように、基準信号インジケータ164を生成し得る。たとえば、基準信号インジケータ164は、第1のオーディオ信号130が基準信号であることを示す第1の値または第2のオーディオ信号132が基準信号であることを示す第2の値を有し得る。基準信号指定器508は、基準信号インジケータ164を利得パラメータ生成器514に提供し得る。
利得パラメータ生成器514は、非因果的シフト値162に基づいてターゲット信号(たとえば、第2のオーディオ信号132)のサンプルを選択し得る。たとえば、利得パラメータ生成器514は、非因果的シフト値162に基づいてターゲット信号(たとえば、第2のオーディオ信号132)をシフトすることによって、時間シフトされたターゲット信号(たとえば、時間シフトされた第2のオーディオ信号)を生成することができ、時間シフトされたターゲット信号のサンプルを選択することができる。例示すると、利得パラメータ生成器514は、非因果的シフト値162が第1の値(たとえば、+Xmsまたは+Yサンプルであって、XおよびYが正の実数を含む)を有するとの判断に応答して、サンプル358〜364を選択し得る。利得パラメータ生成器514は、非因果的シフト値162が第2の値(たとえば、-Xmsまたは-Yサンプル)を有するとの判断に応答して、サンプル354〜360を選択し得る。利得パラメータ生成器514は、時間シフトなしを示す値(たとえば、0)を非因果的シフト値162が有するとの判断に応答して、サンプル356〜362を選択し得る。
利得パラメータ生成器514は、基準信号インジケータ164に基づいて、第1のオーディオ信号130が基準信号であるか、それとも第2のオーディオ信号132が基準信号であるかを判断し得る。利得パラメータ生成器514は、図1を参照して説明したように、フレーム304のサンプル326〜332および第2のオーディオ信号132の被選択サンプル(たとえば、サンプル354〜360、サンプル356〜362、またはサンプル358〜364)に基づいて利得パラメータ160を生成し得る。たとえば、利得パラメータ生成器514は、式1a〜式1fのうちの1つまたは複数に基づいて利得パラメータ160を生成することができ、式中、gDは利得パラメータ160に対応し、Ref(n)は基準信号のサンプルに対応し、Targ(n+N1)はターゲット信号のサンプルに対応する。例示すると、非因果的シフト値162が第1の値(たとえば、+Xmsまたは+Yサンプルであって、XおよびYが正の実数を含む)を有するときに、Ref(n)はフレーム304のサンプル326〜332に対応することができ、Targ(n+tN1)はフレーム344のサンプル358〜364に対応することができる。いくつかの実装形態では、図1を参照して説明したように、Ref(n)は第1のオーディオ信号130のサンプルに対応することができ、Targ(n+N1)は第2のオーディオ信号132のサンプルに対応することができる。代替実装形態では、図1を参照して説明したように、Ref(n)は第2のオーディオ信号132のサンプルに対応することができ、Targ(n+N1)は第1のオーディオ信号130のサンプルに対応することができる。
利得パラメータ生成器514は、利得パラメータ160、基準信号インジケータ164、非因果的シフト値162、またはそれらの組合せを信号生成器516に提供し得る。信号生成器516は、図1を参照して説明したように、符号化された信号102を生成し得る。たとえば、符号化された信号102は、第1の符号化された信号フレーム564(たとえば、ミッドチャネルフレーム)、第2の符号化された信号フレーム566(たとえば、サイドチャネルフレーム)、または両方を含み得る。信号生成器516は、式2aまたは式2bに基づいて第1の符号化された信号フレーム564を生成することができ、式中、Mは第1の符号化された信号フレーム564に対応し、gDは利得パラメータ160に対応し、Ref(n)は基準信号のサンプルに対応し、Targ(n+N1)はターゲット信号のサンプルに対応する。信号生成器516は、式3aまたは式3bに基づいて第2の符号化された信号フレーム566を生成することができ、式中、Sは第2の符号化された信号フレーム566に対応し、gDは利得パラメータ160に対応し、Ref(n)は基準信号のサンプルに対応し、Targ(n+N1)はターゲット信号のサンプルに対応する。
時間的等化器108は、第1の再サンプリングされた信号530、第2の再サンプリングされた信号532、比較値534、暫定的シフト値536、補間済みシフト値538、補正済みシフト値540、非因果的シフト値162、基準信号インジケータ164、最終シフト値116、利得パラメータ160、第1の符号化された信号フレーム564、第2の符号化された信号フレーム566、またはそれらの組合せをメモリ153に記憶し得る。たとえば、分析データ190は、第1の再サンプリングされた信号530、第2の再サンプリングされた信号532、比較値534、暫定的シフト値536、補間済みシフト値538、補正済みシフト値540、非因果的シフト値162、基準信号インジケータ164、最終シフト値116、利得パラメータ160、第1の符号化された信号フレーム564、第2の符号化された信号フレーム566、またはそれらの組合せを含み得る。
図6を参照すると、システムの説明のための例が示され、全体的に600と指定されている。システム600は、図1のシステム100に対応し得る。たとえば、図1のシステム100、第1のデバイス104、または両方は、システム600の1つまたは複数の構成要素を含み得る。
リサンプラ504は、図1の第1のオーディオ信号130を再サンプリングする(たとえば、ダウンサンプリングする、またはアップサンプリングする)ことによって、第1の再サンプリングされた信号530の第1のサンプル620を生成し得る。リサンプラ504は、図1の第2のオーディオ信号132を再サンプリングする(たとえば、ダウンサンプリングする、またはアップサンプリングする)ことによって、第2の再サンプリングされた信号532の第2のサンプル650を生成し得る。
第1のオーディオ信号130は、図3のサンプル320を生成するために第1のサンプルレート(Fs)でサンプリングされ得る。第1のサンプルレート(Fs)は、広帯域(WB)帯域幅に関連する第1のレート(たとえば、16キロヘルツ(kHz))、超広帯域(SWB)帯域幅に関連する第2のレート(たとえば、32kHz)、全帯域(FB)帯域幅に関連する第3のレート(たとえば、48kHz)、または別のレートに対応し得る。第2のオーディオ信号132は、図3の第2のサンプル350を生成するために第1のサンプルレート(Fs)でサンプリングされ得る。
いくつかの実装形態では、リサンプラ504は、第1のオーディオ信号130(または第2のオーディオ信号132)を再サンプリングする前に、第1のオーディオ信号130(または第2のオーディオ信号132)を前処理し得る。リサンプラ504は、無限インパルス応答(IIR)フィルタ(たとえば、1次IIRフィルタ)に基づいて第1のオーディオ信号130(または第2のオーディオ信号132)をフィルタ処理することによって、第1のオーディオ信号130(または第2のオーディオ信号132)を前処理し得る。IIRフィルタは、以下の式に基づき得る。
Hpre(z)=1/(1-αz-1)、式4
上式で、αは0.68または0.72などの正である。再サンプリングする前にデエンファシスを実行することで、エイリアシング、信号調整、またはその両方などの影響を低減することができる。第1のオーディオ信号130(たとえば、前処理された第1のオーディオ信号130)および第2のオーディオ信号132(たとえば、前処理された第2のオーディオ信号132)は、再サンプリング係数(D)に基づいて再サンプリングされ得る。再サンプリング係数(D)は、第1のサンプルレート(Fs)に基づき得る(たとえば、D=Fs/8、D=2Fsなど)。
代替実装形態では、第1のオーディオ信号130および第2のオーディオ信号132は、再サンプリングする前にアンチエイリアシングフィルタを使用してローパスフィルタ処理またはデシメートされ得る。デシメーションフィルタは、再サンプリング係数(D)に基づき得る。特定の例では、リサンプラ504は、第1のサンプルレート(Fs)が特定のレート(たとえば、32kHz)に対応するとの決定に応答して、第1のカットオフ周波数(たとえば、π/Dまたはπ/4)によるデシメーションフィルタを選択し得る。複数の信号(たとえば、第1のオーディオ信号130および第2のオーディオ信号132)をデエンファシス処理することによってエイリアシングを低減する場合は、複数の信号にデシメーションフィルタを適用する場合よりも計算コストが少なくなり得る。
第1のサンプル620は、サンプル622、サンプル624、サンプル626、サンプル628、サンプル630、サンプル632、サンプル634、サンプル636、1つもしくは複数の追加のサンプル、またはそれらの組合せを含み得る。第1のサンプル620は、図3の第1のサンプル320のサブセット(たとえば、1/8)を含み得る。サンプル622、サンプル624、1つもしくは複数の追加のサンプル、またはそれらの組合せは、フレーム302に対応し得る。サンプル626、サンプル628、サンプル630、サンプル632、1つもしくは複数の追加のサンプル、またはそれらの組合せは、フレーム304に対応し得る。サンプル634、サンプル636、1つもしくは複数の追加のサンプル、またはそれらの組合せは、フレーム306に対応し得る。
第2のサンプル650は、サンプル652、サンプル654、サンプル656、サンプル658、サンプル660、サンプル662、サンプル664、サンプル666、1つもしくは複数の追加のサンプル、またはそれらの組合せを含み得る。第2のサンプル650は、図3の第2のサンプル350のサブセット(たとえば、1/8)を含み得る。サンプル654〜660は、サンプル354〜360に対応し得る。たとえば、サンプル654〜660は、サンプル354〜360のサブセット(たとえば、1/8)を含み得る。サンプル656〜662は、サンプル356〜362に対応し得る。たとえば、サンプル656〜662は、サンプル356〜362のサブセット(たとえば、1/8)を含み得る。サンプル658〜664は、サンプル358〜364に対応し得る。たとえば、サンプル658〜664は、サンプル358〜364のサブセット(たとえば、1/8)を含み得る。いくつかの実装形態では、再サンプリング係数は、第1の値(たとえば、1)に対応することができ、この場合、図6のサンプル622〜636およびサンプル652〜666がそれぞれ図3のサンプル322〜336およびサンプル352〜366と同様であり得る。
リサンプラ504は、第1のサンプル620、第2のサンプル650、または両方をメモリ153に記憶し得る。たとえば、分析データ190は、第1のサンプル620、第2のサンプル650、または両方を含み得る。
図7を参照すると、システムの説明のための例が示され、全体的に700と指定されている。システム700は、図1のシステム100に対応し得る。たとえば、図1のシステム100、第1のデバイス104、または両方は、システム700の1つまたは複数の構成要素を含み得る。
メモリ153は、複数のシフト値760を記憶し得る。シフト値760は、第1のシフト値764(たとえば、-Xmsもしくは-Yサンプルであって、XおよびYが正の実数を含む)、第2のシフト値766(たとえば、+Xmsもしくは+Yサンプルであって、XおよびYが正の実数を含む)、または両方を含み得る。シフト値760は、下位シフト値(たとえば、最小シフト値、T_MIN)から上位シフト値(たとえば、最大シフト値、T_MAX)まで及び得る。シフト値760は、第1のオーディオ信号130と第2のオーディオ信号132との間の予想時間的シフト(たとえば、最大予想時間的シフト)を示し得る。
動作中、信号比較器506は、第1のサンプル620と第2のサンプル650に適用されるシフト値760とに基づいて、比較値534を決定し得る。たとえば、サンプル626〜632は、第1の時間(t)に対応し得る。例示すると、図1の入力インターフェース112は、およそ第1の時間(t)に、フレーム304に対応するサンプル626〜632を受信し得る。第1のシフト値764(たとえば、-Xmsまたは-Yサンプルであって、XおよびYが正の実数を含む)は、第2の時間(t-1)に対応し得る。
サンプル654〜660は、第2の時間(t-1)に対応し得る。たとえば、入力インターフェース112は、およそ第2の時間(t-1)にサンプル654〜660を受信し得る。信号比較器506は、サンプル626〜632およびサンプル654〜660に基づいて、第1のシフト値764に対応する第1の比較値714(たとえば、差値または相互相関値)を決定し得る。たとえば、第1の比較値714は、サンプル626〜632およびサンプル654〜660の相互相関の絶対値に対応し得る。別の例として、第1の比較値714は、サンプル626〜632とサンプル654〜660との間の差を示し得る。
第2のシフト値766(たとえば、+Xmsまたは+Yサンプルであって、XおよびYが正の実数を含む)は、第3の時間(t+1)に対応し得る。サンプル658〜664は、第3の時間(t+1)に対応し得る。たとえば、入力インターフェース112は、およそ第3の時間(t+1)にサンプル658〜664を受信し得る。信号比較器506は、サンプル626〜632およびサンプル658〜664に基づいて、第2のシフト値766に対応する第2の比較値716(たとえば、差値または相互相関値)を決定し得る。たとえば、第2の比較値716は、サンプル626〜632およびサンプル658〜664の相互相関の絶対値に対応し得る。別の例として、第2の比較値716は、サンプル626〜632とサンプル658〜664との間の差を示し得る。信号比較器506は、比較値534をメモリ153に記憶し得る。たとえば、分析データ190は比較値534を含み得る。
信号比較器506は、比較値534の他の値よりも高い(または低い)値を有する、比較値534の被選択比較値736を識別し得る。たとえば、信号比較器506は、第2の比較値716が第1の比較値714以上であるとの判断に応答して、被選択比較値736として第2の比較値716を選択し得る。いくつかの実装形態では、比較値534は相互相関値に対応し得る。信号比較器506は、第2の比較値716が第1の比較値714よりも大きいとの判断に応答して、サンプル626〜632がサンプル654〜660との場合よりも高い相関をサンプル658〜664との間で有すると判断し得る。信号比較器506は、被選択比較値736として、より高い相関を示す第2の比較値716を選択し得る。他の実装形態では、比較値534は差値に対応し得る。信号比較器506は、第2の比較値716が第1の比較値714よりも低いとの判断に応答して、サンプル626〜632がサンプル654〜660との場合よりも大きい類似性(たとえば、小さい差)をサンプル658〜664との間で有すると判断し得る。信号比較器506は、被選択比較値736として、より小さい差を示す第2の比較値716を選択し得る。
被選択比較値736は、比較値534の他の値よりも高い相関(または、小さい差)を示し得る。信号比較器506は、被選択比較値736に対応するシフト値760の暫定的シフト値536を識別し得る。たとえば、信号比較器506は、第2のシフト値766が被選択比較値736(たとえば、第2の比較値716)に対応するとの判断に応答して、暫定的シフト値536として第2のシフト値766を識別し得る。
信号比較器506は、以下の式に基づいて被選択比較値736を決定し得る。
上式で、maxXCorrは被選択比較値736に対応し、kはシフト値に対応する。w(n)*l'は、デエンファシス処理され、再サンプリングされ、ウィンドウ化された第1のオーディオ信号130に対応し、w(n)*r'は、デエンファシス処理され、再サンプリングされ、ウィンドウ化された第2のオーディオ信号132に対応する。たとえば、w(n)*l'はサンプル626〜632に対応することができ、w(n-1)*r'はサンプル654〜660に対応することができ、w(n)*r'はサンプル656〜662に対応することができ、w(n+1)*r'はサンプル658〜664に対応することができる。-Kは、シフト値760の下位シフト値(たとえば、最小シフト値)に対応することができ、Kは、シフト値760の上位シフト値(たとえば、最大シフト値)に対応することができる。式5において、第1のオーディオ信号130が右(r)チャネル信号に対応するか、それとも左(l)チャネル信号に対応するかとは無関係に、w(n)*l'は第1のオーディオ信号130に対応する。式5において、第2のオーディオ信号132が右(r)チャネル信号に対応するか、それとも左(l)チャネル信号に対応するかとは無関係に、w(n)*r'は第2のオーディオ信号132に対応する。
信号比較器506は、以下の式に基づいて暫定的シフト値536を決定し得る。
上式で、Tは暫定的シフト値536に対応する。
信号比較器506は、図6の再サンプリング係数(D)に基づいて、再サンプリングされたサンプルから元のサンプルに暫定的シフト値536をマッピングし得る。たとえば、信号比較器506は、再サンプリング係数(D)に基づいて暫定的シフト値536を更新し得る。例示すると、信号比較器506は暫定的シフト値536を、暫定的シフト値536(たとえば、3)と再サンプリング係数(D)(たとえば、4)との積(たとえば、12)に設定し得る。
図8を参照すると、システムの説明のための例が示され、全体的に800と指定されている。システム800は、図1のシステム100に対応し得る。たとえば、図1のシステム100、第1のデバイス104、または両方は、システム800の1つまたは複数の構成要素を含み得る。メモリ153は、シフト値860を記憶するように構成され得る。シフト値860は、第1のシフト値864、第2のシフト値866、または両方を含み得る。
動作中、補間器510は、本明細書で説明するように、暫定的シフト値536(たとえば、12)に最も近いシフト値860を生成し得る。マッピングされたシフト値は、再サンプリング係数(D)に基づいて、再サンプリングされたサンプルから元のサンプルにマッピングされたシフト値760に対応し得る。たとえば、マッピングされたシフト値のうちの第1のマッピングされたシフト値は、第1のシフト値764と再サンプリング係数(D)との積に対応し得る。マッピングされたシフト値のうちの第1のマッピングされたシフト値とマッピングされたシフト値のうちの各第2のマッピングされたシフト値との間の差は、しきい値(たとえば、4などの再サンプリング係数(D))以上であり得る。シフト値860は、シフト値760よりも細かい細分性を有し得る。たとえば、シフト値860の下位値(たとえば、最小値)と暫定的シフト値536との間の差は、しきい値(たとえば、4)未満であり得る。しきい値は、図6の再サンプリング係数(D)に対応し得る。シフト値860は、第1の値(たとえば、暫定的シフト値536-(しきい値-1))から第2の値(たとえば、暫定的シフト値536+(しきい値-1))まで及び得る。
補間器510は、本明細書で説明するように、比較値534に対して補間を実行することによって、シフト値860に対応する補間済み比較値816を生成し得る。シフト値860のうちの1つまたは複数に対応する比較値は、比較値534のより粗い細分性のせいで、比較値534から除外され得る。補間済み比較値816を使用することで、シフト値860のうちの1つまたは複数に対応する補間済み比較値を探索して、暫定的シフト値536に最も近い特定のシフト値に対応する補間済み比較値が図7の第2の比較値716よりも高い相関(または小さい差)を示すかどうかを判断することが可能になり得る。
図8は、補間済み比較値816および比較値534(たとえば、相互相関値)の例を示すグラフ820を含む。補間器510は、ハニングウィンドウ化されたsinc補間、IIRフィルタベースの補間、スプライン補間、別の形態の信号補間、またはそれらの組合せに基づいて、補間を実行し得る。たとえば、補間器510は、以下の式に基づいて、ハニングウィンドウ化されたsinc補間を実行し得る。
上式で、
であり、bはウィンドウ化されたsinc関数に対応し、
は暫定的シフト値536に対応する。
は、比較値534のうちの特定の比較値に対応し得る。たとえば、
は、iが4に対応するときに、第1のシフト値(たとえば、8)に対応する比較値534のうちの第1の比較値を示し得る。
は、iが0に対応するときに、暫定的シフト値536(たとえば、12)に対応する第2の比較値716を示し得る。
は、iが-4に対応するときに、第3のシフト値(たとえば、16)に対応する比較値534のうちの第3の比較値を示し得る。
R(k)32kHzは、補間済み比較値816の特定の補間済み値に対応し得る。補間済み比較値816の各補間済み値は、ウィンドウ化されたsinc関数(b)と第1の比較値、第2の比較値716および第3の比較値の各々との積の和に対応し得る。たとえば、補間器510は、ウィンドウ化されたsinc関数(b)と第1の比較値との第1の積、ウィンドウ化されたsinc関数(b)と第2の比較値716との第2の積、およびウィンドウ化されたsinc関数(b)と第3の比較値との第3の積を決定し得る。補間器510は、第1の積、第2の積、および第3の積の和に基づいて、特定の補間済み値を決定し得る。補間済み比較値816の第1の補間済み値は、第1のシフト値(たとえば、9)に対応し得る。ウィンドウ化されたsinc関数(b)は、第1のシフト値に対応する第1の値を有し得る。補間済み比較値816の第2の補間済み値は、第2のシフト値(たとえば、10)に対応し得る。ウィンドウ化されたsinc関数(b)は、第2のシフト値に対応する第2の値を有し得る。ウィンドウ化されたsinc関数(b)の第1の値は、第2の値とは別個のものであり得る。したがって、第1の補間済み値は、第2の補間済み値とは別個のものであり得る。
式7では、8kHzは、比較値534の第1のレートに対応し得る。たとえば、第1のレートは、比較値534に含まれるフレーム(たとえば、図3のフレーム304)に対応する比較値の数(たとえば、8)を示し得る。32kHzは、補間済み比較値816の第2のレートに対応し得る。たとえば、第2のレートは、補間済み比較値816に含まれるフレーム(たとえば、図3のフレーム304)に対応する補間済み比較値の数(たとえば、32)を示し得る。
補間器510は、補間済み比較値816のうちの補間済み比較値838(たとえば、最大値または最小値)を選択し得る。補間器510は、補間済み比較値838に対応するシフト値860のうちのシフト値(たとえば、14)を選択し得る。補間器510は、被選択シフト値(たとえば、第2のシフト値866)を示す補間済みシフト値538を生成し得る。
暫定的シフト値536を決定するために粗い手法を使用し、補間済みシフト値538を決定するために暫定的シフト値536の辺りを探索することで、探索の効率性または正確性を損なうことなく、探索の複雑性を低減することができる。
図9Aを参照すると、システムの説明のための例が示され、全体的に900と指定されている。システム900は、図1のシステム100に対応し得る。たとえば、図1のシステム100、第1のデバイス104、または両方は、システム900の1つまたは複数の構成要素を含み得る。システム900は、メモリ153、シフトリファイナ911、または両方を含み得る。メモリ153は、フレーム302に対応する第1のシフト値962を記憶するように構成され得る。たとえば、分析データ190は第1のシフト値962を含み得る。第1のシフト値962は、フレーム302に関連する暫定的シフト値、補間済みシフト値、補正済みシフト値、最終シフト値、または非因果的シフト値に対応し得る。フレーム302は、第1のオーディオ信号130においてフレーム304に先行し得る。シフトリファイナ911は、図1のシフトリファイナ511に対応し得る。
図9Aはまた、全体的に920と指定された例示的な動作方法のフローチャートを含む。方法920は、図1の時間的等化器108、エンコーダ114、第1のデバイス104、図2の時間的等化器208、エンコーダ214、第1のデバイス204、図5のシフトリファイナ511、シフトリファイナ911、またはそれらの組合せによって実行され得る。
方法920は、901において、第1のシフト値962と補間済みシフト値538との間の差の絶対値が第1のしきい値よりも大きいかどうかを判断するステップを含む。たとえば、シフトリファイナ911は、第1のシフト値962と補間済みシフト値538との間の差の絶対値が第1のしきい値(たとえば、シフト変化しきい値)よりも大きいかどうかを判断し得る。
方法920はまた、901における、絶対値が第1のしきい値以下であるとの判断に応答して、902において、補間済みシフト値538を示すように補正済みシフト値540を設定するステップを含む。たとえば、シフトリファイナ911は、絶対値がシフト変化しきい値以下であるとの判断に応答して、補間済みシフト値538を示すように補正済みシフト値540を設定し得る。いくつかの実装形態では、シフト変化しきい値は、第1のシフト値962が補間済みシフト値538に等しいときに、補正済みシフト値540が補間済みシフト値538に設定されるべきであることを示す第1の値(たとえば、0)を有し得る。代替実装形態では、自由度がより大きく、シフト変化しきい値は、902において、補正済みシフト値540が補間済みシフト値538に設定されるべきであることを示す第2の値(たとえば、≧1)を有し得る。たとえば、第1のシフト値962と補間済みシフト値538との間の差のある範囲で、補正済みシフト値540は補間済みシフト値538に設定され得る。例示すると、補正済みシフト値540は、第1のシフト値962と補間済みシフト値538との間の差(たとえば、-2、-1、0、1、2)の絶対値がシフト変化しきい値(たとえば、2)以下であるときに、補間済みシフト値538に設定され得る。
方法920は、901における、絶対値が第1のしきい値よりも大きいとの判断に応答して、904において、第1のシフト値962が補間済みシフト値538よりも大きいかどうかを判断するステップをさらに含む。たとえば、シフトリファイナ911は、絶対値がシフト変化しきい値よりも大きいとの判断に応答して、第1のシフト値962が補間済みシフト値538よりも大きいかどうかを判断し得る。
方法920はまた、904における、第1のシフト値962が補間済みシフト値538よりも大きいとの判断に応答して、906において、下位シフト値930を、第1のシフト値962と第2のしきい値との間の差に設定し、上位シフト値932を第1のシフト値962に設定するステップを含む。たとえば、シフトリファイナ911は、第1のシフト値962(たとえば、20)が補間済みシフト値538(たとえば、14)よりも大きいとの判断に応答して、下位シフト値930(たとえば、17)を、第1のシフト値962(たとえば、20)と第2のしきい値(たとえば、3)との間の差に設定し得る。追加または代替として、シフトリファイナ911は、第1のシフト値962が補間済みシフト値538よりも大きいとの判断に応答して、上位シフト値932(たとえば、20)を第1のシフト値962に設定し得る。第2のしきい値は、第1のシフト値962と補間済みシフト値538との間の差に基づき得る。いくつかの実装形態では、下位シフト値930は、補間済みシフト値538としきい値(たとえば、第2のしきい値)との間の差に設定され得、上位シフト値932は、第1のシフト値962としきい値(たとえば、第2のしきい値)との間の差に設定され得る。
方法920は、904における、第1のシフト値962が補間済みシフト値538以下であるとの判断に応答して、910において、下位シフト値930を第1のシフト値962に設定し、上位シフト値932を、第1のシフト値962と第3のしきい値との和に設定するステップをさらに含む。たとえば、シフトリファイナ911は、第1のシフト値962(たとえば、10)が補間済みシフト値538(たとえば、14)以下であるとの判断に応答して、下位シフト値930を第1のシフト値962(たとえば、10)に設定し得る。追加または代替として、シフトリファイナ911は、第1のシフト値962が補間済みシフト値538以下であるとの判断に応答して、上位シフト値932(たとえば、13)を、第1のシフト値962(たとえば、10)と第3のしきい値(たとえば、3)との和に設定し得る。第3のしきい値は、第1のシフト値962と補間済みシフト値538との間の差に基づき得る。いくつかの実装形態では、下位シフト値930は、第1のシフト値962としきい値(たとえば、第3のしきい値)との間の差に設定され得、上位シフト値932は、補間済みシフト値538としきい値(たとえば、第3のしきい値)との間の差に設定され得る。
方法920はまた、908において、第1のオーディオ信号130と第2のオーディオ信号132に適用されるシフト値960とに基づいて、比較値916を決定するステップを含む。たとえば、シフトリファイナ911(または信号比較器506)は、第1のオーディオ信号130と第2のオーディオ信号132に適用されるシフト値960とに基づいて、図7を参照して説明したように、比較値916を生成し得る。例示すると、シフト値960は、下位シフト値930(たとえば、17)から上位シフト値932(たとえば、20)まで及び得る。シフトリファイナ911(または信号比較器506)は、サンプル326〜332と第2のサンプル350の特定のサブセットとに基づいて、比較値916のうちの特定の比較値を生成し得る。第2のサンプル350の特定のサブセットは、シフト値960のうちの特定のシフト値(たとえば、17)に対応し得る。特定の比較値は、サンプル326〜332と第2のサンプル350の特定のサブセットとの間の差(または相関)を示し得る。
方法920は、912において、第1のオーディオ信号130および第2のオーディオ信号132に基づいて生成された比較値916に基づいて、補正済みシフト値540を決定するステップをさらに含む。たとえば、シフトリファイナ911は、比較値916に基づいて補正済みシフト値540を決定し得る。例示すると、第1のケースでは、比較値916が相互相関値に対応するときに、シフトリファイナ911は、補間済みシフト値538に対応する図8の補間済み比較値838が比較値916のうちの最高比較値以上であると判断し得る。代替的に、比較値916が差値に対応するときに、シフトリファイナ911は、補間済み比較値838が比較値916のうちの最低比較値以下であると判断し得る。この場合、シフトリファイナ911は、第1のシフト値962(たとえば、20)が補間済みシフト値538(たとえば、14)よりも大きいとの判断に応答して、補正済みシフト値540を下位シフト値930(たとえば、17)に設定し得る。代替的に、シフトリファイナ911は、第1のシフト値962(たとえば、10)が補間済みシフト値538(たとえば、14)以下であるとの判断に応答して、補正済みシフト値540を上位シフト値932(たとえば、13)に設定し得る。
第2のケースでは、比較値916が相互相関値に対応するときに、シフトリファイナ911は、補間済み比較値838が比較値916のうちの最高比較値未満であると判断することができ、補正済みシフト値540を、最高比較値に対応するシフト値960のうちの特定のシフト値(たとえば、18)に設定することができる。代替的に、比較値916が差値に対応するときに、シフトリファイナ911は、補間済み比較値838が比較値916のうちの最低比較値よりも大きいと判断することができ、補正済みシフト値540を、最低比較値に対応するシフト値960のうちの特定のシフト値(たとえば、18)に設定することができる。
比較値916は、第1のオーディオ信号130、第2のオーディオ信号132、およびシフト値960に基づいて生成し得る。補正済みシフト値540は、図7を参照して説明したように、信号比較器506によって実行されるのと同様の手順を使用して、比較値916に基づいて生成され得る。
したがって、方法920は、シフトリファイナ911が、連続(または隣接)フレームに関連するシフト値の変化を制限することを可能にし得る。シフト値の変化が減ると、符号化中のサンプル紛失またはサンプル複製が減少し得る。
図9Bを参照すると、システムの説明のための例が示され、全体的に950と指定されている。システム950は、図1のシステム100に対応し得る。たとえば、図1のシステム100、第1のデバイス104、または両方は、システム950の1つまたは複数の構成要素を含み得る。システム950は、メモリ153、シフトリファイナ511、または両方を含み得る。シフトリファイナ511は、補間済みシフト調整器958を含み得る。補間済みシフト調整器958は、本明細書で説明するように、第1のシフト値962に基づいて、補間済みシフト値538を選択的に調整するように構成され得る。シフトリファイナ511は、図9A、図9Cを参照して説明しているように、補間済みシフト値538(たとえば、調整された補間済みシフト値538)に基づいて補正済みシフト値540を決定し得る。
図9Bはまた、全体的に951と指定された例示的な動作方法のフローチャートを含む。方法951は、図1の時間的等化器108、エンコーダ114、第1のデバイス104、図2の時間的等化器208、エンコーダ214、第1のデバイス204、図5のシフトリファイナ511、図9Aのシフトリファイナ911、補間済みシフト調整器958、またはそれらの組合せによって実行され得る。
方法951は、952において、第1のシフト値962と無制限補間済みシフト値956との間の差に基づいて、オフセット957を生成するステップを含む。たとえば、補間済みシフト調整器958は、第1のシフト値962と無制限補間済みシフト値956との間の差に基づいて、オフセット957を生成し得る。無制限補間済みシフト値956は、(たとえば、補間済みシフト調整器958による調整の前の)補間済みシフト値538に対応し得る。補間済みシフト調整器958は、無制限補間済みシフト値956をメモリ153に記憶し得る。たとえば、分析データ190は無制限補間済みシフト値956を含み得る。
方法951はまた、953において、オフセット957の絶対値がしきい値よりも大きいかどうかを判断するステップを含む。たとえば、補間済みシフト調整器958は、オフセット957の絶対値がしきい値を満たすかどうかを判断し得る。しきい値は、補間済みシフト制限MAX_SHIFT_CHANGE(たとえば、4)に対応し得る。
方法951は、953における、オフセット957の絶対値がしきい値よりも大きいとの判断に応答して、954において、第1のシフト値962、オフセット957の符号、およびしきい値に基づいて、補間済みシフト値538を設定するステップを含む。たとえば、補間済みシフト調整器958は、オフセット957の絶対値がしきい値を満たさない(たとえば、しきい値よりも大きい)との判断に応答して、補間済みシフト値538を制限し得る。例示すると、補間済みシフト調整器958は、第1のシフト値962、オフセット957の符号(たとえば、+1または-1)、およびしきい値に基づいて、補間済みシフト値538を調整し得る(たとえば、補間済みシフト値538=第1のシフト値962+sign(オフセット957)*しきい値)。
方法951は、953における、オフセット957の絶対値がしきい値以下であるとの判断に応答して、955において、補間済みシフト値538を無制限補間済みシフト値956に設定するステップを含む。たとえば、補間済みシフト調整器958は、オフセット957の絶対値がしきい値を満たす(たとえば、しきい値以下である)との判断に応答して、補間済みシフト値538を変えるのを控え得る。
したがって、方法951は、第1のシフト値962に対する補間済みシフト値538の変化が補間シフト制限を満たすように、補間済みシフト値538を制限することを可能にし得る。
図9Cを参照すると、システムの説明のための例が示され、全体的に970と指定されている。システム970は、図1のシステム100に対応し得る。たとえば、図1のシステム100、第1のデバイス104、または両方は、システム970の1つまたは複数の構成要素を含み得る。システム970は、メモリ153、シフトリファイナ921、または両方を含み得る。シフトリファイナ921は、図5のシフトリファイナ511に対応し得る。
図9Cはまた、全体的に971と指定された例示的な動作方法のフローチャートを含む。方法971は、図1の時間的等化器108、エンコーダ114、第1のデバイス104、図2の時間的等化器208、エンコーダ214、第1のデバイス204、図5のシフトリファイナ511、図9Aのシフトリファイナ911、シフトリファイナ921、またはそれらの組合せによって実行され得る。
方法971は、972において、第1のシフト値962と補間済みシフト値538との間の差が非0であるかどうかを判断するステップを含む。たとえば、シフトリファイナ921は、第1のシフト値962と補間済みシフト値538との間の差が非0であるかどうかを判断し得る。
方法971は、972における、第1のシフト値962と補間済みシフト値538との間の差が0であるとの判断に応答して、973において、補正済みシフト値540を補間済みシフト値538に設定するステップを含む。たとえば、シフトリファイナ921は、第1のシフト値962と補間済みシフト値538との間の差が0であるとの判断に応答して、補間済みシフト値538に基づいて補正済みシフト値540を決定し得る(たとえば、補正済みシフト値540=補間済みシフト値538)。
方法971は、972における、第1のシフト値962と補間済みシフト値538との間の差が非0であるとの判断に応答して、975において、オフセット957の絶対値がしきい値よりも大きいかどうかを判断するステップを含む。たとえば、シフトリファイナ921は、第1のシフト値962と補間済みシフト値538との間の差が非0であるとの判断に応答して、オフセット957の絶対値がしきい値よりも大きいかどうかを判断し得る。オフセット957は、図9Bを参照して説明したように、第1のシフト値962と無制限補間済みシフト値956との間の差に対応し得る。しきい値は、補間済みシフト制限MAX_SHIFT_CHANGE(たとえば、4)に対応し得る。
方法971は、972における、第1のシフト値962と補間済みシフト値538との間の差が非0であるとの判断、または975における、オフセット957の絶対値がしきい値以下であるとの判断に応答して、976において、下位シフト値930を、第1のしきい値と第1のシフト値962および補間済みシフト値538のうちの最小値との間の差に設定し、上位シフト値932を、第2のしきい値と第1のシフト値962および補間済みシフト値538のうちの最大値との和に設定するステップを含む。たとえば、シフトリファイナ921は、オフセット957の絶対値がしきい値以下であるとの判断に応答して、第1のしきい値と第1のシフト値962および補間済みシフト値538のうちの最小値との間の差に基づいて、下位シフト値930を決定し得る。シフトリファイナ921はまた、第2のしきい値と第1のシフト値962および補間済みシフト値538のうちの最大値との和に基づいて、上位シフト値932を決定し得る。
方法971はまた、977において、第1のオーディオ信号130と第2のオーディオ信号132に適用されるシフト値960とに基づいて、比較値916を生成するステップを含む。たとえば、シフトリファイナ921(または信号比較器506)は、第1のオーディオ信号130と第2のオーディオ信号132に適用されるシフト値960とに基づいて、図7を参照して説明したように、比較値916を生成し得る。シフト値960は、下位シフト値930から上位シフト値932まで及び得る。方法971は979に進み得る。
方法971は、975における、オフセット957の絶対値がしきい値よりも大きいとの判断に応答して、978において、第1のオーディオ信号130と第2のオーディオ信号132に適用される無制限補間済みシフト値956とに基づいて、比較値915を生成するステップを含む。たとえば、シフトリファイナ921(または信号比較器506)は、第1のオーディオ信号130と第2のオーディオ信号132に適用される無制限補間済みシフト値956とに基づいて、図7を参照して説明したように、比較値915を生成し得る。
方法971はまた、979において、比較値916、比較値915、またはそれらの組合せに基づいて、補正済みシフト値540を決定するステップを含む。たとえば、シフトリファイナ921は、図9Aを参照して説明したように、比較値916、比較値915、またはそれらの組合せに基づいて、補正済みシフト値540を決定し得る。いくつかの実装形態では、シフトリファイナ921は、シフト変動に起因する極大値を回避するために、比較値915と比較値916との比較に基づいて、補正済みシフト値540を決定し得る。
いくつかの場合には、第1のオーディオ信号130、第1の再サンプリングされた信号530、第2のオーディオ信号132、第2の再サンプリングされた信号532、またはそれらの組合せの固有のピッチが、シフト推定プロセスに干渉し得る。そのような場合、ピッチに起因する干渉を低減するために、また複数のチャネル間のシフト推定の信頼性を改善するために、ピッチデエンファシスまたはピッチフィルタ処理が実行され得る。いくつかの場合には、シフト推定プロセスに干渉し得る背景雑音が、第1のオーディオ信号130、第1の再サンプリングされた信号530、第2のオーディオ信号132、第2の再サンプリングされた信号532、またはそれらの組合せの中に存在し得る。そのような場合、複数のチャネル間のシフト推定の信頼性を改善するために、雑音抑圧または雑音消去が使用され得る。
図10Aを参照すると、システムの説明のための例が示され、全体的に1000と指定されている。システム1000は、図1のシステム100に対応し得る。たとえば、図1のシステム100、第1のデバイス104、または両方は、システム1000の1つまたは複数の構成要素を含み得る。
図10Aはまた、全体的に1020と指定された例示的な動作方法のフローチャートを含む。方法1020は、シフト変化分析器512、時間的等化器108、エンコーダ114、第1のデバイス104、またはそれらの組合せによって実行され得る。
方法1020は、1001において、第1のシフト値962が0に等しいかどうかを判断するステップを含む。たとえば、シフト変化分析器512は、フレーム302に対応する第1のシフト値962が、時間シフトなしを示す第1の値(たとえば、0)を有するかどうかを判断し得る。方法1020は、1001における、第1のシフト値962が0に等しいとの判断に応答して、1010に進むステップを含む。
方法1020は、1001における、第1のシフト値962が非0であるとの判断に応答して、1002において、第1のシフト値962が0よりも大きいかどうかを判断するステップを含む。たとえば、シフト変化分析器512は、フレーム302に対応する第1のシフト値962が、第2のオーディオ信号132が第1のオーディオ信号130に対して時間的に遅延していることを示す第1の値(たとえば、正の値)を有するかどうかを判断し得る。
方法1020は、1002における、第1のシフト値962が0よりも大きいとの判断に応答して、1004において、補正済みシフト値540が0未満であるかどうかを判断するステップを含む。たとえば、シフト変化分析器512は、第1のシフト値962が第1の値(たとえば、正の値)を有するとの判断に応答して、補正済みシフト値540が、第1のオーディオ信号130が第2のオーディオ信号132に対して時間的に遅延していることを示す第2の値(たとえば、負の値)を有するかどうかを判断し得る。方法1020は、1004における、補正済みシフト値540が0未満であるとの判断に応答して、1008に進むステップを含む。方法1020は、1004における、補正済みシフト値540が0以上であるとの判断に応答して、1010に進むステップを含む。
方法1020は、1002における、第1のシフト値962が0未満であるとの判断に応答して、1006において、補正済みシフト値540が0よりも大きいかどうかを判断するステップを含む。たとえば、シフト変化分析器512は、第1のシフト値962が第2の値(たとえば、負の値)を有するとの判断に応答して、補正済みシフト値540が、第2のオーディオ信号132が第1のオーディオ信号130に対して時間的に遅延していることを示す第1の値(たとえば、正の値)を有するかどうかを判断し得る。方法1020は、1006における、補正済みシフト値540が0よりも大きいとの判断に応答して、1008に進むステップを含む。方法1020は、1006における、補正済みシフト値540が0以下であるとの判断に応答して、1010に進むステップを含む。
方法1020は、1008において、最終シフト値116を0に設定するステップを含む。たとえば、シフト変化分析器512は、最終シフト値116を、時間シフトなしを示す特定の値(たとえば、0)に設定し得る。最終シフト値116は、フレーム302を生成した後の期間中に先行信号および遅行信号が切り替わったとの判断に応答して、特定の値(たとえば、0)に設定され得る。たとえば、フレーム302は、第1のオーディオ信号130が先行信号であり、第2のオーディオ信号132が遅行信号であることを示す第1のシフト値962に基づいて符号化され得る。補正済みシフト値540は、第1のオーディオ信号130が遅行信号であり、第2のオーディオ信号132が先行信号であることを示し得る。シフト変化分析器512は、第1のシフト値962によって示される先行信号が補正済みシフト値540によって示される先行信号とは別個のものであるとの判断に応答して、最終シフト値116を特定の値に設定し得る。
方法1020は、1010において、第1のシフト値962が補正済みシフト値540に等しいかどうかを判断するステップを含む。たとえば、シフト変化分析器512は、第1のシフト値962および補正済みシフト値540が、第1のオーディオ信号130と第2のオーディオ信号132との間の同じ時間遅延を示すかどうかを判断し得る。
方法1020は、1010における、第1のシフト値962が補正済みシフト値540に等しいとの判断に応答して、1012において、最終シフト値116を補正済みシフト値540に設定するステップを含む。たとえば、シフト変化分析器512は、最終シフト値116を補正済みシフト値540に設定し得る。
方法1020は、1010における、第1のシフト値962が補正済みシフト値540に等しくないとの判断に応答して、1014において、推定シフト値1072を生成するステップを含む。たとえば、シフト変化分析器512は、図11を参照してさらに説明するように、補正済みシフト値540を精緻化することによって推定シフト値1072を決定し得る。
方法1020は、1016において、最終シフト値116を推定シフト値1072に設定するステップを含む。たとえば、シフト変化分析器512は、最終シフト値116を推定シフト値1072に設定し得る。
いくつかの実装形態では、シフト変化分析器512は、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延が切り替わっていないとの判断に応答して、第2の推定シフト値を示すように非因果的シフト値162を設定し得る。たとえば、シフト変化分析器512は、1001における、第1のシフト値962が0に等しいとの判断、1004における、補正済みシフト値540が0以上であるとの判断、または1006における、補正済みシフト値540が0以下であるとの判断に応答して、補正済みシフト値540を示すように非因果的シフト値162を設定し得る。
したがって、シフト変化分析器512は、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延が図3のフレーム302とフレーム304との間で切り替わったとの判断に応答して、時間シフトなしを示すように非因果的シフト値162を設定し得る。非因果的シフト値162が連続フレーム間で方向を(たとえば、正から負または負から正に)切り替えるのを防ぐことで、エンコーダ114におけるダウンミックス信号生成におけるひずみを減らすこと、デコーダにおけるアップミックス合成のための追加の遅延の使用を回避すること、または両方ができる。
図10Bを参照すると、システムの説明のための例が示され、全体的に1030と指定されている。システム1030は、図1のシステム100に対応し得る。たとえば、図1のシステム100、第1のデバイス104、または両方は、システム1030の1つまたは複数の構成要素を含み得る。
図10Bはまた、全体的に1031と指定された例示的な動作方法のフローチャートを含む。方法1031は、シフト変化分析器512、時間的等化器108、エンコーダ114、第1のデバイス104、またはそれらの組合せによって実行され得る。
方法1031は、1032において、第1のシフト値962が0よりも大きく、補正済みシフト値540が0未満であるかどうかを判断するステップを含む。たとえば、シフト変化分析器512は、第1のシフト値962が0よりも大きいかどうか、また補正済みシフト値540が0未満であるかどうかを判断し得る。
方法1031は、1032における、第1のシフト値962が0よりも大きいとの判断、および補正済みシフト値540が0未満であるとの判断に応答して、1033において、最終シフト値116を0に設定するステップを含む。たとえば、シフト変化分析器512は、第1のシフト値962が0よりも大きいとの判断、および補正済みシフト値540が0未満であるとの判断に応答して、最終シフト値116を、時間シフトなしを示す第1の値(たとえば、0)に設定し得る。
方法1031は、1032における、第1のシフト値962が0以下であるとの判断、または補正済みシフト値540が0以上であるとの判断に応答して、1034において、第1のシフト値962が0未満であるかどうか、また補正済みシフト値540が0よりも大きいかどうかを判断するステップを含む。たとえば、シフト変化分析器512は、第1のシフト値962が0以下であるとの判断、または補正済みシフト値540が0以上であるとの判断に応答して、第1のシフト値962が0未満であるかどうか、また補正済みシフト値540が0よりも大きいかどうかを判断し得る。
方法1031は、第1のシフト値962が0未満であるとの判断、および補正済みシフト値540が0よりも大きいとの判断に応答して、1033に進むステップを含む。方法1031は、第1のシフト値962が0以上であるとの判断、または補正済みシフト値540が0以下であるとの判断に応答して、1035において、最終シフト値116を補正済みシフト値540に設定するステップを含む。たとえば、シフト変化分析器512は、第1のシフト値962が0以上であるとの判断、または補正済みシフト値540が0以下であるとの判断に応答して、最終シフト値116を補正済みシフト値540に設定し得る。
図11を参照すると、システムの説明のための例が示され、全体的に1100と指定されている。システム1100は、図1のシステム100に対応し得る。たとえば、図1のシステム100、第1のデバイス104、または両方は、システム1100の1つまたは複数の構成要素を含み得る。図11はまた、全体的に1120と指定されている動作方法を示すフローチャートを含む。方法1120は、シフト変化分析器512、時間的等化器108、エンコーダ114、第1のデバイス104、またはそれらの組合せによって実行され得る。方法1120は、図10Aのステップ1014に対応し得る。
方法1120は、1104において、第1のシフト値962が補正済みシフト値540よりも大きいかどうかを判断するステップを含む。たとえば、シフト変化分析器512は、第1のシフト値962が補正済みシフト値540よりも大きいかどうかを判断し得る。
方法1120は、1104における、第1のシフト値962が補正済みシフト値540よりも大きいとの判断に応答して、1106において、第1のシフト値1130を、補正済みシフト値540と第1のオフセットとの間の差に設定し、第2のシフト値1132を、第1のシフト値962と第1のオフセットとの和に設定するステップを含む。たとえば、シフト変化分析器512は、第1のシフト値962(たとえば、20)が補正済みシフト値540(たとえば、18)よりも大きいとの判断に応答して、補正済みシフト値540に基づいて第1のシフト値1130(たとえば、17)を決定し得る(たとえば、補正済みシフト値540-第1のオフセット)。代替的に、または追加として、シフト変化分析器512は、第1のシフト値962に基づいて第2のシフト値1132(たとえば、21)を決定し得る(たとえば、第1のシフト値962+第1のオフセット)。方法1120は1108に進み得る。
方法1120は、1104における、第1のシフト値962が補正済みシフト値540以下であるとの判断に応答して、第1のシフト値1130を、第1のシフト値962と第2のオフセットとの間の差に設定し、第2のシフト値1132を、補正済みシフト値540と第2のオフセットとの和に設定するステップをさらに含む。たとえば、シフト変化分析器512は、第1のシフト値962(たとえば、10)が補正済みシフト値540(たとえば、12)以下であるとの判断に応答して、第1のシフト値962に基づいて第1のシフト値1130(たとえば、9)を決定し得る(たとえば、第1のシフト値962-第2のオフセット)。代替的に、または追加として、シフト変化分析器512は、補正済みシフト値540に基づいて第2のシフト値1132(たとえば、13)を決定し得る(たとえば、補正済みシフト値540+第2のオフセット)。第1のオフセット(たとえば、2)は第2のオフセット(たとえば、3)とは別個のものであり得る。いくつかの実装形態では、第1のオフセットは第2のオフセットと同じであり得る。第1のオフセット、第2のオフセットのうちの高い方の値、または両方が、探索範囲を改善し得る。
方法1120はまた、1108において、第1のオーディオ信号130と第2のオーディオ信号132に適用されるシフト値1160とに基づいて、比較値1140を生成するステップを含む。たとえば、シフト変化分析器512は、第1のオーディオ信号130と第2のオーディオ信号132に適用されるシフト値1160とに基づいて、図7を参照して説明したように、比較値1140を生成し得る。例示すると、シフト値1160は、第1のシフト値1130(たとえば、17)から第2のシフト値1132(たとえば、21)まで及び得る。シフト変化分析器512は、サンプル326〜332と第2のサンプル350の特定のサブセットとに基づいて、比較値1140のうちの特定の比較値を生成し得る。第2のサンプル350の特定のサブセットは、シフト値1160のうちの特定のシフト値(たとえば、17)に対応し得る。特定の比較値は、サンプル326〜332と第2のサンプル350の特定のサブセットとの間の差(または相関)を示し得る。
方法1120は、1112において、比較値1140に基づいて推定シフト値1072を決定するステップをさらに含む。たとえば、シフト変化分析器512は、比較値1140が相互相関値に対応するときに、比較値1140のうちの最高比較値を推定シフト値1072として選択し得る。代替的に、シフト変化分析器512は、比較値1140が差値に対応するときに、比較値1140のうちの最低比較値を推定シフト値1072として選択し得る。
したがって、方法1120は、シフト変化分析器512が、補正済みシフト値540を精緻化することによって、推定シフト値1072を生成することを可能にし得る。たとえば、シフト変化分析器512は、元のサンプルに基づいて比較値1140を決定することができ、最高の相関(または最小の差)を示す比較値1140のうちの比較値に対応する推定シフト値1072を選択することができる。
図12を参照すると、システムの説明のための例が示され、全体的に1200と指定されている。システム1200は、図1のシステム100に対応し得る。たとえば、図1のシステム100、第1のデバイス104、または両方は、システム1200の1つまたは複数の構成要素を含み得る。図12はまた、全体的に1220と指定されている動作方法を示すフローチャートを含む。方法1220は、基準信号指定器508、時間的等化器108、エンコーダ114、第1のデバイス104、またはそれらの組合せによって実行され得る。
方法1220は、1202において、最終シフト値116が0に等しいかどうかを判断するステップを含む。たとえば、基準信号指定器508は、最終シフト値116が、時間シフトなしを示す特定の値(たとえば、0)を有するかどうかを判断し得る。
方法1220は、1202における、最終シフト値116が0に等しいとの判断に応答して、1204において、基準信号インジケータ164を変えないでおくステップを含む。たとえば、基準信号指定器508は、最終シフト値116が、時間シフトなしを示す特定の値(たとえば、0)を有するとの判断に応答して、基準信号インジケータ164を変えないでおくことができる。例示すると、基準信号インジケータ164は、同じオーディオ信号(たとえば、第1のオーディオ信号130または第2のオーディオ信号132)が、フレーム302の場合と同様にフレーム304に関連する基準信号であることを示し得る。
方法1220は、1202における、最終シフト値116が非0であるとの判断に応答して、1206において、最終シフト値116が0よりも大きいかどうかを判断するステップを含む。たとえば、基準信号指定器508は、最終シフト値116が、時間シフトを示す特定の値(たとえば、非0値)を有するとの判断に応答して、最終シフト値116が、第2のオーディオ信号132が第1のオーディオ信号130に対して遅延していることを示す第1の値(たとえば、正の値)を有するか、それとも第1のオーディオ信号130が第2のオーディオ信号132に対して遅延していることを示す第2の値(たとえば、負の値)を有するかを判断し得る。
方法1220は、最終シフト値116が第1の値(たとえば、正の値)を有するとの判断に応答して、1208において、第1のオーディオ信号130が基準信号であることを示す第1の値(たとえば、0)を有するように基準信号インジケータ164を設定するステップを含む。たとえば、基準信号指定器508は、最終シフト値116が第1の値(たとえば、正の値)を有するとの判断に応答して、第1のオーディオ信号130が基準信号であることを示す第1の値(たとえば、0)に基準信号インジケータ164を設定し得る。基準信号指定器508は、最終シフト値116が第1の値(たとえば、正の値)を有するとの判断に応答して、第2のオーディオ信号132がターゲット信号に対応すると判断し得る。
方法1220は、最終シフト値116が第2の値(たとえば、負の値)を有するとの判断に応答して、1210において、第2のオーディオ信号132が基準信号であることを示す第2の値(たとえば、1)を有するように基準信号インジケータ164を設定するステップを含む。たとえば、基準信号指定器508は、最終シフト値116が、第1のオーディオ信号130が第2のオーディオ信号132に対して遅延していることを示す第2の値(たとえば、負の値)を有するとの判断に応答して、基準信号インジケータ164を、第2のオーディオ信号132が基準信号であることを示す第2の値(たとえば、1)に設定し得る。基準信号指定器508は、最終シフト値116が第2の値(たとえば、負の値)を有するとの判断に応答して、第1のオーディオ信号130がターゲット信号に対応すると判断し得る。
基準信号指定器508は、基準信号インジケータ164を利得パラメータ生成器514に提供し得る。利得パラメータ生成器514は、図5を参照して説明したように、基準信号に基づいてターゲット信号の利得パラメータ(たとえば、利得パラメータ160)を決定し得る。
ターゲット信号が基準信号に対して時間的に遅延することがある。基準信号インジケータ164は、第1のオーディオ信号130が基準信号に対応するか、それとも第2のオーディオ信号132が基準信号に対応するかを示し得る。基準信号インジケータ164は、利得パラメータ160が第1のオーディオ信号130に対応するか、それとも第2のオーディオ信号132に対応するかを示し得る。
図13を参照すると、特定の動作方法を示すフローチャートが示され、全体的に1300と指定されている。方法1300は、基準信号指定器508、時間的等化器108、エンコーダ114、第1のデバイス104、またはそれらの組合せによって実行され得る。
方法1300は、1302において、最終シフト値116が0以上であるかどうかを判断するステップを含む。たとえば、基準信号指定器508は、最終シフト値116が0以上であるかどうかを判断し得る。方法1300はまた、1302における、最終シフト値116が0以上であるとの判断に応答して、1208に進むステップを含む。方法1300は、1302における、最終シフト値116が0未満であるとの判断に応答して、1210に進むステップをさらに含む。最終シフト値116が、時間シフトなしを示す特定の値(たとえば、0)を有するとの判断に応答して、基準信号インジケータ164が、第1のオーディオ信号130が基準信号に対応することを示す第1の値(たとえば、0)に設定されるという点で、方法1300は図12の方法1220とは異なる。いくつかの実装形態では、基準信号指定器508が方法1220を実行し得る。他の実装形態では、基準信号指定器508が方法1300を実行し得る。
したがって、方法1300は、第1のオーディオ信号130がフレーム302に関する基準信号に対応するかどうかとは無関係に、最終シフト値116が時間シフトなしを示すときに、基準信号インジケータ164を、第1のオーディオ信号130が基準信号に対応することを示す特定の値(たとえば、0)に設定することを可能にし得る。
図14を参照すると、システムの説明のための例が示され、全体的に1400と指定されている。システム1400は、図1のシステム100、図2のシステム200、または両方に対応し得る。たとえば、図1のシステム100、第1のデバイス104、図2のシステム200、第1のデバイス204、またはそれらの組合せは、システム1400の1つまたは複数の構成要素を含み得る。第1のデバイス204は、第1のマイクロフォン146、第2のマイクロフォン148、第3のマイクロフォン1446、および第4のマイクロフォン1448に結合される。
動作中、第1のデバイス204は、第1のマイクロフォン146を介して第1のオーディオ信号130、第2のマイクロフォン148を介して第2のオーディオ信号132、第3のマイクロフォン1446を介して第3のオーディオ信号1430、第4のマイクロフォン1448を介して第4のオーディオ信号1432、またはそれらの組合せを受信し得る。音源152は、第1のマイクロフォン146、第2のマイクロフォン148、第3のマイクロフォン1446、または第4のマイクロフォン1448のうちの1つに、残りのマイクロフォンよりも近いことがある。たとえば、音源152は第1のマイクロフォン146に、第2のマイクロフォン148、第3のマイクロフォン1446、および第4のマイクロフォン1448の各々よりも近いことがある。
時間的等化器208は、第1のオーディオ信号130、第2のオーディオ信号132、第3のオーディオ信号1430、または第4のオーディオ信号1432のうちの特定のオーディオ信号の、残りのオーディオ信号の各々に対するシフトを示す、図1を参照して説明したような最終シフト値を決定し得る。たとえば、時間的等化器208は、第1のオーディオ信号130に対する第2のオーディオ信号132のシフトを示す最終シフト値116、第1のオーディオ信号130に対する第3のオーディオ信号1430のシフトを示す第2の最終シフト値1416、第1のオーディオ信号130に対する第4のオーディオ信号1432のシフトを示す第3の最終シフト値1418、またはそれらの組合せを決定し得る。
時間的等化器208は、最終シフト値116、第2の最終シフト値1416、および第3の最終シフト値1418に基づいて、第1のオーディオ信号130、第2のオーディオ信号132、第3のオーディオ信号1430、または第4のオーディオ信号1432のうちの1つを基準信号として選択し得る。たとえば、時間的等化器208は特定の信号(たとえば、第1のオーディオ信号130)を、最終シフト値116、第2の最終シフト値1416、および第3の最終シフト値1418の各々が、対応するオーディオ信号が特定のオーディオ信号に対して時間的に遅延していること、または対応するオーディオ信号と特定のオーディオ信号との間の時間遅延がないことを示す第1の値(たとえば、負ではない値)を有するとの判断に応答して、基準信号として選択し得る。例示すると、シフト値(たとえば、最終シフト値116、第2の最終シフト値1416、または第3の最終シフト値1418)の正の値は、対応する信号(たとえば、第2のオーディオ信号132、第3のオーディオ信号1430、または第4のオーディオ信号1432)が第1のオーディオ信号130に対して時間的に遅延していることを示し得る。シフト値(たとえば、最終シフト値116、第2の最終シフト値1416、または第3の最終シフト値1418)の0の値は、対応する信号(たとえば、第2のオーディオ信号132、第3のオーディオ信号1430、または第4のオーディオ信号1432)と第1のオーディオ信号130との間の時間遅延がないことを示し得る。
時間的等化器208は、第1のオーディオ信号130が基準信号に対応することを示すように基準信号インジケータ164を生成し得る。時間的等化器208は、第2のオーディオ信号132、第3のオーディオ信号1430、および第4のオーディオ信号1432がターゲット信号に対応すると判断し得る。
代替的に、時間的等化器208は、最終シフト値116、第2の最終シフト値1416、または第3の最終シフト値1418のうちの少なくとも1つが、特定のオーディオ信号(たとえば、第1のオーディオ信号130)が別のオーディオ信号(たとえば、第2のオーディオ信号132、第3のオーディオ信号1430、または第4のオーディオ信号1432)に対して遅延していることを示す第2の値(たとえば、負の値)を有すると判断し得る。
時間的等化器208は、最終シフト値116、第2の最終シフト値1416、および第3の最終シフト値1418から、シフト値の第1のサブセットを選択し得る。第1のサブセットの各シフト値は、第1のオーディオ信号130が対応するオーディオ信号に対して時間的に遅延していることを示す値(たとえば、負の値)を有し得る。たとえば、第2の最終シフト値1416(たとえば、-12)は、第1のオーディオ信号130が第3のオーディオ信号1430に対して時間的に遅延していることを示し得る。第3の最終シフト値1418(たとえば、-14)は、第1のオーディオ信号130が第4のオーディオ信号1432に対して時間的に遅延していることを示し得る。シフト値の第1のサブセットは、第2の最終シフト値1416および第3の最終シフト値1418を含み得る。
時間的等化器208は、対応するオーディオ信号に対して第1のオーディオ信号130のより大きい遅延を示す第1のサブセットの特定のシフト値(たとえば、下位シフト値)を選択し得る。第2の最終シフト値1416は、第3のオーディオ信号1430に対する第1のオーディオ信号130の第1の遅延を示し得る。第3の最終シフト値1418は、第4のオーディオ信号1432に対する第1のオーディオ信号130の第2の遅延を示し得る。時間的等化器208は、第2の遅延が第1の遅延よりも長いとの判断に応答して、シフト値の第1のサブセットから第3の最終シフト値1418を選択し得る。
時間的等化器208は、特定のシフト値に対応するオーディオ信号を基準信号として選択し得る。たとえば、時間的等化器208は、第3の最終シフト値1418に対応する第4のオーディオ信号1432を基準信号として選択し得る。時間的等化器208は、第4のオーディオ信号1432が基準信号に対応することを示すように基準信号インジケータ164を生成し得る。時間的等化器208は、第1のオーディオ信号130、第2のオーディオ信号132、および第3のオーディオ信号1430がターゲット信号に対応すると判断し得る。
時間的等化器208は、基準信号に対応する特定のシフト値に基づいて、最終シフト値116および第2の最終シフト値1416を更新し得る。たとえば、時間的等化器208は、第2のオーディオ信号132に対する第4のオーディオ信号1432の第1の特定の遅延を示すように、第3の最終シフト値1418に基づいて最終シフト値116を更新し得る(たとえば、最終シフト値116=最終シフト値116-第3の最終シフト値1418)。例示すると、最終シフト値116(たとえば、2)は、第2のオーディオ信号132に対する第1のオーディオ信号130の遅延を示し得る。第3の最終シフト値1418(たとえば、-14)は、第4のオーディオ信号1432に対する第1のオーディオ信号130の遅延を示し得る。最終シフト値116と第3の最終シフト値1418との間の第1の差(たとえば、16=2-(-14))は、第2のオーディオ信号132に対する第4のオーディオ信号1432の遅延を示し得る。時間的等化器208は、第1の差に基づいて最終シフト値116を更新し得る。時間的等化器208は、第3のオーディオ信号1430に対する第4のオーディオ信号1432の第2の特定の遅延を示すように、第3の最終シフト値1418に基づいて第2の最終シフト値1416を更新し得る(たとえば、2)(たとえば、第2の最終シフト値1416=第2の最終シフト値1416-第3の最終シフト値1418)。例示すると、第2の最終シフト値1416(たとえば、-12)は、第3のオーディオ信号1430に対する第1のオーディオ信号130の遅延を示し得る。第3の最終シフト値1418(たとえば、-14)は、第4のオーディオ信号1432に対する第1のオーディオ信号130の遅延を示し得る。第2の最終シフト値1416と第3の最終シフト値1418との間の第2の差(たとえば、2=-12-(-14))は、第3のオーディオ信号1430に対する第4のオーディオ信号1432の遅延を示し得る。時間的等化器208は、第2の差に基づいて第2の最終シフト値1416を更新し得る。
時間的等化器208は、第1のオーディオ信号130に対する第4のオーディオ信号1432の遅延を示すように第3の最終シフト値1418を反転させ得る。たとえば、時間的等化器208は第3の最終シフト値1418を、第4のオーディオ信号1432に対する第1のオーディオ信号130の遅延を示す第1の値(たとえば、-14)から、第1のオーディオ信号130に対する第4のオーディオ信号1432の遅延を示す第2の値(たとえば、+14)に更新し得る(たとえば、第3の最終シフト値1418=-第3の最終シフト値1418)。
時間的等化器208は、最終シフト値116に絶対値関数を適用することによって、非因果的シフト値162を生成し得る。時間的等化器208は、第2の最終シフト値1416に絶対値関数を適用することによって、第2の非因果的シフト値1462を生成し得る。時間的等化器208は、第3の最終シフト値1418に絶対値関数を適用することによって、第3の非因果的シフト値1464を生成し得る。
時間的等化器208は、図1を参照して説明したように、基準信号に基づいて各ターゲット信号の利得パラメータを生成し得る。第1のオーディオ信号130が基準信号に対応する例では、時間的等化器208は、第1のオーディオ信号130に基づいて第2のオーディオ信号132の利得パラメータ160、第1のオーディオ信号130に基づいて第3のオーディオ信号1430の第2の利得パラメータ1460、第1のオーディオ信号130に基づいて第4のオーディオ信号1432の第3の利得パラメータ1461、またはそれらの組合せを生成し得る。
時間的等化器208は、第1のオーディオ信号130、第2のオーディオ信号132、第3のオーディオ信号1430、および第4のオーディオ信号1432に基づいて、符号化された信号(たとえば、ミッドチャネル信号フレーム)を生成し得る。たとえば、符号化された信号(たとえば、第1の符号化された信号フレーム1454)は、基準信号(たとえば、第1のオーディオ信号130)のサンプルとターゲット信号(たとえば、第2のオーディオ信号132、第3のオーディオ信号1430、および第4のオーディオ信号1432)のサンプルとの和に対応し得る。ターゲット信号の各々のサンプルは、図1を参照して説明したように、対応するシフト値に基づいて基準信号のサンプルに対して時間シフトされ得る。時間的等化器208は、利得パラメータ160と第2のオーディオ信号132のサンプルとの第1の積、第2の利得パラメータ1460と第3のオーディオ信号1430のサンプルとの第2の積、および第3の利得パラメータ1461と第4のオーディオ信号1432のサンプルとの第3の積を決定し得る。第1の符号化された信号フレーム1454は、第1のオーディオ信号130のサンプルと、第1の積と、第2の積と、第3の積との和に対応し得る。すなわち、第1の符号化された信号フレーム1454は、以下の式に基づいて生成され得る。
M=Ref(n)+gD1Targ1(n+N1)+gD2Targ2(n+N2)+gD3Targ3(n+N3)、式8a
M=Ref(n)+Targ1(n+N1)+Targ2(n+N2)+Targ3(n+N3)、式8b
上式で、Mはミッドチャネルフレーム(たとえば、第1の符号化された信号フレーム1454)に対応し、Ref(n)は基準信号(たとえば、第1のオーディオ信号130)のサンプルに対応し、gD1は利得パラメータ160に対応し、gD2は第2の利得パラメータ1460に対応し、gD3は第3の利得パラメータ1461に対応し、N1は非因果的シフト値162に対応し、N2は第2の非因果的シフト値1462に対応し、N3は第3の非因果的シフト値1464に対応し、Targ1(n+N1)は第1のターゲット信号(たとえば、第2のオーディオ信号132)のサンプルに対応し、Targ2(n+N2)は第2のターゲット信号(たとえば、第3のオーディオ信号1430)のサンプルに対応し、Targ3(n+N3)は第3のターゲット信号(たとえば、第4のオーディオ信号1432)のサンプルに対応する。
時間的等化器208は、ターゲット信号の各々に対応する符号化された信号(たとえば、サイドチャネル信号フレーム)を生成し得る。たとえば、時間的等化器208は、第1のオーディオ信号130および第2のオーディオ信号132に基づいて、第2の符号化された信号フレーム566を生成し得る。たとえば、第2の符号化された信号フレーム566は、図5を参照して説明したように、第1のオーディオ信号130のサンプルと第2のオーディオ信号132のサンプルとの差に対応し得る。同様に、時間的等化器208は、第1のオーディオ信号130および第3のオーディオ信号1430に基づいて、第3の符号化された信号フレーム1466(たとえば、サイドチャネルフレーム)を生成し得る。たとえば、第3の符号化された信号フレーム1466は、第1のオーディオ信号130のサンプルと第3のオーディオ信号1430のサンプルとの差に対応し得る。時間的等化器208は、第1のオーディオ信号130および第4のオーディオ信号1432に基づいて、第4の符号化された信号フレーム1468(たとえば、サイドチャネルフレーム)を生成し得る。たとえば、第4の符号化された信号フレーム1468は、第1のオーディオ信号130のサンプルと第4のオーディオ信号1432のサンプルとの差に対応し得る。第2の符号化された信号フレーム566、第3の符号化された信号フレーム1466、および第4の符号化された信号フレーム1468は、以下の式のうちの1つに基づいて生成され得る。
SP=Ref(n)-gDPTargP(n+NP)、式9a
SP=gDPRef(n)-TargP(n+NP)、式9b
上式で、SPはサイドチャネルフレームに対応し、Ref(n)は基準信号(たとえば、第1のオーディオ信号130)のサンプルに対応し、gDPは関連するターゲット信号に対応する利得パラメータに対応し、NPは関連するターゲット信号に対応する非因果的シフト値に対応し、TargP(n+NP)は関連するターゲット信号のサンプルに対応する。たとえば、SPは第2の符号化された信号フレーム566に対応することができ、gDPは利得パラメータ160に対応することができ、NPは非因果的シフト値162に対応することができ、TargP(n+NP)は第2のオーディオ信号132のサンプルに対応することができる。別の例として、SPは第3の符号化された信号フレーム1466に対応することができ、gDPは第2の利得パラメータ1460に対応することができ、NPは第2の非因果的シフト値1462に対応することができ、TargP(n+NP)は第3のオーディオ信号1430のサンプルに対応することができる。さらなる例として、SPは第4の符号化された信号フレーム1468に対応することができ、gDPは第3の利得パラメータ1461に対応することができ、NPは第3の非因果的シフト値1464に対応することができ、TargP(n+NP)は第4のオーディオ信号1432のサンプルに対応することができる。
時間的等化器208は、第2の最終シフト値1416、第3の最終シフト値1418、第2の非因果的シフト値1462、第3の非因果的シフト値1464、第2の利得パラメータ1460、第3の利得パラメータ1461、第1の符号化された信号フレーム1454、第2の符号化された信号フレーム566、第3の符号化された信号フレーム1466、第4の符号化された信号フレーム1468、またはそれらの組合せを、メモリ153に記憶し得る。たとえば、分析データ190は、第2の最終シフト値1416、第3の最終シフト値1418、第2の非因果的シフト値1462、第3の非因果的シフト値1464、第2の利得パラメータ1460、第3の利得パラメータ1461、第1の符号化された信号フレーム1454、第3の符号化された信号フレーム1466、第4の符号化された信号フレーム1468、またはそれらの組合せを含み得る。
送信機110は、第1の符号化された信号フレーム1454、第2の符号化された信号フレーム566、第3の符号化された信号フレーム1466、第4の符号化された信号フレーム1468、利得パラメータ160、第2の利得パラメータ1460、第3の利得パラメータ1461、基準信号インジケータ164、非因果的シフト値162、第2の非因果的シフト値1462、第3の非因果的シフト値1464、またはそれらの組合せを送信し得る。基準信号インジケータ164は、図2の基準信号インジケータ264に対応し得る。第1の符号化された信号フレーム1454、第2の符号化された信号フレーム566、第3の符号化された信号フレーム1466、第4の符号化された信号フレーム1468、またはそれらの組合せは、図2の符号化された信号202に対応し得る。最終シフト値116、第2の最終シフト値1416、第3の最終シフト値1418、またはそれらの組合せは、図2の最終シフト値216に対応し得る。非因果的シフト値162、第2の非因果的シフト値1462、第3の非因果的シフト値1464、またはそれらの組合せは、図2の非因果的シフト値262に対応し得る。利得パラメータ160、第2の利得パラメータ1460、第3の利得パラメータ1461、またはそれらの組合せは、図2の利得パラメータ260に対応し得る。
図15を参照すると、システムの説明のための例が示され、全体的に1500と指定されている。本明細書で説明するように、複数の基準信号を決定するように時間的等化器208が構成され得るという点で、システム1500は図14のシステム1400とは異なる。
動作中、時間的等化器208は、第1のマイクロフォン146を介して第1のオーディオ信号130、第2のマイクロフォン148を介して第2のオーディオ信号132、第3のマイクロフォン1446を介して第3のオーディオ信号1430、第4のマイクロフォン1448を介して第4のオーディオ信号1432、またはそれらの組合せを受信し得る。時間的等化器208は、図1および図5を参照して説明したように、第1のオーディオ信号130および第2のオーディオ信号132に基づいて、最終シフト値116、非因果的シフト値162、利得パラメータ160、基準信号インジケータ164、第1の符号化された信号フレーム564、第2の符号化された信号フレーム566、またはそれらの組合せを決定し得る。同様に、時間的等化器208は、第3のオーディオ信号1430および第4のオーディオ信号1432に基づいて、第2の最終シフト値1516、第2の非因果的シフト値1562、第2の利得パラメータ1560、第2の基準信号インジケータ1552、第3の符号化された信号フレーム1564(たとえば、ミッドチャネル信号フレーム)、第4の符号化された信号フレーム1566(たとえば、サイドチャネル信号フレーム)、またはそれらの組合せを決定し得る。
送信機110は、第1の符号化された信号フレーム564、第2の符号化された信号フレーム566、第3の符号化された信号フレーム1564、第4の符号化された信号フレーム1566、利得パラメータ160、第2の利得パラメータ1560、非因果的シフト値162、第2の非因果的シフト値1562、基準信号インジケータ164、第2の基準信号インジケータ1552、またはそれらの組合せを送信し得る。第1の符号化された信号フレーム564、第2の符号化された信号フレーム566、第3の符号化された信号フレーム1564、第4の符号化された信号フレーム1566、またはそれらの組合せは、図2の符号化された信号202に対応し得る。利得パラメータ160、第2の利得パラメータ1560、または両方は、図2の利得パラメータ260に対応し得る。最終シフト値116、第2の最終シフト値1516、または両方は、図2の最終シフト値216に対応し得る。非因果的シフト値162、第2の非因果的シフト値1562、または両方は、図2の非因果的シフト値262に対応し得る。基準信号インジケータ164、第2の基準信号インジケータ1552、または両方は、図2の基準信号インジケータ264に対応し得る。
図16を参照すると、特定の動作方法を示すフローチャートが示され、全体的に1600と指定されている。方法1600は、図1の時間的等化器108、エンコーダ114、第1のデバイス104、またはそれらの組合せによって実行され得る。
方法1600は、1602において、第1のデバイスにおいて、第2のオーディオ信号に対する第1のオーディオ信号のシフトを示す最終シフト値を決定するステップを含む。たとえば、図1の第1のデバイス104の時間的等化器108は、図1に関して説明したように、第2のオーディオ信号132に対する第1のオーディオ信号130のシフトを示す最終シフト値116を決定し得る。別の例として、時間的等化器108は、図14に関して説明したように、第2のオーディオ信号132に対する第1のオーディオ信号130のシフトを示す最終シフト値116、第3のオーディオ信号1430に対する第1のオーディオ信号130のシフトを示す第2の最終シフト値1416、第4のオーディオ信号1432に対する第1のオーディオ信号130のシフトを示す第3の最終シフト値1418、またはそれらの組合せを決定し得る。さらなる例として、時間的等化器108は、図15を参照して説明したように、第2のオーディオ信号132に対する第1のオーディオ信号130のシフトを示す最終シフト値116、第4のオーディオ信号1432に対する第3のオーディオ信号1430のシフトを示す第2の最終シフト値1516、または両方を決定し得る。
方法1600はまた、1604において、第1のデバイスにおいて、第1のオーディオ信号の第1のサンプルおよび第2のオーディオ信号の第2のサンプルに基づいて、少なくとも1つの符号化された信号を生成するステップを含む。たとえば、図1の第1のデバイス104の時間的等化器108は、図5を参照してさらに説明したように、図3のサンプル326〜332および図3のサンプル358〜364に基づいて、符号化された信号102を生成し得る。サンプル358〜364は、最終シフト値116に基づく量だけ、サンプル326〜332に対して時間シフトされ得る。
別の例として、時間的等化器108は、図14を参照して説明したように、図3のサンプル326〜332、サンプル358〜364、第3のオーディオ信号1430の第3のサンプル、第4のオーディオ信号1432の第4のサンプル、またはそれらの組合せに基づいて、第1の符号化された信号フレーム1454を生成し得る。サンプル358〜364、第3のサンプル、および第4のサンプルは、それぞれ、最終シフト値116、第2の最終シフト値1416、および第3の最終シフト値1418に基づく量だけ、サンプル326〜332に対して時間シフトされ得る。
時間的等化器108は、図5および図14を参照して説明したように、図3のサンプル326〜332およびサンプル358〜364に基づいて、第2の符号化された信号フレーム566を生成し得る。時間的等化器108は、サンプル326〜332および第3のサンプルに基づいて、第3の符号化された信号フレーム1466を生成し得る。時間的等化器108は、サンプル326〜332および第4のサンプルに基づいて、第4の符号化された信号フレーム1468を生成し得る。
さらなる例として、時間的等化器108は、図5および図15を参照して説明したように、サンプル326〜332およびサンプル358〜364に基づいて、第1の符号化された信号フレーム564および第2の符号化された信号フレーム566を生成し得る。時間的等化器108は、図15を参照して説明したように、第3のオーディオ信号1430の第3のサンプルおよび第4のオーディオ信号1432の第4のサンプルに基づいて、第3の符号化された信号フレーム1564および第4の符号化された信号フレーム1566を生成し得る。第4のサンプルは、図15を参照して説明したように、第2の最終シフト値1516に基づいて第3のサンプルに対して時間シフトされ得る。
方法1600は、1606において、少なくとも1つの符号化された信号を第1のデバイスから第2のデバイスに送るステップをさらに含む。たとえば、図1の送信機110は、図1を参照してさらに説明したように、少なくとも符号化された信号102を第1のデバイス104から第2のデバイス106に送り得る。別の例として、送信機110は、図14を参照して説明したように、少なくとも、第1の符号化された信号フレーム1454、第2の符号化された信号フレーム566、第3の符号化された信号フレーム1466、第4の符号化された信号フレーム1468、またはそれらの組合せを送り得る。さらなる例として、送信機110は、図15を参照して説明したように、少なくとも、第1の符号化された信号フレーム564、第2の符号化された信号フレーム566、第3の符号化された信号フレーム1564、第4の符号化された信号フレーム1566、またはそれらの組合せを送り得る。
したがって、方法1600は、第1のオーディオ信号の第1のサンプルと、第2のオーディオ信号に対する第1のオーディオ信号のシフトを示すシフト値に基づいて第1のオーディオ信号に対して時間シフトされた第2のオーディオ信号の第2のサンプルとに基づいて、符号化された信号を生成することを可能にし得る。第2のオーディオ信号のサンプルを時間シフトすることで、第1のオーディオ信号と第2のオーディオ信号との間の差を低減することができ、結果的に、共同チャネルコーディング効率を改善することができる。第1のオーディオ信号130または第2のオーディオ信号132のうちの一方は、最終シフト値116の符号(たとえば、正または負)に基づいて基準信号として指定され得る。第1のオーディオ信号130または第2のオーディオ信号132のうちの他方(たとえば、ターゲット信号)は、非因果的シフト値162(たとえば、最終シフト値116の絶対値)に基づいて時間シフトまたはオフセットされ得る。
図17を参照すると、システムの説明のための例が示され、全体的に1700と指定されている。システム1700は、図1のシステム100に対応し得る。たとえば、図1のシステム100、第1のデバイス104、または両方は、システム1700の1つまたは複数の構成要素を含み得る。
システム1700は、シフト推定器1704を介してフレーム間シフト変動分析器1706、基準信号指定器508、または両方に結合された信号プリプロセッサ1702を含む。特定の態様では、信号プリプロセッサ1702はリサンプラ504に対応し得る。特定の態様では、シフト推定器1704は図1の時間的等化器108に対応し得る。たとえば、シフト推定器1704は、時間的等化器108の1つまたは複数の構成要素を含み得る。
フレーム間シフト変動分析器1706は、ターゲット信号調整器1708を介して利得パラメータ生成器514に結合され得る。基準信号指定器508は、フレーム間シフト変動分析器1706、利得パラメータ生成器514、または両方に結合され得る。ターゲット信号調整器1708は、ミッドサイド生成器1710に結合され得る。特定の態様では、ミッドサイド生成器1710は図5の信号生成器516に対応し得る。利得パラメータ生成器514は、ミッドサイド生成器1710に結合され得る。ミッドサイド生成器1710は、帯域幅拡張(BWE)空間バランサ1712、ミッドBWEコーダ1714、ローバンド(LB)信号再生器1716、またはそれらの組合せに結合され得る。LB信号再生器1716は、LBサイドコアコーダ1718、LBミッドコアコーダ1720、または両方に結合され得る。LBミッドコアコーダ1720は、ミッドBWEコーダ1714、LBサイドコアコーダ1718、または両方に結合され得る。ミッドBWEコーダ1714はBWE空間バランサ1712に結合され得る。
動作中、信号プリプロセッサ1702は、オーディオ信号1728を受信し得る。たとえば、信号プリプロセッサ1702は、入力インターフェース112からオーディオ信号1728を受信し得る。オーディオ信号1728は、第1のオーディオ信号130、第2のオーディオ信号132、または両方を含み得る。信号プリプロセッサ1702は、図18を参照してさらに説明するように、第1の再サンプリングされた信号530、第2の再サンプリングされた信号532、または両方を生成し得る。信号プリプロセッサ1702は、第1の再サンプリングされた信号530、第2の再サンプリングされた信号532、または両方をシフト推定器1704に提供し得る。
シフト推定器1704は、図19を参照してさらに説明するように、第1の再サンプリングされた信号530、第2の再サンプリングされた信号532、または両方に基づいて、最終シフト値116(T)、非因果的シフト値162、または両方を生成し得る。シフト推定器1704は、フレーム間シフト変動分析器1706、基準信号指定器508、または両方に最終シフト値116を提供し得る。
基準信号指定器508は、図5、図12、および図13を参照して説明したように、基準信号インジケータ164を生成し得る。基準信号インジケータ164は、第1のオーディオ信号130が基準信号に対応することを基準信号インジケータ164が示すとの判断に応答して、基準信号1740が第1のオーディオ信号130を含み、ターゲット信号1742が第2のオーディオ信号132を含むと判断し得る。代替的に、基準信号インジケータ164は、第2のオーディオ信号132が基準信号に対応することを基準信号インジケータ164が示すとの判断に応答して、基準信号1740が第2のオーディオ信号132を含み、ターゲット信号1742が第1のオーディオ信号130を含むと判断し得る。基準信号指定器508は、フレーム間シフト変動分析器1706、利得パラメータ生成器514、または両方に基準信号インジケータ164を提供し得る。
フレーム間シフト変動分析器1706は、図21を参照してさらに説明するように、ターゲット信号1742、基準信号1740、第1のシフト値962(Tprev)、最終シフト値116(T)、基準信号インジケータ164、またはそれらの組合せに基づいて、ターゲット信号インジケータ1764を生成し得る。フレーム間シフト変動分析器1706は、ターゲット信号調整器1708にターゲット信号インジケータ1764を提供し得る。
ターゲット信号調整器1708は、ターゲット信号インジケータ1764、ターゲット信号1742、または両方に基づいて、調整されたターゲット信号1752を生成し得る。ターゲット信号調整器1708は、第1のシフト値962(Tprev)から最終シフト値116(T)への時間的シフト推移に基づいて、ターゲット信号1742を調整し得る。たとえば、第1のシフト値962は、フレーム302に対応する最終シフト値を含み得る。ターゲット信号調整器1708は、最終シフト値が、フレーム304に対応する最終シフト値116(たとえば、T=4)よりも低いフレーム302に対応する第1の値(たとえば、Tprev=2)を有する第1のシフト値962から変化したとの判断に応答して、調整されたターゲット信号1752を生成するために、フレーム境界に対応するターゲット信号1742のサンプルのサブセットが平滑化および緩やかなシフトを通じて除外されるように、ターゲット信号1742を補間し得る。代替的に、ターゲット信号調整器1708は、最終シフト値が、最終シフト値116(たとえば、T=2)よりも大きい第1のシフト値962(たとえば、Tprev=4)から変化したとの判断に応答して、調整されたターゲット信号1752を生成するために、フレーム境界に対応するターゲット信号1742のサンプルのサブセットが平滑化および緩やかなシフトを通じて繰り返されるように、ターゲット信号1742を補間し得る。平滑化および緩やかなシフトは、ハイブリッドSincおよびラグランジュ補間器に基づいて実行され得る。ターゲット信号調整器1708は、最終シフト値が、第1のシフト値962から最終シフト値116にかけて変化していない(たとえば、Tprev=T)との判断に応答して、調整されたターゲット信号1752を生成するために、ターゲット信号1742を時間的にオフセットし得る。ターゲット信号調整器1708は、調整されたターゲット信号1752を利得パラメータ生成器514、ミッドサイド生成器1710、または両方に提供し得る。
利得パラメータ生成器514は、図20を参照してさらに説明するように、基準信号インジケータ164、調整されたターゲット信号1752、基準信号1740、またはそれらの組合せに基づいて、利得パラメータ160を生成し得る。利得パラメータ生成器514は、ミッドサイド生成器1710に利得パラメータ160を提供し得る。
ミッドサイド生成器1710は、調整されたターゲット信号1752、基準信号1740、利得パラメータ160、またはそれらの組合せに基づいて、ミッド信号1770、サイド信号1772、または両方を生成し得る。たとえば、ミッドサイド生成器1710は、式2aまたは式2bに基づいてミッド信号1770を生成することができ、式中、Mはミッド信号1770に対応し、gDは利得パラメータ160に対応し、Ref(n)は基準信号1740のサンプルに対応し、Targ(n+N1)は調整されたターゲット信号1752のサンプルに対応する。ミッドサイド生成器1710は、式3aまたは式3bに基づいてサイド信号1772を生成することができ、式中、Sはサイド信号1772に対応し、gDは利得パラメータ160に対応し、Ref(n)は基準信号1740のサンプルに対応し、Targ(n+N1)は調整されたターゲット信号1752のサンプルに対応する。
ミッドサイド生成器1710は、BWE空間バランサ1712、LB信号再生器1716、または両方にサイド信号1772を提供し得る。ミッドサイド生成器1710は、BWEコーダ1714、LB信号再生器1716、または両方にミッド信号1770を提供し得る。LB信号再生器1716は、ミッド信号1770に基づいてLBミッド信号1760を生成し得る。たとえば、LB信号再生器1716は、ミッド信号1770をフィルタ処理することによってLBミッド信号1760を生成し得る。LB信号再生器1716は、LBミッドコアコーダ1720にLBミッド信号1760を提供し得る。LBミッドコアコーダ1720は、LBミッド信号1760に基づいてパラメータ(たとえば、コアパラメータ1771、パラメータ1775、または両方)を生成し得る。コアパラメータ1771、パラメータ1775、または両方は、励起パラメータ(excitation parameter)、有声化パラメータなどを含み得る。LBミッドコアコーダ1720は、ミッドBWEコーダ1714にコアパラメータ1771、LBサイドコアコーダ1718にパラメータ1775、または両方を提供し得る。コアパラメータ1771は、パラメータ1775と同じであるか、またはパラメータ1775とは別個のものであり得る。たとえば、コアパラメータ1771は、パラメータ1775のうちの1つもしくは複数を含むこと、パラメータ1775のうちの1つもしくは複数を除外すること、1つもしくは複数の追加のパラメータを含むこと、またはそれらの組合せがある。ミッドBWEコーダ1714は、ミッド信号1770、コアパラメータ1771、またはそれらの組合せに基づいて、コーディングされたミッドBWE信号1773を生成し得る。ミッドBWEコーダ1714は、コーディングされたミッドBWE信号1773をBWE空間バランサ1712に提供し得る。
LB信号再生器1716は、サイド信号1772に基づいてLBサイド信号1762を生成し得る。たとえば、LB信号再生器1716は、サイド信号1772をフィルタ処理することによってLBサイド信号1762を生成し得る。LB信号再生器1716は、LBサイドコアコーダ1718にLBサイド信号1762を提供し得る。
図18を参照すると、システムの説明のための例が示され、全体的に1800と指定されている。システム1800は、図1のシステム100に対応し得る。たとえば、図1のシステム100、第1のデバイス104、または両方は、システム1800の1つまたは複数の構成要素を含み得る。
システム1800は、信号プリプロセッサ1702を含む。信号プリプロセッサ1702は、再サンプリング係数推定器1830、デエンファシス回路1804、デエンファシス回路1834、またはそれらの組合せに結合されたデマルチプレクサ(DeMUX)1802を含み得る。デエンファシス回路1804は、リサンプラ1806を介してデエンファシス回路1808に結合され得る。デエンファシス回路1808は、リサンプラ1810を介してチルトバランサ1812に結合され得る。デエンファシス回路1834は、リサンプラ1836を介してデエンファシス回路1838に結合され得る。デエンファシス回路1838は、リサンプラ1840を介してチルトバランサ1842に結合され得る。
動作中、deMUX1802は、オーディオ信号1728を逆多重化することによって、第1のオーディオ信号130および第2のオーディオ信号132を生成し得る。deMUX1802は、第1のオーディオ信号130、第2のオーディオ信号132、または両方に関連する第1のサンプルレート1860を再サンプリング係数推定器1830に提供し得る。deMUX1802は、デエンファシス回路1804に第1のオーディオ信号130、デエンファシス回路1834に第2のオーディオ信号132、または両方を提供し得る。
再サンプリング係数推定器1830は、第1のサンプルレート1860、第2のサンプルレート1880、または両方に基づいて、第1の係数1862(d1)、第2の係数1882(d2)、または両方を生成し得る。再サンプリング係数推定器1830は、第1のサンプルレート1860、第2のサンプルレート1880、または両方に基づいて、再サンプリング係数(D)を決定し得る。たとえば、再サンプリング係数(D)は、第1のサンプルレート1860および第2のサンプルレート1880の比率に対応し得る(たとえば、再サンプリング係数(D)=第2のサンプルレート1880/第1のサンプルレート1860または再サンプリング係数(D)=第1のサンプルレート1860/第2のサンプルレート1880)。第1の係数1862(d1)、第2の係数1882(d2)、または両方は、再サンプリング係数(D)の係数であり得る。たとえば、再サンプリング係数(D)は、第1の係数1862(d1)と第2の係数1882(d2)との積に対応し得る(たとえば、再サンプリング係数(D)=第1の係数1862(d1)*第2の係数1882(d2))。いくつかの実装形態では、本明細書で説明するように、第1の係数1862(d1)は第1の値(たとえば、1)を有すること、第2の係数1882(d2)は第2の値(たとえば、1)を有すること、または両方があり、再サンプリング段階が回避される。
デエンファシス回路1804は、図6を参照して説明したように、IIRフィルタ(たとえば、1次IIRフィルタ)に基づいて第1のオーディオ信号130をフィルタ処理することによって、デエンファシス処理された信号1864を生成し得る。デエンファシス回路1804は、デエンファシス処理された信号1864をリサンプラ1806に提供し得る。リサンプラ1806は、デエンファシス処理された信号1864を第1の係数1862(d1)に基づいて再サンプリングすることによって、再サンプリングされた信号1866を生成し得る。リサンプラ1806は、再サンプリングされた信号1866をデエンファシス回路1808に提供し得る。デエンファシス回路1808は、図6を参照して説明したように、再サンプリングされた信号1866をIIRフィルタに基づいてフィルタ処理することによって、デエンファシス処理された信号1868を生成し得る。デエンファシス回路1808は、デエンファシス処理された信号1868をリサンプラ1810に提供し得る。リサンプラ1810は、デエンファシス処理された信号1868を第2の係数1882(d2)に基づいて再サンプリングすることによって、再サンプリングされた信号1870を生成し得る。
いくつかの実装形態では、第1の係数1862(d1)は第1の値(たとえば、1)を有すること、第2の係数1882(d2)は第2の値(たとえば、1)を有すること、または両方があり、再サンプリング段階が回避される。たとえば、第1の係数1862(d1)が第1の値(たとえば、1)を有するとき、再サンプリングされた信号1866はデエンファシス処理された信号1864と同じであり得る。別の例として、第2の係数1882(d2)が第2の値(たとえば、1)を有するとき、再サンプリングされた信号1870はデエンファシス処理された信号1868と同じであり得る。リサンプラ1810は、再サンプリングされた信号1870をチルトバランサ1812に提供し得る。チルトバランサ1812は、再サンプリングされた信号1870に対してチルト平衡(tilt balancing)を実行することによって、第1の再サンプリングされた信号530を生成し得る。
デエンファシス回路1834は、図6を参照して説明したように、IIRフィルタ(たとえば、1次IIRフィルタ)に基づいて第2のオーディオ信号132をフィルタ処理することによって、デエンファシス処理された信号1884を生成し得る。デエンファシス回路1834は、デエンファシス処理された信号1884をリサンプラ1836に提供し得る。リサンプラ1836は、デエンファシス処理された信号1884を第1の係数1862(d1)に基づいて再サンプリングすることによって、再サンプリングされた信号1886を生成し得る。リサンプラ1836は、再サンプリングされた信号1886をデエンファシス回路1838に提供し得る。デエンファシス回路1838は、図6を参照して説明したように、再サンプリングされた信号1886をIIRフィルタに基づいてフィルタ処理することによって、デエンファシス処理された信号1888を生成し得る。デエンファシス回路1838は、デエンファシス処理された信号1888をリサンプラ1840に提供し得る。リサンプラ1840は、デエンファシス処理された信号1888を第2の係数1882(d2)に基づいて再サンプリングすることによって、再サンプリングされた信号1890を生成し得る。
いくつかの実装形態では、第1の係数1862(d1)は第1の値(たとえば、1)を有すること、第2の係数1882(d2)は第2の値(たとえば、1)を有すること、または両方があり、再サンプリング段階が回避される。たとえば、第1の係数1862(d1)が第1の値(たとえば、1)を有するとき、再サンプリングされた信号1886はデエンファシス処理された信号1884と同じであり得る。別の例として、第2の係数1882(d2)が第2の値(たとえば、1)を有するとき、再サンプリングされた信号1890はデエンファシス処理された信号1888と同じであり得る。リサンプラ1840は、再サンプリングされた信号1890をチルトバランサ1842に提供し得る。チルトバランサ1842は、再サンプリングされた信号1890に対してチルト平衡を実行することによって、第2の再サンプリングされた信号532を生成し得る。いくつかの実装形態では、チルトバランサ1812およびチルトバランサ1842は、それぞれ、デエンファシス回路1804およびデエンファシス回路1834に起因するローパス(LP)効果を補償し得る。
図19を参照すると、システムの説明のための例が示され、全体的に1900と指定されている。システム1900は、図1のシステム100に対応し得る。たとえば、図1のシステム100、第1のデバイス104、または両方は、システム1900の1つまたは複数の構成要素を含み得る。
システム1900は、シフト推定器1704を含む。シフト推定器1704は、信号比較器506、補間器510、シフトリファイナ511、シフト変化分析器512、絶対シフト生成器513、またはそれらの組合せを含み得る。システム1900は図19に示す構成要素よりも少数または多数の構成要素を含んでよいことを理解されたい。システム1900は、本明細書で説明した1つまたは複数の動作を実行するように構成され得る。たとえば、システム1900は、図5の時間的等化器108、図17のシフト推定器1704、または両方を参照して説明した1つまたは複数の動作を実行するように構成され得る。第1のオーディオ信号130、第1の再サンプリングされた信号530、第2のオーディオ信号132、第2の再サンプリングされた信号532、またはそれらの組合せに基づいて生成された1つもしくは複数のローパスフィルタ処理された信号、1つもしくは複数のハイパスフィルタ処理された信号、またはそれらの組合せに基づいて非因果的シフト値162が推定され得ることを理解されたい。
図20を参照すると、システムの説明のための例が示され、全体的に2000と指定されている。システム2000は、図1のシステム100に対応し得る。たとえば、図1のシステム100、第1のデバイス104、または両方は、システム2000の1つまたは複数の構成要素を含み得る。
システム2000は、利得パラメータ生成器514を含む。利得パラメータ生成器514は、利得平滑器2008に結合された利得推定器2002を含み得る。利得推定器2002は、エンベロープベースの利得推定器2004、コヒーレンスベースの利得推定器2006、または両方を含み得る。利得推定器2002は、図1を参照して説明したように、式1a〜1fのうちの1つまたは複数に基づいて利得を生成し得る。
動作中、利得推定器2002は、第1のオーディオ信号130が基準信号に対応することを基準信号インジケータ164が示すとの判断に応答して、基準信号1740が第1のオーディオ信号130を含むと判断し得る。代替的に、利得推定器2002は、第2のオーディオ信号132が基準信号に対応することを基準信号インジケータ164が示すとの判断に応答して、基準信号1740が第2のオーディオ信号132を含むと判断し得る。
エンベロープベースの利得推定器2004は、基準信号1740、調整されたターゲット信号1752、または両方に基づいて、エンベロープベースの利得2020を生成し得る。たとえば、エンベロープベースの利得推定器2004は、基準信号1740の第1のエンベロープおよび調整されたターゲット信号1752の第2のエンベロープに基づいて、エンベロープベースの利得2020を決定し得る。エンベロープベースの利得推定器2004は、エンベロープベースの利得2020を利得平滑器2008に提供し得る。
コヒーレンスベースの利得推定器2006は、基準信号1740、調整されたターゲット信号1752、または両方に基づいて、コヒーレンスベースの利得2022を生成し得る。たとえば、コヒーレンスベースの利得推定器2006は、基準信号1740、調整されたターゲット信号1752、または両方に対応する推定コヒーレンスを決定し得る。コヒーレンスベースの利得推定器2006は、推定コヒーレンスに基づいてコヒーレンスベースの利得2022を決定し得る。コヒーレンスベースの利得推定器2006は、コヒーレンスベースの利得2022を利得平滑器2008に提供し得る。
利得平滑器2008は、エンベロープベースの利得2020、コヒーレンスベースの利得2022、第1の利得2060、またはそれらの組合せに基づいて利得パラメータ160を生成し得る。たとえば、利得パラメータ160は、エンベロープベースの利得2020、コヒーレンスベースの利得2022、第1の利得2060、またはそれらの組合せの平均に対応し得る。第1の利得2060は、フレーム302に関連付けられ得る。
図21を参照すると、システムの説明のための例が示され、全体的に2100と指定されている。システム2100は、図1のシステム100に対応し得る。たとえば、図1のシステム100、第1のデバイス104、または両方は、システム2100の1つまたは複数の構成要素を含み得る。図21は状態図2120も含む。状態図2120は、フレーム間シフト変動分析器1706の動作を示し得る。
状態図2120は、状態2102において、第2のオーディオ信号132を示すように図17のターゲット信号インジケータ1764を設定することを含む。状態図2120は、状態2104において、第1のオーディオ信号130を示すようにターゲット信号インジケータ1764を設定することを含む。フレーム間シフト変動分析器1706は、第1のシフト値962が第1の値(たとえば、0)を有するとの判断および最終シフト値116が第2の値(たとえば、負の値)を有するとの判断に応答して、状態2104から状態2102に移行し得る。たとえば、フレーム間シフト変動分析器1706は、第1のシフト値962が第1の値(たとえば、0)を有するとの判断および最終シフト値116が第2の値(たとえば、負の値)を有するとの判断に応答して、ターゲット信号インジケータ1764を、第1のオーディオ信号130を示す指示から第2のオーディオ信号132を示す指示に変更し得る。フレーム間シフト変動分析器1706は、第1のシフト値962が第1の値(たとえば、負の値)を有するとの判断および最終シフト値116が第2の値(たとえば、0)を有するとの判断に応答して、状態2102から状態2104に移行し得る。たとえば、フレーム間シフト変動分析器1706は、第1のシフト値962が第1の値(たとえば、負の値)を有するとの判断および最終シフト値116が第2の値(たとえば、0)を有するとの判断に応答して、ターゲット信号インジケータ1764を、第2のオーディオ信号132を示す指示から第1のオーディオ信号130を示す指示に変更し得る。フレーム間シフト変動分析器1706は、ターゲット信号調整器1708にターゲット信号インジケータ1764を提供し得る。いくつかの実装形態では、フレーム間シフト変動分析器1706は、ターゲット信号インジケータ1764によって示されたターゲット信号(たとえば、第1のオーディオ信号130または第2のオーディオ信号132)を、平滑化および緩やかなシフトのためにターゲット信号調整器1708に提供し得る。ターゲット信号は、図17のターゲット信号1742に対応し得る。
図22を参照すると、特定の動作方法を示すフローチャートが示され、全体的に2200と指定されている。方法2200は、図1の時間的等化器108、エンコーダ114、第1のデバイス104、またはそれらの組合せによって実行され得る。
方法2200は、2202において、デバイスにおいて、2つのオーディオチャネルを受信するステップを含む。たとえば、図1の入力インターフェース112の第1の入力インターフェースは第1のオーディオ信号130(たとえば、第1のオーディオチャネル)を受信することができ、入力インターフェース112の第2の入力インターフェースは第2のオーディオ信号132(たとえば、第2のオーディオチャネル)を受信することができる。
方法2200はまた、2204において、デバイスにおいて、2つのオーディオチャネルの間の時間的不一致の量を示す不一致値を決定するステップを含む。たとえば、図1の時間的等化器108は、図1に関して説明したように、第1のオーディオ信号130と第2のオーディオ信号132との間の時間的不一致の量を示す最終シフト値116(たとえば、不一致値)を決定し得る。別の例として、時間的等化器108は、図14に関して説明したように、第1のオーディオ信号130と第2のオーディオ信号132との間の時間的不一致の量を示す最終シフト値116(たとえば、不一致値)、第1のオーディオ信号130と第3のオーディオ信号1430との間の時間的不一致の量を示す第2の最終シフト値1416(たとえば、不一致値)、第1のオーディオ信号130と第4のオーディオ信号1432との間の時間的不一致の量を示す第3の最終シフト値1418(たとえば、不一致値)、またはそれらの組合せを決定し得る。さらなる例として、時間的等化器108は、図15を参照して説明したように、第1のオーディオ信号130と第2のオーディオ信号132との間の時間的不一致の量を示す最終シフト値116(たとえば、不一致値)、第3のオーディオ信号1430と第4のオーディオ信号1432との間の時間的不一致を示す第2の最終シフト値1516(たとえば、不一致値)、または両方を決定し得る。
方法2200は、2206において、不一致値に基づいて、ターゲットチャネルまたは基準チャネルのうちの少なくとも1つを決定するステップをさらに含む。たとえば、図1の時間的等化器108は、図17を参照して説明したように、最終シフト値116に基づいて、ターゲット信号1742(たとえば、ターゲットチャネル)または基準信号1740(たとえば、基準チャネル)のうちの少なくとも1つを決定し得る。ターゲット信号1742は、2つのオーディオチャネル(たとえば、第1のオーディオ信号130および第2のオーディオ信号132)のうちの遅行オーディオチャネルに対応し得る。基準信号1740は、2つのオーディオチャネル(たとえば、第1のオーディオ信号130および第2のオーディオ信号132)のうちの先行オーディオチャネルに対応し得る。
方法2200はまた、2208において、デバイスにおいて、不一致値に基づいてターゲットチャネルを調整することによって、修正されたターゲットチャネルを生成するステップを含む。たとえば、図1の時間的等化器108は、図17を参照して説明したように、最終シフト値116に基づいてターゲット信号1742を調整することによって、調整されたターゲット信号1752(たとえば、修正されたターゲットチャネル)を生成し得る。
方法2200はまた、2210において、デバイスにおいて、基準チャネルおよび修正されたターゲットチャネルに基づいて、少なくとも1つの符号化された信号を生成するステップを含む。たとえば、図1の時間的等化器108は、図17を参照して説明したように、基準信号1740(たとえば、基準チャネル)および調整されたターゲット信号1752(たとえば、修正されたターゲットチャネル)に基づいて、符号化された信号102を生成し得る。
別の例として、時間的等化器108は、図14を参照して説明したように、第1のオーディオ信号130(たとえば、基準チャネル)のサンプル326〜332、第2のオーディオ信号132(たとえば、修正されたターゲットチャネル)のサンプル358〜364、第3のオーディオ信号1430(たとえば、修正されたターゲットチャネル)の第3のサンプル、第4のオーディオ信号1432(たとえば、修正されたターゲットチャネル)の第4のサンプル、またはそれらの組合せに基づいて、第1の符号化された信号フレーム1454を生成し得る。サンプル358〜364、第3のサンプル、および第4のサンプルは、それぞれ、最終シフト値116、第2の最終シフト値1416、および第3の最終シフト値1418に基づく量だけ、サンプル326〜332に対してシフトされ得る。時間的等化器108は、図5および図14を参照して説明したように、(基準チャネルの)サンプル326〜332および(修正されたターゲットチャネルの)サンプル358〜364に基づいて、第2の符号化された信号フレーム566を生成し得る。時間的等化器108は、(基準チャネルの)サンプル326〜332および(修正されたターゲットチャネルの)第3のサンプルに基づいて、第3の符号化された信号フレーム1466を生成し得る。時間的等化器108は、(基準チャネルの)サンプル326〜332および(修正されたターゲットチャネルの)第4のサンプルに基づいて、第4の符号化された信号フレーム1468を生成し得る。
さらなる例として、時間的等化器108は、図5および図15を参照して説明したように、(基準チャネルの)サンプル326〜332および(修正されたターゲットチャネルの)サンプル358〜364に基づいて、第1の符号化された信号フレーム564および第2の符号化された信号フレーム566を生成し得る。時間的等化器108は、図15を参照して説明したように、第3のオーディオ信号1430(たとえば、基準チャネル)の第3のサンプルおよび第4のオーディオ信号1432(たとえば、修正されたターゲットチャネル)の第4のサンプルに基づいて、第3の符号化された信号フレーム1564および第4の符号化された信号フレーム1566を生成し得る。第4のサンプルは、図15を参照して説明したように、第2の最終シフト値1516に基づいて第3のサンプルに対してシフトされ得る。
したがって、方法2200は、基準チャネルおよび修正されたターゲットチャネルに基づいて、符号化された信号を生成することを可能にし得る。修正されたターゲットチャネルは、不一致値に基づいてターゲットチャネルを調整することによって生成され得る。修正されたターゲットチャネルと基準チャネルとの間の差は、ターゲットチャネルと基準チャネルとの間の差よりも小さくなり得る。差の縮小により、共同チャネルコーディング効率が改善され得る。
図23を参照すると、デバイス(たとえば、ワイヤレス通信デバイス)の特定の説明のための例のブロック図が示され、全体的に2300と指定されている。様々な態様では、デバイス2300は、図23に示すよりも少数または多数の構成要素を有し得る。例示的な態様では、デバイス2300は、図1の第1のデバイス104または第2のデバイス106に対応し得る。例示的な態様では、デバイス2300は、図1〜図22のシステムおよび方法を参照して説明した1つまたは複数の動作を実行し得る。
特定の態様では、デバイス2300はプロセッサ2306(たとえば、中央処理装置(CPU))を含む。デバイス2300は、1つまたは複数の追加のプロセッサ2310(たとえば、1つまたは複数のデジタル信号プロセッサ(DSP))を含み得る。プロセッサ2310は、メディア(スピーチおよび音楽)コーダデコーダ(コーデック)2308と、エコーキャンセラ2312とを含み得る。メディアコーデック2308は、図1のデコーダ118、エンコーダ114、または両方を含み得る。エンコーダ114は、時間的等化器108を含み得る。
デバイス2300は、メモリ153およびコーデック2334を含み得る。メディアコーデック2308は、プロセッサ2310(たとえば、専用回路および/または実行可能プログラミングコード)の構成要素として示されているが、他の態様では、デコーダ118、エンコーダ114、または両方などのメディアコーデック2308の1つまたは複数の構成要素は、プロセッサ2306、コーデック2334、別の処理構成要素、またはそれらの組合せに含まれ得る。
デバイス2300は、アンテナ2342に結合された送信機110を含み得る。デバイス2300は、ディスプレイコントローラ2326に結合されたディスプレイ2328を含み得る。1つまたは複数のスピーカー2348がコーデック2334に結合され得る。1つまたは複数のマイクロフォン2346が、入力インターフェース112を介してコーデック2334に結合され得る。特定の態様では、スピーカー2348は、図1の第1のラウドスピーカー142、第2のラウドスピーカー144、図2の第Yのラウドスピーカー244、またはそれらの組合せを含み得る。特定の態様では、マイクロフォン2346は、図1の第1のマイクロフォン146、第2のマイクロフォン148、図2の第Nのマイクロフォン248、図14の第3のマイクロフォン1446、第4のマイクロフォン1448、またはそれらの組合せを含み得る。コーデック2334は、デジタルアナログ変換器(DAC)2302およびアナログデジタル変換器(ADC)2304を含み得る。
メモリ153は、図1〜図22を参照して説明した1つまたは複数の動作を実行するために、プロセッサ2306、プロセッサ2310、コーデック2334、デバイス2300の別の処理ユニット、またはそれらの組合せによって実行可能な命令2360を含み得る。メモリ153は、分析データ190を記憶し得る。
デバイス2300の1つまたは複数の構成要素は、専用ハードウェア(たとえば、回路)を介して、1つもしくは複数のタスクを実行するように命令を実行するプロセッサによって、またはそれらの組合せで実装され得る。一例として、メモリ153、またはプロセッサ2306、プロセッサ2310、および/もしくはコーデック2334の1つもしくは複数の構成要素は、ランダムアクセスメモリ(RAM)、磁気抵抗ランダムアクセスメモリ(MRAM)、スピントルクトランスファーMRAM(STT-MRAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、またはコンパクトディスク読取り専用メモリ(CD-ROM)などのメモリデバイス(たとえば、コンピュータ可読記憶デバイス)であり得る。メモリデバイスは、コンピュータ(たとえば、コーデック2334内のプロセッサ、プロセッサ2306、および/またはプロセッサ2310)によって実行されると、図1〜図22を参照して説明した1つまたは複数の動作をコンピュータに実行させることができる命令(たとえば、命令2360)を含む(たとえば、記憶する)ことができる。一例として、メモリ153、またはプロセッサ2306、プロセッサ2310、および/もしくはコーデック2334の1つもしくは複数の構成要素は、コンピュータ(たとえば、コーデック2334内のプロセッサ、プロセッサ2306、および/またはプロセッサ2310)によって実行されると、図1〜図22を参照して説明した1つまたは複数の動作をコンピュータに実行させる命令(たとえば、命令2360)を含む非一時的コンピュータ可読媒体であり得る。
特定の態様では、デバイス2300は、システムインパッケージまたはシステムオンチップデバイス(たとえば、移動局モデム(MSM))2322に含まれ得る。特定の態様では、プロセッサ2306、プロセッサ2310、ディスプレイコントローラ2326、メモリ153、コーデック2334、および送信機110は、システムインパッケージまたはシステムオンチップデバイス2322に含まれ得る。特定の態様では、タッチスクリーンおよび/またはキーパッドなどの入力デバイス2330、ならびに電源2344が、システムオンチップデバイス2322に結合される。さらに、特定の態様では、図23に示されるように、ディスプレイ2328、入力デバイス2330、スピーカー2348、マイクロフォン2346、アンテナ2342、および電源2344は、システムオンチップデバイス2322の外部にある。しかしながら、ディスプレイ2328、入力デバイス2330、スピーカー2348、マイクロフォン2346、アンテナ2342、および電源2344の各々は、インターフェースまたはコントローラなどの、システムオンチップデバイス2322の構成要素に結合され得る。
デバイス2300は、ワイヤレス電話、モバイル通信デバイス、モバイルデバイス、モバイルフォン、スマートフォン、セルラーフォン、ラップトップコンピュータ、デスクトップコンピュータ、コンピュータ、タブレットコンピュータ、セットトップボックス、携帯情報端末(PDA)、ディスプレイデバイス、テレビ、ゲーム機、音楽プレーヤ、ラジオ、ビデオプレーヤ、エンターテインメントユニット、通信デバイス、固定ロケーションデータユニット、パーソナルメディアプレーヤ、デジタルビデプレーヤ、デジタルビデオディスク(DVD)プレーヤ、チューナー、カメラ、ナビゲーションデバイス、デコーダシステム、エンコーダシステム、またはそれらの任意の組合せを含み得る。
特定の態様では、図1〜図22を参照して説明したシステムおよびデバイス2300の1つまたは複数の構成要素は、復号システムもしくは装置(たとえば、電子デバイス、コーデック、もしくはその中のプロセッサ)、符号化システムもしくは装置、または両方に組み込まれ得る。他の態様では、図1〜図22を参照して説明したシステムおよびデバイス2300の1つまたは複数の構成要素は、ワイヤレス電話、タブレットコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、テレビ、ゲーム機、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、パーソナルメディアプレーヤ、または別のタイプのデバイスに組み込まれ得る。
図1〜図22を参照して説明したシステムおよびデバイス2300の1つまたは複数の構成要素によって実行される様々な機能は、いくつかの構成要素またはモジュールによって実行されるものとして説明されていることに留意されたい。構成要素およびモジュールのこの分割は、説明のためのものにすぎない。代替の態様では、特定の構成要素またはモジュールによって実行される機能が、複数の構成要素またはモジュールに分割され得る。さらに、代替の態様では、図1〜図22を参照して説明した2つ以上の構成要素またはモジュールが、単一の構成要素またはモジュールに組み込まれ得る。図1〜図22を参照して説明した各々の構成要素またはモジュールは、ハードウェア(たとえば、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、DSP、コントローラなど)、ソフトウェア(たとえば、プロセッサによって実行可能な命令)、またはそれらの任意の組合せを使用して実装され得る。
説明した態様とともに、装置が、2つのオーディオチャネルの間の時間的不一致の量を示す不一致値を決定するための手段を含む。たとえば、決定するための手段は、図1の時間的等化器108、エンコーダ114、第1のデバイス104、メディアコーデック2308、プロセッサ2310、デバイス2300、不一致値を決定するように構成された1つもしくは複数のデバイス(たとえば、コンピュータ可読記憶デバイスに記憶された命令を実行するプロセッサ)、またはそれらの組合せを含み得る。2つのオーディオチャネル(たとえば、図1の第1のオーディオ信号130および第2のオーディオ信号132)のうちの先行オーディオチャネルは、基準チャネル(たとえば、図17の基準信号1740)に対応し得る。2つのオーディオチャネル(たとえば、第1のオーディオ信号130および第2のオーディオ信号132)のうちの遅行オーディオチャネルは、ターゲットチャネル(たとえば、図17のターゲット信号1742)に対応し得る。
装置はまた、基準チャネルおよび修正されたターゲットチャネルに基づいて生成される少なくとも1つの符号化されたチャネルを生成するための手段を含む。たとえば、生成するための手段は、送信機110、少なくとも1つの符号化された信号を生成するように構成された1つもしくは複数のデバイス、またはそれらの組合せを含み得る。修正されたターゲットチャネル(たとえば、図17の調整されたターゲット信号1752)は、不一致値(たとえば、図1の最終シフト値116)に基づいてターゲットチャネルを調整する(たとえば、シフトする)ことによって生成され得る。
同じく説明した態様とともに、装置が、第2のオーディオ信号に対する第1のオーディオ信号のシフトを示す最終シフト値を決定するための手段を含む。たとえば、決定するための手段は、図1の時間的等化器108、エンコーダ114、第1のデバイス104、メディアコーデック2308、プロセッサ2310、デバイス2300、シフト値を決定するように構成された1つもしくは複数のデバイス(たとえば、コンピュータ可読記憶デバイスに記憶された命令を実行するプロセッサ)、またはそれらの組合せを含み得る。
装置はまた、第1のオーディオ信号の第1のサンプルおよび第2のオーディオ信号の第2のサンプルに基づいて生成された少なくとも1つの符号化された信号を送信するための手段を含む。たとえば、送信するための手段は、送信機110、少なくとも1つの符号化された信号を送信するように構成された1つもしくは複数のデバイス、またはそれらの組合せを含み得る。第2のサンプル(たとえば、図3のサンプル358〜364)は、最終シフト値(たとえば、最終シフト値116)に基づく量だけ、第1のサンプル(たとえば、図3のサンプル326〜332)に対して時間シフトされ得る。
図24を参照すると、基地局2400の特定の説明のための例のブロック図が示されている。様々な実装形態では、基地局2400は、図24に示すよりも多い構成要素または少ない構成要素を有し得る。説明のための例では、基地局2400は、図1の第1のデバイス104、第2のデバイス106、図2の第1のデバイス204、またはそれらの組合せを含み得る。説明のための例では、基地局2400は、図1〜図23を参照して説明した方法またはシステムのうちの1つまたは複数に従って動作し得る。
基地局2400は、ワイヤレス通信システムの一部であり得る。ワイヤレス通信システムは、複数の基地局および複数のワイヤレスデバイスを含み得る。ワイヤレス通信システムは、ロングタームエボリューション(LTE)システム、符号分割多元接続(CDMA)システム、モバイル通信用グローバルシステム(GSM:Global System for Mobile Communications)システム、ワイヤレスローカルエリアネットワーク(WLAN)システム、または何らかの他のワイヤレスシステムであり得る。CDMAシステムは、広帯域CDMA(WCDMA)、CDMA 1X、エボリューションデータオプティマイズド(EVDO)、時分割同期CDMA(TD-SCDMA)、またはCDMAの何らかの他のバージョンを実装し得る。
ワイヤレスデバイスは、ユーザ機器(UE)、移動局、端末、アクセス端末、加入者ユニット、局などと呼ばれる場合もある。ワイヤレスデバイスは、セルラーフォン、スマートフォン、タブレット、ワイヤレスモデム、携帯情報端末(PDA)、ハンドヘルドデバイス、ラップトップコンピュータ、スマートブック、ネットブック、タブレット、コードレスフォン、ワイヤレスローカルループ(WLL)局、ブルートゥースデバイスなどを含み得る。ワイヤレスデバイスは、図23のデバイス2300を含むか、またはそれに対応する場合がある。
メッセージおよびデータ(たとえば、オーディオデータ)を送受信することなどの様々な機能は、基地局2400の1つもしくは複数の構成要素によって(かつ/または図示されていない他の構成要素において)実行され得る。特定の例では、基地局2400はプロセッサ2406(たとえば、CPU)を含む。基地局2400はトランスコーダ2410を含み得る。トランスコーダ2410は、オーディオコーデック2408を含み得る。たとえば、トランスコーダ2410は、オーディオコーデック2408の動作を実行するように構成された1つまたは複数の構成要素(たとえば、回路)を含み得る。別の例として、トランスコーダ2410は、オーディオコーデック2408の動作を実行するための1つまたは複数のコンピュータ可読命令を実行するように構成され得る。オーディオコーデック2408はトランスコーダ2410の構成要素として示されているが、他の例では、オーディオコーデック2408の1つまたは複数の構成要素が、プロセッサ2406、別の処理構成要素、またはそれらの組合せに含まれ得る。たとえば、デコーダ2438(たとえば、ボコーダデコーダ)が受信機データプロセッサ2464に含まれ得る。別の例として、エンコーダ2436(たとえば、ボコーダエンコーダ)が送信データプロセッサ2482に含まれ得る。
トランスコーダ2410は、2つ以上のネットワークの間でメッセージおよびデータをトランスコーディングするように機能することができる。トランスコーダ2410は、メッセージおよびオーディオデータを第1のフォーマット(たとえば、デジタルフォーマット)から第2のフォーマットに変換するように構成され得る。例示すると、デコーダ2438は、第1のフォーマットを有する符号化された信号を復号することができ、エンコーダ2436は、復号された信号を、第2のフォーマットを有する符号化された信号に符号化することができる。追加または代替として、トランスコーダ2410は、データレート適応を実行するように構成され得る。たとえば、トランスコーダ2410は、オーディオデータのフォーマットを変更することなく、データレートをダウンコンバートすること、またはデータレートをアップコンバートすることができる。例示すると、トランスコーダ2410は、64kbit/s信号を16kbit/s信号にダウンコンバートすることができる。
オーディオコーデック2408は、エンコーダ2436およびデコーダ2438を含み得る。エンコーダ2436は、図1のエンコーダ114、図2のエンコーダ214、または両方を含み得る。デコーダ2438は、図1のデコーダ118を含み得る。
基地局2400はメモリ2432を含み得る。コンピュータ可読記憶デバイスなどのメモリ2432は、命令を含み得る。命令は、図1〜図23の方法およびシステムを参照して説明した1つまたは複数の動作を実行するために、プロセッサ2406、トランスコーダ2410、またはそれらの組合せによって実行可能である1つまたは複数の命令を含み得る。基地局2400は、アンテナのアレイに結合された第1のトランシーバ2452および第2のトランシーバ2454などの複数の送信機および受信機(たとえば、トランシーバ)を含み得る。アンテナのアレイは、第1のアンテナ2442および第2のアンテナ2444を含み得る。アンテナのアレイは、図23のデバイス2300などの1つまたは複数のワイヤレスデバイスとワイヤレス通信するように構成され得る。たとえば、第2のアンテナ2444は、ワイヤレスデバイスからデータストリーム2414(たとえば、ビットストリーム)を受信し得る。データストリーム2414は、メッセージ、データ(たとえば、符号化されたスピーチデータ)、またはそれらの組合せを含み得る。
基地局2400は、バックホール接続などのネットワーク接続2460を含み得る。ネットワーク接続2460は、ワイヤレス通信ネットワークのコアネットワークまたは1つもしくは複数の基地局と通信するように構成され得る。たとえば、基地局2400は、ネットワーク接続2460を介してコアネットワークから第2のデータストリーム(たとえば、メッセージまたはオーディオデータ)を受信し得る。基地局2400は、第2のデータストリームを処理してメッセージまたはオーディオデータを生成し、アンテナのアレイの1つもしくは複数のアンテナを介して1つもしくは複数のワイヤレスデバイスに、またはネットワーク接続2460を介して別の基地局に、メッセージまたはオーディオデータを提供することができる。特定の実装形態では、ネットワーク接続2460は、説明のための非限定的な例として、ワイドエリアネットワーク(WAN)接続であってよい。いくつかの実装形態では、コアネットワークは、公衆交換電話網(PSTN)、パケットバックボーンネットワーク、もしくは両方を含むか、またはそれらに対応する場合がある。
基地局2400は、ネットワーク接続2460およびプロセッサ2406に結合されたメディアゲートウェイ2470を含み得る。メディアゲートウェイ2470は、異なる電気通信技術のメディアストリーム間で変換するように構成され得る。たとえば、メディアゲートウェイ2470は、異なる送信プロトコル、異なるコーディング方式、またはその両方の間で変換し得る。例示すると、メディアゲートウェイ2470は、説明のための非限定的な例として、PCM信号からリアルタイムトランスポートプロトコル(RTP)信号に変換し得る。メディアゲートウェイ2470は、パケット交換ネットワーク(たとえば、ボイスオーバーインターネットプロトコル(VoIP)ネットワーク、IPマルチメディアサブシステム(IMS)、LTE、WiMax、およびUMBなどの第4世代(4G)ワイヤレスネットワークなど)、回線交換ネットワーク(たとえば、PSTN)、ならびにハイブリッドネットワーク(たとえば、GSM、GPRS、およびEDGEなどの第2世代(2G)ワイヤレスネットワーク、WCDMA、EV-DO、およびHSPAなどの第3世代(3G)ワイヤレスネットワークなど)の間でデータを変換することができる。
加えて、メディアゲートウェイ2470は、トランスコーダ2410などのトランスコーダを含む場合があり、コーデックの互換性がないときにデータをトランスコーディングするように構成され得る。たとえば、メディアゲートウェイ2470は、説明のための非限定的な例として、適応マルチレート(AMR)コーデックとG.711コーデックとの間をトランスコーディングすることができる。メディアゲートウェイ2470は、ルータおよび複数の物理インターフェースを含み得る。いくつかの実装形態では、メディアゲートウェイ2470はコントローラ(図示せず)を含む場合もある。特定の実装形態では、メディアゲートウェイコントローラは、メディアゲートウェイ2470の外部、基地局2400の外部、または両方にあり得る。メディアゲートウェイコントローラは、複数のメディアゲートウェイの動作を制御および調整することができる。メディアゲートウェイ2470は、メディアゲートウェイコントローラから制御信号を受信することができ、様々な伝送技術間をブリッジするように機能することができ、エンドユーザの機能および接続にサービスを追加することができる。
基地局2400は、トランシーバ2452、2454、受信機データプロセッサ2464、およびプロセッサ2406に結合された復調器2462を含む場合があり、受信機データプロセッサ2464は、プロセッサ2406に結合される場合がある。復調器2462は、トランシーバ2452、2454から受信された変調信号を復調し、復調されたデータを受信機データプロセッサ2464に提供するように構成され得る。受信機データプロセッサ2464は、復調されたデータからメッセージまたはオーディオデータを抽出し、メッセージまたはオーディオデータをプロセッサ2406に送るように構成され得る。
基地局2400は、送信データプロセッサ2482および送信多入力多出力(MIMO)プロセッサ2484を含み得る。送信データプロセッサ2482は、プロセッサ2406および送信MIMOプロセッサ2484に結合され得る。送信MIMOプロセッサ2484は、トランシーバ2452、2454、およびプロセッサ2406に結合され得る。いくつかの実装形態では、送信MIMOプロセッサ2484は、メディアゲートウェイ2470に結合され得る。送信データプロセッサ2482は、プロセッサ2406からメッセージまたはオーディオデータを受信し、説明のための非限定的な例として、CDMAまたは直交周波数分割多重化(OFDM)などのコーディング方式に基づいて、メッセージまたはオーディオデータをコーディングするように構成され得る。送信データプロセッサ2482は、コーディングされたデータを送信MIMOプロセッサ2484に提供し得る。
コーディングされたデータは、多重化データを生成するために、CDMA技法またはOFDM技法を使用して、パイロットデータなどの他のデータと多重化され得る。次いで、多重化データは、変調シンボルを生成するために、特定の変調方式(たとえば、二位相シフトキーイング(「BPSK」)、四位相シフトキーイング(「QSPK」)、多値位相シフトキーイング(「M-PSK」)、多値直交振幅変調(「M-QAM」)など)に基づいて、送信データプロセッサ2482によって変調(すなわち、シンボルマッピング)され得る。特定の実装形態では、コーディングされたデータおよび他のデータは、様々な変調方式を使用して変調され得る。データストリームごとのデータレート、コーディング、および変調は、プロセッサ2406によって実行される命令によって決定され得る。
送信MIMOプロセッサ2484は、送信データプロセッサ2482から変調シンボルを受信するように構成されてよく、変調シンボルをさらに処理することができ、データに対してビームフォーミングを実行することができる。たとえば、送信MIMOプロセッサ2484は、変調シンボルにビームフォーミング重みを適用することができる。ビームフォーミング重みは、変調シンボルが送信されるアンテナのアレイの1つまたは複数のアンテナに対応し得る。
動作中、基地局2400の第2のアンテナ2444は、データストリーム2414を受信することができる。第2のトランシーバ2454は、第2のアンテナ2444からデータストリーム2414を受信することができ、復調器2462にデータストリーム2414を提供することができる。復調器2462は、データストリーム2414の変調信号を復調し、復調されたデータを受信機データプロセッサ2464に提供することができる。受信機データプロセッサ2464は、復調されたデータからオーディオデータを抽出し、抽出されたオーディオデータをプロセッサ2406に提供することができる。
プロセッサ2406はオーディオデータを、トランスコーディングするためにトランスコーダ2410に提供することができる。トランスコーダ2410のデコーダ2438は、第1のフォーマットからのオーディオデータを復号されたオーディオデータに復号することができ、エンコーダ2436は、復号されたオーディオデータを第2のフォーマットに符号化することができる。いくつかの実装形態では、エンコーダ2436はオーディオデータを、ワイヤレスデバイスから受信されるよりも高いデータレート(たとえば、アップコンバート)または低いデータレート(たとえば、ダウンコンバート)を使用して符号化することができる。他の実装形態では、オーディオデータはトランスコーディングされないことがある。トランスコーディング(たとえば、復号および符号化)はトランスコーダ2410によって実行されるものとして示されているが、トランスコーディング動作(たとえば、復号および符号化)は基地局2400の複数の構成要素によって実行されてよい。たとえば、復号は受信機データプロセッサ2464によって実行され得、符号化は送信データプロセッサ2482によって実行され得る。他の実装形態では、プロセッサ2406はオーディオデータを、別の送信プロトコル、コーディング方式、またはその両方への変換のためにメディアゲートウェイ2470に提供し得る。メディアゲートウェイ2470は、変換されたデータを、ネットワーク接続2460を介して別の基地局またはコアネットワークに提供し得る。
エンコーダ2436は、第1のオーディオ信号130と第2のオーディオ信号132との間の時間遅延を示す最終シフト値116を決定し得る。エンコーダ2436は、最終シフト値116に基づいて第1のオーディオ信号130および第2のオーディオ信号132を符号化することによって、符号化された信号102、利得パラメータ160、または両方を生成し得る。エンコーダ2436は、最終シフト値116に基づいて基準信号インジケータ164および非因果的シフト値162を生成し得る。デコーダ118は、基準信号インジケータ164、非因果的シフト値162、利得パラメータ160、またはそれらの組合せに基づいて、符号化された信号を復号することによって、第1の出力信号126および第2の出力信号128を生成し得る。トランスコーディングされたデータなど、エンコーダ2436において生成された符号化されたオーディオデータは、プロセッサ2406を介して送信データプロセッサ2482またはネットワーク接続2460に提供され得る。
トランスコーダ2410からのトランスコーディングされたオーディオデータは、変調シンボルを生成するために、OFDMなどの変調方式によるコーディング用に送信データプロセッサ2482に提供され得る。送信データプロセッサ2482は、変調シンボルを、さらなる処理およびビームフォーミングのために送信MIMOプロセッサ2484に提供することができる。送信MIMOプロセッサ2484は、ビームフォーミング重みを適用することができ、第1のトランシーバ2452を介して、第1のアンテナ2442などのアンテナのアレイの1つまたは複数のアンテナに変調シンボルを提供することができる。したがって、基地局2400は、ワイヤレスデバイスから受信されたデータストリーム2414に対応するトランスコーディングされたデータストリーム2416を、別のワイヤレスデバイスに提供することができる。トランスコーディングされたデータストリーム2416は、データストリーム2414とは異なる符号化フォーマット、データレート、または両方を有する場合がある。他の実装形態では、トランスコーディングされたデータストリーム2416は、別の基地局またはコアネットワークへの送信用に、ネットワーク接続2460に提供され得る。
したがって、基地局2400は、プロセッサ(たとえば、プロセッサ2406またはトランスコーダ2410)によって実行されると、第1のオーディオ信号と第2のオーディオ信号との間の時間遅延の量を示すシフト値を決定することを含む動作をプロセッサに実行させる命令を記憶するコンピュータ可読記憶デバイス(たとえば、メモリ2432)を含み得る。第1のオーディオ信号は第1のマイクロフォンを介して受信され、第2のオーディオ信号は第2のマイクロフォンを介して受信される。動作はまた、シフト値に基づいて第2のオーディオ信号をシフトすることによって、時間シフトされた第2のオーディオ信号を生成することを含む。動作は、第1のオーディオ信号の第1のサンプルおよび時間シフトされた第2のオーディオ信号の第2のサンプルに基づいて、少なくとも1つの符号化された信号を生成することをさらに含む。動作はまた、少なくとも1つの符号化された信号をデバイスに送ることを含む。
本明細書で開示する態様に関して説明した様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップは、電子ハードウェアとして、ハードウェアプロセッサなどの処理デバイスによって実行されるコンピュータソフトウェアとして、または両方の組合せとして実装され得ることを、当業者ならさらに理解するであろう。様々な例示的な構成要素、ブロック、構成、モジュール、回路、およびステップについては、それらの機能の点から一般に上述した。そのような機能がハードウェアとして実装されるか実行可能なソフトウェアとして実装されるかは、特定の適用例と、システム全体に課される設計制約とに依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装することができるが、そのような実装の決定が本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
本明細書で開示する態様に関して説明した方法またはアルゴリズムのステップは、ハードウェアにおいて直接具現化されても、プロセッサによって実行されるソフトウェアモジュールにおいて具現化されても、またはその2つの組合せにおいて具現化されてもよい。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、磁気抵抗ランダムアクセスメモリ(MRAM)、スピントルクトランスファーMRAM(STT-MRAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、またはコンパクトディスク読取り専用メモリ(CD-ROM)などのメモリデバイスに存在し得る。例示的なメモリデバイスは、プロセッサに結合され、それにより、プロセッサは、情報をメモリデバイスから読み取ることおよびメモリデバイスに書き込むことができる。代替として、メモリデバイスは、プロセッサに統合されてよい。プロセッサおよび記憶媒体は、特定用途向け集積回路(ASIC)に存在し得る。ASICは、コンピューティングデバイスまたはユーザ端末に存在し得る。代替として、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末に別個の構成要素として存在し得る。
開示した態様の上記の説明は、開示した態様を当業者が作製または使用できるようにするために提供される。これらの態様への様々な変更は当業者には容易に明らかになり、本明細書において規定された原理は、本開示の範囲から逸脱することなく、他の態様に適用されてもよい。したがって、本開示は、本明細書に示される態様に限定されることを意図するものではなく、以下の特許請求の範囲によって規定される原理および新規の特徴と一致する取り得る最も広い範囲を与えられるべきである。