JP3815562B2 - データ処理方法、これを用いた通信システム、そのデータ送信装置、データ受信装置及びプログラム - Google Patents
データ処理方法、これを用いた通信システム、そのデータ送信装置、データ受信装置及びプログラム Download PDFInfo
- Publication number
- JP3815562B2 JP3815562B2 JP2002345230A JP2002345230A JP3815562B2 JP 3815562 B2 JP3815562 B2 JP 3815562B2 JP 2002345230 A JP2002345230 A JP 2002345230A JP 2002345230 A JP2002345230 A JP 2002345230A JP 3815562 B2 JP3815562 B2 JP 3815562B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- cluster
- original
- parity
- transmission
- 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 - Fee Related
Links
- 230000005540 biological transmission Effects 0.000 title claims description 137
- 238000004891 communication Methods 0.000 title claims description 57
- 238000003672 processing method Methods 0.000 title claims description 16
- 238000000034 method Methods 0.000 claims description 53
- 238000012545 processing Methods 0.000 claims description 16
- 230000000295 complement effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 6
- 238000007796 conventional method Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000001502 supplementing effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000005245 sintering Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0059—Convolutional codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/23—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
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)
- Detection And Prevention Of Errors In Transmission (AREA)
- Error Detection And Correction (AREA)
Description
【発明の属する技術分野】
本発明は、ネットワークにおけるデータ通信に関し、特にFECによりデータ通信における信頼性を向上させる技術に関する。
【0002】
【従来の技術】
インターネットに代表されるコンピュータネットワークの普及により、ネットワークを介して行われるデータ通信の信頼性を向上させることが重要な課題となっている。
従来、データ通信の信頼性を高める手段としては、データ通信が失敗した場合(データが壊れたり喪失したりした場合、以下、喪失と総称する)に受信側端末から送信側端末へ自動的にデータの再送を要求するARQ(Automatic Repeat reQuest:再送要求)や、データ喪失の可能性を予め想定して送信データを冗長に構成するFEC(Forward Error Correction)、これらの組合せなどがある。ARQが、受信側端末から送信側端末へ要求を行うために双方向通信であることを前提としているのに対し、FECは冗長な送信データから元データを復元するので1方向通信にて利用することが可能である。
【0003】
FECにより信頼性の向上を図る手法として、受信者において、正しく受信されたデータから消失データを復元することが可能なイレーシャ・コード(Erasure Code)を用いるものがある(例えば、非特許文献1参照。また、イレーシャ・コードの理論的な根拠については、例えば、非特許文献2参照。)。この手法では、送信者は、送信しようとする元データにパリティ・データを付加して送信データを作成し、送信する。受信者は、受信した送信データから元データを抽出するが、この際、元データとパリティ・データの合計のデータ量が一定以上あれば、送信データの一部が喪失されていても元データを復元することができる。
【0004】
このイレーシャ・コードを用いたFECによるデータ通信方法として、例えば、特許文献1に開示された従来技術がある。
図11は、特許文献1に開示された従来技術によるデータ通信方法を説明する図である。
同文献に開示された技術によれば、図11に示すように、次の手順でデータ通信を行う。
(1)データファイル(元データ)をk個のデータ(図示の例では6個)からなるクラスタに分割する(図示の例では、データファイルは8個のクラスタに分割されている。なお、クラスタの文言は、送信しようとする元データの分割単位を表す。したがって、以下の説明でクラスタと言った場合、その内容は、対応する元データである場合、元データとパリティ・データとの組合せである場合などがある。また、データ数の単位は、例えば1Kbyte、8Kbyte等とすることができる。
(2)送信者1101は、個々のクラスタに対して、k個の元データからt個のパリティ・データ(図示の例では4個)を生成(エンコード)し、元データと共に(すなわちk+t個のデータからなるデータ列を)送信する。
(3)受信者1102は、かかるデータ列を受信するが、通信中にデータ列の一部が喪失していた場合、このデータ列中の任意のk個から該当クラスタの元データを復元(デコード)する。
図11に示す例では、元データとパリディ・データを合わせて6個のデータがあれば、言い換えれば4個までは喪失しても、元データを復元できる。
【0005】
図12は、特許文献1に開示された従来技術によるパリティ・データの生成方法を示す図である。
同文献に開示された技術では、図12に示すように、各クラスタの元データからそれぞれ独立にパリティ・データが生成される。したがって、個々のクラスタにおいて元データを復元する場合、当該クラスタにおけるパリティ・データを含むデータ列からのみ復元される。
すなわち、この技術では、データの受信成功には各クラスタについてk個以上のデータを受信することが必要となる。また、データの配信成功には全ての受信者による受信成功が必要である。
【0006】
【特許文献1】
米国特許明細書第6012159号明細書
【非特許文献1】
L. Rizzo、“Effective erasure codes for reliable computer communication protocols”、[online]、April 1997、ACM Computer Communication Review、[平成14年8月30日検索]、インターネット<URL:http://citeseer.nj.nec.com/rizzo97effective.html>
【非特許文献2】
Johannes Blomer、Malik Kalfane、Richard Karp、Marek Karpinski、Michael Luby、David Zuckerman、“An XOR-Based Erasure-Resilient Coding Scheme”、[online]、1995、[平成14年8月30日検索]、インターネット<URL:http://citeseer.nj.nec.com/84162.html>
【0007】
【発明が解決しようとする課題】
しかし、上記従来のイレーシャ・コードを用いたデータ通信方式は、クラスタ内の元データの数がk個である場合、k+t個(元データ+パリティ・データ)のデータのうちt個以上のデータが喪失した場合(すなわち受信できたデータがk個に満たない場合)には元データを復元することができなかった。
また、上述したように、データ通信では、データの配信成功には全ての受信者による受信成功が必要であることから、配信成功確率は受信者数およびクラスタ数が増加するのに伴って減少する。
【0008】
ここで、データの送信が失敗した場合に、受信者から送信者へマニュアル操作にて当該データの再送要求がなされ、再送信する場合の処理コストを考える。この場合、各受信者へ個別にデータ送信が行われるユニキャスト配信であれば、再送信の処理コストは再送信を行う受信者数に比例するため、一般に初期配信の処理コストよりも小さい。一方、同報配信(ブロードキャストやマルチキャスト)の場合、再送信の処理コストは受信者数によらないため、初期配信の処理コストと同等である。このため、同報配信において特に高い配信成功確率が要求されることとなる。
【0009】
特許文献1に開示された従来のデータ通信方法では、配信成功確率を高めるためには、クラスタにおけるパリティ・データのデータ数tまたは元データのデータ数kの片方または双方の値を大きくする。しかしながら、パリティ・データの割合(冗長度)を増やすと、送信するデータ量及び送信時間が増加してしまう。また、元データのデータ数kを大きくすると、エンコード及びデコードに要する計算量の大きな増加を招く。
したがって、FECによるデータ通信では、これらの点に改善の余地を見出すことができる。
【0010】
そこで本発明は、FECによるデータ通信において、配信成功確率を高め、データ通信の信頼性の向上を図ることを目的とする。
また、本発明は、FECによるデータ通信における冗長度(パリティ・データの割合)を低く抑えることを他の目的とする。
【0011】
【課題を解決するための手段】
上記の目的を達成する本発明は、次のようなデータ処理方法として実現することができる。すなわち、このデータ処理方法は、所定の記憶装置から送信しようとする元データのデータファイルを読み出し、このデータファイルを同じ大きさのk個のデータからなるクラスタに分割するステップと、このクラスタのk個の元データにs個の畳み込みデータを加え、エンコードしてt+s個のパリティ・データを生成するステップと、このパリティ・データのうちのt個のデータを元データに付加してk+t個のデータからなる送信データを作成するステップと、所定のネットワークインターフェイスを介して、この送信データをネットワーク上の他の端末へ送信するステップとを含むことを特徴とする。
【0012】
ここでこの畳み込みデータを、他のクラスタにおけるデータに依存して決定する。より詳細には、所定のクラスタにおける畳み込みデータとして、パリティ・データ生成の際のエンコード順における直前のクラスタに関して生成されたパリティ・データにおける所定のs個のデータを用いる。また、パリティ・データ生成の際のエンコード順における最後のクラスタにおける受信成功確率の低下を防ぐため、かかる最後のクラスタに関しては、特に生成したt+s個のパリティ・データの全てを送信するようにしても良い。あるいはt+s個のパリティ・データのうち、t’>tなるt’個のデータを前記元データに付加して送信データを作成するようにしても良い。
【0013】
また本発明は、次のようなデータ処理方法としても実現される。すなわち、このデータ処理方法は、所定の記憶装置から送信しようとする元データのデータファイルを読み出し、このデータファイルをクラスタに分割するステップと、このクラスタの元データと他のクラスタのデータの一部で構成される畳み込みデータとをエンコードすることにより、他のクラスタのデータに関する情報を含むパリティ・データを生成するステップと、このパリティ・データを元データに付加して送信データを作成するステップと、所定のネットワークインターフェイスを介して、この送信データをネットワーク上の他の端末へ送信するステップとを含むことを特徴とする。
【0014】
ここで、パリティ・データを生成する際には、元データに他のクラスタにおけるパリティ・データの一部を付加してエンコードする。これにより、生成されたパリティ・データには、この他のクラスタのパリティ・データに関する情報が含まれることとなる。また、このパリティ・データの一部もさらに他のクラスタの元データをエンコードする際に付加されることとなるので、生成されたパリティ・データには、かかるさらに他のクラスタのデータに関する情報も含まれることとなる。
【0015】
さらに本発明は、以上のようにして生成された送信データを受信する場合の、次のようなデータ処理方法としても実現される。すなわち、このデータ処理方法は、クラスタに分割され、各クラスタの元データとパリティ・データとを含むデータ列を受信するステップと、通信中に所定のクラスタに関してデータの喪失があった場合に、所定のクラスタにおける喪失しなかったデータをデコードして、元データと、パリティ・データを生成するためにこの元データに追加された畳み込みデータとを復元するステップと、通信中のデータの喪失によりこの所定のクラスタのデータ数が元データ及び畳み込みデータを復元するために必要な必要数に満たない場合に、他のクラスタの復元データに基づき、この所定のクラスタのデータを補完してデコードし、元データ及び畳み込みデータを復元するステップと、受信または復元された各クラスタの元データを連結してデータファイルを作成し、所定の記憶装置に格納するステップとを含むことを特徴とする。
このクラスタのデータの補完には、元データをエンコードした際のエンコード順において処理対象であるクラスタの直前のクラスタにおける復元された元データ及び畳み込みデータをエンコードして得られたデータ、またはこのエンコード順において直後のクラスタにおける復元された前記畳み込みデータ、あるいはその両方を用いることができる。
【0016】
また、上記の目的を達成するさらに他の本発明は、次のように構成されたことを特徴とする通信システムとしても実現することができる。この通信システムにおいて、送信側の端末装置は、送信しようとする元データのデータファイルをクラスタに分割し、各クラスタの元データに他のクラスタにおける所定のデータを付加してエンコードすることによりパリティ・データを生成し、このパリティ・データを元データに付加して生成された送信データを受信側の端末装置に送信する。また、受信側の端末装置は、この送信データを受信し、この送信データの一部が通信中に喪失した場合、クラスタごとに元データを復元する。ここで、受信した所定のクラスタにおける送信データのデータ数が通信中のデータの喪失により元データを復元するために必要な必要数に満たない場合に、他のクラスタの復元データに基づいてこのクラスタのデータを補完して元データを復元する。
【0017】
さらに詳細には、この送信側の端末装置であるデータ送信装置は、元データのデータファイルを格納したファイル格納部と、このファイル格納部から送信する元データのデータファイルを読み出してクラスタに分割し、このクラスタごとに元データに他のクラスタ(エンコード順における直前のクラスタ)における所定のデータを付加してエンコードすることによりパリティ・データを生成し、このパリティ・データと元データとを含む送信データを作成する送信データ作成部と、この送信データ作成部にて作成された送信データを送信する送信制御部とを備えることを特徴とする。
【0018】
また、この受信側の端末装置であるデータ受信装置は、クラスタに分割され、各クラスタの元データとパリティ・データとを含むデータ列を受信する受信制御部と、通信中に所定のクラスタに関してデータの喪失があった場合に、この所定のクラスタにおける喪失しなかったデータをデコードして、元データと、パリティ・データを生成するためにこの元データに追加された畳み込みデータとを復元し、通信中のデータの喪失によりこの所定のクラスタのデータ数が元データ及び畳み込みデータを復元するために必要な必要数に満たない場合に、他のクラスタの復元データに基づいてこの所定のクラスタのデータを補完してデコードし、元データ及び畳み込みデータを復元するデータ復元部と、受信または復元された各クラスタの元データを連結して得られたデータファイルを格納するファイル格納部とを備えることを特徴とする。
【0019】
さらに本発明は、コンピュータを制御して上述したデータ処理方法の各ステップに対応する処理を実行させるプログラムや、上記のデータ送信装置またはデータ受信装置としてコンピュータを機能させるプログラムとして実現される。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供することができる。
【0020】
【発明の実施の形態】
以下、添付図面に示す実施の形態に基づいて、この発明を詳細に説明する。
図1は、本実施の形態によるデータ通信が行われるネットワークシステムの概略構成を示す図である。
図1に示すネットワークシステムは、インターネットなどのネットワーク30に、送信側端末10と受信側端末20とが接続されて構成されている。送信側端末10及び受信側端末20は、ネットワーク30を介してパケット通信によるデータ交換を行う機能を備えたコンピュータ、PDA(Personal Digital Assistant)、携帯電話、その他の情報通信機器(端末装置)にて実現される。なお、送信側端末10及び受信側端末20は、所定のデータを送信しようとするユーザ(送信者)が使用する端末と、当該データを受信する端末とを意味する。したがって、ネットワーク30に接続された各端末装置が、通信ごとに送信側端末10にも受信側端末20にもなり得る。また図示のように、受信側端末20は複数存在し、個別に送信する他、同報配信にて一斉に送信することが可能である。
【0021】
図2は、図1に示した送信側端末10及び受信側端末20を実現するのに好適なコンピュータ装置のハードウェア構成の例を模式的に示した図である。
図2に示すコンピュータ装置は、演算手段であるCPU(Central Processing Unit:中央処理装置)101と、M/B(マザーボード)チップセット102及びCPUバスを介してCPU101に接続されたメインメモリ103と、同じくM/Bチップセット102及びAGP(Accelerated Graphics Port)を介してCPU101に接続されたビデオカード104と、PCI(Peripheral Component Interconnect)バスを介してM/Bチップセット102に接続されたハードディスク105、ネットワークインターフェイス106及びUSBポート107と、さらにこのPCIバスからブリッジ回路108及びISA(Industry Standard Architecture)バスなどの低速なバスを介してM/Bチップセット102に接続されたフロッピーディスクドライブ109及びキーボード/マウス110とを備える。そして、ネットワークインターフェイス106を介してネットワーク30に接続され、送信側端末10または受信側端末20として他のコンピュータ装置とでデータ交換を行う。
なお、図2は本実施の形態を実現するコンピュータ装置のハードウェア構成を例示するに過ぎず、本実施の形態を適用可能であれば、他の種々の構成を取ることができる。例えば、ビデオカード104を設ける代わりに、ビデオメモリのみを搭載し、CPU101にてイメージデータを処理する構成としても良いし、ATA(AT Attachment)などのインターフェイスを介してCD−ROM(Compact Disc Read Only Memory)やDVD−ROM(Digital Versatile Disc Read Only Memory)のドライブを設けても良い。
【0022】
図3は、送信側端末10の機能構成を示す図である。
図3を参照すると、送信側端末10は、送信しようとする元データのデータファイルを格納したファイル格納部11と、ファイル格納部11に格納されているデータファイルから送信データを作成する送信データ作成部12と、送信データ作成部12にて作成された送信データを受信側端末20へ送信する送信制御部13とを備える。かかる構成において、ファイル格納部11は、例えば図2に示したコンピュータ装置におけるメインメモリ103やハードディスク105にて実現される。また、送信データ作成部12及び送信制御部13は、プログラム制御されたCPU101にて実現される。
CPU101を制御してこれらの機能を実現するプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワーク30を介して配信したりすることにより提供される。図2に示したコンピュータ装置では、このプログラムがハードディスク105に保存(インストール)された後、メインメモリ103に読み込まれ展開されて、CPU101を制御し、送信データ作成部12及び送信制御部13として機能させる。
【0023】
次に、送信データ作成部12について、さらに詳細に説明する。
送信データ作成部12は、第1に、ファイル格納部11から送信しようとする元データのデータファイルを読み出し、k個のデータから構成されるクラスタに分割する。データの大きさは全て同じである。クラスタを構成する上でデータに不足が生じた場合は、全て0で埋める等、送信側端末10及び受信側端末20の間で予め定められた方式で補う。なお、クラスタやクラスタ内のk個のデータはファイル内での位置の順である必要はない。第2に、各クラスタの元データをエンコードしてクラスタごとのパリティ・データを生成し、この元データとパリティ・データとに基づいて送信データを作成する。
ここで、本実施の形態の送信データ作成部12は、元データのエンコードにおいて畳み込みデータを用いたエンコードを行うと共に、所定のクラスタにおける元データのエンコードを他のクラスタに依存して行う。
【0024】
図4は、本実施の形態におけるパリティ・データの生成方法を説明する図である。
図4に示すように、本実施の形態では、まず元データ411に対してs個の畳み込みデータ412を追加する。元データ411のデータ数をkとすれば、k+s個のデータからなるデータ列410が生成される。
次に、元データ411に畳み込みデータ412を加えたk+s個のデータをエンコードしてパリティ・データ420を生成する。生成されたパリティ・データ420の内、s個のデータ422を除いた残りのデータを、元データに付加するパリティ・データ、すなわち元データと共に送信するパリティ・データ(以下、送信用パリティ・データ421と称す)とする。
ここで、送信用パリティ・データ421のデータ数をtとすれば、
s≦t
という関係を満たす。
【0025】
また、図4に示すように、生成されたパリティ・データ420の内、送信用パリティ・データ421以外のs個のデータ422は、各クラスタをエンコードする際のエンコード順にしたがって、次のクラスタをエンコードするための畳み込みデータ412となる。すなわち、所定のクラスタに着目すれば、1つ前のクラスタのパリティ・データ420からs個のデータ422を取得して、畳み込みデータ412として元データ411に加える。これにより、クラスタのエンコードは、1つ前のクラスタに依存して行われることとなる。なお、エンコード順における最初のクラスタには、1つ前のクラスタが存在しないので、予め定められた任意のs個のデータが初期値として与えられる。
【0026】
以上のようにして送信データ作成部12により作成される送信データは、各クラスタに対して元データ411及び送信用パリティ・データ421のk+t個のデータとなる。
送信制御部13は、例えば図2に示したコンピュータ装置におけるネットワークインターフェイス106を制御して、上記のようにして作成された送信データを送信する。送信データの送信は、宛先の受信側端末20を指定して行っても良いし(ユニキャストの場合)、宛先を指定しないで行っても良い(ブロードキャストの場合)。また、送信はクラスタ毎に行う必要はなく、各クラスタから一個ずつデータを送る作業を(クラスタのデータの数だけ)繰り返したり(Interleaving)、全てのクラスタの元データを送信した後でパリティ・データを送信したりすることができる。
【0027】
図5は、送信側端末10によるデータ送信時の動作を説明するフローチャートである。なお、図示の手順は、送信側端末10の動作の一例に過ぎず、必ずしもこの手順には限定されない。
図5に示すように、送信側端末10では、まず、送信データ作成部12により、ファイル格納部11から読み出された元データのデータファイルが、各々k個のデータからなるクラスタに分割される(ステップ501)。ここで、パリティ・データを生成するためのエンコードを行う順にしたがって、0から順に番号を振るものとする。
次に、送信データ作成部12により、クラスタ0(1番目のクラスタ)の元データ411に、予め設定された所定の初期値からなるs個の畳み込みデータ412が追加される(ステップ502)。そして、このk+s個のデータ列410がエンコードされてt+s個のパリティ・データ420が生成される(ステップ503)。そして、パリティ・データ420の内のt個の送信用パリティ・データ421とk個の元データ411とで送信データが作成される(ステップ504)。
この時点で、送信制御部13により、k個の元データ411とt個の送信用パリティ・データ421とからなる送信データが送信される(ステップ505)。送信データがエンコード順における最後のクラスタであるならば、データ送信の処理を終了する(ステップ506)。
一方、未処理のクラスタがあるならば、次に、送信データ作成部12により、パリティ・データ420中のs個のデータ422が、次のクラスタにおける畳み込みデータ412として、当該クラスタの元データ411に追加され(ステップ506、507)、ステップ503に戻って順次処理が繰り返される。
【0028】
図6は、受信側端末20の機能構成を示す図である。
図6を参照すると、受信側端末20は、送信側端末10から送信された送信データを受信する受信制御部21と、受信制御部21にて受信された受信データから元データを復元するデータ復元部22と、受信制御部21にて受信されたまたはデータ復元部22にて復元された元データのデータファイルを保存するファイル格納部23とを備える。かかる構成において、ファイル格納部23は、例えば図2に示したコンピュータ装置におけるメインメモリ103やハードディスク105にて実現される。また、受信制御部21及びデータ復元部22は、プログラム制御されたCPU101にて実現される。
CPU101を制御してこれらの機能を実現するプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワーク30を介して配信したりすることにより提供される。図2に示したコンピュータ装置では、このプログラムがハードディスク105に保存(インストール)された後、メインメモリ103に読み込まれ展開されて、CPU101を制御し、受信制御部21及びデータ復元部22として機能させる。
【0029】
次に、データ復元部22について、さらに詳細に説明する。
本来、送信側端末10から送信されたデータが通信中に喪失することなく受信側端末20に受信されれば、受信データ中に元データが完全な形で含まれる。しかし、送信データの一部が喪失した場合であっても、一定の範囲内であれば、データ復元部22により元データを復元することが可能である。
データ復元部22は、受信制御部21にて受信された受信データのうち、所定のクラスタにおいて元データの一部が喪失している場合、当該クラスタにおける喪失していない元データとパリティ・データとをデコードし、元データを得ることができる。このデコードはクラスタごとに行われる。なお、パリティ・データのみが失われた場合、元データは無事なのでデコードの必要はない。
ここで、本実施の形態のデータ復元部22は、所定のクラスタの受信データをデコードするために、必用に応じて他のクラスタにおける畳み込みデータを利用する。したがって、本実施の形態による他のクラスタのデータを利用した復元を行うためには、復元可能なクラスタについては、元データの喪失の有無に関わらず復元することが必要となる場合がある。
【0030】
図7は、本実施の形態におけるデコード方法を説明する図である。
本実施の形態では、上述したように元データに畳み込みデータを加えたk+s個のデータをエンコードしてt+s個のデータからなるパリティ・データ(送信用パリティ・データ+s個のデータ)を生成している。したがって、これらk+s+t+s個のデータのうち、任意のk+s個のデータをデコードすれば、元データ及び畳み込みデータを復元することができる。そこでデータ復元部22は、まずデコードしようとするクラスタから、元データのデータ数kに畳み込みデータのデータ数sを加算したk+s個のデータを抽出する。送信側端末10から送信される各クラスタのデータ数は、上記のようにk+t個のデータからなるデータ列であり、s≦tであるので、通信の際にt−s(=(k+t)−(k+s))個以上のデータを喪失していなければ、k+s個のデータを抽出できる。
そして、このk+s個のデータをデコードし、図7に示すように、k個の元データ711とs個の畳み込みデータ712とを復元する。
【0031】
ここで、所定のクラスタの受信データに関して、t−s個よりも多くのデータが喪失し、データ数がk+s個に満たない場合を考える。この場合、当該クラスタの直前または直後のクラスタの元データ及び畳み込みデータが復元可能であるならば、これらのクラスタからデータを付与することで、当該所定のクラスタ(以下、着目クラスタ)についても元データ及び畳み込みデータを復元することができる。すなわち、所定のクラスタにおける畳み込みデータと、直前のクラスタにおけるパリティ・データのうちの送信用パリティ・データ以外のs個のデータとが同一であることを利用する(図4参照)。
【0032】
まず、図7(A)を参照して、着目クラスタの直前のクラスタに関して元データ及び畳み込みデータが復元できた場合について説明する。
この場合、直前のクラスタの復元データ(データ数はk+s個)を送信側端末10の送信データ作成部12と同様の手法でエンコードすれば、送信データ作成部12が生成したパリティ・データ420と同一のパリティ・データ720を生成することができる。すなわち、このパリティ・データ720のうち、送信用パリティ・データ421に相当する部分以外のs個のデータ722は、着目クラスタにおける畳み込みデータ712と同一である。
そこで、当該直前のクラスタの復元データをエンコードしてパリティ・データ720を生成し、s個のデータ722の部分から必要個数のデータ(補充データ)を着目クラスタに追加して、着目クラスタにおけるk+s個のデータを補完する。これにより、当該着目クラスタについても元データ711及び畳み込みデータ712が復元される。
【0033】
次に、図7(B)を参照して、着目クラスタの直後のクラスタに関して元データ及び畳み込みデータが復元できた場合について説明する。
この場合、直後のクラスタの畳み込みデータ712と着目クラスタのデータ722とは同一である。そこで、当該直後のクラスタにおける復元された畳み込みデータ712から必要個数のデータ(補充データ)を着目クラスタに追加して、着目クラスタにおけるk+s個のデータを補完する。これにより、当該着目クラスタについても元データ711及び畳み込みデータ712が復元される。
【0034】
図8は、以上の手法によるデコード済みのクラスタを利用したデータ補完の様子を説明する図である。
図8において、クラスタにおける元データ及び畳み込みデータを復元するのに必要な受信データの数(k+s個)を必要数とする(受信データの最大数はk+t個である)。図8に示す例では、クラスタ0とクラスタ6とは、必要数以上のデータを受信しており、単独で元データ及び畳み込みデータを復元できる。
クラスタ1、2は、受信データが元データの個数分であり、必要数に満たない。しかし、クラスタ0の復元データから順次補充データを取得して補完することにより、元データ及び畳み込みデータを復元することができる。同様に、クラスタ4、5、7、8も受信データが元データの個数分であり必要数に満たないが、クラスタ6の復元データから順次補充データを取得して補完することにより、元データ及び畳み込みデータを復元することができる。
次にクラスタ3は、受信データが元データの個数よりもさらにs個、すなわち必要数よりも2s個少ない。この場合でも、上記のようにしてクラスタ2及びクラスタ4の元データ及び畳み込みデータが復元されるので、これらの復元データからs個ずつ補充データを取得して補完することにより、クラスタ3の元データ及び畳み込みデータを復元することができる。
【0035】
このように、本実施の形態では、1つのクラスタ単独で元データを復元するためには元データの個数と畳み込みデータの個数とを加算した数のデータ数が必要となるが、そのようなクラスタ(通信状況の比較的良好であったクラスタ)が1つでも存在すれば、その復元データを利用することで、他のクラスタにおいては元データの個数分のデータを受信できれば元データを復元できることとなる。そして、部分的には、元データの個数よりもさらに少ない数の受信データからも元データを復元できることとなる。
【0036】
図9及び図10は、受信側端末20のデータ復元部22による元データの復元処理の動作を説明するフローチャートである。なお、図示の手順は、受信側端末20の動作の一例に過ぎず、必ずしもこの手順には限定されない。
図9、10に示すデータの復元処理に先立って、受信制御部21により送信側端末10から送信されたデータが受信されている。そして、データ復元部22はまず図9に示すように、エンコードされた順にクラスタをデコードして元データを復元する。そして、この手順で復元できなかったクラスタに対し、図10に示す手順で復元を試みる。
【0037】
図9を参照すると、データ復元部22は、受信制御部21にて受信された最初のクラスタであるクラスタ0を着目クラスタとし、その受信データに対して、予め設定された所定の初期値からなるs個の畳み込みデータ712を追加する(ステップ901)。この初期値は、送信側端末10の送信データ作成部12においてクラスタ0のパリティ・データを生成する際に元データ411に付加する畳み込みデータ412の初期値と同一である。この畳み込みデータ412、712の初期値は、予めネットワーク30に接続された全ての送信側端末10及び受信側端末20において共有することができるので、通信により喪失することなく追加できる。なお、最初にクラスタ0の受信データが元データを復元するための必要数(k+s個)だけあるかどうかを調べ、必要数に満たない場合にのみ畳み込みデータ712の初期値を追加するようにしても良い。
【0038】
次に、畳み込みデータ712の初期値を付加されたクラスタ0のデータ数が必要数のk+s個以上あるかどうかを調べ、k+s個以上あれば、クラスタ0をデコードして元データ711を得る(ステップ902、903)。
畳み込みデータ712の初期値を付加されたクラスタ0のデータ数がk+s個に満たない場合、データ復元部22は、次に直前のクラスタがデコード済みかどうかを調べる。クラスタ0の場合はその前に他のクラスタが存在しないので、デコード済みではないと判断し、当該クラスタ0を所定の記憶装置(例えば図2のメインメモリ103)に一時的に保持する(ステップ904、908)。
ステップ903でクラスタ0をデコードできたか、もしくはステップ908でクラスタ0を保持した後、当該着目クラスタが最後のクラスタかどうかを調べ、次のクラスタがあれば、これを新たな着目クラスタとしてステップ902に戻る(ステップ909、910)。
【0039】
同様にして、新たな着目クラスタの受信データ数がk+s個以上あるかどうかを調べ、k+s個以上あれば、着目クラスタをデコードして元データ711及び畳み込みデータ712を得る(ステップ902、903)。
着目クラスタの受信データ数がk+s個に満たない場合、データ復元部22は、次に直前のクラスタがデコード済みかどうかを調べる(ステップ904)。そして、直前のクラスタがデコード済みであるならば、当該直前のクラスタにおける復元データをエンコードしたパリティ・データ720からs個までのデータ722を補充データとして取得し、補充する(ステップ905)。その上で、データを補充された着目クラスタのデータ数がk+s個以上あるかどうかを改めて調べ、k+s個以上あれば、データが補完されたので着目クラスタをデコードして元データ711及び畳み込みデータ712を得る(ステップ906、907)。
ステップ904で直前のクラスタがデコード済みでないと判断された場合、及び直前のクラスタから補充データを補充しても着目クラスタのデータ数がk+s個に満たなかった場合は、当該着目クラスタを所定の記憶装置(例えば図2のメインメモリ103)に一時的に保持する(ステップ908)。
【0040】
ステップ903またはステップ907で着目クラスタをデコードできたか、もしくはステップ908で着目クラスタを保持した後、当該着目クラスタが最後のクラスタかどうかを調べ、次のクラスタがあれば、これを新たな着目クラスタとしてステップ902に戻る(ステップ909、910)。
着目クラスタが最後のクラスタであったならば、次にデータ復元部22は、ステップ908で保持した(デコードされていない)クラスタについて、図10による処理を行う。
【0041】
図10を参照すると、データ復元部22は、記憶装置に保持されているクラスタの1つに着目し(ステップ1001)、着目クラスタの直後のクラスタがデコード済みかどうかを調べる(ステップ1002)。直後のクラスタがデコード済みであるならば、そのデコードされた畳み込みデータ712を補充データとして取得し、補充する(ステップ1003)。そして、データを補充された着目クラスタのデータ数がk+s個以上あるかどうかを改めて調べ、k+s個以上あれば、データが補完されたので着目クラスタをデコードして元データ711及び畳み込みデータ712を得る(ステップ1004、1005)。
以上の処理を、記憶装置に未処理のクラスタが無くなるまで繰り返す(ステップ1006)。また、直後のクラスタからデータを補充しても着目クラスタのk+s個に満たない場合は、着目クラスタに対するこれ以上のデータの補充はできないので、エラー処理(エラーメッセージの出力等)を行って処理を終了する(ステップ1007)。
【0042】
上記の動作において、ステップ1002で直後のクラスタがデコードされていないと判断した場合、このサイクルで当該着目クラスタはデコードされない。しかし、上記の処理を未処理のクラスタに対して逐次行っていき、当該クラスタの後方のクラスタがデコードされることで、当該クラスタが次に着目クラスタとなった際にデコードされることとなる。この他、図10に示した、直後のクラスタからデータを補充する操作を、クラスタを受信した順番の逆順に行っていくこととすれば、直後のクラスタが未だデコードされていないためにデータを補充できないということは無くなる(この場合、直後のクラスタがデコードされていないと判断されると、着目クラスタにデータの補充はできないので、エラー処理を行って処理を終了することとなる)。
【0043】
また、上記の手順は例示に過ぎず、他の手順によってデータを復元しても構わない。例えばk+s個のデータがあるクラスタについて先に元データ711及び畳み込みデータ712を復元してしまい、その後にk+s個の必要数に満たないクラスタについて前後のクラスタからデータを補充して復元するといった手順とすることもできる。
あるいは、受信した各クラスタにおける元データやパリティの数を調べ、必要数以上有するクラスタと必要数に満たないクラスタとの位置関係及び補充すべきデータの数に基づいて、どのクラスタが前、あるいは後ろのクラスタにいくつデータを供給するか、及びデコード・エンコードの順番を決定する。そして、決定された順番にしたがってエンコード・デコードを行い、必要数に満たないクラスタに補充が必要な数だけのデータを得て、かかるクラスタの元データを復元するといった手順とすることもできる。
さらに、デコード・エンコードの順番を決定する際、エンコード・デコードの計算量やDiskI/Oの手間も考慮することができる。例えば、所定のクラスタ及びその前後のクラスタの受信データ数がいずれも必要数を満たしているならば、当該所定のクラスタにおいて畳み込みデータ712は復元する必要が無く、元データ711のみを復元する。前のクラスタで受信データが必要数よりも1個不足しているなら、当該所定のクラスタにおいて畳み込みデータ712を1個だけ復元する。所定のクラスタの受信データ数が必要数に不足し、その前後のクラスタの受信データが必要数を満たすならば、パリティ・データ720におけるデータ722を得るよりも畳み込みデータ712を得る方が処理に要する手間が少ないので、後のクラスタの畳み込みデータ712からデータを補充する。
【0044】
以上のようにしてデータ復元部22により復元された元データ(及び受信制御部21にて受信された元データ)711は、送信側端末10において元のデータファイルをクラスタに分割したものである。したがって、かかる元データは、クラスタへの分割処理の逆変換により連結され、最終的に、送信側端末10においてファイル格納部11から読み出されたデータファイルに等しいデータファイルが復元されて、ファイル格納部23に格納される。
【0045】
上記のように、本実施の形態は、データ送信の際の処理として、各クラスタに対し、元データに他のクラスタのデータ(パリティ・データ)を付加してエンコードすることにより、パリティ・データを生成し、元データと共に送信する。したがって、受信データが喪失して元データを復元するための必要数に満たない場合でも、当該他のクラスタからデータを補充することによって、元データを復元することが可能となる。
この手法では、図8を参照して説明したように、通信におけるデータの喪失により、部分的に受信データの数が元データの数よりもさらに少ない場合であっても元データの復元を可能とし、FEC(Forward Error Correction)によるデータ通信において、受信成功確率を高め、データ通信の信頼性の向上を図ることができる。
これは逆に、受信成功確率を一定とするならば、パリティ・データ(本実施の形態における送信用パリティ・データ)のデータ数を少なくできることを意味する。すなわち、所定の受信成功確率を満足するデータ通信における冗長度(パリティ・データの割合)を低く抑えることが可能となる。
【0046】
上述した実施の形態では、送信データを作成する際、所定のクラスタにおけるパリティ・データ420のうち、送信用パリティ・データ421以外のs個のデータ422を次のクラスタの元データに付加している(図4参照)。したがって、受信側端末20では、最後のクラスタについては、その後方のクラスタからデータを補充することができない。すなわち、最後のクラスタのみ受信成功確率が低下することとなる。
そこで、最後のクラスタのみ、元データ411と送信用パリティ・データ421とからなるk+t個のデータを含む送信データに加えて、パリティ・データ420における送信用パリティ・データ421以外のs個のデータ422も送信する。このようにすれば、最後のクラスタについても他のクラスタと同様の補充用のデータが供給されることとなる。なお、最後のクラスタにおけるs個のデータ422の送信は、当該クラスタのみ、元データ411にパリティ・データ420の全てを付加したk+t+s個のデータからなるデータ列を送信データとして送信するようにしても良いし、送信用パリティ・データ421を除くs個のデータ422を別途送信しても良い。さらに、必ずしもs個のデータを全て送信しなくても良く、t’>tなるt’個のデータを前記元データに付加して送信データを作成して送信することも可能である。
なお、各クラスタの元のデータファイルに対応する並び順や最初のクラスタ、最後のクラスタ等を識別するための情報は、各クラスタを送信する際のパケットのヘッダ等に記述しておき、受信側端末20においてこのパケットヘッダの記述に基づいて判断できるようにすることができる。
【0047】
【発明の効果】
以上説明したように、本発明によれば、FECによるデータ通信において、配信成功確率を高め、データ通信の信頼性の向上を図ることができる。
また、本発明によれば、FECによるデータ通信における冗長度を低く抑えることができる。
【図面の簡単な説明】
【図1】 本実施の形態によるデータ通信が行われるネットワークシステムの概略構成を示す図である。
【図2】 図1に示した送信側端末及び受信側端末を実現するのに好適なコンピュータ装置のハードウェア構成の例を模式的に示した図である。
【図3】 本実施の形態における送信側端末の機能構成を示す図である。
【図4】 本実施の形態におけるパリティ・データの生成方法を説明する図である。
【図5】 本実施の形態の送信側端末によるデータ送信時の動作を説明するフローチャートである。
【図6】 本実施の形態における受信側端末の機能構成を示す図である。
【図7】 本実施の形態におけるデコード方法を説明する図である。
【図8】 本実施の形態におけるデコード済みのクラスタを利用したデータ補完の様子を説明する図である。
【図9】 本実施の形態の受信側端末によるデータ受信時の動作を説明するフローチャートである。
【図10】 本実施の形態の受信側端末によるデータ受信時の動作を説明するフローチャートである。
【図11】 従来技術によるデータ通信方法を説明する図である。
【図12】 従来技術によるパリティ・データの生成方法を示す図である。
【符号の説明】
10…送信側端末、11…ファイル格納部、12…送信データ作成部、13…送信制御部、20…受信側端末、21…受信制御部、22…データ復元部、23…ファイル格納部、30…ネットワーク、101…CPU、102…M/Bチップセット、103…メインメモリ、105…ハードディスク、106…ネットワークインターフェイス
Claims (18)
- ネットワーク上の端末装置間でデータの送受信を行うためのデータ処理方法であって、
所定の記憶装置から送信しようとする元データのデータファイルを読み出し、当該データファイルをk個のデータからなるクラスタに分割するステップと、
前記クラスタのk個の元データに対して、既にエンコードされた他のクラスタのパリティ・データから得られるs個のデータを畳み込みデータとして加え、エンコードしてt+s個のパリティ・データを生成するステップと、
前記パリティ・データのうちのt個のデータを前記元データに付加してk+t個のデータからなる送信データを作成するステップと、
所定のネットワークインターフェイスを介して、前記送信データを前記ネットワーク上の他の端末へ送信するステップと
を含むことを特徴とするデータ処理方法。 - 前記パリティ・データを生成するステップでは、最初にエンコードするクラスタに関して、前記元データに対して任意のs個のデータを加えてエンコードすることを特徴とする請求項1に記載のデータ処理方法。
- 前記送信データを作成するステップでは、所定の前記クラスタに関して、生成されたt+s個のパリティ・データのうちt’>tなるt’個のデータを前記元データに付加して送信データを作成することを特徴とする請求項1に記載のデータ処理方法。
- ネットワーク上の端末装置間でデータの送受信を行うためのデータ処理方法であって、
所定の記憶装置から送信しようとする元データのデータファイルを読み出し、当該データファイルをクラスタに分割するステップと、
前記クラスタの元データに他のクラスタにおけるパリティ・データの少なくとも一部を付加してエンコードし、当該他のクラスタのデータに関する情報を含むパリティ・データを生成するステップと、
前記パリティ・データを前記元データに付加して送信データを作成するステップと、
所定のネットワークインターフェイスを介して、前記送信データを前記ネットワーク上の他の端末へ送信するステップと
を含むことを特徴とするデータ処理方法。 - 前記パリティ・データを生成するステップでは、最初にエンコードするクラスタに関して、前記元データに対して任意のデータを付加してエンコードすることを特徴とする請求項4に記載のデータ処理方法。
- ネットワーク上の端末装置間でデータの送受信を行うためのデータ処理方法であって、
所定の記憶装置から送信しようとする元データのデータファイルを読み出し、当該データファイルをクラスタに分割するステップと、
前記クラスタの元データをエンコードし、他のクラスタのデータに関する情報を含むパリティ・データを生成するステップと、
前記パリティ・データを前記元データに付加して送信データを作成するステップと、
所定のネットワークインターフェイスを介して、前記送信データを前記ネットワーク上の他の端末へ送信するステップとを含み、
前記パリティ・データの少なくとも一部は、他のクラスタにおける元データをエンコードする際に当該元データに付加するデータと同一であることを特徴とするデータ処理方法。 - ネットワーク上の端末装置間でデータの送受信を行うためのデータ処理方法であって、
クラスタに分割され、各クラスタの元データとパリティ・データとを含むデータ列を受信するステップと、
通信中に所定のクラスタに関してデータの喪失があった場合に、当該所定のクラスタにおける喪失しなかったデータをデコードして、元データと、他のクラスタのパリティ・データの少なくとも一部であって受信された前記データ列の前記パリティ・データを生成するために当該元データに追加された畳み込みデータとを復元するステップと、
通信中のデータの喪失により前記所定のクラスタのデータ数が前記元データ及び前記畳み込みデータを復元するために必要な必要数に満たない場合に、前記元データをエンコードした際のエンコード順において当該所定のクラスタの直前のクラスタにおける復元された前記元データ及び前記畳み込みデータをエンコードして得られたデータ、または当該エンコード順において当該所定のクラスタの直後のクラスタにおける復元された前記畳み込みデータ、またはその両方を用いて当該所定のクラスタのデータを補完してデコードし、前記元データ及び前記畳み込みデータを復元するステップと、
受信または復元された各クラスタの元データを連結してデータファイルを作成し、所定の記憶装置に格納するステップと
を含むことを特徴とするデータ処理方法。 - ネットワークを介して端末装置間でデータ交換を行う通信システムにおいて、
送信側の端末装置は、送信しようとする元データのデータファイルをクラスタに分割し、各クラスタの元データに他のクラスタにおけるパリティ・データの少なくとも一部を畳み込みデータとして付加してエンコードすることによりパリティ・データを生成し、当該元データに当該パリティ・データの少なくとも一部を付加して生成された送信データを受信側の端末装置に送信し、
受信側の端末装置は、前記送信データを受信し、当該送信データの一部が通信中に喪失した場合、前記クラスタごとに前記元データを復元することを特徴とする通信システム。 - 前記受信側の端末装置は、受信した前記送信データのうち所定のクラスタにおけるデータ数が通信中のデータの喪失により前記元データを復元するために必要な必要数に満たない場合に、前記元データをエンコードした際のエンコード順において当該所定のクラスタの直前のクラスタにおける復元された前記元データ及び前記畳み込みデータをエンコードして得られたデータ、または当該エンコード順において当該所定のクラスタの直後のクラスタにおける復元された前記畳み込みデータ、またはその両方を用いて当該所定のクラスタのデータを補完して前記元データを復元することを特徴とする請求項8に記載の通信システム。
- ネットワークを介して端末装置間でデータ交換を行う通信システムにおいて、
送信側の端末装置は、送信しようとする元データのデータファイルをクラスタに分割し、各クラスタの元データに他のクラスタにおける所定のデータを付加してエンコードすることによりパリティ・データを生成し、当該元データに当該パリティ・データの少なくとも一部を付加して生成された送信データを受信側の端末装置に送信し、
受信側の端末装置は、前記送信データを受信し、当該送信データの一部が通信中に喪失した場合、前記クラスタごとに前記元データを復元し、
前記送信側の端末装置において生成される前記パリティ・データの少なくとも一部は、他のクラスタにおける元データをエンコードする際に当該元データに付加するデータと同一であることを特徴とする通信システム。 - ネットワークを介してデータ送信を行うデータ送信装置において、
元データのデータファイルを格納したファイル格納部と、
前記ファイル格納部から送信する元データのデータファイルを読み出してクラスタに分割し、当該クラスタごとに元データに他のクラスタにおけるパリティ・データの少なくとも一部を付加してエンコードすることによりパリティ・データを生成し、当該パリティ・データと当該元データとを含む送信データを作成する送信データ作成部と、
前記送信データ作成部にて作成された前記送信データを送信する送信制御部とを備えることを特徴とするデータ送信装置。 - 前記送信データ作成部は、所定のクラスタに関して、前記元データをエンコードした際のエンコード順において当該所定のクラスタの直前のクラスタにおけるパリティ・データを前記元データに付加してエンコードすることを特徴とする請求項11に記載のデータ送信装置。
- ネットワークを介してデータ送信を行うデータ送信装置において、
元データのデータファイルを格納したファイル格納部と、
前記ファイル格納部から送信する元データのデータファイルを読み出してクラスタに分割し、当該クラスタごとに元データに他のクラスタにおける所定のデータを付加してエンコードすることによりパリティ・データを生成し、当該パリティ・データと当該元データとを含む送信データを作成する送信データ作成部と、
前記送信データ作成部にて作成された前記送信データを送信する送信制御部とを備え、
前記送信データ作成部により生成される前記パリティ・データの少なくとも一部は、他のクラスタにおける元データをエンコードする際に当該元データに付加するデータと同一であることを特徴とするデータ送信装置。 - ネットワークを介して送信されたデータを受信するデータ受信装置において、
クラスタに分割され、各クラスタの元データとパリティ・データとを含むデータ列を受信する受信制御部と、
通信中に所定のクラスタに関してデータの喪失があった場合に、当該所定のクラスタにおける喪失しなかったデータをデコードして、元データと、他のクラスタのパリティ・データの少なくとも一部であって受信された前記データ列の前記パリティ・データを生成するために当該元データに追加された畳み込みデータとを復元し、当該データの喪失により前記所定のクラスタのデータ数が前記元データ及び前記畳み込みデータを復元するために必要な必要数に満たない場合に、前記元データをエンコードした際のエンコード順において当該所定のクラスタの直前のクラスタにおける復元された前記元データ及び前記畳み込みデータをエンコードして得られたデータ、または当該エンコード順において当該所定のクラスタの直後のクラスタにおける復元された前記畳み込みデータ、またはその両方を用いて当該所定のクラスタのデータを補完してデコードし、前記元データ及び前記畳み込みデータを復元するデータ復元部と、
受信または復元された前記元データを連結して得られたデータファイルを格納するファイル格納部と
を備えることを特徴とするデータ受信装置。 - ネットワークに接続されたコンピュータを制御して、データの送信処理を行うプログラムであって、
所定の記憶装置から送信しようとする元データのデータファイルを読み出し、当該データファイルをk個のデータからなるクラスタに分割する第1の処理と、
前記クラスタのk個の元データに対して、既にエンコードされた他のクラスタのパリティ・データから得られるs個のデータを畳み込みデータとして加え、エンコードしてt+s個のパリティ・データを生成する第2の処理と、
前記パリティ・データのうちのt個のデータを前記元データに付加してk+t個のデータからなる送信データを作成する第3の処理と、
所定のネットワークインターフェイスを介して、前記送信データを送信する第4の処理と
を前記コンピュータに実行させることを特徴とするプログラム。 - 前記プログラムによる前記第2の処理では、所定のクラスタにおける前記畳み込みデータとして、直前のクラスタに関して生成された前記パリティ・データにおける所定のs個のデータを用いることを特徴とする請求項15に記載のプログラム。
- 所定のクラスタに関して、前記第2の処理により生成されたt+s個のパリティ・データのうち、前記第3の処理で抽出したt個のデータ以外のデータを送信する処理を前記コンピュータにさらに実行させることを特徴とする請求項15に記載のプログラム。
- ネットワークに接続されたコンピュータを制御して、当該ネットワークを介して送信されたデータの受信処理を行うプログラムであって、
クラスタに分割され、各クラスタの元データとパリティ・データとを含むデータ列を受信する第1の処理と、
通信中に所定のクラスタに関してデータの喪失があった場合に、当該所定のクラスタにおける喪失しなかったデータをデコードして、元データと、他のクラスタのパリティ・データの少なくとも一部であって受信された前記データ列の前記パリティ・データを生成するために当該元データに追加された畳み込みデータとを復元する第2の処理と、
通信中のデータの喪失により前記所定のクラスタのデータ数が前記元データ及び前記畳み込みデータを復元するために必要な必要数に満たない場合に、前記元データをエンコードした際のエンコード順において当該所定のクラスタの直前のクラスタにおける復元された前記元データ及び前記畳み込みデータをエンコードして得られたデータ、または当該エンコード順において当該所定のクラスタの直後のクラスタにおける復元された前記畳み込みデータ、またはその両方を用いて当該所定のクラスタのデータを補完してデコードし、前記元データ及び前記畳み込みデータを復元する第3の処理と、
受信または復元された各クラスタの元データを連結してデータファイルを作成し、所定の記憶装置に格納する第4の処理と
を前記コンピュータに実行させることを特徴とするプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002345230A JP3815562B2 (ja) | 2002-11-28 | 2002-11-28 | データ処理方法、これを用いた通信システム、そのデータ送信装置、データ受信装置及びプログラム |
US10/715,579 US20040117722A1 (en) | 2002-11-28 | 2003-11-18 | Performance of communication systems using forward error correction |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002345230A JP3815562B2 (ja) | 2002-11-28 | 2002-11-28 | データ処理方法、これを用いた通信システム、そのデータ送信装置、データ受信装置及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004180074A JP2004180074A (ja) | 2004-06-24 |
JP3815562B2 true JP3815562B2 (ja) | 2006-08-30 |
Family
ID=32500732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002345230A Expired - Fee Related JP3815562B2 (ja) | 2002-11-28 | 2002-11-28 | データ処理方法、これを用いた通信システム、そのデータ送信装置、データ受信装置及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20040117722A1 (ja) |
JP (1) | JP3815562B2 (ja) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4580278B2 (ja) * | 2005-05-20 | 2010-11-10 | 財団法人エヌエイチケイエンジニアリングサービス | パケット中継装置、コンテンツ送信装置、パケット中継プログラムならびにパケット中継方法 |
US20080111977A1 (en) * | 2006-11-14 | 2008-05-15 | Asml Holding N.V. | Compensation techniques for fluid and magnetic bearings |
US8180029B2 (en) * | 2007-06-28 | 2012-05-15 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US8533611B2 (en) * | 2009-08-10 | 2013-09-10 | Voxer Ip Llc | Browser enabled communication device for conducting conversations in either a real-time mode, a time-shifted mode, and with the ability to seamlessly shift the conversation between the two modes |
US11095583B2 (en) | 2007-06-28 | 2021-08-17 | Voxer Ip Llc | Real-time messaging method and apparatus |
US20100198988A1 (en) * | 2009-01-30 | 2010-08-05 | Rebelvox Llc | Methods for using the addressing, protocols and the infrastructure of email to support near real-time communication |
US8688789B2 (en) * | 2009-01-30 | 2014-04-01 | Voxer Ip Llc | Progressive messaging apparatus and method capable of supporting near real-time communication |
US20110019662A1 (en) | 2007-06-28 | 2011-01-27 | Rebelvox Llc | Method for downloading and using a communication application through a web browser |
US8825772B2 (en) * | 2007-06-28 | 2014-09-02 | Voxer Ip Llc | System and method for operating a server for real-time communication of time-based media |
US9178916B2 (en) * | 2007-06-28 | 2015-11-03 | Voxer Ip Llc | Real-time messaging method and apparatus |
US8645477B2 (en) * | 2009-01-30 | 2014-02-04 | Voxer Ip Llc | Progressive messaging apparatus and method capable of supporting near real-time communication |
US20090277226A1 (en) * | 2007-10-16 | 2009-11-12 | Santangelo Salvatore R | Modular melter |
US8380874B2 (en) | 2007-10-19 | 2013-02-19 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US7751362B2 (en) * | 2007-10-19 | 2010-07-06 | Rebelvox Llc | Graceful degradation for voice communication services over wired and wireless networks |
US20090103529A1 (en) * | 2007-10-19 | 2009-04-23 | Rebelvox, Llc | Telecommunication and multimedia management method and apparatus |
US8559319B2 (en) * | 2007-10-19 | 2013-10-15 | Voxer Ip Llc | Method and system for real-time synchronization across a distributed services communication network |
US8145780B2 (en) | 2007-10-19 | 2012-03-27 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US8321581B2 (en) | 2007-10-19 | 2012-11-27 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US8111713B2 (en) * | 2007-10-19 | 2012-02-07 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US8682336B2 (en) | 2007-10-19 | 2014-03-25 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US8782274B2 (en) * | 2007-10-19 | 2014-07-15 | Voxer Ip Llc | Method and system for progressively transmitting a voice message from sender to recipients across a distributed services communication network |
US8001261B2 (en) * | 2007-10-19 | 2011-08-16 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US8090867B2 (en) * | 2007-10-19 | 2012-01-03 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US8250181B2 (en) * | 2007-10-19 | 2012-08-21 | Voxer Ip Llc | Method and apparatus for near real-time synchronization of voice communications |
US8099512B2 (en) * | 2007-10-19 | 2012-01-17 | Voxer Ip Llc | Method and system for real-time synchronization across a distributed services communication network |
US8699383B2 (en) * | 2007-10-19 | 2014-04-15 | Voxer Ip Llc | Method and apparatus for real-time synchronization of voice communications |
US8233598B2 (en) * | 2007-10-19 | 2012-07-31 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US8706907B2 (en) | 2007-10-19 | 2014-04-22 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US8699678B2 (en) | 2007-10-19 | 2014-04-15 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US8391312B2 (en) | 2007-10-19 | 2013-03-05 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US7751361B2 (en) | 2007-10-19 | 2010-07-06 | Rebelvox Llc | Graceful degradation for voice communication services over wired and wireless networks |
US8321582B2 (en) * | 2008-02-08 | 2012-11-27 | Voxer Ip Llc | Communication application for conducting conversations including multiple media types in either a real-time mode or a time-shifted mode |
US9054912B2 (en) | 2008-02-08 | 2015-06-09 | Voxer Ip Llc | Communication application for conducting conversations including multiple media types in either a real-time mode or a time-shifted mode |
US8542804B2 (en) | 2008-02-08 | 2013-09-24 | Voxer Ip Llc | Voice and text mail application for communication devices |
US8401583B2 (en) | 2008-04-11 | 2013-03-19 | Voxer Ip Llc | Time-shifting for push to talk voice communication systems |
WO2010001474A1 (ja) | 2008-07-03 | 2010-01-07 | 富士通株式会社 | 符号化装置、復号化装置、符号化方法、および復号化方法 |
US8325662B2 (en) * | 2008-09-17 | 2012-12-04 | Voxer Ip Llc | Apparatus and method for enabling communication when network connectivity is reduced or lost during a conversation and for resuming the conversation when connectivity improves |
CN101729224A (zh) * | 2008-10-20 | 2010-06-09 | 富士通株式会社 | 传输数据生成装置和接收机 |
US8270950B2 (en) * | 2008-12-05 | 2012-09-18 | Voxer Ip Llc | Mobile communication device, method, and system for reducing exposure to radio frequency energy during transmissions by transmitting media in/out while the mobile communication device is safe distance away from user |
US8849927B2 (en) * | 2009-01-30 | 2014-09-30 | Voxer Ip Llc | Method for implementing real-time voice messaging on a server node |
JP2015032885A (ja) * | 2013-07-31 | 2015-02-16 | 三菱電機株式会社 | 符号化装置及び復号装置 |
US11663073B2 (en) * | 2020-12-10 | 2023-05-30 | Advanced Micro Devices, Inc. | Method and apparatus for data protection in memory devices |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3697947A (en) * | 1970-10-31 | 1972-10-10 | American Data Systems Inc | Character correcting coding system and method for deriving the same |
US4159469A (en) * | 1977-10-17 | 1979-06-26 | Motorola, Inc. | Method and apparatus for the coding and decoding of digital information |
US5157671A (en) * | 1990-05-29 | 1992-10-20 | Space Systems/Loral, Inc. | Semi-systolic architecture for decoding error-correcting codes |
JPH11326507A (ja) * | 1998-01-19 | 1999-11-26 | Zebra Technol Corp | フォワ―ド・エラ―訂正システムを有する電子識別システム |
US6199190B1 (en) * | 1998-02-11 | 2001-03-06 | Conexant Systems, Inc. | Convolution decoding terminated by an error detection block code with distributed parity bits |
KR100282516B1 (ko) * | 1998-06-03 | 2001-03-02 | 김영환 | 길쌈부호 생성기 및 이를 내장한 디지털 신호 프로세서 |
US6944803B2 (en) * | 2000-07-06 | 2005-09-13 | Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communications Research Centre Canada | Code structure, encoder, encoding method, and associated decoder and decoding method and iteratively decodable code structure, encoder, encoding method, and associated iterative decoder and iterative decoding method |
CA2352935A1 (en) * | 2000-07-19 | 2002-01-19 | Trw Inc. | Method and apparatus for concatenated punctured encoding and decoding of a communications signal |
-
2002
- 2002-11-28 JP JP2002345230A patent/JP3815562B2/ja not_active Expired - Fee Related
-
2003
- 2003-11-18 US US10/715,579 patent/US20040117722A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2004180074A (ja) | 2004-06-24 |
US20040117722A1 (en) | 2004-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3815562B2 (ja) | データ処理方法、これを用いた通信システム、そのデータ送信装置、データ受信装置及びプログラム | |
US9236885B2 (en) | Systematic encoding and decoding of chain reaction codes | |
US7233264B2 (en) | Information additive code generator and decoder for communication systems | |
US9288010B2 (en) | Universal file delivery methods for providing unequal error protection and bundled file delivery services | |
US6320520B1 (en) | Information additive group code generator and decoder for communications systems | |
JP4157041B2 (ja) | 通信システムのための多段符号発生器及び復号器 | |
US8839085B2 (en) | Systems and methods for a soft-input decoder of linear network codes | |
CN115085872B (zh) | 数据处理方法及装置、存储介质、电子设备 | |
US20200403643A1 (en) | Raptor-q encoding apparatus with improved encoding delay time and method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060223 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060516 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20060517 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060530 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100616 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |