(57)【特許請求の範囲】
【請求項１】
クライアント装置でマルチアングル映像を組み立てるためのコンピュータ実施方法であって、前記方法は、
対象ユーザに関連付けられたクライアント装置によってマルチアングル映像の中で使われる映像を取り込むステップであって、前記マルチアングル映像は、少なくとも一部の前記取り込まれた映像と、複数の部分の他の映像であって前記対象ユーザの近くの他のユーザによって取り込まれたものとを含む、ステップと、
前記取り込まれた映像に関連付けられた複数のメタデータを決定するステップと、
前記クライアント装置の位置を記述した地理位置情報を決定するステップと、
コンピュータサーバの時計と、前記取り込まれた映像に関連付けられたタイムスタンプとを同期するステップと、
前記取り込まれた映像の複数のキーフレームを抽出するステップと、
前記抽出されたキーフレームに対応する低解像度画像を生成するステップと、
前記取り込まれた映像及び関連付けられたメタデータをコンピュータサーバへ送信するステップと、
を含む、コンピュータ実施方法。
【請求項２】
前記取り込まれた映像に関連付けられた前記複数のメタデータは、
前記クライアント装置の位置を記述した地理位置情報、
前記クライアント装置によって前記映像がいつ取り込まれたかを示すタイムスタンプ、
前記取り込まれた映像から抽出されるキーフレームの識別、及び
前記抽出されたキーフレームに対応する低解像度画像の識別のうち少なくとも１つを含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記取り込まれた映像から複数のキーフレームを抽出するステップは、
全ての予め定義された時間区間について、前記取り込まれた映像から映像フレームを抽出するステップをさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項４】
前記取り込まれた映像から複数のキーフレームを抽出するステップは、
前記取り込まれた映像の予めよく定義された映像フレームの集合について、前記取り込まれた映像から映像フレームを抽出するステップをさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項５】
前記地理位置情報は、グループからの少なくとも１つを含み、前記グループは、前記クライアント装置に関連付けられる緯度、経度、及び方位を含む、請求項２に記載のコンピュータ実施方法。
【請求項６】
前記取り込んだ映像を含むマルチアングル映像を組み立てることの要求を送信するステップと、
前記対象ユーザの近くの他のユーザが取り込んだ他の映像の複数の部分を受信するステップと、
他の映像の１つ又は複数の部分を選択するステップと、
前記選択された他の映像の部分と、前記対象ユーザに関連付けられた前記クライアント装置によって取り込まれた前記映像とに基づいて、前記マルチアングル映像を生成するステップと、
をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項７】
前記マルチアングル映像を生成するステップは、
前記対象ユーザの近くの他のユーザによって取り込まれた他の映像の前記選択された部分と、前記対象ユーザに関連付けられた前記クライアント装置によって取り込まれた映像とを、前記選択された映像に関連付けられたタイムスタンプに応じて、結合するステップを含む、請求項６に記載のコンピュータ実施方法。
【請求項８】
マルチアングル映像を組み立てるためのコンピュータ実施方法であって、前記方法は、
対象ユーザのクライアント装置から、マルチアングル映像を組み立てることの要求を受信するステップと、
前記対象ユーザの近くの他のユーザによって取り込まれた複数の映像を識別するステップと、
前記対象ユーザの近くのユーザによって取り込まれた前記複数の映像を提示するステップと、
前記対象ユーザ及び近くのユーザによって取り込まれた映像の部分の選択を受信するステップと、
前記映像の選択部分に基づいてマルチアングル映像を組み立てるステップと、
を含み、
近くのユーザによって取り込まれた前記複数の映像を識別するステップは、
前記対象ユーザによって取り込まれた映像に関連付けられる地理位置及び時間を決定するステップと、
前記決定された地理位置に基づいて地理的境界を識別するステップと、
他のユーザを識別するステップであって、前記他のユーザは、前記対象ユーザによって取り込まれた前記映像と時間的に重なる映像を取り込み、前記識別した地理的境界の範囲内に地理位置を有するステップと、を含む、
コンピュータ実施方法。
【請求項９】
前記近くのユーザは、前記対象ユーザと同時に映像を記録したユーザであり、前記近くのユーザは、前記対象ユーザが前記映像を記録したとき、前記対象ユーザの位置に対して閾値距離範囲内に位置していた、
請求項８に記載のコンピュータ実施方法。
【請求項１０】
前記マルチアングル映像を組み立てるステップは、
前記対象ユーザによって取り込まれた映像及び前記近くのユーザによって取り込まれた複数の映像を受信するステップを含み、
前記選択は、前記対象ユーザによって取り込まれた前記映像の少なくとも第１の部分と、近くのユーザによって取り込まれた映像の第２の部分とを含む、
請求項８に記載のコンピュータ実施方法。
【請求項１１】
前記対象ユーザによって取り込まれた前記映像から前記第１の部分を抽出し、前記近くのユーザによって取り込まれた前記映像から前記第２の部分を抽出するステップと、
前記マルチアングル映像を生成するために、前記第１の部分と前記第２の部分とを結合するステップと、
をさらに含む、請求項１０に記載のコンピュータ実施方法。
【請求項１２】
近くのユーザによって取り込まれた前記複数の映像を識別するステップは、
前記対象ユーザによって取り込まれた映像に関連付けられる地理位置及び時間を決定するステップと、
他のユーザを識別するステップであって、前記他のユーザは、前記対象ユーザによって取り込まれた前記映像と時間が重なる映像を取り込み、前記対象ユーザによって取り込まれた前記映像に関連付けられた前記地理位置に対して閾値距離範囲内に地理位置を有する、ステップと、
を含む、請求項８に記載のコンピュータ実施方法。
【請求項１３】
前記地理的境界は、前記対象ユーザによって取り込まれた前記映像に関連付けられる前記決定した地理位置を中心とする円である、請求項８に記載のコンピュータ実施方法。
【請求項１４】
前記地理的境界を識別するステップは、
前記対象ユーザによって取り込まれた前記映像に関連付けられる前記決定した地理位置近くの地理的特徴を識別するステップと、
前記識別した地理的特徴に関連付けられる地理的境界を識別するステップと、
を含む、請求項８に記載のコンピュータ実施方法。
【請求項１５】
近くのユーザによって取り込まれた前記複数の映像からの映像が利用できないという決定に応じて、前記利用できない映像に関連付けられた前記ユーザに対し、前記利用できない映像を提供するように要求を送信するステップと、
をさらに含み、
前記利用できない映像は、前記映像のメタデータのみをアップロードし、前記映像をアップロードしないことを意味する、
請求項８に記載のコンピュータ実施方法。
【請求項１６】
クライアント装置でマルチアングル映像を組み立てるための、コンピュータによって実行可能なコンピュータプログラム命令を格納する、非一過性のコンピュータ読み取り可能な記録媒体であって、前記命令は、コンピュータプロセッサによって実行されるとき、前記コンピュータプロセッサに、
対象ユーザに関連付けられたクライアント装置によるマルチアングル映像、前記マルチアングル映像は、前記取り込まれた映像の少なくとも部分及び前記対象ユーザの近くの他のユーザによって取り込まれた他の映像の複数の部分を含み、
前記取り込まれた映像に関連付けられる複数のメタデータを決定させ、
前記取り込まれた映像及び関連付けられたメタデータをコンピュータサーバに送信させ、
前記クライアント装置の位置を記述する地理位置情報を決定させ、
前記取り込まれた映像に関連付けられたタイムスタンプと、前記コンピュータサーバの時計とを同期させ、
前記取り込まれた映像の複数のキーフレームを抽出させ、
前記抽出されたキーフレームに対応する低解像度画像を生成させる、
コンピュータ読み取り可能な記録媒体。
【請求項１７】
前記取り込まれた映像に関連付けられた前記複数のメタデータは、
前記クライアント装置の位置を記述する地理位置情報、
前記クライアント装置によって前記映像がいつ取り込まれたかを示すタイムスタンプ、
前記取り込まれた映像から抽出されるキーフレームの識別（identification）、及び
前記抽出されたキーフレームに対応する低解像度画像の識別（identification）のうち少なくとも１つを含む、請求項１６に記載のコンピュータ読み取り可能な記録媒体。
【請求項１８】
前記命令は、コンピュータプロセッサによって実行されるとき、前記コンピュータプロセッサに、さらに、
前記取り込まれた映像を含むマルチアングル映像を組み立てることの要求を前記コンピュータサーバに送信させ、
前記対象ユーザの近くの他のユーザによって取り込まれた他の映像の複数の部分を受信させ、
他の映像の１つ又は複数の部分を選択させ、及び
他の映像の前記選択された部分及び前記対象ユーザに関連付けられた前記クライアント装置によって取り込まれた前記映像に基づいて、前記マルチアングル映像を生成させる、
請求項１６に記載のコンピュータ読み取り可能な記録媒体。
【請求項１９】
マルチアングル映像を組み立てるためのコンピュータプログラム命令を格納する、非一過性のコンピュータ読み取り可能な記録媒体であって、前記命令は、コンピュータプロセッサによって実行されるとき、前記コンピュータプロセッサに、
対象ユーザから、マルチアングル映像を組み立てることの要求を受信させ、
前記対象ユーザの近くの他のユーザによって取り込まれた複数の映像を識別させ、
近くのユーザによって取り込まれた前記複数の映像を前記対象ユーザに提示させ、
前記対象ユーザ及び近くのユーザによって取り込まれた映像の部分の選択を受信させ、
前記映像の前記選択された部分に基づいてマルチアングル映像を組み立てさせ、
近くのユーザによって取り込まれた前記複数の映像を識別するための前記命令は、前記コンピュータプロセッサによって実行されるとき、前記コンピュータプロセッサに、
前記対象ユーザによって取り込まれた映像に関連付けられる地理位置及び時間を決定させ、
前記決定した地理位置に基づいて地理的境界を識別させ、
前記対象ユーザによって取り込まれた前記映像と時間的に重なる映像を取り込み、前記識別した地理的境界の範囲内に地理位置を有する、他のユーザを識別させる、
コンピュータ読み取り可能な記録媒体。
【請求項２０】
前記近くのユーザは、前記対象ユーザと同時に映像を記録したユーザであり、前記近くのユーザは、前記対象ユーザが前記映像を記録したとき、前記対象ユーザの位置に対して閾値距離範囲内に位置していた、請求項１９に記載のコンピュータ読み取り可能な記録媒体。
【請求項２１】
前記命令は、コンピュータプロセッサによって実行させるとき、さらに、前記コンピュータプロセッサに、
近くのユーザによって取り込まれた前記複数の映像からの映像が利用できないという決定に応じて、前記利用できない映像に関連付けられた前記ユーザに対し、前記利用できない映像を提供するように要求を送信させ、
前記利用できない映像は、前記映像のメタデータのみをアップロードし、前記映像をアップロードしないことを意味する、
請求項１９に記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して映像共有に関し、そして、特にクラウド映像共有を用いるマルチアングル映像編集に関する。
【背景技術】
【０００２】
スマートフォン及びタブレットのようなモバイルコンピューティングデバイスの進歩に伴い、ますます人々が様々な種類のイベントの映像を記録できるようになってきている。
例えば、スポーツイベントに参加する人々は、彼らのモバイルコンピューティングデバイスを使用して、そのスポーツイベントの映像素材（short footages）を記録することができる。そうしたユーザは、彼ら自身の映像をモバイルアプリケーションで編集するかもしれない。例えば、複数のユーザがイベントの特定の瞬間を異なるアングルから記録していることがあり、そして、ユーザは、それら２つ以上の映像を使用して、第１のモバイルデバイスのカメラによって記録された１つのアングルから、第２のモバイルデバイスのカメラによって記録された第２のアングルへと遷移する１つの映像を生成したいことがある。しかし、彼らのモバイルデバイスを使用する個々のユーザが、異なるアングルから取り込まれた映像から、マルチアングル映像を編集して生成することは、技術的にチャレンジングであり、そして、高価になる。
【０００３】
また、ユーザは、イベントの映像素材（footages）の１つを記録するために使用したモバイルコンピューティングデバイスを用いて映像編集を行いたいことがある。モバイルコンピューティングデバイスは、限られた演算能力を有し、それがマルチアングル映像編集をよりチャレンジングにする。マルチアングル映像編集のための現在の解決法、例えば、異なるアングルから取り込んだ映像の異なる部分を手作業で選択して印付けすること、は、ユーザエクスペリエンスを損なわずに、そうしたモバイルコンピューティングデバイスに適合しえない。
【発明の概要】
【０００４】
本発明の実施形態は、異なるアングルから取り込まれた映像を用いてマルチアングル映像を組み立てるための解決法を提供する。映像共有サービスは、複数のユーザが取り込んだ複数の映像に関連付けられた情報を、ユーザが、マルチアングル映像を組み立てるために保存する。また、クライアント装置の映像取得エンジンは、映像を取り込み、そして、組み立てられたマルチアングル映像の中でアングル間を切り替えるときの円滑な遷移を許容するために映像共有サービスと同期する。同期は、時間ベースでありうる。そして、時間ベースの同期は、複数の映像に関連付けられたオーディオ特徴に基づいてさらに改良されうる。
【０００５】
クライアント装置でマルチアングル映像を組み立てるためのコンピュータ実施方法が開示される。その方法の実施形態は、対象ユーザに関連付けられたクライアント装置によってマルチアングル映像で用いる映像を取り込むステップを含む。マルチアングル映像は、取り込まれた映像の少なくとも一部、及び対象ユーザの近くの他のユーザによって取り込まれた他の映像部分を含む。取り込まれた映像に関連付けられたメタデータを決定し、そして、取り込まれた映像及びそのメタデータをコンピュータサーバに送信する。
【０００６】
他の側面によれば、コンピュータサーバでマルチアングル映像を組み立てるためのコンピュータ実施方法が提供される。マルチアングル映像を組み立てることの要求を対象ユーザから受信する。対象ユーザの近くの他のユーザによって取り込まれた映像を特定する。
特定した映像を対象ユーザに提示する。対象ユーザ及び近くのユーザによって取り込まれた映像部分の選択を受信し、そして、選択された映像部分に基づいて、マルチアングル映像を組み立てる。
【０００７】
本明細書で説明される特徴及び利点は全てを包含するものというわけではなく、特に、多くの追加的な特徴及び利点が、図面、明細書、及び請求項の視点から当業者において明らかになるであろう。さらに、明細書で使用される用語は、主に可読性及び教示を目的として選択されたものであり、開示された構成要素を叙述又は限定するために選択されたものではないことに注意すべきである。
【図面の簡単な説明】
【０００８】
【図１】１つの実施形態に従い、マルチアングル映像を組み立てるためのコンピュータ環境のブロックダイアグラムを示した図である。
【図２】１つの実施形態に従い、映像共有サービス及び／又はクライアント装置として動作するコンピュータの一例を表したブロック図である。
【図３】１つの実施形態に従い、映像取得エンジンについて示したブロック図である。
【図４】１つの実施形態に従い、映像共有エンジンについて示したブロック図である。
【図５Ａ】１つの実施形態に従い、スポーツイベントの映像素材（footage）を取り込む複数のユーザのトップビューダイアグラムを示した図である。
【図５Ｂ】１つの実施形態に従い、複数のスポーツイベントの映像素材（footage）を取り込む複数のユーザのトップビューダイアグラムを示した図である。
【図５Ｃ】１つの実施形態に従い、スポーツイベントの映像素材（footage）を取り込む複数の他のユーザの向こう側に移動するユーザを示した図である。
【図６】１つの実施形態に従い、マルチアングル映像を生成するための、近くのユーザからの利用可能な映像及びユーザの映像シーケンス選択を表した図である。
【図７】１つの実施形態に従い、マルチアングル映像組み立てのための映像素材（video footage）をアップロードするプロセスを示したフロー図である。
【図８】１つの実施形態に従い、複数のアングルから取り込まれた映像素材を有するマルチアングル映像を映像共有サービスで組み立てるプロセスを示したフロー図である。
【図９】１つの実施形態に従い、複数のアングルから取り込まれた映像素材を有するマルチアングル映像をクライアント装置で組み立てるプロセスを示したフロー図である。
【図１０】１つの実施形態に従い、映像に関連付けられたサウンドパターンに基づいて、複数のアングルから取り込まれた２つの映像を同期するためのプロセスを示したフロー図である。
【図１１】１つの実施形態に従い、複数のアングルから取り込まれた映像素材を有するマルチアングル映像を組み立てるための例示的なユーザインターフェースを示した図である。
【発明を実施するための形態】
【０００９】
システム概要
モバイルコンピューティングデバイスによって取り込まれ、そして、クラウドコンピューティング環境に格納されるマルチアングル映像を組み立てるための解決法が提供される。複数のユーザは、異なるアングルからモバイルコンピューティングデバイスのカメラを用いて特定のイベントの映像を取り込む。モバイルコンピューティングデバイスのそれぞれから取り込まれた映像のタイムスタンプは、映像共有サーバの時間と同期される。また、地理位置のような他の情報（例えば、緯度、経度、高度、及び方位）は、モバイルコンピューティングデバイスによって測定でき、そして、取り込まれた映像に関連付けられうる。取り込まれた映像は、映像共有サーバに送信され、そして、マルチアングル映像を組み立てるために、ユーザによって、後にアクセスされる。
【００１０】
図１は、１つの実施形態に従い、マルチアングル映像を組み立てるためのコンピューティング環境１００を示したブロック図である。図１に示した実施形態は、複数のクライアント装置１１０（例えば、１１０Ａ、１１０Ｂ、及び１１０Ｃ）及び映像共有サービス１３０は、ネットワーク１２０によって互いに接続される。コンピューティング環境１００の実施形態は、ネットワーク１２０に接続された多くのクライアント装置１１０を有しうる。同様に、図１の様々なエンティティによって実行される機能は、異なる実施形態において異なりうる。
【００１１】
クライアント装置１１０は、デジタルコンテンツの記録、デジタルコンテンツの消費、ソフトウェアアプリケーションの実行、ネットワーク１２０上のウェブサーバによって運営されるウェブサイトの閲覧、ファイルのダウンロードなどのような機能を実行するために、ユーザによって利用される電子デバイスである。例えば、クライアント装置１１０は、メディアストリーミングデバイス、スマートフォン、又は、タブレット、ノートブック又はデスクトップコンピュータであってもよい。クライアント装置１１０は、ユーザが映像及び他のコンテンツを見ることができるようにするディスプレイ装置を含む及び／又は仲介する。また、クライアント装置１１０は、物理的及び／又はオンスクリーンのボタンのようなユーザインターフェース（ＵＩ）を提供する。それを有することで、ユーザは、クライアント装置１１０と相互作用することができ、スポーツ教育映像のようなデジタルコンテンツを見る、選択する、及び、消費するというような機能を実行できる。
【００１２】
１つの実施形態において、クライアント装置１１０は、映像を取り込み、そして、映像を映像共有サービス１３０にアップロードする映像取得エンジン１１５を有する。他の実施形態において、映像取得エンジン１１５に加え、クライアント装置１１０は、マルチアングル映像を組み立てる映像組立モジュール（図１には不図示）を有する。映像取得エンジン１１５については、図３を参照しながら以下でさらに説明する。簡単のために、映像組立モジュールについては、図４の映像共有サービス１３０の映像共有エンジン１３８の、対応する映像組立モジュール４３０を参照しながら説明する。
【００１３】
映像共有サービス１３０は、クライアント装置１１０によって取り込まれた映像を格納するための映像データベース１３４と、映像データベース１３４に格納される映像に関連付けられたメタデータを格納するためのメタデータデータベース１３２と、異なるクライアント装置１１０によって取り込まれた映像のタイミングを同期するための同期モジュール１３６と、映像データベース１３４に格納された映像を利用してマルチアングル映像を組み立てるための映像共有エンジン１３８とを含む。映像共有エンジン１３４については、図４を参照しながら以下でさらに説明する。
【００１４】
本開示において、“映像コンテンツ”、“デジタルコンテンツ”、又は“デジタルメディアコンテンツ”は、概して、任意の機器読み取り可能な及び機器格納可能な作品のことを称する。デジタルコンテンツは、例えば、映像、オーディオ、又は映像とオーディオとの組み合わせを含みうる。あるいは、デジタルコンテンツは、ＪＰＥＧ又はＧＩＦファイルのようなスチル画像、又はテキストファイルであってもよい。簡単化及び１つの実施形態の説明を目的として、デジタルコンテンツを“映像”、“映像ファイル”、又は“映像素材（video footages）”と称するが、この用語によって、解析されうるデジタルコンテンツの種類についての限定を意図するものではない。
【００１５】
ネットワーク１２０は、クライアント装置１１０及び映像共有サービス１３０の間における通信を可能にする。１つの実施形態において、ネットワーク１２０はインターネットを含み、そして、標準通信技術及び／又はプロトコル、例えば、４Ｇ  ＬＴＥモバイルネットワーク、を利用する。他の実施形態においては、エンティティがカスタムの及び／又は専用のデータ通信技術を利用しうる。
【００１６】
コンピューティングシステムアーキティクチャ
図１に示したエンティティは、１つ又は複数のコンピュータを用いて実現される。図２は、１つの実施形態に従い、映像共有サービス１３０及び／又はクライアント装置１１０として動作するためのコンピュータ２００を示した高レベルのブロック図である。チップセット２０４に接続される少なくとも１つのプロセッサ２０２が記載されている。また、チップセット２０４に接続されているものは、メモリ２０６、ストレージ装置２０８、キーボード２１０、グラフィックアダプタ２１２、ポインティングデバイス２１４、及びネットワークアダプタ２１６である。ディスプレイ２１８は、グラフィックアダプタ２１２に接続される。１つの実施形態において、チップセット２０４の機能は、メモリコントローラハブ２２０及びＩ／Ｏコントローラハブ２２２によって提供される。他の実施形態において、メモリ２０６は、チップセット２０４に代えて、プロセッサ２０２に直接接続される。
【００１７】
ストレージ装置２０８は、ハードドライブ、ＣＤ−ＲＯＭ（compact disk read-only memory）、ＤＶＤ、又は、固体メモリデバイス（solid-state memory device）のような任意の非一過性のコンピュータ読み取り可能な記録媒体である。メモリ２０６は、命令、及びプロセッサ２０２によって利用されるデータを保持する。ポインティングデバイス２１４は、マウス、トラックボール、又は他の種類のポインティングデバイスであってもよく、キーボード２１０と共にコンピュータシステム２００にデータを入力するために利用される。グラフィックアダプタ２１２は、画像及び他の情報をディスプレイ２１８に表示する。ネットワークアダプタ２１６は、コンピュータシステム２００をネットワーク１２０に接続する。
【００１８】
当技術分野で周知のように、コンピュータ２００は、図２に示されたものとは異なる及び／又は他の要素を持ちうる。また、コンピュータ２００は、ある記載された要素を欠くこともできる。例えば、映像共有エンジン１３８として動作するコンピュータは、複数のブレードサーバを互いに接続して１つ又は複数の分散システムを形成することができ、キーボードやディスプレイのような要素を省略することができる。さらに、ストレージ装置２０８は、ローカルにおくこともできるし及び／又はコンピュータ２００から離れたところにおくこともできる（ＳＡＮ（storage area network）内での形態のように）。
【００１９】
当技術分野で周知のように、コンピュータ２００は、ここで説明される機能性を提供するコンピュータプログラムモジュールを実行することに適合している。ここで使われるように、用語“モジュール”は、特定の機能を提供するために使われるコンピュータプログラム論理のことを称する。従って、モジュールは、ハードウェア、ファームウェア、及び／又はソフトウェアで実現されうる。１つの実施形態において、プログラムモジュールは、ストレージ装置２０８に格納され、メモリ２０６にロードされ、そして、プロセッサ２０２により実行される。
【００２０】
マルチアングル映像組み立てのための映像取得
複数のユーザは、同じスポーツイベントの映像を異なるアングルからモバイルコンピューティングデバイスのカメラを利用して取り込むことができる。図３は、１つの実施形態に従い、クライアント装置１１０の映像取得エンジン１１５を示したブロック図である。映像取得エンジン１１５は、映像、例えば、ライブサッカーゲーム、を取り込み、その映像を映像共有サービス１３０にアップロードする。１つの実施形態において、映像取得エンジン１１５は、映像取得モジュール３１０と、同期モジュール３２０と、測位モジュール３３０と、キーフレーム抽出モジュール３４０と、メタデータアップロードモジュール３５０と、そして、映像アップロードモジュール３６０とを有する。映像取得エンジン１１５の他の実施形態は、異なる及び／又は追加的なコンピュータモジュール、例えば、映像共有サービスによって生成されたマルチアングル映像を提示するプレゼンテーションモジュール、を有しうる。同様に、図３の様々なエンティティによって実行される機能は、異なる実施形態において異なっていてもよい。
【００２１】
映像取得モジュール３１０、例えば、スマートフォンの内蔵デジタルカメラ、は、スポーツイベントのようなイベントの映像を取り込む。例えば、映像取得モジュール３１０は、サッカー競技の映像、又はバスケットボール競技の映像を取り込む。映像取得モジュール１１５は、任意のフォーマット及び／又は解像度で映像を取り込むことができる。いくつかの実施形態において、映像取得モジュール１１５は、クライアント装置１１０を利用するユーザによって指定されたフォーマット及び解像度で映像を取り込む。取り込まれた映像は複数の映像フォーマットを含み、その各々は、取り込まれた映像の他の映像フレームに関係する時間情報を表す、関連付けられたタイムスタンプを有する。
【００２２】
同期モジュール３２０は、映像取得モジュール３１０によって取り込まれた映像のタイムスタンプと、映像共有サービス１３０の同期モジュール１３６からの時計とを同期する。いくつかの実施形態において、クライアント装置１１０の同期モジュール３２０及び映像共有サービス１３０の同期モジュール１３６は、クリスチャンズアルゴリズム（Cristian’s algorithm）又はＮＴＰ（network time protocol）のような時計同期アルゴリズムを利用する。例えば、クライアント装置１１０の同期モジュール３２０は、要求を映像共有サービス１３０の同期モジュール１３６に送信してもよい。映像共有サービス１３０の同期モジュール１３６は、同期モジュール１３６のクロックタイムを含む応答を送信する。クライアント装置１１０の同期モジュール３２０は、クライアント装置１１０から映像共有サービス１３０へと行ったり来たりするパケットについてのＲＴＴ（round trip time）をさらに測定してもよい。映像同期モジュール３２０は、次に、取り込んだ映像の現在時間を、映像共有サービス１３０の同期モジュール１３６からの応答に含まれる時間にＲＴＴの半分を加えたものであると決定してもよい。
【００２３】
測位モジュール３３０は、映像取得モジュール３１０が映像を取り込んだとき、クライアント装置１１０の位置を測定し、そして、映像取得モジュール３１０によって取り込まれた映像に、測定した位置をタグ付けする。例えば、測位モジュール３３０は、ＧＰＳ（global positioning system）受信機を使用してクライアント装置１１０の緯度及び経度を測定する。測位モジュール３３０は、取り込まれた映像に関連付けて、座標値（例えば、緯度及び経度）に対応するメタデータをローカルのリポジトリに格納してもよいし、又は、そのメタデータをさらなる処理のためにメタデータアップロードモジュール３５０に提供してもよい。測位モジュール３３０は、標高や方位のような他の地理位置パラメータをさらに測定してもよい。
【００２４】
キーフレーム抽出モジュール３４０は、映像取得モジュール３１０によって取り込まれた映像からキーフレームを抽出する。キーフレームは、映像のオーディオ／ビデオ信号に生じた変化の始点又は終点を示すために選択されたビデオフレームである。例えば、キーフレームは、スポーツ映像のオーディオ信号が閾値レベルに減衰し始める点を示すように設定される。いくつかの実施形態において、キーフレーム抽出モジュール３４０は、設定された数のフレーム毎にフレームを抽出する（例えば、３０フレーム毎に最初のフレームを抽出する）、又は、設定された時間周期でフレームを抽出する（例えば、３０秒毎にフレームを抽出する）。
【００２５】
また、キーフレーム抽出モジュール３４０は、映像共有サービス１３０にアップロードされる、抽出されたキーフレームについての低解像度画像を生成してもよい。元の解像度のキーフレームに代えて、抽出されたキーフレームについての低解像度画像をアップロードすることは、モバイルコンピューティングデバイスに対する帯域幅の要求を低減する。例えば、低解像度画像は、映像取得モジュール３１０によって取り込まれた映像のキーフレームのサムネイルとして映像共有サービス１３０により利用されうる。実施形態において、キーフレーム抽出モジュール３４０は、抽出されたキーフレームを圧縮することによって、抽出されたキーフレームについての低解像度画像を生成する。当業者において知られた任意の圧縮方法は、キーフレーム抽出モジュール３４０により、抽出されたキーフレームを圧縮するために利用されうる。
【００２６】
メタデータアップロードモジュール３５０は、映像取得モジュール３１０によって取り込まれた映像に関連付けられたメタデータを映像共有サービス１３０にアップロードする。映像取得モジュール３１０によって取り込まれた映像に関連付けられたメタデータの例は、映像の地理位置情報、映像の時間情報、抽出されたキーフレームの識別（identification）、及びキーフレームの対応する低解像度画像を含む。例えば、メタデータアップロードモジュール３５０は、測位モジュール３３０によって測定された地理位置情報、及び同期モジュール３２０によって決定された時間情報をアップロードする。メタデータアップロードモジュールは、キーフレームの識別、又はキーフレーム抽出モジュール３４０によって抽出されたキーフレームに対応する低解像度画像をさらにアップロードしてもよい。
【００２７】
いくつかの実施形態において、メタデータアップロードモジュール３５０は、映像取得モジュール３１０がイベントの映像素材を取り込んだ後すぐにメタデータをアップロードする。例えば、メタデータアップロードモジュール３５０は、映像取得モジュール３１０が映像素材を取り込み終えた後、直ちにメタデータをアップロードしてもよい。いくつかの実施形態において、メタデータアップロードモジュール３５０は、映像取得モジュール３１０が映像素材を取り込んでいる間にメタデータをアップロードしてもよい。例えば、メタデータアップロードモジュール３５０は、時間情報、地理位置情報、及び／又は、キーフレームの識別を、映像取得モジュール３１０が映像素材の取り込みを終える前であっても、映像共有サービス１３０にアップロードすることができる。
【００２８】
映像アップロードモジュール３６０は、映像取得モジュール３１０によって取り込まれた映像素材を映像共有サービス１３０にアップロードする。１つの実施形態において、映像アップロードモジュール３６０は、キーフレーム抽出モジュール３４０によって抽出されたキーフレームに対応する低解像度画像をアップロードする。いくつかの実施形態において、映像アップロードモジュール３６０は、クライアント装置１１０が、取り込んだ映像をアップロードする前に、高速インターネット接続を確立するまで待機してもよい。例えば、映像アップロードモジュール３６０は、クライアント装置がＷＬＡＮ（wireless local area network）を介して接続されるまで待機してもよい。他の実施形態において、映像アップロードモジュールは、クライアント装置１１０のユーザからの指示の受信に応じて、映像取得モジュールによって取り込まれた映像をアップロードする。
【００２９】
マルチアングル映像組み立て及び共有
再び図１を参照すると、映像共有サービス１３０は、メタデータデータベース１３２、映像データベース１３４、同期モジュール１３６、及び映像共有エンジン１３８を含む。映像データベース１３４は、クライアント装置１１０によって取り込まれた映像を格納する。メタデータデータベース１３２は、映像データベース１３４に格納された映像に関連付けられたメタデータを格納する。１つの実施形態において、メタデータデータベース１３２に格納されるメタデータは、関連付けられた映像を提供したクライアント装置１１０から受信される。映像共有サービス１３０の同期モジュール１３６は、クライアント装置１１０の映像取得エンジン１１５の同期モジュール３２０と通信し、クライアント装置１１０によって取り込まれた映像のタイミングと同期する。映像共有エンジン１３８は、映像データベース１３２に格納された映像を利用して、ユーザがマルチアングル映像を組み立てできるようにする。
【００３０】
同期モジュール１３６は、クライアント装置１１０によって取り込まれ、そして、映像共有サービス１３０にアップロードされた映像のタイミングを同期する。クライアント装置１１０の各々は、異なる内部時間を有しうるし、そして、クライアント装置１１０によって取り込まれた映像は、そのタイムスタンプとして、クライアント装置１１０の内部時間を有する。複数のクライアント装置で記録された映像素材を利用してマルチアングル映像を構成するとき、もし、異なる映像素材に関連付けられたタイミングが同期していないと、構成された映像は、時間的に連続しなくなることがある。例えば、見ている人に対するジッター（jittering）の出現となりうる。例えば、ユーザは、第１のクライアント装置からの映像素材と、第２のクライアント装置からの映像素材とを利用して映像を構成してもよいが、ここで、第１のクライアント装置の内部時間と第２のクライアント装置の内部時間とが１秒異なる。構成された映像は、クライアント装置の各々によって記録された映像素材間を切り替えるとき、第１のクライアント装置と第２のクライアント装置との間の内部時間の違いにより、１秒の時間的なギャップを有しうる。
【００３１】
１つの実施形態において、同期モジュール１３６は、クライアント装置１１０によって取り込まれた各映像に関連付けられた内部時間を、同期モジュール１３６のシステム時計に同期する。例えば、クライアント装置１１０からクロック同期要求を受信したとき、同期モジュール１３６は、同期モジュール１３６のクロックタイムを含む応答を送信する。クライアント装置１１０の映像同期モジュール３２０は、映像の現在時間を、同期モジュール１３６からの応答に含まれる時間になるように設定するが、ここで、現在時間は、クライアント装置１１０によって映像共有サービス１３０にアップロードされたキーフレームの低解像度画像に関連付けられている。
【００３２】
ある状況下では、同期モジュール１３６は、クライアント装置１１０毎に時間を正確に同期できないかもしれない。例えば、クライアント装置１１０は、ビジーネットワーク（例えば、数千人の人々が同時に１つのネットワークに接続するコンサート会場内）の中にいるかもしれず、このような場合、クライアント装置１１０と映像共有サービス１３０との間でデータを送信及び受信するための遅延は大きい。同期モジュール１３６は、映像共有サービス１３０とクライアント装置１１０との間の時間ベースの同期が成功しなかったとき、映像を同期するために複数の映像のオーディオ特徴を利用してもよい。
【００３３】
いくつかの実施形態において、同期モジュール１３６は、時間ベースの同期が不成功になったかどうか、又は、映像共有サービス１３０とクライアント装置１１０との間の時間ベースの同期が不正確であることの尤度が閾値より高いかどうか、を判断する。例えば、同期モジュール１３６は、複数のクライアント装置に到達するための遅延（例えば、映像共有サービス１３０とクライアント装置１１０との間でパケットのＲＴＴ（roundtrip time）を測定することによって）を測定してもよい。クライアント装置１１０についてのＲＴＴを測定するために、映像共有サービス１３０は、クライアント装置１１０に要求を送信し、そして、クライアント装置１１０からのＡＣＫ（acknowledgement）の受信にかかる時間を計測してもよい。同期モジュール１３６は、次に、時間同期が不正確であることの尤度が高いことを、測定した遅延に基づいて判断する。例えば、もし、異なるクライアント装置１１０についての遅延に基づくＲＴＴ間の差が遅延閾値より大きいなら、同期モジュール１３６は、時間同期が不正確であることの尤度が高いと判断する。
【００３４】
複数から取り込まれた複数の映像の同期についての精度を改善するために、同期モジュール１３６は、それら複数の映像のうちのある映像に関連付けられたオーディオシグネチャ（audio signature；“サウンドパターン”とも称される）を選択し、選択したサウンドパターンがそれら映像のうちの他の映像映像に現れるかを判断する。サウンドパターンの判断に基づいて、同期モジュール１３６は、各映像に関連付けられたタイミングを調整するかどうかを決定する。
【００３５】
図１０は、複数のアングルから取り込まれた複数の映像のうち第１映像と第２映像とを、映像に関連付けられたサウンドパターンに基づいて同期するためのプロセスを示したフロー図である。図１０に示した例は、２つの映像間の同期だけを示しているが、同様のステップは複数のアングルから取り込まれた、より多くの映像に対しても適用されうる。もし、第１映像と第２映像とが近隣ユーザによって同時に記録されたものであるなら、第１映像と第２の映像とは、似通ったオーディオシグネチャを有するセグメントを含みうる。例えば、もし、第１映像と第２映像とがコンサートの間に記録されたものなら、両方の映像は、歌手が特定の歌又は歌の一部を歌うオーディオシグネチャを、特定のタイマー期間に含みうる。同様に、もし、映像がサッカー競技の間に記録されたものであるなら、両方の映像は、観衆がゴールに歓喜する、又はボールがポストに当たるオーディオシグネチャを含みうる。
【００３６】
第１及び第２映像を同期するために、同期モジュール１３６は、参照オーディオシグネチャとして第１映像に関連付けられたサウンドパターンを選択し、第１映像の複数のサーチウィンドウ内のオーディオ信号のパワーを測定１０１０する。同期モジュール１３６は、サウンドパワー閾値より大きなパワーを有し、そして、期間閾値（例えば、２秒）より大きな期間を有するサーチウインドウを選択１０２０する。例えば、同期モジュール１３６は、第１映像のオーディオ信号の少なくとも２秒間における最大パワーを有するサーチウィンドウを選択してもよい。選択したサーチウィンドウのサウンドパワーは、第１映像の参照オーディオシグネチャを与える。
【００３７】
同期モジュール１３６は、第２映像内での選択したウィンドウのオーディオシグネチャを探索１０３０する。オーディオシグネチャを探索するために、同期モジュール１３６は、選択したウィンドウの周波数スペクトラムについて第２映像のオーディオ信号を解析し、第１映像のオーディオシグネチャに関連付けられた、類似する周波数スペクトラムを有する第２映像のウィンドウを探索する。もし、オーディオシグネチャが第２映像内で発見１０４０されたなら、同期モジュール１３６は、第１映像のオーディオシグネチャを有する映像セグメントのＲＴＴタイムスタンプと、第２映像のオーディオシグネチャを有する映像セグメントのＲＴＴタイムスタンプとの間の差（variance）を計算する。計算されたタイムスタンプの差に基づいて、同期モジュール１３６は、第２映像のタイミングを調整するかどうかを決定する。
【００３８】
１つの実施形態において、同期モジュール１３６は、計算したタイムスタンプの差と、差分閾値とを比較する。差が差分閾値より小さいかに応じて、同期は、第２映像のタイミングを調整１０５０するか、あるいは、タイミング調整を実施しない。例えば、第２映像のタイミングは、タイムスタンプの差と差分閾値との比較に基づいてシフトされる。もし、オーディオシグネチャが第２映像内に見つからないなら、第２映像は破棄１０６０される。もし、同期する映像が２つ以上あるなら、同期モジュール１３６は、同じ１０３０−１０６０のステップを追加的な映像に対して繰り返す。いくつかの実施形態において、もし、オーディオシグネチャが複数の場所で見つかるなら（例えば、第２映像内に含まれるサウンドのエコーが理由で）、オーディオシグネチャを含む最初のウィンドウが、第１映像と第２映像との同期に利用される。
【００３９】
映像共有エンジン１３８は、ユーザに対し、映像データベース１３２に格納されている映像を利用してマルチアングル映像を組み立てることを可能にする。図４は、１つの実施形態に従い、映像共有エンジン１３８を示したブロック図である。映像共有エンジン１３８は、近隣ユーザ識別モジュール４１０、映像提示モジュール４２０、及び映像組立モジュール４３０を含む。
【００４０】
複数のユーザは、スポーツイベントの映像を、異なるアングルから、モバイルコンピューティングデバイスのカメラを利用して取り込むことができ、そして、ユーザは、異なるアングルから他のユーザが取り込んだ映像素材を利用して映像を組み立てたいかもしれない。ユーザによって記録された特定の映像について、近隣ユーザ識別モジュール４１０は、特定の映像を記録したユーザの近くにいた他のユーザによって取り込まれた他の映像を識別する。映像共有エンジン１３８の１つの実施形態の説明を簡単にするため、近隣ユーザ識別モジュール４１０が、他のユーザが近くにいると認識するための、ユーザをこれ以降、“対象ユーザ”と称する。１つの実施形態において、近隣ユーザ識別モジュール４１０は、取り込まれた映像のメタデータ、例えば、地理位置情報を、対象ユーザの近くにいた他のユーザを認識するために利用する。
【００４１】
図５Ａは、スポーツイベントの映像素材を取り込む複数のユーザのトップビューを示した図である。図５Ａの例において、６人のユーザＵ１、Ｕ２、Ｕ３、Ｕ４、Ｕ５、及びＵ６がサッカーゲームの映像素材を取り込んでいる。特に、ユーザＵ１、Ｕ２、Ｕ３、Ｕ４、及びＵ５は、サッカーボールを持っているプレーヤ５１０Ａの映像素材を取り込んでおり、一方で、ユーザＵ６は、プレーヤ５１０Ｂの映像素材を取り込んでいる。ユーザＵ１は、対象ユーザであり、ユーザＵ１、Ｕ３、及びＵ４によって取り込まれた映像素材を利用して映像を組み立てたいことがありうる。近隣ユーザ識別モジュール４１０は、対象ユーザＵＩの近くにいたユーザＵ２からＵ６を認識するために、メタデータデータベース１３２に含まれる情報を利用する。例えば、近隣ユーザ識別モジュール４１０は、ユーザＵ２及びＵ６によって取り込まれた映像に関連付けられた地理位置情報、例えば、緯度及び経度、を利用し、そして、その地理位置情報と、ユーザＵ１によって記録された映像に関連付けられた地理位置情報とを比較する。ユーザＵ１によって記録された映像と類似する緯度及び経度を有するユーザＵ２からＵ６によって取り込まれた映像に応じて、近隣ユーザ識別モジュール４１０は、ユーザＵ２からＵ６がユーザＵ１の近くにいたものと判断する。
【００４２】
ユーザＵ１からＵ６によって取り込まれた映像間での地理位置情報の比較に基づく判断を強化するために、近隣ユーザ識別モジュール４１０は、ユーザＵ１からＵ６によって取り込まれた映像に関連付けられた時間情報をさらに比較してもよい。ユーザＵ１によって取り込まれた映像と同じ時間期間にユーザＵ２からＵ６によって取り込まれた映像は、ユーザＵ２からＵ６がユーザＵ１の近くにいた可能性を高める。
【００４３】
他の実施形態において、図５Ｂに示したように、近隣ユーザ識別モジュール４１０は、対象ユーザＵ１からの距離（Ｒ）によって測定される所定のエリア内にいるユーザを選択する。例えば、もし、ユーザＵ１が近くの他のユーザによって取り込まれた映像を用いてマルチアングル映像を組み立てるなら、近隣ユーザ識別モジュール４１０は、ユーザＵ１の位置を中心とする半径Ｒの円５２０Ａの内部にいるユーザを認識する。図５Ｂの例において、ユーザＵ２、Ｕ３、Ｕ４、及びＵ５は、彼らがユーザＵ１の位置を中心とする円５２０Ａ内にいるために選択されており、そして、ユーザＵ６及びＵ７は、彼らが円５２０Ａの外側にいることにより選択されていない。
【００４４】
いくつかの実施形態において、近隣ユーザ識別モジュール４１０は、近くのユーザを特定するために、カメラが指し示しているアングルを考慮に入れる。例えば、ユーザは、彼らの地理位置に基づく対象ユーザの近くにいるが、それらユーザによって利用されるカメラは、対象ユーザＵ１によって指し示されているものとは異なる位置を指し示していることがありうる。近隣ユーザ識別モジュール４１０は、彼らのマルチアングル映像を組み立てるために対象ユーザＵ１によって映像が選択及び利用されないユーザを認識する。図５Ｂの例において、ユーザＵ２、Ｕ３、Ｕ４、及びＵ５は、彼らの地理的位置に基づくと、対象ユーザＵ１の近くにいる。例えば、ユーザＵ２からＵ５は、サッカー場５３０Ａの中央を中心とする同じ円５２０Ｂの内部にいる。しかし、ユーザＵ４及びＵ５のカメラは、対象ユーザＵ１のカメラによって指し示されている方向とは異なるサッカー場を指し示している。近隣ユーザ識別モジュール４１０は、ユーザＵ３、Ｕ４、及びＵ５を、対象ユーザＵ１の近くのユーザとして選択し、ユーザＵ４及びＵ５を選択しない。
【００４５】
また他の実施形態において、近隣ユーザ識別モジュール４１０は、スポーツ競技場又は対象ユーザＵ１の視界に含まれる建物を認識してもよく、認識された競技場を、対象ユーザＵ１の近くにいるユーザを選択するために使用する。図５Ｂを例に挙げると、近隣ユーザ識別モジュール４１０は、サッカー場５３０Ａを、対象ユーザＵ１の視界の中にあると認識する。近隣ユーザ識別モジュール４１０は、競技場５３０Ａの周りに位置する円５２０Ｂの内側にいるユーザを、マルチアングル映像を組み立てるために対象ユーザＵ１によって映像を利用できる、対象ユーザＵ１の近くのユーザとして認識する。
【００４６】
いくつかの実施形態において、近隣ユーザ識別モジュール４１０は、対象ユーザＵ１が１つの場所から他へと移動するにつれて、又は、他のユーザが、近くのユーザを認識するために利用される所定の円形エリアの内部又は外部に移動するにつれて、異なるユーザを認識する。例えば、図５Ｃは、スポーツイベントの映像素材を取り込んでいる複数の他のユーザの向こう側に移動するユーザを示した図である。ユーザＵ１がパス５５０に沿って移動するにつれて、所定の直径を有し、近くのユーザを認識するために利用される円５４０も移動する。例えば、ユーザＵ１が第１の位置にいるとき、第１の円５４０Ａは、近くのユーザを認識するために利用される。円５４０Ａを利用すると、ユーザＵ２は、ユーザＵ１の近くにいると認識される。なぜなら、ユーザＵ２は、第１の円５４０Ａの内部にいるからである。ユーザＵ１がパス５５０に沿って第２の位置に移動するとき、そこでの第２の円５４０Ｂが近くのユーザを認識するために利用される。この位置で、近くのユーザは認識されない。なぜなら、ユーザＵ１以外に円５４０Ｂの内部にユーザがいないからである。ユーザＵ１は、次に、パス５５０に沿って第３の位置まで移動する。そこでの第３の円５４０Ｃが近くのユーザを認識するために利用される。この位置では、二人のユーザＵ３及びＵ４がユーザＵ１の近くにいると認識される。なぜなら、彼らは第３の円５４０Ｃの内側にいるからである。ユーザＵ１が第４の位置に移動するとき、第４の円５４０Ｄが近くのユーザを認識するために利用される。図５Ｃの例において、ユーザＵ１の近くにいるユーザとして認識される他のユーザはない。なぜなら、第４の円５４０Ｄの内側に他のユーザがいないからである。
【００４７】
再び図４を参照すると、映像提示モジュール４２０は、近隣ユーザ識別モジュール４１０によって認識された近くのユーザにより取り込まれた映像素材を対象ユーザに提示する。例えば、図５Ａの例示的な状況については、映像提示モジュール４２０が、ユーザＵ２、Ｕ３、Ｕ４、及びＵ５からの映像素材を対象ユーザＵ１に提示する。ユーザＵ１は、ユーザＵ１自身によって取り込まれた映像に加え、認識された近くのユーザからの１つ又は複数の映像素材を利用してマルチアングル映像を組み立てる。
【００４８】
対象ユーザによるマルチアングル映像組み立てをさらに説明するために、図６は、１つの実施形態に従い、近くのユーザからの利用可能な映像、及び、マルチアングル映像を生成するためのユーザの映像シーケンス選択を示した図である。図６に示したように、ユーザＵ１、Ｕ２、Ｕ３、Ｕ４、Ｕ５、及びＵ６は、時間００：００と時間０４：００との範囲におけるサッカーゲームの映像素材を記録した。例えば、陰付きボックス（shaded boxes）は、ユーザのそれぞれがサッカーゲームの映像素材を記録した時間期間を示している。陰付きボックス上のソリッドボックス（solid boxes）は、ユーザＵ１が組立映像を組み立てるために選択した映像素材の位置を示している。映像提示モジュール４２０は、対象ユーザＵ１がサッカーゲームの映像を記録していた時間期間の間に、近くのユーザによって記録された映像（すなわち、図６の陰付きボックスによって表される映像）を提示する。
【００４９】
いくつかの実施形態において、映像提示モジュール４２０は、プレビュー（例えば、近くのユーザによって取り込まれた映像からのキーフレームの低解像度画像）を示す。他の実施形態において、映像提示モジュール４２０は、近くのユーザがスポーツイベントの映像素材を取り込んだ時間期間の識別（identification）を提示する。図６に示した例において、提示モジュール４２０は、マルチアングル映像の組み立ての中で、対象ユーザＵ１によって選択された各映像シーケンスの時間情報（例えば、開始及び終了）を示す。例えば、対象ユーザＵ１は、時間００：００から時間０１：０２まで自身で記録した映像素材の部分と、ユーザＵ２によって０１：０２から０１：４５まで記録された映像素材の部分と、ユーザＵ３によって０１：４５から０２：３０まで記録された映像素材の部分と、そして、ユーザＵ１によって０２：３０から０４：００まで記録された映像素材の部分とを選択した。
【００５０】
再び図４を参照すると、映像組立モジュール４３０は、映像素材選択を、マルチアングル映像を組み立てる対象ユーザから受信し、対象ユーザによって選択された映像素材の部分を利用してマルチアングル映像を生成する。映像組立モジュール４３０は、対象ユーザによって選択された映像を映像データベース１３４から取り出し、そして、取り出した映像に基づいてマルチアングル映像を組み立てる。映像組立モジュール４３０は、ここでは、映像共有サービス１３０と併せて記載されているけれども、ここで説明された機能は、クライアント装置１１０の対応する映像組立モジュールによって同様に実行されうる。
【００５１】
いくつかの実施形態において、もし、１つ又は複数の近くのユーザが映像素材（例えば、地理位置情報、時間情報、及びキーフレーム）についてのメタデータをアップロードのみし、映像をアップロードしなかったならば、映像組立モジュール４３０は、マルチアングル映像を組み立てる対象ユーザに、１つ又は複数の映像がまだ利用可能ではないことを通知する。いくつかの実施形態において、映像組立モジュール４３０は、欠けていた映像が１つ又は複数の近くのユーザから受信されたときに、マルチアングル映像を生成する。例えば、もし、近くのユーザＵ２及びＵ４がメタデータ及び映像をアップロードし、そして近くのユーザＵ３及びＵ５がメタデータをアップロードしたが映像をアップロードせず、そして、ユーザＵ１が、ユーザＵ１、Ｕ３、及びＵ４によって取り込まれた映像部分を、マルチアングル映像に含めるために選択したならば、映像組立モジュール４３０は、ユーザＵ３によって取り込まれた映像が映像共有サービス１３０にアップロードされたときに、マルチアングル映像を組み立ててもよい。いくつかの実施形態において、映像組立モジュール４３０は、ユーザＵ３に対し、ユーザＵ３によって取り込まれた映像をアップロードするように通知を送信してもよい。
【００５２】
図７は、１つの実施形態に従い、マルチアングル映像組み立てのための映像素材をアップロードするプロセスを示したフロー図である。最初に、クライアント装置１１０の映像取得エンジン１１５は、イベントの映像、例えば、サッカーゲーム、をクライアント装置１１０のデジタルカメラを利用して取り込む７１０。映像取得エンジン１１５は、クライアント装置１１０によって取り込まれた映像の時間と映像共有サービス１３８の時間とを同期７２０する。
【００５３】
映像取得エンジン１１５は、クライアント装置１１０の位置を測定７３０する。例えば、映像取得エンジン１１５の測位モジュール３３０は、ＧＰＳ受信機を利用して緯度及び経度の値を測定してもよい。映像取得エンジン１１５は、クライアント装置１１０によって取り込まれた映像からキーフレームを抽出７４０し、抽出したキーフレームの低解像度画像を生成７５０する。映像取得エンジン１１５は、抽出したキーフレームの低解像度画像、取り込まれた映像の同期後のタイムスタンプ、及び、映像が取り込まれた時点でのクライアント装置１１０の地理位置を映像共有サービス１３０に送信７６０する。映像取得エンジン１１５は、取り込んだ映像を映像共有サービス１３０に送信７７０する。
【００５４】
図８は、対象ユーザのために、対象ユーザの近くの他のユーザによって取り込まれた複数の映像素材からマルチアングル映像を組み立てるプロセスを示したフロー図である。最初に、映像共有エンジン１３８は、対象ユーザからマルチアングル映像を組み立てることの要求を受信８１０する。映像共有エンジン１３８は、対象ユーザの近くの他のユーザを認識８２０し、近くのユーザによって取り込まれた映像を認識８３０する。映像共有エンジン１３８は、近くのユーザからの、認識された映像を対象ユーザに提示８４０する。映像共有エンジン１３８は、映像の選択、又は、対象ユーザ自身及び近くのユーザによって取り込まれた映像部分を受信８５０する。映像共有エンジン１３８は、選択された映像に基づいて、例えば、それらのタイムスタンプに従って選択された映像を結合することによって、マルチアングル映像を組み立てる８６０。映像共有エンジン１３８は、対象ユーザに組み立てた映像を提供８７０する。
【００５５】
先に述べたように、異なるアングルから取り込まれた映像からのマルチアングル映像組み立ては、クライアント装置１１０の映像組立モジュールによってクライアント装置１１０で同様に実行されうる。最初に、クライアント装置１１０は、図７を参照して説明したように、映像を取り込み、そして、映像共有サービス１３０にアップロード９１０する。映像をアップロードしたユーザ、すなわち、対象ユーザ、に関連付けられたクライアント装置１１０は、アップロードした映像に基づくマルチアングル映像を組み立てることの要求を映像共有サービス１３０に送信９２０する。映像共有サービス１３０は、対象ユーザがアップロードした映像を撮ったのとほぼ同じ時間に対象ユーザの近くにいた他のユーザを認識する。映像共有サービス１３０は、認識した近くのユーザによって取り込まれた映像を取得し、そして、その映像をクライアント装置１１０に送信する。クライアント装置１１０は、認識した近くのユーザによって取り込まれた映像を受信９３０し、そして、受信した映像から、１つ又は複数の映像又は映像部分を選択９４０する。クライアント装置１１０は、選択した映像及び／又は映像部分からマルチアングル映像を生成９５０し、そして、生成した映像を対象ユーザに対して、クライアント装置１１０のディスプレイ上に提示９６０する。
【００５６】
図１１は、複数のアングルから取り込まれた映像素材を有するマルチアングル映像を組み立てるための例示的なユーザインターフェース１１００を示している。ユーザインターフェース１１００は、近くのユーザによって取り込まれた映像を提示するためのＧＵＩ（graphical user interface）要素１１１０を含む。図１１の例示的なＧＵＩ１００は、５人の異なるユーザ（例えば、ユーザＡからの映像を提示するＧＵＩ要素１１１０Ａ、ユーザＢからの映像を提示するＧＵＩ要素１１１０Ｂ、ユーザＣからの映像を提示するＧＵＩ要素１１１０Ｃ、ユーザＤからの映像を提示するＧＵＩ要素１１１０Ｄ、ユーザＥからの映像を提示するＧＵＩ要素１１１０Ｅ）によって取り込まれた映像を提示するためのＧＵＩ要素１１１０を含む。いくつかの実施形態において、ＧＵＩ要素１１１０は、ユーザによって取り込まれた映像のキーフレームを示す。マルチアングル映像を組み立てるユーザは、近くのユーザによって取り込まれた映像又は映像の部分を選択してもよい。図１１の例において、ユーザＤは、ユーザＡによって取り込まれた映像部分、ユーザＢによって取り込まれた映像部分、自身で取り込んだ映像部分を利用してマルチアングル映像を組み立てている。
【００５７】
ＧＵＩ１１００は、組み立てたマルチアングル映像をレビューするためのプレビュービューワ１１２０、及び、マルチアングル映像に含まれる映像から選択されたサムネイル画像を示すためのＧＵＩ要素１１３０をさらに含む。ユーザは、マルチアングル映像がどのように見えるかを、選択されたシーケンスに基づいて見ることができる。もし、ユーザが選択した映像シーケンスに満足しないならば、ユーザは、ＧＵＩ要素１１１０を利用して、望む映像が得られるまで選択を修正できる。
全般的な事項
【００５８】
本発明の実施形態についてのこれまでの記述は説明を目的として提示されたものであり、それは、網羅的又は発明を開示された厳密な形に限定することを意図するものではない。当業者であれば、上記の開示に照らして多くの修正や変形が可能であることを理解できよう。
【００５９】
この説明についてのいくつかの部分は、発明の実施形態をアルゴリズム及び情報の操作についての抽象的表現の観点から説明している。これらのアルゴリズム的な記載及び表現は、共通してデータ処理分野の当業者によって使用され、彼らの作業内容を効果的に他分野の当業者へ伝える。これら、機能的、計算上、又は論理的に記述した操作は、コンピュータプログラム又は等価な電子回路、マイクロコードなどによって実現されるものと理解される。さらに、これら操作の仕組みをモジュールと称することが、一般性を失うことなく、時には便利であることがわかる。説明された操作及びそれらの関連付けられたモジュールは、ソフトウェア、ファームウェア、ハードウェア、又はそれらの任意の組み合わせによって実装されうる。
【００６０】
ここで説明した任意のステップ、操作、又はプロセスは、１つ又は複数のハードウェア又はソフトウェアモジュール、単独又は他のデバイスとの組み合わせ、によって実行又は実現されうる。１つの実施形態において、ソフトウェアモジュールは、説明した任意の又は全てのステップ、操作、及びプロセスを実行するためのコンピュータプロセッサによって実行されるコンピュータプログラムコードを内包した、コンピュータ読み取り可能な記録媒体を含むコンピュータプログラム製品で実現されうる。
【００６１】
発明の実施形態は、こうした操作を実行する装置にも関係しうる。この装置は、特に、要求された目的のために組み立てられたものでもよいし、及び／又は、それは、コンピュータに格納されたコンピュータプログラムによって選択的に有効化され又は再構成される汎用目的のコンピューティングデバイスを構成するものでもよい。そのようなコンピュータプログラムは、非一過性の、有形のコンピュータ読み取り可能なストレージ媒体、又は、任意のタイプの電子命令を格納するのに適した媒体であって、コンピュータシステムバスに接続されうるもの、に格納されうる。さらに、本明細書において参照されるコンピュータシステムは、単独のプロセッサを含んでもよいし、又は、コンピューティング能力を増大するためにマルチプロセッサデザインを採用するアーキティクチャであってもよい。
【００６２】
発明の実施形態は、ここで説明したコンピューティングプロセスによって作り出される製品にも関係する。そのような製品は、コンピューティングプロセスからの結果となる情報を含む。ここで、その情報は、非一過性の、有形のコンピュータ読み取り可能なストレージ媒体に格納され、コンピュータプログラム製品の任意の実施形態又はここで説明した他のデータの組み合わせを含みうる。
【００６３】
最後に、本明細書で使用した用語は、基本的に可読性や教育的な目的のために選択されており、それは、発明構成の描写又は制限のために選択されたものではない。従って、発明の範囲は、この詳細な説明によってではなく、むしろこれに関する出願の特許請求の範囲によって制限されることを意図している。よって、発明の実施形態の開示は、説明的であり、発明の範囲を限定するものではなく、特許請求の範囲によって記載される。
【図１】
0006712282.tif 000002
【図２】
0006712282.tif 000003
【図３】
0006712282.tif 000004
【図４】
0006712282.tif 000005
【図５Ａ】
0006712282.tif 000006
【図５Ｂ】
0006712282.tif 000007
【図５Ｃ】
0006712282.tif 000008
【図６】
0006712282.tif 000009
【図７】
0006712282.tif 000010
【図８】
0006712282.tif 000011
【図９】
0006712282.tif 000012
【図１０】
0006712282.tif 000013
【図１１】
0006712282.tif 000014