(57)【特許請求の範囲】
【請求項１】
複数のチャンネルでそれぞれコンテンツデータをストリーミング配信する１以上のコンテンツ配信装置と、前記コンテンツデータを受信及び再生する複数の端末装置と、前記チャンネル毎に前記コンテンツ配信装置を頂点として複数の端末装置が階層構造で多層に論理接続されるように管理する接続管理装置とを有し、前記コンテンツ配信装置からストリーミング配信される前記コンテンツデータが前記チャンネル毎に前記端末装置の中継機能により順次前記階層構造の下流に中継され、前記複数の端末装置によって前記コンテンツデータを再生可能としたコンテンツデータ配信システムにおいて、
前記コンテンツ配信装置は、
前記コンテンツデータを配信する配信手段を備え、
前記接続管理装置は、
前記チャンネル毎に前記階層構造を構成する前記端末装置の接続状態情報を記憶する接続状態情報記憶手段と、
前記端末装置から接続先紹介要求を受信したとき、前記接続状態情報記憶手段に記憶された前記接続状態情報から接続先候補を選択する接続先候補選択手段と
前記接続先候補選択手段によって選択された前記接続先候補を、前記接続先紹介要求を送信した前記端末装置へ通知する通知手段と、を備え、
前記端末装置は、
記憶手段と、
前記チャンネルを選択するためのチャンネル選択手段と、
前記チャンネル選択手段によって選択されたチャンネルに関する前記接続先紹介要求を前記接続管理装置へ送信し、その後、前記接続管理装置から通知された前記接続先候補に接続する接続手段と、
前記チャンネル選択手段によって選択されるチャンネルのコンテンツデータを前記接続先候補から受信して一時的に蓄積するリングバッファ領域を、前記チャンネル選択手段によって選択されるチャンネルごとに前記記憶手段に設定するリングバッファ設定手段と、
前記チャンネル選択手段によって選択された最新のチャンネルのコンテンツデータを当該チャンネルに対応する前記リングバッファ領域から取り出して再生する再生手段と、
前記再生手段による前記チャンネル毎のコンテンツデータの再生状況を検出するコンテンツデータ再生状況検出手段と、
他の前記端末装置から前記コンテンツデータの中継依頼を受信する中継依頼受信手段と、
他の前記端末装置へ前記リングバッファ領域に蓄積した前記コンテンツデータを転送する転送手段と、を備え、
前記端末装置のリングバッファ設定手段は、
前記チャンネル選択手段によって選択されるチャンネルのコンテンツデータの再生状況に応じたバッファ容量を有する前記リングバッファ領域を、前記記憶手段に設定する
ことを特徴とするコンテンツデータ配信システム。
【請求項２】
前記端末装置の前記接続手段は、
前記チャンネル選択手段によって選択されたチャンネルに対応するリングバッファ領域のバッファ容量を含む接続先紹介要求を前記接続先紹介要求として送信し、
前記接続管理装置は、
前記端末装置のリングバッファ領域のバッファ容量を受信して前記接続状態情報記憶手段に記憶するバッファ容量受信手段を備え、
前記接続管理装置の接続先候補選択手段は、
前記端末装置から前記リングバッファ領域のバッファ容量を含む接続先紹介要求を受信したとき、当該接続先紹介要求に対応するチャンネルの階層構造において、当該階層構造を構成する前記端末装置の前記リングバッファ領域のバッファ容量が前記階層構造の上流から下流にかけて小さくなるように、前記接続先紹介要求に対する接続先候補を、前記接続状態情報記憶手段に記憶された前記接続状態情報から選択することを特徴とする請求項１に記載のコンテンツデータ配信システム。
【請求項３】
複数のチャンネルでそれぞれコンテンツデータをストリーミング配信する１以上のコンテンツ配信装置と、前記コンテンツデータを受信及び再生する複数の端末装置と、前記チャンネル毎に前記コンテンツ配信装置を頂点として複数の端末装置が階層構造で多層に論理接続されるように管理する接続管理装置とを有し、前記コンテンツ配信装置からストリーミング配信される前記コンテンツデータが前記チャンネル毎に前記端末装置の中継機能により順次前記階層構造の下流に中継され、前記複数の端末装置によって前記コンテンツデータを再生可能としたコンテンツデータ配信システムのコンテンツデータ配信方法において、
前記コンテンツ配信装置は、
前記コンテンツデータを配信するステップを有し、
前記接続管理装置は、
前記チャンネル毎に前記階層構造を構成する前記端末装置の接続状態情報を記憶するステップと、
前記端末装置から接続先紹介要求を受信したとき、前記記憶された接続状態情報から接続先候補を選択するステップと、
前記選択された前記接続先候補を、前記接続先紹介要求を送信した前記端末装置へ通知するステップと、を有し、
前記端末装置は、
前記チャンネルの選択を検出するステップと、
前記選択されたチャンネルに関する前記接続先紹介要求を前記接続管理装置へ送信するステップと、
前記接続管理装置から通知された前記接続先候補に接続するステップと、
前記チャンネル選択手段によって選択されるチャンネルのコンテンツデータを前記接続先候補から受信して一時的に蓄積するリングバッファ領域を、前記チャンネル選択手段によって選択されるチャンネルごとに前記記憶手段に設定するステップと、
前記選択された最新のチャンネルのコンテンツデータを当該チャンネルに対応する前記リングバッファ領域から取り出して再生するステップと、
前記チャンネル毎のコンテンツデータの再生状況を検出するステップと、
他の前記端末装置から前記コンテンツデータの中継依頼を受信するステップと、
他の前記端末装置へ前記リングバッファ領域に蓄積した前記コンテンツデータを転送するステップと、
前記選択されるチャンネルのコンテンツデータ再生状況に応じたバッファ容量を有する前記リングバッファ領域を、前記記憶手段に設定するステップを有する
ことを特徴とするコンテンツデータ配信方法。
【請求項４】
複数のチャンネルでそれぞれコンテンツデータをストリーミング配信する１以上のコンテンツ配信装置と、前記コンテンツデータを受信及び再生する複数の端末装置と、前記チャンネル毎に前記コンテンツ配信装置を頂点として複数の端末装置が階層構造で多層に論理接続されるように管理する接続管理装置とを有し、前記コンテンツ配信装置からストリーミング配信される前記コンテンツデータが前記チャンネル毎に前記端末装置の中継機能により順次前記階層構造の下流に中継され、前記複数の端末装置によって前記コンテンツデータを再生可能としたコンテンツデータ配信システムにおける前記端末装置において、
記憶手段と、
前記チャンネルを選択するためのチャンネル選択手段と、
前記チャンネル選択手段によって選択されたチャンネルに関する前記接続先紹介要求を前記接続管理装置へ送信し、その後、前記接続管理装置から通知された前記接続先候補に接続する接続手段と、
前記チャンネル選択手段によって選択されるチャンネルのコンテンツデータを前記接続先候補から受信して一時的に蓄積するリングバッファ領域を、前記チャンネル選択手段によって選択されるチャンネルごとに前記記憶手段に設定するリングバッファ設定手段と、
前記チャンネル選択手段によって選択された最新のチャンネルのコンテンツデータを当該チャンネルに対応する前記リングバッファ領域から取り出して再生する再生手段と、
前記再生手段による前記チャンネル毎のコンテンツデータの再生状況を検出するコンテンツデータ再生状況検出手段と、
他の前記端末装置から前記コンテンツデータの中継依頼を受信する中継依頼受信手段と、
他の前記端末装置へ前記リングバッファ領域に蓄積した前記コンテンツデータを転送する転送手段と、を備え、
前記リングバッファ設定手段は、
前記チャンネル選択手段によって選択されるチャンネルのコンテンツデータの再生状況に応じたバッファ容量を有する前記リングバッファ領域を、前記記憶手段に設定する
ことを特徴とする端末装置。
【請求項５】
前記コンテンツデータの再生状況に関する条件は、各チャンネルにおける前記コンテンツデータの再生回数である
ことを特徴とする請求項４に記載の端末装置。
【請求項６】
前記コンテンツデータの再生状況に関する条件は、各チャンネルにおける前記コンテンツデータの再生時間である
ことを特徴とする請求項４に記載の端末装置。
【請求項７】
前記リングバッファ設定手段は、
所定期間毎に、前記チャンネル毎のコンテンツデータの再生状況に応じたバッファ容量となるように前記リングバッファ領域を更新する
ことを特徴とする請求項４から６のいずれか１項に記載の端末装置。
【請求項８】
前記リングバッファ設定手段は、
前記チャンネル選択手段によって選択されたチャンネルの接続先候補に前記接続手段よって接続したときに、前記記憶手段に当該選択したチャンネルに対応するリングバッファ領域が存在せず、かつ前記記憶手段に設定した前記リングバッファ領域の数が所定数に達していると判定すると、複数の前記リングバッファ領域のうち、一つのリングバッファ領域を前記記憶手段から削除し、前記記憶手段に前記選択したチャンネルに対応するリングバッファ領域を設定する
ことを特徴とする請求項４から７のいずれか１項に記載の端末装置。
【請求項９】
前記リングバッファ設定手段は、
前記記憶手段に設定されたリングバッファ領域のうち、前記再生手段によって再生されていない期間が最も長いリングバッファ領域を前記記憶手段から削除し、前記記憶手段に前記選択したチャンネルに対応するリングバッファ領域を設定する
ことを特徴とする請求項８に記載の端末装置。
【請求項１０】
前記リングバッファ領域のバッファ容量を所定期間毎に前記接続管理装置に通知するバッファ容量通知手段を備えた
ことを特徴とする請求項４〜９のいずれか１項に記載の端末装置。
【請求項１１】
前記リングバッファ設定手段によって前記リングバッファ領域を設定したとき、又は前記リングバッファ設定手段によって前記リングバッファ領域のバッファ容量を変更したとき、前記リングバッファ領域のバッファ容量を前記接続管理装置に通知するバッファ容量通知手段を有する
ことを特徴とする請求項４〜９のいずれか１項に記載の端末装置。
【請求項１２】
自端末装置の電源が切断されたことを検出すると、前記記憶手段に設定された前記複数のリングバッファ領域のバッファ容量を不揮発性記憶装置に記憶し、自端末装置の電源が再度供給されると、前記不揮発性記憶装置に記憶したバッファ容量に基づいて、前記複数のリングバッファ領域を前記記憶手段に再設定するバックアップ処理手段を備えた
ことを特徴とする請求項４〜１１のいずれか１項に記載の端末装置。
【請求項１３】
前記階層構造における自端末装置の上流にある端末装置が有する前記リングバッファ領域の前記バッファ容量を取得する上流バッファ容量取得手段と、
自端末装置が有する前記リングバッファ領域のバッファ容量と、前記上流の端末装置が有する前記リングバッファ領域の前記バッファ容量とを比較する比較手段と、
前記比較手段による比較の結果、自端末装置が有する前記リングバッファ領域のバッファ容量が前記上流にある端末装置が有する前記リングバッファ領域のバッファ容量よりも大きい場合に、前記上流の端末装置よりも前記階層構造上における上流に再接続する再接続手段と、を備えた
ことを特徴とする請求項４〜１２のいずれか１項に記載の端末装置。
【請求項１４】
前記上流バッファ容量取得手段は、
前記上流の端末装置が有する前記リングバッファ領域のバッファ容量を所定契機毎に前記接続管理装置へ問い合わせることにより、前記上流の端末装置が有する前記リングバッファ領域のバッファ容量を取得する
ことを特徴とする請求項１３に記載の端末装置。
【請求項１５】
前記上流バッファ容量取得手段は、
前記上流の端末装置が有する前記リングバッファ領域のバッファ容量を所定契機毎に前記上流の端末装置へ問い合わせることにより、前記上流の端末装置が有する前記リングバッファ領域のバッファ容量を取得する
ことを特徴とする請求項１３に記載の端末装置。
【請求項１６】
前記階層構造における自端末装置の下流にある端末装置が有する前記リングバッファ領域のバッファ容量を取得する下流バッファ容量取得手段と、
自端末装置が有する前記リングバッファ領域のバッファ容量と、前記下流の端末装置が有する前記リングバッファ領域の前記バッファ容量とを比較する比較手段と、
前記比較手段による比較の結果、自端末装置が有する前記リングバッファ領域のバッファ容量が前記下流の端末装置が有する前記リングバッファ領域の前記バッファ容量よりも小さい場合に、下流の端末装置或いは前記下流の端末装置よりも前記階層構造上における下流に再接続する再接続手段と、を備えた
ことを特徴とする請求項４〜１５のいずれか１項に記載の端末装置。
【請求項１７】
前記下流バッファ容量取得手段は、
前記下流の端末装置が有する前記リングバッファ領域の前記バッファ容量を所定契機毎に前記接続管理装置へ問い合わせることにより、前記下流の端末装置の前記バッファ容量を取得する
ことを特徴とする請求項１６に記載の端末装置。
【請求項１８】
前記下流バッファ容量取得手段は、
前記下流の端末装置が有する前記リングバッファ領域の前記バッファ容量を所定契機毎に前記下流の端末装置へ問い合わせることにより、前記下流の端末装置が有する前記リングバッファ領域の前記バッファ容量を取得する
ことを特徴とする請求項１６に記載の端末装置。
【請求項１９】
前記接続手段は、
前記接続先紹介要求に関するチャンネルに対する前記リングバッファ領域のバッファ容量を含む接続先紹介要求を前記接続先紹介要求として送信する
ことを特徴とする請求項４〜１８のいずれか１項に記載の端末装置。
【請求項２０】
コンピュータに、請求項４〜１９のいずれか１項に記載の端末装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツデータ配信の技術に関する。詳細には、チャンネル毎にコンテンツ配信装置を頂点として複数の端末装置が階層構造で多層に論理接続され、コンテンツ配信装置からストリーミング配信されるコンテンツデータがチャンネル毎に端末装置の中継機能により順次階層構造の下流に中継され、複数の端末装置によってコンテンツデータを再生可能としたコンテンツデータ配信システム、コンテンツデータ配信方法、端末装置、及びそのプログラムに関する。
【背景技術】
【０００２】
近年、インターネットなどのネットワークを介して、音楽、映画、トーク番組などコンテンツのデータ（以下、「コンテンツデータ」と呼ぶ。）のストリーミング配信を行うコンテンツ配信サービスが開始され始めている。ここで、ストリーミング配信とは、クライアント端末装置（以下、単に「端末装置」と呼ぶ。）がストリーミング受信できるストリーミング形式でコンテンツデータを配信する配信方法であり、端末装置はストリーミング配信されるコンテンツデータを受信しながら再生することができる。また、ストリーミング配信形態としては、コンテンツデータの配信時間が決められた放送形式のものと、端末装置からの要求に応じて個々の端末装置にストリーミング配信するオンデマンド形式のものがある。
【０００３】
放送形式のコンテンツ配信サービスは、従来、一つのコンテンツ配信装置から複数の端末装置に対して直接コンテンツの配信を行うものが主流であった。
【０００４】
ところが、コンテンツ配信サービスの充実やネットワークへ接続する端末装置の増加に伴い、コンテンツ配信装置に対してコンテンツデータの配信を要求する端末装置が増加し、配信装置の負荷が増大していくのに加え、ネットワークにおけるトラフィックの集中が深刻な影響を及ぼすようになってきた。
【０００５】
このようなコンテンツ配信装置への負荷やトラフィックの増大を回避するため、オリジナルの配信サーバに加え、ミラーサーバやキャッシュなどのサーバをネットワーク内に複数配置することにより負荷分散する技術が実用化されているが、コンテンツを配信するサーバが複数必要となり設備のコストが増大する。
【０００６】
そのため、端末装置間でのコンテンツデータの中継、すなわちＰ２Ｐ通信形態を用いることによりコンテンツ配信装置を増加することなく負荷やトラフィックの集中を低減することができるコンテンツデータ配信方法が提案されている。このコンテンツデータ配信方法は、コンテンツ配信装置を頂点としたツリー構造で多層に複数の端末装置を論理接続し、コンテンツ配信装置からコンテンツデータを下流の端末装置へ順次配信していくものである。すなわち、コンテンツ配信装置から配信されたコンテンツデータは、最上位層（第１階層）に位置する端末装置へ配信され、この最上位層に位置する端末装置はコンテンツ配信装置から配信されたコンテンツデータを第２階層に位置する端末装置へ中継し、このコンテンツデータの中継を最下層に位置する端末装置へ配信するまで行うものである（たとえば、特許文献１，２参照）。
【０００７】
このようなコンテンツデータ配信システムにおいては、複数の端末装置をツリー構造で論理接続するための接続管理装置がネットワーク上に配置されている。接続管理装置は、コンテンツ配信システムの階層構造における端末装置の接続状態を管理する機能を有しており、この階層構造に参加していない端末装置からの参加要求を受信すると、階層構造を構成する複数の端末装置のうち、どの端末装置に接続すべきかを参加要求を行った端末装置に通知する。この通知を受けた端末装置は、接続管理装置から紹介を受けた接続先候補に対して接続要求することにより、コンテンツ配信システムに参加することができ、これにより、コンテンツ配信装置からのコンテンツデータを、論理的に接続している上流の端末装置から受信しながら再生することができる。
【０００８】
ところで、放送形式のコンテンツデータ配信システムにおいて、複数のチャンネルによりコンテンツデータをストリーミング配信する場合、コンテンツ配信装置を頂点としたツリー型階層構造は、チャンネル毎に構成されることになる。
【０００９】
したがって、端末装置のユーザが、視聴しているチャンネルとは異なるチャンネルを視聴するために操作を行った場合、視聴しているチャンネルに対応するツリー型階層構造とは異なるツリー型階層構造に参加することになる。
【特許文献１】特開２００４−３４１５７６号公報
【特許文献２】特開２００４−２４６７９０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述のようなコンテンツ配信システムの端末装置においては、パケット損失に対する補完処理や、受信済みのコンテンツデータに対するトリックプレイを行うことができるように、コンテンツデータを一時的に蓄積しておくリングバッファ領域が設定される。
【００１１】
このリングバッファ領域は、大きければ大きいほど、パケット損失に対する補完処理の精度やトリックプレイの操作性を向上させることができる。
【００１２】
ところが、それぞれのチャンネルによって、端末装置のユーザによる視聴状況は異なることから、リングバッファ領域のバッファ容量を一定に設定するのでは、視聴するチャンネルに関するパケット損失に対する補完処理やトリックプレイにおいて必ずしも必要のないバッファ容量となる場合があり、端末装置の記憶領域を有効に使用することができない。
【００１３】
特に、記憶領域が小さいセットトップボックスやデジタル家電などの装置では、他の処理に用いる記憶容量をできるだけ確保することが望ましく、このような装置を端末装置として用いる場合、リングバッファ領域のバッファ容量を適切に設定することが望ましい。
【課題を解決するための手段】
【００１４】
そこで、かかる課題を解決するために、請求項１に記載の発明は、複数のチャンネルでそれぞれコンテンツデータをストリーミング配信する１以上のコンテンツ配信装置と、前記コンテンツデータを受信及び再生する複数の端末装置と、前記チャンネル毎に前記コンテンツ配信装置を頂点として複数の端末装置が階層構造で多層に論理接続されるように管理する接続管理装置とを有し、前記コンテンツ配信装置からストリーミング配信される前記コンテンツデータが前記チャンネル毎に前記端末装置の中継機能により順次前記階層構造の下流に中継され、前記複数の端末装置によって前記コンテンツデータを再生可能としたコンテンツデータ配信システムにおいて、前記コンテンツ配信装置は、前記コンテンツデータを配信する配信手段を備え、前記接続管理装置は、前記チャンネル毎に前記階層構造を構成する前記端末装置の接続状態情報を記憶する接続状態情報記憶手段と、前記端末装置から接続先紹介要求を受信したとき、前記接続状態情報記憶手段に記憶された前記接続状態情報から接続先候補を選択する接続先候補選択手段と前記接続先候補選択手段によって選択された前記接続先候補を、前記接続先紹介要求を送信した前記端末装置へ通知する通知手段と、を備え、前記端末装置は、記憶手段と、前記チャンネルを選択するためのチャンネル選択手段と、前記チャンネル選択手段によって選択されたチャンネルに関する前記接続先紹介要求を前記接続管理装置へ送信し、その後、前記接続管理装置から通知された前記接続先候補に接続する接続手段と、前記チャンネル選択手段によって選択されるチャンネルのコンテンツデータを前記接続先候補から受信して一時的に蓄積するリングバッファ領域を、前記チャンネル選択手段によって選択されるチャンネルごとに前記記憶手段に設定するリングバッファ設定手段と、前記チャンネル選択手段によって選択された最新のチャンネルのコンテンツデータを当該チャンネルに対応する前記リングバッファ領域から取り出して再生する再生手段と、前記再生手段による前記チャンネル毎のコンテンツデータの再生状況を検出するコンテンツデータ再生状況検出手段と、他の前記端末装置から前記コンテンツデータの中継依頼を受信する中継依頼受信手段と、他の前記端末装置へ前記リングバッファ領域に蓄積した前記コンテンツデータを転送する転送手段と、を備え、前記端末装置のリングバッファ設定手段は、前記チャンネル選択手段によって選択されるチャンネルのコンテンツデータの再生状況に応じたバッファ容量を有する前記リングバッファ領域を、前記記憶手段に設定することを特徴とする。
【００１５】
また、請求項２に記載の発明は、請求項１に記載の発明において、前記端末装置の前記接続手段は、前記チャンネル選択手段によって選択されたチャンネルに対応するリングバッファ領域のバッファ容量を含む接続先紹介要求を前記接続先紹介要求として送信し、前記接続管理装置は、前記端末装置のリングバッファ領域のバッファ容量を受信して前記接続状態情報記憶手段に記憶するバッファ容量受信手段を備え、前記接続管理装置の接続先候補選択手段は、前記端末装置から前記リングバッファ領域のバッファ容量を含む接続先紹介要求を受信したとき、当該接続先紹介要求に対応するチャンネルの階層構造において、当該階層構造を構成する前記端末装置の前記リングバッファ領域のバッファ容量が前記階層構造の上流から下流にかけて小さくなるように、前記接続先紹介要求に対する接続先候補を、前記接続状態情報記憶手段に記憶された前記接続状態情報から選択することを特徴とする。
【００１６】
また、請求項３に記載の発明は、複数のチャンネルでそれぞれコンテンツデータをストリーミング配信する１以上のコンテンツ配信装置と、前記コンテンツデータを受信及び再生する複数の端末装置と、前記チャンネル毎に前記コンテンツ配信装置を頂点として複数の端末装置が階層構造で多層に論理接続されるように管理する接続管理装置とを有し、前記コンテンツ配信装置からストリーミング配信される前記コンテンツデータが前記チャンネル毎に前記端末装置の中継機能により順次前記階層構造の下流に中継され、前記複数の端末装置によって前記コンテンツデータを再生可能としたコンテンツデータ配信システムのコンテンツデータ配信方法において、前記コンテンツ配信装置は、前記コンテンツデータを配信するステップを有し、前記接続管理装置は、前記チャンネル毎に前記階層構造を構成する前記端末装置の接続状態情報を記憶するステップと、前記端末装置から接続先紹介要求を受信したとき、前記記憶された接続状態情報から接続先候補を選択するステップと、前記選択された前記接続先候補を、前記接続先紹介要求を送信した前記端末装置へ通知するステップと、を有し、前記端末装置は、前記チャンネルの選択を検出するステップと、前記選択されたチャンネルに関する前記接続先紹介要求を前記接続管理装置へ送信するステップと、前記接続管理装置から通知された前記接続先候補に接続するステップと、前記チャンネル選択手段によって選択されるチャンネルのコンテンツデータを前記接続先候補から受信して一時的に蓄積するリングバッファ領域を、前記チャンネル選択手段によって選択されるチャンネルごとに前記記憶手段に設定するステップと、前記選択された最新のチャンネルのコンテンツデータを当該チャンネルに対応する前記リングバッファ領域から取り出して再生するステップと、前記チャンネル毎のコンテンツデータの再生状況を検出するステップと、他の前記端末装置から前記コンテンツデータの中継依頼を受信するステップと、他の前記端末装置へ前記リングバッファ領域に蓄積した前記コンテンツデータを転送するステップと、前記選択されるチャンネルのコンテンツデータ再生状況に応じたバッファ容量を有する前記リングバッファ領域を、前記記憶手段に設定するステップを有することを特徴とする。
【００１７】
また、請求項４に記載の発明は、複数のチャンネルでそれぞれコンテンツデータをストリーミング配信する１以上のコンテンツ配信装置と、前記コンテンツデータを受信及び再生する複数の端末装置と、前記チャンネル毎に前記コンテンツ配信装置を頂点として複数の端末装置が階層構造で多層に論理接続されるように管理する接続管理装置とを有し、前記コンテンツ配信装置からストリーミング配信される前記コンテンツデータが前記チャンネル毎に前記端末装置の中継機能により順次前記階層構造の下流に中継され、前記複数の端末装置によって前記コンテンツデータを再生可能としたコンテンツデータ配信システムにおける前記端末装置において、記憶手段と、前記チャンネルを選択するためのチャンネル選択手段と、前記チャンネル選択手段によって選択されたチャンネルに関する前記接続先紹介要求を前記接続管理装置へ送信し、その後、前記接続管理装置から通知された前記接続先候補に接続する接続手段と、前記チャンネル選択手段によって選択されるチャンネルのコンテンツデータを前記接続先候補から受信して一時的に蓄積するリングバッファ領域を、前記チャンネル選択手段によって選択されるチャンネルごとに前記記憶手段に設定するリングバッファ設定手段と、前記チャンネル選択手段によって選択された最新のチャンネルのコンテンツデータを当該チャンネルに対応する前記リングバッファ領域から取り出して再生する再生手段と、前記再生手段による前記チャンネル毎のコンテンツデータの再生状況を検出するコンテンツデータ再生状況検出手段と、他の前記端末装置から前記コンテンツデータの中継依頼を受信する中継依頼受信手段と、他の前記端末装置へ前記リングバッファ領域に蓄積した前記コンテンツデータを転送する転送手段と、を備え、前記リングバッファ設定手段は、前記チャンネル選択手段によって選択されるチャンネルのコンテンツデータの再生状況に応じたバッファ容量を有する前記リングバッファ領域を、前記記憶手段に設定することを特徴とする。
【００１８】
また、請求項５に記載の発明は、請求項４に記載の発明において、前記コンテンツデータの再生状況に関する条件は、各チャンネルにおける前記コンテンツデータの再生回数であることを特徴とする。
【００１９】
また、請求項６に記載の発明は、請求項４に記載の発明において、前記コンテンツデータの再生状況に関する条件は、各チャンネルにおける前記コンテンツデータの再生時間であることを特徴とする。
【００２０】
また、請求項７に記載の発明は、請求項４〜６のいずれか１項に記載の発明において、前記リングバッファ設定手段は、所定期間毎に、前記チャンネル毎のコンテンツデータの再生状況に応じたバッファ容量となるように前記リングバッファ領域を更新することを特徴とする。
【００２１】
また、請求項８に記載の発明は、請求項４〜７のいずれか１項に記載の発明において、前記リングバッファ設定手段は、前記チャンネル選択手段によって選択されたチャンネルの接続先候補に前記接続手段よって接続したときに、前記記憶手段に当該選択したチャンネルに対応するリングバッファ領域が存在せず、かつ前記記憶手段に設定した前記リングバッファ領域の数が所定数に達していると判定すると、複数の前記リングバッファ領域のうち、一つのリングバッファ領域を前記記憶手段から削除し、前記記憶手段に前記選択したチャンネルに対応するリングバッファ領域を設定することを特徴とする。
【００２２】
また、請求項９に記載の発明は、請求項８に記載の発明において、前記リングバッファ設定手段は、前記記憶手段に設定されたリングバッファ領域のうち、前記再生手段によって再生されていない期間が最も長いリングバッファ領域を前記記憶手段から削除し、前記記憶手段に前記選択したチャンネルに対応するリングバッファ領域を設定することを特徴とする。
【００２３】
また、請求項１０に記載の発明は、請求項４〜９のいずれか１項に記載の発明において、前記リングバッファ領域のバッファ容量を所定期間毎に前記接続管理装置に通知するバッファ容量通知手段を備えたことを特徴とする。
【００２４】
また、請求項１１に記載の発明は、請求項４〜９のいずれか１項に記載の発明において、前記リングバッファ設定手段によって前記リングバッファ領域を設定したとき、又は前記リングバッファ設定手段によって前記リングバッファ領域のバッファ容量を変更したとき、前記リングバッファ領域のバッファ容量を前記接続管理装置に通知するバッファ容量通知手段を有することを特徴とする。
【００２５】
また、請求項１２に記載の発明は、請求項４〜１１のいずれか１項に記載の発明において、自端末装置の電源が切断されたことを検出すると、前記記憶手段に設定された前記複数のリングバッファ領域のバッファ容量を不揮発性記憶装置に記憶し、自端末装置の電源が再度供給されると、前記不揮発性記憶装置に記憶したバッファ容量に基づいて、前記複数のリングバッファ領域を前記記憶手段に再設定するバックアップ処理手段を備えたことを特徴とする。
【００２６】
また、請求項１３に記載の発明は、請求項４〜１２のいずれか１項に記載の発明において、前記階層構造における自端末装置の上流にある端末装置が有する前記リングバッファ領域の前記バッファ容量を取得する上流バッファ容量取得手段と、自端末装置が有する前記リングバッファ領域のバッファ容量と、前記上流の端末装置が有する前記リングバッファ領域の前記バッファ容量とを比較する比較手段と、前記比較手段による比較の結果、自端末装置が有する前記リングバッファ領域のバッファ容量が前記上流にある端末装置が有する前記リングバッファ領域のバッファ容量よりも大きい場合に、前記上流の端末装置よりも前記階層構造上における上流に再接続する再接続手段と、を備えたことを特徴とする。
【００２７】
また、請求項１４に記載の発明は、請求項１３に記載の発明において、前記上流バッファ容量取得手段は、前記上流の端末装置が有する前記リングバッファ領域のバッファ容量を所定契機毎に前記接続管理装置へ問い合わせることにより、前記上流の端末装置が有する前記リングバッファ領域のバッファ容量を取得することを特徴とする。
【００２８】
また、請求項１５に記載の発明は、請求項１３に記載の発明において、前記上流バッファ容量取得手段は、前記上流の端末装置が有する前記リングバッファ領域のバッファ容量を所定契機毎に前記上流の端末装置へ問い合わせることにより、前記上流の端末装置が有する前記リングバッファ領域のバッファ容量を取得することを特徴とする。
【００２９】
また、請求項１６に記載の発明は、請求項４〜１５のいずれか１項に記載の発明において、前記階層構造における自端末装置の下流にある端末装置が有する前記リングバッファ領域のバッファ容量を取得する下流バッファ容量取得手段と、自端末装置が有する前記リングバッファ領域のバッファ容量と、前記下流の端末装置が有する前記リングバッファ領域の前記バッファ容量とを比較する比較手段と、前記比較手段による比較の結果、自端末装置が有する前記リングバッファ領域のバッファ容量が前記下流の端末装置が有する前記リングバッファ領域の前記バッファ容量よりも小さい場合に、下流の端末装置或いは前記下流の端末装置よりも前記階層構造上における下流に再接続する再接続手段と、を備えたことを特徴とする。
【００３０】
また、請求項１７に記載の発明は、請求項１６に記載の発明において、前記下流バッファ容量取得手段は、前記下流の端末装置が有する前記リングバッファ領域の前記バッファ容量を所定契機毎に前記接続管理装置へ問い合わせることにより、前記下流の端末装置の前記バッファ容量を取得することを特徴とする。
【００３１】
また、請求項１８に記載の発明は、請求項１６に記載の発明において、前記下流バッファ容量取得手段は、前記下流の端末装置が有する前記リングバッファ領域の前記バッファ容量を所定契機毎に前記下流の端末装置へ問い合わせることにより、前記下流の端末装置が有する前記リングバッファ領域の前記バッファ容量を取得することを特徴とする。
【００３２】
また、請求項１９に記載の発明は、請求項４〜１０のいずれか１項に記載の発明において、前記接続手段は、前記接続先紹介要求に関するチャンネルに対する前記リングバッファ領域のバッファ容量を含む接続先紹介要求を前記接続先紹介要求として送信することを特徴とする。
【００３３】
また、請求項２０に記載の発明は、コンピュータに、請求項４〜１９のいずれか１項に記載の端末装置の各手段として機能させるためのプログラムである。
【発明の効果】
【００３４】
請求項１，３，４，２０に記載の発明によれば、コンテンツデータを一時的に蓄積しておくリングバッファ領域をユーザの視聴状況に応じて動的に設定するようにしたので、セットトップボックスやデジタル家電のような記憶領域が小さい機器を端末装置として用いる場合であっても、リングバッファ領域を適切に設定することができる。たとえば、視聴ユーザによるチャンネルを切替え要求に迅速に対応するための機能（コネクションのプーリング機能）を維持しながら、上流から下流へコンテンツデータを中継するときに生じるパケット損失に対する補完機能や、受信済みのコンテンツデータに対するトリックプレイ機能の実施の度合いを、視聴頻度に応じて適切に設定することが可能になる。つまり、視聴頻度が高いチャンネルに対してはパケット損失の補完機能をより確実に、トリックプレイ機能を広範囲に行い、視聴頻度が低いチャンネルに対してはパケット損失の損失補完機能を適度に、トリックプレイ機能を狭範囲に行うようリングバッファ領域のバッファ容量を調整できる。
【００３５】
また、請求項２に記載の発明によれば、端末装置におけるリングバッファ領域のバッファ容量に応じて、階層構造を構成する端末装置のリングバッファ領域のバッファ容量が階層構造の上流から下流にかけて小さくなるように配信経路を形成することができるので、各端末装置ではストリームの中継過程で生じる損失パケットの補完処理を確実に行えるようになる。
【００３６】
また、請求項５に記載によれば、コンテンツデータの再生回数に応じたバッファ容量のリングバッファ領域を設定するので、再生回数が少ないようなチャンネルのリングバッファ領域を小さくすることができ、リングバッファ領域のバッファ容量を効率的に配分することができる。
【００３７】
また、請求項６に記載によれば、コンテンツデータの再生時間に応じたバッファ容量のリングバッファ領域を設定するので、再生時間が少ないようなチャンネルのリングバッファ領域を小さくすることができ、リングバッファ領域のバッファ容量を効率的に配分することができる。
【００３８】
また、請求項７に記載によれば、所定期間毎に、前記チャンネル毎のコンテンツデータの再生状況に応じたバッファ容量となるようにリングバッファ領域を更新するので、可及的に最新の再生状況に応じたバッファ容量のリングバッファ領域を記憶手段に設定することができる。
【００３９】
また、請求項８に記載の発明によれば、所定数を越えるリングバッファ領域を記憶手段に設定しないようにしているため、記憶手段に無制限にリングバッファ領域が設定されることを抑制することができる。
【００４０】
また、請求項９に記載の発明によれば、記憶手段に設定されたリングバッファ領域のうち、再生されていない期間が最も長いリングバッファ領域を削除し、新たに選択されたチャンネルに対応するリングバッファ領域に設定するので、端末装置のユーザによるコンテンツ再生に影響が少ないリングバッファ領域を削除することができ、端末装置の利用状況に応じた適切な置き換えを行うことができる。
【００４１】
また、請求項１０に記載の発明によれば、リングバッファ領域のバッファ容量を所定期間毎に接続管理装置に通知するようにしているので、接続管理装置は各端末装置のバッファ容量に関する情報を収集することが可能となり、リングバッファ領域のバッファ容量の大小に基づく接続先紹介処理をより的確に行えるようになる。
【００４２】
また、請求項１１に記載の発明によれば、リングバッファ設定手段によってリングバッファ領域を設定したとき、又はリングバッファ設定手段によってリングバッファ領域のバッファ容量を変更したとき、リングバッファ領域のバッファ容量を接続管理装置に通知するようにしているので、接続管理装置は各端末装置のバッファ容量に関する情報を収集することが可能となり、リングバッファ領域のバッファ容量の大小に基づく接続先紹介処理をより的確に行えるようになる。
【００４３】
また、請求項１２に記載の発明によれば、不揮発性記憶装置を用いてリングバッファ領域を設定することができるため、電源が一時的にダウンした場合であっても、リングバッファ領域を電源がダウンする前の状態に戻すことが可能となり、適切な停電（瞬断）対策を行うことができる。
【００４４】
また、請求項１３に記載の発明によれば、自端末装置におけるリングバッファ領域のバッファ容量が上流装置よりも大きいときに、さらに上流に再接続するようにしているので、バッファ容量が大きい端末装置ほど階層構造における上層に配置することが可能となり、損失パケットの補完処理を的確に行うことができる階層構造を構成することが可能となる。
【００４５】
また、請求項１４，１５に記載の発明によれば、上流の端末装置が有するリングバッファ領域のバッファ容量を所定契機毎に取得するようにしていため、定期的に階層構造の位置の変更を行うことが可能となり、バッファ容量が頻繁に変更されるような端末装置が階層構造に配置されている場合であっても、損失パケットの補完処理を的確に行うことができる階層構造を適宜構成することが可能となる。
【００４６】
また、請求項１６に記載の発明によれば、自端末装置におけるリングバッファ領域のバッファ容量が下流装置よりも小さいときに、さらに下流に再接続するようにしているので、バッファ容量が小さい端末装置ほど階層構造における下層に配置することが可能となり、損失パケットの補完処理を的確に行うことができる階層構造を構成することが可能となる。
【００４７】
また、請求項１７，１８に記載の発明によれば、下流の端末装置が有するリングバッファ領域のバッファ容量を所定契機毎に取得するようにしていため、定期的に階層構造の位置の変更を行うことが可能となり、バッファ容量が頻繁に変更されるような端末装置が階層構造に配置されている場合であっても、損失パケットの補完処理を的確に行うことができる階層構造を適宜構成することが可能となる。
【００４８】
また、請求項１９に記載の発明によれば、階層構造に参加するときに、リングバッファ領域のバッファ容量を接続管理装置に通知するようにしているため、通知されたバッファ容量に応じた位置になるように接続先候補を選択することが可能となる。
【発明を実施するための最良の形態】
【００４９】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施形態は、Ｐ２Ｐを用いたツリー構造によるコンテンツ配信システムであって、放送形式でコンテンツ配信装置から配信されるコンテンツデータを、ツリー状階層構造を構成する端末装置がＰ２Ｐを用いて受信する放送形式のコンテンツ配信システムに対して本発明を適用した場合の実施形態である。
【００５０】
（第１実施形態）
［１．コンテンツ配信システムの構成等］
まず、図１を参照して、第１実施形態におけるコンテンツ配信システムＳの概要構成等について説明する。
【００５１】
図１は、第１実施形態に係るコンテンツ配信システムＳの概要構成例を示す図である。図１に示すように、第１実施形態に係るコンテンツ配信システムＳは、放送形式のコンテンツ配信システムであり、複数のコンテンツデータをそれぞれ別個にストリーミング配信するための複数の配信チャンネル（以下、単に「チャンネル」と呼ぶ、）を有している。たとえば、チャンネルｃｈ１は、コンテンツ配信装置１を頂点として複数の端末装置２ａ１，２ａ２，２ｂ１〜２ｂ４，２ｃ１〜２ｃ８が論理的にツリー状階層構造で接続されており、コンテンツ配信装置１からコンテンツデータが当該ツリー構造の上層から下層にかけてストリーミング配信されるように構成される。他のチャンネルにおいても、同様な構成をとる。
【００５２】
また、コンテンツ配信システムＳには、接続管理装置３が設けられており、この接続管理装置３が各チャンネルのツリー状階層構造を管理する。
【００５３】
コンテンツ配信装置１、端末装置２ａ１，２ａ２，２ｂ１〜２ｂ４，２ｃ１〜２ｃ８、接続管理装置３には、各々ＩＰアドレスが割り当てられており、これら装置は、ネットワークの一例としてのインターネット４にルータ１０等を介して接続されている。すなわち、目的の接続先端末装置のＩＰアドレスを宛先ＩＰアドレス、自装置のＩＰアドレスを送信元ＩＰアドレスとしたヘッダを含むパケットを送信することによって通信接続が可能となっている。
【００５４】
なお、接続管理装置３をコンテンツ配信装置１の内部に有することとしてもよい。この場合には接続管理装置３にはＩＰアドレスは割り当てなくてもよく、コンテンツ配信装置１のＩＰアドレスと共用するようにしてもよい。また、コンテンツ配信装置１は、コンテンツ配信システムＳを構成する複数のチャンネル（ここでは、チャンネルｃｈ１〜チャンネルｃｈｎとする。）の全てのチャンネルのコンテンツデータを配信するものとしてもよく、それぞれのチャンネル毎にコンテンツ配信装置１が設けられるようにしてもよい。第１実施形態においては、一つのコンテンツ配信装置１が全てのチャンネルｃｈ１〜ｃｈｎのコンテンツデータをストリーミング配信するものとして説明する。
【００５５】
また、端末装置２ａ１，２ａ２，２ｂ１〜２ｂ４，２ｃ１〜２ｃ８のいずれかの端末装置又はすべての端末装置を示す場合には、便宜上、端末装置２という場合がある。また、第１階層の端末装置２ａ１，２ａ２は便宜上端末装置２ａと、第２階層の端末装置２ｂ１〜２ｂ４は便宜上端末装置２ｂと、第２階層の端末装置２ｃ１〜２ｃ８は便宜上端末装置２ｃという場合がある。
【００５６】
このコンテンツ配信システムＳは、コンテンツ配信装置１を頂点（ここでは、便宜上第０階層とする。）として複数の端末装置２がツリー状階層構造で多層に論理接続されるように接続管理装置３によって管理される。なお、第１実施形態においては、ツリー状階層構造として説明するが、これに限られず、複数の端末装置２がチェーン状の階層構造で多層に論理接続されるようにしてもよい。
【００５７】
接続管理装置３は、コンテンツ配信システムＳに参加していない端末装置２、言い換えればツリー状階層構造を構成していない端末装置２から接続先紹介要求を受信すると、コンテンツ配信システムＳのツリー状階層構造の状態等に基づいて、その端末装置２がストリーミング配信を受けるための上流の装置として接続する接続先候補（コンテンツ配信装置１又は端末装置２）を選択する。そして、接続管理装置３は、このように選択した接続先候補の所在情報（接続先候補のＩＰアドレスやポート番号など）及び通信プロトコル等を端末装置２に通知する。
【００５８】
なお、コンテンツ配信システムＳにおいて、すでに通信プロトコルやポート番号が固定されているときには、端末装置２へのポート番号及び通信プロトコルは通知しなくてもよい。ここで、通信プロトコルとして、ＭＭＳ（Microsoft Media Server）プロトコル、ＲＴＳＰ(Real Time Streaming Protocol)等が用いられる。また、コンテンツデータの形式として、ＡＳＦ（Advanced Streaming Format）、ＷＭＡ（Windows(登録商標) Media Audio）、ＷＭＶ（Windows(登録商標) Media Video）等が用いられる。
【００５９】
端末装置２は、接続管理装置３から接続先候補の所在情報を受信すると、その所在情報を宛先として接続先候補に対し、コンテンツ配信システムＳへの参加（接続）を要求し、これにより端末装置２がコンテンツ配信システムＳにおける階層構造へ組み込まれる。すなわち、端末装置２はコンテンツ配信装置１から配信されるコンテンツデータを受信可能となる。なお、コンテンツ配信システムＳへの参加は、コンテンツ配信装置１の各チャンネル毎に行われるものであり、端末装置２は各チャンネル毎に参加を行い、参加を行ったチャンネルのコンテンツデータを受信することになる。ここで、チャンネルへの参加とは、チャンネルに対応するコンテンツ配信装置１を頂点とする階層構造に参加することを意味し、このようにチャンネルに参加することによって、参加を行ったチャンネルのコンテンツデータを階層構造の上流の装置から受信することができる。また、「上流の装置」とは、階層構造において自端末装置２に接続されている上流の装置（端末装置２或いはコンテンツ配信装置１）を意味する。たとえば、図１における端末装置２ｂ２における上流の端末装置とは、端末装置２ａ１を指す。
【００６０】
コンテンツ配信システムＳは、このように端末装置２が次々と各チャンネルに参加することによって、各チャンネル毎にコンテンツ配信装置１を頂点として複数の端末装置２がツリー状階層構造で多層に論理接続される。そして、コンテンツ配信装置１からチャンネル毎に配信されるコンテンツデータは、端末装置２の中継機能により順次下層の端末装置２へ中継されて複数の端末装置２にストリーミング配信される。
【００６１】
すなわち、図１に示すように、チャンネルｃｈ１においては、コンテンツ配信装置１から端末装置２ａ１，２ａ２（第1層の端末装置）へコンテンツデータが送信され、端末装置２ａ１，２ａ２はコンテンツデータを受信すると、下層の端末装置２ｂ１〜２ｂ４（第２階層の端末装置）へ受信したコンテンツデータを順次中継する。端末装置２ｂ１〜２ｂ４はコンテンツデータを受信すると、下層の端末装置２ｃ１〜２ｃ８（第３階層の端末装置）へ受信したコンテンツデータを順次中継する。
【００６２】
なお、端末装置２は、組み込まれた階層構造の位置の上流の端末装置２又はコンテンツ配信装置１の所在情報と、その位置の下流の端末装置２の所在情報とを後述の第１記憶部２０２に記憶しており、このように記憶した所在情報に基づいて、コンテンツデータの中継を行なうようにしている。また、配信されるコンテンツデータは、複数のパケットに分割されて順次配信されるものであり、このようにパケットに分割されて配信されるデータをコンテンツパケットという。
【００６３】
このように端末装置２へ配信されるコンテンツデータは、チャンネル毎にコンテンツ配信システムＳに参加しているすべての端末装置２へ配信される。配信されるコンテンツデータには、音楽や映画などコンテンツのデータのほか、再生時刻情報（以下、「再生時刻データ」という。）が含まれている。そして、コンテンツデータを受信した複数の端末装置２は、順次送信されるコンテンツデータの再生を再生時刻データに基づいて行なう。このようにして、コンテンツ配信システムＳは、チャンネル毎にコンテンツ配信装置１から送信されたコンテンツデータが複数の端末装置２にストリーミング配信され、複数の端末装置２において同時刻にコンテンツを再生することができる。すなわち、コンテンツ配信システムＳは、Ｐ２Ｐを用いて複数の端末装置２への放送形式のストリーミング配信を実現している。
【００６４】
上述のように第１実施形態におけるコンテンツ配信システムＳは、複数のコンテンツデータをそれぞれストリーミング配信する複数のチャンネルを有している。端末装置２は、ユーザにより所望のチャンネルが選択されると、選択したチャンネルにおける自端末装置２の接続先装置（以下、「接続先候補」とする。）を接続管理装置３から取得する。そして、端末装置２は、その接続先候補に接続することによって所望のチャンネルの階層構造に参加し、この階層構造における自端末装置２の上流の装置からコンテンツデータを受信し、再生する。
【００６５】
次にこのように端末装置２が、あるチャンネルの階層構造に参加した後、この端末装置２のユーザが視聴（再生）するチャンネルを切替える場合について説明する。ユーザがチャンネルを切替える選択を行った場合、従来のコンテンツ配信システムＳでは、端末装置２は参加しているチャンネルの階層構造から脱退し、切替えの選択を行ったチャンネルの階層構造への参加を上述の手順で行っていた。
【００６６】
この場合参加しているあるチャンネルの階層構造から別のチャンネル階層構造への参加する際には、接続管理装置３から接続先候補の情報を受け取るための処理、及びその接続先候補へ接続するための処理等の一連の接続処理を行う必要がある。このため、従来のコンテンツ配信システムＳでは、切替え先のチャンネルのコンテンツデータを受信して再生するまでの時間、コンテンツデータが再生されない状態が発生し、端末装置２のユーザの操作性を低下させていた。
【００６７】
そこで、第１実施形態における端末装置２においては、複数のチャンネルの階層構造への参加を継続して行うことにより、端末装置２においてチャンネルが切替えられた場合であっても、コンテンツデータの再生されない期間を発生させないようにしている。すなわち、端末装置２は、複数のチャンネルにそれぞれ参加している他の端末装置２との接続（セッション）を確立し、それらの接続を継続するのである。
【００６８】
端末装置２には、ストリーミングで配信される複数のチャンネルのコンテンツデータを受信し、再生或いは下流の端末装置２へ中継することができるように、それぞれのチャンネルのコンテンツデータを一時的に蓄積するリングバッファ領域をＲＡＭなどの記憶装置に設定するようにしている。ここで、「下流の端末装置」とは、階層構造における自端末装置２に接続されている下流の端末装置を意味する。たとえば、図１における端末装置２ｂ２における下流の端末装置とは、端末装置２ｃ３，２ｃ４を指す。
【００６９】
ところで、同時に接続するチャンネル、すなわち同時に参加するチャンネルが多くなってくると、それに伴って用意すべきリングバッファ領域の数が増え、必要となる記憶領域が増大してしまうことになる。セットトップボックスやデジタル家電のように記憶領域が少ない端末装置においては、このように複数のリングバッファ領域を設定するのは負担が大きく、限界がある。
【００７０】
そこで、第１実施形態における端末装置２においては、再生のために選択されたチャンネルに対応するリングバッファ領域以外のリングバッファ領域のバッファ容量（以下、「リングバッファ容量」と呼ぶことがある。）を小さくしている。すなわち、複数のリングバッファ領域のうち、再生状態でないチャンネルに対応するリングバッファ領域のバッファ容量を、再生状態のチャンネルに対応するリングバッファ領域のバッファ容量よりも小さくするのである。
【００７１】
ここで、端末装置２におけるリングバッファ領域について説明する。図２は、第１実施形態の端末装置２におけるリングバッファ領域を用いてコンテンツデータを受信し、再生或いは下流の端末装置２へ中継する構成を概念的に表した図である。
【００７２】
端末装置２は、所望のチャンネルの階層構造に参加したときに、この階層構造の上流の装置からストリーミングで送信されるコンテンツパケットをストリーム受信器によって順次受信し、受信したコンテンツパケットに含まれるコンテンツデータをリングバッファ領域に一時的に蓄積する。リングバッファ領域に一時的に蓄積されたコンテンツデータは、その再生時刻になると、端末装置２の再生手段であるプレイヤによってリングバッファ領域から取り出されて再生される。
【００７３】
ここで、図２に示すように、リングバッファ領域には時計回りの方向で新しいコンテンツデータが順次蓄積され、最も古いコンテンツデータが新しいコンテンツデータに書き換わるように構成されている。すなわち、ストリーム受信器によってリングバッファ領域に書き込まれるポイントをＡとすると、このポイントＡが時計回りに移動していくのである。
【００７４】
なお、図２におけるリングバッファ領域は概念的に示したものであり、実際にリング形状をしているのではなく、端末装置２の制御手段が、記憶領域における所定アドレス領域に蓄積した最も古いコンテンツデータを順次新しいコンテンツデータに書き換えることにより実現するものである。
【００７５】
また、コンテンツデータには上述のように再生時刻情報が格納されており、プレイヤはリングバッファ領域に蓄積したコンテンツデータのうち、現時刻と合致する再生時刻データを有するコンテンツデータ（ここでは、図２中Ｂのポイントのコンテンツデータ）をリングバッファ領域から取り出して順次再生する。
【００７６】
このようなリングバッファ領域によって、再生時刻前のコンテンツデータを蓄積しながら、再生時刻までにインターネット４の状態に依存して間欠的に発生するコンテンツパケットの損失に対処する。言い換えれば、コンテンツ配信装置１は、パケットの損失補完処理を行えるだけのマージンを確保しながらコンテンツデータを配信している。
【００７７】
ここで、階層構造の下流に他の端末装置２が２台接続されている場合、図２に示すように、端末装置２に２つのストリーム送信器が設けられる。このストリーム送信器は、リングバッファ領域に格納されているコンテンツデータを所定量毎にコンテンツパケットのデータ領域に格納してコンテンツパケットを生成し、それぞれ下流に接続された他の端末装置２へこのコンテンツパケットを順次送信する。
【００７８】
なお、第１実施形態における端末装置２では、上流の装置から送信されるコンテンツパケットに含まれるコンテンツデータを取り出してリングバッファ領域に蓄積するようにしているが、コンテンツパケットをそのままリングバッファ領域に蓄積するようにしてもよい。いずれにせよ、ストリーム送信器は、ストリーム受信器によって受信したコンテンツパケットの送信先及び送信元の情報を置き換えたコンテンツパケットを下流の端末装置２に送信することになる。
【００７９】
ところで、端末装置２のユーザは、コンテンツ配信装置１からストリーミング配信されているコンテンツデータを視聴しているとき、再生時間を経過したコンテンツデータについて任意の位置から再生したいと考える場合がある。いわゆるトリックプレイである。図２に示すリングバッファ領域の例では反時計回りにポイントＢからポイントＣにかけてのバッファ領域Ｘについてトリックプレイが可能である。
【００８０】
以上に示すように、端末装置２は、コンテンツデータを一時的に蓄積するリングバッファ領域を設けることによって、コンテンツパケットをプリバッファリングしながらパケット損失に対する補完を行い、インターネット４の経路上で発生するパケット損失の影響を回避するようにしている。
【００８１】
また、リングバッファ領域のバッファ容量を上記プリバッファリングのためのバッファ容量よりも大きくすることによって、端末装置２のユーザの操作によって、再生時刻を経過したコンテンツデータに対してトリックプレイを行えるようになる。
【００８２】
第１実施形態における端末装置２では、複数のチャンネルのコンテンツデータをそれぞれ一時的に蓄積する複数のリングバッファ領域を記憶領域に設定することができるように構成されており、さらに、これらのリングバッファ領域のバッファ容量を再生状況に応じたバッファ容量としている。
【００８３】
図３は、リングバッファ領域のバッファ容量の分配を説明するための図であり、チャンネルｃｈ１〜ｃｈ３の３つのチャンネルのコンテンツデータをそれぞれ第１〜第３リングバッファ領域で受信している例を示しているものである。この例では、チャンネルｃｈ１の再生頻度（視聴頻度）が高く、チャンネルｃｈ２，３の再生頻度（視聴頻度）が低いため、第２，第３リングバッファ領域のバッファ容量を第１リングバッファ領域のバッファ容量に比べて小さくしている状態が示されている。
【００８４】
ここで、再生状況に応じたバッファ容量とするための条件として、上述のように再生頻度がある。この再生頻度には、各チャンネルにおける単位時間当りのコンテンツデータの再生回数や再生時間などがある。
【００８５】
再生回数が少ないほど、或いは再生時間が短いほどリングバッファ領域のバッファ容量を小さくすることにより、あまり使用されない（すなわち、再生回数や再生時間が少ない）チャンネルのリングバッファ領域のバッファ容量を小さくすることができる。
【００８６】
また、再生状況を定期的に或いは所定契機で検出して、リングバッファ領域のバッファ容量を更新するようにしており、最新の再生状況に応じたリングバッファ領域のバッファ容量の分配を行うことができる。
【００８７】
このように第１実施形態における端末装置２においては、リングバッファ領域のバッファ容量を再生状況に応じたバッファ容量とすることで、リングバッファ領域を設定するために必要な記憶領域を可及的に小さくしている、これによりリングバッファ領域を設定することができる記憶領域の容量が小さな端末装置において記憶領域を効率的に使用することが可能となる。
【００８８】
すなわち、複数のリングバッファ領域を記憶領域に設定し複数のチャンネルとの接続を保つことによってユーザによるチャンネル切替え時の接続処理を不要としてコンテンツデータ再生の空白期間をなくしつつ、リングバッファ領域による記憶領域の占有率を総体的に抑制することができるのである。
【００８９】
ところで、上述したように、同時に接続するチャンネルが多くなってくると、それに伴って用意すべきリングバッファ領域の数が増え、必要となる記憶領域が増大してしまう。
【００９０】
そこで、第１実施形態における端末装置２においては、上述のように再生状態と非再生状態とでリングバッファ領域のバッファ容量を変えることに加え、記憶領域に設定するリングバッファ領域の数を制限するようにしている。たとえば、同時に接続することができるチャンネルを１０チャンネルと定めるのである。
【００９１】
このように同時に接続するチャンネル数に制限を設けることで、無制限にリングバッファ領域が増大するのを防止している。
【００９２】
このように構成された端末装置２においては、上限数のチャンネルに接続している状態でさらに新規チャンネルに接続すべき状態が発生すると、非再生状態にあるチャンネルであってかつ所定条件を満たすチャンネルとの接続を切断してリングバッファ領域を記憶領域から取り除く。そして、端末装置２は、新規チャンネルのリングバッファ領域を記憶領域に設定すると共に、そのチャンネルに接続する。たとえば、新規チャンネルが選択されると、端末装置２は、非再生状態の継続時間が最も長いチャンネルに対応するリングバッファ領域を削除して新たに選択されたチャンネルに対応するリングバッファ領域を確保するのである。
【００９３】
また、第１実施形態の端末装置２では、接続を行うチャンネルは、ユーザによって選択されたチャンネルとする。すなわち、端末装置２のユーザが後述のチャンネル選択手段としてリモコン２０５等を操作することによって、端末装置２は、順次選択したチャンネルに接続していき、接続したチャンネルごとにリングバッファ領域を記憶手段に設定していくようにしている。
【００９４】
図４には、チャンネルｃｈ１に接続された端末装置２ｃ１において、ユーザのリモコン等の操作によりチャンネルｃｈ１からチャンネルｃｈ２への切替えが指示され、端末装置２が、チャンネルｃｈ１の接続を継続しつつ、チャンネルｃｈ２への接続する様子が示されている。なお、チャンネルｃｈ２への接続は、接続管理装置３から通知される接続先候補に対して行う。図４に示す例では、接続先候補として、接続管理装置３から端末装置２ｄ１が通知されている。
【００９５】
ここで、端末装置２ｃ１が端末装置２ｅ１として端末装置２ｄ１に接続する前後の端末装置２ｃ１のリングバッファ領域の様子を図５（ａ），（ｂ）に示す。この図で示すように、端末装置２にはチャンネルｃｈ１のリングバッファ領域に加え、チャンネルｃｈ２のリングバッファ領域が記憶領域に設定されるが、各リングバッファ領域のバッファ容量は、チャンネルの再生状況に応じて設定される。
【００９６】
また、ユーザによる予めの選択によって、端末装置２の電源ＯＮ時に設定されたチャンネルに同時に接続するようにすることもできる。以下、端末装置２において、このように予め選択された複数のチャンネルに接続する動作について説明する。
【００９７】
まず、端末装置２のユーザは、後述のリモコン２０５の操作によって、電源ＯＮ時に接続するチャンネルを選択する。このように選択されたチャンネルの情報（たとえば、チャンネル番号）は、端末装置２の記憶手段に記憶される。そして、端末装置２の電源がＯＮになると、端末装置２のプログラムの実行により、端末装置２は、記憶手段に記憶されたチャンネルの情報が取り出されて、これらのチャンネルに接続していく。
【００９８】
このように、ユーザによって予め選択されたチャンネルへの接続が電源ＯＮ時に行われるので、コンテンツデータが再生されない期間が発生せず、端末装置２のユーザは快適にコンテンツデータの視聴を行うことができる。
【００９９】
また、ユーザによる予めの設定に代えて、或いはユーザの予めの設定に加えて、端末装置２によって電源ＯＮ時に接続するチャンネルを選択するように構成することもできる。
【０１００】
たとえば、端末装置２の制御手段によって、ユーザが選択したチャンネルの再生時間や再生頻度などの再生履歴を検出し、この再生履歴を自端末装置２の記憶領域に記憶する。そして、端末装置２の電源ＯＮ時に、この再生履歴に基づいて、ユーザが視聴する可能性の高いチャンネルを制御手段が選択し、端末装置２は、このように選択したチャンネルに接続していくのである。
【０１０１】
このように、電源ＯＮ時に接続しにいくチャンネルの選択を、再生履歴に基づいて行うことによって、ユーザによる予めの設定作業を軽減することができる。すなわち、チャンネル選択手段としてリモコン２０５ではなく、端末装置２に予め格納したプログラムとするのである。このように電源ＯＮ時に接続しにいくチャンネルは、言い換えれば、初期設定で予め決められたチャンネルとも言うことができる。
【０１０２】
ところで、端末装置２がプリバッファリングしなければならないコンテンツデータのデータ量は、端末装置２が階層構造のどの位置に接続されるかによって変わってくる。
【０１０３】
すなわち、端末装置２においてコンテンツパケットの中継処理のための配信経路、すなわち階層構造におけるコンテンツパケットのインターネット４上の配信経路において発生するコンテンツパケットの損失の補完処理を確実に行えるようにするために、上層の端末装置２ほどプリバッファリングの量を多くしなければならない。
【０１０４】
たとえば、図１に示すように、階層構造が４層構造（コンテンツ配信装置１は第０階層とする）により構成されているとき、コンテンツ配信装置１から第１階層の端末装置２ａまでの第１経路、第１階層の端末装置２ａから第２階層の端末装置２ｂまでの第２経路、第２階層の端末装置２ｂから第３階層の端末装置２ｃまでの第３経路において、それぞれコンテンツパケットの損失の可能性があるが、この際、下流側の端末装置２で補完される損失パケットは上流側の端末装置２が保有している必要があるため、上流側の端末装置２ほどプリバッファリング量が多くなるように配信経路を形成する。
【０１０５】
ここで、図６を参照して、各階層における装置のプリバッファリングについて説明する。
【０１０６】
図６に示すように、端末装置２のリングバッファ領域においては、再送処理による送信遅延を考慮して、送受信ポイントと再生ポイントとの間にマージン（以下、「再生マージン」とする。）が必要である。すなわち、コンテンツ配信システムＳは、１トラック当りのストリーム中継処理で発生する可能性がある再送時間を考慮した再生マージンをもってコンテンツデータの配信をしなければならない。この再生マージンとは、言い換えれば、コンテンツ配信装置１による１トラックのコンテンツ配信開始から配信終了までに消費してもよいコンテンツパケット損失に対する回復処理時間である。
【０１０７】
図６（ａ）は、あるチャンネルの階層構造において、再送処理が発生しなかったときの端末装置２のリングバッファ領域の様子を示すものである。第１実施形態においては、１階層当たりの端末装置２の再生マージンが３パケット分に設定されている。この図の例では、未だ再送処理が発生していないため、最下層の端末装置２ｃでは再生ポイントと受信ポイントとに９パケット分の再生マージンが存在している。
【０１０８】
一方、図６（ｂ）に示すように、第１階層目の端末装置２ａで２パケット分の再送処理が、第２階層目の端末装置２ｂで３パケット分の再送制御が発生したとき、最下層の端末装置２ｃでは再生マージンが４パケット分まで縮減する。すなわち、コンテンツ配信装置１から最下層の端末装置２ｃまでの経路で行なわれた累積再送時間分の再生マージンが最下層の端末装置２ｃまでに失われることを表している。
【０１０９】
したがって、コンテンツパケットに格納された時刻情報によって、全ての端末装置２において同時刻にコンテンツデータの再生を行わせるためには、コンテンツ配信装置１から最下層の端末装置２ｃまでの経路において、コンテンツデータ１トラックのストリーム中継処理で発生する可能性がある再送時間をもった再生マージンが必要となり、この再生マージンを持つためのリングバッファ領域が必要となる。そして、上層の端末装置２ほどプリバッファリングの量を多くする必要がある。
【０１１０】
そこで、第１実施形態における接続管理装置３は、各チャンネル毎に、そのチャンネルの階層構造を構成する端末装置２のリングバッファ領域のバッファ容量の情報を接続状態情報記憶手段に記憶しておき、階層構造を構成する端末装置２のリングバッファ領域のバッファ容量が階層構造の上流から下流にかけて小さくなるように各チャンネルの階層構造を管理するようにしている。
【０１１１】
ここで、端末装置２における所定のチャンネル（ここでは、チャンネルｃｈ１とする。）への参加動作について図７を参照して説明する。図７に示すように、チャンネルｃｈ１に接続している各端末装置２は、それぞれ接続管理装置３に対して定期的にチャンネルｃｈ１に対応するリングバッファ領域のバッファ容量を定期的に通知する。
【０１１２】
そして、端末装置２ｘがチャンネルｃｈ１に参加するために、接続管理装置３に接続先候補の通知を依頼する。このとき端末装置２ｘは、チャンネルｃｈ１に対応するリングバッファ領域のバッファ容量（ここでは、２０ＭＢとする。）も合わせて接続管理装置３へ通知する。
【０１１３】
接続管理装置３は、端末装置２ｘから接続先候補の通知要求及びバッファ容量を受信すると、参加要求対象のチャンネルｃｈ１の階層構造を構成する端末装置２のうち、端末装置２ｘのバッファ容量よりも大きいリングバッファ領域のバッファ容量（ここでは、３０ＭＢとする。）を有する端末装置２ｂ４を接続先候補として選択して、参加要求を行った端末装置２ｘへ通知する。なお、端末装置２ａ２のリングバッファ領域のバッファ容量も４０ＭＢと大きいが、接続管理装置３が選択する接続先候補は、端末装置２ｘのリングバッファ領域のバッファ容量に一番近いバッファ容量を持つ端末装置、すなわち端末装置２ｂ４を選択することになる。
【０１１４】
接続管理装置３から接続先候補の通知を受けた端末装置２は、通知された接続先候補である端末装置２ｂ４への接続を行い、この端末装置２ｂ４からチャンネルｃｈ１のコンテンツデータを受信して再生する。
【０１１５】
他方、チャンネルの階層構造を構成する端末装置２では、接続しているチャンネルの階層構造において、自端末装置２の上流や下流にある端末装置２が有するリングバッファ領域のバッファ容量を取得し、自端末装置２のリングバッファ領域のバッファ容量と比較して、その階層構造における適切な位置に再接続を行うようにしている。
【０１１６】
ここで、端末装置２における再接続動作について図８を参照して説明する。図８に示すように、チャンネルｃｈ１の階層構造に接続している端末装置２ａ２，２ｂ４，２ｃ８におけるそれぞれのリングバッファ領域のバッファ容量が４０ＭＢ，１０ＭＢ，２０ＭＢであるとする。
【０１１７】
チャンネルｃｈ１の階層構造に接続している端末装置２ｂ４は、自端末装置２の上流の端末装置２ａ２や下流の端末装置２ｃ８に対して、これらの端末装置２ａ２，２ｃ８のリングバッファ領域のバッファ容量を通知するように要求する。
【０１１８】
この要求に対して端末装置２ａ２は、自端末装置２ａ２のリングバッファ領域のバッファ容量が４０ＭＢであることを端末装置２ｂ４に通知する。端末装置２ｃ８も同様に、自端末装置２ｃ８のリングバッファ領域のバッファ容量が２０ＭＢであるであることを端末装置２ｂ４に通知する。
【０１１９】
端末装置２ｂ４は、自己のリングバッファ領域のバッファ容量が下流の端末装置２ｃ８よりも低いため、接続管理装置３に対して接続先候補の通知を要求する。接続管理装置３は上述のように、階層構造を構成する端末装置のリングバッファ領域のバッファ容量が階層構造の上流から下流にかけて小さくなるような位置の接続先候補（ここでは、端末装置２ｃ５とする）を選択し、端末装置２ｂ４に通知する。端末装置２ｂ４は、接続管理装置３から通知を受けた接続先候補に接続をする。
【０１２０】
このように、端末装置２は、自端末装置２の上流や下流にある端末装置２が有するリングバッファ領域のバッファ容量を取得し、自端末装置２のリングバッファ領域のバッファ容量と比較し、その階層構造における適切な位置に再接続を行うことで、コンテンツパケットの損失の補完処理を確実に行える。
【０１２１】
以下、コンテンツ配信システムＳを構成するコンテンツ配信装置１、端末装置２及び接続管理装置３についてそれらの具体的な構成及び動作について図面を参照して説明する。
【０１２２】
［２．コンテンツ配信装置１の構成等の説明］
次に、図９を参照して、コンテンツ配信装置１の構成及び動作について説明する。
【０１２３】
図９は、第１実施形態におけるコンテンツ配信装置１の概略構成例を示す図である。コンテンツ配信装置１は、一般のサーバコンピュータを適用可能であり、図９に示すように、ＣＰＵ（Central  Processing  Unit）１０１と、各種プログラム等を記憶（格納）する書き換え可能な主記憶装置としての第１記憶部１０２と、各種データ等を記憶するＨＤＤ（Hard  Disc  Drive）等から構成された第２記憶部１０３と、インターネット４を介して端末装置２や接続管理装置３との間で通信を行うネットワークインターフェイス１０４と、所定の情報を入力可能なキーボード１０５やマウス１０６等の入力手段を制御する周辺機器制御チップ１０７と、ＣＰＵ１０１からイメージデータを受け取り、内部のビデオメモリ（図示せず）に書き込むと共にこのビデオメモリに書き込んだデータを後述のディスプレイ１０９に表示するビデオチップ１０８と、ビデオチップ１０８から送信される信号に応じた表示を行うディスプレイ１０９と、ＦＭ音源(Frequency Modulation)やWave Table音源などの音源を有する音源チップ１１０と、音源チップ１１０から出力されるオーディオ信号を音波に変換する内蔵スピーカ１１１とを備えて構成され、これらの各種構成要素はシステムバス１１２を介して相互に接続されている。
【０１２４】
なお、ネットワークインターフェイス１０４は、ルータ１０aを介してインターネット４に接続される。
【０１２５】
なお、第１実施形態においては、ＣＰＵ１０１と第１記憶部１０２とで制御部１１３を構成している。また、コンテンツ配信装置１には、上述のようにディスプレイ（液晶ディスプレイ等）１０９等が接続されるようになっており、例えば、コンテンツ配信システムＳを運用する放送運営者は、このディスプレイ１０９を見ながら入力手段から所定の情報を入力することができる。
【０１２６】
（第１記憶部１０２について）
また、第１記憶部１０２には、コンテンツ配信装置１のコンピュータとしての基本的な機能を提供するためのＯＳ（オペレーティングシステム）プログラム１２０と、第２記憶部１０３に記憶されたコンテンツデータを取り出して端末装置２へストリーミング配信するためのストリーム制御プログラム１２１と、チャンネル毎に第１階層の端末装置２ａの所在情報（ＩＰアドレスやポート番号など）の管理等を行なうためのトポロジー管理プログラム１２２と、ディスプレイ１０９を制御するための画面制御プログラム１２３と、エンコードされたコンテンツデータをデコードしたり、放送用コンテンツデータベース１１４のコンテンツデータをデコードするためのプレイヤプログラム１２４等を記憶しており、これらはＣＰＵ１０１によって読み出され、ＣＰＵ１０１によってこれらのプログラムに従った機能が実行される。
【０１２７】
また、第１記憶部１０２には、リングバッファ設定可能領域１２５が設けられている。このリングバッファ設定可能領域１２５には、各チャンネル毎のリングバッファ領域を設定することができる。ここで、チャンネルｃｈ１〜ｃｈｎにそれぞれ対応するリングバッファ領域をリングバッファ領域１２５ａ〜１２５ｎ（図示せず）とし、リングバッファ設定可能領域１２５には、配信されるチャンネルに対応するリングバッファ領域が設定される。
【０１２８】
ここで、ＯＳプログラム１２０は、ＣＰＵ１０１によって読み出されて実行されることにより、キーボード１０５やマウス１０６入出力に関する機能や、第１記憶部１０２や第２記憶部１０３どのメモリ管理などのコンテンツ配信装置１であるコンピュータの基本的な機能を実行可能にするものである。そして、このＯＳプログラム１２０がＣＰＵ１０１によって実行された状態で、上述のストリーム制御プログラム１２１と、トポロジー管理プログラム１２２と、画面制御プログラム１２３と、プレイヤプログラム１２４とが第１記憶部１０２から読み出されて実行される。
【０１２９】
なお、ＯＳプログラム１２０、ストリーム制御プログラム１２１、トポロジー管理プログラム１２２、画面制御プログラム１２３、プレイヤプログラム１２４等は、例えば、インターネット４に接続されたサーバ等から第１記憶部１０２にダウンロードされるようにしてもよく、又ＣＤ−ＲＯＭ等の記録媒体に記録されてから当該記録媒体のドライブを介して、第１記憶部１０２に読み込まれるようにしてもよい。
【０１３０】
（制御部１１３について）
制御部１１３は、上述のようにＣＰＵ１０１と第１記憶部１０２とから構成され、ＣＰＵ１０１が第１記憶部１０２に記憶された各種プログラム１２０〜１２４を読み出して実行することにより、コンテンツ配信装置１全体を統括制御し、かつ、後述する配信手段、トポロジー管理手段、表示制御手段、再生手段等として機能するようになっている。なお、ＣＰＵ１０１がストリーム制御プログラム１２１を実行することによって、配信手段等として、またＣＰＵ１０１がトポロジー管理プログラム１２２を実行することによって、トポロジー管理手段として、また、ＣＰＵ１０１が画面制御プログラム１２３を実行することによって、表示制御手段等として、ＣＰＵ１０１がプレイヤプログラム１２４を実行することによって、再生手段としてそれぞれ機能するようになっている。
【０１３１】
（配信手段について）
配信手段は、キーボード１０５などの入力手段によって、チャンネル毎に指定されたコンテンツデータを放送用コンテンツデータベース１１４から取り出し、ネットワークインターフェイス１０４を介して、各チャンネルの第１階層の端末装置２ａ等にストリーミング配信する。
【０１３２】
この配信手段による端末装置２ａ等へのストリーミング配信は、以下の手順で実行される。
【０１３３】
配信手段は、各チャンネル毎に選択されたコンテンツ或いは予め設定されたコンテンツに対応するコンテンツデータを放送用コンテンツデータベース１１４から取り出す。
【０１３４】
次に、配信手段は、放送用コンテンツデータベース１１４から取り出したコンテンツデータを、ストリーミング配信用のデータ形式、たとえばＡＳＦ、ＷＭＡ、ＷＭＶ等のデータ形式にエンコードする。
【０１３５】
その後、配信手段は、各チャンネルの第１階層の端末装置２ａ等に対して、それぞれ対応するコンテンツデータを所定容量毎に分割しながらコンテンツパケットに格納し、ネットワークインターフェイス１０４を介して、このコンテンツパケットへ送信する。
【０１３６】
（トポロジー管理手段）
コンテンツ配信装置１は、異なるコンテンツを同時にストリーミング配信するために複数のチャンネルを有しており（コンテンツ配信装置１が複数存在して、各コンテンツ配信装置１に１つのチャンネルを割り振ってもよい）、トポロジー管理手段は、これらのチャンネル毎に構成されるツリー状階層構造の第１階層に参加している端末装置２の所在情報（ＩＰアドレスやポート番号など）を管理している。また、トポロジー管理手段は、複数のチャンネルにそれぞれ対応する配信用ＩＰアドレスを管理している。そして、上述の配信手段はトポロジー管理手段が管理する端末装置２のＩＰアドレスを宛先アドレスとし、配信用ＩＰアドレスを送信元として端末装置２へコンテンツデータの配信を行なう。
【０１３７】
第１実施形態においては、複数のチャンネルのＩＰアドレスを異ならせることとしたが、同一ＩＰアドレスを用いてポート番号を異ならせることによって複数のチャンネルを構成するようにしてもよい。この場合、ポート番号毎にツリー状の配信構造を構成することになる。
【０１３８】
（表示制御手段について）
表示制御手段は、ビデオチップ１０８及びディスプレイ１０９を制御して、コンテンツデータや各種情報を表示する機能を有している。すなわち、表示制御手段は、ディスプレイ１０９にどのようにコンテンツの映像や各種情報を表示するかを制御することができる。
【０１３９】
（再生手段について）
再生手段は、放送用コンテンツデータベース１１４に記憶されているコンテンツデータをディスプレイ１０９に表示したり、スピーカ１１１から出力したりする機能を有している。
【０１４０】
［３．端末装置２の構成等の説明］
次に、図１０を参照して、端末装置２の構成及び動作について説明する。
【０１４１】
図１０は、第１実施形態における端末装置２の概略構成例を示す図である。端末装置２は、一般のパーソナルコンピュータあるいは専用端末を適用可能であり、図１０に示すように、ＣＰＵ（Central  Processing  Unit）２０１と、各種プログラム等を記憶（格納）する書き換え可能な主記憶装置としての第１記憶部２０２と、各種データ等を記憶するＨＤＤ（Hard  Disc  Drive）等から構成された第２記憶部２０３と、インターネット４を介してコンテンツ配信装置１や接続管理装置３との間で通信を行うネットワークインターフェイス２０４と、ユーザが端末装置２を遠隔操作するために所定の赤外線信号を送信及び受信するリモコン２０５と、このリモコン２０５と赤外線により通信を行なうための赤外線ポート２０６と、赤外線ポート２０６を制御する周辺機器制御チップ２０７と、ＣＰＵ２０１からイメージデータを受け取り、内部のビデオメモリ（図示せず）に書き込むと共にこのビデオメモリに書き込んだデータを後述の内蔵ディスプレイ２０９に表示するビデオチップ２０８と、ビデオチップ２０８から送信される信号に応じた表示を行う内蔵ディスプレイ２０９と、ＦＭ音源(Frequency Modulation)やWave Table音源などの音源を有する音源チップ２１０と、音源チップ２１０から出力されるオーディオ信号を音波に変換する内蔵スピーカ２１１とを備えて構成され、これらの各種構成要素はシステムバス２１２を介して相互に接続されている。
【０１４２】
なお、第１実施形態においては、ＣＰＵ２０１と第１記憶部２０２とで制御部２１３を構成している。また、ネットワークインターフェイス２０４は、ルータ１０ｂを介して、インターネット４に接続されている。
【０１４３】
ここで、リモコン２０５は、コンテンツ配信システムＳのチャンネルを選択するための選択手段としてチャンネル選択ボタン（図示せず）を有しており、端末装置２のユーザはこのチャンネル選択ボタンによって所望のチャンネルに接続することができる。
【０１４４】
（第１記憶部２０２について）
また、第１記憶部２０２には、端末装置２のコンピュータとしての基本的な機能を提供するためのＯＳのプログラム２２０と、コンテンツ配信装置１から直接又は他の端末装置２に中継されてストリーミング配信されるコンテンツデータをストリーム受信及び下流の端末装置２へストリーミング送信するためのストリーム制御プログラム２２１と、接続された上流の装置（或いはコンテンツ配信装置１）の所在情報（ＩＰアドレスやポート番号）とツリー接続された下流の端末装置２の所在情報の管理等を行なうためのトポロジー制御プログラム２２２と、ディスプレイ２０９を制御するための画面制御プログラム２２３と、上流の装置からストリーミング受信したコンテンツデータを再生するためのプレイヤ（再生）プログラム２２４と、複数のチャンネルとの接続を管理する接続プールプログラム２２５等を記憶しており、これらはＣＰＵ２０１によって読み出され、ＣＰＵ２０１によってこれらのプログラムに従った機能が実行される。
【０１４５】
また、第１記憶部２０２には、チャンネル毎に配信されるコンテンツデータを一時的に蓄積するリングバッファ領域を設定可能なリングバッファ設定可能領域２２６が設けられている。このリングバッファ設定可能領域２２６には、各チャンネル毎のリングバッファ領域を設定することができる。ここで、チャンネルｃｈ１〜ｃｈｎにそれぞれ対応するリングバッファ領域をリングバッファ領域２２６ａ〜２２６ｎとし、リングバッファ設定可能領域２２６には、接続されるチャンネルに対応するリングバッファ領域が設定される。ここで、第１記憶部２０２は、不揮発性記憶装置と揮発性記憶装置とから構成され、リングバッファ設定可能領域２２６は不揮発性記憶装置とし、一方、各種プログラム２２０〜２２５が格納される領域は揮発性記憶装置としている。
【０１４６】
ここで、ＯＳプログラム２２０は、ＣＰＵ２０１によって読み出されて実行されることにより、リモコン２０５の入出力に関する機能や、第１記憶部２０２や第２記憶部２０３などのメモリ管理などの端末装置２であるコンピュータの基本的な機能を実行可能にするものである。そして、このＯＳプログラムがＣＰＵ２０１によって実行された状態で、上述のストリーム制御プログラム２２１、トポロジー制御プログラム２２２、画面制御プログラム２２３、プレイヤプログラム２２４、接続プールプログラム２２５等が第１記憶部２０２から読み出されて実行される。
【０１４７】
なお、ＯＳプログラム２２０、ストリーム制御プログラム２２１、トポロジー制御プログラム２２２、画面制御プログラム２２３、プレイヤプログラム２２４、接続プールプログラム２２５等は、例えば、インターネット４に接続されたサーバ等から第１記憶部２０２にダウンロードされるようにしてもよく、又ＣＤ−ＲＯＭ等の記憶媒体に記録されてから当該記憶媒体のドライブを介して、第１記憶部２０２に読み込まれるようにしてもよい。
【０１４８】
（制御部２１３について）
制御部２１３は、上述のようにＣＰＵ２０１と第１記憶部２０２とから構成され、ＣＰＵ２０１が第１記憶部２０２に記憶された各種プログラム２２０〜２２５を読み出して実行することにより、端末装置２全体を統括制御し、かつ、後述する接続手段、トポロジー管理手段、ストリーミング受信手段、再生手段、表示制御手段、コンテンツデータ再生状況検出手段、リングバッファ設定手段、中継依頼受信手段、転送手段、バッファ容量通知手段、バックアップ処理手段、バッファ容量取得手段、比較手段、再接続手段等として機能するようになっている。
【０１４９】
なお、ＣＰＵ２０１がストリーム制御プログラム２２１を実行することによって、ストリーミング制御手段、転送手段等として、またＣＰＵ２０１がトポロジー管理プログラム１２２を実行することによって、接続手段、トポロジー管理手段、中継依頼受信手段等として、またＣＰＵ２０１が画面制御プログラム２２３を実行することによって表示制御手段等として、さらにＣＰＵ２０１がプレイヤプログラム２２４を実行することによって再生手段等として、さらにＣＰＵ２０１が接続プールプログラム２２５を実行することによって、コンテンツデータ再生状況検出手段、リングバッファ設定手段、バッファ容量通知手段、バックアップ処理手段、バッファ容量取得手段、比較手段、再接続手段等として、それぞれ機能するようになっている。
【０１５０】
（接続手段について）
接続手段は、端末装置２をコンテンツ配信システムＳへ参加させるために、チャンネル選択手段であるリモコン２０５のチャンネル選択ボタンのユーザによる操作によって選択されたチャンネルに関する接続先紹介要求を接続管理装置３へ送信し、その後、接続管理装置３から通知された接続先候補に接続する。
【０１５１】
より具体的には、接続手段は、端末装置２をコンテンツ配信システムＳへ参加させるために、接続管理装置３へ登録要求を送信して接続管理装置３へ登録すると共に、接続先紹介要求を送信して接続管理装置３へ接続先候補を要求する機能を有している。この登録要求や接続先紹介要求には、端末装置２のユーザがリモコン２０５のチャンネル選択ボタン等を操作することによって選択されるチャンネルを指定した情報及び自端末装置２の所在情報等を含む。
【０１５２】
また、接続手段は、登録要求や接続先紹介要求を接続管理装置３へ送信する際に、その接続先紹介要求に関するチャンネルに対するリングバッファ領域のバッファ容量を送信するようにしている。たとえば、チャンネルｃｈ１の接続先紹介要求を行う場合には、リングバッファ領域２２６ａのバッファ容量である。なお、このリングバッファ領域のバッファ容量は、登録要求や接続先紹介要求に含ませるようにしても、別個に送信するようにしてもよい。
【０１５３】
さらに、接続手段は、自端末装置２があるチャンネルに接続している状態で、端末装置２のユーザがリモコン２０５等を操作することによってチャンネルの切替え操作を行ったときには、その切替え操作によって新たに接続すべきチャンネルを判定し、チャンネル切替え要求を含む接続先紹介要求を接続管理装置３へ送信する。
【０１５４】
これにより端末装置２は一のチャンネルから新たなチャンネルへの接続の切替えを行うことができる。なお、リモコン２０５のチャンネル切替えボタンを設けずに、後述の表示制御手段を動作させてディスプレイ２０９にチャンネルの選択画面を表示させ、リモコン２０５操作によって選択させるようにしてもよい。
【０１５５】
また、接続手段は、接続管理装置３へ送信した接続先紹介要求に対して、接続管理装置３から通知される接続先候補の情報、すなわち接続先候補の端末装置の所在情報であるＩＰアドレスやポート番号などの情報（以下、接続先候補の情報を含めて、「接続先候補」と略すことがある。）を受信する機能を有する。
【０１５６】
さらに、接続手段は、受信した接続先候補の情報に基づいて、その接続先候補への接続を行う機能を有する。すなわち、接続手段は、接続先候補の情報に基づいて、接続先候補のＩＰアドレス及びポート番号等をあて先とした接続要求を行い、接続先候補との論理接続を行う。このように接続先候補と接続することによってチャンネルに参加、すなわち自端末装置２をツリー状階層構造の一部に組み込むことが可能となる。
【０１５７】
（トポロジー管理手段について）
トポロジー管理手段は、現在接続している各チャンネルにおいて、接続手段によって接続したツリー状階層構造の上流の装置の所在情報などを第１記憶部２０２に記憶して管理すると共に、後述で詳説する転送手段によってコンテンツデータをツリー状階層構造の下流の端末装置２の所在情報などを第１記憶部２０２に記憶して管理する。
【０１５８】
（ストリーミング受信手段）
ストリーミング受信手段は、階層構造における上流の端末装置２或いはコンテンツ配信装置１からストリーミング配信されるコンテンツパケットを受信し、そのコンテンツパケットに含まれるコンテンツデータを当該コンテンツデータのチャンネルに対応するリングバッファ領域に一時的に蓄積する。
【０１５９】
（再生手段について）
再生手段は、ストリーミング受信手段によってストリーミング受信したコンテンツデータ、すなわちリングバッファ領域に格納したコンテンツデータを順次再生する機能を有している。
【０１６０】
この再生手段は、音源チップ２１０やビデオチップ２０８を動作させることによってその機能を実現しており、リングバッファ領域に格納したコンテンツデータを順次取り出し、所定のコンテンツデータ形式（たとえば、Wave形式）に変換して音源チップ２１０やビデオチップ２０８へ入力し、コンテンツの再生を行う。
【０１６１】
再生手段によって所定のコンテンツデータ形式に変換されたコンテンツデータは、そのコンテンツデータがオーディオ情報を含む場合には、そのオーディオ情報が音源チップ２１０によってオーディオ信号へ変換された後、内蔵スピーカ２１１から出力される。
【０１６２】
また、再生手段によって所定のコンテンツデータ形式に変換されたコンテンツデータに映像情報が含まれるときには、後述の表示制御手段による制御によってこの映像情報がディスプレイ２０９に表示される。
【０１６３】
また、再生手段は、リングバッファ領域に格納されたコンテンツデータに含まれる再生時刻情報に基づいて、当該コンテンツデータを再生するタイミングを決定する。すなわち、再生手段は、リングバッファ領域に格納されたコンテンツデータをその再生時刻で内蔵スピーカ２１１やディスプレイ２０９に出力するように構成されている。
【０１６４】
この再生手段による再生は、チャンネル選択ボタン等によって最後に選択された最新のチャンネルに対応するリングバッファ領域からコンテンツデータを取り出して、ビデオチップ２０８や音源チップ２１０に出力することによって行われる。
【０１６５】
（表示制御手段について）
表示制御手段は、ビデオチップ２０８及びディスプレイ２０９を制御して、コンテンツデータや各種情報を表示する機能を有している。すなわち、表示制御手段は、ディスプレイ２０９にどのようにコンテンツの映像や各種情報を表示するかを制御することができる。
【０１６６】
（コンテンツデータ再生状況検出手段について）
コンテンツデータ再生状況検出手段は、再生手段によるチャンネル毎のコンテンツデータの再生状況を検出する機能を有している。
【０１６７】
コンテンツデータの再生状況には、上述のように単位時間当りの再生回数や再生時間があるが、ここでは、チャンネル毎のコンテンツデータの再生回数を検出するものとして説明する。なお、コンテンツデータの再生回数とは、言い換えれば、チャンネルの選択回数である。
【０１６８】
ところで、端末装置２のユーザによっては、チャンネルを極めて頻繁に切替えることがある。このような場合にコンテンツデータの再生回数をそのまま検出することが適切でないことが多い。そこで、コンテンツデータ再生状況検出手段は、すぐに切替えられたチャンネルは再生回数に含めないようにしている。すなわち、所定期間以上閲覧したものだけをその再生回数のカウントに含めるのである。
【０１６９】
コンテンツデータ再生状況検出手段は、再生手段によるチャンネル毎のコンテンツデータの再生状況を検出すると、第１記憶部２０２に設けた再生状況履歴テーブルにその再生状況を登録及び更新をする。
【０１７０】
ここで、再生状況履歴テーブルの例を図１１に示す。この図の例では、チャンネルｃｈ１〜ｃｈ５までの各チャンネルの一日当りの再生回数が当日から３０日前まで格納されている。なお、この例では、単位時間を１日とし、それを３０個（３０日）分前までとしているが、単位時間を１時間にしてもいし、１週間にしてもよい。また、曜日単位の再生状況履歴テーブルとするようにしてもよい。この場合、月曜日〜日曜日までのそれぞれについて各チャンネルの再生回数がこのテーブルに格納されることになる。
【０１７１】
（リングバッファ設定手段について）
リングバッファ設定手段は、チャンネル選択ボタン等のチャンネル選択手段によって選択されるチャンネルごとのリングバッファ領域の領域を第１記憶部２０２のリングバッファ設定可能領域２２６に設定する機能を有している。そして、このように設定したリングバッファ領域の情報を接続プール情報として第１記憶部２０２の接続プール情報領域（以下、「接続プール」と呼ぶ。）に登録する。
【０１７２】
リングバッファ領域のバッファ容量はリングバッファ設定手段よって決定されるものであり、リングバッファ領域に対応するチャンネルのコンテンツデータの再生状況に応じたバッファ容量とする。すなわち、リングバッファ設定手段は、コンテンツデータ再生状況検出手段により検出したチャンネルの再生状況に応じたバッファ容量を所定の演算式やテーブルを用いて算出し、そのチャンネルのリングバッファ領域に割り当てるのである。
【０１７３】
ここで、コンテンツデータの再生状況とは、上述のように各チャンネルにおける単位時間当りのコンテンツデータの再生回数や再生時間などである。ここでは、リングバッファ領域設定手段が、各チャンネルの再生回数に重み付けを行う計算方法で算出したバッファ容量をそれぞれリングバッファ領域に割り当てるようものとして説明する。
【０１７４】
以下では、接続プールのエントリ数が３つ、評価区間が３つの場合についての計算方法を例に挙げて説明する。ここで、「接続プールのエントリ数」とは、リングバッファ設定可能領域２２６に同時に設定することができるリングバッファ領域の数を意味する。
【０１７５】
ここで、第１記憶部２０２に設定できるリングバッファ領域のメモリ容量をＳｆとし、以下の式（１）によって、ＳＩとＳｒを定義する。
【０１７６】
【数１】
0004605071.tif 000002
【０１７７】
このようにＳＩ及びＳｒを定義したときに、チャンネルiのリングバッファ領域のバッファ容量を以下の式（２）によって、再生状況に応じたバッファ容量として算出する。ここで、図１２に示す各評価区間１〜３における選択確率Ｐch(i)_t1〜ｔ3は、図１１の再生状況履歴テーブルから導出している。重み付けＷt１〜Ｗt３は、過去の評価区間ほど重み付けを小さくしていくように調整されたパラメータである。
【０１７８】
【数２】
0004605071.tif 000003
【０１７９】
なお、各パラメータは、以下の式（３），式（４）で定義される。
【０１８０】
【数３】
0004605071.tif 000004
【０１８１】
このように、リングバッファ設定手段は、新しい再生ほど重み付けを大きくする算出方法で各チャンネルに割り当てるリングバッファ領域のバッファ容量を算出しており、チャンネルの再生状況に応じて、リングバッファ領域のバッファ容量を効率的に配分することができる。
【０１８２】
また、リングバッファ設定手段は、チャンネル選択手段によって選択されたチャンネルの接続先候補に接続手段よって接続したときに、第１記憶部２０２に当該選択されたチャンネルに対応するリングバッファ領域が第１記憶部２０２に存在せず、かつ第１記憶部２０２のリングバッファ設定可能領域２２６に設定したリングバッファ領域の数が所定数（上限値）に達していると判定すると、これら複数のリングバッファ領域のうち、一つのリングバッファ領域を第１記憶部２０２から削除すると共に、選択したチャンネルに対応するリングバッファ領域を第１記憶部２０２に設定する。
【０１８３】
たとえば、リングバッファ設定手段は、第１記憶部２０２に設定されたリングバッファ領域のうち、再生手段によって再生されていない期間が最も長いリングバッファ領域を第１記憶部２０２から削除し、選択されたチャンネルに対応するリングバッファ領域を第１記憶部２０２に設定する。
【０１８４】
（中継依頼受信手段）
中継依頼受信手段は、下流に接続される端末装置２からコンテンツデータの中継依頼を受信する。このコンテンツデータの中継依頼は、自端末装置２の下流の端末装置２からの接続要求と同時或いは別個に行われるものである。すなわち、自端末装置２の下流の端末装置２から接続要求がコンテンツデータの中継依頼を兼ねるようにしてもよく、自端末装置２との接続（セッション）を確立した後にコンテンツデータの中継依頼を受信する構成をとるようにしてもよい。ここでは、接続要求がこのコンテンツデータの中継依頼を兼ねるものとする。また、このコンテンツデータの中継依頼には、中継対象のコンテンツデータのチャンネルの指定情報が含まれており、中継依頼受信手段は、このチャンネルの指定情報により中継すべきチャンネルを判定する。
【０１８５】
（転送手段）
転送手段は、リングバッファ領域に一時的に蓄積したコンテンツデータを取り出して、下流の端末装置２へストリーミング配信する。すなわち、転送手段は、ストリーミング受信手段によって受信しているコンテンツデータを、中継依頼を行った下流の端末装置へストリーミング形式で転送するのである。
【０１８６】
ここで、転送手段は、中継依頼受信手段によって受信したチャンネルの指定情報に基づき、転送すべきチャンネルに対応するリングバッファ領域を判定する。そして、転送手段は、このように判定したリングバッファ領域からコンテンツデータを順次取り出して、下流の端末装置２へ転送するようにしている。
【０１８７】
（バッファ容量通知手段）
バッファ容量通知手段は、自端末装置２のリングバッファ設定可能領域２２６に設定された各リングバッファ領域のバッファ容量を所定期間毎に接続管理装置３に通知する。ここで、この所定期間は、たとえば、１時間でもよく、１日でもよい。なお、この所定期間は、ユーザによるリモコン２０５等の操作により、変更可能に構成されている。
【０１８８】
また、バッファ容量通知手段は、他の端末装置２から自端末装置２におけるリングバッファ領域のバッファ容量の問い合わせを受信した場合に、この問い合わせに対応するチャンネルのリングバッファ領域のバッファ容量を問い合わせ元の端末装置２へ通知する。
【０１８９】
また、バッファ容量通知手段は、リングバッファ設定手段によってリングバッファ領域が設定されたときに、或いはリングバッファ設定手段によってリングバッファ領域のバッファ容量が更新されて変更されたときに、リングバッファ領域のバッファ容量を接続管理装置３に通知する。
【０１９０】
（バックアップ処理手段）
バックアップ処理手段は、自端末装置２の電源が切断されたことを検出すると、第１記憶部２０２のリングバッファ設定可能領域２２６に設定されたリングバッファ領域のバッファ容量を不揮発性記憶装置である第２記憶部２０３に記憶し、自端末装置２の電源が再度供給されたことを検出すると、第２記憶部２０３に設定されたリングバッファ領域のバッファ容量に基づいて、リングバッファ領域を第１記憶部２０２に再設定する。
【０１９１】
ここで、バックアップ処理手段による上記電源切断の検出や上記電源再供給の検出は、自端末装置２の電源回路（図示せず）の出力電圧を監視することによって行われる。すなわち、出力電圧が所定値よりも小さくなったとなったときに電源切断を検出し、その後出力電圧が所定値以上となったときに電源再供給の検出を行うのである。
【０１９２】
（バッファ容量取得手段）
バッファ容量取得手段は、接続手段によって接続している各チャンネル階層構造における自端末装置２の上流にある端末装置２が有するリングバッファ領域のバッファ容量の情報を取得する上流バッファ容量取得手段として機能する。すなわち、バッファ容量取得手段は、上流バッファ容量取得手段として、接続管理装置３或いは自端末装置２の上流にある端末装置２にリングバッファ領域のバッファ容量の情報を要求し、その要求に応じて上流の端末装置２から送信されるリングバッファ領域のバッファ容量を取得する。
【０１９３】
また、バッファ容量取得手段は、接続手段によって接続している各チャンネルの階層構造における自端末装置２の下流にある端末装置２が有するリングバッファ領域のバッファ容量の情報を取得する下流バッファ容量取得手段として機能する。すなわち、バッファ容量取得手段は、下流バッファ容量取得手段として、接続管理装置３或いは自端末装置２の下流にある端末装置２にリングバッファ領域のバッファ容量の情報を要求し、その要求に応じて下流の端末装置２から送信されるリングバッファ領域のバッファ容量を取得する。
【０１９４】
（比較手段）
比較手段は、各チャンネル毎に、自端末装置２が有するリングバッファ領域のバッファ容量と、バッファ容量取得手段によって取得した上流の端末装置が有するリングバッファ領域のバッファ容量とを比較する。さらに、比較手段は、各チャンネル毎に、自端末装置２が有するリングバッファ領域のバッファ容量と、バッファ容量取得手段によって取得した下流の端末装置が有するリングバッファ領域のバッファ容量とを比較する。
【０１９５】
また、比較手段は、下流に端末装置が複数ある場合には、それぞれの下流の端末装置２に関してバッファ容量の比較を行う。
【０１９６】
（再接続手段）
再接続手段は、比較手段による比較の結果、自端末装置２が有するリングバッファ領域のバッファ容量が上流にある端末装置が有するリングバッファ領域のバッファ容量よりも大きい場合に、上流の端末装置よりも前記階層構造上における上流の端末装置２に再接続するように再接続処理を行う。
【０１９７】
また、再接続手段は、比較手段による比較の結果、自端末装置２が有するリングバッファ領域のバッファ容量が下流にある端末装置が有するリングバッファ領域のバッファ容量よりも小さい場合に、下流の端末装置２或いは下流の端末装置２よりも階層構造上における下流の端末装置２に再接続するように再接続処理を行う。
【０１９８】
なお、再接続手段は、比較手段による比較の結果、自端末装置２が有するリングバッファ領域のバッファ容量が上流にある端末装置２が有するリングバッファ領域のバッファ容量も大きく、かつ自端末装置２が有するリングバッファ領域のバッファ容量が下流にある端末装置２が有するリングバッファ領域のバッファ容量も小さいときには、上流の端末装置２よりも上流の端末装置２への再接続を優先して行う。
【０１９９】
［４．接続管理装置３の構成等の説明］
次に、図１３を参照して、接続管理装置３の構成及び動作について説明する。
【０２００】
図１３は、第１実施形態における接続管理装置３の概略構成例を示す図である。接続管理装置３は、一般のサーバコンピュータを適用可能であり、図１３に示すように、ＣＰＵ（Central  Processing  Unit）３０１と、各種プログラム等を記憶（格納）する書き換え可能な主記憶装置としての第１記憶部３０２と、各種データ等を記憶するＨＤＤ（Hard  Disc  Drive）等から構成された第２記憶部３０３と、インターネット４を介してコンテンツ配信装置１や端末装置２との間で通信を行うネットワークインターフェイス３０４と、所定の情報を入力可能なキーボード３０５やマウス３０６等の入力手段を制御する周辺機器制御チップ３０７と、ＣＰＵ３０１からイメージデータを受け取り、内部のビデオメモリ（図示せず）に書き込むと共にこのビデオメモリに書き込んだデータを後述のディスプレイ３０９に表示するビデオチップ３０８とを備えて構成され、これらの各種構成要素はシステムバス３１０を介して相互に接続されている。
【０２０１】
なお、第１実施形態においては、ＣＰＵ３０１と第１記憶部３０２とで制御部３１５を構成している。なお、ネットワークインターフェイス３０４は、ルータ１０ｃを介して、インターネット４に接続されている。
【０２０２】
（第１記憶部３０２について）
また、第１記憶部３０２には、接続管理装置３のコンピュータとしての基本的な機能を提供するためのＯＳプログラム３２０と、チャンネルに接続される複数の端末装置２の所在情報（ＩＰアドレスやポート番号など）などを管理するための端末管理プログラム３２１と、各チャンネルのツリー状階層構造を構築及び管理等するためのトポロジー管理プログラム３２２と、端末装置２から送信される接続先紹介要求に対応するチャンネルの接続先候補を選択し、端末装置２へ接続先候補の情報を送信等するための接続先紹介プログラム３２３と、コンテンツ配信システムＳの運用を管理等するための運用管理プログラム３２４等を記憶しており、これらはＣＰＵ３０１によって読み出され、ＣＰＵ３０１によってこれらのプログラムに従った機能が実行される。
【０２０３】
ここで、ＯＳプログラム３２０は、ＣＰＵ３０１によって読み出されて実行されることにより、キーボード３０５やマウス３０６の入出力に関する機能や、第１記憶部３０２や第２記憶部３０３などのメモリ管理などの接続管理装置３であるコンピュータの基本的な機能を実行可能にするものである。そして、このＯＳプログラム３２０がＣＰＵ３０１によって実行された状態で、上述の端末管理プログラム３２１、トポロジー管理プログラム３２２、接続先紹介プログラム３２３、運用管理プログラム３２４等が実行される。
【０２０４】
なお、ＯＳプログラム３２０、端末管理プログラム３２１、トポロジー管理プログラム３２２、接続先紹介プログラム３２３、運用管理プログラム３２４等は、例えば、インターネット４に接続されたサーバ等から第１記憶部３０２にダウンロードされるようにしてもよく、又ＣＤ−ＲＯＭ等の記憶媒体に記録されてから当該記憶媒体のドライブを介して、第１記憶部３０２に読み込まれるようにしてもよい。
【０２０５】
（制御部３１５について）
制御部３１５は、上述のようにＣＰＵ３０１と第１記憶部３０２とから構成され、ＣＰＵ３０１が第１記憶部３０２に記憶された各種プログラム３２０〜３２４を読み出して実行することにより、接続管理装置３全体を統括制御し、かつ、後述する接続先候補選択手段、通知手段、トポロジー管理手段、端末管理手段等として機能させ、さらに第１記憶部３０２を接続状態情報記憶手段として使用する。
【０２０６】
なお、ＣＰＵ３０１が端末管理プログラム３２１を実行することによって、端末管理手段等として、またＣＰＵ３０１がトポロジー管理プログラム３２２を実行することによってトポロジー管理手段等として、さらにＣＰＵ３０１が接続先紹介プログラム３２３を実行することによってバッファ容量受信手段、接続先候補選択手段、通知手段等として、それぞれ機能するようになっている。
【０２０７】
（端末管理手段について）
端末管理手段は、端末装置２からの登録要求を受信すると、端末管理データベース３１４へこの端末装置２の所在情報であるＩＰアドレスなどをチャンネル毎に登録する。また、コンテンツ配信装置１からの登録要求を受信した場合も、このコンテンツ配信装置１の所在情報であるＩＰアドレスなどを各チャンネル毎に端末管理データベース３１４に登録する。なお、これらの端末装置２の所在情報は端末装置２からの登録要求に含まれ、この登録要求から所在情報を取得する。
【０２０８】
（トポロジー管理手段について）
トポロジー管理手段は、コンテンツ配信装置１から送信される新規チャンネル生成要求に基づいて、新規チャンネルのツリー状階層構造を生成するための新規トポロジー生成手段と、端末装置２の接続先紹介要求や接続切断通知などのトポロジー変動通知によってチャンネルにおける端末装置２の接続情報を変更するトポロジー変更手段としての機能を有している。また、トポロジー管理手段は、チャンネル毎に階層構造を構成する端末装置２の接続状態情報を接続状態情報記憶手段としてのトポロジーデータベース３１３へ記憶する。
【０２０９】
新規トポロジー生成手段は、コンテンツ配信装置１から新規チャンネル生成要求を受信すると、新規チャンネルのトポロジーテーブルを生成してトポロジーデータベース３１３へ登録する。ここで、トポロジーテーブルは、チャンネル毎に階層構造を構成する端末装置２の接続状態情報などを格納するためのテーブルであり、チャンネルごとに生成されてトポロジーデータベース３１３に登録される。
【０２１０】
トポロジー変更手段は、トポロジーデータベース３１３に記憶される複数のトポロジーテーブルに端末装置２の情報を追加又は削除する機能を実行するものであり、端末装置２からの接続先紹介要求トポロジー参加報告に基づいて、トポロジーテーブルへの追加又は変更を行うものである。
【０２１１】
ここで、トポロジーデータベース３１３におけるトポロジーテーブルについて、図１４を参照して具体的に説明する。
【０２１２】
トポロジーテーブルは、図１４に示すように、各端末装置２の端末番号（たとえば、端末装置２のＭＡＣアドレスなど）を主項目として、それらの端末装置２毎の上流のノードにある端末装置、下流のノードにある端末装置、所在情報、リングバッファ領域のバッファ容量がそれぞれ関連付けられたテーブルであり、このトポロジーテーブルはチャンネル毎に設けられる。
【０２１３】
ここで、端末装置２の端末番号、所在情報、リングバッファ領域のバッファ容量は、接続先紹介要求に含まれる情報に基づいて、トポロジーテーブルに登録される。
【０２１４】
すなわち、トポロジー変更手段によって、各端末装置２から送信される各チャンネル毎のリングバッファ領域のバッファ容量、端末番号、所在情報が受信され、端末管理データベース３１４に登録される。
【０２１５】
（バッファ容量受信手段について）
バッファ容量受信手段は、チャンネルに新規に参加しようとする端末装置２からリングバッファ領域のバッファ容量を含む接続先紹介要求を受信する。また、チャンネルに参加している端末装置２からリングバッファ領域のバッファ容量を定期的に受信する。
【０２１６】
（接続先候補選択手段について）
接続先候補選択手段は、チャンネルに新規に参加、或いは再接続しようとする端末装置からリングバッファ領域のバッファ容量を含む接続先紹介要求を受信したとき、接続先紹介要求に対応するチャンネルの階層構造において、当該階層構造を構成する端末装置のリングバッファ領域のバッファ容量が階層構造の上流から下流にかけて小さくなるように、接続先紹介要求に対する接続先候補を、トポロジーデータベース３１３に記憶された接続状態情報から選択する。
【０２１７】
すなわち、接続先候補選択手段は、接続先紹介要求をした端末装置２のリングバッファ領域のバッファ容量よりも大きいバッファ容量のリングバッファ領域を有する端末装置の下流で、かつ接続先紹介要求をした端末装置２のリングバッファ領域のバッファ容量よりも小さいバッファ容量のリングバッファ領域を有する端末装置の上流である端末装置２を接続先候補として選択する。
【０２１８】
（通知手段について）
通知手段は、接続先候補選択手段によって選択された接続先候補を、接続先紹介要求を送信した端末装置２へ通知する機能を有する。この接続先候補の通知は、接続先候補の情報、すなわち接続先候補の端末装置２の通信プロトコル、ＩＰアドレスやポート番号などの情報を含む。
【０２１９】
［５.コンテンツ配信システムＳの動作］
以下、端末装置２及び接続管理装置３の詳細動作について、フローチャートを用いて更に具体的に説明する。
【０２２０】
（端末装置２の処理フローの説明）
まず、端末装置２の更に具体的な動作について、図１５〜図１７を参照して説明する。図１５は端末装置２における処理全体を示すフローチャート、図１６は端末装置２におけるチャンネル切替え処理を示すフローチャート、図１７は端末装置２における接続変更処理を示すフローチャートである。
【０２２１】
まず、図１５を参照して、端末装置２における処理全体の概要を説明する。
【０２２２】
まず、端末装置２の電源がＯＮされると、端末装置２では各プログラム２２０〜２２５の初期化が行われ、各プログラム２２０〜２２５をＣＰＵ２０１による実行状態とし、制御部２１３としての機能を動作させる。このように制御部２１３が動作状態となると、接続管理装置３に対して自端末装置２の登録要求とともに接続紹介要求を行う（ステップＳ１００）。すなわち、この制御部２１３は、端末装置２の所在情報（ＩＰアドレスやポート番号など）、初期設定で予め決められたチャンネル（以下、「初期設定チャンネル」と呼ぶ。）及びこのチャンネルのリングバッファ領域のバッファ容量などの情報を接続管理装置３へ送信する。
【０２２３】
接続管理装置３は、端末装置２から登録要求及び接続先紹介要求を受信すると、登録要求及び接続先紹介要求を行った端末装置２から受信した情報をトポロジーデータベース３１３と端末管理データベース３１４へ登録する。その後、接続管理装置３は、トポロジーデータベース３１３の情報に基づいて、初期設定チャンネルにおける接続先候補を選択して、接続先紹介要求を行った端末装置２に選択した接続先候補を通知する。
【０２２４】
端末装置２の制御部２１３は、登録要求及び接続先紹介要求を接続管理装置３に送信した後、接続管理装置３から通知される接続先候補を受信すると、この接続先候補（端末装置２或いはコンテンツ配信装置１）との接続を確立する。端末装置２の制御部２１３は、このように接続を確立した接続先候補から初期設定チャンネルのコンテンツデータを受信するために、この初期設定チャンネル用のリングバッファ領域を第１記憶部２０２に設定する。
【０２２５】
接続先候補から初期設定チャンネルのコンテンツパケットがストリーミング配信されると、端末装置２の制御部２１３は、このコンテンツパケットからコンテンツデータを取り出して、初期設定チャンネル用のリングバッファ領域に順次蓄積していく。
【０２２６】
端末装置２の制御部２１３は、初期設定チャンネル用のリングバッファ領域に蓄積されたコンテンツデータに含まれる再生時刻情報をチェックし、再生時刻となったコンテンツデータをそのリングバッファ領域から取り出し、内蔵ディスプレイ２０９や内蔵スピーカ２１１を用いて再生を開始する。なお、初期設定チャンネルのコンテンツパケットの受信及び再生処理は、以下説明するステップＳ１５０，Ｓ１５１の処理としてもよい。
【０２２７】
その後、端末装置２の制御部２１３は、チャンネルの切替え要求が行われたか否かを判定する（ステップＳ１０１）。すなわち、ユーザによるリモコン２０５に設けられたチャンネル選択ボタンの操作によって現在再生しているチャンネルと異なるチャンネルが選択されたか否かを判定するのである。
【０２２８】
ステップＳ１０１において、チャンネル切替え要求が行われたと判定する（ステップＳ１０１：ＹＥＳ）と、制御部２１３は、ステップＳ１１０においてチャンネル切替え処理を行う。このステップＳ１１０におけるチャンネル切替え処理は後述で詳説する。
【０２２９】
また、ステップＳ１０１において、チャンネル切替え要求が行われていないと判定すると（ステップＳ１０１：ＮＯ）、制御部２１３は、リングバッファ領域の更新契機になっているか否かを判定する（ステップＳ１０２）。
【０２３０】
このリングバッファ領域の更新契機は、予め一定間隔の更新契機（たとえば、３０分間隔）となるように第１記憶部２０２の更新契機記憶領域に設定されているが、ユーザによるリモコン２０５の操作によりこの更新契機記憶領域の設定された更新契機の情報を変更することができるような構成にしてもよい。制御部２１３は、この更新契機記憶領域を参照して、リングバッファ領域の更新契機となっているかを判定する。
【０２３１】
なお、上述したように、再生状況によるバッファ容量の算出を日付単位の再生回数に基づいて行う場合、日付が変わることによって算出元となる再生回数が変わることを意味する。図１１に示す例では、日付が変わると３０日前のデータが２９日前のデータに書き換わってしまうことになる。そのため、このように日付単位の再生回数による再生状況を検出する場合には、日付が変わったときをリングバッファ領域の更新契機とすることになる。
【０２３２】
ステップＳ１０２において、リングバッファ領域の更新契機となっていると判定する（ステップＳ１０２：ＹＥＳ）と、制御部２１３は、プーリング中のリングバッファ領域に割り当てるバッファ容量を再生状況に応じて再計算し、その結果に応じたバッファ容量になるようにリングバッファ領域のバッファ容量を設定する（ステップＳ１２０）。
【０２３３】
ここで、プーリング中のリングバッファ領域とは、接続を確立（接続をプール）しているチャンネルのうち非再生状態のチャンネル（以下、「待機中チャンネル」とする。）のリングバッファ領域（以下、「リングバッファ(3)」とする。）である。
【０２３４】
その後、制御部２１３は、リングバッファ(3)のバッファ容量を接続管理装置３へ送信することによって接続管理装置３にリングバッファ(3)のバッファ容量を報告する（ステップＳ１２１）。
【０２３５】
また、ステップＳ１０２において、リングバッファ領域の更新契機となっていないと判定する（ステップＳ１０２：ＮＯ）と、制御部２１３は、プーリング中のリングバッファ領域のバッファ容量の問い合わせ契機になっているか否かを判定する（ステップＳ１０３）。
【０２３６】
このリングバッファ(3)のバッファ容量の問い合わせ契機は、予め一定間隔の問い合わせ契機（たとえば、３０分間隔）となるように第１記憶部２０２の問い合わせ契機記憶領域に設定されているが、ユーザによるリモコン２０５の操作によりこの問い合わせ契機記憶領域の設定された問い合わせ契機の情報を変更することができるような構成にしてもよい。制御部２１３は、この問い合わせ契機記憶領域を参照して、リングバッファ領域のバッファ容量の問い合わせ契機となっているかを判定する。
【０２３７】
ステップＳ１０３において、プーリング中のリングバッファ(3)のバッファ容量の問い合わせ契機になっていると判定すると（ステップＳ１０３：ＹＥＳ）、制御部２１３は、制御部２１３は、Ｓ１３０において接続変更処理を行う。このステップＳ１３０における接続変更処理は後述で詳説する。
【０２３８】
ステップＳ１０３において、プーリング中のリングバッファ(3)のバッファ容量の問い合わせ契機となっていないと判定する（ステップＳ１０３：ＮＯ）と、制御部２１３は、自端末装置２のリングバッファ領域のバッファ容量の問い合わせが他の端末装置２からあったか否かを判定する（ステップＳ１０４）。
【０２３９】
ステップＳ１０４において、リングバッファ領域のバッファ容量の問い合わせがあったと判定すると（ステップＳ１０４：ＹＥＳ）、制御部２１３は、問い合わせ要求にかかるチャンネルに関する自端末装置２のリングバッファ領域のバッファ容量を、その問い合わせを行った他の端末装置２に通知する（ステップＳ１４０）。
【０２４０】
また、ステップＳ１０４において、リングバッファ領域のバッファ容量の問い合わせがないと判定すると（ステップＳ１０４：ＮＯ）、制御部２１３は、接続中のチャンネルの階層構造における上流の装置からコンテンツパケットを受信したか否かを判定する（ステップＳ１０５）。
【０２４１】
なお、コンテンツパケットの受信は、上述で説明したように、受信したコンテンツパケットに対応するチャンネル用に用意したリングバッファ領域に順次蓄積することによって行われる。すなわち、自端末装置２が接続したチャンネル毎に設定されたリングバッファ領域にそれぞれ対応するコンテンツパケットを蓄積するのである。なお、リングバッファ領域に蓄積するのは、コンテンツパケットに含まれるコンテンツデータであり、コンテンツパケットのヘッダ部分を取り除いた情報である。
【０２４２】
ステップＳ１０５において、上流の装置からコンテンツパケットを受信したと判定すると（ステップＳ１０５：ＹＥＳ）、制御部２１３は、受信したコンテンツパケットを下流の端末装置２へ転送する（ステップＳ１５０）。なお、受信したコンテンツパケットを転送する下流の端末装置２がない場合には、このＳ１５０の処理は行われない。
【０２４３】
下流の装置への転送は、各チャンネル毎に行われるものであり、それぞれ対応するリングバッファ領域からコンテンツデータを取り出してコンテンツパケットとして送信することによって行われる。
【０２４４】
また、制御部２１３は、リングバッファ領域から再生時刻に達したコンテンツデータをリングバッファ領域から取得して、再生する。なお、再生するコンテンツデータは、第１記憶部２０２のリングバッファ設定可能領域２２６に複数のリングバッファ領域が設定されている場合には、リモコン２０５等で再生選択されているチャンネルのコンテンツデータであり、複数のリングバッファ領域から再生選択されているチャンネルのリングバッファ領域から順次データが取り出されて再生される（ステップＳ１５１）。
【０２４５】
ステップＳ１１０，Ｓ１２１，Ｓ１３０，Ｓ１４０，Ｓ１５１の処理が終了したとき、或いはステップＳ１０５において、上流の装置からコンテンツパケットを受信していないと判定（ステップＳ１０５：ＮＯ）したとき、制御部２１３は、自端末装置２の電源がＯＦＦにされたか否かを判定する（ステップＳ１６０）。自端末装置２の電源がＯＦＦにされていないと判定すると（Ｓ１６０：ＮＯ）、ステップＳ１０１からの処理を繰り返し、自端末装置２の電源がＯＦＦされたと判定すると（Ｓ１６０：ＹＥＳ）、処理を終了する。
【０２４６】
次に、Ｓ１１０におけるチャンネル切替え処理について図１６を参照して具体的に説明する。
【０２４７】
まず、制御部２１３は、再生中のチャンネルのリングバッファ領域（ここで、このリングバッファ領域を「リングバッファ(1)」とする。）のバッファ容量の状態を非再生状態、すなわち待機状態に変更する（ステップＳ２００）。
【０２４８】
次に、制御部２１３は、要求のあった切替え先のチャンネル（以下、「要求チャンネル」と呼ぶ。）に関する情報が接続プールに存在するか否かを判定する。すなわち、第１記憶部２０２の接続プール情報領域に要求チャンネルに関する情報があるか否かを判定する。言い換えれば、制御部２１３は、要求のあった要求チャンネルに対応するリングバッファ領域が第１記憶部２０２のリングバッファ設定可能領域２２６に存在するのか否かを判定するのである（ステップＳ２０１）。
【０２４９】
ステップＳ２０１において、要求チャンネルに関する情報が接続プールに存在すると判定すると（ステップＳ２０１：ＹＥＳ）、制御部２１３は、要求チャンネル用のリングバッファ領域（以下、「リングバッファ(2)」とする。）のバッファ容量を再生状況に応じて計算し、その結果に基づいて、第１記憶部２０２に設定したリングバッファ(2)のバッファ容量を更新する（ステップＳ２０２）。
【０２５０】
次に、制御部２１３は、要求チャンネルに関するリングバッファ(2)の選択時刻を更新する。すなわち、上述の再生状況履歴テーブルにリングバッファ(2)の選択時刻を登録して、再生状況履歴テーブルを更新する（ステップＳ２０３）。
【０２５１】
ステップＳ２０１において、要求チャンネルに関する情報が接続プールに存在しないと判定すると（ステップＳ２０１：ＮＯ）、制御部２１３は、要求チャンネル用のリングバッファ(2)のバッファ容量を再生状況に応じて計算する（ステップＳ２０４）。すなわち、要求チャンネルに関するリングバッファ(2)を、そのバッファ容量が再生状況に応じて計算したバッファ容量となるように、リングバッファ(2)を第１記憶部２０２に設定する（ステップＳ２０５）。その後、制御部２１３は、リングバッファ(2)を接続プールへ登録する（ステップＳ２０５）。
【０２５２】
次に、制御部２１３は、接続プールの登録数、すなわち第１記憶部２０２に設定されたリングバッファ領域の数が所定数の上限値に達しているか否かを判定する（ステップＳ２０６）。
【０２５３】
ステップＳ２０６において、接続プールの登録数が上限値に達していると判定すると（ステップＳ２０６：ＹＥＳ）、制御部２１３は、接続プール内の最古の登録情報を削除する（ステップＳ２０７）。ここで、「接続プール内の最古の登録情報」には、接続プール内の登録情報のうちその登録が最も古い登録情報のほか、接続プール内の登録情報のうち再生されていない期間が最も長い登録情報や、接続プール内の登録情報のうち再生された時間が最も古い登録情報などがある。以下、「接続プール内の最古の登録情報」は、接続プール内の登録情報のうちその登録が最も古い登録情報であるとして説明する。なお、既に要求チャンネルに接続しているときには、この要求チャンネルに対応するリングバッファ領域が第１記憶部２０２に設定されているため、ステップＳ２０６，Ｓ２０７の処理は行われずに、ステップＳ２０８の処理に移行する。すなわち、要求チャンネルに対応するリングバッファ領域が存在しない場合に、ステップＳ２０６，Ｓ２０７の処理を行うのである。
【０２５４】
ここで、ステップＳ２０７における登録情報の削除とは、削除する登録情報に対応するチャンネルの階層構造から脱退し、対応するリングバッファ領域を第１記憶部２０２から削除することをいう。すなわち、制御部２１３は、削除する登録情報に対応するチャンネルに関するコンテンツデータの受信を停止し、このチャンネルの階層構造から脱退し、さらに、このように脱退するチャンネルに対応するリングバッファ領域を第１記憶部２０２から削除するのである。
【０２５５】
ステップＳ２０６において、接続プールの登録数が上限値に達していないと判定（ステップＳ２０６：ＮＯ）された場合、或いはステップＳ２０７の処理が終了した場合、制御部２１３は、切替え要求のあった要求チャンネルに接続するために、接続管理装置３に対して、接続先候補の通知を要求する。
【０２５６】
また、制御部２１３は、要求チャンネルの情報を含む接続先紹介要求に加え、要求チャンネル用に設定するリングバッファ領域のバッファ容量を接続管理装置へ通知する。その後、制御部２１３は、接続管理装置３から通知される接続先候補を受信する（ステップＳ２０８）。
【０２５７】
次に、制御部２１３は、ステップＳ２０８において接続管理装置３から受信した接続先候補である上流の装置に接続を要求する。その後、接続先候補との接続が確立する。これによって要求チャンネルの階層構造（トポロジー）に参加する（ステップＳ２０９）。
【０２５８】
このように接続先候補との接続が確立すると、制御部２１３は、要求チャンネルの階層構造に参加した旨、すなわちトポロジー参加報告を接続管理装置３へ通知する（ステップＳ２１０）。このトポロジー参加報告には、自端末装置２の所在情報の他、要求チャンネル用として設定するリングバッファ(2)のバッファ容量が含まれる。
【０２５９】
その後、制御部２１３は、要求チャンネルのリングバッファ(2)を再生可能な状態とする（ステップＳ２１１）。なお、既に要求チャンネルに接続しているときには、このリングバッファ(2)は第１記憶部２０２に設定されているため、このステップＳ２０８〜Ｓ２１１の処理は行われない。
【０２６０】
その後、制御部２１３は、接続した接続先候補からコンテンツデータを受信し順次リングバッファ(2)に蓄積し、このように蓄積したコンテンツデータの再生時刻に応じて、コンテンツデータを順次再生する。
【０２６１】
次に、制御部２１３は、再生状況履歴テーブルのリングバッファ(2)についてのチャンネルの選択回数を１だけインクリメントして、再生状況履歴テーブルを更新する（ステップＳ２１２）。このステップＳ２１２の処理が終了すると、Ｓ１１０のチャンネル切替え処理が終了する。
【０２６２】
以上のように、チャンネル切替え処理では、切替え先チャンネルが接続プールで管理していないチャンネル（すなわち、接続状態でなく対応するリングバッファ領域がないチャンネル）であるとき、接続プールで管理しているチャンネルの登録数が所定数の上限値となっているとき、制御部２１３によって、接続プール内の最古の登録情報を削除されるため、リングバッファ設定可能領域２２６が無制限に拡大することがなく、しかも、接続しているチャンネルのうち、使用される可能性が低いチャンネルの接続を切断するため、リングバッファ領域を効率的に使用することができる。
【０２６３】
次に、Ｓ１３０における接続変更処理について図１７を参照して具体的に説明する。
【０２６４】
まず、制御部２１３は、待機中チャンネルに関して、それぞれ自端末装置２の上流にある端末装置２が有するリングバッファ領域のバッファ容量の情報を取得する（ステップＳ３００）。このバッファ容量の取得は、制御部２１３が上流にある端末装置２に問い合わせることによって、上流の端末装置２から通知してもらう形式をとる。
【０２６５】
次に、制御部２１３は、待機中チャンネルのリングバッファ(3)のバッファ容量が上流の端末装置２のリングバッファ領域のバッファ容量よりも大きいか否かを判定する（ステップＳ３０１）。
【０２６６】
ステップＳ３０１において、待機中チャンネルのリングバッファ(3)のバッファ容量が上流の端末装置２のリングバッファ領域のバッファ容量よりも大きいと判定すると（ステップＳ３０１：ＹＥＳ）、制御部２１３は、待機中チャンネルについての接続先紹介要求を接続管理装置３へ送信する。このとき、制御部２１３は、リングバッファ(3)のバッファ容量も合わせて接続管理装置３へ送信する（ステップＳ３０２）。
【０２６７】
その後、制御部２１３は、接続管理装置３から受信した接続先候補である上流の装置に接続を要求する。その後、接続先候補との接続が確立する。これによってチャンネルの階層構造（トポロジー）に再参加する（ステップＳ３０３）。
【０２６８】
このように接続先候補との接続が確立すると、制御部２１３は、要求チャンネルの階層構造に参加した旨、すなわちトポロジー参加報告を接続管理装置３へ通知する（ステップＳ３０４）。このトポロジー参加報告には、自端末装置２の所在情報の他、リングバッファ(3)のバッファ容量が含まれる。
【０２６９】
ステップＳ３０４の処理が終了した後、或いはステップＳ３０１において、待機中チャンネルのリングバッファ(3)のバッファ容量が上流の端末装置２のリングバッファ領域のバッファ容量よりも大きくないと判定すると（ステップＳ３０１：ＮＯ）、次のステップＳ３０５の処理が行われる。
【０２７０】
すなわち、制御部２１３は、接続している各チャンネルに関して、それぞれ自端末装置２の下流にある端末装置２が有するリングバッファ領域のバッファ容量の情報を取得する（ステップＳ３０５）。このバッファ容量の取得は、制御部２１３が下流にある端末装置２に問い合わせることによって、下流の端末装置２から通知してもらう形式をとる。
【０２７１】
次に、制御部２１３は、待機中チャンネルのリングバッファ(3)のバッファ容量がこの待機中チャンネルにおける自端末装置２の下流の端末装置２のリングバッファ領域のバッファ容量よりも小さいか否かを判定する（ステップＳ３０６）。
【０２７２】
そして、リングバッファ(3)のバッファ容量が下流の端末装置２のリングバッファ領域のバッファ容量よりも小さいと判定すると（ステップＳ３０６：ＹＥＳ）、制御部２１３は、この待機中チャンネルについての接続先紹介要求を接続管理装置３へ送信する。このとき、制御部２１３は、リングバッファ(3)のバッファ容量も合わせて接続管理装置３へ送信する（ステップＳ３０７）。
【０２７３】
その後、接続管理装置３から通知される接続先候補を受信すると、制御部２１３は、ステップＳ３０７において接続管理装置３から受信した接続先候補である上流の装置に接続を要求する。その後、接続先候補との接続が確立する。これによって階層構造（トポロジー）に再参加する（ステップＳ３０８）。
【０２７４】
このように接続先候補との接続が確立すると、制御部２１３は、要求チャンネルの階層構造に参加した旨、すなわちトポロジー参加報告を接続管理装置３へ通知する（ステップＳ３０９）。このトポロジー参加報告には、自端末装置２の所在情報の他、リングバッファ(3)のバッファ容量が含まれる。
【０２７５】
ステップＳ３０９の処理が終了した後、或いは、ステップＳ３０６にて待機中チャンネルのリングバッファ(3)のバッファ容量が下流の端末装置２のリングバッファ領域のバッファ容量よりも小さくないと判定すると（ステップＳ３０６：ＮＯ）、この接続変更処理が終了する。
【０２７６】
以上のように、接続変更処理では、待機中チャンネルのリングバッファ(3)のバッファ容量が、待機中チャンネルにおける上流の端末装置２のリングバッファ領域のバッファ容量よりも大きいときには、自端末装置２をさらに上流の端末装置２に再接続する。すなわち、階層構造の上流から下流にかけてその階層構造を構成する端末装置２のリングバッファ領域のバッファ容量が小さくなるように階層構造が動的に変更されることになる。
【０２７７】
同様に、待機中チャンネルのリングバッファ(3)のバッファ容量が待機中チャンネルにおける下流の端末装置２のリングバッファ領域のバッファ容量よりも小さいときには、自端末装置２をさらに下流の端末装置２に再接続する。すなわち、階層構造の上流から下流にかけてその階層構造を構成する端末装置２のリングバッファ領域のバッファ容量が小さくなるように階層構造が動的に変更されることになる。
【０２７８】
このように、第１実施形態では、階層構造の上流から下流にかけてその階層構造を構成する端末装置２のリングバッファ領域のバッファ容量が小さくなるように階層構造が動的に変更されることになり、各装置に設定されたリングバッファ領域の使用効率を向上させつつ、損失パケットの補完処理を適切に行うことができる。
【０２７９】
なお、端末装置２において、リングバッファ領域の更新契機やリングバッファ容量問い合わせ契機をそれぞれ一つの契機として説明したがこれに限られるものではない。たとえば、各チャンネル毎にリングバッファ領域の更新契機やリングバッファ容量問い合わせ契機をもうけるようにしてもよく、このようにすれば、より使用環境に適したリングバッファ領域の更新等を行うことができる。
【０２８０】
（接続管理装置３の処理フローの説明）
次に、接続管理装置３の更に具体的な動作について、図１８を参照して説明する。図１８は接続管理装置３における処理全体を示すフローチャートである。
【０２８１】
接続管理装置３の電源がＯＮになると、接続管理装置３は、各プログラム３２０〜３２４の初期化を行い、各プログラム３２０〜３２４をＣＰＵ３０１による実行状態とし、制御部３１５としての機能を動作させる（ステップＳ４００）。
【０２８２】
制御部３１５は、まず、端末装置２からチャンネルへの参加要求を受信したか否かを判定する（ステップＳ４０１）。
【０２８３】
ステップＳ４０１において、端末装置２からチャンネルへの参加要求を受信したと判定すると（ステップＳ４０１：ＹＥＳ）、制御部３１５は、受信した参加要求に含まれる端末装置２の所在情報を端末管理データベース３１４へ登録する（ステップＳ４０５）。
【０２８４】
一方、ステップＳ４０１において、端末装置２からチャンネルへの参加要求を受信していないと判定すると（ステップＳ４０１：ＮＯ）、制御部３１５は、コンテンツ配信装置１からの登録要求を受信したか否かを判定する（ステップＳ４０２）。
【０２８５】
ステップＳ４０２において、コンテンツ配信装置１からの登録要求を受信したと判定すると（ステップＳ４０２：ＹＥＳ）、制御部３１５は、受信した登録要求に含まれるコンテンツ配信装置１の所在情報を端末管理データベース３１４へ登録する（ステップＳ４０６）。
【０２８６】
次に、制御部３１５は、新しいチャンネルの情報をトポロジーデータベース３１３に登録する。すなわち、トポロジーデータベース３１３に新しいチャンネルのトポロジーテーブルを生成するのである（ステップＳ４０７）。
【０２８７】
ステップＳ４０２において、コンテンツ配信装置１からの登録要求を受信していないと判定すると（ステップＳ４０２：ＮＯ）、制御部３１５は、端末装置２から接続先紹介要求を受信したか否かを判定する（ステップＳ４０３）。
【０２８８】
ステップＳ４０３において、端末装置２から接続先紹介要求を受信したと判定すると（ステップＳ４０３：ＹＥＳ）、制御部３１５は、トポロジーデータベース３１３から接続先候補となる端末装置２を選択する（ステップＳ４０８）。
【０２８９】
ここで、接続先候補の選択は次のように行われる。すなわち、制御部３１５は、端末装置２から送信される接続先紹介要求に含まれる接続先チャンネルの情報と、端末装置２がこの接続先チャンネル用として割り当てたリングバッファ領域のバッファ容量（以下、「通知バッファ容量」と呼ぶ。）の情報とを取り出す。そして、この接続先チャンネルのトポロジーテーブルをトポロジーデータベース３１３から取り出し、通知バッファ容量に基づいて、このトポロジーテーブルに登録している端末装置２のうち、接続先チャンネルにおける階層構造の上流から下流にかけて、その階層構造を構成する端末装置２のリングバッファ領域のバッファ容量が、次第に小さくなるような階層構造とするのに適した端末装置２を接続先候補として選択する。
【０２９０】
接続管理装置３の制御部３１５は、このように選択した接続先候補を、接続先紹介要求を行った端末装置２へ返信して通知する（ステップＳ４０９）。
【０２９１】
さらに、制御部３１５は、ステップＳ４０９において接続先候補を通知した端末装置２の所在情報と共に通知バッファ容量をトポロジーデータベース３１３に登録する（ステップＳ４１０）。
【０２９２】
ステップＳ４０３において、端末装置２から接続先紹介要求を受信していないと判定すると（ステップＳ４０３：ＮＯ）、制御部３１５は、端末装置２からトポロジー参加報告があったか否かを判定する（ステップＳ４０４）。
【０２９３】
ステップＳ４０４において、端末装置２からトポロジー参加報告があったと判定すると（ステップＳ４０４：ＹＥＳ）、制御部３１５は、このトポロジー参加報告に含まれる端末装置の所在情報と通知バッファ容量とを取り出し、トポロジーデータベース３１３の更新処理を行う（ステップＳ４１１）。すなわち、制御部３１５は、トポロジーの変動をトポロジーデータベース３１３へ登録する。
【０２９４】
ステップＳ４０４において端末装置２からトポロジー参加報告がないと判定したとき（ステップＳ４０４：ＮＯ）、制御部３１５は、端末装置２からリングバッファ領域のバッファ容量の報告があったか否かを判定する（ステップＳ４０５）。
【０２９５】
ステップＳ４０５において、端末装置２からリングバッファ領域のバッファ容量の報告があったと判定すると（ステップＳ４０５：ＹＥＳ）、制御部３１５は、リングバッファ領域のバッファ容量を報告した端末装置２に対応する情報として、トポロジーデータベース３１３に登録する（ステップＳ４１２）。すなわち、端末装置２からのリングバッファ容量通知に応じてトポロジーデータベース３１３のトポロジーテーブルを更新するのである。
【０２９６】
ステップＳ４０５，Ｓ４０７，Ｓ４１０，Ｓ４１１，Ｓ４１２の処理が終了したとき、或いはステップＳ４０５において端末装置２からリングバッファ領域のバッファ容量の報告がないと判定したとき（ステップＳ４０５：ＮＯ）、制御部３１５は、接続管理装置３のサービス終了の操作が行われたか否かを判定する（ステップＳ４１３）。サービスの終了操作が行われていないと判定すると（Ｓ４１３：ＮＯ）、ステップＳ４０１からの処理を繰り返し、接続管理装置３のサービス終了の操作が行われたと判定すると（Ｓ４１３：ＹＥＳ）、処理を終了する。
【０２９７】
（第２実施形態）
次に、本発明の第２実施形態について説明する。第２実施形態では、端末装置２における再接続動作を接続管理装置３に依存せずに行うものである。第２実施形態においては、第１実施形態と異なる部分のみ説明し、その他同様の部分については、説明を省略する。
【０２９８】
第２実施形態の端末装置２は、再接続動作を接続管理装置３に依存せずに行うものであり、第１実施形態における接続変更処理動作のみ異なるため、この接続変更処理動作について、図１９及び図２０を参照して説明する。
【０２９９】
図１９に示すように、端末装置２は、所定のホップ数内となる近隣の他の端末装置２の情報を第１記憶部２０２における近隣端末情報記憶領域に記憶しており、この情報に基づいて、再接続処理を行うように構成している。
【０３００】
ここで、所定のホップ数は、たとえば、２ホップや３ホップである。また、ホップ数とは端末装置２の送信するパケットが受信されるまでに通過するルータの数を意味する。
【０３０１】
また、他の端末装置２の情報には、所在情報が含まれており、これらの情報に基づいて、接続管理装置３に頼らずに再接続処理を行うようにしている。
【０３０２】
以下、図２０のフローチャートを用いて、第２実施形態における接続変更処理について具体的に説明する。
【０３０３】
まず、制御部２１３は、待機中チャンネルに関して、それぞれ自端末装置２の上流にある端末装置２が有するリングバッファ領域のバッファ容量の情報を取得する（ステップＳ５００）。このバッファ容量の取得は、制御部２１３が上流にある端末装置２に問い合わせることによって、上流の端末装置２から通知してもらう形式をとる。
【０３０４】
まず、制御部２１３は、待機中チャンネルのリングバッファ(3)のバッファ容量が上流の端末装置２のリングバッファ領域のバッファ容量よりも大きいか否かを判定する（ステップＳ５０１）。
【０３０５】
ステップＳ５０１において、待機中チャンネルのリングバッファ(3)のバッファ容量が上流の端末装置２のリングバッファ領域のバッファ容量よりも大きいと判定すると（ステップＳ５０１：ＹＥＳ）、制御部２１３は、近隣端末情報記憶領域に記憶した近隣の端末装置２の情報に基づいて、現在自端末装置２の上流装置となっている端末装置の上流装置（上流ノード）を選択する。すなわち、階層構造における自端末装置２の接続位置を一層上段に上げることができる端末装置を選択するのである。そして、このように選択した端末装置２に接続を要求してこの端末装置２との接続を確立する。これによって再生中チャンネルの階層構造（トポロジー）の参加位置を自律的に変更する（ステップＳ５０２）。
【０３０６】
このように接続先候補との接続が確立すると、制御部２１３は、要求チャンネルの階層構造に参加した旨、すなわちトポロジー参加報告を接続管理装置３へ通知する（ステップＳ５０３）。このトポロジー参加報告には、自端末装置２の所在情報の他、リングバッファ(3)のバッファ容量が含まれる。
【０３０７】
ステップＳ５０３の処理が終了した後、或いはステップＳ５０１において、待機中チャンネルのリングバッファ(3)のバッファ容量が上流の端末装置２のリングバッファのバッファ容量よりも大きくないと判定すると（ステップＳ５０１：ＮＯ）、次のステップＳ５０４の処理が行われる。
【０３０８】
すなわち、制御部２１３は、接続している各チャンネルに関して、それぞれ自端末装置２の下流にある端末装置２が有するリングバッファ領域のバッファ容量の情報を取得する（ステップＳ５０４）。このバッファ容量の取得は、制御部２１３が下流にある端末装置２に問い合わせることによって、下流の端末装置２から通知してもらう形式をとる。
【０３０９】
次に、制御部２１３は、ステップＳ５０５において、待機中チャンネルのリングバッファ(3)のバッファ容量がこの待機中チャンネルにおける自端末装置２の下流の端末装置２のリングバッファ領域のバッファ容量よりも小さいか否かを判定する。
【０３１０】
そして、リングバッファ(3)のバッファ容量が下流の端末装置２のリングバッファ領域のバッファ容量よりも小さいと判定すると（ステップＳ５０５：ＹＥＳ）、制御部２１３は、近隣端末情報記憶領域に記憶した近隣の端末装置２の情報に基づいて、現在自端末装置２の下流装置となっている端末装置を選択する。すなわち、階層構造における自端末装置２の接続位置を一層下段に下げることができる端末装置を選択するのである。そして、このように選択した端末装置２に接続を要求してこの端末装置２との接続を確立する。これによって再生中チャンネルの階層構造（トポロジー）の参加位置を自律的に変更する（ステップＳ５０６）。
【０３１１】
このように接続先候補との接続が確立すると、制御部２１３は、トポロジー参加報告を接続管理装置３へ通知する（ステップＳ５０７）。このトポロジー参加報告には、自端末装置２の所在情報の他、リングバッファ(3)のバッファ容量が含まれる。
【０３１２】
ステップＳ５０７の処理が終了した後、或いは、ステップＳ５０５にて待機中チャンネルのリングバッファ(3)のバッファ容量が下流の端末装置２のリングバッファのバッファ容量よりも小さくないと判定すると（ステップＳ５０５：ＮＯ）、この接続変更処理が終了する。
【０３１３】
以上のように、端末装置２は、各チャンネル毎に、階層構造の上流から下流にかけてその階層構造を構成する端末装置２のリングバッファのバッファ容量が小さくなるように階層構造を自律的に構築するようにしている。
【０３１４】
以上、本発明の実施の形態のうちのいくつかを図面に基づいて詳細に説明したが、これらは例示であり、前記［発明の開示］の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【図面の簡単な説明】
【０３１５】
【図１】第１実施形態に係るコンテンツ配信システムＳの概要構成例を示す図である。
【図２】図１の端末装置におけるリングバッファ領域の機能を概念的に表した図である。
【図３】リングバッファ領域のバッファ容量の分配方法を説明するための図である。
【図４】リングバッファ領域のバッファ容量の分配方法を説明するための図である。
【図５】リングバッファ領域のバッファ容量の分配方法を説明するための図である。
【図６】階層における装置のプリバッファリングについての説明図である。
【図７】端末装置における所定のチャンネルへの参加動作を示す図である。
【図８】端末装置における再接続動作を示す図である。
【図９】図１のコンテンツ配信装置の概略構成例を示す図である。
【図１０】図１の端末装置の概略構成例を示す図である。
【図１１】図１の端末装置の再生状況履歴テーブルの例を示す図である。
【図１２】図１の端末装置の再生状況の検出動作の説明図である。
【図１３】図１の接続管理装置の概略構成例を示す図である。
【図１４】図１３のトポロジーデータベースの内容を示す図である。
【図１５】端末装置における処理全体を示すフローチャートである。
【図１６】端末装置におけるチャンネル切替え処理を示すフローチャートである。
【図１７】端末装置における接続変更処理を示すフローチャートである。
【図１８】接続管理装置における処理全体を示すフローチャートである。
【図１９】第２実施形態における再接続処理動作を示す図である。
【図２０】第２実施形態の端末装置における接続変更処理を示すフローチャートである。
【符号の説明】
【０３１６】
Ｓ  コンテンツ配信システム
１  コンテンツ配信装置
２  端末装置
３  接続管理装置
２１３  端末装置の制御部
２２６  端末装置のリングバッファ設定可能領域
３１３  接続管理装置のトポロジーデータベース
３１５  接続管理装置の制御部
【図１】
0004605071.tif 000005
【図２】
0004605071.tif 000006
【図３】
0004605071.tif 000007
【図４】
0004605071.tif 000008
【図５】
0004605071.tif 000009
【図６】
0004605071.tif 000010
【図７】
0004605071.tif 000011
【図８】
0004605071.tif 000012
【図９】
0004605071.tif 000013
【図１０】
0004605071.tif 000014
【図１１】
0004605071.tif 000015
【図１２】
0004605071.tif 000016
【図１３】
0004605071.tif 000017
【図１４】
0004605071.tif 000018
【図１５】
0004605071.tif 000019
【図１６】
0004605071.tif 000020
【図１７】
0004605071.tif 000021
【図１８】
0004605071.tif 000022
【図１９】
0004605071.tif 000023
【図２０】
0004605071.tif 000024