(57)【特許請求の範囲】
【請求項１】
複数のユーザが同時に視聴可能な動画を表す仮想の映像面のうち、前記動画の一部が抽出される抽出範囲の数の上限を取得する数取得手段と、
前記動画を視聴しようとする複数のユーザのそれぞれについて、前記仮想の映像面のうちユーザにより指定された表示範囲を取得する範囲取得手段と、
前記範囲取得手段により取得された前記表示範囲に基づいて、前記動画を視聴しようとする複数のユーザを、前記数取得手段により取得された前記上限の数以下のクラスタに分けるクラスタリング手段であって、前記動画を視聴しようとするユーザの数が前記数取得手段により取得された前記上限の数以下である場合、互いに異なる表示範囲を指定するユーザを同一のクラスタに入れないクラスタリング手段と、
前記クラスタリング手段により分けられた前記クラスタのうち、１のユーザで構成されるクラスタに対して、前記１のユーザにより指定された表示範囲を抽出範囲として、前記動画のうち前記抽出範囲内の動画部分を抽出し、２以上のユーザで構成されるクラスタに対して、前記２以上のユーザにより指定された２以上の表示範囲に基づいて特定される抽出範囲内の動画部分を抽出する抽出手段と、
前記クラスタリング手段により分けられた前記クラスタのそれぞれについて、前記抽出手段により抽出された前記動画部分を、クラスタを構成する各ユーザが利用する端末装置へ送信する送信手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記範囲取得手段は、前記表示範囲の中心点の前記仮想の映像面における位置を取得し、
前記クラスタリング手段は、
前記動画を視聴しようとする複数のユーザのそれぞれを、前記数取得手段により取得された前記上限の数以下のクラスタのそれぞれに対応する抽出範囲の中心点の前記仮想の映像面における現在の位置のうち、前記範囲取得手段により取得された位置に最も近い位置の中心点を有する抽出範囲に対応するクラスタに入れるクラスタリングと、
前記クラスタリングにより分けられた前記クラスタのそれぞれについて、クラスタに属するユーザにより指定された表示範囲の中心点の重心で、前記クラスタに対応する抽出範囲の中心点の位置を更新する処理とを、  
更新された前記抽出範囲の中心点の位置が更新前の位置から変化しなくなるまで繰り返し、
前記抽出手段は、前記クラスタリング手段により最後に更新された位置の中心点を有する抽出範囲内の動画部分を抽出し、
前記送信手段は、前記クラスタリング手段による最後のクラスタリングにより分けられた前記クラスタのそれぞれについて、前記抽出手段により抽出された前記動画部分を、クラスタを構成する各ユーザが利用する端末装置へ送信することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記範囲取得手段は、前記表示範囲の中心点の前記仮想の映像面における位置を取得し、
前記クラスタリング手段は、前記数取得手段により取得された前記上限の数以下のクラスタのそれぞれについて、前記仮想の映像面におけるクラスタ位置又はクラスタ領域を決定し、前記範囲取得手段により取得された前記位置と、決定された前記クラスタ位置又はクラスタ領域との位置関係に基づいて、前記動画を視聴しようとする複数のユーザを、前記数取得手段により取得された前記上限の数以下のクラスタに分け、前記決定されたクラスタ位置又はクラスタ領域を変更しないことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記範囲取得手段は、前記表示範囲の中心点の前記仮想の映像面における位置及び前記表示範囲内の動画の表示倍率を取得し、
前記クラスタリング手段は、前記範囲取得手段により取得された前記位置及び前記表示倍率に基づいて、前記動画を視聴しようとする複数のユーザを、前記数取得手段により取得された前記上限の数以下のクラスタに分けることを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記抽出手段は、２以上のユーザで構成されるクラスタに対して、前記２以上のユーザにより指定された２以上の表示範囲を含む抽出範囲を決定し、決定された前記抽出範囲内の動画部分を抽出することを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記動画を視聴しようとする複数のユーザのそれぞれの優先度を取得する優先度取得手段を更に備え、
前記クラスタリング手段は、前記動画を視聴しようとする複数のユーザのうち、ユーザに対して前記優先度取得手段により取得された前記優先度が高いほど、前記ユーザを、前記ユーザ１人のみで構成されるクラスタに優先的に入れることを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
コンピュータにより実行される情報処理方法であって、
複数のユーザが同時に視聴可能な動画を表す仮想の映像面のうち、前記動画の一部が抽出される抽出範囲の数の上限を取得する数取得ステップと、
前記動画を視聴しようとする複数のユーザのそれぞれについて、前記仮想の映像面のうちユーザにより指定された表示範囲を取得する範囲取得ステップと、
前記範囲取得ステップにより取得された前記表示範囲に基づいて、前記動画を視聴しようとする複数のユーザを、前記数取得ステップにより取得された前記上限の数以下のクラスタに分けるクラスタリングステップであって、前記動画を視聴しようとするユーザの数が前記数取得ステップにより取得された前記上限の数以下である場合、互いに異なる表示範囲を指定するユーザを同一のクラスタに入れない、前記ユーザの数と同数のクラスタに分けるクラスタリングステップと、
前記クラスタリングステップにより分けられた前記クラスタのうち、１のユーザで構成されるクラスタに対して、前記１のユーザにより指定された表示範囲を抽出範囲として、前記動画のうち前記抽出範囲内の動画部分を抽出し、２以上のユーザで構成されるクラスタに対して、前記２以上のユーザにより指定された２以上の表示範囲に基づいて特定される抽出範囲内の動画部分を抽出する抽出ステップと、
前記クラスタリングステップにより分けられた前記クラスタのそれぞれについて、前記抽出ステップにより抽出された前記動画部分を、クラスタを構成する各ユーザが利用する端末装置へ送信する送信ステップと、
を含むことを特徴とする情報処理方法。
【請求項８】
複数のユーザが同時に視聴可能な動画を表す仮想の映像面のうち、前記動画の一部が抽出される抽出範囲の数の上限を取得する数取得ステップと、
前記動画を視聴しようとする複数のユーザのそれぞれについて、前記仮想の映像面のうちユーザにより指定された表示範囲を取得する範囲取得ステップと、
前記範囲取得ステップにより取得された前記表示範囲に基づいて、前記動画を視聴しようとする複数のユーザを、前記数取得ステップにより取得された前記上限の数以下のクラスタに分けるクラスタリングステップであって、前記動画を視聴しようとするユーザの数が前記数取得ステップにより取得された前記上限の数以下である場合、互いに異なる表示範囲を指定するユーザを同一のクラスタに入れないクラスタリングステップと、
前記クラスタリングステップにより分けられた前記クラスタのうち、１のユーザで構成されるクラスタに対して、前記１のユーザにより指定された表示範囲を抽出範囲として、前記動画のうち前記抽出範囲内の動画部分を抽出し、２以上のユーザで構成されるクラスタに対して、前記２以上のユーザにより指定された２以上の表示範囲に基づいて特定される抽出範囲内の動画部分を抽出する抽出ステップと、
前記クラスタリングステップにより分けられた前記クラスタのそれぞれについて、前記抽出ステップにより抽出された前記動画部分を、クラスタを構成する各ユーザが利用する端末装置へ送信する送信ステップと、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の端末装置それぞれに対して、動画から、ユーザにより指定された表示範囲内の一部動画を抽出して送信する情報処理装置の技術分野に関する。
【背景技術】
【０００２】
従来、ライブ配信など、複数の端末装置に同時に動画を配信するシステムにおいて、動画全体を表す映像面のうち、実際に画面に表示される範囲をユーザにより指定可能とした技術が知られている。
【０００３】
例えば、特許文献１には、複数のクライアントからそれぞれ指定された視線方向、視野範囲等を含む配信画像生成パラメータに応じて、画像の一部を切り出して配信画像を生成し、生成した配信画像をクライアントに送信する画像配信装置が開示されている。この画像配信装置は、配信画像生成パラメータの指定範囲又は配信画像の最大同時生成数を設定し、クライアントの数が最大同時生成数を上回った場合は、最大同時生成数分のクライアントに対してのみ配信画像生成権を付与する。また、画像配信装置は、配信画像生成パラメータの指定範囲の指定範囲又は配信画像の最大同時生成数の設定の変更が要求された場合、配信画像の最大同時生成数が最大のときの画像生成の処理の最大負荷を算出する。画像配信装置は、この最大負荷が処理能力を超える場合は、設定を拒否する。また、画像配信装置は、最大同時生成数の変更により予測される配信画像の生成負荷の変化に応じて、指定可能な配信画像サイズの制限を強化したり緩和したりする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２７９４６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
情報処理装置が、動画から、ユーザにより指定された表示範囲の部分の動画を抽出する場合、実行可能な抽出の数の上限が、例えば情報処理装置の処理能力等に応じて設定される。しかしながら、動画を視聴したいユーザの数がこの上限を超える場合がある。この場合、特許文献１に開示されたような技術では、この上限の数までのユーザに対してのみ、指定された表示範囲の部分の動画を抽出してそのユーザの端末装置に動画を送信する。従って、動画を視聴したいユーザのうち残りのユーザは、動画を視聴することができなかった。
【０００６】
本発明は、以上の点に鑑みてなされたものであり、動画を視聴したいユーザの数が、抽出の数の上限を超えても、ユーザの希望に極力沿った表示範囲で、動画を視聴したいユーザ全てが動画を視聴することを可能とする情報処理装置、情報処理方法、及びプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、複数のユーザが同時に視聴可能な動画を表す仮想の映像面のうち、前記動画の一部が抽出される抽出範囲の数の上限を取得する数取得手段と、前記動画を視聴しようとする複数のユーザのそれぞれについて、前記仮想の映像面のうちユーザにより指定された表示範囲を取得する範囲取得手段と、前記範囲取得手段により取得された前記表示範囲に基づいて、前記動画を視聴しようとする複数のユーザを、前記数取得手段により取得された前記上限の数以下のクラスタに分けるクラスタリング手段であって、前記動画を視聴しようとするユーザの数が前記数取得手段により取得された前記上限の数以下である場合、互いに異なる表示範囲を指定するユーザを同一のクラスタに入れないクラスタリング手段と、前記クラスタリング手段により分けられた前記クラスタのうち、１のユーザで構成されるクラスタに対して、前記１のユーザにより指定された表示範囲を抽出範囲として、前記動画のうち前記抽出範囲内の動画部分を抽出し、２以上のユーザで構成されるクラスタに対して、前記２以上のユーザにより指定された２以上の表示範囲に基づいて特定される抽出範囲内の動画部分を抽出する抽出手段と、前記クラスタリング手段により分けられた前記クラスタのそれぞれについて、前記抽出手段により抽出された前記動画部分を、クラスタを構成する各ユーザが利用する端末装置へ送信する送信手段と、を備えることを特徴とする。
【０００８】
請求項２に記載の発明は、前記範囲取得手段は、前記表示範囲の中心点の前記仮想の映像面における位置を取得し、前記クラスタリング手段は、前記動画を視聴しようとする複数のユーザのそれぞれを、前記数取得手段により取得された前記上限の数以下のクラスタのそれぞれに対応する抽出範囲の中心点の前記仮想の映像面における現在の位置のうち、前記範囲取得手段により取得された位置に最も近い位置の中心点を有する抽出範囲に対応するクラスタに入れるクラスタリングと、前記クラスタリングにより分けられた前記クラスタのそれぞれについて、クラスタに属するユーザにより指定された表示範囲の中心点の重心で、前記クラスタに対応する抽出範囲の中心点の位置を更新する処理とを、更新された前記抽出範囲の中心点の位置が更新前の位置から変化しなくなるまで繰り返し、前記抽出手段は、前記クラスタリング手段により最後に更新された位置の中心点を有する抽出範囲内の動画部分を抽出し、前記送信手段は、前記クラスタリング手段による最後のクラスタリングにより分けられた前記クラスタのそれぞれについて、前記抽出手段により抽出された前記動画部分を、クラスタを構成する各ユーザが利用する端末装置へ送信することを特徴とする。
【０００９】
請求項３に記載の発明は、前記範囲取得手段は、前記表示範囲の中心点の前記仮想の映像面における位置を取得し、前記クラスタリング手段は、前記数取得手段により取得された前記上限の数以下のクラスタのそれぞれについて、前記仮想の映像面におけるクラスタ位置又はクラスタ領域を決定し、前記範囲取得手段により取得された前記位置と、決定された前記クラスタ位置又はクラスタ領域との位置関係に基づいて、前記動画を視聴しようとする複数のユーザを、前記数取得手段により取得された前記上限の数以下のクラスタに分け、前記決定されたクラスタ位置又はクラスタ領域を変更しないことを特徴とする。
【００１０】
請求項４に記載の発明は、前記範囲取得手段は、前記表示範囲の中心点の前記仮想の映像面における位置及び前記表示範囲内の動画の表示倍率を取得し、前記クラスタリング手段は、前記範囲取得手段により取得された前記位置及び前記表示倍率に基づいて、前記動画を視聴しようとする複数のユーザを、前記数取得手段により取得された前記上限の数以下のクラスタに分けることを特徴とする。
【００１１】
請求項５に記載の発明は、前記抽出手段は、２以上のユーザで構成されるクラスタに対して、前記２以上のユーザにより指定された２以上の表示範囲を含む抽出範囲を決定し、決定された前記抽出範囲内の動画部分を抽出することを特徴とする。
【００１２】
請求項６に記載の発明は、前記動画を視聴しようとする複数のユーザのそれぞれの優先度を取得する優先度取得手段を更に備え、前記クラスタリング手段は、前記動画を視聴しようとする複数のユーザのうち、ユーザに対して前記優先度取得手段により取得された前記優先度が高いほど、前記ユーザを、前記ユーザ１人のみで構成されるクラスタに優先的に入れることを特徴とする。
【００１３】
請求項７に記載の発明は、コンピュータにより実行される情報処理方法であって、複数のユーザが同時に視聴可能な動画を表す仮想の映像面のうち、前記動画の一部が抽出される抽出範囲の数の上限を取得する数取得ステップと、前記動画を視聴しようとする複数のユーザのそれぞれについて、前記仮想の映像面のうちユーザにより指定された表示範囲を取得する範囲取得ステップと、前記範囲取得ステップにより取得された前記表示範囲に基づいて、前記動画を視聴しようとする複数のユーザを、前記数取得ステップにより取得された前記上限の数以下のクラスタに分けるクラスタリングステップであって、前記動画を視聴しようとするユーザの数が前記数取得ステップにより取得された前記上限の数以下である場合、互いに異なる表示範囲を指定するユーザを同一のクラスタに入れない、前記ユーザの数と同数のクラスタに分けるクラスタリングステップと、前記クラスタリングステップにより分けられた前記クラスタのうち、１のユーザで構成されるクラスタに対して、前記１のユーザにより指定された表示範囲を抽出範囲として、前記動画のうち前記抽出範囲内の動画部分を抽出し、２以上のユーザで構成されるクラスタに対して、前記２以上のユーザにより指定された２以上の表示範囲に基づいて特定される抽出範囲内の動画部分を抽出する抽出ステップと、前記クラスタリングステップにより分けられた前記クラスタのそれぞれについて、前記抽出ステップにより抽出された前記動画部分を、クラスタを構成する各ユーザが利用する端末装置へ送信する送信ステップと、を含むことを特徴とする。
【００１４】
請求項８に記載の発明は、複数のユーザが同時に視聴可能な動画を表す仮想の映像面のうち、前記動画の一部が抽出される抽出範囲の数の上限を取得する数取得ステップと、前記動画を視聴しようとする複数のユーザのそれぞれについて、前記仮想の映像面のうちユーザにより指定された表示範囲を取得する範囲取得ステップと、前記範囲取得ステップにより取得された前記表示範囲に基づいて、前記動画を視聴しようとする複数のユーザを、前記数取得ステップにより取得された前記上限の数以下のクラスタに分けるクラスタリングステップであって、前記動画を視聴しようとするユーザの数が前記数取得ステップにより取得された前記上限の数以下である場合、互いに異なる表示範囲を指定するユーザを同一のクラスタに入れないクラスタリングステップと、前記クラスタリングステップにより分けられた前記クラスタのうち、１のユーザで構成されるクラスタに対して、前記１のユーザにより指定された表示範囲を抽出範囲として、前記動画のうち前記抽出範囲内の動画部分を抽出し、２以上のユーザで構成されるクラスタに対して、前記２以上のユーザにより指定された２以上の表示範囲に基づいて特定される抽出範囲内の動画部分を抽出する抽出ステップと、前記クラスタリングステップにより分けられた前記クラスタのそれぞれについて、前記抽出ステップにより抽出された前記動画部分を、クラスタを構成する各ユーザが利用する端末装置へ送信する送信ステップと、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１５】
請求項１、７又は８に記載の発明によれば、動画を視聴しようとする複数のユーザが、指定した表示範囲に基づいて、動画の一部が抽出される抽出範囲の数の上限以下の数のクラスタに分けられる。これらのクラスタのうち、１のユーザのみで構成されるクラスタについては、そのユーザが指定した表示範囲が抽出範囲として特定される。また、同一の表示範囲を指定した２以上のユーザのみで構成されるクラスタについては、これらのユーザが指定した表示範囲が抽出範囲として特定される。これらの場合、指定した表示範囲の部分の動画が抽出されて、そのユーザの端末装置へ送信される。従って、ユーザは希望する表示範囲で動画を視聴することができる。互いに異なる表示範囲を指定する２以上のユーザを少なくとも含むクラスタについては、これらのユーザが指定した２以上の表示範囲に基づいて抽出範囲が特定される。従って、このクラスタを構成するユーザは、希望に極力沿った表示範囲で動画を視聴することができる。このように、ユーザの数が抽出範囲の数の上限を超えても、全てのユーザは、希望する表示範囲又は希望に極力沿った表示範囲で動画を視聴することができる。
【００１６】
請求項２に記載の発明によれば、各ユーザは、現在の抽出範囲の中心点の位置のうち、指定した表示範囲の中心点の位置から最も近い位置の中心点を有する抽出範囲に対応するクラスタに入れられる。次いで、クラスタを構成するユーザにより指定された表示範囲の中心点の位置の重心で、現在の抽出範囲の中心点の重心が更新される。これらの処理が、抽出範囲の中心点の位置が移動しなくなるまで続けられる。各クラスタに属するユーザが指定した表示範囲の中心点の位置と、そのクラスタに対応する抽出範囲の中心点の最終的な位置との距離が、他のクラスタに対応する抽出範囲の中心点の最終的な位置との距離よりも近くなる。従って、１のユーザで構成されるクラスタについては、そのユーザが指定した表示範囲が抽出範囲として決定される。また、２以上のユーザで構成されるクラスタについては、これらのユーザの希望に極力沿った適切な表示範囲でユーザは動画を視聴することができる。
【００１７】
請求項３に記載の発明によれば、各クラスタについて、クラスタ位置又はクラスタ領域が決定される。複数のユーザは、指定した表示範囲の中心点の位置と、クラスタ位置又はクラスタ領域との位置関係に基づいてクラスタに分けられる。このクラスタ位置又はクラスタ領域はその後変更しないので、クラスタリングを再度行う必要がない。そのため、クラスタリングの処理負荷、処理時間を低減させることができる。
【００１８】
請求項４に記載の発明によれば、ユーザが指定した表示範囲の中心点の位置に加えて、ユーザが指定した表示倍率も加味されて、クラスタリングが行われる。従って、表示範囲の中心点の位置が相対的に近く、且つ表示倍率も相対的に近い２以上のユーザを同じクラスタに入れることができる。そのため、２以上のユーザで構成されるクラスタについて、これらのユーザの希望に極力沿った適切な表示範囲でユーザは動画を視聴することができる。
【００１９】
請求項５に記載の発明によれば、抽出範囲は、対応するクラスタに属する全てのユーザが指定した表示範囲を含む。そのため、各ユーザは、少なくとも希望する表示範囲の動画を視聴することができる。
【００２０】
請求項６に記載の発明によれば、優先度が相対的に高いユーザが優先的に、希望する表示範囲の動画を視聴することができる。
【図面の簡単な説明】
【００２１】
【図１】本実施形態の通信システムＳの概要構成例を示す図である。
【図２】（Ａ）は、全画面において、クラスタリングされたユーザのユーザ視点と、決定されたデコード視点との関係の一例を示す図である。（Ｂ）は、コンテンツ再生中のクライアント２の表示部２４ａに表示される画面の一例を示す図である。
【図３】（Ａ）、（Ｃ）、（Ｅ）は、ユーザリストの一例を示す図である。（Ｂ）、（Ｄ）、（Ｆ）は、デコード視点リストの一例を示す図である。
【図４】（Ａ）、（Ｃ）、（Ｅ）は、ユーザリストの一例を示す図である。（Ｂ）、（Ｄ）、（Ｆ）は、デコード視点リストの一例を示す図である。
【図５】（Ａ）、（Ｃ）、（Ｆ）は、ユーザリストの一例を示す図である。（Ｂ）、（Ｄ）、（Ｇ）は、デコード視点リストの一例を示す図である。（Ｅ）は、削除するクラスタを決定するためのユーザ視点とデコード視点との距離の和の計算結果の例を示す図である。
【図６】（Ａ）は、ユーザが指定した表示範囲とデコード範囲との関係を示す図である。（Ｂ）は、デコード最大視点数が３である場合の全画面におけるクラスタ領域及びユーザ視点の例を示す。
【図７】（Ａ）は、配信サーバ１の制御部１１におけるメイン処理の一例を示すフローチャートである。（Ｂ）は、配信サーバ１の制御部１１におけるデコード視点挿入処理の一例を示すフローチャートである。
【図８】（Ａ）は、配信サーバ１の制御部１１におけるクラスタリング処理の一例を示すフローチャートである。（Ｂ）は、配信サーバ１の制御部１１における１ステップクラスタリング処理の一例を示すフローチャートである。（Ｃ）は、配信サーバ１の制御部１１における全ステップクラスタリング処理の一例を示すフローチャートである。
【図９】は、配信サーバ１の制御部１１における所属決定処理の一例を示すフローチャートである。
【図１０】（Ａ）は、配信サーバ１の制御部１１における重心移動処理の一例を示すフローチャートである。（Ｂ）は、配信サーバ１の制御部１１におけるデコード視点追加処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態を図面に基づいて説明する。
【００２３】
［１．通信システムＳの構成及び動作概要］
図１は、本実施形態の通信システムＳの概要構成例を示す図である。図１に示すように、通信システムＳは、配信サーバ１及び複数のクライアント２を含んで構成される。配信サーバ１は、本発明の情報処理装置の一例である。クライアント２は、本発明の端末装置の一例である。配信サーバ１とクライアント２とはネットワークＮＷを介して通信可能になっている。ネットワークＮＷは、例えば、インターネット、携帯通信網、及びゲートウェイ等により構成される。
【００２４】
配信サーバ１は、例えばクライアント２からの要求に応じて、コンテンツをクライアント２へ送信する。配信サーバ１は、複数の異なるコンテンツを同時に別々の１又は複数のクライアント２へ送信することが可能であってもよい。コンテンツは、動画データを含む。動画データは、動画を表すデータである。また、コンテンツは、音声データを含んでいてもよい。コンテンツの送信は、例えばネットワークＮＷを介してストリーミングを用いて行われる。配信サーバ１は、所定のビデオカメラによる撮影中に、ビデオカメラから送信されてくるコンテンツをリアルタイムで配信するライブ配信を実行してもよい。或いは、配信サーバ１は、コンテンツを予め記憶し、記憶しておいたコンテンツを、予め定められた時間帯に複数のクライアント２へ同時に配信してもよい。
【００２５】
ビデオカメラで撮影された動画を例として、ビデオカメラの撮影範囲全領域を示す動画が仮想的なスクリーンに表示されたと仮定した場合、この動画を表示するスクリーンを全画面という。全画面の形状は例えば矩形であってもよい。全画面は、本発明の仮想の映像面の一例である。配信サーバ１は、全画面のうち、クライアント２のユーザによる操作部２５ａの操作に基づいて指定された表示範囲に基づいて決定される範囲の動画部分を抽出する。具体的には、配信サーバ１は、動画データから、決定された範囲に対応するデータをデコードする。これにより、全画面の動画の一部が抽出される。決定される範囲をデコード範囲という。デコード範囲は、本発明の抽出範囲の一例である。表示範囲及びデコード範囲の形状は、例えば矩形であってもよい。配信サーバ１は、デコードにより生成された動画データをクライアント２へ送信する。デコード範囲の決定方法については後述する。
【００２６】
クライアント２は、配信サーバ１から配信されてくるコンテンツを受信する。クライアント２は、受信したコンテンツを再生することにより、動画としての映像を、表示部２４ａの画面に表示させる。コンテンツの再生中、クライアント２は、操作部２５ａを用いたユーザによる疑似的なカメラワーク操作を受け付ける。カメラワークとは、撮影者がカメラを動かすことで、カメラの被写体に対する位置、カメラの被写体に対する角度、及び被写体のサイズを決める動作をいう。本実施形態では、全画面を示す動画データを構成する複数の画像フレームにおける表示対象に対するカメラワークをユーザがあたかも実際のカメラを動かすように操作部２５ａを操作して疑似的に行う。このような操作を、表示範囲の変更操作という。この操作により、ユーザは、全画面の中で所望の表示範囲を指定可能なように、表示範囲を変更することができる。ユーザは、表示範囲の変更操作により、全画面に対する表示範囲の位置座標を、画像フレームごとに異なるように指定することができる。また、ユーザは、表示範囲の変更操作により、全画面に対する表示範囲のサイズを拡大または縮小することができる。これにより、表示範囲内の画像を拡大または縮小することできる。なお、画像を拡大及び縮小する操作はできないようになっていてもよい。この場合、全画面に対する表示範囲の縦及び横の長さは固定である。クライアント２は、ユーザにより指定された表示範囲を示すカメラワークデータを配信サーバ１へ送信する。カメラワークデータは、例えば、コンテンツＩＤ、ユーザ識別子、全画面における表示範囲の横及び縦の位置を示す座標、拡大率を含む。拡大率は、表示範囲内の画像の表示倍率を示す。コンテンツＩＤは、ユーザが視聴するコンテンツを識別する識別情報である。ユーザ識別子は、ユーザを識別する識別情報である。カメラワークデータは、更に現在時刻を含んでもよい。クライアント２は、配信サーバ１から送信されてきた動画データを受信する。クライアント２は、受信された動画データに基づいて、全画面のうち、ユーザが指定した表示範囲に応じたデコード範囲内の動画を表示部２４ａに表示させる。クライアント２は、例えば、パーソナルコンピュータ、スマートフォン、携帯電話、テレビ、テレビゲーム機等であってもよい。
【００２７】
［２．各装置の構成］
次に、図１及び図３を参照して、本実施形態の通信システムＳに含まれる各装置の構成について説明する。配信サーバ１は、図１に示すように、制御部１１、記憶部１２、及びインターフェース部１３等を備えて構成される。これらの構成要素は、バス１４に接続されている。インターフェース部１３は、ネットワークＮＷに接続される。制御部１１は、コンピュータとしてのＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、及びＲＡＭ（Random Access Memory）等により構成される。記憶部１２は、例えばハードディスクドライブにより構成される。記憶部１２には、ＯＳ、及びサーバプログラム等が記憶されている。サーバプログラムは、コンテンツの配信処理等をＣＰＵに実行させるプログラムである。
【００２８】
また、記憶部１２には、サーバ最大視点数、ユーザ数管理テーブル、全ユーザ数が記憶される。サーバ最大視点数は、制御部１１が実行可能な動画のデコードの総数である。サーバ最大視点数は、例えば制御部１１の処理能力に応じた数である。サーバ最大視点数は、例えば通信システムＳの管理者により予め設定される。サーバ最大視点数は、制御部１１の処理能力として制御部１１が実行可能な動画のデコードの総数よりも小さい数であってもよい。ユーザ数管理テーブルは、現在配信中の１又は複数のコンテンツのそれぞれを現在視聴中のユーザの数を示す。具体的には、ユーザ数管理テーブルには、配信中のコンテンツごとに、コンテンツＩＤ及びユーザ数が対応付けて記憶される。コンテンツＩＤは、コンテンツを識別する識別情報である。全ユーザ数は、現在配信中の１又は複数のコンテンツを現在視聴中のユーザの数の合計である。
【００２９】
また、記憶部１２には、現在配信中のコンテンツごとに、コンテンツＩＤに対応付けて、ユーザリスト及びデコード視点リストが記憶される。ユーザリストには、コンテンツを視聴中のユーザが指定した視聴範囲に関する情報が記憶される。図３（Ａ）に示すように、ユーザリストには、コンテンツを視聴中のユーザごとに、ユーザ識別子、会員属性、ユーザ視点情報、デコード視点識別子及び距離が記憶される。ユーザ識別子は、ユーザを識別する識別情報である。会員属性は、通信システムＳを利用するユーザの会員としての属性を示す。会員属性として、「０」又は「１」が設定される。会員属性「１」のユーザは、会員属性「０」のユーザよりも優先度が高いユーザである。例えば、会員属性「０」のユーザは無料で通信システムＳを利用するユーザであり、会員属性「１」のユーザは有料で通信システムＳを利用するユーザであってもよい。なお、優先度は３段階以上あってもよい。ユーザ視点情報は、ユーザが指定した表示範囲を示す情報である。ユーザ視点情報は、ｘ座標、ｙ座標、及びｚ座標を含む。ｘ座標は、表示範囲の中心点の全画面における横方向の位置を示す。ｙ座標は、表示範囲の中心点の全画面における縦方向の位置を示す。ｚ座標は、ユーザが指定した動画の拡大率を示す。例えば、ｚ座標には、拡大率の１０００倍が設定されてもよい。全画面において、ユーザ視点情報に含まれるｘ座標及びｙ座標の組み合わせが示す表示範囲の中心点を、ユーザ視点という。或いは、仮想上の三次元空間にいて、ユーザ視点情報に含まれるｘ座標、ｙ座標及びｚ座標の組み合わせが示す点が、ユーザ視点と称されてもよい。本実施形態においては、表示範囲という用語と、ユーザ視点という用語が使用される。全画面において表示範囲が占める領域を重視する場合、表示範囲という用語を用い、全画面又は仮想上の三次元空間における表示範囲の位置を重視する場合、ユーザ視点という用語を用いる。デコード視点識別子は、ユーザ視点に対して割り当てられたデコード視点を識別する識別情報である。距離は、ユーザ視点からデコード視点までの長さである。
【００３０】
制御部１１は、クライアント２から受信したカメラワークデータに基づいて、ユーザ視点情報を更新する。例えば、制御部１１は、受信したカメラワークデータに含まれる座標ｘ、座標ｙ、及び拡大率に基づいて、ユーザ視点情報を生成する。カメラワークデータに含まれるユーザ識別子がユーザリストに記憶されていない場合、制御部１１は、ユーザ識別子及び生成したユーザ視点情報をユーザリストに追加する。カメラワークデータに含まれるユーザ識別子がユーザリストに記憶されている場合、制御部１１は、ユーザリストにおいて、ユーザ識別子に対応するユーザ視点情報を、生成したユーザ視点情報で書き換える。クライアント２から、ユーザの操作に基づいてコンテンツの再生を終了することを示すメッセージを受信した場合、制御部１１は、ユーザリストから、メッセージに含まれるユーザ識別子に対応するユーザ視点情報を削除する。
【００３１】
デコード視点リストには、コンテンツに対して決定されたデコード範囲に関する情報が記憶される。本実施形態においては、１つのコンテンツを視聴する複数のユーザが１又は複数のクラスタに分けられる。デコード範囲はクラスタごとに決定される。図３（Ｂ）に示すように、デコード視点リストには、デコード範囲ごとに、デコード視点識別子、デコード視点情報、ユーザ識別子リスト、及びユーザ数が記憶される。デコード視点識別子は、デコード範囲を識別する識別情報である。デコード視点情報は、デコード範囲を示す情報である。デコード視点情報は、ｘ座標、ｙ座標、及びｚ座標を含む。ｘ座標は、デコード範囲の中心点の全画面における横方向の位置を示す。ｙ座標は、デコード範囲の中心点の全画面における縦方向の位置を示す。ｚ座標は、動画の拡大率を示す。例えば、ｚ座標には、拡大率の１０００倍が設定されてもよい。全画面において、デコード視点情報に含まれるｘ座標及びｙ座標の組み合わせが示すデコード範囲の中心点を、デコード視点という。或いは、仮想上の三次元空間にいて、デコード視点情報に含まれるｘ座標、ｙ座標及びｚ座標の組み合わせが示す点が、デコード視点と称されてもよい。本実施形態においては、デコード範囲という用語と、デコード視点という用語が使用される。全画面においてデコード範囲が占める領域を重視する場合、デコード範囲という用語を用い、全画面又は仮想上の三次元空間におけるデコード範囲の位置を重視する場合、デコード視点という用語を用いる。ユーザ識別子リストは、デコード視点に対応するクラスタに含まれるユーザのユーザ識別子のリストである。ユーザ数は、デコード視点に対応するクラスタに含まれるユーザの数を示す。
【００３２】
次に、クライアント２は、図１に示すように、制御部２１、記憶部２２、ビデオＲＡＭ２３、映像制御部２４、操作処理部２５、音声制御部２６、及びインターフェース部２７等を備えて構成される。これらの構成要素は、バス２８に接続されている。映像制御部２４には、ディスプレイを備える表示部２４ａが接続される。制御部２１は、コンピュータとしてのＣＰＵ、ＲＯＭ、及びＲＡＭ等により構成される。操作処理部２５には、操作部２５ａが接続される。操作部２５ａには、例えば、マウス、キーボード、リモコン等がある。表示部２４ａと操作部２５ａとを兼ねるタッチパネルが適用されてもよい。制御部２１は、ユーザによる操作部２５ａからの操作指示を、操作処理部２５を介して受け付ける。音声制御部２６には、スピーカ２６ａが接続される。インターフェース部２７は、ネットワークＮＷに接続される。記憶部２２は、例えば、ハードディスクドライブ又はフラッシュメモリ等により構成される。記憶部２２には、ＯＳ、及びプレイヤーソフトウェア等が記憶されている。プレイヤーソフトウェアは、コンテンツの受信及び再生処理等をＣＰＵに実行させるプログラムである。
【００３３】
［３．ユーザが指定した表示範囲に基づくデコード範囲の決定］
次に、図２乃至図５を用いて、コンテンツを視聴中のユーザが指定した表示範囲に基づくデコード範囲の決定方法について説明する。配信サーバ１が実行可能な動画のデコードの総数は、サーバ最大視点数として予め決められている。コンテンツを視聴中のユーザの総数がサーバ最大視点数以下である場合、配信サーバ１は、各ユーザが指定した表示範囲をデコードすることができる。しかしながら、コンテンツを視聴中のユーザの総数がサーバ最大視点数を超える場合、配信サーバ１は、サーバ最大視点数を超える人数のユーザが指定した表示範囲をデコードすることができない。そこで、配信サーバ１は、視聴中のユーザを、サーバ最大視点数以下のクラスタに分ける。配信サーバ１は、クラスタごとにデコード範囲を決定する。そして、配信サーバ１は、クラスタごとにデコード範囲からデコードを実行する。配信サーバ１は、デコードされた動画部分の動画データを、クラスタを構成するユーザが利用するクライアント２へ送信する。
【００３４】
サーバ最大視点数は、現在配信中の全コンテンツに対応する数である。従って、配信サーバ１は、現在配信中のコンテンツごとに、デコード可能なデコード範囲の数の上限を取得する。この上限を、コンテンツ最大視点数という。コンテンツ最大視点数は、本発明の動画の一部が抽出される抽出範囲の数の上限の一例である。或る注目するコンテンツのコンテンツ最大視点数ｐは、以下の式１で計算されてもよい。
【００３５】
ｐ＝ａ＊ｕ／ａｌｌ  ・・・（式１）
式１において、ａは、サーバ最大視点数であり、ｕは、注目するコンテンツを視聴中のユーザの数であり、ａｌｌは、全ユーザ数である。実際のコンテンツ最大視点数は、式１で計算されるｐの値よりも小さくてもよい。注目するコンテンツを視聴中のユーザの数及び全ユーザ数は常に変化し得る。そのため、配信サーバ１は、注目するコンテンツについてデコードを実行しようとするごとに、コンテンツ最大視点数を計算する。
【００３６】
配信サーバ１は、注目するコンテンツに対応するユーザリストから、各ユーザのユーザ視点情報を、注目するコンテンツを視聴しようとするユーザが指定した表示範囲を示す情報として取得する。配信サーバ１は、デコードを実行しようとするごとに、ユーザ視点情報を取得してもよい。
【００３７】
配信サーバ１は、取得した視点情報が示す表示範囲に基づいて、注目するコンテンツを視聴しようとする複数のユーザを、コンテンツ最大視点数以下の数分のクラスタに分ける。配信サーバ１は、ユーザ視点間の距離が比較的短いユーザ同士を同じクラスタに入れてもよい。このとき、配信サーバ１は、互いに同一の表示範囲を指定する２以上のユーザを同一のクラスタに入れてもよい。本実施形態において、配信サーバ１は、ユーザ視点のｘ〜ｚ座標に基づいて、クラスタリングを行う。すなわち、配信サーバ１は、拡大率を考慮してクラスタリングを実行する。しかしながら、配信サーバ１は、ｘ座標及びｙ座標のみに基づいてクラスタリングを行ってもよい。注目するコンテンツを視聴しようとするユーザの数がコンテンツ最大視点数以下である場合、配信サーバ１は、互いに異なる表示範囲を指定するユーザを同一のクラスタに入れない。従って、１つのクラスタは、１人のユーザのみで構成されるか、又は同一の表示範囲を構成する２以上のユーザのみで構成される。一方、注目するコンテンツを視聴しようとするユーザの数がコンテンツ最大視点数よりも多い場合、少なくとも１つのクラスタが、互いに異なる表示範囲を指定する２人以上のユーザを含む場合がある。
【００３８】
配信サーバ１は、互いに同一の表示範囲を指定する２以上のユーザを別々のクラスタに入れてもよい。この場合、クラスタの数は増加する。しかしながら、クラスタの総数がコンテンツ最大視点数以下となる限りにおいては、クラスタの総数は増加してもよい。
【００３９】
配信サーバ１は、分けられたクラスタのうち、１人のユーザのみで構成されるクラスタに対して、そのユーザにより指定された表示範囲を、デコード範囲として特定する。また、配信サーバ１は、互いに同一の表示範囲を指定する２以上のユーザのみで構成されるクラスタに対して、これらのユーザにより指定された表示範囲を、デコード範囲として特定する。一方、配信サーバ１は、互いに異なる表示範囲を指定する２人以上ユーザを含むクラスタに対して、これらのユーザにより指定された表示範囲に基づくデコード範囲を特定する。配信サーバ１は、クラスタごとに、全画面のうち、特定されたデコード範囲の動画部分のデコードを実行する。配信サーバ１は、クラスタごとに、デコードにより生成された動画データを、そのクラスタを構成するユーザが利用するクライアント２へ送信する。１人のユーザのみで構成されるクラスタ、及び互いに同一の表示範囲を指定する２以上のユーザのみで構成されるクラスタについて、これらのユーザは、ユーザが希望する表示範囲で動画を視聴することができる。互いに異なる表示範囲を指定する２人以上のユーザを少なくとも含むクラスタについて、これらのユーザが指定した表示範囲に基づいてデコード範囲が特定される。そのため、これらのユーザは、ユーザの希望に極力添ったデコード範囲で、動画を視聴することができる。そのため、ユーザ数がコンテンツ最大視点数を超えても、全てのユーザは、希望する表示範囲又は希望に極力沿ったデコード範囲で動画を視聴することができる。
【００４０】
図２（Ａ）は、全画面において、クラスタリングされたユーザのユーザ視点と、決定されたデコード視点との関係の一例を示す。図２（Ａ）は、便宜上、ユーザ視点のｘ座標及びｙ座標のみを用いてクラスタリングが実行された場合の例を示す。図２（Ａ）において、ユーザ視点とデコード視点とを結ぶ線は、ユーザ視点に対応するユーザが、デコード視点に対応するクラスタに入れられたことを示す。また、図２（Ａ）の例では、各ユーザは、複数のデコード視点のうちユーザ視点と最も近いデコード視点に対応するクラスタに入れられている。
【００４１】
図２（Ｂ）は、コンテンツ再生中のクライアント２の表示部２４ａに表示される画面の一例を示す。図２（Ｂ）に示すように、表示部２４ａには、メインスクリーン１１０及びサブスクリーン１２０が表示される。メインスクリーン１１０は、全画面の動画うちデコード範囲の動画部分が表示される画面である。サブスクリーン１２０は、全画面の動画が表示される画面である。サブスクリーン１２０はメインスクリーン１１０よりも小さい。サブスクリーン１２０に表示される動画の解像度は、メインスクリーン１１０に表示される動画の解像度より低くてもよい。サブスクリーン１２０には、表示範囲枠１３０及びデコード範囲枠１４０のうち少なくとも表示範囲枠１３０が表示される。表示範囲枠１３０は、全画面のうちユーザが指定した表示範囲を示す枠である。デコード範囲枠１４０は、全画面のうちデコード範囲を示す枠である。ユーザが指定した表示範囲とデコード範囲とが異なる場合にのみ、デコード範囲枠１４０が表示される。ユーザはサブスクリーン１２０を見ることにより、ユーザが指定した表示範囲でメインスクリーン１１０に動画が表示されているか否かを確認することができる。
【００４２】
本実施形態のクラスタリング及びデコード範囲の決定方法をより具体的に説明する。配信サーバ１は、コンテンツ最大視点数分のデコード範囲を初期設定する。例えば、配信サーバ１は、デコード視点のｘ座標及びｙ座標をランダムに決定し、デコード視点のｚ座標を１０００に決定してもよい。或いは、配信サーバ１は、注目するコンテンツを視聴しようとするユーザの何れかのユーザ視点と同一のデコード視点を決定してもよい。
【００４３】
配信サーバ１は、ユーザごとに、ユーザ視点と複数のデコード視点それぞれとの距離を計算する。そして、配信サーバ１は、複数のデコード視点のうち、ユーザ視点との距離が最も近いデコード視点に対応するクラスタに、そのユーザ視点に対応するユーザを入れる。
【００４４】
各ユーザがどのクラスタに所属するかが決定されると、配信サーバ１は、デコード視点を移動させる。具体的には、配信サーバ１は、クラスタごとに、そのクラスタを構成するユーザのユーザ視点の重心を計算する。そして、配信サーバ１は、計算した重心の座標で、デコード視点の座標を更新する。本実施形態では、各ユーザが所属するクラスタの決定と、デコード視点の移動とを含めた処理を、クラスタリングと称する。
【００４５】
配信サーバ１は、このようなクラスタリングを、全てのデコード視点の位置が更新前の位置から変化しなくなるまで繰り返す。最終的な各クラスタに所属するユーザのユーザ視点の位置から、そのクラスタに対応するデコード視点までの距離が、他のクラスタに対応するデコード視点の位置までの距離よりも近くなる。また、ユーザ視点の重心が、デコード範囲に決定される。その結果、最終的に１人のユーザのみで構成されるクラスタに対して、そのユーザが指定した表示範囲がデコード範囲に決定される。また、最終的に、互いに同一の表示範囲を指定する２人以上のユーザのみで構成されるクラスタに対して、これらのユーザが指定した表示範囲がデコード範囲に決定される。また、最終的に、互いに異なる表示範囲を指定する２人以上のユーザを少なくとも含むクラスタに対して、これらのユーザの希望に極力沿ったデコード範囲が決定される。
【００４６】
コンテンツ最大視点数は常に変化する可能性がある。コンテンツ最大視点数が増加した場合、配信サーバ１は、これに応じてクラスタ及びデコード視点を追加することができる。このとき、配信サーバ１は、ユーザ視点とユーザが所属するクラスタに対応するデコード視点との距離が遠いユーザから順に、追加されるクラスタに入れて、１人のユーザのみで構成されるクラスタを作成してもよい。そして、配信サーバ１は、そのユーザのユーザ視点をデコード視点に決定してもよい。これにより、配信サーバ１は、ユーザが望む表示範囲とデコード範囲との隔たりが大きいユーザの数を削減することができる。或いは、配信サーバ１は、所属するユーザの数が最も多いクラスタから、何れかのユーザを外し、そのユーザを、追加されるクラスタに入れ替えてもよい。これにより、配信サーバ１は、クラスタ間におけるユーザ数のばらつきが小さくなるようにしてもよい。
【００４７】
コンテンツ最大視点数が減少した場合、配信サーバ１は、これに応じてクラスタ及びデコード視点を削除する必要がある。この場合、配信サーバ１は、全デコード視点のそれぞれについて、各ユーザ視点からの距離の和を計算してもよい。配信サーバ１は、全デコード視点のうち、計算した距離の和が大きいデコード視点に対応するクラスタから順に、クラスタを削除してもよい。すなわち、配信サーバ１は、全体としてユーザ視点から遠いデコード視点を削除する。これにより、配信サーバ１は、ユーザが望む表示範囲とデコード範囲との隔たりが大きくなることを極力抑止しながら、デコード視点を削除することができる。或いは、配信サーバ１は、所属するユーザの数が最も少ないクラスタから順にクラスタを削除してもよい。これにより、配信サーバ１は、クラスタ間におけるユーザ数のばらつきが小さくなるようにしてもよい。
【００４８】
配信サーバ１は、クラスタリングを行う際、各ユーザの会員属性をユーザリストから取得してもよい。そして、配信サーバ１は、ユーザの会員属性が示す優先度が高いほど、ユーザが、そのユーザ１人のみで最終的に構成されるクラスタに優先的に入れられるように、クラスタリングを行ってもよい。これにより、配信サーバ１は、優先度が高いユーザが希望する表示範囲をデコード範囲として決定することができる。例えば、コンテンツ最大視点数が増加した場合、配信サーバ１は、互いに異なる表示範囲を指定する２人以上のユーザを少なくとも含むクラスタに所属するユーザの中から、優先度が高いユーザを優先的に、新しいクラスタに入れて、そのユーザ１人のみで構成されるクラスタを作成してもよい。
【００４９】
次に、図３乃至図５に示されるユーザリスト及びデコード視点リストを参照して、クラスタリングの具体例について説明する。図３（Ａ）は、コンテンツ配信開始時におけるユーザリストの一例を示す図である。図３（Ｂ）は、コンテンツ配信開始時におけるデコード視点リストの一例を示す図である。コンテンツ配信開始時、コンテンツ最大視点数が５であり、ユーザ数は１０であるとする。コンテンツ配信開始時、例えば全ユーザのユーザ視点は同一である。そのため、配信サーバ１は、図３（Ａ）に示すように、ユーザリストに、１０人分のユーザ視点情報として同一のユーザ視点情報を格納する。また、全ユーザのユーザ視点は同一であるので、配信サーバ１は、図３（Ｂ）に示すように、デコード視点リストに、全ユーザのユーザ視点情報と同一の１つのデコード視点情報を初期的に格納する。
【００５０】
図３（Ｃ）は、前回のデコード時からコンテンツ最大視点数が変化しない場合のクラスタリング前のユーザリストの一例を示す図である。図３（Ｄ）は、前回のデコード時からコンテンツ最大視点数が変化しない場合のクラスタリング前のデコード視点リストの一例を示す図である。コンテンツ配信開始から、前回のデコード時までに、ユーザ識別子「２」、「４」、「６」及び「１０」のユーザが表示範囲を変更している。図３（Ｄ）に示すデコード視点リストには、前回のデコード時に決定されたデコード視点情報が格納されている。図３（Ｄ）に示すように、配信サーバ１はこれまでに、表示範囲を変更している４人のユーザのユーザ視点情報と同一の４個のデコード視点情報をデコード視点リストに追加している。図３（Ｃ）に示すように、今回のデコード時、更にユーザ識別子「１」及び「３」のユーザが表示範囲を変更した。配信サーバ１は、クラスタリングを実行する。
【００５１】
図３（Ｅ）は、前回のデコード時からコンテンツ最大視点数が変化しない場合のクラスタリング後のユーザリストの一例を示す図である。図３（Ｆ）は、前回のデコード時からコンテンツ最大視点数が変化しない場合のクラスタリング後のデコード視点リストの一例を示す図である。図３（Ｆ）に示すように、クラスタリングの結果、デコード視点リストにおいて、デコード視点識別子「１」のユーザ識別子リストには、ユーザ識別子「１」、「３」、「５」、「７」、「８」及び「１０」が格納されている。図３（Ｃ）に示すように、ユーザ識別子「５」、「７」、「８」及び「１０」のユーザ視点情報は同一である。一方、ユーザ識別子「１」のユーザ視点情報及びユーザ識別子「３」のユーザ視点情報は、ユーザ識別子「５」、「７」、「８」及び「１０」のユーザ視点情報と異なる。従って、図３（Ｆ）に示すように、デコード視点リストにおいて、デコード視点識別子「１」のデコード視点の座標は、ユーザ識別子「１」、「３」、「５」、「７」、「８」及び「１０」のユーザ視点の座標の重心である。
【００５２】
図４（Ａ）は、前回のデコード時からコンテンツ最大視点数が増加した場合のクラスタリング前のユーザリストの一例を示す図である。図４（Ｂ）は、前回のデコード時からコンテンツ最大視点数が増加した場合のクラスタリング前のデコード視点リストの一例を示す図である。今回のデコード時、コンテンツ最大視点数が５から６に増加した。また、図４（Ａ）に示すように、ユーザ識別子「５」のユーザが表示範囲を変更した。
【００５３】
図４（Ｃ）は、前回のデコード時からコンテンツ最大視点数が増加した場合の１回目のクラスタリング終了後のユーザリストの一例を示す図である。図４（Ｄ）は、前回のデコード時からコンテンツ最大視点数が増加した場合の１回目のクラスタリング終了後のデコード視点リストの一例を示す図である。配信サーバ１は、デコード視点識別子「１」〜「５」のデコード視点に基づいて、ユーザ識別子「１」〜「１０」のユーザを５個のクラスタに分けて、デコード視点を移動させる。その結果、図４（Ｄ）に示すように、ユーザ識別子「１」、「３」、「５」、「７」、「８」及び「１０」のユーザは、デコード視点識別子「１」に対応するクラスタに分けられた。図４（Ｃ）に示すように、ユーザ識別子「１」〜「１０」のユーザのうち、ユーザ視点とユーザが所属するクラスタに対応するデコード視点との距離が最も遠いユーザは、ユーザ識別子「５」のユーザである。そこで、配信サーバ１は、図４（Ｄ）に示すように、デコード視点識別子「６」に対応付けて、ユーザ識別子「５」のユーザのユーザ視点情報と同一のデコード視点情報を、デコード視点リストに追加する。なお、図４（Ｃ）に示すように、ユーザ識別子「１」〜「１０」のユーザのうち、ユーザ識別子「１」のユーザの会員属性は「１」であり、他のユーザの会員属性は「０」である。そのため、配信サーバ１は、デコード視点識別子「６」に対応付けて、ユーザ識別子「１」のユーザのユーザ視点情報と同一のデコード視点情報を、デコード視点リストに追加してもよい。
【００５４】
図４（Ｅ）は、前回のデコード時からコンテンツ最大視点数が増加した場合の全クラスタリング終了後のユーザリストの一例を示す図である。図４（Ｆ）は、前回のデコード時からコンテンツ最大視点数が増加した場合の全クラスタリング終了後のデコード視点リストの一例を示す図である。配信サーバ１は、デコード視点識別子「１」〜「６」のデコード視点の位置が変化しなくなるまでクラスタリングを繰り返す。その結果、図４（Ｅ）及び図４（Ｆ）に示すように、デコード視点識別子「６」に対応するクラスタには、ユーザ識別子「５」のユーザのみが所属することとなった。
【００５５】
図５（Ａ）は、前回のデコード時からコンテンツ最大視点数が減少した場合のクラスタリング前のユーザリストの一例を示す図である。図５（Ｂ）は、前回のデコード時からコンテンツ最大視点数が減少した場合のクラスタリング前のデコード視点リストの一例を示す図である。今回のデコード時、コンテンツ最大視点数が６から５に減少した。また、図５（Ａ）に示すように、ユーザ識別子「４」のユーザが表示範囲を変更した。
【００５６】
図５（Ｃ）は、前回のデコード時からコンテンツ最大視点数が減少した場合の１回目のクラスタリング終了後のユーザリストの一例を示す図である。図５（Ｄ）は、前回のデコード時からコンテンツ最大視点数が減少した場合の１回目のクラスタリング終了後のデコード視点リストの一例を示す図である。配信サーバ１は、デコード視点識別子「１」〜「６」のデコード視点に基づいて、ユーザ識別子「１」〜「１０」のユーザを６個のクラスタに分けて、デコード視点を移動させる。なお、図５（Ｃ）の例では、デコード視点識別子「３」に対応するクラスタには何れのユーザも所属していない。
【００５７】
図５（Ｅ）は、削除するクラスタを決定するためのユーザ視点とデコード視点との距離の和の計算結果の例を示す図である。図５（Ｅ）に示すように、配信サーバ１は、デコード視点識別子「１」〜「６」のそれぞれについて、各ユーザ視点との距離を計算する。また、配信サーバ１は、デコード視点識別子「１」〜「６」のそれぞれについて、ユーザ識別子「１」〜「１０」について計算した距離の和を計算する。その結果、デコード視点識別子「１」〜「６」のうち、デコード視点識別子「３」について計算された距離の和が最も大きい。
【００５８】
図５（Ｆ）は、前回のデコード時からコンテンツ最大視点数が減少した場合の全クラスタリング終了後のユーザリストの一例を示す図である。図５（Ｇ）は、前回のデコード時からコンテンツ最大視点数が減少した場合の全クラスタリング終了後のデコード視点リストの一例を示す図である。図５（Ｇ）に示すように、配信サーバ１は、デコード視点リストから、デコード視点識別子「３」に対応するデコード視点情報を削除する。そして、配信サーバ１は、デコード視点識別子「１」、「２」、「４」〜「６」のデコード視点の位置が変化しなくなるまでクラスタリングを繰り返す。
【００５９】
［４．変形例］
上述したデコード範囲の決定において、配信サーバ１は、クラスタに所属するユーザのユーザ視点のｘ〜ｚ座標の重心がデコード視点のｘ〜ｚ座標に決定されていた。従って、全画面に対するデコード範囲のサイズは、クラスタに所属する複数のユーザが指定した表示範囲のサイズの平均値であった。しかしながら、配信サーバ１は、クラスタに所属する複数のユーザが指定した表示範囲を全部含むように、デコード範囲のサイズを決定してもよい。この場合、クライアント２の表示部２４ａには、ユーザが希望する大きさよりも小さく動画が表示されるものの、各ユーザは、少なくとも希望する表示範囲の動画を視聴することができる。図６（Ａ）は、ユーザが指定した表示範囲とデコード範囲との関係を示す図である。図６（Ａ）に示すように、クラスタに３人のユーザが属し、これらのユーザが表示範囲ＵＡ１〜ＵＡ３を指定した。デコード視点Ｄの位置はユーザ視点の重心である。表示範囲ＵＡ１〜ＵＡ３のサイズの平均値を、デコード範囲のサイズとした場合のデコード範囲は、ＤＡ１である。デコード範囲ＤＡ１は、表示範囲ＵＡ１〜ＵＡ３と重なる領域が比較的小さい。一方、デコード視点Ｄを中心として、表示範囲ＵＡ１〜ＵＡ３の全てを含むように決定されたデコード範囲ＤＡ２は、表示範囲ＵＡ１〜ＵＡ３のそれぞれの全体と重なる。
【００６０】
上述したクラスタリングにおいて、配信サーバ１は、デコード最大視点数分のデコード視点を初期設定した後、デコード視点の位置が変化しなくなるまで、デコード視点の移動を伴うクラスタリングを繰り返していた。しかしながら、配信サーバ１は、全画面内に、デコード最大視点数分のクラスタ位置を決定してもよい。クラスタ位置は、クラスタの基準となる位置である。クラスタ位置はデコード視点の位置と同一であってもよいし、デコード視点の位置と異なってもよい。例えば、配信サーバ１は、ランダムにデコード視点を決定してもよい。配信サーバ１は、クラスタ位置とユーザ視点の位置との位置関係に基づいてユーザを複数のクラスタに分ける。例えば、配信サーバ１は、複数のクラスタ位置のうち、ユーザ視点との距離が最も近いクラスタ位置に対応するクラスタに、そのユーザ視点に対応するユーザを入れる。その後、配信サーバ１は、クラスタ位置を変更しない。この方法の場合、配信サーバ１は、クラスタ位置の移動を伴わないクラスタリングを１回行えばよいので、クラスタリングの処理負荷及び処理時間を削減することができる。
【００６１】
或いは、配信サーバ１は、全画面内に、デコード最大視点数分のクラスタ領域を決定してもよい。クラスタ領域は、クラスタに所属するユーザのユーザ視点の範囲を示す。全てのクラスタ領域のサイズは同一であってもよいし、クラスタ領域ごとにサイズが異なってもよい。また、全てのクラスタ領域の形状は同一であってもよいし、クラスタ領域ごとに形状が異なってもよい。配信サーバ１は、クラスタ領域同士が重ならないように各クラスタ領域を決定してもよいし、少なくとも一部のクラスタ領域同士が重なってもよい。配信サーバ１は、クラスタ領域とユーザ視点の位置との位置関係に基づいてユーザを複数のクラスタに分ける。例えば、配信サーバ１は、複数のクラスタ領域のうち、ユーザ視点を含むクラスタ領域に対応するクラスタに、そのユーザ視点に対応するユーザを入れる。その後、配信サーバ１は、クラスタ領域を変更しない。この方法の場合も、クラスタリングの処理負荷及び処理時間を削減することができる。図６（Ｂ）は、デコード最大視点数が３である場合の全画面におけるクラスタ領域及びユーザ視点の例を示す。図６（Ｂ）に示すように、配信サーバ１は、例えば全画面を２等分して、クラスタ領域ＣＡ１及びＣＡ２を決定する。また、配信サーバ１は、全画面内の所定の領域又はランダムな領域を、クラスタ領域ＣＡ３に決定する。その結果、クラスタ領域ＣＡ１とクラスタ領域ＣＡ３とが一部重複し、クラスタ領域ＣＡ２とクラスタ領域ＣＡ３とが一部重複する。全画面内には、ユーザ視点ＵＰ１〜ＵＰ５が存在する。ユーザ視点ＵＰ１は、クラスタ領域ＣＡ１のみに含まれる。そのため、配信サーバ１は、ユーザ視点ＵＰ１に対応するユーザを、クラスタ領域ＣＡ１に対応するクラスタに入れる。ユーザ視点ＵＰ２は、クラスタ領域ＣＡ１及びＣＡ３の両方に含まれる。この場合、配信サーバ１は、例えばユーザ視点の位置から最も近い中心点を有するクラスタ領域に対応するクラスタに、そのユーザ視点に対応するユーザを入れてもよい。配信サーバ１は、ユーザ視点ＵＰ２に対応するユーザを、クラスタ領域ＣＡ１に対応するクラスタに入れる。ユーザ視点ＵＰ３〜ＵＰ５は、クラスタ領域ＣＡ２及びＣＡ３の両方に含まれる。配信サーバ１は、ユーザ視点ＵＰ３及びＵＰ４に対応するユーザを、クラスタ領域ＣＡ３に対応するクラスタに入れる。配信サーバ１は、ユーザ視点ＵＰ５に対応するユーザを、クラスタ領域ＣＡ２に対応するクラスタに入れる。
【００６２】
クラスタ領域を用いる場合、配信サーバ１は、クラスタに所属するユーザが指定した表示範囲の中心の位置の重心をデコード範囲の中心の位置に決定し、表示範囲のサイズの平均をデコード範囲のサイズに決定してもよい。或いは、配信サーバ１は、クラスタに所属するユーザが指定した表示範囲全てを含むように、デコード範囲を決定してもよい。或いは、配信サーバ１は、クラスタ領域と同一のデコード範囲を決定してもよい。或いは、配信サーバ１は、クラスタ領域を含むデコード範囲を決定してもよい。
【００６３】
［５．通信システムＳの動作］
次に、図７乃至図１０を参照して、通信システムＳの動作について説明する。図７（Ａ）は、配信サーバ１の制御部１１におけるメイン処理の一例を示すフローチャートである。注目するコンテンツのライブ配信が開始すると、制御部１１は、メイン処理を実行する。図７（Ａ）に示すように、制御部１１は、サーバ最大視点数ａ、注目するコンテンツを視聴する現在のユーザの数ｕ、及び現在の全ユーザ数ａｌｌに基づいて、コンテンツ最大視点数ｐを決定する（ステップＳ１）。具体的には、制御部１１は、上述した式１を計算する。次いで、制御部１１は、デコード視点挿入処理を実行する（ステップＳ２）。デコード視点挿入処理では、会員属性が示す優先度が高いユーザから優先的に、ユーザ視点情報と同一のデコード視点情報がデコード視点リストに挿入される。これにより、デコード視点が初期設定される。
【００６４】
図７（Ｂ）は、配信サーバ１の制御部１１におけるデコード視点挿入処理の一例を示すフローチャートである。図７（Ｂ）に示すように、制御部１１は、デコード視点リストを初期化して、会員属性を１に設定する（ステップＳ１１）。次いで、制御部１１は、ユーザ番号ｊを１に設定する（ステップＳ１２）。次いで、制御部１１は、ユーザリストからユーザ識別子［ｊ］に対応する会員属性を取得する。ユーザ識別子［ｊ］は、ユーザリストに含まれるユーザ識別子のうち、ｊ番目に位置するユーザ識別子である。そして、制御部１１は、会員属性ｉが、取得した会員属性と一致するか否かを判定する（ステップＳ１３）。このとき、制御部１１は、会員属性ｉが、取得した会員属性と一致すると判定した場合には（ステップＳ１３：ＹＥＳ）、ステップＳ１４に進む。一方、制御部１１は、会員属性ｉが、取得した会員属性と一致しないと判定した場合には（ステップＳ１３：ＮＯ）、ステップＳ２０に進む。
【００６５】
ステップＳ１４において、制御部１１は、ユーザリストからユーザ識別子［ｊ］に対応するユーザ視点情報を取得する。そして、制御部１１は、取得したユーザ視点情報と同一のデコード視点情報がデコード視点リストに既に存在するか否かを判定する。このとき、制御部１１は、ユーザ視点情報と同一のデコード視点情報が存在すると判定した場合には（ステップＳ１４：ＹＥＳ）、ステップＳ１８に進む。一方、制御部１１は、ユーザ視点情報と同一のデコード視点情報が存在しないと判定した場合には（ステップＳ１４：ＮＯ）、ステップＳ１５に進む。
【００６６】
ステップＳ１５において、制御部１１は、デコード視点リストに含まれるデコード視点情報の数がコンテンツ最大視点数ｐ未満であるか否かを判定する。このとき、制御部１１は、デコード視点情報の数がコンテンツ最大視点数ｐ未満であると判定した場合には（ステップＳ１５：ＹＥＳ）、ステップＳ１６に進む。一方、制御部１１は、デコード視点情報の数がコンテンツ最大視点数ｐ未満ではないと判定した場合には（ステップＳ１５：ＮＯ）、ステップＳ１９に進む。
【００６７】
ステップＳ１６において、制御部１１は、新しいデコード視点識別子を付与する。次いで、制御部１１は、デコード視点リストに、ユーザ識別子［ｊ］に対応するユーザ視点情報と同一のデコード視点情報と、付与したデコード視点識別子とを挿入する（ステップＳ１７）。次いで、制御部１１は、ユーザリストにおいて、ユーザ識別子［ｊ］に対応するデコード視点識別子を、ユーザ識別子［ｊ］に対応するユーザ視点情報と同一のデコード視点情報に対応するデコード視点識別子に設定する（ステップＳ１８）。次いで、制御部１１は、ステップＳ２０に進む。
【００６８】
ステップＳ１９において、制御部１１は、ユーザリストにおいて、ユーザ識別子［ｊ］に対応するデコード視点識別子を「該当なし」に設定して、ステップＳ２０に進む。
【００６９】
ステップＳ２０において、制御部１１は、ユーザ番号ｊがユーザ数ｕと一致するか否かを判定する。このとき、制御部１１は、ユーザ番号ｊがユーザ数ｕと一致しないと判定した場合には（ステップＳ２０：ＮＯ）、ステップＳ２１に進む。ステップＳ２１において、制御部１１は、ユーザ番号ｊを１増加させて、ステップＳ１３に進む。一方、制御部１１は、ユーザ番号ｊがユーザ数ｕと一致すると判定した場合には（ステップＳ２０：ＹＥＳ）、ステップＳ２２に進む。
【００７０】
ステップＳ２２において、制御部１１は、会員属性ｉが０であるか否かを判定する。このとき、制御部１１は、会員属性ｉが０ではないと判定した場合には（ステップＳ２２：ＮＯ）、ステップＳ２３に進む。ステップＳ２３において、制御部１１は、会員属性ｉを１減少させて、ステップＳ１２に進む。一方、制御部１１は、会員属性ｉが０であると判定した場合には（ステップＳ２２：ＹＥＳ）、デコード視点挿入処理を終了させる。
【００７１】
デコード視点挿入処理を終えると、制御部１１は、図７（Ａ）に示すように、クライアント２から受信したカメラワークデータに基づいて、ユーザリスト内のユーザ視点情報を更新する（ステップＳ３）。次いで、制御部１１は、ステップＳ１と同様の方法で、コンテンツ最大視点数ｐを決定する（ステップＳ４）。次いで、制御部１１は、クラスタリング処理を実行する（ステップＳ５）。
【００７２】
図８（Ａ）は、配信サーバ１の制御部１１におけるクラスタリング処理の一例を示すフローチャートである。図８（Ａ）に示すように、制御部１１は、コンテンツ最大視点数ｐが、デコード視点リストに含まれるデコード視点情報の数と一致するか否かを判定する（ステップＳ３１）。このとき、制御部１１は、コンテンツ最大視点数ｐがデコード視点情報の数と一致すると判定した場合には（ステップＳ３１：ＹＥＳ）、ステップＳ３６に進む。一方、制御部１１は、コンテンツ最大視点数ｐがデコード視点情報の数と一致しないと判定した場合には（ステップＳ３１：ＮＯ）、ステップＳ３２に進む。ステップＳ３２において、制御部１１は、１ステップクラスタリング処理を実行する。
【００７３】
図８（Ｂ）は、配信サーバ１の制御部１１における１ステップクラスタリング処理の一例を示すフローチャートである。図８（Ｂ）に示すように、制御部１１は、所属決定処理を実行する（ステップＳ４１）。
【００７４】
図９は、配信サーバ１の制御部１１における所属決定処理の一例を示すフローチャートである。図９に示すように、制御部１１は、ループフラグを０に設定する（ステップＳ６１）。次いで、制御部１１は、デコード視点リストにおいて、各デコード視点識別子に対応するユーザ数を０で初期化する（ステップＳ６２）。次いで、制御部１１は、距離ｄｉｓを０に設定する。また、制御部１１は、最短距離ｍｉｎ＿ｄｉｓをｎｕｌｌに設定する。また、制御部１１は、デコード視点識別子ｍｉｎ＿ｉｄを０に設定する（ステップＳ６３）。次いで、制御部１１は、ユーザ番号ｉを１に設定する（ステップＳ６４）。次いで、制御部１１は、デコード視点番号ｊを１に設定する（ステップＳ６５）。
【００７５】
次いで、制御部１１は、ユーザリストにおいて、ユーザ識別子［ｉ］に対応するユーザ視点情報が示す位置と、デコード視点リストにおいて、デコード視点識別子［ｊ］に対応するデコード視点情報が示す位置との距離ｄｉｓを計算する（ステップＳ６６）。デコード視点識別子［ｊ］は、デコード視点リストに含まれるデコード視点識別子のうち、ｊ番目に位置するデコード視点識別子である。次いで、制御部１１は、最短距離ｍｉｎ＿ｄｉｓがｎｕｌｌであるか、又は最短距離ｍｉｎ＿ｄｉｓが距離ｄｉｓよりも長いか否かを判定する（ステップＳ６７）。このとき、制御部１１は、最短距離ｍｉｎ＿ｄｉｓがｎｕｌｌであると判定した場合には（ステップＳ６７：ＹＥＳ）、ステップＳ６８に進む。また、制御部１１は、最短距離ｍｉｎ＿ｄｉｓが距離ｄｉｓよりも長いと判定した場合には（ステップＳ６７：ＹＥＳ）、ステップＳ６８に進む。一方、制御部１１は、最短距離ｍｉｎ＿ｄｉｓがｎｕｌｌではなく、且つ最短距離ｍｉｎ＿ｄｉｓが距離ｄｉｓよりも長くはないと判定した場合には（ステップＳ６７：ＮＯ）、ステップＳ６９に進む。
【００７６】
ステップＳ６８において、制御部１１は、最短距離ｍｉｎ＿ｄｉｓを距離ｄｉｓに設定し、デコード視点識別子ｍｉｎ＿ｉｄをデコード視点識別子［ｊ］に設定する。次いで、制御部１１は、デコード視点番号ｊが、デコード視点リストに含まれるデコード視点情報の数と一致するか否かを判定する（ステップＳ６９）。このとき、制御部１１は、デコード視点番号ｊが、デコード視点リストに含まれるデコード視点情報の数と一致しないと判定した場合には（ステップＳ６９：ＮＯ）、ステップＳ７０に進む。ステップＳ７０において、制御部１１は、デコード視点番号ｊを１増加させて、ステップＳ６６に進む。一方、制御部１１は、デコード視点番号ｊが、デコード視点リストに含まれるデコード視点情報の数と一致すると判定した場合には（ステップＳ６９：ＹＥＳ）、ステップＳ７１に進む。
【００７７】
ステップＳ７１において、制御部１１は、ユーザリストにおいて、ユーザ識別子［ｉ］に対応するデコード視点識別子を、デコード視点識別子ｍｉｎ＿ｉｄに設定する。次いで、制御部１１は、デコード視点リストにおいて、デコード視点識別子ｍｉｎ＿ｉｄに対応するユーザ数を１増加させる（ステップＳ７２）。次いで、制御部１１は、デコード視点リストにおいて、デコード視点識別子ｍｉｎ＿ｉｄに対応するユーザ識別子リストに、ユーザ識別子［ｉ］を挿入する（ステップＳ７３）。次いで、制御部１１は、制御部１１は、ユーザ番号ｉがユーザ数ｕと一致するか否かを判定する（ステップＳ７４）。このとき、制御部１１は、ユーザ番号ｉがユーザ数ｕと一致しないと判定した場合には（ステップＳ７４：ＮＯ）、ステップＳ７５に進む。ステップＳ７５において、制御部１１は、ユーザ番号ｉを１増加させて、ステップＳ６５に進む。一方、制御部１１は、ユーザ番号ｉがユーザ数ｕと一致すると判定した場合には（ステップＳ７４：ＹＥＳ）、所属決定処理を終了させる。
【００７８】
所属決定処理を終えると、制御部１１は、図８（Ｂ）に示すように、重心移動処理を実行する（ステップＳ４２）。
【００７９】
図１０（Ａ）は、配信サーバ１の制御部１１における重心移動処理の一例を示すフローチャートである。図１０（Ａ）に示すように、制御部１１は、デコード視点番号ｉを１に設定する（ステップＳ８１）。次いで、制御部１１は、デコード視点リストにおいて、デコード視点識別子［ｉ］に対応するユーザ識別子リストから、全てのユーザ識別子を取得する。制御部１１は、取得したユーザ識別子ごとに、ユーザリストからユーザ識別子に対応するユーザ視点情報を取得する。そして、制御部１１は、全てのユーザ識別子について取得したユーザ視点情報に基づいて、ユーザ視点情報が示すユーザ視点の重心ｔを計算する（ステップＳ８２）。
【００８０】
次いで、制御部１１は、デコード視点リストにおいて、デコード視点識別子［ｉ］に対応するデコード視点情報と、重心の位置ｔのｘ〜ｚ座標の組み合わせとが一致するか否かを判定する（ステップＳ８３）。このとき、制御部１１は、デコード視点情報が示す位置と重心の位置ｔのｘ〜ｚ座標の組み合わせとが一致すると判定した場合には（ステップＳ８３：ＹＥＳ）、ステップＳ８６に進む。一方、制御部１１は、デコード視点情報が示す位置と重心の位置ｔのｘ〜ｚ座標の組み合わせとが一致しないと判定した場合には（ステップＳ８３：ＮＯ）、ステップＳ８４に進む。
【００８１】
ステップＳ８４において、制御部１１は、デコード視点リストにおいて、デコード視点識別子［ｉ］に対応するデコード視点情報を、重心の位置ｔのｘ〜ｚ座標に設定する。次いで、制御部１１は、ループフラグを１に設定する（ステップＳ８５）。
【００８２】
次いで、制御部１１は、デコード視点番号ｉが、デコード視点リストに含まれるデコード視点情報の数と一致するか否かを判定する（ステップＳ８６）。このとき、制御部１１は、デコード視点番号ｉが、デコード視点リストに含まれるデコード視点情報の数と一致しないと判定した場合には（ステップＳ８６：ＮＯ）、ステップＳ８７に進む。ステップＳ８７において、制御部１１は、デコード視点番号ｉを１増加させて、ステップＳ８２に進む。一方、制御部１１は、デコード視点番号ｉが、デコード視点リストに含まれるデコード視点情報の数と一致すると判定した場合には（ステップＳ８６：ＹＥＳ）、重心移動処理を終了させる。
【００８３】
重心移動処理を終えると、制御部１１は、図８（Ｂ）に示すように、１ステップクラスタリング処理を終了させる。次いで、制御部１１は、図８（Ａ）に示すように、ステップＳ３３において、コンテンツ最大視点数が、デコード視点リストに含まれるデコード視点情報の数よりも大きいか否かを判定する。このとき、制御部１１は、コンテンツ最大視点数がデコード視点情報の数よりも大きいと判定した場合には（ステップＳ３３：ＹＥＳ）、ステップＳ３４に進む。一方、制御部１１は、コンテンツ最大視点数がデコード視点情報の数よりも大きくはないと判定した場合には（ステップＳ３３：ＮＯ）、ステップＳ３５に進む。
【００８４】
ステップＳ３４において、制御部１１は、デコード視点追加処理を実行する。図１０（Ｂ）は、配信サーバ１の制御部１１におけるデコード視点追加処理の一例を示すフローチャートである。図１０（Ｂ）に示すように、制御部１１は、コンテンツ最大視点数ｐから、デコード視点リストに含まれるデコード視点情報の数を引いて、差ｎを計算する（ステップＳ９１）。次いで、制御部１１は、ユーザリストの要素を、会員属性が大きい順にソートする（ステップＳ９２）。ユーザリストの要素は、ユーザ識別子、会員属性、ユーザ視点情報、デコード視点識別子及びデコード視点までの距離の組み合わせである。ここで、ユーザリスト中に、会員属性が同一である要素が複数存在する場合、その複数の要素については、デコード視点までの距離が遠い順にソートする。こうして、ユーザリストの要素が、デコード視点までの距離よりも優先して、会員属性が大きい順にソートされる。
【００８５】
次いで、制御部１１は、順序番号ｉを１に設定する（ステップＳ９３）。次いで、制御部１１は、ユーザリストのｉ番目の要素中のデコード視点までの距離が０であるか否かを判定する（ステップＳ９４）。このとき、制御部１１は、デコード視点までの距離が０であると判定した場合には（ステップＳ９４：ＹＥＳ）、ステップＳ９７に進む。一方、制御部１１は、デコード視点までの距離が０ではないと判定した場合には（ステップＳ９４：ＮＯ）、ステップＳ９５に進む。
【００８６】
ステップＳ９５において、制御部１１は、新しいデコード視点識別子を付与する。次いで、制御部１１は、デコード視点リストに、ユーザリストのｉ番目の要素中のユーザ視点情報と同一のデコード視点情報と、付与したデコード視点識別子とを挿入する（ステップＳ９６）。次いで、制御部１１は、順序番号ｉがユーザ数ｕと一致するか否かを判定する（ステップＳ９７）。このとき、制御部１１は、順序番号ｉがユーザ数ｕと一致しないと判定した場合には（ステップＳ９７：ＮＯ）、ステップＳ９８に進む。ステップＳ９８において、制御部１１は、順序番号ｉを１増加させて、ステップＳ９２に進む。一方、制御部１１は、順序番号ｉがユーザ数ｕと一致すると判定した場合には（ステップＳ９７：ＹＥＳ）、デコード視点追加処理を終了させて、図８（Ａ）に示すように、ステップＳ３６に進む。
【００８７】
ステップＳ３５において、制御部１１は、デコード視点削除処理を実行する。具体的には、制御部１１は、デコード視点リストに含まれるデコード視点情報ごとに、デコード視点情報が示すデコード視点の位置と、ユーザリストに含まれる各ユーザ視点情報が示すユーザ視点の位置との距離を計算する。次いで、制御部１１は、デコード視点情報ごとに、計算した距離の和を計算する。次いで、制御部１１は、デコード視点情報ごとに、デコード視点識別子と距離の和とを、一時リストに挿入する。次いで、制御部１１は、一時リストに含まれるデコード視点識別子を、距離の和が大きい順にソートする。次いで、制御部１１は、デコード視点リストに含まれるデコード視点情報の数とコンテンツ最大視点数との差ｎを計算する。次いで、制御部１１は、一時リストから、距離の和が大きい順に、デコード視点識別子をｎ個取得する。次いで、制御部１１は、取得したデコード視点識別子ごとに、デコード視点識別子に対応するデコード視点情報を、デコード視点リストから削除する。次いで、制御部１１は、ステップＳ３６に進む。
【００８８】
ステップＳ３６において、制御部１１は、全ステップクラスタリング処理を実行する。図８（Ｃ）は、配信サーバ１の制御部１１における全ステップクラスタリング処理の一例を示すフローチャートである。図８（Ｃ）に示すように、制御部１１は、図９に示す所属決定処理を実行する（ステップＳ５１）。次いで、制御部１１は、図１０（Ａ）に示す重心移動処理を実行する（ステップＳ５２）。次いで、制御部１１は、ループフラグが１であるか否かを判定する（ステップＳ５３）。このとき、制御部１１は、ループフラグが１であると判定した場合には（ステップＳ５３：ＹＥＳ）、ステップＳ５１に進む。一方、制御部１１は、ループフラグが１ではないと判定した場合には（ステップＳ５３：ＮＯ）、ステップＳ５４に進む。ステップＳ５４において、制御部１１は、デコード視点リストから、対応するユーザ数が０であるデコード視点情報を削除して、全ステップクラスタリング処理を終了させる。  
【００８９】
全ステップクラスタリング処理を終えると、制御部１１は、図８（Ａ）に示すクラスタリング処理を終了させて、図７（Ａ）に示すように、デコード視点リストに含まれるデコード視点情報に基づいてデコードを実行する（ステップＳ６）。具体的には、制御部１１は、デコード視点情報ごとに、ビデオカメラから受信した動画データから、現在時刻に対応した１又は複数のフレーム画像を取得する。制御部１１は、各フレーム画像のうち、デコード視点情報が示すデコード範囲の画像部分をデコードして、配信用の動画データを生成する。制御部１１は、デコード視点情報ごとに、デコード視点リストに含まれるユーザ識別子リストからユーザ識別子を取得する。制御部１１は、取得したユーザ識別子ごとに、ユーザ識別子に対応するクライアント２へ、生成した動画データを送信する。また、制御部１１は、ビデオカメラから受信した動画データを、より低い解像度のサブ動画データに変換する。制御部１１は、サブ動画データ及びデコード視点情報をクライアント２へ送信する。配信サーバ１から動画データ、サブ動画データ及びデコード視点情報を受信したクライアント２は、動画データに基づいて、デコード範囲の動画をメインスクリーン１１０に表示する。また、クライアント２は、サブ動画データに基づいて、全画面の動画をサブスクリーン１２０に表示する。また、クライアント２は、現在の表示範囲及びデコード視点情報に基づいて、表示範囲枠１３０及びデコード範囲枠１４０を、サブスクリーン１２０内に表示する。
【００９０】
次いで、制御部１１は、注目するコンテンツのライブ配信が継続するか否かを判定する（ステップＳ７）。このとき、制御部１１は、ライブ配信が継続すると判定した場合には（ステップＳ７：ＹＥＳ）、ステップＳ３に進む。一方、制御部１１は、ライブ配信が終了すると判定した場合には（ステップＳ７：ＮＯ）、メイン処理を終了させる。
【００９１】
以上説明したように、本実施形態によれば、配信サーバ１が、ユーザリストから取得されたユーザ視点情報に基づいて、コンテンツを視聴しようとする複数のユーザを、コンテンツ最大視点数以下のクラスタに分ける。コンテンツを視聴しようとするユーザの数がコンテンツ最大視点数以下である場合、配信サーバ１が、互いに異なる表示範囲を指定するユーザを同一のクラスタに入れない。配信サーバ１は、分けられたクラスタのうち、１のユーザで構成されるクラスタに対して、１のユーザにより指定された表示範囲をデコード範囲として、コンテンツの動画のうちデコード範囲内の動画部分をデコードし、２以上のユーザで構成されるクラスタに対して、２以上のユーザにより指定された２以上の表示範囲に基づいて特定されるデコード範囲内の動画部分をデコードする。配信サーバ１は、各クラスタについて、デコードにより抽出された動画を示す動画データを、クラスタを構成するユーザが利用するクライアント２へ送信する。従って、ユーザの数が抽出範囲の数の上限を超えても、全てのユーザは、希望する表示範囲又は希望に極力沿った表示範囲で動画を視聴することができる。
【符号の説明】
【００９２】
１  配信サーバ
２  クライアント
１１、２１  制御部
１２、２２  記憶部
２４ａ  表示部
２５ａ  操作部
Ｓ  通信システム
【図１】
0006561887.tif 000002
【図２】
0006561887.tif 000003
【図３】
0006561887.tif 000004
【図４】
0006561887.tif 000005
【図５】
0006561887.tif 000006
【図６】
0006561887.tif 000007
【図７】
0006561887.tif 000008
【図８】
0006561887.tif 000009
【図９】
0006561887.tif 000010
【図１０】
0006561887.tif 000011