(57)【要約】  実時間性が重要とされ、短い周期で発生するデータを、遅延および伝送データの欠落を生じさせるネットワークを介して良好に伝送できるデータ伝送システムを提供する。ユーザの操作に応じて、アバタ位置処理部２０２は、ネットワークゲームのキャラクタ（アバタ）の仮想空間における位置を示す位置更新情報ｘ［ｎ］を、周期的に生成する。位置推定情報作成部２０８は、位置更新情報ｘ［ｎ］から、先の周期におけるアバタの位置を推定する位置推定位置情報ｙ［ｍ］を生成する。これら位置更新情報ｘ［ｎ］および位置推定位置情報ｙ［ｍ］は、ゲームサーバ２側からゲームクライアントコンピュータ３側に送られ、欠落した位置更新情報ｘ［ｎ］の復元あるいは推定が行われ、アバタの表示が行われる。
2008126701.tif 000002
【特許請求の範囲】
【請求項１】
所定の周期ごとに生成される伝送データと、前記伝送データの１つ以上に基づいて、これらよりも先の周期における伝送データを推定する推定データとを、送信装置から、ネットワークを介して、受信装置に対して伝送するデータ伝送システムであって、
前記ネットワークは前記伝送データに対して遅延と欠落とを生じさせ、
前記送信装置は、
前記伝送データを生成する伝送データ生成手段と、
前記推定データを生成する推定データ生成手段と、
前記生成された伝送データを送信し、前記ネットワーク上で割り当てられた帯域幅と前記伝送データの帯域幅との差分の帯域幅を用いて、前記生成された推定データを送信する送信手段と
を有し、
前記受信装置は、
前記送信された伝送データと推定データとを受信する受信手段と、
前記伝送データが欠落したときに、前記欠落した伝送データを、前記受信された伝送データと前記推定データとを用いて復元または推定する復元・推定手段と
を有する
データ伝送システム。
【請求項２】
前記受信装置は、前記ネットワークにおいて伝送データに生じた遅延を補償する遅延補償手段
をさらに有する請求項１に記載のデータ伝送システム。
【請求項３】
前記送信装置は、
前記ネットワーク上で割り当てられた帯域幅と前記伝送データの帯域幅との差分と、前記生成された推定データの送信に必要な帯域幅とに基づいて、前記推定データが送信可能か否かを判断する送信可能性判断手段
をさらに有し、
前記送信手段は、前記推定データが送信可能と判断されたときに、前記推定データを送信する
請求項１または２に記載のデータ伝送システム。
【請求項４】
前記送信可能性判断手段は、前記推定データを送信しても、前記送信された推定データの帯域幅が、前記ネットワーク上で割り当てられた帯域幅と前記伝送データの帯域幅との差分を超えないように、トークンバケット(token bucket)方式により、前記推定データが送信可能か否かを判断する
請求項３に記載のデータ伝送システム。
【請求項５】
前記送信装置は、
前記伝送データの送信から、この伝送データを用いた推定のために用いられる推定データの送信までの時間差が、所定の閾値よりも短いか否かを判断する送信時間判断手段
をさらに有し、
前記送信手段は、前記推定データの送信までの時間差が、前記所定の閾値よりも短いときに、前記推定データを送信する
請求項３または４に記載のデータ伝送システム。
【請求項６】
前記受信装置は、
前記伝送データの受信から所定の閾値以内の時間差で次の周期の前記伝送データが受信されたか否かを判断する受信時間判断手段
をさらに有し、
前記推定手段は、前記次の周期の前記伝送データが前記所定の閾値以内の時間差で受信されなかったときに、前記受信された伝送データの次の伝送データの推定を行う
請求項１〜５のいずれかに記載のデータ伝送システム。
【請求項７】
前記受信装置は、
前記受信された伝送データおよび前記推定された伝送データまたはこれらのいずれかに基づいて、将来、受信されるべき伝送データを予測する予測手段
をさらに有する
請求項１〜６のいずれかに記載のデータ伝送システム。
【請求項８】
前記伝送データは、移動物の位置を、前記周期ごとに示す
請求項１〜６のいずれかに記載のデータ伝送システム。
【請求項９】
前記伝送データは、１つ以上のアバタ(avatar)を移動させて行うネットワークゲームにおける前記アバタそれぞれの位置を、前記周期ごとに示す
請求項１〜６のいずれかに記載のデータ伝送システム。
【請求項１０】
所定の周期ごとに生成される伝送データと、前記伝送データの１つ以上に基づいて、これらよりも先の周期における伝送データを推定する推定データとを、送信装置から、ネットワークを介して、受信装置に対して伝送するデータ伝送方法であって、
前記ネットワークは前記伝送データに対して遅延と欠落とを生じさせ、
前記送信装置は、
前記伝送データを生成し、
前記推定データを生成し、
前記生成された伝送データを送信し、前記ネットワーク上で割り当てられた帯域幅と前記伝送データの帯域幅との差分の帯域幅を用いて、前記生成された推定データを送信し、  前記受信装置は、
前記送信された伝送データと推定データとを受信し、
前記伝送データが欠落したときに、前記欠落した伝送データを、前記受信された伝送データと前記推定データとを用いて復元または推定する
データ伝送方法。
【請求項１１】
所定の周期ごとに生成される伝送データと、前記伝送データの１つ以上に基づいて、これらよりも先の周期における伝送データを推定する推定データとを、送信装置から、ネットワークを介して、受信装置に対して伝送するデータ伝送プログラムであって、
前記ネットワークは前記伝送データに対して遅延と欠落とを生じさせ、
前記送信装置において、
前記伝送データを生成する伝送データ生成ステップと、
前記推定データを生成する推定データ生成ステップと、
前記生成された伝送データを送信し、前記ネットワーク上で割り当てられた帯域幅と前記伝送データの帯域幅との差分の帯域幅を用いて、前記生成された推定データを送信する送信ステップと
をコンピュータに実行させ、
前記受信装置において、
前記送信された伝送データと推定データとを受信する受信ステップと、
前記伝送データが欠落したときに、前記欠落した伝送データを、前記受信された伝送データと前記推定データとを用いて復元または推定する復元・推定ステップと
をコンピュータに実行させる
データ伝送プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、周期的に生成される伝送データを伝送するデータ伝送システムおよびその方法に関する。
【背景技術】
【０００２】
多数のクライアントコンピュータのユーザが、ネットワークを介してゲームサーバコンピュータに接続し、実時間的にゲームを楽しむネットワークゲームシステムが稼働している。
このようなネットワークゲームの例として、ユーザ（プレーヤ）がゲーム内で用いる人物の画像（アバタ(avatar)）が、プレーヤの操作に従って、実時間的に、ゲームの仮想世界内を自在に移動し、出会った他のプレーヤのアバタと戦ったり、銃を撃ち合ったりするファーストパーソンシューティングゲーム(first person shooting game)を挙げることができる。【０００３】
このようなネットワークゲームにおいては、クライアントコンピュータそれぞれに、表示されうる範囲にある全てのアバタが表示されなければならない。
上述のようなネットワークゲームの実現のためには、アバタのゲーム仮想世界における位置などが、遅延および伝送データの欠落を生じさせるネットワークを介して、クライアントコンピュータとゲームサーバとの間で、短い周期で、実時間的に伝送される必要がある。
【非特許文献１】"bzflag,"http://wwsv.bzffag.org.
【非特許文献２】"sauerbraten,"http://sauerbraten.org.
【非特許文献３】G. Arrnitage, M. Claypool, and P. Branch, Networking and Online Games: Understanding and Engineering Multiplayer Internet Games, John Wiley and Sons Ltd, 2006.
【非特許文献４】L. Pantel and L. Wolf, "On the suitability ofdead reckoning schemes for games:' in ACMSIGCOMMNetGames, Braunschweig, Germany, April 2002.
【非特許文献５】S Aggarwal H Banavar and A Khandelwal "Accuracy in dead-reckoning based distributed multi-player games:' in ACM SIGCOMM NetGames, Portland, OR, August 2004.
【非特許文献６】M. Mauve, "How to keep a dead man from shooting," in Interactive Distributed Multimedia Systems and Telecommunication Se,vices, 2000 , pp. 1 99-204.
【非特許文献７】W. Press, S. Teukolsky, W. Vetterling, and B. Flaunery, Eds., Numerical Recipes in C+ +. Cambridge University Press, 2002.
【非特許文献８】M. Hayes, Statistical Digital Signal Processing and Modeling, John Wiley and Son Ltd, 2005.
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、上述のような背景からなされたものであって、実時間性が重要とされ、周期的に発生するデータを、遅延および伝送データの欠落を生じさせるネットワークを介して伝送するために改良されたデータ伝送システムおよびその方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明にかかるデータ伝送システムは、所定の周期ごとに生成される伝送データと、前記伝送データの１つ以上に基づいて、これらよりも先の周期における伝送データを推定する推定データとを、送信装置から、ネットワークを介して、受信装置に対して伝送するデータ伝送システムであって、前記ネットワークは前記伝送データに対して遅延と欠落とを生じさせ、前記送信装置は、前記伝送データを生成する伝送データ生成手段と、前記推定データを生成する推定データ生成手段と、前記生成された伝送データを送信し、前記ネットワーク上で割り当てられた帯域幅と前記伝送データの帯域幅との差分の帯域幅を用いて、前記生成された推定データを送信する送信手段とを有し、前記受信装置は、前記送信された伝送データと推定データとを受信する受信手段と、前記伝送データが欠落したときに、前記欠落した伝送データを、前記受信された伝送データと前記推定データとを用いて復元または推定する復元・推定手段とを有する。【０００６】
好適には、前記受信装置は、前記ネットワークにおいて伝送データに生じた遅延を補償する遅延補償手段をさらに有する。【０００７】
好適には、前記送信装置は、前記ネットワーク上で割り当てられた帯域幅と前記伝送データの帯域幅との差分と、前記生成された推定データの送信に必要な帯域幅とに基づいて、前記推定データが送信可能か否かを判断する送信可能性判断手段をさらに有し、前記送信手段は、前記推定データが送信可能と判断されたときに、前記推定データを送信する。【０００８】
好適には、前記送信可能性判断手段は、前記推定データを送信しても、前記送信された推定データの帯域幅が、前記ネットワーク上で割り当てられた帯域幅と前記伝送データの帯域幅との差分を超えないように、トークンバケット(token bucket)方式により、前記推定データが送信可能か否かを判断する。【０００９】
好適には、前記送信装置は、前記伝送データの送信から、この伝送データを用いた推定のために用いられる推定データの送信までの時間差が、所定の閾値（Δ）よりも短いか否かを判断する送信時間判断手段をさらに有し、前記送信手段は、前記推定データの送信までの時間差が、前記所定の閾値よりも短いときに、前記推定データを送信する。【００１０】
好適には、前記受信装置は、前記伝送データの受信から所定の閾値（δ）以内の時間差で次の周期の前記伝送データが受信されたか否かを判断する受信時間判断手段をさらに有し、前記推定手段は、前記次の周期の前記伝送データが前記所定の閾値以内の時間差で受信されなかったときに、前記受信された伝送データの次の伝送データの推定を行う。【００１１】
好適には、前記受信装置は、前記受信された伝送データおよび前記推定された伝送データまたはこれらのいずれかに基づいて、将来、受信されるべき伝送データを予測する予測手段をさらに有する。【００１２】
好適には、前記伝送データは、移動物の位置を、前記周期ごとに示す。【００１３】
前記伝送データは、１つ以上のアバタ(avatar)を移動させて行うネットワークゲームにおける前記アバタそれぞれの位置を、前記周期ごとに示す。【００１４】
また、本発明にかかるデータ伝送方法は、所定の周期ごとに生成される伝送データと、前記伝送データの１つ以上に基づいて、これらよりも先の周期における伝送データを推定する推定データとを、送信装置から、ネットワークを介して、受信装置に対して伝送するデータ伝送方法であって、前記ネットワークは前記伝送データに対して遅延と欠落とを生じさせ、前記送信装置は、前記伝送データを生成し、前記推定データを生成し、前記生成された伝送データを送信し、前記ネットワーク上で割り当てられた帯域幅と前記伝送データの帯域幅との差分の帯域幅を用いて、前記生成された推定データを送信し、  前記受信装置は、前記送信された伝送データと推定データとを受信し、前記伝送データが欠落したときに、前記欠落した伝送データを、前記受信された伝送データと前記推定データとを用いて復元または推定する。【００１５】
また、本発明にかかるデータ伝送プログラムは、所定の周期ごとに生成される伝送データと、前記伝送データの１つ以上に基づいて、これらよりも先の周期における伝送データを推定する推定データとを、送信装置から、ネットワークを介して、受信装置に対して伝送するデータ伝送プログラムであって、前記ネットワークは前記伝送データに対して遅延と欠落とを生じさせ、前記送信装置において、前記伝送データを生成する伝送データ生成ステップと、前記推定データを生成する推定データ生成ステップと、前記生成された伝送データを送信し、前記ネットワーク上で割り当てられた帯域幅と前記伝送データの帯域幅との差分の帯域幅を用いて、前記生成された推定データを送信する送信ステップとをコンピュータに実行させ、前記受信装置において、前記送信された伝送データと推定データとを受信する受信ステップと、前記伝送データが欠落したときに、前記欠落した伝送データを、前記受信された伝送データと前記推定データとを用いて復元または推定する復元・推定ステップとをコンピュータに実行させる。
【発明の効果】
【００１６】
本発明にかかるデータ伝送システムおよびその方法によれば、実時間性が重要とされ、周期的に発生するデータを、遅延および伝送データの欠落を生じさせるネットワークを介して、良好に伝送することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明にかかるデータ伝送方法が適用されるネットワークゲームシステムの構成を例示する図である。
【図２】図１に示したゲームサーバおよびゲームクライアントコンピュータのハードウエア構成を例示する図である。
【図３】図１，図２に示したゲームサーバ上で実行されるサーバソフトウエア、および、ゲームクライアントコンピュータ上で実行されるクライアントソフトウエアのソフトウエア構成を示す図である。
【図４】ネットワークゲームの仮想空間を移動する各プレーヤのアバタを例示する図である。
【図５】図３に示した位置推定情報作成部が作成する位置推定情報ｙ［ｍ］を示す図である。
【図６】位置推定情報ｙ［ｎ＋１］の機能を例示する図であって、（Ａ）は、位置更新情報ｘ［１］〜ｘ［３］の内、位置更新情報ｘ［３］が欠落したときの位置推定情報ｙ［４］の機能を示し、（Ｂ）は、位置更新情報ｘ［２］が欠落したときの位置推定情報ｙ［４］の機能を示し、（Ｃ）は、位置更新情報ｘ［２］，ｘ［３］が欠落したときの位置推定情報ｙ［４］の機能を示し、（Ｄ）は、位置更新情報ｘ［４］が欠落したときの位置推定情報ｙ［４］の機能を示す。
【図７】ネットワークの伝送可能帯域Ｂと、位置更新情報ｘ［ｎ］の伝送のために使用される帯域Ｒとの関係を示す図である。
【図８】図８は、図３に示したトークン制御部により行われるトークンバケット方式による位置推定情報ｙ［ｍ］の伝送制御を示す図である。
【図９】図３に示した遅延制御部により行われる位置推定情報ｙ［ｍ］の伝送制御を例示する図である。
【図１０】図１０は、図９に示した位置推定情報ｙ［ｍ］の伝送制御で用いられる閾値とひずみ（ここでは実際の位置と推定位置の間の差分）の関係を例示する図である。
【図１１】上述の待ち時間閾値δとひずみ（実際の位置と推定位置の間の差分）の関係を例示する図である。
【発明を実施するための最良の形態】
【００１８】
［ネットワークゲームシステム１］
以下、本発明の実施形態を説明する。
図１は、本発明にかかるデータ伝送方法が適用されるネットワークゲームシステム１の構成を例示する図である。
図１に示すように、ネットワークゲームシステム１は、１台以上のゲームサーバ２と、複数のゲームクライアントコンピュータ３−１〜３−ｎ（ｎ≧２）とが、インターネットなどのネットワーク１００を介して接続されて構成される。
なお、以下、各図においては、実質的に同じ構成部分には同じ符号が付され、ゲームクライアントコンピュータ３−１〜３−ｎなど、複数ありうる構成部分のいずれかを特定せずに示すときには、単にゲームクライアントコンピュータ３と記載する。
また、ゲームサーバ２およびゲームクライアントコンピュータ３を総称して、ノードと記載することがある。【００１９】
［ハードウエア構成］
図２は、図１に示したゲームサーバ２およびゲームクライアントコンピュータ３のハードウエア構成を例示する図である。
図２に示すように、ゲームサーバ２およびゲームクライアントコンピュータ３は、ＣＰＵ１２２およびメモリ１２４などを含む本体１２０、ディスプレー装置およびキーボードなどを含む入出力装置１２６、他のノードとの通信を行う通信装置１２８およびＣＤ装置・ＨＤＤ装置などの記録装置１３２から構成される。
つまり、ゲームサーバ２およびゲームクライアントコンピュータ３は、ネットワーク１００を介して他のノードと通信可能なコンピュータとしてのハードウエア資源を有している。【００２０】
［ソフトウエア構成］
図３は、図１，図２に示したゲームサーバ２上で実行されるサーバソフトウエア２０、および、ゲームクライアントコンピュータ３上で実行されるクライアントソフトウエア３０のソフトウエア構成を示す図である。
サーバソフトウエア２０およびクライアントソフトウエア３０は、例えば、記憶媒体１３４（図２）を介してこれらに供給され、ネットワークゲームシステム１２４にロードされ、ＯＳ（図示せず）を介して、ゲームサーバ２およびゲームクライアントコンピュータ３のハードウエア資源を具体的に利用して実行される。
なお、図３には、ゲームサーバ２からゲームクライアントコンピュータ３に対して、各プレーヤのアバタの位置が伝送される場合が例示されており、これ以外の構成部分は省略されている。【００２１】
図３に示すように、サーバソフトウエア２０は、サーバ側ゲームソフトウエア２００およびサーバ側インターフェース（ＩＦ）ソフトウエア２０４から構成される。
サーバ側ゲームソフトウエア２００は、アバタ位置処理部２０２を含む。
サーバ側インターフェースソフトウエア２０４は、位置推定情報作成部２０８、送信部２１０、トークン制御部２１２および遅延制御部２１４を含む。【００２２】
クライアントソフトウエア３０は、クライアント側インターフェースソフトウエア３００、アバタ位置補正処理ソフトウエア３１０およびクライアント側ゲームソフトウエア３１２から構成される。
クライアント側インターフェースソフトウエア３００は、遅延制御部３０２、受信部３０４および復元・推定部３０６を含む。
サーバソフトウエア２０およびクライアントソフトウエア３０は、これらの構成部分により、プレーヤによるゲームクライアントコンピュータ３に対する操作を受け入れて、ゲームクライアントコンピュータ３の入出力装置１２６（図２）に、実時間的に各プレーヤのアバタを移動させて表示する。
つまり、サーバソフトウエア２０およびクライアントソフトウエア３０は、ファーストパーソンシューティングゲームなどの実時間性が重要とされるネットワークゲームを進行させるための機能を、プレーヤに提供する。【００２３】
［サーバソフトウエア２０］
図４は、ネットワークゲームの仮想空間を移動する各プレーヤのアバタを例示する図である。
サーバ側ゲームソフトウエア２００は、ゲームクライアントコンピュータ３のプレーヤからの操作に応じて、ネットワークゲームを進行させる。
サーバ側ゲームソフトウエア２００において、アバタ位置処理部２０２は、ネットワークゲームの仮想空間における各ユーザのアバタの位置を示す位置更新情報ｘ［ｎ］を、一定の周期Ｔ（例えば１／１０秒）ごとに作成し、サーバ側インターフェースソフトウエア２０４に対して出力する。【００２４】
［サーバ側インターフェースソフトウエア２０４］
図５は、図３に示した位置推定情報作成部２０８が作成する位置推定情報ｙ［ｍ］を示す図である。
サーバ側インターフェースソフトウエア２０４において、位置推定情報作成部２０８は、図５に斜線を付した円で示すように、アバタ位置処理部２０２から入力され、各時点（０〜３Ｔ）におけるアバタの位置を示す位置更新情報ｘ［ｎ］から、図５に白い円で示すように、次の時点（Ｔ４）アバタの位置を推定して示す位置推定情報ｙ［ｎ＋１］を作成する。
次の時点の位置推定情報ｙ［ｎ＋１］と、その時点までの位置更新情報ｘ［ｎ］，ｘ［ｎ−１］，・・・，ｘ［ｎ−ｋ］（ｋ≧１）との関係は、
ｙ［ｎ＋１］＝ｆ（ｘ［ｎ］，ｘ［ｎ−１］，・・・，ｘ［ｎ−ｋ］）
と表すことができる。【００２５】
図６は、位置推定情報ｙ［ｎ＋１］の機能を例示する図であって、（Ａ）は、位置更新情報ｘ［１］〜ｘ［３］の内、位置更新情報ｘ［３］が欠落したときの位置推定情報ｙ［４］の機能を示し、（Ｂ）は、位置更新情報ｘ［２］が欠落したときの位置推定情報ｙ［４］の機能を示し、（Ｃ）は、位置更新情報ｘ［２］，ｘ［３］が欠落したときの位置推定情報ｙ［４］の機能を示し、（Ｄ）は、位置更新情報ｘ［４］が欠落したときの位置推定情報ｙ［４］の機能を示す。
図６（Ａ）〜（Ｄ）に示すように、位置推定情報ｙ［ｎ＋１］には、以下の（１）〜（３）の機能がある。
位置推定情報ｙ［ｎ＋１］には、以下の（１）〜（３）の機能がある。
（機能１）図６（Ａ），（Ｂ）に示すように、位置更新情報ｘ［ｎ］，ｘ［ｎ−１］，・・・，ｘ［ｎ−ｋ］の内のいずれか１つが、ネットワーク１００において欠落したときには、位置推定情報ｙ［ｎ＋１］は、欠落した位置更新情報を完全に復元することができるパリティとして用いられる。
（機能２）図６（Ｃ）に示すように、位置更新情報ｘ［ｎ］，ｘ［ｎ−１］，・・・，ｘ［ｎ−ｋ］の内の２つ以上がネットワーク１００において欠落したときには、位置推定情報ｙ［ｎ＋１］は、欠落した位置更新情報を推定するために用いられる。
（機能３）図６（Ｄ）に示すように、位置推定情報ｙ［ｎ＋１］が生成された後に、位置更新情報ｘ［ｎ＋１］が、ネットワーク１００において欠落したときには、位置推定情報ｙ［ｎ＋１］は、位置更新情報ｘ［ｎ＋１］の推定値として用いられ得る。【００２６】
位置推定情報ｙ［ｎ＋１］を求めるためには、以下の（１）〜（４）の方法がある。
位置推定情報作成部２０８は、下記（１）〜（４）のいずれかの方法により、位置推定情報ｙ［ｍ］を求める。
（方法１）０次保持：
位置更新情報ｘ［ｎ］を、そのまま位置推定情報ｙ［ｎ＋１］（ｙ［ｎ＋１］＝ｘ［ｎ］）とする。
この方法によれば、位置更新情報ｘ［ｎ］が、ネットワーク１００において欠落したときに、位置推定情報ｙ［ｎ＋１］から、位置更新情報ｘ［ｎ］を完全に復元できる。
また、ネットワーク１００においてバーストエラーが生じ、位置更新情報ｘ［ｎ］，ｘ［ｎ−１］，・・・，ｘ［ｎ−ｋ］が欠落したときには、位置推定情報ｙ［ｎ＋１］と、位置更新情報ｘ［ｎ−ｋ−１］とにより、位置更新情報ｘ［ｎ］，ｘ［ｎ−１］，・・・，ｘ［ｎ−ｋ］を補間することができる。
さらに、位置更新情報ｘ［ｎ＋１］が、ネットワーク１００において欠落したときに、位置推定情報ｙ［ｎ＋１］から、位置更新情報ｘ［ｎ＋１］を推定できる。【００２７】
（方法２）線形補間：
位置推定情報ｙ［ｎ＋１］を、２つの位置更新情報ｘ［ｎ］，ｘ［ｎ−１］を用いて求める。
位置更新情報ｘ［ｎ］，ｘ［ｎ−１］が、それぞれｎＴ，（ｎ−１）Ｔ（＝ｔｎ，ｔｎ−１）の時点で得られ、ｘ［ｎ］，ｘ［ｎ−１］をｘｎ，ｘｎ−１と記載すると、ｔの時点の位置推定情報ｙ（ｔ）は、
ｙ（ｔ）＝Ａｘｎ−１＋Ｂｘｎ，
Ａ＝（ｔｎ−ｔ）／（ｔｎ−ｔｎ−１），
Ｂ＝１−Ａ＝（ｔ−ｔｎ−１）／（ｔｎ−ｔｎ−１）
により得ることができる。
この方法によれば、ｘ［ｎ］またはｘ［ｎ−１］が欠落した場合は、ｙ［ｎ+１］と届いたｘ［ｎ］かｘ［ｎ−１］かを使って、欠落したｘ［ｎ］かｘ［ｎ−１］かを完全に復元できる。
ただし、ｘ［ｎ］，ｘ［ｎ−１］の両方が欠落したときには、これらを完全には復元できない。
また、ネットワーク１００においてバーストエラーが生じ、位置更新情報ｘ［ｎ］，ｘ［ｎ−１］，・・・，ｘ［ｎ−ｋ］が欠落したときには、位置推定情報ｙ［ｎ＋１］と、位置更新情報ｘ［ｎ−ｋ−１］とにより、位置更新情報ｘ［ｎ］，ｘ［ｎ−１］，・・・，ｘ［ｎ−ｋ］を補間することができる。
また、位置更新情報ｘ［ｎ＋１］が、ネットワーク１００において欠落したときに、位置推定情報ｙ［ｎ＋１］から、位置更新情報ｘ［ｎ＋１］を推定できる。【００２８】
（方法３）キュービックスプライン補間：
補間により得られる位置推定情報ｙ（ｔ）が描く曲線をなめらかにして、位置推定情報ｙ（ｔ）を求めるためには、下式が用いられる。
ｙ（ｔ）＝Ａｘｎ−１＋Ｂｘｎ＋Ｃｘ"ｎ−１＋Ｄｘ"ｎ，
ただし、
ｘ"ｎ−１，ｘ"ｎは、ｙ（ｔ）のｔｎ−１，ｔｎにおける２次微係数であり、
Ｃ＝（１／６）（Ａ３−Ａ）（ｔｎ−ｔｎ−１）２，
Ｄ＝（１／６）（Ｂ３−Ｂ）（ｔｎ−ｔｎ−１）２
である。【００２９】
（方法４）線形予測：
位置推定情報ｙ［ｎ＋１］は、下式１により得ることができる。【００３０】
【数１】
2008126701.tif 000003
【００３１】
ただし、式１のｆは、Ａ，ｄを下式２として、ＡＴＡｆ＝Ａｄを解くことにより得られ、Ａの擬似的な逆行列をＡ＋とすると、ｆ＝Ａ＋ｄにより求められる（詳細は非特許文献８に説明されているので、参照されたい）。【００３２】
【数２】
2008126701.tif 000004
【００３３】
図７は、ネットワーク１００の伝送可能帯域Ｂと、位置更新情報ｘ［ｎ］の伝送のために使用される帯域Ｒとの関係を示す図である。
図８は、図３に示したトークン制御部２１２により行われるトークンバケット方式による位置推定情報ｙ［ｍ］の伝送制御を示す図である。
図７に示すように、ネットワーク１００の伝送可能帯域Ｂは、位置更新情報ｘ［ｎ］の伝送のために使用される帯域Ｒ（Ｒ＜Ｂ）に対して、十分な余裕がある。
トークン制御部２１２は、図７に示した位置更新情報ｘ［ｎ］をネットワーク１００を介して伝送した残りの帯域Ｂ−Ｒを用いて、送信部２１０を制御し、位置推定情報ｙ［ｍ］を、ネットワーク１００を介してネットワーク１００に送らせる。
位置推定情報ｙ［ｍ］のネットワーク１００を介した伝送には、位置推定情報ｙ［ｍ］の伝送のために使用される帯域が、Ｂ−Ｒ未満でなければならないという条件がある。【００３４】
図８に示すように、トークンバケットを設け、これに、ｒｉ（ｂｐｓ）＝Ｂ−Ｒのトークンが連続的に流入する。
通常はトークンバケットはソフトウエア的に実現されるため、それに直接対応するハードウエアは存在しなくてもよい。
トークン制御部２１２は、トークンバケットに溜まったトークンの量が、位置推定情報作成部２０８が作成する位置推定情報ｙ［ｍ］のデータ量に到達したときに、位置推定情報ｙ［ｍ］が送信可能であると判断し、トークンバケットをクリアするとともに、送信部２１０を制御して、この位置推定情報ｙ［ｍ］を送信させるように送信部２１０を制御する。
上の説明から判るように、このトークンバケットの容量は原理的には位置推定情報ｙ［ｍ］のデータ量と同じとしてよい。【００３５】
図９は、図３に示した遅延制御部２１４により行われる位置推定情報ｙ［ｍ］の伝送制御を例示する図である。
図９に示すように、位置更新情報ｘ［ｎ］は、Ｔ（秒）間隔でゲームサーバ２からゲームクライアントコンピュータ３に対して送信される。
例えば、トークン制御部２１２が、位置更新情報ｘ［１］が送信されてからｕ（ｕ＜Ｔ）秒後、Ｔ＋ｕの時点で、位置更新情報ｘ［０］，ｘ［１］から得られた位置推定情報ｙ［２］を送信可能であると判断する。
しかしながら、直前の位置更新情報送信時点からの時間オフセットｕがＴに十分に近い場合、つまり、次回の位置更新情報送信時点（２Ｔ）の直前になっている場合は、直ちに位置推定情報ｙ［２］を送信する代わりに、２Ｔの時点で次回の位置更新情報ｘ［２］を送信するまで待ってから、位置推定情報ｙ［３］を送信する方が有利である。【００３６】
この理由は、すぐに陳腐化してしまう情報である位置推定情報ｙ［２］を直ちに送る代わりに、わずかの待ち時間の増加で１段階先の位置についての情報である位置推定情報ｙ［３］を送ることができるので、利用可能な帯域を有効に活用できるからである。
遅延制御部２１４は、位置更新情報ｘ［ｎ］を送信後、トークン制御部２１２により位置推定情報ｙ［ｎ＋１］が送信可能であると判断されるまでの時間オフセットｕと閾値Δとを比較し、時間オフセットｕが閾値Δ未満であるときには、作成された位置推定情報ｙ［ｎ＋１］を送信し、時間オフセットｕが閾値Δ以上であるときには、次に位置更新情報ｘ［ｎ＋１］を送信するタイミングまで待ってｘ［ｎ＋１］を先ず送信し、その後に位置推定情報ｙ［ｎ＋２］を送信するように、送信部２１０を制御する。【００３７】
図１０は、図９に示した位置推定情報ｙ［ｍ］の伝送制御で用いられる閾値とひずみ（ここでは実際の位置と推定位置の間の差分）の関係を例示する図である。
横軸は閾値Δをミリ秒で表したものであり、縦軸はある基準値に対するひずみの大きさの相対値である。
このひずみは、より具体的に表現すれば、送信側の実アバタの位置と、位置更新情報を待ち時間閾値内に受信することによって受信側が獲得し、あるいは、位置推定情報ｙ［ｍ］（ＥＰＰ）を使って、受信側が復元・推定したアバタの位置との差分の平均値であるが、注意すべきことは、アバタは、物理的な世界ではなくゲームなどの仮想世界に存在するため、その位置にはメートルなどの物理的な単位は通常は与えられていない点である。
したがって、図１０においても縦軸に長さの単位はない。
なお、上記関係は、ネットワーク１００の構成、遅延およびパケットの欠落率などによって決まる。
図１０のグラフは実験的に求められたものであり、Δ＝１０ｍｓとしたときに最良の結果が得られた。【００３８】
なお、このグラフを求めるための実験の条件は、以下に示す（１）〜（４）のとおりである。
（１）位置推定情報ｙ［ｍ］の実際のオンラインゲームにおける有効性を試験するために、人気あるファースト・パーソン・シューティングゲーム（ＦＰＳ）の"ｂｚｆｌａｇ［１］"および"ｓａｕｅｒｂｒａｔｅｎ［２］"を１０分間プレイするために必要とされるゲームの更新情報が集められた。
２人のクライアントが、低損失で低遅延のＬＡＮを介して、ＦＰＳに活発に参加した。
ｃｌｉｅｎｔ２からの周期的な位置更新情報ｘ［ｎ］が、ｃｌｉｅｎｔ１に届いたときに、フィルタが用いられてゲームの更新情報が取得された。
（２）所与の取得されたゲームの更新情報に対して、予め開発されたネットワークシミュレータを用いてネットワークのシミュレーションを行った。
ネットワークにおける遅延については、独立同一配信遅延モデル(iid; independent and identically distributed delay model)が用いられている。
各パケットには、（κ，α，λ）＝（４０ｍｓ，３，０．１）のシフトガンマ配信(shifted-Gamma distribution)ｉｉｄパラメータで、ネットワーク遅延が与えられた。
この結果、平均伝送遅延は７０ｍｓとなった。
ネットワーク損失については、下記２つの損失モデルが用いられた。
ｉ）損失率０．１のｉｉｄ損失モデル、および、
ｉｉ）損失率０．１およびバースト損失長２．２２の２状態のマルコフ損失モデル（Ｇｉｌｂｅｒｔモデル）【００３９】
（３）ゲーム更新情報は、仮想世界のアバタのｘ、ｙは、送信者から受信者に対して１００ｍｓごとに送られ、各更新情報は９０バイトと仮定され、エンド・ツー・エンドの帯域幅の変化は、１２ｋｂｐｓから１５ｋｂｐｓと仮定され、定常的な位置更新情報ｘ［ｎ］の伝送で余る帯域幅は、位置推定情報ｙ［ｍ］のために用いられた。
（４）受信側では、アバタ位置推定部３１０は、現在のアバタの位置を予想する。
送信側で予想された位置と、送信側の実際の位置とのユークリッド距離が、評価の尺度となる。【００４０】
送信部２１０は、アバタ位置処理部２０２から入力された位置更新情報ｘ［ｎ］をパケットに格納し、ＵＤＰに従って、ネットワーク１００を介してゲームクライアントコンピュータ３に対して送信する。
送信部２１０は、位置推定情報作成部２０８から入力される位置推定情報ｙ［ｍ］をパケットに格納し、上述したトークン制御部２１２および遅延制御部２１４の制御に応じて、ＵＤＰに従って、ネットワーク１００を介してゲームクライアントコンピュータ３に対して送信する。【００４１】
［クライアントソフトウエア３０］
クライアントソフトウエア３０において、受信部３０４は、ゲームサーバ２からネットワーク１００を介して伝送され、遅延およびパケットの欠落が生じた一連の位置更新情報ｘ'［ｎ］および位置推定情報ｙ'［ｍ］を受信する。
図９に示したように、位置更新情報ｘ［ｎ］は、Ｔ（秒）間隔でゲームサーバ２からゲームクライアントコンピュータ３に対して送信される。【００４２】
遅延制御部３０２は、位置更新情報ｘ'［ｎ］を受信後、次の位置更新情報ｘ'［ｎ＋１］を待ち時間閾値δの間だけ待つ。
ただし、これまでに受信できた一連の位置更新情報と位置推定情報を使えばまだ受信されていない次の位置更新情報ｘ'［ｎ＋１］を正確に復元できるようになった場合には、次の位置更新情報ｘ'［ｎ＋１］の受信を待つことなく復元・推定部３０６を付勢して次の位置更新情報ｘ'［ｎ＋１］を求めるようにしてもよい。
待ち時間閾値δの間待ってもｘ'［ｎ＋１］を受信できなかった場合には、既に受信している位置推定情報ｙ'［ｍ］や過去の位置更新情報を使用して次の位置を復元・推定できるようにするため、次の位置更新情報ｘ'［ｎ＋１］が時間内に受信できなかったことを復元・推定部３０６に対して通知する。【００４３】
上述のような、直前の位置更新情報受信時点からの待ち時間によって、次の位置更新情報を使用するのか、それとも次の位置更新情報はネットワーク上で失われたものと判断して復元・推定を行うかの場合分けを行うのは、以下のような理由からである。
前回受信した位置更新情報ｘ'［１］から次の位置更新情報ｘ'［２］の受信までの待ち時間ｖをＴに比べて大きく取ってよいとする場合、その時点までに受信できた一連の位置更新情報とｖがＴより大きくなっても（つまりパケットの遅延がないのであればｘ'［２］が受信されているべき時点を越えても）直ちにパケットの欠落だと判定する代わりに、許される限り（例えば２Ｔ付近まで）待つようにしてもよい。【００４４】
このようにＴを越えて待っている待ち時間の間に次の位置更新情報ｘ'［２］を受信できた場合には、推定した値を使う代わりに誤差のない「本当の」値を得ることができるという点で有利である。
ただし、この待ち時間があまり長くなると、受信側で受け取ったところの更新された（しばらく前には正しかった）位置と送信側の現在位置との差が大きくなる。
従って、これ以上は次の位置更新情報を待ってはいけないという、上述の場合分けのための待ち時間閾値が存在するのである。【００４５】
図１１は、上述の待ち時間閾値δとひずみ（ここでは実際の位置と推定位置の間の差分）の関係を例示する図である。
横軸は待ち時間閾値δをミリ秒で表したものであり、縦軸はある基準値に対するひずみの大きさの相対値である。
このひずみは、より具体的に表現すれば、送信側の実アバタの位置と、位置更新情報を待ち時間閾値内に受信することによって受信側が獲得し、あるいは、位置推定情報ｙ［ｍ］（ＥＰＰ）を使って、受信側が復元・推定したアバタの位置との差分の平均値であるが、注意すべきことは、図１０について説明したように、アバタは物理的な世界ではなくゲームなどの仮想世界に存在するため、アバタ位置は物理的な単位を通常は持っておらず、したがって、図１１においても縦軸は長さの単位を持っていない点である。【００４６】
上記関係は、ネットワーク１００の構成、遅延およびパケットの欠落率などによって決まる。
図１１のグラフは実験的に求められたものであり、図１０の場合と同じ条件を採用している。
図１１に示す例では、待ち時間閾値δ＝１９５ｍｓとすることで、実際の位置と推定位置の間の差分を最小にすることができた。【００４７】
復元・推定部３０６は、受信部３０４から入力された位置更新情報ｘ'［ｎ］および位置推定情報ｙ'［ｍ］を用いて、図６に示したようなデータの復元および推定を行い、各時点でゲームクライアントコンピュータ３の入出力装置１２６（図２）に表示すべき各アバタの位置情報ｚ［ｎ］を求め、アバタ位置補正処理ソフトウエア３１０に対して出力する。
アバタ位置補正処理ソフトウエア３１０は、位置情報ｚ［ｎ］に対してネットワーク１００における遅延時間γｎの補正を行い、位置情報ｘ"［ｎ＋γｎ］として、クライアント側ゲームソフトウエア３１２に対して出力する。
クライアント側ゲームソフトウエア３１２は、入力された位置情報"［ｎ＋γｎ］を用いて、入出力装置１２６に、各プレーヤのアバタを表示する。【００４８】
［ネットワークゲームシステム１の全体的動作］
以下、図１に示したネットワークゲームシステム１の全体的な動作を説明する。
ゲームサーバ２側において、サーバ側ゲームソフトウエア２００（図３）は、ゲームクライアントコンピュータ３のプレーヤからの操作に応じて、ネットワークゲームを進行させ、アバタ位置処理部２０２は、ネットワークゲームの仮想空間における各ユーザのアバタの位置を示す位置更新情報ｘ［ｎ］を作成する。
位置推定情報作成部２０８は、図５を参照して説明したように、位置更新情報ｘ［ｎ］から、位置推定情報ｙ［ｍ］を作成する。【００４９】
トークン制御部２１２は、図８を参照して説明したように送信部２１０を制御し、トークンバケット方式により位置推定情報ｙ［ｍ］の送信制御を行う。
遅延制御部２１４は、図９，図１０を参照して説明したように、位置更新情報ｘ［ｎ］を送信後、トークン制御部２１２により位置推定情報ｙ［ｎ＋１］が送信可能であると判断されるまでの時間ｕと、閾値Δとを比較し、時間ｕが閾値Δ未満であるときには、作成された位置推定情報ｙ［ｎ＋１］を送信し、時間ｕが閾値Δ以上であるときには、次に位置更新情報ｘ［ｎ＋１］を送信するタイミングまで待って、この位置更新情報ｘ［ｎ＋１］を送信し、その後に次の時点における位置推定情報ｙ［ｎ＋２］を送信するように、送信部２１０を制御する。
送信部２１０は、位置更新情報ｘ［ｎ］および位置推定情報ｙ［ｍ］をパケットに格納し、トークン制御部２１２および遅延制御部２１４の制御に応じて、ゲームクライアントコンピュータ３に対して送信する。【００５０】
ゲームクライアントコンピュータ３側において、受信部３０４（図３）は、ゲームサーバ２からネットワーク１００を介して伝送されてきた位置更新情報ｘ'［ｎ］および位置推定情報ｙ'［ｍ］を受信する。
遅延制御部３０２は、図９および図１１を参照して説明したように、位置更新情報ｘ'［ｎ］を受信後、待ち時間閾値δが経過するまで次の位置更新情報ｘ'［ｎ＋１］が受信されるのを待ち、待ち時間閾値δだけの時間が経過しても位置更新情報ｘ'［ｎ＋１］が受信できなかった場合には、この情報の欠落が起こったと判断して復元・推定を行うように復元・推定部３０６を制御する。
また、遅延制御部３０２は、受信部３０４が待ち時間閾値δ以内に次の位置更新情報ｘ'［ｎ＋１］を受信できた場合には、この受信した情報を復元・推定部３０６に対して出力するように、受信部３０４を制御する。【００５１】
復元・推定部３０６は、図６を参照して説明したように、受信部３０４から入力された位置更新情報ｘ'［ｎ］および位置推定情報ｙ'［ｍ］を用いて、データの復元および推定を行い、位置情報ｚ［ｎ］として出力する。
アバタ位置補正処理ソフトウエア３１０は、位置情報ｚ［ｎ］に対してネットワーク１００における遅延時間γｎの補正を行い、位置情報ｘ"［ｎ＋γｎ］として出力する。
クライアント側ゲームソフトウエア３１２は、入力された位置情報"［ｎ＋γｎ］を用いて、入出力装置１２６に、各プレーヤのアバタを表示する。
【符号の説明】
【００５２】
１・・・ネットワークゲームシステム，
１００・・・ネットワーク，
２・・・ゲームサーバ，
１２０・・・本体，
１２２・・・ＣＰＵ，
１２４・・・メモリ，
１２６・・・入出力装置，
１２８・・・通信装置，
１３２・・・記録装置，
１３４・・・記録媒体，
２０・・・サーバソフトウエア，
２００・・・サーバ側ゲームソフトウエア，
２０２・・・アバタ位置処理部，
２０４・・・サーバ側インターフェースソフトウエア，
２０８・・・位置推定情報作成部，
２１０・・・送信部，
２１２・・・トークン制御部，
２１４・・・遅延制御部，
３・・・ゲームクライアントコンピュータ，
３０・・・クライアントソフトウエア，
３００・・・クライアント側インターフェースソフトウエア，
３０２・・・遅延制御部，
３０４・・・受信部，
３１０・・・アバタ位置補正処理ソフトウエア，
３１２・・・クライアント側ゲームソフトウエア，
【産業上の利用可能性】
【００５３】
本発明は、ネットワークゲームのデータなど、遅延やパケットの欠落などが生じるネットワークを介して、実時間性が重要とされるデータの伝送に利用可能である。
【図１】
2008126701.tif 000005
【図２】
2008126701.tif 000006
【図３】
2008126701.tif 000007
【図４】
2008126701.tif 000008
【図５】
2008126701.tif 000009
【図６】
2008126701.tif 000010
【図７】
2008126701.tif 000011
【図８】
2008126701.tif 000012
【図９】
2008126701.tif 000013
【図１０】
2008126701.tif 000014
【図１１】
2008126701.tif 000015
【国際調査報告】
2008126701.tif 000016
2008126701.tif 000017
2008126701.tif 000018
2008126701.tif 000019