動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体
【課題】描画処理により得られた画面を高速かつ効率的に動画符号化する。
【解決手段】描画する画面を決定する視点情報を用いて、少なくとも2段階の描画処理により提供画面を描画する。該描画処理は、後段の描画処理において、前段の描画処理で生成された特定のチャネルの中間値マップを参照して提供画面の描画がなされる。動画配信サーバは、第1の画面の後段の描画処理の実行中に少なくとも1つのチャネルの中間値マップを選択し、設定されたブロックごとに第1の画面よりも前に描画された第2の画面について生成された対応する中間値マップを参照してフレーム間符号化を行うか否かを判断する。動画配信サーバは、第1の画面の後段の描画処理の終了後、該判断の結果に応じて符号化を行って外部装置に符号化動画データを送信する。また該判断の結果は、第1の画面の符号化動画データの生成が完了する前に外部装置に送信される。
【解決手段】描画する画面を決定する視点情報を用いて、少なくとも2段階の描画処理により提供画面を描画する。該描画処理は、後段の描画処理において、前段の描画処理で生成された特定のチャネルの中間値マップを参照して提供画面の描画がなされる。動画配信サーバは、第1の画面の後段の描画処理の実行中に少なくとも1つのチャネルの中間値マップを選択し、設定されたブロックごとに第1の画面よりも前に描画された第2の画面について生成された対応する中間値マップを参照してフレーム間符号化を行うか否かを判断する。動画配信サーバは、第1の画面の後段の描画処理の終了後、該判断の結果に応じて符号化を行って外部装置に符号化動画データを送信する。また該判断の結果は、第1の画面の符号化動画データの生成が完了する前に外部装置に送信される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体に関し、特に符号化動画データのストリーミング配信技術に関する。
【背景技術】
【0002】
ネットワーク接続可能なパーソナルコンピュータ(PC)等のクライアント機器が普及している。このような機器の普及により、インターネットにおけるネットワーク人口は増加している。近年では、ネットワークユーザに対する、インターネットを利用した様々なサービスが展開されており、ゲーム等のエンターテインメントサービスも提供されている。
【0003】
ネットワークユーザに対するサービスの1つとして、MMORPG(Massively Multiplayer Online Role-Playing Game)等の多人数同時参加型のネットワークゲームがある。多人数同時参加型のネットワークゲームでは、ユーザは使用するクライアント機器を、ゲームを提供するサーバ機器に接続することで、該サーバ機器に接続されているクライアント機器を使用するユーザとの対戦プレイや協力プレイを行うことができる。
【0004】
一般的な多人数参加型のネットワークゲームでは、クライアント機器はサーバ機器との間でゲームの描画に必要なデータの送受信を行う。クライアント機器は、受信した描画に必要なデータを用いて描画処理を実行し、生成したゲーム画面をクライアント機器に接続された表示装置に提示することで、ユーザにゲーム画面を提供する。また、ユーザが入力インタフェースを操作することで入力された情報はサーバ機器に送信され、サーバ機器における演算処理に使用されたり、サーバ機器に接続された他のクライアント機器に伝送されたりする。
【0005】
しかしながら、このようなクライアント機器で描画処理を行うネットワークゲームの中には、十分な描画性能を有するPCや専用のゲーム機をユーザが使用することが必要となるものがある。このため、ネットワークゲーム(1コンテンツ)のユーザ数は、コンテンツが要求するクライアント機器の性能に依存してしまう。高性能の機器は当然高価であり、該機器を所有できるユーザも限られる。即ち、例えば美麗なグラフィックを提供するゲーム等の高い描画性能が要求されるゲームでは、ユーザ数を増加させることが困難である。
【0006】
これに対し、近年ではクライアント機器の描画性能等の処理能力に依存せずに、ユーザがプレイ可能なゲームも提供されている。特許文献1のようなゲームでは、サーバ機器はクライアント機器においてなされた操作の情報を取得し、該情報を用いて描画処理を実行して得られたゲーム画面を、クライアント機器に対して提供している。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】国際公開第2009/138878号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述した特許文献1のようなゲームでは、サーバ機器がクライアント機器に対して提供するゲーム画面は、送信する情報量を削減するために、符号化された動画データの形態で提供される。採用される符号化方式にも依るが、例えばMPEG規格のように一般的な動画符号化方式においては、1フレームの画像を分割した各ブロックについて動き補償を伴わないイントラ符号化(フレーム内符号化)、あるいはフレーム間予測による動き補償を伴うインター符号化(フレーム間符号化)が行われる。それぞれの符号化方式には圧縮効率のよい被写体が存在しており、一般的には各ブロックについてイントラ符号化及びインター符号化のそれぞれを行ったブロック(iblock、pblock)を生成し、圧縮効率が高いブロックを符号化データに含める。
【0009】
イントラ符号化は、圧縮対象のブロックの画像を加工せずにDCT変換及びランレングス符号化等を適用して圧縮する。一方、インター符号化は、圧縮対象のブロックの画像と、前のフレームの画像から抽出した該ブロックに対応する参照画像との差分画像を生成して、DCT変換及びランレングス符号化等を適用して圧縮する。このため、インター符号化においては、前のフレームの画像について、圧縮対象のブロックの画像との相関が最も高い領域を特定する処理が含まれる。このような相関が最も高い領域の検出に係る処理は、前のフレームの画像について評価領域を移動させながら、圧縮対象のブロックの画像との類似度及び距離を算出して解析を行うため、解析処理に時間を要してしまうことがある。
【0010】
特に、ユーザの入力に応じてインタラクティブに描画内容が変化するゲーム等では、リアルタイム性、即ち入力に対する高速なレスポンスが要求され、動画符号化処理に要する時間が制限される。このような場合、各ブロックについての符号化処理、及びイントラ符号化及びインター符号化のいずれを行うかの判断処理を高速に行うことが要求される。しかしながら、描画した画面を高速かつ効率的に動画符号化する具体的な方法については、これまで開示されていなかった。
【0011】
本発明は、上述の問題点に鑑みてなされたものであり、描画処理により得られた画面を高速かつ効率的に動画符号化する動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0012】
前述の目的を達成するために、本発明の動画配信サーバは、以下の構成を備える。
描画する画面を決定する視点情報を順次取得する取得手段と、取得手段により取得された視点情報を用いて、少なくとも2段階の描画処理により提供画面を描画する描画手段であって、前段の描画処理において、後段の描画処理において参照される特定のチャネルの中間値マップを生成し、後段の描画処理において該中間値マップを参照して提供画面を描画する描画手段と、第1の画面の後段の描画処理の実行中に、第1の画面について生成された少なくとも1つのチャネルの中間値マップを取得し、複数のブロックに分割する分割手段と、複数のブロックの各々について、第1の画面よりも前に描画された第2の画面について生成された同一のチャネルの中間値マップにおける該ブロックに対応する領域を特定する特定手段と、第1の画面の後段の描画処理の終了後、複数のブロックのうち、特定手段により特定された対応する領域との類似度が閾値以上であるブロックについては、第1の画面の該ブロックの画像と第2の画面の対応する領域の画像との間でフレーム間符号化を行い、特定手段により特定された対応する領域との類似度が閾値未満であるブロックについては、第1の画面の該ブロックの画像をフレーム内符号化を行うことで、符号化動画データを生成する符号化手段と、外部装置に対してデータの送信を行う送信手段と、を有し、送信手段は、符号化手段による第1の画面の各ブロックの符号化動画データの生成が完了する前に、複数のブロックのうち、対応する領域との類似度が閾値以上であるブロックについて、該ブロック及び該ブロックについての前記対応する領域を特定する特定情報を外部装置に送信し、符号化手段による第1の画面の各ブロックの符号化動画データの生成が完了した後に該符号化動画データを外部装置に送信することを特徴とする。
【0013】
前述の目的を達成するために、本発明の動画再生装置は、以下の構成を備える。
1フレームの画面が符号化された符号化動画データを動画配信サーバから順次取得し、復号して再生する動画再生装置であって、第1の画面が符号化された第1の符号化動画データについて、フレーム間符号化が行われたブロック及び該ブロックの復号に用いられる参照データを特定する特定情報を受信する第1の受信手段と、第1の受信手段により受信された特定情報及び動きベクトルに基づいて、第1の符号化動画データの復号に用いられる、フレーム間符号化が行われた各ブロックについての参照データを、第1の符号化動画データよりも前に取得された第2の符号化動画データを復号して得られた第2の画面から生成する復号前処理手段と、第1の符号化動画データを動画配信サーバから受信する第2の受信手段と、第2の受信手段により受信された第1の符号化動画データを、復号前処理手段により生成されたフレーム間符号化が行われた各ブロックについての参照データを用いて復号して再生する復号手段と、を有することを特徴とする。
【発明の効果】
【0014】
このような構成により本発明によれば、描画処理により得られた画面を高速かつ効率的に動画符号化することが可能となる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施形態に係る動画配信システムのシステム構成を示した図。
【図2】本発明の実施形態に係るPC100の機能構成を示したブロック図。
【図3】本発明の実施形態に係る動画配信サーバ200の機能構成を示したブロック図。
【図4】本発明の実施形態に係る動画配信サーバ200の動画配信処理を例示したフローチャート。
【図5】本発明の実施形態に係る描画オブジェクトのデータ構造を例示した図。
【図6】本発明の実施形態に係る動画配信サーバ200の符号化処理を例示したフローチャート。
【図7】本発明の実施形態に係るPC100の動画再生処理を例示したフローチャート。
【図8】本発明の実施形態に係るPC100の復号前処理を例示したフローチャート。
【図9】本発明の実施形態に係る動画配信システムの全体処理を例示したフローチャート。
【図10】本発明の変形例に係る動画配信サーバ200の動画配信処理を例示したフローチャート。
【図11】本発明の変形例に係る最も相関が高いと思われる領域の推定方法を説明するための図。
【発明を実施するための形態】
【0016】
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、動画配信システムの一例としての、動画再生装置であるPC100と動画配信サーバ200とに本発明を適用した例を説明する。
【0017】
<動画配信システムの構成>
図1は、本発明の実施形態に係る動画配信システムのシステム構成を示す図である。
【0018】
図示されるように、PC100と動画配信サーバ200とはインターネット等のネットワーク300を介して接続されている。本実施形態ではPC100は、動画配信コンテンツの一例として、動画配信サーバ200において実行されるゲームコンテンツに係るゲーム画面を、符号化動画データとして受信する。本実施形態では動画配信サーバ200は、PC100においてなされた操作(ユーザ入力)を受信し、該操作に応じたゲーム画面を1フレームごとに描画する。そして動画配信サーバ200は、描画したゲーム画面を符号化し、得られた符号化動画データをPC100に配信する。またPC100は、動画配信サーバ200から符号化動画データを受信すると、該符号化動画データを復号して再生することで、ユーザに対してゲーム画面を提供することができる。
【0019】
なお、本実施形態では動画配信コンテンツの一例として、ネットワーク300上の動画配信サーバ200において実行されるゲームプログラムにより描画されたゲーム画面を提供するコンテンツを説明するが、本発明の実施はこれに限られるものではない。動画配信サーバ200は、配信先に提供する動画配信コンテンツの1フレームを描画処理により描画し、各フレームについて行われた符号化処理により得られた符号化動画データを配信する構成であればよい。また、1フレームに係る画面の描画は、必ずしも動画配信サーバ200において実行される必要はなく、例えば外部の描画サーバにより実行されてもよい。
【0020】
また、本実施形態では動画配信サーバ200に接続するクライアント機器として、PC100を用いて説明するが、本発明の実施はこれに限られるものではない。例えば動画配信サーバ200と接続するクライアント機器は、家庭用ゲーム機、携帯ゲーム機、携帯電話、PDA、タブレット等の、動画配信サーバ200から受信した符号化動画データを復号して再生可能な機器であればよい。
【0021】
<PC100の構成>
図2は、本発明の実施形態に係るPC100の機能構成を示すブロック図である。
【0022】
CPU101は、PC100が有する各ブロックの動作を制御する。具体的にはCPU101は、例えばROM102や記録媒体106に記録されている動画再生処理の動作プログラムを読み出し、RAM103に展開して実行することにより、各ブロックの動作を制御する。
【0023】
ROM102は、例えば書き換え可能な不揮発性メモリである。ROM102は、動画再生処理等の動作プログラムに加え、PC100が有する各ブロックの動作に必要な定数等の情報を記憶する。
【0024】
RAM103は、揮発性メモリである。RAM103は、動作プログラムの展開領域としてだけでなく、PC100が有する各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域としても用いられる。
【0025】
復号部104は、後述する通信部105が受信した符号化動画データについて復号処理を行い、1フレームに係るゲーム画面を生成する。また復号部104は、符号化動画データについての復号処理を行う前に、該復号処理に用いる参照データを準備する復号前処理を行う。復号部104において実行される復号前処理及び復号処理については、後述する動画再生処理において詳述する。
【0026】
通信部105は、PC100が有する通信インタフェースである。通信部105は、ネットワーク300を介して接続した、動画配信サーバ200等の他の機器との間におけるデータ送受信を行う。データ送信時には通信部105は、ネットワーク300あるいは送信先の機器との間で定められたデータ伝送形式にデータを変換し、送信先の機器へのデータ送信を行う。またデータ受信時には通信部105は、ネットワーク300を介して受信したデータを、PC100において読み取り可能な任意のデータ形式に変換し、例えばRAM103に記憶させる。
【0027】
なお、本実施形態ではPC100と動画配信サーバ200とは、ネットワーク300を介して接続されるものとして説明するが、例えばPC100と動画配信サーバ200とが直接ケーブルにより接続される形態であってもよいことは容易に想像されよう。
【0028】
表示部106は、例えばLCDモニタ等のPC100に接続された表示装置である。表示部106は、入力されたゲーム画面を表示領域に表示する表示制御を行う。なお、表示部106は、ラップトップPCのようにPC100に内蔵される表示装置であってもよいし、ケーブルを用いてPC100に外部接続された表示装置であってもよい。
【0029】
操作入力部107は、例えばマウス、キーボード、ゲームパッド等のPC100が有するユーザインタフェースである。操作入力部107は、ユーザによりユーザインタフェースの操作がなされたことを検出すると、該操作に対応する制御信号をCPU101に対して出力する。
【0030】
<動画配信サーバ200の構成>
図3は、本発明の実施形態に係る動画配信サーバ200の機能構成を示すブロック図である。
【0031】
サーバCPU201は、動画配信サーバ200が有する各ブロックの動作を制御する。具体的にはサーバCPU201は、例えばサーバROM202に記憶されている動画配信処理の動作プログラムを読み出し、サーバRAM203に展開して実行することにより、各ブロックの動作を制御する。
【0032】
サーバROM202は、例えば書き換え可能な不揮発性メモリである。サーバROM202は、動画配信処理等の動作プログラムに加え、動画配信サーバ200が有する各ブロックの動作において必要となる定数等の情報を記憶する。
【0033】
サーバRAM203は、揮発性メモリである。サーバRAM203は、動作プログラムの展開領域としてだけでなく、動画配信サーバ200が有する各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域としても用いられる。
【0034】
サーバGPU204は、PC100の表示部106に表示するゲーム画面の生成を行う。サーバGPU204には、サーバVRAM205が接続される。サーバGPU204は、サーバCPU201より描画命令及びゲーム画面の描画に用いるカメラの位置及び方向の情報(視点情報)を受信すると、該描画命令に係る描画オブジェクトを例えば後述するサーバ記録媒体207から読み出し、GPUメモリに格納する。サーバGPU204は、接続されたサーバVRAM205に対して描画を行う場合、描画オブジェクトのキャッシュメモリへの展開を行なった後、該展開後の描画オブジェクトをサーバVRAM205に書き込む。
【0035】
なお、本実施形態のサーバGPU204は、ゲーム画面の生成に係る描画処理において、所謂遅延レンダリング(Deferred Rendering)という手法を用いる。
【0036】
従来の描画手法は、ゲーム画面に含まれる描画オブジェクトの各々を順番に選択し、該描画オブジェクトについて
1.バーテックスシェーダによる移動・回転処理
2.ジオメトリシェーダによる頂点処理
3.ピクセルシェーダによるピクセル単位の陰影処理を含むエフェクト処理
を行って描画する。即ち、各描画オブジェクトについて、陰影処理→描画の流れを有する、所謂Forward Renderingであった。Forward Renderingでは、各オブジェクトが逐次処理されるために、ピクセルによっては1つのオブジェクトが描画された後、よりカメラに対して近い位置にある(該オブジェクトよりも手前にある)別のオブジェクトの描画により、描画内容が上書きされてしまうケースがある。この場合、後から描画されたオブジェクトにより遮蔽される、先に描画されたオブジェクトの一部の領域については、適用した陰影処理が無駄になってしまう。また例えば描画するシーンに存在する光源等は、シーンに存在するオブジェクトに対して共通であるが、Forward Renderingでは1つのオブジェクトを描画する際の共通の計算内容を、別のオブジェクトの描画のために再利用することが難しかった。このため、特に複雑な陰影処理を行うゲーム画面の描画においては、Forward Renderingは効率的ではなかった。
【0037】
これに対しDeferred Renderingでは、Forward Renderingとは異なり、陰影処理に用いるジオメトリの計算を先に行い、全ての描画オブジェクトについての陰影処理を、後からまとめて行う。即ち、ジオメトリ描画→陰影処理→描画の流れを有する2段階の描画処理を行う。Deferred Renderingでは、前段の描画において、ライティングを行わずに陰影処理に用いるパラメータとともにジオメトリの描画処理を行い、陰影処理で使用される中間値を示す複数の中間値マップ(散乱マップ、深度マップ、法線マップ、反射マップ、拡散マップ等)を生成する。そして後段の描画処理において、生成された複数の中間値マップを利用しながら、光源を適用して陰影処理を行なった画面を描画する。
【0038】
サーバ符号化部206は、サーバGPU204によりサーバVRAM205に生成されたゲーム画面に対する符号化処理を行う。サーバ符号化部206は、符号化対象のゲーム画面をブロックに分割し、各ブロックをイントラ符号化(フレーム内符号化)あるいはインター符号化(フレーム間符号化)する。符号化処理の詳細は後述するが、本実施形態ではサーバ符号化部206は、各ブロックをYCbCrの色チャネルごとに離散コサイン変換(DCT)した後、ランレングス符号化により圧縮する。なお、本実施形態ではゲーム画面に対する符号化処理を行うブロックとしてサーバ符号化部206が単体で存在するものとして説明するが、符号化処理はサーバGPU204が実行してもよい。
【0039】
サーバ記録媒体207は、例えばHDD等の、動画配信サーバ200に着脱可能に接続される記録装置である。本実施形態ではサーバ記録媒体207には、画面の描画処理において用いられる、各描画オブジェクトのデータや、画面に表現される3次元シーンに配置された光源情報等が記録されているものとする。
【0040】
サーバ通信部208は、動画配信サーバ200が有する通信インタフェースである。本実施形態ではサーバ通信部208は、ネットワーク300を介して接続したPC100等の、他の機器との間におけるデータ送受信を行う。なお、サーバ通信部208は通信部105と同様に、通信仕様に従ったデータ形式の変換を行う。
【0041】
<動画配信処理>
このような構成をもつ本実施形態の動画配信システムの動画配信サーバ200において実行される動画配信処理について、図4のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、サーバCPU201が、例えばサーバROM202に記録されている対応する処理プログラムを読み出し、サーバRAM203に展開して実行することにより実現することができる。なお、本動画配信処理は、例えば動画配信サーバ200の提供するゲームコンテンツの提供要求をPC100から受信したことを、サーバCPU201が検出した際に開始され、ゲームの1フレームごとに繰り返し実行されるものとして説明する。
【0042】
なお、本実施形態では動画配信サーバ200は、3次元シーンをDeferred Renderingの手法を用いて描画したゲーム画面を符号化動画データの形態でPC100に提供するものとして説明する。しかしながら、上述したように動画配信サーバ200が配信するコンテンツはこれに限られず、3次元シーンを少なくとも2段階の描画処理を行なって描画した画面を提供する任意のコンテンツであればよい。
【0043】
S401で、サーバCPU201は、次に描画するゲーム画面の視点情報を更新する。具体的にはサーバCPU201は、例えばサーバ通信部208が受信した、PC100においてユーザによりなされた、ゲームに係る操作入力の情報を参照し、次に描画するゲーム画面の視点情報を更新する。視点情報の更新が生じうるユーザによる操作は、例えば視点位置及び方向の変更操作、あるいはユーザの操作対象のキャラクタの移動等が相当する。なお、ゲーム画面の描画に用いられる視点情報の更新は、PC100においてなされたユーザ操作にのみ更新されるものではなく、例えばゲームの進行状況に応じて変更されるものであってもよい。
【0044】
S402で、サーバCPU201は、S401において更新した視点情報に対応するゲーム画面について、サーバGPU204に前段の描画処理を実行させ、後段の描画処理で用いる各種中間値マップを生成させる。具体的にはサーバCPU201は、描画されるゲーム画面に含まれる描画オブジェクトを特定し、各描画オブジェクトのデータを描画順に従ってサーバGPU204に伝送する。サーバGPU204は、転送された描画オブジェクトのデータをGPUメモリに格納する。描画オブジェクトのデータは、例えば図5に示されるような構成であり、本実施形態ではオブジェクト識別IDに関連付けられて、モデルデータ(あるいは頂点データ及び結線データ)、テクスチャデータ、及び位置・回転情報が含まれる。なお、テクスチャデータは3次元モデルに適用(貼り付け)される、該3次元モデルの模様等を表現する一般的な画像テクスチャ(デカルテクスチャ)だけでなく、該3次元モデルの陰影処理や質感の表現に用いられる各種マップが含まれる。
【0045】
サーバGPU204は、描画命令を受けた描画オブジェクトについての位置・回転情報のパラメータに従ってGPUメモリに格納されたモデルデータを移動及び回転させた後、光源エフェクト(陰影処理、シェーディング)を適用することなく、サーバVRAM205への描画を行う。このときサーバVRAM205には、最終的にPC100に対して提供するゲーム画面に対応する、複数種類の中間値マップが生成される。該複数種類の中間値マップは、後述する後段の描画処理における陰影処理で参照されるマップであり、本実施形態では少なくとも
・散乱マップ(Albedo map)
・深度マップ(Depth map)
・法線マップ(Normal map)
・反射マップ(Specular map)
・拡散マップ(Diffuse map)
を含む。なお、深度マップ以外の中間値マップは、描画するゲーム画面に含まれる全描画オブジェクトのデータの各々に含まれる対応するテクスチャデータやモデルデータの各ポリゴンの情報等を、描画するゲーム画面の視点情報に応じて変換することで生成される。即ち、Forward Renderingでは各描画オブジェクトについて該描画オブジェクトのテクスチャデータを考慮して1つ1つに陰影処理を実行するのに対し、Deferred Renderingの前段の描画処理では、描画するゲーム画面の全体を1つの描画オブジェクトとして捉えた中間値マップを生成することで、後段の描画処理においてゲーム画面の全体を対象として陰影処理を行うことができ、演算の重複を低減することができる。
【0046】
なお、深度マップについては、中間値マップの生成において各描画オブジェクトの描画時に、ピクセル単位で描画オブジェクトの前後関係による遮蔽(オクルージョン)を考慮して従来の方法で生成される。
【0047】
このように前段の描画処理が完了すると、サーバCPU201は、S403乃至S407の処理と、S408乃至S411の処理とを並行して実行する。
【0048】
S403で、サーバCPU201は、前段の描画処理で生成された中間値マップを、描画しているフレーム(現フレーム)を識別するフレームIDに関連づけてサーバRAM203に格納する。本実施形態の動画配信サーバ200は、PC100に提供する符号化動画データの各フレームについて、描画したゲーム画面の生成に用いられた中間値マップをサーバRAM203に格納し、少なくとも次のフレームの符号化処理が完了するまで保持するものとする。
【0049】
S404で、サーバCPU201は、複数種類の中間値マップのうちの少なくとも1つのマップを符号化判断用に選択し、該判断用の中間値マップ(判断用中間値マップ)を所定の画素数(例えば16pixel×16pixel)のブロックに分割する。上述したように中間値マップの各々は最終的にPC100に提供するゲーム画面に対応しており、該提供するゲーム画面の各ブロックの動画符号化においてフレーム間予測を行うか否かを判断するために中間値マップを用いることができる。
【0050】
判断用中間値マップとして選択される中間値マップは、本実施形態では散乱マップ、深度マップ、反射マップ、及び拡散マップの少なくともいずれかであるものとする。なお、生成された中間値マップのうち、法線マップも原理的には符号化判断に用いることが可能である。しかしながら、該マップは画素値が法線方向を示しているため、例えば凹凸はないが模様がある面を含む描画オブジェクトについては、該面は全て同じ画素値となってしまう。このため、法線マップのみを用いて後述する符号化判断を行うことは、必ずしも好ましいデータ圧縮を実現できない可能性があるため、本実施形態では前段の描画処理で生成した複数種類の中間値マップのうち、法線マップ以外のマップを用いて符号化判断を行うものとする。
【0051】
S405で、サーバCPU201は、判断用中間値マップの各ブロックについて現フレームの1つ前のフレーム(前フレーム)のゲーム画面に係る前段の描画処理で生成された対応する中間値マップから、最も相関が高い領域を特定する。具体的にはサーバCPU201は、前フレームのゲーム画面に係る前段の描画処理で生成された中間値マップのうち、S404において判断用中間値マップとして選択されたマップに対応する(同一種類の)マップ(判断用過去中間値マップ)をサーバRAM203から読み出す。そしてサーバCPU201は、各ブロックについて判断用過去中間値マップから相関が最も高い領域を探索する。
【0052】
このときサーバCPU201は、符号化判断を行うブロックの画像を基準画像として設定し、該基準画像と同一の画素数の判断対象領域を判断用過去中間値マップから設定し、例えば画像間のユークリッド距離を算出することで類似度を取得する。判断対象領域の設定は判断用過去中間値マップにおいて画素単位あるいは半画素単位で領域をずらしながら行われ、サーバCPU201は、最終的に基準画像に対して最もユークリッド距離が短くなる(類似度が最大となる)領域の位置を、最も相関が高い領域の位置として特定する。
【0053】
なお、本実施形態の動画配信サーバ200では後述する符号化処理においてフレーム間符号化を行う場合に現フレームの1つ前のフレームから取得した参照データを使用し、現フレームの画像と参照データとの差分画像を符号化する。このため、符号化判断も現フレームの1つ前のフレームについて行うものとして説明するが、フレーム間符号化で参照される過去のフレームは現フレームの1つ前のフレームに限らず、現フレームよりも前のフレームが用いられてよい。
【0054】
S406で、サーバCPU201は、判断用中間値マップの各ブロックについてフレーム内符号化を行うか、あるいはフレーム間符号化を行うかを決定する(符号化判断)。具体的にはサーバCPU201は、各ブロックと最も相関が高い判断用過去中間値マップの領域について算出された類似度(例えばユークリッド距離の逆数)が予め設定された閾値以上であるか否かを判断する。そしてサーバCPU201は、最も相関が高い領域との類似度が閾値以上であるブロックについてはフレーム間符号化を行うものとして決定し、類似度が閾値未満であるブロックについてはフレーム内符号化を行うものとして決定する。
【0055】
S407で、サーバCPU201は、判断用中間値マップの各ブロックのうち、フレーム間符号化を行うとして決定されたブロックについて、判断用過去中間値マップの最も相関が高い領域からの動きベクトルを算出する。そしてサーバCPU201は、該フレーム間符号化を行うとして決定されたブロックを特定する特定情報に関連付けて、該ブロックについての動きベクトルの情報をサーバ通信部208に伝送し、前処理情報としてPC100に対して送信させる。
【0056】
一方、サーバCPU201はS403乃至S407の処理と並行して実行する処理では、S408でサーバGPU204にS401において更新した視点情報に対応するゲーム画面についての後段の描画処理を実行させ、最終的にPC100に提供するゲーム画面(提供ゲーム画面)を生成させる。具体的にはサーバCPU201は、描画されるゲーム画面についての3次元シーンに適用される光源を特定し、該光源の属性や強度等の情報をサーバGPU204に伝送する。サーバGPU204は、前段の描画処理で生成した各種中間値マップを用いて、各種光源をまとめて陰影処理(光源エフェクトの適用)しながら、再度ゲーム画面に含まれる描画オブジェクトを描画し、提供ゲーム画面をサーバVRAM205のフレームバッファに生成する。
【0057】
S409で、サーバCPU201は、S406の処理である現フレームについての符号化判断処理が完了したか否かを判断する。サーバCPU201は、符号化判断処理が完了していると判断した場合は処理をS410に移し、完了していないと判断した場合は処理を本ステップの処理を繰り返す。
【0058】
S410で、サーバCPU201は、提供ゲーム画面をS404におけるブロック分割と同様にブロック分割し、符号化処理を実行して符号化動画データを生成する。
【0059】
(符号化処理)
ここで、本実施形態の動画配信サーバ200において実行される符号化処理について、図6を参照して詳細を説明する。
【0060】
S601で、サーバCPU201は、提供ゲーム画面のブロックのうち、符号化がなされていないブロックを選択する。
【0061】
S602で、サーバCPU201は、判断用中間値マップについて行われた符号化判断処理の結果を参照し、選択ブロックについてフレーム間符号化を行うか否かを判断する。サーバCPU201は、選択ブロックについてフレーム間符号化を行うと判断した場合は処理をS603に移し、フレーム間符号化を行わないと判断した場合は処理をS605に移す。
【0062】
S603で、サーバCPU201は、現フレームの1つ前のフレームで描画されたゲーム画面(前フレーム画面)内の選択ブロックに対応する領域の画像から、フレーム間符号化に使用する参照画像(参照データ)を生成する。具体的にはサーバCPU201はまず、前フレームでPC100に提供されたゲーム画面(過去ゲーム画面)を例えばサーバRAM203から読み出す。そしてサーバCPU201は、選択ブロックについて特定された最も相関が高い領域に対応する領域の画像を、参照画像として過去ゲーム画面から抽出する。
【0063】
S604で、サーバCPU201は、選択ブロックの画像と参照画像との差分を差分画像として生成し、符号化対象画像として設定する。具体的にはサーバCPU201は、選択ブロックの画像の各画素値から、参照画像の対応する画素の画素値を減算することにより差分画像(pblock)を生成する。
【0064】
一方、S602においてフレーム間符号化を行わないと判断した場合、サーバCPU201はS605において、選択ブロックの画像を符号化対象画像として設定する。
【0065】
S606で、サーバCPU201は、符号化対象画像をサーバ符号化部206に伝送し、DCT処理を実行させて周波数領域のデータに変換させる。またサーバCPU201は、変換により得られた周波数領域のデータに対してサーバ符号化部206にランレングス符号化を行わせることで、選択ブロックの符号化データを生成させる。
【0066】
S607で、サーバCPU201は、描画されたゲーム画面の全てのブロックについてS602乃至S606の処理を実行したか否かを判断する。サーバCPU201は、まだ処理が実行されていないブロックが存在すると判断した場合は処理をS601に戻し、存在しないと判断した場合は本符号化処理を完了する。
【0067】
サーバCPU201は、描画されたゲーム画面から符号化動画データを生成した後、S411で該符号化動画データをサーバ通信部208に伝送してPC100に対して送信させ、現フレームの動画配信処理を完了する。
【0068】
このように、本実施形態の動画配信サーバ200では、PC100に対して提供するゲーム画面の生成が多段階の描画処理によって行われることを利用し、最終的なゲーム画面の描画が行われる後段の描画処理中に、前段の描画処理で生成された中間値マップを用いて、ゲーム画面の各ブロックについての符号化方法を決定することができる。このため、最終的なゲーム画面の描画を行なった後に符号化方法を決定することなく符号化処理に移行できるため、ゲーム画面のPC100への提供に要する時間を短縮することができる。
【0069】
<動画再生処理>
次に、本実施形態のPC100において実行される動画再生処理について、図7のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、CPU101が、例えばROM102に記録されている対応する処理プログラムを読み出し、RAM103に展開して実行することにより実現することができる。なお、本動画再生処理は、例えばPC100において動画配信サーバ200の提供するゲームコンテンツを受信するアプリケーションが実行された際に開始され、ゲームの1フレームごとに繰り返し実行されるものとして説明する。
【0070】
S701で、CPU101は、通信部105が動画配信サーバ200から前処理情報を受信したか否かを判断する。CPU101は、動画配信サーバ200から前処理情報を受信したと判断した場合は処理をS702に移し、受信していないと判断した場合は本ステップの処理を繰り返す。
【0071】
S702で、CPU101は、前処理情報を参照し、現フレームのゲーム画面の復号に必要な参照データを準備する復号前処理を実行する。
【0072】
(復号前処理)
ここで、本実施形態のPC100で実行される復号前処理について、図8のフローチャートを用いて詳細を説明する。
【0073】
S801で、CPU101は、現フレームで受信するゲーム画面のブロックのうち、使用された符号化方式の判定がなされていないブロックを選択する。
【0074】
S802で、CPU101は前処理情報を参照し、選択ブロックについてフレーム間符号化がなされるか否かを判断する。具体的にはCPU101は、選択ブロックを特定する情報が前処理情報に含まれるか否かを判断する。CPU101は、選択ブロックについてフレーム間符号化がなされると判断した場合は処理をS803に移し、なされていないと判断した場合は処理をS804に移す。
【0075】
S803で、CPU101は、現フレームの1つ前のフレームで復号したゲーム画面(前フレーム画面)から、選択ブロックについての復号に使用する参照画像(参照データ)を抽出する。具体的にはCPU101は、前処理情報に含まれる選択ブロックについて関連付けられた動きベクトルを参照し、前フレーム画面における選択ブロックの復号で参照される領域を特定し、該領域の画像を参照画像として抽出する。
【0076】
S804で、CPU101は、現フレームで受信するゲーム画面の全てのブロックについてS802乃至S803の処理を実行したか否かを判断する。サーバCPU201は、まだ処理が実行されていないブロックが存在すると判断した場合は処理をS801に戻し、存在しないと判断した場合は本復号前処理を完了する。
【0077】
このように本実施形態のPC100では、符号化動画データの前に受信した前処理情報を参照することで、符号化動画データの受信後に行われる復号処理に先立って、復号処理で用いられる参照データを準備することができる。
【0078】
S703で、CPU101は、通信部105が動画配信サーバ200から符号化動画データを受信したか否かを判断する。CPU101は、動画配信サーバ200から符号化動画データを受信したと判断した場合は処理をS704に移し、受信していないと判断した場合は本ステップの処理を繰り返す。
【0079】
S704で、CPU101は、受信した符号化動画データを復号部104に伝送し、復号処理を実行させてゲーム画面を生成させる。具体的には復号部104は、符号化動画データの各ブロックについてランレングス符号化データ列の復号、逆DCT処理を行うことで現フレームのゲーム画面のブロックデータを生成する。またフレーム間符号化が行われたブロックについては、上述した復号前処理で生成された参照データを加算することで、復号部104は現フレームのゲーム画面を生成する。
【0080】
S705で、CPU101は、S704において生成された現フレームのゲーム画面を表示部106に伝送し、対応する表示領域に表示させ、現フレームの動画再生処理を完了する。
【0081】
このように、本実施形態の動画配信システムにおける動画配信サーバ200は、符号化動画データの生成が完了して配信するよりも前に、符号化方法の情報を動画再生装置であるPC100に伝えることができる。即ち、符号化動画データの受信前に参照画像を前処理として準備することができるため、符号化動画データを受信してから行われる復号処理を短縮することができる。つまり、フレーム間符号化がなされたブロックの復号に用いる参照画像を、受信した符号化動画データに含まれる動きベクトルを参照して前のフレームの画像から生成する従来の方法に比べて、本実施形態の動画配信方法は復号した動画像の再生までに要する時間を短縮することができる。
【0082】
即ち、動画配信システム全体としては、図9に示されるような処理フローとなり、本発明を適用することで、動画配信サーバ200における動画符号化処理の効率化、及びPC100における動画復号処理の効率化の両方を実現することができる。
【0083】
なお、上述した動画配信処理では、現フレームの画面の全てのブロックについて符号化判断を行った後に前処理情報をPC100に送信するものとして説明したが、前処理情報の送信タイミングはこれに限られないことは容易に想像されよう。即ち、各ブロックについてフレーム間符号化を行うか否かの判断結果が得られた場合に、全てのブロックについての判断結果が得られるのを待たずに、都度、サーバCPU201は該ブロックの前処理情報をPC100に送信してもよい。またこの場合、PC100のCPU101が、前処理情報を受信すると、該前処理情報で特定されるブロックの参照画像を生成するようにすることで、動画再生処理における更なる効率化が見込める。
また、本実施形態では判断用中間値マップの各ブロックのうち、フレーム間符号化を行うとして決定されたブロックについては、判断用過去中間値マップの最も相関が高い、ブロックと同じ画素数の領域を、符号化時の参照データとして探索するものとした。そして、該領域を示す動きベクトル(2次元)をPC100に対して送信するものとして説明した。しかしながら、フレーム間符号化を行う際に参照データとなる領域は、このように同じ画素数の領域でなくてもよい。例えば判断用過去中間値マップの一部の領域を拡大/縮小することにより得られる画像が符号化対象ブロックと最も相関が高い場合は、参照データとして拡大/縮小処理後の画像が用いられてもよい。また例えば判断用過去中間値マップの一部の領域を回転あるいは投影(変形)することにより得られる画像が符号化対象ブロックと最も相関が高い場合は、参照データとして回転あるいは投影処理後の画像が用いられてもよい。またこのような場合は、参照データとして用いる前フレーム画面の領域を特定するために、例えば3次元の動きベクトルや、2次元の動きベクトルとともに拡大/縮小パラメータや回転/投影用の変換マトリックスが、PC100に対して送信されてもよい。なお、該参照データとして用いる前フレーム画面の領域を特定する情報は、これに限られるものではなく、例えば直接領域の頂点座標を指定する情報等、領域を特定できる情報であればどのような形式であってもよい。
【0084】
以上説明したように、本実施形態の動画配信サーバは描画処理により得られた画面を高速かつ効率的に動画符号化することができる。具体的には動画配信サーバは、描画する画面を決定する視点情報を用いて、少なくとも2段階の描画処理により提供画面を描画する。該描画処理は、後段の描画処理において、前段の描画処理で生成された特定のチャネルの中間値マップを参照して提供画面の描画がなされる。動画配信サーバは、第1の画面の後段の描画処理の実行中に少なくとも1つのチャネルの中間値マップを選択し、設定されたブロックごとに第1の画面よりも前に描画された第2の画面について生成された対応する中間値マップを参照してフレーム間符号化を行うか否かを判断する。動画配信サーバは、第1の画面の後段の描画処理の終了後、該判断の結果に応じて符号化を行って外部装置に符号化動画データを送信する。また該判断の結果は、第1の画面の符号化動画データの生成が完了する前に外部装置に送信される。
【0085】
[変形例]
上述した実施形態では、前段の描画処理で生成された複数種類の中間値マップのうちの少なくとも1つの中間値マップを用いて、前フレームの対応するマップにおける各符号化ブロックに最も相関が高い領域をユークリッド距離の算出等の相関演算により特定するものとして説明した。一般に、最も相関が高い領域を特定する処理は、演算対象領域を変更しながら総当り式に相関演算を実行するため、計算量が多い。即ち、後段の描画処理中に全符号化ブロックに係る相関演算を完了する演算能力がサーバCPU201には求められるため、動画配信サーバ200の導入コストが増大する可能性がある。このため、本変形例では全符号化ブロックについて総当り式に相関演算を行うことなく、最も相関が高い領域の推定、及び該領域の相関度の算出を行う方法について説明する。
【0086】
<動画配信処理>
以下、上述と同様の構成を有する本変形例の動画配信サーバ200において実行される動画配信処理について、図10のフローチャートを用いて具体的な処理を説明する。なお、本変形例の動画配信処理において、上述した実施形態の動画配信処理と同様の処理を行うステップについては同一の参照番号を付すことにより説明を省略し、以下では本変形例において特徴的な処理を行うステップについての説明に留める。
【0087】
S402の前段の描画処理が完了した後、サーバCPU201は並行処理の1つの処理におけるS1001で、生成された中間値マップを、S401において更新した視点情報(描画視点情報)に関連付けてサーバRAM203に格納する。
【0088】
S1002で、サーバCPU201は、複数種類の中間値マップのうち、深度マップを符号化判断用に選択し、ブロック分割する。
【0089】
S1003で、サーバCPU201は、深度マップの各ブロックについて、前フレームのゲーム画面における最も相関が高いと思われる領域を推定する。具体的にはサーバCPU201は、対象ブロックの四隅の座標に描画されている描画オブジェクト(ブロック特定オブジェクト)の3次元座標を特定する。具体的にはサーバCPU201は、深度バッファから対象ブロックの四隅の座標の各々における深度値を取得する。次にサーバCPU201は、描画視点情報と対象ブロックの四隅の座標とから、ブロック特定オブジェクトへの方向を特定する。そしてサーバCPU201は、特定したブロック特定オブジェクトへの方向と深度値とから、ブロック特定オブジェクトの3次元座標を特定する。次にサーバCPU201は、ブロック特定オブジェクトの3次元座標を、前フレームのゲーム画面の描画に用いられた視点情報(過去視点情報)を用いて、前フレームのゲーム画面におけるスクリーン座標に変換する。このようにすることで、前フレームのゲーム画面における最も相関が高いと思われる領域の四隅の座標を特定することができる。即ち、本変形例では、図11に示されるように対象ブロックと同一の描画オブジェクトが表現されている領域、即ち相関が高い描画内容である可能性が高い領域を3次元シーンに逆変換して特定することができる。
【0090】
S1004で、サーバCPU201は、S1003において推定された最も相関が高いと思われる領域について、相関度を算出する。具体的にはサーバCPU201は、前フレームの前段の描画処理で生成された深度マップ(過去深度マップ)から、推定された最も相関が高いと思われる領域の画像を抽出し、該画像に対して例えば過去視点情報と描画視点情報とから生成された変換マトリックスを乗ずることで、対象ブロックと同じ画素数の参照画像を生成する。そしてサーバCPU201は、該参照画像と対象ブロックの画像との相関度を算出し、処理をS406に移す。
【0091】
このように、本変形例の動画配信サーバ200では、前段の描画処理で生成される深度マップを使用し、符号化ブロックと最も相関が高いと思われる領域を、座標変換により推定することができる。このため、総当り式に相関度を算出して最も相関が高いと思われる領域を特定する必要がなく、後段の描画処理中に全符号化ブロックについての相関演算に係る演算量を低減することができる。
【0092】
なお、本変形例では対象ブロックに描画されている描画オブジェクトの、前フレームのゲーム画面におけるスクリーン座標を厳密に特定し、対象ブロックと同一の画素数の画像に変形して相関度の判定を行うものとして説明したが、本発明の実施はこれに限られない。例えば、対象ブロックの中心に描画されている描画オブジェクトについて前フレームのゲーム画面におけるスクリーン座標を算出し、該座標を中心として設定した対象ブロックと同一の画素数の領域を最も相関が高いと思われる領域として設定する構成であってもよい。
【技術分野】
【0001】
本発明は、動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体に関し、特に符号化動画データのストリーミング配信技術に関する。
【背景技術】
【0002】
ネットワーク接続可能なパーソナルコンピュータ(PC)等のクライアント機器が普及している。このような機器の普及により、インターネットにおけるネットワーク人口は増加している。近年では、ネットワークユーザに対する、インターネットを利用した様々なサービスが展開されており、ゲーム等のエンターテインメントサービスも提供されている。
【0003】
ネットワークユーザに対するサービスの1つとして、MMORPG(Massively Multiplayer Online Role-Playing Game)等の多人数同時参加型のネットワークゲームがある。多人数同時参加型のネットワークゲームでは、ユーザは使用するクライアント機器を、ゲームを提供するサーバ機器に接続することで、該サーバ機器に接続されているクライアント機器を使用するユーザとの対戦プレイや協力プレイを行うことができる。
【0004】
一般的な多人数参加型のネットワークゲームでは、クライアント機器はサーバ機器との間でゲームの描画に必要なデータの送受信を行う。クライアント機器は、受信した描画に必要なデータを用いて描画処理を実行し、生成したゲーム画面をクライアント機器に接続された表示装置に提示することで、ユーザにゲーム画面を提供する。また、ユーザが入力インタフェースを操作することで入力された情報はサーバ機器に送信され、サーバ機器における演算処理に使用されたり、サーバ機器に接続された他のクライアント機器に伝送されたりする。
【0005】
しかしながら、このようなクライアント機器で描画処理を行うネットワークゲームの中には、十分な描画性能を有するPCや専用のゲーム機をユーザが使用することが必要となるものがある。このため、ネットワークゲーム(1コンテンツ)のユーザ数は、コンテンツが要求するクライアント機器の性能に依存してしまう。高性能の機器は当然高価であり、該機器を所有できるユーザも限られる。即ち、例えば美麗なグラフィックを提供するゲーム等の高い描画性能が要求されるゲームでは、ユーザ数を増加させることが困難である。
【0006】
これに対し、近年ではクライアント機器の描画性能等の処理能力に依存せずに、ユーザがプレイ可能なゲームも提供されている。特許文献1のようなゲームでは、サーバ機器はクライアント機器においてなされた操作の情報を取得し、該情報を用いて描画処理を実行して得られたゲーム画面を、クライアント機器に対して提供している。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】国際公開第2009/138878号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述した特許文献1のようなゲームでは、サーバ機器がクライアント機器に対して提供するゲーム画面は、送信する情報量を削減するために、符号化された動画データの形態で提供される。採用される符号化方式にも依るが、例えばMPEG規格のように一般的な動画符号化方式においては、1フレームの画像を分割した各ブロックについて動き補償を伴わないイントラ符号化(フレーム内符号化)、あるいはフレーム間予測による動き補償を伴うインター符号化(フレーム間符号化)が行われる。それぞれの符号化方式には圧縮効率のよい被写体が存在しており、一般的には各ブロックについてイントラ符号化及びインター符号化のそれぞれを行ったブロック(iblock、pblock)を生成し、圧縮効率が高いブロックを符号化データに含める。
【0009】
イントラ符号化は、圧縮対象のブロックの画像を加工せずにDCT変換及びランレングス符号化等を適用して圧縮する。一方、インター符号化は、圧縮対象のブロックの画像と、前のフレームの画像から抽出した該ブロックに対応する参照画像との差分画像を生成して、DCT変換及びランレングス符号化等を適用して圧縮する。このため、インター符号化においては、前のフレームの画像について、圧縮対象のブロックの画像との相関が最も高い領域を特定する処理が含まれる。このような相関が最も高い領域の検出に係る処理は、前のフレームの画像について評価領域を移動させながら、圧縮対象のブロックの画像との類似度及び距離を算出して解析を行うため、解析処理に時間を要してしまうことがある。
【0010】
特に、ユーザの入力に応じてインタラクティブに描画内容が変化するゲーム等では、リアルタイム性、即ち入力に対する高速なレスポンスが要求され、動画符号化処理に要する時間が制限される。このような場合、各ブロックについての符号化処理、及びイントラ符号化及びインター符号化のいずれを行うかの判断処理を高速に行うことが要求される。しかしながら、描画した画面を高速かつ効率的に動画符号化する具体的な方法については、これまで開示されていなかった。
【0011】
本発明は、上述の問題点に鑑みてなされたものであり、描画処理により得られた画面を高速かつ効率的に動画符号化する動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0012】
前述の目的を達成するために、本発明の動画配信サーバは、以下の構成を備える。
描画する画面を決定する視点情報を順次取得する取得手段と、取得手段により取得された視点情報を用いて、少なくとも2段階の描画処理により提供画面を描画する描画手段であって、前段の描画処理において、後段の描画処理において参照される特定のチャネルの中間値マップを生成し、後段の描画処理において該中間値マップを参照して提供画面を描画する描画手段と、第1の画面の後段の描画処理の実行中に、第1の画面について生成された少なくとも1つのチャネルの中間値マップを取得し、複数のブロックに分割する分割手段と、複数のブロックの各々について、第1の画面よりも前に描画された第2の画面について生成された同一のチャネルの中間値マップにおける該ブロックに対応する領域を特定する特定手段と、第1の画面の後段の描画処理の終了後、複数のブロックのうち、特定手段により特定された対応する領域との類似度が閾値以上であるブロックについては、第1の画面の該ブロックの画像と第2の画面の対応する領域の画像との間でフレーム間符号化を行い、特定手段により特定された対応する領域との類似度が閾値未満であるブロックについては、第1の画面の該ブロックの画像をフレーム内符号化を行うことで、符号化動画データを生成する符号化手段と、外部装置に対してデータの送信を行う送信手段と、を有し、送信手段は、符号化手段による第1の画面の各ブロックの符号化動画データの生成が完了する前に、複数のブロックのうち、対応する領域との類似度が閾値以上であるブロックについて、該ブロック及び該ブロックについての前記対応する領域を特定する特定情報を外部装置に送信し、符号化手段による第1の画面の各ブロックの符号化動画データの生成が完了した後に該符号化動画データを外部装置に送信することを特徴とする。
【0013】
前述の目的を達成するために、本発明の動画再生装置は、以下の構成を備える。
1フレームの画面が符号化された符号化動画データを動画配信サーバから順次取得し、復号して再生する動画再生装置であって、第1の画面が符号化された第1の符号化動画データについて、フレーム間符号化が行われたブロック及び該ブロックの復号に用いられる参照データを特定する特定情報を受信する第1の受信手段と、第1の受信手段により受信された特定情報及び動きベクトルに基づいて、第1の符号化動画データの復号に用いられる、フレーム間符号化が行われた各ブロックについての参照データを、第1の符号化動画データよりも前に取得された第2の符号化動画データを復号して得られた第2の画面から生成する復号前処理手段と、第1の符号化動画データを動画配信サーバから受信する第2の受信手段と、第2の受信手段により受信された第1の符号化動画データを、復号前処理手段により生成されたフレーム間符号化が行われた各ブロックについての参照データを用いて復号して再生する復号手段と、を有することを特徴とする。
【発明の効果】
【0014】
このような構成により本発明によれば、描画処理により得られた画面を高速かつ効率的に動画符号化することが可能となる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施形態に係る動画配信システムのシステム構成を示した図。
【図2】本発明の実施形態に係るPC100の機能構成を示したブロック図。
【図3】本発明の実施形態に係る動画配信サーバ200の機能構成を示したブロック図。
【図4】本発明の実施形態に係る動画配信サーバ200の動画配信処理を例示したフローチャート。
【図5】本発明の実施形態に係る描画オブジェクトのデータ構造を例示した図。
【図6】本発明の実施形態に係る動画配信サーバ200の符号化処理を例示したフローチャート。
【図7】本発明の実施形態に係るPC100の動画再生処理を例示したフローチャート。
【図8】本発明の実施形態に係るPC100の復号前処理を例示したフローチャート。
【図9】本発明の実施形態に係る動画配信システムの全体処理を例示したフローチャート。
【図10】本発明の変形例に係る動画配信サーバ200の動画配信処理を例示したフローチャート。
【図11】本発明の変形例に係る最も相関が高いと思われる領域の推定方法を説明するための図。
【発明を実施するための形態】
【0016】
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、動画配信システムの一例としての、動画再生装置であるPC100と動画配信サーバ200とに本発明を適用した例を説明する。
【0017】
<動画配信システムの構成>
図1は、本発明の実施形態に係る動画配信システムのシステム構成を示す図である。
【0018】
図示されるように、PC100と動画配信サーバ200とはインターネット等のネットワーク300を介して接続されている。本実施形態ではPC100は、動画配信コンテンツの一例として、動画配信サーバ200において実行されるゲームコンテンツに係るゲーム画面を、符号化動画データとして受信する。本実施形態では動画配信サーバ200は、PC100においてなされた操作(ユーザ入力)を受信し、該操作に応じたゲーム画面を1フレームごとに描画する。そして動画配信サーバ200は、描画したゲーム画面を符号化し、得られた符号化動画データをPC100に配信する。またPC100は、動画配信サーバ200から符号化動画データを受信すると、該符号化動画データを復号して再生することで、ユーザに対してゲーム画面を提供することができる。
【0019】
なお、本実施形態では動画配信コンテンツの一例として、ネットワーク300上の動画配信サーバ200において実行されるゲームプログラムにより描画されたゲーム画面を提供するコンテンツを説明するが、本発明の実施はこれに限られるものではない。動画配信サーバ200は、配信先に提供する動画配信コンテンツの1フレームを描画処理により描画し、各フレームについて行われた符号化処理により得られた符号化動画データを配信する構成であればよい。また、1フレームに係る画面の描画は、必ずしも動画配信サーバ200において実行される必要はなく、例えば外部の描画サーバにより実行されてもよい。
【0020】
また、本実施形態では動画配信サーバ200に接続するクライアント機器として、PC100を用いて説明するが、本発明の実施はこれに限られるものではない。例えば動画配信サーバ200と接続するクライアント機器は、家庭用ゲーム機、携帯ゲーム機、携帯電話、PDA、タブレット等の、動画配信サーバ200から受信した符号化動画データを復号して再生可能な機器であればよい。
【0021】
<PC100の構成>
図2は、本発明の実施形態に係るPC100の機能構成を示すブロック図である。
【0022】
CPU101は、PC100が有する各ブロックの動作を制御する。具体的にはCPU101は、例えばROM102や記録媒体106に記録されている動画再生処理の動作プログラムを読み出し、RAM103に展開して実行することにより、各ブロックの動作を制御する。
【0023】
ROM102は、例えば書き換え可能な不揮発性メモリである。ROM102は、動画再生処理等の動作プログラムに加え、PC100が有する各ブロックの動作に必要な定数等の情報を記憶する。
【0024】
RAM103は、揮発性メモリである。RAM103は、動作プログラムの展開領域としてだけでなく、PC100が有する各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域としても用いられる。
【0025】
復号部104は、後述する通信部105が受信した符号化動画データについて復号処理を行い、1フレームに係るゲーム画面を生成する。また復号部104は、符号化動画データについての復号処理を行う前に、該復号処理に用いる参照データを準備する復号前処理を行う。復号部104において実行される復号前処理及び復号処理については、後述する動画再生処理において詳述する。
【0026】
通信部105は、PC100が有する通信インタフェースである。通信部105は、ネットワーク300を介して接続した、動画配信サーバ200等の他の機器との間におけるデータ送受信を行う。データ送信時には通信部105は、ネットワーク300あるいは送信先の機器との間で定められたデータ伝送形式にデータを変換し、送信先の機器へのデータ送信を行う。またデータ受信時には通信部105は、ネットワーク300を介して受信したデータを、PC100において読み取り可能な任意のデータ形式に変換し、例えばRAM103に記憶させる。
【0027】
なお、本実施形態ではPC100と動画配信サーバ200とは、ネットワーク300を介して接続されるものとして説明するが、例えばPC100と動画配信サーバ200とが直接ケーブルにより接続される形態であってもよいことは容易に想像されよう。
【0028】
表示部106は、例えばLCDモニタ等のPC100に接続された表示装置である。表示部106は、入力されたゲーム画面を表示領域に表示する表示制御を行う。なお、表示部106は、ラップトップPCのようにPC100に内蔵される表示装置であってもよいし、ケーブルを用いてPC100に外部接続された表示装置であってもよい。
【0029】
操作入力部107は、例えばマウス、キーボード、ゲームパッド等のPC100が有するユーザインタフェースである。操作入力部107は、ユーザによりユーザインタフェースの操作がなされたことを検出すると、該操作に対応する制御信号をCPU101に対して出力する。
【0030】
<動画配信サーバ200の構成>
図3は、本発明の実施形態に係る動画配信サーバ200の機能構成を示すブロック図である。
【0031】
サーバCPU201は、動画配信サーバ200が有する各ブロックの動作を制御する。具体的にはサーバCPU201は、例えばサーバROM202に記憶されている動画配信処理の動作プログラムを読み出し、サーバRAM203に展開して実行することにより、各ブロックの動作を制御する。
【0032】
サーバROM202は、例えば書き換え可能な不揮発性メモリである。サーバROM202は、動画配信処理等の動作プログラムに加え、動画配信サーバ200が有する各ブロックの動作において必要となる定数等の情報を記憶する。
【0033】
サーバRAM203は、揮発性メモリである。サーバRAM203は、動作プログラムの展開領域としてだけでなく、動画配信サーバ200が有する各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域としても用いられる。
【0034】
サーバGPU204は、PC100の表示部106に表示するゲーム画面の生成を行う。サーバGPU204には、サーバVRAM205が接続される。サーバGPU204は、サーバCPU201より描画命令及びゲーム画面の描画に用いるカメラの位置及び方向の情報(視点情報)を受信すると、該描画命令に係る描画オブジェクトを例えば後述するサーバ記録媒体207から読み出し、GPUメモリに格納する。サーバGPU204は、接続されたサーバVRAM205に対して描画を行う場合、描画オブジェクトのキャッシュメモリへの展開を行なった後、該展開後の描画オブジェクトをサーバVRAM205に書き込む。
【0035】
なお、本実施形態のサーバGPU204は、ゲーム画面の生成に係る描画処理において、所謂遅延レンダリング(Deferred Rendering)という手法を用いる。
【0036】
従来の描画手法は、ゲーム画面に含まれる描画オブジェクトの各々を順番に選択し、該描画オブジェクトについて
1.バーテックスシェーダによる移動・回転処理
2.ジオメトリシェーダによる頂点処理
3.ピクセルシェーダによるピクセル単位の陰影処理を含むエフェクト処理
を行って描画する。即ち、各描画オブジェクトについて、陰影処理→描画の流れを有する、所謂Forward Renderingであった。Forward Renderingでは、各オブジェクトが逐次処理されるために、ピクセルによっては1つのオブジェクトが描画された後、よりカメラに対して近い位置にある(該オブジェクトよりも手前にある)別のオブジェクトの描画により、描画内容が上書きされてしまうケースがある。この場合、後から描画されたオブジェクトにより遮蔽される、先に描画されたオブジェクトの一部の領域については、適用した陰影処理が無駄になってしまう。また例えば描画するシーンに存在する光源等は、シーンに存在するオブジェクトに対して共通であるが、Forward Renderingでは1つのオブジェクトを描画する際の共通の計算内容を、別のオブジェクトの描画のために再利用することが難しかった。このため、特に複雑な陰影処理を行うゲーム画面の描画においては、Forward Renderingは効率的ではなかった。
【0037】
これに対しDeferred Renderingでは、Forward Renderingとは異なり、陰影処理に用いるジオメトリの計算を先に行い、全ての描画オブジェクトについての陰影処理を、後からまとめて行う。即ち、ジオメトリ描画→陰影処理→描画の流れを有する2段階の描画処理を行う。Deferred Renderingでは、前段の描画において、ライティングを行わずに陰影処理に用いるパラメータとともにジオメトリの描画処理を行い、陰影処理で使用される中間値を示す複数の中間値マップ(散乱マップ、深度マップ、法線マップ、反射マップ、拡散マップ等)を生成する。そして後段の描画処理において、生成された複数の中間値マップを利用しながら、光源を適用して陰影処理を行なった画面を描画する。
【0038】
サーバ符号化部206は、サーバGPU204によりサーバVRAM205に生成されたゲーム画面に対する符号化処理を行う。サーバ符号化部206は、符号化対象のゲーム画面をブロックに分割し、各ブロックをイントラ符号化(フレーム内符号化)あるいはインター符号化(フレーム間符号化)する。符号化処理の詳細は後述するが、本実施形態ではサーバ符号化部206は、各ブロックをYCbCrの色チャネルごとに離散コサイン変換(DCT)した後、ランレングス符号化により圧縮する。なお、本実施形態ではゲーム画面に対する符号化処理を行うブロックとしてサーバ符号化部206が単体で存在するものとして説明するが、符号化処理はサーバGPU204が実行してもよい。
【0039】
サーバ記録媒体207は、例えばHDD等の、動画配信サーバ200に着脱可能に接続される記録装置である。本実施形態ではサーバ記録媒体207には、画面の描画処理において用いられる、各描画オブジェクトのデータや、画面に表現される3次元シーンに配置された光源情報等が記録されているものとする。
【0040】
サーバ通信部208は、動画配信サーバ200が有する通信インタフェースである。本実施形態ではサーバ通信部208は、ネットワーク300を介して接続したPC100等の、他の機器との間におけるデータ送受信を行う。なお、サーバ通信部208は通信部105と同様に、通信仕様に従ったデータ形式の変換を行う。
【0041】
<動画配信処理>
このような構成をもつ本実施形態の動画配信システムの動画配信サーバ200において実行される動画配信処理について、図4のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、サーバCPU201が、例えばサーバROM202に記録されている対応する処理プログラムを読み出し、サーバRAM203に展開して実行することにより実現することができる。なお、本動画配信処理は、例えば動画配信サーバ200の提供するゲームコンテンツの提供要求をPC100から受信したことを、サーバCPU201が検出した際に開始され、ゲームの1フレームごとに繰り返し実行されるものとして説明する。
【0042】
なお、本実施形態では動画配信サーバ200は、3次元シーンをDeferred Renderingの手法を用いて描画したゲーム画面を符号化動画データの形態でPC100に提供するものとして説明する。しかしながら、上述したように動画配信サーバ200が配信するコンテンツはこれに限られず、3次元シーンを少なくとも2段階の描画処理を行なって描画した画面を提供する任意のコンテンツであればよい。
【0043】
S401で、サーバCPU201は、次に描画するゲーム画面の視点情報を更新する。具体的にはサーバCPU201は、例えばサーバ通信部208が受信した、PC100においてユーザによりなされた、ゲームに係る操作入力の情報を参照し、次に描画するゲーム画面の視点情報を更新する。視点情報の更新が生じうるユーザによる操作は、例えば視点位置及び方向の変更操作、あるいはユーザの操作対象のキャラクタの移動等が相当する。なお、ゲーム画面の描画に用いられる視点情報の更新は、PC100においてなされたユーザ操作にのみ更新されるものではなく、例えばゲームの進行状況に応じて変更されるものであってもよい。
【0044】
S402で、サーバCPU201は、S401において更新した視点情報に対応するゲーム画面について、サーバGPU204に前段の描画処理を実行させ、後段の描画処理で用いる各種中間値マップを生成させる。具体的にはサーバCPU201は、描画されるゲーム画面に含まれる描画オブジェクトを特定し、各描画オブジェクトのデータを描画順に従ってサーバGPU204に伝送する。サーバGPU204は、転送された描画オブジェクトのデータをGPUメモリに格納する。描画オブジェクトのデータは、例えば図5に示されるような構成であり、本実施形態ではオブジェクト識別IDに関連付けられて、モデルデータ(あるいは頂点データ及び結線データ)、テクスチャデータ、及び位置・回転情報が含まれる。なお、テクスチャデータは3次元モデルに適用(貼り付け)される、該3次元モデルの模様等を表現する一般的な画像テクスチャ(デカルテクスチャ)だけでなく、該3次元モデルの陰影処理や質感の表現に用いられる各種マップが含まれる。
【0045】
サーバGPU204は、描画命令を受けた描画オブジェクトについての位置・回転情報のパラメータに従ってGPUメモリに格納されたモデルデータを移動及び回転させた後、光源エフェクト(陰影処理、シェーディング)を適用することなく、サーバVRAM205への描画を行う。このときサーバVRAM205には、最終的にPC100に対して提供するゲーム画面に対応する、複数種類の中間値マップが生成される。該複数種類の中間値マップは、後述する後段の描画処理における陰影処理で参照されるマップであり、本実施形態では少なくとも
・散乱マップ(Albedo map)
・深度マップ(Depth map)
・法線マップ(Normal map)
・反射マップ(Specular map)
・拡散マップ(Diffuse map)
を含む。なお、深度マップ以外の中間値マップは、描画するゲーム画面に含まれる全描画オブジェクトのデータの各々に含まれる対応するテクスチャデータやモデルデータの各ポリゴンの情報等を、描画するゲーム画面の視点情報に応じて変換することで生成される。即ち、Forward Renderingでは各描画オブジェクトについて該描画オブジェクトのテクスチャデータを考慮して1つ1つに陰影処理を実行するのに対し、Deferred Renderingの前段の描画処理では、描画するゲーム画面の全体を1つの描画オブジェクトとして捉えた中間値マップを生成することで、後段の描画処理においてゲーム画面の全体を対象として陰影処理を行うことができ、演算の重複を低減することができる。
【0046】
なお、深度マップについては、中間値マップの生成において各描画オブジェクトの描画時に、ピクセル単位で描画オブジェクトの前後関係による遮蔽(オクルージョン)を考慮して従来の方法で生成される。
【0047】
このように前段の描画処理が完了すると、サーバCPU201は、S403乃至S407の処理と、S408乃至S411の処理とを並行して実行する。
【0048】
S403で、サーバCPU201は、前段の描画処理で生成された中間値マップを、描画しているフレーム(現フレーム)を識別するフレームIDに関連づけてサーバRAM203に格納する。本実施形態の動画配信サーバ200は、PC100に提供する符号化動画データの各フレームについて、描画したゲーム画面の生成に用いられた中間値マップをサーバRAM203に格納し、少なくとも次のフレームの符号化処理が完了するまで保持するものとする。
【0049】
S404で、サーバCPU201は、複数種類の中間値マップのうちの少なくとも1つのマップを符号化判断用に選択し、該判断用の中間値マップ(判断用中間値マップ)を所定の画素数(例えば16pixel×16pixel)のブロックに分割する。上述したように中間値マップの各々は最終的にPC100に提供するゲーム画面に対応しており、該提供するゲーム画面の各ブロックの動画符号化においてフレーム間予測を行うか否かを判断するために中間値マップを用いることができる。
【0050】
判断用中間値マップとして選択される中間値マップは、本実施形態では散乱マップ、深度マップ、反射マップ、及び拡散マップの少なくともいずれかであるものとする。なお、生成された中間値マップのうち、法線マップも原理的には符号化判断に用いることが可能である。しかしながら、該マップは画素値が法線方向を示しているため、例えば凹凸はないが模様がある面を含む描画オブジェクトについては、該面は全て同じ画素値となってしまう。このため、法線マップのみを用いて後述する符号化判断を行うことは、必ずしも好ましいデータ圧縮を実現できない可能性があるため、本実施形態では前段の描画処理で生成した複数種類の中間値マップのうち、法線マップ以外のマップを用いて符号化判断を行うものとする。
【0051】
S405で、サーバCPU201は、判断用中間値マップの各ブロックについて現フレームの1つ前のフレーム(前フレーム)のゲーム画面に係る前段の描画処理で生成された対応する中間値マップから、最も相関が高い領域を特定する。具体的にはサーバCPU201は、前フレームのゲーム画面に係る前段の描画処理で生成された中間値マップのうち、S404において判断用中間値マップとして選択されたマップに対応する(同一種類の)マップ(判断用過去中間値マップ)をサーバRAM203から読み出す。そしてサーバCPU201は、各ブロックについて判断用過去中間値マップから相関が最も高い領域を探索する。
【0052】
このときサーバCPU201は、符号化判断を行うブロックの画像を基準画像として設定し、該基準画像と同一の画素数の判断対象領域を判断用過去中間値マップから設定し、例えば画像間のユークリッド距離を算出することで類似度を取得する。判断対象領域の設定は判断用過去中間値マップにおいて画素単位あるいは半画素単位で領域をずらしながら行われ、サーバCPU201は、最終的に基準画像に対して最もユークリッド距離が短くなる(類似度が最大となる)領域の位置を、最も相関が高い領域の位置として特定する。
【0053】
なお、本実施形態の動画配信サーバ200では後述する符号化処理においてフレーム間符号化を行う場合に現フレームの1つ前のフレームから取得した参照データを使用し、現フレームの画像と参照データとの差分画像を符号化する。このため、符号化判断も現フレームの1つ前のフレームについて行うものとして説明するが、フレーム間符号化で参照される過去のフレームは現フレームの1つ前のフレームに限らず、現フレームよりも前のフレームが用いられてよい。
【0054】
S406で、サーバCPU201は、判断用中間値マップの各ブロックについてフレーム内符号化を行うか、あるいはフレーム間符号化を行うかを決定する(符号化判断)。具体的にはサーバCPU201は、各ブロックと最も相関が高い判断用過去中間値マップの領域について算出された類似度(例えばユークリッド距離の逆数)が予め設定された閾値以上であるか否かを判断する。そしてサーバCPU201は、最も相関が高い領域との類似度が閾値以上であるブロックについてはフレーム間符号化を行うものとして決定し、類似度が閾値未満であるブロックについてはフレーム内符号化を行うものとして決定する。
【0055】
S407で、サーバCPU201は、判断用中間値マップの各ブロックのうち、フレーム間符号化を行うとして決定されたブロックについて、判断用過去中間値マップの最も相関が高い領域からの動きベクトルを算出する。そしてサーバCPU201は、該フレーム間符号化を行うとして決定されたブロックを特定する特定情報に関連付けて、該ブロックについての動きベクトルの情報をサーバ通信部208に伝送し、前処理情報としてPC100に対して送信させる。
【0056】
一方、サーバCPU201はS403乃至S407の処理と並行して実行する処理では、S408でサーバGPU204にS401において更新した視点情報に対応するゲーム画面についての後段の描画処理を実行させ、最終的にPC100に提供するゲーム画面(提供ゲーム画面)を生成させる。具体的にはサーバCPU201は、描画されるゲーム画面についての3次元シーンに適用される光源を特定し、該光源の属性や強度等の情報をサーバGPU204に伝送する。サーバGPU204は、前段の描画処理で生成した各種中間値マップを用いて、各種光源をまとめて陰影処理(光源エフェクトの適用)しながら、再度ゲーム画面に含まれる描画オブジェクトを描画し、提供ゲーム画面をサーバVRAM205のフレームバッファに生成する。
【0057】
S409で、サーバCPU201は、S406の処理である現フレームについての符号化判断処理が完了したか否かを判断する。サーバCPU201は、符号化判断処理が完了していると判断した場合は処理をS410に移し、完了していないと判断した場合は処理を本ステップの処理を繰り返す。
【0058】
S410で、サーバCPU201は、提供ゲーム画面をS404におけるブロック分割と同様にブロック分割し、符号化処理を実行して符号化動画データを生成する。
【0059】
(符号化処理)
ここで、本実施形態の動画配信サーバ200において実行される符号化処理について、図6を参照して詳細を説明する。
【0060】
S601で、サーバCPU201は、提供ゲーム画面のブロックのうち、符号化がなされていないブロックを選択する。
【0061】
S602で、サーバCPU201は、判断用中間値マップについて行われた符号化判断処理の結果を参照し、選択ブロックについてフレーム間符号化を行うか否かを判断する。サーバCPU201は、選択ブロックについてフレーム間符号化を行うと判断した場合は処理をS603に移し、フレーム間符号化を行わないと判断した場合は処理をS605に移す。
【0062】
S603で、サーバCPU201は、現フレームの1つ前のフレームで描画されたゲーム画面(前フレーム画面)内の選択ブロックに対応する領域の画像から、フレーム間符号化に使用する参照画像(参照データ)を生成する。具体的にはサーバCPU201はまず、前フレームでPC100に提供されたゲーム画面(過去ゲーム画面)を例えばサーバRAM203から読み出す。そしてサーバCPU201は、選択ブロックについて特定された最も相関が高い領域に対応する領域の画像を、参照画像として過去ゲーム画面から抽出する。
【0063】
S604で、サーバCPU201は、選択ブロックの画像と参照画像との差分を差分画像として生成し、符号化対象画像として設定する。具体的にはサーバCPU201は、選択ブロックの画像の各画素値から、参照画像の対応する画素の画素値を減算することにより差分画像(pblock)を生成する。
【0064】
一方、S602においてフレーム間符号化を行わないと判断した場合、サーバCPU201はS605において、選択ブロックの画像を符号化対象画像として設定する。
【0065】
S606で、サーバCPU201は、符号化対象画像をサーバ符号化部206に伝送し、DCT処理を実行させて周波数領域のデータに変換させる。またサーバCPU201は、変換により得られた周波数領域のデータに対してサーバ符号化部206にランレングス符号化を行わせることで、選択ブロックの符号化データを生成させる。
【0066】
S607で、サーバCPU201は、描画されたゲーム画面の全てのブロックについてS602乃至S606の処理を実行したか否かを判断する。サーバCPU201は、まだ処理が実行されていないブロックが存在すると判断した場合は処理をS601に戻し、存在しないと判断した場合は本符号化処理を完了する。
【0067】
サーバCPU201は、描画されたゲーム画面から符号化動画データを生成した後、S411で該符号化動画データをサーバ通信部208に伝送してPC100に対して送信させ、現フレームの動画配信処理を完了する。
【0068】
このように、本実施形態の動画配信サーバ200では、PC100に対して提供するゲーム画面の生成が多段階の描画処理によって行われることを利用し、最終的なゲーム画面の描画が行われる後段の描画処理中に、前段の描画処理で生成された中間値マップを用いて、ゲーム画面の各ブロックについての符号化方法を決定することができる。このため、最終的なゲーム画面の描画を行なった後に符号化方法を決定することなく符号化処理に移行できるため、ゲーム画面のPC100への提供に要する時間を短縮することができる。
【0069】
<動画再生処理>
次に、本実施形態のPC100において実行される動画再生処理について、図7のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、CPU101が、例えばROM102に記録されている対応する処理プログラムを読み出し、RAM103に展開して実行することにより実現することができる。なお、本動画再生処理は、例えばPC100において動画配信サーバ200の提供するゲームコンテンツを受信するアプリケーションが実行された際に開始され、ゲームの1フレームごとに繰り返し実行されるものとして説明する。
【0070】
S701で、CPU101は、通信部105が動画配信サーバ200から前処理情報を受信したか否かを判断する。CPU101は、動画配信サーバ200から前処理情報を受信したと判断した場合は処理をS702に移し、受信していないと判断した場合は本ステップの処理を繰り返す。
【0071】
S702で、CPU101は、前処理情報を参照し、現フレームのゲーム画面の復号に必要な参照データを準備する復号前処理を実行する。
【0072】
(復号前処理)
ここで、本実施形態のPC100で実行される復号前処理について、図8のフローチャートを用いて詳細を説明する。
【0073】
S801で、CPU101は、現フレームで受信するゲーム画面のブロックのうち、使用された符号化方式の判定がなされていないブロックを選択する。
【0074】
S802で、CPU101は前処理情報を参照し、選択ブロックについてフレーム間符号化がなされるか否かを判断する。具体的にはCPU101は、選択ブロックを特定する情報が前処理情報に含まれるか否かを判断する。CPU101は、選択ブロックについてフレーム間符号化がなされると判断した場合は処理をS803に移し、なされていないと判断した場合は処理をS804に移す。
【0075】
S803で、CPU101は、現フレームの1つ前のフレームで復号したゲーム画面(前フレーム画面)から、選択ブロックについての復号に使用する参照画像(参照データ)を抽出する。具体的にはCPU101は、前処理情報に含まれる選択ブロックについて関連付けられた動きベクトルを参照し、前フレーム画面における選択ブロックの復号で参照される領域を特定し、該領域の画像を参照画像として抽出する。
【0076】
S804で、CPU101は、現フレームで受信するゲーム画面の全てのブロックについてS802乃至S803の処理を実行したか否かを判断する。サーバCPU201は、まだ処理が実行されていないブロックが存在すると判断した場合は処理をS801に戻し、存在しないと判断した場合は本復号前処理を完了する。
【0077】
このように本実施形態のPC100では、符号化動画データの前に受信した前処理情報を参照することで、符号化動画データの受信後に行われる復号処理に先立って、復号処理で用いられる参照データを準備することができる。
【0078】
S703で、CPU101は、通信部105が動画配信サーバ200から符号化動画データを受信したか否かを判断する。CPU101は、動画配信サーバ200から符号化動画データを受信したと判断した場合は処理をS704に移し、受信していないと判断した場合は本ステップの処理を繰り返す。
【0079】
S704で、CPU101は、受信した符号化動画データを復号部104に伝送し、復号処理を実行させてゲーム画面を生成させる。具体的には復号部104は、符号化動画データの各ブロックについてランレングス符号化データ列の復号、逆DCT処理を行うことで現フレームのゲーム画面のブロックデータを生成する。またフレーム間符号化が行われたブロックについては、上述した復号前処理で生成された参照データを加算することで、復号部104は現フレームのゲーム画面を生成する。
【0080】
S705で、CPU101は、S704において生成された現フレームのゲーム画面を表示部106に伝送し、対応する表示領域に表示させ、現フレームの動画再生処理を完了する。
【0081】
このように、本実施形態の動画配信システムにおける動画配信サーバ200は、符号化動画データの生成が完了して配信するよりも前に、符号化方法の情報を動画再生装置であるPC100に伝えることができる。即ち、符号化動画データの受信前に参照画像を前処理として準備することができるため、符号化動画データを受信してから行われる復号処理を短縮することができる。つまり、フレーム間符号化がなされたブロックの復号に用いる参照画像を、受信した符号化動画データに含まれる動きベクトルを参照して前のフレームの画像から生成する従来の方法に比べて、本実施形態の動画配信方法は復号した動画像の再生までに要する時間を短縮することができる。
【0082】
即ち、動画配信システム全体としては、図9に示されるような処理フローとなり、本発明を適用することで、動画配信サーバ200における動画符号化処理の効率化、及びPC100における動画復号処理の効率化の両方を実現することができる。
【0083】
なお、上述した動画配信処理では、現フレームの画面の全てのブロックについて符号化判断を行った後に前処理情報をPC100に送信するものとして説明したが、前処理情報の送信タイミングはこれに限られないことは容易に想像されよう。即ち、各ブロックについてフレーム間符号化を行うか否かの判断結果が得られた場合に、全てのブロックについての判断結果が得られるのを待たずに、都度、サーバCPU201は該ブロックの前処理情報をPC100に送信してもよい。またこの場合、PC100のCPU101が、前処理情報を受信すると、該前処理情報で特定されるブロックの参照画像を生成するようにすることで、動画再生処理における更なる効率化が見込める。
また、本実施形態では判断用中間値マップの各ブロックのうち、フレーム間符号化を行うとして決定されたブロックについては、判断用過去中間値マップの最も相関が高い、ブロックと同じ画素数の領域を、符号化時の参照データとして探索するものとした。そして、該領域を示す動きベクトル(2次元)をPC100に対して送信するものとして説明した。しかしながら、フレーム間符号化を行う際に参照データとなる領域は、このように同じ画素数の領域でなくてもよい。例えば判断用過去中間値マップの一部の領域を拡大/縮小することにより得られる画像が符号化対象ブロックと最も相関が高い場合は、参照データとして拡大/縮小処理後の画像が用いられてもよい。また例えば判断用過去中間値マップの一部の領域を回転あるいは投影(変形)することにより得られる画像が符号化対象ブロックと最も相関が高い場合は、参照データとして回転あるいは投影処理後の画像が用いられてもよい。またこのような場合は、参照データとして用いる前フレーム画面の領域を特定するために、例えば3次元の動きベクトルや、2次元の動きベクトルとともに拡大/縮小パラメータや回転/投影用の変換マトリックスが、PC100に対して送信されてもよい。なお、該参照データとして用いる前フレーム画面の領域を特定する情報は、これに限られるものではなく、例えば直接領域の頂点座標を指定する情報等、領域を特定できる情報であればどのような形式であってもよい。
【0084】
以上説明したように、本実施形態の動画配信サーバは描画処理により得られた画面を高速かつ効率的に動画符号化することができる。具体的には動画配信サーバは、描画する画面を決定する視点情報を用いて、少なくとも2段階の描画処理により提供画面を描画する。該描画処理は、後段の描画処理において、前段の描画処理で生成された特定のチャネルの中間値マップを参照して提供画面の描画がなされる。動画配信サーバは、第1の画面の後段の描画処理の実行中に少なくとも1つのチャネルの中間値マップを選択し、設定されたブロックごとに第1の画面よりも前に描画された第2の画面について生成された対応する中間値マップを参照してフレーム間符号化を行うか否かを判断する。動画配信サーバは、第1の画面の後段の描画処理の終了後、該判断の結果に応じて符号化を行って外部装置に符号化動画データを送信する。また該判断の結果は、第1の画面の符号化動画データの生成が完了する前に外部装置に送信される。
【0085】
[変形例]
上述した実施形態では、前段の描画処理で生成された複数種類の中間値マップのうちの少なくとも1つの中間値マップを用いて、前フレームの対応するマップにおける各符号化ブロックに最も相関が高い領域をユークリッド距離の算出等の相関演算により特定するものとして説明した。一般に、最も相関が高い領域を特定する処理は、演算対象領域を変更しながら総当り式に相関演算を実行するため、計算量が多い。即ち、後段の描画処理中に全符号化ブロックに係る相関演算を完了する演算能力がサーバCPU201には求められるため、動画配信サーバ200の導入コストが増大する可能性がある。このため、本変形例では全符号化ブロックについて総当り式に相関演算を行うことなく、最も相関が高い領域の推定、及び該領域の相関度の算出を行う方法について説明する。
【0086】
<動画配信処理>
以下、上述と同様の構成を有する本変形例の動画配信サーバ200において実行される動画配信処理について、図10のフローチャートを用いて具体的な処理を説明する。なお、本変形例の動画配信処理において、上述した実施形態の動画配信処理と同様の処理を行うステップについては同一の参照番号を付すことにより説明を省略し、以下では本変形例において特徴的な処理を行うステップについての説明に留める。
【0087】
S402の前段の描画処理が完了した後、サーバCPU201は並行処理の1つの処理におけるS1001で、生成された中間値マップを、S401において更新した視点情報(描画視点情報)に関連付けてサーバRAM203に格納する。
【0088】
S1002で、サーバCPU201は、複数種類の中間値マップのうち、深度マップを符号化判断用に選択し、ブロック分割する。
【0089】
S1003で、サーバCPU201は、深度マップの各ブロックについて、前フレームのゲーム画面における最も相関が高いと思われる領域を推定する。具体的にはサーバCPU201は、対象ブロックの四隅の座標に描画されている描画オブジェクト(ブロック特定オブジェクト)の3次元座標を特定する。具体的にはサーバCPU201は、深度バッファから対象ブロックの四隅の座標の各々における深度値を取得する。次にサーバCPU201は、描画視点情報と対象ブロックの四隅の座標とから、ブロック特定オブジェクトへの方向を特定する。そしてサーバCPU201は、特定したブロック特定オブジェクトへの方向と深度値とから、ブロック特定オブジェクトの3次元座標を特定する。次にサーバCPU201は、ブロック特定オブジェクトの3次元座標を、前フレームのゲーム画面の描画に用いられた視点情報(過去視点情報)を用いて、前フレームのゲーム画面におけるスクリーン座標に変換する。このようにすることで、前フレームのゲーム画面における最も相関が高いと思われる領域の四隅の座標を特定することができる。即ち、本変形例では、図11に示されるように対象ブロックと同一の描画オブジェクトが表現されている領域、即ち相関が高い描画内容である可能性が高い領域を3次元シーンに逆変換して特定することができる。
【0090】
S1004で、サーバCPU201は、S1003において推定された最も相関が高いと思われる領域について、相関度を算出する。具体的にはサーバCPU201は、前フレームの前段の描画処理で生成された深度マップ(過去深度マップ)から、推定された最も相関が高いと思われる領域の画像を抽出し、該画像に対して例えば過去視点情報と描画視点情報とから生成された変換マトリックスを乗ずることで、対象ブロックと同じ画素数の参照画像を生成する。そしてサーバCPU201は、該参照画像と対象ブロックの画像との相関度を算出し、処理をS406に移す。
【0091】
このように、本変形例の動画配信サーバ200では、前段の描画処理で生成される深度マップを使用し、符号化ブロックと最も相関が高いと思われる領域を、座標変換により推定することができる。このため、総当り式に相関度を算出して最も相関が高いと思われる領域を特定する必要がなく、後段の描画処理中に全符号化ブロックについての相関演算に係る演算量を低減することができる。
【0092】
なお、本変形例では対象ブロックに描画されている描画オブジェクトの、前フレームのゲーム画面におけるスクリーン座標を厳密に特定し、対象ブロックと同一の画素数の画像に変形して相関度の判定を行うものとして説明したが、本発明の実施はこれに限られない。例えば、対象ブロックの中心に描画されている描画オブジェクトについて前フレームのゲーム画面におけるスクリーン座標を算出し、該座標を中心として設定した対象ブロックと同一の画素数の領域を最も相関が高いと思われる領域として設定する構成であってもよい。
【特許請求の範囲】
【請求項1】
描画する画面を決定する視点情報を順次取得する取得手段と、
前記取得手段により取得された前記視点情報を用いて、少なくとも2段階の描画処理により提供画面を描画する描画手段であって、前段の描画処理において、後段の描画処理において参照される特定のチャネルの中間値マップを生成し、前記後段の描画処理において該中間値マップを参照して前記提供画面を描画する描画手段と、
第1の画面の前記後段の描画処理の実行中に、前記第1の画面について生成された少なくとも1つのチャネルの中間値マップを取得し、複数のブロックに分割する分割手段と、
前記複数のブロックの各々について、前記第1の画面よりも前に描画された第2の画面について生成された同一のチャネルの中間値マップにおける該ブロックに対応する領域を特定する特定手段と、
前記第1の画面の前記後段の描画処理の終了後、前記複数のブロックのうち、前記特定手段により特定された前記対応する領域との類似度が閾値以上であるブロックについては、前記第1の画面の該ブロックの画像と前記第2の画面の前記対応する領域の画像との間でフレーム間符号化を行い、前記特定手段により特定された前記対応する領域との類似度が閾値未満であるブロックについては、前記第1の画面の該ブロックの画像をフレーム内符号化を行うことで、符号化動画データを生成する符号化手段と、
外部装置に対してデータの送信を行う送信手段と、を有し、
前記送信手段は、
前記符号化手段による前記第1の画面の各ブロックの符号化動画データの生成が完了する前に、前記複数のブロックのうち、前記対応する領域との類似度が閾値以上であるブロックについて、該ブロック及び該ブロックについての前記対応する領域を特定する特定情報を前記外部装置に送信し、
前記符号化手段による前記第1の画面の各ブロックの符号化動画データの生成が完了した後に該符号化動画データを前記外部装置に送信する
ことを特徴とする動画配信サーバ。
【請求項2】
前記少なくとも1つのチャネルの中間値マップは、散乱マップ、深度マップ、反射マップ、拡散マップの少なくともいずれかであることを特徴とする請求項1に記載の動画配信サーバ。
【請求項3】
前記特定手段は、前記複数のブロックの各々について、前記第2の画面における類似度が最大となる領域を、前記対応する領域として特定することを特徴とする請求項1または2に記載の動画配信サーバ。
【請求項4】
前記特定手段は、
前記複数のブロックの各々について、前記第1の画面の描画に用いられた第1の視点情報と前記第1の画面について生成された深度マップとに基づいて、該ブロックの頂点に描画されている描画オブジェクトの3次元座標を算出する第1の算出手段と、
前記複数のブロックの各々について、前記第2の画面の描画に用いられた第2の視点情報を用いて、前記第1の算出手段により算出された3次元座標を前記第2の画面におけるスクリーン座標に変換し、前記対応する領域を特定する変換手段と、
を含むことを特徴とする請求項2に記載の動画配信サーバ。
【請求項5】
1フレームの画面が符号化された符号化動画データを動画配信サーバから順次取得し、復号して再生する動画再生装置であって、
第1の画面が符号化された第1の符号化動画データについて、フレーム間符号化が行われたブロック及び該ブロックの復号に用いられる参照データを特定する特定情報を受信する第1の受信手段と、
前記第1の受信手段により受信された前記特定情報に基づいて、前記第1の符号化動画データの復号に用いられる、前記フレーム間符号化が行われた各ブロックについての前記参照データを、前記第1の符号化動画データよりも前に取得された第2の符号化動画データを復号して得られた第2の画面から生成する復号前処理手段と、
前記第1の符号化動画データを前記動画配信サーバから受信する第2の受信手段と、
前記第2の受信手段により受信された前記第1の符号化動画データを、前記復号前処理手段により生成された前記フレーム間符号化が行われた各ブロックについての前記参照データを用いて復号して再生する復号手段と、
を有することを特徴とする動画再生装置。
【請求項6】
前記第1の受信手段による前記特定情報の受信は、前記第2の受信手段による前記第1の符号化動画データの受信よりも前に行われることを特徴とする請求項5に記載の動画再生装置。
【請求項7】
動画配信サーバの取得手段が、描画する画面を決定する視点情報を順次取得する取得工程と、
前記動画配信サーバの描画手段が、前記取得工程において取得された前記視点情報を用いて、少なくとも2段階の描画処理により提供画面を描画する描画手段であって、前段の描画処理において、後段の描画処理において参照される特定のチャネルの中間値マップを生成し、前記後段の描画処理において該中間値マップを参照して前記提供画面を描画する描画工程と、
前記動画配信サーバの分割手段が、第1の画面の前記後段の描画処理の実行中に、前記第1の画面について生成された少なくとも1つのチャネルの中間値マップを取得し、複数のブロックに分割する分割工程と、
前記動画配信サーバの特定手段が、前記複数のブロックの各々について、前記第1の画面よりも前に描画された第2の画面について生成された同一のチャネルの中間値マップにおける該ブロックに対応する領域を特定する特定工程と、
前記動画配信サーバの符号化手段が、前記第1の画面の前記後段の描画処理の終了後、前記複数のブロックのうち、前記特定工程において特定された前記対応する領域との類似度が閾値以上であるブロックについては、前記第1の画面の該ブロックの画像と前記第2の画面の前記対応する領域の画像との間でフレーム間符号化を行い、前記特定工程において特定された前記対応する領域との類似度が閾値未満であるブロックについては、前記第1の画面の該ブロックの画像をフレーム内符号化を行うことで、符号化動画データを生成する符号化工程と、
前記動画配信サーバの送信手段が、外部装置に対してデータの送信を行う送信工程と、を有し、
前記送信手段は前記送信工程において、
前記符号化工程における前記第1の画面の各ブロックの符号化動画データの生成が完了する前に、前記複数のブロックのうち、前記対応する領域との類似度が閾値以上であるブロックについて、該ブロック及び該ブロックについての前記対応する領域を特定する特定情報を前記外部装置に送信し、
前記符号化工程における前記第1の画面の各ブロックの符号化動画データの生成が完了した後に該符号化動画データを前記外部装置に送信する
ことを特徴とする動画配信サーバの制御方法。
【請求項8】
1フレームの画面が符号化された符号化動画データを動画配信サーバから順次取得し、復号して再生する動画再生装置の制御方法であって、
前記動画再生装置の第1の受信手段が、第1の画面が符号化された第1の符号化動画データについて、フレーム間符号化が行われたブロック及び該ブロックの復号に用いられる参照データを特定する特定情報を受信する第1の受信工程と、
前記動画再生装置の復号前処理手段が、前記第1の受信工程において受信された前記特定情報に基づいて、前記第1の符号化動画データの復号に用いられる、前記フレーム間符号化が行われた各ブロックについての前記参照データを、前記第1の符号化動画データよりも前に取得された第2の符号化動画データを復号して得られた第2の画面から生成する復号前処理工程と、
前記動画再生装置の第2の受信手段が、前記第1の符号化動画データを前記動画配信サーバから受信する第2の受信工程と、
前記動画再生装置の復号手段が、前記第2の受信工程において受信された前記第1の符号化動画データを、前記復号前処理工程において生成された前記フレーム間符号化が行われた各ブロックについての前記参照データを用いて復号して再生する復号工程と、
を有することを特徴とする動画再生装置の制御方法。
【請求項9】
コンピュータを、請求項1乃至4のいずれか1項に記載の動画配信サーバの各手段として機能させるためのプログラム。
【請求項10】
コンピュータを、請求項5または6に記載の動画再生装置の各手段として機能させるためのプログラム。
【請求項11】
請求項9または10に記載のプログラムが記録されたコンピュータが読み取り可能な記録媒体。
【請求項1】
描画する画面を決定する視点情報を順次取得する取得手段と、
前記取得手段により取得された前記視点情報を用いて、少なくとも2段階の描画処理により提供画面を描画する描画手段であって、前段の描画処理において、後段の描画処理において参照される特定のチャネルの中間値マップを生成し、前記後段の描画処理において該中間値マップを参照して前記提供画面を描画する描画手段と、
第1の画面の前記後段の描画処理の実行中に、前記第1の画面について生成された少なくとも1つのチャネルの中間値マップを取得し、複数のブロックに分割する分割手段と、
前記複数のブロックの各々について、前記第1の画面よりも前に描画された第2の画面について生成された同一のチャネルの中間値マップにおける該ブロックに対応する領域を特定する特定手段と、
前記第1の画面の前記後段の描画処理の終了後、前記複数のブロックのうち、前記特定手段により特定された前記対応する領域との類似度が閾値以上であるブロックについては、前記第1の画面の該ブロックの画像と前記第2の画面の前記対応する領域の画像との間でフレーム間符号化を行い、前記特定手段により特定された前記対応する領域との類似度が閾値未満であるブロックについては、前記第1の画面の該ブロックの画像をフレーム内符号化を行うことで、符号化動画データを生成する符号化手段と、
外部装置に対してデータの送信を行う送信手段と、を有し、
前記送信手段は、
前記符号化手段による前記第1の画面の各ブロックの符号化動画データの生成が完了する前に、前記複数のブロックのうち、前記対応する領域との類似度が閾値以上であるブロックについて、該ブロック及び該ブロックについての前記対応する領域を特定する特定情報を前記外部装置に送信し、
前記符号化手段による前記第1の画面の各ブロックの符号化動画データの生成が完了した後に該符号化動画データを前記外部装置に送信する
ことを特徴とする動画配信サーバ。
【請求項2】
前記少なくとも1つのチャネルの中間値マップは、散乱マップ、深度マップ、反射マップ、拡散マップの少なくともいずれかであることを特徴とする請求項1に記載の動画配信サーバ。
【請求項3】
前記特定手段は、前記複数のブロックの各々について、前記第2の画面における類似度が最大となる領域を、前記対応する領域として特定することを特徴とする請求項1または2に記載の動画配信サーバ。
【請求項4】
前記特定手段は、
前記複数のブロックの各々について、前記第1の画面の描画に用いられた第1の視点情報と前記第1の画面について生成された深度マップとに基づいて、該ブロックの頂点に描画されている描画オブジェクトの3次元座標を算出する第1の算出手段と、
前記複数のブロックの各々について、前記第2の画面の描画に用いられた第2の視点情報を用いて、前記第1の算出手段により算出された3次元座標を前記第2の画面におけるスクリーン座標に変換し、前記対応する領域を特定する変換手段と、
を含むことを特徴とする請求項2に記載の動画配信サーバ。
【請求項5】
1フレームの画面が符号化された符号化動画データを動画配信サーバから順次取得し、復号して再生する動画再生装置であって、
第1の画面が符号化された第1の符号化動画データについて、フレーム間符号化が行われたブロック及び該ブロックの復号に用いられる参照データを特定する特定情報を受信する第1の受信手段と、
前記第1の受信手段により受信された前記特定情報に基づいて、前記第1の符号化動画データの復号に用いられる、前記フレーム間符号化が行われた各ブロックについての前記参照データを、前記第1の符号化動画データよりも前に取得された第2の符号化動画データを復号して得られた第2の画面から生成する復号前処理手段と、
前記第1の符号化動画データを前記動画配信サーバから受信する第2の受信手段と、
前記第2の受信手段により受信された前記第1の符号化動画データを、前記復号前処理手段により生成された前記フレーム間符号化が行われた各ブロックについての前記参照データを用いて復号して再生する復号手段と、
を有することを特徴とする動画再生装置。
【請求項6】
前記第1の受信手段による前記特定情報の受信は、前記第2の受信手段による前記第1の符号化動画データの受信よりも前に行われることを特徴とする請求項5に記載の動画再生装置。
【請求項7】
動画配信サーバの取得手段が、描画する画面を決定する視点情報を順次取得する取得工程と、
前記動画配信サーバの描画手段が、前記取得工程において取得された前記視点情報を用いて、少なくとも2段階の描画処理により提供画面を描画する描画手段であって、前段の描画処理において、後段の描画処理において参照される特定のチャネルの中間値マップを生成し、前記後段の描画処理において該中間値マップを参照して前記提供画面を描画する描画工程と、
前記動画配信サーバの分割手段が、第1の画面の前記後段の描画処理の実行中に、前記第1の画面について生成された少なくとも1つのチャネルの中間値マップを取得し、複数のブロックに分割する分割工程と、
前記動画配信サーバの特定手段が、前記複数のブロックの各々について、前記第1の画面よりも前に描画された第2の画面について生成された同一のチャネルの中間値マップにおける該ブロックに対応する領域を特定する特定工程と、
前記動画配信サーバの符号化手段が、前記第1の画面の前記後段の描画処理の終了後、前記複数のブロックのうち、前記特定工程において特定された前記対応する領域との類似度が閾値以上であるブロックについては、前記第1の画面の該ブロックの画像と前記第2の画面の前記対応する領域の画像との間でフレーム間符号化を行い、前記特定工程において特定された前記対応する領域との類似度が閾値未満であるブロックについては、前記第1の画面の該ブロックの画像をフレーム内符号化を行うことで、符号化動画データを生成する符号化工程と、
前記動画配信サーバの送信手段が、外部装置に対してデータの送信を行う送信工程と、を有し、
前記送信手段は前記送信工程において、
前記符号化工程における前記第1の画面の各ブロックの符号化動画データの生成が完了する前に、前記複数のブロックのうち、前記対応する領域との類似度が閾値以上であるブロックについて、該ブロック及び該ブロックについての前記対応する領域を特定する特定情報を前記外部装置に送信し、
前記符号化工程における前記第1の画面の各ブロックの符号化動画データの生成が完了した後に該符号化動画データを前記外部装置に送信する
ことを特徴とする動画配信サーバの制御方法。
【請求項8】
1フレームの画面が符号化された符号化動画データを動画配信サーバから順次取得し、復号して再生する動画再生装置の制御方法であって、
前記動画再生装置の第1の受信手段が、第1の画面が符号化された第1の符号化動画データについて、フレーム間符号化が行われたブロック及び該ブロックの復号に用いられる参照データを特定する特定情報を受信する第1の受信工程と、
前記動画再生装置の復号前処理手段が、前記第1の受信工程において受信された前記特定情報に基づいて、前記第1の符号化動画データの復号に用いられる、前記フレーム間符号化が行われた各ブロックについての前記参照データを、前記第1の符号化動画データよりも前に取得された第2の符号化動画データを復号して得られた第2の画面から生成する復号前処理工程と、
前記動画再生装置の第2の受信手段が、前記第1の符号化動画データを前記動画配信サーバから受信する第2の受信工程と、
前記動画再生装置の復号手段が、前記第2の受信工程において受信された前記第1の符号化動画データを、前記復号前処理工程において生成された前記フレーム間符号化が行われた各ブロックについての前記参照データを用いて復号して再生する復号工程と、
を有することを特徴とする動画再生装置の制御方法。
【請求項9】
コンピュータを、請求項1乃至4のいずれか1項に記載の動画配信サーバの各手段として機能させるためのプログラム。
【請求項10】
コンピュータを、請求項5または6に記載の動画再生装置の各手段として機能させるためのプログラム。
【請求項11】
請求項9または10に記載のプログラムが記録されたコンピュータが読み取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2013−42539(P2013−42539A)
【公開日】平成25年2月28日(2013.2.28)
【国際特許分類】
【出願番号】特願2012−235959(P2012−235959)
【出願日】平成24年10月25日(2012.10.25)
【分割の表示】特願2012−19239(P2012−19239)の分割
【原出願日】平成24年1月31日(2012.1.31)
【出願人】(592044813)株式会社スクウェア・エニックス・ホールディングス (115)
【Fターム(参考)】
【公開日】平成25年2月28日(2013.2.28)
【国際特許分類】
【出願日】平成24年10月25日(2012.10.25)
【分割の表示】特願2012−19239(P2012−19239)の分割
【原出願日】平成24年1月31日(2012.1.31)
【出願人】(592044813)株式会社スクウェア・エニックス・ホールディングス (115)
【Fターム(参考)】
[ Back to top ]