(57)【要約】  一般に、多数決エラー訂正技術を実行するための技術を説明する。動作において、制御ユニットを具備する通信デバイスは、多数決エラー訂正技術を実現する。制御ユニットは、第１の通信中で第１の訂正不可能なエラーを検出したことに応答して、ワイヤレス通信媒体を通して受信した第１の通信の第１の再送信をリクエストし、第１の再送信リクエストに応答して受信した第２の通信中で第２の訂正不可能なエラーを検出したことに応答して、第１の通信の第２の再送信をリクエストし、第２の再送信に応答して第３の通信を受信するリンク管理モジュールを備える。制御ユニットは、第３の通信中で第３の訂正不可能なエラーを検出したことに応答して、第１の通信の、第２の通信の、および、第３の通信の対応するビットにおけるビットごとの多数決を実行して、エラー訂正された通信を発生させる多数決モジュールも備える。【選択図】    図２
2013518514.tif 000002
【特許請求の範囲】
【請求項１】
方法において、
通信デバイスにより、ワイヤレス通信媒体を通して受信した第１の通信中で第１の訂正不可能なエラーを検出したことに応答して、前記第１の通信の第１の再送信をリクエストすることと、
前記デバイスにより、前記第１の再送信リクエストに応答して受信した第２の通信中で第２の訂正不可能なエラーを検出したことに応答して、前記第１の通信の第２の再送信をリクエストすることと、
前記デバイスにより、前記第２の再送信に応答して第３の通信を受信することと、
前記第３の通信中で第３の訂正不可能なエラーを検出したことに応答して、前記デバイスにより、前記第１の通信の、前記第２の通信の、および、前記第３の通信の対応するビットにおいてビットごとの多数決を実行して、エラー訂正された通信を発生させることと
を含む方法。
【請求項２】
前記デバイスを別のデバイスに通信可能に結合する前記ワイヤレス通信媒体にわたって同期リンクを確立することと、
前記同期リンクを通して前記第１の通信を受信することと
をさらに含み、
前記第１の再送信および前記第２の再送信をリクエストすることは、それぞれ、前記同期リンクを介しての前記第１の再送信および前記第２の再送信をリクエストすることを含み、
前記第３の通信を受信することは、前記同期リンクを介して前記第３の通信を受信することを含む請求項１記載の方法。
【請求項３】
前記同期リンクを介して前記第３の通信を受信することは、前記別のデバイスに対して前記第３の通信に肯定応答することなく、前記同期リンクを介して前記第３の通信を受信することを含む請求項２記載の方法。
【請求項４】
前記第１の通信は、拡張された同期接続指向（ｅＳＣＯ）パケットの第１のバージョンを含み、前記ｅＳＣＯパケットはブルートゥース規格に準拠し、
前記第２の通信は、前記ｅＳＣＯパケットの第２のバージョンを含み、
前記第３の通信は、前記ｅＳＣＯパケットの第３のバージョンを含む請求項１記載の方法。
【請求項５】
前記デバイスと別のデバイスとの間の前記ワイヤレス通信媒体にわたってｅＳＣＯリンクを確立することと、
前記ｅＳＣＯパケットの前記第１のバージョン、前記第２のバージョン、および、前記第３のバージョンを、前記ｅＳＣＯリンクを通して、前記別のデバイスから受信することと
をさらに含み、
前記第１の通信の前記第１の再送信および前記第２の再送信をリクエストすることは、前記ブルートゥース規格にしたがって、前記ｅＳＣＯリンクを介しての、前記ｅＳＣＯパケットの前記第１の再送信および前記第２の再送信のそれぞれをリクエストすることを含む請求項４記載の方法。
【請求項６】
前記ｅＳＣＯパケットは、ヘッダフィールドおよびペイロードフィールドを含み、
前記ヘッダフィールドは、前記ヘッダ中に記憶されているデータ中でのビットエラーの検出および訂正を可能にするエラー訂正データを記憶し、
前記ペイロードフィールドは、前記ペイロードフィールドに記憶されているデータ中でのビットエラーの検出を可能にするエラー検出データを記憶し、
前記第１の、前記第２の、および、前記第３の訂正不可能なエラーは、それぞれ、前記エラー訂正データを使用して訂正できない、前記ヘッダフィールドに記憶されているデータ中のビットエラーと、前記エラー検出データを使用して検出された、前記ペイロードフィールドに記憶されているデータ中のビットエラーとのうちの１つ以上を含む請求項４記載の方法。
【請求項７】
前記第３の訂正不可能なエラーが、前記エラー訂正データを使用して訂正できない、前記ヘッダフィールドに記憶されている前記データ中のビットエラーを含んでいることを決定することと、
前記第３の訂正不可能なエラーが、前記ヘッダフィールドに記憶されている前記データ中の前記ビットエラーを含んでいるとの決定に応答して、前記ｅＳＣＯパケットの前記第３のバージョンを廃棄することと、
前記ｅＳＣＯパケットの前記第１のバージョン、前記第２のバージョン、および、前記第３のバージョンの対応するビットにおいてビットごとの多数決を実行することなく、前記ｅＳＣＯパケットの廃棄された第３のバージョンを、無音を示す特殊なパケットに置き換えるパケット損失隠蔽を実行することと
をさらに含む請求項６記載の方法。
【請求項８】
前記第３の訂正不可能なエラーが、前記エラー検出データを使用して検出された、前記ペイロードフィールドに記憶されている前記データ中のビットエラーを含んでいることを決定することと、
前記第１の、前記第２の、および、前記第３の訂正不可能なエラーが、それぞれ、前記ペイロードフィールド中のビットエラーであるか否かを決定することと
をさらに含み、
前記ビットごとの多数決を実行することは、前記第１の、前記第２の、および、前記第３の訂正不可能なエラーが、それぞれ、前記ペイロードフィールドに記憶されている前記データ中のビットエラーであるとの決定に応答して、前記ｅＳＣＯパケットの前記第１の、前記第２の、および、前記第３のバージョンの対応するビットにおいてビットごとの多数決を実行して、エラー訂正された通信を発生させることを含む請求項６記載の方法。
【請求項９】
前記エラー訂正された通信のペイロードフィールドに記憶されているペイロードデータをデコードして、メディアコンテンツを発生させることと、
前記デバイスのオペレータによる消費のために前記メディアコンテンツを提示することと
をさらに含む請求項１記載の方法。
【請求項１０】
前記デバイスは、前記ワイヤレス通信媒体を通して、別のワイヤレスパーソナルエリアネットワーク（ＷＰＡＮ）可能デバイスとワイヤレス通信するＷＰＡＮデバイスを含む請求項１記載の方法。
【請求項１１】
前記ＷＰＡＮデバイスは、ブルートゥースヘッドセットを含み、
前記別のＷＰＡＮ可能デバイスは、移動体デバイスを含む請求項１０記載の方法。
【請求項１２】
制御ユニットを具備する通信デバイスにおいて、
前記制御ユニットは、
リンク管理モジュールと、
多数決モジュールと
を備え、
前記リンク管理モジュールは、ワイヤレス通信媒体を通して受信した第１の通信中で第１の訂正不可能なエラーを検出したことに応答して、前記第１の通信の第１の再送信をリクエストし、
前記第１の再送信リクエストに応答して受信した第２の通信中で第２の訂正不可能なエラーを検出したことに応答して、前記第１の通信の第２の再送信をリクエストし、
前記第２の再送信に応答して第３の通信を受信し、
前記多数決モジュールは、前記第３の通信中で第３の訂正不可能なエラーを検出したことに応答して、前記第１の通信の、前記第２の通信の、および、前記第３の通信の対応するビットにおいてビットごとの多数決を実行して、エラー訂正された通信を発生させる通信デバイス。
【請求項１３】
前記リンク管理モジュールは、前記デバイスを別のデバイスに通信可能に結合する前記ワイヤレス通信媒体にわたって同期リンクを確立するペアリングモジュールを含み、
前記リンク管理モジュールは、前記同期リンクを通して前記第１の通信を受信し、前記同期リンクを介しての前記第１の再送信および前記第２の再送信をリクエストし、前記第３の通信を受信することは、前記同期リンクを介して前記第３の通信を受信することを含む請求項１２記載の通信デバイス。
【請求項１４】
前記リンク管理モジュールは、前記別のデバイスに対して前記第３の通信に肯定応答することなく、前記同期リンクを介して前記第３の通信を受信する請求項１３記載の通信デバイス。
【請求項１５】
前記第１の通信は、拡張された同期接続指向（ｅＳＣＯ）パケットの第１のバージョンを含み、前記ｅＳＣＯパケットはブルートゥース規格に準拠し、
前記第２の通信は、前記ｅＳＣＯパケットの第２のバージョンを含み、
前記第３の通信は、前記ｅＳＣＯパケットの第３のバージョンを含む請求項１２記載の通信デバイス。
【請求項１６】
前記リンク管理モジュールは、前記デバイスと別のデバイスとの間の前記ワイヤレス通信媒体にわたってｅＳＣＯリンクを確立するペアリングモジュールを含み、
前記リンク管理モジュールは、前記ｅＳＣＯパケットの前記第１のバージョン、前記第２のバージョン、および、前記第３のバージョンを、前記ｅＳＣＯリンクを通して、前記別のデバイスから受信し、
前記リンク管理モジュールは、前記ブルートゥース規格にしたがって、前記ｅＳＣＯリンクを通しての、前記ｅＳＣＯパケットの前記第１の再送信および前記第２の再送信のそれぞれをリクエストする再送信モジュールを含む請求項１５記載の通信デバイス。
【請求項１７】
前記ｅＳＣＯパケットは、ヘッダフィールドおよびペイロードフィールドを含み、
前記ヘッダフィールドは、前記ヘッダ中に記憶されているデータ中でのビットエラーの検出および訂正を可能にするエラー訂正データを記憶し、
前記ペイロードフィールドは、前記ペイロードフィールドに記憶されているデータ中でのビットエラーの検出を可能にするエラー検出データを記憶し、
前記第１の、前記第２の、および、前記第３の訂正不可能なエラーは、それぞれ、前記エラー訂正データを使用して訂正できない、前記ヘッダフィールドに記憶されている前記データ中のビットエラーと、前記エラー検出データを使用して検出された、前記ペイロードフィールドに記憶されているデータ中のビットエラーとのうちの１つ以上を含む請求項１５記載の通信デバイス。
【請求項１８】
前記制御ユニットは、
エラー管理モジュールと、
パケット損失隠蔽モジュールと
をさらに備え、
前記エラー管理モジュールは、前記第３の訂正不可能なエラーが、前記エラー訂正データを使用して訂正できない、前記ヘッダフィールドに記憶されている前記データ中のビットエラーを含んでいることを決定して、前記第３の訂正不可能なエラーが、前記ヘッダフィールドに記憶されている前記データ中の前記ビットエラーを含んでいるとの決定に応答して、前記ｅＳＣＯパケットの前記第３のバージョンを廃棄し、
前記パケット損失隠蔽モジュールは、前記ｅＳＣＯパケットの前記第１のバージョン、前記第２のバージョン、および、前記第３のバージョンの対応するビットにおいてビットごとの多数決を前記多数決モジュールが実行するのを許容することなく、前記ｅＳＣＯパケットの廃棄された第３のバージョンを、無音を示す特殊なパケットに置き換えるパケット損失隠蔽を実行する請求項１７記載の通信デバイス。
【請求項１９】
前記制御ユニットは、
エラー管理モジュールをさらに備え、
前記エラー管理モジュールは、前記第３の訂正不可能なエラーが、前記エラー検出データを使用して検出された、前記ペイロードフィールドに記憶されている前記データ中の前記ビットエラーを含んでいることを決定して、
前記第１の、前記第２の、および、前記第３の訂正不可能なエラーが、それぞれ、前記ペイロードフィールド中のビットエラーであるか否かを決定し、
前記多数決モジュールは、前記第１の、前記第２の、および、前記第３の訂正不可能なエラーが、それぞれ、前記ペイロードフィールドに記憶されている前記データ中のビットエラーであるとの決定に応答して、前記ｅＳＣＯパケットの前記第１の、前記第２の、および、前記第３のバージョンの対応するビットにおいてビットごとの多数決を実行して、エラー訂正された通信を発生させる請求項１７記載の通信デバイス。
【請求項２０】
前記制御ユニットは、
デコーディングユニットをさらに備え、
前記デコーディングユニットは、前記エラー訂正された通信のペイロードフィールドに記憶されているペイロードデータをデコードして、メディアコンテンツを発生させて、
前記通信デバイスのオペレータによる消費のために前記メディアコンテンツを提示する請求項１２記載の通信デバイス。
【請求項２１】
前記通信デバイスは、前記ワイヤレス通信媒体を通して、別のワイヤレスパーソナルエリアネットワーク（ＷＰＡＮ）可能デバイスとワイヤレス通信するＷＰＡＮデバイスを含む請求項１２記載の通信デバイス。
【請求項２２】
前記ＷＰＡＮデバイスは、ブルートゥースヘッドセットを含み、
前記別のＷＰＡＮ可能デバイスは、移動体デバイスを含む請求項２１記載の通信デバイス。
【請求項２３】
システムにおいて、
制御ユニットを備える第１のワイヤレスパーソナルエリアネットワーク（ＷＰＡＮ）デバイスを含み、
前記制御ユニットは、
リンク管理モジュールと、
多数決モジュールと
を備え、
前記リンク管理モジュールは、ワイヤレス通信媒体を通して受信した第１の通信中で第１の訂正不可能なエラーを検出したことに応答して、前記第１の通信の第１の再送信をリクエストし、
前記第１の再送信リクエストに応答して受信した第２の通信中で第２の訂正不可能なエラーを検出したことに応答して、前記第１の通信の第２の再送信をリクエストし、
前記第２の再送信に応答して第３の通信を受信し、
前記多数決モジュールは、前記第３の通信中で第３の訂正不可能なエラーを検出したことに応答して、前記第１の通信の、前記第２の通信の、および、前記第３の通信の対応するビットにおいてビットごとの多数決を実行して、エラー訂正された通信を発生させ、
前記システムは第２のＷＰＡＮデバイスも含み、
前記第１のＷＰＡＮデバイスは、前記ワイヤレス通信媒体を通して前記第２のＷＰＡＮデバイスとワイヤレスに通信するシステム。
【請求項２４】
前記第１のＷＰＡＮデバイスは、ブルートゥースヘッドセットを含み、
前記第２のＷＰＡＮデバイスは、移動体デバイスを含む請求項２３記載のシステム。
【請求項２５】
命令を有するコンピュータ読取可能記憶媒体において、
前記命令は、
プロセッサに、ワイヤレス通信媒体を通して受信した第１の通信中で第１の訂正不可能なエラーを検出したことに応答して、前記第１の通信の第１の再送信をリクエストさせるための命令と、
前記プロセッサに、前記第１の再送信リクエストに応答して受信した第２の通信中で第２の訂正不可能なエラーを検出したことに応答して、前記第１の通信の第２の再送信をリクエストさせるための命令と、
前記プロセッサに、前記第２の再送信に応答して第３の通信を受信させるための命令と、
前記第３の通信中で第３の訂正不可能なエラーを検出したことに応答して、前記プロセッサに、前記第１の通信の、前記第２の通信の、および、前記第３の通信の対応するビットにおいてビットごとの多数決を実行して、エラー訂正された通信を発生させるための命令と
を含むコンピュータ読取可能記憶媒体。
【請求項２６】
通信デバイスにおいて、
ワイヤレス通信媒体を通して受信した第１の通信中で第１の訂正不可能なエラーを検出したことに応答して、前記第１の通信の第１の再送信をリクエストする手段と、
前記第１の再送信リクエストに応答して受信した第２の通信中で第２の訂正不可能なエラーを検出したことに応答して、前記第１の通信の第２の再送信をリクエストする手段と、
前記第２の再送信に応答して第３の通信を受信する手段と、
前記第３の通信中で第３の訂正不可能なエラーを検出したことに応答して、前記第１の通信の、前記第２の通信の、および、前記第３の通信の対応するビットにおいてビットごとの多数決を実行して、エラー訂正された通信を発生させる手段と
を具備する通信デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データを通信することに関し、さらに詳細には、ノイズの多い媒体を通してデータを通信することに関する。
【背景】
【０００２】
データ通信は、多数の異なる通信媒体を利用するように、だんだんと進化してきた。例えば、銅線の通信媒体は、従来型の電話システム（ＰＯＴＳ）において、１つの電話機から別の電話機に音声データを通信するのに元々使用されていた。より多くの帯域幅を必要とする適用が生じるにつれて、増加するデータトラフィックの配信をサポートするために、同軸ケーブルおよびファイバーのような、追加の通信媒体が開発された。近年、ポータブルデバイスの開発とともに、これらの適用のポータビリティを可能にするように、長距離（例えば、８．０５キロメートル〜１６．１キロメートル（５〜１０マイル））および短距離（例えば、９．１４メートル〜３０．４８メートル（３０〜１００フィート））の双方のデータ通信を含む、ワイヤレス通信または無線通信が開発されてきた。さらに、動きを制限するコードおよび他の固定通信手段は、これらの制限を取り除いて、移動性を改善するワイヤレスデータ通信に取って代わられている。
【０００３】
ワイヤレスデータ通信は、無線を通して伝搬する、１つ以上の周波数の信号として、データを送信することを典型的に伴い、無線は、事実上、特定の周波数が一般的にチャネルと呼ばれるワイヤレス通信媒体を表す。残念なことに、多くの電気デバイスは適切にシールドされておらず、結果として、指定されたワイヤレスチャネル中に信号を“漏らす”ことがある。これらの漏れた信号は、ワイヤレスデータ通信に対して使用されるこれらのワイヤレス通信チャネルにおいて、ノイズを構築する。このノイズは、ワイヤレス通信チャネルにわたる通信の品質に影響を及ぼすことがあり、受信デバイスが、これらのノイズの多いワイヤレス通信チャネルからデータを復元するときに、結果としてエラーを生じさせる。セルラ電話機により使用されているワイヤレスヘッドセットのような、多くの適用が、電話機の会話を正確に再生するために、ほとんどエラーのないデータを必要とするときに、これらのエラーは、所定の適用の知覚される品質に実質的に影響を及ぼすことがある。
【概要】
【０００４】
一般に、本開示は、ワイヤレス通信媒体のような、ノイズの多い通信媒体を通して、データを通信するための技術を説明する。この技術は、ノイズの多い通信媒体を通しての送信の結果生じる、元々受信されたデータパケット中の訂正不可能なエラーの検出に応答した、元々受信されたデータパケットのまたは他の個別のデータユニットの再送信を伴う。データパケットのこの第１の再送信も、ノイズの多い通信媒体を通しての通信に起因する訂正不可能なエラーを含んでいる場合に、この技術は、３つの異なるバージョンの元々のパケットが受信されるように、元々受信されたデータパケットの第２の再送信を提供する。第２の再送信の結果生じる第３のバージョンのデータパケットが、訂正不可能なエラーを含んでいる場合に、この技術は、相対的に高い確率により、元々のデータパケットを決定するためのビットごとの多数決（bit-wise majority vote）を伴う。ビットごとの多数決は、３つのバージョンのデータパケット間で、シーケンシャルな順序でビットを比較して、各ビットポジションに対して、多数派のビット値を“正しい”値として採用する。
【０００５】
本開示の多数決技術は、データパケットのうちの１つ以上の部分に関する、完全な順方向誤り訂正（ＦＥＣ）または他の埋め込まれているエラー訂正メカニズムがない通信システム中での、エラー訂正を推進する。それゆえ、この技術は、何らかの埋め込まれているエラー訂正メカニズムにより保護されていないこれらの部分を含むパケット全体に対する、エラー訂正を提供する。これらの技術の結果として、これらの技術が、ビットエラーレートを実質的に減少させることができることから、ノイズの多い通信媒体を通してのデータ通信を改善することができる。音声または他のストリーミングオーディオデータを含むデータ通信に対して、この技術は、本開示で説明する技術を用いないシステムに対して、改善されたオーディオ品質を推進する。
【０００６】
１つの態様では、方法は、通信デバイスにより、ワイヤレス通信媒体を通して受信した第１の通信中で第１の訂正不可能なエラーを検出したことに応答して、第１の通信の第１の再送信をリクエストすることと、デバイスにより、第１の再送信リクエストに応答して受信した第２の通信中で第２の訂正不可能なエラーを検出したことに応答して、第１の通信の第２の再送信をリクエストすることとを含む。方法はまた、デバイスにより、第２の再送信に応答して第３の通信を受信することと、第３の通信中で第３の訂正不可能なエラーを検出したことに応答して、デバイスにより、第１の通信の、第２の通信の、および、第３の通信の対応するビットにおいてビットごとの多数決を実行して、エラー訂正された通信を発生させることとを含む。
【０００７】
別の態様では、通信デバイスは、ワイヤレス通信媒体を通して受信した第１の通信中で第１の訂正不可能なエラーを検出したことに応答して、第１の通信の第１の再送信をリクエストし、第１の再送信リクエストに応答して受信した第２の通信中で第２の訂正不可能なエラーを検出したことに応答して、第１の通信の第２の再送信をリクエストし、第２の再送信に応答して第３の通信を受信するリンク管理モジュールを備える制御ユニットを具備する。制御ユニットはまた、第３の通信中で第３の訂正不可能なエラーを検出したことに応答して、第１の通信の、第２の通信の、および、第３の通信の対応するビットにおいてビットごとの多数決を実行して、エラー訂正された通信を発生させる多数決モジュールを備える。
【０００８】
別の態様では、システムは、第１のワイヤレスパーソナルエリアネットワーク（ＷＰＡＮ）デバイスと第２のＷＰＡＮデバイスを含む。第１のＷＰＡＮデバイスは、ワイヤレス通信媒体を通して受信した第１の通信中で第１の訂正不可能なエラーを検出したことに応答して、第１の通信の第１の再送信をリクエストし、第１の再送信リクエストに応答して受信した第２の通信中で第２の訂正不可能なエラーを検出したことに応答して、第１の通信の第２の再送信をリクエストし、第２の再送信に応答して第３の通信を受信するリンク管理モジュールを備える制御ユニットを具備する。第１のＷＰＡＮデバイスの制御ユニットはまた、第３の通信中で第３の訂正不可能なエラーを検出したことに応答して、第１の通信の、第２の通信の、および、第３の通信の対応するビットにおいてビットごとの多数決を実行して、エラー訂正された通信を発生させる多数決モジュールを備える。第１のＷＰＡＮデバイスは、ワイヤレス通信媒体を通して第２のＷＰＡＮデバイスとワイヤレスに通信する。
【０００９】
別の態様では、コンピュータ読取可能記憶媒体は、プロセッサに、ワイヤレス通信媒体を通して受信した第１の通信中で第１の訂正不可能なエラーを検出したことに応答して、第１の通信の第１の再送信をリクエストさせるための命令と、プロセッサに、第１の再送信リクエストに応答して受信した第２の通信中で第２の訂正不可能なエラーを検出したことに応答して、第１の通信の第２の再送信をリクエストさせるための命令と、プロセッサに、第２の再送信に応答して第３の通信を受信させるための命令と、第３の通信中で第３の訂正不可能なエラーを検出したことに応答して、プロセッサに、第１の通信の、第２の通信の、および、第３の通信の対応するビットにおいてビットごとの多数決を実行して、エラー訂正された通信を発生させるための命令とを含む。
【００１０】
別の態様では、通信デバイスは、ワイヤレス通信媒体を通して受信した第１の通信中で第１の訂正不可能なエラーを検出したことに応答して、第１の通信の第１の再送信をリクエストする手段と、第１の再送信リクエストに応答して受信した第２の通信中で第２の訂正不可能なエラーを検出したことに応答して、第１の通信の第２の再送信をリクエストする手段とを具備する。通信デバイスはまた、第２の再送信に応答して第３の通信を受信する手段と、第３の通信中で第３の訂正不可能なエラーを検出したことに応答して、第１の通信の、第２の通信の、および、第３の通信の対応するビットにおいてビットごとの多数決を実行して、エラー訂正された通信を発生させる手段とを具備する。
【００１１】
添付の図面および以下の説明において、この技術の１つ以上の態様の詳細を述べる。この技術の他の特徴、目的、および、利点は、説明と図面から、ならびに、特許請求の範囲から、明らかとなろう。
【図面の簡単な説明】
【００１２】
【図１】図１は、本開示で説明する多数決エラー訂正技術を実現する例示的なワイヤレス通信システムを図示したブロックダイヤグラムである。
【図２】図２は、図１のワイヤレスパーソナルエリアネットワーク（ＷＰＡＮ）デバイスをさらに詳細に図示したブロックダイヤグラムである。
【図３】図３は、本開示の多数決エラー訂正技術を実行する際のＷＰＡＮデバイスの例示的な動作を図示したフローチャートである。
【図４】図４は、本開示で説明する多数決エラー訂正技術にしたがった、ＷＰＡＮデバイスにより受信および処理される例示的な拡張された同期接続指向（ｅＳＣＯ）パケットを図示したダイヤグラムである。
【図５Ａ】図５Ａは、本開示の技術を用いたときの、理論的な減少されたビットエラーレートを示す例示的なグラフを図示したダイヤグラムである。
【図５Ｂ】図５Ｂは、本開示の技術を用いたときの、理論的な減少されたビットエラーレートを示す例示的なグラフを図示したダイヤグラムである。
【詳細な説明】
【００１３】
本開示は、ワイヤレス通信媒体のようなノイズの多い通信媒体を通して送られるデータ通信中で検出されたエラーを訂正するための、エラー訂正技術に向けられている。ワイヤレス通信媒体は、ワイヤまたは他の物理通信媒体を使用することなく、そこを通して通信が起こる媒体を示している。ワイヤレス通信は、典型的にこのようなワイヤレス通信のために取り分けられている、指定された周波数のうちの１つ以上において、または、指定された周波数の範囲において、信号を送信またはブロードキャストすることを伴うことが多い。他の例では、ワイヤレス通信は、周波数の各々が異なる範囲にある複数の周波数を通して、信号を送信またはブロードキャストすることを伴う。ワイヤレス通信のこの後者の形態は、“スペクトル拡散”ワイヤレス通信と呼ばれ、異なる周波数範囲の範囲にわたって、または、異なる周波数範囲のスペクトルにわたって、信号を拡散する。
【００１４】
ブルートゥース（登録商標）と呼ばれる、ワイヤレス通信規格、ワイヤレス通信標準規格、または、ワイヤレス通信プロトコルは、“周波数ホッピング”スペクトル拡散と呼ばれる特定のタイプのスペクトル拡散データ通信を使用して、ワイヤレス通信を実現する。この周波数ホッピングスペクトル拡散は、ワイヤレス通信媒体を通して通信されるデータを、個別の部分に分割して、これらの部分の各々を、最高７９個の異なる周波数の信号として送信する。典型的に、ブルートゥース通信は、１０メートルの最大送信距離をサポートする。１０メートルは、およそ３０フィートである。ブルートゥース通信は、（ブルートゥース規格では“ＳＣＯ”と呼ばれる）同期接続指向リンクをさらに提供し、ここで、第１のデバイスは第２のデバイスと接続する（または、ブルートゥース規格の専門用語では、“ペアになる”）。ボイスオーバーインターネットプロトコル（ＶｏＩＰ）および他の標準規格や、セルラ電話機通話を含む音声適用のような、時間的に敏感な（time-sensitive）または時間的に限定されている適用に対してデータの送信を可能にするために、２つのデバイスが、互いの間のデータ通信を、時間に関して（time-wise）同期させるという点で、接続は同期的である。
【００１５】
ブルートゥース規格に対する後の改訂では、ＳＣＯを改善するために、拡張された同期接続指向リンクと呼ばれる（ブルートゥース規格では“ｅＳＣＯ”と呼ばれる）別の形態のリンクが規定された。ＳＣＯは、これらの送信におけるエラーの検出に応答した通信の再送信を許容しておらず、その代わりに、限定された形態のエラー訂正のみを提供していた。エラー訂正に失敗すると、ＳＣＯは、エラーのあるデータ通信を、事実上無音を規定する特殊な通信に置き換えていた。限定された形態のエラー訂正により直すことができなかった、これらのエラーのあるデータ通信の再送信を可能にすることにより、ｅＳＣＯは、ＳＣＯを改善した。実際には、ｅＳＣＯは、エラーのあるデータ通信の２回の異なる再送信に、再送信を限定した。
【００１６】
本開示の技術の１つの態様にしたがって、ブルートゥースヘッドセットのような第１のデバイスは、セルラ電話機または移動電話機のような第２のデバイスと、ヘッドセットとの間のｅＳＣＯリンクを通して受信したデータ通信の、２回の再送信をリクエストするための、ブルートゥース規格またはブルートゥースプロトコルのｅＳＣＯ態様を実現する。それゆえ、ヘッドセットは、ｅＳＣＯリンクを通して第１の通信を受信して、第１の通信がエラーを含んでいるか否かを決定するためのエラー検出を実行する。第１の通信がエラーを含んでいる場合に、ヘッドセットは、エラーを訂正しようと最初に試みてもよい。しかしながら、エラーを訂正できないと仮定すると、ヘッドセットは、第１の通信におけるエラーの検出に応答して、例えばｅＳＣＯリンクのようなワイヤレス通信媒体を通して受信した第１の通信の、第１の再送信をリクエストする。
【００１７】
その後、ヘッドセットは、この第１のリクエストした再送信に応答した、別の、すなわち、第２の通信を受信する。ヘッドセットは、第１の再送信リクエストに応答して受信した第２の通信が、エラーを含んでいるか否かを決定する。この第２の通信が、訂正できないエラーを含んでいると仮定すると、ヘッドセットは、第１の再送信リクエストに応答して受信した第２の通信においてエラーを検出したことに応答して、第１の通信の第２の再送信をリクエストする。ヘッドセットは、第２の再送信に応答した第３の通信を受信して、第３の通信が、訂正できないエラーを含んでいるか否かを決定する。
【００１８】
第３の通信においてこのような別の訂正不可能なエラーを検出したことに応答して、ヘッドセットは、出力バッファ中の第３の通信を、無音を示す特殊な通信に置き換えるか、または、そうでなければ、パケット損失隠蔽を実行するのではなく、第１の通信の、第２の通信の、および、第３の通信の対応するビットにおいて、ビットごとの多数決を実行して、少なくとも部分的にエラー訂正された通信を発生させる。ヘッドセットは、例えば、第１の通信と、第２の通信と、第３の通信の各々のペイロードの第１のビットを比較することにより、ビットごとの多数決を実行する。例示の目的のために、第１の通信と、第２の通信と、第３の通信の各々のペイロードの第１のビットは、それぞれ、１、１、０のビット値を含んでもよい。２つの１が多数派を形成しているので、第１のデバイスは、“１”を選択し、それにより、ビットごとの多数決を実現して、第３の通信における仮定された“０”のエラーを訂正する。それぞれの通信ペイロードの各ビットに対して、この多数派プロセスを実行してもよい。
【００１９】
第３の通信に代えて、無音を示す特殊な通信を用いる代わりに、ｅＳＣＯの再送信拡張の活用を伴うこの追加のエラー訂正ステップを実行することにより、この技術は、誤った第３の通信に対して特殊な無音通信の標準的なｅＳＣＯの代用を実現するｅＳＣＯリンクを通して経験される品質と比較して、ｅＳＣＯリンクを通しての通信の品質を実質的に改善できる。さらに、本開示で説明するエラー訂正技術は、既存のブルートゥースプロトコル規格に準拠するように実現されてもよいことから、ブルートゥース規格の何らかの実質的な修正を必要としない。結果として、ブルートゥースのコンプライアンス事項に直面することなく、既存のブルートゥース可能デバイスにおいて、この技術を実現できる。
【００２０】
例示の目的のために、本開示において、ブルートゥースプロトコル規格に関してこの技術を説明するが、この技術は、検出したエラーとともに受信した通信を克服するための再送信に依存するあらゆる形態の通信に関して、実現できる。本態様および他の多くの態様において、以下で述べる例にこの技術を限定すべきではない。
【００２１】
図１は、本開示で説明する多数決エラー訂正技術を実現する例示的なワイヤレス通信システム１０を図示したブロックダイヤグラムである。ワイヤレス通信システム１０は、移動体デバイス１２と、ワイヤレスパーソナルエリアネットワークデバイス１４（“ＷＰＡＮデバイス１４”）とを含む。移動体デバイス１２は、（いわゆる“スマート”フォンを含む）セルラ電話機、ワイヤレス電話機、ラップトップコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、いわゆる“ネットブック”、（いわゆる“ＭＰ３”プレイヤーを含む）ポータブルメディアプレイヤーまたはパーソナルメディアプレイヤー、あるいは、ワイヤレス通信プロトコルまたはワイヤレス通信標準規格を実現することが可能なポータブル性質の他の何らかのデバイスのうちの１つ以上を含む。移動体デバイス１２に関して説明するが、移動型でないデバイスあるいはポータブル性の低いデバイスに関して、この技術を実現してもよく、移動型でないデバイスあるいはポータブル性の低いデバイスは、例えば、デスクトップコンピュータ、ワークステーション、（デジタルビデオディスクプレイヤーと、ブルーレイ（登録商標）ディスクプレイヤーと、オーディオ／ビデオ受信機とのような、ワイヤードメディアプレイヤーを含む）ポータブルでないメディアプレイヤー、テレビ、あるいは、ワイヤレス通信プロトコルまたはワイヤレス通信標準規格を実現することが可能な移動型でないデバイスあるいはポータブル性の低いデバイスのうちの他の何らかのデバイス等である。
【００２２】
ＷＰＡＮデバイス１４は、ブルートゥースプロトコルと、赤外線通信に関する赤外線データ通信協会（ＩｒＤＡ）標準規格と、ウルトラワイドバンド（ＵＷＢ）規格とのような、ＷＰＡＮプロトコルを実現することが可能な何らかのデバイスを含んでもよい。例示の目的のために、ＷＰＡＮデバイス１４は、ブルートゥース規格を実現すると仮定する。ブルートゥースプロトコルを実現する一般的なＷＰＡＮデバイス１４は、ワイヤレスヘッドセットと、（例えば、マウスのような）ワイヤレスコンピュータポインティングデバイスと、ワイヤレスキーボードと、ワイヤレスステレオヘッドフォンとを含む。
【００２３】
ＷＰＡＮ標準規格に特化したＩＥＥＥ８０２の１５番目のワーキンググループである米国電気電子学会（ＩＥＥＥ）８０２．１５は、以前のバージョンのブルートゥース標準規格を規定したが、それ以来、さらなるブルートゥース標準化を見合わせている。ブルートゥース分科会（ＳＩＧ）が、ブルートゥース標準化のみを引き継ぎ、近年、“ブルートゥース規格バージョン３．０＋ＨＳ”と題するブルートゥース規格バージョン３．０を２００９年４月２１日にリリースした。この内容全体は、ここで完全に述べられているかのように、参照によりここに組み込まれている。
【００２４】
移動体デバイス１２は、例えば、ブルートゥース規格のうちの１つのような、ＷＰＡＮデバイス１４により実現されるものと同じＷＰＡＮプロトコルを実現する制御ユニット１６を含む。さらに詳細には、制御ユニット１６は、例えば、ブルートゥース規格のような、ＷＰＡＮデバイス１４により実現されるものと同じＷＰＡＮプロトコルを実現するＷＰＡＮモジュール１８を含む。ＷＰＡＮデバイス１４は、例えば、ブルートゥース規格のような、移動体デバイス１２により実現されるものと同じＷＰＡＮプロトコルを実現する制御ユニット２０も含む。特に、制御ユニット２０は、例えば、ブルートゥース規格のような、移動体デバイス１２により実現されるものと同じＷＰＡＮプロトコルを実現するＷＰＡＮモジュール２２を含む。
【００２５】
移動体デバイス１２およびＷＰＡＮデバイス１４の各々は、ブルートゥース規格において述べられている手順を使用して、互いに“ペアになる”ように、同じＷＰＡＮプロトコルを実現する。“ペアリング”は、ＷＰＡＮモジュール１８およびＷＰＡＮモジュール２２の各々の間に、ワイヤレス通信チャネルまたはワイヤレス通信リンク２４を確立することを伴う。このワイヤレス通信チャネルまたはワイヤレス通信リンク２４は、ワイヤレス通信媒体を表す。非同期リンクおよび同期リンクを含む、ＷＰＡＮモジュール１８およびＷＰＡＮモジュール２２が確立できるさまざまな異なるタイプのリンクがある。ＷＰＡＮモジュール１８およびＷＰＡＮモジュール２２は、典型的に、特定の適用の要件に基づいて、リンクのタイプを選択する。例えば、ボイスオーバーインターネットプロトコル（ＶｏＩＰ）適用のような、音声適用に対して、ＷＰＡＮモジュール１８およびＷＰＡＮモジュール２２は、一般的に同期リンク２４を確立する。例示の目的のために、ＷＰＡＮモジュール１８およびＷＰＡＮモジュール２２は、同期ワイヤレス通信リンク２４を確立すると仮定する。しかしながら、本開示の技術を、同期ワイヤレス通信リンク２４に限定すべきではない。
【００２６】
ブルートゥース規格は、異なるタイプの同期ワイヤレス通信リンクを提供する。同期接続指向（ＳＣＯ）リンクと呼ばれる第１のタイプは、ＳＣＯリンクを通しての、限定されたエラー訂正を含むデータユニットの送信を伴う。ＳＣＯリンクに対するエラー訂正が、エラーを訂正するのに不十分である例では、ＳＣＯリンクは、誤ったデータユニットの代わりに使用するための特殊な“無音”データユニットを提供する。自動データユニット（auto data units）に適用されるときに、“無音”データユニットは、２つのＷＰＡＮデバイス間で通信されているオーディオストリームにおける無音を表す。元々、誤ったデータユニットに対する改善として、無音が認識されていた。しかしながら、先に述べたように、ブルートゥース規格では拡張された同期接続指向（ｅＳＣＯ）リンクと呼ばれる、異なるタイプの同期ワイヤレス通信リンクを含むように、ブルートゥース規格が改訂された。
【００２７】
これらのｅＳＣＯリンクは、誤ったデータ通信に対処し、最後の手段としてようやく無音を示すように、再送信メカニズムに対して提供された。例示するために、限定されたエラー訂正がエラーを訂正するのに不十分であると判明した場合に、データユニット中でエラーを検出したときに、改訂されたブルートゥース規格に忠実なこれらのＷＰＡＮデバイスは、データユニットの再送信をリクエストした。受信ＷＰＡＮデバイスが、再送信されたデータユニット中で、訂正不可能なエラーを検出した場合に、このデバイスは、データユニットの再送信を再度リクエストする。受信ＷＰＡＮデバイスが、再送信されたデータユニット中で、訂正不可能なエラーを再度検出した場合に、ＷＰＡＮデバイスは、このデータユニットを、特殊な“無音”データユニットにようやく置き換える。データユニットは、典型的に、オーディオデータを含むパケットを含んでいるが、他の何らかのタイプのアプリケーションレイヤデータを含んでいてもよい。
【００２８】
ＳＣＯからｅＳＣＯへの移行は、主に、ワイヤレス通信チャネルにおける干渉の増加に起因して生じた。増加する数のワイヤードデバイスおよびワイヤレスデバイスの双方が使用されており、ここで、シールドされていないワイヤードデバイスが、ＳＣＯリンクに対して使用されているのと同じ周波数において干渉を引き起こす電気的な信号を“漏らす”か、または、そうでなければ、発生させるかもしれず、他のワイヤレスデバイスが、ＳＣＯリンクに対して使用されている周波数をオーバーランするかもしれない。結果的に、静的な干渉または他の干渉が、確立された同期ワイヤレス通信リンク２４を通して通信するために予約されているものと同じ周波数帯域のランダムな信号を導入することがあるという意味で、これらのワイヤレス通信チャネルまたはワイヤレス通信リンクは、“ノイズがある”。ｅＳＣＯリンクにおいて、元々のデータユニットの２回の再送信を提供することによって、エラーのないパケットを受信する確率が大幅に増加する。
【００２９】
とりわけ、現在のバージョンのブルートゥース規格（バージョン３．０）は、データユニットのヘッダに対してのみ、順方向誤り訂正（ＦＥＣ）を提供し、オーディオまたは他のデータが記憶されている実際のペイロードに対しては提供しない。ペイロードに対して、現在のバージョンのブルートゥース規格は、巡回冗長検査（ＣＲＣ）の使用によるエラー検出のみを提供する。この意味で、ブルートゥース規格は、ヘッダ中のエラーのみを訂正できる一方で、ペイロード中のエラーは検出のみできることから、“限定された”エラー訂正を提供する。したがって、ブルートゥース規格にしたがうと、再送信は、ペイロード中のエラーを“訂正”できる唯一の手段であり、ここで、この形態の訂正は、ＦＥＣにより使用可能な、同じデータユニットの動的な訂正とはるかに異なっている。すなわち、ＦＥＣが、実際には、同じデータユニット中のエラーを訂正する一方で、再送信は、現在のデータユニットを、エラーを含んでいるかもしれないまたは含んでいないかもしれないデータユニットの別のバージョンに置き換えることによって、現在のデータユニットのエラーを訂正する。
【００３０】
これらのｅＳＣＯリンクの同期的性質を前提として、ＷＰＡＮモジュール１８とＷＰＡＮモジュール２２との間で各データユニットを送ってもよい制限された時間ウィンドウを、ブルートゥース規格は提供する。典型的に、この制限された時間ウィンドウは、データユニットの２回のみの再送信を許可し、これは、ＷＰＡＮモジュール２２が、ペイロードをキューからフラッシュ（ｆｌｕｓｈ）しなければならない前に、２回の再送信のみをリクエストできることを意味する。キューからのフラッシュは、データユニットを、特殊な“無音”データユニットに置き換えるのと同じであるかもしれない。さらに、リンク２４の同期的性質は、ＷＰＡＮモジュール１８およびＷＰＡＮモジュール２２の双方が、同時にタイムアウトして、同期したままであるように要求するので、いったん、この時間が満了すると（または、言い換えると、タイマーの“タイムアウト”が起こると）、ＷＰＡＮモジュール２２は、受信したデータユニットに対する肯定応答による応答さえしなくてもよい。
【００３１】
本開示で説明する技術にしたがうと、上述したようにブルートゥースヘッドセットを表してもよいＷＰＡＮデバイス１４は、ＷＰＡＮデバイス１４と、セルラ電話機または移動電話機を表してもよい移動体デバイス１２との間のｅＳＣＯリンクを通して受信したデータユニットまたは通信の２回の再送信をリクエストする、ブルートゥース規格またはブルートゥースプロトコルのｅＳＣＯ態様を実現する。しかしながら、訂正不可能なエラーを有する最後のデータ通信を、特殊な無音データユニットに単に置き換えるか、または、そうでなければ、パケット損失隠蔽を実行するのではなく、ＷＰＡＮデバイス１４は、適切なときに、同じデータ通信の３つの別々のバージョンのビットの各々において、ビットごとの多数決を実行する。経験的なリサーチが証明しているのは、ビットごとの多数決を実行すると、リスナーにプレーバックされたときに、ＷＰＡＮデバイス１４により受信したメディアコンテンツ２６’のオーディオ品質が、著しく改善されることがあるということである。
【００３２】
これらの技術を図示するために、参照を簡単にするためにｅＳＣＯリンク２４とも呼ばれる同期ワイヤレス通信リンク２４を確立するように、移動体デバイス１２は、はじめに、ＷＰＡＮデバイス１４とペアになると考える。さらに詳細には、移動体デバイス１２のＷＰＡＮモジュール１８が、ＷＰＡＮデバイス１４のＷＰＡＮモジュール２２とペアになる。移動体デバイス１２は、セルラネットワークを通してか、または、データネットワークを通してかのいずれかによって、音声電話機通話を開始してもよく、ここで、データネットワークの例では、通話は、ＶｏＩＰ通話を表す。代替的に、移動体デバイス１２は、オーディオデータまたはビデオデータのプレーバックを開始してもよく、あるいは、ワイヤレスネットワークから、オーディオデータまたはビデオデータをストリーミングしてもよい。何らかのイベントにおいて、制御ユニット１６は、メディアコンテンツ２６にアクセスしてデコードしてもよく、ここで、制御ユニット１６は、メディアコンテンツ２２を（図１では示されていない）メモリまたは他の記憶媒体に記憶する。その後、ＷＰＡＮモジュール１８は、ｅＳＣＯリンク２４を介して、ＷＰＡＮデバイス１４のＷＰＡＮモジュール２２への、このメディアコンテンツ２６の送信を開始する。ＷＰＡＮデバイス１４のＷＰＡＮモジュール２２は、受信したメディアコンテンツをプレーバックするための、図１では示されていない他のモジュールを含んでもよい。
【００３３】
ブルートゥース規格にしたがうと、ＷＰＡＮモジュール１８は、メディアコンテンツ２２を、ブルートゥース規格ではｅＳＣＯパケットと呼ばれる個別のデータユニットに分割する。ｅＳＣＯパケットに関して説明するが、この技術は、あらゆるデータ通信またはデータユニットに適用されてもよく、ｅＳＣＯパケットに限定すべきではない。それゆえ、ＷＰＡＮデバイス１４が、さらに詳細には、ＷＰＡＮデバイス１４のＷＰＡＮモジュール２２が、ｅＳＣＯリンク２４を通して第１のｅＳＣＯパケットを受信して、第１のｅＳＣＯパケットがエラーを含んでいるか否かを決定するためのエラー訂正／検出を実行する。第１のｅＳＣＯパケットがエラーを含んでいる場合に、ＷＰＡＮモジュール２２は、最初に、エラーを訂正しようと試みてもよい。しかしながら、エラーが訂正できないと仮定すると、ＷＰＡＮモジュール２２は、第１のｅＳＣＯパケット中でのエラーの検出に応答して、例えばｅＳＣＯリンク２４のようなワイヤレス通信媒体を通して受信した第１のｅＳＣＯパケットの第１の再送信を、ブルートゥース規格にしたがって、リクエストする。ＷＰＡＮモジュール１８は、ＷＰＡＮモジュール１８の観点からは第１のｅＳＣＯパケットの複製またはコピーである、別のすなわち第２のｅＳＣＯのパケットにより、この第１の再送信リクエストに応答する。
【００３４】
その後、ＷＰＡＮモジュール２２は、この第１のリクエストした再送信に応答して、ＷＰＡＮモジュール１８から、別のすなわち第２のｅＳＣＯパケットを受信する。ＷＰＡＮモジュール２２は、第１の再送信リクエストに応答して受信した第２のｅＳＣＯパケットがエラーを含んでいるか否かを決定する。この第２の通信が、訂正できないエラーを含んでいると仮定すると、ＷＰＡＮモジュール２２は、第１の再送信リクエストに応答して受信した第２の通信において、訂正不可能なエラーを検出したことに応答して、第１のｅＳＣＯパケットの第２の再送信を再びリクエストする。再度、ＷＰＡＮデバイス１２のＷＰＡＮモジュール１８は、ＷＰＡＮモジュール１８の観点からの第１のｅＳＣＯパケットの複製またはコピーにより、第２の再送信リクエストに応答する。ＷＰＡＮモジュール２２は、第２の再送信に応答した、移動体デバイス１２のＷＰＡＮモジュール１８からの第３のｅＳＣＯパケットを受信して、第３のｅＳＣＯパケットが訂正不可能なエラーを含んでいるか否かを決定する。
【００３５】
第３のｅＳＣＯパケットにおいてさらに別の訂正不可能なエラーを検出したことに応答して、ＷＰＡＮデバイス１４のＷＰＡＮモジュール２２は、出力バッファ中の第３のｅＳＣＯパケットを、無音を示す特殊な通信に置き換えるのではなく、適切なときに、多数決（ＭＶ）モジュール２８（“ＭＶモジュール２８”）を実行する。ここで、ＭＶモジュール２８は、第１のｅＳＣＯパケットと、第２のｅＳＣＯパケットと、第３のｅＳＣＯパケットの対応するビットにおいて、ビットごとの多数決を実行して、少なくとも部分的にエラー訂正されたｅＳＣＯパケットを発生させる。ヘッダまたは他の情報が、訂正できないほど破損している場合には、これらの訂正不可能なエラーを持つパケットは、本開示で説明する技術による訂正に対して、多すぎるエラーを含んでいるかもしれないので、ＭＶモジュール２８を実行しなくてもよい。ＭＶモジュール２８は、本開示で説明するビットごとの多数決技術のさまざまな態様を実現する、ハードウェア、または、ハードウェアモジュールとソフトウェアモジュールの組み合わせ（例えば、コンピュータ読取可能記憶媒体に記憶されているソフトウェアを実行するプロセッサ）を表す。
【００３６】
ＭＶモジュール２８は、例えば、第１のｅＳＣＯパケットと、第２のｅＳＣＯパケットと、第３のｅＳＣＯパケットの各々のペイロードの第１のビットを比較することにより、ビットごとの多数決を実行する。第１のｅＳＣＯパケットと、第２のｅＳＣＯパケットと、第３のｅＳＣＯパケットの各々のペイロードの第１のビットは、例示の目的のために、それぞれ、１、１、０のビット値を含んでもよい。２つの１が多数派を形成しているので、ＭＶモジュール２８は、“１”を選択し、それにより、ビットごとの多数決を実現して、第３のｅＳＣＯパケットにおける仮定された“０”のエラーを訂正する。ＭＶモジュール２８は、引き続き、先のようにビット単位で、上述した多数決技術によりこれらのビットにアクセスして訂正する。その後、ＭＶモジュール２８は、この部分的にエラー訂正されたｅＳＣＯパケットを、バッファ、メモリ、または、他のコンピュータ読取可能記憶媒体に記憶されていることがあるメディアコンテンツ２６’に書き込む。メディアコンテンツ２６’は、移動体デバイス１２の制御ユニット１６により記憶されているメディアコンテンツ２６のコピーまたはほぼコピーであることを示唆するために、プライム記号（’）によって示される。
【００３７】
第３のｅＳＣＯパケットに代えて、無音を示す特殊な通信を用いる代わりに、ｅＳＣＯの再送信拡張の活用を伴うこの追加のエラー訂正ステップを実行することにより、この技術は、誤った第３のｅＳＣＯパケットに対して標準的なｅＳＣＯ無音代用を実現するｅＳＣＯリンクを通して経験される品質と比較して、ｅＳＣＯリンクを通しての通信の品質を実質的に改善できる。さらに、本開示で説明するエラー訂正技術は、既存のブルートゥースプロトコル規格に準拠していることから、ブルートゥース規格の何らかの実質的な補正を必要としない。結果として、ブルートゥースのコンプライアンス事項に直面することなく、既存のブルートゥース可能デバイスにおいて、本開示のこの技術を実現できる。
【００３８】
図２は、図１のＷＰＡＮデバイス１４をさらに詳細に図示したブロックダイヤグラムである。図２において示されているように、ＷＰＡＮデバイス１４は、ＷＰＡＮモジュール２２を含む制御ユニット２０を備える。上述したように、ＷＰＡＮモジュール２２は、ＭＶモジュール２８を含む。しかしながら、ＷＰＡＮモジュール２２は、リンク管理モジュール３０と、エラー管理モジュール３２と、デコーディングユニット３４と、パケット損失隠蔽モジュール３５と、バッファ３６Ａ〜３６Ｃも含む。リンク管理モジュール３０は、図１において示されているｅＳＣＯリンク２４のようなリンクを管理する、ハードウェア、または、ハードウェアとソフトウェアの組み合わせ（例えば、コンピュータ読取可能記憶媒体に記憶されているソフトウェアを実行するプロセッサ）を表す。
【００３９】
リンク管理モジュール３０は、ペアリングモジュール３８と、再送信モジュール４０（“ｒｅｔｒａｉｎｓ．モジュール４０”）とを含む。ペアリングモジュール３８は、非同期であるリンクまたは同期であるリンク（例えば、ｅＳＣＯリンク２４）のいずれかを構成し、確立し、維持するために、ＷＰＡＮモジュール２２をＷＰＡＮモジュール１８と“ペアにする”、ハードウェア、または、ハードウェアとソフトウェアの組み合わせ（例えば、コンピュータ読取可能記憶媒体に記憶されているソフトウェアを実行するプロセッサ）を表す。再送信モジュール４０は、ｅＳＣＯパケットのような、データユニットまたは通信の再送信に対するリクエストを発行する、ハードウェア、または、ハードウェアとソフトウェアの組み合わせ（例えば、コンピュータ読取可能記憶媒体に記憶されているソフトウェアを実行するプロセッサ）を表す。
【００４０】
エラー管理モジュール３２は、ｅＳＣＯパケットのような、受信したデータユニットに関するエラー訂正またはエラー検出を実行する、ハードウェア、または、ハードウェアとソフトウェアの組み合わせ（例えば、コンピュータ読取可能記憶媒体に記憶されているソフトウェアを実行するプロセッサ）を表す。デコーディングユニット３４は、ｅＳＣＯパケットのペイロードに記憶されているペイロードデータをデコードして、メディアコンテンツ２６’を発生させる、ハードウェア、または、ハードウェアとソフトウェアの組み合わせ（例えば、コンピュータ読取可能記憶媒体に記憶されているソフトウェアを実行するプロセッサ）により形成されるモジュールを表す。パケット損失隠蔽モジュール３５は、損失したパケットまたは破損したパケットを隠蔽するためにパケット損失隠蔽を実行する、ハードウェアモジュール、または、ハードウェアモジュールとソフトウェアモジュールの組み合わせを表す。図２において示されていないが、制御ユニット２０は、ユーザによる消費のためにメディアコンテンツ２６’をプレーするか、レンダリングするか、または、そうでなければ、プレーバックする、オーディオプレーバックモジュールのような、他のモジュールを含んでもよい。これらのプレーバックモジュールは、オーディオドライバと、スピーカーと、他のオーディオプレーバックコンポーネントとともに、ディスプレイおよび他のビデオプレーバックコンポーネントを含んでもよい。
【００４１】
バッファ３６Ａ〜３６Ｃ（“バッファ３６”）は、ｅＳＣＯパケットのようなデータを記憶するハードウェアモジュールを表す。３つの別々のバッファ３６Ａ〜３６Ｃとして示されているが、単一のメモリモジュールまたはディスクドライブが、３つの別々の物理バッファではなく、３つの別々の論理バッファを提供してもよい。この点で、バッファ３６は、メモリあるいは他のコンピュータ読取可能記憶媒体の、何らかの実在のまたは論理的な区分を表す。バッファ３６は、典型的に、フラッシュメモリ、ランダムアクセスメモリ（ＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、または、他の何らかの形態のスタティックメモリまたはダイナミックメモリのいずれかのような、小型の専用メモリを含む。
【００４２】
はじめに、ＷＰＡＮデバイス１４のユーザまたは他のオペレータは、リンク管理モジュール３０のペアリングモジュール３８に、異なる周波数上での問い合わせメッセージのブロードキャスト、または、そうでなければ、送信を開始させるために、（図２において示されていない）ユーザインターフェースと対話する。移動体デバイス１２のＷＰＡＮモジュール１８は、これらの問い合わせメッセージを受信して、（これもまた図１または図２において示されていない）移動体デバイス１２のユーザインターフェースを介して、問い合わせメッセージにより識別されたデバイスをユーザまたはオペレータに提示してもよい。ユーザは、問い合わせメッセージを介して学習されたデバイスのリストから、それによりユーザが移動体デバイス１２とペアになることを望んでいるデバイスを選択してもよい。ユーザがＷＰＡＮデバイス１４を選択したと仮定すると、ＷＰＡＮモジュール１８は、ＷＰＡＮモジュール２２とペアになり、ここで、ペアリングモジュール３８が、ｅＳＣＯリンク２４のようなリンクを確立するためにペアリングプロセスを交渉する。
【００４３】
いったんペアになると、移動体デバイス１２のＷＰＡＮモジュール１８は、メディアコンテンツ２６を個別のペイロードに分割して、これらのペイロードをヘッダとともにカプセル化して、１つ以上のｅＳＣＯパケットを形成することにより、確立されたｅＳＣＯリンク２４を介してメディアコンテンツ２６を送信する。その後、ＷＰＡＮモジュール１８は、ｅＳＣＯリンク２４を介して、ＷＰＡＮデバイス１４のＷＰＡＮモジュール２２にｅＳＣＯパケットを送信する。ＷＰＡＮデバイス１４内に含まれているＷＰＡＮモジュール２２のリンク管理モジュール３０は、ＷＰＡＮモジュール１８により送られた複数のｅＳＣＯパケットの第１のｅＳＣＯパケット４２を受信する。リンク管理モジュール３０は、バッファ３６ＡにｅＳＣＯパケット４２を記憶して、エラー管理モジュール３２にシグナリングする。エラー管理モジュール３２は、バッファ３６Ａに記憶されたｅＳＣＯパケット４２からヘッダを構文解析して、ヘッダが何らかのビットエラーを含んでいるか否かを決定する。ヘッダが数ビットのエラーのみを含んでいる場合には、エラー管理モジュール３２は、これらのエラーを訂正するためにＦＥＣを実行する。しかしながら、構文解析したヘッダが、ＦＥＣしきい値を越える多数のエラーを含んでいる場合には、エラー管理モジュール３２は、ＦＥＣを使用してこれらのエラーを訂正できないことがあり、その代わりに、リンク管理モジュール３０にシグナリングして、リンク管理モジュール３０が、パケット４２の再送信をリクエストしてもよい。リンク管理モジュール３０は、再送信モジュール４０を実行して、ｅＳＣＯパケット４２の再送信に対するリクエストを発行する。
【００４４】
しかしながら、エラー管理モジュール３２がヘッダ中で何のエラーも検出しなかったと仮定すると、エラー管理モジュール３２は、次に、ｅＳＣＯパケット４２のペイロードが何らかのエラーを含んでいるか否かを決定する。一般的に、ｅＳＣＯパケット４２のようなｅＳＣＯパケットは、ｅＳＣＯパケットがエラーを含んでいるか否かを決定するためにエラー管理モジュール３２が利用するＣＲＣチェックサムを提供する。パケット４２が何らかのエラーを含んでいない場合に、エラー管理モジュール３２が、デコーディングユニット３４のバッファ４４にパケット４２を書き込むと、デコーディングユニット３４は、パケット４２をデコードして、メディアコンテンツ２６’の一部としてこのパケットを記憶する。バッファ４４は、バッファ３６に実質的に類似していることがある。いくつかの例では、バッファ３６Ａが、パケットをデコードするためにデコーディングユニット３４がアクセスするバッファであるという点で、バッファ４４は、このバッファ３６Ａと同じであってもよい。何らかのイベントにおいて、パケット４２がエラーを含んでいることをエラー管理モジュール３２がＣＲＣを使用して決定した場合に、エラー管理モジュール３２は、リンク管理モジュール３０にシグナリングし、リンク管理モジュール３０は、再送信モジュール４０を実行して、ｅＳＣＯパケット４２の再送信をリクエストする。
【００４５】
例示の目的のために、ｅＳＣＯパケット４２がペイロードビットエラーを含んでおり、その結果として、再送信モジュール４０が、ｅＳＣＯパケット４２の再送信をリクエストしたと仮定すると、移動体デバイス１２のＷＰＡＮモジュール１８は、ｅＳＣＯパケット４２を再送信し、ここで、この再送信されたｅＳＣＯパケット４２のコピーまたは複製は、ｅＳＣＯパケット４２’として表される。リンク管理モジュール３６は、ｅＳＣＯパケット４２’を受信して、このｅＳＣＯパケット４２’をバッファ３６Ｂに記憶する。その後、エラー管理モジュール３２は、上述したプロセスを実行して、パケット４２’が何らかの訂正不可能なエラーを含んでいるか否かを決定する。何らかの訂正不可能なエラーは、ＦＥＣしきい値を超える多数のビットエラーをヘッダ中に含んでいるか、および／または、何らかのビットエラーをペイロード中に含んでいることがあり、ＣＲＣが訂正可能でないペイロードだと考えられる。訂正不可能なエラーがパケット４２’中に存在しない場合に、エラー管理モジュール３２が、デコーディングユニット３４のバッファ４４にパケット４２’を書き込むと、デコーディングユニット３４は、パケット４２’をデコードして、メディアコンテンツ２６’の一部としてこのパケットを記憶する。
【００４６】
しかしながら、ｅＳＣＯパケット４２’がペイロードビットエラーを含んでいると再度仮定すると、エラー管理モジュール３２は、リンク管理モジュール３０と対話して、訂正不可能なエラーをシグナリングするか、または、訂正不可能なエラーにフラグを立てる。上述したように、リンク管理モジュール３０は、パケット４２の再送信をリクエストする再送信モジュール４０を実行する。この第２の再送信リクエストに応答して、移動体デバイス１２のＷＰＡＮモジュール１８は、ｅＳＣＯパケット４２を再送信し、ここで、この再送信されたｅＳＣＯパケット４２のコピーまたは複製は、ｅＳＣＯパケット４２’’として表される。リンク管理モジュール３６は、ｅＳＣＯパケット４２’’を受信して、このｅＳＣＯパケット４２’’をバッファ３６Ｂに記憶する。その後、エラー管理モジュール３２は、上述のプロセスを実行して、パケット４２’’が何らかの訂正不可能なエラーを含んでいるか否かを決定する。訂正不可能なエラーがパケット４２’’中に存在しないことが分かった場合に、エラー管理モジュール３２が、デコーディングユニット３４のバッファ４４にパケット４２’’を書き込むと、デコーディングユニット３４は、パケット４２’’をデコードして、メディアコンテンツ２６’の一部としてこのパケットを記憶する。
【００４７】
例示の目的のために、ｅＳＣＯパケット４２’’が、少なくとも１つの訂正不可能なペイロードビットエラーを有することが分かったとさらに再び仮定すると、エラー管理モジュール３２は、その後、パケット４２、４２’、および、４２’’の各々が有効であるか否かを決定する。パケット４２、４２’、および、４２’’が訂正不可能なペイロードビットエラーのみを含んでいる場合に、これらは有効である。ＦＥＣまたは他のエラー訂正技術を使用して訂正できない、ヘッダ中のビットエラーのような、他の訂正不可能なエラーに対して、エラー管理モジュール３２は、（ヘッダビットエラーの訂正不可能な性質により述べられるような）高いレベルのエラーに起因して、多数決技術の適用が適切でないことを決定してもよい。すなわち、高いレベルのエラーは、パケットのヘッダ中の訂正不可能なエラーのことを指す。本開示で説明する多数決技術を適用するＭＶモジュール２８を実行するのではなく、エラー管理モジュール３２は、パケット損失をシグナリングし、損失したパケットを隠蔽するためにパケット損失隠蔽モジュール３５と対話してもよい。パケット損失隠蔽モジュール３５は、例えば、特殊な無音パケットを発生させて、損失したパケットを隠蔽してもよい。代替的に、パケット損失隠蔽モジュール３５は、先行するパケットのコピーを発生させて、損失したパケットを隠蔽してもよい。
【００４８】
しかしながら、パケット４２、４２’、および、４２’’の各々が有効である（例えば、訂正不可能なヘッダビットエラーを含んでいない）場合に、エラー管理モジュール３２は、ＭＶモジュール２８と対話して、パケット４２、４２’、および、４２’’の３つすべてのペイロードの訂正不可能な状態をシグナリングしてもよい。その後、ＭＶモジュール２８は、パケット４２、４２’、および、４２’’の各連続するビットにおいてビットごとの多数決を実行して、少なくとも部分的にエラーのないパケット４３を発生させる。以下の表１は、パケット４３を発生させるためにＭＶモジュール２８により用いられる、ビットごとの多数決技術の適用の例を提供する。
【表１】
2013518514.tif 000003
【００４９】
先の表１では、パケット４２、４２’、４２’’、および、４３の各々は、ビット０〜Ｎを含んでいる。パケット４２は、０１１０１００…１の値を持つ０〜Ｎのビットを含む。パケット４２’は、０１００１１０…０の値を持つビット０〜Ｎを含む。パケット４２’’は、０１００１００…０の値を持つビット０〜Ｎを含む。ＭＶモジュール２８は、パケット４２、４２’、および、４２’’の各々の、ビット−０のような、各ビットの値を取って、０であるビット値の数と、１であるビット値の数とをカウントすることにより、ビットごとの多数決を実行する。例えば、ビット−２の例では、１に等しいビット−２値が１つしかない一方で、０に等しいビット−２値は２つあり、すなわち多数派であることから、多数派のビット値は０である。その結果として、ＭＶモジュール２８は、パケット４３に対して、０の多数派のビット−２値を“正しい”ビット−２値として選択する。この値が正しい多数派を表しているという意味で、この値は“正しい”だけである。統計的に一般的ではないが、パケット４２’および４２’’の双方が、まさに同じロケーションにおいてビットエラーを含んでいるかもしれないので、この値が、正しくないビット−２値であることがありえる。この理由により、パケット４３’は、少なくとも部分的にエラーのないパケットであると呼ばれる。
【００５０】
とりわけ、パケット４２、４２’、および、４２’’の各々は、それら自体のヘッダおよびペイロードを有していることから、パケット４２、４２’、および、４２’’は、別々の、個々の、異なるパケットであり、同じパケットとして解釈しなくてもよい。すなわち、パケット４２、４２’、および、４２’’の各々は、何らかの従来のパケットのエラー訂正構造に対して一般的であるように、単一のヘッダと、３つの別々のまたは複製のペイロードを含んでいない。その代わりに、パケット４２、４２’、および、４２’’の各々は、ヘッダのみがエラー訂正を含んでいる一方で、これらのパケット４２、４２’、および、４２’’の各々のペイロードはエラー検出のみを有しているという点で、限定されたエラー訂正のみを有している。ペイロードが３回繰り返されているパケット構造では、これらの従来のパケットの三重化されたペイロードは、パケット当たりのベースで、ある形態の多数決エラー訂正を組み込んでいる。各パケット中にペイロードの３つのコピーを提供する代わりに、ブルートゥースにより提供される再送信メカニズムを使用すると、スループットが増加する。その理由は、ｅＳＣＯパケット４２、４２’、および、４２’’のペイロードが、ペイロードを２回複製する必要がないという理由で、著しくより多いデータを記憶できるからである。
【００５１】
本開示の技術とこれらの従来のパケットの技術との間に、さらなる差異が存在する。例えば、パケット４２、４２’、および、４２’’の各々は、ベースバンドレイヤリンクであるｅＳＣＯリンク２４を通して送られる。“ベースバンドレイヤ”という用語は、ブルートゥーススタックにおける物理レイヤのことを指し、これは、エラー訂正、データホワイトニング、ホップ選択、および、ブルートゥースセキュリティのような他のサービスの他に、物理チャネルおよび物理リンクの管理を担っている。ベースバンドレイヤは、ブルートゥーススタックにおいて、ブルートゥース無線の上に直接存在し、（図２において示されていない）リンクマネージャーモジュールとともに機能して、リンク接続および電力制御のようなリンクレベルルーチンを実行するリンク制御装置として事実上動作する。例示の目的を簡単にするために、ベースバンドレイヤは、図２において示されていない。その代わりに、リンク管理モジュール３０が、ベースバンド（または、物理）レイヤとリンクマネージャーモジュールの機能性の双方を組み込むように仮定されている。従来の三重化されたペイロードパケットは、ベースバンドレイヤを通して送られないが、その代わりに、トランスポートレイヤ、ネットワークレイヤ、または、ベースバンドレイヤを除く他の何らかのレイヤのような、他のレイヤを通して送られる。
【００５２】
さらに、リンク管理モジュール３０は、再送信が起こることがあるパケットウィンドウを示すタイマー４６を維持する。一般的に、このウィンドウは、２回の再送信を許可する。２回の再送信の後で、訂正不可能なエラーなくパケットが受信されなかった場合には、リンク管理モジュール３０は、バッファ３６を“フラッシュ”して（これは、０のシーケンスのような、既知の値または設定された値によるバッファ３６の上書きを典型的に伴う）、次のｅＳＣＯパケットを受信してもよい。ｅＳＣＯリンク２４は同期しているので、リンク管理モジュール３０のタイマー４６は、送信移動体デバイス１２のタイマーとおおよそ同時にタイムアウトする。そのため、リンク管理モジュール３０は、第３のｅＳＣＯパケット４２’’の受信に肯定応答する肯定応答を、送信する必要がない。この肯定応答がないことが、従来の三重化されたペイロードパケット配信スキームで肯定応答が必要とされることとは、実質的に異なる。
【００５３】
何らかのイベントでは、本開示で説明する多数決エラー訂正技術を使用して、パケット４３を発生させるときに、ＭＶモジュール２８は、デコーディングユニット３４のバッファ４４にパケット４３を書き込み、デコーディングユニット３４は、パケット４３をデコードして、メディアコンテンツ２６’の一部としてこのパケットを記憶する。上述のプレーバックコンポーネントは、ストリーミングメディアコンテンツ２６’を読み取って、ユーザによる消費のためにこのコンテンツ２６’を再生する。先に述べたように、この技術は、ストリーミングオーディオプレーバックの品質を実質的に改善できる。
【００５４】
図３は、本開示の多数決エラー訂正技術を実行する際のＷＰＡＮデバイス１４の例示的な動作を図示したフローチャートである。はじめに、リンク管理モジュール３０は、ｅＳＣＯパケット４２のようなｅＳＣＯパケットを受信する前に、ヌルすなわち０の値によりバッファ３６Ａをプレロードする（５０）。このヌル書き込み動作は、バッファ３６Ａの“フラッシング”と呼ばれることがあり、バッファ３６Ａは、図３では“バッファ０”と呼ばれる。その後、リンク管理モジュール３０が、ｅＳＣＯパケット４２を受信する（５２）。その後、エラー管理モジュール３２が、アクセスコード（ＡＣ）とブルートゥースヘッダ（Ｈ）とを検証して、ＡＣまたはヘッダが訂正不可能なエラー（例えば、ＦＥＣのようなエラー訂正技術を使用して訂正できないエラー）を有しているか否かを決定する（５４）。先に述べたように、ｅＳＣＯパケットは、ＡＣ、ヘッダ、および、ペイロードの３つの部分を含み、エラー管理モジュール３２は、訂正不可能なエラーが存在しないことを確かめるために、ＡＣおよびＨをはじめに検証する。先に使用した“ヘッダ”という用語は、データユニット中のペイロードに先行する何らかの情報を表す。“ブルートゥースヘッダ”またはＨという用語は、ＡＣの後にかつペイロードの前に来る、一般的なヘッダの特定の部分を表す。
【００５５】
何らかのイベントにおいて、エラー管理モジュールは、ＡＣとブルートゥースヘッダ（Ｈ）の双方を検証することにより、ヘッダを検証する。ＡＣは、典型的に、同期化と、ＤＣオフセット補償と、識別のために使用される。ｅＳＣＯリンク２４の同期的性質を考慮すると、同期していないＡＣは、訂正不可能なエラーを含んでいるかもしれない。代替的に、ＡＣおよびブルートゥースヘッダは、ＦＥＣにより保護されていることがあり、エラー管理モジュール３４は、ＦＥＣを使用して、ＡＣおよびブルートゥースヘッダの双方における何らかのビットエラーを訂正しようと試みてもよい。他の例では、ブルートゥースヘッダだけがＦＥＣを含み、それゆえ、ＡＣにおける何らかのエラーは訂正不可能なエラーを含んでいるかもしれない。ＡＣおよび／またはＨにおいて訂正不可能なエラーが検出されたイベント（“いいえ”５６）では、エラー管理モジュール３２は、リンク管理モジュール３０と対話して、訂正不可能なエラーをシグナリングする。この訂正不可能なエラーに応答して、リンク管理モジュール３０は、再送信モジュール４０を実行して、ｅＳＣＯパケット４２の再送信をリクエストする（５８）。
【００５６】
ＡＣおよびＨの双方において、訂正不可能なエラーが検出されなかった場合に、エラー管理モジュール３２が、リンク管理モジュール３０と対話して、パケットヘッダがエラーを含んでいないことをリンク管理モジュール３０に知らせると、リンク管理モジュール３０は、パケット４２のようなパケットを、バッファ０に、例えば、バッファ３６Ａに書き込む（５７）。その間に、エラー管理モジュール３２は、パケット４２のペイロードを検証するように進む（６０）。ｅＳＣＯパケット４２のペイロードは、ＣＲＣチェックサムを含み、エラー管理モジュール３２は、このＣＲＣを検証して、ペイロードが何らかの訂正不可能なエラーを有しているか否かを決定してもよい。受信したｅＳＣＯパケット４２が訂正不可能なエラーを含んでいないことをエラー管理モジュール５８が決定した場合（“いいえ”６１）に、エラー管理モジュール３２が、出力バッファと呼ばれることがあるバッファ４４にｅＳＣＯパケット４２を書き込むと、デコーディングユニット３４は、上述したように、ｅＳＣＯパケット４２をデコードして、メディアコンテンツ２６’の一部として、結果のデータを書き込む（６２）。
【００５７】
しかしながら、エラー管理モジュール３２が、パケット４２のペイロード中に１つ以上の訂正不可能なエラーを発見または決定した場合（“はい”６１）には、エラー管理モジュール３２は、リンク管理モジュール３０と対話して、訂正不可能なエラーをシグナリングする。この訂正不可能なエラーに応答して、リンク管理モジュール３２は、再送信モジュール４０を実行して、ｅＳＣＯパケット４２の再送信をリクエストする（５８）。リンク管理モジュール３０は、再送信モジュール４０を実行する前に、タイマー４６が“タイムアウト”しているか否か、または、そうでなければ、満了しているか否かを最初に決定してもよい。タイムアウトしていない場合に、リンク管理モジュール３０は、再送信モジュール４０を実行して、ｅＳＣＯパケット４２の再送信をリクエストする。タイマー４６がタイムアウトしていないと仮定すると、リンク管理モジュール３０は、再送信リクエストに応答して、ｅＳＣＯパケット４２’を受信する（６４）。再度、エラー管理モジュール３２が、ｅＳＣＯパケット４２’のＡＣおよびＨを検証して、ｅＳＣＯパケット４２’が、パケット４２’のヘッダ中に何らかの訂正不可能なエラーを含んでいるか否かを決定する（６６）。
【００５８】
以前のように、ｅＳＣＯパケット４２’が訂正不可能なエラーを含んでいない場合（“いいえ”６８）には、エラー管理モジュール３２は、ヘッダ中にエラーがないことをリンク管理モジュール３０に示し、リンク管理モジュール３０は、図３では“バッファ１”と呼ばれるバッファ３６Ｂにパケット４２’を書き込むように進む（６９）。以前のように、エラー管理モジュール３２は、ペイロードのＣＲＣを検証することにより、パケット４２’のペイロードが何らかの訂正不可能なエラーを含んでいるかどうかを決定するように進む（７０）。エラー管理モジュール３２が、ＣＲＣを使用して、パケット４２’のペイロードが何らかのエラーを含んでいないという検証に成功した場合（“いいえ”７１）に、エラー管理モジュール３２は、バッファ４４にパケット４２’を書き込む。その後、デコーディングユニット３４は、上述した方法で、バッファ４４に記憶されているｅＳＣＯパケット４２’をデコードして、メディアコンテンツ２６’の一部として、結果のデータを書き込む。
【００５９】
しかしながら、ｅＳＣＯパケット４２’のペイロードが、訂正不可能なエラーを含んでいる場合（“はい”７１）には、エラー管理モジュール３２は、リンク管理モジュール３０と対話して、これらのエラーをシグナリングする。リンク管理モジュール３０は、タイマー４６が、タイムアウトしていないことを再度検証する。タイマー４６により規定された時間ウィンドウが、一般的に、パケット当たり２回の再送信リクエストを許可することを考慮して、タイマー４６が、まだタイムアウトしておらず、それゆえ、リンク管理モジュール３０が、再送信モジュール４０を実行して、ｅＳＣＯパケット４２の再送信を再度リクエストすることを仮定する（７２）。この再送信リクエストに応答して、リンク管理モジュール３０は、ｅＳＣＯパケット４２’’を受信して、エラー管理モジュール３２にパケット４２’’を転送する（７３）。
【００６０】
エラー管理モジュール３２は、ｅＳＣＯパケット４２’’のヘッダを最初に検証する。さらに詳細には、エラー管理モジュール３２は、ＡＣおよびブルートゥースヘッダ（Ｈ）を検証して、ＡＣおよびＨが何らかの訂正不可能なエラーを含んでいるか否かを決定する（７４）。ＡＣおよびＨが訂正不可能なエラーを含んでいる場合（“はい”７５）に、エラー管理モジュール３２は、上述したように、ｅＳＣＯパケット４２が損失したことをリンク管理モジュール３０にシグナリングし、パケット損失隠蔽を実行するようにパケット損失隠蔽モジュール３５に命令する（７６、７８）。パケット損失隠蔽モジュール３５は、例えば、特殊な無音データのような、隠蔽されたパケットデータを発生させ、このデータをメディアコンテンツ２６’として書き込む。
【００６１】
しかしながら、ＡＣおよびＨ（または、より一般的には、ヘッダ）が、何らかの訂正不可能なエラーを含んでいない場合（“いいえ”７５）には、エラー管理モジュール３２は、ヘッダエラーがないことをリンク管理モジュール３０にシグナリングする。この信号に応答して、リンク管理モジュール３０は、図３では“バッファ２”として表されているバッファ３６Ｃに、パケット４２’’を書き込む（８０）。その後、エラー管理モジュール３２は、ペイロードＣＲＣチェックサムを検証して、ＣＲＣが訂正不可能なエラーを示しているか否かを決定する（８２、８４）。ＣＲＣチェックサムが、訂正不可能なエラーを示している場合（“はい”８４）に、エラー管理モジュール３２は、リンク管理モジュール３０と対話して、訂正不可能なエラーの存在をシグナリングする。
【００６２】
その後、リンク管理モジュール３０は、タイマー４６がタイムアウトしているか否かを、または、別の再送信を可能にするのに十分な時間がタイマー４６に残っているか否かを決定する。通常、タイマー４６が２回の再送信のみを許可することを前提として、リンク管理モジュール３０は、タイマー４６が別の再送信を許可しないことを決定し、その代わりに、別の再送信が可能でないことを示すためにエラー管理モジュール３２と対話する。リンク管理モジュール３０からのこの表示に応答して、エラー管理モジュール３２は、その後、上述したように、パケット４２、４２’、および、４２’’が有効であるか否かを、または、多数決での使用に対して利用可能であるか否かを決定する（８６）。パケット４２、４２’、および、４２’’のうちの１つに関して、訂正不可能なビットヘッダエラーが起こった場合（“いいえ”８６）に、エラー管理モジュール３２は、上述したように、パケット４２、４２’、および、４２’’が有効でないことを、または、そうでなければ、多数決での使用に対して利用可能でないことを決定し、パケット損失隠蔽を実行するためにパケット損失隠蔽ユニット３５を実行する（７８）。
【００６３】
パケット４２、４２’、および、４２’’のすべてが有効であると決定された場合（“はい”８６）に、エラー管理モジュール３２は、ＭＶモジュール２８と対話して、本開示で説明する多数決エラー訂正技術を実行する。その後、ＭＶモジュール２８は、表１に関する例により上述した多数決エラー訂正技術を実行して、パケット４３を発生させる（８８）。ＭＶモジュール２８が、このパケットをバッファ４４（これは、バッファ３６Ａと同じものであってもよい）に書き込むと、デコーディングユニット３４は、パケット４３をデコードして、メディアコンテンツ２６’の一部として、結果のデータを記憶する（６０）。ＣＲＣチェックサムの検証が成功し、訂正不可能なエラーが存在しない場合（“いいえ”８４）には、エラー管理モジュール３２は、バッファ４４にパケット４２’’を書き込み、ここで、デコーディングユニット３４は、パケット４２’’をデコードして、メディアコンテンツ２６’の一部として、結果のデータを記憶する（６２）。
【００６４】
図４は、本開示で説明する多数決エラー訂正技術にしたがった、ＷＰＡＮデバイス１４により受信および処理される例示的なｅＳＣＯパケット９２を図示したダイヤグラムである。パケット９２は、ヘッダフィールド９４とペイロードフィールド９６とを含む。ヘッダフィールド９４は、アクセスコードフィールド９８（“ＡＣ９８”）とブルートゥースヘッダフィールド１００（“Ｈ１００”）とを含む。ＡＣフィールド９８は、アクセスコードプリアンブルと、同期化ワードと、オプション的にトレーラとを規定する情報またはデータを記憶する。オプション的なトレーラがなければ、ＡＣフィールド９８は、最初の６８ビットを含む。オプション的なトレーラがあれば、ＡＣフィールド９８は、最初の７２ビット（例えば、０〜７１ビット）を含み、これは、図４において示されているコンフィギュレーションである。Ｈフィールド１００は、論理トランスポートアドレスと、パケットタイプと、フロー制御ビットと、肯定応答表示と、シーケンスと、８ビットのヘッダエラーチェック１０２（“ＨＥＣ１０２”）とを含む、多数のブルートゥースヘッダパラメータを規定するデータを記憶する。図２において示されているＷＰＡＮデバイス１４のエラー管理モジュール３２は、Ｈフィールド１００を構文解析して、ＨＥＣ１０２を決定し、エラー管理モジュール３２はこれを利用してＦＥＣを実行する。
【００６５】
ペイロードフィールド９６は、可変量のデータ（例えば、０〜２７４５ビットのどこでも）を記憶し、その大多数は、メディアコンテンツ２６のような、ＰＡＮを利用する適用に関連する。ペイロードフィールド９６は、１６ビットの巡回冗長検査１０４（“ＣＲＣ１０４”）も記憶している。ＣＲＣ１０４は、エラー訂正を促進しないか、または、そうでなければイネーブルしないが、ＷＰＡＮデバイス１４のエラー管理モジュール３２は、ペイロードフィールド９６を構文解析して、１０４を決定し、その後、ＣＲＣ１０４に基づいて、ペイロード９６が訂正不可能なエラーを含んでいるか否かを決定する。このように、それによりエラー訂正が起こることがあるＨＥＣ１０２をＨフィールド１００のみが提供する一方で、それを通してエラー検出のみが起こることがあるＣＲＣ１０４をペイロード９６が提供するという点で、ｅＳＣＯパケット９２は、限定された形態のエラー訂正のみを提供する。その結果として、ｅＳＣＯパケット９２は、限定された形態のエラー訂正のみを有するパケットを含む。
【００６６】
図５Ａおよび図５Ｂは、本開示の技術を用いたときに、従来の技術と比較して理論的に減少されたビットエラーレートをそれぞれ示す例示的なグラフ１０６Ａおよび１０６Ｂを図示したダイヤグラムである。特に、図５Ａのグラフ１０６Ａは、ＷＰＡＮデバイス１４のようなデバイスが、本開示で説明する多数決（ＭＶ）エラー訂正技術に関連してｅＳＣＯを実現するときの、パケット損失の確率における理論的な減少を示す。特に、ＷＰＡＮデバイス１４は、ｅＳＣＯまたはＳＣＯのいずれかを実現するデバイスに対して、パケット損失の確率における理論的な減少を経験する。
【００６７】
図５Ｂに関して、グラフ１０６Ｂは、ＷＰＡＮデバイス１４のようなデバイスが、本開示で説明する多数決（ＭＶ）エラー訂正技術に関連してｅＳＣＯを実現するときの、破損パケットの確率における理論的な減少を示す。特に、曲線における右への明らかなシフトによって理解できるように、ＷＰＡＮデバイス１４は、ｅＳＣＯまたはＳＣＯのいずれかを実現するデバイスと比較したときに、破損パケットの確率における理論的な減少を経験する。グラフ１０６Ａおよび１０６Ｂの双方は、ワイヤードまたはワイヤレスのいずれのノイズの多い媒体でのデータ送信に対する、理論的ではなく、実質的な改善を示しており、これは、オーディオまたは他のメディアプレーバックの明瞭度を実質的に改善する。
【００６８】
ここで説明した技術は、ハードウェアで、ソフトウェアで、ファームウェアで、または、これらの何らかの組み合わせで実現されてもよい。モジュール、ユニット、または、コンポーネントのような何らかの説明した特徴は、統合された論理デバイス中で、または、個別のものとして別々だが相互運用可能な論理デバイス中で、共に実現されてもよい。いくつかのケースでは、さまざまな特徴は、集積回路チップまたはチップセットのような、集積回路デバイスとして実現されてもよい。ソフトウェアで実現された場合、技術は、実行されたときに、上述した方法のうちの１つ以上をプロセッサに実行させる命令を含むコンピュータ読取可能媒体によって、少なくとも部分的に実現されてもよい。
【００６９】
コンピュータ読取可能媒体は、パッケージングマテリアルを含むことがあるコンピュータプログラムプロダクトの一部を形成してもよい。コンピュータ読取可能媒体は、ランダムアクセスメモリ（ＲＡＭ）と、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）と、リードオンリーメモリ（ＲＯＭ）と、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）と、電気的に消去可能なプログラム可能リードオンリーメモリ（ＥＥＰＲＯＭ）と、フラッシュメモリと、磁気または光学のデータ記憶媒体と、これらに類するものとのような、コンピュータデータ記憶媒体を含んでもよい。この技術は、さらに、または、代替的に、コンピュータによってアクセスでき、読み取ることができ、および／または、実行することができる命令またはデータ構造の形態でコードを搬送または通信するコンピュータ読取可能通信媒体によって、少なくとも部分的に実現されてもよい。
【００７０】
１つ以上のＤＳＰ、汎用マイクロプロセッサ、ＡＳＩＣ、フィールドプログラム可能論理アレイ（ＦＰＧＡ）、あるいは、他の均等な統合された論理回路または個別の論理回路のような、１つ以上のプロセッサによって、コードまたは命令が実行されてもよい。したがって、ここで使用するような“プロセッサ”という用語は、先述の構造のうちのいずれかのことを、または、ここで説明する技術の実現に適した他の何らかの構造のことを指すことがある。加えて、いくつかの態様では、ここで説明した機能性は、専用ソフトウェアモジュール内またはハードウェアモジュール内に提供されてもよい。本開示は、本開示で説明した技術のうちの１つ以上を実現する回路を含む、さまざまな集積回路デバイスのうちのいずれのものも考慮する。このような回路は、単一の集積回路チップで、または、いわゆるチップセット中の複数の相互運用可能な集積回路チップで、提供されてもよい。このような集積回路デバイスは、さまざまな適用において使用されてもよく、これらのうちのいくつかは、移動電話機ハンドセットのようなワイヤレス通信デバイスにおける使用を含んでもよい。
【００７１】
本開示のさまざまな例を説明してきた。これらの例および他の例は、以下の特許請求の範囲の範囲内にある。
【図１】
2013518514.tif 000004
【図２】
2013518514.tif 000005
【図３】
2013518514.tif 000006
【図４】
2013518514.tif 000007
【図５Ａ】
2013518514.tif 000008
【図５Ｂ】
2013518514.tif 000009
【国際調査報告】
2013518514.tif 000010
2013518514.tif 000011
2013518514.tif 000012