[0034]本明細書に記載する原理は、たとえば、ヘッドセット、ハンドセット、他のオーディオデバイス、または冗長性に基づくパケット送信エラー回復を実施するように構成されたデバイスの構成要素に適用され得る。その文脈によって明確に限定されない限り、「信号」という用語は、本明細書では、ワイヤ、バス、または他の伝送媒体上で表されるメモリロケーション(またはメモリロケーションのセット)の状態を含む、その通常の意味のいずれをも示すために使用される。その文脈によって明確に限定されない限り、「生成すること(generating)」という用語は、本明細書では、計算すること(computing)または他の何らかの方法で作り出すこと(producing)など、その通常の意味のいずれをも示すために使用される。その文脈によって明確に限定されない限り、「算出すること(calculating)」という用語は、本明細書では、複数の値から計算すること(computing)、評価、平滑化、および/または選択など、その通常の意味のいずれをも示すのに使用される。その文脈によって明確に限定されない限り、「取得すること(obtaining)」という用語は、算出すること(calculating)、導出すること、(たとえば、別の構成要素、ブロックもしくはデバイスから)受信すること、および/または(たとえば、メモリレジスタ、もしくは記憶要素のアレイから)取り出すことなど、その通常の意味のいずれをも示すのに使用される。
[0035]その文脈によって明確に限定されない限り、「作り出すこと(producing)」という用語は、算出すること、生成すること、および/または提供することなど、その通常の意味のいずれをも示すのに使用される。その文脈によって明確に限定されない限り、「提供すること(providing)」という用語は、算出すること、生成すること、および/または作り出すことなど、その通常の意味のいずれをも示すのに使用される。その文脈によって明確に限定されない限り、「結合される」という用語は、直接または間接的な電気または物理接続を示すのに使われる。接続が間接的である場合、「結合」されている構造の間には他のブロックまたは構成要素が存在し得ることが、当業者にはよく理解されよう。
[0036]「構成」という用語は、その特定の文脈によって示されるように、方法、装置/デバイス、および/またはシステムに関して使用され得る。「備える(comprising)」という用語は、本明細書と特許請求の範囲とにおいて使用される場合、他の要素または動作を除外するものではない。「に基づく」(「AはBに基づく」など)という用語は、(i)「少なくとも〜に基づく」(たとえば、「Aは少なくともBに基づく」)、および特定の文脈で適当な場合に、(ii)「に等しい」(たとえば、「AはBに等しい」)という場合を含む、その通常の意味のいずれをも示すのに使用される。AがBに基づく(i)が、〜に少なくとも基づくことを含む場合、これは、AがBに結合される構成を含み得る。同様に、「に応答して」という用語は、「少なくとも〜に応答して」を含む、その通常の意味のいずれをも示すために使用される。「少なくとも1つの」という用語は、「1つまたは複数の」を含む、その通常の意味のいずれをも示すのに使われる。「少なくとも2つの」という用語は、「2つ以上の」を含む、その通常の意味のいずれをも示すのに使われる。
[0037]「装置」および「デバイス」という用語は、特定の文脈によって別段に規定されていない限り、一般的に、互換的に使用される。別段に規定されていない限り、特定の特徴を有する装置の動作のいかなる開示も、類似の特徴を有する方法を開示する(その逆も同様)ことをも明確に意図し、特定の構成による装置の動作のいかなる開示も、類似の構成による方法を開示する(その逆も同様)ことをも明確に意図する。「方法」、「プロセス」、「プロシージャ」、および「技法」という用語は、特定の文脈によって別段に規定されていない限り、一般的に、互換的に使用される。「要素」および「モジュール」という用語は、より大きな構成の一部を示すのに使用され得る。「パケット」という用語は、1つまたは複数のフレームに対応し得る。文書の一部分の参照による任意の組込みは、その部分内で言及された用語または変数の定義が、文書中の他の場所に現れ、ならびに組み込まれた部分で参照される任意の図に現れた場合、そのような定義を組み込んでいることも理解されたい。
[0038]本明細書で使用する「通信デバイス」という用語は、ワイヤレス通信ネットワークを通したボイスおよび/またはデータ通信のために使用され得る電子デバイスを指す。通信デバイスの例としては、セルラーフォン、携帯情報端末(PDA)、ハンドヘルドデバイス、ヘッドセット、ワイヤレスモデム、ラップトップコンピュータ、パーソナルコンピュータなどがある。
[0039]図1を参照すると、冗長性に基づくエラー回復を実施するように動作可能なシステムの特定の例示的態様が開示され、全体が100で指定される。システム100は、ネットワーク190を介して1つまたは複数の他のデバイス(たとえば、ソースデバイス104)と通信している宛先デバイス102を含み得る。ソースデバイス104は、マイクロフォン146を含み得るか、またはそれに結合され得る。宛先デバイス102は、スピーカー142を含み得るか、またはそれに結合され得る。宛先デバイス102は、メモリ176に結合されているか、またはそれと通信しているアナライザ122を含み得る。宛先デバイス102は、受信機124、送信機192、バッファ126、音声デコーダ156、またはそれらの組合せを含み得る。メモリ176は、分析データ120を記憶するように構成され得る。分析データ120は、取り出された部分コピーカウント106、喪失パケットのカウント114、再送信カウント154、品質メトリック128、増分閾値(increment threshold)136、減分閾値138、増分量140、減分量150、結果値118、エラー回復パラメータ108、またはそれらの組合せを含み得る。エラー回復パラメータ108は、バッファ深度110、再送信閾値112、またはその両方を含み得る。
[0040]宛先デバイス102は、図1に示すよりも少ない、または図1に示すよりも多くの構成要素を含み得る。たとえば、宛先デバイス102は、1つもしくは複数のプロセッサ、1つもしくは複数のメモリユニット、またはその両方を含み得る。宛先デバイス102は、ネットワーク化または分散型コンピューティングシステムを含み得る。たとえば、メモリ176は、ネットワーク化または分散型メモリであり得る。特定の例示的態様では、宛先デバイス102は、通信デバイス、デコーダ、スマートフォン、セルラーフォン、モバイル通信デバイス、ラップトップコンピュータ、コンピュータ、タブレット、携帯情報端末(PDA)、セットトップボックス、ビデオプレーヤ、娯楽ユニット、ディスプレイデバイス、テレビ、ゲーム機、音楽プレーヤ、ラジオ、デジタルビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、チューナー、カメラ、ナビゲーションデバイス、またはそれらの組合せを含み得る。そのようなデバイスは、ユーザインターフェース(たとえば、タッチスクリーン、ボイス認識能力、または他のユーザインターフェース能力)を含むことができる。
[0041]動作中、第1のユーザ152は、第2のユーザ194とのボイスコールに関与し得る。ボイスコールのために、第1のユーザ152は宛先デバイス102を使用し得、第2のユーザ194はソースデバイス104を使用し得る。ボイスコール中、第2のユーザ194は、ソースデバイス104に関連付けられたマイクロフォン146に向かって話すことができる。入力音声信号130は、第2のユーザ194によって話される、単語の一部分、1つの単語、または複数の単語に対応し得る。たとえば、入力音声信号130は、第1のデータ164と第2のデータ166とを含み得る。ソースデバイス104は、第2のユーザ194から、マイクロフォン146を介して入力音声信号130を受信し得る。特定の態様では、マイクロフォン146はオーディオ信号をキャプチャすることができ、アナログデジタル変換器(ADC)は、キャプチャされたオーディオ信号を、アナログ波形から、デジタルオーディオサンプルからなるデジタル波形に変換することができる。デジタルオーディオサンプルは、デジタル信号プロセッサによって処理され得る。利得調整器が、オーディオ信号(たとえば、アナログ波形またはデジタル波形)の振幅レベルを増大または減少させることによって、(たとえば、アナログ波形またはデジタル波形の)利得を調整し得る。利得調整器は、アナログまたはデジタルドメインのいずれかにおいて動作し得る。たとえば、利得調整器は、デジタルドメインにおいて動作することができ、アナログデジタル変換器によって作り出されたデジタルオーディオサンプルを調整することができる。利得調整した後、エコーキャンセラが、マイクロフォン146に入る、スピーカーの出力によって作成された可能性があるエコーを低減し得る。デジタルオーディオサンプルは、ボコーダ(ボイスエンコーダデコーダ)によって「圧縮」され得る。エコーキャンセラの出力は、ボコーダ前処理ブロック、たとえば、フィルタ、ノイズプロセッサ、レート変換器などに結合され得る。ボコーダのエンコーダは、デジタルオーディオサンプルを圧縮し、パケットのシーケンス(たとえば、第1のパケット132および第2のパケット134)を形成することができる。パケットのシーケンスの各々は、デジタルオーディオサンプルの圧縮ビットの表現を含み得る。たとえば、第1のパケット132は、パケットのシーケンス中で、第2のパケット134よりも前(earlier)であり得る。例を挙げれば、第1のパケット132は、特定のオーディオフレーム(たとえば、オーディオフレームN)に対応する第1のデータ164を含み得、第2のパケット134は、後続オーディオフレーム(たとえば、オーディオフレームN+2)に対応する第2のデータ166を含み得る。
[0042]特定の態様では、後続パケット(たとえば、第2のパケット134)は、前のオーディオフレーム(たとえば、オーディオフレームN)を復元するのに使われ得る冗長データ(たとえば、第1のパケット132の部分コピー)も含み得る。たとえば、第2のパケット134は、第1のデータ164の少なくとも一部分に対応する第1の部分コピー174を含み得る。特定の態様では、冗長データ(たとえば、第1の部分コピー174)は、「重大(critical)」音声フレームに対応し得る。たとえば、重大音声フレームの喪失は、宛先デバイス102において生成される、処理された音声信号のオーディオ品質の、ユーザが認知可能な低下を引き起こす場合がある。
[0043]特定の態様では、ソースデバイス104および宛先デバイス102は、固定ビットレート(たとえば、13.2キロビット毎秒(kbps))のチャネル上で動作し得る。この態様では、1次データ(たとえば、第2のデータ166)に対応する1次フレームビットレートは、冗長データ(たとえば、第1の部分コピー174)に適合するように、(たとえば、9.6kbpsまで)低減され得る。たとえば、固定ビットレートの残りのビットレート(たとえば、3.6kbps)は、冗長データに対応し得る。特定の態様では、1次フレームビットレートの低減は、全体的音声品質に対する影響を低減するように、入力音声信号130の特性に応じて、ソースデバイス104において実施され得る。
[0044]パケット(たとえば、パケット132および134)のシーケンスは、ソースデバイス104のプロセッサと共有され得るメモリに記憶され得る。プロセッサは、デジタル信号プロセッサと通信している制御プロセッサであり得る。
[0045]ソースデバイス104は、パケット(たとえば、第1のパケット132、第2のパケット134、またはその両方)のシーケンスを、ネットワーク190を介して宛先デバイス102に送信し得る。たとえば、ソースデバイス104はトランシーバを含み得る。トランシーバは、何らかの形の、パケットのシーケンスを変調することができる(たとえば、他の情報がパケット132および134に添付され得る)。トランシーバは、変調された情報を、アンテナを介してオーバージエアで送ることができる。
[0046]宛先デバイス102のアナライザ122は、パケットのシーケンスの1つまたは複数のパケット(たとえば、第1のパケット132、第2のパケット134、またはその両方)を受信し得る。たとえば、宛先デバイス102のアンテナは、第1のパケット132、第2のパケット134、またはその両方を含む何らかの形の着信パケットを受信し得る。第1のパケット132、第2のパケット134、またはその両方は、宛先デバイス102において、ボコーダのデコーダによって「圧縮されていない(uncompressed)」場合がある。圧縮されていない波形は、復元(reconstructed)オーディオサンプルと呼ばれ得る。復元オーディオサンプルは、ボコーダ後処理ブロックによって後処理され得、エコーキャンセラが、復元オーディオサンプルに基づいてエコーを除去し得る。明快のために、ボコーダのデコーダおよびボコーダ後処理ブロックは、ボコーダデコーダモジュールと呼ばれる場合がある。いくつかの構成において、エコーキャンセラの出力はアナライザ122によって処理され得る。代替として、他の構成では、ボコーダデコーダモジュールの出力はアナライザ122によって処理され得る。
[0047]アナライザ122は、宛先デバイス102によって受信されたパケット(たとえば、第1のパケット132、第2のパケット134、またはその両方)をバッファ126(たとえば、デジッタバッファ)に記憶することができる。特定の態様では、パケットは、宛先デバイス102において、順序が乱れて受信される場合がある。アナライザ122は、バッファ126中の1つまたは複数のパケットを、パケットの順序が乱れている場合は並べ替えることができる。ソースデバイス104によって送られたパケットのシーケンスの1つまたは複数のパケットは、宛先デバイス102によって、受信されない場合もあり、エラーありで受信される場合もある。たとえば、パケット(たとえば、第1のパケット132)は、受信機124によって、パケット喪失により受信されない場合もあり、ネットワーク状態により、部分的に受信される場合もある。
[0048]アナライザ122は、パケットのシーケンスのうちの特定のパケットがバッファ126から消失しているかどうか決定することができる。たとえば、バッファ126中の各パケットはシーケンス番号を含み得る。アナライザ122は、分析データ120中のカウンタ(たとえば、次のシーケンス番号)を維持することができる。たとえば、次のシーケンス番号は、開始値(たとえば、0)を有し得る。アナライザ122は、特定の入力信号(たとえば、入力音声信号130)に対応する各パケットを処理した後、次のシーケンス番号を更新する(たとえば、1だけ増分(increment)する)ことができる。アナライザ122は、特定の入力信号(たとえば、入力音声信号130)に対応する最後のパケットを処理した後、次のシーケンス番号を開始値にリセットし得る。
[0049]アナライザ122は、バッファ126が、次のシーケンス番号を有する次のパケット(たとえば、第1のパケット132)を含むと決定し得る。アナライザ122は、少なくとも次のパケット(たとえば、第1のパケット132)に基づいて、処理された音声信号を生成することができる。特定の態様では、アナライザ122は、第1のパケット132を音声デコーダ156に与え、音声デコーダ156は、処理された音声信号を生成し得る。アナライザ122(または音声デコーダ156)は、第1のパケット132および第2のパケット134に基づいて、処理された音声信号を生成することができる。処理された音声信号は、第1のパケット132の第1のデータ164および第2のパケット134の第2のデータ166に対応し得る。アナライザ122(または音声デコーダ156)は、処理された音声信号を、スピーカー142を介して第1のユーザ152に出力し得る。アナライザ122は、次のシーケンス番号を更新する(たとえば、増分またはリセットする)ことができる。
[0050]アナライザ122は、ソースデバイス104によって送られたパケットのシーケンスの特定のパケット(たとえば、第1のパケット132)がバッファ126から消失しているかどうか決定することができる。たとえば、アナライザ122は、次のシーケンス番号を有する次のパケット(たとえば、第1のパケット132)をバッファ126が記憶していないと決定したことに基づいて、第1のパケット132が消失していると決定し得る。例を挙げれば、アナライザ122は、次のシーケンス番号に対応するパケット(たとえば、第1のパケット132)がバッファ126中で見つからないと決定したことに応答して、第1のパケット132が消失していると決定することができる。アナライザ122は、第1のパケット132の部分コピーが、バッファ126に記憶されている別のパケット(たとえば、第2のパケット134)中のエラー訂正データとしてバッファ126に記憶されているかどうか決定することができる。たとえば、各パケットのヘッダ中の1つまたは複数のフィールドが、パケットがエラー訂正データを含むかどうかを示すことができ、対応するパケットを示すことができる。アナライザ122は、バッファ126に記憶された1つまたは複数のパケット(たとえば、第2のパケット134)の特定のフィールドを調べ得る。たとえば、バッファ126は第2のパケット134を記憶している場合がある。第2のパケット134のヘッダ中の特定のフィールドは、第2のパケット134が、第1のパケット132に対応するエラー訂正データを含むことを示し得る。たとえば、特定のフィールドは、第1のパケット132のシーケンス番号を示し得る。アナライザ122は、第2のパケット134の特定のフィールドが第1のパケット132のシーケンス番号を示すと決定したことに基づいて、第1のパケット132の部分コピーがバッファ126に記憶されていると決定し得る。アナライザ122は、第1のパケット132がバッファ126から消失している、およびバッファ126が第1のパケット132の部分コピーを記憶している、と決定したことに応答して、取り出された部分コピーカウント106を更新し得る。
[0051]アナライザ122は、少なくとも次のパケット(たとえば、第2のパケット134)に基づいて、処理された音声信号116を生成することができる。たとえば、アナライザ122は、第1の部分コピー174および第2のデータ166に基づいて、処理された音声信号116を生成することができる。第1の部分コピー174は、第1のパケット132の第1のデータ164の少なくとも一部分を含み得る。特定の態様では、第1のデータ164は、第1の音声フレームの第1の音声パラメータに対応し得る。第1の部分コピー174は、第1の音声パラメータを含み得る。特定の態様では、第2のデータ166は、第2の音声フレームの第2の音声パラメータに対応し得、第1の部分コピー174は、第1の音声パラメータと第2の音声パラメータとの間の差に対応し得る。この態様では、アナライザ122は、第2の音声パラメータと第1の部分コピー174の和に基づいて、第1の音声パラメータを生成することができる。
[0052]アナライザ122は、第1の音声パラメータに基づいて、処理された音声信号116を生成することができる。第2のパケット134中のエラー訂正データとして第1の部分コピー174を有していれば、特定の音声フレームに対応する第1のパケット132がバッファ126から消失しているときであっても、特定の音声フレームの第1の音声パラメータに基づいて、処理された音声信号116の生成が可能になり得ることが諒解されよう。
[0053]特定の態様では、アナライザ122は、第1の部分コピー174、第2のパケット134、または第1の音声パラメータを音声デコーダ156に与えることができ、音声デコーダ156は、処理された音声信号116を生成することができる。アナライザ122(または音声デコーダ156)は、処理された音声信号116を、スピーカー142を介して第1のユーザ152に出力し得る。アナライザ122は、次のシーケンス番号を更新する(たとえば、増分またはリセットする)ことができる。処理された音声信号116は、第2のデータ166のみに基づいて生成された、処理された音声信号よりも優れたオーディオ品質を有する場合がある。たとえば、第1の部分コピー174および第2のデータ166に基づいて生成された、処理された音声信号116は、第2のデータ166に基づくとともに第1のデータ164(または第1の部分コピー174)に基づかずに生成された、処理された音声信号よりも、ユーザ認知可能なアーチファクトが少ない場合がある。
[0054]特定の態様では、アナライザ122は、第1のパケット132および第2のパケット134がバッファ126から消失していると決定し得る。たとえば、アナライザ122は、第1のパケット132がバッファ126から消失していると決定し得、およびバッファ126が第1のパケット132の部分コピーを別のパケット中のエラー訂正データとして記憶していないと決定し得る。例を挙げれば、アナライザ122は、第1のパケット132のシーケンス番号が、バッファ126に記憶されている、入力音声信号130に対応するパケットのうちのいずれかの特定のフィールドによって示されないと決定し得る。アナライザ122は、第1のパケット132および第2のパケット134がバッファ126から消失していると決定したことに基づいて、喪失パケットのカウント114を更新し得る。特定の態様では、アナライザ122は、第1のパケット132がバッファ126から消失していることと、バッファ126が、第1のパケット132の部分コピーを含むパケット(たとえば、第2のパケット134)を記憶していないこととを反映するように、喪失パケットのカウント114を更新する(たとえば、1だけ増分する)ことができる。アナライザ122は、次のシーケンス番号を更新する(たとえば、増分またはリセットする)ことができる。
[0055]アナライザ122は、図2〜図3を参照して記載するように、喪失パケットのカウント114、取り出された部分コピーカウント106、またはその両方に基づいて、エラー回復パラメータ108を調整することができる。たとえば、アナライザ122は、喪失パケットのカウント114、取り出された部分コピーカウント106、またはその両方に基づいて結果値118を決定し得る。特定の態様では、結果値118は、喪失パケットのカウント114と取り出された部分コピーカウント106の加重和であり得る。特定の態様では、アナライザ122は、喪失パケットのカウント114(たとえば、1の重みを有する)と加重値の和に基づいて、結果値118を決定することができる。アナライザ122は、取り出された部分コピーカウント106を品質メトリック128で乗算することによって、加重値を決定することができる。品質メトリック128は、デフォルト値、ユーザ提供値、またはその両方であり得る。品質メトリック128は、取り出された部分コピーカウント106に割り当てられた重み(たとえば、0以上1以下)に対応し得る。
[0056]特定の態様では、品質メトリック128は、取り出された部分コピーの品質の測度(measure)であり得る。例を挙げれば、取り出された部分コピーの品質の測度がより高いときには、品質メトリック128は、より低い重みに対応し得る。アナライザ122は、取り出された部分コピー(たとえば、第1の部分コピー174)に対応するデータ(たとえば、音声パラメータ)と、前のオーディオフレームに対応する、前のパケットから取り出された前のデータ(たとえば、前の音声パラメータ)との間の差に基づいて、品質の測度を決定し得る。たとえば、アナライザ122は、特定の閾値を満足する、音声パラメータと前の音声パラメータとの間の差に基づいて、品質の測度を決定し得る。取り出された部分コピー(たとえば、第1の部分コピー174)が、十分に異なるパラメータに対応する場合、取り出された部分コピー(たとえば、第1の部分コピー174)に基づいて、処理された音声信号116を生成すると、対応する1次パケット(たとえば、第1のパケット132)がバッファ126に記憶されていないとき、処理された音声信号116のオーディオ品質を大幅に向上させることができる。アナライザ122は、取り出された部分コピー(たとえば、第1の部分コピー174)が、前のパケットとは十分に異なるパラメータに対応するとき、より高い品質測度を決定することができる。
[0057]特定の態様では、取り出された部分コピーカウント106には、喪失パケットのカウント114よりも低い重みが割り当てられ得る。取り出された部分コピーのカウントに、より低い重みを割り当てると、部分的冗長性が、エラー回復パラメータの調整に対する、対応する消失パケットの影響を低減することが可能になり得る。部分的冗長性を有すると、冗長性をもたない場合よりも、より小さいバッファの使用、より少ない再送信要求、またはその両方が可能になり得ることが諒解されよう。
[0058]アナライザ122は、結果値118に基づいて、エラー回復パラメータ108(たとえば、バッファ深度110、再送信閾値112、またはその両方)を調整することができる。たとえば、アナライザ122は、図2〜図3を参照して記載するように、結果値118が増分閾値136を満足すると決定したことに応答して、増分量140に基づいてエラー回復パラメータ108を増分(increment)し得る。特定の態様では、結果値118は、処理された音声信号のオーディオ品質の、認知可能な低下をもたらし得る、高いパケット喪失という状態において増分閾値136を満足し得る。アナライザ122は、喪失パケットの部分コピーが別のパケット中のエラー訂正データとしてバッファ中にある見込みを増大させるように、バッファ深度110を増分し得る。アナライザ122は、宛先デバイス102が、喪失パケットの再送信を要求するためのより多くの再送信メッセージ(たとえば、再送信メッセージ144)をソースデバイス104に送ることを可能にするように、再送信閾値112を増分し得る。宛先デバイス102は、再送信されたパケットに基づいて、処理された音声信号を生成することができ、処理された音声信号のオーディオ品質が向上し得る。
[0059]別の例として、アナライザ122は、図2〜図3を参照して記載するように、結果値118が減分閾値138を満足すると決定したことに応答して、減分量150に基づいてエラー回復パラメータ108を減分(decrement)し得る。特定の態様では、結果値118は、低いパケット喪失という状態において減分閾値138を満足し得る。アナライザ122は、バッファ126によるメモリ使用を減少させるように、バッファ深度110を減分し得る。アナライザ122は、喪失パケットの再送信を要求するために宛先デバイス102によって送られる再送信メッセージ(たとえば、再送信メッセージ144)の数を低減するように、再送信閾値112を減分し得る。より少ない再送信メッセージは、再送信メッセージの送付およびパケットの再送信に関連付けられた帯域幅使用の低減をもたらし得る。
[0060]特定の態様では、エラー回復パラメータ108は、最大値、最小値、またはその両方を有し得る。この態様では、アナライザ122は、最小値および最大値によって定められた範囲内で、エラー回復パラメータ108を調整することができる。
[0061]増分閾値136、減分閾値138、増分量140、および減分量150のうちの1つまたは複数は、各エラー回復パラメータについて別個の値または同じ値を有し得る。たとえば、バッファ深度110に対応する増分閾値136、減分閾値138、増分量140、および減分量150のうちの1つまたは複数は、再送信閾値112に対応する増分閾値136、減分閾値138、増分量140、および減分量150のうちの1つまたは複数とは別個のものであり得る。
[0062]増分閾値136、減分閾値138、増分量140、減分量150、またはそれらの組合せは、デフォルト値であり得る。特定の態様では、アナライザ122は、増分量140、減分量150、またはその両方を動的に決定することができる。たとえば、アナライザ122は、結果値118と増分閾値136との間の差に基づいて増分量140を決定することができる。別の例として、アナライザ122は、結果値118と減分閾値138との間の差に基づいて減分量150を決定することができる。
[0063]特定の態様では、アナライザ122は、結果値118に基づいてエラー回復パラメータ108の調整量を決定することができ、エラー回復パラメータ108を調整するのを、調整量に基づいて後の時間に遅延させ得る。たとえば、アナライザ122は、第1の数(たとえば、10個)のパケットに基づいて調整量を繰り返し決定することができ、第1の数のパケットを処理するのに続いて、エラー回復パラメータ108を調整し得る。別の例として、宛先デバイス102は、ソースデバイス104からのバースト中でパケットを受信し得る。たとえば、第2のユーザ194は、通話の間に一時停止(pause)する場合があり、パケットの各バーストは、一時停止の間の第2のユーザ194の音声に対応し得る。アナライザ122は、一時停止中の調整量に基づいてエラー回復パラメータ108を調整することができ、そうすることによって、パケットの次のバーストは、調整されたエラー回復パラメータ108に基づいて処理され、また、エラー回復パラメータ108の調整がユーザにとって認知可能にならない場合がある。
[0064]特定の態様では、アナライザ122は、再送信カウント154、再送信閾値112、またはその両方に基づいて、特定のパケット(たとえば、第1のパケット132)の再送信を要求し得る。たとえば、アナライザ122は、再送信カウント154が再送信閾値112を満足する、および第1のパケット132がバッファ126から消失している、と決定したことに基づいて、送信機192を介して、ソースデバイス104に再送メッセージ144を送ることができる。再送メッセージ144は、第1のパケット132の再送信を要求し得る。
[0065]再送信カウント154は、デフォルトの初期値を有し得る。アナライザ122は、再送メッセージ144を送ったことに基づいて、再送信カウント154を更新する(たとえば、増分する)ことができる。特定の態様では、再送信カウント154は特定の時間期間に関連付けられ得る。たとえば、再送信カウント154は、特定の時間期間(たとえば、前の5分間)中にアナライザ122によって送られた再送メッセージの数を示し得る。
[0066]ソースデバイス104は、再送メッセージ144を受信したことに応答して、第1のパケット132を再送信し得る。この態様では、アナライザ122は、再送信された第1のパケット132を受信することができ、再送信された第1のパケット132からの少なくとも第1のデータ164に基づいて、処理された音声信号を生成することができる。たとえば、アナライザ122は、バッファ126が第2のパケット134を記憶していると決定したことに応答して、再送信された第1のパケット132からの第1のデータ164と、第2のパケット134からの第2のデータ166とに基づいて、処理された音声信号を生成することができる。特定の態様では、再送メッセージ144の送付(sending)および再送信された第1のパケット132の受信(receiving)に関連付けられた往復遅延(たとえば、8ミリ秒(ms)〜16ms)が存在し得る。たとえば、ソースデバイス104と宛先デバイス102との間に、最大数(たとえば、8個)のハイブリッド自動再送要求(HARQ)インスタンスが存在し得る。ソースデバイス104は、第1のHARQインスタンス中に第1のパケット132を送ることができる。宛先デバイス102は、第2のHARQインスタンス中に再送メッセージ144を送ることができる。ソースデバイス104は、第3のHARQインスタンス中に、再送信された第1のパケット132を送ることができる。往復遅延(たとえば、8ms〜16ms)は、第1のHARQインスタンスと第3のHARQインスタンスとの間の時間差に対応し得る。
[0067]特定の実装形態では、送信タイムラインは、サブフレームのユニットに区分され得る。各サブフレームは、所定の持続時間、たとえば、1ミリ秒(ms)をカバーし得る。ソースデバイス104は、宛先デバイス102に送るべきデータを有する場合があり、データシンボルを取得するために、選択されたトランスポートフォーマットに従って、第1のパケット132を処理することができる。トランスポートフォーマットは、レート、パケットフォーマット、変調およびコーディング方式(MCS)などに対応し得る。ソースデバイス104は、第1のパケット132ならびに制御情報からなる第1の送信を、サブフレームtにおいて宛先デバイス102に送ることができる。制御情報は、選択されたトランスポートフォーマット、データ送信に使われる無線リソースなどを示し得る。宛先デバイス102は、選択されたトランスポートフォーマットに従って、第1の送信を受信し、処理することができる。宛先デバイス102が、第1のパケット132の復号に成功しなかった(たとえば、エラーに遭遇するか、または予想されるときに第1のパケット132が受信されなかった場合、宛先デバイス102は、サブフレームt+Δにおいて否定応答(NAK)を送ることができる。
[0068]NAKは、再送信要求として作用する。したがって、ソースデバイス104は、NAKを受信し、第1のパケット132の第2の送信をサブフレームt+Mにおいて送ることができる。宛先デバイス102は、第1のパケット132を復号することを再度試み得る。エラーが起きた場合、宛先デバイス102は別のNAKを(たとえば、サブフレームt+M+Δにおいて)送ることができる。サブフレームtにおける初回送信の後の第1のパケット132の各送信は、HARQ送信と呼ばれる場合があり、第1のパケット132についての異なる冗長性情報(たとえば、データシンボルの異なるセット)を含み得る。
[0069]システム100は、同期HARQおよび/または非同期HARQをサポートし得る。同期HARQの場合、パケット(たとえば、第1のパケット132)の送信は、送信機(たとえば、ソースデバイス104)および受信機(たとえば、宛先デバイス102)によって事前(a priori)に知られているサブフレームにおいて送られ得る。非同期HARQの場合、パケット(たとえば、第1のパケット132)の送信は、1つまたは複数のサブフレームにおいて、スケジュールされ、送られ得る。特定の実装形態では、システム100は、HARQ、自動再送要求(ARQ)、別の再送信プロトコル、またはそれらの組合せをサポートすることができる。
[0070]特定の態様では、アナライザ122は、再送信カウント154が再送信閾値112を満足できないとの決定、特定のパケット(たとえば、第1のパケット132)がバッファ126に記憶されているとの決定、特定のパケット(たとえば、第1のパケット132)の部分コピー(たとえば、第1の部分コピー174)がバッファ126に記憶されているとの決定、またはそれらの組合せに基づいて、特定のパケット(たとえば、第1のパケット132)の再送信を要求するのを控え得る。再送信された第1のパケット132に基づいて、処理された音声信号116を生成すると、処理された音声信号116は、より優れたオーディオ品質を有することになり得、第1の部分コピー174に基づいて、処理された音声信号116を生成すれば、処理された音声信号116が、再送信された第1のパケット132の要求および受信に関連付けられた往復遅延(たとえば、8ms〜16ms)なしで生成され得ることが諒解されよう。
[0071]特定の態様では、アナライザ122は、バッファ深度110に基づいてパケットをドロップ(drop)させ得る。たとえば、アナライザ122は、バッファ126に記憶されたパケットの数(または総サイズ)がバッファ深度110を満足すると決定し得る。アナライザ122は、後続パケットを受信したことに応答して、後続パケットをバッファ126に記憶するのを控えることができ、または1つまたは複数の他のパケットをバッファ126から削除することができる。たとえば、アナライザ122は、最も長い持続時間だけバッファ126中にあったパケットを削除し得、別のパケットに対応するエラー訂正データを含まないパケットを削除し得、またはその両方を行い得る。
[0072]したがって、システム100は、喪失パケットの再送信なしで、喪失パケットのデータの部分的回復を可能にし得る。たとえば、アナライザ122は、第1のパケット132がバッファ126に記憶されていないと決定したことに応答して、第2のパケット134から第1の部分コピー174を回復することができる。別の特定の利点は、取り出された部分コピーのカウント、喪失パケットのカウント、またはその両方に基づいて、動的にエラー回復パラメータを調整することである。たとえば、アナライザ122は、取り出された部分コピーカウント106、喪失パケットのカウント114、またはその両方に基づいて、エラー回復パラメータ108を動的に調整することができる。したがって、エラー回復パラメータ108は、ネットワーク状態、受信パケット中での冗長性の程度、またはその両方に応じ得る。
[0073]図2を参照すると、冗長性に基づくパケット送信エラー回復の方法の特定の例示的態様が開示され、全体が200で指定される。特定の態様では、方法200は図1のアナライザ122によって実施され得る。図2は、喪失パケットのカウント114、取り出された部分コピーカウント106、またはその両方に基づく、図1のバッファ深度110の調整を示す。たとえば、バッファ深度110の調整は、喪失パケットのカウント114(p)の関数であり、取り出された部分コピーカウント106(q)の関数であり、または喪失パケットのカウント114(p)および取り出された部分コピーカウント106(q)の関数であり得る。
[0074]方法200は、202において、受信機によって、符号化音声フレームR(N)を時間Nにおいて受信することを含む。たとえば、図1の受信機124は、図1を参照して記載したように、入力音声信号130の特定のオーディオフレームに対応する特定のパケットを受信し得る。
[0075]方法200は、また、204において、次の音声フレームR(N−D)がデジッタバッファ中で入手可能かどうか決定することを含む。たとえば、アナライザ122は、図1を参照して記載したように、次のパケットがバッファ126に記憶されているかどうか決定し得る。次のパケットは、次のシーケンス番号を有し得る。特定の態様では、アナライザ122は、前に処理されたパケットのシーケンス番号を増分することによって、次のシーケンス番号を決定し得る。代替態様では、アナライザ122は、直近に受信されたパケットのシーケンス番号(たとえば、N)とバッファ深度110(たとえば、D)との間の差に基づいて、次のシーケンス番号を決定し得る。この態様では、バッファ深度110は、バッファ126に記憶されるべきパケットの最大数を示し得る。アナライザ122は、次のシーケンス番号に対応する次のパケット(たとえば、第1のパケット132)がバッファ126に記憶されているかどうか決定することができる。
[0076]方法200は、204において、次の音声フレームR(N−D)がデジッタバッファ中で入手可能であると決定したことに応答して、206において、次の音声フレームR(N−D)を音声デコーダに与えることをさらに含む。たとえば、アナライザ122は、次のパケット(たとえば、第1のパケット132)がバッファ126に記憶されていると決定したことに応答して、図1を参照して記載したように、第1のパケット132を音声デコーダ156に与えることができる。
[0077]方法200は、また、204において次の音声フレームR(N−D)がデジッタバッファ中で入手不可能であると決定したことに応答して、208において、次の音声フレームR(N−D)の部分コピーがデジッタバッファ中で入手可能かどうか決定することを含む。たとえば、図1のアナライザ122は、第1のパケット132がバッファ126に記憶されていないと決定したことに応答して、図1を参照して記載したように、第1のパケット132の部分コピーがバッファ126に記憶されているかどうか決定し得る。例を挙げれば、アナライザ122は、第1の部分コピー174を有する第2のパケット134がバッファ126に記憶されているかどうか決定することができる。
[0078]方法200は、208において次の音声フレームR(N−D)の部分コピーがデジッタバッファ中で入手可能であると決定したことに応答して、206において、次の音声フレームR(N−D)の部分コピーを音声デコーダに与えることと、210において、M個の前のフレーム期間中に取り出された部分コピーの数(q)を決定することとをさらに含む。たとえば、図1のアナライザ122は、第2のパケット134がバッファ126中に含まれる、および第2のパケット134が第1のパケット132の第1の部分コピー174を含む、と決定したことに応答して、音声デコーダ156に第2のパケット134を与え得る。特定の態様では、アナライザ122は、第1の部分コピー174を音声デコーダ156に与え得る。アナライザ122はまた、図1を参照して記載したように、取り出された部分コピーカウント106を更新し得る。たとえば、取り出された部分コピーカウント106は、特定のフレーム数、特定の時間期間、またはその両方に対応し得る。特定のフレーム数(M)は、デフォルト値に対応し得る。特定の態様では、特定のフレーム数(M)は、アナライザ122によって、またはユーザ(たとえば、第1のユーザ152)によって選択され得る。特定の態様では、特定のフレーム数(M)は適応的であり得る。たとえば、アナライザ122は、特定のフレーム数(M)を経時的に更新することができる。特定の態様では、アナライザ122は、特定の時間期間(たとえば、5分間)中にバッファ深度110が調整された回数に基づいて、特定のフレーム数(M)を更新し得る。たとえば、アナライザ122は、特定の時間期間中にバッファ深度110が調整された回数が調整閾値を満足すると決定したことに応答して、特定のフレーム数(M)を更新する(たとえば、増大(increase)または減少(decrease)させる)ことができる。
[0079]特定の態様では、取り出された部分コピーカウント106は、特定の数(M個)の直近に処理されたパケットから取り出された部分コピーの数を示し得る。たとえば、アナライザ122によって直近に処理された特定の数(たとえば、10個)のパケットから、アナライザ122は、第1の数(たとえば、7つ)のパケットを受信するのに成功している場合があり、アナライザ122は、アナライザ122による受信に成功しなかった第2の数(たとえば、2つ)のパケットについての部分コピーを取り出している場合があり、部分コピーは、アナライザ122による受信に成功しなかったパケットのうちの残りの数(たとえば、1つ)について入手不可能であった場合がある。この例では、取り出された部分コピーカウント106は、直近に処理されたパケットのうちの特定の数(たとえば、10個)のうちの第2の数(たとえば、2つ)のパケットについて、部分コピーが取り出されたことを示し得る。
[0080]代替態様では、取り出された部分コピーカウント106は、特定の時間期間(たとえば、前の5分間)中に取り出された部分コピーの数を示し得る。たとえば、アナライザ122は、特定の時間期間(たとえば、前の5分間)中に特定の数(たとえば、20個)のパケットを受信し得る。特定の数(たとえば、20個)のパケットから、アナライザ122は、第1の数(たとえば、12個)のパケットを受信するのに成功している場合があり、アナライザ122は、アナライザ122による受信に成功しなかった第2の数(たとえば、6つ)のパケットについての部分コピーを取り出している場合があり、部分コピーは、アナライザ122による受信に成功しなかったパケットのうちの残りの数(たとえば、2つ)について入手不可能であった場合がある。この例では、取り出された部分コピーカウント106は、特定の時間期間(たとえば、前の5分間)中にアナライザ122によって受信された第2の数(たとえば、6つ)のパケットについて、部分コピーが取り出されたと示し得る。方法200は214に進み得る。
[0081]方法200は、また、208において次の音声フレームR(N−D)の部分コピーがデジッタバッファ中で入手不可能であると決定したことに応答して、212において、M個の前のフレーム期間中に喪失されたパケットの数(p)を決定することを含む。たとえば、図1のアナライザ122は、第2のパケット134がバッファ126に記憶されていないと決定したことに応答して、図1を参照して記載したように、喪失パケットのカウント114を更新し得る。例を挙げれば、アナライザ122は、第1のパケット132の部分コピー(たとえば、第1の部分コピー174)がパケット中に含まれていることを示すパケット(たとえば、第2のパケット134)をバッファ126が記憶していないと決定することができる。
[0082]方法200は、214において、M個の前のフレーム期間中に喪失されたパケットの数(p)と、M個の前のフレーム期間中に取り出された部分コピーの数(q)とに基づいて、結果値(r)を決定することをさらに含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、喪失パケットのカウント114(p)、取り出された部分コピーカウント106(q)、またはその両方に基づいて、結果値118(r)を決定することができる。図2に示す例において、r=f(p,q)である。結果値118(r)は、喪失パケットのカウント114(p)の関数であり、取り出された部分コピーカウント106(q)の関数であり、または喪失パケットのカウント114(p)および取り出された部分コピーカウント106(q)の関数であり得る。たとえば、結果値118は、喪失パケットのカウント114と取り出された部分コピーカウント106の加重和であり得る。
[0083]方法200は、また、216において、結果値(r)が増分閾値(T1)よりも大きいかどうか決定することを含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、結果値118が増分閾値136を満足する(たとえば、それよりも大きい)かどうか決定することができる。
[0084]方法200は、216において結果値(r)が増分閾値(T1)よりも大きいと決定したことに応答して、222において、増分量(Δn1)と次のトークスパート(talk spurt)用のデジッタバッファの深度(Dold)の和に基づいて深度値(Dnew)を決定することをさらに含む。たとえば、図1のアナライザ122は、結果値118が増分閾値136を満足する(たとえば、それよりも大きい)と決定したことに応答して、図1を参照して記載したように、増分量140とバッファ深度110(たとえば、Dold)の和に基づいて調整量(たとえば、Dnew)を決定することができる。方法200は224に進み得る。
[0085]方法200は、また、216において結果値(r)が増分閾値(T1)以下であると決定したことに応答して、220において、結果値(r)が減分閾値(T2)よりも小さいかどうか決定することを含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、結果値118が増分閾値136を満足できない(たとえば、それ以下である)と決定したことに応答して、結果値118が減分閾値138を満足する(たとえば、それよりも小さい)かどうか決定することができる。
[0086]方法200は、220において結果値(r)が減分閾値(T2)よりも小さいと決定したことに応答して、222において、減分量(Δn2)と次のトークスパート用のデジッタバッファの深度(Dold)との間の差に基づいて深度値(Dnew)を減少させることをさらに含む。たとえば、図1のアナライザ122は、結果値118が減分閾値138を満足する(たとえば、それよりも小さい)と決定したことに応答して、図1を参照して記載したように、減分量150とバッファ深度110(たとえば、Dold)との間の差に基づいて調整量(たとえば、Dnew)を決定することができる。
[0087]方法200は、また、224において、デジッタバッファの深度を深度値(Dnew)に調整することを含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、調整量(たとえば、Dnew)に基づいて、バッファ深度110を調整することができる。方法200は202に進み得る。
[0088]方法200は、また、220において結果値(r)が減分閾値(T2)以上であると決定したことに応答して、202において、後続パケットを受信することを含む。たとえば、図1のアナライザ122は、結果値118が増分閾値136と減分閾値138とを満足できないと決定したことに応答して、バッファ深度110を調整するのを控え得る。
[0089]バッファ深度110(たとえば、D)は、第1の深度値(たとえば、Dold)を有し得る。たとえば、D=Doldである。アナライザ122は、第1の深度値(たとえば、Dold)に少なくとも部分的に基づいて、第2の深度値(たとえば、Dnew)を決定することができる。アナライザ122は、第2の深度値(たとえば、Dnew)に基づいてバッファ深度110(たとえば、D)を調整し得る。たとえば、バッファ深度110の調整に続いて、D=Dnewとなる。
[0090]方法200は、喪失パケットのカウント、取り出された部分コピーカウント、またはその両方に基づいて、デジッタバッファの深度の動的調整を可能にし得る。バッファ深度は、ネットワーク状態に応じ得る。高いパケット喪失、データ冗長性の欠如、またはその両方の状態の間、バッファ深度は、宛先デバイスにおいてドロップされるパケットを低減するように、デジッタバッファ中で喪失パケットの部分コピーを見つける見込みを増大させるように、またはその両方のために、増大され得る。代替として、低いパケット喪失、高程度のデータ冗長性、またはその両方の状態の間、バッファ深度は、デジッタバッファによるメモリ使用を低減するように低下され得る。
[0091]図3を参照すると、冗長性に基づくパケット送信エラー回復の方法の特定の例示的態様が開示され、全体が300で指定される。特定の態様では、方法300は図1のアナライザ122によって実施され得る。
[0092]図3は、喪失パケットのカウント114、取り出された部分コピーカウント106、またはその両方に基づく、図1の再送信閾値112の調整を示す。方法300は、図2の方法200の202と、204と、206と、208と、210と、212と、214と、216と、220とを含む。
[0093]方法300は、また、208において次の音声フレームR(N−D)の部分コピーがデジッタバッファ中で入手不可能であると決定したことに応答して、302において、再送信分析を実施することを含む。たとえば、図1のアナライザ122は、図4を参照して記載するように、バッファ126が、第1のパケット132も、第1のパケット132の部分コピーが別のパケット中に含まれていることを示す別のパケットも記憶していないと決定したことに応答して、再送信分析を実施し得る。
[0094]方法300は、216において結果値(r)が増分閾値(T1)よりも大きいと決定したことに応答して、304において、増分量(Δn1)と再送信閾値(RTold)の和に基づいて再送信値(RTnew)を決定することをさらに含む。たとえば、図1のアナライザ122は、結果値118が増分閾値136を満足する(たとえば、それよりも大きい)と決定したことに応答して、図1を参照して記載したように、増分量140と再送信閾値112(たとえば、RTold)の和に基づいて調整量(たとえば、RTnew)を決定することができる。方法300は308に進み得る。
[0095]方法300は、また、220において結果値(r)が減分閾値(T2)よりも小さいと決定したことに応答して、306において、減分量(Δn2)と再送信閾値(RTold)との間の差に基づいて再送信値(RTnew)を減少させることを含む。たとえば、図1のアナライザ122は、結果値118が減分閾値138を満足する(たとえば、それよりも小さい)と決定したことに応答して、図1を参照して記載したように、減分量150と再送信閾値112(たとえば、RTold)との間の差に基づいて調整量(たとえば、RTnew)を決定することができる。
[0096]方法300は、また、308において、再送信値を再送信値(RTnew)に調整することを含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、調整量(たとえば、RTnew)に基づいて、再送信閾値112を調整することができる。方法300は202に進み得る。
[0097]再送信閾値112(たとえば、RT)は、第1の再送信閾値の値(たとえば、RTold)を有し得る。たとえば、RT=RToldである。アナライザ122は、第1の再送信値(たとえば、RTold)に少なくとも部分的に基づいて、第2の再送信閾値の値(たとえば、RTnew)を決定することができる。アナライザ122は、第2の再送信閾値の値(たとえば、RTnew)に基づいて、再送信閾値112(たとえば、RT)を調整し得る。たとえば、RT=RTnewは、再送信閾値112の調整の後に続く。特定の態様では、図3の増分閾値(T1)は、図2の増分閾値(T1)とは異なり得る。代替態様では、図3の増分閾値(T1)は図2の増分閾値(T1)と同じであり得る。特定の態様では、図3の減分閾値(T2)は、図2の減分閾値(T2)とは異なり得る。代替態様では、図3の減分閾値(T2)は図2の減分閾値(T2)と同じであり得る。
[0098]方法300は、喪失パケットのカウント、取り出された部分コピーカウント、またはその両方に基づく、再送信閾値の動的調整を可能にし得る。再送信閾値は、ネットワーク状態に応じ得る。高いパケット喪失、データ冗長性の欠如、またはその両方の状態の間、再送信閾値は、宛先デバイスがより多くの再送信要求を送ることを可能にするように増大され得る。代替として、低いパケット喪失、高程度のデータ冗長性、またはその両方の状態の間、再送信閾値は、再送信ネットワークトラフィックを低減するように、処理された音声信号を生成する際の遅延を低減するように、またはその両方のために減少され得る。
[0099]図4を参照すると、冗長性に基づくパケット送信エラー回復の方法の特定の例示的態様が開示され、全体が400で指定される。特定の態様では、方法400は、図1のアナライザ122によって実施され得る。特定の態様では、方法400は、図3の302に対応し得る。
[0100]方法400は、402において、再送信カウントが再送信閾値(RT)よりも小さいかどうか決定することを含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、再送信カウント154が再送信閾値112を満足する(たとえば、それよりも小さい)かどうか決定することができる。
[0101]方法400はまた、402において再送信カウントが再送信閾値(RT)よりも小さいと決定したことに応答して、404において、再送信メッセージを送ることと、406において、再送信カウントを増分することとを含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、再送信カウント154が再送信閾値112を満足する(たとえば、それよりも小さい)と決定したことに応答して再送信メッセージ144を送ることができ、そして、再送信カウント154を更新する(たとえば、増分する)ことができる。
[0102]方法400は、402において再送信カウントが再送信閾値(RT)以上であると決定したことに応答して、408において、再送信メッセージを送るのを控えることをさらに含む。たとえば、アナライザ122は、図1を参照して記載したように、再送信カウント154が再送信閾値112を満足できない(たとえば、それ以上である)と決定したことに応答して、再送信メッセージ(たとえば、再送信メッセージ144)を送るのを控えることができる。
[0103]方法400はこのように、宛先デバイスが、動的に調整された再送信閾値に基づいて再送信要求を送ることを可能にし得る。宛先デバイスによって送られる再送信要求の数、およびソースデバイスによって再送信されるパケットの数は、ネットワーク状態に応じ得る。高いパケット喪失、データ冗長性の欠如、またはその両方の状態の間、再送信閾値は、処理された音声信号中のエラーを低減するために、再送信されるパケットの数を増大させるために宛先デバイスがより多くの再送信要求を送ることを可能にするように増大され得る。代替として、低いパケット喪失、高程度のデータ冗長性、またはその両方の状態の間、再送信閾値は、再送信ネットワークトラフィックの低減、処理された音声信号の生成に関連付けられた遅延の低減、またはその両方をもたらす、再送信されるパケットの数を低減するように減少され得る。
[0104]図5を参照すると、冗長性に基づくエラー回復を実施するように動作可能なシステムの特定の例示的態様が開示され、全体が500で指定される。システム500は、本明細書に記載するように、エラー回復パラメータ108がバッファ遅延512を含み得るという点で、図1のシステム100とは異なり得る。
[0105]パケットのシーケンスは、入力音声信号130に対応し得る。パケットのシーケンスの各パケットは、図1を参照して記載したように、シーケンス番号を含み得る。たとえば、第1のパケット132は第1のシーケンス番号(たとえば、第1の生成タイムスタンプ)を含むことができ、第2のパケット134は第2のシーケンス番号(たとえば、第2の生成タイムスタンプ)を含むことができる。第1の生成タイムスタンプは、ソースデバイス104によって第1のパケット132が生成される第1の時間を示すことができ、第2の生成タイムスタンプは、ソースデバイス104によって第2のパケット134が生成される第2の時間を示すことができる。第1の部分コピー174は、第1のシーケンス番号(たとえば、第1の生成タイムスタンプ)を含み得る。
[0106]宛先デバイス102によって受信される各パケットには、受信機124、アナライザ122によって、または宛先デバイス102の別の構成要素によって、受信タイムスタンプが割り当てられ得る。たとえば、第2のパケット134には第2の受信タイムスタンプが割り当てられ得る。アナライザ122は、第2の受信タイムスタンプに基づいて第1の受信タイムスタンプを決定し得、第1の受信タイムスタンプを第1の部分コピー174に割り当て得る。第1の受信タイムスタンプは、第2の受信タイムスタンプと同じであるか、または別個であり得る。たとえば、第1の受信タイムスタンプは、第2の受信タイムスタンプによって示される第2の受信時間よりも早い第1の受信時間を示し得る。この例では、第1の受信時間は、第1のパケット132が適時に受信されるであろう推定時間に対応し得る。例を挙げれば、第1の受信時間は、第1のパケット132が遅延されることも喪失されることもなかった場合の第1のパケット132の推定受信時間に対応し得る。
[0107]アナライザ122は、本明細書に記載するように、パケットに関連付けられた受信タイムスタンプ、バッファ遅延512、バッファタイムライン504、および最後に再生されたパケット506に基づいてパケットを処理することができる。バッファ遅延512は、パケットがバッファ126に記憶されるべき閾値時間に対応し得る。たとえば、バッファ遅延512は、第1の閾値時間(たとえば、5ミリ秒)を示し得る。パケットは、第1の受信時間(たとえば、1:00:00.000PM)に受信される場合がある。第1の受信時間を示す受信タイムスタンプが、パケットに関連付けられ得る。第2の時間(たとえば、1:00:00.005PM)は、受信タイムスタンプによって示される第1の受信時間とバッファ遅延512の和に対応し得る。パケットは、第2の時間において、またはそれに続いて処理され得る。
[0108]バッファタイムライン504は、処理されるべき次のパケットを示し得る。たとえば、バッファタイムライン504は、バッファ126から直近に処理された、または消去が直近に行われた、特定のパケットのシーケンス番号を示すことができる。例を挙げれば、アナライザ122は、バッファ126からのパケットを処理したこと、バッファ126からのパケットの部分コピーを処理したこと、またはパケットに対応する消去を行ったことに応答して、パケットの第1のシーケンス番号を示すように、バッファタイムライン504を更新することができる。この例では、アナライザ122は、バッファタイムライン504によって示されるシーケンス番号(たとえば、第1のシーケンス番号)に基づいて、処理されるべき次のパケットの次のシーケンス番号を決定し得る。
[0109]最後に再生されたパケット506は、バッファ126からの、直近に処理された特定のパケットを示し得る。バッファ126からの特定のパケットを処理することは、バッファ126からの特定のパケットを処理すること、またはバッファ126からの特定のパケットの部分コピーを処理することを含み得る。アナライザ122は、バッファ126からのパケットを処理したこと、またはバッファ126からのパケットの部分コピーを処理したことに応答して、パケットの第1のシーケンス番号を示すように、最後に再生されたパケット506を更新し得る。
[0110]アナライザ122は、最後に再生されたパケット506が、アナライザ122によって、バッファ126からの、直近に処理された前のパケットを示すと決定し得る。アナライザ122は、特定のパケット(たとえば、第1のパケット132)が、パケットのシーケンス中で前のパケットの後に続くと決定し得る。アナライザ122は、バッファタイムライン504によって示される、処理されるべき次のパケットが、パケットのシーケンス中の第1のパケット132と同じであるか、それともその後に続くものであるか決定することができる。アナライザ122は、バッファタイムライン504によって示される、処理されるべき次のパケットが、パケットのシーケンス中の第1のパケット132に先立つと決定したことに応答して、ほぼ第1のプレイバック時間502において、消去を行う(play an erasure)ことができる。
[0111]アナライザ122は、消去を行ったのに続いて、バッファタイムライン504を更新することができる。たとえば、バッファタイムライン504は、消去が行われるのに先立って、第1の特定のパケットが、処理されるべき次のパケットであることを示し得る。アナライザ122は、消去を行ったのに続いて、第2の特定のパケットが、処理されるべき次のパケットであることを示すように、バッファタイムライン504を更新することができる。第2の特定のパケットは、パケットのシーケンス中で、第1の特定のパケットの次であり得る。
[0112]代替として、アナライザ122は、バッファタイムライン504によって示される、処理されるべき次のパケットが、パケットのシーケンス中の第1のパケット132と同じであるか、またはその後に続くと決定したことに応答して、バッファ126が第1のパケット132(または第1の部分コピー174)を記憶しているかどうか決定し得る。アナライザ122は、バッファ126が第1の部分コピー174を記憶していると決定したことに応答して、第1の部分コピー174が、第1の受信時間を示す第1の受信タイムスタンプに関連付けられていると決定し得る。アナライザ122は、第1の時間が第1の受信時間とバッファ遅延512の和以上であると決定したことに応答して、ほぼ第1のプレイバック時間502に、バッファ126からの第1の部分コピー174を処理することができる。バッファ遅延512は、パケットがバッファ126に記憶されるべき閾値時間に対応し得る。特定の実装形態では、アナライザ122は、第1の部分コピー174が閾値時間だけバッファ126に記憶されているかどうかにかかわらず、第1の部分コピー174を処理することができる。この実装形態では、第1の受信時間は、第2の受信時間よりも早いものであり得る。たとえば、第1の受信時間は、第1のパケット132が適時に受信された場合の第1のパケット132の予想受信時間に対応し得る。アナライザ122は、第1のパケット132が適時に受信された場合は第1のパケット132が少なくとも閾値時間だけバッファ126に記憶されているであろうと決定したことに応答して、ほぼ第1のプレイバック時間に第1の部分コピー174を処理し得る。バッファ遅延512は、デフォルト値を含み得、第1のユーザ152からのユーザ入力に基づくものであり得、またはその両方であり得る。アナライザ122は、本明細書に記載するように、バッファ遅延512を調整することができる。アナライザ122は、バッファ126からの第1の部分コピー174を処理したのに続いて、第1のパケット132を示すように、最後に再生されたパケット508を更新し得、第2の特定のパケット(たとえば、第2のパケット134)を処理されるべき次のパケットとして示すように、バッファタイムライン504を更新し得る。第2の特定のパケット(たとえば、第2のパケット134)は、パケットのシーケンス中の第1のパケット132の次であり得る。
[0113]特定の実装形態では、アナライザ122は、第1のパケット132および第1の部分コピー174がバッファ126から消失していると決定したことに応答して、第1のパケット132に対して実施されるのと同様の分析を、第2の特定のパケット(たとえば、第2のパケット134)に対して実施し得る。たとえば、アナライザ122は、バッファタイムライン504によって示される、処理されるべき次のパケットが、パケットのシーケンス中で第2の特定のパケットに先立つと決定したことに応答して、消去を行うことができ、消去を行ったのに続いて、バッファタイムライン504を更新し得る。代替として、アナライザ122は、ほぼ第1のプレイバック時間502において、バッファタイムライン504によって示される、処理されるべき次のパケットが第2の特定のパケットと同じであるか、またはそれに続くとの決定、第2の特定のパケットまたは第2の特定のパケットの部分コピーがバッファ126に記憶されているとの決定、および第1のプレイバック時間502が第2の特定のパケットに関連付けられたバッファ遅延512と特定の受信時間の和以上であるとの決定に応答して、バッファ126からの第2の特定のパケットを処理することができる。
[0114]宛先デバイス102は、電話呼中にパケットのシーケンス(たとえば、第1のパケット132、第2のパケット134、またはその両方)を受信し得る。第1のパケット132、第2のパケット134、またはその両方は、音声データを含み得る。アナライザ122は、本明細書に記載するように、電話呼中、トークスパートの開始時に、またはトークスパートの終了時に、バッファ遅延512を決定または更新することができる。トークスパートは、背景雑音が聞こえる無音間隔の間の音声の連続セグメントに対応し得る。たとえば、第1のトークスパートは第1のユーザ152の音声に対応し得、第2のトークスパートは第2のユーザ154の音声に対応し得る。第1のトークスパートと第2のトークスパートは、無音期間または背景雑音によって分離され得る。
[0115]アナライザ122は、前の遅延損失率(previous delay loss rate)552を決定することができる。前の遅延損失率552は、第1の更新時間における、バッファ遅延512の、前の調整中に決定された遅延損失率(delay loss rate)に対応し得る。アナライザ122は、遅延損失パケットのカウント510を維持することができる。遅延損失パケットのカウント510は、対応するプレイバック時間において、バッファ126からのパケットの部分コピーの処理に続いて受信されるパケットの数を示し得る。対応するプレイバック時間は、第1の更新時間の後に続き得る。たとえば、アナライザ122は、第1の更新時間に続いて、第1のパケット132に関連付けられた第1のプレイバック時間において、バッファ126からの第1の部分コピー174を処理することができる。アナライザ122は、1つまたは複数の条件が満足されると決定したことに基づいて、第1の時間が第1のプレイバック時間に対応すると決定し得る。たとえば、第1の時間において、最後に再生されたパケット506が第1のパケット132に先立ち、第1のパケット132が、バッファタイムライン504によって示される、処理されるべき次のパケットに先立つか、または同じである場合、第1の時間は第1のプレイバック時間に対応し得る。第1の時間は、第1の時間が、第1のパケット132に関連付けられた受信時間(たとえば、第1の部分コピー174の第1の受信時間)とバッファ遅延512の和以上である場合、第1のプレイバック時間に対応し得る。第1のパケット132が、第1の時間における前述の条件を満足する、パケットのシーケンス中の最も早いパケットである場合、第1の時間は、第1のプレイバック時間に対応し得る。アナライザ122は、第1の部分コピー174を処理したのに続いて第1のパケット132を受信したことに応答して、遅延損失パケットのカウント510を更新(たとえば、増分)し得る。
[0116]アナライザ122は、受信パケットカウント514を維持することができる。たとえば、アナライザ122は、第1の更新時間に続いて、受信パケットカウント514をリセットし得る。アナライザ122は、パケット(たとえば、第2のパケット134)を受信したことに応答して、受信パケットカウント514を更新する(たとえば、1だけ増分する)ことができる。アナライザ122は、遅延損失パケットのカウント510および受信パケットカウント514に基づいて、第2の遅延損失率554を決定することができる。たとえば、第2の遅延損失率554は、遅延損失パケットのカウント510および受信パケットカウント514の測度(たとえば、比)に対応し得る。例を挙げれば、第2の遅延損失率554は、特定の時間間隔中の遅延損失パケット(たとえば、パケットの部分コピーの処理に続いて受信されるパケット)の平均数を示し得る。第2の遅延損失率554は、特定の時間間隔中のネットワークジッタを示し得る。前の遅延損失率552と第2の遅延損失率554との間の差は、受信パケットの遅延の変動を示し得る。前の遅延損失率552と第2の遅延損失率554との間の差は、遅延損失パケットの平均数が増大しつつあるかそれとも減少しつつあるかを示し得る。
[0117]アナライザ122は、前の遅延損失率552および第2の遅延損失率554に基づいて、遅延損失率556を決定することができる。たとえば、遅延損失率556は、前の遅延損失率552と第2の遅延損失率554の加重和に対応し得る。アナライザ122は、前の遅延損失率552に第1の重み(たとえば、0.75)を、および第2の遅延損失率554に第2の重み(たとえば、0.25)を割り当て得る。第1の重みは、第2の重みと同じ、または別個のものであり得る。特定の実装形態では、第1の重みは第2の重みよりも高いものであり得る。前の遅延損失率552と第2の遅延損失率554の加重和に基づいて遅延損失率556を決定すれば、一時的ネットワーク状態に基づいて、遅延損失率556における振幅を低減することができる。たとえば、パケットのバンドル化により、後続間隔中にどのパケット到着も後続せずに、多数のパケット(たとえば、3つ)が同時に到着し得る。第1の時間に決定された第2の遅延損失率554は、多数のパケットが受信される間隔に対応し得るとともに、第2の時間に決定された第2の遅延損失率554は、パケット到着のない間隔に対応し得るので、第2の遅延損失率554は、第1の時間から第2の時間まで変動し得る。前の遅延損失率552と第2の遅延損失率554の加重和に基づいて遅延損失率556を決定すれば、遅延損失率556に対するパケットバンドル化の効果が低減し得る。
[0118]アナライザ122は、遅延損失率556が目標遅延損失率528(たとえば、0.01)を満足できない(たとえば、それよりも小さい)と決定したことに応答して、減分量516(たとえば、20ミリ秒)だけバッファ遅延512を減少させ得る。たとえば、目標遅延損失率528は、受信パケットに対して、遅延損失パケットの第1のパーセント(たとえば、1パーセント)に対応し得る。アナライザ122は、遅延損失率556が目標遅延損失率528を満足する(たとえば、それよりも大きい)との決定、遅延損失率556が前の遅延損失率552以上であるとの決定、またはその両方に応答して、バッファ遅延512を増分量518(たとえば、20ミリ秒)だけ増大させ得る。減分量516、増分量518、目標遅延損失率528、またはそれらの組合せは、デフォルト値を含み得、第1のユーザ152からのユーザ入力に基づき得、またはその両方であり得る。減分量516は、増分量518と同じ、または別個のものであり得る。
[0119]アナライザ122は、バッファ遅延512を、バッファ遅延512と遅延下限538(たとえば、20ミリ秒)のうちの最大に設定することができる。たとえば、アナライザ122は、バッファ遅延512が遅延下限538よりも低いと決定したことに応答して、バッファ遅延512を遅延下限538に設定し得る。アナライザ122は、バッファ遅延512を、バッファ遅延512と遅延上限536(たとえば、80ミリ秒)のうちの最小に設定することができる。たとえば、アナライザ122は、バッファ遅延512が遅延上限536を超えると決定したことに応答して、バッファ遅延512を遅延上限536に設定し得る。遅延下限538、遅延上限536、またはその両方は、デフォルト値であり得、第1のユーザ152からのユーザ入力に基づき得、またはその両方であり得る。
[0120]システム500はこのように、遅延されたパケットが、対応するプレイバック時間に先立って受信される見込みがあるような長いバッファ遅延を有することと、パケットのシーケンスに関連付けられたエンドツーエンドの遅延を低減する短いバッファ遅延を有することとの間の均衡をもたらし得る。
[0121]図6を参照すると、冗長性に基づくパケット送信エラー回復の方法の特定の例示的態様のフローチャートが示され、全体が600で指定される。特定の態様では、方法600は図1のアナライザ122によって実行され得る。
[0122]方法600は、602において、パケットのシーケンスのうちの特定のパケットがバッファから消失しているかどうか決定することを含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、パケットのシーケンスのうちの特定のパケット(たとえば、第1のパケット132)がバッファ126から消失しているかどうか決定することができる。
[0123]方法600は、また、602において特定のパケットがバッファから消失していないと決定したことに応答して、604において、特定のパケットを音声デコーダに送ることを含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、第1のパケット132がバッファ126から消失していないと決定したことに応答して、第1のパケット132を音声デコーダ156に送り得る。
[0124]方法600は、602において特定のパケットがバッファから消失していると決定したことに応答して、606において、特定のパケットの部分コピーが別のパケット中のエラー訂正データとしてバッファに記憶されているかどうか決定することをさらに含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、第1のパケット132がバッファ126から消失していると決定したことに応答して、第1のパケット132の部分コピー(たとえば、第1の部分コピー174)が別のパケット(たとえば、第2のパケット134)中のエラー訂正データとしてバッファに記憶されているかどうか決定し得る。
[0125]方法600は、また、606において部分コピーがバッファに記憶されていると決定したことに応答して、608において、取り出された部分コピーのカウントを更新することを含む。方法600は610に進み得る。たとえば、図1のアナライザ122は、図1を参照して記載したように、第1の部分コピー174を含む第2のパケット134がバッファ126に記憶されていると決定したことに応答して、取り出された部分コピーカウント106のカウントを更新し得る。
[0126]方法600は、606において、部分コピーがバッファに記憶されていないと決定したことに応答して、612において、喪失パケットのカウントを更新することをさらに含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、第1の部分コピー174を含む第2のパケット134がバッファ126に記憶されていないと決定したことに応答して、喪失パケットのカウント114を更新し得る。
[0127]方法600は、また、610において、取り出された部分コピーのカウント、喪失パケットのカウント、またはその両方に基づいて、エラー回復パラメータを調整することを含む。たとえば、図1のアナライザ122は、取り出された部分コピーカウント106、喪失パケットのカウント114、またはその両方に基づいて、エラー回復パラメータ108を調整することができる。
[0128]方法600は、614において、再送信カウントが再送信閾値よりも小さいかどうか決定することをさらに含む。たとえば、図1のアナライザ122は、図1および図4を参照して記載したように、再送信カウント154が再送信閾値112を満足する(たとえば、それよりも小さい)かどうか決定することができる。
[0129]方法600はまた、614において再送信カウントが再送信閾値よりも小さいと決定したことに応答して、616において、再送信メッセージをソースデバイスに送ることと、618において、再送信カウントを更新することとを含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、再送信カウント154が再送信閾値112を満足する(たとえば、それよりも小さい)と決定したことに応答して、ソースデバイス104に再送信メッセージ144を送り、再送信カウント154を更新し得る。再送信要求は、特定のパケットの再送信を要求し得る。
[0130]方法600は、614において再送信カウントが再送信閾値以上であると決定したことに応答して、620において、ソースデバイスに再送信メッセージを送るのを控えることをさらに含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、再送信カウント154が再送信閾値112を満足できない(たとえば、それ以上である)と決定したことに応答して、再送信メッセージ144をソースデバイス104に送るのを控えることができる。
[0131]方法600はこのように、喪失パケットのカウント、取り出された部分コピーのカウント、またはその両方に基づく、エラー回復パラメータの動的調整を可能にし得る。
[0132]図6の方法600は、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、中央処理装置(CPU)などの処理ユニット、デジタル信号プロセッサ(DSP)、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはそれらの任意の組合せによって実装され得る。一例として、図6の方法600は、図9に関して説明されるように、命令を実行するプロセッサによって実行可能である。
[0133]図7を参照すると、冗長性に基づくパケット送信エラー回復の方法の特定の例示的態様のフローチャートが示され、全体が700で指定される。特定の態様では、方法700は図1のアナライザ122によって実行され得る。特定の態様では、方法700は図6の610に対応し得る。
[0134]方法700は、702において、取り出された部分コピーのカウントを品質メトリックで乗算することによって加重値を生成することを含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、取り出された部分コピーカウント106を品質メトリック128で乗算することによって、加重値を生成することができる。
[0135]方法700は、また、704において、喪失パケットのカウントと加重値とを加算することによって結果値を生成することを含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、喪失パケットのカウント114と加重値とを加算することによって、結果値118を生成することができる。
[0136]方法700は、706において、結果値が増分閾値よりも大きいかどうか決定することをさらに含む。たとえば、図1のアナライザ122は、結果値118が増分閾値136を満足する(たとえば、それよりも大きい)かどうか決定することができる。
[0137]方法700は、また、706において結果値が増分閾値よりも大きいと決定したことに応答して、708において、結果値と増分閾値との間の差に基づいて増分量を決定することを含む。たとえば、図1のアナライザ122は、結果値118が増分閾値136を満足する(たとえば、それよりも大きい)と決定したことに応答して、結果値118と増分閾値136との間の差に基づいて増分量140を決定することができる。
[0138]方法700は、710において、増分量に基づいてエラー回復パラメータを調整することをさらに含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、増分量140に基づいてエラー回復パラメータ108を調整することができる。
[0139]方法700は、また、706において結果値が増分閾値以下であると決定したことに応答して、712において、結果値が減分閾値よりも小さいかどうか決定することを含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、結果値118が増分閾値136を満足できない(たとえば、それ以下である)と決定したことに応答して、結果値118が減分閾値138を満足する(たとえば、それよりも小さい)かどうか決定することができる。
[0140]方法700は、712において結果値が減分閾値以上であると決定したことに応答して、714において、エラー回復パラメータを調整するのを控えることをさらに含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、結果値118が減分閾値138を満足できない(たとえば、それ以上である)と決定したことに応答して、エラー回復パラメータ108を調整するのを控えることができる。
[0141]方法700は、また、712において結果値が減分閾値よりも小さいと決定したことに応答して、716において、結果値と減分閾値との間の差に基づいて減分量を決定することを含む。たとえば、図1のアナライザ122は、結果値118が減分閾値138を満足する(たとえば、それよりも小さい)と決定したことに応答して、結果値118と減分閾値138との間の差に基づいて減分量150を決定することができる。
[0142]方法700は、718において、減分量に基づいてエラー回復パラメータを調整することをさらに含む。たとえば、図1のアナライザ122は、図1を参照して記載したように、減分量150に基づいてエラー回復パラメータ108を調整することができる。
[0143]方法700はこのように、喪失パケットのカウント、取り出された部分コピーのカウント、またはその両方に基づく、エラー回復パラメータの動的調整を可能にし得る。
[0144]図7の方法700は、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、中央処理装置(CPU)などの処理ユニット、デジタル信号プロセッサ(DSP)、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはそれらの任意の組合せによって実装され得る。一例として、図7の方法700は、図9に関して説明されるように、命令を実行するプロセッサによって実行可能である。
[0145]図8を参照すると、冗長性に基づくパケット送信エラー回復の方法の特定の例示的態様のフローチャートが示され、全体が800で指定される。特定の態様では、方法800は図1および図5のアナライザ122によって実行され得る。
[0146]方法800は、802において、第1の更新時間におけるエラー回復パラメータの、前の調整に対応する第1の遅延損失率を決定することを含む。たとえば、アナライザ122は、図5を参照して記載したように、前の遅延損失率552を決定し得る。前の遅延損失率552は、第1の更新時間におけるエラー回復パラメータ108の、前の調整(たとえば、バッファ遅延512)に対応し得る。
[0147]方法800は、また、804において、複数のパケットのうちの特定のパケットに対応する第2の遅延損失率を決定することを含む。たとえば、アナライザ122は、図5を参照して記載したように、第2の遅延損失率554を決定し得る。第2の遅延損失率554は、入力音声信号130に関連付けられた複数のパケットのうちの特定のパケットに対応し得る。特定のパケットは、第1の更新時間に続くプレイバック時間を有し得る。
[0148]方法800は、806において、第1の遅延損失率と第2の遅延損失率の加重和に基づいて、遅延損失率を決定することをさらに含む。たとえば、アナライザ122は、図5を参照して記載したように、前の遅延損失率552と第2の遅延損失率554の加重和に基づいて、遅延損失率556を決定することができる。
[0149]方法800は、また、810において、遅延損失率が目標遅延損失率よりも低いかどうか決定することを含む。たとえば、アナライザ122は、図5を参照して記載したように、遅延損失率556が目標遅延損失率528よりも低いかどうか決定することができる。
[0150]方法800は、810において遅延損失率が目標遅延損失率よりも低いと決定したことに応答して、812において、バッファ遅延を減分量だけ減分することをさらに含む。たとえば、アナライザ122は、図5を参照して記載したように、遅延損失率556が目標遅延損失率528よりも低いと決定したことに応答して、バッファ遅延512を減分量516だけ減少させ得る。方法800は818に進み得る。
[0151]方法800は、また、810において遅延損失率が目標遅延損失率以上であると決定したことに応答して、814において、遅延損失率が目標遅延損失率よりも大きいかどうかと、遅延損失率が第1の遅延損失率よりも大きいかどうかとを決定することを含む。たとえば、アナライザ122は、図5を参照して記載したように、遅延損失率556が目標遅延損失率528以上であると決定したことに応答して、遅延損失率556が目標遅延損失率528よりも大きいかどうかと、遅延損失率556が前の遅延損失率552よりも大きいかどうかとを決定することができる。方法800は、814において、遅延損失率が目標遅延損失率に等しい、または遅延損失率が第1の遅延損失率以下である、と決定したことに応答して、818に進み得る。
[0152]方法800は、814において、遅延損失率が目標遅延損失率よりも大きい、および遅延損失率が第1の遅延損失率よりも大きいと決定したことに応答して、816において、バッファ遅延を増分量だけ増分することをさらに含む。たとえば、アナライザ122は、図5を参照して記載したように、遅延損失率556が目標遅延損失率528よりも大きい、および遅延損失率556が前の遅延損失率552よりも大きいと決定したことに応答して、バッファ遅延512を増分量518だけ増大させ得る。特定の実装形態では、アナライザ122は、遅延損失率556が目標遅延損失率528よりも大きいと決定したことに応答して、バッファ遅延512を増分量518だけ増大させ得る。
[0153]方法800は、また、818において、バッファ遅延を遅延下限およびバッファ遅延のうちの最大に設定することを含む。たとえば、アナライザ122は、図5を参照して記載したように、バッファ遅延512を遅延下限538およびバッファ遅延512のうちの最大に設定し得る。
[0154]方法800は、820において、バッファ遅延を遅延上限およびバッファ遅延のうちの最小に設定することをさらに含む。たとえば、アナライザ122は、図5を参照して記載したように、バッファ遅延512を遅延上限536およびバッファ遅延512のうちの最小に設定し得る。
[0155]方法800はこのように、遅延損失率および目標遅延損失率に基づく、エラー回復パラメータ(たとえば、バッファ遅延)の動的調整を可能にし得る。遅延損失率は、受信パケットの数に相対した、遅延損失パケットの数に対応し得る。遅延損失パケットは、対応するプレイバック時間において、パケットの部分コピーの処理に続いて受信されるパケットを含み得る。遅延損失率および目標遅延損失率に基づく、バッファ遅延の動的調整は、遅延されたパケットが対応するプレイバック時間に先立って受信される見込みがあるような長いバッファ遅延を有することと、パケットのシーケンスに関連付けられたエンドツーエンドの遅延を低減する短いバッファ遅延を有することと、の間の均衡をもたらし得る。
[0156]図8の方法800は、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、中央処理装置(CPU)などの処理ユニット、デジタル信号プロセッサ(DSP)、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはそれらの任意の組合せによって実装され得る。一例として、図8の方法800は、図9に関して説明されるように、命令を実行するプロセッサによって実行可能である。
[0157]図9を参照すると、デバイス(たとえば、ワイヤレス通信デバイス)の特定の例示的態様のブロック図が示されており、全体的に900と指定されている。様々な態様では、デバイス900は、図9に示すものよりも多くの、または少ない構成要素を有し得る。例示的態様では、デバイス900は、図1の宛先デバイス102、ソースデバイス104、またはその両方に対応し得る。例示的態様では、デバイス900は、図1〜図8を参照して記載した1つまたは複数の動作を実施することができる。
[0158]特定の態様では、デバイス900はプロセッサ906(たとえば、中央処理装置(CPU))を含む。デバイス900は、1つまたは複数の追加のプロセッサ910(たとえば、1つまたは複数のデジタル信号プロセッサ(DSP))を含み得る。プロセッサ910は、音声および音楽コーダデコーダ(CODEC)908と、エコーキャンセラ912とを含み得る。音声および音楽コーデック908は、ボコーダエンコーダ936、ボコーダデコーダ938、またはその両方を含み得る。
[0159]デバイス900は、メモリ176とCODEC934とを含み得る。メモリ176は分析データ120を含み得る。デバイス900は、トランシーバ950を介してアンテナ942に結合されたワイヤレスコントローラ940を含み得る。特定の態様では、トランシーバ950は、図1の受信機124、送信機192、またはその両方を含み得る。
[0160]デバイス900は、ディスプレイコントローラ926に結合されたディスプレイ928を含み得る。図1のスピーカー142、マイクロフォン946、またはその両方がCODEC934に結合され得る。CODEC934は、デジタルアナログ変換器902と、アナログデジタル変換器904とを含み得る。例示的態様では、マイクロフォン946は、図1のマイクロフォン146に対応し得る。特定の態様では、CODEC934は、マイクロフォン946からアナログ信号を受信し、アナログデジタル変換器904を使用してそのアナログ信号をデジタル信号に変換し、音声および音楽コーデック908にそのデジタル信号を与え得る。音声および音楽コーデック908はデジタル信号を処理し得る。特定の態様では、音声および音楽コーデック908は、CODEC934にデジタル信号を与え得る。CODEC934は、デジタルアナログ変換器902を使用してデジタル信号をアナログ信号に変換し得、アナログ信号をスピーカー142に与え得る。
[0161]デバイス900は、アナライザ122、バッファ126、音声デコーダ156、またはそれらの組合せを含み得る。特定の態様では、アナライザ122、音声デコーダ156、またはその両方は、プロセッサ906、プロセッサ910、CODEC934、音声および音楽コーデック908、またはそれらの組合せの中に含まれ得る。特定の態様では、アナライザ122、音声デコーダ156、またはその両方は、ボコーダエンコーダ936、ボコーダデコーダ938、またはその両方の中に含まれ得る。特定の実装形態では、音声デコーダ156は、ボコーダデコーダ938と機能的に同一であり得る。音声デコーダ156は、プロセッサ910(たとえば、DSP)の外の専用ハードウェア回路に対応し得る。
[0162]アナライザ122、バッファ126、音声デコーダ156、またはそれらの組合せは、本明細書に記載する、冗長性に基づくエラー回復技法のハードウェア態様を実装するのに使われ得る。代替または追加として、ソフトウェア態様(またはソフトウェア/ハードウェア組合せ態様)が実装され得る。たとえば、メモリ176は、プロセッサ910またはデバイス900の他の処理ユニット(たとえば、プロセッサ906、CODEC934、もしくはその両方)によって実行可能な命令956を含み得る。命令956は、アナライザ122、音声デコーダ156、またはその両方に対応し得る。
[0163]特定の態様では、デバイス900は、システムインパッケージまたはシステムオンチップデバイス922内に含められ得る。特定の態様では、アナライザ122、バッファ126、音声デコーダ156、メモリ176、プロセッサ906、プロセッサ910、ディスプレイコントローラ926、CODEC934、およびワイヤレスコントローラ940は、システムインパッケージまたはシステムオンチップのデバイス922中に含まれる。特定の態様では、入力デバイス930および電源944が、システムオンチップデバイス922に結合される。さらに、特定の態様では、図9に示すように、ディスプレイ928、入力デバイス930、スピーカー142、マイクロフォン946、アンテナ942、および電源944は、システムオンチップデバイス922の外部に存在する。特定の態様では、ディスプレイ928、入力デバイス930、スピーカー142、マイクロフォン946、アンテナ942、および電源944の各々は、インターフェースまたはコントローラなどの、システムオンチップデバイス922の構成要素に結合され得る。
[0164]デバイス900は、モバイル通信デバイス、スマートフォン、セルラーフォン、ラップトップコンピュータ、コンピュータ、タブレット、携帯情報端末、ディスプレイデバイス、テレビ、ゲーム機、音楽プレーヤ、ラジオ、デジタルビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、チューナー、カメラ、ナビゲーションデバイス、またはそれらの任意の組合せを含むことができる。
[0165]例示的態様では、プロセッサ910は、図1〜図8を参照して記載した方法または動作の全部または一部分を実施するように動作可能であり得る。たとえば、マイクロフォン946は、ユーザ音声信号に対応するオーディオ信号をキャプチャし得る。ADC904は、キャプチャされたオーディオ信号を、アナログ波形から、デジタルオーディオサンプルからなるデジタル波形に変換し得る。プロセッサ910は、デジタルオーディオサンプルを処理し得る。利得調整器は、デジタルオーディオサンプルを調整することができる。エコーキャンセラ912は、スピーカー142の出力がマイクロフォン946に入ることによって作成されていることがあるエコーを低減し得る。
[0166]ボコーダエンコーダ936は、処理された音声信号に対応するデジタルオーディオサンプルを圧縮し得、パケットのシーケンス(たとえば、デジタルオーディオサンプルの圧縮されたビットの表現)を形成し得る。パケットのシーケンスはメモリ176に記憶され得る。シーケンスの1つまたは複数のパケットは、シーケンスの他のパケットの部分コピーに対応するエラー訂正データを含み得る。トランシーバ950は、シーケンスの、何らかの形の各パケットを変調し得(たとえば、他の情報がパケットに付加され得)、アンテナ942を介して、その変調されたデータを送信し得る。
[0167]さらなる例として、アンテナ942は、ネットワークを介して別のデバイスによって送られたパケットのシーケンスに対応する着信パケットを受信し得る。受信パケットは、ユーザ音声信号に対応し得る。アナライザ122は、着信パケットをバッファ126(たとえば、デジッタバッファ)に記憶し得る。アナライザ122は、処理されるべき次のパケットがバッファ126に記憶されているかどうか決定することができる。
[0168]次のパケットがバッファ126に記憶されていると決定したことに応答して、アナライザ122は、次のパケットをボコーダデコーダ938に与え得る。たとえば、ボコーダデコーダ938は次のパケットを展開し得る。次のパケットがバッファ126に記憶されていないと決定したことに応答して、アナライザ122は、次のパケットの部分コピーが、別のパケット中のエラー訂正データとしてバッファ126に記憶されているかどうか決定することができる。別のパケット中で部分コピーがバッファ126に記憶されていると決定したことに応答して、アナライザ122は、部分コピーまたは別のパケットをボコーダデコーダ938に与えてよく、図1の取り出された部分コピーカウント106を更新し得る。ボコーダデコーダ938は、部分コピーを展開し得る。
[0169]圧縮されていない波形は、復元オーディオサンプルと呼ばれ得る。エコーキャンセラ912は、復元されたオーディオサンプルからエコーを除去し得る。音声デコーダ156は、復元オーディオサンプルに基づいて、処理された音声信号を生成することができる。利得調整器は、処理された音声信号を増幅または抑制し得る。DAC902は、処理された音声信号をデジタル波形からアナログ波形に変換することができ、変換信号をスピーカー142に与えることができる。
[0170]次のパケットも、次のパケットの部分コピーもバッファ126に記憶されていないと決定したことに応答して、アナライザ122は、図1の喪失パケットのカウント114を更新し得る。アナライザ122は、取り出された部分コピーカウント106、喪失パケットのカウント114、またはその両方に基づいて、エラー回復パラメータを調整することができる。
[0171]説明された態様に関連して、装置は、複数のパケットを受信するための手段を含むことができる。複数のパケットは、パケットのシーケンスの少なくともサブセットに対応し得る。複数のパケットはエラー訂正データを含み得る。複数のパケットのうちの第1のパケットのエラー訂正データは、第2のパケットの部分コピーを含み得る。たとえば、複数のパケットを受信するための手段は、図1の受信機124、トランシーバ950、またはその両方を含み得る。
[0172]装置は、また、エラー回復のための手段も含むことができる。エラー回復のための手段は、パケットのシーケンスのうちの特定のパケットがバッファから消失しているかどうか決定するように、特定のパケットの部分コピーが別のパケット中のエラー訂正データとしてバッファに記憶されているかどうか決定するように、特定のパケットがバッファから消失するとともに特定のパケットの部分コピーがバッファに記憶されているかどうかに少なくとも部分的に基づいて、値を決定するように、および値に少なくとも部分的に基づいてエラー回復パラメータを調整するように構成され得る。たとえば、エラー回復のための手段は、アナライザ122、プロセッサ906、プロセッサ910、CODEC934、またはそれらの組合せを含み得る。
[0173]さらに、本明細書で開示された態様に関して説明された様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、プロセッサによって実行されるコンピュータソフトウェア、またはその両方の組合せとして実装され得ることを、当業者は理解されよう。様々な例示的な構成要素、ブロック、構成、モジュール、回路、およびステップについて、上記では概してそれらの機能性に関して説明した。そのような機能性がハードウェアとして実装されるか、プロセッサ実行可能命令として実装されるかは、特定の適用例および全体的なシステムに課された設計制約に依存する。当業者は、説明した機能を、特定の適用例ごとに様々な方法で実装することができ、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
[0174]本明細書で開示した態様に関して説明した方法またはアルゴリズムのステップは、直接ハードウェアで実施され得るか、プロセッサによって実行されるソフトウェアモジュールで実施され得るか、またはその2つの組合せで実施され得る。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD−ROM)、または当技術分野で知られている任意の他の形態の非一時的記憶媒体中に常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体は特定用途向け集積回路(ASIC)中に存在し得る。ASICは、コンピューティングデバイスまたはユーザ端末に存在することができる。代替では、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末に個別の構成要素として存在することができる。
[0175]開示された態様の上記の説明は、当業者が開示された態様を製作または使用することを可能にするために提供されている。これらの態様への様々な修正が当業者には容易に明らかになり、本明細書で定義された原理が、本開示の範囲から逸脱することなく他の態様に適用され得る。したがって、本開示は、本明細書に示した態様に限定されるものではなく、以下の特許請求の範囲によって定義される原理および新規の特徴と一致する、可能な最も広い範囲が与えられるべきものである。
以下に出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
複数のパケットを受信するように構成された受信機と、ここで、前記複数のパケットはパケットのシーケンスの少なくともサブセットに対応し、前記複数のパケットはエラー訂正データを含み、前記複数のパケットのうちの第1のパケットの前記エラー訂正データは、前記複数のパケットのうちの第2のパケットの部分コピーを含む、
前記複数のパケットを記憶するように構成されたバッファと、
アナライザであって、
前記パケットのシーケンスのうちの第1の特定のパケットが前記バッファから消失しているかどうか決定することと、
前記第1の特定のパケットの部分コピーが、第2の特定のパケット中のエラー訂正データとして前記バッファに記憶されているかどうか決定することと、
前記第1の特定のパケットが前記バッファから消失しているかどうか、および前記第1の特定のパケットの前記部分コピーが前記バッファに記憶されているかどうか、に少なくとも部分的に基づいて、値を決定することと、
前記値に少なくとも部分的に基づいてエラー回復パラメータを調整することと、
を行うように構成されたアナライザと
を備えるデバイス。
[C2]
前記エラー回復パラメータは、前記バッファの深度、再送信閾値、またはその両方を含む、上記C1に記載のデバイス。
[C3]
前記エラー回復パラメータは前記バッファの前記深度を含む、上記C2に記載のデバイス。
[C4]
前記エラー回復パラメータはバッファ遅延を含む、上記C1に記載のデバイス。
[C5]
前記エラー回復パラメータはバッファ遅延を含み、前記値は遅延損失率を含み、前記アナライザは、前記遅延損失率が目標遅延損失率よりも低いと決定したことに応答して、前記バッファ遅延を減少させるようにさらに構成される、上記C1に記載のデバイス。
[C6]
前記エラー回復パラメータはバッファ遅延を含み、前記値は遅延損失率を含み、前記アナライザは、前記遅延損失率が目標遅延損失率よりも高いと決定したことに基づいて、前記バッファ遅延を増大させるようにさらに構成される、上記C1に記載のデバイス。
[C7]
前記値は遅延損失率を含み、前記遅延損失率は、前記バッファから消失しているとともに、対応するプレイバック時間において前記バッファに記憶された部分コピーを有する、前記複数のパケットのうちの特定のパケットの数に少なくとも部分的に基づき、前記特定のパケットは、前記対応するプレイバック時間に続いて受信される、上記C1に記載のデバイス。
[C8]
前記アナライザは、
第1の更新時間における、前記エラー回復パラメータの、前の調整に対応する第1の遅延損失率を決定することと、
前記複数のパケットのうちの特定のパケットに対応する第2の遅延損失率を決定することと、ここで、前記特定のパケットは、前記第1の更新時間に続くプレイバック時間を有する、
を行うようにさらに構成され、
前記値は遅延損失率を含み、
前記遅延損失率は、前記第1の遅延損失率と前記第2の遅延損失率の加重和に基づく、
上記C1に記載のデバイス。
[C9]
前記アナライザは、前記第2の遅延損失率に割り当てられた第2の重みよりも高い第1の重みを、前記第1の遅延損失率に割り当てるようにさらに構成される、上記C8に記載のデバイス。
[C10]
前記複数のパケットは電話呼中に受信され、前記第1の特定のパケットは音声データを含み、前記値は、前記電話呼中のトークスパートの開始時に決定される、上記C1に記載のデバイス。
[C11]
前記アナライザは、前記バッファが前記第1の特定のパケットを記憶しておらずかつ前記第1の特定のパケットの前記部分コピーを記憶していない、と決定したことに応答して、喪失パケットのカウントを更新するようにさらに構成され、前記エラー回復パラメータは、喪失パケットの前記カウントに少なくとも部分的に基づいて調整される、上記C1に記載のデバイス。
[C12]
前記アナライザは、第1のプレイバック時間において、前記第1の特定のパケットが前記バッファから消失している、および前記第1の特定のパケットの前記部分コピーが前記バッファに記憶されている、と決定したことに応答して、前記第1の特定のパケットの前記部分コピーに基づいて、処理された音声信号を生成するようにさらに構成される、上記C1に記載のデバイス。
[C13]
前記アナライザは、前記処理された音声信号を生成したのに続いて前記第1の特定のパケットを受信したことに応答して、遅延損失パケットのカウントを更新するようにさらに構成され、前記値は、遅延損失パケットの前記カウントに基づいて決定される、上記C12に記載のデバイス。
[C14]
前記アナライザは、前記エラー回復パラメータに少なくとも部分的に基づいて前記第1のプレイバック時間を決定するようにさらに構成される、上記C12に記載のデバイス。
[C15]
前記エラー回復パラメータはバッファ遅延を含み、前記アナライザは、前記第2の特定のパケットの受信タイムスタンプ、前記バッファ遅延、およびバッファタイムラインに基づいて、前記第1のプレイバック時間を決定するようにさらに構成される、上記C12に記載のデバイス。
[C16]
前記エラー回復パラメータはバッファ遅延を含み、前記アナライザは、
第1の受信タイムスタンプと前記バッファ遅延の和に基づいてバッファ時間を決定することと、ここにおいて、前記第1の受信タイムスタンプは、前記第2の特定のパケットの受信タイムスタンプに基づく、
第1の時間において、前記バッファ時間が前記第1の時間以上であり、および前記第1の特定のパケットが処理されるべき次のパケットであることをバッファタイムラインが示す、と決定したことに応答して、前記第1のプレイバック時間を検出することと、
を行うようにさらに構成される、上記C12に記載のデバイス。
[C17]
前記値は、取り出された部分コピーのカウントに対応し、前記アナライザは、取り出された部分コピーの前記カウントおよび喪失パケットのカウントに基づいて結果値を決定するようにさらに構成される、上記C16に記載のデバイス。
[C18]
前記アナライザは、取り出された部分コピーの前記カウントを品質メトリックで乗算することによって、加重値を生成するようにさらに構成され、前記結果値は、喪失パケットの前記カウントと前記加重値の和である、上記C17に記載のデバイス。
[C19]
前記エラー回復パラメータは、前記結果値が増分閾値を満足すると決定したことに応答して、増分量に基づいて調整される、上記C17に記載のデバイス。
[C20]
前記アナライザは、前記結果値と前記増分閾値との間の差に基づいて前記増分量を決定するようにさらに構成される、上記C19に記載のデバイス。
[C21]
前記エラー回復パラメータは、前記結果値が減分閾値を満足すると決定したことに応答して、減分量に基づいて調整される、上記C17に記載のデバイス。
[C22]
前記アナライザは、前記結果値と前記減分閾値との間の差に基づいて前記減分量を決定するようにさらに構成される、上記C21に記載のデバイス。
[C23]
送信機をさらに備え、
前記アナライザは、バッファが前記第1の特定のパケットを記憶していない、および再送信カウントが再送信閾値を満足する、と決定したことに応答して、
前記送信機を介して、第2のデバイスに再送メッセージを送り、
前記再送信カウントを更新するようにさらに構成され、
前記エラー回復パラメータは前記再送信閾値を含み、
前記再送メッセージは、前記第1の特定のパケットの再送信を要求する、上記C1に記載のデバイス。
[C24]
前記アナライザは、前記バッファが前記第1の特定のパケットを記憶している、前記再送信カウントが前記再送信閾値を満足できない、またはその両方である、と決定したことに応答して、前記第2のデバイスに前記再送メッセージを送るのを控えるようにさらに構成される、上記C23に記載のデバイス。
[C25]
前記第1の特定のパケットは音声データを含む、上記C1に記載のデバイス。
[C26]
前記第2のパケットは前記パケットのシーケンス中で前記第1のパケットよりも前である、上記C1に記載のデバイス。
[C27]
第1のデバイスにおいて、複数のパケットを受信することと、ここで、前記複数のパケットは、パケットのシーケンスの少なくともサブセットに対応し、前記複数のパケットはエラー訂正データを含み、前記複数のパケットのうちの第1のパケットの前記エラー訂正データは、第2のパケットの部分コピーを含む、
前記パケットのシーケンスのうちの特定のパケットがバッファから消失しているかどうか決定することと、
前記特定のパケットの部分コピーが別のパケット中のエラー訂正データとして前記バッファに記憶されているかどうか決定することと、
前記特定のパケットが前記バッファから消失しているかどうか、および前記特定のパケットの前記部分コピーが前記バッファに記憶されているかどうかに少なくとも部分的に基づいて、値を決定することと、
前記値に少なくとも部分的に基づいてエラー回復パラメータを調整することと、
を備える方法。
[C28]
前記エラー回復パラメータは、再送信閾値、前記バッファの深度、またはその両方を含む、上記C27に記載の方法。
[C29]
前記特定のパケットが前記バッファから消失している、および再送信カウントが再送信閾値を満足する、と決定したことに応答して、
第2のデバイスに再送信メッセージを送ることと、
前記再送信カウントを更新することと、
をさらに備え、
前記エラー回復パラメータは前記再送信閾値を含み、
前記再送信メッセージは前記特定のパケットの再送信を要求する、上記C27に記載の方法。
[C30]
前記バッファが前記特定のパケットを記憶している、再送信カウントが再送信閾値を満足できない、またはその両方である、と決定したことに応答して、前記第2のデバイスに前記再送信メッセージを送るのを控えることをさらに備える、上記C29に記載の方法。
[C31]
命令を記憶するコンピュータ可読記憶デバイスであって、前記命令は、プロセッサによって実行されると、前記プロセッサに、
複数のパケットを受信することと、ここで、前記複数のパケットは、パケットのシーケンスの少なくともサブセットに対応し、前記複数のパケットはエラー訂正データを含み、前記複数のパケットのうちの第1のパケットの前記エラー訂正データは、第2のパケットの部分コピーを含む、
前記パケットのシーケンスのうちの特定のパケットがバッファから消失しているかどうか決定することと、
前記特定のパケットの部分コピーが別のパケット中のエラー訂正データとして前記バッファに記憶されているかどうか決定することと、
前記特定のパケットが前記バッファから消失しているかどうか、および前記特定のパケットの前記部分コピーが前記バッファに記憶されているかどうか、に少なくとも部分的に基づいて、値を決定することと、
前記値に少なくとも部分的に基づいてエラー回復パラメータを調整することと、
を備える動作を実施させる、コンピュータ可読記憶デバイス。
[C32]
前記エラー回復パラメータは、前記バッファの深度、再送信閾値、またはその両方を含む、上記C31に記載のコンピュータ可読記憶デバイス。
[C33]
複数のパケットを受信するための手段と、ここで、前記複数のパケットはパケットのシーケンスの少なくともサブセットに対応し、前記複数のパケットはエラー訂正データを含み、前記複数のパケットのうちの第1のパケットの前記エラー訂正データは、第2のパケットの部分コピーを含む、
エラー回復のための手段と、
を備え、エラー回復のための前記手段は、
前記パケットのシーケンスのうちの特定のパケットがバッファから消失しているかどうか決定することと、
前記特定のパケットの部分コピーが別のパケット中のエラー訂正データとして前記バッファに記憶されているかどうか決定することと、
前記特定のパケットが前記バッファから消失しているかどうか、および前記特定のパケットの前記部分コピーが前記バッファに記憶されているかどうかに少なくとも部分的に基づいて、値を更新することと、
前記値に少なくとも部分的に基づいてエラー回復パラメータを調整することと、
を行うように構成される、装置。
[C34]
前記エラー回復パラメータは、前記バッファの深度、再送信閾値、またはその両方を含む、上記C33に記載の装置。
[C35]
受信するための前記手段およびエラー回復のための前記手段は、デコーダ、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、またはコンピュータの中に一体化される、上記C33に記載の装置。