以下、発明を実施するための形態(以下、「実施の形態」とする)について説明する。なお、説明は以下の順序で行う。
1.実施の形態
2.変形例
<1.実施の形態>
[空間共有表示システム]
図1は、実施の形態としての空間共有表示システム10の構成例を示している。この空間共有表示システム10は、サーバ100と複数のクライアント装置200が、インターネットなどのネットワーク300を介して接続された構成となっている。
サーバ100は、被写体を撮像して得られた背景画像の画像データをエンコードして得られたビデオストリームを含むサーバ配信ストリームを、ネットワーク300を介して各クライアント装置200に送信する。例えば、背景画像の画像データは広視野角画像の画像データとされる。ビデオストリームのレイヤおよび/またはサーバ配信ストリーム(コンテナ)のレイヤに背景画像における代用画像の許容合成範囲を示す情報が挿入されている。代用画像は、例えばアバターあるいはキャラクタを認識し得るシンボルなどであるが、この実施の形態では代用画像としてアバターを想定している。以下では、代用画像をアバターとして説明する。
クライアント装置200は、サーバ100からネットワーク300を介して送られてくるサーバ配信ストリームを受信し、このサーバ配信ストリームに含まれるビデオストリームをデコードして、背景画像の画像データを得る。また、クライアント装置200は、他のクライアント装置200からネットワーク300を介して送られてくる、他のクライアントのアバターを表示するためのアバターメタ情報を含むクライアント送信フレーム(コンテナ)を受信する。
クライアント装置200は、アバターメタ情報に基づいてアバターの画像データを生成し、このアバターの画像データを背景画像データの画像データに合成する。この場合、クラインアント装置200は、ビデオストリームのレイヤおよび/またはサーバ配信ストリームのレイヤに挿入されている背景画像におけるアバターの許容合成範囲を示す情報に基づいて、アバターが背景画像の許容合成範囲内に配置されるようにする。
アバターメタ情報には、アバターの許容合成範囲内における合成位置を示す合成位置情報が含まれており、クライアント装置200は、この合成位置情報が示す合成位置にアバターが合成されるようにする。また、アバターメタ情報には、アバターのサイズを示すサイズ情報が含まれており、クライアント装置200は、サイズ情報が示すサイズで背景画像にアバターが合成されるようにする。
また、クライアント装置200は、自身のアバターを表示するためのアバターメタ情報を含むクライアント送信ストリーム(コンテナ)を、ネットワーク300を介して他のクライアント装置200に送信する。この場合、クラインアント装置200は、自身のアバターを表示するためのアバターメタ情報に基づいて自身のアバターの画像データを生成し、このアバターの画像データを背景画像データの画像データに合成する。
なお、クライアント装置200によっては、自身のアバターを表示するためのアバターメタ情報を含むクライアント送信ストリーム(コンテナ)を他のクライアント装置200に送信する機能を持たないことも考えられる。
クライアント装置200は、背景画像の画像データが通常の視野角画像の画像データである場合には、アバターの画像データが合成された背景画像の画像データをそのまま表示用画像データとして表示装置としてのHMD400Aに送る。一方、クライアント装置200は、背景画像の画像データが広視野角画像の画像データである場合には、アバターの画像データが合成される背景画像の画像データの一部を切出して表示用画像データを得、この表示用画像データを表示装置としてのHMD400Aに送る。この場合の切出し範囲は、例えば、HMD搭載のセンサで検出される頭部姿勢に応じて決定される。
また、他のクライアント装置200から送られてくるクライアント送信ストリームには、アバターメタ情報に対応した音声データがオブジェクトメタデータと共に含まれている。また、自身のアバターを表示するためのアバターメタ情報に関しても、それに対応した音声データがオブジェクトメタデータと共に存在する。クライアント装置200は、音声データにオブジェクトメタデータに応じたレンダリング処理を行ってアバターの合成位置を音像位置とする音声出力データを得、音声出力装置としてのヘッドフォン(HP)400Bに送る。
また、他のクライアント装置200から送られてくるクライアント送信ストリームには、アバターメタ情報に対応した字幕データが表示位置情報と共に含まれている。また、自身のアバターを表示するためのアバターメタ情報に関しても、それに対応した字幕データが表示位置情報と共に存在する。クライアント装置200は、字幕データによる字幕がアバターの合成位置に対応した位置に表示されるように表示位置情報に基づいて字幕の表示データを背景画像の画像データに合成する。
図2は、サーバ100と複数のクライアント装置200の各間におけるストリームの送受信の関係の一例を示している。なお、図示の例では、3つのクライアント装置200が存在し、全てのクライアント装置200からクライアント送信フレームが他のクライアント装置200に送られている。クライアント送信フレームには、アバターメタ情報、音声データおよびテキストデータ(字幕データ)が含まれている。
[サーバの構成]
図3は、サーバ100の構成例を示している。このサーバ100は、制御部101と、ロケータ102と、ビデオキャプチャ103と、フォーマット変換処理部104と、ビデオエンコーダ105と、音声キャプチャ106と、オーディオエンコーダ108と、コンテナエンコーダ109と、ネットワークインタフェース110を有している。各部は、バス111で接続されている。
制御部101は、サーバ100の各部の動作を制御する。この制御部101には、ユーザ操作部101aが接続されている。ロケータ101は、GPS衛星からの電波を受信して位置(経度・緯度・高度)の情報を得る。ビデオキャプチャ103は、被写体を撮像して背景画像の画像データを得るカメラ(撮像部)である。ビデオキャプチャ103では広視野角画像データや、広視野角画像データを得るための複数枚の画像データを得る。フォーマット変換処理部104は、ビデオキャプチャ103で得られた画像データに対してマッピング処理(広視野角画像の変形、複数画像の合成など)を施してエンコーダ入力の画像フォーマットの画像データを得る。
ビデオエンコーダ105は、フォーマット変換処理部104で得られた画像データに対してHEVCなどの符号化を施して符号化画像データを得、この符号化画像データを含むビデオストリームを生成する。この場合、ビデオエンコーダ105は、アクセスユニット(AU)の“SEIs”のSEIメッセージ群に、ビデオ・アトリビュート・インフォメーション・SEIメッセージ(Video_attribute_information SEI message)を配置する。
このSEIメッセージには、カメラ(撮像部)の撮像状態を示すキャプチャ情報と、カメラの位置(撮像位置)を示す位置情報(GPSデータ)と、背景画像におけるアバターの許容合成範囲を示す情報が挿入されている。
図4は、ビデオ・アトリビュート・インフォメーション・SEIメッセージの構造例(Syntax)を示し、図5はその構造例における主要な情報の内容(Semantics)を示している。「message_id」の8ビットフィールドは、ビデオ・アトリビュート・インフォメーション・SEIメッセージであることを識別する識別情報を示す。「byte_length」の8ビットフィールドは、このビデオ・アトリビュート・インフォメーション・SEIメッセージのサイズとして、以降のバイト数を示す。
「target_content_id」の8ビットフィールドは、ビデオコンテンツの識別情報を示す。「capture_position()」のフィールドは、撮像位置を示す。「position_latitude」の16ビットフィールドは、撮像位置(緯度)を示す。「position_longitude」の16ビットフィールドは、撮像位置(経度)を示す。「position_elevation」の16ビットフィールドは、撮像位置(標高)を示す。
「camera_direction」の16ビットフィールドは、撮像時のカメラの向く方向を示す。例えば、図6(a)に示すように、カメラの向く方向として東西南北などの方角を示す。「camera_V_angle」の16ビットフィールドは、図6(b)に示すように、撮像時のカメラの水平からのアングルを示す。
「sy_window()」のフィールドは、背景画像におけるアバターの許容合成範囲を示す。「sy_window_x_start」の16ビットフィールドは、許容合成範囲の開始位置(水平位置)を示す。「sy_window_y_start」の16ビットフィールドは、許容合成範囲の開始位置(垂直位置)を示す。「sy_window_x_end」の16ビットフィールドは、許容合成範囲の終了位置(水平位置)を示す。「sy_window_y_end」の16ビットフィールドは、許容合成範囲の終了位置(垂直位置)を示す。
図3に戻って、音声キャプチャ106は、ビデオキャプチャ103で撮像される被写体に対応した音声(音)を集音して、2チャネルあるいはそれ以上の多チャネル、例えば5.1チャネルなどの音声データを得るマイクロホンである。オーディオエンコーダ108は、音声キャプチャ106で得られた音声データに対して、MPEG-H Audio,AC4等の符号化を施し、オーディオデータストリームを生成する。
コンテナエンコーダ109は、ビデオエンコーダ105で得られたビデオストリームおよびオーディオエンコーダ108で得られたオーディオストリームを含むコンテナ、ここではMP4ストリームを、サーバ配信ストリームとして生成する。
この場合、コンテナエンコーダ109は、イニシャライゼーション・セグメント(IS)や“moof”のボックスに定義される“udta”のボックスに、ビデオ・アトリビュート・インフォメーション・ボックス「“vaib”ボックス」を定義する。
このビデオ・アトリビュート・インフォメーション・ボックスには、ビデオ・アトリビュート・インフォメーション・SEIメッセージと同様に、カメラ(撮像部)の撮像状態を示すキャプチャ情報と、カメラの位置(撮像位置)を示す位置情報(GPSデータ)と、背景画像におけるアバターの許容合成範囲を示す情報が挿入されている。なお、ビデオ・アトリビュート・インフォメーション・ボックスとビデオ・アトリビュート・インフォメーション・SEIメッセージの双方を挿入することは必ずしも必要ではなく、いずれか一方だけが挿入されてもよい。
図7は、“vaib”ボックスに格納される情報例を示している。「position_latitude」は撮像位置(緯度)、「position_longitude」は撮像位置(経度)、「position_elevation」は撮像位置(標高)である。また、「camera_direction」は撮像時のカメラの向く方向を示すもので、北の方向からの方角を示す。また、「camera_V_angle」は撮像時のカメラの水平方向からのアングルを示す。また、「sy_window_x_start」は許容合成範囲の開始位置(水平位置)、「sy_window_y_start」は許容合成範囲の開始位置(垂直位置)、「sy_window_x_end」は許容合成範囲の終了位置(水平位置)、「sy_window_y_end」は許容合成範囲の終了位置(垂直位置)である。
図3に戻って、ネットワークインタフェース110は、ネットワーク300を介して、クライアント装置200と通信をする。ネットワークインタフェース110は、コンテナエンコーダ109で得られたサーバ配信ストリームを、ネットワーク300を介して、クラインアント装置200に送信する。
図3に示すサーバ100の動作を簡単に説明する。ビデオキャプチャ103では、被写体が撮像され、広視野角画像データや、広視野角画像データを得るための複数枚の画像データが得られる。ビデオキャプチャ103で得られた画像データは、フォーマット変換処理部104に供給される。フォーマット変換処理部104では、ビデオキャプチャ103から供給される画像データに対してマッピング処理(広視野角画像の変形、複数画像の合成など)が施され、エンコーダ入力の画像フォーマットの画像データが得られる。
フォーマット変換処理部104で得られた画像データは、ビデオエンコーダ105に供給される。ビデオエンコーダ105では、フォーマット変換処理部104からの画像データに対してHEVCなどの符号化が施されて符号化画像データが得られ、この符号化画像データを含むビデオストリームが生成される。
また、ビデオエンコーダ105では、アクセスユニット(AU)の“SEIs”のSEIメッセージ群に、ビデオ・アトリビュート・インフォメーション・SEIメッセージ(図4参照)が配置される。このSEIメッセージには、カメラ(撮像部)の撮像状態を示すキャプチャ情報と、カメラの位置(撮像位置)を示す位置情報(GPSデータ)と、背景画像におけるアバターの許容合成範囲を示す情報が挿入されている。
音声キャプチャ106では、ビデオキャプチャ103で撮像される被写体に対応した音声(音)が集音されて、2チャネルあるいはそれ以上の多チャネルの音声データが得られる。各チャネルの音声データは、オーディオエンコーダ108に供給される。音声エンコーダ108では、音声キャプチャ106で得られた音声データに対して、MPEG-H Audio,AC4等の符号化が施され、オーディオデータストリームが生成される。
ビデオエンコーダ105で得られたビデオストリームとオーディオエンコーダ108で得られたオーディオストリームは、コンテナデコーダ109に供給される。コンテナエンコーダ109は、ビデオストリームおよびオーディオストリームを含むコンテナ、ここではMP4ストリームが、サーバ配信ストリームとして生成される。
また、コンテナエンコーダ109では、イニシャライゼーション・セグメント(IS)や“moof”のボックスに定義される“udta”のボックスに、ビデオ・アトリビュート・インフォメーション・ボックス(図7参照)が新規定義される。このボックスには、カメラ(撮像部)の撮像状態を示すキャプチャ情報と、カメラの位置(撮像位置)を示す位置情報(GPSデータ)と、背景画像におけるアバターの許容合成範囲を示す情報が挿入されている。
コンテナエンコーダ109で得られたサーバ配信ストリームはネットワークインタフェース110に供給される。ネットワークインタフェース110では、サーバ配信ストリームを、ネットワーク300を介して、クラインアント装置200に送信することが行われる。
[クライアント装置の構成]
クライアント装置200の構成例を説明する。図8は、クライアント装置200の送信系200Tの構成例を示している。この送信系200Tは、制御部201と、メタデータジェネレータ202と、音声キャプチャ203と、オブジェクト情報生成部204と、オーディオエンコーダ205と、文字発生部206と、字幕エンコーダ207と、コンテナエンコーダ208と、ネットワークインタフェース209を有している。各部は、バス210で接続されている。
制御部201は、クライアント装置200、従って送信系200Tの各部の動作を制御する。この制御部201には、ユーザ操作部201aが接続されている。メタデータジェネレータ202は、ユーザ操作部201aからのユーザ操作に応じて、アバターメタ情報を発生する。アバターメタ情報は、アバターレンダリング制御情報(avator_rendering_control_information)とアバターデータベース選択情報(avator_database_selection)からなっている。
アバターレンダリング制御情報には、背景画像の許容合成範囲内におけるアバターの合成位置を示す情報と、そのアバターのサイズを示す情報が含まれている。図9(a)はアバターレンダリング制御情報の構造例(Syntax)を示し、図9(b)はその構造例における主要な情報の内容(Semantics)を示している。
「message_id」の8ビットフィールドは、アバターレンダリング制御情報であることを識別する識別情報を示す。「byte_length」の8ビットフィールドは、このアバターレンダリング制御情報のサイズとして、以降のバイト数を示す。
「client_id」の8ビットフィールドは、このアバターメタ情報を送信するクライアント(クライアント装置200)の識別情報を示す。「target_content_id」の8ビットフィールドは、合成対象のビデオコンテンツ(背景画像)の識別情報を示す。「number_of_client_objects」の8ビットフィールドは、クライアントから送信されるオブジェクト、つまりアバターの数を示す。
オブジェクトの数だけ、「client_object_id」、「avator_center_position_x」、「avator_center_position_y」、「avator_rendering_size」の各フィールドが繰り返し存在する。「client_object_id」の8ビットフィールドは、クライアントから送信されるオブジェクト(アバター)の識別情報を示す。
「avator_center_position_x」の16ビットフィールドは、許容合成範囲(sy_window)の中でアバター合成位置の中心座標のx座標(水平ポジション)を示す。「avator_center_position_y」の16ビットフィールドは、許容合成範囲の中でアバター合成位置の中心座標のy座標(垂直ポジション)を示す。「avator_rendering_size」の16ビットフィールドは、合成させるアバターの大きさ(サイズ)を示す。なお、サイズはアバター合成位置の中心座標からの長方形の対角線で求められる。データベースのアバター画像の元のアスペクト比を維持したまま、合成させるアバターのサイズとの比率に応じたサイズ変換を行う。
アバターデータベース選択情報には、アバターの画像データをアバターデータベースから得るための選択情報が含まれている。図10(a)はアバターデータベース選択情報の構造例(Syntax)を示し、図10(b)はその構造例における主要な情報の内容(Semantics)を示している。
「message_id」の8ビットフィールドは、アバターデータベース選択情報であることを識別する識別情報を示す。「byte_length」の8ビットフィールドは、このアバターデータベース選択情報のサイズとして、以降のバイト数を示す。「client_id」の8ビットフィールドは、このアバターデータベース選択情報を送信するクライアント(クライアント装置200)の識別情報を示す。「target_content_id」の8ビットフィールドは、合成対象のビデオコンテンツ(背景画像)の識別情報を示す。
「number_of_client_objects」の8ビットフィールドは、クライアントから送信されるオブジェクト、つまりアバターの数を示す。オブジェクトの数だけ、「client_object_id」、「body_type」、「body_angle」、「emotional_type」、「face_angle」の各フィールドが繰り返し存在する。「client_object_id」の8ビットフィールドは、クライアントから送信されるオブジェクト(アバター)の識別情報を示す。
「body_type」の16ビットフィールドは、アバターの全身体系の種類を示す。「body_angle」の16ビットフィールドは、アバター画像の正面からの向きの属性を示す。「emotional_type」の16ビットフィールドは、アバターの表情・感情の種類を示す。「face_angle」の16ビットフィールドは、アバターの顔の向きを示す。
図8に戻って、音声キャプチャ203は、各オブジェクト、つまり各アバターの音声(音)を集音して音声データを得るマイクロホンである。オブジェクト情報生成部204は、オブジェクト毎にアバター合成位置情報に基づいてオブジェクトメタデータを生成し、各オブジェクトのオブジェクト符号化データ(符号化サンプルデータ、オブジェクトメタデータ)を出力する。
図11(a)は各オブジェクト(アバター)のオブジェクトメタデータとしての音声オブジェクトレンダリング情報(Voice_object_rendering_information)の構造例を示し、図11(b)はその構造例における主要な情報の内容(Semantics)を示している。「message_id」の8ビットフィールドは、音声オブジェクトレンダリング情報であることを識別する識別情報を示す。「byte_length」の8ビットフィールドは、このアバターデータベース選択情報のサイズとして、以降のバイト数を示す。「client_id」の8ビットフィールドは、この音声データを送信するクライアント(クライアント装置200)の識別情報を示す。「target_content_id」の8ビットフィールドは、合成対象のビデオコンテンツ(背景画像)の識別情報を示す。
「number_of_client_objects」の8ビットフィールドは、クライアントから送信されるオブジェクト、つまりアバターの数を示す。オブジェクトの数だけ、「client_object_id」、「Azimuth」、「Radius」、「Elevation」の各フィールドが繰り返し存在する。「client_object_id」の8ビットフィールドは、クライアントから送信されるオブジェクト(アバター)の識別情報を示す。
「Azimuth」の16ビットフィールドは、オブジェクトとしてのアバターの位置情報としてのアジマス(Azimuth)を示す。「Radius」の16ビットフィールドは、オブジェクトとしてのアバターの位置情報としてのラジアス(Radius )を示す。「Elevation」の16ビットフィールドは、オブジェクトとしてのアバターの位置情報としてのエレベーション(Elevation)を示す。
ここで、図12を参照して、「Azimuth」、「Radius」、「Elevation」の値の求め方について説明する。HMD400Aで展開される画像上におけるアバターの合成位置の中心座標を点Pで表している。上述したようにアバターの合成位置は、背景画像におけるアバターの許容合成範囲内にあり、アバターの合成位置情報(「avator_center_position_x」、「avator_center_position_y」)で特定される。
この実施の形態において、背景画像におけるアバターの許容合成範囲は、HMD400Aで展開される画像範囲が対応するように設定される。これにより、アバターの合成位置情報によりHMD400Aで展開される画像上における点Pの座標が特定される。また、この実施の形態において、HMD400Aで展開される画像範囲は、デフォルトの表示状態では、背景画像におけるアバターの許容合成範囲に対応したものとされる。
LT,LB,RT,RBは想定する表示モニタにおける仮想スピーカを示している。また、想定する鑑賞位置の中心を点Qで示している。点Qから点Pまでの距離をrとし、QAとQBのなす角をθ、QBとQPのなす角をφとして、「Azimuth」、「Radius」、「Elevation」の値(アバター位置情報)が以下のように求められる。
Azimuth=θ
Elevation=φ
Radius=r
上述したように音声オブジェクトレンダリング情報(図11参照)にオブジェクト(アバター)の合成位置情報である「Azimuth」、「Radius」、「Elevation」の値を含めて送信することで、受信側では、これらの値をそのままレンダラにオブジェクトメタデータとして入力して用いることが可能となる。
なお、受信側では、アバターレンダリング制御情報(図9参照)に含まれるアバターの合成位置情報(「avator_center_position_x」、「avator_center_position_y」)により点Pの座標を特定でき、この点Pと想定する鑑賞位置の中心を点Qから「Azimuth」、「Radius」、「Elevation」の値を求めて(図12参照)、それをレンダラにオブジェクトメタデータとして入力して用いることも可能である。
その場合には、音声オブジェクトレンダリング情報(図11参照)により各オブジェクト(アバター)の合成位置情報である「Azimuth」、「Radius」、「Elevation」の値を送信しなくてもよく、例えば、「number_of_client_objects」=0とされる。
また、その場合であっても、「Radius」の値を送ることで、各オブジェクト(アバター)の合成位置としての適切な奥行位置をサーバ100からクライアント装置200に伝えることが可能となる。この場合、音声オブジェクトレンダリング情報(図11参照)に各オブジェクト(アバター)の合成位置情報である「Azimuth」、「Radius」、「Elevation」の値を挿入する際に、「Azimuth」、「Elevation」の値に関しては例えば無効な値に設定される。
また、「Radius」の値も送らない場合であっても、クライアント装置200側で、アバターレンダリング制御情報(図9参照)に含まれる「avator_rendering_size」の情報に基づいて、オブジェクト(アバター)のサイズに応じて、求められた「Radius」の値を調整することにより、各オブジェクト(アバター)の合成位置の奥行位置を適切な位置に設定することが可能となる。
図8に戻って、オーディオエンコーダ205は、オブジェクト情報生成部107で得られた各オブジェクトのオブジェクト符号化データ(符号化サンプルデータ、オブジェクトメタデータ)に対して符号化を施してMPEG-H 3D Audioの符号化音声データを得る。この符号化音声データは、アバターメタ情報に対応した音声データを構成する。
文字入力部206は、ユーザ操作部201aからのユーザ操作に基づいて、各オブジェクト、つまり各アバターに対応した字幕のテキストデータ(文字コード)DTを、適宜、発生する。字幕エンコーダ207は、テキストデータDTを入力し、所定フォーマットの字幕(サブタイトル)のテキスト情報、この実施の形態においてはTTML(Timed Text Markup Language)を得る。このTTMLは、アバターメタ情報に対応した字幕データを構成する。
図13(a)は、TTML構造を示している。TTMLは、XMLベースで記載される。TTMLは、ヘッダ(head)とボディ(body)からなる。ヘッダには、メタデータ(metadata)、スタイリング(styling)、レイアウト(layout)などの各要素が存在する。メタデータには、メタデータのタイトルの情報と、コピーライトの情報などが含まれている。スタイリングには、識別子(id)の他に、カラー(color)、フォント(fontFamily)、サイズ(fontSize)、アラインメント(textAlign)などの情報が含まれている。レイアウトには、サブタイトルを配置するリージョンの識別子(id)の他に、範囲(extent)、オフセット(padding)、バックグラウンドカラー(backgroundColor)、アラインメント(displayAlign)などの情報が含まれている。ボディには、字幕のテキスト情報等が含まれている
この実施の形態において、TTMLには、字幕オブジェクトレンダリング情報が挿入される。図13(b)は、メタデータ(TTM:TTML Metadata)の構造例を示し、「target_content_id」、「client_id」、「client_object_id」の各情報が存在する。「target_content_id」は、合成対象のビデオコンテンツ(背景画像)の識別情報を示す。「client_id」は、この字幕データを送信するクライアント(クライアント装置200)の識別情報を示す。「client_object_id」は、クライアントから送信されるオブジェクト(アバター)の識別情報を示す。なお、字幕の表示位置の情報は、ボディに含まれている。
図8に戻って、コンテナエンコーダ208は、メタデータジェネレータ202で発生されたアバターメタ情報、オーディオエンコーダ205で得られた3Dオーディオの符号化音声データおよび字幕エンコーダ207で得られた字幕のテキスト情報であるTTMLを含むコンテナ、ここではMP4ストリームを、クライアント送信ストリームとして生成する。
ネットワークインタフェース209は、ネットワーク300を介して、他のクライアント装置200と通信をする。ネットワークインタフェース209は、コンテナエンコーダ208で得られたクライアント送信ストリームを、ネットワーク300を介して、他のクラインアント装置200に送信する。
図8に示す送信系200Tの動作を簡単に説明する。メタデータジェネレータ202では、ユーザ操作部201aからのユーザ操作に応じて、アバターメタ情報が発生される。このアバターメタ情報は、アバターレンダリング制御情報(図9参照)と、アバターデータベース選択情報(図10参照)からなっている。アバターレンダリング制御情報には、背景画像の許容合成範囲内におけるアバターの合成位置を示す情報と、そのアバターのサイズを示す情報が含まれている。また、アバターデータベース選択情報には、アバターの画像データをアバターデータベースから得るための選択情報が含まれている。
音声キャプチャ203では、各オブジェクト、つまり各アバターの音声(音)が集音されて音声データが得られる。この各オブジェクト(アバター)の音声データは、オブジェクト情報生成部204に供給される。また、このオブジェクト情報生成部204には、背景画像における各オブジェクト(アバター)の合成位置情報が供給される。
オブジェクト情報生成部204では、オブジェクト毎にオブジェクト合成位置情報に基づいてオブジェクトメタデータが生成され、各オブジェクトのオブジェクト符号化データ(符号化サンプルデータ、オブジェクトメタデータ)が得られる。ここで、各オブジェクト(アバター)のオブジェクトメタデータとして音声オブジェクトレンダリング情報(図11参照)が含まれる。この音声オブジェクトレンダリング情報には、各オブジェクト(アバター)の位置情報(θ,φ,r)が含まれている。
オブジェクト情報生成部204で得られた各オブジェクトのオブジェクト符号化データ(符号化サンプルデータ、オブジェクトメタデータ)は、オーディオエンコーダ205に供給される。オーディオエンコーダ205では、各オブジェクトのオブジェクト符号化データに対して符号化が施されて、MPEG-H 3D Audioの符号化音声データが得られる。
文字入力部206では、ユーザ操作部201aからのユーザ操作に基づいて、各オブジェクト、つまり各アバターに対応した字幕のテキストデータ(文字コード)DTが、適宜、発生される。このテキストデータDTは、字幕エンコーダ207に供給される。この字幕エンコーダ207には、各オブジェクト(アバター)に対応した字幕の表示位置情報が供給される。
字幕エンコーダ207では、テキストデータDTに基づいて字幕(サブタイトル)のテキスト情報としてのTTMLが得られる。このTTMLの例えばメタデータにレンダリング情報が挿入される(図13参照)。なお、字幕の表示位置の情報は、ヘッドに含まれる。アバターレンダリング情報はメタデータ以外の部分、例えば「origin」や「extent」と共に、ヘッド配下のレイアウトに含まれるようにしてもよい。
メタデータジェネレータ202で発生されたアバターメタ情報、オーディオエンコーダ205で得られた3Dオーディオの符号化音声データおよび字幕エンコーダ207で得られた字幕のテキスト情報であるTTMLは、コンテナエンコーダ208に供給される。コンテナエンコーダ208では、アバターメタ情報、符号化音声データおよびTTMLを含むMP4ストリームがクライアント送信ストリームとして生成される。
コンテナエンコーダ208で得られたクライアント送信ストリームはネットワークインタフェース209に供給される。ネットワークインタフェース209では、クライアント配信ストリームを、ネットワーク300を介して、他のクラインアント装置200に送信することが行われる。
図14は、クライアント装置200の受信系200Rの構成例を示している。この受信系200Rは、制御部201と、ネットワークインタフェース211と、コンテナデコーダ212と、ビデオデコーダ213と、プレーンコンバータ214と、受信モジュール215,215Aと、オーディオデコーダ216と、ミクサ218と、合成部219を有している。各部は、バス210で接続されている。
制御部201は、クライアント装置200、従って受信系200Rの各部の動作を制御する。この制御部201には、ユーザ操作部201aが接続されている。ネットワークインタフェース211は、ネットワーク300を介して、サーバ100および他のクライアント装置200と通信をする。ネットワークインタフェース211は、サーバ100から、上述したサーバ配信ストリームを受信する。また、ネットワークインタフェース211は、他のクライアント装置200から、上述したクライアント送信ストリームを受信する。
コンテナデコーダ212は、ネットワークインタフェース211で受信されたサーバ配信ストリーム(MP4ストリーム)からビデオストリームおよびオーディオストリームを取り出す。この場合、コンテナデコーダ212は、イニシャライゼーション・セグメント(IS)や“moof”のボックスに定義される“udta”のボックスに存在するビデオ・アトリビュート・インフォメーション・ボックス「“vaib”ボックス」を取り出し、制御部201に送る。これにより、制御部201は、カメラの撮像状態を示すキャプチャ情報と、カメラの位置(撮像位置)を示す位置情報(GPSデータ)と、背景画像におけるアバターの許容合成範囲を示す情報を認識する。
ビデオデコーダ213は、コンテナデコーダ212で取り出されたビデオストリームにデコード処理を施して、背景画像の画像データを得る。また、ビデオデコーダ213は、ビデオストリームに挿入されているパラメータセットやSEIメッセージを抽出し、制御部201に送る。
この抽出情報には、上述したビデオ・アトリビュート・インフォメーション・SEIメッセージ(図4参照)も含まれる。これにより、制御部201は、カメラの撮像状態を示すキャプチャ情報と、カメラの位置(撮像位置)を示す位置情報(GPSデータ)と、背景画像におけるアバターの許容合成範囲を示す情報を認識する。
プレーンコンバータ214は、ビデオデコーダ213で得られた背景画像の画像データが非線形な画像データである場合には線形な画像データに変換する。また、プレーンコンバータ214は、背景画像の画像データが広視野角画像の画像データである場合、その画像データから、HMD400Aの表示視野角に対応した部分だけを切り出し、表示用画像データを得る。
例えば、背景画像におけるアバターの許容合成範囲の大きさはHMD400Aの表示視野角に対応して設定されており、プレーンコンバータ214は、デフォルトの状態では、この許容合成範囲に対応した画像データを切り出して表示用画像データとする。その後、プレーンコンバータ214は、切出し範囲を、例えばHMD搭載のセンサで検出される頭部姿勢に応じて変更していく。
オーディオデコーダ216は、コンテナデコーダ212で取り出されたオーディオストリームにデコード処理を施して、ヘッドフォン(HP)400Bでの音声再生のための2チャネルの音声データを得る。なお、デコード処理で5.1チャネル等の多チャネルの音声データが得られる場合、オーディオデコーダ216は、さらに、2チャネルにダウンミックスして2チャネルの音声データとする。
受信モジュール215は、ネットワークインタフェース214で受信されたクライアント送信ストリームを処理し、アバターの画像データとそのアバターの合成位置情報、アバターに対応した字幕の表示データとその字幕の表示位置情報、さらにアバターに対応した2チャネルの音声データを得る。
また、受信モジュール215Aは、自身のクライアント装置200の送信系200T(図8参照)で生成されたクライアント送信ストリームを処理し、アバターの画像データとそのアバターの合成位置情報、アバターに対応した字幕の表示データとその字幕の表示位置情報、さらにアバターに対応した2チャネルの音声データを得る。受信モジュール215Aは、背景画像に自身のアバターを合成するために設けられている。なお、自身のクライアント装置200が送信系200T(図8参照)を持たない場合には、受信系200R(図14参照)における受信モジュール215Aは不要となる。
図15は、受信モジュール215(215A)の構成例を示している。この受信モジュール215(215A)は、コンテナデコーダ221と、メタ情報解析部222と、アバターデータベース選択部223と、アバターデータベース224と、サイズ変換部225と、オーディオデコーダ226と、レンダラ227と、字幕デコーダ228と、フォント展開部229を有している。
コンテナデコーダ221は、クライアント送信ストリームからアバターメタ情報、3Dオーディオの符号化音声データおよび字幕のテキスト情報であるTTMLを取り出す。メタ情報解析部222は、コンテナデコーダ221で得られたアバターメタ情報を解析する。
メタ情報解析部222は、アバターデータベース選択情報(図10参照)に基づいて、アバターの画像データをアバターデータベース224から得るための選択情報を取得する。この選択情報は、アバターの全身体系の種類「body_type」、正面からの向き「body_angle」、表情・感情の種類「emotional_type」、顔の向き「face_angle」の各情報からなっている。
また、メタ情報解析部222は、アバターレンダリング制御情報(図9参照)に基づいて、背景画像の許容合成範囲内におけるアバターの合成位置情報「avator_center_position_x」、「avator_center_position_y」と、そのアバターのサイズ情報「avator_rendering_size」を取得する。
アバターデータベース選択部223は、メタ情報解析部222で取得された選択情報を参照してアバターデータベース224から取得されるアバターの構成データに基づいて、アバターの画像データを得る。
図16は、アバターデータベース選択部223の構成例を示している。アバターデータベース選択部223は、データベースマッピング部223aを備えている。アバターの全身体系の種類「body_type」、正面からの向き「body_angle」、表情・感情の種類「emotional_type」、顔の向き「face_angle」の各情報がデータベースマッピング部223aに入力され、これらの情報に基づいてアバターデータベース224からアバターの構成データが取得されてマッピングされ、アバターの画像データが得られる。
図17は、アバターデータベース224のリスト例を示している。例えば、アバターの全身体系の種類「body_type」の構成データとしては、“直立している”、“腰かけている”、“寝そべっている”の3状態が保持されている。また、例えば、正面からの向き「body_angle」の構成データとしては、“前向き”、“後ろ向き”、“右向き”、“左向き”、“上向き”、“下向き”の6状態が保持されている。また、例えば、表情・感情の種類「emotional_type」構成データとしては、“無表情”、“笑っている”、“泣いている”、“怒っている”の4状態が保持されている。また、顔の向き「face_angle」の構成データとしては、“正面直視”、“伏し目”の2状態が保持されている。
図15に戻って、サイズ変換部225は、アバターデータベース選択部223で得られたアバターの画像データに対して、メタ情報解析部222で取得されたサイズ情報に基づいて、サイズ変換処理を施し、サイズ変換されたアバターの画像データを得る。
オーディオデコーダ226は、コンテナデコーダ221で得られた音声符号化データにデコード処理を施し、オブジェクト符号化データとしての符号化サンプルデータおよびオブジェクトメタデータ(音声オブジェクトレンダリング情報)を得る。レンダラ227は、オーディオデコーダ226で得られた符号化サンプルデータおよびオブジェクトメタデータに対してレンダリング処理を施し、背景画像におけるアバターの合成位置が音像位置となるように、各スピーカのチャネルデータを得る。
図18は、レンダラ227におけるレンダリング処理の概要を示している。この図18において、図12と対応する部分には同一符号を付して示している。オブジェクトメタデータに含まれるアバター位置情報(θ,φ,r)は、HMD400Aで展開される画像上におけるアバターの合成位置の中心座標である点Pに対応する。
なお、クライアント装置200では、上述したように、アバターレンダリング制御情報(図9参照)に含まれるアバターの合成位置情報(「avator_center_position_x」、「avator_center_position_y」)により点Pの座標を特定でき、この点Pと想定する鑑賞位置の中心を点Qから「Azimuth」、「Radius」、「Elevation」の値を求めて、レンダラ227で用いることも可能である(図12参照)。
その場合、「Radius」の値に関しては、サーバ100から音声オブジェクトレンダリング情報(図11参照)に挿入されて送られてくる「Radius」の値を使用するか、あるいはアバターレンダリング制御情報(図9参照)に含まれる「avator_rendering_size」の情報に基づいて、オブジェクト(アバター)のサイズに応じて、求められた「Radius」の値を調整して使用することで、アバターの合成位置の奥行位置を適切な位置に設定することが可能となる。
そして、この点Pが、中心鑑賞位置である点Qから各スピーカ位置へ伸ばした軸Q-LT,Q-LB,Q-RT,Q-RB上のベクトルr_LT,r_LB,r_RT,r-RBに射影される。そして、各スピーカのチャンネルデータの音圧レベルはそれぞれこの4つのベクトルのベクトル量に相当するものとされる。
なお、図18の例は、HMD400Aに展開される画像がデフォルトの状態、すなわちHMD400Aに展開される画像が背景画像にけるアバターの許容合成範囲に対応している場合を示している。上述したようにプレーンコンバータ214における切出し範囲はHMD搭載のセンサで検出される頭部姿勢に応じて変更されていく。
この場合、HMD400Aに展開される画像上の点Pの位置も変化し、変化量によってはHMD400Aに展開される画像上から点Pの位置が外れることも想定される。この場合、レンダラ227では、アバター位置情報(θ,φ,r)で求められた点Pの位置ではなく、変化後の点Pの位置に基づいて各スピーカのチャンネルデータの音圧レベルが設定される。
また、レンダラ227は、上述したように各スピーカのチャンネルデータに、リマッピング(Remapping)による音圧制御を施し、ヘッドフォン400Bで再生するための2チャネルの音声データに変換して出力する。なお、クライアント側における音声出力が、ヘッドフォン400Bではなく、スピーカLT,LB,RT,RBで行われる場合には、このリマッピングによる音圧制御は省略される。
図19は、レンダラ227におけるリマッピングによる音圧制御を概略的に示している。D_LT,D_LB,D_RT,D_RBはそれぞれスピーカLT,LB,RT,RBに出力するチャネルデータを示し、“Left ear”,“Right ear”はヘッドフォン400Bで再生するための2チャネルの音声データを示している。ここで、リマッピングによる音圧制御では、各スピーカから左右の耳までの伝達特性、いわゆる頭部伝達関数(HRTF:Head Related Transfer Function)を各チャネルデータに畳み込んでから合算して2チャネルにダウンミックスすることが行われる。
図15に戻って、字幕デコーダ228は、コンテナデコーダ221で得られたTTMLから字幕のテキストデータや制御コードを得る。制御コードの1つとして、表示位置情報も得られる。フォント展開部229は、字幕デコーダ228で得られた字幕のテキストデータや制御コードに基づいてフォント展開して、字幕表示データ(ビットマップデータ)を得る。
図15に示す受信モジュール215(215A)の動作を簡単に説明する。クライアント送信ストリームは、コンテナデコーダ221に供給される。コンテナデコーダ221では、クライアント送信ストリームからアバターメタ情報、3Dオーディオの符号化音声データおよび字幕のテキスト情報であるTTMLが取り出される。
コンテナデコーダ221で取り出されたアバターメタ情報は、メタ情報解析部222に供給される。メタ情報解析部222では、アバターデータベース選択情報(図10参照)に基づいて、アバターの画像データをアバターデータベース224から得るための選択情報が取得される。この選択情報は、アバターの全身体系の種類「body_type」、正面からの向き「body_angle」、表情・感情の種類「emotional_type」、顔の向き「face_angle」の各情報からなっている。
また、メタ情報解析部222では、アバターレンダリング制御情報(図9参照)に基づいて、背景画像の許容合成範囲内におけるアバターの合成位置情報「avator_center_position_x」、「avator_center_position_y」と、そのアバターのサイズ情報「avator_rendering_size」が取得される。
メタ情報解析部222で取得された選択情報は、アバターデータベース選択部223に供給される。アバターデータベース選択部223では、選択情報に基づいてアバターデータベース224から取得されるアバターの構成データに基づいてアバターの構成データが取得されてマッピングされ、アバターの画像データが得られる。
アバターデータベース選択部223で得られたアバターの画像データは、サイズ変換部225に供給される。また、このサイズ変換部225には、メタ情報解析部222で取得されたアバターのサイズ情報が供給される。サイズ変換部225では、アバターデータベース選択部223から供給されるアバターの画像データに対して、サイズ情報に基づいて、サイズ変換処理が施され、サイズ変換されたアバターの画像データが得られる。このようにサイズ変換部225で得られたアバターの画像データは、メタ情報解析部222で取得されたアバターの合成位置情報と共に、受信モジュール215(215A)の出力とされる。
また、コンテナデコーダ221で取り出された符号化音声データは、オーディオデコーダ226に供給される。オーディオデコーダ226では、符号化音声データにデコード処理が施され、オブジェクト符号化データとしての符号化サンプルデータおよびオブジェクトメタデータ(音声オブジェクトレンダリング情報)が得られる。このオブジェクト符号化データは、レンダラ227に供給される。
レンダラ227では、オーディオデコーダ226で得られたオブジェクト符号化データ(符号化サンプルデータおよびオブジェクトメタデータ)に対してレンダリング処理が施され、背景画像におけるアバターの合成位置が音像位置となるように、例えばHMD400Aで展開される画像の左右上下に配置された仮想スピーカのチャネルデータが生成される(図18参照)。
さらに、レンダラ227では、4つのチャネデータに頭部伝達関数(HRTF)を用いたリマッピングによる音圧制御が行われて、ヘッドフォン400Bで再生するための2チャネルの音声データが生成される(図19参照)。このようにレンダラ227で得られた2チャネルの音声データは、受信モジュール215(215A)の出力とされる。
また、コンテナデコーダ221で取り出されたTTMLは、字幕デコーダ228に供給される。字幕デコーダ228では、TTMLから字幕のテキストデータや制御コードが得られる。制御コードの1つとして、表示位置情報も得られる。
字幕デコーダ228で得られた字幕のテキストデータや制御コードは、フォント展開部229に供給される。フォント展開部229では、字幕のテキストデータや制御コードに基づいてフォント展開がされて、字幕表示データ(ビットマップデータ)が得られる。このようにフォント展開部229で得られた字幕表示データは、字幕デコーダ228で取得された字幕の表示位置情報と共に、受信モジュール215(215A)の出力とされる。
図14に戻って、ミクサ218は、オーディオデコーダ216で得られた2チャネルの音声データと、受信モジュール215,215A(図15参照)で得られた2チャネルの音声データを合成して、ヘッドフォン(HP)400Bに送る2チャネルの音声データを得る。
合成部219は、制御部201の制御のもと、プレーンコンバータ214で得られた表示用画像データに、受信モジュール215,215Aで得られたアバターの画像データを、合成位置情報に基づいて、背景画像のアバター許容合成範囲内の特定位置にアバターが配置されるように合成し、さらに、受信モジュール215,215Aで得られた字幕表示データを表示位置情報に基づいて合成し、HMD400Aに送る表示画像データを得る。
なお、図14に示す受信系200Rの構成例では、自身のクライアント装置200の送信系200T(図8参照)で生成されたクライアント送信ストリームを処理する受信モジュール215Aを備える例を示した。しかし、この受信モジュール215Aの代わりに、自身のクライアント装置200の送信系200T(図8参照)で生成されたアバターメタ情報、符号化音声データ、TTMLを処理するモジュール(図15に示す受信モジュール215Aのコンテナデコーダ221を除いた構成)、あるいはアバターメタ情報、符号化音声データ、TTMLに対応した他のデータ、情報を入力して同様の出力を得るモジュールであってもよい。
図14に示す受信系200Rの動作を簡単に説明する。ネットワークインタフェース211では、サーバ100から、ネットワーク300を介して、サーバ配信ストリームが受信される。また、ネットワークインタフェース211では、他のクライアント装置200から、ネットワーク300を介して、クライアント送信ストリームが受信される。
ネットワークインタフェース211で受信されたサーバ配信ストリームは、コンテナデコーダ212に供給される。コンテナデコーダ212では、サーバ配信ストリーム(MP4ストリーム)からビデオストリームおよびオーディオストリームが取り出される。
また、コンテナデコーダ212では、イニシャライゼーション・セグメント(IS)や“moof”のボックスに定義される“udta”のボックスに存在するビデオ・アトリビュート・インフォメーション・ボックスが取り出され、制御部201に送られる。これにより、制御部201では、カメラの撮像状態を示すキャプチャ情報と、カメラの位置(撮像位置)を示す位置情報(GPSデータ)と、背景画像におけるアバターの許容合成範囲を示す情報が認識される。
また、コンテナデコーダ212で取り出されたビデオストリームは、ビデオデコーダ213に供給される。ビデオデコーダ213では、ビデオストリームにデコード処理が施されて、背景画像の画像データが得られる。
また、ビデオデコーダ213では、ビデオストリームに挿入されているパラメータセットやSEIメッセージが抽出され、制御部201に送られる。この抽出情報には、ビデオ・アトリビュート・インフォメーション・SEIメッセージ(図4参照)も含まれる。これにより、制御部201では、カメラの撮像状態を示すキャプチャ情報と、カメラの位置(撮像位置)を示す位置情報(GPSデータ)と、背景画像におけるアバターの許容合成範囲を示す情報が認識される。
ビデオデコーダ213で得られた背景画像の画像データは、プレーンコンバータ214に供給される。プレーンコンバータ214では、背景画像の画像データが非線形な画像データである場合には線形な画像データに変換される。また、プレーンコンバータ214では、背景画像の画像データから、HMD400Aの表示視野角に対応した部分だけが切り出され、表示用画像データが得られる。
例えば、背景画像におけるアバターの許容合成範囲の大きさはHMD400Aの表示視野角に対応して設定されており、デフォルトの状態では、この許容合成範囲に対応した画像データが切り出されて表示用画像データとされる。その後、切出し範囲は、例えばHMD搭載のセンサで検出される頭部姿勢に応じて変更されていく。
また、コンテナデコーダ212で取り出されたオーディオストリームは、オーディオデコーダ216に供給される。オーディオデコーダ216では、オーディオストリームにデコード処理が施されて、ヘッドフォン(HP)400Bでの音声再生のための2チャネルの音声データが得られる。なお、デコード処理で5.1チャネル等の多チャネルの音声データが得られる場合、オーディオデコーダ216では、さらに、2チャネルにダウンミックスされて2チャネルの音声データとされる。
また、ネットワークインタフェース211で受信された他のクライアント装置200からのクライアント送信ストリームは、受信モジュール215に供給される。この受信モジュール215では、クライアント送信ストリームが処理され、アバターの画像データとそのアバターの合成位置情報、アバターに対応した字幕の表示データとその字幕の表示位置情報、さらにアバターに対応した2チャネルの音声データが得られる(図15参照)。
また、自身のクライアント装置200の送信系200T(図8参照)で生成されたクライアント送信ストリームは、受信モジュール215Aに供給される。この受信モジュール215Aでは、受信モジュール215と同様に、クライアント送信ストリームが処理され、アバターの画像データとそのアバターの合成位置情報、アバターに対応した字幕の表示データとその字幕の表示位置情報、さらにアバターに対応した2チャネルの音声データが得られる(図15参照)。
オーディオデコーダ216で得られた2チャネルの音声データは、ミクサ218に供給される。また、このミクサ218には、受信モジュール215,215Aで得られた2チャネルの音声データが供給される。ミクサ218では、オーディオデコーダ216で得られた2チャネルの音声データと、受信モジュール215,215Aで得られた2チャネルの音声データが合成されて、ヘッドフォン(HP)400Bに送る2チャネルの音声データが得られる。
また、プレーンコンバータ214で得られた表示用画像データは合成部219に供給される。また、この合成部219には、受信モジュール215,215Aで得られたアバターの画像データおよびアバター合成位置情報や、字幕表示データおよび表示位置情報が供給される。合成部219では、プレーンコンバータ214で得られた表示用画像データに、受信モジュール215,215Aで得られたアバターの画像データが、合成位置情報に基づいて、背景画像のアバター許容合成範囲内の特定位置にアバターが配置されるように合成され、さらに、受信モジュール215,215Aで得られた字幕表示データが表示位置情報に基づいて合成され、HMD400Aに送る表示画像データが得られる。
図20は、背景画像の一例を示し、矩形破線枠はアバターの許容合成範囲(sy_window)を示している。この背景画像の中心(「+」の文字で示している)は、ビデオ・アトリビュート・インフォメーション・SEIメッセージ(図4参照)やビデオ・アトリビュート・インフォメーション・ボックス(図7参照)における「camera_direction」、「camera_V_angle」の情報に対応した位置となる。
図21は、背景画像の許容合成範囲(sy_window)内にアバターおよび字幕が合成された状態の一例を示している。図示の例では、A1,A2,A3の3つのアバターが合成され、さらに2つの字幕が合成されている。ここで、A1のアバターと、それに関連づけられた字幕は、「clinent_id」が“0xA1”であるクライアント(クライアント装置200)によるものである。また、A2のアバターは、「clinent_id」が“0xA2”であるクライアントによるものである。また、A3のアバターと、それに関連づけられた字幕は、「clinent_id」が“0xA3”であるクライアント(クライアント装置200)によるものである。
以上説明したように、図1に示す空間共有表示システム10において、クラインアント装置200では、背景画像の画像データにアバターメタ情報に基づいてアバターの画像データを生成し、このアバターの画像データを背景画像の画像データに合成するものである。そのため、クライアントのそれぞれは、共通の背景画像に他のクライアントのアバターが合成されたものを認識でき、互いのVR空間を共有して良好にコミュニケーションをとることが可能となる。
また、図1に示す空間共有表示システム10において、クライアント送信ストリームには、アバターメタ情報に対応した音声データがオブジェクトメタデータと共に含まれており、クライアント装置200では、音声データにオブジェクトメタデータに応じたレンダリング処理を行ってアバターの合成位置を音像位置とする音声出力データを得ることができる。そのため、クライアントのそれぞれに、背景画像上の各アバターの合成位置からそのアバターのクライアントからの音声が出ているように知覚させることが可能となる。
また、図1に示す空間共有表示システム10において、クライアント送信ストリームには、アバターメタ情報に対応した字幕データが表示位置情報と共に含まれており、クライアント装置200では、字幕データによる字幕がアバターの合成位置に対応した位置に表示されるように表示位置情報に基づいて字幕の表示データを背景画像の画像データに合成することができる。そのため、クライアントのそれぞれに、背景画像上の各アバターの合成位置に対応した位置にそのアバターのクライアントからの字幕を認識させることが可能となる。
また、図1に示す空間共有表示システム10において、背景画像の画像データをエンコードして得られたビデオストリームのレイヤおよび/またはそのビデオストリームを含むサーバ配信ストリームのレイヤに背景画像におけるアバターの許容合成範囲を示す情報が挿入されて配信される。そのため、クラインアント装置200では、背景画像に各クライアントのアバターを、この許容合成範囲を示す情報に基づいて、サーバ100が意図する範囲に配置することが容易に可能となる。
<2.変形例>
なお、上述実施の形態においては、クライアント装置200がHMD400Aとは別個に存在する例を示したが、HMD400Aとクライアント装置200が一体的に構成される例も考えられる。また、上述していないが、実写画像をアバターとして利用することも可能である。
また、上述実施の形態においては、コンテナがMP4(ISOBMFF)である例を示した。しかし、本技術は、コンテナがMP4に限定されるものではなく、MPEG-2 TSやMMTなどの他のフォーマットのコンテナであっても同様に適用し得る。
また、本技術は、以下のような構成を取ることもできる。
(1)サーバから背景画像の画像データをエンコードして得られたビデオストリームを含むサーバ配信ストリームを受信し、他のクライアント装置から該他のクライアントの代用画像を表示するための代用画像メタ情報を含むクライアント送信ストリームを受信する受信部と、
上記ビデオストリームをデコードして背景画像の画像データを得るデコード処理と、上記代用画像メタ情報に基づいて代用画像の画像データを生成する代用画像データ生成処理と、上記背景画像の画像データに上記代用画像の画像データを合成する画像データ合成処理を制御する制御部を備える
クライアント装置。
(2)上記ビデオストリームのレイヤおよび/または上記サーバ配信ストリームのレイヤに上記背景画像における上記代用画像の許容合成範囲を示す情報が挿入されており、
上記制御部は、上記許容合成範囲を示す情報に基づき、上記代用画像が上記背景画像の上記許容合成範囲内に配置されるように上記合成処理を制御する
前記(1)に記載のクライアント装置。
(3)上記代用画像メタ情報には、上記代用画像の上記許容合成範囲内における合成位置を示す合成位置情報が含まれており、
上記制御部は、上記合成位置情報が示す合成位置に上記代用画像が合成されるように上記合成処理を制御する
前記(2)に記載のクライアント装置。
(4)上記代用画像メタ情報には、上記代用画像のサイズを示すサイズ情報が含まれており、
上記制御部は、上記サイズ情報が示すサイズで上記背景画像に上記代用画像が合成されるように上記合成処理を制御する
前記(2)または(3)に記載のクライアント装置。
(5)上記クライアント送信ストリームには、上記代用画像メタ情報に対応した音声データがオブジェクトメタデータと共に含まれており、
上記制御部は、上記音声データに上記オブジェクトメタデータに応じたレンダリング処理を行って上記代用画像の合成位置を音像位置とする音声出力データを得る音声出力処理をさらに制御する
前記(3)に記載のクライアント装置。
(6)上記クライアント送信ストリームには、上記代用画像メタ情報に対応した字幕データが表示位置情報と共に含まれており、
上記制御部は、上記字幕データによる字幕が上記代用画像の合成位置に対応した位置に表示されるように上記表示位置情報に基づいて字幕の表示データを上記背景画像の画像データに合成する字幕合成処理をさらに制御する
前記(3)または(5)に記載のクライアント装置。
(7)自身の代用画像を表示するための代用画像メタ情報を含むクライアント送信ストリームを他のクライアント装置に送信する送信部をさらに備え、
上記代用画像データ生成処理では、上記自身の代用画像を表示するための代用画像メタ情報に基づいて自身の代用画像の画像データをさらに生成する
前記(1)から(6)のいずれかに記載のクライアント装置。
(8)上記背景画像の画像データは、広視野角画像の画像データであり、
上記制御部は、上記背景画像の画像データの一部を切り出して表示用画像データを得る画像切出し処理をさらに制御する
前記(1)から(7)のいずれかに記載のクライアント装置。
(9)受信部が、サーバから背景画像の画像データをエンコードして得られたビデオストリームを含むサーバ配信ストリームを受信し、他のクライアント装置から該他のクライアントの代用画像を表示するための代用画像メタ情報を含むクライアント送信ストリームを受信する受信ステップと、
制御部が、上記ビデオストリームをデコードして背景画像の画像データを得るデコード処理と、上記代用画像メタ情報に基づいて代用画像の画像データを生成する代用画像データ生成処理と、上記背景画像の画像データに上記代用画像の画像データを合成する画像データ合成処理を制御する制御ステップを有する
クライアント装置の処理方法。
(10)被写体を撮像して背景画像の画像データを得る撮像部と、
上記背景画像の画像データをエンコードして得られたビデオストリームを含むサーバ配信ストリームをクライアント装置に送信する送信部を備え、
上記ビデオストリームのレイヤおよび/またはサーバ配信ストリームのレイヤに上記背景画像における代用画像の許容合成範囲を示す情報が挿入されている
サーバ。
(11)上記背景画像の画像データは、広視野角画像の画像データである
前記(10)に記載のサーバ。
(12)撮像部が、被写体を撮像して背景画像の画像データを得る撮像ステップと、
送信部が、上記背景画像の画像データをエンコードして得られたビデオストリームを含むサーバ配信ストリームをクライアント装置に送信する送信ステップを有し、
上記ビデオストリームのレイヤおよび/またはサーバ配信ストリームのレイヤに上記背景画像における代用画像の許容合成範囲を示す情報が挿入されている
サーバの処理方法。
本技術の主な特徴は、他のクラインアント装置からのクライアント送信ストリームにアバターメタ情報が含まれており、背景画像の画像データにこのアバターメタ情報に基づいて生成されたアバターの画像データを合成することで、クライアントのそれぞれが、共通の背景画像に他のクライアントのアバターが合成されたものを認識でき、互いのVR空間を共有して良好にコミュニケーションをとることを可能としたことである(図2、図21参照)。