以下、本開示を実施するための形態(以下、実施の形態という)について説明する。なお、説明は以下の順序で行う。
1.第1実施の形態:配信システム(図1乃至図26)
2.第2実施の形態:画像表示システム(図27乃至図30)
3.第3実施の形態:tan軸投影(図31および図32)
4.第4実施の形態:コンピュータ(図33)
5.応用例(図34および図35)
<1.第1実施の形態>
(配信システムの構成例)
図1は、本開示を適用した配信システムの構成例を示すブロック図である。
図1の配信システム10は、撮影装置11、生成装置12、配信サーバ13、ネットワーク14、再生装置15、およびヘッドマウントディスプレイ16により構成される。配信システム10は、撮影装置11により撮影された撮影画像から全天球画像を生成し、全天球画像を用いてユーザ(視聴者)の視野範囲の表示画像を表示する。
具体的には、配信システム10の撮影装置11は、6個のカメラ11A−1乃至11A−6により構成される。なお、以下では、カメラ11A−1乃至11A−6を特に区別する必要がない場合、それらをまとめてカメラ11Aという。
各カメラ11Aは、動画像を撮影する。撮影装置11は、各カメラ11Aにより撮影された6方向の動画像を撮影画像として生成装置12に供給する。なお、撮影装置11が備えるカメラの数は、複数であれば、6個に限定されない。
生成装置12は、正距円筒図法を用いた方法により、撮影装置11から供給される撮影画像から全天球画像を生成して低解像度化する。生成装置12は、低解像度化された全天球画像である低解像度画像(YUV画像)を符号化し、1本の低解像度ストリームを生成する。
また、生成装置12は、全天球画像を3Dモデルとしての球にマッピングし、球にマッピングされた全天球画像を5個の視聴方向(視線方向)に対応する2次元平面に、球の中心を焦点として透視投影することにより、5個の画像を生成する。生成装置12は、この5個の画像をそれぞれ高解像度画像(YUV画像)として符号化し、5本の高解像度ストリームを生成する。
さらに、生成装置12は、各高解像度画像に対応する2次元平面の位置、傾き、およびサイズを示す2次元平面情報を生成する。生成装置12は、1本の低解像度ストリーム、5本の高解像度ストリーム、および2次元平面情報を配信サーバ13にアップロードする。
配信サーバ13は、ネットワーク14を介して再生装置15と接続する。配信サーバ13は、生成装置12からアップロードされた1本の低解像度ストリーム、5本の高解像度ストリーム、および2次元平面情報を記憶する。配信サーバ13は、再生装置15からの要求に応じて、記憶している低解像度ストリーム、高解像度ストリーム、および2次元平面情報を、ネットワーク14を介して再生装置15に送信する。
また、配信サーバ13は、再生装置15から送られてくる視聴方向ログを受信し、視聴方向ログであるユーザの視聴タイムスタンプと視聴視野角を解析し、注目ポイントを抽出する。注目ポイントとは、最も視聴された視聴方向を示すポイントである。配信サーバ13は、抽出された注目ポイントに基づいて、記憶している高解像度画像(圧縮率や解像度)を変更する。また、配信サーバ13は、注目ポイントのタイムスタンプと視野角に基づいて2D動画を生成し、注目ポイントとは異なる視野角で視聴していたユーザの再生装置15に対して配信する。
再生装置15は、配信サーバ13に1本の低解像度ストリームと2次元平面情報を、ネットワーク14を介して要求し、その要求に応じて送信されてくる1本の低解像度ストリームと2次元平面情報を受け取る。
また、再生装置15は、カメラ15Aを内蔵し、ヘッドマウントディスプレイ16に付されたマーカ16Aを撮影する。そして、再生装置15は、マーカ16Aの撮影画像に基づいて、3Dモデルの座標系におけるユーザの視聴位置を検出する。さらに、再生装置15は、ヘッドマウントディスプレイ16のジャイロセンサ16Bの検出結果を、ヘッドマウントディスプレイ16から受け取る。再生装置15は、ジャイロセンサ16Bの検出結果に基づいて、3Dモデルの座標系におけるユーザの視聴方向を決定する。再生装置15は、視聴位置と視聴方向に基づいて、3Dモデルの内部に位置するユーザの視野範囲を決定する。
そして、再生装置15は、2次元平面情報とユーザの視野範囲とに基づいて、5本高解像度ストリームのうちの1本の高解像度ストリームを、ネットワーク14を介して要求し、その要求に応じて送信されてくる1本の高解像度ストリームを受け取る。
再生装置15は、受け取られた1本の低解像度ストリームと1本の高解像度ストリームを復号する。再生装置15は、復号の結果得られる低解像度画像を3Dモデルとしての球にマッピングし、高解像度画像を球の内部の3Dモデルとしての2次元平面にマッピングすることにより、3Dモデル画像を生成する。
そして、再生装置15は、視聴位置を焦点として、3Dモデル画像をユーザの視野範囲に透視投影することにより、ユーザの視野範囲の画像を表示画像として生成する。再生装置15は、表示画像をヘッドマウントディスプレイ16に供給する。
また、再生装置15は、視聴中に、視聴タイムスタンプと視聴視野角のログなどを含む視聴方向ログを記録しており、視聴終了後に、記録された視聴方向ログを配信サーバ13に送信する。再生装置15は、配信サーバ13により注目ポイントの視聴示唆があった場合、ユーザの操作に応じて、配信サーバ13により送信されてくる注目ポイントの2D画像に対応する表示画像を表示する。
ヘッドマウントディスプレイ16は、ユーザの頭部に装着され、再生装置15から供給される表示画像を表示する。ヘッドマウントディスプレイ16には、カメラ15Aにより撮影されるマーカ16Aが付されている。従って、ユーザは、ヘッドマウントディスプレイ16を頭部に装着した状態で、移動することにより視聴位置を指定することができる。また、ヘッドマウントディスプレイ16には、ジャイロセンサ16Bが内蔵され、そのジャイロセンサ16Bによる角速度の検出結果が再生装置15に伝送される。従って、ユーザは、ヘッドマウントディスプレイ16を装着した頭部を回転させることにより、視聴方向を指定することができる。
配信システム10において、配信サーバ13から再生装置15への配信方法は、どのような方法であってもよい。配信方法が、例えば、MPEG-DASH(Moving Picture Experts Group phase − Dynamic Adaptive Streaming over HTTP)を用いる方法である場合、配信サーバ13は、HTTP(HyperText Transfer Protocol)サーバであり、再生装置15はMPEG-DASHクライアントである。
なお、図1の例においては、生成装置12と配信サーバ13とを別々に構成する例を説明したが、生成装置12と配信サーバ13を1つの装置とすることもできる。
(生成装置の構成例)
図2は、図1の生成装置12の構成例を示すブロック図である。
図2の生成装置12は、スティッチング処理部21、マッピング処理部22、低解像度化部23、エンコーダ24、設定部25、透視投影部26−1乃至26−5、エンコーダ27−1乃至27−5、テーブル生成部28、および送信部29により構成される。
スティッチング処理部21は、フレームごとに、図1のカメラ11Aから供給される6方向の撮影画像の色や明るさを同一にし、重なりを除去して接続する。スティッチング処理部21は、その結果得られるフレーム単位の撮影画像をマッピング処理部22に供給する。
マッピング処理部22は、正距円筒図法を用いた方法により、スティッチング処理部21から供給される撮影画像から全天球画像を生成する。具体的には、マッピング処理部22は、撮影画像をテクスチャとして球にマッピングし、その球の正距円筒図法による画像を全天球画像として生成する。従って、マッピング処理部22により生成される全天球画像の形状は、符号化に適した矩形である。
マッピング処理部22は、全天球画像を低解像度化部23および透視投影部26−1乃至26−5に供給する。なお、スティッチング処理部21とマッピング処理部22は、一体化されていてもよい。
低解像度化部23は、マッピング処理部22から供給される全天球画像を低解像度化し、低解像度画像を生成する。低解像度化部23は、生成された低解像度画像をエンコーダ24に供給する。
エンコーダ24(低解像度符号化部)は、低解像度化部23から供給される低解像度画像をMPEG2(Moving Picture Experts Group phase 2)方式やAVC(Advanced Video Coding)方式などの符号化方式で符号化し、1本の低解像度トリームを生成する。エンコーダ24は、1本の低解像度ストリームを送信部29に供給する。
設定部25は、5個の視聴方向(視線方向)に対応する2次元平面情報を設定する。設定部25は、各2次元平面情報を透視投影部26−1乃至26−5に供給する。また、設定部25は、5個の2次元平面情報をテーブル生成部28に供給する。
透視投影部26−1乃至26−5は、それぞれ、マッピング処理部22から供給される全天球画像を球にマッピングする。透視投影部26−1乃至26−5は、それぞれ、球の中心を焦点として、球にマッピングされた全天球画像を、設定部25から供給される2次元平面情報が示す2次元平面に透視投影することにより、画像を生成する。これにより、生成された画像は、球にマッピングされた全天球画像を球の中心から所定の視線方向に向かって見た画像となる。透視投影部26−1乃至26−5は、それぞれ、生成された画像を高解像度画像としてエンコーダ27−1乃至27−5に供給する。
エンコーダ27−1乃至エンコーダ27−5(高解像度符号化部)は、それぞれ、透視投影部26−1乃至26−5から供給される高解像度画像を、MPEG2方式やAVC方式などの符号化方式で符号化し、1本の高解像度ストリームを生成する。
このとき、例えば、エンコーダ27−1乃至27−5により生成される5本の高解像度ストリームの間で、GOP(Group of Picture)の先頭ピクチャやIDRピクチャなどのシンクポイントは同一にされる。エンコーダ27−1乃至27−5は、それぞれ、生成された1本の高解像度ストリームを送信部29に供給する。
なお、以下では、透視投影部26−1乃至26−5を特に区別する必要がない場合、それらをまとめて透視投影部26という。同様に、エンコーダ27−1乃至27−5をまとめてエンコーダ27という。
テーブル生成部28は、設定部25から供給される5個の2次元平面情報を含む2次元平面テーブルを生成して、送信部29に供給する。
送信部29は、エンコーダ24から供給される1本の低解像度ストリーム、エンコーダ27のそれぞれから供給される合計5本の高解像度ストリーム、およびテーブル生成部28から供給される2次元平面テーブルを、図1の配信サーバ13にアップロード(送信)する。
(2次元平面の第1の例)
図3は、図2の設定部25により設定される5個の2次元平面の例を示す図である。
図3のAと図3のBは、それぞれ、2次元平面が内部に設定された3Dモデルとしての球の透視図、水平切断面の上面図である。
図3の例では、全天球画像が、例えば、コンサート会場を撮影した撮影画像から生成された全天球画像である。また、全天球画像が球40にマッピングされた際、球40の中心Oを通り、中心Oを通る水平面上の基準軸との水平方向の角度が、−90度、−45度、0度、45度、90度である方向に、コンサート会場に配置されたステージの全天球画像が存在する。即ち、中心Oを視聴位置とするユーザにとって重要であると想定される視線方向の基準軸との水平方向の角度が、−90度、−45度、0度、45度、90度である。
従って、図3のAおよび図3のBに示すように、設定部25は、球40の中心Oを通り、基準軸との水平方向の角度が、−90度、−45度、0度、45度、90度である線を、中心を通る法線とし、隣接するものどうしが交差するように、球40の内部に2次元平面41乃至45を設定する。よって、2次元平面41乃至45のうちの隣接するどうしに透視投影される全天球画像の一部は重複する。
また、図3の例では、2次元平面41乃至45の中心を通る法線と基準軸との水平方向の角度の絶対値は90度以下である。従って、再生装置15は、全ての2次元平面に対応する高解像度画像を用いても、水平方向の周囲360度および垂直方向の周囲180度の全ての視聴方向(視線方向)に対応する表示画像を生成することはできない。
なお、図3の例では、2次元平面41乃至45の中心を通る法線と基準軸との垂直方向の角度は全て0度であり、2次元平面41乃至45の傾きはない。
(2次元平面テーブルの構成例)
図4は、図1のテーブル生成部28により生成される2次元平面テーブルの構成例を示す図である。
図4の例では、2次元平面情報が、図3の2次元平面41乃至45の位置を示す情報として方位角と仰角を含み、傾きを示す情報として回転角を含み、サイズを示す情報として横画角と縦画角を含む。
なお、方位角と仰角は、それぞれ、球40の中心Oと2次元平面41乃至45の中心を結ぶ線と、中心Oを通る水平面上の基準軸とのなす水平方向の角度、垂直方向の角度である。回転角は、2次元平面41乃至45の中心と中心Oを結ぶ線を軸としたときの2次元平面41乃至45の回転方向の角度である。横画角は、2次元平面41乃至45の横方向の2つの端部それぞれと中心Oとを結んだ線のなす角度であり、縦画角は、2次元平面41乃至45の縦方向の2つの端部それぞれと中心Oとを結んだ線のなす角度である。
この場合、図4に示すように、2次元平面テーブルには、2次元平面41乃至45のそれぞれに固有のIDが登録される。図4の例では、2次元平面41乃至45に対して1から順にIDが付与されており、2次元平面テーブルには、IDとして1乃至5が登録される。
また、2次元平面テーブルには、IDに対応付けて、そのIDに対応する2次元平面の2次元平面情報と、各2次元平面の高解像度画像の横方向の画素数である横画素数および縦方向の画素数である縦画素数とが登録される。
具体的には、2次元平面41乃至45は、それぞれ、球40の中心Oを通り、基準軸との水平方向の角度が−90度、−45度、0度、45度、90度であり、垂直方向の角度が全て0度である線を、中心を通る法線とし、傾きがないように設定される。従って、ID「1」乃至「5」のそれぞれに対応付けて、方位角「−90度」、方位角「−45度」、方位角「0度」、方位角「45度」、方位角「90度」が登録される。また、ID「1」乃至「5」に対応付けて、仰角「0度」および回転角「0度」が登録される。
また、図4の例では、2次元平面41乃至45の横画角および縦画角は90度であり、横画素数および縦画素数は1024である。従って、ID「1」乃至「5」に対応付けて、横画角「90度」、縦画角「90度」、横画素数「1024」、および縦画素数「1024」が登録される。
(生成装置の処理の説明)
図5は、図1の生成装置12の生成処理を説明するフローチャートである。
図5のステップS11において、スティッチング処理部21は、フレームごとに、図1のカメラ11Aから供給される6方向の撮影画像の色や明るさを同一にし、重なりを除去して接続する。スティッチング処理部21は、その結果得られるフレーム単位の撮影画像をマッピング処理部22に供給する。
ステップS12において、マッピング処理部22は、正距円筒図法を用いた方法により、スティッチング処理部21から供給される撮影画像から全天球画像を生成する。マッピング処理部22は、全天球画像を低解像度化部23および透視投影部26−1乃至26−5に供給する。
ステップS13において、低解像度化部23は、マッピング処理部22から供給される全天球画像を低解像度化し、低解像度画像を生成する。低解像度化部23は、生成された低解像度画像をエンコーダ24に供給する。
ステップS14において、エンコーダ24は、低解像度化部23から供給される低解像度画像を符号化し、1本の低解像度ストリームを生成する。エンコーダ24は、1本の低解像度ストリームを送信部29に供給する。
ステップS15において、設定部25は、5個の視線方向に対応する2次元平面情報を設定する。設定部25は、各2次元平面情報を各透視投影部26に供給し、5個の2次元平面情報をテーブル生成部28に供給する。
ステップS16において、各透視投影部26は、マッピング処理部22から供給される全天球画像を球にマッピングし、球の中心を焦点として、球にマッピングされた全天球画像を、設定部25から供給される2次元平面情報が示す2次元平面に透視投影することにより、画像を生成する。各透視投影部26は、生成された画像を高解像度画像として各エンコーダ27に供給する。
ステップS17において、各エンコーダ27は、透視投影部26から供給される高解像度画像を符号化して、1本の高解像度ストリームを生成し、送信部29に供給する。
ステップS18において、テーブル生成部28は、設定部25から供給される5個の2次元平面情報を含む2次元平面テーブルを生成して、送信部29に供給する。
ステップS19において、送信部29は、エンコーダ24から供給される1本の低解像度ストリーム、各エンコーダ27から供給される合計5本の高解像度ストリーム、およびテーブル生成部28から供給される2次元平面テーブルを、配信サーバ13にアップロードする。
(配信サーバと再生装置の構成例)
図6は、図1の配信サーバ13と再生装置15の構成例を示すブロック図である。
図6に示すように、配信サーバ13は、受信部101、ストレージ102、送信部103、送信部104、受信部105、ログ解析部106、画像変更部107、2D画像作成部108、および2D画像配信部109により構成される。
受信部101は、図1の生成装置12からアップロードされた1本の低解像度ストリーム、5本の高解像度ストリーム、および2次元平面テーブルを受信し、ストレージ102に供給する。
ストレージ102は、受信部101から供給される1本の低解像度ストリーム、5本の高解像度ストリーム、および2次元平面テーブルを記憶する。
送信部103は、再生装置15からの要求に応じて、1本の低解像度ストリームと2次元平面テーブルをストレージ102から読み出し、ネットワーク14を介して再生装置15に送信する。
送信部104は、再生装置15からの要求に応じて、1本の高解像度ストリームをストレージ102から読み出し、ネットワーク14を介して再生装置15に送信する。なお、送信する高解像度ストリームの変更は、シンクポイントで行われる。従って、送信する高解像度ストリームの変更は、数フレームから数十フレーム単位で行われる。
また、上述したように、5本の高解像度ストリームの間でシンクポイントは同一である。従って、送信部104は、送信する高解像度ストリームをシンクポイントで切り替えることにより、再生装置15において、再生する高解像度画像の切り替えを容易に行うことができる。
受信部105は、再生装置15から送られてくる視聴方向ログを受信し、ログ解析部106に供給する。ログ解析部106は、視聴方向ログであるユーザの視聴タイムスタンプと視聴視野角を解析し、最も視聴回数の多い注目ポイントを抽出し、抽出した注目ポイントに関する情報を、画像変更部107および2D画像生成部108に供給する。
画像変更部107は、ログ解析部106により抽出された注目ポイントから、高画質領域と低画質領域を抽出し、ストレージ102に記録されている高解像度ストリームの画像を変更する。例えば、画像の圧縮率や解像度が変更される。2D画像生成部108は、ログ解析部106により抽出された注目ポイントに対応する、ストレージ102に記録されている高解像度ストリームから、注目ポイントに対応する2D画像を生成し、生成した注目ポイントに対応する2D画像をストレージ102に登録する。2D画像配信部109は、登録された注目ポイントに対応する2D画像の視聴の示唆を、再生装置15に送ったり、再生装置15からの要求に応じて、注目ポイントに対応する2D画像のストリームを再生装置15に配信する。
再生装置15は、カメラ15A、受信部121、デコーダ122、受信部123、デコーダ124、マッピング処理部125、描画部126、受け取り部127、視聴方向取得部128、視聴方向ログ記録部129、送信部130、受信部131、デコーダ132、表示制御部133、および表示部134により構成される。
再生装置15の受信部121は、配信サーバ13に1本の低解像度ストリームと2次元平面情報を、ネットワーク14を介して要求する。受信部121(受け取り部)は、その要求に応じて送信部103から送信されてくる1本の低解像度ストリームと2次元平面情報を受け取る。受信部121は、1本の低解像度ストリームをデコーダ122に供給し、2次元平面情報を視聴方向取得部128に供給する。
デコーダ(低解像度復号部)122は、受信部121から供給される低解像度ストリームを復号し、低解像度画像を生成する。デコーダ122は、低解像度画像をマッピング処理部125に供給する。
受信部123は、視聴方向取得部128から、5個の2次元平面のうちの1つである選択面のIDを示す選択面情報を取得する。受信部123は、選択面情報に基づいて、5本の高解像度ストリームのうちの、選択面情報により特定される選択面の1本の高解像度ストリームを、ネットワーク14を介して要求する。受信部123は、その要求に応じて送信部104から送信されてくる1本の高解像度ストリームを受け取り、デコーダ124に供給する。
デコーダ(高解像度復号部)124は、受信部123から供給される1本の高解像度ストリームを復号し、高解像度画像を生成する。デコーダ124は、高解像度画像をマッピング処理部125に供給する。
マッピング処理部125は、視聴方向取得部128から供給される選択面の2次元平面情報に基づいて、予め3Dモデルとして設定されている球の内部に選択面を3Dモデルとして設定する。マッピング処理部125は、デコーダ122から供給される低解像度画像を、3Dモデルとしての球にテクスチャとしてマッピングする。また、マッピング処理部125は、3Dモデルとしての2次元平面に、デコーダ124から供給される高解像度画像をテクスチャとしてマッピングする。マッピング処理部125は、球と選択面にテクスチャがマッピングされた3Dモデル画像を描画部126に供給する。
描画部126は、マッピング処理部125から供給される3Dモデル画像を、視聴方向取得部128から供給される視聴位置を焦点として、ユーザの視野範囲に透視投影することにより、視聴者の視野範囲の画像を表示画像として生成する。即ち、描画部126は、視聴位置から視野範囲を通して見える球40または2次元平面にマッピングされた画像を表示画像として生成する。描画部126は、表示画像をヘッドマウントディスプレイ16に供給する。
受け取り部127は、図1のジャイロセンサ16Bの検出結果をヘッドマウントディスプレイ16から受け取り、視聴方向取得部128に供給する。
視聴方向取得部128は、例えば、受け取り部127から供給されるジャイロセンサ16Bの検出結果に基づいて、3Dモデルの座標系におけるユーザの視線方向(視聴方向)を決定する。また、視聴方向取得部128は、カメラ15Aからマーカ16Aの撮影画像を取得し、その撮影画像に基づいて、3Dモデルの座標系における視聴位置を検出する。
視聴方向取得部128(選択部)は、3Dモデルの座標系における視聴位置および視聴方向、並びに、受信部121から供給される2次元平面情報に基づいて、5個の2次元面のうちの、ユーザの視線に最も近い法線に対応する1個の2次元平面を選択面に決定する。
具体的には、視聴方向取得部128は、視聴位置から視聴方向に延びる視線と基準軸のなす水平方向および垂直方向の角度並びに視線の回転角に最も近い、方位角および仰角並びに回転角に対応する2次元平面のIDを選択面のIDとして取得する。
これにより、視聴方向取得部128は、ユーザの視野範囲に透視投影される高解像度画像の割合が最も高くなるように、その高解像度画像に対応する2次元平面を選択面として選択することができる。視聴方向取得部128は、選択面情報を受信部123に供給し、選択面の2次元平面情報をマッピング処理部125に供給する。
また、視聴方向取得部128は、視聴タイムスタンプと、そのときに視聴方向取得部128により取得された視聴視野角(方位角、仰角、回転角)のログである視聴方向の情報を、視聴方向ログ記録部129も供給する。視聴方向ログ記録部129は、視聴方向取得部128からの視聴方向ログを記録する。送信部130は、視聴終了後、視聴方向ログ記録部129により取得された視聴方向ログを、ネットワーク14を介して、配信サーバ13に送信する。
受信部131は、配信サーバ13から送られてくる注目ポイントの視聴示唆や2D画像を、ネットワーク14を介して受信し、受信した注目ポイントの視聴示唆を表示制御部133に供給し、注目ポイントの2D画像をデコーダ132に供給する。デコーダ132は、受信部131からの注目ポイントの2D画像をデコードし、表示制御部133に供給する。
表示制御部133は、受信部131からの注目ポイントの視聴示唆の表示を制御し、ユーザの操作に応じて、デコードされた注目ポイントの2D画像の表示を制御する。表示部134は、LCDなどにより構成される。表示部134は、注目ポイントの視聴示唆や注目ポイントの2D画像を表示する。
(配信サーバの動作例)
次に、図7のフローチャートを参照して、配信サーバ13の処理について説明する。なお、図8の例においては、本技術の概要が示されており、適宜、図8を参照して説明する。図中Aと数字の組み合わせは、各フローチャートでのステップ番号に対応している。また、視聴方向ログ201乃至203(図8)において、t,t+1,t+2,t+3は、タイムスタンプを表しており、タイムスタンプが記されている方向が、視聴視野角を表している。さらに、再生装置15−1および15−2が示されているが、適宜区別する必要がない場合、総称して再生装置15で説明を行う。
図7のステップS31乃至S34において、配信サーバ13は、動画配信を行う(図8のA31乃至A34)。すなわち、送信部103は、ステップS31において、再生装置15からの要求に応じて、2次元平面テーブルをストレージ102から読み出し、ネットワーク14を介して再生装置15に送信する。
送信部104は、ステップS32において、再生装置15からの要求に応じて、1本の高解像度ストリーム204(図8)をストレージ102から読み出し、ネットワーク14を介して再生装置15に送信する。なお、送信する高解像度ストリームの変更は、シンクポイントで行われる。従って、送信する高解像度ストリームの変更は、数フレームから数十フレーム単位で行われる。
送信部103は、ステップS33において、再生装置15からの要求に応じて、1本の低解像度ストリームをストレージ102から読み出し、ネットワーク14を介して再生装置15に送信する。
ステップS34において、送信部104は、動画配信を終了するか否かを判定する。ステップS34において終了しないと判定された場合、処理は、ステップS31に戻り、それ以降の処理が繰り返される。再生装置15からの要求に対応して、ステップS34において、終了すると判定された場合、処理は、ステップS35に進む。
ステップS35において、受信部131は、再生装置15からの視聴方向ログとして、視聴タイムスタンプおよび視聴視野角のログを受信し(図8のA35)、ログ解析部106に供給する。
ステップS36において、ログ解析部106は、視聴方向ログであるユーザの視聴タイムスタンプと視聴視野角を解析する(図8のA36)。例えば、解析方法としては、ANDを取ってスコア化が行われる。
ステップS37において、ログ解析部106は、特に視聴時間と視野角とから、注目ポイントを抽出し(図8のA37)、抽出した注目ポイントに関する情報を、画像変更部107および2D画像生成部108に供給する。
ステップS38において、画像変更部107は、ログ解析部106により抽出された注目ポイントから、高画質領域と低画質領域を抽出し(図8のA38)、ストレージ102に記録されている高解像度ストリームの画像(の圧縮率または解像度など)を変更させる。
これにより、以降の高解像度ストリーム205(図8)は、領域別画質違いの動画配信となり、視聴方向ログに応じて画像の圧縮率(または解像度)が変更されたものが再生装置15−2(15−1)に対して配信される。
ステップS39において、注目ポイントの視聴方向の2D画像(動画)206(図8)が生成され、配信される(図8のA39)。すなわち、2D画像生成部108は、ログ解析部106により抽出された注目ポイントに対応する、ストレージ102に記録されている高解像度ストリームから、注目ポイントに対応する2D画像206を生成し、生成した注目ポイントに対応する2D画像206をストレージ102に登録する。2D画像配信部109は、登録された注目ポイントに対応する2D画像の視聴の示唆を、再生装置15に送ったり、再生装置15からの要求に応じて、注目ポイントに対応する2D画像206のストリームを再生装置15に配信する。
これにより、再生装置15−1のユーザは、自分が視聴していた以外の視聴方向(視野角)での視聴方法があることを知ることができる。また、自分が視聴していた視聴方向とは異なる他のユーザにより最も視聴されている視聴方向での2D画像を見ることができる。
(再生装置の動作例)
次に、図9のフローチャートを参照して、再生装置15の再生処理について説明する。なお、図9においても、図7を参照して上述したように、本技術の概要が示されている図8を参照して説明する。図中Aと数字の組み合わせは、各フローチャートでのステップ番号に対応している。また、再生装置15−1および15−2が示されているが、適宜区別する必要がない場合、総称して再生装置15で説明を行う。この再生処理は、例えば、ユーザの要求に応じて開始される。
図9のステップS51において、再生装置15の受信部121は、配信サーバ13に2次元平面情報を要求し、その要求に応じて送信部103から送信されてくる2次元平面情報を受け取る。受信部121は、2次元平面情報を視聴方向取得部128に供給する。
ステップS52において、受け取り部127は、図1のジャイロセンサ16Bの検出結果をヘッドマウントディスプレイ16から受け取り、視聴方向取得部128に供給する。
ステップS53において、視聴方向取得部128は、受け取り部127から供給されるジャイロセンサ16Bの検出結果に基づいて、3Dモデルの座標系におけるユーザの視聴方向(視線方向)を決定する。
ステップS54において、視聴方向取得部128は、カメラ15Aからマーカ16Aの撮影画像を取得し、その撮影画像に基づいて3Dモデルの座標系における視聴位置を検出する。
ステップS55において、視聴方向取得部128は、3Dモデルの座標系における視聴位置および視聴方向、並びに、受信部121から供給される2次元平面情報に基づいて、5個の2次元面のうちのユーザの視線に最も近い1個の2次元平面を選択面に決定する。視聴方向取得部128は、選択面の選択面情報を受信部123に供給し、選択面の2次元平面情報をマッピング処理部125に供給する。
ステップS56において、視聴方向取得部128は、3Dモデルの座標系における視聴位置と視聴方向に基づいて、3Dモデルの座標系におけるユーザの視野範囲を決定する。視聴方向取得部128は、ユーザの視野範囲と視聴位置を描画部126に供給する。
ステップS57において、視聴方向ログ記録部129は、視聴タイムスタンプと、そのときに視聴方向取得部128により取得された視聴視野角(方位角、仰角、回転角)のログである視聴方向ログを図示せぬメモリなどに記録する。
ステップS58において、受信部123は、視聴方向取得部128から供給される選択面情報により特定される選択面の1本の高解像度ストリームを配信サーバ13に要求し、その要求に応じて送信部104から送信されてくる1本の高解像度ストリームを受け取る。受信部123は、受け取られた1本の高解像度ストリームをデコーダ124に供給する。
ステップS59において、デコーダ124は、受信部123から供給される1本の高解像度ストリームを復号し、高解像度画像を生成する。デコーダ124は、高解像度画像をマッピング処理部125に供給する。
ステップS60において、マッピング処理部125は、視聴方向取得部128から供給される選択面の2次元平面情報に基づいて、予め3Dモデルとして設定されている球の内部に選択面を3Dモデルとして設定する。
ステップS61において、マッピング処理部125は、デコーダ124から供給される高解像度画像を、3Dモデルとして設定された選択面にテクスチャとしてマッピングする。
ステップS62において、受信部121は、配信サーバ13に1本の低解像度ストリームを要求し、その要求に応じて送信部103から送信されてくる1本の低解像度ストリームを受け取る。受信部121は、1本の低解像度ストリームをデコーダ122に供給する。
ステップS63において、デコーダ122は、受信部121から供給される低解像度ストリームを復号し、低解像度画像を生成する。デコーダ122は、低解像度画像をマッピング処理部125に供給する。
ステップS64において、マッピング処理部125は、デコーダ122から供給される低解像度画像を、3Dモデルとしての球にテクスチャとしてマッピングする。マッピング処理部125は、球と2次元平面にテクスチャがマッピングされた3Dモデル画像を描画部126に供給する。
ステップS65において、描画部126は、マッピング処理部125から供給される3Dモデル画像を、視聴方向取得部128から供給される視聴位置を焦点として、視聴者の視野範囲に透視投影することにより、ユーザの視野範囲の画像を表示画像として生成する。
ステップS66において、描画部126は、表示画像をヘッドマウントディスプレイ16に送信して表示させる。ステップS67において、再生装置15は、再生を終了するかどうか、例えばユーザにより再生の終了が要求されたかどうかを判定する。
ステップS67で再生を終了しないと判定された場合、処理はステップS51に戻り、再生を終了すると判定されるまで、ステップS51乃至S67の処理が繰り返される。一方、ステップS67で再生を終了すると判定された場合、処理は終了される。
ステップS68において、送信部130は、視聴方向ログ記録部129により取得された視聴方向ログを、ネットワーク14を介して、配信サーバ13に送信する(図8のA68)。
以上のようにして、動画の視聴がなされ、視聴後、再生装置15から配信サーバ13に、視聴方向ログが送信される。
(再生装置の他の動作例)
次に、図10のフローチャートを参照して、再生装置15の2D動画再生処理について説明する。例えば、図7のステップS39において、2D画像配信部109は、登録された注目ポイントの2D画像206の視聴の示唆を、再生装置15に送ってくる。例えば、前回の視聴方向が、注目ポイントの視聴方向と異なる場合などに、注目ポイントの2D画像206の視聴の示唆が送られるようにしてもよい。
再生装置15の受信部123は、注目ポイントの2D画像206の視聴の示唆を受信し、表示制御部133に供給する。これに対応して、表示制御部133は、ステップS81において、注目ポイントの2D画像の視聴示唆を、表示部134に表示させる。
ユーザが、再生装置15の図示せぬ操作部を操作し、視聴の指示を行うと、ステップS82において、受信部131は、注目ポイントの動画を視聴するか否かを判定する。ステップS82において、注目ポイントの動画を視聴しないと判定された場合、2D動画再生処理は終了される。
ステップS82において、注目ポイントの動画を視聴すると判定された場合、処理は、ステップS83に進む。受信部131は、視聴指示を、ネットワーク14を介して、配線サーバ13に送信する。これに対応して、2D画像配信部109は、注目ポイントに対応する2D画像のストリームを再生装置15に送信してくる。
ステップS83において、再生装置15は、注目ポイントの2D動画を再生する。すなわち、受信部131は、2D画像を、ネットワーク14を介して受信し、受信した注目ポイントの2D画像をデコーダ132に供給する。デコーダ132は、受信部131からの注目ポイントの2D画像をデコードし、表示制御部133に供給する。表示制御部133は、デコードされた注目ポイントの2D画像を表示部134に表示させる。
以上のように、注目ポイントの2D画像を配信することで、ユーザの視聴とは異なる最も視聴されているポイントでの視聴を提案することができる。
なお、上記説明においては、視線検出により視聴方向を取得する例を説明してきたが、その他の例について以下に説明する。
(視聴方向の取得処理)
次に、図11のフローチャートを参照して、視聴方向取得部128における視聴方向の取得処理について説明する。図11においては、各種センサを指令して取得する場合について説明される。この場合のセンサとしては、上述した視線検出センサの他に、ヘッドマウントディスプレイ16に設けられるジャイロセンサ16B、加速度センサ、地磁気センサや、スマートフォン(多機能型携帯電話機)、赤外線などによるアクティブセンサなどが用いられる。
ステップS101において、視聴方向取得部128は、ユーザの初期視聴方向を特定する。なお、初期視聴方向の特定には、例えば、地磁気を使って、絶対方向で初期化してもよいし、または、ジャイロセンサ16Bを用いて、相対位置で初期化してもよい。
ステップS102において、視聴方向取得部128は、視聴方向トラッキングを開始する。ステップS103において、視聴方向ログ記録部129は、ジャイロセンサ16Bの動きから視聴方向の変化を、図12に示されるような軌跡として記録する。
図12の例においては、図中上を初期視聴方向とみた、視聴方向としての方位角、仰角の時刻t乃至t+3の軌跡が示されている。なお、図12の例においては示されていないが、視聴方向として、回転角も取得され、軌跡が記録される。
次に、図13のフローチャートを参照して、視聴方向取得部128における視聴方向の取得処理の他の例について説明する。図13においては、ユーザに装着されるデバイス(ヘッドマウントディスプレイ16やゲームコントローラ、マウスなど)を、外部から観測して取得する場合について説明される。この場合の外部としては、Play station(登録商標) moveやPSVRのLED情報、ヘッドマウントディスプレイ16用のトラッキングカメラ、屋内高精細GPS、マウス、ゲームコントローラなどが用いられる。
ステップS121において、視聴方向取得部128は、ユーザの初期視聴方向を特定する。
ステップS122において、視聴方向取得部128は、デバイスの位置の視聴方向トラッキングを開始する。ステップS123において、視聴方向ログ記録部129は、デバイス位置の動きから視聴方向の変化を軌跡として記録する。
なお、ヘッドマウントディスプレイ16の場合については、図14のAには、ユーザが椅子などに座っていて、ヘッドマウントディスプレイ16の位置が移動しない例が示されている。図14のAの例においては、視聴方向ログとして、方位角の軌跡221、仰角の軌跡222、回転角の軌跡223が取得される。
また、図14のBには、ユーザが自由に移動・姿勢変更でき、ヘッドマウントディスプレイ16の位置が移動する例が示されている。図14のBの例においては、視聴方向ログとして、方位角の軌跡221、仰角の軌跡222、回転角の軌跡223、前後左右斜めの移動位置の軌跡231が取得される。
なお、上記説明においては、保持する各種センサを指令して取得する場合、外部から観測して取得する場合の視聴方向の取得処理を説明したが、その他に、視聴方向は、ユーザが見た画像から取得することができる。この場合、ユーザが見た方向の画像を、定期的にキャプチャリングを行い、その後、配信された元画像データとマッチングを取って視聴方向を推定することにより、視聴方向を取得することができる。また、例えば、Facebook(SNS)においては、360度「いいね」ボタンがあり、見た方向に「いいね」やメッセージを記録することができる。このように、ユーザが自身で見た方向を入力し、その情報を取得することも可能である。
(視聴方向の記録処理)
次に、上述したように取得された視聴方向(方位角・仰角・回転角)ログのテーブル記述例について説明する。なお、以下に説明する視聴方向ログは、図15に示されるような、x軸の正方向をposXとし、x軸の負の方向をnegXとし、y軸の正方向をposYとし、y軸の負の方向をnegYとし、z軸の正方向をposXとし、Z軸の負の方向をnegXとした6面キューブで表現されるが、任意の透視投影面数でもよい。
図16は、視聴方向ログ記録部129により記録される視聴方向ログの例を示す図である。視聴方向ログ記録部129は、図12を用いて上述した、ジャイロセンサ16Bの動きから視聴方向の変化の軌跡を記録し、視聴終了時に、図16に示されるような視聴方向ログを記録(生成)する。
図16のAの例においては、ユーザが椅子などに座っていて、ヘッドマウントディスプレイ16が移動しない場合の例が示されている。
例えば、時刻「t」の視聴方向ログは、ファイル名が「posZ」であり、方位角が「0°」仰角が「+30°」、回転角が「0°」、視線ベクトル(x,y,z)が(0,0,+1)、視点座標(x,y,z)が(0,0,0)、横画角が「90°」、縦画角が「90°」、横画素数が「1024」、縦画素数が「1024」である。
時刻「t+1」の視聴方向ログは、ファイル名が「posX」であり、方位角が「+90°」、仰角が「+25°」、回転角が「0°」、視線ベクトル(x,y,z)が(+1,0,0)、視点座標(x,y,z)が(0,0,0)、横画角が「90°」、縦画角が「90°」、横画素数が「1024」、縦画素数が「1024」である。
時刻「t+2」の視聴方向ログは、ファイル名が「posX」であり、方位角が「+90°」、仰角が「+25°」、回転角が「0°」、視線ベクトル(x,y,z)が(+1,0,0)、視点座標(x,y,z)が(0,0,0)、横画角が「90°」、縦画角が「90°」、横画素数が「1024」、縦画素数が「1024」である。
時刻「t+3」の視聴方向ログは、ファイル名が「negZ」であり、方位角が「-180°」、仰角が「+20°」、回転角が「0°」、視線ベクトル(x,y,z)が(-1,0,-1)、視点座標(x,y,z)が(0,0,0)、横画角が「90°」、縦画角が「90°」、横画素数が「1024」、縦画素数が「1024」である。
図16のBの例においては、ユーザが自由に移動・姿勢変更でき、ヘッドマウントディスプレイ16が移動する場合の例が示されている。なお、視聴方向ログのうち、時刻、ファイル名、方位角、仰角、回転角、視線ベクトル、横画角、縦画角、横画素数、および縦画素数は、図16のAの視線方向ログと同じである。図16のBの例においては、視聴方向ログのうち、位置情報を表す視点座標(x,y,z)が(0,0,0)ではない点のみが、図16のAの例と異なっている。
すなわち、時刻「t」の視聴方向ログの視点座標(x,y,z)は、(+1,0,0)である。時刻「t+1」の視聴方向ログの視点座標(x,y,z)は、(+2,0,0)であり、時刻「t」よりも右に移動したことがわかる。時刻「t+2」の視聴方向ログの視点座標(x,y,z)は、(0,+1,0)であり、時刻「t+1」よりも前に直進したことがわかる。時刻「t+3」の視聴方向ログの視点座標(x,y,z)は、(0,0,-3)であり、時刻「t+2」からしゃがんだことがわかる。
なお、図12を用いて上述した、ジャイロセンサ16Bの動きから視聴方向の変化の軌跡は、視聴方向ログとして、図17に示されるような正距円筒のヒートマップで表現されてもよい。
図17の例においては、図中奥より、t,t+1,t+2,t+3の視聴ログが、正距円筒のヒートマップで表現されている。例えば、t+3の正距円筒のヒートマップにおいて、ユーザの視聴方向が他の方向とは異なる表示(ハッチング)で示されている。
なお、上述した説明では、2次元平面の数は5個であるものとしたが、2次元平面の数は、5個に限定されない。2次元平面の数が多いほど、再生装置15は、ユーザの視線により近い法線に対応する高解像度画像を用いて表示画像を生成することができる。従って、表示画像における高解像度画像の割合が多くなり、その結果、表示画像の画質が向上する。しかしながら、高解像度ストリームの本数が増加するため、必要となるストレージ102の記憶容量と高解像度ストリームを生成するための生成装置12の処理量が増加する。
また、2次元平面テーブルには、2次元平面情報、横画素数、および縦画素数のうちの固定値以外が登録されるようにしてもよい。さらに、2次元平面は、1以上のフレーム単位で設定されてもよいし、シーン単位で設定されてもよい。
(2次元平面の第2の例)
図18は、2次元平面の数が5個以外である場合の2次元平面の例を示す図である。
なお、図18において、矢印は各2次元平面の中心を通る法線を示している。
図18のAに示すように、設定部25は、2次元平面として、球40(図3)の中心Oを中心とする立方体310の6個の各面311乃至316を設定することもできる。この場合、6個の2次元平面の中心を通る法線は、中心Oを通り、互いに直交する3軸の両方向の合計6本の線である。また、全ての2次元平面の横画角と縦画角は90度であり、各2次元平面は重なり合わない。
即ち、この場合、2次元平面の高解像度画像は、キューブマッピングにより生成された全天球画像を3Dモデルとしての立方体の面単位で分割した画像である。なお、キューブマッピングとは、3Dモデルとしての立方体に画像をマッピングし、画像がマッピングされた立方体の展開図を全天球画像とする全天球画像の生成方法である。
また、図18のBに示すように、設定部25は、各2次元平面の中心を通る法線が、立方体310の12本の各辺の中点と中心Oを通る線であるように、12個の2次元平面を設定することもできる。この場合、図18のAの場合に比べて、隣接する2次元平面間の角度が小さくなるため、再生装置15は、視線により近い法線に対応する2次元平面を選択面とすることができる。その結果、表示画像内の高解像度画像の割合が大きくなり、表示画像の画質が向上する。
さらに、図18のCに示すように、設定部25は、各2次元平面の中心を通る法線が、立方体310の12本の各辺の中点と中心Oを通る線、および、立方体310の6個の各面311乃至316の中心と中心Oを通る線であるように、18個の2次元平面を設定することもできる。この場合、2次元平面は、面311乃至316と図18のBの場合の2次元平面である。
図18のAおよび図18のCの例では、面311乃至316に対応する高解像度画像を全て用いることにより、水平方向の周囲360度および垂直方向の周囲180度の全ての視線方向に対応する表示画像を生成することができる。
(画像変更の例)
次に、図19を参照して、画像変更部107による画像変更処理の第1の方法として、画像の圧縮率変更について説明する。なお、以下、配信サーバ13のストレージ102には、図18のCを参照して上述した18個の2次元平面に対応する高解像度画像と、全天の低解像度画像とが登録されている例を用いて説明する。
図19に示されるように、配信サーバ13のストレージ102には、18個の2次元平面に対応する高解像度画像251−1乃至251−18と、全天の低解像度画像252とが登録されている。そして、再生装置15には、これらのうち、1本の高解像度画像(例えば、高解像度画像251−15)と全天の低解像度画像252とのストリームが配信される。
その後、配信サーバ13からは、ユーザの視線範囲に応じて再生装置15により選択された選択面の1本の高解像度画像251−1乃至251−15のうちいずれかが配信されるとともに、再生装置15においては、視聴方向ログが取得され、記録されている。再生終了後、再生装置15からは、その記録された視聴方向ログが配信サーバ13に送信される。
そこで、配信サーバ13のログ解析部106は、複数の再生装置15からの視聴方向ログを解析し、所定のしきい値を用いて、例えば、少なくとも、頻繁に見られた方向の画像、(全く)見られなかった方向の画像を判定する。
図20に示されるように、画像変更部107は、ログ解析部106に頻繁に見られた方向と判定された高解像度画像251−1乃至251−4、251−15、および251−17の圧縮率を変更せず、高解像度のままとする。
一方、画像変更部107は、ログ解析部106に頻繁に見られた方向の高解像度画像に隣接する高解像度画像251−5、251−13、251−16、および251−18の圧縮率を上げるよう再エンコードを行い、中解像度画像に変更し、変更された中解像度画像でストレージ102を上書きする。
さらに、画像変更部107は、ログ解析部106に見られなかった方向と判定された高解像度画像251−5、251−13、251−16、および251−18の圧縮率を大きく上げるよう再エンコードを行い、低解像度画像に変更し、変更された低解像度画像でストレージ102を上書きする。
なお、見られなかった、全く見られることのなかった方向と判定された高解像度画像251−5、251−13、251−16、および251−18については、図21に示されるようにストレージ102から削除するようにしてもよい。この場合、これらの視聴方向については、要求時には、全天の低解像度画像で代用される。
このようにすることで、配信サーバ13において記憶容量を減らすことができる。なお、画像変更においては、圧縮率の変更以外に、直接、解像度を変更することもできる。
次に、画像変更処理の第2の方法として、配信サーバ13上の高解像度画像から、ユーザの視聴方向と視聴時間によって不要なフレームを削除する方法について説明する。
ログ解析部106は、図22に示されるように、時刻t乃至t+3において、ユーザの視聴方向の記録を参照し、見られた領域(方向)であるか、見られていない領域であるかを判定する。時刻tにおいて、画像261および画像266は、見られた領域であると判定され、画像262乃至265は、見られていない領域であると判定される。時刻t+1において、画像261,画像263、および画像265は、見られた領域であると判定され、画像262、画像264、および画像265は、見られていない領域であると判定される。
時刻t+2において、画像263は、見られた領域であると判定され、画像261、画像262乃至画像266は、見られていない領域であると判定される。時刻t+3において、画像263、画像265、画像266は、見られた領域であると判定され、画像261、画像262、画像264は、見られていない領域であると判定される。
一方、同時に、ログ解析部106は、時刻t乃至t+3において、画像の変化量を参照し、画像に変化のある領域であるか、画像に変化のない領域であるかを判定する。なお、画像の変化量は、動きベクトルまたはフラット検出などから定義される。
時刻tにおいて、画像261は、画像に変化のある領域であると判定され、画像262乃至266は、画像に変化のない領域であると判定される。時刻t+1において、画像261,画像263は、画像に変化のある領域であると判定され、画像262、画像264乃至画像266は、画像に変化のない領域であると判定される。
時刻t+2において、画像263は、画像に変化のある領域であると判定され、画像261、画像262乃至画像266は、画像に変化のない領域であると判定される。時刻t+3において、画像263、画像265は、画像に変化のある領域であると判定され、画像261、画像262、画像264、画像266は、画像に変化のない領域であると判定される。
そして、画像変更部107は、図23に示されるように、見られていない領域であると判定され、または、画像に変化のない領域であると判定された画像を、削除するフレームに決定する。例えば、ある程度のデータが蓄積された上で、一度も視聴されなかった領域は削除すると決定される。また、例えば、画像の複雑度(動きがまったくないフラットなシーケンスなど)から、削除するようにしてもよい。
図23の例において、点線が、画像が削除するフレームに決定された画像であることを示している。すなわち、時刻tにおいて、画像262乃至画像265が削除するフレームとされ、時刻t+1において、画像262、画像264、画像265が削除するフレームとされ、時刻t+2において、画像261、画像262、画像264、画像265、画像266が削除するフレームとされ、時刻t+3においては、画像261、画像262、画像264が削除するフレームとされる。
なお、画像262については、時刻t乃至時刻t+3まで削除するフレームとされているが、図24の画像262に示されるように、すべてのフレームで削除してしまわずに、時間方向で間引くようにしてもよい。
また、上記説明においては、配信サーバ13上の高解像度画像から、ユーザの視聴方向と視聴時間によって不要なフレームを削除する方法について説明したが、ユーザの視聴方向と視聴時間によって、次に見られる可能性の高い分割画像を再生装置15に向けて先に送る方法について、図25を参照して説明する。
すなわち、上記説明においては、視聴範囲に応じた1枚の高解像度画像と、1枚(全天)の低解像度画像を再生装置15に送信するようにしてきたが、視聴記録によって、次に見られる可能性の高い高解像度画像も先に送るようにすることも可能である。
例えば、時刻tにおいては、1枚の低解像度画像と、高解像度画像として、1枚の画像261が配信される。時刻t+1においては、1枚の低解像度画像と、高解像度画像として、2枚の画像261と画像263が配信される。時刻t+2においては、1枚の低解像度画像と、高解像度画像として、2枚の画像263と画像265が配信される。時刻t+3においては、1枚の低解像度画像と、高解像度画像として、2枚の画像263と画像265が配信される。
なお、この場合、再デコードが必要になってしまう。また、図24の例においては、高解像度画像が1枚または2枚であったが、分割数と分割位置によっては、2枚以上になることもありえる。
以上のようにすることで、配信システム11においては、配信サーバ13の記憶容量を減らすことができる。
(2D画像生成処理の例)
次に、図26を参照して、2D画像生成部108による視聴方向ログから2D画像を生成する方法について説明する。図26においても、18の高解像度画像が記憶されている場合について示されている。
例えば、時刻tにおいて、高解像度画像である画像301乃至画像318のうち、注目ポイントが画像308および画像311の方向に対応する場合、画像308および画像311からなる2D画像321が生成され、要求に応じて再生装置15に配信される。
時刻t+1において、高解像度画像である画像301乃至画像318のうち、注目ポイントが、時刻tよりも左側にずれ、画像305および画像308の方向に対応する場合、画像305および画像308からなる2D画像322が生成され、要求に応じて再生装置15に配信される。
以上のようにすることで、ユーザに別視点(ポイント)からの視聴をお勧めすることができる。
なお、本技術は、全天球画像における視点を中心とした立方体を構成する6つの面の第1レイヤおよび第2レイヤのテクスチャ画像とデプス画像を記憶し、ユーザに送信する図27の画像表示システムにも適用することができる。
<2.第2実施の形態>
(画像表示システムの構成例)
図27は、本開示を適用した画像表示システムの構成例を示すブロック図である。
図27の画像表示システム410は、マルチカメラ411、コンテンツサーバ412、ホームサーバ413、変換装置414、およびヘッドマウントディスプレイ415により構成される。画像表示システム410は、マルチカメラ411により撮影されたYCbCr画像(YUV画像)である撮影画像から全天球画像を生成し、全天球画像のうちのユーザの視野範囲の画像を表示する。
具体的には、画像表示システム410のマルチカメラ411は、水平方向の周囲360度および垂直方向の周囲180度を撮影範囲として、外向きに配置された複数(図27の例では6個)のカメラにより構成される。各カメラは、撮影を行い、撮影画像をフレーム単位で生成する。マルチカメラ411は、各カメラの撮影画像をコンテンツサーバ412に供給する。
コンテンツサーバ412(画像処理装置)は、マルチカメラ411から供給される各カメラの撮影画像から、所定の視点の全天球画像のテクスチャ画像とデプス画像を生成する。第2実施の形態では、デプス画像は、所定の視点から各画素における被写体までの直線の距離rを示す8ビットの値としての、距離rの逆数1/rを画素値とする画像である。
コンテンツサーバ412は、全天球画像のテクスチャ画像とデプス画像を低解像度化し、低解像度テクスチャ画像と低解像度デプス画像とを生成する。コンテンツサーバ412は、低解像度テクスチャ画像と低解像度デプス画像を、AVC(Advanced Video Coding)やHEVC(High Efficiency Video Coding)/H.265等の符号化方式で圧縮符号化する。コンテンツサーバ412は、その結果得られる低解像度テクスチャ画像の符号化ストリーム(以下、低解像度テクスチャストリームという)と低解像度デプス画像の符号化ストリーム(以下、低解像度デプスストリームという)を記憶する。
また、コンテンツサーバ412は、各カメラの撮影画像を用いて、全天球画像における視点を中心とした立方体を構成する6つの面に対応するテクスチャ画像とデプス画像を階層化して生成する。具体的には、コンテンツサーバ412は、6つの面の第1レイヤおよび第2レイヤのテクスチャ画像とデプス画像を生成する。なお、全天球画像における視点と立方体の中心は異なっていていてもよい。
コンテンツサーバ412は、各面の第1レイヤのテクスチャ画像とデプス画像からなる第1レイヤ画像と、各面の第2レイヤのテクスチャ画像とデプス画像からなる第2レイヤ画像を、面、画像の種類、およびレイヤごとに、AVCやHEVC等の符号化方式で圧縮符号化する。コンテンツサーバ412は、その結果得られる各面の第1レイヤのテクスチャ画像の符号化ストリーム(以下、第1レイヤテクスチャストリームという)、第1レイヤのデプス画像の符号化ストリーム(以下、第1レイヤデプスストリームという)、第2レイヤのテクスチャ画像の符号化ストリーム(以下、第2レイヤテクスチャストリームという)、および第2レイヤのデプス画像の符号化ストリーム(以下、第2レイヤデプスストリームという)を記憶する。なお、第1レイヤ画像と第2レイヤ画像の符号化方式は、MVC(Multiview Video Coding)方式や3D-HEVC方式等であってもよい。
また、コンテンツサーバ412は、第1レイヤおよび第2レイヤの各面に関する情報等をメタデータとして生成し、記憶する。コンテンツサーバ412は、記憶している低解像度テクスチャストリームおよび低解像度デプスストリーム、6つの面の第1レイヤテクスチャストリーム、第1レイヤデプスストリーム、第2レイヤテクスチャストリーム、および第2レイヤデプスストリーム、並びにメタデータを、図示せぬネットワークを介してホームサーバ413に伝送する。
なお、コンテンツサーバ412は、6つの面の第1レイヤテクスチャストリーム、第1レイヤデプスストリーム、第2レイヤテクスチャストリーム、および第2レイヤデプスストリームを再構成することもできる。この場合、コンテンツサーバ412は、再構成後の第1レイヤテクスチャストリーム、第1レイヤデプスストリーム、第2レイヤテクスチャストリーム、および第2レイヤデプスストリームと、それらに対応するメタデータをホームサーバ413に伝送することもできる。しかしながら、以下では、説明の便宜上、再構成が行われた場合であっても、再構成前の6つの面の第1レイヤテクスチャストリーム、第1レイヤデプスストリーム、第2レイヤテクスチャストリーム、および第2レイヤデプスストリームが、コンテンツサーバ412に伝送されるものとする。
また、コンテンツサーバ412は、図1の配信サーバ13と同様に、ホームサーバ413から送られてくる視聴方向ログを受信し、視聴方向ログであるユーザの視聴タイムスタンプと視聴視野角を解析し、注目ポイントを抽出する。コンテンツサーバ412は、抽出された注目ポイントに基づいて、記憶している第1レイヤのテクスチャ画像(例えば、の圧縮率や解像度)を変更する。なお、第2レイヤのテクスチャ画像も変更するようにしてもよい。また、コンテンツサーバ412は、注目ポイントのタイムスタンプと視野角に基づいて2D動画を生成し、注目ポイントとは異なる視野角で視聴していたユーザのホームサーバ413に対して配信する。
ホームサーバ413(画像処理装置)は、コンテンツサーバ412から伝送されてくる、低解像度テクスチャストリームおよび低解像度デプスストリーム、6つの面の第1レイヤテクスチャストリーム、第1レイヤデプスストリーム、第2レイヤテクスチャストリーム、および第2レイヤデプスストリーム、並びにメタデータを受け取る。
また、ホームサーバ413は、カメラ413Aを内蔵し、ユーザの頭部に装着されるヘッドマウントディスプレイ415に付されたマーカ415Aを撮影する。そして、ホームサーバ413は、マーカ415Aの撮影画像に基づいて視聴位置を検出する。さらに、ホームサーバ413は、ヘッドマウントディスプレイ415のジャイロセンサ415Bの検出結果を、ヘッドマウントディスプレイ415から変換装置414を介して受け取る。ホームサーバ413は、ジャイロセンサ415Bの検出結果に基づいてユーザの視線方向を決定し、視聴位置と視線方向に基づいてユーザの視野範囲を決定する。
ホームサーバ413は、第1レイヤの6つの面のうちの、ユーザの視線方向に対応する3つの面を選択する。そして、ホームサーバ413は、選択された3つの面に対応する第1レイヤテクスチャストリーム、第1レイヤデプスストリーム、第2レイヤテクスチャストリーム、および第2レイヤデプスストリームを復号する。これにより、ホームサーバ413は、選択された3つの面に対応する第1レイヤおよび第2レイヤのテクスチャ画像およびデプス画像を生成する。
また、ホームサーバ413は、低解像度テクスチャストリームと低解像度デプスストリームを復号し、低解像度テクスチャ画像と低解像度デプス画像を生成する。ホームサーバ413は、選択された3つの面に対応する第1レイヤおよび第2レイヤのテクスチャ画像およびデプス画像、並びに、低解像度テクスチャ画像と低解像度デプス画像を用いて、視聴者の視野範囲の画像を表示画像として生成する。ホームサーバ413は、図示せぬHDMI(登録商標)(High-Definition Multimedia Interface)ケーブルを介して表示画像を変換装置414に伝送する。
また、ホームサーバ413は、図1の再生装置15と同様に、視聴中に、視聴タイムスタンプと視聴視野角のログなどを含む視聴方向ログを記録しており、視聴終了後に、記録された視聴方向ログをコンテンツサーバ412に送信する。ホームサーバ413は、コンテンツサーバ412により注目ポイントの視聴示唆があった場合、ユーザの操作に応じて、コンテンツサーバ412により送信されてくる注目ポイントの2D画像に対応する表示画像を表示する。
変換装置414は、ホームサーバ413から伝送されてくる表示画像における座標を、ヘッドマウントディスプレイ415における座標に変換する。変換装置414は、座標変換後の表示画像をヘッドマウントディスプレイ415に供給する。
ヘッドマウントディスプレイ415は、マーカ415Aとジャイロセンサ415Bを有し、ユーザの頭部に装着される。ヘッドマウントディスプレイ415は、変換装置414から供給される表示画像を表示する。また、ヘッドマウントディスプレイ415に内蔵されるジャイロセンサ415Bは、ヘッドマウントディスプレイ415の傾きを検出し、その検出結果を、変換装置414を介してホームサーバ413に伝送する。
(コンテンツサーバの構成例)
図28は、図27のコンテンツサーバ412の構成例を示すブロック図である。
図28のコンテンツサーバ412は、デプス検出部431、低解像度画像処理部433、および高解像度画像処理部434により構成される。
コンテンツサーバ412のデプス検出部431は、図27のマルチカメラ411から供給される各カメラの撮影画像の画素ごとに、その画素における被写体を含む奥行き方向に垂直なデプス平面とカメラの間の奥行き方向の距離zの逆数1/zを検出する。デプス検出部431は、その結果得られる各カメラの撮影画像の各画素の逆数1/zを画素値とするz画像を低解像度画像処理部433と高解像度画像処理部434に供給する。
低解像度画像処理部433は、マルチカメラ411の3次元座標系(以下、カメラ座標系という)における所定の3次元位置を視点として、マルチカメラ411から供給される各カメラの撮影画像を、視点を中心とした正八面体にマッピング(透視投影)することにより、全天球画像のテクスチャ画像を生成する。また、低解像度画像処理部433は、デプス検出部431から供給される各カメラのz画像を、撮影画像と同様に正八面体にマッピングすることにより、全天球画像のz画像を生成する。
低解像度画像処理部433は、全天球画像のz画像の各画素の逆数1/zを逆数1/rに変換する。そして、低解像度画像処理部433は、以下の式(1)により、逆数1/rに対して8ビット量子化を行う。
なお、Id(r)は、距離rの逆数1/rの8ビット量子化後の値である。rmax,rminは、それぞれ、全天球画像における距離rの最大値、最小値である。
低解像度画像処理部433は、全天球画像の各画素の逆数1/rの8ビット量子化後の値を画素値とすることにより、全天球画像のデプス画像を生成する。
低解像度画像処理部433は、カメラ座標系における所定の3次元位置を視点として、マルチカメラ411から供給される各カメラの撮影画像を、視点を中心とした正八面体にマッピング(透視投影)することにより、全天球画像のテクスチャ画像を生成する。また、低解像度画像処理部433は、デプス検出部431から供給される各カメラのz画像を、撮影画像と同様に正八面体にマッピングすることにより、全天球画像のデプス画像を生成する。
低解像度画像処理部433は、全天球画像のテクスチャ画像とデプス画像を低解像度化し、低解像度テクスチャ画像と低解像度デプス画像を生成する。低解像度画像処理部433は、低解像度テクスチャ画像と低解像度デプス画像を圧縮符号化し、その結果得られる低解像度テクスチャストリームと低解像度デプスストリームを記憶する。低解像度画像処理部433は、記憶している低解像度テクスチャストリームと低解像度デプスストリームを、図27のホームサーバ413に送信する。
高解像度画像処理部434は、マルチカメラ411から供給される各カメラの撮影画像を用いて、低解像度画像処理部433における正八面体と中心が同一である立方体を構成する6つの面に対応する第1レイヤおよび第2レイヤのテクスチャ画像を生成する。高解像度画像処理部434は、デプス検出部431から供給される各カメラのz画像を用いて、撮影画像と同様に6つの面に対応する第1レイヤおよび第2レイヤのz画像を生成する。
高解像度画像処理部434は、各面の第1レイヤおよび第2レイヤのテクスチャ画像とデプス画像を、面、画像の種類、およびレイヤごとに圧縮符号化する。コンテンツサーバ412は、その結果得られる第1レイヤテクスチャストリーム、第1レイヤデプスストリーム、第2レイヤテクスチャストリーム、および第2レイヤデプスストリームを記憶する。
また、高解像度画像処理部434は、メタデータを生成して記憶する。コンテンツサーバ412は、記憶している6つの面の第1レイヤテクスチャストリーム、第1レイヤデプスストリーム、第2レイヤテクスチャストリーム、および第2レイヤデプスストリーム、並びにメタデータを、図示せぬネットワークを介してホームサーバ413に伝送する。
(高解像度画像処理部の構成例)
図29は、図28の高解像度画像処理部434の構成例を示すブロック図である。
図29の高解像度画像処理部434は、第1レイヤ生成部450、量子化部451、エンコーダ452、第2レイヤ生成部453、量子化部454、エンコーダ455、設定部456、メタデータ生成部457、ストレージ458、再構成部459、および送信部460により構成される。さらに、高解像度画像処理部434は、受信部461、ログ解析部462、画像変更部463、2D画像生成部464、および2D画像配信部465を含むように構成される。
第1レイヤ生成部450には、設定部456から、カメラ座標系における全天球画像の視点を原点とした3次元座標系(以下、3Dモデル座標系という)における、第1レイヤの視点の3次元位置として原点を示す視点位置情報が供給される。また、第1レイヤ生成部450には、3Dモデル座標系における原点を中心とした立方体を構成する6つの面をそれぞれ含む6つの面それぞれの、3Dモデル座標系における3次元位置およびサイズを示す面情報が供給される。
第1レイヤ生成部(画像生成部)450は、視点位置情報が示す原点を第1レイヤの視点(第1の視点)に設定する。第1レイヤ生成部450は、カメラ座標系における全天球画像の視点を原点として、第1レイヤの視点から、図27のマルチカメラ411から供給される撮影画像を、6つの各面情報が示す3次元位置およびサイズの面のそれぞれにマッピングする。これにより、第1レイヤ生成部450は、第1レイヤの6つの面のテクスチャ画像を生成する。
また、第1レイヤ生成部450は、カメラ座標系における全天球画像の視点を原点として、第1レイヤの視点から、図28のデプス検出部431から供給されるz画像を、6つの各面情報が示す3次元位置およびサイズの面のそれぞれにマッピングする。これにより、第1レイヤ生成部450は、第1レイヤの6つの面のz画像を生成する。
第1レイヤの6つの面に対応する視点は同一であるため、第1レイヤの6つの面のテクスチャ画像は、第1レイヤの視点を中心とした3Dモデルにマッピングされた全天球画像を6つの面にマッピングすることにより得られた画像であるといえる。同様に、第1レイヤの6つの面のz画像は、第1レイヤの視点を中心とした3Dモデルにマッピングされた全天球画像のz画像を6つの面にマッピングすることにより得られた画像であるといえる。第1レイヤ生成部450は、第1レイヤの6つの面のテクスチャ画像をエンコーダ452に供給し、第1レイヤの6つの面のz画像を量子化部451に供給する。
量子化部451は、第1レイヤ生成部450から供給される第1レイヤの6つの各面のz画像の各画素の逆数1/zを逆数1/rに変換する。そして、量子化部451は、上述した式(1)により、逆数1/rに対して8ビット量子化を行う。但し、式(1)におけるrmax,rminは、6つの面全てにおける距離rの最大値、最小値である。rmaxおよびrminを6つの面全てにおける距離rの最大値および最小値とすることにより、各面の距離rの最大値および最小値とする場合に比べて、面ごとに量子化ステップが変化することを防止することができる。量子化部451は、第1レイヤの6つの面のz画像の各画素の逆数1/rの8ビット量子化後の値を画素値とすることにより、第1レイヤの6つの面のデプス画像を生成し、エンコーダ452に供給する。
エンコーダ452は、第1レイヤの6つの面のテクスチャ画像とデプス画像を、面ごと、かつ、画像の種類ごとに圧縮符号化し、第1レイヤテクスチャストリームと第1レイヤデプスストリームを生成する。エンコーダ452は、第1レイヤテクスチャストリームと第1レイヤデプスストリームをストレージ458に供給する。
第2レイヤ生成部453には、設定部456から、第1レイヤの各面に対応する第2レイヤの各面の、第1レイヤの視点とは異なる視点(第2の視点)の視点位置情報と、第1レイヤの各面に対応する第2レイヤの各面の面情報とが供給される。第2レイヤ生成部453は、第2レイヤの面ごとに、その面に対応する視点位置情報が示す3次元位置を第2レイヤの視点に設定する。
第2レイヤ生成部453(画像生成部)は、第2レイヤの面ごとに、その面に対応する第2レイヤの視点から、マルチカメラ411から供給される撮影画像のうちの第1レイヤの視点におけるオクルージョン領域を、第2レイヤの面にマッピングする。これにより、第2レイヤ生成部453は、第2レイヤの6つの面のテクスチャ画像を生成する。
また、第2レイヤ生成部453(画像生成部)は、第2レイヤの面ごとに、その面に対応する第2レイヤの視点から、デプス検出部31から供給されるz画像のうちの第1レイヤの視点におけるオクルージョン領域を、第2レイヤの面にマッピングする。これにより、第2レイヤ生成部453は、第2レイヤの6つの面のz画像を生成する。
即ち、マルチカメラ411の各カメラの位置は異なっているため、カメラ座標系における1つの3次元位置を視点としたとき、撮影画像には、その視点におけるオクルージョン領域が含まれている。しかしながら、第1レイヤのテクスチャ画像は、1つの視点の全天球画像をマッピングすることにより生成されるため、第1レイヤのテクスチャ画像には、その視点におけるオクルージョン領域の撮影画像は含まれない。よって、第2レイヤ生成部453は、そのオクルージョン領域の撮影画像を第2レイヤのテクスチャ画像として含める。z画像についても同様である。第2レイヤ生成部453は、第2レイヤの6つの面のテクスチャ画像をエンコーダ455に供給し、第2レイヤの6つの面のz画像を量子化部454に供給する。
量子化部454は、第2レイヤ生成部453から供給される第2レイヤの6つの各面のz画像の各画素の逆数1/zを逆数1/rに変換する。そして、量子化部454は、量子化部451と同様に、上述した式(1)により、逆数1/rに対して8ビット量子化を行う。量子化部454は、第2レイヤの6つの面のz画像の各画素の逆数1/rの8ビット量子化後の値を画素値とすることにより、第2レイヤの6つの面のz画像を生成し、エンコーダ455に供給する。
エンコーダ455は、第2レイヤの6つの面のテクスチャ画像とデプス画像を、面ごと、かつ、画像の種類ごとに圧縮符号化し、第2レイヤテクスチャストリームと第2レイヤデプスストリームを生成する。エンコーダ455は、第2レイヤテクスチャストリームと第2レイヤデプスストリームをストレージ458に供給する。
設定部456は、3Dモデル座標系における原点を第1レイヤの視点として設定する。設定部456は、第1レイヤの視点を中心とした立方体を構成する6つの矩形の面をそれぞれ含む6つの面を第1レイヤの面として設定する。また、設定部456は、第1レイヤの面ごとに第2レイヤの視点と矩形の面を設定する。
設定部456は、第1レイヤの1つの視点位置情報と6つの面情報を第1レイヤ生成部450とメタデータ生成部457に供給する。また、設定部456は、第1レイヤの6つの面に対応する第2レイヤの6つの視点位置情報と6つの面情報を、第2レイヤ生成部453とメタデータ生成部457に供給する。
メタデータ生成部457は、設定部456から供給される第1レイヤの視点位置情報および面情報、並びに、第2レイヤの視点位置情報および面情報を含むテーブルをメタデータとして生成し、ストレージ458に供給する。
ストレージ458は、エンコーダ452から供給される第1レイヤテクスチャストリームおよび第1レイヤデプスストリーム、並びに、エンコーダ455から供給される第2レイヤテクスチャストリームおよび第2レイヤデプスストリームを記憶する。また、ストレージ458は、メタデータ生成部457から供給されるメタデータを記憶する。
また、ストレージ458は、再構成部459から供給される再構成後の第1レイヤテクスチャストリーム、第1レイヤデプスストリーム、第2レイヤテクスチャストリーム、および第2レイヤデプスストリーム、並びに、メタデータを記憶する。
再構成部459は、必要に応じて、ストレージ458に記憶されている6つの面の第1レイヤテクスチャストリーム、第1レイヤデプスストリーム、第2レイヤテクスチャストリーム、および第2レイヤデプスストリームを読み出し、再構成する。
具体的には、再構成部459は、再構成前の第1レイヤテクスチャストリームを用いて第1レイヤテクスチャストリームに対応する面の数や画角を変更し、再構成前の第1レイヤデプスストリームを用いて第1レイヤデプスストリームに対応する面の数や画角を変更する。例えば、再構成部459は、第1レイヤの面を、立方体を構成する6つの面をそれぞれ含む6つの面から、その6つの面に各面の中心を通る法線が立方体の12本の各辺の中点と視点を通る線である12個の面を加えた18個の面に変更する。
または、再構成部459は、再構成前の第1レイヤテクスチャストリームを用いて第1レイヤテクスチャストリームに対応する面どうしの間隔(密度)を変更し、再構成前の第1レイヤデプスストリームを用いて第1レイヤデプスストリームに対応する面どうしの間隔を変更する。例えば、再構成部459は、第1レイヤの面を、中心を通る法線の間隔が90度である、立方体を構成する6つの面をそれぞれ含む6つの面から、中心を通る法線の間隔が45度である18個の面に変更する。
第1レイヤの面どうしの間隔が狭くなると、面数が増加するため、総データ容量は増加するが、ホームサーバ413において、より視聴者の視野範囲に近い第1レイヤの面に対応するテクスチャ画像およびデプス画像を用いて表示画像を生成することができる。その結果、表示画像内の、第1レイヤまたは第2レイヤのテクスチャ画像およびデプス画像を用いて生成される高解像度領域が増加し、表示画像の画質が向上する。
なお、再構成部459は、再構成前の第1レイヤテクスチャストリームを用いて第1レイヤテクスチャストリームに対応する面の位置を変更し、再構成前の第1レイヤデプスストリームを用いて第1レイヤデプスストリームに対応する面の位置を変更することにより、再構成を行ってもよい。この場合、再構成部459は、例えば、主要な被写体が第1レイヤの面の境界に存在するとき、主要な被写体が第1レイヤの面の境界以外の位置(例えば中央)に存在するように、第1レイヤの6つの面に対応する立方体を回転することにより、再構成を行う。
また、再構成部459は、再構成前の第1レイヤテクスチャストリームを用いて第1レイヤテクスチャストリームに対応する面の傾きを変更し、再構成前の第1レイヤデプスストリームを用いて第1レイヤデプスストリームに対応する面の傾きを変更することにより、再構成を行ってもよい。この場合、再構成部459は、例えば、第1レイヤのテクスチャ画像内の主要な被写体が傾いているとき、傾きがなくなるように、第1レイヤの6つの面に対応する立方体を回転することにより、再構成を行う。
再構成部459は、以上のようにして変更された第1レイヤの各面に対して、再構成後の第2レイヤの視点と面を設定する。そして、再構成部459は、再構成前の第2レイヤテクスチャストリームを用いて、第2レイヤテクスチャストリームに対応する視点および面を、設定された再構成後の第2レイヤの視点および面に変更する。また、再構成部459は、再構成前の第2レイヤデプスストリームを用いて、第2レイヤデプスストリームに対応する視点および面を、設定された再構成後の第2レイヤの視点および面に変更する。
再構成部459は、再構成後の第1レイヤテクスチャストリーム、第1レイヤデプスストリーム、第2レイヤテクスチャストリーム、および第2レイヤデプスストリームをストレージ458に供給する。また、再構成部459は、再構成後の第1レイヤの視点位置情報および面情報、並びに、第2レイヤの視点位置情報および面情報を含むテーブルをメタデータとして生成し、ストレージ458に供給する。
送信部460は、ストレージ458から6つの面の第1レイヤテクスチャストリーム、第1レイヤデプスストリーム、第2レイヤテクスチャストリーム、および第2レイヤデプスストリーム、並びにメタデータを読み出し、図27のホームサーバ413に送信する。
受信部461は、図6の受信部105と同様に、ホームサーバ413から送られてくる視聴方向ログを受信し、ログ解析部462に供給する。ログ解析部462は、図6のログ解析部106と同様に、視聴方向ログであるユーザの視聴タイムスタンプと視聴視野角を解析し、最も視聴回数の多い注目ポイントを抽出し、抽出した注目ポイントに関する情報を、画像変更部463および2D画像生成部464に供給する。
画像変更部463は、図6の画像変更部107と同様に、ログ解析部462により抽出された注目ポイントから、高画質領域と低画質領域を抽出し、ストレージ458に記録されている第1レイヤのテクスチャ画像を変更する。例えば、画像の圧縮率や解像度が変更される。2D画像生成部464は、図6の2D画像生成部108と同様に、ログ解析部462により抽出された注目ポイントに対応する、ストレージ458に記録されている第1レイヤテクスチャストリームから、注目ポイントに対応する2D画像を生成し、生成した注目ポイントに対応する2D画像をストレージ458に登録する。2D画像配信部465は、図6の2D画像配信部109と同様に、登録された注目ポイントに対応する2D画像の視聴の示唆を、ホームサーバ413に送ったり、ホームサーバ413からの要求に応じて、注目ポイントに対応する2D画像のストリームをホームサーバ413に配信する。
以上のように、図29の高解像度画像処理部434は、第1レイヤ画像と第2レイヤ画像を透視投影により生成する。従って、ホームサーバ413は、第1レイヤ画像と第2レイヤ画像に対して通常の画像用の処理を行うことができる。また、高解像度画像処理部434は、第1レイヤテクスチャストリーム、第1レイヤデプスストリーム、第2レイヤテクスチャストリーム、および第2レイヤデプスストリームを、通常の画像の符号化ストリームの送信方法で送信することができる。
(ホームサーバの構成例)
図30は、図27のホームサーバ413の構成例を示すブロック図である。
図27のホームサーバ413は、カメラ413A、受け取り部481、ストレージ482、受け取り部483、視聴方向取得部484、ML3Dモデル生成部485、ML3Dモデル生成部486、ML3Dモデル生成部487、3Dモデル生成部488、および描画部489により構成される。さらに、ホームサーバ413は、送信部491、受信部492、デコーダ493、表示制御部494、および表示部495も含むように構成される。
ホームサーバ413の受け取り部481は、コンテンツサーバ412から伝送されてくる低解像度テクスチャストリームおよび低解像度デプスストリーム、6つの面の第1レイヤテクスチャストリーム、第1レイヤデプスストリーム、第2レイヤテクスチャストリーム、および第2レイヤデプスストリーム、並びにメタデータを受け取り、ストレージ482に供給する。
ストレージ482は、受け取り部481から供給される低解像度テクスチャストリームおよび低解像度デプスストリーム、6つの面の第1レイヤテクスチャストリーム、第1レイヤデプスストリーム、第2レイヤテクスチャストリーム、および第2レイヤデプスストリーム、並びにメタデータを記憶する。
受け取り部483は、図27のジャイロセンサ415Bの検出結果をヘッドマウントディスプレイ415から受け取り、視聴方向取得部484に供給する。
視聴方向取得部484は、受け取り部483から供給されるジャイロセンサ415Bの検出結果に基づいて、3Dモデル座標系における視聴者の視聴方向(視線方向)を決定する。また、視聴方向取得部484は、カメラ413Aからマーカ415Aの撮影画像を取得し、その撮影画像に基づいて、3Dモデル座標系における視聴位置を検出する。
視聴方向取得部484は、ストレージ482からメタデータのうちの第1レイヤのテーブルを読み出す。視聴方向取得部484は、3Dモデル座標系における視聴位置および視線方向、並びに、第1レイヤのテーブルに基づいて、6つの面のうちの、視聴位置から視線方向に延びる視線に最も近い視線ベクトルに対応する3つの面を選択面に決定する。具体的には、視聴方向取得部484は、+X面81と−X面82のいずれかを含む面、+Y面83と−Y面84のいずれかを含む面、および、+Z面85と−Z面86のいずれかを含む面を選択面に決定する。
以上のようにして選択面が決定されることにより、後述する描画部489により選択面に対応する第1レイヤおよび第2レイヤのテクスチャ画像とデプス画像を用いて生成される表示画像内の高解像度領域の割合が最も高くなる。また、3つの選択面が決定されることにより、1つの選択面が選択される場合に比べて、視線が立方体の頂点付近に向かう場合に表示画像内の高解像度領域の割合を増加させることができる。
視聴方向取得部484は、3つの選択面に対応する第1レイヤテクスチャストリーム、第1レイヤデプスストリーム、第2レイヤテクスチャストリーム、および第2レイヤデプスストリームを、ストレージ482から読み出す。視聴方向取得部484は、読み出された第1レイヤテクスチャストリーム、第1レイヤデプスストリーム、第2レイヤテクスチャストリーム、および第2レイヤデプスストリームを、面ごとにML3Dモデル生成部485乃至487に供給する。また、視聴方向取得部484は、低解像度テクスチャストリームと低解像度デプスストリームをストレージ482から読み出し、3Dモデル生成部488に供給する。
また、視聴方向取得部484は、3Dモデル座標系における視聴位置と視聴方向に基づいて、3Dモデル座標系における視聴者の視野範囲を決定する。視聴方向取得部484は、視聴者の視野範囲と視聴位置を描画部489に供給する。視聴方向取得部484は、3つの選択面と、その3つの選択面に対応する第2レイヤの3つの面の視点位置情報および面情報を描画部489に供給する。
ML3Dモデル生成部485乃至487は、それぞれ、第1レイヤテクスチャストリームと第1レイヤデプスストリームを用いて、第1レイヤのテクスチャ画像の各画素に対応するサンプリング点のテクスチャ画像座標系における3次元位置(u,v,z)および接続情報と、カラー情報としてのRGB値とからなる3次元データを生成する。なお、各サンプリング点の接続情報は、そのサンプリング点(vertex)と他のサンプリング点との接続を表す情報である。テクスチャ画像座標系は、テクスチャ画像の横方向をu軸、縦方向をv軸、奥行き方向をz軸とする座標系である。
また、ML3Dモデル生成部485乃至487は、それぞれ、視聴方向取得部484から供給される第2レイヤテクスチャストリームと第2レイヤデプスストリームを用いて、第2レイヤのテクスチャ画像の各画素に対応するサンプリング点の3次元データを生成する。ML3Dモデル生成部485乃至487は、第1レイヤおよび第2レイヤの3次元データを描画部489に供給する。
3Dモデル生成部488は、視聴方向取得部484から供給される低解像度テクスチャストリームと低解像度デプスストリームを復号し、低解像度テクスチャ画像と低解像度デプス画像を生成する。3Dモデル生成部488は、低解像度テクスチャ画像の各画素の画素値としてのYCbCr値をRGB値に変換し、各画素に対応するサンプリング点のRGB値とする。また、3Dモデル生成部488は、低解像度デプス画像の各画素の画素値に対して8ビット逆量子化を行い、逆数1/rを得る。そして、3Dモデル生成部488は、低解像度デプス画像の各画素の逆数1/rに基づいて、各画素の3次元位置(u,v,z)を各画素に対応するサンプリング点の3次元位置(u,v,z)として求める。
また、3Dモデル生成部488は、各サンプリング点の3次元位置(u,v,z)に基づいて、隣接する3つのサンプリング点どうしが接続するように各サンプリング点の接続情報を生成する。3Dモデル生成部488は、各サンプリング点の3次元位置(u,v,z)、接続情報、およびRGB値を、低解像度テクスチャ画像の3次元データとして、描画部489に供給する。
描画部489は、3Dモデル生成部488から供給される低解像度テクスチャ画像の3次元データに基づいて、3Dモデル座標系において、低解像度テクスチャ画像の三角形パッチ描画(点群描画)を行う。その後、描画部489は、ML3Dモデル生成部485乃至237のそれぞれから供給される第1レイヤおよび第2レイヤの3次元データと、視聴方向取得部484から供給される視点位置情報および面情報とに基づいて、3Dモデル座標系において、第1レイヤおよび第2レイヤのテクスチャ画像の三角形パッチ描画を行う。
即ち、低解像度テクスチャ画像の視点は3Dモデル座標系における原点であり、3Dモデルとしての正八面体の各面の位置およびサイズは予め決まっている。従って、描画部489は、正八面体の各面に対応する各カメラの内部パラメータと外部パラ―メータを求めることができる。よって、描画部489は、この内部パラメータと外部パラメータを用いて、低解像度テクスチャ画像の各サンプリング点の3次元位置(u,v,z)から、各サンプリング点の画面上の位置(u,v)と3Dモデル座標系における3次元位置(X,Y,Z)を認識することができる。その結果、低解像度テクスチャ画像の各サンプリング点の画面上の位置(u,v)および3次元位置(X,Y,Z)と接続情報およびRGB値とを用いて三角形パッチ描画を行うことができる。
また、描画部489は、第1レイヤおよび第2レイヤの視点位置情報および面情報に基づいて、第1レイヤおよび第2レイヤの各面に対応する各カメラの内部パラメータと外部パラメータを求めることができる。従って、描画部489は、この内部パラメータと外部パラメータを用いて、第1レイヤおよび第2レイヤの各サンプリング点の3次元位置(u,v,z)から、各サンプリング点の画面上の位置(u,v)と3次元位置(X,Y,Z)を認識できる。その結果、描画部489は、第1レイヤおよび第2レイヤの各サンプリング点の画面上の位置(u,v)および3次元位置(X,Y,Z)と接続情報およびRGB値とを用いて三角形パッチ描画を行うことができる。
描画部489は、3Dモデル座標系において描画された三角形パッチを、視聴方向取得部484から供給される視聴位置を視点として視野範囲に透視投影(マッピング)することにより、表示画像を生成する。描画部489は、表示画像を図27の変換装置414に送信する。
また、視聴方向取得部484は、図6の視聴方向取得部128と同様に、視聴タイムスタンプと、そのときに視聴方向取得部128により取得された視聴視野角(方位角、仰角、回転角)のログである視聴方向ログを取得し、視聴方向ログ記録部490にも供給する。視聴方向ログ記録部490は、図6の視聴方向ログ記録部129と同様に、視聴方向取得部484からの視聴方向ログを記録する。送信部491は、図6の送信部130と同様に、視聴終了後、視聴方向ログ記録部490により取得された視聴方向ログを、コンテンツサーバ412に送信する。
受信部492は、図6の受信部131と同様に、コンテンツサーバ412から送られてくる注目ポイントの視聴示唆や2D画像を、受信し、受信した注目ポイントの視聴示唆を表示制御部494に供給し、注目ポイントの2D画像をデコーダ493に供給する。デコーダ493は、図6のデコーダ132と同様に、受信部492からの注目ポイントの2D画像をデコードし、表示制御部494に供給する。
表示制御部494は、図6の表示制御部133と同様に、受信部492からの注目ポイントの視聴示唆の表示を制御し、ユーザの操作に応じて、デコードされた注目ポイントの2D画像の表示を制御する。表示部495は、図6の表示部134と同様に、LCDなどにより構成される。表示部495は、注目ポイントの視聴示唆や注目ポイントの2D画像を表示する。
以上のようにすることで、画像表示システム410においても、コンテンツサーバ412の記憶容量を減らすことができる。
なお、第2実施の形態では、撮影画像が正八面体にマッピングされることにより全天球画像が生成されたが、撮影画像がマッピングされる3Dモデルは、正八面体のほか、球や立方体などにすることができる。撮影画像が球にマッピングされる場合、全天球画像は、例えば、撮影画像がマッピングされた球の正距円筒図法による画像である。
また、低解像度テクスチャストリームと低解像度デプスストリームは生成されなくてもよい。第1レイヤおよび第2レイヤのデプス画像は生成されなくてもよい。また、第2レイヤのテクスチャ画像とデプス画像は、重要な被写体の撮影画像がマッピングされる一部の面に対してのみ生成されるようにしてもよい。
さらに、低解像度テクスチャ画像および低解像度デプス画像も、高解像度のテクスチャ画像およびデプス画像と同様に、階層化して生成されてもよい。
<3.第3実施の形態>
本開示を適用した配信システムの第3の実施の形態の構成は、透視投影の代わりにtan軸投影(詳細は後述する)が行われる点を除いて、図1の配信システム10の構成と同一である。従って、以下では、tan軸投影についてのみ説明する。
(投影面の座標系の説明)
図31は、投影面の座標系を説明する図である。
なお、第3実施の形態では、投影面は、生成装置12が、高解像度画像を生成する際、球にマッピングされた全天球画像をtan軸投影する2次元平面、または、再生装置15が、表示画像を生成する際、3Dモデル画像をtan軸投影する視野範囲である。
図31の例では、3Dモデルの3次元のxyz座標系において、zが-1.0である投影面501が設定されている。この場合、投影面501の中心O´を原点とし、投影面501の水平方向をs方向とし、垂直方向をt方向とする2次元のst座標系が、投影面501の座標系となる。
なお、以下では、xyz座標系の原点Oからst座標系の座標(s,t)に向かうベクトル502を、座標(s,t)と、原点Oから投影面501までの距離である-1.0とを用いて、ベクトル(s,t,-1.0)という。
<3.第3実施の形態>
(tan軸投影の説明)
図32は、tan軸投影(正接軸投影)を説明する図である。
図32は、投影面501をzの負方向に見た図である。図32の例では、st座標系において、投影面501のs値およびt値の最小値は-1.0であり、最大値は1.0である。
この場合、透視投影では、原点Oから投影面501上の投影点に向かう投影ベクトルがベクトル(s´,t´-1.0)となるように、投影面501上に投影点が設定される。なお、s´は、-1.0から1.0までのs値の範囲に設けられた所定の間隔ごとの値であり、t´は-1.0から1.0までのt値の範囲に設けられた所定の間隔ごとの値である。従って、透視投影における投影点は、投影面501上で均一である。
これに対して、投影面501の画角をθw(図32の例ではπ/2)とすると、tan軸投影では、投影ベクトルがベクトル(tan(s´*θw/2), tan(t´*θw/2), -1.0)となるように、投影面501上に投影点が設定される。
具体的には、ベクトル(tan(s´*θw/2), tan(t´*θw/2), -1.0)は、s´*θw/2をθとし、t´*θw/2をφとすると、ベクトル(tanθ,tanφ,-1.0)になる。このとき、画角θwがπに近付くと、tanθやtanφは無限大に発散する。従って、tanθやtanφが無限大に発散しないように、ベクトル(tanθ,tanφ,-1.0)が、ベクトル(sinθ*cosφ, cosθ*sinφ, -cosθ*cosφ)に補正され、投影ベクトルがベクトル(sinθ*cosφ, cosθ*sinφ, -cosθ*cosφ)となるように、投影面501上に投影点が設定される。従って、tan軸投影では、隣り合う投影点に対応する投影ベクトルどうしがなす角が同一になる。
なお、対数軸(ログスケール)と同様に、tan(s´*θw/2), tan(t´*θw/2)は、tan軸のs´,t´であると捉えられる。従って、本明細書では、投影ベクトルがベクトル(tan(s´*θw/2), tan(t´*θw/2), -1.0)となる投影を、tan軸投影と称している。
以上のように、第3実施の形態では、球にマッピングされた全天球画像を2次元平面にtan軸投影することにより高解像度画像を生成するので、高解像度画像の画質を向上させることができる。また、3Dモデル画像を視野範囲にtan軸投影することにより表示画像を生成するので、表示画像の画質を向上させることができる。
なお、高解像度画像や表示画像を生成する際に行われる投影は、透視投影、tan軸投影以外であってもよい。また、2次元平面ごとに投影方式が異なるようにしてもよい。また、第3の実施の形態においては、図1の配信システム10の他の例として、透視投影の代わりにtan軸投影が用いられる例を説明したが、図27の画像表示システム410の場合も同様に、透視投影の代わりにtan軸投影が用いるようにしてもよい。
<4.第4実施の形態>
(本開示を適用したコンピュータの説明)
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図33は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータ900において、CPU(Central Processing Unit)901,ROM(Read Only Memory)902,RAM(Random Access Memory)903は、バス904により相互に接続されている。
バス904には、さらに、入出力インタフェース905が接続されている。入出力インタフェース905には、入力部906、出力部907、記憶部908、通信部909、及びドライブ910が接続されている。
入力部906は、キーボード、マウス、マイクロフォンなどよりなる。出力部907は、ディスプレイ、スピーカなどよりなる。記憶部908は、ハードディスクや不揮発性のメモリなどよりなる。通信部909は、ネットワークインタフェースなどよりなる。ドライブ910は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア911を駆動する。
以上のように構成されるコンピュータ900では、CPU901が、例えば、記憶部908に記憶されているプログラムを、入出力インタフェース905及びバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ900(CPU901)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア911に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータ900では、プログラムは、リムーバブルメディア911をドライブ910に装着することにより、入出力インタフェース905を介して、記憶部908にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部909で受信し、記憶部908にインストールすることができる。その他、プログラムは、ROM902や記憶部908に、あらかじめインストールしておくことができる。
なお、コンピュータ900が実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
<5.応用例>
本開示に係る技術は、様々な製品へ応用することができる。例えば、本開示に係る技術は、自動車、電気自動車、ハイブリッド電気自動車、自動二輪車、自転車、パーソナルモビリティ、飛行機、ドローン、船舶、ロボット、建設機械、農業機械(トラクター)などのいずれかの種類の移動体に搭載される装置として実現されてもよい。
図34は、本開示に係る技術が適用され得る移動体制御システムの一例である車両制御システム7000の概略的な構成例を示すブロック図である。車両制御システム7000は、通信ネットワーク7010を介して接続された複数の電子制御ユニットを備える。図34に示した例では、車両制御システム7000は、駆動系制御ユニット7100、ボディ系制御ユニット7200、バッテリ制御ユニット7300、車外情報検出ユニット7400、車内情報検出ユニット7500、及び統合制御ユニット7600を備える。これらの複数の制御ユニットを接続する通信ネットワーク7010は、例えば、CAN(Controller Area Network)、LIN(Local Interconnect Network)、LAN(Local Area Network)又はFlexRay(登録商標)等の任意の規格に準拠した車載通信ネットワークであってよい。
各制御ユニットは、各種プログラムにしたがって演算処理を行うマイクロコンピュータと、マイクロコンピュータにより実行されるプログラム又は各種演算に用いられるパラメータ等を記憶する記憶部と、各種制御対象の装置を駆動する駆動回路とを備える。各制御ユニットは、通信ネットワーク7010を介して他の制御ユニットとの間で通信を行うためのネットワークI/Fを備えるとともに、車内外の装置又はセンサ等との間で、有線通信又は無線通信により通信を行うための通信I/Fを備える。図35では、統合制御ユニット7600の機能構成として、マイクロコンピュータ7610、汎用通信I/F7620、専用通信I/F7630、測位部7640、ビーコン受信部7650、車内機器I/F7660、音声画像出力部7670、車載ネットワークI/F7680及び記憶部7690が図示されている。他の制御ユニットも同様に、マイクロコンピュータ、通信I/F及び記憶部等を備える。
駆動系制御ユニット7100は、各種プログラムにしたがって車両の駆動系に関連する装置の動作を制御する。例えば、駆動系制御ユニット7100は、内燃機関又は駆動用モータ等の車両の駆動力を発生させるための駆動力発生装置、駆動力を車輪に伝達するための駆動力伝達機構、車両の舵角を調節するステアリング機構、及び、車両の制動力を発生させる制動装置等の制御装置として機能する。駆動系制御ユニット7100は、ABS(Antilock Brake System)又はESC(Electronic Stability Control)等の制御装置としての機能を有してもよい。
駆動系制御ユニット7100には、車両状態検出部7110が接続される。車両状態検出部7110には、例えば、車体の軸回転運動の角速度を検出するジャイロセンサ、車両の加速度を検出する加速度センサ、あるいは、アクセルペダルの操作量、ブレーキペダルの操作量、ステアリングホイールの操舵角、エンジン回転数又は車輪の回転速度等を検出するためのセンサのうちの少なくとも一つが含まれる。駆動系制御ユニット7100は、車両状態検出部7110から入力される信号を用いて演算処理を行い、内燃機関、駆動用モータ、電動パワーステアリング装置又はブレーキ装置等を制御する。
ボディ系制御ユニット7200は、各種プログラムにしたがって車体に装備された各種装置の動作を制御する。例えば、ボディ系制御ユニット7200は、キーレスエントリシステム、スマートキーシステム、パワーウィンドウ装置、あるいは、ヘッドランプ、バックランプ、ブレーキランプ、ウィンカー又はフォグランプ等の各種ランプの制御装置として機能する。この場合、ボディ系制御ユニット7200には、鍵を代替する携帯機から発信される電波又は各種スイッチの信号が入力され得る。ボディ系制御ユニット7200は、これらの電波又は信号の入力を受け付け、車両のドアロック装置、パワーウィンドウ装置、ランプ等を制御する。
バッテリ制御ユニット7300は、各種プログラムにしたがって駆動用モータの電力供給源である二次電池7310を制御する。例えば、バッテリ制御ユニット7300には、二次電池7310を備えたバッテリ装置から、バッテリ温度、バッテリ出力電圧又はバッテリの残存容量等の情報が入力される。バッテリ制御ユニット7300は、これらの信号を用いて演算処理を行い、二次電池7310の温度調節制御又はバッテリ装置に備えられた冷却装置等の制御を行う。
車外情報検出ユニット7400は、車両制御システム7000を搭載した車両の外部の情報を検出する。例えば、車外情報検出ユニット7400には、撮像部7410及び車外情報検出部7420のうちの少なくとも一方が接続される。撮像部7410には、ToF(Time Of Flight)カメラ、ステレオカメラ、単眼カメラ、赤外線カメラ及びその他のカメラのうちの少なくとも一つが含まれる。車外情報検出部7420には、例えば、現在の天候又は気象を検出するための環境センサ、あるいは、車両制御システム7000を搭載した車両の周囲の他の車両、障害物又は歩行者等を検出するための周囲情報検出センサのうちの少なくとも一つが含まれる。
環境センサは、例えば、雨天を検出する雨滴センサ、霧を検出する霧センサ、日照度合いを検出する日照センサ、及び降雪を検出する雪センサのうちの少なくとも一つであってよい。周囲情報検出センサは、超音波センサ、レーダ装置及びLIDAR(Light Detection and Ranging、Laser Imaging Detection and Ranging)装置のうちの少なくとも一つであってよい。これらの撮像部7410及び車外情報検出部7420は、それぞれ独立したセンサないし装置として備えられてもよいし、複数のセンサないし装置が統合された装置として備えられてもよい。
ここで、図35は、撮像部7410及び車外情報検出部7420の設置位置の例を示す。撮像部7910,7912,7914,7916,7918は、例えば、車両7900のフロントノーズ、サイドミラー、リアバンパ、バックドア及び車室内のフロントガラスの上部のうちの少なくとも一つの位置に設けられる。フロントノーズに備えられる撮像部7910及び車室内のフロントガラスの上部に備えられる撮像部7918は、主として車両7900の前方の画像を取得する。サイドミラーに備えられる撮像部7912,7914は、主として車両7900の側方の画像を取得する。リアバンパ又はバックドアに備えられる撮像部7916は、主として車両7900の後方の画像を取得する。車室内のフロントガラスの上部に備えられる撮像部7918は、主として先行車両又は、歩行者、障害物、信号機、交通標識又は車線等の検出に用いられる。
なお、図35には、それぞれの撮像部7910,7912,7914,7916の撮影範囲の一例が示されている。撮像範囲aは、フロントノーズに設けられた撮像部7910の撮像範囲を示し、撮像範囲b,cは、それぞれサイドミラーに設けられた撮像部7912,7914の撮像範囲を示し、撮像範囲dは、リアバンパ又はバックドアに設けられた撮像部7916の撮像範囲を示す。例えば、撮像部7910,7912,7914,7916で撮像された画像データが重ね合わせられることにより、車両7900を上方から見た俯瞰画像が得られる。
車両7900のフロント、リア、サイド、コーナ及び車室内のフロントガラスの上部に設けられる車外情報検出部7920,7922,7924,7926,7928,7930は、例えば超音波センサ又はレーダ装置であってよい。車両7900のフロントノーズ、リアバンパ、バックドア及び車室内のフロントガラスの上部に設けられる車外情報検出部7920,7926,7930は、例えばLIDAR装置であってよい。これらの車外情報検出部7920〜7930は、主として先行車両、歩行者又は障害物等の検出に用いられる。
図34に戻って説明を続ける。車外情報検出ユニット7400は、撮像部7410に車外の画像を撮像させるとともに、撮像された画像データを受信する。また、車外情報検出ユニット7400は、接続されている車外情報検出部7420から検出情報を受信する。車外情報検出部7420が超音波センサ、レーダ装置又はLIDAR装置である場合には、車外情報検出ユニット7400は、超音波又は電磁波等を発信させるとともに、受信された反射波の情報を受信する。車外情報検出ユニット7400は、受信した情報に基づいて、人、車、障害物、標識又は路面上の文字等の物体検出処理又は距離検出処理を行ってもよい。車外情報検出ユニット7400は、受信した情報に基づいて、降雨、霧又は路面状況等を認識する環境認識処理を行ってもよい。車外情報検出ユニット7400は、受信した情報に基づいて、車外の物体までの距離を算出してもよい。
また、車外情報検出ユニット7400は、受信した画像データに基づいて、人、車、障害物、標識又は路面上の文字等を認識する画像認識処理又は距離検出処理を行ってもよい。車外情報検出ユニット7400は、受信した画像データに対して歪補正又は位置合わせ等の処理を行うとともに、異なる撮像部7410により撮像された画像データを合成して、俯瞰画像又はパノラマ画像を生成してもよい。車外情報検出ユニット7400は、異なる撮像部7410により撮像された画像データを用いて、視点変換処理を行ってもよい。
車内情報検出ユニット7500は、車内の情報を検出する。車内情報検出ユニット7500には、例えば、運転者の状態を検出する運転者状態検出部7510が接続される。運転者状態検出部7510は、運転者を撮像するカメラ、運転者の生体情報を検出する生体センサ又は車室内の音声を集音するマイク等を含んでもよい。生体センサは、例えば、座面又はステアリングホイール等に設けられ、座席に座った搭乗者又はステアリングホイールを握る運転者の生体情報を検出する。車内情報検出ユニット7500は、運転者状態検出部7510から入力される検出情報に基づいて、運転者の疲労度合い又は集中度合いを算出してもよいし、運転者が居眠りをしていないかを判別してもよい。車内情報検出ユニット7500は、集音された音声信号に対してノイズキャンセリング処理等の処理を行ってもよい。
統合制御ユニット7600は、各種プログラムにしたがって車両制御システム7000内の動作全般を制御する。統合制御ユニット7600には、入力部7800が接続されている。入力部7800は、例えば、タッチパネル、ボタン、マイクロフォン、スイッチ又はレバー等、搭乗者によって入力操作され得る装置によって実現される。統合制御ユニット7600には、マイクロフォンにより入力される音声を音声認識することにより得たデータが入力されてもよい。入力部7800は、例えば、赤外線又はその他の電波を利用したリモートコントロール装置であってもよいし、車両制御システム7000の操作に対応した携帯電話又はPDA(Personal Digital Assistant)等の外部接続機器であってもよい。入力部7800は、例えばカメラであってもよく、その場合搭乗者はジェスチャにより情報を入力することができる。あるいは、搭乗者が装着したウェアラブル装置の動きを検出することで得られたデータが入力されてもよい。さらに、入力部7800は、例えば、上記の入力部7800を用いて搭乗者等により入力された情報に基づいて入力信号を生成し、統合制御ユニット7600に出力する入力制御回路などを含んでもよい。搭乗者等は、この入力部7800を操作することにより、車両制御システム7000に対して各種のデータを入力したり処理動作を指示したりする。
記憶部7690は、マイクロコンピュータにより実行される各種プログラムを記憶するROM(Read Only Memory)、及び各種パラメータ、演算結果又はセンサ値等を記憶するRAM(Random Access Memory)を含んでいてもよい。また、記憶部7690は、HDD(Hard Disc Drive)等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス又は光磁気記憶デバイス等によって実現してもよい。
汎用通信I/F7620は、外部環境7750に存在する様々な機器との間の通信を仲介する汎用的な通信I/Fである。汎用通信I/F7620は、GSM(Global System of Mobile communications)、WiMAX、LTE(Long Term Evolution)若しくはLTE−A(LTE−Advanced)などのセルラー通信プロトコル、又は無線LAN(Wi−Fi(登録商標)ともいう)、Bluetooth(登録商標)などのその他の無線通信プロトコルを実装してよい。汎用通信I/F7620は、例えば、基地局又はアクセスポイントを介して、外部ネットワーク(例えば、インターネット、クラウドネットワーク又は事業者固有のネットワーク)上に存在する機器(例えば、アプリケーションサーバ又は制御サーバ)へ接続してもよい。また、汎用通信I/F7620は、例えばP2P(Peer To Peer)技術を用いて、車両の近傍に存在する端末(例えば、運転者、歩行者若しくは店舗の端末、又はMTC(Machine Type Communication)端末)と接続してもよい。
専用通信I/F7630は、車両における使用を目的として策定された通信プロトコルをサポートする通信I/Fである。専用通信I/F7630は、例えば、下位レイヤのIEEE802.11pと上位レイヤのIEEE1609との組合せであるWAVE(Wireless Access in Vehicle Environment)、DSRC(Dedicated Short Range Communications)、又はセルラー通信プロトコルといった標準プロトコルを実装してよい。専用通信I/F7630は、典型的には、車車間(Vehicle to Vehicle)通信、路車間(Vehicle to Infrastructure)通信、車両と家との間(Vehicle to Home)の通信及び歩車間(Vehicle to Pedestrian)通信のうちの1つ以上を含む概念であるV2X通信を遂行する。
測位部7640は、例えば、GNSS(Global Navigation Satellite System)衛星からのGNSS信号(例えば、GPS(Global Positioning System)衛星からのGPS信号)を受信して測位を実行し、車両の緯度、経度及び高度を含む位置情報を生成する。なお、測位部7640は、無線アクセスポイントとの信号の交換により現在位置を特定してもよく、又は測位機能を有する携帯電話、PHS若しくはスマートフォンといった端末から位置情報を取得してもよい。
ビーコン受信部7650は、例えば、道路上に設置された無線局等から発信される電波あるいは電磁波を受信し、現在位置、渋滞、通行止め又は所要時間等の情報を取得する。なお、ビーコン受信部7650の機能は、上述した専用通信I/F7630に含まれてもよい。
車内機器I/F7660は、マイクロコンピュータ7610と車内に存在する様々な車内機器7760との間の接続を仲介する通信インタフェースである。車内機器I/F7660は、無線LAN、Bluetooth(登録商標)、NFC(Near Field Communication)又はWUSB(Wireless USB)といった無線通信プロトコルを用いて無線接続を確立してもよい。また、車内機器I/F7660は、図示しない接続端子(及び、必要であればケーブル)を介して、USB(Universal Serial Bus)、HDMI(High-Definition Multimedia Interface)、又はMHL(Mobile High-definition Link)等の有線接続を確立してもよい。車内機器7760は、例えば、搭乗者が有するモバイル機器若しくはウェアラブル機器、又は車両に搬入され若しくは取り付けられる情報機器のうちの少なくとも1つを含んでいてもよい。また、車内機器7760は、任意の目的地までの経路探索を行うナビゲーション装置を含んでいてもよい。車内機器I/F7660は、これらの車内機器7760との間で、制御信号又はデータ信号を交換する。
車載ネットワークI/F7680は、マイクロコンピュータ7610と通信ネットワーク7010との間の通信を仲介するインタフェースである。車載ネットワークI/F7680は、通信ネットワーク7010によりサポートされる所定のプロトコルに則して、信号等を送受信する。
統合制御ユニット7600のマイクロコンピュータ7610は、汎用通信I/F7620、専用通信I/F7630、測位部7640、ビーコン受信部7650、車内機器I/F7660及び車載ネットワークI/F7680のうちの少なくとも一つを介して取得される情報に基づき、各種プログラムにしたがって、車両制御システム7000を制御する。例えば、マイクロコンピュータ7610は、取得される車内外の情報に基づいて、駆動力発生装置、ステアリング機構又は制動装置の制御目標値を演算し、駆動系制御ユニット7100に対して制御指令を出力してもよい。例えば、マイクロコンピュータ7610は、車両の衝突回避あるいは衝撃緩和、車間距離に基づく追従走行、車速維持走行、車両の衝突警告、又は車両のレーン逸脱警告等を含むADAS(Advanced Driver Assistance System)の機能実現を目的とした協調制御を行ってもよい。また、マイクロコンピュータ7610は、取得される車両の周囲の情報に基づいて駆動力発生装置、ステアリング機構又は制動装置等を制御することにより、運転者の操作に拠らずに自律的に走行する自動運転等を目的とした協調制御を行ってもよい。
マイクロコンピュータ7610は、汎用通信I/F7620、専用通信I/F7630、測位部7640、ビーコン受信部7650、車内機器I/F7660及び車載ネットワークI/F7680のうちの少なくとも一つを介して取得される情報に基づき、車両と周辺の構造物や人物等の物体との間の3次元距離情報を生成し、車両の現在位置の周辺情報を含むローカル地図情報を作成してもよい。また、マイクロコンピュータ7610は、取得される情報に基づき、車両の衝突、歩行者等の近接又は通行止めの道路への進入等の危険を予測し、警告用信号を生成してもよい。警告用信号は、例えば、警告音を発生させたり、警告ランプを点灯させたりするための信号であってよい。
音声画像出力部7670は、車両の搭乗者又は車外に対して、視覚的又は聴覚的に情報を通知することが可能な出力装置へ音声及び画像のうちの少なくとも一方の出力信号を送信する。図32の例では、出力装置として、オーディオスピーカ7710、表示部7720及びインストルメントパネル7730が例示されている。表示部7720は、例えば、オンボードディスプレイ及びヘッドアップディスプレイの少なくとも一つを含んでいてもよい。表示部7720は、AR(Augmented Reality)表示機能を有していてもよい。出力装置は、これらの装置以外の、ヘッドホン、搭乗者が装着する眼鏡型ディスプレイ等のウェアラブルデバイス、プロジェクタ又はランプ等の他の装置であってもよい。出力装置が表示装置の場合、表示装置は、マイクロコンピュータ7610が行った各種処理により得られた結果又は他の制御ユニットから受信された情報を、テキスト、イメージ、表、グラフ等、様々な形式で視覚的に表示する。また、出力装置が音声出力装置の場合、音声出力装置は、再生された音声データ又は音響データ等からなるオーディオ信号をアナログ信号に変換して聴覚的に出力する。
なお、図32に示した例において、通信ネットワーク7010を介して接続された少なくとも二つの制御ユニットが一つの制御ユニットとして一体化されてもよい。あるいは、個々の制御ユニットが、複数の制御ユニットにより構成されてもよい。さらに、車両制御システム7000が、図示されていない別の制御ユニットを備えてもよい。また、上記の説明において、いずれかの制御ユニットが担う機能の一部又は全部を、他の制御ユニットに持たせてもよい。つまり、通信ネットワーク7010を介して情報の送受信がされるようになっていれば、所定の演算処理が、いずれかの制御ユニットで行われるようになってもよい。同様に、いずれかの制御ユニットに接続されているセンサ又は装置が、他の制御ユニットに接続されるとともに、複数の制御ユニットが、通信ネットワーク7010を介して相互に検出情報を送受信してもよい。
なお、図1乃至図32を用いて説明した本実施形態に係る配信システム10または画像表示システム410の各機能を実現するためのコンピュータプログラムを、いずれかの制御ユニット等に実装することができる。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体を提供することもできる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ等である。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信されてもよい。
以上説明した車両制御システム7000において、図1乃至図32を用いて説明した本実施形態に係る配信システム10または画像表示システム410は、図34に示した応用例の車両制御システム7000に適用することができる。例えば、配信システム10の撮像装置11および画像表示システム410のマルチカメラ411は、撮像部7410の少なくとも一部に相当する。また、生成装置12、配信サーバ13、および再生装置15、は一体化され、コンテンツサーバ412、ホームサーバ413、および変換装置414は一体化され、統合制御ユニット7600のマイクロコンピュータ7610と記憶部7690に相当する。ヘッドマウントディスプレイ16と、ヘッドマウントディスプレイ415は、表示部7720に相当する。なお、配信システム10または画像表示システム410を車両制御システム7000に適用する場合、カメラ15A、マーカ16A、およびジャイロセンサ16B、並びに、カメラ413A、マーカ415A、およびジャイロセンサ415Bは設けられず、ユーザである搭乗者の入力部7800の操作によりユーザの視線方向および視聴位置が入力される。以上のようにして、配信システム10または画像表示システム410を、図34に示した応用例の車両制御システム7000に適用することにより、全天球画像を用いて高画質の表示画像を生成することができる。
また、図1乃至図32を用いて説明した配信システム10または画像表示システム410の少なくとも一部の構成要素は、図34に示した統合制御ユニット7600のためのモジュール(例えば、一つのダイで構成される集積回路モジュール)において実現されてもよい。あるいは、図1乃至図32を用いて説明した配信システム10または画像表示システム410が、図34に示した車両制御システム7000の複数の制御ユニットによって実現されてもよい。
本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
また、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、本開示は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
なお、本開示は、以下のような構成もとることができる。
(1)
3Dモデルにマッピングされた全天球画像を複数の2次元平面に投影することにより生成された複数の画像のうちユーザの視聴方向に応じた画像と、低解像度化された前記全天球画像とを受け取る受け取り部と、
前記受け取り部により受け取られた前記画像および低解像度化された前記全天球画像の少なくとも一方に基づいて、表示画像を生成する描画部と、
前記ユーザの視聴方向に関する視聴方向情報を取得する視聴方向取得部と、
前記視聴方向取得部により取得された視聴方向情報に基づいて記録される視聴方向ログを送信する送信部と
を備える画像処理装置。
(2)
前記視聴方向取得部は、前記ユーザに装着されるセンサから取得される観測値に基づいて、前記視聴方向情報を取得する
前記(1)に記載の画像処理装置。
(3)
前記視聴方向取得部は、外部装置から取得される観測値に基づいて、前記視聴方向情報を取得する
前記(1)に記載の画像処理装置。
(4)
前記視聴方向取得部は、前記ユーザが観た方向の画像を定期的に得ることにより、前記視聴方向情報を取得する
前記(1)に記載の画像処理装置。
(5)
前記視聴方向取得部は、前記ユーザの操作に基づいて、前記視聴方向情報を取得する
前記(1)に記載の画像処理装置。
(6)
前記視聴方向ログは、前記ユーザの方位角、仰角、および回転角のログ、並びにタイムスタンプからなる
前記(1)乃至(5)のいずれかに記載の画像処理装置。
(7)
前記視聴方向ログは、前記ユーザの位置情報も含む
前記(1)乃至(6)のいずれかに記載の画像処理装置。
(8)
前記受け取り部は、前記複数の画像と、前記複数の画像から前記視聴方向ログに応じて変更された画像のうち、前記ユーザの視聴方向に応じた画像と、低解像度化された前記全天球画像とを受け取る
前記(1)乃至(7)のいずれかに記載の画像処理装置。
(9)
前記視聴方向ログに応じ、前記複数の画像のうち、最もよく視聴される視聴方向の画像を用いて生成された2D画像を受信する2D画像受信部と、
前記2D画像受信部により受信された2D画像の表示を制御する表示制御部と
をさらに備える前記(1)乃至(8)のいずれかに記載の画像処理装置。
(10)
画像処理装置が、
3Dモデルにマッピングされた全天球画像を複数の2次元平面に投影することにより生成された複数の画像のうちユーザの視聴方向に応じた画像と、低解像度化された前記全天球画像とを受け取る受け取りステップと、
前記受け取りステップの処理により受け取られた前記画像および低解像度化された前記全天球画像の少なくとも一方に基づいて、表示画像を生成する描画ステップと、
前記ユーザの視聴方向に関する視聴方向情報を取得する視聴方向取得ステップと、
前記視聴方向取得ステップの処理により取得された視聴方向情報に基づいて記録される視聴方向ログを送信する送信ステップと
を含む画像処理方法。
(11)
3Dモデルにマッピングされた全天球画像を複数の2次元平面に投影することにより生成された複数の画像と、低解像度化された前記全天球画像とを記憶する記憶部と、
前記全天球画像および前記複数の画像のうち、ユーザの視聴方向に応じた画像を端末に送信する送信部と、
前記ユーザの視聴方向に関する視聴方向ログを前記端末から受け取る受け取り部と、
前記受け取り部により受け取られた視聴方向ログに応じて、前記記憶部に記憶されている前記複数の画像を変更する画像変更部と
を備える画像処理装置。
(12)
前記視聴方向ログは、前記ユーザの方位角、仰角、および回転角のログおよびタイムスタンプからなる
前記(11)に記載の画像処理装置。
(13)
前記視聴方向ログは、前記ユーザの位置情報も含む
前記(11)または(12)に記載の画像処理装置。
(14)
前記画像変更部は、
前記受け取り部により受け取られた視聴方向ログに応じて、前記複数の画像のうち、視聴がない視聴方向の画像の圧縮率を変更する
前記(11)乃至(13)のいずれかに記載の画像処理装置。
(15)
前記画像変更部は、
前記受け取り部により受け取られた視聴方向ログに応じて、前記複数の画像のうち、視聴がない視聴方向の画像の解像度を変更する
前記(11)乃至(13)のいずれかに記載の画像処理装置。
(16)
前記画像変更部は、
前記受け取り部により受け取られた視聴方向ログに応じて、前記複数の画像のうち、視聴がない視聴方向の画像を削除する
前記(11)乃至(13)のいずれかに記載の画像処理装置。
(17)
前記画像変更部は、
前記受け取り部により受け取られた視聴方向ログおよび画像変化量に応じ、前記複数の画像のうち、視聴がない、または、画像変化量のない視聴方向の画像を削除する
前記(11)乃至(13)のいずれかに記載の画像処理装置。
(18)
前記画像変更部は、
前記受け取り部により受け取られた視聴方向ログおよび画像変化量に応じ、前記複数の画像のうち、視聴がない、または、画像変化量のない視聴方向の画像が時間方向に続く場合、視聴がない、または、画像変化量のない視聴方向の画像を時間方向に間引く
前記(17)に記載の画像処理装置。
(19)
前記受け取り部により受け取られた視聴方向ログに応じ、前記記憶部に記憶されている前記複数の画像のうち、最もよく視聴される視聴方向の画像を用いて、2D画像を生成する画像生成部と、
前記画像生成部により生成された2D画像を前記端末に提供する画像提供部と
をさらに備える
前記(11)乃至(18)のいずれかに記載の画像処理装置。
(20)
画像処理装置が、
3Dモデルにマッピングされた全天球画像を複数の2次元平面に投影することにより生成された複数の画像と、低解像度化された前記全天球画像とが記憶されている記憶部から、前記全天球画像および前記複数の画像のうち、ユーザの視聴方向に応じた画像を端末に送信する送信ステップと、
前記ユーザの視聴方向に関する視聴方向ログを前記端末から受け取る受け取りステップと、
前記受け取りステップの処理により受け取られた視聴方向ログに応じて、前記記憶部に記憶されている前記複数の画像を変更する画像変更ステップと
を含む画像処理方法。