(57)【要約】【課題】各端末への映像配信に係る処理負荷を低減する。【解決手段】複数の方向から撮影した映像データを用いて仮想的な視点を変更可能な自由視点映像を生成する情報処理装置であって、所定の視点における自由視点映像を生成するための映像データを映像配信装置から受信する通信手段と、前記映像配信装置から受信した映像データから所定の視点における自由視点映像を生成する生成手段と、前記自由視点映像を表示する表示手段と、前記所定の視点から所定の範囲に他の情報処理装置が存在する場合、当該他の情報処理装置と通信を行い、当該他の情報処理装置から受信した映像データを用いて前記所定の視点における自由視点映像を生成するように制御する制御手段と、を有する。【選択図】図１
2019121867.tif 000002
【特許請求の範囲】
【請求項１】
複数の方向から撮影した映像データを用いて仮想的な視点を変更可能な自由視点映像を生成する情報処理装置であって、
所定の視点における自由視点映像を生成するための映像データを映像配信装置から受信する通信手段と、
前記映像配信装置から受信した映像データから所定の視点における自由視点映像を生成する生成手段と、
前記自由視点映像を表示する表示手段と、
前記所定の視点から所定の範囲に他の情報処理装置が存在する場合、当該他の情報処理装置と通信を行い、当該他の情報処理装置から受信した映像データを用いて前記所定の視点における自由視点映像を生成するように制御する制御手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記制御手段は、前記所定の視点から所定の範囲に存在する他の情報処理装置が前記所定の視点における自由視点映像を生成するための映像データを有する場合、当該他の情報処理装置と通信を行い、当該他の情報処理装置から受信した映像データを用いて前記所定の視点における自由視点映像を生成し、
前記所定の視点から所定の範囲に存在する他の情報処理装置が前記所定の視点における自由視点映像を生成するための映像データを有していない場合、前記映像配信装置から受信した映像データを用いて前記所定の視点における自由視点映像を生成するように制御することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記映像配信装置に対して前記所定の視点から所定の範囲に存在する他の情報処理装置の検索リクエストを送信し、
前記検索リクエストに対する応答として前記映像配信装置から受信した他の情報処理装置の機器情報を用いて当該他の情報処理装置と通信可能に接続し、当該他の情報処理装置から前記自由視点映像を生成するための映像データを受信するように制御することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記検索リクエストは、少なくとも前記所定の視点に関する視点情報および前記検索リクエストの送信元の情報処理装置の機器情報を含み、
前記検索リクエストに対する応答は、前記所定の視点から所定の範囲に存在する他の情報処理装置の機器情報を含むことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記検索リクエストは、前記所定の視点における自由視点映像を生成するための映像データに関する情報を含み、
前記検索リクエストに対する応答は、前記所定の視点における自由視点映像を生成するための映像データを有する他の情報処理装置の機器情報を含むことを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記制御手段は、前記所定の視点から所定の範囲に他の情報処理装置が複数存在する場合、前記複数の他の情報処理装置から受信した映像データを用いて前記所定の視点における自由視点映像を生成するように制御することを特徴とする請求項１から５のいずれか１項に記載の情報処理装置。
【請求項７】
前記制御手段は、前記他の情報処理装置が複数存在する場合、前記他の情報処理装置の通信環境に応じて当該他の情報処理装置と接続する数を制御することを特徴とする請求項５または６に記載の情報処理装置。
【請求項８】
前記制御手段は、前記他の情報処理装置から前記所定の視点における自由視点映像を生成するための一部の映像データを受信し、残りの映像データを前記映像配信装置から受信して前記所定の視点における自由視点映像を生成するように制御することを特徴とする請求項１から６のいずれか１項に記載の情報処理装置。
【請求項９】
前記制御手段は、前記映像配信装置から受信した他の情報処理装置の機器情報に基づき、前記映像配信装置を介さずに接続できる他の情報処理装置と接続するように制御することを特徴とする請求項１から８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記機器情報は、情報処理装置をネットワークに接続するための中継装置で行われるアドレス変換の種類を含むことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記情報処理装置が前記自由視点映像を生成する性能を有しているか判定する判定手段をさらに有し、
前記情報処理装置が前記自由視点映像を生成する性能を有していない場合、前記制御手段は、前記所定の視点から所定の範囲に存在する他の情報処理装置において生成された前記所定の視点における自由視点映像を受信するように制御することを特徴とする請求項１から８のいずれか１項に記載の情報処理装置。
【請求項１２】
前記情報処理装置が前記自由視点映像を生成する性能を有していない場合、前記制御手段は、前記映像配信装置に対して前記所定の視点における自由視点映像を有する他の情報処理装置の検索リクエストを送信し、
前記検索リクエストに対する応答として前記映像配信装置から受信した他の情報処理装置の機器情報を用いて当該他の情報処理装置と通信を行い、当該他の情報処理装置から前記所定の視点における自由視点映像を受信するように制御することを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記制御手段は、前記検索リクエストに対する応答として前記映像配信装置から受信した他の情報処理装置の機器情報に基づいて、前記情報処理装置と同一の構図の自由視点映像を有する他の情報処理装置、前記情報処理装置と視点情報が最も近い他の情報処理装置、前記所定の視点における自由視点映像を生成するための映像データを有する他の情報処理装置、または処理能力に余力がある他の情報処理装置から前記所定の視点における自由視点映像を受信するように制御することを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
前記制御手段は、複数の他の情報処理装置から異なるフレームの自由視点映像または異なる領域の自由視点映像を受信することを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
前記所定の視点の移動先を指定する指定手段をさらに有し、
前記通信手段は、前記映像配信装置において前記所定の視点の移動先として選出された視点から所定の範囲に存在する他の情報処理装置の機器情報を受信し、
前記機器情報を用いて前記移動先の視点から所定の範囲に存在する他の情報処理装置との接続を確立し、
前記制御手段は、前記指定手段により前記所定の視点の移動先が指定されたことに応じて前記接続を確立した他の情報処理装置から移動先の視点情報に基づく自由視点映像を生成するための映像データを受信するように制御することを特徴とする請求項１から８のいずれか１項に記載の情報処理装置。
【請求項１６】
前記通信手段は、前記映像配信装置において検索された前記指定手段により指定された移動先の視点から所定の範囲に存在する他の情報処理装置の機器情報を受信し、
前記機器情報を用いて前記移動先の視点から所定の範囲に存在する他の情報処理装置との接続を確立することを特徴とする請求項１５に記載の情報処理装置。
【請求項１７】
前記指定手段は、前記映像配信装置において選出された視点の移動先一覧を表示することを特徴とする請求項１５または１６に記載の情報処理装置。
【請求項１８】
前記移動先の視点における自由視点映像が視聴可能となったことを通知する通知手段をさらに有し、
前記表示手段は、前記指定手段により前記所定の視点の移動先が指定されたことに応じて、視聴可能となった自由視点映像を順次表示することを特徴とする請求項１７に記載の情報処理装置。
【請求項１９】
前記視点情報は、映像の視点位置、ユーザの注視位置、映像の再生時間、視聴時刻を含み、
前記機器情報は、前記情報処理装置の固有情報、前記情報処理装置に割り当てられたアドレスおよびポート番号を含むことを特徴とする請求項４、１３から１８のいずれか１項に記載の情報処理装置。
【請求項２０】
複数の方向から撮影した映像データを有し、仮想的な視点を変更可能な自由視点映像を生成するための映像データを第１の情報処理装置に送信する映像配信装置であって、
前記第１の情報処理装置から受信した視点情報に基づき、所定の視点における自由視点映像を生成するための映像データを前記第１の情報処理装置に送信する通信手段と、
前記視点情報に基づき、前記所定の視点から所定の範囲に第２の情報処理装置が存在するか判定する判定手段と、
前記第２の情報処理装置が存在する場合、前記第１の情報処理装置が前記映像配信装置を介さずに前記第２の情報処理装置と通信を行い、前記所定の視点における自由視点映像を生成するための映像データを受信するための機器情報を前記第１の情報処理装置に送信するように制御する制御手段と、を有することを特徴とする映像配信装置。
【請求項２１】
前記判定手段は、前記所定の視点から所定の範囲に存在する第２の情報処理装置が前記所定の視点における自由視点映像を生成するための映像データを有するか判定し、
前記第２の情報処理装置が前記所定の視点における自由視点映像を生成するための映像データを有する場合、前記制御手段は、当該第２の情報処理装置の機器情報を前記第１の情報処理装置に送信するように制御することを特徴とする請求項２０に記載の映像配信装置。
【請求項２２】
前記制御手段は、前記第１の情報処理装置から送信される前記所定の視点から所定の範囲に存在する第２の情報処理装置の検索リクエストを受信し、
前記検索リクエストに対する応答として前記第２の情報処理装置の機器情報を前記第１の情報処理装置に送信するように制御することを特徴とする請求項２０または２１に記載の映像配信装置。
【請求項２３】
前記検索リクエストは、少なくとも前記所定の視点に関する視点情報および前記検索リクエストの送信元の第１の情報処理装置の機器情報を含み、
前記検索リクエストに対する応答は、前記所定の視点から所定の範囲に存在する第２の情報処理装置の機器情報を含むことを特徴とする請求項２２に記載の映像配信装置。
【請求項２４】
前記検索リクエストは、前記所定の視点における自由視点映像を生成するための映像データに関する情報を含み、
前記検索リクエストに対する応答は、前記所定の視点における自由視点映像を生成するための映像データを有する第２の情報処理装置の機器情報を含むことを特徴とする請求項２２に記載の映像配信装置。
【請求項２５】
前記制御手段は、前記所定の視点から所定の範囲に前記第２の情報処理装置が複数存在する場合、前記複数の第２の情報処理装置の通信環境に応じて前記第１の情報処理装置に送信する前記第２の情報処理装置の機器情報の数を制御することを特徴とする請求項２３または２４に記載の映像配信装置。
【請求項２６】
前記判定手段は、前記映像配信装置を介さずに前記第１の情報処理装置との接続が可能な第２の情報処理装置が存在するか判定し、
前記制御手段は、前記映像配信装置を介さずに前記第１の情報処理装置と接続できる第２の情報処理装置が存在する場合、前記第１の情報処理装置および前記第２の情報処理装置に対し互いの機器情報を送信することを特徴とする請求項２０から２５のいずれか１項に記載の映像配信装置。
【請求項２７】
前記第１の情報処理装置は、ネットワークを介して前記第２の情報処理装置との接続が可能であり、
前記判定手段は、前記第１の情報処理装置と前記第２の情報処理装置をネットワークに接続するための中継装置で行われるアドレス変換の種類に基づいて、前記映像配信装置を介さずに前記第１の情報処理装置との接続が可能な第２の情報処理装置が存在するか判定することを特徴とする請求項２６に記載の映像配信装置。
【請求項２８】
前記機器情報は、前記第１の情報処理装置と前記第２の情報処理装置をネットワークに接続するための中継装置で行われるアドレス変換の種類を含むことを特徴とする請求項２７に記載の映像配信装置。
【請求項２９】
前記判定手段は、前記第１の情報処理装置から受信した前記所定の視点から所定の範囲に存在する第２の情報処理装置の検索リクエストに基づき、前記第１の情報処理装置が前記自由視点映像を生成する性能を有しているか判定し、
前記第１の情報処理装置が前記自由視点映像を生成する性能を有している場合、前記制御手段は、前記所定の視点における自由視点映像を生成するための映像データを有する第２の情報処理装置を検索するように制御することを特徴とする請求項２０から２５のいずれか１項に記載の映像配信装置。
【請求項３０】
前記制御手段は、前記第１の情報処理装置における前記所定の視点の移動先を選出し、
前記判定手段は、前記選出された移動先の視点から所定の範囲に第２の情報処理装置が存在するか判定し、
前記移動先の視点から所定の範囲に第２の情報処理装置が存在する場合、前記制御手段は、当該第２の情報処理装置の機器情報を前記第１の情報処理装置に送信するように制御することを特徴とする請求項２０から２５のいずれか１項に記載の映像配信装置。
【請求項３１】
前記第１の情報処理装置において前記所定の視点の移動先として指定された視点情報を受信する受信手段をさらに有し、
前記判定手段は、前記移動先の視点情報に基づき、前記移動先の視点から所定の範囲に存在する第２の情報処理装置が存在するか判定し、
前記移動先の視点から所定の範囲に第２の情報処理装置が存在する場合、前記制御手段は、当該第２の情報処理装置の機器情報を前記第１の情報処理装置に送信するように制御することを特徴とする請求項３０に記載の映像配信装置。
【請求項３２】
前記制御手段は、前記第１の情報処理装置の機器情報および視点情報と、前記第２の情報処理装置の機器情報および視点情報とを管理するデータテーブルを有し、
前記判定手段は、前記データテーブルを参照して判定を行うことを特徴とする請求項２０から３１のいずれか１項に記載の映像配信装置。
【請求項３３】
前記視点情報は、映像の視点位置、ユーザの注視位置、映像の再生時間、視聴時刻を含み、
前記機器情報は、前記情報処理装置の固有情報、前記情報処理装置に割り当てられたアドレスおよびポート番号を含むことを特徴とする請求項２０から３２のいずれか１項に記載の映像配信装置。
【請求項３４】
複数の方向から撮影した映像データを用いて仮想的な視点を変更可能な自由視点映像を生成する生成手段と、
所定の視点における自由視点映像を生成するための映像データを映像配信装置から受信する通信手段と、を有する情報処理装置の制御方法であって、
前記所定の視点から所定の範囲に他の情報処理装置が存在する場合、当該他の情報処理装置と通信を行い、当該他の情報処理装置から受信した映像データを用いて前記所定の視点における自由視点映像を生成するように制御することを特徴とする制御方法。
【請求項３５】
複数の方向から撮影した映像データを有し、仮想的な視点を変更可能な自由視点映像を生成するための映像データを第１の情報処理装置に送信する映像配信装置の制御方法であって、
前記第１の情報処理装置から受信した視点情報に基づき、所定の視点から所定の範囲に第２の情報処理装置が存在するか判定し、
前記第２の情報処理装置が存在する場合、前記第１の情報処理装置が前記映像配信装置を介さずに前記第２の情報処理装置と通信を行い、前記所定の視点における自由視点映像を生成するための映像データを受信するための機器情報を前記第１の情報処理装置に送信することを特徴とする制御方法。
【請求項３６】
コンピュータを、請求項１ないし１９のいずれか１項に記載の情報処理装置として機能させるためのプログラム。
【請求項３７】
コンピュータを、請求項２０ないし３３のいずれか１項に記載の映像配信装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自由視点映像生成システムに関する。
【背景技術】
【０００２】
現在、ネットワークを介した映像の配信は、シンプルなクライアントサーバモデルを基本としており、ネットワークにおける多くのクライアントからサーバに対してリクエストを発行し映像の配信を行うオンデマンド方式が一般的に使用されている。このクライアントサーバモデルでは、映像のような大容量のコンテンツを配信する場合、クライアント数が多くなりリクエストが集中すると、サーバにおける処理負荷の増大、およびサーバに近い回線の帯域が占有されるという課題がある。
【０００３】
このサーバ負荷の問題を解決する配信方法の１つとして、Ｐ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）通信を用いたデータ配信方法が知られている。Ｐ２Ｐ通信では、ネットワークにおいて対等な関係にある端末同士を相互に接続することにより、サーバを介さずにデータを送受信し、コンテンツを配信することが可能となる。
【０００４】
特許文献１には、ライブ映像配信等におけるＰ２Ｐネットワークサービスに関し、メッシュ型のＰ２Ｐネットワークサービスに用いる端末およびプログラムが開示されている。また、特許文献２のように、複数のカメラで撮影された映像データから任意の視点の映像を生成する技術が知られている。
【０００５】
また、映像データの生成方法として、複数のカメラで撮影された映像データから任意の視点の映像を生成する自由視点映像生成システムが知られている。このシステムでは、例えばサッカースタジアムなどに設置された複数のカメラから選手やボールの３次元位置を計算し、３Ｄ空間データを生成することができる。そして、サーバは任意の視点の映像を生成するために必要なデータをユーザ端末に配信し、各ユーザ端末で自由視点映像を生成することで、ユーザはスタジアムでのゲームの様子を様々な視点で見ることが可能となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−２５８６５７号公報
【特許文献２】特開２０１０−１２１９４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１では、データ通信における上流側の端末が下流側の端末が必要なデータを有していることを前提としている。しかしながら、上述の自由視点映像生成システムでは、ユーザ端末ごとに異なる視点や角度の映像が必要となる。このような自由視点映像のように、ユーザごとに異なるデータを特許文献１の技術で配信する場合、ユーザが所望する映像を生成するために必要なデータを、上流側の端末が有していない場合がある。
【０００８】
本発明は、上記課題に鑑みてなされ、その目的は、各端末への映像配信に係る処理負荷を低減することができるシステムを実現することである。
【課題を解決するための手段】
【０００９】
上記課題を解決し、目的を達成するために、本発明の情報処理装置は、複数の方向から撮影した映像データを用いて仮想的な視点を変更可能な自由視点映像を生成する情報処理装置であって、所定の視点における自由視点映像を生成するための映像データを映像配信装置から受信する通信手段と、前記映像配信装置から受信した映像データから所定の視点における自由視点映像を生成する生成手段と、前記自由視点映像を表示する表示手段と、前記所定の視点から所定の範囲に他の情報処理装置が存在する場合、当該他の情報処理装置と通信を行い、当該他の情報処理装置から受信した映像データを用いて前記所定の視点における自由視点映像を生成するように制御する制御手段と、を有する。
【発明の効果】
【００１０】
本発明によれば、各端末への映像配信に係る処理負荷を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態のシステムにおけるユーザ端末およびサーバの構成を示すブロック図。
【図２】本実施形態のシステム構成図。
【図３】実施形態１のサーバで管理するデータテーブルを例示する図。
【図４】実施形態１の自由視点映像を生成するために必要な映像データの算出方法を説明する図。
【図５】実施形態１のユーザ端末およびサーバのシーケンス図。
【図６】実施形態１のユーザ端末の動作を示すフローチャート。
【図７】実施形態１のサーバの動作を示すフローチャート。
【図８】実施形態２のサーバが管理するデータテーブルを示す図。
【図９】実施形態２のユーザ端末およびサーバのシーケンス図。
【図１０】実施形態２のユーザ端末の動作を示すフローチャート。
【図１１】実施形態２のサーバの動作を示すフローチャート。
【図１２】ネットワークの対応関係を示す図。
【図１３】実施形態３のサーバが管理するデータテーブルを例示する図。
【図１４】実施形態４のサーバが管理するデータテーブルを例示する図。
【図１５】実施形態４のユーザ端末およびサーバのシーケンス図。
【図１６】実施形態４のユーザ端末の動作を示すフローチャート。
【図１７】実施形態４のユーザ端末の動作を示すフローチャート。
【図１８】実施形態５のサーバが管理する移動先テーブルを示す図。
【図１９】実施形態５のユーザ端末およびサーバのシーケンス図。
【図２０】実施形態５のユーザ端末の動作を示すフローチャート。
【図２１】図２０のＳ２００２の処理（ａ）を示すフローチャートおよび図２０のＳ２００４の処理（ｂ）動作を示すフローチャート。
【図２２】実施形態５のＧＵＩを例示する図。
【図２３】図２０のＳ２００６の処理を示すフローチャート。
【図２４】実施形態５のサーバの動作を示すフローチャート。
【図２５】実施形態６のＧＵＩを例示する図。
【発明を実施するための形態】
【００１２】
以下に、本発明を実施するための形態について詳細に説明する。尚、以下に説明する実施の形態は、本発明を実現するための一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。また、後述する各実施形態の一部を適宜組み合わせて構成してもよい。
【００１３】
本実施形態では、スポーツやコンサート等を行うスタジアムにおいてフィールドやステージ等を取り囲むように設置された複数のカメラとサーバとユーザ端末とをネットワークを介して接続し、複数のカメラにより撮影された映像データを用いてユーザ端末において自由視点映像を生成するシステムについて説明する。
【００１４】
自由視点映像生成システムにおいて、サーバは多数のカメラをネットワークを介して制御しながら同じタイミングで撮影することで、多方向から撮影した映像から高精細な３Ｄ空間データを生成する。ユーザ端末は、３Ｄ空間で仮想カメラを自由に動かし、様々な視点や角度の映像を見ることができる自由視点映像を生成する。
【００１５】
なお、本実施形態のカメラは、例えば、高解像度映像を撮影可能なデジタルカメラ等の撮像装置である。また、本実施形態のサーバは、例えば、複数のカメラにより撮影された映像データをユーザ端末に配信するクライアントサーバなどの映像配信装置である。また、本実施形態のユーザ端末は、例えば、携帯電話の一種であるスマートフォン、ノート型やタブレット型あるいはウェアラブルなパーソナルコンピュータ（ＰＣ）などの情報処理装置である。
【００１６】
サーバは、複数のカメラにより撮影された映像データを保存し、各ユーザ端末の視点に応じて映像データの配信を行う。各ユーザ端末は、サーバから受信した映像データから自由視点映像を生成し、ユーザに視聴可能に表示する。
【００１７】
自由視点映像とは、ユーザが自由に視点を変更可能な映像であり、複数のカメラで撮影された映像データの各フレーム画像に対して画像処理を施すことで得られる映像である。本実施形態では、自由視点映像の生成方法は特に限定しないが、自由視点映像を生成する方法はいくつかある。特許文献２には、複数のカメラで撮影された映像データを用いて被写体の３次元モデルを作成し、３次元モデルにテクスチャを張り、表示角度および表示距離を変えることで自由視点映像を生成する視体積交差法が開示されている。
【００１８】
本実施形態の自由視点映像生成システムでは、ユーザが視聴している映像の視点から近い視点の映像を同じ時刻に視聴している他のユーザの端末は、自由視点映像を生成するために必要な映像データも近いものになると考えられる。
【００１９】
そこで、本実施形態では、ユーザ端末で表示している映像の視点から近い視点の映像を表示している他のユーザ端末が自由視点映像を生成するために必要な映像データを有する場合、サーバを介さずにユーザ端末同士が通信を行い、直接映像データを取得する。このようにして、サーバの映像配信に係る処理負荷を低減することを可能としている。
【００２０】
以下では、本実施形態の自由視点映像生成システムにおけるユーザ端末の視点の近さについて説明する。
【００２１】
本実施形態では、視点の近さについて、図４の式１から式４を用いて以下のように定義する。
【００２２】
ユーザＡの視点ベクトルａを、視点位置ベクトルａ1および注視位置ベクトルａ2を用いて、ベクトルａ1＝ベクトルａ2−ベクトルａ1と表す。同様に、ユーザＢの視点ベクトルｂを、視点位置ベクトルｂ1および注視位置ベクトルｂ2を用いて、ベクトルｂ＝ベクトルｂ2−ベクトルｂ1と表す。ここで、視点位置とは自由視点映像における仮想的なカメラ位置であり、注視位置とはユーザが見ている被写体（ユーザの視線の先にある被写体）の位置を表す。
【００２３】
ユーザＡとユーザＢの視点の近さは、視点位置および視点方向、視点から注視位置までの距離という３つの要素に依存し、これらの要素の差が小さいほどユーザＡとユーザＢの視点は近いものとする。ユーザＡとユーザＢの視点位置の差は、式１で表される。ユーザＡとユーザＢの角度の差は、式２の値に比例する。ユーザＡとユーザＢの視点から注視位置までの距離の差は、式３で表される。
【００２４】
視点の近さを評価するための視点位置と視点方向、視点から注視位置までの距離のそれぞれの重みをｓ（ｓ＞０）、ｔ（ｔ＞０）、ｕ（ｕ＞０）とすると、視点の近さを表す評価値は、式４で表される。式４で表された評価値が０に近いほど、ユーザＡとユーザＢの視点は近いといえる。
【００２５】
なお、上述した視点の近さに関する定義および評価方法は一例であり、視点の近さについての定義および評価方法、数式は上記のものに限られるものではない。
【００２６】
＜装置構成＞以下、図１および図２を参照して、本実施形態のユーザ端末およびサーバの構成および機能について説明する。
【００２７】
ユーザ端末Ａ１００は、制御部Ａ１０１、記憶部Ａ１０２、メモリＡ１０３、表示部Ａ１０４、操作部Ａ１０５、通信部Ａ１０６を含む。
【００２８】
制御部Ａ１０１は、ユーザ端末Ａ１００の全体を統括して制御する演算処理装置（ＣＰＵ）であって、後述する記憶部Ａ１０２に格納されたプログラムを実行することで、後述する通信処理および制御処理を実現する。なお、制御部Ａ１０１が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。これは以下に説明するサーバのハードウェアについても同様であり、複数のハードウェアが処理を分担する構成としてよい。
【００２９】
記憶部Ａ１０２は、電気的に消去・記録可能な不揮発性のメモリであり、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）が用いられる。記憶部Ａ１０２には、制御部Ａ１０１の動作用の定数、プログラム等が記録される。ここでいう、プログラムとは、本実施形態にて後述するシーケンスを実行するためのプログラムのことである。
【００３０】
メモリＡ１０３は、制御部Ａ１０１の動作用の定数、変数、記憶部Ａ１０２から読み出したプログラム等を展開する作業領域として使用される。また、メモリＡ１０３は、後述するサーバＢ１００や他のユーザ端末から受信した映像データを一時的に保持するバッファメモリや、表示部Ａ１０４の画像表示用メモリとして使用される。また、揮発性メモリＡ１０３は、通信部Ａ１０６によって実施される通信接続設定に関わるパラメータなどを保存する領域として使用される。
【００３１】
表示部Ａ１０４は、自由視点映像の表示、対話的な操作のための文字や図形や記号等のＧＵＩ（Ｇｒａｐｈｉｃａｌ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅ）の表示を行う。表示部Ａ１０４は、例えば、液晶ディスプレイ、有機ＥＬディスプレイ等の表示デバイスである。表示部Ａ１０４は、ユーザ端末Ａ１００と一体化された構成であっても、ユーザ端末Ａ１００に接続された外部装置であってもよい。ユーザ端末Ａ１００は、表示部Ａ１０４と接続することができ、表示部Ａ１０４の表示を制御する機能を有していればよい。
【００３２】
操作部Ａ１０５は、ユーザからの各種操作を受け付ける各種スイッチ、ボタン、キーボード、マウス等の操作部材からなる。また、表示部Ａ１０４の表示パネルと一体構成されるタッチパネルも操作部Ａ１０５に含まれる。
【００３３】
通信部Ａ１０６は、後述するサーバＢ１００などの外部装置や他のユーザ端末と接続するためのインターフェースである。本実施形態のユーザ端末Ａ１００は、通信部Ａ１０６を介して、外部装置とデータの授受を行うことができる。本実施形態では、通信部Ａ１０６は、ルータＣ１００を経由して接続されるインターネット等のネットワークＤ１００を介してサーバＢ１００と通信を行う。なお、通信方法は、Ｅｔｈｅｒｎｅｔ（登録商標）や無線ＬＡＮ等、様々な通信方法が適用できる。また、ユーザ端末Ａ１００が携帯電話やスマートフォンであった場合、通信部Ｂ１０６は、Ｗ−ＣＤＭＡ（ＵＭＴＳ）やＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）等の規格に従って公衆無線通信を行うことができる。
【００３４】
なお、ユーザ端末Ａ１００には、ユーザ端末の基本的なソフトウェアであるＯＳ（オペレーティングシステム）と協働して応用的な機能を実現するアプリケーションがインストールされている。本実施形態のシステムにおけるユーザ端末Ａ１００の各種処理は、アプリケーションにより提供されるソフトウェアを読み込むことにより実現される。なお、アプリケーションはユーザ端末にインストールされたＯＳの基本的な機能を利用するためのソフトウェアを有しているものとする。なお、ユーザ端末のＯＳが本実施形態における処理を実現するためのソフトウェアを有していてもよい。本実施形態のアプリケーションは、自由視点映像生成システムにおける各種処理を行うアプリケーションを想定している。
【００３５】
ルータＣ１００は、ユーザ端末Ａ１００を通信部Ａ１０６を介してネットワークＤ１００に接続する中継機器である。また、ルータＣ１００は、無線ＬＡＮのアクセスポイントとしての機能を有し、通信部Ａ１０６を介してネットワークＤ１００に接続することで、ユーザ端末Ａ１００がサーバＢ１００と無線通信を行うことができる。
【００３６】
サーバＢ１００は、制御部Ｂ１０１、記憶部Ｂ１０２、メモリＢ１０３、表示部Ｂ１０４、操作部Ｂ１０５、カメラ接続部Ｂ１０６、通信部Ｂ１０７を含む。上記各ブロックの基本的な機能はユーザ端末Ａ１００と同様であるため詳細な説明は省略し、以下では、相違する部分を中心に説明する。
【００３７】
記憶部Ｂ１０２には、ユーザ端末Ａ１００に配信する映像データおよび後述するデータテーブルＴ３００が記憶されている。データテーブルＴ３００については、図３で後述する。
【００３８】
カメラ接続部Ｂ１０６は、スタジアムに設置された複数のカメラＥ１００と接続するためのインターフェースを含む。制御部Ｂ１０１は、カメラ接続部Ｂ１０６を介して接続された複数のカメラＥ１００を制御し、カメラＥ１００によって撮影された映像データを取得し記憶部Ｂ１０２に保存する。また、制御部Ｂ１０１は、複数のカメラＥ１００により同じタイミングで多方向から撮影した映像データから高解像度の３Ｄ空間データを生成する。なお、サーバＢ１００は、複数のカメラＥ１００によって撮影された映像データを、常にカメラ接続部Ｂ１０６を経由して取得する必要はなく、通信部Ｂ１０７を介して取得してもよい。サーバＢ１００は、ユーザ端末Ａ１００に配信する映像データを記憶部Ｂ１０２に保持していればよい。
【００３９】
次に、図２を参照して、本実施形態のシステム構成について説明する。
【００４０】
図２に示すように、本実施形態のシステムは、ユーザ端末Ａ１００ａ、ユーザ端末Ａ１００ｂ、ユーザ端末Ａ１００ｃ、・・・、ユーザ端末Ａ１００ｘ、サーバＢ１００を含む。ユーザ端末Ａ１００ａ、ユーザ端末Ａ１００ｂ、ユーザ端末Ａ１００ｃ、・・・、ユーザ端末ａ１００ｘは、図１に示したユーザ端末Ａ１００と同様の構成および機能を有するものとする。
【００４１】
ユーザ端末Ａ１００ａ、ユーザ端末Ａ１００ｂ、ユーザ端末Ａ１００ｃ、・・・、ユーザ端末ａ１００ｘは、本実施形態のシステムにおける自由視点映像を視聴しているユーザの端末であり、ユーザの数だけユーザ端末Ａ１００は存在する。各ユーザ端末Ａ１００は、ルータＣ１００を介してネットワークＤ１００に接続されている。また、サーバＢ１００はネットワークＤ１００において外部に公開され、各ユーザ端末Ａ１００からアクセス可能な状態である。なお、各ユーザ端末Ａ１００は、必ずしもルータＣ１００を介してネットワークＤ１００に接続されている必要はなく、直接ネットワークＤ１００に接続されていてもよい。
【００４２】
サーバＢ１００は、複数台のカメラＥ１００ａ〜Ｅ１００ｐと接続されており、カメラＥ１００ａ〜Ｅ１００ｐが撮影した映像データを取得することができる。カメラＥ１００ａ〜Ｅ１００ｐの数は、スタジアムに設置されたカメラの数に依存し、スタジアムごとに異なる。
【００４３】
次に、図３を参照して、本実施形態のシステムにおけるサーバＢ１００の記憶部Ｂ１０２に記憶されるデータテーブルＴ３００について説明する。
【００４４】
データテーブルＴ３００には、どのユーザ端末がいつどの視点で映像を視聴していたかを管理できるように視点情報および端末情報が登録されている。視点情報には、ユーザが視聴している映像のスタジアムでの仮想的な視点位置および注視位置、映像の再生時間、映像の視聴時刻が含まれる。また、端末情報には、ユーザ端末同士が接続するときに必要な情報として、グローバルアドレスおよびグローバルポート番号などの機器情報が含まれる。
【００４５】
データテーブルＴ３００は、Ｒ３０１、・・・、Ｒ３０ｎのようにデータをひとまとめにしたレコード単位でデータを管理している。
【００４６】
データテーブルＴ３００のフィールドＦ３０１で管理される視点位置は、ユーザＡの視点ベクトルａをベクトルａ＝ベクトルａ2−ベクトルａ1と表した場合のベクトルａ1に対応する位置であり、自由視点映像における仮想的なカメラの位置である。
【００４７】
データテーブルＴ３００のフィールドＦ３０２で管理される注視位置は、ユーザＡの視点ベクトルａをベクトルａ＝ベクトルａ2−ベクトルａ1と表した場合のベクトルａ2に対応する位置であり、自由視点映像においてユーザＡが見ている位置である。
【００４８】
データテーブルＴ３００のフィールドＦ３０３で管理される映像の再生時間は、ユーザ端末で視聴している映像のタイムコードである。映像の再生時間は、サーバＢ１００がデータテーブルＴ３００を参照して、ユーザ端末の視点から所定の範囲内にある近い視点で映像を視聴している他のユーザ端末を検索する場合に、さらに再生時間の近いユーザ端末に絞って検索するために使用する。
【００４９】
データテーブルＴ３００のフィールドＦ３０４で管理される映像の視聴時刻は、ユーザ端末での映像視聴開始時の時刻である。映像の視聴時刻と検索実行時刻とに差がある場合、ユーザ端末に映像データがキャッシュされている可能性が低くなり、映像データを持っている可能性が低くなる。そのため、映像の視聴時刻は、サーバＢ１００がデータテーブルＴ３００を参照して、ユーザ端末の視点から所定の範囲内にある近い視点で映像を視聴している他のユーザ端末を検索する場合に、キャッシュされている可能性が高いユーザ端末に絞って検索するために使用する。
【００５０】
データテーブルＴ３００のフィールドＦ３０５で管理されるグローバルアドレスは、ユーザ端末のグローバルアドレスである。ユーザ端末が他のユーザ端末と接続するときに使用する。
【００５１】
データテーブルＴ３００のフィールドＦ３０６で管理されるグローバルポート番号は、ユーザ端末のグローバルポート番号である。ユーザ端末が他のユーザ端末と接続するときに使用する。
【００５２】
ユーザ端末の視点情報は、ユーザが視聴したい映像の視点を変更した場合や視点情報を生成してから一定時間が経過した場合に更新される。データテーブルＴ３００は、ユーザ端末Ａ１００の視点情報が更新され、ユーザ端末Ａ１００からサーバＢ１００に視点情報が送信された場合、レコード単位で追加登録される。
【００５３】
また、登録されたレコードは登録されてから一定期間経過した場合、データテーブルＴ３００から削除される。ユーザ端末に割り当てられているグローバルアドレスおよびグローバルポート番号の組み合わせは、通信を行っていない場合には数分で変わってしまうため、登録されてから数分経過したレコードの情報は無効なデータになってしまうからである。
【００５４】
次に、図４を参照して、ユーザの視点情報から自由視点映像を生成するために必要な映像データを算出する方法について説明する。
【００５５】
ユーザＡの視点を視点位置ベクトルａ1および注視位置ベクトルａ2を用いて、ベクトルａ＝ベクトルａ2−ベクトルａ1と表す。スタジアムに設置されたカメラの位置をベクトルｃ1としたとき、カメラからユーザＡの注視位置までをベクトルｃ＝ベクトルａ1−ｃ1と表す。ユーザＡは、ベクトルａとベクトルｃのなす角が一定値以下となるような位置にあるカメラの映像データを用いて自由視点映像を生成する。
【００５６】
このとき、ベクトルａとベクトルｃのなす角をθとすると（ただし、ベクトルａ≠ベクトル０、ベクトルｃ≠ベクトル０、０≦θ≦１８０°）、ｃｏｓθは、式５によって表される。θ＝０°のとき、ｃｏｓθ＝１であるため、式５の値が１に近いほどベクトルａとベクトルｃのなす角θは０°に近づく。よって、ベクトルａとベクトルｃのなす角θが一定値以下となるような閾値ｖを定めると、ｖは、式６によって表すことができる。
【００５７】
従って、ユーザＡの端末が自由視点映像を生成するために必要な映像データは、式６を満たす位置に設置されたカメラの映像データである。なお、上述した方法は一例であり、異なる方法や数式であってもよい。
【００５８】
次に、ユーザ端末Ａ１００およびサーバＢ１００において共通の映像データＩＤを生成する方法について説明する。
【００５９】
複数のカメラによって撮影された映像を一定間隔で分割したものを映像データとし、全ての映像データには映像データを一意に識別するための映像データＩＤを割り当てる。映像データＩＤの割り当て方法は、各ユーザ端末Ａ１００およびサーバＢ１００で共通であり、同じ映像データであればどのユーザ端末Ａ１００およびサーバＢ１００であっても同じ映像データＩＤとなる。
【００６０】
映像データＩＤは、映像データごとに固有の値であり、映像データを撮影したカメラおよび映像の撮影日時から決定される。これにより、映像データを撮影したカメラおよび映像の撮影日時から、対応する映像データの映像データＩＤを求めることができる。例えば、映像データＩＤの生成方法を「カメラ名＿撮影時刻」とする。各カメラが撮影した映像を５秒間隔で分割したものを映像データとすると、カメラＥ１００ａで撮影された２０１７年１月２３日４時５６分００秒から５秒間の映像データの映像データＩＤは、撮影したカメラと撮影日時から「Ｅ１００ａ＿２０１７１２３４５６００」となる。ユーザ端末Ａ１００は、カメラＥ１００ａが２０１７年１月２３日４時５６分００秒から撮影した５秒間の映像データが必要な場合には、「Ｅ１００ａ−２０１７１２３４５６００」という映像データＩＤを用いてサーバＢ１００または他のユーザ端末Ａ１００に映像データリクエスト（要求）を送信することで映像データを取得できる。ここでは、映像データの長さを５秒として説明したが、映像データの長さはいくつであってもよい。ただし、映像データの長さは、各ユーザ端末Ａ１００およびサーバＢ１００を含むシステム全体で共通である必要がある。また、映像データＩＤの生成方法に関しても、各ユーザ端末Ａ１００およびサーバＢ１００を含むシステム全体で共通であれば異なる方法であってもよい。
【００６１】
＜動作説明＞次に、図５から図７を参照して、本実施形態のユーザ端末Ａ１００およびサーバＢ１００の動作について説明する。
【００６２】
なお、以下では、ユーザ端末Ａ１００ａが自由視点映像を生成するため、視点情報の近いユーザ端末Ａ１００ｂから自由視点映像を生成するために必要な映像データのうち一部を受信する。そして、ユーザ端末Ａ１００ｂから取得できなかった残りの映像データをサーバＢ１００から受信する例を説明する。
【００６３】
図５は、本実施形態のユーザ端末Ａ１００およびサーバＢ１００の動作シーケンスを例示している。
【００６４】
図５のシーケンス開始時点において、ユーザ端末Ａ１００ａは、ユーザ端末Ａ１００ａに一時的に割り当てられているグローバルアドレスおよびグローバルポート番号を、メモリＡ１０３に保持しているものとする。なお、ユーザ端末Ａ１００ａは、ＳＴＵＮ（Ｓｅｓｓｉｏｎ  Ｔｒａｖｅｒｓａｌ  Ｕｔｉｌｉｔｉｅｓ  ｆｏｒ  ＮＡＴｓ）等を使用してグローバルアドレスおよびグローバルポート番号を取得する。
【００６５】
ユーザ端末Ａ１００ｂも同様に、ユーザ端末Ａ１００ｂに一時的に割り当てられているグローバルアドレスおよびグローバルポート番号を、メモリＡ１０３に保持しているものとする。なお、ユーザ端末Ｂ１００ｂもＳＴＵＮ（Ｓｅｓｓｉｏｎ  Ｔｒａｖｅｒｓａｌ  Ｕｔｉｌｉｔｉｅｓ  ｆｏｒ  ＮＡＴｓ）等を使用してグローバルアドレスおよびグローバルポート番号を取得する。
【００６６】
また、ユーザ端末Ａ１００ａは、各カメラＥ１００の位置情報をサーバＢ１００から取得済みであり、メモリＡ１０３に保存しているものとする。ユーザ端末Ａ１００ａは、視点情報および取得済みの各カメラＥ１００の位置情報から自由視点映像を生成するために必要な全ての映像データＩＤを生成することができる。
【００６７】
図５のシーケンスは、Ｓ５０１において、ユーザ端末Ａ１００ａがユーザ端末Ａ１００ａの操作部Ａ１０５を介してユーザからの映像視聴開始操作を受け付けると開始する。
【００６８】
Ｓ５０２において、ユーザ端末Ａ１００ａは、ユーザ端末Ａ１００ａの操作部Ａ１０５を通してユーザから視点操作を受け付け、映像視聴時の視点位置および注視位置、映像の再生時間を決定する。
【００６９】
Ｓ５０３において、ユーザ端末Ａ１００ａは、Ｓ５０２で決定された視点位置および注視位置、映像の再生時間、現在の時刻から視点情報を生成する。映像の視聴時刻には、現在の時刻を設定する。
【００７０】
Ｓ５０４において、ユーザ端末Ａ１００ａは、端末情報を生成する。
【００７１】
Ｓ５０５において、ユーザ端末Ａ１００ａは、サーバＢ１００にユーザ検索リクエストを送信する。
【００７２】
Ｓ５０６において、サーバＢ１００は、Ｓ５０５でユーザ端末Ａ１００ａから受信したユーザ検索リクエストに含まれる視点情報および端末情報を、記憶部Ｂ１０２のデータテーブルＴ３００に保存する。
【００７３】
Ｓ５０７において、サーバＢ１００は、Ｓ５０５でユーザ端末Ａ１００ａから受信したユーザ検索リクエストに含まれる視点情報から、記憶部Ｂ１０２のデータテーブルＴ３００から視点位置および再生時間が近く、映像データが残っている可能性の高い他のユーザ端末の端末情報を検索し取得する。ここで、ユーザ端末Ａ１００ｂは、ユーザ端末Ａ１００ａよりも先に映像が視聴されており、データテーブルＴ３００にはユーザ端末Ａ１００ｂの視点情報および端末情報が登録されているものとする。
【００７４】
Ｓ５０８において、サーバＢ１００は、Ｓ５０７で取得した０または１以上の他のユーザ端末の端末情報をユーザ検索レスポンス（応答）としてユーザ端末Ａ１００ａに送信する。
【００７５】
Ｓ５０９において、サーバＢ１００は、Ｓ５０８で１以上の他のユーザ端末の端末情報をユーザ端末Ａ１００ａに送信した場合、ユーザ端末Ａ１００ａの端末情報を被ユーザ検索通知として１以上の他のユーザ端末に送信する。
【００７６】
以降の説明では、Ｓ５０７で取得した端末情報は、ユーザ端末Ａ１００ｂの端末情報だけであるものとする。
【００７７】
Ｓ５１０において、ユーザ端末Ａ１００ｂは、Ｓ５０９でサーバＢ１００から受信した被ユーザ検索通知に含まれるユーザ端末Ａ１００ａの端末情報に基づき、ユーザ端末Ａ１００ａから送信される接続リクエストを受信するための準備を行う。例えば、ユーザ端末Ａ１００ａとＰ２Ｐ通信を行うために、ユーザ端末Ａ１００ａの端末情報に記載されているグローバルアドレスおよびグローバルポート番号に対しホールパンチングを行う等である。接続リクエストについては、Ｓ５１１で後述する。
【００７８】
Ｓ５１１において、ユーザ端末Ａ１００ａは、Ｓ５０８でサーバＢ１００から受信したユーザ端末Ａ１００ｂの端末情報に基づき、ユーザ端末Ａ１００ｂに接続リクエストを送信する。
【００７９】
Ｓ５１２において、ユーザ端末Ａ１００ｂは、Ｓ５１１でユーザ端末Ａ１００ａから受信した接続リクエストに対し、接続レスポンスを送信する。
【００８０】
Ｓ５１３において、ユーザ端末Ａ１００ａは、自由視点映像を生成するために必要な映像データを要求するため、ユーザ端末Ａ１００ｂに映像データリクエストを送信する。映像データリクエストには、視点情報および取得済みの各カメラＥ１００の位置情報を用いて算出した自由視点映像を生成するために必要な映像データの映像データＩＤを含める。
【００８１】
Ｓ５１４において、ユーザ端末Ａ１００ｂは、Ｓ５１３でユーザ端末Ａ１００ａから要求された映像データを有している場合、映像データレスポンスとして映像データをユーザ端末Ａ１００ａに送信する。ユーザ端末Ａ１００ｂは、要求があった映像データを１つも有していなかった場合、映像データを有していないことを映像データレスポンスとしてユーザ端末Ａ１００ａに送信する。
【００８２】
Ｓ５１４においてユーザ端末Ａ１００ａがリクエストした全ての映像データを受信した場合、Ｓ５１７へ移行する。Ｓ５１４でユーザ端末Ａ１００ａが映像データ全てを受信できなかった場合、Ｓ５１５へ移行する。
【００８３】
Ｓ５１５において、ユーザ端末Ａ１００ａは、自由視点映像を生成するために必要な映像データを全て受信できなかった場合、サーバＢ１００に映像データリクエストを送信する。映像データリクエストには、自由視点映像を生成するために必要な映像データのうちＳ５１４で受信できなかった映像データの映像データＩＤを含める。
【００８４】
Ｓ５１６において、サーバＢ１００は、Ｓ５１５でユーザ端末Ａ１００ａから要求された映像データをユーザ端末Ａ１００ａに送信する。
【００８５】
Ｓ５１７において、ユーザ端末Ａ１００ａは、Ｓ５１４および／またはＳ５１６で受信した映像データを用いて自由視点映像を生成する。
【００８６】
上述したシーケンスによりユーザ端末Ａ１００ａはＳ５０２で決定した視点の映像を生成することができる。ユーザ端末Ａ１００ａは、Ｓ５１３からＳ５１７を繰り返すことによって自由視点映像を生成して表示することで、ユーザは自由視点映像を視聴することができる。また、ユーザ端末Ａ１００ａは、ユーザが視聴したい映像の視点を変更した場合または視点情報を生成してから一定時間が経過した場合には、Ｓ５０２からの処理を行い、更新された視点情報に近いユーザ端末から映像データを受信できるようになる。
【００８７】
本実施形態では、ユーザ端末Ａ１００ａは、１つのユーザ端末Ａ１００ｂから受信した映像データを用いて自由視点映像を生成していた。これに対して、Ｓ５０８においてサーバＢ１００が、例えばユーザ端末Ａ１００ｂ、ユーザ端末Ａ１００ｃ、ユーザ端末Ａ１００ｄの端末情報をユーザ検索レスポンスとして送信する場合もある。この場合、ユーザ端末Ａ１００ａは、ユーザ端末Ａ１００ｂ、ユーザ端末Ａ１００ｃ、ユーザ端末Ａ１００ｄからそれぞれ映像データを取得して自由視点映像を生成する。
【００８８】
このようにユーザ端末Ａ１００ａに近いユーザ端末が複数存在する場合、例えば、ユーザ端末Ａ１００ｂ、ユーザ端末Ａ１００ｃ、ユーザ端末Ａ１００ｄの通信環境に応じてユーザ端末Ａ１００ａと同時に接続する端末数を制御してもよい。例えば、データ転送速度が低い通信環境の場合には、多数の端末と接続しない方がパフォーマンスが向上するので、データ転送速度が高い通信環境の場合には多数の端末と接続することで、接続されたユーザ端末が必要な映像データを有している可能性が高くなる。
【００８９】
次に、図６および図７を参照して、図５のシーケンスを実現するためのユーザ端末Ａ１００およびサーバＢ１００の動作を説明する。
【００９０】
まず、図６を参照して、ユーザ端末Ａ１００の動作を説明する。
【００９１】
なお、図６の処理は、ユーザ端末Ａ１００で専用のアプリケーションが起動すると開始される。また、図６の処理は、ユーザ端末Ａ１００の制御部Ａ１０１が記憶部Ａ１０２から読み出した制御プログラムをメモリＡ１０３に展開して実行することにより実現される。
【００９２】
Ｓ６０１において、制御部Ａ１０１は、ユーザ端末Ａ１００の状態から処理を終了するか判定する。例えば、制御部Ａ１０１は、操作部Ａ１０５を介してアプリケーション停止操作が行われた場合、本フローチャートの処理を終了する。処理を継続する場合、制御部Ａ１００は、Ｓ６０２へ処理を移行する。
【００９３】
Ｓ６０２において、制御部Ａ１０１は、通信部Ａ１０６を介してサーバＢ１００からユーザ検索通知を受信したか判定する。制御部Ａ１０１は、ユーザ検索通知を受信したと判定した場合、Ｓ６０３へ処理を移行する。制御部Ａ１０１は、ユーザ検索通知を受信していないと判定した場合、Ｓ６０８へ処理を移行する。
【００９４】
Ｓ６０３において、制御部Ａ１０１は、他の端末から送信される接続リクエストを受信するための準備を行う。例えば、他のユーザ端末とＰ２Ｐ通信を行うために、通信部Ａ１０６を介してホールパンチングを行う等である。接続リクエストを送信する処理については、Ｓ６１４において後述する。本ステップの処理は、図５のＳ５０９およびＳ５１０の処理に相当する。
【００９５】
Ｓ６０４において、制御部Ａ１０１は、通信部Ａ１０６を介して他のユーザ端末から接続リクエストを受信したか判定する。制御部Ａ１０１は、接続リクエストを受信したと判定した場合、Ｓ６０５へ処理を移行する。制御部Ａ１０１は、接続リクエストを受信していないと判定した場合、Ｓ６０１へ処理を移行する。
【００９６】
Ｓ６０５において、制御部Ａ１０１は、ユーザ端末Ａ１００の状態からＳ６０４で受信した接続リクエストの送信元のユーザ端末との接続を行うか判定する。制御部Ａ１０１は、接続レスポンスとして判定結果を他のユーザ端末に通信部Ａ１０６を介して送信する。本ステップの処理は、図５のＳ５１１およびＳ５１２の処理に相当する。
【００９７】
Ｓ６０６において、制御部Ａ１０１は、通信部Ａ１０６を介して他のユーザ端末から映像データリクエストを受信したか判定する。制御部Ａ１０１は、映像データリクエストを受信したと判定した場合、Ｓ６０７へ処理を移行する。制御部Ａ１０１は、接続リクエストを受信していないと判定した場合、Ｓ６０１へ処理を移行する。
【００９８】
Ｓ６０７において、制御部Ａ１０１は、Ｓ６０６で受信した映像データリクエストにより要求された映像データを有している場合、映像データレスポンスとして映像データを他のユーザ端末に通信部Ａ１０６を介して送信する。制御部Ａ１０１は、映像データリクエストにより要求された映像データを有していない場合、映像データレスポンスとして映像データを有していないことを他のユーザ端末に通信部Ａ１０６を介して送信する。本ステップの処理は、図５のＳ５１３およびＳ５１４の処理に相当する。
【００９９】
Ｓ６０８において、制御部Ａ１０１は、視点情報の再生成が必要か判定する。操作部Ａ１０５の状態から視点変更操作が行われた場合または視点情報が生成されてから一定時間経過している場合に視点情報の再生成が必要であると判定する。制御部Ａ１０１は、視点情報の再生成が必要であると判定した場合、Ｓ６０９へ処理を移行する。制御部Ａ１０１は、視点情報の再生成が不要であると判定した場合、Ｓ６１５へ処理を移行する。
【０１００】
Ｓ６０９において、制御部Ａ１０１は、記憶部Ａ１０２およびメモリＡ１０３および操作部Ａ１０５の状態から、現在の映像視聴時における視点情報を生成する。制御部Ａ１０１は、生成した視点情報を記憶部Ａ１０２およびメモリＡ１０３に保持する。本ステップの処理は、図５のＳ５０２およびＳ５０３の処理に相当する。
【０１０１】
Ｓ６１０において、制御部Ａ１０１は、記憶部Ａ１０２およびメモリＡ１０３の状態から、端末情報を生成する。本ステップの処理は、図５のＳ５０４の処理に相当する。
【０１０２】
Ｓ６１１において、制御部Ａ１０１は、ユーザ検索リクエストをサーバＢ１００に通信部Ａ１０６を介して送信する。制御部Ａ１０１は、ユーザ検索リクエストにＳ６０９で生成した視点情報および、Ｓ６１０で生成した端末情報を含める。本ステップの処理は、図５のＳ５０５の処理に相当する。
【０１０３】
Ｓ６１２において、制御部Ａ１０１は、通信部Ａ１０６を介してサーバＢ１００からユーザ検索レスポンスとして他の端末情報を受信したか判定する。制御部Ａ１０１は、他の端末情報を受信したと判定した場合、Ｓ６１３へ処理を移行する。制御部Ａ１０１は、他の端末情報を受信していないと判定した場合、Ｓ６１７へ処理を移行する。
【０１０４】
Ｓ６１３において、制御部Ａ１０１は、Ｓ６１２でサーバＢ１００から受信した他の端末情報に基づき、通信部Ａ１０６を介して他の端末に接続リクエストを送信する。本ステップの処理は、図５のＳ５１１の処理に相当する。
【０１０５】
Ｓ６１４において、制御部Ａ１０１は、通信部Ａ１０６を介して他のユーザ端末から接続レスポンスを受信し、接続許可が得られたか判定する。制御部Ａ１０１は、接続許可を得られたと判定した場合、Ｓ６１５へ処理を移行する。制御部Ａ１０１は、接続許可が得られていないと判定した場合、Ｓ６１７へ処理を移行する。本ステップの処理は、図５のＳ５１２の処理に相当する。
【０１０６】
Ｓ６１５において、制御部Ａ１０１は、映像データリクエストとして自由視点映像を生成するために必要な全ての映像データの映像データＩＤを、通信部Ａ１０６を介して他のユーザ端末に送信する。本ステップの処理は、図５のＳ５１３の処理に相当する。
【０１０７】
Ｓ６１６において、制御部Ａ１０１は、通信部Ａ１０６を介して他のユーザ端末から映像レスポンスとして、Ｓ６１５で要求した映像データを全て受信したか判定する。制御部Ａ１０１は、映像データを全て受信したと判定した場合、Ｓ６２０へ処理を移行する。制御部Ａ１０１は、映像データを全て受信していないと判定した場合、Ｓ６１７へ処理を移行する。本ステップの処理は、図５のＳ５１４の処理に相当する。
【０１０８】
Ｓ６１７において、制御部Ａ１０１は、自由視点映像を生成するために必要な映像データのうちＳ６１６で受信できなかった映像データの映像データＩＤを、映像データリクエストとして通信部Ａ１０６を介してサーバＢ１００へ送信する。Ｓ６１５およびＳ６１６の処理を行っていない場合には、制御部Ａ１０１は、自由視点映像を生成するために必要な全ての映像データの映像データＩＤを、映像データリクエストとして通信部Ａ１０６を介してサーバＢ１００へ送信する。本ステップの処理は、図５のＳ５１５の処理に相当する。
【０１０９】
Ｓ６１８において、制御部Ａ１０１は、通信部Ａ１０６を介して他のユーザ端末から映像レスポンスとして、Ｓ６１７でリクエストした映像データを全て受信したか判定する。制御部Ａ１０１は、映像データを全て受信したと判定した場合、Ｓ６２０へ処理を移行する。制御部Ａ１０１は、映像データを全て受信していないと判定した場合、Ｓ６１９へ処理を移行する。本ステップの処理は、図５のＳ５１６の処理に相当する。
【０１１０】
Ｓ６１９において、制御部Ａ１０１は、表示部Ａ１０４を介してユーザ端末Ａ１００のユーザに対し、エラーを通知する。
【０１１１】
Ｓ６２０において、制御部Ａ１０１は、Ｓ６１６またはＳ６１８で受信した映像データを、記憶部Ａ１０２に保存する。制御部Ａ１０１は、記憶部Ａ１０２に保存した映像データをメモリＡ１０３に読み出し、合成して自由視点映像を生成する。本ステップの処理は、図５のＳ５１７の処理に相当する。
【０１１２】
なお、図７の処理は、サーバＢ１００で専用のアプリケーションが起動すると開始される。また、図７の処理は、サーバＢ１００の制御部Ｂ１０１が記憶部Ｂ１０２から読み出した制御プログラムをメモリＢ１０３に展開して実行することにより実現される。
【０１１３】
Ｓ７０１において、制御部Ｂ１０１は、サーバＢ１００の状態から処理を終了するか判定する。例えば、制御部Ｂ１０１は、操作部Ｂ１０５を介してアプリケーション停止操作が行われた場合、処理を終了する。処理を継続する場合、制御部Ｂ１００は、Ｓ７０２へ処理を移行する。
【０１１４】
Ｓ７０２において、制御部Ｂ１０１は、通信部Ｂ１０７を介してユーザ端末Ａ１００からユーザ検索リクエストを受信したか判定する。制御部Ｂ１０１は、ユーザ検索リクエストを受信したと判定した場合、Ｓ７０３へ処理を移行する。制御部Ｂ１０１は、ユーザ検索リクエストを受信していないと判定した場合、Ｓ７０７へ処理を移行する。本ステップの処理は、図５のＳ５０５の処理に相当する。
【０１１５】
Ｓ７０３において、制御部Ｂ１０１は、Ｓ７０２でユーザ端末Ａ１００から受信したユーザ検索リクエストに含まれる視点情報および端末情報を、データテーブルＴ３００に登録する。本ステップの処理は、図５のＳ５０６の処理に相当する。
【０１１６】
Ｓ７０４において、制御部Ｂ１０１は、Ｓ７０２でユーザ端末Ａ１００から受信したユーザ検索リクエストに含まれる視点情報から、視点および再生時間が近く、映像データが残っている可能性の高い他のユーザ端末の端末情報を検索し取得する。本ステップの処理は、図５のＳ５０７の処理に相当する。
【０１１７】
Ｓ７０５において、制御部Ｂ１０１は、Ｓ７０４で取得した１以上の端末情報を、ユーザ検索レスポンスとしてユーザ検索リクエストの送信元のユーザ端末Ａ１００に通信部Ｂ１０７を介して送信する。本ステップの処理は、図５のＳ５０８の処理に相当する。
【０１１８】
Ｓ７０６において、制御部Ｂ１０１は、ユーザ検索レスポンスとして、Ｓ７０４で取得した端末情報をユーザ端末Ａ１００に送信した場合、Ｓ７０２でユーザ端末Ａ１００から受信したユーザ検索リクエストに含まれる端末情報を、ユーザ検索通知としてＳ７０４で取得した端末情報のユーザ端末Ａ１００に送信する。本ステップの処理は、図５のＳ５０９の処理に相当する。
【０１１９】
Ｓ７０７において、制御部Ｂ１０１は、通信部Ｂ１０７を介してユーザ端末Ａ１００から映像データリクエストを受信したか判定する。制御部Ｂ１０１は、映像データリクエストを受信したと判定した場合、Ｓ７０８へ処理を移行する。制御部Ｂ１０１は、接続リクエストを受信していないと判定した場合、Ｓ７０１へ処理を移行する。
【０１２０】
Ｓ７０８において、制御部Ｂ１０１は、Ｓ７０７で受信した映像データリクエストにより要求された映像データを有している場合、映像データレスポンスとして、映像データを映像データリクエストの送信元のユーザ端末Ａ１００に送信する。制御部Ｂ１０１は、映像データリクエストにより要求された映像データを有していない場合、映像データを有していないことを映像データレスポンスとして映像データリクエストの送信元のユーザ端末Ａ１００に通信部Ｂ１０７を介して送信する。本ステップの処理は、図５のＳ５１５およびＳ５１６の処理に相当する。
【０１２１】
本実施形態によれば、ユーザ端末Ａ１００ａは、視点情報をサーバＢ１００に送信し、サーバＢ１００から、ユーザ端末Ａ１００ａで視聴したい映像の視点に近い他のユーザ端末Ａ１００ｂの端末情報を受信する。これにより、サーバＢ１００ではなく他のユーザ端末Ａ１００ｂから映像データを直接受信することができ、サーバＢ１００の映像配信に要する処理負荷を低減することができる。また、各ユーザ端末Ａ１００で自由視点映像を生成するため、サーバＢ１００で自由視点映像を生成するシステムに比べてサーバの処理負荷を低減することができる。
【０１２２】
［実施形態２］次に、実施形態２について説明する。
【０１２３】
実施形態１では、サーバＢ１００はユーザ端末Ａ１００の視点情報を用いて、視聴したい映像の視点の近い他のユーザ端末の端末情報をユーザ検索レスポンスとして送信しているが、他のユーザ端末が必ずしも必要な映像データを有しているとは限らない。
【０１２４】
そこで、本実施形態では、サーバＢ１００が、自由視点映像を生成するために必要な映像データを有している他のユーザ端末を検索するために、どのユーザがどの映像データを有しているかを管理するデータテーブルを持っている。これにより、サーバＢ１００は自由視点映像を生成するために必要な映像データを有しているユーザ端末をユーザ検索レスポンスとして送信することが可能となり、ユーザ端末は他のユーザ端末から映像データを取得できる可能性が高くなる。
【０１２５】
以下では、実施形態１と異なる点を中心に説明する。なお、本実施形態のユーザ端末Ａ１００およびサーバＢ１００の構成は図１と同様である。また、本実施形態のシステム構成は図２と同様である。
【０１２６】
まず、図８を参照して、本実施形態においてサーバＢ１００の記憶部Ｂ１０２に記憶されるデータテーブルＴ８００について説明する。
【０１２７】
データテーブルＴ８００には、どのユーザ端末がどの映像データを有しているかを管理できるように、映像データ情報および端末情報が登録されている。映像データ情報には、映像データを一意に識別するための映像データＩＤが含まれる。また、端末情報には、実施形態１と同様にユーザ端末同士が接続するために必要な情報として、グローバルアドレスおよびグローバルポート番号が含まれる。
【０１２８】
データテーブルＴ８００は、Ｒ８０１、・・・、Ｒ８０ｎのようにデータをひとまとめにしたレコード単位でデータを管理している。
【０１２９】
データテーブルＴ８００のフィールドＦ８０１で管理される映像データＩＤは、サーバＢ１００から配信される映像データを一意に識別するための固有情報である。
【０１３０】
データテーブルＴ８００のフィールドＦ８０２で管理されるグローバルアドレスは、ユーザ端末のグローバルアドレスである。ユーザ端末が他のユーザ端末と接続するときに使用する。
【０１３１】
データテーブルＴ８００のフィールドＦ８０３で管理されるグローバルポート番号は、ユーザ端末のグローバルポート番号である。ユーザ端末が他のユーザ端末と接続するときに使用する。
【０１３２】
ユーザ端末Ａ１００の映像データ情報は、ユーザが視聴したい映像の視点を変更したことによって自由視点映像を生成するために必要な映像データが変化した場合または映像データ情報を生成してから一定時間が経過した場合に更新される。データテーブルＴ８００は、ユーザ端末Ａ１００の映像データ情報が更新され、ユーザ端末Ａ１００からサーバＢ１００に映像データ情報が送信された場合、レコード単位で追加登録される。
【０１３３】
また、一度登録されたレコードは登録されてから一定期間経過した場合、データテーブルＴ８００から削除される。ユーザ端末に割り当てられているグローバルアドレスおよびグローバルポート番号の組み合わせは、通信を行っていない場合には数分で変わってしまうため、登録されてから数分経過したレコードの情報は無効なデータになってしまうからである。
【０１３４】
次に、図９のシーケンス図を用いて、本実施形態におけるユーザ端末Ａ１００およびサーバＢ１００の動作を説明する。
【０１３５】
図９において、実施形態１の図５と同様の処理には、図５と同一のステップ番号を付して説明を省略する。また、前提条件も実施形態１と同様である。
【０１３６】
Ｓ９０３において、ユーザ端末Ａ１００ａは、Ｓ５０２で決定された視点に基づき映像データ情報を生成する。映像データ情報には、少なくとも映像データＩＤを含める。
【０１３７】
Ｓ９０５において、ユーザ端末Ａ１００ａは、サーバＢ１００にユーザ検索リクエストを送信する。ユーザ端末Ａ１００ａは、ユーザ検索リクエストに以下の情報を含める。
・Ｓ９０３において生成した映像データ情報
・Ｓ５０４において生成した端末情報
なお、これらの情報は、ユーザ検索リクエストの一例である。
【０１３８】
Ｓ９０６において、サーバＢ１００は、Ｓ９０５でユーザ端末Ａ１００ａから受信したユーザ検索リクエストに含まれる映像データ情報および端末情報を、記憶部Ｂ１０２のデータテーブルＴ８００に登録する。
【０１３９】
Ｓ９０７において、サーバＢ１００は、Ｓ９０５でユーザ端末Ａ１００ａから受信したユーザ検索リクエストに含まれる映像データ情報の映像データＩＤを用いて、記憶部Ｂ１０２のデータテーブルＴ８００を参照して映像データＩＤと同じ映像データＩＤを含むレコードを検索し、レコードの端末情報を取得する。
【０１４０】
次に、図１０および図１１を参照して、図９のシーケンスを実現するためのユーザ端末Ａ１００およびサーバＢ１００の詳細な動作について説明する。
【０１４１】
図１０は、本実施形態のユーザ端末Ａ１００の動作を示している。なお、図１０において、実施形態１の図６と同様の処理には、図６と同一のステップ番号を付して省略する。
【０１４２】
Ｓ１００８において、制御部Ａ１０１は、映像データ情報の再生成が必要か判定する。操作部Ａ１０５を介して視点変更操作が行われ、自由視点映像を生成するために必要な映像データが変化した場合または映像データ情報が生成されてから一定時間経過している場合に映像データ情報の再生成が必要であると判定する。制御部Ａ１０１は、映像データ情報の再生成が必要であると判定した場合、Ｓ１００９へ処理を移行する。制御部Ａ１０１は、視点情報の再生成が不要であると判定した場合、Ｓ６１５へ処理を移行する。
【０１４３】
Ｓ１００９において、制御部Ａ１０１は、記憶部Ａ１０２およびメモリＡ１０３および操作部Ａ１０５の状態から、現在の映像視聴時の視点位置および注視位置を決定する。制御部Ａ１０１は、決定された視点位置および注視位置、映像の再生時間に基づき、自由視点映像を生成するために必要な映像データの映像データＩＤを生成し、映像データＩＤを用いて映像データ情報を生成する。映像データ情報には少なくとも映像データＩＤを含める。制御部Ａ１０１は、生成した映像データ情報を記憶部Ａ１０２およびメモリＡ１０３に保持する。本ステップの処理は、図９のＳ９０２およびＳ６０３の処理に相当する。
【０１４４】
Ｓ１０１１において、制御部Ａ１０１は、ユーザ検索リクエストをサーバＢ１００に通信部Ａ１０６を介して送信する。制御部Ａ１０１は、ユーザ検索リクエストにＳ１００９で生成した映像データ情報および、Ｓ６１０で生成した端末情報を含める。本ステップの処理は、図９のＳ９０５の処理に相当する。
【０１４５】
図１１は、本実施形態のサーバＢ１００の動作を示している。なお、図１１において、実施形態１の図７と同様の処理には、図７と同一のステップ番号を付して省略する。
【０１４６】
Ｓ１１０３において、制御部Ｂ１０１は、Ｓ７０２でユーザ端末Ａ１００から受信したユーザ検索リクエストに含まれる映像データ情報および以下の端末情報を、データテーブルＴ８００に保存する。本ステップの処理は、図９のＳ９０６の処理に相当する。
・映像データＩＤ
・グローバルアドレス
・グローバルポート番号
Ｓ１１０４において、制御部Ｂ１０１は、Ｓ７０２でユーザ端末Ａ１００から受信したユーザ検索リクエストに含まれる映像データ情報の映像データＩＤに基づき、記憶部Ｂ１０２のデータテーブルＴ８００を参照して映像データＩＤと同じ映像データＩＤを含むレコードを検索し、レコードの端末情報を取得する。本ステップの処理は、図９のＳ９０７の処理に相当する。
【０１４７】
本実施形態によれば、サーバＢ１００が、どのユーザ端末がどの映像データを有しているかを管理するデータテーブルＴ８００を参照して、自由視点映像を生成するために必要な映像データを有しているユーザ端末を検索し、その端末情報を送信できる。これにより、ユーザ端末は他のユーザ端末から映像データを取得できる可能性が高くなる。
【０１４８】
［実施形態３］次に、実施形態３について説明する。
【０１４９】
ユーザ端末がネットワークＤ１００に接続するために使用しているルータＣ１００のネットワークアドレス変換（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ：ＮＡＴ）の種類の組み合わせによってはＰ２Ｐ接続ができない場合がある。Ｐ２Ｐ接続が行えない場合、他のユーザ端末から自由視点映像を生成するために必要な映像データを受信できないため、サーバＢ１００から直接映像データを受信することになる。
【０１５０】
そこで、本実施形態では、サーバＢ１００はユーザ端末Ａ１００が使用しているルータＣ１００のＮＡＴの種類を管理し、Ｐ２Ｐ通信が可能な他のユーザ端末の端末情報を送信することにより、Ｐ２Ｐ通信を成功する可能性を高めている。
【０１５１】
以下では、実施形態１、２と異なる点を中心に説明する。なお、本実施形態のユーザ端末Ａ１００およびサーバＢ１００の構成は図１と同様である。また、本実施形態のシステム構成は図２と同様である。
【０１５２】
まず、図１２を参照して、本実施形態においてユーザ端末Ａ１００が使用しているルータＣ１００のＮＡＴの種類とＰ２Ｐ通信が可能な組み合わせについて説明する。
【０１５３】
ＮＡＴの種類は、フルコーンＮＡＴ、制限付きコーンＮＡＴ、ポート制限付きコーンＮＡＴ、シンメトリックＮＡＴの４つの種類に分類することができる。また、図１２の組み合わせには、上記の４種類のＮＡＴに加え、ルータを経由せず直接ネットワークに接続した場合のオープンネットワークを加えた５種類の組み合わせにおけるＰ２Ｐ接続の可能／不可能を示している。図１２のＯＫがＰ２Ｐ通信可能なＮＡＴの組み合わせであり、ＮＧがＰ２Ｐ通信不可能なＮＡＴの組み合わせを示している。
【０１５４】
次に、図１３を参照して、本実施形態においてサーバＢ１００の記憶部Ｂ１０２に記憶されるデータテーブルＴ１３００について説明する。
【０１５５】
データテーブルＴ１３００は、実施形態１の図３のデータテーブルＴ３００に、端末情報としてＮＡＴの種類を加えたデータテーブルである。
【０１５６】
データテーブルＴ１３００は、Ｒ１３０１、・・・、Ｒ１３０ｎのようにデータをひとまとめにしたレコード単位でデータを管理している。
【０１５７】
データテーブルＴ１３００のフィールドＦ１３０１からフィールドＦ１３０６は、実施形態１の図３のデータテーブルＴ３００のフィールドＦ３０１からＦ３０６と同一である。
【０１５８】
データテーブルＴ１３００のフィールドＦ１３０７で管理されるＮＡＴの種類は、ユーザ端末がインターネットに接続するために使用しているルータのＮＡＴの種類である。
【０１５９】
次に、図５のシーケンス図を用いて、本実施形態におけるユーザ端末Ａ１００およびサーバＢ１００の動作を説明する。なお、図５において、実施形態１と同様の処理については説明を省略する。
【０１６０】
図５のシーケンスが開始される時点において、ユーザ端末Ａ１００ａは、ネットワークＤ１００に接続するために使用しているルータＣ１００ａのＮＡＴの種類を、メモリＡ１０３に保持しているものとする。なお、ユーザ端末Ａ１００ａは、ＳＴＵＮ（Ｓｅｓｓｉｏｎ  Ｔｒａｖｅｒｓａｌ  Ｕｔｉｌｉｔｉｅｓ  ｆｏｒ  ＮＡＴｓ）等の技術を使ってＮＡＴの種類を取得する（特開２０１６−２０８１６２号公報参照）。
【０１６１】
ユーザ端末Ａ１００ｂも同様に、ネットワークＤ１００に接続するために使用しているルータＣ１００ｂのＮＡＴの種類を、メモリＡ１０３に保持しているものとする。
【０１６２】
Ｓ５０４において、ユーザ端末Ａ１００ａは、端末情報を生成する。本実施形態では、ユーザ端末Ａ１００ａは、ルータＣ１００ａのＮＡＴの種類の情報も加えた端末情報を生成する。
【０１６３】
Ｓ５０７において、サーバＢ１００は、Ｓ５０５でユーザ端末Ａ１００ａから受信したユーザ検索リクエストに含まれる視点情報に基づき、実施形態１と同様に、視点および再生時間が近く、映像データがキャッシュされている可能性の高い他のユーザ端末の端末情報を検索し取得する。本実施形態では、サーバＢ１００は、ユーザ検索リクエストに含まれる端末情報のＮＡＴの種類の情報から、Ｐ２Ｐ通信可能である他のユーザ端末に絞って検索する。
【０１６４】
次に、図６を参照して、本実施形態のシーケンスを実現するためのユーザ端末Ａ１００の動作について説明する。なお、図６において、実施形態１と同様の処理については説明を省略する。
【０１６５】
Ｓ６１０において、制御部Ａ１０１は、記憶部Ａ１０２およびメモリＡ１０３の状態から端末情報を生成する。本実施形態では、ユーザ端末Ａ１００ａは、ルータＣ１００ａのＮＡＴの種類の情報を加えた端末情報を生成する。本ステップの処理は、図５のＳ５０４の処理に相当する。
【０１６６】
次に、図７を参照して、本実施形態のシーケンスを実現するためのサーバＢ１００の動作について説明する。なお、図７において、実施形態１と同様の処理については説明を省略する。
【０１６７】
Ｓ７０４において、制御部Ｂ１０１は、Ｓ７０２にてユーザ端末Ａ１００から受信したユーザ検索リクエストに含まれる視点情報に基づき、視点および再生時間が近く、映像データが残っている可能性の高い他のユーザ端末の端末情報を検索し取得する。本実施形態では、サーバＢ１００は、ユーザ検索リクエストに含まれる端末情報のＮＡＴの種類の情報を用いて、Ｐ２Ｐ通信可能である他のユーザ端末に絞って検索する。本ステップの処理は、図５のＳ５０７の処理に相当する。
【０１６８】
本実施形態によれば、サーバＢ１００は、ユーザ端末Ａ１００が使用しているルータのＮＡＴの種類を管理し、ユーザ検索レスポンスとしてＰ２Ｐ通信可能な他のユーザ端末の端末情報を送信する。これにより、ＮＡＴの種類の組み合わせに起因するユーザ端末同士のＰ２Ｐ接続の失敗をなくすことができる。また、他のユーザ端末から自由視点映像を生成するために必要な映像データを受信できなかった場合に発生するサーバの処理負荷を低減することができる。
【０１６９】
［実施形態４］次に、実施形態４について説明する。
【０１７０】
上述した実施形態１〜３では、ユーザ端末が映像データを用いて自由視点映像を生成するので、自由視点映像を生成する性能や条件を満たしていないユーザ端末は、自由視点映像を生成することはできない。
【０１７１】
そこで、本実施形態では、サーバＢ１００はユーザ端末が有する性能を管理し、自由視点映像を生成する性能を持つ高性能なユーザ端末には、実施形態１と同様に、ユーザ検索レスポンスとして、映像データを有する他のユーザ端末の端末情報を送信する。一方、自由視点映像を生成する性能を持たない低性能なユーザ端末には、ユーザ検索レスポンスとして、生成済みの自由視点映像データを有する他のユーザ端末の端末情報を送信する。これにより、ユーザ端末の性能に関わらず自由視点映像の視聴が可能となる。
【０１７２】
以下では、実施形態１〜３と異なる点を中心に説明する。なお、本実施形態のユーザ端末Ａ１００およびサーバＢ１００の構成は図１と同様である。また、本実施形態のシステム構成は図２と同様である。
【０１７３】
まず、図１４を参照して、本実施形態においてサーバＢ１００の記憶部Ｂ１０２に記憶されるデータテーブルＴ１４００について説明する。
【０１７４】
データテーブルＴ１４００は、実施形態１の図３のデータテーブルＴ３００に、端末情報として端末性能を加えたものである。
【０１７５】
データテーブルＴ１４００は、Ｒ１４０１、・・・、Ｒ１４０ｎのようにデータをひとまとめにしたレコード単位でデータを管理している。
【０１７６】
データテーブルＴ１４００のフィールドＦ１４０７で管理される端末性能は、各ユーザ端末における自由視点映像生成に関する性能情報を表している。ユーザ端末が自由視点映像生成可能であるか判定するために使用する。なお、ユーザ端末の単位時間当たりの端末性能を示すｆｐｓ（ｆｒａｍｅ  ｐｅｒ  ｓｅｃｏｎｄ）等でもよい。
【０１７７】
次に、図１５のシーケンス図を用いて、本実施形態におけるユーザ端末Ａ１００およびサーバＢ１００の動作を説明する。
【０１７８】
本実施形態において、実施形態１と異なる点は、ユーザ端末Ａ１００の中に端末性能が低く自由視点映像が生成できない端末があることを前提としている点である。
【０１７９】
本実施形態のユーザ端末Ａ１００およびサーバＢ１００の動作は、ユーザ端末Ａ１００で自由視点映像生成ができる場合は、実施形態１の図５と同様である。図１５は、ユーザ端末Ａ１００の端末性能が低く自由視点映像生成ができない場合の動作を示している。
【０１８０】
図１５において、実施形態１の図５と同様の処理には、図５と同一のステップ番号を付して説明を省略する。
【０１８１】
図１５のシーケンスが開始される時点において、ユーザ端末Ａ１００は、自身の端末性能をメモリＡ１０３に保持しているものとする。ここで、端末性能はベンチマークツールやハードウェア仕様情報等により予め取得しているものとする。
【０１８２】
Ｓ５０４において、ユーザ端末Ａ１００ａは、端末情報を生成する。ユーザ端末Ａ１００ａは、端末自身の端末性能の情報を加えた端末情報を生成する。
【０１８３】
Ｓ５０７において、サーバＢ１００は、Ｓ５０５でユーザ端末Ａ１００ａから送信されたユーザ検索リクエストに含まれる端末情報を用いて、他のユーザ端末の端末情報を検索し取得する。検索はユーザ端末Ａ１００ａから送信された端末情報に含まれる端末性能によって異なる。端末性能が高く自由視点映像を生成できる場合、実施形態１と同様に、他のユーザ端末群から視点および再生時間が近く、映像データがキャッシュされている可能性の高い端末を検索し取得する。また、端末性能が低く自由視点映像を生成できない場合、他のユーザ端末群から視点および再生時間が近く、生成済みの自由視点映像データがキャッシュされている可能性の高い端末を検索し取得する。
【０１８４】
Ｓ１５１３において、ユーザ端末Ａ１００ａは、自由視点映像データを要求するため、ユーザ端末Ａ１００ｂに自由視点映像データリクエストを送信する。自由視点映像データリクエストには、視点情報を含める。
【０１８５】
Ｓ１５１４において、ユーザ端末Ａ１００ｂは、Ｓ５１３でユーザ端末Ａ１００ａから要求された自由視点映像データを有している場合、自由視点映像データレスポンスとして、自由視点映像データをユーザ端末Ａ１００ａへ送信する。
【０１８６】
次に、図１６および図１７を参照して、本実施形態のシーケンスを実現するためのサーバＢ１００の動作について説明する。
【０１８７】
図１６は、サーバＢ１００からユーザ検索通知が送信された場合のユーザ端末Ａ１００の動作を示している。
【０１８８】
Ｓ１６０１において、制御部Ａ１０１は、通信部Ａ１０６を介してサーバＢ１００からユーザ検索通知を受信する。
【０１８９】
Ｓ１６０２において、制御部Ａ１０１は、他のユーザ端末から送信される接続リクエストを受信するための準備を行う。例えば、ユーザ端末間のＰ２Ｐ通信を行うために、通信部Ａ１０６を介してホールパンチングを行う等である。本ステップの処理は、図１５のＳ５１０の処理に相当する。
【０１９０】
Ｓ１６０３において、制御部Ａ１０１は、通信部Ａ１０６を介して他のユーザ端末から接続リクエストを受信したか判定し、受信したと判定した場合はＳ１６０４へ処理を移行し、受信していないと判定した場合はＳ１６０３の処理を繰り返す。
【０１９１】
Ｓ１６０４において、制御部Ａ１０１は、通信部Ａ１０６を介して接続リクエストに対する接続レスポンスを他のユーザ端末に送信する。本ステップの処理は、図１５のＳ５１２に相当する。
【０１９２】
Ｓ１６０５において、制御部Ａ１０１は、通信部Ａ１０６を介して他のユーザ端末から映像データリクエストを受信したか判定し、受信したと判定した場合はＳ１６０６へ処理を移行し、受信していないと判定した場合はＳ１６０７へ処理を移行する。
【０１９３】
Ｓ１６０６において、制御部Ａ１０１は、映像データリクエストで要求された映像データを、通信部Ａ１０６を介して映像データレスポンスとして他のユーザ端末へ送信する。映像データを有していない場合、制御部Ａ１０６は、通信部Ａ１０６を介して、その旨を他のユーザ端末に送信する。
【０１９４】
Ｓ１６０７において、制御部Ａ１０１は、通信部Ａ１０６を介して他のユーザ端末から自由視点映像データリクエストを受信したか判定し、受信したと判定した場合はＳ１６０８へ処理を移行し、受信していないと判定した場合はＳ１６０９へ処理を移行する。
【０１９５】
Ｓ１６０８において、制御部Ａ１０１は、自由視点映像データリクエストにより要求された自由視点映像データを、通信部Ａ１０６を介して自由視点映像データレスポンスとして他のユーザ端末へ送信する。自由視点映像データを有していない場合、制御部Ａ１０６は、通信部Ａ１０６を介して、その旨を他のユーザ端末に送信する。
【０１９６】
Ｓ１６０９において、制御部Ａ１０１は、ユーザ端末Ａ１００の各部の状態から処理を終了するか判定する。制御部Ａ１０１は、処理を終了すると判定した場合、本フローチャートの処理を終了する。制御部Ａ１０１は、処理を継続すると判定した場合、Ｓ１６０５へ処理を移行する。
【０１９７】
図１７は、端末性能が低く自由視点映像が生成できないユーザ端末Ａ１００において自由視点映像を視聴する場合の動作を示している。なお、端末性能が高く自由視点映像生成ができるユーザ端末Ａ１００は図６と同様の動作を行う。
【０１９８】
Ｓ１７０１において、制御部Ａ１０１は、視点情報の再生成が必要であるか判定する。視点変更操作が行われた場合または前回の視点情報生成から一定時間経過した場合、再生成が必要と判定する。制御部Ａ１０１は、視点情報の再生成が必要と判定した場合、Ｓ１７０２へ処理を移行する。制御部Ａ１０１は、視点情報の再生成が不要と判定した場合、Ｓ１７０８へ処理を移行する。
【０１９９】
Ｓ１７０２において、制御部Ａ１０１は、図６のＳ６０９と同様の処理により視点情報を生成する。本ステップの処理は、図１５のＳ５０３の処理に相当する。
【０２００】
Ｓ１７０３において、制御部Ａ１０１は、記憶部Ａ１０２およびメモリＡ１０３の状態から端末情報を生成する。本実施形態では、端末情報には、端末自身の端末性能の情報を加えたものとする。本ステップの処理は、図１５のＳ５０４の処理に相当する。
【０２０１】
Ｓ１７０４において、制御部Ａ１０１は、通信部Ａ１０６を介してサーバＢ１００へユーザ検索リクエストを送信する。ユーザ検索リクエストには、Ｓ１７０２で生成した視点情報、およびＳ１７０３で生成した端末情報を含める。本ステップの処理は、図１５のＳ５０５の処理に相当する。
【０２０２】
Ｓ１７０５において、制御部Ａ１０１は、ユーザ検索レスポンスとして通信部Ａ１０６を介してサーバＢ１００から他のユーザ端末情報を受信したか判定し、受信したと判定した場合はＳ１７０６へ処理を移行し、受信していないと判定した場合はＳ１７０５の処理を繰り返す。
【０２０３】
Ｓ１７０６において、制御部Ａ１０１は、Ｓ１７０５でサーバＢ１００から受信した他のユーザ端末情報に基づき、通信部Ａ１０６を介して他のユーザ端末へ接続リクエストを送信する。本ステップの処理は、図１５のＳ５１１の処理に相当する。
【０２０４】
Ｓ１７０７において、制御部Ａ１０１は、通信部Ａ１０６を介して、他のユーザ端末から接続レスポンスを受信し、接続許可が得られたか判定する。制御部Ａ１０１は、接続許可が得られたと判定した場合、Ｓ１７０８へ処理を移行する。制御部Ａ１０１は、接続許可が得られていないと判定した場合、Ｓ１７１１へ処理を移行する。本ステップの処理は、図１５のＳ５１２の処理に相当する。
【０２０５】
Ｓ１７０８において、制御部Ａ１０１は、自由視点映像データリクエストとして、自由視点映像データを指定するために必要な情報を、通信部Ａ１０６を介して他のユーザ端末へ送信する。本ステップの処理は、図１５のＳ１５１３の処理に相当する。
【０２０６】
Ｓ１７０９において、制御部Ａ１０１は、通信部Ａ１０６を介して、他のユーザ端末から自由視点映像データレスポンスとして、Ｓ１７０８でリクエストした自由視点映像データを受信したか判定する。制御部Ａ１０１は、自由視点映像データを全て受信したと判定した場合、Ｓ１７１０へ処理を移行する。制御部Ａ１０１は、全て受信していないと判定した場合、Ｓ１７１１へ処理を移行する。
【０２０７】
Ｓ１７１０において、制御部Ａ１０１は、Ｓ１７０９で受信した自由視点映像データを記憶部Ａ１０２に保存する。また、制御部Ａ１０１は、記憶部Ａ１０２に保存した自由視点映像データをメモリＡ１０３に読み出し、表示部Ａ１０４に表示する
Ｓ１７１１において、制御部Ａ１０１は、ユーザ端末Ａ１００の状態から処理を終了するか判定する。制御部Ａ１０１は、処理を終了すると判定した場合、本フローチャートの処理を終了する。制御部Ａ１０１は、処理を継続すると判定した場合、Ｓ１７０１へ処理を移行する。
【０２０８】
なお、Ｓ１７０５におけるユーザ検索レスポンスには、以下の端末情報が含まれていてもよい。これにより、送信元のユーザ端末は、以下のいずれかの他のユーザ端末と接続し、自由視点映像データリクエストを受信することができる。
・ユーザ検索リクエストの送信元のユーザ端末と同一の構図の自由視点映像を有する他のユーザ端末情報
・ユーザ検索リクエストの送信元のユーザ端末と視点情報が最も近い他のユーザ端末情報
・ユーザが視聴したい自由視点映像を生成するための映像データを有する他のユーザ端末情報
・処理能力に余力がある他のユーザ端末情報が含まれていてもよい。これにより、送信元のユーザ端末は、が他のユーザ端末
また、Ｓ１７０５におけるユーザ検索レスポンスに複数の他のユーザ端末の端末情報が含まれていた場合、Ｓ１７０６において複数の他のユーザ端末に接続リクエストを送信し、Ｓ７０８において複数の他のユーザ端末に自由視点映像データリクエストを送信することで、複数の他のユーザ端末から異なるフレームの自由視点映像データや異なる領域の自由視点映像データを受信し、これらを合成するようにしてもよい。
【０２０９】
次に、図７を参照して、本実施形態のシーケンスを実現するためのサーバＢ１００の動作について説明する。なお、図７において、実施形態１と同様の処理については説明を省略する。
【０２１０】
Ｓ７０４において、制御部Ｂ１０１は、Ｓ７０２でユーザ端末Ａ１００から送信されたユーザ検索リクエストに含まれる視点情報を用いて、視点位置および再生時間が近い他のユーザ端末の端末情報を検索し取得する。本実施形態では、ユーザ検索リクエストに含まれる端末情報を用いて、端末性能が高く自由視点映像を生成できる場合、映像データがキャッシュされている可能性が高いユーザ端末に絞って検索を行う。一方、端末性能が低く自由視点映像を生成できない場合、自由視点映像データがキャッシュされている可能性の高いユーザ端末に絞って検索を行う。
【０２１１】
本実施形態によれば、サーバＢ１００はユーザ端末Ａ１００の端末性能を管理し、ユーザ端末Ａ１００の端末性能が低く自由視点映像を生成できない場合、生成済みの自由視点映像データを有する他のユーザ端末の端末情報を送信する。これにより、端末性能が低いユーザ端末においても自由視点映像を視聴することができる。
【０２１２】
［実施形態５］次に、実施形態５について説明する。
【０２１３】
本実施形態では視点を移動させる場合の処理を説明する。
【０２１４】
まず、本実施形態で想定している視点の移動について図４を用いて説明する。
【０２１５】
本実施形態では、例えばスタジアムにおけるスポーツなどの観戦時に、現在の視点から逆サイド側に視点を変更するような大幅な移動を想定している。図４では、カメラＥ１００ａとカメラＥ１００ｂの映像データが必要とされる視点から、カメラＥ１００ｊとＥ１００ｉの映像データが必要とされる視点への移動となる。
【０２１６】
このような視点移動時は、すでに接続を確立している他のユーザ端末に、移動後の自由視点映像の生成に必要となる映像データが存在しないことがほとんどであるため、新たに他のユーザ端末との接続を行って映像データを取得する必要がある。よって、ユーザ端末が視点移動操作を受け付けてから、映像データを取得するまでに時間がかかるという課題が存在する。
【０２１７】
そこで、本実施形態では、大幅な視点の移動を行う場合、ユーザが移動先として指定した視点位置に近い視点位置にある他のユーザ端末から受信した映像データを用いて自由視点映像を生成する。この際に、移動先の視点位置に近い他のユーザ端末との接続の確立を事前に行っておくことで、上述した課題を解決する。
【０２１８】
以下では、実施形態１〜４と異なる点を中心に説明する。なお、本実施形態のユーザ端末Ａ１００およびサーバＢ１００の構成は図１と同様である。また、本実施形態のシステム構成は図２と同様である。
【０２１９】
なお、サーバＢ１００の記憶部Ｂ１０２は、図１と同様の構成であるが、データテーブルＴ３００以外に、後述の移動先テーブルＴ１８００が記憶されている。
【０２２０】
以下、図１８を参照して、本実施形態においてサーバＢ１００の記憶部Ｂ１０２に記憶される移動先テーブルＴ１８００について説明する。
【０２２１】
本実施形態では、サーバＢ１００は、スタジアムにおける視点位置を均一にエリア分けし、各エリアの中心位置を移動先視点位置とする。そして、各エリアの中心位置に近い視点位置において自由視点映像を視聴しているユーザ端末Ａ１００を移動先端末として選出する。
【０２２２】
データテーブルＴ１８００は、Ｒ１８０１、・・・、Ｒ１８０ｎのようにデータをひとまとめにしたレコード単位でデータを管理している。
【０２２３】
移動先テーブルＴ１８００には移動先端末の端末情報が登録されており、各ユーザ端末Ａ１００が移動先端末と接続を確立するために使用される。なお、実施形態１の図３のデータテーブルＴ３００と同様に、端末情報には、ユーザ端末同士が接続するために必要な情報として、グローバルアドレスＦ１８０１およびグローバルポート番号１８０２が含まれる。
【０２２４】
次に、図１９を参照して、本実施形態のシーケンスを実現するためのユーザ端末Ａ１００およびサーバＢ１００の動作について説明する。
【０２２５】
なお、ユーザ端末Ａ１００ａは視点情報の近いユーザ端末Ａ１００ｂから必要な映像データのうち一部を受信するものとする。ユーザ端末Ａ１００ｃは移動先端末の１つとする。また、ユーザ端末Ａ１００ｂおよびユーザ端末Ａ１００ｃの視点情報および端末情報は、サーバＢ１００に登録されているものとする。また、ユーザ端末Ａ１００ｂとユーザ端末Ａ１００ｃは共通の映像データを有していないものとする。
【０２２６】
以下、ユーザ端末Ａ１００ａの視点が、ユーザ端末Ａ１００ｂの視点の近くからユーザ端末Ａ１００ｃの視点の近くへ移動した場合の動作例を説明する。
【０２２７】
サーバＢ１００は、移動先テーブルＴ１８００の更新が必要であると判定した場合、Ｓ１９０１を行い、移動先視点位置を決定する。そして、各エリアの中心位置に近い視点位置において自由視点映像を視聴しているユーザ端末を移動先端末として選出する。なお、移動先端末の選出方法は、上述した方法以外に限定されない。例えば、データテーブルＴ３００を参照して同一の視点位置のレコード数を集計し、レコード数が多い視点から選出することで、視点移動が発生しやすい視点位置のユーザ端末を選出する方法としてもよい。また、移動先テーブルＴ１８００の更新は一定周期で行われるものとする。
【０２２８】
Ｓ１９０２において、サーバＢ１００は、移動先テーブルＴ１８００にユーザ端末Ａ１００ｃのレコードを追加する。
【０２２９】
Ｓ１９０３において、サーバＢ１００は、情報端末Ａ１００ａに対して移動先テーブルＴ１８００を送信する。
【０２３０】
Ｓ１９０４において、サーバＢ１００は、移動先端末であるユーザ端末Ａ１００ｃに対し移動先端末選出通知を送信する。なお、移動先端末選出通知は端末情報とユーザ検索通知とを差別化するためのフラグから構成されている。
【０２３１】
Ｓ１９０５において、ユーザ端末Ａ１００ｃは、接続リクエストの受信準備を行う。なお、Ｓ１９０５で行う接続リクエスト受信準備は図５のＳ５１０と同様の処理である。
【０２３２】
Ｓ１９０６において、ユーザ端末１００ａは、移動先テーブルＴ１８００に登録された端末情報を参照し、接続リクエストを送信する。なお、Ｓ１９０６で行う接続リクエストは図５のＳ５１１と同様の処理である。
【０２３３】
Ｓ１９０７において、サーバＢ１００は、ユーザ端末Ａ１００ａに対して接続レスポンスを送る。なお、Ｓ１９０７で行う接続リクエストは図５のＳ５１２と同様の処理である。
【０２３４】
本実施形態においては、Ｓ１９０１からＳ１９０７のように、ユーザ端末Ａ１００ａとユーザ端末Ａ１００ｃは予め接続の確立を完了しておき、その後のＳ１９０８において移動先の指定が行われて初めて映像データリクエストを行う。
【０２３５】
Ｓ１９０８において、ユーザ端末Ａ１００ａは、移動先の指定操作を受け付ける。なお、図１９において、ユーザ端末Ａ１００ａは、ユーザ端末１００ｃへの移動操作を受け付けたものとする。
【０２３６】
その後のＳ１９０９からＳ１９１３は、図５のＳ５１３からＳ５１７と同様の処理であるため、説明を省略する。
【０２３７】
次に、図２０を参照して、本実施形態のシーケンスを実現するためのユーザ端末Ａ１００の動作について説明する。
【０２３８】
本実施形態では、実施形態１の図６に対して、以下の処理が追加されている。
・移動先端末として選出されたか否かの判定と、選出された場合の処理（図２０のＳ２００１とＳ２００２）。
・サーバＢ１００によって移動先端末が更新されか否かの判定と、更新された場合の処理（図２０のＳ２００３とＳ２００４）。
・ユーザ端末の視点の移動先が指定されたか否かの判定と、指定された場合にデータ通信を開始する処理（図２０のＳ２００５とＳ２００６）。
【０２３９】
なお、Ｓ２００１からＳ２００６以外の処理は、実施形態１の図６と同一であるため、説明を省略する。
【０２４０】
Ｓ２００１において、制御部Ａ１０１は、通信部Ａ１０６を介してサーバＢ１００から移動先端末選出通知を受信したか判定する。制御部Ａ１０１は、移動先端末選出通知を受信したと判定した場合、Ｓ２００２へ処理を移行する。制御部Ａ１０１は、移動先端末選出通知を受信していないと判定した場合、Ｓ２００３へ処理を移行する。
【０２４１】
Ｓ２００２において、ユーザ端末Ａ１００は、接続リクエストの受信を行う。
【０２４２】
ここで、図２１（ａ）を用いて、Ｓ２００２の処理を説明する。
【０２４３】
Ｓ２１０１において、制御部Ａ１０１は、接続リクエストの受信準備を行う。なお、本ステップは図６のＳ６０３と同一の処理である。本ステップの処理は、図１９のＳ１９０４およびＳ１９０５の処理に相当する。
【０２４４】
Ｓ２１０２において、制御部Ａ１０１は、接続リクエストを受信したか否かを判定する。なお、本ステップは図６のＳ６０４と同一の処理である。制御部Ａ１０１は、接続リクエストを受信したと判定した場合、Ｓ２１０３に処理を移行する。制御部Ａ１０１は、接続リクエストを受信していないと判定した場合、処理を終了する。
【０２４５】
Ｓ２１０３において、制御部Ａ１０１は接続レスポンスを送信する。本ステップは図６のＳ６０５と同一の処理である。本ステップの処理は、図１９のＳ１９０７の処理に相当する。
【０２４６】
Ｓ２００３において、制御部Ａ１０１は、通信部Ａ１０６を介してサーバＢ１００から移動先テーブルＴ１８００を受信したかを判定する。制御部Ａ１０１は、移動先テーブルＴ１８００を受信したと判定した場合、Ｓ２００４へ処理を移行する。制御部Ａ１０１は、移動先テーブルＴ１８００を受信していないと判定した場合、Ｓ２００５へ処理を移行する。
【０２４７】
Ｓ２００４において、ユーザ端末Ａ１００は、接続リクエストの送信を行う。
【０２４８】
ここで、図２１（ｂ）を用いて、Ｓ２００４の処理を説明する。
【０２４９】
Ｓ２１１１において、制御部Ａ１０１は、Ｓ２００３にてサーバＢ１００から受信した移動先テーブルＴ１８００における端末情報に基づき、通信部Ａ１０６を介して他の端末に接続リクエストを送信する。本ステップの処理は図１９のＳ１９０６の処理に相当する。
【０２５０】
Ｓ２１１２において、制御部Ａ１０１は、通信部Ａ１０６を介して他のユーザ端末から接続レスポンスを受信し、接続許可が得られたか判定する。制御部Ａ１０１は、接続許可が得られたと判定した場合、Ｓ２１１３へ処理を移行する。制御部Ａ１０１は、接続許可が得られていないと判定した場合、処理を終了する。
【０２５１】
Ｓ２１１３において、制御部Ａ１０１は、表示部Ａ１０４の移動先一覧のＧＵＩを更新する。図２２は表示部Ａ１０４に表示される移動先一覧のＧＵＩを例示している。
【０２５２】
Ｗ２２０１は自由視点映像の表示領域である。Ｗ２２０２は移動先一覧表示領域である。図２２では、等間隔でエリアＡＲ２２０１からＡＲ２２０４の４つの領域から移動先が選出された状態を示しており、ユーザは操作部Ａ１０５を介して、ＡＲ２２０１からＡＲ２２０４のいずれかを選択することによって移動先の指定を行う。
【０２５３】
Ｓ２００５において、制御部Ａ１０１は、操作部Ａ１０５を介して、移動先を指定する操作が行われたか否かを判定する。制御部Ａ１０１は、移動先を指定する操作が行われたと判定した場合、Ｓ２００６に処理を移行する。制御部Ａ１０１は、移動先を指定する操作が行われていないと判定した場合、Ｓ６０８に処理を移行する。本ステップの処理は図１９のＳ１９０８の処理に相当する。
【０２５４】
Ｓ２００６において、ユーザ端末Ａ１００は、映像データの取得を行う。
【０２５５】
ここで、図２３を用いて、Ｓ２００６の処理を説明する。
【０２５６】
Ｓ２３０１からＳ２３０６の処理は、図６のＳ６１５からＳ６２０と同一であるため、説明を省略する。なお、Ｓ２３０１は図１９のＳ１９０９に相当し、Ｓ２３０３は図１９のＳ１９１１、Ｓ２３０６は図１９のＳ１９１３に相当する。
【０２５７】
次に、図２４を参照して、本実施形態のシーケンスを実現するためのサーバＢ１００の動作について説明する。
【０２５８】
本実施形態では、実施形態１の図７に対して、移動先端末の更新処理（図２４のＳ２４０１からＳ２４０５）が追加されている。
【０２５９】
Ｓ２４０１において、制御部Ａ１０１は、移動先テーブルＴ１８００の更新が必要か否かを判定する。制御部Ｂ１０１は、移動先テーブルＴ１８００の更新が必要と判定した場合、Ｓ７０２へ処理を移行する。制御部Ｂ１０１は、移動先テーブルＴ１８００の更新が必要ではないと判定した場合、Ｓ２４０２へ処理を移行する。
【０２６０】
Ｓ２４０２において、移動先端末を選出する。なお、本ステップは図１９におけるＳ１９０１に相当する。
【０２６１】
Ｓ２４０３において、制御部Ｂ１０１は、Ｓ２４０２で選出した移動先端末に対応するデータテーブルＴ３００のレコードを取得し、端末情報を移動先テーブルＴ１８００にコピーすることで更新する。なお、本ステップは図１９におけるＳ１９０２に相当する。
【０２６２】
Ｓ２４０４において、制御部Ｂ１０１は、Ｓ２４０２で選出した移動先端末に対して、通信部Ｂ１０７を介して移動先端末選出通知を送信する。なお、本ステップは図１９におけるＳ１９０４に相当する。
【０２６３】
Ｓ２４０５において、制御部Ｂ１０１は、記憶部Ｂ１０２のデータテーブルＴ３００に登録されている全てのユーザ端末Ａ１００に対して、通信部Ｂ１０７を介して移動先テーブルＴ１８００を送信する。
【０２６４】
以上のように、本実施形態によれば、サーバＢ１００はユーザ端末Ａ１００の移動先を予め決め、通信の確立を行っておく。これにより、スタジアムにおける前後、左右などの反対側へ大幅に移動する場合において、ユーザ端末が視点移動操作を受け付けてから、映像データを取得するまでの時間を短縮することができる。
【０２６５】
［実施形態６］次に、実施形態６について説明する。
【０２６６】
実施形態５では、サーバにおいて事前に移動先として選出したユーザ端末との通信を確立しておく処理を説明したが、その後、ユーザの意図に沿った視点位置に移動できるとは限らない。そのため、大幅な移動を行った後に、ユーザがより良い視点位置へ視点の再移動を行うことが想定される。このような視点の再移動時においても、ユーザ端末が視点の移動操作を受け付けてから映像データを取得するまでの時間を短縮する必要がある。
【０２６７】
そこで、本実施形態では、大幅な移動を行った後に、移動先の視点に近いカメラからの映像データを取得している他のユーザ端末を、予め移動先として選出しておき、接続を行っておくことで、再移動時の映像データを取得するまでの時間を短縮する。
【０２６８】
以下では、実施形態５と異なる点を中心に説明する。なお、本実施形態のユーザ端末Ａ１００およびサーバＢ１００の構成は図１と同様である。また、本実施形態のシステム構成は図２と同様である。
【０２６９】
まず、図１９を参照して、本実施形態のシーケンスを実現するためのユーザ端末Ａ１００およびサーバＢ１００の動作について説明する。
【０２７０】
ユーザ端末Ａ１００ａは、移動先端末からの映像データを取得し、自由視点映像の生成が完了（Ｓ１９１３）した後、サーバＢ１００に周辺端末検索リクエストを送信する。周辺端末検索リクエストは、ユーザ端末Ａ１００ａの端末情報と、視点情報、周辺端末検索リクエストと識別するための識別子を含む。
【０２７１】
サーバＢ１００は周辺端末検索リクエストを受信すると、周辺移動先テーブルを生成する。周辺移動先テーブルは、ユーザ端末Ａ１００ａの視点位置の近傍のカメラＥ１００の映像データを取得しているユーザ端末の端末情報と、周辺移動先テーブルを識別するための識別子を含む。
【０２７２】
さらに、サーバＢ１００は、周辺移動先テーブルをユーザ端末Ａ１００ａに送信する。
【０２７３】
一方、ユーザ端末Ａ１００ａは周辺移動先テーブルを受信すると、周辺移動先テーブルの端末情報を移動先テーブルＴ１８００の端末情報と同様に扱い、Ｓ１９０４からＳ１９０７の処理を行う。これにより、ユーザ端末Ａ１００ａは周辺移動先テーブルの端末情報に関連付けられた全てのユーザ端末と接続する。
【０２７４】
次に、図２０を参照して、本実施形態のシーケンスを実現するためのユーザ端末Ａ１００の動作について説明する。
【０２７５】
制御部Ａ１０１は映像データを取得完了（Ｓ２００６）した後、通信部Ａ１０６を介してサーバＢ１００に周辺端末検索リクエストを送信する。
【０２７６】
次に、通信部Ａ１０６を介して周辺移動先テーブルをサーバＢ１００から取得したか否かを判定する。制御部Ａ１０１は、周辺移動先テーブルを受信したと判定した場合は、周辺移動先テーブルを移動先テーブルＴ１８００と同様に扱い、Ｓ２００４と同様に、ユーザ端末間の接続処理を行う。制御部Ａ１０１は、周辺移動先テーブルを受信していないと判定した場合はＳ６０１に処理を移行する。
【０２７７】
制御部Ａ１０１は、接続が確立されると、周辺移動先テーブルの端末情報に対応する方向へ視点移動が可能である旨を、図２５のＩ２５０１のように表示部Ａ１０４に順次表示する。ここで、図２５は図２２のＧＵＩに右方向への移動が可能である旨の表示を追加したものである。
【０２７８】
次に、図２４を参照して、本実施形態のシーケンスを実現するためのサーバＢ１００の動作について説明する。
【０２７９】
制御部Ｂ１０１はＳ７０７で映像データリクエストを受信していないと判定した場合に、周辺端末検索リクエストを受信しているか判定する。制御部Ｂ１０１は、周辺端末リクエストを受信していると判定した場合、周辺移動先テーブルを生成、通信部Ｂ１０７を介してユーザ端末Ａ１００に送信する。制御部Ｂ１０１は、周辺端末リクエストを受信していないと判定した場合、Ｓ７０１へ処理を移行する。
【０２８０】
本実施形態によれば、大幅な移動後の再移動においても、ユーザ端末が視点の移動操作を受け付けてから映像データを取得するまでの時間を短縮することが可能となる。
【０２８１】
［他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０２８２】
Ａ１００…ユーザ端末（情報処理装置）、Ａ１０１…制御部、Ａ１０６…通信部、Ｂ１００…サーバ（映像配信装置）、Ｂ１０１…制御部、Ｂ１０７…通信部、Ｃ１００…ルータ、Ｄ１００…ネットワーク、Ｅ１００…カメラ
【図１】
2019121867.tif 000003
【図２】
2019121867.tif 000004
【図３】
2019121867.tif 000005
【図４】
2019121867.tif 000006
【図５】
2019121867.tif 000007
【図６】
2019121867.tif 000008
【図７】
2019121867.tif 000009
【図８】
2019121867.tif 000010
【図９】
2019121867.tif 000011
【図１０】
2019121867.tif 000012
【図１１】
2019121867.tif 000013
【図１２】
2019121867.tif 000014
【図１３】
2019121867.tif 000015
【図１４】
2019121867.tif 000016
【図１５】
2019121867.tif 000017
【図１６】
2019121867.tif 000018
【図１７】
2019121867.tif 000019
【図１８】
2019121867.tif 000020
【図１９】
2019121867.tif 000021
【図２０】
2019121867.tif 000022
【図２１】
2019121867.tif 000023
【図２２】
2019121867.tif 000024
【図２３】
2019121867.tif 000025
【図２４】
2019121867.tif 000026
【図２５】
2019121867.tif 000027