(57)【要約】  本発明は、データパケットストリームを安全にする方法に関し、送信されるパケットをD行及びL列の行列に構成するステップと、行列の各行及び各列に誤り訂正関数を適用し、その結果が訂正パケットであるステップと、データパケットに加えて結果の誤りパケットを送信するステップとを有する。本発明はまた、データパケットストリームの損失パケットを再構成する方法に関し、シーケンス番号を考慮して、受信パケットをD行及びL列の行列に構成するステップと、少なくとも１つの損失パケットを有する行列の各行及び各列に対して、行又は列に対応する訂正パケットと受信パケットとを使用して損失パケットを再構成する関数を適用するステップとを有する。本発明はまた、これらの方法を実装した装置に関する。【特許請求の範囲】
【請求項１】
データパケットストリームを安全にする方法であって、
送信されるパケットをD行及びL列の行列に構成するステップと、
前記行列の各行及び各列に誤り訂正関数を適用し、その結果が訂正パケットであるステップと、
前記データパケットに加えて結果の誤りパケットを送信するステップと
を有することを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、
前記訂正関数はまた、前記訂正関数を前記行列の各列に適用したことから生じる訂正パケットにより形成された行に適用され、更なる訂正パケットを生成する方法。
【請求項３】
請求項１に記載の方法であって、
前記訂正関数はまた、前記訂正関数を前記行列の各行に適用したことから生じる訂正パケットにより形成された列に適用され、更なる訂正パケットを生成する方法。
【請求項４】
請求項１ないし３のうちいずれか１項に記載の方法であって、
前記訂正パケットのヘッダは、前記行列の行又は列で計算されたか否かを区別するフィールドを有する方法。
【請求項５】
請求項１ないし４のうちいずれか１項に記載の方法であって、
前記訂正パケットは、前記データパケットと同じストリームで送信される方法。
【請求項６】
請求項１ないし４のうちいずれか１項に記載の方法であって、
前記訂正パケットは、前記データパケットを伝達するものと異なるストリームで送信される方法。
【請求項７】
データパケットストリームの損失パケットを再構成する方法であって、
シーケンス番号を考慮して、受信パケットをD行及びL列の行列に構成するステップと、
少なくとも１つの損失パケットを有する行列の各行及び各列に対して、行又は列に対応する訂正パケットと前記受信パケットとを使用して損失パケットを再構成する関数を適用するステップと
を有することを特徴とする方法。
【請求項８】
請求項７に記載の方法であって、
再構成関数はまた、この目的で生成された更なる訂正パケットを使用して訂正パケットの行又は列に適用され得る方法。
【請求項９】
ネットワークでデータパケットストリームを送信する送信装置であって、
データパケットのグループに訂正関数を適用することにより訂正パケットを生成する計算手段を有し、
データパケットにより形成された行列の行及び列にこの関数を適用する手段を有することを特徴とする送信装置。
【請求項１０】
請求項９に記載の装置であって、
関数を適用する手段は、請求項１ないし６のうちいずれか１項に記載の方法に従って行う装置。
【請求項１１】
ネットワークでデータパケットストリームを受信する受信装置であって、
受信したデータパケット及び訂正パケットの関数として損失パケットを計算する手段を有し、
前記ストリームのデータパケットの行列の行及び列と、前記行及び前記列に対応する訂正パケットとに前記の計算手段を適用する手段を有することを特徴とする受信装置。
【請求項１２】
請求項１１に記載の装置であって、
前記訂正パケットは、請求項７及び８に記載の方法のうち１つに従って生成される装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットの形式でデジタルデータを送信するときの誤り訂正に関する。
【背景技術】
【０００２】
データパケットの形式でネットワークでデジタルデータを送信するときに、パケットは送信誤りにより影響を受けることがある。パケットの形式でデジタルデータの転送を可能にするネットワークは、ネットワークの種類毎に変化する特有の特性（帯域、待ち時間又は信頼性等）を有する。ネットワークの種類に応じて、このネットワークでパケットによるデータ送信中に生じる可能性のある異なる種類の誤りについて異なるレベルの感度が観測され得る。生じる可能性のある誤りの種類は、誤りビットを備えたパケット、パケットのランダムな損失、隣接パケットのシーケンスの損失、パケットの重複又はパケットのシーケンスの重複を含む。
【０００３】
従来、これらの誤りに対処する２種類の方法が存在する。第１に、送信パケットが誤っていることを検出してそれを無視する誤り検出方法が存在する。一般的に、損失パケットが再送信されることを要求する機能を送信プロトコルが有する場合に、これらの方法が使用される。このような方法の例は、CRC（Cyclic  Redundancy  Check）方法と、IPネットワークのTCP（Transmission  Control  Protocol）プロトコルとを含む。第２に、誤りパケットの検出を可能にするだけでなく、その再構成をも可能にする方法が存在する。これらの方法は、頭文字FEC（Forward  Error  Correction）として知られており、誤りデータパケットが再送信されることを要求することができないプロトコルに適する。このような方法を使用する例は、リアルタイムでマルチメディアコンテンツを送信するプロトコルの場合に生じる。リアルタイム要件を満たすことは誤りパケットを再送信することと両立しない。RTP（Real  Time  Protocol）プロトコルはこのような場合の例である。
【０００４】
FEC方法の動作の一般原理は、データパケットのグループに関数（例えばXOR）を適用することである。この関数の結果がパケット（訂正パケットと呼ばれる）を作り、それを生成するために使用されたデータパケットに加えて送信される。パケットが誤っていると検出されると、正確に送信されたパケットに関連する訂正パケットにより、誤りパケットが再構成されることが可能になる。しかし、この方法は、訂正不可能ないくつかの誤りが存在するという制限を有する。特に、XOR関数を介して訂正パケットを生成するために使用されたパケットのグループに２つの誤りパケットが存在する場合に、その訂正パケットは２つの誤りパケットを再構成するのに十分ではないことがある。従って、訂正パケットを生成するパケットを選択する際に採用される方策は、訂正方法の有効性に重要である。特に、この方策は使用されるネットワークの種類で最も頻繁に生じる誤りの形式に依存する。例えば、Nの隣接パケットで訂正関数を計算することは、合計で少ないランダムなエラーを訂正する結果を生じるが、一連の損失パケットでは効果的ではない。一連の損失パケットに対処するために、例えばPro-MPEGフォーラムの“Code  of  Practice”に記載の既知の手法は、Lパケット毎に周期的に取得されたDパケットのグループで訂正関数を計算する。関数はパケットi,i+L,i+2L,...,i+(D-1)Lに適用される。このように、多くてもLの隣接パケットの一連の誤りパケットがその方法により訂正され得る。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この方法の課題は、一連の誤りパケットに非常に適しているが、ランダムな誤り率が増加すると共に非常に急速に減少する統計的な成功率を有する結果になるという点である。従って、一連のデータパケットについて良好な訂正性能を維持する一方で、ランダムな誤り率の増加にうまく耐える方法が明らかに必要である。
【０００６】
従って、本発明の目的は、このような方法を提案することである。前述のようにDのパケットに訂正関数を提供するだけでなく、i,i+1,i+2,...,i+L-1の番号のLのパケットにもそれを適用することを有する。このように、各データパケットは２つの訂正パケットを計算するために使用され、一連のデータパケットの良好な誤り訂正を維持する一方で、ランダムな誤りの存在する場合の訂正率がかなり増加する。
【課題を解決するための手段】
【０００７】
本発明は、データパケットストリームを安全にする方法に関し、送信されるパケットをD行及びL列の行列に構成するステップと、行列の各行及び各列に誤り訂正関数を適用し、その結果が訂正パケットであるステップと、データパケットに加えて結果の誤りパケットを送信するステップとを有する。
【０００８】
本発明の他の態様によれば、訂正関数はまた、訂正関数を行列の各列に適用したことから生じる訂正パケットにより形成された行に適用され、更なる訂正パケットを生成する。
【０００９】
本発明の他の態様によれば、訂正関数はまた、訂正関数を行列の各行に適用したことから生じる訂正パケットにより形成された列に適用され、更なる訂正パケットを生成する。
【００１０】
本発明の他の態様によれば、訂正パケットのヘッダは、行列の行又は列で計算されたか否かを区別するフィールドを有する。
【００１１】
本発明の他の態様によれば、訂正パケットは、データパケットと同じストリームで送信される。
【００１２】
本発明の他の態様によれば、訂正パケットは、データパケットを伝達するものと異なるストリームで送信される。
【００１３】
本発明はまた、データパケットストリームの損失パケットを再構成する方法に関し、シーケンス番号を考慮して、受信パケットをD行及びL列の行列に構成するステップと、少なくとも１つの損失パケットを有する行列の各行及び各列に対して、行又は列に対応する訂正パケットと受信パケットとを使用して損失パケットを再構成する関数を適用するステップとを有する。
【００１４】
本発明の他の態様によれば、再構成関数はまた、この目的で生成された更なる訂正パケットを使用して訂正パケットの行又は列に適用され得る。
【００１５】
本発明はまた、ネットワークでデータパケットストリームを送信する送信装置に関し、データパケットのグループに訂正関数を適用することにより訂正パケットを生成する計算手段を有し、データパケットにより形成された行列の行及び列にこの関数を適用する手段を有することを特徴とする。
【００１６】
本発明の他の態様によれば、関数を適用する手段は、この特許に開示された方法に従って行う。
【００１７】
本発明はまた、ネットワークでデータパケットストリームを受信する受信装置に関し、受信したデータパケット及び訂正パケットの関数として損失パケットを計算する手段を有し、ストリームのデータパケットの行列の行及び列と、これらの行及びこれらの列に対応する訂正パケットとにこれらの計算手段を適用する手段を有することを特徴とする。
【００１８】
本発明の他の態様によれば、訂正パケットは、この特許に開示された方法のうち１つに従って生成される。
【発明を実施するための最良の形態】
【００１９】
添付図面を参照して行われる以下の説明を読むことにより、本発明が理解され、他の特徴及び利点が明らかになる。
【００２０】
図５は、プログラム及びデータを格納することを可能にするROM（Read-Only  Memory）4と、プロセッサ2による実行に備えてこれらのプログラムをロードすることを可能にするRAM（Random  Access  Memory）3とを有する送信装置又は受信装置1の内部アーキテクチャを示している。この装置は、ネットワークインタフェース5を介してIPネットワークに接続されており、ストリームを送信又は受信することができることを意味する。これらの構成要素は内部バス6を介して通信する。
【００２１】
本発明の例示的な実装は、IPネットワークでのリアルタイムのデジタルデータ転送に関する。この例示的な実装では、データはRTP（Real  Time  Protocol）プロトコルを介してストリームの形式で送信される。前述のように、RFC2733は、RTPプロトコルにより送信されるデータパケットを訂正する標準的な方法を記載している。この方法は、Pro-MPEGフォーラムの“Code  of  Practice”の文献に記載された拡張の対象である。ここに記載する本発明の例示的な実装は、この方法と互換性のある改善である。
【００２２】
この例示的な実装では、データパケットはL*Dのパケットのグループに分離される。図１に示すように、これらはD行及びL列の行列に構成される。L及びDは所望の効果に従って選択される。これらのパラメータが訂正方法の効果に影響を及ぼす状態は、以下に説明する。訂正関数が行列の各列に適用される。同じ訂正関数が行列の各行にも適用される。この訂正関数は実装が最も簡単なXORでもよいが、Reed-Solomon関数又はHammingコードのように、他の関数も可能である。これらの関数は非常に効果的であるが、計算の観点で高コストである。どのような訂正関数が選択されても、この関数をパケットのグループ（この場合には行列の行又は列）に適用した結果が、訂正パケットと呼ばれるパケットになる。従って、その方法は、各列に関数を適用することに対応してLの訂正パケットを生じ、各行に関数を適用することに対応してDの訂正パケットを生じる。訂正パケット自体に訂正関数を適用することにより計算された訂正パケットを追加し、それにより訂正パケットの損失を訂正する第２レベルの保護を追加することも可能である。
【００２３】
これらのパケットはデータストリームに送信されなければならない。この送信は複数の方法で実行され得る。訂正パケットはデータパケットと同じストリームで送信されてもよいが、保護するストリームと同じ送信リスクを受けることになる。それらはまた別々のストリームで送信されてもよく、誤りへの耐性を増加させる。
【００２４】
Pro-MPEGフォーラムに記載の方法は、行列の列から計算された訂正パケット計算及び送信することを有する。この特許に開示された方法は、これらの同じパケットを送信することに限っては、Pro-MPEG方法と互換性を保持する。この理由は、この標準による受信装置が行列の行で計算された訂正パケットを無視するため、本発明による送信機とPro-MPEG方法による送信機とで同じように動作することができるからである。
【００２５】
RFCに記載のデータパケットの構造を図２に示す。それはRTPパケットヘッダを有し、この説明はRFC1889にある。このヘッダに続いてFECヘッダがあり、実際の訂正パケットがある。RFC2733によるFECヘッダの構造を図３に示す。このヘッダは、訂正パケットを構成するために使用されたデータパケットのグループの最低のシーケンス番号を有するSNベース（SN  base）フィールドを有する。長さ回復（Length  recovery）フィールドは、何らかのデータパケットの長さを決定するために使用される。これは、各データパケットの長さにより形成されたグループに訂正関数を適用することにより構成される。Eフィールドは、ヘッダへの拡張を示すために使用される。PT回復（PT  recovery）フィールドは、データパケットのタイプ（Type）フィールドに訂正関数を適用することにより得られる。マスク（Mask）フィールドは、訂正パケットを構成するために何のデータパケットが使用されるかを決定する24ビットのフィールドである。ビットiが1である場合、パケットN+iが訂正パケットを構成するために使用されることを意味する。Nは、SNベースフィールドに格納されたベースである。TS回復（TS  recovery）フィールドは、データパケットのタイムスタンプに訂正関数を適用することにより計算される。これは、これらのタイムスタンプを再構成するために使用される。
【００２６】
この機構を通じて、訂正パケットは最大で24データパケットのグループでしか計算できないことがわかる。この制限を超えるために、このヘッダへの拡張がPro-MPEGフォーラムの“Code  of  Practice”の文献に規定されている。この拡張を図４に示す。図４は、拡張フィールドが1に設定されて、前記と同じヘッダを示している。新しい2ビットの拡張フィールドEが追加され、“拡張フィールド（Extension  field）”フィールドの使用を決定する。タイプ（Type）フィールドは、何の訂正関数が使用されたかを示す。XORでは0であり、Hammingコードでは1であり、Reed-Solomonコードでは2である。訂正関数の結果がパケットの最大サイズを超過した場合に、FECパケットを整列するために、インデックス（Index）フィールドが使用される。これは複雑な訂正関数の場合にあり得る。オフセット（Offset）フィールドは、データパケットを選択するために選ばれる期間を決定し、行列のパラメータLに対応する。NA（Number  of  Associated）フィールドは、訂正パケットの生成について関連するデータパケットの数を決定する。この数は行列のパラメータDに対応する。“拡張フィールド（Extension  field）”フィールドは将来使用するために確保される。マスク（Mask）フィールドは不要になっており、0の値を有するバイトで埋めることにより初期化される。
【００２７】
本発明により生じる変更は、2ビットのEフィールドを、新しい1ビットのE’フィールドと1ビットのDフィールドとに分離することを有する。1ビットのDフィールドは、該当する訂正パケットが列で計算されたか否かを決定する。その場合にはDフィールドは0に設定される。訂正パケットが行で計算された場合には、このDフィールドは1に設定される。この機構を通じて、列で計算された訂正パケットはPro-MPEGフォーラムの方法に従って計算された同じパケットと全く同一のままになり、行で計算された更なるパケットは1に設定されたDフィールドの存在により特定され得ることがわかる。これは、結局2ビットの拡張フィールドEを1に設定することになり、Pro-MPEGの方法に従って解釈された場合、このパケットがフォーラムにより規定されたフォーマットで拡張を使用していることを示す。
【００２８】
パケットが受信されている場合に、受信機は受信パケットをバッファに格納する。このバッファのサイズは、少なくともL*DのデータパケットとL+Dの対応する訂正パケットとを格納することができるものでなければならない。データパケットと訂正パケットとの間の区別は、このプロトコルについて記載するRFC1889に記載のように、RTPヘッダのタイプ（Type）フィールドにより行われる。シーケンス番号を通じてその中のデータパケットを特定し、ヘッダのSNベースフィールドを通じてその中の訂正パケットを特定することが可能である。損失パケットの認識により、訂正関数と訂正パケットとを使用することにより、それらを再構成する試みが行われることが可能になる。例えば、使用された訂正関数がXOR関数である場合、訂正パケットを使用して、訂正パケットを生成するために使用されたデータパケットのグループで１つのデータパケットの損失を訂正することが可能である。従って、対応する訂正パケットでそれらを再構成するために、受信パケットの行列で唯一の損失パケットを有する行及び列が特定される。例えば、訂正は以下の方法を使用して実行され得る。
−行iにおける損失データパケットの数のベクトルNLiの計算
−列iにおける損失データパケットの数のベクトルNCiの計算
−行列の損失パケットが残っている間に：
○NLp=1になるような最小インデックスpを見出す；
■このようなpが存在する場合：
・損失パケットに対応する列のインデックスqを見出す
・その行の他のパケットとこの行に対応する訂正パケットとにXOR関数を適用することにより、インデックスp及びqの損失パケットを再構成する。
【００２９】
・NLp=0；NCq=LCq-1；
■このようなインデックスpが存在しない場合、NCq=1になるような最小インデックスqを見出す
・このようなqが存在する場合：
○損失パケットに対応する列のインデックスpを見出す
○その行の他のパケットとこの列に対応する訂正パケットとにXOR関数を適用することにより、インデックスp及びqの損失パケットを再構成する
○NLp=NLp-1；NCq=0；
・その他の場合に、再構成方法は失敗する
成功した場合、損失パケットの全てが再構成される。
【００３０】
その方法のパラメータL及びDは、以下の情報を考慮して選択されなければならない。第１に、データパケットに加えて送信されなければならない訂正パケットにより生成されるオーバーヘッドが1/L+1/Dである。従って、L及びDについて大きい値を選択することは、その方法の使用に必要な帯域の占有を最小化する。更に、その方法は、せいぜいL+1の隣接パケットの一連の損失パケットを訂正するために使用可能である。従って、Lが大きくなるほど、この種類の誤りを訂正する際にその方法が有効になる。その方法は、３つの損失パケットまでの全てのランダムなパケット損失と、D+L-1の損失パケットまでの特定のランダムなパケット損失とを訂正することができる。問題の対称性は、L及びDが同じ値を有するときのランダムなパケット損失で最大の効率をもたらす。その方法は、受信装置と送信装置との双方にL*Dのパケットの最小サイズを有するバッファを必要とする。従って、L及びDについて大きい値を選択することは、その方法の有効性を最大化するために有利であるが、その選択は装置の送信及び受信バッファのサイズにより制約される。その他の制限は、大きい数のパケットの場合及び複雑な関数が選択された場合に長くなり得る訂正関数の計算時間から生じる可能性がある。
【００３１】
Pro-MPEGフォーラムにより記載されたものとその方法との有効性を比較するために、統計的な計算が使用され得る。予想通り、その有効性は著しく増加することが観測された。例えば、XOR訂正関数と、L及びD  が6の値を有する行列とを使用することにより、その方法は、6のデータパケットのランダムな損失のうち94.1パーセントを訂正するが、RFCの方法は2.4パーセントしか訂正しない。従って、その方法は、ストリームのデータパケットのランダムな損失を訂正する際にかなり有効であることがわかる。その方法は、D+1の連続パケットまでの隣接パケットの全ての損失を訂正することができ、Pro-MPEGの方法はDの連続パケットまでしか訂正できない。従って、ランダムな誤りの性能がかなり増加する一方で、隣接データパケットの損失の性能が少し改善したことが観測された。
【００３２】
ここに記載する例示的な実装は限定的ではないことが、当業者に明らかである。特に、本発明は、RTPに関してだけではなく、パケットによりデータを転送する全てのプロトコルに関して使用可能である。如何なる訂正関数をも使用することが可能である。本発明はこの特許で述べた訂正関数に限定されない。
【図面の簡単な説明】
【００３３】
【図１】データパケットの訂正関数の適用を示すブロック図
【図２】RTPプロトコルによるパケットに配置された訂正パケットの構造
【図３】RFC2733による訂正パケットのヘッダ
【図４】説明する本発明の例示的な実装による訂正パケットのヘッダ
【図５】本発明の例示的な実装による送信装置又は受信装置のハードウェアアーキテクチャ
【図６】送信機の方法のステップ
【図７】受信機の方法のステップ
【図１】
2007509557.tif 000002
【図２】
2007509557.tif 000003
【図３】
2007509557.tif 000004
【図４】
2007509557.tif 000005
【図５】
2007509557.tif 000006
【図６】
2007509557.tif 000007
【図７】
2007509557.tif 000008
【手続補正書】
【提出日】平成17年8月17日(2005.8.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データパケットストリームを安全にする方法であって、
送信されるパケットをD行及びL列のパケット行列に構成するステップと、
前記行列の各行及び各列に誤り訂正関数を適用し、その結果は、前記誤り訂正関数が適用されるそれぞれの行及び列での少なくとも１つの損失パケットの再構成を可能にする訂正パケットであるステップと、
前記データパケットに加えて結果の誤りパケットを送信するステップと
を有することを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、
前記訂正関数はまた、前記訂正関数を前記行列の各列に適用したことから生じる訂正パケットにより形成された行に適用され、更なる訂正パケットを生成する方法。
【請求項３】
請求項１に記載の方法であって、
前記訂正関数はまた、前記訂正関数を前記行列の各行に適用したことから生じる訂正パケットにより形成された列に適用され、更なる訂正パケットを生成する方法。
【請求項４】
請求項１ないし３のうちいずれか１項に記載の方法であって、
前記訂正パケットのヘッダは、前記行列の行又は列で計算されたか否かを区別するフィールドを有する方法。
【請求項５】
請求項１ないし４のうちいずれか１項に記載の方法であって、
前記訂正パケットは、前記データパケットと同じストリームで送信される方法。
【請求項６】
請求項１ないし４のうちいずれか１項に記載の方法であって、
前記訂正パケットは、前記データパケットを伝達するものと異なるストリームで送信される方法。
【請求項７】
データパケットストリームの損失パケットを再構成する方法であって、
シーケンス番号を考慮して、受信パケットをD行及びL列の行列に構成するステップと、
少なくとも１つの損失パケットを有する行列の各行及び各列に対して、行又は列に対応する訂正パケットと前記受信パケットとを使用して損失パケットを再構成する関数を適用するステップと
を有することを特徴とする方法。
【請求項８】
請求項７に記載の方法であって、
再構成関数はまた、この目的で生成された更なる訂正パケットを使用して訂正パケットの行又は列に適用され得る方法。
【請求項９】
ネットワークでデータパケットストリームを送信する送信装置であって、
データパケットのグループに訂正関数を適用することにより訂正パケットを生成する計算手段を有し、
データパケットにより形成された行列の行及び列にこの関数を適用する手段を有することを特徴とする送信装置。
【請求項１０】
請求項９に記載の装置であって、
関数を適用する手段は、請求項１ないし６のうちいずれか１項に記載の方法に従って行う装置。
【請求項１１】
ネットワークでデータパケットストリームを受信する受信装置であって、
受信したデータパケット及び訂正パケットの関数として損失パケットを計算する手段を有し、
前記ストリームのデータパケットの行列の行及び列と、前記行及び前記列に対応する訂正パケットとに前記の計算手段を適用する手段を有することを特徴とする受信装置。
【請求項１２】
請求項１１に記載の装置であって、
前記訂正パケットは、請求項７及び８に記載の方法のうち１つに従って生成される装置。
【国際調査報告】
2007509557.tif 000009
2007509557.tif 000010
2007509557.tif 000011
2007509557.tif 000012
2007509557.tif 000013
2007509557.tif 000014