(57)【特許請求の範囲】
【請求項１】
複数のパケットを受信するように構成された受信機と、ここで、前記複数のパケットは、パケットのシーケンスの少なくともサブセットに対応する、
前記複数のパケットを記憶するように構成されたバッファと、
アナライザであって、
前記パケットのシーケンスのうちの特定のパケットが前記バッファから消失しているかどうか決定することと、
前記特定のパケットの部分コピーが別のパケット中のエラー訂正データとして前記バッファに記憶されているかどうか決定することと、
前記バッファが前記特定のパケットを記憶していない、前記バッファが前記特定のパケットの前記部分コピーを記憶していない、および再送信カウントが再送信閾値を満足するという決定に少なくとも部分的に基づいて、第２のデバイスへの再送メッセージの送信を開始することと、
前記第２のデバイスへの前記再送メッセージの送信に続いて、前記再送信カウントを更新することと、
前記特定のパケットが前記バッファから消失している、および前記特定のパケットの前記部分コピーが前記バッファに記憶されている、と決定したことに応答して、取り出された部分コピーのカウントを更新することと、
前記バッファが前記特定のパケットを記憶しておらずかつ前記特定のパケットの前記部分コピーを記憶していない、と決定したことに応答して、喪失パケットのカウントを更新することと、
取り出された部分コピーの前記カウントおよび喪失パケットの前記カウントに基づいて、前記再送信閾値を更新することと、
を行うように構成されたアナライザと、
復号されたパケットを生成するために前記特定のパケットの再送信されたバージョンを復号するように構成された音声デコーダと、ここで、前記特定のパケットの前記再送信されたバージョンは、前記再送メッセージの送信に応答して受信される、
前記復号されたパケットに基づいてオーディオを出力するように構成された１つまたは複数のスピーカーと、
を備えるデバイス。
【請求項２】
前記再送メッセージは前記特定のパケットの再送信を要求する、請求項１に記載のデバイス。
【請求項３】
前記第２のデバイスに前記再送メッセージを送信するように構成された送信機をさらに備え、ここにおいて、前記受信機および前記送信機はトランシーバに含まれる、請求項１に記載のデバイス。
【請求項４】
前記アナライザは、取り出された部分コピーの前記カウントおよび喪失パケットの前記カウントに基づいて結果値を決定するようにさらに構成され、前記再送信閾値は、前記結果値が増分閾値を満足すると決定したことに応答して、増分量だけ増大される、請求項１に記載のデバイス。
【請求項５】
前記アナライザは、取り出された部分コピーの前記カウントおよび喪失パケットの前記カウントに基づいて結果値を決定するようにさらに構成され、前記再送信閾値は、前記結果値が減分閾値を満足すると決定したことに応答して、減分量だけ減少される、請求項１に記載のデバイス。
【請求項６】
前記アナライザは、
取り出された部分コピーの前記カウントを品質メトリックで乗算することによって、加重値を生成することと、
喪失パケットの前記カウントと前記加重値の和に基づいて結果値を決定することと、
を行うようにさらに構成され、
前記再送信閾値は、前記結果値が閾値を満足するかどうか決定したことに基づいて更新される、請求項１に記載のデバイス。
【請求項７】
通信の方法であって、
デバイスにおいて複数のパケットを受信することと、ここで、前記複数のパケットは、パケットのシーケンスの少なくともサブセットに対応する、
前記デバイスにおいて、前記パケットのシーケンスのうちの特定のパケットがバッファから消失しているかどうか決定することと、
前記デバイスにおいて、前記特定のパケットの部分コピーが別のパケット中のエラー訂正データとして前記バッファに記憶されているかどうか決定することと、
前記バッファが前記特定のパケットを記憶していない、前記バッファが前記特定のパケットの前記部分コピーを記憶していない、および再送信カウントが再送信閾値を満足すると決定したことに少なくとも部分的に基づいて、前記デバイスから第２のデバイスに再送メッセージを送ることと、
前記第２のデバイスに前記再送メッセージを送ったのに続いて、前記再送信カウントを更新することと、
前記特定のパケットが前記バッファから消失している、および前記特定のパケットの前記部分コピーが前記バッファに記憶されている、と決定したことに応答して、前記デバイスにおいて、取り出された部分コピーのカウントを更新することと、
前記バッファが前記特定のパケットを記憶しておらずかつ前記特定のパケットの前記部分コピーを記憶していない、と決定したことに応答して、前記デバイスにおいて、喪失パケットのカウントを更新することと、
取り出された部分コピーの前記カウントおよび喪失パケットの前記カウントに基づいて、前記再送信閾値を更新することと、
復号されたパケットを生成するために前記特定のパケットの再送信されたバージョンを復号することと、ここで、前記特定のパケットの前記再送信されたバージョンは、前記再送メッセージの送信に応答して受信される、
前記復号されたパケットに基づいてオーディオを出力することと、
を備える方法。
【請求項８】
取り出された部分コピーの前記カウントを品質メトリックで乗算することによって、加重値を決定することと、
喪失パケットの前記カウントと前記加重値の和に基づいて結果値を決定することと、
をさらに備え、
前記再送信閾値は、前記結果値が増分閾値を満足すると決定したことに応答して、増分量だけ増大される、請求項７に記載の方法。
【請求項９】
前記結果値と前記増分閾値との間の差に基づいて前記増分量を決定することをさらに備える、請求項８に記載の方法。
【請求項１０】
取り出された部分コピーの前記カウントを品質メトリックで乗算することによって、加重値を決定することと、
喪失パケットの前記カウントと前記加重値の和に基づいて結果値を決定することと、
をさらに備え、
前記再送信閾値は、前記結果値が減分閾値を満足すると決定したことに応答して、減分量だけ減少される、請求項７に記載の方法。
【請求項１１】
前記結果値と前記減分閾値との間の差に基づいて前記減分量を決定することをさらに備える、請求項１０に記載の方法。
【請求項１２】
命令を記憶するコンピュータ可読記憶デバイスであって、前記命令は、プロセッサによって実行されると、前記プロセッサに、
複数のパケットを受信することと、ここで、前記複数のパケットは、パケットのシーケンスの少なくともサブセットに対応する、
前記パケットのシーケンスのうちの特定のパケットがバッファから消失しているかどうか決定することと、
前記特定のパケットの部分コピーが別のパケット中のエラー訂正データとして前記バッファに記憶されているかどうか決定することと、
前記バッファが前記特定のパケットを記憶していない、前記バッファが前記特定のパケットの前記部分コピーを記憶していない、および再送信カウントが再送信閾値を満足すると決定したことに少なくとも部分的に基づいて、デバイスへの再送メッセージの送信を開始することと、
前記デバイスへの前記再送メッセージの送信に続いて、前記再送信カウントを更新することと、
前記特定のパケットが前記バッファから消失している、および前記特定のパケットの前記部分コピーが前記バッファに記憶されている、と決定したことに応答して、取り出された部分コピーのカウントを更新することと、
前記バッファが前記特定のパケットを記憶しておらずかつ前記特定のパケットの前記部分コピーを記憶していない、と決定したことに応答して、喪失パケットのカウントを更新することと、
取り出された部分コピーの前記カウントおよび喪失パケットの前記カウントに基づいて、前記再送信閾値を更新することと、
復号されたパケットを生成するために前記特定のパケットの再送信されたバージョンを復号することと、ここで、前記特定のパケットの前記再送信されたバージョンは、前記再送メッセージの送信に応答して受信される、
前記復号されたパケットに基づいてオーディオを出力することと、
を備える動作を実施させる、コンピュータ可読記憶デバイス。
【請求項１３】
前記動作は、前記バッファが前記特定のパケットを記憶している、前記バッファが前記特定のパケットの前記部分コピーを記憶している、再送信カウントが再送信閾値を満足できない、またはそれらの組合せである、と決定したことに応答して、前記デバイスに前記再送メッセージを送るのを控えることをさらに備える、請求項１２に記載のコンピュータ可読記憶デバイス。
【請求項１４】
前記動作は、
取り出された部分コピーの前記カウントを品質メトリックで乗算することによって、加重値を決定することと、
喪失パケットの前記カウントと前記加重値の和に基づいて結果値を決定することと、ここにおいて、前記再送信閾値は前記結果値に基づいて更新される、
をさらに備える、請求項１２に記載のコンピュータ可読記憶デバイス。
【請求項１５】
前記動作は、
前記特定のパケットが前記バッファから消失しているかどうか、および前記特定のパケットの前記部分コピーが前記バッファに記憶されているかどうかに基づいて結果値を決定することと、
前記結果値が増分閾値を満足すると決定したことに応答して、
前記結果値と前記増分閾値との間の差に基づいて増分量を決定することと、
前記増分量に基づいて前記再送信閾値を増大させることと、
をさらに備える、請求項１２に記載のコンピュータ可読記憶デバイス。
【請求項１６】
前記動作は、
前記特定のパケットが前記バッファから消失しているかどうか、および前記特定のパケットの前記部分コピーが前記バッファに記憶されているかどうかに基づいて結果値を決定することと、
前記結果値が減分閾値を満足すると決定したことに応答して、減分量に基づいて前記再送信閾値を減少させることと、
をさらに備える、請求項１２に記載のコンピュータ可読記憶デバイス。
【請求項１７】
前記動作は、前記結果値と前記減分閾値との間の差に基づいて前記減分量を決定することをさらに備える、請求項１６に記載のコンピュータ可読記憶デバイス。
【請求項１８】
前記複数のパケットは、エラー訂正データを含み、ここにおいて、前記複数のパケットの第１のパケットの前記エラー訂正データは、前記複数のパケットの第２のパケットの部分コピーを含み、前記第２のパケットは前記パケットのシーケンス中で前記第１のパケットよりも前である、請求項１２に記載のコンピュータ可読記憶デバイス。
【請求項１９】
複数のパケットを受信するための手段と、ここで、前記複数のパケットは、パケットのシーケンスの少なくともサブセットに対応する、
エラー回復のための手段と、エラー回復のための前記手段は、
前記パケットのシーケンスのうちの特定のパケットがバッファから消失しているかどうか決定することと、
前記特定のパケットの部分コピーが別のパケット中のエラー訂正データとして前記バッファに記憶されているかどうか決定することと、
を行うように構成され、
前記バッファが前記特定のパケットを記憶していない、前記バッファが前記特定のパケットの前記部分コピーを記憶していない、および再送信カウントが再送信閾値を満足すると決定したことに少なくとも部分的に基づいて、第２のデバイスに再送メッセージを送るための手段と、
前記第２のデバイスに前記再送メッセージを送ったのに続いて、前記再送信カウントを更新するための手段と、
前記特定のパケットが前記バッファから消失している、および前記特定のパケットの前記部分コピーが前記バッファに記憶されている、と決定したことに応答して、取り出された部分コピーのカウントを更新するための手段と、
前記バッファが前記特定のパケットを記憶しておらずかつ前記特定のパケットの前記部分コピーを記憶していない、と決定したことに応答して、喪失パケットのカウントを更新するための手段と、
取り出された部分コピーの前記カウントおよび喪失パケットの前記カウントに基づいて、前記再送信閾値を更新するための手段と、
復号されたパケットを生成するために前記特定のパケットの再送信されたバージョンを復号するための手段と、ここで、前記特定のパケットの前記再送信されたバージョンは、前記再送メッセージの送信に応答して受信される、
前記復号されたパケットに基づいてオーディオを出力するための手段と、
を備える、装置。
【請求項２０】
受信するための前記手段、エラー回復のための前記手段、送るための前記手段、復号するための前記手段、および出力するための前記手段は、デコーダ、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末（ＰＤＡ）、またはコンピュータの中に一体化される、請求項１９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
[0001]本出願は、その内容全体が参照により組み込まれる、両方とも「ＳＹＳＴＥＭ  ＡＮＤ  ＭＥＴＨＯＤ  ＯＦ  ＲＥＤＵＮＤＡＮＣＹ  ＢＡＳＥＤ  ＰＡＣＫＥＴ  ＴＲＡＮＳＭＩＳＳＩＯＮ  ＥＲＲＯＲ  ＲＥＣＯＶＥＲＹ」と題する、２０１４年７月３１日に出願された米国仮特許出願第６２／０３１，６７５号および２０１５年７月２４日に出願された米国特許出願第１４／８０９，０９８号の優先権を主張する。
【０００２】
[0002]本開示は概して、冗長性に基づくパケット送信エラー回復（redundancy based packet transmission error recovery）に関する。
【背景技術】
【０００３】
[0003]技術の進歩は、より小さくより強力なコンピューティングデバイスをもたらしている。たとえば、小型軽量でユーザが携行し易いポータブルワイヤレス電話、携帯情報端末（ＰＤＡ）、およびページングデバイスなどのワイヤレスコンピューティングデバイスを含む、様々なポータブルパーソナルコンピューティングデバイスが現在存在する。より具体的には、セルラー電話やインターネットプロトコル（ＩＰ）電話などのポータブルワイヤレス電話は、ボイス（voice）およびデータパケットを、ワイヤレスネットワークを介して通信することができる。さらに、多くのそのようなワイヤレス電話は、その中に組み込まれている他のタイプのデバイスを含む。たとえば、ワイヤレス電話が、デジタルスチルカメラ、デジタルビデオカメラ、デジタルレコーダ、およびオーディオファイルプレーヤを含むこともある。さらに、そのようなワイヤレス電話は、インターネットにアクセスするために使用され得るウェブブラウザアプリケーションなどのソフトウェアアプリケーションを含む、実行可能命令を処理することができる。したがって、これらのワイヤレス電話はかなりの計算能力を含み得る。
【０００４】
[0004]デジタル技法によるボイス（voice）の伝送は、特に長距離およびデジタル無線電話用途において普及している。復元された音声（speech）の知覚品質を維持しながら、チャネルを介して送られ得る情報の最小量を決定することに対する関心があり得る。音声がサンプリングおよびデジタル化によって送信される場合、６４キロビット毎秒（ｋｂｐｓ）程度のデータレートが、アナログ電話の音声品質を達成するために使用され得る。音声分析の使用と、後続のコーディング、送信、および受信機における再合成によって、データレートの有意な低減が達成され得る。
【０００５】
[0005]音声を圧縮するためのデバイスが、電気通信の多くの分野で用途を見出し得る。例示的な分野はワイヤレス通信である。ワイヤレス通信の分野は、たとえば、コードレス電話、ページング、ワイヤレスローカルループ、セルラー電話システムおよびパーソナル通信サービス（ＰＣＳ）電話システムなどのワイヤレステレフォニー、モバイルインターネットプロトコル（ＩＰ）テレフォニー、ならびに衛星通信システムを含む、多くの適用例を有する。特定の適用例は、モバイル加入者のためのワイヤレステレフォニーである。
【０００６】
[0006]様々なオーバージエアインターフェースが、たとえば、周波数分割多元接続（ＦＤＭＡ）、時分割多元接続（ＴＤＭＡ）、符号分割多元接続（ＣＤＭＡ）、および時分割同期ＣＤＭＡ（ＴＤ−ＳＣＤＭＡ）を含むワイヤレス通信システム用に開発されてきた。これらのインターフェースに関連して、たとえば高度モバイルフォンサービス（ＡＭＰＳ）、モバイル通信用グローバルシステム（ＧＳＭ（登録商標））、およびインターリムスタンダード９５（ＩＳ−９５）などを含む様々な国内および国際規格が策定されている。例示的なワイヤレス電話通信システムは符号分割多元接続（ＣＤＭＡ）システムである。ＩＳ−９５規格およびそれの派生物ＩＳ−９５Ａ、ＡＮＳＩ  Ｊ−ＳＴＤ−００８、およびＩＳ−９５Ｂ（本明細書ではＩＳ−９５と総称される）は、セルラーまたはＰＣＳ電話通信システムのためのＣＤＭＡオーバージエアインターフェースの使用を規定するために、電気通信工業会（ＴＩＡ）および他のよく知られている規格化団体によって策定されている。
【０００７】
[0007]ＩＳ−９５規格は、その後、より多くの容量および高速パケットデータサービスを与えるｃｄｍａ２０００およびＷＣＤＭＡ（登録商標）などの「３Ｇ」システムに発展した。ｃｄｍａ２０００の２つのバリエーションは、ＴＩＡによって発行された文書ＩＳ−２０００（ｃｄｍａ２０００  １ｘＲＴＴ）およびＩＳ−８５６（ｃｄｍａ２０００  １ｘＥＶ−ＤＯ）によって提示されている。ｃｄｍａ２０００  １ｘＲＴＴ通信システムは１５３ｋｂｐｓのピークデータレートを提供し、ｃｄｍａ２０００  １ｘＥＶ−ＤＯ通信システムは、３８．４ｋｂｐｓから２．４Ｍｂｐｓに及ぶ、データレートのセットを定義する。ＷＣＤＭＡ規格は、第３世代パートナーシッププロジェクト「３ＧＰＰ（登録商標）」、文書番号３Ｇ  ＴＳ  ２５．２１１、３Ｇ  ＴＳ  ２５．２１２、３Ｇ  ＴＳ  ２５．２１３、および３Ｇ  ＴＳ  ２５．２１４に具現されている。国際モバイル電気通信アドバンスト（ＩＭＴアドバンスト）仕様は「４Ｇ」規格を提示している。ＩＭＴアドバンスト仕様は、４Ｇサービス用のピークデータレートを、（たとえば、列車および車からの）高モビリティ通信のために１００メガビット毎秒（Ｍｂｉｔ／ｓ）に設定し、（たとえば、歩行者および静止ユーザからの）低モビリティ通信のために１ギガビット毎秒（Ｇｂｉｔ／ｓ）に設定する。
【０００８】
[0008]人間音声生成（human speech generation）のモデルに関係するパラメータを抽出することによって音声を圧縮するための技法を採用するデバイスは、音声コーダ（speech coders）と呼ばれる。音声コーダはエンコーダとデコーダとを備え得る。エンコーダは、着信音声信号（incoming speech signal）を、時間のブロック、または分析フレームに分割する。時間（または「フレーム」）における各セグメントの持続時間は、信号のスペクトルエンベロープが比較的定常のままであることが予想され得るほど十分に短くなるように選択され得る。たとえば、特定の適用例に好適と見なされる任意のフレーム長またはサンプリングレートが使用され得るが、１つのフレーム長は２０ミリ秒であり、それは、８キロヘルツ（ｋＨｚ）のサンプリングレートで１６０個のサンプルに対応する。
【０００９】
[0009]エンコーダは、いくつかの関連するパラメータを抽出するために着信音声フレームを分析し、次いで、それらのパラメータを、２進表現に、たとえば、ビットのセットまたはバイナリデータパケットに量子化する。データパケットは、通信チャネル（すなわち、ワイヤードおよび／またはワイヤレスネットワーク接続）を介して受信機およびデコーダに送信される。デコーダは、データパケットを処理し、パラメータを作り出すために、処理されたデータパケットを逆量子化し、逆量子化されたパラメータを使用して音声フレームを再合成する。
【００１０】
[0010]音声コーダの機能は、音声に固有の自然冗長性を除去することによって、デジタル化された音声信号を低ビットレート信号に圧縮することである。デジタル圧縮は、入力音声フレームをパラメータのセットで表し、パラメータをビットのセットで表すために量子化を採用することによって達成され得る。入力音声フレームがビット数Ｎiを有し、音声コーダによって作り出されたデータパケットがビット数Ｎoを有する場合、音声コーダによって達成される圧縮係数はＣr＝Ｎi／Ｎoである。課題は、ターゲット圧縮係数を達成しながら、復号音声の高いボイス品質を保持することである。音声コーダの性能は、（１）音声モデル、または上記で説明した分析および合成プロセスの組合せがどのくらいうまく機能するか、ならびに（２）パラメータ量子化プロセスがＮoビット毎フレームのターゲットビットレートでどの程度うまく実施されるかに依存する。音声モデルの目的は、したがって、各フレームについてパラメータの小さいセットを用いて、音声信号の本質、またはターゲットボイス品質をキャプチャすることである。
【００１１】
[0011]音声コーダは、概して、音声信号を記述するために（ベクトルを含む）パラメータのセットを利用する。パラメータの良好なセットは、理想的には、知覚的に正確な音声信号の復元のために低いシステム帯域幅を与える。ピッチ、信号電力、スペクトルエンベロープ（またはホルマント（formants））、振幅および位相スペクトルは、音声コーディングパラメータの例である。
【００１２】
[0012]音声コーダは、音声の小さいセグメント（たとえば、５ミリ秒（ｍｓ）のサブフレーム）を一度に符号化するために高時間分解能処理を採用することによって時間領域音声波形をキャプチャすることを試みる、時間領域コーダとして実装され得る。各サブフレームについて、コードブック空間からの高精度代表（high-precision representative）が探索アルゴリズムによって見つけられる。代替的に、音声コーダは、パラメータのセットを用いて入力音声フレームの短期音声スペクトルをキャプチャすること（分析）と、スペクトルパラメータから音声波形を再作成するために対応する合成プロセスを採用することとを試みる、周波数領域コーダとして実装され得る。パラメータ量子化器は、知られている量子化技法に従ってコードベクトルの記憶された表現を用いてパラメータを表すことによって、パラメータを保存する。
【００１３】
[0013]１つの時間領域音声コーダは、コード励起線形予測（ＣＥＬＰ：Code Excited Linear Predictive）コーダである。ＣＥＬＰコーダにおいて、音声信号中の短期相関、または冗長性は、短期ホルマントフィルタの係数を見つける線形予測（ＬＰ）分析によって除去される。短期予測フィルタを着信音声フレームに適用することは、ＬＰ残差信号を生成し、このＬＰ残差信号は、長期予測フィルタパラメータと後続の確率コードブックとを用いてさらにモデル化され、量子化される。したがって、ＣＥＬＰコーディングは、時間領域音声波形を符号化するタスクを、ＬＰ短期フィルタ係数を符号化することと、ＬＰ残差を符号化することとの別個のタスクに分割する。時間領域コーディングは、固定レートで（すなわち、フレームごとに同じビット数Ｎoを使用して）実施されるか、または（異なるタイプのフレームコンテンツのために異なるビットレートが使用される）可変レートで実施され得る。可変レートコーダは、コーデックパラメータを、ターゲット品質を取得するのに十分なレベルに符号化するために必要とされるビット量を使用することを試みる。
【００１４】
[0014]ＣＥＬＰコーダなどの時間領域コーダは、時間領域音声波形の正確さを保つために、フレームごとの高いビット数Ｎ0に依拠し得る。そのようなコーダは、フレームごとのビット数Ｎoが比較的大きい（たとえば、８ｋｂｐｓ以上）とすれば、優れたボイス品質を送出し得る。低ビットレート（たとえば、４ｋｂｐｓ以下）において、時間領域コーダは、利用可能なビットの限られた数により、高品質およびロバストな性能を保持することができないことがある。低ビットレートにおいて、限られたコードブック空間は、より高いレートの商業用途において展開される時間領域コーダの波形適合能力をクリッピングする。したがって、時間による改善にもかかわらず、低ビットレートで動作する多くのＣＥＬＰコーディングシステムには、雑音として特徴づけられる知覚的に有意なひずみという欠点がある。
【００１５】
[0015]低ビットレートにおけるＣＥＬＰコーダに対する代替物は、ＣＥＬＰコーダと同様の原理で動作する「雑音励振線形予測」（ＮＥＬＰ：Noise Excited Linear Predictive）コーダである。ＮＥＬＰコーダは、音声をモデル化するために、コードブックではなく、フィルタ処理された擬似ランダム雑音信号を使用する。ＮＥＬＰはコード化音声のためにより単純なモデルを使用するので、ＮＥＬＰはＣＥＬＰよりも低いビットレートを達成する。ＮＥＬＰは、無声音声または無音を圧縮するかまたは表すために使用され得る。
【００１６】
[0016]２．４ｋｂｐｓ程度のレートで動作するコーディングシステムは一般に、本質的にパラメトリックである。すなわち、そのようなコーディングシステムは、音声信号のピッチ周期とスペクトルエンベロープ（またはホルマント）とを記述するパラメータを一定の間隔で送信することによって動作する。これらのいわゆるパラメトリックコーダを示すのが、ＬＰボコーダシステムである。
【００１７】
[0017]ＬＰボコーダは、ピッチ周期ごとに有声音声信号を単一のパルスでモデル化する。この基本技法は、特に、スペクトルエンベロープに関する送信情報を含むように拡張され得る。ＬＰボコーダが概して妥当な性能を提供するが、それらは、バズ（buzz）として特徴づけられる、知覚的に有意なひずみを導入することがある。
【００１８】
[0018]近年、波形コーダとパラメトリックコーダの両方のハイブリッドであるコーダが出現している。これらのいわゆるハイブリッドコーダを示すのが、プロトタイプ波形補間（ＰＷＩ：prototype-waveform interpolation）音声コーディングシステムである。ＰＷＩコーディングシステムは、プロトタイプピッチ周期（ＰＰＰ：prototype pitch period）音声コーダとして知られていることもある。ＰＷＩコーディングシステムは、有声音声をコーディングするための効率的な方法を与える。ＰＷＩの基本的概念は、固定間隔で代表的なピッチ周期（プロトタイプ波形）を抽出すること、その記述を送信すること、および、プロトタイプ波形間を補間することによって音声信号を復元することである。ＰＷＩ方法は、ＬＰ残差信号または音声信号のいずれに対しても作用し得る。
【００１９】
[0019]ワイヤレス電話機などの電子デバイスは、ネットワークを介してデータを送り、受信することができる。たとえば、オーディオデータが、回線交換ネットワーク（たとえば、公衆交換電話網（ＰＳＴＮ）、モバイル通信用グローバルシステム（ＧＳＭ）ネットワークなど）またはパケット交換ネットワーク（たとえば、ボイスオーバーインターネットプロトコル（ＶｏＩＰ）ネットワーク、ボイスオーバーロングタームエボリューション（ＶｏＬＴＥ）ネットワークなど）を介して、送られ、受信され得る。パケット交換ネットワークでは、オーディオパケットは、ソースデバイスから宛先デバイスへ個別にルーティングされ得る。ネットワーク状態に起因して、オーディオパケットが、順序が乱れて到着する場合がある。宛先デバイスは、受信パケットをデジッタバッファ内に記憶することができ、受信パケットの順序が乱れている場合は、受信パケットを並べ替えることができる。
【００２０】
[0020]宛先デバイスは、受信パケットに基づいてデータを復元することができる。ソースデバイスによって送られた特定のパケットは、宛先デバイスによって、受信されない場合もあり、エラーありで受信される場合もある。宛先デバイスは、特定のパケットに関連付けられたデータの全部または一部分を回復することができない場合がある。宛先デバイスは、不完全なパケットに基づいてデータを復元する場合がある。不完全なパケットに基づいて復元されたデータは、ユーザエクスペリエンスに悪影響を与える、低下した品質を有する場合がある。代替として、宛先デバイスは、ソースデバイスに特定のパケットを再送信するよう要求し、再送信されたパケットを受信するのを待つ間、データを復元するのを遅延させることができる。再送信を要求すること、および再送信されたパケットに基づいてデータを復元することに関連付けられた遅延は、ユーザにとって認知可能である場合があり、好ましくないユーザエクスペリエンスを生じる場合がある。
【発明の概要】
【００２１】
[0021]特定の態様では、デバイスは、受信機と、バッファと、送信機と、アナライザとを含む。受信機は、複数のパケットを受信するように構成される。複数のパケットは、パケットのシーケンスの少なくともサブセットに対応する。複数のパケットはエラー訂正データを含む。複数のパケットのうちの第１のパケットのエラー訂正データは、複数のパケットのうちの第２のパケットの部分コピーを含む。バッファは、複数のパケットを記憶するように構成される。アナライザは、パケットのシーケンスのうちの特定のパケットがバッファから消失しているかどうか決定するように、および特定のパケットの部分コピーが別のパケット中のエラー訂正データとしてバッファに記憶されているかどうか決定するように構成される。アナライザは、また、バッファが特定のパケットを記憶していない、およびバッファが特定のパケットの部分コピーを記憶していない、と決定したことに少なくとも部分的に基づいて、送信機を介して、第２のデバイスに再送メッセージを送るように構成される。
【００２２】
[0022]別の特定の態様では、通信の方法は、デバイスにおいて複数のパケットを受信することを含み、複数のパケットは、パケットのシーケンスの少なくともサブセットに対応する。複数のパケットはエラー訂正データを含む。複数のパケットのうちの第１のパケットのエラー訂正データは、複数のパケットのうちの第２のパケットの部分コピーを含む。方法は、デバイスにおいて、パケットのシーケンスのうちの特定のパケットがバッファから消失しているかどうか決定することも含む。方法は、デバイスにおいて、特定のパケットの部分コピーが別のパケット中のエラー訂正データとしてバッファに記憶されているかどうか決定することをさらに含む。方法は、また、バッファが特定のパケットを記憶していない、およびバッファが特定のパケットの部分コピーを記憶していない、と決定したことに少なくとも部分的に基づいて、デバイスから第２のデバイスに再送メッセージを送ることを含む。
【００２３】
[0023]また別の特定の態様では、コンピュータ可読記憶デバイスが、プロセッサによって実行されると、プロセッサに、複数のパケットを受信することを含む動作を実施させる命令を記憶する。複数のパケットは、パケットのシーケンスの少なくともサブセットに対応する。複数のパケットはエラー訂正データを含む。複数のパケットのうちの第１のパケットのエラー訂正データは、複数のパケットのうちの第２のパケットの部分コピーを含む。動作は、パケットのシーケンスのうちの特定のパケットがバッファから消失しているかどうか決定することも含む。動作は、特定のパケットの部分コピーが別のパケット中のエラー訂正データとしてバッファに記憶されているかどうか決定することをさらに含む。動作は、また、バッファが特定のパケットを記憶していない、およびバッファが特定のパケットの部分コピーを記憶していない、と決定したことに少なくとも部分的に基づいて、デバイスに再送メッセージを送ることを含む。
【００２４】
[0024]本開示の他の態様、利点、および特徴は、以下のセクション、すなわち図面の簡単な説明、詳細な説明、および特許請求の範囲を含む、本明細書の検討後に明らかになるであろう。
【図面の簡単な説明】
【００２５】
【図１】[0025]冗長性に基づくパケット送信エラー回復を実施するように動作可能なシステムの特定の例示的態様のブロック図。
【図２】[0026]冗長性に基づくパケット送信エラー回復の方法の特定の態様の図。
【図３】[0027]冗長性に基づくパケット送信エラー回復の方法の別の特定の態様の図。
【図４】[0028]冗長性に基づくパケット送信エラー回復の方法の別の特定の態様の図であって、図３の３０２に対応し得る図。
【図５】[0029]冗長性に基づくパケット送信エラー回復を実施するように動作可能なシステムの別の特定の態様の図。
【図６】[0030]冗長性に基づくパケット送信エラー回復の特定の方法を示すフローチャート。
【図７】[0031]冗長性に基づくパケット送信エラー回復の別の特定の方法を示すフローチャート。
【図８】[0032]冗長性に基づくパケット送信エラー回復の別の特定の方法を示すフローチャート。
【図９】[0033]冗長性に基づくパケット送信エラー回復を実施するように動作可能なデバイスの特定の例示的態様のブロック図。
【発明を実施するための形態】
【００２６】
[0034]本明細書に記載する原理は、たとえば、ヘッドセット、ハンドセット、他のオーディオデバイス、または冗長性に基づくパケット送信エラー回復を実施するように構成されたデバイスの構成要素に適用され得る。その文脈によって明確に限定されない限り、「信号」という用語は、本明細書では、ワイヤ、バス、または他の伝送媒体上で表されるメモリロケーション（またはメモリロケーションのセット）の状態を含む、その通常の意味のいずれをも示すために使用される。その文脈によって明確に限定されない限り、「生成すること（generating）」という用語は、本明細書では、計算すること（computing）または他の何らかの方法で作り出すこと（producing）など、その通常の意味のいずれをも示すために使用される。その文脈によって明確に限定されない限り、「算出すること（calculating）」という用語は、本明細書では、複数の値から計算すること（computing）、評価、平滑化、および／または選択など、その通常の意味のいずれをも示すのに使用される。その文脈によって明確に限定されない限り、「取得すること（obtaining）」という用語は、算出すること（calculating）、導出すること、（たとえば、別の構成要素、ブロックもしくはデバイスから）受信すること、および／または（たとえば、メモリレジスタ、もしくは記憶要素のアレイから）取り出すことなど、その通常の意味のいずれをも示すのに使用される。
【００２７】
[0035]その文脈によって明確に限定されない限り、「作り出すこと（producing）」という用語は、算出すること、生成すること、および／または提供することなど、その通常の意味のいずれをも示すのに使用される。その文脈によって明確に限定されない限り、「提供すること（providing）」という用語は、算出すること、生成すること、および／または作り出すことなど、その通常の意味のいずれをも示すのに使用される。その文脈によって明確に限定されない限り、「結合される」という用語は、直接または間接的な電気または物理接続を示すのに使われる。接続が間接的である場合、「結合」されている構造の間には他のブロックまたは構成要素が存在し得ることが、当業者にはよく理解されよう。
【００２８】
[0036]「構成」という用語は、その特定の文脈によって示されるように、方法、装置／デバイス、および／またはシステムに関して使用され得る。「備える（comprising）」という用語は、本明細書と特許請求の範囲とにおいて使用される場合、他の要素または動作を除外するものではない。「に基づく」（「ＡはＢに基づく」など）という用語は、（ｉ）「少なくとも〜に基づく」（たとえば、「Ａは少なくともＢに基づく」）、および特定の文脈で適当な場合に、（ｉｉ）「に等しい」（たとえば、「ＡはＢに等しい」）という場合を含む、その通常の意味のいずれをも示すのに使用される。ＡがＢに基づく（ｉ）が、〜に少なくとも基づくことを含む場合、これは、ＡがＢに結合される構成を含み得る。同様に、「に応答して」という用語は、「少なくとも〜に応答して」を含む、その通常の意味のいずれをも示すために使用される。「少なくとも１つの」という用語は、「１つまたは複数の」を含む、その通常の意味のいずれをも示すのに使われる。「少なくとも２つの」という用語は、「２つ以上の」を含む、その通常の意味のいずれをも示すのに使われる。
【００２９】
[0037]「装置」および「デバイス」という用語は、特定の文脈によって別段に規定されていない限り、一般的に、互換的に使用される。別段に規定されていない限り、特定の特徴を有する装置の動作のいかなる開示も、類似の特徴を有する方法を開示する（その逆も同様）ことをも明確に意図し、特定の構成による装置の動作のいかなる開示も、類似の構成による方法を開示する（その逆も同様）ことをも明確に意図する。「方法」、「プロセス」、「プロシージャ」、および「技法」という用語は、特定の文脈によって別段に規定されていない限り、一般的に、互換的に使用される。「要素」および「モジュール」という用語は、より大きな構成の一部を示すのに使用され得る。「パケット」という用語は、１つまたは複数のフレームに対応し得る。文書の一部分の参照による任意の組込みは、その部分内で言及された用語または変数の定義が、文書中の他の場所に現れ、ならびに組み込まれた部分で参照される任意の図に現れた場合、そのような定義を組み込んでいることも理解されたい。
【００３０】
[0038]本明細書で使用する「通信デバイス」という用語は、ワイヤレス通信ネットワークを通したボイスおよび／またはデータ通信のために使用され得る電子デバイスを指す。通信デバイスの例としては、セルラーフォン、携帯情報端末（ＰＤＡ）、ハンドヘルドデバイス、ヘッドセット、ワイヤレスモデム、ラップトップコンピュータ、パーソナルコンピュータなどがある。
【００３１】
[0039]図１を参照すると、冗長性に基づくエラー回復を実施するように動作可能なシステムの特定の例示的態様が開示され、全体が１００で指定される。システム１００は、ネットワーク１９０を介して１つまたは複数の他のデバイス（たとえば、ソースデバイス１０４）と通信している宛先デバイス１０２を含み得る。ソースデバイス１０４は、マイクロフォン１４６を含み得るか、またはそれに結合され得る。宛先デバイス１０２は、スピーカー１４２を含み得るか、またはそれに結合され得る。宛先デバイス１０２は、メモリ１７６に結合されているか、またはそれと通信しているアナライザ１２２を含み得る。宛先デバイス１０２は、受信機１２４、送信機１９２、バッファ１２６、音声デコーダ１５６、またはそれらの組合せを含み得る。メモリ１７６は、分析データ１２０を記憶するように構成され得る。分析データ１２０は、取り出された部分コピーカウント１０６、喪失パケットのカウント１１４、再送信カウント１５４、品質メトリック１２８、増分閾値（increment threshold）１３６、減分閾値１３８、増分量１４０、減分量１５０、結果値１１８、エラー回復パラメータ１０８、またはそれらの組合せを含み得る。エラー回復パラメータ１０８は、バッファ深度１１０、再送信閾値１１２、またはその両方を含み得る。
【００３２】
[0040]宛先デバイス１０２は、図１に示すよりも少ない、または図１に示すよりも多くの構成要素を含み得る。たとえば、宛先デバイス１０２は、１つもしくは複数のプロセッサ、１つもしくは複数のメモリユニット、またはその両方を含み得る。宛先デバイス１０２は、ネットワーク化または分散型コンピューティングシステムを含み得る。たとえば、メモリ１７６は、ネットワーク化または分散型メモリであり得る。特定の例示的態様では、宛先デバイス１０２は、通信デバイス、デコーダ、スマートフォン、セルラーフォン、モバイル通信デバイス、ラップトップコンピュータ、コンピュータ、タブレット、携帯情報端末（ＰＤＡ）、セットトップボックス、ビデオプレーヤ、娯楽ユニット、ディスプレイデバイス、テレビ、ゲーム機、音楽プレーヤ、ラジオ、デジタルビデオプレーヤ、デジタルビデオディスク（ＤＶＤ）プレーヤ、チューナー、カメラ、ナビゲーションデバイス、またはそれらの組合せを含み得る。そのようなデバイスは、ユーザインターフェース（たとえば、タッチスクリーン、ボイス認識能力、または他のユーザインターフェース能力）を含むことができる。
【００３３】
[0041]動作中、第１のユーザ１５２は、第２のユーザ１９４とのボイスコールに関与し得る。ボイスコールのために、第１のユーザ１５２は宛先デバイス１０２を使用し得、第２のユーザ１９４はソースデバイス１０４を使用し得る。ボイスコール中、第２のユーザ１９４は、ソースデバイス１０４に関連付けられたマイクロフォン１４６に向かって話すことができる。入力音声信号１３０は、第２のユーザ１９４によって話される、単語の一部分、１つの単語、または複数の単語に対応し得る。たとえば、入力音声信号１３０は、第１のデータ１６４と第２のデータ１６６とを含み得る。ソースデバイス１０４は、第２のユーザ１９４から、マイクロフォン１４６を介して入力音声信号１３０を受信し得る。特定の態様では、マイクロフォン１４６はオーディオ信号をキャプチャすることができ、アナログデジタル変換器（ＡＤＣ）は、キャプチャされたオーディオ信号を、アナログ波形から、デジタルオーディオサンプルからなるデジタル波形に変換することができる。デジタルオーディオサンプルは、デジタル信号プロセッサによって処理され得る。利得調整器が、オーディオ信号（たとえば、アナログ波形またはデジタル波形）の振幅レベルを増大または減少させることによって、（たとえば、アナログ波形またはデジタル波形の）利得を調整し得る。利得調整器は、アナログまたはデジタルドメインのいずれかにおいて動作し得る。たとえば、利得調整器は、デジタルドメインにおいて動作することができ、アナログデジタル変換器によって作り出されたデジタルオーディオサンプルを調整することができる。利得調整した後、エコーキャンセラが、マイクロフォン１４６に入る、スピーカーの出力によって作成された可能性があるエコーを低減し得る。デジタルオーディオサンプルは、ボコーダ（ボイスエンコーダデコーダ）によって「圧縮」され得る。エコーキャンセラの出力は、ボコーダ前処理ブロック、たとえば、フィルタ、ノイズプロセッサ、レート変換器などに結合され得る。ボコーダのエンコーダは、デジタルオーディオサンプルを圧縮し、パケットのシーケンス（たとえば、第１のパケット１３２および第２のパケット１３４）を形成することができる。パケットのシーケンスの各々は、デジタルオーディオサンプルの圧縮ビットの表現を含み得る。たとえば、第１のパケット１３２は、パケットのシーケンス中で、第２のパケット１３４よりも前（earlier）であり得る。例を挙げれば、第１のパケット１３２は、特定のオーディオフレーム（たとえば、オーディオフレームＮ）に対応する第１のデータ１６４を含み得、第２のパケット１３４は、後続オーディオフレーム（たとえば、オーディオフレームＮ＋２）に対応する第２のデータ１６６を含み得る。
【００３４】
[0042]特定の態様では、後続パケット（たとえば、第２のパケット１３４）は、前のオーディオフレーム（たとえば、オーディオフレームＮ）を復元するのに使われ得る冗長データ（たとえば、第１のパケット１３２の部分コピー）も含み得る。たとえば、第２のパケット１３４は、第１のデータ１６４の少なくとも一部分に対応する第１の部分コピー１７４を含み得る。特定の態様では、冗長データ（たとえば、第１の部分コピー１７４）は、「重大（critical）」音声フレームに対応し得る。たとえば、重大音声フレームの喪失は、宛先デバイス１０２において生成される、処理された音声信号のオーディオ品質の、ユーザが認知可能な低下を引き起こす場合がある。
【００３５】
[0043]特定の態様では、ソースデバイス１０４および宛先デバイス１０２は、固定ビットレート（たとえば、１３．２キロビット毎秒（ｋｂｐｓ））のチャネル上で動作し得る。この態様では、１次データ（たとえば、第２のデータ１６６）に対応する１次フレームビットレートは、冗長データ（たとえば、第１の部分コピー１７４）に適合するように、（たとえば、９．６ｋｂｐｓまで）低減され得る。たとえば、固定ビットレートの残りのビットレート（たとえば、３．６ｋｂｐｓ）は、冗長データに対応し得る。特定の態様では、１次フレームビットレートの低減は、全体的音声品質に対する影響を低減するように、入力音声信号１３０の特性に応じて、ソースデバイス１０４において実施され得る。
【００３６】
[0044]パケット（たとえば、パケット１３２および１３４）のシーケンスは、ソースデバイス１０４のプロセッサと共有され得るメモリに記憶され得る。プロセッサは、デジタル信号プロセッサと通信している制御プロセッサであり得る。
【００３７】
[0045]ソースデバイス１０４は、パケット（たとえば、第１のパケット１３２、第２のパケット１３４、またはその両方）のシーケンスを、ネットワーク１９０を介して宛先デバイス１０２に送信し得る。たとえば、ソースデバイス１０４はトランシーバを含み得る。トランシーバは、何らかの形の、パケットのシーケンスを変調することができる（たとえば、他の情報がパケット１３２および１３４に添付され得る）。トランシーバは、変調された情報を、アンテナを介してオーバージエアで送ることができる。
【００３８】
[0046]宛先デバイス１０２のアナライザ１２２は、パケットのシーケンスの１つまたは複数のパケット（たとえば、第１のパケット１３２、第２のパケット１３４、またはその両方）を受信し得る。たとえば、宛先デバイス１０２のアンテナは、第１のパケット１３２、第２のパケット１３４、またはその両方を含む何らかの形の着信パケットを受信し得る。第１のパケット１３２、第２のパケット１３４、またはその両方は、宛先デバイス１０２において、ボコーダのデコーダによって「圧縮されていない（uncompressed）」場合がある。圧縮されていない波形は、復元（reconstructed）オーディオサンプルと呼ばれ得る。復元オーディオサンプルは、ボコーダ後処理ブロックによって後処理され得、エコーキャンセラが、復元オーディオサンプルに基づいてエコーを除去し得る。明快のために、ボコーダのデコーダおよびボコーダ後処理ブロックは、ボコーダデコーダモジュールと呼ばれる場合がある。いくつかの構成において、エコーキャンセラの出力はアナライザ１２２によって処理され得る。代替として、他の構成では、ボコーダデコーダモジュールの出力はアナライザ１２２によって処理され得る。
【００３９】
[0047]アナライザ１２２は、宛先デバイス１０２によって受信されたパケット（たとえば、第１のパケット１３２、第２のパケット１３４、またはその両方）をバッファ１２６（たとえば、デジッタバッファ）に記憶することができる。特定の態様では、パケットは、宛先デバイス１０２において、順序が乱れて受信される場合がある。アナライザ１２２は、バッファ１２６中の１つまたは複数のパケットを、パケットの順序が乱れている場合は並べ替えることができる。ソースデバイス１０４によって送られたパケットのシーケンスの１つまたは複数のパケットは、宛先デバイス１０２によって、受信されない場合もあり、エラーありで受信される場合もある。たとえば、パケット（たとえば、第１のパケット１３２）は、受信機１２４によって、パケット喪失により受信されない場合もあり、ネットワーク状態により、部分的に受信される場合もある。
【００４０】
[0048]アナライザ１２２は、パケットのシーケンスのうちの特定のパケットがバッファ１２６から消失しているかどうか決定することができる。たとえば、バッファ１２６中の各パケットはシーケンス番号を含み得る。アナライザ１２２は、分析データ１２０中のカウンタ（たとえば、次のシーケンス番号）を維持することができる。たとえば、次のシーケンス番号は、開始値（たとえば、０）を有し得る。アナライザ１２２は、特定の入力信号（たとえば、入力音声信号１３０）に対応する各パケットを処理した後、次のシーケンス番号を更新する（たとえば、１だけ増分（increment）する）ことができる。アナライザ１２２は、特定の入力信号（たとえば、入力音声信号１３０）に対応する最後のパケットを処理した後、次のシーケンス番号を開始値にリセットし得る。
【００４１】
[0049]アナライザ１２２は、バッファ１２６が、次のシーケンス番号を有する次のパケット（たとえば、第１のパケット１３２）を含むと決定し得る。アナライザ１２２は、少なくとも次のパケット（たとえば、第１のパケット１３２）に基づいて、処理された音声信号を生成することができる。特定の態様では、アナライザ１２２は、第１のパケット１３２を音声デコーダ１５６に与え、音声デコーダ１５６は、処理された音声信号を生成し得る。アナライザ１２２（または音声デコーダ１５６）は、第１のパケット１３２および第２のパケット１３４に基づいて、処理された音声信号を生成することができる。処理された音声信号は、第１のパケット１３２の第１のデータ１６４および第２のパケット１３４の第２のデータ１６６に対応し得る。アナライザ１２２（または音声デコーダ１５６）は、処理された音声信号を、スピーカー１４２を介して第１のユーザ１５２に出力し得る。アナライザ１２２は、次のシーケンス番号を更新する（たとえば、増分またはリセットする）ことができる。
【００４２】
[0050]アナライザ１２２は、ソースデバイス１０４によって送られたパケットのシーケンスの特定のパケット（たとえば、第１のパケット１３２）がバッファ１２６から消失しているかどうか決定することができる。たとえば、アナライザ１２２は、次のシーケンス番号を有する次のパケット（たとえば、第１のパケット１３２）をバッファ１２６が記憶していないと決定したことに基づいて、第１のパケット１３２が消失していると決定し得る。例を挙げれば、アナライザ１２２は、次のシーケンス番号に対応するパケット（たとえば、第１のパケット１３２）がバッファ１２６中で見つからないと決定したことに応答して、第１のパケット１３２が消失していると決定することができる。アナライザ１２２は、第１のパケット１３２の部分コピーが、バッファ１２６に記憶されている別のパケット（たとえば、第２のパケット１３４）中のエラー訂正データとしてバッファ１２６に記憶されているかどうか決定することができる。たとえば、各パケットのヘッダ中の１つまたは複数のフィールドが、パケットがエラー訂正データを含むかどうかを示すことができ、対応するパケットを示すことができる。アナライザ１２２は、バッファ１２６に記憶された１つまたは複数のパケット（たとえば、第２のパケット１３４）の特定のフィールドを調べ得る。たとえば、バッファ１２６は第２のパケット１３４を記憶している場合がある。第２のパケット１３４のヘッダ中の特定のフィールドは、第２のパケット１３４が、第１のパケット１３２に対応するエラー訂正データを含むことを示し得る。たとえば、特定のフィールドは、第１のパケット１３２のシーケンス番号を示し得る。アナライザ１２２は、第２のパケット１３４の特定のフィールドが第１のパケット１３２のシーケンス番号を示すと決定したことに基づいて、第１のパケット１３２の部分コピーがバッファ１２６に記憶されていると決定し得る。アナライザ１２２は、第１のパケット１３２がバッファ１２６から消失している、およびバッファ１２６が第１のパケット１３２の部分コピーを記憶している、と決定したことに応答して、取り出された部分コピーカウント１０６を更新し得る。
【００４３】
[0051]アナライザ１２２は、少なくとも次のパケット（たとえば、第２のパケット１３４）に基づいて、処理された音声信号１１６を生成することができる。たとえば、アナライザ１２２は、第１の部分コピー１７４および第２のデータ１６６に基づいて、処理された音声信号１１６を生成することができる。第１の部分コピー１７４は、第１のパケット１３２の第１のデータ１６４の少なくとも一部分を含み得る。特定の態様では、第１のデータ１６４は、第１の音声フレームの第１の音声パラメータに対応し得る。第１の部分コピー１７４は、第１の音声パラメータを含み得る。特定の態様では、第２のデータ１６６は、第２の音声フレームの第２の音声パラメータに対応し得、第１の部分コピー１７４は、第１の音声パラメータと第２の音声パラメータとの間の差に対応し得る。この態様では、アナライザ１２２は、第２の音声パラメータと第１の部分コピー１７４の和に基づいて、第１の音声パラメータを生成することができる。
【００４４】
[0052]アナライザ１２２は、第１の音声パラメータに基づいて、処理された音声信号１１６を生成することができる。第２のパケット１３４中のエラー訂正データとして第１の部分コピー１７４を有していれば、特定の音声フレームに対応する第１のパケット１３２がバッファ１２６から消失しているときであっても、特定の音声フレームの第１の音声パラメータに基づいて、処理された音声信号１１６の生成が可能になり得ることが諒解されよう。
【００４５】
[0053]特定の態様では、アナライザ１２２は、第１の部分コピー１７４、第２のパケット１３４、または第１の音声パラメータを音声デコーダ１５６に与えることができ、音声デコーダ１５６は、処理された音声信号１１６を生成することができる。アナライザ１２２（または音声デコーダ１５６）は、処理された音声信号１１６を、スピーカー１４２を介して第１のユーザ１５２に出力し得る。アナライザ１２２は、次のシーケンス番号を更新する（たとえば、増分またはリセットする）ことができる。処理された音声信号１１６は、第２のデータ１６６のみに基づいて生成された、処理された音声信号よりも優れたオーディオ品質を有する場合がある。たとえば、第１の部分コピー１７４および第２のデータ１６６に基づいて生成された、処理された音声信号１１６は、第２のデータ１６６に基づくとともに第１のデータ１６４（または第１の部分コピー１７４）に基づかずに生成された、処理された音声信号よりも、ユーザ認知可能なアーチファクトが少ない場合がある。
【００４６】
[0054]特定の態様では、アナライザ１２２は、第１のパケット１３２および第２のパケット１３４がバッファ１２６から消失していると決定し得る。たとえば、アナライザ１２２は、第１のパケット１３２がバッファ１２６から消失していると決定し得、およびバッファ１２６が第１のパケット１３２の部分コピーを別のパケット中のエラー訂正データとして記憶していないと決定し得る。例を挙げれば、アナライザ１２２は、第１のパケット１３２のシーケンス番号が、バッファ１２６に記憶されている、入力音声信号１３０に対応するパケットのうちのいずれかの特定のフィールドによって示されないと決定し得る。アナライザ１２２は、第１のパケット１３２および第２のパケット１３４がバッファ１２６から消失していると決定したことに基づいて、喪失パケットのカウント１１４を更新し得る。特定の態様では、アナライザ１２２は、第１のパケット１３２がバッファ１２６から消失していることと、バッファ１２６が、第１のパケット１３２の部分コピーを含むパケット（たとえば、第２のパケット１３４）を記憶していないこととを反映するように、喪失パケットのカウント１１４を更新する（たとえば、１だけ増分する）ことができる。アナライザ１２２は、次のシーケンス番号を更新する（たとえば、増分またはリセットする）ことができる。
【００４７】
[0055]アナライザ１２２は、図２〜図３を参照して記載するように、喪失パケットのカウント１１４、取り出された部分コピーカウント１０６、またはその両方に基づいて、エラー回復パラメータ１０８を調整することができる。たとえば、アナライザ１２２は、喪失パケットのカウント１１４、取り出された部分コピーカウント１０６、またはその両方に基づいて結果値１１８を決定し得る。特定の態様では、結果値１１８は、喪失パケットのカウント１１４と取り出された部分コピーカウント１０６の加重和であり得る。特定の態様では、アナライザ１２２は、喪失パケットのカウント１１４（たとえば、１の重みを有する）と加重値の和に基づいて、結果値１１８を決定することができる。アナライザ１２２は、取り出された部分コピーカウント１０６を品質メトリック１２８で乗算することによって、加重値を決定することができる。品質メトリック１２８は、デフォルト値、ユーザ提供値、またはその両方であり得る。品質メトリック１２８は、取り出された部分コピーカウント１０６に割り当てられた重み（たとえば、０以上１以下）に対応し得る。
【００４８】
[0056]特定の態様では、品質メトリック１２８は、取り出された部分コピーの品質の測度（measure）であり得る。例を挙げれば、取り出された部分コピーの品質の測度がより高いときには、品質メトリック１２８は、より低い重みに対応し得る。アナライザ１２２は、取り出された部分コピー（たとえば、第１の部分コピー１７４）に対応するデータ（たとえば、音声パラメータ）と、前のオーディオフレームに対応する、前のパケットから取り出された前のデータ（たとえば、前の音声パラメータ）との間の差に基づいて、品質の測度を決定し得る。たとえば、アナライザ１２２は、特定の閾値を満足する、音声パラメータと前の音声パラメータとの間の差に基づいて、品質の測度を決定し得る。取り出された部分コピー（たとえば、第１の部分コピー１７４）が、十分に異なるパラメータに対応する場合、取り出された部分コピー（たとえば、第１の部分コピー１７４）に基づいて、処理された音声信号１１６を生成すると、対応する１次パケット（たとえば、第１のパケット１３２）がバッファ１２６に記憶されていないとき、処理された音声信号１１６のオーディオ品質を大幅に向上させることができる。アナライザ１２２は、取り出された部分コピー（たとえば、第１の部分コピー１７４）が、前のパケットとは十分に異なるパラメータに対応するとき、より高い品質測度を決定することができる。
【００４９】
[0057]特定の態様では、取り出された部分コピーカウント１０６には、喪失パケットのカウント１１４よりも低い重みが割り当てられ得る。取り出された部分コピーのカウントに、より低い重みを割り当てると、部分的冗長性が、エラー回復パラメータの調整に対する、対応する消失パケットの影響を低減することが可能になり得る。部分的冗長性を有すると、冗長性をもたない場合よりも、より小さいバッファの使用、より少ない再送信要求、またはその両方が可能になり得ることが諒解されよう。
【００５０】
[0058]アナライザ１２２は、結果値１１８に基づいて、エラー回復パラメータ１０８（たとえば、バッファ深度１１０、再送信閾値１１２、またはその両方）を調整することができる。たとえば、アナライザ１２２は、図２〜図３を参照して記載するように、結果値１１８が増分閾値１３６を満足すると決定したことに応答して、増分量１４０に基づいてエラー回復パラメータ１０８を増分（increment）し得る。特定の態様では、結果値１１８は、処理された音声信号のオーディオ品質の、認知可能な低下をもたらし得る、高いパケット喪失という状態において増分閾値１３６を満足し得る。アナライザ１２２は、喪失パケットの部分コピーが別のパケット中のエラー訂正データとしてバッファ中にある見込みを増大させるように、バッファ深度１１０を増分し得る。アナライザ１２２は、宛先デバイス１０２が、喪失パケットの再送信を要求するためのより多くの再送信メッセージ（たとえば、再送信メッセージ１４４）をソースデバイス１０４に送ることを可能にするように、再送信閾値１１２を増分し得る。宛先デバイス１０２は、再送信されたパケットに基づいて、処理された音声信号を生成することができ、処理された音声信号のオーディオ品質が向上し得る。
【００５１】
[0059]別の例として、アナライザ１２２は、図２〜図３を参照して記載するように、結果値１１８が減分閾値１３８を満足すると決定したことに応答して、減分量１５０に基づいてエラー回復パラメータ１０８を減分（decrement）し得る。特定の態様では、結果値１１８は、低いパケット喪失という状態において減分閾値１３８を満足し得る。アナライザ１２２は、バッファ１２６によるメモリ使用を減少させるように、バッファ深度１１０を減分し得る。アナライザ１２２は、喪失パケットの再送信を要求するために宛先デバイス１０２によって送られる再送信メッセージ（たとえば、再送信メッセージ１４４）の数を低減するように、再送信閾値１１２を減分し得る。より少ない再送信メッセージは、再送信メッセージの送付およびパケットの再送信に関連付けられた帯域幅使用の低減をもたらし得る。
【００５２】
[0060]特定の態様では、エラー回復パラメータ１０８は、最大値、最小値、またはその両方を有し得る。この態様では、アナライザ１２２は、最小値および最大値によって定められた範囲内で、エラー回復パラメータ１０８を調整することができる。
【００５３】
[0061]増分閾値１３６、減分閾値１３８、増分量１４０、および減分量１５０のうちの１つまたは複数は、各エラー回復パラメータについて別個の値または同じ値を有し得る。たとえば、バッファ深度１１０に対応する増分閾値１３６、減分閾値１３８、増分量１４０、および減分量１５０のうちの１つまたは複数は、再送信閾値１１２に対応する増分閾値１３６、減分閾値１３８、増分量１４０、および減分量１５０のうちの１つまたは複数とは別個のものであり得る。
【００５４】
[0062]増分閾値１３６、減分閾値１３８、増分量１４０、減分量１５０、またはそれらの組合せは、デフォルト値であり得る。特定の態様では、アナライザ１２２は、増分量１４０、減分量１５０、またはその両方を動的に決定することができる。たとえば、アナライザ１２２は、結果値１１８と増分閾値１３６との間の差に基づいて増分量１４０を決定することができる。別の例として、アナライザ１２２は、結果値１１８と減分閾値１３８との間の差に基づいて減分量１５０を決定することができる。
【００５５】
[0063]特定の態様では、アナライザ１２２は、結果値１１８に基づいてエラー回復パラメータ１０８の調整量を決定することができ、エラー回復パラメータ１０８を調整するのを、調整量に基づいて後の時間に遅延させ得る。たとえば、アナライザ１２２は、第１の数（たとえば、１０個）のパケットに基づいて調整量を繰り返し決定することができ、第１の数のパケットを処理するのに続いて、エラー回復パラメータ１０８を調整し得る。別の例として、宛先デバイス１０２は、ソースデバイス１０４からのバースト中でパケットを受信し得る。たとえば、第２のユーザ１９４は、通話の間に一時停止（pause）する場合があり、パケットの各バーストは、一時停止の間の第２のユーザ１９４の音声に対応し得る。アナライザ１２２は、一時停止中の調整量に基づいてエラー回復パラメータ１０８を調整することができ、そうすることによって、パケットの次のバーストは、調整されたエラー回復パラメータ１０８に基づいて処理され、また、エラー回復パラメータ１０８の調整がユーザにとって認知可能にならない場合がある。
【００５６】
[0064]特定の態様では、アナライザ１２２は、再送信カウント１５４、再送信閾値１１２、またはその両方に基づいて、特定のパケット（たとえば、第１のパケット１３２）の再送信を要求し得る。たとえば、アナライザ１２２は、再送信カウント１５４が再送信閾値１１２を満足する、および第１のパケット１３２がバッファ１２６から消失している、と決定したことに基づいて、送信機１９２を介して、ソースデバイス１０４に再送メッセージ１４４を送ることができる。再送メッセージ１４４は、第１のパケット１３２の再送信を要求し得る。
【００５７】
[0065]再送信カウント１５４は、デフォルトの初期値を有し得る。アナライザ１２２は、再送メッセージ１４４を送ったことに基づいて、再送信カウント１５４を更新する（たとえば、増分する）ことができる。特定の態様では、再送信カウント１５４は特定の時間期間に関連付けられ得る。たとえば、再送信カウント１５４は、特定の時間期間（たとえば、前の５分間）中にアナライザ１２２によって送られた再送メッセージの数を示し得る。
【００５８】
[0066]ソースデバイス１０４は、再送メッセージ１４４を受信したことに応答して、第１のパケット１３２を再送信し得る。この態様では、アナライザ１２２は、再送信された第１のパケット１３２を受信することができ、再送信された第１のパケット１３２からの少なくとも第１のデータ１６４に基づいて、処理された音声信号を生成することができる。たとえば、アナライザ１２２は、バッファ１２６が第２のパケット１３４を記憶していると決定したことに応答して、再送信された第１のパケット１３２からの第１のデータ１６４と、第２のパケット１３４からの第２のデータ１６６とに基づいて、処理された音声信号を生成することができる。特定の態様では、再送メッセージ１４４の送付（sending）および再送信された第１のパケット１３２の受信（receiving）に関連付けられた往復遅延（たとえば、８ミリ秒（ｍｓ）〜１６ｍｓ）が存在し得る。たとえば、ソースデバイス１０４と宛先デバイス１０２との間に、最大数（たとえば、８個）のハイブリッド自動再送要求（ＨＡＲＱ）インスタンスが存在し得る。ソースデバイス１０４は、第１のＨＡＲＱインスタンス中に第１のパケット１３２を送ることができる。宛先デバイス１０２は、第２のＨＡＲＱインスタンス中に再送メッセージ１４４を送ることができる。ソースデバイス１０４は、第３のＨＡＲＱインスタンス中に、再送信された第１のパケット１３２を送ることができる。往復遅延（たとえば、８ｍｓ〜１６ｍｓ）は、第１のＨＡＲＱインスタンスと第３のＨＡＲＱインスタンスとの間の時間差に対応し得る。
【００５９】
[0067]特定の実装形態では、送信タイムラインは、サブフレームのユニットに区分され得る。各サブフレームは、所定の持続時間、たとえば、１ミリ秒（ｍｓ）をカバーし得る。ソースデバイス１０４は、宛先デバイス１０２に送るべきデータを有する場合があり、データシンボルを取得するために、選択されたトランスポートフォーマットに従って、第１のパケット１３２を処理することができる。トランスポートフォーマットは、レート、パケットフォーマット、変調およびコーディング方式（ＭＣＳ）などに対応し得る。ソースデバイス１０４は、第１のパケット１３２ならびに制御情報からなる第１の送信を、サブフレームｔにおいて宛先デバイス１０２に送ることができる。制御情報は、選択されたトランスポートフォーマット、データ送信に使われる無線リソースなどを示し得る。宛先デバイス１０２は、選択されたトランスポートフォーマットに従って、第１の送信を受信し、処理することができる。宛先デバイス１０２が、第１のパケット１３２の復号に成功しなかった（たとえば、エラーに遭遇するか、または予想されるときに第１のパケット１３２が受信されなかった場合、宛先デバイス１０２は、サブフレームｔ＋Δにおいて否定応答（ＮＡＫ）を送ることができる。
【００６０】
[0068]ＮＡＫは、再送信要求として作用する。したがって、ソースデバイス１０４は、ＮＡＫを受信し、第１のパケット１３２の第２の送信をサブフレームｔ＋Ｍにおいて送ることができる。宛先デバイス１０２は、第１のパケット１３２を復号することを再度試み得る。エラーが起きた場合、宛先デバイス１０２は別のＮＡＫを（たとえば、サブフレームｔ＋Ｍ＋Δにおいて）送ることができる。サブフレームｔにおける初回送信の後の第１のパケット１３２の各送信は、ＨＡＲＱ送信と呼ばれる場合があり、第１のパケット１３２についての異なる冗長性情報（たとえば、データシンボルの異なるセット）を含み得る。
【００６１】
[0069]システム１００は、同期ＨＡＲＱおよび／または非同期ＨＡＲＱをサポートし得る。同期ＨＡＲＱの場合、パケット（たとえば、第１のパケット１３２）の送信は、送信機（たとえば、ソースデバイス１０４）および受信機（たとえば、宛先デバイス１０２）によって事前（a priori）に知られているサブフレームにおいて送られ得る。非同期ＨＡＲＱの場合、パケット（たとえば、第１のパケット１３２）の送信は、１つまたは複数のサブフレームにおいて、スケジュールされ、送られ得る。特定の実装形態では、システム１００は、ＨＡＲＱ、自動再送要求（ＡＲＱ）、別の再送信プロトコル、またはそれらの組合せをサポートすることができる。
【００６２】
[0070]特定の態様では、アナライザ１２２は、再送信カウント１５４が再送信閾値１１２を満足できないとの決定、特定のパケット（たとえば、第１のパケット１３２）がバッファ１２６に記憶されているとの決定、特定のパケット（たとえば、第１のパケット１３２）の部分コピー（たとえば、第１の部分コピー１７４）がバッファ１２６に記憶されているとの決定、またはそれらの組合せに基づいて、特定のパケット（たとえば、第１のパケット１３２）の再送信を要求するのを控え得る。再送信された第１のパケット１３２に基づいて、処理された音声信号１１６を生成すると、処理された音声信号１１６は、より優れたオーディオ品質を有することになり得、第１の部分コピー１７４に基づいて、処理された音声信号１１６を生成すれば、処理された音声信号１１６が、再送信された第１のパケット１３２の要求および受信に関連付けられた往復遅延（たとえば、８ｍｓ〜１６ｍｓ）なしで生成され得ることが諒解されよう。
【００６３】
[0071]特定の態様では、アナライザ１２２は、バッファ深度１１０に基づいてパケットをドロップ（drop）させ得る。たとえば、アナライザ１２２は、バッファ１２６に記憶されたパケットの数（または総サイズ）がバッファ深度１１０を満足すると決定し得る。アナライザ１２２は、後続パケットを受信したことに応答して、後続パケットをバッファ１２６に記憶するのを控えることができ、または１つまたは複数の他のパケットをバッファ１２６から削除することができる。たとえば、アナライザ１２２は、最も長い持続時間だけバッファ１２６中にあったパケットを削除し得、別のパケットに対応するエラー訂正データを含まないパケットを削除し得、またはその両方を行い得る。
【００６４】
[0072]したがって、システム１００は、喪失パケットの再送信なしで、喪失パケットのデータの部分的回復を可能にし得る。たとえば、アナライザ１２２は、第１のパケット１３２がバッファ１２６に記憶されていないと決定したことに応答して、第２のパケット１３４から第１の部分コピー１７４を回復することができる。別の特定の利点は、取り出された部分コピーのカウント、喪失パケットのカウント、またはその両方に基づいて、動的にエラー回復パラメータを調整することである。たとえば、アナライザ１２２は、取り出された部分コピーカウント１０６、喪失パケットのカウント１１４、またはその両方に基づいて、エラー回復パラメータ１０８を動的に調整することができる。したがって、エラー回復パラメータ１０８は、ネットワーク状態、受信パケット中での冗長性の程度、またはその両方に応じ得る。
【００６５】
[0073]図２を参照すると、冗長性に基づくパケット送信エラー回復の方法の特定の例示的態様が開示され、全体が２００で指定される。特定の態様では、方法２００は図１のアナライザ１２２によって実施され得る。図２は、喪失パケットのカウント１１４、取り出された部分コピーカウント１０６、またはその両方に基づく、図１のバッファ深度１１０の調整を示す。たとえば、バッファ深度１１０の調整は、喪失パケットのカウント１１４（ｐ）の関数であり、取り出された部分コピーカウント１０６（ｑ）の関数であり、または喪失パケットのカウント１１４（ｐ）および取り出された部分コピーカウント１０６（ｑ）の関数であり得る。
【００６６】
[0074]方法２００は、２０２において、受信機によって、符号化音声フレームＲ（Ｎ）を時間Ｎにおいて受信することを含む。たとえば、図１の受信機１２４は、図１を参照して記載したように、入力音声信号１３０の特定のオーディオフレームに対応する特定のパケットを受信し得る。
【００６７】
[0075]方法２００は、また、２０４において、次の音声フレームＲ（Ｎ−Ｄ）がデジッタバッファ中で入手可能かどうか決定することを含む。たとえば、アナライザ１２２は、図１を参照して記載したように、次のパケットがバッファ１２６に記憶されているかどうか決定し得る。次のパケットは、次のシーケンス番号を有し得る。特定の態様では、アナライザ１２２は、前に処理されたパケットのシーケンス番号を増分することによって、次のシーケンス番号を決定し得る。代替態様では、アナライザ１２２は、直近に受信されたパケットのシーケンス番号（たとえば、Ｎ）とバッファ深度１１０（たとえば、Ｄ）との間の差に基づいて、次のシーケンス番号を決定し得る。この態様では、バッファ深度１１０は、バッファ１２６に記憶されるべきパケットの最大数を示し得る。アナライザ１２２は、次のシーケンス番号に対応する次のパケット（たとえば、第１のパケット１３２）がバッファ１２６に記憶されているかどうか決定することができる。
【００６８】
[0076]方法２００は、２０４において、次の音声フレームＲ（Ｎ−Ｄ）がデジッタバッファ中で入手可能であると決定したことに応答して、２０６において、次の音声フレームＲ（Ｎ−Ｄ）を音声デコーダに与えることをさらに含む。たとえば、アナライザ１２２は、次のパケット（たとえば、第１のパケット１３２）がバッファ１２６に記憶されていると決定したことに応答して、図１を参照して記載したように、第１のパケット１３２を音声デコーダ１５６に与えることができる。
【００６９】
[0077]方法２００は、また、２０４において次の音声フレームＲ（Ｎ−Ｄ）がデジッタバッファ中で入手不可能であると決定したことに応答して、２０８において、次の音声フレームＲ（Ｎ−Ｄ）の部分コピーがデジッタバッファ中で入手可能かどうか決定することを含む。たとえば、図１のアナライザ１２２は、第１のパケット１３２がバッファ１２６に記憶されていないと決定したことに応答して、図１を参照して記載したように、第１のパケット１３２の部分コピーがバッファ１２６に記憶されているかどうか決定し得る。例を挙げれば、アナライザ１２２は、第１の部分コピー１７４を有する第２のパケット１３４がバッファ１２６に記憶されているかどうか決定することができる。
【００７０】
[0078]方法２００は、２０８において次の音声フレームＲ（Ｎ−Ｄ）の部分コピーがデジッタバッファ中で入手可能であると決定したことに応答して、２０６において、次の音声フレームＲ（Ｎ−Ｄ）の部分コピーを音声デコーダに与えることと、２１０において、Ｍ個の前のフレーム期間中に取り出された部分コピーの数（ｑ）を決定することとをさらに含む。たとえば、図１のアナライザ１２２は、第２のパケット１３４がバッファ１２６中に含まれる、および第２のパケット１３４が第１のパケット１３２の第１の部分コピー１７４を含む、と決定したことに応答して、音声デコーダ１５６に第２のパケット１３４を与え得る。特定の態様では、アナライザ１２２は、第１の部分コピー１７４を音声デコーダ１５６に与え得る。アナライザ１２２はまた、図１を参照して記載したように、取り出された部分コピーカウント１０６を更新し得る。たとえば、取り出された部分コピーカウント１０６は、特定のフレーム数、特定の時間期間、またはその両方に対応し得る。特定のフレーム数（Ｍ）は、デフォルト値に対応し得る。特定の態様では、特定のフレーム数（Ｍ）は、アナライザ１２２によって、またはユーザ（たとえば、第１のユーザ１５２）によって選択され得る。特定の態様では、特定のフレーム数（Ｍ）は適応的であり得る。たとえば、アナライザ１２２は、特定のフレーム数（Ｍ）を経時的に更新することができる。特定の態様では、アナライザ１２２は、特定の時間期間（たとえば、５分間）中にバッファ深度１１０が調整された回数に基づいて、特定のフレーム数（Ｍ）を更新し得る。たとえば、アナライザ１２２は、特定の時間期間中にバッファ深度１１０が調整された回数が調整閾値を満足すると決定したことに応答して、特定のフレーム数（Ｍ）を更新する（たとえば、増大（increase）または減少（decrease）させる）ことができる。
【００７１】
[0079]特定の態様では、取り出された部分コピーカウント１０６は、特定の数（Ｍ個）の直近に処理されたパケットから取り出された部分コピーの数を示し得る。たとえば、アナライザ１２２によって直近に処理された特定の数（たとえば、１０個）のパケットから、アナライザ１２２は、第１の数（たとえば、７つ）のパケットを受信するのに成功している場合があり、アナライザ１２２は、アナライザ１２２による受信に成功しなかった第２の数（たとえば、２つ）のパケットについての部分コピーを取り出している場合があり、部分コピーは、アナライザ１２２による受信に成功しなかったパケットのうちの残りの数（たとえば、１つ）について入手不可能であった場合がある。この例では、取り出された部分コピーカウント１０６は、直近に処理されたパケットのうちの特定の数（たとえば、１０個）のうちの第２の数（たとえば、２つ）のパケットについて、部分コピーが取り出されたことを示し得る。
【００７２】
[0080]代替態様では、取り出された部分コピーカウント１０６は、特定の時間期間（たとえば、前の５分間）中に取り出された部分コピーの数を示し得る。たとえば、アナライザ１２２は、特定の時間期間（たとえば、前の５分間）中に特定の数（たとえば、２０個）のパケットを受信し得る。特定の数（たとえば、２０個）のパケットから、アナライザ１２２は、第１の数（たとえば、１２個）のパケットを受信するのに成功している場合があり、アナライザ１２２は、アナライザ１２２による受信に成功しなかった第２の数（たとえば、６つ）のパケットについての部分コピーを取り出している場合があり、部分コピーは、アナライザ１２２による受信に成功しなかったパケットのうちの残りの数（たとえば、２つ）について入手不可能であった場合がある。この例では、取り出された部分コピーカウント１０６は、特定の時間期間（たとえば、前の５分間）中にアナライザ１２２によって受信された第２の数（たとえば、６つ）のパケットについて、部分コピーが取り出されたと示し得る。方法２００は２１４に進み得る。
【００７３】
[0081]方法２００は、また、２０８において次の音声フレームＲ（Ｎ−Ｄ）の部分コピーがデジッタバッファ中で入手不可能であると決定したことに応答して、２１２において、Ｍ個の前のフレーム期間中に喪失されたパケットの数（ｐ）を決定することを含む。たとえば、図１のアナライザ１２２は、第２のパケット１３４がバッファ１２６に記憶されていないと決定したことに応答して、図１を参照して記載したように、喪失パケットのカウント１１４を更新し得る。例を挙げれば、アナライザ１２２は、第１のパケット１３２の部分コピー（たとえば、第１の部分コピー１７４）がパケット中に含まれていることを示すパケット（たとえば、第２のパケット１３４）をバッファ１２６が記憶していないと決定することができる。
【００７４】
[0082]方法２００は、２１４において、Ｍ個の前のフレーム期間中に喪失されたパケットの数（ｐ）と、Ｍ個の前のフレーム期間中に取り出された部分コピーの数（ｑ）とに基づいて、結果値（ｒ）を決定することをさらに含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、喪失パケットのカウント１１４（ｐ）、取り出された部分コピーカウント１０６（ｑ）、またはその両方に基づいて、結果値１１８（ｒ）を決定することができる。図２に示す例において、ｒ＝ｆ（ｐ，ｑ）である。結果値１１８（ｒ）は、喪失パケットのカウント１１４（ｐ）の関数であり、取り出された部分コピーカウント１０６（ｑ）の関数であり、または喪失パケットのカウント１１４（ｐ）および取り出された部分コピーカウント１０６（ｑ）の関数であり得る。たとえば、結果値１１８は、喪失パケットのカウント１１４と取り出された部分コピーカウント１０６の加重和であり得る。
【００７５】
[0083]方法２００は、また、２１６において、結果値（ｒ）が増分閾値（Ｔ1）よりも大きいかどうか決定することを含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、結果値１１８が増分閾値１３６を満足する（たとえば、それよりも大きい）かどうか決定することができる。
【００７６】
[0084]方法２００は、２１６において結果値（ｒ）が増分閾値（Ｔ1）よりも大きいと決定したことに応答して、２２２において、増分量（Δｎ1）と次のトークスパート（talk spurt）用のデジッタバッファの深度（Ｄold）の和に基づいて深度値（Ｄnew）を決定することをさらに含む。たとえば、図１のアナライザ１２２は、結果値１１８が増分閾値１３６を満足する（たとえば、それよりも大きい）と決定したことに応答して、図１を参照して記載したように、増分量１４０とバッファ深度１１０（たとえば、Ｄold）の和に基づいて調整量（たとえば、Ｄnew）を決定することができる。方法２００は２２４に進み得る。
【００７７】
[0085]方法２００は、また、２１６において結果値（ｒ）が増分閾値（Ｔ1）以下であると決定したことに応答して、２２０において、結果値（ｒ）が減分閾値（Ｔ2）よりも小さいかどうか決定することを含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、結果値１１８が増分閾値１３６を満足できない（たとえば、それ以下である）と決定したことに応答して、結果値１１８が減分閾値１３８を満足する（たとえば、それよりも小さい）かどうか決定することができる。
【００７８】
[0086]方法２００は、２２０において結果値（ｒ）が減分閾値（Ｔ2）よりも小さいと決定したことに応答して、２２２において、減分量（Δｎ2）と次のトークスパート用のデジッタバッファの深度（Ｄold）との間の差に基づいて深度値（Ｄnew）を減少させることをさらに含む。たとえば、図１のアナライザ１２２は、結果値１１８が減分閾値１３８を満足する（たとえば、それよりも小さい）と決定したことに応答して、図１を参照して記載したように、減分量１５０とバッファ深度１１０（たとえば、Ｄold）との間の差に基づいて調整量（たとえば、Ｄnew）を決定することができる。
【００７９】
[0087]方法２００は、また、２２４において、デジッタバッファの深度を深度値（Ｄnew）に調整することを含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、調整量（たとえば、Ｄnew）に基づいて、バッファ深度１１０を調整することができる。方法２００は２０２に進み得る。
【００８０】
[0088]方法２００は、また、２２０において結果値（ｒ）が減分閾値（Ｔ2）以上であると決定したことに応答して、２０２において、後続パケットを受信することを含む。たとえば、図１のアナライザ１２２は、結果値１１８が増分閾値１３６と減分閾値１３８とを満足できないと決定したことに応答して、バッファ深度１１０を調整するのを控え得る。
【００８１】
[0089]バッファ深度１１０（たとえば、Ｄ）は、第１の深度値（たとえば、Ｄold）を有し得る。たとえば、Ｄ＝Ｄoldである。アナライザ１２２は、第１の深度値（たとえば、Ｄold）に少なくとも部分的に基づいて、第２の深度値（たとえば、Ｄnew）を決定することができる。アナライザ１２２は、第２の深度値（たとえば、Ｄnew）に基づいてバッファ深度１１０（たとえば、Ｄ）を調整し得る。たとえば、バッファ深度１１０の調整に続いて、Ｄ＝Ｄnewとなる。
【００８２】
[0090]方法２００は、喪失パケットのカウント、取り出された部分コピーカウント、またはその両方に基づいて、デジッタバッファの深度の動的調整を可能にし得る。バッファ深度は、ネットワーク状態に応じ得る。高いパケット喪失、データ冗長性の欠如、またはその両方の状態の間、バッファ深度は、宛先デバイスにおいてドロップされるパケットを低減するように、デジッタバッファ中で喪失パケットの部分コピーを見つける見込みを増大させるように、またはその両方のために、増大され得る。代替として、低いパケット喪失、高程度のデータ冗長性、またはその両方の状態の間、バッファ深度は、デジッタバッファによるメモリ使用を低減するように低下され得る。
【００８３】
[0091]図３を参照すると、冗長性に基づくパケット送信エラー回復の方法の特定の例示的態様が開示され、全体が３００で指定される。特定の態様では、方法３００は図１のアナライザ１２２によって実施され得る。
【００８４】
[0092]図３は、喪失パケットのカウント１１４、取り出された部分コピーカウント１０６、またはその両方に基づく、図１の再送信閾値１１２の調整を示す。方法３００は、図２の方法２００の２０２と、２０４と、２０６と、２０８と、２１０と、２１２と、２１４と、２１６と、２２０とを含む。
【００８５】
[0093]方法３００は、また、２０８において次の音声フレームＲ（Ｎ−Ｄ）の部分コピーがデジッタバッファ中で入手不可能であると決定したことに応答して、３０２において、再送信分析を実施することを含む。たとえば、図１のアナライザ１２２は、図４を参照して記載するように、バッファ１２６が、第１のパケット１３２も、第１のパケット１３２の部分コピーが別のパケット中に含まれていることを示す別のパケットも記憶していないと決定したことに応答して、再送信分析を実施し得る。
【００８６】
[0094]方法３００は、２１６において結果値（ｒ）が増分閾値（Ｔ1）よりも大きいと決定したことに応答して、３０４において、増分量（Δｎ1）と再送信閾値（ＲＴold）の和に基づいて再送信値（ＲＴnew）を決定することをさらに含む。たとえば、図１のアナライザ１２２は、結果値１１８が増分閾値１３６を満足する（たとえば、それよりも大きい）と決定したことに応答して、図１を参照して記載したように、増分量１４０と再送信閾値１１２（たとえば、ＲＴold）の和に基づいて調整量（たとえば、ＲＴnew）を決定することができる。方法３００は３０８に進み得る。
【００８７】
[0095]方法３００は、また、２２０において結果値（ｒ）が減分閾値（Ｔ2）よりも小さいと決定したことに応答して、３０６において、減分量（Δｎ2）と再送信閾値（ＲＴold）との間の差に基づいて再送信値（ＲＴnew）を減少させることを含む。たとえば、図１のアナライザ１２２は、結果値１１８が減分閾値１３８を満足する（たとえば、それよりも小さい）と決定したことに応答して、図１を参照して記載したように、減分量１５０と再送信閾値１１２（たとえば、ＲＴold）との間の差に基づいて調整量（たとえば、ＲＴnew）を決定することができる。
【００８８】
[0096]方法３００は、また、３０８において、再送信値を再送信値（ＲＴnew）に調整することを含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、調整量（たとえば、ＲＴnew）に基づいて、再送信閾値１１２を調整することができる。方法３００は２０２に進み得る。
【００８９】
[0097]再送信閾値１１２（たとえば、ＲＴ）は、第１の再送信閾値の値（たとえば、ＲＴold）を有し得る。たとえば、ＲＴ＝ＲＴoldである。アナライザ１２２は、第１の再送信値（たとえば、ＲＴold）に少なくとも部分的に基づいて、第２の再送信閾値の値（たとえば、ＲＴnew）を決定することができる。アナライザ１２２は、第２の再送信閾値の値（たとえば、ＲＴnew）に基づいて、再送信閾値１１２（たとえば、ＲＴ）を調整し得る。たとえば、ＲＴ＝ＲＴnewは、再送信閾値１１２の調整の後に続く。特定の態様では、図３の増分閾値（Ｔ１）は、図２の増分閾値（Ｔ１）とは異なり得る。代替態様では、図３の増分閾値（Ｔ１）は図２の増分閾値（Ｔ１）と同じであり得る。特定の態様では、図３の減分閾値（Ｔ２）は、図２の減分閾値（Ｔ２）とは異なり得る。代替態様では、図３の減分閾値（Ｔ２）は図２の減分閾値（Ｔ２）と同じであり得る。
【００９０】
[0098]方法３００は、喪失パケットのカウント、取り出された部分コピーカウント、またはその両方に基づく、再送信閾値の動的調整を可能にし得る。再送信閾値は、ネットワーク状態に応じ得る。高いパケット喪失、データ冗長性の欠如、またはその両方の状態の間、再送信閾値は、宛先デバイスがより多くの再送信要求を送ることを可能にするように増大され得る。代替として、低いパケット喪失、高程度のデータ冗長性、またはその両方の状態の間、再送信閾値は、再送信ネットワークトラフィックを低減するように、処理された音声信号を生成する際の遅延を低減するように、またはその両方のために減少され得る。
【００９１】
[0099]図４を参照すると、冗長性に基づくパケット送信エラー回復の方法の特定の例示的態様が開示され、全体が４００で指定される。特定の態様では、方法４００は、図１のアナライザ１２２によって実施され得る。特定の態様では、方法４００は、図３の３０２に対応し得る。
【００９２】
[0100]方法４００は、４０２において、再送信カウントが再送信閾値（ＲＴ）よりも小さいかどうか決定することを含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、再送信カウント１５４が再送信閾値１１２を満足する（たとえば、それよりも小さい）かどうか決定することができる。
【００９３】
[0101]方法４００はまた、４０２において再送信カウントが再送信閾値（ＲＴ）よりも小さいと決定したことに応答して、４０４において、再送信メッセージを送ることと、４０６において、再送信カウントを増分することとを含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、再送信カウント１５４が再送信閾値１１２を満足する（たとえば、それよりも小さい）と決定したことに応答して再送信メッセージ１４４を送ることができ、そして、再送信カウント１５４を更新する（たとえば、増分する）ことができる。
【００９４】
[0102]方法４００は、４０２において再送信カウントが再送信閾値（ＲＴ）以上であると決定したことに応答して、４０８において、再送信メッセージを送るのを控えることをさらに含む。たとえば、アナライザ１２２は、図１を参照して記載したように、再送信カウント１５４が再送信閾値１１２を満足できない（たとえば、それ以上である）と決定したことに応答して、再送信メッセージ（たとえば、再送信メッセージ１４４）を送るのを控えることができる。
【００９５】
[0103]方法４００はこのように、宛先デバイスが、動的に調整された再送信閾値に基づいて再送信要求を送ることを可能にし得る。宛先デバイスによって送られる再送信要求の数、およびソースデバイスによって再送信されるパケットの数は、ネットワーク状態に応じ得る。高いパケット喪失、データ冗長性の欠如、またはその両方の状態の間、再送信閾値は、処理された音声信号中のエラーを低減するために、再送信されるパケットの数を増大させるために宛先デバイスがより多くの再送信要求を送ることを可能にするように増大され得る。代替として、低いパケット喪失、高程度のデータ冗長性、またはその両方の状態の間、再送信閾値は、再送信ネットワークトラフィックの低減、処理された音声信号の生成に関連付けられた遅延の低減、またはその両方をもたらす、再送信されるパケットの数を低減するように減少され得る。
【００９６】
[0104]図５を参照すると、冗長性に基づくエラー回復を実施するように動作可能なシステムの特定の例示的態様が開示され、全体が５００で指定される。システム５００は、本明細書に記載するように、エラー回復パラメータ１０８がバッファ遅延５１２を含み得るという点で、図１のシステム１００とは異なり得る。
【００９７】
[0105]パケットのシーケンスは、入力音声信号１３０に対応し得る。パケットのシーケンスの各パケットは、図１を参照して記載したように、シーケンス番号を含み得る。たとえば、第１のパケット１３２は第１のシーケンス番号（たとえば、第１の生成タイムスタンプ）を含むことができ、第２のパケット１３４は第２のシーケンス番号（たとえば、第２の生成タイムスタンプ）を含むことができる。第１の生成タイムスタンプは、ソースデバイス１０４によって第１のパケット１３２が生成される第１の時間を示すことができ、第２の生成タイムスタンプは、ソースデバイス１０４によって第２のパケット１３４が生成される第２の時間を示すことができる。第１の部分コピー１７４は、第１のシーケンス番号（たとえば、第１の生成タイムスタンプ）を含み得る。
【００９８】
[0106]宛先デバイス１０２によって受信される各パケットには、受信機１２４、アナライザ１２２によって、または宛先デバイス１０２の別の構成要素によって、受信タイムスタンプが割り当てられ得る。たとえば、第２のパケット１３４には第２の受信タイムスタンプが割り当てられ得る。アナライザ１２２は、第２の受信タイムスタンプに基づいて第１の受信タイムスタンプを決定し得、第１の受信タイムスタンプを第１の部分コピー１７４に割り当て得る。第１の受信タイムスタンプは、第２の受信タイムスタンプと同じであるか、または別個であり得る。たとえば、第１の受信タイムスタンプは、第２の受信タイムスタンプによって示される第２の受信時間よりも早い第１の受信時間を示し得る。この例では、第１の受信時間は、第１のパケット１３２が適時に受信されるであろう推定時間に対応し得る。例を挙げれば、第１の受信時間は、第１のパケット１３２が遅延されることも喪失されることもなかった場合の第１のパケット１３２の推定受信時間に対応し得る。
【００９９】
[0107]アナライザ１２２は、本明細書に記載するように、パケットに関連付けられた受信タイムスタンプ、バッファ遅延５１２、バッファタイムライン５０４、および最後に再生されたパケット５０６に基づいてパケットを処理することができる。バッファ遅延５１２は、パケットがバッファ１２６に記憶されるべき閾値時間に対応し得る。たとえば、バッファ遅延５１２は、第１の閾値時間（たとえば、５ミリ秒）を示し得る。パケットは、第１の受信時間（たとえば、１：００：００．０００ＰＭ）に受信される場合がある。第１の受信時間を示す受信タイムスタンプが、パケットに関連付けられ得る。第２の時間（たとえば、１：００：００．００５ＰＭ）は、受信タイムスタンプによって示される第１の受信時間とバッファ遅延５１２の和に対応し得る。パケットは、第２の時間において、またはそれに続いて処理され得る。
【０１００】
[0108]バッファタイムライン５０４は、処理されるべき次のパケットを示し得る。たとえば、バッファタイムライン５０４は、バッファ１２６から直近に処理された、または消去が直近に行われた、特定のパケットのシーケンス番号を示すことができる。例を挙げれば、アナライザ１２２は、バッファ１２６からのパケットを処理したこと、バッファ１２６からのパケットの部分コピーを処理したこと、またはパケットに対応する消去を行ったことに応答して、パケットの第１のシーケンス番号を示すように、バッファタイムライン５０４を更新することができる。この例では、アナライザ１２２は、バッファタイムライン５０４によって示されるシーケンス番号（たとえば、第１のシーケンス番号）に基づいて、処理されるべき次のパケットの次のシーケンス番号を決定し得る。
【０１０１】
[0109]最後に再生されたパケット５０６は、バッファ１２６からの、直近に処理された特定のパケットを示し得る。バッファ１２６からの特定のパケットを処理することは、バッファ１２６からの特定のパケットを処理すること、またはバッファ１２６からの特定のパケットの部分コピーを処理することを含み得る。アナライザ１２２は、バッファ１２６からのパケットを処理したこと、またはバッファ１２６からのパケットの部分コピーを処理したことに応答して、パケットの第１のシーケンス番号を示すように、最後に再生されたパケット５０６を更新し得る。
【０１０２】
[0110]アナライザ１２２は、最後に再生されたパケット５０６が、アナライザ１２２によって、バッファ１２６からの、直近に処理された前のパケットを示すと決定し得る。アナライザ１２２は、特定のパケット（たとえば、第１のパケット１３２）が、パケットのシーケンス中で前のパケットの後に続くと決定し得る。アナライザ１２２は、バッファタイムライン５０４によって示される、処理されるべき次のパケットが、パケットのシーケンス中の第１のパケット１３２と同じであるか、それともその後に続くものであるか決定することができる。アナライザ１２２は、バッファタイムライン５０４によって示される、処理されるべき次のパケットが、パケットのシーケンス中の第１のパケット１３２に先立つと決定したことに応答して、ほぼ第１のプレイバック時間５０２において、消去を行う（play an erasure）ことができる。
【０１０３】
[0111]アナライザ１２２は、消去を行ったのに続いて、バッファタイムライン５０４を更新することができる。たとえば、バッファタイムライン５０４は、消去が行われるのに先立って、第１の特定のパケットが、処理されるべき次のパケットであることを示し得る。アナライザ１２２は、消去を行ったのに続いて、第２の特定のパケットが、処理されるべき次のパケットであることを示すように、バッファタイムライン５０４を更新することができる。第２の特定のパケットは、パケットのシーケンス中で、第１の特定のパケットの次であり得る。
【０１０４】
[0112]代替として、アナライザ１２２は、バッファタイムライン５０４によって示される、処理されるべき次のパケットが、パケットのシーケンス中の第１のパケット１３２と同じであるか、またはその後に続くと決定したことに応答して、バッファ１２６が第１のパケット１３２（または第１の部分コピー１７４）を記憶しているかどうか決定し得る。アナライザ１２２は、バッファ１２６が第１の部分コピー１７４を記憶していると決定したことに応答して、第１の部分コピー１７４が、第１の受信時間を示す第１の受信タイムスタンプに関連付けられていると決定し得る。アナライザ１２２は、第１の時間が第１の受信時間とバッファ遅延５１２の和以上であると決定したことに応答して、ほぼ第１のプレイバック時間５０２に、バッファ１２６からの第１の部分コピー１７４を処理することができる。バッファ遅延５１２は、パケットがバッファ１２６に記憶されるべき閾値時間に対応し得る。特定の実装形態では、アナライザ１２２は、第１の部分コピー１７４が閾値時間だけバッファ１２６に記憶されているかどうかにかかわらず、第１の部分コピー１７４を処理することができる。この実装形態では、第１の受信時間は、第２の受信時間よりも早いものであり得る。たとえば、第１の受信時間は、第１のパケット１３２が適時に受信された場合の第１のパケット１３２の予想受信時間に対応し得る。アナライザ１２２は、第１のパケット１３２が適時に受信された場合は第１のパケット１３２が少なくとも閾値時間だけバッファ１２６に記憶されているであろうと決定したことに応答して、ほぼ第１のプレイバック時間に第１の部分コピー１７４を処理し得る。バッファ遅延５１２は、デフォルト値を含み得、第１のユーザ１５２からのユーザ入力に基づくものであり得、またはその両方であり得る。アナライザ１２２は、本明細書に記載するように、バッファ遅延５１２を調整することができる。アナライザ１２２は、バッファ１２６からの第１の部分コピー１７４を処理したのに続いて、第１のパケット１３２を示すように、最後に再生されたパケット５０８を更新し得、第２の特定のパケット（たとえば、第２のパケット１３４）を処理されるべき次のパケットとして示すように、バッファタイムライン５０４を更新し得る。第２の特定のパケット（たとえば、第２のパケット１３４）は、パケットのシーケンス中の第１のパケット１３２の次であり得る。
【０１０５】
[0113]特定の実装形態では、アナライザ１２２は、第１のパケット１３２および第１の部分コピー１７４がバッファ１２６から消失していると決定したことに応答して、第１のパケット１３２に対して実施されるのと同様の分析を、第２の特定のパケット（たとえば、第２のパケット１３４）に対して実施し得る。たとえば、アナライザ１２２は、バッファタイムライン５０４によって示される、処理されるべき次のパケットが、パケットのシーケンス中で第２の特定のパケットに先立つと決定したことに応答して、消去を行うことができ、消去を行ったのに続いて、バッファタイムライン５０４を更新し得る。代替として、アナライザ１２２は、ほぼ第１のプレイバック時間５０２において、バッファタイムライン５０４によって示される、処理されるべき次のパケットが第２の特定のパケットと同じであるか、またはそれに続くとの決定、第２の特定のパケットまたは第２の特定のパケットの部分コピーがバッファ１２６に記憶されているとの決定、および第１のプレイバック時間５０２が第２の特定のパケットに関連付けられたバッファ遅延５１２と特定の受信時間の和以上であるとの決定に応答して、バッファ１２６からの第２の特定のパケットを処理することができる。
【０１０６】
[0114]宛先デバイス１０２は、電話呼中にパケットのシーケンス（たとえば、第１のパケット１３２、第２のパケット１３４、またはその両方）を受信し得る。第１のパケット１３２、第２のパケット１３４、またはその両方は、音声データを含み得る。アナライザ１２２は、本明細書に記載するように、電話呼中、トークスパートの開始時に、またはトークスパートの終了時に、バッファ遅延５１２を決定または更新することができる。トークスパートは、背景雑音が聞こえる無音間隔の間の音声の連続セグメントに対応し得る。たとえば、第１のトークスパートは第１のユーザ１５２の音声に対応し得、第２のトークスパートは第２のユーザ１５４の音声に対応し得る。第１のトークスパートと第２のトークスパートは、無音期間または背景雑音によって分離され得る。
【０１０７】
[0115]アナライザ１２２は、前の遅延損失率（previous delay loss rate）５５２を決定することができる。前の遅延損失率５５２は、第１の更新時間における、バッファ遅延５１２の、前の調整中に決定された遅延損失率（delay loss rate）に対応し得る。アナライザ１２２は、遅延損失パケットのカウント５１０を維持することができる。遅延損失パケットのカウント５１０は、対応するプレイバック時間において、バッファ１２６からのパケットの部分コピーの処理に続いて受信されるパケットの数を示し得る。対応するプレイバック時間は、第１の更新時間の後に続き得る。たとえば、アナライザ１２２は、第１の更新時間に続いて、第１のパケット１３２に関連付けられた第１のプレイバック時間において、バッファ１２６からの第１の部分コピー１７４を処理することができる。アナライザ１２２は、１つまたは複数の条件が満足されると決定したことに基づいて、第１の時間が第１のプレイバック時間に対応すると決定し得る。たとえば、第１の時間において、最後に再生されたパケット５０６が第１のパケット１３２に先立ち、第１のパケット１３２が、バッファタイムライン５０４によって示される、処理されるべき次のパケットに先立つか、または同じである場合、第１の時間は第１のプレイバック時間に対応し得る。第１の時間は、第１の時間が、第１のパケット１３２に関連付けられた受信時間（たとえば、第１の部分コピー１７４の第１の受信時間）とバッファ遅延５１２の和以上である場合、第１のプレイバック時間に対応し得る。第１のパケット１３２が、第１の時間における前述の条件を満足する、パケットのシーケンス中の最も早いパケットである場合、第１の時間は、第１のプレイバック時間に対応し得る。アナライザ１２２は、第１の部分コピー１７４を処理したのに続いて第１のパケット１３２を受信したことに応答して、遅延損失パケットのカウント５１０を更新（たとえば、増分）し得る。
【０１０８】
[0116]アナライザ１２２は、受信パケットカウント５１４を維持することができる。たとえば、アナライザ１２２は、第１の更新時間に続いて、受信パケットカウント５１４をリセットし得る。アナライザ１２２は、パケット（たとえば、第２のパケット１３４）を受信したことに応答して、受信パケットカウント５１４を更新する（たとえば、１だけ増分する）ことができる。アナライザ１２２は、遅延損失パケットのカウント５１０および受信パケットカウント５１４に基づいて、第２の遅延損失率５５４を決定することができる。たとえば、第２の遅延損失率５５４は、遅延損失パケットのカウント５１０および受信パケットカウント５１４の測度（たとえば、比）に対応し得る。例を挙げれば、第２の遅延損失率５５４は、特定の時間間隔中の遅延損失パケット（たとえば、パケットの部分コピーの処理に続いて受信されるパケット）の平均数を示し得る。第２の遅延損失率５５４は、特定の時間間隔中のネットワークジッタを示し得る。前の遅延損失率５５２と第２の遅延損失率５５４との間の差は、受信パケットの遅延の変動を示し得る。前の遅延損失率５５２と第２の遅延損失率５５４との間の差は、遅延損失パケットの平均数が増大しつつあるかそれとも減少しつつあるかを示し得る。
【０１０９】
[0117]アナライザ１２２は、前の遅延損失率５５２および第２の遅延損失率５５４に基づいて、遅延損失率５５６を決定することができる。たとえば、遅延損失率５５６は、前の遅延損失率５５２と第２の遅延損失率５５４の加重和に対応し得る。アナライザ１２２は、前の遅延損失率５５２に第１の重み（たとえば、０．７５）を、および第２の遅延損失率５５４に第２の重み（たとえば、０．２５）を割り当て得る。第１の重みは、第２の重みと同じ、または別個のものであり得る。特定の実装形態では、第１の重みは第２の重みよりも高いものであり得る。前の遅延損失率５５２と第２の遅延損失率５５４の加重和に基づいて遅延損失率５５６を決定すれば、一時的ネットワーク状態に基づいて、遅延損失率５５６における振幅を低減することができる。たとえば、パケットのバンドル化により、後続間隔中にどのパケット到着も後続せずに、多数のパケット（たとえば、３つ）が同時に到着し得る。第１の時間に決定された第２の遅延損失率５５４は、多数のパケットが受信される間隔に対応し得るとともに、第２の時間に決定された第２の遅延損失率５５４は、パケット到着のない間隔に対応し得るので、第２の遅延損失率５５４は、第１の時間から第２の時間まで変動し得る。前の遅延損失率５５２と第２の遅延損失率５５４の加重和に基づいて遅延損失率５５６を決定すれば、遅延損失率５５６に対するパケットバンドル化の効果が低減し得る。
【０１１０】
[0118]アナライザ１２２は、遅延損失率５５６が目標遅延損失率５２８（たとえば、０．０１）を満足できない（たとえば、それよりも小さい）と決定したことに応答して、減分量５１６（たとえば、２０ミリ秒）だけバッファ遅延５１２を減少させ得る。たとえば、目標遅延損失率５２８は、受信パケットに対して、遅延損失パケットの第１のパーセント（たとえば、１パーセント）に対応し得る。アナライザ１２２は、遅延損失率５５６が目標遅延損失率５２８を満足する（たとえば、それよりも大きい）との決定、遅延損失率５５６が前の遅延損失率５５２以上であるとの決定、またはその両方に応答して、バッファ遅延５１２を増分量５１８（たとえば、２０ミリ秒）だけ増大させ得る。減分量５１６、増分量５１８、目標遅延損失率５２８、またはそれらの組合せは、デフォルト値を含み得、第１のユーザ１５２からのユーザ入力に基づき得、またはその両方であり得る。減分量５１６は、増分量５１８と同じ、または別個のものであり得る。
【０１１１】
[0119]アナライザ１２２は、バッファ遅延５１２を、バッファ遅延５１２と遅延下限５３８（たとえば、２０ミリ秒）のうちの最大に設定することができる。たとえば、アナライザ１２２は、バッファ遅延５１２が遅延下限５３８よりも低いと決定したことに応答して、バッファ遅延５１２を遅延下限５３８に設定し得る。アナライザ１２２は、バッファ遅延５１２を、バッファ遅延５１２と遅延上限５３６（たとえば、８０ミリ秒）のうちの最小に設定することができる。たとえば、アナライザ１２２は、バッファ遅延５１２が遅延上限５３６を超えると決定したことに応答して、バッファ遅延５１２を遅延上限５３６に設定し得る。遅延下限５３８、遅延上限５３６、またはその両方は、デフォルト値であり得、第１のユーザ１５２からのユーザ入力に基づき得、またはその両方であり得る。
【０１１２】
[0120]システム５００はこのように、遅延されたパケットが、対応するプレイバック時間に先立って受信される見込みがあるような長いバッファ遅延を有することと、パケットのシーケンスに関連付けられたエンドツーエンドの遅延を低減する短いバッファ遅延を有することとの間の均衡をもたらし得る。
【０１１３】
[0121]図６を参照すると、冗長性に基づくパケット送信エラー回復の方法の特定の例示的態様のフローチャートが示され、全体が６００で指定される。特定の態様では、方法６００は図１のアナライザ１２２によって実行され得る。
【０１１４】
[0122]方法６００は、６０２において、パケットのシーケンスのうちの特定のパケットがバッファから消失しているかどうか決定することを含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、パケットのシーケンスのうちの特定のパケット（たとえば、第１のパケット１３２）がバッファ１２６から消失しているかどうか決定することができる。
【０１１５】
[0123]方法６００は、また、６０２において特定のパケットがバッファから消失していないと決定したことに応答して、６０４において、特定のパケットを音声デコーダに送ることを含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、第１のパケット１３２がバッファ１２６から消失していないと決定したことに応答して、第１のパケット１３２を音声デコーダ１５６に送り得る。
【０１１６】
[0124]方法６００は、６０２において特定のパケットがバッファから消失していると決定したことに応答して、６０６において、特定のパケットの部分コピーが別のパケット中のエラー訂正データとしてバッファに記憶されているかどうか決定することをさらに含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、第１のパケット１３２がバッファ１２６から消失していると決定したことに応答して、第１のパケット１３２の部分コピー（たとえば、第１の部分コピー１７４）が別のパケット（たとえば、第２のパケット１３４）中のエラー訂正データとしてバッファに記憶されているかどうか決定し得る。
【０１１７】
[0125]方法６００は、また、６０６において部分コピーがバッファに記憶されていると決定したことに応答して、６０８において、取り出された部分コピーのカウントを更新することを含む。方法６００は６１０に進み得る。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、第１の部分コピー１７４を含む第２のパケット１３４がバッファ１２６に記憶されていると決定したことに応答して、取り出された部分コピーカウント１０６のカウントを更新し得る。
【０１１８】
[0126]方法６００は、６０６において、部分コピーがバッファに記憶されていないと決定したことに応答して、６１２において、喪失パケットのカウントを更新することをさらに含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、第１の部分コピー１７４を含む第２のパケット１３４がバッファ１２６に記憶されていないと決定したことに応答して、喪失パケットのカウント１１４を更新し得る。
【０１１９】
[0127]方法６００は、また、６１０において、取り出された部分コピーのカウント、喪失パケットのカウント、またはその両方に基づいて、エラー回復パラメータを調整することを含む。たとえば、図１のアナライザ１２２は、取り出された部分コピーカウント１０６、喪失パケットのカウント１１４、またはその両方に基づいて、エラー回復パラメータ１０８を調整することができる。
【０１２０】
[0128]方法６００は、６１４において、再送信カウントが再送信閾値よりも小さいかどうか決定することをさらに含む。たとえば、図１のアナライザ１２２は、図１および図４を参照して記載したように、再送信カウント１５４が再送信閾値１１２を満足する（たとえば、それよりも小さい）かどうか決定することができる。
【０１２１】
[0129]方法６００はまた、６１４において再送信カウントが再送信閾値よりも小さいと決定したことに応答して、６１６において、再送信メッセージをソースデバイスに送ることと、６１８において、再送信カウントを更新することとを含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、再送信カウント１５４が再送信閾値１１２を満足する（たとえば、それよりも小さい）と決定したことに応答して、ソースデバイス１０４に再送信メッセージ１４４を送り、再送信カウント１５４を更新し得る。再送信要求は、特定のパケットの再送信を要求し得る。
【０１２２】
[0130]方法６００は、６１４において再送信カウントが再送信閾値以上であると決定したことに応答して、６２０において、ソースデバイスに再送信メッセージを送るのを控えることをさらに含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、再送信カウント１５４が再送信閾値１１２を満足できない（たとえば、それ以上である）と決定したことに応答して、再送信メッセージ１４４をソースデバイス１０４に送るのを控えることができる。
【０１２３】
[0131]方法６００はこのように、喪失パケットのカウント、取り出された部分コピーのカウント、またはその両方に基づく、エラー回復パラメータの動的調整を可能にし得る。
【０１２４】
[0132]図６の方法６００は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）デバイス、特定用途向け集積回路（ＡＳＩＣ）、中央処理装置（ＣＰＵ）などの処理ユニット、デジタル信号プロセッサ（ＤＳＰ）、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはそれらの任意の組合せによって実装され得る。一例として、図６の方法６００は、図９に関して説明されるように、命令を実行するプロセッサによって実行可能である。
【０１２５】
[0133]図７を参照すると、冗長性に基づくパケット送信エラー回復の方法の特定の例示的態様のフローチャートが示され、全体が７００で指定される。特定の態様では、方法７００は図１のアナライザ１２２によって実行され得る。特定の態様では、方法７００は図６の６１０に対応し得る。
【０１２６】
[0134]方法７００は、７０２において、取り出された部分コピーのカウントを品質メトリックで乗算することによって加重値を生成することを含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、取り出された部分コピーカウント１０６を品質メトリック１２８で乗算することによって、加重値を生成することができる。
【０１２７】
[0135]方法７００は、また、７０４において、喪失パケットのカウントと加重値とを加算することによって結果値を生成することを含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、喪失パケットのカウント１１４と加重値とを加算することによって、結果値１１８を生成することができる。
【０１２８】
[0136]方法７００は、７０６において、結果値が増分閾値よりも大きいかどうか決定することをさらに含む。たとえば、図１のアナライザ１２２は、結果値１１８が増分閾値１３６を満足する（たとえば、それよりも大きい）かどうか決定することができる。
【０１２９】
[0137]方法７００は、また、７０６において結果値が増分閾値よりも大きいと決定したことに応答して、７０８において、結果値と増分閾値との間の差に基づいて増分量を決定することを含む。たとえば、図１のアナライザ１２２は、結果値１１８が増分閾値１３６を満足する（たとえば、それよりも大きい）と決定したことに応答して、結果値１１８と増分閾値１３６との間の差に基づいて増分量１４０を決定することができる。
【０１３０】
[0138]方法７００は、７１０において、増分量に基づいてエラー回復パラメータを調整することをさらに含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、増分量１４０に基づいてエラー回復パラメータ１０８を調整することができる。
【０１３１】
[0139]方法７００は、また、７０６において結果値が増分閾値以下であると決定したことに応答して、７１２において、結果値が減分閾値よりも小さいかどうか決定することを含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、結果値１１８が増分閾値１３６を満足できない（たとえば、それ以下である）と決定したことに応答して、結果値１１８が減分閾値１３８を満足する（たとえば、それよりも小さい）かどうか決定することができる。
【０１３２】
[0140]方法７００は、７１２において結果値が減分閾値以上であると決定したことに応答して、７１４において、エラー回復パラメータを調整するのを控えることをさらに含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、結果値１１８が減分閾値１３８を満足できない（たとえば、それ以上である）と決定したことに応答して、エラー回復パラメータ１０８を調整するのを控えることができる。
【０１３３】
[0141]方法７００は、また、７１２において結果値が減分閾値よりも小さいと決定したことに応答して、７１６において、結果値と減分閾値との間の差に基づいて減分量を決定することを含む。たとえば、図１のアナライザ１２２は、結果値１１８が減分閾値１３８を満足する（たとえば、それよりも小さい）と決定したことに応答して、結果値１１８と減分閾値１３８との間の差に基づいて減分量１５０を決定することができる。
【０１３４】
[0142]方法７００は、７１８において、減分量に基づいてエラー回復パラメータを調整することをさらに含む。たとえば、図１のアナライザ１２２は、図１を参照して記載したように、減分量１５０に基づいてエラー回復パラメータ１０８を調整することができる。
【０１３５】
[0143]方法７００はこのように、喪失パケットのカウント、取り出された部分コピーのカウント、またはその両方に基づく、エラー回復パラメータの動的調整を可能にし得る。
【０１３６】
[0144]図７の方法７００は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）デバイス、特定用途向け集積回路（ＡＳＩＣ）、中央処理装置（ＣＰＵ）などの処理ユニット、デジタル信号プロセッサ（ＤＳＰ）、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはそれらの任意の組合せによって実装され得る。一例として、図７の方法７００は、図９に関して説明されるように、命令を実行するプロセッサによって実行可能である。
【０１３７】
[0145]図８を参照すると、冗長性に基づくパケット送信エラー回復の方法の特定の例示的態様のフローチャートが示され、全体が８００で指定される。特定の態様では、方法８００は図１および図５のアナライザ１２２によって実行され得る。
【０１３８】
[0146]方法８００は、８０２において、第１の更新時間におけるエラー回復パラメータの、前の調整に対応する第１の遅延損失率を決定することを含む。たとえば、アナライザ１２２は、図５を参照して記載したように、前の遅延損失率５５２を決定し得る。前の遅延損失率５５２は、第１の更新時間におけるエラー回復パラメータ１０８の、前の調整（たとえば、バッファ遅延５１２）に対応し得る。
【０１３９】
[0147]方法８００は、また、８０４において、複数のパケットのうちの特定のパケットに対応する第２の遅延損失率を決定することを含む。たとえば、アナライザ１２２は、図５を参照して記載したように、第２の遅延損失率５５４を決定し得る。第２の遅延損失率５５４は、入力音声信号１３０に関連付けられた複数のパケットのうちの特定のパケットに対応し得る。特定のパケットは、第１の更新時間に続くプレイバック時間を有し得る。
【０１４０】
[0148]方法８００は、８０６において、第１の遅延損失率と第２の遅延損失率の加重和に基づいて、遅延損失率を決定することをさらに含む。たとえば、アナライザ１２２は、図５を参照して記載したように、前の遅延損失率５５２と第２の遅延損失率５５４の加重和に基づいて、遅延損失率５５６を決定することができる。
【０１４１】
[0149]方法８００は、また、８１０において、遅延損失率が目標遅延損失率よりも低いかどうか決定することを含む。たとえば、アナライザ１２２は、図５を参照して記載したように、遅延損失率５５６が目標遅延損失率５２８よりも低いかどうか決定することができる。
【０１４２】
[0150]方法８００は、８１０において遅延損失率が目標遅延損失率よりも低いと決定したことに応答して、８１２において、バッファ遅延を減分量だけ減分することをさらに含む。たとえば、アナライザ１２２は、図５を参照して記載したように、遅延損失率５５６が目標遅延損失率５２８よりも低いと決定したことに応答して、バッファ遅延５１２を減分量５１６だけ減少させ得る。方法８００は８１８に進み得る。
【０１４３】
[0151]方法８００は、また、８１０において遅延損失率が目標遅延損失率以上であると決定したことに応答して、８１４において、遅延損失率が目標遅延損失率よりも大きいかどうかと、遅延損失率が第１の遅延損失率よりも大きいかどうかとを決定することを含む。たとえば、アナライザ１２２は、図５を参照して記載したように、遅延損失率５５６が目標遅延損失率５２８以上であると決定したことに応答して、遅延損失率５５６が目標遅延損失率５２８よりも大きいかどうかと、遅延損失率５５６が前の遅延損失率５５２よりも大きいかどうかとを決定することができる。方法８００は、８１４において、遅延損失率が目標遅延損失率に等しい、または遅延損失率が第１の遅延損失率以下である、と決定したことに応答して、８１８に進み得る。
【０１４４】
[0152]方法８００は、８１４において、遅延損失率が目標遅延損失率よりも大きい、および遅延損失率が第１の遅延損失率よりも大きいと決定したことに応答して、８１６において、バッファ遅延を増分量だけ増分することをさらに含む。たとえば、アナライザ１２２は、図５を参照して記載したように、遅延損失率５５６が目標遅延損失率５２８よりも大きい、および遅延損失率５５６が前の遅延損失率５５２よりも大きいと決定したことに応答して、バッファ遅延５１２を増分量５１８だけ増大させ得る。特定の実装形態では、アナライザ１２２は、遅延損失率５５６が目標遅延損失率５２８よりも大きいと決定したことに応答して、バッファ遅延５１２を増分量５１８だけ増大させ得る。
【０１４５】
[0153]方法８００は、また、８１８において、バッファ遅延を遅延下限およびバッファ遅延のうちの最大に設定することを含む。たとえば、アナライザ１２２は、図５を参照して記載したように、バッファ遅延５１２を遅延下限５３８およびバッファ遅延５１２のうちの最大に設定し得る。
【０１４６】
[0154]方法８００は、８２０において、バッファ遅延を遅延上限およびバッファ遅延のうちの最小に設定することをさらに含む。たとえば、アナライザ１２２は、図５を参照して記載したように、バッファ遅延５１２を遅延上限５３６およびバッファ遅延５１２のうちの最小に設定し得る。
【０１４７】
[0155]方法８００はこのように、遅延損失率および目標遅延損失率に基づく、エラー回復パラメータ（たとえば、バッファ遅延）の動的調整を可能にし得る。遅延損失率は、受信パケットの数に相対した、遅延損失パケットの数に対応し得る。遅延損失パケットは、対応するプレイバック時間において、パケットの部分コピーの処理に続いて受信されるパケットを含み得る。遅延損失率および目標遅延損失率に基づく、バッファ遅延の動的調整は、遅延されたパケットが対応するプレイバック時間に先立って受信される見込みがあるような長いバッファ遅延を有することと、パケットのシーケンスに関連付けられたエンドツーエンドの遅延を低減する短いバッファ遅延を有することと、の間の均衡をもたらし得る。
【０１４８】
[0156]図８の方法８００は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）デバイス、特定用途向け集積回路（ＡＳＩＣ）、中央処理装置（ＣＰＵ）などの処理ユニット、デジタル信号プロセッサ（ＤＳＰ）、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはそれらの任意の組合せによって実装され得る。一例として、図８の方法８００は、図９に関して説明されるように、命令を実行するプロセッサによって実行可能である。
【０１４９】
[0157]図９を参照すると、デバイス（たとえば、ワイヤレス通信デバイス）の特定の例示的態様のブロック図が示されており、全体的に９００と指定されている。様々な態様では、デバイス９００は、図９に示すものよりも多くの、または少ない構成要素を有し得る。例示的態様では、デバイス９００は、図１の宛先デバイス１０２、ソースデバイス１０４、またはその両方に対応し得る。例示的態様では、デバイス９００は、図１〜図８を参照して記載した１つまたは複数の動作を実施することができる。
【０１５０】
[0158]特定の態様では、デバイス９００はプロセッサ９０６（たとえば、中央処理装置（ＣＰＵ））を含む。デバイス９００は、１つまたは複数の追加のプロセッサ９１０（たとえば、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ））を含み得る。プロセッサ９１０は、音声および音楽コーダデコーダ（ＣＯＤＥＣ）９０８と、エコーキャンセラ９１２とを含み得る。音声および音楽コーデック９０８は、ボコーダエンコーダ９３６、ボコーダデコーダ９３８、またはその両方を含み得る。
【０１５１】
[0159]デバイス９００は、メモリ１７６とＣＯＤＥＣ９３４とを含み得る。メモリ１７６は分析データ１２０を含み得る。デバイス９００は、トランシーバ９５０を介してアンテナ９４２に結合されたワイヤレスコントローラ９４０を含み得る。特定の態様では、トランシーバ９５０は、図１の受信機１２４、送信機１９２、またはその両方を含み得る。
【０１５２】
[0160]デバイス９００は、ディスプレイコントローラ９２６に結合されたディスプレイ９２８を含み得る。図１のスピーカー１４２、マイクロフォン９４６、またはその両方がＣＯＤＥＣ９３４に結合され得る。ＣＯＤＥＣ９３４は、デジタルアナログ変換器９０２と、アナログデジタル変換器９０４とを含み得る。例示的態様では、マイクロフォン９４６は、図１のマイクロフォン１４６に対応し得る。特定の態様では、ＣＯＤＥＣ９３４は、マイクロフォン９４６からアナログ信号を受信し、アナログデジタル変換器９０４を使用してそのアナログ信号をデジタル信号に変換し、音声および音楽コーデック９０８にそのデジタル信号を与え得る。音声および音楽コーデック９０８はデジタル信号を処理し得る。特定の態様では、音声および音楽コーデック９０８は、ＣＯＤＥＣ９３４にデジタル信号を与え得る。ＣＯＤＥＣ９３４は、デジタルアナログ変換器９０２を使用してデジタル信号をアナログ信号に変換し得、アナログ信号をスピーカー１４２に与え得る。
【０１５３】
[0161]デバイス９００は、アナライザ１２２、バッファ１２６、音声デコーダ１５６、またはそれらの組合せを含み得る。特定の態様では、アナライザ１２２、音声デコーダ１５６、またはその両方は、プロセッサ９０６、プロセッサ９１０、ＣＯＤＥＣ９３４、音声および音楽コーデック９０８、またはそれらの組合せの中に含まれ得る。特定の態様では、アナライザ１２２、音声デコーダ１５６、またはその両方は、ボコーダエンコーダ９３６、ボコーダデコーダ９３８、またはその両方の中に含まれ得る。特定の実装形態では、音声デコーダ１５６は、ボコーダデコーダ９３８と機能的に同一であり得る。音声デコーダ１５６は、プロセッサ９１０（たとえば、ＤＳＰ）の外の専用ハードウェア回路に対応し得る。
【０１５４】
[0162]アナライザ１２２、バッファ１２６、音声デコーダ１５６、またはそれらの組合せは、本明細書に記載する、冗長性に基づくエラー回復技法のハードウェア態様を実装するのに使われ得る。代替または追加として、ソフトウェア態様（またはソフトウェア／ハードウェア組合せ態様）が実装され得る。たとえば、メモリ１７６は、プロセッサ９１０またはデバイス９００の他の処理ユニット（たとえば、プロセッサ９０６、ＣＯＤＥＣ９３４、もしくはその両方）によって実行可能な命令９５６を含み得る。命令９５６は、アナライザ１２２、音声デコーダ１５６、またはその両方に対応し得る。
【０１５５】
[0163]特定の態様では、デバイス９００は、システムインパッケージまたはシステムオンチップデバイス９２２内に含められ得る。特定の態様では、アナライザ１２２、バッファ１２６、音声デコーダ１５６、メモリ１７６、プロセッサ９０６、プロセッサ９１０、ディスプレイコントローラ９２６、ＣＯＤＥＣ９３４、およびワイヤレスコントローラ９４０は、システムインパッケージまたはシステムオンチップのデバイス９２２中に含まれる。特定の態様では、入力デバイス９３０および電源９４４が、システムオンチップデバイス９２２に結合される。さらに、特定の態様では、図９に示すように、ディスプレイ９２８、入力デバイス９３０、スピーカー１４２、マイクロフォン９４６、アンテナ９４２、および電源９４４は、システムオンチップデバイス９２２の外部に存在する。特定の態様では、ディスプレイ９２８、入力デバイス９３０、スピーカー１４２、マイクロフォン９４６、アンテナ９４２、および電源９４４の各々は、インターフェースまたはコントローラなどの、システムオンチップデバイス９２２の構成要素に結合され得る。
【０１５６】
[0164]デバイス９００は、モバイル通信デバイス、スマートフォン、セルラーフォン、ラップトップコンピュータ、コンピュータ、タブレット、携帯情報端末、ディスプレイデバイス、テレビ、ゲーム機、音楽プレーヤ、ラジオ、デジタルビデオプレーヤ、デジタルビデオディスク（ＤＶＤ）プレーヤ、チューナー、カメラ、ナビゲーションデバイス、またはそれらの任意の組合せを含むことができる。
【０１５７】
[0165]例示的態様では、プロセッサ９１０は、図１〜図８を参照して記載した方法または動作の全部または一部分を実施するように動作可能であり得る。たとえば、マイクロフォン９４６は、ユーザ音声信号に対応するオーディオ信号をキャプチャし得る。ＡＤＣ９０４は、キャプチャされたオーディオ信号を、アナログ波形から、デジタルオーディオサンプルからなるデジタル波形に変換し得る。プロセッサ９１０は、デジタルオーディオサンプルを処理し得る。利得調整器は、デジタルオーディオサンプルを調整することができる。エコーキャンセラ９１２は、スピーカー１４２の出力がマイクロフォン９４６に入ることによって作成されていることがあるエコーを低減し得る。
【０１５８】
[0166]ボコーダエンコーダ９３６は、処理された音声信号に対応するデジタルオーディオサンプルを圧縮し得、パケットのシーケンス（たとえば、デジタルオーディオサンプルの圧縮されたビットの表現）を形成し得る。パケットのシーケンスはメモリ１７６に記憶され得る。シーケンスの１つまたは複数のパケットは、シーケンスの他のパケットの部分コピーに対応するエラー訂正データを含み得る。トランシーバ９５０は、シーケンスの、何らかの形の各パケットを変調し得（たとえば、他の情報がパケットに付加され得）、アンテナ９４２を介して、その変調されたデータを送信し得る。
【０１５９】
[0167]さらなる例として、アンテナ９４２は、ネットワークを介して別のデバイスによって送られたパケットのシーケンスに対応する着信パケットを受信し得る。受信パケットは、ユーザ音声信号に対応し得る。アナライザ１２２は、着信パケットをバッファ１２６（たとえば、デジッタバッファ）に記憶し得る。アナライザ１２２は、処理されるべき次のパケットがバッファ１２６に記憶されているかどうか決定することができる。
【０１６０】
[0168]次のパケットがバッファ１２６に記憶されていると決定したことに応答して、アナライザ１２２は、次のパケットをボコーダデコーダ９３８に与え得る。たとえば、ボコーダデコーダ９３８は次のパケットを展開し得る。次のパケットがバッファ１２６に記憶されていないと決定したことに応答して、アナライザ１２２は、次のパケットの部分コピーが、別のパケット中のエラー訂正データとしてバッファ１２６に記憶されているかどうか決定することができる。別のパケット中で部分コピーがバッファ１２６に記憶されていると決定したことに応答して、アナライザ１２２は、部分コピーまたは別のパケットをボコーダデコーダ９３８に与えてよく、図１の取り出された部分コピーカウント１０６を更新し得る。ボコーダデコーダ９３８は、部分コピーを展開し得る。
【０１６１】
[0169]圧縮されていない波形は、復元オーディオサンプルと呼ばれ得る。エコーキャンセラ９１２は、復元されたオーディオサンプルからエコーを除去し得る。音声デコーダ１５６は、復元オーディオサンプルに基づいて、処理された音声信号を生成することができる。利得調整器は、処理された音声信号を増幅または抑制し得る。ＤＡＣ９０２は、処理された音声信号をデジタル波形からアナログ波形に変換することができ、変換信号をスピーカー１４２に与えることができる。
【０１６２】
[0170]次のパケットも、次のパケットの部分コピーもバッファ１２６に記憶されていないと決定したことに応答して、アナライザ１２２は、図１の喪失パケットのカウント１１４を更新し得る。アナライザ１２２は、取り出された部分コピーカウント１０６、喪失パケットのカウント１１４、またはその両方に基づいて、エラー回復パラメータを調整することができる。
【０１６３】
[0171]説明された態様に関連して、装置は、複数のパケットを受信するための手段を含むことができる。複数のパケットは、パケットのシーケンスの少なくともサブセットに対応し得る。複数のパケットはエラー訂正データを含み得る。複数のパケットのうちの第１のパケットのエラー訂正データは、複数のパケットのうちの第２のパケットの部分コピーを含み得る。たとえば、複数のパケットを受信するための手段は、図１の受信機１２４、トランシーバ９５０、またはその両方を含み得る。
【０１６４】
[0172]装置は、また、エラー回復のための手段も含むことができる。エラー回復のための手段は、パケットのシーケンスのうちの特定のパケットがバッファから消失しているかどうか決定するように、特定のパケットの部分コピーが別のパケット中のエラー訂正データとしてバッファに記憶されているかどうか決定するように、バッファが特定のパケットを記憶していない、およびバッファが特定のパケットの部分コピーを記憶していない、と決定したことに少なくとも部分的に基づいて、第２のデバイスに再送メッセージを送るように構成され得る。たとえば、エラー回復のための手段は、アナライザ１２２、プロセッサ９０６、プロセッサ９１０、ＣＯＤＥＣ９３４、またはそれらの組合せを含み得る。
【０１６５】
[0173]さらに、本明細書で開示された態様に関して説明された様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、プロセッサによって実行されるコンピュータソフトウェア、またはその両方の組合せとして実装され得ることを、当業者は理解されよう。様々な例示的な構成要素、ブロック、構成、モジュール、回路、およびステップについて、上記では概してそれらの機能性に関して説明した。そのような機能性がハードウェアとして実装されるか、プロセッサ実行可能命令として実装されるかは、特定の適用例および全体的なシステムに課された設計制約に依存する。当業者は、説明した機能を、特定の適用例ごとに様々な方法で実装することができ、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
【０１６６】
[0174]本明細書で開示した態様に関して説明した方法またはアルゴリズムのステップは、直接ハードウェアで実施され得るか、プロセッサによって実行されるソフトウェアモジュールで実施され得るか、またはその２つの組合せで実施され得る。ソフトウェアモジュールは、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、読取り専用メモリ（ＲＯＭ）、プログラマブル読取り専用メモリ（ＰＲＯＭ）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、または当技術分野で知られている任意の他の形態の非一時的記憶媒体中に常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体は特定用途向け集積回路（ＡＳＩＣ）中に存在し得る。ＡＳＩＣは、コンピューティングデバイスまたはユーザ端末に存在することができる。代替では、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末に個別の構成要素として存在することができる。
【０１６７】
[0175]開示された態様の上記の説明は、当業者が開示された態様を製作または使用することを可能にするために提供されている。これらの態様への様々な修正が当業者には容易に明らかになり、本明細書で定義された原理が、本開示の範囲から逸脱することなく他の態様に適用され得る。したがって、本開示は、本明細書に示した態様に限定されるものではなく、以下の特許請求の範囲によって定義される原理および新規の特徴と一致する、可能な最も広い範囲が与えられるべきものである。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
複数のパケットを受信するように構成された受信機と、ここで、前記複数のパケットは、パケットのシーケンスの少なくともサブセットに対応し、前記複数のパケットはエラー訂正データを含み、前記複数のパケットのうちの第１のパケットの前記エラー訂正データは、前記複数のパケットのうちの第２のパケットの部分コピーを含む、
前記複数のパケットを記憶するように構成されたバッファと、
送信機と、
アナライザであって、
前記パケットのシーケンスのうちの特定のパケットが前記バッファから消失しているかどうか決定することと、
前記特定のパケットの部分コピーが別のパケット中のエラー訂正データとして前記バッファに記憶されているかどうか決定することと、
前記バッファが前記特定のパケットを記憶していない、および前記バッファが前記特定のパケットの前記部分コピーを記憶していない、と決定したことに少なくとも部分的に基づいて、前記送信機を介して、第２のデバイスに再送メッセージを送ることと、
を行うように構成されたアナライザと、
を備えるデバイス。
［Ｃ２］
前記再送メッセージは前記特定のパケットの再送信を要求する、上記Ｃ１に記載のデバイス。
［Ｃ３］
前記受信機および前記送信機はトランシーバに含まれる、上記Ｃ１に記載のデバイス。
［Ｃ４］
前記再送メッセージは、前記バッファが前記特定のパケットを記憶していない、前記バッファが前記特定のパケットの前記部分コピーを記憶していない、および再送信カウントが再送信閾値を満足する、と決定したことに応答して、前記第２のデバイスに送られ、前記アナライザは、前記第２のデバイスに前記再送メッセージを送ったのに続いて、前記再送信カウントを更新するようにさらに構成される、上記Ｃ１に記載のデバイス。
［Ｃ５］
前記アナライザは、前記特定のパケットが前記バッファから消失しているかどうか、および前記特定のパケットの前記部分コピーが前記バッファに記憶されているかどうか、を決定したことに基づいて、前記再送信閾値を更新するようにさらに構成される、上記Ｃ４に記載のデバイス。
［Ｃ６］
前記アナライザは、
前記特定のパケットが前記バッファから消失している、および前記特定のパケットの前記部分コピーが前記バッファに記憶されている、と決定したことに応答して、取り出された部分コピーのカウントを更新することと、
取り出された部分コピーの前記カウントに少なくとも部分的に基づいて、前記再送信閾値を更新することと、
を行うようにさらに構成される、上記Ｃ４に記載のデバイス。
［Ｃ７］
前記アナライザは、前記バッファが前記特定のパケットを記憶しておらずかつ前記特定のパケットの前記部分コピーを記憶していない、と決定したことに応答して、喪失パケットのカウントを更新するようにさらに構成され、前記再送信閾値は、喪失パケットの前記カウントに少なくとも部分的に基づいて更新される、上記Ｃ６に記載のデバイス。
［Ｃ８］
前記アナライザは、取り出された部分コピーの前記カウントおよび喪失パケットの前記カウントに基づいて結果値を決定するようにさらに構成され、前記再送信閾値は、前記結果値が増分閾値を満足すると決定したことに応答して、増分量だけ増大される、上記Ｃ７に記載のデバイス。
［Ｃ９］
前記アナライザは、取り出された部分コピーの前記カウントおよび喪失パケットの前記カウントに基づいて結果値を決定するようにさらに構成され、前記再送信閾値は、前記結果値が減分閾値を満足すると決定したことに応答して、減分量だけ減少される、上記Ｃ７に記載のデバイス。
［Ｃ１０］
前記アナライザは、
取り出された部分コピーの前記カウントを品質メトリックで乗算することによって、加重値を生成することと、
喪失パケットの前記カウントと前記加重値の和に基づいて結果値を決定することと、
を行うようにさらに構成され、
前記再送信閾値は、前記結果値が閾値を満足するかどうか決定したことに基づいて更新される、上記Ｃ７に記載のデバイス。
［Ｃ１１］
通信の方法であって、
デバイスにおいて複数のパケットを受信することと、ここで、前記複数のパケットは、パケットのシーケンスの少なくともサブセットに対応し、
前記複数のパケットはエラー訂正データを含み、
前記複数のパケットのうちの第１のパケットの前記エラー訂正データは、前記複数のパケットのうちの第２のパケットの部分コピーを含む、
前記デバイスにおいて、前記パケットのシーケンスのうちの特定のパケットがバッファから消失しているかどうか決定することと、
前記デバイスにおいて、前記特定のパケットの部分コピーが別のパケット中のエラー訂正データとして前記バッファに記憶されているかどうか決定することと、
前記バッファが前記特定のパケットを記憶していない、および前記バッファが前記特定のパケットの前記部分コピーを記憶していない、と決定したことに少なくとも部分的に基づいて、前記デバイスから第２のデバイスに再送メッセージを送ることと、
を備える方法。
［Ｃ１２］
前記再送メッセージは、前記バッファが前記特定のパケットを記憶していない、前記バッファが前記特定のパケットの前記部分コピーを記憶していない、および再送信カウントが再送信閾値を満足する、と決定したことに応答して、前記デバイスから前記第２のデバイスに送られる、上記Ｃ１１に記載の方法。
［Ｃ１３］
前記デバイスにおいて、前記第２のデバイスに前記再送メッセージを送ったのに続いて前記再送信カウントを更新することと、
前記デバイスにおいて、前記特定のパケットが前記バッファから消失しているかどうか、および前記特定のパケットの前記部分コピーが前記バッファに記憶されているかどうか、を決定したことに基づいて、前記再送信閾値を更新することと、
をさらに備える、上記Ｃ１２に記載の方法。
［Ｃ１４］
前記特定のパケットが前記バッファから消失している、および前記特定のパケットの前記部分コピーが前記バッファに記憶されている、と決定したことに応答して、前記デバイスにおいて、取り出された部分コピーのカウントを更新することと、
前記バッファが前記特定のパケットを記憶しておらずかつ前記特定のパケットの前記部分コピーを記憶していない、と決定したことに応答して、前記デバイスにおいて、喪失パケットのカウントを更新することと、
取り出された部分コピーの前記カウントおよび喪失パケットの前記カウントに基づいて、前記再送信閾値を更新することと、
をさらに備える、上記Ｃ１２に記載の方法。
［Ｃ１５］
取り出された部分コピーの前記カウントを品質メトリックで乗算することによって、加重値を決定することと、
喪失パケットの前記カウントと前記加重値の和に基づいて結果値を決定することと、
をさらに備え、
前記再送信閾値は、前記結果値が増分閾値を満足すると決定したことに応答して、増分量だけ増大される、上記Ｃ１４に記載の方法。
［Ｃ１６］
前記結果値と前記増分閾値との間の差に基づいて前記増分量を決定することをさらに備える、上記Ｃ１５に記載の方法。
［Ｃ１７］
取り出された部分コピーの前記カウントを品質メトリックで乗算することによって、加重値を決定することと、
喪失パケットの前記カウントと前記加重値の和に基づいて結果値を決定することと、
をさらに備え、
前記再送信閾値は、前記結果値が減分閾値を満足すると決定したことに応答して、減分量だけ減少される、上記Ｃ１４に記載の方法。
［Ｃ１８］
前記結果値と前記減分閾値との間の差に基づいて前記減分量を決定することをさらに備える、上記Ｃ１７に記載の方法。
［Ｃ１９］
命令を記憶するコンピュータ可読記憶デバイスであって、前記命令は、プロセッサによって実行されると、前記プロセッサに、
複数のパケットを受信することと、ここで、前記複数のパケットは、パケットのシーケンスの少なくともサブセットに対応し、
前記複数のパケットはエラー訂正データを含み、
前記複数のパケットのうちの第１のパケットの前記エラー訂正データは、前記複数のパケットのうちの第２のパケットの部分コピーを含む、
前記パケットのシーケンスのうちの特定のパケットがバッファから消失しているかどうか決定することと、
前記特定のパケットの部分コピーが別のパケット中のエラー訂正データとして前記バッファに記憶されているかどうか決定することと、
前記バッファが前記特定のパケットを記憶していない、および前記バッファが前記特定のパケットの前記部分コピーを記憶していない、と決定したことに少なくとも部分的に基づいて、デバイスに再送メッセージを送ることと、
を備える動作を実施させる、コンピュータ可読記憶デバイス。
［Ｃ２０］
前記動作は、前記バッファが前記特定のパケットを記憶している、前記バッファが前記特定のパケットの前記部分コピーを記憶している、再送信カウントが再送信閾値を満足できない、またはそれらの組合せである、と決定したことに応答して、前記デバイスに前記再送メッセージを送るのを控えることをさらに備える、上記Ｃ１９に記載のコンピュータ可読記憶デバイス。
［Ｃ２１］
前記再送メッセージは、前記バッファが前記特定のパケットを記憶していない、前記バッファが前記特定のパケットの前記部分コピーを記憶していない、および再送信カウントが再送信閾値を満足する、と決定したことに応答して、前記デバイスに送られる、上記Ｃ１９に記載のコンピュータ可読記憶デバイス。
［Ｃ２２］
前記動作は、前記特定のパケットが前記バッファから消失しているかどうか、および前記特定のパケットの前記部分コピーが前記バッファに記憶されているかどうか、を決定したことに基づいて、前記再送信閾値を更新することをさらに備え、前記特定のパケットは音声データを含む、上記Ｃ２１に記載のコンピュータ可読記憶デバイス。
［Ｃ２３］
前記動作は、
前記特定のパケットが前記バッファから消失している、および前記特定のパケットの前記部分コピーが前記バッファに記憶されている、と決定したことに応答して、取り出された部分コピーのカウントを更新することと、
前記バッファが前記特定のパケットを記憶しておらずかつ前記特定のパケットの前記部分コピーを記憶していない、と決定したことに応答して、喪失パケットのカウントを更新することと、
取り出された部分コピーの前記カウントおよび喪失パケットの前記カウントに基づいて、前記再送信閾値を更新することと、
をさらに備える、上記Ｃ２１に記載のコンピュータ可読記憶デバイス。
［Ｃ２４］
前記動作は、
取り出された部分コピーの前記カウントを品質メトリックで乗算することによって、加重値を決定することと、
喪失パケットの前記カウントと前記加重値の和に基づいて結果値を決定することと、ここにおいて、前記再送信閾値は前記結果値に基づいて更新される、
をさらに備える、上記Ｃ２３に記載のコンピュータ可読記憶デバイス。
［Ｃ２５］
前記動作は、
前記特定のパケットが前記バッファから消失しているかどうか、および前記特定のパケットの前記部分コピーが前記バッファに記憶されているかどうかに基づいて結果値を決定することと、
前記結果値が増分閾値を満足すると決定したことに応答して、
前記結果値と前記増分閾値との間の差に基づいて増分量を決定することと、
前記増分量に基づいて前記再送信閾値を増大させることと、
をさらに備える、上記Ｃ２１に記載のコンピュータ可読記憶デバイス。
［Ｃ２６］
前記動作は、
前記特定のパケットが前記バッファから消失しているかどうか、および前記特定のパケットの前記部分コピーが前記バッファに記憶されているかどうかに基づいて結果値を決定することと、
前記結果値が減分閾値を満足すると決定したことに応答して、減分量に基づいて前記再送信閾値を減少させることと、
をさらに備える、上記Ｃ２１に記載のコンピュータ可読記憶デバイス。
［Ｃ２７］
前記動作は、前記結果値と前記減分閾値との間の差に基づいて前記減分量を決定することをさらに備える、上記Ｃ２６に記載のコンピュータ可読記憶デバイス。
［Ｃ２８］
前記第２のパケットは前記パケットのシーケンス中で前記第１のパケットよりも前である、上記Ｃ１９に記載のコンピュータ可読記憶デバイス。
［Ｃ２９］
複数のパケットを受信するための手段と、ここで、前記複数のパケットは、パケットのシーケンスの少なくともサブセットに対応し、前記複数のパケットはエラー訂正データを含み、前記複数のパケットのうちの第１のパケットの前記エラー訂正データは、前記複数のパケットのうちの第２のパケットの部分コピーを含む、
エラー回復のための手段と、
を備え、エラー回復のための前記手段は、
前記パケットのシーケンスのうちの特定のパケットがバッファから消失しているかどうか決定することと、
前記特定のパケットの部分コピーが別のパケット中のエラー訂正データとして前記バッファに記憶されているかどうか決定することと、
前記バッファが前記特定のパケットを記憶していない、および前記バッファが前記特定のパケットの前記部分コピーを記憶していない、と決定したことに少なくとも部分的に基づいて、第２のデバイスに再送メッセージを送ることと、
を行うように構成された、装置。
［Ｃ３０］
受信するための前記手段およびエラー回復のための前記手段は、デコーダ、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末（ＰＤＡ）、またはコンピュータの中に一体化される、上記Ｃ２９に記載の装置。
【図１】
0006337197.tif 000002
【図２】
0006337197.tif 000003
【図３】
0006337197.tif 000004
【図４】
0006337197.tif 000005
【図５】
0006337197.tif 000006
【図６】
0006337197.tif 000007
【図７】
0006337197.tif 000008
【図８】
0006337197.tif 000009
【図９】
0006337197.tif 000010