複数のオーディオ信号を符号化するように動作可能なシステムおよびデバイスが開示される。デバイスが、複数のオーディオ信号を符号化するように構成されるエンコーダを含んでもよい。複数のオーディオ信号は、複数の記録デバイス、たとえば複数のマイクロフォンを使用して、同時にキャプチャされてもよい。いくつかの例では、複数のオーディオ信号(またはマルチチャネルオーディオ)は、同時にまたは異なる時間に記録されたいくつかのオーディオチャネルを多重化することによって、合成的に(たとえば、人工的に)生成されてもよい。説明のための例として、オーディオチャネルの同時記録または多重化は、2チャネル構成(すなわち、ステレオ:左および右)、5.1チャネル構成(左、右、中央、左サラウンド、右サラウンド、および低周波数強調(LFE:low frequency emphasis)チャネル)、7.1チャネル構成、7.1+4チャネル構成、22.2チャネル構成、またはNチャネル構成をもたらす場合がある。
遠隔会議室(またはテレプレゼンス室)におけるオーディオキャプチャデバイスは、空間オーディオを取得する複数のマイクロフォンを含んでもよい。空間オーディオは、符号化され送信されるスピーチならびに背景オーディオを含んでもよい。所与の音源(たとえば、話者)からのスピーチ/オーディオは複数のマイクロフォンに、マイクロフォンがどのように配置されているか、ならびに音源(たとえば、話者)がマイクロフォンおよび部屋の寸法に対してどこに位置するかに応じて、異なる時間に到着する場合がある。たとえば、音源(たとえば、話者)が、デバイスに関連する第2のマイクロフォンよりも、デバイスに関連する第1のマイクロフォンに近いことがある。したがって、音源から出された音が、第2のマイクロフォンよりも時間的に早く第1のマイクロフォンに到着することがある。デバイスは、第1のマイクロフォンを介して第1のオーディオ信号を受信することがあり、第2のマイクロフォンを介して第2のオーディオ信号を受信することがある。
ミッド-サイド(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キロヘルツ(kHz)未満)において波形コーディングされ、チャネル間位相保持が知覚的にさほど重要ではない上位バンド(たとえば、2kHz以上)においてPSコーディングされてもよい。いくつかの実装形態では、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は、周波数依存である複素数値に対応する。式1または式2に基づいてミッドチャネルおよびサイドチャネルを生成することは、「ダウンミキシング」アルゴリズムを実行することと呼ばれる場合がある。式1または式2に基づいてミッドチャネルおよびサイドチャネルから左チャネルおよび右チャネルを生成する逆プロセスは、「アップミキシング」アルゴリズムを実行することと呼ばれる場合がある。
いくつかの場合には、ミッドチャネルは、以下のような他の式に基づくことがある。
M=(L+gDR)/2、 式3または
M=g1L+g2R 式4
ここでg1+g2=1.0であり、gDは利得パラメータである。他の例では、ダウンミックスはバンド内で実行され、mid(b)=c1L(b)+c2R(b)であり、ここでc1およびc2は複素数であり、side(b)=c3L(b)-c4R(b)であり、ここでc3およびc4は複素数である。
特定のフレームに関してMSコーディングまたはデュアル-モノコーディングの間で選択するために使用されるアドホック手法が、ミッドチャネルおよびサイドチャネルを生成することと、ミッドチャネルおよびサイドチャネルのエネルギーを計算することと、エネルギーに基づいてMSコーディングを実行するかどうかを判断することとを含んでもよい。たとえば、MSコーディングは、サイドチャネルおよびミッドチャネルのエネルギーの比率がしきい値未満であるとの判断に応答して実行されてもよい。例示すると、右チャネルが少なくとも第1の時間(たとえば、約0.001秒または48kHzで48サンプル)だけシフトされる場合、有声スピーチフレームに関して(左信号と右信号との和に対応する)ミッドチャネルの第1のエネルギーが(左信号と右信号との間の差に対応する)サイドチャネルの第2のエネルギーと同等である場合がある。第1のエネルギーが第2のエネルギーと同等であるとき、より多くのビットがサイドチャネルを符号化するために使用され、それによって、デュアル-モノコーディングに対してMSコーディングのコーディング効率が低下する場合がある。したがって、第1のエネルギーが第2のエネルギーと同等であるとき(たとえば、第1のエネルギーおよび第2のエネルギーの比率がしきい値以上であるとき)には、デュアル-モノコーディングが使用される場合がある。代替手法では、特定のフレームに関するMSコーディングとデュアル-モノコーディングとの間の判断は、しきい値と左チャネルおよび右チャネルの正規化相互相関値との比較に基づいて行われてもよい。
いくつかの例では、エンコーダは、第1のオーディオ信号と第2のオーディオ信号との間の時間的不一致の量を示す不一致値を決定する場合がある。本明細書で使用する「時間的シフト値」、「シフト値」、および「不一致値」は互換的に使用される場合がある。たとえば、エンコーダは、第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のフレーム、Xが、第1の時間(m1)に受信されてもよい。ターゲットオーディオチャネルの第1の特定のフレーム、Yが、第1のシフト値、たとえばshift1=n1-m1に対応する第2の時間(n1)に受信されてもよい。さらに、基準オーディオチャネルの第2のフレームが、第3の時間(m2)に受信されてもよい。ターゲットオーディオチャネルの第2の特定のフレームが、第2のシフト値、たとえばshift2=n2-m2に対応する第4の時間(n2)に受信されてもよい。
デバイスは、フレーム(たとえば、20msごとのサンプル)を第1のサンプリングレート(たとえば、32kHzサンプリングレート(すなわち、フレームあたり640サンプル))で生成するために、フレーミングまたはバッファリングアルゴリズムを実行してもよい。エンコーダは、第1のオーディオ信号の第1のフレームおよび第2のオーディオ信号の第2のフレームがデバイスに同時に到着するとの判断に応答して、シフト値(たとえば、shift1)を、0サンプルに等しいと推定してもよい。(たとえば、第1のオーディオ信号に対応する)左チャネルおよび(たとえば、第2のオーディオ信号に対応する)右チャネルが時間的に整合してもよい。いくつかの場合には、左チャネルおよび右チャネルは、整合するときでも、様々な理由(たとえば、マイクロフォンのキャリブレーション)によりエネルギーが異なる場合がある。
いくつかの例では、左チャネルおよび右チャネルは、様々な理由(たとえば、話者などの音源がマイクロフォンのうちの一方に、もう一方よりも近いことがあり、2つのマイクロフォンがしきい値(たとえば、1〜20センチメートル)の距離を超えて離れていることがある)により時間的に不整合することがある。マイクロフォンに対する音源のロケーションは、第1のチャネルおよび第2のチャネルにおいて異なる遅延をもたらす場合がある。さらに、第1のチャネルと第2のチャネルとの間の利得差、エネルギー差、またはレベル差がある場合がある。
いくつかの例では、3つ以上のチャネルがある場合、基準チャネルが、チャネルのレベルまたはエネルギーに基づいて最初に選択され、その後、チャネルの異なるペア、たとえば、t1(ref,ch2)、t2(ref,ch3)、t3(ref,ch4)、…t3(ref,chN)など(最初はch1が基準チャネルであり、t1(.)、t2(.)などが、不一致値を推定するための関数である)の間の時間的不一致値に基づいて精緻化される。すべての時間的不一致値が正である場合、ch1が基準チャネルとして扱われる。不一致値のいずれかが負の値である場合、基準チャネルは、負の値をもたらした不一致値に関連付けられたチャネルに再構成され、上記のプロセスは、基準チャネルの最良の選択(すなわち、最大数のサイドチャネルを最大限に相関解除することに基づく)が達成されるまで続けられる。基準チャネル選択の急激な変動を克服するためにヒステリシスが使用されてもよい。
いくつかの例では、複数の音源(たとえば、話者)からのマイクロフォンにおけるオーディオ信号の到着時間が、複数の話者が(たとえば、重複することなく)交互に話しているときに異なることがある。そのような場合、エンコーダは、基準チャネルを識別するために話者に基づいて時間的シフト値を動的に調整してもよい。いくつかの他の例では、複数の話者が同時に話していることがあり、その結果、誰が最も声の大きい話者であるか、マイクロフォンに最も近いかなどに応じて、異なる時間的シフト値が生じることがある。そのような場合、基準チャネルおよびターゲットチャネルの識別は、現在フレームにおける様々な時間的シフト値、前フレームにおける推定時間的不一致値、ならびに第1のオーディオ信号および第2のオーディオ信号のエネルギー(または時間的推移)に基づいてもよい。
いくつかの例では、第1のオーディオ信号および第2のオーディオ信号は、2つの信号が弱い相関(たとえば、相関なし)を潜在的に示すときに、合成または人工的に生成されてもよい。本明細書で説明する例は説明のためのものであり、同様の状況または異なる状況における第1のオーディオ信号と第2のオーディオ信号との間の関係を判断する際に有益である場合があることを理解されたい。
エンコーダは、第1のオーディオ信号の第1のフレームと第2のオーディオ信号の複数のフレームとの比較に基づいて、比較値(たとえば、差値または相互相関値)を生成してもよい。複数のフレームの各フレームは、特定のシフト値に対応する場合がある。エンコーダは、比較値に基づいて第1の推定シフト値を生成してもよい。たとえば、第1の推定シフト値は、第1のオーディオ信号の第1のフレームと第2のオーディオ信号の対応する第1のフレームとの間のより高い時間的類似性(またはより小さい差)を示す比較値に対応する場合がある。
エンコーダは最終シフト値を、複数の段階において一連の推定シフト値を精緻化することによって決定してもよい。たとえば、エンコーダは最初に、第1のオーディオ信号および第2のオーディオ信号のステレオ前処理され、かつリサンプリングされたバージョンから生成された比較値に基づいて、「暫定的」シフト値を推定してもよい。エンコーダは、推定「暫定的」シフト値に最も近いシフト値に関連する補間済み比較値を生成してもよい。エンコーダは、補間済み比較値に基づいて、第2の推定「補間済み」シフト値を決定してもよい。たとえば、第2の推定「補間済み」シフト値は、残りの補間済み比較値および第1の推定「暫定的」シフト値よりも高い時間的類似性(または小さい差)を示す特定の補間済み比較値に対応する場合がある。現在フレーム(たとえば、第1のオーディオ信号の第1のフレーム)の第2の推定「補間済み」シフト値が前フレーム(たとえば、第1のフレームに先行する第1のオーディオ信号のフレーム)の最終シフト値とは異なる場合、現在フレームの「補間済み」シフト値は、第1のオーディオ信号とシフトされた第2のオーディオ信号との間の時間的類似性を改善するためにさらに「補正」される。具体的には、第3の推定「補正済み」シフト値が、現在フレームの第2の推定「補間済み」シフト値および前フレームの最終推定シフト値の辺りを探索することによって、時間的類似性のより正確な測定値に対応する場合がある。第3の推定「補正済み」シフト値は、フレーム間のシフト値の見せかけの(spurious)変化を制限することによって最終シフト値を推定するようにさらに調整され、本明細書で説明するように2つの連続するフレームにおいて負のシフト値から正のシフト値に(またはその逆に)切り替わらないようにさらに制御される。
いくつかの例では、エンコーダは、連続フレームまたは隣接フレームにおいて正のシフト値と負のシフト値との間またはその逆で切り替えるのを控えてもよい。たとえば、エンコーダは最終シフト値を、第1のフレームの推定「補間済み」または「補正済み」シフト値および第1のフレームに先行する特定のフレームにおける対応する推定「補間済み」または「補正済み」または最終シフト値に基づいて、時間的シフトなしを示す特定の値(たとえば、0)に設定してもよい。例示すると、エンコーダは、現在フレーム(たとえば、第1のフレーム)の最終シフト値を、現在フレームの推定「暫定的」または「補間済み」または「補正済み」シフト値の一方が正であり、前フレーム(たとえば、第1のフレームに先行するフレーム)の推定「暫定的」または「補間済み」または「補正済み」または「最終」推定シフト値の他方が負であるとの判断に応答して、時間的シフトなし、すなわちshift1=0を示すように設定してもよい。代替的に、エンコーダはまた、現在フレーム(たとえば、第1のフレーム)の最終シフト値を、現在フレームの推定「暫定的」または「補間済み」または「補正済み」シフト値の一方が負であり、前フレーム(たとえば、第1のフレームに先行するフレーム)の推定「暫定的」または「補間済み」または「補正済み」または「最終」推定シフト値の他方が正であるとの判断に応答して、時間的シフトなし、すなわちshift1=0を示すように設定してもよい。
エンコーダは、シフト値に基づいて「基準」または「ターゲット」として、第1のオーディオ信号または第2のオーディオ信号のフレームを選択してもよい。たとえば、最終シフト値が正であるとの判断に応答して、エンコーダは、第1のオーディオ信号が「基準」チャネルであること、および第2のオーディオ信号が「ターゲット」チャネルであることを示す第1の値(たとえば、0)を有する基準チャネルまたは信号インジケータを生成してもよい。代替的に、最終シフト値が負であるとの判断に応答して、エンコーダは、第2のオーディオ信号が「基準」チャネルであること、および第1のオーディオ信号が「ターゲット」チャネルであることを示す第2の値(たとえば、1)を有する基準チャネルまたは信号インジケータを生成してもよい。
エンコーダは、基準チャネルおよび非因果的シフトされたターゲットチャネルに関連する相対利得(たとえば、相対利得パラメータ)を推定してもよい。たとえば、最終シフト値が正であるとの判断に応答して、エンコーダは、非因果的シフト値(たとえば、最終シフト値の絶対値)によってオフセットされる第2のオーディオ信号に対する第1のオーディオ信号のエネルギーまたは電力レベルを正規化または等化するための利得値を推定してもよい。代替的に、最終シフト値が負であるとの判断に応答して、エンコーダは、第2のオーディオ信号に対する第1のオーディオ信号の電力または振幅レベルを正規化または等化するための利得値を推定してもよい。いくつかの例では、エンコーダは、非因果的シフトされた「ターゲット」チャネルに対する「基準」チャネルの振幅または電力レベルを正規化または等化するための利得値を推定してもよい。他の例では、エンコーダは、ターゲットチャネル(たとえば、シフトされていないターゲットチャネル)に対する基準チャネルに基づく利得値(たとえば、相対利得値)を推定してもよい。
エンコーダは、基準チャネル、ターゲットチャネル、非因果的シフト値、および相対利得パラメータに基づいて、少なくとも1つの符号化された信号(たとえば、ミッドチャネル、サイドチャネル、または両方)を生成してもよい。他の実装形態では、エンコーダは、基準チャネルおよび時間的不一致調整済みターゲットチャネルに基づいて少なくとも1つの符号化された信号(たとえば、ミッドチャネル、サイドチャネル、または両方)を生成する場合がある。サイドチャネルは、第1のオーディオ信号の第1のフレームの第1のサンプルと第2のオーディオ信号の被選択フレームの被選択サンプルとの間の差に対応する場合がある。エンコーダは、最終シフト値に基づいて被選択フレームを選択してもよい。第1のフレームと同時にデバイスによって受信される第2のオーディオ信号のフレームに対応する第2のオーディオ信号の他のサンプルと比較して、第1のサンプルと被選択サンプルとの間の差が縮小することに起因して、サイドチャネル信号を符号化するために、より少ないビットが使用される場合がある。デバイスのトランスミッタは、少なくとも1つの符号化された信号、非因果的シフト値、相対利得パラメータ、基準チャネルまたは信号インジケータ、あるいはそれらの組合せを送信してもよい。
エンコーダは、基準チャネル、ターゲットチャネル、非因果的シフト値、相対利得パラメータ、第1のオーディオ信号の特定のフレームのローバンドパラメータ、特定のフレームのハイバンドパラメータ、またはそれらの組合せに基づいて、少なくとも1つの符号化された信号(たとえば、ミッドチャネル、サイドチャネル、または両方)を生成してもよい。特定のフレームは、第1のフレームに先行してもよい。1つまたは複数の先行フレームからのいくつかのローバンドパラメータ、ハイバンドパラメータ、またはそれらの組合せは、第1のフレームのミッドチャネル、サイドチャネル、または両方を符号化するために使用される場合がある。ローバンドパラメータ、ハイバンドパラメータ、またはそれらの組合せに基づいてミッドチャネル、サイドチャネル、または両方を符号化することは、非因果的シフト値およびチャネル間相対利得パラメータの推定値を含んでもよい。ローバンドパラメータ、ハイバンドパラメータ、またはそれらの組合せは、ピッチパラメータ、有声化パラメータ(voicing parameter)、コーダタイプパラメータ、ローバンドエネルギーパラメータ、ハイバンドエネルギーパラメータ、チルトパラメータ、ピッチ利得パラメータ、FCB利得パラメータ、コーディングモードパラメータ、音声活動パラメータ、雑音推定パラメータ、信号対雑音比パラメータ、フォルマントシェーピングパラメータ、スピーチ/ミュージック判断パラメータ、非因果的シフト、チャネル間利得パラメータ、またはそれらの組合せを含んでもよい。デバイスのトランスミッタは、少なくとも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、ならびに時間領域(TD)、周波数領域(FD)、および修正離散コサイン変換(MDCT)ベースの信号適応型「フレキシブル」ステレオコーダ109を含んでもよい。信号適応型フレキシブルステレオコーダ109は、本明細書で説明するように、複数のオーディオ信号をダウンミックスおよび符号化するように構成されてもよい。第1のデバイス104はまた、分析データ191を記憶するように構成されるメモリ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は、右チャネル信号または左チャネル信号のうちの他方に対応する場合がある。音源152(たとえば、ユーザ、スピーカー、周囲雑音、楽器など)は、第2のマイクロフォン148よりも第1のマイクロフォン146に近いことがある。したがって、音源152からのオーディオ信号が、第2のマイクロフォン148を介してよりも早い時間に第1のマイクロフォン146を介して入力インターフェース112において受信されてもよい。複数のマイクロフォンを通じたマルチチャネル信号取得のこの自然な遅延は、第1のオーディオ信号130と第2のオーディオ信号132との間の時間的シフトをもたらす場合がある。
時間的イコライザ108は、基準チャネルとターゲットチャネルとの間の時間的不一致の量を示す不一致値(たとえば、「最終シフト値」116または「非因果的シフト値」)を決定してもよい。一実装形態によれば、第1のオーディオ信号130は基準チャネルであり、第2のオーディオ信号132はターゲットチャネルである。別の実装形態によれば、第2のオーディオ信号132は基準チャネルであり、第1のオーディオ信号130はターゲットチャネルである。基準チャネルおよびターゲットチャネルはフレームごとに切り替わる場合がある。非限定的な例として、第1のオーディオ信号130のフレームが、第2のオーディオ信号132の対応するフレームが第2のマイクロフォン148に到着する前に、第1のマイクロフォン146に到着した場合、第1のオーディオ信号130は基準チャネルであることがあり、第2のオーディオ信号132はターゲットチャネルであることがある。代替的に、第2のオーディオ信号132のフレームが、第1のオーディオ信号130の対応するフレームが第1のマイクロフォン146に到着する前に、第2のマイクロフォン148に到着した場合、第2のオーディオ信号132は基準チャネルであることがあり、第1のオーディオ信号130はターゲットチャネルであることがある。ターゲットチャネルは、2つのオーディオ信号130、132のうちの遅行オーディオチャネルに対応する場合があり、基準チャネルは、2つのオーディオ信号130、132のうちの先行オーディオチャネルに対応する場合がある。したがって、基準チャネルおよびターゲットチャネルの指定は、マイクロフォン146、148に対する音源152のロケーションに依存する場合がある。
最終シフト値116の第1の値(たとえば、正の値)は、第2のオーディオ信号132が第1のオーディオ信号130に対して遅延していることを示してもよい。最終シフト値116の第2の値(たとえば、負の値)は、第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によって出された同じ音に対応する場合がある。第1のオーディオ信号130と第2のオーディオ信号132との間の遅延は、第1の特定のフレームが第2の特定のフレームに対して遅延している状態から第2のフレームが第1のフレームに対して遅延している状態に切り替わってもよい。代替的に、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延は、第2の特定のフレームが第1の特定のフレームに対して遅延している状態から第1のフレームが第2のフレームに対して遅延している状態に切り替わってもよい。時間的イコライザ108は、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延が符号を切り替えたとの判断に応答して、第3の値(たとえば、0)を示すように最終シフト値116を設定してもよい。
時間的イコライザ108は、最終シフト値116に基づいて基準チャネルインジケータを生成してもよい。たとえば、時間的イコライザ108は、最終シフト値116が第1の値(たとえば、正の値)を示すとの判断に応答して、第1のオーディオ信号130が「基準」チャネル190であることを示す第1の値(たとえば、0)を有するように基準チャネルインジケータを生成してもよい。時間的イコライザ108は、最終シフト値116が第1の値(たとえば、正の値)を示すとの判断に応答して、第2のオーディオ信号132が「ターゲット」チャネル(図示せず)に対応すると判断してもよい。代替的に、時間的イコライザ108は、最終シフト値116が第2の値(たとえば、負の値)を示すとの判断に応答して、第2のオーディオ信号132が「基準」チャネル190であることを示す第2の値(たとえば、1)を有するように基準チャネルインジケータを生成してもよい。時間的イコライザ108は、最終シフト値116が第2の値(たとえば、負の値)を示すとの判断に応答して、第1のオーディオ信号130が「ターゲット」チャネルに対応すると判断してもよい。時間的イコライザ108は、最終シフト値116が第3の値(たとえば、0)を示すとの判断に応答して、第1のオーディオ信号130が「基準」チャネル190であることを示す第1の値(たとえば、0)を有するように基準チャネルインジケータを生成してもよい。時間的イコライザ108は、最終シフト値116が第3の値(たとえば、0)を示すとの判断に応答して、第2のオーディオ信号132が「ターゲット」チャネルに対応すると判断してもよい。代替的に、時間的イコライザ108は、最終シフト値116が第3の値(たとえば、0)を示すとの判断に応答して、第2のオーディオ信号132が「基準」チャネル190であることを示す第2の値(たとえば、1)を有するように基準チャネルインジケータを生成してもよい。時間的イコライザ108は、最終シフト値116が第3の値(たとえば、0)を示すとの判断に応答して、第1のオーディオ信号130が「ターゲット」チャネルに対応すると判断してもよい。いくつかの実装形態では、時間的イコライザ108は、最終シフト値116が第3の値(たとえば、0)を示すとの判断に応答して、基準チャネルインジケータを変えないでおくことができる。たとえば、基準チャネルインジケータは、第1のオーディオ信号130の第1の特定のフレームに対応する基準チャネルインジケータと同じである場合がある。時間的イコライザ108は、最終シフト値116の絶対値を示す非因果的シフト値を生成してもよい。
時間的イコライザ108は、ターゲットチャネル、基準チャネル190、第1のシフト値(たとえば、前フレームに関するシフト値)、最終シフト値116、基準チャネルインジケータ、またはそれらの組合せに基づいて、ターゲットチャネルインジケータを生成してもよい。ターゲットチャネルインジケータは、第1のオーディオ信号130または第2のオーディオ信号132のうちのどちらがターゲットチャネルであるかを示してもよい。時間的イコライザ108は、ターゲットチャネルインジケータ、ターゲットチャネル、ステレオダウンミックスもしくはコーディングモード、またはそれらの組合せに少なくとも基づいて、調整済みターゲットチャネル192を生成するためにターゲットチャネルを時間的にシフトするべきかどうかを判断してもよい。たとえば、時間的イコライザ108は、第1のシフト値から最終シフト値116への時間的シフト推移に基づいて、ターゲットチャネル(たとえば、第1のオーディオ信号130または第2のオーディオ信号132)を調整してもよい。時間的イコライザ108は、調整済みターゲットチャネル192を生成するために、フレーム境界に対応するターゲットチャネルのサンプルのサブセットが平滑化および緩やかなシフトを通じて除外されるように、ターゲットチャネルを補間してもよい。
したがって、時間的イコライザ108は、基準チャネル190および調整済みターゲットチャネル192が実質的に同期化されるように、調整済みターゲットチャネル192を生成するためにターゲットチャネルを時間シフトしてもよい。時間的イコライザ108は、時間領域ダウンミックスパラメータ168を生成してもよい。時間領域ダウンミックスパラメータは、ターゲットチャネルと基準チャネル190との間のシフト値を示してもよい。他の実装形態では、時間領域ダウンミックスパラメータは、ダウンミックス利得などのような追加のパラメータを含む場合がある。たとえば、時間領域ダウンミックスパラメータ168は、図2を参照してさらに説明するように、第1のシフト値262、基準チャネルインジケータ264、または両方を含んでもよい。時間的イコライザ108については、図2に関してより詳細に説明する。時間的イコライザ108は、図示のように、時間領域もしくは周波数領域またはハイブリッド独立チャネル(たとえば、デュアルモノ)ステレオコーダ109に基準チャネル190および調整済みターゲットチャネル192を提供してもよい。
信号適応型「フレキシブル」ステレオコーダ109は、1つまたは複数の時間領域信号(たとえば、基準チャネル190および調整済みターゲットチャネル192)を周波数領域信号に変換してもよい。信号適応型「フレキシブル」ステレオコーダ109は、修正された周波数領域調整済みターゲットチャネルを生成するために、第1の時間的シフト動作に基づいて変換領域において周波数領域調整済みターゲットチャネルに対して第2の時間的シフト(たとえば、非因果的)動作を実行すべきかどうかを判断するようにさらに構成される。時間領域信号190、192および周波数領域信号は、ステレオキュー162を推定するために使用されてもよい。ステレオキュー162は、左チャネルおよび右チャネルに関連する空間特性のレンダリングを可能にするパラメータを含んでもよい。いくつかの実装形態によれば、ステレオキュー162は、チャネル間強度差(IID)パラメータ(たとえば、チャネル間レベル差(ILD))、チャネル間時間差(ITD)パラメータ、チャネル間位相差(IPD)パラメータ、時間的不一致または非因果的シフトパラメータ、スペクトル傾斜パラメータ、チャネル間有声化パラメータ、チャネル間ピッチパラメータ、チャネル間利得パラメータなどのパラメータを含んでもよい。ステレオキュー162は、他の信号の生成中に信号適応型「フレキシブル」ステレオコーダ109において使用されてもよい。ステレオキュー162は、符号化された信号の一部として送信される場合もある。ステレオキュー162の推定および使用については、図3〜図7に関してより詳細に説明する。
信号適応型「フレキシブル」ステレオコーダ109はまた、周波数領域信号に少なくとも部分的に基づいて、サイドバンドビットストリーム164およびミッドバンドビットストリーム166を生成してもよい。説明の目的で、別段に記載されていない限り、基準チャネル190は左チャネル信号(lまたはL)であり、調整済みターゲットチャネル192は右チャネル信号(rまたはR)であると仮定される。基準チャネル190の周波数領域表現はLfr(b)として示され、調整済みターゲットチャネル192の周波数領域表現はRfr(b)として示され、bは周波数領域表現のバンドを表す。一実装形態によれば、基準チャネル190および調整済みターゲットチャネル192の周波数領域表現から、周波数領域においてサイドバンドチャネルSfr(b)が生成されてもよい。たとえば、サイドバンドチャネルSfr(b)は(Lfr(b)-Rfr(b))/2として表される場合がある。サイドバンドチャネルSfr(b)は、サイドバンドビットストリーム164を生成するためにサイドバンドエンコーダに提供されてもよい。一実装形態によれば、ミッドバンドチャネルm(t)が時間領域において生成され、周波数領域に変換されてもよい。たとえば、ミッドバンドチャネルm(t)は(l(t)+r(t))/2として表される場合がある。周波数領域におけるミッドバンドチャネルの生成前に時間領域においてミッドバンドチャネルを生成することについては、図3、図4、および図7に関してより詳細に説明する。別の実装形態によれば、(たとえば、時間領域ミッドバンドチャネル生成を回避して)周波数領域信号からミッドバンドチャネルMfr(b)が生成されてもよい。周波数領域信号からミッドバンドチャネルMfr(b)を生成することについては、図5〜図6に関してより詳細に説明する。時間領域/周波数領域ミッドバンドチャネルは、ミッドバンドビットストリーム166を生成するためにミッドバンドエンコーダに提供されてもよい。
サイドバンドチャネルSfr(b)およびミッドバンドチャネルm(t)またはMfr(b)は、複数の技法を使用して符号化されてもよい。一実装形態によれば、時間領域ミッドバンドチャネルm(t)は、上位バンドコーディングの場合は帯域幅拡張を伴って、代数符号励振線形予測(ACELP:algebraic code-excited linear prediction)などの時間領域技法を使用して符号化されてもよい。サイドバンドコーディングの前に、(コーディングされたか、またはコーディングされていない)ミッドバンドチャネルm(t)が、ミッドバンドチャネルMfr(b)を生成するために周波数領域(たとえば、変換領域)に変換されてもよい。
サイドバンドコーディングの一実装形態は、周波数ミッドバンドチャネルMfr(b)における情報およびバンド(b)に対応するステレオキュー162(たとえば、ILD)を使用して、周波数領域ミッドバンドチャネルMfr(b)からサイドバンドSPRED(b)を予測することを含む。たとえば、予測サイドバンドSPRED(b)はMfr(b)*(ILD(b)-1)/(ILD(b)+1)として表される場合がある。サイドバンドチャネルSfrおよび予測サイドバンドSPREDの関数として、エラー信号eが計算されてもよい。たとえば、エラー信号eはSfr-SPREDまたはSfrとして表されてもよい。エラー信号eは、コーディングされたエラー信号eCODEDを生成するために、時間領域または変換領域コーディング技法を使用してコーディングされてもよい。バンドによっては、エラー信号eは、前フレームからのそれらのバンドにおけるミッドバンドチャネルM_PASTfrのスケーリングされたバージョンとして表される場合がある。たとえば、コーディングされたエラー信号eCODEDは、gPRED*M_PASTfrとして表される場合があり、ここでgPREDは、e-gPRED*M_PASTfrのエネルギーが大幅に低減される(たとえば、最小化される)ように推定されてよい。使用されるM_PASTフレームは、分析/合成に使用されるウィンドウ形状に基づくことができ、偶数のウィンドウホップのみを使用することに制限されてよい。
トランスミッタ110は、ステレオキュー162、サイドバンドビットストリーム164、ミッドバンドビットストリーム166、時間領域ダウンミックスパラメータ168、またはそれらの組合せを、ネットワーク120を介して第2のデバイス106に送信してもよい。代替的に、または追加として、トランスミッタ110は、ステレオキュー162、サイドバンドビットストリーム164、ミッドバンドビットストリーム166、時間領域ダウンミックスパラメータ168、またはそれらの組合せを、ネットワーク120のデバイスまたはローカルデバイスに、さらなる処理または後の復号のために記憶してもよい。非因果的シフト(たとえば、最終シフト値116)が符号化プロセス中に判断されることがあるので、各バンドにおいて非因果的シフトに加えて(たとえば、ステレオキュー162の一部として)IPDを送信することは、余分であることがある。したがって、いくつかの実装形態では、IPDおよび非因果的シフトは、同じフレームに関して、ただし相互排他的なバンドにおいて推定される場合がある。他の実装形態では、より細かいバンドごとの調整のために、シフトに加えて、より低い分解能のIPDが推定される場合がある。代替的に、非因果的シフトが判断されるフレームに関しては、IPDが判断されないことがある。いくつかの他の実施形態では、IPDは判断されるが、使用されないか、または0にリセットされることがあり、その場合に非因果的シフトがしきい値を満たす。
デコーダ118は、ステレオキュー162、サイドバンドビットストリーム164、ミッドバンドビットストリーム166、および時間領域ダウンミックスパラメータ168に基づいて、復号動作を実行してもよい。たとえば、周波数領域ステレオデコーダ125および時間的バランサ124は、(たとえば、第1のオーディオ信号130に対応する)第1の出力信号126、(たとえば、第2のオーディオ信号132に対応する)第2の出力信号128、または両方を生成するためにアップミキシングを実行してもよい。第2のデバイス106は、第1のラウドスピーカー142を介して第1の出力信号126を出力してもよい。第2のデバイス106は、第2のラウドスピーカー144を介して第2の出力信号128を出力してもよい。代替例では、第1の出力信号126および第2の出力信号128は、ステレオ信号ペアとして単一の出力ラウドスピーカーに送信される場合がある。
したがって、システム100は、信号適応型「フレキシブル」ステレオコーダ109が、ステレオキュー162、サイドバンドビットストリーム164、およびミッドバンドビットストリーム166を生成するために、基準チャネル190および調整済みターゲットチャネル192を周波数領域に変換することを可能にしてもよい。第2のオーディオ信号132と整合するように第1のオーディオ信号130を時間的にシフトする時間的イコライザ108の時間シフト技法は、周波数領域信号処理とともに実施されてもよい。例示すると、時間的イコライザ108は、エンコーダ114における各フレームに関するシフト(たとえば、非因果的シフト値)を推定し、非因果的シフト値に従ってターゲットチャネルをシフトし(たとえば、調整し)、変換領域においてステレオキュー推定にシフト調整済みチャネルを使用する。
図2を参照すると、第1のデバイス104のエンコーダ114の説明のための例が示される。エンコーダ114は、時間的イコライザ108および信号適応型「フレキシブル」ステレオコーダ109を含む。
時間的イコライザ108は、シフト推定器204を介してフレーム間シフト変動分析器206、基準チャネル指定器208、または両方に結合される信号プリプロセッサ202を含む。特定の実装形態では、信号プリプロセッサ202はリサンプラに対応する場合がある。フレーム間シフト変動分析器206は、ターゲットチャネル調整器210を介して信号適応型「フレキシブル」ステレオコーダ109に結合されてもよい。基準チャネル指定器208は、フレーム間シフト変動分析器206に結合されてもよい。時間的不一致値に基づいて、TDステレオ、周波数領域ステレオ、またはMDCTステレオダウンミックスが信号適応型「フレキシブル」ステレオコーダ109において使用される。
動作中、信号プリプロセッサ202は、オーディオ信号228を受信する場合がある。たとえば、信号プリプロセッサ202は、入力インターフェース112からオーディオ信号228を受信する場合がある。オーディオ信号228は、第1のオーディオ信号130、第2のオーディオ信号132、または両方を含む場合がある。信号プリプロセッサ202は、第1のリサンプリングされたチャネル230、第2のリサンプリングされたチャネル232、または両方を生成してもよい。信号プリプロセッサ202の動作については、図8に関してより詳細に説明する。信号プリプロセッサ202は、第1のリサンプリングされたチャネル230、第2のリサンプリングされたチャネル232、または両方をシフト推定器204に提供してもよい。
シフト推定器204は、第1のリサンプリングされたチャネル230、第2のリサンプリングされたチャネル232、または両方に基づいて、最終シフト値116(T)、非因果的シフト値、または両方を生成してもよい。シフト推定器204の動作については、図9に関してより詳細に説明する。シフト推定器204は、フレーム間シフト変動分析器206、基準チャネル指定器208、または両方に最終シフト値116を提供してもよい。
基準チャネル指定器208は、基準チャネルインジケータ264を生成してもよい。基準チャネルインジケータ264は、オーディオ信号130、132のうちのどちらが基準チャネル190であり、信号130、132のうちのどちらがターゲットチャネル242であるかを示してもよい。基準チャネル指定器208は、フレーム間シフト変動分析器206に基準チャネルインジケータ264を提供してもよい。
フレーム間シフト変動分析器206は、ターゲットチャネル242、基準チャネル190、第1のシフト値262(Tprev)、最終シフト値116(T)、基準チャネルインジケータ264、またはそれらの組合せに基づいて、ターゲットチャネルインジケータ266を生成してもよい。フレーム間シフト変動分析器206は、ターゲットチャネル調整器210にターゲットチャネルインジケータ266を提供してもよい。
ターゲットチャネル調整器210は、ターゲットチャネルインジケータ266、ターゲットチャネル242、または両方に基づいて、調整済みターゲットチャネル192を生成してもよい。ターゲットチャネル調整器210は、第1のシフト値262(Tprev)から最終シフト値116(T)への時間的シフト推移に基づいて、ターゲットチャネル242を調整してもよい。たとえば、第1のシフト値262は、前フレームに対応する最終シフト値を含む場合がある。ターゲットチャネル調整器210は、最終シフト値が、前フレームに対応する最終シフト値116(たとえば、T=4)よりも低い前フレームに対応する第1の値(たとえば、Tprev=2)を有する第1のシフト値262から変化したとの判断に応答して、調整済みターゲットチャネル192を生成するために、フレーム境界に対応するターゲットチャネル242のサンプルのサブセットが平滑化および緩やかなシフトを通じて除外されるように、ターゲットチャネル242を補間してもよい。代替的に、ターゲットチャネル調整器210は、最終シフト値が、最終シフト値116(たとえば、T=2)よりも大きい第1のシフト値262(たとえば、Tprev=4)から変化したとの判断に応答して、調整済みターゲットチャネル192を生成するために、フレーム境界に対応するターゲットチャネル242のサンプルのサブセットが平滑化および緩やかなシフトを通じて繰り返されるように、ターゲットチャネル242を補間してもよい。平滑化および緩やかなシフトは、ハイブリッドSincおよびラグランジュ補間器に基づいて実行されてもよい。ターゲットチャネル調整器210は、最終シフト値が、第1のシフト値262から最終シフト値116にかけて変化していない(たとえば、Tprev=T)との判断に応答して、調整済みターゲットチャネル192を生成するために、ターゲットチャネル242を時間的にオフセットしてもよい。ターゲットチャネル調整器210は、信号適応型「フレキシブル」ステレオコーダ109に調整済みターゲットチャネル192を提供してもよい。
基準チャネル190が信号適応型「フレキシブル」ステレオコーダ109に提供される場合もある。信号適応型「フレキシブル」ステレオコーダ109は、図1に関して説明したように、また図3〜図7に関してさらに説明するように、基準チャネル190および調整済みターゲットチャネル192に基づいて、ステレオキュー162、サイドバンドビットストリーム164、およびミッドバンドビットストリーム166を生成してもよい。
図3〜図7を参照すると、図2で説明したような時間領域ダウンミキシング動作と連携する信号適応型「フレキシブル」ステレオコーダ109のいくつかの例示的な詳細な実装形態109a〜109eが示される。いくつかの例では、基準チャネル190は左チャネル信号を含む場合があり、調整済みターゲットチャネル192は右チャネル信号を含む場合がある。しかしながら、他の例では、基準チャネル190は右チャネル信号を含む場合があり、調整済みターゲットチャネル192は左チャネル信号を含む場合があることを理解されたい。他の実装形態では、基準チャネル190は、フレームごとに選択される左チャネルまたは右チャネルのいずれかである場合があり、同様に、調整済みターゲットチャネル192は、時間的不一致に関して調整された後の左チャネルまたは右チャネルのうちの他方である場合がある。以下では説明の目的で、基準チャネル190が左チャネル信号(L)を含み、調整済みターゲットチャネル192が右チャネル信号(R)を含むときの特定の場合の例を提供する。他の場合に関する同様の説明は、自明に展開できる。図3〜図7に示す様々な構成要素(たとえば、変換、信号生成器、エンコーダ、推定器など)が、ハードウェア(たとえば、専用回路)、ソフトウェア(たとえば、プロセッサによって実行される命令)、またはそれらの組合せを使用して実装されてもよいことも理解されたい。
図3では、基準チャネル190に対して変換302が実行されてもよく、調整済みターゲットチャネル192に対して変換304が実行されてもよい。変換302、304は、周波数領域(またはサブバンド領域)信号を生成する変換演算によって実行されてもよい。非限定的な例として、変換302、304を実行することは、離散フーリエ変換(DFT)演算、高速フーリエ変換(FFT)演算、MDCT演算などを実行することを含んでもよい。いくつかの実装形態によれば、(複素低遅延フィルタバンク(Complex Low Delay Filter Bank)などのフィルタバンクを使用する)直交ミラーフィルタバンク(QMF)演算が、入力信号(たとえば、基準チャネル190および調整済みターゲットチャネル192)を複数のサブバンドに分割するために使用される場合がある。変換302は、周波数領域基準チャネル(Lfr(b))330を生成するために基準チャネル190に適用されてもよく、変換304は、周波数領域調整済みターゲットチャネル(Rfr(b))332を生成するために調整済みターゲットチャネル192に適用されてもよい。信号適応型「フレキシブル」ステレオコーダ109aは、修正された周波数領域調整済みターゲットチャネル332を生成するために、第1の時間的シフト動作に基づいて変換領域において周波数領域調整済みターゲットチャネルに対して第2の時間的シフト(たとえば、非因果的)動作を実行すべきかどうかを判断するようにさらに構成される。周波数領域基準チャネル330および(修正された)周波数領域調整済みターゲットチャネル332は、ステレオキュー推定器306およびサイドバンドチャネル生成器308に提供されてもよい。
ステレオキュー推定器306は、周波数領域基準チャネル330および周波数領域調整済みターゲットチャネル332に基づいてステレオキュー162を抽出(たとえば、生成)してもよい。例示すると、IID(b)が、バンド(b)における左チャネルのエネルギーEL(b)およびバンド(b)における右チャネルのエネルギーER(b)の関数である場合がある。たとえば、IID(b)が20*log10(EL(b)/ER(b))として表される場合がある。エンコーダにおいて推定および送信されるIPDが、バンド(b)における左チャネルと右チャネルとの間の周波数領域における位相差の推定値を提供する場合がある。ステレオキュー162は、ICC、ITDなど追加の(または代替の)パラメータを含んでもよい。ステレオキュー162は、図1の第2のデバイス106に送信され、サイドバンドチャネル生成器308に提供され、サイドバンドエンコーダ310に提供されてもよい。
サイドバンド生成器308は、周波数領域基準チャネル330および(修正された)周波数領域調整済みターゲットチャネル332に基づいて、周波数領域サイドバンドチャネル(Sfr(b))334を生成してもよい。周波数領域サイドバンドチャネル334は、周波数領域ビン/バンドにおいて推定される場合がある。各バンドにおいて、利得パラメータ(g)は異なっており、チャネル間レベル差に基づく(たとえば、ステレオキュー162に基づく)場合がある。たとえば、周波数領域サイドバンドチャネル334は、(Lfr(b)-c(b)*Rfr(b))/(1+c(b))として表される場合があり、ここでc(b)はILD(b)またはILD(b)の関数(たとえば、c(b)=10^(ILD(b)/20))である場合がある。周波数領域サイドバンドチャネル334がサイドバンドエンコーダ310に提供されてもよい。
基準チャネル190および調整済みターゲットチャネル192がミッドバンドチャネル生成器312に提供される場合もある。ミッドバンドチャネル生成器312は、基準チャネル190および調整済みターゲットチャネル192に基づいて、時間領域ミッドバンドチャネル(m(t))336を生成してもよい。たとえば、時間領域ミッドバンドチャネル336は、(l(t)+r(t))/2として表される場合があり、ここでl(t)は基準チャネル190を含み、r(t)は調整済みターゲットチャネル192を含む。周波数領域ミッドバンドチャネル(Mfr(b))338を生成するために、時間領域ミッドバンドチャネル336に変換314が適用されてもよく、周波数領域ミッドバンドチャネル338がサイドバンドエンコーダ310に提供されてもよい。時間領域ミッドバンドチャネル336がミッドバンドエンコーダ316に提供される場合もある。
サイドバンドエンコーダ310は、ステレオキュー162、周波数領域サイドバンドチャネル334、および周波数領域ミッドバンドチャネル338に基づいてサイドバンドビットストリーム164を生成してもよい。ミッドバンドエンコーダ316は、時間領域ミッドバンドチャネル336を符号化することによってミッドバンドビットストリーム166を生成してもよい。特定の例では、サイドバンドエンコーダ310およびミッドバンドエンコーダ316は、それぞれサイドバンドビットストリーム164およびミッドバンドビットストリーム166を生成するために、ACELPエンコーダを含んでもよい。下位バンドの場合、周波数領域サイドバンドチャネル334は、変換領域コーディング技法を使用して符号化されてもよい。上位バンドの場合、周波数領域サイドバンドチャネル334は、(量子化されたか、または量子化されていない)前フレームのミッドバンドチャネルからの予測として表されてもよい。
図4を参照すると、信号適応型「フレキシブル」ステレオコーダ109の第2の実装形態109bが示される。信号適応型「フレキシブル」ステレオコーダ109の第2の実装形態109bは、信号適応型「フレキシブル」ステレオコーダ109の第1の実装形態109aと実質的に同様に動作してもよい。ただし、第2の実装形態109bでは、周波数領域ミッドバンドビットストリーム430を生成するために、ミッドバンドビットストリーム166(たとえば、時間領域ミッドバンドチャネル336の符号化されたバージョン)に変換404が適用されてもよい。サイドバンドエンコーダ406は、ステレオキュー162、周波数領域サイドバンドチャネル334、および周波数領域ミッドバンドビットストリーム430に基づいてサイドバンドビットストリーム164を生成してもよい。
図5を参照すると、信号適応型「フレキシブル」ステレオコーダ109の第3の実装形態109cが示される。信号適応型「フレキシブル」ステレオコーダ109の第3の実装形態109cは、信号適応型「フレキシブル」ステレオコーダ109の第1の実装形態109aと実質的に同様に動作してもよい。ただし、第3の実装形態109cでは、周波数領域基準チャネル330および周波数領域調整済みターゲットチャネル332がミッドバンドチャネル生成器502に提供されてもよい。信号適応型「フレキシブル」ステレオコーダ109cは、修正された周波数領域調整済みターゲットチャネル332を生成するために、第1の時間的シフト動作に基づいて変換領域において周波数領域調整済みターゲットチャネルに対して第2の時間的シフト(たとえば、非因果的)動作を実行すべきかどうかを判断するようにさらに構成される。いくつかの実装形態によれば、ステレオキュー162がミッドバンドチャネル生成器502に提供される場合もある。ミッドバンドチャネル生成器502は、周波数領域基準チャネル330および周波数領域調整済みターゲットチャネル332に基づいて、周波数領域ミッドバンドチャネルMfr(b)530を生成してもよい。いくつかの実装形態によれば、周波数領域ミッドバンドチャネルMfr(b)530は、ステレオキュー162にも基づいて生成される場合がある。周波数領域基準チャネル330、調整済みターゲットチャネル332およびステレオキュー162に基づくミッドバンドチャネル530の生成のいくつかの方法は、次の通りである。
Mfr(b)=(Lfr(b)+Rfr(b))/2
Mfr(b)=c1(b)*Lfr(b)+c2*Rfr(b)、ここでc1(b)およびc2(b)は複素数値である。
いくつかの実装形態では、複素数値c1(b)およびc2(b)はステレオキュー162に基づく。たとえば、IPDが推定されるときのミッドサイドダウンミックスの一実装形態では、c1(b)=(cos(-γ)-i*sin(-γ))/20.5およびc2(b)=(cos(IPD(b)-γ)+i*sin(IPD(b)-γ))/20.5であり、ここでiは-1の平方根を意味する虚数である。
周波数領域ミッドバンドチャネル530は、効率的なサイドバンドチャネル符号化の目的でミッドバンドエンコーダ504およびサイドバンドエンコーダ506に提供されてもよい。この実装形態では、ミッドバンドエンコーダ504は、ミッドバンドチャネル530を符号化の前に任意の他の変換/時間領域にさらに変換してもよい。たとえば、ミッドバンドチャネル530(Mfr(b))は、時間領域に戻る形で逆変換されること、またはコーディングのためにMDCT領域に変換されることがある。
周波数領域ミッドバンドチャネル530は、効率的なサイドバンドチャネル符号化の目的でミッドバンドエンコーダ504およびサイドバンドエンコーダ506に提供されてもよい。この実装形態では、ミッドバンドエンコーダ504はミッドバンドチャネル530を、符号化の前に変換領域または時間領域にさらに変換してもよい。たとえば、ミッドバンドチャネル530(Mfr(b))は、時間領域に戻る形で逆変換されること、またはコーディングのためにMDCT領域に変換されることがある。
サイドバンドエンコーダ506は、ステレオキュー162、周波数領域サイドバンドチャネル334、および周波数領域ミッドバンドチャネル530に基づいてサイドバンドビットストリーム164を生成してもよい。ミッドバンドエンコーダ504は、周波数領域ミッドバンドチャネル530に基づいてミッドバンドビットストリーム166を生成してもよい。たとえば、ミッドバンドエンコーダ504は、ミッドバンドビットストリーム166を生成するために周波数領域ミッドバンドチャネル530を符号化してもよい。
図6を参照すると、信号適応型「フレキシブル」ステレオコーダ109の第4の実装形態109dが示される。信号適応型「フレキシブル」ステレオコーダ109の第4実装形態109dは、信号適応型「フレキシブル」ステレオコーダ109の第3実装形態109cと実質的に同様に動作してもよい。ただし、第4の実装形態109dでは、ミッドバンドビットストリーム166がサイドバンドエンコーダ602に提供されてもよい。代替実装形態では、ミッドバンドビットストリームに基づく量子化ミッドバンドチャネルがサイドバンドエンコーダ602に提供されてもよい。サイドバンドエンコーダ602は、ステレオキュー162、周波数領域サイドバンドチャネル334、およびミッドバンドビットストリーム166に基づいてサイドバンドビットストリーム164を生成するように構成されてもよい。
図7を参照すると、信号適応型「フレキシブル」ステレオコーダ109の第5の実装形態109eが示される。信号適応型「フレキシブル」ステレオコーダ109の第5の実装形態109eは、信号適応型「フレキシブル」ステレオコーダ109の第1の実装形態109aと実質的に同様に動作してもよい。ただし、第5の実装形態109eでは、周波数領域ミッドバンドチャネル338がミッドバンドエンコーダ702に提供されてもよい。ミッドバンドエンコーダ702は、ミッドバンドビットストリーム166を生成するために周波数領域ミッドバンドチャネル338を符号化するように構成されてもよい。
図8を参照すると、信号プリプロセッサ202の説明のための例が示される。信号プリプロセッサ202は、リサンプリング係数推定器830、デエンファシス回路804、デエンファシス回路834、またはそれらの組合せに結合されるデマルチプレクサ(DeMUX)802を含んでもよい。デエンファシス回路804は、リサンプラ806を介してデエンファシス回路808に結合されてもよい。デエンファシス回路808は、リサンプラ810を介してチルトバランサ812に結合されてもよい。デエンファシス回路834は、リサンプラ836を介してデエンファシス回路838に結合されてもよい。デエンファシス回路838は、リサンプラ840を介してチルトバランサ842に結合されてもよい。
動作中、deMUX802は、オーディオ信号228を逆多重化することによって、第1のオーディオ信号130および第2のオーディオ信号132を生成してもよい。deMUX802は、第1のオーディオ信号130、第2のオーディオ信号132、または両方に関連する第1のサンプルレート860をリサンプリング係数推定器830に提供してもよい。deMUX802は、デエンファシス回路804に第1のオーディオ信号130、デエンファシス回路834に第2のオーディオ信号132、または両方を提供してもよい。
リサンプリング係数推定器830は、第1のサンプルレート860、第2のサンプルレート880、または両方に基づいて、第1の係数862(d1)、第2の係数882(d2)、または両方を生成してもよい。リサンプリング係数推定器830は、第1のサンプルレート860、第2のサンプルレート880、または両方に基づいて、リサンプリング係数(D)を決定してもよい。たとえば、リサンプリング係数(D)は、第1のサンプルレート860および第2のサンプルレート880の比率に対応する場合がある(たとえば、リサンプリング係数(D)=第2のサンプルレート880/第1のサンプルレート860またはリサンプリング係数(D)=第1のサンプルレート860/第2のサンプルレート880)。第1の係数862(d1)、第2の係数882(d2)、または両方は、リサンプリング係数(D)の係数であってもよい。たとえば、リサンプリング係数(D)は、第1の係数862(d1)と第2の係数882(d2)との積に対応する場合がある(たとえば、リサンプリング係数(D)=第1の係数862(d1)*第2の係数882(d2))。いくつかの実装形態では、本明細書で説明するように、第1の係数862(d1)は第1の値(たとえば、1)を有すること、第2の係数882(d2)は第2の値(たとえば、1)を有すること、または両方があり、リサンプリング段階が回避される。
デエンファシス回路804は、IIRフィルタ(たとえば、1次IIRフィルタ)に基づいて第1のオーディオ信号130をフィルタ処理することによって、デエンファシス処理された信号864を生成してもよい。デエンファシス回路804は、デエンファシス処理された信号864をリサンプラ806に提供してもよい。リサンプラ806は、デエンファシス処理された信号864を第1の係数862(d1)に基づいてリサンプリングすることによって、リサンプリングされたチャネル866を生成してもよい。リサンプラ806は、リサンプリングされたチャネル866をデエンファシス回路808に提供してもよい。デエンファシス回路808は、リサンプリングされたチャネル866をIIRフィルタに基づいてフィルタ処理することによって、デエンファシス処理された信号868を生成してもよい。デエンファシス回路808は、デエンファシス処理された信号868をリサンプラ810に提供してもよい。リサンプラ810は、デエンファシス処理された信号868を第2の係数882(d2)に基づいてリサンプリングすることによって、リサンプリングされたチャネル870を生成してもよい。
いくつかの実装形態では、第1の係数862(d1)は第1の値(たとえば、1)を有すること、第2の係数882(d2)は第2の値(たとえば、1)を有すること、または両方があり、リサンプリング段階が回避される。たとえば、第1の係数862(d1)が第1の値(たとえば、1)を有するとき、リサンプリングされたチャネル866はデエンファシス処理された信号864と同じであることがある。別の例として、第2の係数882(d2)が第2の値(たとえば、1)を有するとき、リサンプリングされたチャネル870はデエンファシス処理された信号868と同じであることがある。リサンプラ810は、リサンプリングされたチャネル870をチルトバランサ812に提供してもよい。チルトバランサ812は、リサンプリングされたチャネル870に対してチルト平衡(tilt balancing)を実行することによって、第1のリサンプリングされたチャネル230を生成してもよい。
デエンファシス回路834は、IIRフィルタ(たとえば、1次IIRフィルタ)に基づいて第2のオーディオ信号132をフィルタ処理することによって、デエンファシス処理された信号884を生成してもよい。デエンファシス回路834は、デエンファシス処理された信号884をリサンプラ836に提供してもよい。リサンプラ836は、デエンファシス処理された信号884を第1の係数862(d1)に基づいてリサンプリングすることによって、リサンプリングされたチャネル886を生成してもよい。リサンプラ836は、リサンプリングされたチャネル886をデエンファシス回路838に提供してもよい。デエンファシス回路838は、リサンプリングされたチャネル886をIIRフィルタに基づいてフィルタ処理することによって、デエンファシス処理された信号888を生成してもよい。デエンファシス回路838は、デエンファシス処理された信号888をリサンプラ840に提供してもよい。リサンプラ840は、デエンファシス処理された信号888を第2の係数882(d2)に基づいてリサンプリングすることによって、リサンプリングされたチャネル890を生成してもよい。
いくつかの実装形態では、第1の係数862(d1)は第1の値(たとえば、1)を有すること、第2の係数882(d2)は第2の値(たとえば、1)を有すること、または両方があり、リサンプリング段階が回避される。たとえば、第1の係数862(d1)が第1の値(たとえば、1)を有するとき、リサンプリングされたチャネル886はデエンファシス処理された信号884と同じであることがある。別の例として、第2の係数882(d2)が第2の値(たとえば、1)を有するとき、リサンプリングされたチャネル890はデエンファシス処理された信号888と同じであることがある。リサンプラ840は、リサンプリングされたチャネル890をチルトバランサ842に提供してもよい。チルトバランサ842は、リサンプリングされたチャネル890に対してチルト平衡を実行することによって、第2のリサンプリングされたチャネル532を生成してもよい。いくつかの実装形態では、チルトバランサ812およびチルトバランサ842は、それぞれ、デエンファシス回路804およびデエンファシス回路834に起因するローパス(LP)効果を補償する場合がある。
図9を参照すると、シフト推定器204の説明のための例が示される。シフト推定器204は、信号比較器906、補間器910、シフトリファイナ911、シフト変化分析器912、絶対シフト生成器913、またはそれらの組合せを含んでもよい。シフト推定器204は図9に示す構成要素よりも少数または多数の構成要素を含んでもよいことを理解されたい。
信号比較器906は、比較値934(たとえば、異なる値、類似性値、コヒーレンス値、もしくは相互相関値)、暫定的シフト値936、または両方を生成してもよい。たとえば、信号比較器906は、第1のリサンプリングされたチャネル230と第2のリサンプリングされたチャネル232に適用される複数のシフト値とに基づいて、比較値934を生成してもよい。信号比較器906は、比較値934に基づいて暫定的シフト値936を決定してもよい。第1のリサンプリングされたチャネル230は、第1のオーディオ信号130よりも少ないサンプルまたは多いサンプルを含んでもよい。第2のリサンプリングされたチャネル232は、第2のオーディオ信号132よりも少ないサンプルまたは多いサンプルを含んでもよい。リサンプリングされたチャネル(たとえば、第1のリサンプリングされたチャネル230および第2のリサンプリングされたチャネル232)のより少ないサンプルに基づいて比較値934を決定する場合は、元の信号(たとえば、第1のオーディオ信号130および第2のオーディオ信号132)のサンプルに基づく場合よりも少ないリソース(たとえば、時間、動作の数、または両方)を使用してもよい。リサンプリングされたチャネル(たとえば、第1のリサンプリングされたチャネル230および第2のリサンプリングされたチャネル232)のより多いサンプルに基づいて比較値934を決定する場合は、元の信号(たとえば、第1のオーディオ信号130および第2のオーディオ信号132)のサンプルに基づく場合よりも精度が向上する場合がある。信号比較器906は、比較値934、暫定的シフト値936、または両方を補間器910に提供してもよい。
補間器910は、暫定的シフト値936を拡大適用する(extend)ことができる。たとえば、補間器910は、補間済みシフト値938を生成してもよい。たとえば、補間器910は、比較値934を補間することによって、暫定的シフト値936に最も近いシフト値に対応する補間済み比較値を生成してもよい。補間器910は、補間済み比較値および比較値934に基づいて、補間済みシフト値938を決定してもよい。比較値934は、シフト値のより粗い細分性に基づく場合がある。たとえば、比較値934は、シフト値のセットの第1のサブセットに基づいてもよく、結果として、第1のサブセットの第1のシフト値と第1のサブセットの各第2のシフト値との間の差がしきい値(たとえば、≧1)以上となる。しきい値は、リサンプリング係数(D)に基づく場合がある。
補間済み比較値は、リサンプリングされた暫定的シフト値936に最も近いシフト値のより細かい細分性に基づく場合がある。たとえば、補間済み比較値は、シフト値のセットの第2のサブセットに基づいてもよく、結果として、第2のサブセットの最も高いシフト値とリサンプリングされた暫定的シフト値936との間の差がしきい値(たとえば、≧1)未満となり、第2のサブセットの最も低いシフト値とリサンプリングされた暫定的シフト値936との間の差がしきい値未満となる。シフト値のセットのより粗い細分性(たとえば、第1のサブセット)に基づいて比較値934を決定する場合は、シフト値のセットのより細かい細分性(たとえば、すべて)に基づいて比較値934を決定する場合よりも少ないリソース(たとえば、時間、動作、または両方)を使用してもよい。シフト値の第2のサブセットに対応する補間済み比較値を決定する場合は、シフト値のセットの各シフト値に対応する比較値を決定することなく、暫定的シフト値936に最も近いシフト値のより小さいセットのより細かい細分性に基づいて暫定的シフト値936を拡大適用することができる。したがって、シフト値の第1のサブセットに基づいて暫定的シフト値936を決定し、補間済み比較値に基づいて補間済みシフト値938を決定する場合は、リソースの使用と推定シフト値の精緻化とのバランスをとることができる。補間器910は、補間済みシフト値938をシフトリファイナ911に提供してもよい。
シフトリファイナ911は、補間済みシフト値938を精緻化することによって補正済みシフト値940を生成してもよい。たとえば、シフトリファイナ911は、第1のオーディオ信号130と第2のオーディオ信号132との間のシフトの変化がシフト変化しきい値よりも大きいことを補間済みシフト値938が示すかどうかを判断してもよい。シフトの変化は、補間済みシフト値938と前のフレームに関連する第1のシフト値との間の差によって示されてもよい。シフトリファイナ911は、差がしきい値以下であるとの判断に応答して、補正済みシフト値940を補間済みシフト値938に設定してもよい。代替的に、シフトリファイナ911は、差がしきい値よりも大きいとの判断に応答して、シフト変化しきい値以下である差に対応する複数のシフト値を決定してもよい。シフトリファイナ911は、第1のオーディオ信号130と第2のオーディオ信号132に適用される複数のシフト値とに基づいて、比較値を決定してもよい。シフトリファイナ911は、比較値に基づいて補正済みシフト値940を決定してもよい。たとえば、シフトリファイナ911は、比較値および補間済みシフト値938に基づいて、複数のシフト値のうちのシフト値を選択してもよい。シフトリファイナ911は、被選択シフト値を示すように補正済みシフト値940を設定してもよい。前のフレームに対応する第1のシフト値と補間済みシフト値938との間の非0の差は、第2のオーディオ信号132のいくつかのサンプルが両方のフレームに対応することを示してもよい。たとえば、第2のオーディオ信号132のいくつかのサンプルは、符号化中に複製されてもよい。代替的に、非0の差は、第2のオーディオ信号132のいくつかのサンプルが前のフレームにも現在のフレームにも対応しないことを示してもよい。たとえば、第2のオーディオ信号132のいくつかのサンプルは、符号化中に紛失する場合がある。補正済みシフト値940を複数のシフト値のうちの1つに設定することは、連続(または隣接)フレーム間のシフトの大きい変化を防ぎ、それによって、符号化中のサンプル紛失またはサンプル複製の量を低減することができる。シフトリファイナ911は、補正済みシフト値940をシフト変化分析器512に提供してもよい。
いくつかの実装形態では、シフトリファイナ911は、補間済みシフト値938を調整してもよい。シフトリファイナ911は、調整された補間済みシフト値938に基づいて補正済みシフト値940を決定してもよい。いくつかの実装形態では、シフトリファイナ911は、補正済みシフト値940を決定してもよい。
シフト変化分析器912は、図1を参照して説明したように、補正済みシフト値940が第1のオーディオ信号130と第2のオーディオ信号132との間のタイミングの切替えまたは反転を示すかどうかを判断してもよい。具体的には、タイミングの反転または切替えは、前のフレームに関して、第1のオーディオ信号130が入力インターフェース112において第2のオーディオ信号132の前に受信されており、後続フレームに関して、第2のオーディオ信号132が入力インターフェースにおいて第1のオーディオ信号130の前に受信されていることを示してもよい。代替的に、タイミングの反転または切替えは、前のフレームに関して、第2のオーディオ信号132が入力インターフェース112において第1のオーディオ信号130の前に受信されており、後続フレームに関して、第1のオーディオ信号130が入力インターフェースにおいて第2のオーディオ信号132の前に受信されていることを示してもよい。言い換えれば、タイミングの切替えまたは反転は、前のフレームに対応する最終シフト値が、現在のフレームに対応する補正済みシフト値940の第2の符号とは別個の第1の符号を有すること(たとえば、正から負への移行またはその逆)を示してもよい。シフト変化分析器912は、補正済みシフト値940および前のフレームに関連する第1のシフト値に基づいて、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延が符号を切り替えたかどうかを判断してもよい。シフト変化分析器912は、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延が符号を切り替えたとの判断に応答して、最終シフト値116を、時間シフトなしを示す値(たとえば、0)に設定してもよい。代替的に、シフト変化分析器912は、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延が符号を切り替えていないとの判断に応答して、最終シフト値116を補正済みシフト値940に設定してもよい。シフト変化分析器912は、補正済みシフト値940を精緻化することによって推定シフト値を生成してもよい。シフト変化分析器912は、最終シフト値116を推定シフト値に設定してもよい。時間シフトなしを示すように最終シフト値116を設定することは、第1のオーディオ信号130および第2のオーディオ信号132を第1のオーディオ信号130の連続(または隣接)フレームに関して反対方向で時間シフトするのを控えることによって、デコーダにおけるひずみを低減する場合がある。絶対シフト生成器913は、最終シフト値116に絶対関数を適用することによって、非因果的シフト値162を生成してもよい。
図10を参照すると、通信の方法1000が示される。方法1000は、図1の第1のデバイス104、図1〜図2のエンコーダ114、図1〜図7の信号適応型「フレキシブル」ステレオコーダ109、図2および図8の信号プリプロセッサ202、図2および図9のシフト推定器204、またはそれらの組合せによって実行されてもよい。
方法1000は、1002において、第1のデバイスにおいて、基準チャネルとターゲットチャネルとの間の時間的不一致の量を示す不一致値を決定するステップを含む。たとえば、図2を参照すると、時間的イコライザ108は、第1のオーディオ信号130と第2のオーディオ信号132との間の時間的不一致の量を示す不一致値(たとえば、最終シフト値116)を決定する場合がある。最終シフト値116の第1の値(たとえば、正の値)は、第2のオーディオ信号132が第1のオーディオ信号130に対して遅延していることを示す場合がある。最終シフト値116の第2の値(たとえば、負の値)は、第1のオーディオ信号130が第2のオーディオ信号132に対して遅延していることを示す場合がある。最終シフト値116の第3の値(たとえば、0)は、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延がないことを示す場合がある。
方法1000は、1004において、調整済みターゲットチャネルを生成するために、少なくとも不一致値およびコーディングモードに基づいて、ターゲットチャネルに対して第1の時間的シフト動作を実行すべきかどうかを判断するステップを含む。たとえば、図2を参照すると、ターゲットチャネル調整器210は、ターゲットチャネル242を調整すべきかどうかを判断してもよく、第1のシフト値262(Tprev)から最終シフト値116(T)への時間的シフト推移に基づいて、ターゲットチャネル242を調整してもよい。たとえば、第1のシフト値262は、前フレームに対応する最終シフト値を含む場合がある。ターゲットチャネル調整器210は、最終シフト値が、前フレームに対応する最終シフト値116(たとえば、T=4)よりも低い前フレームに対応する第1の値(たとえば、Tprev=2)を有する第1のシフト値262から変化したとの判断に応答して、調整済みターゲットチャネル192を生成するために、フレーム境界に対応するターゲットチャネル242のサンプルのサブセットが平滑化および緩やかなシフトを通じて除外されるように、ターゲットチャネル242を補間してもよい。代替的に、ターゲットチャネル調整器210は、最終シフト値が、最終シフト値116(たとえば、T=2)よりも大きい第1のシフト値262(たとえば、Tprev=4)から変化したとの判断に応答して、調整済みターゲットチャネル192を生成するために、フレーム境界に対応するターゲットチャネル242のサンプルのサブセットが平滑化および緩やかなシフトを通じて繰り返されるように、ターゲットチャネル242を補間してもよい。平滑化および緩やかなシフトは、ハイブリッドSincおよびラグランジュ補間器に基づいて実行されてもよい。ターゲットチャネル調整器210は、最終シフト値が、第1のシフト値262から最終シフト値116にかけて変化していない(たとえば、Tprev=T)との判断に応答して、調整済みターゲットチャネル192を生成するために、ターゲットチャネル242を時間的にオフセットしてもよい。
1006において、周波数領域基準チャネルを生成するために、基準チャネルに対して第1の変換演算が実行されてもよい。1008において、周波数領域調整済みターゲットチャネルを生成するために、調整済みターゲットチャネルに対して第2の変換演算が実行されてもよい。たとえば、図3〜図7を参照すると、基準チャネル190に対して変換302が実行されてもよく、調整済みターゲットチャネル192に対して変換304が実行されてもよい。変換302、304は、周波数領域変換演算を含んでもよい。非限定的な例として、変換302、304は、DFT演算、FFT演算などを含む場合がある。いくつかの実装形態によれば、(たとえば、複素低遅延フィルタバンクを使用する)QMF演算が、入力信号(たとえば、基準チャネル190および調整済みターゲットチャネル192)を複数のサブバンドに分割するために使用されてもよく、いくつかの実装形態では、サブバンドは、別の周波数領域変換演算を使用して周波数領域にさらに変換されてもよい。変換302は、周波数領域基準チャネルLfr(b)330を生成するために基準チャネル190に適用されてもよく、変換304は、周波数領域調整済みターゲットチャネルRfr(b)332を生成するために調整済みターゲットチャネル192に適用されてもよい。
1010において、周波数領域基準チャネルおよび周波数領域調整済みターゲットチャネルに基づいて、1つまたは複数のステレオキューが推定されてもよい。たとえば、図3〜図7を参照すると、周波数領域基準チャネル330および周波数領域調整済みターゲットチャネル332は、ステレオキュー推定器306およびサイドバンドチャネル生成器308に提供されてもよい。ステレオキュー推定器306は、周波数領域基準チャネル330および周波数領域調整済みターゲットチャネル332に基づいてステレオキュー162を抽出(たとえば、生成)してもよい。例示すると、IID(b)が、バンド(b)における左チャネルのエネルギーEL(b)およびバンド(b)における右チャネルのエネルギーER(b)の関数である場合がある。たとえば、IID(b)が20*log10(EL(b)/ER(b))として表される場合がある。エンコーダにおいて推定および送信されるIPDが、バンド(b)における左チャネルと右チャネルとの間の周波数領域における位相差の推定値を提供する場合がある。ステレオキュー162は、ICC、ITDなど追加の(または代替の)パラメータを含んでもよい。
1012において、第2のデバイスに1つまたは複数のステレオキューが送信されてもよい。たとえば、図1を参照すると、第1のデバイス104は、図1の第2のデバイス106にステレオキュー162を送信する場合がある。
方法1000はまた、基準チャネルおよび調整済みターゲットチャネルに基づいて、時間領域ミッドバンドチャネルを生成するステップを含んでもよい。たとえば、図3、図4、および図7を参照すると、ミッドバンドチャネル生成器312は、基準チャネル190および調整済みターゲットチャネル192に基づいて、時間領域ミッドバンドチャネル336を生成してもよい。たとえば、時間領域ミッドバンドチャネル336は、(l(t)+r(t))/2として表される場合があり、ここでl(t)は基準チャネル190を含み、r(t)は調整済みターゲットチャネル192を含む。方法1000はまた、ミッドバンドビットストリームを生成するために時間領域ミッドバンドチャネルを符号化するステップを含んでもよい。たとえば、図3および図4を参照すると、ミッドバンドエンコーダ316は、時間領域ミッドバンドチャネル336を符号化することによってミッドバンドビットストリーム166を生成してもよい。方法1000は、第2のデバイスにミッドバンドビットストリームを送信するステップをさらに含んでもよい。たとえば、図1を参照すると、トランスミッタ110は、第2のデバイス106にミッドバンドビットストリーム166を送信する場合がある。
方法1000はまた、周波数領域基準チャネル、周波数領域調整済みターゲットチャネル、および1つまたは複数のステレオキューに基づいてサイドバンドチャネルを生成するステップを含んでもよい。たとえば、図3を参照すると、サイドバンド生成器308は、周波数領域基準チャネル330および周波数領域調整済みターゲットチャネル332に基づいて、周波数領域サイドバンドチャネル334を生成してもよい。周波数領域サイドバンドチャネル334は、周波数領域ビン/バンドにおいて推定される場合がある。各バンドにおいて、利得パラメータ(g)は異なっており、チャネル間レベル差に基づく(たとえば、ステレオキュー162に基づく)場合がある。たとえば、周波数領域サイドバンドチャネル334は、(Lfr(b)-c(b)*Rfr(b))/(1+c(b))として表される場合があり、ここでc(b)はILD(b)またはILD(b)の関数(たとえば、c(b)=10^(ILD(b)/20))である場合がある。
方法1000はまた、周波数領域ミッドバンドチャネルを生成するために、時間領域ミッドバンドチャネルに対して第3の変換演算を実行するステップを含んでもよい。たとえば、図3を参照すると、周波数領域ミッドバンドチャネル338を生成するために、時間領域ミッドバンドチャネル336に変換314が適用される場合がある。方法1000はまた、サイドバンドチャネル、周波数領域ミッドバンドチャネル、および1つまたは複数のステレオキューに基づいてサイドバンドビットストリームを生成するステップを含んでもよい。たとえば、図3を参照すると、サイドバンドエンコーダ310は、ステレオキュー162、周波数領域サイドバンドチャネル334、および周波数領域ミッドバンドチャネル338に基づいてサイドバンドビットストリーム164を生成してもよい。
方法1000はまた、周波数領域基準チャネルおよび周波数領域調整済みターゲットチャネルに基づいて、かつ追加または代替としてステレオキューに基づいて、周波数領域ミッドバンドチャネルを生成するステップを含んでもよい。たとえば、図5〜図6を参照すると、ミッドバンドチャネル生成器502は、周波数領域基準チャネル330および周波数領域調整済みターゲットチャネル332に基づいて、かつ追加または代替としてステレオキュー162に基づいて、周波数領域ミッドバンドチャネル530を生成してもよい。方法1000はまた、ミッドバンドビットストリームを生成するために周波数領域ミッドバンドチャネルを符号化するステップを含んでもよい。たとえば、図5を参照すると、ミッドバンドエンコーダ504は、ミッドバンドビットストリーム166を生成するために周波数領域ミッドバンドチャネル530を符号化してもよい。
方法1000はまた、周波数領域基準チャネル、周波数領域調整済みターゲットチャネル、および1つまたは複数のステレオキューに基づいてサイドバンドチャネルを生成するステップを含んでもよい。たとえば、図5〜図6を参照すると、サイドバンド生成器308は、周波数領域基準チャネル330および周波数領域調整済みターゲットチャネル332に基づいて、周波数領域サイドバンドチャネル334を生成してもよい。一実装形態によれば、方法1000は、サイドバンドチャネル、ミッドバンドビットストリーム、および1つまたは複数のステレオキューに基づいてサイドバンドビットストリームを生成するステップを含む。たとえば、図6を参照すると、ミッドバンドビットストリーム166がサイドバンドエンコーダ602に提供されてもよい。サイドバンドエンコーダ602は、ステレオキュー162、周波数領域サイドバンドチャネル334、およびミッドバンドビットストリーム166に基づいてサイドバンドビットストリーム164を生成するように構成されてもよい。別の実装形態によれば、方法1000は、サイドバンドチャネル、周波数領域ミッドバンドチャネル、および1つまたは複数のステレオキューに基づいてサイドバンドビットストリームを生成するステップを含む。たとえば、図5を参照すると、サイドバンドエンコーダ506は、ステレオキュー162、周波数領域サイドバンドチャネル334、および周波数領域ミッドバンドチャネル530に基づいてサイドバンドビットストリーム164を生成してもよい。
一実装形態によれば、方法1000はまた、基準チャネルをダウンサンプリングすることによって第1のダウンサンプリングされたチャネルを生成するステップと、ターゲットチャネルをダウンサンプリングすることによって第2のダウンサンプリングされたチャネルを生成するステップとを含んでもよい。方法1000はまた、第1のダウンサンプリングされたチャネルと第2のダウンサンプリングされたチャネルに適用される複数のシフト値とに基づいて、比較値を決定するステップを含んでもよい。シフト値は比較値に基づいてよい。
図10の方法1000は、信号適応型「フレキシブル」ステレオコーダ109が、ステレオキュー162、サイドバンドビットストリーム164、およびミッドバンドビットストリーム166を生成するために、基準チャネル190および調整済みターゲットチャネル192を周波数領域に変換することを可能にしてもよい。第2のオーディオ信号132と整合するように第1のオーディオ信号130を時間的にシフトする時間的イコライザ108の時間シフト技法は、周波数領域信号処理とともに実施されてもよい。例示すると、時間的イコライザ108は、エンコーダ114における各フレームに関するシフト(たとえば、非因果的シフト値)を推定し、非因果的シフト値に従ってターゲットチャネルをシフトし(たとえば、調整し)、変換領域においてステレオキュー推定にシフト調整済みチャネルを使用する。
図11を参照すると、デコーダ118の特定の実装形態を示す図が示される。デコーダ118のデマルチプレクサ(DEMUX)1102に、符号化されたオーディオ信号が提供される。符号化されたオーディオ信号は、ステレオキュー162、サイドバンドビットストリーム164、およびミッドバンドビットストリーム166を含んでもよい。デマルチプレクサ1102は、符号化されたオーディオ信号からミッドバンドビットストリーム166を抽出し、ミッドバンドデコーダ1104にミッドバンドビットストリーム166を提供するように構成されてもよい。デマルチプレクサ1102はまた、符号化されたオーディオ信号からサイドバンドビットストリーム164およびステレオキュー162を抽出するように構成されてもよい。サイドバンドビットストリーム164およびステレオキュー162は、サイドバンドデコーダ1106に提供されてもよい。
ミッドバンドデコーダ1104は、ミッドバンドチャネル(mCODED(t))1150を生成するためにミッドバンドビットストリーム166を復号するように構成されてもよい。ミッドバンドチャネル1150が時間領域信号である場合、周波数領域ミッドバンドチャネル(MCODED(b))1152を生成するためにミッドバンドチャネル1150に変換1108が適用されてもよい。周波数領域ミッドバンドチャネル1152がアップミキサ1110に提供されてもよい。一方、ミッドバンドチャネル1150が周波数領域信号である場合、ミッドバンドチャネル1150がアップミキサ1110に直接提供されてもよく、変換1108が回避されること、またはデコーダ118に存在しないことがある。
サイドバンドデコーダ1106は、サイドバンドビットストリーム164およびステレオキュー162に基づいてサイドバンドチャネル(SCODED(b))1154を生成してもよい。たとえば、ローバンドおよびハイバンドに関してエラー(e)が復号される場合がある。サイドバンドチャネル1154は、SPRED(b)+eCODED(b)として表されてもよく、ここでSPRED(b)=MCODED(b)*(ILD(b)-1)/(ILD(b)+1)である。サイドバンドチャネル1154はまた、アップミキサ1110に提供されてもよい。
アップミキサ1110は、周波数領域ミッドバンドチャネル1152およびサイドバンドチャネル1154に基づいてアップミックス演算を実行してもよい。たとえば、アップミキサ1110は、周波数領域ミッドバンドチャネル1152およびサイドバンドチャネル1154に基づいて第1のアップミックス信号(Lfr)1156および第2のアップミックス信号(Rfr)1158を生成する場合がある。したがって、説明した例では、第1のアップミックス信号1156は左チャネル信号であってもよく、第2のアップミックス信号1158は右チャネル信号であってもよい。第1のアップミックス信号1156はMCODED(b)+SCODED(b)として表されてもよく、第2のアップミックス信号1158はMCODED(b)-SCODED(b)として表されてもよい。アップミックス信号1156、1158は、ステレオキュープロセッサ1112に提供されてもよい。
ステレオキュープロセッサ1112は、信号1160、1162を生成するために、アップミックス信号1156、1158にステレオキュー162を適用してもよい。たとえば、周波数領域においてアップミックス左および右チャネルにステレオキュー162が適用される場合がある。利用可能である場合、チャネル間位相差を維持するために左および右チャネル上でIPD(位相差)が拡散されることがある。第1の時間領域信号l(t)1164を生成するために、信号1160に逆変換1114が適用されてもよく、第2の時間領域信号r(t)1166を生成するために、信号1162に逆変換1116が適用されてもよい。逆変換1114、1116の非限定的な例としては、逆離散コサイン変換(IDCT)演算、逆高速フーリエ変換(IFFT)演算などがある。一実装形態によれば、第1の時間領域信号1164は、基準チャネル190の再構成されたバージョンであってもよく、第2の時間領域信号1166は、調整済みターゲットチャネル192の再構成されたバージョンであってもよい。
一実装形態によれば、アップミキサ1110において実行される演算は、ステレオキュープロセッサ1112において実行されてもよい。別の実装形態によれば、ステレオキュープロセッサ1112において実行される演算は、アップミキサ1110において実行されてもよい。また別の実装形態によれば、アップミキサ1110およびステレオキュープロセッサ1112は、単一の処理要素(たとえば、単一のプロセッサ)内に実装されてもよい。
さらに、第1の時間領域信号1164および第2の時間領域信号1166は、時間領域アップミキサ1120に提供されてもよい。時間領域アップミキサ1120は、時間領域信号1164、1166(たとえば、逆変換された左および右信号)に対して時間領域アップミックスを実行してもよい。時間領域アップミキサ1120は、時間的イコライザ108(より具体的にはターゲットチャネル調整器210)において実行されたシフト調整を元に戻すために逆シフト調整を実行してもよい。時間領域アップミックスは、時間領域ダウンミックスパラメータ168に基づいてよい。たとえば、時間領域アップミックスは、第1のシフト値262および基準チャネルインジケータ264に基づいてもよい。さらに、時間領域アップミキサ1120は、存在することのある時間領域ダウンミックスモジュールにおいて実行された他の演算の逆演算を実行してもよい。
図12を参照すると、デバイス(たとえば、ワイヤレス通信デバイス)の特定の説明のための例のブロック図が示され、全体的に1200と指定される。様々な実施形態では、デバイス1200は、図12に示すよりも少数または多数の構成要素を有してもよい。例示的な実施形態では、デバイス1200は、図1の第1のデバイス104または第2のデバイス106に対応する場合がある。例示的な実施形態では、デバイス1200は、図1〜図11のシステムおよび方法を参照して説明した1つまたは複数の動作を実行してもよい。
特定の実施形態では、デバイス1200はプロセッサ1206(たとえば、中央処理装置(CPU))を含む。デバイス1200は、1つまたは複数の追加のプロセッサ1210(たとえば、1つまたは複数のデジタル信号プロセッサ(DSP))を含んでもよい。プロセッサ1210は、メディア(スピーチおよび音楽)コーダデコーダ(コーデック)1208と、エコーキャンセラ1212とを含んでもよい。メディアコーデック1208は、図1のデコーダ118、エンコーダ114、または両方を含んでもよい。エンコーダ114は、時間的イコライザ108を含んでもよい。
デバイス1200は、メモリ153およびコーデック1234を含んでもよい。メディアコーデック1208は、プロセッサ1210(たとえば、専用回路および/または実行可能プログラミングコード)の構成要素として示されるが、他の実施形態では、デコーダ118、エンコーダ114、または両方などのメディアコーデック1208の1つまたは複数の構成要素は、プロセッサ1206、コーデック1234、別の処理構成要素、またはそれらの組合せに含まれてもよい。
デバイス1200は、アンテナ1242に結合されるトランスミッタ110を含んでもよい。デバイス1200は、ディスプレイコントローラ1226に結合されるディスプレイ1228を含んでもよい。1つまたは複数のスピーカー1248がコーデック1234に結合されてもよい。1つまたは複数のマイクロフォン1246が、入力インターフェース112を介してコーデック1234に結合されてもよい。特定の実装形態では、スピーカー1248は、図1の第1のラウドスピーカー142、第2のラウドスピーカー144、またはそれらの組合せを含んでもよい。特定の実装形態では、マイクロフォン1246は、図1の第1のマイクロフォン146、第2のマイクロフォン148、またはそれらの組合せを含んでもよい。コーデック1234は、デジタルアナログ変換器(DAC)1202およびアナログデジタル変換器(ADC)1204を含んでもよい。
メモリ153は、図1〜図11を参照して説明した1つまたは複数の動作を実行するために、プロセッサ1206、プロセッサ1210、コーデック1234、デバイス1200の別の処理ユニット、またはそれらの組合せによって実行可能な命令1260を含んでもよい。メモリ153は、分析データ191を記憶してもよい。
デバイス1200の1つまたは複数の構成要素は、専用ハードウェア(たとえば、回路)を介して、1つもしくは複数のタスクを実行するように命令を実行するプロセッサによって、またはそれらの組合せで実装されてもよい。一例として、メモリ153、またはプロセッサ1206、プロセッサ1210、および/もしくはコーデック1234の1つもしくは複数の構成要素は、ランダムアクセスメモリ(RAM)、磁気抵抗ランダムアクセスメモリ(MRAM)、スピントルクトランスファーMRAM(STT-MRAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、またはコンパクトディスク読取り専用メモリ(CD-ROM)などのメモリデバイスである場合がある。メモリデバイスは、コンピュータ(たとえば、コーデック1234内のプロセッサ、プロセッサ1206、および/またはプロセッサ1210)によって実行されると、図1〜図11を参照して説明した1つまたは複数の動作をコンピュータに実行させることができる命令(たとえば、命令1260)を含むことができる。一例として、メモリ153、またはプロセッサ1206、プロセッサ1210、および/もしくはコーデック1234の1つもしくは複数の構成要素は、コンピュータ(たとえば、コーデック1234内のプロセッサ、プロセッサ1206、および/またはプロセッサ1210)によって実行されると、図1〜図11を参照して説明した1つまたは複数の動作をコンピュータに実行させる命令(たとえば、命令1260)を含む非一時的コンピュータ可読媒体である場合がある。
特定の実施形態では、デバイス1200は、システムインパッケージまたはシステムオンチップデバイス(たとえば、移動局モデム(MSM))1222に含まれてもよい。特定の実施形態では、プロセッサ1206、プロセッサ1210、ディスプレイコントローラ1226、メモリ153、コーデック1234、およびトランスミッタ110は、システムインパッケージまたはシステムオンチップデバイス1222に含まれてもよい。特定の実施形態では、タッチスクリーンおよび/またはキーパッドなどの入力デバイス1230、ならびに電源1244が、システムオンチップデバイス1222に結合される。さらに、特定の実施形態では、図12に示されるように、ディスプレイ1228、入力デバイス1230、スピーカー1248、マイクロフォン1246、アンテナ1242、および電源1244は、システムオンチップデバイス1222の外部にある。しかしながら、ディスプレイ1228、入力デバイス1230、スピーカー1248、マイクロフォン1246、アンテナ1242、および電源1244の各々は、インターフェースまたはコントローラなどの、システムオンチップデバイス1222の構成要素に結合されてもよい。
デバイス1200は、ワイヤレス電話、モバイル通信デバイス、モバイルフォン、スマートフォン、セルラーフォン、ラップトップコンピュータ、デスクトップコンピュータ、コンピュータ、タブレットコンピュータ、セットトップボックス、携帯情報端末(PDA)、ディスプレイデバイス、テレビ、ゲーム機、音楽プレーヤ、ラジオ、ビデオプレーヤ、エンターテインメントユニット、通信デバイス、固定ロケーションデータユニット、パーソナルメディアプレーヤ、デジタルビデプレーヤ、デジタルビデオディスク(DVD)プレーヤ、チューナー、カメラ、ナビゲーションデバイス、デコーダシステム、エンコーダシステム、またはそれらの任意の組合せを含んでもよい。
特定の実装形態では、本明細書で開示するシステムおよびデバイスの1つまたは複数の構成要素は、復号システムもしくは装置(たとえば、電子デバイス、コーデック、もしくはその中のプロセッサ)、符号化システムもしくは装置、または両方に組み込まれてもよい。他の実装形態では、本明細書で開示するシステムおよびデバイスの1つまたは複数の構成要素は、ワイヤレス電話、タブレットコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、テレビ、ゲーム機、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、パーソナルメディアプレーヤ、または別のタイプのデバイスに組み込まれてもよい。
本明細書で開示するシステムおよびデバイスの1つまたは複数の構成要素によって実行される様々な機能は、いくつかの構成要素またはモジュールによって実行されるものとして説明されていることに留意されたい。構成要素およびモジュールのこの分割は、説明のためのものにすぎない。代替の実装形態では、特定の構成要素またはモジュールによって実行される機能が、複数の構成要素またはモジュールに分割されてもよい。さらに、代替の実装形態では、2つ以上の構成要素またはモジュールが、単一の構成要素またはモジュールに組み込まれてもよい。各々の構成要素またはモジュールは、ハードウェア(たとえば、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、DSP、コントローラなど)、ソフトウェア(たとえば、プロセッサによって実行可能な命令)、またはそれらの任意の組合せを使用して実装されてもよい。
説明した実装形態とともに、装置が、基準チャネルとターゲットチャネルとの間の時間的不一致の量を示す不一致値を決定するための手段を含む。たとえば、決定するための手段は、図1の時間的イコライザ108、エンコーダ114、第1のデバイス104、メディアコーデック1208、プロセッサ1210、デバイス1200、不一致値を決定するように構成される1つもしくは複数のデバイス(たとえば、コンピュータ可読記憶デバイスに記憶された命令を実行するプロセッサ)、またはそれらの組合せを含んでもよい。
本装置はまた、調整済みターゲットチャネルを生成するために、不一致値に基づいて、ターゲットチャネルに対して時間シフト動作を実行するための手段を含んでもよい。たとえば、時間シフト動作を実行するための手段は、図1の時間的イコライザ108、エンコーダ114、図2のターゲットチャネル調整器210、メディアコーデック1208、プロセッサ1210、デバイス1200、時間シフト動作を実行するように構成される1つもしくは複数のデバイス(たとえば、コンピュータ可読記憶デバイスに記憶された命令を実行するプロセッサ)、またはそれらの組合せを含んでもよい。
本装置はまた、周波数領域基準チャネルを生成するために、基準チャネルに対して第1の変換演算を実行するための手段を含んでもよい。たとえば、第1の変換演算を実行するための手段は、図1の信号適応型「フレキシブル」ステレオコーダ109、エンコーダ114、図3〜図7の変換302、メディアコーデック1208、プロセッサ1210、デバイス1200、変換演算を実行するように構成される1つもしくは複数のデバイス(たとえば、コンピュータ可読記憶デバイスに記憶された命令を実行するプロセッサ)、またはそれらの組合せを含んでもよい。
本装置はまた、周波数領域調整済みターゲットチャネルを生成するために、調整済みターゲットチャネルに対して第2の変換演算を実行するための手段を含んでもよい。たとえば、第2の変換演算を実行するための手段は、図1の信号適応型「フレキシブル」ステレオコーダ109、エンコーダ114、図3〜図7の変換304、メディアコーデック1208、プロセッサ1210、デバイス1200、変換演算を実行するように構成される1つもしくは複数のデバイス(たとえば、コンピュータ可読記憶デバイスに記憶された命令を実行するプロセッサ)、またはそれらの組合せを含んでもよい。
本装置はまた、周波数領域基準チャネルおよび周波数領域調整済みターゲットチャネルに基づいて、1つまたは複数のステレオキューを推定するための手段を含んでもよい。たとえば、推定するための手段は、図1の信号適応型「フレキシブル」ステレオコーダ109、エンコーダ114、図3〜図7のステレオキュー推定器306、メディアコーデック1208、プロセッサ1210、デバイス1200、ステレオキューを推定するように構成される1つもしくは複数のデバイス(たとえば、コンピュータ可読記憶デバイスに記憶された命令を実行するプロセッサ)、またはそれらの組合せを含んでもよい。
装置はまた、1つまたは複数のステレオキューを送信するための手段を含んでもよい。たとえば、送信するための手段は、図1および図12のトランスミッタ110、図12のアンテナ1242、または両方を含んでもよい。
図13を参照すると、基地局1300の特定の説明のための例のブロック図が示される。様々な実装形態では、基地局1300は、図13に示すよりも多い構成要素または少ない構成要素を有してもよい。説明のための例では、基地局1300は、図1の第1のデバイス104または第2のデバイス106を含んでもよい。説明のための例では、基地局1300は、図1〜図12を参照して説明した方法またはシステムのうちの1つまたは複数に従って動作してもよい。
基地局1300は、ワイヤレス通信システムの一部である場合がある。ワイヤレス通信システムは、複数の基地局および複数のワイヤレスデバイスを含んでもよい。ワイヤレス通信システムは、ロングタームエボリューション(LTE)システム、符号分割多元接続(CDMA)システム、モバイル通信用グローバルシステム(GSM(登録商標):Global System for Mobile Communications)システム、ワイヤレスローカルエリアネットワーク(WLAN)システム、または何らかの他のワイヤレスシステムである場合がある。CDMAシステムは、広帯域CDMA(WCDMA(登録商標))、CDMA 1X、エボリューションデータオプティマイズド(EVDO)、時分割同期CDMA(TD-SCDMA)、またはCDMAの何らかの他のバージョンを実装してもよい。
ワイヤレスデバイスは、ユーザ機器(UE)、移動局、端末、アクセス端末、加入者ユニット、局などと呼ばれる場合もある。ワイヤレスデバイスは、セルラーフォン、スマートフォン、タブレット、ワイヤレスモデム、携帯情報端末(PDA)、ハンドヘルドデバイス、ラップトップコンピュータ、スマートブック、ネットブック、タブレット、コードレスフォン、ワイヤレスローカルループ(WLL)局、Bluetooth(登録商標)デバイスなどを含んでもよい。ワイヤレスデバイスは、図12のデバイス1200を含むか、またはそれに対応する場合がある。
メッセージおよびデータ(たとえば、オーディオデータ)を送受信することなどの様々な機能は、基地局1300の1つもしくは複数の構成要素によって(かつ/または図示されていない他の構成要素において)実行されてもよい。特定の例では、基地局1300はプロセッサ1306(たとえば、CPU)を含む。基地局1300はトランスコーダ1310を含んでもよい。トランスコーダ1310は、オーディオコーデック1308を含んでもよい。たとえば、トランスコーダ1310は、オーディオコーデック1308の動作を実行するように構成される1つまたは複数の構成要素(たとえば、回路)を含んでもよい。別の例として、トランスコーダ1310は、オーディオコーデック1308の動作を実行するための1つまたは複数のコンピュータ可読命令を実行するように構成されてもよい。オーディオコーデック1308はトランスコーダ1310の構成要素として示されるが、他の例では、オーディオコーデック1308の1つまたは複数の構成要素が、プロセッサ1306、別の処理構成要素、またはそれらの組合せに含まれてもよい。たとえば、デコーダ1338(たとえば、ボコーダデコーダ)がレシーバデータプロセッサ1364に含まれてもよい。別の例として、エンコーダ1336(たとえば、ボコーダエンコーダ)が送信データプロセッサ1382に含まれてもよい。エンコーダ1336は、図1のエンコーダ114を含んでもよい。デコーダ1338は、図1のデコーダ118を含んでもよい。
トランスコーダ1310は、2つ以上のネットワークの間でメッセージおよびデータをトランスコーディングするように機能することができる。トランスコーダ1310は、メッセージおよびオーディオデータを第1のフォーマット(たとえば、デジタルフォーマット)から第2のフォーマットに変換するように構成されてもよい。例示すると、デコーダ1338は、第1のフォーマットを有する符号化された信号を復号することができ、エンコーダ1336は、復号された信号を、第2のフォーマットを有する符号化された信号に符号化することができる。追加または代替として、トランスコーダ1310は、データレート適応を実行するように構成されてもよい。たとえば、トランスコーダ1310は、オーディオデータのフォーマットを変更することなく、データレートをダウンコンバートすること、またはデータレートをアップコンバートすることができる。例示すると、トランスコーダ1310は、64kbit/s信号を16kbit/s信号にダウンコンバートすることができる。
基地局1300はメモリ1332を含んでもよい。コンピュータ可読記憶デバイスなどのメモリ1332は、命令を含んでもよい。命令は、図1〜図12の方法およびシステムを参照して説明した1つまたは複数の動作を実行するために、プロセッサ1306、トランスコーダ1310、またはそれらの組合せによって実行可能である1つまたは複数の命令を含んでもよい。たとえば、動作は、基準チャネルとターゲットチャネルとの間の時間的不一致の量を示す不一致値を決定することを含んでもよい。動作はまた、調整済みターゲットチャネルを生成するために、不一致値に基づいて、ターゲットチャネルに対して時間シフト動作を実行することを含んでもよい。動作はまた、周波数領域基準チャネルを生成するために、基準チャネルに対して第1の変換演算を実行することと、周波数領域調整済みターゲットチャネルを生成するために、調整済みターゲットチャネルに対して第2の変換演算を実行することとを含んでもよい。動作は、周波数領域基準チャネルおよび周波数領域調整済みターゲットチャネルに基づいて、1つまたは複数のステレオキューを推定することをさらに含んでもよい。動作はまた、レシーバへの1つまたは複数のステレオキューの送信を開始することを含んでもよい。
基地局1300は、アンテナのアレイに結合される第1のトランシーバ1352および第2のトランシーバ1354などの複数のトランスミッタおよびレシーバ(たとえば、トランシーバ)を含んでもよい。アンテナのアレイは、第1のアンテナ1342および第2のアンテナ1344を含んでもよい。アンテナのアレイは、図12のデバイス1200などの1つまたは複数のワイヤレスデバイスとワイヤレス通信するように構成されてもよい。たとえば、第2のアンテナ1344は、ワイヤレスデバイスからデータストリーム1314(たとえば、ビットストリーム)を受信してもよい。データストリーム1314は、メッセージ、データ(たとえば、符号化されたスピーチデータ)、またはそれらの組合せを含んでもよい。
基地局1300は、バックホール接続などのネットワーク接続1360を含んでもよい。ネットワーク接続1360は、ワイヤレス通信ネットワークのコアネットワークまたは1つもしくは複数の基地局と通信するように構成されてもよい。たとえば、基地局1300は、ネットワーク接続1360を介してコアネットワークから第2のデータストリーム(たとえば、メッセージまたはオーディオデータ)を受信してもよい。基地局1300は、第2のデータストリームを処理してメッセージまたはオーディオデータを生成し、アンテナのアレイの1つもしくは複数のアンテナを介して1つもしくは複数のワイヤレスデバイスに、またはネットワーク接続1360を介して別の基地局に、メッセージまたはオーディオデータを提供することができる。特定の実装形態では、ネットワーク接続1360は、説明のための非限定的な例として、ワイドエリアネットワーク(WAN)接続であってよい。いくつかの実装形態では、コアネットワークは、公衆交換電話網(PSTN)、パケットバックボーンネットワーク、もしくは両方を含むか、またはそれらに対応する場合がある。
基地局1300は、ネットワーク接続1360およびプロセッサ1306に結合されるメディアゲートウェイ1370を含んでもよい。メディアゲートウェイ1370は、異なる電気通信技術のメディアストリーム間で変換するように構成されてもよい。たとえば、メディアゲートウェイ1370は、異なる送信プロトコル、異なるコーディング方式、またはその両方の間で変換してもよい。例示すると、メディアゲートウェイ1370は、説明のための非限定的な例として、PCM信号からリアルタイムトランスポートプロトコル(RTP)信号に変換してもよい。メディアゲートウェイ1370は、パケット交換ネットワーク(たとえば、ボイスオーバーインターネットプロトコル(VoIP)ネットワーク、IPマルチメディアサブシステム(IMS)、LTE、WiMax、およびUMBなどの第4世代(4G)ワイヤレスネットワークなど)、回線交換ネットワーク(たとえば、PSTN)、ならびにハイブリッドネットワーク(たとえば、GSM(登録商標)、GPRS、およびEDGEなどの第2世代(2G)ワイヤレスネットワーク、WCDMA(登録商標)、EV-DO、およびHSPAなどの第3世代(3G)ワイヤレスネットワークなど)の間でデータを変換することができる。
加えて、メディアゲートウェイ1370は、トランスコーダ610などのトランスコーダを含む場合があり、コーデックの互換性がないときにデータをトランスコーディングするように構成されてもよい。たとえば、メディアゲートウェイ1370は、説明のための非限定的な例として、適応マルチレート(AMR)コーデックとG.711コーデックとの間をトランスコーディングすることができる。メディアゲートウェイ1370は、ルータおよび複数の物理インターフェースを含んでもよい。いくつかの実装形態では、メディアゲートウェイ1370はコントローラ(図示せず)を含む場合もある。特定の実装形態では、メディアゲートウェイコントローラは、メディアゲートウェイ1370の外部、基地局1300の外部、または両方にある場合がある。メディアゲートウェイコントローラは、複数のメディアゲートウェイの動作を制御および調整することができる。メディアゲートウェイ1370は、メディアゲートウェイコントローラから制御信号を受信することができ、様々な伝送技術間をブリッジするように機能することができ、エンドユーザの機能および接続にサービスを追加することができる。
基地局1300は、トランシーバ1352、1354、レシーバデータプロセッサ1364、およびプロセッサ1306に結合される復調器1362を含む場合があり、レシーバデータプロセッサ1364は、プロセッサ1306に結合される場合がある。復調器1362は、トランシーバ1352、1354から受信された変調信号を復調し、復調されたデータをレシーバデータプロセッサ1364に提供するように構成されてもよい。レシーバデータプロセッサ1364は、復調されたデータからメッセージまたはオーディオデータを抽出し、メッセージまたはオーディオデータをプロセッサ1306に送信するように構成されてもよい。
基地局1300は、送信データプロセッサ1382および送信多入力多出力(MIMO)プロセッサ1384を含んでもよい。送信データプロセッサ1382は、プロセッサ1306および送信MIMOプロセッサ1384に結合されてもよい。送信MIMOプロセッサ1384は、トランシーバ1352、1354、およびプロセッサ1306に結合されてもよい。いくつかの実装形態では、送信MIMOプロセッサ1384は、メディアゲートウェイ1370に結合されてもよい。送信データプロセッサ1382は、プロセッサ1306からメッセージまたはオーディオデータを受信し、説明のための非限定的な例として、CDMAまたは直交周波数分割多重化(OFDM)などのコーディング方式に基づいて、メッセージまたはオーディオデータをコーディングするように構成されてもよい。送信データプロセッサ1382は、コーディングされたデータを送信MIMOプロセッサ1384に提供してもよい。
コーディングされたデータは、多重化データを生成するために、CDMA技法またはOFDM技法を使用して、パイロットデータなどの他のデータと多重化されてもよい。次いで、多重化データは、変調シンボルを生成するために、特定の変調方式(たとえば、二位相シフトキーイング("BPSK")、四位相シフトキーイング("QSPK")、多値位相シフトキーイング("M-PSK")、多値直交振幅変調("M-QAM")など)に基づいて、送信データプロセッサ1382によって変調(すなわち、シンボルマッピング)されてもよい。特定の実装形態では、コーディングされたデータおよび他のデータは、様々な変調方式を使用して変調されてもよい。データストリームごとのデータレート、コーディング、および変調は、プロセッサ1306によって実行される命令によって決定されてもよい。
送信MIMOプロセッサ1384は、送信データプロセッサ1382から変調シンボルを受信するように構成されてよく、変調シンボルをさらに処理することができ、データに対してビームフォーミングを実行することができる。たとえば、送信MIMOプロセッサ1384は、変調シンボルにビームフォーミング重みを適用することができる。
動作中、基地局1300の第2のアンテナ1344は、データストリーム1314を受信することができる。第2のトランシーバ1354は、第2のアンテナ1344からデータストリーム1314を受信することができ、復調器1362にデータストリーム1314を提供することができる。復調器1362は、データストリーム1314の変調信号を復調し、復調されたデータをレシーバデータプロセッサ1364に提供することができる。レシーバデータプロセッサ1364は、復調されたデータからオーディオデータを抽出し、抽出されたオーディオデータをプロセッサ1306に提供することができる。
プロセッサ1306はオーディオデータを、トランスコーディングするためにトランスコーダ1310に提供することができる。トランスコーダ1310のデコーダ1338は、第1のフォーマットからのオーディオデータを復号されたオーディオデータに復号することができ、エンコーダ1336は、復号されたオーディオデータを第2のフォーマットに符号化することができる。いくつかの実装形態では、エンコーダ1336はオーディオデータを、ワイヤレスデバイスから受信されるよりも高いデータレート(たとえば、アップコンバート)または低いデータレート(たとえば、ダウンコンバート)を使用して符号化することができる。他の実装形態では、オーディオデータはトランスコーディングされないことがある。トランスコーディング(たとえば、復号および符号化)はトランスコーダ1310によって実行されるものとして示されるが、トランスコーディング動作(たとえば、復号および符号化)は基地局1300の複数の構成要素によって実行されてよい。たとえば、復号はレシーバデータプロセッサ1364によって実行されてもよく、符号化は送信データプロセッサ1382によって実行されてもよい。他の実装形態では、プロセッサ1306はオーディオデータを、別の送信プロトコル、コーディング方式、またはその両方への変換のためにメディアゲートウェイ1370に提供してもよい。メディアゲートウェイ1370は、変換されたデータを、ネットワーク接続1360を介して別の基地局またはコアネットワークに提供してもよい。
エンコーダ1336は、第1のオーディオ信号130と第2のオーディオ信号132との間の時間的不一致の量を示す最終シフト値116を判断してもよい。エンコーダ1336は、調整済みターゲットチャネルを生成するために、第2のオーディオ信号132(たとえば、ターゲットチャネル)に対して時間シフト動作を実行してもよい。エンコーダ1336は、周波数領域基準チャネルを生成するために、第1のオーディオ信号130(たとえば、基準チャネル)に対して第1の変換演算を実行してもよく、周波数領域調整済みターゲットチャネルを生成するために、調整済みターゲットチャネルに対して第2の変換演算を実行してもよい。エンコーダ1336は、周波数領域基準チャネルおよび周波数領域調整済みターゲットチャネルに基づいて、1つまたは複数のステレオキューを推定してもよい。エンコーダ1336において生成された符号化されたオーディオデータは、プロセッサ1306を介して送信データプロセッサ1382またはネットワーク接続1360に提供されてもよい。
トランスコーダ1310からのトランスコーディングされたオーディオデータは、変調シンボルを生成するために、OFDMなどの変調方式によるコーディング用に送信データプロセッサ1382に提供されてもよい。送信データプロセッサ1382は、変調シンボルを、さらなる処理およびビームフォーミングのために送信MIMOプロセッサ1384に提供することができる。送信MIMOプロセッサ1384は、ビームフォーミング重みを適用することができ、第1のトランシーバ1352を介して、第1のアンテナ1342などのアンテナのアレイの1つまたは複数のアンテナに変調シンボルを提供することができる。したがって、基地局1300は、ワイヤレスデバイスから受信されたデータストリーム1314に対応するトランスコーディングされたデータストリーム1316を、別のワイヤレスデバイスに提供することができる。トランスコーディングされたデータストリーム1316は、データストリーム1314とは異なる符号化フォーマット、データレート、または両方を有する場合がある。他の実装形態では、トランスコーディングされたデータストリーム1316は、別の基地局またはコアネットワークへの送信用に、ネットワーク接続1360に提供されてもよい。
本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップは、電子ハードウェアとして、ハードウェアプロセッサなどの処理デバイスによって実行されるコンピュータソフトウェアとして、または両方の組合せとして実装されてもよいことを、当業者ならさらに理解するであろう。様々な例示的な構成要素、ブロック、構成、モジュール、回路、およびステップについては、それらの機能の点から一般に上述した。そのような機能がハードウェアとして実装されるか実行可能なソフトウェアとして実装されるかは、特定の適用例と、システム全体に課される設計制約とに依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装することができるが、そのような実装の決定が本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
本明細書で開示する実施形態に関して説明した方法またはアルゴリズムのステップは、ハードウェアにおいて直接具現化されても、プロセッサによって実行されるソフトウェアモジュールにおいて具現化されても、またはその2つの組合せにおいて具現化されてもよい。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、磁気抵抗ランダムアクセスメモリ(MRAM)、スピントルクトランスファーMRAM(STT-MRAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、またはコンパクトディスク読取り専用メモリ(CD-ROM)などのメモリデバイスに存在してもよい。例示的なメモリデバイスは、プロセッサに結合され、それにより、プロセッサは、情報をメモリデバイスから読み取ることおよびメモリデバイスに書き込むことができる。代替として、メモリデバイスは、プロセッサに統合されてよい。プロセッサおよび記憶媒体は、特定用途向け集積回路(ASIC)に存在してもよい。ASICは、コンピューティングデバイスまたはユーザ端末に存在してもよい。代替として、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末に別個の構成要素として存在してもよい。
開示した実装形態の上記の説明は、開示した実装形態を当業者が作製または使用できるようにするために提供される。これらの実装形態への様々な変更は当業者には容易に明らかになり、本明細書において規定された原理は、本開示の範囲から逸脱することなく、他の実装形態に適用されてもよい。したがって、本開示は、本明細書に示される実装形態に限定されることを意図するものではなく、以下の特許請求の範囲によって規定される原理および新規の特徴と一致する取り得る最も広い範囲を与えられるべきである。