(57)【特許請求の範囲】
【請求項１】
ネットワークを通してメディアを伝送する方法において、該メディアは複数の画像を備え、以下のステップを含み、
ステップ（Ａ）：サーバー上でバーチャルリアリティー（ＶＲ）アプリケーションプログラムを執行し、複数の３Ｄモデルを含むバーチャルＶＲ３Ｄ環境を産生し、該各３Ｄモデルは、該３Ｄモデルを、ユーザーデバイス中にプレ保存するか否かの状態の指示に対応し、
ステップ（Ｂ）：該サーバーは、該各３Ｄモデルの前記状態をチェックし、どの３Ｄモデルを、２Ｄビデオストリーミングが含む左目フレーム及び右目フレームにエンコードするべきかを決定し、そのエンコード方式は、該ユーザーデバイス中にプレ保存されていない各３Ｄモデルを、該左目フレーム及び該右目フレーム中にエンコードし、
ステップ（Ｃ）：該サーバーは、該２Ｄビデオストリーミングフレームの左目フレーム及び右目フレームを、ネットワークを通して、該ユーザーデバイスに伝送し、該サーバーは、該ユーザーデバイス中にプレ保存されていない各３Ｄモデルを、所定の順序に基づき、該ユーザーデバイスに伝送し、該ユーザーデバイスが、該サーバーから送られて来た各３Ｄモデルを受け取ると、該ユーザーデバイスは、該各３Ｄモデルを保存し、メッセージを該サーバーに発信し、該各３Ｄモデルの状態を改変させ、該各３Ｄモデルを現在、該ユーザーデバイス中にプレ保存するよう指示し、
ステップ（Ｄ）：該ユーザーデバイスは、該サーバーからの左目フレーム及び右目フレームを受け取りデコードし、該左目フレーム及び右目フレームを利用し、該各ユーザーデバイス中にプレ保存されるが、該左目フレーム及び右目フレーム中に含まれない３Ｄモデルのバックグラウンドをレンダリングし、これによりアウトプットされるビデオストリーミングの混合ＶＲフレームを産生することを特徴とするネットワークを通してメディアを伝送し、
該ステップ（Ｄ）において、該ユーザーデバイスは、該サーバーから受け取った該左目フレーム及び該右目フレームをデコードした後、該ユーザーデバイスは、フレーム結合器により該左目フレーム及び該右目フレームを合成したＶＲフレームに合成し、その後、該合成したＶＲフレームを使用して該バックグラウント画面とし、ユーザーデバイス中にプレ保存されるが、該左目フレーム及び該右目フレーム中に含まれない３Ｄモデルをレンダリングし、これにより該ＶＲシーンを含む該アウトプットされる該混合ＶＲフレームを産生する方法。
【請求項２】
前記ステップ（Ｂ）において、該各３Ｄモデルの状態は、該サーバーにより、該バーチャル位置に最も近い点から、該バーチャル位置から最も遠いもう一つの点への順序で、チェックされ、
チェック中に、該ユーザーデバイス中にプレ保存されていない一個目の３Ｄモデルを発見すると、その後の各３Ｄモデルが、該ユーザーデバイス中にプレ保存されるか否かに関わらず、該発見された３Ｄモデルを含むすべての他の３Ｄモデルを、該左目フレーム及び右目フレーム中にエンコードすることを特徴とする請求項１に記載のネットワークを通してメディアを伝送する方法。
【請求項３】
前記新しい３Ｄモデルが前記３Ｄ環境中に出現すると、その後の各３Ｄモデルが、該ユーザーデバイス中にプレ保存されるか否かに関わらず、該新しい３Ｄモデルを含むその後のすべての３Ｄモデルを、該左目フレーム及び右目フレーム中にエンコードすることを特徴とする請求項２に記載のネットワークを通してメディアを伝送する方法。
【請求項４】
該バーチャル位置は、３Ｄプロジェクション面であり、該ユーザーデバイスは、それぞれユーザの左目および右目前方に位置する２つのスクリーンを含み、該アウトプットビデオストリーミング中に該混合ＶＲフレームは、以下で述べる方式でユーザーデバイスの２つのスクリーン上に再生、即ち、該混合したＶＲフレーム中の各ラインの左半分の各画素が該左目前方のスクリーンに表示され、該混合したＶＲフレーム中の各ラインの右半分の各画素が該右目前方のスクリーンに表示されるすることを特徴とする請求項２に記載のネットワークを通してメディアを伝送する方法。
【請求項５】
前記ステップ（Ｃ）において、該サーバーが、該ユーザーデバイス中にプレ保存されていない該各３Ｄモデルを、該ユーザーデバイスに伝送する所定順序は、該バーチャル位置に最も近い一点から、該バーチャル位置から最も遠いもう一つの点への順序で、
該ステップ（Ｃ）において、該サーバーは、該左目フレーム及び右目フレーム中にエンコードされていない３Ｄモデルの状態情報を、該ユーザーデバイス中に伝送し、該ユーザーデバイスが、該状態情報を受け取り及びチェックする時には、以下の方式に基づき行い、
受け取った該状態情報中の任意の３Ｄモデルが、該デバイス中にプレ保存されていないなら、該ユーザーデバイスは、該サーバーに、該３Ｄモデルをダウンロードするように請求を送信し、該状態情報は、該２Ｄビデオストリーミングの該左目フレーム及び右目フレーム中にエンコードされていない該３Ｄモデルの解釈データを含み、該各３Ｄモデルの該解釈データは、該３Ｄモデルの名称、位置、速度、ディレクション、及び属性を含むことを特徴とする請求項１に記載のネットワークを通してメディアを伝送する方法。
【請求項６】
ネットワークを通してメディアを伝送するシステムは、サーバー及びユーザーデバイスを備え、
該サーバーは、バーチャルリアリティー（ＶＲ）アプリケーションプログラムを執行し、複数の３Ｄモデルを含むバーチャルＶＲ３Ｄ環境を産生し、該各３Ｄモデルは、該３Ｄモデルを、ユーザーデバイス中にプレ保存するか否かを指示する状態に対応し、
該ユーザーデバイスは、ネットワークを通して該サーバーに連結し、該ＶＲアプリケーションプログラムにより産生する少なくともいくらかの該３Ｄモデルを含む該メディアを取得し、
該メディアは、複数の画像を含み、該複数の画像の伝送方式は、以下を含み、
ステップ（Ｂ）：該サーバーは、該各３Ｄモデルの前記状態をチェックし、どの３Ｄモデルを、２Ｄビデオストリーミングの左目フレーム及び右目フレームにエンコードするべきかを決定し、そのエンコード方式は、該ユーザーデバイス中にプレ保存されていない各３Ｄモデルを、該左目フレーム及び右目フレーム中にエンコードし、
ステップ（Ｃ）：該サーバーは、該２Ｄビデオストリーミングの該左目フレーム及び右目フレームを、ネットワークを通して、該ユーザーデバイスに伝送し、該サーバーは、該ユーザーデバイス中にプレ保存されていない各３Ｄモデルを、所定の順序に基づき、該ユーザーデバイスに伝送し、該ユーザーデバイスが、該サーバーから送られて来た各３Ｄモデルを受け取ると、該ユーザーデバイスは、該各３Ｄモデルを保存し、メッセージを該サーバーに発信し、該各３Ｄモデルの状態を改変させ、該各３Ｄモデルを現在、該ユーザーデバイス中にプレ保存するよう指示し、
ステップ（Ｄ）：該ユーザーデバイスは、該サーバーからの該左目フレーム及び右目フレームを受け取りデコードし、フレーム結合器によって該左目フレーム及び右目フレームフレームを合成したＶＲフレームに合成し、その後、該各ユーザーデバイス中にプレ保存されるが、該合成したＶＲフレームの該３Ｄモデル中に含まれないバックグラウンド画面をレンダリングし、これによりＶＲシーンを含むアウトプットされる混合ＶＲフレームを産生し、
ステップ（Ｅ）：該ユーザーデバイスは、該ＶＲシーンを含む該アウトプットされるビデオストリーミングの該混合ＶＲフレームをアウトプットすることを特徴とするネットワークを通してメディアを伝送するシステム。
【請求項７】
該ステップ（Ｂ）において、該各３Ｄ音声の状態は、該サーバーにより、該バーチャル位置に最も近い点から、該バーチャル位置から最も遠いもう一つの点への順序で、チェックされ、チェック中に、該ユーザーデバイス中にプレ保存されていない一個目の３Ｄモデルを発見すると、その後の各３Ｄモデルが、該ユーザーデバイス中にプレ保存されるか否かに関わらず、該発見された３Ｄモデルを含むすべての他の３Ｄモデルを、該左目フレーム及び右目フレーム中にエンコードすることを特徴とする請求項６に記載のネットワークを通してメディアを伝送するシステム。
【請求項８】
新しい３Ｄモデルが該ＶＲ３Ｄ環境中に出現すると、その後の各３Ｄモデルが、該ユーザーデバイス中にプレ保存されるか否かに関わらず、該新しい３Ｄモデルを含む他のすべての３Ｄモデルを、該左目フレーム及び右目フレーム中にエンコードすることを特徴とする請求項７に記載のネットワークを通してメディアを伝送するシステム。
【請求項９】
前記ステップ（Ｃ）において、該サーバーが、該ユーザーデバイス中にプレ保存されていない該各３Ｄモデルを、該ユーザーデバイスに伝送する所定順序は、該バーチャル位置に最も近い一点から、該バーチャル位置から最も遠いもう一つの点への順序で、
該ステップ（Ｃ）において、該サーバーはまた、該左目フレーム及び右目フレーム中にエンコードされていない３Ｄモデルの状態情報を、該ユーザーデバイス中に伝送し、該ユーザーデバイスが、該状態情報を受け取り及びチェックする時には、以下の方式に基づき行い、受け取った該状態情報中の任意の３Ｄモデルが、該デバイス中にプレ保存されていないなら、該ユーザーデバイスは該サーバーに、該３Ｄモデルをダウンロードするよう請求を送信し、該状態情報は、該左目フレーム及び右目フレーム中にエンコードされていない該３Ｄモデルの解釈データを含み、該各３Ｄモデルの該解釈データは、該３Ｄモデルの名称、位置、速度、ディレクション、及び属性を含むことを特徴とする請求項６に記載のネットワークを通してメディアを伝送するシステム。
【請求項１０】
前記サーバーは、ＶＲシーントランスミッター及びＶＲシーンサーバーをさらに備え、
該ＶＲシーントランスミッターは、該ＶＲアプリケーションプログラム中、或いは執行時間中において、該ＶＲアプリケーションプログラム上にプログラム執行時で動態的に連結されるプログラムライブラリーをコンパイルし、該ＶＲシーントランスミッターは、すべての３Ｄモデル及び各３Ｄモデルの状態を含むリストを保有し、該状態は、該３Ｄモデルの状態を“Not Ready （準備中）”、“Loading （ダウンロード中）”及び“Ready for Client（ユーザーはダウンロード済み）”の内の何れか一つで示しており、
該ＶＲシーンサーバーは、ＶＲアプリケーションプログラムにより、サーバー上で執行されるサーバープログラムで、該ＶＲシーンサーバーは、該ＶＲシーントランスミッターと該ユーザーデバイスとの間のメッセージ伝達の中継点となり、該ＶＲシーンサーバーはまた、該ユーザーデバイスが、該サーバーより、必要な３Ｄモデルをダウンロードするダウンロードサーバープログラムともなることを特徴とする請求項６に記載のネットワークを通してメディアを伝送するシステム。
【請求項１１】
前記ユーザーデバイスは、ＶＲシーンユーザーエンド、フレーム結合器及びＶＲシーンキャッシュをさらに備え、
該ＶＲシーンユーザーエンドは、該ユーザーデバイス上で動作するプログラムで、該アウトプットビデオストリーミングを産生し、ネットワークを通して該サーバーと通じ、
該ＶＲシーンキャッシュは、前以て該サーバーからダウンロードした少なくとも一個の該３Ｄモデルを保存することを特徴とする請求項１０に記載のネットワークを通してメディアを伝送するシステム。
【請求項１２】
ネットワークを通してメディアを伝送する方法において、該メディアは、複数の画像を含み、
該方法は、以下のステップを含み、
ステップ（Ａ）：サーバー上でバーチャルリアリティー（ＶＲ）アプリケーションプログラムを執行し、複数の３Ｄモデルを含むバーチャルＶＲ３Ｄ環境を産生し、該各３Ｄモデルは、該３Ｄモデルを、ユーザーデバイス中にプレ保存するか否かを指示する状態に対応し、
ステップ（Ｂ）：該サーバーは、該各３Ｄモデルの前記状態をチェックし、どの３Ｄモデルを、２Ｄビデオストリーミングの左目フレーム及び右目フレームにエンコードする必要があるかを決定し、そのエンコード方式は、該ユーザーデバイス中にプレ保存されない該各３Ｄモデルを、該２Ｄビデオストリーミングの該左目フレーム及び右目フレーム中にエンコードし、その後、該サーバは、フレーム結合器によって該左目フレーム及び右目フレームを、該２Ｄビデオストリーミングの合成したＶＲフレームに合成し、
ステップ（Ｃ）：該サーバーは、該２Ｄビデオストリーミングの該合成したＶＲフレームを、ネットワークを通して、該ユーザーデバイスに伝送し、該サーバーは、該ユーザーデバイス中にプレ保存されていない該各３Ｄモデルを、所定の順序に基づき、該ユーザーデバイスに伝送し、該ユーザーデバイスが、該サーバーから送られて来た該各３Ｄモデルを受け取ると、該ユーザーデバイスは、該各３Ｄモデルを保存し、メッセージを該サーバーに発信し、該各３Ｄモデルの状態を改変し、該各３Ｄモデルを現在該ユーザーデバイス中にプレ保存するよう指示し、
ステップ（Ｄ）：該ユーザーデバイスは、該サーバーから受け取った該２Ｄビデオストリーミングの該合成したＶＲフレームをデコードし、該合成したＶＲフレームを利用し、該各ユーザーデバイス中にプレ保存されるが、該合成したＶＲフレーム中に含まれない３Ｄモデルのバックグラウンド画面をレンダリングし、これによりＶＲシーンのアウトプットビデオストリーミングを含む混合ＶＲフレームを産生することを特徴とするネットワークを通してメディアを伝送する方法。
【請求項１３】
該ステップ（Ｂ）において、該各３Ｄモデルの状態は、該サーバーにより、バーチャル位置に最も近い一点から、該バーチャル位置から最も遠いもう一つの点への順序で、チェックされ、チェック中に、該ユーザーデバイス中にプレ保存されていない一個目の３Ｄモデルを発見すると、その後の各３Ｄモデルが、該ユーザーデバイス中にプレ保存されるか否かに関わらず、該発見された３Ｄモデルの他のすべての３Ｄモデルを、該２Ｄビデオストリーミングの該左目フレーム及び右目フレーム中にエンコードし、
該ステップ（Ｃ）において、該サーバーはまた、該各ユーザーデバイス中にプレ保存されていない３Ｄモデルを、該バーチャル位置に最も近い一点から、該バーチャル位置から最も遠いもう一つの点への所定順序で、該ユーザーデバイス中に伝送し、該ユーザーデバイスが該サーバーから送られて来た該各３Ｄモデルを受け取ると、該ユーザーデバイスは、該各３Ｄモデルを保存し、メッセージを該サーバーに発信し、該各３Ｄモデルの状態を改変し、該各３Ｄモデルを現在該ユーザーデバイス中にプレ保存するよう指示することを特徴とする請求項１２に記載のネットワークを通してメディアを伝送する方法。
【請求項１４】
前記新しい３Ｄモデルが該ＶＲ３Ｄ環境中に出現すると、その後の該各３Ｄモデルが該ユーザーデバイス中にプレ保存されているか否かに関わらず、該新しい３Ｄモデルの後を含むすべての３Ｄモデルを、該左目フレーム及び右目フレーム中にエンコードし、該バーチャル位置は、３Ｄプロジェクション面であることを特徴とする請求項１３に記載のネットワークを通してメディアを伝送する方法。
【請求項１５】
前記ステップ（Ｃ）において、該サーバーは、該左目フレーム及び右目フレーム中にエンコードされていない３Ｄモデルの状態情報を、該ユーザーデバイス中に伝送し、該ユーザーデバイスが、該状態情報を受け取り及びチェックする時には、以下の方式に基づき行い、受け取った該状態情報中の任意の３Ｄモデルが、該デバイス中にプレ保存されていないなら、該ユーザーデバイスは、該サーバーに、該３Ｄモデルをダウンロードするように請求を送信し、該状態情報は、該２Ｄビデオストリーミングの該左目フレーム及び右目フレーム中にエンコードされていない該３Ｄモデルの解釈データを含み、該解釈データは、該３Ｄモデルの名称、位置、速度、ディレクション、及び属性を含むことを特徴とする請求項１２に記載のネットワークを通してメディアを伝送する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークを通して画像や音声等メディアを伝送するシステム及び方法に関し、特に、ユーザーデバイス上でバーチャルリアリティー(Virtual-Reality)（この後、“ＶＲ”と略称する）画像の３Ｄオブジェクトをレンダリングする方法で、同方法はユーザーデバイスが３Ｄオブジェクトをレンダリングし、サーバーが提供するＶＲシーンの２Ｄビデオストリーミングを結合する、ネットワークを通してメディアを伝送するシステム及び方法に関する。
【背景技術】
【０００２】
この数年間、オンラインゲームは世界のトレンドとなっている。クラウドコンピューティング関連システムとテクノロジーの発展に従い、ストリーミングサーバを利用したゲームコンテンツやサービスを提供する技術も現れている。
【０００３】
従来のクラウドゲームサービスを提供する方法は、サーバーによりほとんどすべての演算を行う。つまり、クラウドゲームサービスを提供するには、該サーバーは多数の参加者により移動或いはコントロールできる３Ｄオブジェクトを含むバーチャル３Ｄ環境を作らなければならない。従来の技術において、これら３Ｄオブジェクトは音声効果を備える。 後の参加者（プレーヤー）のコントロール動作に基づき、該サーバーはバーチャル３Ｄ環境と３Ｄオブジェクトとを結合し、ゲーム機のスクリーン上に、立体音声を備える２Ｄゲームをレンダリングする。
続いて、該サーバーは、レンダリング後の画像と立体音声を、音声を備える２Ｄビデオストリーミングとして、ネットワークを通してプレーヤーのデバイス上に伝送する。プレーヤーデバイスはそれを受け取った後、デコードと該２Ｄビデオストリーミングを表示するだけで、余計な３Ｄレンダリング演算を行う必要はない。
しかしながら、同一サーバーにおいて、多くのプレーヤーがレンダリング演算を行う伝統技術では、３Ｄレンダリング演算を執行するサーバーの負荷が過大になってしまう。この他、プレーヤーが目にする画面はすべて、破壊的圧縮を経た２Ｄビデオストリーミング形式で伝送されるため、画像であろうと音声であろうと、その品質はもともとの３Ｄオブジェクトの品質とは差がある。しかも、サーバーとプレーヤーデバイス間の大量のネットワーク通信帯域幅も大きな問題となる。
【０００４】
バーチャルリアリティー(Virtual-Reality)（この後、“ＶＲと略称する）技術は、近年流行している。人の眼にＶＲの視覚的体験を提供するために、バーチャルなＶＲシーンには、人の左目だけが見る画像と、人の右目だけが見る画像とが含まれなければならない。本発明が提供するネットワークを通して画像や音声等メディアを伝送するシステム及び方法は、ユーザーデバイス上で３Ｄオブジェクトをレンダリングし、サーバーが提供するＶＲシーンの２Ｄビデオストリーミングを結合する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−１３０１６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、サーバーの負荷を低下させ、ユーザーデバイス上に表示される画像と音声の品質を高め、サーバーとユーザーデバイス間の通信帯域幅を節減し、ユーザーデバイスにおいて３Ｄオブジェクト（３Ｄモデルとも称する）をレンダリングし、サーバーが提供するＶＲシーンの２Ｄビデオストリーミングとを結合させ、ユーザーデバイス上でレンダリングするバーチャルリアリティー(Virtual-Reality:VR)画像の３Ｄオブジェクトの結果を得る、ネットワークを通して画像や音声等メディアを伝送するシステム及び方法を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明は下記のネットワークを通してメディアを伝送するシステム及び方法を提供する。ネットワークを通してメディアを伝送するシステム及び方法において、メディアは複数の画像を備え、このシステムは、サーバー及びユーザーデバイスを備え、この方法は、以下のステップを含み、ステップ（Ａ）：サーバー上でバーチャルリアリティー（ＶＲ）アプリケーションプログラムを執行し、複数の３Ｄモデルを含むバーチャルＶＲ３Ｄ環境を産生し、各３Ｄモデルは、３Ｄモデルを、ユーザーデバイス中にプレ保存するか否かの状態の指示に対応し、ステップ（Ｂ）：サーバーは、各３Ｄモデルの前記状態をチェックし、どの３Ｄモデルを、２Ｄビデオストリーミングが含む左目フレーム及び右目フレームにエンコードするべきかを決定し、そのエンコード方式は、ユーザーデバイス中にプレ保存されていない各３Ｄモデルを、左目フレーム及び右目フレーム中にエンコードし、ステップ（Ｃ）：サーバーは、２Ｄビデオストリーミングフレームの左目フレーム及び右目フレームを、ネットワークを通して、ユーザーデバイスに伝送し、サーバーは、ユーザーデバイス中にプレ保存されていない各３Ｄモデルを、所定の順序に基づき、ユーザーデバイスに伝送し、ユーザーデバイスが、サーバーから送られて来た各３Ｄモデルを受け取ると、ユーザーデバイスは、各３Ｄモデルを保存し、メッセージをサーバーに発信し、各３Ｄモデルの状態を改変させ、各３Ｄモデルを現在、ユーザーデバイス中にプレ保存するよう指示し、ステップ（Ｄ）：ユーザーデバイスは、サーバーからの左目フレーム及び右目フレームを受け取りデコードし、左目フレーム及び右目フレームを利用し、各ユーザーデバイス中にプレ保存されるが、左目フレーム及び右目フレーム中に含まれない３Ｄモデルのバックグラウンドをレンダリングし、これによりアウトプットされるビデオストリーミングの混合ＶＲフレームを産生する。
【０００８】
一実施形態中のステップ（Ｄ）において、ユーザーデバイスは、サーバーからの左目フレーム及び右目フレームを受け取りデコードし、左目フレーム及び右目フレームフレームを合成したＶＲフレームに合成し、その後、合成したＶＲフレームがバックグラウンド画面としてユーザーデバイス中にプレ保存されているが、左目フレーム及び右目フレーム中に含まれない３Ｄモデルをレンダリングし、これによりＶＲシーンを含む出力ビデオストリーミングの混合ＶＲフレームを産生する。
【０００９】
一実施形態中の前記サーバーは、ＶＲシーントランスミッター及びＶＲシーンサーバーをさらに備え、ＶＲシーントランスミッターは、ＶＲアプリケーションプログラム中、或いは執行時間中において、ＶＲアプリケーションプログラム上にプログラム執行時で動態的に連結されるプログラムライブラリーをコンパイルし、ＶＲシーントランスミッターは、すべての３Ｄモデル及び各３Ｄモデルの状態を含むリストを保有し、状態は、３Ｄモデルの状態を“Not Ready （準備中）”、“Loading （ダウンロード中）”及び“Ready for Client（ユーザーはダウンロード済み）”の内の何れか一つで示しており、ＶＲシーンサーバーは、ＶＲアプリケーションプログラムにより、サーバー上で執行されるサーバープログラムで、ＶＲシーンサーバーは、ＶＲシーントランスミッターとユーザーデバイスとの間のメッセージ伝達の中継点となり、ＶＲシーンサーバーはまた、ユーザーデバイスが、サーバーより、必要な３Ｄモデルをダウンロードするダウンロードサーバープログラムともなる。
【００１０】
一実施形態中の前記ユーザーデバイスは、ＶＲシーンユーザーエンド、フレーム結合器及びＶＲシーンキャッシュをさらに備え、ＶＲシーンユーザーエンドは、ユーザーデバイス上で動作するプログラムで、アウトプットビデオストリーミングを産生し、ネットワークを通してサーバーと通じ、フレーム結合器は、左目フレーム及び右目フレームを、合成したＶＲフレームに合成し、ＶＲシーンキャッシュは、前以てサーバーからダウンロードした少なくとも一個の３Ｄモデルを保存する。
【図面の簡単な説明】
【００１１】
【図１】本発明一実施形態によるネットワークを通してメディアを伝送するシステムの模式図である。
【図２】本発明一実施形態によるネットワークを通してメディアを伝送するシステムの構成を示す模式図である。
【図３Ａ】本発明一実施形態によるネットワークを通してメディアを伝送する方法のフローチャートである。
【図３Ｂ】本発明の別種の実施形態によるネットワークを通してメディアを伝送する方法のフローチャートである。
【図４Ａ】本発明方法において、いかにしてビデオストリーミング及び３Ｄモデルを伝送するかを示す一実施形態の模式図である。
【図４Ｂ】本発明方法において、いかにしてビデオストリーミング及び３Ｄモデルを伝送するかを示す一実施形態の模式図である。
【図４Ｃ】本発明方法において、いかにしてビデオストリーミング及び３Ｄモデルを伝送するかを示す一実施形態の模式図である。
【図５Ａ】本発明方法において、どの３Ｄモデルがフレームにエンコードされるべきかをいかにして決定するかを示す実施形態の模式図である。
【図５Ｂ】本発明方法において、どの３Ｄモデルがフレームにエンコードされるべきかをいかにして決定するかを示す実施形態の模式図である。
【図５Ｃ】本発明方法において、どの３Ｄモデルがフレームにエンコードされるべきかをいかにして決定するかを示す実施形態の模式図である。
【図６Ａ】本発明方法において、音声を備えるビデオストリーミング及び３Ｄ音声をいかにして伝送するかを示す実施形態の模式図である。
【図６Ｂ】本発明方法において、音声を備えるビデオストリーミング及び３Ｄ音声をいかにして伝送するかを示す実施形態の模式図である。
【図６Ｃ】本発明方法において、音声を備えるビデオストリーミング及び３Ｄ音声をいかにして伝送するかを示す実施形態の模式図である。
【図７Ａ】本発明方法において、どの３Ｄ音声が音声を備えるビデオストリーミングフレームにエンコードされるべきかをいかにして決定するかを示す一実施形態の模式図である。
【図７Ｂ】本発明方法において、どの３Ｄ音声が音声を備えるビデオストリーミングフレームにエンコードされるべきかをいかにして決定するかを示す一実施形態の模式図である。
【図７Ｃ】本発明方法において、どの３Ｄ音声が音声を備えるビデオストリーミングフレームにエンコードされるべきかをいかにして決定するかを示す一実施形態の模式図である。
【図８】本発明の第１実施形態によるバーチャルリアリティー（ＶＲ）シーンシステムのシステムアーキテクチャを示す模式図である。
【図９】本発明一実施形態によるバーチャルリアリティー（ＶＲ）シーンシステムのフレーム結合器の機能を説明する模式図である。
【図１０】本発明の第２実施形態によるバーチャルリアリティー（ＶＲ）シーンシステムのシステムアーキテクチャを示す模式図である。
【図１１】本発明の第３実施形態によるバーチャルリアリティー（ＶＲ）シーンシステムのシステムアーキテクチャを示す模式図である。
【発明を実施するための形態】
【００１２】
以下に図面を参照しながら本発明を実施するための最良の形態について詳細に説明する。
【実施例】
【００１３】
本発明はオンラインゲームに運用され、プレーヤーはユーザーデバイスを使用し、ネットワークを通して、サーバー上でゲームを行う。このサーバーはプレーヤーの指令に基づき動作し、ユーザーデバイス上でビデオを生じる。
例えば、あるプレーヤーがユーザーデバイスでアクションを採ると、この動作はサーバーデバイスに伝送され、それは画像を演算し、画像をユーザーデバイスに回送する。多くのオンラインゲームにおいて、サーバーが生じる２Ｄ画像は、視線範囲内の他のオブジェクトの３Ｄレンダリング（Rendering）を含む。
【００１４】
本発明は、サーバーにより、ユーザーデバイスが必要とする３Ｄモデル及び３Ｄ音声を提供し、サーバーとユーザーデバイスとの間で、視線範囲内にあるオブジェクトの３Ｄレンダリング解析を行う。例えば、サーバーはいくらか或いはすべての３Ｄモデル及び３Ｄ音声をユーザーデバイスに提供し、並びに各３Ｄモデル或いは３Ｄ音声は位置、ディレクション及び状態データ等の関連する解釈データを付帯する。
【００１５】
ゲームの初期には、ユーザーデバイス上でゲームと関連するすべての画像（包括関連する３Ｄレンダリング）は、ネットワークを通してサーバーにより制作され、立体音声を備える２Ｄビデオストリーミングとなる。本発明のシステム、ネットワークを通して、視線範囲内において、３Ｄモデル及び３Ｄ音声等のメディア及びそのレンダリング情報をユーザーデバイスに送るが、その際、比較的近い（目に近い）オブジェクトは優先的に送られる。本発明システムはできるだけユーザーデバイス上で、３Ｄモデル及び３Ｄ音声のレンダリングを行い、次善の策として、サーバー上で、３Ｄモデル或いは３Ｄ音声等のレンダリングを行う。
【００１６】
３Ｄモデル或いは３Ｄ音声がユーザーデバイス上に既に保存されているなら、サーバーはオブジェクト（３Ｄモデル或いは３Ｄ音声）の解釈データをユーザーデバイスに提供するだけでよい。ユーザーデバイスはこれに基づきこれらオブジェクトをレンダリングし、結果を、サーバーが提供する任意の立体音声を備える２Ｄビデオの上に表示する。ユーザーデバイスの要求でない限り、サーバーはこの３Ｄモデル及び３Ｄ音声をレンダリングしない。
本発明方法のこのアレンジにより、サーバー上のＧＰＵ演算を省くことができ、サーバーは３Ｄモデル及び３Ｄ音声を含むアクティブデータベースを維持し、使用者との通信の効果を高めることができる。
【００１７】
本発明において、ユーザーデバイスが示すものは以下の組合せを含む。（Ａ）サーバー上レンダリングの３Ｄシーン。結果は立体音声を備える２Ｄビデオストリーミングの形式で、ユーザーエンドに伝送し、ユーザーデバイスにより再生され、及び（Ｂ）サーバー上よりダウンロードされて、ユーザーデバイス上に保存される。ユーザーデバイスにより自らレンダリングする３Ｄモデル及び３Ｄ音声の結果。この立体音声を備える２Ｄビデオストリーミングとユーザーデバイス上レンダリングの３Ｄモデル及び３Ｄ音声の混合は、帯域幅占用の状況を低下させられるため、カラフルな３Ｄシーン及び感動的なサラウンド音声効果を作り出すことができる。
【００１８】
一実施形態において、ユーザーデバイスへと伝送する立体音声を備える２Ｄビデオストリーミングは、３Ｄモデル及び３Ｄ音声の解釈データを付帯し、ユーザーデバイスは、自分がこの３Ｄモデル及び３Ｄ音声を保存しているかどうかをチェックする。ないなら、ユーザーデバイスは、必要とする３Ｄモデル及び３Ｄ音声を、サーバーよりダウンロードし、ダウンロード後、ユーザーデバイスは、これを保存し、データリストを作り、シーン再現の必要に備える。
こうして、ビデオストリーミングのディレイと大量の帯域幅が必要であるという問題を改善し、しかもユーザーデバイスエンドにより自らレンダリングすることで、より良い質の画像を得ることができる（ビデオ圧縮を経ていないため）。
【００１９】
前記の解釈データは、ユーザーデバイスが任意の３Ｄモデル或いは３Ｄ音声を遺漏しない、或いは繰り返さないことを許す状況において、ユーザーデバイスエンドが、３Ｄモデル及び３Ｄ音声によりレンダリングした結果と、サーバーが提供する立体音声を備える２Ｄビデオストリーミングとを正確に混合する。
前記のように、ユーザーデバイスが必要なすべての３Ｄモデル及び３Ｄ音声を保存後、ユーザーデバイスは完璧な３Ｄシーン及び音声を再現することができる。この時、サーバーは、新しく加わり、ユーザーデバイスエンドが未保存の新しい３Ｄモデル或いは３Ｄ音声が出現するまで、一切のレンダリングを行う必要がない。新しい３Ｄモデルが出現すると、サーバーは、ユーザーデバイスが自らこの新しい３Ｄモデルをレンダリングするまで、この新しい３Ｄモデル及びその後のすべてのオブジェクトをレンダリングする。この他、新しい３Ｄ音声が出現すると、ユーザーデバイスエンドが運用できるまで、サーバーは、この３Ｄ音声をレンダリングする。
【００２０】
ユーザーデバイスは、後に執行する時に再ダウンロードする必要がないよう、できるだけ自己の保存デバイス上にダウンロードした３Ｄモデル及び３Ｄ音声を保存（キャッシュ）する。こうして、ネットワークの帯域幅コストはさらに引き下げられ、もし保存できないなら、ダウンロードとレンダリングは執行時に完成させる。
【００２１】
図１は、本発明ネットワークを通してメディアを伝送するシステムの一実施形態の模式図である。サーバー１は、サービスを提供するアプリケーションプログラムを執行し、このサービスは（これに制限されない）クラウドオンラインゲームサービスである。複数のユーザーデバイス２１、２２、２３はネットワーク４を通してサーバー１に連結（ログイン）し、サーバー１上で動作されるアプリケーションプログラムが提供するサービスを使用する。
本実施形態中では、ネットワーク４はインターネットで、ユーザーデバイス２１、２２、２３はインターネットに接続可能な任意の電子デバイスである。それは、例えばスマートフォン２１、タブレット、ノート型コンピューター２２、デスクトップコンピューター２３、ビデオゲーム機、或いはスマートテレビ等（これに制限されない）。ユーザーデバイス２１、２２の中には、モバイルアクセスポイントを通して、無線でネットワーク４に連結するものもおり、ユーザーデバイス則ルーターを通して、有線の方式で、ネットワーク４上に連結するものもいる。
サーバー１上で動作されるアプリケーションプログラムは、複数の３Ｄモデル及び３Ｄ音声を含むバーチャル３Ｄ環境を作り出すことができる。各３Ｄモデル或いは３Ｄ音声は状態を対応させ、３Ｄモデル或いは３Ｄ音声に、ユーザーデバイス２１、２２、２３中にプレ保存するか否かを指示する。
本発明の一実施形態中において、各ユーザーデバイスはどれも、対応する独立アプリケーションプログラムを有し、アプリケーションプログラムはユーザーデバイスにだけサービスを提供する。但し、多数のアプリケーションプログラムは、同時に同一のサーバー上においてサービスを執行し、多数のユーザーデバイスに提供することができる。図に示すように、ユーザーデバイス２１、２２、２３はネットワーク４を通してサーバー１に連結し、アプリケーションプログラムにより生じ、しかも少なくとも一個の各３Ｄモデル及び３Ｄ音声を含むメディアを得ることができる。このシステム構成とその特徴は、図２及び関連する記載に示す。
【００２２】
図２は本発明システム構成の一実施形態の模式図である。
【００２３】
本発明において、アプリケーションプログラム１００は、サーバー１上で動作し、３Ｄ画像３Ｄ音声のレンダリング結果を生じ、それは通常３Ｄゲームである。３Ｄシーントランスミッター１１０はプログラムライブラリー（library）では、アプリケーションプログラム１００のコンパイル時に、これと非稼働状態で静的に連結する静的連結し、或いはアプリケーションプログラム１００の執行時に動態状態、すなわち稼働状態で連結する動態連結(Dynamic Linking)にする。３Ｄシーンユーザーエンド（プログラム）１７０は、ユーザーデバイス２１、２２、２３上で執行するプログラムにおいて、アプリケーションプログラム１００により生成される３Ｄ画像及び３Ｄ音声レンダリング結果を産生してアウトプットする。本実施形態中では、各ユーザーデバイス２１、２２、２３は、それぞれ独立したアプリケーションプログラム１００及びシーントランスミッター１１０に対応する。
【００２４】
本発明において、３Ｄシーンユーザーエンド１７０及び３Ｄシーンキャッシュ１９０は、ユーザーエンドのプログラムと執行方法を組成し、ユーザーデバイスそのものレンダリング３Ｄモデルと３Ｄ音声の演算能力を発揮する。
【００２５】
３Ｄシーンサーバー１２０は、アプリケーションプログラム１００と共同でサーバー１上で執行するサーバープログラムで、サーバー１の３Ｄシーントランスミッター１１０とし、ユーザーデバイス２１、２２、２３の３Ｄシーンユーザーエンド１７０との間で、メッセージ伝達の中継点とする。
同時に、ファイルダウンロードサーバーでもあり、ユーザーデバイス２１、２２、２３の３Ｄシーンユーザーエンド１７０は、サーバー１から必要な３Ｄモデル及び３Ｄ音声をダウンロードする。３Ｄシーントランスミッター１１０はリストを保有し、すべての３Ｄモデル及び３Ｄ音声、及びモデル或いは音声の状態を列記する。この状態は、各３Ｄモデル或いは３Ｄ音声の状態を（１）“Not Ready （準備中）”、（２）“Loading （ダウンロード中）”、及び（３）“Ready for Client（ユーザーはダウンロード済み）”の内の何れか一つで示している。
【００２６】
アプリケーションプログラム１００のメインプログラム、ＡＰＩにより呼び出すプログラムライブラリーの方式（図２のルート１０１）を通して、３Ｄシーン情報を３Ｄシーントランスミッター１１０に伝送する。この３Ｄシーン情報は、名称、位置、速度、属性、ディレクション及びその他３Ｄモデル及び３Ｄ音声レンダリングが必要とする全てのデータを含む。３Ｄシーントランスミッター１１０がこのタイプのデータを受け取ると、以下のプロセスを執行することができる。
【００２７】
ステップ（Ａ）：３Ｄモデルにおいては、レンダリングが必要なすべての３Ｄモデルを配列させ、その配列方式は、バーチャル位置（３Ｄプロジェクション面或いは使用者の目など）に対して、近くから遠くへと配列する。
【００２８】
３Ｄ音声においては、レンダリングが必要なすべての３Ｄ音声を配列させ、その配列方式は、バーチャル位置（３Ｄプロジェクション面或いは使用者の目など）に対して、近くから遠くへと配列する。
【００２９】
ある状況において、３Ｄシーン中の３ＤモデルＡは、もう一つの３ＤモデルＢを含み、或いはその上に重なる。例えば、モデルＡは家で、モデルＢは家の中のテーブルで、この状況において、どのモデルが、模擬位置に近いかは実は曖昧な問題である。この時、モデルＡ及びモデルＢは、同一の３Ｄモデルと見做され、３Ｄモデル（Ａ＋Ｂ）と呼ばれる。
【００３０】
シーンに対する既知の情報のいくらかは、ゲーム中の地面などの補助配列に用いられ、他の３Ｄオブジェクト下の大きくてフラットな３Ｄモデルと見做される。通常、使用者の目は地面より高いため、地面の３Ｄモデルは、配列中で特別処理が必要で、これにより他の３Ｄモデルの前に表示されないようにする。
【００３１】
ステップ（Ｂ）：３Ｄモデルにおいて、最も近い点（目に最も近い点）から”Ready for Client”状態を備えない一個目の３Ｄモデル“Ｍ”を探す。言い換えれば、一個目の３Ｄモデル“Ｍ”の状態は”Not Ready”状態（この後、”Not Ready”状態はＮＲ状態と略称する）である。当然、このタイプの３Ｄモデルが存在しない可能性もある（例えば、表示されているすべての３Ｄモデルが“Ready for Client”状態と標示されている）。
【００３２】
３Ｄ音声において、最も近い点（目に最も近い点）から、一個目の”Ready for Client”状態を備えない３Ｄ音声“Ｓ”を探す。言い換えれば、一個目の３Ｄ音声“Ｓ”の状態は”Not Ready”状態（この後、”Not Ready”状態はＮＲ状態と略称する）である。当然、このタイプの３Ｄ音声が存在しない可能性もある（例えば、表示された３Ｄ音声のすべてが、“Ready for Client”状態と標示されている）。
【００３３】
ステップ（Ｃ）：３Ｄモデルにおいて、サーバーは３ＤモデルＭ及びその後のすべての３Ｄモデル（つまり目からの距離がＭより遠いすべての３Ｄモデル）をレンダリングし、（もし３ＤモデルＭがないなら、黒幕により表示する）レンダリング後の結果を、２Ｄ  ビデオストリーミングフレーム（frame）にエンコードする。
【００３４】
３Ｄ音声において、サーバー１上で、”Ready for Client”状態を備えないすべての３Ｄ音声をレンダリング（再生）する（もしこのタイプの３Ｄ音声がないなら、靜音を生じる）。続いて、レンダリング後の結果を、ステップ（Ｃ）中の２Ｄビデオストリーミングフレームを備える立体音声にエンコードする。注意：３ＤモデルＳ後に続く３Ｄ音声は、その状態が”Ready for Client”でない時にのみ、レンダリングされ、これはステップ（Ｃ）中の３Ｄモデルと異なる。
【００３５】
ステップ（Ｄ）：以下の６個の情報を３Ｄシーンサーバー１２０（ルート１１２）に伝送する：［Ｉｎｆｏ １１２−Ａ］、［Ｉｎｆｏ １１２−Ｂ］、［Ｉｎｆｏ １１２−Ｃ］、［Ｉｎｆｏ １１２−Ｄ］、［Ｉｎｆｏ １１２−Ｅ］及び［Ｉｎｆｏ １１２−Ｆ］。３Ｄシーンサーバー１２０は、以上の情報を、３Ｄシーンユーザーエンド１７０（ルート１２２）に伝送する。
【００３６】
［Ｉｎｆｏ １１２−Ａ］は３ＤモデルＭ前のすべての３Ｄモデルの状態情報（或いは解釈データと呼ぶ）である。このタイプモデルは存在しない可能性もあることに注意する必要がある。このタイプのモデルはどれも、“Ready for Client”状態を備える。その意味は、これらモデルは既にユーザーエンドデバイスに予めダウンロードされているということで、ユーザーエンドデバイス２１、２２、２３上面の３Ｄシーンユーザーエンド（プログラム）１７０は、これらモデルを既に自らレンダリングすることができる。データ伝送の帯域幅は減らすため、３Ｄシーントランスミッター１１０は全部の状態情報を伝送する必要はなく、状態情報中の今回のレンダリングと前回のレンダリングとの差異を伝送するだけでよい。
【００３７】
［Ｉｎｆｏ １１２−Ｂ］もしサーバーが３ＤモデルＭを見つけ、しかもそのユーザーデバイスが予め保存した状態が“Not Ready（準備中）”である時、サーバーは、そのユーザー状態を“Loading（ダウンロード中）”に変え、３ＤモデルＭのダウンロード指示を送信し、ユーザーエンドに、この３ＤモデルＭをダウンロードするよう要求する。もしユーザー状態が既に“Loading”なら、ダウンロード指示は既に送信されているので、一切の指示を送信してはならない。
【００３８】
［Ｉｎｆｏ １１２−Ｃ］はステップ（Ｃ）中のエンコード後のビデオストリーミングフレームである。
【００３９】
［Ｉｎｆｏ １１２−Ｄ］はすべての状態が”Ready for Client”である３Ｄ音声（このタイプの３Ｄ音声は存在しない可能性もある）の状態情報（或いは解釈データと称する）を指す。このタイプの音声タイプはすべて“Ready for Client”状態を備える。つまり、これら音声は既にユーザーエンドデバイスに予めダウンロードされていることを示し、ユーザーエンドデバイス２１、２２、２３上面の３Ｄシーンユーザーエンド（プログラム）１７０は、既に自らこれら音声をレンダリング（再生）することができる。データ伝送帯域幅を減らすため、３Ｄシーントランスミッター１１０は、全部の状態情報を伝送する必要はなく、状態情報中の今回のレンダリングと前回のレンダリングとの差異を伝送するだけでよい。
【００４０】
［Ｉｎｆｏ  １１２−Ｅ］もしサーバーが３Ｄ音声Ｓを見つけ、しかもそのユーザー状態が“Not Ready”であるなら、そのユーザー状態を“Loading”に変え、３Ｄ音声Ｓのダウンロード指示を送信し、ユーザーエンドに、この３Ｄ音声Ｓをダウンロードするよう要求する。ユーザー状態が既に“Loading”なら、ダウンロード指示は既に送信されているので、一切の指示を送信してはならない。
【００４１】
［Ｉｎｆｏ １１２−Ｆ］はステップ（Ｃ）中のエンコード後の立体音声である。
【００４２】
アプリケーションプログラム１００のメインプログラムが、新しい３Ｄシーンデータを、３Ｄシーントランスミッター１１０に更新する度に、ステップ（Ａ）〜（Ｄ）を繰り返す。通常、アプリケーションプログラム１００のメインプログラムは、毎回のレンダリング中でこのタイプのデータを更新する。
【００４３】
３Ｄシーンユーザーエンド１７０が前記データを受け取った後、後述のレンダリングプロセスを行う。
【００４４】
ステップ（ｉ）：［Ｉｎｆｏ １１２−Ｃ］のビデオフレームをデコードし、このフレームを後続の３Ｄモデルレンダリングのバックグラウンドとして使用する。この他、［Ｉｎｆｏ １１２−Ｆ］ビデオを備える立体音声をデコードし、後続の３Ｄ音声レンダリングのバックグラウンド音声として使用する。
【００４５】
ステップ（ｉｉ）：ステップ（ｉ）でエンコード後のビデオフレーム上で［Ｉｎｆｏ １１２−Ａ］中のすべての３Ｄモデルをレンダリングし、ネットワーク帯域幅の占用を低下させる。３Ｄシーンユーザーエンド１７０は、この［Ｉｎｆｏ １１２−Ａ］情報をメモリ中に保存する。よって、次の３Ｄシーントランスミッター１１０は、次のレンダリングと今回のレンダリングとの状態［Ｉｎｆｏ １１２−Ａ］の差異だけを伝送すればよく、全部の状態情報を伝送する必要はない。
同様に、［Ｉｎｆｏ １１２−Ｄ］に属するすべての３Ｄ音声をレンダリングする時には、これをステップ（ｉ）中デコードの立体音声に混合し、ネットワーク帯域幅の占用を低下させる。３Ｄシーンユーザーエンド１７０は、この［Ｉｎｆｏ １１２−Ｄ］情報をメモリ中に保存するため、次の３Ｄシーントランスミッター１１０は、次のレンダリングと今回のレンダリングとの間の状態［Ｉｎｆｏ １１２−Ｄ］の差異を伝送するだけでよく、全部の状態情報を伝送する必要はない。
【００４６】
ステップ（ｉｉｉ）：ステップ（ｉｉ）中において、サーバーから伝送される立体音声を備えるビデオフレームと３Ｄシーンユーザーエンド１７０が自らレンダリングした３Ｄモデルと３Ｄ音声とを混合し、両者の混合結果をアウトプットし、音声を備えるアウトプットビデオストリーミング（ルート１７６）とする。
【００４７】
もし、［Ｉｎｆｏ １１２−Ｂ］の状態を提供するなら、３Ｄシーンユーザーエンド１７０は、以下のプロセスに基づき、３ＤモデルＭを処理する。
【００４８】
ステップ（Ｉ）：３Ｄシーンキャッシュ１９０を探し（ルート１７４）、３Ｄシーンキャッシュ１９０は前以てユーザーデバイス２１、２２、２３中にダウンロード及び保存していた３Ｄモデルデータベースを含む。
【００４９】
ステップ（ＩＩ）：もし３Ｄシーンキャッシュ１９０中に、既に３ＤモデルＭがあるなら、ステップ（Ｖ）を執行する。
【００５０】
ステップ（ＩＩＩ）：もし３Ｄシーンキャッシュ１９０中に、３ＤモデルＭがないなら、３Ｄシーンユーザーエンド１７０は、ダウンロード要求を、３Ｄシーンサーバー１２０に送信する（ルート１７２）。３Ｄシーンサーバー１２０は、３ＤモデルＭのデータを、３Ｄシーンユーザーエンド１７０に回送する（ルート１２４）。
【００５１】
ステップ（ＩＶ）：３Ｄモデルの完全ダウンロード後、３Ｄシーンユーザーエンド１７０は、これを３Ｄシーンキャッシュ１９０保存し（ルート１９４）、これにより次に類似の要求があった時には、再度のダウンロードを行う必要はない。
【００５２】
ステップ（Ｖ）：３Ｄシーンユーザーエンド１７０は、３Ｄシーンキャッシュ１９０中から３ＤモデルＭを取り出す（ルート１９２）。
【００５３】
ステップ（ＶＩ）：ダウンロードが完成（或いは前以てダウンロード済み）すると、３Ｄシーンユーザーエンド１７０は、３ＤモデルＭを取り出すことができる。３Ｄシーンユーザーエンド１７０は、“３Ｄ  Model is ready on client（３Ｄモデルは既にユーザーデバイス上）”のメッセージを、３Ｄシーンサーバー１２０に伝送する（ルート１１３）。３Ｄシーンサーバー１２０は、このメッセージを３Ｄシーントランスミッター１１０に転送する（ルート１１４）。
【００５４】
ステップ（ＶＩＩ）：３Ｄシーントランスミッター１１０がこのメッセージを受け取り後、３ＤモデルＭの状態を、”Loading”から“Ready for Client”に変える。
【００５５】
ステップ（ＶＩＩＩ）：次のレンダリングにおいて、３Ｄシーントランスミッター１１０は、３ＤモデルＭが既にユーザーデバイス中にダウンロードされていることを知っているため、故３Ｄシーンユーザーエンド１７０に自らレンダリングさせる。よって、サーバー１は、この３ＤモデルＭを、再度レンダリングする必要はない。
【００５６】
もし、［Ｉｎｆｏ １１２−Ｅ］の状態を提供するなら、３Ｄシーンユーザーエンド１７０は、以下のプロセスに従い、３Ｄ音声Ｓを準備する（前記の［Ｉｎｆｏ  １１２−Ｂ］に関する記述に類似）。
【００５７】
ステップ（Ｉ）：３Ｄシーンキャッシュ１９０を探し（ルート１７４）、３Ｄシーンキャッシュ１９０は、前以てユーザーデバイス２１、２２、２３中にダウンロード及び保存していた３Ｄ音声データベースを含む。
【００５８】
ステップ（ＩＩ）：もし３Ｄシーンキャッシュ１９０中に、３Ｄ音声が準備されているなら、ステップ（Ｖ）を執行する。
【００５９】
ステップ（ＩＩＩ）：もし３Ｄシーンキャッシュ１９０中に、３Ｄ音声が準備されていないなら、３Ｄシーンユーザーエンド１７０は、ダウンロード要求を、３Ｄシーンサーバー１２０に送信する（ルート１７２）。３Ｄシーンサーバー１２０は、３Ｄ音声のデータを、３Ｄシーンユーザーエンド１７０に回送する（ルート１２４）。
【００６０】
ステップ（ＩＶ）：３Ｄ音声の完全ダウンロード後、３Ｄシーンユーザーエンド１７０は、これを３Ｄシーンキャッシュ１９０に保存する（ルート１９４）。これにより、次に類似の要求があった時には、再度のダウンロードを行う必要はない。
【００６１】
ステップ（Ｖ）：３Ｄシーンユーザーエンド１７０は、３Ｄシーンキャッシュ１９０中から３Ｄ音声Ｓを取り出す（ルート１９２）。
【００６２】
ステップ（ＶＩ）：ダウンロードが完成（或いは前以てダウンロード済み）すると、３Ｄシーンユーザーエンド１７０は３Ｄ音声Ｓを取り出す。３Ｄシーンユーザーエンド１７０は、“３Ｄ  sound is ready on client（３Ｄ音声は既にユーザーデバイス上）”のメッセージを、３Ｄシーンサーバー１２０に伝送する（ルート１１３）。３Ｄシーンサーバー１２０は、このメッセージを３Ｄシーントランスミッター１１０に転送する（ルート１１４）。
【００６３】
ステップ（ＶＩＩ）：３Ｄシーントランスミッター１１０がこのメッセージを受け取り後、３Ｄ音声Ｓの状態を”Loading”から“Ready for Client”に変える。
【００６４】
ステップ（ＶＩＩＩ）：次のレンダリングにおいて、３Ｄシーントランスミッター１１０は、３Ｄ音声Ｓが既にユーザーデバイス中にダウンロードされていることを知っているため、３Ｄシーンユーザーエンド１７０に自らレンダリング（再生）するよう要請し、サーバー１はこの３Ｄ音声Ｓを、再びレンダリングする必要はない。
【００６５】
最初期には、ユーザーデバイス２１、２２、２３中には、一切の３Ｄモデル及び３Ｄ音声がないため、３Ｄシーントランスミッター１１０は、すべての３Ｄモデル及び３Ｄ音声をレンダリングし、その結果を、立体音声を備える２Ｄビデオストリーミングにエンコードする。３Ｄシーントランスミッター１１０は、３Ｄモデルのダウンロード要求［Ｉｎｆｏ  １１２−Ｂ］及び３Ｄ音声のダウンロード要求［Ｉｎｆｏ １１２−Ｅ］を、最も近い点から３Ｄプロジェクション面（或いは使用者の目）へ伝送する。
３Ｄシーンユーザーエンド１７０は、３Ｄシーンサーバー１２０から、各３Ｄモデル或いは３Ｄ音声をダウンロードし、或いは３Ｄシーンキャッシュ１９０上から一つ一つ取り出す。より多くの３Ｄモデル及び３Ｄ音声を、３Ｄシーンユーザーエンド１７０が取得すると、３Ｄシーントランスミッター１１０は、３Ｄシーンユーザーエンド１７０に、これらモデル及び音声を自らレンダリングし、３Ｄシーントランスミッター１１０からレンダリングする３Ｄモデル及び３Ｄ音声の数を減らすよう自動的に通知する。
これにより、最後の３Ｄシーンユーザーエンド１７０上からすべての３Ｄモデル及び３Ｄ音声が取得されるまで、エンコードした２Ｄビデオストリーミング中の３Ｄモデル及び３Ｄ音声はどんどん少なくなる。この後、この段階において、音声を備えない黒幕だけが残る。言い換えれば、サーバー１は、２Ｄビデオストリーミングを、ユーザーデバイス２１、２２、２３中に再伝送する必要はなく、しかもサーバー１及びユーザーデバイス２１、２２、２３間の通信帯域幅の占用も、大幅に低下される。
【００６６】
本発明において、新しい３ＤモデルＮが実景に出現すると、３Ｄシーントランスミッター１１０は、（１）３Ｄシーンユーザーエンド１７０に、この新しい３ＤモデルＮ前に位置する（使用者の目に対して言えば）すべての３Ｄモデルだけをレンダリングするよう通知する。
（２）この新しい３ＤモデルＮをダウンロードするよう、３Ｄシーンユーザーエンド１７０に通知する。
（３）３Ｄシーントランスミッター１１０は、この新しい３ＤモデルＮ及びその後に位置するすべてのモデルをレンダリングし、その結果を、音声を備える２Ｄビデオストリーミングにエンコードする。その後、この音声を備える２Ｄビデオストリーミングを、３Ｄシーンユーザーエンド１７０に伝送する。３Ｄシーンユーザーエンド１７０は、３ＤモデルＮユーザーデバイス上で準備する前に、アプリケーションプログラム１００の３Ｄ画像及び音声のレンダリング結果を再生し続けることができる。
【００６７】
新しい３Ｄ音声Ｔが実景に出現すると、３Ｄシーントランスミッター１１０は、（１）３Ｄシーンユーザーエンド１７０にこの新しい３Ｄ音声Ｔをダウンロードするよう通知する。及び（２）３Ｄシーントランスミッター１１０はこの新しい３Ｄ音声Ｔをレンダリングし、その結果を、立体音声にエンコードする。この後、この立体音声と２Ｄビデオストリーミングを、３Ｄシーンユーザーエンド１７０に伝送する。
３Ｄシーンユーザーエンド１７０は、３Ｄ音声Ｔを、ユーザーデバイス上で準備前に、アプリケーションプログラム１００を再製し続ける３Ｄ画像及び音声のレンダリング結果である。このプロセスにおいて、新しい３Ｄ音声Ｔだけをレンダリングし、３Ｄシーントランスミッター１１０は、他の３Ｄ音声Ｔ後方のすべての３Ｄ音声をさらにレンダリングする必要はない。この方法は、音声の本質が画像と異なることにより、画像はその後画像の表示を遮るが、音声は遮らない。
【００６８】
ＢＧＭは、所定の３Ｄ位置を備える３Ｄ音声とみなされ、ＢＧＭをできるだけ早くダウンロードできるよう、定義する所定の３Ｄ位置は使用者の目に近ければ近いほど良い。
【００６９】
サーバーの負荷を低下させ、或いは不安定なネットワークデータ伝達が生じる騒音を回避するため、サーバーは、ビデオ中のすべての３Ｄ音声のエンコードを放棄することができる。この状況において、３Ｄ音声は、ダウンロードされ、ユーザーデバイス中にプレ保存して初めてユーザーデバイス上で再生される。
【００７０】
３Ｄ音声において、サーバー１は３Ｄ音声の状態をチェックし、どの３Ｄ音声が立体音声を備える２Ｄビデオストリーミングにエンコードされるべきかを決定する。そのエンコード方式はユーザーデバイス中にプレ保存されていない３Ｄ音声をビデオフレーム中にエンコードするものである。３Ｄ音声が、ビデオフレーム中の立体音声にエンコードされると、その左右チャンネルの音量は、その位置及び使用者の耳に対する速度により決定される。ＢＧＭは、所定位置上の３Ｄ音声効果と定義される。
【００７１】
図３Ａは本発明ネットワークを通してメディアを伝送する方法の一実施形態のフローチャートである。ネットワークを通した画像の伝送を開始すると（ステップ６０）、サーバー上でアプリケーションプログラムを執行し複数の３Ｄモデルを含むバーチャル３Ｄ環境を産生する（ステップ６１）。各３Ｄモデルは、ある状態に対応し、該状態は、この３Ｄモデルをユーザーデバイス中にプレ保存するか否かを指示する。
【００７２】
サーバーは続いて３Ｄモデルの状態をチェックし（ステップ６２）、どの３Ｄモデルが２Ｄビデオストリーミングフレームにエンコードされるべきかを決定し、ユーザーデバイス中にプレ保存されていない３Ｄモデルは、フレーム中にエンコードされる。
サーバーは、あるバーチャル位置（通常は３Ｄプロジェクション面或いは使用者の目）を基準とし、近くから遠くへと、各３Ｄモデルの状態を一つ一つチェックする。チェック中に、ユーザーデバイス中にプレ保存されていない一個目の３Ｄモデルを発見すると、この発見された３Ｄモデルを、ＮＲ状態と標記する。続いて、その後の３Ｄモデルがユーザーデバイス中にプレ保存されるか否かにかかわらず、この３ＤモデルＭ及びその後方のすべての３Ｄモデルは、フレーム中にエンコードされる（ステップ６３）。
任意の３Ｄモデルの位置が改変された時、或いは配列参考用のバーチャル位置が改変された時、前記のチェックを再び執行し、しかも最新のチェック結果に基づき、３Ｄモデルがビデオフレーム中にエンコードされるべきか否かを決定する。
【００７３】
ステップ６４：２Ｄビデオストリーミングフレームのエンコード後、サーバーは、この２Ｄビデオストリーミングフレーム及びユーザーデバイス中にプレ保存されていない３Ｄモデル（すなわち、ＮＲ状態を備える３Ｄモデル及びその後方のすべての３Ｄモデル）を、所定の順序に基づき、ユーザーデバイスに伝送する。
この所定順序は、最も近い３Ｄプロジェクション面（或いは使用者の目）の一点から最も遠い点の３Ｄプロジェクション面の一点までの順序である。ユーザーデバイスが２Ｄビデオストリーミングフレームを受け取ると（ステップ６５）、ユーザーデバイスはサーバーから伝送されるフレームをデコードし、このフレームを使用し、ユーザーデバイス中にプレ保存されるが、フレーム中に含まれない３Ｄモデルのバックグラウンドのレンダリングを行う。これにより、音声を備えるアウトプットビデオストリーミングの混合フレームを産生する（ステップ６６）。
ユーザーデバイスが、サーバーから伝送される３Ｄモデルを受け取ると、ユーザーデバイスは、この３Ｄモデルを保存し、続いてメッセージをサーバーに伝送し、３Ｄモデルの状態を“現在は既にユーザーデバイス中にプレ保存される”に変更するよう通知する。この後、ユーザーデバイスは、サーバーから伝送されるビデオストリーミングと自らレンダリングした結果とを混合してアウトプットし、新しいビデオとする。
【００７４】
ステップ６２中において、新しい３Ｄモデルが３Ｄ環境中に出現すると、その後方の３Ｄモデルがユーザーデバイス中にプレ保存されるか否かに関わらず、新しい３Ｄモデルとその後方のすべての３Ｄモデルをフレーム中にエンコードする。
【００７５】
ステップ６４中において、サーバーは、ビデオストリーミングフレーム中にエンコードされていない３Ｄモデルの状態情報（或いは解釈データと称する）をユーザーデバイスに伝送する。ユーザーデバイスが、状態情報を受け取り、及びチェックする時には、以下の方式に基づき行う。
もし受け取った状態情報中の任意の３Ｄモデルが、ユーザーデバイス中にプレ保存される者でないなら、ユーザーデバイスは、サーバーに、３Ｄモデルをダウンロードするよう請求を送信する（ステップ６６１）。状態情報は、各フレーム中にエンコードされていない解釈データを含み、各解釈データは、３Ｄモデルの名称、位置、速度、ディレクション、及び属性及び各３Ｄモデルの状態を含む。
【００７６】
図３Ｂは本発明ネットワークを通してメディアを伝送する方法のもう一つの実施形態のフローチャートである。ネットワークを通して音声の伝送を開始する（ステップ６０ａ）と、サーバー上でアプリケーションプログラムを執行し、複数の３Ｄ音声を含むバーチャル３Ｄ環境を産生する（ステップ６１ａ）。各３Ｄ音声は、ある状態に対応し、該状態は、この３Ｄ音声がユーザーデバイス中にプレ保存するか否かを指示する。
【００７７】
サーバーは続いて３Ｄ音声の状態をチェックし（ステップ６２ａ）、どの３Ｄ音声が２Ｄビデオストリーミングフレームにエンコードされるべきかを決定する。ユーザーデバイス中にプレ保存されていない３Ｄ音声は、フレーム中にエンコードされる。
サーバーは、あるバーチャル位置（通常は３Ｄプロジェクション面或いは使用者の目）を基準とし、近くから遠くへと、各３Ｄ音声の状態を一つ一つチェックする。チェック中に、ユーザーデバイス中にプレ保存されていない一個目の３Ｄ音声を発見すると、この発見された３Ｄ音声を、ＮＲ状態と標記する。
【００７８】
ステップ６４ａ：音声を備えるビデオストリーミングフレームをエンコード後、サーバーは、この音声を備える２Ｄビデオストリーミングフレーム及びユーザーデバイス中にプレ保存されていない３Ｄ音声（すなわち、このＮＲ状態を備える３Ｄ音声）を、所定の順序に基づき、ユーザーデバイスに伝送する。
この所定順序は、最も近い３Ｄプロジェクション面から（或いは使用者の目）の一点から、最も遠い点の３Ｄプロジェクション面のもう一つの点までの順序である。ユーザーデバイスが音声を備えるビデオストリーミングフレームを受け取った（ステップ６５ａ）後、ユーザーデバイスはビデオストリーミング中に含まれるオーディオ（すなわち、音声）をデコードし、このオーディオを、ユーザーデバイス中にプレ保存されるが、ビデオストリーミングフレーム中に含まれない３Ｄ音声のバックグラウンドのレンダリングに使用し、これにより混合オーディオを産生する（ステップ６６ａ）。
ユーザーデバイスがサーバーから伝送される３Ｄ音声を受け取ると、ユーザーデバイスは、この３Ｄ音声を保存し、続いてメッセージをサーバーに伝送し、３Ｄ音声の状態を”現在は既にユーザーデバイス中にプレ保存される”に変更するように、サーバーに通知する。この後、ユーザーデバイスは、サーバーから伝送されるビデオストリーミング中のオーディオと自らレンダリング（再生、生成）した３Ｄ音声の結果を、混合してアウトプットし、新しいオーディオとする。
【００７９】
ステップ６２ａにおいて、新しい３Ｄ音声が３Ｄ環境中に出現すると、新しい３Ｄ音声を、音声を備える２Ｄビデオストリーミングフレーム中にエンコードする。この新しい３Ｄ音声は、他の３Ｄ音声がレンダリングされるか否かに影響せず、この点は、前記ステップ６２中の３Ｄモデルと異なる。
【００８０】
ステップ６４ａにおいて、サーバーは、フレーム中にエンコードされていない３Ｄ音声の状態情報をユーザーデバイスに伝送する。ユーザーデバイスが、状態情報を受け取り、及びチェックする時には、以下の方式に基づき行う。もし受け取った状態情報中の任意の３Ｄ音声が、ユーザーデバイス中にプレ保存される者でないなら、ユーザーデバイスはサーバーに、３Ｄ音声をダウンロードするよう請求を送信する（ステップ６６１ａ）。状態情報は、各フレーム中にエンコードされていない解釈データを含み、各解釈データは、３Ｄ音声の名称、位置、速度、ディレクション、及び属性及び各３Ｄ音声の状態を含む。
【００８１】
図４Ａ、４Ｂ及び４Ｃは、本発明方法において、いかにしてビデオストリーミング及び３Ｄモデルを伝送するかを示す一実施形態の模式図である。
【００８２】
図４Ａに示すとおり、最初にユーザーデバイス７４がサーバー上で動作するアプリケーションプログラム７０にログインしても、一切の３Ｄモデルは、ユーザーデバイス中にプレ保存されていない。よって、サーバーは、すべての３Ｄモデル（人７１及びその後の家７２を含む）をレンダリングする。すべての３Ｄモデルは、ユーザーデバイスのスクリーン上に表示され、サーバーは、レンダリング結果を、２Ｄビデオストリーミングフレーム７３にエンコードする。
続いて、このフレーム７３を、ユーザーデバイス７４に伝送する。この段階において、フレーム７３は、人７１及び家７２を含み、ユーザーデバイス７４は、このフレーム７３をアウトプットするだけでよく、他のオブジェクトをレンダリングする必要はない。
【００８３】
続いて、図４Ｂに示すとおり、サーバー７０は３Ｄモデルをユーザーデバイスに伝送し始め、ユーザーデバイススクリーンに最も近い３Ｄプロジェクション面の３Ｄモデルから開始する。本実施形態中では、家７２と比較すると、人７１は３Ｄプロジェクション面に近い（或いは使用者の目）。よって、人７１の３Ｄモデルは、先にユーザーデバイス７４に伝送され、人７１の３Ｄモデルがユーザーデバイス７４上に伝送されて保存された後、ユーザーデバイス７４はメッセージをサーバー７０に伝送し、人７１の３Ｄモデルが、ユーザーデバイス７４中にプレ保存していることを知らせる。
この後、サーバー７０は、家７２をレンダリングし、そのレンダリング結果を２Ｄビデオストリーミングフレーム７３ａにレンダリングし、このフレーム７３ａと人７１ａの解釈データを、ユーザーデバイス７４に伝送し、ユーザーデバイス７４は続いて解釈データを自動的に利用し人をレンダリングし、さらに人のレンダリング結果とフレーム７３ａ（家を含む）を結合し、相同のアウトプット結果を得る。このプロセス（例えば、サーバーは一回に一個の方式で３Ｄモデルをユーザーデバイス７４に伝送する）は、すべてのユーザーエンドが表示を要する３Ｄモデルが伝送され、及びユーザーデバイス７４中にプレ保存されるまで、何度も繰り返される。
【００８４】
図４Ｃに示すとおり、ユーザーデバイス７４がすべての３Ｄモデル（人と家の３Ｄモデルを含む）を擁すると、サーバーのこれ以上のレンダリング操作は不要で、またビデオストリーミングフレームのこれ以上の伝送も不要である（パーツ７５）。サーバーがユーザーデバイス７４に伝送する必要があるのは、３Ｄモデルの解釈データ（人７１ａ及び家７２ａを含む）だけである。ユーザーデバイスは自ら、すべての３Ｄモデルをレンダリングし、相同のアウトプット結果を得る。
【００８５】
図６Ａ、６Ｂ及び６Ｃは、本発明方法において、音声を備えるビデオストリーミング及び３Ｄ音声をいかにして伝送するかを示す実施形態の模式図である。
【００８６】
図６Ａに示すとおり、初期ユーザーデバイス７４がサーバー７０上で動作するアプリケーションプログラムにログインしても、一切の３Ｄ音声は、ユーザーデバイス中にプレ保存されていない。よって、サーバーは、すべての３Ｄ音声（音声８１及びその後の音声８２を含む）をレンダリングする。
すべての３Ｄ音声は、ユーザーデバイスのスピーカー上に現れ、サーバーは、レンダリング結果を、音声を備えるビデオストリーミングフレーム８３にエンコードする。続いて、この音声を備えるビデオストリーミングフレーム８３を、ユーザーデバイス７４に伝送する。この段階において、音声を備えるビデオストリーミングフレーム８３は、音声８１及び音声８２を含む。ユーザーデバイス７４は、この音声を備えるビデオストリーミングフレーム８３だけをアウトプットし、他の音声をレンダリング（再生）する必要はない。
【００８７】
続いて、図６Ｂに示すとおり、サーバー７０は、ユーザーデバイススクリーンに最も近い３Ｄプロジェクション面の３Ｄ音声から開始し、３Ｄ音声の、ユーザーデバイスへの伝送を開始する。本実施形態中では、音声８２と比較し、音声８１は３Ｄプロジェクション面（或いは使用者の目）に近い。よって、音声８１の３Ｄ音声は、先にユーザーデバイス７４に伝送され、音声８１の３Ｄ音声が伝送され、ユーザーデバイス７４上に保存された後、ユーザーデバイス７４はメッセージをサーバー７０に伝送し、音声８１がユーザーデバイス７４中にプレ保存されると知らせる。
この後、サーバー７０は音声８２をレンダリングし、そのレンダリング結果を音声を備える２Ｄビデオストリーミングフレーム８３ａにエンコードし、このフレーム８３ａ及び音声８１の解釈データを、ユーザーデバイス７４に伝送する。ユーザーデバイス７４は続いて解釈データを自動的に利用し、音声をレンダリング（再生）し、さらに音声のレンダリング結果とフレーム８３ａ（音声を含む）とを結び付け、相同のアウトプット結果を得る。このプロセス（例えば、サーバーは一回に一個の方式で３Ｄ音声をユーザーデバイス７４に伝送する）は、ユーザーデバイスのスピーカー上に再生される必要があるすべての３Ｄ音声が伝送され、及びユーザーデバイス７４中にプレ保存されるまで、何度も繰り返される。
【００８８】
図６Ｃに示すとおり、ユーザーデバイス７４がすべての３Ｄ音声（音声８１と音声８２の３Ｄ音声を含む）を擁すると、サーバーのこれ以上のレンダリング操作は不要で、つまりビデオストリーミングフレーム（パーツ８５）は画像だけを含み、音声を含まない。 サーバーは、３Ｄ音声８１の解釈データ（音声を含む８１ａ及び音声８２ａ）をユーザーデバイス７４に伝送する必要だけがある。ユーザーは続いて、すべての３Ｄ音声を自らレンダリング（再生）し、相同のアウトプット結果を得る。
【００８９】
図５Ａ、５Ｂ及び５Ｃは、本発明方法において、どの３Ｄモデルがフレームにエンコードされるべきかをいかにして決定するかを示す実施形態の模式図である。
【００９０】
本発明において、サーバーは、レンダリングされるべきすべての３Ｄモデルを所定の順序で配列する。この所定の順序は、バーチャル位置（ユーザーデバイススクリーンの３Ｄプロジェクション面５２、或いは使用者の目５１）に対して、近くから遠くへの順序である。図５Ａに示すとおり、４個のオブジェクトＡ、Ｂ、Ｃ及びＤを、ユーザーデバイスのスクリーン上に表示する必要があり、中でも、オブジェクトＡはプロジェクション面５２に最も近く、次はオブジェクトＢ、オブジェクトＣ及びオブジェクトＤである。
初期ユーザーデバイスがサーバー上で動作するアプリケーションプログラムにログインしても、一切の３Ｄ音声は、ユーザーデバイス中にプレ保存されていない。よって、サーバーはすべてのオブジェクトＡ、オブジェクトＢ、オブジェクトＣ及びオブジェクトＤをレンダリングし、レンダリング結果を、ビデオストリーミングフレームにエンコードし、このフレームを、ユーザーデバイスに伝送する。同時に、サーバーは、一つ一つ所定の順序に基づき、オブジェクトＡ、オブジェクトＢ、オブジェクトＣ及びオブジェクトＤ等の３Ｄモデルの伝送を開始し、オブジェクトＡの３Ｄモデルが先に伝送される。
ユーザーデバイス上に表示されるすべての３Ｄモデルの伝送が完了するまで、次にオブジェクトＢ、オブジェクトＣ及びオブジェクトＤを伝送する。
【００９１】
図５Ｂに示すとおり、オブジェクトＡ及びＢの３Ｄモデルがユーザーデバイス中にプレ保存された後、サーバーが、前提に基づき、近くから遠くへの所定順序で、３Ｄモデルの状態をチェックする時、サーバーは、オブジェクトＣは一個目のユーザーデバイス中にプレ保存されていないオブジェクトだと発見する。よって、サーバーは、オブジェクトＣ、及びオブジェクトＣ後に位置するすべて他のオブジェクト（オブジェクトＤなど）を、オブジェクトＤの３Ｄモデルがユーザーデバイス中にプレ保存されているか否かに関わらず、レンダリングする。この時、サーバーはオブジェクトＡ及びＢの３Ｄモデルに対してレンダリングを行わないため、この時オブジェクトＡ及びＢは既にユーザーデバイス中にプレ保存され、またオブジェクトＣの前にある。
【００９２】
図５Ｃに示すとおり、新しいオブジェクトＥが、アプリケーションプログラムが創造するバーチャル３Ｄ環境中に表示されると、このオブジェクトユーザーデバイス中にプレ保存されているか否かに関わらず、オブジェクトＥ及びその後のすべてオブジェクトはどれもサーバーにレンダリングされる。
例えば、図５Ｃに示すとおり、オブジェクトＢ、オブジェクトＣ及びオブジェクトＤと比較し、新しいオブジェクトＥは、３Ｄプロジェクション面５２に比較的近い。オブジェクトＢの３Ｄモデルは既にユーザーデバイス中にプレ保存されているが、オブジェクトＢは、新しいオブジェクトＥの後に位置するため、サーバーは、たとえオブジェクトＢのわずかな部分が、その前面の他のオブジェクトに覆われていたとしても、すべてのオブジェクトＥ、Ｃ、Ｂ及びＤに対して、レンダリングを行う。
【００９３】
図７Ａ、７Ｂ及び７Ｃは、本発明方法において、どの３Ｄ音声が音声を備えるビデオストリーミングフレームにエンコードされるべきかをいかにして決定するかを示す一実施形態の模式図である。
【００９４】
本発明において、サーバーは、レンダリングが必要なすべての３Ｄ音声を所定の順序で配列する。この所定の順序は、バーチャル位置（ユーザーデバイススクリーンの３Ｄプロジェクション面５２、或いは使用者の目５１）に対して、近くから遠くへの順序である。図７Ａに示すとおり、４個の３Ｄ音声Ａ、Ｂ、Ｃ及びＤは、ユーザーデバイスのスピーカー上で再生される必要がある。その内、音声Ａはプロジェクション面５２に最も近く、次は音声Ｂ、音声Ｃ及び音声Ｄである。初期ユーザーデバイスがサーバー上で動作するアプリケーションプログラムにログインしても、一切の３Ｄ音声は、ユーザーデバイス中にプレ保存されていない。
よって、サーバーは、すべての音声Ａ、音声Ｂ、音声Ｃ及び音声Ｄをレンダリングし、レンダリング結果を、音声を備えるビデオストリーミングフレームにエンコードし、このフレームを、ユーザーデバイスに伝送する。同時に、サーバーは、すべての３Ｄ音声がユーザーデバイスに保存されるまで、所定の順序に基づき、音声Ａの３Ｄ音声を先に伝送し、次に順番に音声Ｂ、音声Ｃ及び音声Ｄを伝送し、音声Ａ、音声Ｂ、音声Ｃ及び音声Ｄのデータを一つ一つ伝送する。
【００９５】
図７Ｂに示すとおり、音声Ａ及びＢの３Ｄ音声がユーザーデバイス中にプレ保存されると、サーバーは、前提に基づき、近くから遠くへの所定順序で、３Ｄ音声の状態をチェックし、サーバーは音声Ｃが一個目のユーザーデバイス中にプレ保存されていない音声であることを発見する。よって、サーバーは、音声Ｃ及び音声Ｃ後に位置するすべて他の音声（音声Ｄなど）をレンダリングし、この段階において、音声Ａ及びＢは既にユーザーデバイス中にプレ保存されているので、サーバーは、音声Ａ及びＢの３Ｄ音声に対してはレンダリングを行わない。
【００９６】
図７Ｃに示すとおり、新しい音声Ｅがアプリケーションプログラムが作り出すバーチャル３Ｄ環境中に出現すると、音声Ｅは、サーバーにレンダリングされるが、このレンダリングは、他の音声のレンダリングに影響しない。これは、図５Ｃ中に示す３Ｄモデルとは異なり、図７Ｃに示すとおり、音声Ｂ、音声Ｃ及び音声Ｄと比較すると、新しい音声Ｅは、３Ｄプロジェクション面５２に近く、図５Ｃ中の３Ｄモデルとは異なり、ユーザーデバイス中にプレ保存される音声（音声Ａ及びＢなど）は、ユーザーデバイスによりレンダリングされるが、ユーザーデバイスにプレ保存される音声（音声Ｅ、Ｃ及びＤなど）ではなく、サーバーがレンダリングする。
【００９７】
本発明の上述した技術は、バーチャルリアリティー（ＶＲ）シーンシステムへも応用可能であり、サーバーが執行するＶＲシーンアプリケーションプログラムが産生した３Ｄモデル及びＶＲビデオストリーミングをネットワークを通してユーザーデバイスへ伝送するが、以下、これについて詳細に述べる。
【００９８】
人間に視覚的に疑似体験させるために、バーチャルなＶＲシーンには、左目用の画像と、右目用の画像とが含まれなければならない。図８は、本発明の第１実施形態によるバーチャルリアリティー（ＶＲ）シーンシステムのシステムアーキテクチャを示す模式図である。
【００９９】
本発明において、シーンサーバー１１２０は、複数の３Ｄモデルを含むバーチャルＶＲ３Ｄ環境を産生させるために、ＶＲシーンアプリケーションプログラム１１００（この後、“ＶＲアプリケーションプログラム又はアプリケーションプログラムと略称する）を有するサーバー１上で執行するサーバープログラムである。ＶＲシーンアプリケーションプログラム１１００もサーバー１上で執行され、一般にＶＲゲームである。
ＶＲシーンサーバー１１２０は、サーバー１上でアプリケーションプログラム１１００と共同で執行されるサーバープログラムであり、サーバー１のＶＲシーントランスミッター１１１０と、ユーザーデバイス２１，２２，２３のＶＲシーンユーザーエンド１１７０との間のメッセージ伝達のハブとして用いる。ＶＲシーンサーバー１１２０は、サーバー１から必要な３Ｄモデルをダウンロードするユーザーデバイス２１，２２，２３のＶＲシーンユーザーエンド１１７０のファイルダウンロードサーバーとしても同時に用いる。ＶＲシーントランスミッター１１１０は、ＶＲシーンアプリケーションプログラム１１００がコンパイルされる時期にこれと静的にリンクされるか、ＶＲシーンアプリケーションプログラム１１００の執行期間にこれと動的にリンクされるライブラリー（Ｌｉｂｒａｒｙ）である。ＶＲシーンユーザーエンド（プログラム）１１７０は、ユーザーデバイス２１，２２，２３上で執行するプログラムであり、ユーザーデバイス内で産生してＶＲシーンアプリケーションプログラム１１００により生成される３Ｄ画像レンダリング結果を産生してアウトプットする。
この実施形態では、各ユーザーデバイス２１，２２，２３にとって、それはそれぞれ独立したＶＲシーンアプリケーションプログラム１１００及びＶＲシーントランスミッター１１１０に対応する。ＶＲシーントランスミッター１１１０は、リストを保有し、全３Ｄモデルと、各３Ｄモデルがユーザーデバイスにすでに保存した状態であるか否かであることとを印刷し、この状態は、各３Ｄモデルがユーザーデバイス中の状態が（１）“Not Ready（準備中）”、（２）“Loading（ダウンロード中）”及び（３）“Ready for Client（ユーザーはダウンロード済み）”の内の何れか一つである。
【０１００】
サーバー１は、どの３Ｄモデルを２Ｄビデオストリームの左目フレームにし、どの３Ｄモデルを２Ｄビデオストリームの右目フレームにするかを決定するために、これら３Ｄモデルの状態を検査する。本発明において、それら予め保存されていないユーザーデバイス２１，２２，２３中の３Ｄモデルは、左目フレーム及び右目フレームにエンコードされる。この機能を達成するために、ＶＲシーンアプリケーションプログラム１１００のメインプログラムは、ＡＰＩ呼出プログラムライブラリの方式（図８のルート１１０１）により、ＶＲシーン情報をＶＲシーントランスミッター１１１０へ伝送する。このＶＲシーン情報は、名称、位置、速度、属性、ディレクション及び全ての別の３Ｄモデルがレンダリングするのに必要なデータを含む。ＶＲシーントランスミッター１１１０がこのようなデータを受信した後、以下のプロセスを執行する。
【０１０１】
ステップ（ａ）：全ての３Ｄモデルにとって、左目フレーム中の全てのレンダリングしなければならない３Ｄモデルの順序方式は、バーチャル位置（例えば、３Ｄプロジェクション面又は使用者の左目）に対して、近くから遠くへと配列する。
【０１０２】
ステップ（ｂ）：３Ｄモデルにとって、最近点（使用者の左目に最も近いもの）から“Ready for Client”状態を備えない１つ目の３Ｄモデル“Ｍ”を探す。言い換えると、１つ目の３Ｄモデル“Ｍ”の状態は“Not Ready”の状態である（この後、“Not Ready”状態はＮＲ状態と略称する）。勿論、このような３Ｄモデルは存在しない（例えば、全て表示された３Ｄモデルは“Ready for Client”の状態と標示される）。
【０１０３】
ステップ（ｃ）：３Ｄモデルにとって、サーバー１により３ＤモデルＭ及びその後の全ての３Ｄモデルをレンダリング、即ち、全てがＭ距離の左目より遠い３Ｄモデルである。（例えば、３ＤモデルＭが無い場合、黒幕が表示される）レンダリング後の結果をエンコードし、２Ｄビデオストリームの左目フレーム（frame）として用い、使用者の左目で見るために提供される。
【０１０４】
ステップ（ｄ）：右目フレームの上述のステップ（ａ）〜（ｃ）を繰り返す。即ち、上述のステップ（ａ）〜（ｃ）で述べる左目の操作を右目に替え、もう一つの２Ｄビデオストリームの他方のフレームの右目フレームが産生し、使用者の右目で見るために提供される。
【０１０５】
ステップ（ｅ）：左目フレームのために［Ｉｎｆｏ  １１１２−Ａ］、［Ｉｎｆｏ  １１１２−Ｂ］及び［Ｉｎｆｏ  １１１２−Ｃ］の３つの情報をＶＲシーンサーバー１１２０へ伝送する（ルート１１１２）。右目フレームのために［Ｉｎｆｏ  １１１３−Ａ］、［Ｉｎｆｏ  １１１３−Ｂ］及び［Ｉｎｆｏ  １１１３−Ｃ］の３つの情報をＶＲシーンサーバー１１２０へ伝送する（ルート１１１３）。
【０１０６】
ステップ（ｆ）：ＶＲシーンサーバー１１２０中のデータパッカー１２１は、左右両目の情報［Ｉｎｆｏ  １１１２−Ａ］、［Ｉｎｆｏ  １１１２−Ｂ］及び［Ｉｎｆｏ  １１１２−Ｃ］、［Ｉｎｆｏ  １１１３−Ａ］、［Ｉｎｆｏ  １１１３−Ｂ］及び［Ｉｎｆｏ  １１１３−Ｃ］をパッケージングし、１つのデータパッケージをつくる。
【０１０７】
ステップ（ｇ）：ＶＲシーンサーバー１１２０は、ステップ（ｆ）中で産生されたデータパッケージをユーザーデバイス２１，２２，２３中のＶＲシーンユーザーエンド１１７０へ伝送する（ルート１１２２）。
【０１０８】
［Ｉｎｆｏ  １１１２−Ａ］は、３ＤモデルＭ前の全ての３Ｄモデルの状態情報（又は解釈データ）である。このタイプモデルは存在しない可能性もあることに注意する必要がある。このタイプモデルは、“Ｒｅａｄｙ  ｆｏｒ  Ｃｌｉｅｎｔ”状態を有し、これはこれらのモデルがユーザーデバイスにプリロードし、ユーザーデバイス２１，２２，２３上面のＶＲシーンユーザーエンド（プログラム）１１７０は、自らこれらのモデルをレンダリングしたことを意味する。データ伝達帯域幅を減らすために、ＶＲシーントランスミッター１１１０は、今回のレンダリングと前回のレンダリングとの差異の状態情報を伝送するだけでよく、全ての状態情報を伝送する必要はない。
【０１０９】
［Ｉｎｆｏ  １１１２−Ｂ］もしサーバーが３ＤモデルＭを見つけ、しかもそのユーザーデバイスが予め保存した状態が“Not Ready”である時、サーバーは、そのユーザー状態を“Loading”に変え、３ＤモデルＭのダウンロード指示を送信し、ユーザーデバイスに、この３ＤモデルＭをダウンロードするよう要求する。もしユーザー状態が既に“Loading”なら、ダウンロード指示は既に送信されているので、一切の指示を送信してはならない。
【０１１０】
［Ｉｎｆｏ  １１１２−Ｃ］は、ステップ（ｃ）中のエンコードした後の左目のビデオストリーミングフレーム、即ち左目フレームである。
【０１１１】
［Ｉｎｆｏ  １１１３−Ａ］、［Ｉｎｆｏ  １１１３−Ｂ］及び［Ｉｎｆｏ  １１１３−Ｃ］は、基本的に［Ｉｎｆｏ  １１１２−Ａ］、［Ｉｎｆｏ  １１１２−Ｂ］及び［Ｉｎｆｏ  １１１２−Ｃ］と実質上等しく、［Ｉｎｆｏ  １１１３−Ａ］、［Ｉｎｆｏ  １１１３−Ｂ］及び［Ｉｎｆｏ  １１１３−Ｃ］は右目フレームに関する。
【０１１２】
毎回のＶＲシーンアプリケーションプログラム１１００のメインプログラムが新しいＶＲシーンデータをＶＲシーントランスミッター１１１０へ更新する際、ステップ（ａ）〜（ｇ）を繰り返し、通常、ＶＲシーンアプリケーションプログラム１１００のメインプログラムは、毎回のレンダリングの周期中でこのようなデータを更新する。
【０１１３】
ＶＲシーンユーザーエンド１１７０が前述のデータを受信すると、後述のレンダリングプロセスを行う。
【０１１４】
ステップ（ｉ）：［Ｉｎｆｏ  １１１２−Ｃ  ａｎｄ  Ｉｎｆｏ  １１１３−Ｃ］中のビデオフレーム（左目フレーム及び右目フレームの両者を含む）をデコードし、これら２つのフレームをフレーム結合器１１７１へ伝送する。
【０１１５】
ステップ（ｉｉ）：フレーム結合器１１７１は、これら２つのフレーム（左目フレーム１７１１及び右目フレーム１７１２の両者を含む）を合成したＶＲフレーム１７１３（図９を参照する）へ合成し、後続の３Ｄモデルレンダリングのバックグラウンドとして用いる。
【０１１６】
ステップ（ｉｉｉ）：ステップ（ｉｉ）でエンコードした後の合成したＶＲフレーム上で全ての［Ｉｎｆｏ  １１１２−Ａ  ａｎｄ  Ｉｎｆｏ  １１１３−Ａ］中の３Ｄモデルをレンダリングする。ネットワーク帯域幅占用を低下させるために、ＶＲシーンユーザーエンド１１７０は、この［Ｉｎｆｏ  １１１２−Ａ  ａｎｄ  Ｉｎｆｏ  １１１３−Ａ］の情報をメモリに保存するため、次回のＶＲシーントランスミッター１１１０は、次回のレンダリングと今回のレンダリングとの間の［Ｉｎｆｏ  １１１２−Ａ  ａｎｄ  Ｉｎｆｏ  １１１３−Ａ］状態の差異を伝送するだけで良く、全ての状態情報を伝送する必要はない。
【０１１７】
ステップ（ｉｖ）：ステップ（ｉｉｉ）中のレンダリング結果をアウトプットし、ＶＲシーンを含んだ出力ビデオストリーミング中のレンダリング後の混合ＶＲフレーム、即ち、最終的に出力されたビデオストリーミング結果として用いる（ルート１１７６）。
この実施形態において、ユーザーデバイスは、眼鏡タイプ又はヘルメットタイプの電子機器であり、それは使用者の左目及び右目の前方にそれぞれ位置する２つの表示スクリーンを含む。左側のスクリーンは、使用者の左目が見る画像（フレーム）を表示し、右側のスクリーンは、使用者の右目が見る画像（フレーム）を表示する。出力ビデオストリーミング中の混合ＶＲフレームは、以下で述べる方式でユーザーデバイスの２つのスクリーン上に再生、即ち、混合したＶＲフレーム中の各ラインの左半分の各画素が左目スクリーンに表示され、混合したＶＲフレーム中の各ラインの右半分の各画素が右目スクリーンに表示され、使用者に視覚的疑似体験（ＶＲ）させる。
【０１１８】
［Ｉｎｆｏ  １１１２−Ｂ］及び［Ｉｎｆｏ  １１１３−Ｂ］の状態を提供する場合、３ＤモデルＭがＶＲシーンユーザーエンド１１７０により準備しなければならないことを表し、このときＶＲシーンユーザーエンド１１７０は、以下のプロセスにより３ＤモデルＭを処理する。
【０１１９】
ステップ（Ｉ）：ＶＲシーンキャッシュ１１９０を探し（ルート１１７４）、ＶＲシーンキャッシュ１１９０は、以前ユーザーデバイス２１，２２，２３にダウンロードして保存した３Ｄモデルデータファイルを含む。
【０１２０】
ステップ（ＩＩ）：ＶＲシーンキャッシュ１１９０中にすでに３ＤモデルＭがある場合、ステップ（Ｖ）を直接執行する。
【０１２１】
ステップ（ＩＩＩ）：ＶＲシーンキャッシュ１１９０中に３ＤモデルＭが無い場合、ＶＲシーンユーザーエンド１１７０は、ＶＲシーンサーバー１１２０へダウンロード請求を送信する（ルート１１７２）。ＶＲシーンサーバー１１２０は、３ＤモデルＭのデータをＶＲシーンユーザーエンド１１７０へ返送する（ルート１１２４）。
【０１２２】
ステップ（ＩＶ）：３Ｄモデルが完全にダウンロードされた後、ＶＲシーンユーザーエンド１１７０は、これをＶＲシーンキャッシュ１１９０に保存し（ルート１１９４）、これにより次回似たような請求があったときでもダウンロードする必要はない。
【０１２３】
ステップ（Ｖ）：ＶＲシーンユーザーエンド１１７０は、ＶＲシーンキャッシュ１１９０中から３ＤモデルＭをロードする（ルート１１９２）。
【０１２４】
ステップ（ＶＩ）：ダウンロードが完了すると（又は予めダウンロードが完了している）、ＶＲシーンユーザーエンド１１７０は３ＤモデルＭをロードする。ＶＲシーンユーザーエンド１１７０は、“3D model is ready on client（３Ｄモデルがユーザーデバイス上に既に存在する）”のメッセージをＶＲシーンサーバー１１２０へ送信し（ルート１１１５）、ＶＲシーンサーバー１１２０は、このメッセージをＶＲシーントランスミッター１１１０へ転送する（ルート１１１４）。
【０１２５】
ステップ（ＶＩＩ）：ＶＲシーントランスミッター１１１０がこのメッセージを受信すると、３ＤモデルＭの状態が“Loading”から“Ready for Client”へ変わる。
【０１２６】
ステップ（ＶＩＩＩ）：次回のレンダリングにおいて、ＶＲシーントランスミッター１１１０は、３ＤモデルＭがすでにユーザーデバイス中にプリロードされていることを知るため、ＶＲシーンユーザーエンド１１７０が自らレンダリングすることを請求するため、サーバー１は、３ＤモデルＭをレンダリングする必要はない。
【０１２７】
最初、ユーザーデバイス２１，２２，２３中には３Ｄモデルが全くないため、ＶＲシーントランスミッター１１１０は、全ての３Ｄモデルをレンダリングし、その結果を、左目フレーム及び右目フレームを含む２Ｄビデオストリーミングへエンコードする。ＶＲシーントランスミッター１１１０は、３Ｄモデルのダウンロード請求［Ｉｎｆｏ  １１１２−Ｂ］及び［Ｉｎｆｏ  １１１３−Ｂ］を、最接近の３Ｄプロジェクション面（又は使用者の左目又は右目）から処理を開始する。ＶＲシーンユーザーエンド１１７０は、ＶＲシーンサーバー１１２０から各３Ｄモデルをダウンロードするか、ＶＲシーンキャッシュ１１９０から一つ々々ロードする。さらに多くの３ＤモデルがＶＲシーンユーザーエンド１１７０から得られるとき、ＶＲシーントランスミッター１１１０は、ＶＲシーンユーザーエンド１１７０を自動的に通知し、これらのモデル及び音声を自らレンダリングし、ＶＲシーントランスミッター１１１０がレンダリングする３Ｄモデルの数を減らす。
このように、エンコードされた左目フレーム及び右目フレームを有する２Ｄビデオストリーミング中の３Ｄモデルは、最終的にＶＲシーンユーザーエンド１１７０上で全ての３Ｄモデルを得るまで徐々に少なくなる。その後、この段階では黒幕のみがサーバー１によりエンコードされ、言い換えると、サーバー１は、２Ｄビデオストリーミングからユーザーデバイス２１，２２，２３へ伝送する必要無く、サーバー１とユーザーデバイス２１，２２，２３間のネットワーク帯域幅の占用も大幅に低下される。
【０１２８】
新しい３ＤモデルＮがＶＲシーンに現れると、ＶＲシーントランスミッター１１１０は、（１）ＶＲシーンユーザーエンド１１７０を通知し、この新しい３ＤモデルＮの前に位置する全ての３Ｄモデルをレンダリングする（使用者の左目又は右目に対し）。
（２）この新しい３ＤモデルＮをダウンロードするようにＶＲシーンユーザーエンド１１７０に通知する。
（３）ＶＲシーントランスミッター１１１０は、この新しい３ＤモデルＮと、その後ろの全てのモデルとをレンダリングし、その結果は、左目フレーム及び右目フレームを含む２Ｄビデオストリーミングにエンコードされる。その後、左目フレーム及び右目フレームを含む２ＤビデオストリーミングをＶＲシーンユーザーエンド１１７０へ伝送する。そこで、ＶＲシーンユーザーエンド１１７０が依然として３ＤモデルＮでユーザーデバイス上で準備される前に、ＶＲアプリケーションプログラム１１００の３Ｄ画像レンダリング結果を再製し続ける。
【０１２９】
図１０は、本発明の第２実施形態によるバーチャルリアリティー（ＶＲ）シーンシステムのシステムアーキテクチャを示す模式図である。図１０の第２実施形態の大部分の要素及び機能は、図８で開示した第１実施形態と実質上同じであるか類似するが、フレーム結合器１１１１がＶＲシーンユーザーエンド１１７０に位置しているのでなく、ＶＲシーントランスミッター１１１０中に位置している点のみが異なり、そのため、図１０の同じ又は類似した要素には、図８と共通の参照符号が付され、その説明は繰り返さない。
【０１３０】
図１０に示すように、ＶＲアプリケーションプログラム１１００のメインプログラムは、ＡＰＩ呼出プログラムライブラリ方式により、ＶＲシーン情報をＶＲシーントランスミッター１１１０へ伝送し、このＶＲシーン情報は、名称、位置、速度、属性、ディレクション及びその他３Ｄモデルレンダリングが必要とする全てのデータを含む。ＶＲシーントランスミッター１１１０がこのタイプのデータを受け取ると、以下のプロセスを執行することができる。
【０１３１】
ステップ（ａ）：全ての３Ｄモデルにとって、左目フレーム中のレンダリングしなければならない３Ｄモデルは、バーチャル位置（例えば、３Ｄプロジェクション面又は使用者の左目）に基づいて近くから遠くへと配列される。
【０１３２】
ステップ（ｂ）：３Ｄモデルにとって、最も近い点（使用者の左目に最も近い点）から“Ready for Client”状態を備えない一個目の３Ｄモデル“Ｍ”を探す。言い換えれば、一個目の３Ｄモデル“Ｍ”の状態は“Not Ready”状態（この後、“Not Ready”状態はＮＲ状態と略称する）である。当然、このタイプの３Ｄモデルが存在しない可能性もある。
【０１３３】
ステップ（ｃ）：サーバー１中の３Ｄモデル“Ｍ”及び後続の３Ｄモデルすべてをレンダリング（上述した３Ｄモデル“Ｍ”が存在しない場合、黒幕を直接産生する）した後、メモリ中に保存する。
【０１３４】
ステップ（ｄ）：右目フレームにより上述したステップ（ａ）〜（ｃ）を繰り返して説明する。つまり、ステップ（ａ）〜（ｃ）で述べた左目の操作を右目に変え、これにより使用者の右目が見る右目フレームを産生する。
【０１３５】
ステップ（ｅ）：フレーム結合器１１１１によりすでにレンダリングした左目フレーム及び右目フレームを２Ｄビデオストリーミング中の合成したＶＲフレームに合成する。
【０１３６】
ステップ（ｅ）：左目フレーム及び右目フレームは、［Ｉｎｆｏ  １１１２−Ａ］、［Ｉｎｆｏ  １１１２−Ｂ］及び［Ｉｎｆｏ  １１１２−Ｃ］の３つの情報をＶＲシーンサーバー１１２０へ伝送する（ルート１１１２）。その後、ＶＲシーンサーバー１１２０は、それをユーザーデバイス２１，２２，２３中のＶＲシーンユーザーエンド１１７０へ伝送する（ルート１１２２）。
【０１３７】
［Ｉｎｆｏ  １１１２−Ａ］は、３ＤモデルＭ前の全ての３Ｄモデルの状態情報（又は解釈データ）である。このタイプモデルは存在しない可能性もあることに注意する必要がある。このタイプモデルは、“Ready for Client”状態を有し、これはこれらのモデルがユーザーデバイスにプリロードし、ユーザーデバイス２１，２２，２３上面のＶＲシーンユーザーエンド（プログラム）１１７０は、自らこれらのモデルをすでにレンダリングしたことを意味する。データ伝達帯域幅を減らすために、ＶＲシーントランスミッター１１１０は、今回のレンダリングと前回のレンダリングとの差異の状態情報を伝送するだけでよく、全ての状態情報を伝送する必要はない。
【０１３８】
［Ｉｎｆｏ １１１２−Ｂ］もしサーバーが３ＤモデルＭを見つけ、しかもそのユーザーデバイスが予め保存した状態が“Not Ready”である時、サーバーは、そのユーザー状態を“Loading”に変え、３ＤモデルＭのダウンロード指示を送信し、ユーザーデバイスに、この３ＤモデルＭをダウンロードするよう要求する。もしユーザー状態が既に“Loading”なら、ダウンロード指示は既に送信されているので、一切の指示を送信してはならない。
【０１３９】
［Ｉｎｆｏ １１１２−Ｃ］
ステップ（ｅ）中ですでにレンダリングし、左目フレーム及び右目フレームを含むビデオビデオストリーミングフレーム中の合成したＶＲフレームである。
【０１４０】
ＶＲシーンユーザーエンド１１７０が前述の情報を受信した後、後述のレンダリングプロセスを行う。
【０１４１】
ステップ（ｉ）：［Ｉｎｆｏ  １１１２−Ｃ］中の合成したＶＲフレームをデコードし、後続の３Ｄモデルをレンダリングするときのバックグラウンドとして用いる。
【０１４２】
ステップ（ｉｉ）：合成したＶＲフレーム上で全ての［Ｉｎｆｏ  １１１２−Ａ］中の３Ｄモデルをレンダリングする。ネットワーク帯域幅占用を低下させるために、ＶＲシーンユーザーエンド１１７０は、この［Ｉｎｆｏ  １１１２−Ａ］の情報をメモリに保存するため、次回のＶＲシーントランスミッター１１１０は、次回のレンダリングと今回のレンダリングとの間の［Ｉｎｆｏ  １１１２−Ａ］状態の差異を伝送するだけで良く、全ての状態情報を伝送する必要はない。
【０１４３】
ステップ（ｉｉｉ）：ステップ（ｉｉ）中のレンダリング結果をアウトプットし、ＶＲシーンを含んだ出力ビデオストリーミング中のレンダリング後の混合ＶＲフレーム、即ち、最終的にアウトプットされたビデオストリーミング結果として用いる（ルート１１７６）。
【０１４４】
図１１は、本発明の第３実施形態によるバーチャルリアリティー（ＶＲ）シーンシステムのシステムアーキテクチャを示す模式図である。図１１の第３実施形態の大部分の要素及び機能は、図８で開示した第１実施形態と実質上同じであるか類似するが、第３実施形態はフレーム結合器を備えていない点のみが異なり、そのため、図１１中と同じ又は類似した要素には、図８と共通の参照符号が付され、その説明は繰り返さない。
【０１４５】
図１１に示すように、ＶＲシーンサーバー１１２０は、ＶＲシーンアプリケーションプログラム１１００を有するサーバー１上でサーバプログラムを執行し、複数の３Ｄモデルを含むバーチャルＶｒ３Ｄ環境を産生する。ＶＲシーンサーバー１１２０は、アプリケーションプログラム１１００と共同でサーバー１上で執行するサーバープログラムで、サーバー１のＶＲシーントランスミッター１１１０とし、ユーザーデバイス２１、２２、２３のＶＲシーンユーザーエンド１１７０間で、メッセージ伝達の中継点とする。
ＶＲシーンサーバー１１２０は、同時にファイルダウンロードサーバーでもあり、ユーザーデバイス２１、２２、２３のＶＲシーンユーザーエンド１１７０は、サーバー１から必要な３Ｄモデルをダウンロードする。ＶＲシーントランスミッター１１１０はリストを保有し、すべての３Ｄモデルと、３Ｄモデルがユーザーデバイスに保存された状態であるか否かの状態とを列記する。この状態は、各３Ｄモデルのユーザーデバイス中の状態を（１）“Not Ready （準備中）”、（２）“Loading （ダウンロード中）”、及び（３）“Ready for Client（ユーザーはダウンロード済み）”の内の何れか一つで示している。
【０１４６】
サーバー１は、どの３Ｄモデルを２Ｄビデオストリームの左目フレームにし、どの３Ｄモデルを２Ｄビデオストリームの右目フレームにエンコードするかを決定するために、これら３Ｄモデルの状態を検査する。本発明において、それら予め保存されていないユーザーデバイス２１，２２，２３中の３Ｄモデルは、左目フレーム及び右目フレームにエンコードされる。この機能を達成するために、ＶＲシーンアプリケーションプログラム１１００のメインプログラムは、ＡＰＩ呼出プログラムライブラリの方式（図１１のルート１１０１）により、ＶＲシーン情報をＶＲシーントランスミッター１１１０へ伝送する。このＶＲシーン情報は、名称、位置、速度、属性、ディレクション及び全ての別の３Ｄモデルがレンダリングするのに必要なデータを含む。ＶＲシーントランスミッター１１１０がこのようなデータを受信した後、以下のプロセスを執行する。
【０１４７】
ステップ（ａ）：全ての３Ｄモデルにとって、左目フレーム中の全てのレンダリングしなければならない３Ｄモデルの順序方式は、バーチャル位置（例えば、３Ｄプロジェクション面又は使用者の左目）に対して、近くから遠くへと配列する。
【０１４８】
ステップ（ｂ）：３Ｄモデルにとって、最近点（使用者の左目に最も近いもの）から“Ready for Client”状態を備えない１つ目の３Ｄモデル“Ｍ”を探す。言い換えると、１つ目の３Ｄモデル“Ｍ”の状態は“Not Ready”の状態である（この後、“Not Ready”状態はＮＲ状態と略称する）。勿論、このような３Ｄモデルは存在しない可能性もある（例えば、全て表示された３Ｄモデルは“Ready for Client”と標示される）。
【０１４９】
ステップ（ｃ）：３Ｄモデルにとって、サーバー１により３ＤモデルＭ及びその後の全ての３Ｄモデルをレンダリングする。即ち、全てがＭ距離の左目より遠い３Ｄモデルである。（例えば、３ＤモデルＭが無い場合、黒幕が表示される）レンダリング後の結果をエンコードし、２Ｄビデオストリームの左目フレーム（frame）として用い、使用者の左目で見るために提供される。
【０１５０】
ステップ（ｄ）：右目フレームの上述のステップ（ａ）〜（ｃ）を繰り返す。即ち、上述のステップ（ａ）〜（ｃ）で述べる左目の操作を右目に変え、もう一つの２Ｄビデオストリームの他方のフレームの右目フレームが産生し、使用者の右目で見るために提供される。
【０１５１】
ステップ（ｅ）：左目フレームのために［Ｉｎｆｏ  １１１２−Ａ］、［Ｉｎｆｏ  １１１２−Ｂ］及び［Ｉｎｆｏ  １１１２−Ｃ］の３つの情報をＶＲシーンサーバー１１２０へ伝送する（ルート１１１２）。右目フレームのために［Ｉｎｆｏ  １１１３−Ａ］、［Ｉｎｆｏ  １１１３−Ｂ］及び［Ｉｎｆｏ  １１１３−Ｃ］の３つの情報をＶＲシーンサーバー１１２０へ伝送する（ルート１１１３）。
【０１５２】
ステップ（ｆ）：ＶＲシーンサーバー１１２０中のデータパッカー１２１は、左右両目の情報［Ｉｎｆｏ  １１１２−Ａ］、［Ｉｎｆｏ  １１１２−Ｂ］、［Ｉｎｆｏ  １１１２−Ｃ］、［Ｉｎｆｏ  １１１３−Ａ］、［Ｉｎｆｏ  １１１３−Ｂ］及び［Ｉｎｆｏ  １１１３−Ｃ］をパッケージングし、１つのデータパッケージをつくる。
【０１５３】
ステップ（ｇ）：ＶＲシーンサーバー１１２０は、ステップ（ｆ）中で産生されたデータパッケージをユーザーデバイス２１，２２，２３中のＶＲシーンユーザーエンド１１７０へ伝送する（ルート１１２２）。
【０１５４】
［Ｉｎｆｏ  １１１２−Ａ］は、３ＤモデルＭ前の全ての３Ｄモデルの状態情報（又は解釈データ）である。このタイプモデルは存在しない可能性もあることに注意する必要がある。このタイプモデルは、“Ｒｅａｄｙ  ｆｏｒ  Ｃｌｉｅｎｔ”状態を有し、これはこれらのモデルがユーザーデバイスにプリロードすることを意味し、ユーザーデバイス２１，２２，２３上面のＶＲシーンユーザーエンド１１７０（プログラム）は、自らこれらのモデルをレンダリングした。データ伝達帯域幅を減らすために、ＶＲシーントランスミッター１１１０は、今回のレンダリングと前回のレンダリングとの差異の状態情報を伝送するだけでよく、全ての状態情報を伝送する必要はない。
【０１５５】
［Ｉｎｆｏ  １１１２−Ｂ］は、サーバーが３ＤモデルＭを探す場合、ユーザーデバイスが予め保存した状態が“Not Ready”であるとき、サーバーがユーザー状態を“Loading”に変え、３ＤモデルＭのダウンロード指示を送信し、ユーザーデバイスにこの３ＤモデルＭをダウンロードすることを指示する。ユーザー状態が“Loading”である場合、如何なる指示も送信する必要はなく、ダウンロード指示がすでに送り出されているからである。
【０１５６】
［Ｉｎｆｏ  １１１２−Ｃ］は、ステップ（ｃ）中のエンコードした後の左目のビデオストリーミングフレーム、即ち左目フレームである。
【０１５７】
［Ｉｎｆｏ  １１１３−Ａ］、［Ｉｎｆｏ  １１１３−Ｂ］及び［Ｉｎｆｏ  １１１３−Ｃ］は、基本的に［Ｉｎｆｏ  １１１２−Ａ］、［Ｉｎｆｏ  １１１２−Ｂ］及び［Ｉｎｆｏ  １１１２−Ｃ］と実質上等しく、［Ｉｎｆｏ  １１１３−Ａ］、［Ｉｎｆｏ  １１１３−Ｂ］及び［Ｉｎｆｏ  １１１３−Ｃ］は右目フレームに関する。
【０１５８】
毎回のＶＲシーンアプリケーションプログラム１１００のメインプログラムが新しいＶＲシーンデータをＶＲシーントランスミッター１１１０へ更新する際、ステップ（ａ）〜（ｇ）を繰り返し、通常、ＶＲシーンアプリケーションプログラム１１００のメインプログラムは、毎回のレンダリングの周期中でこのタイプのデータを更新する。
【０１５９】
ＶＲシーンユーザーエンド１１７０が前述のデータを受信すると、後述のレンダリングプロセスを行う。
【０１６０】
ステップ（ｉ）：［Ｉｎｆｏ  １１１２−Ｃ  ａｎｄ  Ｉｎｆｏ  １１１３−Ｃ］中のビデオフレーム（左目フレーム及び右目フレームの両者を含む）をデコードし、これら２つのフレームを異なるメモリ空間へ保存する。
【０１６１】
ステップ（ｉｉ）：デコードした後の左目フレーム及び右目フレーム上で、［Ｉｎｆｏ  １１１２−Ａ  ａｎｄ  Ｉｎｆｏ  １１１３−Ａ］中に含まれる全ての３Ｄモデルをレンダリングする（この３Ｄモデルが存在する場合）。ネットワーク帯域幅占用を低下させるために、ＶＲシーンユーザーエンド１１７０は、この［Ｉｎｆｏ  １１１２−Ａ  ａｎｄ  Ｉｎｆｏ  １１１３−Ａ］の情報をメモリに保存する。そのため、次回のＶＲシーントランスミッター１１１０は、次回のレンダリングと今回のレンダリングとの間の［Ｉｎｆｏ  １１１２−Ａ  ａｎｄ  Ｉｎｆｏ  １１１３−Ａ］状態の差異を伝送するだけで良く、全ての状態情報を伝送する必要はない。
【０１６２】
ステップ（ｉｉｉ）：ステップ（ｉｉ）中のレンダリング結果をアウトプットし、ＶＲシーンを含んだ出力ビデオストリーミング中のレンダリング後の混合左目フレーム及び混合右目フレーム、即ち、最終的に出力されたビデオストリーミング結果として用いる（ルート１１７６）。上述した混合左目フレーム及び混合右目フレームを混合し、前述したような混合ＶＲフレームと称する。
【０１６３】
この実施形態において、ユーザーデバイスは、眼鏡タイプ又はヘルメットタイプの電子機器であり、それは使用者の左目及び右目の前方にそれぞれ位置する２つの表示スクリーンを含む。左側のスクリーンは、使用者の左目が見る画像（フレーム）を表示し、右側のスクリーンは、使用者の右目が見る画像（フレーム）を表示する。出力ビデオストリーミング中の混合ＶＲフレームは、以下で述べる方式でユーザーデバイスの２つのスクリーン上に再生、即ち、混合したＶＲフレーム中の各混合左目フレームが左目フレームに表示され、混合したＶＲフレーム中の各混合右目フレームが右目フレームに表示され、使用者に視覚的疑似体験（ＶＲ）させる。
【０１６４】
他の実施形態において、ユーザーデバイスのスクリーン上にアウトプットされるビデオストリーミングは、同一のスクリーン上に混合左目フレーム及び混合右目フレームを交互に表示する。使用者が眼鏡タイプの電子機器を掛けると、スクリーン上に表示される混合左目フレーム及び混合右目フレームに対応し、左目ウィンドウ及び右目ウィンドウが交互にオン・オフされ、使用者は視覚的疑似体験（ＶＲ）することができる。
【０１６５】
当該分野の技術を熟知するものが理解できるように、本発明の好適な実施形態を前述の通り開示したが、これらは決して本発明を限定するものではない。本発明の主旨と領域を逸脱しない範囲内で各種の変更や修正を加えることができる。従って、本発明の特許請求の範囲は、このような変更や修正を含めて広く解釈されるべきである。
【符号の説明】
【０１６６】
１  サーバー
３  ネットワーク（アクセスポイント）
４  ネットワーク
２１  ユーザーデバイス（スマートフォン）
２２  ユーザーデバイス（ノート型コンピューター）
２３  ユーザーデバイス（デスクトップコンピューター）
５１  使用者の目
５２  プロジェクション面
７０  サーバー
７１、７１ａ  人
７２、７２ａ  家
７３、７３ａ  フレーム
７４  ユーザーデバイス
７５  ビデオストリーミングフレーム
８１、８１ａ  音声
８２、８２ａ  音声
８３、８３ａ、１７１１、１７１２、１７１３  フレーム
８５  ビデオストリーミングフレーム
１００、１１００  アプリケーションプログラム
１１０、１１１０  シーントランスミッター（プログラムライブラリー）
１２０、１１２０  シーンサーバー
１２１  データパッカー
１７０、１１７０  シーンユーザーエンド（プログラム）
１１１１、１１７１  フレーム結合器
１９０、１１９０  シーンキャッシュ
１０１〜１１４、１２２、１２４、１７２、１７４、１７６、１９２、１１０１、１１１２〜１１１５、１１２２、１１２４、１１７２、１１７６、１１９２、１１９４  ルート
【図１】
0006306089.tif 000002
【図２】
0006306089.tif 000003
【図３Ａ】
0006306089.tif 000004
【図３Ｂ】
0006306089.tif 000005
【図４Ａ】
0006306089.tif 000006
【図４Ｂ】
0006306089.tif 000007
【図４Ｃ】
0006306089.tif 000008
【図５Ａ】
0006306089.tif 000009
【図５Ｂ】
0006306089.tif 000010
【図５Ｃ】
0006306089.tif 000011
【図６Ａ】
0006306089.tif 000012
【図６Ｂ】
0006306089.tif 000013
【図６Ｃ】
0006306089.tif 000014
【図７Ａ】
0006306089.tif 000015
【図７Ｂ】
0006306089.tif 000016
【図７Ｃ】
0006306089.tif 000017
【図８】
0006306089.tif 000018
【図９】
0006306089.tif 000019
【図１０】
0006306089.tif 000020
【図１１】
0006306089.tif 000021