JP2004159042A - Information processor, information processing method, and program - Google Patents
Information processor, information processing method, and program Download PDFInfo
- Publication number
- JP2004159042A JP2004159042A JP2002322087A JP2002322087A JP2004159042A JP 2004159042 A JP2004159042 A JP 2004159042A JP 2002322087 A JP2002322087 A JP 2002322087A JP 2002322087 A JP2002322087 A JP 2002322087A JP 2004159042 A JP2004159042 A JP 2004159042A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- data
- data packet
- information processing
- restoration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は情報処理装置および方法、並びにプログラムに関し、特に、より好適にパケットデータを取得し、データの再生を行うことができるようにした、情報処理装置および方法、並びにプログラムに関する。
【0002】
【従来の技術】
近年、ブロードバンド通信網の発達などにより、インターネットに代表されるネットワークを介して、ユニキャストやマルチキャストでの、音声や映像等のデータのストリーミング配信やリアルタイムな放送などが数多く行われるようになってきた。
【0003】
従来、このようなネットワークを介した通信において、UDP/IP(User Datagram Protocol/Internet Protocol)を用いたユニキャストやマルチキャスト等の配信に、ブロック内のデータ誤りを検出し訂正するブロック符号の1つであるリードソロモン符号等を用いたFEC(Forward Error Correction)を併用した配信方式が提案されている(例えば、非特許文献1乃至3参照)。
【0004】
リードソロモン符号によるパケットロスに対するエラー訂正処理において、送信側では、所定の大きさのブロック単位ごとに、送信データの誤り訂正コードが生成され、その誤り訂正コードより冗長パケットが生成され、その生成された冗長パケットが、パケット化された送信データとともに配信される。
【0005】
そして、受信側では、パケット化された送信データとともに冗長パケットも受信し、送信データのパケットのロスが生じた場合、そのパケットを、受信した冗長パケットを用いて復元する。ロスしたパケットの復元が不可能である場合は、送信側に対して、ロスしたパケットの再送が要求される。
【0006】
しかしながら、この場合、ガロア体上の加減算、乗算、または除算が必要であり、復元等の処理に要する負荷が大きくなってしまう場合があった。
【0007】
一方、FECの符号化方式として、リードソロモン符号方式の代わりに、EOR(exclusive OR)演算を用いて冗長パケットを生成する方式がある(例えば、特許文献1参照)。
【0008】
EOR演算を用いた、パケットロスに対するエラー訂正処理において、送信側では、所定の大きさのブロック単位ごとに、EOR演算を用いて、送信データの誤り訂正コードが生成され、その誤り訂正コードより冗長パケットが生成され、その生成された冗長パケットが、パケット化された送信データとともに配信される。
【0009】
そして、受信側では、パケット化された送信データとともに冗長パケットも受信し、送信データのパケットのロスが生じた場合、そのパケットを、受信した冗長パケットを用いて復元する。ロスしたパケットの復元が不可能である場合は、送信側に対して、ロスしたパケットの再送が要求される。
【0010】
【非特許文献1】
米山 清二郎、外2名、“Reliable Multicast − Using FEC on IP version6”、[online]、平成11年12月15日、インターネットコンファレンス、[平成14年10月8日検索]、インターネット,<URL:http://www.internetconference.org/ic99/program.html>
【0011】
【非特許文献2】
窪 貴志、“信頼性マルチキャストを用いた実時間メディア伝送に関する考察”、[online]、平成13年2月18日、奈良先端科学技術大学院大学修士論文・課題研究発表会、[平成14年10月8日検索]、インターネット,<URL: http://isw3.aist−nara.ac.jp/IS/MasterThesis/2001/0051031.html>
【0012】
【非特許文献3】
米山 清二郎、“FEC on IPv6 for Reliable Multicast”、[online]、平成12年11月1日、インターネットコンファレンス、[平成14年10月8日検索]、インターネット,<URL: http://www.csl.sony.co.jp/ic2000/papers/S03_01.pdf>
【0013】
【特許文献1】
特開2001−189665号公報(第25−26ページ、図3)
【0014】
【発明が解決しようとする課題】
しかしながら、以上のような方法においては、実際にロスしたパケットの復元処理を実行するまで復元可能であるか否かを判定することができず、再送処理の必要が生じた場合の遅延時間が長くなってしまうという課題があった。
【0015】
特に、ストリーミング配信やリアルタイムのデータ配信において、受信側の装置は、順次送信されるデータを受信し、再生しなければならず、復元処理を短時間で行わなければならない。従って、上述したような遅延時間の増大は、再生能力に大きく影響する。
【0016】
本発明はこのような状況に鑑みてなされたものであり、より好適にパケットデータを取得し、データの再生を行うことができるようにしたものである。
【0017】
【課題を解決するための手段】
本発明の情報処理装置は、他の情報処理装置により送信された、配信用データのデータパケット、および複数のデータパケットに含まれる各データの排他的論理和演算結果を含む冗長パケットを受信する受信手段と、受信手段により受信できなかったデータパケットが復元可能であるか否かを判定する可能性判定手段と、可能性判定手段による判定結果に基づいて、復元不可能である場合、受信できなかったデータパケットの再送を他の情報処理装置に要求する要求手段と、可能性判定手段による判定結果に基づいて、復元可能である場合、受信手段により受信されたデータパケットおよび冗長パケットを用いて、排他的論理和演算を用いた連立一次方程式を解くことによって、受信できなかったデータパケットを復元する復元手段とを備えることを特徴とする。
【0018】
前記冗長パケットは、所定の大きさに分割された配信用データであるブロック毎に、同一のブロックに対応する、任意に選択された複数のデータパケットを用いて生成されるようにすることができる。
【0019】
前記データパケットおよび冗長パケットは、ブロック単位で他の情報処理装置より送信されるようにすることができる。
【0020】
前記受信手段は、同一のブロックのデータパケットおよび冗長パケットの受信処理が完了したか否かを監視する監視手段をさらに備えるようにすることができる。
【0021】
前記受信手段により受信できなかったデータパケットが存在するか否かを判定する存在判定手段をさらに備えるようにすることができる。
【0022】
前記冗長パケットの生成に関する情報を他の情報処理装置と共有するようにすることができる。
【0023】
前記可能性判定手段は、連立一次方程式の係数を表す行列の成分に基づいて、受信手段により受信できなかったデータパケットを復元可能であるか否かを判定するようにすることができる。
【0024】
前記可能性判定手段により復元不可能と判定されたデータパケットの再送処理を行う余裕があるか否かを判定する余裕判定手段をさらに備え、要求手段は、余裕判定手段により再送処理を行う余裕があると判定された場合、受信できなかったデータパケットの再送を他の情報処理装置に要求するようにすることができる。
【0025】
前記復元手段は、値が0でない係数を選択するための処理方法であるピボット選択を用いたガウス消去法を用いて、連立一次方程式を解くようにすることができる。
【0026】
前記復元手段は、行列の所定の列について値が0でない係数を含む方程式のうち、隣り合う方程式同士で各項毎に排他的論理和を演算する応用ガウス消去法を用いて、連立一次方程式を解くようにすることができる。
【0027】
本発明の情報処理方法は、他の情報処理装置により送信された、配信用データのデータパケット、および複数のデータパケットに含まれる各データの排他的論理和演算結果を含む冗長パケットを受信する受信制御ステップと、受信制御ステップの処理により受信できなかったデータパケットが復元可能であるか否かを判定する可能性判定ステップと、可能性判定ステップの処理による判定結果に基づいて、復元不可能である場合、受信できなかったデータパケットの再送を他の情報処理装置に要求する要求ステップと、可能性判定ステップの処理による判定結果に基づいて、復元可能である場合、受信制御ステップの処理により受信されたデータパケットおよび冗長パケットを用いて、排他的論理和演算を用いた連立一次方程式を解くことによって、受信できなかったデータパケットを復元する復元ステップとを含むことを特徴とする。
【0028】
本発明のプログラムは、他の情報処理装置により送信された、配信用データのデータパケット、および複数のデータパケットに含まれる各データの排他的論理和演算結果を含む冗長パケットを受信する受信制御ステップと、受信制御ステップの処理により受信できなかったデータパケットが復元可能であるか否かを判定する可能性判定ステップと、可能性判定ステップの処理による判定結果に基づいて、復元不可能である場合、受信できなかったデータパケットの再送を他の情報処理装置に要求する要求ステップと、可能性判定ステップの処理による判定結果に基づいて、復元可能である場合、受信制御ステップの処理により受信されたデータパケットおよび冗長パケットを用いて、排他的論理和演算を用いた連立一次方程式を解くことによって、受信できなかったデータパケットを復元する復元ステップとをコンピュータに実現させることを特徴とする。
【0029】
本発明の情報処理装置および方法、並びにプログラムにおいては、他の情報処理装置により送信された、配信用データのデータパケット、および複数のデータパケットに含まれる各データの排他的論理和演算結果を含む冗長パケットが受信され、受信できなかったデータパケットが復元可能であるか否かが判定され、その判定結果に基づいて、復元不可能である場合、受信できなかったデータパケットの再送が他の情報処理装置に要求され、復元可能である場合、受信されたデータパケットおよび冗長パケットを用いて、排他的論理和演算を用いた連立一次方程式を解くことによって、受信できなかったデータパケットが復元される。
【0030】
【発明の実施の形態】
図1は、本発明を適用したデータ配信システムの基本的な構成例を表す図である。
【0031】
図1において、サーバ1は、ストリーミング配信用の、画像や音声等のストリーミングデータを蓄積しており、インターネット等に代表されるネットワーク2を介して、配信を要求したクライアント3−1または3−2に対して、ストリーミング配信サービスを提供する。サーバ1は、クライアント3−1または3−2より供給された配信要求に基づいて、ユニキャストまたはマルチキャストでデータを配信する。
【0032】
また、サーバ1は、カメラやマイク等の図示せぬ外部入力装置を介して入力された画像や音声等のデータを送信用のデータに変換し、配信を要求したクライアント3−1または3−2に、ネットワーク2を介してリアルタイムに配信(以下、LIVE配信と称する)する。
【0033】
クライアント3−1および3−2は、ユーザに操作され、ネットワーク2を介してサーバ1にアクセスし、ユーザに指示されたデータの配信を要求する。そして、その要求に基づいて、サーバ1が要求されたデータのストリーミング配信またはLIVE配信を行うと、クライアント3−1および3−2は、そのデータを受信し、処理を行い、受信したデータに対応する画像をディスプレイに表示したり、受信したデータに対応する音声をスピーカより出力したりする。
【0034】
なお、クライアント3−1,3−2を個々に区別する必要がない場合、単にクライアント3と称する。
【0035】
サーバ1は、後述するように、上述したストリーミング配信やLIVE配信において、UDP(User Datagram Protocol)/IP(Internet Protocol)プロトコルに、EORによって形成された冗長パケットによるFECと再送制御を併用して、データを配信する。すなわち、サーバ1は、データをパケット化するとともに、パケット化されたデータ(以下、データパケットと称する)より誤り訂正用の冗長パケットを生成し、それらのデータパケットおよび冗長パケットをクライアント3に配信する。
【0036】
データパケットおよび冗長パケットを受信したクライアント3は、誤り訂正処理を行い、受信したパケットからロスしたデータパケットを復元する。復元不可能であり、かつ、再送が可能な場合、クライアント3は、そのデータパケットの再送を、ネットワーク2を介してサーバ1に要求する。サーバ1は、その再送要求を取得すると、要求されたデータパケットを要求元であるクライアント3に再送する。クライアント3は、再送されたデータパケットと、既に取得されている他のデータパケットを用いて、データを再生する。
【0037】
図2は、図1に示すサーバ1の構成例を示すブロック図である。
【0038】
図2において、CPU(Central Processing Unit)11は、ROM(Read Only Memory)12に記憶されているプログラム、または記憶部33からRAM(Random Access Memory)13にロードされたプログラムに従って各種の処理を実行する。RAM13にはまた、CPU11が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0039】
パケット生成部14は、CPU11に制御され、記憶部33または通信部34より供給された配信用のデータ(以下、配信データと称する)をパケット化してデータパケットを生成し、そのデータパケットを通信部34に供給する。また、パケット生成部14は、CPU11に制御され、後述するように、EOR演算を用いて、生成したデータパケットより誤り訂正用の冗長パケットを生成する。
【0040】
CPU11、ROM12、RAM13、およびパケット生成部14は、バス20を介して相互に接続されている。このバス20にはまた、入出力インタフェース30も接続されている。
【0041】
入出力インタフェース30には、キーボードやマウスなどよりなる入力部31、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などよりなるディスプレイ、およびスピーカなどよりなる出力部32、ハードディスクなどにより構成される記憶部33、並びに、モデム、LANカード、およびターミナルアダプタなどにより構成される通信部34が接続されている。
【0042】
記憶部33には、入力部31または通信部34を介して取得された配信データ、並びに、各種の処理を実行するためのデータやプログラム等が記憶されており、各部にそれらのデータやプログラムを供給する。
【0043】
通信部34は、ネットワーク2を介しての通信処理を行う。例えば、通信部34は、CPU11に制御され、パケット生成部14より供給されたストリーミング配信用データパケットを、UDPやRTP(Real−time Transport Protocol)/RTSP(Real Time Streaming Protocol)等の所定のプロトコルを用いて配信する。また、通信部34は、CPU11に制御され、接続された外部入力装置より供給されるデータを取得し、RAM13、パケット生成部14、または記憶部33に供給する。
【0044】
入出力インタフェース30にはまた、必要に応じてドライブ40が接続され、磁気ディスク41、光ディスク42、光磁気ディスク43、或いは半導体メモリ44などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部33にインストールされる。
【0045】
以上において、バス20に接続されるパケット生成部14がデータパケットおよび冗長パケットの生成処理を行うように説明したが、これに限らず、パケット生成部14において行われるパケット生成処理の全部または一部が、通信部64またはCPU11において実行されるようにしてもよい。
【0046】
図3は、図1に示すクライアント3の構成例を示すブロック図である。
【0047】
図3において、CPU61は、ROM62に記憶されているプログラム、または記憶部83からRAM63にロードされたプログラムに従って各種の処理を実行する。RAM63にはまた、CPU61が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0048】
データ再生部64は、CPU61に制御され、通信部84において受信したデータパケット、およびパケット復元部65において復元されたデータパケットより配信データを再構成し、MPEG(Moving Picture Experts Group)方式やATRAC3(Adaptive TRansform Acoustic Coding 3)(登録商標)方式等でデータがエンコードされている場合、対応する方式でデコードするなどしてデータを再生し、その再生されたデータ(以下、再生データと称する)をCPU61、RAM62、出力部82、または記憶部83に供給する。
【0049】
パケット復元部65は、CPU61に制御され、後述するように、通信部84において受信した冗長パケットを用いて、ロスしたデータパケットの復元処理を行う。そして、パケット復元部65は、復元したデータパケットをCPU61、RAM63、または、データ再生部64に供給する。また、パケット復元部65は、復元処理の前に、ロスしたパケットが復元可能であるか否かの判定処理も行い、判定結果をCPU61に供給する。
【0050】
CPU61、ROM62、RAM63、データ再生部64、およびパケット復元部65は、バス70を介して相互に接続されている。このバス70にはまた、入出力インタフェース80も接続されている。
【0051】
入出力インタフェース80には、キーボードやマウスなどよりなる入力部81、CRTやLCDなどよりなるディスプレイ、およびスピーカなどよりなる出力部82、ハードディスクなどにより構成される記憶部83、並びに、モデム、LANカード、およびターミナルアダプタなどにより構成される通信部84が接続されている。
【0052】
入力部81は、キーボードやマウスなどにより構成され、ユーザからの要求を受け付け、その情報をCPU61やRAM62に供給する。出力部82は、データ再生部64などより供給されたデータに対応する画像をディスプレイに表示したり、供給されたデータに対応する音声をスピーカより出力したりする。
【0053】
記憶部83には、入力部31または通信部34を介して供給された各種の処理を実行するためのデータやプログラム等が記憶されており、各部にそれらのデータやプログラムを供給する。
【0054】
通信部84は、ネットワーク2を介しての通信処理を行う。例えば、通信部84は、ネットワーク2を介して、サーバ1よりストリーミング配信されたデータパケットや冗長パケットを、UDPやRTP/RTSP等の所定のプロトコルを用いて受信し、受信したパケットをCPU61、RAM63、データ再生部64、またはパケット復元部65等に供給する。また、通信部84は、配信要求やパケットの再送要求などの、CPU61などより供給された各種の情報を、ネットワーク2を介してサーバ1に供給する。
【0055】
入出力インタフェース80にはまた、必要に応じてドライブ90が接続され、磁気ディスク91、光ディスク92、光磁気ディスク93、或いは半導体メモリ94などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部83にインストールされる。
【0056】
以上において、バス70に接続されたデータ再生部64において、配信データの再構成やデコード等の再生処理が行われるように説明したが、これに限らず、上述したデータ再生部64が行う処理の全部または一部が、通信部84またはCPU61において実行されるようにしてもよい。
【0057】
同様に、バス70に接続されたパケット復元部65において行われる、ロスしたパケットの復元処理の全部または一部が、通信部84またはCPU61において実行されるようにしてもよい。
【0058】
次に、サーバ1による配信データのストリーミング配信処理について説明する。クライアント3より配信要求を、ネットワーク2を介して取得したサーバ1のCPU11は、要求された配信データを記憶部33より取得し、パケット生成部14に供給し、データ送信処理を開始する。図4のフローチャートを参照して、サーバ1によるデータ送信処理を説明する。
【0059】
配信データを供給されたパケット生成部14は、取得した配信データを、所定の大きさのブロック単位で処理する。パケット生成部14は、ステップS1において、1ブロック分の配信データを分割してパケット化し、データパケットを生成する。
【0060】
図5は、パケット生成部14において生成される1ブロック分のデータパケットおよび冗長パケットの構成例を示す模式図である。図5においてEOR演算は、「+」を用いて表す。
【0061】
図5において、データパケット101は、パケット101−1乃至101−Nにより構成される。各パケットには、1ブロック分の配信データが所定の大きさで分割されたデータD1乃至DNが1つずつ含まれている。
【0062】
すなわち、図4のステップS1において、パケット生成部14は、1ブロック分の配信データDをN個のデータD1乃至DNに分割し、各データをパケット化してパケット101−1乃至パケット101−Nを生成する。
【0063】
そして、パケット生成部14は、処理をステップS2に進め、生成したデータパケット101の中から任意に複数のパケットを選択し、それらのパケットに含まれるデータのEOR演算を行い、誤り訂正用の冗長パケットを生成する。
【0064】
図5において、冗長パケット102は、パケット102−1乃至102−Mにより構成される。パケット生成部14は、データD1乃至DNの中から複数個のデータを選択し、それらの値のEOR演算を行う。パケット生成部14は、この処理をM回繰り返して誤り訂正用の冗長データを生成し、さらにパケット化して誤り訂正用のパケットであるパケット102−1乃至102−Mを生成する。
【0065】
すなわち、パケット生成部14は、図4のステップS1およびステップS2の処理において、供給された1ブロック分の配信データDをN個に分割してデータD1乃至DNを生成した後、以下の式(1)に示されるような演算を行い、誤り訂正用のM個のデータを生成して、送信データS1乃至SN+Mを算出する。
【0066】
【数1】
【0067】
式(1)において、右辺第1項はN+M行N列の行列であり、その第1行乃至第N行はデータパケット101に対応する送信データS1乃至SNを生成するための係数であり、第N+1行乃至第N+M行は冗長パケット102に対応する送信データSN+1乃至SN+Mを生成するための係数である。この第N+1行乃至第N+M行の各成分の値は、「0」または「1」のいずれかが任意に設定される。なお、式(1)において、各成分の加算は、対応するビットごとのEOR演算を用いて行う。
【0068】
式(1)の左辺の送信データS1乃至SNは、それぞれ、右辺第2項のデータD1乃至DNに対応し、送信データSN+1乃至SN+Mは、それぞれ、データD1乃至DNより任意に選択されたデータのEOR演算結果である。
【0069】
式(1)の右辺第1項の行列は、パケット生成部14により生成される。この行列の第1行乃至第N行の各成分は、N行N列の単位行列を形成するように構成され、第N+1行乃至第N+M行の各成分は、例えば、ランダム関数等を用いて、「0」または「1」のいずれかの値がランダムに設定される。なお、EOR演算されるデータの個数はいくつであってもでもよいが、データDN+1乃至DN+Mの各データ間でその個数を統一したり、所定の個数以上に限定したりする等、個数の範囲に制限を設けるようにしてもよい。
【0070】
なお、式(1)の右辺第1項の行列は、演算に用いられるまでに生成されていれば、どのようなタイミングで生成されてもよく、データ送信処理を行う前より予め準備されていてもよいし、演算の際に算出されるようにしてもよい。また、この行列は、ブロック毎に異なる成分の行列を使用するようにしてもよいし、全てのブロックにおいて共通の行列を使用するようにしてもよい。
【0071】
さらに、演算に使用された式(1)の右辺第1項の行列は、後述するように、データを受信するクライアント3によるパケット復元処理においても使用される。すなわち、データの授受を行うサーバ1およびクライアント3において、同じブロックに対しては、共通の行列を用いて処理できるように、式(1)の右辺第1項の行列に関する情報を共有する必要がある。この情報の共有は、クライアント3がサーバ1にデータの配信を要求する際に行うようにしてもよいし、サーバ1で使用された式(1)の右辺第1項の行列に関する情報をデータパケット101や冗長パケット102に付加することによって行うようにしてもよいし、上述した以外の方法であってもよい。
【0072】
この、式(1)の右辺第1項の行列に関する情報は、その行列の各成分の内容を直接表す情報であってもよいし、間接的に行列の各成分の内容を表す情報であってももちろんよい。例えば、その行列の各成分がランダム関数によって決定されている場合、そのランダム関数の「種」を表す情報を式(1)の右辺第1項の行列に関する情報とすることも可能である。
【0073】
なお、EOR演算するデータの選択方法(すなわち、式(1)の右辺第1項の行列の第N+1行乃至第N+M行の各成分の値の決定方法)は、上述したランダムに選択する以外の方法であってもよく、例えば、複数の所定の組み合わせを用いる等、どのような方法であってもよい。さらに、パケット生成部14が生成した誤り訂正用のパケットの性能評価を行い、それらの中から性能の良いパケットの組み合わせを選択し、冗長パケット102として採用するようにしてもよい。
【0074】
また、生成される冗長パケット102のパケット数(M個)は、実用的な範囲であればいくつであってもよいが、1ブロックのデータに対して冗長パケット数を増加させると、データパケットの復元能力が上がるとともに、配信されるデータ量や処理に必要な負荷が増加するという特徴があり、システムやネットワーク等の環境や配信データの内容等に合わせて、最適な冗長パケット数を選択するのが望ましい。
【0075】
以上のようにして、式(1)の演算により誤り訂正用のデータを生成したパケット生成部14は、生成された各データをパケット化し、冗長パケット102を生成する。
【0076】
図4に戻り、ステップS2の処理を行い、冗長パケット102を生成したパケット生成部14は、CPU11に制御され、生成されたデータパケット101および冗長パケット102を通信部34に供給する。
【0077】
ステップS3において、通信部34は、取得したデータパケット101および冗長パケット102を、所定のプロトコルに従い、ネットワーク2を介して配信先のクライアント3に送信する。
【0078】
そして、ステップS4においてCPU11は、データ送信処理を終了するか否かを判定する。未送信の配信データが存在し、終了しないと判定した場合、CPU11は、ステップS1に処理を戻し、次のブロックに対して、上述した処理を繰り返す。また、例えば、要求された配信データの送信が完了したり、ユーザやクライアント3より配信停止の指示を取得したりして、データ送信処理を終了すると判定した場合、CPU11は、データ送信処理を終了する。
【0079】
以上のように、配信データは、サーバ1により、所定のブロックごとにデータ送信処理を施され、パケット単位でクライアント3に配信される。
【0080】
図6は、サーバ1よりクライアント3に送信されるパケットの様子の例を示す模式図である。図6Aに示されるように、サーバ1は、ブロック毎に生成されたデータパケットおよび冗長パケットを、ブロック毎に送信する。
【0081】
すなわち、サーバ1は、第(T−1)ブロックの最後の冗長パケット111−Mに続いて、第Tブロックのデータパケット112−1乃至112−N、および冗長パケット113−1乃至113−Mを送信する。
【0082】
そして、サーバ1は、第Tブロックの最後の冗長パケット113−Mを送信すると、次のブロックである第(T+1)ブロックのデータパケットを、データパケット114−1、114−2、・・・という具合に順次送信する。
【0083】
パケットの送信先であるクライアント3は、通信部84において各パケットを受信するが、ネットワーク2等のパケット転送経路上において、図6Bに示されるようなクライアント3に受信されたパケットをブロック毎に整列させた例のように、一部のパケットをロスしている場合がある。図6Bにおいて、クライアント3は、第Tブロックのデータパケット112−1乃至112−4、並びに冗長パケット113−2をロスしている。
【0084】
クライアント3は、後述するようにデータ受信処理を行い、受信した冗長パケット113−1、113−3乃至113−Mを用いて、このようにロスしたデータパケット112−1乃至112−4を復元することが可能か否かを判定し、可能である場合は復元処理を行い、不可能である場合はサーバ1にロスしたパケットの再送を要求する。
【0085】
図6Bの第Tブロックに対する処理を例にして、クライアント3によるデータ受信処理を、図7のフローチャートを参照して説明する。
【0086】
配信データの送信先であるクライアント3の通信部84は、ステップS21において、パケットの受信制御処理を行い、ネットワーク2を介してサーバ1より供給された第Tブロックのデータパケット112−5乃至112−N、並びに冗長パケット113−1、113−3乃至113−Mを順次取得し、バス70を介してデータ再生部64に供給する。
【0087】
なお、受信されたパケットは、通信部84に内蔵されるRAMに一時保持され、後述するステップS22の処理において、対象ブロックのパケット受信が完了したと判定された場合に、ブロック毎にデータ再生部64に供給されるようにしてもよい。また、受信されたパケットがCPU61に内蔵されるRAM、RAM63、または記憶部83に保持されるようにしてももちろんよい。さらに、受信されたパケットは、データ再生部64に供給される際に、パケット復元部65にも供給されるようにしてもよい。
【0088】
ステップS22において、CPU61は、通信部84を制御して、受信対象ブロックのパケット受信が完了したか否かを判定する。受信対象ブロックについて未受信のパケットが存在し、受信対象ブロックのパケット受信が完了していないと判定した場合、CPU61は、処理をステップS21に戻し、パケットの受信制御処理を繰り返す。
【0089】
ステップS22において、受信対象ブロックのパケットを全て受信し、受信が完了したと判定した場合、CPU61は、ステップS23に処理を進める。
【0090】
なお、パケットが受信される順番はパケットの到着順であり、送信された順序でパケットが受信されるとは限らない。従って、CPU61は、予め定められた所定の時間内において上述したようにステップS22の判定処理を行う。ステップS21およびS22の処理を繰り返し、所定の時間が経過した場合、CPU61は、ステップS22において、受信対象ブロックのパケット受信が完了したと判定し、処理をステップS23に進める。
【0091】
例えば、図6Bに示されるように、第Tブロックのデータパケット112−1乃至112−4をロスしており、所定の時間が経過しても、受信対象ブロックについて未受信のパケットが存在する場合、CPU61は、それらのパケットをロスしたと判定し、対象ブロックのパケット受信が完了したと判定し、ステップS23に処理を進める。
【0092】
ステップS23において、CPU61に制御されたデータ再生部64は、供給されたデータパケットが1ブロック分揃っているかを確認し、ロスしたデータパケットが存在するか否かを判定する。ロスしたデータパケットが存在すると判定した場合、データ再生部64は、取得したデータパケットおよび冗長パケット、並びに、式(1)の右辺第1項に関する情報をパケット復元部65に供給し、処理をステップS24に進める。
【0093】
ステップS24において、データ再生部64より各種のデータを取得したパケット復元部65は、ロスしたデータパケットについてパケット復元可能性判定処理を行い、処理結果をCPU61に供給する。パケット復元可能性判定処理の詳細については、図8乃至図10のフローチャートを参照して後述する。
【0094】
CPU61は、ステップS25において、取得したパケット復元可能性判定処理結果に基づいて、ロスしたデータパケットが復元可能であるか否かを判定し、復元可能であると判定した場合、CPU61は、処理をステップS26に進める。
【0095】
ステップS26において、パケット復元部65は、CPU61に制御され、ロスしたデータパケット復元処理を行う。データパケット復元処理の詳細については、図11および図12のフローチャートを参照して説明する。
【0096】
データパケット復元処理によりロスしたデータパケットを復元すると、パケット復元部65は、復元したデータパケットをデータ再生部64に供給する。
【0097】
CPU61に制御されたデータ再生部64は、ステップS27において、取得したデータパケット群より1ブロック分の配信データを再生し、出力部82等に供給する。配信データを供給された出力部82は、取得した配信データに対応する画像や音声等を所定の出力方法で出力する。
【0098】
CPU61は、ステップS28において、データ受信処理を終了するか否かを判定し、配信されるデータの受信が完了しておらず、終了しないと判定した場合、処理をステップS21に戻し、次のブロックに対して、それ以降の処理を繰り返す。
【0099】
ステップS28において、配信データの受信が完了したり、ユーザより処理中止の指示を受け付けたりしてデータ受信処理を終了すると判定した場合、CPU61は、ステップS29に処理を進めて終了処理を行った後、データ受信処理を終了する。
【0100】
ステップS23において、対象ブロックのデータパケットを全て受信しており、ロスしたデータパケットが存在しないと判定した場合、データ再生部64は、処理をステップS26に進め、データパケット復元処理を実行する。
【0101】
CPU61は、ステップS25において、例えば、ロスしたパケットが多すぎる場合等、ロスしたパケットが復元可能でないと判定した場合、処理をステップS30に進め、ロスしたパケットの再送が可能であるか否かを判定する。
【0102】
ストリーミング配信において、通常、パケットの転送レートは、数回の再送が有り得ることを前提に設定されている。従って、サーバ1やネットワーク2の負荷状況等が良好であり、かつ、対象ブロックに対するパケット受信制御処理を終了するまでの時間(ステップS22において考慮される所定の時間)が十分残されている場合、クライアント1は、ロスしたデータパケットの再送を要求することができる。
【0103】
ステップS30において、例えば、要求するデータパケット数が予め定められた所定の回数以上である場合、サーバ1やネットワーク2の負荷が大きい場合、または、再送に必要な時間が残されていない場合等において、再送が不可能であると判定した場合、CPU61は、処理をステップS27に戻し、それ以降の処理を繰り返す。なお、この場合、対象ブロックのデータパケットが揃っていないので、このブロックの再生処理はエラーになり、例えば、画像データの場合、次のブロックのデータが再生されるまで、その再生画像はフリーズしたりする。
【0104】
また、ステップS30において、再送が可能であると判定された場合、CPU61は、処理をステップS31に進め、通信部84を制御して、ロスしたデータパケットの再送を要求する。そして、CPU61は、処理をステップS21に戻し、要求したデータパケットを受信するために、現在の対象ブロックに対して、それ以降の処理を繰り返す。
【0105】
以上のようにして、クライアント3は、サーバ1より供給されるパケットを受信し、サーバ1によるストリーミング配信やライブ放送などを出力することができる。
【0106】
次に、図7のステップS24において実行されるパケット復元可能性判定処理について説明する。
【0107】
受信したデータパケットおよび冗長パケットを取得したパケット復元部65は、ロスしたデータパケットを復元する前に、復元が可能であるか否かを判定する。
【0108】
クライアント3がK個のデータパケット、および、サーバ1より送信されたM個の冗長パケットのうち、L個の冗長パケットをロスしたものとし、ロスしたデータパケットに含まれるデータをP1乃至PKとすると、パケット復元部65によるデータパケットの復元は、以下に示す式(2)の連立一次方程式において、P1乃至PKの解を求めることによって行われる。
【0109】
【数2】
【0110】
なお、式(2)において、各成分の加算は、対応するビットごとのEOR演算を用いて行う。
【0111】
式(2)において、右辺第1項の行列の成分Q1乃至QM−Lは、後述するように、受信したデータパケットおよび冗長パケットに含まれるデータより算出された変数である。
【0112】
式(2)の左辺第1項は、サーバ1と共有している式(1)の右辺第1項に関する情報に基づいて生成されたM−L行K列の行列であり、P1乃至PKの係数を表す行列である。
【0113】
パケット復元部65は、サーバ1と共有する式(1)の右辺第1項に関する情報に基づいて、式(1)の右辺第1項の行列の成分の中から、ロスしたデータパケット、および受信された冗長パケットの両方に対応する成分を抽出し、式(2)の左辺第1項の行列を生成する。
【0114】
例えば、図6Bに示されるような例の場合、パケット復元部65は、サーバ1において演算に用いられた式(1)の右辺第1項の行列の、第N+1行並びに第N+3行乃至第N+M行の、第1列乃至第4列を成分とする行列を生成する。
【0115】
この式(2)の左辺第1項の行列の各成分は、上述したように、P1乃至PKの係数を表している。従って、この式(2)の左辺第1項の行列において、全ての成分の値が「0」である列が存在する場合、対応する変数P1乃至PKの解を求めることができない。また、この式(2)の左辺第1項の行列の列数Kが行数M−Lより大きい場合、方程式の数より変数の数が多いことになり、パケット復元部65は、変数Pの解を求めることができない。
【0116】
このように、パケット復元部65は、式(2)の左辺第1項の行列に基づいて、簡易的に変数P1乃至PKの解を算出可能か否かを判定することができる。
【0117】
図8のフローチャートを参照して、上述したパケット復元可能性判定処理の詳細について説明する。なお、以下において、式(2)の左辺第1項の行列の行数をM−Lとし、列数をKとし、X行Y列の成分の値をAXYとする。
【0118】
最初に、ステップS51において、パケット復元部65は、式(2)の左辺第1項の行列の、行数M−Lの値が列数Kの値以上であるか否かを判定し、行数M−Lの値が列数Kの値以上であると判定した場合、処理をステップS52に進める。
【0119】
パケット復元部65は、ステップS52において、変数Yの値を「0」に設定し、ステップS53において、変数Xの値を「0」に設定し、初期化する。
【0120】
ステップS54において、パケット復元部65は、式(2)の左辺第1項の行列について、成分AXYの値が「1」であるか否かを判定する。成分AXYの値が「0」であり、値が「1」でないと判定した場合、パケット復元部65は、処理をステップS55に進め、変数Xの値に「1」を加算し、対象を次の行の成分に変更する。
【0121】
そして、パケット復元部65は、ステップS56において、変数Xの値が行数M−L以下であるか否かを判定し、成分AXYが存在するか否かを判定する。変数Xの値が行数M−L以下であると判定した場合、パケット復元部65は、処理をステップS54に戻し、新たな行の成分AXYについてそれ以降の処理を繰り返す。
【0122】
パケット復元部65は、ステップS56において、変数Xの値がM−Lより大きいと判定した場合、第Y列には、値が「1」である成分AXYが存在しないので、処理をステップS57に進め、復元不可能フラグを立てる。そして、パケット復元部65は、判定結果としてフラグの状態をCPU61に出力し、図7のステップS25に処理を進める。
【0123】
また、ステップS51において、式(2)の左辺第1項の行列の列数Kが行数M−Lより大きく、M−LがK以上ではないと判定した場合、パケット復元部65は、処理をステップS57に進め、復元不可能フラグを立てた後、判定結果としてフラグの状態をCPU61に出力し、図7のステップS25に処理を進める。
【0124】
上述したステップS24において、成分AXYの値が「1」であると判定した場合、パケット復元部65は、処理をステップS58に進め、変数Yの値に「1」を加算し、対象とする列を次の列に変更する。そして、パケット復元部65は、ステップS59において、変数Yの値は列数K以下か否かを判定し、成分AXYが存在するか否かを判定する。
【0125】
変数Yの値が列数K以下であると判定した場合、パケット復元部65は、処理をステップS53に戻し、次の列に対して、それ以降の処理を繰り返す。
【0126】
変数Yの値が列数Kより大きいと判定した場合、全ての列について値が「1」である成分AXYが存在するので、パケット復元部65は、ステップS60において、復元可能フラグを立てる。そして、パケット復元部65は、判定結果としてフラグの状態をCPU61に出力し、図7のステップS25に処理を進める。
【0127】
以上のようにして、パケット復元部65は、データパケット復元処理の前にパケット復元可能性判定処理を行う。これにより、クライアント3は、データパケット復元処理を行う前に、サーバ1に対してロスしたデータパケットの再送を要求することができる。
【0128】
以上において、パケット復元部65は、式(2)に示される連立一次方程式を解くことによってロスしたデータパケットを復元するように説明したが、その際、パケット復元部65は、値が「0」でない係数を選択するための処理方法であるピボット選択を用いたガウス消去法を利用して解を求める。ピボット選択を用いたガウス消去法は、前進消去および後退代入などのプロセスにより、方程式に含まれる変数を減らすことにより、解を算出する方法である。
【0129】
この場合、パケット復元部65が、このピボット選択を用いたガウス消去法を用いたデータパケット復元処理の一部を行いながら、ロスしたデータパケットの復元可能性判定処理を行うようにしてもよい。
【0130】
図9のフローチャートを参照して、ピボット選択を用いたガウス消去法を用いたパケット復元可能性判定処理を説明する。
【0131】
最初に、パケット復元部65は、ステップS81において、式(2)の左辺第1項の行列の、行数M−Lの値が列数Kの値以上であるか否かを判定し、行数M−Lの値が列数Kの値以上であると判定した場合、処理をステップS82に進め、変数Yの値を「0」に設定し、初期化する。
【0132】
そして、パケット復元部65は、ステップS83において、第Y列の各成分について、値が「1」である成分を検出し、ステップS84において、その検出結果に基づいて、対象となるY列に値が「1」の成分が存在するか否かを判定する。
【0133】
対象となるY列に値が「1」の成分が存在すると判定した場合、パケット復元部65は、処理をステップS85に進め、その値が「1」となる成分が複数存在するか否かを判定する。
【0134】
複数存在すると判定した場合、パケット復元部65は、ステップS86において、2番目以降に検出された成分を含む行と、最初に検出された成分を含む行との間で、各成分についてEOR演算処理を行い、その演算結果を、演算に用いた2番目以降に検出された成分を含む行に置き換える。すなわち、パケット復元部65は、前進消去のプロセスを行い、対象の列について、最初に検出された成分を含む行以外の行の成分の値を全て「0」にする。
【0135】
例えば、式(2)の左辺第1項の行列の第1行、第3行、第4行、第6行において、値が「1」の成分が検出された場合、パケット復元部65は、第1行と第3行、第1行と第4行、第1行と第6行で、各成分についてEOR演算を行い、それらの演算結果を、それぞれ、元の第3行、第4行、第6行と置き換える。これにより、対象列の第3行、第4行、および第6行の各成分の値は、全て「0」になる。
【0136】
パケット復元部65は、ステップS87において、今回最初に検出された成分を含む行が、次の列に対する処理においてEOR演算処理の対象とならないように、最初に検出された成分を含む行を削除する。
【0137】
ステップS87の処理が完了すると、パケット復元部65は、ステップS88において、変数Yの値に「1」を加算し、対象列を変更し、ステップS89において、変数Yの値が列数K以下であるか否かを判定する。変数Yの値が、列数K以下であり、成分AXYが存在すると判定した場合、パケット復元部65は、処理をステップS83に戻し、新たな列に対してそれ以降の処理を繰り返す。
【0138】
ステップS89において、変数Yの値がKより大きい場合、すなわち、成分AXYが存在しないと判定した場合、全ての列において前進消去の処理を行うことができるので、パケット復元部65は、データパケットの復元処理を行うことができると判定し、処理をステップS90に進め、復元可能フラグを立てた後、判定結果としてフラグの状態をCPU61に出力し、図7のステップS25に処理を進める。
【0139】
また、ステップS81において、式(2)の左辺第1項の行列の列数Kが行数M−Lより大きく、M−LがK以上ではないと判定した場合、パケット復元部65は、データパケットの復元処理を行うことができないと判定し、処理をステップS91に進め、復元不可能フラグを立てた後、判定結果としてフラグの状態をCPU61に出力し、図7のステップS25に処理を進める。
【0140】
同様に、ステップS84において、対象の列において、全ての行の成分の値が「0」であり、値が「1」の成分が存在しないと判定した場合、パケット復元部65は、処理をステップS91に進め、復元不可能フラグを立てた後、判定結果としてフラグの状態をCPU61に出力し、図7のステップS25に処理を進める。
【0141】
さらに、ステップS85において、対象の列において、値が「1」の成分が1つしか存在しないと判定した場合、パケット復元部65は、ステップS86の処理を省略し、ステップS87に処理を進める。
【0142】
以上のようにして、パケット復元部65は、ガウス消去法を利用してパケット復元の可能性を判定する。
【0143】
なお、ステップS87において、削除された行は、パケット復元部65等において保持されるようにし、図7のステップS26におけるデータパケット復元処理の際に利用できるようにしてもよい。
【0144】
また、以上の処理において最後の列については省略するようにしてもよい。すなわち、ステップS89の処理において、パケット復元部65が、変数Yの値がK−1以下であるか否かを判定するようにしてもよい。
【0145】
以上において、パケット復元部65が、値が「0」でない係数を選択するための処理方法であるピボット選択を用いたガウス消去法を利用して、式(2)に示される連立一次方程式の解を求めるように説明したが、これに限らず、パケット復元部65が、ガウス消去法を応用した応用ガウス消去法を用いて、式(2)に示される連立一次方程式の解を求めるようにしてもよい。応用ガウス消去法は、後述するように、式(2)に示される全ての連立一次方程式から変数を1つずつ減らしていき、残った最後の変数の解を用いて全ての解を算出する方法である。
【0146】
この場合、パケット復元部65が、この応用ガウス消去法を用いたデータパケット復元処理の一部を行いながら、ロスしたデータパケットの復元可能性判定処理を行うようにしてもよい。
【0147】
図10のフローチャートを参照して、応用ガウス消去法を用いたパケット復元可能性判定処理を説明する。
【0148】
最初に、パケット復元部65は、ステップS111において、式(2)の左辺第1項の行列の、行数M−Lの値が列数Kの値以上であるか否かを判定し、行数M−Lの値が列数Kの値以上であると判定した場合、処理をステップS112に進め、変数Yの値を「0」に設定し、初期化する。
【0149】
そして、パケット復元部65は、ステップS113において、第Y列の各成分について、値が「1」である成分を検出し、ステップS114において、その検出結果に基づいて、対象となるY列に値が「1」の成分が存在するか否かを判定する。
【0150】
対象となるY列に値が「1」の成分が存在すると判定した場合、パケット復元部65は、処理をステップS115に進め、その値が「1」となる成分が複数存在するか否かを判定する。
【0151】
複数存在すると判定した場合、パケット復元部65は、ステップS116において、検出された順番が連続する2つの成分をそれぞれ含む2行間で、各成分についてEOR演算処理を行い、その演算結果を、演算に用いた行のうち、検出された順番が後の行に置き換える。なお、最初に検出された行は、最後に検出された行とのEOR演算処理結果に置き換えられる。すなわち、パケット復元部65は、対象の列の成分の値を全て「0」にする。
【0152】
例えば、式(2)の左辺第1項の行列の第1行、第3行、第4行、第6行において、値が「1」の成分が検出された場合、パケット復元部65は、第1行と第3行、第3行と第4行、第4行と第6行、第6行と第1行で、各成分についてEOR演算を行い、それらの演算結果を、それぞれ、元の第3行、第4行、第6行、第1行と置き換える。これにより、対象列の成分の値は、全て「0」になる。
【0153】
ステップS116の処理が完了すると、パケット復元部65は、ステップS117において、変数Yの値に「1」を加算し、対象列を変更し、ステップS118において、変数Yの値が列数K以下であるか否かを判定する。変数Yの値が、列数K以下であり、成分AXYが存在すると判定した場合、パケット復元部65は、処理をステップS113に戻し、新たな列に対してそれ以降の処理を繰り返す。
【0154】
ステップS118において、変数Yの値がKより大きい場合、すなわち、成分AXYが存在しないと判定した場合、全ての列において以上の処理を行うことができるので、パケット復元部65は、データパケットの復元処理を行うことができると判定し、処理をステップS119に進め、復元可能フラグを立てた後、判定結果としてフラグの状態をCPU61に出力し、図7のステップS25に処理を進める。
【0155】
また、ステップS111において、式(2)の左辺第1項の行列の列数Kが行数M−Lより大きく、M−LがK以上ではないと判定した場合、パケット復元部65は、データパケットの復元処理を行うことができないと判定し、処理をステップS120に進め、復元不可能フラグを立てた後、判定結果としてフラグの状態をCPU61に出力し、図7のステップS25に処理を進める。
【0156】
同様に、ステップS114において、対象の列において、全ての行の成分の値が「0」であり、値が「1」の成分が存在しないと判定した場合、パケット復元部65は、処理をステップS120に進め、復元不可能フラグを立てた後、判定結果としてフラグの状態をCPU61に出力し、図7のステップS25に処理を進める。
【0157】
さらに、ステップS115において、対象の列において、値が「1」の成分が1つしか存在しないと判定した場合、パケット復元部65は、ステップS116の処理を省略し、ステップS117に処理を進める。
【0158】
以上のようにして、パケット復元部65は、応用ガウス消去法を利用してパケット復元の可能性を判定する。
【0159】
なお、ステップS116において、最初に検出された行は、パケット復元部65等において保持されるようにし、図7のステップS26におけるデータパケット復元処理の際に利用できるようにしてもよい。
【0160】
また、以上の処理において最後の列については省略するようにしてもよい。すなわち、ステップS118の処理において、パケット復元部65が、変数Yの値がK−1以下であるか否かを判定するようにしてもよい。
【0161】
次に、図7のステップS26において実行されるデータパケット復元処理について説明する。
【0162】
データパケットの復元処理は、上述したように、ピボット選択を用いたガウス消去法、または応用ガウス消去法を利用して、式(2)の連立一次方程式のP1乃至PKの解を求めることによって行われる。このとき、式(2)の右辺第1項の行列の各成分Q1乃至QM−Lは、以下に示す式(3)により算出される。
【0163】
【数3】
【0164】
なお、式(3)において、各成分の加算は、対応するビットごとのEOR演算を用いて行う。
【0165】
式(3)において、定数Mはサーバ1より送信されたデータパケット数であり、定数Kはクライアント3がロスしたデータパケット数であり、定数Mはサーバ1より送信された冗長パケット数であり、定数Lはクライアント3がロスした冗長パケット数である。また、式(3)において、R1乃至RN−Kはクライアント3が受信した各データパケットに含まれているデータを表し、J1乃至JM−Lはクライアント3が受信した各冗長パケットに含まれているデータを表す。
【0166】
式(3)の右辺第1項は、サーバ1と共有している式(1)の右辺第1項に関する情報に基づいて生成されたM−L行N−K列の行列であり、R1乃至RN−Kの係数を表す行列である。
【0167】
パケット復元部65は、サーバ1と共有する式(1)の右辺第1項に関する情報に基づいて、式(1)の右辺第1項の行列の成分の中から、受信されたデータパケット、および受信された冗長パケットの両方に対応する成分を抽出し、式(3)の右第1項の行列を生成する。
【0168】
例えば、図6Bに示されるような例の場合、パケット復元部65は、サーバ1において演算に用いられた式(1)の右辺第1項の行列の、第N+1行並びに第N+3行乃至第N+M行の、第5列乃至第N列を成分とする行列を生成する。
【0169】
パケット復元部65は、以上のような式(3)を演算することにより、左辺第1項の行列の各成分Q1乃至QM−Lを算出し、それらの値を式(2)に代入して、P1乃至PKの解を求める。その際、パケット復元部65は、ピボット選択を用いたガウス消去法、または応用ガウス消去法のうち、図7のステップS24のパケット復元可能性判定処理において利用した方法を用いて解を算出する。
【0170】
すなわち、パケット復元部65は、図7のステップS24において、図9に示されるフローチャートのような、ピボット選択を用いたガウス消去法を利用した処理を行った場合、このデータパケット復元処理においても同様に、ピボット選択を用いたガウス消去法を利用した処理を行う。
【0171】
また、パケット復元部65は、図7のステップS24において、図10に示されるフローチャートのような、応用ガウス消去法を利用した処理を行った場合、このデータパケット復元処理においても同様に、応用ガウス消去法を利用した処理を行う。
【0172】
なお、パケット復元部65が図8に示されるフローチャートのような処理を行った場合、データ復元処理に利用される方法は、ピボット選択を用いたガウス消去法であってもよいし、応用ガウス消去法であってもよい。
【0173】
次に、図11のフローチャートを参照して、クライアント3によるデータパケット復元処理を説明する。
【0174】
最初に、パケット復元部65は、ステップS131において、式(3)の演算を行い、Q1乃至QM−Lを算出して、式(2)のような、ロスしたデータパケットを復元するための連立一次方程式をたてる。
【0175】
そして、パケット復元部65は、ステップS132において、変数Yの値を「0」に設定して初期化し、ステップS133において、式(2)の左辺第1項の行列の第Y列の各成分について、値が「1」の成分を検出する。
【0176】
その検出結果に基づいて、パケット復元部65は、ステップS134において、値が「1」の成分が存在するか否かを判定し、存在すると判定した場合、パケット復元部65は,処理をステップS135に進める。
【0177】
ステップS135において、パケット復元部65は、値が「1」の成分が複数存在するか否かを判定し、複数存在すると判定した場合、処理をステップS136に進める。
【0178】
値が「1」の成分が複数存在する場合、パケット復元部65は、ステップS136において、2番目以降に検出された成分を含む方程式と、最初に検出された成分を含む方程式との間で、各項についてEOR演算を行い、その演算結果を、演算に用いた2番目以降に検出された成分を含む行に置き換える。すなわち、パケット復元部65は、前進消去のプロセスを行い、対象のY列について、最初に検出された成分を含む行以外の行の成分の値を全て「0」にする。
【0179】
そして、パケット復元部65は、ステップS137において、最初に検出された成分を含む方程式を求解用に抽出し、保持する。すなわち、この後ステップS136の処理が繰り返される際のEOR演算は、抽出した方程式を対象とせずに、抽出されずに残された方程式の中で行われる。
【0180】
ステップS137の処理を終えたパケット復元部65は、ステップS138に処理を進め、変数Yの値に「1」を加算し、ステップS139において、その変数Yの値が列数K以下であるか否かを判定する。変数Yの値が、列数K以下であり、成分AXYが存在すると判定した場合、パケット復元部65は、処理をステップS133に戻し、新たな列に対してそれ以降の処理を繰り返す。
【0181】
ステップS139において、変数Yの値がKより大きい場合、すなわち、成分AXYが存在しないと判定した場合、パケット復元部65は、処理をステップS140に進め、変数Yの値を「K」に設定する。
【0182】
そして、ステップS141において、パケット復元部65は、ステップS137の処理により求解用に保持されている方程式を用いて、PYの解を算出し、ステップS142において、変数Yの値より「1」を減算し、ステップS143において、変数Yの値が「0」か否かを判定する。「0」でないと判定した場合、パケット復元部65は、処理をステップS141に戻し、それ以降の処理を繰り返す。
【0183】
そして、ステップS143において、変数Yの値が「0」であると判定した場合、パケット復元部65は、P1乃至PKの解を算出したので、データパケット復元処理を終了し、図7のステップS27に処理を進める。
【0184】
また、ステップS134において、式(2)の左辺第1項の行列の第Y列について、値が「1」の成分が存在しないと判定した場合、パケット復元部65は、データパケット復元処理を終了し、図7のステップS27に処理を進める。
【0185】
さらに、ステップS135において、式(2)の左辺第1項の行列の第Y列について、値が「1」の成分が複数存在すると判定した場合、パケット復元部65は、ステップS136の処理を省略し、ステップS137に処理を進める。
【0186】
以上のようにして、パケット復元部65は、ガウス消去法を利用してロスしたデータパケットに含まれているデータを復元する。
【0187】
次に、図12のフローチャートを参照して、クライアント3によるデータパケット復元処理の応用ガウス消去法を利用した他の例について説明する。
【0188】
最初に、パケット復元部65は、ステップS161において、式(3)の演算を行い、Q1乃至QM−Lを算出して、式(2)のような、ロスしたデータパケットを復元するための連立一次方程式をたてる。
【0189】
そして、パケット復元部65は、ステップS162において、変数Yの値を「0」に設定して初期化し、ステップS163において、式(2)の左辺第1項の行列の第Y列の各成分について、値が「1」の成分を検出する。
【0190】
その検出結果に基づいて、パケット復元部65は、ステップS164において、値が「1」の成分が存在するか否かを判定し、存在すると判定した場合、パケット復元部65は,処理をステップS165に進める。
【0191】
ステップS165において、パケット復元部65は、最初に検出された成分を含む方程式を求解用に保持する。そして、ステップS166において、パケット復元部65は、値が「1」の成分が複数存在するか否かを判定し、複数存在すると判定した場合、処理をステップS167に進める。
【0192】
値が「1」の成分が複数存在する場合、パケット復元部65は、ステップS167において、検出された順番が連続する2つの成分をそれぞれ含む2つの方程式間で、各項についてEOR演算処理を行い、その演算結果を、演算に用いた方程式のうち、検出された順番が後の方程式に置き換える。なお、最初に検出された方程式は、最後に検出された方程式とのEOR演算処理結果に置き換えられる。
【0193】
そして、パケット復元部65は、ステップS168において、変数Yの値に「1」を加算するし、ステップS169において、その変数Yの値が列数K以下であるか否かを判定する。変数Yの値が、列数K以下であり、成分AXYが存在すると判定した場合、パケット復元部65は、処理をステップS163に戻し、新たな列に対してそれ以降の処理を繰り返す。
【0194】
ステップS169において、変数Yの値がKより大きい場合、すなわち、成分AXYが存在しないと判定した場合、パケット復元部65は、処理をステップS170に進め、変数Yの値を「K」に設定する。
【0195】
そして、ステップS171において、パケット復元部65は、ステップS165の処理により求解用に保持されている方程式を用いて、PYの解を算出し、ステップS172において、変数Yの値より「1」を減算し、ステップS173において、変数Yの値が「0」か否かを判定する。「0」でないと判定した場合、パケット復元部65は、処理をステップS171に戻し、それ以降の処理を繰り返す。
【0196】
そして、ステップS173において、変数Yの値が「0」であると判定した場合、パケット復元部65は、P1乃至PKの解を算出したので、データパケット復元処理を終了し、図7のステップS27に処理を進める。
【0197】
また、ステップS164において、式(2)の左辺第1項の行列の第Y列について、値が「1」の成分が存在しないと判定した場合、パケット復元部65は、データパケット復元処理を終了し、図7のステップS27に処理を進める。
【0198】
さらに、ステップS166において、式(2)の左辺第1項の行列の第Y列について、値が「1」の成分が複数存在すると判定した場合、パケット復元部65は、ステップS167の処理を省略し、ステップS168に処理を進める。
【0199】
以上のようにして、パケット復元部65は、応用ガウス消去法を利用してロスしたデータパケットに含まれているデータを復元する。
【0200】
以上のように、クライアント3において、ロスしたデータパケットを復元する処理を行うようにしたので、データパケットの再送を要求する回数を減らすことができる。さらに、データパケット復元処理を行う前に、ロスしたデータパケットが復元可能であるか否かを判定するようにしたので、再送の必要がある場合も、即座に再送の要求を行うことができる。このような処理は、処理時間に制限のあるストリーミング配信やライブ放送等において特に有効である。
【0201】
なお、図1においては、1つのネットワーク2にサーバ1並びにクライアント3−1および3−2が接続されているシステムについて説明したが、システムの構成は、これ以外にも、例えば、複数のサーバがネットワーク2に接続されるようにしてもよいし、さらに多くのクライアント3が接続されるようにしてもよい。また、サーバ1が複数のネットワーク、さらには中継局等の他の装置を介してクライアント3に接続されるようにしてもよい。その場合、本発明を適用した配信処理は、例えば、サーバ1と中継局との間、または、中継局とクライアント3との間における配信処理であってもよい。
【0202】
また、図1において、サーバ1およびクライアント3は、有線を介してネットワーク2に接続されており、有線通信を行うように説明したが、これに限らず、サーバ1およびクライアント3が無線通信機能を有し、無線通信によりネットワーク2とそれぞれ接続し、ネットワーク2を介して通信を行うようにしてもよい。その際、利用される通信規格は、通信キャリアを介した電話回線経由の通信以外にも、IEEE(Institute of Electrical and Electronic Engineers)802.11x、ブルートゥース、赤外線を用いたIrDA(InfraRed Data Association)等の近距離無線通信であってもよい。
【0203】
さらに、図2において示されるサーバ1の内部の構成例における各ブロックは、その機能の一部または全部が、他のブロックと一体化されて構成されていてもよいし、1つのブロックとして示した機能が複数のブロックとして構成されていてもよい。図3において示されるクライアント3についても同様である。
【0204】
なお、サーバ1およびクライアント3は、上述したパーソナルコンピュータ以外にも、例えば、携帯電話機、デジタルビデオカメラ、あるいはテレビジョン受像機などの電子機器に広く適用することができる。
【0205】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【0206】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを記録する記録媒体は、図2または図3に示されるように、磁気ディスク41または91(フレキシブルディスクを含む)、光ディスク42または92(CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク43または93(MD(Mini−Disc)(登録商標)を含む)、もしくは半導体メモリ44または94などよりなるパッケージメディア、または、プログラムが一時的もしくは永続的に記録されるROM12または62などにより構成される。記録媒体へのプログラムの記録は、必要に応じてルータ、モデムなどのインターフェースを介して、公衆回線網、ローカルエリアネットワーク、またはインターネットなどのネットワーク、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【0207】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0208】
【発明の効果】
以上のように、本発明によれば、他の装置より供給されたパケットデータを取得することができる。特に、より好適にパケットデータを取得し、データの再生を行うことができる。
【図面の簡単な説明】
【図1】本発明を適用したデータ伝送システムの基本的な構成例を示す図である。
【図2】図1のサーバの内部の構成例を示すブロック図である。
【図3】図1のクライアントの内部の構成例を示すブロック図である。
【図4】図1のサーバによるデータ伝送処理を説明するフローチャートである。
【図5】図1のサーバが生成するパケットの例を示す模式図である。
【図6】図1のデータ伝送システムにおいて、サーバより送信され、クライアントによって受信されるパケットの様子を示す模式図である。
【図7】
図1のクライアントによるデータ受信処理を説明するフローチャートである。
【図8】
図7のステップS24において実行されるパケット復元可能性判定処理の例について説明するフローチャートである。
【図9】
図7のステップS24において実行されるパケット復元可能性判定処理の他の例について説明するフローチャートである。
【図10】
図7のステップS24において実行されるパケット復元可能性判定処理の、さらに他の例について説明するフローチャートである。
【図11】
図7のステップS26において実行されるデータパケット復元処理の例について説明するフローチャートである。
【図12】
図7のステップS26において実行されるデータパケット復元処理の他の例について説明するフローチャートである。
【符号の説明】
1 サーバ, 2 ネットワーク, 3−1および3−2 クライアント, 14 パケット生成部, 64 データ再生部, 65 パケット復元部, 101 データパケット, 102 冗長パケット[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an information processing apparatus, method, and program, and more particularly to an information processing apparatus, method, and program that can more appropriately acquire packet data and reproduce the data.
[0002]
[Prior art]
2. Description of the Related Art In recent years, with the development of broadband communication networks and the like, streaming and real-time broadcasting of data such as audio and video by a unicast or a multicast have been performed via a network represented by the Internet. .
[0003]
Conventionally, in communication via such a network, one of block codes for detecting and correcting a data error in a block has been used for delivery of unicast or multicast using UDP / IP (User Datagram Protocol / Internet Protocol). A distribution method using FEC (Forward Error Correction) using a Reed-Solomon code or the like has been proposed (for example, see Non-Patent
[0004]
In the error correction processing for the packet loss by the Reed-Solomon code, on the transmission side, an error correction code of transmission data is generated for each block unit having a predetermined size, a redundant packet is generated from the error correction code, and the generation is performed. Redundant packets are distributed together with the packetized transmission data.
[0005]
Then, on the receiving side, the redundant packet is also received together with the packetized transmission data, and when a packet of the transmission data is lost, the packet is restored using the received redundant packet. If restoration of the lost packet is not possible, the transmitting side is requested to retransmit the lost packet.
[0006]
However, in this case, addition, subtraction, multiplication, or division on the Galois field is required, and the load required for processing such as restoration may increase.
[0007]
On the other hand, as an FEC encoding method, there is a method of generating a redundant packet by using an EOR (exclusive OR) operation instead of the Reed-Solomon encoding method (for example, see Patent Document 1).
[0008]
In the error correction processing for packet loss using the EOR operation, the transmission side generates an error correction code for transmission data using the EOR operation for each block unit having a predetermined size, and uses the EOR operation to generate a redundant code from the error correction code. A packet is generated, and the generated redundant packet is distributed together with the packetized transmission data.
[0009]
Then, on the receiving side, the redundant packet is also received together with the packetized transmission data, and when a packet of the transmission data is lost, the packet is restored using the received redundant packet. If restoration of the lost packet is not possible, the transmitting side is requested to retransmit the lost packet.
[0010]
[Non-patent document 1]
Seijiro Yoneyama, 2 outsiders, "Reliable Multicast-Using FEC on IP version 6," [online], December 15, 1999, Internet Conference, [October 8, 2002 Search], Internet, <URL: http /// www. internetconference. org / ic99 / program. html>
[0011]
[Non-patent document 2]
Takashi Kubo, "A Study on Real-Time Media Transmission Using Reliable Multicast", [online], February 18, 2001, Nara Institute of Science and Technology Master's thesis / problem research presentation, [October 2002 8th search], Internet, <URL: http: // isw3. aist-nara. ac. jp / IS / MasterThesis / 2001/0051031. html>
[0012]
[Non-Patent Document 3]
Seijiro Yoneyama, “FEC on IPv6 for Reliable Multicast”, [online], November 1, 2000, Internet Conference, [Search October 8, 2002], Internet, <URL: http: // www. csl. sony. co. jp / ic2000 / papers / S03_01. pdf>
[0013]
[Patent Document 1]
JP 2001-189665 A (
[0014]
[Problems to be solved by the invention]
However, in the above-described method, it is not possible to determine whether or not restoration is possible until the restoration processing of the actually lost packet is executed, and the delay time when the retransmission processing becomes necessary becomes longer. There was a problem that it would be.
[0015]
In particular, in streaming distribution or real-time data distribution, a receiving-side apparatus must receive and reproduce sequentially transmitted data, and must perform restoration processing in a short time. Therefore, the increase in the delay time as described above greatly affects the reproduction performance.
[0016]
The present invention has been made in view of such circumstances, and has been made in such a manner that packet data can be more appropriately acquired and data can be reproduced.
[0017]
[Means for Solving the Problems]
The information processing apparatus of the present invention receives a data packet of distribution data and a redundant packet including an exclusive OR operation result of each data included in a plurality of data packets transmitted by another information processing apparatus. Means, a possibility judging means for judging whether or not the data packet which could not be received by the receiving means can be restored, and if the data packet could not be restored based on the judgment result by the possibility judging means, the data packet could not be received. Request means for requesting another information processing apparatus to retransmit the data packet, and based on the determination result by the possibility determination means, if the data packet and the redundant packet received by the reception means can be restored, Restoring means for restoring a data packet that could not be received by solving a simultaneous linear equation using exclusive OR operation It is characterized in.
[0018]
The redundant packet may be generated using a plurality of arbitrarily selected data packets corresponding to the same block for each block that is distribution data divided into a predetermined size. .
[0019]
The data packet and the redundant packet can be transmitted from another information processing device in block units.
[0020]
The receiving means may further include a monitoring means for monitoring whether or not the reception processing of the data packet and the redundant packet of the same block has been completed.
[0021]
The information processing apparatus may further include presence determining means for determining whether there is a data packet that cannot be received by the receiving means.
[0022]
Information on the generation of the redundant packet can be shared with another information processing device.
[0023]
The possibility determining means may determine whether or not a data packet that could not be received by the receiving means can be restored, based on a matrix element representing a coefficient of the simultaneous linear equation.
[0024]
The apparatus further includes a margin determining unit that determines whether there is a margin for performing a retransmission process of the data packet determined to be unrecoverable by the possibility determining unit, wherein the request unit has a margin for performing the retransmission process by the margin determining unit. If it is determined that there is, it is possible to request another information processing device to retransmit the data packet that could not be received.
[0025]
The restoration means may solve a system of linear equations by using a Gaussian elimination method using pivot selection, which is a processing method for selecting a coefficient having a value other than 0.
[0026]
The restoration means uses an applied Gaussian elimination method of calculating an exclusive OR for each term between adjacent equations among equations including a coefficient whose value is not 0 with respect to a predetermined column of the matrix. Can be solved.
[0027]
The information processing method according to the present invention is a method for receiving a data packet of distribution data and a redundant packet including an exclusive OR operation result of each data included in a plurality of data packets, which are transmitted by another information processing apparatus. A control step, a possibility determining step of determining whether or not a data packet that could not be received by the processing of the receiving control step is recoverable, and, based on a determination result of the processing of the possibility determining step, In some cases, based on the determination result of the requesting step of requesting another information processing device to retransmit the unreceivable data packet to another information processing device and the possibility of the possibility determination step, if the data packet can be restored, the data packet is To solve simultaneous linear equations using exclusive OR operation I, characterized in that it comprises a restoration step for restoring the not received data packets.
[0028]
The program according to the present invention includes a receiving control step of receiving a data packet of distribution data and a redundant packet including an exclusive OR operation result of each data included in the plurality of data packets, transmitted by another information processing apparatus. A possibility determining step of determining whether or not a data packet that could not be received by the processing of the receiving control step can be restored; and a case where the data packet cannot be restored based on the determination result of the processing of the possibility determining step. A request step for requesting another information processing apparatus to retransmit a data packet that could not be received, and, based on a determination result obtained by the processing of the possibility determining step, if the data packet can be restored, the data packet is received by the processing of the reception control step. By solving simultaneous linear equations using exclusive OR operation using data packets and redundant packets Te, characterized in that to achieve a restoration step of restoring the not received data packets to the computer.
[0029]
The information processing apparatus and method and the program according to the present invention include a data packet of distribution data transmitted by another information processing apparatus and an exclusive OR operation result of each data included in the plurality of data packets. A redundant packet is received, and it is determined whether the data packet that could not be received can be recovered. If the data packet cannot be recovered based on the result of the determination, retransmission of the data packet that could not be received is performed using other information. If requested by the processing device and can be recovered, the received data packet and the redundant packet are used to solve a system of linear equations using an exclusive OR operation, thereby recovering the data packet that could not be received. .
[0030]
BEST MODE FOR CARRYING OUT THE INVENTION
FIG. 1 is a diagram illustrating a basic configuration example of a data distribution system to which the present invention has been applied.
[0031]
In FIG. 1, a
[0032]
The
[0033]
The clients 3-1 and 3-2 are operated by the user, access the
[0034]
When it is not necessary to distinguish the clients 3-1 and 3-2 individually, they are simply referred to as clients 3.
[0035]
As will be described later, the
[0036]
The client 3 receiving the data packet and the redundant packet performs an error correction process and restores the lost data packet from the received packet. If restoration is not possible and retransmission is possible, the client 3 requests the
[0037]
FIG. 2 is a block diagram showing a configuration example of the
[0038]
In FIG. 2, a CPU (Central Processing Unit) 11 executes various processes according to a program stored in a ROM (Read Only Memory) 12 or a program loaded from a
[0039]
The
[0040]
The
[0041]
The input /
[0042]
The
[0043]
The
[0044]
A
[0045]
In the above description, the
[0046]
FIG. 3 is a block diagram showing a configuration example of the client 3 shown in FIG.
[0047]
In FIG. 3, a CPU 61 executes various processes according to a program stored in a
[0048]
The
[0049]
The
[0050]
The CPU 61, the
[0051]
The input /
[0052]
The
[0053]
The
[0054]
The
[0055]
A
[0056]
In the above, it has been described that the
[0057]
Similarly, all or a part of the restoration processing of the lost packet performed by the
[0058]
Next, the streaming distribution processing of the distribution data by the
[0059]
The
[0060]
FIG. 5 is a schematic diagram illustrating a configuration example of a data packet and a redundant packet for one block generated by the
[0061]
In FIG. 5, a
[0062]
That is, in step S1 of FIG. 4, the
[0063]
Then, the
[0064]
In FIG. 5, the
[0065]
That is, in the processing of steps S1 and S2 in FIG. 4, the
[0066]
(Equation 1)
[0067]
In equation (1), the first term on the right side is a matrix of N + M rows and N columns. 1 Or S N Is a coefficient for generating the transmission data S corresponding to the
[0068]
Transmission data S on the left side of equation (1) 1 Or S N Is the data D of the second term on the right side, respectively. 1 Or D N And the transmission data S N + 1 Or S N + M Is the data D 1 Or D N It is an EOR operation result of data arbitrarily selected.
[0069]
The matrix of the first term on the right side of Expression (1) is generated by the
[0070]
Note that the matrix of the first term on the right side of Expression (1) may be generated at any timing as long as it is generated before being used in the operation, and is prepared in advance before performing the data transmission process. Alternatively, it may be calculated at the time of calculation. Further, as this matrix, a matrix of different components may be used for each block, or a common matrix may be used for all blocks.
[0071]
Further, the matrix of the first term on the right side of Expression (1) used in the calculation is also used in a packet restoration process by the client 3 that receives the data, as described later. That is, the
[0072]
The information on the matrix of the first term on the right side of the equation (1) may be information directly representing the content of each component of the matrix, or information indirectly representing the content of each component of the matrix. Of course it is good. For example, when each component of the matrix is determined by a random function, information representing the “seed” of the random function can be used as information relating to the matrix of the first term on the right side of Expression (1).
[0073]
Note that the method of selecting data to be subjected to the EOR operation (that is, the method of determining the values of the components in the (N + 1) th to (N + M) th rows of the matrix of the first term on the right side of Equation (1)) is not limited to the above-described random selection The method may be any method, for example, using a plurality of predetermined combinations. Further, the performance of the packet for error correction generated by the
[0074]
The number (M) of
[0075]
As described above, the
[0076]
Returning to FIG. 4, the
[0077]
In step S3, the
[0078]
Then, in step S4, the
[0079]
As described above, the distribution data is subjected to data transmission processing for each predetermined block by the
[0080]
FIG. 6 is a schematic diagram illustrating an example of a state of a packet transmitted from the
[0081]
That is, the
[0082]
Then, when the
[0083]
The client 3 that is the destination of the packet receives each packet in the
[0084]
The client 3 performs data reception processing as described later, and restores the lost data packets 112-1 to 112-4 using the received redundant packets 113-1 and 113-3 to 113-M. It is determined whether or not it is possible, and if it is possible, a restoration process is performed. If it is impossible, the
[0085]
The data reception process by the client 3 will be described with reference to the flowchart of FIG.
[0086]
In step S21, the
[0087]
The received packet is temporarily stored in a RAM incorporated in the
[0088]
In step S22, the CPU 61 controls the
[0089]
In step S22, when all the packets of the reception target block have been received and it is determined that the reception has been completed, the CPU 61 proceeds to step S23.
[0090]
The order in which the packets are received is the order in which the packets arrive, and the packets are not necessarily received in the order in which they were transmitted. Therefore, the CPU 61 performs the determination processing of step S22 as described above within a predetermined time. If the predetermined time has elapsed after repeating the processing of steps S21 and S22, the CPU 61 determines in step S22 that the packet reception of the reception target block has been completed, and advances the processing to step S23.
[0091]
For example, as shown in FIG. 6B, when data packets 112-1 to 112-4 of the T-th block are lost, and there is an unreceived packet for the reception target block even after a predetermined time has elapsed. , The CPU 61 determines that those packets have been lost, determines that the packet reception of the target block has been completed, and proceeds to step S23.
[0092]
In step S23, the
[0093]
In step S24, the
[0094]
In step S25, the CPU 61 determines whether or not the lost data packet can be restored based on the obtained packet restoration possibility determination processing result. If the CPU 61 determines that the lost data packet can be restored, the CPU 61 proceeds to step S25. Proceed to step S26.
[0095]
In step S26, the
[0096]
When the lost data packet is restored by the data packet restoration process, the
[0097]
In step S27, the
[0098]
In step S28, the CPU 61 determines whether or not to end the data reception process. If it is determined that the reception of the distributed data has not been completed and does not end, the process returns to step S21, and the next block And the subsequent processing is repeated.
[0099]
If the CPU 61 determines in step S28 that the reception of the distribution data is completed or that the user has received an instruction to stop the process and ends the data receiving process, the CPU 61 advances the process to step S29 and performs an end process. Then, the data reception process ends.
[0100]
In step S23, when it is determined that all the data packets of the target block have been received and there is no lost data packet, the
[0101]
If the CPU 61 determines in step S25 that the lost packet is not recoverable, for example, if there are too many lost packets, the process proceeds to step S30, and determines whether retransmission of the lost packet is possible. judge.
[0102]
In streaming distribution, the transfer rate of a packet is usually set on the assumption that there may be several retransmissions. Therefore, when the load condition of the
[0103]
In step S30, for example, when the number of requested data packets is equal to or more than a predetermined number, when the load on the
[0104]
If it is determined in step S30 that retransmission is possible, the CPU 61 advances the process to step S31, controls the
[0105]
As described above, the client 3 can receive the packet supplied from the
[0106]
Next, the packet restoration possibility determination process executed in step S24 of FIG. 7 will be described.
[0107]
The
[0108]
It is assumed that the client 3 has lost L redundant packets out of the K data packets and the M redundant packets transmitted from the
[0109]
(Equation 2)
[0110]
In equation (2), the addition of each component is performed using an EOR operation for each corresponding bit.
[0111]
In equation (2), the component Q of the matrix of the first term on the right side 1 Or Q ML Is a variable calculated from the data included in the received data packet and the redundant packet as described later.
[0112]
The first term on the left side of the equation (2) is a matrix of ML rows and K columns generated based on information on the first term on the right side of the equation (1) shared with the
[0113]
The
[0114]
For example, in the case of the example illustrated in FIG. 6B, the
[0115]
As described above, each component of the matrix of the first term on the left side of the equation (2) is P 1 Or P K Represents the coefficient. Therefore, if there is a column in which the values of all components are “0” in the matrix of the first term on the left side of the equation (2), the corresponding variable P 1 Or P K Cannot find the solution of When the number of columns K of the matrix of the first term on the left side of the equation (2) is larger than the number of rows ML, the number of variables is larger than the number of equations, and the
[0116]
As described above, the
[0117]
The details of the above-described packet restoration possibility determination processing will be described with reference to the flowchart in FIG. In the following, the number of rows of the matrix of the first term on the left side of Equation (2) is ML, the number of columns is K, and the value of the component of X rows and Y columns is A XY And
[0118]
First, in step S51, the
[0119]
The
[0120]
In step S54, the
[0121]
Then, in step S56, the
[0122]
If the
[0123]
If it is determined in step S51 that the number of columns K of the matrix of the first term on the left side of the equation (2) is greater than the number of rows ML and ML is not greater than K, the
[0124]
In step S24 described above, the component A XY Is determined to be "1", the
[0125]
When determining that the value of the variable Y is equal to or smaller than the number of columns K, the
[0126]
If it is determined that the value of the variable Y is greater than the number K of columns, the component A having a value of “1” for all columns XY Exists, the
[0127]
As described above, the
[0128]
In the above, the
[0129]
In this case, the
[0130]
With reference to the flowchart of FIG. 9, a description will be given of a packet restoration possibility determination process using a Gaussian elimination method using pivot selection.
[0131]
First, in step S81, the
[0132]
Then, in step S83, the
[0133]
When it is determined that a component having a value of “1” exists in the target Y column, the
[0134]
When it is determined that there are a plurality of components, the
[0135]
For example, when a component having a value of “1” is detected in the first row, the third row, the fourth row, and the sixth row of the matrix of the first term on the left side of Expression (2), the
[0136]
In step S87, the
[0137]
When the process of step S87 is completed, the
[0138]
In step S89, if the value of the variable Y is larger than K, that is, the component A XY If it is determined that there is no data, since the forward erasure process can be performed in all columns, the
[0139]
If it is determined in step S81 that the number of columns K of the matrix of the first term on the left side of equation (2) is greater than the number of rows ML and ML is not greater than or equal to K, the
[0140]
Similarly, in step S84, if it is determined in the target column that the values of the components in all the rows are “0” and there is no component having a value of “1”, the
[0141]
Further, in step S85, when it is determined that there is only one component having a value of “1” in the target column, the
[0142]
As described above, the
[0143]
In step S87, the deleted row may be retained in the
[0144]
In the above processing, the last column may be omitted. That is, in the process of step S89, the
[0145]
In the above, the
[0146]
In this case, the
[0147]
With reference to the flowchart of FIG. 10, a description will be given of the packet restoration possibility determination process using the applied Gaussian elimination method.
[0148]
First, in step S111, the
[0149]
Then, in step S113, the
[0150]
When it is determined that the component having the value “1” exists in the target Y column, the
[0151]
If it is determined that there are a plurality of components, in step S116, the
[0152]
For example, when a component having a value of “1” is detected in the first row, the third row, the fourth row, and the sixth row of the matrix of the first term on the left side of Expression (2), the
[0153]
When the process of step S116 is completed, the
[0154]
In step S118, when the value of the variable Y is larger than K, that is, the component A XY If it is determined that the data packet does not exist, the above process can be performed on all the columns, so that the
[0155]
If it is determined in step S111 that the number of columns K of the matrix of the first term on the left side of equation (2) is greater than the number of rows ML and ML is not greater than or equal to K, the
[0156]
Similarly, in step S114, if it is determined in the target column that the values of the components of all the rows are “0” and there is no component having the value of “1”, the
[0157]
Further, in step S115, when it is determined that there is only one component having the value “1” in the target column, the
[0158]
As described above, the
[0159]
The row detected first in step S116 may be held in the
[0160]
In the above processing, the last column may be omitted. That is, in the process of step S118, the
[0161]
Next, the data packet restoration process executed in step S26 of FIG. 7 will be described.
[0162]
As described above, the data packet restoration process uses the Gaussian elimination method using pivot selection or the applied Gaussian elimination method to calculate the P of the simultaneous linear equation of Expression (2). 1 Or P K This is done by finding the solution of At this time, each component Q of the matrix of the first term on the right side of equation (2) 1 Or Q ML Is calculated by the following equation (3).
[0163]
[Equation 3]
[0164]
In equation (3), the addition of each component is performed using an EOR operation for each corresponding bit.
[0165]
In the equation (3), the constant M is the number of data packets transmitted from the
[0166]
The first term on the right side of the equation (3) is a matrix of ML rows and NK columns generated based on information on the first term on the right side of the equation (1) shared with the
[0167]
The
[0168]
For example, in the case of the example illustrated in FIG. 6B, the
[0169]
The
[0170]
That is, if the
[0171]
Also, when performing the process using the applied Gaussian elimination method as shown in the flowchart of FIG. 10 in step S24 of FIG. 7, the
[0172]
When the
[0173]
Next, a data packet restoration process by the client 3 will be described with reference to a flowchart of FIG.
[0174]
First, in step S131, the
[0175]
Then, in step S132, the
[0176]
Based on the detection result, in step S134, the
[0177]
In step S135, the
[0178]
When there are a plurality of components having the value “1”, the
[0179]
Then, in step S137, the
[0180]
The
[0181]
In step S139, if the value of the variable Y is larger than K, XY If it is determined that does not exist, the
[0182]
Then, in step S141, the
[0183]
Then, in step S143, when it is determined that the value of the variable Y is “0”, the
[0184]
If it is determined in step S134 that the component having the value “1” does not exist in the Y-th column of the matrix of the first term on the left side of Expression (2), the
[0185]
Further, if it is determined in step S135 that there are a plurality of components having the value “1” for the Y-th column of the matrix of the first term on the left side of the equation (2), the
[0186]
As described above, the
[0187]
Next, another example using the applied Gaussian elimination method of the data packet restoration processing by the client 3 will be described with reference to the flowchart of FIG.
[0188]
First, in step S161, the
[0189]
Then, in step S162, the
[0190]
Based on the detection result, the
[0191]
In step S165, the
[0192]
If there are a plurality of components having the value “1”, in step S167, the
[0193]
Then, the
[0194]
In step S169, if the value of the variable Y is larger than K, that is, the component A XY If it is determined that does not exist, the
[0195]
Then, in step S171, the
[0196]
Then, in step S173, if it is determined that the value of the variable Y is “0”, the
[0197]
If it is determined in step S164 that the component having the value “1” does not exist in the Y-th column of the matrix of the first term on the left side of Expression (2), the
[0198]
Furthermore, in step S166, when it is determined that there are a plurality of components having the value “1” for the Y-th column of the matrix of the first term on the left side of Expression (2), the
[0199]
As described above, the
[0200]
As described above, since the processing for restoring the lost data packet is performed in the client 3, the number of times of requesting the retransmission of the data packet can be reduced. Further, before performing the data packet restoration process, it is determined whether or not the lost data packet can be restored. Therefore, when retransmission is necessary, a request for retransmission can be made immediately. Such a process is particularly effective in streaming distribution or live broadcasting with a limited processing time.
[0201]
In FIG. 1, a system in which the
[0202]
Further, in FIG. 1, the
[0203]
Furthermore, each block in the internal configuration example of the
[0204]
The
[0205]
The series of processes described above can be executed by hardware, but can also be executed by software. When a series of processing is executed by software, a program constituting the software may execute various functions by installing a computer built into dedicated hardware or installing various programs. It is installed from a recording medium into a possible general-purpose personal computer or the like.
[0206]
As shown in FIG. 2 or FIG. 3, a recording medium for recording a program installed in a computer and made executable by the computer includes a
[0207]
In this specification, a step of describing a program recorded on a recording medium may be performed in chronological order according to the described order, or may be performed in parallel or not necessarily in chronological order. This also includes processes executed individually.
[0208]
【The invention's effect】
As described above, according to the present invention, packet data supplied from another device can be acquired. In particular, it is possible to more suitably acquire packet data and reproduce data.
[Brief description of the drawings]
FIG. 1 is a diagram showing a basic configuration example of a data transmission system to which the present invention is applied.
FIG. 2 is a block diagram illustrating an example of the internal configuration of a server in FIG. 1;
FIG. 3 is a block diagram illustrating an example of the internal configuration of a client in FIG. 1;
FIG. 4 is a flowchart illustrating a data transmission process by the server in FIG. 1;
FIG. 5 is a schematic diagram illustrating an example of a packet generated by the server of FIG. 1;
FIG. 6 is a schematic diagram showing a state of a packet transmitted from a server and received by a client in the data transmission system of FIG. 1;
FIG. 7
3 is a flowchart illustrating a data reception process performed by the client in FIG. 1.
FIG. 8
8 is a flowchart illustrating an example of a packet restoration possibility determination process executed in step S24 of FIG. 7.
FIG. 9
8 is a flowchart illustrating another example of the packet restoration possibility determination process executed in step S24 of FIG. 7.
FIG. 10
8 is a flowchart illustrating still another example of the packet restoration possibility determination process executed in step S24 of FIG. 7.
FIG. 11
8 is a flowchart illustrating an example of a data packet restoration process performed in step S26 of FIG.
FIG.
8 is a flowchart illustrating another example of the data packet restoration process performed in step S26 of FIG.
[Explanation of symbols]
1 server, 2 networks, 3-1 and 3-2 clients, 14 packet generator, 64 data reproducer, 65 packet restorer, 101 data packet, 102 redundant packet
Claims (12)
前記他の情報処理装置により送信された、前記配信用データのデータパケット、および複数の前記データパケットに含まれる各データの排他的論理和演算結果を含む冗長パケットを受信する受信手段と、
前記受信手段により受信できなかった前記データパケットが復元可能であるか否かを判定する可能性判定手段と、
前記可能性判定手段による判定結果に基づいて、復元不可能である場合、受信できなかった前記データパケットの再送を前記他の情報処理装置に要求する要求手段と、
前記可能性判定手段による判定結果に基づいて、復元可能である場合、前記受信手段により受信された前記データパケットおよび前記冗長パケットを用いて、排他的論理和演算を用いた連立一次方程式を解くことによって、受信できなかった前記データパケットを復元する復元手段と
を備えることを特徴とする情報処理装置。In an information processing device that receives distribution data from another information processing device,
A receiving unit that receives a data packet of the data for distribution and a redundant packet including an exclusive OR operation result of each data included in the plurality of data packets, transmitted by the other information processing apparatus,
Possibility determining means for determining whether the data packet that could not be received by the receiving means is recoverable,
Request means for requesting the other information processing device to retransmit the data packet that could not be received, based on the determination result by the possibility determining means, if restoration is not possible,
Solving a simultaneous linear equation using an exclusive-OR operation using the data packet and the redundant packet received by the receiving means, when restoration is possible, based on the determination result by the possibility determining means; And a restoring means for restoring the data packet that could not be received.
ことを特徴とする請求項1に記載の情報処理装置。The redundant packet is generated by using a plurality of arbitrarily selected data packets corresponding to the same block for each block which is the distribution data divided into a predetermined size. The information processing apparatus according to claim 1.
ことを特徴とする請求項2に記載の情報処理装置。The information processing apparatus according to claim 2, wherein the data packet and the redundant packet are transmitted from the another information processing apparatus in the block unit.
ことを特徴とする請求項3に記載の情報処理装置。The information processing apparatus according to claim 3, wherein the receiving unit further includes a monitoring unit that monitors whether reception processing of the data packet and the redundant packet of the same block is completed.
ことを特徴とする請求項1に記載の情報処理装置。2. The information processing apparatus according to claim 1, further comprising an existence determination unit configured to determine whether the data packet that cannot be received by the reception unit exists.
ことを特徴とする請求項1に記載の情報処理装置。The information processing apparatus according to claim 1, wherein information on the generation of the redundant packet is shared with the another information processing apparatus.
ことを特徴とする請求項1に記載の情報処理装置。The said possibility judgment means judges whether the said data packet which could not be received by the said receiving means can be restored based on the component of the matrix showing the coefficient of the said simultaneous linear equation. Item 2. The information processing device according to item 1.
前記要求手段は、前記余裕判定手段により前記再送処理を行う余裕があると判定された場合、受信できなかった前記データパケットの再送を前記他の情報処理装置に要求する
ことを特徴とする請求項1に記載の情報処理装置。The apparatus further includes a margin determining unit that determines whether there is a margin for performing a retransmission process of the data packet determined to be unrecoverable by the possibility determining unit,
The request means, if the margin determination means determines that there is enough time to perform the retransmission processing, requests the other information processing apparatus to retransmit the data packet that could not be received. 2. The information processing device according to 1.
ことを特徴とする請求項1に記載の情報処理装置。2. The information processing apparatus according to claim 1, wherein the restoration unit solves the simultaneous linear equations using a Gaussian elimination method using pivot selection, which is a processing method for selecting a coefficient whose value is not 0. 3. apparatus.
ことを特徴とする請求項1に記載の情報処理装置。The restoration means uses an applied Gaussian elimination method for calculating an exclusive OR of adjacent terms among equations including coefficients whose values are not 0 with respect to a predetermined column of the matrix, and The information processing apparatus according to claim 1, wherein the equation is solved.
前記他の情報処理装置により送信された、前記配信用データのデータパケット、および複数の前記データパケットに含まれる各データの排他的論理和演算結果を含む冗長パケットを受信する受信制御ステップと、
前記受信制御ステップの処理により受信できなかった前記データパケットが復元可能であるか否かを判定する可能性判定ステップと、
前記可能性判定ステップの処理による判定結果に基づいて、復元不可能である場合、受信できなかった前記データパケットの再送を前記他の情報処理装置に要求する要求ステップと、
前記可能性判定ステップの処理による判定結果に基づいて、復元可能である場合、前記受信制御ステップの処理により受信された前記データパケットおよび前記冗長パケットを用いて、排他的論理和演算を用いた連立一次方程式を解くことによって、受信できなかった前記データパケットを復元する復元ステップと
を含むことを特徴とする情報処理方法。An information processing method for an information processing apparatus that performs transmission and reception of distribution data with another information processing apparatus,
A reception control step of receiving a data packet of the data for distribution and a redundant packet including an exclusive OR operation result of each data included in the plurality of data packets, transmitted by the other information processing apparatus,
Possibility determination step of determining whether the data packet that could not be received by the processing of the reception control step is recoverable,
A requesting step of requesting the other information processing apparatus to retransmit the data packet that could not be received, based on the determination result obtained by the processing of the possibility determining step, if the data packet cannot be restored,
If restoration is possible based on the result of the determination in the possibility determination step, simultaneous use of the data packet and the redundant packet received in the processing of the reception control step using an exclusive OR operation Recovering the data packet that could not be received by solving a linear equation.
前記他の情報処理装置により送信された、前記配信用データのデータパケット、および複数の前記データパケットに含まれる各データの排他的論理和演算結果を含む冗長パケットを受信する受信制御ステップと、
前記受信制御ステップの処理により受信できなかった前記データパケットが復元可能であるか否かを判定する可能性判定ステップと、
前記可能性判定ステップの処理による判定結果に基づいて、復元不可能である場合、受信できなかった前記データパケットの再送を前記他の情報処理装置に要求する要求ステップと、
前記可能性判定ステップの処理による判定結果に基づいて、復元可能である場合、前記受信制御ステップの処理により受信された前記データパケットおよび前記冗長パケットを用いて、排他的論理和演算を用いた連立一次方程式を解くことによって、受信できなかった前記データパケットを復元する復元ステップと
を含むことを特徴とするプログラム。In a program that causes a computer to perform a process of transmitting and receiving distribution data with another information processing device,
A reception control step of receiving a data packet of the data for distribution and a redundant packet including an exclusive OR operation result of each data included in the plurality of data packets, transmitted by the other information processing apparatus,
Possibility determination step of determining whether the data packet that could not be received by the processing of the reception control step is recoverable,
A requesting step of requesting the other information processing apparatus to retransmit the data packet that could not be received, based on the determination result obtained by the processing of the possibility determining step, if the data packet cannot be restored,
If restoration is possible based on the result of the determination in the possibility determination step, simultaneous use of the data packet and the redundant packet received in the processing of the reception control step using an exclusive OR operation Restoring the data packet that could not be received by solving a linear equation.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002322087A JP4088956B2 (en) | 2002-11-06 | 2002-11-06 | Information processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002322087A JP4088956B2 (en) | 2002-11-06 | 2002-11-06 | Information processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004159042A true JP2004159042A (en) | 2004-06-03 |
JP4088956B2 JP4088956B2 (en) | 2008-05-21 |
Family
ID=32802371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002322087A Expired - Fee Related JP4088956B2 (en) | 2002-11-06 | 2002-11-06 | Information processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4088956B2 (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008541526A (en) * | 2005-05-04 | 2008-11-20 | シーメンス エンタープライズ コミュニケーションズ ゲゼルシャフト ミット ベシュレンクテル ハフツング ウント コンパニー コマンディートゲゼルシャフト | Method and apparatus for determining an index assigned to a correction symbol |
JP2010114844A (en) * | 2008-11-10 | 2010-05-20 | Ntt Docomo Inc | Data receiving device, and method of receiving data |
EP2200207A1 (en) * | 2008-12-22 | 2010-06-23 | GN Resound A/S | Error correction scheme in a hearing system wireless network |
JP2012129751A (en) * | 2010-12-14 | 2012-07-05 | Canon Inc | Receiver and method for processing by receiver |
US8312352B2 (en) | 2008-12-09 | 2012-11-13 | Canon Kabushiki Kaisha | Communication apparatus and communication method |
US8503444B2 (en) | 2009-02-06 | 2013-08-06 | Canon Kabushiki Kaisha | Transmission device, transmission method, and program for the same |
JP6300293B1 (en) * | 2017-07-07 | 2018-03-28 | 株式会社Asj | Encoding / decoding structure and distributed data system using the same |
US10038509B2 (en) | 2015-03-24 | 2018-07-31 | Sony Corporation | Data reception apparatus, data transmission system, data reception method, and data transmission method |
WO2019008792A1 (en) * | 2017-07-07 | 2019-01-10 | 株式会社Asj | Encoding/decoding structure, and distribution data system using same |
-
2002
- 2002-11-06 JP JP2002322087A patent/JP4088956B2/en not_active Expired - Fee Related
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4814315B2 (en) * | 2005-05-04 | 2011-11-16 | シーメンス エンタープライズ コミュニケーションズ ゲゼルシャフト ミット ベシュレンクテル ハフツング ウント コンパニー コマンディートゲゼルシャフト | Method and apparatus for determining an index assigned to a correction symbol |
JP2008541526A (en) * | 2005-05-04 | 2008-11-20 | シーメンス エンタープライズ コミュニケーションズ ゲゼルシャフト ミット ベシュレンクテル ハフツング ウント コンパニー コマンディートゲゼルシャフト | Method and apparatus for determining an index assigned to a correction symbol |
JP2010114844A (en) * | 2008-11-10 | 2010-05-20 | Ntt Docomo Inc | Data receiving device, and method of receiving data |
US8312352B2 (en) | 2008-12-09 | 2012-11-13 | Canon Kabushiki Kaisha | Communication apparatus and communication method |
US8265099B2 (en) | 2008-12-22 | 2012-09-11 | Gn Resound A/S | Error correction scheme in a hearing system wireless network |
EP2200207A1 (en) * | 2008-12-22 | 2010-06-23 | GN Resound A/S | Error correction scheme in a hearing system wireless network |
US8503444B2 (en) | 2009-02-06 | 2013-08-06 | Canon Kabushiki Kaisha | Transmission device, transmission method, and program for the same |
JP2012129751A (en) * | 2010-12-14 | 2012-07-05 | Canon Inc | Receiver and method for processing by receiver |
US10038509B2 (en) | 2015-03-24 | 2018-07-31 | Sony Corporation | Data reception apparatus, data transmission system, data reception method, and data transmission method |
US10447416B2 (en) | 2015-03-24 | 2019-10-15 | Sony Corporation | Data reception apparatus, data transmission system, data reception method, and data transmission method |
US10873408B2 (en) | 2015-03-24 | 2020-12-22 | Sony Corporation | Data reception apparatus, data transmission system, data reception method, and data transmission method |
JP6300293B1 (en) * | 2017-07-07 | 2018-03-28 | 株式会社Asj | Encoding / decoding structure and distributed data system using the same |
WO2019008792A1 (en) * | 2017-07-07 | 2019-01-10 | 株式会社Asj | Encoding/decoding structure, and distribution data system using same |
WO2019008748A1 (en) * | 2017-07-07 | 2019-01-10 | 株式会社Asj | Data processing system and distribution data system using same |
US11064024B1 (en) | 2017-07-07 | 2021-07-13 | Asj Inc. | Encoding/decoding structure and distributed data system using the same |
Also Published As
Publication number | Publication date |
---|---|
JP4088956B2 (en) | 2008-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004165922A (en) | Apparatus, method, and program for information processing | |
US7792982B2 (en) | System and method for distributing streaming content through cooperative networking | |
US6665726B1 (en) | Method and system for fault tolerant media streaming over the internet | |
US7185084B2 (en) | Server-side measurement of client-perceived quality of service | |
US20060026294A1 (en) | Media transrating over a bandwidth-limited network | |
JP4690387B2 (en) | Distribution method preferably applied to streaming system | |
US9490850B1 (en) | Method and apparatus for decoding packetized data | |
US20210218788A1 (en) | Media playback apparatus and method including delay prevention system | |
US20120151291A1 (en) | Receiving apparatus and processing method for receiving apparatus | |
JP4506185B2 (en) | Receiving apparatus and method, and program | |
US8392955B2 (en) | Apparatus and method for representing a sequence of content as projections for reconstructing the sequence at full or lower quality | |
US8930755B2 (en) | Distribution apparatus and distribution method | |
KR101942270B1 (en) | Media playback apparatus and method including delay prevention system | |
JP4088956B2 (en) | Information processing device | |
Chakareski | Wireless streaming of interactive multi-view video via network compression and path diversity | |
CN111093083A (en) | Data transmission method and device | |
JP5344541B2 (en) | Data transmission apparatus, transmission method and program | |
JP6305398B2 (en) | Method and apparatus for error recovery using information associated with a transmitter | |
US11818501B2 (en) | Transmitting content during a networked conference | |
JP3927486B2 (en) | Streaming distribution apparatus, streaming distribution system, and streaming distribution method | |
Shabrina et al. | The Usage of CDN for Live Video Streaming to Improve QoS. Case Study: 1231 Provider. | |
Al-Taee et al. | A testbed for experimental evaluation of efficient multimedia delivery over lossy networks | |
JP6412741B2 (en) | COMMUNICATION DEVICE, COMMUNICATION METHOD, AND PROGRAM | |
Yuan et al. | Efficient allocation of packet-level forward error correction in video streaming over the Internet | |
JP6614145B2 (en) | Receiving device, receiving method, and computer program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051104 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070815 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071001 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071130 |
|
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: 20080204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080217 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110307 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110307 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |