(57)【特許請求の範囲】
【請求項１】
情報送信装置によって第一の情報記憶装置から読み出された再生時間情報を含むデータをネットワーク経由で情報受信装置に配送するデータ配送方法において、
前記情報送信装置と前記情報受信装置との間に介在する情報中継装置によって、前記データを受信し、前記データを第二の情報記憶装置に書き出し、
前記情報中継装置により、前記第二の情報記憶装置内に格納済みの先頭データと末尾データに含まれる該再生時間情報の差分を計算し、その差分量が一定量以上であることを確認できた場合に、前記第二の情報記憶装置から前記データを読み出して前記情報受信装置に送信し、
前記情報中継装置によって、前記第二の情報記憶装置内に格納されていないデータの存在が検知された場合、前記データの再送要求を前記情報送信装置及び他の情報中継装置のいずれかに送信し、
前記再送要求を受信した前記情報送信装置及び前記情報中継装置のいずれかによって、前記第一及び第二のいずれかの情報記憶装置から前記データを読み出して送信することを特徴とするデータ配送方法。
【請求項２】
情報送信装置によって第一の情報記憶装置から読み出されたデータをネットワーク経由で情報受信装置に配送するデータ配送方法において、
前記第一の情報記憶装置に格納された品質の異なる複数のデータを、再生時刻ごとに、各品質のデータが情報記憶装置の何れのブロックに格納されているかを示すテーブルを予め作成し、そのデータのうち一つを前記情報送信装置によって読み出し、
前記情報送信装置と前記情報受信装置との間に介在する情報中継装置によって、前記データを受信して第二の情報記憶装置に書き出し、
前記情報中継装置によって前記第二の情報記憶装置から読み出された前記データを前記情報受信装置に送信し、
前記情報中継装置によって、前記第二の記憶装置内に格納されているデータ量が一定量以下になった場合、前記データの品質変更要求を前記情報送信装置に送信し、
前記品質変更要求を受信した前記情報送信装置によって、現在の要求品質と現在配信している時刻から、該テーブルに従い読み出すべき情報記憶装置のブロックを決定し、前記第一の記憶装置から読み出すデータを変更することを特徴とするデータ配送方法。
【請求項３】
前記情報送信装置及び前記情報中継装置は、送信又は中継するデータに自装置のＩＰアドレスを格納し、
前記情報中継装置は、前記第二の情報記憶装置に書き出したデータの欠落を検知した場合、データに格納されている前記配送サーバ又は前段に位置する他の中継サーバのＩＰアドレスを読み出し、前記情報送信装置又は前段に位置する他の情報中継装置のいずれかにデータの再送要求を送信することを特徴とする請求項１又は２のデータ配送方法。
【請求項４】
情報送信装置と情報受信装置との間にネットワークを介して介在し、該情報送信装置から送信される再生時間情報を含むデータを該情報受信装置に配送するために中継する中継サーバであって、
該情報送信装置から送信された該データを受信する受信部と、
該受信処理部で受信された該データを記憶する記憶装置と、
該記憶装置内に記憶された先頭データと末尾データに含まれる該再生時間情報の差分を計算し、その差分量が一定量以上であることを確認する処理部と、
該処理部による確認の結果、一定量以上の確認ができた場合に、該記憶装置から該データを読み出して該情報受信装置に送信する送信部と、
該記憶装置内に記憶されていないデータの存在を検知し、該データの再送要求を該情報送信装置又は他の中継サーバのいずれかに送信する再送要求処理部と、を有し、かつ、
該中継サーバが、該受信部を介して、他の中継サーバ又は該情報受信装置から送信された該再送要求を受信した場合、該記憶装置に記憶された該データを読み出して該送信部を介して送信することを特徴とする中継サーバ。
【請求項５】
前記中継サーバは、送信又は中継するデータに自装置のＩＰアドレスを格納し、
前記再送要求処理部は、前記記憶装置に記憶すべきデータの欠落を検知した場合、該データに格納されている該情報送信装置又は前段に位置する他の中継サーバの該ＩＰアドレスを読み出し、前記情報送信装置又は前段に位置する他の中継サーバのいずれかにデータの再送要求を送信することを特徴とする請求項４の中継サーバ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータの配送方法、特に、欠落したストリームデータを再送により補完し、ネットワーク負荷に応じてストリームデータの品質変換を行なうストリームデータ配送方法に関する。
【０００２】
【従来の技術】
欠落したストリームデータの補完し、ストリームデータの品質変換を行なうストリームデータ配送方法としては、特開平11-184780が知られていた。特開平11-184780は、配送サーバとクライアントがネットワークを介して接続されている構成におけるストリーム配送方法を述べている。
【０００３】
配送サーバは、ネットワーク経由でクライアントにストリームデータを配送する。クライアントは、受信バッファにストリームデータを受信し、受信バッファ内のデータを定期的に読み出して表示装置に受信バッファ内のデータを表示する。
【０００４】
その際、クライアントは受信バッファの状態を参照し、ネットワーク転送中に欠落したストリームデータがあるか否かを検査する。欠落したストリームデータが存在した場合には、配送サーバに、欠落したストリームデータの再送要求を送信する。配送サーバは上記要求を受信した場合、要求されたストリームデータの再送処理を行なう。
【０００５】
また、クライアントは受信バッファの状態を参照する際に、受信バッファ内に存在するストリームデータが一定量以下になったか否か、及びストリームデータ欠落の発生確率が一定値以上になったか否かを検査する。データ量が一定量以下になった場合、及び発生確率が一定値以上になった場合、クライアントは配送サーバに品質変換要求を送信する。配送サーバは上記要求を受信した場合、送信レートを変更するため、以降送信するストリームデータの間引き（フレームレート、即ち時間解像度の低減）を行なう。
【０００６】
【発明が解決しようとする課題】
特開平11-184780で示されている方法では、クライアントに大きな受信バッファを要し、結果としてクライアントが高価になる。即ち、特開平11-184780で示されている方法では、クライアントが配送サーバに再送要求や品質変換要求を発行するため、配送サーバとクライアントとの間のネットワーク遅延が大きい場合には、上記再送要求や品質変換要求をクライアントが送信してから、再送データがクライアントに到達するまでの時間や、レート変更が反映されるまでの時間が長くなる。その結果、クライアント側で十分な受信バッファを準備しなければ、再送データの到達やレート変更の反映の前に、受信バッファの読み出しによる再生処理や、受信バッファのアンダーフローが発生してしまう。
【０００７】
また、特開平11-184780で示されている方法では、ストリームデータの再送に要するネットワーク帯域が大きい。例えば、配送サーバとクライアントが、複数のルータを介して接続されているシステムの場合、中途のルータ間のネットワークでストリームデータの欠落が発生した場合でも、特開平11-184780では配送サーバとクライアント間に介在するすべてのネットワークの帯域を消費してストリームデータを再送する。これは中途のルータ間のネットワークの帯域のみを消費する理想的な再送と比して、ネットワーク帯域をより多く消費している。
【０００８】
最後に、特開平11-184780で示されている方法では、ストリームデータの品質変換の際に時間解像度の低減のみを行なう。そのため、空間解像度を低減すれば画質劣化を隠蔽できる場合にも、かなりの画質劣化が表示装置で認識される。
【０００９】
本発明は、クライアントで備えるべき受信バッファ量を低減し、再送時に要するネットワーク帯域を低減し、さらに、時間解像度だけでなく、空間解像度の低減によっても品質変換が可能なストリームデータ配送方法を提供する。
【００１０】
【課題を解決するための手段】
上記目的を達成するため、本発明では以下の手順を備えるデータ配送方法を提供する。このデータ配送方法は、配送サーバが補助記憶装置からストリームデータを読み出し、クライアントに送信することを仮定している。
１）配送サーバから読み出し可能な補助記憶装置に、品質の異なる複数のストリームデータを格納し、配送サーバがその中から一つの品質のストリームデータのみを読み出し、送信する。
２）配送サーバとクライアントとの間に中継サーバを配置し、当該中継サーバが、中継すべきストリームデータを、一旦当該中継サーバから読み書き可能な補助記憶装置にバッファリングする。
３）中継サーバがストリームデータの欠落を検知した時、前段に位置する配送サーバまたは中継サーバに、当該ストリームデータの再送要求を発行する。
４）上記再送要求を受信した配送サーバまたは中継サーバが、当該ストリームデータを補助記憶装置から読み出して再送する。
５）中継サーバが補助記憶装置内にバッファリングしているストリームデータ量が一定値以下になった場合、またはストリームデータの欠落発生確率が一定値以上になった場合には、ストリームデータの品質変換要求を配送サーバに送信する。
６）上記品質変換要求を受信した配送サーバが、補助記憶装置から読み出すストリームデータを変更し、送信するストリームデータの品質を変更する。
【００１１】
【発明の実施の形態】
本発明における第１の実施の形態を以下に示す。
【００１２】
図１は、第１の実施の形態で仮定するシステム構成を示す。
【００１３】
本システムでは、配送サーバ101が補助記憶装置104からストリームデータを読み出し、送信する。クライアント102が上記ストリームデータを受信バッファ109に受信し、表示装置108に表示する。
【００１４】
上記送信はクライアント102からの配送要求を契機に開始される。配送要求には、配送すべきストリームデータの品質に関する情報が格納されている。配送サーバ101は、予め補助記憶装置104内に複数の品質のストリームデータ105を保持しており、要求された品質に合致するストリームデータのみを補助記憶装置から読み出しクライアント102に送信する。
【００１５】
上記で送信されるストリームデータは、クライアント102に到達するまでに、中継サーバ103を経由する。中継サーバ103は、受信したストリームデータをある程度、自ノードが保持する補助記憶装置106内にバッファリングする（ストリームデータバッファ107を保持する）。ストリームデータバッファ107はクライアントごとに別々に管理する。ストリームデータバッファ107内のデータ量が一定以上になったら、ストリームデータを順次読み出しクライアント102に送信する。
【００１６】
中継サーバ103やクライアント102は、ストリームデータバッファ106や受信バッファ109を参照し、ストリームデータの欠落が発生しているか否かを検査する。発生していた場合、当該データの再生要求を、前段に位置する配送サーバ101または中継サーバ103に発行する。配送サーバ101または中継サーバ103は、当該データを補助記憶装置105、106から読み出し再送する。
【００１７】
また、中継サーバ103やクライアント102は、同じくストリームデータバッファ106や受信バッファ109を参照し、バッファリングされているデータ量が一定値以下になっていないか、及びストリームデータの欠落の発生確率が一定値以上になっていないかを検査する。上記のいずれかが発生していた場合、ネットワークが過負荷であると判断し、品質変換要求（品質を低下する要求）を前段に位置する配送サーバ101または中継サーバ103に発行する。本要求は、各中継サーバ103が順次中継するため、最終的には配送サーバ101まで到達する。配送サーバ101は、以後、新たに要求された品質のストリームデータのみを補助記憶装置105から読み出しクライアント102に転送する。
【００１８】
図１に示すシステム構成により、以下に示す効果が得られる。
１）再送要求処理は、自ノードと隣接する配送サーバまたは中継サーバとの間で実行される。そのため、再送要求発行から、再送されたストリームデータの到達までの時間を低減できる。また、品質変換要求発行から品質変換の実現までに要する時間は従来方式と変わらないが、クライアントだけでなく中継サーバもストリームデータをバッファリングしているので、クライアントが準備すべき受信バッファ量を低減できる。
２）また、再送要求処理は自ノードと隣接する配送サーバまたは中継サーバとの間で実行されるため、再送の際に消費するネットワーク帯域を低減できる。
３）ストリームデータの品質変換は、配送サーバが補助記憶装置から読み出すストリームデータの種類を変えることにより行なうため、品質変換を、時間解像度だけでなく空間解像度の低減を用いて実現できる。
【００１９】
以下、図１中で示したノード間で転送されるデータのフォーマットを説明した後、配送サーバ、中継サーバ、及びクライアントの構成を詳細に説明する。
【００２０】
図１に示したノード間で転送されるデータのフォーマットを図２に示す。
【００２１】
クライアントから配送サーバに送信される配送要求を格納したパケットのフォーマット201は、以下のフィールドからなる。
１）当該パケットが配送要求であることを示すデータを格納する「コマンド」フィールド。
２）当該配送要求の送信先となるべき配送サーバのIPアドレスを格納する「配送サーバIPアドレス」フィールド。
３）当該配送要求の送信元であるクライアントのIPアドレスを格納する「クライアントIPアドレス」フィールド。
４）当該配送要求に従い送信されるストリームデータの要求品質を格納する「品質レベル」フィールド。
【００２２】
配送サーバからクライアントに送信されるストリームデータを格納したパケットのフォーマット202は、以下のフィールドからなる。
１）当該パケットがストリームデータであることを示すデータを格納する「コマンド」フィールド。
２）ストリームデータの送信元である配送サーバのIPアドレスを格納する「配送サーバIPアドレス」フィールド。
３）ストリームデータの送信先であるクライアントのIPアドレスを格納する「クライアントIPアドレス」フィールド。
４）パケットに格納されているストリームデータの品質を示す「品質レベル」フィールド。
５）当該パケットに格納されているストリームデータの時間index値（当該ストリームデータが、全ストリームデータの先頭が再生されてから、どれだけの時間後に再生されるべきかを示す情報）を格納する「時間index」フィールド。
６）当該ストリームデータを中継した配送サーバまたは中継サーバのIPアドレスを格納する「前段サーバIPアドレス」フィールド。配送サーバは当該パケット送信時に、本フィールドを自ノードのIPアドレスに設定する。以後、本パケットを中継する各中継サーバは、中継実行時に本フィールドを自ノードのIPアドレスに更新する。すなわち、当該パケットを受信したノードは、前段に存在する配送サーバまたは中継サーバのIPアドレスを、本フィールドにより認識できる。
７）当該パケットのストリームデータのサイズを格納する「データサイズ」フィールド。
８）当該パケットのストリームデータ本体を格納する「データ部」フィールド。
【００２３】
品質変換要求を格納したパケットのフォーマット203は、以下のフィールドからなる。
１）当該パケットが品質変換要求であることを示すデータを格納する「コマンド」フィールド。
２）品質変換を要求するストリームデータの送信元である配送サーバのIPアドレスを格納する「配送サーバIPアドレス」フィールド。
３）品質変換を要求するストリームデータの送信先であるクライアントのIPアドレスを格納する「クライアントIPアドレス」フィールド。
４）新たに要求するストリームデータの品質を格納する「品質レベル」フィールド。
【００２４】
再送要求を格納したパケットのフォーマット204は以下のフィールドからなる。
１）当該パケットが再送要求であることを示すデータを格納する「コマンド」フィールド。
２）再送を要求するストリームデータの送信元である配送サーバのIPアドレスを格納する「配送サーバIPアドレス」フィールド。
３）再送を要求するストリームデータの送信先であるクライアントのIPアドレスを格納する「クライアントIPアドレス」フィールド。
４）再送を要求するストリームデータの時間index値を格納する「時間index」フィールド。
【００２５】
配送サーバの構成を、図３〜５を用いて説明する。
【００２６】
図３に配送サーバ101の全体構成を示す。配送サーバ101は、配送要求処理部301、送信処理部304、品質要求処理部302、再送要求処理部303からなる。以下、上記各モジュールの構成を述べる。
【００２７】
配送要求処理部301は、クライアントから配送要求パケット201を受信し、送信処理部304が当該要求に従ったストリームデータの送信が開始できるように、配送管理テーブル305を設定する。
【００２８】
配送管理テーブル305の構成を図４に示す。配送管理テーブルには以下のフィールドが存在する。
１）配送要求を発行したクライアントのIPアドレスを格納する「クライアントIPアドレス」フィールド401。
２）送信すべきストリームデータの品質を格納する「現在の品質レベル」フィールド402。
３）次に送信すべきストリームデータの時間index値を格納する「送信済時間index」フィールド403。
【００２９】
配送要求処理部301は、受信した配送要求パケット201の「クライアントIPアドレス」及び「品質レベル」フィールドに従い、配送管理テーブル305の「クライアントIPアドレス」及び「現在の品質レベル」フィールドを初期化する。また、「送信済時間index」フィールドは０に初期化する。
【００３０】
送信処理部304はタイマにより周期駆動される。送信処理部304は配送管理テーブル305を参照し、テーブルの各エントリに格納されている品質レベル402と時間index値403を持つストリームデータ105を補助記憶装置104から読み出し、当該エントリに格納されているクライアントIPアドレス401宛に当該ストリームデータを送信する。送信完了後、送信済み時間indexフィールド403の値をインクリメントする。
【００３１】
上記のように、送信処理部は、指定された品質レベルと時間index値を持つストリームデータを補助記憶装置104から読み出す必要がある。この読み出しを実現するため、ストリームデータは図５に示すデータ形式により補助記憶装置104に格納されている。
【００３２】
補助記憶装置104には、品質レベルごとにインデックス化された品質管理テーブル501が存在する。品質管理テーブル501の各エントリには、当該品質レベルを保持するストリームデータのメタデータテーブル502の格納位置を示す情報が存在する。
【００３３】
メタデータテーブル502は、ストリームデータのメタ情報が格納されるテーブルであり、時間index値によりインデックス化されている。メタデータテーブルの各エントリには、当該時間index値を持つストリームデータが格納されているデータブロック503の位置と、データブロック503内の有効データサイズを示す情報が格納される。
【００３４】
送信処理部304は以下を実行する。
１）品質管理テーブル501から、指定された品質レベルを保持するストリームデータに対応するメタデータテーブルを検索する。
２）メタデータデーブル502から、指定された時間indexを保持するストリームデータのデータブロックを検索し、当該データブロックからストリームデータを読み出す。
【００３５】
さらに、送信処理部304は、再送要求処理部303から再送要求指示を受け付ける。この時の動作は、再送要求処理部の構成の説明で後述する。
【００３６】
再送要求処理部303は、中継サーバから再送要求パケット204を受信した際に駆動する。そして、当該パケットに格納されている「クライアントIPアドレス」と「時間index」の情報を送信処理部304に受け渡す。上記情報を受け付けた送信処理部304は直ちに以下を実行する。
１）配送管理テーブル305を参照し、受け渡された「クライアントIPアドレス」401に送信すべきストリームデータの現在の品質レベル402を得る。
２）上記「品質レベル」と受け渡された「時間index」を持つストリームデータを補助記憶装置から読み出し、当該ストリームデータを、受け渡された「クライアントIPアドレス」宛に送信する。
【００３７】
品質要求処理部302は、中継サーバから品質変換要求パケット203を受信した際に駆動する。そして直ちに、配送管理テーブル305の「現在の品質レベル」フィールド402の値を、当該パケットの「品質レベル」フィールドに指定されている値に更新する。
【００３８】
中継サーバの構成を、図６〜８を用いて説明する。図６に中継サーバ103の全体構成を示す。
【００３９】
中継サーバ103は、受信処理部601、再送要求処理部603、品質要求処理部604、送信処理部602からなる。以下、各モジュールの構成を述べる。
【００４０】
受信処理部601は、前段に位置する配送サーバまたは中継サーバからストリームデータを受信した際に起動する。そして、ストリームデータを補助記憶装置106に格納すると同時に、中継管理テーブル605を更新する。
【００４１】
中継管理テーブル605の構成を図７に示す。中継管理テーブルは以下のフィールドからなる。
１）ストリームデータの送信元となる配送サーバのIPアドレスを格納する「配送サーバIPアドレス」フィールド701。
２）ストリームデータの送信先となるクライアントのIPアドレスを格納する「クライアントIPアドレス」フィールド702。
３）前段に位置する配送サーバ、または中継サーバのIPアドレスを格納する「前段サーバIPアドレス」フィールド703。
４）ストリームデータの現在の品質レベルを格納する「現在の品質レベル」フィールド704。
５）次に受信できると期待できるストリームデータの時間index値を格納する「受信済時間index」フィールド705。
６）次に送信すべきストリームデータの時間index値を格納する「送信済時間index」フィールド706。
７）欠落したストリームデータの時間index値群をリスト状に格納する「欠落時間indexリスト」フィールド707。
【００４２】
ストリームデータを受信した受信処理部601は、以下の手順で中継管理テーブル605を更新する。
１）受信したストリームデータを格納したパケット202内の「配送サーバIPアドレス」及び「クライアントIPアドレス」フィールド内と同一の値を持つ中継管理テーブル605のエントリを検索する。
２）上記１）でエントリが存在しなかったら、新規にエントリを作成する。当該エントリの「配送サーバIPアドレス」701、「クライアントIPアドレス」702、「前段サーバIPアドレス」703、「現在の品質レベル」704、及び「受信済時間index」705の各フィールドを、当該パケット内の「配送サーバIPアドレス」、「クライアントIPアドレス」、「前段サーバIPアドレス」、「品質レベル」、及び「時間index」フィールドの値に初期化する。また、当該エントリの「送信済時間index」フィールド706の値は、「受信済時間index」フィールド705と同一の値に初期化する。
３）上記１）でエントリが存在した場合には、当該エントリの「現在の品質レベル」フィールド704の値を、当該パケットの「品質レベル」フィールドの値に更新する。また、当該エントリの「受信済時間index」フィールド705の値と、当該パケットの「時間index」フィールドの値を比較する。比較結果に応じて以下の処理を行なう。
【００４３】
Ａ）後者（「時間index」フィールドの値）が前者（「受信済時間index」フィールド705の値）より１大きい値である場合には、欠落なくストリームデータが到達したと判定し、当該エントリの「受信済時間index」フィールド705の値を、当該パケットの「時間index」フィールドの値に更新する。
【００４４】
Ｂ）後者が前者より２以上大きい値である場合には、欠落が発生したと判定し、当該エントリの「受信済時間index」フィールド705の値を、当該パケットの「時間index」フィールドの値に更新した後、欠落した時間index値のリストを、「欠落時間indexリスト」フィールド707に加える。
【００４５】
Ｃ）後者が前者より小さい値である場合には、当該パケットは再送されたストリームデータを格納していると判定し、当該パケットの「時間index」フィールドに格納されている値を、当該エントリの「欠落時間indexリスト」フィールド707から取り除く。
【００４６】
再送要求処理部603はタイマにより周期駆動される。その際、中継管理テーブル605の各エントリにつき、「欠落時間indexリスト」フィールド707に格納されている時間index値を持つストリームデータの再送要求を発行する。具体的には、再送要求パケット204を作成し、当該パケットを当該エントリの「前段サーバIPアドレス」703宛に送信する。当該パケットの「配送サーバIPアドレス」と「クライアントIPアドレス」フィールドの値は、当該エントリの対応するフィールドからコピーする。当該パケットの「時間index」フィールドの値は、当該エントリの「欠落時間indexリスト」フィールド707に格納されている値をコピーする。
【００４７】
また、再送要求処理部603は、自中継サーバの次段に位置する中継サーバまたはクライアントからの再送要求パケット204を受信した際にも起動される。その際、当該パケットの「配送サーバIPアドレス」、「クライアントIPアドレス」、及び「時間index」の各フィールドに格納されている情報を送信処理部602に受け渡した上、送信処理部602に再送指示を発行する。その際の送信処理部602の動作については、送信処理部602の構成と併せて後述する。
【００４８】
品質要求処理部604はタイマにより周期駆動され、以下を実行する。
１）中継管理テーブル605の各エントリにつき、ストリームデータバッファ107内のデータ量が一定量以下であるか、及びストリームデータ欠落の発生確率が一定値以上であるか否かを検査する。前者は、当該エントリの「受信済時間index」と「送信済時間index」フィールドの差分が一定値以下であるか否かで判定する。後者は、「欠落時間index」フィールドに格納されている時間index値の数が一定数以上か否かで判定する。
２）上記１）でデータ量が一定量以下、または発生確率が一定値以上であると判定された場合、品質変換要求パケット203を自ノードの前段に位置する配送サーバまたは中継サーバに送信する。当該パケットの「配送サーバIPアドレス」と「クライアントIPアドレス」の各フィールドの値は当該エントリの対応するフィールドからコピーする。また、当該パケットの「品質レベル」フィールドの値は、当該エントリの「現在の品質レベル」フィールド704の値から１を引いた値を設定する。
【００４９】
また、品質要求処理部604は、自中継サーバの次段に位置する中継サーバまたはクライアントからの品質変換要求パケット203を受信した際にも起動される。その際、単に当該パケットを前段に位置する配送サーバ又は中継サーバに転送する。
【００５０】
送信処理部602はタイマにより周期駆動される。その際、中継管理テーブル605の各エントリに関して以下を実行する。
１）当該エントリの「受信済時間index」と「送信済時間index」の各フィールドの差分により、ストリームデータバッファ107内のデータ量が一定量以上か否かを判別する。
２）一定量以上の場合のみ、当該エントリの「配送サーバIPアドレス」701と「クライアントIP アドレス」702の各フィールドで指定されるノード間で転送されており、かつ、「送信済時間index」フィールド706で指定される時間index値を持つストリームデータを補助記憶装置106から読み出し、「クライアントIPアドレス」706宛に送信する。
【００５１】
上記のように、送信処理部602は、指定された配送サーバIPアドレス、クライアントIPアドレス、時間index値を持つストリームデータを補助記憶装置106から読み出す必要がある。この読み出しを実現するため、ストリームデータは図８に示すデータ形式により補助記憶装置106に格納されている。
【００５２】
補助記憶装置106には、配送サーバIPアドレス、クライアントIPアドレスの組ごとにインデックス化されたクライアント管理テーブル801が存在する。クライアント管理テーブル801の各エントリには、当該配送サーバとクライアントとの間で転送されたストリームデータに対応するメタデータテーブル802の格納位置を示す情報が存在する。メタデータテーブル802、データブロック803の構成は図５と同様のため、ここではその説明は省略する。また、送信処理部602のストリームデータの読み出し方法も、配送サーバ101における送信処理部304が行なう読み出し方法と同様であるため、ここではその詳細は省略する。
【００５３】
また、送信処理部602は、再送要求処理部603の再送指示を受信した際にも起動される。前述したように、この際に「配送サーバIPアドレス」、「クライアントIPアドレス」、及び「時間index」に関する情報を再送要求処理部603から受信する。送信処理部602は、これらに対応するストリームデータを補助記憶装置から読み出し、当該ストリームデータを、受け渡された「クライアントIPアドレス」宛に送信する。
【００５４】
クライアントの構成を図９に示す。
【００５５】
クライアント102は、受信処理部901、再生処理部902、品質要求処理部903、及び再送要求処理部904からなる。以下、各モジュールの構成を説明する。
【００５６】
受信処理部901は、到達するストリームデータパケット202を受信バッファ109に受信する。受信バッファ109内では、ストリームデータパケット202群は、「時間index」フィールド値の値によりソーティングされている。また、再生処理部902が当該受信バッファからストリームデータを読み出し、表示装置108に対して表示指示を与える。
【００５７】
品質要求処理部903は、タイマにより周期駆動される。そして、受信バッファの状態を参照し、受信バッファ内のデータ量が一定量以上であるか、および、パケットの欠落の発生確率が一定値以上であるかを検査する。どちらかの条件が満たされた場合には、品質変換要求パケット203を、前段に位置する中継サーバに送信する。当該パケットの「配送サーバIPアドレス」と「クライアントIPアドレス」の各フィールドの値は、受信バッファに格納されているストリームデータパケット202の「配送サーバIPアドレス」と「クライアントIPアドレス」の各フィールドの値に設定する。また、当該パケットの「品質レベル」フィールドの値は、同じく受信バッファ内の末尾のストリームデータパケット202の「品質レベル」フィールドの値から１を引いた値に設定する。
【００５８】
再送要求処理部904も、タイマにより周期駆動される。そして、受信バッファ内に存在するストリームデータパケット202群の「時間index」フィールドの値を調べ、パケットの欠落が発生しているか否かを判定する。欠落が発生している場合には、再送を要求すべきストリームデータの時間index値を求める。そして、再送要求パケット204を前段に位置する中継サーバに送信する。当該パケットの「配送サーバIPアドレス」と「クライアントIPアドレス」の各フィールドの値は、受信バッファに格納されているストリームデータパケット202の「配送サーバIPアドレス」と「クライアントIPアドレス」の各フィールドの値に設定する。また、当該パケットの「時間index」フィールドの値は、上記で求めた時間index値を格納する。
【００５９】
本発明における第２の実施の形態を以下に説明する。第２の実施の形態におけるシステム構成を図１０に示す。
【００６０】
本システムでは、配送サーバ1001が補助記憶装置1004からストリームデータ1005を読み出し、中継サーバ1003に送信する。中継サーバ1003は受信したストリームデータを補助記憶装置1006内のストリームバッファ1007にバッファリングする。
【００６１】
各クライアント1002はストリームデータの受信を要求する場合、配送要求を中継サーバ1003に対して送信する。配送要求を受信した中継サーバ1003は、補助記憶装置1006内のストリームバッファ1007からストリームデータを読み出し、クライアント1002に配送する。配送要求には、ストリームデータの要求品質に関する情報も格納されている。中継サーバ1003は、ストリームバッファ1007内のデータを、上記要求品質に変換してからクライアント1002に送信する。上記品質変換は、配送サーバ1001から受信したストリームデータを間引く（フレームレート、すなわち時間解像度を低減する）ことにより実現する。
【００６２】
クライアント1002は受信バッファ1008を参照し、ストリームデータの欠落が発生しているか否かを検査する。発生していた場合、当該データの再生要求を、中継サーバ1003に送信する。再送要求を受信した中継サーバ1003は、当該データをストリームデータバッファ1007から読み出し再送する。
【００６３】
また、クライアント1002は、同じく受信バッファ1008を参照し、バッファリングされているデータ量が一定値以下になっていないか、及びストリームデータの欠落の発生確率が一定値以上になっていないかを検査する。上記のいずれかが発生していた場合、ネットワークが過負荷であると判断し、品質変換要求（品質を低下する要求）を中継サーバ1003に送信する。上記要求を受信した中継サーバ1003は、以後送信するストリームデータを要求された品質に落として、ストリームデータの間引き率を高くする。
【００６４】
図１０に示すシステム構成により以下に示す効果が得られる。
１）再送要求処理及び品質変換処理は、中継サーバとクライアントとの間で実行される。そのため、再送要求発行から、再送されたストリームデータの到達までの時間を低減できる。また、品質変換要求発行から品質変換の実現までに要する時間も低減できる。そのため、クライアントが準備すべき受信バッファ量を低減できる。
２）同様に、再送要求処理は中継サーバとクライアントとの間で実行されるため、再送の際に消費するネットワーク帯域を低減できる。
【００６５】
以下、図１０に示したノード間で転送されるデータのフォーマットを説明した後、中継サーバの構成を詳細に説明する。配送サーバ及びクライアントの構成はこれまでと同様であるため説明を省略する。
【００６６】
図１０に示したノード間で転送されるデータフォーマットを図１１に示す。図２で示したデータフォーマットと以下を除き同様である。
１）各パケットに、中継サーバのIPアドレスを格納する「中継サーバI Pアドレス」フィールドが存在する。
２）ストリームデータパケットに、「前段ノードIPアドレス」フィールドが存在しない。
【００６７】
中継サーバの構成を、図１２〜１３を用いて説明する。図１２に中継サーバ1003の全体構成を示す。
【００６８】
中継サーバ1003は、受信処理部1201、配送要求処理部1205、再送要求処理部1203、品質要求処理部1204、及び送信処理部1202からなる。以下、各モジュールの構成を述べる。
【００６９】
受信処理部1201は、配送サーバ からストリームデータを受信した際に起動される。そしてストリームデータを補助記憶装置1006に格納すると同時に、中継管理テーブル1206を更新する。
【００７０】
中継管理テーブル1206の構成を図１３に示す。中継管理テーブルは、配送サーバ管理テーブル部（当該中継サーバにストリームを送信している配信サーバを管理する。配信サーバごとにエントリが存在する。）と、クライアント管理テーブル部（当該中継サーバからのストリーム受信を要求しているクライアントを管理する。クライアントごとにエントリが存在する。）からなる。
【００７１】
配送サーバ管理テーブル部は以下のフィールドからなる。
１）ストリームデータの送信元となる配送サーバのIPアドレスを格納する「配送サーバIPアドレス」フィールド1301。
２）次に受信すべきストリームデータの時間index値を格納する「受信済時間index」フィールド1302。
３）次に送信すべきストリームデータの時間index値を格納する「送信済時間index」フィールド1303。
【００７２】
また、クライアント管理テーブル部は以下のフィールドからなる。
１）ストリームデータの送信元となる配送サーバのIPアドレスを格納する「配送サーバIPアドレス」フィールド1304。
２）ストリームデータの送信先となるクライアントのIPアドレスを格納する「クライアントIPアドレス」フィールド1305。
３）送信すべきストリームデータの品質レベルを格納する「要求品質」フィールド1306。
４）欠落したストリームデータの時間index値群をリスト形式で格納する「欠落時間indexリスト」フィールド1307。
【００７３】
ストリームデータを受信した受信処理部1201は、以下の手順で中継管理テーブル1206の配信サーバ管理テーブル部の更新処理と、ストリームデータの補助記憶装置1006への格納処理を実行する。
１）受信したストリームデータを格納したパケット1102内の「配送サーバIPアドレス」フィールドと同一の値を持つ中継管理テーブル1206の配信サーバ管理テーブル部のエントリを検索する。
２）上記１）でエントリが存在しなかったら、新規にエントリを作成する。当該エントリの「配送サーバIPアドレス」フィールド1301を、当該パケット内の「配送サーバIPアドレス」フィールドの値に初期化する。また、当該エントリの「受信済時間index」フィールド1302、及び「送信済時間index」フィールド1303の値は、受信したストリームデータの「時間index」フィールドに１を加えた値に初期化する。
３）上記１）でエントリが存在した場合には、当該エントリの「受信済時間index」フィールド1302の値を、受信したストリームデータの「時間index」フィールドに１を加えた値に更新する。
４）上記１）でエントリが存在した場合にはさらに、中継管理テーブル1206のクライアント管理テーブル部を検索し、「配送サーバIPアドレス」フィールド1301に対応するストリームデータの「要求品質」フィールド1306の一覧を得る。当該要求品質に受信したストリームデータを変換し、補助記憶装置に格納する。
【００７４】
配送要求処理部1205は、クライアントから配送要求を受信した際に起動される。そして、当該配送要求に従った送信を実行できるように、以下の手順で中継管理テーブル1206のクライアント管理テーブル部のエントリを新規に作成する。
１）配送要求パケット1101の「配送サーバIPアドレス」、「クライアントIPアドレス」、及び「品質レベル」の各フィールドの値を、新規に作成したエントリの「配送サーバIPアドレス」フィールド1304、「クライアントIPアドレス」フィールド1305、及び「要求品質」フィールド1306にコピーする。
２）「欠落時間indexリスト」フィールド1307は空リストに初期化する。
【００７５】
再送要求処理部1203はクライアントから再送要求パケット1104を受信した際にも起動される。この際に、当該パケットの「配送サーバIPアドレス」と「クライアントIPアドレス」に対応する中継管理テーブル1206のクライアント管理テーブル部のエントリを検索する。当該エントリの「欠落時間indexリスト」フィールド1307に、当該パケットの「時間index」フィールドの値を加える。
【００７６】
品質要求処理部1204はクライアントから品質変換要求パケット1103を受信した際に起動される。その際、当該パケットの「配送サーバIPアドレス」と「クライアントIPアドレス」に対応する中継管理テーブル1206のクライアント管理テーブル部のエントリを検索する。当該エントリの「要求品質」フィールド1306の値を、当該パケットの「品質レベル」フィールドの値に更新する。
【００７７】
送信処理部1202はタイマにより周期駆動される。その際、中継管理テーブル1206の配信サーバ管理テーブル部の各エントリに関して以下を実行する。
１）当該エントリの「受信済時間index」と「送信済時間index」との各フィールドの差分により、ストリームデータバッファ1007内のデータ量が一定量以上か否かを判別する。
２）データ量が一定量以上の場合のみ、当該エントリの「配送サーバIPアドレス」1301に対応するクライアント管理テーブル部のエントリ群を得る。上記クライアント管理テーブル部の各エントリに関して以下を実行する。
【００７８】
Ａ）「配送サーバIPアドレス」フィールド1301、「送信済時間index」フィールド1302、及び「要求品質」フィールド1306で指定されるストリームデータを補助記憶装置1006内のストリームデータバッファ1007から読み出す。「送信済時間index」フィールド1302の値をインクリメントする。
【００７９】
Ｂ）読み出したストリームデータを、「クライアントIPアドレス」フィールド1305で指定されるクライアントに送信する。
【００８０】
Ｃ）「配送サーバIPアドレス」フィールド1301、「欠落時間indexリスト」フィールド1307の各index値、及び「要求品質」フィールド1306で指定されるストリームデータを補助記憶装置1006内のストリームデータバッファ1007から読み出す。「欠落時間indexリスト」フィールド1307の値を空リストに更新する。
【００８１】
Ｄ）読み出したストリームデータを、「クライアントIPアドレス」フィールド1305で指定されるクライアントに送信する。
【００８２】
上記のように、送信処理部1202は、指定された配送サーバIPアドレス、品質、時間index値を持つストリームデータを補助記憶装置1006から読み出す必要がある。この読み出し方法は第１の実施の形態で示した方法と同様に実現できるため、その詳細については省略する。
【００８３】
【発明の効果】
本発明により以下の効果が得られる。
１）クライアントで備える必要がある受信バッファ量が低減できる。
２）再送時に要するネットワーク帯域が低減できる。
３）品質変換を、時間解像度だけでなく空間解像度の低減によっても可能になる。
【図面の簡単な説明】
【図１】  本発明の一実施形態によるシステム構成を示す図。
【図２】  一実施形態におけるノード間で転送されるパケットのフォーマットを示す図。
【図３】  一実施形態における配送サーバの全体構成を示す図。
【図４】  一実施形態における配送管理テーブル３０５の構成を示す図。
【図５】  一実施形態における配送サーバが保持する補助記憶装置内のストリームデータの構成を示す図。
【図６】  一実施形態における中継サーバの全体構成を示す図。
【図７】  一実施形態における中継管理テーブル６０５の構成を示す図。
【図８】  一実施形態における中継サーバが保持する補助記憶装置内のストリームデータの構成を示す図。
【図９】  一実施形態におけるクライアントの全体構成を示す図。
【図１０】  第２実施形態によるシステム構成を示す図。
【図１１】  第２実施形態におけるノード間で転送されるパケットのフォーマットを示す図。
【図１２】  第２実施形態における中継サーバの全体構成を示す図。
【図１３】  第２実施形態における中継管理テーブル１２０６の構成を示す図。
【符号の説明】
301：配送サーバ、302：クライアント、303：リダイレクタ、304：中継サーバ
【図１】
0003884920.tif 000002
【図２】
0003884920.tif 000003
【図３】
0003884920.tif 000004
【図４】
0003884920.tif 000005
【図５】
0003884920.tif 000006
【図６】
0003884920.tif 000007
【図７】
0003884920.tif 000008
【図８】
0003884920.tif 000009
【図９】
0003884920.tif 000010
【図１０】
0003884920.tif 000011
【図１１】
0003884920.tif 000012
【図１２】
0003884920.tif 000013
【図１３】
0003884920.tif 000014