(57)【要約】復号エラーの早期検出システム。復号失敗を検出する方法が提供される。この方法は、最初の量のコード・パケットを受信することと、最初の量のコード・パケットに関連付けられた復号失敗を示すトリガ・イベントを検出することと、１または複数の追加のコード・パケットを受信することとを含む。
2009510949.tif 000002
【特許請求の範囲】
【請求項１】
復号失敗を検出する方法であって、
最初の量のコード・パケットを受信することと、
前記最初の量のコード・パケットに関連付けられた復号失敗を示すトリガ・イベントを検出することと、
前記トリガ・イベントに基づいて、１または複数の追加のコード・パケットを受信することと
を備える方法。
【請求項２】
送信されたデータを取得するために、前記最初の量のコード・パケットと１または複数の追加のコード・パケットとを復号することを更に備える請求項１に記載の方法。
【請求項３】
前記１または複数の追加のコード・パケットの量を決定するために、εパラメータを増加させることを更に備える請求項１に記載の方法。
【請求項４】
後続する受信セッションのために、前記εパラメータを初期値にリセットすることを更に備える請求項３に記載の方法。
【請求項５】
メモリ使用量しきい値に基づいて前記トリガ・イベントを生成することを更に備える請求項１に記載の方法。
【請求項６】
前記受信することは、コンタクト・ウィンドウの期間内で、前記１または複数の追加のコード・パケットを受信することを備える請求項５に記載の方法。
【請求項７】
受信割合インジケータに基づいて前記トリガ・イベントを生成することを更に備える請求項１に記載の方法。
【請求項８】
前記受信することは、コンタクト・ウィンドウの期間内で、前記１または複数の追加のコード・パケットを受信することを備える請求項７に記載の方法。
【請求項９】
復号失敗を検出する装置であって、
最初の量のコード・パケットを受信し、トリガ・イベントが検出された場合、１または複数の追加のコード・パケットを受信するように構成された受信ロジックと、
前記トリガ・イベントを検出するように構成された処理ロジックとを備え、
前記トリガ・イベントは、前記最初の量のコード・パケットに関連付けられた復号失敗を示す装置。
【請求項１０】
送信されたデータを取得するために、前記最初の量のコード・パケットと１または複数の追加のコード・パケットとを復号するように構成された復号ロジックを更に備える請求項９に記載の装置。
【請求項１１】
前記トリガ・イベントを生成するために、前記最初の量のコード・パケットを復号することを更に備える請求項９に記載の装置。
【請求項１２】
前記１または複数の追加のコード・パケットの量を決定するために、εパラメータを増加させるように構成されたロジックを更に備える請求項９に記載の装置。
【請求項１３】
後続する受信セッションのために、前記εパラメータを初期値にリセットするように構成されたロジックを更に備える請求項１２に記載の装置。
【請求項１４】
メモリ使用量しきい値に基づいて前記トリガ・イベントを生成するように構成されたロジックを更に備える請求項９に記載の装置。
【請求項１５】
前記受信ロジックは、コンタクト・ウィンドウの期間内で、前記１または複数の追加のコード・パケットを受信するように構成されたロジックを備える請求項１４に記載の装置。
【請求項１６】
受信割合インジケータに基づいて前記トリガ・イベントを生成するように構成されたロジックを更に備える請求項９に記載の装置。
【請求項１７】
前記受信ロジックは、コンタクト・ウィンドウの期間内で、前記１または複数の追加のコード・パケットを受信するように構成されたロジックを備える請求項１６に記載の装置。
【請求項１８】
復号失敗を検出する装置であって、
最初の量のコード・パケットを受信する手段と、
前記最初の量のコード・パケットに関連付けられた復号失敗を示すトリガ・イベントを検出する手段と、
前記トリガ・イベントに基づいて、１または複数の追加のコード・パケットを受信する手段と
を備える装置。
【請求項１９】
送信されたデータを取得するために、前記最初の量のコード・パケットと１または複数の追加のコード・パケットとを復号する手段を更に備える請求項１８に記載の装置。
【請求項２０】
前記１または複数の追加のコード・パケットの量を決定するために、εパラメータを増加させる手段を更に備える請求項１８に記載の装置。
【請求項２１】
後続する受信セッションのために、前記εパラメータを初期値にリセットする手段を更に備える請求項２０に記載の装置。
【請求項２２】
メモリ使用量しきい値に基づいて前記トリガ・イベントを生成する手段を更に備える請求項１８に記載の装置。
【請求項２３】
前記受信する手段は、コンタクト・ウィンドウの期間内で、前記１または複数の追加のコード・パケットを受信する手段を備える請求項２２に記載の装置。
【請求項２４】
受信割合インジケータに基づいて前記トリガ・イベントを生成する手段を更に備える請求項１８に記載の装置。
【請求項２５】
前記受信する手段は、コンタクト・ウィンドウの期間にわたって、前記１または複数の追加のコード・パケットを受信する手段を備える請求項２４に記載の装置。
【請求項２６】
少なくとも１つのプロセッサによって実行された場合、復号失敗を検出するように動作する命令を備えるコンピュータ読取可能媒体であって、
最初の量のコード・パケットを受信する命令と、
前記最初の量のコード・パケットに関連付けられた復号失敗を示すトリガ・イベントを検出する命令と、
前記トリガ・イベントに基づいて、１または複数の追加のコード・パケットを受信する命令と
を備えるコンピュータ読取可能媒体。
【請求項２７】
送信されたデータを取得するために、前記最初の量のコード・パケットと１または複数の追加のコード・パケットとを復号する命令を更に備える請求項２６に記載のコンピュータ読取可能媒体。
【請求項２８】
前記１または複数の追加のコード・パケットの量を決定するために、εパラメータを増加させる命令を更に備える請求項２６に記載のコンピュータ読取可能媒体。
【請求項２９】
後続する受信セッションのために、前記εパラメータを初期値にリセットする命令を更に備える請求項２８に記載のコンピュータ読取可能媒体。
【請求項３０】
メモリ使用量しきい値に基づいて前記トリガ・イベントを生成する命令を更に備える請求項２６に記載のコンピュータ読取可能媒体。
【請求項３１】
前記受信する命令は、コンタクト・ウィンドウの期間内で、前記１または複数の追加のコード・パケットを受信する命令を備える請求項３０に記載のコンピュータ読取可能媒体。
【請求項３２】
受信割合インジケータに基づいて前記トリガ・イベントを生成する命令を更に備える請求項２６に記載のコンピュータ読取可能媒体。
【請求項３３】
前記受信する命令は、コンタクト・ウィンドウの期間内で、前記１または複数の追加のコード・パケットを受信する命令を備える請求項３２に記載のコンピュータ読取可能媒体。
【請求項３４】
復号失敗を検出する方法を実行するように構成された少なくとも１つのプロセッサであって、前記方法は、
最初の量のコード・パケットを受信することと、
前記最初の量のコード・パケットに関連付けられた復号失敗を示すトリガ・イベントを検出することと、
前記トリガ・イベントに基づいて、１または複数の追加のコード・パケットを受信することと
を備えるプロセッサ。
【請求項３５】
送信されたデータを取得するために、前記最初の量のコード・パケットと１または複数の追加のコード・パケットとを復号することを更に備える請求項３４に記載の方法。
【請求項３６】
前記１または複数の追加のコード・パケットの量を決定するために、εパラメータを増加させることを更に備える請求項３４に記載の方法。
【請求項３７】
後続する受信セッションのために、前記εパラメータを初期値にリセットすることを更に備える請求項３６に記載の方法。
【請求項３８】
メモリ使用量しきい値に基づいて前記トリガ・イベントを生成することを更に備える請求項３４に記載の方法。
【請求項３９】
前記受信することは、コンタクト・ウィンドウの期間内で、前記１または複数の追加のコード・パケットを受信することを備える請求項３８に記載の方法。
【請求項４０】
受信割合インジケータに基づいて前記トリガ・イベントを生成することを更に備える請求項３４に記載の方法。
【請求項４１】
前記受信することは、コンタクト・ウィンドウの期間内で、前記１または複数の追加のコード・パケットを受信することを備える請求項４０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本特許出願は、一般に、通信システムに関し、特に、通信システムで使用される復号エラーの早期検出システムに関する。
【背景技術】
【０００２】
一般的な無線配信システムでは、コンテンツが、マルチキャスト送信チャネルによってポータブル・デバイスへ配信される。コンテンツは、データ・パケットの形態をしており、パケットが送信チャネルを介して送信されると生じるパケット喪失を克服するために符号化される。送信機において、エンコーダは、オリジナル・データ・パケットを取り込み、１または複数のデバイスへ送信されるコード・パケットを生成する。雑音またはその他の劣悪な送信効果によって、コード・パケットのサブセットが、任意の特定のデバイスにおいて受信される。受信されたコード・パケットは、オリジナル・データ・パケットを復元するために復号される。
【０００３】
復号処理の成功は、受信されたコード・パケットの数に依存する。一般に、データ・パケットの数が「ｋ」である場合、受信されるコード・パケットの数は少なくともｋ（１＋ε）であるべきである。ここで、イプシロン（ε）は、通信オーバヘッド係数（例えば、ｋの１０％）である。より高いε値を選択することは、復号失敗の確率を低くするが、デバイスにおける復号時間および／またはバッテリ消費を増加させうる。
【０００４】
従来式のシステムは、一般に、最悪ケースの送信環境を仮定して選択された復号性能を達成するようにε値を固定する。しかしながら、一般に、送信チャネルが、最悪ケースの仮定に従って実行することはめったにない。その結果、多くの不必要なパケットが、受信デバイスによって受信される。例えば、最悪ケース送信環境の仮定によって、固定値εは、結果として、非常に大きくなる。これによって、データを復号するために、多くの追加データおよび不必要なデータが受信されることになる。これは、受信デバイスのリソース上に大きな負荷をもたらす。なぜなら、それは、不必要なパケットを受信し処理するために、追加の電力、ＣＰＵ時間、メモリ、およびファイル・システム・リソースを必要とするからである。
【０００５】
従って、選択された復号性能を得るために、送信チャネルの品質に基づいて、受信パケットの数を調節するように動作するシステムを有することが望ましいだろう。このシステムはまた、受信パケットの数が、復号処理の結果を待つ必要なく、選択されたデコーダ性能を生ずるよう調節されうるように、早期のエラー検出を実行するように動作すべきである。
【発明の開示】
【０００６】
（３５Ｕ．Ｓ．Ｃ．§１１９の下の優先権主張）
本特許出願は、２００５年９月２８日に出願され、本願の譲受人に譲渡され、「ＭＥＴＨＯＤ  ＦＯＲ  ＥＡＲＬＹ  ＤＥＴＥＣＴＩＯＮ  ＯＦ  ＤＥＣＯＤＥ  ＦＡＩＬＵＲＥＳ」と題され、本明細書において参照によって明確に組み込まれた米国仮出願６０／７２１，８２４号の優先度を主張する。
【発明の概要】
【０００７】
１または複数の実施形態では、選択された復号性能を得るために、送信チャネルの品質に基づいて、受信パケットの数を調節するように動作する復号システムが提供される。１つの実施形態では、このシステムは、１または複数のトリガ・イベントに基づいて、受信パケットの数を調節する。例えば、１つのトリガ・イベントが、復号処理の失敗に関連付けられる。復号処理の結果を待つ必要なく、選択された復号性能を達成するために、受信パケットの数を調節できるように、１または複数のその他のトリガ・イベントが、エラーの早期検出に関連付けられる。このシステムは、例えば電力消費、メモリ、ＣＰＵ時間、およびファイル・アクセス等のようなデバイス・リソースへのインパクトを最小にしながら、ポータブル・デバイスによってデータが受信／復元されることを可能にする無線通信システムにおける使用に特に適切である。
【０００８】
１つの実施形態では、復号失敗を検出する方法が提供される。この方法は、最初の量のコード・パケットを受信することと、最初の量のコード・パケットに関連付けられた復号失敗を示すトリガ・イベントを検出することと、１または複数の追加のコード・パケットを受信することとを備える。
【０００９】
１つの実施形態では、復号失敗を検出する装置が提供される。この装置は、最初の量のコード・パケットを受信し、トリガ・イベントが検出された場合、１または複数の追加のコード・パケットを受信するように構成された受信ロジックと、トリガ・イベントを検出するように構成された処理ロジックとを備える。トリガ・イベントは、最初の量のコード・パケットに関連付けられた復号失敗を示す。
【００１０】
１つの実施形態では、復号失敗を検出する装置が提供される。この装置は、最初の量のコード・パケットを受信する手段と、最初の量のコード・パケットに関連付けられた復号失敗を示すトリガ・イベントを検出する手段と、１または複数の追加のコード・パケットを受信する手段とを備える。
【００１１】
１つの実施形態では、少なくとも１つのプロセッサによって実行された場合、復号失敗を検出するように動作する命令を備えるコンピュータ読取可能媒体が提供される。このコンピュータ読取可能媒体は、最初の量のコード・パケットを受信する命令と、最初の量のコード・パケットに関連付けられた復号失敗を示すトリガ・イベントを検出する命令と、１または複数のコード・パケットを受信する命令とを備える。
【００１２】
１つの実施形態では、復号失敗を検出する方法を実行するように構成された少なくとも１つのプロセッサが提供される。この方法は、最初の量のコード・パケットを受信することと、最初の量のコード・パケットに関連付けられた復号失敗を示すトリガ・イベントを検出することと、１または複数の追加のコード・パケットを受信することとを備える。
【００１３】
これら実施形態のその他の局面が、後述する図面の簡単な説明、詳細説明、および特許請求の範囲の検討後に明らかになるであろう。
【詳細な説明】
【００１４】
本明細書に記載する実施形態の前述した局面は、添付図面と連携された場合に、以下の詳細説明を参照することによって、より容易に明らかになるであろう。
【００１５】
以下の説明は、復号システムの１または複数の実施形態を記載する。復号システムは、選択された復号性能を得るために、送信チャネルの品質に基づいて、受信パケットの数を調節するように動作する。このシステムは、制限されたリソースを有するポータブル・デバイスにおける使用に特に良く適しているが、任意のタイプのデバイスと共に使用されることもできる。このシステムはまた、限定される訳ではないが、通信ネットワーク、例えばインターネットのような公衆ネットワーク、例えば仮想プライベート・ネットワーク（ＶＰＮ）のようなプライベート・ネットワーク、ローカル・エリア・ネットワーク、広域ネットワーク、長距離ネットワーク、またはその他任意のタイプのデータまたは通信ネットワークを含む任意のタイプのネットワーク環境において動作するデバイスにおいて使用することができる。
【００１６】
図１は、復号システムの１つの実施形態を含む通信経路１００を示す。例えば、この通信経路１００は、１または複数のポータブル・デバイスへコンテンツを配信するために使用することができる。通信経路１００は、エンコーダ１０２、送信チャネル１０４、およびデコーダ１０６を備える。
【００１７】
１つの実施形態では、エンコーダ１０２は、送信チャネル１０４を介して送信されるデータ・パケットについてメッセージ符号化を行なう。送信チャネル１０４は、送信されたパケットの喪失を引き起こす損失の多いチャネル（すなわち、消失チャネル）でありうるので、メッセージ符号化が行われる。メッセージ符号化は、失われたデータ・パケットが復元されることを可能にする冗長性を与える。１つの実施形態では、低密度ジェネレータ・マトリクス（ＬＤＧＭ：Low Density Generator Matrix）技術と称される符号化技術を用いてメッセージ符号化が実行される。しかしながら、他の実施形態では、その他のタイプのメッセージ符号化が利用されうる。
【００１８】
１つの実施形態では、エンコーダ１０２が、データ・パケットＤ（１０８で示される）を受信し、それらを符号化して、コード・パケットＣを生成する。コード・パケットＣは、２つのタイプのパケットを備える。第１のタイプのコード・パケットは、選択されたデータ・パケットからのパケット・ヘッダおよびデータを備える。第２のタイプのコード・パケットは、例えば、排他的「ＯＲ」アルゴリズムのような任意の周知の組み合わせアルゴリズムを用いて組み合わされた１または複数のデータ・パケットからのパケット・ヘッダおよびデータを備える。第２のタイプのコード・パケットのパケット・ヘッダは、どのデータ・パケットが組み合わされたかと、使用された組み合わせアルゴリズムとを識別する。
【００１９】
コード・パケットＣは、送信チャネル１０４を介して１または複数の受信デバイスへ送信される。例えば、このコード・パケットの送信は、選択された持続時間を有するコンタクト・ウィンドウの間に生じる。コード・パケットＣ’のサブセットは、受信デバイスの１つに位置されたデコーダ１０６によって受信される。デコーダ１０６は、オリジナル・データ・パケットＤ（１１０で示される）を復元するために、受信したコード・パケットＣ’を処理するように動作する。
【００２０】
この復号処理は、受信したコード・パケットＣ’の数に依存する。一般に、送信されたデータ・パケットＤの数が「ｋ」に等しい場合、受信したコード・パケット（Ｃ’）の数は、少なくともｋ（１＋ε）となるべきである。より高いε値を選択することは、復号失敗の確率を低くするが、デコーダ１０６において、不必要なパケットが受信され、復号時間および／またはバ電力消費を増加させうる。
【００２１】
１つの実施形態では、復号システムは、１または複数のトリガ・イベントに基づいて、受信されるコード・パケットＣ’の数を調節するように動作する。動作中、デコーダ１０６は、εの初期最小値を用いて初期化される。その後、デコーダは、ブロードキャストが生じるコンタクト・ウィンドウの間、ｋ（１＋ε）個のコード・パケットを受信することを試みる。コード・パケットの受信中に、あるいはその受信の後、１または複数のトリガ・イベントが生じうる。例えば、送信チャネルの品質が非常に貧弱な場合、トリガ・イベントが生じうる。トリガ・イベントが生じると、システムは、データを復号するために受信するコード・パケットＣ’の数を増加させる。従って、本システムは、送信チャネルの品質に基づいて、受信するコード・パケットＣ’の数を調節するように動作する。様々なトリガ・イベントの詳細な説明が、本明細書の別のセクションで提供される。
【００２２】
１つの実施形態では、デコーダ１０６が、ｋ（１＋ε）個のコード・パケットを受信する。その後、コード・パケットは、オリジナル・データＤを復元するために復号される。復号処理が失敗した場合、復号エラー・トリガ・イベントが生じる。例えば、低品質な送信環境の結果として、非常に多くのコード・パケットが送信において失われるので、復号処理が失敗するかもしれない。この場合、εの値が増加され、デコーダ１０６は、コンタクト・ウィンドウの期間中、より多くのコード・パケットを受信するように動作する。その結果、復号システムは、選択された復号性能を得るために、デコーダ１０６が、十分なコード・パケットＣ’を受信するように調節する。これは、εの小さな初期値を用いることができるので、デコーダ１０６の非常に効率的な動作を与える。送信チャネルが適切な性能を与える場合、不必要な多くのコード・パケットＣ’が受信される必要のないように、εを増加させる必要はない。従って、デコード・システムは、例えば、電力消費、ＣＰＵ処理時間、メモリ、およびファイル・アクセス等のようなデバイス・リソースを節約するように動作する。
【００２３】
１つの実施形態では、復号システムは、以下の機能のうちの１または複数を実行するように動作する。  
１．εの初期値を設定する。  
２．εによって決定されたように、選択された量のコード・パケットＣ’を受信する。  
３．受信したコード・パケットＣ’を復号する。  
４．復号エラー・トリガ・イベントが生じたかを判定する。  
４．復号エラー・トリガ・イベントが生じた場合、εの値を増加させ、更なるコード・パケットＣ’を受信する。  
５．受信した全てのコード・パケットＣ’からのデータを復号する。
【００２４】
別の実施形態では、デコーダ１０６が、ブロードキャストが生じるコンタクト・ウィンドウの期間中、ｋ（１＋ε）個のコード・パケットを受信することを試みる。コード・パケットＣ’が受信されると、現在受信されたコード・パケットの量に関する情報が維持される。この情報はデコーダ１０６において格納され、コード・パケットがどの程度正しく受信されているかを示す１または複数のトリガ・イベントを判定するために使用される。例えば、１つの実施形態では、この情報は、合計パケット数に比べて、正しいパケットがどれだけ受信されたかを示す受信割合を決定するために使用される。１つの実施形態では、この情報は、維持するために選択された量のメモリを必要とするツリー構造に保持される。この受信割合が、選択されたしきい値を下回る場合、第１のタイプの早期エラー検出トリガ・イベントが判定される。ツリー構造に必要なメモリが、選択されたしきい値を越える場合、別のタイプの早期エラー検出トリガ・イベントが判定される。早期エラー検出トリガ・イベントが発生すると、コンタクト・ウィンドウ内の残り全てのコード・パケットがデコーダによって受信されるように、ε値が増加される。その後、デコーダは、オリジナル・データを復元するために、受信した全てのコード・パケットを処理する。
【００２５】
１つの実施形態では、復号システムは、下記機能のうちの１または複数を実行するように動作する。  
１．εの初期値を設定する。  
２．コード・パケットＣ’の受信を開始する。  
３．早期エラー検出トリガ・イベントが生じたかを判定する。  
４．早期エラー検出トリガ・イベントが発生した場合、εを増加して、コンタクト・ウィンドウ内の残り全てのコード・パケットＣ’を受信する。  
５．受信した全てのコード・パケットＣ’からのデータを復号する。
【００２６】
従って、復号システムは、送信チャネルの品質に基づいて、受信するコード・パケットの数を効率的に調節するように動作する。その結果、送信チャネルが、選択された性能を提供する場合、復号システムは、不必要なコード・パケットの数を最小化するように動作する。
【００２７】
図２は、「復号失敗確率」対εを例示するグラフ２００を示す。グラフ２００が例示するように、復号失敗確率は、ε値が約０．２の場合、おおよそ０．０１である。復号失敗確率は、ε値が約０．５の場合、おおよそ１０−６まで下がる。復号システムの１または複数の実施形態では、小さな初期値のεを用いて、大きな値のεを用いる従来式のシステムと同等またはそれよりも良好な復号性能を達成することができる。その結果、不必要なコード・パケットがより少なくしか受信されなくなり、もって、復号デバイスのリソースはより少なくしか必要とされなくなる。
【００２８】
図３は、復号システムの実施形態で使用されるデコーダ３００の１つの実施形態を示す。例えば、デコーダ３００は、図１で示されるデコーダ１０６として使用されるのに適切である。デコーダ３００は、内部データ・バス３０６に接続された処理ロジック３０２およびトランシーバ・ロジック３０４を含む。デコーダ３００は更に、データ・バス３０６に接続されたデータ記憶装置３０８、コード記憶装置３１０、およびＬＤＧＭロジック３１２を備える。
【００２９】
１または複数の実施形態では、処理ロジック３０２は、ＣＰＵ、プロセッサ、ゲート・アレイ、ハードウェア・ロジック、メモリ素子、仮想機械、ソフトウェア、及び／又はハードウェアとソフトウェアとの任意の組み合わせを備える。従って、処理ロジック２０２は、一般に、機械読取可能命令を実行し、かつ内部データ・バス３０６を経由してデコーダ３００の１または複数の機能要素を制御または通信するロジックを含む。
【００３０】
トランシーバ・ロジック３０４は、デコーダ３００が、通信チャネル３１４を用いて遠隔のデバイスまたはシステムとデータおよび／またはその他の情報を送受信することを可能にするように動作するハードウェア・ロジックおよび／またはソフトウェアを備える。例えば、１つの実施形態では、通信チャネル３１４は、デコーダ３００が、データ・ネットワークと通信することを可能にする任意の適切なタイプの通信チャネル３１４を備える。例えば、１つの実施形態では、トランシーバ・ロジック３０４は、遠隔サーバから通信チャネル３１４によってコード・パケットを受信するように動作する。その後、デコーダ３００は、遠隔サーバから送信されたオリジナル・データを復元するために、受信したコード・パケットを処理するように動作する。
【００３１】
データ記憶装置３０８は、データを格納するように動作する任意の適切なメモリ・デバイスを備える。例えば、データ記憶装置３０８は、ＲＡＭ、フラッシュ・メモリ、ＥＥＰＲＯＭ、ハード・ディスク、および／またはその他任意のタイプの記憶デバイスを備えることができる。１つの実施形態では、データ記憶装置３０８は、トランシーバ・ロジック３０４によって受信されたコード・パケットから復号されるデータを格納するように動作する。
【００３２】
コード記憶装置３１０は、コード・パケット情報を格納するように動作する任意の適切なメモリ・デバイスを備える。例えば、コード記憶装置３０８は、ＲＡＭ、フラッシュ・メモリ、ＥＥＰＲＯＭ、ハード・ディスク、および／またはその他任意のタイプの記憶デバイスを備えることができる。１つの実施形態では、コード記憶装置３１０は、トランシーバ・ロジック３０４によって受信されたコード・パケット内に含まれるコード情報を格納するように動作する。例えば、１つの実施形態では、コード情報は、上述したような第２のタイプのコード・パケットに関連付けられた情報を備える。
【００３３】
ＬＤＧＭロジック３１２は、ＣＰＵ、プロセッサ、ゲート・アレイ、ハードウェア・ロジック、メモリ素子、仮想機械、ソフトウェア、および／またはハードウェアとソフトウェアとの任意の組み合わせを備える。従って、ＬＤＧＭロジック３１２は、一般に、機械読取可能命令を実行し、かつ内部データ・バス３０６を経由してデコーダ３００の１または複数の他の機能要素の制御またはこれら機能要素と通信するロジックを含む。
【００３４】
１つの実施形態では、処理ロジック３０２は、受信するコード・パケットの割合を判定するように動作するレート・ロジック３１６を備える。例えば、この割合は、コード・パケット全体と比較して、受信された正しいコード・パケットの数を記述する。従って、１００のコード・パケットが送信され、９０のコード・パケットのみが正しく受信された場合、レート・ロジック３１６は、この割合が、９０／１００あるいは９０％であると判定する。この割合が、選択された割合しきい値未満であれば、レート・ロジック３１６は、第１のタイプの早期エラー検出トリガ・イベント３１８を生成する。１つの実施形態では、このレートしきい値が、遠隔サーバからレート・ロジック３１６へ送信される。また、別の実施形態では、このレートしきい値が、デバイス製造中に、レート・ロジック３１６内に予め記憶される。
【００３５】
１つの実施形態では、ＬＤＧＭロジック３１２は、受信されたコード・パケットと、復元されたコード・パケットと間の関係を記載するツリー構造またはデータベースを生成するために、受信したコード・パケットを処理するように構成されたツリー・ロジック３２０を備える。１つの実施形態では、生成されたツリー構造は、ＬＤＧＭロジック３１２におけるメモリ内に格納される。ツリー構造のより詳細な説明は、本明細書の別のセクションで提供される。１つの実施形態では、ツリー構造のために必要なメモリが、選択されたメモリしきい値を越える場合、ツリー・ロジック３２０は、第２のタイプの早期エラー検出トリガ・イベント３２２を生成するように動作する。１つの実施形態では、メモリしきい値は、遠隔サーバからツリー・ロジック３２０に送信され、別の実施形態では、レートしきい値は、デバイス製造中にツリー・ロジック３２０内に予め記憶される。
【００３６】
１つの実施形態では、処理ロジック３０２は、復号失敗を検出するために、受信したコード・パケットを復号するように動作する復号ロジック３２４を備える。例えば、デコーダ３００は、トランシーバ・ロジック３０４によってｋ（１＋ε）個のコード・パケットを受信して、それらパケットを復号して、オリジナル・データを決定する。任意の選択可能なタイプまたは量の復号エラーが検出された場合、復号ロジック３２４は、復号エラーが発生したことを示す復号エラー・トリガ・イベント３２６を出力するように動作する。
【００３７】
１または複数の実施形態の動作の間、εの初期値が、トランシーバ・ロジック３０４を経由して遠隔サーバからダウンロードされる。別の実施形態では、εの初期値は、製造中にデコーダに予め格納される。
【００３８】
１つの実施形態では、デコーダ３００は、以下の機能のうちの１または複数の実行することにより、復号エラー・トリガ・イベントの結果として、受信するコード・パケットの数を調節するように動作する。  
１．εの初期値が設定される。  
２．ｋ（１＋ε）個のコード・パケット全体が受信され、コード記憶装置３１０およびデータ記憶装置３０８に格納される。  
３．受信されたコード・パケットが、復号ロジック３２４によって復号される。  
４．予め選択された任意の復号基準に基づいて、復号失敗がある場合には、復号エラー・トリガ・イベント３２６が生成される。  
５．処理ロジック３０２が、復号エラー・トリガ・イベント３２６を検出し、εの値をインクリメントする。  
６．増加されたεの値が、トランシーバ・ロジック３０４によって使用され、更なるコード・パケットが収集される。  
７．その後、復号ロジック３２４が、受信した全てのコード・パケットからデータを復号する。  
８．次のデータ・セッションのため、εの値が初期値にリセットされる。
【００３９】
１つの実施形態では、デコーダ３００は、以下の機能のうちの１または複数の実行することにより、早期エラー検出トリガ・イベントの結果として、受信するコード・パケットの数を調節するように動作する。  
１．εの初期値が設定される。  
２．コード・パケットが受信される。  
３．ツリー・ロジック３２０が、受信されたコード・パケットのツリーを構築するように動作する。  
４．送信されたコード・パケットに対する受信されたコード・パケットの割合が、選択された割合しきい値を下回るのであれば、早期エラー検出トリガ・イベントが、レート・ロジック３１６によって生成される。  
５．ツリー構造に必要なメモリの量が、選択されたメモリしきい値を越える場合、早期エラー検出トリガ・イベントが、ツリー・ロジック３２０によって生成される。  
６．早期エラー検出イベントが生成されると、εの値が増加され、コンタクト・ウィンドウ内で送信される追加のコード・パケットのうちの幾つかまたは全てが受信される。  
７．受信された全てのコード・パケットが、復号ロジック３２４によって復号される。  
８．次のデータ・セッションのため、εの値が初期値にリセットされる。
【００４０】
１つの実施形態では、デコーダ３００は、コンピュータ読取可能媒体上に格納された１または複数のプログラム命令（「プログラム命令」）を備える。そのプログラム命令は、例えば処理ロジック３０２のような少なくとも１つのプロセッサによって実行されると、本明細書に記載した機能を提供する。例えば、このプログラム命令は、例えばフロッピー（登録商標）ディスク、ＣＤＲＯＭ、メモリ・カード、ＦＬＡＳＨメモリ・デバイス、ＲＡＭ、ＲＯＭ、あるいはデコーダ３００とインタフェースするその他任意のタイプのメモリ・デバイスまたはコンピュータ読取可能媒体のようなコンピュータ読取可能媒体からデコーダ３００にロードされうる。別の実施形態では、これら命令は、トランシーバ・ロジック３０４によってデコーダ３００に接続する、外部デバイスまたはネットワーク・リソースからデコーダ３００へダウンロードされうる。プログラム命令は、処理ロジック３０２によって実行された時、本明細書に記載するような復号システムの実施形態を提供する。
【００４１】
その結果、復号システムの実施形態は、受信したコード・パケットを処理して、損失のある送信チャネルを通して送信されたデータを復元するように動作する。このシステムは、受信されるコード・パケットの量を、１または複数のトリガ・イベントに基づいて調節するように動作する。従って、復号システムの実施形態は、デバイス・リソースが効率的に利用されるように、受信される不必要なパケットの量を最小化するように動作する。
【００４２】
図４は、復号システムの実施形態で使用されるツリー構造４００の１つの実施形態を示す。１つの実施形態では、ツリー構造４００は、ＬＤＧＭロジック３１２において生成され保持される。ツリー構造４００は、受信したコード・パケットから得られるデータ４０２および結合データ４０４を備える。例えば、結合データ４０４は、上述した第２のタイプのコード・パケットにおいて提供される。ツリー構造４００はまた、データ４０２と結合データ４０４との間の関係を記述するエッジ構造４０６を備える。
【００４３】
復号システムの動作中、コード・パケットは、トランシーバ・ロジック３０４によって受信され、データとそれに含まれる結合データがデータ記憶装置３０８とコード記憶装置３１０とにそれぞれ格納される。どれだけのパケットが正しく受信されたか、また、どのパケットが復元される必要があるのかを追跡することができるように、ＬＤＧＭロジック３１２は、データ記憶装置３０８およびコード記憶装置３１０内の情報を処理して、ツリー構造４００を構築する。従って、ツリー構造４００は、どれだけのパケットが失われ、どれだけのパケットが正しく受信されたかを判定することができるという点において、性能インジケータを提供する。
【００４４】
１つの実施形態において、ツリー構造４００が生成されると、ツリー構造４００の一部が追加され、ツリー構造の一部が除去される。例えば、データが一旦正しく復元されると、４０８および破線によって示されるように、エッジ構造が除去される。更なるパケットが受信され、幾つかのパケットが失われると、４１０および実線によって示されるように、更なるエッジ構造が追加される。ツリー構造４００の進行中の追加および除去によって、ツリー構造４００を格納するために、記憶装置の一定量が割り当てられる。ツリー構造４００に割り当てられた記憶装置の量は、送信中に失われたパケットの数を記述するインジケータである。
【００４５】
従って、ツリー構造４００は、復号システムの動作に関連する幾つかのインジケータを提供する。例えば、ツリー構造４００は、どのパケットが正しく復元され、どのパケットが正しく復元されていないかを示す。ツリー構造４００は、また、失われたパケットの数を示す。例えば、大きなツリー構造は、多くのパケットが正しく受信されなかったことを示す。
【００４６】
（トリガ・イベント）  
１または複数の実施形態では、復号システムが、受信されるコード・パケットの数を、１または複数のトリガ・イベントに基づいて調節するように動作する。本実施形態の範囲では更に多くのタイプが可能であるが、ここでは、２つのタイプのトリガ・イベントを記載する。１つのタイプのトリガ・イベントは、早期エラー検出トリガ・イベントである。受信したパケットの復号が失敗するであろうことを示すために、復号処理の前または途中で、早期エラー検出トリガ・イベントが生じる。訂正動作を講じるために復号処理を停止することが可能なように、早期エラー検出トリガ・イベントが、復号が完了する前に生じ、これによって、デバイス・リソースと処理時間とが節約される。
【００４７】
トリガ・イベントの別のタイプは、復号失敗トリガ・イベントである。復号失敗トリガ・イベントは、復号処理が完了し、復号失敗があることを示す場合に生じる。
【００４８】
下記は、様々なトリガ・イベントの詳細な説明である。本システムは、下記に述べるトリガ・イベントのみを用いることに限定されず、本実施形態の範囲内で、その他のトリガ・イベントも定義され利用されうることが注目されるべきである。
【００４９】
（早期エラー検出トリガ・イベント）  
下記は、２つのタイプの早期エラー検出トリガ・イベントの説明である。復号システムが、復号処理の結果を待つ必要なく訂正動作を講じることができるように、これらのイベントは、復号処理の完了前に検出される。
【００５０】
（メモリ使用量トリガ・イベント）  
１つの実施形態では、復号システムは、メモリ使用量トリガ・イベントを検出するように動作する。例えば、ツリー・ロジック３２０によって保持されたツリー構造が、選択されたメモリしきい値を越える場合、メモリ使用量トリガ・イベントが生成される。
【００５１】
（受信割合トリガ・イベント）  
１つの実施形態では、復号システムは、受信割合トリガ・イベントを検出するように動作する。例えば、レート・ロジック３１６が、正しく受信されたパケットのレートが、選択されたしきい値を下回ると判定すると、受信割合トリガ・イベントが生成される。
【００５２】
（復号失敗トリガ・イベント）  
下記は、復号失敗トリガ・イベントの説明である。復号システムが次の受信セッションに関して訂正動作を講じることができるように、このイベントは復号処理の完了前に検出される。
【００５３】
（復号失敗トリガ・イベント）  
受信したコード・パケットの選択されたセッションの復号処理が失敗した場合、復号失敗トリガ・イベントが生成される。例えば、デコーダ３００は、選択されたコンタクト・ウィンドウ内で送信されたｋ（１＋ε）個のコード・パケットを受信するように動作する。受信したコード・パケットの復号において失敗がある場合復号失敗トリガ・イベントが生成される。復号失敗は、望まれるあらゆる復号基準によって定義することができる。１つの実施形態では、復号ロジック３２４は、受信したコード・パケットを復号し、復号失敗が検出されると、復号失敗トリガ・イベント３２６を生成するように動作する。
【００５４】
図５は、復号システムの実施形態で使用される方法５００の１つの実施形態を示す。明瞭さのため、ここでは、方法５００が、図３に示すデコーダ３００に関連して記述される。例えば、１つの実施形態では、処理ロジック３０２は、以下に述べる機能を実行する機械読取可能命令を実行する。
【００５５】
ブロック５０２では、εの値が、復号システムの最小値に初期化される。例えば、１つの実施形態では、εの値は、遠隔サーバからトランシーバ・ロジック３０４を経由してデコーダ３００にダウンロードされ、処理ロジック３０２において格納される。１つの実施形態では、εの初期値は約０．１である。
【００５６】
ブロック５０４では、１または複数のコード・パケットが受信される。例えば、コード・パケットは、選択されたコンタクト・ウィンドウ内で、マルチキャスト送信チャネルを介してデコーダ３００に送信され、トランシーバ・ロジック３０４によって受信されうる。コード・パケットが受信されると、それらが含んでいる情報が、必要に応じて、データ記憶装置３０８およびコード記憶装置３１０に格納される。更に、ＬＤＧＭロジック３１２は、図４に示すようなツリー構造を構築する。
【００５７】
ブロック５０６では、所望する全てのコード・パケットが受信されたかを判定するためのテストが行われる。例えば、デコーダ３００は、ｋ（１＋ε）個のコード・パケットを受信することを試みる。全てのコード・パケットが受信された場合、方法はブロック５１４に進む。全てのコード・パケットが受信された訳ではない場合、方法はブロック５０８に進む。
【００５８】
ブロック５０８では、早期エラー検出トリガ・イベントが生じたかを判定するためのテストが行われる。例えば、１つの実施形態では、レート・ロジック３１６およびツリー・ロジック３２０は、早期エラー検出トリガ・イベント３１８，３２２が生じたかを判定するように動作する。早期エラー検出イベントが生じていない場合、方法はブロック５０４へ戻り、更にコード・パケットが受信される。早期エラー検出イベントが生じている場合、方法はブロック５１０に進む。
【００５９】
ブロック５１０では、コンタクト・ウィンドウにおいて、残りのコード・パケットの全てまたは選択可能な部分が受信される。例えば、処理ロジック３０２は、コード・パケットが送信されているコンタクト・ウィンドウの持続期間を知っている。処理ロジック３０２は、送信されるあらゆる更なるコード・パケットをデコーダ３００が受信できるように、トランシーバ３０４が、コンタクト・ウィンドウの残りの部分のコード・パケットを受信するよう制御するように動作する。１つの実施形態では、εの値は、残り全てのコード・パケットを含むように増加される。
【００６０】
ブロック５１２では、受信したコード・パケットが復号される。例えば、処理ロジック３０２は、送信されたデータをできる限り多く復元するために、受信された全てのコード・パケットを復号する。復元されたデータは、データ記憶装置３０８に格納される。そして、方法は、ブロック５２４で終了する。
【００６１】
ブロック５１４では、受信したｋ（１＋ε）個のコード・パケットが復号される。例えば、処理ロジック３０２は、送信されたデータをできる限り多く復元するために、ｋ（１＋ε）個のコード・パケットを復号する。
【００６２】
ブロック５１６では、復号エラー・トリガ・イベントが生じたかをか判定するためのテストが行なわれる。例えば、復号エラー・トリガ・イベント３２６は、復号ロジック３２４が、受信したコード・パケットを復号する際に（上述したように）失敗を検出した場合に生じる。復号処理が成功した場合、方法はブロック５２４で終了する。復号エラーが検出された場合、復号エラー・トリガ・イベントが検出され、方法はブロック５１８へ進む。
【００６３】
ブロック５１８では、εの値が増加される。例えば、１つの実施形態では、処理ロジック３０２は、εの値を、任意の選択された量増加させる。
【００６４】
ブロック５２０では、更なるパケットが受信可能かどうかを判定するためのテストが行なわれる。例えば、コード・パケットは、コンタクト・ウィンドウの期間にわたって送信される。テストは、更なるパケットが受信できるように、コンタクト・ウィンドウが未だに開いているかを判定する。１つの実施形態では、コンタクト・ウィンドウがまだ開いているかを処理ロジック３０２が判定する。受信するパケットがこれ以上ないように、コンタクト・ウィンドウが閉じている場合、方法はブロック５２４で終了する。更なるパケットが受信できるように、コンタクト・ウィンドウが未だ開いている場合、方法はブロック５２２に進む。
【００６５】
ブロック５２２では、更なるコード・パケットが受信される。１つの実施形態では、処理ロジック３０２は、更なるコード・パケットを受信するようにトランシーバ・ロジック３０４を制御する。パケットが受信されると、それらが含む情報が、必要に応じて、データ記憶装置３０８およびコード記憶装置３１０に格納される。そして、方法はブロック５１４に進み、受信された全てのコード・パケットが復号される。
【００６６】
従って、方法５００は、デバイス内で使用される復号システムの１つの実施形態を提供するように動作する。方法５００は、単なる１つの実施例を表し、本実施形態の範囲内でその他の実施例も可能であることが注目されるべきである。
【００６７】
図６は、復号システムの実施形態で使用されるデコーダ６００の１つの実施形態を示す。デコーダ６００は、最初の量のコード・パケットを受信する手段６０２を備える。例えば、１つの実施形態では、手段６０２は、ｋ（１＋ε）個のコード・パケットを受信するようにトランシーバ・ロジック３０４を制御する処理ロジック３０２を含む。
【００６８】
デコーダ６００はまた、トリガ・イベントを検出するための手段６１２を含む。この手段６１２は、復号エラーを検出する手段６０４と、メモリしきい値エラーを検出する手段６０６と、受信割合エラーを検出する手段６０８とを備える。例えば、１つの実施形態では、手段６０４は、復号ロジック３２４を備え、手段６０６は、ツリー・ロジック３２０を備え、手段６０８は、レート・ロジック３１６を備える。
【００６９】
デコーダ６００はまた、追加のコード・パケットを受信する手段６１０を備える。例えば、１つの実施形態では、手段６１０は、コンタクト・ウィンドウの期間内に、追加のコード・パケットを受信するようにトランシーバ・ロジック３０４を制御する処理ロジック３０２を備える。従って、デコーダ６００は、復号システムの１つの実施形態を提供する。
【００７０】
ここで開示された実施形態に関連して記述された様々の説明的論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、アプリケーションに固有の集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）あるいはその他のプログラマブル論理デバイス、ディスクリートゲートあるいはトランジスタロジック、ディスクリートハードウェア部品、又は上述された機能を実現するために設計された上記何れかの組み合わせを用いて実現又は実行されうる。汎用プロセッサとしてマイクロプロセッサを用いることが可能であるが、代わりに、従来技術によるプロセッサ、コントローラ、マイクロコントローラ、あるいは状態機械を用いることも可能である。プロセッサは、たとえばＤＳＰとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアに接続された１つ以上のマイクロプロセッサ、またはこのような任意の構成である計算デバイスの組み合わせとして実現することも可能である。
【００７１】
ここで開示された実施形態に関連して記述された方法やアルゴリズムのステップは、ハードウェアによって直接的に、プロセッサによって実行されるソフトウェアモジュールによって、これらの組み合わせによって具現化される。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュ・メモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハード・ディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、あるいは当該技術分野で知られているその他の型式の記憶媒体に収納されうる。典型的な記憶媒体は、プロセッサがそこから情報を読み取り、またそこに情報を書き込むことができるようにプロセッサに結合される。または、記憶媒体はプロセッサに統合されうる。このプロセッサと記憶媒体は、ＡＳＩＣ内に存在することができる。ＡＳＩＣは、ユーザ端末内に存在することもできる。あるいはこのプロセッサと記憶媒体は、ユーザ端末内のディスクリート部品として存在しうる。
【００７２】
開示された実施形態における上述の記載は、当該技術分野におけるいかなる人であっても、本発明の活用または利用を可能とするように提供される。これらの実施形態への様々な変形例もまた、当業者に対しては明らかであって、ここで定義された一般的な原理は、本発明の主旨または範囲を逸脱せずに、例えば、インスタント・メッセージング・サービスや任意の一般的な無線データ通信アプリケーションのような他の実施形態にも適用されうる。このように、本発明は、ここで示された実施形態に制限されるものではなく、ここで記載された原理と新規の特徴に一致した最も広い範囲に相当するものを意図している。「典型的」（"exemplary"）という用語は、本明細書において、「例、事例、または例示として役立つ」ことのみを意味するために使用される。本明細書で「典型的」として記載される何れの実施形態も、他の実施形態よりも好適であるとか有利であるとか必ずしも解釈されるものではない。
【００７３】
従って、本明細書において、復号システムの１または複数の実施形態が例示され説明される一方、その精神または本質的な特性から逸脱することなく、様々な変形がなされうることが認識されよう。従って、本明細書における開示および説明は、例示的であることが意図されており、特許請求の範囲に述べる本発明の範囲を限定しないことが意図される。
【図面の簡単な説明】
【００７４】
【図１】図１は、復号システムの１つの実施形態を備える通信経路を示す。
【図２】図２は、復号失敗確率とイプシロンとの関係を例示するグラフを示す。
【図３】図３は、復号システムの実施形態で使用されるデコーダの１つの実施形態を示す。
【図４】図４は、復号システムの実施形態で使用されるツリー構造の１つの実施形態を示す。
【図５】図５は、復号システムの実施形態で使用される方法の１つの実施形態を示す。
【図６】図６は、復号システムの実施形態で使用されるデコーダの１つの実施形態を示す。
【図１】
2009510949.tif 000003
【図２】
2009510949.tif 000004
【図３】
2009510949.tif 000005
【図４】
2009510949.tif 000006
【図５】
2009510949.tif 000007
【図６】
2009510949.tif 000008
【国際調査報告】
2009510949.tif 000009
2009510949.tif 000010
2009510949.tif 000011
2009510949.tif 000012