JP2006025338A - ストリームデータ受信転送方法およびストリーム受信装置、ならびにストリームデータ受信転送プログラム - Google Patents
ストリームデータ受信転送方法およびストリーム受信装置、ならびにストリームデータ受信転送プログラム Download PDFInfo
- Publication number
- JP2006025338A JP2006025338A JP2004203476A JP2004203476A JP2006025338A JP 2006025338 A JP2006025338 A JP 2006025338A JP 2004203476 A JP2004203476 A JP 2004203476A JP 2004203476 A JP2004203476 A JP 2004203476A JP 2006025338 A JP2006025338 A JP 2006025338A
- Authority
- JP
- Japan
- Prior art keywords
- stream data
- stream
- buffer
- packet
- relay stages
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
【課題】 多段中継型のストリーム配信において、受信している各ストリームデータの中継段数が異なる場合でも、受信したストリームデータの冗長性を確保できるようにする。
【解決手段】 ストリームデータの最大中継段数および各受信装置での蓄積係数、各ストリームデータの中継段数に基づいて、各ストリームデータに対して、個別にバッファ長を設定する。また、各ストリームデータの中継段数が異なる場合は、中継段数が最も大きいストリームデータのバッファ長を基準とし、中継段数が少ないストリームデータのバッファ長を長くすることで、冗長性を確保する。
【選択図】 図4
【解決手段】 ストリームデータの最大中継段数および各受信装置での蓄積係数、各ストリームデータの中継段数に基づいて、各ストリームデータに対して、個別にバッファ長を設定する。また、各ストリームデータの中継段数が異なる場合は、中継段数が最も大きいストリームデータのバッファ長を基準とし、中継段数が少ないストリームデータのバッファ長を長くすることで、冗長性を確保する。
【選択図】 図4
Description
本発明は、ストリーム受信装置およびストリーム受信転送方法、ならびにストリーム受信中継プログラムに関し、特に、多段中継型(ピア・トゥ・ピア型)の配信方式で配信されるストリームデータの受信装置に適用して有効な技術に関するものである。
従来、音声や映像等のストリームデータをストリーム配信する配信方式は、クライアント・サーバ方式が一般的であった。前記クライアント・サーバ方式では、前記ストリームデータを受信して再生するストリーム受信装置は、1つのストリーム配信サーバに接続する。すなわち、前記クライアント・サーバ方式では、複数のストリーム受信装置が前記ストリームデータを保持している1つのストリーム配信サーバにアクセスし、データパケットを受信していた。しかしながら、1つのストリーム配信サーバの配信能力には限りがあるため、同時に多数のストリーム受信装置がアクセスすると輻輳状態になり、前記ストリーム受信装置で前記ストリームデータを再生するときに、スムーズに再生できなくなるという問題があった。このような問題を解決するには、たとえば、前記ストリーム配信サーバを増設する必要がある。しかしながら、前記ストリーム配信サーバを増設する場合、前記ストリーム受信装置の接続数が増大するに比例して前記ストリーム配信サーバ等の装置の設置コストや管理コストがかさむという問題があった。さらに、前記ストリーム受信装置が同時に接続した場合の輻輳を回避するためには、前記ストリーム配信サーバ群が接続するネットワークの回線帯域を増強する必要がある。そのため、前記装置の設置コストや管理コストに加え、回線コストがかさむという問題もあった。
前記クライアント・サーバ方式のストリーム配信において、前記ストリーム配信サーバの設置コストや管理コスト、回線コストがかさむという問題を回避する方式として、近年、多段中継型(ピア・トゥ・ピア型)のストリーム配信が提案され、利用されるようになってきた(たとえば、特許文献1を参照。)。
前記多段中継型のストリーム配信方式では、前記ストリーム受信装置に、受信した前記ストリームデータを他のストリーム配信装置に転送(中継)する手段を設ける。そのため、前記ストリームデータのストリーム配信を望む各ストリーム受信装置は、前記ストリーム配信サーバに限らず、前記ストリーム配信サーバから配信されたストリームデータを受信した他のストリーム受信装置から前記ストリームデータを受信することもできる。つまり、多段中継型のストリーム配信方法では、前記ストリーム配信サーバあるいは前記ストリーム配信サーバから配信されたストリームデータを受信したストリーム受信装置から送信されたストリームデータを受信したストリーム受信装置が、前記ストリームデータの中継装置となり、他のストリーム受信装置に対して前記ストリームデータを送信する。その結果、前記ストリーム配信サーバは、同時に送出するストリームデータのストリーム数を低減でき、ストリーム配信サーバ等の装置コストや管理コスト、前記ストリーム配信サーバ群が接続するネットワークの回線コストを低減できるようになった。
しかしながら、前記多段中継型のストリーム配信では、他のストリーム受信装置への中継装置となっているストリーム受信装置が停止または配信経路から離脱すると、前記中継装置(ストリーム受信装置)から送信された前記ストリームデータを受信している他のストリーム受信装置は前記ストリームデータを受信できなくなるという問題がある。このとき、前記第2ストリーム受信装置から送信されたストリームデータを受信している他のストリーム受信装置およびその先のストリーム受信装置も前記ストリームデータを受信できなくなる。
そこで、従来の多段中継型のストリーム配信方式では、このような問題の発生を回避するべく、データ受信している経路を冗長化し、いずれかの受信経路のうち少なくとも1つが接続状態を維持できれば、以降のストリーム受信装置はデータを連続的に受信することができる手段を持ち合わせることが可能となる(たとえば、特許文献1を参照)。ここで、受信状態が1のみになった場合、さらなる切断により受信状態の接続が0になる事態を回避すべく、受信状態の冗長性を回復させる手段、即ち新たに他のメディア配信サーバあるいは中継装置(ストリーム受信装置)との接続を図る手段を持ち合わせることも考えられる。
特表2002−522956号公報
しかしながら、従来の多段中継型のストリーム配信方法では、各ストリーム受信装置でバッファに蓄積する各ストリームデータのパケット数が中継段数によらず一定である。そのため、たとえば、図23に示すように、2つの1段目の受信装置151,152からストリームデータを受信している2段目の受信装置153では、各受信装置151,152から受信したストリームデータ(バッファ)の冗長性を確保できる。しかしながら、たとえば、図23に示したように、1段目の受信装置152およびストリーム配信サーバ402からストリームデータを受信している2段目の受信装置154では、受信した各ストリームデータ(バッファ)の冗長性を確保することができないという問題があった。
また、従来の多段中継型のストリーム配信では、ストリーム受信装置のバッファから、再生処理を開始するために読み出したパケットを、他のストリーム受信装置に転送(送信)している。つまり、従来の多段中継型のストリーム配信では、たとえば、図23に示したように、1段目の受信装置151,152でシーケンス番号9番のパケットの再生および転送を開始するときに、前記1段目の受信装置151,152からストリームデータを受信している2段目の受信装置153では、シーケンス番号5番のパケットの再生および転送を開始している。そのため、各受信装置は、中継段数に応じて、同一時刻に再生されるパケットが異なるという問題があった。
また、従来の前記多段中継型のストリーム配信方法では、前記特許文献1に記載されたような方法で冗長化したとしても、前記中継装置となっている第1ストリーム受信装置が、受信状態の冗長性を回復させるために新たにストリームデータを受信するストリーム受信装置は、前記第1ストリーム受信装置より中継数、すなわち受信しているストリームデータが経由した中継装置(ストリーム受信装置)の数が少ないストリーム受信装置、あるいは前記ストリーム配信サーバに限られる。
前記ストリーム受信装置が冗長性を回復するために接続する他のストリーム受信装置が、中継数の少ない装置に限られる理由を例示により簡単に説明する。以下、すべてのストリーム受信装置は内部バッファにパケットを4個蓄積しているとする。また、前記ストリーム配信サーバに最初に接続するストリーム受信装置を1段目としたときに3段目に数えられるストリーム受信装置Pが、冗長性を失って1つのストリーム受信装置Xのみからストリームデータを受信している状態であるとする。また、前記ストリーム受信装置Pは、例えば、シーケンス番号19,20,21,22のパケットを保持していおり、次の動作として、再生用および次のストリーム受信装置への転送(中継)用に最先のシーケンス番号19のパケットをまもなく読み出すところであるとする。また、前記ストリーム装置Xからは次のシーケンス番号23のパケットをまもなく受信するところであるとする。
このとき、前記ストリーム受信装置Pが冗長性を回復させるために新たに接続し、ストリームデータを受信する他のストリーム受信装置としては、次の3種類が考えられる。1つめは中継段数が前記ストリーム受信装置Pよりも少ないストリーム受信装置Q、2つめは中継段数が前記ストリーム受信装置Pと同じストリーム受信装置R、そして3つめは中継段数が前記ストリーム受信装置Pより多いストリーム受信装置Sである。しかしながら、従来の方式では、実質的に前記ストリーム受信装置Pの冗長性が確保できるのは前記ストリーム受信装置Qのみである。以下、その理由を説明する。
前記ストリーム受信装置Pが冗長性を回復するための接続先として前記ストリーム受信装置Rを選択したとする。前記ストリーム受信装置Rは、前記ストリーム受信装置Pと中継段数が同じであるため、たとえば、前記ストリーム受信装置Pが前記シーケンス番号19のパケットを読み出すときに、前記ストリーム受信装置Rでもほぼ同じタイミングでシーケンス番号19のパケットを読み出している。このとき、もし、前記ストリーム受信装置Rで読み出されたシーケンス番号19のパケットが、前記ストリーム受信装置Pに到着した直後に前記ストリーム受信装置Pが前記シーケンス番号19のパケットを読み出すならば、前記ストリーム受信装置Xから受信したシーケンス番号19のパケットおよび前記ストリーム受信装置Rから受信したシーケンス番号19のパケットが前記ストリーム受信装置Pに存在するので冗長性があるといえる。
しかしながら、前記ストリーム受信装置Rの処理負荷や転送遅延等により、前記ストリーム受信装置Pにおいて前記ストリーム受信装置Rからのパケットの受信が遅れることもある。この場合、前記ストリーム受信装置Pでシーケンス番号19のパケットを読み出す瞬間に、前記ストリーム受信装置Rからのシーケンス番号19のパケットがないということが起こる可能性がある。そのため、確実に冗長性が確保できているとはいえない。
また、前記ストリーム受信装置Pが冗長性を回復するための接続先として前記ストリーム受信装置Sを選択したとする。このとき、前記ストリーム受信装置Sの中継段数が、前記ストリーム受信装置Pの中継段数よりも1段多いとすると、たとえば、前記ストリーム受信装置Pが前記シーケンス番号19のパケットを読み出すときに、前記ストリーム受信装置Sではほぼ4個前のシーケンス番号15のパケットを読み出している。つまり、前記接続先として前記ストリーム受信装置Sを選択すると、前記ストリーム受信装置Pは、前記ストリーム受信装置Sから古いシーケンス番号、言い換えるとすでに再生したシーケンス番号のパケットを受信することになる。したがって、前記ストリーム受信装置Sからストリームデータを受信した場合、実質的に冗長性が確保されていない状態が継続する。
また、前記ストリーム受信装置Pが冗長性を回復するための接続先として前記ストリーム受信装置Qを選択したとする。このとき、前記ストリーム受信装置Qの中継段数が、前記ストリーム受信装置Pの中継段数よりも1段少ないとすると、たとえば、前記ストリーム受信装置Pがシーケンス番号19のパケットを読み出すときに、前記ストリーム受信装置Qではシーケンス番号23のパケットを読み出している。このとき前記ストリーム受信装置Qと前記ストリーム受信装置Xが同じ段であれば、前記ストリーム受信装置Xでもシーケンス番号23のパケットを読み出している。また、前記ストリーム受信装置Qと前記ストリーム受信装置Xが異なる段であっても、前記ストリーム受信装置Pにおいてしばらく待ち合わせることで、前記ストリーム受信装置Qから受信したストリームデータと前記ストリーム受信装置Xから受信したストリームデータから、同じシーケンス番号を持つパケットを選択することができる。そのため、冗長性を確保することができる。
以上のように、中継段数が同じかあるいは多いストリーム受信装置からストリームデータを受信した場合、冗長性は確保できないので、冗長性を回復するために接続するストリーム受信装置は、前記ストリーム受信装置Qのように中継段数の少ない装置のみに限られる。そのため、たとえば、中継段数の少ない受信装置に、データ転送能力が低い受信装置が多い場合、冗長性を確保するために新たな接続先として選択できる受信装置がないという問題が生じる可能性があった。
本発明の目的は、多段中継型のストリーム配信において、あるストリーム受信装置が受信している各ストリームデータの中継段数が異なる場合でも、受信したストリームデータの冗長性を確保することが可能なストリーム受信転送方法およびストリーム受信装置を提供することにある。
本発明の他の目的は、多段中継型のストリーム配信において、中継段数によらず、すべてのストリーム受信装置で、同一のパケットをほぼ同時刻に再生することが可能なストリーム受信転送方法およびストリーム受信装置を提供することにある。
本発明の他の目的は、多段中継型のストリーム配信において、あるストリーム受信装置がストリームデータの冗長性を確保するために他のストリーム受信装置と接続するときに、中継段数が同じかまたは多いストリーム受信装置と接続しても、冗長性を確保することが可能なストリーム受信転送方法およびストリーム受信装置を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面によって明らかになるであろう。
本願において開示される発明の概略を説明すれば、以下の通りである。
(1) 複数台の上流装置からストリームデータを受信して再生するとともに、前記受信したストリームデータを下流装置に転送するストリーム受信装置のストリームデータ受信転送方法であって、前記ストリームデータの最大中継段数および蓄積係数を取得するステップ1と、前記各ストリームデータの中継段数を取得するステップ2と、前記最大中継段数および蓄積係数、ならびに前記各ストリームデータの中継段数に基づいて、前記各ストリームデータのバッファ長を前記ストリームデータ毎に算出するステップ3と、前記ステップ3で算出した前記各ストリームデータのバッファ長にしたがい、前記各ストリームデータをバッファに蓄積するステップ4と、前記バッファに蓄積したストリームデータを読み出して再生するステップ5と、前記下流装置が存在する場合に、前記バッファに蓄積したストリームデータを読み出して前記下流装置に転送するステップ6とを有するストリームデータ受信転送方法である。
(2) 複数台の上流装置からストリームデータを受信して再生するとともに、前記受信したストリームデータを下流装置に転送するストリームデータ受信装置であって、前記ストリームデータの最大中継段数および蓄積係数を取得して保持する最大中継段数・蓄積係数保持手段と、前記各ストリームデータの中継段数を取得して保持するバッファ別中継段数保持手段と、前記最大中継段数および蓄積係数、ならびに前記各ストリームデータの中継段数に基づいて、前記各ストリームデータのバッファ長を前記ストリームデータ毎に算出するバッファ長算出手段と、前記バッファ長算出手段で算出した前記各ストリームデータのバッファ長にしたがい、前記各ストリームデータを蓄積するバッファと、前記バッファに蓄積したストリームデータを読み出して再生するとともに、前記下流装置が存在する場合に、前記バッファに蓄積したストリームデータを読み出して前記下流装置に転送するバッファ読み出しとを備えるストリーム受信装置である。
本発明のストリームデータ受信転送方法は、前記(1)の手段のように、複数の上流装置から受信しているストリームデータをバッファに蓄積するときに、ストリームデータ毎にバッファ長を設定して蓄積する。そのため、受信している複数のストリームデータの受信段数が異なる場合、たとえば、中継段数が最も大きいストリームデータを基準とし、中継段数が小さいストリームデータのバッファ長を長く(大きく)することで、中継段数が異なるストリームデータ(バッファ)の冗長性を確保することができる。
また、前記(1)の手段の前記ステップ6において、前記最大中継段数および蓄積係数、ならびに前記各ストリームデータの中継段数のうち最大の中継段数に基づいて、転送用パケット読み出し点を算出し、前記バッファに蓄積されている前記算出した転送用パケット読み出し点のパケットを読み出して前記下流装置に転送するようにすれば、前記ストリーム受信装置で再生を開始するストリームデータのパケットと、前記下流装置で再生を開始するストリームデータのパケットを一致させることができる。そのため、中継段数によらず、すべてのストリーム受信装置で、前記ストリームデータの同一パケットをほぼ同時刻に再生することができる。
またこのとき、前記ステップ3は、前記ストリームデータを受信する上流装置が変更された場合、前記最大中継段数および前記蓄積係数、ならびに変更後のストリームデータの中継段数に基づいて新たなバッファ長を算出し、前記ステップ6は、前記ストリームデータを受信する上流装置が変更された場合、変更前からストリームデータを転送している下流装置に対しては、変更前に算出した転送用パケット読み出し点からパケットを読み出して転送し、前記上流装置が変更された後にストリームデータの転送を開始する下流装置に対しては、前記最大中継段数および蓄積係数、ならびに変更後の各ストリームデータの中継段数のうち最大の中継段数に基づいて、新たな転送用パケット読み出し点を算出して、前記バッファに蓄積されている前記算出した転送用パケット読み出し点のパケットを読み出して前記下流装置に転送するようにするのが好ましい。このようにすると、たとえば、ストリームデータを受信していた上流装置が停止あるいは配信経路から離脱し、ストリームデータを受信できなくなったときに、ストリームデータの冗長性を確保するための新たな上流装置として、前記ストリーム受信装置と中継段数が同じか、または大きい装置を選択しても、前記ストリームデータの冗長性を確保することができる。
またこのとき、前記ストリームデータを受信する上流装置の変更は、任意のタイミングで行うことが可能であることが好ましい。
また、前記ステップ1は、前記ストリームデータを受信する上流装置とは異なる、前記最大中継段数および蓄積係数を管理する管理装置から動的に取得してもよい。このようにすれば、前記バッファに蓄積する各ストリームデータのバッファ長や、前記転送パケット読み出し点を動的に変更することができる。そのため、たとえば、前記ストリームデータの配信中に最大中継段数を増やし、前記ストリームデータを受信することが可能なストリーム受信装置の数を増やすことができる。
また、前記(1)の手段のようなストリームデータ受信転送方法を実現するストリーム受信装置は、たとえば、前記(2)の手段のような構成にすればよい。
このとき、前記バッファ読み出し手段が、前記最大中継段数および蓄積係数、ならびに前記各ストリームデータの中継段数のうち最大の中継段数に基づいて、転送用パケット読み出し点を算出し、前記バッファに蓄積されている前記算出した転送用パケット読み出し点のパケットを読み出す転送パケット読出手段を備えていれば、中継段数によらず、すべてのストリーム受信装置で、前記ストリームデータの同一パケットをほぼ同時刻に再生することができる。
またこのとき、前記バッファ長算出手段は、前記ストリームデータを受信する上流装置が変更された場合、前記最大中継段数および前記蓄積係数、ならびに変更後のストリームデータの中継段数に基づいて新たなバッファ長を算出し、前記転送パケット読出手段は、前記ストリームデータを受信する上流装置が変更された場合、変更前からストリームデータを転送している下流装置に対しては、変更前に算出した転送用パケット読み出し点からパケットを読み出し、前記上流装置が変更された後にストリームデータの転送を開始する下流装置に対しては、前記最大中継段数および蓄積係数、ならびに変更後の各ストリームデータの中継段数のうち最大の中継段数に基づいて、新たな転送用パケット読み出し点を算出して、前記バッファに蓄積されている前記算出した転送用パケット読み出し点のパケットを読み出すようにすれば、たとえば、ストリームデータを受信していた上流装置が停止あるいは配信経路から離脱し、ストリームデータを受信できなくなったときに、ストリームデータの冗長性を確保するための新たな上流装置として、前記ストリーム受信装置と中継段数が同じか、または大きい装置を選択しても、前記ストリームデータの冗長性を確保することができる。
また、前記最大中継段数・蓄積係数保持手段が、前記ストリームデータを受信する上流装置とは異なる、前記最大中継段数および蓄積係数を管理する管理装置から動的に取得する手段を備えていれば、たとえば、前記ストリームデータの配信中に最大中継段数を増やし、前記ストリームデータを受信することが可能なストリーム受信装置の数を増やすことができる。
また、前記(1)の手段のようなストリームデータ受信転送方法は、たとえば、前記(2)の手段のようなストリーム受信装置に限らず、たとえば、コンピュータと、前記各ステップの処理をコンピュータに実行させるストリームデータ受信転送プログラムによっても実現することができる。
以下、本発明について、図面を参照して実施の形態(実施例)とともに詳細に説明する。
なお、実施例を説明するための全図において、同一機能を有するものは、同一符号を付け、その繰り返しの説明は省略する。
なお、実施例を説明するための全図において、同一機能を有するものは、同一符号を付け、その繰り返しの説明は省略する。
本発明のストリーム受信転送方法では、複数の上流装置からストリームデータを受信するときに、各ストリームデータのバッファ長を各上流装置の中継段数に応じて設定することで、中継段数が異なる上流装置から受信したストリームデータのバッファ間の冗長性を確保する。また、前記上流装置から受信したストリームデータを他のストリーム受信装置(下流装置)に転送するときに、前記ストリームデータの最大中継段数、および受信した各ストリームデータの中継段数、ならびにバッファ(パケット)の蓄積係数(最低バッファ長)から、前記下流装置に転送するパケットの読み出し点を設定することで、前記ストリームデータを受信しているすべての装置で、前記ストリームデータの同一シーケンス(パケット)を同時刻に再生することを可能にする。またこのとき、前記各上流装置の中継段数のうち、もっとも中継段数が大きい上流装置から受信しているストリームデータのバッファに対して前記下流装置に転送するパケットの読み出し点を設定することで、バッファの冗長性を確保するための新たな上流装置として、中継段数が同じまたは大きい受信装置を選択することを可能にする。
図1は、本発明による実施例1のストリーム受信装置の概略構成を示す模式図である。
図1において、1はストリーム受信装置、2は上流装置、3は下流装置である。
図1において、1はストリーム受信装置、2は上流装置、3は下流装置である。
本実施例1のストリーム受信装置1は、たとえば、図1に示すように、M台(Mは2以上の整数)の上流装置2からストリームデータを受信して再生するとともに、受信したストリームデータを他のストリーム受信装置(下流装置)3に転送することが可能な受信装置である。このとき、前記上流装置2は、前記ストリームデータを配信しているストリーム配信サーバであってもよいし、前記ストリーム配信サーバから配信されたストリームデータを受信している他のストリーム受信装置であってもよい。また、図1では前記下流装置3を1台しか示していないが、2台以上であってもよい。
このとき、前記ストリーム受信装置1は、図1に示すように、受信した各ストリームデータを上流装置2毎にわけて蓄積するFIFO(First-In First-Out)バッファ1A(以下、単にバッファという)と、前記バッファ1Aに蓄積しているストリームデータの中から再生あるいは前記下流装置3に転送するストリームデータを選択して読み出すバッファ読み出し手段と、前記ストリームデータの最大中継段数および前記バッファ1Aで蓄積する各ストリームデータの最小バッファ長(蓄積係数)を保持する最大中継段数・蓄積係数保持手段1Cと、前記各上流装置2から受信しているストリームデータの中継段数を保持するバッファ別中継段数保持手段1Dと、前記最大中継段数、および前記蓄積係数、ならびに前記バッファ別の中継段数に基づいて、前記バッファ1Aに蓄積する前記各ストリームデータのバッファ長を個別に算出するバッファ長算出手段1Eとを備える。また、前記ストリーム受信装置1は、前記各手段に加え、図1に示したように、前記上流装置2から転送(送信)されたストリームデータの受信、および前記下流装置3へのストリームデータの送信等を行うパケット送受信手段1Fと、前記バッファ読み出し手段1Bで読み出したストリームデータの再生処理を行う再生処理手段1Gとを備える。また、図示は省略するが、前記各手段の動作やデータの受け渡しは、処理制御手段により制御されているとする。
また、前記各ストリームデータの中継段数は、前記各ストリームデータが前記ストリーム配信サーバから配信された後、前記ストリーム受信装置1に到達するまでに経由した他のストリーム受信装置の数とする。そして、前記ストリーム受信装置1は、前記下流装置3からストリームデータの転送(中継)を要求されると、前記バッファ別中継段数保持手段1Dに保持されている各ストリームデータの中継段数に基づいて、前記下流装置3に転送(送信)するストリームデータの中継段数を通知する。このとき、前記ストリーム受信装置1では、複数の上流装置2からストリームデータを受信しているので、各ストリームデータの中継段数が異なる場合がある。そこで、前記ストリーム受信装置1は、受信しているストリームデータの中継段数がすべて同じである場合、その中継段数に1を足した段数を、前記ストリーム受信装置1から転送(送信)するストリームデータの中継段数とする。一方、受信しているストリームデータの中継段数が異なる場合は、最も大きい中継段数に1を足した段数を前記ストリーム受信装置1から転送(送信)するストリームデータの中継段数とする。以下、前記ストリームデータの中継段数に1を足した段数を、受信装置の中継段数という。
また、前記最大中継段数は、前記受信装置の中継段数の上限であり、前記受信装置の中継段数が前記最大中継段数と一致するストリーム受信装置は、他のストリーム受信装置にストリームデータを転送(送信)することができない。
また、前記蓄積係数は、前記ストリーム受信装置1で各上流装置2からストリームデータのパケットを受信し、バッファ1Aに蓄積するときに、前記バッファ1Aに蓄積しておくべきパケットの数の下限である。このとき、前記蓄積係数を1として前記バッファ1Aに1個のパケットのみを蓄積していても構わないが、その場合、たとえば、前記上流装置2の負荷の増大による次のパケットの送信の遅れや、ネットワークの輻較による到着遅延が発生すると、前記バッファ読み出し手段1Bがバッファ1Aからパケットを読み出すタイミングにパケットがない状態となる。そのため、前記再生処理手段1Gにストリームデータのパケットを送信できなくなり、映像音声のシーン飛びや乱れが生ずる。そのため、前記ストリームデータ受信装置1では、前記蓄積係数を2以上として前記バッファ1Aに2個以上のパケットを蓄積しておくことが好ましい。
図2乃至図5は、本実施例1のストリーム受信装置の動作を説明するための模式図であり、図2は各上流装置とのデータの受け渡しの概要を説明する図、図3は本実施例1のストリーム受信装置の接続例を示す図、図4は図3の1段目および2段目の受信装置のバッファの状態の一例を示す図、図5は図3の3段目の受信装置のバッファの状態の一例を示す図である。
以下、図1に示したようなストリーム受信装置1の動作、言い換えるとストリームデータの受信転送方法について、2台の上流装置2からストリームデータを受信する場合を例に挙げて説明する。
本実施例1のストリーム受信装置1は、たとえば、図2に示すように、第1上流装置(#1)201および第2上流装置(#2)202からストリームデータを受信する場合、まず、前記第1上流装置201および第2上流装置202に対してストリームデータの転送(中継)を要求する。このとき、前記第1上流装置201からは、たとえば、前記ストリームデータの最大中継段数、および蓄積係数、ならびに前記第1上流装置201から転送(送信)されるストリームデータの中継段数が送信される。そして、前記ストリーム受信装置1は、前記最大中継段数、および蓄積係数、ならびに前記ストリームデータの中継段数を受信すると、前記最大中継段数および蓄積係数を前記最大中継段数・蓄積係数保持手段1Cに保持し、前記第1上流装置201の中継段数をバッファ別中継段数保持手段1Dに保持する。同様に、前記第2上流装置202からは、たとえば、前記第2上流装置202から転送(送信)されるストリームデータの中継段数が送信される。そして、前記ストリーム受信装置1は、前記ストリームデータの中継段数を受信すると、バッファ別中継段数保持手段1Dに保持する。
前記ストリーム受信装置1は、前記最大中継段数、および蓄積係数、ならびに各ストリームデータの中継段数を保持したら、次に、前記バッファ長算出手段1Eにおいて、前記第1上流装置201から受信するストリームデータのバッファ長と、前記第2上流装置202から受信するストリームデータのバッファ長を個別に算出する。前記算出した各ストリームデータのバッファ長は、前記バッファ1Aに渡される。そして、前記第1上流装置201から受信したストリームデータおよび前記第2上流装置202から受信したストリームデータは、前記バッファ長算出手段1Eで個別に算出したバッファ長に相当する数だけのパケットを蓄積しながら、前記ストリームデータの再生や前記下流装置への転送を行う。
前記バッファ長算出手段1Eにおいて、前記各ストリームデータのバッファ長を算出するときには、前記各ストリームデータの中継段数、および前記最大中継段数、ならびに前記蓄積係数を参照する。以下、前記各ストリームデータのバッファ長の算出方法の一例を説明する。
すべてのストリームデータの中継段数が同じ場合、各ストリームデータのバッファ長は、たとえば、下記数式1から算出する。
〔数1〕
(最大中継段数−バッファ別中継段数)×バッファ蓄積係数
〔数1〕
(最大中継段数−バッファ別中継段数)×バッファ蓄積係数
また、ストリームデータの中継段数が異なる場合、中継段数が最も大きいストリームデータのバッファ長は、前記数式1から算出する。
また、ストリームデータの中継段数が異なる場合、中継段数が最も大きいストリームデータ以外の残りのストリームデータのバッファ長は、たとえば、以下のような要領でバッファ長を設定する。
まず、バッファ長を求めるストリームデータの中継段数と、前記最も大きい中継段数の間の中継段数を求める。そして、求めた中継段数を用いて前記数式1から算出したバッファ長を、前記中継段数が最も大きいストリームデータのバッファ長に加える。つまり、前記バッファ長を求めるストリームデータの中継段数が1で、前記最も大きい中継段数が3だとすると、バッファ別中継段数を2として前記数式1から算出したバッファ長を、バッファ別中継段数を3として算出したバッファ長に加えればよい。また、前記バッファ長を求めるストリームデータの中継段数が1で、前記最も大きい中継段数が4だとすると、バッファ別中継段数を2として前記数式1から算出したバッファ長、およびバッファ別中継段数を3として算出したバッファ長を、バッファ別中継段数を4として算出したバッファ長に加えればよい。
次に、複数台のストリーム受信装置1が、図3に示すように接続され、ストリームデータを受信している場合を例に挙げ、前記各ストリームデータのバッファ長を個別に設定することの効果を説明する。このとき、前記最大中継段数は3、前記蓄積係数は2に設定されているとする。またこのとき、前記各ストリーム受信装置1は、受信したストリームデータ(バッファ)の冗長性を確保するために、2つの上流装置からストリームデータを受信しているとする。また、以下の説明では、図3に示したように、2つの上流装置がストリーム配信サーバ401,402であるストリーム受信装置101,102を1段目の受信装置という。また、2つの上流装置の一方あるいは両方が前記1段目の受信装置101,102であるストリーム受信装置103,104は2段目の受信装置という。また、2つの上流装置の一方あるいは両方が前記2段目の受信装置103,104であるストリーム受信装置105,106,107は3段目の受信装置という。
前記1段目の受信装置101,102はそれぞれ、2つのストリーム配信サーバ401,402からストリームデータを直接受信している。そのため、前記各ストリームデータのバッファ長は前記数式1から6となる。その結果、前記1段目の受信装置101,102は、図4に示すように各ストリームデータの6個のパケットをバッファに蓄積する。またこのとき、図4に示すように、前記各ストリーム配信サーバ401,402がシーケンス番号13番のパケットを送信する時点で、前記各1段目の受信装置101,102は、シーケンス番号7番から12番までのパケットをバッファに蓄積している。そしてこのとき、前記各1段目の受信装置101,102では、先頭のパケット、すなわちシーケンス番号7番のパケットを読み出して再生するとともに、2段目以降の受信装置に転送(送信)する。
また、前記2段目の受信装置103,104のうち、前記2つの上流装置がともに前記1段目の受信装置である受信装置103は、各ストリームデータのバッファ長が前記数式1から4となる。その結果、前記受信装置103は、図4に示すように各ストリームデータの4個のパケットをバッファに蓄積する。またこのとき、図4に示すように、前記各1段目の受信装置101,102がシーケンス番号7番のパケットを送信する時点で、前記2段目の受信装置103は、シーケンス番号3番から6番までのパケットをバッファに蓄積している。そしてこのとき、前記2段目の受信装置103では、先頭のパケット、すなわちシーケンス番号3番のパケットを読み出して再生するとともに、3段目の受信装置に転送(送信)する。
一方、前記2段目の受信装置103,104のうち、一方の上流装置のみが前記1段目の受信装置102である受信装置104では、中継段数が最も大きい前記1段目の受信装置102から受信するストリームデータのバッファ長については前記数式1から4となる。その結果、前記1段目の受信装置102から受信したストリームデータについては、図4に示すように、4個のパケットをバッファに蓄積する。また、前記ストリーム配信サーバ402から直接受信するストリームデータのバッファ長については、前述のように、前記1段目の受信装置102から受信するストリームデータのバッファ長(4)に、前記数式1を用いて算出した1段目の受信装置102のバッファ長を(6)を加えた10とする。その結果、前記ストリーム配信サーバ402から直接するストリームデータについては、図4に示すように、10個のパケットをバッファに蓄積する。またこのとき、図4に示すように、前記1段目の受信装置102がシーケンス番号7番のパケットを送信する時点で、前記1段目の受信装置102から受信したストリームデータのバッファには、シーケンス番号3番から6番までの4個のパケットが蓄積されている。一方、前記1段目の受信装置102がシーケンス番号7番のパケットを送信する時点では、前記ストリーム配信サーバ402はシーケンス番号13番のパケットを送信するところである。そのため、前記2段目の受信装置104における、前記ストリーム配信サーバ402から受信したストリームデータのバッファには、シーケンス番号3番から12番までの10個のパケットが蓄積されている。つまり、本実施例1のストリーム受信装置では、ストリームデータを受信する複数の上流装置の中継段数が異なる場合でも、前記各ストリームデータのバッファの先頭(読み出し点)のパケットのシーケンス番号が一致する。そのため、前記複数の上流装置として中継段数が同じ装置を選択できない場合でも、前記ストリームデータ(バッファ)の冗長性を確保することができる。
また、詳細な説明は省略するが、前記3段目の受信装置105,106,107のうち、前記2つの上流装置が前記2段目の受信装置103,104である受信装置105は、受信する各ストリームデータのバッファ長が前記数式1から2となる。そのため、図5に示すように、各ストリームデータとも、2個のパケットをバッファに蓄積する。
また、前記3段目の受信装置105,106,107のうち、一方の上流装置が2段目の受信装置103で他方の上流装置が1段目の受信装置101である受信装置106では、前記2段目の受信装置103から受信するストリームデータのバッファ長は前記数式1から2となる。一方、前記1段目の受信装置101から受信するストリームデータのバッファ長は、前述のように、前記2段目の受信装置103から受信する場合のバッファ長(2)に、前記2段目の受信装置103でのバッファ長(4)を足した6となる。その結果、前記3段目の受信装置106では、図5に示すように、前記2段目の受信装置103から受信したストリームデータは2個のパケットをバッファに蓄積し、前記1段目の受信装置101から受信したストリームデータは6個のパケットをバッファに蓄積する。また、図5に示すように、前記2段目の受信装置103が先頭のパケット、すなわちシーケンス番号3番のパケットを読み出して送信しようとしている時点で、前記3段目の受信装置106の前記2段目の受信装置103から受信したストリームデータのバッファには、シーケンス番号1番と2番のパケットが蓄積されている。また、前記2段目の受信装置103が先頭のパケット、すなわちシーケンス番号3番のパケットを読み出して送信しようとしている時点では、前記1段目の受信装置101は、シーケンス番号7番のパケットを読み出して送信しようとしているところなので、前記3段目の受信装置106の前記1段目の受信装置101から受信したストリームデータのバッファには、図5に示すように、シーケンス番号1番から6番までのパケットが蓄積されている。そのため、前記3段目の受信装置106における各ストリームデータのバッファの先頭のパケット、すなわち前記3段目の受信装置106で読み出すパケットのシーケンス番号が一致し、ストリームデータ(バッファ)の冗長性を確保することができる。
また、前記3段目の受信装置105,106,107のうち、一方の上流装置が2段目の受信装置104で他方の上流装置がストリーム配信サーバ402である受信装置107では、前記2段目の受信装置104から受信するストリームデータのバッファ長は前記数式1から2となる。一方、前記ストリーム配信サーバ402から受信するストリームデータのバッファ長は、前述のように、前記2段目の受信装置104から受信する場合のバッファ長(2)に、前記2段目の受信装置104でのバッファ長(4)と前記1段目の受信装置102でのバッファ長(6)を足した12となる。その結果、前記3段目の受信装置107では、図5に示すように、前記2段目の受信装置104から受信したストリームデータは2個のパケットをバッファに蓄積し、前記ストリーム配信サーバ402から受信したストリームデータは12個のパケットをバッファに蓄積する。また、図5に示すように、前記2段目の受信装置104が先頭のパケット、すなわちシーケンス番号3番のパケットを読み出して送信しようとしている時点で、前記3段目の受信装置107の前記2段目の受信装置104から受信したストリームデータのバッファには、シーケンス番号1番と2番のパケットが蓄積されている。また、前記2段目の受信装置104が先頭のパケット、すなわちシーケンス番号3番のパケットを読み出して送信しようとしている時点では、前記ストリーム配信サーバ402は、シーケンス番号13番のパケットを読み出して送信しようとしているところなので、前記3段目の受信装置107の前記ストリーム配信サーバ402から受信したストリームデータのバッファには、図5に示すように、シーケンス番号1番から12番までのパケットが蓄積されている。そのため、前記3段目の受信装置107における各ストリームデータのバッファの先頭のパケット、すなわち前記3段目の受信装置107で読み出すパケットのシーケンス番号が一致し、ストリームデータ(バッファ)の冗長性を確保することができる。
以上説明したように、本実施例1のストリーム受信装置を用いたストリームデータの受信転送方法によれば、複数の上流装置からストリームデータを受信するときに、上流装置毎に受信したストリームデータのバッファ長を設定するので、複数の上流装置の中継段数が異なる場合でも、受信したストリームデータ(バッファ)の冗長性を確保することができる。
図6は、本発明による実施例2のストリーム受信装置の概略構成を示す模式図である。
本実施例2のストリーム受信装置1の基本的な構成は、前記実施例1で説明したストリーム受信装置1と同様の構成であり、図6に示すように、受信した各ストリームデータを上流装置2毎にわけて蓄積するFIFO(First-In First-Out)バッファ1A(以下、単にバッファという)と、前記バッファ1Aに蓄積しているストリームデータの中から再生あるいは前記下流装置に転送するストリームデータを選択して読み出すバッファ読み出し手段1Bと、前記ストリームデータの最大中継段数および前記バッファ1Aで蓄積するストリームデータの最小バッファ長(蓄積係数)を保持する最大中継段数・蓄積係数保持手段1Cと、前記各上流装置2から受信しているストリームデータの中継段数を保持するバッファ別中継段数保持手段1Dと、前記最大中継段数、および前記蓄積係数、ならびに前記バッファ別の中継段数に基づいて、前記バッファ1Aに蓄積する前記各ストリームデータのバッファ長を個別に算出するバッファ長算出手段1Eとを備える。また、前記ストリーム受信装置1は、前記各手段に加え、図1に示したように、前記上流装置2から転送(送信)されたストリームデータの受信、および前記下流装置3へのストリームデータの送信等を行うパケット送受信手段1Fと、前記バッファ読み出し手段1Bで読み出したストリームデータの再生処理を行う再生処理手段1Gとを備える。また、図示は省略するが、前記各手段の動作やデータの受け渡しは、処理制御手段により制御されているとする。
ただし、本実施例2のストリーム受信装置1では、図6に示すように、前記バッファ読み出し手段1Bに、前記ストリーム受信装置で再生するパケットを選択して読み出す再生パケット読出手段1Hと、前記下流装置3に転送(送信)するパケットを選択して読み出す転送パケット読出手段1Jが設けられている。このとき、前記転送パケット読出手段1Jは、前記バッファ別中継段数保持手段1Dで保持する各ストリームデータの中継段数と、前記最大中継段数・蓄積係数保持手段1Cで保持する最大中継段数および蓄積係数とを用い、前記再生パケット読出手段1Hが選択して読み出す点とは別の読み出し点を設定して読み出す。
また、前記ストリームデータの中継段数、および前記最大中継段数、ならびに前記蓄積係数については、前記実施例1で説明したとおりなので、詳細な説明は省略する。
図7乃至図12は、本実施例2のストリーム受信装置の動作を説明するための模式図であり、図7はストリームデータの転送原理を説明する図、図8は本実施例2のストリーム受信装置の接続例を示す図、図9は1段目の受信装置のストリームデータの転送手順を説明する図、図10は2段目の受信装置のストリームデータの転送手順を説明する図、図11は3段目の受信装置へのストリームデータの転送手順を説明する図、図12は4段目の受信装置へのストリームデータの転送手順を説明する図である。
本実施例2のストリーム受信装置は、たとえば、図7に示すように、M個(Mは2以上の整数)の上流装置2からストリームデータを受信している。このとき、m番目(m=1,2,…,M)の上流装置2から受信したストリームデータ用に用意するバッファのバッファ長をjmとすると、図7に示したように、たとえば、シーケンス番号1番からjm番までのパケットを蓄積するバッファが用意される。このとき、前記各ストリームデータのバッファ長jmは、たとえば、前記数式1から算出する。なお、前記実施例1では、中継段数が異なるストリームデータを受信している場合、中継段数が最も大きいストリームデータのバッファ長に関しては数式1で算出し、残りのストリームデータのバッファ長は前記数式1から算出したバッファ長にいくつかのバッファ長を加えたが、本実施例2では、中継段数に関係なく、すべてのストリームデータのバッファ長を、前記数式1から算出する。
このとき、前記再生用の読み出し点は、従来のようにバッファの先頭のパケットとする。
一方、前記転送用の読み出し点は、たとえば、図7に示したように、前記バッファの先頭ではなく、数パケット分先のパケットとする。このとき、前記転送用の読み出し点は、たとえば、下記数式2から算出する。
〔数2〕
(最大中継段数−max{各バッファの中継段数}−1)×バッファ蓄積係数
ここで、前記max{各バッファの中継段数}は、前記受信している各ストリームデータの中継段数の最大値をとることを意味する。
〔数2〕
(最大中継段数−max{各バッファの中継段数}−1)×バッファ蓄積係数
ここで、前記max{各バッファの中継段数}は、前記受信している各ストリームデータの中継段数の最大値をとることを意味する。
以下、ストリーム受信装置1の具体的な接続例を挙げ、各ストリーム受信装置のバッファの状態および転送用読み出し点の設定方法について説明する。なお、本実施例2では、最大中継段数を5、蓄積係数を2とし、複数のストリーム受信装置1が、図8に示したように接続され、ストリームデータの受信、中継を行っているとする。
このとき、前記ストリーム配信サーバ401,402から直接ストリームデータを受信している1段目の受信装置111,112,113は、各ストリームデータの中継段数が0段である。そのため、前記各ストリームデータのバッファ長は前記数式1から10となり、10個のパケットをバッファ1Aに蓄積する。
またこのとき、前記1段目の受信装置111のバッファ1Aで、たとえば、図9に示すように、シーケンス番号10番から19番までのパケットを蓄積しているとすれば、前記再生パケット読出手段1Hは先頭のパケット、すなわちシーケンス番号10番のパケットを選択して読み出す。またこのとき、図示は省略するが他の1段目の受信装置112,113のバッファ1Aもシーケンス番号10番から19番までのパケットを蓄積しており、前記再生パケット読出手段1Hはシーケンス番号10番のパケットを読み出している。
また、前記1段目の受信装置111の、2段目の受信装置へ転送(送信)するパケットを読み出す転送パケット読出手段1Jは、前記数式2を用いて転送用パケット読み出し点を設定する。このとき、前記各ストリームデータの中継段数は0段なので、前記数式2の計算結果は8となる。そのため、前記転送パケット読出手段1Jは、前記再生パケット読出手段1Hの再生用パケット読み出し点よりも8パケット分先を、転送用パケット読み出し点に設定する。そして、前記転送用パケット読み出し点に読み出すべきシーケンス番号を持つパケットが存在すれば、それを読み出し、2段目の受信装置に転送(送信)する。このとき、前記1段目の受信装置111のバッファ1Aで、たとえば、図9に示したように、シーケンス番号10番から19番までのパケットを蓄積しているとすれば、前記再生パケット読出手段1Hがシーケンス番号10番のパケットを読み出すときに、前記転送パケット読出手段1Jは、8パケット分先のシーケンス番号18番のパケットを読み出し、前記2段目の受信装置114,115へ送信する。またこのとき、図示は省略するが他の1段目の受信装置112,113のバッファ1Aもシーケンス番号10番から19番までのパケットを蓄積しており、前記転送パケット読出手段1Jはシーケンス番号18番のパケットを読み出し、下流装置に転送している。
また、図8に示した接続例では、前記2段目の受信装置114,115は、2つの上流装置が1段目の受信装置111,112である。そのため、受信している各ストリームデータの中継段数はともに1であり、前記数式1からバッファ長は8となる。またこのとき、図9に示すように、前記1段目の受信装置111,112において、シーケンス番号10番のパケットの再生を開始し、シーケンス番号18番のパケットを転送(送信)するところであれば、前記2段目の受信装置114,115の各バッファ1Aには、シーケンス番号10番から17番までのパケットが蓄積されている。そのため、前記2段目の受信装置114,115は、前記1段目の受信装置と同じタイミングでシーケンス番号10番のパケットの再生を開始することができる。
また、前記2段目の受信装置114,115は、受信している各ストリームデータの中継段数がともに1であるため、前記数式2の計算結果は6となる。そのため、前記転送パケット読出手段1Jは、前記再生パケット読出手段1Hの再生用パケット読み出し点よりも6パケット分先を、転送用パケット読出点に設定する。そして、前記転送用パケット読み出し点に取り出すべきシーケンス番号を持つパケットが存在すれば、それを読み出し、下流装置に転送(送信)する。このとき、前記2段目の受信装置114で、たとえば、図9に示したように、シーケンス番号10番から17番までのパケットを蓄積しているとすれば、前記再生パケット読出手段1Hがシーケンス番号10番のパケットを選択して読み出すときに、前記転送パケット読出手段1Jは、6パケット分先のシーケンス番号16番のパケットを読み出し、下流装置へ送信する。またこのとき、図示は省略するが他の2段目の受信装置115のバッファ1Aもシーケンス番号10番から17番までのパケットを蓄積しており、前記転送パケット読出手段1Jはシーケンス番号16番のパケットを読み出し、下流装置に転送している。
前記3段目の受信装置116,117,118のうち、2つの上流装置が2段目の受信装置114,115である受信装置116,117ついては、受信しているストリームデータの中継段数がともに2であり、前記数式1からバッファ長は6となる。そのため、前記2段目の受信装置114,115が、図10に示すように、シーケンス番号10番から17番までのパケットをバッファに蓄積しており、前述のようにシーケンス番号16番のパケットを転送するところであれば、前記3段目の受信装置116のバッファ1Aには、シーケンス番号10番から15番までのパケットが蓄積されている。そのため、前記3段目の受信装置116は、前記2段目の受信装置114,115と同じタイミングでシーケンス番号10番のパケットの再生を開始することができる。またこのとき、図示は省略するが他の3段目の受信装置117のバッファ1Aもシーケンス番号10番から15番までのパケットを蓄積しており、前記再生パケット読出手段1Hはシーケンス番号10番のパケットを読み出し、再生を開始している。
また、前記3段目の受信装置116,117は、受信している各ストリームデータの中継段数がともに2であるため、前記数式2の計算結果は4となる。そのため、前記転送パケット読出手段1Jは、前記再生パケット読出手段1Hの再生用パケット読み出し点よりも4パケット分先を、転送用パケット読み出し点に設定する。そして、前記転送用パケット読み出し点に取り出すべきシーケンス番号を持つパケットが存在すれば、それを読み出し、下流装置に転送(送信)する。このとき、前記3段目の受信装置116で、たとえば、図10に示したように、シーケンス番号が10番から15番までのパケットを蓄積しているとすれば、前記再生パケット読出手段1Hがシーケンス番号10番のパケットを選択して読み出すときに、前記転送パケット読出手段1Jは、4パケット分先のシーケンス番号14番のパケットを読み出し、下流装置へ送信する。またこのとき、図示は省略するが他の3段目の受信装置117のバッファ1Aもシーケンス番号10番から15番までのパケットを蓄積しており、前記転送パケット読出手段1Jはシーケンス番号14番のパケットを読み出し、下流装置に転送している。
一方、前記3段目の受信装置116,117,118のうち、一方の上流装置が2段目の受信装置115であり、他方の上流装置が1段目の受信装置113である受信装置118については、受信しているストリームデータの中継段数が2および1である。そのため、前記2段目の受信装置115から受信しているストリームデータのバッファ長は前記数式1から6となり、前記1段目の受信装置113から受信しているストリームデータのバッファ長は前記数式1から8となる。そのため、前記2段目の受信装置115が、図11に示すように、シーケンス番号10番から17番までのパケットをバッファ1Aに蓄積しており、前述のようにシーケンス番号16番のパケットを転送するところであれば、前記3段目の受信装置117のバッファ1Aには、シーケンス番号10番から15番までのパケットが蓄積されている。また、前記2段目の受信装置115が、シーケンス番号10番から17番までのパケットをバッファ1Aに蓄積しており、前述のようにシーケンス番号16番のパケットを転送するところであれば、前記1段目の受信装置113は、図9に示した1段目の受信装置111と同様に、シーケンス番号10番から19番までのパケットをバッファ1Aに蓄積しており、シーケンス番号18番のパケットを転送(送信)するところである。そのため、前記3段目の受信装置117の、前記1段目の受信装置113から受信するストリームデータのバッファには、図11に示したように、シーケンス番号10番から17番までのパケットが蓄積されている。そのため、前記3段目の受信装置117は、中継段数が異なる2つのストリームデータを受信していながら、ストリームデータ(バッファ)の冗長性を確保することができる。またこのとき、前記3段目の受信装置117は、前記2段目の受信装置115や1段目の上流装置113と同じタイミングでシーケンス番号10番のパケットの再生を開始することができる。
また、前記3段目の受信装置117は、受信している各ストリームデータの中継段数が2および1であるため、前記数式2の計算結果は4となる。そのため、前記転送パケット読出手段1Jは、前記再生パケット読出手段1Hの再生用パケット読み出し点よりも4パケット分先を、転送用パケット読み出し点に設定する。そして、前記転送用パケット読み出し点に取り出すべきシーケンス番号を持つパケットが存在すれば、それを読み出し、下流装置に転送(送信)する。図11に示した例では、前記3段目の受信装置117において、前記2段目の受信装置115から受信しているストリームデータのバッファはシーケンス番号10番から15番までのパケットが蓄積されており、前記1段目の受信装置113から受信しているストリームデータのバッファはシーケンス番号10番から17番までのパケットが蓄積されている。そのため、前記3段目の受信装置117において前記再生パケット読出手段1Hがシーケンス番号10番のパケットを選択して読み出すときに、前記転送パケット読出手段1Jは、4パケット分先のシーケンス番号14番のパケットを読み出し、下流装置へ送信する。
また、前記4段目の受信装置119,120は、2つの上流装置が3段目の受信装置116,117である。そのため、受信している各ストリームデータの中継段数はともに3であり、前記数式1からバッファ長は4となる。またこのとき、図10に示したように、前記3段目の受信装置116,117において、シーケンス番号10番のパケットの再生を開始し、シーケンス番号14番のパケットを転送(送信)するところであれば、前記4段目の受信装置119,120の各バッファ1Aには、図12に示すように、シーケンス番号10番から13番までのパケットが蓄積されている。そのため、前記4段目の受信装置119,120は、前記3段目の受信装置116,117と同じタイミングでシーケンス番号10番のパケットの再生を開始することができる。
また、前記4段目の受信装置119,120は、受信している各ストリームデータの中継段数がともに3であるため、前記数式2の計算結果は2となる。そのため、前記転送パケット読出手段1Jは、前記再生パケット読出手段1Hの再生用パケット読み出し点よりも2パケット分先を、転送用パケット読み出し点に設定する。そして、前記転送用パケット読み出し点に取り出すべきシーケンス番号を持つパケットが存在すれば、それを読み出し、下流装置に転送(送信)する。このとき、前記4段目の受信装置119で、たとえば、図12に示したように、シーケンス番号が10番から13番までのパケットを蓄積しているとすれば、前記再生パケット読出手段1Hがシーケンス番号10番のパケットを選択して読み出すときに、前記転送パケット読出手段1Jは、2パケット分先のシーケンス番号12番のパケットを読み出し、下流装置へ送信する。またこのとき、図示は省略するが他の4段目の受信装置120のバッファ1Aもシーケンス番号10番から13番までのパケットを蓄積しており、前記転送パケット読出手段1Jはシーケンス番号12番のパケットを読み出し、下流装置に転送している。
前記5段目の受信装置121は、2つの上流装置が4段目の受信装置119,120である。そのため、受信している各ストリームデータの中継段数はともに4であり、前記数式1からバッファ長は2となる。またこのとき、図12に示したように、前記4段目の受信装置119,120において、シーケンス番号10番のパケットの再生を開始し、シーケンス番号12番のパケットを転送(送信)するところであれば、前記5段目の受信装置121のバッファ1Aには、図12に示すように、シーケンス番号10番と11番のパケットが蓄積されている。そのため、前記5段目の受信装置121は、前記4段目の受信装置119,120と同じタイミングでシーケンス番号10番のパケットの再生を開始することができる。
また、ここまでの説明は、前記最大中継段数を5とした場合を例に挙げて説明しているので、前記5段目の受信装置121は、受信したストリームデータを再生するだけで、他のストリーム受信装置に転送(送信)することはできない。
従来のストリーム受信装置において、前記下流装置に転送するためのパケットの読み出し点は、一般に、再生用のパケットの読み出し点と同じで、バッファの先頭のパケットに設定されている。そのため、前記実施例1のような受信転送方法では、ある同じ時刻に再生用のパケットを読み出すときに、図5および図6に示したように、各中継段数の受信装置で、読み出すパケットのシーケンス番号が異なっていた。図5および図6に示した例では、前記3段目の受信装置がシーケンス番号1番のパケットの再生を開始する時刻に、前記2段目の受信装置ではシーケンス番号が3番のパケットの再生を開始し、前記1段目の受信装置ではシーケンス番号が7番のパケットの再生を開始している。そのため、中継段数が異なる受信装置間で、前記ストリームデータの同一シーンを同時刻に再生することができなかった。
一方、本実施例2のストリーム受信装置では、前述のように、再生用のパケットを読み出すときに、前記再生用のパケットよりも数パケット先のパケットを読み出して他のストリーム受信装置(下流装置)に転送することで、前記実施例1と同様に、中継段数が異なる複数のストリームデータを受信するときにもストリームデータ(バッファ)の冗長性を確保することができるとともに、中継段数に関係なく、すべてのストリーム受信装置で前記ストリームデータの同一シーケンス番号のパケットをほぼ同じタイミングで再生することができる。
以上説明したように、本実施例2のストリーム受信装置を用いたストリームデータの受信転送方法によれば、複数の上流装置からストリームデータを受信するときに、上流装置毎に受信したストリームデータのバッファ長を設定するので、複数の上流装置の中継段数が異なる場合でも、受信したストリームデータ(バッファ)の冗長性を確保することができる。またこのとき、再生用のパケットよりも数パケット先のパケットを読み出して他のストリーム受信装置(下流装置)に転送することで、中継段数に関係なく、すべてのストリーム受信装置で前記ストリームデータの同一シーケンス番号のパケットをほぼ同じタイミングで再生することができる。
図13乃至図15は、本発明による実施例3のストリーム受信転送方法を説明するための模式図であり、図13は本実施例3におけるストリーム受信装置の接続例を示す図、図14は3段目の受信装置のうち中継段数が小さい装置に接続し直した装置のバッファの状態および転送手順を説明する図、図15は3段目の受信装置のうち中継段数が大きい装置に接続し直した装置のバッファの状態および転送手順を説明する図である。
前記実施例1および実施例2では、ある接続関係が保たれたストリーム受信装置1におけるバッファ長の設定および他のストリーム受信装置へのストリームデータの転送方法について説明したが、前記実施例1および実施例2で説明したストリーム受信装置1でストリームデータを受信しているときには、途中で上流のストリーム装置が停止または配信経路から離脱することがある。その場合、前記停止または離脱した上流装置からストリームデータを受信していたストリーム受信装置は、ストリームデータ(バッファ)の冗長性を確保するために、他のストリーム受信装置あるいはストリーム配信サーバに接続し直す必要がある。そこで、本実施例3では、前記停止または離脱した上流装置からストリームデータを受信していたストリーム受信装置が他のストリーム受信装置に接続し直して、ストリームデータ(バッファ)の冗長性を確保する方法について説明する。
本実施例3のストリーム受信転送方法を説明するにあたって、複数台の前記ストリーム受信装置1は、当初、図8に示したように接続されていたとする。そして、前記ストリームデータの受信および中継(転送)を行っている最中に、図13に示すように、2段目の受信装置115が停止あるいは配信経路から離脱したとする。このとき、前記停止あるいは離脱した受信装置115からストリームデータを受信していた3段目の受信装置116,117,118は、ストリームデータ(バッファ)の冗長性を確保するために、他のストリーム受信装置に接続し直し、ストリームデータを受信する必要がある。このとき、新たに接続する前記ストリーム受信装置が、停止あるいは離脱した受信装置115と同じ2段目の受信装置であれば、受信するストリームデータのバッファの状態は変わらないので、再生用パケット読み出し点のパケットおよび転送用パケット読み出し点のパケットともに冗長性は確保される。そのため、新たな接続先は、もともと受信していた受信装置と同じ中継段数の受信装置とすることが好ましい。しかしながら、場合によっては、図13に示したように、停止または離脱した受信装置115と同じ中継段数の受信装置を選択することができないこともある。そこで、図13に示すように、前記接続し直す3段目の受信装置のうち、ある受信装置116は1段目の受信装置112からストリームデータを受信するように接続先を変更し、別の受信装置117は4段目の受信装置119からストリームデータを受信するように接続先を変更したとする。
このとき、接続先を1段目の受信装置112に変更した3段目の受信装置116は、もともと、図10に示したように、各ストリームデータのバッファ長は6、転送用パケット読み出し点は再生用パケット読み出し点よりも4パケット分先に設定されていた。そして、前記3段目の受信装置116は、2段目の受信装置115の停止により、2段目の受信装置114と1段目の受信装置112からストリームデータを受信するようになると、図14に示すように、前記2段目の受信装置114から受信したストリームデータのバッファ長は6のままであるが、前記1段目の受信装置112から受信したストリームデータのバッファ長が8に変更される。このとき、前記1段目の受信装置112から受信するストリームデータのバッファは、図14に示したように、前記2段目の受信装置114が1段目の受信装置111,112から受信しているストリームデータのバッファと同じ状態である。そのため、前記3段目の受信装置116において、再生用パケット読み出し点のパケットの冗長性は確保される。
また、前記3段目の受信装置116における転送用パケット読み出し点の設定は、前記受信装置116が転送(送信)したストリームデータを受信している4段目の受信装置119,120に変更がないため、接続先を変更する前の設定を維持し、図14に示したように、再生用パケット読み出し点よりも4パケット分先を前記転送用パケット読み出し点とする。このとき、前記3段目の受信装置116は、もともとの2段目の受信装置115よりも中継段数が少ない1段目の受信装置112に接続先を変更したので、受信するストリームデータのバッファ長は長くなっている。そのため、接続先を変更した後も、転送用パケット読み出し点のパケットの冗長性を確保することができる。
一方、接続先を4段目の受信装置119に変更した3段目の受信装置117も、もともと、図10に示したように、各ストリームデータのバッファ長は6、転送用パケット読み出し点は再生用パケット読み出し点よりも4パケット分先に設定されていた。しかしながら、前記3段目の受信装置119は、2段目の受信装置115の停止により、2段目の受信装置114と4段目の受信装置119からストリームデータを受信するようになると、図15に示すように、前記2段目の受信装置114から受信したストリームデータのバッファ長は6のままであるが、前記4段目の受信装置119から受信したストリームデータのバッファ長は2に変更される。このとき、前記4段目の受信装置119から受信するストリームデータのバッファは、図12に示した前記5段目の受信装置121が4段目の受信装置119,120から受信しているストリームデータのバッファと同じ状態である。そのため、前記3段目の受信装置117において、再生用パケット読み出し点のパケットの冗長性は確保される。
また、前記3段目の受信装置117における転送用パケット読み出し点の設定は、前記受信装置117が転送(送信)したストリームデータを受信している4段目の受信装置119,120に変更がないため、接続し直す前の設定を維持し、図15に示したように、再生用パケット読み出し点よりも4パケット分先を前記転送用パケット読み出し点とする。ただし、このようにすると、前記3段目の受信装置117において、前記転送用パケット読み出し点に関しては、図15に示したように、前記2段目の受信装置114から受信しているストリームデータのバッファのみに読み出し点があることになり、冗長性が確保されていないことになる。つまり、接続先を変更した後、前記3段目の受信装置117から4段目の受信装置119,120に転送するストリームデータに関しては、冗長性が確保されていない状態で転送されることになる。しかしながら、前記4段目の受信装置119,120では、もう一方の3段目の受信装置116から冗長性が確保されたパケットを受信しているので、前記4段目の受信装置119,120において各3段目の受信装置116,117から受信しているストリームデータのバッファの冗長性を確保することができる。
また、図を用いた詳細な説明は省略するが、前記3段目の受信装置117が、前記4段目の受信装置119ではなく、同じ中継段数である3段目の受信装置116,118からストリームデータを受信するように接続先の変更をした場合、そのストリームデータのバッファは前記4段目の受信装置119,120が前記3段目の受信装置116,117から受信しているストリームデータのバッファと同じ状態になる。そのため、再生用パケット読み出し点のパケットの冗長性は確保される。また、この場合も前記3段目の受信装置117における転送用パケット読み出し点のパケットの冗長性は確保することができないが、前記4段目の受信装置119,120では、もう一方の3段目の受信装置116から冗長性が確保されたパケットを受信しているので、前記4段目の受信装置119,120において各3段目の受信装置116,117から受信しているストリームデータのバッファの冗長性を確保することができる。
以上説明したように、本実施例3のストリームデータ受信転送方法によれば、ストリームデータを受信する上流装置を変更するときに、変更後の上流装置の中継段数が、変更前の中継段数よりも小さい場合でも、前記再生用パケット読み出し点のパケットおよび転送用パケット読み出し点のパケットともに冗長性を確保することができる。
また、変更後の上流装置の中継段数が、変更前の中継段数よりも大きい場合、前記再生用パケット読み出し点のパケットの冗長性のみを確保することができるが、ストリームデータを転送している受信装置(下流装置)に変更がない場合、接続先を変更する前の転送用パケット読み出し点を維持することで、前記ストリームデータを受信している下流装置における再生用パケット読み出し点のパケットおよび転送用パケット読み出し点のパケットともに冗長性を確保することができる。なお、前記変更前の上流装置よりも中継段数が大きい受信装置を新たな上流装置として選択するとき、中継段数が最大中継段数と等しいストリーム受信装置を選択できないことは言うまでもない。
図16および図17は、本発明による実施例4のストリーム受信転送方法を説明するための模式図であり、図16は本実施例4におけるストリーム受信装置の接続例を示す図、図17は新たなストリームデータ受信装置が接続されたときのバッファの状態および転送手順を説明する図である。
前記実施例3では、前記ストリーム受信装置がストリームデータを受信する上流装置を変更したときに、変更後も再生用パケット読み出し点のパケットおよび転送用パケット読み出し点のパケットの冗長性が確保できることを説明した。そこで、本実施例4では、前記実施例3で説明したような手順でストリームデータを受信する上流装置を変更したストリーム受信装置に、新たなストリーム受信装置が接続されたときの、ストリームデータの転送手順について説明する。
本実施例4では、前記新たなストリーム受信装置が接続される直前に、複数のストリーム受信装置1が、図16に示すような状態で接続されているとする。このとき、最大中継段数は5であり、蓄積係数は2であるとする。そのため、図16に示した1段目の受信装置131,132は10個のパケットをバッファに蓄積しており、先頭のパケット、すなわち再生用パケット読み出し点のパケットから8パケット分先を転送用パケット読み出し点とし、下流装置に転送(送信)している。また、2段目の受信装置133,134は8個のパケットをバッファに蓄積しており、再生用パケット読み出し点のパケットから6パケット分先を転送用パケット読み出し点とし、下流装置に転送(送信)している。また、3段目の受信装置135,136のうち、紙面上側の受信装置135は、2つの上流装置が2段目の受信装置133,134であり、6個のパケットをバッファに蓄積しており、再生用パケット読み出し点のパケットから4パケット分先を転送用パケット読み出し点とし、下流装置に転送(送信)している。
また、3段目の受信装置135,136のうち、紙面下側の受信装置136は、もともとは2つの上流装置のうちの一方あるいは両方が2段目の受信装置であったが、前記上流装置の停止あるいは離脱により、2つの上流装置が1段目の受信装置131,132に変更されているとする。またこのとき、前記3段目の受信装置136がストリームデータを転送(送信)している4段目の受信装置137は変更されていないとする。そのため、前記3段目の受信装置136では、8個のパケットを各バッファに蓄積しているが、転送用パケット読み出し点は、紙面上側の3段目の受信装置135と同様に、再生用パケット読み出し点から4パケット分先に設定されている。
前記各ストリーム受信装置1が、図16に示したような状態であるときに、新たなストリーム受信装置138がストリームデータの受信を要求したとする。また、前記新たな受信装置138は、ストリームデータの受信を要求する上流装置として、たとえば、図17に示すように、前記上流装置を変更した3段目の受信装置136と、上流装置を変更していない2段目の受信装置139を選択したとする。
このとき、前記3段目の受信装置136は、2つの上流装置が1段目の受信装置131,132になっているので、実際には2段目の受信装置となっている。そのため、図17に示すように、上流装置を変更する前からストリームデータを転送していた前記4段目の受信装置137に対しては、上流装置を変更する前の転送用パケット読み出し点の設定を維持する。そして、前記新たな受信装置138に対しては、2段目の受信装置として新たな転送用パケット読み出し点を設定し、ストリームデータを転送(送信)する。つまり、前記3段目の受信装置136は、図17に示したように、前記4段目の受信装置137に対しては再生用パケット読み出し点から4パケット分先のパケットを読み出して転送し、前記新たな受信装置138に対しては再生用パケット読み出し点から6パケット分先のパケットを読み出して転送する。そのため、前記新たな受信装置138において、前記3段目の受信装置136から受信したストリームデータのバッファには、図17に示すように、6個のパケットが蓄積される。
また、詳細な説明は省略するが、前記新たな受信装置138において、前記2段目の受信装置139から受信したストリームデータのバッファには、前記実施例2等で説明したように、6個のパケットが蓄積される。
その結果、前記新たな受信装置138では、図17に示すように、再生用パケット読み出し点のパケットの冗長性が確保される。また、詳細な説明は省略するが、前記新たな受信装置138の中継段数は3段目になるので、他のストリーム受信装置にストリームデータを転送(送信)するときには、前記実施例2等で説明したように、前記再生用パケット読み出し点から4パケット分先を転送用パケット読み出し点として設定する。
以上説明したように、本実施例4のストリームデータ受信転送方法によれば、前記ストリームデータ受信装置において、新たなストリーム受信装置にストリームデータを転送(送信)する前に、上流装置を変更して実質的な中継段数が変わった場合にも、上流装置を変更する前からストリームデータを転送していた受信装置のストリームデータ(バッファ)の冗長性を確保しながら、前記新たな受信装置のストリームデータ(バッファ)の冗長性を確保することができる。
図18乃至図22は、本発明による実施例5のストリームデータ受信転送方法を説明するための模式図であり、図18は本実施例5において前提となるストリーム受信装置の接続例を示す図、図19は図18に示した接続例における各ストリーム受信装置のバッファの状態を示す図、図20は図18に示した接続例における問題点を説明する図、図21は図20に示した問題点を解決する方法を説明する図、図22は図21に示した解決方法により変更された各ストリーム受信装置のバッファの状態を示す図である。
前記実施例1乃至実施例4では、ストリームデータの送受信を行うストリーム受信装置間で前記最大中継段数および蓄積係数の送受信も行っているとして、受信した各ストリームデータのバッファ長の設定、転送用パケット読み出し点の設定を行うような受信転送方法を説明した。しかしながら、この場合、前記最大中継段数および蓄積係数を、前記ストリームデータの配信を行っている最中に変更することが難しい。また、前記ストリーム受信装置によっては、たとえば、パケットの転送能力が低く、複数台の下流装置にパケットを転送することができない場合がある。そのため、前記ストリームデータを受信することができるストリーム受信装置の数に限度があり、新たにストリームデータの受信を希望するストリーム受信装置が上流装置を確保できず、ストリームデータを受信できないという問題が生じることがある。そこで、本実施例5では、前記最大中継段数および蓄積係数を動的に変更し、新たなストリーム受信装置が上流装置を確保できるようにする方法の一例を説明する。
本実施例5のストリームデータ受信転送方法では、前記各ストリーム受信装置1は、たとえば、図18に示すように、ストリームデータを受信する上流装置のほかに、前記最大中継段数および蓄積係数を一括して管理する管理装置5に接続されている。つまり、本実施例5の受信転送方法では、前記各受信装置1は、上流装置からではなく、前記管理装置5から最大中継段数および蓄積係数を取得する。このとき、前記管理装置5において、あるストリームデータの配信に対して、最大中継段数が3、蓄積係数が2と設定、管理されているとすると、前記各受信装置1は、前記実施例2等で説明したような手順で、受信した各ストリームデータのバッファ長および転送用パケット読み出し点の設定を行う。そのため、1段目の受信装置141,142,143は、図19に示すように、各バッファに6個のパケットを蓄積し、再生用パケット読み出し点から4パケット分先のパケットを下流装置に転送(送信)する。
また、2段目の受信装置144,145は、2つの上流装置が1段目の受信装置141,142であり、図19に示すように、各バッファに4個のパケットを蓄積し、再生用パケット読み出し点から2パケット分先のパケットを下流装置に転送している。また、図示は省略するが、2段目の受信装置において、一方の上流装置がストリーム配信サーバである場合、前記ストリーム配信サーバから直接受信したストリームデータのバッファには6個のパケットを蓄積する。
また、3段目の受信装置146,147は、2つの上流装置が2段目の受信装置144,145であり、図19に示すように、各バッファに2個のパケットを蓄積する。また、一方の上流装置が1段目の受信装置143である3段目の受信装置148では、図19に示すように、前記1段目の受信装置143から受信したストリームデータのバッファには4個のパケットを蓄積する。また、図示は省略するが、一方の上流装置がストリーム配信サーバである3段目の受信装置では、前記ストリーム配信サーバから直接受信したストリームデータのバッファには6個のパケットを蓄積する。なお、最大中継段数が3に設定されているので、前記3段目の受信装置146,147,148は、他のストリーム受信装置にストリームデータを転送(送信)することはできない。
このような状態で、たとえば、新たなストリーム受信装置149がストリームデータの受信を希望した場合を考える。このとき、前記新たな受信装置149は、図20に示すように、前記3段目の受信装置146,147を上流装置として選択し、ストリームデータを受信することはできない。そこで、前記新たな受信装置149は、2段目の受信装置144,145または1段目の受信装置141,142,143、あるいはストリーム配信サーバ401,402を前記上流装置として選択しなければならない。しかしながら、前記2段目の受信装置または1段目の受信装置、あるいはストリーム配信サーバを前記上流装置として選択する場合、選択した受信装置あるいは配信サーバの転送能力が低く、前記新たな受信装置に対してストリームデータを十分な速度で転送(送信)できないことがある。その結果、前記新たな受信装置は、冗長性を確保するために複数台の上流装置からストリームデータを受信することができないという問題が生じる可能性がある。
そこで、前記新たな受信装置149が複数台の上流装置からストリームデータを受信できないような場合、たとえば、前記新たな受信装置149は、前記管理装置5に前記最大中継段数の変更を要求する。そして、前記最大中継段数の変更要求を受信した管理装置5は、たとえば、図21に示すように、前記最大中継段数を4、蓄積係数を1に変更するように、前記各受信装置1(141〜148)に変更命令を送信する。
前記各受信装置1(141〜148)は、前記管理装置5からの最大中継段数および蓄積係数の変更命令を受信すると、前記各受信装置1(141〜148)に設けられた最大中継段数・蓄積係数保持手段1Cに保持されている最大中継段数および蓄積係数を変更する。そして、前記バッファ長算出手段1Eにおいて、前記変更した最大中継段数および蓄積係数を用いて、各上流装置から受信したストリームデータのバッファ長を再計算する。前記バッファ1Aは、前記バッファ長算出手段1Eにおける再計算の結果に基づいて、各ストリームデータのバッファ長を変更する。また、前記転送パケット読出手段1Jは、前記変更された最大中継段数および蓄積係数、ならびにバッファ長に基づいて、転送パケット読み出し点を再計算し、変更する。
この結果、もともとストリームデータを受信していた1段目の各受信装置141,142,143では、図22に示すように、ストリームデータのバッファ長が4、転送用パケット読み出し点が再生用パケット読み出し点のパケットから3パケット分先に変更される。同様に、2段目の各受信装置144,145は、ストリームデータのバッファ長が3、転送用パケット読み出し点が再生用パケット読み出し点のパケットから2パケット分先に変更される。同様に、3段目の各受信装置のうち、2つの上流装置が2段目の受信装置である受信装置146,147は、各ストリームデータのバッファ長が2、転送用パケット読み出し点が再生用パケット読み出し点のパケットから1パケット分先に変更される。また、3段目の受信装置のうち、一方の上流装置が1段目の上流装置である受信装置148では、前記1段目の受信装置から受信したストリームデータのバッファ長は3となる。
このように、前記管理装置5からの変更命令に応じて、前記1段目から3段目の各受信装置1(141〜148)におけるストリームデータのバッファ長および転送用パケット読み出し点を動的に変更すれば、前記3段目の受信装置146,147,148は、他のストリーム装置にストリームデータを転送(送信)することができるようになる。つまり、図22に示したように、新たな受信装置149,150が前記3段目の受信装置146,147,148からストリームデータを受信することができるようになる。そのため、たとえば、前記ストリームデータを配信する際に想定していた数よりも多いストリーム受信装置がストリームデータの受信を希望した場合や、中継段数が小さいストリーム受信装置のデータ転送能力が低く、1台の受信装置から複数の下流装置にストリームデータを転送(送信)できず、設定した最大中継段数では想定した数のストリーム受信装置にストリームデータを配信することができないような場合に対応することができる。
以上説明したように、本実施例5のストリームデータ受信転送方法によれば、前記管理装置からの最大中継段数および蓄積係数の変更命令に基づいて、各受信装置が受信するストリームデータのバッファ長および転送用パケット読み出し点を動的に変更することができる。そのため、ストリームデータの配信中に、前記ストリームデータを受信することが可能な受信装置の数を増やすことが容易になる。
以上、本発明を、前記実施例に基づき具体的に説明したが、本発明は、前記実施例に限定されるものではなく、その要旨を逸脱しない範囲において、種々変更可能であることはもちろんである。
たとえば、前記実施例1乃至実施例5では、2つの上流装置からストリームデータを受信して冗長化している例を挙げて説明したが、3つ以上の上流装置からストリームデータを受信してもよい。
また、図1および図6に示した前記ストリーム受信装置の構成は一例であり、前記ストリーム受信装置は、前記実施例1乃至実施例4で説明したような方法でストリームデータの冗長性を確保するとともに、前記実施例5で説明したような方法でバッファ長および転送用パケット読み出し点を動的に変更できる手段を備えていればよい。そのため、たとえば、図1あるいは図6に示したような各手段の代わりに、各手段で行う処理をまとめて行う1つの大きな手段を備えるような受信装置であってもよい。
また、前記実施例1および実施例2で説明した前記ストリーム受信装置は、たとえば、コンピュータとプログラムによって実現することもできる。このとき、前記プログラムは、前記実施例1乃至実施例5で説明したような処理を前記コンピュータに実行させる命令が記述されたものとすればよい。そして、前記プログラムを前記コンピュータに実行させればよい。またこのとき、前記プログラムは、磁気的または電気的、あるいは光学的な記録媒体に記録して提供することもできるし、インターネット等のネットワークを通して提供することもできる。
1…ストリーム受信装置
1A…バッファ(FIFOバッファ)
1B…バッファ読み出し手段
1C…最大中継段数・蓄積係数保持手段
1D…バッファ別中継段数保持手段
1E…バッファ長算出手段
1F…パケット送受信手段
1G…再生処理手段
2…上流装置
3…下流装置
401,402…ストリーム配信サーバ
5…管理装置
1A…バッファ(FIFOバッファ)
1B…バッファ読み出し手段
1C…最大中継段数・蓄積係数保持手段
1D…バッファ別中継段数保持手段
1E…バッファ長算出手段
1F…パケット送受信手段
1G…再生処理手段
2…上流装置
3…下流装置
401,402…ストリーム配信サーバ
5…管理装置
Claims (10)
- 複数台の上流装置からストリームデータを受信して再生するとともに、前記受信したストリームデータを下流装置に転送するストリーム受信装置のストリームデータ受信転送方法であって、
前記ストリームデータの最大中継段数および蓄積係数を取得するステップ1と、
前記各ストリームデータの中継段数を取得するステップ2と、
前記最大中継段数および蓄積係数、ならびに前記各ストリームデータの中継段数に基づいて、前記各ストリームデータのバッファ長を前記ストリームデータ毎に算出するステップ3と、
前記ステップ3で算出した前記各ストリームデータのバッファ長にしたがい、前記各ストリームデータをバッファに蓄積するステップ4と、
前記バッファに蓄積したストリームデータを読み出して再生するステップ5と、
前記下流装置が存在する場合に、前記バッファに蓄積したストリームデータを読み出して前記下流装置に転送するステップ6とを有することを特徴とするストリームデータ受信転送方法。 - 前記ステップ6は、前記最大中継段数および蓄積係数、ならびに前記各ストリームデータの中継段数のうち最大の中継段数に基づいて、転送用パケット読み出し点を算出し、前記バッファに蓄積されている前記算出した転送用パケット読み出し点のパケットを読み出して前記下流装置に転送することを特徴とする請求項1に記載のストリームデータ受信転送方法。
- 前記ステップ3は、前記ストリームデータを受信する上流装置が変更された場合、前記最大中継段数および前記蓄積係数、ならびに変更後のストリームデータの中継段数に基づいて新たなバッファ長を算出し、
前記ステップ6は、前記ストリームデータを受信する上流装置が変更された場合、変更前からストリームデータを転送している下流装置に対しては、変更前に算出した転送用パケット読み出し点からパケットを読み出して転送し、
前記上流装置が変更された後にストリームデータの転送を開始する下流装置に対しては、前記最大中継段数および蓄積係数、ならびに変更後の各ストリームデータの中継段数のうち最大の中継段数に基づいて、新たな転送用パケット読み出し点を算出して、前記バッファに蓄積されている前記算出した転送用パケット読み出し点のパケットを読み出して前記下流装置に転送することを特徴とする請求項1または請求項2に記載のストリームデータ受信転送方法。 - 前記ストリームデータを受信する上流装置の変更を、任意のタイミングで行うことが可能な請求項3に記載のストリームデータ受信転送方法。
- 前記ステップ1は、前記ストリームデータを受信する上流装置とは異なる、前記最大中継段数および蓄積係数を管理する管理装置から動的に取得することを特徴とする請求項1乃至請求項4のいずれか1項に記載のストリームデータ受信転送方法。
- 複数台の上流装置からストリームデータを受信して再生するとともに、前記受信したストリームデータを下流装置に転送するストリームデータ受信装置であって、
前記ストリームデータの最大中継段数および蓄積係数を取得して保持する最大中継段数・蓄積係数保持手段と、
前記各ストリームデータの中継段数を取得して保持するバッファ別中継段数保持手段と、
前記最大中継段数および蓄積係数、ならびに前記各ストリームデータの中継段数に基づいて、前記各ストリームデータのバッファ長を前記ストリームデータ毎に算出するバッファ長算出手段と、
前記バッファ長算出手段で算出した前記各ストリームデータのバッファ長にしたがい、前記各ストリームデータを蓄積するバッファと、
前記バッファに蓄積したストリームデータを読み出して再生するとともに、前記下流装置が存在する場合に、前記バッファに蓄積したストリームデータを読み出して前記下流装置に転送するバッファ読み出しとを備えることを特徴とするストリーム受信装置。 - 前記バッファ読み出し手段は、前記最大中継段数および蓄積係数、ならびに前記各ストリームデータの中継段数のうち最大の中継段数に基づいて、転送用パケット読み出し点を算出し、前記バッファに蓄積されている前記算出した転送用パケット読み出し点のパケットを読み出す転送パケット読出手段を備えることを特徴とする請求項6に記載のストリーム受信装置。
- 前記バッファ長算出手段は、前記ストリームデータを受信する上流装置が変更された場合、前記最大中継段数および前記蓄積係数、ならびに変更後のストリームデータの中継段数に基づいて新たなバッファ長を算出し、
前記転送パケット読出手段は、前記ストリームデータを受信する上流装置が変更された場合、変更前からストリームデータを転送している下流装置に対しては、変更前に算出した転送用パケット読み出し点からパケットを読み出し、
前記上流装置が変更された後にストリームデータの転送を開始する下流装置に対しては、前記最大中継段数および蓄積係数、ならびに変更後の各ストリームデータの中継段数のうち最大の中継段数に基づいて、新たな転送用パケット読み出し点を算出して、前記バッファに蓄積されている前記算出した転送用パケット読み出し点のパケットを読み出すことを特徴とする請求項6または請求項7に記載のストリーム受信装置。 - 前記最大中継段数・蓄積係数保持手段は、前記ストリームデータを受信する上流装置とは異なる、前記最大中継段数および蓄積係数を管理する管理装置から動的に取得する手段を備えることを特徴とする請求項6乃至請求項8のいずれか1項に記載のストリーム受信装置。
- 請求項1乃至請求項5のいずれかに記載のストリームデータ受信転送方法における各ステップの処理を、コンピュータに実行させるストリームデータ受信転送プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004203476A JP2006025338A (ja) | 2004-07-09 | 2004-07-09 | ストリームデータ受信転送方法およびストリーム受信装置、ならびにストリームデータ受信転送プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004203476A JP2006025338A (ja) | 2004-07-09 | 2004-07-09 | ストリームデータ受信転送方法およびストリーム受信装置、ならびにストリームデータ受信転送プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006025338A true JP2006025338A (ja) | 2006-01-26 |
Family
ID=35798261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004203476A Pending JP2006025338A (ja) | 2004-07-09 | 2004-07-09 | ストリームデータ受信転送方法およびストリーム受信装置、ならびにストリームデータ受信転送プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006025338A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007026604A1 (ja) * | 2005-08-29 | 2007-03-08 | Nec Corporation | マルチキャストノード装置とマルチキャスト転送方法ならびにプログラム |
WO2008029471A1 (fr) * | 2006-09-07 | 2008-03-13 | Media Global Links Co., Ltd. | Système de sortie vidéo simultanée en multidiffusion |
US8121077B2 (en) | 2008-07-24 | 2012-02-21 | Panasonic Corporation | Relay device and relay method |
CN105676689A (zh) * | 2016-01-11 | 2016-06-15 | 中国电子科技集团公司第十研究所 | 实时软件接收机中采集数据循环存储与分发方法 |
-
2004
- 2004-07-09 JP JP2004203476A patent/JP2006025338A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007026604A1 (ja) * | 2005-08-29 | 2007-03-08 | Nec Corporation | マルチキャストノード装置とマルチキャスト転送方法ならびにプログラム |
WO2008029471A1 (fr) * | 2006-09-07 | 2008-03-13 | Media Global Links Co., Ltd. | Système de sortie vidéo simultanée en multidiffusion |
US8121077B2 (en) | 2008-07-24 | 2012-02-21 | Panasonic Corporation | Relay device and relay method |
CN105676689A (zh) * | 2016-01-11 | 2016-06-15 | 中国电子科技集团公司第十研究所 | 实时软件接收机中采集数据循环存储与分发方法 |
CN105676689B (zh) * | 2016-01-11 | 2018-08-31 | 中国电子科技集团公司第十研究所 | 实时软件接收机中采集数据循环存储与分发方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7672235B1 (en) | System and method for buffering real-time streaming content in a peer-to-peer overlay network | |
JP3884920B2 (ja) | データ配送方法 | |
KR101278632B1 (ko) | 인터넷 프로토콜을 사용하여 직렬 버스를 통해 데이터운반을 수행하는 방법 및 그러한 방법에 사용하기 위한장치 | |
JPH09322123A (ja) | マルチメディア情報転送システム | |
KR20110014637A (ko) | 채널 변경 응답 시간 향상 방법 및 채널 변경 응답 시간 향상 장치 | |
JP4988487B2 (ja) | データの転送方法、装置、プログラム | |
JP5359952B2 (ja) | 複数公衆回線を用いた高帯域動画伝送システムおよび方法 | |
JP2006025338A (ja) | ストリームデータ受信転送方法およびストリーム受信装置、ならびにストリームデータ受信転送プログラム | |
JP2001069485A (ja) | インターネット経由のビデオオンデマンドシステム用プロキシ | |
US20070274313A1 (en) | Method for Routing Data Frames from a Data Content Source to a Destination Device with Buffering of Specific Data and Device Thereof | |
JP2901947B2 (ja) | Atmバックボーンネットワークを利用したビデオサーバ | |
JP3512716B2 (ja) | 連続a/vデータの転送システム及び転送方法 | |
JP6166445B1 (ja) | アプリケーション層マルチキャスト配信方法 | |
JPH059974B2 (ja) | ||
JP2012222530A (ja) | 受信装置及び方法、並びにプログラム | |
JP2005348015A (ja) | リアルタイム・ストリーミングデータ受信装置 | |
KR20080082843A (ko) | 데이터 패킷 손실의 보상을 위한 클라이언트 및 시스템,그리고 그 방법 | |
JP2005110024A (ja) | データ送信装置、データ送受信システム、及びデータ送受信方法 | |
JP4299475B2 (ja) | 受信装置及び受信再生方法 | |
JP2009071766A (ja) | 受信端末装置 | |
JP5498875B2 (ja) | 分散型マルチメディアサーバシステム、分散型マルチメディア蓄積方法、及び分散型マルチメディア配信方法 | |
JP2009060553A (ja) | Mpegデータの送受信方法 | |
JP2004350252A (ja) | 圧縮動画像情報の伝送方法 | |
JP4531723B2 (ja) | 分散型サーバ装置における情報アクセス方法、分散型サーバ装置、通信サーバモジュール、およびプログラム | |
JP2003348548A (ja) | ストリーム配信システムと方法およびストリーム受信装置 |