本明細書の実施形態では、ファイル配送は、ファイルを送信する符号化器/送信機システム、およびファイルを受信する受信機/復号器システムによって実行される。送信の形式は、符号化器が符号化したものを復号器が理解するように調整される。以下の様々な例に示されるように、ファイル配送は、一般的なオブジェクト配送の一例であり、別段の指摘がない限り、オブジェクトはファイルとして扱うことができ、その逆も可能であることが、これらの例から明らかである。
パケット配送システムでは、データは、パケットに組織され、パケットとして送信される。各パケットは、パケット内に何が存在し、それがどのようにレイアウトされているのかを、受信機が決定することを可能にする要素を有する。本明細書で説明される技法を使用することで、前方誤り訂正(「FEC」)が使用されるパケット送信に柔軟性が提供される。
これらの技法を使用することで、ファイルのバンドル化配送ばかりでなく、不均一FEC保護も提供することができる。多くのファイルが別々のファイルとして配送される場合、パケットロスに対する配送の回復力は、すべてのファイルが一緒により大きいファイルとして連結され、配送においてより大きいファイルが保護される場合よりも、はるかに低くなり得ることがよく知られている。しかし、より小さいファイルの組合せとしてのより大きいファイルの構造の伝達が必要とされ、受信機は、より小さいファイルのサブセットを回復することにしか関心がないとしても、大きいファイル内のより小さいファイルのいずれかを回復するために、完全な大きいファイルを回復することを一般には必要とする。
したがって、好ましいファイル配送システムまたは方法は、ファイルのためのファイル配送構造として使用される、ソースブロックの数およびソースブロック当たりの符号化シンボルの数の任意の柔軟な組合せを可能にすべきである。典型的な実施では、ソースブロックが、修復シンボルの生成などのFEC操作の範囲である。たとえば、修復シンボルは、1つのソースブロックにすべてが属する1つまたは複数のソースシンボルの関数として生成することができる。そのような場合、各ソースブロックは、独立に復号可能とすることができる。このようにすると、データのすべてが受信される前に、配送されているいくつかのデータを復号器が復号および処理する必要がある場合に、復号器において有益である。本開示から明らかなように、ソースブロックが非常に小さい場合、受信された修復シンボルは、より少数のソースシンボルの回復のために使用可能であるが、ソースブロックが非常に大きい場合、より大きいソースブロックを復号するには、より長い時間を要するので、受信機がソースブロック内のソースシンボルのいずれかを復号および/または処理および/または使用するには、より多くの時間を要することがある。
ファイル配送方法は、パケットロスに対する効率的な保護を提供すべきであり、ファイルの異なる部分が異なる優先度で保護されるファイルの配送をサポートすべきであり、ファイルの各部分は、ファイルの他の部分とは異なるソースブロック構造およびサブブロック構造を有することができる。やはり、ファイルは、場合によっては、オブジェクトの特定の例と考えられるが、本明細書では、ファイルの転送および処理について説明するために本明細書で使用される例は、データベースからのデータの大きいかたまり、ビデオシーケンスの一部など、おそらくはファイルとは呼ばれないデータオブジェクトに対しても使用できることを理解されたい。
ファイル/オブジェクト配送システムまたは方法は、大きいファイル/オブジェクトの保護効率を有する多くのより小さいファイル/オブジェクトの配送、より小さいファイル/オブジェクト構造の単純な伝達、および受信機が、より小さいファイル/オブジェクトのすべてを回復せずに、より小さいファイル/オブジェクトのサブセットのみを独立に回復するための機能を提供すべきである。
ファイル配送システムは、ブロードキャスト部分と、ユニキャスト部分とを備えることができる。読みやすくするため、「ブロードキャスト」は、「共通のデータを複数のユーザに提供するためのブロードキャスト、マルチキャスト、および/または他のメカニズム」の意味で読むことができる。「ユニキャスト」は、1つの送信元から1つの送信先へのデータの移動のことを指すが、1つの論理送信元は、複数の構成要素を備えることができ、1つの論理送信先は、複数の構成要素を備えることができる。ユニキャスト構成では、一般に、送信元サーバと送信先サーバが存在し、送信元サーバは、クライアントからの要求を待ち、特に要求されたデータを(別途許可されている場合は)要求クライアントに送信することによって、受信された要求に応答する。当技術分野においてよく知られているように、多数の送信先へのユニキャスト配送は、それらの同じ多数の送信先へのブロードキャスト配送よりも多くのスケーラビリティ上の課題をもたらし得る。一般に、HTTP配送の場合、切断(sever)配送スケーラビリティを高めるために、多くのキャッシングサーバが、ネットワーク全域に配備される。しかし、そのような手法は、必ずしもネットワーク容量を増やすとは限らず、それは、モバイルデバイスへのコンテンツの配送に関する一般的なボトルネックである。
これらの望ましい特質を有するシステムの例が今から説明される。
基本的な汎用ファイル配送(universal file delivery)(「UFD」)方法およびシステム
基本的な汎用ファイル配送(「UFD」)方法および対応するシステム(複数可)が今から説明され、UFDは、既存のファイル配送方法にまさる著しい利点を含む。基本的UFD方法のための前方誤り訂正(「FEC」)ペイロードIDは、たとえば、32ビットフィールドとすることができる、汎用ファイルシンボル識別子(universal file symbol identifier)(「UFSI」)フィールドを備える。今度は、基本的UFD方法のための送信機方法および受信機方法が今から説明される。やはり、ファイルがオブジェクトと呼ばれる場合、「UFSI」は、代わりに、「UOSI」(汎用オブジェクトシンボル識別子(universal object symbol identifier))と呼ばれることがある。
図1は、従来のFECペイロードIDを示す図であり、図1Aは、Raptor−RFC 5053のためのFECペイロードIDを図示し、一方、図1Bは、RaptorQ−RFC−6330のためのFECペイロードIDを図示する。
図2は、基本的な汎用ファイル配送(「UFD」)方法のためのFECペイロードIDを示す図である。後者の手法は、より柔軟とすることができる。
図3は、送信機側の基本的UFD方法を示している。送信機は、たとえば、[Raptor RFC 5053]または[RaptorQ−RFC−6330]で説明されているように、FECオブジェクト送信情報(「OTI」)を生成するために、既存の方法を使用することができ(たとえば、[RaptorQ−RFC−6330]のセクション4.3を参照)、ファイルを送信するために使用されるソースブロックおよびサブブロック構造を決定するために、また(SBN,ESI)ペアとファイルの符号化シンボルとの間の関係を決定するために、FEC OTIを使用することができる(たとえば、[RaptorQ−RFC−6330]のセクション4.4を参照)。
たとえば、[RaptorQ−RFC−6330]で説明されているように、生成されたFEC OTIは、(F,Al,T,Z,N)とすることができ、ここで、Fは、送信されるファイルのサイズであり、Alは、サブシンボルがAlの倍数であるメモリ境界上に整列していることを確認するために使用されるアライメントファクタであり、Tは、生成され、送信中に送信されるシンボルのサイズであり、Zは、送信のためにファイルが分割されるソースブロックの数であり、Nは、送信のために各ソースブロックが分割されるサブブロックの数である。これは、図3のステップ300に示される通りである。
送信機は、パケットで送信される符号化シンボルを形成し、たとえば、[RaptorQ−RFC−6330]で説明されているように、これらの符号化シンボルのためのSBNおよびESIを、ソースブロックに基づいて、またサブブロックが使用される場合は、サブブロック構造にも基づいて、既存の方法を使用して生成することができる。符号化シンボルを送信しようとするたびに、送信機は、図3のステップ310に示されるように、生成される符号化シンボルのために、SBN AおよびESI Bを決定することができ、次いで、送信機は、図3のステップ320に示されるように、たとえば、[RaptorQ−RFC−6330]で説明されている既存の技法を使用して、(SBN,ESI)=(A,B)に基づいて、符号化シンボルの値を生成することができる。次いで、図3のステップ330に示されるように、その符号化シンボルのためのUFSI Cが、C=B×Z+Aと計算される。
送信機は、図3のステップ340に示されるように、パケットで符号化シンボルを送信することができ、パケットのFECペイロードIDは、符号化シンボルのUFSI Cになるように設定される。送信機は、次いで、図3のステップ350に示されるように、ほかにも送信すべき符号化シンボルがあるかどうかを判定することができ、ある場合、送信機は、「はい」分岐によって示されるように、図3のステップ310に戻って、送信する追加の符号化シンボルを生成することができ、ない場合、送信機は、「いいえ」分岐によって示されるように、図3のステップ360に進んで、終了することができる。
送信機側の基本的UFD方法には、多くの変形が存在する。たとえば、送信機は、パケットの少なくともいくつかで、2つ以上の符号化シンボルを送信することができ、その場合、FECペイロードIDは、パケット内に含まれる第1の符号化シンボルのUFSIになるように設定することができ、パケット内に含まれる追加のシンボルは、それらの対応するUFSIが連続するように選択することができる。たとえば、パケットで搬送する符号化シンボルが3つ存在し、第1のそのようなシンボルがUFSI=4234を有する場合、他の2つの符号化シンボルは、UFSIがそれぞれ4235および4236であるような符号化シンボルとすることができる。他の代替の例として、送信機は、符号化シンボルのいずれかを生成する前に、符号化シンボルをいくつ生成すべきかを事前決定し、生成されるすべての符号化シンボルのための(SBN,ESI)値を決定することができる。別の例として、UFSI値は、(SBN,ESI)値を生成する中間ステップを踏まずに、直接的に生成することができる。
変形の別の例として、他の形式のFEC OTI情報を生成することができる。たとえば、ファイルのためのFEC OTI内に、ベースUFSI(base UFSI)BUを含むことができ、これは、次のように使用することができ、すなわち、パケット内に含まれる符号化シンボルのためにFEC送信機および受信機によって使用されるUFSIは、U+BUとされ、ここで、Uは、符号化シンボルを搬送するパケット内で搬送されるUFSIである。したがって、たとえば、パケットが、U=1045を搬送し、FEC OTI内のベースUFSIが、BU=2000000である場合、符号化シンボルのUFSIは、2001045である。ベースUFSIの使用には、いくつかの利点がある。1つは、[FLUTE]、[ALC]、[LCT]、[FEC BB]で説明されているプロトコルスイートが、TOIとも呼ばれる送信オブジェクト識別子(transmission object identifier)を、転送されるファイルまたはオブジェクトのFEC OTIに関連付ける。同じファイルのための符号化シンボルを、異なる時間に、または異なるセッションで送信することが、および異なるTOIに関連付けることが可能である。また、各異なるTOIに関連付けられたパケットごとに、UFSI=0で開始する符号化パケットを送信できることも有利である。FEC OTIの一部としてベースUFSIを指定する能力を有することによって、異なるベースUFSIを各TOIに関連付けることができ、異なるTOIにおいて重複する符号化シンボルを送信することなく、ファイルのための符号化シンボルが送信される。たとえば、同じファイルのための符号化シンボルは、TOI=1に関連付けられたパケットと、TOI=2に関連付けられたパケットとで送信することができ、TOI=1に関連付けられたベースUFSIは、0に設定され、TOI=2に関連付けられたベースUFSIは、1000000に設定される。その場合、TOI=1およびTOI=2に関する符号化パケットはともに、0、1、2などのUFSIの系列を含むことができ、TOI=1を有するファイルについて、1000000個未満の符号化シンボルが送信される限り、2つのTOIに関連付けられて送信される符号化シンボルの間で、重複する符号化シンボルが送信されることはない。
受信機側の基本的UFD方法が図4を参照して説明される。受信機は、図4のステップ400に示されるように、送信機に関して上で説明されたのと同じ形式で、FEC OTI(F,Al,T,Z,N)を決定するために、既存の技法を使用することができる。たとえば、FEC OTIは、FLUTEセッション記述内に埋め込むことができ、またはFEC OTIは、URL内に符号化することができ、またはFEC OTIは、SDPメッセージを介して獲得することができる。ステップ410において、受信機は、ほかにも符号化シンボルが受信されたかどうかを調べ、別の符号化シンボルを受信するまで、またはさらなる符号化シンボルは受信されないと決定するまで、このステップに留まることができ、別の符号化シンボルを受信した場合、受信機は、ステップ430に進み、あるいはさらなる符号化シンボルは受信されないと決定した場合、受信機は、ステップ420に進み、他の手段を使用して、たとえば、ファイル修復サーバへのHTTP要求を使用して、ファイルを回復しようと試み、または受信機は、後の時間にさらなる符号化シンボルを受信するために別のセッションを待つことができ、もしくは受信機は、ファイルを受信できないと決定することができる。
別の符号化シンボルが利用可能な場合、ステップ430において、受信機は、符号化シンボルのUFSI Cを決定し、符号化シンボルの値を受け取る。ステップ440において、受信機は、ソースブロックの数ZおよびUFSI Cに基づいて、A=C modulo Z、B=floor(C/Z)を計算し、ステップ450において、受信機は、符号化シンボルのための(SBN,ESI)を(A,B)になるように設定し、ステップ460において、受信機は、ファイル回復のために使用される、符号化シンボルの値および(A,B)を記憶し、ステップ470において、受信機は、ファイルを回復するのに十分な符号化シンボルが受信されたかどうかを判定し、十分な符号化シンボルが受信された場合、ステップ480に進んで、ファイルを回復し、受信されていない場合、ステップ410に進んで、さらなる符号化シンボルを受信する。
受信機側の基本的UFD方法には、多くの変形が存在する。たとえば、受信機は、パケットの少なくともいくつかで、2つ以上の符号化シンボルを受信することができ、その場合、FECペイロードIDは、パケット内に含まれる第1の符号化シンボルのUFSIになるように設定することができ、パケット内の追加のシンボルは、連続的な対応するUFSI値を有することができる。たとえば、パケットで搬送される符号化シンボルが3つ存在し、第1のそのようなシンボルがUFSI=4234を有する場合、他の2つの符号化シンボルは、UFSIがそれぞれ4235および4236であるような符号化シンボルとすることができ、パケットで搬送されるUFSIは、第1の符号化シンボルのUFSI=4234とすることができる。他の代替の例として、受信機は、回復を試みる前に、符号化シンボルをいくつ受信すべきかを事前決定することができる。別の例として、受信機は、ファイルを回復するのに十分な符号化シンボルが受信されたかどうかを判定するために使用される、FEC符号に固有の何らかの処理を行うことができる。別の例として、UFSI値は、回復プロセスにおいて(SBN,ESI)値を生成する中間ステップを踏まずに、直接的に使用することができる。別の例として、ファイルの回復は、符号化シンボルの受信と同時に行うことができる。別の例として、他の形式のFEC OTI情報を使用することができる。
基本的UFD方法を、ソースブロックおよびサブブロック構造を決定するための[RaptorQ−RFC−6330]で説明されている技法と組み合わせることで、多くの利点が提供される。たとえば、ファイルを送信する目的でSBNとESIの組合せによって識別される、先の方法でソースシンボルと呼ばれたものは、基本的UFD方法を使用する場合、UFSIによって識別されるファイルシンボルと見なすことができる。Fは、送信されるファイルのオクテット単位のサイズとされ、Tは、ファイルを送信するときにFEC符号化/復号目的で使用されるシンボルサイズとされ、したがって、KT=ceil(F/T)は、ファイル内のシンボルの総数であり、ここで、ceil(x)は、x以上の整数のうちで最小の整数である。
ソースブロック構造およびサブブロック構造が、たとえば、[RaptorQ−RFC−6330]で説明されているように決定され、シンボルの識別情報を(SBN,ESI)形式からUFSI形式に、またUFSI形式から(SBN,ESI)形式に変換するために、上で説明された基本的UFD方法が使用される場合、ファイルシンボルのためのUFSIの範囲は、0、1、2、...、KT−1であり、ファイルから生成される修復シンボルはいずれも、KT、KT+1、KT+2などの範囲内のUFSIを有する。この特性は、シンボルが元のファイルの一部であるか、それともファイルから生成された修復シンボルであるかの判定を、単にそのUFSIをKTの値と比較することによって可能にする。これは、たとえば、FEC復号をサポートしない受信機が、どのシンボルが元のファイルの一部であるか(およびファイル内のそれらの位置)を決定することを可能にするために、またパケット内で搬送されるUFSI値、およびファイルのためのKTの値に基づいて、どれを修復シンボルとして無視できるかを決定することを可能にするために有益であり得る。
図5Aおよび図5Bは、一例を図示し、この場合、ファイルサイズは、F=28669オクテットであり、シンボルサイズは、T=1024オクテットであり、したがって、KT=ceil(F/T)=28である。これら2つの図では、ソースブロックの数は、Z=5である。図5Aおよび図5Bでは、ファイルのシンボルの(SBN,ESI)ラベリングが、上および/または横に示されており、各行は、ソースブロックに対応し、各列は、同じESI値を有するシンボルに対応する。シンボルの対応するUFSIラベリングは、下側に示されている。この場合、UFSI=27を有するシンボル、すなわち、UFSIラベリングに関して第28のシンボルは、末尾の(KT×T)−F=3オクテットが、FEC符号化および復号の目的で、ゼロでパディングされるが、このシンボルのこれら末尾のパディングされた3オクテットは、送信されないことがある。この例では、UFSIが28以上の符号化シンボルは、いずれも修復シンボルであり、UFSIが28の符号化シンボルは、SBN=3のソースブロックから生成され、UFSIが29の符号化シンボルは、SBN=4のソースブロックから生成され、UFSIが30の符号化シンボルは、SBN=0のソースブロックから生成され、以降も同様である。当業者が理解するように、この特性には、他の多くの利点が存在する。
基本的UFD方法の別の利点は、符号化シンボルが、それらのUFSIによって定められる順序で、すなわち、UFSI順の0、1、2、3、4、...で送信される場合、Z個のソースブロックのための符号化シンボルは、インターリーブされた順序で送信され、すなわち、最初に、Z個のソースブロックの各々に属するESIが0のZ個の符号化シンボルが送信され、続いて、Z個のソースブロックの各々に属するESIが1のZ個の符号化シンボルが送信され、以降も同様なことである。ほとんどの送信において、この単純な送信順序は、十分であり、好ましい。しかし、ソースブロックの数Zと同期することがある何らかの周期で、パケットロスが経験される場合、より良い可能性のある送信順序は、Z個のUFSIが連続する符号化シンボルからなる各組を、それらを送信する前に、ランダムに置換したものであり、すなわち、UFSIが0、...、Z−1である最初のZ個の符号化シンボルが、ランダムに置換された順序で送信され、次いで、UFSIがZ、...、2×Z−1である次のZ個の符号化シンボルが、ランダムに置換された順序で送信され、以降も同様である。この説明を通して、別段の指摘がない限り、「ランダム」は疑似ランダムを含むことができることを理解されたい。
基本的UFD方法を使用すると、これまで知られていた方法にまさる多くの追加的な利点が提供される。たとえば、所定のサイズのSBNおよびESIフィールドを備えるFECペイロードIDを使用する場合、可能なソースブロックについて、またはソースブロック当たり可能な符号化シンボルについて、別々の所定の数が存在する。たとえば、32ビットのFECペイロードIDをもたらす8ビットのSBNおよび24ビットのESIは、可能なソースブロックの数を256に、またソースブロック当たりの可能な符号化シンボルの数を16777216に制限する。代わりに、UFSIフィールドを備えるFECペイロードIDは、ファイルのソースブロック構造とは無関係に、ファイル当たりの可能な符号化シンボルの総数を制限するだけである。たとえば、32ビットのFECペイロードIDをもたらす32ビットのUFSIを使用する場合、ファイルがいくつのソースブロックに分割されるかには無関係に、またサブブロックが使用される場合はファイルのサブブロック構造とは無関係に、ファイルのために生成され得る符号化シンボルの総数は、4294967296である。したがって、シンボルが1024オクテットのサイズである場合、この例では、ファイルサイズは最大4GBとすることができるが、ファイルが1個のソースブロックに分割されるか、16384個のソースブロックに分割されるか、それとも4194304個のソースブロックに分割されるかには無関係に、符号化シンボルの数は、ファイルサイズの1024倍とすることができる。別の例として、ファイルサイズを2TBとすることができ、符号化シンボルの数は、ファイルサイズの2倍とすることができる。すべての場合で、ファイルのために生成され得る符号化シンボルの数は、サブブロック構造が使用される場合、ファイルのサブブロック構造とは無関係である。
不均一誤り保護ファイル配送サービスのための汎用ファイル配送方法
これまでのほとんどのファイル配送方法は、不均一誤り保護(「UEP」)ファイル配送をサポートしない。たとえば、ファイルの異なる部分を符号化するために使用される実際のFEC符号を変更することによってUEPをサポートする、[LDPC拡張]で説明されている方法を使用する、ISDB Tmm(地上モバイルマルチメディア)規格で現在仕様化されている方法など、いくつかの方法がこれまでも存在した。UEPを使用するときに実際のFEC符号を変更しなければならない不都合に加えて、さらなる不都合は、これらの方法によって提供される保護が理想からほど遠いことである。
一例として、結果が[LDPC拡張]の図6に示されている方法について考察する。その例では、パケットで送信される、サイズが1000KBのファイルに対して、2つの部分が存在し、各パケットは、1KBのシンボルを含み、ファイルの第1の部分は、サイズが30KBであり、100個のパリティパケットまたは修復パケットによって保護され、ファイルの第2の部分は、970KBであり、ファイルのために、全体で1000個のソースパケットおよび1000個のパリティパケットが送信される。提供される保護は、2つの問題のせいで、理想からほど遠い。1つの問題は、[LDPC RFC 5170]に基づいて使用されるFEC符号は、ソースブロックを回復するために、しばしば著しい受信オーバヘッドを必要とし、すなわち、ファイルを回復するために、ファイル内に存在するソースパケットよりも多くのパケットが受信される必要があることである。第2の問題は、方法が、基本的に、ファイルの第2の部分を送信および保護するために使用されるのとは別個の1組のパケットを使用して、ファイルの第1の部分を送信および保護することである。第2の問題について、ファイルの第1の部分はそのような少量のパケットを介して送信されるので、受信する30個のパケットとファイルの第1の部分のために送信される130個のパケットとの差は大きい。
本明細書で「シンプルUEP」ファイル配送方法と呼ばれる拡張によって、[LDPC拡張]で説明されているUEPファイル配送方法を改良することができる。シンプルUEPファイル配送方法は、ファイル配送のための既存の技法を使用して、またファイルの各部分の優先度に基づいたファイルの各部分に対する異なる程度の保護を使用して、ファイルの部分を別個のファイル配送として配送し、配送されたファイルが同じファイルの部分であることが受信機にわかるように、ファイルの部分間の論理的な結び付きを伝達することができる。たとえば、シンプルUEPファイル配送方法は、上の例では、第1の部分から生成されたサイズが1024オクテットの符号化シンボルを各々が含む、全部で130個のパケットを送信することによって、ファイルの第1の30KBの部分を配送するために、[RaptorQ−RFC−6330]を使用することができ、次いで、第2の部分から生成されたサイズが1024オクテットの符号化シンボルを各々が含む、全部で1870個のパケットを送信することによって、ファイルの第2の970KBの部分を別個のファイルとして配送することができる。したがって、別個のファイルとして送信されるファイルの2つの部分のために、全部で2000個のパケットが送信される。シンプルUEPファイル配送方法は、FEC符号自体は変更されないので、また本明細書の図10に示されるように、ファイルの2つの部分の配送の性能は、異なるパケットロス条件下で、[LDPC拡張]の図6に示される性能よりも優れているので、[LDPC拡張]で説明されている方法に対する改良である。
相違の1つの可能な原因は、[RaptorQ−RFC−6330]で仕様化されたFEC符号は、[LDPC RFC 5170]で仕様化されたFEC符号よりも優れた回復特性を有することにある。しかし、シンプルUEPファイル配送方法は、依然として上で説明された第2の問題を抱えている。
[PET]および[PET特許]は、UEPファイル配送サービスを提供するための潜在的に改良された方法を提供し、各パケットは、ファイルの各部分の優先度に基づいた、ファイルの各部分からの指定された量の符号化データを含む。[PET]の簡単な具体化は、ファイルの各部分のための適切なサイズの符号化シンボルを各パケット内に含むことであり、次いで、ファイルの各部分のための(SBN,ESI)ペアを備える別個のFECペイロードIDを含むことである。しかし、この方法は、少なくはあるがいくつかの理由で有利ではない。
たとえば、各部分に対して所定のサイズのSBNおよびESIフィールドを備えるFECペイロードIDを使用する場合、ファイルの各部分ごとに、可能なソースブロックについて、またはソースブロック当たり可能な符号化シンボルについて、別々の所定の数が存在する。たとえば、d個の部分の各々に対する8ビットのSBNおよび24ビットのESIは、部分当たりの可能なソースブロックの数を256に、またソースブロック当たりの可能な符号化シンボルの数を16777216に制限する、(32×d)ビットのFECペイロードIDをもたらす。さらに、d個の部分の各々に対するFECペイロードIDサイズが32ビットである場合、これは、各パケット内のすべての部分のためのFECペイロードIDが合計で32×dビットであることを意味し、たとえば、d=10である場合、これは、各パケット内のFECペイロードIDヘッダのみに対して、320ビット、または等価的に40オクテットである。
ファイル配送のための基本UFD方法は、これまでのUEPファイル配送方法に著しい利点を提供する、以下で詳細に説明されるような、不均一誤り保護(UEP)ファイル配送サービスを提供するために、拡張することができる。本明細書では、これらの拡張された方法は、「UFD UEP」ファイル配送方法と呼ばれる。これらのUFD UEPファイル配送方法は、[PET]および[PET特許]で説明されている方法のいくつかを使用することができる。
例示的なUFD UEPファイル配送方法が、今からより詳細に説明される。そのような方法では、送信機は、サイズがFのファイルを、サイズがF0、F1、...、Fd-1のd個(d>1)の部分に分割し、したがって、Fは、iの全範囲にわたるFiの和に等しい。送信機は、サイズTのパケットを、サイズがT0、T1、...、Td-1のd個の部分に分割し、したがって、Tは、iの全範囲にわたるTiの和に等しい。Tのこの分割は、F0、F1、...、Fd-1と、対応するファイル部分の優先度に基づいている。比Fi/Tiは、ファイルの部分iを1つのソースブロックとして保護するために、理想的なFEC符号が使用されると仮定して、ファイルの部分iを回復するために、いくつのパケットが受信される必要があるかを決定し、したがって、比Fi/Tiが小さいほど、ファイルの部分iの優先度は高い。実際には、たとえば、FEC符号は完璧ではなく、いくらかの受信オーバヘッドを示すので、またはファイルのその部分が複数のソースブロックに分割され、いくつかのソースブロックのための符号化シンボルは他のソースブロックのための符号化シンボルよりも高いレートで失われるので、またはFi/Tiが整数でないので、Fi/Tiよりもわずかに多くのパケットが、ファイルの部分iを回復するために必要とされることがある。UEPの一例として、F=1MB、T=1024オクテット、d=2、F0=32KB、F1=F−F0=992KB、およびT0=64オクテット、T1=T−T0=960オクテットと仮定する。この例では、F0/T0=512であり、したがって、理想的には、512個のパケットの受信が、ファイルの部分0の回復を可能にし、一方、F1/T1=1058.13であり、したがって、理想的には、1059個のパケットの受信が、ファイルの部分1の回復を可能にする。したがって、この例では、ファイルの部分0は、ファイルの部分1を回復するのに必要とされる数のほぼ半分のパケットから回復することができる。
この例では、UEPが使用されない、すなわち、d=1であり、したがって、F0=F=1MB、T0=T=1024オクテットである場合、F0/T0=1024個のパケットが、ファイルを回復するために必要とされることに留意されたい。したがって、先の段落において説明されたUEP例では、ファイルの部分1の回復は、ファイルの部分0のより高い優先度が原因で、UEPが使用されない場合よりもわずかに多くのパケットを必要とする。この基本的なトレードオフについての分析的研究は、[PET]において見出すことができる。
送信機側のUFD UEP方法が、F0、F1、...、Fd-1と、異なるファイル部分の優先度に基づいて、Tの分割T0、T1、...、Td-1を生成する様々な方法が存在する。Fi/Ti≒F/Tであるように、Tiが選択される場合、ファイルの部分iは、平均的な優先度を有すると見なされ、部分iの優先度は、Fi/Ti<F/Tか、それともFi/Ti>F/Tかに応じて、それぞれ、相対的により高く、またはより低くなることに留意されたい。
FEC OTIの生成のための送信機側のUFD UEP方法が、図6を参照して、今から説明される。d、F0、F1、...、Fd-1、T0、T1、...、Td-1、Al、WSの値を与えると、ファイルのd個の部分の各々に独立して適用されるFEC OTIは、既存の方法を使用して、たとえば、[RaptorQ−RFC−6330]のセクション4.3で説明されている方法を使用して、通常通り計算することができ、すなわち、各i=0、...、d−1について、送信機は、たとえば、[RaptorQ−RFC−6330]のセクション4.3で説明されている方法を使用して、Fiをファイルサイズとし、Tiを各パケット内の部分iのための情報を搬送するために使用されるシンボルサイズとして、ファイル部分をどのようにソースブロックおよびサブブロックに分割すべきかを決定する、ファイル部分iのためのFEC OTIを生成することができる。送信機は、したがって、ファイルの他の部分とは無関係に、ファイルの部分iのためのFEC OTIを生成する。このプロセスは、本明細書の図6のステップ600に示されている。
送信機は、既存の方法を使用して、たとえば、[RaptorQ−RFC−6330]のセクション4.4およびセクション5で説明されている方法を使用して、ファイルの部分iのソースブロックおよびサブブロックへの分割、ならびにファイルの部分iのための符号化シンボルの(SBN,ESI)とファイルの部分iから符号化シンボルが生成される方法との間のマッピングも生成することができる。これらのUFD UEP方法は、ファイルの他の部分とは無関係に、ファイルの部分iに適用され、したがって、ファイルの異なる部分は、異なるソースブロックおよびサブブロック構造を有することができ、特に、方法がファイルの各部分に独立して適用されるので、ソースブロック当たり異なる数のソースシンボルが、またファイルの異なる部分では異なる数のソースブロックが存在することができる。
アライメントファクタAlは、好ましくは、ファイルの部分のすべてについて同じであり、特に、各部分iについて、Tiの値がAlの倍数であれば好ましい。さらに、たとえば、FEC OTIを導出するために、[RaptorQ−RFC−6330]のセクション4.5で説明されている方法が使用される場合、ファイルの部分の各々のためのソースブロックおよびサブブロック構造を導出するときに、同じAlの値およびWSの値が使用されるのならば好ましい。Alについて同じ値を使用することで、受信機においてAlの倍数オクテットにアライメントされたメモリ上で復号を行うことができることが保証され、WSについて同じ値を使用することで、受信機のランダムアクセスメモリ(RAM)内で復号される必要がある最大ブロックサイズがファイルのすべての部分について同じであることが保証される。しかし、これは、本明細書で説明される方法の要件ではなく、すなわち、方法は、以下でさらに説明されるように、異なるファイルに対して異なるAl値が使用される場合にも変更を施さずに適用される。たとえば、ファイルの優先度がより高い部分を回復するために、よりわずかなメモリを使用することが望ましい場合など、ファイルの異なる部分に対して異なる値のWSを使用することがFEC OTIを導出するのに好ましい、いくつかの応用が存在する。
異なる部分に対して異なるアライメントファクタを使用することが有利な応用が存在し得る。たとえば、優先度が高い部分は、4オクテットでアライメントされたメモリを有するローエンド受信機と8オクテットでアライメントされたメモリを有するハイエンド受信機の両方によって復号されることがあり、一方、優先度が低い部分は、ハイエンド受信機のみによって復号されることがある。この例では、優先度が高い部分については、ローエンド受信機がこれらの部分を効率的に復号できるように、Al=4を使用するのが有利であり得、優先度が低い部分については、Al=4を用いるよりもAl=8を用いるほうが、ハイエンド受信機がこれらの部分をより効率的に復号できるので、Al=8を使用するのが有利であり得る。
ファイル部分iに固有の、送信機側のUFD UEP方法によって生成される、対応するFEC OTIは、Fi、Ti、Zi、Niを備え、Ziは、ファイルの部分iが分割されるソースブロックの数であり、Niは、ファイルの部分iの各ソースブロックが分割されるサブブロックの数である。したがって、送信機側のUFD UEP方法がファイルのために生成するFEC OTI全体は、(d、Al、F0、T0、Z0、N0、F1、T1、Z1、N1、...、Fd-1、Td-1、Zd-1、Nd-1)を備えることができる。たとえば、dが固定され、したがって、FEC OTI内に明示的に載せる必要がない場合、またはソースブロック構造を、また使用される場合はサブブロック構造を示すために、他の方法が使用される場合、FEC OTIの他のバージョンも利用可能である。
UFD UEP方法を使用する送信機は、パケットで送信されるファイルの各部分に対して1つの符号化シンボルを組み立て、パケットのためのFECペイロードIDは、UFSI値Cを備える。パケットが送信されるとき、送信機は、図6のステップ610に示されるように、パケットのためのFECペイロードIDとして使用されるUFSI値Cを決定する。使用されるUFSI値は、たとえば、連続的とすること、たとえば、UFSI値0、1、2、3、...などとすることができる。与えられたUFSI値Cについて、ファイルの部分iのための、パケット内のパケットの第iの部分内に配置される、サイズがTiの符号化シンボルは、図6のステップ620に示されるように、Ai=C modulo Zi、Bi=floor(C/Zi)として計算される、SBN AiおよびESI Biを有する。図6のステップ630、640、650に示されるように、i=0、...、d−1について、これらd個の符号化シンボルは、パケットのd個の部分の各々に対して生成され、次いで、UFSI Cと、合計サイズがTのこれらd個の符号化シンボルが、パケットで一緒に送信される。送信機側のUFD UEP方法は、図6のステップ660において行われる判断に示されるように、符号化パケットを生成および送信し続ける。
受信機側のUFD UEP方法が、図7を参照して説明される。受信機は、図7のステップ700において示されるように、送信機に関して上で説明されたのと同じ形式のFEC OTI(d、Al、F0、T0、Z0、N0、F1、T1、Z1、N1、...、Fd-1、Td-1、Zd-1、Nd-1)を決定するために、既存の技法を使用することができる。たとえば、FEC OTIは、FLUTEセッション記述内に埋め込むことができ、またはFEC OTIは、URL内に符号化することができ、またはFEC OTIは、SDPメッセージを介して獲得することができる。ステップ710において、受信機は、ほかにもパケットが受信されたかどうかを調べ、別のパケットを受信するまで、またはさらなるパケットは受信されないと決定するまで、このステップに留まることができ、別のパケットを受信した場合、受信機は、ステップ730に進み、あるいはさらなるパケットは受信されないと決定した場合、受信機は、ステップ720に進み、ファイルの十分な部分が回復されたと決定して停止し、もしくは他の手段を使用して、たとえば、ファイル修復サーバへのHTTP要求を使用して、追加の部分を回復しようと試み、または受信機は、後の時間にさらなるパケットを受信するために別のセッションを待つことができる。
別のパケットが利用可能である場合、ステップ730において、受信機は、受信されたパケットのUFSI Cを決定し、各i=0、...、d−1について、パケットからサイズがTiの符号化シンボルを抽出する。ステップ740において、各i=0、...、d−1について、受信機は、ソースブロックの数ZiおよびUFSI Cに基づいて、Ai=C modulo Zi、Bi=floor(C/Zi)を計算し、ステップ750において、受信機は、部分iの符号化シンボルのための(SBN,ESI)を(Ai,Bi)になるように設定し、ステップ760において、受信機は、ファイルの部分iを回復するために使用される、部分iの符号化シンボルの値および(Ai,Bi)を記憶する。ステップ770において、受信機は、各i=0、...、d−1について、ファイルの部分iを回復するのに十分な符号化シンボルが受信されたかどうかを判定し、受信された場合、ステップ780に進んで、ファイルの部分iを回復し、受信されていない場合、ステップ710に進んで、さらなるパケットを受信する。
受信機側のUFD UEP方法には、多くの変形が存在する。たとえば、送信機は、パケットの少なくともいくつかで、ファイルの各部分について、2つ以上の符号化シンボルを送信することができ、したがって、受信機は、2つ以上の符号化シンボルを受信することができ、その場合、FECペイロードIDは、パケット内に含まれる各部分のための第1の符号化シンボルに対応するUFSIになるように設定することができ、パケット内の各部分のための追加のシンボルは、連続的な対応するUFSI値を有することができる。たとえば、パケットで搬送されるファイルの各部分のための符号化シンボルが3つ存在し、各部分のための第1のシンボルがUFSI=4234に対応する場合、各部分のための他の2つの符号化シンボルは、UFSIがそれぞれ4235および4236に対応することができ、パケットで搬送されるUFSIは、UFSI=4234とすることができる。
他の代替の例として、受信機は、回復を試みる前に、符号化シンボルをいくつ受信すべきかを事前決定することができ、またはセッション中のパケットロス統計を計算し、これに基づいて、ファイルのどの部分の回復を試みるべきかを決定することができる。別の例として、受信機は、ファイルの各部分を回復するのに十分な符号化シンボルが受信されたかどうかを判定するために使用される、FEC符号に固有の何らかの処理を行うことができる。別の例として、UFSI値は、各ファイル部分のための回復プロセスにおいて(SBN,ESI)値を生成する中間ステップを踏まずに、直接的に使用することができる。別の例として、ファイルの部分の回復は、符号化シンボルの受信と同時に行うことができる。
別の例として、他の形式のFEC OTI情報が使用され得る。たとえば、部分iのためのFEC OTI内で、ベースUFSI BUiを他の部分とは無関係に指定することができ、これは、次のように使用することができ、すなわち、パケット内に含まれる部分iのための符号化シンボルのためにFEC送信機および受信機によって使用されるUFSIは、U+BUIとされ、ここで、Uは、符号化シンボルを搬送するパケット内で搬送されるUFSIである。したがって、たとえば、パケットが、U=1045を搬送し、部分iのためのFEC OTI内のベースUFSIが、BUi=2000000である場合、符号化シンボルのUFSIは、2001045である。
ベースUFSIの使用には、いくつかの利点がある。たとえば、(後で説明される理由で)異なる部分のための修復シンボルのみが送信される場合、BUi=KTiと設定することが有利であり得、ここで、KTiは、部分i内のファイルシンボルの数である。この場合、送信パケットシーケンスにおけるUFSIのシーケンスは、0、1、2、3などとすることができ、それにもかかわらず、各部分について、その部分から生成された修復シンボルのみがパケットで送信される。
この段落では、ベースUFSIを使用する別の例示的な利点について説明する。[FLUTE]、[ALC]、[LCT]、[FEC BB]で説明されているプロトコルスイートは、TOIとも呼ばれる送信オブジェクト識別子を、転送されるファイルまたはオブジェクトのFEC OTIに関連付ける同じ部分のための符号化シンボルを、異なる時間に、または異なるセッションで送信することが、および異なるTOIに関連付けることが可能である。また、各異なるTOIに関連付けられたパケットごとに、UFSI=0で開始する符号化パケットを送信できることも有利である。各部分ごとに独立して、FEC OTIの一部としてベースUFSIを指定する能力を有することによって、各部分のための異なるベースUFSIを各TOIに関連付けることができ、異なるTOIにおいて重複する符号化シンボルを送信することなく、ファイルのための符号化シンボルが送信される。たとえば、同じ部分のための符号化シンボルは、TOI=1に関連付けられたパケットと、TOI=2に関連付けられたパケットとで送信することができ、TOI=1に関連付けられた部分のためのベースUFSIは、0に設定され、TOI=2に関連付けられた同じ部分のためのベースUFSIは、1000000に設定される。その場合、TOI=1およびTOI=2に関する符号化パケットはともに、0、1、2などのUFSIの系列を含むことができ、TOI=1を有する部分について、1000000個未満の符号化シンボルが送信される限り、2つのTOIに関連付けられて送信される符号化シンボルの間で、部分のための重複する符号化シンボルが送信されることはない。各部分ごとに異なるベースUFSIを指定する代わりに、FEC OTI内に部分のすべてによって使用されるベースUFSIを有することが有利なこともあり、それは、これがFEC OTIを伝達するのに必要とされるオクテットの数を減らすことができながら、特に、この方法と併せて使用されるFEC符号が、たとえば、Luby Iにおいて説明されているような情報付加FEC符号である場合は、すべての部分のためのUFSIの有効範囲を非常に大きくできるので、同時に、FEC OTI内で各部分のために別個のベースUFSIを指定する利点の多くを共有するからである。
UFD UEP方法を、ソースブロックおよびサブブロック構造を決定するための[RaptorQ−RFC−6330]で説明されている技法と組み合わせることで、多くの利点が提供される。特に、基本的UFD方法の利点のすべては、UFD UEP方法でも保たれる。たとえば、ファイルのUEP部分の1つを送信する目的で、SBNとESIの組合せによって識別された、これまでの方法がソースブロックと呼んだものは、UFD UEP方法を使用する場合は、UFSIによって識別されるその部分のためのファイルシンボルと見なすことができる。KTi=ceil(Fi/Ti)は、ファイルの部分i内のファイルシンボルの総数であることに留意されたい。たとえば、ソースブロック構造およびサブブロック構造が、[RaptorQ−RFC−6330]で説明されているように、ファイルの各部分のために決定され、ファイルの部分のためのシンボルの識別情報を(SBN,ESI)形式からUFSI形式に、またUFSI形式から(SBN,ESI)形式に変換するために、上で説明されたUFD UEP方法が使用される場合、ファイルシンボルのためのUFSIの範囲は、0、1、2、...、KTi−1であり、ファイルから生成される修復シンボルはいずれも、KTi、KTi+1、KTi+2などの範囲内のUFSIを有する。この特性は、シンボルがファイルの元の部分iの一部であるか、それともファイルの部分iから生成された修復シンボルであるかの判定を、単にそのUFSIをKTiの値と比較することによって可能にする。これは、たとえば、FEC復号をサポートしない受信機が、パケットのどの部分が元のファイルの部分を含むか(およびファイル内のそれらの位置)を決定することを可能にするために、またパケット内で搬送されるUFSI値、ならびにファイルの各部分iのためのTiおよびKTiの値に基づいて、パケットのどの部分が無視できる修復シンボルを含むかを決定することを可能にするために有益であり得る。
図8Aおよび図8Bは、一例を示しており、このケースでは、ファイルは、2つの部分を備える。第1の部分は、5つのソースブロックに分割され、これらのソースブロックの最初の3つは、各々が6つのソースシンボルを有し、残りの2つのソースブロックは、各々が5つのソースシンボルを有し、これらのシンボルの各々は、たとえば、サイズが48オクテットであり、したがって、第1の部分は、サイズが28×48=1344オクテットである。第2の部分は、4つのソースブロックに分割され、これらのソースブロックの最初の3つは、各々が4つのソースシンボルを有し、残りの1つのソースブロックは、各々が3つのソースシンボルを有し、これらのシンボルの各々は、たとえば、サイズが256オクテットであり、したがって、第2の部分は、サイズが15×256=3840オクテットである。
図9は、図8Aおよび図8Bに示されたファイル構造に対する可能なパケット化を示している。この例では、各パケットは、UFSI Cを備え、サイズがT1=48オクテットの第1の符号化シンボルは、図6を参照して先に説明されたように、Cに基づいて、図8Aおよび図8Bに示されたファイル構造の第1の部分から生成され、サイズがT2=256オクテットの第2の符号化シンボルは、図6を参照して先に説明されたように、Cに基づいて、図8Aおよび図8Bに示されたファイル構造の第2の部分から生成される。パケットの影なし部分は、ファイルの対応する部分のソースシンボルを搬送し、影つき部分は、ファイルの対応する部分から生成される修復シンボルを搬送する。この例では、ファイルの第1の部分を回復するのに必要なパケットの最小数は、28であり、一方、ファイルの第2の部分を回復するのに必要なパケットの最小数は、15である。
図9は、UFSIが0、...、27の28個のパケットを示しており、したがって、これらのパケット内で搬送されるファイルの第1の部分のための符号化シンボルのすべてが、ソースシンボルである。28以上のUFSI値を用いて生成される追加のパケットはいずれも、ファイルの第1の部分のための修復シンボルを搬送する。
UFD UEP方法の別の利点は、符号化シンボルが、それらのUFSIによって定められる順序で、すなわち、UFSI順の0、1、2、3、4、...で送信される場合、ファイルの部分iのZi個のソースブロックのための符号化シンボルは、インターリーブされた順序で送信され、すなわち、最初に、Zi個のソースブロックの各々からのESIが0のZi個の符号化シンボルが送信され、続いて、Zi個のソースブロックの各々からのESIが1のZi個の符号化シンボルが送信され、以降も同様なことである。この特性は、各部分が独立のソースブロック構造を有する場合であっても、ファイルのすべての部分に当てはまる。ほとんどの送信において、この単純な送信順序は、十分であり、好ましい。しかし、ソースブロックの数Ziと同期することがある何らかの周期で、パケットロスが経験される場合、より良い可能性のある送信順序は、Z個のUFSIが連続する符号化シンボルからなる各組を、それらを送信する前に、ランダムに置換したものであり、ここで、Zは、すべてのi=0、...、d−1に対するZiの最大値であり、すなわち、UFSIが0、...、Z−1である最初のZ個の符号化シンボルが、ランダムに置換された順序で送信され、次いで、UFSIがZ、...、2×Z−1である次のZ個の符号化シンボルが、ランダムに置換された順序で送信され、以降も同様である。別の可能な送信順序は、送信される符号化シンボルのすべてを、それらを送信する前に、ランダムに置換したものである。
UFD UEP方法を使用すると、これまでの方法またはこれまでの方法の単純な拡張にまさる多くの追加的な利点が提供される。たとえば、UFSIフィールドを備えるFECペイロードIDフィールドを使用するUFD UEP方法では、ファイルの各部分のための可能な符号化シンボルの総数は、UFSIフィールドのサイズによって制限されるだけであり、ファイルの各部分のソースブロック構造とは無関係である。さらに、UFSIフィールドの使用は、ファイルの各部分のためのまったく異なるソースブロック構造から生成されるシンボルの同時識別を可能にする、汎用的で簡潔なFECペイロードIDを提供する。たとえば、32ビットのFECペイロードIDをもたらす32ビットのUFSIを使用する場合、ファイルの各部分について、ファイルがいくつのソースブロックに分割されるかには無関係に、またサブブロックが使用される場合はファイルのサブブロック構造とは無関係に、ファイルのために生成され得る符号化シンボルの総数は、4294967296である。したがって、ファイルの第1の部分のためのシンボルが256オクテットのサイズであり、ファイルの第2の部分のためのシンボルが1024オクテットのサイズであるとすると、その場合、この例では、ファイルの第1の部分はサイズが1GBになり、ファイルの第2の部分はサイズが4GBになるが、ファイルが1個のソースブロックに分割されるか、16384個のソースブロックに分割されるか、それとも4194304個のソースブロックに分割されるかには無関係に、符号化シンボルの数は、各ファイル部分のためのソースシンボルの数の1024倍とすることができる。
図10は、[RaptorQ−RFC−6330]を使用するシンプルUEPファイル配送方法の性能を図示する。この例では、UEPファイル配送は、100個の修復シンボルを用いて保護された30個のソースパケットと、900個の修復シンボルを用いて保護された970個のソースパケットに対するものである。
図11は、UFD UEPファイル配送方法が提供する、図10のシンプルUEPファイル配送方法に対する改善の一例を図示する。この例では、1MBのファイルが、32KBの第1の部分と、992KBの第2の部分とに分割される。どちらの方法でも、[RaptorQ−RFC−6330]において仕様化されているFEC符号が使用され、符号化シンボルを搬送するための各パケット内のサイズは、1024オクテットであり、合計で2048個のパケットが送信される。
図11に示されるシンプルUEPファイル配送方法の例では、ファイルの第1の部分とファイルの第2の部分は、独立に処理および配送され、どちらの場合も、サイズが1024オクテットの正確に1つの符号化シンボルが、各パケットで搬送される。ファイルの第1の部分のためのソースは、32個のパケットで搬送され、符号化シンボルを含む合計で128個のパケットが送信される。ファイルの第2の部分のためのソースは、992個のパケットで搬送され、符号化シンボルを含む合計で1920個のパケットが送信される。
図11に示されるUFD UEPファイル配送方法の例では、ファイルの第1の部分とファイルの第2の部分は、組合された方法で処理および配送され、すなわち、送信される各パケットは、2つの部分の各々のための符号化シンボルを含み、第1の部分については、符号化シンボルのサイズは64オクテットであり、第2の部分については、符号化シンボルのサイズは960オクテットである。ファイルの第1の部分のためのソースは、512個のパケットで搬送され、全部で2048個のパケットが、第1の部分のための符号化シンボルを含む。ファイルの第2の部分のためのソースは、1059個のパケットで搬送され(ソースの最後のパケット内の符号化シンボルは、992オクテットの完全なシンボルサイズになるまでゼロでパディングされた第2の部分のための符号化シンボルである)、全部で2048個のパケットが、第2の部分のための符号化シンボルを含む。
図11に見られるように、パケットロス率の関数である、シンプルUEPファイル配送方法とUFD UEPファイル配送方法の回復性能は、ファイルの第2の部分については実際には同じであり、すなわち、どちらの場合も、ファイルの第2の部分は、パケットロス率が48%に接近するまでは、かなり一貫して回復される。他方、ファイルの第1の部分については、UFD UEPファイル配送方法の回復性能は、シンプルUEPファイル配送方法の回復性能よりも著しく良好であり、シンプルUEPファイル配送方法は、65%未満のパケットロス率については、ファイルの第1の部分を一貫して回復することができるが、UFD UEPファイル配送方法は、75%に近いパケットロス率まで、ファイルの第1の部分を一貫して回復することができる。
バンドル化ファイル配送サービスのための汎用ファイル配送方法およびシステム
これまでのほとんどのファイル配送方法は、バンドル化ファイル配送、すなわち、単一のバンドル化ファイルとしての複数のファイルの配送をサポートしない。複数のファイルを配送する単純な方法は、各ファイルを独立に配送することである。しかし、この単純な方法は、いくつかの難点を有する。たとえば、ファイルが小さい場合、提供される保護は理想からほど遠いが、それは、各ファイルのための符号化シンボルを含むパケットの数が小さい場合、パケットロス統計に大きな分散が存在し得るからである。
図12は、この問題を図示する。図12では、32KBのファイル配送の信頼性が、ネットワークにおける配送中のパケットロスのパーセントの関数として示されている。このファイル配送の例では、シンボルのサイズは1024であり、ファイルの32個のソースシンボルが、[RaptorQ−RFC−6330]において仕様化されているFEC符号を使用して、64個の符号化シンボルに符号化され、各符号化シンボルは、別個のパケットで送信される。図12に見られるように、ファイルの信頼できる配送が達成され得るロスのパーセントは、この分散のせいで、50%よりもはるかに小さい。
さらに、多くの小さいファイルが独立に符号化および送信される場合、すべてのファイルが高い信頼性で受信されるパケットロスのパーセントは、一段と小さくなる。図12は、各々が32KBのサイズである32個のファイルについて、この挙動を示しており、各ファイルの符号化および送信は、先の段落で説明されたのと同じパラメータを使用して、他のファイルとは無関係に実行される。見られるように、32個のファイルすべての配送が高い信頼性で達成され得るのは、パケットロスが25%を下回る場合であり、これは、50%よりもはるかに小さい。
UFD UEPファイル配送方法は、UFDバンドル化ファイル配送方法を提供するために、次のように拡張することができる。UFDバンドル化ファイル配送方法は、UFD UEPファイル配送方法と同じ方法を使用することができるが、同じファイルのd個の部分の配送を伝達する代わりに、各部分が別個のファイルであり、d個のファイルがバンドルとして配送されることを代わりに伝達することができる。サイズがそれぞれF0、F1、...、Fd-1であるファイルのバンドル化配送を提供することを送信機が望んでいると仮定する。送信機側のUFDバンドル化方法は、サイズTのパケットを、サイズがT0、T1、...、Td-1であるd個の部分に分割し、したがって、Tは、iの全範囲にわたるTiの和に等しい。Tのこの分割は、F0、F1、...、Fd-1と、対応するファイルの優先度に基づいている。
比Fi/Tiは、ファイルの部分iを1つのソースブロックとして保護するために、理想的なFEC符号が使用されると仮定して、ファイルiを回復するために、いくつのパケットが受信される必要があるかを決定し、したがって、比Fi/Tiが小さいほど、ファイルの部分iの優先度は高くなる。実際には、たとえば、FEC符号は完璧ではなく、いくらかの受信オーバヘッドを示すので、またはファイルのその部分が複数のソースブロックに分割され、いくつかのソースブロックのための符号化シンボルは他のソースブロックのための符号化シンボルよりも高いレートで失われるので、またはFi/Tiが整数でないので、Fi/Tiよりもわずかに多くのパケットが、ファイルの部分iを回復するために必要とされることがある。配送されるすべてのファイルの優先度が同じであることが望まれる場合、Tiは、Fi/Ti≒F/Tとなるように設定される。送信機側と受信機側の両方における、UFDバンドル化ファイル配送方法についての多くの詳細は、UFD UEPファイル配送方法とほぼ同じであり、したがって、省略される。
UFDバンドル化ファイル配送方法は、バンドル化ファイル配送とUEPファイル配送の両方を同時に提供するように拡張することができ、すなわち、バンドル内の各ファイルの優先度は、異なるように設定することができる。さらに、UFDバンドル化ファイル配送方法は、適切な伝達を用いて、複数のファイルの優先度付けされた配送とファイルの部分の優先度付けされた配送の両方の配送をサポートすることができる。たとえば、UFDバンドル化ファイル配送方法を使用して、3つのオブジェクトが符号化され、送信される場合、最初の2つのオブジェクトは、異なる優先度を有する、同じファイルの異なる部分とすることができ、第3のオブジェクトは、また異なる優先度を有する、異なるファイルとすることができる。受信機は、バンドル化ファイルおよび/またはファイル部分のどれを回復することに関心があるかを、多くの要因に基づいて決定することができ、他のファイルまたはファイルの部分とは独立に、それらのファイルまたはファイルの部分のみを回復することができる。当業者が理解するように、本開示を読めば、UFDバンドル化ファイル配送方法の多くの可能な代替バージョンが存在する。
UFDバンドル化ファイル配送の単純な一例として、32個のファイルからなるバンドルが配送され、各ファイルはサイズが32KBであり、各ファイルが同じ優先度を有すると仮定する。T=1024オクテットであると仮定する。この場合、各i=0、...、31に対して、Tiの値は、Ti=32オクテットである。各パケットは、32個のファイルの各々のための32オクテットの符号化シンボルと、パケット内の32個の符号化シンボルを識別するUFSIとを含む。この例では、32個の等しいサイズのファイルの各々からのソースシンボルを含む1024個のパケットが存在し、これらは、0〜1023の範囲のUFSIを有するパケットである。この例では、1024個の追加の修復シンボルが、各ファイルのために生成され、1024〜2047の範囲内のUFSIを有する追加の1024個のパケットで送信されると仮定する。
図12は、このUFDバンドル化ファイル配送の例の回復特性を、パケットロスの関数として示している。この例では、UFDバンドル化ファイル配送方法を使用する場合、50%に近いパケットロス率に対して、32個のファイルすべてを高い信頼性で回復することができ、これは、各ファイル別々の符号化および送信を使用する場合に、32個のファイルすべてについて高い信頼性の配送を可能にする、約25%のパケットロス率を大きく上回る改善である。
UFDおよびUEPファイル配送方法は、他の多くの応用を有することができる。たとえば、DASH形式のコンテンツのセグメントは、3GPP eMBMS規格に従った、マルチキャストまたはブロードキャストネットワークを介して配送することができる。その場合、DASH形式のコンテンツは、後で再生するために、エンドユーザのモバイルデバイスに配送することができ、DASH形式のコンテンツの各セグメントは、1Mbpsで符号化されたビデオコンテンツの8秒分を備えることができ、すなわち、各セグメントは、サイズが1MBである。
DASH形式のコンテンツが、最終的にモバイルデバイス上でエンドユーザによって再生される場合、完全な忠実度の、すなわち、ビデオアーチファクトもしくはスキップまたはバッファリングのない、再生が望ましく、エンドユーザは、配送されたコンテンツの部分のみを再生することを望むことができる。たとえば、コンテンツをDASH形式にひとたびフォーマットすれば、再フォーマットを行わずに、様々な転送を介してそれを配送することができる、転送および再生における効率性および柔軟性のため、各セグメントが別個のファイルとして配送されることが望ましい。
ネットワーク効率性のため、各DASHセグメントは、FEC保護され、他のセグメントと完全にインターリーブされることが望ましく、好ましくは、パケット内でUFDおよびUEP配送方法によって提供されるインターリーブを利用することができる。たとえば、配送される150個のセグメントが存在し、したがって、配送されるDASHコンテンツの全体的なサイズが、1200秒または等価的に20分の再生提示時間を備える、150MBであると仮定する。コンテンツは、各々が1200バイトのペイロードを有するパケットで配送されると仮定する。その場合、本明細書で説明されるUFDおよびUEP配送方法を使用すると、各パケットの8バイトが、150個のセグメントの各々に割り当てられ得、すなわち、各パケットは、150個のDASHセグメントの各々のための8バイトシンボルを搬送する。その場合、パケットロスパターンとは無関係に、各DASHセグメントは、モバイル受信デバイスに約131072パケットが到着したときに、すなわち、150個のセグメントの各々のための1MBのデータが到着したときに、回復することができる。この例では、150個のDASHセグメントの各々は、他のDASHセグメントを復号する必要なしに、受信モバイルデバイスにおいて復号し、任意選択で再生することができる。
本明細書で説明されるUFDおよびUEPファイル配送方法の別の例として、3GPP eMBMS規格に従ったネットワークなど、マルチキャストまたはブロードキャストネットワークを介して配送されるDASH形式コンテンツの配送について考察するが、DASHコンテンツは、ビデオセグメントおよびオーディオセグメントの系列を備え、各ビデオセグメントは、1Mbpsで符号化された8秒のビデオコンテンツを備え、すなわち、各ビデオセグメントは、サイズが1MBであり、各オーディオセグメントは、32Kbpsで符号化された8秒の対応するオーディオコンテンツを備え、すなわち、各オーディオセグメントは、サイズが32KBであり、ビデオセグメントおよび対応するオーディオセグメントは、8秒の提示時間という概して同じ間隔のコンテンツを含む。
この例では、DASHコンテンツは、ストリーミングされ、すなわち、各ビデオセグメントおよび対応するオーディオセグメントは、それらの提示時間の順序で順番に配送される。コンテンツは、各々が1200バイトのペイロードを有するパケットで配送されると仮定する。その場合、本明細書で説明されるUFDおよびUEP配送方法を使用すると、各パケットの1160バイトをビデオセグメントに割り当てることができ、各パケットの残りの40バイトを対応するオーディオセグメントに割り当てることができ、すなわち、各パケットは、ビデオセグメントのための1160バイトシンボルと、対応するオーディオセグメントのための40バイトシンボルを搬送する。その場合、パケットロスパターンとは無関係に、ビデオセグメントは、そのセグメントのためのシンボルを含む約905パケットの受信から回復することができ、対応するオーディオセグメントは、そのセグメントのためのシンボルを含む約820パケットの受信から回復することができる。
したがって、全体では、対応するビデオセグメントおよびオーディオセグメントが存在する8秒の間隔の提示時間に対応するいずれか820パケットの受信が、モバイル受信デバイスがオーディオセグメントを回復することを可能にし、追加の85パケットの受信または合計で905パケットの受信が、対応するビデオセグメントの回復も可能にする。この例では、オーディオが、ビデオよりも強固に保護されるが、多くの場合、そのほうが好ましく、それは、たとえば、ビデオ再生のタイミングは、オーディオ再生のタイミングによって指示されるからであり、オーディオとビデオの両方を再生するのに十分なデータが受信されない場合、少なくともオーディオを再生するほうが多くの場合は好ましいからである。
ユニキャスト修復要求のネイティブHTTPサポートのための方法
ファイルまたはファイル部分は、ファイルまたはファイル部分を記憶するために、および受信機によるファイルまたはファイル部分へのアクセスを可能にするために、標準的なHTTPウェブキャッシュサーバによって使用され得る、関連するURLを有する、「HTTPファイル」に組織すること、および「HTTPファイル」として利用可能にすることができる。HTTPファイルとして利用可能にされる、その元の順序のファイルまたはファイル部分は、本明細書では「オリジナル順HTTPファイル(Original−order HTTP file)」と呼ばれる。一般に、ユニキャスト修復要求のネイティブHTTPサポートのための方法は、HTTPファイルのソースブロックのシンボルおよびサブシンボルのための修復要求を、SBNおよびESIに基づいて、HTTPファイル内の標準的なHTTP(たとえば、ネイティブHTTP/1.1)オクテット範囲要求(指定されたバイト範囲を有するHTTP部分GET要求としばしば呼ばれる)に変換する。これは、HTTPファイルがどのようにソースブロックおよびソースブロック内のソースシンボルに分割されるかを理解している専門のHTTPウェブキャッシュサーバを大量に配備する必要がないように、標準的なHTTPウェブキャッシュサーバが、これらの修復要求にサービスできるようにすることを可能にする。
そのようなシナリオでは、システマティックなFEC符号が使用される場合、セッションのいくつか、たとえば、ブロードキャスト/マルチキャストセッションにおいて、修復シンボルだけを送信することがしばしば有利であるが、それは、こうすることで、受信機がユニキャスト修復要求でソースシンボルだけを要求することが可能になるからである。これは、HTTPファイル、または以下でより詳細に説明されるようなHTTPファイルの単純な並べ替え変換が、標準的なHTTPウェブキャッシュサーバとすることができるユニキャスト修復サーバに提供されることのみを要求し、HTTPファイルの定義およびHTTPファイルの分配のロジスティクス(logistics)を、これらのロジスティクスはFEC符号化には無関係であるので、より簡単にするという利点を有する。別の利点は、セッションにおいてソースシンボルが送信されない場合、ソースシンボルのすべては「失われて」いるので、受信機がユニキャスト修復要求でソースシンボルの任意の系列を要求できることであり、これは、ソースシンボルの連続的な系列のための修復要求を可能にするので好ましい。たとえば、完璧な回復特性を有するFEC符号が使用され、部分のソースブロックが1000個のソースシンボルを備え、(修復シンボルのいくつかは送信中に失われることがあり、したがって、受信された修復シンボルのESIのパターンは連続からほど遠いことがある場合でも)700個の修復シンボルがソースブロックのために受信されると仮定する。その場合、受信機は、ユニキャスト修復要求で、ソースブロックのための最初の300個の連続的なソースシンボルを要求し、これらのソースシンボルを、ソースブロックを回復するために、700個の修復シンボルと組み合わせることができる。ソースシンボルがHTTPファイル内で連続的である場合、300個すべての連続的なソースシンボルを要求して受信するために、単一のHTTPオクテット範囲要求を使用することができる。
受信機は、必ずしもプレフィックス要求(すなわち、第1バイトから開始する、ファイルの定められた数のバイトを求める要求)を行う必要はないが、多くの受信デバイスが存在し、ブロードキャストまたはマルチキャストセッションからパケットを受信するときに、異なる受信デバイスによって経験される任意に異なるロスパターンが存在する場合であっても、すべてのUEがプレフィックス要求を行うことを必要とすることで、結果として行われるUEからの要求が大きくオーバーラップするので、HTTPサーバにおけるキャッシング効率を著しく改善する。
説明されたそれらの利益のいくつかに基づいて、上で説明された技法は、ネットワークまたはネットワークデバイスが、修復シンボルのみがブロードキャストされていることを受信機に伝えるのに有利であり得る。この表示が伝達された場合、受信機は、どのソースシンボルを受信しているのかを追跡する必要はなく、受信したシンボルの数を追跡しさえすればよい。たとえば、受信されたシンボルの合計に基づいて、受信機は、次いで、さらにいくつのソースシンボルを修復サーバに要求すべきかを決定することができる。キャッシング効率を改善するために、受信機は、修復シンボルのみがブロードキャストされる旨の表示の知識に基づいて、ソースシンボルの失われた数のプレフィックス要求を行うように構成することができる。
代替として、プレフィックス要求を行うために、別個のシグナリング表示を受信機に与えることができる。別の実施形態では、受信機が失われたソースブロックの異なるサブセットの間で選択を行う柔軟性を有する場合はいつでも、受信機は、最低のシンボルインデックス値を有する失われたソースシンボル(すなわち、ソースブロックまたはサブブロックの先頭に最も近い失われたソースシンボル)を常に選択するように構成することができる。これは、ソースシンボルと修復シンボルの両方がブロードキャストチャネルを介して送信される場合とすることができる。
別の実施形態では、受信デバイスは、受信されたシンボル識別子、ESIを絶えず監視し、たとえば、FEC OTIに基づいて、または受信パケットで搬送されたFECペイロードIDに基づいて、修復シンボルのみに対応するESIを受信しているかどうかを判定する。修復シンボルのみに対応するESIを受信している場合、そのような受信機は、プレフィックス要求を行うことができる。この実施形態では、明示的なシグナリングを使用することなく、受信機は、修復シンボルのみを受信している場合、修復要求でソースブロックおよびサブブロックのプレフィックスを求める要求を送信する。受信デバイスがブロードキャストチャネルから修復シンボルを受信する場合であっても、受信されたシンボルのパターン、および単純な要求を行うことと、ブロードキャストチャネルを介してすでに受信された冗長なデータを受信する可能性との間のトレードオフに応じて、修復要求は、依然として、大部分または全部がプレフィックス要求であることができる。
修復シンボルのみがブロードキャストされることを伝達し、受信機がプレフィックス要求を行うことを伝達する場合に、HTTPバイト範囲ファイル修復要求、またはシンボルベースのファイル修復要求が使用されるとき、いくつかの利点が生じる。したがって、これらの方法は、どちらかまたは両方の要求形式をサポートする、受信機およびネットワークに適用することができる。
修復シンボルのみがブロードキャストされることを示す伝達は、(ユニキャストを介して)帯域外で、または(ブロードキャストを介して)帯域内で送信することができる。表示は、所望の粒度レベルに応じて、サービスレベル、セッションレベル、メディアレベルで、またはファイルレベルでさえ適用可能とすることができる。たとえば、伝達は、ユーザサービス記述(「USD」)内に追加することができる。USDは、識別されたサービスすべての配送について、修復シンボルのみがブロードキャストされることを示すことができる。伝達は、メディア提示記述(「MPD」)内に追加することもでき、MPDは、どのメディアが修復シンボルのみを使用してブロードキャストされるかを示すことができる。伝達は、それがセッション全体の配送に適用されるのか、それともセッション内のメディア成分の配送に適用されるのかを示すために、セッション記述プロトコル(「SDP」)内に追加することができる。伝達は、修復シンボルのブロードキャストがファイルレベルでのみ適用されることを示すために、ファイル記述テーブル(「FDT」)内に追加することもできる。
修復データを求めるプレフィックス要求を行うように受信機に要求する伝達は、帯域内転送または帯域外転送を介して配送することもできる。この表示も、所望の粒度レベルに応じて、サービスレベル、セッションレベル、メディアレベルで、またはファイルレベルでさえ適用される行うことができる。
したがって、そのような表示を提供するための様々な方法および装置が存在し、受信機は、そのような通知が受信される場合と、そのような通知が受信されない場合とで、異なる応答を行うようにプログラムおよび/または構成することができる。
要求は、特定の数のバイトまたはシンボルを求めるものとすることができる。場合によっては、受信機は、受信された修復シンボルの数、および受信されるファイルまたはオブジェクト内に含まれることが予想されるソースシンボルの数に基づいて、要求するソースシンボルの数を決定する。他の場合では、受信機は、スケジューリング動作を実行することができ、受信機は、すでに受信された修復シンボルのみを使用して、どのように復号を行うかを決定し、したがって、必要とされるソースシンボルのより具体的な数を述べることができる。たとえば、修復シンボルのいくつかは、他の修復シンボルと重複していることがあり、その場合は、より多くのソースシンボルが必要とされることがある。他の場合には、よりわずかなソースシンボルしか必要とされないことがわかることがある。
受信機は、FEC OTIに基づいて、特定の(SBN,ESI)ペアに対応するオリジナル順HTTPファイルのソースシンボルを求める要求を、HTTPオクテット範囲要求に変換することができる。たとえば、ファイルのためのFEC OTIが(F,Al,T,Z,N)であり、要求されるソースシンボルのためのSBNがAであり、ソースシンボルのためのESIがBであると仮定し、簡潔にするために、N=1、すなわち、ファイル構造のこの例では、ソースブロックはさらにサブブロックに分割されないと仮定する。その場合、受信機は、(KL,KS,ZL,ZS)を決定するために、たとえば、[RaptorQ−RFC−6330]のセクション4.4で説明されている方法を適用することができ、ここで、最初のZL個のソースブロックは、KL個のソースシンボルを有し、残りのZS個のソースブロックは、KS個のソースシンボルを有する。その場合、A、B、およびシンボルサイズTに基づいて、受信機は、ファイル内のソースシンボルの開始オクテットインデックスが、式1に示されるようになると決定することができ、ファイル内のソースシンボルの終了オクテットインデックスは、EI=SI+T−1である。次いで、受信機は、ソースシンボルを求める標準的なHTTPオクテット範囲要求を使用して、オクテットSI〜EIを要求することができる。
当業者が理解するように、これらの方法には、多くの拡張および改良が存在する。たとえば、単一のHTTPオクテット範囲要求は、サブブロックが使用されない場合に、オリジナル順HTTPファイルに複数の連続するソースシンボルが要求される場合、行うことができる。別の例として、オリジナル順HTTPファイルに加えて、または代わって、HTTPウェブキャッシュサーバが、修復シンボルを含むファイルを有することができ、またはオリジナル順HTTPファイルは、修復シンボルを含むように、すでに拡張されていることがあり、受信機は、修復シンボルを求めるHTTPオクテット範囲要求を行うために、本明細書で説明される方法と類似した方法を使用することができる。機能強化の別の例として、これらの方法は、当業者によって理解されるような類似の方法を使用して、サブブロックが使用される場合に対処するように拡張することができる。たとえば、受信機は、(TL,TS,NL,NS)を決定するために、[RaptorQ−RFC−6330]のセクション4.4で説明されている方法を使用することができ、ここで、ソースブロックの最初のNL個のサブブロックは、サイズがTL×Alであり、ソースブロックの残りのNS個のサブブロックは、サイズがTS×Alである。その場合、A、B、およびシンボルサイズTに基づいて、受信機は、ソースシンボルに対応するファイル内のN個のサブシンボルの開始および終了オクテットインデックスを決定し、標準的なHTTPオクテット範囲要求を使用して、これらのオクテットを求める要求を行うことができる。
別の例として、受信機は、FEC OTIに基づいて、特定のUFSIに対応するファイルまたはファイル部分のソースシンボルを求める要求を、HTTPオクテット範囲要求に変換することができる。
次の方法は、要求されたオクテット範囲要求を受信機に配送するために標準的なHTTPウェブキャッシングサーバを同時に使用しながら、HTTPファイルのシンボルを回復するために受信機によって標準的なHTTPバイト範囲要求を使用する効率を大きく高めることができる。
説明されるようなHTTPオクテット範囲要求をサポートするための単純な方法は、オリジナル順HTTPファイルを使用することである。この方法は、HTTPウェブキャッシュサーバのためのオリジナル順HTTPファイルを生成するために、元のファイルまたはファイル部分の変換が必要とされない利点を有するが、各ソースブロックのために連続的なソースシンボルのみが要求される場合であっても、ソースシンボルを要求するために、多くの異なるHTTPオクテット範囲要求が必要とされることがある。これには少なくとも2つの理由が存在し、すなわち、(1)複数のソースブロックが存在し、各ソースブロックからソースシンボルが失われることがあり、その場合、各ソースブロックのために別個のオクテット範囲要求が必要とされることがあり、(2)ソースブロック当たり複数のサブブロックが存在することがあり、したがって、1つのソースブロックに属する単一のソースシンボルを要求するためであっても、ソースシンボルのためのサブシンボルはオリジナル順HTTPファイル内で連続していないことがあるので、ソースシンボルを構成する複数のサブシンボルを求める複数のHTTPオクテット範囲要求を必要とすることがある。
上で説明されたHTTPオクテット範囲要求をサポートするための有利な方法は、最初に、元のファイルまたはファイル部分のためのFEC OTIに基づいて、本明細書で「UFSI順HTTPファイル(UFSI−order HTTP file)」と呼ばれる新しい形式に、ファイルまたはファイル部分を再組織する。この方法は、複数のソースブロックおよび/またはソースブロック当たり複数のサブブロックが存在する場合に有益である。UFSI順HTTPファイル内のデータの順序は、UFSIが0のファイルシンボル、UFSIが1のファイルシンボル、UFSIが2のファイルシンボル、以下同様といった順序であり、すなわち、UFSI順HTTPファイル内のデータの順序は、FEC OTIによって決定されるような、昇順の連続的なUFSIに従ってファイルシンボルを並べて組織される。URLをUFSI順HTTPファイルに関連付けることができ、そのURLは、HTTPウェブキャッシングサーバに提供することができる。受信機は、その場合、必要に応じて、UFSI順HTTPファイルの一部を要求するために、HTTPオクテット範囲要求を使用することができる。UFSI順HTTPファイルの1つの利点は、受信機がソースブロックの各々からほぼ同じ数の修復シンボルを受け取る場合、元のファイルまたはファイル部分を回復するのに十分なソースシンボルを獲得するために必要とされるHTTPオクテット範囲要求の数が、最小になり得ることであり、たとえば、各ソースブロックのために正確に同じ数の修復シンボルが受け取られる場合、1つのHTTPオクテット範囲要求で十分なことがある。たとえば、元のファイルまたはファイル部分のZ個のソースブロックの各々からサイズがTの最初のL個のソースシンボルを受け取るためには、UFSI順HTTPファイルの最初のL×T×Z個の連続するオクテットを求める要求で十分である。Z個のソースシンボルの各々のために1つまたは複数のセッションにおいてK−L個の修復シンボルが受信される場合、またFEC符号が理想的な回復特性を有する場合、HTTPファイルをFEC復号するためには、HTTPオクテット範囲要求から受け取ったL×T×Z個のオクテットで十分であり、この例では、Kは、Z個のソースブロックの各々におけるソースシンボルの数であると仮定される。
上で説明されたHTTPオクテット範囲要求をサポートするための別の有利な方法は、最初に、元のファイルまたはファイル部分のためのFEC OTIに基づいて、本明細書で「SS順HTTPファイル(SS−order HTTP file)」と呼ばれる異なる新しい形式に、ファイルまたはファイル部分を再組織する。この方法は、ソースブロック当たり複数のサブブロックが存在する場合に有益であり、それは、この場合は、各ソースシンボルが、元のファイルまたはファイル部分の連続的な部分ではないことがあり、すなわち、ソースシンボルのサブシンボルは、元のファイルの順序ではソースブロック全体に散らばることができるからである。SS順HTTPファイル内のデータの順序は、第1のソースブロックのすべてのソースシンボル、次に第2のソースブロックのすべてのソースシンボル、次に第3のソースブロックのすべてのソースシンボル、以下同様といった順序であり、すなわち、SS順HTTPファイル内のデータの順序は、FEC OTIによって決定されるような、昇順の連続的なESI順に従ってソースブロック内でソースシンボルを並べ、昇順の連続的なSBN順に従ってソースブロックを連結して組織される。URLをSS順HTTPファイルに関連付けることができ、そのURLは、HTTPウェブキャッシングサーバに提供することができる。受信機は、その場合、必要に応じて、SS順HTTPファイルの一部を要求するために、HTTPオクテット範囲要求を使用することができる。SS順HTTPファイルは、受信機がソースブロックの各々から異なる数の修復シンボルを受け取る場合、特に有利である。たとえば、2つのソースブロックが存在し、各々が1000個のソースシンボルからなる場合、また受信機が、1つまたは複数のセッションから、第1のソースブロックのための900個の修復シンボルと、第2のソースブロックのための100個の修復シンボルとを受け取る場合、受信機は、SS順HTTPファイルの最初のT×100個のオクテットを求める1つの要求を行い、第1のソースブロックのための100個のソースシンボルを受信することができ、受信機は、SS順HTTPファイルのT×1000〜T×1900−1のオクテットを求める別の要求を行い、第2のソースブロックのための900個のソースシンボルを受信することができ、この例では、Tは、両方のソースブロックのためのオクテット単位のシンボルサイズである。
今説明された両方の方法の組合せを使用することもでき、すなわち、UFSI順HTTPファイルとSS順HTTPファイルの両方は、異なるURLを通して受信機から利用可能にすることができ、その場合、受信機は、2つの異なる形式のHTTPファイルへのHTTPオクテット要求の組合せを使用することができる。たとえば、10個のソースブロックが存在し、各々が1000個のソースシンボルを有する場合、また1つまたは複数のセッションにおいて、最初の8個のソースブロックの各々のための800個の修復シンボルが受信され、第9のソースブロックのための820個の修復シンボルが受信され、第10のソースブロックのための500個の修復シンボルが受信される場合、受信機は、10個のソースブロックの各々のための200個のソースシンボルを受信するために、UFSI順HTTPファイルへのHTTPオクテット範囲要求を行うことができ、第10のソースブロックのための追加の300個のソースシンボルを受信するために、SS順HTTPファイルへの追加のHTTPオクテット範囲要求を行うことができる。この例では、受信機は、(理想的な回復特性を有するFEC符号を仮定した場合)第9のソースブロックのための不必要な20個のソースシンボルを受信することがあるが、場合によっては、よりわずかな数のHTTPオクテット範囲要求を使用する、いくつかのソースブロックのための最低限必要とされるよりも多くのオクテットの要求を行うほうが、はるかに多くの数の異なるHTTPオクテット範囲要求を必要とすることがある、各ソースブロックのための正確に必要とされる数のソースシンボルの要求を行うよりも効率的なことがある。
ファイルを修復するために、このHTTPバイト範囲要求が受信機によって使用できる場合、そのことを伝えることは有利であり得る。これは、ファイル修復のために現在は他の要求メッセージを使用している配備されたネットワークに、この特徴を徐々に導入していくことを可能にする。従来のHTTPベースのファイル修復サーバにネットワーク動作を移行することを計画しているシステム運営者は、自らのネットワーク全体またはローミングパートナネットワークにおいて特徴が十分にサポートされる前に、HTTPバイト範囲要求を行うことが可能な受信機の配備から開始することができる。次いで、配備されたHTTP対応の受信機の数が増加するにつれて、運営者は、これらの端末からの推定される要求負荷に見合ったHTTPサーバの配備を開始することができる。特定のネットワークにおいて、受信機がそのネットワーク内でHTTPバイト範囲要求を使用できることを受信機に示すために、伝達を使用することができる。
HTTPバイト範囲要求のネットワークサポートを伝えるための別の手法は、サーバがHTTPバイト範囲要求のみをサポートすることを示す(たとえば、サーバURIに「byteRangeServiceURI」タイプオブジェクトというタグを付ける)、ディスクリプタを修復サーバURLとともに提供することである。この方法は、一般に「serviceURI」ディスクリプタによって識別される、シンボルベースの要求のみを受け入れるすでに配備された修復サーバを有する、ネットワークにおいて有益である。新しい「byteRangeServiceURI」の定義は、このディスクリプタを認識しないレガシ受信機が、これらのHTTPサーバに誤ってシンボルベースの要求を行うことを防止しながら、新しい受信機が、これらのサーバとともにバイト範囲要求を使用することを可能にする。
HTTPバイト範囲要求のネットワークサポートを伝えるための別の実施形態は、サーバがHTTPバイト範囲要求のみをサポートするのか、それともHTTPバイト範囲要求とシンボルベースの要求などの他の要求形式とをサポートするのかを示す、ディスクリプタを修復サーバURLとともに提供することである。別の実施形態では、ディスクリプタは、3つの可能性、すなわち、(1)修復サーバはHTTPバイト範囲要求のみをサポートするのかどうか、(2)修復サーバは別のタイプの要求形式(たとえば、シンボルベース)のみをサポートするのかどうか、それとも(3)修復サーバはHTTPバイト範囲要求と他の要求形式をサポートするのかどうかのうちの1つを示す。ディスクリプタは、受信機によってサポートされる場合、要求形式のどれが好ましいか、または要求形式のどれを使用する必要があるかも示すことができる。サーバによってサポートされる要求形式のディスクリプタは、修復サーバURIのリストとともに送信することができる。
たとえば、インターネット上のロケーションなど、ファイルが保存されているコンテンツサーバから直接的にファイルの部分またはファイルのすべてを取り出すために、受信機がHTTPバイト範囲要求を使用できることを示す、別のディスクリプタ(たとえば、「useFileURI」要素)も、受信機に送信することができる。これは、(モバイルネットワーク運営者など)ネットワーク運営者が、修復手順のためのソースデータを提供するために、専用ファイル修復サーバを配備する必要がなく、代わりに、ファイルのコンテンツサーバに依存できる、アーキテクチャを可能にする。ファイルがブロードキャストチャネルを介してダウンロードされる場合、ファイルは、ファイルのURI、たとえば、www.<news providersite>.com/latest_news.3gpを含む、ファイルディスクリプタテーブルを用いて送信することができる。「useFileURI」要素の存在は、www.<news providersite>.com/latest_news.3gpからソースデータを取り出すために、端末がHTTPバイト範囲要求を使用できることを端末に示す。したがって、受信機をwww.<mobile−oper−cached−file−server−of−news>.com/newsfile_003.3gpに向かわせる代わりに、受信機は、一般に従来のHTTPプロトコルを使用してコンテンツにアクセスするブラウザからコンテンツがすでに利用可能であるサイトに直接的に向かう。たとえば、オリジナル順、またはUFSI順、またはSS順、または拡張オリジナル順HTTPファイル形式などの、ファイル形式を伝える別の要素が存在することができる。
専用の修復手順とは独立に、コンテンツ配送システムは、ブロードキャストされるコンテンツに加えて、ファイルのコンテンツの一部またはすべてがユニキャストによって利用可能であることを受信機に伝えるためのメカニズムを含むことができる。この伝達は、ブロードキャストの一部として提供されるデータとすることができ、データは、ユニキャストロケーションを指し示す。たとえば、ブロードキャストデータは、ファイルの利用可能性およびファイルのためのURLの表示を含むことができる。異なる実施形態は、これらの利用可能なファイルを異なるように使用することができる。たとえば、ブロードキャストされたURLによって示されるファイルは、修復処理のために使用されるファイル、ダウンロードをスピードアップするために、および/またはより高速な初期プレイアウトをサポートするために使用されるファイルとすることができる。
いくつかの実施形態では、ファイルは、2つ以上のネットワークまたは物理ロケーションに存在する。そのため、ブロードキャストチャネル上の伝達は、ファイルが入手可能な複数のロケーションを示すURLのリストを含むことができる。いくつかの実施形態では、実際には同じ物理ロケーションを指し示す、したがって、同じファイルまたはオブジェクトを指し示す、複数のURLが存在する。
URL(複数可)によって示されるリソース(複数可)は、たとえば、限られた時間の間だけ利用可能であることによって、制限され得る。(ブロードキャスト配信において識別子を介して指定される)オブジェクトを場合によっては複数のURLにマッピングできるようにすることが有益であり得る。URLの各々について、ファイルが、HTTPプロトコルを使用して1つのロケーションにおいて物理的にアクセス可能であり、他のプロトコルを使用して他のロケーションまたは同じロケーションにおいて利用可能であることを示す表示など、追加情報を提供することができる。そのような追加情報の他の例は、リソースが特定のURLにおいてアクセス可能な時間、および/またはリソースにアクセスするための複数のURLの中からURLを選択する優先順位に関するルール、たとえば、優先順位リスト、もしくは利用可能なアクセスネットワークに依存する優先順位リストなどを含む。
修復データを要求するときに、受信機がどのサーバまたはドメインを最初に試みるべきかについての優先度付けを提供するために、別のディスクリプタも、サーバURLリストとともに送信することができる。好ましい一実施形態では、「priorityURI」要素を何らかのURIに関連付けて、サーバを選択する際に、それらが受信機によって優先されるべきであることを示すことができる。これは、2つのレベルの優先度付けを可能にし、それによって、受信機は、「priorityURI」を有するサーバを最初に試み、優先されたサーバが応答しない場合に限って、他のサーバに要求を送信する。別の実施形態では、サーバURIのグループを、優先度の降順に列挙されたグループを有する「priortyGroups」に構成することができる。これは、優先度が最も高いグループから最初に選択すべきことを受信機に通知する。これらのサーバのすべてへの要求が失敗した場合、受信機は、サーバの次のグループからサーバを選択することに着手し、以下同様であり、それによって、複数のレベルの優先度付けを可能にする。
ディスクリプタおよびサーバURIのリストを受信機に伝達できる、2つの一般的な方法が今から説明される。一方では、伝達は、すべての受信機に対するブロードキャストチャネルを介するものであり(帯域内)、他方では、伝達は、各受信機へのユニキャストチャネルを介するものである(帯域外)。情報は、関連手順記述(構成ファイル)、ユーザサービス記述(「USD」)、メディア提示記述(「MPD」、セッション記述プロトコル(「SDP」)、またはファイル記述テーブル(「FDT」)など、ファイル修復機能において使用される様々な既存のメッセージタイプに追加することができる。
そのような情報を分配するためにFDTおよびUSDを伝達するようにサーバが構成され、それらのFDTおよびUSDを読み、理解するように受信機が構成される場合、これは、様々な有益な情報を送信するための機構を提供する。
たとえば、情報は、FLUTEでは、同じファイルのための複数の代替URLを含むことができる、「代替コンテンツロケーション(Alternative−Content−Location)」要素をファイル要素内に含むことができる。この要素は、(リソース利用可能性のインジケータ、リソースが利用可能である形式、リソースが利用可能である時間、優先度位など)他のパラメータも追加するように拡張することができる。
別の例として、FDT内のファイルの各々がベースURL要素のいずれかに対して解決され得ることを受信機に通知するために、「ベースURL(BaseURL)」をFDT要素内に含むことができる(したがって、ファイル要素内では必要とされない)。上記のようなフラグおよびタイミングが、同じく存在することができる。これは、選択可能な多くの配備をカバーすることができる。変形では、ベースURLは、FLUTEの代わりに、USDレベルにおいて提示される。したがって、USDは、FLUTEと互換性をもちながら、MBMSのためのベースURL解決を行うための方法として提供することができる。
別の実施形態では、「代替コンテンツロケーション−1」要素および「代替コンテンツロケーション−2」要素などの、いくつかの任意選択的な要素を、ファイル配送テーブル(FDT)のファイル要素に導入することができる。これらの要素の各々は、コンテンツサーバまたは共通の専用サーバにおけるファイルのURLを提供するために使用することができる。一実施形態では、これらの要素のどちらかが存在する場合、これらのURLは、シンボルベースのファイル修復サーバに要求を行う前に、端末によって優先度付けされる。両方の要素が存在する場合、「代替コンテンツロケーション−2」要素の前に、「代替コンテンツロケーション−1」要素が選択されることを必要とすることも可能である。URLは、絶対URL、またはRFC3986で説明されているような相対参照とすることができる。
別の実施形態では、わかっている場合は、利用可能時間を示すために、任意選択的な「利用可能時間」要素が、上述の「代替コンテンツロケーション−x」属性の各々に関連付けられる。
別の実施形態では、任意選択的な要素「ベースURL−1」および「ベースURL−2」が、ファイル配送テーブル内で使用され得る。存在する場合、「ベースURL−1」は、FDTファイル要素の任意の「代替コンテンツロケーション−1」要素内に含まれる相対参照を解決するためのベースURLを提供する。存在する場合、「ベースURL−2」は、FDTファイル要素の任意の「代替コンテンツロケーション−2」要素内に含まれる相対参照を解決するためのベースURLを提供する。
他のオプションを考えることができ、同様に上述のオプションの組合せも考えることができる。たとえば、利用可能なファイル形式に従ってグループ化された他のURLに、ファイル形式タイプを埋め込む。
通信事業者のネットワーク内の端末がチャーン(churn)され、より多くの受信機がHTTPバイト範囲要求に対応可能になるにつれて、通信事業者は、ファイル修復容量のより多くを従来のHTTPサーバに移行し、この伝達方法を介して、それらの能力を通知することができる。
ある修復サーバがHTTPバイト範囲要求をサポートする旨の通知を受信すると、HTTPバイト範囲要求をサポートする端末は、サポートサーバの1つにデータを要求するために、バイト範囲要求を使用することができる。
どの要求形式を使用するのが好ましいか、または必要かをディスクリプタが示す、別の実施形態では、受信機は、示された選好または要件に従う。
別の手法は、どの特定のサーバがこの機能を有するかを識別することなく、HTTPバイト範囲要求が修復サーバによってサポートされることを受信機に伝えることである。伝達は、すべての修復サーバが、HTTPバイト範囲要求のみに対応可能であること、またはすべてが、HTTPバイト範囲要求と、たとえば、シンボルベースの要求など、他の要求メッセージ形式とに対応可能であることを示す。
別の実施形態では、信号は、上で列挙された3つの可能性のうちの1つ、すなわち、(1)すべての修復サーバがHTTPバイト範囲要求のみをサポートするかどうか、(2)修復サーバが別のタイプの要求形式(たとえば、シンボルベース)のみをサポートするかどうか、または(3)修復サーバがHTTPバイト範囲要求と他の要求形式とをサポートするかどうかを示す。この簡略化された伝達が使用される場合、通信事業者は、これを受信機に伝達する前に、通知された要求形式(複数可)をサポートするように、ファイル修復サーバのすべてをアップグレードすることができる。たとえば、オリジナル順、UFSI順、SS順、拡張オリジナル順、または他のタイプのHTTPファイル形式など、ファイル形式タイプも伝達することができる。ファイル形式タイプが明示的に伝達されない場合の、デフォルトファイル形式タイプが存在することができ、たとえば、ファイル形式タイプが伝達されない場合、オリジナル順HTTPファイル形式をデフォルトとすることができる。
ディスクリプタおよびサーバURI情報と同様に、この伝達も、2つの一般的な方法を使用して、受信機に伝達することができる。一方では、伝達は、すべての受信機に対するブロードキャストチャネルを介するものであり(帯域内)、他方では、伝達は、各受信機へのユニキャストチャネルを介するものである(帯域外)。表示は、関連手順記述(構成ファイル)、ユーザサービス記述(「USD」)、メディア提示記述(「MPD」)、セッション記述プロトコル(「SDP」)、またはファイル記述テーブル(「FDT」)など、ファイル修復機能において使用される様々な既存のメッセージタイプに追加することができる。
ディスクリプタおよびサーバURIのリストを受信機に伝達できる、2つの一般的な方法が今から説明される。
当業者が理解するように、これらの方法には多くの変形が存在する。たとえば、オリジナル順HTTPファイル、UFSI順HTTPファイル、およびSS順HTTPファイルはすべて、要求に対して利用可能にすることができる。別の例として、SS順HTTPファイルは、分割して、複数のHTTPファイルとして利用可能にすることができ、各ソースブロックに対して、1つのそのようなHTTPファイルが存在する。変形の他の例として、HTTPに基づいたもの以外の方法およびプロトコルを使用することができ、RTP/UDPまたはUDP上に構築された独自仕様のプロトコルに基づいた方法などを使用することができる。
ハードウェアシステムおよび例
上で説明された方法およびシステムは、ハードウェア、ソフトウェア、および/またはプログラムコードもしくは他の命令を含む適切に組織されたコンピュータ可読媒体で実施することができる。プログラムコードは、適切なハードウェアプラットフォーム上で実行するために、非一時的な媒体上で提供すること、またはダウンロードとして送信することなどができる。上述の教示を使用できるシステムのいくつかの例が、本明細書で提供される。
図13は、本明細書で説明されるファイル配送システムの一部としての、パケットを送信するために使用できるようなマルチステージ符号化を使用する通信システム1300のブロック図である。もちろん、他の符号および/またはハードウェアを代わりに使用することができる。
通信システム1300では、入力ファイル1301または入力ストリーム1305が入力シンボル生成器1310に提供される。入力シンボル生成器1310は、入力ファイルまたはストリームから、1つまたは複数の入力シンボルの系列(IS(0)、IS(1)、IS(2)、...)を生成し、各入力シンボルは、値および(図13において括弧付きの整数として示される)位置を有する。上で説明されたように、入力シンボルのための可能な値、すなわち、そのアルファベットは、各入力シンボルが入力ファイルのMビットに対する符号となるように、一般に2M個のシンボルからなるアルファベットである。Mの値は、一般に、通信システム1300の使用によって決定されるが、汎用的なシステムは、使用ごとにMが変化し得るように、入力シンボル生成器1310のためのシンボルサイズ入力を含むことができる。入力シンボル生成器1310の出力は、符号化器1315に提供される。
静的鍵生成器1330は、静的鍵のストリームS0、S1、...を生成する。生成される静的鍵の数は、一般に制限され、符号化器1315の特定の実施形態に依存する。静的鍵の生成は、後でより詳細に説明される。動的鍵生成器1320は、符号化器1315によって生成された各出力シンボルのための動的鍵を生成する。各動的鍵は、同じ入力ファイルのための動的鍵の大部分が一意的であるように生成される。乱数発生器1335が、生成器1320および/または生成器1330に入力を提供することができる。たとえば、Luby Iは、使用できる鍵生成の実施形態について説明している。動的鍵生成器1320および静的鍵生成器1330の出力は、符号化器1315に提供される。
動的鍵生成器1320によって提供される各鍵Iと、入力シンボル生成器によって提供される入力シンボルとから、符号化器1315は、値がB(I)の出力シンボルを生成する。符号化器1315の動作は、以下でより詳細に説明される。各出力シンボルの値は、その鍵に基づいて、また入力シンボルの1つまたは複数と、場合によっては、入力シンボルから計算された1つまたは複数の冗長シンボルとの何らかの関数に基づいて生成される。特定の出力シンボルを生じさせる入力シンボルと冗長シンボルの集まりは、本明細書では、出力シンボルの「同伴シンボル(associated symbol)」または単に「同伴(associate)」と呼ばれる。関数(「値関数」)および同伴の選択は、以下でより詳細に説明されるプロセスに従って行われる。常にではないが、一般に、Mは、入力シンボルと出力シンボルに対して同じであり、すなわち、それらはともに、同数のビットに対する符号である。
いくつかの実施形態では、同伴を選択するために、入力シンボルの数Kが、符号化器1315によって使用される。入力がストリーミングファイルである場合など、Kが事前にわからない場合、Kは、単なる推定値とすることができる。値Kは、入力シンボルおよび符号化器1315によって生成される任意の中間シンボルのための記憶域を割り当てるために、符号化器1315によって使用することもできる。
符号化器1315は、出力シンボルを送信モジュール1340に提供する。送信モジュール1340は、動的鍵生成器1320から、そのような各出力シンボルの鍵も提供される。送信モジュール1340は、出力シンボルを送信し、使用される鍵方法に応じて、送信モジュール1340は、送信される出力シンボルの鍵についての何らかのデータも、チャネル1345を介して、受信モジュール1350に送信することができる。チャネル1345は、消失チャネルであることが仮定されるが、それは、通信システム1300の適切な動作のための要件ではない。
モジュール1340、1345、1350は、送信モジュール1340が、出力シンボルと、それらの鍵についての任意の必要なデータとをチャネル1345に送信するように適合されており、受信モジュール1350が、シンボルと、潜在的にそれらの鍵についての何らかのデータとをチャネル1345から受信するように適合されている限り、任意の適切なハードウェア構成要素、ソフトウェア構成要素、物理媒体、またはそれらの任意の組合せとすることができる。Kの値は、同伴を決定するために使用される場合は、チャネル1345を介して送信することができ、または符号化器1315と復号器1355の取り決めによって事前に設定しておくことができる。図13(および本明細書の他の場所)に示される他の要素も、モジュール、ステップ、プロセスなどのいずれとして説明されているかにかかわらず、ハードウェア、ソフトウェア、および/または電子的に可読な媒体上に記憶されたプログラムコードを使用して実施することができる。
上で説明されたように、チャネル1345は、インターネットを介する経路、もしくはテレビ送信機からテレビ受信者までの放送リンク、もしくは1つの地点から別の地点までの電話接続などの、リアルタイムチャネルとすることができ、またはチャネル1345は、CD ROM、ディスクドライブ、もしくはウェブサイトなどの、記憶チャネルとすることができる。チャネル1345は、ある人がパーソナルコンピュータから電話回線を介してインターネットサービスプロバイダ(ISP)に入力ファイルを送信し、入力ファイルがウェブサーバ上に記憶され、その後、インターネットを介して受信者に送信される場合に形成されるチャネルなど、リアルタイムチャネルと記憶チャネルの組合せとすることさえできる。
チャネル1345は消失チャネルであると仮定されるので、通信システム1300は、受信モジュール1350から出る出力シンボルと送信モジュール1340に入る出力シンボルとの間の1対1対応を仮定しない。事実、チャネル1345がパケットネットワークを備える場合、通信システム1300は、任意の2つ以上のパケットの相対順序が、チャネル1345を通過する際に維持されることを仮定できないことさえある。したがって、出力シンボルの鍵は、上で説明された鍵方式の1つまたは複数を使用して決定され、出力シンボルが受信モジュール1350から出る順序によって必ずしも決定されない。
受信モジュール1350は、出力シンボルを復号器1355に提供し、これらの出力シンボルの鍵についての受信モジュール1350が受信する任意のデータは、動的鍵再生成器1360に提供される。動的鍵再生成器1360は、受信された出力シンボルのための動的鍵を再生成し、これらの動的鍵を復号器1355に提供する。静的鍵生成器1363は、静的鍵S0、S1、...を再生成し、それらを復号器1355に提供する。静的鍵生成器は、符号化プロセス中と復号プロセス中の両方で使用される乱数発生器1335にアクセスする。これは、乱数が同じ物理デバイス上で生成される場合は、そのようなデバイスへのアクセスの形態を取ることができ、または同じ挙動を達成するために、乱数生成のための同じアルゴリズムへのアクセスの形態を取ることができる。復号器1355は、入力シンボル(やはり、IS(0)、IS(1)、IS(2)、...)を回復するために、動的鍵再生成器1360および静的鍵生成器1363によって提供される鍵を、対応する出力シンボルと一緒に使用する。復号器1355は、回復された入力シンボルを入力ファイル再組立て器1365に提供し、入力ファイル再組立て器1365は、入力ファイル1301または入力ストリーム1305のコピー1370を生成する。
ファイル配送は、複数の受信機および/または複数の送信機を用いて行うことができる。これらの概念は、図14〜図15に図示される。
図14は、1つの受信機2402が、3つのチャネル2406を介して、(それぞれ「A」、「B」、「C」で示される)3つの送信機2404からデータを受信する構成を図示する。この構成は、受信機が利用可能な帯域幅を3倍にするために、またはいずれか1つの送信機からファイル全体を獲得できるほど十分長くは利用できない送信機に対処するために使用することができる。示されるように、各送信機2404は、値のストリームS()を送信する。各S()値は、その使用が上で説明された、出力シンボルB(I)および鍵Iを表す。たとえば、値S(A、nA)は、送信機2402(A)において生成された出力シンボルの系列における、第「nA」の出力シンボルおよび第「nA」の鍵である。1つの送信機からの鍵の系列は、送信機が重複した労力を払わないように、好ましくは、他の送信機からの鍵の系列と異なる。これは、図14において、系列S()が送信機の関数であるという事実によって示されている。
送信機2402は、重複した労力を払わないようにするために、同期または協調させる必要はない。事実、協調せずに、各送信機は、その系列の異なる場所にいる(すなわち、nA≠nB≠nCである)可能性が高い。
図15では、1つの入力ファイル2502のコピーが、複数の送信機2504(そのうちの2つが図に示されている)に提供される。送信機2504は、個々に、入力ファイル2502のコンテンツから生成された出力シンボルを、チャネル2506を介して、受信機2508に送信する。示された2つのうちの各送信機は、(K+A)/2個の出力シンボルのみを送信しさえすればよく、その後、受信機の復号器は、入力ファイル全体を回復することができる。
2つの受信機と2つの送信機を使用すると、受信機ユニット2510によって受信される情報の総量は、1つのチャネル2506を介して利用可能な情報の4倍になり得る。情報の量は、たとえば、送信機が両方の受信機に同じデータをブロードキャストする場合、単一チャネルの情報の4倍よりも少なくなることがある。その場合、受信機ユニット2510における情報の量は、少なくとも2倍になり、データがいずれかのチャネルで失われる場合は、しばしばそれよりも多くなる。送信機がただ1つの信号をブロードキャストする場合でも、受信機が異なる時間に視野内にあるならば、各送信機をリスンしている2つ以上の受信機を有する利点が存在することに留意されたい。図15では、受信機ユニット2510は、図13に示された受信モジュール1350、復号器1355、動的鍵再生成器1360、および入力ファイル再組立て器1365の機能に類似した機能を実行する。
いくつかの実施形態では、コンピューティングデバイスが、一方の送信機に1つの出力を提供でき、他方の送信機に別の出力を提供できるように、入力ファイル2502は、2つの符号化器を有する1つのコンピューティングデバイスにおいて符号化される。これらの例の他の変形は、本開示を検討することで明らかになる。
本明細書で説明される符号化装置および方法は、他の通信状況においても使用することができ、インターネットなどの通信ネットワークに限定されないことを理解されたい。たとえば、コンパクトディスク技術も、傷付きディスク問題に対処するために、消失および誤り訂正符号を使用し、情報をディスクに記憶する際にチェーンリアクション符号を使用することから利益を得る。別の例として、衛星システムは、送信のための電力要件を犠牲にして、電力低下によるより多くの誤りを意図的に許容するために、消失符号を使用することができ、チェーンリアクション符号は、その応用において有益である。また、消失符号は、情報記憶の信頼性を高めるためのRAID(独立ディスクの冗長アレイ)システムを開発するために使用された。本発明は、したがって、潜在的なデータ紛失またはデータ誤りの問題に対処するために符号が使用される他の応用において有益であることがわかる。
いくつかの好ましい実施形態では、上で説明された通信プロセスを実行するための命令の組(またはソフトウェア)が、おそらくは損失のある通信媒体を介して通信する2つ以上の多目的コンピューティング機械に提供される。機械の数は、1つの送信機および1つの受信機から、任意の数の送信および/または受信機械にわたることができる。機械を接続する通信媒体は、有線、光、またはワイヤレスなどとすることができる。上で説明された通信システムは、この説明から明らかな、多くの用途を有する。
HTTPストリーミングサーバを使用するブロック要求ストリーミングシステムは、上で説明されたように、ファイルを配送することができる。以下では、そのようなシステムの例示的な実施が説明される。HTTPストリーミングを用い、送信元は、標準的なウェブサーバ、およびコンテンツ配送ネットワーク(CDN)とすることができ、標準的なHTTPを使用することができる。
クライアント側では、クライアントによってシームレスに継ぎ合わされる個々のセグメントを求める要求が、HTTPを使用して行われ得る。HTTPストリーミングの利点は、標準化された既存のインフラストラクチャの使用を含む。
図16は、ファイルを配送できる、ブロック要求ストリーミングシステムの簡略図を示している。図16には、ブロックストリーミングシステム1600が図示されており、それは、ブロックサービングインフラストラクチャ(「BSI」)1601を備え、今度は、ブロックサービングインフラストラクチャ1601が、取込みシステム1603を備え、取込みシステム1603は、コンテンツ1602を取込み、そのコンテンツを準備し、そして、取込みシステム1603とHTTPストリーミングサーバ1604の両方からアクセス可能なコンテンツストア1610にコンテンツを記憶することによって、HTTPストリーミングサーバ1604によるサービスのためにそのコンテンツをパッケージ化するためのものである。示されるように、システム1600は、HTTPキャッシュ1606も含むことができる。動作面では、HTTPストリーミングクライアントなどクライアント1608は、HTTPストリーミングサーバ1604に要求1612を送信し、HTTPストリーミングサーバ1604またはHTTPキャッシュ1606から応答1614を受信する。どの場合も、図16に示される要素は、少なくとも部分的には、プロセッサまたは他の電子機器上で実行されるプログラムコードを備えるソフトウェアで実施することができる。
図17に示されるように、メディアブロックは、たとえば、HTTPサーバ、コンテンツ配送ネットワークデバイス、HTTPプロキシ、FTPプロキシもしくはサーバ、または他の何らかのメディアサーバもしくはシステムとすることができる、ブロックサービングインフラストラクチャ1601(1)内に記憶することができる。ブロックサービングインフラストラクチャ1601(1)は、たとえば、インターネットなどのインターネットプロトコル(「IP」)ネットワークとすることができる、ネットワーク1722に接続される。6つの機能構成要素を有する、ブロック要求ストリーミングシステムクライアントが示されており、その6つとは、上で説明されたメタデータを提供され、メタデータによって指示される複数の利用可能なブロックの中から要求されるブロックまたは部分ブロックを選択する機能を実行する、ブロック選択器1723、ブロック選択器1723から要求命令を受け取り、指定されたブロック、ブロックの部分、または複数のブロックを求める要求をネットワーク1722を介してブロックサービングインフラストラクチャ1601(1)に送信し、応答としてブロックを備えるデータを受信するために必要な動作を実行する、ブロック要求器1724、ならびにブロックバッファ1725、バッファモニタ1726、メディア復号器1727、およびメディア消費を円滑にする1つまたは複数のメディア変換機1728である。
ブロック要求器1724によって受信されたブロックデータは、メディアデータを記憶するブロックバッファ1725に、一時記憶のために渡される。代替として、受信されたブロックデータは、ブロックバッファ1725に直接的に記憶することができる。メディア復号器1727は、ブロックバッファ1725によってメディアデータを提供され、このデータに対して、メディア変換機1728に適切な入力を提供するのに必要となるような変換を実行し、メディア変換機1728は、ユーザまたは他の消費のために適した形式で、メディアを表現する。メディア変換機の例は、モバイルフォン、コンピュータシステム、またはテレビにおいて見出されるような視覚的表示デバイスを含み、スピーカまたはヘッドフォンなどのオーディオ表現デバイスも含むことができる。
バッファモニタ1726は、ブロックバッファ1725のコンテンツに関する情報を受け取り、この情報および場合によっては他の情報に基づいて、ブロック選択器1723に入力を提供し、ブロック選択器1723は、本明細書で説明されるように、要求するブロックの選択を決定するために使用される。
ブロック要求ストリーミングシステム(BRSS)は、1つまたは複数のコンテンツサーバ(たとえば、HTTPサーバ、FTPサーバなど)に要求を行う、1つまたは複数のクライアントを備える。取込みシステムは、1つまたは複数の取込みプロセッサを備え、取込みプロセッサは、コンテンツを(リアルタイムまたは非リアルタイムで)取込み、BRSSによる使用のためにコンテンツを処理し、それを、取込みプロセッサによって生成されたメタデータと場合によっては一緒に、コンテンツサーバがアクセス可能なストレージに記憶する。
BRSSは、コンテンツサーバと協調するコンテンツキャッシュも含むことができる。コンテンツサーバおよびコンテンツキャッシュは、URLを含み、URLによって示されるファイルまたはセグメントの全体よりも小さい部分を要求するために、オクテット範囲も含むことができる、HTTP要求の形式のファイルまたはセグメントを求める要求を受信する、従来のHTTPサーバおよびHTTPキャッシュとすることができる。クライアントは、HTTPサーバに要求を行い、それらの要求に対する応答を処理する、従来のHTTPクライアントを含むことができ、HTTPクライアントは、新規なクライアントシステムによって駆動され、新規なクライアントシステムは、要求を定式化し、それらをHTTPクライアントに渡し、HTTPクライアントから応答を取得し、それらを提示プレーヤに提供して、クライアントデバイスによってプレイアウトするために、それらを処理する(または記憶、変換などを行う)。一般に、(どのメディアが必要かは、ユーザ入力、ユーザ入力の変更などに依存し得るので)クライアントシステムは、どのメディアが必要かを事前に知らず、そのため、受信されると直ちに、または受信後まもなく、メディアが「消費」される点で、「ストリーミング」システムであると言われる。結果として、応答遅延および帯域幅制約は、消費中の提示内におけるユーザの場所にストリームが追い付くときに、提示中に中断を生じさせるなど、提示の遅延の原因となり得る。
良好な品質であると感知される提示を提供するために、BRSSでは、数々の細目を、クライアント側、取込み側、または両方で実施することができる。場合によっては、実施される細目は、ネットワークにおけるクライアントサーバインターフェースを考慮して、およびそれに対処するために行われる。いくつかの実施形態では、クライアントシステムと取込みシステムの両方が、機能強化について知っているが、他の実施形態では、一方の側しか、機能強化について知っていない。そのような場合、一方の側しか機能強化について知らなくても、システム全体が機能強化から利益を得るが、他の場合は、両方の側が機能強化について知っている場合のみ、利益が得られ、しかし、一方の側が知らない場合でも、それは依然として問題なく動作する。
図18に示されるように、取込みシステムは、様々な実施形態に従って、ハードウェア構成要素とソフトウェア構成要素の組合せとして実施することができる。取込みシステムは、本明細書で説明される方法のいずれか1つまたは複数をシステムに実行させるために実行することができる、1組の命令を備えることができる。システムは、コンピュータの形態を取る特定の機械として実現することができる。システムは、サーバコンピュータ、パーソナルコンピュータ(PC)、またはそのシステムによって取られるアクションを指定する(順次的または他の)1組の命令を実行することが可能な任意のシステムとすることができる。さらに、単一のシステムのみが示されているが、「システム」という用語は、本明細書で説明される方法のいずれか1つまたは複数を実行するために、個々にまたは共同して、1組(または複数組)の命令を実行する、システムの任意の集まりも含むと解釈される。
取込みシステムは、取込みプロセッサ1802(たとえば、中央処理装置(CPU))と、実行中にプログラムコードを記憶できるメモリ1804と、ディスクストレージ1806とを含むことができ、それらはすべて、バス1800を介して互いに通信する。システムは、ビデオディスプレイユニット1808(たとえば、液晶ディスプレイ(LCD)またはブラウン管(CRT))をさらに含むことができる。システムは、英数字入力デバイス1810(たとえば、キーボード)と、コンテンツソースを受け取り、コンテンツストアを配送するためのネットワークインターフェースデバイス1812も含むことができる。
ディスクストレージユニット1806は、本明細書で説明される方法または機能のいずれか1つまたは複数を具体化する1組または複数組の命令(たとえば、ソフトウェア)を記憶できる、機械可読媒体を含むことができる。命令は、システムによる命令の実行中は、メモリ1804内および/または取込みプロセッサ1802内にも、全体的または少なくとも部分的に存在することができ、メモリ1804および取込みプロセッサ1802も、機械可読媒体を構成する。
図19に示されるように、クライアントシステムは、様々な実施形態に従って、ハードウェア構成要素とソフトウェア構成要素の組合せとして実施することができる。クライアントシステムは、本明細書で説明される方法のいずれか1つまたは複数をシステムに実行させるために実行することができる、1組の命令を備えることができる。システムは、コンピュータの形態を取る特定の機械として実現することができる。システムは、サーバコンピュータ、パーソナルコンピュータ(PC)、またはそのシステムによって取られるアクションを指定する(順次的または他の)1組の命令を実行することが可能な任意のシステムとすることができる。さらに、単一のシステムのみが示されているが、「システム」という用語は、本明細書で説明される方法のいずれか1つまたは複数を実行するために、個々にまたは共同して、1組(または複数組)の命令を実行する、システムの任意の集まりも含むと解釈される。
クライアントシステムは、クライアントプロセッサ1902(たとえば、中央処理装置(CPU))と、実行中にプログラムコードを記憶できるメモリ1904と、ディスクストレージ1906とを含むことができ、それらはすべて、バス1900を介して互いに通信する。システムは、ビデオディスプレイユニット1908(たとえば、液晶ディスプレイ(LCD)またはブラウン管(CRT))をさらに含むことができる。システムは、英数字入力デバイス1910(たとえば、キーボード)と、要求を送信し、応答を受信するためのネットワークインターフェースデバイス1912も含むことができる。
ディスクストレージユニット1906は、本明細書で説明される方法または機能のいずれか1つまたは複数を具体化する1組または複数組の命令(たとえば、ソフトウェア)を記憶できる、機械可読媒体を含むことができる。命令は、システムによる命令の実行中は、メモリ1904内および/またはクライアントプロセッサ1902内にも、全体的または少なくとも部分的に存在することができ、メモリ1904およびクライアントプロセッサ1902も、機械可読媒体を構成する。
特定の一実施形態の例
[RaptorQ−RFC−6330]で仕様化されたRaptorQ FEC方式を使用する汎用オブジェクト配送のための完全に仕様化されたFEC方式の特定の実施形態が、このセクションにおいて説明される。簡略化および機能強化されたオブジェクト配送機能を提供するために、[RaptorQ−RFC−6330]のRaptorQ FEC方式と一緒に、UOSI FECペイロードIDを使用することができる。特に、基本的オブジェクト配送のための、より柔軟かつ簡単なサポートが提供され、不均一誤り保護(UEP)オブジェクト配送、バンドル化オブジェクト配送、およびUEPとバンドル化オブジェクト配送の組合せのための、サポートも提供される。通信デバイス間で「UOD RaptorQ FEC方式」をサポートするために、適切なハードウェアおよび/またはソフトウェアを使用できることを理解されたい。
FECペイロードID形式は、図2に示されるような4オクテットフィールドであり、この特定の実施では、32ビットの符号なし整数である汎用ファイルシンボル識別子(UFSI)は、やはり32ビットの符号なし整数である汎用オブジェクトシンボル識別子(UOSI)によって一般化される。UOSIは、そのペイロードIDを搬送するパケット内に含まれる符号化シンボルを識別するために、FEC OTIと併せて使用される、非負の整数である。
単一のオブジェクト、もしくは複数のオブジェクト、もしくは優先度が異なる部分に分割される単一のオブジェクト、またはこれらの任意の組合せの配送の場合、FEC OTIは、以下で説明されるようになる。配送される各オブジェクトについて、FEC OTIは、RaptorQ FEC方式によって仕様化されたものと同じとすることができることに留意されたい。配送は、d個のオブジェクトを備え、dは、何らかの正の整数である。各オブジェクトは、同じファイルの異なる部分、もしくは異なるファイル、またはそれらの組合せを備えることができる。送信におけるオブジェクトiの優先度を決定するために、オブジェクトiのサイズFiとオブジェクトiのために使用される符号化シンボルのサイズTiとの間の関係を使用することができる。
図20は、共通FEC OTIフィールドの一例を図示する。その例で使用される場合、配送されるオブジェクトの数についての8ビットの符号なし整数が存在し、示される例では、d=2である。デフォルト値は、d=1とすることができる。含まれる他のサブフィールドは、d個のオブジェクトの各々についての(すなわち、i=1、...、dについての)ものであり、オブジェクトiに固有の共通FEC OTI要素は、オブジェクトiのためのシンボルのサイズをオクテット単位で示す、216未満の正の整数である、シンボルサイズTiのための16ビットの符号なし整数、オブジェクトiの転送長をオクテット単位で示す、最大240の非負の整数である、オブジェクトiの転送長Fiのための40ビットの符号なし整数を含む。適切なパディングが提供される。
共通FEC OTIフィールドとは対照的に、図21に示されるような、方式固有のFEC OTI要素が存在し得る。その例に示されるように、方式固有のFEC OTI要素は、シンボルアライメントパラメータ(Al)(8ビットの符号なし整数)、各オブジェクトについての方式固有のFEC OTI要素を含み、各オブジェクトについての方式固有のFEC OTI要素は、オブジェクトiのためのソースブロックの数Zi(12ビットの符号なし整数)と、オブジェクトiのためのサブブロックの数Niとを備える。符号化された方式固有のオブジェクト送信情報は、(1+3×d)オクテットのフィールドである。図21の例では、d=2である。符号化FEC OTIは、その場合、符号化された共通FEC OTIと符号化された方式固有のFEC OTI要素との連結を備える、(2+10×d)オクテットのフィールドである。
符号化されたFEC OTIを使用するコンテンツ配送は、UOD RaptorQ FEC方式と、オブジェクト配送のためにUOD RaptorQ FEC方式を使用するコンテンツ配送プロトコル(「CDP」)とを使用する、デバイス、コンピュータ、システムのプログラムの間の情報交換を伴うことができる。CDPは、符号化器デバイスおよび復号器デバイスに、d、Al、オブジェクトごとのFi、Ti(Alの倍数)、Zi、およびNiを提供すべきである。符号化器には、iによってインデックス付けされた各オブジェクトが提供される。UOD RaptorQ符号化器方式を使用する符号化器デバイスは、送信される各パケットのためのCDP、パケットのUOSI、d個のオブジェクト(複数可)のための符号化シンボル(複数可)を供給する。
パラメータ選択の例
一例では、[RaptorQ−RFC−6330]のセクション4.3で説明されている例示的なパラメータ導出を使用し、d個のオブジェクトの各々に個別に適用することができる。一例では、Al=4オクテットであり、SS=8であり(これは、各サブシンボルが少なくともSS×Al=32オクテットであることを暗示する)、オブジェクトiのためのTiは、好ましくは、少なくともSS×Alオクテットであり、Tiは、Alの倍数であるが、各符号化パケットのペイロードサイズは、好ましくは、少なくともTのサイズであり、Tは、i=1、...、dにわたるTiの合計である。
ソースブロック構成について、[RaptorQ−RFC−6330]のセクション4.4.1内の手順を、d個のオブジェクトの各々に個別に適用することができる。
符号化パケット構成について、各符号化パケットは、UOSIと、d個のオブジェクト(複数可)のための符号化シンボル(複数可)とを含む。[RaptorQ−RFC−6330]のRaptorQ FEC方式によって使用されるFECペイロードIDの(SBN,ESI)形式と、UOD RaptorQ FEC方式によって使用されるUOSI形式との間の互換性について、特定の形式が存在することができる。たとえば、各オブジェクトについて、UOSI値Cからオブジェクトiのための対応する(SBN,ESI)値(A,B)へのマッピングが存在することができ、ここで、B=floor(C/Zi)、A=C−B×Ziである。同様に、各オブジェクトについて、オブジェクトiのための(SBN,ESI)値(A,B)から対応するUOSI値Cへのマッピングは、C=A+B×Ziである。
各オブジェクトi=1、...、dについて、0〜KTi−1のUOSI値は、ソースブロックインターリーブ順で、オブジェクトiのソースシンボルを識別し、ここで、KTi=ceil(Fi/Ti)である。KTiから先のUOSI値は、RaptorQ符号化器を使用して、オブジェクトiのソースシンボルから生成された、修復シンボルを識別する。
符号化パケットは、ソースシンボル、修復シンボル、またはソースシンボルと修復シンボルの組合せを含むことができる。パケットは、オブジェクトiの同じソースブロックから任意の数のシンボルを含むことができる。オブジェクトiのためのソースパケット内の最後のソースシンボルが、FEC符号化目的で追加されたパディングオクテットを含む場合、全体的なシンボルのみが各パケット内に含まれるように、これらのオクテットは、パケット内に含まれるべきである。
各符号化パケット内で搬送される汎用オブジェクトシンボル識別子Cは、そのパケット内で搬送される各オブジェクトについての最初の符号化シンボルのUOSIである。各オブジェクトについてのパケット内の後続の符号化シンボルは、順番にC+1〜C+G+1の番号が付けられたUOSIを有し、ここで、Gは、パケット内の各オブジェクトについての符号化シンボルの数である。他の実施形態では、各オブジェクトiについてのFEC OTI情報の一部として指定される、ベースUOSI Uiが存在することができ、その場合、オブジェクトiについてのパケット内の最初のシンボルのためのUOSIは、C+Uiである。
好ましい一実施では、各符号化パケット内のd個のオブジェクトの各々について1つの符号化シンボルが存在する。好ましい一実施では、符号化パケットは、次の手順に従って生成され、送信される。各UOSI値C=1、2、3、...について、符号化器は、符号化パケットのFECペイロードIDの値がUOSI値Cになるように設定された符号化パケットを、次のように生成および送信し、すなわち、各オブジェクトi、i=1、...、dについて、符号化器は、UOSI値Cに対応する(SBN,ESI)値(Ai,Bi)を決定し、RaptorQ FEC方式[RaptorQ−RFC−6330]の手順に従って、オブジェクトiから(SBN,ESI)値(Ai,Bi)に対応するサイズがTiの符号化シンボルEiを生成し、符号化パケットのペイロードに符号化シンボルEiを追加し、符号化パケットを送信する。受信機が符号化パケットの総数を知る必要はないことに留意されたい。
ユニキャストソースサーバおよびブロードキャスト修復サーバ
このセクションで説明されるほとんどの実施形態では、修復シンボルは、ブロードキャスト方法で送信され、ソースシンボルは、何組かのソースシンボルを求めるUE要求に応答して、ユニキャスト方法で送信される。少なくともいくつかのソースシンボルがブロードキャスト方法で送信される、いくつかはこのセクションで説明され、いくつかは本明細書の他の箇所で説明される、他の実施形態が存在し、少なくともいくつかの修復シンボルが、UE要求に応答して、ユニキャスト方法で送信される、実施形態も存在する。
例示的なブロードキャストファイル配送システムは、eMBMSファイル配送システムである。例示的なユニキャストファイル配送システムは、HTTPバイト範囲要求に対応可能なシステムである。しかし、ファイル全体しか要求できす、提供できないユニキャストシステムも、場合によっては使用することができるが、多くの利益が失われる。本明細書の先のセクションは、いくつかの例示的なシステムを示している。
このセクションの例では、修復データは、ブロードキャストセッションで送信され、ソースデータのみが、ユニキャスト修復セッションで送信される。ユニキャスト修復要求は、元のファイルの部分を求める標準的なHTTP1.1バイト範囲要求である。ブロードキャストセッションは、修復シンボルのみを有するので、2つのセッションの間で重複するデータは存在しない。いくつかの実施では、先に説明されたシステムとこのセクションのシステムの両方が共存すること、および/またはそれらを組み合わせることができることに留意されたい。
上で説明されたように、UE(たとえば、モバイルユーザデバイスなどのエンドユーザデバイス)は、UEがどのソースシンボルを失っているかを決定し、失っているソースシンボルのソースブロック番号、符号化シンボルidから、標準的なHTTP1.1バイト範囲要求への変換を行い、それらの要求を行うように構成することができる。
ブロードキャストセッションで修復シンボルを送信することによって、ユニキャスト修復サーバは、ファイルの元のコピーのみを必要とし、要求は、個々のシンボルを求める要求、または多くの小さなバイト範囲を求める要求ではなく、連続的な範囲のソースシンボルを求める、または連続的な大きい範囲の連続的なバイトを求める単純な要求である。UEは、いくつ受信し、いくつ必要かを単純にカウントすることに基づいて、あるいはたとえば、ソースブロックの復号を可能にするソースシンボルのプレフィックス数、またはソースサブブロックの復号を可能にするソースサブシンボルのプレフィックス数、またはサブブロックもしくはソースブロックの復号を可能にするプレフィックスバイト範囲サイズを決定するために、復号スケジュールを実行することに基づいて、いくつのシンボルを要求すべきかを決定することができる。この文脈および本明細書の他の文脈では、「プレフィックス」によって、「サブブロックに対応するファイルの部分のプレフィックス」、または「ソースブロックに対応するファイルの部分のプレフィックス」を指すことが意図されており、すなわち、「プレフィックス」によって、ファイル全体のプレフィックスではなく、代わりに、ファイルの関連部分のプレフィックスを指すことができ、関連部分は、「プレフィックス」が使用される文脈から推測することができることに留意されたい。
サブブロックが使用されない場合、ソースブロックの連続的なソースシンボルを求める要求は、連続的なバイトの系列を求める要求に変換することができる。サブブロックが使用される場合、サブブロックの連続的な多数のソースサブシンボルを求める要求は、ファイルの連続的なバイトの系列を求める要求に変換することができる。
本明細書で説明されるように、UEは、サブブロックの連続的な多数のソースサブシンボルを求める要求から、ファイルにおけるバイト範囲要求を導出することができる。
いくつかの実施では、異なるブロードキャストサーバは、おそらく異なる地理に基づいた、異なる数組の修復シンボルを有する。これは、ブロードキャスト送信中に1つの地理から別の地理にUEが移動する場合、同じデバイスにおいて重複受信が起こらないことを保証するために有益である。
UEは、ブロードキャストセッションでどの修復サブシンボル(サブブロックが使用されない場合はシンボル。この補足説明は以下同様に適用される)を受信したかにはほとんど無関係に、ブロードキャストセッションでいくつの修復シンボルを受信したかにのみ応じて、HTTP要求でソースブロック(またはサブブロックが使用されない場合はブロック)のバイト範囲プレフィックスを要求する。IETF RFC 5510において仕様化されているリード−ソロモン符号など、いくつかの符号の場合、要求されるバイト範囲プレフィックスは、ブロードキャストセッションでどの修復シンボルが受信されたかには完全に無関係とすることができる。IETF RFC 6330において仕様化されているRaptorQ符号など、他の符号の場合、バイト範囲プレフィックスのサイズは、ブロードキャストセッションでどの修復シンボルが受信されたかにわずかに依存し得る。たとえば、ソースサブブロック内にK個のソースサブシンボルが存在し、そのサブブロックのためにK−L個の修復ソースシンボルが受信される場合、最初のL個のソースサブシンボルに対応するバイト範囲プレフィックスの要求は、少なくとも99%の確率で復号を可能にし、L+1個のサブシンボルの要求は、少なくとも99.99%の確率で復号を可能にし、L+2個のサブシンボルの要求は、少なくとも99.9999%の確率で復号を可能にする。復号が可能かどうかは、復号のために使用されるサブシンボルのパターンに依存し、受信機デバイスは、要求を行う前に、受信されたサブシンボルの特定の系列が復号を可能にするかどうかを決定し、したがって、復号を保証するために、どの要求を行うべきかを決定する。したがって、修復のために要求されるプレフィックスのサイズは、ブロードキャストセッションで受信されたサブシンボルのパターンにわずかに依存し得る。
しかし、簡潔にするために、受信機デバイスは、単にL+2個のサブシンボルを求める要求を行うことができ、その場合、要求サイズは、潜在的に2つの冗長なサブシンボルを受信するオーバヘッドが生じる代償、すなわち、K個のソースサブシンボルを回復するために、ブロードキャストセッションからのK−L個のサブシンボルと、修復要求からのL+2個のサブシンボルの、合計でK+2個のサブシンボルを受信する代償、および非常に小さい確率ながら復号に失敗する可能性がある代償を払うことで、ブロードキャストセッションでどのサブシンボルが受信されたかには無関係である。要求のサイズおよびパターンを、どのデータが受信されたかには無関係にし、ブロードキャストセッションでどれだけのデータが受信されたかにのみ依存させる、いくつかの理由は、次のものを含む。
(a)UE要求を単純にすることができ、常に、ソースサブブロック(ブロック)の先頭から、ソースサブブロック(ブロック)当たり高々1つのバイト範囲要求を行うことができる(場合によっては、ブロードキャストセッションで十分な修復サブシンボル(シンボル)が受信された場合、追加のHTTP要求は必要とされない)。
(b)UEは、修復サーバからHTTPを介してダウンロードを行いながら、サブブロック(ブロック)のコンテンツのプレイアウトを開始することができ、次いで、十分なものをダウンロードしたら、UEは、サブブロックの残りの部分を回復するために、ブロードキャストを介してすでに受信された修復サブシンボルを使用することができる(残りのサブブロック(ブロック)のサイズは、基本的には、ブロードキャストセッションで受信されたサブブロック(ブロック)のための修復サブシンボル(シンボル)のサイズである)。
受信機は、ブロードキャストを介して修復データを受信するのと並行して、同時にコンテンツを再生しようと試み、ブロードキャストを介して受信されたものと組合された場合に、サブブロックの残りの部分を復号および回復するのに十分になるまで、HTTPを介して各サブブロックのために十分なものをダウンロードする場合さえもあり得る。この場合、ブロードキャストが継続しており、UEがブロードキャストを介して受信する、すべてのサブブロック(ブロック)のための修復サブシンボル(シンボル)は、次第に多くなっていくので、各サブブロック(ブロック)のために必要とされるHTTPダウンロードされる量は、次第に少なくなる。
(c)UEはソースサブブロックのプレフィックスを要求するので、ファイルの部分を求めるUE要求間の重複は、可能な限り高くなり、たとえば、ソースサブブロック(ブロック)のための修復サブシンボル(シンボル)を同量受信する2つのUEは、各々が受信する修復シンボルのパターンが独立で、完全に異なることができる場合であっても、そのソースサブブロック(ソースブロック)を求める正確に同じバイト範囲要求を行う。
異なるUEが、ブロードキャストセッションからサブブロックのための異なる数の修復サブシンボルを受信する場合、最も少量の修復サブシンボルを受信するUEが、一般に、ソースサブブロックを求める最大のプレフィックスバイト範囲要求を行い、他のUEからのすべての要求は、この要求のサブセットである。したがって、HTTPサーバが、1つのUEのために、サブブロック(ブロック)を求めるバイト範囲要求をすでにフェッチし、サービスしている場合、HTTPサーバは、この応答をキャッシュし、同じサブブロック(ブロック)を求める修復要求を行う次のUEのために、それを利用可能にすることができる。HTTPキャッシングサーバは、UEによって要求されるよりも大きいバイト範囲を、先を見越して上流サーバに要求することができ、したがって、現在の要求を超えるデータの部分を求めるさらなる要求が同じまたは異なるUEから行われた場合、要求のサイズを超えるデータが利用可能であるまで時間を短縮する。したがって、1つのUEが、ファイルの関連部分からのデータのプレフィックスを求める要求を行った場合、後続のUEが、ファイルの同じ関連部分からのデータのより大きいプレフィックスを求める要求を行うとき、HTTPキャッシングサーバは、キャッシュされたそれをすでに有していることがあり、データの対応するプレフィックスを用いて、その要求に直ちに応答できることがある。
HTTP修復サーバが、重複するバイト範囲を求める、たとえば、何らかの閾値を超える、複数の要求を受信した場合、サーバは、これらの受信機へのユニキャストチャネルに冗長に負荷をかけることを回避するために、要求をBMSCに転送して、このバイト範囲のデータのブロードキャストを要求することに決定するように構成することもできる。修復サーバは、BMSCによってブロードキャストされないソースデータを、各受信機にユニキャストしさえすればよい。BMSCは、バイト範囲要求を、要求された必要なソースシンボルに変換することができ、次いで、これらのソースシンボルをブロードキャストすること、またはより好ましくは、これらの多くの新しい修復シンボルをブロードキャストすることができる。これは、端末が、ユニキャストチャネルにあまり負荷をかけずに、ファイルを修復するために、十分な非冗長シンボルを受信することを可能にする。
場合によっては、UEが、ソースブロック(サブブロック)に関連するコンテンツを再生する、すなわち、要求を行うために「ストリーミングモード」を使用する準備を整えている場合、UEが、そのソースブロック(サブブロック)のためのソースシンボル(サブシンボル)を求めるユニキャスト要求のみを行うことが有利である。1つの理由は、実際に再生するコンテンツのための修復データのみをUEが要求し、何らかの理由で、コンテンツの一部を決して再生しない場合、UEがそのブロック(サブブロック)のためのデータを要求して、ユニキャストネットワークリソースを浪費することが決してないことである。
たとえば、UEは、コンテンツ(ファイル)の再生を中間から開始し、コンテンツの4分の1だけ再生することができる。この例では、再生が差し迫っているときにのみ要求を行うことで、再生前にコンテンツファイル全体を回復するためにユニキャスト修復要求が行われた場合に必要とされる量の約4分の1まで、ユニキャストネットワークリソースが減少する。もちろん、ソースブロック(サブブロック)のための十分なシンボル(サブシンボル)が受信された後は、UEがソースブロック(サブブロック)のための追加データをユニキャスト修復サーバに要求する必要はまったくない。
システム運営者は、これらの手法から利益を得ることができる。たとえば、ユニキャスト修復サーバの配備は、簡略化することができ、コストをはるかにわずかにすることができる。専門の修復サーバを購入し、配備し、運用する必要もなくなり、代わりに、配備および管理がはるかに安価かつ容易なHTTPウェブサーバに依存する。別の例として、運営者は、インターネットコンテンツファイルが透過的に獲得され、それらのためのFEC修復データがUEにブロードキャストされる、サービスを展開することができ、その場合、UEは、それらのブロードキャストされた受信されたFEC修復データを使用し、ブロードキャストを介して受信されたFEC修復データと組み合わせて、UEが再生しようとするファイルの部分を回復することを可能にするには、どのようなHTTP1.1バイト範囲要求を行うべきかを決定し、(運営者が必ずしも運用しているとは限らず、運営者が必ずしもコンテンツの出所とは限らない)既存のCDNにすでにキャッシュされていることがあるインターネット利用可能なコンテンツファイルの部分を求める適切なHTTP1.1バイト範囲要求を、インターネットを介して行うための方法を含む。
そうすることによって、運営者は、(ファイルははるかに高い信頼性で、はるかに迅速に利用可能であるので)より良好なユーザエクスペリエンスを提供する価値あるサービスを提供することができ、同時に、(ブロードキャストデータは、すべてのUEに有益であり、多くの個別のユニキャスト接続を介して各個別UEにデータを送信するよりもわずかなネットワークリソースしか送信に費やさないので)ファイルを配送するのに必要とされる、ネットワーク上の全体的なネットワークトラフィックの量を低減させ、同時に、コンテンツは他者によって提供される標準的なHTTPウェブサーバにおいてすでに利用可能であり、これがユニキャスト修復をサポートするために使用されるものであるので、運営者は、サービスをサポートするためにユニキャスト修復サーバを配備するコストを回避することができる。
システム運営者は、既存のHTTPウェブサーバを目的付けし直し、HTTPウェブサーバを介して他のコンテンツプロバイダからUEに配送されるファイルのための修復シンボルを傍受し、ブロードキャストするなどの、新しいサービス機会を生み出すこともできる。
加えて、この手法は、運営者のネットワークの帯域幅容量を節約することができる。コストは、ネットワークを介して送信されるブロードキャストデータの量であり、一方、利益は、そのUEによって受信されたブロードキャストデータの量のコンテンツを再生する、すべてのUEにわたる総和である。これは、コンテンツのより迅速で、より信頼性の高い配送ばかりでなく、運営者ネットワークにおけるより良好なユーザエクスペリエンスを提供することもできる。
セッション記述、およびMBMSダウンロード配送プロトコル、FLUTEは、各ファイルのソースブロックおよび符号化シンボル構造を決定するための十分な情報を、クライアント(すなわち、UE)に提供する。これから、クライアントは、ファイルを回復するために、どのソースシンボルを要求し、使用できるかを決定することができる。したがって、MBMSクライアントは、(ファイルの)ソースブロックの再構成を完了するのに必要とされるソースシンボルの数を識別することができる。
3GPP TS 26.346において仕様化されているMBMS FEC方式が使用される場合、MBMSクライアントは、必要とされるさらなるソースシンボルを決定するときに、すでに受信された修復シンボルを考慮することができる。この場合、クライアントは、(ファイルの)各ソースブロックについて、数rを識別し、MBMS FEC復号器がファイルを回復することを可能にする、ソースブロックの最初のr個のソースシンボルを求める要求を行うべきである。
失われたファイルデータが識別されると、MBMSクライアントは、失われたファイルデータの回復を可能にするデータの送信を要求する1つまたは複数のメッセージを、ファイル修復サーバに送信する。特定のMBMS送信についてのすべてのファイル修復要求および修復応答は、HTTPプロトコルを使用して、単一のTCPセッションにおいて行うことができる。代替として、バイト範囲要求は、異なる潜在的に重複するHTTP/TCP接続、またはFTP接続、またはRTP接続などを介する複数の要求に分割することができる。修復要求に対する応答は、ネットワーク利用可能性、ならびに受信デバイスがどれだけビジーであるか、および受信デバイスの能力に応じて、非常に遅いまたは高いビットレートで配送することができる。修復要求は、選択された「serviceURI」から解決される、ファイル修復サーバIPアドレスに転送することができる。特定のMBMSクライアントの、サーバとのTCP接続のオープン、および最初の修復要求は、すべてのUEが同時にユニキャスト要求を行わないように、時間窓にわたってランダム化することができる。
MBMS UEが、修復要求で要求されるシンボルを識別した場合、応答は、そのように識別された対応するシンボルであり、要求内で識別された関連ソースブロックからのすべてのシンボルを含むべきである。MBMS UEは、サブブロックが使用される場合は、代わりに、ソースサブブロックのサブシンボルを求める要求を行うことができる。代替として、本明細書で説明されるように、シンボルまたはサブシンボルを要求するために、バイト範囲要求を行うことができる。
MBMS UEは、これを他の方法と組み合わせることができる。たとえば、MBMS UEは、Luby VIで説明されているように、ブロードキャストセッションでデータを受信し、インターリーブ解除または復号を行って元のソースファイルに戻さずに、それを長期ストレージ内に記憶することができる。MBMS UEは、元のソースファイルの部分のインターリーブ解除および復号を、たとえば、ソースファイルがビデオファイルである場合は、ソースファイルのそれらの部分を再生するためにエンドユーザが行う要求に応答して、トリガすることができる。MBMS UEが、再生のために要求されている元のソースファイルの部分を回復するのに十分なデータを、ブロードキャストセッションから受信していない場合、MBMS UEは、エンドユーザが再生を要求しているソースファイルの関連部分を求める本明細書で説明されるような修復要求を行うことができる。したがって、MBMS UEは、あるサブブロックまたはソースブロックのための追加データを受信するための要求だけを、それらを回復するのに十分なデータがブロードキャストセッションで受信されていない場合に限って、行うことができ、要求は、それらのサブブロックまたはソースブロックと交わるソースファイルの部分の再生をエンドユーザが望むときに、または望むときの近くでもっぱら行われる。この実施形態は、エンドユーザがソースファイルの部分の再生を要求するときに、それらの部分のための修復データのみが要求され、したがって、ファイルの部分が再生されない場合は、それらの部分のための修復要求は行われないので、ネットワークリソースを最低限に抑える。さらに、この実施形態は、サブブロックまたはソースブロックを回復するために、長期ストレージからデータを読み込み、インターリーブ解除および復号を行うのに必要とされるデバイスリソースを、これらの動作は、エンドユーザがソースファイルのこれらの部分の再生を要求した場合に限って実行されるので、最低限に抑える。
代替として、MBMS UEは、修復要求を行うための適切なネットワーク接続およびアイドル容量を有するときに、回復に十分なデータがブロードキャストセッションから受信されていないサブブロックまたはソースブロックのための修復要求を行い、次いで、これらのサブブロックまたはソースブロックのためのブロードキャストセッションから受信されたデータに加えて、応答データを、サブブロックまたはソースブロックを後で回復するために、長期ストレージ内に記憶することができる。ユーザが、元のファイルの部分の再生を要求する場合、MBMS UEは、ユーザによって要求されるファイルの部分と交わる、ブロードキャストセッションから受信されたインターリーブおよび符号化されたデータと、サブブロックまたはソースブロックのための修復要求から受信されたインターリーブおよび符号化されたデータの組合せを、長期ストレージから読み出し、それらのサブブロックまたはソースブロックを回復し、再生のためにそれらを直接的にビデオプレーヤに提供することができる。この代替は、MBMS UEが、修復要求を行い、応答を受信するのに適したネットワークに接続されているときに、修復データを要求することができ、ユーザが再生を要求したときには、MBMS UEが適切なネットワークに接続されていなくてもよいという利点を有する。さらに、再生のために必要とされるすべてのデータが、ユーザ要求時には、ネットワークを介する配送を必要とする代わりに、デバイス上にローカルに記憶されているので、再生を求めるユーザ要求に対する再生応答時間をより短くすることができる。
別の代替として、MBMS UEは、回復のために追加データが必要とされるサブブロックまたはソースブロックのすべてのための修復データを要求し、ファイルのすべてを回復し、それを、後で再生および使用するために長期ストレージ内に記憶することができる。MBMS UEは、任意の時点に任意の順序で、これらの動作を実行することができ、すなわち、場合によっては、たとえば、ファイルのサブブロックもしくはソースブロックを完全に回復するのに十分なデータがブロードキャストセッションを介して送信されないことがわかっている場合、またはたとえば、ブロードキャストセッションが終了する前に(潜在的にはブロードキャストセッションが開始する前に)エンドユーザがコンテンツ再生の開始を望む場合、ブロードキャストセッションからデータを受信する前に、修復データを要求することができる。
いくつかの実施形態では、FECを実行しない(したがって、すべてのソースシンボルを望み、修復シンボルを望まない)UEが存在する。そのような場合、UEは、「ノーコードFEC(No−code FEC)」を使用し、ブロードキャストセッションおよびいずれかの修復要求応答でソースシンボルを受信するが、これは、多くの異なるUEが異なるロスパターンを経験し、そのため、異なるソースシンボル修復要求を行うほど、スケーラブルではないことがある。
いくつかの実施形態では、修復ブロードキャストセッションは、UEにおいて、Luby VIで説明されているような、ブロードキャストデータの部分的な並べ替えを使用する。その場合、上で説明されたようなHTTPを使用するユニキャスト修復サービスの組合せを、Luby VIで説明されている方法と組み合わせることができる。ブロードキャスト送信で受信されたシンボル/サブシンボルは、Luby VIで説明されているように、フラッシュまたは他のメモリに記憶することができる。場合によっては、ブロードキャストセッションで、修復シンボルのみを送信するのが好ましいが、他の場合は、ブロードキャストセッションで、すべてではないとしても、少なくともいくつかのソースシンボルを送信するのが好ましい。シンボルまたはサブシンボルが、修復サービスにおいて、バイト範囲要求または他のMBMS方法を用い、HTTPを介して要求される場合、2つの異なる可能性が生じる(両方を同時に使用することができる)。
(1)Luby VIで説明されている方法は、ブロードキャストセッションから受信されたシンボルまたはサブシンボルをフラッシュメモリに書き込むために使用することができ、ソースブロックまたはサブブロックが回復される場合、Luby VIで説明されている方法は、ブロードキャストセッションからのフラッシュメモリ内に記憶されたソースブロックまたはサブブロックのためのシンボルまたはサブシンボルをRAMに読み込むために使用することができる。これらは、次いで、HTTPを介して受信され、RAMに直接的に記憶された、シンボルまたはサブシンボルと組み合わせることができ、ソースブロックまたはサブブロックは、これらのシンボルまたはサブシンボルの組合せを使用して、RAM内で復号され、次いで、回復されたソースブロックまたはサブブロックは、再生のために直接的に提供することができる。
(2)Luby VIで説明されているいくつかの方法は、ブロードキャストセッションを介して受信されたシンボルまたはサブシンボルと同様に、HTTPを介して受信されたシンボルまたはサブシンボルをフラッシュメモリに書き込むために使用することができ、次いで、任意の時点で、ソースブロックまたはサブブロックは、HTTP要求と、ブロードキャストセッションからのフラッシュメモリ内に記憶されたソースブロックまたはサブブロックのためのシンボルまたはサブシンボルとに基づいて、フラッシュメモリ内に記憶されたソースブロックまたはサブブロックのためのシンボルまたはサブシンボルの組合せをフラッシュメモリからRAMに読み込むことによって、オンザフライ(on the fly)で回復することができる。
上述の実施形態では、好ましくは、ブロードキャストセッションを介して受信されたシンボルまたはサブシンボルと、修復セッションにおいて受信されたシンボルまたはサブシンボルとは、シンボルまたはサブシンボルからなる大きく異なる組である。
図22は、基本的FLUTEファイル配送を図示する。FECペイロードIDは、代わりに、本明細書で説明されるUOSIまたはUOFIを備えることができることに留意されたい。
図23は、基本的FLUTEパケット形式のいくつかの部分を図示する。
図24は、サブブロックを使用する送信機において行われるサブブロック符号化を図示する。図24に示されるように、ファイルは、1つまたは複数(この例では1つ)のソースブロックとして組織し、サブブロックに分割することができ、サブブロックは、サブシンボルからシンボルを形成するように配置される。
図25は、サブブロックを使用する受信機において行われるサブブロック復号を図示する。場合によっては、受信機における記憶の前に、部分的な並べ替えが存在する。これは、たとえば、記憶要素において読み込みと書き込みとの間に非対称性が存在する場合に、有益なことがある。
図26は、サブブロックを使用するファイル配送を図示する。典型的な場合、受信機は、各サブブロック内で同じロスパターンを見る。転送の観点からは、ファイルは、1つのソースブロックとすることができ、各パケットは、1つのシンボルを含むことができる。復号の観点からは、復号動作のスケジュールは、すべてのサブブロックについて同じとすることができ、各サブブロックについて、サブシンボルのロスパターンまたは受信パターンは同じであり、受信機は、すべてのサブブロックのためのスケジュールを一度に計算する。復号動作のスケジュールが、次いで、各サブブロックに別々に適用され、サブシンボルに作用し、同じスケジュールをすべてのサブブロックに適用する。復号器のCPUは、大きなソースブロックの操作でさえも少量のスクラッチRAMメモリのみを使用して良好に実行することができ、メディアのサブブロックのアクセスおよび復号をそれらが再生されるときに可能にする。
図27は、複数のソースブロックの処理の一例を図示する。場合によっては、良好なネットワーク効率のために、シンボルは、各ラウンドで各ソースブロックから1つのシンボルが送信される、ラウンドロビン方法で送信される。他の場合、より容易なクライアント回復またはエンドツーエンド待ち時間の理由で、シンボルは、順次的方法で送信され、すなわち、各ソースブロックごとに、すべてのシンボルが、他のソースブロックからのシンボルを間に点在させることなく、連続的なシーケンスで送信される。すべての場合で、サブブロックを使用することができる。
図28は、FECおよびFLUTEを使用するワークフローを図示する。ステップ1において、FLUTEセッションで搬送されるファイルが定義される。ステップ2において、ファイルはブロックに分割することができる。分割が必要かどうかは、FEC方式が処理できる最大サイズによって決定される。
ステップ3において、FECがブロックに適用され、各ブロックは、K個の等しいサイズのシステマティックシンボルに分割され、R1+R2個の修復FECシンボルが生成される。ステップ4において、K+R1個のシンボルが、ブロードキャスト送信上でFLUTEを介して、または代替として、UDPを使用するユニキャストを介して、もしくはHTTPを使用するユニキャストを介して送信される。各IP/UDP/LCTパケットが、シンボルサイズに応じて、1つまたは複数のシンボルを搬送する。ステップ5において、受信機は、FEC復号のためにK+δ個のシンボルが利用可能になるように、十分なパケットを収集する。いくつかの実施形態では、RaptorQを使用し、δ=2である。しかし、たとえば、δ=0またはδ=0.01×Kなど、他の値も可能である。ステップ3において生成される追加のR2個のシンボルは、ステップ4における送信からK+δ個のシンボルを受信しない受信機にHTTPベースの修復サービスを提供するために、HTTPサーバに提供することができる。
図29は、上で説明されたブロードキャスト/修復、ユニキャスト/ソース構成を図示する。多数の修復シンボルを生成することができる。UEは、FEC復号に成功するために、それらのシンボルのうちのK+δ個を必要とする。示される実施形態では、各ブロードキャストBM−SCは、ファイルのN個の異なるRaptor修復シンボルを送信し、各BM−SCは、修復シンボルのみを、すなわち、範囲{K,K+1,...}内のESIを有するシンボルのみを送信する。
上述の実施形態の1つの利点は、UEが異なるBM−SCのカバレージエリア間でローミングする場合、UEが、シンボルの重複受信を心配することなく、異なるBM−SCからのシンボルを使用でき、より効率的なFEC復号を可能にすることである。UEは、ソースシンボルのための単純な修復要求を行うことができるが(しかし、これは専門の修復要求サーバを必要とすることがある)、本明細書の別の箇所でより詳細に説明されたように、元のソースファイルのみを有する従来のHTTPウェブサーバを使用する、HTTPバイト範囲要求も行うことができる。これは、よりコスト効率の良い、集中的なインターネット/MBMSソリューションを可能にする。
図30は、MBMSベアラ上でシステムがどのように修復シンボルのみをブロードキャストするか、またUEがどのように連続する1組のソースシンボルのみを要求するかを図示する。UEは、ソースブロックの復号に成功するために、一般にK+δ個のシンボルを必要とするが、MBMSベアラ上で受信される修復シンボルは、K+δ−R個だけである。ソースブロックを回復するために、UEは、ソースブロックの最初のR個(またはR>Kの場合はK個)のソースシンボルを要求する。UEは、他の何らかのR個のソースシンボルを要求することができるが、すべてのUEが重複する数組のソースシンボルを要求する場合、下流のキャッシュが、要求されたソースシンボルをローカルキャッシュからほとんどの受信機に配送できる可能性がより高くなる。
これは、修復サーバにおける単純で効率的なキャッシングを可能にする。修復シンボルのみがブロードキャストチャネルを介して送信されるので、ソースブロックのソースシンボルはすべて、UEにおいてすでに受信されたシンボルとは異なる。したがって、修復サーバは、ソースブロックのソースシンボルを記憶しさえすればよく、新しい修復シンボルを記憶する、または生成する必要はない。これは、FEC方式を実施する、または新しい修復シンボルを記憶する必要がない、より単純な修復サーバを可能にする。
受信されたシンボルのシンプルなUE処理が可能である。UEは、受信した修復シンボルの数を数えているだけでよく、次いで、必要とするソースシンボルの数を計算する(RがK以下の場合はR、RがKよりも大きい場合はK)。UEは、どの特定のソースシンボルが失われたかを追跡し、次いで、失われたソースシンボルのみを求める要求を生成する必要はない。
加えて、UEは、初期ESI+(Rの値)を使用して、連続する1組のソースシンボルを修復サーバに要求することができる。これは、要求を非常に単純かつ短く保つ。分離した数組のソースシンボルをサーバが取り出し、追加する必要がないので、これは、応答のサーバ構成も簡略化することができる。サーバは連続的なソースシンボル要求を処理しさえすればよいので、これは、「ノーコード」FEC方式を使用しない配備において特に有利であり得る。
図31は、サブブロックが使用される場合の、HTTPバイト範囲要求を介するユニキャスト修復の使用を図示する。
HTTPバイト範囲修復要求を用いて、UEは、同じソースブロックの各サブブロックごとに同じ数のバイトを要求することができる。各サブブロックのバイト範囲を求める1つの要求は、ブロードキャストセッションでソースシンボルが送信されないほとんどの環境において使用することができる。
HTTP要求は、「必要に応じて」行うことができる。UEは、そのサブブロック内のコンテンツを再生する時間になったときに、各サブブロックを求める要求を行うことができる。UEは、サブブロックを復号および回復するのに、ブロードキャストセッションなどの他の転送を介して受信されたサブシンボルと組み合わせて、十分なサブシンボルが得られるまで、HTTPを介してサブブロックを求める要求を行い、サブブロックのコンテンツを再生することができる。十分なサブシンボルが受信され、復号されると、UEは、ローカルで回復されたサブブロックからシームレスに再生を継続することができる。UEは、再生されないサブブロックを求めるHTTP要求を行う必要はない。
バイト範囲計算の例
受信機は、どのバイト範囲を要求すべきかを決定するために、このセクションで説明される計算を実行することができる。計算は、FEC構造に依存することができる。受信機は、次いで、バイト範囲要求に基づいて、受信機が必要とするシンボルを獲得するために、サーバに要求を送信することができる。
好ましい一実施形態では、受信機は、どのシンボルを受信機が受信していないかを認識するために、FECオブジェクト送信情報(「FEC OTI」)を使用する。FEC OTIは、ファイルのソースブロック、サブブロック、シンボル、およびサブシンボル構造を決定し、オブジェクト転送サイズF、アライメントファクタAl、シンボルサイズT、ソースブロックの数Z、およびソースブロック当たりのサブブロックの数Nを備える。受信機は、正確にいくつの、どのシンボルを受信機が必要としているかを決定するために、この情報のすべてをFEC符号自体の特性と一緒に使用し、各シンボルまたはサブシンボルは、SBN、ESI、およびSuBN(それぞれ、ソースブロック番号、符号化シンボル識別子、サブブロック番号)によって識別される。この実施形態では、ソースシンボルまたはソースサブシンボルが要求される。受信機は、次に説明されるように、これらのシンボルまたはサブシンボルに対応するファイル内のバイト範囲を計算するために、FEC OTI情報を使用する。
サブブロックが使用されない場合(すなわち、N=1である場合)、与えられたSBNおよびESIに対して、受信機は、(SBN,ESI)ペアによって識別される対応するソースシンボルの、ファイル内の開始バイト番号および終了バイト番号を計算することができる。
計算プロセスが今から説明される。これは、受信機内のプログラム、または受信機内のロジックによって行うことができる。KT=ceil(F/T)をファイル内のソースシンボルの数とする(最も近い整数に切り上げられ、その場合、最後のソースシンボルは、完全なソースシンボルになるまでゼロでパディングされたものと考えることができる)。
KL=ceil(KT/Z)、KS=floor(KT/Z)、ZL=KT−KS×Z、ZS=Z−ZLとし、ここで、KLは、最初のZL個のソースブロック内のソースシンボルの数であり、KSは、残りのZS個のソースブロック内のソースシンボルの数である。
各i=0、...、Z−1について、Kiをソースブロックi内のソースシンボルの数とし、すなわち、i=0、...、ZL−1については、Ki=KLであり、i=ZL、...、Z−1については、Ki=KSである。
次いで、SBNおよびESIによって識別されるシンボルに関連する開始バイトを、式2として計算することができる。このサブシンボルの終了バイト位置は、開始バイト位置にT−1を加算することによって計算することができる。
サブブロックが使用される場合(すなわち、N>1である場合)、与えられたSBN、SuBN、およびESIに対して、受信機は、3つ組(SBN,SuBN,ESI)によって識別される対応するソースサブシンボルの、ファイル内の開始バイト番号および終了バイト番号を計算することができる。KT、KL、KS、ZL、ZS、およびi=0、...、Z−1についてのKiについての計算は、サブブロックが使用されない場合(N=1)の計算と同じとすることができる。
サブブロックバイト位置を識別するための追加計算は、以下のように実行することができる。
TL=ceil(T/(N×Al)、TS=floor(T/(N×Al))、NL=T/Al−TS×N、NS=N−NLとし、ここで、TL×Alは、最初のNL個のサブブロック内のサブシンボルのサイズであり、TS×Alは、残りのNS個のサブブロック内のサブシンボルのサイズである。
各j=0、...、N−1について、Tjをサブブロックjのサブシンボルのサイズとし、すなわち、j=0、...、NL−1については、Tj=TL×Alであり、j=NL、...、N−1については、Tj=TS×Alである。
次いで、SBN、ESIおよび、SuBNによって識別されるシンボルに関連する開始バイトを、式3として計算することができる。このサブシンボルの終了バイト位置は、開始バイト位置にT
SuBN−1を加算することによって計算することができる。
要求されたシンボルまたはサブシンボルの開始バイト位置および終了バイト位置についてのこれらの計算に基づいて、受信機は、サーバに送信する必要があるバイト範囲要求を決定することができる。連続的に失われたシンボルまたはサブシンボルが存在する場合、受信機は、最初の失われたシンボルまたはサブシンボルの開始バイト位置からバイト範囲要求を開始し、最後の失われたシンボルまたはサブシンボルの終了バイト位置で範囲を終了することができる。
サブブロックが使用される場合に、上述の計算がどのように行われるかを説明するために、受信機が、ブロードキャストダウンロードセッションを有し、オブジェクトサイズF=20000000バイト、アライメントファクタAl=4バイト、シンボルサイズT=1320バイト、ソースブロックの数Z=2、およびソースブロック当たりのサブブロックの数N=12であるFEC OTIを用いて配送される、URIがwww.<mobile−operator>.com/news/weather.3gpの3gpファイルを獲得しようと試みていると仮定する。この例では、ファイル内のソースシンボルの総数は、KT=15152であり、第1のソースブロックは、SBN=0であり、第2のソースブロックは、SBN=1であり、各々が、7576個のソースシンボルを有する。この場合、各ソースブロックは、各々、さらに12個のサブブロックに分割され、その各々は、7576個のサブシンボルを有し、最初の6個のサブブロックは、サイズが112バイトのサブシンボルを有し、残りの6個のサブブロックは、サイズが108バイトのサブシンボルを有する。ブロードキャストダウンロードセッションの後、受信機が、SBN=0である第1のソースブロックからのESIが12〜29の連続する18個のソースシンボルと、SBN=1である第2のソースブロックからのESIが12〜29の連続する18個のソースシンボルとを受信しておらず、これらのソースブロックを復号するために、これらのソースブロックの各々から、少なくともこれだけの数のさらなるシンボルが必要であることを認識したと仮定する。
SBN=0である第1のソースブロックの場合、ESI=12のソースシンボル(18個の失われたソースシンボルのうちの最初のもの)を構成する12個のサブシンボルの開始バイト位置は、図32に示されるように計算することができる。図32は、ESI=29のソースシンボル(18個の失われたソースシンボルのうちの最後のもの)を構成する12個のサブシンボルの終了バイト位置をどのように計算できるかも示している。
同様に、図33は、SBN=1である第2のソースブロックの場合、ESI=12のシンボルを構成する12個のサブシンボルの開始バイト位置をどのように計算できるかを示している。図33は、ESI=29のソースシンボルを構成する12個のサブシンボルの終了バイト位置をどのように計算すべきかも示している。
選択された修復サーバURIがhttp://mbmsrepair2.<mobile−operator>.comである場合、HTTP GET要求は、次のようになり得る。
ヘッダ:統計収集
いくつかの実施形態では、コンテンツを求めて行われる様々な要求に統計が関連するので、統計が収集される。これらの統計は、たとえば、コンテンツのブロードキャストからいくつのファイルが完全には調達されていないかをシステム運営者が見分け得るために有益なことがある。これは、ユニキャスト方法で修復データを提供する修復サーバのためのHTTPログを単に見ることによって行うことができる。しかし、修復サーバが、(ブロードキャストシンボルの受信を試みず、または修復サーバをコンテンツのための1次HTTPソースと単に見ているデバイスからの要求などに対する)コンテンツのための直接的なソースとしての役割も果たしている場合、統計は、要求を過大にカウントする。システム運営者は、デバイス自体に、ブロードキャスト/ユニキャスト統計を報告させること(およびユニキャスト限定の要求を報告させないこと)ができるが、これはデバイスに依存し、それは煩雑であり得る。1つのソリューションでは、HTTP修復サーバは、統計を収集し、ブロードキャスト紛失が原因で修復データを求める要求と、コンテンツを求める直接的なユニキャスト要求である要求とを区別することができる。
1つの特定の手法では、修復サーバは、要求のタイプ(修復要求か、直接要求か)、およびどの端末が要求を行っているかを決定する。第1の部分は、ブロードキャストチャネルを介して受信されたファイルを修復するためのものである、それが受信しているHTTP要求と、端末がユニキャストを介して受信したファイルを単に要求または修復する、端末からの要求とを区別する。端末識別は、サーバが、同じ端末からの要求を対応付け、各端末に詳細な受信統計を提供することも可能にする。これは、2重カウントを減らすために、および修復パターンをよりよく対応付けるためにも有益なことがある。
タイプおよび端末を決定するためのサーバのこの能力を実施するために、これを行ういくつかの方法が存在する。
サーバURLまたはファイルのURLは、直接的なユニキャストタイプの要求から区別するために、修復タイプ要求に固有とすることができる。たとえば、これらのURLは、ブロードキャストサービスの関連配送手順、またはブロードキャストされるファイルのファイル配送テーブルでのみ提供することができる。これらのURLは、ブロードキャストされなかったファイルを直接的にダウンロードするために、端末に提供されることはない。サーバは、特定のURLへの要求がブロードキャストされたファイルを修復するためのものであると決定し、これらの要求に基づいて修復統計を収集することができる。同じ端末からの要求を識別するために、サーバは、HTTP GET要求のソースIPアドレスを使用することができる。
サーバは、どの端末が要求を行っているかを識別するために、端末のIPアドレスを使用することができる。どのIPアドレスがブロードキャスト端末に属するかをHTTPサーバが知っている場合、サーバは、要求がブロードキャスト端末から来ているかどうかを判定するために、IPアドレスを使用することもできる。ブロードキャストを介して受信しなかったファイルのためのデータを要求することを端末が許可されている場合、この手法は、ブロードキャスト統計を収集するためには、それほど信頼性が高くないことに留意されたい。そのため、これらのサーバに直接的にファイルを要求するブロードキャスト端末に、いくつかの制約が課されることがあり得る。
別の手法では、HTTPサーバにデータを要求するために端末によって使用されるHTTP GET要求に拡張を付加することができる。拡張は、要求がブロードキャストされたファイルを修復するためのものであることを識別する。拡張は、モバイルディレクトリ番号、または国際移動体加入者識別番号(IMSI)などの、端末の一意的IDを識別することもできる。拡張ヘッダの別の例は、3GPP TS 24.109において定義されるような、「X−3GPP向け識別情報拡張ヘッダ(X−3GPP−Intended−Identity extension−header)」を使用することである。プライバシまたはセキュリティ目的で、運営者がこれらを暗号化せずに送信することを望まない場合、これらのIDにハッシュまたは暗号を適用することができる。
上述の手法のすべては、修復サーバのカスタマイズを必要とし、したがって、標準的なHTTPサーバの使用を困難にすることがあり得る。上述の手順のサーバサポートは、任意選択の機能とすることができる。そのように、UE(すなわち、端末)からの受信報告に依存することをいとわないシステム運営者は、依然として標準的なHTTPサーバを使用することができる。
ソースシンボルおよび修復シンボルの一般化された割り当て
上で説明された例では、コンテンツ配送システムは、UEなどのクライアントと、MBMSブロードキャストサーバおよび/またはHTTPサーバなどのサーバ、好ましくは、URLファイル要求に加えて、バイト範囲要求もサポートするサーバとを備えることができる。その手法では、修復シンボルのみがブロードキャストされ、ソースシンボルのみがHTTPサーバへの要求を介して入手可能であることができる。しかし、より一般化された場合では、修復シンボルおよび/またはソースシンボルをブロードキャストすることができ、修復シンボルおよび/またはソースシンボルをHTTPサーバから入手可能とすることができる。
一例では、HTTPサーバから入手可能なものの種類は、UOSI値(代替としてUOFI値と呼ばれる)の範囲として表現され、および/または伝達される。UOSI値の範囲が、元のファイルに対応するUOSI値と同じである場合、すなわち、Fをオクテット単位のファイルサイズ、Tをオクテット単位のシンボルサイズとし、UOSI値が0〜ceil(F/T)−1である場合、HTTP修復サーバから入手可能であるのは、元の形式の、すなわち、オリジナル順HTTPファイル形式の元のファイルである。UOSI値の範囲が、修復シンボルのUOSI値、または修復シンボルとソースシンボルのUOSI値にわたる場合、それらのシンボルは、「拡張オリジナル順HTTPファイル形式」と呼ばれる、以下本明細書でさらに説明される、オリジナル順HTTPファイル形式の自然な拡張である形式で、同じく入手可能である。これは、1つのタイプの要求が、様々なタイプのシンボルを処理し、それをシームレスに行うことを可能にする。たとえば、HTTPサーバは、UOSI範囲の伝達または他の何らかの伝達だけによって、修復シンボルのみを有する修復ファイル、または修復シンボルとソースシンボルを有する修復ファイル(混合形式)と同じに、ソースシンボルのみを有する修復ファイルを扱うことができる。この方式は、サブブロックが使用される場合であっても、またブロックサイズがファイルの異なるソースブロックの間で可変である場合であっても機能することに留意されたい。
UOSI順のシンボルでは、ソースシンボルのみを含む修復ファイルは、0〜KT−1のUOSI範囲を有し、ここで、KTは、元のファイル内のソースシンボルの総数である。これは、伝達され得る範囲である。たとえば、ファイルが20000000バイトであり、シンボルサイズが1000バイトである場合、KT=20000であり、したがって、[0,19999]のUOSI範囲の伝達は、(元のファイルのソースブロックの数とは無関係に)修復ファイルが元のソースファイルであり、すなわち、この場合の拡張オリジナル順HTTPファイルは、オリジナル順HTTPファイルと同じであることを示す。
代わりに、コンテンツ配送システムが、修復ファイルが修復シンボルのみを保有することを伝達することを望んだと仮定する。コンテンツ配送システムは、その場合、[20000,X]のUOSI範囲を使用することができ、ここで、Xは、20000以上である。さらに、FECオブジェクト送信情報(「OTI」)で伝達されるように、このソースファイルがZ=19個のソースブロックに分割され、したがって、最初の12個のソースブロックは1053個のソースシンボルを有し、残りの7個のソースブロックは1052個のソースシンボルを有すると仮定する。次いで、修復ファイルが修復シンボルのみを保有すること、また各ソースブロックのための修復シンボルの数が、そのソースブロック内のソースシンボルの数よりも少なくとも3つ多いことを伝達するために、その場合は、UOSI範囲を[20000,40063]と伝達することができ、すなわち、19個のソースブロックの各々について修復ファイル内には1056個の修復シンボルが存在することを伝達する。
さらに、サブブロックが使用される場合、各サブブロックのサブシンボルは、各ソースブロック内で順番に並んでおり、すなわち、ソースブロックのための修復データ内では、第1のサブブロックのために1056個のサブシンボルが存在し、それに続いて、第2のサブブロックのために1056個のサブシンボルが存在し、以降も同様であり、すなわち、修復シンボルがソースブロックのための修復データ内で連続しており、したがって、元のソースファイル内のソースデータの組織と同じ組織を有することができるという必要はなく、すなわち、拡張オリジナル順HTTPファイル形式は、オリジナル順HTTPファイル形式の自然な拡張である。たとえば、19個のソースブロックの各々が、N=3個のサブブロックに分割され、サブブロックのためのサブシンボルサイズが、それぞれ、336、332、332オクテットであると仮定する。(J,L)をファイル内のサブブロックのための識別子とし、ここで、Jは、ソースブロック番号であり、Lは、ソースブロック内でのサブブロック番号である。その場合、ファイルは、サブブロック(0,0)のための、各サブシンボルのサイズが336バイトである、1056個のサブシンボルと、それに続く、サブブロック(0,1)のための、各サブシンボルのサイズが332バイトである、1056個のサブシンボルと、それに続く、サブブロック(0,2)のための、各サブシンボルのサイズが332バイトである、1056個のサブシンボルと、それに続く、サブブロック(1,0)のための、各サブシンボルのサイズが336バイトである、1056個のサブシンボルと、それに続く、サブブロック(1,1)のための、各サブシンボルのサイズが332バイトである、1056個のサブシンボルと、それに続く、サブブロック(1,2)のための、各サブシンボルのサイズが332バイトである、1056個のサブシンボルとを備え、以降も同様である。この例では、ソースブロックJ=0、...11内のサブブロックは、1053のESIで開始し、2108のESIで終了し、ソースブロックJ=12、...18内のサブブロックは、1052のESIで開始し、2107のESIで終了する。
別の例として、ファイルを回復するために必要とされるデータのたかだか20%を受信機が失っている場合に、HTTP修復サーバに修復データを求めるために戻ってくる受信をサポートするだけのサービスが意図されると仮定する。その場合、修復データを含む修復ファイルは、たとえば、[20000,24027]のUOSI範囲に対応して、はるかに小さくすることができ、すなわち、修復ファイル内には、19個のソースブロックの各々のために利用可能な212個の修復シンボルが存在する。この例では、最初の11個のソースブロック内のサブブロックのためのサブシンボルのESI範囲は、1053〜1264であり、残りの8個のソースブロック内のサブブロックのためのサブシンボルのESI範囲は、1052〜1263である。
一般に、元のソースファイル形式は順次的であり、たとえば、データは、コンテンツの再生のためにファイルのバイトが先頭から末尾へと消費される順番で並んでおり、すなわち、それは、オリジナル順HTTPファイル形式である。これは、HTTPウェブサーバ上でのホスティング、配送、ファイルシステムへの記憶などのための自然な形式を含む、多くの理由で便利な形式である。これは、eMBMSによる配送か、それともユニキャストによる配送かにかかわらず、ソースファイルのための形式とすることができる。修復シンボルのみがeMBMSチャネルを介して送信される場合、順次的形式のソースファイルの部分は送信されず、そのため、HTTPウェブサーバへの要求は重複せず、有益な方法で、eMBMSを介して受信されたものと組み合わせて、ファイルを回復するために、ソースブロック(またはサブブロック)の連続的な初期部分を求める要求を行うことができる。
eMBMSチャネルを介してソースシンボルと修復シンボルの両方を受信機に送信することが望ましい場合、HTTPウェブサーバ上に利用可能な元のソースファイルのみを有すると、同じように良好に機能しないことがあるが、それは、ソースファイルのいくつかの部分は、eMBMSを介してすでに受信されていることがあり、したがって、ソースファイルの部分を要求するためのHTTPウェブサーバへの要求パターンは、(eMBMSを介して受信された部分をスキップして)ソースファイルの多くの小さい部分を要求することになるからであり、したがって、潜在的に、HTTPバイト範囲要求のボリュームに関してかなりの非効率性を生じさせ、HTTPウェブサーバ内の非連続的なデータ部分にアクセスし、eMBMSチャネルから異なるパケットロスパターンを経験する異なる受信機から異なるデータを要求することによってキャッシング効率を低下させる。
本明細書で説明されるように、これは、自然な方法で、修復シンボルを含むように、または場合によっては、修復シンボルのみから成るように、元のソースファイルの形式を拡張する、拡張オリジナル順HTTPファイル形式を使用することによって、解決することができる。この新しいファイル形式を使用することで、ファイルは、従来のHTTPウェブサーバ上で利用可能にすることができ、集中サービスを提供するために使用することができ、修復要求は、キャッシング効率が高くなり、HTTPバイト範囲要求が、最低限に抑えられ、eMBMSセッションにおいて異なる受信機によって経験されるロスパターンとは無関係にファイル内の同じポイントから開始するデータの連続的な部分を求める要求となるように、eMBMSを介したソースシンボルと修復シンボルの両方の配送と組合されたバイト範囲要求を使用して、従来のHTTPウェブサーバに対して行うことができる
技法的に、ファイルXは、関連するFEC OTIパラメータ(F,Al,T,Z,N)を有することができる。拡張オリジナル順HTTPファイル形式では、ファイル内のデータの範囲は、代替的にUOFIと呼ばれる、汎用オブジェクトシンボル識別子(「UOSI」)によって表すことができる。シンボルのUOSIは、シンボルのソースブロック番号(「SBN」)と符号化シンボル識別子(「ESI」)に対応し、すなわち、SBNがA、ESIがBであるシンボルの場合、UOSIは、C=A+B×Zである。逆の対応付けは、UOSI値がCのシンボルの場合、ESI値は、B=floor(C/Z)であり、SBNは、A=C−B×Zである。UOSI範囲を伝達する際、範囲は、[SU,EU]の形式で表すことができ、ここで、SUは、ファイルの開始UOSI値であり、EUは、ファイルの終了UOSI値である。SUはEU以下であることに留意されたい。その場合、ファイル内に含まれるシンボルの範囲は、SUからEUまでの範囲のUOSIを有するそれらのシンボルであり、したがって、ファイル内のシンボルの総数は、EU−SU+1である。この新しいファイル形式の特殊な場合は、SU=0、EU=ceil(F/T)−1となる場合であり、その場合、ファイルは、元のファイルと正確に同じであり、すなわち、この場合、拡張オリジナル順HTTPファイル形式は、オリジナル順HTTPファイル形式と一致する(ファイルサイズFがシンボルサイズTの倍数でない場合、法として、おそらくはゼロパディングを用いて最終シンボルをパディングする)。
そのようなファイルは、FEC OTIパラメータを含むURLによって、ならびにファイル内のシンボルの開始UOSIおよび終了UOSIによって識別することができる。新しい拡張オリジナル順HTTPファイル形式では、ファイル内のデータは、SBN=0のソースブロックのESIに関連するシンボルのすべてと、それに続く、SBN=1のソースブロックのESIに関連するすべてのシンボルから、以降も同様に、SBN=Z−1のソースブロックのESIに関連するすべてのシンボルまでである。ソースブロック内は、サブブロック順に組織され、すなわち、ソースブロックの第1のサブブロックに関連するすべてのサブシンボルは、ESIの昇順に並び、次いで、ソースブロックの第2のサブブロックに関連するすべてのサブシンボルから、以降も同様に、ソースブロックの最後の第(N−1)のサブブロックに関連するすべてのサブシンボルまでが続く。
SU〜EUのUOSI範囲内にある、SBN=Jのソースブロック内のソースシンボルのESIは、次のように計算することができる。SESI(J)を、UOSI範囲(SU,...,EU)内にあるシンボルの中でのソースブロックJのための開始ESIとし、EESI(J)を、UOSI範囲(SU,...,EU)内にあるシンボルの中でのソースブロックJのための終了ESIとする。その場合、SESI(J)は、次のように計算することができる。
同様に、EESI(J)は、次のように計算することができる。
その場合、UOSI範囲(SU,...,EU)内にあるソースブロックJに属するシンボルの総数は、NK(J)=EESI(J)−SESI(J)+1である。ファイルの異なるソースブロックについてのシンボルの数は、値の範囲(SU,EU)とは無関係に、互いの1つの中のすべて(all within one of one another)であることに留意されたい。
サブブロックL内のサブシンボルのサイズTS(L)は、本明細書に示されるように計算することができる。以下の式において、TS(L’)は、サブブロックL’内のサブシンボルのサイズである。
ファイル内の、(J,L,I)、SESI(J)≦I≦EESI(J)である3つ組(SBN,SuBN,ESI)によってインデックス付けされるサブシンボルの開始バイト位置は、次のように計算することができる。
ファイル内の、(J,L,I)によってインデックス付けされるサブシンボルの終了バイト位置は、開始バイト位置+TS(L)−1である。
一例として、ファイルは、SU=ceil(F/T)、EU=SU+Z×M−1と設定することによって形成されると仮定し、ここで、Mは、任意の受信クライアントによって予想されるソースブロック当たりのシンボルの最大ロスであり、したがって、この場合、Z個のソースブロックの各々について、ファイル内には正確にM個のシンボルが存在し、ファイルは、修復シンボルのみから成り、ファイル内の最小ESI値を有する修復シンボルは、修復シンボルの中で可能な最小のESI値を有する。元のeMBMSブロードキャストにおいて、ソースシンボルのみが送信された場合、修復シンボルのみから成るこのファイルを、HTTPウェブサーバ上にアップロードし、eMBMSのための修復サービスを提供するために、バイト範囲要求を発行するクライアントによって使用することができる。もう少し一般的には、eMBMSセッションで送信される最大のUOSIがXである場合、修復のために使用されるファイルは、UOSI範囲(X’,Y’)によって指定することができ、ここで、X’>Xであり、(Y’−X’)/Zは、ソースブロックまたはソースサブブロックを回復するために任意のクライアントが要求する必要があるシンボルまたはサブシンボルの数の上限である。
図34は、元の順序のファイルを図示し、この例では、ファイルは、Z=3個のソースブロックに分割され、各ソースブロックは、さらにN=2個のサブブロックに分割され、最初の2つのソースブロックの各々には、4個のソースシンボルが存在し、第3のソースブロックには、3個のソースシンボルが存在する。図34では、各ソースサブシンボルは、3つ組(J,L,I)を用いてラベル付けされ、ここで、Jは、SBNであり、Lは、SuBNであり、Iは、サブシンボルのESIである。
図35は、図34に対応するファイルについてのソースシンボルを示しており、ここでは、ソースシンボルは、UOSI順で列挙されている。したがって、UOSI=0を有するソースシンボルは、(0,0,0)および(0,1,0)でラベル付けされた2つのサブシンボルを備え、UOSI=5を有するソースシンボルは、(2,0,1)および(2,1,1)でラベル付けされた2つのサブシンボルを備える。
図36は、図34に示されたファイルのための11〜19の範囲のUOSIを有する修復シンボルを示している。これらの修復シンボルは、元のファイルから、すなわち、図35に示されるソースシンボルから生成することができる。各修復シンボルは、同じESIを使用する与えられたソースブロックの2つのサブブロックの各々から生成された2つのサブシンボルを備え、たとえば、UOSI=16を有する修復シンボルは、(1,0,5)および(1,1,5)でラベル付けされた2つのサブシンボルを備える。
図37は、図34に示されたファイルのためのUOSI範囲11〜19に対応する拡張オリジナル順HTTPファイル形式を示している。この順序付けでは、指定されたUOSI範囲内のシンボルを構成するサブシンボルは、最初にSBNによって順序付けられ、その中でSuBNによって順序付けられ、その中でESIによって順序付けられる。したがって、与えられたサブブロックについてのすべてのサブシンボルは、拡張オリジナル順HTTPファイル形式内では連続的である。この例では、SBN=0およびSBN=1を有するソースブロックを構成するサブブロックのサブシンボルについては、ESI範囲は4〜6であるが、SBN=2を有するソースブロックを構成するサブブロックのサブシンボルについては、ESI範囲は3〜5であることに留意されたい。拡張オリジナル順HTTPファイル形式は、そのサブブロックのファイル内におけるサブシンボルの数を最大とする、単一のサブブロックに属する任意の数のサブシンボルを要求するために、単一のバイト範囲の使用をサポートすることに留意されたい。
拡張オリジナル順HTTPファイル形式は、ソースシンボルと修復シンボルの混合を備えるファイルを生成するためにも使用することができる。たとえば、図38は、図34に示されたファイルのための、UOSI範囲8〜12についての、拡張オリジナル順HTTPファイル形式を示している。この例では、8、9、10のUOSIは、ソースシンボルに対応し、11、12のUOSIは、修復シンボルに対応することに留意されたい。この例では、ソースブロックのいくつかについては異なる数のシンボルが存在し、たとえば、SBN=0およびSBN=2を有するソースブロックの場合、2個のシンボルが存在し、SBN=1を有するソースブロックの場合、2個のシンボルが存在することにも留意されたい。
場合によっては、与えられたソースファイルに対して、2つ以上の拡張オリジナル順HTTPファイルを提供することが望ましいことがある。たとえば、異なるファイルを異なるCDNから、または異なる地域において利用可能とすることができる。たとえば、元のソースファイルに対応する、UOSI範囲が[0,19999]である1つのファイルが存在することができ、UOSI範囲がそれぞれ[20000,22000]、[22001,26354]、および[45651,64356]である3つの他のファイルが存在することができる。代替として、元のソースファイルに対応する複数のファイル、たとえば、20000個のソースシンボルを有するソースファイルに対して、UOSI範囲がそれぞれ[0,7000]、[7001,14000]、[14000,19999]である3つのファイルが存在することができる。別の例として、利用可能な重複するUOSI範囲を有する、たとえば、UOSI範囲がそれぞれ[0,15000]および[10000,30000]である、2つのファイルが存在することができる。場合によっては、拡張オリジナル順HTTPファイル内のシンボルは、ソースシンボルと修復シンボルの混合とすることができ、たとえば、UOSI範囲は、[10000,30000]であり、ソースファイル内のソースシンボルの数は、20000である。
オリジナル順HTTPファイルのためのHTTPバイト範囲要求の例
MBMS UEは、参照されるリソースのソースシンボルまたはサブシンボルのすべてまたはサブセットを要求するために、それぞれ、RFC 2616で定義されているような従来のHTTP/1.1 GETまたは部分GET要求を使用することができる。これらのメッセージ形式は、MBMS UEが、バイト範囲要求をサポートする、すなわち、そのURIが「byteRangeServiceURI」もしくは「priorityByteRangeServiceURI」として挙げられている、ファイル修復サーバにシンボルを要求する場合に、またはFLUTE FDTインスタンス内の「Content−Location」属性のサーバURI部分に直接的にソースデータを要求する場合に、使用される。
オリジナル順HTTPファイルの場合、MBMS UEは、送信されるリソースのすべてのソースシンボルを必要とするときに、HTTP GET要求を使用する。MBMS UEが、ソースシンボルまたはサブシンボルのサブセットのみの送信を要求する場合、UEは、RFC 2626の14.35.2で定義されているような、範囲要求ヘッダを有するHTTP部分GET要求を使用することができる。MBMS UEは、RFC 2616の14.35.1で定義されているようなバイト範囲仕様として、特定のソースシンボルまたはサブシンボルを示す。
メッセージング効率のため、HTTP GET方法は、UEが、単一の部分GET要求内に複数のバイト範囲要求を含めることを可能にする。UEが、単一の要求内に複数のバイト範囲を含める場合、HTTP GET要求は、HTTPサーバによる切り捨てを回避するために、2048バイトの長さを超えるべきではない。
MBMS UEが、ソースシンボルまたはサブシンボルの複数のサブセットの中から選択できると決定した場合、MBMS UEは、利用可能な最低のESI値を有するサブセットを要求すべきであり、すなわち、ソースブロックまたはソースサブブロックの先頭から、それぞれ、失われたソースシンボルまたはサブシンボルを選択すべきである。これは、HTTPファイル修復サーバのキャッシング効率を改善する。たとえば、MBMS UEが、利用可能な最高のESI値を有するサブセットを要求するなど、他の戦略も可能である。
2つ以上のファイルが、特定のMBMSダウンロードセッションにおいてダウンロードされた場合、またMBMSクライアントが、そのセッションにおいて受信された2つ以上のファイルのための修復データを必要とする場合、MBMSクライアントは、各ファイルのための別々のHTTP GET要求を送信することができる。
たとえば、MBMSダウンロードセッションにおいて、FLUTE FDTインスタンス内の「Content−Location」属性がwww.example.com/news/sports.3gpになるように設定された3gpファイルが、オブジェクトサイズがF=20000000バイト、アライメントファクタがAl=4バイト、シンボルサイズがT=1320バイト、ソースブロックの数がZ=20、およびソースブロック当たりのサブブロックの数がN=1であるFEC OTIとともに配送されると仮定する。その例では、ファイル内のソースシンボルの総数は、KT=15152であり、SBNが0〜11の最初の12個のソースブロックは、各々、758個のソースシンボルを有し、SBNが12〜19の残りの8個のソースブロックは、各々、757個のソースシンボルを有する。
MBMSダウンロードセッションの後、MBMSクライアントが、SBN=5のソースブロックに属するESIが12〜29の18個の連続するソースシンボルと、SBN=19の最後のソースブロックに属するESIが27〜36の10個の連続するソースシンボルとを受信しなかったこと、またこれらのソースブロックを復号するために、これらのソースブロックの各々から少なくともこれだけの数のシンボルをさらに必要とすることを認識したと仮定する。SBN=5のソースブロックの場合、ESI=12の最初の失われたソースシンボルの開始バイト位置は、図39に示されるように計算することができる。ESI=29の最後の失われたシンボルの終了バイト位置についての計算も、図39に示されている。SBN=19のソースブロックの失われたシンボルの開始バイト位置および終了バイト位置についての計算も、図39の表の最終行に示されている。
選択された修復サーバが、バイト範囲要求を受け入れ(たとえば、サーバURIは、関連する配送手順メタデータフラグメント内の「byteRangeServiceURI」要素を用いて識別される)、そのサーバURIが、http://httprepair1.example.comである場合、修復サーバへのHTTP GET要求は、次のようになる。
拡張オリジナル順HTTPファイル形式内のファイルのUOSI範囲は、数々の異なる手法または実施形態を介して、UEに伝達することができる。一実施形態では、これは、たとえば、新しい属性「Start−UOSI」および「End−UOSI」を追加することによって、ファイルに関連するFLUTEインスタンス内のファイル記述テーブルの一部として、送信することができる。別の実施形態では、UOSI範囲は、たとえば、「start_uosi=xxx」および「end_uosi=yyy」属性をURL内に挿入/追加することによって、ファイルのURL内に直接的に符号化することができる。代替として、ファイルのUOSI範囲は、ファイルのための配送セッションに関連する、セッション記述プロトコル(SDP)、メディア提示記述(MPD)、またはユーザサービス記述(USD)を介して伝達することが、たとえば、「Start−UOSI」および「End−UOSI」のための新しい属性をこれらの記述の1つに追加することによって伝達することができる。
UEがファイル形式を適切に復号するために必要とされる補助ファイル形式パラメータを、UOSI範囲に加えて、伝達することができる。そのような追加のパラメータの例は、何らかのFECオブジェクト送信情報を含む。これらの補助ファイル形式パラメータも、これらのパラメータのための属性を定義することによって、FLUTEインスタンスのファイル記述テーブル(FDT)で送信することができる。別の実施形態では、補助ファイル形式パラメータは、ファイルのURL内に直接的に符号化することができる。代替として、補助ファイル形式パラメータは、ファイルのための配送セッションに関連する、セッション記述プロトコル(SDP)、メディア提示記述(MPD)、またはユーザサービス記述(USD)を介して伝達することが、たとえば、パラメータのための新しい属性をこれらの記述の1つに追加することによって伝達することができる。
一実施形態では、FEC OTI情報、UOSI範囲、または任意の一般的な補助ファイル形式パラメータは、MIMEタイプとして伝達することができる。たとえば、FEC OTIパラメータは、FLUTEシンボルが特定のFEC OTI値とともにMP4ファイル内に含まれていることを示す、RFC 6381に従った文字列「application/mp4 profiles=‘flut’ fec−oti=‘XYZ’」を使用して、伝達することができる。別の実施形態では、新しいファイル形式が、定義され、パラメータを「fec−oti」としてMIMEタイプ登録に追加する。この伝達の一例は、文字列「application/flut−fec−oti=‘XYZ’」である。
いくつかの実施形態では、必要ではないが、HTTPサーバ上に記憶されたファイルのための補助ファイル形式パラメータは、ブロードキャストを介して送信されたファイルのための補助ファイル形式パラメータと同じである。一代替実施形態では、補助ファイル形式パラメータのいくつかは、ブロードキャストされたファイルの場合と、修復を可能にするためにHTTPサーバ上に記憶されたファイルの場合とで異なることができる。
たとえば、HTTPサーバ上に記憶されたファイル形式のためのFEC OTIは、ブロードキャストを形式化するために使用されたFEC OTIと異なることができる。実際の例として、異なるエリアにおいて異なるFEC OTIパラメータを使用してブロードキャストデータが符号化される場合、異なるカバレージエリアの間を移動するデバイスは、デバイスの現在位置に応じて、異なる符号化が施されたファイルにサービスする異なるサーバに転送されるユニキャスト修復要求を有することがある。これらの異なる数組のパラメータ値を区別するために、パラメータ値は、上で説明されたように、修復サーバ上に記憶されるファイル名またはURIに直接的に符号化することができる。代替として、それらの属性は、FDT、SDP、MPD、またはUSDの一部として端末に伝達される場合、たとえば、「FEC_OTI_bcast」および「FEC_OTI_file」など、異なる名前を用いて定義することができる。端末(たとえば、UE端末)は、次いで、ブロードキャストまたはHTTPサーバから取り出されたファイルを復号するための適切な手順を決定することができる。一実施形態では、端末は、異なるファイル形式構成を使用して複数のファイルが提示される場合、HTTPサーバ上のどのファイルからデータを取り出すべきかを決定するために、補助ファイルパラメータを使用することができる。また他の実施形態では、ファイルを求めるHTTP要求は、必要とされるOTIパラメータを示すプログラム命令を含むことができ、HTTPサーバは、その場合、正しく符号化されたファイルを求める要求にサービスするために、またはそのような符号化されたファイルが利用可能でない場合は、要求を拒否するために、埋め込まれた命令を使用する。
別の実施形態では、たとえば、ソースファイルがインターネットURLを有するサーバ上に配置され、端末が、補助ファイル形式パラメータを伝達するために変更または形式化できないURLに修復データを要求することが必要なことがある。別の手法は、URLで任意選択のパラメータを伝達でき、それらがURLで明示的に伝達されない場合は、デフォルトパラメータ値を仮定できる能力を有することである。たとえば、伝達される潜在的なパラメータが、形式タイプ(たとえば、SS順HTTPファイル形式、または拡張オリジナル順HTTPファイル形式)、FEC OTIパラメータ、およびUOSI範囲であると仮定する。
URLがwww.example.comであるユニキャストファイルが存在し、すなわち、これらのパラメータはどれも、URLで伝達されないと仮定する。その例では、クライアントによって仮定されるデフォルトパラメータは、拡張オリジナル順HTTPファイル形式、UOSI範囲=0、...、F/T、FEC OTI=ブロードキャストFEC OTIとすることができ、すなわち、それは、まさに、元の順序の元のソースファイルである。
代わりに、UOSI範囲が伝達される場合、たとえば、クライアントに提供されるURLが、www.example.UOSI=X_to_Y.comである場合、クライアントは、UOSI範囲がX〜Yであることを理解し、これを使用し、FEC OTIは伝達されないので、それは、デフォルトによって、このファイルのブロードキャストバージョンのFEC OTIと同じであり、拡張オリジナル順HTTPファイル形式が仮定される。
第3の例では、UOSI範囲とFEC OTIの両方がURLで伝達される場合、たとえば、www.example.FEC_OTI=(F,Al,T,Z,N).UOSI=X_to_Y.comである場合、与えられたFEC OTIおよびUOSI範囲とともに、デフォルトの拡張オリジナル順HTTPファイル形式が仮定される。
第4の例では、形式がURLで伝達される場合、すなわち、www.example.Format=SS.FEC_OTI=(F,Al,T,Z,N).comである場合、これは、形式がSS順HTTPファイル形式であることをクライアントに伝達し、FEC OTIを提供する(FEC OTIが提供されない場合、この例では、ブロードキャストFEC OTIと同じであることが仮定される)。
したがって、URLで伝達できるこれらの任意選択のパラメータを有することによって、次のことを、すなわち、(伝達されないパラメータについてのデフォルト値がファイルの形式に一致することを確認しながら)関連するURLをすでに有するファイルのために無変更のURLを可能にすること、またはパラメータの一部もしくは全部を伝達するURLを可能にすることを達成することができる。主な利点は、この場合の伝達されないパラメータは、デフォルトではファイルが元のソースファイルであることを示すので、インターネットまたはオーバーザトップ(Over−The−Top)を介して利用可能な既存のファイルのために無変更のURLを使用できることである。その場合、パラメータを伝達するURLを有するファイルについては、これらのファイルは、(たとえば、ファイルの一部である修復データを生成する、またはファイルの形式を再組織化するなど)特別に形成しなければならない可能性が高い。これらのファイルは元のソースファイルではないので、URLで追加のパラメータを伝達すべきことが好ましいが、それは、ファイルが特別に形成されるときには、これらのファイルのためにURLを生成する必要があるからである。
拡張オリジナル順HTTPファイルの場合、MBMS UEは、送信されるリソースのすべてのソースシンボルを必要とするときに、HTTP GET要求を使用する。MBMS UEが、シンボルまたはサブシンボルのサブセットのみの送信を要求する場合、UEは、RFC 2626の14.35.2で定義されているような、範囲要求ヘッダを有するHTTP部分GET要求を使用することができる。MBMS UEは、RFC 2616の14.35.1で定義されているようなバイト範囲仕様として、特定のソースシンボルまたはサブシンボルを示す。
たとえば、MBMSダウンロードセッションにおいて、FLUTE FDTインスタンス内の「Content−Location」属性がwww.example.com/news/sports.3gpになるように設定された3gpファイルが、オブジェクトサイズがF=20000000バイト、アライメントファクタがAl=4バイト、シンボルサイズがT=1320バイト、ソースブロックの数がZ=20、およびソースブロック当たりのサブブロックの数がN=1であるFEC OTIとともに配送されると仮定する。その例では、ファイル内のソースシンボルの総数は、KT=15152であり、SBNが0〜11の最初の12個のソースブロックは、各々、758個のソースシンボルを有し、SBNが12〜19の残りの8個のソースブロックは、各々、757個のソースシンボルを有する。この例では、ソースシンボルがMBMSダウンロードセッションで送信され、HTTPを介して利用可能な修復ファイルに関連するUOSI範囲は、[15152,17151]であり、すなわち、拡張オリジナル順HTTPファイル形式では、修復ファイルは、20個のソースブロックの各々について、最初の100個の修復シンボルを備えると仮定する。
MBMSダウンロードセッションの後、MBMSクライアントが、SBN=5のソースブロックのための追加の18個のシンボルと、SBN=19の最後のソースブロックのための10個の追加のシンボルとを、これらのソースブロックを復号するために必要とすることを認識したと仮定する。SBN=5のソースブロックの場合、ESI=758であるファイル内の最初のシンボルの開始バイト位置は、図40に示されるように計算することができる。ESI=775である最後のシンボルの終了バイト位置についての計算も、図40に示されている。SBN=19であるソースブロックのシンボルの開始バイト位置および終了バイト位置についての計算も、図40の表の最終行に示されている。
選択された修復サーバが、バイト範囲要求を受け入れ(たとえば、サーバURIは、関連する配送手順メタデータフラグメント内の「byteRangeServiceURI」要素を用いて識別される)、そのサーバURIが、http://httprepair1.example.comである場合、修復サーバへのHTTP GET要求は、次のようになる。
サブブロックが使用される別の例では、MBMSダウンロードセッションにおいて、FLUTE FDTインスタンス内の「Content−Location」属性がwww.example.com/news/international.3gpになるように設定された3gpファイルが、オブジェクトサイズがF=20000000バイト、アライメントファクタがAl=4バイト、シンボルサイズがT=1320バイト、ソースブロックの数がZ=2、およびソースブロック当たりのサブブロックの数がN=12であるFEC OTIとともに配送されると仮定する。その例では、ファイル内のソースシンボルの総数は、KT=15152であり、SBN=0の第1のソースブロックおよびSBN=1の第2のソースブロックは、各々、7576個のソースシンボルを有する。その例では、各ソースブロックは、各々、12個のサブブロックにさらに分割され、その各々は、7576個のソースサブシンボルを有し、最初の6個のサブブロックは、サイズが112バイトのサブシンボルを有し、残りの6個のサブブロックは、サイズが108バイトのサブシンボルを有する。この例では、ソースシンボルがMBMSダウンロードセッションで送信され、HTTPを介して利用可能な修復ファイルに関連するUOSI範囲は、[15152,17151]であり、すなわち、拡張オリジナル順HTTPファイル形式では、修復ファイルは、2個のソースブロックの各々について、最初の1000個の修復シンボルを備えると仮定する。
MBMSダウンロードセッションの後、MBMSクライアントが、SBN=0の第1のソースブロックのための18個の追加のシンボルと、SBN=1の第2のソースブロックのための18個の追加のシンボルとを、これらのソースブロックを復号するために必要とすることを認識したと仮定する。
SBN=0の第1のソースブロックの場合、ESI=7576であるシンボル(修復ファイル内で利用可能な最初のシンボル)を構成する12個のサブシンボルの開始バイト位置は、図41に示されるように計算することができる。図41は、ESI=7593であるシンボル(18個のシンボルのうちの最後のもの)を構成する12個のサブシンボルの終了バイト位置がどのように計算され得るかも示している。図41の表において、「SuBN」は、サブブロック番号のことである。
多くの他の実施形態および上で説明された実施形態の変形が存在する。本明細書で説明されたすべての形式に対する変形の一例として、ソースブロックのシンボルおよびサブシンボルがESIの逆順で並べられること以外は同じ形式を使用することができる。たとえば、ファイルが2つのソースブロックに分割され、各々が2つのサブブロックを有し、その各々が3つのサブシンボルを有する場合、このファイルの拡張オリジナル順HTTP形式は、(0,0,0)、(0,0,1)、(0,0,2)、(0,1,0)、(0,1,1)、(0,1,2)、(1,0,0)、(1,0,1)、(1,0,2)、(1,1,0)、(1,1,1)、(1,1,2)と表すことができ、各3つ組は、各サブシンボルのSBN、SuBN、およびESIを示す。逆順のこのファイルは、(0,0,2)、(0,0,1)、(0,0,0)、(0,1,2)、(0,1,1)、(0,1,0)、(1,0,2)、(1,0,1)、(1,0,0)、(1,1,2)、(1,1,1)、(1,1,0)と表すことができる。同様の逆変形は、本明細書で説明された他のすべての形式にも適用される。ファイルの逆変形は、たとえば、クライアントが、2つの異なるサーバから、コンテンツを再構成するために使用できるデータをダウンロードしており、第1のサーバからは、1つのファイル形式で記憶された、コンテンツを再構成するために使用できるデータをダウンロードまたは受信しており、第2のサーバからは、逆形式で記憶された、コンテンツを再構成するために使用できるファイルをダウンロードまたは受信している場合に有益とすることができる。2つのサーバからのデータの配送速度が異なる、または予測不可能である場合、クライアントは、2つのサーバから到着したデータの組合せがコンテンツを再構成するのに十分になるまで、単純に待つことができ、次いで、クライアントは、接続を終了すること、または単に、2つのサーバから追加のデータを受信することを止めることができる。一方の形式は、他方の逆であるので、クライアントは、概して、クライアントが各サーバからどれだけのデータを受信したかには無関係に、クライアントがコンテンツを再構成することを可能にする、重複のないデータを受信する。
拡張オリジナル順HTTP形式ファイルの形式を指定する多くの他の変形、または本明細書で説明される多くの他の形式が存在する。たとえば、拡張オリジナル順HTTP形式ファイルのデータを指定するために、UOSI範囲の代わりに、バイト範囲を使用することができる。たとえば、UOSI範囲が(X,Y)であり、シンボルサイズがTである場合、同じ形式を指定するバイト範囲は、バイトX×Tで開始し、バイト(Y+1)×T−1で終了する、バイト範囲とすることができる。形式を指定する他の変形は、ファイルの各ソースブロックについてのESI範囲の明示的なリストを指定することを含む。たとえば、ファイルが5個のソースシンボルを有する場合、ファイルの形式の指定は、SBN=0、ESI=20〜50、SBN=1、ESI=30〜40、SBN=2、ESI=10〜19、SBN=3、ESI=0〜50、SBN=4、ESI=17〜37とすることができる。この例では、異なる範囲のESIを有する同じソースブロックを複数回挙げることができ、たとえば、SBN=4、ESI=55〜65を上記のリストに追加することができ、その場合、形式化されたファイル内には、SBN=4のソースブロックに対して、ESIの2つの範囲が存在する。代替として、ESI範囲は、バイト範囲で置き換えることができ、この場合、各バイト範囲は、ソースブロックに関連する。たとえば、上記において、シンボルサイズが1000バイトである場合、バイト範囲30000〜40999は、ESI範囲30〜40と等価である。形式の指定についてのこれらの変形は、先に本明細書で説明されたすべての形式と組み合わせることができる。
今説明したように、いくつかの特定の例が存在する。本開示を読んだ後には、当業者は、さらなる実施形態を思いつくことができる。他の実施形態では、上で開示された本発明のコンビネーションまたはサブコンビネーションを有利に作成することができる。構成要素の例示的な構成は、説明を目的として示されたものであり、本発明の代替実施形態では、組合せ、追加、および再構成などが企図されることを理解されたい。したがって、本発明は例示的な実施形態に関して説明されたが、数多くの変更が可能であることを当業者は理解されよう。
たとえば、本明細書で説明されたプロセスは、ハードウェア構成要素、ソフトウェア構成要素、および/またはそれらの任意の組合せを使用して実施することができる。本明細書および図面は、したがって、限定的な意味ではなく、説明的な意味に解釈されるべきである。しかし、特許請求の範囲で説明される本発明のより広範な主旨および範囲から逸脱することなく、様々な修正および変更をそれらに施し得ること、また本発明が以下の特許請求の範囲内にすべての修正および均等物を包含することが意図されていることは明らかである。