JP3976163B2 - 損失パケットのパケット伝送プロトコル回復方法 - Google Patents

損失パケットのパケット伝送プロトコル回復方法 Download PDF

Info

Publication number
JP3976163B2
JP3976163B2 JP2000571567A JP2000571567A JP3976163B2 JP 3976163 B2 JP3976163 B2 JP 3976163B2 JP 2000571567 A JP2000571567 A JP 2000571567A JP 2000571567 A JP2000571567 A JP 2000571567A JP 3976163 B2 JP3976163 B2 JP 3976163B2
Authority
JP
Japan
Prior art keywords
output
symbols
input
symbol
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2000571567A
Other languages
English (en)
Other versions
JP2003501848A (ja
Inventor
マイケル ジー. ルビー,
Original Assignee
デジタル ファウンテン, インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by デジタル ファウンテン, インコーポレイテッド filed Critical デジタル ファウンテン, インコーポレイテッド
Publication of JP2003501848A publication Critical patent/JP2003501848A/ja
Application granted granted Critical
Publication of JP3976163B2 publication Critical patent/JP3976163B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1191Codes on graphs other than LDPC codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1836Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with heterogeneous network architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Circuits Of Receivers In General (AREA)
  • Communication Control (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Detection And Correction Of Errors (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Small-Scale Networks (AREA)

Description

【0001】
(発明の背景)
本発明は、通信システムにおけるデータの符号化および復号化に関し、より詳細には、通信データにおける誤りおよびギャップを分析し、1つより多くのソースから生じる通信データを効率的に利用するためのデータを符号化および復号化する通信システムに関する。
【0002】
送信者と受信者との間で通信チャネルを介したファイルの送信は、多くの文献に取り上げられてきた。好ましくは、受信者は、あるレベルの確実度で送信者によってチャネルを介して送信されたデータの正確なコピーを受信することを望む。チャネルが完全な忠実度を有さない場合(ほとんどすべての物理的に実現可能なシステムに当てはまる)の1つの問題点は、送信中に損失したりまたは化けたデータをどのように扱うかである。損失データ(イレーズ(erasure))は、化けたデータ(誤り)よりも扱いやすいことが多い。なぜなら、受信者は、いつ化けたデータが誤ってデータ受信されたのかを必ずしも当てることができないからである。イレーズを補正するため(いわゆる「イレーズ符号」)および/または誤りを補正するため(「誤り補正符号」すなわち「ECC」)の多くの誤り補正符合が開発されてきた。一般に、データの送信中のチャネルおよびその送信されるデータの性質の不忠実度についての何らかの情報に基づいて、使用される特定の符号が選択される。例えば、チャネルが長時間の不忠実度を有することが既知の場合、そのようなアプリケーションには、バースト誤り符号が最も適切であり得る。短くまれな誤りだけが予想される場合、簡単なパリティ符号が最善であり得る。
【0003】
複数の送信者および/または複数の受信器との間の通信チャネルを介したファイル送信もまた、多くの文献に取り上げられてきた。一般に、複数の送信者からのファイル送信は、送信者が作業の重複を最小限にできるように複数の送信者の間で調整が必要である。1つのファイルを受信器に送信する一般の複数送信者システムにおいて、送信者がどのデータをいつ送信するかを調整せずにその代わりにファイルのセグメントをただ送るだけの場合は、受信器が無駄な重複セグメントを多く受信する可能性がある。同様に、一人の送信者の送信に異なる受信器が異なる時点で参加する場合の問題点は、どのようにすればその送信者から受信器が受信するすべてのデータが確実に有用となるかである。例えば、送信者が連続して同じファイルについてのデータを送信しているとする。送信者が元のファイルのセグメントを単に送信し、いくつかのセグメントが損失した場合、受信器は、そのファイルの各セグメントの1コピーを受信する前に多くの無駄な重複セグメントを受信し得る。
【0004】
符号を選択する際に別に考慮することは、送信に使用するプロトコルである。「インターネット」(大文字の「I」を使用)として知られるネットワークのグローバルなインターネットワークの場合、パケットプロトコルがデータ伝送のために使用される。そのプロトコルは、インターネットプロトコル、または略して「IP」と呼ばれる。1ファイルまたはデータの他のブロックがIPネットワークを介して送信される場合、そのデータは、等しいサイズの入力記号に分割され、入力記号は連続パケットに配置される。パケットベースであるので、パケット指向符号化スキームが適切であり得る。入力記号の「サイズ」は、入力記号が実際にビットストリームに分割されるどうかに関わらず、ビット単位で測られ得る。この場合、入力記号が2M記号のアルファベットから選択されるとすると、入力記号の大きさは、Mビットのサイズを有する。
【0005】
伝送制御プロトコル(「TCP」)は、確認応答機構を有する常用のポイントツーポイントパケット制御スキームである。TCPは、一対一通信に適切である。ここで、送信者および受信者の双方は、いつ送信および受信が生じるかについての合意があり、およびどの送信器および受信器が使用されるかの合意がある。しかし、TCPは、一対多または多対多通信または送信者および受信者が独立してデータの送信または受信の時間と場所を決定する場合に対しては、適切でないことがよくある。
【0006】
TCPを使用する場合、送信者は整列したパケットを送信し、受信者は各パケットの受信の確認応答を行う。パケットが損失すると、送信者に確認応答が送られないので、送信者はパケットを再送信する。パケット損失は、多くの原因による。インターネット上では、パケット損失が頻繁に起こる。なぜなら、散発的な混雑状態によってルータにおけるバッファリング機構がその容量の最大に達し、入力パケットの損失を起こすからである。TCP/IPなどのプロトコルでは、確認応答パラダイムにより、確認応答の欠如に応答して、または受信者からの明示的要求に応答して損失パケットが単に再送信され得るので、パケット送信は完全には失敗しない。いずれの場合も、確認応答プロトコルは、受信者から送信者の逆向きチャネルを必要とする。
【0007】
確認応答ベースプロトコルは、一般に多くのアプリケーションに適切であり、実際に現在のインターネットにおいて広く使用されているが、あるアプリケーションに対しては、それらは非効率的であり、完全に実行不可能であることもある。特に、確認応答ベースプロトコルは、待ち時間が長く、パケット損失率が高く、調整されていない受信者の接続および切断があり、および/または帯域の非対称性が高いようなネットワーク中では、十分に機能しない。長い待ち時間とは、確認応答が受信者から伝送して送信者に戻るまでに要する時間が長いことである。待ち時間が長いと、再送信前の総時間が過度に長くなり得る。パケット損失率が高くなるとまた、同じパケットのうちのそれぞれの再送信が到達せずに最後の1つまたは最後の数個の不運なパケットを得ることが大きく遅れるという問題を起こす。
【0008】
「調整されていない受信者の接続および切断」は、各受信者が進行中の送信セッションに接続および切断を自由裁量でできる状況のことである。このような状況は、インターネット、「ビデオ・オン・デマンド」などの次世代サービスおよび将来のネットワークプロバイダによって提供される他のサービス上では一般的なことである。一般のシステムにおいて、受信者は、送信者の調整なしに進行中の送信に接続および切断する場合、受信者が多数のパケットの損失を認識する可能性がある。この場合、異なる受信者によって広く異なる損失パターンが認識される。
【0009】
非対称性帯域は、受信者から送信者への逆向きデータパス(逆向きチャネル)が利用できないか、または前向きパスよりもさらにコストがかかる状況のことである。非対称性帯域の場合、受信者がパケットに頻繁に確認応答するのを過度に遅くさせ、および/または過度にコストがかかる。また、確認応答を頻繁にしなければやはり遅延が生じる。
【0010】
さらに、確認応答ベースプロトコルは、放送にまで規模を十分に拡大することができない。放送では、1送信者が複数のユーザに同時にファイルを送信する。例えば、1送信者が複数の受信者に衛星チャネルを介してファイルを放送すると想定する。各受信者は、異なるパターンでパケットが損失し得る。ファイルの確実な送達のために確認応答データ(肯定または否定のいずれか)に基づくプロトコルは、各受信者から送信者への逆向きチャネルを必要とし、それを提供するのは過度にコストがかかり得る。さらに、このような場合には、複雑で強力な送信者が受信者から送信された確認応答データのすべてを適切に処理することができる必要がある。別の欠点は、異なる受信者が異なるパケットのセットを損失する場合に、ほんの少数の受信者によって受信し損ねたパケットのみを再放送することにより、他の受信者が無駄な重複パケットを受信してしまうことである。確認応答ベース通信システムにおいて十分に扱えない別の状況は、受信者が非同期的に受信セッションを開始し得る場合であり、つまり、受信者が送信セッションの途中でデータ受信を開始する可能性のある場合である。
【0011】
マルチキャストおよび放送のためのTCP/IPなどの確認応答ベーススキームの性能を向上させるための複雑なスキームがいくつか提案されてきた。しかし、現在のところ種々の理由によりいずれも完全には採用されていない。ひとつには、低地球軌道(LEO)衛星放送ネットワークなどのような1受信者が複数の送信者から情報を得るような場合にまで確認応答ベースプロトコルの規模を十分に拡大することができないことである。LEOネットワークにおいては、LEO衛星はその軌道のために上空を速い速度で通過するので、受信者は、いずれの特定の衛星の視野にはほんの短時間しか存在しない。これを補うために、LEOネットワークは多くの衛星を含み、1つの人工衛生が地平線に沈み別の衛星が地平線を昇る際に受信者が衛星間で引き渡される。確認応答ベースプロトコルが確実性を確保するために使用されるとしても、確認応答が適切な衛星から戻るように調整するためには、おそらく複雑な引き渡しプロトコルが必要であろう。なぜなら、受信者が1つの衛星からパケットを受信しつつなお別の衛星へそのパケットの確認応答を送ることがよく起こり得るからである。
【0012】
確認応答ベースプロトコルを代替する、実用されることのあるプロトコルは、カルーセル(carousel)ベースプロトコルである。カルーセルベースプロトコルは、入力ファイルを等しい長さの入力記号に分割し、各入力記号をパケットに配置し、そして連続的にサイクルを繰り返し、すべてのパケットを送信する。カルーセルベースプロトコルの主な欠点は、受信者がたった1つのパケットを受信し損ねても、受信者がさらに完全な1回のサイクルを待たなければその受信し損ねたパケットを受信する機会を得られないことである。別の観点では、カルーセルベースプロトコルのために大量の無駄な重複データの受信を生じ得ることである。例えば、受信者がカルーセルの開始からパケットを受信し、しばらく受信を停止し、カルーセルの開始時に受信を再開する場合、多くの無駄な重複パケットが受信される。
【0013】
上記問題を解決するために提案されてきた1つの解決法は、確認応答ベースプロトコルの使用を避け、その代わりに確実性を上げるためにリードソロモン符号などのイレーズ符号を使用することである。いくつかのイレーズ符号の1つの特徴は、ファイルが入力記号にセグメント化され、その入力記号がパケットで受信者に送信される場合、受信者は、十分に多くのパケットを受信したら、一般にどのパケットが到着したかにかかわらず、そのパケットを復号して完全なファイルを再構築する。このような性質は、たとえパケットが損失してもファイルが回復され得るので、パケットレベルでの確認応答の必要性を排除する。しかし、イレーズ符号による多くの解決方法は、確認応答ベースプロトコルの問題を解決しないか、さもなくば新規の問題を生じる。
【0014】
多数のイレーズ符号に伴う1つの問題は、それらを処理するために過剰な計算能力またはメモリを必要とすることである。計算能力およびメモリを多少効率的に使用する通信アプリケーション用に最近開発された1つの符号化スキームは、トルネード符号化スキームである。トルネード符号は、入力ファイルがK個の入力記号によって表されN個の出力記号を決定するために使用される(ここでNは、符号化処理を開始する前に固定される)という点で、リードソロモン符号と同様である。トルネード符号を使用する符号化は、一般にリードソロモン符号を使用する符号化よりもずっと速い。なぜなら、N個のトルネード出力記号を生成するのに必要な平均算術演算数がNに比例し(数十アセンブリ符号演算かけるNのオーダーである)、ファイル全体を復号化するのに必要な算術演算総数がまたNに比例するからである。
【0015】
トルネード符号は、リードソロモン符号よりも速度の点で優れているが、いくつかの欠点がある。まず、出力記号数Nが符号化処理の前に決定されなければならない。このため、パケットの損失率が過大に見積もられると効率が低下し、パケットの損失率が過小に見積もられると失敗する。これは、トルネードデコーダが、元のファイルを復号して復元するために所定数の出力記号(具体的には、K+A個のパケット、ここでAはKに比較して小さい)を必要とし、損失パケット数がN−(K+A)よりも大きい場合、元のファイルが復元されないからである。この制限は、一般にNがK+Aよりも少なくとも実際のパケット損失分は大きくなるように選択される限り、多くの通信の問題に対して許容されるが、パケット損失をあらかじめ予測する必要がある。
【0016】
トルネード符号の別の欠点は、トルネード符号がグラフ構造上で何らかの方法で整合するためにエンコーダおよびデコーダを必要とすることである。トルネード符号は、このグラフが構築されるデコーダで前処理段階を必要とする。その処理は、実質的に復号化を遅らす。さらに、グラフはファイルサイズに固有であるので、使用される各ファイルサイズに対する新しいグラフを生成する必要がある。さらに、トルネード符号によって必要なグラフの構築は複雑であり、最高の性能を得るためには、異なるサイズのファイルに対するパラメータの異なるカスタム設定をする必要がある。これらのグラフは、大きなサイズを有し、送信者および受信者の双方の記憶装置に大容量のメモリを要求する。
【0017】
加えて、トルネード符号は、固定されたグラフおよび入力ファイルに対してちょうど同じ出力記号値を生成する。これらの出力記号は、K個の元入力記号およびN−K個の冗長記号からなる。さらに実用上、Nは単にKの小さな倍数である(Kの1.5または2倍など)。このように、1より多い送信者から、同じグラフを使用して同じ入力ファイルから生成された出力記号を得る受信者が、多数の無駄な重複出力記号を受信する可能性は非常に高い。なぜなら、N個の出力記号があらかじめ固定されており、そのN個の出力記号は、出力記号が送信されるごとの各送信器から送信されるN個の出力記号と同じであり、かつ受信者によって受信されるN個の記号と同じである。例えば、N=1500、K=1000、および受信器が、1つの衛星が地平線へ沈む前にその衛星から900個の記号を受信すると想定する。衛星が同期するように調整されなければ、次の衛星から受信器によって受信されたトルネード符号記号は、追加のものではない。なぜなら、その次の衛星は、同じN個の記号を送信しているからである。この場合、受信器は、入力ファイルの復元に必要な100個の新しい記号を受信する前にすでに受信した900個の記号のうちの多く記号のコピーを受信してしまう可能性がある。
【0018】
したがって、必要なことは、送信者または受信者に過剰な計算能力またはメモリを設置する必要のない、かつ必ずしも1以上の送信者と1以上の受信者との間の調整を必要とせずにその送信者および/またはその受信者によってシステム内にファイルを効率的に配布するために使用され得る簡単なイレーズ符号である。
【0019】
(発明の要旨)
本発明による通信システムの1つの実施形態において、エンコーダは、入力ファイルのデータおよびキーを使用して、出力記号を生成する。ここで、入力ファイルは、入力アルファベットからそれぞれ選択される順列の複数の入力記号であり、キーは、キーアルファベットから選択され、出力記号は、出力アルファベットから選択される。キーIを有する出力記号は、生成されるべき出力記号の重みW(I)を決定するステップ(ここで、重みWは、複数のキー上の少なくとも2つの値の間で変化する正の整数である)、Iの関数にしたがって、出力記号に関連付けられるW(I)個の入力記号を選択するステップ、および選択されたW(I)個の入力記号の所定の値関数F(I)から出力記号値B(I)を生成するステップによって生成される。エンコーダは、1回以上呼び出され得、各回別のキーを用い、各回出力記号を生成する。出力記号は、一般に互いに独立であり、無限の数(Iの解像度に従う)が、必要ならば生成され得る。
【0020】
本発明によるデコーダにおいて、受信者によって受信された出力記号は、入力ファイルの符号化に基づいてこれらの出力記号を生成した送信者から送信された出力記号である。出力記号は送信中に損失され得るが、デコーダは、送信された出力記号の任意の部分を受信するだけの場合でさえ適切に動作する。入力ファイルを復号化するために必要な出力記号数は、そのファイルを構成する入力記号の数に等しいか、またはわずかに大きい。ここで、入力記号および出力記号は、同じビット数のデータと仮定する。
【0021】
本発明による1つの復号化プロセスにおいて、各受信された出力記号に対して以下のステップが実行される:1)受信された出力記号のキーIを識別するステップ;2)出力記号に対して、受信された出力記号値B(I)を識別するステップ;3)出力記号の重みW(I)を決定するステップ;4)出力記号に関連付けられたW(I)個の関連付けられた入力記号の位置を決定するステップ;および5)重みW(I)とともに、出力記号テーブルにB(I)を格納し、関連付けられた入力記号の位置を格納するステップ。次に、以下のプロセスが、重み1を有する未使用の出力記号がもはやこれ以上存在しなくなるまで繰り返し適用される:1)重み1を有し、「使い古した」出力記号として表記されない、格納された各出力記号に対して、キーIに基づいて、出力記号に関連付けられる固有の残りの未回復入力記号の位置Jを計算するステップ;2)出力記号から入力記号Jに対する値を計算するステップ;3)入力記号Jを関連付けとして有する出力記号テーブル内の出力記号を識別するステップ;4)この識別された出力記号の値Bを再計算し、入力記号Jから独立するステップ;5)これら識別された出力記号の重みを1だけデクリメントするステップ;および6)入力記号Jを回復されたものとして表記し、キーIを有する出力記号を使い古したものとして表記するステップ。このプロセスは、入力記号の順列セットが回復されるまで、すなわち、入力ファイル全体が完全に回復されるまで繰り返される。
【0022】
本発明の1つの利点は、送信中に受信者が任意の所定の時点で受信を開始する必要がないこと、および出力記号のセット数が生成された後、送信者が停止する必要がないことである。なぜなら、送信者が任意の所定の入力ファイルに対して出力記号の有効な無限のセットを送信し得るためである。その代りに、受信者は、用意ができた場合に受信できるところから受信を開始し得、ランダムパターンでパケットを損失し得、そしてなお、受信されるデータの非常に多くが「情報付加的」データ(すなわち、すでに利用可能な情報の重複でなく、回復プロセスを補助するデータ)である良好な確率を有する。独立に生成された(ランダムに無関係であることが多い)データストリームが、情報付加的な方法で符号化されることによって、複数ソース生成および受信、イレーズロバスト性、ならびに未調整の接続および切断を可能にするという多くの利点が生じる。
【0023】
本明細書中で開示される本発明の性質および利点のさらなる理解は、本明細書の残りの部分および添付の図面を参照して理解され得る。
【0024】
(好適な実施形態の説明)
本明細書中において記載される実施例において、「連鎖反応符号化」と呼ばれる符号化スキームが説明される。そのまえに、本記載中に使用される種々の用語の意味および範囲を説明する。
【0025】
連鎖反応符号化を用いて、出力記号が必要に応じて入力ファイルから送信者によって生成される。各出力記号は、他の出力記号がどのように生成されるかにかかわらず生成され得る。どの時点においても、送信者は、出力記号の生成工程を停止し得る。送信者が出力記号の生成工程をいつ停止または再開するかについては、制約を必要としない。一旦生成された後、これらの出力記号は、パケット内に配置され、送信先へ送信される。この場合、各パケットは、1つ以上の出力記号を含む。
【0026】
本明細書中で使用されるように、用語「ファイル」は、1つ以上のソースに格納され、1つ以上の送信先へ1単位として送達される任意のデータのことである。したがって、ファイルサーバまたはコンピュータ記憶装置からのドキュメント、イメージ、およびファイルはすべて、送達され得る「ファイル」の例である。ファイルは、既知のサイズを有するか(ハードディスク上に格納された1メガバイトのイメージなど)、または未知のサイズを有する(ストリーミングソースの出力から取り出されるファイルなど)。いずれの場合も、ファイルは入力記号のシーケンスであり、各入力記号はファイル内の位置および値を有する。
【0027】
送信は、ファイルを送達するためにデータを1以上の送信者から1以上の受信者にチャネルを介して送信する処理のことである。1送信者が完全なチャネルによって任意数の受信者に接続される場合、すべてのデータが正しく受信されるので受信されたデータが入力ファイルの正確なコピーであり得る。ここで、大半の現実のチャネルの場合のようにチャネルが完全でないと仮定するか、またはいくつかシステムの場合のように1より多い送信者からデータが送信されると仮定する。多くのチャネルの欠点のうち、ここで関心のある2つの欠点は、データイレーズおよびデータ不完全性(データイレーズの特殊な場合として処理され得る)である。データイレーズが生じるのは、チャネルがデータを損失または脱落させる場合である。データ不完全性が生じるのは、データをうちのいくつかが受信者を通り過ぎてしまうまで受信者がデータの受信を開始しないか、受信者が送信終了前にデータの受信を停止するか、または受信者がデータ受信の停止および再開を断続的に行う場合である。データ不完全性の例として、移動衛星送信者が、入力ファイルを表すデータを送信し、受信者が範囲に入る前に送信を開始する。受信者が一旦範囲に入ると、衛星が範囲を出るまでデータが受信され得る。この場合、受信者は、衛星放送受信アンテナの向きを変更して(この間はデータを受信しない)、範囲内に入った別の衛星によって送信されている同じ入力ファイルについてのデータの受信を開始し得る。この記載を読むことにより明らかなように、データ不完全性は、データイレーズの特殊な場合である。なぜなら、受信者は、あたかも受信者が常に範囲内に存在しているが、チャネルは受信者がデータ受信を開始する時点までのすべてのデータを損失するかのように、データ不完全性を処理し得る(および受信者は同じ問題を有する)。また、通信システム設計において周知のように、検出可能な誤りは、単に検出可能な誤りを有するデータブロックまたは記号のすべてを脱落させることによってイレーズと等価になり得る。
【0028】
いくつかの通信システムにおいて、受信者は、複数の送信者または複数の接続を有する1送信者によって生成されるデータを受信する。例えば、ダウンロードの速度を上げるために、受信者は、同時に1より多い送信者に接続して同じファイルに関するデータを送信する。別の例として、マルチキャスト送信において、複数のマルチキャストデータストリームは、受信者がこれらデータストリームのその1つ以上に接続できるよう送信され、そのストリームが送信者に接続されるチャネルの帯域に総送信速度を整合させる。すべてのそのような場合において重要なのは、たとえ送信速度が異なるストリーム間で大きく異なる場合であっても、かつ任意の損失パターンがある場合でも、すべての送信データが受信者に対して独立に使用されること、すなわち、複数のソースデータがストリーム間で冗長でないことである。
【0029】
一般に、送信とは、送信者から受信者へ送信者と受信者とを接続するチャネルを介してデータを移動する行為である。そのチャネルは、チャネルがデータを取得した際にチャネルがそのデータを送信者から受信者へ移動させる実時間チャネルであり得る。あるいは、チャネルは、送信者から受信者への送信中にデータの一部またはすべてを格納する記憶チャネルでもよい。後者の例は、ディスク記憶装置または他の記憶装置である。この例では、データを生成するプログラムまたはデバイスは、データを記憶装置に送信する送信者として考えられ得る。受信者は、記憶装置からデータを読み出すプログラムまたはデバイスである。送信者がデータを記憶装置へ書き込むために使用する機構、記憶装置自体、および受信者が記憶装置からデータを読み出すための機構が、集合的にチャネルを形成する。これらの機構または記憶装置がデータを損失する可能性がある場合、そのような損失をチャネル中のデータイレーズとして処理し得る。
【0030】
送信者および受信者がデータイレーズチャネルによって分離される場合、入力ファイルの正確なコピーを送信するのではなくて、その代わりにイレーズの回復を補助する入力ファイルから生成されたデータを送信するのが好ましい。エンコーダとは、そのようなタスクを処理する回路、デバイス、モジュール、または符号セグメントである。エンコーダの動作を見る1つの方法は、エンコーダが入力記号から出力記号を生成することであり、ここで入力記号値のシーケンスが入力ファイルを表す。したがって、各入力記号は、入力ファイル内の位置、および値を有する。デコーダとは、受信者によって受信された出力記号から入力記号を再構築する回路、デバイス、モジュール、または符号セグメントである。
【0031】
連鎖反応符号化は、任意の特定のタイプの入力記号に限定されないが、入力記号のタイプはアプリケーションによって決定されることが多い。一般に、入力記号に対する値は、2M個の記号(ここでMは正の整数)のアルファベットから選択される。そのような場合、入力記号は、入力ファイルからのMビットのデータシーケンスによって表現され得る。Mの値は、アプリケーションの使用、およびチャネルに基づいて決定されることが多い。例えば、パケットベースインターネットチャネルに対しては、1024バイトのサイズのペイロードを有するパケットが適切であり得る(1バイトは8ビット)。この例において、各パケットが1つの出力記号および8バイトの補助情報を含むと仮定すると、入力記号サイズのMは、(1024−8)・8、すなわち8128バイトが適切であり得る。別の例として、MPEGパケット規格を使用するいくつかの衛星システムがある。この場合、各パケットのペイロードは188バイトを含む。この例において、各パケットは1つの出力記号および4バイトの補助情報を含むと仮定すると、記号サイズのMは、(188−4)・8、すなわち1472バイトが適切であり得る。連鎖反応符号化を使用する汎用通信システムにおいて、入力記号サイズ(すなわち、M、入力記号によって符号化されたビット数)などのアプリケーション特定パラメータは、アプリケーションによって設定された変数である。
【0032】
各出力記号は、ある値を有する。以下を考慮する1つの好ましい実施形態において、各出力記号は、「キー」と呼ばれる識別子を有する。好ましくは、各出力記号のキーは、受信者によって容易に決定され、受信者がある出力記号を別の出力記号と区別できるようにする。好ましくは、出力記号のキーは、他のすべての出力記号のキーと異なる。また好ましくは、受信者が受信された出力記号のキーを決定するためには、送信中に含まれるデータは可能な限り少ない方がよい。
【0033】
キーイングの簡単な形態では、エンコーダによって生成された、連続した出力記号に対するキーのシーケンスは、連続した整数のシーケンスである。この場合、各キーは、「シーケンス番号」と呼ばれる。各送信パケット中の1つの出力記号値がある場合、シーケンス番号がパケット中に含まれ得る。一般にシーケンス番号が少数のバイト(例えば、4バイト)に収まるので、いくつかのシステムにおいては、出力記号値とともにシーケンス番号を含むことは経済的である。例えば、各1024バイトのUDPインターネットパケットを使用して、シーケンス番号用に各パケット内に4バイトを割当ててもわずかに0.4%の負担がかかるだけである。
【0034】
他のシステムでは、1より多くのデータからキーを生成するのが好ましい。例えば、1以上の送信者からの同じ入力ファイルに基づいて生成された1より多くのデータストリームを受信する受信者を含むシステムを考える。ここで、送信データはパケットのストリームであり、各パケットは、1つの出力記号を含む。すべてのそのようなストリームが、キーと同じシーケンス番号のセットを使用する場合、受信者は、同じシーケンス番号を有する出力記号を受信する可能性がある。同じキーを有するか、または同じシーケンス番号を有する場合の出力記号は、入力ファイルについて同一の情報を含むので、受信者は、無駄な重複データを受信する。したがって、そのような場合、キーがシーケンス番号と対になった固有のストリーム識別子を含むことが好ましい。
【0035】
例えば、UDPインターネットパケットの1ストリームに対して、データストリームの固有の識別子は、送信者のIPアドレス、および送信者がパケットを送信するために使用しているポート数を含み得る。送信者のIPアドレスおよびストリームのポート数は、各UDPパケットのヘッダの一部であるので、キーのこれらの部分が受信者に確実に利用され得るように各パケット中に必要なさらなるスペースはない。送信者は、単にシーケンス番号を各パケットに対応の出力記号とともに挿入することのみを必要とし、受信者は、シーケンス番号およびパケットヘッダから受信された出力記号のキー全体を再生成し得る。別の例として、IPマルチキャストパケットの1ストリームに対して、データストリームの固有の識別子は、IPマルチキャストアドレスを含み得る。IPマルチキャストアドレスは各IPマルチキャストパケットのヘッダの一部であるので、UDPパケットについての上記説明は、この場合についても同様に適用される。
【0036】
出力記号の位置によるキーイングは、それが可能な場合は好ましい。位置キーイングは、CD−ROM(コンパクトディスク読み取り専用メモリ)などの記憶装置から出力記号を読み出すために十分機能し得る。ここで、出力記号のキーは、CD−ROM上の位置(すなわち、トラック、プラスセクタ、セクタ内のプラス位置など)である。位置キーイングはまた、ATM(非同期転送モード)システムなどの回路ベース送信システムのために十分機能し得る。ここで、整列したデータセルは、厳しいタイミング制約下で送信される。この形態のキーイングを使用すると、受信者は、出力記号のキーを、そのキーを明確に送信するのに必要なスペースを有することなく、再生成し得る。当然、位置キーイングは、そのような位置情報が利用でき確実であることを必要とする。
【0037】
位置によるキーイングはまた、他のキーイング方法と組み合わせ得る。例えば、各パケットが1より多くの出力記号を含むパケット送信システムを考える。この場合、出力記号のキーは、固有のストリーム識別子、シーケンス番号、および出力記号のパケット内の位置から構築され得る。データイレーズは一般に全パケットの損失を生じるので、受信者は一般にパケットを全部受信する。この場合、受信者は、パケットのヘッダ(固有のストリーム識別子を含む)、パケット中のシーケンス番号、および出力記号のパケット内の位置を再生成し得る。
【0038】
いくつかのシステムにおいて好ましいキーイングの別の形態は、ランダムキーイングである。これらのシステムにおいては、乱数(または疑似乱数)が、生成され、各出力記号に対するキーとして使用され、および出力記号とともに明確に送信される。異なる物理的位置で異なる送信者によって生成されるキーに対してさえ(可能なキーの範囲が十分大きいと仮定する)、ランダムキーイングの1つの性質は、同じ値を有するキーの割合が小さい可能性がある。この形態のキーイングは、インプリメンテーションが簡単であるため、いくつかのシステムにおいては他の形態よりも利点を有し得る。
【0039】
上記のように、連鎖反応符号化が有用であるのは、データイレーズの可能性があるか、または受信者が、送信が開始および終了するちょうどその時点で受信を開始および終了しない場合である。後者の条件は、本明細書中で「データ不完全性」と呼ばれる。これらの条件は、連鎖反応符号化が使用される場合、通信プロセスに悪影響を与えない。なぜなら、受信される連鎖反応符号化が、情報追加型であるように、極めて独立しているからである。出力記号のほとんどのランダムな集合が、大部分が情報追加型であるように(これは、本明細書中に記載の連鎖反応符号化システムに対する場合である)十分に独立しているならば、任意の適切な数のパケットを使用して、入力ファイルを回復し得る。100パケットがデータイレーズを起こすノイズの発生によって損失する場合、その発生の後でさらに100パケットを取り上げてイレーズされたパケットの損失を置き換え得る。送信器が送信を開始した際に受信器が送信器に同調できず何千のパケットが損失した場合、受信器は、他の送信期間から(あるいは、別の送信器からの場合もある)その何千のパケットを取り上げる。連鎖反応符号化を使用すると、受信器は、任意の特定のパケットのセットを取り上げることに制約されず、従って1送信器からいくつかのパケットを受信し、別の送信器に切り換え、いくつかのパケットを損失し、所定の送信の開始または終了を逸しても、なお入力ファイルを回復し得る。受信器−送信器調整のない送信に接続および切断する機能は、通信プロセスを大きく簡略化する。
【0040】
(基本的な実施)
連鎖反応符号化を使用してファイルを送信するステップは、入力ファイルから入力記号を生成、形成、または抽出し、その入力記号を1以上の出力記号に符号化するステップ(ここで、各出力記号は、すべての他の出力記号とは独立なキーに基づいて生成される)、および出力記号を1以上の受信者にチャネルを介して送信するステップを含む。連鎖反応符号化を使用する入力ファイルの1コピーを受信(および再構築)するステップは、1以上のデータストリームから出力記号のあるセットまたはサブセットを受信するステップ、および受信された出力記号の値およびキーから入力記号を復号化するステップを含む。
【0041】
以下に説明するように、デコーダは、1以上の出力記号の値および可能ならすでに回復された他の入力記号の値についての情報から入力記号を回復し得る。したがって、デコーダは、いくつかの出力記号からいくつかの入力記号を回復し得る。これにより、デコーダは、その復号された入力記号およびすでに受信された出力記号などからの他の入力記号を復号し得、したがってこれにより、ファイルの入力記号の回復の「連鎖反応」が受信者側で再構築される。
【0042】
次に、本発明の局面を図面を参照して説明する。
【0043】
図1は、連鎖反応符号化を使用する通信システム100のブロック図である。通信システム100において、入力ファイル101、または入力ストリーム105は、入力記号発生器110に与えられる。入力記号発生器110は、入力ファイルまたは入力ファイルストリームから1以上の入力記号(IS(0),IS(1),IS(2),...)のシーケンスを生成し、各入力記号は、ある値およびある位置を有する(図1に括弧付きの整数として示される)。上記のように、入力記号に対して可能な値、すなわち、そのアルファベットは、一般に2M個の記号のアルファベットであるので、各入力記号は、Mビットの入力ファイルを符号化する。Mの値は、一般に通信システム100を使用することによって決定されるが、汎用システムは、入力記号発生器110に入力される記号サイズを含み得るので、Mは使用ごとに異なり得る。入力記号発生器110の出力は、エンコーダ115に与えられる。
【0044】
キー発生器120は、エンコーダ115によって生成される各出力記号に対するキーを生成する。各キーは、どのキー発生器によって生成されたかにかかわらず、上記の方法のうちの1つ、または同じ入力ファイルに対して生成されたキーの大きな割合が固有であることを確保する任意の同等の方法によって生成される。例えば、キー発生器120は、カウンタ125の出力、固有のストリーム識別子130、および/またはランダム発生器135の出力の組合せを使用して、各キーを生成し得る。キー発生器120の出力は、エンコーダ115に与えられる。
【0045】
キー発生器120によって与えられた各キーIに基づいて、エンコーダ115は、入力記号発生器によって与えられる入力記号から値B(I)を有する出力記号を生成する。各出力記号の値は、そのキーおよび1以上の入力記号のある関数に基づいて生成される。本明細書中で値を出力記号の「関連付けした入力記号」または単にその「関連付け」と呼ぶ。関数(「値関数」)および関連付けの選択は、以下により詳細に記載されるプロセスにしたがってなされる。一般に、常にではないが、Mは、入力記号および出力記号に対して同じである、すなわち、両方とも同じビット数で符号化する。
【0046】
いくつかの実施形態において、入力記号数Kは、関連付けを選択するためにエンコーダによって使用される。Kがあらかじめ未知の場合は(入力がストリーミングファイルの場合など)、Kは単に推定され得る。値Kはまた、入力記号に対して記憶装置を割り当てるためにエンコーダ115によって使用され得る。
【0047】
エンコーダ115は、出力記号を送信モジュール140に与える。送信モジュール140にはまた、キー発生器120から各そのような出力記号のキーが与えられる。送信モジュール140は、出力記号を送信し、送信モジュール140はまた、使用されるキーイング方法に依存して、送信される出力記号のキーについてのいくつかのデータをチャネル145を介して受信モジュール150に送信する。チャネル145は、イレーズチャネルと仮定されるが、これは、通信システム100の適切な動作に必要ではない。モジュール140、145および150は、送信モジュール140が出力記号およびそれらのキーについて必要な任意のデータをチャネル145に送信するように改造され、受信モジュール150が出力記号および可能ならばそれらのキーについてのいくつかのデータをチャネル145から受信するように改造される限り、適切なハードウェアコンポーネント、ソフトウェアコンポーネント、物理的媒体、またはそれらの任意の組合せならいずれのものでもよい。Kの値が、関連付けを決定するために使用される場合、チャネル145を介して送信され得るか、またはエンコーダ115とデコーダ155との一致によってあらかじめ設定され得る。
【0048】
上記のように、チャネル145は、インターネット、またはテレビジョン送信器からテレビジョン受信者への放送リンク、または1地点から別の地点への電話接続などの実時間チャネルであり得る。または、チャネル145は、CD−ROM、ディスクドライブ、ウェッブサイトなどの記憶チャネルであり得る。チャネル145は、実時間チャネルと記憶チャネルとの組合せでもあり得る。例えば、一人がパソコンからインターネットサービスプロバイダ(ISP)に電話回線を介して入力ファイルを送信し、その入力ファイルがウェッブサーバに格納されて、後でインターネットを介して受信者に送信される場合に形成されるチャネルである。
【0049】
チャネル145はイレーズチャネルであると仮定されるので、通信システム100は、受信モジュール150を出る出力記号と送信モジュール140に入る出力記号との間に1対1対応を仮定しない。実際には、チャネル145がパケットネットワークを含む場合、通信システム100は、任意の2つ以上のパケットの相対的順序がチャネル145を介した送信中に保存されると仮定できないとされ得る。したがって、出力記号のキーは、上記キースキームの内1つ以上を使用して決定され、受信モジュール150を出る出力記号の順序によって必ずしも決定されない。
【0050】
受信モジュール150は出力記号をデコーダ155に与え、受信モジュール150が受信するこれらの出力記号のキーについての任意のデータは、キー発生器160に与えられる。キー発生器160は、受信した出力記号に対するキーを再生成し、これらのキーをデコーダ155に与える。デコーダ155は、キー発生器160によって与えられたキーと対応の出力記号とを使用して、入力記号(再度、IS(0),IS(1),IS(2),...)を回復する。デコーダ155は、回復された入力記号を入力ファイルリアセンブラ165に与え、リアセンブラ165は入力ファイル101または入力ストリーム105のコピー170を生成する。
【0051】
(基本エンコーダ)
図2は、図1に示されるエンコーダ115の1つの実施形態のブロック図である。図2のブロック図を、ここで図3を参照して説明する。図3は、図2に示すエンコーダによって実行される処理の内のいくつかの論理等価物を示す図である。
【0052】
エンコーダ115には、入力記号および生成すべき各出力記号に対するキーが与えられる。示されるように、K個の入力記号が、入力記号バッファ205内に格納される。キーI(図1で示されるキー発生器120によって与えられる)は、値関数セレクタ210、重みセレクタ215、および連想装置220への入力である。入力記号数Kはまた、これら3つのコンポーネント210、215および220に与えられる。計算器225は、値関数セレクタ210、重みセレクタ215、連想装置220および入力記号バッファ205からの出力を受信するよう結合され、出力記号値に対する出力を有する。理解すべきことは、図2に示す要素と等価な他の構成が使用され得、これは本発明のエンコーダの1例にすぎないことである。
【0053】
動作中、K個の入力記号が入力記号バッファ205に受信および格納される。上記のように、各入力記号は、位置(すなわち、入力ファイル内の元の位置)および値を有する。入力記号は、格納される入力記号の位置が決定され得る限り、それぞれの順序で入力記号バッファ205内に格納される必要はない。
【0054】
キーIおよび入力記号数Kを使用して、重みセレクタ215は、キーIを有する出力記号の「関連付け」となるべき入力記号の数W(I)を判定する。キーI、重みW(I)および入力記号数Kを使用して、連想装置220は、出力記号に関連付けられた入力記号の位置のリストAL(I)を判定する。理解すべきことは、W(I)は、連想装置220があらかじめW(I)を知らずにAL(I)を生成し得る場合、別個にまたは明確に計算される必要がないことである。AL(I)が一旦生成されると、W(I)は容易に判定される。なぜなら、それはAL(I)中の関連付けの数であるからである。
【0055】
I、W(I)およびAL(I)が一旦既知となると、出力記号の値B(I)が値関数F(I)に基づいて計算器225によって計算される。適切な値関数の1つの性質は、AL(I)中の関連付けに対する値が、出力記号値B(I)およびAL(I)中の、他のW(I)−1個の関連付けから判定され得ることである。このステップにおいて使用される1つの好ましい値関数は、XOR値関数である。なぜなら、それは、この性質を満足し、容易に計算され、および容易に反転されるからである。しかし、他の適切な値関数を代わりに用いてもよい。
【0056】
値関数セレクタ210が使用される場合、キーIおよびKからの値関数F(I)を判定する。1つの変形において、値関数セレクタ210は、すべてのIに対して同じ方法または関数Fを使用する。この変形において、値関数セレクタ210は必要でなく、計算器225が値関数Fを構成し得る。例えば、値関数はすべてのIに対してXORであり得る。すなわち、出力記号値は、すべてのその関連付けの値のXOR(排他的なOR)である。
【0057】
各キーIに対して、重みセレクタ215は、IおよびKから重みW(I)を判定する。1つの変形において、重みセレクタ215は、キーIを使用することによってW(I)を選択して、まずランダム検索数を生成し、次いでこの数を使用して、重みセレクタ215内に格納された分布テーブル中のW(I)の値を検索する。そのような分布テーブルがどのように形成およびアクセスされるかを以下により詳細に説明する。一旦重みセレクタ215がW(I)を判定すると、この値は、連想装置220および計算器225に与えられる。
【0058】
連想装置220は、現在の出力記号に関連付けられたW(I)個の入力記号の位置のリストAL(I)を判定する。この関連付けは、Iの値、W(I)の値およびK(利用可能ならば)に基づく。一旦連想装置220がAL(I)を判定すると、AL(I)は、計算器225に与えられる。リストAL(I)、重みW(I)および、値関数セレクタ210によって与えられる値関数F(I)または予め選択された値関数Fのいずれかを使用して、計算器225は、入力記号バッファ205中のAL(I)によって参照されるW(I)個の入力記号にアクセスして、現在の出力記号に対する値B(I)を計算する。AL(I)を計算するための手順の例を以下に与えるが、別の適切な手順を代わりに使用してもよい。好ましくは、その手順は、各入力記号に、所定の出力記号に対する関連付けとして選択される確率を略等しく与え、デコーダがそれにとって利用可能なAL(I)をまだ有していない場合にデコーダが複製し得るように選択する。
【0059】
次に、エンコーダ115は、B(I)を出力する。実際は、エンコーダ115は、図3に例示する動作を実行して、すなわち、選択された入力記号のある値関数として出力記号値B(I)を生成する。示される例において、その値関数はXORであり、出力記号の重みW(I)は3であり、関連付けられた入力記号(関連付け)は位置0、2および3であり、値IS(0)、IS(2)およびIS(3)をそれぞれ有する。したがって、出力記号は、Iの値に対して以下のように計算される:
B(I)=IS(0) XOR IS(2) XOR IS(3)
次に、生成された出力記号は、上記のように送信および受信される。ここで、出力記号の内いくつかが損失されるかまたはその順序がみだれた、もしくは1つ以上のエンコーダによって生成されたと仮定する。しかし、受信される出力記号は、そのキーの表示、および値B(I)が正確であるという何らかの確実さをもって受信されると仮定する。図1に示すように、それらの受信された出力記号は、キー再発生器160による表示およびKの値から再構築される対応のキーとともに、デコーダ155に入力される。
【0060】
入力記号中に符号化されるビット数M(すなわち、そのサイズ)は、アプリケーションに依存する。出力記号のサイズもまた、アプリケーションに依存するが、チャネルにもまた依存し得る。例えば、一般的な入力ファイルが、複数のメガバイトのファイルである場合、その入力ファイルは、数千個、数万個または数十万個の入力記号に分割され、各入力記号は、数バイト、数十バイト、数百バイトまたは数千バイトである。
【0061】
いくつかの場合において、出力記号値および入力記号値が同じサイズであれば(すなわち、同じ数のビットによって表現可能か、または同じアルファベットから選択される)、符号化プロセスは、簡略化され得る。そのような場合、出力記号をパケットに入れるのが望ましく、かつ各出力記号が限られたサイズのパケットに収まる必要がある場合のように、出力記号値サイズが限定されるとき、入力記号値サイズが限定される。キーについてのいくつかのデータが、受信器にてキーを回復するために送信される場合、好ましくは、出力記号は、値およびキーについてのデータが1つのパケットに収まるように十分に小さいものであり得る。
【0062】
上記のように、多くの実施において入力記号の位置は一般に連続であるが、キーは連続ではない。例えば、入力ファイルが60,000個の入力記号にまで分割されたとすると、その入力記号の位置の範囲は、0から59,999ある。上記実施のうちの1つにおいて、各キーはランダムな32ビット数として独立に選択され、出力記号は、連続的に生成され、送信者が停止するまで送信され得る。ここで示すように、連鎖反応符号化は、60,000記号の入力ファイルが出力記号の任意の十分に大きな集合(60,000+いくらかの増分A)から再構築される。なお、これは、これらの出力記号が出力シーケンスのどこから取り出されるかに依存しない。
【0063】
(基本デコーダ)
図4は、デコーダ155の1つの実施形態を詳細に示し、多くの部分が図2に示すエンコーダ115と共通である。デコーダ155は、値関数セレクタ210、重みセレクタ215、連想装置220、出力記号バッファ405、レジューサ(reducer)415、再構築器420および再構築バッファ425を含む。エンコーダに関して、値関数セレクタ210および値関数の記述を格納するために割当てられる出力記号バッファ405中のスペースは、値関数がすべての出力記号に対して同じである場合、任意であり、使用しなくてもよい。再構築バッファ425のいくつかのエントリが図示され、ここでいくつかの入力記号が再構築され、他は依然未知である。例えば、図4において、位置0、2、5および6の入力記号が回復され、位置1、3および4の入力記号はまだ回復されない。
【0064】
動作中、キーIおよび値B(I)を有する受信された各出力記号に対して、デコーダ155は以下を行う。キーIは、値関数セレクタ210、重みセレクタ215および連想装置220に与えられる。KおよびキーIを使用して、重みセレクタ215は、重みW(I)を判定する。K、キーIおよび重みW(I)を使用して、連想装置220は、出力記号に関連付けられた入力記号のW(I)個の位置のリストAL(I)を生成する。必要に応じて、KおよびIを使用して、値関数セレクタ210は、値関数F(I)を選択する。次に、I、B(I)、W(I)およびAL(I)、および任意のF(I)は、出力記号バッファ405の行に格納される。値関数セレクタ210、重みセレクタ215および連想装置220は、エンコーダ115について記載したのと同じようにデコーダ155の動作を実行する。特に、図5における値関数セレクタ210、重みセレクタ215および連想装置220によって生成される値関数F(I)、重みW(I)およびリストAL(I)は、図4に示す対応の部分と同じキーIである。Kが入力ファイルごとに異なる場合、Kをメッセージヘッダに含むなどの任意の従来方法でエンコーダからデコーダへ通信され得る。
【0065】
再構築器420は、出力記号バッファ405を走査して、重み1をもつ、すなわち、W(I)=1およびAL(I)がちょうど1つの関連位置をリストしている、格納された出力記号を探す。これらの記号は、本明細書中で「復号可能なセット」のメンバと呼ぶ。上記の性質を有する値関数に対して、重み1の出力記号は、復号可能なセットに含まれる。なぜなら、入力記号の値は、その出力記号から判定され得るからである。当然、入力記号が、1つの重みを有すること以外の条件下で復号されることが可能な値関数が使用されるならば、その条件を使用して、出力記号が復号可能なセットかどうかを判定し得る。明確にするために、ここで記載した例は、復号可能なセットが、重み1を有するこれらの出力記号であり、これらの例の、他の値関数復号可能条件への拡張は、この記載から明らかである。
【0066】
再構築器420が復号可能なセットに含まれる出力記号を見つけた場合、その出力記号値B(I)および、必要に応じて、値関数F(I)を使用してAL(I)にリストされた入力記号を再構築し、再構築された入力記号は、それらの入力記号に対する適切な位置で再構築バッファ425に配置される。表示された入力記号が既に再構築された場合、再構築器420は新たに再構築された入力記号を棄却するか、現存する再構築された入力記号を上書きするか、またはこの2つの入力記号を比較してそれらに違いがある場合は、誤差を発行し得る。値関数が関連付けすべてについてXORであるとき、入力記号値は単に出力記号値である。このように再構築器420は入力記号を再構築するが、復号可能なセット中の出力記号からのみ入力記号を再構築する。一旦復号可能なセットからの出力記号を使用して入力記号を再構築すると、それは、出力記号バッファ405のスペースを節約するために削除され得る。「使い古した」出力記号を削除することはまた、再構築器420が連続してその出力記号に再び訪れないことを確実にする。
【0067】
まず、再構築器420は、復号可能なセットの1メンバである少なくとも1つの出力記号が受信されるまで待機する。一旦その出力記号を使用すると、復号可能なセットは再び空となる。ただし、他のいくつかの出力記号が、1つの再構築された入力記号およびもう1つ他の入力記号のみの関数であり得るという事実を除く。このように、復号可能なセットの1メンバから1つの入力記号を再構築することにより、他の出力記号が復号可能なセットに付加され得る。出力記号を復号可能なセットに付加するために低減するプロセスは、レジューサ415によって実行される。
【0068】
レジューサ415は、出力記号バッファ405および再構築バッファ425を走査して、回復された入力記号の位置をリストするリストAL(I)を有する出力記号を見つける。レジューサ415がキーIを有する「低減可能な」出力記号を見つけた場合、レジューサ415は位置Rで回復された入力記号値IS(R)を得、そしてB(I)、W(I)およびAL(I)を次のように変更する:
B(I)はB(I) XOR IS(R)にリセットされる。
【0069】
W(I)はW(I)−1にリセットされる。
【0070】
AL(I)はRを除くAL(I)にリセットされる。
上の方程式では、値関数がすべての関連付けの値のXORであることが推定される。XORは、その値関数自身の逆数であり、もしそうではなく、そして別の値関数が出力記号の計算に最初に用いられる場合には、その値関数の逆数がここでレジューサ415によって使用される。明白なように、1つより多くの関連付けの値が既知である場合、上記の方程式の等価物を計算してB(I)を、任意の未知の関連付けの値のみに依存するようにし得る(および、それに従ってW(I)およびL(I)を調整する)。
【0071】
レジューサ415の作用は、出力記号バッファ405中の出力記号の重みを低減する。出力記号の重みが1に低減される場合(または、他の復号可能な条件が他の値関数に対して生じる場合)、その出力記号は、復号可能なセットの1メンバとなり、それは次に再構築器420によって作用され得る。実用においては、一旦十分な数の出力記号が受信されると、レジューサ415および再構築器420は、連鎖反応復号化を生成し、入力ファイルからのすべての入力記号が回復されるまで、再構築器420は復号可能なセットを復号してより多くの入力記号を回復し、レジューサ415はそれらの新しく受信された入力記号を使用してより多くの出力記号を低減し、それによりそれらを復号可能なセットに付加するなどする。
【0072】
図4に示されるデコーダは、記憶装置、計算サイクルまたは送信時間をあまり考慮せずに、単純な方法で入力記号を再構築する。デコーダメモリ、複合化時間または送信時間(受信される出力記号の数を制限する)が限定される場合、デコーダは、それら限られたリソースをよりよく使用するために最適化され得る。
【0073】
(より効率的なデコーダ)
図5は、デコーダ500のより効率的な実施の好ましい実施形態を詳細に示す。ここで、値関数はXORであると仮定する。同様の実施が、XOR以外の値関数に対して適用される。図5を参照して、デコーダ500は、出力記号データ構造505(以下、OSDS505と呼ぶ)、入力記号データ構造510(以下、ISDS510と呼ぶ)、復号可能なセットスタック515(以下、DSS515と呼ぶ)、受信オーガナイザ520、および回復プロセッサ525を含む。
【0074】
OSDS505は、出力記号についての情報を格納するテーブルであり、ここでOSDS505の行Rは、受信されたR番目の出力記号についての情報を格納する。変数Rは、受信された出力記号の数を追跡し、ゼロに初期化される。OSDS505は、各行に対してフィールドKEY、VALUE、WEIGHTおよびXOR_POSを格納し、図示のフィールドは、列に組織化される。KEYフィールドは、出力記号のキーを格納する。VALUEフィールドは、プロセス時に更新された出力記号値を格納する。最終的に入力記号の回復に使用されるすべての出力記号は、最終的に回復された入力記号値へと変更されるVALUEを有する。出力記号WEIGHTフィールドは、出力記号の初期重みを格納する。出力記号のWEIGHTは、1になるまで経時的に低減され、そして入力記号を回復するために使用され得る。XOR_POSフィールドは初めに出力記号の関連付けのすべての位置についてのXORを格納する。出力記号のWEIGHTが1になると、出力記号のXOR_POSは残る1つの関連付けの位置となる。
【0075】
ISDS510は、入力記号についての情報を格納するテーブルであり、ここで行Pは、位置Pでの入力記号についての情報を格納する。各行に対して、ISDS510は最終的に、入力記号を回復するのに使用される出力記号のOSDS505における行数となるREC_ROWフィールド、すべての値が「no」に初期化され、入力記号が回復されたかどうかを示すREC_INDフィールド、およびRLフィールド用の記憶装置を含む。入力記号が回復される場合、入力記号のREC_INDは、「yes」に変更される。RL列は、すべてが「空リスト」値に初期化される。関連付けとして入力記号を有する出力記号が受信されるので、出力記号のOSDS505における行数が、入力記号に対するRLリストに付加される。
【0076】
DSS515は、復号可能なセットについての情報を格納するスタックである。変数Sは、復号可能なセットのサイズを追跡し、それをゼロに初期化する。DSS515において、列OUT_ROWは、出力記号のOSDS505における行数を格納し、列IN_POSは、回復され得る入力記号のISDS510における位置を格納する。
【0077】
1つの実施形態において、デコーダ500は、以下のように、そして図6のフローチャートに示すように動作され、図6の対応するステップは、プロセスの説明において括弧で示す。まず、ISDS510は、上記のように初期化され、RおよびSの両方がゼロに初期化される(605)。新たな出力記号が受信されると(610)、すなわち、キーIおよび出力記号値B(I)、OSDS505においてKEY(R)がIに設定され、VALUE(R)がB(I)に設定される(615)。次に、受信オーガナイザ520が呼び出されてOSDS505の行Rに格納されたキーIを有する受信された出力記号が処理される(620)。これは、図7のフローチャートに示すように、ISDS510に格納された情報を適切に使用して、情報をOSDS505およびDSS515に付加するステップを含む。次に、Rを1だけインクリメントし(625)、次の出力記号をOSDS505の次の行に格納させる。次に、回復プロセッサ525が呼び出され、復号可能なセット中の出力記号を処理し、新しい出力記号を復号可能なセットに付加する(630)。これは、図8aおよび/または8bのフローチャートに示すように、ISDS510およびOSDS505の一部を適切に使用および改変することによって、DSS515に格納された復号可能なセットに付加および削除するステップを含む。デコーダ500は、回復された入力記号の数を追跡し、この数がKに達した場合、すなわち、すべての入力記号が回復された場合、デコーダ500は、首尾よく終了し、そうでなければステップ610に戻り次の出力記号を受信する(635および640に示す)。
【0078】
受信オーガナイザ520の動作を説明するフローチャートを図7に示す(図9から12を参照)。値B(I)およびキーIを有する出力記号が到着した場合、受信オーガナイザ520は、以下の動作を実行する(図7を参照)。重みW(I)は、IおよびKから計算され(705)、関連付けの位置のリストAL(I)は、I、W(I)、およびKから計算される(710)。図11〜12は、W(I)の1計算の詳細を示し、図9〜10は、AL(I)の1計算の詳細を示す。
【0079】
再度図7を参照すると、XL(I)の値はAL(I)上のすべての位置についてのXORとして計算される(715)。そうして、リストAL(I)上の各位置Pに対して、入力記号Pが回復されない場合、すなわち、ISDS510においてREC_IND(P)=「no」の場合、Rは、ISDS510中のリストRL(P)に付加され、そうでなく、入力記号Pが回復される場合、すなわち、ISDS510においてREC_IND(P)=「yes」の場合、W(I)は1だけデクリメントされ、XL(I)はXL(I)XORPに再設定される(720)。次に、OSDS505において、XOR_POS(R)はXL(I)に設定され、WEIGHT(R)はW(I)に設定される(725)。次に、WEIGHT(R)は、1と比較される(730)。WEIGHT(R)が1に等しい場合、出力記号は、復号可能なセットに付加される、すなわち、DSS515において、OUT_ROW(S)はRに設定され、IN_POS(S)はXOR_POS(R)に設定される。そして、Sの値が1だけインクリメントされる(735)。最後に、受信オーガナイザ520が戻る(740)。
【0080】
図8aに、図9〜12を参照して回復プロセッサ525の1つの動作を記載するフローチャートを示す。その動作中、回復プロセッサ525はまず、復号可能なセットが空かどうか、すなわち、S=0かどうかを確かめるためにチェックし、そうであればただちに呼び出し元へ帰る(805、810)。復号可能なセットが空でなければ、Sは1だけデクリメントされ(815)、出力記号の行番号R’および関連した入力記号の位置PをDSS515からロードする(820)。位置Pにおける入力記号が既に回復されていれば、すなわち、REC_IND(P)=「yes」のとき(825)、回復プロセッサ525はこの復号可能なセットの要素の処理を停止し、続いて次の要素を処理する。そうでなければ、OSDS505における行番号R’に格納された出力記号は、ISDS510上の位置Pにある入力記号の回復に使用され、これはREC_IND(P)を「yes」に、およびREC_ROW(P)をISDS510のR’に設定することによって示される(830)。次に、出力記号の元のキー、OSDS505からのKEY(R’)、が元の重さW(I)および、キーの関連AL(L)の元のリストを計算するために(840,845)Iにロードされる(835)。
【0081】
さらに、図8aを参照して、位置Pにおける入力記号の回復値は、出力記号および入力記号を除く出力記号のすべての関連付けのXORとして計算される。これは、Pとは異なるAL(I)上の全ての位置P’を考慮して計算される。ISDS510におけるREC_ROW(P’)は、位置P’上の入力記号に対する回復値の行番号を格納し、OSDS505におけるVALUE(REC_ROW(P’))はこの回復値である。この計算は図8aの850で示されており、位置Pにおける入力記号に対する回復値はこの計算の最後で、VALUE(R’)=VALUE(REC_ROW(P))において格納される。
【0082】
図8aに示された処理の変形例が、図8bに示される。ここで、各出力記号が処理される際に各出力記号に対してステップ830,835,840,845,および850を行う代わりに、R’およびPの値は、後の処理用に、実行スケジュールに格納され得る(865)。延期された実行処理の例は、870、875、880、および885で示される工程を含む図8cに示される。この変形例で、図6で示されたフローチャートは、ステップ605でEをゼロに初期化することによって変更される。デコーダが受信記号は全体のファイルを復号するのに十分であると決定した後で、例えばステップ640ですべての入力記号が回復可能であることが既知となった後に、実行スケジュールの延期された処理が行われ得る。いくつかの場合、特に入力記号が大きいときは、スケジュールの実行は入力ファイル、またはその部分、が受信者側で必要とされるまで、延期され得る。
【0083】
いずれの変形例においても、すなわち、図8aまたは図8bのどちらかにおいて、ステップ855で、入力記号Pを関連付けとしてまだ有する出力記号は、入力記号が回復されたことを反映するように変更される。OSDS505におけるこれらの出力記号の行番号はRL(P)に格納される。RL(P)の各行番号R”に対して、WEIGHT(R”)は1だけデクリメントし、OSDS505の行R”における出力記号の関連付けとして、位置Pにおける入力記号の削除を反映させるため、PをXORしてXOR_POS(R”)にする。この変更によりOSDS505の行R”における出力記号が重み1となる場合、すなわち、WEIGHT(R”)=1のとき、この出力記号は、OUT_ROW(S)をR”に、IN_POS(S)をXOR_POS(R”)に設定し、そしてSを1だけインクリメントすることによって、復号可能なセットへと付加される。最後に、リストRL(P)上の出力記号の行番号を格納するために使用されるスペースをフリースペースに戻し(860)、処理はステップ805に続く。
【0084】
(連想装置の実施)
出力記号キーから関連する入力記号へのマッピング(すなわち、重みW(I)、およびキーIに対する関連付けの位置のリストAL(I)の決定)は、種々の形態をとり得る。W(I)は、同じキーIに対してエンコーダおよびデコーダの両方によって同じ値(送信者および受信者のそれぞれにおいて)であるように選択されるべきである。同様に、AL(I)は、同じキーIに対してエンコーダおよびデコーダの両方によって同じ位置のリストを含むように選択されるべきである。連想装置は、Iならびに通常W(I)およびKからAL(I)を計算または生成するオブジェクトである。
【0085】
1つの実施形態において、W(I)およびAL(I)は、ランダムプロセスを模倣するように設計された方法で判定される。エンコーダおよびデコータが同じキーに対して同じ結果を生成するという要件を満足するために、擬似ランダムシーケンスが、キーをシードにしてエンコーダおよびデコーダの両方によって生成され得る。擬似ランダムシーケンスの代わりに、本当のランダムシーケンスが、W(I)および/またはAL(I)の生成のために使用され得るが、それが有用であるためには、W(I)およびAL(I)を生成するために使用されたランダムシーケンスが受信者に通信される必要があり得る。
【0086】
図4において示すデコーダにおいて、出力記号バッファ405は、関連付けの位置の各出力記号リストの記憶装置、すなわち列でラベルされたAL(I)内に記憶装置を必要とする。図5に示すより効率的なデコーダは、この記憶装置を必要としない。なぜなら、関連付けの1リストは、例えば図9〜10に示すように、必要に応じて再計算されるからである。これらの計算が必要に応じて速やかに行われ得る場合にのみ、記憶装置を節約するために毎回関連付けリストを再計算する際に利点がある。
【0087】
連想装置220の好ましい実施形態が図9に示され、図10に示すプロセスにしたがって動作する。この連想装置は、エンコーダおよびデコーダにおいて使用され得る。エンコーダは1回に1より多くのAL(I)を格納する必要が通常ないので、エンコーダでのAL(I)のための記憶装置にはあまり関心がないが、同じプロセスをエンコーダおよびデコーダの両方で使用して、AL(I)に対する値が両方の場所で確実に同じとなるようにすべきである。
【0088】
連想装置220への入力は、キーI、入力記号数K、および重みW(I)である。出力は、キーIを有する出力記号の関連付けのW(I)個の位置のリストAL(I)である。図9において示すように、連想装置は、ランダムビットのテーブルASSOC_RBITS905および計算器ASSOC_CALC910を含む。特定のAL(I)が生成される前に、入力ファイルのサイズは、入力記号数が素数となるように調節される。このように、入力ファイルがK個の入力記号で開始する場合、Kより大きいかまたはKに等しい最小素数Pが識別される。PがKよりも大きい場合、P−K個のブランク(例えば、ゼロに設定される)入力記号が入力ファイルに付加され、KがPに再設定される。この改変された入力ファイルに対して、関連付けの位置のリストAL(I)は、図9および10に示すように計算される。
【0089】
この実施形態において、ASSOC_CALC910は、以下に記載され、かつ図10のフローチャートに示すように動作する。第1ステップは、キーI、入力記号数KおよびランダムビットASSOC_RBITS905のテーブルを使用して、Xが少なくとも1かつたかだかK−1であり、Yが少なくともゼロかつたかだかK−1である性質を有する2つの整数値XおよびYを生成することである(1005)。好ましくは、XおよびYは、独立であり、それぞれの範囲内で一様分布する。次に、W(I)個のエントリを有する配列V[]が、AL(I)の記憶のために、そのメンバが計算される際に初期化される(1010)。V[]は、1つのリストに対する一時記憶装置にすぎないので、出力記号バッファ405(図4を参照)のAL(I)列よりもずっと少ないメモリを占めるだけであり得る。V[0](これは、リストAL(I)の第1番目の要素)がYに設定される(1015)。次に、1で始まりW(I)−1で終わるJのすべての値に対して、V[J]の値は、ステップ1020〜1050に示すように、(V[J−1]+X) mod Kに設定される。Kが素数であり、かつW(I)がたかだかKであるので、V[]値のすべてが固有である。図示のように、「mod K」演算は、簡単な比較および減算演算であり得る、すなわち、ステップ1035および1040。このように、所定の出力記号の関連付けの位置のリストを生成するプロセスは、非常に効率的である。
【0090】
AL(I)を計算する上記アプローチの1つの利点は、関連付けの位置の分布に十分な変化を生成して、復号化アルゴリズムを、W(I)を選択するための良好な手順と合わされる場合、高い確率かつ最小の受信オーバーヘッドで動作させることを確実にする(すなわち、入力ファイルは、K個よりわずかに多い出力記号を受信した後、回復される。ここで入力記号および出力記号は同じ長さとする)。
【0091】
(重みセレクタ実施例)
エンコーダ/デコーダの性能および効率は、重みの分布に依存し、いくつかの分布は、他の分布より良好である。重み選択の動作の局面を以下に議論し、その後いくつかの重要な重み分布を説明する。図11のブロック図および図12のフローチャートを使用してこれらの概念を例示する。
【0092】
図11に示すように、重みセレクタは、2つのプロセスWT_INIT1105およびWT_CALC1110、ならびに2つのテーブルWT_RBITS1115およびWT_DISTRIB1120を含む。プロセスWT_INIT1105は、第1のキーが通過してテーブルWT_DISTRIB1120を初期化した場合に1度だけ呼び出される。WT_DISTRIB1120の設計は、システムの重要な局面であり、後でずっとより詳細に考察される。プロセスWT_CALC1110は、各呼び出しごとに呼び出されて、キーIに基づいて重みW(I)を生成する。図12のフローチャートに示すように、WT_CALC1110は、キーおよびテーブルWT_RBITSに格納されたランダムビットを使用して、乱数Rを生成する(1205)。次に、Rの値を使用して、テーブルWT_DISTRIB1120における行番号Lを選択する。
【0093】
図11に示すように、WT_DISTRIB1120のRANGE列におけるエントリは、値MAX_VALで終了する正の整数の増加シーケンスである。Rに対する可能な値のセットは、ゼロおよびMAX_VAL−1との間の整数である。所望の性質は、Rが、可能な値の範囲においてどの値になるのも等しく確からしいことである。Lの値は、RANGE(L−1)≦R<RANGE(L)を満足するLを見つけるまでRANGE列を検索することによって決定される(1210)。一旦Lが見つかると、W(I)の値がWT(L)に設定され、これは戻された重みである(1215、1220)。図11において、図示のテーブル例に対して、Rが38,500に等しい場合、Lが4であることが分かり、したがって、W(I)はWT(4)=8に設定される。
【0094】
重みセレクタおよび連想装置を実施する他の変形例は、Iを擬似ランダムに生成し、IからW(I)およびAL(I)を直接生成するステップを含む。明らかなように、W(I)は、AL(I)を調べることによって決定され得る。なぜなら、W(I)は、AL(I)における関連付けの数に等しいからである。この説明から、W(I)個の値を生成する多くの他の方法は、説明したばかりのシステムと等価であり、WT_DISTRIBによって規定される分布を有する1セットのW(I)値を生成するということが明らかである。
【0095】
(別のデコーダ)
この開示を読むと、受信器は、上記の実施例よりも効率的に動作し得ることが当業者に明らかである。例えば、受信器は、パケットをバッファし、1群のパケットが到着したときだけ回復ルールを適用すればより効率的であり得る。この改変は、後の不必要な動作を行う際にかかる計算時間を低減し、コンテクストスイッチングによるオーバーヘッドを低減する。特に、デコーダは、少なくともK個の出力記号(同じサイズの入力記号および出力記号を仮定する)がK個のパケット単位(1つのパケット毎に1つの記号を仮定する)で到着する前に、K個の入力記号の元のファイルを回復することは望めないので、復号化プロセスを開始する前に少なくともK個のパケットが到着するまで待機することが有益であり得る。
【0096】
図13は、上記の概念を含み、図6のデコーダによって使用されるプロセスの改変例である復号化の異なる方法を示す。2つの方法間の主な違いは、図13の方法が1315に示すように、バッチ単位で出力記号を受信することである。第1のバッチのサイズはK+Aであるように設定され、ここで、Aは、入力記号数Kの小さな部分である(1310)。第1の出力記号のバッチが受信された後で、出力記号は、出力記号を処理するために受信オーガナイザ520を使用するステップ(1340)と、復号可能なセットを処理し、重み1に低減された重みを有する出力記号から入力記号を回復するために回復プロセッサ525を使用するステップ(1350)とを組み合わせて、前記のように処理される。K個の入力記号すべての回復が、K+A個の出力記号の第1のバッチを使用して達成できない場合、G個の出力記号のさらなるバッチが、すべての入力ファイルが回復されるまで受信および処理される。
【0097】
デコーダの補助データ構造に必要な記憶装置をできるだけ低減することは、利点である。すでに説明したように、各出力記号に対する関連付けのリストのための記憶装置は必要でない、なぜなら、必要に応じて、連想装置220を使用して、それらのリストを速やかに計算し得るからである。まだ回復されない入力記号の各々に対して、関連付けとして入力記号を有する出力記号のOSDS505における行番号を格納するために別の記憶装置が必要である。すなわち、図5のテーブルISDS510におけるRL列に示されるリストのためのスペースが必要である。図8のステップ855においてすでに説明したように、この格納を使用すると、所定の入力記号が再構築された場合、どの出力記号が低減可能かを速やかに識別し得る。それが効率良くなされなければ、これらのリストに必要な記憶装置は、すべての入力記号を回復するために使用されるすべての出力記号の関連付けの総数に比例し得る。
【0098】
(予めソートするデコーダ)
次に、図14および15を参照して、デコーダのより好ましい実施形態を説明する。図14は、デコーダを構成する部分を示す。それらは、図5に示すものと同じであるが、ただし、テーブルWEIGHT SORT1405および図8bにおいて説明されるように形成された実行スケジュールを格納するために使用されるEXECUTION LIST1420が追加される点で異なる。出力記号のOSDS505における行番号のバッチを格納するために、テーブルWEIGHT SORTが使用され、それらは受信される際に、重みの昇順で格納される。WT_VAL列を使用して、重みを格納し、ROW_LIST列を使用して、OSDS505における出力記号の行番号を格納する。一般に、重みWT_VAL(L)を有するすべての出力記号の行番号は、ROW_LIST(L)に格納される。このテーブルを使用して、図15のステップ1520に示すように、重みの昇順で出力記号のバッチを処理する。重みが低い出力記号は、入力記号を回復するためにそれほど集中して計算に使用せず、出力記号の重みが大きいほど、それらの関連付けのほとんどがただちに回復されるということがあり得る。したがって、それは、リンク記憶装置スペース(デコーダは、回復された入力リンクによって使用されるスペースを回復し得、処理中の出力記号はまだ未回復のわずかな関連付けを有する)を実質的に節約する。
【0099】
出力記号を適切なサイズのバッチで重みの昇順に処理することは、メモリ要件および処理要件を下げる。
【0100】
図15に示すように、K個よりわずかに多い出力記号(図ではK+A個の出力記号によって示す)は、いずれの処理の開始よりも前に到着することが許される(1515)。ここで、パケット毎に1つの出力記号、入力ファイルにおける同じサイズの入力記号および出力記号、ならびにK個の入力記号を仮定する。初めに、デコーダは、K+A個の出力記号の受信を単に待機する。なぜなら、デコーダは、K+A個の出力記号より少ない出力記号から入力ファイルをどうしても回復し得ないと予想でき、おそらくK個より少ない出力記号から任意の入力ファイルを回復し得ない。実用上は、5・√KがAに対して良好な値であることが分かった。
【0101】
受信された出力記号のOSDS505における行番号は、図14のテーブルWEIGHT SORT1405において重みの昇順で格納される(図15のステップ1515)。Tが、そのときの1とTとの間のLの値に対する可能な出力記号の重みの数である場合、リストROW_LIST(L)は、重みWT_VAL(L)のすべての受信された出力記号を含み、ここで1=WT_VAL(1)<WT_VAL(2)<WT_VAL(3)<...<WT_VAL(T)であり、かつWT_VAL(T)が任意の出力記号の最大の重みである。次に、ステップ1520に示すように、図15に示すデコータの動作の残りは、図13に示すデコーダとまったく同じであるが、ただし、出力記号が重みの昇順で処理されることを除く。
【0102】
通常、K+A個の出力記号は、すべての入力記号を回復するのに十分であり得る。しかし、K+A個のパケットの数セットは、すべての入力記号を回復するのに十分でないことがある。そのような場合、G個のさらなる出力記号のバッチが、受信され、そしてすべての入力記号が回復されるまで処理される。Gに対する良好な設定は、√Kである。
【0103】
図16〜19は、図15において記載するプロセスの実行例の1スナップショットを示す。この例において、6個の出力記号(16030、16035、16040、16045、16050、16055)が図16において矢印つきの線で示す関連付け(16000、16005、16010、16015、16020、16025)とともに受信されている。まず、
【0104】
【数1】
Figure 0003976163
を有する出力記号が、図17に示すようにOSDS505に受信および格納される。OSDS505における行番号は、図18に示すように、出力記号の重みに対応する行においてROW_LIST中に格納される。重み1の出力記号は、OSDS505の行0、行1および行3にある。このように、ROW_LIST(0)は、重みWT_VAL(0)=1を有する出力記号に対応し、図18に示すように、行番号0、1および3を含む。同様に、ROW_LIST(1)は4および5を含み、ROW_LIST(3)は2を含む。
【0105】
プロセスのこの時点で、重み昇順にした最初の5つの出力記号が処理されており、OSDS505の行2における第6の出力記号は、受信オーガナイザ520によって処理されており、この第6の出力記号が回復プロセッサ525によってちょうど処理されるところである。行0、1、3および5における出力記号が、スケジュールにすでに付加され、それぞれ位置0、3、2および1で最終的に入力記号を回復する。OSDS505の行4における出力記号は、まだ回復されてない位置4および5において2つの関連付けを有し、したがって、ISDS510における位置4および5からOSDS505における行4に戻るリンクが存在する。OSDS505の行2における出力記号は、位置0、1,3および5において4つの関連付けを有する。位置0、1および3における3つの関連付けは、回復されたものとしてすでにマークされており、したがって、そこから行2に戻るリンクは存在しない(それにより、この出力記号の重みが4から1に低減され、このことは、一旦回復プロセッサ525が実行されると位置4および5における残りの入力記号の回復をトリガする)。位置5における関連付けは回復されず、したがって受信オーガナイザ520は、ISDS510における位置5からOSDS505における行2へのリンクを付与する。これはすべて、図17に示される。このように、プロセスのこの時点で、入力記号から、それらを関連付けとして有する出力記号へ戻る全部で3つのリンクだけが使用される。これは、あらゆる入力記号から、それを関連付けとして有するあらゆる出力記号へのリンクを使用する単純な実施例に遜色がない。この例において、このようなリンクが11可能である。
【0106】
一般に、リンク用の格納スペースの節約が、図13に記載したプロセスよりも図14および15において記載したプロセスを使用する場合、劇的に低減する。例えば、入力記号数が50,000の場合、スペースの節約は、一般にリンクスペースにおいて10〜15倍である。この低減の理由は、重みのより小さい出力記号は、プロセスの終了時より開始時に入力記号を回復する可能性がより大きく、重みのより大きな出力記号は、プロセスの開始時より終了時に出力記号を回復する可能性がずっとより大きい。したがって、重みの昇順で出力記号を処理することは意味のあることである。図13よりも図14および15に記載するプロセスのさらなる利点は、復号化が一般に30%〜40%速くなることである。これは、重みのより小さい出力記号が、重みのより大きい出力記号よりも、入力記号を回復するために使用される可能性が大きく(なぜなら、重みのより小さい出力記号が先に考慮されるからである)、かつ特定の入力記号を回復するコストは、それを回復するために使用される出力記号の重みに直接依存するからである。
【0107】
(重み分布の選択)
重要な最適化は、入力ファイルをできるだけ少ない出力記号を用いて完全に再構築し得るように符号化プロセスを設計することである。この最適化は、送信時間および帯域幅がコスト高または制限される場合、または入力ファイルが、さらなる出力記号を待つことなく速やかに復号化されなければならない場合、役に立つ。一般に、入力ファイルの再構築に必要な十分な出力記号数は、元の入力ファイルにおける入力記号数よりもわずかに大きい(同じサイズの入力記号および出力記号を仮定する)。入力ファイルよりも少ないビットを受信した場合、任意の入力ファイルは回復され得ないことを示し得る。したがって、完全な符号化スキームは、入力ファイルと同じビット数を符号化する任意の出力記号のセットから入力ファイルを回復することが可能であり得、符号化効率の1つの尺度は、予期される条件下で必要な予備のビットがどれくらい少ないかである。
【0108】
図5に示すデコーダにおいて、最大効率は、デコーダがちょうどK個の出力記号を受信した後で回復プロセッサ525が最後の未知の入力記号を回復する場合に得られる。K個より多い出力記号が、すべての入力記号が回復され得る時間までにデコーダによって受信されるならば、入力ファイルの回復に必要でない、または使用されない出力記号が受信される。最大効率が良好である間、それを目標とすることは、再構築が完全になる前にDSS515が空になり得る危険によって調節されるべきである。言い換えると、最大効率において、復号可能なセットのサイズは、ちょうど再構築が終了する際にゼロとなるが、符号化/復号化は、復号可能なセットのサイズが再構築の終了前にゼロとなるわずかの確率しかないように、K+A個の出力記号を使用して調整されるべきであり、そのためG個の出力記号のさらなるセットは必要でない。
【0109】
この点を図20に例示する。この図は、復号可能なセットのサイズ対再構築された入力記号数のプロットを示す。ここで、デコーダは、以下に記載の理想の分布に対して、K+A個の出力記号を用いて動作する。この例において、A=0、すなわち、K個の入力記号のすべてを復号するために、受信された出力記号数は、可能な数の最小数である(入力記号および出力記号は同じサイズと仮定する)。理解すべきことは、そのプロットが、重みおよび関連付けを決定するための任意の所定関数に対して異なり、またどの特定の出力記号を受信したかに依存して異なり得ることである。そのプロットにおいて、復号可能なセットサイズの予想サイズは、最初は1であり、回復プロセスを通して1を維持する。このように、予想される挙動においては、次の入力記号を回復するために使用され得る、復号可能なセットにおける1つの出力記号が常に存在する。図20はまた、理想の分布の実際の挙動の例を示す。この実際の実行において、復号可能なセットは、回復が完了する前は、空であることに留意されたい。理想の分布の実際の挙動は、一般的である、すなわち、理想の分布に対して、ランダムなゆらぎはほとんど常に、すべての入力記号が回復される前に復号可能なセットを空にし、このため、以下に記載のように、よりロバストな分布が必要である。
【0110】
効率は、XOR値関数の場合で、1つのみの関連する入力記号を有する、復号可能なセットメンバがすでに再構築されている入力記号を、関連付けとして有する回数を限定することによって、向上される。これは、W(I)を生成するための関数を適切に選択することによって達成され得る。
【0111】
このように、十分な出力記号を受信することによって、入力ファイルを任意の所望の確実度で完全に回復することが可能である一方で、Aの何らかの小さい値に対してK+A個程度に少ない出力記号(入力記号および出力記号は同じサイズと仮定する)を用いて完全な入力ファイルを含むK個の入力記号を回復する確率が高くなるように連鎖反応符号化通信システムを設計することが好ましい。Aの最小値がゼロであり、リード−ソロモン符号化などのいくつかの符号化スキームにおいて達成され得るが、Aとして何らかの小さい非ゼロ値を許容することによって、改善された通信システムが得られ得る。
【0112】
小さい値のAは、出力記号に対する重み分布(すなわち、すべてのIについてのW(I)の分布)、および出力記号についての関連付けの分布(すなわち、すべてのIについてのAL(I)のメンバーシップ)を決定するための適切な分布を使用することによって、連鎖反応符号化において達成され得る。強調すべきことは、復号化プロセスが重み分布および関連付けの選択についての分布にかかわらず適用され得るが、好ましい実施形態は、重み分布および特に最適に近い性能として選択された関連付けの選択についての分布を使用し得ることである。実際、選択した分布の小さな変化によって性能はほんのわずかしか変化し得ないので、多くの分布が良好に機能し得る。
【0113】
1つの好ましい実施形態による分布を決定するための方法論をここで説明する。使用される実際の重み分布は、理想の数学的分布に基づく。理想の重み分布において、重みW(I)は、「理想」の確率分布にしたがって選択される。最小の重みは1であり、最大の重みはKである。ここで、Kは、入力記号数である。理想の分布において、iの値に等しい重みが以下の確率pを用いて選択される:
i=1の場合、p=1/K;および
i=2,...,Kの場合、p=1/(i(i−1))
一旦重みW(I)が選択されると、W(I)個の関連付けられた入力記号のリストAL(I)がランダムに(必要ならば、擬似ランダムに)独立かつ均一に選択され、選択された関連付けの全てが確実に異なるようにする。このように、第1の関連付けは、K個の入力記号からランダムに選択される(各入力記号は、選択される確率が1/Kである)。次に、第2の関連付け(W>1の場合)は、残りのK−1個の記号からランダムに選択される。上記の重み確率分布は、システムが予想通り正確に挙動するならば、正確にK個の出力記号がすべての入力記号を復号および回復するのに十分であり得るという性質を有する。理想の分布に対するこの予想される挙動は、図20において実線で示される。しかし、重みおよび関連付けの選択のランダム性質のために、かつ出力記号の任意のセットが復号化プロセスにおいて使用されるために、プロセスは、必ずしもそのように挙動し得ない。理想の分布に対する実際の挙動の例を図20において点線で示す。このように、理想の重み分布は、実用上はいくらか改変されなければならない。
【0114】
一般に、所定の設定に対する最良のパラメータは、コンピュータシミュレーションによって見つけられ得る。しかし、理想の重み分布に関する簡単な変形例は、効果的なオプションである。この簡単な変形例において、理想の重み分布は、重み1を有する出力記号および大きな重みを有する出力記号の確率を上げることによってわずかに改変されて、K+A個の出力記号が処理される前に復号可能なセットが空になる確率を低減する。重み1を有する出力記号を余分に供給すると、回復プロセスが入力記号の回復の終了近くになるまで、そのプロセスが重み1の出力記号を使い果たす(すなわち、復号可能なセットを空にする)確率を低減する。大きな重みの出力記号を余分に供給すると、回復プロセスの終了近くで、各々まだ回復されない入力記号に対して、その固有である残りの関連付けとして入力記号を有し、少なくとも1つの出力記号が存在する確率を増加する。
【0115】
より詳細には、改変された重み分布は以下の通りである:
i=1の場合、p=n・R1/K;
i=2,...,(K/R2−1)の場合、p=n/(i(i−1)(1−iR2/K));および
i=K/R2,...,Kの場合、p=n・HW(i)
ここで、Kは入力記号数であり、R1およびR2は調節可能なパラメータ、ならびにnはp値のすべての合計が1となるように使用される正規化因子である。
【0116】
HW(i)ならびにR1およびR2としてサンプル値の計算を、添付書類Aにおいて詳細に示す。添付書類Aは、重み分布を実施するプログラムのソースコードリストである。そこで、C++の記号nStartRippleSize、nRippleTargetSizeおよびnSymbolsは、それぞれ上記式のR1、R2およびKに対応する。
【0117】
この改変された分布は、理想の数学的重み分布に同様であり、重み1およびさらに大きな重みを有するさらに多くの出力記号、ならびにそれにしたがって再設計された分布を有する。改変された分布において示されるように、R1は、重み1の記号の複数の増加した確率を決定するのと同様に、重み1の出力記号の初期の割合を決定し、R2は、「より大きな」重みと「それほど大きくない」重みとの間の境界を決定する。
【0118】
R1およびR2に対する良好な選択は、一般にKに依存し、経験的に決定され得る。例えば、R1を1.4×(Kの平方根)に等しくし、R2を2+2×(Kの四乗根)に等しくすると、実用上うまくいく。したがって、K=4000の場合、R1=89およびR2=18に設定するとうまくいく。Kが64000の場合、R1=354およびR2=34に設定するとうまくいく。R1およびR2のより詳細な計算を、添付書類Aに示す。図21は、この分布の予想される挙動が、回復プロセス全体にわたって復号可能なセットを適度に大きくしたままにするので、実際の実行下では、予想される挙動からのランダムなゆらぎは、すべての入力記号が回復される前に復号可能なセットを空にする見込みはない。
【0119】
上記の再構築プロセスは、トルネード符号に対して使用されるものと同様であるが、符号を形成するために使用される異なるプロセスによって、極端に異なる効果を生じる。特に、上記のように、連鎖反応符号化に必要なメモリは、トルネード符号に必要なメモリよりも著しく小さく、種々の状況における連鎖反応符号化の使用の容易さは、いくらかのスピードを犠牲にする可能性はあるが、トルネード符号のそれをはるかに超える。そのプロセスの基礎をなす数学的詳細は、以下により詳細に説明される。
【0120】
(いくつかの連鎖反応符号の性質)
生成され、そしてチャネルを介して送信される出力記号の数は、他の符号化スキームと同様に、連鎖反応符号化を用いても制限されない。なぜなら、キーは、入力記号に対して1対1対応を有する必要がなく、Iの異なる値の数は、入力記号の割合に制限されないからである。したがって、復号可能セットが、入力ファイルが再構築される前に空になる場合でさえ、復号プロセスが失敗しない可能性がある。なぜなら、デコーダが、必要とされるより多くの出力記号を集めて、重み1の出力記号を少なくともさらに1つ得ることができるからである。その重み1の出力記号が受信されると、それは、復号可能なセットに置かれ、連鎖反応効果によって、前に受信された出力記号を重み1に低減させ得るので、それらは入力記号の再構築のために使用され得る。
【0121】
上記の例のほとんどにおいて、入力および出力記号は、同じ数のビットとして符号化し、各出力記号は、1つのパケットに配置される(1パケットは、送信の1単位であり、完全に受信されるか、または完全に損失される)。いくつかの実施形態において、通信システムは、各パケットが数個の出力記号を含むように改変される。次に、出力記号値のサイズは、多くのファクタに基づいて、最初にファイルを入力記号に分割した際の入力記号値のサイズによって決定されるサイズに設定される。符号化プロセスは、実質的に変更されないままである。ただし、出力記号が、各パケットが受信される際に、ひとまとまりで到着することを除く。
【0122】
入力記号および出力記号サイズの設定は、通常、ファイルのサイズおよび出力記号が送信される通信システムによって決定される。例えば、通信システムは、データのビットを規定サイズのパケットにグループ化するか、または他の方法でビットをグループ化する場合、記号サイズの設計は、パケットまたはグループ化サイズから開始される。そこから、設計者は、何個の出力記号を1つのパケットまたはグループで送信し、かつ出力記号サイズを決定し得る。簡単のために、設計者は、おそらく入力記号サイズを出力記号サイズと等しくなるように設定し得るが、入力データが異なる入力記号サイズをより便利にする場合は、それが使用され得る。
【0123】
入力記号サイズを決定する際の別のファクタは、入力記号数Kが受信オーバーヘッドを最小に保つために十分大きくなるように入力記号サイズを選択することである。例えば、K=10,000にすると、平均の受信オーバーヘッドが、5%〜10%の適度なゆらぎを有するようになり、他方K=80,000にすると、平均の受信オーバーヘッドは1%〜2%で、そのゆらぎが非常に小さくなる。例として、K=80,000で1,000,000回の試行を含む1つのテストにおいて、受信オーバーヘッドは、4%を決して超えなかった。
【0124】
上記符号化プロセスは、元のファイルに基づき、出力記号を含むパケットの1ストリームを生成する。出力記号は、ファイルの符号化形態またはより簡潔には符号化ファイルを保持する。ストリーム中の各出力記号は、他のすべての出力記号と独立して生成され、生成され得る出力記号の数には下限および上限がない。キーは、各出力記号に関連付けられる。そのキーおよび入力ファイルの内いくつかの内容は、出力記号の値を決定する。連続生成された出力記号は、連続するキーを有する必要はなく、いくつかのアプリケーションにおいては、キーのシーケンスをランダムに生成するか、またはシーケンスを擬似ランダムに生成することが好ましくあり得る。
【0125】
連鎖反応符号化は、元のファイルがK個の等サイズの入力記号に分割され得、かつ各出力記号値が入力記号値と同じ長さを有する場合に、そのファイルが平均でK+A個の出力記号から回復され得る(ここでAはKに比較して小さい)という性質を有する。例えば、Aは、K=10,000の場合500であり得る。特定の出力記号がランダムまたは擬似ランダムな順序で生成され、かつ送信中の特定の出力記号の損失が任意に仮定されるので、入力ファイルを回復するために必要な出力記号の実際の数にはいくらかの小さなばらつきが存在する。K+A個のパケットの特定の集合パケットが、入力ファイル全体を復号するのに十分でないようないくつかの場合において、受信器が1つ以上の出力パケットのソースからより多くのパケットを集め得る場合は、入力ファイルは、依然として回復可能である。
【0126】
出力記号の数は、Iの解像度によってのみ制限されるので、K+A個より十分に多くの出力記号が生成され得るべきである。例えば、Iが32ビット数である場合、四十億個の異なる出力記号が生成され得る。他方、そのファイルは、K=50,000個の入力記号を含み得る。実用上は、これら四十億個の出力記号のうちのほんのわずかな個数だけが生成および送信され得、そして入力ファイルが、可能の出力記号の非常に小さな割合を用いて回復され得ることがほぼ確実であり、そして入力ファイルが、K個よりわずかに多くの出力記号を用いて回復され得る可能性は非常に高い(入力記号サイズは、出力記号サイズと同じであると仮定する)。
【0127】
各出力記号を生成するために必要な算術演算の平均数は、logKに比例し、そのため、入力ファイルを復号および回復するために必要な算術演算の総数は、KlogKに比例する。上に示すように、入力ファイルを格納するために必要なメモリよりもほんのわずかに多くのメモリを使用する効率的な復号化プロセスが存在する(一般に、約15%多い)。上記の数は、従来から公知の符号化技術と比較して演算および記憶装置において著しい減少を示す。
【0128】
例えば、リード−ソロモン符号は、通信アプリケーションのための標準的な符号である。リード−ソロモン符号を用いると、連鎖反応符号化を用いるように、入力ファイルはK個の入力記号に分割されるが、リード−ソロモン符号におけるそのK個の入力記号は、N個の出力記号に符号化される。ここで、Nは一般に、符号化プロセスが開始する前に固定される。これは、出力記号の不確定数を考慮する本発明と対照的である。
【0129】
出力記号の不確定数を有する1つの利点は、受信者が予想より多くの出力記号を逸する場合、不十分なチャネルによるか、またはいくつかの出力記号がすでに通過した後で開始する受信者により、受信者は、単に少し長く受信し、より多くの出力記号を取り上げ得ることである。別の利点は、受信者が複数のエンコーダから生成される出力記号を集め得るので、各エンコーダは、K個の出力記号のほんの小さな割合だけを提供する必要があり、1つのエンコーダからの記号の数は、どれだけのエンコーダが出力記号を受信者に供給しているかに依存し得ることである。
【0130】
リード−ソロモン符号はまた、符号化および復号化の両方について、連鎖反応符号より実質的に多くの時間を必要とする。例えば、リード−ソロモンを用いて各出力記号を生成するために必要な算術演算の数は、Kに比例する。リード−ソロモン符号を復号化するために必要な算術演算の数は、どの出力記号が受信者に到着したかに依存するが、一般に、そのような演算の数は、K2に比例する。このように、実用上は、KおよびNの許容値は、非常に小さく、数十のオーダー、おそらくわずか数百までのオーダーである。例えば、クロス−インターリーブ(Cross−Interleaved)リード−ソロモン符号は、コンパクトディスク(CD)およびCD−ROM上で使用される。CDの場合、1つの標準的な符号はK=24およびN=28を使用し、別の標準的な符号はK=28およびN=32を使用する。CD−ROMの場合、1つの標準的な符号はK=24およびN=26を使用し、別の標準的な符号はK=43およびN=45を使用する。MPEGファイル(MPEGは、ビデオおよびオーディオストリームのためのファイルフォーマットである)の衛星送信のために使用される標準的なリード−ソロモン符号は、K=188およびN=204を使用し、一般に、このような大きな値は、専用のハードウェアを必要とする。
【0131】
cKlogK時間での符号化およびc’K(logK)2時間での復号化を可能にするリード−ソロモン符号のより高速な実施例が存在することが公知であるが、cおよびc’が過度に大きな定数であるので、Kの非常に大きな値以外全てに対しては、これらの実施例はリード−ソロモン符号の他の実施例よりも遅くなる。すなわち、数千または数万のKの値に対して有効なクロスオーバーポイントが存在する。したがって、クロスオーバーポイントより下のKの値の場合、リード−ソロモン符号の他の実施例は、より高速である。そのより高速な実施例は、クロスオーバーポイントより高いKの値の他の実施例よりも高速であるが、そのより高速な実施例は、Kのそれらの値で連鎖反応符号よりも数桁遅い。
【0132】
その速度制限のために、リード−ソロモン符号に対しては、一般に、小さい値のKおよびNだけが実現可能である。したがって、大きなファイルに関してそれらを使用することにより、そのファイルを多くのサブファイルに分割し、各サブファイルを別々に符号化することを必要とする。そのような分割は、符号の有効性を低減し、送信中のパケット損失を防止する。
【0133】
リード−ソロモン符号の1つの特徴は、K個の異なる出力記号のいずれもが、入力ファイルを復号化するために受信者によって使用され得ることである。おそらく、少なくともK個の出力記号が、任意の入力ファイルを復号化するために必要とされ、したがって、リード−ソロモン符号はこの点で最適であるということが証明できる。なぜなら、Kはまた、入力ファイルを復号化するために必要な出力記号の最大数であるからである。対照的に、連鎖反応符号化は一般に、K+A個のパケット(Aは、適切に選択されたKに比較して小さい)を必要とする。上記のネットワークアプリケーションにおいては、おそらくA個のさらなる記号が必要であるというこの欠点は、速度の利点および途切れなくより大きなファイルを処理する能力によって極めて影を薄くしている。
【0134】
(基本通信システムの変形例)
1つのチャネルに対する本発明による通信システムの実施形態は、上記に詳細に説明された。これらの実施形態の要素は、1つより多いチャネルの有利な使用に拡張し得る。
【0135】
図22〜23は、図1に示すような通信システムを組み込んだ2つのコンピュータの間のシステムを示す。第1の例(図22)は、入力ファイル2210を受信者コンピュータ2220にネットワーク2230を介して送信する送信者コンピュータ2200を有する。第2の例(図23)は、入力ファイル2310を受信者コンピュータ2320(図には1つだけを示す)へ無線チャネル2330を介して放送する送信者コンピュータ2300を有する。ネットワーク2330の代わりに、インターネットのワイヤなどの任意の他の物理的通信媒体を使用し得る。無線チャネル2330は、無線ラジオチャネル、ページャーリンク、衛星リンク、または赤外線リンクなどであり得る。図23に示す構成はまた、1送信者が入力ファイルを多くの受信者に送信する場合、受信者が入力ファイルを多くの送信者から得る場合、または多くの受信者が入力ファイルを多くの送信者から得る場合に、有線または無線媒体とともに使用され得る。
【0136】
上記説明を読めば明らかなように、上記の連鎖反応符号化スキームを使用して、コンピュータネットワーク、インターネット、モバイル無線ネットワークまたは衛星ネットワークなどの損失のある送信媒体を介して、ファイルを所望の性質を有するパケット化されたデータのストリームとして送信し得る。そのような所望の性質の1つは、復号化エージェントが、一旦そのストリームから十分に多くのパケットの任意のセットを受信すると、元のファイルを極めて速やかに再構築し得ることである。連鎖反応符号化はまた、マルチキャストまたは放送設定において1送信エージェントが、そのファイルを複数の受信エージェントに送信する場合などの、多くのエージェントが関与する状況において有用である。
【0137】
連鎖反応符号化スキームはまた、複数の送信エージェントが同じファイルを複数の受信エージェントに送信する状況においても有用である。これにより、ネットワークインフラストラクチャの局所的な失敗に対して向上したロバスト性を可能にし、受信エージェントが受信するパケットの送信エージェントを1送信エージェントから別の送信エージェントに途切れなく変更でき、かつ受信エージェントが同時に1つより多い送信エージェントから受信することによってそれらのダウンロードを高速化できる。
【0138】
1つの局面において、上記の連鎖反応符号化プロセスは、ホログラフィーイメージのデジタル等価物を実行する。ここで、送信の各部分は、送信されるファイルのイメージを含む。ファイルがメガバイトのファイルである場合、ユーザは、ただ送信されるストリームを利用していずれの任意のメガバイトに値するデータ(それに加えていくらかの余分のオーバーヘッド)を得、そのメガバイトから元のメガバイトファイルを復号し得る。
【0139】
連鎖反応符号化は、送信されたストリームからデータをランダムに選択して動作するので、ダウンロードは、スケジュールされる必要はなく、一貫している必要もない。連鎖反応符号化を用いたビデオ・オン・デマンドの利点を考察する。特定のビデオが、受信器と送信器との間で調整することなく特定のチャネル上を連続するストリームとして放送され得る。受信器は、興味のあるビデオ用の放送チャネルに単に同調し、送信がいつ開始したかとか、または放送の損失部分のコピーをどのように得るかを理解する必要なしに、元のビデオを再構築するために十分なデータをキャプチャする。
【0140】
これらの概念を、図24〜25に例示する。図24は、1つの受信器2402が3つの送信器2404(それぞれ、「A」、「B」および「C」で示す)から3つのチャネル2406を介してデータを受信する構成を例示する。この構成を使用して、受信器が利用可能な帯域幅を3倍にし得るか、またはいずれか1つの送信器からファイル全体を得るための十分な長さで利用可能でない送信器を扱い得る。図示のように、各送信器2404は、値のストリームS()を送信する。各S()値は、出力記号B(I)およびキーIを表し、その使用については上記している。例えば、値S(A、nA)は、送信器2402(A)で生成される出力記号のシーケンスで、「nA」番目の出力記号および「nA」番目のキーである。1つの送信器からのキーのシーケンスは、好ましくは他の送信器からのキーのシーケンスと異なっているので、送信器は誤りを重複させない。これは、シーケンスS()が送信器の関数であるという事実によって図24に例示する。
【0141】
送信器2404は、作業を重複させないように同期または調整される必要がないことに留意されたい。実際、調整することなく各送信器は、そのシーケンス上の異なる場所に位置する可能性がある(すなわち、nA≠nB≠nC)。ランダムに選択したK+A個の出力記号を、おそらくG個の余分の出力記号の数束とともに使用して、入力ファイルが回復され得るので、調整されない送信は、重複的である代わりに付加的である。
【0142】
この「情報付加性」を図25に再度例示する。そこで、1つの入力ファイル2502のコピーが複数の送信器2504に提供される(そのうちの2つを図に示す)。送信器2504は、入力ファイル2502の内容から生成された出力記号をチャネル2506を介して受信器2508に独立に送信する。各送信器が記号生成のために異なるセットのキーを使用する場合、そのストリームは、重複的ではなく独立かつ付加的(すなわち、それらは入力記号を回復するために使用される情報プールに付加する)である可能性がある。図示の2つの各送信器は、受信器のデコーダが入力ファイル全体を回復する事ができる前に(K+A)/2個の出力記号を送信することだけが必要であり得る。
【0143】
2つの受信器および2つの送信器を使用して、受信器部2510によって受信される総情報量は、1つのチャネル2506を介して利用可能な情報の4倍の大きさであり得る。情報量は、例えば、送信器が両方の受信器に同じデータを放送する場合は、1つのチャネルの情報の4倍より少なくてもよい。その場合、データが任意のチャネルにおいて損失されると、受信器部2510での情報量は少なくとも2倍、および多くの場合はそれ以上である。送信器が1個の信号しか放送しないが、受信器が異なる時間に見える所にある場合は、各送信器を受信する1つより多い受信器を有する利点があることに留意されたい。図25において、受信器部2510は、図1に示す受信器150、デコーダ155、キー発生器160および入力ファイルリアセンブラ165の機能と同様の機能を実行する。
【0144】
いくつかの実施形態において、入力ファイル2502は、2つのエンコーダを有する1つの計算デバイスにおいて符号化されるので、計算デバイスは、1つの送信器に対して1つの出力を、他方の送信器に対して別の出力を提供し得る。これらの例の他の変形例は、この開示を読む際に明らかとなる。
【0145】
本明細書中に記載の符号化装置および方法はまた、他の通信状況において使用され得、インターネットなどの通信ネットワークに制限されない。例えば、コンパクトディスク技術もイレーズおよび誤り訂正符合を使用して、傷の入ったディスクの問題に対応し、そこに情報を格納する際に連鎖反応符号の使用により利益を受け得る。別の例として、衛星システムは、送信のためのパワー要件をトレードオフするためにイレーズ符号を使用し得、パワーを低減することによってより多くの誤りを意図的に考慮する。このアプリケーションにおいて、連鎖反応符号化は有用であり得る。また、イレーズ符号は、情報記憶の信頼性のためのRAID(独立ディスクの冗長配列)システムを開発するために使用されてきた。したがって、本発明は、符号を使用して損失または誤りの可能性のあるデータの問題に対応する、上記の例などの他のアプリケーションにおける有用性を証明し得る。
【0146】
いくつかの好ましい実施形態において、上記通信プロセスを実行するための命令のセット(またはソフトウェア)が、損失の可能性のある通信媒体を介して通信する2つ以上の多目的計算機に提供される。機械の数は、1送信者および1受信者から任意の数の送信機および/または受信機の範囲であり得る。機械を接続する通信媒体は、有線、光学、または無線などであり得る。上記通信システムは、本記載から明らかとなるべき多くの使用を有する。
【0148】
【表1】
Figure 0003976163
【0149】
【表2】
Figure 0003976163
【0150】
【表3】
Figure 0003976163
【0151】
【表4】
Figure 0003976163
【0152】
【表5】
Figure 0003976163

【図面の簡単な説明】
【図1】 図1は、本発明の1つの実施形態による通信システムのブロック図である。
【図2】 図2は、図1のエンコーダをより詳細に示すブロック図である。
【図3】 図3は、出力記号が関連付けられた入力記号の1セットからどのように生成され得るかの例示である。
【図4】 図4は、図1に示す通信システムにおいて使用され得るような基本デコーダのブロック図である。
【図5】 図5は、別のデコーダのブロック図である。
【図6】 図6は、1セットの出力記号から入力記号を回復するために、図5に示すデコーダなどのデコーダによって使用され得るプロセスのフローチャートである。
【図7】 図7は、受信された出力記号をオーガナイズするために、図5に示す受信オーガナイザなどの受信オーガナイザによって使用され得るプロセスのフローチャートである。
【図8a】 図8aは、受信された出力記号を処理するために、図5に示す回復プロセッサなどの回復プロセッサによって使用され得るプロセスのフローチャートである。
【図8b】 図8bは、図8aのプロセスの変形例の一部分のフローチャートであり、図8bは、保留される処理を含む回復プロセスにおいて実行されるステップを示す。
【図8c】 図8cは、図8aのプロセスの変形例の一部分のフローチャートであり、図8cは、保留される処理を示す。
【図9】 図9は、図2の連想装置をより詳細に示すブロック図である。
【図10】
図10は、出力記号を用いて入力記号の関連付けを速やかに決定するために、図9に示す連想装置などの連想装置によって使用され得る1つのプロセスのフローチャートである。
【図11】
図11は、図2の重みセレクタをより詳細に示すブロック図である。
【図12】
図12は、所定の出力記号の重みを決定するために、図11に示す重みセレクタなどの重みセレクタによって使用され得るプロセスのフローチャートである。
【図13】
図13は、特に効率的である必要のないデコーダのための復号化のプロセスのフローチャートである。
【図14】
図14は、より効率的なデコーダのブロック図である。
【図15】
図15は、図12〜13を参照して説明される復号化よりも効率的に復号化するための、図14のデコーダを使用して実施され得るような復号化のためのプロセスのフローチャートである。
【図16】
図16は、図15の復号化プロセスのための、ドキュメントおよび受信された出力記号の例を例示する図である。
【図17】
図17は、図15に示す復号化プロセス中のデコーダにおけるテーブルの内容を例示する。
【図18】
図18は、図15に示す復号化プロセス中に使用され得るような重みソートテーブルの内容を例示する図である。
【図19】
図19は、図15に示す復号化プロセス中に形成され得る実行リストを例示する。
【図20】 図20は、理想の分布に対する、復号可能なセットサイズ対回復された入力記号数のプロットの形態の回復プロセスの進行を例示する。
【図21】 図21は、ロバストな重み分布に対する、復号可能なセットサイズ対回復された入力記号数のプロットの形態の回復プロセスの進行を例示する。
【図22】 図22は、上記図に例示するようなエンコーダおよびデコーダを使用して、1送信者(送信器)と1受信器との間のポイントツーポイント通信システムの例示である。
【図23】 図23は、上記図に例示するようなエンコーダおよびデコーダを使用して、1送信者と複数の受信器(そのうちの1つだけを図示する)との間の放送通信システムの例示である。
【図24】 図24は、1受信器が、複数の通常独立した送信者から出力記号を受信する場合の、本発明の1つの実施形態による通信システムの例示である。
【図25】 図25は、複数の独立であり得る受信器が、複数の通常独立した送信者から出力記号を受信して、1受信器および/または1送信者だけが使用される場合より少ない時間で入力ファイルを受信する場合の、本発明の1つの実施形態による通信システムの例示である。

Claims (36)

  1. 複数の出力記号を出力する方法であって、該複数の出力記号の各々は出力アルファベットから選択され、該複数の出力記号の各々は入力アルファベットからそれぞれ選択される順列の複数の入力記号を含む入力ファイルがこのような出力記号のセットから回復可能であるようなものであり、該方法は、
    該出力記号の各々を生成するためのキーIを選択するステップであって、該キーがキーアルファベットから選択され、該キーアルファベットにおける可能なキーの該入力ファイルにおける入力記号の数よりもずっとい、ステップと、
    前記キーIとIの所定の関数ALとにしたがって、リストAL(I)を計算するステップであって、該リストAL(I)は前記出力記号B(I)に関連付けられたW(I)個の入力記号を示し、重みWは、前記キーアルファベットに含まれる異なるキーに対して少なくとも2つの正の整数値をとり少なくとも1つのキーに対して1より大きい値をとる、ステップと、
    前記AL(I)によって示されるW(I)個の入力記号と入力記号の所定の関数とにしたがって、出力記号B(I)を生成するステップと
    によって前記複数の出力記号の各々を生成し、さらに、
    生成された出力記号の各々を、データイレーズチャネルを介して送信される単一の出力シーケンスとして出力するステップと、
    を含む方法。
  2. 前記キーIを選択するステップが、ランダム関数または擬似ランダム関数にしたがって該キーIを計算するステップを含む、請求項1に記載の方法。
  3. 前記計算するステップが、キーに関するランダム関数または擬似ランダム関数である重みWにしたがってW(I)を計算するステップを含む、請求項1に記載の方法。
  4. 前記計算するステップが、キーに関するランダム関数または擬似ランダム関数である関数ALにしたがってAL(I)を計算するステップを含む、請求項1に記載の方法。
  5. 前記計算するステップが、
    Iの所定の関数および確率分布にしたがって、重みW(I)を計算するステップであって、該確率分布は前記キーアルファベットに対する重みWの値の出現確率分布であり、該重みWは、前記キーアルファベットに対して少なくとも2つの正の整数値をとり、少なくとも1つのキーに対して1より大きい、ステップと、
    リストAL(I)のリストエントリを計算するステップと、
    W(I)個のリストエントリが計算されるまで、リストAL(I)のリストエントリを計算するステップを繰り返すステップと
    を含む、請求項1に記載の方法。
  6. 前記W(I)を計算するステップが、Wが前記キーアルファベット上の所定の分布を近似するようなW(I)を決定するステップを含む、請求項5に記載の方法。
  7. 前記所定の分布が一様分布である、請求項6に記載の方法。
  8. 前記所定の分布は、W=1が1/Kの確率を有し、ここで、Kが前記入力ファイルにおける入力記号の数であり、そしてW=iがi=2,...,Kに対して1/i(i−1)の確率を有する、請求項6に記載の方法。
  9. 前記所定の分布が、調整可能なパラメータR1およびR2ならびに前記入力ファイル内の前記入力記号数であるKが与えられた場合において、重みW=1がR1/Kに比例する確率を有し、重みW=2から重みW=K/R2−1の範囲の低い重みのクラスにおける重みが1/(W(W−1)(1−W・R2/K))に比例する確率を有し、そしてW=K/R2からW=Kの範囲の高い重みのクラスにおける重みが選択された確率分布を有するような、請求項6に記載の方法。
  10. 前記AL(I)によって示される関連付けられた入力記号の前記所定の関数が、該AL(I)によって示される入力記号についての排他的OR(XOR)である、請求項1に記載の方法。
  11. 前記入力アルファベットおよび前記出力アルファベットが同じアルファベットである、請求項1に記載の方法。
  12. 前記入力アルファベットが2Mi個の記号を含み、各入力記号がMiビットを符号化し、前記出力アルファベットが2Mo個の記号を含み、各出力記号がMoビットを符号化する、請求項1に記載の方法。
  13. キーが該キーに先行するキーよりも1大きい、請求項1に記載の方法。
  14. 各キーIが他の選択されるキーとは独立に選択される、請求項に記載の方法。
  15. 前記AL(I)を計算するステップが、
    前記入力ファイルにおける入力記号の数Kを少なくとも近似的に識別し、かつ重みW(I)を識別するステップと、
    Kより大きいかまたはKに等しい最小素数Pを決定するステップと、
    PがKより大きい場合、P−K個のパディング入力記号で該入力ファイルを少なくとも論理的にパディングするステップと、
    1≦X<Pである第1の整数X、および0≦Y<Pである第2の整数Yを生成するステップと、
    L(I)における第J番目の要素を((Y+(J−1)・X) mod P)に、1からW(I)までの各Jに対して設定するステップと、
    を含む、請求項1に記載の方法。
  16. 記AL(I)における第J番目の要素各Jに対して設定するステップが、
    配列Vにおける第1の要素V[J=0]をYに設定するステップと、
    配列Vにおける第J+1番目の要素V[J]を((V[J−1]+X) mod P)に、1からW(I)−1までの各Jに対して設定するステップと、
    該配列Vを該リストAL(I)として使用するステップと、
    を含む、請求項1に記載の方法。
  17. ソースから目的地にデータイレーズチャネルであるパケット通信チャネルを介してデータを送信する方法であって、該方法が、
    a)送信されるべき該データを入力記号の順列セットとして構成するステップであって、各入力記号は、入力アルファベットから選択され、該データにおける位置を有する、ステップと、
    b)複数の出力記号を生成するステップであって、各出力記号は出力アルファベットから選択され、該複数の出力記号の各出力記号が、以下のステップによって生成され、該ステップは、
    1)キーアルファベットから、該出力記号を生成するためのキーIを選択するステップと、
    2)Iの関数として重みW(I)を決定するステップであって、ここで、重みWは、前記キーアルファベットに含まれる異なるキーに対して少なくとも2つの正の整数値をとり、少なくともいくつかのキーに対しては1より大きい、ステップと、
    3)前記キーIとIの所定の関数ALとにしたがってW(I)個の該入力記号を選択することにより、該出力記号に関連付けられるW(I)個の入力記号のリストAL(I)を形成するステップと、
    4)該関連付けられるW(I)個の入力記号の所定の関数から該出力記号の値B(I)を計算するステップとを含む、ステップと、
    c)該複数の出力記号のうち少なくとも1つを、複数のパケットの各々にパケット化するステップと、
    d)該複数のパケットの各々を該パケット通信チャネルを介して単一の出力シーケンスとして送信するステップと、
    e)該複数のパケットのうちの少なくともいくつかを該目的地で受信するステップと、
    f)該複数の受信されたパケットから該データを復号化するステップと、
    を含む方法。
  18. 前記データを復号化するステップが、
    1)受信された各出力記号を処理するステップであって、
    a)該出力記号B(I)に対する前記キーIを決定するステップと、
    b)該出力記号に関連付けられた前記重みW(I)を決定するステップと、
    c)該出力記号に関連付けられた前記W(I)個の関連付けられた入力記号を決定するステップとを含む、ステップと、
    2)任意の入力記号を復号化するのに十分な情報が受信されたかどうかを判定するステップと、
    3)該受信された情報から復号化され得る入力記号を復号化するステップと、を含む、
    請求項1に記載の方法。
  19. 前記キーIを決定するステップが、前記パケット通信チャネルを介して受信されたパケットにおいて供給されたデータから該キーIを少なくとも部分的に決定するステップを含む、請求項18に記載の方法。
  20. 前記復号化するステップが、
    受信された出力記号を重みにしたがってソートするステップと、
    出力記号を重みにしたがって処理するステップであって、低い重みの記号が高い重みの記号より前に処理される、ステップと、
    を含む、請求項18に記載の方法。
  21. 前記データを復号化するステップが、
    1)受信された各出力記号を処理するステップであって、
    a)該出力記号に関連付けられた前記重みW(I)を決定するステップと、
    b)該出力記号に関連付けられた該W(I)個の関連付けられた入力記号を決定するステップと、
    c)該重みW(I)および該出力記号の該W(I)個の関連付けられた格納の位置とともに、出力記号テーブルにおける該出力記号の値B(I)をソートするステップとを含む、ステップと、
    2)さらなる出力記号を受信し、そしてステップ1)およびそのサブステップにしたがって該さらなる出力記号を処理するステップと、
    3)重み1を有し、かつ使い古された出力記号として表示されない各出力記号、OS1に対して以下のステップを実行するステップであって,
    a)OS1に対応する入力記号の位置について入力記号を計算するステップと、
    b)該出力記号テーブルにおける関連した出力記号を識別するステップであって、関連した出力記号はステップ3)a)で処理された該入力記号の関数である出力記号である、ステップと、
    c)ステップ3)a)で処理された該入力記号から独立となるように、該関連した出力記号を再計算するステップと、
    d)ステップ3)c)で再計算された該出力記号の重みを1だけデクリメントするステップと、
    e)OS1を使い古された出力記号として表記するステップと、を含むステップと、
    4)該入力記号の順列セットが前記目的地において回復されるまで、ステップ1)から3)を繰り返すステップと、
    を含む、請求項1に記載の方法。
  22. 前記表記するステップが、前記使い古した出力記号にゼロの重みを割り当てるステップである、請求項2に記載の方法。
  23. 前記表記するステップが、前記出力記号テーブルから前記使い古した出力記号を除去するステップを含む、請求項2に記載の方法。
  24. 前記パケット化するステップが、複数の出力記号を各パケットにパケット化するステップであり、該方法が、パケット内の出力記号の位置を該出力記号を生成するためのキーの一部として使用するステップをさらに含む、請求項1に記載の方法。
  25. 複数の出力記号を出力する方法であって、該出力記号は出力アルファベットから選択され、入力アルファベットからそれぞれ選択される順列の複数の入力記号を含む入力ファイルが、このような出力記号の1セットから回復可能であるような該出力記号であり、該方法は、
    所定の出力記号に対して、該出力記号と関連付けられるべきW個の関連付けられた入力記号を示すリストALを決定する工程であって、ここでWは正の整数であり、少なくとも2つの出力記号の各々に関連付けられるW異なる値を有し、少なくとも1つの出力記号に対してWは1より大きく、そして可能な出力記号の数は該入力ファイル中の入力記号の数よりもずっと大きい、工程と、
    ALによって示される該W個の関連付けられた入力記号の所定関数から出力記号を生成する工程と
    生成された出力記号の各々を、データイレーズチャネルを介して送信される単一の出力シーケンスとして出力する工程と、
    を含む方法。
  26. 前記所定の出力記号に関連付けられたキーIからWを計算する工程と、
    キーIからALを計算する工程と
    をさらに含む請求項2に記載の方法。
  27. 前記計算工程が確率分布を使用する、請求項2に記載の方法。
  28. 入力ファイルの情報内容を送信する方法であって、該入力ファイルは入力アルファベットからそれぞれ選択される順列の複数の入力記号であり、そして該入力ファイルは出力アルファベットからそれぞれ選択される出力記号の1セットから回復可能であり、
    複数の出力記号を生成する工程であって、該複数の出力記号の出力記号が、
    a)該出力記号と関連付けられるべきW個の関連付けられた入力記号を示すリストALを決定する工程であって、ここでWは正の整数であり、少なくとも2つの出力記号の各々に関連付けられるW異なる値を有し、少なくとも1つの出力記号に対してWは1より大きく、そして可能な出力記号の数は該入力ファイル中の入力記号の数よりもずっと大きい、工程と、
    b)ALによって示される該W個の関連付けられた入力記号の所定関数から出力記号を生成する工程と、
    によって生成される、工程と、
    生成された複数の出力記号の各々を、データイレーズチャネルを介して送信される単一の出力シーケンスとして送信する工程と
    含む方法。
  29. 前記複数の出力記号を生成する工程が、独立する複数の出力記号を複数のソースの各々で生成する工程であり、該複数のソースの各ソースが、ある独立ソースが別の独立ソースの情報出力を完全に重複することなく、該複数のソースの他のソースによって生成されるリストを参照する必要なしに、関連付けられた入力記号のリストを決定するという点で、該複数の出力記号は独立である、工程である、請求項28に記載の方法。
  30. 前記複数の出力記号を複数のチャネル上に分配する工程であって、1つのチャネルによって提供される前記情報内容が他のチャネルの情報内容の完全な重複でない、工程をさらに含む、請求項28に記載の方法。
  31. 前記決定工程が、
    キーアルファベットから、前記出力記号に対して生成されているキーIを選択する工程であって、該キーアルファベットは、前記入力記号の順列セット中の入力記号の数よりもずっと多くのメンバを含む、工程と、
    重みW(I)をIの関数として決定する工程と、
    Iの関数にしたがってW(I)を選択し、出力記号に関連付けられるW(I)個の入力記号のリストAL(I)を形成する工程と
    含む、請求項28に記載の方法。
  32. 前記複数の出力記号を生成する工程が、独立する複数の出力記号を複数のソースの各々で生成する工程であり、ここで該複数は、該複数のソースの各ソースが、1つの独立ソースが別の独立ソースの情報出力を完全に重複することなく、該複数のソースの他のソースによって生成されるキーを参照する必要なしに、キーを選択するという点で独立である、工程である、請求項3に記載の方法。
  33. 前記複数の出力記号を複数のチャネル上に分配する工程であって、1つのチャネルによって提供される前記情報内容が他のチャネルの情報内容の完全な重複でない、工程をさらに含む、請求項3に記載の方法。
  34. ソースから各々がデータイレーズチャネルである複数のチャネルを介してデータを送信する方法であって、
    a)入力記号の順列のセットとして送信されるべき該データを配列する工程と、
    b)該複数のチャネルの各々に対する複数の出力信号を生成する工程であって、各出力記号が以下の工程によって生成される、工程と、
    1)キーアルファベットから、前記出力記号に対して生成されているキーIを選択する工程であって、ここで該キーアルファベットは、該入力記号の順列セット中の入力記号の数よりもずっと多くのメンバを含む、工程と、
    2)重みW(I)をIの関数として決定する工程であって、ここで重みWは、前記キーアルファベットに含まれる異なるキーに対して少なくとも2つの正の整数値をとり、少なくともいくつかのキーに対して1より大きい値をとる、工程と、
    3)Iの関数にしたがって該入力記号のW(I)を選択する工程であり、したがって該出力記号に関連付けられるW(I)個の入力記号のリストAL(I)を形成する工程と、
    4)関連付けられたW(I)個の入力記号の所定の関数から該出力記号の値B(I)を計算する工程
    c)該複数の出力記号の少なくとも1つを複数のパケットの各々へパケット化する工程と、
    )該複数のパケットの各々該複数のチャネルの各々に対する単一の出力シーケンスとして送信する工程であって、ここで該複数のチャネルの少なくとも2つは、異なるキーIに対して生成された出力記号を含むパケットを搬送する、工程と
    を含む方法。
  35. 前記ソースは単一のソースを含み、前記単一のソースに対してキーIに対する値を生成し、そして得られた出力パケットを前記複数のチャネル上で分配し、該複数のチャネルのいずれか2つから受信される情報内容が完全な重複でない、請求項3に記載の方法。
  36. 前記キーIに対する値は、前記複数のチャネルの各々に対して独立に選択され、該複数のチャネルのいずれか2つから受信された情報内容が完全な重複でない、請求項3に記載の方法。
JP2000571567A 1998-09-23 1999-09-17 損失パケットのパケット伝送プロトコル回復方法 Expired - Lifetime JP3976163B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US10147398P 1998-09-23 1998-09-23
US60/101,473 1998-09-23
US09/246,015 1999-02-05
US09/246,015 US6307487B1 (en) 1998-09-23 1999-02-05 Information additive code generator and decoder for communication systems
PCT/US1999/021574 WO2000018017A1 (en) 1998-09-23 1999-09-17 Lost packet recovery method for packet transmission protocols

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2004243000A Division JP3809957B2 (ja) 1998-09-23 2004-08-23 損失パケットのパケット伝送プロトコル回復方法

Publications (2)

Publication Number Publication Date
JP2003501848A JP2003501848A (ja) 2003-01-14
JP3976163B2 true JP3976163B2 (ja) 2007-09-12

Family

ID=26798300

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2000571567A Expired - Lifetime JP3976163B2 (ja) 1998-09-23 1999-09-17 損失パケットのパケット伝送プロトコル回復方法
JP2004243000A Expired - Lifetime JP3809957B2 (ja) 1998-09-23 2004-08-23 損失パケットのパケット伝送プロトコル回復方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2004243000A Expired - Lifetime JP3809957B2 (ja) 1998-09-23 2004-08-23 損失パケットのパケット伝送プロトコル回復方法

Country Status (14)

Country Link
US (7) US6307487B1 (ja)
EP (4) EP2136473B1 (ja)
JP (2) JP3976163B2 (ja)
KR (1) KR100598662B1 (ja)
AT (2) ATE441251T1 (ja)
AU (1) AU767140B2 (ja)
CA (1) CA2345237C (ja)
DE (2) DE69904621T2 (ja)
DK (1) DK2136473T3 (ja)
ES (2) ES2401177T3 (ja)
HK (2) HK1038995B (ja)
IL (1) IL140705A0 (ja)
PT (1) PT2136473E (ja)
WO (1) WO2000018017A1 (ja)

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001189665A (ja) * 1999-09-17 2001-07-10 Digital Fountain 通信システムのための情報付加的群符号発生器およびデコーダ
USRE43741E1 (en) 2002-10-05 2012-10-16 Qualcomm Incorporated Systematic encoding and decoding of chain reaction codes
US8806050B2 (en) 2010-08-10 2014-08-12 Qualcomm Incorporated Manifest file updates for network streaming of coded multimedia data
US8887020B2 (en) 2003-10-06 2014-11-11 Digital Fountain, Inc. Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9136878B2 (en) 2004-05-07 2015-09-15 Digital Fountain, Inc. File download and streaming system
US9136983B2 (en) 2006-02-13 2015-09-15 Digital Fountain, Inc. Streaming and buffering using variable FEC overhead and protection periods
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9225961B2 (en) 2010-05-13 2015-12-29 Qualcomm Incorporated Frame packing for asymmetric stereo video
US9237101B2 (en) 2007-09-12 2016-01-12 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US9236976B2 (en) 2001-12-21 2016-01-12 Digital Fountain, Inc. Multi stage code generator and decoder for communication systems
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
US9246633B2 (en) 1998-09-23 2016-01-26 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9264069B2 (en) 2006-05-10 2016-02-16 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient uses of the communications systems
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling

Families Citing this family (165)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7243285B2 (en) * 1998-09-23 2007-07-10 Digital Fountain, Inc. Systems and methods for broadcasting information additive codes
DE19860531C1 (de) * 1998-12-30 2000-08-10 Univ Muenchen Tech Verfahren zur Übertragung codierter digitaler Signale
FR2799592B1 (fr) * 1999-10-12 2003-09-26 Thomson Csf Procede de construction et de codage simple et systematique de codes ldpc
US7062648B2 (en) * 2000-02-18 2006-06-13 Avamar Technologies, Inc. System and method for redundant array network storage
US6826711B2 (en) 2000-02-18 2004-11-30 Avamar Technologies, Inc. System and method for data protection with multidimensional parity
US7194504B2 (en) * 2000-02-18 2007-03-20 Avamar Technologies, Inc. System and method for representing and maintaining redundant data sets utilizing DNA transmission and transcription techniques
US6704730B2 (en) 2000-02-18 2004-03-09 Avamar Technologies, Inc. Hash file system and method for use in a commonality factoring system
US8335994B2 (en) * 2000-02-25 2012-12-18 Salmon Alagnak Llc Method and apparatus for providing content to a computing device
US8131867B1 (en) 2000-06-01 2012-03-06 Qualcomm Incorporated Dynamic layer congestion control for multicast transport
US6772217B1 (en) * 2000-08-23 2004-08-03 International Business Machines Corporation Internet backbone bandwidth enhancement by initiating an additional data stream when individual bandwidth are approximately equal to the backbone limit
US6486803B1 (en) * 2000-09-22 2002-11-26 Digital Fountain, Inc. On demand encoding with a window
US6411223B1 (en) * 2000-10-18 2002-06-25 Digital Fountain, Inc. Generating high weight encoding symbols using a basis
US6810398B2 (en) * 2000-11-06 2004-10-26 Avamar Technologies, Inc. System and method for unorchestrated determination of data sequences using sticky byte factoring to determine breakpoints in digital sequences
US7072971B2 (en) 2000-11-13 2006-07-04 Digital Foundation, Inc. Scheduling of multiple files for serving on a server
US7240358B2 (en) * 2000-12-08 2007-07-03 Digital Fountain, Inc. Methods and apparatus for scheduling, serving, receiving media-on demand for clients, servers arranged according to constraints on resources
US7095729B2 (en) * 2000-12-22 2006-08-22 Intel Corporation Method for multimedia communication over packet channels
US7277950B1 (en) * 2000-12-29 2007-10-02 Swarmcast, Inc. Packet transfer mechanism over a peer to peer network
US20020129159A1 (en) 2001-03-09 2002-09-12 Michael Luby Multi-output packet server with independent streams
US20030055915A1 (en) * 2001-09-14 2003-03-20 Ngo Kin Cuc Method and apparatus for transmitting data over a network
JP3808769B2 (ja) * 2001-12-27 2006-08-16 三菱電機株式会社 Ldpc符号用検査行列生成方法
WO2003073621A1 (fr) * 2002-02-28 2003-09-04 Mitsubishi Denki Kabushiki Kaisha Procede de generation de matrices d'inspection de code ldpc et dispositif de generation de matrices d'inspection
US6677864B2 (en) 2002-04-18 2004-01-13 Telefonaktiebolaget L.M. Ericsson Method for multicast over wireless networks
EP2278718B1 (en) * 2002-06-11 2013-12-18 Digital Fountain, Inc. Decoding of chain reaction codes through inactivation
JP4120461B2 (ja) * 2002-07-12 2008-07-16 住友電気工業株式会社 伝送データ生成方法及び伝送データ生成装置
US7032166B2 (en) 2002-12-03 2006-04-18 Massachusetts Institute Of Technology Method and apparatus for protecting data
WO2006033652A1 (en) * 2003-02-14 2006-03-30 Digital Fountain, Inc. Systems and methods for broadcasting information additive codes
JP4337375B2 (ja) * 2003-03-14 2009-09-30 株式会社デンソー 情報配信サーバ、受信端末、情報配信システム、予約端末、および予約サーバ
US20040199669A1 (en) * 2003-04-04 2004-10-07 Riggs Nicholas Dale Apparatus and method for efficiently and securely transferring files over a communications network
US7367514B2 (en) 2003-07-03 2008-05-06 Hand Held Products, Inc. Reprogramming system including reprogramming symbol
KR101035219B1 (ko) 2003-10-08 2011-05-18 디지털 파운튼, 인크. Fec-기반 신뢰도 제어 프로토콜
US7266716B2 (en) * 2003-10-23 2007-09-04 Hewlett-Packard Development Company, L.P. Method and recovery of data using erasure coded data from stripe blocks
US7458003B2 (en) * 2003-12-01 2008-11-25 Qualcomm Incorporated Low-complexity, capacity-achieving code for communication systems
EP1706946A4 (en) * 2003-12-01 2006-10-18 Digital Fountain Inc PROCESSING DATA AGAINST ERASURES USING SUB-SYMBOL CODES
US7912159B2 (en) * 2004-01-26 2011-03-22 Hewlett-Packard Development Company, L.P. Enhanced denoising system
JP4506185B2 (ja) * 2004-02-06 2010-07-21 ソニー株式会社 受信装置および方法、並びにプログラム
FR2867925B1 (fr) * 2004-03-22 2006-05-19 Canon Kk Codage de canal adapte aux erreurs rafale
US7240236B2 (en) * 2004-03-23 2007-07-03 Archivas, Inc. Fixed content distributed data storage using permutation ring encoding
US7546342B2 (en) * 2004-05-14 2009-06-09 Microsoft Corporation Distributed hosting of web content using partial replication
US7203871B2 (en) * 2004-06-03 2007-04-10 Cisco Technology, Inc. Arrangement in a network node for secure storage and retrieval of encoded data distributed among multiple network nodes
US20060037037A1 (en) * 2004-06-14 2006-02-16 Tony Miranz System and method for providing virtual video on demand
DE102004063950B4 (de) * 2004-08-07 2009-02-19 Tropf, Hermann Kanalcodiervorrichtung
WO2006020826A2 (en) * 2004-08-11 2006-02-23 Digital Fountain, Inc. Method and apparatus for fast encoding of data symbols according to half-weight codes
JP2008511233A (ja) * 2004-08-27 2008-04-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ マルチメディアコンテンツの配信方法
US7533324B2 (en) * 2004-09-22 2009-05-12 Kencast, Inc. System, method and apparatus for FEC encoding and decoding
US7594154B2 (en) 2004-11-17 2009-09-22 Ramakrishna Vedantham Encoding and decoding modules with forward error correction
KR100703271B1 (ko) * 2004-11-23 2007-04-03 삼성전자주식회사 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치
US8270901B2 (en) * 2004-12-17 2012-09-18 Martin E. Hellman Dropout-resistant media broadcasting system
US7865917B2 (en) * 2004-12-17 2011-01-04 Martin E Hellman Security enhanced tiered subscription broadcast system
US8627354B2 (en) 2004-12-17 2014-01-07 Martin E. Hellman Tiered subscription broadcast system
US7474631B2 (en) * 2005-01-13 2009-01-06 International Business Machines Corporation On-demand group communication services with quality of service (QoS) guarantees
US7739580B1 (en) 2005-02-17 2010-06-15 Kencast, Inc. System, method and apparatus for reducing blockage losses on information distribution networks
US7191215B2 (en) * 2005-03-09 2007-03-13 Marquee, Inc. Method and system for providing instantaneous media-on-demand services by transmitting contents in pieces from client machines
US8904463B2 (en) 2005-03-09 2014-12-02 Vudu, Inc. Live video broadcasting on distributed networks
US9176955B2 (en) 2005-03-09 2015-11-03 Vvond, Inc. Method and apparatus for sharing media files among network nodes
US7698451B2 (en) 2005-03-09 2010-04-13 Vudu, Inc. Method and apparatus for instant playback of a movie title
US20090025046A1 (en) * 2005-03-09 2009-01-22 Wond, Llc Hybrid architecture for media services
US7937379B2 (en) 2005-03-09 2011-05-03 Vudu, Inc. Fragmentation of a file for instant access
US20080022343A1 (en) * 2006-07-24 2008-01-24 Vvond, Inc. Multiple audio streams
US8219635B2 (en) 2005-03-09 2012-07-10 Vudu, Inc. Continuous data feeding in a distributed environment
US20090019468A1 (en) * 2005-03-09 2009-01-15 Vvond, Llc Access control of media services over an open network
US8122324B2 (en) 2005-03-31 2012-02-21 Mitsubishi Electric Corporation Error correction coding apparatus
JP4814315B2 (ja) * 2005-05-04 2011-11-16 シーメンス エンタープライズ コミュニケーションズ ゲゼルシャフト ミット ベシュレンクテル ハフツング ウント コンパニー コマンディートゲゼルシャフト 訂正記号に割り当てられたインデックスを求める方法および装置
US20060265511A1 (en) * 2005-05-20 2006-11-23 Riggs Nicholas D Apparatus and method for efficiently and securely transferring files over a communications network
US7676735B2 (en) * 2005-06-10 2010-03-09 Digital Fountain Inc. Forward error-correcting (FEC) coding and streaming
US8099511B1 (en) 2005-06-11 2012-01-17 Vudu, Inc. Instantaneous media-on-demand
US7840178B2 (en) * 2005-07-12 2010-11-23 Martin E. Hellman FM broadcast system competitive with satellite radio
US8223643B1 (en) 2005-09-06 2012-07-17 Kencast, Inc. Method for packet-level FEC encoding a stream of source packets using shifted interleaving
WO2007029449A1 (ja) * 2005-09-07 2007-03-15 Nec Corporation データ伝送システム
JP4546387B2 (ja) * 2005-11-17 2010-09-15 富士通株式会社 バックアップシステム、方法及びプログラム
US20070133691A1 (en) * 2005-11-29 2007-06-14 Docomo Communications Laboratories Usa, Inc. Method and apparatus for layered rateless coding
US7613979B1 (en) * 2005-12-07 2009-11-03 Sony Computer Entertainment Inc. Network communication protocol for large scale distribution of streaming content
US7596673B2 (en) * 2005-12-08 2009-09-29 Sony Corporation Failure tolerant data storage
KR100922960B1 (ko) * 2005-12-27 2009-10-22 삼성전자주식회사 다중 안테나들을 이용하는 무선 통신 시스템에서 전송 효율증대를 위한 신호 송수신 방법 및 그 시스템
JP4718340B2 (ja) * 2006-02-02 2011-07-06 富士通株式会社 ストレージシステム、制御方法及びプログラム
US7480848B2 (en) * 2006-02-10 2009-01-20 The Directv Group, Inc. Methods and apparatus to select tornado error correction parameters
US8065582B2 (en) * 2006-02-13 2011-11-22 Digital Fountain, Inc. FEC streaming with aggregation of concurrent streams for FEC computation
JP4808054B2 (ja) * 2006-03-17 2011-11-02 富士通株式会社 データ転送方法及び,これを適用する通信システム及びプログラム
JP4696008B2 (ja) * 2006-03-20 2011-06-08 富士通株式会社 Ip送信装置およびip送信方法
US7979771B2 (en) * 2006-04-04 2011-07-12 Permabit Technology Corporation Erasure coding technique for scalable and fault tolerant storage system
EP3336707A1 (en) 2006-05-05 2018-06-20 Hybir Inc. Group based complete and incremental computer file backup system, process and apparatus
US20070276951A1 (en) * 2006-05-25 2007-11-29 Nicholas Dale Riggs Apparatus and method for efficiently and securely transferring files over a communications network
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US20100211690A1 (en) * 2009-02-13 2010-08-19 Digital Fountain, Inc. Block partitioning for a data stream
WO2008003094A2 (en) 2006-06-29 2008-01-03 Digital Fountain, Inc. Efficient representation of symbol-based transformations with application to encoding and decoding of forward error correction codes
US7760699B1 (en) 2006-08-05 2010-07-20 Sandeep Malik System and method for efficient transmission of electronic information
US8296812B1 (en) 2006-09-01 2012-10-23 Vudu, Inc. Streaming video using erasure encoding
US7924761B1 (en) 2006-09-28 2011-04-12 Rockwell Collins, Inc. Method and apparatus for multihop network FEC encoding
US8707139B2 (en) 2006-10-18 2014-04-22 Kencast, Inc. Systems, methods, apparatus, and computer program products for providing forward error correction with low latency
US8117514B2 (en) 2006-11-13 2012-02-14 Qualcomm Incorporated Methods and apparatus for encoding data in a communication network
WO2008073144A1 (en) 2006-12-14 2008-06-19 Thomson Licensing Rateless encoding in communication systems
EP2103024B1 (en) * 2006-12-14 2018-04-25 Thomson Licensing Modulation indication method for communication systems
CN101558593A (zh) * 2006-12-14 2009-10-14 汤姆逊许可证公司 通信系统的带自适应调制的arq
WO2008073103A1 (en) * 2006-12-14 2008-06-19 Thomson Licensing Rateless codes decoding method for communication systems
JP5153784B2 (ja) * 2006-12-14 2013-02-27 トムソン ライセンシング 通信システムにおける連結符号化/復号
US7839851B2 (en) * 2006-12-22 2010-11-23 Ntt Docomo, Inc. Method and apparatus for opportunistic multicasting with coded scheduling in wireless networks
TW200828328A (en) * 2006-12-28 2008-07-01 Genesys Logic Inc Method of improving accessing reliability of flash memory
WO2008082572A1 (en) * 2006-12-29 2008-07-10 Interdigital Technology Corporation Method and apparatus for transmitting and receiving multimedia broadcast multicast services via a dedicated downlink carrier
RU2009130391A (ru) * 2007-01-08 2011-02-20 Интердиджитал Текнолоджи Корпорейшн (Us) Способ и устройство для мультивещания с информацией обратной связи
US20080205229A1 (en) * 2007-02-26 2008-08-28 Yung-Chih Li Method of identifying optical disc
US7949778B2 (en) * 2007-03-27 2011-05-24 Kencast, Inc. Systems, methods, apparatus and computer program products for providing packet-level FEC with higher throughput using user datagram protocol (UDP)
CN101296055B (zh) * 2007-04-29 2013-01-09 华为技术有限公司 数据包收发方法及装置
JP4487211B2 (ja) * 2007-06-01 2010-06-23 カシオ計算機株式会社 接続制御装置及び、ネットワーク接続制御プログラム
US20090161797A1 (en) * 2007-06-08 2009-06-25 Cowles Philip R Satellite detection of automatic identification system signals
US7876865B2 (en) * 2007-06-08 2011-01-25 COM DEV International Ltd System and method for decoding automatic identification system signals
US8635309B2 (en) 2007-08-09 2014-01-21 Hand Held Products, Inc. Methods and apparatus to change a feature set on data collection devices
EP2066038A1 (en) 2007-11-30 2009-06-03 Deutsche Telekom AG Method and system for constructing and decoding rateless codes with partial information
US8442070B1 (en) * 2008-02-01 2013-05-14 Hobnob, Inc. Fractional threshold encoding and aggregation
US8418034B2 (en) * 2008-02-08 2013-04-09 Kencast, Inc. Systems, methods, apparatus and computer program products for highly reliable file delivery using compound and braided FEC encoding and decoding
EP2288991B8 (en) * 2008-05-05 2018-02-28 Amplidata NV Method of storing a data set in a distributed storage system, distributed storage system and computer program product for use with said method
RU2010150108A (ru) * 2008-05-07 2012-06-20 Диджитал Фаунтин, Инк. (Us) Быстрое переключение канала и защита потоковой передачи высокого качества по широковещательному каналу
KR101590633B1 (ko) * 2008-11-11 2016-02-02 삼성전자주식회사 슬라이스 단위로 분할된 동영상을 처리하는 동영상 부호화/복호화장치 및 동영상 부호화/복호화방법
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US20100263007A1 (en) * 2009-04-09 2010-10-14 Jinyun Zhang Method and Apparatus for Increasing Quality of IPTV Transmission
US9298722B2 (en) 2009-07-16 2016-03-29 Novell, Inc. Optimal sequential (de)compression of digital data
KR20110011357A (ko) * 2009-07-28 2011-02-08 삼성전자주식회사 비트의 순서를 변경한 데이터의 부호화, 복호화 방법 및 장치
US9015564B2 (en) 2009-08-19 2015-04-21 Qualcomm Incorporated Content delivery system with allocation of source data and repair data among HTTP servers
US8136018B2 (en) * 2009-08-24 2012-03-13 Sony Computer Entertainment Inc. Network communication protocol for large scale distribution of streaming content
US20110096828A1 (en) 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
US8780788B2 (en) 2009-09-25 2014-07-15 Com Dev International Ltd. Systems and methods for decoding automatic identification system signals
US9136981B2 (en) 2010-03-03 2015-09-15 Qualcomm Incorporated Block aggregation of objects in a communication system
US8782734B2 (en) * 2010-03-10 2014-07-15 Novell, Inc. Semantic controls on data storage and access
KR101615384B1 (ko) * 2010-04-05 2016-04-25 삼성전자주식회사 통신 시스템에서의 채널 부호화 장치 및 방법
US8832103B2 (en) 2010-04-13 2014-09-09 Novell, Inc. Relevancy filter for new data based on underlying files
CN101826940A (zh) * 2010-04-19 2010-09-08 中兴通讯股份有限公司 一种对喷泉码中预译码集优化的方法和系统
US9331774B2 (en) 2010-06-09 2016-05-03 Exactearth Ltd. Systems and methods for segmenting a satellite field of view for detecting radio frequency signals
WO2011160256A1 (en) 2010-06-24 2011-12-29 Metrologic Instruments, Inc. Distinctive notice for different symbology information
US9589164B2 (en) 2010-06-24 2017-03-07 Metrologic Instruments, Inc. Distinctive notice for different symbology information
US9485546B2 (en) 2010-06-29 2016-11-01 Qualcomm Incorporated Signaling video samples for trick mode video representations
KR101005927B1 (ko) * 2010-07-05 2011-01-07 펜타시큐리티시스템 주식회사 웹 어플리케이션 공격 탐지 방법
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US20120047201A1 (en) 2010-08-20 2012-02-23 Nikhil Jain Apparatus and method of acquiring or distributing content
US8517269B2 (en) 2010-11-09 2013-08-27 Hand Held Products, Inc. Using a user'S application to configure user scanner
US8693501B2 (en) 2010-11-23 2014-04-08 The Chinese University Of Hong Kong Subset coding for communication systems
US9088888B2 (en) * 2010-12-10 2015-07-21 Mitsubishi Electric Research Laboratories, Inc. Secure wireless communication using rate-adaptive codes
EP2993585B1 (en) 2010-12-27 2017-06-28 Amplidata NV Distributed object storage system comprising performance optimizations
JP2012151849A (ja) 2011-01-19 2012-08-09 Nhn Business Platform Corp P2p基盤のストリーミングサービスのデータストリームをパケット化するシステムおよび方法
US20170201271A9 (en) * 2011-06-21 2017-07-13 Centre National D'etudes Spatiales Method for encoding data in bursts
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
KR101933465B1 (ko) 2011-10-13 2019-01-11 삼성전자주식회사 이동 통신 시스템에서 패킷 송수신 장치 및 방법
KR101591238B1 (ko) 2011-11-01 2016-02-18 퀄컴 인코포레이티드 Http 서버들 사이의 소스 데이터 및 리페어 데이터의 할당에 의한 컨텐츠 전달 시스템
US9130750B2 (en) * 2011-12-16 2015-09-08 Hughes Network Systems, Llc System and method for efficient retransmission over a satelline network
US9287897B2 (en) * 2012-01-30 2016-03-15 Broadcom Corporation Systematic rate-independent Reed-Solomon erasure codes
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
US9015567B2 (en) 2012-04-12 2015-04-21 Com Dev International Ltd. Methods and systems for consistency checking and anomaly detection in automatic identification system signal data
US8608053B2 (en) 2012-04-30 2013-12-17 Honeywell International Inc. Mobile communication terminal configured to display multi-symbol decodable indicia
EP2847973B1 (en) * 2012-05-03 2016-11-16 Telefonaktiebolaget LM Ericsson (publ) Centralized key management in embms
US9413494B2 (en) 2013-01-17 2016-08-09 Qualcomm Incorporated FEC-based reliable transport control protocols for multipath streaming
US9311640B2 (en) 2014-02-11 2016-04-12 Digimarc Corporation Methods and arrangements for smartphone payments and transactions
US10511331B2 (en) * 2013-08-16 2019-12-17 Nippon Telegraph And Telephone Corporation Channel decoding method and channel decoding device
EP2863566B1 (en) 2013-10-18 2020-09-02 Université de Nantes Method and apparatus for reconstructing a data block
TWI523465B (zh) * 2013-12-24 2016-02-21 財團法人工業技術研究院 檔案傳輸系統和方法
US9596218B1 (en) * 2014-03-03 2017-03-14 Google Inc. Methods and systems of encrypting messages using rateless codes
US10412151B2 (en) 2015-01-26 2019-09-10 Huawei Technologies Co., Ltd. Method and system for on-demand file repair
US10903858B2 (en) 2015-05-27 2021-01-26 Quantum Corporation Dynamically variable error correcting code (ECC) system with hybrid rateless reed-solomon ECCs
US10009152B2 (en) * 2016-03-04 2018-06-26 Huawei Technologies Co., Ltd. System and method for rate-less multiple access
US10089189B2 (en) 2016-04-15 2018-10-02 Motorola Solutions, Inc. Devices and methods for receiving a data file in a communication system
TWI602409B (zh) 2016-08-15 2017-10-11 國立交通大學 資料傳輸方法與系統
WO2019010524A1 (en) * 2017-07-10 2019-01-17 The University Of Sydney METHOD AND APPARATUS FOR IMAGING A SCENE
US10417127B2 (en) * 2017-07-13 2019-09-17 International Business Machines Corporation Selective downstream cache processing for data access
US10476524B2 (en) 2017-11-27 2019-11-12 Goke Us Research Laboratory Method and apparatus for efficient data decoding
US10419026B2 (en) 2017-11-27 2019-09-17 Goke Us Research Laboratory Method and apparatus for efficient data decoding
US10771191B2 (en) 2018-03-09 2020-09-08 Kencast, Inc. System for highly reliable file delivery of using continuous FEC encoding/decoding
US10911013B2 (en) 2018-07-05 2021-02-02 Comcast Cable Communications, Llc Dynamic audio normalization process

Family Cites Families (550)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3909721A (en) * 1972-01-31 1975-09-30 Signatron Signal processing system
US4365338A (en) * 1980-06-27 1982-12-21 Harris Corporation Technique for high rate digital transmission over a dynamic dispersive channel
US4965825A (en) 1981-11-03 1990-10-23 The Personalized Mass Media Corporation Signal processing apparatus and methods
US4589112A (en) * 1984-01-26 1986-05-13 International Business Machines Corporation System for multiple error detection with single and double bit error correction
US4901319A (en) 1988-03-18 1990-02-13 General Electric Company Transmission system with adaptive interleaving
GB8815978D0 (en) 1988-07-05 1988-08-10 British Telecomm Method & apparatus for encoding decoding & transmitting data in compressed form
US5136592A (en) 1989-06-28 1992-08-04 Digital Equipment Corporation Error detection and correction system for long burst errors
US5421031A (en) 1989-08-23 1995-05-30 Delta Beta Pty. Ltd. Program transmission optimisation
US7594250B2 (en) 1992-04-02 2009-09-22 Debey Henry C Method and system of program transmission optimization using a redundant transmission sequence
US5701582A (en) 1989-08-23 1997-12-23 Delta Beta Pty. Ltd. Method and apparatus for efficient transmissions of programs
US5329369A (en) 1990-06-01 1994-07-12 Thomson Consumer Electronics, Inc. Asymmetric picture compression
US5455823A (en) 1990-11-06 1995-10-03 Radio Satellite Corporation Integrated communications terminal
US5164963A (en) 1990-11-07 1992-11-17 At&T Bell Laboratories Coding for digital transmission
US5465318A (en) 1991-03-28 1995-11-07 Kurzweil Applied Intelligence, Inc. Method for generating a speech recognition model for a non-vocabulary utterance
US5379297A (en) 1992-04-09 1995-01-03 Network Equipment Technologies, Inc. Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode
EP0543070A1 (en) * 1991-11-21 1993-05-26 International Business Machines Corporation Coding system and method using quaternary codes
US5371532A (en) 1992-05-15 1994-12-06 Bell Communications Research, Inc. Communications architecture and method for distributing information services
US5425050A (en) 1992-10-23 1995-06-13 Massachusetts Institute Of Technology Television transmission system using spread spectrum and orthogonal frequency-division multiplex
US5372532A (en) 1993-01-26 1994-12-13 Robertson, Jr.; George W. Swivel head cap connector
EP0613249A1 (en) * 1993-02-12 1994-08-31 Altera Corporation Custom look-up table with reduced number of architecture bits
DE4316297C1 (de) 1993-05-14 1994-04-07 Fraunhofer Ges Forschung Frequenzanalyseverfahren
AU665716B2 (en) 1993-07-05 1996-01-11 Mitsubishi Denki Kabushiki Kaisha A transmitter for encoding error correction codes and a receiver for decoding error correction codes on a transmission frame
US5590405A (en) 1993-10-29 1996-12-31 Lucent Technologies Inc. Communication technique employing variable information transmission
JP2576776B2 (ja) 1993-11-10 1997-01-29 日本電気株式会社 パケット伝送方法・パケット伝送装置
US5517508A (en) 1994-01-26 1996-05-14 Sony Corporation Method and apparatus for detection and error correction of packetized digital data
CA2140850C (en) 1994-02-24 1999-09-21 Howard Paul Katseff Networked system for display of multimedia presentations
US5566208A (en) 1994-03-17 1996-10-15 Philips Electronics North America Corp. Encoder buffer having an effective size which varies automatically with the channel bit-rate
US5432787A (en) 1994-03-24 1995-07-11 Loral Aerospace Corporation Packet data transmission system with adaptive data recovery method
FR2720503B1 (fr) * 1994-05-26 1996-06-21 Commissariat Energie Atomique Système de caractérisation thermomécanique de matériaux utilisant un dispositif de chauffage rapide par induction.
US5757415A (en) 1994-05-26 1998-05-26 Sony Corporation On-demand data transmission by dividing input data into blocks and each block into sub-blocks such that the sub-blocks are re-arranged for storage to data storage means
US5802394A (en) 1994-06-06 1998-09-01 Starlight Networks, Inc. Method for accessing one or more streams in a video storage system using multiple queues and maintaining continuity thereof
US5739864A (en) 1994-08-24 1998-04-14 Macrovision Corporation Apparatus for inserting blanked formatted fingerprint data (source ID, time/date) in to a video signal
US5568614A (en) 1994-07-29 1996-10-22 International Business Machines Corporation Data streaming between peer subsystems of a computer system
US5668948A (en) 1994-09-08 1997-09-16 International Business Machines Corporation Media streamer with control node enabling same isochronous streams to appear simultaneously at output ports or different streams to appear simultaneously at output ports
US5926205A (en) 1994-10-19 1999-07-20 Imedia Corporation Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program
US5659614A (en) 1994-11-28 1997-08-19 Bailey, Iii; John E. Method and system for creating and storing a backup copy of file data stored on a computer
US5617541A (en) * 1994-12-21 1997-04-01 International Computer Science Institute System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets
JP3614907B2 (ja) 1994-12-28 2005-01-26 株式会社東芝 データ再送制御方法及びデータ再送制御システム
US6079042A (en) 1995-04-27 2000-06-20 The Trustees Of The Stevens Institute Of Technology High integrity transport for time critical multimedia networking applications
US5835165A (en) 1995-06-07 1998-11-10 Lsi Logic Corporation Reduction of false locking code words in concatenated decoders
US5805825A (en) 1995-07-26 1998-09-08 Intel Corporation Method for semi-reliable, unidirectional broadcast information services
US6079041A (en) 1995-08-04 2000-06-20 Sanyo Electric Co., Ltd. Digital modulation circuit and digital demodulation circuit
US5754563A (en) 1995-09-11 1998-05-19 Ecc Technologies, Inc. Byte-parallel system for implementing reed-solomon error-correcting codes
KR0170298B1 (ko) 1995-10-10 1999-04-15 김광호 디지탈 비디오 테이프의 기록 방법
US5751336A (en) 1995-10-12 1998-05-12 International Business Machines Corporation Permutation based pyramid block transmission scheme for broadcasting in video-on-demand storage systems
JP3305183B2 (ja) 1996-01-12 2002-07-22 株式会社東芝 ディジタル放送受信端末装置
US6012159A (en) 1996-01-17 2000-01-04 Kencast, Inc. Method and system for error-free data transfer
US5852565A (en) 1996-01-30 1998-12-22 Demografx Temporal and resolution layering in advanced television
US5936659A (en) 1996-01-31 1999-08-10 Telcordia Technologies, Inc. Method for video delivery using pyramid broadcasting
US5903775A (en) 1996-06-06 1999-05-11 International Business Machines Corporation Method for the sequential transmission of compressed video information at varying data rates
US5745504A (en) 1996-06-25 1998-04-28 Telefonaktiebolaget Lm Ericsson Bit error resilient variable length code
US5940863A (en) 1996-07-26 1999-08-17 Zenith Electronics Corporation Apparatus for de-rotating and de-interleaving data including plural memory devices and plural modulo memory address generators
US5936949A (en) 1996-09-05 1999-08-10 Netro Corporation Wireless ATM metropolitan area network
KR100261706B1 (ko) 1996-12-17 2000-07-15 가나이 쓰도무 디지탈방송신호의 수신장치와 수신 및 기록재생장치
US6011590A (en) 1997-01-03 2000-01-04 Ncr Corporation Method of transmitting compressed information to minimize buffer space
US6044485A (en) * 1997-01-03 2000-03-28 Ericsson Inc. Transmitter method and transmission system using adaptive coding based on channel characteristics
US6141053A (en) 1997-01-03 2000-10-31 Saukkonen; Jukka I. Method of optimizing bandwidth for transmitting compressed video data streams
EP0854650A3 (en) 1997-01-17 2001-05-02 NOKIA TECHNOLOGY GmbH Method for addressing a service in digital video broadcasting
US5983383A (en) 1997-01-17 1999-11-09 Qualcom Incorporated Method and apparatus for transmitting and receiving concatenated code data
US5946357A (en) 1997-01-17 1999-08-31 Telefonaktiebolaget L M Ericsson Apparatus, and associated method, for transmitting and receiving a multi-stage, encoded and interleaved digital communication signal
US6014706A (en) 1997-01-30 2000-01-11 Microsoft Corporation Methods and apparatus for implementing control functions in a streamed video display system
KR20000075982A (ko) 1997-03-07 2000-12-26 다카노 야스아키 디지탈 방송 수신기 및 디스플레이 장치
US6115420A (en) 1997-03-14 2000-09-05 Microsoft Corporation Digital video signal encoder and encoding method
DE19716011A1 (de) 1997-04-17 1998-10-22 Abb Research Ltd Verfahren und Vorrichtung zur Informationsübertragung über Stromversorgungsleitungen
US6226259B1 (en) * 1997-04-29 2001-05-01 Canon Kabushiki Kaisha Device and method for transmitting information device and method for processing information
US5970098A (en) 1997-05-02 1999-10-19 Globespan Technologies, Inc. Multilevel encoder
US5844636A (en) 1997-05-13 1998-12-01 Hughes Electronics Corporation Method and apparatus for receiving and recording digital packet data
EP0933768A4 (en) 1997-05-19 2000-10-04 Sanyo Electric Co DIGITAL MODULATION AND DEMODULATION
JP4110593B2 (ja) * 1997-05-19 2008-07-02 ソニー株式会社 信号記録方法及び信号記録装置
JPH1141211A (ja) 1997-05-19 1999-02-12 Sanyo Electric Co Ltd ディジタル変調回路と変調方法、ディジタル復調回路と復調方法
US6128649A (en) 1997-06-02 2000-10-03 Nortel Networks Limited Dynamic selection of media streams for display
US6081907A (en) 1997-06-09 2000-06-27 Microsoft Corporation Data delivery system and method for delivering data and redundant information over a unidirectional network
US5917852A (en) 1997-06-11 1999-06-29 L-3 Communications Corporation Data scrambling system and method and communications system incorporating same
KR100240869B1 (ko) 1997-06-25 2000-01-15 윤종용 이중 다이버서티 시스템을 위한 데이터 전송 방법
US6175944B1 (en) 1997-07-15 2001-01-16 Lucent Technologies Inc. Methods and apparatus for packetizing data for transmission through an erasure broadcast channel
US5933056A (en) * 1997-07-15 1999-08-03 Exar Corporation Single pole current mode common-mode feedback circuit
US6047069A (en) 1997-07-17 2000-04-04 Hewlett-Packard Company Method and apparatus for preserving error correction capabilities during data encryption/decryption
US6904110B2 (en) 1997-07-31 2005-06-07 Francois Trans Channel equalization system and method
US6178536B1 (en) 1997-08-14 2001-01-23 International Business Machines Corporation Coding scheme for file backup and systems based thereon
FR2767940A1 (fr) 1997-08-29 1999-02-26 Canon Kk Procedes et dispositifs de codage et de decodage et appareils les mettant en oeuvre
EP0903955A1 (en) 1997-09-04 1999-03-24 STMicroelectronics S.r.l. Modular architecture PET decoder for ATM networks
US6088330A (en) 1997-09-09 2000-07-11 Bruck; Joshua Reliable array of distributed computing nodes
US6134596A (en) 1997-09-18 2000-10-17 Microsoft Corporation Continuous media file server system and method for scheduling network resources to play multiple files having different data transmission rates
US6272658B1 (en) 1997-10-27 2001-08-07 Kencast, Inc. Method and system for reliable broadcasting of data files and streams
US6081918A (en) 1997-11-06 2000-06-27 Spielman; Daniel A. Loss resilient code with cascading series of redundant layers
US6195777B1 (en) 1997-11-06 2001-02-27 Compaq Computer Corporation Loss resilient code with double heavy tailed series of redundant layers
US6073250A (en) 1997-11-06 2000-06-06 Luby; Michael G. Loss resilient decoding technique
US6163870A (en) 1997-11-06 2000-12-19 Compaq Computer Corporation Message encoding with irregular graphing
US6081909A (en) 1997-11-06 2000-06-27 Digital Equipment Corporation Irregularly graphed encoding technique
JP3472115B2 (ja) 1997-11-25 2003-12-02 Kddi株式会社 マルチチャンネルを用いるビデオデータ伝送方法及びその装置
US5870412A (en) 1997-12-12 1999-02-09 3Com Corporation Forward error correction system for packet based real time media
US6243846B1 (en) 1997-12-12 2001-06-05 3Com Corporation Forward error correction system for packet based data and real time media, using cross-wise parity calculation
US6849803B1 (en) * 1998-01-15 2005-02-01 Arlington Industries, Inc. Electrical connector
US6097320A (en) * 1998-01-20 2000-08-01 Silicon Systems, Inc. Encoder/decoder system with suppressed error propagation
US6226301B1 (en) 1998-02-19 2001-05-01 Nokia Mobile Phones Ltd Method and apparatus for segmentation and assembly of data frames for retransmission in a telecommunications system
US6141788A (en) 1998-03-13 2000-10-31 Lucent Technologies Inc. Method and apparatus for forward error correction in packet networks
US6278716B1 (en) 1998-03-23 2001-08-21 University Of Massachusetts Multicast with proactive forward error correction
US6459811B1 (en) 1998-04-02 2002-10-01 Sarnoff Corporation Bursty data transmission of compressed video data
US6185265B1 (en) 1998-04-07 2001-02-06 Worldspace Management Corp. System for time division multiplexing broadcast channels with R-1/2 or R-3/4 convolutional coding for satellite transmission via on-board baseband processing payload or transparent payload
US6067646A (en) 1998-04-17 2000-05-23 Ameritech Corporation Method and system for adaptive interleaving
US6018359A (en) 1998-04-24 2000-01-25 Massachusetts Institute Of Technology System and method for multicast video-on-demand delivery system
US6445717B1 (en) 1998-05-01 2002-09-03 Niwot Networks, Inc. System for recovering lost information in a data stream
US6421387B1 (en) 1998-05-15 2002-07-16 North Carolina State University Methods and systems for forward error correction based loss recovery for interactive video transmission
US6937618B1 (en) * 1998-05-20 2005-08-30 Sony Corporation Separating device and method and signal receiving device and method
US6333926B1 (en) 1998-08-11 2001-12-25 Nortel Networks Limited Multiple user CDMA basestation modem
BR9913277A (pt) 1998-09-04 2001-09-25 At & T Corp Codificação de bloco-espaço e codificação de canal combinado em um arranjo de multi-antenas
US6415326B1 (en) 1998-09-15 2002-07-02 Microsoft Corporation Timeline correlation between multiple timeline-altered media streams
US6320520B1 (en) 1998-09-23 2001-11-20 Digital Fountain Information additive group code generator and decoder for communications systems
US7243285B2 (en) 1998-09-23 2007-07-10 Digital Fountain, Inc. Systems and methods for broadcasting information additive codes
US7068729B2 (en) * 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US6704370B1 (en) 1998-10-09 2004-03-09 Nortel Networks Limited Interleaving methodology and apparatus for CDMA
IT1303735B1 (it) 1998-11-11 2001-02-23 Falorni Italia Farmaceutici S Acidi ialuronici reticolati e loro usi medici.
US6408128B1 (en) 1998-11-12 2002-06-18 Max Abecassis Replaying with supplementary information a segment of a video
US6483736B2 (en) 1998-11-16 2002-11-19 Matrix Semiconductor, Inc. Vertically stacked field programmable nonvolatile memory and method of fabrication
JP2000151426A (ja) 1998-11-17 2000-05-30 Toshiba Corp インターリーブ・デインターリーブ回路
US6166544A (en) 1998-11-25 2000-12-26 General Electric Company MR imaging system with interactive image contrast control
US6876623B1 (en) * 1998-12-02 2005-04-05 Agere Systems Inc. Tuning scheme for code division multiplex broadcasting system
AU1966699A (en) 1998-12-03 2000-07-03 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Apparatus and method for transmitting information and apparatus and method for receiving information
US6637031B1 (en) * 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
US6496980B1 (en) 1998-12-07 2002-12-17 Intel Corporation Method of providing replay on demand for streaming digital multimedia
US6223324B1 (en) * 1999-01-05 2001-04-24 Agere Systems Guardian Corp. Multiple program unequal error protection for digital audio broadcasting and other applications
JP3926499B2 (ja) 1999-01-22 2007-06-06 株式会社日立国際電気 畳み込み符号軟判定復号方式の受信装置
US6618451B1 (en) 1999-02-13 2003-09-09 Altocom Inc Efficient reduced state maximum likelihood sequence estimator
US6041001A (en) 1999-02-25 2000-03-21 Lexar Media, Inc. Method of increasing data reliability of a flash memory device without compromising compatibility
WO2000052600A1 (fr) 1999-03-03 2000-09-08 Sony Corporation Emetteur, recepteur, systeme d'emetteur/recepteur, procede de transmission et procede de reception
US6785323B1 (en) 1999-11-22 2004-08-31 Ipr Licensing, Inc. Variable rate coding for forward link
US6466698B1 (en) 1999-03-25 2002-10-15 The United States Of America As Represented By The Secretary Of The Navy Efficient embedded image and video compression system using lifted wavelets
US6535920B1 (en) 1999-04-06 2003-03-18 Microsoft Corporation Analyzing, indexing and seeking of streaming information
US6609223B1 (en) 1999-04-06 2003-08-19 Kencast, Inc. Method for packet-level fec encoding, in which on a source packet-by-source packet basis, the error correction contributions of a source packet to a plurality of wildcard packets are computed, and the source packet is transmitted thereafter
JP3256517B2 (ja) 1999-04-06 2002-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーション 符号化回路、回路、パリティ生成方法及び記憶媒体
US6804202B1 (en) 1999-04-08 2004-10-12 Lg Information And Communications, Ltd. Radio protocol for mobile communication system and method
US7885340B2 (en) 1999-04-27 2011-02-08 Realnetworks, Inc. System and method for generating multiple synchronized encoded representations of media data
FI113124B (fi) 1999-04-29 2004-02-27 Nokia Corp Tiedonsiirto
DE60028120T2 (de) 1999-05-06 2006-12-28 Sony Corp. Datenverarbeitungsverfahren und -gerät, Datenwiedergabeverfahren und -gerät, Datenaufzeichnungsmedien
KR100416996B1 (ko) * 1999-05-10 2004-02-05 삼성전자주식회사 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 데이터 송수신 장치 및 방법
US6229824B1 (en) 1999-05-26 2001-05-08 Xm Satellite Radio Inc. Method and apparatus for concatenated convolutional endcoding and interleaving
US6154452A (en) 1999-05-26 2000-11-28 Xm Satellite Radio Inc. Method and apparatus for continuous cross-channel interleaving
AU5140200A (en) 1999-05-26 2000-12-18 Enounce, Incorporated Method and apparatus for controlling time-scale modification during multi-media broadcasts
JP2000353969A (ja) 1999-06-11 2000-12-19 Sony Corp デジタル音声放送の受信機
US6577599B1 (en) 1999-06-30 2003-06-10 Sun Microsystems, Inc. Small-scale reliable multicasting
IL141800A0 (en) * 1999-07-06 2002-03-10 Samsung Electronics Co Ltd Rate matching device and method for a data communication system
US6643332B1 (en) 1999-07-09 2003-11-04 Lsi Logic Corporation Method and apparatus for multi-level coding of digital signals
US6279072B1 (en) 1999-07-22 2001-08-21 Micron Technology, Inc. Reconfigurable memory with selectable error correction storage
JP3451221B2 (ja) 1999-07-22 2003-09-29 日本無線株式会社 誤り訂正符号化装置、方法及び媒体、並びに誤り訂正符号復号装置、方法及び媒体
US6453440B1 (en) 1999-08-04 2002-09-17 Sun Microsystems, Inc. System and method for detecting double-bit errors and for correcting errors due to component failures
JP2001060934A (ja) 1999-08-20 2001-03-06 Matsushita Electric Ind Co Ltd Ofdm通信装置
US6430233B1 (en) * 1999-08-30 2002-08-06 Hughes Electronics Corporation Single-LNB satellite data receiver
US6332163B1 (en) 1999-09-01 2001-12-18 Accenture, Llp Method for providing communication services over a computer network system
JP4284774B2 (ja) 1999-09-07 2009-06-24 ソニー株式会社 送信装置、受信装置、通信システム、送信方法及び通信方法
WO2001024474A1 (en) 1999-09-27 2001-04-05 Koninklijke Philips Electronics N.V. Partitioning of file for emulating streaming
JP2001094625A (ja) 1999-09-27 2001-04-06 Canon Inc データ通信装置、データ通信方法及び記憶媒体
US7529806B1 (en) 1999-11-04 2009-05-05 Koninklijke Philips Electronics N.V. Partitioning of MP3 content file for emulating streaming
US20050160272A1 (en) 1999-10-28 2005-07-21 Timecertain, Llc System and method for providing trusted time in content of digital data files
US6523147B1 (en) 1999-11-11 2003-02-18 Ibiquity Digital Corporation Method and apparatus for forward error correction coding for an AM in-band on-channel digital audio broadcasting system
US6678855B1 (en) 1999-12-02 2004-01-13 Microsoft Corporation Selecting K in a data transmission carousel using (N,K) forward error correction
US6748441B1 (en) 1999-12-02 2004-06-08 Microsoft Corporation Data carousel receiving and caching
US6798791B1 (en) 1999-12-16 2004-09-28 Agere Systems Inc Cluster frame synchronization scheme for a satellite digital audio radio system
US6487692B1 (en) 1999-12-21 2002-11-26 Lsi Logic Corporation Reed-Solomon decoder
US6965636B1 (en) 2000-02-01 2005-11-15 2Wire, Inc. System and method for block error correction in packet-based digital communications
US20020009137A1 (en) * 2000-02-01 2002-01-24 Nelson John E. Three-dimensional video broadcasting system
IL140504A0 (en) 2000-02-03 2002-02-10 Bandwiz Inc Broadcast system
WO2001058130A2 (en) 2000-02-03 2001-08-09 Bandwiz, Inc. Coding method
US7304990B2 (en) 2000-02-03 2007-12-04 Bandwiz Inc. Method of encoding and transmitting data over a communication medium through division and segmentation
JP2001251287A (ja) 2000-02-24 2001-09-14 Geneticware Corp Ltd ハードウエア保護内部秘匿鍵及び可変パスコードを利用する機密データ伝送方法
US6765866B1 (en) 2000-02-29 2004-07-20 Mosaid Technologies, Inc. Link aggregation
DE10009443A1 (de) 2000-02-29 2001-08-30 Philips Corp Intellectual Pty Empfänger und Verfahren zum Detektieren und Dekodieren eines DQPSK-modulierten und kanalkodierten Empfangssignals
US6384750B1 (en) * 2000-03-23 2002-05-07 Mosaid Technologies, Inc. Multi-stage lookup for translating between signals of different bit lengths
US6510177B1 (en) * 2000-03-24 2003-01-21 Microsoft Corporation System and method for layered video coding enhancement
JP2001274776A (ja) 2000-03-24 2001-10-05 Toshiba Corp 情報データ伝送システムとその送信装置及び受信装置
AU2001244007A1 (en) 2000-03-31 2001-10-15 Ted Szymanski Transmitter, receiver, and coding scheme to increase data rate and decrease bit error rate of an optical data link
US6473010B1 (en) 2000-04-04 2002-10-29 Marvell International, Ltd. Method and apparatus for determining error correction code failure rate for iterative decoding algorithms
US8572646B2 (en) 2000-04-07 2013-10-29 Visible World Inc. System and method for simultaneous broadcast for personalized messages
DE60121930T2 (de) 2000-04-08 2007-07-26 Sun Microsystems, Inc., Santa Clara Methode zum streamen einer einzelnen medienspur zu mehreren clients
US6631172B1 (en) 2000-05-01 2003-10-07 Lucent Technologies Inc. Efficient list decoding of Reed-Solomon codes for message recovery in the presence of high noise levels
US6742154B1 (en) * 2000-05-25 2004-05-25 Ciena Corporation Forward error correction codes for digital optical network optimization
US6738942B1 (en) 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
US6694476B1 (en) 2000-06-02 2004-02-17 Vitesse Semiconductor Corporation Reed-solomon encoder and decoder
GB2366159B (en) 2000-08-10 2003-10-08 Mitel Corp Combination reed-solomon and turbo coding
US6834342B2 (en) 2000-08-16 2004-12-21 Eecad, Inc. Method and system for secure communication over unstable public connections
KR100447162B1 (ko) 2000-08-19 2004-09-04 엘지전자 주식회사 래디오 링크 콘트롤(rlc)에서 프로토콜 데이터 유닛(pdu) 정보의 길이 지시자(li) 처리방법
JP2002073625A (ja) 2000-08-24 2002-03-12 Nippon Hoso Kyokai <Nhk> 放送番組に同期した情報提供の方法、サーバ及び媒体
US7340664B2 (en) 2000-09-20 2008-03-04 Lsi Logic Corporation Single engine turbo decoder with single frame size buffer for interleaving/deinterleaving
US7031257B1 (en) 2000-09-22 2006-04-18 Lucent Technologies Inc. Radio link protocol (RLP)/point-to-point protocol (PPP) design that passes corrupted data and error location information among layers in a wireless data transmission protocol
US7151754B1 (en) 2000-09-22 2006-12-19 Lucent Technologies Inc. Complete user datagram protocol (CUDP) for wireless multimedia packet networks using improved packet level forward error correction (FEC) coding
US6486803B1 (en) 2000-09-22 2002-11-26 Digital Fountain, Inc. On demand encoding with a window
US7490344B2 (en) 2000-09-29 2009-02-10 Visible World, Inc. System and method for seamless switching
US6411223B1 (en) * 2000-10-18 2002-06-25 Digital Fountain, Inc. Generating high weight encoding symbols using a basis
US7613183B1 (en) 2000-10-31 2009-11-03 Foundry Networks, Inc. System and method for router data aggregation and delivery
US6694478B1 (en) 2000-11-07 2004-02-17 Agere Systems Inc. Low delay channel codes for correcting bursts of lost packets
US6732325B1 (en) 2000-11-08 2004-05-04 Digeo, Inc. Error-correction with limited working storage
US20020133247A1 (en) 2000-11-11 2002-09-19 Smith Robert D. System and method for seamlessly switching between media streams
US7072971B2 (en) 2000-11-13 2006-07-04 Digital Foundation, Inc. Scheduling of multiple files for serving on a server
US7240358B2 (en) 2000-12-08 2007-07-03 Digital Fountain, Inc. Methods and apparatus for scheduling, serving, receiving media-on demand for clients, servers arranged according to constraints on resources
ATE464740T1 (de) 2000-12-15 2010-04-15 British Telecomm Übertagung von ton- und/oder bildmaterial
JP4087706B2 (ja) 2000-12-15 2008-05-21 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー オーディオおよび、またはビデオマテリアルの送信および受信
US6850736B2 (en) * 2000-12-21 2005-02-01 Tropian, Inc. Method and apparatus for reception quality indication in wireless communication
US7143433B1 (en) 2000-12-27 2006-11-28 Infovalve Computing Inc. Video distribution system using dynamic segmenting of video data files
US20020085013A1 (en) 2000-12-29 2002-07-04 Lippincott Louis A. Scan synchronized dual frame buffer graphics subsystem
NO315887B1 (no) 2001-01-04 2003-11-03 Fast Search & Transfer As Fremgangsmater ved overforing og soking av videoinformasjon
US8595340B2 (en) 2001-01-18 2013-11-26 Yahoo! Inc. Method and system for managing digital content, including streaming media
DE10103387A1 (de) 2001-01-26 2002-08-01 Thorsten Nordhoff Windkraftanlage mit einer Einrichtung zur Hindernisbefeuerung bzw. Nachtkennzeichnung
FI118830B (fi) 2001-02-08 2008-03-31 Nokia Corp Tietovirran toisto
US6868083B2 (en) 2001-02-16 2005-03-15 Hewlett-Packard Development Company, L.P. Method and system for packet communication employing path diversity
US20020129159A1 (en) 2001-03-09 2002-09-12 Michael Luby Multi-output packet server with independent streams
KR100464360B1 (ko) 2001-03-30 2005-01-03 삼성전자주식회사 고속 패킷 데이터 전송 이동통신시스템에서 패킷 데이터채널에 대한 효율적인 에너지 분배 장치 및 방법
US20020143953A1 (en) 2001-04-03 2002-10-03 International Business Machines Corporation Automatic affinity within networks performing workload balancing
US6785836B2 (en) 2001-04-11 2004-08-31 Broadcom Corporation In-place data transformation for fault-tolerant disk storage systems
US6820221B2 (en) 2001-04-13 2004-11-16 Hewlett-Packard Development Company, L.P. System and method for detecting process and network failures in a distributed system
US7010052B2 (en) 2001-04-16 2006-03-07 The Ohio University Apparatus and method of CTCM encoding and decoding for a digital communication system
US7035468B2 (en) * 2001-04-20 2006-04-25 Front Porch Digital Inc. Methods and apparatus for archiving, indexing and accessing audio and video data
TWI246841B (en) 2001-04-22 2006-01-01 Koninkl Philips Electronics Nv Digital transmission system and method for transmitting digital signals
US20020191116A1 (en) 2001-04-24 2002-12-19 Damien Kessler System and data format for providing seamless stream switching in a digital video recorder
US6497479B1 (en) 2001-04-27 2002-12-24 Hewlett-Packard Company Higher organic inks with good reliability and drytime
US7962482B2 (en) 2001-05-16 2011-06-14 Pandora Media, Inc. Methods and systems for utilizing contextual feedback to generate and modify playlists
US6633856B2 (en) 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US7076478B2 (en) 2001-06-26 2006-07-11 Microsoft Corporation Wrapper playlists on streaming media services
US6745364B2 (en) * 2001-06-28 2004-06-01 Microsoft Corporation Negotiated/dynamic error correction for streamed media
JP2003018568A (ja) 2001-06-29 2003-01-17 Matsushita Electric Ind Co Ltd 再生システム、サーバ装置及び再生装置
US6895547B2 (en) 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
US6928603B1 (en) 2001-07-19 2005-08-09 Adaptix, Inc. System and method for interference mitigation using adaptive forward error correction in a wireless RF data transmission system
US6961890B2 (en) 2001-08-16 2005-11-01 Hewlett-Packard Development Company, L.P. Dynamic variable-length error correction code
US7110412B2 (en) 2001-09-18 2006-09-19 Sbc Technology Resources, Inc. Method and system to transport high-quality video signals
FI115418B (fi) 2001-09-20 2005-04-29 Oplayo Oy Adaptiivinen mediavirta
US6990624B2 (en) 2001-10-12 2006-01-24 Agere Systems Inc. High speed syndrome-based FEC encoder and decoder and system using same
US7480703B2 (en) 2001-11-09 2009-01-20 Sony Corporation System, method, and computer program product for remotely determining the configuration of a multi-media content user based on response of the user
US7363354B2 (en) 2001-11-29 2008-04-22 Nokia Corporation System and method for identifying and accessing network services
US7003712B2 (en) 2001-11-29 2006-02-21 Emin Martinian Apparatus and method for adaptive, multimode decoding
JP2003174489A (ja) 2001-12-05 2003-06-20 Ntt Docomo Inc ストリーミング配信装置、ストリーミング配信方法
FI114527B (fi) 2002-01-23 2004-10-29 Nokia Corp Kuvakehysten ryhmittely videokoodauksessa
KR100931915B1 (ko) 2002-01-23 2009-12-15 노키아 코포레이션 비디오 코딩시 이미지 프레임들의 그루핑
WO2003065683A1 (en) 2002-01-30 2003-08-07 Koninklijke Philips Electronics N.V. Streaming multimedia data over a network having a variable bandwidth
AU2003211057A1 (en) 2002-02-15 2003-09-09 Digital Fountain, Inc. System and method for reliably communicating the content of a live data stream
JP4126928B2 (ja) 2002-02-28 2008-07-30 日本電気株式会社 プロキシサーバ及びプロキシ制御プログラム
JP4116470B2 (ja) 2002-03-06 2008-07-09 ヒューレット・パッカード・カンパニー メディア・ストリーミング配信システム
FR2837332A1 (fr) 2002-03-15 2003-09-19 Thomson Licensing Sa Dispositif et procede d'insertion de codes de correction d'erreurs et de reconstitution de flux de donnees, et produits correspondants
WO2003090391A1 (en) * 2002-04-15 2003-10-30 Nokia Corporation Rlp logical layer of a communication station
US6677864B2 (en) 2002-04-18 2004-01-13 Telefonaktiebolaget L.M. Ericsson Method for multicast over wireless networks
JP3689063B2 (ja) 2002-04-19 2005-08-31 松下電器産業株式会社 データ受信装置及びデータ配信システム
JP3629008B2 (ja) 2002-04-19 2005-03-16 松下電器産業株式会社 データ受信装置及びデータ配信システム
WO2003092305A1 (en) 2002-04-25 2003-11-06 Sharp Kabushiki Kaisha Image encodder, image decoder, record medium, and image recorder
US20030204602A1 (en) 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US7177658B2 (en) 2002-05-06 2007-02-13 Qualcomm, Incorporated Multi-media broadcast and multicast service (MBMS) in a wireless communications system
US7200388B2 (en) 2002-05-31 2007-04-03 Nokia Corporation Fragmented delivery of multimedia
US9240810B2 (en) * 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
AU2002368007A1 (en) 2002-06-11 2003-12-22 Telefonaktiebolaget Lm Ericsson (Publ) Generation of mixed media streams
EP2278718B1 (en) 2002-06-11 2013-12-18 Digital Fountain, Inc. Decoding of chain reaction codes through inactivation
US6956875B2 (en) 2002-06-19 2005-10-18 Atlinks Usa, Inc. Technique for communicating variable bit rate data over a constant bit rate link
JP4154569B2 (ja) 2002-07-10 2008-09-24 日本電気株式会社 画像圧縮伸長装置
JP4120461B2 (ja) 2002-07-12 2008-07-16 住友電気工業株式会社 伝送データ生成方法及び伝送データ生成装置
CA2492751C (en) 2002-07-16 2012-06-12 Nokia Corporation A method for random access and gradual picture refresh in video coding
CN1685639A (zh) 2002-07-31 2005-10-19 夏普株式会社 数据通信装置、其间歇通信方法、记载该方法的计算机程序及记录该计算机程序的记录介质
JP2004070712A (ja) 2002-08-07 2004-03-04 Nippon Telegr & Teleph Corp <Ntt> データ配信方法,データ配信システム,分割配信データ受信方法,分割配信データ受信装置および分割配信データ受信プログラム
DK1529389T3 (en) 2002-08-13 2016-05-30 Nokia Technologies Oy Symbol Interleaving
US6985459B2 (en) * 2002-08-21 2006-01-10 Qualcomm Incorporated Early transmission and playout of packets in wireless communication systems
WO2004030273A1 (ja) 2002-09-27 2004-04-08 Fujitsu Limited データ配信方法、システム、伝送方法及びプログラム
JP3534742B1 (ja) 2002-10-03 2004-06-07 株式会社エヌ・ティ・ティ・ドコモ 動画像復号方法、動画像復号装置、及び動画像復号プログラム
EP2355360B1 (en) * 2002-10-05 2020-08-05 QUALCOMM Incorporated Systematic encoding and decoding of chain reaction codes
JP2004135013A (ja) 2002-10-10 2004-04-30 Matsushita Electric Ind Co Ltd 伝送装置及び伝送方法
FI116816B (fi) 2002-10-14 2006-02-28 Nokia Corp Median suoratoisto
US8320301B2 (en) * 2002-10-25 2012-11-27 Qualcomm Incorporated MIMO WLAN system
US7289451B2 (en) * 2002-10-25 2007-10-30 Telefonaktiebolaget Lm Ericsson (Publ) Delay trading between communication links
JP4460455B2 (ja) 2002-10-30 2010-05-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 適応的順方向誤り制御スキーム
JP2004165922A (ja) 2002-11-12 2004-06-10 Sony Corp 情報処理装置および方法、並びにプログラム
KR101044213B1 (ko) 2002-11-18 2011-06-29 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 비디오 전송 방법
GB0226872D0 (en) 2002-11-18 2002-12-24 British Telecomm Video transmission
KR100502609B1 (ko) 2002-11-21 2005-07-20 한국전자통신연구원 Ldpc 코드를 이용한 부호화기 및 부호화 방법
US7086718B2 (en) 2002-11-23 2006-08-08 Silverbrook Research Pty Ltd Thermal ink jet printhead with high nozzle areal density
JP2004192140A (ja) 2002-12-09 2004-07-08 Sony Corp データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
JP2004193992A (ja) 2002-12-11 2004-07-08 Sony Corp 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム
US8135073B2 (en) * 2002-12-19 2012-03-13 Trident Microsystems (Far East) Ltd Enhancing video images depending on prior image enhancements
US7164882B2 (en) * 2002-12-24 2007-01-16 Poltorak Alexander I Apparatus and method for facilitating a purchase using information provided on a media playing device
US7293222B2 (en) 2003-01-29 2007-11-06 Digital Fountain, Inc. Systems and processes for fast encoding of hamming codes
US7525994B2 (en) 2003-01-30 2009-04-28 Avaya Inc. Packet data flow identification for multiplexing
US7756002B2 (en) 2003-01-30 2010-07-13 Texas Instruments Incorporated Time-frequency interleaved orthogonal frequency division multiplexing ultra wide band physical layer
US7231404B2 (en) 2003-01-31 2007-06-12 Nokia Corporation Datacast file transmission with meta-data retention
US7062272B2 (en) 2003-02-18 2006-06-13 Qualcomm Incorporated Method and apparatus to track count of broadcast content recipients in a wireless telephone network
EP1455504B1 (en) 2003-03-07 2014-11-12 Samsung Electronics Co., Ltd. Apparatus and method for processing audio signal and computer readable recording medium storing computer program for the method
JP4173755B2 (ja) 2003-03-24 2008-10-29 富士通株式会社 データ伝送サーバ
US7610487B2 (en) 2003-03-27 2009-10-27 Microsoft Corporation Human input security codes
US7266147B2 (en) 2003-03-31 2007-09-04 Sharp Laboratories Of America, Inc. Hypothetical reference decoder
US7408486B2 (en) 2003-04-21 2008-08-05 Qbit Corporation System and method for using a microlet-based modem
JP2004343701A (ja) 2003-04-21 2004-12-02 Matsushita Electric Ind Co Ltd データ受信再生装置、データ受信再生方法及びデータ受信再生処理プログラム
US20050041736A1 (en) 2003-05-07 2005-02-24 Bernie Butler-Smith Stereoscopic television signal processing method, transmission system and viewer enhancements
KR100492567B1 (ko) 2003-05-13 2005-06-03 엘지전자 주식회사 이동통신 시스템의 http 기반 비디오 스트리밍 장치및 방법
US7113773B2 (en) 2003-05-16 2006-09-26 Qualcomm Incorporated Reliable reception of broadcast/multicast content
JP2004348824A (ja) 2003-05-21 2004-12-09 Toshiba Corp Eccエンコード方法、eccエンコード装置
US8161116B2 (en) 2003-05-23 2012-04-17 Kirusa, Inc. Method and system for communicating a data file over a network
JP2004362099A (ja) 2003-06-03 2004-12-24 Sony Corp サーバ装置、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US20060177019A1 (en) 2003-06-07 2006-08-10 Vladimir Portnykh Apparatus and method for organization and interpretation of multimedia data on a recording medium
KR101003413B1 (ko) 2003-06-12 2010-12-23 엘지전자 주식회사 이동통신 단말기의 전송데이터 압축/해제 방법
US7603689B2 (en) 2003-06-13 2009-10-13 Microsoft Corporation Fast start-up for digital video streams
RU2265960C2 (ru) 2003-06-16 2005-12-10 Федеральное государственное унитарное предприятие "Калужский научно-исследовательский институт телемеханических устройств" Способ передачи информации с использованием адаптивного перемежения
US7391717B2 (en) * 2003-06-30 2008-06-24 Microsoft Corporation Streaming of variable bit rate multimedia content
US20050004997A1 (en) 2003-07-01 2005-01-06 Nokia Corporation Progressive downloading of timed multimedia content
US8149939B2 (en) * 2003-07-07 2012-04-03 Samsung Electronics Co., Ltd. System of robust DTV signal transmissions that legacy DTV receivers will disregard
US7254754B2 (en) 2003-07-14 2007-08-07 International Business Machines Corporation Raid 3+3
KR100532450B1 (ko) 2003-07-16 2005-11-30 삼성전자주식회사 에러에 대해 강인한 특성을 가지는 데이터 기록 방법,이에 적합한 데이터 재생 방법, 그리고 이에 적합한 장치들
US20050028067A1 (en) 2003-07-31 2005-02-03 Weirauch Charles R. Data with multiple sets of error correction codes
US8694869B2 (en) 2003-08-21 2014-04-08 QUALCIMM Incorporated Methods for forward error correction coding above a radio link control layer and related apparatus
CN1871804B (zh) 2003-08-21 2010-09-01 高通股份有限公司 广播/多播内容的外部编码方法及其相关装置
IL157886A0 (en) 2003-09-11 2009-02-11 Bamboo Mediacasting Ltd Secure multicast transmission
IL157885A0 (en) 2003-09-11 2004-03-28 Bamboo Mediacasting Ltd Iterative forward error correction
JP4183586B2 (ja) 2003-09-12 2008-11-19 三洋電機株式会社 映像表示装置
WO2005029237A2 (en) 2003-09-15 2005-03-31 Digital Networks North America, Inc. Method and system for adaptive transcoding and transrating in a video network
KR100608715B1 (ko) 2003-09-27 2006-08-04 엘지전자 주식회사 QoS보장형 멀티미디어 스트리밍 서비스 시스템 및 방법
EP1521373B1 (en) 2003-09-30 2006-08-23 Telefonaktiebolaget LM Ericsson (publ) In-place data deinterleaving
US7559004B1 (en) 2003-10-01 2009-07-07 Sandisk Corporation Dynamic redundant area configuration in a non-volatile memory system
EP2722995B1 (en) 2003-10-06 2023-04-19 QUALCOMM Incorporated Soft-Decision Decoding of Multi-Stage Chain Reaction Codes
US7614071B2 (en) * 2003-10-10 2009-11-03 Microsoft Corporation Architecture for distributed sending of media data
US7516232B2 (en) * 2003-10-10 2009-04-07 Microsoft Corporation Media organization for distributed sending of media data
CN100555213C (zh) 2003-10-14 2009-10-28 松下电器产业株式会社 数据转换器
US7650036B2 (en) * 2003-10-16 2010-01-19 Sharp Laboratories Of America, Inc. System and method for three-dimensional video coding
US7168030B2 (en) * 2003-10-17 2007-01-23 Telefonaktiebolaget Lm Ericsson (Publ) Turbo code decoder with parity information update
US8132215B2 (en) 2003-10-27 2012-03-06 Panasonic Corporation Apparatus for receiving broadcast signal
JP2005136546A (ja) 2003-10-29 2005-05-26 Sony Corp 送信装置および方法、記録媒体、並びにプログラム
EP1528702B1 (en) 2003-11-03 2008-01-23 Broadcom Corporation FEC (forward error correction) decoding with dynamic parameters
US20050102371A1 (en) 2003-11-07 2005-05-12 Emre Aksu Streaming from a server to a client
EP1706946A4 (en) 2003-12-01 2006-10-18 Digital Fountain Inc PROCESSING DATA AGAINST ERASURES USING SUB-SYMBOL CODES
US7428669B2 (en) 2003-12-07 2008-09-23 Adaptive Spectrum And Signal Alignment, Inc. Adaptive FEC codeword management
US7574706B2 (en) 2003-12-15 2009-08-11 Microsoft Corporation System and method for managing and communicating software updates
US7590118B2 (en) 2003-12-23 2009-09-15 Agere Systems Inc. Frame aggregation format
JP4536383B2 (ja) 2004-01-16 2010-09-01 株式会社エヌ・ティ・ティ・ドコモ データ受信装置およびデータ受信方法
KR100770902B1 (ko) 2004-01-20 2007-10-26 삼성전자주식회사 고속 무선 데이터 시스템을 위한 가변 부호율의 오류 정정부호 생성 및 복호 장치 및 방법
KR100834750B1 (ko) 2004-01-29 2008-06-05 삼성전자주식회사 엔코더 단에서 스케일러빌리티를 제공하는 스케일러블비디오 코딩 장치 및 방법
JP4321284B2 (ja) 2004-02-03 2009-08-26 株式会社デンソー ストリーミングデータ送信装置、および情報配信システム
US7599294B2 (en) 2004-02-13 2009-10-06 Nokia Corporation Identification and re-transmission of missing parts
KR100596705B1 (ko) 2004-03-04 2006-07-04 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩 방법과 비디오 인코딩 시스템, 및 비디오 디코딩 방법과 비디오 디코딩 시스템
KR100586883B1 (ko) 2004-03-04 2006-06-08 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법
US7609653B2 (en) 2004-03-08 2009-10-27 Microsoft Corporation Resolving partial media topologies
US20050207392A1 (en) 2004-03-19 2005-09-22 Telefonaktiebolaget Lm Ericsson (Publ) Higher layer packet framing using RLP
US7240236B2 (en) 2004-03-23 2007-07-03 Archivas, Inc. Fixed content distributed data storage using permutation ring encoding
JP4433287B2 (ja) 2004-03-25 2010-03-17 ソニー株式会社 受信装置および方法、並びにプログラム
US8842175B2 (en) 2004-03-26 2014-09-23 Broadcom Corporation Anticipatory video signal reception and processing
US20050216472A1 (en) 2004-03-29 2005-09-29 David Leon Efficient multicast/broadcast distribution of formatted data
JP2007531199A (ja) 2004-03-30 2007-11-01 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ディスクベースのマルチメディアコンテンツのための改良されたトリックモード実行をサポートするシステムおよび方法
TW200534875A (en) 2004-04-23 2005-11-01 Lonza Ag Personal care compositions and concentrates for making the same
FR2869744A1 (fr) 2004-04-29 2005-11-04 Thomson Licensing Sa Methode de transmission de paquets de donnees numeriques et appareil implementant la methode
US7633970B2 (en) 2004-05-07 2009-12-15 Agere Systems Inc. MAC header compression for use with frame aggregation
WO2005112250A2 (en) 2004-05-07 2005-11-24 Digital Fountain, Inc. File download and streaming system
US20050254575A1 (en) 2004-05-12 2005-11-17 Nokia Corporation Multiple interoperability points for scalable media coding and transmission
US20060037057A1 (en) 2004-05-24 2006-02-16 Sharp Laboratories Of America, Inc. Method and system of enabling trick play modes using HTTP GET
US8331445B2 (en) 2004-06-01 2012-12-11 Qualcomm Incorporated Method, apparatus, and system for enhancing robustness of predictive video codecs using a side-channel based on distributed source coding techniques
US20070110074A1 (en) 2004-06-04 2007-05-17 Bob Bradley System and Method for Synchronizing Media Presentation at Multiple Recipients
US7139660B2 (en) 2004-07-14 2006-11-21 General Motors Corporation System and method for changing motor vehicle personalization settings
US8112531B2 (en) 2004-07-14 2012-02-07 Nokia Corporation Grouping of session objects
US8544043B2 (en) 2004-07-21 2013-09-24 Qualcomm Incorporated Methods and apparatus for providing content information to content servers
US7409626B1 (en) 2004-07-28 2008-08-05 Ikanos Communications Inc Method and apparatus for determining codeword interleaver parameters
US7590922B2 (en) 2004-07-30 2009-09-15 Nokia Corporation Point-to-point repair request mechanism for point-to-multipoint transmission systems
US7376150B2 (en) 2004-07-30 2008-05-20 Nokia Corporation Point-to-point repair response mechanism for point-to-multipoint transmission systems
US7930184B2 (en) 2004-08-04 2011-04-19 Dts, Inc. Multi-channel audio coding/decoding of random access points and transients
WO2006020826A2 (en) 2004-08-11 2006-02-23 Digital Fountain, Inc. Method and apparatus for fast encoding of data symbols according to half-weight codes
JP4405875B2 (ja) 2004-08-25 2010-01-27 富士通株式会社 エラー訂正用データの生成方法及び生成装置並びに生成プログラム及び同プログラムを格納したコンピュータ読み取り可能な記録媒体
JP2006074335A (ja) 2004-09-01 2006-03-16 Nippon Telegr & Teleph Corp <Ntt> 伝送方法、伝送システム及び伝送装置
JP4576936B2 (ja) 2004-09-02 2010-11-10 ソニー株式会社 情報処理装置、情報記録媒体、コンテンツ管理システム、およびデータ処理方法、並びにコンピュータ・プログラム
JP2006115104A (ja) 2004-10-13 2006-04-27 Daiichikosho Co Ltd 高能率符号化された時系列情報をパケット化してリアルタイム・ストリーミング送信し受信再生する方法および装置
US7529984B2 (en) * 2004-11-16 2009-05-05 Infineon Technologies Ag Seamless change of depth of a general convolutional interleaver during transmission without loss of data
US7751324B2 (en) 2004-11-19 2010-07-06 Nokia Corporation Packet stream arrangement in multimedia transmission
BRPI0518304A2 (pt) 2004-11-22 2008-11-11 Thomson Res Funding Corp mÉtodo e aparelho para mudar canal em sistema dsl
JP5425397B2 (ja) * 2004-12-02 2014-02-26 トムソン ライセンシング 適応型前方誤り訂正を行う装置及び方法
KR20060065482A (ko) 2004-12-10 2006-06-14 마이크로소프트 코포레이션 스트리밍 미디어 데이터의 코딩 비트 레이트의 제어 시스템및 프로세스
JP2006174032A (ja) 2004-12-15 2006-06-29 Sanyo Electric Co Ltd 画像データ伝送システム、画像データ受信装置及び画像データ送信装置
JP2006174045A (ja) 2004-12-15 2006-06-29 Ntt Communications Kk 画像配信装置、プログラム及び方法
US7398454B2 (en) 2004-12-21 2008-07-08 Tyco Telecommunications (Us) Inc. System and method for forward error correction decoding using soft information
JP4391409B2 (ja) 2004-12-24 2009-12-24 株式会社第一興商 高能率符号化された時系列情報をリアルタイム・ストリーミング送信し受信再生する方法と受信装置
JP2008530835A (ja) 2005-02-08 2008-08-07 テレフオンアクチーボラゲット エル エム エリクソン(パブル) パケット交換ネットワーク上のオンデマンドマルチチャネルストリーミングセッション
US7925097B2 (en) 2005-02-18 2011-04-12 Sanyo Electric Co., Ltd. Image display method, image coding apparatus, and image decoding apparatus
US7822139B2 (en) 2005-03-02 2010-10-26 Rohde & Schwarz Gmbh & Co. Kg Apparatus, systems, methods and computer products for providing a virtual enhanced training sequence
WO2006096104A1 (en) 2005-03-07 2006-09-14 Telefonaktiebolaget Lm Ericsson (Publ) Multimedia channel switching
US8028322B2 (en) 2005-03-14 2011-09-27 Time Warner Cable Inc. Method and apparatus for network content download and recording
US7219289B2 (en) 2005-03-15 2007-05-15 Tandberg Data Corporation Multiply redundant raid system and XOR-efficient method and apparatus for implementing the same
US7418649B2 (en) 2005-03-15 2008-08-26 Microsoft Corporation Efficient implementation of reed-solomon erasure resilient codes in high-rate applications
US7450064B2 (en) 2005-03-22 2008-11-11 Qualcomm, Incorporated Methods and systems for deriving seed position of a subscriber station in support of unassisted GPS-type position determination in a wireless communication system
JP4487028B2 (ja) 2005-03-31 2010-06-23 ブラザー工業株式会社 配信速度制御装置、配信システム、配信速度制御方法、及び配信速度制御用プログラム
US7715842B2 (en) 2005-04-09 2010-05-11 Lg Electronics Inc. Supporting handover of mobile terminal
MX2007012564A (es) 2005-04-13 2007-11-15 Nokia Corp Codificacion, almacenamiento y senalizacion de informacion de escalabilidad.
JP4515319B2 (ja) 2005-04-27 2010-07-28 株式会社日立製作所 コンピュータシステム
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US7961700B2 (en) * 2005-04-28 2011-06-14 Qualcomm Incorporated Multi-carrier operation in data transmission systems
JP2006319743A (ja) 2005-05-13 2006-11-24 Toshiba Corp 受信装置
US8228994B2 (en) 2005-05-20 2012-07-24 Microsoft Corporation Multi-view video coding based on temporal and view decomposition
EP1884063A1 (en) 2005-05-24 2008-02-06 Nokia Corporation Method and apparatuses for hierarchical transmission/reception in digital broadcast
US7644335B2 (en) 2005-06-10 2010-01-05 Qualcomm Incorporated In-place transformations with applications to encoding and decoding various classes of codes
US7676735B2 (en) 2005-06-10 2010-03-09 Digital Fountain Inc. Forward error-correcting (FEC) coding and streaming
JP2007013436A (ja) * 2005-06-29 2007-01-18 Toshiba Corp 符号化ストリーム再生装置
JP2007013675A (ja) 2005-06-30 2007-01-18 Sanyo Electric Co Ltd ストリーミング配信システム及びサーバ
US20070006274A1 (en) 2005-06-30 2007-01-04 Toni Paila Transmission and reception of session packets
US7725593B2 (en) * 2005-07-15 2010-05-25 Sony Corporation Scalable video coding (SVC) file format
US20070022215A1 (en) * 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
EP1755248B1 (en) 2005-08-19 2011-06-22 Hewlett-Packard Development Company, L.P. Indication of lost segments across layer boundaries
CN101053249B (zh) 2005-09-09 2011-02-16 松下电器产业株式会社 图像处理方法、图像存储方法、图像处理装置及文件格式
US7924913B2 (en) 2005-09-15 2011-04-12 Microsoft Corporation Non-realtime data transcoding of multimedia content
US9113147B2 (en) 2005-09-27 2015-08-18 Qualcomm Incorporated Scalability techniques based on content information
US20070078876A1 (en) 2005-09-30 2007-04-05 Yahoo! Inc. Generating a stream of media data containing portions of media files using location tags
US7720062B2 (en) 2005-10-05 2010-05-18 Lg Electronics Inc. Method of processing traffic information and digital broadcasting system
US7164370B1 (en) 2005-10-06 2007-01-16 Analog Devices, Inc. System and method for decoding data compressed in accordance with dictionary-based compression schemes
JP4950206B2 (ja) 2005-10-11 2012-06-13 ノキア コーポレイション 効率的なスケーラブルストリーム適応のためのシステム及び方法
CN100442858C (zh) 2005-10-11 2008-12-10 华为技术有限公司 分组网络中多媒体实时传输的唇同步方法及其装置
US7720096B2 (en) 2005-10-13 2010-05-18 Microsoft Corporation RTP payload format for VC-1
JP5587552B2 (ja) 2005-10-19 2014-09-10 トムソン ライセンシング スケーラブル映像符号化を用いた多視点映像符号化
JP4727401B2 (ja) 2005-12-02 2011-07-20 日本電信電話株式会社 無線マルチキャスト伝送システム、無線送信装置及び無線マルチキャスト伝送方法
FR2894421B1 (fr) 2005-12-07 2008-01-18 Canon Kk Procede et dispositif de decodage d'un flux video code suivant un codage hierarchique
KR100759823B1 (ko) 2005-12-08 2007-09-18 한국전자통신연구원 제로 복귀 신호 발생 장치 및 그 방법
JP4456064B2 (ja) 2005-12-21 2010-04-28 日本電信電話株式会社 パケット送信装置、受信装置、システム、およびプログラム
US20070157267A1 (en) 2005-12-30 2007-07-05 Intel Corporation Techniques to improve time seek operations
EP2421265B1 (en) 2006-01-05 2013-10-02 Telefonaktiebolaget LM Ericsson (PUBL) Generation of media container files
US8214516B2 (en) 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
US8767818B2 (en) 2006-01-11 2014-07-01 Nokia Corporation Backward-compatible aggregation of pictures in scalable video coding
KR100934677B1 (ko) 2006-01-12 2009-12-31 엘지전자 주식회사 다시점 비디오의 처리
WO2007086654A1 (en) 2006-01-25 2007-08-02 Lg Electronics Inc. Digital broadcasting system and method of processing data
US7262719B2 (en) * 2006-01-30 2007-08-28 International Business Machines Corporation Fast data stream decoding using apriori information
RU2290768C1 (ru) 2006-01-30 2006-12-27 Общество с ограниченной ответственностью "Трафиклэнд" Система медиавещания в инфраструктуре оператора мобильной связи
GB0602314D0 (en) 2006-02-06 2006-03-15 Ericsson Telefon Ab L M Transporting packets
US8990153B2 (en) 2006-02-07 2015-03-24 Dot Hill Systems Corporation Pull data replication model
EP1985022B1 (en) * 2006-02-08 2011-06-08 Thomson Licensing Decoding of raptor codes
KR101292851B1 (ko) 2006-02-13 2013-08-02 디지털 파운튼, 인크. 가변적 fec 오버헤드 및 보호 구간을 이용하는 스트리밍및 버퍼링
US9270414B2 (en) * 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US20070200949A1 (en) 2006-02-21 2007-08-30 Qualcomm Incorporated Rapid tuning in multimedia applications
JP2007228205A (ja) 2006-02-23 2007-09-06 Funai Electric Co Ltd ネットワークサーバ
US8320450B2 (en) 2006-03-29 2012-11-27 Vidyo, Inc. System and method for transcoding between scalable and non-scalable video codecs
US20080010153A1 (en) 2006-04-24 2008-01-10 Pugh-O'connor Archie Computer network provided digital content under an advertising and revenue sharing basis, such as music provided via the internet with time-shifted advertisements presented by a client resident application
WO2007127741A2 (en) * 2006-04-24 2007-11-08 Sun Microsystems, Inc. Media server system
US7640353B2 (en) 2006-04-27 2009-12-29 Microsoft Corporation Guided random seek support for media streaming
US7971129B2 (en) 2006-05-10 2011-06-28 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
US7525993B2 (en) 2006-05-24 2009-04-28 Newport Media, Inc. Robust transmission system and method for mobile television applications
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US20100211690A1 (en) 2009-02-13 2010-08-19 Digital Fountain, Inc. Block partitioning for a data stream
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
TWM302355U (en) 2006-06-09 2006-12-11 Jia-Bau Jeng Fixation and cushion structure of knee joint
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
JP2008011404A (ja) 2006-06-30 2008-01-17 Toshiba Corp コンテンツ処理装置及びコンテンツ処理方法
JP4392004B2 (ja) 2006-07-03 2009-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション パケット回復のための符号化および復号化技術
EP2044528A4 (en) 2006-07-20 2013-03-06 Sandisk Technologies Inc CONTENT DISTRIBUTION SYSTEM
US7711797B1 (en) 2006-07-31 2010-05-04 Juniper Networks, Inc. Optimizing batch size for prefetching data over wide area networks
US8209736B2 (en) 2006-08-23 2012-06-26 Mediatek Inc. Systems and methods for managing television (TV) signals
KR101021831B1 (ko) 2006-08-24 2011-03-17 노키아 코포레이션 미디어 파일에서 트랙 관계를 표시하는 시스템 및 방법
US20080066136A1 (en) 2006-08-24 2008-03-13 International Business Machines Corporation System and method for detecting topic shift boundaries in multimedia streams using joint audio, visual and text cues
JP2008109637A (ja) * 2006-09-25 2008-05-08 Toshiba Corp 動画像符号化装置及びその方法
WO2008054112A2 (en) 2006-10-30 2008-05-08 Lg Electronics Inc. Methods of performing random access in a wireless communication system
JP2008118221A (ja) * 2006-10-31 2008-05-22 Toshiba Corp 復号装置及び復号方法
WO2008054100A1 (en) 2006-11-01 2008-05-08 Electronics And Telecommunications Research Institute Method and apparatus for decoding metadata used for playing stereoscopic contents
BRPI0718629A2 (pt) * 2006-11-14 2013-11-26 Qualcomm Inc Sistema e métodos para comutação de canal.
US8027328B2 (en) 2006-12-26 2011-09-27 Alcatel Lucent Header compression in a wireless communication network
EP2122482B1 (en) 2007-01-05 2018-11-14 Sonic IP, Inc. Video distribution system including progressive playback
US20080168516A1 (en) 2007-01-08 2008-07-10 Christopher Lance Flick Facilitating Random Access In Streaming Content
CN101669323A (zh) 2007-01-09 2010-03-10 诺基亚公司 用于在mbms文件修复中支持文件版本控制的方法
US20080172430A1 (en) * 2007-01-11 2008-07-17 Andrew Thomas Thorstensen Fragmentation Compression Management
CA2656144A1 (en) * 2007-01-11 2008-07-17 Panasonic Corporation Method for trick playing on streamed and encrypted multimedia
CN101543018B (zh) 2007-01-12 2012-12-26 庆熙大学校产学协力团 网络提取层单元的分组格式、使用该格式的视频编解码算法和装置以及使用该格式进行IPv6标签交换的QoS控制算法和装置
KR20080066408A (ko) 2007-01-12 2008-07-16 삼성전자주식회사 3차원 영상 처리 장치 및 방법
US8135071B2 (en) * 2007-01-16 2012-03-13 Cisco Technology, Inc. Breakpoint determining for hybrid variable length coding using relationship to neighboring blocks
US7721003B2 (en) 2007-02-02 2010-05-18 International Business Machines Corporation System and method to synchronize OSGi bundle inventories between an OSGi bundle server and a client
US20080192818A1 (en) 2007-02-09 2008-08-14 Dipietro Donald Vincent Systems and methods for securing media
US20080232357A1 (en) 2007-03-19 2008-09-25 Legend Silicon Corp. Ls digital fountain code
JP4838191B2 (ja) 2007-05-08 2011-12-14 シャープ株式会社 ファイル再生装置、ファイル再生方法、ファイル再生を実行させるプログラム及びそのプログラムを記録した記録媒体
JP2008283571A (ja) 2007-05-11 2008-11-20 Ntt Docomo Inc コンテンツ配信装置、コンテンツ配信システム、およびコンテンツ配信方法
US8275002B2 (en) 2007-05-14 2012-09-25 Samsung Electronics Co., Ltd. Broadcasting service transmitting apparatus and method and broadcasting service receiving apparatus and method for effectively accessing broadcasting service
CN101933235B (zh) 2007-05-16 2014-12-17 汤姆森特许公司 编码和解码信号的装置和方法
FR2917262A1 (fr) 2007-06-05 2008-12-12 Thomson Licensing Sas Dispositif et procede de codage d'un contenu video sous la forme d'un flux scalable.
US8487982B2 (en) 2007-06-07 2013-07-16 Reald Inc. Stereoplexing for film and video applications
US8274551B2 (en) 2007-06-11 2012-09-25 Samsung Electronics Co., Ltd. Method and apparatus for generating header information of stereoscopic image data
JP5363473B2 (ja) 2007-06-20 2013-12-11 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 改善されたメディア・セッション管理の方法と装置
CN101690229A (zh) 2007-06-26 2010-03-31 诺基亚公司 用于指示时间层切换点的系统和方法
US7917702B2 (en) 2007-07-10 2011-03-29 Qualcomm Incorporated Data prefetch throttle
JP2009027598A (ja) 2007-07-23 2009-02-05 Hitachi Ltd 映像配信サーバおよび映像配信方法
US8327403B1 (en) 2007-09-07 2012-12-04 United Video Properties, Inc. Systems and methods for providing remote program ordering on a user device via a web server
RU2010114256A (ru) 2007-09-12 2011-10-20 Диджитал Фаунтин, Инк. (Us) Формирование и передача исходной идентификационной информации для обеспечения надежного обмена данными
US8233532B2 (en) 2007-09-21 2012-07-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Information signal, apparatus and method for encoding an information content, and apparatus and method for error correcting an information signal
US8346959B2 (en) 2007-09-28 2013-01-01 Sharp Laboratories Of America, Inc. Client-controlled adaptive streaming
EP2046044B1 (en) 2007-10-01 2017-01-18 Cabot Communications Ltd A method and apparatus for streaming digital media content and a communication system
KR101446359B1 (ko) * 2007-10-09 2014-10-01 삼성전자주식회사 이동 통신 시스템에서 맥 프로토콜 데이터 유닛의 생성과 분리 장치 및 방법
US8706907B2 (en) 2007-10-19 2014-04-22 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
WO2009054907A2 (en) 2007-10-19 2009-04-30 Swarmcast, Inc. Media playback point seeking using data range requests
US20090125636A1 (en) 2007-11-13 2009-05-14 Qiong Li Payload allocation methods for scalable multimedia servers
ATE546795T1 (de) 2007-11-23 2012-03-15 Media Patents Sl Ein prozess für die on-line-verteilung des audiovisuellen inhalts mit reklameanzeigen, reklameanzeigenmanagementssystem, digitalrechtmanagementsystem und audiovisuellem contentspieler versehen mit besagten systemen
WO2009075766A2 (en) 2007-12-05 2009-06-18 Swarmcast, Inc. Dynamic bit rate scaling
JP5385598B2 (ja) 2007-12-17 2014-01-08 キヤノン株式会社 画像処理装置及び画像管理サーバ装置及びそれらの制御方法及びプログラム
US9313245B2 (en) * 2007-12-24 2016-04-12 Qualcomm Incorporated Adaptive streaming for on demand wireless services
KR101506217B1 (ko) 2008-01-31 2015-03-26 삼성전자주식회사 스테레오스코픽 영상의 부분 데이터 구간 재생을 위한스테레오스코픽 영상 데이터스트림 생성 방법과 장치, 및스테레오스코픽 영상의 부분 데이터 구간 재생 방법과 장치
EP2086237B1 (en) 2008-02-04 2012-06-27 Alcatel Lucent Method and device for reordering and multiplexing multimedia packets from multimedia streams pertaining to interrelated sessions
US8151174B2 (en) 2008-02-13 2012-04-03 Sunrise IP, LLC Block modulus coding (BMC) systems and methods for block coding with non-binary modulus
US20090219985A1 (en) 2008-02-28 2009-09-03 Vasanth Swaminathan Systems and Methods for Processing Multiple Projections of Video Data in a Single Video File
US7984097B2 (en) 2008-03-18 2011-07-19 Media Patents, S.L. Methods for transmitting multimedia files and advertisements
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US20090257508A1 (en) 2008-04-10 2009-10-15 Gaurav Aggarwal Method and system for enabling video trick modes
WO2009128642A2 (en) 2008-04-14 2009-10-22 Lg Electronics Inc. Method and apparatus for performing random access procedures
WO2009127961A1 (en) * 2008-04-16 2009-10-22 Nokia Corporation Decoding order recovery in session multiplexing
WO2009130561A1 (en) 2008-04-21 2009-10-29 Nokia Corporation Method and device for video coding and decoding
RU2010150108A (ru) 2008-05-07 2012-06-20 Диджитал Фаунтин, Инк. (Us) Быстрое переключение канала и защита потоковой передачи высокого качества по широковещательному каналу
US7979570B2 (en) 2008-05-12 2011-07-12 Swarmcast, Inc. Live media delivery over a packet-based computer network
JP5022301B2 (ja) 2008-05-19 2012-09-12 株式会社エヌ・ティ・ティ・ドコモ プロキシサーバおよび通信中継プログラム、並びに通信中継方法
CN101287107B (zh) 2008-05-29 2010-10-13 腾讯科技(深圳)有限公司 媒体文件的点播方法、系统和设备
US7925774B2 (en) 2008-05-30 2011-04-12 Microsoft Corporation Media streaming using an index file
US20100011274A1 (en) * 2008-06-12 2010-01-14 Qualcomm Incorporated Hypothetical fec decoder and signalling for decoding control
US8775566B2 (en) 2008-06-21 2014-07-08 Microsoft Corporation File format for media distribution and presentation
US8387150B2 (en) 2008-06-27 2013-02-26 Microsoft Corporation Segmented media content rights management
US8468426B2 (en) 2008-07-02 2013-06-18 Apple Inc. Multimedia-aware quality-of-service and error correction provisioning
US8539092B2 (en) 2008-07-09 2013-09-17 Apple Inc. Video streaming using multiple channels
US20100153578A1 (en) 2008-07-16 2010-06-17 Nokia Corporation Method and Apparatus for Peer to Peer Streaming
US8638796B2 (en) * 2008-08-22 2014-01-28 Cisco Technology, Inc. Re-ordering segments of a large number of segmented service flows
KR101019634B1 (ko) 2008-09-04 2011-03-07 에스케이 텔레콤주식회사 미디어 전송 시스템 및 방법
US8325796B2 (en) 2008-09-11 2012-12-04 Google Inc. System and method for video coding using adaptive segmentation
US8370520B2 (en) * 2008-11-24 2013-02-05 Juniper Networks, Inc. Adaptive network content delivery system
US20100169303A1 (en) 2008-12-31 2010-07-01 David Biderman Playlists for real-time or near real-time streaming
US8743906B2 (en) * 2009-01-23 2014-06-03 Akamai Technologies, Inc. Scalable seamless digital video stream splicing
WO2010085361A2 (en) 2009-01-26 2010-07-29 Thomson Licensing Frame packing for video coding
CN104780384B (zh) 2009-01-29 2018-01-16 杜比实验室特许公司 解码视频帧的序列的方法、编码多视图帧的序列的方法
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US8621044B2 (en) 2009-03-16 2013-12-31 Microsoft Corporation Smooth, stateless client media streaming
US8909806B2 (en) 2009-03-16 2014-12-09 Microsoft Corporation Delivering cacheable streaming media presentations
KR20120015443A (ko) 2009-04-13 2012-02-21 리얼디 인크. 향상된 해상도의 스테레오스코픽 비디오의 엔코딩, 디코딩 및 배포
US9807468B2 (en) 2009-06-16 2017-10-31 Microsoft Technology Licensing, Llc Byte range caching
US8903895B2 (en) 2009-07-22 2014-12-02 Xinlab, Inc. Method of streaming media to heterogeneous client devices
US8355433B2 (en) 2009-08-18 2013-01-15 Netflix, Inc. Encoding video streams for adaptive video streaming
US20120151302A1 (en) * 2010-12-10 2012-06-14 Qualcomm Incorporated Broadcast multimedia storage and access using page maps when asymmetric memory is used
US9288010B2 (en) * 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
BR112012004798B1 (pt) * 2009-09-02 2021-09-21 Apple Inc Construção de unidade de dados de pacote de mac para sistemas sem fio
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US20110096828A1 (en) * 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
US9438861B2 (en) 2009-10-06 2016-09-06 Microsoft Technology Licensing, Llc Integrating continuous and sparse streaming data
JP2011087103A (ja) 2009-10-15 2011-04-28 Sony Corp コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供
US8677005B2 (en) 2009-11-04 2014-03-18 Futurewei Technologies, Inc. System and method for media content streaming
KR101786050B1 (ko) 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 전송 방법 및 장치
KR101786051B1 (ko) 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 제공 방법 및 장치와 데이터 수신 방법 및 장치
CN101729857A (zh) 2009-11-24 2010-06-09 中兴通讯股份有限公司 一种接入视频服务的方法及视频播放系统
US8510375B2 (en) 2009-12-11 2013-08-13 Nokia Corporation Apparatus and methods for time mapping media segments in streaming media files
RU2690755C2 (ru) 2010-02-19 2019-06-05 Телефонактиеболагет Л М Эрикссон (Пабл) Способ и устройство для переключения воспроизведений в потоковой передаче по протоколу передачи гипертекста
KR101709903B1 (ko) 2010-02-19 2017-02-23 텔레폰악티에볼라겟엘엠에릭슨(펍) 에이치티티피 스트리밍에서 적응화를 위한 방법 및 장치
JP5071495B2 (ja) 2010-03-04 2012-11-14 ウシオ電機株式会社 光源装置
KR101202196B1 (ko) * 2010-03-11 2012-11-20 한국전자통신연구원 Mimo 시스템에서 데이터를 송수신하는 방법 및 장치
US20110280311A1 (en) 2010-05-13 2011-11-17 Qualcomm Incorporated One-stream coding for asymmetric stereo video
US9497290B2 (en) 2010-06-14 2016-11-15 Blackberry Limited Media presentation description delta file for HTTP streaming
US8918533B2 (en) * 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) * 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
KR20120010089A (ko) 2010-07-20 2012-02-02 삼성전자주식회사 Http 기반의 멀티미디어 스트리밍 서비스의 품질 향상을 위한 방법 및 장치
US9131033B2 (en) 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
US9596447B2 (en) * 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US8711933B2 (en) 2010-08-09 2014-04-29 Sony Computer Entertainment Inc. Random access point (RAP) formation using intra refreshing technique in video coding
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
KR101737325B1 (ko) * 2010-08-19 2017-05-22 삼성전자주식회사 멀티미디어 시스템에서 멀티미디어 서비스의 경험 품질 감소를 줄이는 방법 및 장치
US8615023B2 (en) 2010-10-27 2013-12-24 Electronics And Telecommunications Research Institute Apparatus and method for transmitting/receiving data in communication system
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US20120208580A1 (en) 2011-02-11 2012-08-16 Qualcomm Incorporated Forward error correction scheduling for an improved radio link protocol
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9246633B2 (en) 1998-09-23 2016-01-26 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
JP4680359B2 (ja) * 1999-09-17 2011-05-11 デジタル ファウンテン, インコーポレイテッド 通信システムのための情報付加的群符号発生器およびデコーダ
JP2001189665A (ja) * 1999-09-17 2001-07-10 Digital Fountain 通信システムのための情報付加的群符号発生器およびデコーダ
US9236976B2 (en) 2001-12-21 2016-01-12 Digital Fountain, Inc. Multi stage code generator and decoder for communication systems
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
US9236885B2 (en) 2002-10-05 2016-01-12 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
USRE43741E1 (en) 2002-10-05 2012-10-16 Qualcomm Incorporated Systematic encoding and decoding of chain reaction codes
US8887020B2 (en) 2003-10-06 2014-11-11 Digital Fountain, Inc. Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters
US9136878B2 (en) 2004-05-07 2015-09-15 Digital Fountain, Inc. File download and streaming system
US9136983B2 (en) 2006-02-13 2015-09-15 Digital Fountain, Inc. Streaming and buffering using variable FEC overhead and protection periods
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US9264069B2 (en) 2006-05-10 2016-02-16 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient uses of the communications systems
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9237101B2 (en) 2007-09-12 2016-01-12 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US9225961B2 (en) 2010-05-13 2015-12-29 Qualcomm Incorporated Frame packing for asymmetric stereo video
US8806050B2 (en) 2010-08-10 2014-08-12 Qualcomm Incorporated Manifest file updates for network streaming of coded multimedia data
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming

Also Published As

Publication number Publication date
EP1241795A2 (en) 2002-09-18
WO2000018017A9 (en) 2001-12-20
US20040021588A1 (en) 2004-02-05
ATE230175T1 (de) 2003-01-15
DE69941342D1 (de) 2009-10-08
KR20010089278A (ko) 2001-09-29
US20010019310A1 (en) 2001-09-06
HK1038995B (zh) 2003-06-13
US20020190878A1 (en) 2002-12-19
AU6253699A (en) 2000-04-10
US7057534B2 (en) 2006-06-06
EP2136473A3 (en) 2010-10-27
CA2345237C (en) 2008-07-15
PT2136473E (pt) 2013-03-25
US6307487B1 (en) 2001-10-23
JP2005117633A (ja) 2005-04-28
KR100598662B1 (ko) 2006-07-13
EP2290826A2 (en) 2011-03-02
CA2345237A1 (en) 2000-03-30
US7812743B2 (en) 2010-10-12
IL140705A0 (en) 2002-02-10
DE69904621T2 (de) 2003-09-25
US20080180284A1 (en) 2008-07-31
EP2136473A2 (en) 2009-12-23
EP2290826A3 (en) 2011-04-06
US6614366B2 (en) 2003-09-02
HK1038995A1 (en) 2002-04-04
EP2290826B1 (en) 2012-11-07
EP1116335B1 (en) 2002-12-18
US7233264B2 (en) 2007-06-19
ES2399220T3 (es) 2013-03-26
EP2136473B1 (en) 2013-01-16
EP1241795A3 (en) 2003-05-21
US20060087456A1 (en) 2006-04-27
DK2136473T3 (da) 2013-03-18
US9246633B2 (en) 2016-01-26
ATE441251T1 (de) 2009-09-15
JP3809957B2 (ja) 2006-08-16
ES2401177T3 (es) 2013-04-17
DE69904621D1 (de) 2003-01-30
US20080034273A1 (en) 2008-02-07
EP1116335A1 (en) 2001-07-18
EP1241795B1 (en) 2009-08-26
AU767140B2 (en) 2003-10-30
WO2000018017A1 (en) 2000-03-30
JP2003501848A (ja) 2003-01-14
US6373406B2 (en) 2002-04-16
HK1139525A1 (en) 2010-09-17

Similar Documents

Publication Publication Date Title
JP3976163B2 (ja) 損失パケットのパケット伝送プロトコル回復方法
JP4680359B2 (ja) 通信システムのための情報付加的群符号発生器およびデコーダ
JP4157041B2 (ja) 通信システムのための多段符号発生器及び復号器

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040423

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20050210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050210

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070129

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070420

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070614

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3976163

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100629

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110629

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110629

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120629

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130629

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term