(57)【要約】      （修正有）【課題】ＦＥＣ（順方向誤り訂正）復号を効率的に実行する方法を提供する。【解決手段】ソースシンボルにｍ個の個々のオブジェクトをマッピングする際、ｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートする。順方向誤り訂正符号化のためにアグリゲートオブジェクトをＺ個のソースブロックへと分割する。分割に際し、Ｚ個のソースブロックの第１のソースブロック内の各個々のオブジェクトｊのソースシンボルの第１の数ＮＳＳ（ｊ，ｋ）を計算することと、Ｚ個のソースブロックの第２のソースブロック内の各個々のオブジェクトｊのソースシンボルの第２の数ＮＳＳ（ｊ，ｋ）を計算すること、を含む。ここで、各個々のオブジェクトｊについてのＳ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まりＮＳＳ（ｊ，ｋ）＞０の最後のソースブロックまでの、連続ソースブロックｋ内で連続的に並べられる。【選択図】図２
2015084540.tif 000002
【特許請求の範囲】
【請求項１】
通信システムにおいて送信機から受信機へとデータを送信するために、ソースシンボルにｍ個の個々のオブジェクトをマッピングする方法であって、該ｍ個の個々のオブジェクトは、オブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、該方法は、
該ｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートすることであって、ｊ＝１からｍについての各個々のオブジェクトｊについて、該個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することを含む、アグリゲートすることと、そして
該アグリゲートオブジェクトをＺ個のソースブロックへと分割することであって、ｋ＝０からＺ−１についての各ソースブロックｋについて、および、ｊ＝１からｍについての各個々のオブジェクトｊについて、ソースブロックｋ内の個々のオブジェクトｊのソースシンボルの数ＮＳＳ（ｊ，ｋ）を計算することを含む、分割することと、
を備え、
ここで、各個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まりＮＳＳ（ｊ，ｋ）＞０についての最後のソースブロックまでの、連続ソースブロック内で連続的に並べられる、方法。
【請求項２】
各個々のオブジェクトｊのデータのバイトは、ソースシンボル０から始まりソースシンボルＳ（ｊ）−１まである、該個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボル内で連続的に並べられる、請求項１に記載の方法。
【請求項３】
該ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドすること、をさらに備える請求項１に記載の方法。
【請求項４】
該アグリゲートオブジェクトをＺ個のソースブロックへと分割することは、１〜ｍまでの各整数ｊについて、最初のｊ個の個々のオブジェクトにおいてソースシンボルのアグリゲート数ＳＳ（ｊ）を計算することをさらに含み、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の合計である、請求項１に記載の方法。
【請求項５】
リペアシンボルを生成するために該アグリゲートオブジェクトの該Ｚ個のソースブロックを符号化すること、をさらに備える請求項１に記載の方法。
【請求項６】
該ソースシンボルをソースパケットにマッピングし、該リペアシンボルをリペアパケットにマッピングすること、をさらに備える請求項５に記載の方法。
【請求項７】
該受信機に該リペアパケットと該ソースパケットのうちの１つまたは複数を送信すること、をさらに備える請求項６に記載の方法。
【請求項８】
通信システムにおいて送信機から受信機へと送信されるデータについてのソースシンボルにマッピングされた個々のオブジェクトを復元するための方法であって、該個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは、１つまたは複数のソースブロックに分割され、該個々のオブジェクトの該ソースシンボルは、該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられており、該方法は、
データの１つまたは複数のパケットを受信することと、データの各パケットは、該個々のオブジェクトの少なくとも１つのソースシンボル、または該アグリゲートオブジェクトの該ソースブロックのうちの１つについてのリペアデータを含んでいる少なくとも１つのリペアシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも１つのソースシンボルを含み、および
データの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元することと、
を備える、
方法。
【請求項９】
該個々のオブジェクトを復元することは、該個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルとデータの該１つまたは複数の受信されたパケットを使用して、該個々のオブジェクトを復元することをさらに備える、請求項８に記載の方法。
【請求項１０】
通信システムにおいて受信機へデータを送信するために、ソースシンボルにｍ個の個々のオブジェクトをマッピングするように構成された装置であって、該ｍ個の個々のオブジェクトは、オブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、該装置は、
該ｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートし、該アグリゲートオブジェクトをＺ個のソースブロックへと分割するように構成されたプロセッサであって、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、該個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することと、ｋ＝０〜Ｚ−１についての各ソースブロックｋについて、および、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、ソースブロックｋにおける個々のオブジェクトｊのソースシンボルの数ＮＳＳ（ｊ，ｋ）を計算することとを含む、アグリゲートし分割するように構成されたプロセッサ、
を備え、
ここで、各個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まりＮＳＳ（ｊ，ｋ）＞０についての最後のソースブロックまでである、連続ソースブロック内で連続的に並べられる、装置。
【請求項１１】
各個々のオブジェクトｊのデータのバイトは、ソースシンボル０から始まりソースシンボルＳ（ｊ）−１まで、該個々のオブジェクトｊについて、該Ｓ（ｊ）ソースシンボル内で連続的に並べられる、請求項１０に記載の装置。
【請求項１２】
該プロセッサは、該ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドするようにさらに構成される、請求項１０に記載の装置。
【請求項１３】
該プロセッサは、最初のｊ個の個々のオブジェクトにおいてソースシンボルのアグリゲート数ＳＳ（ｊ）を計算するようにさらに構成され、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の合計である、請求項１０に記載の装置。
【請求項１４】
該プロセッサに通信的に結合され、リペアシンボルを生成するために該アグリゲートオブジェクトの該Ｚ個のソースブロックを符号化するように構成された符号器、をさらに備える請求項１０に記載の装置。
【請求項１５】
該プロセッサは、該ソースシンボルをソースパケットにマッピングし、該リペアシンボルをリペアパケットにマッピングするようにさらに構成される、請求項１４に記載の装置。
【請求項１６】
該受信機に該リペアパケットと該ソースパケットのうちの１つまたは複数を送信するように構成された送信機、をさらに備える請求項１５に記載の装置。
【請求項１７】
通信システムにおいて送信機から送信されたデータについてソースシンボルにマッピングされた個々のオブジェクトを復元するように構成された装置であって、該個々のオブジェクトは、アグリゲートオブジェクト内に他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは１つまたは複数のソースブロックに分割され、該個々のオブジェクトの該ソースシンボルは、該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられており、該装置は、
データの１つまたは複数のパケットを受信するように構成された受信機と、データの各パケットは、該アグリゲートオブジェクトの該ソースブロックのうちの１つについてのリペアデータを含んでいる少なくとも１つのリペアシンボルまたは該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも１つのソースシンボルを含み、
該受信機に通信的に結合され、データの該１つまたは複数の受信されたパケットを使用して、該個々のオブジェクトを復元するように構成されたプロセッサと、
を備える、装置。
【請求項１８】
該プロセッサは、該個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルと、データの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元するようにさらに構成される、請求項１７に記載の装置。
【請求項１９】
通信システムにおいて送信機から受信機へとデータを送信するために、ソースシンボルにｍ個の個々のオブジェクトをマッピングするためのコンピュータプログラムプロダクトであって、該ｍ個の個々のオブジェクトは、オブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、該プロダクトは、
プロセッサに、
該ｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートさせることであって、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、該個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することを含む、アグリゲートさせることと、
該アグリゲートオブジェクトをＺ個のソースブロックへと分割させることであって、ｋ＝０〜Ｚ−１についての各ソースブロックｋについて、および、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、ソースブロックｋにおける個々のオブジェクトｊのソースシンボルの数ＮＳＳ（ｊ，ｋ）を計算することを含む、分割させることと、
を実行するように構成されたプロセッサ可読命令を格納するプロセッサ可読媒体を具備し、
ここで、各個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まりＮＳＳ（ｊ，ｋ）＞０についての最後のソースブロックまである、連続ソースブロック内で連続的に並べられる、コンピュータプログラムプロダクト。
【請求項２０】
該プロセッサ可読媒体は、該プロセッサに、ソースシンボル０から始まりソースシンボルＳ（ｊ）−１まで、該個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボル内で各個々のオブジェクトｊのデータのバイトを連続的に並べさせることを実行するようにさらに構成される、請求項１９に記載のプロダクト。
【請求項２１】
該プロセッサ可読媒体は、該プロセッサに、該ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドさせることを実行するようにさらに構成される、請求項１９に記載のプロダクト。
【請求項２２】
該プロセッサ可読媒体は、該プロセッサに、１〜ｍまでの各整数ｊについて、最初のｊ個の個々のオブジェクトにおいてソースシンボルのアグリゲート数ＳＳ（ｊ）を計算させることを実行するようにさらに構成され、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の合計である、請求項１９に記載のプロダクト。
【請求項２３】
該プロセッサ可読媒体は、該プロセッサに、リペアシンボルを生成するために該アグリゲートオブジェクトの該Ｚ個のソースブロックを符号化させることを実行するようにさらに構成される、請求項１９に記載のプロダクト。
【請求項２４】
該プロセッサ可読媒体は、該プロセッサに、該ソースシンボルをソースパケットにマッピングさせ、該リペアシンボルをリペアパケットにマッピングさせることを実行するようにさらに構成される、請求項２３に記載のプロダクト。
【請求項２５】
該プロセッサ可読媒体は、該プロセッサに、該受信機に該リペアパケットと該ソースパケットのうちの１つまたは複数を送信させることを実行するようにさらに構成される、請求項２４に記載のプロダクト。
【請求項２６】
通信システムにおいて送信機から受信機へと送信されたデータについてソースシンボルにマッピングされた個々のオブジェクトを復元するためのコンピュータプログラムプロダクトであって、該個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは、１つまたは複数のソースブロックに分割され、該個々のオブジェクトの該ソースシンボルは、該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられており、該プロダクトは、
プロセッサに、
データの１つまたは複数のパケットを受信させることと、データの各パケットは、該アグリゲートオブジェクトの該ソースブロックのうちの１つについてのリペアデータを含んでいる少なくとも１つのリペアシンボルまたは該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも１つのソースシンボルを含み、
データの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元させることと、
を実行するように構成されたプロセッサ可読命令を格納するプロセッサ可読媒体を備える、コンピュータプログラムプロダクト。
【請求項２７】
該プロセッサ可読媒体は、該プロセッサに、該個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルと、データの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元させることを実行するようにさらに構成される、請求項２６に記載のプロダクト。
【請求項２８】
通信システムにおいて送信機から受信機へとデータを送信するために、ｍ個の個々のオブジェクトをソースシンボルにマッピングするように構成されたシステムであって、該ｍ個の個々のオブジェクトは、オブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、該システムは、
該ｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートするための手段であって、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、該個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することを含む、アグリゲートするための手段と、
該アグリゲートオブジェクトをＺ個のソースブロックへと分割するための手段であって、ｋ＝０〜Ｚ−１についての各ソースブロックｋについて、および、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、ソースブロックｋにおける個々のオブジェクトｊのソースシンボルの数ＮＳＳ（ｊ，ｋ）を計算することを含む、分割するための手段と、
を備え、
ここで、各個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まりＮＳＳ（ｊ，ｋ）＞０についての最後のソースブロックまでである、連続ソースブロック内で連続的に並べられる、システム。
【請求項２９】
各個々のオブジェクトｊのデータのバイトは、ソースシンボル０から始まりソースシンボルＳ（ｊ）−１まである、該個々のオブジェクトｊについて該Ｓ（ｊ）ソースシンボル内で連続的に並べられる、請求項２８に記載のシステム。
【請求項３０】
該ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドするための手段、をさらに備える請求項２８に記載のシステム。
【請求項３１】
該アグリゲートオブジェクトをＺ個のソースブロックへと分割するための手段は、１〜ｍまでの各整数ｊについて、最初のｊ個の個々のオブジェクトにおいてソースシンボルのアグリゲート数ＳＳ（ｊ）を計算するための手段、をさらに含み、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の合計である、請求項２８に記載のシステム。
【請求項３２】
リペアシンボルを生成するために該アグリゲートオブジェクトの該Ｚ個のソースブロックを符号化するための手段、をさらに備える請求項２８に記載のシステム。
【請求項３３】
該ソースシンボルをソースパケットにマッピングし、該リペアシンボルをリペアパケットにマッピングするための手段、をさらに備える請求項３２に記載のシステム。
【請求項３４】
該受信機に該リペアパケットと該ソースパケットのうちの１つまたは複数を送信するための手段、をさらに備える請求項３３に記載のシステム。
【請求項３５】
通信システムにおいて送信機から受信機へと送信されたデータについてソースシンボルにマッピングされた個々のオブジェクトを復元するように構成されたシステムであって、該個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは、１つまたは複数のソースブロックに分割され、該個々のオブジェクトの該ソースシンボルは、該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられており、該システムは、
データの１つまたは複数のパケットを受信するための手段と、データの各パケットは、該アグリゲートオブジェクトの該ソースブロックのうちの１つについてのリペアデータを含んでいる少なくとも１つのリペアシンボルまたは該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも１つのソースシンボルを含み、
データの該１つまたは複数の受信されたパケットを使用して、該個々のオブジェクトを復元するための手段と、
を備える、システム。
【請求項３６】
該個々のオブジェクトを復元するための手段は、該個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルとデータの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元するための手段、をさらに含む、請求項３５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
[関連出願]
下記の参考文献は、ここに含まれ、すべての目的のために参照により組み込まれる:米国特許第７，４１８，６５１号の「File Download and Streaming System」Ｌｕｂｙその他著（以降、「Ｌｕｂｙ Ｉ」と記す)。
【背景技術】
【０００２】
[背景]
通信チャネル上での送信者と受信者との間のストリームおよびファイルの送信が多くの文献の主題となっている。できれば、受信者は、ある程度の確実性を伴って、送信者によってチャネル上で送信されたデータの正確な複製を受信することを望む。チャネルが完全な忠実性(fidelity)を有していない(ほぼすべての物理的に実現可能なシステムをカバーする)場合、一つの関心事は、送信中に文字化けしたまたは損失したデータをどのように処理するかということである。損失したデータ(イレージャ(erasure))はしばしば、破損したデータ(誤り(error))よりも処理することが容易である。なぜならば、受信者は、破損したデータが誤りで受信されたデータであることを常に区別できないからである。多くの誤り訂正符号は、イレージャおよび/または誤りを訂正するために開発されている。一般的には、使用される特定の符号は、データが送信されデータの本質が送信されるチャネルの非忠実性についてのある情報に基づいて選ばれる。例えば、チャネルが長い期間非忠実であると知られている場合、バースト誤り符号は、そのアプリケーションに最良に適用される可能性がある。短い期間のみである場合には、低頻度の誤りが予期され、単純なパリティ符号が最良である可能性がある。
【０００３】
データ送信は、送信機と受信機が通信に必要とされる電力(electrical power)および計算能力のすべてを有し、送信機と受信機との間のチャネルが相対的に誤りのない通信を可能にするのに十分クリーンである場合、容易である。データ送信の問題は、チャネルが悪環境にある、または、送信機および/または受信機が制限された機能を有する場合、より困難になる。
【０００４】
１つの解法は、順方向誤り訂正（ＦＥＣ;forward error correcting）技法の使用であり、ここでは、データは、受信機が送信イレージャおよび誤りから復元することができるように送信機にて符号化される。実行可能である場合には、受信機から送信機への逆方向チャネルは、受信機が誤りについて送信機へ通信することを可能にし、そのあとで、それに応じてその送信プロセスを調整することができる。しかしながら、しばしば、逆方向チャネルは、利用可能ではない、または、実行可能ではない。例えば、送信機が多数の受信機に送信する場合には、送信機は、それらすべての受信機からの逆方向チャネルを扱うことが出来ない可能性がある。結果、通信プロトコルはしばしば、逆方向チャネルなしに設計される必要がある、そのため、送信機は、これらのチャネル状態をすべて見ることなく、さまざまなチャネル状態を扱う必要がある場合がある。
【０００５】
送信機と受信機との間のデータ送信の問題は、受信機が低電力な小型デバイス(ポータブルまたはモバイルでありうる)である必要があり、高帯域幅でデータを受信する必要があるとき、より困難となる。例えば、無線ネットワークは、固定された送信機から、多数または不定数のポータブルまたはモバイル受信機へと、ブロードキャストまたはマルチキャストとして、ファイルまたはストリームを送るように設定されることがあり、なお、受信機は、それらの計算能力、メモリサイズ、利用可能な電力、アンテナサイズ、デバイスサイズ、および他の設計の制約において制約される。
【０００６】
このようなシステムでは、取り組まれるべき考慮事項は、逆方向チャネルが少ないまたは逆方向チャネルがない、制限されたメモリ、制限されたコンピューティングサイクル、モビリティ、およびタイミングを有することを含む。望ましくは、本設計は、潜在的に多数の受信機にデータを送るのに必要とされる送信時間の量を最小化すべきである、なお、個々の受信機は、予測不可能な時間にオンおよびオフにされ、範囲の内外を移動し、リンクエラー、セル変更、優先度の低いファイルまたはストリームパケットが一時的にドロップさせられるセル内の輻輳、等によって損失を被る可能性がある。
【０００７】
データ移送に使用されるパケットプロトコルの場合、ファイル、ストリーム、またはパケットネットワーク上で送信されるべきデータの他のブロックは、等しいサイズの入力シンボルに分割され、入力シンボルは、連続するパケットへと配置される。入力シンボルがビットストリームに実際分けられるにせよ、入力シンボルの「サイズ」はビットで測定されることができ、なお、入力シンボルが２Ｍシンボルのアルファベットから選択されるとき、入力シンボルはＭビットのサイズを有する。このようなパケットベースの通信システムでは、パケット指向性の符号化スキーム(packet oriented coding scheme)が適切である場合がある。ネットワーク内でイレージャに直面したとしてもオリジナルファイルの正確な複製を対象とされた受信者が復元することを可能にする場合、ファイル送信は信頼性があると呼ばれる。ネットワーク内でイレージャに直面したとしてもタイムリーにストリームの各部分の正確な複製を対象とされた受信者が復元することを可能にする場合、ストリーム送信は信頼性があると呼ばれる。ファイル送信且つストリーム送信はまた、ファイルまたはストリームのある部分が復元不可能であるという点において、または、ストリーミングについては、ストリームのある部分がタイムリーに復元可能でない場合、いくぶん信頼性があることができる。パケット損失がしばしば生じる。なぜならば、散発性輻輳(sporadic congestion)は、そのキャパシティに到達するためにルータにおいてバッファリングメカニズムを引き起こし、それに、入ってくるパケットをドロップするように強要する。移送中のイレージャに対する保護は、多くの研究の主題となっている。
【０００８】
ファイルまたはストリームの入力シンボルからの任意の数の出力シンボルの生成を可能にする連鎖反応符号を使用することが知られている。これは、情報重複方法(information duplicative way)とは対照的に、情報付加方法(information additive way)での、出力シンボルの生成を含む多くの用途を有し、後者では、受信機は、受信機がすでに知っているデータを重複する追加データ(additional data)を受信する。連鎖反応符号を生成し、使用し、動作するための新規の技法は、例えば、米国特許第６，３０７，４８７号の「Information Additive Code Generator and Decoder for Communication Systems」,Ｌｕｂｙ著(「ＬｕｂｙＩＩ」)、米国特許第６，３２０，５２０号の「Information Additive Group Code Generator and Decoder for Communication Systems」，Ｌｕｂｙその他著(以降「ＬｕｂｙＩＩＩ」)、米国特許第７，０６８，７２９号の「Multi-Stage Code Generator and Decoder for Communication Systems」，Ｓｈｏｋｒｏｌｌａｈｉその他著（以降「Ｓｈｏｋｒｏｌｌａｈｉ」）において示されている。認められる範囲で、これらの全開示は、すべての目的のために参照することによってここに組み込まれている。
【０００９】
連鎖反応符号器によって生成された出力シンボルの１つのプロパティ(property)は、十分な出力シンボルが受信されるとすぐに、オリジナルストリームのオリジナルファイルまたはブロックを、受信機が復元することができるということである。特に、高い確率を伴うオリジナルＫ個の入力シンボルを復元するために、受信機は、約Ｋ＋Ａ個の出力シンボルを必要とする。Ａ／Ｋという比は、「相対受信オーバーヘッド（relative reception overhead）」と呼ばれる。相対受信オーバーヘッドは、入力シンボルの数Ｋ、そして、復号器の信頼性に依存する。例えば、一つの特定の実施形態では、Ｋは、６０，０００と等しく、相対受信オーバーヘッド５％は、少なくとも１−１０−８の確率で、復号器がストリームの入力ファイルまたはブロックを成功裡に復号し、Ｋは、１０，０００と等しく、相対受信オーバーヘッド１５％は、復号器の同じ成功確率を確実にする。一実施形態では、連鎖反応符号の相対受信オーバーヘッドは、（１３＊ｓｑｒｔ（Ｋ）＋２００）／Ｋと計算されることができ、ｓｑｒｔ（Ｋ）は、入力シンボルの数Ｋの平方根である。この実施形態では、連鎖反応符号の相対受信オーバーヘッドは、小さな値Ｋに対し、大きい傾向がある。
【００１０】
ＬｕｂｙＩＩ、ＬｕｂｙＩＩＩおよびＳｈｏｋｒｏｌｌａｈｉは、本開示で説明されるある実施形態で利用されることができるシステムおよび方法の教示を提供する。しかしながら、ＬｕｂｙＩＩ、ＬｕｂｙＩＩＩおよびＳｈｏｋｒｏｌｌａｈｉのシステムおよび方法は、本開示で説明された装置、システム、および方法に必要とされておらず、多くの他の変更、変形または代替もまた使用されることができるということが理解されるべきである。
【００１１】
商標名「Ｒａｐｔｏｒ」符号の下で、デジタルファウンテン社によって開発され、Ｓｈｏｋｒｏｌｌａｈｉで説明されているような、マルチステージ連鎖反応（「ＭＳＣＲ」）符号を使用することもまた知られている。マルチステージ連鎖反応符号は、例えば、ソースファイルまたはソースストリームから入力シンボルを受信し、そこから中間シンボルを生成し、連鎖反応符号を使用して中間シンボルを符号化する、符号器において使用される。より具体的には、複数の冗長シンボルは、送信されるべき、入力シンボルの順序づけられたセット(an ordered set of input symbols)から生成される。複数の出力シンボルは、入力シンボルと冗長シンボルを含むシンボルの結合されたセットから生成され、起こりうる出力シンボルの数は、シンボルの結合されたセットにおけるシンボルの数よりずっと多く、少なくとも１つの出力シンボルは、シンボルの結合されたセットにおける１より多いシンボルから、シンボルの結合されたセットにおけるシンボルすべて未満から、生成されるので、入力シンボルの順序づけられたセットは、出力シンボルの任意の所定数Ｎから所望の精度に再生成されることができる。
【００１２】
いくつかのアプリケーションに対して、符号の他の変形はより適切であり、または、そうでない場合には、好まれる。
【００１３】
ブロードキャスト、マルチキャスト、または他の設定において複数のオブジェクト（例、ファイル）を送ることにおいて、複数の小さいオブジェクトを１つの大きなオブジェクトにバンドルし、そのあとで、送信のために個々の小さいオブジェクトにＦＥＣ符号化を適用することよりも、送信のために大きなオブジェクトにわたってＦＥＣ符号化を適用すること、がしばしばより有効である。しかしながら、ＦＥＣ復号について受信機において利用可能なメモリ量に対してしばしば制約があり、このことはしばしば、ＦＥＣ復号が効率的に実行されることができるソースブロック(source block)のサイズに対し上限を課す。
【発明の概要】
【００１４】
通信システムにおいて送信機から受信機へとデータを送信するためにソースシンボル(source symbol)にｍ個の個々のオブジェクトをマッピングする例示的な方法であって、ｍ個の個々のオブジェクトはオブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、本開示によれば、ｍ個の個々のオブジェクトをアグリゲートオブジェクト(aggregate object)にアグリゲートすることであって、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することを含む、アグリゲートすることと、アグリゲートオブジェクトをＺ個のソースブロックに分割することであって、ｋ＝０〜Ｚ−１についての各ソースブロックｋについて、および、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、ソースブロックｋにおける個々のオブジェクトｊのソースシンボルの数ＮＳＳ（ｊ，ｋ）を計算することを含む、分割することと、を含み、ここで、各個々のオブジェクトｊについてのＳ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まりＮＳＳ（ｊ，ｋ）＞０の最後のソースブロックまである、連続ソースブロック内で連続的に並べられる。
【００１５】
このような方法の実施形態は、下記の特徴のうち１つまたは複数を含めうる。各個々のオブジェクトｊのデータのバイトは、ソースシンボル０から始まりソースシンボルＳ（ｊ）−１まである、個々のオブジェクトｊについてのＳ（ｊ）ソースシンボル内で連続的に並べられる。方法はさらに、ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドする(padding)ことを含む。アグリゲートオブジェクトをＺ個のソースブロックに分割することはさらに、１〜ｍまでの各整数ｊについて、最初のｊ個の個々のオブジェクトにおいてソースシンボルのアグリゲート数ＳＳ（ｊ）を計算することを含み、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の和である。方法はさらに、リペアシンボル(repair symbol)を生成するためにアグリゲートオブジェクトのＺ個のソースブロックを符号化すること、を含む。方法はさらに、ソースシンボルをソースパケットにマッピングし、リペアシンボルをリペアパケット(repair packet)にマッピングすることを含む。方法はさらに、受信機にリペアパケットとソースパケットのうちの１つまたは複数を送信すること、を含む。
【００１６】
通信システムにおける送信機から受信機へと送信されたデータについてのソースシンボルにマッピングされた個々のオブジェクトを復元する例示的な方法であって、個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、アグリゲートオブジェクトは、１つまたは複数のソースブロックに分割され、個々のオブジェクトのソースシンボルは、アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられ、データの１つまたは複数のパケットを受信することと、データの各パケットは、アグリゲートオブジェクトのソースブロックのうちの１つについてのリペアデータ(repair data)を含んでいる少なくとも１つのリペアシンボルまたは個々のオブジェクトの少なくとも１つのソースシンボルを含み、ソースブロックは、個々のオブジェクトの少なくとも１つのソースシンボルを含み、およびデータの１つまたは複数の受信されたパケットを使用して個々のオブジェクトを復元することとを備える。
【００１７】
このような方法の実施形態は、個々のオブジェクトを復元することが個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルおよびデータの１つまたは複数の受信されたパケットを使用して個々のオブジェクトを復元するという特徴を含めうる。
【００１８】
通信システムにおいて受信機にデータを送信するためにソースシンボルにｍ個の個々のオブジェクトをマッピングするように構成された装置であって、ｍ個の個々のオブジェクトはオブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、装置はｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートし、アグリゲートオブジェクトをＺ個のソースブロックに分割するように構成されたプロセッサであって、ｊ＝１〜ｍについての各個々のオブジェクトについて、個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することと、ｋ＝０〜Ｚ−１についての各ソースブロックｋについて、および、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、ソースブロックｋにおける個々のオブジェクトｊのソースシンボルの数ＮＳＳ（ｊ，ｋ）を計算することと、を含む、アグリゲートし分割するように構成されたプロセッサ、を含み、ここで、各個々のオブジェクトｊについてのＳ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０について最初のソースブロックから始まり、ＮＳＳ（ｊ，ｋ）＞０について最後のソースブロックまである、連続ソースブロック内で連続的に並べられる。
【００１９】
このような装置の実施形態は、下記の特徴のうち１つまたは複数を含めうる。各個々のオブジェクトｊのデータのバイトは、ソースシンボル０から始まり、ソースシンボルＳ（ｊ）−１まである、個々のオブジェクトｊについてのＳ（ｊ）ソースシンボル内で連続的に並べられる。プロセッサは、ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドするようにさらに構成される。プロセッサは、最初のｊ個の個々のオブジェクトにおけるソースシンボルのアグリゲート数ＳＳ（ｊ）を計算するようにさらに構成され、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の和である。本装置は、プロセッサに通信的に結合され、リペアシンボルを生成するためにアグリゲートオブジェクトのＺ個のソースブロックを符号化するように構成された符号器、をさらに含む。プロセッサは、ソースシンボルをソースパケットにマッピングし、リペアシンボルをリペアパケットにマッピングするようにさらに構成される。本装置は、受信機にリペアパケットとソースパケットのうちの１つまたは複数を送信するように構成された送信機、をさらに含む。
【００２０】
通信システムにおいて送信機から送信されたデータについてのソースシンボルにマッピングされた個々のオブジェクトを復元するように構成された装置であって、個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、アグリゲートオブジェクトは１つまたは複数のソースブロックに分割され、個々のオブジェクトのソースシンボルは、アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられ、データの１つまたは複数のパケットを受信するように構成された受信機と、データの各パケットは、アグリゲートオブジェクトのソースブロックのうちの１つについてのリペアデータを含んでいる少なくとも１つのリペアシンボルまたは個々のオブジェクトの少なくとも１つのソースシンボルを含み、ソースブロックは、個々のオブジェクトの少なくとも１つのソースシンボルを含み、および受信機に通信的に結合され、データの１つまたは複数の受信されたパケットを使用して、個々のオブジェクトを復元するように構成されたプロセッサとを含む。
【００２１】
このような装置の実施形態は、プロセッサが個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルと、データの１つまたは複数の受信されたパケットを使用して個々のオブジェクトを復元するようにさらに構成される、特徴を含めうる。
【００２２】
通信システムにおいて送信機から受信機へとデータを送信するためにソースシンボルにｍ個の個々のオブジェクトをマッピングするためのコンピュータプログラムプロダクトであって、ｍ個の個々のオブジェクトはオブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、コンピュータプログラムプロダクトは、プロセッサに、ｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートさせることであって、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することを含む、アグリゲートさせることと、アグリゲートオブジェクトをＺ個のソースブロックに分割させることであって、ｋ＝０〜Ｚ−１についての各ソースブロックｋについて、および、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、ソースブロックｋにおける個々のオブジェクトｊのソースシンボルの数ＮＳＳ（ｊ，ｋ）を計算することを含む、分割させることと、を実行するように構成されたプロセッサ可読命令を格納するプロセッサ可読媒体を具備し、ここで、各個々のオブジェクトｊについてのＳ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まり、ＮＳＳ（ｊ，ｋ）＞０についての最後のソースブロックまである、連続ソースブロック内で連続的に並べられる。
【００２３】
このようなプロダクトの実施形態は、下記の特徴のうち１つまたは複数を含めうる。プロセッサ可読媒体は、プロセッサに、ソースシンボル０から始まり、ソースシンボルＳ（ｊ）−１まである、個々のオブジェクトｊについてのＳ（ｊ）ソースシンボル内の各個々のオブジェクトｊのデータのバイトを連続的に並べさせることを実行するようにさらに構成される。プロセッサ可読媒体は、プロセッサに、ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドさせることを実行するようにさらに構成される。プロセッサ可読媒体は、プロセッサに、１〜ｍまでの各整数ｊについて、最初のｊ個の個々のオブジェクト内でソースシンボルのアグリゲート数ＳＳ（ｊ）を計算させることを実行するようにさらに構成され、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の和である。プロセッサ可読媒体はさらに、プロセッサに、アグリゲートオブジェクトのＺ個のソースブロックを符号化しリペアシンボルを生成させることを実行するようにさらに構成される。プロセッサ可読媒体は、プロセッサに、ソースシンボルをソースパケットにマッピングさせ、リペアシンボルをリペアパケットにマッピングさせることを実行するようにさらに構成される。プロセッサ可読媒体は、プロセッサに、受信機にリペアパケットとソースパケットのうちの１つまたは複数を送信させることを実行するようにさらに構成される。
【００２４】
通信システムにおいて送信機から受信機へと送信されるデータについてのソースシンボルにマッピングされた個々のオブジェクトを復元するためのコンピュータプログラムプロダクトであって、個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、アグリゲートオブジェクトは、１つまたは複数のソースブロックに分割され、個々のオブジェクトのソースシンボルは、アグリゲートオブジェクトの連続ソースブロック内で連続的に配置され、プロセッサに、データの１つまたは複数のパケットを受信させることと、データの各パケットは、アグリゲートオブジェクトのソースブロックのうちの１つについてのリペアデータを含んでいる少なくとも１つのリペアシンボルまたは個々のオブジェクトの少なくとも１つのソースシンボルを含み、ソースブロックは、個々のオブジェクトの少なくとも１つのソースシンボルを含み、データの１つまたは複数の受信されたパケットを使用して個々のオブジェクトを復元させること、を実行するように構成されたプロセッサ可読命令を格納するプロセッサ可読媒体を含む。
【００２５】
このようなプロダクトの実施形態は、プロセッサ可読媒体が、プロセッサに、個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルおよびデータの１つまたは複数の受信されたパケットを使用して個々のオブジェクトを復元させることを実行するようにさらに構成される、という特徴を含めうる。
【００２６】
通信システムにおいて送信機から受信機へとデータを送信するためにｍ個の個々のオブジェクトをソースシンボルにマッピングするように構成されたシステムであって、ｍ個の個々のオブジェクトはオブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、システムはｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートするための手段であって、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することを含む、アグリゲートするための手段と、アグリゲートオブジェクトをＺ個のソースブロックに分割するための手段であって、ｋ＝０〜Ｚ−１についての各ソースブロックｋについて、および、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、ソースブロックｋにおける個々のオブジェクトｊのソースシンボルの数ＮＳＳ（ｊ，ｋ）を計算することを含む、分割するための手段と、を含み、ここで、各個々のオブジェクトｊについてのＳ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まり、ＮＳＳ（ｊ，ｋ）＞０についての最後のソースブロックまである、連続ソースブロック内で連続的に並べられる。
【００２７】
このようなシステムの実施形態は、下記の特徴のうち１つまたは複数を含めうる。各個々のオブジェクトｊのデータのバイトは、ソースシンボル０から始まり、ソースシンボルＳ（ｊ）−１まである、個々のオブジェクトｊについてのＳ（ｊ）ソースシンボル内で連続的に並べられる。システムはさらに、ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドするための手段を含む。アグリゲートオブジェクトをＺ個のソースブロックに分割するための手段は、１からｍまでの各整数ｊについて、最初のｊ個の個々のオブジェクトにおけるソースシンボルのアグリゲート数ＳＳ（ｊ）を計算するための手段をさらに含み、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１からｊまでのすべての整数ｉにわたるＳ（ｉ）の和である。システムはさらに、リペアシンボルを生成するためにアグリゲートオブジェクトのＺ個のソースブロックを符号化するための手段をさらに含む。システムはさらに、ソースシンボルをソースパケットにマッピングし、リペアシンボルをリペアパケットにマッピングするための手段をさらに含む。システムはさらに、受信機にリペアパケットとソースパケットのうちの１つまたは複数を送信するための手段をさらに含む。
【００２８】
通信システムにおいて送信機から受信機へと送信されたデータについてのソースシンボルにマッピングされた個々のオブジェクトを復元するように構成されたシステムであって、個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、アグリゲートオブジェクトは、１つまたは複数のソースブロックに分割され、個々のオブジェクトのソースシンボルは、アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられ、データの１つまたは複数のパケットを受信するための手段と、データの各パケットは、アグリゲートオブジェクトのソースブロックのうちの１つについてのリペアデータを含んでいる少なくとも１つのリペアシンボルまたは個々のオブジェクトの少なくとも１つのソースシンボルを含み、ソースブロックは、個々のオブジェクトの少なくとも１つのソースシンボルを含み、データの１つまたは複数の受信されたパケットを使用して、個々のオブジェクトを復元するための手段と、を含む。
【００２９】
このようなシステムの実施形態は、個々のオブジェクトを復元するための手段が個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルおよびデータの１つまたは複数の受信されたパケットを使用して個々のオブジェクトを復元するための手段をさらに含むという特徴を含めうる。
【００３０】
ここで説明された項目および/または技法は、次の機能の１つまたは複数を提供しうる。多くの小さい個々のオブジェクトは、アグリゲーションのネットワーク効率がソースブロックの異なる送信されたＦＥＣ符号化にわたって異なる損失またはエラーパターンを伴ったとしても取得されるように、複数のソースブロックに分割された大きいアグリゲートオブジェクトにアグリゲートされる。ブロックアグリゲーション(block aggregation)を用いるファイル送信は、アグリゲートオブジェクトとは異なる個々のオブジェクトおよび／または異なる量のアグリゲートオブジェクトがない混合群の受信機があるとき、効率的に機能する。ファイル送信はまた、符号化および復号に必要とされる機能メモリがアグリゲートオブジェクトのサイズよりも小さいときに効率的に機能する。ソースブロックは、受信機においてシーケンシャルに処理され、アグリゲートオブジェクトを再構築するために各受信機が受信する必要があるデータ量を減らすまたは最小化する。アイテム／技法−効果ペアが説明されているが、述べられた効果が述べられたもの以外の手段によって達成されることは可能でありうる、また、述べられたアイテム／技法は、必ずしも、述べられた効果をもたらさないことがある。
【図面の簡単な説明】
【００３１】
【図１】図１は、個々のオブジェクトのブロックアグリゲーションの機能図である。
【図２】図２は、通信システムにおける送信機から受信機へとデータを送信するための、ソースシンボルに個々のオブジェクトをマッピングするプロセスのブロックフロー図である。
【図３】図３は、通信システムにおける送信機から受信機へと送信されたデータについてのソースシンボルにマッピングされた個々のオブジェクトを復元するプロセスのブロックフロー図である。
【詳細な説明】
【００３２】
図面では、同様な関連特性および/または特徴を伴うコンポーネントは、同じ参照ラベルを有しうる。
【００３３】
ここで説明された技法は、通信システムにおける送信機から受信機へとデータを送信するための個々のオブジェクトのブロックアグリゲーションのメカニズムを提供する。個々のオブジェクトは、データを送信するためにソースシンボルにマッピングされる。個々のオブジェクトは、アグリゲートオブジェクトへとアグリゲートされ、各個々のオブジェクトについて、個々のオブジェクトのデータを含むためにソースシンボルの数を計算することを含む。アグリゲートオブジェクトは、１つまたは複数のソースブロックへと分割され、各ソースブロックにおいて各個々のオブジェクトのソースシンボルの数を計算することを含む。個々のオブジェクトのマッピングは、各個々のオブジェクトについてのソースシンボルが連続ソースブロック内で連続的に並べられるものである。連続する並びの結果は、第１のソースシンボルが個々のオブジェクト内で第２のソースシンボルに先行するときはいつでも、第２のソースシンボルは、第１のソースシンボルがマッピングされるソースブロックよりもソースブロックの順序において早くないソースブロックにマッピングされる。双方のソースシンボルが同じソースブロックにマッピングされる場合、第１のソースシンボルはソースブロックにおいて第２のソースシンボルに先行し、ソースブロック内の第１および第２のソースシンボル間でいずれの他の個々のオブジェクトのソースシンボルは配置されないであろう。各個々のオブジェクトのデータのバイトは、最初のソースシンボルから始まり最後のソースシンボルまである、個々のオブジェクトについてのソースシンボル内で連続的に並べられる。アグリゲートオブジェクトのソースブロックは、リペアシンボルを生成するために符号化される。ソースシンボルはソースパケットにマッピングされ、リペアシンボルは、リペアパケットにマッピングされる。ソースパケットとリペアパケットの１つまたは複数は受信機に送信される。異なるソースブロック上の個々のオブジェクトの分配は、各ソースブロックにおいて被ったほぼ同じ量の誤りまたは損失があるときに個々のオブジェクトが効率的に再構築されることができるということを確実にする。他の実施形態は、特許請求の範囲および本開示の範囲内にある。
【００３４】
本開示で説明される、いくつかの例および実施形態は、アシンクロナス層の符号化（ＡＬＣ）プロトコルに適用するが、説明された技法は、ＡＬＣへの適用に限定されない。説明された技法は、例えば、コンテンツ送信のためのブロードキャスト、マルチキャストまたはユニキャスト送信を使用して他のパケットベースのネットワークシステムに適用することができる。説明された技法から利益を得ることができるシステムのいくつかの例は、第３世代パートナーシッププロジェクト（３ＧＰＰ）マルチメディアブロードキャストおよびマルチキャストサービス（ＭＢＭＳ）、デジタルビデオブロードキャスティング−ハンドヘルド（ＤＶＢ−Ｈ）、デジタルビデオブロードキャスティング−ハンドヘルドに対する衛星サービス（ＤＶＢ−ＳＨ）、アドバンスド・テレビジョン・システム・コミッティー（ＡＴＳＣ）モバイル、デジタルビデオブロードキャスティングインターネットプロトコルテレビ（ＤＶＢ ＩＰＴＶ）およびＭｅｄｉａＦＬＯ（例えば、ファイル送信サービス用）を含む。別の例では、説明された技法は、ハイパーテキスト移送プロトコル（ＨＴＴＰ；Hypertext Transfer Protocol）のようなユニキャストファイル送信プロトコルに適用されることができ、ソースブロックについてのソースおよびリペアシンボルは、送信のために、ファイルへとグループ化されるであろう。
【００３５】
個々のオブジェクトのブロックアグリゲーションの所望の特性
例えば、ブロードキャストまたはマルチキャスト環境において、または、コンテンツ送信ネットワークのようなユニキャスト送信インフラストラクチャを使用して、大多数の受信機に複数の個々のオブジェクトを送信することにおいて、生じる可能性がある多数のユースケース(use case)がある。これらのユースケースのいくつかを考慮することは、送信のために個々のオブジェクトのブロックアグリゲーションの技法についての所望の特性を定義することを助けることができる。他の特性は追加的にまたは代替的に定義されることができるが、いくつかの所望の特性のリストが後述される。
【００３６】
特性１では、データパケットが、バイトの単位ではなく、シンボルの単位でインデクス付けられるということを示す。このことは、単一オブジェクトのファイル送信について定義されたのと同じインデクス付けスキームに従う。例えば、ＡＬＣプロトコルでは、各データパケットは、関連づけられた符号化シンボルＩＤ（ＥＳＩ）を有することができ、そしてそれは、データパケット内に含まれるデータについてのスタートシンボルを指す。
【００３７】
特性２では、ブロックアグリゲーションを用いるファイル送信は、システマティックＦＥＣ符号が使用されることを可能にし、アグリゲートオブジェクトを再構築するために、受信されたソースパケットとリペアパケットが使用されることを可能にすべきであるということを示す。
【００３８】
特性３では、ブロックアグリゲーションを用いるファイル送信は、アグリゲートオブジェクトとは異なる個々のオブジェクトおよび／または異なる量のアグリゲートオブジェクトがない、混合群の受信機があるとき、効率的に機能すべきであるということを示す。一例として、特定の受信機はすでに、全体または一部においてアグリゲートオブジェクトの個々のオブジェクトのいくつかを有しうる。アグリゲートオブジェクトを復元するために、特定の受信機が必要としうるリペアパケットの量は、受信機が個々のオブジェクトのこれらの部分をすでに有していない場合、受信機が必要とするであろうリペアパケットの量に対して、受信機がすでに有する個々のオブジェクトのこれらの部分のアグリゲートサイズだけ減らされるべきである。
【００３９】
特性４では、符号化および復号に必要とされる機能メモリがアグリゲートオブジェクトのサイズよりも小さいときにブロックアグリゲーションを用いるファイル送信が効率的に機能すべきである、ということを示す。すなわち、ブロックアグリゲーションスキームがアグリゲートオブジェクトを１より多いソースブロックに分割することをサポートすべきである。さらに、特性１と類似して、アグリゲートオブジェクトを複数のソースブロックに分割することは、オートマティックであり、最適化されるべきである。特に、単一のオブジェクトについて、ソースブロックの各々からほぼ同量のデータを受信することは、アグリゲートオブジェクトの部分であるどの個々のオブジェクトが受信機にないかということと無関係に、アグリゲートオブジェクトの効率的な再構築を可能にすべきである。したがって、ブロックアグリゲーションは、受信機においてシーケンシャルにソースブロックを処理することによりアグリゲートオブジェクト内の個々のオブジェクトの効率的な再構築を可能にすべきであり、アグリゲートオブジェクトを再構築するために各受信機が受信するのに必要とするデータの量を減らすまたは最小化する。
【００４０】
特性５では、ＦＥＣなしの受信機は、できる限りアグリゲートオブジェクトの多くを復元し、リペアパケットをディスカード(discard)するために、送信されたソースパケットを受信し、それらを直接使用することが可能であるべきであるということを示す。
【００４１】
特性６では、個々のオブジェクトについての送信されたソースパケットが、効率的にアグリゲートオブジェクトを再構築するためにアグリゲートオブジェクトについてのリペアパケットを組み合わせて効率的に使用されるべきであるということを示す。
【００４２】
特性７では、アグリゲートオブジェクトの部分である個々のオブジェクトのいくつかまたはいくつかの部分のみがない受信機は、可能な限り少ないデータ受信でなくなっている個々のオブジェクトを復元することが可能であるということを示す。さらに、アグリゲートオブジェクトの部分である個々のオブジェクトのいくつかの期限切れバージョンを有する受信機は、可能な限り小さなデータ受信で個々のオブジェクトの新しいバージョンを取得することができる。
【００４３】
所望の特性の制約
ブロックアグリゲーションの上記リストされた所望の特性は、ブロックアグリゲーション技法に対していくつかの注意をひきつける制約(some interesting constraints)を課す。例えば、特性６では、アグリゲートオブジェクト内の個々のオブジェクトについて送信されたソースパケットはアグリゲートオブジェクトについてのリペアパケットと一緒に効率的に使用されるべきである、ということを示し、特性１では、個々のオブジェクトについてのこれらのデータパケットはシンボルインデクス付けを使用する、ということを示す。したがって、特性１および特性６では、アグリゲートオブジェクト内の各個々のオブジェクトは、ソースシンボルバウンダリで開始し、さらには、アグリゲートオブジェクト内の各ソースシンボルが唯一１つの個々のオブジェクトについてのデータを含む、ということを示す。別の例として、特性７はまた、アグリゲートオブジェクト内の各個々のオブジェクトがシンボルバウンダリにて開始するという制約をもたらす。
【００４４】
特性４および７はともに、個々のオブジェクトについてのソースシンボルがアグリゲートオブジェクトのソースブロックにわたって可能な限り等しく分割されるということ、および、個々のオブジェクトの最初の部分についてのソースシンボルは、最初のソースブロックの部分であるべきであり、個々のオブジェクトの最後の部分についてのソースシンボルは、最後のソースブロックの一部分であるべきである、ということを示す。
【００４５】
特性１および４はともに、ＦＥＣ復号器によって必要とされるアグリゲートオブジェクト符号化についての情報（例、ＡＬＣプロトコルのＦＥＣオブジェクト送信情報（ＯＴＩ））が可能な限り最小であり、分割スキームは、アグリゲートオブジェクト内の個々のオブジェクトおよびそれらのシンボルを自動的にアラインし、複数ソースブロックの場合には、ソースブロックにわたって、アラインする、ということを示す。したがって、アグリゲートオブジェクト内の個々のオブジェクトのバイト位置を提供する代わりに、分割スキームは、アグリゲートオブジェクト内の個々のオブジェクトの位置を自動的に決定し、個々のオブジェクトは、シンボルバウンダリ上でアラインされる。
【００４６】
特性７では、ＦＥＣ復号器によって必要とされるアグリゲートオブジェクト符号化についての情報は、各個々のオブジェクトのどのバージョンがアグリゲートオブジェクトに含まれるかを、できれば示すべきであるということを示す。このバージョン情報は、アグリゲートオブジェクトのどの個々のオブジェクトを受信機がすでに有しているかを決定するために受信機によって使用されることができる。特性３では、受信機が個々のオブジェクトのこれらの部分をすでに有していない場合、必要とされるであろう多数のリペアパケットよりも、アグリゲートオブジェクトを復元するために（例えば、すでに知られている個々のオブジェクトのそれらの部分のサイズだけ）より少数のリペアパケットを受信する必要があるべきであるということを示す。
【００４７】
個々のオブジェクトのブロックアグリゲーション
個々のオブジェクトのブロックアグリゲーションについての技法は下記で説明される。一般に、説明された技法は、複数の個々のオブジェクトを大きなアグリゲートオブジェクトへとアグリゲートし、そしてそれは、ＦＥＣ符号化の前に1つまたは複数のソースブロックに分割されることができる。個々のオブジェクトは、アグリゲートオブジェクト内で、また適用可能であれば複数のソースブロック内で、自動的にアラインされるので、上記の所望特性が達成される。リペアシンボルは、アグリゲートオブジェクトの各ソースブロックについて、ＦＥＣ符号化によって生成される。ソースシンボルとリペアシンボルは、例えばブロードキャストまたはマルチキャストを通じて、１つまたは複数の受信機に、それぞれ、リペアパケットおよびソースパケットのペイロード内で送信される。
【００４８】
ブロックアグリゲーションについて、ＦＥＣ復号器によって必要とされるアグリゲートオブジェクトの符号化についての情報（例、ＦＥＣ  ＯＴＩ）は、アグリゲートオブジェクト内の個々のオブジェクトの数ｍ、個々のオブジェクトのバイトサイズＢ（１），Ｂ（２），…，Ｂ（ｍ）、バイトにおけるシンボルサイズＴ、およびアグリゲートオブジェクトについてのソースブロックの数Ｚを含む。個々のオブジェクトの順序付けのインジケーションもまた示され、第１の個々のオブジェクトはオブジェクト１と呼ばれ、第２の個々のオブジェクトはオブジェクト２と呼ばれ、以下同様である。一例では、個々のオブジェクトは、すべてが同じアプリケーションによって使用される可能性がある関連の個々のオブジェクトがグループ化され連続的に順序づけられるように、順序づけられることができる。さらに、他の情報は、アグリゲートオブジェクト符号化についての情報に含まれうる。例えば、各個々のオブジェクトについてのユニフォームリソース識別子（ＵＲＩ）および／またはトランスポートオブジェクトＩＤ（ＴＯＩ）は、ＦＥＣ  ＯＴＩに含まれる可能性があり、受信機が個々のオブジェクトは何であるか、また、受信機が個々のオブジェクトの正確な複製をすでに有するか、を知ることを可能にする。アグリゲートオブジェクトについて送信されたリペアパケットはまた、関連づけられた識別子（例、ＴＯＩ）を有することができ、関連づけられた識別子は、アグリゲートオブジェクト内の個々のオブジェクトについての識別子のいずれとも異なる。
【００４９】
各ソースパケットは、ペイロードにおけるデータと関連づけられた個々のオブジェクトを識別するオブジェクト識別子（例、ＴＯＩ）と、ペイロードで搬送されたソースデータを識別するデータ識別子（例、ＡＬＣプロトコルのソースＦＥＣペイロードＩＤ）と、を含む。データ識別子は、ソースパケット（例、ＥＳＩ）に含まれる第１のソースシンボルの開始インデクスを示すことができる。ソースパケットにおいて１より多いシンボルがある場合には、複数シンボルが連続的にインデクス付けされる必要がある。
【００５０】
ＡＬＣプロトコルの一例では、ソースパケットが異なるＦＥＣ符号化ＩＤを使用して送信される場合（例、Ｎｏ−Ｃｏｄｅ  ＦＥＣスキームに対応するＦＥＣ符号化ＩＤ＝０）、ソースＦＥＣペイロードＩＤは、ＦＥＣ符号化ＩＤ  と関連づけられる必要がある（例、２バイトＥＳＩが続く２バイトソースブロック数（ＳＢＮ））。この場合、各個々のオブジェクトについてのＦＥＣ  ＯＴＩは、受信機によって受信される必要があり、シンボルサイズは、アグリゲートオブジェクトについて指定されたシンボルサイズと、個々のオブジェクトについて、同じである必要がある（すなわち、Ｔ値）。しかしながら、ソースブロック構造は、個々のオブジェクトとアグリゲートオブジェクトで異なる場合がある。
【００５１】
アグリゲートオブジェクトについての各リペアパケットは、アグリゲートオブジェクトを識別しているオブジェクト識別子（例、ＴＯＩ）と、ペイロードで搬送されるリペアデータを識別するデータ識別子（例、ＡＬＣプロトコルのリペアＦＥＣペイロードＩＤ）を含む。データ識別子は、例えば、アグリゲートオブジェクト内の特定ソースブロックを識別するＳＢＮと、識別されたソースブロックから生成されるペイロードで搬送されたリペアシンボルを識別するＥＳＩであることができる。
【００５２】
個々のオブジェクトをソースシンボルにマッピングするプロセス
図２を参照し、さらに図１を参照すると、通信システムにおいて送信機から受信機へとデータを送信するために個々のオブジェクトをソースシンボルにマッピングするプロセス２００は、図示されるステージを含む。図１は、個々のオブジェクトのブロックアグリゲーションの機能図である。図１の例について選ばれたパラメータ（すなわち、ｍ，Ｂ（ｊ），Ｔ，およびＺ）は任意であり、限定されていない。プロセス２００は、単なる例示であって限定するものではない。プロセス２００は、例えばステージを追加、取り除くまたは並び替えることによって、変更されることができる。
【００５３】
ステージ２０２では、プロセッサ（例、通信リンクのソース送信機側のプロセッサ）は、ｍ個の個々のオブジェクトを受信し、ｍ＞１である。ｍ個の個々のオブジェクトは、オブジェクト１からオブジェクトｍまで順序づけられ、各個々のオブジェクトｊは、バイトサイズＢ（ｊ）を有する。図１の例では、ｍ＝５の個々のオブジェクト１１０は、バイトサイズＢ（１）＝１２８ｋｂ，Ｂ（２）＝９６ｋｂ，Ｂ（３）＝２５６ｋｂ，Ｂ（４）＝１４８ｋｂ，およびＢ（５）＝１７２ｋｂを伴うデータの小さいファイルである。これらの個々のオブジェクト１１０は、単なる例であり、個々のオブジェクトは、より大きいまたはより小さいサイズであることができる。
【００５４】
ステージ２０４では、プロセッサは、ｍ個の個々のオブジェクトをアグリゲートオブジェクトへとアグリゲートする。アグリゲートすることは、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することを含む。ソースシンボルの数Ｓ（ｊ）は、バイトにおけるシンボルサイズＴによって決まる。１〜ｍまでの各整数ｊの場合、Ｓ（ｊ）＝ｃｅｉｌ（Ｂ（ｊ）／Ｔ）である。図１の例を続けると、Ｔ＝１０ｋｂである場合、個々のオブジェクト１１０は、ソースシンボルの数Ｓ（１）＝１３，Ｓ（２）＝１０，Ｓ（３）＝２６，Ｓ（４）＝１５，およびＳ（５）＝１８を計算している。
【００５５】
各個々のオブジェクトｊのデータのバイトは、ソースシンボル０から始まりソースシンボルＳ（ｊ）−１まである、個々のオブジェクトｊについてのＳ（ｊ）ソースシンボル内で連続的に並べられる。ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルは、ゼロ値でパッドされることができる。個々のオブジェクトｊのソースシンボル０は、個々のオブジェクトｊの最初のＴバイトに対応し、個々のオブジェクトｊのソースシンボル１は、個々のオブジェクトｊの第２のＴバイトに対応し、以下同様である。個々のオブジェクトｊのソースシンボルＳ（ｊ）−１は、ゼロ値を伴うＴ−Ａ（ｊ）パディングバイトが続く個々のオブジェクトｊの最後のＡ（ｊ）＝Ｂ（ｊ）−ｆｌｏｏｒ（Ｂ（ｊ）／Ｔ）＊Ｔバイトに対応する。図１では、各個々のオブジェクトｊは、個々のオブジェクト１１０がアグリゲートオブジェクト１２０へとアグリゲートされるとき、個々のオブジェクトｊのソースデータの終わりに付加されるゼロパディング１２５を含む。個々のオブジェクトｊは、バイトにおけるシンボルサイズＴの整数値の倍数であるバイトサイズＢ（ｊ）を有し、個々のオブジェクトｊは、ゼロパディング(zero padding)を必要としない。
【００５６】
ステージ２０６で、プロセッサは、アグリゲートオブジェクトをＺ個のソースブロックに分割し、ここにおいて、Ｚ≧１である。分割は、ｋ＝０〜Ｚ−１についての各ソースブロックｋについて、および、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、ソースブロックｋにおける個々のオブジェクトｊのソースシンボルの数ＮＳＳ（ｊ，ｋ）を計算することを含む。個々のオブジェクトｊおよびソースブロックｋについて、ＮＳＳ（ｊ，ｋ）＝ｃｅｉｌ（（ＳＳ（ｊ）−ｋ）／Ｚ）−ｃｅｉｌ（（ＳＳ（ｊ−１）−ｋ）／Ｚ）であり、ＳＳ（ｊ）は下記で定義される。個々のオブジェクトｊについてのＳ（ｊ）ソースシンボルは、連続ソースブロック内で連続的に並べられ、連続ソースブロックは、ＮＳＳ（ｊ，ｋ）＞０についての最低インデクス付けられたソースブロックで始まり、ＮＳＳ（ｊ，ｋ）＞０についての最高インデクス付けられたソースブロックに続く。個々のオブジェクトｊについてのソースシンボルの数Ｓ（ｊ）がソースブロックの数Ｚよりも小さい場合には、必ずしもすべてのＺ個のソースブロックがその個々のオブジェクトｊについてのソースシンボルを含まないであろう。
【００５７】
ステージ２０６の分割は、１〜ｍまでの各整数ｊについて、最初のｊ個の個々のオブジェクトにおけるソースシンボルのアグリゲート数ＳＳ（ｊ）を計算することを含むことができる。この計算は、設定ＳＳ（０）＝０を含む。整数ｊの場合、ＳＳ（ｊ）は、１〜ｊまでの、すべての整数ｉにわたるＳ（ｉ）の合計である。ＳＳ（ｊ）の計算は、１ステップで、ＮＳＳ（ｊ，ｋ）の計算と組み合わせられることができる。図１の例では、ソースシンボルのアグリゲート数ＳＳ（ｊ）は、ＳＳ（１）＝１３，ＳＳ（２）＝２３，ＳＳ（３）＝４９，ＳＳ（４）＝６４，およびＳＳ（５）＝８２として計算される。
【００５８】
図１のアグリゲートオブジェクト１２０は、Ｚ＝２のソースブロック１３０に分割される。Ｓ（ｊ）が各個々のオブジェクトｊ１１０についてＺよりも大きいので、２つのソースブロック１３０の各々は、各個々のオブジェクト１１０について少なくとも１つのソースシンボルを含む。この場合、最後のソースブロック（すなわち、ソースブロックＺ−１）のみがゼロパディング１２５を含む。
【００５９】
ステージ２０８では、符号器（例えば、通信リンクのソース送信機側のＦＥＣ符号器）は、リペアシンボルを生成するためにアグリゲートオブジェクトのＺ個のソースブロックを符号化する。すなわち、符号化された各ソースブロックについて、１つまたは複数のリペアシンボルが生成される。各リペアシンボルは、アグリゲートオブジェクトのそれぞれの符号化されたソースブロックのソースシンボルについてのリペアデータを含む。
【００６０】
ステージ２１０では、プロセッサは、ソースシンボルをソースパケットにマッピングし、リペアシンボルをリペアパケットにマッピングする。上述されるように、各パケットは、オブジェクト識別子とデータ識別子を含む。ソースパケットは、１つまたは複数のソースシンボルを含むことができ、リペアパケットは、１つまたは複数のリペアシンボルを含むことができる。
【００６１】
ステージ２１２では、送信機は、受信機にリペアパケットとソースパケットのうち１つまたは複数を送信する。例えば、パケットは、ブロードキャストまたはマルチキャストサービスを通じて多数の受信機に送信されることができる。
【００６２】
ソースシンボルにマッピングされた個々のオブジェクトを復元するプロセス
図３を参照すると、通信システムにおいて送信機から受信機へと送信されるデータについてのソースシンボルにマッピングされた個々のオブジェクトを復元するプロセス３００は図示されるステージを含む。プロセス３００は、単なる例示であって限定するものではない。プロセス３００は、例えばステージを追加、取り除くまたは並び替えることによって、変更されることができる。
【００６３】
個々のオブジェクトは、１つのアグリゲートオブジェクトに他の個々のオブジェクトでアグリゲートされ、該アグリゲートオブジェクトは、１つまたは複数のソースブロックに分割されている。個々のオブジェクトのソースシンボルは、アグリゲートオブジェクトの連続ソースブロック内で連続で並べられる。
【００６４】
ステージ３０２では、受信機（例えば、通信リンクの受信側の受信機）は、データの１つまたは複数のパケットを受信する。データの各パケットは、少なくとも１つのリペアシンボルまたは個々のオブジェクトの少なくとも１つのソースシンボルを含む。データのパケットがリペアシンボルを含む場合、リペアシンボルは、アグリゲートオブジェクトのソースブロックのうちの１つについてのリペアデータを含み、それぞれのソースブロックは、個々のオブジェクトの少なくとも１つのソースシンボルを含む。
【００６５】
ステージ３０４では、プロセッサ（例えば、通信リンクの受信側のプロセッサ）は、データの１つまたは複数の受信されたパケットを使用して個々のオブジェクトを復元する。受信側（例えば、受信クライアントデバイス）が個々のオブジェクトの利用可能な１つまたは複数のソースシンボルをすでに有する場合には、プロセッサは、データの１つまたは複数の受信されたパケットに加えて個々のオブジェクトの１つまたは複数のソースシンボルを使用して個々のオブジェクトを復元することができる。受信側は、例えば、ユニキャスト上での前の取り出し(retrieval)から、または、前のブロードキャストから、個々のオブジェクトの１つまたは複数のソースシンボルを前に取得していることがある。
【００６６】
個々のオブジェクトのブロックアグリゲーションのプロパティ
１つのソースブロックのみがある場合（すなわちＺ＝１）には、アグリゲートオブジェクトの最初のＳ（１）ソースシンボルは、個々のオブジェクト１に対応し、次のＳ（２）ソースシンボルは、個々のオブジェクト２に対応する、等である。アグリゲートオブジェクトの最後のＳ（ｍ）ソースシンボルは、個々のオブジェクトｍに対応する。
【００６７】
１より多いソースブロックがある場合（すなわち、Ｚ＞１）、ブロックアグリゲーションの説明された技法は、次のプロパティを達成する。
【００６８】
プロパティＡは、各個々のオブジェクトｊについてのソースシンボルがソースブロック上で可能な限り均等に分配されるということである。すなわち、各個々のオブジェクトｊについて、ソースブロックの各々において個々のオブジェクトｊのソースシンボルの数は、ｃｅｉｌ（Ｓ（ｊ）／Ｚ）またはｆｌｏｏｒ（Ｓ（ｊ）／Ｚ）である。
【００６９】
プロパティＢは、アグリゲートオブジェクトについてのソースシンボルがソースブロック上で可能な限り均等に分配されるということである。すなわち、ソースブロックの各々におけるアグリゲートオブジェクトについてのソースシンボルの数は、ｃｅｉｌ（ＳＳ（ｍ）／Ｚ）またはｆｌｏｏｒ（ＳＳ（ｍ）／Ｚ）である。
【００７０】
プロパティＣは、ソースブロック内の個々のオブジェクトについてのソースシンボルが個々のオブジェクトのオリジナル順序と同じ順序にあるということである。しかしながら、上述されるように、Ｓ（ｊ）＜Ｚの場合には、必ずしもすべてのアグリゲートオブジェクトのソースブロックが個々のオブジェクトｊについてのシンボルを含まないであろう。
【００７１】
プロパティＤは、ソースブロック上で各個々のオブジェクトｊについてのソースシンボルが個々のオブジェクトｊ内でそれらがインデクスされるのと同じ順序にあるということである。
【００７２】
これらは、すべて所望のプロパティである。プロパティＡは、増分更新(incremental update)が効率的であることができるということを確実にする。例えば、受信機はすでに、アグリゲートオブジェクトの個々のオブジェクトのいくつかを有しているが、アグリゲートオブジェクトの他の個々のオブジェクトを失っている(missing)可能性がある。失われている個々のオブジェクトについてのソースパケットはソースブロックにわたってほぼ均等に拡散されるので、受信機は、全体のアグリゲートオブジェクトを復元するために各ソースブロックから生成されたほぼ同じ数のリペアパケットを受信する必要がある。特に、受信機がＸ個の個々のオブジェクトを失っている場合には、受信機が各ソースブロックから失っている多数のソースシンボル間でのソースブロックにわたるディスパリティは、最大でもＸである。一般に、予期されたディスパリティは、ｓｑｒｔ（Ｘ）に近い。したがって、バースト損失を有しうるチャネル上で送信する送信元のよいストラテジは、アグリゲートオブジェクトについてのリペアパケットのみを生成し送信することであり、送信元は、複数ラウンドでリペアパケットを送信する。すなわち、各ラウンドについて、Ｚ個のソースブロックの各々について１つのリペアパケットが送信され、ソースブロックについてのリペアパケットは、そのソースブロックから生成された１つまたは複数のリペアシンボルを含む。
【００７３】
プロパティＢは、アグリゲートオブジェクトについてのソースブロックの符号化および復号化は２サイズのソースブロックを検討することのみを必要とするということを確実にし、次のような少なくとも２，３のよい結果を有する、（１）符号器におけるソースブロックからのリペアシンボルの生成は、２つの異なるソースブロックサイズについて生成するために、リペアパケットの２つの異なるパターンを検討することのみを必要とする、（２）符号器と復号器において必要とされるメモリ量は、各ソースブロックを符号化または復号化するためのものとほぼ同一である、（３）受信機がアグリゲートオブジェクトの個々のオブジェクトのいずれをも有していない場合には、受信機が各ソースブロックから失っている多数のソースシンボル間でのソースブロックにわたるディスパリティは最大でも１である。
【００７４】
プロパティＣおよびＤは、受信機がシーケンシャル順にソースブロックを復号する場合には、個々のオブジェクトは最初から終わりまで復元される、ということを確実にする。このことのある利点は、個々のオブジェクトの最初は、第１のソースブロックが復号された後、第２のソースブロックが復号される間に、他のアプリケーションに送ることができる、ということである。プロパティＣおよびＤはまた、個々のオブジェクトの復元された部分が個々のオブジェクトの当初の順と同じ順にある、ということを確実にする。このことは、アグリゲートオブジェクト内の個々のオブジェクトが、例えば同じアプリケーションによってすべてが使用される可能性がある関連の個々のオブジェクトが連続する方法で、順序づけられることを可能にする。
【００７５】
達成されるブロックアグリゲーションの所望の特性
ブロックアグリゲーションについての開示された技法は、上述される個々のオブジェクトのブロックアグリゲーションの所望の特性を達成する。
【００７６】
特性１は、データパケットが、バイトの単位ではなく、シンボルの単位でインデクス付けられるということを示す。ブロックアグリゲーション技法は、特性１を達成する。ＡＬＣプロトコルを用いる例として、ソースパケットとリペアパケット双方のＦＥＣペイロードＩＤは、パケットがどのシンボルを搬送するかを識別するＥＳＩを含むであろう。
【００７７】
特性２は、ブロックアグリゲーションを用いるファイル送信がシステマティックＦＥＣ符号が使用されることを可能にし、アグリゲートオブジェクトを再構築するために、受信されたソースパケットとリペアパケットが使用されることを可能にするということを示す。ブロックアグリゲーション技法は、ソースパケットがアグリゲートオブジェクト内で個々のオブジェクトについて送信されることを可能にし、リペアパケットがアグリゲートオブジェクトのいずれの失っているソースシンボルを効率的に再構築するのに有用であるということを確実にして、特性２を達成する。
【００７８】
特性３は、ブロックアグリゲーションを用いるファイル送信は、全体においてまたは部分的にアグリゲートオブジェクトから異なる個々のオブジェクトおよび／または異なる量のアグリゲートオブジェクトを失っている混合群の受信機があるとき、効率的に機能する。アグリゲートオブジェクトのソースブロック上の個々のオブジェクトの開示された分割は特性３を達成する。
【００７９】
特性４は、ブロックアグリゲーションスキームがアグリゲートオブジェクトを１より多いソースブロックに分割することをサポートすべきであるということを示す。さらに、アグリゲートオブジェクトを複数のソースブロックへと分割することは、オートマティックであり、最適化されるべきである。ブロックアグリゲーションは、受信機においてシーケンシャルにソースブロックを処理することによりアグリゲートオブジェクト内の個々のオブジェクトの効率的な再構築を可能にすべきであり、アグリゲートオブジェクトを再構築するために各受信機が受信することを必要とするデータ量を減らすまたは最小化する。アグリゲートオブジェクトのソースブロック上の個々のオブジェクトの分割と１より多いソースブロックを指定するブロックアグリゲーション技法の能力は特性４を達成する。
【００８０】
特性５は、ＦＥＣなしの受信機が送信されたソースパケットを受信し、それらを直接使用して、可能な限りアグリゲートオブジェクトの多くを復元し、任意のリペアパケットをディスカードすることが可能であるべきであるということを示す。アグリゲートオブジェクトの個々のオブジェクトについてソースパケットが送信されることを可能にすることは、特性５を達成する。
【００８１】
特性６は、個々のオブジェクトについての送信されたソースパケットが効率的にアグリゲートオブジェクトを再構築するためにアグリゲートオブジェクトについてのリペアパケットと組み合わせて効率的に使用されるべきであるということを示す。アグリゲートオブジェクトのソースブロック上の個々のオブジェクトの分割は、特性６を達成する。
【００８２】
特性７は、アグリゲートオブジェクトの部分である個々のオブジェクトのいくつかまたはいくつかの部分を失っているのみの受信機は、可能な限り少ないデータ受信で失われている個々のオブジェクトを復元することができるということを示す。さらに、アグリゲートオブジェクトの部分である個々のオブジェクトのいくつかの期限切れバージョンを有する受信機は、可能な限り小さなデータ受信で個々のオブジェクトの新しいバージョンを得ることができる。アグリゲートオブジェクトのソースブロック上の個々のオブジェクトの分割は、特性７の第１部分を達成する。パケットに含まれる識別子は、パケットペイロードに含まれるデータについてのバージョン情報を含むことができる。例えば、バージョン情報は、パケットデータについての時間および日にち情報を含むことができる。
【００８３】
個々のオブジェクトのブロックアグリゲーションのユースケース
個々のオブジェクトのブロックアグリゲーションの２つのユースケースが下記で示されている。ブロックアグリゲーションのプロパティはユースケースというコンテキストで説明されている。ブロックアグリゲーション技法の利点もまた示されている。
【００８４】
第１のユースケースは、ウェブキャッシュブロードキャストに関する。ウェブページは、一般的には、多くの小さいオブジェクト（例、ファイル）を含む。例えば、いくつかの人気のあるニュースサイトは、ウェブページ上に１００より多い小さいオブジェクトを含むことができる。各個々のオブジェクトは、ユニフォームリソースロケータ（ＵＲＬ）で識別される。これらの個々のオブジェクトの多くはしばしば変更せず、通常の動作では、ウェブブラウザはこれらの個々のオブジェクトをキャッシュし、ウェブページがアクセスされる次のときにキャッシュされたバージョンを再使用する。
【００８５】
ＨＴＴＰは、オブジェクトがどのくらい長く有効であるかをシグナリングするための、および、オブジェクトが変更していなかった場合にオブジェクトを再度ダウンロードすることなく、キャッシュされたオブジェクトが変更したかを決定するためにコンテンツサーバでチェックするためのメカニズムを含む。
【００８６】
例えば、ブロードキャストチャネル上で人気のあるウェブページの個々のオブジェクトを送信し、ウェブブラウザキャッシュ内にその送信された個々のオブジェクトを置くことによって、モバイルウェブブラウザの性能は改善されることができるであろう。その人気のあるウェブページがユーザによってアクセスされる場合、ウェブページの個々のオブジェクトの多くはすでにキャッシュ内にあるので、アクセス時にダウンロードされる必要はないであろう。
【００８７】
本願では、小さい個々のオブジェクトを大きいアグリゲートオブジェクト（例、大きいファイル）にアグリゲートすることが望ましい、なぜならば、このことは、ブロードキャストチャネル上のアプリケーション層ＦＥＣ（ＡＬ−ＦＥＣ）符号化の使用の効率を改善するからである。アグリゲートオブジェクト自体と別にアグリゲートオブジェクトに含まれる個々のオブジェクトのリストを示すことも望ましい。
【００８８】
個々のオブジェクトのリストを受信するクライアントデバイスは、クライアントデバイスがこれらの個々のオブジェクトのいずれかをすでに有しているかを知るためにそのキャッシュをチェックすることができる。例えば、個々のオブジェクトは、前のブロードキャストにおいて受信された可能性がある、または、個々のオブジェクトは、ユニキャスト上で取り出された可能性がある。クライアントデバイスがすでに有するこれらの個々のオブジェクトを使用して、クライアントデバイスは、アグリゲートオブジェクトの部分的な複製を再構築することができる。この部分的な複製は、アグリゲートオブジェクトについてのＡＬ−ＦＥＣ復号プロセスに１セットのソースシンボルとして入力されることができる。
【００８９】
重複シンボルを受信することからＡＬ−ＦＥＣ復号プロセスを回避するために、ブロードキャストチャネルがソースシンボルとリペアシンボルを移送する場合がいまだに有益ではあるが、ブロードキャストチャネルがリペアシンボルのみを移送する場合が望ましい。
【００９０】
小さい個々のオブジェクトを大きいアグリゲートオブジェクトにアグリゲートする１つの手法は、個々のオブジェクトをコンカチネートする、または、「ｔａｒ」または「ｚｉｐ」のようなスタンダードアーカイブファイルフォーマットを使用し、そのあとで、アーカイブファイルをソースブロックにセグメント化することであろう、なお、各々は、アーカイブファイルの連続する部分を備える。この手法は、クライアントデバイスが前にブロードキャストオブジェクトのいずれをも有していないとき、ＡＬ−ＦＥＣ性能という点でアグリゲーションの利益を得る。この手法は、上述されるように、いくぶん性能を改善するためにクライアントデバイスがすでに有するオブジェクトをクライアントデバイスが使用することを可能にするであろう。
【００９１】
よりよい手法は、本開示で説明されているブロックアグリゲーション技法を使用することである。説明された技法は、アグリゲートオブジェクトが１より多いソースブロックに分けられる必要がある特定の場合において、「ｔａｒ」または「ｚｉｐ」手法の域をはるかに超えている手法によって性能を改善するためにクライアントデバイスがすでに有する個々のオブジェクトをクライアントデバイスが使用することを可能にする。
【００９２】
性能の差異の理由は、「ｔａｒ」または「ｚｉｐ」手法を用いて、クライアントデバイスにてすでに存在するデータは、ソースブロックにわたって不均等に拡散されうる、ということである。例えば、クライアントデバイスは、第１のソースブロックの９０％を有しうるが、第２のソースブロックの１０％のみを有しうる。典型的な送信において、ソースブロックのパケットがインタリーブされる相応の理由がある。したがって、第２のソースブロックについてのデータの９０％を受信するために、クライアントデバイスは、すべてのソースブロックについてのデータの９０％を受信する必要がある。上記の例では、クライアントデバイスがデータの９０％をすでに有していた第１のソースブロックの９０％をクライアントデバイスは受信するであろう。したがって、送信のほとんどが無駄になる。
【００９３】
本開示の説明されたブロックアグリゲーション技法は、クライアントデバイスにてすでに存在しているデータが可能な限りソースブロックにわたって均等に拡散されるということを確実にする（すなわち、プロパティＡ）。したがって、クライアントデバイスにてすでに知られている各ソースブロックのフラクションは、各ソースブロックとほぼ同じであり、無駄な受信量は、減らされるまたは最小化される。
【００９４】
いくぶん均等な拡散を達成する別の手法は、単純なコンカチネーションによるアグリゲートオブジェクトを最初に構築し、そのあとでアグリゲートオブジェクトをソースブロックに分割する前にそのアグリゲートオブジェクトのシンボルの順序をランダムに変えることであろう。本開示の説明されているブロックアグリゲーション技法は、２つの方法におけるそのランダム手法を改善する。
【００９５】
最初に、個々のオブジェクトのソースシンボルの拡散は、説明されたブロックアグリゲーション技法において確定的に均等である。ランダムな手法では、ソースシンボルの拡散は、それほど均等でない場合がある。第２に、非常に大きなアグリゲートオブジェクトにわたるランダムな順列(permutation）は、送信機と受信機の両方において実装するのに非効率である。これは、特に受信機に当てはまる、なぜならば、個々のオブジェクトをリアセンブルするためにデータをシャッフルすることは、特に、フラッシュメモリまたはハードディスクのような遅い記憶デバイスを考慮すると、高価である可能性がある。対照的に、説明されたブロックアグリゲーション技法は、個々のオブジェクトからのデータがソースブロックに含まれるときにはデータはそのソースブロックにおける単一の連続するチャンクに並べられるということ、さらには、データのこのチャンクは同様に個々のオブジェクトの連続部分であるということ、を確実にする。このことは、実装効率を改善する。
【００９６】
第２のユースケースは、大きなバースト停止(burst outages)を伴うチャネル上のシステマティックな小さい個々のオブジェクト送信のためのものである。この例は、複数の小さい個々のオブジェクトのＡＬ−ＦＥＣベースの送信のケースを考慮し、ここで、（ａ）送信はシステマティックである必要がある、すなわち、個々のオブジェクトに関するソースデータが送信される、（ｂ）オブジェクトは、インタリーブされるというよりはむしろ、シーケンシャルに送信される、（ｃ）送信は、個々のオブジェクトの送信時間と相応またはそれよりも大きい持続時間のバースト停止に悩む、（ｄ）ＦＥＣ保護は、オブジェクトあたりというよりはむしろ、個々のオブジェクトのアグリゲートにわたって提供される。
【００９７】
（ａ）の理由は、ＡＬ−ＦＥＣをサポートしない受信機による後方互換性を確実にすることである。（ｂ）の理由は、個々のオブジェクトが個々に有用であるとき、個々のオブジェクトが受信の間に徐々に利用可能となることが望ましい、ということである。
【００９８】
このユースケースの一例は、個々のオブジェクトが個々のニュースストーリーであるブロードキャストニュースサービスであり、それらはユーザへの提示に個々に有用である。時折、１セットのニュースストーリーのアグリゲートについてのいくつかのリペアデータは、クライアントデバイスが逃した個々のニュースストーリーをクライアントデバイスが埋めることを可能にするように送信される。
【００９９】
一般的な場合では、クライアントデバイスは、小さな個々のオブジェクトについてのソースデータのサブセットを受信しうる、そしてそれは、ＡＬ−ＦＥＣ復号プロセスに対してソースデータとして入力されることができる。（ｃ）より、クライアントデバイスは、個々のオブジェクトの１つ１つのランダムな集まりというよりはむしろ、個々のオブジェクトのサブセットを有するようである。クライアントデバイスは、続いてアグリゲートオブジェクトについてのリペアデータを受信し、そして、第１のユースケースにおける正確な考慮はソースおよびリペアデータの組み合わせに、およびソースブロックの全域にわたり受信されたソースデータの均一な分布の利益に適用する。
【０１００】
説明に関する考慮
ここでの開示に関連して説明された様々な説明のための論理ブロック、モジュールおよび回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、あるいは他のプログラマブル論理デバイス、ディスクリートゲートあるいはトランジスタ論理、ディスクリートハードウェアコンポーネント、あるいは、ここに説明された機能を実行するように設計されたそれらのいずれの組み合わせ、で実装または実行されうる。汎用プロセッサは、マイクロプロセッサであってもよいが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、あるいはステートマシンでありうる。プロセッサも、コンピューティングデバイスの組み合わせ、例えばＤＳＰとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと併せて１以上のマイクロプロセッサ、または他のそのような構成、として実装されうる。
【０１０１】
ここでの開示に関連して説明された方法またはアルゴリズムのブロックは、直接ハードウェア、プロセッサによって実行されたソフトウェアモジュール、または２つの組み合わせで具現化されうる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭあるいは当技術分野において知られている記憶媒体のいずれの他の形態、において存在しうる。例示的なストレージ媒体は、プロセッサに結合されるので、プロセッサがストレージ媒体から情報を読み取ることができ、またストレージ媒体に情報を書き込むことができる。あるいは、ストレージ媒体は、プロセッサに一体化されうる。プロセッサとストレージ媒体は、ＡＳＩＣにおいて存在しうる。ＡＳＩＣは、ユーザ端末に存在しうる。あるいは、プロセッサとストレージ媒体は、ユーザ端末において、ディスクリートコンポーネントとして存在しうる。
【０１０２】
１つまたは複数の例示的な設計では、説明された機能は、ハードウェア、プロセッサによって実行されるソフトウェア、ファームウェアあるいはそれらのいずれかの組み合わせで実装されうる。プロセッサによって実行されるソフトウェアで実装される場合には、機能は、コンピュータ可読媒体上で、１つまたは複数の命令あるいはコードとして、格納または送信されうる。コンピュータ可読媒体は、1つの場所から別の場所へのコンピュータプログラムの移送(transfer)を容易にするいずれの媒体も含んでいる、コンピュータストレージ媒体(computer storage media)と通信媒体(communication media)の両方を含む。ストレージ媒体は、汎用コンピュータまたは専用コンピュータによってアクセスされることができる、いずれの利用可能な媒体でありうる。例として、また限定されないが、コンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭあるいは他の光学ディスクストレージ、磁気ディスクストレージあるいは他の磁気ストレージデバイス、あるいは、命令あるいはデータストラクチャの形態において所望のプログラムコード手段を保存あるいは搬送するために使用されることができる、また、汎用または専用コンピュータ、または、汎用または専用プロセッサによってアクセスされることができる、任意の他の媒体も備えることができる。また、いずれの接続もコンピュータ可読媒体(computer-readable medium)と適切に名付けられる。例えば、ソフトウェアがウェブサイト、サーバ、あるいは、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者ライン（ＤＳＬ）、あるいは赤外線、無線、およびマイクロ波のような無線技術を使用している他の遠隔ソース、から送信される場合には、そのときには、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、あるいは赤外線、無線、およびマイクロ波のような無線技術は、媒体の定義に含まれている。ここで使用されるディスク(disk)とディスク(disc)は、コンパクトディスク（ＣＤ）、レーザーディスク(登録商標)、光学ディスク、デジタル汎用ディスク（ＤＶＤ）、フロッピー(登録商標)ディスク(disk)およびブルーレイディスクを含んでおり、「ディスク(disks)」は、大抵、データを磁気的に再生し、「ディスク(discs)」は、レーザーで光学的に再生する。上記のものの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１０３】
上記説明は、当業者が、説明された装置、システムおよび方法を行なうおよび/または使用することを可能にするよう提供される。本開示に対する様々な修正は、当業者にとっては容易に明らかであろう、そして、ここにおいて定義された包括的な原理は、本開示の精神あるいは範囲から逸脱することなく、他の変形に適用されうる。したがって、本開示は、ここにおいて記載される例および設計に限定されるべきではなく、ここで開示された原理および新規な特徴に整合する最も広い範囲が与えられるべきである。
【図１】
2015084540.tif 000003
【図２】
2015084540.tif 000004
【図３】
2015084540.tif 000005
【手続補正書】
【提出日】平成26年12月26日(2014.12.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
通信システムにおいて送信機から受信機へとデータを送信するために、ソースシンボルにｍ個の個々のオブジェクトをマッピングする方法であって、該ｍ個の個々のオブジェクトは、オブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、該方法は、
該ｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートすることであって、ｊ＝１からｍについての各個々のオブジェクトｊについて、該個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することを含む、アグリゲートすることと、そして
順方向誤り訂正符号化のために該アグリゲートオブジェクトをＺ個のソースブロックへと分割することと、ここで、該分割することは、該Ｚ個のソースブロックの第１のソースブロック内の各個々のオブジェクトｊのソースシンボルの第１の数ＮＳＳ（ｊ，ｋ）を計算することと、該Ｚ個のソースブロックの第２のソースブロック内の各個々のオブジェクトｊのソースシンボルの第２の数ＮＳＳ（ｊ，ｋ）を計算することと、を含む、
を備え、
ここで、各個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まりＮＳＳ（ｊ，ｋ）＞０についての最後のソースブロックまでの、連続ソースブロックｋ内で連続的に並べられ、ここでｋ＝０からＺ−１、方法。
【請求項２】
各個々のオブジェクトｊのデータのバイトは、ソースシンボル０から始まりソースシンボルＳ（ｊ）−１まである、該個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボル内で連続的に並べられる、請求項１に記載の方法。
【請求項３】
該ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドすること、をさらに備える請求項１に記載の方法。
【請求項４】
該アグリゲートオブジェクトをＺ個のソースブロックへと分割することは、１〜ｍまでの各整数ｊについて、最初のｊ個の個々のオブジェクトにおいてソースシンボルのアグリゲート数ＳＳ（ｊ）を計算することをさらに含み、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の合計である、請求項１に記載の方法。
【請求項５】
リペアシンボルを生成するために該アグリゲートオブジェクトの該Ｚ個のソースブロックを符号化すること、をさらに備える請求項１に記載の方法。
【請求項６】
該ソースシンボルをソースパケットにマッピングし、該リペアシンボルをリペアパケットにマッピングすること、をさらに備える請求項５に記載の方法。
【請求項７】
該受信機に該リペアパケットと該ソースパケットのうちの１つまたは複数を送信すること、をさらに備える請求項６に記載の方法。
【請求項８】
通信システムにおいて送信機から受信機へと送信されるデータについてのソースシンボルにマッピングされた個々のオブジェクトを復元するための方法であって、該方法は、
データの１つまたは複数のパケットを受信することと、データの各パケットは、該個々のオブジェクトの少なくとも１つのソースシンボル、またはアグリゲートオブジェクトのソースブロックについてのリペアデータを含んでいる少なくとも１つのリペアシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該個々のオブジェクトは該アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは順方向誤り訂正符号化のためにソースブロックに分割され、該個々のオブジェクトのソースシンボルの第１の数は第１のソースブロックに含まれ、該個々のオブジェクトのソースシンボルの第２の数は第２のソースブロックに含まれ、該個々のオブジェクトの該ソースシンボルは該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられる、および
データの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元することと、
を備える、
方法。
【請求項９】
該個々のオブジェクトを復元することは、該個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルとデータの該１つまたは複数の受信されたパケットを使用して、該個々のオブジェクトを復元することをさらに備える、請求項８に記載の方法。
【請求項１０】
通信システムにおいて受信機へデータを送信するために、ソースシンボルにｍ個の個々のオブジェクトをマッピングするように構成された装置であって、該ｍ個の個々のオブジェクトは、オブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、該装置は、
該ｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートし、順方向誤り訂正符号化のために該アグリゲートオブジェクトをＺ個のソースブロックへと分割するように構成されたプロセッサ、ここで、該分割することは、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、該個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することと、該Ｚ個のソースブロックの第１のソースブロック内の各個々のオブジェクトｊのソースシンボルの第１の数ＮＳＳ（ｊ，ｋ）を計算することと、該Ｚ個のソースブロックの第２のソースブロック内の各個々のオブジェクトｊのソースシンボルの第２の数ＮＳＳ（ｊ，ｋ）を計算することと、を含む、
を備え、
ここで、各個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まりＮＳＳ（ｊ，ｋ）＞０についての最後のソースブロックまでである、連続ソースブロックｋ内で連続的に並べられ、ここでｋ＝０からＺ−１、装置。
【請求項１１】
各個々のオブジェクトｊのデータのバイトは、ソースシンボル０から始まりソースシンボルＳ（ｊ）−１まで、該個々のオブジェクトｊについて、該Ｓ（ｊ）ソースシンボル内で連続的に並べられる、請求項１０に記載の装置。
【請求項１２】
該プロセッサは、該ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドするようにさらに構成される、請求項１０に記載の装置。
【請求項１３】
該プロセッサは、最初のｊ個の個々のオブジェクトにおいてソースシンボルのアグリゲート数ＳＳ（ｊ）を計算するようにさらに構成され、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の合計である、請求項１０に記載の装置。
【請求項１４】
該プロセッサに通信的に結合され、リペアシンボルを生成するために該アグリゲートオブジェクトの該Ｚ個のソースブロックを符号化するように構成された符号器、をさらに備える請求項１０に記載の装置。
【請求項１５】
該プロセッサは、該ソースシンボルをソースパケットにマッピングし、該リペアシンボルをリペアパケットにマッピングするようにさらに構成される、請求項１４に記載の装置。
【請求項１６】
該受信機に該リペアパケットと該ソースパケットのうちの１つまたは複数を送信するように構成された送信機、をさらに備える請求項１５に記載の装置。
【請求項１７】
通信システムにおいて送信機から送信されたデータについてソースシンボルにマッピングされた個々のオブジェクトを復元するように構成された装置であって、該装置は、
データの１つまたは複数のパケットを受信するように構成された受信機と、データの各パケットは、アグリゲートオブジェクトのソースブロックについてのリペアデータを含んでいる少なくとも１つのリペアシンボルまたは該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該個々のオブジェクトは該アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは順方向誤り訂正符号化のためにソースブロックに分割され、該個々のオブジェクトのソースシンボルの第１の数は第１のソースブロックに含まれ、該個々のオブジェクトのソースシンボルの第２の数は第２のソースブロックに含まれ、該個々のオブジェクトの該ソースシンボルは該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられる、
該受信機に通信的に結合され、データの該１つまたは複数の受信されたパケットを使用して、該個々のオブジェクトを復元するように構成されたプロセッサと、
を備える、装置。
【請求項１８】
該プロセッサは、該個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルと、データの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元するようにさらに構成される、請求項１７に記載の装置。
【請求項１９】
通信システムにおいて送信機から受信機へとデータを送信するために、ソースシンボルにｍ個の個々のオブジェクトをマッピングするための非一時的なコンピュータプログラムプロダクトであって、該ｍ個の個々のオブジェクトは、オブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、該プロダクトは、
プロセッサに、
該ｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートさせることであって、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、該個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することを含む、アグリゲートさせることと、
順方向誤り訂正符号化のために該アグリゲートオブジェクトをＺ個のソースブロックへと分割させることと、ここで該分割することは、該Ｚ個のソースブロックの第１のソースブロック内の各個々のオブジェクトｊのソースシンボルの第１の数ＮＳＳ（ｊ，ｋ）を計算することと、該Ｚ個のソースブロックの第２のソースブロック内の各個々のオブジェクトｊのソースシンボルの第２の数ＮＳＳ（ｊ，ｋ）を計算することと、を含む、
を実行するように構成されたプロセッサ可読命令を格納するプロセッサ可読媒体を具備し、
ここで、各個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まりＮＳＳ（ｊ，ｋ）＞０についての最後のソースブロックまである、連続ソースブロックｋ内で連続的に並べられ、ここでｋ＝０からＺ−１、非一時的なコンピュータプログラムプロダクト。
【請求項２０】
該プロセッサ可読媒体は、該プロセッサに、ソースシンボル０から始まりソースシンボルＳ（ｊ）−１まで、該個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボル内で各個々のオブジェクトｊのデータのバイトを連続的に並べさせることを実行するようにさらに構成される、請求項１９に記載のプロダクト。
【請求項２１】
該プロセッサ可読媒体は、該プロセッサに、該ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドさせることを実行するようにさらに構成される、請求項１９に記載のプロダクト。
【請求項２２】
該プロセッサ可読媒体は、該プロセッサに、１〜ｍまでの各整数ｊについて、最初のｊ個の個々のオブジェクトにおいてソースシンボルのアグリゲート数ＳＳ（ｊ）を計算させることを実行するようにさらに構成され、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の合計である、請求項１９に記載のプロダクト。
【請求項２３】
該プロセッサ可読媒体は、該プロセッサに、リペアシンボルを生成するために該アグリゲートオブジェクトの該Ｚ個のソースブロックを符号化させることを実行するようにさらに構成される、請求項１９に記載のプロダクト。
【請求項２４】
該プロセッサ可読媒体は、該プロセッサに、該ソースシンボルをソースパケットにマッピングさせ、該リペアシンボルをリペアパケットにマッピングさせることを実行するようにさらに構成される、請求項２３に記載のプロダクト。
【請求項２５】
該プロセッサ可読媒体は、該プロセッサに、該受信機に該リペアパケットと該ソースパケットのうちの１つまたは複数を送信させることを実行するようにさらに構成される、請求項２４に記載のプロダクト。
【請求項２６】
通信システムにおいて送信機から受信機へと送信されたデータについてソースシンボルにマッピングされた個々のオブジェクトを復元するための非一時的なコンピュータプログラムプロダクトであって、該プロダクトは、
プロセッサに、
データの１つまたは複数のパケットを受信させることと、データの各パケットは、アグリゲートオブジェクトのソースブロックについてのリペアデータを含んでいる少なくとも１つのリペアシンボルまたは該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該個々のオブジェクトは該アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは順方向誤り訂正符号化のためにソースブロックに分割され、該個々のオブジェクトのソースシンボルの第１の数は第１のソースブロックに含まれ、該個々のオブジェクトのソースシンボルの第２の数は第２のソースブロックに含まれ、該個々のオブジェクトの該ソースシンボルは該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられる、
データの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元させることと、
を実行するように構成されたプロセッサ可読命令を格納するプロセッサ可読媒体を備える、非一時的なコンピュータプログラムプロダクト。
【請求項２７】
該プロセッサ可読媒体は、該プロセッサに、該個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルと、データの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元させることを実行するようにさらに構成される、請求項２６に記載のプロダクト。
【請求項２８】
通信システムにおいて送信機から受信機へとデータを送信するために、ｍ個の個々のオブジェクトをソースシンボルにマッピングするように構成されたシステムであって、該ｍ個の個々のオブジェクトは、オブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、該システムは、
該ｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートするための手段であって、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、該個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することを含む、アグリゲートするための手段と、
順方向誤り訂正符号化のために該アグリゲートオブジェクトをＺ個のソースブロックへと分割するための手段と、ここで、該分割することは、該Ｚ個のソースブロックの第１のソースブロック内の各個々のオブジェクトｊのソースシンボルの第１の数ＮＳＳ（ｊ，ｋ）を計算することと、該Ｚ個のソースブロックの第２のソースブロック内の各個々のオブジェクトｊのソースシンボルの第２の数ＮＳＳ（ｊ，ｋ）を計算することと、を含む、
を備え、
ここで、各個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まりＮＳＳ（ｊ，ｋ）＞０についての最後のソースブロックまでである、連続ソースブロックｋ内で連続的に並べられ、ここでｋ＝０からＺ−１、システム。
【請求項２９】
各個々のオブジェクトｊのデータのバイトは、ソースシンボル０から始まりソースシンボルＳ（ｊ）−１まである、該個々のオブジェクトｊについて該Ｓ（ｊ）ソースシンボル内で連続的に並べられる、請求項２８に記載のシステム。
【請求項３０】
該ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドするための手段、をさらに備える請求項２８に記載のシステム。
【請求項３１】
該アグリゲートオブジェクトをＺ個のソースブロックへと分割するための手段は、１〜ｍまでの各整数ｊについて、最初のｊ個の個々のオブジェクトにおいてソースシンボルのアグリゲート数ＳＳ（ｊ）を計算するための手段、をさらに含み、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の合計である、請求項２８に記載のシステム。
【請求項３２】
リペアシンボルを生成するために該アグリゲートオブジェクトの該Ｚ個のソースブロックを符号化するための手段、をさらに備える請求項２８に記載のシステム。
【請求項３３】
該ソースシンボルをソースパケットにマッピングし、該リペアシンボルをリペアパケットにマッピングするための手段、をさらに備える請求項３２に記載のシステム。
【請求項３４】
該受信機に該リペアパケットと該ソースパケットのうちの１つまたは複数を送信するための手段、をさらに備える請求項３３に記載のシステム。
【請求項３５】
通信システムにおいて送信機から受信機へと送信されたデータについてソースシンボルにマッピングされた個々のオブジェクトを復元するように構成されたシステムであって、該システムは、
データの１つまたは複数のパケットを受信するための手段と、データの各パケットは、アグリゲートオブジェクトのソースブロックについてのリペアデータを含んでいる少なくとも１つのリペアシンボルまたは該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該個々のオブジェクトは該アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは順方向誤り訂正符号化のためにソースブロックに分割され、該個々のオブジェクトのソースシンボルの第１の数は第１のソースブロックに含まれ、該個々のオブジェクトのソースシンボルの第２の数は第２のソースブロックに含まれ、該個々のオブジェクトの該ソースシンボルは該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられる、
データの該１つまたは複数の受信されたパケットを使用して、該個々のオブジェクトを復元するための手段と、
を備える、システム。
【請求項３６】
該個々のオブジェクトを復元するための手段は、該個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルとデータの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元するための手段、をさらに含む、請求項３５に記載のシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１０３
【補正方法】変更
【補正の内容】
【０１０３】
上記説明は、当業者が、説明された装置、システムおよび方法を行なうおよび/または使用することを可能にするよう提供される。本開示に対する様々な修正は、当業者にとっては容易に明らかであろう、そして、ここにおいて定義された包括的な原理は、本開示の精神あるいは範囲から逸脱することなく、他の変形に適用されうる。したがって、本開示は、ここにおいて記載される例および設計に限定されるべきではなく、ここで開示された原理および新規な特徴に整合する最も広い範囲が与えられるべきである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］通信システムにおいて送信機から受信機へとデータを送信するために、ソースシンボルにｍ個の個々のオブジェクトをマッピングする方法であって、該ｍ個の個々のオブジェクトは、オブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、該方法は、
該ｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートすることであって、ｊ＝１からｍについての各個々のオブジェクトｊについて、該個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することを含む、アグリゲートすることと、そして
該アグリゲートオブジェクトをＺ個のソースブロックへと分割することであって、ｋ＝０からＺ−１についての各ソースブロックｋについて、および、ｊ＝１からｍについての各個々のオブジェクトｊについて、ソースブロックｋ内の個々のオブジェクトｊのソースシンボルの数ＮＳＳ（ｊ，ｋ）を計算することを含む、分割することと、
を備え、
ここで、各個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まりＮＳＳ（ｊ，ｋ）＞０についての最後のソースブロックまでの、連続ソースブロック内で連続的に並べられる、方法。
［２］各個々のオブジェクトｊのデータのバイトは、ソースシンボル０から始まりソースシンボルＳ（ｊ）−１まである、該個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボル内で連続的に並べられる、［１］に記載の方法。
［３］該ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドすること、をさらに備える［１］に記載の方法。
［４］該アグリゲートオブジェクトをＺ個のソースブロックへと分割することは、１〜ｍまでの各整数ｊについて、最初のｊ個の個々のオブジェクトにおいてソースシンボルのアグリゲート数ＳＳ（ｊ）を計算することをさらに含み、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の合計である、［１］に記載の方法。
［５］リペアシンボルを生成するために該アグリゲートオブジェクトの該Ｚ個のソースブロックを符号化すること、をさらに備える［１］に記載の方法。
［６］該ソースシンボルをソースパケットにマッピングし、該リペアシンボルをリペアパケットにマッピングすること、をさらに備える［５］に記載の方法。
［７］該受信機に該リペアパケットと該ソースパケットのうちの１つまたは複数を送信すること、をさらに備える［６］に記載の方法。
［８］通信システムにおいて送信機から受信機へと送信されるデータについてのソースシンボルにマッピングされた個々のオブジェクトを復元するための方法であって、該個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは、１つまたは複数のソースブロックに分割され、該個々のオブジェクトの該ソースシンボルは、該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられており、該方法は、
データの１つまたは複数のパケットを受信することと、データの各パケットは、該個々のオブジェクトの少なくとも１つのソースシンボル、または該アグリゲートオブジェクトの該ソースブロックのうちの１つについてのリペアデータを含んでいる少なくとも１つのリペアシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも１つのソースシンボルを含み、および
データの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元することと、
を備える、
方法。
［９］該個々のオブジェクトを復元することは、該個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルとデータの該１つまたは複数の受信されたパケットを使用して、該個々のオブジェクトを復元することをさらに備える、［８］に記載の方法。
［１０］通信システムにおいて受信機へデータを送信するために、ソースシンボルにｍ個の個々のオブジェクトをマッピングするように構成された装置であって、該ｍ個の個々のオブジェクトは、オブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、該装置は、
該ｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートし、該アグリゲートオブジェクトをＺ個のソースブロックへと分割するように構成されたプロセッサであって、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、該個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することと、ｋ＝０〜Ｚ−１についての各ソースブロックｋについて、および、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、ソースブロックｋにおける個々のオブジェクトｊのソースシンボルの数ＮＳＳ（ｊ，ｋ）を計算することとを含む、アグリゲートし分割するように構成されたプロセッサ、
を備え、
ここで、各個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まりＮＳＳ（ｊ，ｋ）＞０についての最後のソースブロックまでである、連続ソースブロック内で連続的に並べられる、装置。
［１１］各個々のオブジェクトｊのデータのバイトは、ソースシンボル０から始まりソースシンボルＳ（ｊ）−１まで、該個々のオブジェクトｊについて、該Ｓ（ｊ）ソースシンボル内で連続的に並べられる、［１０］に記載の装置。
［１２］該プロセッサは、該ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドするようにさらに構成される、［１０］に記載の装置。
［１３］該プロセッサは、最初のｊ個の個々のオブジェクトにおいてソースシンボルのアグリゲート数ＳＳ（ｊ）を計算するようにさらに構成され、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の合計である、［１０］に記載の装置。
［１４］該プロセッサに通信的に結合され、リペアシンボルを生成するために該アグリゲートオブジェクトの該Ｚ個のソースブロックを符号化するように構成された符号器、をさらに備える［１０］に記載の装置。
［１５］該プロセッサは、該ソースシンボルをソースパケットにマッピングし、該リペアシンボルをリペアパケットにマッピングするようにさらに構成される、［１４］に記載の装置。
［１６］該受信機に該リペアパケットと該ソースパケットのうちの１つまたは複数を送信するように構成された送信機、をさらに備える［１５］に記載の装置。
［１７］通信システムにおいて送信機から送信されたデータについてソースシンボルにマッピングされた個々のオブジェクトを復元するように構成された装置であって、該個々のオブジェクトは、アグリゲートオブジェクト内に他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは１つまたは複数のソースブロックに分割され、該個々のオブジェクトの該ソースシンボルは、該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられており、該装置は、
データの１つまたは複数のパケットを受信するように構成された受信機と、データの各パケットは、該アグリゲートオブジェクトの該ソースブロックのうちの１つについてのリペアデータを含んでいる少なくとも１つのリペアシンボルまたは該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも１つのソースシンボルを含み、
該受信機に通信的に結合され、データの該１つまたは複数の受信されたパケットを使用して、該個々のオブジェクトを復元するように構成されたプロセッサと、
を備える、装置。
［１８］該プロセッサは、該個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルと、データの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元するようにさらに構成される、［１７］に記載の装置。
［１９］通信システムにおいて送信機から受信機へとデータを送信するために、ソースシンボルにｍ個の個々のオブジェクトをマッピングするためのコンピュータプログラムプロダクトであって、該ｍ個の個々のオブジェクトは、オブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、該プロダクトは、
プロセッサに、
該ｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートさせることであって、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、該個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することを含む、アグリゲートさせることと、
該アグリゲートオブジェクトをＺ個のソースブロックへと分割させることであって、ｋ＝０〜Ｚ−１についての各ソースブロックｋについて、および、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、ソースブロックｋにおける個々のオブジェクトｊのソースシンボルの数ＮＳＳ（ｊ，ｋ）を計算することを含む、分割させることと、
を実行するように構成されたプロセッサ可読命令を格納するプロセッサ可読媒体を具備し、
ここで、各個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まりＮＳＳ（ｊ，ｋ）＞０についての最後のソースブロックまである、連続ソースブロック内で連続的に並べられる、コンピュータプログラムプロダクト。
［２０］該プロセッサ可読媒体は、該プロセッサに、ソースシンボル０から始まりソースシンボルＳ（ｊ）−１まで、該個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボル内で各個々のオブジェクトｊのデータのバイトを連続的に並べさせることを実行するようにさらに構成される、［１９］に記載のプロダクト。
［２１］該プロセッサ可読媒体は、該プロセッサに、該ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドさせることを実行するようにさらに構成される、［１９］に記載のプロダクト。
［２２］該プロセッサ可読媒体は、該プロセッサに、１〜ｍまでの各整数ｊについて、最初のｊ個の個々のオブジェクトにおいてソースシンボルのアグリゲート数ＳＳ（ｊ）を計算させることを実行するようにさらに構成され、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の合計である、［１９］に記載のプロダクト。
［２３］該プロセッサ可読媒体は、該プロセッサに、リペアシンボルを生成するために該アグリゲートオブジェクトの該Ｚ個のソースブロックを符号化させることを実行するようにさらに構成される、［１９］に記載のプロダクト。
［２４］該プロセッサ可読媒体は、該プロセッサに、該ソースシンボルをソースパケットにマッピングさせ、該リペアシンボルをリペアパケットにマッピングさせることを実行するようにさらに構成される、［２３］に記載のプロダクト。
［２５］該プロセッサ可読媒体は、該プロセッサに、該受信機に該リペアパケットと該ソースパケットのうちの１つまたは複数を送信させることを実行するようにさらに構成される、［２４］に記載のプロダクト。
［２６］通信システムにおいて送信機から受信機へと送信されたデータについてソースシンボルにマッピングされた個々のオブジェクトを復元するためのコンピュータプログラムプロダクトであって、該個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは、１つまたは複数のソースブロックに分割され、該個々のオブジェクトの該ソースシンボルは、該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられており、該プロダクトは、
プロセッサに、
データの１つまたは複数のパケットを受信させることと、データの各パケットは、該アグリゲートオブジェクトの該ソースブロックのうちの１つについてのリペアデータを含んでいる少なくとも１つのリペアシンボルまたは該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも１つのソースシンボルを含み、
データの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元させることと、
を実行するように構成されたプロセッサ可読命令を格納するプロセッサ可読媒体を備える、コンピュータプログラムプロダクト。
［２７］該プロセッサ可読媒体は、該プロセッサに、該個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルと、データの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元させることを実行するようにさらに構成される、［２６］に記載のプロダクト。
［２８］通信システムにおいて送信機から受信機へとデータを送信するために、ｍ個の個々のオブジェクトをソースシンボルにマッピングするように構成されたシステムであって、該ｍ個の個々のオブジェクトは、オブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、該システムは、
該ｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートするための手段であって、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、該個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することを含む、アグリゲートするための手段と、
該アグリゲートオブジェクトをＺ個のソースブロックへと分割するための手段であって、ｋ＝０〜Ｚ−１についての各ソースブロックｋについて、および、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、ソースブロックｋにおける個々のオブジェクトｊのソースシンボルの数ＮＳＳ（ｊ，ｋ）を計算することを含む、分割するための手段と、
を備え、
ここで、各個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まりＮＳＳ（ｊ，ｋ）＞０についての最後のソースブロックまでである、連続ソースブロック内で連続的に並べられる、システム。
［２９］各個々のオブジェクトｊのデータのバイトは、ソースシンボル０から始まりソースシンボルＳ（ｊ）−１まである、該個々のオブジェクトｊについて該Ｓ（ｊ）ソースシンボル内で連続的に並べられる、［２８］に記載のシステム。
［３０］該ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドするための手段、をさらに備える［２８］に記載のシステム。
［３１］該アグリゲートオブジェクトをＺ個のソースブロックへと分割するための手段は、１〜ｍまでの各整数ｊについて、最初のｊ個の個々のオブジェクトにおいてソースシンボルのアグリゲート数ＳＳ（ｊ）を計算するための手段、をさらに含み、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の合計である、［２８］に記載のシステム。
［３２］リペアシンボルを生成するために該アグリゲートオブジェクトの該Ｚ個のソースブロックを符号化するための手段、をさらに備える［２８］に記載のシステム。
［３３］該ソースシンボルをソースパケットにマッピングし、該リペアシンボルをリペアパケットにマッピングするための手段、をさらに備える［３２］に記載のシステム。
［３４］該受信機に該リペアパケットと該ソースパケットのうちの１つまたは複数を送信するための手段、をさらに備える［３３］に記載のシステム。
［３５］通信システムにおいて送信機から受信機へと送信されたデータについてソースシンボルにマッピングされた個々のオブジェクトを復元するように構成されたシステムであって、該個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは、１つまたは複数のソースブロックに分割され、該個々のオブジェクトの該ソースシンボルは、該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられており、該システムは、
データの１つまたは複数のパケットを受信するための手段と、データの各パケットは、該アグリゲートオブジェクトの該ソースブロックのうちの１つについてのリペアデータを含んでいる少なくとも１つのリペアシンボルまたは該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも１つのソースシンボルを含み、
データの該１つまたは複数の受信されたパケットを使用して、該個々のオブジェクトを復元するための手段と、
を備える、システム。
［３６］該個々のオブジェクトを復元するための手段は、該個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルとデータの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元するための手段、をさらに含む、［３５］に記載のシステム。
【手続補正書】
【提出日】平成27年3月4日(2015.3.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
通信システムにおいて送信機から受信機へとデータを送信するために、ソースシンボルにｍ個の個々のオブジェクトをマッピングする方法であって、該ｍ個の個々のオブジェクトは、オブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、該方法は、
該ｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートすることであって、ｊ＝１からｍについての各個々のオブジェクトｊについて、該個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することを含む、アグリゲートすることと、そして
順方向誤り訂正符号化のために該アグリゲートオブジェクトをＺ個のソースブロックへと分割することと、ここで、該分割することは、該Ｚ個のソースブロックの第１のソースブロック内の各個々のオブジェクトｊのソースシンボルの第１の数ＮＳＳ（ｊ，ｋ）を計算することと、該Ｚ個のソースブロックの第２のソースブロック内の各個々のオブジェクトｊのソースシンボルの第２の数ＮＳＳ（ｊ，ｋ）を計算することと、を含む、
を備え、
ここで、各個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まりＮＳＳ（ｊ，ｋ）＞０についての最後のソースブロックまでの、連続ソースブロックｋ内で連続的に並べられ、ここでｋ＝０からＺ−１、方法。
【請求項２】
各個々のオブジェクトｊのデータのバイトは、ソースシンボル０から始まりソースシンボルＳ（ｊ）−１まである、該個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボル内で連続的に並べられる、請求項１に記載の方法。
【請求項３】
該ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドすること、をさらに備える請求項１に記載の方法。
【請求項４】
該アグリゲートオブジェクトをＺ個のソースブロックへと分割することは、１〜ｍまでの各整数ｊについて、最初のｊ個の個々のオブジェクトにおいてソースシンボルのアグリゲート数ＳＳ（ｊ）を計算することをさらに含み、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の合計である、請求項１に記載の方法。
【請求項５】
リペアシンボルを生成するために該アグリゲートオブジェクトの該Ｚ個のソースブロックを符号化すること、をさらに備える請求項１に記載の方法。
【請求項６】
該ソースシンボルをソースパケットにマッピングし、該リペアシンボルをリペアパケットにマッピングすること、をさらに備える請求項５に記載の方法。
【請求項７】
該受信機に該リペアパケットと該ソースパケットのうちの１つまたは複数を送信すること、をさらに備える請求項６に記載の方法。
【請求項８】
通信システムにおいて送信機から受信機へと送信されるデータについてのソースシンボルにマッピングされた個々のオブジェクトを復元するための方法であって、該方法は、
データの１つまたは複数のパケットを受信することと、データの各パケットは、該個々のオブジェクトの少なくとも１つのソースシンボル、またはアグリゲートオブジェクトのソースブロックについてのリペアデータを含んでいる少なくとも１つのリペアシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該個々のオブジェクトは該アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは順方向誤り訂正符号化のためにソースブロックに分割され、該個々のオブジェクトのソースシンボルの第１の数は第１のソースブロックに含まれ、該個々のオブジェクトのソースシンボルの第２の数は第２のソースブロックに含まれ、該個々のオブジェクトの該ソースシンボルは該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられる、および
データの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元することと、
を備える、
方法。
【請求項９】
該個々のオブジェクトを復元することは、該個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルとデータの該１つまたは複数の受信されたパケットを使用して、該個々のオブジェクトを復元することをさらに備える、請求項８に記載の方法。
【請求項１０】
通信システムにおいて受信機へデータを送信するために、ソースシンボルにｍ個の個々のオブジェクトをマッピングするように構成された装置であって、該ｍ個の個々のオブジェクトは、オブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、該装置は、
該ｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートし、順方向誤り訂正符号化のために該アグリゲートオブジェクトをＺ個のソースブロックへと分割するように構成されたプロセッサ、ここで、該分割することは、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、該個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することと、該Ｚ個のソースブロックの第１のソースブロック内の各個々のオブジェクトｊのソースシンボルの第１の数ＮＳＳ（ｊ，ｋ）を計算することと、該Ｚ個のソースブロックの第２のソースブロック内の各個々のオブジェクトｊのソースシンボルの第２の数ＮＳＳ（ｊ，ｋ）を計算することと、を含む、
を備え、
ここで、各個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まりＮＳＳ（ｊ，ｋ）＞０についての最後のソースブロックまでである、連続ソースブロックｋ内で連続的に並べられ、ここでｋ＝０からＺ−１、装置。
【請求項１１】
各個々のオブジェクトｊのデータのバイトは、ソースシンボル０から始まりソースシンボルＳ（ｊ）−１まで、該個々のオブジェクトｊについて、該Ｓ（ｊ）ソースシンボル内で連続的に並べられる、請求項１０に記載の装置。
【請求項１２】
該プロセッサは、該ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドするようにさらに構成される、請求項１０に記載の装置。
【請求項１３】
該プロセッサは、最初のｊ個の個々のオブジェクトにおいてソースシンボルのアグリゲート数ＳＳ（ｊ）を計算するようにさらに構成され、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の合計である、請求項１０に記載の装置。
【請求項１４】
該プロセッサに通信的に結合され、リペアシンボルを生成するために該アグリゲートオブジェクトの該Ｚ個のソースブロックを符号化するように構成された符号器、をさらに備える請求項１０に記載の装置。
【請求項１５】
該プロセッサは、該ソースシンボルをソースパケットにマッピングし、該リペアシンボルをリペアパケットにマッピングするようにさらに構成される、請求項１４に記載の装置。
【請求項１６】
該受信機に該リペアパケットと該ソースパケットのうちの１つまたは複数を送信するように構成された送信機、をさらに備える請求項１５に記載の装置。
【請求項１７】
通信システムにおいて送信機から送信されたデータについてソースシンボルにマッピングされた個々のオブジェクトを復元するように構成された装置であって、該装置は、
データの１つまたは複数のパケットを受信するように構成された受信機と、データの各パケットは、アグリゲートオブジェクトのソースブロックについてのリペアデータを含んでいる少なくとも１つのリペアシンボルまたは該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該個々のオブジェクトは該アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは順方向誤り訂正符号化のためにソースブロックに分割され、該個々のオブジェクトのソースシンボルの第１の数は第１のソースブロックに含まれ、該個々のオブジェクトのソースシンボルの第２の数は第２のソースブロックに含まれ、該個々のオブジェクトの該ソースシンボルは該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられる、
該受信機に通信的に結合され、データの該１つまたは複数の受信されたパケットを使用して、該個々のオブジェクトを復元するように構成されたプロセッサと、
を備える、装置。
【請求項１８】
該プロセッサは、該個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルと、データの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元するようにさらに構成される、請求項１７に記載の装置。
【請求項１９】
通信システムにおいて送信機から受信機へとデータを送信するために、ソースシンボルにｍ個の個々のオブジェクトをマッピングするためのプロセッサ可読記憶媒体であって、該ｍ個の個々のオブジェクトは、オブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、該プロセッサ可読記憶媒体は、
プロセッサに、
該ｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートさせることであって、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、該個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することを含む、アグリゲートさせることと、
順方向誤り訂正符号化のために該アグリゲートオブジェクトをＺ個のソースブロックへと分割させることと、ここで該分割することは、該Ｚ個のソースブロックの第１のソースブロック内の各個々のオブジェクトｊのソースシンボルの第１の数ＮＳＳ（ｊ，ｋ）を計算することと、該Ｚ個のソースブロックの第２のソースブロック内の各個々のオブジェクトｊのソースシンボルの第２の数ＮＳＳ（ｊ，ｋ）を計算することと、を含む、
を実行するように構成されたプロセッサ可読命令を格納し、
ここで、各個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まりＮＳＳ（ｊ，ｋ）＞０についての最後のソースブロックまである、連続ソースブロックｋ内で連続的に並べられ、ここでｋ＝０からＺ−１、プロセッサ可読記憶媒体。
【請求項２０】
該プロセッサ可読記憶媒体は、該プロセッサに、ソースシンボル０から始まりソースシンボルＳ（ｊ）−１まで、該個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボル内で各個々のオブジェクトｊのデータのバイトを連続的に並べさせることを実行するようにさらに構成される、請求項１９に記載のプロセッサ可読記憶媒体。
【請求項２１】
該プロセッサ可読記憶媒体は、該プロセッサに、該ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドさせることを実行するようにさらに構成される、請求項１９に記載のプロセッサ可読記憶媒体。
【請求項２２】
該プロセッサ可読記憶媒体は、該プロセッサに、１〜ｍまでの各整数ｊについて、最初のｊ個の個々のオブジェクトにおいてソースシンボルのアグリゲート数ＳＳ（ｊ）を計算させることを実行するようにさらに構成され、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の合計である、請求項１９に記載のプロセッサ可読記憶媒体。
【請求項２３】
該プロセッサ可読記憶媒体は、該プロセッサに、リペアシンボルを生成するために該アグリゲートオブジェクトの該Ｚ個のソースブロックを符号化させることを実行するようにさらに構成される、請求項１９に記載のプロセッサ可読記憶媒体。
【請求項２４】
該プロセッサ可読記憶媒体は、該プロセッサに、該ソースシンボルをソースパケットにマッピングさせ、該リペアシンボルをリペアパケットにマッピングさせることを実行するようにさらに構成される、請求項２３に記載のプロセッサ可読記憶媒体。
【請求項２５】
該プロセッサ可読記憶媒体は、該プロセッサに、該受信機に該リペアパケットと該ソースパケットのうちの１つまたは複数を送信させることを実行するようにさらに構成される、請求項２４に記載のプロセッサ可読記憶媒体。
【請求項２６】
通信システムにおいて送信機から受信機へと送信されたデータについてソースシンボルにマッピングされた個々のオブジェクトを復元するためのプロセッサ可読記憶媒体であって、該プロセッサ可読記憶媒体は、
プロセッサに、
データの１つまたは複数のパケットを受信させることと、データの各パケットは、アグリゲートオブジェクトのソースブロックについてのリペアデータを含んでいる少なくとも１つのリペアシンボルまたは該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該個々のオブジェクトは該アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは順方向誤り訂正符号化のためにソースブロックに分割され、該個々のオブジェクトのソースシンボルの第１の数は第１のソースブロックに含まれ、該個々のオブジェクトのソースシンボルの第２の数は第２のソースブロックに含まれ、該個々のオブジェクトの該ソースシンボルは該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられる、
データの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元させることと、
を実行するように構成されたプロセッサ可読命令を格納する、プロセッサ可読記憶媒体。
【請求項２７】
該プロセッサ可読記憶媒体は、該プロセッサに、該個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルと、データの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元させることを実行するようにさらに構成される、請求項２６に記載のプロセッサ可読記憶媒体。
【請求項２８】
通信システムにおいて送信機から受信機へとデータを送信するために、ｍ個の個々のオブジェクトをソースシンボルにマッピングするように構成されたシステムであって、該ｍ個の個々のオブジェクトは、オブジェクト１からオブジェクトｍまで順序づけられ、ｍ＞１であり、該システムは、
該ｍ個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートするための手段であって、ｊ＝１〜ｍについての各個々のオブジェクトｊについて、該個々のオブジェクトｊのデータを含むためにソースシンボルの数Ｓ（ｊ）を計算することを含む、アグリゲートするための手段と、
順方向誤り訂正符号化のために該アグリゲートオブジェクトをＺ個のソースブロックへと分割するための手段と、ここで、該分割することは、該Ｚ個のソースブロックの第１のソースブロック内の各個々のオブジェクトｊのソースシンボルの第１の数ＮＳＳ（ｊ，ｋ）を計算することと、該Ｚ個のソースブロックの第２のソースブロック内の各個々のオブジェクトｊのソースシンボルの第２の数ＮＳＳ（ｊ，ｋ）を計算することと、を含む、
を備え、
ここで、各個々のオブジェクトｊについての該Ｓ（ｊ）ソースシンボルは、ＮＳＳ（ｊ，ｋ）＞０についての最初のソースブロックから始まりＮＳＳ（ｊ，ｋ）＞０についての最後のソースブロックまでである、連続ソースブロックｋ内で連続的に並べられ、ここでｋ＝０からＺ−１、システム。
【請求項２９】
各個々のオブジェクトｊのデータのバイトは、ソースシンボル０から始まりソースシンボルＳ（ｊ）−１まである、該個々のオブジェクトｊについて該Ｓ（ｊ）ソースシンボル内で連続的に並べられる、請求項２８に記載のシステム。
【請求項３０】
該ｍ個の個々のオブジェクトの１つまたは複数のソースシンボルにゼロ値をパッドするための手段、をさらに備える請求項２８に記載のシステム。
【請求項３１】
該アグリゲートオブジェクトをＺ個のソースブロックへと分割するための手段は、１〜ｍまでの各整数ｊについて、最初のｊ個の個々のオブジェクトにおいてソースシンボルのアグリゲート数ＳＳ（ｊ）を計算するための手段、をさらに含み、ＳＳ（０）＝０であり、ＳＳ（ｊ）は、１〜ｊまでのすべての整数ｉにわたるＳ（ｉ）の合計である、請求項２８に記載のシステム。
【請求項３２】
リペアシンボルを生成するために該アグリゲートオブジェクトの該Ｚ個のソースブロックを符号化するための手段、をさらに備える請求項２８に記載のシステム。
【請求項３３】
該ソースシンボルをソースパケットにマッピングし、該リペアシンボルをリペアパケットにマッピングするための手段、をさらに備える請求項３２に記載のシステム。
【請求項３４】
該受信機に該リペアパケットと該ソースパケットのうちの１つまたは複数を送信するための手段、をさらに備える請求項３３に記載のシステム。
【請求項３５】
通信システムにおいて送信機から受信機へと送信されたデータについてソースシンボルにマッピングされた個々のオブジェクトを復元するように構成されたシステムであって、該システムは、
データの１つまたは複数のパケットを受信するための手段と、データの各パケットは、アグリゲートオブジェクトのソースブロックについてのリペアデータを含んでいる少なくとも１つのリペアシンボルまたは該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも１つのソースシンボルを含み、該個々のオブジェクトは該アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは順方向誤り訂正符号化のためにソースブロックに分割され、該個々のオブジェクトのソースシンボルの第１の数は第１のソースブロックに含まれ、該個々のオブジェクトのソースシンボルの第２の数は第２のソースブロックに含まれ、該個々のオブジェクトの該ソースシンボルは該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられる、
データの該１つまたは複数の受信されたパケットを使用して、該個々のオブジェクトを復元するための手段と、
を備える、システム。
【請求項３６】
該個々のオブジェクトを復元するための手段は、該個々のオブジェクトの１つまたは複数の前に取得されたソースシンボルとデータの該１つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元するための手段、をさらに含む、請求項３５に記載のシステム。
【外国語明細書】
2015084540000001.pdf