(57)【特許請求の範囲】
【請求項１】
受信機において符号化データ・ビットを処理する方法であって、前記符号化データ・ビットは、送信機から、ネットワーク上に確立された損失通信チャネルを介して、前記受信機に送信され、前記方法は、
前記損失通信チャネルを介して、前記符号化データ・ビットを受信するステップであって、前記符号化データ・ビットは、冗長データ・ユニットを含み、符号化データの少なくとも一部のオリジナル・データは、前記損失通信チャネルを介した伝送中に失われた損失データである、ステップと、
受信された前記符号化データ・ビットの生成に関連付けられている、前記送信機に関連する情報を受信するステップであって、前記送信機に関連する前記情報は、前記符号化データ・ビットを生成するために使用されたエンコーダに関するソース・エンコーダ名と、前記符号化データ・ビットを生成するために使用された前記エンコーダに関するソース・エンコーダ・モードと、のうち少なくとも１つを含む、ステップと、
エラー訂正デコーダにおいて、前記符号化データ・ビットを復号化するステップと、
前記エラー訂正デコーダにおいて、前記冗長データ・ユニットのうちの少なくとも１つに部分的に基づいて、前記損失データの少なくとも一部を回復させるステップと、
前記エラー訂正デコーダが前記損失データの少なくとも１つのデータ・ビットに関して複数の候補オプションを見つけたことに少なくとも部分的に基づいて、前記少なくとも１つのデータ・ビットが前記エラー訂正デコーダにおいて回復不可能であると判定するステップであって、各候補オプションは、ビット値又はビット・シーケンス値である、ステップと、
受信された前記送信機に関連する前記情報を使用することに少なくとも部分的に基づいて、回復不可能な前記少なくとも１つのデータ・ビットに関する前記複数の候補オプションのうちの候補オプションを無効なものとして特定して、無効なものとして特定された前記候補オプションを除外するために、前記複数の候補オプションを解析する解析ステップと、
前記解析に基づいて、回復不可能な前記少なくとも１つのデータ・ビットを解決するステップと、
を含む、方法。
【請求項２】
前記送信機に関連する前記情報は、前記ネットワークを介して受信される、請求項１記載の方法。
【請求項３】
前記エラー訂正デコーダが、データ・ビットのシーケンス中の各データ・ビットに関して複数の候補オプションを見つけたことに応じて、前記データ・ビットのシーケンスに関する最も可能性の高い候補オプションを判定するために、前記送信機に関連する前記情報を使用することに少なくとも部分的に基づいて、前記データ・ビットのシーケンス中の各ビットに対して該複数の候補オプションを解析するステップをさらに含む、請求項１又は２記載の方法。
【請求項４】
前記送信機に関連する前記情報は、
符号化される前のデータ・ビットのソースに関する情報；
前記符号化データ・ビットをパケット化するために使用されたパケット化プロセスに関する情報；及び
前記符号化データ・ビットを生成する際に前記送信機が従った予め定められたルールに関する情報
のうち少なくとも１つをさらに含む、請求項１乃至３いずれか一項記載の方法。
【請求項５】
前記解析ステップは、前記少なくとも１つのデータ・ビットに関する前記複数の候補オプションのうちの１以上が前記符号化データ・ビットの後の復号化の後に品質の劣化をもたらすかどうかを特定するステップをさらに含む、請求項１乃至４いずれか一項記載の方法。
【請求項６】
前記解析ステップは、復号化された候補結果を生成するために、アプリケーション・デコーダを用いて前記候補オプションを復号化するステップを含む、請求項１乃至５いずれか一項記載の方法。
【請求項７】
前記アプリケーション・デコーダが、復号化データ・ビットを生成するために、回復されたデータ・ビット又は解決されたデータ・ビットを復号化するステップと、
無効な復号化された候補結果又は低確率の復号化された候補結果を除外する際に使用するために、前記復号化データ・ビットを記憶するステップと、
をさらに含む、請求項６記載の方法。
【請求項８】
前記送信機に関連する前記情報を用いて候補オプションを解決することができないときに、候補オプションを復号化するために、候補オプションを前記アプリケーション・デコーダに選択的に供給するステップ
をさらに含む、請求項６又は７記載の方法。
【請求項９】
符号化データ・ビットを処理する受信機であって、前記符号化データ・ビットは、送信機から、ネットワーク上に確立された損失通信チャネルを介して、前記受信機に送信され、前記受信機は、
前記損失通信チャネルを介して、前記符号化データ・ビットを受信するとともに、前記符号化データ・ビットの生成に関連付けられている、前記送信機に関連する情報を受信するよう構成されている受信モジュールであって、前記符号化データ・ビットは、冗長データ・ユニットを含み、符号化データの少なくとも一部のオリジナル・データは、前記損失通信チャネルを介した伝送中に失われた損失データであり、前記送信機に関連する前記情報は、前記符号化データ・ビットを生成するために使用されたエンコーダに関するソース・エンコーダ名と、前記符号化データ・ビットを生成するために使用された前記エンコーダに関するソース・エンコーダ・モードと、のうちの少なくとも１つを含む、受信モジュールと、
前記符号化データ・ビットを復号化し、前記冗長データ・ユニットのうちの少なくとも１つに部分的に基づいて、前記損失データのビットの少なくとも一部を回復させるよう構成されているエラー訂正デコーダと、
前記エラー訂正デコーダが前記損失データの少なくとも１つのデータ・ビットに関して複数の候補オプションを見つけたことに起因して、前記少なくとも１つのデータ・ビットが前記エラー訂正デコーダにより回復不可能であるかどうかを判定するよう構成されている判定モジュールであって、各候補オプションは、ビット値又はビット・シーケンス値である、判定モジュールと、
前記送信機に関連する前記情報を使用することに少なくとも部分的に基づいて、回復不可能な前記少なくとも１つのデータ・ビットに関する前記複数の候補オプションのうちの候補オプションを無効なものとして特定して、無効なものとして特定された前記候補オプションを除外するために、前記複数の候補オプションを解析するよう構成されている解析モジュールと、
前記解析に基づいて、回復不可能な前記少なくとも１つのデータ・ビットを解決するよう構成されている解決モジュールと、
を備えている、受信機。
【発明の詳細な説明】
【背景技術】
【０００１】
データ・ストリームが送信機から通信チャネルを介して受信機に送信される多くの状況が存在する。通信チャネルは、多くの異なる可能なネットワークのうちの１つ（又は複数）において存在し得る。例えば、通信チャネルは、インタネット、又は携帯電話ネットワーク等の無線ネットワークにおいて存在し得る。データ・ストリーム内のデータは、通信チャネルを介した伝送のために、データ・パケットに分割され得る。データをデータ・パケット（例えば、データ・パケットのヘッダの形態、及び他のそのような実装詳細）に分割するプロトコルは、データが送信されることになる通信チャネルの性質、例えば、データ・パケットが送信されることになるネットワークのタイプに依拠し得る。データは、送信機から送信される前に、エンコーダにより符号化され、受信機において受信された後、デコーダにより復号化され得る。
【０００２】
理想的なシステムにおいては、送信機から通信チャネルを介して送信される全てのデータ・パケットが受信機において受信されるように、通信チャネルは無損失である。しかしながら、実際の物理的システムにおいては、通信チャネルは損失を伴い得る、すなわち、送信されるデータ・パケットの一部は、通信チャネル上で失われ、その結果、受信機において受信されない。これは弊害をもたらし得る。受信機において訂正スキームを使用して、損失データ・パケットの少なくとも一部を回復させるのを助けることができる。
【０００３】
一例として、順方向エラー訂正（ＦＥＣ）は、通信チャネルにおけるパケット損失に対処するために使用することができる１つの訂正スキームである。
【発明の概要】
【０００４】
この概要は、発明を実施するための形態において以下でさらに説明されるコンセプトのうち選択したものを簡略化した形で紹介するために提供される。この概要は、特許請求される主題の主要な特徴又は必要不可欠な特徴を特定することを意図するものではないし、特許請求される主題の範囲を限定するために使用されることを意図するものでもない。
【０００５】
本発明の実施形態は、受信機において符号化データ・ビットを処理する方法を提供し、符号化データ・ビットは、送信機から、ネットワーク上に確立された損失通信チャネル（lossy  communication  channel）を介して、受信機に送信される。通信チャネルを介して受信される符号化データ・ビットは、冗長データ・ユニット（redundant  data  unit）を含む。エラー訂正デコーダにおいて、符号化データ・ビットが復号化され、損失データの回復が、冗長データ・ユニットのうちの少なくとも１つを用いて、エラー訂正デコーダにおいて実施される。この方法は、エラー訂正デコーダが少なくとも１つのデータ・ビットに関して複数の候補ビット値を見つけたことに起因して、少なくとも１つのデータ・ビットを回復させることができないかどうかを判定するステップと、送信機に関連する情報を受信するステップと、を含む。送信機に関連する情報を用いて、少なくとも１つのデータ・ビットに関する複数の候補ビット値のうちの少なくとも１つを除外するために、複数の候補ビット値が解析され、解析に基づいて、少なくとも１つのデータ・ビットが解決される（resolved）。
【図面の簡単な説明】
【０００６】
本発明のより良い理解のため、及び本発明をどのように実施することができるかを示すために、例として、図面が参照される。
【図１ａ】どのようにＦＥＣデータ・ユニットが生成され得るかの第１の例を示す図。
【図１ｂ】どのようにＦＥＣデータ・ユニットが生成され得るかの第２の例を示す図。
【図１ｃ】どのようにＦＥＣデータ・ユニットが生成され得るかの第３の例を示す図。
【図２】通信システムにおけるデータ・パケットの伝送を示すタイミング図。
【図３】通信システムを示す図。
【図４】通信システムにおいて送信されているデータ・ストリームの表現。
【図５】データ・ビットを解決するプロセスのフローチャート。
【図６】受信機におけるプロセッサの図。
【図７】送信機におけるプロセッサの図。
【発明を実施するための形態】
【０００７】
本発明の好ましい実施形態について例として説明する。
【０００８】
通信チャネルにおける損失と比較して、アプリケーション・デコーダ（例えば、オーディオ・デコーダ又はビデオ・デコーダ）により確認されるように、ＦＥＣは損失を低減させるが、ＦＥＣは全ての損失オリジナル・パケットの回復を確実にするわけではない。
【０００９】
インタネット等のパブリック・ネットワークを介したデータ伝送の量は、急速に増しつつある。したがって、エラー訂正メカニズムは、信頼できるデータ伝送を確実にするために、より重要になりつつある。
【００１０】
ＦＥＣ復号化中、ＦＥＣデコーダが特定のビット値又はビット・シーケンス値に関して複数の候補オプションが存在すると判定することに起因して、損失パケットの正しいビット値又はビット・シーケンス値に関して不確かさが生じ得る。
【００１１】
発明者らは、通信チャネルにおけるパケット損失と比較して、アプリケーション・デコーダにより確認されるパケット損失をさらに低減させるために、候補パケットの内容を評価することにより、回復プロセスのいくつかの不確かさ（すなわち、ビット又はビットのシーケンスが２以上の値を取り得る場合）を解決することができることを認識した。
【００１２】
ＦＥＣは、オリジナル・データ・ユニットに加えて、（ＦＥＣデータ・ユニットとして）冗長訂正データを生成し、通信チャネルを介して送信されるデータ・ストリーム内にＦＥＣデータ・ユニットを含める。オリジナル・データ及び冗長ＦＥＣデータを送信するＦＥＣスキームは、システマチックＦＥＣスキームと呼ばれる。オリジナル・データを送信しないＦＥＣスキームは、非システマチック・スキームと呼ばれる。後者の場合、冗長性を提供するために、送信されるデータの総量は、オリジナル・データの量よりもかなり多い。単純さのため、しかしながら、一般性を失うことなく、本明細書において、システマチックＦＥＣスキームについて説明する。冗長ＦＥＣデータ・ユニットは、データ・ストリーム内のデータ・パケットとは分離された自身のパケット内に配置され得る。代替として、又は追加的に、ＦＥＣデータ・ユニットは、データ・ストリーム内のオリジナル・データ・パケットに付加されてもよい（又は、「ピギーバックされてもよい（piggybacked）」）。単純さのため、しかしながら、一般性を失うことなく、本明細書において、分離されたオリジナル・パケット及びＦＥＣパケットについて説明する。通信チャネルにおいて、オリジナル・データ・パケットの一部が失われた場合、無事到達したＦＥＣデータ・ユニット及び無事到達したデータ・パケットを使用して、損失データ・パケット（の少なくともいくつか）を回復させることができる。すなわち、通信チャネルにおける実際のパケット損失と比較して、ＦＥＣは、受信機のデコーダにより確認されるパケット損失を低減させる。
【００１３】
図１ａ、図１ｂ、及び図１ｃは、どのようにＦＥＣデータ・ユニットが生成され得るかの３つの例を示している。
【００１４】
図１ａに示されるように、ＦＥＣデータ・ユニット１０４は、データ・ストリームのオリジナル・データ・パケット１０２の正確なコピーとして生成され得る。データ・ストリーム内にデータ・パケット１０２及びＦＥＣデータ・ユニット１０４の両方を含めることにより、データ・パケット１０２内のデータは２回送信される。したがって、データ・パケット１０２が伝送中失われたが、ＦＥＣデータ・ユニット１０４が無事受信された場合、受信機において（ＦＥＣデータ・ユニット１０４を用いて）データ・パケット１０２内のデータを無事回復させることができる。
【００１５】
図１ｂに示されるように、モジュール１０８を使用して、低ビット・レートで符号化されたオリジナル・データ・パケット１０６のコピーであるＦＥＣデータ・ユニット１１０を生成することができる。データ・パケット１０６が伝送中失われたが、ＦＥＣデータ・ユニット１１０が無事受信された場合、受信機において、ＦＥＣデータ・ユニット１１０に基づいて、データ・パケット１０６内のデータを少なくとも部分的に回復させることができる。データ・パケット１０２及びデータ・パケット１０６が同じサイズを有する場合（例えば、同じ数のビットを有する場合）、ＦＥＣデータ・ユニット１１０は、ＦＥＣデータ・ユニット１０４よりも小さなサイズを有する（例えば、少ないビットを有する）ことに留意すべきである。したがって、データ・パケット１０６を回復させる際のＦＥＣデータ・ユニット１１０よりも、データ・ユニット１０２を回復させる際のＦＥＣデータ・ユニット１０４の方が有用であり得るが、図１ｂに示されるＦＥＣデータ・ユニットを生成することも有用であり得る。というのは、ＦＥＣデータ・ユニット１１０は、ＦＥＣデータ・ユニット１０４が使用するよりも、データ・ストリームのための通信チャネル上で少ない利用可能ビット・レートを使用するからである。
【００１６】
図１ｃに示されるように、合成モジュール１１８を使用して、例えば、データ・パケット１１２、１１４、及び１１６といった複数のオリジナル・データ・パケットからＦＥＣデータ・ユニット１２０を生成することができる。例えば、合成モジュール１１８は、ＸＯＲ関数を３つのデータ・パケット１１２、１１４、及び１１６に適用したビットごとの結果を判定して、ＦＥＣデータ・ユニット１２０を生成することができる。別のアプローチでは、ガロア域ＧＦ（２８）算術を用いてデータ・パケット１１２、１１４、及び１１６をバイトごとに結合して、ＦＥＣデータ・ユニット１２０を生成する。この意味で、ＦＥＣデータ・ユニット１２０は、オリジナル・データ・パケット１１２、１１４、及び１１６を合成又は結合した結果である。データ・パケット１１２、１１４、及び１１６のうちの１つが伝送中に失われたが、他の２つのデータ・パケット及びＦＥＣデータ・ユニット１２０が無事受信された場合、受信機において（他の２つのデータ・パケット及びＦＥＣデータ・ユニット１２０を用いて）損失データ・パケット内のデータを無事回復させることができる。
【００１７】
したがって、多数の異なる方法によりＦＥＣデータ・ユニットを生成できることが確認できる。様々なＦＥＣスキームが、ＦＥＣデータ・ユニットが生成される様々な方法を記述する。ＦＥＣスキームは、生成されるＦＥＣデータ・ユニットの数；ＦＥＣデータ・ユニットを生成するためにどのデータ・パケットが使用されるか；どのようにＦＥＣデータ・ユニットが送信されるか（例えば、分離されたパケットとして、又はデータ・パケットにＦＥＣデータ・ユニットを付加することにより）；及びデータ・ストリーム内のどこにＦＥＣデータ・ユニットが配置されるか等、ＦＥＣデータ・ユニットの生成に関するファクタを記述し得る。ＦＥＣスキームの損失−回復性能（loss-recovery  performance）は、受信機においてＦＥＣデータ・ユニットを用いて損失データ・パケットを回復させるＦＥＣスキームの能力を記述する。
【００１８】
一般に、データ・ストリーム内のＦＥＣデータ・ユニットの数が増大すると、ＦＥＣスキームの損失−回復性能は向上する。しかしながら、データ・ストリーム内のＦＥＣデータ・ユニットの数の増大は、ビット・レート効率（bit  rate  efficiency）を犠牲にする。
【００１９】
ＦＥＣスキームの損失−回復性能は、ＦＥＣオーバヘッド（FEC  overhead）及びＦＥＣデプス（FEC  depth）に大いに依拠する。
【００２０】
ＦＥＣオーバヘッドは、オリジナル・データの量に対する冗長データの量（例えば、オリジナル・パケットの数に対するＦＥＣパケットの数）を記述する。一般に、よりオーバヘッドが高いと、ＦＥＣスキームの損失−回復性能は向上する。一方、より高いオーバヘッドは、ビット・レート効率を犠牲にする。オリジナル・データの符号化ビット・レートが不変のままである場合、増大した冗長性は増大した総ビット・レートをもたらす。あるいは、総ビット・レートが制約される場合、増大した冗長性は、オリジナル・データの低符号化ビット・レートを犠牲にする。
【００２１】
ＦＥＣデプスは、ＦＥＣデータ・ユニットにより保護され得る（すなわち、ＦＥＣデータ・ユニットに結合され得る）データ・パケットのうち最古のデータ・パケットと最新のデータ・パケットとの間のずれ（displacement）を記述する。すなわち、ＦＥＣデプスは、ＦＥＣデータ・ユニットに結合され得るオリジナル・データ・パケットの最大数を記述する。より高いデプスは、ＦＥＣデータ・ユニットに関するデータ・パケットの様々な組合せのより高い可能性を提供し、したがって、例えば、変化するチャネル条件に対して、より柔軟性の高いＦＥＣスキームを実現することができる。１つの極端な例において、ＦＥＣデータ・ユニットが１つのオリジナル・データ・パケットのコピーに制約される場合、より高いデプスは、時間における、オリジナル・データ・パケットとそのコピー（ＦＥＣデータ・ユニット）とのより大きな分離の可能性を提供する。これは、バースト性のパケット損失条件において有利である。というのは、これは、通信チャネル上のバーストにおいてオリジナル・データ・パケット及びそのコピー（ＦＥＣデータ・ユニット）の両方が失われる可能性を最小限にするからである。
【００２２】
ＦＥＣデプスは、通信における遅延に関連する。ＦＥＣデータ・ユニットは、以前に生成されたオリジナル・データ・パケットを結合する。したがって、ＦＥＣを使用することにより生じる送信機における追加のアルゴリズム的遅延（algorithmic  delay）は存在しない。しかしながら、受信機において損失データ・パケットを再構築するために、我々は受信機における遅延を想定する。というのは、ＦＥＣデータ・ユニットは、そのＦＥＣデータ・ユニットの基礎となるデータ・パケットよりも遅れて生成され送信されるからである。これは、図２に示されるタイミング図で確認することができる。図２は、データ・ストリームの３つのデータ・パケット（２０２、２０４、及び２０６）を使用して、ＦＥＣデータ・ユニット２０８を生成する状況を示している。ＦＥＣデータ・ユニット２０８は、３つのデータ・ユニット２０２、２０４、及び２０６の全てが生成されるまで、生成することができない。したがって、ＦＥＣデータ・ユニット２０８が送信機において生成される前に、データ・パケット２０２及び２０４が送信機から送信される。したがって、ＦＥＣデータ・ユニット２０８を送信することができる最も早いタイミングは、データ・パケット２０６の直後である。このシナリオが図２に示されている。データ・パケット及びＦＥＣデータ・ユニットの伝送は、有限の量の時間を要する。図２は、ネットワーク上の損失通信チャネルを介した伝送中のデータ・パケット２０２の損失（２１０）を示している。しかしながら、データ・パケット２０４及び２０６、並びにＦＥＣデータ・ユニット２０８は全て受信機において無事受信される。データ・パケット２０４及び２０６、並びにＦＥＣデータ・ユニット２０８を使用して、受信機において損失データ・パケット２０２を回復させることができる。しかしながら、損失データ・パケット２０２は、データ・パケット２０４及び２０６、並びにＦＥＣデータ・ユニット２０８の３つ全てが受信機において受信されるまで、回復させることができない。したがって、図２に示されるように、（データ・パケット２０２が失われていなければ）データ・パケット２０２が受信機において受信されたであろう時間と、ＦＥＣデータ・ユニット２０８を用いてデータ・パケットを回復させることができる時間との間で、データ・パケット２０２のＦＥＣ回復に要する遅延が存在する。データ・ストリームに関する遅延要件が満たされない場合、ＦＥＣデータ・ユニット２０８が到達する前に、損失データ・パケット２０２は、受信機において復号化不可能なものとして示されることになる。これは、ＦＥＣスキームの性能を著しく低下させる最も可能性が高いものである。
【００２３】
しかしながら、この遅延は、追加の遅延として、ＦＥＣにより、受信機において導入される必要は必ずしもない。例えば、必要な遅延は、受信機においてすでに存在し得る。受信機における遅延の考えられる１つの原因は、ジッタ・バッファの存在である。というのは、パケット到達時間のランダムなずれ（ジッタ）を軽減するために、ジッタ・バッファは、遅延をデータ・ストリームに導入するからである。
【００２４】
所与のチャネル条件、ＦＥＣオーバヘッド、及びＦＥＣデプスに対して、ＦＥＣデータ・ユニットを形成するオリジナル・データ・パケットの最適な結合／合成の選択は、選択された損失−回復性能基準を最適化することにより、行うことができる。しばしば、多数のＦＥＣパケットが、最適化ウィンドウ（optimization  window）内で、一緒に最適化される。
【００２５】
損失−回復性能基準の例は次のとおりである：
（ｉ）回復させることができる損失の回数；
（ｉｉ）合計
【００２６】
【数１】
0006305398.tif 000002
ここで、ｐｉは、ｉ番目のデータ・パケットの非回復確率（non-recovery  probability）である。合計は、最適化ウィンドウ内のオリジナル・データ・パケットを含む；
（ｉｉｉ）合計
【００２７】
【数２】
0006305398.tif 000003
再度、合計は、最適化ウィンドウ内のオリジナル・データ・パケットを含む。非回復確率を２乗すると、より高い非回復確率（すなわち、外れ値）がより重く取り扱われる；
（ｉｖ）合計
【００２８】
【数３】
0006305398.tif 000004
ここで、ｗｉは、ｉ番目のデータ・パケットの非回復確率に適用される重みである。重みは、異なるデータ・パケットの損失に対する重要性又は感度の異なるレベルを記述する。再度、合計は、最適化ウィンドウ内のオリジナル・データ・パケットを含む。このような重み付き性能基準を使用するＦＥＣスキームは、ソース依存ＦＥＣ（source-dependent  FEC）又は不均一エラー保護ＦＥＣ（uneven-error-protection  FEC）と呼ばれる。というのは、異なるデータ・パケットに提供される保護は異なるからである。これにより、データ・ストリームのより重要なデータ・パケットに対して、より重大なレベルの保護を提供することが可能となる（例えば、特定のアプリケーション又はユーザからのデータ・パケットは、より大きな重要性を有する、例えば、異なるオーディオ・データ・パケット及び異なるビデオ・データ・パケットは、ＦＥＣスキームにより提供される異なるレベルの保護を有し得る）。このようにして、データ・パケットは、ＦＥＣスキームにおいて、異なるレベルの優先順位を有することができる。
【００２９】
次に、図３を参照して、通信システム３００について説明する。通信システム３００は、送信機３０２、ネットワーク３０８、及び受信機３１０を含む。送信機３０２は、データを処理するためのプロセッサ３０４、ネットワーク３０８を介したデータの送信（及び受信）のためのネットワーク・インタフェース３０７、及びデータを記憶するためのメモリ３０６を備える。プロセッサ３０４は、ハードウェア又はソフトウェアにより、送信機３０２において実装することができる。同様に、受信機３１０は、データを処理するためのプロセッサ３１２、ネットワーク３０８を介したデータの受信（及び送信）のためのネットワーク・インタフェース３０９、及びデータを記憶するためのメモリ３１４を備える。プロセッサ３１２は、ハードウェア又はソフトウェアにより、受信機３１０において実装することができる。
【００３０】
データ・ストリームは、ネットワーク３０８上の通信チャネルを介して、受信機３１０に送信され得る。ネットワーク上の通信チャネルを介してデータ・ストリームを送信する方法は、当技術分野では知られており、したがって、本明細書において詳細には説明しない。受信機３１０は、（例えば、プロセッサ３１２を用いて）受信したデータ・パケットを処理して、データを取り出すことができる。この処理は、データ・ストリームからデータを脱パケット化して（depacketize）、データを復号化することを含み得る。データは、受信機においてメモリ３１４に記憶されてもよいし、受信機３１０から、例えば、ユーザに出力されてもよい。データ・ストリーム内のデータは、送信機３０２のユーザと受信機３１０のユーザとの間の（音声通話又はビデオ通話等の）リアルタイム通信イベントに関連し得る。あるいは、データ・ストリーム内のデータは、送信機３０２と受信機３１０との間のファイル転送等のデータ転送に関連し得る。データ・ストリーム内のデータは、任意の他の適切なタイプのデータであってよい。
【００３１】
ネットワーク３０８は、送信機３０２と受信機３１０との間で通信チャネルを提供する能力を有する任意の適切なネットワークとすることができる。ネットワーク３０８は、パケットベースのネットワークとすることができる。ネットワーク３０８は、ワイド・エリア・ネットワーク（ＷＡＮ）であってもよいし、ローカル・エリア・ネットワーク（ＬＡＮ）であってもよい。例として、ネットワーク３０８は、イントラネット、インタネット、又は、携帯電話ネットワーク等の電話網であってよい。送信機３０２及び受信機３１０はそれぞれ、ネットワーク３０８を介してデータ・ストリームを送信及び受信する任意の適切な装置又はデバイスにより実装することができる。例えば、送信機３０２及び受信機３１０は、ネットワーク３０８に接続する能力を有するパーソナル・コンピュータ又は電話機等のユーザ・デバイスとして実装されてもよいし、ネットワーク内のサーバ・ノード等の他のデバイスとして実装されてもよい。
【００３２】
図４は、通信システム３００において送信機３０２から受信機３１０に送信されているデータ・ストリーム４０２の表現を示している。図４において、データ・ストリーム４０２は、１〜８のラベルが付けられた８つのデータ・パケットを含む。明瞭さのため、図４では、８つのデータ・パケットしか示されていないが、データ・ストリームは、８つより多いデータ・パケットを含み得る。図４に示されるように、データ・ストリームはまた、（「ＦＥＣ」とラベルが付けられた）ＦＥＣデータ・ユニットも含む。図４では、ＦＥＣデータ・ユニットは、データ・ストリームにおいて、データ・パケットとは分離されたパケットとして示されている。しかしながら、ＦＥＣデータ・ユニットは、データ・パケットに付加されてもよい（又は、「ピギーバックされてもよい」）。ＦＥＣデータ・ユニットがデータ・パケットに付加される場合、ＦＥＣデータ・ユニットは、パケット・ヘッダ等の自身のパケット・フォーマッティングを必要とせず、したがって、ＦＥＣデータ・ユニットに必要なデータ・ストリーム内のデータ量は、わずかに低減され得る。しかしながら、ＦＥＣデータ・ユニットをデータ・パケットに付加することは、データ・パケットが失われた場合、その損失データ・パケットに付加されたＦＥＣデータ・ユニットも失われることを意味する。データ・パケットに付加されたＦＥＣデータ・ユニットは、ＦＥＣデータ・ユニットが付加されているデータ・パケット以外の他のデータ・パケットを保護する。上述したように、非システマチック・スキームにおいては、ＦＥＣデータのみが送信され得る、すなわち、データ・ストリームのオリジナル・データ・パケットは送信されない。
【００３３】
（例えば、図１ａ〜図１ｃに関連して）上述したように、ＦＥＣデータ・ユニットは、データ・ストリームのデータ・パケットのセットに基づいて生成される。データ・パケットのセットは、１以上のデータ・パケットを含み得る。ＦＥＣデータ・ユニットは、例えば、（図１ａに示されるように）オリジナル・データ・パケットの正確なコピーであってもよいし、（図１ｂに示されるように）低ビット・レートで符号化されたオリジナル・データ・パケットのコピーであってもよいし、（図１ｃに示されるように）オリジナル・データ・パケットの結合／合成であってもよい。１つのアプローチでは、データ・パケットは、（０  ＸＯＲ  ０）＝（１  ＸＯＲ  １）＝０及び（０  ＸＯＲ  １）＝（１  ＸＯＲ  ０）＝１として定義されるビットＸＯＲ演算を用いて、ビットごとに結合される。別のアプローチでは、データ・パケットは、ガロア域ＧＦ（２８）算術を用いて、バイトごとに結合される。ＦＥＣデータ・ユニットは、２以上のデータ・パケットを結合することにより生成されてもよい。
【００３４】
ネットワーク３０８上の通信チャネルは損失を伴う、すなわち、データ・ストリーム内のデータ・ビットの一部は、送信機３０２から受信機３１０への伝送中に失われる。受信機３１０においてＦＥＣデータ・ユニットを使用して、伝送中に失われたデータ・ビットを回復させることができる。「損失オリジナル・データ」という語は、伝送中に失われたデータ・ビットに加えて、伝送中の修復不可能に破損されたデータ・ビットも含む。
【００３５】
上述したように、ＦＥＣ復号化中、損失パケットの正しいビット値又はビット・シーケンス値に関して、不確かさが生じ得る。これは、３つのパケットが送信される例を考えることにより、さらに説明される。３つのパケットは、オリジナル・パケットｘ１及びｘ２、並びに、２つのオリジナル・パケットの合成であるＦＥＣパケットｆ１＝ｍｉｘ（ｘ１，ｘ２）である。ここで、合成は、論理ビットＸＯＲ関数に基づくものである。
【００３６】
パケットｘ１が失われ、パケットｘ２及びｆ１が受信された場合、パケットｘ１は、パケットｘ２及びｆ１を合成することにより（ビットＸＯＲすることにより）、回復させることができる。例えば、ｘ２におけるある位置のビットが１であり、ｆ１における同じ位置のビットが０である場合、ｘ１における同じ位置のビットは、（１  ＸＯＲ  ０）＝１として回復させることができる。
【００３７】
一方、オリジナル・パケットｘ１及びｘ２の両方が失われ、ＦＥＣパケットｆ１のみが受信された場合、パケットｘ１及びｘ２は、ＦＥＣデコーダにより回復させることができない。例えば、ｆ１におけるある位置のビットが０である場合、ｘ１及びｘ２における同じ位置のビットが両方０であるか、又は両方１であるかという不確かさが残る。すなわち、ｆ１におけるビットが０であることは、（０  ＸＯＲ  ０）又は（１  ＸＯＲ  １）により得られるということである。
【００３８】
次に、図５を参照して、こうした不確かさを解決するプロセスについて説明する。図５に示されるステップは、受信機３１０のプロセッサ３１２において実施される。
【００３９】
ステップＳ５０２において、受信機３１０は、送信機３０２から、ネットワーク３０８上に確立された損失通信チャネルを介して、符号化データ・ビットを受信する。
【００４０】
ステップＳ５０４において、受信機３１０は、送信機３０２に関連する情報を受信する。送信機に関連する情報は、プロセッサ３０４により送信されるデータの処理中に、データ・ストリームのパケット内に挿入される符号化パラメータ値により表され得る。それにより、符号化パラメータ値は、受信機３１０において受信され、送信機３０２に関連する情報を抽出するために、受信機においてプロセッサ３１２により復号化される。あるいは、送信機に関連する情報は、データ・ストリームとは分離されて、送信機３０２から、ネットワーク３０８を介して、受信機３１０に送信されてもよい。送信機３０２に関連する情報は、ネットワーク３０８を介して送信されることなく、受信機３１０において受信されてもよい、例えば、送信機３０２に関連する情報は、受信機３１０においてユーザによりローカルに入力されてもよいことを理解されたい。
【００４１】
一例において、オリジナル・パケットは、ソース・エンコーダ（例えば、オーディオ・エンコーダ又はビデオ・エンコーダ）によりソース（例えば、オーディオ又はビデオ）を符号化して結果として生じるビット・ストリームをパケット化することによって、生成される。したがって、不確かさは、候補ビット・ストリームを解析して、ソース及び／又は符号化プロセス及び／又はパケット化プロセスに関する利用可能な知識を用いることにより、潜在的に解決することができる。この例において、送信機に関連する情報は、ソース情報（オーディオ／ビデオ）、ソース・エンコーダ名、ソース・エンコーダ・モード、符号化ビット・レート、及びパケット化プロトコルを含み得る。
【００４２】
ステップＳ５０６において、プロセッサ３１２は、受信した符号化データ・ビットに対してＦＥＣ復号化を実行する。上述したように、ステップＳ５０６におけるＦＥＣ復号化は、回復プロセスにおける不確かさ（すなわち、ビット又はビットのシーケンスが２以上の値を取り得る場合）に起因して、全ての損失オリジナル・ビットの回復を確実にするわけではない。したがって、ステップＳ５０８において、プロセッサ３１２は、ステップＳ５０６におけるＦＥＣ復号化の後、不確かさが残っているかどうかを判定する。すなわち、ステップＳ５０８において、プロセッサ３１２は、ステップＳ５０６におけるＦＥＣ復号化の後、全ての損失ビットが回復可能であったかどうかを判定する。プロセッサ３１２は、各ビットが不確かさを有しているか否かをチェックすることにより、この判定ステップを実施することができる。
【００４３】
ステップＳ５０８において、全ての損失ビットがステップＳ５０６におけるＦＥＣ復号化中に回復されたとプロセッサ３１２が判定した場合、このプロセスはステップＳ５１２に進む。ステップＳ５１２において、オリジナル・ビット及び回復されたビットが、プロセッサ３１２におけるアプリケーション・デコーダに送信され、アプリケーション・デコーダにより復号化される。復号化データは、受信機においてメモリ３１４に記憶されてもよいし、受信機３１０から、例えば、ユーザに出力されてもよい。
【００４４】
再度ステップＳ５０８を参照して、正しいビット値に関する不確かさに起因して、全ての損失ビットがステップＳ５０６におけるＦＥＣ復号化中に回復されたわけではないとプロセッサ３１２がステップＳ５０８において判定した場合、このプロセスはステップＳ５１０に進む。
【００４５】
ステップＳ５１０において、プロセッサ３１２は、正しいビット値又はビット・シーケンス値に関する不確かさを解決する。ステップＳ５１０は、１以上の損失ビット値に関する候補オプションを解析することを含む。この解析は、ステップＳ５０４において受信された送信機３０２に関連する情報を用いて、プロセッサ３１２において実施される。
【００４６】
いくつかの場合においては、個々のビットを見ることにより、個々のビットに関する不確かさを解決することが可能である。他の場合においては、このプロセスは、ビット・シーケンス値の共同解析（joint  analysis）に依拠する。
【００４７】
この解析は、オリジナル・パケットは全体的にランダムではなく、あるルールに従って生成されるという事実に依拠する。こうしたルールが与えられると、所与のＦＥＣパケット・ビット値（又はビット・シーケンス値）をもたらし得るいくつかのオリジナル・パケット・ビット値（又はビット・シーケンス値）は、不可能なものとして、又は低確率を有するものとしてみなすことができ、したがって、候補オプションとして除外することができる。
【００４８】
ステップＳ５１０における候補オプションの解析は、多数の異なる方法により実施することができる。
【００４９】
例えば、ステップＳ５１０における候補オプションの解析は、無効な候補ビット・シーケンス値を特定することを含み得る。
【００５０】
代替として、又は追加的に、ステップＳ５１０における候補オプションの解析は、無効な候補パラメータ値又は低確率候補パラメータ値を特定することを含み得る。これは、例えば、パラメータ値の周辺確率分布の知識に基づき得るものであり、代替として、又は追加的に、異なるパラメータ間の相関関係に基づき得る。周辺確率分布及びパラメータ間の相関関係の両方が、予め記憶され得、且つ／又は、無事受信した／回復したビットを用いてリアルタイムに更新され得る。
【００５１】
代替として、又は追加的に、ステップＳ５１０における候補オプションの解析は、結果として生じる復号化信号の品質劣化を最小限にすることを含み得る。この解析は、候補オプションのうちの１以上が後のアプリケーション・デコーダにおける復号化の後に品質の劣化をもたらすかどうかを特定することを含む。これは、受信機３１０において信号アナライザ又は品質エスティメータ（quality  estimator）を実行することにより、実施することができる。
【００５２】
ステップＳ５１０における候補オプションの解析は、上述した方法の任意の組合せを含み得ることを理解されたい。
【００５３】
ステップＳ５１０において、損失オリジナル・データに関して実行可能なオプションでない候補オプション（ビット値又はビット・シーケンス値）は破棄することができ、損失オリジナル・データの回復プロセスにおける正しいビット値又はビット・シーケンス値に関する不確かさは、残った候補オプション（破棄されなかった候補オプション）を用いて解決することができる。
【００５４】
場合によっては、通信チャネルを介して失われたオリジナル・パケットの完全なビット・ストリームを解決することが可能でないこともある。しかしながら、多くのアプリケーションにおいて、少なくともいくつかの部分（例えば、ビット・ストリームの最初の部分）を解決することは有用である。というのは、これが、有用な情報／パラメータの復号化を可能にするからである。単なる例として、こうしたパラメータは、音声／オーディオ・フレーム、又はビデオ・フレームの最初のマクロ・ブロックを記述する知覚的に重要なパラメータであり得る。
【００５５】
場合によっては、アプリケーション・デコーダを実行することなく、ビット・ストリーム解析を実行することは十分なこともあるが、多くの状況においては、候補ビット・シーケンスに対してアプリケーション・デコーダを実行して、候補となる復号化パラメータ値を評価することにより、重要な利点を得ることができる。
【００５６】
次に、図６を参照して、ビット・ストリーム解析についてより詳細に説明する。図６は、受信機３１０におけるプロセッサ３１２の概略表現である。プロセッサ３１２の要素の各々は、ハードウェア又はソフトウェアにより実装することができる。
【００５７】
送信機３０２からデータ・ストリームを受信すると、受信機３１０におけるエラー訂正デコーダ６０２（すなわち、ＦＥＣデコーダ）がデータ・ストリームを受信する。
【００５８】
全ての損失ビットが回復可能である場合（ステップＳ５０８において回復可能と判定された場合）、受信機３１０において受信されたデータ・ビット及び回復されたビットが、ライン６０５上に供給され、第１のスイッチ手段６１２に供給される。第１のスイッチ手段６１２は、復号化されるように、受信機３１０において受信されたデータ・ビット及び回復されたビットをアプリケーション・デコーダ６０７に供給するよう制御可能である。復号化されると、アプリケーション・デコーダ６０７は、第２のスイッチ手段６２２を経由してライン６１８上に復号化ビットを出力するよう構成されている。復号化ビットは、受信機３１０においてメモリ３１４に記憶されてもよいし、受信機３１０から、例えば、ユーザに出力されてもよい。
【００５９】
全ての損失ビットが回復可能なわけではない場合（ステップＳ５０８において回復可能なわけではないと判定された場合）、受信機３１０において受信されたデータ・ビット及び回復されなかったビットが、ライン６０３上に供給され、ビット・ストリーム・アナライザ６０８に供給される。
【００６０】
ビット・ストリーム・アナライザ６０８は、プライマリ回復ブロック６０４及びセカンダリ回復ブロック６１４を含む。プライマリ回復ブロック６０４は、ライン６０３上の、１以上の回復不可能なビットを含むデータ・ビットを受信するよう構成されている。プライマリ回復ブロック６０４は、さらに、ライン６０６上の、（Φにより示される）送信機に関連する情報を受信するよう構成されている。送信機に関連する情報は、ソース及び／又は符号化プロセス及び／又はパケット化プロセス及び／又は送信機３０２においてオリジナル・パケットがどのように生成されるかに関するルールについての利用可能な知識を含み得る。
【００６１】
プライマリ回復ブロック６０４は、送信機に関連する情報（Φ）を用いて、ＦＥＣデコーダから出力された（ライン６０３上の受信された）１以上の回復不可能なビットの不確かさを解決することを試みるよう動作可能である。すなわち、プライマリ回復ブロック６０４は、送信機に関連する情報（Φ）を用いて無効なビット・ストリームを特定するために、ビット・ストリーム解析を用いて不確かさを解決する。
【００６２】
場合によっては、プライマリ回復ブロック６０４は、１以上の回復不可能なビットの不確かさの全てを解決することができることもある。すなわち、プライマリ回復ブロック６０４は、（図５に示される）ステップＳ５１０を実施することができる。このシナリオにおいて、プライマリ回復ブロック６０４は、（解決されたビットを含む）データをライン６１５上の第１のスイッチ手段６１２に供給するよう構成されている。第１のスイッチ手段６１２は、（解決されたビットを含む）データをアプリケーション・デコーダ６０７に供給するよう制御可能である。
【００６３】
場合によっては、プライマリ回復ブロック６０４は、ライン６０３上の受信された１以上の回復不可能なビットの不確かさの一部又は全てを解決することができないこともある。すなわち、データ内の少なくとも１つのビットに関して、複数の候補ビット値が残ったままである。このシナリオにおいて、プライマリ回復ブロック６０４は、複数の候補ビット・シーケンスをライン６１３上に供給してセカンダリ回復ブロック６１４に供給するよう構成されている。
【００６４】
セカンダリ回復ブロック６１４は、複数の候補ビット・シーケンスを記憶するよう構成されている第１のデータ・ストア６１０を含む。セカンダリ回復ブロック６１４は、以前にアプリケーション・デコーダ６０７により復号化されたビットからの復号化結果を記憶するよう構成されている第２のデータ・ストア６１１を含む。プロセッサ３１２は、以前にアプリケーション・デコーダ６０７により復号化されたビットをライン６１６上に供給してセカンダリ回復ブロック６１４に供給するために、第２のスイッチ手段６２２を制御するよう構成されている。
【００６５】
セカンダリ回復ブロック６１４は、複数の候補ビット・シーケンスの各々をライン６２５上の第１のスイッチ手段６１２に供給するよう構成されている。第１のスイッチ手段６１２は、複数の候補ビット・シーケンスをアプリケーション・デコーダ６０７に供給するよう制御可能である。アプリケーション・デコーダ６０７は、復号化された候補結果を出力するために、複数の候補ビット・シーケンスを復号化するよう構成されている。アプリケーション・デコーダ６０７から出力された復号化された候補結果は、第２のスイッチ手段６２２を経由して、ライン６１６上のセカンダリ回復ブロック６１４に供給される。復号化された候補結果に関する不確かさのため、アプリケーション・デコーダ６０７から出力された復号化された候補結果がライン６１８上に出力されて受信機３１０においてメモリ３１４に記憶されないように、又は、受信機３１０から、例えば、ユーザに出力されないように、プロセッサ３１２は、第２のスイッチ手段６２２を制御する。
【００６６】
セカンダリ回復ブロック６１４は、ライン６０６上の受信された送信機に関連する情報（Φ）を用いて、第２のデータ・ストア６１１に記憶された復号化結果を解析することにより、復号化された候補結果を除外することを試みるよう動作可能である。
【００６７】
この解析は、曖昧なオリジナル・パケット群（それらのビット・ストリーム及び符号化パラメータ）はしばしば互いに相関があるという事実により、容易にされ得る。また、曖昧なパケット群はしばしば、以前に復号化されたオリジナル・パケットと相関がある。
【００６８】
場合によっては、この解析に基づいて、セカンダリ回復ブロック６１４は、１つの復号化された候補結果を除いた全てを除外することができる。すなわち、プライマリ回復ブロック６０４に加えて、セカンダリ回復ブロック６１４は、（図５に示される）ステップＳ５１０を実施するよう動作する。このシナリオにおいて、セカンダリ回復ブロック６１４は、復号化された候補結果をライン６１７上に出力するよう構成されている。ライン６１７上に出力された復号化ビットは、受信機３１０においてメモリ３１４に記憶されてもよいし、受信機３１０から、例えば、ユーザに出力されてもよい。
【００６９】
上述したビット・ストリーム解析において、第１のスイッチ手段６１２は、ライン６０５、６１５、及び６２５上の３つの入力接続を有することは明らかであろう。ビット・ストリーム解析中、第１のスイッチ手段６１２は、３つの入力のうちの１つからのデータを受信するよう構成されており、受信したデータをアプリケーション・デコーダ６０７に供給するよう制御可能である。すなわち、第１のスイッチ手段６１２は、（ｉ）ライン６０５上の、受信機３１０において受信されたデータ・ビット及びエラー訂正デコーダ６０２により回復されたビット、（ｉｉ）ライン６１５上の、受信機３１０において受信されたデータ・ビット及びプライマリ回復ブロック６０４により解決されたビット、及び（ｉｉｉ）ライン６２５上の候補ビット・シーケンスのうちの１つを受信する。３つの入力のうちの１つから第１のスイッチ手段６１２が受信するデータは、エラー訂正デコーダ６０２における損失ビットの回復の成功、及びＦＥＣデコーダから出力された１以上の回復不可能なビットの不確かさを解決するプライマリ回復ブロック６０４の成功に依拠する。
【００７０】
また、プロセッサ３１２のアーキテクチャは、（図５のステップＳ５１０における）候補オプションの解析がどのように実施されるかに依拠することは明らかであろう。例えば、候補オプションの解析が、（プライマリ回復ブロック６０４により実施される）無効な候補ビット・シーケンス値を特定することのみを含む場合、セカンダリ回復ブロック６１４は必要とされ得ない。同様に、候補オプションの解析が、（セカンダリ回復ブロック６１４により実施される）無効な復号化された候補パラメータ値又は低確率の復号化された候補パラメータ値を特定することのみを含む場合、プライマリ回復ブロック６０４は必要とされ得ない。この場合、セカンダリ回復ブロック６１４は、エラー訂正デコーダ６０２から出力された１以上の回復不可能なビットを含むデータ・ビットを受信して、１以上の回復不可能なビットの不確かさを解決するプロセスにおいてアプリケーション・デコーダに供給される候補ビット・シーケンスを判定するよう構成される。
【００７１】
本発明の一実施形態において、送信機３０２は、ＦＥＣ復号化の後の不確かさを解決する受信機３１０の能力を認識している。送信機３０２におけるＦＥＣエンコーダは、受信機３１０がＦＥＣ復号化の後の不確かさを解決する能力を有しているという知識を用いて最適化され得る。このことについて、図７を参照して、さらに詳細に説明する。
【００７２】
図７は、送信機３０２におけるプロセッサ３０４の概略表現である。単純さのため、プロセッサ３０４は、ＦＥＣエンコーダ７０３を有するものとして示されているが、プロセッサ３０４は、図７には示されていないデータの送信に使用されるさらなるモジュールを含み得ることを理解されたい。ＦＥＣエンコーダ７０３は、ライン７０１上の、ソース・エンコーダ（図７には示されていない）から出力された符号化情報（符号化データ・ビット）を受信するよう構成されている。ソース・エンコーダは、例えば、オーディオ・エンコーダ又はビデオ・エンコーダとすることができる。ＦＥＣエンコーダ７０３は、さらに、ライン７０５上の受信機に関連する情報（β）を受信して、ネットワーク３０８を介した伝送のためにライン７０７上に符号化データを出力するよう構成されている。動作時、ＦＥＣエンコーダ７０３は、ライン７０１上の受信された情報を符号化する。すなわち、ＦＥＣエンコーダ７０３は、ライン７０５上の受信された受信機に関連する情報（β）に基づいて最適化された訂正スキームに従って冗長性を付加することにより、ソース符号化された情報（source-encoded  information）を保護することを試みる。
【００７３】
本発明の一実施形態において、ＦＥＣ最適化は、オフライン「トレーニング」を実行することにより実施され得る。すなわち、ＦＥＣデータを生成する多くの異なる方法が存在することを理解されたい。例えば、図１ｃは、３つのオリジナル・データ・パケットから生成されるＦＥＣデータ・ユニット１２０を示しているが、任意の数のオリジナル・データ・パケットを結合してＦＥＣデータ・ユニットを生成することができ、したがって、大きな最適化スペース（optimization  space）が存在する。オフライン・シミュレーションを実行することにより、特定の基準に従った最良の性能を提供するよう最適化されたＦＥＣスキームを判定することが可能である。コンセプトを例示する単なる例として、この基準は、シミュレーション結果を解析することにより算出することができるパケット損失とすることができる。シミュレーション結果は、すなわち、送信機から送信されたパケットの数、受信機において受信されたパケットの数、ＦＥＣデコーダにより回復されたパケットの数、及びＦＥＣ復号化の後の不確かさを解決することによりさらに回復されたパケットの数（このさらなる処理が受信機において適用された場合）である。ビデオ・データがネットワークを介して送信される場合、基準はビデオ品質のレベルであってよい。ビデオ品質評価技術は、当技術分野においてよく知られており、本明細書において説明しない。
【００７４】
こうしたシミュレーションは、通信チャネルの複数の具現化を介した可能な各ＦＥＣスキームの性能（すなわち、ＦＥＣデータ・ユニットをどのように生成することができるかの各配列の性能）を判定することを含み得る。例えば、シミュレーションは、様々な程度のパケット損失を被っているチャネルをシミュレートする際の可能な各ＦＥＣスキームの性能を判定することを含み得る。
【００７５】
オフライン「トレーニング」は、受信機３１０がＦＥＣデコーダ６０２のみを含む場合と、受信機３１０がＦＥＣデコーダを含み、ＦＥＣ復号化の後に残った不確かさを解決することができる場合（図６に示される要素を有する場合）とのシミュレーションを実行することを含み得る。受信機３１０がＦＥＣデコーダのみを含む場合のシナリオで最良の性能を提供するＦＥＣスキームは、受信機３１０がＦＥＣデコーダを含み、ＦＥＣ復号化の後に残った不確かさを解決することができる場合のシナリオで最良の性能を提供するＦＥＣスキームとは異なり得ることを理解されたい。
【００７６】
ＦＥＣエンコーダ７０３は、多数の異なる方法によりＦＥＣ復号化の後の不確かさを解決する受信機の能力を判定することができる。一例において、ＦＥＣエンコーダ７０３は、送信機において実行される、（通信システム３００に関連付けられたソフトウェア・プロバイダにより提供される）通信クライアント・ソフトウェアにより実装される。通信クライアント・ソフトウェアにより、送信機は、通話及びネットワーク３０８を介した他の通信セッションに関与することが可能となる。ＦＥＣ復号化（及びＦＥＣ復号化の後に残った不確かさを解決すること）が、ＦＥＣエンコーダ７０３を実装する通信クライアント・ソフトウェアを提供する同じソフトウェア・プロバイダにより提供される通信クライアント・ソフトウェアを受信機において実行することにより実施される場合、ＦＥＣエンコーダ７０３は、受信機において実行される通信クライアント・ソフトウェアのバージョン番号を読み取ることにより、ＦＥＣ復号化の後の不確かさを解決する受信機の能力を判定することができる。別の例において、受信機３１０からネットワークを介して送信機３０２にデータを返送することにより、ＦＥＣ復号化の後の不確かさを解決する受信機の能力が、ＦＥＣエンコーダ７０３に通知され得る。さらに別の例において、ＦＥＣエンコーダ７０３は、ユーザが手動で情報をＦＥＣエンコーダ７０３に提供することにより、ＦＥＣ復号化の後の不確かさを解決する受信機の能力を判定することができる。ライン７０５上の受信された受信機に関連する情報（β）は、ＦＥＣ復号化を実行してＦＥＣ復号化の後の不確かさを解決する受信機の能力を示す情報を含む。
【００７７】
ＦＥＣエンコーダ７０３が、受信機がＦＥＣ復号化の後の不確かさを解決する能力を有しているかどうかを判定すると、ＦＥＣエンコーダ７０３は、受信機の能力に合わせて最適化されたＦＥＣスキームを選択することができる。
【００７８】
好ましい実施形態を参照して、本発明を詳細に図示し説明したが、添付の特許請求の範囲により定められる本発明の範囲から逸脱することなく、形態及び詳細に様々な変形を施すことができることが当業者には理解されよう。
【００７９】
上述した好ましい実施形態において、ＦＥＣデータが使用される。代替実施形態では、訂正データにより、受信機において訂正データを用いて、損失パケットのデータ・ストリーム・ユニットを回復させることができる場合には、ＦＥＣデータの代わりに、他のタイプの訂正データが使用されてもよい。
【００８０】
上記の例は、ビットＸＯＲ合成の場合に候補ビット値のスペースがどのように形成されるかを例示している。同様に、候補ビット・ストリームは、他の合成方法で形成される。例えば、ガロア域ＧＦ（２８）の場合、候補ビット・ストリームはバイトごとに形成される。
【００８１】
上記の例は、２つのオリジナル・パケットの合成を表す１つのＦＥＣパケットにおける残存する不確かさを例示している。同様に、より多い数のＦＥＣパケット、及びＦＥＣパケットに合成されるより多い数のオリジナル・パケットについて、不確かさを一緒に解決することができる。
【００８２】
本発明の第１の実施形態に従うと、受信機において符号化データ・ビットを処理する方法であって、符号化データ・ビットは、送信機から、ネットワーク上に確立された損失通信チャネルを介して、受信機に送信される、方法が提供される。この方法は、損失通信チャネルを介して、符号化データ・ビットを受信する受信ステップであって、符号化データ・ビットは、冗長データ・ユニットを含む、受信ステップと、エラー訂正デコーダにおいて、符号化データ・ビットを復号化する復号化ステップであって、損失データの回復は、冗長データ・ユニットのうちの少なくとも１つを用いて、エラー訂正デコーダにおいて実施される、復号化ステップと、エラー訂正デコーダが少なくとも１つのデータ・ビットに関して複数の候補ビット値を見つけたことに起因して、少なくとも１つのデータ・ビットを回復させることができないかどうかを判定するステップと、ネットワークを介して、送信機に関連する情報を受信するステップと、送信機に関連する情報を用いて、少なくとも１つのデータ・ビットに関する複数の候補ビット値のうちの少なくとも１つを除外するために、複数の候補ビット値を解析する解析ステップと、解析に基づいて、少なくとも１つのデータ・ビットを解決するステップと、を含む。
【００８３】
送信機に関連する情報は、ネットワークを介して受信されてよい。
【００８４】
復号化ステップが、一連のデータ・ビットに対して動作し、各データ・ビットに関して複数の候補ビット値を見つけたときに、この方法は、シーケンスに関する最も可能性の高い候補ビット値を判定するために、送信機に関連する情報を用いて、シーケンス中の各ビットに対して複数の候補ビット値を解析するステップをさらに含んでよい。
【００８５】
好ましくは、送信機に関連する情報は、符号化される前のデータ・ビットのソースに関する情報；符号化データ・ビットを符号化するために使用された符号化プロセスに関する情報；符号化データ・ビットをパケット化するために使用されたパケット化プロセスに関する情報；及び符号化データ・ビットを生成する際に送信機が従う予め定められたルールに関する情報のうち少なくとも１つを含む。
【００８６】
解析ステップは、少なくとも１つのデータ・ビットに関する複数の候補ビット値のうちの１以上が後の復号化ステップの後に品質の劣化をもたらすかどうかを特定するステップを含んでよい。
【００８７】
好ましくは、解析ステップは、復号化された候補結果を生成するために、アプリケーション・デコーダを用いて候補ビット値を復号化し、送信機に関連する情報を用いて、復号化された候補結果に基づいて、無効な候補ビット値又は低確率候補ビット値を除外するステップを含む。
【００８８】
この方法は、アプリケーション・デコーダが、復号化データ・ビットを生成するために、回復されたデータ・ビット又は解決されたデータ・ビットを復号化するステップと、無効な復号化された候補結果又は低確率の復号化された候補結果を除外する際に使用するために、復号化データ・ビットを記憶するステップと、をさらに含んでよい。
【００８９】
この方法は、送信機に関連する情報を用いて候補ビット値を解決することができないときに、候補ビット値を復号化するために、候補ビット値をアプリケーション・デコーダに選択的に供給するステップをさらに含んでよい。
【００９０】
復号化された候補結果は、オリジナル・データ・ユニットのパラメータを表してよく、解析ステップは、パラメータ値の周辺確率分布及び異なるパラメータ値間の相関関係の知識のうち少なくとも１つに基づいて、パラメータに関する無効な値又は低確率値を表す復号化された候補結果を除外するステップを含んでよい。
【００９１】
エラー訂正デコーダは、順方向エラー訂正スキームを実施してよい。
【００９２】
受信機において受信される符号化データ・ビットは、システマチック訂正スキームに従ったオリジナル・データ・ユニットをさらに含んでよい。
【００９３】
受信機において受信される符号化データ・ビットが、システマチック訂正スキームに従ったオリジナル・データ・ユニットをさらに含む場合、符号化データ・ビットは、次の方法のうちの１つでオリジナル・データ・ユニットから生成された冗長データ・ユニットを含んでよい：ｉ）オリジナル・データ・ユニットの正確なコピーとして、ｉｉ）送信機において、オリジナル・データ・ユニットよりも低ビット・レートで符号化されたオリジナル・データ・ユニットのコピーとして、又はｉｉｉ）複数のオリジナル・データ・ユニットを結合することにより。
【００９４】
冗長データ・ユニットが、複数のオリジナル・データ・ユニットを結合することにより、オリジナル・データ・ユニットから生成される場合、オリジナル・データ・ユニットは、ビットＸＯＲ演算を用いてビットごとに結合されてもよいし、ガロア域ＧＦ（２８）算術を用いてバイトごとに結合されてもよい。
【００９５】
受信機において受信される冗長データ・ユニットは、オリジナル・データと、非システマチック訂正スキームに従った冗長データとを表してよい。
【００９６】
ネットワークは、パケットベースのネットワークであってよい。
【００９７】
本発明の第２の実施形態に従うと、符号化データ・ビットを処理する受信機であって、符号化データ・ビットは、送信機から、ネットワーク上に確立された損失通信チャネルを介して、受信機に送信される、受信機が提供される。この受信機は、損失通信チャネルを介して、符号化データ・ビットを受信する第１の受信手段であって、符号化データ・ビットは、冗長データ・ユニットを含む、第１の受信手段と、符号化データ・ビットを復号化するエラー訂正デコーダであって、損失データの回復は、冗長データ・ユニットのうちの少なくとも１つを用いて、エラー訂正デコーダにおいて実施される、エラー訂正デコーダと、エラー訂正デコーダが少なくとも１つのデータ・ビットに関して複数の候補ビット値を見つけたことに起因して、少なくとも１つのデータ・ビットを回復させることができないかどうかを判定する判定手段と、送信機に関連する情報を受信する第２の受信手段と、送信機に関連する情報を用いて、少なくとも１つのデータ・ビットに関する複数の候補ビット値のうちの少なくとも１つを除外するために、複数の候補ビット値を解析する解析手段と、解析に基づいて、少なくとも１つのデータ・ビットを解決する解決手段と、を備える。
【００９８】
この受信機は、復号化結果を生成するために、回復されたデータ・ビット又は解決されたデータ・ビットを復号化するよう構成され、且つ解析手段及び回復手段により使用される復号化された候補結果を生成するために候補ビット値を復号化するよう選択的に動作可能なアプリケーション・デコーダをさらに備えてよい。
【００９９】
この受信機は、候補ビット値をアプリケーション・デコーダに供給するスイッチ手段をさらに備えてよい。
【０１００】
アプリケーション・デコーダは、音声デコーダ又はビデオ・デコーダであってよい。
【０１０１】
本発明の第３の実施形態に従うと、受信機において符号化データ・ビットを処理する方法であって、符号化データ・ビットは、送信機から、ネットワーク上に確立された損失通信チャネルを介して、受信機に送信される、方法が提供される。この方法は、損失通信チャネルを介して、符号化データ・ビットを受信する受信ステップであって、符号化データ・ビットは、パケット及び冗長データ・ユニットに含まれる、受信ステップと、エラー訂正デコーダにおいて、符号化データ・ビットを復号化する復号化ステップであって、損失パケットの回復は、冗長データ・ユニットのうちの少なくとも１つと、少なくとも１つの他のパケットとを用いて、エラー訂正デコーダにおいて実施される、復号化ステップと、エラー訂正デコーダが損失パケット内の少なくとも１つのデータ・ビットに関して複数の候補ビット値を見つけたことに起因して、少なくとも１つの損失パケットを回復させることができないかどうかを判定するステップと、通信チャネルを介して、送信機に関連する情報を受信するステップと、送信機に関連する情報を用いて、少なくとも１つのデータ・ビットに関する複数の候補ビット値のうちの少なくとも１つを除外するために、複数の候補ビット値を解析するステップと、解析に基づいて、少なくとも１つの損失パケットの１以上のデータ・ビットを解決するステップと、を含む。
【０１０２】
本発明の第４の実施形態に従うと、送信機からネットワーク上に確立された損失通信チャネルを介して受信機に送信するための、送信機においてデータ・ビットを処理する方法が提供される。この方法は、エラー訂正エンコーダにおいて、ソース・エンコーダからデータ・ビットを受信するステップと、エラー訂正エンコーダにおいて、符号化データ・ビットを出力するために、データ・ビットを符号化する符号化ステップであって、符号化データ・ビットは、パケットと、訂正スキームに従った冗長データ・ユニットとに含まれる、符号化ステップと、エラー訂正エンコーダにおいて、受信機に関連する情報を受信する受信ステップであって、受信機に関連する情報は、受信機が符号化データ・ビットを復号化するためのエラー訂正デコーダを有するというインジケーションを含み、損失データの回復は、冗長データ・ユニットのうちの少なくとも１つを用いて、エラー訂正デコーダにおいて実施され、受信機は、エラー訂正デコーダが少なくとも１つのデータ・ビットに関して複数の候補ビット値を見つけたことに起因して、少なくとも１つのデータ・ビットを回復させることができないかどうかを判定し；送信機に関連する情報を受信し；送信機に関連する情報を用いて、少なくとも１つのデータ・ビットに関する複数の候補ビット値のうちの少なくとも１つを除外するために、複数の候補ビット値を解析し；解析に基づいて、少なくとも１つのデータ・ビットを解決するよう構成されており、エラー訂正エンコーダにより使用される訂正スキームは、受信機に関連する情報に基づいて最適化される、受信ステップと、を含む。
【０１０３】
本発明の第５の実施形態に従うと、送信機からネットワーク上に確立された損失通信チャネルを介して受信機に送信するための、データ・ビットを処理する送信機が提供される。この送信機は、ソース・エンコーダからデータ・ビットを受信し、符号化データ・ビットを出力するよう構成されたエラー訂正エンコーダであって、符号化データ・ビットは、パケットと、訂正スキームに従った冗長データ・ユニットとに含まれる、エラー訂正エンコーダを備え、エラー訂正エンコーダは、受信機に関連する情報を受信する受信手段であって、受信機に関連する情報は、受信機が符号化データ・ビットを復号化するためのエラー訂正デコーダを有するというインジケーションを含み、損失データの回復は、冗長データ・ユニットのうちの少なくとも１つを用いて、エラー訂正デコーダにおいて実施され、受信機は、エラー訂正デコーダが少なくとも１つのデータ・ビットに関して複数の候補ビット値を見つけたことに起因して、少なくとも１つのデータ・ビットを回復させることができないかどうかを判定し；送信機に関連する情報を受信し；送信機に関連する情報を用いて、少なくとも１つのデータ・ビットに関する複数の候補ビット値のうちの少なくとも１つを除外するために、複数の候補ビット値を解析し；解析に基づいて、少なくとも１つのデータ・ビットを解決するよう構成されており、エラー訂正エンコーダにより使用される訂正スキームは、受信機に関連する情報に基づいて最適化される、受信手段を有する。
【０１０４】
本発明の第６の実施形態に従うと、本明細書において上述した受信機及び送信機を備えた通信システムが提供される。
【図１ａ】
0006305398.tif 000005
【図１ｂ】
0006305398.tif 000006
【図１ｃ】
0006305398.tif 000007
【図２】
0006305398.tif 000008
【図３】
0006305398.tif 000009
【図４】
0006305398.tif 000010
【図５】
0006305398.tif 000011
【図６】
0006305398.tif 000012
【図７】
0006305398.tif 000013