(57)【要約】システム、方法、および非一時的なコンピュータ可読媒体は、コンテンツアイテムにアクセスするための少なくとも１つの要求を決定することができ、コンテンツアイテムは、１組の異なる位置から少なくとも１つのシーンを撮像する１組のカメラフィードを用いて構成される。コンテンツアイテムの再生が提示されるコンピューティングデバイスの表示画面上にビューポートインタフェースが提供される。ビューポートインタフェースは、シーンに対するビューポートインタフェースの方向、またはビューポートインタフェースのズームレベルを変更することにより、コンピューティングデバイスを操作するユーザーに、少なくとも１つのシーンを仮想的にナビゲートすることを可能にする。ナビゲーションインジケータが、ビューポートインタフェースに提供される。ナビゲーションインジケータは、コンテンツアイテムの再生中にビューポートインタフェースの対応する方向およびズームレベルの変更を仮想的に示すように構成されている。
2019518259.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが実行する方法であって、
コンピューティングデバイスが、コンテンツアイテムにアクセスするための少なくとも１つの要求を判定することであって、前記コンテンツアイテムは、１組の異なる位置から少なくとも１つのシーンを撮像する１組のカメラフィードを用いて構成される、前記少なくとも１つの要求を判定すること、
前記コンピューティングデバイスが、前記コンテンツアイテムの再生が提供される前記コンピューティングデバイスの表示画面上にビューポートインタフェースを提供することであって、前記ビューポートインタフェースは、シーンに対する前記ビューポートインタフェースの方向または前記ビューポートインタフェースのズームレベルを変更することにより、前記コンピューティングデバイスを操作するユーザーに、少なくとも１つのシーンを仮想的にナビゲートすることを可能にする、前記ビューポートインタフェースを提供すること、
前記コンピューティングデバイスが、前記ビューポートインタフェースにナビゲーションインジケータを提供することであって、前記ナビゲーションインジケータは、前記コンテンツアイテムの再生中に前記ビューポートインタフェースの対応する方向およびズームレベルの変更を仮想的に示すように構成される、前記ナビゲーションインジケータを提供すること、を備える方法。
【請求項２】
前記コンピューティングデバイスが、前記シーン内の少なくとも１つの注目点の対応する方向を判定すること、
前記コンピューティングデバイスが、前記ビューポートインタフェースの方向およびズームレベルを仮想的に示すことに加えて、前記少なくとも１つの注目点の対応する方向を前記ナビゲーションインジケータに仮想的に示させることを、さらに備える請求項１に記載の方法。
【請求項３】
前記コンピューティングデバイスが、前記コンテンツアイテムの再生中に前記シーンにおいて生成される少なくとも１つの音の対応する方向を判定すること、
前記コンピューティングデバイスが、前記ビューポートインタフェースの方向およびズームレベルを仮想的に示すことに加えて、前記少なくとも１つの音の対応する方向を前記ナビゲーションインジケータに仮想的に示させることを、さらに備える請求項１に記載の方法。
【請求項４】
前記コンピューティングデバイスが、前記コンテンツアイテムが前記シーンの１組の注目点に仮想的にナビゲートするための情報を特定する自動モードと関連付けられることを判定すること、
前記コンピューティングデバイスが、前記自動モードが有効にされることを前記ナビゲーションインジケータに仮想的に示させること、
前記コンピューティングデバイスが、前記自動モードに少なくとも部分的に基づいて前記シーンを前記ナビゲーションインジケータに仮想的にナビゲートさせることを、さらに備える請求項１に記載の方法。
【請求項５】
前記自動モードの情報は、１組の注目点のうちの複数の注目点間を仮想的にナビゲートする間に、前記シーンにおいて前記ビューポートインタフェースを案内するための対応する軌跡を特定する、請求項４に記載の方法。
【請求項６】
前記コンピューティングデバイスが、前記ビューポートインタフェースの方向または前記ビューポートインタフェースのズームレベルを変更するために前記ユーザーが１つまたは複数の操作を実行したと判定すること、
前記コンピューティングデバイスが、前記自動モードを無効にすること、
前記コンピューティングデバイスが、前記ビューポートインタフェースを、変更された方向またはズームレベルに対応させること、
前記コンピューティングデバイスが、変更された方向またはズームレベルを前記ナビゲーションインジケータに仮想的に示させること、をさらに備え、
前記ナビゲーションインジケータは、前記自動モードが有効にされていることを示さない、請求項４に記載の方法。
【請求項７】
前記コンピューティングデバイスが、前記ユーザーが１つまたは複数の操作を実行して前記ビューポートインタフェースの方向またはズームレベルを変更するために、閾値時間が経過したと判定すること、
前記コンピューティングデバイスが、前記自動モードを再度有効にすること、
前記コンピューティングデバイスが、前記自動モードが有効にされたことを前記ナビゲーションインジケータに仮想的に示させること、をさらに備える請求項６に記載の方法。
【請求項８】
前記コンピューティングデバイスが、前記ビューポートインタフェースの方向または前記ビューポートインタフェースのズームレベルを変更するために前記ユーザーが１つまたは複数の操作を実行したと判定すること、
前記コンピューティングデバイスが、前記ビューポートインタフェースを、変更された方向またはズームレベルに対応させること、
前記コンピューティングデバイスが、前記ビューポートインタフェースの方向およびズームレベルを前記ナビゲーションインジケータに仮想的に示させること、をさらに備える請求項１に記載の方法。
【請求項９】
前記コンピューティングデバイスが、前記ユーザーが前記ナビゲーションインジケータに対応する表示画面の領域上にタッチジェスチャーを実行したと判定すること、
前記コンピューティングデバイスが、前記ビューポートインタフェースを、前記コンテンツアイテムの開発者により指定された方向およびズームレベルに対応させること、をさらに備える請求項８に記載の方法。
【請求項１０】
前記１つまたは複数の操作は、少なくとも１つのタッチジェスチャーまたはデバイスジェスチャーを含む、請求項８に記載の方法。
【請求項１１】
システムであって、
少なくとも１つのプロセッサと、
複数の命令を記憶するメモリと、
前記複数の命令は、前記少なくとも１つのプロセッサにより実行されると、前記システムに、
コンテンツアイテムにアクセスするための少なくとも１つの要求を判定することであって、前記コンテンツアイテムは、１組の異なる位置から少なくとも１つのシーンを撮像する１組のカメラフィードを用いて構成される、前記少なくとも１つの要求を判定すること、
前記コンテンツアイテムの再生が提供される前記コンピューティングデバイスの表示画面上にビューポートインタフェースを提供することであって、前記ビューポートインタフェースは、シーンに対する前記ビューポートインタフェースの方向または前記ビューポートインタフェースのズームレベルを変更することにより、前記コンピューティングデバイスを操作するユーザーに、少なくとも１つのシーンを仮想的にナビゲートすることを可能にする、前記ビューポートインタフェースを提供すること、
前記ビューポートインタフェースにナビゲーションインジケータを提供することであって、前記ナビゲーションインジケータは、前記コンテンツアイテムの再生中に前記ビューポートインタフェースの対応する方向およびズームレベルの変更を仮想的に示すように構成される、前記ナビゲーションインジケータを提供すること、を行わせる、システム。
【請求項１２】
前記複数の命令は、前記システムに、
前記シーン内の少なくとも１つの注目点の対応する方向を判定すること、
前記ビューポートインタフェースの方向およびズームレベルを仮想的に示すことに加えて、前記少なくとも１つの注目点の対応する方向を前記ナビゲーションインジケータに仮想的に示させること、をさらに行わせる、請求項１１に記載のシステム。
【請求項１３】
前記複数の命令は、前記システムに、
前記コンテンツアイテムの再生中に前記シーンにおいて生成される少なくとも１つの音の対応する方向を判定すること、
前記ビューポートインタフェースの方向およびズームレベルを仮想的に示すことに加えて、前記少なくとも１つの音の対応する方向を前記ナビゲーションインジケータに仮想的に示させること、をさらに行わせる、請求項１１に記載のシステム。
【請求項１４】
前記複数の命令は、前記システムに、
前記コンテンツアイテムが、前記シーンの１組の注目点に仮想的にナビゲートするための情報を特定する自動モードと関連付けられることを判定すること、
前記自動モードが有効にされることを前記ナビゲーションインジケータに仮想的に示させること、
前記自動モードに少なくとも部分的に基づいて前記シーンを前記ナビゲーションインジケータに仮想的にナビゲートさせること、をさらに行わせる、請求項１１に記載のシステム。
【請求項１５】
前記自動モード情報は、１組の注目点のうちの複数の注目点間を仮想的にナビゲートする間に、前記シーンにおいて前記ビューポートインタフェースを案内するための対応する軌跡を特定する、請求項１４に記載のシステム。
【請求項１６】
複数の命令を備える非一時的なコンピュータ可読媒体であって、
前記複数の命令は、コンピューティングシステムの少なくとも１つのプロセッサにより実行されると、
前記コンピューティングシステムに、
コンテンツアイテムにアクセスするための少なくとも１つの要求を判定することであって、前記コンテンツアイテムは、１組の異なる位置から少なくとも１つのシーンを撮像する１組のカメラフィードを用いて構成される、前記少なくとも１つの要求を判定すること、
前記コンテンツアイテムの再生が提供される前記コンピューティングデバイスの表示画面上にビューポートインタフェースを提供することであって、前記ビューポートインタフェースは、シーンに対する前記ビューポートインタフェースの方向または前記ビューポートインタフェースのズームレベルを変更することにより、前記コンピューティングデバイスを操作するユーザーに、少なくとも１つのシーンを仮想的にナビゲートすることを可能にする、前記ビューポートインタフェースを提供すること、
前記ビューポートインタフェースにナビゲーションインジケータを提供することであって、前記ナビゲーションインジケータは、前記コンテンツアイテムの再生中に前記ビューポートインタフェースの対応する方向およびズームレベルの変更を仮想的に示すように構成される、前記ナビゲーションインジケータを提供すること、を備える方法を行わせる、非一時的なコンピュータ可読媒体。
【請求項１７】
前記複数の命令は、前記コンピューティングシステムに、
前記シーン内の少なくとも１つの注目点の対応する方向を判定すること、
前記ビューポートインタフェースの方向およびズームレベルを仮想的に示すことに加えて、前記少なくとも１つの注目点の対応する方向を前記ナビゲーションインジケータに仮想的に示させること、をさらに行わせる、請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項１８】
前記複数の命令は、前記コンピューティングシステムに、
前記コンテンツアイテムの再生中に前記シーンにおいて生成される少なくとも１つの音の対応する方向を判定すること、
前記ビューポートインタフェースの方向およびズームレベルを仮想的に示すことに加えて、前記少なくとも１つの音の対応する方向を前記ナビゲーションインジケータに仮想的に示させること、をさらに行わせる、請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項１９】
前記複数の命令は、前記コンピューティングシステムに、
前記コンテンツアイテムが、前記シーンの１組の注目点に仮想的にナビゲートするための情報を特定する自動モードと関連付けられることを判定すること、
前記自動モードが有効にされることを前記ナビゲーションインジケータに仮想的に示させること、
前記自動モードに少なくとも部分的に基づいて前記シーンを前記ナビゲーションインジケータに仮想的にナビゲートさせること、をさらに行わせる、請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項２０】
前記自動モード情報は、１組の注目点のうちの複数の注目点間を仮想的にナビゲートする間に、前記シーンにおいて前記ビューポートインタフェースを案内するための対応する軌跡を特定する、請求項１９に記載の非一時的なコンピュータ可読媒体。
【請求項２１】
コンピュータが実行する方法であって、
コンピューティングデバイスが、コンテンツアイテムにアクセスするための少なくとも１つの要求を判定することであって、前記コンテンツアイテムは、１組の異なる位置から少なくとも１つのシーンを撮像する１組のカメラフィードを用いて構成される、前記少なくとも１つの要求を判定すること、
前記コンピューティングデバイスが、前記コンテンツアイテムの再生が提供される前記コンピューティングデバイスの表示画面上にビューポートインタフェースを提供することであって、前記ビューポートインタフェースは、シーンに対する前記ビューポートインタフェースの方向または前記ビューポートインタフェースのズームレベルを変更することにより、前記コンピューティングデバイスを操作するユーザーに、少なくとも１つのシーンを仮想的にナビゲートすることを可能にする、前記ビューポートインタフェースを提供すること、
前記コンピューティングデバイスが、前記ビューポートインタフェースにナビゲーションインジケータを提供することであって、前記ナビゲーションインジケータは、前記コンテンツアイテムの再生中に前記ビューポートインタフェースの対応する方向およびズームレベルの変更を仮想的に示すように構成される、前記ナビゲーションインジケータを提供すること、を備える方法。
【請求項２２】
前記コンピューティングデバイスが、前記シーン内の少なくとも１つの注目点の対応する方向を判定すること、
前記コンピューティングデバイスが、前記ビューポートインタフェースの方向およびズームレベルを仮想的に示すことに加えて、前記少なくとも１つの注目点の対応する方向を前記ナビゲーションインジケータに仮想的に示させることを、さらに備える請求項２１に記載の方法。
【請求項２３】
前記コンピューティングデバイスが、前記コンテンツアイテムの再生中に前記シーンにおいて生成される少なくとも１つの音の対応する方向を判定すること、
前記コンピューティングデバイスが、前記ビューポートインタフェースの方向およびズームレベルを仮想的に示すことに加えて、前記少なくとも１つの音の対応する方向を前記ナビゲーションインジケータに仮想的に示させることを、さらに備える請求項２１又は２２に記載の方法。
【請求項２４】
前記コンピューティングデバイスが、前記コンテンツアイテムが前記シーンの１組の注目点に仮想的にナビゲートするための情報を特定する自動モードと関連付けられることを決定すること、
前記コンピューティングデバイスが、前記自動モードが有効にされることを前記ナビゲーションインジケータに仮想的に示させること、
前記コンピューティングデバイスが、前記自動モードに少なくとも部分的に基づいて前記シーンを前記ナビゲーションインジケータに仮想的にナビゲートさせることを、さらに備え、
好ましくは、前記自動モード情報は、１組の注目点のうちの複数の注目点間を仮想的にナビゲートする間に、前記シーンにおいて前記ビューポートインタフェースを案内するための対応する軌跡を特定し、
および／または
前記コンピューティングデバイスが、前記ユーザーが１つまたは複数の操作を実行して前記ビューポートインタフェースの方向または前記ビューポートインタフェースのズームレベルを変更することを判定すること、
前記コンピューティングデバイスが、前記自動モードを無効にすること、
前記コンピューティングデバイスが、前記ビューポートインタフェースを、変更された方向またはズームレベルに対応させること、
前記コンピューティングデバイスが、変更された方向またはズームレベルを前記ナビゲーションインジケータに仮想的に示させること、をさらに備え、
前記ナビゲーションインジケータは、前記自動モードが有効にされていることを示さず、
好ましくは、前記コンピューティングデバイスが、前記ユーザーが１つまたは複数の操作を実行して前記ビューポートインタフェースの方向またはズームレベルを変更するために、閾値時間が経過したと判定すること、
前記コンピューティングデバイスが、前記自動モードを再度有効にすること、
前記コンピューティングデバイスが、前記自動モードが有効にされたことを前記ナビゲーションインジケータに仮想的に示させること、をさらに備える請求項２１〜２３のいずれか１項に記載の方法。
【請求項２５】
前記コンピューティングデバイスが、前記ユーザーが１つまたは複数の操作を実行して前記ビューポートインタフェースの方向または前記ビューポートインタフェースのズームレベルを変更すること、
前記コンピューティングデバイスが、前記ビューポートインタフェースを、変更された方向またはズームレベルに対応させること、
前記コンピューティングデバイスが、前記ビューポートインタフェースの方向およびズームレベルを前記ナビゲーションインジケータに仮想的に示させること、をさらに備え、
好ましくは、前記コンピューティングデバイスが、前記ユーザーが前記ナビゲーションインジケータに対応する表示画面の領域上にタッチジェスチャーを実行したと判定すること、
前記ビューポートインタフェースを、前記コンテンツアイテムの開発者により指定された方向およびズームレベルに対応させること、をさらに備え、
好ましくは、前記１つまたは複数の操作は、少なくとも１つのタッチジェスチャーまたはデバイスジェスチャーを含む、請求項２１〜２４のいずれか１項に記載の方法。
【請求項２６】
システムであって、
少なくとも１つのプロセッサと、
複数の命令を記憶するメモリと、
前記複数の命令は、前記少なくとも１つのプロセッサにより実行されると、前記システムに、
コンテンツアイテムにアクセスするための少なくとも１つの要求を判定することであって、前記コンテンツアイテムは、１組の異なる位置から少なくとも１つのシーンを撮像する１組のカメラフィードを用いて構成される、前記少なくとも１つの要求を判定すること、
前記コンテンツアイテムの再生が提供される前記コンピューティングデバイスの表示画面上にビューポートインタフェースを提供することであって、前記ビューポートインタフェースは、シーンに対する前記ビューポートインタフェースの方向または前記ビューポートインタフェースのズームレベルを変更することにより、前記コンピューティングデバイスを操作するユーザーに、少なくとも１つのシーンを仮想的にナビゲートすることを可能にする、前記ビューポートインタフェースを提供すること、
前記ビューポートインタフェースにナビゲーションインジケータを提供することであって、前記ナビゲーションインジケータは、前記コンテンツアイテムの再生中に前記ビューポートインタフェースの対応する方向およびズームレベルの変更を仮想的に示すように構成される、前記ナビゲーションインジケータを提供すること、を行わせる、システム。
【請求項２７】
前記複数の命令は、前記システムに、
前記シーン内の少なくとも１つの注目点の対応する方向を判定すること、
前記ビューポートインタフェースの方向およびズームレベルを仮想的に示すことに加えて、前記少なくとも１つの注目点の対応する方向を前記ナビゲーションインジケータに仮想的に示させること、をさらに行わせる、請求項２６に記載のシステム。
【請求項２８】
前記複数の命令は、前記システムに、
前記コンテンツアイテムの再生中に前記シーンにおいて生成される少なくとも１つの音の対応する方向を判定すること、
前記ビューポートインタフェースの方向およびズームレベルを仮想的に示すことに加えて、前記少なくとも１つの音の対応する方向を前記ナビゲーションインジケータに仮想的に示させること、をさらに行わせる、請求項２６又は２７に記載のシステム。
【請求項２９】
前記複数の命令は、前記システムに、
前記コンテンツアイテムが、前記シーンの１組の注目点に仮想的にナビゲートするための情報を特定する自動モードと関連付けられることを判定すること、
前記自動モードが有効にされることを前記ナビゲーションインジケータに仮想的に示させること、
前記自動モードに少なくとも部分的に基づいて前記シーンを前記ナビゲーションインジケータに仮想的にナビゲートさせること、をさらに行わせ、
好ましくは、前記自動モード情報は、１組の注目点のうちの複数の注目点間を仮想的にナビゲートする間に、前記シーンにおいて前記ビューポートインタフェースを案内するための対応する軌跡を特定する、請求項２６〜２８のいずれか１項に記載のシステム。
【請求項３０】
複数の命令を備える非一時的なコンピュータ可読媒体であって、
前記複数の命令は、コンピューティングシステムの少なくとも１つのプロセッサにより実行されると、
前記コンピューティングシステムに、
コンテンツアイテムにアクセスするための少なくとも１つの要求を判定することであって、前記コンテンツアイテムは、１組の異なる位置から少なくとも１つのシーンを撮像する１組のカメラフィードを用いて構成される、前記少なくとも１つの要求を判定すること、
前記コンテンツアイテムの再生が提供される前記コンピューティングデバイスの表示画面上にビューポートインタフェースを提供することであって、前記ビューポートインタフェースは、シーンに対する前記ビューポートインタフェースの方向または前記ビューポートインタフェースのズームレベルを変更することにより、前記コンピューティングデバイスを操作するユーザーに、少なくとも１つのシーンを仮想的にナビゲートすることを可能にする、前記ビューポートインタフェースを提供すること、
前記ビューポートインタフェースにナビゲーションインジケータを提供することであって、前記ナビゲーションインジケータは、前記コンテンツアイテムの再生中に前記ビューポートインタフェースの対応する方向およびズームレベルの変更を仮想的に示すように構成される、前記ナビゲーションインジケータを提供すること、を備える方法を行わせる、非一時的なコンピュータ可読媒体。
【請求項３１】
前記複数の命令は、前記コンピューティングシステムに、
前記シーン内の少なくとも１つの注目点の対応する方向を判定すること、
前記ビューポートインタフェースの方向およびズームレベルを仮想的に示すことに加えて、前記少なくとも１つの注目点の対応する方向を前記ナビゲーションインジケータに仮想的に示させること、をさらに行わせる、請求項３０に記載の非一時的なコンピュータ可読媒体。
【請求項３２】
前記複数の命令は、前記コンピューティングシステムに、
前記コンテンツアイテムの再生中に前記シーンにおいて生成される少なくとも１つの音の対応する方向を決定すること、
前記ビューポートインタフェースの方向およびズームレベルを仮想的に示すことに加えて、前記少なくとも１つの音の対応する方向を前記ナビゲーションインジケータに仮想的に示させること、をさらに行わせる、請求項３０又は３１に記載の非一時的なコンピュータ可読媒体。
【請求項３３】
前記複数の命令は、前記コンピューティングシステムに、
前記コンテンツアイテムが、前記シーンの１組の注目点に仮想的にナビゲートするための情報を特定する自動モードと関連付けられることを決定すること、
前記自動モードが有効にされることを前記ナビゲーションインジケータに仮想的に示させること、
前記自動モードに少なくとも部分的に基づいて前記シーンを前記ナビゲーションインジケータに仮想的にナビゲートさせること、をさらに行わせ、
好ましくは、前記自動モード情報は、１組の注目点のうちの複数の注目点間を仮想的にナビゲートする間に、前記シーンにおいて前記ビューポートインタフェースを案内するための対応する軌跡を特定する、請求項３０〜３２のいずれか１項に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、コンテンツ提示の分野に関する。より詳細には、本技術は、コンピューティングデバイスを通じて、コンテンツアイテムを提示するための技法に関する。
【背景技術】
【０００２】
今日、人々は、多種多様な目的のためにコンピューティングデバイス（またはコンピューティングシステム）を利用している。ユーザーは、コンピューティングデバイスを操作して、例えば、相互に対話したり、コンテンツを作成したり、コンテンツを共有したり、情報にアクセスしたりすることができる。従来のアプローチでは、コンテンツアイテム（例えば、画像、映像、音声ファイルなど）は、コンテンツ共有プラットフォームを通じて、利用可能にすることができる。ユーザーは、自身のコンピューティングデバイスを操作して、プラットフォームを通じて、コンテンツアイテムにアクセスすることができる。典型的には、コンテンツアイテムは、例えば、コンテンツのパブリッシャおよびコンテンツ共有プラットフォームのユーザーを含む多様なエンティティにより、提供またはアップロードされることができる。場合によっては、コンテンツアイテムを、カテゴライズおよびキュレートまたはカテゴライズもしくはキュレートすることができる。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示の様々な実施形態は、コンテンツアイテムにアクセスするための少なくとも１つの要求を判定するように構成されたシステム、方法、および非一時的なコンピュータ可読媒体を含み得る。コンテンツアイテムは、１組の異なる位置から少なくとも１つのシーンを撮像する１組のカメラフィードを用いて構成される。ビューポートインタフェースが、コンテンツアイテムの再生が提供されるコンピューティングデバイスの表示画面上に提供され得る。ビューポートインタフェースは、シーンに対するビューポートインタフェースの方向またはビューポートインタフェースのズームレベルを変更することにより、コンピューティングデバイスを操作するユーザーに、少なくとも１つのシーンを仮想的にナビゲートすることを可能にする。ナビゲーションインジケータが、ビューポートインタフェースに提供され得る。ナビゲーションインジケータは、コンテンツアイテムの再生中にビューポートインタフェースの対応する方向およびズームレベルの変更を仮想的に示すように構成される。
【０００４】
幾つかの実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、シーン内の少なくとも１つの注目点の対応する方向を判定し、コンピューティングデバイスが、ビューポートインタフェースの方向およびズームレベルを仮想的に示すことに加えて、少なくとも１つの注目点の対応する方向をナビゲーションインジケータに仮想的に示させる。
【０００５】
幾つかの実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、コンテンツアイテムの再生中にシーンにおいて生成される少なくとも１つの音の対応する方向を判定し、ビューポートインタフェースの方向およびズームレベルを仮想的に示すことに加えて、少なくとも１つの音の対応する方向をナビゲーションインジケータに仮想的に示させる。
【０００６】
幾つかの実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、コンテンツアイテムがシーンの１組の注目点に仮想的にナビゲートするための情報を特定する自動モードと関連付けられることを判定し、自動モードが有効にされることをナビゲーションインジケータに仮想的に示させ、自動モードに少なくとも部分的に基づいてシーンをナビゲーションインジケータに仮想的にナビゲートさせる。
【０００７】
幾つかの実施形態では、自動モードの情報は、１組の注目点のうちの複数の注目点間を仮想的にナビゲートする間に、シーンにおいてビューポートインタフェースを案内するための対応する軌跡を特定する。
【０００８】
幾つかの実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、ビューポートインタフェースの方向またはビューポートインタフェースのズームレベルを変更するためにユーザーが１つまたは複数の操作を実行したと判定し、自動モードを無効にし、ビューポートインタフェースを、変更された方向またはズームレベルに対応させ、変更された方向またはズームレベルをナビゲーションインジケータに仮想的に示させ、ナビゲーションインジケータは、自動モードが有効にされていることを示さない。
【０００９】
幾つかの実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、ユーザーが１つまたは複数の操作を実行してビューポートインタフェースの方向またはズームレベルを変更するために、閾値時間が経過したと判定し、自動モードを再度有効にし、自動モードが有効にされたことをナビゲーションインジケータに仮想的に示させる。
【００１０】
幾つかの実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、ビューポートインタフェースの方向またはビューポートインタフェースのズームレベルを変更するためにユーザーが１つまたは複数の操作を実行したと判定し、ビューポートインタフェースを、変更された方向またはズームレベルに対応させ、ビューポートインタフェースの方向およびズームレベルをナビゲーションインジケータに仮想的に示させる。
【００１１】
幾つかの実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、ユーザーがナビゲーションインジケータに対応する表示画面の領域上にタッチジェスチャーを実行したと判定し、ビューポートインタフェースを、コンテンツアイテムの開発者により指定された方向およびズームレベルに対応させる。
【００１２】
幾つかの実施形態では、１つまたは複数の操作は、少なくとも１つのタッチジェスチャーまたはデバイスジェスチャーを含む。
開示された技術の多くの他の特徴、応用、実施形態、および／または変形は、添付の図面および以下の詳細な説明から明らかとなることを理解されたい。開示された技術の原理から逸脱することなく、本明細書に記載の構造、システム、非一時的なコンピュータ可読媒体、および方法の追加の実施態様および代替の実施態様の両方または一方を採用することができる。
【００１３】
本発明による実施形態は、方法、記憶媒体、システムおよびコンピュータプログラム製品に向けられた添付の請求項で特に開示され、ある請求項のカテゴリ、例えば方法、で述べられた任意の特徴は、別の請求項のカテゴリ、例えばシステム、でも同様に請求されることができる。添付の請求項の従属性または後方参照は、形式上の理由でのみ選択されている。しかし、任意の先行請求項への意図的な後方参照から生じる任意の主題（特に多項従属）は同様に請求されることができるので、添付の請求項で選ばれた従属性に関係なく、請求項およびその特徴の任意の組み合わせが開示され、請求されることができる。請求することのできる主題は、添付の請求項に記載される特徴の組み合わせだけでなく、請求項の特徴の任意の他の組み合わせも含み、請求項で述べられる各特徴は請求項の任意の他の特徴または他の特徴の組み合わせと組み合わせることができる。さらに、本明細書で記述または示される実施形態および特徴のいずれも、個別の請求項で、および／または、本明細書で記述もしくは示される任意の実施形態もしくは特徴または添付の請求項の特徴のいずれかとの任意の組み合わせで請求することができる。
【図面の簡単な説明】
【００１４】
【図１】本開示の実施形態による、コンテンツをユーザーに提供するように構成された例示的なコンテンツプロバイダモジュールを含む例示的なシステムの図である。
【図２】本開示の実施形態による、コンテンツアイテムにアクセスするためのインタフェースを提供するように構成されたインタフェースモジュールの図である。
【図３Ａ】本開示の実施形態による、コンテンツアイテムがアクセスされた場合にビューポートインタフェースに提示されたナビゲーションインジケータの例を示す図である。
【図３Ｂ】本開示の実施形態による、コンテンツアイテムがアクセスされた場合にビューポートインタフェースに提示されたナビゲーションインジケータの例を示す図である。
【図３Ｃ】本開示の実施形態による、コンテンツアイテムがアクセスされた場合にビューポートインタフェースに提示されたナビゲーションインジケータの例を示す図である。
【図３Ｄ】本開示の実施形態による、コンテンツアイテムがアクセスされた場合にビューポートインタフェースに提示されたナビゲーションインジケータの例を示す図である。
【図３Ｅ】本開示の実施形態による、コンテンツアイテムがアクセスされた場合にビューポートインタフェースに提示されたナビゲーションインジケータの例を示す図である。
【図３Ｆ】本開示の実施形態による、コンテンツアイテムがアクセスされた場合にビューポートインタフェースに提示されたナビゲーションインジケータの例を示す図である。
【図４Ａ】本開示の実施形態による、コンテンツアイテムがアクセスされた場合にナビゲーションインジケータが提供されるビューポートインタフェースの例を示す図である。
【図４Ｂ】本開示の実施形態による、コンテンツアイテムがアクセスされた場合にナビゲーションインジケータが提供されるビューポートインタフェースの例を示す図である。
【図４Ｃ】本開示の実施形態による、コンテンツアイテムがアクセスされた場合にナビゲーションインジケータが提供されるビューポートインタフェースの例を示す図である。
【図５】本開示の実施形態による、インタフェースを通じて、コンテンツにアクセスするナビゲーションインジケータを提供する方法の例を示す図である。
【図６】本開示の実施形態による、多様なシナリオで利用することができる例示的なソーシャルネットワーキングシステムを含む例示的なシステムのネットワーク図である。
【図７】本開示の実施形態による、多様なシナリオで利用可能なコンピュータシステムまたはコンピューティングデバイスの例を示す図である。
【発明を実施するための形態】
【００１５】
図面は、説明の目的のためだけに、開示された技術の多様な実施形態を示しており、図面は、同様の要素を識別するために同じ参照番号を使用している。当業者は、以下の説明から、本明細書に記載された開示技術の原理から逸脱することなく、図面に示された構造および方法の代替の実施形態を用いることができることを認識するであろう。
【００１６】
コンテンツを提示するためのアプローチ
人々は、多種多様な目的のためにコンピューティングデバイス（またはコンピューティングシステム）を使用する。上記のように、従来のアプローチでは、ユーザーは、コンピューティングデバイスを利用して、コンテンツアイテム（例えば、ドキュメント、画像、映像、音声など）を他のユーザーと共有することができる。従来のアプローチでは、コンテンツアイテム（例えば、画像、映像、音声ファイルなど）は、コンテンツ共有プラットフォームを通じて、利用可能にすることができる。ユーザーは、自身のコンピューティングデバイスを操作して、プラットフォームを通じて、コンテンツアイテムにアクセスすることができる。典型的には、コンテンツアイテムは、例えば、コンテンツのパブリッシャ（content publisher）およびコンテンツ共有プラットフォームのユーザーを含む多様なエンティティにより、提供またはアップロードされることができる。
【００１７】
いくつかの例では、ユーザーは、例えば、これらのコンピューティングデバイスの表示画面、仮想現実システム、および／またはヘッドマウントディスプレイを介して、仮想コンテンツにアクセスすることができる。仮想コンテンツは、例えば、地理的位置および／または実行されているアクティビティ（activity）などの複数のシーンを撮像する１つまたは複数のビデオおよび／または画像を使用して構成され得る。このような複数のシーンは、現実世界から撮像され、および／またはコンピュータにより生成されてもよい。場合によっては、仮想コンテンツは、ユーザーが仮想コンテンツによってキャプチャされた（captured）シーン内をナビゲートできるように構成されている。したがって、仮想コンテンツにアクセスすることによって、ユーザーは、例えば、ユーザーが任意の場所に物理的に存在し、および／またはシーンにおいて示されたアクティビティを物理的に実行しているかのように、キャプチャされたシーンを仮想的に経験しナビゲートすることができる。
【００１８】
仮想コンテンツは、例えば、シーンの３６０度のビュー（view）を撮像する全天球映像（spherical video）であってもよい。全天球映像は、異なる場所および／または位置に配置された複数のカメラによって撮像された様々なビデオストリームまたはフィード（feed）を、シーンの３６０度のビューを撮像するためにスティッチ（stitching）することによって作成される。全体でスティッチされると、ユーザーは、全天球映像にアクセスするかまたは全天球映像を再生して、ある角度で全天球映像の一部分を見ることができる。一般に、全天球映像にアクセスする間、ユーザーは、全天球映像によって撮像されたシーンの別の部分にアクセスするために、ビューポート（viewport）の方向（例えば、ピッチ、ヨー、ロール）をズームするかおよび変更することができる。仮想コンテンツの特性を考慮すると、ユーザーが、ズームレベルおよび／またはビューポートの方向に対する変更を把握することが困難な場合がある。そのような変更は、仮想コンテンツの開発者によって指定された仮想コンテンツの意図されたズームレベルおよび／またはビューポートの方向から逸脱する可能性がある。幾つかの例では、ズームレベルおよび／またはビューポートの方向への変化を追跡できないと、ユーザーの方向感覚を失わせ、そのような方向感覚を失うこと（disorientation）はユーザーエクスペリエンスを低下させる可能性がある。したがって、このような従来のアプローチは、これらの問題およびコンピュータ技術で生じる他の問題に対処するには効果的でない可能性がある。
【００１９】
改善されたアプローチは、従来のアプローチに関連する上述の欠点および他の欠点を克服する。様々な実施形態において、ナビゲーション要素またはインジケータは、仮想コンテンツが提示されるインタフェースまたはビューポートに提供され得る。ナビゲーションインジケータは、ユーザーが仮想コンテンツと対話して、ｉ）仮想コンテンツによって撮像されたシーンにおけるビューポートの方向または方位（heading）、および／またはｉｉ）ビューポートのズームレベルを視覚的に示すように自動的に更新され得る。そのような実施形態では、仮想コンテンツにアクセスするユーザーは、ナビゲーションインジケータに応じて、視聴体験中の任意のポイントで方向および／またはズームレベルを決定することができる。その結果、ユーザーは、コンテンツにアクセスする際に方向性を失うことが少なくなる。
【００２０】
図１は、本開示の実施形態による、コンテンツアイテムをユーザーに提供するように構成された例示的なコンテンツプロバイダモジュール１０２を含む例示的なシステム１００を示す。図１の例に示されるように、コンテンツプロバイダモジュール１０２は、インタフェースモジュール１０４と、コンテンツモジュール１０６と、を含むことができる。場合によっては、例示的なシステム１００は、少なくとも１つのデータストア１０８を含むことができる。この図および本明細書におけるすべての図に示される構成要素（例えば、モジュール、要素など）は、単なる例示にすぎず、任意の他の実施態様は、追加の、より少ない、統合された、または異なる構成要素を含むことができる。いくつかの構成要素は、関連する詳細が不明瞭とならないように図示されない場合がある。
【００２１】
いくつかの実施形態では、コンテンツプロバイダモジュール１０２は、ソフトウェア、ハードウェア、またはこれらの任意の組み合わせとして、部分的にまたは全体的に実装することができる。概して、本明細書で考察されるモジュールは、ソフトウェア、ハードウェア、またはこれらの任意の組み合わせと関連付けることができる。いくつかの実施態様において、モジュールの１つもしくは複数の機能、タスク、および／または動作を、ソフトウェアルーチン、ソフトウェアプロセス、ハードウェア、および／またはこれらの任意の組み合わせによって実行または行うことができる。場合によっては、コンテンツプロバイダモジュール１０２は、ユーザコンピューティングデバイスまたはクライアントコンピューティングシステム上などの、１つまたは複数のコンピューティングデバイスまたはコンピューティングシステム上で実行しているソフトウェアとして、部分的にまたは全体的に実装することができる。例えば、コンテンツプロバイダモジュール１０２またはこの少なくとも一部は、図６のユーザデバイス６１０などのユーザコンピューティングデバイスまたはクライアントコンピューティングシステム上で稼動するアプリケーション（例えば、ａｐｐ）、プログラム、またはアプレットなどとして実装するか、またはこれらの中に実装することができる。さらに、コンテンツプロバイダモジュール１０２またはこの少なくとも一部は、ネットワークサーバまたはクラウドサーバなどの１つもしくは複数のサーバを含む１つもしくは複数のコンピューティングデバイスまたはコンピューティングシステムを使用して実装することができる。場合によっては、コンテンツプロバイダモジュール１０２は、図６のソーシャルネットワーキングシステム６３０などのソーシャルネットワーキングシステム（またはソーシャルネットワーキングサービス）内で部分的にまたは全体的に実装されるか、これと連結して部分的にまたは全体的に動作するように構成することができる。多くの変形例またはその他の可能性が存在し得ることを理解されたい。
【００２２】
多様な実施形態では、コンテンツプロバイダモジュール１０２は、インタフェースモジュール１０４およびコンテンツモジュール１０６を利用して、コンテンツアイテムをユーザーに提供することができる。インタフェースモジュール１０４は、コンテンツアイテムが提示される（例えば、ストリームされる（streamed））ことができるビューポート（例えば、グラフィカルユーザーインタフェース）を提供するように構成することができる。例えば、ビューポートは、ユーザーにより操作されているコンピューティングデバイス上で実行しているソフトウェアアプリケーションを通じて提供されてもよい。ビューポートは、コンピューティングデバイスの表示画面を通じて提示されてもよい。ユーザーは、例えば、入力デバイス、または表示画面を通じてタッチスクリーンジェスチャを行うことにより、ビューポートと対話することができる。
【００２３】
コンテンツモジュール１０６は、インタフェースモジュール１０４によって提供されるインタフェースを介して提示され得る様々なタイプのコンテンツアイテム（content item）を提供するように構成され得る。様々な実施形態では、コンテンツモジュール１０６は、複数のシーン（例えば、地理的位置および／または実行されているアクティビティ）を撮像する１つまたは複数の映像および／または画像を使用して構成され得る仮想コンテンツを提供することができる。このような複数のシーンは、現実世界から撮像され、および／またはコンピュータにより生成されてもよい。仮想コンテンツは、３６０度のビューおよび／または任意の３次元（３Ｄ）コンテンツを撮像する任意のコンテンツであり得る。さらに、仮想コンテンツは、ビューポートが任意の時点に提示することができるよりも大きい任意のサイズのコンテンツを含むことができる。そのような例では、ビューポートの位置が変更されると、ビューポートは、コンテンツの異なる部分を表示できる。一例では、仮想コンテンツは、例えば、いくつかの例を挙げると、例えば、直線ステッチング（rectilinear stitching）、球状ステッチング（spherical stitching）、立方ステッチング（cubical stitching）を含む一般に知られているイメージステッチング技術を使用して作成され得る。別の例では、仮想コンテンツは、注目点などのシーンの３６０度のビューを撮像する全天球映像であってもよい。仮想コンテンツの他の例は、モノスコープ（monoscopic）の３６０度のビューを使用して構成された映像、立体視（stereoscopic）の１８０度のビューなどを使用して構成された映像を含み得る。全天球映像は、異なる場所および／または位置に配置された複数のカメラによって撮像された様々なビデオストリームまたはフィード（feed）を、シーンの360度のビューを撮像するためにステッチングすることによって作成され得る。このような複数のビデオストリームは、全天球映像の様々な角度（例えば、０度、３０度、６０度など）で予め決定されてもよい。ひとたび全体でステッチングされると、ユーザーは、全天球映像にアクセスするかまたは全天球映像を再生してある角度で全天球映像の一部分を見ることができる。ユーザーに示された全天球映像の一部分は、３次元空間におけるユーザーのビューポートの位置及び方向に基づいて決定され得る。
【００２４】
いくつかの実施形態では、コンテンツプロバイダモジュール１０２は、例示的なシステム１００における少なくとも１つのデータストア１０８と通信および動作または通信もしくは動作するように構成することができる。少なくとも１つのデータストア１０８は、多様なタイプのデータを記憶および維持するように構成することができる。多様な実施形態では、少なくとも１つのデータストア１０８は、コンテンツプロバイダモジュール１０２の機能および動作に関連するデータを格納することができる。そのようなデータの１つの例は、インタフェースモジュール１０４により提供されたインタフェースを通じてアクセスするために利用可能であるコンテンツアイテムである。いくつかの実施態様において、少なくとも１つのデータストア１０８は、ソーシャルネットワーキングシステム（例えば、図６のソーシャルネットワーキングシステム６３０）に関連付けられた情報を格納することができる。ソーシャルネットワーキングシステムに関連付けられた情報としては、ユーザー、ソーシャルつながり、ソーシャル対話、位置、ジオフェンスエリア（geo-fenced area）、地図、場所、イベント、ページ、グループ、投稿、通信、コンテンツ、フィード、アカウント設定、プライバシー設定、ソーシャルグラフについてのデータ、および多様な他のタイプのデータが挙げられる。いくつかの実施態様において、少なくとも１つのデータストア１０８は、ユーザー識別子、ユーザー情報、プロファイル情報、ユーザー指定の設定、ユーザーによって生成または投稿されたコンテンツ、多様な他のタイプのユーザデータなどの、ユーザーに関連付けられた情報を格納することができる。多くの変形例または他の可能性が存在し得ることを理解されたい。
【００２５】
図２は、本開示の実施形態による、コンテンツアイテムにアクセスするためのインタフェースを提供するように構成されたインタフェースモジュール２０２の例２００を示す。いくつかの実施形態では、図１のインタフェースモジュール１０４は、インタフェースモジュール２０２と共に実装されることができる。図２の例に示すように、インタフェースモジュール２０２は、ビュー方向モジュール２０４と、ビューズームレベルモジュール２０６と、インジケータモジュール２０８と、注目点モジュール（a points of interest module）２１０と、を含むことができる。
【００２６】
上述したように、インタフェースモジュール２０２は、複数のコンテンツアイテム（例えば、複数の仮想コンテンツアイテム）を提示しアクセスすることができるビューポート（例えば、グラフィカルユーザーインタフェース）を提供するように構成され得る。様々な実施形態では、ユーザーは、ユーザーによって操作されるコンピューティングデバイスを使用して図１のコンテンツモジュール１０６を介して提供される複数の仮想コンテンツアイテムにアクセスすることができる。コンピューティングデバイスは、例えば、携帯電話、タブレット、バーチャルリアリティシステム、および／またはヘッドマウントディスプレイを含むコンテンツを処理し提示することができる任意のデバイスとすることができる。アクセスされると、インタフェースモジュール２０２は、仮想コンテンツアイテムをコンピューティングデバイスのディスプレイを介して提示することができる。
【００２７】
仮想コンテンツアイテムが最初にアクセスされると、コンピューティングデバイスに関連付けられたビューポートは、仮想コンテンツアイテムのシーンの特定の部分を表示することができる。示された部分は、シーンに関連するビューポートの位置および／または方向（例えば、ピッチ、ヨー、ロール）に基づいている。いくつかの実施形態では、ユーザーは、仮想コンテンツアイテムによってキャプチャされた（複数の）シーンを仮想的にナビゲートすることによってシーンの異なる部分を見ることができる。例えば、ユーザーは、ビューポートの位置および／または方向を仮想的に変更することによって、ビューポートを変更または調整することができる。ビューポートへのそのような変更は、ユーザーが仮想コンテンツアイテムと対話するときに、ビュー方向モジュール（view direction module）２０４によってリアルタイムで決定されてもよい。別の例では、ユーザーは、任意のシーンにアクセスしながら、ビューポートのズームレベルを変更することもできる。例えば、ユーザーは、シーンの一部分を見るためにビューポートのズームレベルを増大または減少させたい場合がある。そのようなビューポートズームレベルへの変更によって、ビューズームレベルモジュール２０６によってリアルタイムで決定され得る。例えば、タッチジェスチャー（スワイプジェスチャー、ドラッグジェスチャー、スライドジェスチャー、タップジェスチャー、ダブルタップジェスチャー、ピンチジェスチャー、スプレッドジェスチャー、回転ジェスチャー、フリックジェスチャーなど）、および／またはコンピューティングデバイスジェスチャーを実行することによって、ユーザーは、ビューポート（たとえば、位置、方向、ズームなど）を変更できる。コンピュータデバイスジェスチャー（例えば、傾斜）は、例えば、コンピューティングデバイス内の１つまたは複数のセンサ（例えば、ジャイロスコープ、加速度計、および／または慣性測定ユニット）を使用して判定される。さらに、バーチャルリアリティヘッドマウントディスプレイを介して仮想コンテンツアイテムにアクセスする場合、ユーザーは、ユーザーの頭の方向を変更することによって、ビューポートの方向を変更することができる。当然のことながら、他の手法が、全天球映像内をナビゲートしズームするために利用されてもよい。通常、ビューポートへの変更または調整は、ビュー方向モジュール２０４およびビューズームレベルモジュール２０６によってリアルタイム（たとえば、一定の時間間隔で）で監視され得る。このような変更は、ビューポートへの変更に基づいて決定されるように、仮想コンテンツアイテムからの適切な画像および／またはストリームがユーザーに提示され得るように、ビューポートを更新するように用いられる。
【００２８】
上述したように、幾つかの例では、ビューポートへの変更を把握できないと、ユーザーは、アクセスされている仮想コンテンツに関して方向が見失うことになり、そのような方向感覚を失うことは、ユーザーエクスペリエンスを低下させる可能性がある。したがって、様々な実施形態において、インジケータモジュール２０８は、仮想コンテンツが提示されるビューポート内にナビゲーションインジケータを提供するように構成され得る。いくつかの実施形態では、ナビゲーションインジケータは、ビューポート内のオーバーレイ（overlay）として提供される。ナビゲーションインジケータは、ｉ）仮想コンテンツによって撮像された（複数の）シーン内のビューポートの方向または方向、および／またはｉｉ）（複数の）シーン内のビューポートのズームレベルを視覚的に示すことができる。いくつかの実施形態では、ナビゲーションインジケータによって示される方向は、ヨー（すなわち、垂直軸に沿ったビューポートの動き）に基づいて決定され得る。しかしながら、具体化に応じて、ナビゲーションインジケータは、ピッチ（すなわち、横軸に沿ったビューポートの動き）および／またはロール（すなわち、縦軸に沿ったビューポートの動き）を示すこともできる。ナビゲーションインジケータは、ユーザーが仮想コンテンツと対話して、仮想コンテンツアイテムがアクセスされている間、任意の時点でビューポートの方向および／またはズームレベルを反映するように自動的に更新され得る。ナビゲーションインジケータに関するさらなる詳細は、図３Ａ〜図３Ｆおよび図４Ａ〜図４Ｃを参照して以下に提供される。
【００２９】
いくつかの実施形態では、注目点モジュール（points of interest module）２１０が、アクセスされている仮想コンテンツアイテムのシーン内の様々な注目点を識別するように用いられる。このような注目点は、例えば、仮想コンテンツアイテムの開発者によって指定され得る。通常、各注目点は、仮想コンテンツアイテムによってキャプチャされたシーン内の任意の位置に関連付けられる。いくつかの実施形態では、ナビゲーションインジケータは、ビューポートを介して提示されるシーン内のビューポートの位置の閾値距離内にある注目点を識別することができる。そのような実施形態では、ナビゲーションインジケータは、注目点の対応する方向を視覚的に示すことができる。注目点に関する詳細は、図３Ｅおよび４Ａを参照して以下に提供される。
【００３０】
図３Ａは、コンテンツアイテム（例えば、仮想コンテンツアイテム）がアクセスされているときに、ビューポートインタフェースに提示されるナビゲーションインジケータ３０２の一例３００を示す。図３Ａにおいて、ナビゲーションインジケータ３０２は、仮想コンテンツアイテムがアクセスされている間に、ビューポートの初期のまたは意図された方向３０４を示す。方向３０４は、例えば、仮想コンテンツアイテムの開発者によって指定されてもよく、仮想コンテンツアイテムの再生中に異なる時点で変更されてもよい。ナビゲーションインジケータ３０２はまた、仮想コンテンツアイテムによってキャプチャされたシーンにアクセスしている間に、ビューポートの方向または方向を示す方位インジケータ（heading indicator）３０６を含む。この例では、ビューポートの方向は、方位インジケータ３０６の方向によって示される。ビューポートの方向が変化すると、方位インジケータ３０６は、更新されたビューポートの方向に対応する方向に向くように点３０８の周りを回転することができる。いくつかの実施形態では、方位インジケータ３０６によって示される方向は、垂直軸（すなわち、ヨー）に沿ったビューポートの動きに対応する。方位インジケータ３０６は、アクセスされている（複数の）シーン内のビューポートのズームレベルも示すことができる。いくつかの実施形態では、方位インジケータ３０６の長さまたはサイズは、ビューポイントのより高いズームレベルを示すために、点３０８の周りで増大または伸長する。このような実施形態では、方位インジケータ３０６の長さまたはサイズは、ビューポートの縮小されたズームレベルを示すために、点３０８の周りで縮小するか、または収縮する。いくつかの実施形態では、仮想コンテンツアイテムは、デフォルトのズームレベル（例えば、６０度または他の特定のズームレベル）に関連付けられてもよい。いくつかの実施形態では、仮想コンテンツアイテムの開発者は、ビューポートを介して適用され得る最小および／または最大のズームレベルを指定することができる。
【００３１】
図３Ｂは、コンテンツアイテム（例えば、仮想コンテンツアイテム）がアクセスされているときに、ビューポートインタフェースに提示され得るナビゲーションインジケータ３２２の一例３２０を示す。図３Ｂにおいて、仮想コンテンツアイテムにアクセスするビューポートは、シーンにおいてズームインされる。その結果、方位インジケータ３２６は、ビューポートの増大されたズームレベルを示すために、ポイント３２８の周りで伸長されるか、またはサイズが拡大されるように示される。
【００３２】
図３Ｃは、コンテンツアイテム（例えば、仮想コンテンツアイテム）がアクセスされているときに、ビューポートインタフェースに提示され得るナビゲーションインジケータ３３２の一例３３０を示す。図３Ｃにおいて、仮想コンテンツアイテムにアクセスするビューポートの方向は、ビューポートの初期のまたは意図された方向３３４に対して、西向きまたは左向きである。さらに、ビューポートは、見られているシーンからズームアウトされる。その結果、方位インジケータ３３６は、ビューポートの方向を示すために点３３８の周りで左に回転されているものとして示されている。さらに、方位インジケータ３３６は、ビューポートの低下されたズームレベルを示すために、点３３８の周りで収縮されるか、またはサイズが縮小されるように示される。
【００３３】
図３Ｄは、コンテンツアイテム（例えば、仮想コンテンツアイテム）がアクセスされているときに、ビューポートインタフェースに提示され得るナビゲーションインジケータ３４２の一例３４０を示す。図３Ｄでは、仮想コンテンツアイテムにアクセスするビューポートは、仮想コンテンツアイテムのシーンにズームインされる。さらに、仮想コンテンツアイテムにアクセスするビューポートの方向は、ビューポートの初期の、または意図された方向３４４に対して西向きかまたは左向きである。その結果、方位インジケータ３４６は、ビューポートの増大されたズームレベルを示すために、点３４８の周りで伸長されるか、またはサイズが増大されるように示される。さらに、方位インジケータ３４６は、ビューポートの方向を示すために、点３４８の周りで左に回転されているものとして示されている。
【００３４】
図３Ｅは、コンテンツアイテム（例えば、仮想コンテンツアイテム）がアクセスされているときにビューポートインタフェースに提示され得るナビゲーションインジケータ３５２の一例３５０を示す。図３Ｅでは、ビューポートの初期の、または意図された方向３５４が更新されている。意図された方向３５４への変更は、例えば、ビューポートが案内されるシーンにアクセスする場合（例えば、移動する車両からのビュー）など、仮想コンテンツアイテムの再生中の異なる時点で生じる可能性がある。この例では、仮想コンテンツアイテムにアクセスするビューポートは、ビューポートの意図された方向３５４に対して反対方向を向いている。その結果、方位インジケータ３５６は、意図された方向３５４に対して反対方向に点３５８の周りを回転するように示される。
【００３５】
図３Ｆは、コンテンツアイテム（例えば、仮想コンテンツアイテム）がアクセスされているときに、ビューポートインタフェースに提示され得るナビゲーションインジケータ３６２の一例３６０を示す。図３Ｆにおいて、仮想コンテンツアイテムにアクセスするビューポートは、仮想コンテンツアイテムのシーンにズームインされる。さらに、仮想コンテンツアイテムにアクセスするビューポートの方向は、ビューポートの初期の、または意図された方向３６４に対して西に向いているか、または左に向いている。その結果、方位インジケータ３６６は、ビューポートの拡大されたズームレベルを示すために、点３６８の周りで伸長されるか、またはサイズが増大されるように示される。さらに、方位インジケータ３６６は、ビューポートの方向を示すために、点３６８の周りで左に回転されているものとして示されている。いくつかの実施形態では、ナビゲーションインジケータ３６２は、アクセスされている仮想コンテンツアイテムのシーン内の様々な注目点を識別することができる。そのような実施形態では、ナビゲーションインジケータ３６２は、例えば、方向３６４および／または方位インジケータ３６６に対して、注目点の対応する方向３７０を視覚的に示すことができる。このような複数の注目点は、例えば、仮想コンテンツアイテムの開発者によって指定され得る。一般に、各注目点は、アクセスされているシーン（例えば、ストリームまたはフィード）に対応する時点に関する仮想コンテンツアイテムによって撮像された（複数の）シーン内の任意の位置に関連付けることができる。いくつかの実施形態では、ナビゲーションインジケータ３６２は、ビューポートを介して提示されるシーン内のビューポート位置の閾値距離内の複数の注目点を識別することができる。
【００３６】
図４Ａは、本開示の一実施形態によるコンテンツアイテム（例えば、仮想コンテンツアイテム）がアクセスされている間にナビゲーションインジケータ４０６が提供されるビューポートインタフェース４０４の一例４００を示す。この例では、ビューポート４０４は、コンピューティングデバイス４０２の表示画面上に提示される。さらに、ビューポート４０４は、コンピューティングデバイス４０２上で実行されるソフトウェアアプリケーション（例えば、ウェブブラウザ、ソーシャルネットワーキングアプリケーションなど）を介して提供されてもよい。表示画面に示されているナビゲーションインジケータ４０６の位置および／またはサイズは、具体化に応じて変更されてもよい。図４Ａの例では、ビューポート４０４は、仮想コンテンツアイテムからのシーンを提示している。この例では、シーンは、他の複数の注目点の中に、２羽の鳥４１４およびハンググライダー４１６を含む。ビューポート４０４は、上述したように、ビューポートの方向およびズームレベルを識別するための方位インジケータ４０８を含むナビゲーションインジケータ４０６を含む。また、ナビゲーションインジケータ４０６は、注目点４１０が識別されかつ方位インジケータ４０８によって識別されるビューポート方向に対して東方向に位置されていることを示す。コンピューティングデバイス４０２を操作するユーザーは、例えば、上述のようにビューポートの方向および／またはズームレベルを変更することによってシーンをナビゲートする。例えば、ユーザーは、注目点に対応する方向４１０に向くようにビューポートの方向を変更することができる。その結果、ビューポートは、図４Ｂの例に示すように、方向４１０に対応するコンテンツ（例えば、画像および／またはビデオストリーム）を提示するように更新され得る。いくつかの実施形態では、ナビゲーションインジケータ４０６は、複数の注目点の他に、アクセスされているシーン内で発生する他の複数のタイプのイベントを識別することもできる。例えば、ナビゲーションインジケータ４０６は、シーン内で生成された音の方向を示すことができる。
【００３７】
いくつかの実施形態では、ナビゲーションインジケータ４０６は、最初は、半透明であるかまたはぼやけた色であるか（faded）のように示される。そのような実施形態では、ナビゲーションインジケータ４０６は、例えば、ビューポート４０４および／またはコンピューティングデバイス４０２を用いて、ユーザー対話を検出すると不透明になる。ナビゲーションインジケータ４０６は、ユーザーがナビゲーションインジケータ４０６に対応する表示画面の領域でタッチジェスチャーを実行するときに不透明になることもある。例えば、ナビゲーションインジケータ４０６は、コンピューティングデバイス内のセンサに基づいてユーザー対話を検出することができる。いくつかの実施形態では、ナビゲーションインジケータ４０６は、ユーザー対話が閾値期間において検出されない場合、半透明の状態またはぼやけた色の状態に戻ることができる。いくつかの実施形態では、仮想コンテンツアイテムがアクセスされるときに、自動モードが、デフォルトで有効にされてもよい。そのような実施形態では、自動モードでは、ビューポートは、仮想コンテンツアイテム内の（複数の）シーンを介して自動的にナビゲートされ得る。例えば、仮想コンテンツアイテムの開発者は、（複数の）シーン内の１つ以上の注目点を指定することができ、ビューポートは、複数の注目点が表示されるように自動的にナビゲートされ得る。いくつかの実施形態では、複数の注目点間のビューポート移動のような対応する軌跡が自動的に生成され得る。いくつかの実施形態では、注目点は、ビューポートを介して提示されているビデオストリームに対応する時点または時間に（複数の）シーン内の空間領域として定義され得る。いくつかの実施形態では、複数の注目点は、ビューポートが注目点に焦点を当てるべき時間の長さを示す時間的情報（例えば、第１の注目点で３秒、第２の注目点で５秒、など）に関連付けられる。
【００３８】
図４Ｂは、本開示の一実施形態によるコンテンツアイテム（例えば、仮想コンテンツアイテム）がアクセスされている間にナビゲーションインジケータ４０６が提供されるビューポートインタフェース４０４の一例４４０を示す。この例では、コンピューティングデバイス４０２の表示画面上に提示されるビューポート４０４の方向は、注目点４１０として図４Ａのナビゲーションインジケータ４０６に示された注目点４１８に対応する方向に向くように変更されている。その結果、ビューポート４０４に提示されたシーンは、ビューポート調整に対応するコンテンツ（例えば、複数の画像および／または複数のビデオストリーム）を提示するように更新されている。この例では、シーンは、他の複数の注目点の中で、注目点４１０としてナビゲーションインジケータ４０６によって識別されたハンググライダー４１６および熱気球４１８を示す。図４Ｂにおいて、方位インジケータ４０８は、ビューポートの方向の変化に対応するように、点４１２の周りを右に回転されている。いくつかの実施形態では、コンピューティングデバイス４０２を操作するユーザーは、ナビゲーションインジケータ４０６に対応するディスプレイ画面の領域でタッチジェスチャーを実行して、ビューポートを仮想コンテンツアイテムに対して定義された初期の、または意図された方向に戻らせることができる。また、そのような実施形態では、ビューポートのズームレベルは、タッチジェスチャーを検出すると、仮想コンテンツアイテムに対して定義されたデフォルトの、または意図されたズームレベルにリセットされる。方位インジケータ４０８は、例えば、ユーザーがビューポートをナビゲートする方向に応じて、時計回りまたは反時計回りの方向に点４１２の周りを回転することができる。例えば、ビューポート方向を０度から１８０度に変更すると、方位インジケータ４０８が点４１２を中心に時計回りの方向に回転し、ビューポート方向が１８０度から３６０度に変化すると、方位インジケータ４０８が点４１２を中心に反時計回りの方向に回転する。
【００３９】
図４Ｃは、本開示の一実施形態による、コンテンツアイテム（例えば、仮想コンテンツアイテム）がアクセスされている間にナビゲーションインジケータ４０６が提供されるビューポートインタフェース４０４の一例４８０を示す。この例では、コンピューティングデバイス４０２の表示画面上に提示されるビューポート４０４の方向は、図４Ａのシーンに示されている２羽の鳥４１４に向くように変更されている。また、ビューポート４０４のズームレベルも増大される。その結果、ビューポート４０４に提示されたシーンは、ビューポート調整に対応するコンテンツ（例えば、複数の画像および／または複数のビデオストリーム）を提示するように更新されている。この例では、シーンは、他の複数の注目点の中で、ユーザーがビューポートで焦点を合わせた一対の鳥４１４を示す。図４Ｃにおいて、方位インジケータ４０８は、ビューポイントの方向の変化に対応するために、シーン内の２羽の鳥４１４の方向に向くように点４１２を中心に回転されている。この例では、方位インジケータ４０８は、ビューポイントの拡大されたズームレベルを示すために、点４１２の周りでサイズが増大している。
【００４０】
図５は、本開示の一実施形態によるインタフェースを介してコンテンツにアクセスするナビゲーションインジケータを提供する例示的な方法５００を示す。別段の記載がない限り、本明細書で説明する様々な実施形態の範囲内で、同様の、または代替の順序で、または並行して実行される追加の、より少ない、または代替のステップが存在し得ることを理解されたい。ブロック５０２において、コンテンツアイテムにアクセスするための少なくとも１つの要求の決定が行われ、コンテンツアイテムは、１組の異なる位置からの少なくとも１つのシーンを撮像する１組のカメラフィードを使用して構成される。ブロック５０４において、コンテンツアイテムの再生が提示されるコンピューティングデバイスの表示画面上にビューポートインタフェースが提供され、ビューポートインタフェースは、ｉ）シーンに対するビューポートインタフェースの方向、またはｉｉ）ビューポートインタフェースのズームレベルを変更することにより、コンピューティングデバイスを操作するユーザーに、少なくとも１つのシーンを仮想的にナビゲートすることを可能にする。ブロック５０６において、ナビゲーションインジケータがビューポートインタフェースに提供され、ナビゲーションインジケータは、コンテンツアイテムの再生中にビューポートインタフェースの対応する方向およびズームレベルに対する任意の変化を視覚的に示すように構成される。
【００４１】
本開示の様々な実施形態に関連する多くの他の使用、用途、および／または変形があり得ることが企図される。例えば、場合によっては、ユーザーは、開示された技術を利用するか否かを選択することができる。また、開示された技術は、様々なプライバシー設定および嗜好が維持され、個人情報が漏洩するのを防止することを保証することもできる。別の例では、本開示の様々な実施形態は、学習、改善、および／または経時的に改良され得る。
【００４２】
ソーシャルネットワーキングシステム−例示的な実装形態
図６は、本開示の一実施形態による、向上したビデオ符号化のための様々な実施形態で利用され得る例示的なシステム６００のネットワーク図を示す。システム６００は、１つまたは複数のユーザデバイス６１０と、１つまたは複数の外部システム６２０と、ソーシャルネットワーキングシステム（ソーシャルネットワーキングサービス）６３０と、ネットワーク６５０とを含む。一実施形態では、前述の実施形態との関連で論じられたソーシャルネットワーキングサービス、プロバイダ、および／またはシステムは、ソーシャルネットワーキングシステム６３０として実装されてよい。例示の目的のために、図６によって示される、システム６００の実施形態は、単一の外部システム６２０と、単一のユーザデバイス６１０とを含む。ただし、他の実施形態において、システム６００は、より多くのユーザデバイス６１０、および／または、より多くの外部システム６２０を含んでもよい。特定の実施形態において、ソーシャルネットワーキングシステム６３０は、ソーシャルネットワークプロバイダによって運営されるのに対して、外部システム６２０は、異なるエンティティによって運営され得るという点で、ソーシャルネットワーキングシステム６３０とは別個のものである。しかしながら、様々な実施形態において、ソーシャルネットワーキングシステム６３０および外部システム６２０は、共に動作して、ソーシャルネットワーキングシステム６３０のユーザ（またはメンバー）に対してソーシャルネットワーキングサービスを提供する。この意味において、ソーシャルネットワーキングシステム６３０は、外部システム６２０などの他のシステムがインターネット上のユーザーに対してソーシャルネットワーキングサービスおよび機能を提供するために使用し得るプラットフォームまたはバックボーンを提供する。
【００４３】
ユーザデバイス６１０は、ユーザーから入力を受信し、ネットワーク６５０を通じてデータを送受信することができる１つまたは複数のコンピューティングデバイス（またはコンピューティングシステム）を備える。一実施形態において、ユーザデバイス６１０は、例えば、マイクロソフトウィンドウズ（登録商標）と互換性のあるオペレーティングシステム（ＯＳ）、Ａｐｐｌｅ  ＯＳ  Ｘ、および／またはＬｉｎｕｘ（登録商標）ディストリビューションを実行する従来のコンピュータシステムである。別の実施形態において、ユーザデバイス６１０は、スマートフォン、タブレット、携帯情報端末（ＰＤＡ：ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、携帯電話、ラップトップコンピュータ、ウェアラブルデバイス（例えば、眼鏡、腕時計、ブレスレット、その他）、カメラ、機器、その他などのコンピュータ機能を有するコンピューティングデバイスまたはデバイスであってもよい。ユーザデバイス６１０は、ネットワーク６５０を通じて通信するように構成される。ユーザデバイス６１０は、アプリケーション、例えば、ユーザデバイス６１０のユーザーがソーシャルネットワーキングシステム６３０と対話することを可能にするブラウザアプリケーションを実行することができる。別の実施形態において、ユーザデバイス６１０は、ｉＯＳおよびＡＮＤＲＯＩＤ（登録商標）などの、ユーザデバイス６１０のネイティブオペレーティングシステムによって提供されるアプリケーションプログラミングインタフェース（ＡＰＩ）を通じてソーシャルネットワーキングシステム６３０を対話する。ユーザデバイス６１０は、ネットワーク６５０を通じて外部システム６２０およびソーシャルネットワーキングシステム６３０と通信するように構成される。ネットワーク６５０は、有線通信システムおよび／または無線通信システムを使用する、ローカルエリアネットワークおよび／または広域ネットワークの任意の組み合わせを備え得る。
【００４４】
１つの実施形態において、ネットワーク６５０は、標準的な通信技術およびプロトコルを使用する。したがって、ネットワーク６５０は、イーサネット（登録商標）、８０２．１１、マイクロ波アクセスのための世界的相互運用性（ＷｉＭＡＸ：ｗｏｒｌｄｗｉｄｅ  ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  ｍｉｃｒｏｗａｖｅ  ａｃｃｅｓｓ）、３Ｇ、４Ｇ、ＣＤＭＡ、ＧＳＭ（登録商標）、ＬＴＥ、デジタル加入者線（ＤＳＬ：ｄｉｇｉｔａｌ  ｓｕｂｓｃｒｉｂｅｒ  ｌｉｎｅ）等などの技術を使用するリンクを含み得る。同様に、ネットワーク６５０上で使用されるネットワーキングプロトコルは、マルチプロトコルラベルスイッチング（ＭＰＬＳ：ｍｕｌｔｉｐｒｏｔｏｃｏｌ  ｌａｂｅｌ  ｓｗｉｔｃｈｉｎｇ）、送信制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、簡易メール転送プロトコル（ＳＭＴＰ：ｓｉｍｐｌｅ  ｍａｉｌ  ｔｒａｎｓｆｅｒ  ｐｒｏｔｏｃｏｌ）、ファイル転送プロトコル（ＦＴＰ）などを含み得る。ネットワーク６５０上で交換されるデータは、ハイパーテキストマークアップ言語（ＨＴＭＬ）および拡張マークアップ言語（ＸＭＬ）を含む技術および／またはフォーマットを使用して表現され得る。また、全部または一部のリンクは、セキュアソケットレイヤ（ＳＳＬ）、トランスポートレイヤセキュリティ（ＴＬＳ）、およびインターネットプロトコルセキュリティ（ＩＰｓｅｃ）などの従来の暗号化技術を使用して暗号化され得る。
【００４５】
１つの実施形態において、ユーザデバイス６１０は、外部システム６２０から、およびソーシャルネットワーキングシステム６３０から受信されるマークアップ言語文書６１４を、ブラウザアプリケーション６１２を使用して処理することによって、外部システム６２０からのコンテンツおよび／またはソーシャルネットワーキングシステム６３０からのコンテンツを表示し得る。マークアップ言語文書６１４は、コンテンツと、そのコンテンツのフォーマッティングまたは表示方法を記述する１つまたは複数の命令とを識別する。マークアップ言語文書６１４内に含まれる命令を実行することによって、ブラウザアプリケーション６１２は、マークアップ言語文書６１４によって記述されたフォーマットまたは表示方法を使用して、識別されたコンテンツを表示する。例えば、マークアップ言語文書６１４は、外部システム６２０およびソーシャルネットワーキングシステム６３０から得られたテキストおよび／または画像データを含む複数のフレームを有するウェブページを生成および表示するための命令を含む。様々な実施形態において、マークアップ言語文書６１４は、拡張マークアップ言語（ＸＭＬ）データ、拡張ハイパーテキストマークアップ言語（ＸＨＴＭＬ）データ、または、他のマークアップ言語データを含むデータファイルを備える。また、マークアップ言語文書６１４は、外部システム６２０とユーザデバイス６１０との間のデータ交換を容易にするためのジャバスクリプトオブジェクトノーテーション（ＪＳＯＮ：ＪａｖａＳｃｒｉｐｔ（登録商標）Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）データ、パディング付きのＪＳＯＮ（ＪＳＯＮＰ：ＪＳＯＮ  ｗｉｔｈ  ｐａｄｄｉｎｇ）データ、およびジャバスクリプトデータを含み得る。ユーザデバイス６１０上のブラウザアプリケーション６１２は、ジャバスクリプトコンパイラを使用して、マークアップ言語文書６１４を復号し得る。
【００４６】
マークアップ言語文書６１４は、ＦＬＡＳＨ（商標）アプリケーションまたはＵｎｉｔｙ（商標）アプリケーション、ＳｉｌｖｅｒＬｉｇｈｔ（商標）アプリケーションフレームワーク等などの、アプリケーションまたはアプリケーションフレームワークも含み、または、これらに対してもリンクし得る。
【００４７】
１つの実施形態において、ユーザデバイス６１０は、ユーザデバイス６１０のユーザーがソーシャルネットワーキングシステム６３０へログインしたかを示すデータを含む、１つまたは複数のクッキー６１６も含む。クッキー６１６は、ソーシャルネットワーキングシステム６３０からユーザデバイス６１０へ通信されるデータのカスタム化を可能にし得る。
【００４８】
外部システム６２０は、１つまたは複数のウェブページ６２２ａ、６２２ｂを含む、１つまたは複数のウェブサーバを含む。１つまたは複数のウェブページ６２２ａ、６２２ｂは、ネットワーク６５０を使用して、ユーザデバイス６１０へ通信される。外部システム６２０は、ソーシャルネットワーキングシステム６３０とは別個である。例えば、外部システム６２０は、第１のドメインに対して関連付けられるが、ソーシャルネットワーキングシステム６３０は、別個のソーシャルネットワーキングドメインに対して関連付けられる。外部システム６２０に含まれるウェブページ６２２ａ、６２２ｂは、コンテンツを識別し、識別されたコンテンツのフォーマッティングおよび表示方法を特定する命令を含むマークアップ言語文書６１４を備える。前述したように、多くのバリエーションまたは他の可能性があり得ることを理解されたい。
【００４９】
ソーシャルネットワーキングシステム６３０は、複数のユーザーを含み、ソーシャルネットワークのユーザーに対して、ソーシャルネットワークの他のユーザーと通信および対話するための能力を提供する、ソーシャルネットワークのための１つまたは複数のコンピューティングデバイスを含む。さらに詳細に説明されるように、ソーシャルネットワークは、グラフ、すなわち、エッジとノードとを含むデータ構造によって表現され得る。データベース、オブジェクト、クラス、メタ要素、ファイル、または任意の他のデータ構造を含むが、これらに限定されない、他のデータ構造も、ソーシャルネットワークを表現するために使用され得る。ソーシャルネットワーキングシステム６３０は、オペレータによって監督、管理、または制御されてよい。ソーシャルネットワーキングシステム６３０のオペレータは、ソーシャルネットワーキングシステム６３０内でコンテンツを管理し、ポリシを統制し、使用メトリクスを収集するための、人間、自動化されたアプリケーション、または一連のアプリケーションであってよい。任意のタイプのオペレータが使用されてよい。
【００５０】
ユーザーは、ソーシャルネットワーキングシステム６３０に加入し、次いで、そのユーザーがつなげられることを望む、ソーシャルネットワーキングシステム６３０の任意の数の他のユーザーへのつながりを追加し得る。本明細書において、「友達」という用語は、ユーザーがソーシャルネットワーキングシステム６３０を通じてつながり、関連、または関係を形成した、ソーシャルネットワーキングシステム６３０の任意の他のユーザーに及ぶ。例えば、一実施形態において、ソーシャルネットワーキングシステム６３０内のユーザーが、ソーシャルグラフ内のノードとして表現される場合、「友達」という用語は、２つのユーザノード間に形成され、かつ、２つのユーザノードを直接的に接続するエッジを指し得る。
【００５１】
つながりは、ユーザーによって明示的に追加されても、または、ユーザーの共通の特性（例えば、同じ教育機関の卒業生であるユーザー）に基づいて、ソーシャルネットワーキングシステム６３０によって自動的に作成されてもよい。例えば、第１のユーザーは、友達になりたい特定の他のユーザーを具体的に選択する。ソーシャルネットワーキングシステム６３０におけるつながりは、通常は双方向であるが、双方向である必要はなく、そのため、「ユーザー」および「友達」という用語は、枠組みに依存する。ソーシャルネットワーキングシステム６３０のユーザー間のつながりは、通常は、双務的（「二方向」）または「相互的」であるが、つながりは、片務的、または「一方向」であってもよい。例えば、ボブおよびジョーの両者が、ソーシャルネットワーキングシステム６３０のユーザーであり、互いにつながっている場合、ボブおよびジョーは、互いのつながりである。他方で、ボブは、ジョーによってソーシャルネットワーキングシステム６３０へ通信されたデータを見るためにジョーとつながることを欲するが、ジョーは、相互的なつながりを形成することを欲しない場合、片務的なつながりが確立され得る。ユーザー間のつながりは、直接的なつながりであり得る。ただし、ソーシャルネットワーキングシステム６３０のいくつかの実施形態は、つながりが、１つまたは複数のつながりのレベルまたは分離度を通じた間接的なものとなることを可能にする。
【００５２】
ユーザー間のつながりを確立および維持し、ユーザー間の対話を可能にすることに加えて、ソーシャルネットワーキングシステム６３０は、ソーシャルネットワーキングシステム６３０によってサポートされる様々なタイプのアイテムに対してアクションを行うための能力をユーザーに対して提供する。こうしたアイテムは、ソーシャルネットワーキングシステム６３０のユーザーが所属し得るグループまたはネットワーク（すなわち、人々、エンティティ、およびコンセプトのソーシャルネットワーク）、ユーザーが興味を持ち得るイベントまたはカレンダー入力、ユーザーがソーシャルネットワーキングシステム６３０を通じて使用し得るコンピュータベースのアプリケーション、ソーシャルネットワーキングシステム６３０によって提供されるサービスを通じてまたはソーシャルネットワーキングシステム６３０を通じてユーザーがアイテムを購入または販売することを可能にする取引、ならびにユーザーがソーシャルネットワーキングシステム６３０内外で実行し得る広告との対話を含み得る。これらは、ユーザーがソーシャルネットワーキングシステム６３０上で作用を与え得るアイテムのわずかな例にすぎず、多くの他の例が可能である。ユーザーは、ソーシャルネットワーキングシステム６３０において、または、ソーシャルネットワーキングシステム６３０とは別個の外部システム６２０もしくはネットワーク６５０を通じてソーシャルネットワーキングシステム６３０に対して結合される外部システム６２０において表現されることが可能なありとあらゆるものと対話し得る。
【００５３】
ソーシャルネットワーキングシステム６３０は、多様なエンティティとリンクすることも可能である。例えば、ソーシャルネットワーキングシステム６３０は、ユーザーが互いに対話すること、および、ＡＰＩ、ウェブサービス、または他の通信チャネルを通じて外部システム６２０または他のエンティティと対話することを可能にする。ソーシャルネットワーキングシステム６３０は、複数のエッジによって相互接続された複数のノードを備える「ソーシャルグラフ」を生成および維持する。ソーシャルグラフ内の各ノードは、別のノードに対して作用を与え得るエンティティおよび／または別のノードによって作用を与えられ得るエンティティを表現し得る。ソーシャルグラフは、様々なタイプのノードを含み得る。ノードのタイプの例は、ユーザー、人間以外のエンティティ、コンテンツアイテム、ウェブページ、グループ、アクティビティ、メッセージ、コンセプト、およびソーシャルネットワーキングシステム６３０内のオブジェクトによって表現され得る任意の他のものを含む。ソーシャルグラフ内の２つのノード間のエッジは、ノード関係から、またはノードのうちの一方によって他方に対して実行されたアクションから生じ得る、２つのノード間の特定の種類のつながり、または関連を表現し得る。いくつかのケースでは、ノード間のエッジは、重み付けされ得る。エッジの重みは、ノード間のつながりまたは関連の強度などの、そのエッジに対して関連付けられている属性を表現し得る。異なるタイプのエッジが、異なる重みと共に提供され得る。例えば、あるユーザーが別のユーザーに対して「いいね」を表明するときに作成されるエッジには、ある重みが与えられてよく、ユーザーが別のユーザーと友達になるときに作成されるエッジには、異なる重みが与えられてよい。
【００５４】
例として、第１のユーザーが第２のユーザーを友達として識別した場合、第１のユーザーを表すノードと、第２のユーザーを表す第２のノードとを接続するソーシャルグラフ中のエッジが生成される。様々なノードが互いに関係するかまたは対話するのに伴い、ソーシャルネットワーキングシステム６３０は、関係および対話を反映するように、様々なノードを接続するエッジを修正する。
【００５５】
ソーシャルネットワーキングシステム６３０は、ユーザーによるソーシャルネットワーキングシステム６３０との対話を高める、ユーザーにより生成されたコンテンツも含む。ユーザーにより生成されたコンテンツは、ユーザーがソーシャルネットワーキングシステム６３０に対して追加し、アップロードし、送信し、または「投稿し」得るあらゆるものを含み得る。例えば、ユーザーは、ユーザデバイス６１０からソーシャルネットワーキングシステム６３０への投稿を通信する。投稿は、ステータスアップデートもしくは他の文字情報などのデータ、位置情報、写真などの画像、映像、リンク、音楽、または、他の同様のデータおよび／もしくはメディアを含み得る。コンテンツも、第三者によってソーシャルネットワーキングシステム６３０に対して追加され得る。コンテンツ「アイテム」は、ソーシャルネットワーキングシステム６３０においてオブジェクトとして表現される。このようにして、ソーシャルネットワーキングシステム６３０のユーザーは、様々な通信チャネルを通じて様々なタイプのテキストおよびコンテンツアイテムを投稿することによって、互いに通信することを促される。そのような通信は、ユーザー同士の対話を増加させ、ユーザーがソーシャルネットワーキングシステム６３０と対話する頻度を増加させる。
【００５６】
ソーシャルネットワーキングシステム６３０は、ウェブサーバ６３２と、ＡＰＩ要求サーバ６３４と、ユーザプロファイルストア６３６と、つながりストア６３８と、アクションロガー６４０と、アクティビティログ６４２と、認証サーバ６４４とを含む。本発明の一実施形態において、ソーシャルネットワーキングシステム６３０は、様々なアプリケーションのための追加的な構成要素、より少ない構成要素、または異なる構成要素を含み得る。ネットワークインタフェース、セキュリティ機構、負荷分散装置、フェイルオーバサーバ、管理およびネットワーク操作コンソールなどの他の構成要素は、本システムの詳細を曖昧にしないように、図示されていない。
【００５７】
ユーザプロファイルストア６３６は、ユーザーによって申告され、またはソーシャルネットワーキングシステム６３０によって推測された職歴、学歴、趣味または嗜好、住所などの経歴的情報、人口学的情報、および他のタイプの記述的情報を含む、ユーザアカウントに関する情報を維持する。この情報は、各ユーザーが一意に識別されるように、ユーザプロファイルストア６３６内に記憶される。ソーシャルネットワーキングシステム６３０は、異なるユーザー間の１つまたは複数のつながりを記述するデータも、つながりストア６３８内に記憶する。つながり情報は、同様または共通の職歴、グループメンバーシップ、趣味、または学歴を有するユーザーを示し得る。また、ソーシャルネットワーキングシステム６３０は、ユーザーの他のユーザーとの関係をユーザーが特定することを可能にする、異なるユーザー間におけるユーザーによって定義されたつながりを含む。例えば、ユーザーによって定義されたつながりは、友達、同僚、パートナー等などの、ユーザーの実生活の関係と並行する、他のユーザーとの関係をユーザーが生成することを可能にする。ユーザーは、予め定義されたタイプのつながりから選択しても、またはユーザー自身のつながりタイプを必要に応じて定義してもよい。非人間エンティティ、バケット、クラスタセンタ、画像、興味、ページ、外部システム、コンセプト等などの、ソーシャルネットワーキングシステム6３０内の他のノードとのつながりも、つながりストア６３８内に記憶される。
【００５８】
ソーシャルネットワーキングシステム６３０は、ユーザーが対話し得るオブジェクトに関するデータを維持する。このデータを維持するために、ユーザプロファイルストア６３６およびつながりストア６３８は、ソーシャルネットワーキングシステム６３０によって維持されるオブジェクトの対応するタイプのインスタンスを記憶する。各オブジェクトタイプは、オブジェクトのタイプに適した情報を記憶するのに適した情報フィールドを有する。例えば、ユーザプロファイルストア６３６は、ユーザーのアカウントおよびユーザーのアカウントに関連した情報を記述するのに適したフィールドを有するデータ構造を含む。特定のタイプの新たなオブジェクトが作成される場合、ソーシャルネットワーキングシステム６３０は、対応するタイプの新たなデータ構造を初期化し、その新たなデータ構造に対して一意のオブジェクト識別子を割り当て、必要に応じて、そのオブジェクトに対してデータを追加することを開始する。これは、例えば、ユーザーがソーシャルネットワーキングシステム６３０のユーザーになった場合に発生し、ソーシャルネットワーキングシステム６３０は、ユーザプロファイルストア６３６内にユーザプロファイルの新たなインスタンスを生成し、ユーザアカウントに対して一意の識別子を割り当て、ユーザーによって提供される情報をユーザアカウントのフィールドへ投入し始める。
【００５９】
つながりストア６３８は、他のユーザーに対するユーザーのつながり、外部システム６２０に対するつながり、または他のエンティティに対するつながりを記述するのに適したデータ構造を含む。つながりストア６３８は、つながりタイプもユーザーのつながりと関連付け得る。つながりタイプは、ユーザーのプライバシー設定と共に使用されて、ユーザーに関する情報に対するアクセスを規制し得る。本発明の一実施形態において、ユーザプロファイルストア６３６およびつながりストア６３８は、連合データベースとして実装され得る。
【００６０】
つながりストア６３８、ユーザプロファイルストア６３６、およびアクティビティログ６４２内に記憶されるデータは、ノードを使用して、ノードを接続する様々なオブジェクトおよびエッジを識別して、異なるオブジェクト間の関係を識別するソーシャルグラフをソーシャルネットワーキングシステム６３０が生成することを可能にする。例えば、第１のユーザーが、ソーシャルネットワーキングシステム６３０内で第２のユーザーとのつながりを確立する場合、ユーザプロファイルストア６３６からの第１のユーザーおよび第２のユーザーのユーザアカウントは、ソーシャルグラフ内のノードとして動作し得る。つながりストア６３８によって記憶される、第１のユーザーと第２のユーザーとの間のつながりは、第１のユーザーおよび第２のユーザーに対して関連付けられるノード間のエッジである。この例を続けると、第２のユーザーは、次いで、第１のユーザーに対して、ソーシャルネットワーキングシステム６３０内でメッセージを送信し得る。メッセージを送信するアクションは、第１のユーザーおよび第２のユーザーを表現する、ソーシャルグラフ内の２つのノード間の別のエッジであり、メッセージを送信するアクションは、記憶され得る。また、メッセージ自体が、第１のユーザーを表現するノードおよび第２のユーザーを表現するノードに対して接続される別のノードとして、ソーシャルグラフにおいて識別され、ソーシャルグラフに含まれ得る。
【００６１】
別の例において、第１のユーザーは、ソーシャルネットワーキングシステム６３０によって維持される画像において（または、代替的に、ソーシャルネットワーキングシステム６３０の外部の別のシステムによって維持される画像において）第２のユーザーをタグ付けし得る。画像は、それ自体がソーシャルネットワーキングシステム６３０内のノードとして表現され得る。このタグ付けアクションは、ユーザーの各々と画像との間にエッジを作成するだけでなく、第１のユーザーと第２のユーザーとの間のエッジも作成し得る。画像もソーシャルグラフ内のノードである。また別の例において、ユーザーが、イベントへ参加することを確かめる場合、そのユーザーおよびそのイベントは、ユーザプロファイルストア６３６から取得されるノードであり、そのイベントへの参加は、アクティビティログ６４２から得られ得るノード間のエッジである。ソーシャルグラフを生成および維持することによって、ソーシャルネットワーキングシステム６３０は、多くの異なるタイプのオブジェクトを記述するデータ、ならびに、それらのオブジェクト間の対話およびつながりを含み、社会的に関連する情報の豊富なソースを提供する。
【００６２】
ウェブサーバ６３２は、ソーシャルネットワーキングシステム６３０を、ネットワーク６５０を通じて、１つもしくは複数のユーザデバイス６１０および／または１つもしくは複数の外部システム６２０に対してリンクする。ウェブサーバ６３２は、ウェブページ、およびＪａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ、Ｆｌａｓｈ、ＸＭＬなどの他のウェブ関連コンテンツを供給する。ウェブサーバ６３２は、メールサーバを含み、または、ソーシャルネットワーキングシステム６３０と１つもしくは複数のユーザデバイス６１０との間のメッセージを受信およびルーティングするための他のメッセージング機能を含み得る。メッセージは、インスタントメッセージ、キューメッセージ（例えば、電子メール）、テキストおよびＳＭＳメッセージ、または任意の他の適切なメッセージングフォーマットであり得る。
【００６３】
ＡＰＩ要求サーバ６３４は、１つまたは複数の外部システム６２０およびユーザデバイス６１０が、１つまたは複数のＡＰＩ関数を呼び出すことによって、ソーシャルネットワーキングシステム６３０からのアクセス情報を呼び出すことを可能にする。ＡＰＩ要求サーバ６３４は、外部システム６２０が、ＡＰＩを呼び出すことによって、ソーシャルネットワーキングシステム６３０に対して情報を送信することも可能にし得る。外部システム６２０は、１つの実施形態において、ネットワーク６５０を通じてソーシャルネットワーキングシステム６３０へＡＰＩ要求を送信し、ＡＰＩ要求サーバ６３４は、そのＡＰＩ要求を受信する。ＡＰＩ要求サーバ６３４は、ＡＰＩ要求に対して関連付けられているＡＰＩを呼び出すことによって要求を処理して、適当な応答を生成する。ＡＰＩ要求サーバ６３４は、その適当な応答を、ネットワーク６５０を通じて外部システム６２０へ通信する。例えば、ＡＰＩ要求に応答して、ＡＰＩ要求サーバ６３４は、外部システム６２０に対してログインしたユーザーのつながりなどの、ユーザーに対して関連付けられているデータを収集し、収集されたデータを外部システム６２０へ通信する。別の実施形態において、ユーザデバイス６１０は、外部システム６２０と同じ手法で、ＡＰＩを通じてソーシャルネットワーキングシステム６３０と通信する。
【００６４】
アクションロガー６４０は、ソーシャルネットワーキングシステム６３０内での、および／またはソーシャルネットワーキングシステム６３０外でのユーザアクションに関する通信をウェブサーバ６３２から受信することが可能である。アクションロガー６４０は、ユーザアクションに関する情報をアクティビティログ６４２へ投入し、ソーシャルネットワーキングシステム６３０の内部で、およびソーシャルネットワーキングシステム６３０の外部で、そのユーザーによって行われた様々なアクションをソーシャルネットワーキングシステム６３０が発見することを可能にする。特定のユーザーが、ソーシャルネットワーキングシステム６３０上の別のノードに関して行う任意のアクションは、アクティビティログ６４２内または同様のデータベースもしくは他のデータレポジトリ内で維持される情報を通じて、各ユーザーのアカウントに対して関連付けられ得る。識別および記憶される、ソーシャルネットワーキングシステム６３０内でユーザーによって行われるアクションの例は、例えば、別のユーザーに対するつながりを追加すること、別のユーザーへメッセージを送信すること、別のユーザーからのメッセージを読むこと、別のユーザーに対して関連付けられるコンテンツを視聴すること、別のユーザーによって投稿されたイベントに参加すること、画像を投稿すること、画像を投稿しようと試行すること、または、別のユーザーもしくは別のオブジェクトと対話する他のアクションを含み得る。ユーザーが、ソーシャルネットワーキングシステム６３０内でアクションを行う場合、そのアクションは、アクティビティログ６４２内に記録される。一実施形態において、ソーシャルネットワーキングシステム６３０は、アクティビティログ６４２をエントリのデータベースとして維持する。アクションが、ソーシャルネットワーキングシステム６３０内で行われる場合、そのアクションについてのエントリが、アクティビティログ６４２に対して追加される。アクティビティログ６４２は、アクションログと称され得る。
【００６５】
また、ユーザアクションは、ソーシャルネットワーキングシステム６３０とは別個の外部システム６２０などの、ソーシャルネットワーキングシステム６３０の外部のエンティティ内で発生するコンセプトおよびアクションに対して関連付けられ得る。例えば、アクションロガー６４０は、ユーザーによる外部システム６２０との対話を記述するデータを、ウェブサーバ６３２から受信し得る。この例において、外部システム６２０は、ソーシャルグラフにおける構造化されたアクションおよびオブジェクトに従って、ユーザーによる対話を報告する。
【００６６】
ユーザーが外部システム６２０と対話するアクションの他の例は、ユーザーが外部システム６２０もしくは別のエンティティにおいて興味を表現すること、外部システム６２０もしくは外部システム６２０内のウェブページ６２２ａと議論するソーシャルネットワーキングシステム６３０に対してユーザーがコメントを投稿すること、ユーザーがソーシャルネットワーキングシステム６３０に対してユニフォームリソースロケータ（ＵＲＬ）もしくは外部システム６２０に対して関連付けられる他の識別子を投稿すること、ユーザーが外部システム６２０に対して関連付けられるイベントへ参加すること、または、外部システム６２０に関連する、ユーザーによる任意の他のアクションを含む。したがって、アクティビティログ６４２は、ソーシャルネットワーキングシステム６３０のユーザーと、ソーシャルネットワーキングシステム６３０とは別個の外部システム６２０との間の対話を記述するアクションを含み得る。
【００６７】
認証サーバ６４４は、ソーシャルネットワーキングシステム６３０のユーザーの１つまたは複数のプライバシー設定を強化する。ユーザーのプライバシー設定は、ユーザーに対して関連付けられる特定の情報がどのように共有され得るかを決定する。プライバシー設定は、ユーザーに対して関連付けられる特定の情報の仕様、および情報が共有され得る１つまたは複数のエンティティの仕様を備える。情報が共有され得るエンティティの例は、他のユーザー、アプリケーション、外部システム６２０、または、その情報に潜在的にアクセスし得る任意のエンティティを含み得る。ユーザーによって共有され得る情報は、プロフィール写真などのユーザアカウント情報、ユーザーに対して関連付けられる電話番号、ユーザーのつながり、つながりを追加すること、ユーザプロフィール情報を変更することなどのユーザーによって行われるアクション等を備える。
【００６８】
プライバシー設定仕様は、異なるレベルの粒度で提供され得る。例えば、プライバシー設定は、他のユーザーと共有されるべき具体的な情報を識別し得る。プライバシー設定は、職場電話番号、または、プロフィール写真、自宅電話番号、およびステータスを含む個人情報などの関連情報の具体的なセットを識別する。代替的に、プライバシー設定は、ユーザーに対して関連付けられる全ての情報に対して適用されてもよい。特定の情報にアクセスすることができるエンティティのセットの仕様も、様々なレベルの粒度で特定され得る。情報が共有され得るエンティティの様々なセットは、例えば、ユーザーの全ての友達、友達の全ての友達、全てのアプリケーション、または全ての外部システム６２０を含み得る。１つの実施形態は、エンティティのセットの仕様がエンティティの一覧表を備えることを可能にする。例えば、ユーザーは、一定の情報に対してアクセスすることを許可される外部システム６２０のリストを提供し得る。別の実施形態は、情報に対してアクセスすることを許可されない例外と共にエンティティのセットを仕様が備えることを可能にする。例えば、ユーザーは、全ての外部システム６２０がユーザーの職場情報に対してアクセスすることを許可し得るが、職場情報に対してアクセスすることを許可されない外部システム６２０のリストを特定し得る。一定の実施形態は、一定の情報に対してアクセスすることを許可されない例外のリストを「ブロックリスト」と呼ぶ。ユーザーによって特定されるブロックリストに所属する外部システム６２０は、プライバシー設定において特定される情報に対してアクセスすることをブロックされる。情報の仕様の粒度と、情報が共有されるエンティティの仕様の粒度との様々な組み合わせが可能である。例えば、全ての個人情報は、友達と共有され得るのに対して、全ての職場情報は、友達の友達と共有され得る。
【００６９】
認証サーバ６４４は、ユーザーに対して関連付けられる一定の情報がユーザーの友達、外部システム６２０、ならびに／または他のアプリケーションおよびエンティティによってアクセスされ得るかを決定するためのロジックを含む。外部システム６２０は、ユーザーの職場電話番号などの、ユーザーのより個人的かつ機密的な情報に対してアクセスするために、認証サーバ６４４からの認証を必要とし得る。ユーザーのプライバシー設定に基づいて、認証サーバ６４４は、別のユーザー、外部システム６２０、アプリケーション、または別のエンティティが、ユーザーによって行われるアクションに関する情報を含む、ユーザーに対して関連付けられる情報に対してアクセスすることを許可されているかを決定する。
【００７０】
いくつかの実施形態では、ソーシャルネットワーキングシステム６３０は、コンテンツプロバイダモジュール６４６を備えることができる。コンテンツプロバイダモジュール６４６は、例えば、図１のコンテンツプロバイダモジュール１０２として実装されてもよい。上述したように、多くの変形または他の可能性が存在し得ることを理解されたい。
【００７１】
ハードウェア実装形態
前述のプロセスおよび特徴は、多種多様なマシンおよびコンピュータシステムアーキテクチャによって、ならびに、多種多様なネットワークおよびコンピューティング環境において実装され得る。図７は、本発明に応じて本明細書に記載された１つまたは複数の実施形態を実装するために使用され得るコンピュータシステム７００の例を例示する。コンピュータシステム７００は、コンピュータシステム７００に対して、本明細書において議論されるプロセスおよび特徴を実行させるための命令のセットを含む。コンピュータシステム７００は、他のマシンへ接続され（例えば、ネットワーク化され）得る。ネットワーク化された配置において、コンピュータシステム７００は、クライアント／サーバネットワーク環境内のサーバマシンもしくはクライアントマシンの資格において動作し、または、ピアツーピア（もしくは分散）ネットワーク環境内のピアマシンとして動作し得る。本発明の一実施形態において、コンピュータシステム７００は、ソーシャルネットワーキングシステム６３０、ユーザデバイス６１０、外部システム７２０、またはこれらの構成要素であってもよい。本発明の一実施形態において、コンピュータシステム７００は、ソーシャルネットワーキングシステム６３０の全てまたは部分を構成する多くのサー間のうちの１つのサーバであってもよい。
【００７２】
コンピュータシステム７００は、プロセッサ７０２と、キャッシュ７０４と、コンピュータ読取可能な媒体上に記憶され、本明細書において説明されるプロセスおよび特徴へ向けられた、１つまたは複数の実行可能なモジュールおよびドライバとを含む。また、コンピュータシステム７００は、高性能入出力（Ｉ／Ｏ）バス７０６と、標準Ｉ／Ｏバス７０８とを含む。ホストブリッジ７１０は、プロセッサ７０２を高性能Ｉ／Ｏバス７０６に対して結合する一方で、Ｉ／Ｏバスブリッジ７１２は、２つのバス７０６および７０８を互いに結合する。システムメモリ７１４および１つまたは複数のネットワークインタフェース７１６は、高性能Ｉ／Ｏバス７０６へ結合される。コンピュータシステム７００は、ビデオメモリと、ビデオメモリに対して結合される表示デバイスとをさらに含んでもよい（図示せず）。マスストレージ７１８およびＩ／Ｏポート７２０は、標準Ｉ／Ｏバス７０８へ結合される。コンピュータシステム７００は、バス７０８に対して結合される、キーボードおよびポインティングデバイス、表示デバイス、または他の入出力デバイス（図示せず）を随意的に含んでもよい。全体的に、これらの要素は、カリフォルニア州サンタクララのインテルコーポレーション社（Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ）によって製造されるｘ８６互換性のあるプロセッサ、カリフォルニア州サニーベルのアドバンストマイクロデバイス社（ＡＭＤ：Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ，Ｉｎｃ）によって製造されるｘ８６互換性のあるプロセッサ、および任意の他の適切なプロセッサを含むが、これらに限定されない、広範なカテゴリのコンピュータハードウェアシステムを表現することが意図される。
【００７３】
オペレーティングシステムは、ソフトウェアアプリケーション（図示せず）へのデータの入力およびソフトウェアアプリケーションからのデータの出力を含む、コンピュータシステム７００の動作を管理および制御する。オペレーティングシステムは、システム上で実行されているソフトウェアアプリケーションと、システムのハードウェア構成要素との間のインタフェースを提供する。任意の適切なオペレーティングシステム、例えば、ＬＩＮＵＸオペレーティングシステム、カリフォルニア州クパチーノのアップルコンピュータ社（Ａｐｐｌｅ  Ｃｏｍｐｕｔｅｒ，Ｉｎｃ．）から市販されているアップルマッキントッシュオペレーティングシステム、ＵＮＩＸ（登録商標）オペレーティングシステム、マイクロソフト（登録商標）ウィンドウズ（登録商標）オペレーティングシステム、ＢＳＤオペレーティングシステム等などが使用され得る。他の実装も可能である。
【００７４】
コンピュータシステム７００の要素は、下記においてより詳細に説明される。具体的には、ネットワークインタフェース７１６は、コンピュータシステム７００と、幅広いネットワークのうちの任意のもの、例えば、イーサネット（例えば、ＩＥＥＥ８０２．３）ネットワーク、バックプレーン等などとの間の通信を提供する。マスストレージ７１８は、上記に識別されたそれぞれのコンピューティングシステムによって実装される上述されたプロセスおよび特徴を実行するためのデータおよびプログラミング命令のための永続的なストレージを提供するのに対して、システムメモリ７１４（例えば、ＤＲＡＭ）は、プロセッサ７０２によって実行される場合のデータおよびプログラミング命令のための一時的なストレージを提供する。Ｉ／Ｏポート７２０は、コンピュータシステム７００へ結合され得る付加的な周辺デバイス間の通信を提供する、１つまたは複数のシリアル通信ポートおよび／またはパラレル通信ポートであり得る。
【００７５】
コンピュータシステム７００は、多様なシステムアーキテクチャを含むことができ、コンピュータシステム７００の様々な構成要素は、再配置されてもよい。例えば、キャッシュ７０４は、プロセッサ７０２と共にチップ上に実装されてもよい。代替的に、キャッシュ７０４およびプロセッサ７０２は、「プロセッサモジュール」としてまとめられて、プロセッサ７０２が「プロセッサコア」と称されてもよい。さらに、本発明の一定の実施形態は、上記構成要素の全部を必要としなくても、または、含まなくてもよい。例えば、標準Ｉ／Ｏバス７０８へ結合される周辺デバイスは、高性能Ｉ／Ｏバス７０６へ結合されてもよい。また、いくつかの実施形態において、単一のバスのみが存在して、コンピュータシステム７００の構成要素が、その単一のバスへ結合されてもよい。さらに、コンピュータシステム７００は、付加的なプロセッサ、記憶デバイス、またはメモリなどの付加的な構成要素を含んでもよい。
【００７６】
一般に、本明細書において説明されるプロセスおよび特徴は、オペレーティングシステムの一部もしくは特定のアプリケーション、構成要素、プログラム、オブジェクト、モジュール、または「プログラム」と称される一連の命令として実装され得る。例えば、１つまたは複数のプログラムは、本明細書において説明される具体的なプロセスを実行するために使用され得る。プログラムは、典型的には、１つまたは複数のプロセッサによって読み出され、実行される場合に、コンピュータシステム７００に対して、本明細書において説明されるプロセスおよび特徴を実行するための動作を実行させる、１つまたは複数の命令を、コンピュータシステム７００内の様々なメモリおよび記憶デバイスにおいて備える。本明細書において説明されるプロセスおよび特徴は、ソフトウェア、ファームウェア、ハードウェア（例えば、特定用途向け集積回路）、または、これらの任意の組み合わせにおいて実装され得る。
【００７７】
１つの実施形態において、本明細書において説明されるプロセスおよび特徴は、分散コンピューティング環境において個々にまたはまとめて、コンピュータシステム７００によって実行される一連の実行可能なモジュールとして実装される。前述のモジュールは、ハードウェア、コンピュータ読取可能な媒体（もしくはマシン読取可能な媒体）上に記憶される実行可能なモジュール、または、両者の組み合わせによって実現され得る。例えば、モジュールは、プロセッサ７０２などの、ハードウェアシステム内のプロセッサによって実行されるべき複数の命令または一連の命令を備え得る。まず、一連の命令は、マスストレージ７１８などの記憶デバイス上に記憶され得る。ただし、一連の命令は、任意の適切なコンピュータ読取可能な記憶媒体上に記憶されてもよい。さらに、一連の命令は、局所的に記憶される必要はなく、ネットワーク上のサーバなどの遠隔記憶デバイスからネットワークインタフェース７１６を通じて受信されてもよい。命令は、マスストレージ７１８などの記憶デバイスからシステムメモリ７１４内へコピーされ、次いで、プロセッサ７０２によってアクセスされ、実行される。様々な実施形態において、１つまたは複数のモジュールは、並列処理環境内の複数のサーバなどの、１つまたは複数の位置における、１つまたは複数のプロセッサによって実行され得る。
【００７８】
コンピュータ読取可能な媒体の例は、揮発性メモリデバイスおよび不揮発性メモリデバイスなどの記録可能なタイプの媒体、ソリッドステートメモリ、フロッピー（登録商標）ディスクおよび他の取り外し可能なディスク、ハードディスクドライブ、磁気媒体、光ディスク（例えば、コンパクトディスク読取専用メモリ（ＣＤ  ＲＯＭＳ）、デジタル多用途ディスク（ＤＶＤ））、他の同様の非一時的で（もしくは一時的で）、有形の（もしくは無形の）記憶媒体、または、本明細書において説明されるプロセスおよび特徴のうちの任意の１つもしくは複数を実行すべく、コンピュータシステム7００による実行のために一連の命令を記憶し、符号化し、もしくは担持するのに適切な任意のタイプの媒体を含むが、これらに限定されない。
【００７９】
説明の目的のために、多くの具体的な詳細が、本説明の完全な理解を提供するために述べられている。しかしながら、こうした具体的な詳細なしに本開示の実施形態が実施され得ることは、当業者には明らかであろう。いくつかの例において、モジュール、構造、プロセス、特徴、およびデバイスは、本説明を曖昧にすることを回避するために、ブロック図の形式で示される。他の例において、機能ブロック図およびフロー図は、データおよび論理フローを表現するために示される。ブロック図およびフロー図の構成要素（例えば、モジュール、ブロック、構造、デバイス、特徴等）は、本明細書において明示的に説明および図示されたような手法以外の手法で、様々に組み合わされ、分離され、除去され、順序を並べ替えられ、置換されてもよい。
【００８０】
この明細書における、「１つの実施形態」、「一実施形態」、「他の実施形態」、「一連の実施形態」、「いくつかの実施形態」、「様々な実施形態」等への言及は、実施形態に関連して説明される特定の特徴、設計、構造、または特性が本開示の少なくとも１つの実施形態に含まれることを意味する。本明細書内の様々な部分における「１つの実施形態において」または「別の実施形態」という句の出現は、必ずしも全て同じ実施形態に言及するものとは限らず、別個の実施形態または代替的な実施形態は、他の実施形態と相互排他的ではない。さらに、「実施形態」等への明示的な言及が存在しても存在しなくても、様々な特徴が説明され、様々な特徴は、いくつかの実施形態において様々に組み合わされ、含まれ得るが、他の実施形態においては様々に省略され得る。同様に、いくつかの実施形態にとっては選好事項または要件であり得るが、他の実施形態にとっては選好事項または要件ではない、様々な特徴が説明される。
【００８１】
本明細書において使用される文言は、主に、読みやすさと教育的目的のために選択されており、発明の主題の輪郭を描くため、または境界線を描くために選択されたものではない。そのため、本発明の範囲は、この詳細な説明によって限定されるのではなく、むしろ、本明細書に基づく出願について発行される任意の請求項によって限定されることが意図される。したがって、本発明の実施形態の開示は、本発明の範囲の例示とはなるが、限定とはならないことが意図され、本発明の範囲は、下記の特許請求の範囲において述べられる。
【図１】
2019518259.tif 000003
【図２】
2019518259.tif 000004
【図３Ａ】
2019518259.tif 000005
【図３Ｂ】
2019518259.tif 000006
【図３Ｃ】
2019518259.tif 000007
【図３Ｄ】
2019518259.tif 000008
【図３Ｅ】
2019518259.tif 000009
【図３Ｆ】
2019518259.tif 000010
【図４Ａ】
2019518259.tif 000011
【図４Ｂ】
2019518259.tif 000012
【図４Ｃ】
2019518259.tif 000013
【図５】
2019518259.tif 000014
【図６】
2019518259.tif 000015
【図７】
2019518259.tif 000016
【国際調査報告】
2019518259.tif 000017
2019518259.tif 000018