(58)【調査した分野】(Int.Cl.,DB名)
前記有効不一致値は、第1の値以上で第2の値以下であり、前記第1の値は、前記第1の不一致値または前記第2の不一致値のうちの一方に等しく、前記第2の値は、前記第1の不一致値または前記第2の不一致値のうちの他方に等しい、請求項1に記載のデバイス。
前記プロセッサは、前記第1の不一致値と前記第2の不一致値との間の値における差に基づいて前記有効不一致値を決定するようにさらに構成される、請求項1に記載のデバイス。
前記送信機に結合されたアンテナをさらに含み、前記送信機は、前記アンテナを介して前記少なくとも1つの符号化された信号を送信するように構成される、請求項1に記載のデバイス。
【発明を実施するための形態】
【0014】
複数のオーディオ信号を符号化するように動作可能なシステムおよびデバイスが開示される。デバイスが、複数のオーディオ信号を符号化するように構成されたエンコーダを含み得る。複数のオーディオ信号は、複数の記録デバイス、たとえば複数のマイクロフォンを使用して、同時にキャプチャされ得る。いくつかの例では、複数のオーディオ信号(またはマルチチャネルオーディオ)は、同時にまたは異なる時間に記録されたいくつかのオーディオチャネルを多重化することによって、合成的に(たとえば、人工的に)生成され得る。説明のための例として、オーディオチャネルの同時記録または多重化は、2チャネル構成(すなわち、ステレオ:左および右)、5.1チャネル構成(左、右、中央、左サラウンド、右サラウンド、および低周波数強調(LFE:low frequency emphasis)チャネル)、7.1チャネル構成、7.1+4チャネル構成、22.2チャネル構成、またはNチャネル構成をもたらし得る。
【0015】
遠隔会議室(またはテレプレゼンス室)におけるオーディオキャプチャデバイスは、空間オーディオを取得する複数のマイクロフォンを含み得る。空間オーディオは、符号化され送信されるスピーチならびに背景オーディオを含み得る。所与の音源(たとえば、話者)からのスピーチ/オーディオは複数のマイクロフォンに、マイクロフォンがどのように配置されているか、ならびに音源(たとえば、話者)がマイクロフォンおよび部屋の寸法に対してどこに位置するかに応じて、異なる時間に到着し得る。たとえば、音源(たとえば、話者)が、デバイスに関連する第2のマイクロフォンよりも、デバイスに関連する第1のマイクロフォンに近いことがある。したがって、音源から出された音が、第2のマイクロフォンよりも時間的に早く第1のマイクロフォンに到着することがある。デバイスは、第1のマイクロフォンを介して第1のオーディオ信号を受信することがあり、第2のマイクロフォンを介して第2のオーディオ信号を受信することがある。
【0016】
ミッド-サイド(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コーディングされ得る。
【0017】
MSコーディングおよびPSコーディングは、周波数領域またはサブバンド領域のいずれかにおいて行われ得る。いくつかの例では、左チャネルおよび右チャネルは無相関であり得る。たとえば、左チャネルおよび右チャネルは無相関合成信号を含み得る。左チャネルおよび右チャネルが無相関であるとき、MSコーディング、PSコーディング、または両方のコーディング効率は、デュアル-モノコーディングのコーディング効率に近くなり得る。
【0018】
記録構成に応じて、左チャネルと右チャネルとの間の時間的シフト(または時間的不一致)、ならびにエコーおよび室内反響などの他の空間的影響があり得る。チャネル間の時間的シフトおよび位相不一致が補償されない場合、和チャネルおよび差チャネルは、MSまたはPS技法に関連するコーディング利得を低減する同等のエネルギーを含み得る。コーディング利得の低減は、時間的(または位相)シフトの量に基づき得る。和信号および差信号の同等のエネルギーは、チャネルが時間的にシフトされるが強く相関付けられているいくつかのフレームにおけるMSコーディングの使用を限定し得る。ステレオコーディングでは、ミッドチャネル(たとえば、和チャネル)およびサイドチャネル(たとえば、差チャネル)が以下の式に基づいて生成され得る。
M=(L+R)/2、S=(L-R)/2、式1
【0019】
上式で、Mはミッドチャネルに対応し、Sはサイドチャネルに対応し、Lは左チャネルに対応し、Rは右チャネルに対応する。
【0020】
いくつかの場合には、ミッドチャネルおよびサイドチャネルは、以下の式に基づいて生成され得る。
M=c(L+R)、S=c(L-R)、式2
【0021】
上式で、cは、周波数に依存する複素数値に対応する。式1または式2に基づいてミッドチャネルおよびサイドチャネルを生成することは、「ダウンミキシング」アルゴリズムを実行することと呼ばれ得る。式1または式2に基づいてミッドチャネルおよびサイドチャネルから左チャネルおよび右チャネルを生成する逆プロセスは、「アップミキシング」アルゴリズムを実行することと呼ばれ得る。
【0022】
特定のフレームに関してMSコーディングまたはデュアル-モノコーディングの間で選択するために使用されるアドホック手法が、ミッド信号およびサイド信号を生成することと、ミッド信号およびサイド信号のエネルギーを計算することと、エネルギーに基づいてMSコーディングを実行するかどうかを決定することとを含み得る。たとえば、MSコーディングは、サイド信号およびミッド信号のエネルギーの比率がしきい値未満であるとの判断に応答して実行され得る。例示すると、右チャネルが少なくとも第1の時間(たとえば、約0.001秒または48kHzで48サンプル)だけシフトされる場合、有声音声フレームに関して(左信号と右信号との和に対応する)ミッド信号の第1のエネルギーが(左信号と右信号との間の差に対応する)サイド信号の第2のエネルギーと同等であり得る。第1のエネルギーが第2のエネルギーと同等であるとき、より多くのビットがサイドチャネルを符号化するために使用され、それによって、デュアル-モノコーディングに対してMSコーディングのコーディング効率が低下し得る。したがって、第1のエネルギーが第2のエネルギーと同等であるとき(たとえば、第1のエネルギーおよび第2のエネルギーの比率がしきい値以上であるとき)には、デュアル-モノコーディングが使用され得る。代替手法では、特定のフレームに関するMSコーディングとデュアル-モノコーディングとの間の決定は、しきい値と左チャネルおよび右チャネルの正規化相互相関値との比較に基づいて行われ得る。
【0023】
いくつかの例では、エンコーダは、第2のオーディオ信号に対する第1のオーディオ信号のシフトを示す時間的シフト値を決定し得る。シフト値は、第1のマイクロフォンにおける第1のオーディオ信号の受信と第2のマイクロフォンにおける第2のオーディオ信号の受信との間の時間的遅延の量に対応し得る。さらに、エンコーダは、フレームごとに、たとえば、各20ミリ秒(ms)のスピーチ/オーディオフレームに基づいて、シフト値を決定し得る。たとえば、シフト値は、第2のオーディオ信号の第2のフレームが第1のオーディオ信号の第1のフレームに対して遅延する時間量に対応し得る。代替的に、シフト値は、第1のオーディオ信号の第1のフレームが第2のオーディオ信号の第2のフレームに対して遅延する時間量に対応し得る。
【0024】
音源が第2のマイクロフォンよりも第1のマイクロフォンに近いとき、第2のオーディオ信号のフレームは、第1のオーディオ信号のフレームに対して遅延し得る。この場合、第1のオーディオ信号は「基準オーディオ信号」または「基準チャネル」と呼ばれることがあり、遅延する第2のオーディオ信号は「ターゲットオーディオ信号」または「ターゲットチャネル」と呼ばれることがある。代替的に、音源が第1のマイクロフォンよりも第2のマイクロフォンに近いとき、第1のオーディオ信号のフレームは、第2のオーディオ信号のフレームに対して遅延し得る。この場合、第2のオーディオ信号は「基準オーディオ信号」または「基準チャネル」と呼ばれることがあり、遅延する第1のオーディオ信号は「ターゲットオーディオ信号」または「ターゲットチャネル」と呼ばれることがある。
【0025】
音源(たとえば、話者)が会議室もしくはテレプレゼンス室のどこに位置するか、または音源(たとえば、話者)の位置がマイクロフォンに対してどのように変化するかに応じて、基準チャネルおよびターゲットチャネルはフレームごとに変化することがあり、同様に、時間的遅延値もフレームごとに変化することがある。しかしながら、いくつかの実装形態では、シフト値は常に、「基準」チャネルに対する「ターゲット」チャネルの遅延量を示すために正であり得る。さらに、シフト値は、遅延ターゲットチャネルが「基準」チャネルと整合する(たとえば、最大限に整合する)ように、ターゲットチャネルが時間的に「引き戻される」「非因果的シフト」値に対応し得る。ミッドチャネルおよびサイドチャネルを決定するためのダウンミックスアルゴリズムは、基準チャネルおよび非因果的シフトされたターゲットチャネルに対して実行され得る。
【0026】
エンコーダは、基準オーディオチャネルとターゲットオーディオチャネルに適用される複数のシフト値とに基づいて、シフト値を決定し得る。たとえば、基準オーディオチャネルの第1のフレーム、Xが、第1の時間(m
1)に受信され得る。ターゲットオーディオチャネルの第1の特定のフレーム、Yが、第1のシフト値、たとえばシフト1=n
1-m
1に対応する第2の時間(n
1)に受信され得る。さらに、基準オーディオチャネルの第2のフレームが、第3の時間(m
2)に受信され得る。ターゲットオーディオチャネルの第2の特定のフレームが、第2のシフト値、たとえばシフト2=n
2-m
2に対応する第4の時間(n
2)に受信され得る。
【0027】
デバイスは、フレーム(たとえば、20msごとのサンプル)を第1のサンプリングレート(たとえば、32kHzサンプリングレート(すなわち、フレームあたり640サンプル))で生成するために、フレーミングまたはバッファリングアルゴリズムを実行し得る。エンコーダは、第1のオーディオ信号の第1のフレームおよび第2のオーディオ信号の第2のフレームがデバイスに同時に到着するとの判断に応答して、シフト値(たとえば、シフト1)を、0サンプルに等しいと推定し得る。(たとえば、第1のオーディオ信号に対応する)左チャネルおよび(たとえば、第2のオーディオ信号に対応する)右チャネルが時間的に整合し得る。いくつかの場合には、左チャネルおよび右チャネルは、整合するときでも、様々な理由(たとえば、マイクロフォンのキャリブレーション)によりエネルギーが異なり得る。
【0028】
いくつかの例では、左チャネルおよび右チャネルは、様々な理由(たとえば、話者などの音源がマイクロフォンのうちの一方に、もう一方よりも近いことがあり、2つのマイクロフォンがしきい値(たとえば、1〜20センチメートル)の距離を超えて離れていることがある)により時間的に整合しないことがある。マイクロフォンに対する音源のロケーションは、左チャネルおよび右チャネルにおいて異なる遅延をもたらし得る。さらに、左チャネルと右チャネルとの間の利得差、エネルギー差、またはレベル差があり得る。
【0029】
いくつかの例では、複数の音源(たとえば、話者)からのマイクロフォンにおけるオーディオ信号の到着時間が、複数の話者が(たとえば、重複することなく)交互に話しているときに異なることがある。そのような場合、エンコーダは、基準チャネルを識別するために話者に基づいて時間的シフト値を動的に調整し得る。いくつかの他の例では、複数の話者が同時に話していることがあり、その結果、誰が最も声の大きい話者であるか、マイクロフォンに最も近いかなどに応じて、異なる時間的シフト値が生じることがある。
【0030】
いくつかの例では、第1のオーディオ信号および第2のオーディオ信号は、2つの信号が弱い相関(たとえば、相関なし)を潜在的に示すときに、合成または人工的に生成され得る。本明細書で説明する例は説明のためのものであり、同様の状況または異なる状況における第1のオーディオ信号と第2のオーディオ信号との間の関係を判断する際に有益であり得ることを理解されたい。
【0031】
エンコーダは、第1のオーディオ信号の第1のフレームと第2のオーディオ信号の複数のフレームとの比較に基づいて、比較値(たとえば、差値、差異値、または相互相関値)を生成し得る。複数のフレームの各フレームは、特定のシフト値に対応し得る。エンコーダは、比較値に基づいて第1の推定シフト値を生成し得る。たとえば、第1の推定シフト値は、第1のオーディオ信号の第1のフレームと第2のオーディオ信号の対応する第1のフレームとの間のより高い時間的類似性(またはより小さい差)を示す比較値に対応し得る。
【0032】
エンコーダは最終シフト値を、複数の段階において一連の推定シフト値を精緻化することによって決定し得る。たとえば、エンコーダは最初に、第1のオーディオ信号および第2のオーディオ信号のステレオ前処理され再サンプリングされたバージョンから生成された比較値に基づいて、「暫定的」シフト値を推定し得る。エンコーダは、推定「暫定的」シフト値に最も近いシフト値に関連する補間済み比較値を生成し得る。エンコーダは、補間済み比較値に基づいて、第2の推定「補間済み」シフト値を決定し得る。たとえば、第2の推定「補間済み」シフト値は、残りの補間済み比較値および第1の推定「暫定的」シフト値よりも高い時間的類似性(または小さい差)を示す特定の補間済み比較値に対応し得る。現在フレーム(たとえば、第1のオーディオ信号の第1のフレーム)の第2の推定「補間済み」シフト値が前フレーム(たとえば、第1のフレームに先行する第1のオーディオ信号のフレーム)の最終シフト値とは異なる場合、現在フレームの「補間済み」シフト値は、第1のオーディオ信号とシフトされた第2のオーディオ信号との間の時間的類似性を改善するためにさらに「補正」される。具体的には、第3の推定「補正済み」シフト値が、現在フレームの第2の推定「補間済み」シフト値および前フレームの最終推定シフト値の辺りを探索することによって、時間的類似性のより正確な測定値に対応し得る。第3の推定「補正済み」シフト値は、フレーム間のシフト値の見せかけの(spurious)変化を制限することによって最終シフト値を推定するようにさらに調整され、本明細書で説明するように2つの連続するフレームにおいて負のシフト値から正のシフト値に(またはその逆に)切り替わらないようにさらに制御される。
【0033】
いくつかの例では、エンコーダは、連続フレームまたは隣接フレームにおいて正のシフト値と負のシフト値との間またはその逆で切り替えるのを控え得る。たとえば、エンコーダは最終シフト値を、第1のフレームの推定「補間済み」または「補正済み」シフト値および第1のフレームに先行する特定のフレームにおける対応する推定「補間済み」または「補正済み」または最終シフト値に基づいて、時間的シフトなしを示す特定の値(たとえば、0)に設定し得る。例示すると、エンコーダは、現在フレーム(たとえば、第1のフレーム)の最終シフト値を、現在フレームの推定「暫定的」または「補間済み」または「補正済み」シフト値の一方が正であり、前フレーム(たとえば、第1のフレームに先行するフレーム)の推定「暫定的」または「補間済み」または「補正済み」または「最終」推定シフト値の他方が負であるとの判断に応答して、時間的シフトなし、すなわちシフト1=0を示すように設定し得る。代替的に、エンコーダはまた、現在フレーム(たとえば、第1のフレーム)の最終シフト値を、現在フレームの推定「暫定的」または「補間済み」または「補正済み」シフト値の一方が負であり、前フレーム(たとえば、第1のフレームに先行するフレーム)の推定「暫定的」または「補間済み」または「補正済み」または「最終」推定シフト値の他方が正であるとの判断に応答して、時間的シフトなし、すなわちシフト1=0を示すように設定し得る。
【0034】
エンコーダは、シフト値に基づいて「基準」または「ターゲット」として、第1のオーディオ信号または第2のオーディオ信号のフレームを選択し得る。たとえば、最終シフト値が正であるとの判断に応答して、エンコーダは、第1のオーディオ信号が「基準」信号であること、および第2のオーディオ信号が「ターゲット」信号であることを示す第1の値(たとえば、0)を有する基準チャネルまたは信号インジケータを生成し得る。代替的に、最終シフト値が負であるとの判断に応答して、エンコーダは、第2のオーディオ信号が「基準」信号であること、および第1のオーディオ信号が「ターゲット」信号であることを示す第2の値(たとえば、1)を有する基準チャネルまたは信号インジケータを生成し得る。
【0035】
エンコーダは、基準信号および非因果的シフトされたターゲット信号に関連する相対利得(たとえば、相対利得パラメータ)を推定し得る。たとえば、最終シフト値が正であるとの判断に応答して、エンコーダは、非因果的シフト値(たとえば、最終シフト値の絶対値)によってオフセットされる第2のオーディオ信号に対する第1のオーディオ信号のエネルギーまたは電力レベルを正規化または等化するための利得値を推定し得る。代替的に、最終シフト値が負であるとの判断に応答して、エンコーダは、第2のオーディオ信号に対する非因果的シフトされた第1のオーディオ信号の電力レベルを正規化または等化するための利得値を推定し得る。いくつかの例では、エンコーダは、非因果的シフトされた「ターゲット」信号に対する「基準」信号のエネルギーまたは電力レベルを正規化または等化するための利得値を推定し得る。他の例では、エンコーダは、ターゲット信号(たとえば、シフトされていないターゲット信号)に対する基準信号に基づく利得値(たとえば、相対利得値)を推定し得る。
【0036】
エンコーダは、基準信号、ターゲット信号、非因果的シフト値、および相対利得パラメータに基づいて、少なくとも1つの符号化された信号(たとえば、ミッド信号、サイド信号、または両方)を生成し得る。サイド信号は、第1のオーディオ信号の第1のフレームの第1のサンプルと第2のオーディオ信号の被選択フレームの被選択サンプルとの間の差に対応し得る。エンコーダは、最終シフト値に基づいて被選択フレームを選択し得る。第1のフレームと同時にデバイスによって受信される第2のオーディオ信号のフレームに対応する第2のオーディオ信号の他のサンプルと比較して、第1のサンプルと被選択サンプルとの間の差が縮小することに起因して、サイドチャネル信号を符号化するために、より少ないビットが使用され得る。デバイスの送信機は、少なくとも1つの符号化された信号、非因果的シフト値、相対利得パラメータ、基準チャネルまたは信号インジケータ、あるいはそれらの組合せを送信し得る。
【0037】
エンコーダは、基準信号、ターゲット信号、非因果的シフト値、相対利得パラメータ、第1のオーディオ信号の特定のフレームのローバンドパラメータ、特定のフレームのハイバンドパラメータ、またはそれらの組合せに基づいて、少なくとも1つの符号化された信号(たとえば、ミッド信号、サイド信号、または両方)を生成し得る。特定のフレームは、第1のフレームに先行し得る。1つまたは複数の先行フレームからのいくつかのローバンドパラメータ、ハイバンドパラメータ、またはそれらの組合せは、第1のフレームのミッド信号、サイド信号、または両方を符号化するために使用され得る。ローバンドパラメータ、ハイバンドパラメータ、またはそれらの組合せに基づいてミッド信号、サイド信号、または両方を符号化することで、非因果的シフト値およびチャネル間相対利得パラメータの推定値を改善し得る。ローバンドパラメータ、ハイバンドパラメータ、またはそれらの組合せは、ピッチパラメータ、有声化パラメータ(voicing parameter)、コーダタイプパラメータ、ローバンドエネルギーパラメータ、ハイバンドエネルギーパラメータ、チルトパラメータ、ピッチ利得パラメータ、FCB利得パラメータ、コーディングモードパラメータ、音声活動パラメータ、雑音推定パラメータ、信号対雑音比パラメータ、フォーマットパラメータ、スピーチ/ミュージック決定パラメータ、非因果的シフト、チャネル間利得パラメータ、またはそれらの組合せを含み得る。デバイスの送信機は、少なくとも1つの符号化された信号、非因果的シフト値、相対利得パラメータ、基準チャネル(または信号)インジケータ、あるいはそれらの組合せを送信し得る。
【0038】
図1を参照すると、システムの特定の説明のための例が開示され、全体的に100と指定されている。システム100は、ネットワーク120を介して第2のデバイス106に通信可能に結合された第1のデバイス104を含む。ネットワーク120は、1つもしくは複数のワイヤレスネットワーク、1つもしくは複数のワイヤードネットワーク、またはそれらの組合せを含み得る。
【0039】
第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、または両方に結合され得る。
【0040】
動作中、第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との間の時間的シフトをもたらし得る。
【0041】
時間的等化器108は、マイクロフォン146、148においてキャプチャされたオーディオの間の時間的オフセットを推定するように構成され得る。時間的オフセットは、第1のオーディオ信号130の第1のフレームと第2のオーディオ信号132の第2のフレームとの間の遅延に基づいて推定されてよく、この場合、第2のフレームが第1のフレームと実質的に同様のコンテンツを含む。たとえば、時間的等化器108は、第1のフレームと第2のフレームとの間の相互相関を判断し得る。相互相関は、一方のフレームの他方に対するラグの関数として、2つのフレームの類似性を測定し得る。相互相関に基づいて、時間的等化器108は、第1のフレームと第2のフレームとの間の遅延(たとえば、ラグ)を判断し得る。時間的等化器108は、遅延および履歴遅延データに基づいて、第1のオーディオ信号130と第2のオーディオ信号132との間の時間的オフセットを推定し得る。
【0042】
履歴データは、第1のマイクロフォン146からキャプチャされたフレームと第2のマイクロフォン148からキャプチャされた対応するフレームとの間の遅延を含み得る。たとえば、時間的等化器108は、第1のオーディオ信号130に関連する前フレームと第2のオーディオ信号132に関連する対応するフレームとの間の相互相関(たとえば、ラグ)を判断し得る。各ラグは、「比較値」によって表され得る。すなわち、比較値は、第1のオーディオ信号130のフレームと第2のオーディオ信号132の対応するフレームとの間の時間シフト(k)を示し得る。一実装形態によれば、前フレームに関する比較値は、メモリ153に記憶され得る。時間的等化器108の平滑器192は、フレームの長期セットで比較値を「平滑化する」(または平均する)ことができ、第1のオーディオ信号130と第2のオーディオ信号132との間の時間的オフセット(たとえば、「シフト」)を推定するために、長期平滑化比較値を使用することができる。
【0043】
例示すると、CompVal
N(k)が、フレームNに関するkのシフトにおける比較値を表す場合、フレームNは、k=T_MIN(最小シフト)からk=T_MAX(最大シフト)までの比較値を有し得る。平滑化は、長期比較値
【0047】
によって表されるように実行され得る。上記の式における関数fは、シフト(k)における過去の比較値のすべて(またはサブセット)の関数であり得る。長期比較値
【0051】
であり得る。関数fまたはgはそれぞれ、単純な有限インパルス応答(FIR)フィルタまたは無限インパルス応答(IIR)フィルタであり得る。たとえば、関数gは、長期比較値
【0055】
によって表されるような単一タップIIRフィルタであり得、この場合、α∈(0,1,0)である。したがって、長期比較値
【0057】
は、フレームNにおける瞬間的比較値CompVal
N(k)および1つまたは複数の前フレームに関する長期比較値
【0059】
の加重混合に基づき得る。αの値が増大するにつれて、長期比較値の平滑化の量も増大する。特定の態様では、関数fは、長期比較値
【0063】
によって表されるようなLタップFIRフィルタであり得、この場合、α1、α2、...、およびαLが重みに対応する。特定の態様では、α1、α2、...、およびαLの各々∈(0,1,0)であり、α1、α2、...、およびαLの特定の重みは、α1、α2、...、およびαLの別の重みと同じであるか、またはかかる別の重みとは別個のものであり得る。したがって、長期比較値
【0065】
は、フレームNにおける瞬間的比較値CompVal
N(k)および前(L-1)フレームにおける比較値CompVal
N-i(k)の加重混合に基づき得る。
【0066】
上記で説明した平滑化技法は、有声フレーム、無声フレーム、および遷移フレームの間のシフト推定値を実質的に正規化し得る。正規化シフト推定値により、フレーム境界においてサンプル繰返しおよびアーティファクトスキップが低減され得る。さらに、正規化シフト推定値により、サイドチャネルエネルギーが低減されることがあり、結果的にコーディング効率が改善されることがある。
【0067】
時間的等化器108は、第2のオーディオ信号132(たとえば、「基準」)に対する第1のオーディオ信号130(たとえば、「ターゲット」)のシフト(たとえば、非因果的シフト)を示す最終シフト値116(たとえば、非因果的シフト値)を決定し得る。最終シフト値116は、瞬間的比較値CompVal
N(k)および長期比較
【0069】
に基づき得る。たとえば、上記で説明した平滑化演算は、
図5に関して説明するように、暫定的シフト値、補間済みシフト値、補正済みシフト値、またはそれらの組合せに対して実行され得る。最終シフト値116は、
図5に関して説明するように、暫定的シフト値、補間済みシフト値、および補正済みシフト値に基づき得る。最終シフト値116の第1の値(たとえば、正の値)は、第2のオーディオ信号132が第1のオーディオ信号130に対して遅延していることを示し得る。最終シフト値116の第2の値(たとえば、負の値)は、第1のオーディオ信号130が第2のオーディオ信号132に対して遅延していることを示し得る。最終シフト値116の第3の値(たとえば、0)は、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延がないことを示し得る。
【0070】
いくつかの実装形態では、最終シフト値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を設定し得る。
【0071】
時間的等化器108は、最終シフト値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を生成し得る。
【0072】
時間的等化器108は、「ターゲット」信号のサンプルに基づいて、かつ「基準」信号のサンプルに基づいて利得パラメータ160(たとえば、コーデック利得パラメータ)を生成し得る。たとえば、時間的等化器108は、非因果的シフト値162に基づいて第2のオーディオ信号132のサンプルを選択し得る。代替的に、時間的等化器108は、非因果的シフト値162とは無関係に第2のオーディオ信号132のサンプルを選択し得る。時間的等化器108は、第1のオーディオ信号130が基準信号であるとの判断に応答して、第1のオーディオ信号130の第1のフレームの第1のサンプルに基づいて、被選択サンプルの利得パラメータ160を決定し得る。代替的に、時間的等化器108は、第2のオーディオ信号132が基準信号であるとの判断に応答して、被選択サンプルに基づいて、第1のサンプルの利得パラメータ160を決定し得る。一例として、利得パラメータ160は、以下の式のうちの1つに基づき得る。
【0079】
上式で、g
Dはダウンミックス処理のための相対利得パラメータ160に対応し、Ref(n)は「基準」信号のサンプルに対応し、N
1は第1のフレームの非因果的シフト値162に対応し、Targ(n+N
1)は「ターゲット」信号のサンプルに対応する。利得パラメータ160(g
D)は、たとえば、フレーム間の利得の大幅な増大を回避するための長期平滑化/ヒステリシス論理を組み込むために、式1a〜1fのうちの1つに基づいて修正され得る。ターゲット信号が第1のオーディオ信号130を含むとき、第1のサンプルはターゲット信号のサンプルを含むことができ、被選択サンプルは基準信号のサンプルを含むことができる。ターゲット信号が第2のオーディオ信号132を含むとき、第1のサンプルは基準信号のサンプルを含むことができ、被選択サンプルはターゲット信号のサンプルを含むことができる。
【0080】
いくつかの実装形態では、時間的等化器108は、基準信号インジケータ164にかかわらず、第1のオーディオ信号130を基準信号として扱い、第2のオーディオ信号132をターゲット信号として扱うことに基づいて、利得パラメータ160を生成し得る。たとえば、時間的等化器108は、式1a〜1fのうちの1つに基づいて利得パラメータ160を生成することができ、式中、Ref(n)は第1のオーディオ信号130のサンプル(たとえば、第1のサンプル)に対応し、Targ(n+N
1)は第2のオーディオ信号132のサンプル(たとえば、被選択サンプル)に対応する。代替実装形態では、時間的等化器108は、基準信号インジケータ164にかかわらず、第2のオーディオ信号132を基準信号として扱い、第1のオーディオ信号130をターゲット信号として扱うことに基づいて、利得パラメータ160を生成し得る。たとえば、時間的等化器108は、式1a〜1fのうちの1つに基づいて利得パラメータ160を生成することができ、式中、Ref(n)は第2のオーディオ信号132のサンプル(たとえば、被選択サンプル)に対応し、Targ(n+N
1)は第1のオーディオ信号130のサンプル(たとえば、第1のサンプル)に対応する。
【0081】
時間的等化器108は、第1のサンプル、被選択サンプル、およびダウンミックス処理のための相対利得パラメータ160に基づいて、1つまたは複数の符号化された信号102(たとえば、ミッドチャネル信号、サイドチャネル信号、または両方)を生成し得る。たとえば、時間的等化器108は、以下の式のうちの1つに基づいてミッド信号を生成し得る。
M=Ref(n)+g
DTarg(n+N
1)、式2a
M=Ref(n)+Targ(n+N
1)、式2b
M=DMXFAC*Ref(n)+(1-DMXFAC)*g
DTarg(n+N
1)、式2c
M=DMXFAC*Ref(n)+(1-DMXFAC)*Targ(n+N
1)、式2d
【0082】
上式で、Mはミッドチャネル信号に対応し、g
Dはダウンミックス処理のための相対利得パラメータ160に対応し、Ref(n)は「基準」信号のサンプルに対応し、N
1は第1のフレームの非因果的シフト値162に対応し、Targ(n+N
1)は「ターゲット」信号のサンプルに対応する。
図19を参照してさらに説明するように、DMXFACがダウンミックス係数に対応し得る。
【0083】
時間的等化器108は、以下の式のうちの1つに基づいてサイドチャネルを生成し得る。
S=Ref(n)-g
DTarg(n+N
1)、式3a
S=g
DRef(n)-Targ(n+N
1)、式3b
S=(1-DMXFAC)*Ref(n)-(DMXFAC)*g
DTarg(n+N
1)、式3c
S=(1-DMXFAC)*Ref(n)-(DMXFAC)*Targ(n+N
1)、式3d
【0084】
上式で、Sはサイドチャネル信号に対応し、g
Dはダウンミックス処理のための相対利得パラメータ160に対応し、Ref(n)は「基準」信号のサンプルに対応し、N
1は第1のフレームの非因果的シフト値162に対応し、Targ(n+N
1)は「ターゲット」信号のサンプルに対応する。
【0085】
送信機110は、符号化された信号102(たとえば、ミッドチャネル信号、サイドチャネル信号、もしくは両方)、基準信号インジケータ164、非因果的シフト値162、利得パラメータ160、またはそれらの組合せを、ネットワーク120を介して第2のデバイス106に送信し得る。いくつかの実装形態では、送信機110は、符号化された信号102(たとえば、ミッドチャネル信号、サイドチャネル信号、もしくは両方)、基準信号インジケータ164、非因果的シフト値162、利得パラメータ160、またはそれらの組合せを、後のさらなる処理または復号のためにネットワーク120のデバイスまたはローカルデバイスに記憶し得る。
【0086】
デコーダ118は、符号化された信号102を復号し得る。時間的バランサ124は、(たとえば、第1のオーディオ信号130に対応する)第1の出力信号126、(たとえば、第2のオーディオ信号132に対応する)第2の出力信号128、または両方を生成するためにアップミキシングを実行し得る。第2のデバイス106は、第1のラウドスピーカー142を介して第1の出力信号126を出力し得る。第2のデバイス106は、第2のラウドスピーカー144を介して第2の出力信号128を出力し得る。
【0087】
したがって、システム100は、時間的等化器108がミッド信号よりも少ないビットを使用してサイドチャネル信号を符号化することを可能にし得る。第1のオーディオ信号130の第1のフレームの第1のサンプルおよび第2のオーディオ信号132の被選択サンプルは、音源152によって出された同じ音に対応することができ、したがって、第1のサンプルと被選択サンプルとの間の差は、第1のサンプルと第2のオーディオ信号132の他のサンプルとの間の差よりも小さくなり得る。サイドチャネル信号は、第1のサンプルと被選択サンプルとの間の差に対応し得る。
【0088】
図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を含み得る。
【0089】
動作中、第1のデバイス204は、3つ以上のオーディオ信号を受信し得る。たとえば、第1のデバイス204は、第1のマイクロフォン146を介して第1のオーディオ信号130、第Nのマイクロフォン248を介して第Nのオーディオ信号232、および追加のマイクロフォン(たとえば、第2のマイクロフォン148)を介して1つまたは複数の追加のオーディオ信号(たとえば、第2のオーディオ信号132)を受信し得る。
【0090】
時間的等化器208は、1つもしくは複数の基準信号インジケータ264、最終シフト値216、非因果的シフト値262、利得パラメータ260、符号化された信号202、またはそれらの組合せを生成し得る。たとえば、時間的等化器208は、第1のオーディオ信号130が基準信号であり、第Nのオーディオ信号232および追加のオーディオ信号の各々がターゲット信号であると判断し得る。時間的等化器208は、基準信号インジケータ264と、最終シフト値216と、非因果的シフト値262と、利得パラメータ260と、第1のオーディオ信号130ならびに第Nのオーディオ信号232および追加のオーディオ信号の各々に対応する符号化された信号202とを生成し得る。
【0091】
基準信号インジケータ264は、基準信号インジケータ164を含み得る。最終シフト値216は、第1のオーディオ信号130に対する第2のオーディオ信号132のシフトを示す最終シフト値116、第1のオーディオ信号130に対する第Nのオーディオ信号232のシフトを示す第2の最終シフト値、または両方を含み得る。非因果的シフト値262は、最終シフト値116の絶対値に対応する非因果的シフト値162、第2の最終シフト値の絶対値に対応する第2の非因果的シフト値、または両方を含み得る。利得パラメータ260は、第2のオーディオ信号132の被選択サンプルの利得パラメータ160、第Nのオーディオ信号232の被選択サンプルの第2の利得パラメータ、または両方を含み得る。符号化された信号202は、符号化された信号102のうちの少なくとも1つを含み得る。たとえば、符号化された信号202は、第1のオーディオ信号130の第1のサンプルおよび第2のオーディオ信号132の被選択サンプルに対応するサイドチャネル信号、第1のサンプルおよび第Nのオーディオ信号232の被選択サンプルに対応する第2のサイドチャネル、または両方を含み得る。符号化された信号202は、第1のサンプル、第2のオーディオ信号132の被選択サンプル、および第Nのオーディオ信号232の被選択サンプルに対応するミッドチャネル信号を含み得る。
【0092】
いくつかの実装形態では、時間的等化器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を含み得る。
【0093】
送信機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)、またはそれらの組合せを出力し得る。
【0094】
したがって、システム200は、時間的等化器208が3つ以上のオーディオ信号を符号化することを可能にし得る。たとえば、符号化された信号202は、非因果的シフト値262に基づいてサイドチャネル信号を生成することによって、対応するミッドチャネルよりも少ないビットを使用して符号化される複数のサイドチャネル信号を含み得る。
【0095】
図3を参照すると、サンプルの説明のための例が示され、全体的に300と指定されている。サンプル300の少なくともサブセットが、本明細書で説明するように、第1のデバイス104によって符号化され得る。
【0096】
サンプル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つもしくは複数の追加のサンプル、またはそれらの組合せを含み得る。
【0097】
第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つもしくは複数の追加のサンプル、またはそれらの組合せに対応し得る。
【0098】
サンプル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とほぼ同時に受信され得る。
【0099】
最終シフト値116の第1の値(たとえば、正の値)は、第2のオーディオ信号132が第1のオーディオ信号130に対して遅延することを示し得る。たとえば、最終シフト値116の第1の値(たとえば、+Xmsまたは+Yサンプルであって、XおよびYが正の実数を含む)は、フレーム304(たとえば、サンプル326〜332)がサンプル358〜364に対応することを示し得る。サンプル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においてクロスハッチング付きで示されている。
【0100】
図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サンプルを含み得る。
【0101】
図1の時間的等化器108は、
図1を参照して説明したように、サンプル326〜332およびサンプル358〜364を符号化することによって、符号化された信号102を生成し得る。時間的等化器108は、第1のオーディオ信号130が基準信号に対応し、第2のオーディオ信号132がターゲット信号に対応すると判断し得る。
【0102】
図4を参照すると、サンプルの説明のための例が示され、全体的に400と指定されている。サンプル400は、第1のオーディオ信号130が第2のオーディオ信号132に対して遅延するという点で、サンプル300とは異なる。
【0103】
最終シフト値116の第2の値(たとえば、負の値)は、第1のオーディオ信号130が第2のオーディオ信号132に対して遅延することを示し得る。たとえば、最終シフト値116の第2の値(たとえば、-Xmsまたは-Yサンプルであって、XおよびYが正の実数を含む)は、フレーム304(たとえば、サンプル326〜332)がサンプル354〜360に対応することを示し得る。サンプル354〜360は、第2のオーディオ信号132のフレーム344に対応し得る。サンプル354〜360(たとえば、フレーム344)およびサンプル326〜332(たとえば、フレーム304)は、音源152から出された同じ音に対応し得る。
【0104】
図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サンプルを含み得る。
【0105】
図1の時間的等化器108は、
図1を参照して説明したように、サンプル354〜360およびサンプル326〜332を符号化することによって、符号化された信号102を生成し得る。時間的等化器108は、第2のオーディオ信号132が基準信号に対応し、第1のオーディオ信号130がターゲット信号に対応すると判断し得る。特に、時間的等化器108は、
図5を参照して説明するように、最終シフト値116から非因果的シフト値162を推定し得る。時間的等化器108は、最終シフト値116の符号に基づいて、第1のオーディオ信号130または第2のオーディオ信号132のうちの一方を基準信号として、また第1のオーディオ信号130または第2のオーディオ信号132のうちの他方をターゲット信号として識別する(たとえば、指定する)ことができる。
【0106】
図5を参照すると、システムの説明のための例が示され、全体的に500と指定されている。システム500は、
図1のシステム100に対応し得る。たとえば、
図1のシステム100、第1のデバイス104、または両方は、システム500の1つまたは複数の構成要素を含み得る。時間的等化器108は、リサンプラ504、信号比較器506、補間器510、シフトリファイナ511、シフト変化分析器512、絶対シフト生成器513、基準信号指定器508、利得パラメータ生成器514、信号生成器516、またはそれらの組合せを含み得る。
【0107】
動作中、リサンプラ504は、
図6を参照してさらに説明するように、1つまたは複数の再サンプリングされた信号を生成し得る。たとえば、リサンプラ504は、再サンプリング(たとえば、ダウンサンプリングまたはアップサンプリング)係数(D)(たとえば、≧1)に基づいて第1のオーディオ信号130を再サンプリングする(たとえば、ダウンサンプリングする、またはアップサンプリングする)ことによって、第1の再サンプリングされた信号530を生成し得る。リサンプラ504は、再サンプリング係数(D)に基づいて第2のオーディオ信号132を再サンプリングすることによって、第2の再サンプリングされた信号532を生成し得る。リサンプラ504は、第1の再サンプリングされた信号530、第2の再サンプリングされた信号532、または両方を信号比較器506に提供し得る。
【0108】
信号比較器506は、
図7を参照してさらに説明するように、比較値534(たとえば、差値、差異値、類似性値、コヒーレンス値、もしくは相互相関値)、暫定的シフト値536、または両方を生成し得る。たとえば、信号比較器506は、
図7を参照してさらに説明するように、第1の再サンプリングされた信号530と第2の再サンプリングされた信号532に適用される複数のシフト値とに基づいて、比較値534を生成し得る。信号比較器506は、
図7を参照してさらに説明するように、比較値534に基づいて暫定的シフト値536を決定し得る。一実装形態によれば、信号比較器506は、再サンプリングされた信号530、532の前フレームに関する比較値を取り出すことができ、前フレームに関する比較値を使用して、長期平滑化演算に基づいて比較値534を修正することができる。たとえば、比較値534は、現在のフレーム(N)に関する長期比較値
【0112】
によって表され得、この場合、α∈(0,1,0)である。したがって、長期比較値
【0114】
は、フレームNにおける瞬間的比較値CompVal
N(k)および1つまたは複数の前フレームに関する長期比較値
【0116】
の加重混合に基づき得る。αの値が増大するにつれて、長期比較値の平滑化の量も増大する。
【0117】
第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に提供し得る。
【0118】
補間器510は、暫定的シフト値536を拡大適用する(extend)ことができる。たとえば、補間器510は、
図8を参照してさらに説明するように、補間済みシフト値538を生成し得る。たとえば、補間器510は、比較値534を補間することによって、暫定的シフト値536に最も近いシフト値に対応する補間済み比較値を生成し得る。補間器510は、補間済み比較値および比較値534に基づいて、補間済みシフト値538を決定し得る。比較値534は、シフト値のより粗い細分性に基づき得る。たとえば、比較値534は、シフト値のセットの第1のサブセットに基づき得、結果として、第1のサブセットの第1のシフト値と第1のサブセットの各第2のシフト値との間の差がしきい値(たとえば、≧1)以上となる。しきい値は、再サンプリング係数(D)に基づき得る。
【0119】
補間済み比較値は、再サンプリングされた暫定的シフト値536に最も近いシフト値のより細かい細分性に基づき得る。たとえば、補間済み比較値は、シフト値のセットの第2のサブセットに基づき得、結果として、第2のサブセットの最も高いシフト値と再サンプリングされた暫定的シフト値536との間の差がしきい値(たとえば、≧1)未満となり、第2のサブセットの最も低いシフト値と再サンプリングされた暫定的シフト値536との間の差がしきい値未満となる。シフト値のセットのより粗い細分性(たとえば、第1のサブセット)に基づいて比較値534を決定する場合は、シフト値のセットのより細かい細分性(たとえば、すべて)に基づいて比較値534を決定する場合よりも少ないリソース(たとえば、時間、動作、または両方)を使用し得る。シフト値の第2のサブセットに対応する補間済み比較値を決定する場合は、シフト値のセットの各シフト値に対応する比較値を決定することなく、暫定的シフト値536に最も近いシフト値のより小さいセットのより細かい細分性に基づいて暫定的シフト値536を拡大適用することができる。したがって、シフト値の第1のサブセットに基づいて暫定的シフト値536を決定し、補間済み比較値に基づいて補間済みシフト値538を決定する場合は、リソースの使用と推定シフト値の精緻化とのバランスをとることができる。補間器510は、補間済みシフト値538をシフトリファイナ511に提供し得る。
【0120】
一実装形態によれば、補間器510は、前フレームに関する補間済みシフト値を取り出すことができ、前フレームに関する補間済みシフト値を使用して、長期平滑化演算に基づいて補間済みシフト値538を修正することができる。たとえば、補間済みシフト値538は、現在のフレーム(N)に関する長期補間済みシフト値
【0124】
によって表され得、この場合、α∈(0,1,0)である。したがって、長期補間済みシフト値
【0126】
は、フレームNにおける瞬間的補間済みシフト値InterVal
N(k)および1つまたは複数の前フレームに関する長期補間済みシフト値
【0128】
の加重混合に基づき得る。αの値が増大するにつれて、長期比較値の平滑化の量も増大する。
【0129】
シフトリファイナ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に提供し得る。
【0130】
一実装形態によれば、シフトリファイナは、前フレームに関する補正済みシフト値を取り出すことができ、前フレームに関する補正済みシフト値を使用して、長期平滑化演算に基づいて補正済みシフト値540を修正することができる。たとえば、補正済みシフト値540は、現在のフレーム(N)に関する長期補正済みシフト値
【0134】
によって表され得、この場合、α∈(0,1,0)である。したがって、長期補正済みシフト値
【0136】
は、フレームNにおける瞬間的補正済みシフト値AmendVal
N(k)および1つまたは複数の前フレームに関する長期補正済みシフト値
【0138】
の加重混合に基づき得る。αの値が増大するにつれて、長期比較値の平滑化の量も増大する。
【0139】
いくつかの実装形態では、シフトリファイナ511は、
図9Bを参照して説明するように、補間済みシフト値538を調整し得る。シフトリファイナ511は、調整された補間済みシフト値538に基づいて補正済みシフト値540を決定し得る。いくつかの実装形態では、シフトリファイナ511は、
図9Cを参照して説明するように、補正済みシフト値540を決定し得る。
【0140】
シフト変化分析器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を決定し得る。
【0141】
絶対シフト生成器513は、最終シフト値116に絶対関数を適用することによって、非因果的シフト値162を生成し得る。絶対シフト生成器513は、非因果的シフト値162を利得パラメータ生成器514に提供し得る。
【0142】
基準信号指定器508は、
図12〜
図13を参照してさらに説明するように、基準信号インジケータ164を生成し得る。たとえば、基準信号インジケータ164は、第1のオーディオ信号130が基準信号であることを示す第1の値または第2のオーディオ信号132が基準信号であることを示す第2の値を有し得る。基準信号指定器508は、基準信号インジケータ164を利得パラメータ生成器514に提供し得る。
【0143】
利得パラメータ生成器514は、非因果的シフト値162に基づいてターゲット信号(たとえば、第2のオーディオ信号132)のサンプルを選択し得る。例示すると、利得パラメータ生成器514は、非因果的シフト値162が第1の値(たとえば、+Xmsまたは+Yサンプルであって、XおよびYが正の実数を含む)を有するとの判断に応答して、サンプル358〜364を選択し得る。利得パラメータ生成器514は、非因果的シフト値162が第2の値(たとえば、-Xmsまたは-Yサンプル)を有するとの判断に応答して、サンプル354〜360を選択し得る。利得パラメータ生成器514は、時間シフトなしを示す値(たとえば、0)を非因果的シフト値162が有するとの判断に応答して、サンプル356〜362を選択し得る。
【0144】
利得パラメータ生成器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を生成することができ、式中、g
Dは利得パラメータ160に対応し、Ref(n)は基準信号のサンプルに対応し、Targ(n+N
1)はターゲット信号のサンプルに対応する。例示すると、非因果的シフト値162が第1の値(たとえば、+Xmsまたは+Yサンプルであって、XおよびYが正の実数を含む)を有するときに、Ref(n)はフレーム304のサンプル326〜332に対応することができ、Targ(n+t
N1)はフレーム344のサンプル358〜364に対応することができる。いくつかの実装形態では、
図1を参照して説明したように、Ref(n)は第1のオーディオ信号130のサンプルに対応することができ、Targ(n+N
1)は第2のオーディオ信号132のサンプルに対応することができる。代替実装形態では、
図1を参照して説明したように、Ref(n)は第2のオーディオ信号132のサンプルに対応することができ、Targ(n+N
1)は第1のオーディオ信号130のサンプルに対応することができる。
【0145】
利得パラメータ生成器514は、利得パラメータ160、基準信号インジケータ164、非因果的シフト値162、またはそれらの組合せを信号生成器516に提供し得る。信号生成器516は、
図1を参照して説明したように、符号化された信号102を生成し得る。たとえば、符号化された信号102は、第1の符号化された信号フレーム564(たとえば、ミッドチャネルフレーム)、第2の符号化された信号フレーム566(たとえば、サイドチャネルフレーム)、または両方を含み得る。信号生成器516は、式2aまたは式2bに基づいて第1の符号化された信号フレーム564を生成することができ、式中、Mは第1の符号化された信号フレーム564に対応し、g
Dは利得パラメータ160に対応し、Ref(n)は基準信号のサンプルに対応し、Targ(n+N
1)はターゲット信号のサンプルに対応する。信号生成器516は、式3aまたは式3bに基づいて第2の符号化された信号フレーム566を生成することができ、式中、Sは第2の符号化された信号フレーム566に対応し、g
Dは利得パラメータ160に対応し、Ref(n)は基準信号のサンプルに対応し、Targ(n+N
1)はターゲット信号のサンプルに対応する。
【0146】
時間的等化器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、またはそれらの組合せを含み得る。
【0147】
上記で説明した平滑化技法は、有声フレーム、無声フレーム、および遷移フレームの間のシフト推定値を実質的に正規化し得る。正規化シフト推定値により、フレーム境界においてサンプル繰返しおよびアーティファクトスキップが低減され得る。さらに、正規化シフト推定値により、サイドチャネルエネルギーが低減されることがあり、結果的にコーディング効率が改善されることがある。
【0148】
図6を参照すると、システムの説明のための例が示され、全体的に600と指定されている。システム600は、
図1のシステム100に対応し得る。たとえば、
図1のシステム100、第1のデバイス104、または両方は、システム600の1つまたは複数の構成要素を含み得る。
【0149】
リサンプラ504は、
図1の第1のオーディオ信号130を再サンプリングする(たとえば、ダウンサンプリングする、またはアップサンプリングする)ことによって、第1の再サンプリングされた信号530の第1のサンプル620を生成し得る。リサンプラ504は、
図1の第2のオーディオ信号132を再サンプリングする(たとえば、ダウンサンプリングする、またはアップサンプリングする)ことによって、第2の再サンプリングされた信号532の第2のサンプル650を生成し得る。
【0150】
第1のオーディオ信号130は、
図3の第1のサンプル320を生成するために第1のサンプルレート(Fs)でサンプリングされ得る。第1のサンプルレート(Fs)は、広帯域(WB)帯域幅に関連する第1のレート(たとえば、16キロヘルツ(kHz))、超広帯域(SWB)帯域幅に関連する第2のレート(たとえば、32kHz)、全帯域(FB)帯域幅に関連する第3のレート(たとえば、48kHz)、または別のレートに対応し得る。第2のオーディオ信号132は、
図3の第2のサンプル350を生成するために第1のサンプルレート(Fs)でサンプリングされ得る。
【0151】
いくつかの実装形態では、リサンプラ504は、第1のオーディオ信号130(または第2のオーディオ信号132)を再サンプリングする前に、第1のオーディオ信号130(または第2のオーディオ信号132)を前処理し得る。リサンプラ504は、無限インパルス応答(IIR)フィルタ(たとえば、1次IIRフィルタ)に基づいて第1のオーディオ信号130(または第2のオーディオ信号132)をフィルタ処理することによって、第1のオーディオ信号130(または第2のオーディオ信号132)を前処理し得る。IIRフィルタは、以下の式に基づき得る。
H
pre(z)=1/
(1-αz-1)、式4
【0152】
上式で、αは0.68または0.72などの正である。再サンプリングする前にデエンファシスを実行することで、エイリアシング、信号調整、またはその両方などの影響を低減することができる。第1のオーディオ信号130(たとえば、前処理された第1のオーディオ信号130)および第2のオーディオ信号132(たとえば、前処理された第2のオーディオ信号132)は、再サンプリング係数(D)に基づいて再サンプリングされ得る。再サンプリング係数(D)は、第1のサンプルレート(Fs)に基づき得る(たとえば、D=Fs/8、D=2Fsなど)。
【0153】
代替実装形態では、第1のオーディオ信号130および第2のオーディオ信号132は、再サンプリングする前にアンチエイリアシングフィルタを使用してローパスフィルタ処理またはデシメートされ得る。デシメーションフィルタは、再サンプリング係数(D)に基づき得る。特定の例では、リサンプラ504は、第1のサンプルレート(Fs)が特定のレート(たとえば、32kHz)に対応するとの決定に応答して、第1のカットオフ周波数(たとえば、π/Dまたはπ/4)によるデシメーションフィルタを選択し得る。複数の信号(たとえば、第1のオーディオ信号130および第2のオーディオ信号132)をデエンファシス処理することによってエイリアシングを低減する場合は、複数の信号にデシメーションフィルタを適用する場合よりも計算コストが少なくなり得る。
【0154】
第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に対応し得る。
【0155】
第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〜667がそれぞれ
図3のサンプル322〜336およびサンプル352〜366と同様であり得る。
【0156】
リサンプラ504は、第1のサンプル620、第2のサンプル650、または両方をメモリ153に記憶し得る。たとえば、分析データ190は、第1のサンプル620、第2のサンプル650、または両方を含み得る。
【0157】
図7を参照すると、システムの説明のための例が示され、全体的に700と指定されている。システム700は、
図1のシステム100に対応し得る。たとえば、
図1のシステム100、第1のデバイス104、または両方は、システム700の1つまたは複数の構成要素を含み得る。
【0158】
メモリ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との間の予想時間的シフト(たとえば、最大予想時間的シフト)を示し得る。
【0159】
動作中、信号比較器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)に対応し得る。
【0160】
サンプル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との間の差を示し得る。
【0161】
第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を含み得る。
【0162】
信号比較器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を選択し得る。
【0163】
被選択比較値736は、比較値534の他の値よりも高い相関(または、小さい差)を示し得る。信号比較器506は、被選択比較値736に対応するシフト値760の暫定的シフト値536を識別し得る。たとえば、信号比較器506は、第2のシフト値766が被選択比較値736(たとえば、第2の比較値716)に対応するとの判断に応答して、暫定的シフト値536として第2のシフト値766を識別し得る。
【0164】
信号比較器506は、以下の式に基づいて被選択比較値736を決定し得る。
【0166】
上式で、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に対応する。
【0167】
信号比較器506は、以下の式に基づいて暫定的シフト値536を決定し得る。
【0169】
上式で、Tは暫定的シフト値536に対応する。
【0170】
信号比較器506は、
図6の再サンプリング係数(D)に基づいて、再サンプリングされたサンプルから元のサンプルに暫定的シフト値536をマッピングし得る。たとえば、信号比較器506は、再サンプリング係数(D)に基づいて暫定的シフト値536を更新し得る。例示すると、信号比較器506は暫定的シフト値536を、暫定的シフト値536(たとえば、3)と再サンプリング係数(D)(たとえば、4)との積(たとえば、12)に設定し得る。
【0171】
図8を参照すると、システムの説明のための例が示され、全体的に800と指定されている。システム800は、
図1のシステム100に対応し得る。たとえば、
図1のシステム100、第1のデバイス104、または両方は、システム800の1つまたは複数の構成要素を含み得る。メモリ153は、シフト値860を記憶するように構成され得る。シフト値860は、第1のシフト値864、第2のシフト値866、または両方を含み得る。
【0172】
動作中、補間器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))まで及び得る。
【0173】
補間器510は、本明細書で説明するように、比較値534に対して補間を実行することによって、シフト値860に対応する補間済み比較値816を生成し得る。シフト値860のうちの1つまたは複数に対応する比較値は、比較値534のより粗い細分性のせいで、比較値534から除外され得る。補間済み比較値816を使用することで、シフト値860のうちの1つまたは複数に対応する補間済み比較値を探索して、暫定的シフト値536に最も近い特定のシフト値に対応する補間済み比較値が
図7の第2の比較値716よりも高い相関(または小さい差)を示すかどうかを判断することが可能になり得る。
【0174】
図8は、補間済み比較値816および比較値534(たとえば、相互相関値)の例を示すグラフ820を含む。補間器510は、ハニングウィンドウ化されたsinc補間、IIRフィルタベースの補間、スプライン補間、別の形態の信号補間、またはそれらの組合せに基づいて、補間を実行し得る。たとえば、補間器510は、以下の式に基づいて、ハニングウィンドウ化されたsinc補間を実行し得る。
【0178】
であり、bはウィンドウ化されたsinc関数に対応し、
【0182】
は、比較値534のうちの特定の比較値に対応し得る。たとえば、
【0184】
は、iが4に対応するときに、第1のシフト値(たとえば、8)に対応する比較値534のうちの第1の比較値を示し得る。
【0186】
は、iが0に対応するときに、暫定的シフト値536(たとえば、12)に対応する第2の比較値716を示し得る。
【0188】
は、iが-4に対応するときに、第3のシフト値(たとえば、16)に対応する比較値534のうちの第3の比較値を示し得る。
【0189】
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の補間済み値とは別個のものであり得る。
【0190】
式7では、8kHzは、比較値534の第1のレートに対応し得る。たとえば、第1のレートは、比較値534に含まれるフレーム(たとえば、
図3のフレーム304)に対応する比較値の数(たとえば、8)を示し得る。32kHzは、補間済み比較値816の第2のレートに対応し得る。たとえば、第2のレートは、補間済み比較値816に含まれるフレーム(たとえば、
図3のフレーム304)に対応する補間済み比較値の数(たとえば、32)を示し得る。
【0191】
補間器510は、補間済み比較値816のうちの補間済み比較値838(たとえば、最大値または最小値)を選択し得る。補間器510は、補間済み比較値838に対応するシフト値860のうちのシフト値(たとえば、14)を選択し得る。補間器510は、被選択シフト値(たとえば、第2のシフト値866)を示す補間済みシフト値538を生成し得る。
【0192】
暫定的シフト値536を決定するために粗い手法を使用し、補間済みシフト値538を決定するために暫定的シフト値536の辺りを探索することで、探索の効率性または正確性を損なうことなく、探索の複雑性を低減することができる。
【0193】
図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に対応し得る。
【0194】
図9Aはまた、全体的に920と指定された例示的な動作方法のフローチャートを含む。方法920は、
図1の時間的等化器108、エンコーダ114、第1のデバイス104、
図2の時間的等化器208、エンコーダ214、第1のデバイス204、
図5のシフトリファイナ511、シフトリファイナ911、またはそれらの組合せによって実行され得る。
【0195】
方法920は、901において、第1のシフト値962と補間済みシフト値538との間の差の絶対値が第1のしきい値よりも大きいかどうかを判断するステップを含む。たとえば、シフトリファイナ911は、第1のシフト値962と補間済みシフト値538との間の差の絶対値が第1のしきい値(たとえば、シフト変化しきい値)よりも大きいかどうかを判断し得る。
【0196】
方法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に設定され得る。
【0197】
方法920は、901における、絶対値が第1のしきい値よりも大きいとの判断に応答して、904において、第1のシフト値962が補間済みシフト値538よりも大きいかどうかを判断するステップをさらに含む。たとえば、シフトリファイナ911は、絶対値がシフト変化しきい値よりも大きいとの判断に応答して、第1のシフト値962が補間済みシフト値538よりも大きいかどうかを判断し得る。
【0198】
方法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のしきい値)との間の差に設定され得る。
【0199】
方法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のしきい値)との間の差に設定され得る。
【0200】
方法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の特定のサブセットとの間の差(または相関)を示し得る。
【0201】
方法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)に設定し得る。
【0202】
第2のケースでは、比較値916が相互相関値に対応するときに、シフトリファイナ911は、補間済み比較値838が比較値916のうちの最高比較値未満であると判断することができ、補正済みシフト値540を、最高比較値に対応するシフト値960のうちの特定のシフト値(たとえば、18)に設定することができる。代替的に、比較値916が差値(たとえば、差異値)に対応するときに、シフトリファイナ911は、補間済み比較値838が比較値916のうちの最低比較値よりも大きいと判断することができ、補正済みシフト値540を、最低比較値に対応するシフト値960のうちの特定のシフト値(たとえば、18)に設定することができる。
【0203】
比較値916は、第1のオーディオ信号130、第2のオーディオ信号132、およびシフト値960に基づいて生成し得る。補正済みシフト値540は、
図7を参照して説明したように、信号比較器506によって実行されるのと同様の手順を使用して、比較値916に基づいて生成され得る。
【0204】
したがって、方法920は、シフトリファイナ911が、連続(または隣接)フレームに関連するシフト値の変化を制限することを可能にし得る。シフト値の変化が減ると、符号化中のサンプル紛失またはサンプル複製が減少し得る。
【0205】
図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を決定し得る。
【0206】
図9Bはまた、全体的に951と指定された例示的な動作方法のフローチャートを含む。方法951は、
図1の時間的等化器108、エンコーダ114、第1のデバイス104、
図2の時間的等化器208、エンコーダ214、第1のデバイス204、
図5のシフトリファイナ511、
図9Aのシフトリファイナ911、補間済みシフト調整器958、またはそれらの組合せによって実行され得る。
【0207】
方法951は、952において、第1のシフト値962と無制限補間済みシフト値956との間の差に基づいて、オフセット957を生成するステップを含む。たとえば、補間済みシフト調整器958は、第1のシフト値962と無制限補間済みシフト値956との間の差に基づいて、オフセット957を生成し得る。無制限補間済みシフト値956は、(たとえば、補間済みシフト調整器958による調整の前の)補間済みシフト値538に対応し得る。補間済みシフト調整器958は、無制限補間済みシフト値956をメモリ153に記憶し得る。たとえば、分析データ190は無制限補間済みシフト値956を含み得る。
【0208】
方法951はまた、953において、オフセット957の絶対値がしきい値よりも大きいかどうかを判断するステップを含む。たとえば、補間済みシフト調整器958は、オフセット957の絶対値がしきい値を満たすかどうかを判断し得る。しきい値は、補間済みシフト制限MAX_SHIFT_CHANGE(たとえば、4)に対応し得る。
【0209】
方法951は、953における、オフセット957の絶対値がしきい値よりも大きいとの判断に応答して、954において、第1のシフト値962、オフセット957の符号、およびしきい値に基づいて、補間済みシフト値538を設定するステップを含む。たとえば、補間済みシフト調整器958は、オフセット957の絶対値がしきい値を満たさない(たとえば、しきい値よりも大きい)との判断に応答して、補間済みシフト値538を制限し得る。例示すると、補間済みシフト調整器958は、第1のシフト値962、オフセット957の符号(たとえば、+1または-1)、およびしきい値に基づいて、補間済みシフト値538を調整し得る(たとえば、補間済みシフト値538=第1のシフト値962+sign(オフセット957)*しきい値)。
【0210】
方法951は、953における、オフセット957の絶対値がしきい値以下であるとの判断に応答して、955において、補間済みシフト値538を無制限補間済みシフト値956に設定するステップを含む。たとえば、補間済みシフト調整器958は、オフセット957の絶対値がしきい値を満たす(たとえば、しきい値以下である)との判断に応答して、補間済みシフト値538を変えるのを控え得る。
【0211】
したがって、方法951は、第1のシフト値962に対する補間済みシフト値538の変化が補間シフト制限を満たすように、補間済みシフト値538を制限することを可能にし得る。
【0212】
図9Cを参照すると、システムの説明のための例が示され、全体的に970と指定されている。システム970は、
図1のシステム100に対応し得る。たとえば、
図1のシステム100、第1のデバイス104、または両方は、システム970の1つまたは複数の構成要素を含み得る。システム970は、メモリ153、シフトリファイナ921、または両方を含み得る。シフトリファイナ921は、
図5のシフトリファイナ511に対応し得る。
【0213】
図9Cはまた、全体的に971と指定された例示的な動作方法のフローチャートを含む。方法971は、
図1の時間的等化器108、エンコーダ114、第1のデバイス104、
図2の時間的等化器208、エンコーダ214、第1のデバイス204、
図5のシフトリファイナ511、
図9Aのシフトリファイナ911、シフトリファイナ921、またはそれらの組合せによって実行され得る。
【0214】
方法971は、972において、第1のシフト値962と補間済みシフト値538との間の差が非0であるかどうかを判断するステップを含む。たとえば、シフトリファイナ921は、第1のシフト値962と補間済みシフト値538との間の差が非0であるかどうかを判断し得る。
【0215】
方法971は、972における、第1のシフト値962と補間済みシフト値538との間の差が0であるとの判断に応答して、973において、補正済みシフト値540を補間済みシフト値538に設定するステップを含む。たとえば、シフトリファイナ921は、第1のシフト値962と補間済みシフト値538との間の差が0であるとの判断に応答して、補間済みシフト値538に基づいて補正済みシフト値540を決定し得る(たとえば、補正済みシフト値540=補間済みシフト値538)。
【0216】
方法971は、972における、第1のシフト値962と補間済みシフト値538との間の差が非0であるとの判断に応答して、975において、オフセット957の絶対値がしきい値よりも大きいかどうかを判断するステップを含む。たとえば、シフトリファイナ921は、第1のシフト値962と補間済みシフト値538との間の差が非0であるとの判断に応答して、オフセット957の絶対値がしきい値よりも大きいかどうかを判断し得る。オフセット957は、
図9Bを参照して説明したように、第1のシフト値962と無制限補間済みシフト値956との間の差に対応し得る。しきい値は、補間済みシフト制限MAX_SHIFT_CHANGE(たとえば、4)に対応し得る。
【0217】
方法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を決定し得る。
【0218】
方法971はまた、977において、第1のオーディオ信号130と第2のオーディオ信号132に適用されるシフト値960とに基づいて、比較値916を生成するステップを含む。たとえば、シフトリファイナ921(または信号比較器506)は、第1のオーディオ信号130と第2のオーディオ信号132に適用されるシフト値960とに基づいて、
図7を参照して説明したように、比較値916を生成し得る。シフト値960は、下位シフト値930から上位シフト値932まで及び得る。方法971は979に進み得る。
【0219】
方法971は、975における、オフセット957の絶対値がしきい値よりも大きいとの判断に応答して、978において、第1のオーディオ信号130と第2のオーディオ信号132に適用される無制限補間済みシフト値956とに基づいて、比較値915を生成するステップを含む。たとえば、シフトリファイナ921(または信号比較器506)は、第1のオーディオ信号130と第2のオーディオ信号132に適用される無制限補間済みシフト値956とに基づいて、
図7を参照して説明したように、比較値915を生成し得る。
【0220】
方法971はまた、979において、比較値916、比較値915、またはそれらの組合せに基づいて、補正済みシフト値540を決定するステップを含む。たとえば、シフトリファイナ921は、
図9Aを参照して説明したように、比較値916、比較値915、またはそれらの組合せに基づいて、補正済みシフト値540を決定し得る。いくつかの実装形態では、シフトリファイナ921は、シフト変動に起因する極大値を回避するために、比較値915と比較値916との比較に基づいて、補正済みシフト値540を決定し得る。
【0221】
いくつかの場合には、第1のオーディオ信号130、第1の再サンプリングされた信号530、第2のオーディオ信号132、第2の再サンプリングされた信号532、またはそれらの組合せの固有のピッチが、シフト推定プロセスに干渉し得る。そのような場合、ピッチに起因する干渉を低減するために、また複数のチャネル間のシフト推定の信頼性を改善するために、ピッチデエンファシスまたはピッチフィルタ処理が実行され得る。いくつかの場合には、シフト推定プロセスに干渉し得る背景雑音が、第1のオーディオ信号130、第1の再サンプリングされた信号530、第2のオーディオ信号132、第2の再サンプリングされた信号532、またはそれらの組合せの中に存在し得る。そのような場合、複数のチャネル間のシフト推定の信頼性を改善するために、雑音抑圧または雑音消去が使用され得る。
【0222】
図10Aを参照すると、システムの説明のための例が示され、全体的に1000と指定されている。システム1000は、
図1のシステム100に対応し得る。たとえば、
図1のシステム100、第1のデバイス104、または両方は、システム1000の1つまたは複数の構成要素を含み得る。
【0223】
図10Aはまた、全体的に1020と指定された例示的な動作方法のフローチャートを含む。方法1020は、シフト変化分析器512、時間的等化器108、エンコーダ114、第1のデバイス104、またはそれらの組合せによって実行され得る。
【0224】
方法1020は、1001において、第1のシフト値962が0に等しいかどうかを判断するステップを含む。たとえば、シフト変化分析器512は、フレーム302に対応する第1のシフト値962が、時間シフトなしを示す第1の値(たとえば、0)を有するかどうかを判断し得る。方法1020は、1001における、第1のシフト値962が0に等しいとの判断に応答して、1010に進むステップを含む。
【0225】
方法1020は、1001における、第1のシフト値962が非0であるとの判断に応答して、1002において、第1のシフト値962が0よりも大きいかどうかを判断するステップを含む。たとえば、シフト変化分析器512は、フレーム302に対応する第1のシフト値962が、第2のオーディオ信号132が第1のオーディオ信号130に対して時間的に遅延していることを示す第1の値(たとえば、正の値)を有するかどうかを判断し得る。
【0226】
方法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に進むステップを含む。
【0227】
方法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に進むステップを含む。
【0228】
方法1020は、1008において、最終シフト値116を0に設定するステップを含む。たとえば、シフト変化分析器512は、最終シフト値116を、時間シフトなしを示す特定の値(たとえば、0)に設定し得る。
【0229】
方法1020は、1010において、第1のシフト値962が補正済みシフト値540に等しいかどうかを判断するステップを含む。たとえば、シフト変化分析器512は、第1のシフト値962および補正済みシフト値540が、第1のオーディオ信号130と第2のオーディオ信号132との間の同じ時間遅延を示すかどうかを判断し得る。
【0230】
方法1020は、1010における、第1のシフト値962が補正済みシフト値540に等しいとの判断に応答して、1012において、最終シフト値116を補正済みシフト値540に設定するステップを含む。たとえば、シフト変化分析器512は、最終シフト値116を補正済みシフト値540に設定し得る。
【0231】
方法1020は、1010における、第1のシフト値962が補正済みシフト値540に等しくないとの判断に応答して、1014において、推定シフト値1072を生成するステップを含む。たとえば、シフト変化分析器512は、
図11を参照してさらに説明するように、補正済みシフト値540を精緻化することによって推定シフト値1072を決定し得る。
【0232】
方法1020は、1016において、最終シフト値116を推定シフト値1072に設定するステップを含む。たとえば、シフト変化分析器512は、最終シフト値116を推定シフト値1072に設定し得る。
【0233】
いくつかの実装形態では、シフト変化分析器512は、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延が切り替わっていないとの判断に応答して、第2の推定シフト値を示すように非因果的シフト値162を設定し得る。たとえば、シフト変化分析器512は、1001における、第1のシフト値962が0に等しいとの判断、1004における、補正済みシフト値540が0以上であるとの判断、または1006における、補正済みシフト値540が0以下であるとの判断に応答して、補正済みシフト値540を示すように非因果的シフト値162を設定し得る。
【0234】
したがって、シフト変化分析器512は、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延が
図3のフレーム302とフレーム304との間で切り替わったとの判断に応答して、時間シフトなしを示すように非因果的シフト値162を設定し得る。非因果的シフト値162が連続フレーム間で方向を(たとえば、正から負または負から正に)切り替えるのを防ぐことで、エンコーダ114におけるダウンミックス信号生成におけるひずみを減らすこと、デコーダにおけるアップミックス合成のための追加の遅延の使用を回避すること、または両方ができる。
【0235】
図10Bを参照すると、システムの説明のための例が示され、全体的に1030と指定されている。システム1030は、
図1のシステム100に対応し得る。たとえば、
図1のシステム100、第1のデバイス104、または両方は、システム1030の1つまたは複数の構成要素を含み得る。
【0236】
図10Bはまた、全体的に1031と指定された例示的な動作方法のフローチャートを含む。方法1031は、シフト変化分析器512、時間的等化器108、エンコーダ114、第1のデバイス104、またはそれらの組合せによって実行され得る。
【0237】
方法1031は、1032において、第1のシフト値962が0よりも大きく、補正済みシフト値540が0未満であるかどうかを判断するステップを含む。たとえば、シフト変化分析器512は、第1のシフト値962が0よりも大きいかどうか、また補正済みシフト値540が0未満であるかどうかを判断し得る。
【0238】
方法1031は、1032における、第1のシフト値962が0よりも大きいとの判断、および補正済みシフト値540が0未満であるとの判断に応答して、1033において、最終シフト値116を0に設定するステップを含む。たとえば、シフト変化分析器512は、第1のシフト値962が0よりも大きいとの判断、および補正済みシフト値540が0未満であるとの判断に応答して、最終シフト値116を、時間シフトなしを示す第1の値(たとえば、0)に設定し得る。
【0239】
方法1031は、1032における、第1のシフト値962が0以下であるとの判断、または補正済みシフト値540が0以上であるとの判断に応答して、1034において、第1のシフト値962が0未満であるかどうか、また補正済みシフト値540が0よりも大きいかどうかを判断するステップを含む。たとえば、シフト変化分析器512は、第1のシフト値962が0以下であるとの判断、または補正済みシフト値540が0以上であるとの判断に応答して、第1のシフト値962が0未満であるかどうか、また補正済みシフト値540が0よりも大きいかどうかを判断し得る。
【0240】
方法1031は、第1のシフト値962が0未満であるとの判断、および補正済みシフト値540が0よりも大きいとの判断に応答して、1033に進むステップを含む。方法1031は、第1のシフト値962が0以上であるとの判断、または補正済みシフト値540が0以下であるとの判断に応答して、1035において、最終シフト値116を補正済みシフト値540に設定するステップを含む。たとえば、シフト変化分析器512は、第1のシフト値962が0以上であるとの判断、または補正済みシフト値540が0以下であるとの判断に応答して、最終シフト値116を補正済みシフト値540に設定し得る。
【0241】
図11を参照すると、システムの説明のための例が示され、全体的に1100と指定されている。システム1100は、
図1のシステム100に対応し得る。たとえば、
図1のシステム100、第1のデバイス104、または両方は、システム1100の1つまたは複数の構成要素を含み得る。
図11はまた、全体的に1120と指定されている動作方法を示すフローチャートを含む。方法1120は、シフト変化分析器512、時間的等化器108、エンコーダ114、第1のデバイス104、またはそれらの組合せによって実行され得る。方法1120は、
図10Aのステップ1014に対応し得る。
【0242】
方法1120は、1104において、第1のシフト値962が補正済みシフト値540よりも大きいかどうかを判断するステップを含む。たとえば、シフト変化分析器512は、第1のシフト値962が補正済みシフト値540よりも大きいかどうかを判断し得る。
【0243】
方法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に進み得る。
【0244】
方法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のオフセットのうちの高い方の値、または両方が、探索範囲を改善し得る。
【0245】
方法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の特定のサブセットとの間の差(または相関)を示し得る。
【0246】
方法1120は、1112において、比較値1140に基づいて推定シフト値1072を決定するステップをさらに含む。たとえば、シフト変化分析器512は、比較値1140が相互相関値に対応するときに、比較値1140のうちの最高比較値を推定シフト値1072として選択し得る。代替的に、シフト変化分析器512は、比較値1140が差値(差異値)に対応するときに、比較値1140のうちの最低比較値を推定シフト値1072として選択し得る。
【0247】
したがって、方法1120は、シフト変化分析器512が、補正済みシフト値540を精緻化することによって、推定シフト値1072を生成することを可能にし得る。たとえば、シフト変化分析器512は、元のサンプルに基づいて比較値1140を決定することができ、最高の相関(または最小の差)を示す比較値1140のうちの比較値に対応する推定シフト値1072を選択することができる。
【0248】
図12を参照すると、システムの説明のための例が示され、全体的に1200と指定されている。システム1200は、
図1のシステム100に対応し得る。たとえば、
図1のシステム100、第1のデバイス104、または両方は、システム1200の1つまたは複数の構成要素を含み得る。
図12はまた、全体的に1220と指定されている動作方法を示すフローチャートを含む。方法1220は、基準信号指定器508、時間的等化器108、エンコーダ114、第1のデバイス104、またはそれらの組合せによって実行され得る。
【0249】
方法1220は、1202において、最終シフト値116が0に等しいかどうかを判断するステップを含む。たとえば、基準信号指定器508は、最終シフト値116が、時間シフトなしを示す特定の値(たとえば、0)を有するかどうかを判断し得る。
【0250】
方法1220は、1202における、最終シフト値116が0に等しいとの判断に応答して、1204において、基準信号インジケータ164を変えないでおくステップを含む。たとえば、基準信号指定器508は、最終シフト値116が、時間シフトなしを示す特定の値(たとえば、0)を有するとの判断に応答して、基準信号インジケータ164を変えないでおくことができる。例示すると、基準信号インジケータ164は、同じオーディオ信号(たとえば、第1のオーディオ信号130または第2のオーディオ信号132)が、フレーム302の場合と同様にフレーム304に関連する基準信号であることを示し得る。
【0251】
方法1220は、1202における、最終シフト値116が非0であるとの判断に応答して、1206において、最終シフト値116が0よりも大きいかどうかを判断するステップを含む。たとえば、基準信号指定器508は、最終シフト値116が、時間シフトを示す特定の値(たとえば、非0値)を有するとの判断に応答して、最終シフト値116が、第2のオーディオ信号132が第1のオーディオ信号130に対して遅延していることを示す第1の値(たとえば、正の値)を有するか、それとも第1のオーディオ信号130が第2のオーディオ信号132に対して遅延していることを示す第2の値(たとえば、負の値)を有するかを判断し得る。
【0252】
方法1220は、最終シフト値116が第1の値(たとえば、正の値)を有するとの判断に応答して、1208において、第1のオーディオ信号130が基準信号であることを示す第1の値(たとえば、0)を有するように基準信号インジケータ164を設定するステップを含む。たとえば、基準信号指定器508は、最終シフト値116が第1の値(たとえば、正の値)を有するとの判断に応答して、第1のオーディオ信号130が基準信号であることを示す第1の値(たとえば、0)に基準信号インジケータ164を設定し得る。基準信号指定器508は、最終シフト値116が第1の値(たとえば、正の値)を有するとの判断に応答して、第2のオーディオ信号132がターゲット信号に対応すると判断し得る。
【0253】
方法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がターゲット信号に対応すると判断し得る。
【0254】
基準信号指定器508は、基準信号インジケータ164を利得パラメータ生成器514に提供し得る。利得パラメータ生成器514は、
図5を参照して説明したように、基準信号に基づいてターゲット信号の利得パラメータ(たとえば、利得パラメータ160)を決定し得る。
【0255】
ターゲット信号が基準信号に対して時間的に遅延することがある。基準信号インジケータ164は、第1のオーディオ信号130が基準信号に対応するか、それとも第2のオーディオ信号132が基準信号に対応するかを示し得る。基準信号インジケータ164は、利得パラメータ160が第1のオーディオ信号130に対応するか、それとも第2のオーディオ信号132に対応するかを示し得る。
【0256】
図13を参照すると、特定の動作方法を示すフローチャートが示され、全体的に1300と指定されている。方法1300は、基準信号指定器508、時間的等化器108、エンコーダ114、第1のデバイス104、またはそれらの組合せによって実行され得る。
【0257】
方法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を実行し得る。
【0258】
したがって、方法1300は、第1のオーディオ信号130がフレーム302に関する基準信号に対応するかどうかとは無関係に、最終シフト値116が時間シフトなしを示すときに、基準信号インジケータ164を、第1のオーディオ信号130が基準信号に対応することを示す特定の値(たとえば、0)に設定することを可能にし得る。
【0259】
図14を参照すると、システムの説明のための例が示され、全体的に1400と指定されている。システム1400は、
図5の信号比較器506、
図5の補間器510、
図5のシフトリファイナ511、および
図5のシフト変化分析器512を含む。
【0260】
信号比較器506は、比較値534(たとえば、差値、差異値、類似性値、コヒーレンス値、または相互相関値)、暫定的シフト値536、または両方を生成し得る。たとえば、信号比較器506は、第1の再サンプリングされた信号530と第2の再サンプリングされた信号532に適用される複数のシフト値1450とに基づいて、比較値534を生成し得る。信号比較器506は、比較値534に基づいて暫定的シフト値536を決定し得る。信号比較器506は、再サンプリングされた信号530、532の前フレームに関する比較値を取り出すように構成された平滑器1410を含み、前フレームに関する比較値を使用して、長期平滑化演算に基づいて比較値534を修正することができる。たとえば、比較値534は、現在のフレーム(N)に関する長期比較値
【0264】
によって表され得、この場合、α∈(0,1,0)である。したがって、長期比較値
【0266】
は、フレームNにおける瞬間的比較値CompVal
N(k)および1つまたは複数の前フレームに関する長期比較値
【0268】
の加重混合に基づき得る。αの値が増大するにつれて、長期比較値の平滑化の量も増大する。信号比較器506は、比較値534、暫定的シフト値536、または両方を補間器510に提供し得る。
【0269】
補間器510は、補間済みシフト値538を生成するために暫定的シフト値536を拡大適用し得る。たとえば、補間器510は、比較値534を補間することによって、暫定的シフト値536に最も近いシフト値に対応する補間済み比較値を生成し得る。補間器510は、補間済み比較値および比較値534に基づいて、補間済みシフト値538を決定し得る。比較値534は、シフト値のより粗い細分性に基づき得る。補間済み比較値は、再サンプリングされた暫定的シフト値536に最も近いシフト値のより細かい細分性に基づき得る。シフト値のセットのより粗い細分性(たとえば、第1のサブセット)に基づいて比較値534を決定する場合は、シフト値のセットのより細かい細分性(たとえば、すべて)に基づいて比較値534を決定する場合よりも少ないリソース(たとえば、時間、動作、または両方)を使用し得る。シフト値の第2のサブセットに対応する補間済み比較値を決定する場合は、シフト値のセットの各シフト値に対応する比較値を決定することなく、暫定的シフト値536に最も近いシフト値のより小さいセットのより細かい細分性に基づいて暫定的シフト値536を拡大適用することができる。したがって、シフト値の第1のサブセットに基づいて暫定的シフト値536を決定し、補間済み比較値に基づいて補間済みシフト値538を決定する場合は、リソースの使用と推定シフト値の精緻化とのバランスをとることができる。補間器510は、補間済みシフト値538をシフトリファイナ511に提供し得る。
【0270】
補間器510は、前フレームに関する補間済みシフト値を取り出すように構成された平滑器1420を含み、前フレームに関する補間済みシフト値を使用して、長期平滑化演算に基づいて補間済みシフト値538を修正することができる。たとえば、補間済みシフト値538は、現在のフレーム(N)に関する長期補間済みシフト値
【0274】
によって表され得、この場合、α∈(0,1,0)である。したがって、長期補間済みシフト値
【0276】
は、フレームNにおける瞬間的補間済みシフト値InterVal
N(k)および1つまたは複数の前フレームに関する長期補間済みシフト値
【0278】
の加重混合に基づき得る。αの値が増大するにつれて、長期比較値の平滑化の量も増大する。
【0279】
シフトリファイナ511は、補間済みシフト値538を精緻化することによって補正済みシフト値540を生成し得る。たとえば、シフトリファイナ511は、第1のオーディオ信号130と第2のオーディオ信号132との間のシフトの変化がシフト変化しきい値よりも大きいことを補間済みシフト値538が示すかどうかを判断し得る。シフトの変化は、補間済みシフト値538と
図3のフレーム302に関連する第1のシフト値との間の差によって示され得る。シフトリファイナ511は、差がしきい値以下であるとの判断に応答して、補正済みシフト値540を補間済みシフト値538に設定し得る。代替的に、シフトリファイナ511は、差がしきい値よりも大きいとの判断に応答して、シフト変化しきい値以下である差に対応する複数のシフト値を決定し得る。シフトリファイナ511は、第1のオーディオ信号130と第2のオーディオ信号132に適用される複数のシフト値とに基づいて、比較値を決定し得る。シフトリファイナ511は、比較値に基づいて補正済みシフト値540を決定し得る。たとえば、シフトリファイナ511は、比較値および補間済みシフト値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に提供し得る。
【0280】
シフトリファイナ511は、前フレームに関する補正済みシフト値を取り出すように構成された平滑器1430を含み、前フレームに関する補正済みシフト値を使用して、長期平滑化演算に基づいて補正済みシフト値540を修正することができる。たとえば、補正済みシフト値540は、現在のフレーム(N)に関する長期補正済みシフト値
【0284】
によって表され得、この場合、α∈(0,1,0)である。したがって、長期補正済みシフト値
【0286】
は、フレームNにおける瞬間的補正済みシフト値InterVal
N(k)および1つまたは複数の前フレームに関する長期補正済みシフト値
【0288】
の加重混合に基づき得る。αの値が増大するにつれて、長期比較値の平滑化の量も増大する。
【0289】
シフト変化分析器512は、補正済みシフト値540が第1のオーディオ信号130と第2のオーディオ信号132との間のタイミングの切替えまたは反転を示すかどうかを判断し得る。シフト変化分析器512は、補正済みシフト値540およびフレーム302に関連する第1のシフト値に基づいて、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延が符号を切り替えたかどうかを判断し得る。シフト変化分析器512は、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延が符号を切り替えたとの判断に応答して、最終シフト値116を、時間シフトなしを示す値(たとえば、0)に設定し得る。代替的に、シフト変化分析器512は、第1のオーディオ信号130と第2のオーディオ信号132との間の遅延が符号を切り替えていないとの判断に応答して、最終シフト値116を補正済みシフト値540に設定し得る。
【0290】
シフト変化分析器512は、補正済みシフト値540を精緻化することによって推定シフト値を生成し得る。シフト変化分析器512は、最終シフト値116を推定シフト値に設定し得る。時間シフトなしを示すように最終シフト値116を設定することは、第1のオーディオ信号130および第2のオーディオ信号132を第1のオーディオ信号130の連続(または隣接)フレームに関して反対方向で時間シフトするのを控えることによって、デコーダにおけるひずみを低減し得る。シフト変化分析器512は、最終シフト値116を絶対シフト生成器513に提供し得る。絶対シフト生成器513は、最終シフト値116に絶対関数を適用することによって、非因果的シフト値162を生成し得る。
【0291】
上記で説明した平滑化技法は、有声フレーム、無声フレーム、および遷移フレームの間のシフト推定値を実質的に正規化し得る。正規化シフト推定値により、フレーム境界においてサンプル繰返しおよびアーティファクトスキップが低減され得る。さらに、正規化シフト推定値により、サイドチャネルエネルギーが低減されることがあり、結果的にコーディング効率が改善されることがある。
【0292】
図14に関して説明したように、平滑化は、信号比較器506、補間器510、シフトリファイナ511、またはそれらの組合せにおいて実行され得る。補間済みシフトが入力サンプリングレート(FSin)で暫定的シフトと常に異なる場合、比較値534の平滑化に加えて、または比較値534の平滑化の代わりに、補間済みシフト値538の平滑化が実行され得る。補間済みシフト値538の推定中、補間プロセスは、信号比較器506において生成された平滑化長期比較値に対して、信号比較器506において生成された非平滑化比較値に対して、または補間済み平滑化比較値および補間済み非平滑化比較値の加重混合に対して実行され得る。平滑化が補間器510において実行される場合、補間は、現在フレームにおいて推定される暫定的シフトに加えて、複数のサンプルの近くで実行されるように拡大適用され得る。たとえば、補間は、前フレームのシフト(たとえば、以前の暫定的シフト、以前の補間済みシフト、以前の補正済みシフト、または以前の最終シフトのうちの1つまたは複数)の近くで、かつ現在フレームの暫定的シフトの近くで実行され得る。結果として、補間済みシフト値に関して追加のサンプルに対して平滑化が実行され得、補間済みシフト推定値が改善され得る。
【0293】
図15を参照すると、有声フレーム、遷移フレーム、および無声フレームに関する比較値を示すグラフが示されている。
図15によれば、グラフ1502は、説明した長期平滑化技法を使用せずに処理された有声フレームに関する比較値(たとえば、相互相関値)を示し、グラフ1504は、説明した長期平滑化技法を使用せずに処理された遷移フレームに関する比較値を示し、グラフ1506は、説明した長期平滑化技法を使用せずに処理された無声フレームに関する比較値を示す。
【0294】
各グラフ1502、1504、1506に表される相互相関は、かなり異なり得る。たとえば、グラフ1502は、
図1の第1のマイクロフォン146によってキャプチャされた有声フレームと
図1の第2のマイクロフォン148によってキャプチャされた対応する有声フレームとの間のピーク相互相関が、約17サンプルシフトにおいて発生することを示す。一方、グラフ1504は、第1のマイクロフォン146によってキャプチャされた遷移フレームと第2のマイクロフォン148によってキャプチャされた対応する遷移フレームとの間のピーク相互相関が、約4サンプルシフトにおいて発生することを示す。その上、グラフ1506は、第1のマイクロフォン146によってキャプチャされた無声フレームと第2のマイクロフォン148によってキャプチャされた対応する無声フレームとの間のピーク相互相関が、約-3サンプルシフトにおいて発生することを示す。したがって、シフト推定値は、比較的高い雑音レベルに起因して、遷移フレームおよび無声フレームに関して不正確であり得る。
【0295】
図15によれば、グラフ1512は、説明した長期平滑化技法を使用して処理された有声フレームに関する比較値(たとえば、相互相関値)を示し、グラフ1514は、説明した長期平滑化技法を使用して処理された遷移フレームに関する比較値を示し、グラフ1516は、説明した長期平滑化技法を使用して処理された無声フレームに関する比較値を示す。各グラフ1512、1514、1516における相互相関値は、かなり類似し得る。たとえば、各グラフ1512、1514、1516は、
図1の第1のマイクロフォン146によってキャプチャされたフレームと
図1の第2のマイクロフォン148によってキャプチャされた対応するフレームとの間のピーク相互相関が、約17サンプルシフトにおいて発生することを示す。したがって、(グラフ1514によって表される)遷移フレームおよび(グラフ1516によって表される)無声フレームに関するシフト推定値は、雑音にもかかわらず、有声フレームのシフト推定値に対して比較的正確な(または類似した)ものであり得る。
【0296】
図15に関して説明した比較値長期平滑化プロセスは、各フレームにおいて同じシフト範囲で比較値が推定されるときに適用され得る。平滑化論理(たとえば、平滑器1410、1420、1430)は、生成された比較値に基づくチャネル間のシフトの推定の前に実行され得る。たとえば、平滑化は、暫定的シフト、補間済みシフト、または補正済みシフトのいずれかの推定の前に実行され得る。無音部分中(またはシフト推定のドリフトを引き起こし得る背景雑音中)の比較値の適応を低減するために、比較値は、より高い時定数(たとえば、α=0.995)に基づいて平滑化され得、あるいは平滑化は、α=0.9に基づき得る。比較値を調整するかどうかの決定は、背景雑音エネルギーまたは長期エネルギーがしきい値を下回るかどうかに基づき得る。
【0297】
図16を参照すると、特定の動作方法を示すフローチャートが示され、全体的に1600と指定されている。方法1600は、
図1の時間的等化器108、エンコーダ114、第1のデバイス104、またはそれらの組合せによって実行され得る。
【0298】
方法1600は、1602において、第1のマイクロフォンにおいて第1のオーディオ信号をキャプチャするステップを含む。第1のオーディオ信号は第1のフレームを含み得る。たとえば、
図1を参照すると、第1のマイクロフォン146は、第1のオーディオ信号130をキャプチャし得る。第1のオーディオ信号130は、第1のフレームを含み得る。
【0299】
1604において、第2のマイクロフォンにおいて第2のオーディオ信号がキャプチャされ得る。第2のオーディオ信号は第2のフレームを含むことができ、第2のフレームは第1のフレームと実質的に同様のコンテンツを有し得る。たとえば、
図1を参照すると、第2のマイクロフォン148は、第2のオーディオ信号132をキャプチャし得る。第2のオーディオ信号132は第2のフレームを含むことができ、第2のフレームは第1のフレームと実質的に同様のコンテンツを有し得る。第1のフレームおよび第2のフレームは、有声フレーム、遷移フレーム、または無声フレームのうちの1つであり得る。
【0300】
1606において、第1のフレームと第2のフレームとの間の遅延が推定され得る。たとえば、
図1を参照すると、時間的等化器108は、第1のフレームと第2のフレームとの間の相互相関を判断し得る。1608において、遅延に基づいて、かつ履歴遅延データに基づいて、第1のオーディオ信号と第2のオーディオ信号との間の時間的オフセットが推定され得る。たとえば、
図1を参照すると、時間的等化器108は、マイクロフォン146、148においてキャプチャされたオーディオの間の時間的オフセットを推定し得る。時間的オフセットは、第1のオーディオ信号130の第1のフレームと第2のオーディオ信号132の第2のフレームとの間の遅延に基づいて推定されてよく、この場合、第2のフレームが第1のフレームと実質的に同様のコンテンツを含む。たとえば、時間的等化器108は、第1のフレームと第2のフレームとの間の遅延を推定するために、相互相関関数を使用し得る。相互相関関数は、一方のフレームの他方に対するラグの関数として、2つのフレームの類似性を測定するために使用され得る。相互相関関数に基づいて、時間的等化器108は、第1のフレームと第2のフレームとの間の遅延(たとえば、ラグ)を判断し得る。時間的等化器108は、遅延および履歴遅延データに基づいて、第1のオーディオ信号130と第2のオーディオ信号132との間の時間的オフセットを推定し得る。
【0301】
履歴データは、第1のマイクロフォン146からキャプチャされたフレームと第2のマイクロフォン148からキャプチャされた対応するフレームとの間の遅延を含み得る。たとえば、時間的等化器108は、第1のオーディオ信号130に関連する前フレームと第2のオーディオ信号132に関連する対応するフレームとの間の相互相関(たとえば、ラグ)を判断し得る。各ラグは、「比較値」によって表され得る。すなわち、比較値は、第1のオーディオ信号130のフレームと第2のオーディオ信号132の対応するフレームとの間の時間シフト(k)を示し得る。一実装形態によれば、前フレームに関する比較値は、メモリ153に記憶され得る。時間的等化器108の平滑器192は、フレームの長期セットで比較値を平滑化する(または平均する)ことができ、第1のオーディオ信号130と第2のオーディオ信号132との間の時間的オフセット(たとえば、「シフト」)を推定するために、長期平滑化比較値を使用することができる。
【0302】
したがって、履歴遅延データは、第1のオーディオ信号130および第2のオーディオ信号132に関連する平滑化比較値に基づいて生成され得る。たとえば、方法1600は、履歴遅延データを生成するために、第1のオーディオ信号130および第2のオーディオ信号132に関連する比較値を平滑化するステップを含み得る。平滑化比較値は、第1のフレームよりも時間的に早く生成された第1のオーディオ信号130のフレームに基づき、かつ第2のフレームよりも時間的に早く生成された第2のオーディオ信号132のフレームに基づき得る。一実装形態によれば、方法1600は、時間的オフセットによって第2のフレームを時間的にシフトするステップを含み得る。
【0303】
例示すると、CompVal
N(k)が、フレームNに関するkのシフトにおける比較値を表す場合、フレームNは、k=T_MIN(最小シフト)からk=T_MAX(最大シフト)までの比較値を有し得る。平滑化は、長期比較値
【0307】
によって表されるように実行され得る。上記の式における関数fは、シフト(k)における過去の比較値のすべて(またはサブセット)の関数であり得る。代替表現は、
【0309】
であり得る。関数fまたはgはそれぞれ、単純な有限インパルス応答(FIR)フィルタまたは無限インパルス応答(IIR)フィルタであり得る。たとえば、関数gは、長期比較値
【0313】
によって表され得るような単一タップIIRフィルタであり得、この場合、α∈(0,1,0)である。したがって、長期比較値
【0315】
は、フレームNにおける瞬間的比較値CompVal
N(k)および1つまたは複数の前フレームに関する長期比較値
【0317】
の加重混合に基づき得る。αの値が増大するにつれて、長期比較値の平滑化の量も増大する。
【0318】
一実装形態によれば、方法1600は、
図17〜
図18に関してより詳細に説明するように、第1のフレームと第2のフレームとの間の遅延を推定するために使用される比較値の範囲を調整するステップを含み得る。遅延は、最も高い相互相関を有する比較値の範囲内の比較値に関連付けられ得る。範囲を調整するステップは、範囲の境界における比較値が単調に増大しているかどうかを判断するステップと、境界における比較値が単調に増大しているとの判断に応答して、境界を拡大するステップとを含み得る。境界は、左境界または右境界を含み得る。
【0319】
図16の方法1600は、有声フレーム、無声フレーム、および遷移フレームの間のシフト推定値を実質的に正規化し得る。正規化シフト推定値により、フレーム境界においてサンプル繰返しおよびアーティファクトスキップが低減され得る。さらに、正規化シフト推定値により、サイドチャネルエネルギーが低減されることがあり、結果的にコーディング効率が改善されることがある。
【0320】
図17を参照すると、シフト推定に使用される比較値の探索範囲を選択的に拡大するためのプロセス
図1700が示されている。たとえば、プロセス
図1700は、現在フレームに関して生成された比較値、過去フレームに関して生成された比較値、またはそれらの組合せに基づいて、比較値の探索範囲を拡大するために使用され得る。
【0321】
プロセス
図1700によれば、検出器が、右境界または左境界の近傍における比較値が増大しているか、または減少しているかを判断するように構成され得る。将来の比較値生成のための探索範囲境界は、判断に基づいてより多くのシフト値に対応するために外向きにプッシュされ得る。たとえば、探索範囲境界は、後続フレームにおける比較値または同じフレームにおける比較値に関して、比較値が再生されたときに、外向きにプッシュされ得る。検出器は、現在のフレームに関して生成された比較値に基づいて、または1つもしくは複数の前フレームに関して生成された比較値に基づいて、探索範囲拡張を開始し得る。
【0322】
1702において、検出器は、右境界における比較値が単調に増大しているかどうかを判断し得る。非限定的な例として、探索範囲は、-20から20まで(たとえば、負の方向での20サンプルシフトから正の方向での20サンプルシフトまで)拡張し得る。本明細書で使用される場合、負の方向でのシフトは、基準信号である
図1の第1のオーディオ信号130などの第1の信号、およびターゲット信号である
図1の第2のオーディオ信号132などの第2の信号に対応する。正の方向でのシフトは、ターゲット信号である第1の信号および基準信号である第2の信号に対応する。
【0323】
1702において、右境界における比較値が単調に増大している場合、検出器は、1704において、探索範囲を増大させるために、右境界を外向きに調整し得る。例示すると、サンプルシフト19における比較値が特定の値を有し、サンプルシフト20における比較値がより高い値を有する場合、検出器は、正の方向で探索範囲を拡張し得る。非限定的な例として、検出器は、-20から25まで探索範囲を拡張し得る。検出器は、1つのサンプル、2つのサンプル、3つのサンプルなどの増分で探索範囲を拡張し得る。一実装形態によれば、1702における判断は、右境界における見せかけの増大に基づいて探索範囲を拡大する可能性を低下させるために、右境界に向かって複数のサンプルにおいて比較値を検出することによって実行され得る。
【0324】
1702において、右境界における比較値が単調に増大していない場合、検出器は、1706において、左境界における比較値が単調に増大しているかどうかを判断し得る。1706において、左境界における比較値が単調に増大している場合、検出器は、1708において、探索範囲を増大させるために、左境界を外向きに調整し得る。例示すると、サンプルシフト-19における比較値が特定の値を有し、サンプルシフト-20における比較値がより高い値を有する場合、検出器は、負の方向で探索範囲を拡張し得る。非限定的な例として、検出器は、-25から20まで探索範囲を拡張し得る。検出器は、1つのサンプル、2つのサンプル、3つのサンプルなどの増分で探索範囲を拡張し得る。一実装形態によれば、1702における判断は、左境界における見せかけの増大に基づいて探索範囲を拡大する可能性を低下させるために、左境界に向かって複数のサンプルにおいて比較値を検出することによって実行され得る。1706において、左境界における比較値が単調に増大していない場合、検出器は、1710において、探索範囲を変えないでおくことができる。
【0325】
したがって、
図17のプロセス
図1700は、将来のフレームのための探索範囲修正を開始し得る。たとえば、過去の3つの連続するフレームについて、しきい値の前の最後の10個のシフト値にわたって比較値が単調に増大している(たとえば、サンプルシフト10からサンプルシフト20まで増大している、またはサンプルシフト-10からサンプルシフト-20まで増大している)ことが検出された場合、探索範囲は、特定のサンプル数だけ外向きに増大し得る。探索範囲のこの外向きの増大は、境界における比較値が単調に増大しなくなるまで、将来のフレームのために連続的に実施され得る。前フレームに関する比較値に基づいて探索範囲を増大させることで、「真のシフト」が探索範囲の境界の非常に近くに来るが探索範囲のすぐ外側に来る可能性が低下し得る。この可能性の低下により、サイドチャネルエネルギー最小化およびチャネルコーディングが改善され得る。
【0326】
図18を参照すると、シフト推定に使用される比較値の探索範囲の選択的拡大を示すグラフが示されている。グラフは、Table 1(表1)におけるデータと連動し得る。
【0328】
Table 1(表1)によれば、検出器は、特定の境界が3つ以上の連続フレームにおいて増大する場合に、探索範囲を拡大し得る。第1のグラフ1802は、フレームi-2に関する比較値を示す。第1のグラフ1802によれば、左境界が単調に増大しておらず、右境界が1つの連続フレームに関して単調に増大している。結果として、探索範囲は次のフレーム(たとえば、フレームi-1)に関して変わらないままであり、境界は-20から20まで及び得る。第2のグラフ1804は、フレームi-1に関する比較値を示す。第2のグラフ1804によれば、左境界が単調に増大しておらず、右境界が2つの連続フレームに関して単調に増大している。結果として、探索範囲は次のフレーム(たとえば、フレームi)に関して変わらないままであり、境界は-20から20まで及び得る。
【0329】
第3のグラフ1806は、フレームiに関する比較値を示す。第3のグラフ1806によれば、左境界が単調に増大しておらず、右境界が3つの連続フレームに関して単調に増大している。右境界が3つ以上の連続フレームに関して単調に増大しているので、次のフレーム(たとえば、フレームi+1)の探索範囲は拡大され得、次のフレームに関する境界は-23から23まで及び得る。第4のグラフ1808は、フレームi+1に関する比較値を示す。第4のグラフ1808によれば、左境界が単調に増大しておらず、右境界が4つの連続フレームに関して単調に増大している。右境界が3つ以上の連続フレームに関して単調に増大しているので、次のフレーム(たとえば、フレームi+2)の探索範囲は拡大され得、次のフレームに関する境界は-26から26まで及び得る。第5のグラフ1810は、フレームi+2に関する比較値を示す。第5のグラフ1810によれば、左境界が単調に増大しておらず、右境界が5つの連続フレームに関して単調に増大している。右境界が3つ以上の連続フレームに関して単調に増大しているので、次のフレーム(たとえば、フレームi+3)の探索範囲は拡大され得、次のフレームに関する境界は-29から29まで及び得る。
【0330】
第6のグラフ1812は、フレームi+3に関する比較値を示す。第6のグラフ1812によれば、左境界が単調に増大しておらず、右境界が単調に増大していない。結果として、探索範囲は次のフレーム(たとえば、フレームi+4)に関して変わらないままであり、境界は-29から29まで及び得る。第7のグラフ1814は、フレームi+4に関する比較値を示す。第7のグラフ1814によれば、左境界が単調に増大しておらず、右境界が1つの連続フレームに関して単調に増大している。結果として、探索範囲は次のフレームに関して変わらないままであり、境界は-29から29まで及び得る。
【0331】
図18によれば、左境界は右境界とともに拡大される。代替実装形態では、左境界は、フレームごとに比較値が推定される一定数のシフト値を維持するように、右境界の外向きのプッシュを補償するために、内向きにプッシュされ得る。別の実装形態では、右境界が外向きに拡大されるべきであることを検出器が示すときに、左境界は一定のままであり得る。
【0332】
一実装形態によれば、特定の境界が外向きに拡大されるべきであることを検出器が示すときに、特定の境界が外向きに拡大されるサンプルの量は、比較値に基づいて決定され得る。たとえば、比較値に基づいて右境界が外向きに拡大されるべきであると検出器が判断したとき、より広いシフト探索範囲で比較値の新しいセットが生成され得、検出器は、新しく生成された比較値および既存の比較値を使用して、最終探索範囲を決定し得る。例示すると、フレームi+1の場合、-30から30まで及ぶより広いシフト範囲での比較値のセットが生成され得る。最終探索範囲は、より広い探索範囲において生成された比較値に基づいて限定され得る。
【0333】
図18における例は、右境界が外向きに拡張され得ることを示すが、左境界が拡張されるべきであると検出器が判断した場合に、左境界を外向きに拡張するために同様の類似する機能が実行されてよい。いくつかの実装形態によれば、探索範囲が無限に増大または減少するのを防ぐために、探索範囲に対する絶対的限定が利用され得る。非限定的な例として、探索範囲の絶対値は、8.75ミリ秒を超えて増大することを許容されないことがある(たとえば、コーデックのルックアヘッド)。
【0334】
図19を参照すると、システムの特定の説明のための例が開示され、全体的に1900と指定されている。システム1900は、ネットワーク120を介して第2のデバイス106に通信可能に結合された第1のデバイス104を含む。
【0335】
第1のデバイス104は、
図1に関して説明したのと同様の構成要素を含んでおり、実質的に同様に動作し得る。たとえば、第1のデバイス104は、エンコーダ114、メモリ153、入力インターフェース112、送信機110、第1のマイクロフォン146、および第2のマイクロフォン148を含む。最終シフト値116に加えて、メモリ153は追加情報を含み得る。たとえば、メモリ153は、
図5の補正済みシフト値540、第1のしきい値1902、第2のしきい値1904、第1のHBコーディングモード1912、第1のLBコーディングモード1913、第2のHBコーディングモード1914、第2のLBコーディングモード1915、第1の数のビット1916、および第2の数のビット1918を含み得る。
図1に示す時間的等化器108に加えて、エンコーダ114は、ビットアロケータ1908およびコーディングモードセレクタ1910を含み得る。
【0336】
エンコーダ114(または第1のデバイス104における別のプロセッサ)は、
図5に関して説明した技法に従って最終シフト値116および補正済みシフト値540を決定し得る。以下で説明するように、補正済みシフト値540は「シフト値」と呼ばれることもあり、最終シフト値116は「第2のシフト値」と呼ばれることもある。補正済みシフト値は、第2のマイクロフォン148によってキャプチャされた第2のオーディオ信号132に対する第1のマイクロフォン146によってキャプチャされた第1のオーディオ信号130のシフト(たとえば、時間シフト)を示し得る。
図5に関して説明したように、最終シフト値116は補正済みシフト値540に基づき得る。
【0337】
ビットアロケータ1908は、最終シフト値116および補正済みシフト値540に基づいてビット割振りを決定するように構成され得る。たとえば、ビットアロケータ1908は、最終シフト値116と補正済みシフト値540との間の差異を決定し得る。差異を決定した後、ビットアロケータ1908は差異を第1のしきい値1902と比較し得る。以下で説明するように、差異が第1のしきい値1902を満たす場合、ミッド信号に割り振られるビットの数およびサイド信号に割り振られるビットの数が符号化演算中に調整され得る。
【0338】
例示すると、エンコーダ114は、ビット割振りに基づいて少なくとも1つの符号化された信号(たとえば、符号化された信号102)を生成するように構成され得る。符号化された信号102は、第1の符号化された信号および第2の符号化された信号を含み得る。一実装形態によれば、第1の符号化された信号はミッド信号に対応することができ、第2の符号化された信号はサイド信号に対応することができる。エンコーダ114は、第1のオーディオ信号130と第2のオーディオ信号132との和に基づいてミッド信号(たとえば、第1の符号化された信号)を生成し得る。エンコーダ114は、第1のオーディオ信号130と第2のオーディオ信号132との間の差に基づいてサイド信号を生成し得る。一実装形態によれば、第1の符号化された信号および第2の符号化された信号はローバンド信号を含み得る。たとえば、第1の符号化された信号はローバンドミッド信号を含むことができ、第2の符号化された信号はローバンドサイド信号を含むことができる。第1の符号化された信号および第2の符号化された信号はハイバンド信号を含み得る。たとえば、第1の符号化された信号はハイバンドミッド信号を含むことができ、第2の符号化された信号はハイバンドサイド信号を含むことができる。
【0339】
最終シフト値116(たとえば、符号化された信号102を符号化するために使用されたシフト量)が補正済みシフト値540(たとえば、サイド信号エネルギーを低減するために計算されたシフト量)とは異なる場合、最終シフト値116および補正済みシフト値540が同様であるシナリオと比較して、サイド信号コーディングに追加ビットが割り振られ得る。サイド信号コーディングに追加ビットを割り振った後、利用可能なビットの残りがミッド信号コーディングおよびサイドパラメータに割り振られ得る。同様の最終シフト値116および補正済みシフト値540を有することで、後続フレームにおける符号反転の可能性が著しく低下し、オーディオ信号130、132の間のシフトの大幅な増大の発生が著しく減ることがあり、かつ/またはフレームごとにターゲット信号が時間的にゆっくりとシフトされることがある。たとえば、サイドチャネルが完全無相関化されないので、またシフトを大幅に変えるとアーティファクトが生じることがあるので、シフトはゆっくりと進む(たとえば、変化する)ことがある。さらに、シフトがフレームごとに特定の量よりも大きく変化し、最終シフト変動が限定された場合、サイドフレームエネルギーの増加が発生し得る。したがって、サイドフレームエネルギーの増加を考慮して、サイド信号コーディングに追加ビットが割り振られ得る。
【0340】
例示すると、ビットアロケータ1908は、第1の数のビット1916を第1の符号化された信号(たとえば、ミッド信号)に割り振ることができ、第2の数のビット1918を第2の符号化された信号(たとえば、サイド信号)に割り振ることができる。ビットアロケータ1908は、最終シフト値116と補正済みシフト値540との間の差異(または差)を決定し得る。差異を決定した後、ビットアロケータ1908は差異を第1のしきい値1902と比較し得る。補正済みシフト値540と最終シフト値116との間の差異が第1のしきい値1902を満たすことに応答して、ビットアロケータ1908は、第1の数のビット1916を減らし、第2の数のビット1918を増やすことができる。たとえば、ビットアロケータ1908は、ミッド信号に割り振られるビットの数を減らすことができ、サイド信号に割り振られるビットの数を増やすことができる。一実装形態によれば、第1のしきい値1902は、最終シフト値116および補正済みシフト値540が(実質的に)同様ではない場合にサイド信号に追加ビットが割り振られるような、比較的小さい値(たとえば、0または1)に等しくなり得る。
【0341】
上記で説明したように、エンコーダ114は、ビット割振りに基づいて符号化された信号102を生成し得る。さらに、符号化された信号102はコーディングモードに基づくことがあり、コーディングモードは補正済みシフト値540(たとえば、シフト値)および最終シフト値116(たとえば、第2のシフト値)に基づくことがある。たとえば、エンコーダ114は、補正済みシフト値540および最終シフト値116に基づいてコーディングモードを決定するように構成され得る。上記で説明したように、エンコーダ114は、補正済みシフト値540と最終シフト値116との間の差を決定し得る。
【0342】
差がしきい値を満たすことに応答して、エンコーダ114は、第1のコーディングモードに基づいて第1の符号化された信号(たとえば、ミッド信号)を生成することができ、第2のコーディングモードに基づいて第2の符号化された信号(たとえば、サイド信号)を生成することができる。コーディングモードの例については、
図21〜
図22を参照してさらに説明する。例示すると、一実装形態によれば、第1の符号化された信号はローバンドミッド信号を含み、第2の符号化された信号はローバンドサイド信号を含み、第1のコーディングモードおよび第2のコーディングモードは代数符号励振線形予測(ACELP:algebraic code-excited linear prediction)コーディングモードを含む。別の実装形態によれば、第1の符号化された信号はハイバンドミッド信号を含み、第2の符号化された信号はハイバンドサイド信号を含み、第1のコーディングモードおよび第2のコーディングモードは帯域幅拡張(BWE)コーディングモードを含む。
【0343】
一実装形態によれば、補正済みシフト値540と最終シフト値116との間の差がしきい値を満たさないことに応答して、エンコーダ114は、ACELPコーディングモードに基づいて符号化されたローバンドミッド信号(たとえば、第1の符号化された信号)を生成することができ、予測ACELPコーディングモードに基づいて符号化されたローバンドサイド信号(たとえば、第2の符号化された信号)を生成することができる。このシナリオにおいて、符号化された信号102は、符号化されたローバンドミッド信号と符号化されたローバンドサイド信号に対応する1つまたは複数のパラメータとを含み得る。
【0344】
特定の実装形態によれば、エンコーダ114は、第1のシフト値962(たとえば、フレーム302の最終シフト)に対する第2のシフト値(たとえば、フレーム304の補正済みシフト値540または最終シフト値116)の差異が特定のしきい値を上回ると少なくとも判断したことに基づいて、シフト変動追跡フラグを設定し得る。エンコーダ114は、シフト変動追跡フラグ、利得パラメータ160(たとえば、推定ターゲット利得)、または両方に基づいて、エネルギー比値またはダウンミックス係数(たとえば、(式2c〜2dにあるような)DMXFAC)を推定し得る。エンコーダ114は、以下の擬似コードで示されるように、シフト変動によって制御されるダウンミックス係数(DMXFAC)に基づいて、フレーム304のためのビット割振りを決定し得る。
擬似コード: シフト変動追跡フラグを生成する
Shift_variation_tracking flag = 0;
if( speech_frame
&& ( abs(prevFrameShiftValue - currFrameShiftValue) > THR ) )
{
Shift_variation_tracking flag = 1;
}
擬似コード: シフト変動、ターゲット利得に基づいてダウンミックス係数を調整する。
if( (currentFrameTargetGain > 1.2 || longTermTargetGain > 1.0) && downmixFactor < 0.4f )
{
/*ダウンミックス係数をさほど保守的ではない値に設定する*/
downmixFactor = 0.4f;
}
else if( (currentFrameTargetGain < 0.8 || longTermTargetGain < 1.0) && downmixFactor > 0.6f )
{
/*ダウンミックス係数をさほど保守的ではない値に設定する*/
downmixFactor = 0.6f;
}
if( shift_variation_tracking flag == 1 )
{
if(currentFrameTargetGain > 1.0f)
{
downmixFactor = max(downmixFactor, 0.6f);
}
else if(currentFrameTargetGain < 1.0f)
{
downmixFactor = min(downmixFactor, 0.4f);
}
}
擬似コード: ダウンミックス係数に基づいてビット割振りを調整する。
sideChannel_bits = functionof(downmixFactor, coding mode);
HighBand_bits = functionof(coder_type, core samplerate, total_bitrate)
midChannel_bits = total_bits - sideChannel_bits - HB_bits;
【0345】
「sideChannel_bits」は第2の数のビット1918に対応し得る。「midChannel_bits」は第1の数のビット1916に対応し得る。特定の実装形態によれば、sideChannel_bitsは、ダウンミックス係数(たとえば、DMXFAC)、コーディングモード(たとえば、ACELP、TCX、INACTIVEなど)、または両方に基づいて推定され得る。ハイバンドビット割振り、HighBand_bitsは、コーダタイプ(ACELP、有声、無声)、コアサンプルレート(12.8kHzまたは16kHzコア)、サイドチャネルコーディング、ミッドチャネルコーディング、およびハイバンドコーディングに利用可能な固定総ビットレート、またはそれらの組合せに基づき得る。サイドチャネルコーディングおよびハイバンドコーディングに割り振った後の残りの数のビットは、ミッドチャネルコーディングのために割り振られ得る。
【0346】
特定の実装形態では、ターゲットチャネル調整のために選択される最終シフト値116は、推奨シフト値または実際の補正済みシフト値(たとえば、補正済みシフト値540)とは別個のものであり得る。状態機械(たとえば、エンコーダ114)は、補正済みシフト値540がしきい値よりも大きく、ターゲットチャネルの大幅なシフトまたは調整につながるとの判断に応答して、最終シフト値116を中間値に設定し得る。たとえば、エンコーダ114は最終シフト値116を、第1のシフト値962(たとえば、前フレームの最終シフト値)と補正済みシフト値540(たとえば、現在フレームの推奨シフト値または補正済みシフト値)との間の中間値に設定し得る。最終シフト値116が補正済みシフト値540とは別個のものであるとき、サイドチャネルは最大限に無相関化されないことがある。最終シフト値116を中間値(すなわち、補正済みシフト値540によって表されるような真のまたは実際のシフト値ではない)に設定することで、より多くのビットをサイドチャネルコーディングに割り振ることになり得る。サイドチャネルビット割振りは、直接的にシフト変動に基づくか、または間接的にシフト変動追跡フラグ、ターゲット利得、ダウンミックス係数DMXFAC、もしくはそれらの組合せに基づき得る。
【0347】
別の実装形態によれば、補正済みシフト値540と最終シフト値116との間の差がしきい値を満たさないことに応答して、エンコーダ114は、BWEコーディングモードに基づいて符号化されたハイバンドミッド信号(たとえば、第1の符号化された信号)を生成することができ、ブラインドBWEコーディングモードに基づいて符号化されたハイバンドサイド信号(たとえば、第2の符号化された信号)を生成することができる。このシナリオにおいて、符号化された信号102は、符号化されたハイバンドミッド信号と符号化されたハイバンドサイド信号に対応する1つまたは複数のパラメータとを含み得る。
【0348】
符号化された信号102は、第1のオーディオ信号130の第1のサンプルおよび第2のオーディオ信号132の第2のサンプルに基づき得る。第2のサンプルは、最終シフト値116(たとえば、第2のシフト値)に基づく量だけ、第1のサンプルに対して時間シフトされ得る。送信機110は、ネットワーク120を介して第2のデバイス106に符号化された信号102を送信するように構成され得る。符号化された信号102を受信すると、第2のデバイス106は、第1のラウドスピーカー142において第1の出力信号126を出力するように、また第2のラウドスピーカー144において第2の出力信号128を出力するように、
図1に関して説明したのと実質的に同様の方法で動作し得る。
【0349】
図19のシステム1900は、エンコーダ114が、最終シフト値116が補正済みシフト値540とは異なる場合に、サイドチャネルコーディングに割り振られるビットの数を調整する(たとえば、増やす)ことを可能にし得る。たとえば、後続フレームにおける符号反転を回避するために、大幅なシフト増大を回避するために、および/または基準信号と整合するようにフレームごとにターゲット信号を時間的にゆっくりとシフトするために、最終シフト値116が、補正済みシフト値540とは異なる値に(
図5のシフト変化分析器512によって)制限され得る。これらのシナリオでは、エンコーダ114は、アーティファクトを低減するために、サイドチャネルコーディングに割り振られるビットの数を増やすことができる。チャネル間前処理/分析パラメータ(たとえば、有声化、ピッチ、フレームエネルギー、音声活動、過渡検出、スピーチ/音楽分類、コーダタイプ、雑音レベル推定、信号対雑音比(SNR)推定、信号エントロピーなど)などの他のパラメータに基づいて、チャネル間の相互相関に基づいて、および/またはチャネル間のスペクトル類似性に基づいて、最終シフト値116が補正済みシフト値540とは異なり得ることを理解されたい。
【0350】
図20を参照すると、ミッド信号とサイド信号との間でビットを割り振るための方法2000のフローチャートが示されている。方法2000は、ビットアロケータ1908によって実行され得る。
【0351】
2052において、方法2000は、最終シフト値116と補正済みシフト値540との間の差2057を決定するステップを含む。たとえば、ビットアロケータ1908は、最終シフト値116から補正済みシフト540を差し引くことによって、差2057を決定し得る。
【0352】
2053において、方法2000は、差2057(たとえば、差2057の絶対値)を第1のしきい値1902と比較するステップを含む。たとえば、ビットアロケータ1908は、差の絶対値が第1のしきい値1902よりも大きいかどうかを判断し得る。差2057の絶対値が第1のしきい値1902よりも大きい場合、2054においてビットアロケータ1908は、第1の数のビット1916を減らすことができ、第2の数のビット1918を増やすことができる。たとえば、ビットアロケータ1908は、ミッド信号に割り振られるビットの数を減らすことができ、サイド信号に割り振られるビットの数を増やすことができる。
【0353】
差2057の絶対値が第1のしきい値1902以下である場合、2055においてビットアロケータ1908は、差2057の絶対値が第2のしきい値1904よりも小さいかどうかを判断し得る。差2057の絶対値が第2のしきい値1904よりも小さい場合、2056においてビットアロケータ1908は、第1の数のビット1916を増やすことができ、第2の数のビット1918を減らすことができる。たとえば、ビットアロケータ1908は、ミッド信号に割り振られるビットの数を増やすことができ、サイドチャネルに割り振られるビットの数を減らすことができる。差2057の絶対値が第2のしきい値1904以上である場合、2057において、第1の数のビット1916および第2の数のビット1918は変わらないままであり得る。
【0354】
図20の方法2000は、ビットアロケータ1908が、最終シフト値116が補正済みシフト値540とは異なる場合に、サイドチャネルコーディングに割り振られるビットの数を調整する(たとえば、増やす)ことを可能にし得る。たとえば、後続フレームにおける符号反転を回避するために、大幅なシフト増大を回避するために、および/または基準信号と整合するようにフレームごとにターゲット信号を時間的にゆっくりとシフトするために、最終シフト値116が、補正済みシフト値540とは異なる値に(
図5のシフト変化分析器512によって)制限され得る。これらのシナリオでは、エンコーダ114は、アーティファクトを低減するために、サイドチャネルコーディングに割り振られるビットの数を増やすことができる。
【0355】
図21を参照すると、最終シフト値116および補正済みシフト値540に基づいて、異なるコーディングモードを選択するための方法2100のフローチャートが示されている。方法2100は、コーディングモードセレクタ1910によって実行され得る。
【0356】
2152において、方法2100は、最終シフト値116と補正済みシフト値540との間の差2057を決定するステップを含む。たとえば、ビットアロケータ1908は、最終シフト値116から補正済みシフト値540を差し引くことによって、差2057を決定し得る。
【0357】
2153において、方法2100は、差2057(たとえば、差2057の絶対値)を第1のしきい値1902と比較するステップを含む。たとえば、ビットアロケータ1908は、差の絶対値が第1のしきい値1902よりも大きいかどうかを判断し得る。差2057の絶対値が第1のしきい値1902よりも大きい場合、2154においてコーディングモードセレクタ1910は、第1のHBコーディングモード1912としてBWEコーディングモードを選択し、第1のLBコーディングモード1913としてACELPコーディングモードを選択し、第2のHBコーディングモード1914としてBWEコーディングモードを選択し、第2のLBコーディングモード1915としてACELPコーディングモードを選択することができる。このシナリオによるコーディングの例示的な実装形態が、
図22においてコーディング方式2202として示されている。コーディング方式2202によれば、時分割(TD)または周波数分割(FD)BWEコーディングモードを使用してハイバンドが符号化され得る。
【0358】
再び
図21を参照すると、差2057の絶対値が第1のしきい値1902以下である場合、2155においてコーディングモードセレクタ1910は、差2057の絶対値が第2のしきい値1904よりも小さいかどうかを判断し得る。差2057の絶対値が第2のしきい値1904よりも小さい場合、2156においてコーディングモードセレクタ1910は、第1のHBコーディングモード1912としてBWEコーディングモードを選択し、第1のLBコーディングモード1913としてACELPコーディングモードを選択し、第2のHBコーディングモード1914としてブラインドBWEコーディングモードを選択し、第2のLBコーディングモード1915として予測ACELPを選択することができる。このシナリオによるコーディングの例示的な実装形態が、
図22においてコーディング方式2206として示されている。コーディング方式2206によれば、ミッドチャネルコーディングにTDまたはFD BWEコーディングモードを使用してハイバンドが符号化されてよく、サイドチャネルコーディングにTDまたはFDブラインドBWEコーディングモードを使用してハイバンドが符号化されてよい。
【0359】
再び
図21を参照すると、差2057の絶対値が第2のしきい値1904以上である場合、2157においてコーディングモードセレクタ1910は、第1のHBコーディングモード1912としてBWEコーディングモードを選択し、第1のLBコーディングモード1913としてACELPコーディングモードを選択し、第2のHBコーディングモード1914としてブラインドBWEコーディングモードを選択し、第2のLBコーディングモード1915としてACELPコーディングモードを選択することができる。このシナリオによるコーディングの例示的な実装形態が、
図22においてコーディング方式2204として示されている。コーディング方式2204によれば、ミッドチャネルコーディングにTDまたはFD BWEコーディングモードを使用してハイバンドが符号化されてよく、サイドチャネルコーディングにTDまたはFDブラインドBWEコーディングモードを使用してハイバンドが符号化されてよい。
【0360】
したがって、方法2100によれば、コーディング方式2202は、多数のビットをサイドチャネルコーディングのために割り振ることができ、コーディング方式2204は、より少ない数のビットをサイドチャネルコーディングのために割り振ることができ、コーディング方式2206は、さらに少ない数のビットをサイドチャネルコーディングのために割り振ることができる。信号130、132が雑音様の信号である場合、コーディングモードセレクタ1910は、コーディング方式2208に従って信号130、132を符号化し得る。たとえば、サイドチャネルは、残差または予測コーディングを使用して符号化され得る。ハイバンドおよびローバンドサイドチャネルは、変換領域(たとえば、離散フーリエ変換(DFT)または修正離散コサイン変換(MDCT)コーディング)を使用して符号化され得る。信号130、132が低減された雑音(たとえば、音楽様の信号)である場合、コーディングモードセレクタ1910は、コーディング方式2210に従って信号130、132を符号化し得る。コーディング方式2210は、コーディング方式2208と同様であり得るが、コーディング方式2210によるミッドチャネルコーディングは変換符号化励振(TCX:transform coded excitation)コーディングを含む。
【0361】
図21の方法2100は、コーディングモードセレクタ1910が、最終シフト値116と補正済みシフト値540との間の差に基づいて、ミッドチャネルおよびサイドチャネルのためにコーディングモードを変更することを可能にし得る。
【0362】
図23を参照すると、第1のデバイス104のエンコーダ114の説明のための例が示されている。エンコーダ114は、シフト推定器2304を介してフレーム間シフト変動分析器2306、基準信号指定器2309、または両方に結合された信号プリプロセッサ2302を含む。信号プリプロセッサ2302は、オーディオ信号2328(たとえば、第1のオーディオ信号130および第2のオーディオ信号132)を受信するように、また第1の再サンプリングされた信号2330および第2の再サンプリングされた信号2332を生成するためにオーディオ信号2328を処理するように構成され得る。たとえば、信号プリプロセッサ2302は、再サンプリングされた信号2330、2332を生成するためにオーディオ信号2328をダウンサンプリングまたは再サンプリングするように構成され得る。シフト推定器2304は、再サンプリングされた信号2330、2332の比較に基づいてシフト値を決定するように構成され得る。フレーム間シフト変動分析器2306は、オーディオ信号を基準信号およびターゲット信号として識別するように構成され得る。フレーム間シフト変動分析器2306はまた、2つのシフト値の間の差を決定するように構成され得る。基準信号指定器2309は、1つのオーディオ信号を基準信号(たとえば、時間シフトされない信号)として選択し、別のオーディオ信号をターゲット信号(たとえば、基準信号と時間的に整合させるために基準信号に対して時間シフトされる信号)として選択するように構成され得る。
【0363】
フレーム間シフト変動分析器2306は、ターゲット信号調整器2308を介して利得パラメータ生成器2315に結合され得る。ターゲット信号調整器2308は、シフト値の間の差に基づいてターゲット信号を調整するように構成され得る。たとえば、ターゲット信号調整器2308は、ターゲット信号の調整されたサンプルを生成するために使用される推定サンプルを生成するために、サンプルのサブセットに対して補間を実行するように構成され得る。利得パラメータ生成器2315は、ターゲット信号の電力レベルに対して基準信号の電力レベルを「正規化する」(たとえば、等化する)基準信号の利得パラメータを決定するように構成され得る。代替的に、利得パラメータ生成器2315は、基準信号の電力レベルに対してターゲット信号の電力レベルを「正規化する」(たとえば、等化する)ターゲット信号の利得パラメータを決定するように構成され得る。
【0364】
基準信号指定器2309は、フレーム間シフト変動分析器2306、利得パラメータ生成器2315、または両方に結合され得る。ターゲット信号調整器2308は、ミッドサイド生成器2310、利得パラメータ生成器2315、または両方に結合され得る。利得パラメータ生成器2315は、ミッドサイド生成器2310に結合され得る。ミッドサイド生成器2310は、少なくとも1つの符号化された信号を生成するために、基準信号および調整されたターゲット信号に対して符号化を実行するように構成され得る。たとえば、ミッドサイド生成器2310は、ミッドチャネル信号2370およびサイドチャネル信号2372を生成するためにステレオ符号化を実行するように構成され得る。
【0365】
ミッドサイド生成器2310は、帯域幅拡張(BWE)空間バランサ2312、ミッドBWEコーダ2314、ローバンド(LB)信号再生器2316、またはそれらの組合せに結合され得る。LB信号再生器2316は、LBサイドコアコーダ2318、LBミッドコアコーダ2320、または両方に結合され得る。ミッドBWEコーダ2314は、BWE空間バランサ2312、LBミッドコアコーダ2320、または両方に結合され得る。BWE空間バランサ2312、ミッドBWEコーダ2314、LB信号再生器2316、LBサイドコアコーダ2318、およびLBミッドコアコーダ2320は、帯域幅拡張および追加コーディング、たとえば、ローバンドコーディングおよびミッドバンドコーディングを、ミッドチャネル信号2370、サイドチャネル信号2372、または両方に対して実行するように構成され得る。帯域幅拡張および追加コーディングを実行することは、追加信号符号化を実行すること、パラメータを生成すること、または両方を含み得る。
【0366】
動作中、信号プリプロセッサ2302は、オーディオ信号2328を受信し得る。オーディオ信号2328は、第1のオーディオ信号130、第2のオーディオ信号132、または両方を含み得る。特定の実装形態では、オーディオ信号2328は、左チャネル信号および右チャネル信号を含み得る。他の実装形態では、オーディオ信号2328は他の信号を含み得る。信号プリプロセッサ2302は、再サンプリングされた信号2330、2332(たとえば、ダウンサンプリングされた第1のオーディオ信号130およびダウンサンプリングされた第2のオーディオ信号132)を生成するために第1のオーディオ信号130および第2のオーディオ信号132をダウンサンプリング(または再サンプリング)し得る。
【0367】
シフト推定器2304は、再サンプリングされた信号2330、2332に基づいてシフト値を生成し得る。特定の実装形態では、シフト推定器2304は、絶対値演算の実行後に非因果的シフト値(NC_SHIFT_INDX)2361を生成し得る。特定の実装形態では、シフト推定器2304は、次のシフト値が現在のシフト値とは異なる符号(たとえば、正または負)を有すことを防ぎ得る。たとえば、第1のフレームに関するシフト値が負であり、第2のフレームに関するシフト値が正であると判断されたとき、シフト推定器2304は、第2のフレームに関するシフト値を0に設定し得る。別の例として、第1のフレームに関するシフト値が正であり、第2のフレームに関するシフト値が負であると判断されたとき、シフト推定器2304は、第2のフレームに関するシフト値を0に設定し得る。したがって、この実装形態では、現在フレームに関するシフト値が前フレームに関するシフト値と同じ符号(たとえば、正または負)を有するか、または現在フレームに関するシフト値が0である。
【0368】
基準信号指定器2309は、第1のオーディオ信号130および第2のオーディオ信号132のうちの一方を、第3のフレームおよび第4のフレームに対応する時間期間の基準信号として選択し得る。基準信号指定器2309は、シフト推定器2304からの最終シフト値116に基づいて基準信号を決定し得る。たとえば、最終シフト値116が負であるとき、基準信号指定器2309は、第2のオーディオ信号132を基準信号として識別し、第1のオーディオ信号130をターゲット信号として識別し得る。最終シフト値116が正または0であるとき、基準信号指定器2309は、第2のオーディオ信号132をターゲット信号として識別し、第1のオーディオ信号130を基準信号として識別し得る。基準信号指定器2309は、基準信号を示す値を有する基準信号インジケータ2365を生成し得る。たとえば、基準信号インジケータ2365は、第1のオーディオ信号130が基準信号として識別されたときに第1の値(たとえば、論理0値)を有することができ、基準信号インジケータ2365は、第2のオーディオ信号132が基準信号として識別されたときに第2の値(たとえば、論理1値)を有することができる。基準信号指定器2309は、フレーム間シフト変動分析器2306および利得パラメータ生成器2315に基準信号インジケータ2365を提供し得る。
【0369】
フレーム間シフト変動分析器2306は、最終シフト値116、第1のシフト値2363、ターゲット信号2342、基準信号2340、および基準信号インジケータ2365に基づいてターゲット信号インジケータ2364を生成し得る。ターゲット信号インジケータ2364は、調整されたターゲットチャネルを示す。たとえば、ターゲット信号インジケータ2364の第1の値(たとえば、論理0値)は、第1のオーディオ信号130が調整されたターゲットチャネルであることを示すことができ、ターゲット信号インジケータ2364の第2の値(たとえば、論理1値)は、第2のオーディオ信号132が調整されたターゲットチャネルであることを示すことができる。フレーム間シフト変動分析器2306は、ターゲット信号調整器2308にターゲット信号インジケータ2364を提供し得る。
【0370】
ターゲット信号調整器2308は、調整されたターゲット信号2352の調整されたサンプルを生成するために、調整されたターゲット信号に対応するサンプルを調整し得る。ターゲット信号調整器2308は、調整されたターゲット信号2352を利得パラメータ生成器2315およびミッドサイド生成器2310に提供し得る。利得パラメータ生成器2315は、基準信号インジケータ2365および調整されたターゲット信号2352に基づいて利得パラメータ261を生成し得る。利得パラメータ261は、基準信号の電力レベルに対してターゲット信号の電力レベルを正規化(たとえば、等化)し得る。代替的に、利得パラメータ生成器2315は、基準信号(またはそのサンプル)を受信することがあり、ターゲット信号の電力レベルに対して基準信号の電力レベルを正規化する利得パラメータ261を決定することがある。利得パラメータ生成器2315は、ミッドサイド生成器2310に利得パラメータ261を提供し得る。
【0371】
ミッドサイド生成器2310は、調整されたターゲット信号2352、基準信号2340、および利得パラメータ261に基づいて、ミッドチャネル信号2370、サイドチャネル信号2372、または両方を生成し得る。ミッドサイド生成器2310は、BWE空間バランサ2312、LB信号再生器2316、または両方にサイドチャネル信号2372を提供し得る。ミッドサイド生成器2310は、ミッドBWEコーダ2314、LB信号再生器2316、または両方にミッドチャネル信号2370を提供し得る。LB信号再生器2316は、ミッドチャネル信号2370に基づいてLBミッド信号2360を生成し得る。たとえば、LB信号再生器2316は、ミッドチャネル信号2370をフィルタ処理することによってLBミッド信号2360を生成し得る。LB信号再生器2316は、LBミッドコアコーダ2320にLBミッド信号2360を提供し得る。LBミッドコアコーダ2320は、LBミッド信号2360に基づいてパラメータ(たとえば、コアパラメータ2371、パラメータ2375、または両方)を生成し得る。コアパラメータ2371、パラメータ2375、または両方は、励起パラメータ(excitation parameter)、有声化パラメータなどを含み得る。LBミッドコアコーダ2320は、ミッドBWEコーダ2314にコアパラメータ2371、LBサイドコアコーダ2318にパラメータ2375、または両方を提供し得る。コアパラメータ2371は、パラメータ2375と同じであるか、またはパラメータ2375とは別個のものであり得る。たとえば、コアパラメータ2371は、パラメータ2375のうちの1つもしくは複数を含むこと、パラメータ2375のうちの1つもしくは複数を除外すること、1つもしくは複数の追加のパラメータを含むこと、またはそれらの組合せがある。ミッドBWEコーダ2314は、ミッドチャネル信号2370、コアパラメータ2371、またはそれらの組合せに基づいて、コーディングされたミッドBWE信号2373を生成し得る。ミッドBWEコーダ2314はまた、ミッドチャネル信号2370、コアパラメータ2371、またはそれらの組合せに基づいて、第1の利得パラメータのセット2394およびLPCパラメータ2392を生成し得る。ミッドBWEコーダ2314は、コーディングされたミッドBWE信号2373をBWE空間バランサ2312に提供し得る。BWE空間バランサ2312は、コーディングされたミッドBWE信号2373、左HB信号2396(たとえば、左チャネル信号のハイバンド部分)、右HB信号2398(たとえば、右チャネル信号のハイバンド部分)、またはそれらの組合せに基づいて、パラメータ(たとえば、1つもしくは複数の利得パラメータ、スペクトル調整パラメータ、他のパラメータ、またはそれらの組合せ)を生成し得る。
【0372】
LB信号再生器2316は、サイドチャネル信号2372に基づいてLBサイド信号2362を生成し得る。たとえば、LB信号再生器2316は、サイドチャネル信号2372をフィルタ処理することによってLBサイド信号2362を生成し得る。LB信号再生器2316は、LBサイドコアコーダ2318にLBサイド信号2362を提供し得る。
【0373】
したがって、
図23のシステム2300は、調整されたターゲットチャネルに基づく符号化された信号(たとえば、LBサイドコアコーダ2318、LBミッドコアコーダ2320、ミッドBWEコーダ2314、BWE空間バランサ2312、またはそれらの組合せにおいて生成される出力信号)を生成する。シフト値の間の差に基づいてターゲットチャネルを調整することで、フレーム間の不連続を補償する(または隠す)ことができ、それにより、符号化された信号の再生中にクリックまたは他の可聴音を減らすことができる。
【0374】
図24を参照すると、
図2400は、本明細書で説明する技法による異なる符号化された信号を示す。たとえば、符号化されたHBミッド信号2102、符号化されたLBミッド信号2104、符号化されたHBサイド信号2108、および符号化されたLBサイド信号2110が示されている。
【0375】
符号化されたHBミッド信号2102は、LPCパラメータ2392と第1の利得パラメータのセット2394とを含む。LPCパラメータ2392は、ハイバンド線スペクトル周波数(LSF)インデックスを示し得る。第1の利得パラメータのセット2394は、利得フレームインデックス、利得形状インデックス、または両方を示し得る。符号化されたHBサイド信号2108は、LPCパラメータ2492と利得パラメータのセット2494とを含む。LPCパラメータ2492は、ハイバンドLSFインデックスを示し得る。利得パラメータのセット2494は、利得フレームインデックス、利得形状インデックス、または両方を示し得る。符号化されたLBミッド信号2104はコアパラメータ2371を含むことができ、符号化されたLBサイド信号2110はコアパラメータ2471を含むことができる。
【0376】
図25を参照すると、本明細書で説明する技法に従って信号を符号化するためのシステム2500が示されている。システム2500は、ダウンミキサ2502、プリプロセッサ2504、ミッドコーダ2506、第1のHBミッドコーダ2508、第2のHBミッドコーダ2509、サイドコーダ2510、およびHBサイドコーダ2512を含む。
【0377】
ダウンミキサ2502にオーディオ信号2528が提供され得る。一実装形態によれば、オーディオ信号2528は、第1のオーディオ信号130および第2のオーディオ信号132を含み得る。ダウンミキサ2502は、ミッドチャネル信号2370およびサイドチャネル信号2372を生成するためにダウンミックス動作を実行し得る。ミッドチャネル信号2370はプリプロセッサ2504に提供されてよく、サイドチャネル信号2372はサイドコーダ2510に提供されてよい。
【0378】
プリプロセッサ2504は、ミッドチャネル信号2370に基づいて前処理パラメータ2570を生成し得る。前処理パラメータ2570は、第1の数のビット1916、第2の数のビット1918、第1のHBコーディングモード1912、第1のLBコーディングモード1913、第2のHBコーディングモード1914、および第2のLBコーディングモード1915を含み得る。ミッドチャネル信号2370および前処理パラメータ2570はミッドコーダ2506に提供され得る。コーディングモードに基づいて、ミッドコーダ2506は、第1のHBミッドコーダ2508または第2のHBミッドコーダ2509に選択的に結合し得る。サイドコーダ2510は、HBサイドコーダ2512に結合し得る。
【0379】
図26を参照すると、通信のための方法2600のフローチャートが示されている。方法2600は、
図1および
図19の第1のデバイス104によって実行され得る。
【0380】
方法2600は、2602において、デバイスにおいて、シフト値および第2のシフト値を決定するステップを含む。シフト値は、第2のオーディオ信号に対する第1のオーディオ信号のシフトを示すことができ、第2のシフト値は、シフト値に基づき得る。たとえば、
図19を参照すると、エンコーダ114(または第1のデバイス104における別のプロセッサ)は、
図5に関して説明した技法に従って最終シフト値116および補正済みシフト値540を決定し得る。方法2600に関して、補正済みシフト値540は「シフト値」と呼ばれることもあり、最終シフト値116は「第2のシフト値」と呼ばれることもある。補正済みシフト値は、第2のマイクロフォン148によってキャプチャされた第2のオーディオ信号132に対する第1のマイクロフォン146によってキャプチャされた第1のオーディオ信号130のシフト(たとえば、時間シフト)を示し得る。
図5に関して説明したように、最終シフト値116は補正済みシフト値540に基づき得る。
【0381】
方法2600はまた、2604において、デバイスにおいて、第2のシフト値およびシフト値に基づいてビット割振りを決定するステップを含む。たとえば、
図19を参照すると、ビットアロケータ1908は、最終シフト値116および補正済みシフト値540に基づいてビット割振りを決定し得る。たとえば、ビットアロケータ1908は、最終シフト値116と補正済みシフト値540との間の差を決定し得る。最終シフト値116が補正済みシフト値540とは異なる場合、最終シフト値116および補正済みシフト値540が同様であるシナリオと比較して、サイド信号コーディングに追加ビットが割り振られ得る。サイド信号コーディングに追加ビットを割り振った後、利用可能なビットの残りがミッド信号コーディングおよびサイドパラメータに割り振られ得る。同様の最終シフト値116および補正済みシフト値540を有することで、後続フレームにおける符号反転の可能性が著しく低下し、オーディオ信号130、132の間のシフトの大幅な増大の発生が著しく減ることがあり、かつ/またはフレームごとにターゲット信号が時間的にゆっくりとシフトされることがある。
【0382】
方法2600はまた、2606において、デバイスにおいて、ビット割振りに基づいて少なくとも1つの符号化された信号を生成するステップを含む。少なくとも1つの符号化された信号は、第1のオーディオ信号の第1のサンプルおよび第2のオーディオ信号の第2のサンプルに基づき得る。第2のサンプルは、第2のシフト値に基づく量だけ、第1のサンプルに対して時間シフトされ得る。たとえば、
図19を参照すると、エンコーダ114は、ビット割振りに基づいて少なくとも1つの符号化された信号(たとえば、符号化された信号102)を生成し得る。符号化された信号102は、第1の符号化された信号および第2の符号化された信号を含み得る。一実装形態によれば、第1の符号化された信号はミッド信号に対応することができ、第2の符号化された信号はサイド信号に対応することができる。符号化された信号102は、第1のオーディオ信号130の第1のサンプルおよび第2のオーディオ信号132の第2のサンプルに基づき得る。第2のサンプルは、最終シフト値116(たとえば、第2のシフト値)に基づく量だけ、第1のサンプルに対して時間シフトされ得る。
【0383】
方法2600はまた、2608において、少なくとも1つの符号化された信号を第2のデバイスに送るステップを含む。たとえば、
図19を参照すると、送信機110は、ネットワーク120を介して第2のデバイス106に符号化された信号102を送信し得る。符号化された信号102を受信すると、第2のデバイス106は、第1のラウドスピーカー142において第1の出力信号126を出力するように、また第2のラウドスピーカー144において第2の出力信号128を出力するように、
図1に関して説明したのと実質的に同様の方法で動作し得る。
【0384】
一実装形態によれば、方法2600は、シフト値と第2のシフト値との間の差がしきい値を満たすことに応答して、ビット割振りが第1の値を有すると判断するステップを含む。少なくとも1つの符号化された信号は、第1の符号化された信号および第2の符号化された信号を含み得る。第1の符号化された信号はミッド信号に対応することができ、第2の符号化された信号はサイド信号に対応することができる。ビット割振りは、第1の符号化された信号に第1の数のビットが割り振られること、および第2の符号化された信号に第2の数のビットが割り振られることを示し得る。方法2600はまた、シフト値と第2のシフト値との間の差が第1のしきい値を満たすことに応答して、第1の数のビットを減らし、第2の数のビットを増やすステップを含み得る。
【0385】
一実装形態によれば、方法2600は、第1のオーディオ信号と第2のオーディオ信号との和に基づいてミッド信号を生成するステップを含み得る。方法2600はまた、第1のオーディオ信号と第2のオーディオ信号との間の差に基づいてサイド信号を生成するステップを含み得る。方法2600の一実装形態によれば、第1の符号化された信号はローバンドミッド信号を含み、第2の符号化された信号はローバンドサイド信号を含む。方法2600の別の実装形態によれば、第1の符号化された信号はハイバンドミッド信号を含み、第2の符号化された信号はハイバンドサイド信号を含む。
【0386】
一実装形態によれば、方法2600は、シフト値および第2のシフト値に基づいてコーディングモードを決定するステップを含む。少なくとも1つの符号化された信号は、コーディングモードに基づき得る。方法2600はまた、シフト値と第2のシフト値との間の差がしきい値を満たすことに応答して、第1のコーディングモードに基づいて第1の符号化された信号を生成し、第2のモードに基づいて第2の符号化された信号を生成するステップを含み得る。少なくとも1つの符号化された信号は、第1の符号化された信号および第2の符号化された信号を含み得る。一実装形態によれば、第1の符号化された信号はローバンドミッド信号を含むことができ、第2の符号化された信号はローバンドサイド信号を含むことができる。第1のコーディングモードおよび第2のコーディングモードは、ACELPコーディングモードを含み得る。別の実装形態によれば、第1の符号化された信号はハイバンドミッド信号を含むことができ、第2の符号化された信号はハイバンドサイド信号を含むことができる。第1のコーディングモードおよび第2のコーディングモードは、BWEコーディングモードを含み得る。
【0387】
一実装形態によれば、方法2600は、ACELPコーディングモードに基づいて符号化されたローバンドミッド信号を生成し、予測ACELPコーディングモードに基づいて符号化されたローバンドサイド信号を生成するステップを含む。少なくとも1つの符号化された信号は、符号化されたローバンドミッド信号と符号化されたローバンドサイド信号に対応する1つまたは複数のパラメータとを含み得る。
【0388】
一実装形態によれば、方法2600は、シフト値と第2のシフト値との間の差がしきい値を満たさないことに応答して、BWEコーディングモードに基づいて符号化されたハイバンドミッド信号を生成するステップを含む。方法2600はまた、差がしきい値を満たさないことに応答して、ブラインドBWEコーディングモードに基づいて符号化されたハイバンドサイド信号を生成するステップを含む。少なくとも1つの符号化された信号は、符号化されたハイバンドミッド信号と符号化されたハイバンドサイド信号に対応する1つまたは複数のパラメータとを含み得る。
【0389】
図6の方法2600は、エンコーダ114が、最終シフト値116が補正済みシフト値540とは異なる場合に、サイドチャネルコーディングに割り振られるビットの数を調整する(たとえば、増やす)ことを可能にし得る。たとえば、後続フレームにおける符号反転を回避するために、大幅なシフト増大を回避するために、および/または基準信号と整合するようにフレームごとにターゲット信号を時間的にゆっくりとシフトするために、最終シフト値116が、補正済みシフト値540とは異なる値に(
図5のシフト変化分析器512によって)制限され得る。これらのシナリオでは、エンコーダ114は、アーティファクトを低減するために、サイドチャネルコーディングに割り振られるビットの数を増やすことができる。
【0390】
図27を参照すると、通信のための方法2700のフローチャートが示されている。方法2700は、
図1および
図19の第1のデバイス104によって実行され得る。
【0391】
方法2700は、2702において、デバイスにおいて、シフト値および第2のシフト値を決定するステップを含み得る。シフト値は、第2のオーディオ信号に対する第1のオーディオ信号のシフトを示すことができ、第2のシフト値は、シフト値に基づき得る。たとえば、
図19を参照すると、エンコーダ114(または第1のデバイス104における別のプロセッサ)は、
図5に関して説明した技法に従って最終シフト値116および補正済みシフト値540を決定し得る。方法2700に関して、補正済みシフト値540は「シフト値」と呼ばれることもあり、最終シフト値116は「第2のシフト値」と呼ばれることもある。補正済みシフト値は、第2のマイクロフォン148によってキャプチャされた第2のオーディオ信号132に対する第1のマイクロフォン146によってキャプチャされた第1のオーディオ信号130のシフト(たとえば、時間シフト)を示し得る。
図5に関して説明したように、最終シフト値116は補正済みシフト値540に基づき得る。
【0392】
方法2700はまた、2704において、デバイスにおいて、第2のシフト値およびシフト値に基づいてコーディングモードを決定するステップを含み得る。方法2700はまた、2706において、デバイスにおいて、コーディングモードに基づいて少なくとも1つの符号化された信号を生成するステップを含み得る。少なくとも1つの符号化された信号は、第1のオーディオ信号の第1のサンプルおよび第2のオーディオ信号の第2のサンプルに基づき得る。第2のサンプルは、第2のシフト値に基づく量だけ、第1のサンプルに対して時間シフトされ得る。たとえば、
図19を参照すると、エンコーダ114は、コーディングモードに基づいて少なくとも1つの符号化された信号(たとえば、符号化された信号102)を生成し得る。符号化された信号102は、第1の符号化された信号および第2の符号化された信号を含み得る。一実装形態によれば、第1の符号化された信号はミッド信号に対応することができ、第2の符号化された信号はサイド信号に対応することができる。符号化された信号102は、第1のオーディオ信号130の第1のサンプルおよび第2のオーディオ信号132の第2のサンプルに基づき得る。第2のサンプルは、最終シフト値116(たとえば、第2のシフト値)に基づく量だけ、第1のサンプルに対して時間シフトされ得る。
【0393】
方法2700はまた、2708において、少なくとも1つの符号化された信号を第2のデバイスに送るステップを含み得る。たとえば、
図19を参照すると、送信機110は、ネットワーク120を介して第2のデバイス106に符号化された信号102を送信し得る。符号化された信号102を受信すると、第2のデバイス106は、第1のラウドスピーカー142において第1の出力信号126を出力するように、また第2のラウドスピーカー144において第2の出力信号128を出力するように、
図1に関して説明したのと実質的に同様の方法で動作し得る。
【0394】
方法2700はまた、シフト値と第2のシフト値との間の差がしきい値を満たすことに応答して、第1のコーディングモードに基づいて第1の符号化された信号を生成し、第2のコーディングモードに基づいて第2の符号化された信号を生成するステップを含み得る。少なくとも1つの符号化された信号は、第1の符号化された信号および第2の符号化された信号を含み得る。一実装形態によれば、第1の符号化された信号はローバンドミッド信号を含むことができ、第2の符号化された信号はローバンドサイド信号を含むことができる。第1のコーディングモードおよび第2のコーディングモードは、ACELPコーディングモードを含み得る。別の実装形態によれば、第1の符号化された信号はハイバンドミッド信号を含むことができ、第2の符号化された信号はハイバンドサイド信号を含むことができる。第1のコーディングモードおよび第2のコーディングモードは、BWEコーディングモードを含み得る。
【0395】
一実装形態によれば、方法2700はまた、シフト値と第2のシフト値との間の差がしきい値を満たさないことに応答して、ACELPコーディングモードに基づいて符号化されたローバンドミッド信号を生成し、予測ACELPコーディングモードに基づいて符号化されたローバンドサイド信号を生成するステップを含み得る。少なくとも1つの符号化された信号は、符号化されたローバンドミッド信号と符号化されたローバンドサイド信号に対応する1つまたは複数のパラメータとを含み得る。
【0396】
別の実装形態によれば、方法2700はまた、シフト値と第2のシフト値との間の差がしきい値を満たさないことに応答して、BWEコーディングモードに基づいて符号化されたハイバンドミッド信号を生成し、ブラインドBWEコーディングモードに基づいて符号化されたハイバンドサイド信号を生成するステップを含み得る。少なくとも1つの符号化された信号は、符号化されたハイバンドミッド信号と符号化されたハイバンドサイド信号に対応する1つまたは複数のパラメータとを含み得る。
【0397】
一実装形態によれば、シフト値と第2のシフト値との間の差が第1のしきい値を満たし、第2のしきい値を満たさないことに応答して、方法2700は、ACELPコーディングモードに基づいて符号化されたローバンドミッド信号および符号化されたローバンドサイド信号を生成するステップを含み得る。方法2700はまた、BWEコーディングモードに基づいて符号化されたハイバンドミッド信号を生成し、ブラインドBWEコーディングモードに基づいて符号化されたハイバンドサイド信号を生成するステップを含み得る。少なくとも1つの符号化された信号は、符号化されたハイバンドミッド信号、符号化されたローバンドミッド信号、符号化されたローバンドサイド信号、および符号化されたハイバンドサイド信号に対応する1つまたは複数のパラメータを含み得る。
【0398】
一実装形態によれば、方法2700は、第2のシフト値およびシフト値に基づいてビット割振りを決定するステップを含み得る。少なくとも1つの符号化された信号は、ビット割振りに基づいて生成され得る。少なくとも1つの符号化された信号は、第1の符号化された信号および第2の符号化された信号を含み得る。ビット割振りは、第1の符号化された信号に第1の数のビットが割り振られること、および第2の符号化された信号に第2の数のビットが割り振られることを示し得る。方法2700はまた、シフト値と第2のシフト値との間の差が第1のしきい値を満たすことに応答して、第1の数のビットを減らし、第2の数のビットを増やすステップを含み得る。
【0399】
図28を参照すると、通信のための方法2800のフローチャートが示されている。方法2800は、
図1および
図19の第1のデバイス104によって実行され得る。
【0400】
方法2800は、2802において、デバイスにおいて、第1のオーディオ信号と第2のオーディオ信号との間の時間的不一致の第1の量を示す第1の不一致値を決定するステップを含む。たとえば、
図9を参照すると、エンコーダ114(または第1のデバイス104における別のプロセッサ)は、
図9を参照して説明したように、第1のシフト値962を決定し得る。方法2800に関して、第1のシフト値962は「第1の不一致値」と呼ばれることもある。第1のシフト値962は、
図9を参照して説明したように、第1のオーディオ信号130と第2のオーディオ信号132との間の時間的不一致の第1の量を示し得る。第1のシフト値962は、符号化されるべき第1のフレームに関連付けられ得る。たとえば、符号化されるべき第1のフレームは、
図3のフレーム302のサンプル322〜324および第2のオーディオ信号132の特定のサンプルを含み得る。特定のサンプルは、
図1を参照して説明したように、第1のシフト値962に基づいて選択され得る。
【0401】
方法2800はまた、2804において、デバイスにおいて、第2の不一致値を決定するステップを含み、第2の不一致値は、第1のオーディオ信号と第2のオーディオ信号との間の時間的不一致の第2の量を示す。たとえば、エンコーダ114(または第1のデバイス104における別のプロセッサ)は、
図5を参照して説明したように、暫定的シフト値536、補間済みシフト値538、補正済みシフト値540、またはそれらの組合せを決定し得る。方法2800に関して、暫定的シフト値536、補間済みシフト値538、または補正済みシフト値540は「第2の不一致値」と呼ばれることもある。暫定的シフト値536、補間済みシフト値538、または補正済みシフト値540のうちの1つまたは複数は、第1のオーディオ信号130と第2のオーディオ信号132との間の時間的不一致の第2の量を示し得る。第2の不一致値は、符号化されるべき第2のフレームに関連付けられ得る。たとえば、符号化されるべき第2のフレームは、
図4を参照して説明したように、第1のオーディオ信号130のサンプル326〜332および第2のオーディオ信号132のサンプル354〜360を含み得る。別の例として、符号化されるべき第2のフレームは、
図3を参照して説明したように、第1のオーディオ信号130のサンプル326〜332および第2のオーディオ信号132のサンプル358〜364を含み得る。
【0402】
符号化されるべき第2のフレームは、符号化されるべき第1のフレームの後にあり得る。たとえば、第1のオーディオ信号130の第1のサンプル320において、または第2のオーディオ信号132の第2のサンプル350において、符号化されるべき第2のフレームに関連する少なくともいくつかのサンプルは、符号化されるべき第1のフレームに関連する少なくともいくつかのサンプルの後にあり得る。特定の態様では、第1のオーディオ信号130の第1のサンプル320において、符号化されるべき第2のフレームのサンプル326〜332は、符号化されるべき第1のフレームのサンプル322〜324の後にあり得る。例示すると、サンプル326〜332の各々は、サンプル322〜324のいずれかに関連するタイムスタンプによって示されるよりも後の時間を示すタイムスタンプに関連付けられ得る。いくつかの態様では、第2のオーディオ信号132の第2のサンプル350において、符号化されるべき第2のフレームのサンプル354〜360(またはサンプル358〜364)は、符号化されるべき第1のフレームの特定のサンプルの後にあり得る。
【0403】
方法2800は、2806において、デバイスにおいて、第1の不一致値および第2の不一致値に基づいて有効不一致値を決定するステップをさらに含む。たとえば、エンコーダ114(または第1のデバイス104における別のプロセッサ)は、
図5に関して説明した技法に従って補正済みシフト値540、最終シフト値116、または両方を決定し得る。方法2800に関して、補正済みシフト値540または最終シフト値116は「有効不一致値」と呼ばれることもある。エンコーダ114は、第1のシフト値962または第2の不一致値のうちの一方を第1の値として識別し得る。たとえば、エンコーダ114は、第1のシフト値962が第2の不一致値以下であるとの判断に応答して、第1のシフト値962を第1の値として識別し得る。エンコーダ114は、第1のシフト値962または第2の不一致値のうちの他方を第2の値として識別し得る。
【0404】
エンコーダ114(または第1のデバイス104における別のプロセッサ)は、第1の値以上で第2の値以下になる有効不一致値を生成し得る。たとえば、エンコーダ114は、
図10Aおよび
図10Bを参照して説明したように、第1のシフト値962が0よりも大きく、補正済みシフト値540が0よりも小さいとの判断、または第1のシフト値962が0よりも小さく、補正済みシフト値540が0よりも大きいとの判断に応答して、時間シフトなしを示す特定の値(たとえば、0)に等しくなる最終シフト値116を生成し得る。この例では、最終シフト値116は「有効不一致値」と呼ばれることがあり、補正済みシフト値540は「第2の不一致値」と呼ばれることがある。
【0405】
別の例として、エンコーダ114は、
図10Aおよび
図11を参照して説明したように、推定シフト値1072に等しくなる最終シフト値116を生成し得る。推定シフト値1072は、補正済みシフト値540と第1のオフセットとの間の差以上であり、第1のシフト値962と第1のオフセットとの和以下であり得る。代替的に、推定シフト値1072は、
図11を参照して説明したように、第1のシフト値962と第2のオフセットとの間の差以上であり、補正済みシフト値540と第2のオフセットとの和以下であり得る。この例では、最終シフト値116は「有効不一致値」と呼ばれることがあり、補正済みシフト値540は「第2の不一致値」と呼ばれることがある。
【0406】
特定の態様では、エンコーダ114は、
図9を参照して説明したように、下位シフト値930以上で上位シフト値932以下となる補正済みシフト値540を生成し得る。下位シフト値930は、第1のシフト値962または補間済みシフト値538のうちの低い方に基づき得る。上位シフト値932は、第1のシフト値962または補間済みシフト値538のうちの他方に基づき得る。この態様では、補間済みシフト値538は「第2の不一致値」と呼ばれることがあり、補正済みシフト値540または最終シフト値116は「有効不一致値」と呼ばれることがある。第2のサンプル350のサンプル358〜364(またはサンプル354〜360)は、
図1および
図3〜
図5を参照して説明したように、有効不一致値に少なくとも部分的に基づいて選択され得る。
【0407】
方法2800はまた、符号化されるべき第2のフレームに少なくとも部分的に基づいて、ビット割振りを有する少なくとも1つの符号化された信号を生成するステップを含む。たとえば、エンコーダ114(または第1のデバイス104における別のプロセッサ)は、
図1を参照して説明したように、符号化されるべき第2のフレームに基づいて符号化された信号102を生成し得る。例示すると、エンコーダ114は、
図1および
図4を参照して説明したように、サンプル326〜332およびサンプル354〜360を符号化することによって、符号化された信号102を生成し得る。代替態様では、エンコーダ114は、
図1および
図3を参照して説明したように、サンプル326〜332およびサンプル358〜364を符号化することによって、符号化された信号102を生成し得る。
【0408】
符号化された信号102は、
図9を参照して説明したように、ビット割振りを有し得る。たとえば、ビット割振りは、第1の符号化された信号(たとえば、ミッド信号)に第1の数のビット1916が割り振られること、第2の符号化された信号(たとえば、サイド信号)に第2の数のビット1918が割り振られること、または両方を示し得る。エンコーダ114(または第1のデバイス104における別のプロセッサ)は、
図9を参照して説明したように、第1の数のビット1916に対応する第1のビット割振りを有する第1の符号化された信号(たとえば、ミッド信号)、第2の数のビット1918に対応する第2のビット割振りを有する第2の符号化された信号(たとえば、サイド信号)、または両方を生成し得る。
【0409】
方法2800は、2810において、少なくとも1つの符号化された信号を第2のデバイスに送るステップをさらに含む。たとえば、
図19を参照すると、送信機110は、ネットワーク120を介して第2のデバイス106に符号化された信号102を送信し得る。符号化された信号102を受信すると、第2のデバイス106は、第1のラウドスピーカー142において第1の出力信号126を出力するように、また第2のラウドスピーカー144において第2の出力信号128を出力するように、
図1に関して説明したのと実質的に同様の方法で動作し得る。
【0410】
方法2800はまた、
図19を参照して説明したように、符号化されるべき第1のフレームに関連する第1のビット割振りを生成するステップを含み得る。第1のビット割振りは、第1の符号化されたサイド信号に第2の数のビットが割り振られることを示し得る。符号化されるべき第2のフレームに関連するビット割振りは、符号化された信号102を符号化するために特定の数が割り振られることを示し得る。特定の数は、第2の数よりも大きいか、第2の数よりも小さいか、または第2の数に等しいことがある。たとえば、エンコーダ114は、第1の数のビット1916、第2の数のビット1918、または両方に基づいて、第1のビット割振りを有する1つまたは複数の第1の符号化された信号を生成し得る。エンコーダ114は、
図3を参照して説明したように、サンプル322〜324と第2のサンプル350の被選択サンプルとを符号化することによって、第1の符号化された信号を生成し得る。エンコーダ114は、
図20を参照して説明したように、第1の数のビット1916、第2の数のビット1918、または両方を更新し得る。エンコーダ114は、
図20を参照して説明したように、更新された第1の数のビット1916、更新された第2の数のビット1918、または両方に対応するビット割振りを有する符号化された信号102を生成し得る。
【0411】
方法2800は、
図5の比較値534、
図9の比較値915、比較値916、
図11の比較値1140、
図15のグラフ1502に対応する比較値、グラフ1504に対応する比較値、グラフ1506に対応する比較値、またはそれらの組合せを決定するステップをさらに含み得る。たとえば、エンコーダ114は、
図3〜
図4を参照して説明したように、第1のオーディオ信号130のサンプル326〜332と第2のオーディオ信号132のサンプルの複数のセットとの比較に基づいて、比較値を決定し得る。サンプルの複数のセットの各セットは、特定の探索範囲からの特定の不一致値に対応し得る。たとえば、特定の探索範囲は、
図9を参照して説明したように、下位シフト値930以上で上位シフト値932以下であり得る。別の例として、特定の探索範囲は、
図9を参照して説明したように、第1のシフト値1130以上で第2のシフト値1132以下であり得る。補間済み比較値838、補正済みシフト値540、最終シフト値116、またはそれらの組合せは、
図8、
図9A、
図9B、
図10A、および
図11を参照して説明したように、比較値に基づき得る。
【0412】
方法2800はまた、
図17を参照して説明したように、比較値の境界比較値を決定するステップを含み得る。たとえば、エンコーダ114は、
図18を参照して説明したように、右境界(たとえば、20サンプルシフト/不一致)における比較値、左境界(たとえば、-20サンプルシフト/不一致)における比較値、または両方を決定し得る。境界比較値は、特定の探索範囲の境界不一致値(たとえば、-20または20)のしきい値(たとえば、10サンプル)内にある不一致値に対応し得る。エンコーダ114は、
図17を参照して説明したように、境界比較値が単調に増大または単調に減少しているとの判断に応答して、符号化されるべき第2のフレームを単調傾向を示すものとして識別し得る。
【0413】
エンコーダ114は、
図17〜
図18を参照して説明したように、符号化されるべき第2のフレームの前にある符号化されるべき特定の数のフレーム(たとえば、3フレーム)が、単調傾向を示すものとして識別されると判断し得る。エンコーダ114は、
図17〜
図18を参照して説明したように、特定の数がしきい値よりも大きいとの判断に応答して、符号化されるべき第2のフレームに対応する特定の探索範囲(たとえば、-23〜23)を決定し得る。符号化されるべき第1のフレームに対応する第1の探索範囲(たとえば、-20〜20)の第1の境界不一致値(たとえば、-20)を超える第2の境界不一致(たとえば、-23)値を含む特定の探索範囲。エンコーダ114は、
図18を参照して説明したように、特定の探索範囲に基づいて比較値を生成し得る。第2の不一致値は、比較値に基づき得る。
【0414】
方法2800は、有効不一致値に少なくとも部分的に基づいてコーディングモードを決定するステップをさらに含み得る。たとえば、エンコーダ114は、
図19を参照して説明したように、第1のLBコーディングモード1913、第2のLBコーディングモード1915、第1のHBコーディングモード1912、第2のHBコーディングモード1914、またはそれらの組合せを決定し得る。符号化された信号102は、
図19を参照して説明したように、第1のLBコーディングモード1913、第2のLBコーディングモード1915、第1のHBコーディングモード1912、第2のHBコーディングモード1914、またはそれらの組合せに基づき得る。特定の実装形態によれば、エンコーダ114は、
図19を参照して説明したように、第1のHBコーディングモード1912に基づいて符号化されたHBミッド信号、第2のHBコーディングモード1914に基づいて符号化されたHBサイド信号、第1のLBコーディングモード1913に基づいて符号化されたLBミッド信号、第2のLBコーディングモード1915に基づいて符号化されたLBサイド信号、またはそれらの組合せを生成し得る。
【0415】
いくつかの実装形態によれば、
図21を参照して説明したように、第1のHBコーディングモード1912はBWEコーディングモードを含むことができ、第2のHBコーディングモード1914はブラインドBWEコーディングモードを含むことができる。符号化された信号102は、符号化されたHBミッド信号と符号化されたHBサイド信号に対応する1つまたは複数のパラメータとを含み得る。
【0416】
いくつかの実装形態によれば、
図21を参照して説明したように、第1のHBコーディングモード1912はBWEコーディングモードを含むことができ、第2のHBコーディングモード1914はBWEコーディングモードを含むことができる。符号化された信号102は、符号化されたHBミッド信号と符号化されたHBサイド信号に対応する1つまたは複数のパラメータとを含み得る。
【0417】
いくつかの実装形態によれば、
図21を参照して説明したように、第1のLBコーディングモード1913はACELPコーディングモードを含むことができ、第2のLBコーディングモード1915はACELPコーディングモードを含むことができ、第1のHBコーディングモード1912はBWEコーディングモードを含むことができ、第2のHBコーディングモード1914はブラインドBWEコーディングモードを含むことができ、またはそれらの組合せがあってよい。符号化された信号102は、符号化されたHBミッド信号、符号化されたLBミッド信号、符号化されたLBサイド信号、および符号化されたHBサイド信号に対応する1つまたは複数のパラメータを含み得る。
【0418】
いくつかの実装形態によれば、
図21を参照して説明したように、第1のLBコーディングモード1913はACELPコーディングモードを含むことができ、第2のLBコーディングモード1915は予測ACELPコーディングモードを含むことができ、または両方があってよい。符号化された信号102は、符号化されたLBミッド信号と符号化されたLBサイド信号に対応する1つまたは複数のパラメータとを含み得る。
【0419】
図29を参照すると、デバイス(たとえば、ワイヤレス通信デバイス)の特定の説明のための例のブロック図が示され、全体的に2900と指定されている。様々な実装形態では、デバイス2900は、
図29に示すよりも少数または多数の構成要素を有し得る。例示的な実装形態では、デバイス2900は、
図1の第1のデバイス104または第2のデバイス106に対応し得る。例示的な実装形態では、デバイス2900は、
図1〜
図28のシステムおよび方法を参照して説明した1つまたは複数の動作を実行し得る。
【0420】
特定の実装形態では、デバイス2900はプロセッサ2906(たとえば、中央処理装置(CPU))を含む。デバイス2900は、1つまたは複数の追加のプロセッサ2910(たとえば、1つまたは複数のデジタル信号プロセッサ(DSP))を含み得る。プロセッサ2910は、メディア(スピーチおよび音楽)コーダデコーダ(コーデック)2908と、エコーキャンセラ2912とを含み得る。メディアコーデック2908は、
図1のデコーダ118、エンコーダ114、または両方を含み得る。エンコーダ114は、時間的等化器108、ビットアロケータ1908、およびコーディングモードセレクタ1910を含み得る。
【0421】
デバイス2900は、メモリ153およびコーデック2934を含み得る。メディアコーデック2908は、プロセッサ2910(たとえば、専用回路および/または実行可能プログラミングコード)の構成要素として示されているが、他の実装形態では、デコーダ118、エンコーダ114、または両方などのメディアコーデック2908の1つまたは複数の構成要素は、プロセッサ2906、コーデック2934、別の処理構成要素、またはそれらの組合せに含まれ得る。
【0422】
デバイス2900は、アンテナ2942に結合された送信機110を含み得る。デバイス2900は、ディスプレイコントローラ2926に結合されたディスプレイ2928を含み得る。1つまたは複数のスピーカー2948がコーデック2934に結合され得る。1つまたは複数のマイクロフォン2946が、入力インターフェース112を介してコーデック2934に結合され得る。特定の実装形態では、スピーカー2948は、
図1の第1のラウドスピーカー142、第2のラウドスピーカー144、
図2の第Yのラウドスピーカー244、またはそれらの組合せを含み得る。特定の実装形態では、マイクロフォン2946は、
図1の第1のマイクロフォン146、第2のマイクロフォン148、
図2の第Nのマイクロフォン248、
図14の第3のマイクロフォン1446、第4のマイクロフォン1448、またはそれらの組合せを含み得る。コーデック2934は、デジタルアナログ変換器(DAC)2902およびアナログデジタル変換器(ADC)2904を含み得る。
【0423】
メモリ153は、
図1〜
図28を参照して説明した1つまたは複数の動作を実行するために、プロセッサ2906、プロセッサ2910、コーデック2934、デバイス2900の別の処理ユニット、またはそれらの組合せによって実行可能な命令2960を含み得る。メモリ153は、分析データ190を記憶し得る。
【0424】
デバイス2900の1つまたは複数の構成要素は、専用ハードウェア(たとえば、回路)を介して、1つもしくは複数のタスクを実行するように命令を実行するプロセッサによって、またはそれらの組合せで実装され得る。一例として、メモリ153、またはプロセッサ2906、プロセッサ2910、および/もしくはコーデック2934の1つもしくは複数の構成要素は、ランダムアクセスメモリ(RAM)、磁気抵抗ランダムアクセスメモリ(MRAM)、スピントルクトランスファーMRAM(STT-MRAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、またはコンパクトディスク読取り専用メモリ(CD-ROM)などのメモリデバイスであり得る。メモリデバイスは、コンピュータ(たとえば、コーデック2934内のプロセッサ、プロセッサ2906、および/またはプロセッサ2910)によって実行されると、
図1〜
図28を参照して説明した1つまたは複数の動作をコンピュータに実行させることができる命令(たとえば、命令2960)を含むことができる。一例として、メモリ153、またはプロセッサ2906、プロセッサ2910、および/もしくはコーデック2934の1つもしくは複数の構成要素は、コンピュータ(たとえば、コーデック2934内のプロセッサ、プロセッサ2906、および/またはプロセッサ2910)によって実行されると、
図1〜
図28を参照して説明した1つまたは複数の動作をコンピュータに実行させる命令(たとえば、命令2960)を含む非一時的コンピュータ可読媒体であり得る。
【0425】
特定の実装形態では、デバイス2900は、システムインパッケージまたはシステムオンチップデバイス(たとえば、移動局モデム(MSM))2922に含まれ得る。特定の実装形態では、プロセッサ2906、プロセッサ2910、ディスプレイコントローラ2926、メモリ153、コーデック2934、および送信機110は、システムインパッケージまたはシステムオンチップデバイス2922に含まれ得る。特定の実装形態では、タッチスクリーンおよび/またはキーパッドなどの入力デバイス2930、ならびに電源2944が、システムオンチップデバイス2922に結合される。さらに、特定の実装形態では、
図29に示されるように、ディスプレイ2928、入力デバイス2930、スピーカー2948、マイクロフォン2946、アンテナ2942、および電源2944は、システムオンチップデバイス2922の外部にある。しかしながら、ディスプレイ2928、入力デバイス2930、スピーカー2948、マイクロフォン2946、アンテナ2942、および電源2944の各々は、インターフェースまたはコントローラなどの、システムオンチップデバイス2922の構成要素に結合され得る。
【0426】
デバイス2900は、ワイヤレス電話、モバイル通信デバイス、モバイルフォン、スマートフォン、セルラーフォン、ラップトップコンピュータ、デスクトップコンピュータ、コンピュータ、タブレットコンピュータ、セットトップボックス、携帯情報端末(PDA)、ディスプレイデバイス、テレビ、ゲーム機、音楽プレーヤ、ラジオ、ビデオプレーヤ、エンターテインメントユニット、通信デバイス、固定ロケーションデータユニット、パーソナルメディアプレーヤ、デジタルビデプレーヤ、デジタルビデオディスク(DVD)プレーヤ、チューナー、カメラ、ナビゲーションデバイス、デコーダシステム、エンコーダシステム、基地局、車両、またはそれらの任意の組合せを含み得る。
【0427】
特定の実装形態では、本明細書で説明したシステムおよびデバイス2900の1つまたは複数の構成要素は、復号システムもしくは装置(たとえば、電子デバイス、コーデック、もしくはその中のプロセッサ)、符号化システムもしくは装置、または両方に組み込まれ得る。他の実装形態では、本明細書で説明したシステムおよびデバイス2900の1つまたは複数の構成要素は、ワイヤレス通信デバイス(たとえば、ワイヤレス電話)、タブレットコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、テレビ、ゲーム機、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、パーソナルメディアプレーヤ、基地局、車両、または別のタイプのデバイスに組み込まれ得る。
【0428】
本明細書で説明したシステムおよびデバイス2900の1つまたは複数の構成要素によって実行される様々な機能は、いくつかの構成要素またはモジュールによって実行されるものとして説明されていることに留意されたい。構成要素およびモジュールのこの分割は、説明のためのものにすぎない。代替の実装形態では、特定の構成要素またはモジュールによって実行される機能が、複数の構成要素またはモジュールに分割され得る。さらに、代替の実装形態では、本明細書で説明したシステムの2つ以上の構成要素またはモジュールが、単一の構成要素またはモジュールに組み込まれ得る。本明細書で説明したシステムに示す各々の構成要素またはモジュールは、ハードウェア(たとえば、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、DSP、コントローラなど)、ソフトウェア(たとえば、プロセッサによって実行可能な命令)、またはそれらの任意の組合せを使用して実装され得る。
【0429】
説明した実装形態とともに、装置が、シフト値および第2のシフト値に基づいてビット割振りを決定するための手段を含む。シフト値は、第2のオーディオ信号に対する第1のオーディオ信号のシフトを示すことができ、第2のシフト値は、シフト値に基づき得る。たとえば、ビット割振りを決定するための手段は、
図19のビットアロケータ1908、ビット割振りを決定するように構成された1つもしくは複数のデバイス/回路(たとえば、コンピュータ可読記憶デバイスに記憶された命令を実行するプロセッサ)、またはそれらの組合せを含み得る。
【0430】
本装置はまた、ビット割振りに基づいて生成された少なくとも1つの符号化された信号を送信するための手段を含み得る。少なくとも1つの符号化された信号は、第1のオーディオ信号の第1のサンプルおよび第2のオーディオ信号の第2のサンプルに基づき得、第2のサンプルは、第2のシフト値に基づく量だけ、第1のサンプルに対して時間シフトされ得る。たとえば、送信するための手段は、
図1および
図19の送信機110を含み得る。
【0431】
同じく説明した実装形態とともに、装置が、第1のオーディオ信号と第2のオーディオ信号との間の時間的不一致の第1の量を示す第1の不一致値を決定するための手段を含む。第1の不一致値は、符号化されるべき第1のフレームに関連付けられる。たとえば、第1の不一致値を決定するための手段は、
図1のエンコーダ114、時間的等化器108、
図2の時間的等化器208、
図5の信号比較器506、補間器510、シフトリファイナ511、シフト変化分析器512、絶対シフト生成器513、プロセッサ2910、コーデック2934、プロセッサ2906、第1の不一致値を決定するように構成された1つもしくは複数のデバイス/回路(たとえば、コンピュータ可読記憶デバイスに記憶された命令を実行するプロセッサ)、またはそれらの組合せを含み得る。
【0432】
本装置はまた、第1のオーディオ信号と第2のオーディオ信号との間の時間的不一致の第2の量を示す第2の不一致値を決定するための手段を含む。第2の不一致値は、符号化されるべき第2のフレームに関連付けられる。符号化されるべき第2のフレームは、符号化されるべき第1のフレームの後にある。たとえば、第2の不一致値を決定するための手段は、
図1のエンコーダ114、時間的等化器108、
図2の時間的等化器208、
図5の信号比較器506、補間器510、シフトリファイナ511、シフト変化分析器512、絶対シフト生成器513、プロセッサ2910、コーデック2934、プロセッサ2906、第2の不一致値を決定するように構成された1つもしくは複数のデバイス/回路(たとえば、コンピュータ可読記憶デバイスに記憶された命令を実行するプロセッサ)、またはそれらの組合せを含み得る。
【0433】
本装置は、第1の不一致値および第2の不一致値に基づいて有効不一致値を決定するための手段をさらに含む。符号化されるべき第2のフレームは、第1のオーディオ信号の第1のサンプルおよび第2のオーディオ信号の第2のサンプルを含む。第2のサンプルは、有効不一致値に少なくとも部分的に基づいて選択される。たとえば、有効不一致値を決定するための手段は、
図1のエンコーダ114、時間的等化器108、
図2の時間的等化器208、信号比較器506、補間器510、シフトリファイナ511、シフト変化分析器512、プロセッサ2910、コーデック2934、プロセッサ2906、有効不一致値を決定するように構成された1つもしくは複数のデバイス/回路(たとえば、コンピュータ可読記憶デバイスに記憶された命令を実行するプロセッサ)、またはそれらの組合せを含み得る。
【0434】
本装置はまた、有効不一致値に少なくとも部分的に基づくビット割振りを有する少なくとも1つの符号化された信号を送信するための手段を含む。少なくとも1つの符号化された信号は、符号化されるべき第2のフレームに少なくとも部分的に基づいて生成される。たとえば、送信するための手段は、
図1および
図19の送信機110を含み得る。
【0435】
本明細書で開示する実装形態に関して説明した様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップは、電子ハードウェアとして、ハードウェアプロセッサなどの処理デバイスによって実行されるコンピュータソフトウェアとして、または両方の組合せとして実装され得ることを、当業者ならさらに理解するであろう。様々な例示的な構成要素、ブロック、構成、モジュール、回路、およびステップについては、それらの機能の点から一般に上述した。そのような機能がハードウェアとして実装されるか実行可能なソフトウェアとして実装されるかは、特定の適用例と、システム全体に課される設計制約とに依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装することができるが、そのような実装の決定が本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
【0436】
本明細書で開示する実装形態に関して説明した方法またはアルゴリズムのステップは、ハードウェアにおいて直接具現化されても、プロセッサによって実行されるソフトウェアモジュールにおいて具現化されても、またはその2つの組合せにおいて具現化されてもよい。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、磁気抵抗ランダムアクセスメモリ(MRAM)、スピントルクトランスファーMRAM(STT-MRAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、またはコンパクトディスク読取り専用メモリ(CD-ROM)などのメモリデバイスに存在し得る。例示的なメモリデバイスは、プロセッサに結合され、それにより、プロセッサは、情報をメモリデバイスから読み取ることおよびメモリデバイスに書き込むことができる。代替として、メモリデバイスは、プロセッサに統合されてよい。プロセッサおよび記憶媒体は、特定用途向け集積回路(ASIC)に存在し得る。ASICは、コンピューティングデバイスまたはユーザ端末に存在し得る。代替として、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末に別個の構成要素として存在し得る。
【0437】
開示した実装形態の上記の説明は、開示した実装形態を当業者が作製または使用できるようにするために提供される。これらの実装形態への様々な変更は当業者には容易に明らかになり、本明細書において規定された原理は、本開示の範囲から逸脱することなく、他の実装形態に適用されてもよい。したがって、本開示は、本明細書に示される実装形態に限定されることを意図するものではなく、以下の特許請求の範囲によって規定される原理および新規の特徴と一致する取り得る最も広い範囲を与えられるべきである。