JP2015084540A - 通信システムにおけるオブジェクトのブロックアグリゲーション - Google Patents

通信システムにおけるオブジェクトのブロックアグリゲーション Download PDF

Info

Publication number
JP2015084540A
JP2015084540A JP2014241844A JP2014241844A JP2015084540A JP 2015084540 A JP2015084540 A JP 2015084540A JP 2014241844 A JP2014241844 A JP 2014241844A JP 2014241844 A JP2014241844 A JP 2014241844A JP 2015084540 A JP2015084540 A JP 2015084540A
Authority
JP
Japan
Prior art keywords
source
individual
data
aggregate
symbols
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014241844A
Other languages
English (en)
Other versions
JP5823598B2 (ja
Inventor
マイケル・ジー.・ルビー
G Rubin Michael
マーク・ワトソン
Watson Mark
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2015084540A publication Critical patent/JP2015084540A/ja
Application granted granted Critical
Publication of JP5823598B2 publication Critical patent/JP5823598B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6356Error control coding in combination with rate matching by repetition or insertion of dummy data, i.e. rate reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】FEC(順方向誤り訂正)復号を効率的に実行する方法を提供する。【解決手段】ソースシンボルにm個の個々のオブジェクトをマッピングする際、m個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートする。順方向誤り訂正符号化のためにアグリゲートオブジェクトをZ個のソースブロックへと分割する。分割に際し、Z個のソースブロックの第1のソースブロック内の各個々のオブジェクトjのソースシンボルの第1の数NSS(j,k)を計算することと、Z個のソースブロックの第2のソースブロック内の各個々のオブジェクトjのソースシンボルの第2の数NSS(j,k)を計算すること、を含む。ここで、各個々のオブジェクトjについてのS(j)ソースシンボルは、NSS(j,k)>0についての最初のソースブロックから始まりNSS(j,k)>0の最後のソースブロックまでの、連続ソースブロックk内で連続的に並べられる。【選択図】図2

Description

[関連出願]
下記の参考文献は、ここに含まれ、すべての目的のために参照により組み込まれる:米国特許第7,418,651号の「File Download and Streaming System」Lubyその他著(以降、「Luby I」と記す)。
[背景]
通信チャネル上での送信者と受信者との間のストリームおよびファイルの送信が多くの文献の主題となっている。できれば、受信者は、ある程度の確実性を伴って、送信者によってチャネル上で送信されたデータの正確な複製を受信することを望む。チャネルが完全な忠実性(fidelity)を有していない(ほぼすべての物理的に実現可能なシステムをカバーする)場合、一つの関心事は、送信中に文字化けしたまたは損失したデータをどのように処理するかということである。損失したデータ(イレージャ(erasure))はしばしば、破損したデータ(誤り(error))よりも処理することが容易である。なぜならば、受信者は、破損したデータが誤りで受信されたデータであることを常に区別できないからである。多くの誤り訂正符号は、イレージャおよび/または誤りを訂正するために開発されている。一般的には、使用される特定の符号は、データが送信されデータの本質が送信されるチャネルの非忠実性についてのある情報に基づいて選ばれる。例えば、チャネルが長い期間非忠実であると知られている場合、バースト誤り符号は、そのアプリケーションに最良に適用される可能性がある。短い期間のみである場合には、低頻度の誤りが予期され、単純なパリティ符号が最良である可能性がある。
データ送信は、送信機と受信機が通信に必要とされる電力(electrical power)および計算能力のすべてを有し、送信機と受信機との間のチャネルが相対的に誤りのない通信を可能にするのに十分クリーンである場合、容易である。データ送信の問題は、チャネルが悪環境にある、または、送信機および/または受信機が制限された機能を有する場合、より困難になる。
1つの解法は、順方向誤り訂正(FEC;forward error correcting)技法の使用であり、ここでは、データは、受信機が送信イレージャおよび誤りから復元することができるように送信機にて符号化される。実行可能である場合には、受信機から送信機への逆方向チャネルは、受信機が誤りについて送信機へ通信することを可能にし、そのあとで、それに応じてその送信プロセスを調整することができる。しかしながら、しばしば、逆方向チャネルは、利用可能ではない、または、実行可能ではない。例えば、送信機が多数の受信機に送信する場合には、送信機は、それらすべての受信機からの逆方向チャネルを扱うことが出来ない可能性がある。結果、通信プロトコルはしばしば、逆方向チャネルなしに設計される必要がある、そのため、送信機は、これらのチャネル状態をすべて見ることなく、さまざまなチャネル状態を扱う必要がある場合がある。
送信機と受信機との間のデータ送信の問題は、受信機が低電力な小型デバイス(ポータブルまたはモバイルでありうる)である必要があり、高帯域幅でデータを受信する必要があるとき、より困難となる。例えば、無線ネットワークは、固定された送信機から、多数または不定数のポータブルまたはモバイル受信機へと、ブロードキャストまたはマルチキャストとして、ファイルまたはストリームを送るように設定されることがあり、なお、受信機は、それらの計算能力、メモリサイズ、利用可能な電力、アンテナサイズ、デバイスサイズ、および他の設計の制約において制約される。
このようなシステムでは、取り組まれるべき考慮事項は、逆方向チャネルが少ないまたは逆方向チャネルがない、制限されたメモリ、制限されたコンピューティングサイクル、モビリティ、およびタイミングを有することを含む。望ましくは、本設計は、潜在的に多数の受信機にデータを送るのに必要とされる送信時間の量を最小化すべきである、なお、個々の受信機は、予測不可能な時間にオンおよびオフにされ、範囲の内外を移動し、リンクエラー、セル変更、優先度の低いファイルまたはストリームパケットが一時的にドロップさせられるセル内の輻輳、等によって損失を被る可能性がある。
データ移送に使用されるパケットプロトコルの場合、ファイル、ストリーム、またはパケットネットワーク上で送信されるべきデータの他のブロックは、等しいサイズの入力シンボルに分割され、入力シンボルは、連続するパケットへと配置される。入力シンボルがビットストリームに実際分けられるにせよ、入力シンボルの「サイズ」はビットで測定されることができ、なお、入力シンボルが2シンボルのアルファベットから選択されるとき、入力シンボルはMビットのサイズを有する。このようなパケットベースの通信システムでは、パケット指向性の符号化スキーム(packet oriented coding scheme)が適切である場合がある。ネットワーク内でイレージャに直面したとしてもオリジナルファイルの正確な複製を対象とされた受信者が復元することを可能にする場合、ファイル送信は信頼性があると呼ばれる。ネットワーク内でイレージャに直面したとしてもタイムリーにストリームの各部分の正確な複製を対象とされた受信者が復元することを可能にする場合、ストリーム送信は信頼性があると呼ばれる。ファイル送信且つストリーム送信はまた、ファイルまたはストリームのある部分が復元不可能であるという点において、または、ストリーミングについては、ストリームのある部分がタイムリーに復元可能でない場合、いくぶん信頼性があることができる。パケット損失がしばしば生じる。なぜならば、散発性輻輳(sporadic congestion)は、そのキャパシティに到達するためにルータにおいてバッファリングメカニズムを引き起こし、それに、入ってくるパケットをドロップするように強要する。移送中のイレージャに対する保護は、多くの研究の主題となっている。
ファイルまたはストリームの入力シンボルからの任意の数の出力シンボルの生成を可能にする連鎖反応符号を使用することが知られている。これは、情報重複方法(information duplicative way)とは対照的に、情報付加方法(information additive way)での、出力シンボルの生成を含む多くの用途を有し、後者では、受信機は、受信機がすでに知っているデータを重複する追加データ(additional data)を受信する。連鎖反応符号を生成し、使用し、動作するための新規の技法は、例えば、米国特許第6,307,487号の「Information Additive Code Generator and Decoder for Communication Systems」,Luby著(「LubyII」)、米国特許第6,320,520号の「Information Additive Group Code Generator and Decoder for Communication Systems」,Lubyその他著(以降「LubyIII」)、米国特許第7,068,729号の「Multi-Stage Code Generator and Decoder for Communication Systems」,Shokrollahiその他著(以降「Shokrollahi」)において示されている。認められる範囲で、これらの全開示は、すべての目的のために参照することによってここに組み込まれている。
連鎖反応符号器によって生成された出力シンボルの1つのプロパティ(property)は、十分な出力シンボルが受信されるとすぐに、オリジナルストリームのオリジナルファイルまたはブロックを、受信機が復元することができるということである。特に、高い確率を伴うオリジナルK個の入力シンボルを復元するために、受信機は、約K+A個の出力シンボルを必要とする。A/Kという比は、「相対受信オーバーヘッド(relative reception overhead)」と呼ばれる。相対受信オーバーヘッドは、入力シンボルの数K、そして、復号器の信頼性に依存する。例えば、一つの特定の実施形態では、Kは、60,000と等しく、相対受信オーバーヘッド5%は、少なくとも1−10−8の確率で、復号器がストリームの入力ファイルまたはブロックを成功裡に復号し、Kは、10,000と等しく、相対受信オーバーヘッド15%は、復号器の同じ成功確率を確実にする。一実施形態では、連鎖反応符号の相対受信オーバーヘッドは、(13*sqrt(K)+200)/Kと計算されることができ、sqrt(K)は、入力シンボルの数Kの平方根である。この実施形態では、連鎖反応符号の相対受信オーバーヘッドは、小さな値Kに対し、大きい傾向がある。
LubyII、LubyIIIおよびShokrollahiは、本開示で説明されるある実施形態で利用されることができるシステムおよび方法の教示を提供する。しかしながら、LubyII、LubyIIIおよびShokrollahiのシステムおよび方法は、本開示で説明された装置、システム、および方法に必要とされておらず、多くの他の変更、変形または代替もまた使用されることができるということが理解されるべきである。
商標名「Raptor」符号の下で、デジタルファウンテン社によって開発され、Shokrollahiで説明されているような、マルチステージ連鎖反応(「MSCR」)符号を使用することもまた知られている。マルチステージ連鎖反応符号は、例えば、ソースファイルまたはソースストリームから入力シンボルを受信し、そこから中間シンボルを生成し、連鎖反応符号を使用して中間シンボルを符号化する、符号器において使用される。より具体的には、複数の冗長シンボルは、送信されるべき、入力シンボルの順序づけられたセット(an ordered set of input symbols)から生成される。複数の出力シンボルは、入力シンボルと冗長シンボルを含むシンボルの結合されたセットから生成され、起こりうる出力シンボルの数は、シンボルの結合されたセットにおけるシンボルの数よりずっと多く、少なくとも1つの出力シンボルは、シンボルの結合されたセットにおける1より多いシンボルから、シンボルの結合されたセットにおけるシンボルすべて未満から、生成されるので、入力シンボルの順序づけられたセットは、出力シンボルの任意の所定数Nから所望の精度に再生成されることができる。
いくつかのアプリケーションに対して、符号の他の変形はより適切であり、または、そうでない場合には、好まれる。
ブロードキャスト、マルチキャスト、または他の設定において複数のオブジェクト(例、ファイル)を送ることにおいて、複数の小さいオブジェクトを1つの大きなオブジェクトにバンドルし、そのあとで、送信のために個々の小さいオブジェクトにFEC符号化を適用することよりも、送信のために大きなオブジェクトにわたってFEC符号化を適用すること、がしばしばより有効である。しかしながら、FEC復号について受信機において利用可能なメモリ量に対してしばしば制約があり、このことはしばしば、FEC復号が効率的に実行されることができるソースブロック(source block)のサイズに対し上限を課す。
通信システムにおいて送信機から受信機へとデータを送信するためにソースシンボル(source symbol)にm個の個々のオブジェクトをマッピングする例示的な方法であって、m個の個々のオブジェクトはオブジェクト1からオブジェクトmまで順序づけられ、m>1であり、本開示によれば、m個の個々のオブジェクトをアグリゲートオブジェクト(aggregate object)にアグリゲートすることであって、j=1〜mについての各個々のオブジェクトjについて、個々のオブジェクトjのデータを含むためにソースシンボルの数S(j)を計算することを含む、アグリゲートすることと、アグリゲートオブジェクトをZ個のソースブロックに分割することであって、k=0〜Z−1についての各ソースブロックkについて、および、j=1〜mについての各個々のオブジェクトjについて、ソースブロックkにおける個々のオブジェクトjのソースシンボルの数NSS(j,k)を計算することを含む、分割することと、を含み、ここで、各個々のオブジェクトjについてのS(j)ソースシンボルは、NSS(j,k)>0についての最初のソースブロックから始まりNSS(j,k)>0の最後のソースブロックまである、連続ソースブロック内で連続的に並べられる。
このような方法の実施形態は、下記の特徴のうち1つまたは複数を含めうる。各個々のオブジェクトjのデータのバイトは、ソースシンボル0から始まりソースシンボルS(j)−1まである、個々のオブジェクトjについてのS(j)ソースシンボル内で連続的に並べられる。方法はさらに、m個の個々のオブジェクトの1つまたは複数のソースシンボルにゼロ値をパッドする(padding)ことを含む。アグリゲートオブジェクトをZ個のソースブロックに分割することはさらに、1〜mまでの各整数jについて、最初のj個の個々のオブジェクトにおいてソースシンボルのアグリゲート数SS(j)を計算することを含み、SS(0)=0であり、SS(j)は、1〜jまでのすべての整数iにわたるS(i)の和である。方法はさらに、リペアシンボル(repair symbol)を生成するためにアグリゲートオブジェクトのZ個のソースブロックを符号化すること、を含む。方法はさらに、ソースシンボルをソースパケットにマッピングし、リペアシンボルをリペアパケット(repair packet)にマッピングすることを含む。方法はさらに、受信機にリペアパケットとソースパケットのうちの1つまたは複数を送信すること、を含む。
通信システムにおける送信機から受信機へと送信されたデータについてのソースシンボルにマッピングされた個々のオブジェクトを復元する例示的な方法であって、個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、アグリゲートオブジェクトは、1つまたは複数のソースブロックに分割され、個々のオブジェクトのソースシンボルは、アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられ、データの1つまたは複数のパケットを受信することと、データの各パケットは、アグリゲートオブジェクトのソースブロックのうちの1つについてのリペアデータ(repair data)を含んでいる少なくとも1つのリペアシンボルまたは個々のオブジェクトの少なくとも1つのソースシンボルを含み、ソースブロックは、個々のオブジェクトの少なくとも1つのソースシンボルを含み、およびデータの1つまたは複数の受信されたパケットを使用して個々のオブジェクトを復元することとを備える。
このような方法の実施形態は、個々のオブジェクトを復元することが個々のオブジェクトの1つまたは複数の前に取得されたソースシンボルおよびデータの1つまたは複数の受信されたパケットを使用して個々のオブジェクトを復元するという特徴を含めうる。
通信システムにおいて受信機にデータを送信するためにソースシンボルにm個の個々のオブジェクトをマッピングするように構成された装置であって、m個の個々のオブジェクトはオブジェクト1からオブジェクトmまで順序づけられ、m>1であり、装置はm個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートし、アグリゲートオブジェクトをZ個のソースブロックに分割するように構成されたプロセッサであって、j=1〜mについての各個々のオブジェクトについて、個々のオブジェクトjのデータを含むためにソースシンボルの数S(j)を計算することと、k=0〜Z−1についての各ソースブロックkについて、および、j=1〜mについての各個々のオブジェクトjについて、ソースブロックkにおける個々のオブジェクトjのソースシンボルの数NSS(j,k)を計算することと、を含む、アグリゲートし分割するように構成されたプロセッサ、を含み、ここで、各個々のオブジェクトjについてのS(j)ソースシンボルは、NSS(j,k)>0について最初のソースブロックから始まり、NSS(j,k)>0について最後のソースブロックまである、連続ソースブロック内で連続的に並べられる。
このような装置の実施形態は、下記の特徴のうち1つまたは複数を含めうる。各個々のオブジェクトjのデータのバイトは、ソースシンボル0から始まり、ソースシンボルS(j)−1まである、個々のオブジェクトjについてのS(j)ソースシンボル内で連続的に並べられる。プロセッサは、m個の個々のオブジェクトの1つまたは複数のソースシンボルにゼロ値をパッドするようにさらに構成される。プロセッサは、最初のj個の個々のオブジェクトにおけるソースシンボルのアグリゲート数SS(j)を計算するようにさらに構成され、SS(0)=0であり、SS(j)は、1〜jまでのすべての整数iにわたるS(i)の和である。本装置は、プロセッサに通信的に結合され、リペアシンボルを生成するためにアグリゲートオブジェクトのZ個のソースブロックを符号化するように構成された符号器、をさらに含む。プロセッサは、ソースシンボルをソースパケットにマッピングし、リペアシンボルをリペアパケットにマッピングするようにさらに構成される。本装置は、受信機にリペアパケットとソースパケットのうちの1つまたは複数を送信するように構成された送信機、をさらに含む。
通信システムにおいて送信機から送信されたデータについてのソースシンボルにマッピングされた個々のオブジェクトを復元するように構成された装置であって、個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、アグリゲートオブジェクトは1つまたは複数のソースブロックに分割され、個々のオブジェクトのソースシンボルは、アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられ、データの1つまたは複数のパケットを受信するように構成された受信機と、データの各パケットは、アグリゲートオブジェクトのソースブロックのうちの1つについてのリペアデータを含んでいる少なくとも1つのリペアシンボルまたは個々のオブジェクトの少なくとも1つのソースシンボルを含み、ソースブロックは、個々のオブジェクトの少なくとも1つのソースシンボルを含み、および受信機に通信的に結合され、データの1つまたは複数の受信されたパケットを使用して、個々のオブジェクトを復元するように構成されたプロセッサとを含む。
このような装置の実施形態は、プロセッサが個々のオブジェクトの1つまたは複数の前に取得されたソースシンボルと、データの1つまたは複数の受信されたパケットを使用して個々のオブジェクトを復元するようにさらに構成される、特徴を含めうる。
通信システムにおいて送信機から受信機へとデータを送信するためにソースシンボルにm個の個々のオブジェクトをマッピングするためのコンピュータプログラムプロダクトであって、m個の個々のオブジェクトはオブジェクト1からオブジェクトmまで順序づけられ、m>1であり、コンピュータプログラムプロダクトは、プロセッサに、m個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートさせることであって、j=1〜mについての各個々のオブジェクトjについて、個々のオブジェクトjのデータを含むためにソースシンボルの数S(j)を計算することを含む、アグリゲートさせることと、アグリゲートオブジェクトをZ個のソースブロックに分割させることであって、k=0〜Z−1についての各ソースブロックkについて、および、j=1〜mについての各個々のオブジェクトjについて、ソースブロックkにおける個々のオブジェクトjのソースシンボルの数NSS(j,k)を計算することを含む、分割させることと、を実行するように構成されたプロセッサ可読命令を格納するプロセッサ可読媒体を具備し、ここで、各個々のオブジェクトjについてのS(j)ソースシンボルは、NSS(j,k)>0についての最初のソースブロックから始まり、NSS(j,k)>0についての最後のソースブロックまである、連続ソースブロック内で連続的に並べられる。
このようなプロダクトの実施形態は、下記の特徴のうち1つまたは複数を含めうる。プロセッサ可読媒体は、プロセッサに、ソースシンボル0から始まり、ソースシンボルS(j)−1まである、個々のオブジェクトjについてのS(j)ソースシンボル内の各個々のオブジェクトjのデータのバイトを連続的に並べさせることを実行するようにさらに構成される。プロセッサ可読媒体は、プロセッサに、m個の個々のオブジェクトの1つまたは複数のソースシンボルにゼロ値をパッドさせることを実行するようにさらに構成される。プロセッサ可読媒体は、プロセッサに、1〜mまでの各整数jについて、最初のj個の個々のオブジェクト内でソースシンボルのアグリゲート数SS(j)を計算させることを実行するようにさらに構成され、SS(0)=0であり、SS(j)は、1〜jまでのすべての整数iにわたるS(i)の和である。プロセッサ可読媒体はさらに、プロセッサに、アグリゲートオブジェクトのZ個のソースブロックを符号化しリペアシンボルを生成させることを実行するようにさらに構成される。プロセッサ可読媒体は、プロセッサに、ソースシンボルをソースパケットにマッピングさせ、リペアシンボルをリペアパケットにマッピングさせることを実行するようにさらに構成される。プロセッサ可読媒体は、プロセッサに、受信機にリペアパケットとソースパケットのうちの1つまたは複数を送信させることを実行するようにさらに構成される。
通信システムにおいて送信機から受信機へと送信されるデータについてのソースシンボルにマッピングされた個々のオブジェクトを復元するためのコンピュータプログラムプロダクトであって、個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、アグリゲートオブジェクトは、1つまたは複数のソースブロックに分割され、個々のオブジェクトのソースシンボルは、アグリゲートオブジェクトの連続ソースブロック内で連続的に配置され、プロセッサに、データの1つまたは複数のパケットを受信させることと、データの各パケットは、アグリゲートオブジェクトのソースブロックのうちの1つについてのリペアデータを含んでいる少なくとも1つのリペアシンボルまたは個々のオブジェクトの少なくとも1つのソースシンボルを含み、ソースブロックは、個々のオブジェクトの少なくとも1つのソースシンボルを含み、データの1つまたは複数の受信されたパケットを使用して個々のオブジェクトを復元させること、を実行するように構成されたプロセッサ可読命令を格納するプロセッサ可読媒体を含む。
このようなプロダクトの実施形態は、プロセッサ可読媒体が、プロセッサに、個々のオブジェクトの1つまたは複数の前に取得されたソースシンボルおよびデータの1つまたは複数の受信されたパケットを使用して個々のオブジェクトを復元させることを実行するようにさらに構成される、という特徴を含めうる。
通信システムにおいて送信機から受信機へとデータを送信するためにm個の個々のオブジェクトをソースシンボルにマッピングするように構成されたシステムであって、m個の個々のオブジェクトはオブジェクト1からオブジェクトmまで順序づけられ、m>1であり、システムはm個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートするための手段であって、j=1〜mについての各個々のオブジェクトjについて、個々のオブジェクトjのデータを含むためにソースシンボルの数S(j)を計算することを含む、アグリゲートするための手段と、アグリゲートオブジェクトをZ個のソースブロックに分割するための手段であって、k=0〜Z−1についての各ソースブロックkについて、および、j=1〜mについての各個々のオブジェクトjについて、ソースブロックkにおける個々のオブジェクトjのソースシンボルの数NSS(j,k)を計算することを含む、分割するための手段と、を含み、ここで、各個々のオブジェクトjについてのS(j)ソースシンボルは、NSS(j,k)>0についての最初のソースブロックから始まり、NSS(j,k)>0についての最後のソースブロックまである、連続ソースブロック内で連続的に並べられる。
このようなシステムの実施形態は、下記の特徴のうち1つまたは複数を含めうる。各個々のオブジェクトjのデータのバイトは、ソースシンボル0から始まり、ソースシンボルS(j)−1まである、個々のオブジェクトjについてのS(j)ソースシンボル内で連続的に並べられる。システムはさらに、m個の個々のオブジェクトの1つまたは複数のソースシンボルにゼロ値をパッドするための手段を含む。アグリゲートオブジェクトをZ個のソースブロックに分割するための手段は、1からmまでの各整数jについて、最初のj個の個々のオブジェクトにおけるソースシンボルのアグリゲート数SS(j)を計算するための手段をさらに含み、SS(0)=0であり、SS(j)は、1からjまでのすべての整数iにわたるS(i)の和である。システムはさらに、リペアシンボルを生成するためにアグリゲートオブジェクトのZ個のソースブロックを符号化するための手段をさらに含む。システムはさらに、ソースシンボルをソースパケットにマッピングし、リペアシンボルをリペアパケットにマッピングするための手段をさらに含む。システムはさらに、受信機にリペアパケットとソースパケットのうちの1つまたは複数を送信するための手段をさらに含む。
通信システムにおいて送信機から受信機へと送信されたデータについてのソースシンボルにマッピングされた個々のオブジェクトを復元するように構成されたシステムであって、個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、アグリゲートオブジェクトは、1つまたは複数のソースブロックに分割され、個々のオブジェクトのソースシンボルは、アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられ、データの1つまたは複数のパケットを受信するための手段と、データの各パケットは、アグリゲートオブジェクトのソースブロックのうちの1つについてのリペアデータを含んでいる少なくとも1つのリペアシンボルまたは個々のオブジェクトの少なくとも1つのソースシンボルを含み、ソースブロックは、個々のオブジェクトの少なくとも1つのソースシンボルを含み、データの1つまたは複数の受信されたパケットを使用して、個々のオブジェクトを復元するための手段と、を含む。
このようなシステムの実施形態は、個々のオブジェクトを復元するための手段が個々のオブジェクトの1つまたは複数の前に取得されたソースシンボルおよびデータの1つまたは複数の受信されたパケットを使用して個々のオブジェクトを復元するための手段をさらに含むという特徴を含めうる。
ここで説明された項目および/または技法は、次の機能の1つまたは複数を提供しうる。多くの小さい個々のオブジェクトは、アグリゲーションのネットワーク効率がソースブロックの異なる送信されたFEC符号化にわたって異なる損失またはエラーパターンを伴ったとしても取得されるように、複数のソースブロックに分割された大きいアグリゲートオブジェクトにアグリゲートされる。ブロックアグリゲーション(block aggregation)を用いるファイル送信は、アグリゲートオブジェクトとは異なる個々のオブジェクトおよび/または異なる量のアグリゲートオブジェクトがない混合群の受信機があるとき、効率的に機能する。ファイル送信はまた、符号化および復号に必要とされる機能メモリがアグリゲートオブジェクトのサイズよりも小さいときに効率的に機能する。ソースブロックは、受信機においてシーケンシャルに処理され、アグリゲートオブジェクトを再構築するために各受信機が受信する必要があるデータ量を減らすまたは最小化する。アイテム/技法−効果ペアが説明されているが、述べられた効果が述べられたもの以外の手段によって達成されることは可能でありうる、また、述べられたアイテム/技法は、必ずしも、述べられた効果をもたらさないことがある。
図1は、個々のオブジェクトのブロックアグリゲーションの機能図である。 図2は、通信システムにおける送信機から受信機へとデータを送信するための、ソースシンボルに個々のオブジェクトをマッピングするプロセスのブロックフロー図である。 図3は、通信システムにおける送信機から受信機へと送信されたデータについてのソースシンボルにマッピングされた個々のオブジェクトを復元するプロセスのブロックフロー図である。
詳細な説明
図面では、同様な関連特性および/または特徴を伴うコンポーネントは、同じ参照ラベルを有しうる。
ここで説明された技法は、通信システムにおける送信機から受信機へとデータを送信するための個々のオブジェクトのブロックアグリゲーションのメカニズムを提供する。個々のオブジェクトは、データを送信するためにソースシンボルにマッピングされる。個々のオブジェクトは、アグリゲートオブジェクトへとアグリゲートされ、各個々のオブジェクトについて、個々のオブジェクトのデータを含むためにソースシンボルの数を計算することを含む。アグリゲートオブジェクトは、1つまたは複数のソースブロックへと分割され、各ソースブロックにおいて各個々のオブジェクトのソースシンボルの数を計算することを含む。個々のオブジェクトのマッピングは、各個々のオブジェクトについてのソースシンボルが連続ソースブロック内で連続的に並べられるものである。連続する並びの結果は、第1のソースシンボルが個々のオブジェクト内で第2のソースシンボルに先行するときはいつでも、第2のソースシンボルは、第1のソースシンボルがマッピングされるソースブロックよりもソースブロックの順序において早くないソースブロックにマッピングされる。双方のソースシンボルが同じソースブロックにマッピングされる場合、第1のソースシンボルはソースブロックにおいて第2のソースシンボルに先行し、ソースブロック内の第1および第2のソースシンボル間でいずれの他の個々のオブジェクトのソースシンボルは配置されないであろう。各個々のオブジェクトのデータのバイトは、最初のソースシンボルから始まり最後のソースシンボルまである、個々のオブジェクトについてのソースシンボル内で連続的に並べられる。アグリゲートオブジェクトのソースブロックは、リペアシンボルを生成するために符号化される。ソースシンボルはソースパケットにマッピングされ、リペアシンボルは、リペアパケットにマッピングされる。ソースパケットとリペアパケットの1つまたは複数は受信機に送信される。異なるソースブロック上の個々のオブジェクトの分配は、各ソースブロックにおいて被ったほぼ同じ量の誤りまたは損失があるときに個々のオブジェクトが効率的に再構築されることができるということを確実にする。他の実施形態は、特許請求の範囲および本開示の範囲内にある。
本開示で説明される、いくつかの例および実施形態は、アシンクロナス層の符号化(ALC)プロトコルに適用するが、説明された技法は、ALCへの適用に限定されない。説明された技法は、例えば、コンテンツ送信のためのブロードキャスト、マルチキャストまたはユニキャスト送信を使用して他のパケットベースのネットワークシステムに適用することができる。説明された技法から利益を得ることができるシステムのいくつかの例は、第3世代パートナーシッププロジェクト(3GPP)マルチメディアブロードキャストおよびマルチキャストサービス(MBMS)、デジタルビデオブロードキャスティング−ハンドヘルド(DVB−H)、デジタルビデオブロードキャスティング−ハンドヘルドに対する衛星サービス(DVB−SH)、アドバンスド・テレビジョン・システム・コミッティー(ATSC)モバイル、デジタルビデオブロードキャスティングインターネットプロトコルテレビ(DVB IPTV)およびMediaFLO(例えば、ファイル送信サービス用)を含む。別の例では、説明された技法は、ハイパーテキスト移送プロトコル(HTTP;Hypertext Transfer Protocol)のようなユニキャストファイル送信プロトコルに適用されることができ、ソースブロックについてのソースおよびリペアシンボルは、送信のために、ファイルへとグループ化されるであろう。
個々のオブジェクトのブロックアグリゲーションの所望の特性
例えば、ブロードキャストまたはマルチキャスト環境において、または、コンテンツ送信ネットワークのようなユニキャスト送信インフラストラクチャを使用して、大多数の受信機に複数の個々のオブジェクトを送信することにおいて、生じる可能性がある多数のユースケース(use case)がある。これらのユースケースのいくつかを考慮することは、送信のために個々のオブジェクトのブロックアグリゲーションの技法についての所望の特性を定義することを助けることができる。他の特性は追加的にまたは代替的に定義されることができるが、いくつかの所望の特性のリストが後述される。
特性1では、データパケットが、バイトの単位ではなく、シンボルの単位でインデクス付けられるということを示す。このことは、単一オブジェクトのファイル送信について定義されたのと同じインデクス付けスキームに従う。例えば、ALCプロトコルでは、各データパケットは、関連づけられた符号化シンボルID(ESI)を有することができ、そしてそれは、データパケット内に含まれるデータについてのスタートシンボルを指す。
特性2では、ブロックアグリゲーションを用いるファイル送信は、システマティックFEC符号が使用されることを可能にし、アグリゲートオブジェクトを再構築するために、受信されたソースパケットとリペアパケットが使用されることを可能にすべきであるということを示す。
特性3では、ブロックアグリゲーションを用いるファイル送信は、アグリゲートオブジェクトとは異なる個々のオブジェクトおよび/または異なる量のアグリゲートオブジェクトがない、混合群の受信機があるとき、効率的に機能すべきであるということを示す。一例として、特定の受信機はすでに、全体または一部においてアグリゲートオブジェクトの個々のオブジェクトのいくつかを有しうる。アグリゲートオブジェクトを復元するために、特定の受信機が必要としうるリペアパケットの量は、受信機が個々のオブジェクトのこれらの部分をすでに有していない場合、受信機が必要とするであろうリペアパケットの量に対して、受信機がすでに有する個々のオブジェクトのこれらの部分のアグリゲートサイズだけ減らされるべきである。
特性4では、符号化および復号に必要とされる機能メモリがアグリゲートオブジェクトのサイズよりも小さいときにブロックアグリゲーションを用いるファイル送信が効率的に機能すべきである、ということを示す。すなわち、ブロックアグリゲーションスキームがアグリゲートオブジェクトを1より多いソースブロックに分割することをサポートすべきである。さらに、特性1と類似して、アグリゲートオブジェクトを複数のソースブロックに分割することは、オートマティックであり、最適化されるべきである。特に、単一のオブジェクトについて、ソースブロックの各々からほぼ同量のデータを受信することは、アグリゲートオブジェクトの部分であるどの個々のオブジェクトが受信機にないかということと無関係に、アグリゲートオブジェクトの効率的な再構築を可能にすべきである。したがって、ブロックアグリゲーションは、受信機においてシーケンシャルにソースブロックを処理することによりアグリゲートオブジェクト内の個々のオブジェクトの効率的な再構築を可能にすべきであり、アグリゲートオブジェクトを再構築するために各受信機が受信するのに必要とするデータの量を減らすまたは最小化する。
特性5では、FECなしの受信機は、できる限りアグリゲートオブジェクトの多くを復元し、リペアパケットをディスカード(discard)するために、送信されたソースパケットを受信し、それらを直接使用することが可能であるべきであるということを示す。
特性6では、個々のオブジェクトについての送信されたソースパケットが、効率的にアグリゲートオブジェクトを再構築するためにアグリゲートオブジェクトについてのリペアパケットを組み合わせて効率的に使用されるべきであるということを示す。
特性7では、アグリゲートオブジェクトの部分である個々のオブジェクトのいくつかまたはいくつかの部分のみがない受信機は、可能な限り少ないデータ受信でなくなっている個々のオブジェクトを復元することが可能であるということを示す。さらに、アグリゲートオブジェクトの部分である個々のオブジェクトのいくつかの期限切れバージョンを有する受信機は、可能な限り小さなデータ受信で個々のオブジェクトの新しいバージョンを取得することができる。
所望の特性の制約
ブロックアグリゲーションの上記リストされた所望の特性は、ブロックアグリゲーション技法に対していくつかの注意をひきつける制約(some interesting constraints)を課す。例えば、特性6では、アグリゲートオブジェクト内の個々のオブジェクトについて送信されたソースパケットはアグリゲートオブジェクトについてのリペアパケットと一緒に効率的に使用されるべきである、ということを示し、特性1では、個々のオブジェクトについてのこれらのデータパケットはシンボルインデクス付けを使用する、ということを示す。したがって、特性1および特性6では、アグリゲートオブジェクト内の各個々のオブジェクトは、ソースシンボルバウンダリで開始し、さらには、アグリゲートオブジェクト内の各ソースシンボルが唯一1つの個々のオブジェクトについてのデータを含む、ということを示す。別の例として、特性7はまた、アグリゲートオブジェクト内の各個々のオブジェクトがシンボルバウンダリにて開始するという制約をもたらす。
特性4および7はともに、個々のオブジェクトについてのソースシンボルがアグリゲートオブジェクトのソースブロックにわたって可能な限り等しく分割されるということ、および、個々のオブジェクトの最初の部分についてのソースシンボルは、最初のソースブロックの部分であるべきであり、個々のオブジェクトの最後の部分についてのソースシンボルは、最後のソースブロックの一部分であるべきである、ということを示す。
特性1および4はともに、FEC復号器によって必要とされるアグリゲートオブジェクト符号化についての情報(例、ALCプロトコルのFECオブジェクト送信情報(OTI))が可能な限り最小であり、分割スキームは、アグリゲートオブジェクト内の個々のオブジェクトおよびそれらのシンボルを自動的にアラインし、複数ソースブロックの場合には、ソースブロックにわたって、アラインする、ということを示す。したがって、アグリゲートオブジェクト内の個々のオブジェクトのバイト位置を提供する代わりに、分割スキームは、アグリゲートオブジェクト内の個々のオブジェクトの位置を自動的に決定し、個々のオブジェクトは、シンボルバウンダリ上でアラインされる。
特性7では、FEC復号器によって必要とされるアグリゲートオブジェクト符号化についての情報は、各個々のオブジェクトのどのバージョンがアグリゲートオブジェクトに含まれるかを、できれば示すべきであるということを示す。このバージョン情報は、アグリゲートオブジェクトのどの個々のオブジェクトを受信機がすでに有しているかを決定するために受信機によって使用されることができる。特性3では、受信機が個々のオブジェクトのこれらの部分をすでに有していない場合、必要とされるであろう多数のリペアパケットよりも、アグリゲートオブジェクトを復元するために(例えば、すでに知られている個々のオブジェクトのそれらの部分のサイズだけ)より少数のリペアパケットを受信する必要があるべきであるということを示す。
個々のオブジェクトのブロックアグリゲーション
個々のオブジェクトのブロックアグリゲーションについての技法は下記で説明される。一般に、説明された技法は、複数の個々のオブジェクトを大きなアグリゲートオブジェクトへとアグリゲートし、そしてそれは、FEC符号化の前に1つまたは複数のソースブロックに分割されることができる。個々のオブジェクトは、アグリゲートオブジェクト内で、また適用可能であれば複数のソースブロック内で、自動的にアラインされるので、上記の所望特性が達成される。リペアシンボルは、アグリゲートオブジェクトの各ソースブロックについて、FEC符号化によって生成される。ソースシンボルとリペアシンボルは、例えばブロードキャストまたはマルチキャストを通じて、1つまたは複数の受信機に、それぞれ、リペアパケットおよびソースパケットのペイロード内で送信される。
ブロックアグリゲーションについて、FEC復号器によって必要とされるアグリゲートオブジェクトの符号化についての情報(例、FEC OTI)は、アグリゲートオブジェクト内の個々のオブジェクトの数m、個々のオブジェクトのバイトサイズB(1),B(2),…,B(m)、バイトにおけるシンボルサイズT、およびアグリゲートオブジェクトについてのソースブロックの数Zを含む。個々のオブジェクトの順序付けのインジケーションもまた示され、第1の個々のオブジェクトはオブジェクト1と呼ばれ、第2の個々のオブジェクトはオブジェクト2と呼ばれ、以下同様である。一例では、個々のオブジェクトは、すべてが同じアプリケーションによって使用される可能性がある関連の個々のオブジェクトがグループ化され連続的に順序づけられるように、順序づけられることができる。さらに、他の情報は、アグリゲートオブジェクト符号化についての情報に含まれうる。例えば、各個々のオブジェクトについてのユニフォームリソース識別子(URI)および/またはトランスポートオブジェクトID(TOI)は、FEC OTIに含まれる可能性があり、受信機が個々のオブジェクトは何であるか、また、受信機が個々のオブジェクトの正確な複製をすでに有するか、を知ることを可能にする。アグリゲートオブジェクトについて送信されたリペアパケットはまた、関連づけられた識別子(例、TOI)を有することができ、関連づけられた識別子は、アグリゲートオブジェクト内の個々のオブジェクトについての識別子のいずれとも異なる。
各ソースパケットは、ペイロードにおけるデータと関連づけられた個々のオブジェクトを識別するオブジェクト識別子(例、TOI)と、ペイロードで搬送されたソースデータを識別するデータ識別子(例、ALCプロトコルのソースFECペイロードID)と、を含む。データ識別子は、ソースパケット(例、ESI)に含まれる第1のソースシンボルの開始インデクスを示すことができる。ソースパケットにおいて1より多いシンボルがある場合には、複数シンボルが連続的にインデクス付けされる必要がある。
ALCプロトコルの一例では、ソースパケットが異なるFEC符号化IDを使用して送信される場合(例、No−Code FECスキームに対応するFEC符号化ID=0)、ソースFECペイロードIDは、FEC符号化ID と関連づけられる必要がある(例、2バイトESIが続く2バイトソースブロック数(SBN))。この場合、各個々のオブジェクトについてのFEC OTIは、受信機によって受信される必要があり、シンボルサイズは、アグリゲートオブジェクトについて指定されたシンボルサイズと、個々のオブジェクトについて、同じである必要がある(すなわち、T値)。しかしながら、ソースブロック構造は、個々のオブジェクトとアグリゲートオブジェクトで異なる場合がある。
アグリゲートオブジェクトについての各リペアパケットは、アグリゲートオブジェクトを識別しているオブジェクト識別子(例、TOI)と、ペイロードで搬送されるリペアデータを識別するデータ識別子(例、ALCプロトコルのリペアFECペイロードID)を含む。データ識別子は、例えば、アグリゲートオブジェクト内の特定ソースブロックを識別するSBNと、識別されたソースブロックから生成されるペイロードで搬送されたリペアシンボルを識別するESIであることができる。
個々のオブジェクトをソースシンボルにマッピングするプロセス
図2を参照し、さらに図1を参照すると、通信システムにおいて送信機から受信機へとデータを送信するために個々のオブジェクトをソースシンボルにマッピングするプロセス200は、図示されるステージを含む。図1は、個々のオブジェクトのブロックアグリゲーションの機能図である。図1の例について選ばれたパラメータ(すなわち、m,B(j),T,およびZ)は任意であり、限定されていない。プロセス200は、単なる例示であって限定するものではない。プロセス200は、例えばステージを追加、取り除くまたは並び替えることによって、変更されることができる。
ステージ202では、プロセッサ(例、通信リンクのソース送信機側のプロセッサ)は、m個の個々のオブジェクトを受信し、m>1である。m個の個々のオブジェクトは、オブジェクト1からオブジェクトmまで順序づけられ、各個々のオブジェクトjは、バイトサイズB(j)を有する。図1の例では、m=5の個々のオブジェクト110は、バイトサイズB(1)=128kb,B(2)=96kb,B(3)=256kb,B(4)=148kb,およびB(5)=172kbを伴うデータの小さいファイルである。これらの個々のオブジェクト110は、単なる例であり、個々のオブジェクトは、より大きいまたはより小さいサイズであることができる。
ステージ204では、プロセッサは、m個の個々のオブジェクトをアグリゲートオブジェクトへとアグリゲートする。アグリゲートすることは、j=1〜mについての各個々のオブジェクトjについて、個々のオブジェクトjのデータを含むためにソースシンボルの数S(j)を計算することを含む。ソースシンボルの数S(j)は、バイトにおけるシンボルサイズTによって決まる。1〜mまでの各整数jの場合、S(j)=ceil(B(j)/T)である。図1の例を続けると、T=10kbである場合、個々のオブジェクト110は、ソースシンボルの数S(1)=13,S(2)=10,S(3)=26,S(4)=15,およびS(5)=18を計算している。
各個々のオブジェクトjのデータのバイトは、ソースシンボル0から始まりソースシンボルS(j)−1まである、個々のオブジェクトjについてのS(j)ソースシンボル内で連続的に並べられる。m個の個々のオブジェクトの1つまたは複数のソースシンボルは、ゼロ値でパッドされることができる。個々のオブジェクトjのソースシンボル0は、個々のオブジェクトjの最初のTバイトに対応し、個々のオブジェクトjのソースシンボル1は、個々のオブジェクトjの第2のTバイトに対応し、以下同様である。個々のオブジェクトjのソースシンボルS(j)−1は、ゼロ値を伴うT−A(j)パディングバイトが続く個々のオブジェクトjの最後のA(j)=B(j)−floor(B(j)/T)*Tバイトに対応する。図1では、各個々のオブジェクトjは、個々のオブジェクト110がアグリゲートオブジェクト120へとアグリゲートされるとき、個々のオブジェクトjのソースデータの終わりに付加されるゼロパディング125を含む。個々のオブジェクトjは、バイトにおけるシンボルサイズTの整数値の倍数であるバイトサイズB(j)を有し、個々のオブジェクトjは、ゼロパディング(zero padding)を必要としない。
ステージ206で、プロセッサは、アグリゲートオブジェクトをZ個のソースブロックに分割し、ここにおいて、Z≧1である。分割は、k=0〜Z−1についての各ソースブロックkについて、および、j=1〜mについての各個々のオブジェクトjについて、ソースブロックkにおける個々のオブジェクトjのソースシンボルの数NSS(j,k)を計算することを含む。個々のオブジェクトjおよびソースブロックkについて、NSS(j,k)=ceil((SS(j)−k)/Z)−ceil((SS(j−1)−k)/Z)であり、SS(j)は下記で定義される。個々のオブジェクトjについてのS(j)ソースシンボルは、連続ソースブロック内で連続的に並べられ、連続ソースブロックは、NSS(j,k)>0についての最低インデクス付けられたソースブロックで始まり、NSS(j,k)>0についての最高インデクス付けられたソースブロックに続く。個々のオブジェクトjについてのソースシンボルの数S(j)がソースブロックの数Zよりも小さい場合には、必ずしもすべてのZ個のソースブロックがその個々のオブジェクトjについてのソースシンボルを含まないであろう。
ステージ206の分割は、1〜mまでの各整数jについて、最初のj個の個々のオブジェクトにおけるソースシンボルのアグリゲート数SS(j)を計算することを含むことができる。この計算は、設定SS(0)=0を含む。整数jの場合、SS(j)は、1〜jまでの、すべての整数iにわたるS(i)の合計である。SS(j)の計算は、1ステップで、NSS(j,k)の計算と組み合わせられることができる。図1の例では、ソースシンボルのアグリゲート数SS(j)は、SS(1)=13,SS(2)=23,SS(3)=49,SS(4)=64,およびSS(5)=82として計算される。
図1のアグリゲートオブジェクト120は、Z=2のソースブロック130に分割される。S(j)が各個々のオブジェクトj110についてZよりも大きいので、2つのソースブロック130の各々は、各個々のオブジェクト110について少なくとも1つのソースシンボルを含む。この場合、最後のソースブロック(すなわち、ソースブロックZ−1)のみがゼロパディング125を含む。
ステージ208では、符号器(例えば、通信リンクのソース送信機側のFEC符号器)は、リペアシンボルを生成するためにアグリゲートオブジェクトのZ個のソースブロックを符号化する。すなわち、符号化された各ソースブロックについて、1つまたは複数のリペアシンボルが生成される。各リペアシンボルは、アグリゲートオブジェクトのそれぞれの符号化されたソースブロックのソースシンボルについてのリペアデータを含む。
ステージ210では、プロセッサは、ソースシンボルをソースパケットにマッピングし、リペアシンボルをリペアパケットにマッピングする。上述されるように、各パケットは、オブジェクト識別子とデータ識別子を含む。ソースパケットは、1つまたは複数のソースシンボルを含むことができ、リペアパケットは、1つまたは複数のリペアシンボルを含むことができる。
ステージ212では、送信機は、受信機にリペアパケットとソースパケットのうち1つまたは複数を送信する。例えば、パケットは、ブロードキャストまたはマルチキャストサービスを通じて多数の受信機に送信されることができる。
ソースシンボルにマッピングされた個々のオブジェクトを復元するプロセス
図3を参照すると、通信システムにおいて送信機から受信機へと送信されるデータについてのソースシンボルにマッピングされた個々のオブジェクトを復元するプロセス300は図示されるステージを含む。プロセス300は、単なる例示であって限定するものではない。プロセス300は、例えばステージを追加、取り除くまたは並び替えることによって、変更されることができる。
個々のオブジェクトは、1つのアグリゲートオブジェクトに他の個々のオブジェクトでアグリゲートされ、該アグリゲートオブジェクトは、1つまたは複数のソースブロックに分割されている。個々のオブジェクトのソースシンボルは、アグリゲートオブジェクトの連続ソースブロック内で連続で並べられる。
ステージ302では、受信機(例えば、通信リンクの受信側の受信機)は、データの1つまたは複数のパケットを受信する。データの各パケットは、少なくとも1つのリペアシンボルまたは個々のオブジェクトの少なくとも1つのソースシンボルを含む。データのパケットがリペアシンボルを含む場合、リペアシンボルは、アグリゲートオブジェクトのソースブロックのうちの1つについてのリペアデータを含み、それぞれのソースブロックは、個々のオブジェクトの少なくとも1つのソースシンボルを含む。
ステージ304では、プロセッサ(例えば、通信リンクの受信側のプロセッサ)は、データの1つまたは複数の受信されたパケットを使用して個々のオブジェクトを復元する。受信側(例えば、受信クライアントデバイス)が個々のオブジェクトの利用可能な1つまたは複数のソースシンボルをすでに有する場合には、プロセッサは、データの1つまたは複数の受信されたパケットに加えて個々のオブジェクトの1つまたは複数のソースシンボルを使用して個々のオブジェクトを復元することができる。受信側は、例えば、ユニキャスト上での前の取り出し(retrieval)から、または、前のブロードキャストから、個々のオブジェクトの1つまたは複数のソースシンボルを前に取得していることがある。
個々のオブジェクトのブロックアグリゲーションのプロパティ
1つのソースブロックのみがある場合(すなわちZ=1)には、アグリゲートオブジェクトの最初のS(1)ソースシンボルは、個々のオブジェクト1に対応し、次のS(2)ソースシンボルは、個々のオブジェクト2に対応する、等である。アグリゲートオブジェクトの最後のS(m)ソースシンボルは、個々のオブジェクトmに対応する。
1より多いソースブロックがある場合(すなわち、Z>1)、ブロックアグリゲーションの説明された技法は、次のプロパティを達成する。
プロパティAは、各個々のオブジェクトjについてのソースシンボルがソースブロック上で可能な限り均等に分配されるということである。すなわち、各個々のオブジェクトjについて、ソースブロックの各々において個々のオブジェクトjのソースシンボルの数は、ceil(S(j)/Z)またはfloor(S(j)/Z)である。
プロパティBは、アグリゲートオブジェクトについてのソースシンボルがソースブロック上で可能な限り均等に分配されるということである。すなわち、ソースブロックの各々におけるアグリゲートオブジェクトについてのソースシンボルの数は、ceil(SS(m)/Z)またはfloor(SS(m)/Z)である。
プロパティCは、ソースブロック内の個々のオブジェクトについてのソースシンボルが個々のオブジェクトのオリジナル順序と同じ順序にあるということである。しかしながら、上述されるように、S(j)<Zの場合には、必ずしもすべてのアグリゲートオブジェクトのソースブロックが個々のオブジェクトjについてのシンボルを含まないであろう。
プロパティDは、ソースブロック上で各個々のオブジェクトjについてのソースシンボルが個々のオブジェクトj内でそれらがインデクスされるのと同じ順序にあるということである。
これらは、すべて所望のプロパティである。プロパティAは、増分更新(incremental update)が効率的であることができるということを確実にする。例えば、受信機はすでに、アグリゲートオブジェクトの個々のオブジェクトのいくつかを有しているが、アグリゲートオブジェクトの他の個々のオブジェクトを失っている(missing)可能性がある。失われている個々のオブジェクトについてのソースパケットはソースブロックにわたってほぼ均等に拡散されるので、受信機は、全体のアグリゲートオブジェクトを復元するために各ソースブロックから生成されたほぼ同じ数のリペアパケットを受信する必要がある。特に、受信機がX個の個々のオブジェクトを失っている場合には、受信機が各ソースブロックから失っている多数のソースシンボル間でのソースブロックにわたるディスパリティは、最大でもXである。一般に、予期されたディスパリティは、sqrt(X)に近い。したがって、バースト損失を有しうるチャネル上で送信する送信元のよいストラテジは、アグリゲートオブジェクトについてのリペアパケットのみを生成し送信することであり、送信元は、複数ラウンドでリペアパケットを送信する。すなわち、各ラウンドについて、Z個のソースブロックの各々について1つのリペアパケットが送信され、ソースブロックについてのリペアパケットは、そのソースブロックから生成された1つまたは複数のリペアシンボルを含む。
プロパティBは、アグリゲートオブジェクトについてのソースブロックの符号化および復号化は2サイズのソースブロックを検討することのみを必要とするということを確実にし、次のような少なくとも2,3のよい結果を有する、(1)符号器におけるソースブロックからのリペアシンボルの生成は、2つの異なるソースブロックサイズについて生成するために、リペアパケットの2つの異なるパターンを検討することのみを必要とする、(2)符号器と復号器において必要とされるメモリ量は、各ソースブロックを符号化または復号化するためのものとほぼ同一である、(3)受信機がアグリゲートオブジェクトの個々のオブジェクトのいずれをも有していない場合には、受信機が各ソースブロックから失っている多数のソースシンボル間でのソースブロックにわたるディスパリティは最大でも1である。
プロパティCおよびDは、受信機がシーケンシャル順にソースブロックを復号する場合には、個々のオブジェクトは最初から終わりまで復元される、ということを確実にする。このことのある利点は、個々のオブジェクトの最初は、第1のソースブロックが復号された後、第2のソースブロックが復号される間に、他のアプリケーションに送ることができる、ということである。プロパティCおよびDはまた、個々のオブジェクトの復元された部分が個々のオブジェクトの当初の順と同じ順にある、ということを確実にする。このことは、アグリゲートオブジェクト内の個々のオブジェクトが、例えば同じアプリケーションによってすべてが使用される可能性がある関連の個々のオブジェクトが連続する方法で、順序づけられることを可能にする。
達成されるブロックアグリゲーションの所望の特性
ブロックアグリゲーションについての開示された技法は、上述される個々のオブジェクトのブロックアグリゲーションの所望の特性を達成する。
特性1は、データパケットが、バイトの単位ではなく、シンボルの単位でインデクス付けられるということを示す。ブロックアグリゲーション技法は、特性1を達成する。ALCプロトコルを用いる例として、ソースパケットとリペアパケット双方のFECペイロードIDは、パケットがどのシンボルを搬送するかを識別するESIを含むであろう。
特性2は、ブロックアグリゲーションを用いるファイル送信がシステマティックFEC符号が使用されることを可能にし、アグリゲートオブジェクトを再構築するために、受信されたソースパケットとリペアパケットが使用されることを可能にするということを示す。ブロックアグリゲーション技法は、ソースパケットがアグリゲートオブジェクト内で個々のオブジェクトについて送信されることを可能にし、リペアパケットがアグリゲートオブジェクトのいずれの失っているソースシンボルを効率的に再構築するのに有用であるということを確実にして、特性2を達成する。
特性3は、ブロックアグリゲーションを用いるファイル送信は、全体においてまたは部分的にアグリゲートオブジェクトから異なる個々のオブジェクトおよび/または異なる量のアグリゲートオブジェクトを失っている混合群の受信機があるとき、効率的に機能する。アグリゲートオブジェクトのソースブロック上の個々のオブジェクトの開示された分割は特性3を達成する。
特性4は、ブロックアグリゲーションスキームがアグリゲートオブジェクトを1より多いソースブロックに分割することをサポートすべきであるということを示す。さらに、アグリゲートオブジェクトを複数のソースブロックへと分割することは、オートマティックであり、最適化されるべきである。ブロックアグリゲーションは、受信機においてシーケンシャルにソースブロックを処理することによりアグリゲートオブジェクト内の個々のオブジェクトの効率的な再構築を可能にすべきであり、アグリゲートオブジェクトを再構築するために各受信機が受信することを必要とするデータ量を減らすまたは最小化する。アグリゲートオブジェクトのソースブロック上の個々のオブジェクトの分割と1より多いソースブロックを指定するブロックアグリゲーション技法の能力は特性4を達成する。
特性5は、FECなしの受信機が送信されたソースパケットを受信し、それらを直接使用して、可能な限りアグリゲートオブジェクトの多くを復元し、任意のリペアパケットをディスカードすることが可能であるべきであるということを示す。アグリゲートオブジェクトの個々のオブジェクトについてソースパケットが送信されることを可能にすることは、特性5を達成する。
特性6は、個々のオブジェクトについての送信されたソースパケットが効率的にアグリゲートオブジェクトを再構築するためにアグリゲートオブジェクトについてのリペアパケットと組み合わせて効率的に使用されるべきであるということを示す。アグリゲートオブジェクトのソースブロック上の個々のオブジェクトの分割は、特性6を達成する。
特性7は、アグリゲートオブジェクトの部分である個々のオブジェクトのいくつかまたはいくつかの部分を失っているのみの受信機は、可能な限り少ないデータ受信で失われている個々のオブジェクトを復元することができるということを示す。さらに、アグリゲートオブジェクトの部分である個々のオブジェクトのいくつかの期限切れバージョンを有する受信機は、可能な限り小さなデータ受信で個々のオブジェクトの新しいバージョンを得ることができる。アグリゲートオブジェクトのソースブロック上の個々のオブジェクトの分割は、特性7の第1部分を達成する。パケットに含まれる識別子は、パケットペイロードに含まれるデータについてのバージョン情報を含むことができる。例えば、バージョン情報は、パケットデータについての時間および日にち情報を含むことができる。
個々のオブジェクトのブロックアグリゲーションのユースケース
個々のオブジェクトのブロックアグリゲーションの2つのユースケースが下記で示されている。ブロックアグリゲーションのプロパティはユースケースというコンテキストで説明されている。ブロックアグリゲーション技法の利点もまた示されている。
第1のユースケースは、ウェブキャッシュブロードキャストに関する。ウェブページは、一般的には、多くの小さいオブジェクト(例、ファイル)を含む。例えば、いくつかの人気のあるニュースサイトは、ウェブページ上に100より多い小さいオブジェクトを含むことができる。各個々のオブジェクトは、ユニフォームリソースロケータ(URL)で識別される。これらの個々のオブジェクトの多くはしばしば変更せず、通常の動作では、ウェブブラウザはこれらの個々のオブジェクトをキャッシュし、ウェブページがアクセスされる次のときにキャッシュされたバージョンを再使用する。
HTTPは、オブジェクトがどのくらい長く有効であるかをシグナリングするための、および、オブジェクトが変更していなかった場合にオブジェクトを再度ダウンロードすることなく、キャッシュされたオブジェクトが変更したかを決定するためにコンテンツサーバでチェックするためのメカニズムを含む。
例えば、ブロードキャストチャネル上で人気のあるウェブページの個々のオブジェクトを送信し、ウェブブラウザキャッシュ内にその送信された個々のオブジェクトを置くことによって、モバイルウェブブラウザの性能は改善されることができるであろう。その人気のあるウェブページがユーザによってアクセスされる場合、ウェブページの個々のオブジェクトの多くはすでにキャッシュ内にあるので、アクセス時にダウンロードされる必要はないであろう。
本願では、小さい個々のオブジェクトを大きいアグリゲートオブジェクト(例、大きいファイル)にアグリゲートすることが望ましい、なぜならば、このことは、ブロードキャストチャネル上のアプリケーション層FEC(AL−FEC)符号化の使用の効率を改善するからである。アグリゲートオブジェクト自体と別にアグリゲートオブジェクトに含まれる個々のオブジェクトのリストを示すことも望ましい。
個々のオブジェクトのリストを受信するクライアントデバイスは、クライアントデバイスがこれらの個々のオブジェクトのいずれかをすでに有しているかを知るためにそのキャッシュをチェックすることができる。例えば、個々のオブジェクトは、前のブロードキャストにおいて受信された可能性がある、または、個々のオブジェクトは、ユニキャスト上で取り出された可能性がある。クライアントデバイスがすでに有するこれらの個々のオブジェクトを使用して、クライアントデバイスは、アグリゲートオブジェクトの部分的な複製を再構築することができる。この部分的な複製は、アグリゲートオブジェクトについてのAL−FEC復号プロセスに1セットのソースシンボルとして入力されることができる。
重複シンボルを受信することからAL−FEC復号プロセスを回避するために、ブロードキャストチャネルがソースシンボルとリペアシンボルを移送する場合がいまだに有益ではあるが、ブロードキャストチャネルがリペアシンボルのみを移送する場合が望ましい。
小さい個々のオブジェクトを大きいアグリゲートオブジェクトにアグリゲートする1つの手法は、個々のオブジェクトをコンカチネートする、または、「tar」または「zip」のようなスタンダードアーカイブファイルフォーマットを使用し、そのあとで、アーカイブファイルをソースブロックにセグメント化することであろう、なお、各々は、アーカイブファイルの連続する部分を備える。この手法は、クライアントデバイスが前にブロードキャストオブジェクトのいずれをも有していないとき、AL−FEC性能という点でアグリゲーションの利益を得る。この手法は、上述されるように、いくぶん性能を改善するためにクライアントデバイスがすでに有するオブジェクトをクライアントデバイスが使用することを可能にするであろう。
よりよい手法は、本開示で説明されているブロックアグリゲーション技法を使用することである。説明された技法は、アグリゲートオブジェクトが1より多いソースブロックに分けられる必要がある特定の場合において、「tar」または「zip」手法の域をはるかに超えている手法によって性能を改善するためにクライアントデバイスがすでに有する個々のオブジェクトをクライアントデバイスが使用することを可能にする。
性能の差異の理由は、「tar」または「zip」手法を用いて、クライアントデバイスにてすでに存在するデータは、ソースブロックにわたって不均等に拡散されうる、ということである。例えば、クライアントデバイスは、第1のソースブロックの90%を有しうるが、第2のソースブロックの10%のみを有しうる。典型的な送信において、ソースブロックのパケットがインタリーブされる相応の理由がある。したがって、第2のソースブロックについてのデータの90%を受信するために、クライアントデバイスは、すべてのソースブロックについてのデータの90%を受信する必要がある。上記の例では、クライアントデバイスがデータの90%をすでに有していた第1のソースブロックの90%をクライアントデバイスは受信するであろう。したがって、送信のほとんどが無駄になる。
本開示の説明されたブロックアグリゲーション技法は、クライアントデバイスにてすでに存在しているデータが可能な限りソースブロックにわたって均等に拡散されるということを確実にする(すなわち、プロパティA)。したがって、クライアントデバイスにてすでに知られている各ソースブロックのフラクションは、各ソースブロックとほぼ同じであり、無駄な受信量は、減らされるまたは最小化される。
いくぶん均等な拡散を達成する別の手法は、単純なコンカチネーションによるアグリゲートオブジェクトを最初に構築し、そのあとでアグリゲートオブジェクトをソースブロックに分割する前にそのアグリゲートオブジェクトのシンボルの順序をランダムに変えることであろう。本開示の説明されているブロックアグリゲーション技法は、2つの方法におけるそのランダム手法を改善する。
最初に、個々のオブジェクトのソースシンボルの拡散は、説明されたブロックアグリゲーション技法において確定的に均等である。ランダムな手法では、ソースシンボルの拡散は、それほど均等でない場合がある。第2に、非常に大きなアグリゲートオブジェクトにわたるランダムな順列(permutation)は、送信機と受信機の両方において実装するのに非効率である。これは、特に受信機に当てはまる、なぜならば、個々のオブジェクトをリアセンブルするためにデータをシャッフルすることは、特に、フラッシュメモリまたはハードディスクのような遅い記憶デバイスを考慮すると、高価である可能性がある。対照的に、説明されたブロックアグリゲーション技法は、個々のオブジェクトからのデータがソースブロックに含まれるときにはデータはそのソースブロックにおける単一の連続するチャンクに並べられるということ、さらには、データのこのチャンクは同様に個々のオブジェクトの連続部分であるということ、を確実にする。このことは、実装効率を改善する。
第2のユースケースは、大きなバースト停止(burst outages)を伴うチャネル上のシステマティックな小さい個々のオブジェクト送信のためのものである。この例は、複数の小さい個々のオブジェクトのAL−FECベースの送信のケースを考慮し、ここで、(a)送信はシステマティックである必要がある、すなわち、個々のオブジェクトに関するソースデータが送信される、(b)オブジェクトは、インタリーブされるというよりはむしろ、シーケンシャルに送信される、(c)送信は、個々のオブジェクトの送信時間と相応またはそれよりも大きい持続時間のバースト停止に悩む、(d)FEC保護は、オブジェクトあたりというよりはむしろ、個々のオブジェクトのアグリゲートにわたって提供される。
(a)の理由は、AL−FECをサポートしない受信機による後方互換性を確実にすることである。(b)の理由は、個々のオブジェクトが個々に有用であるとき、個々のオブジェクトが受信の間に徐々に利用可能となることが望ましい、ということである。
このユースケースの一例は、個々のオブジェクトが個々のニュースストーリーであるブロードキャストニュースサービスであり、それらはユーザへの提示に個々に有用である。時折、1セットのニュースストーリーのアグリゲートについてのいくつかのリペアデータは、クライアントデバイスが逃した個々のニュースストーリーをクライアントデバイスが埋めることを可能にするように送信される。
一般的な場合では、クライアントデバイスは、小さな個々のオブジェクトについてのソースデータのサブセットを受信しうる、そしてそれは、AL−FEC復号プロセスに対してソースデータとして入力されることができる。(c)より、クライアントデバイスは、個々のオブジェクトの1つ1つのランダムな集まりというよりはむしろ、個々のオブジェクトのサブセットを有するようである。クライアントデバイスは、続いてアグリゲートオブジェクトについてのリペアデータを受信し、そして、第1のユースケースにおける正確な考慮はソースおよびリペアデータの組み合わせに、およびソースブロックの全域にわたり受信されたソースデータの均一な分布の利益に適用する。
説明に関する考慮
ここでの開示に関連して説明された様々な説明のための論理ブロック、モジュールおよび回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、あるいは他のプログラマブル論理デバイス、ディスクリートゲートあるいはトランジスタ論理、ディスクリートハードウェアコンポーネント、あるいは、ここに説明された機能を実行するように設計されたそれらのいずれの組み合わせ、で実装または実行されうる。汎用プロセッサは、マイクロプロセッサであってもよいが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、あるいはステートマシンでありうる。プロセッサも、コンピューティングデバイスの組み合わせ、例えばDSPとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、DSPコアと併せて1以上のマイクロプロセッサ、または他のそのような構成、として実装されうる。
ここでの開示に関連して説明された方法またはアルゴリズムのブロックは、直接ハードウェア、プロセッサによって実行されたソフトウェアモジュール、または2つの組み合わせで具現化されうる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROMあるいは当技術分野において知られている記憶媒体のいずれの他の形態、において存在しうる。例示的なストレージ媒体は、プロセッサに結合されるので、プロセッサがストレージ媒体から情報を読み取ることができ、またストレージ媒体に情報を書き込むことができる。あるいは、ストレージ媒体は、プロセッサに一体化されうる。プロセッサとストレージ媒体は、ASICにおいて存在しうる。ASICは、ユーザ端末に存在しうる。あるいは、プロセッサとストレージ媒体は、ユーザ端末において、ディスクリートコンポーネントとして存在しうる。
1つまたは複数の例示的な設計では、説明された機能は、ハードウェア、プロセッサによって実行されるソフトウェア、ファームウェアあるいはそれらのいずれかの組み合わせで実装されうる。プロセッサによって実行されるソフトウェアで実装される場合には、機能は、コンピュータ可読媒体上で、1つまたは複数の命令あるいはコードとして、格納または送信されうる。コンピュータ可読媒体は、1つの場所から別の場所へのコンピュータプログラムの移送(transfer)を容易にするいずれの媒体も含んでいる、コンピュータストレージ媒体(computer storage media)と通信媒体(communication media)の両方を含む。ストレージ媒体は、汎用コンピュータまたは専用コンピュータによってアクセスされることができる、いずれの利用可能な媒体でありうる。例として、また限定されないが、コンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMあるいは他の光学ディスクストレージ、磁気ディスクストレージあるいは他の磁気ストレージデバイス、あるいは、命令あるいはデータストラクチャの形態において所望のプログラムコード手段を保存あるいは搬送するために使用されることができる、また、汎用または専用コンピュータ、または、汎用または専用プロセッサによってアクセスされることができる、任意の他の媒体も備えることができる。また、いずれの接続もコンピュータ可読媒体(computer-readable medium)と適切に名付けられる。例えば、ソフトウェアがウェブサイト、サーバ、あるいは、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者ライン(DSL)、あるいは赤外線、無線、およびマイクロ波のような無線技術を使用している他の遠隔ソース、から送信される場合には、そのときには、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、あるいは赤外線、無線、およびマイクロ波のような無線技術は、媒体の定義に含まれている。ここで使用されるディスク(disk)とディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光学ディスク、デジタル汎用ディスク(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスクを含んでおり、「ディスク(disks)」は、大抵、データを磁気的に再生し、「ディスク(discs)」は、レーザーで光学的に再生する。上記のものの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
上記説明は、当業者が、説明された装置、システムおよび方法を行なうおよび/または使用することを可能にするよう提供される。本開示に対する様々な修正は、当業者にとっては容易に明らかであろう、そして、ここにおいて定義された包括的な原理は、本開示の精神あるいは範囲から逸脱することなく、他の変形に適用されうる。したがって、本開示は、ここにおいて記載される例および設計に限定されるべきではなく、ここで開示された原理および新規な特徴に整合する最も広い範囲が与えられるべきである。
上記説明は、当業者が、説明された装置、システムおよび方法を行なうおよび/または使用することを可能にするよう提供される。本開示に対する様々な修正は、当業者にとっては容易に明らかであろう、そして、ここにおいて定義された包括的な原理は、本開示の精神あるいは範囲から逸脱することなく、他の変形に適用されうる。したがって、本開示は、ここにおいて記載される例および設計に限定されるべきではなく、ここで開示された原理および新規な特徴に整合する最も広い範囲が与えられるべきである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1]通信システムにおいて送信機から受信機へとデータを送信するために、ソースシンボルにm個の個々のオブジェクトをマッピングする方法であって、該m個の個々のオブジェクトは、オブジェクト1からオブジェクトmまで順序づけられ、m>1であり、該方法は、
該m個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートすることであって、j=1からmについての各個々のオブジェクトjについて、該個々のオブジェクトjのデータを含むためにソースシンボルの数S(j)を計算することを含む、アグリゲートすることと、そして
該アグリゲートオブジェクトをZ個のソースブロックへと分割することであって、k=0からZ−1についての各ソースブロックkについて、および、j=1からmについての各個々のオブジェクトjについて、ソースブロックk内の個々のオブジェクトjのソースシンボルの数NSS(j,k)を計算することを含む、分割することと、
を備え、
ここで、各個々のオブジェクトjについての該S(j)ソースシンボルは、NSS(j,k)>0についての最初のソースブロックから始まりNSS(j,k)>0についての最後のソースブロックまでの、連続ソースブロック内で連続的に並べられる、方法。
[2]各個々のオブジェクトjのデータのバイトは、ソースシンボル0から始まりソースシンボルS(j)−1まである、該個々のオブジェクトjについての該S(j)ソースシンボル内で連続的に並べられる、[1]に記載の方法。
[3]該m個の個々のオブジェクトの1つまたは複数のソースシンボルにゼロ値をパッドすること、をさらに備える[1]に記載の方法。
[4]該アグリゲートオブジェクトをZ個のソースブロックへと分割することは、1〜mまでの各整数jについて、最初のj個の個々のオブジェクトにおいてソースシンボルのアグリゲート数SS(j)を計算することをさらに含み、SS(0)=0であり、SS(j)は、1〜jまでのすべての整数iにわたるS(i)の合計である、[1]に記載の方法。
[5]リペアシンボルを生成するために該アグリゲートオブジェクトの該Z個のソースブロックを符号化すること、をさらに備える[1]に記載の方法。
[6]該ソースシンボルをソースパケットにマッピングし、該リペアシンボルをリペアパケットにマッピングすること、をさらに備える[5]に記載の方法。
[7]該受信機に該リペアパケットと該ソースパケットのうちの1つまたは複数を送信すること、をさらに備える[6]に記載の方法。
[8]通信システムにおいて送信機から受信機へと送信されるデータについてのソースシンボルにマッピングされた個々のオブジェクトを復元するための方法であって、該個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは、1つまたは複数のソースブロックに分割され、該個々のオブジェクトの該ソースシンボルは、該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられており、該方法は、
データの1つまたは複数のパケットを受信することと、データの各パケットは、該個々のオブジェクトの少なくとも1つのソースシンボル、または該アグリゲートオブジェクトの該ソースブロックのうちの1つについてのリペアデータを含んでいる少なくとも1つのリペアシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも1つのソースシンボルを含み、および
データの該1つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元することと、
を備える、
方法。
[9]該個々のオブジェクトを復元することは、該個々のオブジェクトの1つまたは複数の前に取得されたソースシンボルとデータの該1つまたは複数の受信されたパケットを使用して、該個々のオブジェクトを復元することをさらに備える、[8]に記載の方法。
[10]通信システムにおいて受信機へデータを送信するために、ソースシンボルにm個の個々のオブジェクトをマッピングするように構成された装置であって、該m個の個々のオブジェクトは、オブジェクト1からオブジェクトmまで順序づけられ、m>1であり、該装置は、
該m個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートし、該アグリゲートオブジェクトをZ個のソースブロックへと分割するように構成されたプロセッサであって、j=1〜mについての各個々のオブジェクトjについて、該個々のオブジェクトjのデータを含むためにソースシンボルの数S(j)を計算することと、k=0〜Z−1についての各ソースブロックkについて、および、j=1〜mについての各個々のオブジェクトjについて、ソースブロックkにおける個々のオブジェクトjのソースシンボルの数NSS(j,k)を計算することとを含む、アグリゲートし分割するように構成されたプロセッサ、
を備え、
ここで、各個々のオブジェクトjについての該S(j)ソースシンボルは、NSS(j,k)>0についての最初のソースブロックから始まりNSS(j,k)>0についての最後のソースブロックまでである、連続ソースブロック内で連続的に並べられる、装置。
[11]各個々のオブジェクトjのデータのバイトは、ソースシンボル0から始まりソースシンボルS(j)−1まで、該個々のオブジェクトjについて、該S(j)ソースシンボル内で連続的に並べられる、[10]に記載の装置。
[12]該プロセッサは、該m個の個々のオブジェクトの1つまたは複数のソースシンボルにゼロ値をパッドするようにさらに構成される、[10]に記載の装置。
[13]該プロセッサは、最初のj個の個々のオブジェクトにおいてソースシンボルのアグリゲート数SS(j)を計算するようにさらに構成され、SS(0)=0であり、SS(j)は、1〜jまでのすべての整数iにわたるS(i)の合計である、[10]に記載の装置。
[14]該プロセッサに通信的に結合され、リペアシンボルを生成するために該アグリゲートオブジェクトの該Z個のソースブロックを符号化するように構成された符号器、をさらに備える[10]に記載の装置。
[15]該プロセッサは、該ソースシンボルをソースパケットにマッピングし、該リペアシンボルをリペアパケットにマッピングするようにさらに構成される、[14]に記載の装置。
[16]該受信機に該リペアパケットと該ソースパケットのうちの1つまたは複数を送信するように構成された送信機、をさらに備える[15]に記載の装置。
[17]通信システムにおいて送信機から送信されたデータについてソースシンボルにマッピングされた個々のオブジェクトを復元するように構成された装置であって、該個々のオブジェクトは、アグリゲートオブジェクト内に他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは1つまたは複数のソースブロックに分割され、該個々のオブジェクトの該ソースシンボルは、該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられており、該装置は、
データの1つまたは複数のパケットを受信するように構成された受信機と、データの各パケットは、該アグリゲートオブジェクトの該ソースブロックのうちの1つについてのリペアデータを含んでいる少なくとも1つのリペアシンボルまたは該個々のオブジェクトの少なくとも1つのソースシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも1つのソースシンボルを含み、
該受信機に通信的に結合され、データの該1つまたは複数の受信されたパケットを使用して、該個々のオブジェクトを復元するように構成されたプロセッサと、
を備える、装置。
[18]該プロセッサは、該個々のオブジェクトの1つまたは複数の前に取得されたソースシンボルと、データの該1つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元するようにさらに構成される、[17]に記載の装置。
[19]通信システムにおいて送信機から受信機へとデータを送信するために、ソースシンボルにm個の個々のオブジェクトをマッピングするためのコンピュータプログラムプロダクトであって、該m個の個々のオブジェクトは、オブジェクト1からオブジェクトmまで順序づけられ、m>1であり、該プロダクトは、
プロセッサに、
該m個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートさせることであって、j=1〜mについての各個々のオブジェクトjについて、該個々のオブジェクトjのデータを含むためにソースシンボルの数S(j)を計算することを含む、アグリゲートさせることと、
該アグリゲートオブジェクトをZ個のソースブロックへと分割させることであって、k=0〜Z−1についての各ソースブロックkについて、および、j=1〜mについての各個々のオブジェクトjについて、ソースブロックkにおける個々のオブジェクトjのソースシンボルの数NSS(j,k)を計算することを含む、分割させることと、
を実行するように構成されたプロセッサ可読命令を格納するプロセッサ可読媒体を具備し、
ここで、各個々のオブジェクトjについての該S(j)ソースシンボルは、NSS(j,k)>0についての最初のソースブロックから始まりNSS(j,k)>0についての最後のソースブロックまである、連続ソースブロック内で連続的に並べられる、コンピュータプログラムプロダクト。
[20]該プロセッサ可読媒体は、該プロセッサに、ソースシンボル0から始まりソースシンボルS(j)−1まで、該個々のオブジェクトjについての該S(j)ソースシンボル内で各個々のオブジェクトjのデータのバイトを連続的に並べさせることを実行するようにさらに構成される、[19]に記載のプロダクト。
[21]該プロセッサ可読媒体は、該プロセッサに、該m個の個々のオブジェクトの1つまたは複数のソースシンボルにゼロ値をパッドさせることを実行するようにさらに構成される、[19]に記載のプロダクト。
[22]該プロセッサ可読媒体は、該プロセッサに、1〜mまでの各整数jについて、最初のj個の個々のオブジェクトにおいてソースシンボルのアグリゲート数SS(j)を計算させることを実行するようにさらに構成され、SS(0)=0であり、SS(j)は、1〜jまでのすべての整数iにわたるS(i)の合計である、[19]に記載のプロダクト。
[23]該プロセッサ可読媒体は、該プロセッサに、リペアシンボルを生成するために該アグリゲートオブジェクトの該Z個のソースブロックを符号化させることを実行するようにさらに構成される、[19]に記載のプロダクト。
[24]該プロセッサ可読媒体は、該プロセッサに、該ソースシンボルをソースパケットにマッピングさせ、該リペアシンボルをリペアパケットにマッピングさせることを実行するようにさらに構成される、[23]に記載のプロダクト。
[25]該プロセッサ可読媒体は、該プロセッサに、該受信機に該リペアパケットと該ソースパケットのうちの1つまたは複数を送信させることを実行するようにさらに構成される、[24]に記載のプロダクト。
[26]通信システムにおいて送信機から受信機へと送信されたデータについてソースシンボルにマッピングされた個々のオブジェクトを復元するためのコンピュータプログラムプロダクトであって、該個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは、1つまたは複数のソースブロックに分割され、該個々のオブジェクトの該ソースシンボルは、該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられており、該プロダクトは、
プロセッサに、
データの1つまたは複数のパケットを受信させることと、データの各パケットは、該アグリゲートオブジェクトの該ソースブロックのうちの1つについてのリペアデータを含んでいる少なくとも1つのリペアシンボルまたは該個々のオブジェクトの少なくとも1つのソースシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも1つのソースシンボルを含み、
データの該1つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元させることと、
を実行するように構成されたプロセッサ可読命令を格納するプロセッサ可読媒体を備える、コンピュータプログラムプロダクト。
[27]該プロセッサ可読媒体は、該プロセッサに、該個々のオブジェクトの1つまたは複数の前に取得されたソースシンボルと、データの該1つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元させることを実行するようにさらに構成される、[26]に記載のプロダクト。
[28]通信システムにおいて送信機から受信機へとデータを送信するために、m個の個々のオブジェクトをソースシンボルにマッピングするように構成されたシステムであって、該m個の個々のオブジェクトは、オブジェクト1からオブジェクトmまで順序づけられ、m>1であり、該システムは、
該m個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートするための手段であって、j=1〜mについての各個々のオブジェクトjについて、該個々のオブジェクトjのデータを含むためにソースシンボルの数S(j)を計算することを含む、アグリゲートするための手段と、
該アグリゲートオブジェクトをZ個のソースブロックへと分割するための手段であって、k=0〜Z−1についての各ソースブロックkについて、および、j=1〜mについての各個々のオブジェクトjについて、ソースブロックkにおける個々のオブジェクトjのソースシンボルの数NSS(j,k)を計算することを含む、分割するための手段と、
を備え、
ここで、各個々のオブジェクトjについての該S(j)ソースシンボルは、NSS(j,k)>0についての最初のソースブロックから始まりNSS(j,k)>0についての最後のソースブロックまでである、連続ソースブロック内で連続的に並べられる、システム。
[29]各個々のオブジェクトjのデータのバイトは、ソースシンボル0から始まりソースシンボルS(j)−1まである、該個々のオブジェクトjについて該S(j)ソースシンボル内で連続的に並べられる、[28]に記載のシステム。
[30]該m個の個々のオブジェクトの1つまたは複数のソースシンボルにゼロ値をパッドするための手段、をさらに備える[28]に記載のシステム。
[31]該アグリゲートオブジェクトをZ個のソースブロックへと分割するための手段は、1〜mまでの各整数jについて、最初のj個の個々のオブジェクトにおいてソースシンボルのアグリゲート数SS(j)を計算するための手段、をさらに含み、SS(0)=0であり、SS(j)は、1〜jまでのすべての整数iにわたるS(i)の合計である、[28]に記載のシステム。
[32]リペアシンボルを生成するために該アグリゲートオブジェクトの該Z個のソースブロックを符号化するための手段、をさらに備える[28]に記載のシステム。
[33]該ソースシンボルをソースパケットにマッピングし、該リペアシンボルをリペアパケットにマッピングするための手段、をさらに備える[32]に記載のシステム。
[34]該受信機に該リペアパケットと該ソースパケットのうちの1つまたは複数を送信するための手段、をさらに備える[33]に記載のシステム。
[35]通信システムにおいて送信機から受信機へと送信されたデータについてソースシンボルにマッピングされた個々のオブジェクトを復元するように構成されたシステムであって、該個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは、1つまたは複数のソースブロックに分割され、該個々のオブジェクトの該ソースシンボルは、該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられており、該システムは、
データの1つまたは複数のパケットを受信するための手段と、データの各パケットは、該アグリゲートオブジェクトの該ソースブロックのうちの1つについてのリペアデータを含んでいる少なくとも1つのリペアシンボルまたは該個々のオブジェクトの少なくとも1つのソースシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも1つのソースシンボルを含み、
データの該1つまたは複数の受信されたパケットを使用して、該個々のオブジェクトを復元するための手段と、
を備える、システム。
[36]該個々のオブジェクトを復元するための手段は、該個々のオブジェクトの1つまたは複数の前に取得されたソースシンボルとデータの該1つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元するための手段、をさらに含む、[35]に記載のシステム。

Claims (36)

  1. 通信システムにおいて送信機から受信機へとデータを送信するために、ソースシンボルにm個の個々のオブジェクトをマッピングする方法であって、該m個の個々のオブジェクトは、オブジェクト1からオブジェクトmまで順序づけられ、m>1であり、該方法は、
    該m個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートすることであって、j=1からmについての各個々のオブジェクトjについて、該個々のオブジェクトjのデータを含むためにソースシンボルの数S(j)を計算することを含む、アグリゲートすることと、そして
    該アグリゲートオブジェクトをZ個のソースブロックへと分割することであって、k=0からZ−1についての各ソースブロックkについて、および、j=1からmについての各個々のオブジェクトjについて、ソースブロックk内の個々のオブジェクトjのソースシンボルの数NSS(j,k)を計算することを含む、分割することと、
    を備え、
    ここで、各個々のオブジェクトjについての該S(j)ソースシンボルは、NSS(j,k)>0についての最初のソースブロックから始まりNSS(j,k)>0についての最後のソースブロックまでの、連続ソースブロック内で連続的に並べられる、方法。
  2. 各個々のオブジェクトjのデータのバイトは、ソースシンボル0から始まりソースシンボルS(j)−1まである、該個々のオブジェクトjについての該S(j)ソースシンボル内で連続的に並べられる、請求項1に記載の方法。
  3. 該m個の個々のオブジェクトの1つまたは複数のソースシンボルにゼロ値をパッドすること、をさらに備える請求項1に記載の方法。
  4. 該アグリゲートオブジェクトをZ個のソースブロックへと分割することは、1〜mまでの各整数jについて、最初のj個の個々のオブジェクトにおいてソースシンボルのアグリゲート数SS(j)を計算することをさらに含み、SS(0)=0であり、SS(j)は、1〜jまでのすべての整数iにわたるS(i)の合計である、請求項1に記載の方法。
  5. リペアシンボルを生成するために該アグリゲートオブジェクトの該Z個のソースブロックを符号化すること、をさらに備える請求項1に記載の方法。
  6. 該ソースシンボルをソースパケットにマッピングし、該リペアシンボルをリペアパケットにマッピングすること、をさらに備える請求項5に記載の方法。
  7. 該受信機に該リペアパケットと該ソースパケットのうちの1つまたは複数を送信すること、をさらに備える請求項6に記載の方法。
  8. 通信システムにおいて送信機から受信機へと送信されるデータについてのソースシンボルにマッピングされた個々のオブジェクトを復元するための方法であって、該個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは、1つまたは複数のソースブロックに分割され、該個々のオブジェクトの該ソースシンボルは、該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられており、該方法は、
    データの1つまたは複数のパケットを受信することと、データの各パケットは、該個々のオブジェクトの少なくとも1つのソースシンボル、または該アグリゲートオブジェクトの該ソースブロックのうちの1つについてのリペアデータを含んでいる少なくとも1つのリペアシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも1つのソースシンボルを含み、および
    データの該1つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元することと、
    を備える、
    方法。
  9. 該個々のオブジェクトを復元することは、該個々のオブジェクトの1つまたは複数の前に取得されたソースシンボルとデータの該1つまたは複数の受信されたパケットを使用して、該個々のオブジェクトを復元することをさらに備える、請求項8に記載の方法。
  10. 通信システムにおいて受信機へデータを送信するために、ソースシンボルにm個の個々のオブジェクトをマッピングするように構成された装置であって、該m個の個々のオブジェクトは、オブジェクト1からオブジェクトmまで順序づけられ、m>1であり、該装置は、
    該m個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートし、該アグリゲートオブジェクトをZ個のソースブロックへと分割するように構成されたプロセッサであって、j=1〜mについての各個々のオブジェクトjについて、該個々のオブジェクトjのデータを含むためにソースシンボルの数S(j)を計算することと、k=0〜Z−1についての各ソースブロックkについて、および、j=1〜mについての各個々のオブジェクトjについて、ソースブロックkにおける個々のオブジェクトjのソースシンボルの数NSS(j,k)を計算することとを含む、アグリゲートし分割するように構成されたプロセッサ、
    を備え、
    ここで、各個々のオブジェクトjについての該S(j)ソースシンボルは、NSS(j,k)>0についての最初のソースブロックから始まりNSS(j,k)>0についての最後のソースブロックまでである、連続ソースブロック内で連続的に並べられる、装置。
  11. 各個々のオブジェクトjのデータのバイトは、ソースシンボル0から始まりソースシンボルS(j)−1まで、該個々のオブジェクトjについて、該S(j)ソースシンボル内で連続的に並べられる、請求項10に記載の装置。
  12. 該プロセッサは、該m個の個々のオブジェクトの1つまたは複数のソースシンボルにゼロ値をパッドするようにさらに構成される、請求項10に記載の装置。
  13. 該プロセッサは、最初のj個の個々のオブジェクトにおいてソースシンボルのアグリゲート数SS(j)を計算するようにさらに構成され、SS(0)=0であり、SS(j)は、1〜jまでのすべての整数iにわたるS(i)の合計である、請求項10に記載の装置。
  14. 該プロセッサに通信的に結合され、リペアシンボルを生成するために該アグリゲートオブジェクトの該Z個のソースブロックを符号化するように構成された符号器、をさらに備える請求項10に記載の装置。
  15. 該プロセッサは、該ソースシンボルをソースパケットにマッピングし、該リペアシンボルをリペアパケットにマッピングするようにさらに構成される、請求項14に記載の装置。
  16. 該受信機に該リペアパケットと該ソースパケットのうちの1つまたは複数を送信するように構成された送信機、をさらに備える請求項15に記載の装置。
  17. 通信システムにおいて送信機から送信されたデータについてソースシンボルにマッピングされた個々のオブジェクトを復元するように構成された装置であって、該個々のオブジェクトは、アグリゲートオブジェクト内に他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは1つまたは複数のソースブロックに分割され、該個々のオブジェクトの該ソースシンボルは、該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられており、該装置は、
    データの1つまたは複数のパケットを受信するように構成された受信機と、データの各パケットは、該アグリゲートオブジェクトの該ソースブロックのうちの1つについてのリペアデータを含んでいる少なくとも1つのリペアシンボルまたは該個々のオブジェクトの少なくとも1つのソースシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも1つのソースシンボルを含み、
    該受信機に通信的に結合され、データの該1つまたは複数の受信されたパケットを使用して、該個々のオブジェクトを復元するように構成されたプロセッサと、
    を備える、装置。
  18. 該プロセッサは、該個々のオブジェクトの1つまたは複数の前に取得されたソースシンボルと、データの該1つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元するようにさらに構成される、請求項17に記載の装置。
  19. 通信システムにおいて送信機から受信機へとデータを送信するために、ソースシンボルにm個の個々のオブジェクトをマッピングするためのコンピュータプログラムプロダクトであって、該m個の個々のオブジェクトは、オブジェクト1からオブジェクトmまで順序づけられ、m>1であり、該プロダクトは、
    プロセッサに、
    該m個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートさせることであって、j=1〜mについての各個々のオブジェクトjについて、該個々のオブジェクトjのデータを含むためにソースシンボルの数S(j)を計算することを含む、アグリゲートさせることと、
    該アグリゲートオブジェクトをZ個のソースブロックへと分割させることであって、k=0〜Z−1についての各ソースブロックkについて、および、j=1〜mについての各個々のオブジェクトjについて、ソースブロックkにおける個々のオブジェクトjのソースシンボルの数NSS(j,k)を計算することを含む、分割させることと、
    を実行するように構成されたプロセッサ可読命令を格納するプロセッサ可読媒体を具備し、
    ここで、各個々のオブジェクトjについての該S(j)ソースシンボルは、NSS(j,k)>0についての最初のソースブロックから始まりNSS(j,k)>0についての最後のソースブロックまである、連続ソースブロック内で連続的に並べられる、コンピュータプログラムプロダクト。
  20. 該プロセッサ可読媒体は、該プロセッサに、ソースシンボル0から始まりソースシンボルS(j)−1まで、該個々のオブジェクトjについての該S(j)ソースシンボル内で各個々のオブジェクトjのデータのバイトを連続的に並べさせることを実行するようにさらに構成される、請求項19に記載のプロダクト。
  21. 該プロセッサ可読媒体は、該プロセッサに、該m個の個々のオブジェクトの1つまたは複数のソースシンボルにゼロ値をパッドさせることを実行するようにさらに構成される、請求項19に記載のプロダクト。
  22. 該プロセッサ可読媒体は、該プロセッサに、1〜mまでの各整数jについて、最初のj個の個々のオブジェクトにおいてソースシンボルのアグリゲート数SS(j)を計算させることを実行するようにさらに構成され、SS(0)=0であり、SS(j)は、1〜jまでのすべての整数iにわたるS(i)の合計である、請求項19に記載のプロダクト。
  23. 該プロセッサ可読媒体は、該プロセッサに、リペアシンボルを生成するために該アグリゲートオブジェクトの該Z個のソースブロックを符号化させることを実行するようにさらに構成される、請求項19に記載のプロダクト。
  24. 該プロセッサ可読媒体は、該プロセッサに、該ソースシンボルをソースパケットにマッピングさせ、該リペアシンボルをリペアパケットにマッピングさせることを実行するようにさらに構成される、請求項23に記載のプロダクト。
  25. 該プロセッサ可読媒体は、該プロセッサに、該受信機に該リペアパケットと該ソースパケットのうちの1つまたは複数を送信させることを実行するようにさらに構成される、請求項24に記載のプロダクト。
  26. 通信システムにおいて送信機から受信機へと送信されたデータについてソースシンボルにマッピングされた個々のオブジェクトを復元するためのコンピュータプログラムプロダクトであって、該個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは、1つまたは複数のソースブロックに分割され、該個々のオブジェクトの該ソースシンボルは、該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられており、該プロダクトは、
    プロセッサに、
    データの1つまたは複数のパケットを受信させることと、データの各パケットは、該アグリゲートオブジェクトの該ソースブロックのうちの1つについてのリペアデータを含んでいる少なくとも1つのリペアシンボルまたは該個々のオブジェクトの少なくとも1つのソースシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも1つのソースシンボルを含み、
    データの該1つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元させることと、
    を実行するように構成されたプロセッサ可読命令を格納するプロセッサ可読媒体を備える、コンピュータプログラムプロダクト。
  27. 該プロセッサ可読媒体は、該プロセッサに、該個々のオブジェクトの1つまたは複数の前に取得されたソースシンボルと、データの該1つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元させることを実行するようにさらに構成される、請求項26に記載のプロダクト。
  28. 通信システムにおいて送信機から受信機へとデータを送信するために、m個の個々のオブジェクトをソースシンボルにマッピングするように構成されたシステムであって、該m個の個々のオブジェクトは、オブジェクト1からオブジェクトmまで順序づけられ、m>1であり、該システムは、
    該m個の個々のオブジェクトをアグリゲートオブジェクトにアグリゲートするための手段であって、j=1〜mについての各個々のオブジェクトjについて、該個々のオブジェクトjのデータを含むためにソースシンボルの数S(j)を計算することを含む、アグリゲートするための手段と、
    該アグリゲートオブジェクトをZ個のソースブロックへと分割するための手段であって、k=0〜Z−1についての各ソースブロックkについて、および、j=1〜mについての各個々のオブジェクトjについて、ソースブロックkにおける個々のオブジェクトjのソースシンボルの数NSS(j,k)を計算することを含む、分割するための手段と、
    を備え、
    ここで、各個々のオブジェクトjについての該S(j)ソースシンボルは、NSS(j,k)>0についての最初のソースブロックから始まりNSS(j,k)>0についての最後のソースブロックまでである、連続ソースブロック内で連続的に並べられる、システム。
  29. 各個々のオブジェクトjのデータのバイトは、ソースシンボル0から始まりソースシンボルS(j)−1まである、該個々のオブジェクトjについて該S(j)ソースシンボル内で連続的に並べられる、請求項28に記載のシステム。
  30. 該m個の個々のオブジェクトの1つまたは複数のソースシンボルにゼロ値をパッドするための手段、をさらに備える請求項28に記載のシステム。
  31. 該アグリゲートオブジェクトをZ個のソースブロックへと分割するための手段は、1〜mまでの各整数jについて、最初のj個の個々のオブジェクトにおいてソースシンボルのアグリゲート数SS(j)を計算するための手段、をさらに含み、SS(0)=0であり、SS(j)は、1〜jまでのすべての整数iにわたるS(i)の合計である、請求項28に記載のシステム。
  32. リペアシンボルを生成するために該アグリゲートオブジェクトの該Z個のソースブロックを符号化するための手段、をさらに備える請求項28に記載のシステム。
  33. 該ソースシンボルをソースパケットにマッピングし、該リペアシンボルをリペアパケットにマッピングするための手段、をさらに備える請求項32に記載のシステム。
  34. 該受信機に該リペアパケットと該ソースパケットのうちの1つまたは複数を送信するための手段、をさらに備える請求項33に記載のシステム。
  35. 通信システムにおいて送信機から受信機へと送信されたデータについてソースシンボルにマッピングされた個々のオブジェクトを復元するように構成されたシステムであって、該個々のオブジェクトは、アグリゲートオブジェクトにおいて他の個々のオブジェクトとアグリゲートされ、該アグリゲートオブジェクトは、1つまたは複数のソースブロックに分割され、該個々のオブジェクトの該ソースシンボルは、該アグリゲートオブジェクトの連続ソースブロック内で連続的に並べられており、該システムは、
    データの1つまたは複数のパケットを受信するための手段と、データの各パケットは、該アグリゲートオブジェクトの該ソースブロックのうちの1つについてのリペアデータを含んでいる少なくとも1つのリペアシンボルまたは該個々のオブジェクトの少なくとも1つのソースシンボルを含み、該ソースブロックは、該個々のオブジェクトの少なくとも1つのソースシンボルを含み、
    データの該1つまたは複数の受信されたパケットを使用して、該個々のオブジェクトを復元するための手段と、
    を備える、システム。
  36. 該個々のオブジェクトを復元するための手段は、該個々のオブジェクトの1つまたは複数の前に取得されたソースシンボルとデータの該1つまたは複数の受信されたパケットを使用して該個々のオブジェクトを復元するための手段、をさらに含む、請求項35に記載のシステム。
JP2014241844A 2010-03-03 2014-11-28 通信システムにおけるオブジェクトのブロックアグリゲーション Expired - Fee Related JP5823598B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/717,054 2010-03-03
US12/717,054 US9136981B2 (en) 2010-03-03 2010-03-03 Block aggregation of objects in a communication system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012556247A Division JP5694390B2 (ja) 2010-03-03 2011-03-03 通信システムにおけるオブジェクトのブロックアグリゲーション

Publications (2)

Publication Number Publication Date
JP2015084540A true JP2015084540A (ja) 2015-04-30
JP5823598B2 JP5823598B2 (ja) 2015-11-25

Family

ID=43984118

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012556247A Expired - Fee Related JP5694390B2 (ja) 2010-03-03 2011-03-03 通信システムにおけるオブジェクトのブロックアグリゲーション
JP2014241844A Expired - Fee Related JP5823598B2 (ja) 2010-03-03 2014-11-28 通信システムにおけるオブジェクトのブロックアグリゲーション

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2012556247A Expired - Fee Related JP5694390B2 (ja) 2010-03-03 2011-03-03 通信システムにおけるオブジェクトのブロックアグリゲーション

Country Status (5)

Country Link
US (1) US9136981B2 (ja)
EP (1) EP2543155B1 (ja)
JP (2) JP5694390B2 (ja)
CN (1) CN102804661B (ja)
WO (1) WO2011109653A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130046540A (ko) * 2011-10-28 2013-05-08 삼성에스디에스 주식회사 데이터 전송 장치 및 방법
US9165456B2 (en) 2012-07-24 2015-10-20 Mueller International, Llc Systems and methods for distributing data within a mesh network
US10015486B2 (en) * 2012-10-26 2018-07-03 Intel Corporation Enhanced video decoding with application layer forward error correction
CN105009591B (zh) * 2013-01-18 2018-09-14 弗劳恩霍夫应用研究促进协会 使用有来自至少两个数据流的码元及数据流之间的同步化起始码元标识符的源块的前向纠错
KR102127685B1 (ko) * 2013-04-17 2020-06-29 삼성전자주식회사 순방향 오류 정정 패킷 송수신 장치 및 방법
US9559805B2 (en) 2014-11-03 2017-01-31 Cisco Technology, Inc. Self-describing error correction of consolidated media content
US10003434B2 (en) 2016-04-08 2018-06-19 Cisco Technology, Inc. Efficient error correction that aggregates different media into encoded container packets
US10785098B1 (en) 2019-04-30 2020-09-22 Alibaba Group Holding Limited Network configuration using multicast address modulation
CN110278054B (zh) * 2019-04-30 2021-11-16 创新先进技术有限公司 一种配网方法和装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5548598A (en) 1994-03-28 1996-08-20 Motorola In a data communications systems a method of forward error correction
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US6320520B1 (en) 1998-09-23 2001-11-20 Digital Fountain Information additive group code generator and decoder for communications systems
US7068729B2 (en) * 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US6748441B1 (en) * 1999-12-02 2004-06-08 Microsoft Corporation Data carousel receiving and caching
US7072971B2 (en) * 2000-11-13 2006-07-04 Digital Foundation, Inc. Scheduling of multiple files for serving on a server
JP4025709B2 (ja) 2003-10-30 2007-12-26 日本電信電話株式会社 誤り訂正符号化装置、誤り訂正復号化装置、誤り訂正符号化プログラム、誤り訂正復号化プログラム、誤り訂正符号化プログラムまたは誤り訂正復号化プログラムを記録したコンピュータ読み取り可能な記録媒体
EP1743431A4 (en) * 2004-05-07 2007-05-02 Digital Fountain Inc SYSTEM FOR DOWNLOADING AND RECORDING AND CONTINUOUS READING OF FILES
US7590922B2 (en) 2004-07-30 2009-09-15 Nokia Corporation Point-to-point repair request mechanism for point-to-multipoint transmission systems
GB0420540D0 (en) 2004-09-15 2004-10-20 Nokia Corp Burst transmission in a digital broadcasting network
US7676735B2 (en) 2005-06-10 2010-03-09 Digital Fountain Inc. Forward error-correcting (FEC) coding and streaming
KR20070013013A (ko) * 2005-07-25 2007-01-30 삼성전자주식회사 표시 장치
ES2383230T3 (es) * 2006-01-05 2012-06-19 Telefonaktiebolaget Lm Ericsson (Publ) Gestión de archivos contenedores de medios
EP1980074A4 (en) * 2006-02-13 2012-12-19 Digital Fountain Inc CONTINUOUS CONTINUOUS CONTINUOUS TRANSMISSION WITH CONCURRENT FLUX AGGREGATION FOR CONTINUOUS CONTROL CALCULATION
US9237101B2 (en) * 2007-09-12 2016-01-12 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US8233532B2 (en) * 2007-09-21 2012-07-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Information signal, apparatus and method for encoding an information content, and apparatus and method for error correcting an information signal
WO2009087563A2 (en) * 2008-01-09 2009-07-16 Nokia Corporation Systems and methods for media container file generation
EP2109293A1 (en) 2008-04-11 2009-10-14 Thomson Licensing System and method for improving the file transmission reliability
US20100017686A1 (en) 2008-05-07 2010-01-21 Michael Luby Fast channel zapping and high quality streaming protection over a broadcast channel

Also Published As

Publication number Publication date
CN102804661B (zh) 2015-04-22
US9136981B2 (en) 2015-09-15
EP2543155A1 (en) 2013-01-09
JP2013521720A (ja) 2013-06-10
WO2011109653A1 (en) 2011-09-09
JP5694390B2 (ja) 2015-04-01
CN102804661A (zh) 2012-11-28
EP2543155B1 (en) 2013-07-31
JP5823598B2 (ja) 2015-11-25
US20110216841A1 (en) 2011-09-08

Similar Documents

Publication Publication Date Title
JP5823598B2 (ja) 通信システムにおけるオブジェクトのブロックアグリゲーション
EP1214793B9 (en) Group chain reaction encoder with variable number of associated input data for each output group code
EP1116335B1 (en) Lost packet recovery method for packet transmission protocols
US8555146B2 (en) FEC streaming with aggregation of concurrent streams for FEC computation
US20120099593A1 (en) Universal file delivery methods for providing unequal error protection and bundled file delivery services
KR101591238B1 (ko) Http 서버들 사이의 소스 데이터 및 리페어 데이터의 할당에 의한 컨텐츠 전달 시스템
KR20070008520A (ko) 파일 다운로드 및 스트리밍 시스템
EP1468497A1 (en) Multi; stage code generator and decoder for communication systems
US9455750B2 (en) Source block size selection

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150903

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150908

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151007

R150 Certificate of patent or registration of utility model

Ref document number: 5823598

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees