(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続されるコンピュータと通信するソフトウェアと、３次元描画処理及びビデオ符号化処理を実行する複合型３次元レンダラ及びビデオエンコーダとを有するサーバにおいて、前記コンピュータで再生可能な３次元コンピュータ生成仮想環境のビデオ表現を生成する方法であって、
前記複合型３次元レンダラ及びビデオエンコーダによって実行される前記３次元描画処理において、前記ビデオ符号化処理によって用いられる意図された画面サイズ、ビットレート及びフレームレートに基づいて、３次元仮想環境の表示インスタンスを表示のためにレンダリングするステップと、
前記複合型３次元レンダラ及びビデオエンコーダによって実行される前記ビデオ符号化処理において、前記３次元仮想環境の前記表示インスタンスを符号化して前記３次元コンピュータ生成仮想環境の前記ビデオ表現を生成するステップと
を有し、
前記３次元描画処理は、該３次元描画処理が前記３次元仮想環境の前記表示インスタンスを表示のためにレンダリングする周波数が、前記ビデオ符号化処理によって使用されるフレームレートと一致するように、前記３次元仮想環境の表示インスタンスを生成するよう前記レンダリングするステップを行う、方法。
【請求項２】
前記レンダリングするステップは、ビデオを符号化するために前記ビデオ符号化処理によって使用される色空間において、前記３次元描画処理によって実施され、それにより、前記ビデオ符号化処理は、前記３次元仮想環境の前記ビデオ表現を生成する場合に、色変換を実行する必要がないようにされる、
請求項１に記載の方法。
【請求項３】
前記レンダリングするステップは、ＹＵＶ色空間において前記３次元描画処理によって実施され、
前記ビデオ符号化処理は、前記ＹＵＶ色空間においてビデオを符号化する、
請求項２に記載の方法。
【請求項４】
前記意図された画面サイズ及びビットレートは、前記３次元描画処理によって生成される前記３次元仮想環境のレンダリングされる表示インスタンスについてディテールの程度を選択するために、前記３次元描画処理によって使用される、
請求項１に記載の方法。
【請求項５】
前記レンダリングするステップは、
３次元モデル空間において前記３次元仮想環境の３次元場面を生成するステップと、
前記３次元モデル空間をビュー空間に変換するステップと、
トライアングルセットアップを行うステップと、
トライアングルをレンダリングするステップと
を有する、請求項１に記載の方法。
【請求項６】
前記３次元モデル空間において前記３次元仮想環境の３次元場面を生成するステップは、
前記３次元仮想環境内の対象の動きを決定するステップと、
前記３次元仮想環境内のカメラの位置及び向きの動きを決定するステップと、
前記３次元仮想環境内の対象の動き及び前記３次元仮想環境内のカメラの動きに関連するベクトルを記憶するステップと
を有する、請求項５に記載の方法。
【請求項７】
前記３次元モデル空間をビュー空間に変換するステップは、前記３次元モデル空間から前記ビュー空間へ前記ベクトルを変換し、該ベクトルが動き推定を行うために前記ビデオ符号化処理によって使用されるようにするステップを有する、
請求項６に記載の方法。
【請求項８】
前記トライアングルをレンダリングするステップは、該トライアングルのためのテクスチャ選択及びフィルタリングを行うために前記ビデオ符号化処理からの情報を用いる、
請求項６に記載の方法。
【請求項９】
前記ソフトウェアによって前記コンピュータへ前記ビデオ表現をストリーミングするステップを更に有する、
請求項１に記載の方法。
【請求項１０】
前記ビデオ表現を前記サーバにおいてアーカイブするステップを更に有する、
請求項１に記載の方法。
【請求項１１】
前記ビデオ符号化処理は、前記３次元描画処理から運動ベクトル情報を受け取り、該運動ベクトル情報をブロック動作検出に関連して使用する、
請求項１に記載の方法。
【請求項１２】
前記運動ベクトル情報は、前記ビデオ符号化処理によって符合化されるレンダリングされた仮想環境のビューにおいて対象の動きに対応するよう３次元モデル空間から変換されている、
請求項１１に記載の方法。
【請求項１３】
前記ビデオ符号化処理は、ブロックサイズ選択を行うために前記３次元描画処理からの前記運動ベクトル情報を使用する、
請求項１１に記載の方法。
【請求項１４】
前記ビデオ符号化処理は、ブロック符号化のためのフレームタイプ決定を行うために前記３次元描画処理からの前記運動ベクトル情報を使用する、
請求項１１に記載の方法。
【請求項１５】
前記符号化するステップは、ビデオフレーム処理、Ｐ及びＢフレーム符号化、並びにＩ及びＰフレーム符号化を有する、
請求項１に記載の方法。
【請求項１６】
前記Ｐフレーム符号化のステップは、どのように現在のブロックが先の基準フレームに対して動いたかを決定するよう前記現在のブロックと前記先の基準フレームのブロックとの一致を調べるステップを有し、
前記ビデオ符号化処理は、前記前記３次元描画処理によって提供される運動ベクトルの少なくとも１つによって示される位置で前記一致を調べるステップを開始させるために、前記３次元描画処理からの前記運動ベクトル情報を用いる、
請求項１５に記載の方法。
【請求項１７】
前記Ｐフレーム符号化のステップは、前記３次元描画処理によって提供される運動ベクトルの少なくとも１つを参照することによって、先の基準のブロックに対する現在のブロックの動き推定を行うステップを有する、
請求項１５に記載の方法。
【請求項１８】
前記ビデオ符号化処理は、前記３次元仮想環境の前記表示インスタンスを符号化するステップを行う間、
前記３次元仮想環境の前記表示インスタンスのサイズを変更するステップと、
当該ビデオ符号化処理によって使用される色空間への前記３次元仮想環境の前記表示インスタンスの色空間変換を実施するステップと
フレーム補間を行うステップと
を実施しないよう構成される、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想環境、より具体的には、３次元コンピュータ生成仮想環境のビデオ表現を提供する方法及び装置に関する。
【背景技術】
【０００２】
仮想環境は、実際の又は空想の３次元環境をシミュレーションし、多くの参加者が遠隔に位置するクライアントを介して環境内で概念構成体と及びお互いと情報をやり取りすることを可能にする。仮想環境が使用される１つの背景は、ゲームに関連している。ユーザは、キャラクタの役割を務め、ゲームの中でそのキャラクタの動作の大部分に対する制御を行う。ゲームに加えて、仮想環境は、オンラインの教育、訓練、買い物、並びにユーザのグループ間及びビジネスとユーザの間の他のタイプの相互作用を可能にするユーザのためのインターフェースを提供するよう、実際の生活環境をシミュレーションするためにも使用されている。
【０００３】
仮想環境においては、実際の又は空想の世界が、コンピュータプロセッサ／メモリ内でシミュレーションされる。一般に、仮想環境は、それ自体の独特の３次元座標空間を有する。ユーザを表すアバターは、３次元座標空間内を動いて、３次元座標空間内の物体及び他のアバターと相互作用することができる。仮想環境サーバは、仮想環境を維持し、ユーザごとの視覚提示を仮想環境内のユーザのアバターの位置に基づいて生成する。
【０００４】
仮想環境は、コンピュータ支援設計パッケージ又はコンピュータゲーム等のスタンドアローン型のアプリケーションとして実施されてよい。代替的に、仮想環境は、複数の人々が、ローカルエリアネットワーク又はインターネットのようなワイドエリアネットワーク等のコンピュータネットワークを通じて仮想環境に参加することができるように、オンラインで実施されてよい。
【０００５】
ユーザは、「アバター」によって仮想環境に置いて表現される。アバターは、仮想環境に置いて人物又は他の物体を表すよう、しばしば、それらの３次元表現である。参加者は、彼らのアバターが仮想環境内でどのように動くかを制御するよう、仮想環境ソフトウェアと対話する。参加者は、従来の入力装置を用いて（例えば、コンピュータマウス及びキーボード、キーパッド、又は任意に、ゲームコントローラ等のより専門化した制御を用いてよい。）アバターを制御することができる。
【０００６】
アバターが仮想環境内を動く場合、ユーザが経験する景色は、仮想環境におけるユーザの位置（すなわち、仮想環境内でアバターがどこに位置しているのか）及び仮想環境における視界方向（すなわち、アバターはどこを見ているのか）に従って変化する。３次元仮想環境は、アバターの位置及び仮想環境へのビューに基づいてレンダリングされ、３次元仮想環境の視覚表現は、ユーザのディスプレイ上でユーザに対して表示される。ビューは、アバターを制御する参加者が、アバターが見ているものを見ることができるように、参加者に対して表示される。更に、多くの仮想環境は、参加者が、例えば、アバターの外の（すなわち、背後の）見晴らしの利く地点から等の異なった視点に切り替えて、アバターが仮想環境においてどこにいるのかを見ることができるようにする。アバターは、仮想環境内で歩き、走り、泳ぎ、且つ、他の方法で動くことを可能にされる。アバターは、また、物を拾うこと、物を投げること、カギを使って扉を開くこと、及び他の同様のタスクを行うことを可能にされる等、細かい運動技能を行えるようにされる。
【０００７】
仮想環境内の動き、又は仮想環境を通る物体の動きは、時間とともにわずかに異なった位置において仮想環境をレンダリングすることによって、実施される。毎秒３０又は６０回といったように３次元仮想環境の異なったイタレーション（iterations）を十分に速く示すことによって、仮想環境内の動き、又は仮想環境内の物体の動きは、連続的であるように現れる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
完全投入型フルモーション３Ｄ環境の創出は、グラフィック・アクセラレータ・ハードウェア又はパワフルＣＰＵの形で、有効なグラフィック処理能力を必要とする。更に、フルモーション３Ｄグラフィックのレンダリングは、また、装置のプロセッサ及びハードウェア加速リソースにアクセスすることができるソフトウェアを必要とする。幾つかの状況においては、このような能力を有するソフトウェアを配信することは都合が悪い（すなわち、ウェブを検索するユーザは、３Ｄ環境が表示されることを可能にする何らかのソフトウェアをインストールしなければならない。このことは、使用する際の障害となる。）。そして、幾つかの状況においては、ユーザは、新しいソフトウェアを彼らの装置にインストールすることを許可されないことがある（モバイル装置は、特にセキュリティを重視する組織におけるＰＣであるよう、しばしばロックダウンされる。）。同様に、全ての装置は、フルモーション３次元仮想環境をレンダリングするためにグラフィック・ハードウェアや十分な処理能力を有しているわけではない。例えば、多くの家庭用ラップトップコンピュータ、大分部分の従来型のパーソナルデータアシスタント、携帯電話機、及び他の携帯型家電機器と同じく、フルモーション３Ｄグラフィックを生成可能なほど十分な計算力を欠いている。このような制限は、人々が、それらの装置を用いて仮想環境に参加することを妨げるので、このような限られた能力のコンピュータ装置を用いてユーザが３次元仮想環境に参加することを可能にする方法を提供することが有利である。
【課題を解決するための手段】
【０００９】
課題を解決するための手段及び別紙の要約書は、以下の詳細な説明で論じられる幾つかの概念を導入するために提供される。これらは、包括的ではなく、特許請求の範囲で請求される保護されるべき対象を表すことを目的としているわけではない。
【００１０】
サーバ処理は、３次元（３Ｄ）仮想環境のインスタンスを、そもそも３次元描画処理を実施することができない、又は３次元描画ソフトウェアをインストールされていないデバイスにおいて見ることができるビデオストリームとしてレンダリングする。サーバ処理は、３Ｄ描画ステップ及びビデオ符号化ステップに分けられる。３Ｄ描画ステップは、ビデオ符号化ステップからのコーデック、目標のビデオフレームレート、及びビットレートの知識を用いて、レンダリングされた仮想環境がビデオ符号化ステップによる符号化のために最適化されるように、正確なフレームレートで、正確なサイズにおいて、正確なディテールレベルを有して、仮想環境のバージョンをレンダリングする。同様に、ビデオ符号化ステップは、動き推定、マクロブロックサイズ推定、及びフレームタイプ選択に関連して３Ｄ描画ステップからの動きの知識を用いて、ビデオ符号化処理の複雑性を低減する。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に従ってユーザが３次元コンピュータ生成仮想環境へのアクセスを有することを可能にするシステムの例の機能ブロック図である。
【図２】機能が限られた携帯型コンピュータ装置の一例を示す。
【図３】本発明の実施形態に従うレンダリングサーバの例の機能ブロック図である。
【図４】本発明の実施形態に従う３次元仮想環境レンダリング及びビデオ符号化処理のフローチャートである。
【発明を実施するための形態】
【００１２】
本発明の態様は、添付の特許請求の範囲における詳細を有して指し示される。本発明は、一例として、添付の図面において図示される。図面において、同じ参照符号は同じ要素を示す。以下、図面は、単に例示のためだけに本発明の様々な実施形態を開示し、本発明の適用範囲を限定するよう意図されない。明りょうさのために、全ての構成要素が全ての図面において参照されるわけではない。
【００１３】
以下の詳細な記載は、本発明の完全な理解を提供するよう多数の具体的な詳細を挙げる。なお、当業者には明らかなように、本発明は、これらの具体的な詳細によらずに実施されてもよい。他の例において、従来の方法、手順、構成要素、プロトコル、アルゴリズム、及び回路は、本発明を不明りょうにしないように記載されていない。
【００１４】
図１は、複数のユーザと１又はそれ以上のネットワークに基づく仮想環境１２との間の相互作用を示す、例となるシステム１０の一部を示す。ユーザは、フルモーション３Ｄ仮想環境をレンダリングするために十分なハードウェア処理能力及び必要とされるソフトウェアを備えたコンピュータ１４を用いて、ネットワークに基づく仮想環境１２にアクセスすることができる。ユーザは、パケットネットワーク１８又は他の一般的な通信インフラを介して仮想環境にアクセスしてよい。
【００１５】
代替的に、ユーザは、フルモーション３Ｄ仮想環境をレンダリングするには不十分なハードウェア／ソフトウェアを備えた限られた機能のコンピュータ装置１４を用いて、ネットワークに基づく仮想環境１２にアクセスしたいと望むことがある。限られた機能のコンピュータ装置の例には、低出力ラップトップコンピュータ、パーソナルデータアシスタント、携帯電話機、携帯型ゲーム機、及びフルモーション３Ｄ仮想環境をレンダリングするには処理能力が十分でない、又は十分な処理能力を有するが、それを行うための必要なソフトウェアを欠いている他の装置がある。語「限られた機能のコンピュータ装置」は、フルモーション３Ｄ仮想環境をレンダリングするのに十分な処理能力を有さない、又はフルモーション３Ｄ仮想環境をレンダリングするための正確なソフトウェアを有さない何らかの装置に言及するために、本願では用いられる。
【００１６】
仮想環境１２は、１又はそれ以上の仮想環境サーバ２０によってネットワーク上で実施される。仮想環境サーバ２０は、仮想環境を維持し、仮想環境のユーザが、ネットワーク上で互いと及び仮想環境と情報をやり取りすることを可能にする。ユーザ間の音声呼出等の通信セッションが１又はそれ以上の通信サーバ２２によって実施されてよく、それにより、ユーザは、仮想環境に関与しながら、互いと話し、且つ、更なる音声入力を聞くことができる。
【００１７】
１又はそれ以上のレンダリングサーバ２４は、限られた機能のコンピュータ装置を有するユーザが仮想環境にアクセスすることを可能にするよう設けられる。レンダリングサーバ２４は、限られた機能のコンピュータ装置１６の夫々について描画処理を実施し、レンダリングされた３次元仮想環境を、限られた機能のコンピュータ装置１６へネットワーク１８を介してストリーミングされるビデオへ変換する。限られた機能のコンピュータ装置は、フルモーション３Ｄ仮想環境をレンダリングするには不十分な処理能力及び／又はインストール・ソフトウェアを有するが、フルモーションビデオを復号して表示する十分な計算能力を有してよい。このようにして、レンダリングサーバ２４は、限られた機能のコンピュータ装置を有するユーザが、フルモーション３Ｄ仮想環境を経験することを可能にするビデオブリッジを提供する。
【００１８】
更に、レンダリングサーバ２４は、アーカイブ保管のための３Ｄ仮想環境のビデオ表現を生成してよい。この実施形態では、限られた機能のコンピュータ装置１６へライブでビデオをストリーミングするのではなく、ビデオストリームは、後の再生のために記憶される。レンダリングからビデオ符号化処理はいずれの場合にも同じであるから、本発明の実施形態は、ストリーミングビデオの生成に焦点を合わせて記載される。なお、同じ処理が、記憶のためのビデオを生成するために使用されてよい。同様に、十分な処理能力及びインストールされたソフトウェアを備えたコンピュータ１４のユーザが、仮想環境内の彼らの相互作用を記録したいと望む場合、３Ｄ描画及びビデオ符号化の複合的な処理の例は、サーバ２４よりむしろコンピュータ１４で実施されてよく、ユーザが仮想環境内の自身の活動を記録することを可能にする。
【００１９】
図１に示される例では、仮想環境サーバ２０は、コンピュータ１４がユーザに対して仮想環境をレンダリングすることを可能にするよう、通常の方法においてコンピュータ１４へ入力を与える（矢印１）。仮想環境の各コンピュータユーザのビューが、ユーザのアバターの位置及び視点に依存して、異なっている場合、入力（矢印１）はユーザごとに一意である。なお、ユーザが同じカメラを通して仮想環境を見ている場合は、コンピュータは夫々、３Ｄ仮想環境の同じビューを生成してよい。
【００２０】
同様に、仮想環境サーバ２０は、また、コンピュータ１４に入力される（矢印１）のと同じタイプの入力（矢印２）をレンダリングサーバ２４へ与える。このことは、レンダリングサーバ２４が、レンダリングサーバ２４によってサポートされる限られた機能のコンピュータ装置１６の夫々について、フルモーション３Ｄ仮想環境をレンダリングすることを可能にする。レンダリングサーバ２４は、サポートされるユーザごとにフルモーション３Ｄ描画処理を実施し、ユーザの出力をストリーミングビデオへ変換する。次いで、ストリーミングビデオは、ネットワーク１８を介して限られた機能のコンピュータ装置１６へストリーミングされ、それにより、ユーザは、自身の限られた機能のコンピュータ装置１６において３Ｄ仮想環境を見ることができる。
【００２１】
仮想環境が固定カメラ位置の組から第三者の視点をサポートする他の状況が存在する。例えば、仮想環境は、部屋ごとに１つの固定カメラを有してよい。この場合において、レンダリングサーバ２４は、ユーザの少なくとも１人によって使用中である固定カメラごとに一度、仮想環境をレンダリングし、次いで、そのカメラを介して仮想環境を現在見ている各ユーザへそのカメラに付随するビデオをストリーミングしてよい。例えば、提示に際して、観衆の各メンバーは、観衆席にある固定カメラを介してプレゼンターの同じビューを与えられてよい。この例及び他のそのような状況においては、レンダリングサーバ２４は、観衆メンバーのグループについて一度、３Ｄ仮想環境をレンダリングしてよく、ビデオ符号化処理は、観衆メンバーごとに正確なコーデック（例えば、正確なビデオフレームレート、ビットレート、解像度等）を用いて、その特定のメンバーへストリーミングされるビデオを符号化してよい。このことは、３Ｄ仮想環境が一度レンダリングされ且つ複数回ビデオ符号化されて、視聴者にストリーミングされることを可能にする。これに関連して、複数の視聴者が同じタイプのビデオストリームを受信するよう設定される場合は、ビデオ符号化処理はビデオを一度しか符号化するよう求められないことに留意されたい。
【００２２】
仮想環境の視聴者が複数人存在する場合、異なる視聴者が異なるフレーム及びビットレートでビデオを受信したいと望むことがある。例えば、１グループの視聴者は、比較的低いビットレートでビデオを受信することができ、他グループの視聴者は、比較的高いビットレートでビデオを受信することができる。全ての視聴者が同じカメラを介して３Ｄ仮想環境を覗いているとしても、必要に応じて、異なる３Ｄ描画処理が、異なるビデオ符号化レートの夫々について３Ｄ仮想環境をレンダリングするために使用されてよい。
【００２３】
コンピュータ１４は、プロセッサ２６と、任意にグラフィックカード２８とを有する。コンピュータ１４は、１又はそれ以上のコンピュータプログラムを含むメモリを更に有する。コンピュータプログラムは、プロセッサにロードされる場合に、コンピュータ１４がフルモーション３Ｄ仮想環境を生成することを可能にする。コンピュータ１４がグラフィックカード２８を有する場合、フルモーション３Ｄ仮想環境の生成に伴う処理の一部が、プロセッサ２６の負荷を減らすようグラフィックカード２８によって実施されてよい。
【００２４】
図１に示される例では、コンピュータ１４は、ユーザに対して３次元仮想環境を生成するよう仮想環境サーバ２０とともに動作する仮想環境クライアント３０を有する。仮想環境に対するユーザインターフェース３２は、ユーザからの入力が仮想環境の様相を制御することを可能にする。例えば、ユーザインターフェース３２は、ユーザが、仮想環境において自身のアバターを制御するとともに、仮想環境の他の様相を制御するために使用することができる制御のダッシュボードを提供してよい。ユーザインターフェース３２は、仮想環境クライアント３０の一部であっても、あるいは、別個の処理として実施されてもよい。別個の仮想環境クライアントは、ユーザがアクセスしたいと望む仮想環境ごとに必要とされてよい。なお、特定の仮想環境クライアントは、複数の仮想環境サーバとインターフェースをとるよう設計されてよい。通信クライアント３４は、ユーザが、同じく３次元コンピュータ生成仮想環境に参加している他のユーザと通信することを可能にするよう設けられる。通信クライアント３４は、仮想環境クライアント３０、すなわちユーザインターフェース３２の一部であっても、あるいは、コンピュータ１４で実行される別個の処理であってもよい。ユーザは、ユーザ入力装置４０を介して仮想環境内の自身のアバター及び仮想環境の他の様相を制御することができる。レンダリングされる仮想環境のビューは、ディスプレイ／オーディオ４２を介してユーザに提示される。
【００２５】
ユーザは、コンピュータキーボード及びマウス等の制御装置を用いて、仮想環境内のアバターの動きを制御してよい。一般に、キーボードのキーは、アバターの動作を制御するために使用されてよく、マウスは、カメラ角度及び移動方向を制御するために使用されてよい。しばしばアバターを制御するために使用される１つの一般的な文字の組は、文字ＷＡＳＤである。なお、通常、他のキーも特定のタスクを割り当てられる。ユーザは、例えば、自身のアバターを歩かせるためにＷキーを押下し、そして、アバターが歩いている方向を制御するようマウスを用いてよい。タッチセンサ画面、専用ゲームコントローラ、ジョイスティック等、多数の他の入力装置が開発されている。ゲーム環境及び他のタイプの仮想環境を制御する多種多様な方法が長い期間をかけて開発されている。開発されている入力装置の例には、キーパッド、キーボード、ライトペン、マウス、ゲームコントローラ、音声マイク、タッチセンサ式ユーザ入力装置、及び他のタイプの入力装置がある。
【００２６】
限られた機能のコンピュータ装置１６は、コンピュータ１４と同様に、プロセッサ２６と、１又はそれ以上のコンピュータプログラムを含むメモリとを有する。コンピュータプログラムは、プロセッサにロードされる場合に、コンピュータ装置１６が３Ｄ仮想環境に参加することを可能にする。しかし、コンピュータ１４のプロセッサとは異なり、限られた機能のコンピュータ装置１６におけるプロセッサ２６は、フルモーション３Ｄ仮想環境をレンダリングする十分な能力を有さず、あるいは、コンピュータ装置１６がフルモーション３Ｄ仮想環境をレンダリングすることを可能にする正確なソフトウェアへのアクセスを有さない。従って、限られた機能のコンピュータ装置１６のユーザがフルモーション３Ｄ仮想環境を経験することを可能にするよう、限られた機能のコンピュータ装置１６は、レンダリングサーバ２４の１つから、レンダリングされた３次元仮想環境を表すストリーミングビデオを得る。
【００２７】
限られた機能のコンピュータ装置１６は、自身が仮想環境に参加することを可能にするよう、特定の実施形態に依存する複数本のソフトウェアを有してよい。例えば、限られた機能のコンピュータ装置１６は、コンピュータ１４と同じ仮想環境クライアントを有してよい。仮想環境クライアントは、限られた機能のコンピュータ装置１６のより限られた処理環境で実行されるよう適合されてよい。代替的に、図１に示されるように、限られた機能のコンピュータ装置１６は、仮想環境クライアント３０に代えてビデオデコーダ３１を使用してよい。ビデオデコーダ３１は、レンダリングサーバ２４によってレンダリングされて符号化された仮想環境を表すストリーミングビデオを復号化する。
【００２８】
限られた機能のコンピュータ装置１６は、ユーザからのユーザ入力を収集し、ユーザが仮想環境内のユーザのアバター及び仮想環境の他の特性を制御することを可能にするユーザ入力をレンダリングサーバ２４へ与えるユーザインターフェース３２を更に有する。ユーザインターフェース３２は、コンピュータ１４におけるユーザインターフェースと同じダッシュボードを提供しても、あるいは、限られた機能のコンピュータ装置１６に対する限られた利用可能な制御の組に基づく限られた特性をユーザに提供してもよい。ユーザは、ユーザインターフェース３２を介してユーザ入力を与え、特定のユーザ入力は、ユーザのためにレンダリングを実行しているサーバへ与えられる。レンダリングサーバ２４は、それらの入力を必要に応じて仮想環境サーバ２０へ供給することができ、仮想環境サーバ２０では、それらの入力は３次元仮想環境の他のユーザに作用する。
【００２９】
代替的に、限られた機能のコンピュータ装置１６は、限られた機能のコンピュータ装置１６がレンダリングサーバ２４からのストリーミングビデオを表示することを可能にするようウェブブラウザ３６及びビデオプラグイン３８を実装してよい。ビデオプラグイン３８は、ビデオが限られた機能のコンピュータ装置１６によって復号化されて表示されることを可能にする。この実施形態では、ウェブブラウザ３６又はプラグイン３８は、ユーザインターフェースとして機能してもよい。コンピュータ１４のように、限られた機能のコンピュータ装置１６は、ユーザが３次元仮想環境の他のユーザと会話することを可能にする通信クライアント３４を有してよい。
【００３０】
図２は、限られた機能のコンピュータ装置１６の一例を示す。図２に示されるように、一般的な携帯機器は、通常、キーパッド／キーボード７０、特別機能ボタン７２、トラックボール７４、カメラ７６、及びマイク７８等のユーザ入力装置４０を有する。更に、この手の装置は、通常、カラーＬＣＤディスプレイ８０及びスピーカ８２を有する。限られた機能のコンピュータ装置１６は、また、限られた機能のコンピュータ装置１６が１又はそれ以上の無線通信ネットワーク（例えば、携帯電話又は８０２．１１ネットワーク）上で通信し且つ特定のアプリケーションを実行することを可能にするよう、例えばプロセッサ、ハードウェア、及びアンテナ等のプロセッシング回路を備えている。多くのタイプの限られた機能のコンピュータ装置が開発されており、図２は、単に、典型的な限られた機能のコンピュータ装置の例を示すことを目的としている。
【００３１】
図２に示されるように、限られた機能のコンピュータ装置１６は、限られた制御を有してよい。これは、ユーザが、仮想環境内の自身のアバターの動作を制御し且つ仮想環境の他の様相を制御するためにユーザインターフェースに与えることができる入力のタイプを制限しうる。従って、ユーザインターフェースは、異なった装置における異なった制御が仮想環境内の同じ機能を制御するために使用されることを可能にするよう適合されてよい。
【００３２】
動作において、仮想環境サーバ２０は、レンダリングサーバ２４が限られた機能のコンピュータ装置１６の夫々について仮想環境をレンダリングすることを可能にするよう、仮想環境に関する情報をレンダリングサーバ２４に与える。レンダリングサーバ２４は、限られた機能のコンピュータ装置１６のために仮想環境をレンダリングするよう、サーバ２４によってサポートされている限られた機能のコンピュータ装置１６の代わりに仮想環境クライアント３０を導入する。限られた機能のコンピュータ装置１６のユーザは、仮想環境において自身のアバターを制御するようユーザ入力装置４０と相互作用する。ユーザ入力装置４０を介して受け取られる入力は、ユーザインターフェース３２、仮想環境クライアント３０、又はウェブブラウザ３６によって捕捉され、レンダリングサーバ２４へ返される。レンダリングサーバ２４は、コンピュータ１４における仮想環境クライアント３０が入力を使用するのと同じようにして入力を用い、それにより、ユーザは仮想環境内の自身のアバターを制御することができる。レンダリングサーバ２４は、３次元仮想環境をレンダリングし、ストリーミングビデオを生成し、ビデオを限られた機能のコンピュータ装置１６へストリーミングする。ビデオは、ディスプレイ／オーディオ４２でユーザに提示され、それにより、ユーザは、３次元仮想環境に参加することができる。
【００３３】
図３は、例となるレンダリングサーバ２４の機能ブロック図を示す。図３に示される実施形態では、レンダリングサーバ２４は、制御ロジック５２を含むプロセッサ５０を有する。プロセッサ５０は、メモリ５４からソフトウェアをロードされる場合に、レンダリングサーバ２４に、限られた機能のコンピュータ装置クライアントのために３次元仮想環境をレンダリングさせ、レンダリングされた３次元仮想環境をストリーミングビデオへ変換させ、ストリーミングビデオを出力させる。１又はそれ以上のグラフィックカード５６は、描画処理の具体的な状態を扱うようサーバ２４に含まれてよい。幾つかの実施において、実質的に、３Ｄ描画からビデオ符号化までの全体的な３Ｄ描画及びビデオ符号化処理は、最新のプログラム可能グラフィックカードにおいて達成可能なである。近い将来において、ＧＰＵ（グラフィック処理ユニット）は、描画及び符号化の複合的な処理を実行する理想的なプラットフォームでありうる。
【００３４】
表される実施形態では、レンダリングサーバ２４は、複合型３次元レンダラ及びビデオエンコーダ５８を有する。複合型３次元レンダラ及びビデオエンコーダ５８は、限られた機能のコンピュータ装置１６の代わりに仮想環境の３次元表現をレンダリングするよう、限られた機能のコンピュータ装置１６の代わりに３次元仮想環境描画処理として動作する。この３Ｄ描画処理はビデオ符号化処理と情報を共有する。それにより、３Ｄ描画処理は、ビデオ符号化処理に影響を及ぼすために使用されてよく、また、ビデオ符号化処理は、３Ｄ描画処理に影響を及ぼすことができる。複合的な３次元描画及びビデオ符号化処理５８の動作に関する更なる詳細については、図４に関連して以下で記載する。
【００３５】
レンダリングサーバ２４は、限られた機能のコンピュータ装置１６のユーザから入力を受け取るよう相互作用ソフトウェア６０を更に有し、それにより、ユーザは、仮想環境内の自身のアバターを制御することができる。任意に、レンダリングサーバ２４は、付加的な構成要素を更に有してよい。例えば、図３において、レンダリングサーバ２４は、サーバが限られた機能のコンピュータ装置１６の代わりに音声ミキシングを実施することを可能にするオーディオコンポーネント６２を更に有する。このように、この実施形態では、レンダリングサーバ２４は、そのクライアントの代わりにレンダリングを実施するのみならず、通信サーバ２２として動作している。なお、本発明は、このような実施形態に限られず、複数の機能が、単一の組のサーバによって実施されてよく、あるいは、異なる機能が、分けられて、図１に示される別個のグループのサーバによって実施されてよい。
【００３６】
図４は、本発明の実施形態に従ってレンダリングサーバ２４によって実施される複合的な３Ｄ描画及びビデオ符号化処理を示す。同様に、複合的な３Ｄ描画及びビデオ符号化処理は、３Ｄ仮想環境内のユーザの活動を記録するよう、レンダリングサーバ２４によって又はコンピュータ１４によって実施されてよい。
【００３７】
図４に示されるように、３次元仮想環境が表示のためにレンダリングされ、次いでネットワーク上での伝送のためにビデオに符号化される場合に、複合的な３Ｄ描画及びビデオ符号化処理は、論理的に、幾つかの異なったフェーズ（図４における符号１００〜１６０）を通る。実際には、異なるフェーズの機能は、具体的な実施形態に依存して、交換さても、又は異なった順序で起きてもよい。更に、別の実施は、幾分異なって描画及び符号化処理を考えてよく、そのようにして、３次元仮想環境がレンダリングされて、記憶又は視聴者への伝送のために符号化される方式について述べる他の方法を有してよい。
【００３８】
図４において、３Ｄ描画及びビデオ符号化処理の第１フェーズは、３次元仮想環境のモデルビューを生成することである（１００）。これを行うために、３Ｄ描画処理は、最初に仮想環境の初期モデルを生成し、続くイタレーションにおいて、３次元モデルに対して行われた対象の動き及び他の変化を探すようシーン／ジオメトリデータを詳しく検討する。３Ｄ描画処理は、また、３次元モデル内の視点を決定するようビューカメラの照準及び移動も考える。カメラの位置及び向きを知ることは、３Ｄ描画処理が、どの対象が３次元モデルの他の特徴によって遮られているのかを決定するよう対象視認性確認を行うことを可能にする。
【００３９】
本発明の実施形態に従って、カメラの移動又は位置及び照準方向、並びに目に見える対象の動きは、（後述される）ビデオ符号化処理による使用のために記憶される。それにより、これらの情報は、ビデオ符号化処理の間、動き推定の代わりに使用されてよい。具体的に、３Ｄ描画処理は、どの対象が動いているのかを知っており、どの動きが生成されているのかを知っているので、かかる情報は、動き推定の代わりに、又は動き推定に対するガイドとして使用されてよく、ビデオ符号化処理の動き推定部分を簡単にする。このように、３Ｄ描画処理から入手できる情報は、ビデオ符号化を助けるために使用されてよい。
【００４０】
更に、ビデオ符号化処理は、３次元描画処理とともに行われているので、ビデオ符号化処理に関する情報は、どのように仮想環境クライアントが仮想環境をレンダリングするのかを選択するために使用されてよく、それにより、レンダリングされた仮想環境は、ビデオ符号化処理によって最適に符号化されるよう構成される。例えば、３Ｄ描画処理は、最初に、３次元仮想環境のモデルビューに含まれるディテールのレベルを選択する。ディテールのレベルは、どの程度のディテールが仮想環境の特徴に加えられるのかに作用する。例えば、視聴者に極めて近い煉瓦壁は、灰色のモルタル線によって隙間を満たされた個々の煉瓦を示すようテクスチャ加工されてよい。同じ煉瓦壁が、より遠くから見られる場合は、単に赤一色に色づけられてよい。
【００４１】
同様に、特定の遠い対象は、仮想環境のモデルビューに含まれるには小さすぎると見なされることがある。人物が仮想環境内を移動しているとき、それらの対象は、アバターが対象がモデルビュー内に含まれるほど十分に近づくにつれて、画面に入ってくる。モデルビューに含まれるディテールのレベルの選択は、最終的に最後のレンダリングされたシーンに含まれるには小さすぎる対象を削除するよう、処理の初期に起こる。それにより、描画処理は、それらの対象をモデリングするリソースを消費する必要がない。このことは、描画処理が、ストリーミングビデオの限られた解像度を鑑みて、最終的に小さすぎて見ることができないアイテムを表す対象をモデルイングするリソースを浪費することを回避するよう合わせられることを可能にする。
【００４２】
本発明の実施形態に従って、３Ｄ描画処理は、限られた機能のコンピュータ装置へビデオを伝送するためにビデオ符号化処理によって使用される意図された目標のビデオサイズ及びビットレートを学習することができるので、目標のビデオサイズ及びビットレートは、初期モデルビューを生成しながら、ディテールのレベルを設定するために使用されてよい。例えば、ビデオ符号化処理が、ビデオが３２０×２４０画素解像度ビデオを用いてモバイル機器へストリーミングされると知っている場合、この意図されたビデオ解像度レベルは、３Ｄ描画処理がディテールのレベルを下げることを可能にするよう３Ｄ描画処理へ与えられてよい。それにより、３Ｄ描画処理は、ビデオ符号化処理によって取り上げられる全てのディテールを後に有するためだけには極めて詳細なモデルビューをレンダリングしない。それどころか、ビデオ符号化処理が、ビデオが９６０×５４０画素解像度ビデオを用いて高出力ＰＣへストリーミングされると知っている場合、描画処理は、よりずっと高いディテールのレベルを選択してよい。
【００４３】
ビットレートも、視聴者に与えられるディテールのレベルに作用する。具体的に、低いビットレートでは、高精細のビデオストリームは視聴者側で不鮮明になり始める。これは、ビデオ符号化処理から出力されるビデオストリームに含まれ得るディテールの量を制限する。従って、目標のビットレートを知ることは、３Ｄ描画処理が、視聴者へビデオを伝送するために使用される最終のビットレートを鑑みて、十分なディテールを有するが過剰なディテールを有さないモデルビューの生成をもたらすディテールのレベルを選択することを助けることができる。３Ｄモデルへの包含のために対象を選択することに加えて、ディテールのレベルは、ビデオ解像度及びビットレートのための適切な値へテクスチャ解像度を調整すること（より低い解像度のＭＩＰマップを選択すること）によって、合わせられる。
【００４４】
仮想環境の３Ｄモデルビューを生成した後、３Ｄ描画処理は、モデルビューがモデル空間からビュー空間へ変換されるジオメトリフェーズ（１１０）に進む。このフェーズの間、３次元仮想環境のモデルビューは、カメラ及び目に見える対象のビューに基づいて変換され、それにより、ビュー投写が計算され、必要に応じてクリッピングされる。このことは、特定の時点におけるカメラの視点に基づく仮想環境の３Ｄモデルの２次元スナップショットへの変換をもたらす。２次元スナップショットは、ユーザのディスプレイ上に示される。
【００４５】
描画処理は、３Ｄ仮想環境のフルモーション動作をシミュレーションするよう毎秒当たり複数回行われてよい。本発明の実施形態に従って、視聴者へビデオをストリーミングするようコーデックによって使用されるビデオフレームレートは描画処理へ送られ、それにより、描画処理は、ビデオエンコーダと同じフレームレートでレンダリングを行うことができる。例えば、ビデオ符号化処理が２４フレーム毎秒（ｆｐｓ）で動作している場合、このフレーム符号化レートは、描画処理に２４ｆｐｓでレンダリングを行わせるよう描画処理へ送られてよい。同様に、フレーム符号化処理が６０ｆｐｓでビデオを符号化している場合、描画処理は６０ｆｐｓでレンダリングを行うべきである。更に、符号化レートと同じフレームレートでレンダリングすることによって、レンダリングレートとフレーム符号化レートとの間の不一致が存在する場合に起こりうるジッタ及び／又はフレーム補間を行うための余分の処理を回避することが可能である。
【００４６】
実施形態に従って、仮想環境のモデルビューを生成している間に記憶された運動ベクトル及びカメラビュー情報もビュー空間へと変換される。運動ベクトルをモデル空間からビュー空間へ変換することは、運動ベクトルが、以下でより詳細に論じられるように、動作検出の代わりとしてビデオ符号化処理によって使用されることを可能にする。例えば、３次元空間において動いている対象が存在する場合、この対象の動きは、どのように動きがカメラの視野から現れるのかを示すよう変換される必要がある。別の言い方をすれば、３次元仮想環境における対象の動作は、それがユーザのディスプレイ上に現れるように、２次元空間に変換されなければならない。同様に、運動ベクトルは、それらが画面上の対象の動きに対応するように変換され、それにより、運動ベクトルは、ビデオ符号化処理によって動き推定の代わりに使用される。
【００４７】
ジオメトリが確立されると、３Ｄ描画処理は、仮想環境の面を表現するようトライアングルを生成する（１２０）。３Ｄ描画処理は、一般に、３次元仮想環境の全ての面がトライアングルを生成するよう互いにぴったり合わせられるようにしかトライアングルをレンダリングせず、カメラ視点から見えないトライアングルはカリング（culling）を受ける。トライアングル生成フェーズの間、３Ｄ描画処理は、レンダリングされるべきトライアングルのリストを生成する。傾き／デルタ計算及び走査線変換等の通常の動作はこのフェーズ中に実施される。
【００４８】
次いで、３Ｄ描画処理は、ディスプレイ４２に示される画像を生成するようトライアングルをレンダリングする（１３０）。トライアングルのレンダリングは、通常、トライアングルのシェーディング、テクスチャの付加、フォグ（fog）、及び他の効果（例えば、奥行きバッファリング（depth  buffering）及びアンチエイリアス（anti-aliasing）等）を伴う。次いで、トライアングルは通常通りに表示される。
【００４９】
３次元仮想環境描画処理は、赤緑青（ＲＧＢ）色空間においてレンダリングを行う。これは、ＲＧＢ色空間が、データを表示するためにコンピュータモニタによって使用される色空間であることによる。なお、レンダリングされた３次元仮想環境は、ＲＧＢ色空間において仮想環境をレンダリングすることよりむしろ、ビデオ符号化処理によってストリーミングビデオへと符号化されるので、レンダリングサーバの３Ｄ描画処理は、代わりに、ＹＵＶ色空間において仮想環境をレンダリングする。ＹＵＶ色空間は、１つの輝度成分（Ｙ）と、２つの色成分（Ｕ及びＶ）とを含む。ビデオ符号化処理は、通常、符号化の前に、ＲＧＢ色空間をＹＵＶ色空間へ変換する。ＲＧＢ色空間ではなくＹＵＶ色空間においてレンダリングすることによって、この変換処理は、ビデオ符号化処理の実行を改善するよう削除されてよい。
【００５０】
更に、本発明の実施形態に従って、テクスチャ選択及びフィルタリング処理は、目標のビデオ及びビットレートに合わせられる。上述されたように、描画フェーズ（１３０）の間に実行される処理の１つは、テクスチャをトライアングルに適用することである。テクスチャは、トライアングルの面の実際の外観である。従って、例えば、煉瓦壁の一部のように見えるべきトライアングルをレンダリングするには、煉瓦壁テクスチャがトライアングルに適用される。テクスチャは面に適用され、一貫した３次元ビューを提供するようにカメラの視点に基づいてスキューを受ける。
【００５１】
テクスチャ加工処理の間、カメラ視点に対するトライアングルの特定の角度に依存して、テクスチャはぼかされることが可能である。例えば、３Ｄ仮想環境のビュー内で大きく傾いで描かれているトライアングルに適用される煉瓦テクスチャは、シーン内のトライアングルの位置付けのために、極めて不鮮明にされてよい。従って、特定の面に対するテクスチャは、異なったＭＩＰを使用するよう調整されてよく、それにより、トライアングルに対するディテールのレベルは、視聴者がどのみち見ることができそうにない複雑さを取り除くよう調整される。実施形態に従って、テクスチャ解像度（適切なＭＩＰの選択）及びテクスチャフィルタアルゴリズムは、目標のビデオ符号化解像度及びビットレートによって影響を及ぼされる。これは、最初の３Ｄシーン生成フェーズ（１００）に関連して上述されたディテールのレベルの調整と同様であるが、レンダリングされたトライアングルが、ビデオ符号化処理によってストリーミングビデオへと符号化されると視覚的に現れるディテールのレベルを有して個々に生成されることを可能にするよう、トライアングルごとに適用される。
【００５２】
トライアングルのレンダリングは描画処理を完結する。通常は、この時点で、３次元仮想環境は、ユーザのディスプレイ上でユーザに示される。しかし、限られた機能のコンピュータ装置のために、又はビデオアーカイブ目的のために、このレンダリングされた３次元仮想環境は、ビデオ符号化処理による伝送ためにストリーミングビデオへと符号化される。多種多様なビデオ符号化処理が長い期間にわたって開発されているが、現在、より高性能のビデオ符号化処理は、一般的に、各フレームでシーンを完全に再描画するよう単に画素データを伝送することよりむしろ、シーン内の対象の動きを探すことによってビデオを符号化する。以下では、ＭＰＥＧビデオ符号化処理について記載する。本発明はこの特定の実施形態に限られず、他のタイプのビデオ符号化処理が同様に使用されてよい。図４に示されるように、ＭＰＥＧビデオ符号化処理は、通常、ビデオフレーム処理（１４０）と、Ｐ（予測（predictive））及びＢ（双方向予測（bi-directional  predictive））フレーム符号化（１５０）と、Ｉ（内部符号化（intracoded））フレーム符号化（１６０）とを含む。Ｉフレームは圧縮されるが、解凍されるよう他のフレームに依存しない。
【００５３】
通常は、ビデオフレー処理（１４０）の間、ビデオプロセッサは、目標のビデオサイズ及びビットレートのために、３Ｄ描画処理によってレンダリングされる３次元仮想環境の画像をリサイズする。しかし、目標のビデオサイズ及びビットレートは、目標のビットレートのために調整されたディテールのレベルを有して正確なサイズで３次元仮想環境をレンダリングするために３Ｄ描画処理によって使用されたので、ビデオエンコーダはこの処理を飛ばしてよい。同様に、ビデオエンコーダは、通常、更に、ストリーミングビデオとして符号化されたレンダリングされた仮想環境を有する準備をするようＲＧＢからＹＵＶへ変換する色空間変換を実行する。しかし、上述されたように、本発明の実施形態に従って、描画処理はＹＵＶ色空間においてレンダリングを行うよう構成されており、それにより、かかる変換処理はビデオフレーム符号化処理によって省略されてよい。従って、ビデオ符号化処理から３Ｄ描画処理へ情報を提供することによって、３Ｄ描画処理は、ビデオ符号化処理の複雑さを低減するようチューンされてよい。
【００５４】
ビデオ符号化処理は、また、実施される符号化のタイプ及び運動ベクトルに基づいて、ビデオを符号化するために使用されるマクロブロックサイズを調整する。ＭＰＥＧ２は、ブロックとして知られる画素の８×８配列で動作する。２×２ブロック配列は、一般にマクロブロックと呼ばれる。他のタイプの符号化処理は異なるマクロブロックサイズを使用してよく、マクロブロックのサイズは、仮想環境で起こる動作の量に基づいて調整されてもよい。実施形態に従って、マクロブロックサイズは、運動ベクトル情報に基づいて調整されてよく、それにより、運動ベクトルから決定されるフレーム間で起こる動作の量は、符号化処理の間に使用されるマクロブロックサイズに影響を及ぼすために使用されてよい。
【００５５】
更に、ビデオフレーム符号化フェーズの間、マクロブロックを符号化するために使用されるフレームのタイプが選択される。ＭＰＥＧ２では、例えば、複数のフレームタイプが存在する。Ｉフレームは予測なしで符号化され、Ｐフレームは、前のフレームからの予測を用いて符号化されてよく、Ｂフレームは、前後のフレームからの予測を用いて符号化されてよい。
【００５６】
通常のＭＰＥＧビデオ符号化では、符号化されるフレームに係る画素値のマクロブロックを表すデータは、減算器及び動き推定器の両方に与えられる。動き推定器は、これらの新しいマクロブロックの夫々を、以前に記憶されたイタレーションにおけるマクロブロックと比較して、新しいマクロブロックに最も一致する以前のイタレーションにおけるマクロブロックを見つけ出す。次いで、動き推定器は、以前のイタレーションにおける一致するマクロブロックサイズ領域へ符号化されるマクロブロックから、水平及び垂直動作を表す運動ベクトルを計算する。
【００５７】
本発明の実施形態に従って、画素データに基づく動き推定を使用することよりむしろ、記憶されている運動ベクトルが、フレーム内の対象の動きを決定するために使用される。上述されたように、カメラ及び目に見える対象の動きは、３Ｄシーン生成フェーズ（１００）の間に記憶されて、ジオメトリフェーズの間（１１０）にビュー空間へ変換される。このように変換された運動ベクトルは、ビュー内の対象の動きを決定するためにビデオ符号化処理によって使用される。運動ベクトルは、ビデオ符号化処理を簡単にするよう、ビデオフレーム処理フェーズの間の運動推定処理において、動き推定の代わりに使用されても、あるいは、ガイダンスを提供するために使用されてもよい。例えば、変換された運動ベクトルが、野球がシーン内の左へ１２画素だけ移動したことを示す場合に、変換された運動ベクトルは、それが最初に前のフレームにおいて位置していたところから左へ１２画素だけ画素ブロックを検索し始めるよう動き推定処理において使用されてよい。代替的に、変換された運動ベクトルは、野球に関連する画素のブロックを、ビデオエンコーダにその位置でのブロックを探すよう画素比較を行うよう求めることなく、単に左へ１２画素だけ平行移動させるために、動き推定の代わりに使用されてよい。
【００５８】
ＭＰＥＧ２では、動き推定器は、また、この一致するマクロブロック（予測マクロブロックとして知られる。）を基準ピクチャメモリから読み出し、それを減算器へ送る。減算器は、画素ごとに、それをエンコーダに入る新しいマクロブロックから減じる。これは、予測マクロブロックと符号化される実際のマクロブロックとの間の差を表す誤差予測又は剰余信号を形成する。剰余は、分離可能な垂直方向及び水平方向の１次元ＤＣＴを含む２次元離散コサイン変換（ＤＣＴ）によって空間領域から変換される。次いで、剰余のＤＣＴ係数は、各係数を表すために必要とされるビット数を減らすよう量子化される。
【００５９】
量子化されたＤＣＴ係数はハフマン・ラン／レベル符号化を受け、係数ごとの平均ビット数は更に低減される。誤差剰余の符号化されたＤＣＴ係数は、運動ベクトルデータ及び他のサイド情報（Ｉ、Ｐ又はＢピクチャの表示を含む。）と結合される。
【００６０】
Ｐフレームの場合に、量子化されたＤＣＴ係数は、更に、デコーダ（エンコーダ内のデコーダ）の動作を表す内部ループに進む。剰余は逆量子化及び逆ＤＴＣ変換を受ける。基準フレームメモリから読み出された予測マクロブロックは、画素ごとに剰余に戻され、後のフレームを予測するために基準としてセーブするようメモリに記憶される。対象は、エンコーダの基準フレームメモリにおけるデータをデコーダの基準フレームメモリにおけるデータに一致させるべきである。Ｂフレームは、基準フレームとして記憶されない。
【００６１】
Ｉフレームの符号化は同じ処理を使用するが、動き推定は行われず、現在への（−）入力は０にされる。この場合に、量子化されたＤＣＴ係数は、Ｐ及びＢフレームの場合のように、剰余値よりむしろ、変換された画素値を表す。Ｐフレームの場合のように、復号化されたＩフレームが基準フレームとして記憶される。
【００６２】
特定の符号化処理（ＭＰＥＧ２）について記載してきたが、本発明はこの具体的な実施形態に限られず、他の符号化ステップが実施形態に依存して利用されてよい。例えば、ＭＰＥＧ４及びＶＣ−１は、同じであるが、幾分より高度な符号化処理を用いる。これらの及び他のタイプの符号化処理が使用されてよく、本発明は、まさにこの符号化処理を使用する実施形態に限られない。上述されたように、本発明の実施形態に従って、３次元仮想環境内の対象に関する運動情報は捕捉され、ビデオ符号化処理の動き推定処理をより効率的にするようビデオ符号化処理の間使用されてよい。これに関連して使用される特定の符号化処理は、具体的な実施に依存する。それらの運動ベクトルは、また、ビデオを符号化するために使用される最適なブロックサイズと、使用されるべきフレームのタイプとを決定するのを助けるためにも、ビデオ符号化処理によって使用されてよい。他の面では、３Ｄ描画処理は、ビデオ符号化処理によって使用される目標の画面サイズ及びビットレートを知っているので、３Ｄ描画処理は、ビデオ符号化処理のための正確なサイズであり、ビデオ符号化処理のための正確なディテールのレベルを有し、正確なフレームレートでレンダリングされ、且つ、ビデオ符号化処理が伝送のためにデータを符号化するために使用する正確な色空間を用いてレンダリングされる３次元仮想環境のビューをレンダリングするようチューンされてよい。このように、両方の処理は、それらを、図３の実施形態において示される単一の複合型３Ｄレンダラ及びビデオエンコーダ５８にまとめることによって、最適化されてよい。
【００６３】
上述された機能は、ネットワーク要素内のコンピュータ可読メモリに記憶され且つネットワーク要素内の１又はそれ以上のプロセッサで実行される１又はそれ以上のプログラム命令の組として実施されてよい。しかし、当業者には明らかなように、ここで記載される全てのロジックは、個別のコンポーネント、特定用途向け集積回路（ＡＳＩＣ）等の集積回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）又はマイクロプロセッサ等のプログラム可能論理デバイスとともに使用されるプログラム可能ロジック、状態機械、あるいは、それらのいずれかの組合せを含むその他のデバイスを用いて具現されてよい。プログラム可能ロジックは、読出専用メモリチップ、コンピュータメモリ、ディスク、又は他の記憶媒体等の有形な媒体において一時的に又は永久的に用意されてよい。このような実施形態は全て、本発明の適用範囲内にあるよう意図される。
【００６４】
当然、図面において図示され且つ明細書において記載される実施形態の種々の変更及び改良は、本発明の精神及び適用範囲の中で行われてよい。然るに、上記記載に含まれ且つ添付の図面において図示される全ての事項は、限定の意味ではなく例示の意味に解釈されるべきである。本発明は、特許請求の範囲及びその均等において定義されるものとしてのみ限定される。
【図１】
0005491517.tif 000002
【図２】
0005491517.tif 000003
【図３】
0005491517.tif 000004
【図４】
0005491517.tif 000005