Comments
Description
Transcript
インタラクティブなユーザー制作コンテンツの無遅延配信
第 15 回日本バーチャルリアリティ学会大会論文集 (2010 年 9 月) インタラクティブなユーザー制作コンテンツの無遅延配信 Delayless Distribution of Interactive User Generated Content 渡辺啓蔵 Keizo WATANABE 株式会社 数理設計研究所 (〒 371-0816 群馬県前橋市上佐鳥町 54-2, wakei dol.hi-ho.ne.jp) Abstract : In recent years, game hosting services that provide game images based on player inputs instead of game programs have been researched. Such systems are able to prevent game content, including user generated content, from being pirated. However, the systems involve response delays, which affect gameplay. The method proposed within this paper solves this problem by generating and transferring images based on possible inputs before the inputs are actually accepted. Key Words: user generated content, network delay, delta compression 1. はじめに Developer/Player(Client) 文章,映像,音楽等のデジタルコンテンツを視聴できる 環境に置くことは,それらの複製を許すことに繋がるため, game program これらの著作権を保護することは困難である.これに対し, ゲームコンテンツはインタラクティブであるという特徴を Player(Client) game images Player(Client) game images 持つため,ゲームプログラムの複製のみを阻止することによ game images Distributer(Server) り容易に著作権を保護することができる.このためゲーム プログラムをサーバ上で実行し,クライアントを所有する 図 1: ユーザー制作コンテンツ配信システム プレイヤにネットワーク越しにゲームを操作させる手法に ついての研究が進んでいる [1].この手法を用い,プレイヤ い」ことではなく「ない」ことが望まれる. の入力に基づいて 1 フレームずつゲームの状態を更新する ゲームを提供する場合,まず第 n フレームの入力がクライ 2. アントからサーバに転送され,次にサーバにおいて第 n フ ユーザー制作コンテンツの遅延問題の解決 レームの更新が行われ,さらにサーバからクライアントに ユーザー制作コンテンツとしてのゲームを配信するシス 第 n フレームのゲーム画像が転送される.ネットワークに テムの下では,プレイヤがネットワーク越しであることを は遅延が存在するため,クライアントがプレイヤの入力を受 意識せずにゲームを操作できなくてはならないが,それを け付けてから,それに基づいて生成された画像の表示を開 実現するために開発者に負担が生じてはならない.すなわ 始するまでの間に,少なくともクライアント-サーバ間のラ ち,開発者が遅延問題への対策を講じることなく,ネット ウンドトリップタイム (RTT) と同じ時間の遅延が生じる. ワーク越しに操作されることを意識せずにゲームを制作で 上述の,ネットワーク越しにゲームを操作させる手法は, きることが望ましい.また,配信者は複数のゲームを配信 ユーザー制作コンテンツ (UGC) として個人の開発者が制作 する必要上,預かったプログラムを個別に解析し,ネット したゲームコンテンツにも適用可能であり,コンテンツの ワーク用に最適化することはできない. 配信システムは図 1 のようになる.開発者はゲームプログ これら追加の条件を満たすため,本研究ではコンピュー ラムを配信者に預け,配信者はゲームプログラムを実行し, タ資源を効率的に使うのではなく,潤沢に使う [2] ことで遅 ゲーム画像をプレイヤに提示する.この配信システムにお 延の問題を解決する.本研究で採用した手法の概略を図 2 に いてもネットワークに起因する遅延の問題は存在する.特 示す.まず先行して更新を行うフレーム数 R を定め,サー に個人の開発者によるゲームは簡素であるが故に,いわゆ バが第 n フレームの入力を受信した段階で先行して第 n + R る重厚長大なゲームよりも早い応答速度や高い再現性が求 フレームまでの更新を行う.この際第 n + 1 フレーム以降 められる.従って,ネットワークに起因する遅延は「少な の入力は不明であるため,ゲームの状態を分岐させ,想定 90 Server n+R-th update n+R-th update n+R-th update n-th input Client n+R-th images n+R-th input n+R-th display 図 2: 本研究の手法における各処理のタイミング される全ての入力に基づいた更新を行う.さらにこれら複 数の状態を反映した,複数の第 n + R フレームの画像を生 図 3: 実験 1 のクライアント画面 成し,クライアントに転送する.クライアントではこれら 複数の画像より,実際の第 n + 1 フレームから第 n + R フ レームの入力に基づいて生成されたものを選択し,プレイ 100Mbps best effort 10Mbps best effort ヤに提示する. この手法を用いた場合,クライアントが第 n + R フレー mirai.ne.jp ムの入力を受け付けるまでに第 n + R フレームの画像を受 信していればプレイヤは遅延を感じることはない.従って, Internet Windows XP Celeron M 423 1.06GHz Client(Nagoya,Aichi) フレーム間インターバルを T [ms] とした場合,クライアン ト-サーバ間で RT ms の RTT が許容されることになる.ま た,サーバがゲームの状態を分岐させるため,配信者はゲー katch.ne.jp Windows XP Celeron P4500 1.87GHz Server(Anjo,Aichi) 図 4: ハードウェア構成(FTTH-CATV 環境) ムプログラムに手を加える必要はなく,開発者はローカル で実行するものと同じゲームプログラムを制作するだけで 7.2Mbps best effort よい.本稿で述べるゲームの状態にはフレームごとに更新 される変数が最低限含まれるが,他の情報と分離するのが emobile.ad.jp 困難ならば定数やゲームプログラム自体も含めてゲームの 10Mbps best effort Internet katch.ne.jp 状態としてもよい. Windows XP Celeron M 423 1.06GHz Client(Nagoya,Aichi) 以降に述べる実験 1 と実験 2 では,この手法を用いてボ タンで操作されるゲームコンテンツを,一般に普及してい Windows XP Celeron P4500 1.87GHz Server(Anjo,Aichi) る通信環境において提供することが可能か検討する. 図 5: ハードウェア構成(携帯電話-CATV 環境) 3. 実験 1 3.1 目的 図 3 のクライアント画面の左半分には,サーバから転送 プレイヤキャラクタと背景から成る,1 個のボタンで操 された現在のフレームの画像が全て表示されている.所定 作されるゲームをネットワーク越しに遅延のない状態で提 時間内に転送されなかった画像がある場合は代わりに赤色 供することを目指す.本実験で用いたクライアントソフト の四角形が表示されている.また,プレイヤの入力によって ウェアの画面を図 3 に示す.画面右端がプレイヤに提示す 選択された画像は黄色の枠に囲まれている.“Succeeded:” るゲーム画像(256 色,20 × 60 ピクセル)である. の値は所定時間内に転送された画像の,“Failed:” の値はさ 3.2 れなかった画像の,測定開始からの合計枚数である. 評価方法 3.3 本実験で用いたクライアントソフトウェアは,現在のフ 3.3.1 レームでプレイヤに提示すべき画像が準備できていなくて 実装 ハードウェア 本実験は図 4, 5 に示す,異なる ISP を介してクライアン も次のフレームの処理に移行する.そこで本実験の評価は, フレーム間インターバル T を 20 ms に固定した上で,R に トとサーバがインターネットに接続された環境で行った.図 よって決定される所定時間内に転送された画像の枚数の割 4 の環境ではクライアントを FTTH 回線,サーバを CATV 合を算出することにより行う.すなわち,第 n フレームの 回線を介して接続し,図 5 の環境ではクライアントを携帯 入力が受け付けられてから RT ms 間に,第 n + R フレー 電話回線,サーバを CATV 回線を介して接続した. ムの画像が何割転送されたかを調べる.なお,本実験では 3.3.2 プレイヤは RT ms よりも短い間隔でボタンを連打できない ソフトウェア クライアントソフトウェア,サーバソフトウェア共に Hot Soup Processor 3.2 で作成した.通信モジュールには PCB ものとして分岐の数を低減している. 91 表 1: 実験 1 の結果(FTTH-CATV 環境) 先行して更新を 行うフレーム数 R 1 2 3 4 5 最小 RTT [ms] 15 15 15 15 15 最大 RTT [ms] 32 32 47 47 62 時間内転送率 [%] 0.2 100 100 100 100 必要帯域幅 [Mbps] 0.9 1.8 3.2 5.0 7.3 表 2: 実験 1 の結果(携帯電話-CATV 環境) 先行して更新を 行うフレーム数 R 4 5 最小 RTT [ms] 62 62 最大 RTT [ms] 235 141 時間内転送率 [%] 0.8 0 必要帯域幅 [Mbps] 5.0 7.3 図 6: 実験 2 のクライアント画面 OFF ON n—1-th Network-Control Plugin for HSP を用いた.プレイヤの state transition 入力の転送は TCP で行い,ゲーム画像の転送は UDP で n+1-th n+2-th delta compression 図 7: 状態遷移と差分圧縮 行った. 3.4 n-th 結果 先行して更新を行うフレーム数 R を振り,それぞれの条 れる画像のデータ量低減のため,サーバにおいて画像間で 件の下で 2000 フレームの測定期間に渡って各種数値を測 差分圧縮を行う.その手順を,操作に用いるボタンが 1 個 定した.図 4 の FTTH-CATV 環境で行った実験の結果を の場合に簡略化して図 7 に示す.図中の四角形はゲームの 表 1 に示し,図 5 の携帯電話-CATV 環境で行った実験の結 状態およびそれらを反映したゲーム画像を表す.これらの 果を表 2 に示す.各表中の「時間内転送率」は測定期間中 うち,黄色の枠で囲まれたものはプレイヤの入力によって選 に,所定時間内に転送された画像の割合であり,測定終了 択されたことを表している.1 フレーム先行して更新が行わ 時の,図 3 の “Succeeded:” の値と “Failed:” の値の和に対 れるため,あるフレームの入力をサーバが受信した段階で する “Succeeded:” の値の割合である. 「必要帯域幅」は画像 ゲームの状態は 2 通りに分岐し,次のフレームの,想定さ のデータ量と生じうる分岐の数より算出した,画像の転送 れる OFF と ON の両方の入力に基づく画像が生成される. に必要な帯域幅である. 分岐の結果ゲームの状態が遷移する経路を緑色の矢印で表 FTTH-CATV 環境においては最大 RTT が RT ms を超 した.プレイヤの入力が変化するため,図のように遷移の えない限り全ての画像が所定時間内に転送された.ただし 経路も様々であるが,差分圧縮は赤色の矢印で表したよう 最大 RTT 自体が転送される画像のデータ量の影響を受けて にこれらとは無関係に行う.例えば第 n + 1 フレームの画 いる.携帯電話-CATV 環境においては RTT が十分に小さ 像の場合,まず OFF の入力に基づいて生成された画像を, くなく,ネットワークの帯域幅を満たす範囲では本研究の OFF の入力に基づいて生成された第 n フレームの画像を参 手法は実施不可能であった. 照して差分圧縮する.次に ON の入力に基づいて生成され た画像を,ON の入力に基づいて生成された第 n フレーム 4. 実験 2 4.1 目的 の画像と,OFF の入力に基づいて生成された同一フレーム の画像との両方を参照して差分圧縮する. プレイヤキャラクタ,ノンプレイヤキャラクタ,背景から このような手順で差分圧縮を行う理由を以下に述べる.ま 成る,3 個のボタンで操作されるゲームをネットワーク越し ず,同一の入力に基づいて生成された画像同士は,異なる に遅延のない状態で提供することを目指す.本実験で用い フレームのものであってもプレイヤキャラクタの周囲では たクライアントソフトウェアの画面を図 6 に示す.画面中 類似する可能性が高い.また,同一フレームの画像同士は, 央がプレイヤに提示するゲーム画像(256 色,200 × 200 ピ 異なる入力を想定して生成されたものであってもノンプレ クセル)である. イヤキャラクタの周囲では類似する可能性が高い.従って, 本実験では R = 1 とし,プレイヤの入力に対して 1 フ ある 1 枚の画像を差分圧縮する場合には,直前のフレーム レームのみ先行してゲームの状態を更新する.また,転送さ の同一の入力に基づく画像と,同一フレームの他の画像と 92 の両方を参照することにより高い圧縮率を達成することが 表 3: 実験 2 の結果 できる.ただしクライアントにおいて,あるフレームの複数 の画像のうち最初の 1 枚は,同一フレームの他の画像を参 目標インターバル [ms] 30 40 50 の画像は直前のフレームの画像のみを参照して差分圧縮し 最小インターバル [ms] 28 39 49 なくてはならない. 最大インターバル [ms] 40 41 51 平均インターバル [ms] 33.4 40.0 50.0 最小 RTT [ms] 15 15 15 た 8 枚の,第 n + 1 フレームの画像が生成される.このう 最大 RTT [ms] 32 32 32 ち 1 枚は第 n フレームの同一の入力に基づく画像のみを参 転送データ量 [kB] 2846 2768 2820 照して差分圧縮する.残りの 7 枚は第 n フレームの同一の 平均転送速度 [Mbps] - 0.54 0.44 入力に基づく画像と,第 n + 1 フレームの他の画像とを参 圧縮後表示データ量 [kB] 1414 1395 1387 照することなく解凍する必要があるため,この最初の 1 枚 本実験では 3 個のボタンで操作されるゲームを提供する ことから,サーバが第 n フレームの入力を受信した段階で ゲームの状態は 8 通りに分岐し更新され,それらを反映し 照して差分圧縮する. 4.2 評価方法 中にサーバからクライアントに転送されたデータの量であ 本実験で用いたクライアントソフトウェアは,現在のフ 「圧縮後表示 り,図 6 の “Transferred:” の値の合計である. レームの処理が完了するまでは次のフレームの処理に移行 データ量」は測定期間中に表示された画像のみを,前後の しない.そこで本実験の評価は,目標インターバル通りに フレーム間で差分圧縮して得られたデータの量であり,図 6 ゲームが提供できたか否かで行う.その際,プレイヤに提 の “Displayed:” の値の合計である. 示すべきゲーム画像が準備できた時点でそのフレームの処 目標インターバルが 30 ms の場合はその通りにゲームを 理は完了したものとみなし,クライアントのディスプレイ 提供するのが不可能であったのに対し,40, 50 ms の場合は との同期は考慮しない. 可能と,ネットワークの最大 RTT 32 ms を反映した結果と 図 6 のクライアント画面における “Transferred:” の値は, なった.また,差分圧縮する前は,転送される画像のデータ 上述の手順で圧縮された上でサーバからクライアントに転 量が表示される画像のデータ量の 8 倍となるのに対し,差 送された,現在のフレームの画像のデータ量(バイト数)で 分圧縮後は約 2 倍にとどまった.ただし,この比率はゲー ある.この値にはプレイヤの入力によって選択されず,結果 ムの内容やプレイヤの入力に大きく左右される. として表示されなかった画像のデータ量も含まれる.また, 画面右端の赤色のグラフはその時間経過を表す.これに対 5. し “Displayed:” の値は,現在のフレームで表示された画像 実験 1 と実験 2 のいずれにおいても,ネットワーク越し を,直前のフレームで表示された画像のみを参照して差分 に遅延のない状態でゲームコンテンツを提供できることを 圧縮して得られたデータの量(バイト数)である.すなわ 示した.実験 1 では 1 個のボタンで操作されるゲームの状 ちこの値は,本研究の手法を用いずプレイヤの入力に基づ 態を複数フレーム先行して更新し,実験 2 では 3 個のボタ いて 1 枚の画像のみを生成した場合に,サーバからクライ ンで操作されるゲームの状態を 1 フレーム先行して更新し アントに転送する必要のあるデータの量を事後的に求めた た.ただしボタンの数の増加に対しても,先行して更新を行 ものである.また,画面右端の黄色のグラフはその値の時 うフレーム数の増加に対してもゲームの状態の分岐の数が 間経過である. 4.3 4.3.1 指数関数的に増大するため,複数のボタンで操作されるゲー 実装 ムの状態を複数フレーム先行して更新する場合には,ある ハードウェア 程度分岐の数を減らす必要がある.その方法としては,押 本実験は図 4 に示した環境で行った. 4.3.2 おわりに 下状態を連続値で取得できるボタンを使用し,入力が変化 ソフトウェア するタイミングをある幅を持って予測すること等が考えら プレイヤの入力,ゲーム画像共に TCP で転送を行った. れる. また,実験 1 の環境に加え,Visual C++を用いて差分圧 縮・解凍用の DLL を作成した.差分圧縮は圧縮する画像と 参考文献 参照する画像における同一座標のピクセルの比較,および [1] S. G. Perlman, and R. van der Laan: System and 1 次元の連長圧縮で可逆に行っており,フレーム間の動き補 method for compressing streaming interactive video, 償等は行っていない. United States Patent Application Publication No. US 4.4 結果 2009/0119736 A1, USPTO, 2009. 目標インターバルを 30, 40, 50 ms と振り,それぞれの条 [2] C. Anderson: Free : the future of a radical price, 件の下で 1000 フレームの測定期間に渡って各種数値を測定 Hyperion, pp. 75-93, 2009. した結果を表 3 に示す.表中の「転送データ量」は測定期間 93