本開示の一態様に係る三次元データ復号方法は、符号化された複数の三次元点を含むタイルを取得し、前記タイルにおける所定の位置及び第1基準点を結ぶ線分と、前記第1基準点及び前記第1基準点とは異なる第2基準点を結ぶ線分とのなす角度を算出し、算出した前記角度が所定の条件を満たすか否かを判定し、前記角度が前記所定の条件を満たすと判定した場合、前記タイルに含まれる符号化された複数の三次元点を復号し、前記角度が前記所定の条件を満たさないと判定した場合、前記タイルに含まれる符号化された複数の三次元点を復号しない。
例えば、三次元データ復号装置は、三次元データ符号化装置によって符号化された複数の三次元点を含むビットストリーム(符号化データ)に含まれるデータ順に符号化された複数の三次元点を順次復号する。ここで、例えば、三次元データが三次元地図を示す場合に、ユーザが当該地図を見るとき、当該ユーザは、当該ユーザの現在位置から、特定の方向についての地図を見たい場合が多い。このような場合に、三次元データ復号装置が、ビットストリームに含まれるデータ順に符号化された複数の三次元点を順次復号して、表示装置等に複数の三次元点を示す画像を表示装置に復号した順に順次表示させるとする。これでは、ユーザが確認したい場所が表示装置に表示されるまでに時間を要する可能性がある。また、ユーザの現在位置によっては、復号される必要のない三次元点がある場合がある。そこで、本開示に係る三次元データ復号方法では、カメラ、ユーザ等の位置及び当該カメラ、ユーザ等の焦点位置等の任意の2点とタイルとの位置関係を用いて、カメラ、ユーザ等の視線方向を仮定して、当該視線方向に位置する符号化されたタイルを復号する。これによれば、ユーザが所望する可能性が高い領域に位置する符号化されたタイルを復号できる。つまり、本開示に係る三次元データ復号方法によれば、符号化されたタイルのうち、ユーザが所望の符号化されたタイル(つまり、複数の三次元点)を適切に選択して復号できる。
また、例えば、前記角度が前記所定の条件を満たすか否かを判定する処理では、算出した前記角度が所定の角度未満であるか否かを判定し、前記タイルに含まれる符号化された複数の三次元点の復号処理では、算出した前記角度が前記所定の角度未満である場合、前記符号化された複数の三次元点を復号し、算出した前記角度が前記所定の角度以上である場合、前記符号化された複数の三次元点を復号しない。
これによれば、所定の角度を適切に設定することで、カメラの視野角等に合わせてユーザが所望する範囲に位置するタイルを適切に復号できる。
また、例えば、前記タイルに含まれる前記符号化された複数の三次元点を復号する処理では、前記角度に基づいて、前記符号化された複数の三次元点の解像度を決定し、決定した解像度に応じて、前記符号化された複数の三次元点を復号する。
例えば、ユーザの視野の中央部は、ユーザの視野の外縁部よりもユーザにとって重要な位置である可能性が高い。そこで、例えば、算出した角度に応じて、カメラ、ユーザ等の視野の中央部に位置するタイルの解像度を高くし、カメラ、ユーザ等の視野の外縁部に位置するタイルの解像度を低くするように、タイルを復号する。これによれば、ユーザにとって比較的重要となり得るタイルの解像度を上げつつ、ユーザにとって比較的重要ではない可能性が高いタイルの解像度を下げることで処理量を削減できる。
また、例えば、前記第1基準点は、カメラの位置を示し、前記第2基準点は、前記カメラの焦点位置を示す。
或いは、例えば、前記第2基準点は、カメラの位置を示し、前記第1基準点は、前記カメラの焦点位置を示す。
これらによれば、例えば、実際にカメラが撮像した場合の当該カメラの位置及び当該カメラの撮像方向に応じた位置のタイルを復号できる。そのため、例えば、当該カメラから得られる画像に応じた三次元点画像を生成するためのタイルを適切に選択して復号できる。
また、例えば、前記角度を算出する処理では、前記第1基準点から前記所定の位置に向かうベクトルと、前記第1基準点から前記第2基準点に向かうベクトルとの内積を算出することで前記角度を算出する。
これによれば、簡単な処理で角度を算出できる。
また、例えば、前記所定の位置は、前記タイルが位置する座標空間における前記タイルにおいて最も座標の値が小さい位置、前記タイルの中心位置、又は、前記タイルの重心位置である。
つまり、タイルの位置は、当該タイルに含まれ、且つ、簡便に算出できる位置が採用されるとよい。これによれば、タイルの位置を簡単な処理で特定できる。
また、本開示の一態様に係る三次元データ復号装置は、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、符号化された複数の三次元点を含むタイルを取得し、前記タイルにおける所定の位置及び第1基準点を結ぶ線分と、前記第1基準点及び前記第1基準点とは異なる第2基準点を結ぶ線分とのなす角度を算出し、算出した前記角度が所定の条件を満たすか否かを判定し、前記角度が前記所定の条件を満たすと判定した場合、前記タイルに含まれる符号化された複数の三次元点を復号し、前記角度が前記所定の条件を満たさないと判定した場合、前記タイルに含まれる符号化された複数の三次元点を復号しない。
例えば、三次元データ復号装置は、三次元データ符号化装置によって符号化された複数の三次元点を含むビットストリーム(符号化データ)に含まれるデータ順に符号化された複数の三次元点を順次復号する。ここで、例えば、三次元データが三次元地図を示す場合に、ユーザが当該地図を見るとき、当該ユーザは、当該ユーザの現在位置から、特定の方向についての地図を見たい場合が多い。このような場合に、三次元データ復号装置が、ビットストリームに含まれるデータ順に符号化された複数の三次元点を順次復号して、表示装置等に複数の三次元点を示す画像を表示装置に復号した順に順次表示させるとする。これでは、ユーザが確認したい場所が表示装置に表示されるまでに時間を要する可能性がある。また、ユーザの現在位置によっては、復号される必要のない三次元点がある場合がある。そこで、本開示に係る三次元データ復号装置は、カメラ、ユーザ等の位置及び当該カメラ、ユーザ等の焦点位置等の任意の2点とタイルとの位置関係を用いて、カメラ、ユーザ等の視線方向を仮定して、当該視線方向に位置する符号化されたタイルを復号する。これによれば、三次元データ復号装置は、ユーザが所望する可能性が高い領域に位置する符号化されたタイルを復号できる。つまり、本開示に係る三次元データ復号装置によれば、符号化されたタイルのうち、ユーザが所望の符号化されたタイル(つまり、複数の三次元点)を適切に選択して復号できる。
なお、これらの包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能なCD-ROM等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
以下、実施の形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序等は、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態1)
ポイントクラウドの符号化データを実際の装置又はサービスにおいて使用する際には、ネットワーク帯域を抑制するために用途に応じて必要な情報を送受信することが望ましい。しかしながら、これまで、三次元データの符号化構造にはそのような機能が存在せず、そのための符号化方法も存在しなかった。
本実施の形態では、三次元のポイントクラウドの符号化データにおいて用途に応じて必要な情報を送受信する機能を提供するための三次元データ符号化方法及び三次元データ符号化装置、並びに、当該符号化データを復号する三次元データ復号方法及び三次元データ復号装置、並びに、当該符号化データを多重化する三次元データ多重化方法、並びに、当該符号化データを伝送する三次元データ伝送方法について説明する。
特に、現在、点群データの符号化方法(符号化方式)として第1の符号化方法、及び第2の符号化方法が検討されているが、符号化データの構成、及び符号化データをシステムフォーマットへ格納する方法が定義されておらず、このままでは符号化部におけるMUX処理(多重化)、又は、伝送或いは蓄積ができないという課題がある。
また、PCC(Point Cloud Compression)のように、第1の符号化方法と第2の符号化方法の2つのコーデックが混在するフォーマットをサポートする方法はこれまで存在しない。
本実施の形態では、第1の符号化方法と第2の符号化方法の2つのコーデックが混在するPCC符号化データの構成、及び符号化データをシステムフォーマットへ格納する方法について説明する。
まず、本実施の形態に係る三次元データ(点群データ)符号化復号システムの構成を説明する。図1は、本実施の形態に係る三次元データ符号化復号システムの構成例を示す図である。図1に示すように、三次元データ符号化復号システムは、三次元データ符号化システム4601と、三次元データ復号システム4602と、センサ端末4603と、外部接続部4604とを含む。
三次元データ符号化システム4601は、三次元データである点群データを符号化することで符号化データ又は多重化データを生成する。なお、三次元データ符号化システム4601は、単一の装置により実現される三次元データ符号化装置であってもよいし、複数の装置により実現されるシステムであってもよい。また、三次元データ符号化装置は、三次元データ符号化システム4601に含まれる複数の処理部のうち一部を含んでもよい。
三次元データ符号化システム4601は、点群データ生成システム4611と、提示部4612と、符号化部4613と、多重化部4614と、入出力部4615と、制御部4616とを含む。点群データ生成システム4611は、センサ情報取得部4617と、点群データ生成部4618とを含む。
センサ情報取得部4617は、センサ端末4603からセンサ情報を取得し、センサ情報を点群データ生成部4618に出力する。点群データ生成部4618は、センサ情報から点群データを生成し、点群データを符号化部4613へ出力する。
提示部4612は、センサ情報又は点群データをユーザに提示する。例えば、提示部4612は、センサ情報又は点群データに基づく情報又は画像を表示する。
符号化部4613は、点群データを符号化(圧縮)し、得られた符号化データと、符号化過程において得られた制御情報と、その他の付加情報とを多重化部4614へ出力する。付加情報は、例えば、センサ情報を含む。
多重化部4614は、符号化部4613から入力された符号化データと、制御情報と、付加情報とを多重することで多重化データを生成する。多重化データのフォーマットは、例えば蓄積のためのファイルフォーマット、又は伝送のためのパケットフォーマットである。
入出力部4615(例えば、通信部又はインタフェース)は、多重化データを外部へ出力する。または、多重化データは、内部メモリ等の蓄積部に蓄積される。制御部4616(またはアプリ実行部)は、各処理部を制御する。つまり、制御部4616は、符号化及び多重化等の制御を行う。
なお、センサ情報が符号化部4613又は多重化部4614へ入力されてもよい。また、入出力部4615は、点群データ又は符号化データをそのまま外部へ出力してもよい。
三次元データ符号化システム4601から出力された伝送信号(多重化データ)は、外部接続部4604を介して、三次元データ復号システム4602に入力される。
三次元データ復号システム4602は、符号化データ又は多重化データを復号することで三次元データである点群データを生成する。なお、三次元データ復号システム4602は、単一の装置により実現される三次元データ復号装置であってもよいし、複数の装置により実現されるシステムであってもよい。また、三次元データ復号装置は、三次元データ復号システム4602に含まれる複数の処理部のうち一部を含んでもよい。
三次元データ復号システム4602は、センサ情報取得部4621と、入出力部4622と、逆多重化部4623と、復号部4624と、提示部4625と、ユーザインタフェース4626と、制御部4627とを含む。
センサ情報取得部4621は、センサ端末4603からセンサ情報を取得する。
入出力部4622は、伝送信号を取得し、伝送信号から多重化データ(ファイルフォーマット又はパケット)を復号し、多重化データを逆多重化部4623へ出力する。
逆多重化部4623は、多重化データから符号化データ、制御情報及び付加情報を取得し、符号化データ、制御情報及び付加情報を復号部4624へ出力する。
復号部4624は、符号化データを復号することで点群データを再構成する。
提示部4625は、点群データをユーザに提示する。例えば、提示部4625は、点群データに基づく情報又は画像を表示する。ユーザインタフェース4626は、ユーザの操作に基づく指示を取得する。制御部4627(またはアプリ実行部)は、各処理部を制御する。つまり、制御部4627は、逆多重化、復号及び提示等の制御を行う。
なお、入出力部4622は、点群データ又は符号化データをそのまま外部から取得してもよい。また、提示部4625は、センサ情報などの付加情報を取得し、付加情報に基づいた情報を提示してもよい。また、提示部4625は、ユーザインタフェース4626で取得されたユーザの指示に基づき、提示を行ってもよい。
センサ端末4603は、センサで得られた情報であるセンサ情報を生成する。センサ端末4603は、センサ又はカメラを搭載した端末であり、例えば、自動車などの移動体、飛行機などの飛行物体、携帯端末、又はカメラなどがある。
センサ端末4603で取得可能なセンサ情報は、例えば、(1)LIDAR、ミリ波レーダ、又は赤外線センサから得られる、センサ端末4603と対象物との距離、又は対象物の反射率、(2)複数の単眼カメラ画像又はステレオカメラ画像から得られるカメラと対象物との距離又は対象物の反射率等である。また、センサ情報は、センサの姿勢、向き、ジャイロ(角速度)、位置(GPS情報又は高度)、速度、又は加速度等を含んでもよい。また、センサ情報は、気温、気圧、湿度、又は磁気等を含んでもよい。
外部接続部4604は、集積回路(LSI又はIC)、外部蓄積部、インターネットを介したクラウドサーバとの通信、又は、放送等により実現される。
次に、点群データについて説明する。図2は、点群データの構成を示す図である。図3は、点群データの情報が記述されたデータファイルの構成例を示す図である。
点群データは、複数の点のデータを含む。各点のデータは、位置情報(三次元座標)、及びその位置情報に対する属性情報とを含む。この点が複数集まったものを点群と呼ぶ。例えば、点群は対象物(オブジェクト)の三次元形状を示す。
三次元座標等の位置情報(Position)をジオメトリ(geometry)と呼ぶこともある。また、各点のデータは、複数の属性種別の属性情報(attribute)を含んでもよい。属性種別は、例えば色又は反射率などである。
1つの位置情報に対して1つの属性情報が対応付けられてもよいし、1つの位置情報に対して複数の異なる属性種別を持つ属性情報が対応付けられてもよい。また、1つの位置情報に対して同じ属性種別の属性情報が複数対応付けられてもよい。
図3に示すデータファイルの構成例は、位置情報と属性情報とが1対1に対応する場合の例であり、点群データを構成するN個の点の位置情報と属性情報とを示している。
位置情報は、例えば、x、y、zの3軸の情報である。属性情報は、例えば、RGBの色情報である。代表的なデータファイルとしてplyファイルなどがある。
次に、点群データの種類について説明する。図4は、点群データの種類を示す図である。図4に示すように、点群データには、静的オブジェクトと、動的オブジェクトとがある。
静的オブジェクトは、任意の時間(ある時刻)の三次元点群データである。動的オブジェクトは、時間的に変化する三次元点群データである。以降、ある時刻の三次元点群データをPCCフレーム、又はフレームと呼ぶ。
オブジェクトは、通常の映像データのように、ある程度領域が制限されている点群であってもよいし、地図情報のように領域が制限されていない大規模点群であってもよい。
また、様々な密度の点群データがあり、疎な点群データと、密な点群データとが存在してもよい。
以下、各処理部の詳細について説明する。センサ情報は、LIDAR或いはレンジファインダなどの距離センサ、ステレオカメラ、又は、複数の単眼カメラの組合せなど様々な方法で取得される。点群データ生成部4618は、センサ情報取得部4617で得られたセンサ情報に基づき点群データを生成する。点群データ生成部4618は、点群データとして、位置情報を生成し、位置情報に、当該位置情報に対する属性情報を付加する。
点群データ生成部4618は、位置情報の生成又は属性情報の付加の際に、点群データを加工してもよい。例えば、点群データ生成部4618は、位置が重複する点群を削除することでデータ量を減らしてもよい。また、点群データ生成部4618は、位置情報を変換(位置シフト、回転又は正規化など)してもよいし、属性情報をレンダリングしてもよい。
なお、図1では、点群データ生成システム4611は、三次元データ符号化システム4601に含まれるが、三次元データ符号化システム4601の外部に独立して設けられてもよい。
符号化部4613は、点群データを予め規定された符号化方法に基づき符号化することで符号化データを生成する。符号化方法には大きく以下の2種類がある。一つ目は、位置情報を用いた符号化方法であり、この符号化方法を、以降、第1の符号化方法と記載する。二つ目は、ビデオコーデックを用いた符号化方法であり、この符号化方法を、以降、第2の符号化方法と記載する。
復号部4624は、符号化データを予め規定された符号化方法に基づき復号することで点群データを復号する。
多重化部4614は、符号化データを、既存の多重化方式を用いて多重化することで多重化データを生成する。生成された多重化データは、伝送又は蓄積される。多重化部4614は、PCC符号化データの他に、映像、音声、字幕、アプリケーション、ファイルなどの他のメディア、又は基準時刻情報を多重化する。また、多重化部4614は、さらに、センサ情報又は点群データに関連する属性情報を多重してもよい。
多重化方式又はファイルフォーマットとしては、ISOBMFF、ISOBMFFベースの伝送方式であるMPEG-DASH、MMT、MPEG-2 TS Systems、RMPなどがある。
逆多重化部4623は、多重化データからPCC符号化データ、その他のメディア、及び時刻情報などを抽出する。
入出力部4615は、多重化データを、放送又は通信など、伝送する媒体又は蓄積する媒体にあわせた方法を用いて伝送する。入出力部4615は、インターネット経由で他のデバイスと通信してもよいし、クラウドサーバなどの蓄積部と通信してもよい。
通信プロトコルとしては、http、ftp、TCP又はUDPなどが用いられる。PULL型の通信方式が用いられてもよいし、PUSH型の通信方式が用いられてもよい。
有線伝送及び無線伝送のいずれが用いられてもよい。有線伝送としては、Ethernet(登録商標)、USB、RS-232C、HDMI(登録商標)、又は同軸ケーブルなどが用いられる。無線伝送としては、無線LAN、Wi-Fi(登録商標)、Bluetooth(登録商標)又はミリ波などが用いられる。
また、放送方式としては、例えばDVB-T2、DVB-S2、DVB-C2、ATSC3.0、又はISDB-S3などが用いられる。
図5は、第1の符号化方法の符号化を行う符号化部4613の例である第1の符号化部4630の構成を示す図である。図6は、第1の符号化部4630のブロック図である。第1の符号化部4630は、点群データを第1の符号化方法で符号化することで符号化データ(符号化ストリーム)を生成する。この第1の符号化部4630は、位置情報符号化部4631と、属性情報符号化部4632と、付加情報符号化部4633と、多重化部4634とを含む。
第1の符号化部4630は、三次元構造を意識して符号化を行うという特徴を有する。また、第1の符号化部4630は、属性情報符号化部4632が、位置情報符号化部4631から得られる情報を用いて符号を行うという特徴を有する。第1の符号化方法は、GPCC(Geometry based PCC)とも呼ばれる。
点群データは、PLYファイルのようなPCC点群データ、又は、センサ情報から生成されたPCC点群データであり、位置情報(Position)、属性情報(Attribute)、及びその他の付加情報(MetaData)を含む。位置情報は位置情報符号化部4631に入力され、属性情報は属性情報符号化部4632に入力され、付加情報は付加情報符号化部4633に入力される。
位置情報符号化部4631は、位置情報を符号化することで符号化データである符号化位置情報(Compressed Geometry)を生成する。例えば、位置情報符号化部4631は、8分木等のN分木構造を用いて位置情報を符号化する。具体的には、8分木では、対象空間が8個のノード(サブ空間)に分割され、各ノードに点群が含まれるか否かを示す8ビットの情報(オキュパンシー符号)が生成される。また、点群が含まれるノードは、さらに、8個のノードに分割され、当該8個のノードの各々に点群が含まれるか否かを示す8ビットの情報が生成される。この処理が、予め定められた階層又はノードに含まれる点群の数の閾値以下になるまで繰り返される。
属性情報符号化部4632は、位置情報符号化部4631で生成された構成情報を用いて符号化することで符号化データである符号化属性情報(Compressed Attribute)を生成する。例えば、属性情報符号化部4632は、位置情報符号化部4631で生成された8分木構造に基づき、処理対象の対象点(対象ノード)の符号化において参照する参照点(参照ノード)を決定する。例えば、属性情報符号化部4632は、周辺ノード又は隣接ノードのうち、8分木における親ノードが対象ノードと同一のノードを参照する。なお、参照関係の決定方法はこれに限らない。
また、属性情報の符号化処理は、量子化処理、予測処理、及び算術符号化処理のうち少なくとも一つを含んでもよい。この場合、参照とは、属性情報の予測値の算出に参照ノードを用いること、又は、符号化のパラメータの決定に参照ノードの状態(例えば、参照ノードに点群が含まれる否かを示す占有情報)を用いること、である。例えば、符号化のパラメータとは、量子化処理における量子化パラメータ、又は算術符号化におけるコンテキスト等である。
付加情報符号化部4633は、付加情報のうち、圧縮可能なデータを符号化することで符号化データである符号化付加情報(Compressed MetaData)を生成する。
多重化部4634は、符号化位置情報、符号化属性情報、符号化付加情報及びその他の付加情報を多重化することで符号化データである符号化ストリーム(Compressed Stream)を生成する。生成された符号化ストリームは、図示しないシステムレイヤの処理部へ出力される。
次に、第1の符号化方法の復号を行う復号部4624の例である第1の復号部4640について説明する。図7は、第1の復号部4640の構成を示す図である。図8は、第1の復号部4640のブロック図である。第1の復号部4640は、第1の符号化方法で符号化された符号化データ(符号化ストリーム)を、第1の符号化方法で復号することで点群データを生成する。この第1の復号部4640は、逆多重化部4641と、位置情報復号部4642と、属性情報復号部4643と、付加情報復号部4644とを含む。
図示しないシステムレイヤの処理部から符号化データである符号化ストリーム(Compressed Stream)が第1の復号部4640に入力される。
逆多重化部4641は、符号化データから、符号化位置情報(Compressed Geometry)、符号化属性情報(Compressed Attribute)、符号化付加情報(Compressed MetaData)、及び、その他の付加情報を分離する。
位置情報復号部4642は、符号化位置情報を復号することで位置情報を生成する。例えば、位置情報復号部4642は、8分木等のN分木構造で表される符号化位置情報から三次元座標で表される点群の位置情報を復元する。
属性情報復号部4643は、位置情報復号部4642で生成された構成情報に基づき、符号化属性情報を復号する。例えば、属性情報復号部4643は、位置情報復号部4642で得られた8分木構造に基づき、処理対象の対象点(対象ノード)の復号において参照する参照点(参照ノード)を決定する。例えば、属性情報復号部4643は、周辺ノード又は隣接ノードのうち、8分木における親ノードが対象ノードと同一のノードを参照する。なお、参照関係の決定方法はこれに限らない。
また、属性情報の復号処理は、逆量子化処理、予測処理、及び算術復号処理のうち少なくとも一つを含んでもよい。この場合、参照とは、属性情報の予測値の算出に参照ノードを用いること、又は、復号のパラメータの決定に参照ノードの状態(例えば、参照ノードに点群が含まれる否かを示す占有情報)を用いること、である。例えば、復号のパラメータとは、逆量子化処理における量子化パラメータ、又は算術復号におけるコンテキスト等である。
付加情報復号部4644は、符号化付加情報を復号することで付加情報を生成する。また、第1の復号部4640は、位置情報及び属性情報の復号処理に必要な付加情報を復号時に使用し、アプリケーションに必要な付加情報を外部に出力する。
次に、位置情報符号化部の構成例を説明する。図9は、本実施の形態に係る位置情報符号化部2700のブロック図である。位置情報符号化部2700は、8分木生成部2701と、幾何情報算出部2702と、符号化テーブル選択部2703と、エントロピー符号化部2704とを備える。
8分木生成部2701は、入力された位置情報から、例えば8分木を生成し、8分木の各ノードのオキュパンシー符号を生成する。幾何情報算出部2702は、対象ノードの隣接ノードが占有ノードか否かを示す情報を取得する。例えば、幾何情報算出部2702は、対象ノードが所属する親ノードのオキュパンシー符号から隣接ノードの占有情報(隣接ノードが占有ノードであるか否かを示す情報)を算出する。また、幾何情報算出部2702は、符号化済みのノードをリストに保存しておき、そのリスト内から隣接ノードを探索してもよい。なお、幾何情報算出部2702は、対象ノードの親ノード内の位置に応じて隣接ノードを切替えてもよい。
符号化テーブル選択部2703は、幾何情報算出部2702で算出された隣接ノードの占有情報を用いて対象ノードのエントロピー符号化に用いる符号化テーブルを選択する。例えば、符号化テーブル選択部2703は、隣接ノードの占有情報を用いてビット列を生成し、そのビット列から生成されるインデックス番号の符号化テーブルを選択してもよい。
エントロピー符号化部2704は、選択されたインデックス番号の符号化テーブルを用いて対象ノードのオキュパンシー符号にエントロピー符号化を行うことで符号化位置情報及びメタデータを生成する。エントロピー符号化部2704は、選択された符号化テーブルを示す情報を符号化位置情報に付加してもよい。
以下、8分木表現と位置情報のスキャン順について説明する。位置情報(位置データ)は8分木構造に変換(8分木化)された後、符号化される。8分木構造はノードとリーフとで構成される。各ノードは8つのノード又はリーフを持ち、各リーフはボクセル(VXL)情報を持つ。図10は、複数のボクセルを含む位置情報の構造例を示す図である。図11は、図10に示す位置情報を8分木構造に変換した例を示す図である。ここで、図11に示すリーフのうち、リーフ1、2、3はそれぞれ図10に示すボクセルVXL1、VXL2、VXL3を表し、点群を含むVXL(以下、有効VXL)を表現している。
具体的には、ノード1は、図10の位置情報を包含する全体空間に対応する。ノード1に対応する全体空間は8つのノードに分割され、8つのノードのうち、有効VXLを含むノードが、さらに8つのノードまたはリーフに分割され、この処理が木構造の階層分繰り返される。ここで、各ノードはサブ空間に対応し、ノード情報として分割後のどの位置に次のノードまたはリーフを持つかを示す情報(オキュパンシー符号)を持つ。また、最下層のブロックはリーフに設定され、リーフ情報としてリーフ内に含まれる点群数などが保持される。
次に、位置情報復号部の構成例を説明する。図12は、本実施の形態に係る位置情報復号部2710のブロック図である。位置情報復号部2710は、8分木生成部2711と、幾何情報算出部2712と、符号化テーブル選択部2713と、エントロピー復号部2714とを備える。
8分木生成部2711は、ビットストリームのヘッダ情報又はメタデータ等を用いて、ある空間(ノード)の8分木を生成する。例えば、8分木生成部2711は、ヘッダ情報に付加されたある空間のx軸、y軸、z軸方向の大きさを用いて大空間(ルートノード)を生成し、その空間をx軸、y軸、z軸方向にそれぞれ2分割することで8個の小空間A(ノードA0~A7)を生成することで8分木を生成する。また、対象ノードとしてノードA0~A7が順に設定される。
幾何情報算出部2712は、対象ノードの隣接ノードが占有ノードであるか否かを示す占有情報を取得する。例えば、幾何情報算出部2712は、対象ノードが所属する親ノードのオキュパンシー符号から隣接ノードの占有情報を算出する。また、幾何情報算出部2712は、復号済みのノードをリストに保存しておき、そのリスト内から隣接ノードを探索してもよい。なお、幾何情報算出部2712は、対象ノードの親ノード内の位置に応じて隣接ノードを切替えてもよい。
符号化テーブル選択部2713は、幾何情報算出部2712で算出された隣接ノードの占有情報を用いて対象ノードのエントロピー復号に用いる符号化テーブル(復号テーブル)を選択する。例えば、符号化テーブル選択部2713は、隣接ノードの占有情報を用いてビット列を生成し、そのビット列から生成されるインデックス番号の符号化テーブルを選択してもよい。
エントロピー復号部2714は、選択された符号化テーブルを用いて対象ノードのオキュパンシー符号をエントロピー復号することで、位置情報を生成する。なお、エントロピー復号部2714は、選択された符号化テーブルの情報をビットストリームから復号して取得し、当該情報で示される符号化テーブルを用いて、対象ノードのオキュパンシー符号をエントロピー復号してもよい。
以下、属性情報符号化部及び属性情報復号部の構成を説明する。図13は属性情報符号化部A100の構成例を示すブロック図である。属性情報符号化部は異なる符号化方法を実行する複数の符号化部を含んでもよい。例えば、属性情報符号化部は、下記の2方式をユースケースに応じて切替えて用いてもよい。
属性情報符号化部A100は、LoD属性情報符号化部A101と、変換属性情報符号化部A102とを含む。LoD属性情報符号化部A101は、三次元点の位置情報を用いて各三次元点を複数階層に分類し、各階層に属する三次元点の属性情報を予測して、その予測残差を符号化する。ここで、分類した各階層をLoD(Level of Detail)と呼ぶ。
変換属性情報符号化部A102は、RAHT(Region Adaptive Hierarchical Transform)を用いて属性情報を符号化する。具体的には、変換属性情報符号化部A102は、三次元点の位置情報を元に各属性情報に対してRAHTまたはHaar変換を適用することで、各階層の高周波成分および低周波数成分を生成し、それらの値を量子化及びエントロピー符号化等を用いて符号化する。
図14は属性情報復号部A110の構成例を示すブロック図である。属性情報復号部は異なる復号方法を実行する複数の復号部を含んでもよい。例えば、属性情報復号部は、下記の2方式をヘッダやメタデータに含まれる情報を元に切替えて復号してもよい。
属性情報復号部A110は、LoD属性情報復号部A111と、変換属性情報復号部A112とを含む。LoD属性情報復号部A111は、三次元点の位置情報を用いて各三次元点を複数階層に分類し、各階層に属する三次元点の属性情報を予測しながら属性値を復号する。
変換属性情報復号部A112は、RAHT(Region Adaptive Hierarchical Transform)を用いて属性情報を復号する。具体的には、変換属性情報復号部A112は、三次元点の位置情報を元に各属性値の高周波成分および低周波成分に対して、inverse RAHTまたはinverse Haar変換を適用することで属性値を復号する。
図15は、LoD属性情報符号化部A101の一例である属性情報符号化部3140の構成を示すブロック図である。
属性情報符号化部3140は、LoD生成部3141と、周囲探索部3142と、予測部3143と、予測残差算出部3144と、量子化部3145と、算術符号化部3146と、逆量子化部3147と、復号値生成部3148と、メモリ3149と、を含む。
LoD生成部3141は、三次元点の位置情報を用いてLoDを生成する。
周囲探索部3142は、LoD生成部3141によるLoDの生成結果と各三次元点間の距離を示す距離情報とを用いて、各三次元点に隣接する近隣三次元点を探索する。
予測部3143は、符号化対象の対象三次元点の属性情報の予測値を生成する。
予測残差算出部3144は、予測部3143により生成された属性情報の予測値の予測残差を算出(生成)する。
量子化部3145は、予測残差算出部3144により算出された属性情報の予測残差を量子化する。
算術符号化部3146は、量子化部3145により量子化された後の予測残差を算術符号化する。算術符号化部3146は、算術符号化した予測残差を含むビットストリームを、例えば、三次元データ復号装置に出力する。
なお、予測残差は、算術符号化部3146によって算術符号化される前に、例えば量子化部3145によって二値化されてもよい。
また、例えば、算術符号化部3146は、算術符号化に用いる符号化テーブルを算術符号化前に初期化してもよい。算術符号化部3146は、算術符号化に用いる符号化テーブルを、層毎に初期化してもよい。また、算術符号化部3146は、符号化テーブルを初期化した層の位置を示す情報をビットストリームに含めて出力してもよい。
逆量子化部3147は、量子化部3145によって量子化された後の予測残差を逆量子化する。
復号値生成部3148は、予測部3143により生成された属性情報の予測値と、逆量子化部3147により逆量子化された後の予測残差とを加算することで復号値を生成する。
メモリ3149は、復号値生成部3148により復号された各三次元点の属性情報の復号値を記憶するメモリである。例えば、予測部3143は、まだ符号化していない三次元点の予測値を生成する場合に、メモリ3149に記憶されている各三次元点の属性情報の復号値を利用して予測値を生成する。
図16は、変換属性情報符号化部A102の一例である属性情報符号化部6600のブロック図である。属性情報符号化部6600は、ソート部6601と、Haar変換部6602と、量子化部6603と、逆量子化部6604と、逆Haar変換部6605と、メモリ6606と、算術符号化部6607とを備える。
ソート部6601は、三次元点の位置情報を用いてモートン符号を生成し、複数の三次元点をモートン符号順にソートする。Haar変換部6602は、属性情報にHaar変換を適用することで符号化係数を生成する。量子化部6603は、属性情報の符号化係数を量子化する。
逆量子化部6604は、量子化後の符号化係数を逆量子化する。逆Haar変換部6605は、符号化係数に逆Haar変換を適用する。メモリ6606は、復号済みの複数の三次元点の属性情報の値を記憶する。例えば、メモリ6606に記憶される復号済みの三次元点の属性情報は、符号化されていない三次元点の予測等に利用されてもよい。
算術符号化部6607は、量子化後の符号化係数からZeroCntを算出し、ZeroCntを算術符号化する。また、算術符号化部6607は、量子化後の非ゼロの符号化係数を算術符号化する。算術符号化部6607は、符号化係数を算術符号化前に二値化してもよい。また、算術符号化部6607は、各種ヘッダ情報を生成及び符号化してもよい。
図17は、LoD属性情報復号部A111の一例である属性情報復号部3150の構成を示すブロック図である。
属性情報復号部3150は、LoD生成部3151と、周囲探索部3152と、予測部3153と、算術復号部3154と、逆量子化部3155と、復号値生成部3156と、メモリ3157と、を含む。
LoD生成部3151は、位置情報復号部(図17には不図示)により復号された三次元点の位置情報を用いてLoDを生成する。
周囲探索部3152は、LoD生成部3151によるLoDの生成結果と各三次元点間の距離を示す距離情報とを用いて、各三次元点に隣接する近隣三次元点を探索する。
予測部3153は、復号対象の対象三次元点の属性情報の予測値を生成する。
算術復号部3154は、図15に示す属性情報符号化部3140より取得したビットストリーム内の予測残差を算術復号する。なお、算術復号部3154は、算術復号に用いる復号テーブルを初期化してもよい。算術復号部3154は、図15に示す算術符号化部3146が符号化処理を行った層について、算術復号に用いる復号テーブルを初期化する。算術復号部3154は、算術復号に用いる復号テーブルを層毎に初期化してもよい。また、算術復号部3154は、ビットストリームに含まれる、符号化テーブルを初期化した層の位置を示す情報に基づいて、復号テーブルを初期化してもよい。
逆量子化部3155は、算術復号部3154が算術復号した予測残差を逆量子化する。
復号値生成部3156は、予測部3153により生成された予測値と逆量子化部3155により逆量子化された後の予測残差とを加算して復号値を生成する。復号値生成部3156は、復号された属性情報データを他の装置へ出力する。
メモリ3157は、復号値生成部3156により復号された各三次元点の属性情報の復号値を記憶するメモリである。例えば、予測部3153は、まだ復号していない三次元点の予測値を生成する場合に、メモリ3157に記憶されている各三次元点の属性情報の復号値を利用して予測値を生成する。
図18は、変換属性情報復号部A112の一例である属性情報復号部6610のブロック図である。属性情報復号部6610は、算術復号部6611と、逆量子化部6612と、逆Haar変換部6613と、メモリ6614とを備える。
算術復号部6611は、ビットストリームに含まれるZeroCntと符号化係数を算術復号する。なお、算術復号部6611は、各種ヘッダ情報を復号してもよい。
逆量子化部6612は、算術復号した符号化係数を逆量子化する。逆Haar変換部6613は、逆量子化後の符号化係数に逆Haar変換を適用する。メモリ6614は、復号済みの複数の三次元点の属性情報の値を記憶する。例えば、メモリ6614に記憶される復号済みの三次元点の属性情報は、復号されていない三次元点の予測に利用されてもよい。
次に、第2の符号化方法の符号化を行う符号化部4613の例である第2の符号化部4650について説明する。図19は、第2の符号化部4650の構成を示す図である。図20は、第2の符号化部4650のブロック図である。
第2の符号化部4650は、点群データを第2の符号化方法で符号化することで符号化データ(符号化ストリーム)を生成する。この第2の符号化部4650は、付加情報生成部4651と、位置画像生成部4652と、属性画像生成部4653と、映像符号化部4654と、付加情報符号化部4655と、多重化部4656とを含む。
第2の符号化部4650は、三次元構造を二次元画像に投影することで位置画像及び属性画像を生成し、生成した位置画像及び属性画像を既存の映像符号化方式を用いて符号化するという特徴を有する。第2の符号化方法は、VPCC(Video based PCC)とも呼ばれる。
点群データは、PLYファイルのようなPCC点群データ、又は、センサ情報から生成されたPCC点群データであり、位置情報(Position)、属性情報(Attribute)、及びその他の付加情報MetaData)を含む。
付加情報生成部4651は、三次元構造を二次元画像に投影することで、複数の二次元画像のマップ情報を生成する。
位置画像生成部4652は、位置情報と、付加情報生成部4651で生成されたマップ情報とに基づき、位置画像(Geometry Image)を生成する。この位置画像は、例えば、画素値として距離(Depth)が示される距離画像である。なお、この距離画像は、一つの視点から複数の点群を見た画像(一つの二次元平面に複数の点群を投影した画像)であってもよいし、複数の視点から複数の点群を見た複数の画像であってもよいし、これらの複数の画像を統合した一つの画像であってもよい。
属性画像生成部4653は、属性情報と、付加情報生成部4651で生成されたマップ情報とに基づき、属性画像を生成する。この属性画像は、例えば、画素値として属性情報(例えば色(RGB))が示される画像である。なお、この画像は、一つの視点から複数の点群を見た画像(一つの二次元平面に複数の点群を投影した画像)であってもよいし、複数の視点から複数の点群を見た複数の画像であってもよいし、これらの複数の画像を統合した一つの画像であってもよい。
映像符号化部4654は、位置画像及び属性画像を、映像符号化方式を用いて符号化することで、符号化データである符号化位置画像(Compressed Geometry Image)及び符号化属性画像(Compressed Attribute Image)を生成する。なお、映像符号化方式として、公知の任意の符号化方法が用いられてよい。例えば、映像符号化方式は、AVC又はHEVC等である。
付加情報符号化部4655は、点群データに含まれる付加情報、及びマップ情報等を符号化することで符号化付加情報(Compressed MetaData)を生成する。
多重化部4656は、符号化位置画像、符号化属性画像、符号化付加情報、及び、その他の付加情報を多重化することで符号化データである符号化ストリーム(Compressed Stream)を生成する。生成された符号化ストリームは、図示しないシステムレイヤの処理部へ出力される。
次に、第2の符号化方法の復号を行う復号部4624の例である第2の復号部4660について説明する。図21は、第2の復号部4660の構成を示す図である。図22は、第2の復号部4660のブロック図である。第2の復号部4660は、第2の符号化方法で符号化された符号化データ(符号化ストリーム)を、第2の符号化方法で復号することで点群データを生成する。この第2の復号部4660は、逆多重化部4661と、映像復号部4662と、付加情報復号部4663と、位置情報生成部4664と、属性情報生成部4665とを含む。
図示しないシステムレイヤの処理部から符号化データである符号化ストリーム(Compressed Stream)が第2の復号部4660に入力される。
逆多重化部4661は、符号化データから、符号化位置画像(Compressed Geometry Image)、符号化属性画像(Compressed Attribute Image)、符号化付加情報(Compressed MetaData)、及び、その他の付加情報を分離する。
映像復号部4662は、符号化位置画像及び符号化属性画像を、映像符号化方式を用いて復号することで、位置画像及び属性画像を生成する。なお、映像符号化方式として、公知の任意の符号化方式が用いられてよい。例えば、映像符号化方式は、AVC又はHEVC等である。
付加情報復号部4663は、符号化付加情報を復号することで、マップ情報等を含む付加情報を生成する。
位置情報生成部4664は、位置画像とマップ情報とを用いて位置情報を生成する。属性情報生成部4665は、属性画像とマップ情報とを用いて属性情報を生成する。
第2の復号部4660は、復号に必要な付加情報を復号時に使用し、アプリケーションに必要な付加情報を外部に出力する。
以下、PCC符号化方式における課題を説明する。図23は、PCC符号化データに関わるプロトコルスタックを示す図である。図23には、PCC符号化データに、映像(例えばHEVC)又は音声などの他のメディアのデータを多重し、伝送又は蓄積する例を示す。
多重化方式及びファイルフォーマットは、様々な符号化データを多重し、伝送又は蓄積するための機能を有している。符号化データを伝送又は蓄積するためには、符号化データを多重化方式のフォーマットに変換しなければならない。例えば、HEVCでは、NALユニットと呼ばれるデータ構造に符号化データを格納し、NALユニットをISOBMFFに格納する技術が規定されている。
一方、現在、点群データの符号化方法として第1の符号化方法(Codec1)、及び第2の符号化方法(Codec2)が検討されているが、符号化データの構成、及び符号化データをシステムフォーマットへ格納する方法が定義されておらず、このままでは符号化部におけるMUX処理(多重化)、伝送及び蓄積ができないという課題がある。
なお、以降において、特定の符号化方法の記載がなければ、第1の符号化方法、及び第2の符号化方法のいずれかを示すものとする。
(実施の形態2)
本実施の形態では、上述した第1の符号化部4630、又は第2の符号化部4650で生成される符号化データ(位置情報(Geometry)、属性情報(Attribute)、付加情報(Metadata))の種別、及び付加情報(メタデータ)の生成方法、及び多重化部における多重処理について説明する。なお、付加情報(メタデータ)は、パラメータセット、又は制御情報と表記することもある。
本実施の形態では、図4で説明した動的オブジェクト(時間的に変化する三次元点群データ)を例に説明するが、静的オブジェクト(任意の時刻の三次元点群データ)の場合でも同様の方法を用いてもよい。
図24は、本実施の形態に係る三次元データ符号化装置に含まれる符号化部4801及び多重化部4802の構成を示す図である。符号化部4801は、例えば、上述した第1の符号化部4630又は第2の符号化部4650に対応する。多重化部4802は、上述した多重化部4634又は4656に対応する。
符号化部4801は、複数のPCC(Point Cloud Compression)フレームの点群データを符号化し、複数の位置情報、属性情報及び付加情報の符号化データ(Multiple Compressed Data)を生成する。
多重化部4802は、複数のデータ種別(位置情報、属性情報及び付加情報)のデータをNALユニット化することで、データを復号装置におけるデータアクセスを考慮したデータ構成に変換する。
図25は、符号化部4801で生成される符号化データの構成例を示す図である。図中の矢印は符号化データの復号に係る依存関係を示しており、矢印の元は矢印の先のデータに依存している。つまり、復号装置は、矢印の先のデータを復号し、その復号したデータを用いて矢印の元のデータを復号する。言い換えると、依存するとは、依存元のデータの処理(符号化又は復号等)において依存先のデータが参照(使用)されることを意味する。
まず、位置情報の符号化データの生成処理について説明する。符号化部4801は、各フレームの位置情報を符号化することで、フレーム毎の符号化位置データ(Compressed Geometry Data)を生成する。また、符号化位置データをG(i)で表す。iはフレーム番号、又はフレームの時刻等を示す。
また、符号化部4801は、各フレームに対応する位置パラメータセット(GPS(i))を生成する。位置パラメータセットは、符号化位置データの復号に使用することが可能なパラメータを含む。また、フレーム毎の符号化位置データは、対応する位置パラメータセットに依存する。
また、複数フレームから成る符号化位置データを位置シーケンス(Geometry Sequence)と定義する。符号化部4801は、位置シーケンス内の複数のフレームに対する復号処理に共通に使用するパラメータを格納する位置シーケンスパラメータセット(Geometry Sequence PS:位置SPSとも記す)を生成する。位置シーケンスは、位置SPSに依存する。
次に、属性情報の符号化データの生成処理について説明する。符号化部4801は、各フレームの属性情報を符号化することで、フレーム毎の符号化属性データ(Compressed Attribute Data)を生成する。また、符号化属性データをA(i)で表す。また、図25では、属性Xと属性Yとが存在する例を示しており、属性Xの符号化属性データをAX(i)で表し、属性Yの符号化属性データをAY(i)で表す。
また、符号化部4801は、各フレームに対応する属性パラメータセット(APS(i))を生成する。また、属性Xの属性パラメータセットをAXPS(i)で表し、属性Yの属性パラメータセットをAYPS(i)で表す。属性パラメータセットは、符号化属性情報の復号に使用することが可能なパラメータを含む。符号化属性データは、対応する属性パラメータセットに依存する。
また、複数フレームから成る符号化属性データを属性シーケンス(Attribute Sequence)と定義する。符号化部4801は、属性シーケンス内の複数のフレームに対する復号処理に共通に使用するパラメータを格納する属性シーケンスパラメータセット(Attribute Sequence PS:属性SPSとも記す)を生成する。属性シーケンスは、属性SPSに依存する。
また、第1の符号化方法では、符号化属性データは符号化位置データに依存する。
また、図25では2種類の属性情報(属性Xと属性Y)が存在する場合の例を示している。2種類の属性情報がある場合は、例えば、2つの符号化部により、それぞれのデータ及びメタデータが生成される。また、例えば、属性情報の種類毎に属性シーケンスが定義され、属性情報の種類毎に属性SPSが生成される。
なお、図25では、位置情報が1種類、属性情報が2種類である例を示しているが、これに限らず、属性情報は1種類であってもよいし、3種類以上であってもよい。この場合も、同様の方法で符号化データを生成できる。また、属性情報を持たない点群データの場合は、属性情報はなくてもよい。その場合は、符号化部4801は、属性情報に関連するパラメータセットを生成しなくてもよい。
次に、付加情報(メタデータ)の生成処理について説明する。符号化部4801は、PCCストリーム全体のパラメータセットであるPCCストリームPS(PCC Stream PS:ストリームPSとも記す)を生成する。符号化部4801は、ストリームPSに、1又は複数の位置シーケンス及び1又は複数の属性シーケンスに対する復号処理に共通に使用することができるパラメータを格納する。例えば、ストリームPSには、点群データのコーデックを示す識別情報、及び符号化に使用されたアルゴリズムを示す情報等が含まれる。位置シーケンス及び属性シーケンスはストリームPSに依存する。
次に、アクセスユニット及びGOFについて説明する。本実施の形態では、新たにアクセスユニット(Access Unit:AU)、及びGOF(Group of Frame)の考え方を導入する。
アクセスユニットは、復号時にデータにアクセスするため基本単位であり、1つ以上のデータ及び1つ以上のメタデータで構成される。例えば、アクセスユニットは、同一時刻の位置情報と1又は複数の属性情報とで構成される。GOFは、ランダムアクセス単位であり、1つ以上のアクセスユニットで構成される。
符号化部4801は、アクセスユニットの先頭を示す識別情報として、アクセスユニットヘッダ(AU Header)を生成する。符号化部4801は、アクセスユニットヘッダに、アクセスユニットに係るパラメータを格納する。例えば、アクセスユニットヘッダは、アクセスユニットに含まれる符号化データの構成又は情報を含む。また、アクセスユニットヘッダは、アクセスユニットに含まれるデータに共通に用いられるパラメータ、例えば、符号化データの復号に係るパラメータなどを含む。
なお、符号化部4801は、アクセスユニットヘッダの代わりに、アクセスユニットに係るパラメータを含まないアクセスユニットデリミタを生成してもよい。このアクセスユニットデリミタは、アクセスユニットの先頭を示す識別情報として用いられる。復号装置は、アクセスユニットヘッダ又はアクセスユニットデリミタを検出することにより、アクセスユニットの先頭を識別する。
次に、GOF先頭の識別情報の生成について説明する。符号化部4801は、GOFの先頭を示す識別情報として、GOFヘッダ(GOF Header)を生成する。符号化部4801は、GOFヘッダに、GOFに係るパラメータを格納する。例えば、GOFヘッダは、GOFに含まれる符号化データの構成又は情報を含む。また、GOFヘッダは、GOFに含まれるデータに共通に用いられるパラメータ、例えば、符号化データの復号に係るパラメータなどを含む。
なお、符号化部4801は、GOFヘッダの代わりに、GOFに係るパラメータを含まないGOFデリミタを生成してもよい。このGOFデリミタは、GOFの先頭を示す識別情報として用いられる。復号装置は、GOFヘッダ又はGOFデリミタを検出することにより、GOFの先頭を識別する。
PCC符号化データにおいて、例えば、アクセスユニットはPCCフレーム単位であると定義される。復号装置は、アクセスユニット先頭の識別情報に基づき、PCCフレームにアクセスする。
また、例えば、GOFは1つのランダムアクセス単位であると定義される。復号装置は、GOF先頭の識別情報に基づき、ランダムアクセス単位にアクセスする。例えば、PCCフレームが互いに依存関係がなく、単独で復号可能であれば、PCCフレームをランダムアクセス単位と定義してもよい。
なお、1つのアクセスユニットに2つ以上のPCCフレームが割り当てられてもよいし、1つのGOFに複数のランダムアクセス単位が割り当てられてもよい。
また、符号化部4801は、上記以外のパラメータセット又はメタデータを定義し、生成してもよい。例えば、符号化部4801は、復号時に必ずしも用いない可能性のあるパラメータ(オプションのパラメータ)を格納するSEI(Supplemental Enhancement Information)を生成してもよい。
次に、符号化データの構成、及び符号化データのNALユニットへの格納方法を説明する。
例えば、符号化データの種類毎にデータフォーマットが規定される。図26は、符号化データ及びNALユニットの例を示す図である。
例えば、図26に示すように符号化データは、ヘッダとペイロードとを含む。なお、符号化データは、符号化データ、ヘッダ又はペイロードの長さ(データ量)を示す長さ情報を含んでもよい。また、符号化データは、ヘッダを含まなくてもよい。
ヘッダは、例えば、データを特定するための識別情報を含む。この識別情報は、例えば、データ種別又はフレーム番号を示す。
ヘッダは、例えば、参照関係を示す識別情報を含む。この識別情報は、例えば、データ間に依存関係がある場合にヘッダに格納され、参照元から参照先を参照するための情報である。例えば、参照先のヘッダには、当該データを特定するための識別情報が含まれる。参照元のヘッダには、参照先を示す識別情報が含まれる。
なお、他の情報から参照先又は参照元を識別可能又は導出可能である場合は、データを特定するための識別情報、又は参照関係を示す識別情報を省略してもよい。
多重化部4802は、符号化データを、NALユニットのペイロードに格納する。NALユニットヘッダには、符号化データの識別情報であるpcc_nal_unit_typeが含まれる。図27は、pcc_nal_unit_typeのセマンティクスの例を示す図である。
図27に示すように、pcc_codec_typeがコーデック1(Codec1:第1の符号化方法)である場合、pcc_nal_unit_typeの値0~10は、コーデック1における、符号化位置データ(Geometry)、符号化属性Xデータ(AttributeX)、符号化属性Yデータ(AttributeY)、位置PS(Geom.PS)、属性XPS(AttrX.PS)、属性YPS(AttrX.PS)、位置SPS(Geometry Sequence PS)、属性XSPS(AttributeX Sequence PS)、属性YSPS(AttributeY Sequence PS)、AUヘッダ(AU Header)、GOFヘッダ(GOF Header)に割り当てられる。また、値11以降は、コーデック1の予備に割り当てられる。
pcc_codec_typeがコーデック2(Codec2:第2の符号化方法)である場合、pcc_nal_unit_typeの値0~2は、コーデックのデータA(DataA)、メタデータA(MetaDataA)、メタデータB(MetaDataB)に割り当てられる。また、値3以降は、コーデック2の予備に割り当てられる。
(実施の形態3)
HEVC符号化では復号装置における並列処理を可能とするために、スライス又はタイルといったデータ分割のツールがあるが、PCC(Point Cloud Compression)符号化ではまだない。
PCCでは、並列処理、圧縮効率、及び圧縮アルゴリズムによって、様々なデータ分割方法が考えられる。ここでは、スライス及びタイルの定義、データ構造及び送受信方法について説明する。
図28は、本実施の形態に係る三次元データ符号化装置に含まれる第1の符号化部4910の構成を示すブロック図である。第1の符号化部4910は、点群データを第1の符号化方法(GPCC(Geometry based PCC))で符号化することで符号化データ(符号化ストリーム)を生成する。この第1の符号化部4910は、分割部4911と、複数の位置情報符号化部4912と、複数の属性情報符号化部4913と、付加情報符号化部4914と、多重化部4915とを含む。
分割部4911は、点群データを分割することで複数の分割データを生成する。具体的には、分割部4911は、点群データの空間を複数のサブ空間に分割することで複数の分割データを生成する。ここでサブ空間とは、タイル及びスライスの一方、又はタイル及びスライスの組み合わせである。より具体的には、点群データは、位置情報、属性情報、及び付加情報を含む。分割部4911は、位置情報を複数の分割位置情報に分割し、属性情報を複数の分割属性情報に分割する。また、分割部4911は、分割に関する付加情報を生成する。
複数の位置情報符号化部4912は、複数の分割位置情報を符号化することで複数の符号化位置情報を生成する。例えば、複数の位置情報符号化部4912は、複数の分割位置情報を並列処理する。
複数の属性情報符号化部4913は、複数の分割属性情報を符号化することで複数の符号化属性情報を生成する。例えば、複数の属性情報符号化部4913は、複数の分割属性情報を並列処理する。
付加情報符号化部4914は、点群データに含まれる付加情報と、分割部4911で分割時に生成された、データ分割に関する付加情報とを符号化することで符号化付加情報を生成する。
多重化部4915は、複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を多重化することで符号化データ(符号化ストリーム)を生成し、生成した符号化データを送出する。また、符号化付加情報は復号時に使用される。
なお、図28では、位置情報符号化部4912及び属性情報符号化部4913の数がそれぞれ2つの例を示しているが、位置情報符号化部4912及び属性情報符号化部4913の数は、それぞれ1つであってもよいし、3つ以上であってもよい。また、複数の分割データは、CPU内の複数コアのように同一チップ内で並列処理されてもよいし、複数のチップのコアで並列処理されてもよいし、複数チップの複数コアで並列処理されてもよい。
図29は、第1の復号部4920の構成を示すブロック図である。第1の復号部4920は、点群データが第1の符号化方法(GPCC)で符号化されることで生成された符号化データ(符号化ストリーム)を復号することで点群データを復元する。この第1の復号部4920は、逆多重化部4921と、複数の位置情報復号部4922と、複数の属性情報復号部4923と、付加情報復号部4924と、結合部4925とを含む。
逆多重化部4921は、符号化データ(符号化ストリーム)を逆多重化することで複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を生成する。
複数の位置情報復号部4922は、複数の符号化位置情報を復号することで複数の分割位置情報を生成する。例えば、複数の位置情報復号部4922は、複数の符号化位置情報を並列処理する。
複数の属性情報復号部4923は、複数の符号化属性情報を復号することで複数の分割属性情報を生成する。例えば、複数の属性情報復号部4923は、複数の符号化属性情報を並列処理する。
複数の付加情報復号部4924は、符号化付加情報を復号することで付加情報を生成する。
結合部4925は、付加情報を用いて複数の分割位置情報を結合することで位置情報を生成する。結合部4925は、付加情報を用いて複数の分割属性情報を結合することで属性情報を生成する。
なお、図29では、位置情報復号部4922及び属性情報復号部4923の数がそれぞれ2つの例を示しているが、位置情報復号部4922及び属性情報復号部4923の数は、それぞれ1つであってもよし、3つ以上であってもよい。また、複数の分割データは、CPU内の複数コアのように同一チップ内で並列処理されてもよいし、複数のチップのコアで並列処理されてもよい、複数チップの複数コアで並列処理されてもよい。
次に、分割部4911の構成を説明する。図30は、分割部4911のブロック図である。分割部4911は、スライス分割部4931(Slice Divider)と、位置情報タイル分割部4932(Geometry Tile Divider)と、属性情報タイル分割部4933(Attribute Tile Divider)とを含む。
スライス分割部4931は、位置情報(Position(Geometry))をスライスに分割することで複数のスライス位置情報を生成する。また、スライス分割部4931は、属性情報(Attribute)をスライスに分割することで複数のスライス属性情報を生成する。また、スライス分割部4931は、スライス分割に係る情報、及びスライス分割において生成された情報を含むスライス付加情報(SliceMetaData)を出力する。
位置情報タイル分割部4932は、複数のスライス位置情報をタイルに分割することで複数の分割位置情報(複数のタイル位置情報)を生成する。また、位置情報タイル分割部4932は、位置情報のタイル分割に係る情報、及び位置情報のタイル分割において生成された情報を含む位置タイル付加情報(Geometry Tile MetaData)を出力する。
属性情報タイル分割部4933は、複数のスライス属性情報をタイルに分割することで複数の分割属性情報(複数のタイル属性情報)を生成する。また、属性情報タイル分割部4933は、属性情報のタイル分割に係る情報、及び属性情報のタイル分割において生成された情報を含む属性タイル付加情報(Attribute Tile MetaData)を出力する。
なお、分割されるスライス又はタイルの数は1以上である。つまり、スライス又はタイルの分割を行わなくてもよい。
また、ここでは、スライス分割後にタイル分割が行われる例を示したが、タイル分割後にスライス分割が行われてもよい。また、スライス及びタイルに加え新たな分割種別を定義し、3つ以上の分割種別で分割が行われてもよい。
以下、点群データの分割方法について説明する。図31は、スライス及びタイル分割の例を示す図である。
まず、スライス分割の方法について説明する。分割部4911は、三次元点群データを、スライス単位で、任意の点群に分割する。分割部4911は、スライス分割において、点を構成する位置情報と属性情報とを分割せず、位置情報と属性情報とを一括で分割する。すなわち、分割部4911は、任意の点における位置情報と属性情報とが同じスライスに属するようにスライス分割を行う。なお、これらに従えば、分割数、及び分割方法はどのような方法でもよい。また、分割の最小単位は点である。例えば、位置情報と属性情報との分割数は同一である。例えば、スライス分割後の位置情報に対応する三次元点と、属性情報に対応する三次元点とは同一のスライスに含まれる。
また、分割部4911は、スライス分割時に分割数及び分割方法に係る付加情報であるスライス付加情報を生成する。スライス付加情報は、位置情報と属性情報とで同一である。例えば、スライス付加情報は、分割後のバウンディングボックスの基準座標位置、大きさ、又は辺の長さを示す情報を含む。また、スライス付加情報は、分割数、及び分割タイプなどを示す情報を含む。
次に、タイル分割の方法について説明する。分割部4911は、スライス分割されたデータを、スライス位置情報(Gスライス)とスライス属性情報(Aスライス)とに分割し、スライス位置情報とスライス属性情報をそれぞれタイル単位に分割する。
なお、図31では8分木構造で分割する例を示しているが、分割数及び分割方法はどのような方法でもよい。
また、分割部4911は、位置情報と属性情報とを異なる分割方法で分割してもよいし、同一の分割方法で分割してもよい。また、分割部4911は、複数のスライスを異なる分割方法でタイルに分割してもよいし、同一の分割方法でタイルに分割してもよい。
また、分割部4911は、タイル分割時に分割数及び分割方法に係るタイル付加情報を生成する。タイル付加情報(位置タイル付加情報及び属性タイル付加情報)は、位置情報と属性情報とで独立している。例えば、タイル付加情報は、分割後のバウンディングボックスの基準座標位置、大きさ、又は辺の長さを示す情報を含む。また、タイル付加情報は、分割数、及び分割タイプなど示す情報を含む。
次に、点群データをスライス又はタイルに分割する方法の例を説明する。分割部4911は、スライス又はタイル分割の方法として、予め定められた方法を用いてもよいし、点群データに応じて使用する方法を適応的に切り替えてもよい。
スライス分割時には、分割部4911は、位置情報と属性情報とに対して一括で三次元空間を分割する。例えば、分割部4911は、オブジェクトの形状を判定し、オブジェクトの形状に応じて三次元空間をスライスに分割する。例えば、分割部4911は、木又は建物などのオブジェクトを抽出し、オブジェクト単位で分割を行う。例えば、分割部4911は、1又は複数のオブジェクトの全体が1つのスライスに含まれるようにスライス分割を行う。または、分割部4911は、一つのオブジェクトを複数のスライスに分割する。
この場合、符号化装置は、例えば、スライス毎に符号化方法を変えてもよい。例えば、符号化装置は、特定のオブジェクト、又はオブジェクトの特定の一部に対して、高品質な圧縮方法を用いてもよい。この場合、符号化装置は、スライス毎の符号化方法を示す情報を付加情報(メタデータ)に格納してもよい。
また、分割部4911は、地図情報又は位置情報に基づき、各スライスが予め定められた座標空間に対応するようにスライス分割を行ってもよい。
タイル分割時には、分割部4911は、位置情報と属性情報とを独立に分割する。例えば、分割部4911は、データ量又は処理量に応じてスライスをタイルに分割する。例えば、分割部4911は、スライスのデータ量(例えばスライスに含まれる三次元点の数)が予め定められた閾値より多いかを判定する。分割部4911は、スライスのデータ量が閾値より多い場合にはスライスをタイルに分割する。分割部4911は、スライスのデータ量が閾値より少ないときにはスライスをタイルに分割しない。
例えば、分割部4911は、復号装置での処理量又は処理時間が一定の範囲(予め定められた値以下)となるよう、スライスをタイルに分割する。これにより、復号装置におけるタイル当たりの処理量が一定となり、復号装置における分散処理が容易となる。
また、分割部4911は、位置情報と属性情報とで処理量が異なる場合、例えば、位置情報の処理量が属性情報の処理量より多い場合、位置情報の分割数を、属性情報の分割数より多くする。
また、例えば、コンテンツによって、復号装置で、位置情報を早く復号して表示し、属性情報を後でゆっくり復号して表示してもよい場合に、分割部4911は、位置情報の分割数を、属性情報の分割数より多くしてもよい。これにより、復号装置は、位置情報の並列数を多くできるので、位置情報の処理を属性情報の処理より高速化できる。
なお、復号装置は、スライス化又はタイル化されているデータを必ずしも並列処理する必要はなく、復号処理部の数又は能力に応じて、これらを並列処理するかどうかを判定してもよい。
以上のような方法で分割することにより、コンテンツ又はオブジェクトに応じた、適応的な符号化を実現できる。また、復号処理における並列処理を実現できる。これにより、点群符号化システム又は点群復号システムの柔軟性が向上する。
図32は、スライス及びタイルの分割のパターンの例を示す図である。図中のDUはデータ単位(DataUnit)であり、タイル又はスライスのデータを示す。また、各DUは、スライスインデックス(SliceIndex)とタイルインデックス(TileIndex)を含む。図中のDUの右上の数値がスライスインデックスを示し、DUの左下の数値がタイルインデックスを示す。
パターン1では、スライス分割において、GスライスとAスライスとで分割数及び分割方法は同じである。タイル分割において、Gスライスに対する分割数及び分割方法とAスライスに対する分割数及び分割方法とは異なる。また、複数のGスライス間では同一の分割数及び分割方法が用いられる。複数のAスライス間では同一の分割数及び分割方法が用いられる。
パターン2では、スライス分割において、GスライスとAスライスとで分割数及び分割方法は同じである。タイル分割において、Gスライスに対する分割数及び分割方法とAスライスに対する分割数及び分割方法とは異なる。また、複数のGスライス間で分割数及び分割方法が異なる。複数のAスライス間で分割数及び分割方法が異なる。
次に、分割データの符号化方法について説明する。三次元データ符号化装置(第1の符号化部4910)は、分割されたデータを、それぞれ符号化する。三次元データ符号化装置は、属性情報を符号化する際に、どの構成情報(位置情報、付加情報又は他の属性情報)に基づき符号化を行ったかを示す依存関係情報を付加情報として生成する。つまり、依存関係情報は、例えば、参照先(依存先)の構成情報を示す。この場合、三次元データ符号化装置は、属性情報の分割形状に対応する構成情報に基づき依存関係情報を生成する。なお、三次元データ符号化装置は、複数の分割形状に対応する構成情報に基づき依存関係情報を生成してもよい。
依存関係情報は三次元データ符号化装置で生成され、生成された依存関係情報が三次元データ復号装置に送出されてもよい。または、三次元データ復号装置が依存関係情報を生成し、三次元データ符号化装置は依存関係情報を送出しなくてもよい。また、三次元データ符号化装置が使用する依存関係を、予め定めておき、三次元データ符号化装置は、依存関係情報を送出しなくてもよい。
図33は、各データの依存関係の一例を示す図である。図中の矢印の先は依存先を示し、矢印の元は依存元を示している。三次元データ復号装置は、依存先から依存元の順でデータを復号する。また、図中に実線で示すデータは実際に送出されるデータであり、点線で示すデータは送出されないデータである。
また、同図において、Gは位置情報を示し、Aは属性情報を示す。Gs1は、スライス番号1の位置情報を示し、Gs2は、スライス番号2の位置情報を示す。Gs1t1は、スライス番号1かつタイル番号1の位置情報を示し、Gs1t2は、スライス番号1かつタイル番号2の位置情報を示し、Gs2t1は、スライス番号2かつタイル番号1の位置情報を示し、Gs2t2は、スライス番号2かつタイル番号2の位置情報を示す。同様に、As1は、スライス番号1の属性情報を示し、As2は、スライス番号2の属性情報を示す。As1t1は、スライス番号1かつタイル番号1の属性情報を示し、As1t2は、スライス番号1かつタイル番号2の属性情報を示し、As2t1は、スライス番号2かつタイル番号1の属性情報を示し、As2t2は、スライス番号2かつタイル番号2の属性情報を示す。
Msliceは、スライス付加情報を示し、MGtileは、位置タイル付加情報を示し、MAtileは、属性タイル付加情報を示す。Ds1t1は属性情報As1t1の依存関係情報を示し、Ds2t1は属性情報As2t1の依存関係情報を示す。
また、三次元データ符号化装置は、三次元データ復号装置においてデータを並び替える必要がないように、データを復号順に並び替えてもよい。なお、三次元データ復号装置においてデータを並び替えてもよいし、三次元データ符号化装置と三次元データ復号装置との両方でデータを並び替えてもよい。
図34は、データの復号順の例を示す図である。図34の例では、左のデータから順に復号が行われる。三次元データ復号装置は、依存関係にあるデータ間では、依存先のデータから先に復号する。例えば、三次元データ符号化装置は、この順序となるようにデータを予め並び替えて送出する。なお、依存先のデータが先になる順序であれば、どのような順序でもよい。また、三次元データ符号化装置は、付加情報及び依存関係情報をデータより先に送出してもよい。
図35は、三次元データ符号装置による処理の流れを示すフローチャートである。まず、三次元データ符号化装置は、上記のように複数のスライス又はタイルのデータを符号化する(S4901)。次に、三次元データ符号化装置は、図34に示すように、依存先のデータが先になるようにデータを並び替える(S4902)。次に、三次元データ符号化装置は、並び替え後のデータを多重化(NALユニット化)する(S4903)。
次に、第1の復号部4920に含まれる結合部4925の構成を説明する。図36は、結合部4925の構成を示すブロック図である。結合部4925は、位置情報タイル結合部4941(Geometry Tile Combiner)と、属性情報タイル結合部4942(Attribute Tile Combiner)と、スライス結合部(Slice Combiner)とを含む。
位置情報タイル結合部4941は、位置タイル付加情報を用いて複数の分割位置情報を結合することで複数のスライス位置情報を生成する。属性情報タイル結合部4942は、属性タイル付加情報を用いて複数の分割属性情報を結合することで複数のスライス属性情報を生成する。
スライス結合部4943は、スライス付加情報を用いて複数のスライス位置情報を結合することで位置情報を生成する。また、スライス結合部4943は、スライス付加情報を用いて複数のスライス属性情報を結合することで属性情報を生成する。
なお、分割されるスライス又はタイルの数は1以上である。つまり、スライス又はタイルの分割が行われていなくてもよい。
また、ここでは、スライス分割後にタイル分割が行われる例を示したが、タイル分割後にスライス分割が行われてもよい。また、スライス及びタイルに加え新たな分割種別を定義し、3つ以上の分割種別で分割が行われてもよい。
次に、スライス分割又はタイル分割された符号化データの構成、及び符号化データのNALユニットへの格納方法(多重化方法)を説明する。図37は、符号化データの構成及び符号化データのNALユニットへの格納方法を示す図である。
符号化データ(分割位置情報及び分割属性情報)は、NALユニットのペイロードに格納される。
符号化データは、ヘッダとペイロードとを含む。ヘッダは、ペイロードに含まれるデータを特定するための識別情報を含む。この識別情報は、例えば、スライス分割或いはタイル分割の種別(slice_type、tile_type)、スライス或いはタイルを特定するためのインデックス情報(slice_idx、tile_idx)、データ(スライス或いはタイル)の位置情報、又はデータのアドレス(address)などを含む。スライスを特定するためのインデックス情報は、スライスインデックス(SliceIndex)とも記す。タイルを特定するためのインデックス情報は、タイルインデックス(TileIndex)とも記す。また、分割の種別とは、例えば、上述したようなオブジェクト形状に基づく手法、地図情報或いは位置情報に基づく手法、又は、データ量或いは処理量に基づく手法等である。
なお、上記の情報の全て又は一部は、分割位置情報のヘッダ及び分割属性情報のヘッダの一方に格納され、他方に格納されてなくてもよい。例えば、位置情報と属性情報とで同一の分割方法が用いられる場合には、位置情報と属性情報とで分割の種別(slice_type、tile_type)及びインデックス情報(slice_idx、tile_idx)は同一である。よって、位置情報と属性情報の一方のヘッダにこれらの情報が含まれてもよい。例えば、位置情報に属性情報が依存する場合には、位置情報が先に処理される。よって、位置情報のヘッダにこれらの情報が含まれ、属性情報のヘッダにはこれらの情報が含まれなくてもよい。この場合、三次元データ復号装置は、例えば、依存先の位置情報のスライス又はタイルと同一のスライス又はタイルに依存元の属性情報が属すると判断する。
また、スライス分割又はタイル分割に係る付加情報(スライス付加情報、位置タイル付加情報又は属性タイル付加情報)、及び依存関係を示す依存関係情報等は、既存のパラメータセット(GPS、APS、位置SPS又は属性SPSなど)に格納されて送出されてもよい。分割方法がフレーム毎に変化する場合は、フレーム毎のパラメータセット(GPS又はAPS等)に分割方法を示す情報が格納されてもよい。シーケンス内で分割方法が変化しない場合は、シーケンス毎のパラメータセット(位置SPS又は属性SPS)に分割方法を示す情報が格納されてもよい。さらに、位置情報と属性情報とで同じ分割方法が用いられる場合は、PCCストリームのパラメータセット(ストリームPS)に分割方法を示す情報が格納されてもよい。
また、上記の情報は、上記のいずれかのパラメータセットに格納されてもよいし、複数のパラメータセットに格納されてもよい。また、タイル分割又はスライス分割用のパラメータセットを定義し、当該パラメータセットに上記の情報を格納してもよい。また、これらの情報は、符号化データのヘッダに格納されてもよい。
また、符号化データのヘッダは、依存関係を示す識別情報を含む。つまり、当該ヘッダは、データ間に依存関係がある場合は、依存元から依存先を参照するための識別情報を含む。例えば、依存先のデータのヘッダには、当該データを特定するための識別情報が含まれる。依存元のデータのヘッダには、依存先を示す識別情報が含まれる。なお、データを特定するための識別情報、スライス分割又はタイル分割に係る付加情報、及び依存関係を示す識別情報を、他の情報から識別可能又は導出可能である場合は、これらの情報を省略してもよい。
次に、本実施の形態に係る点群データの符号化処理及び復号処理の流れについて説明する。図38は、本実施の形態に係る点群データの符号化処理のフローチャートである。
まず、三次元データ符号化装置は、使用する分割方法を決定する(S4911)。この分割方法は、スライス分割を行うか否か、タイル分割を行うか否かを含む。また、分割方法は、スライス分割又はタイル分割を行う場合の分割数、及び、分割の種別等を含んでもよい。分割の種別とは、上述したようなオブジェクト形状に基づく手法、地図情報或いは位置情報に基づく手法、又は、データ量或いは処理量に基づく手法等である。なお、分割方法は、予め定められていてもよい。
スライス分割が行われる場合(S4912でYes)、三次元データ符号化装置は、位置情報と属性情報とを一括で分割することで複数のスライス位置情報及び複数のスライス属性情報を生成する(S4913)。また、三次元データ符号化装置は、スライス分割に係るスライス付加情報を生成する。なお、三次元データ符号化装置は、位置情報と属性情報とを独立に分割してもよい。
タイル分割が行われる場合(S4914でYes)、三次元データ符号化装置は、複数のスライス位置情報及び複数のスライス属性情報(又は位置情報及び属性情報)を独立に分割することで複数の分割位置情報及び複数の分割属性情報を生成する(S4915)。また、三次元データ符号化装置は、タイル分割に係る位置タイル付加情報及び属性タイル付加情報を生成する。なお、三次元データ符号化装置は、スライス位置情報とスライス属性情報とを一括で分割してもよい。
次に、三次元データ符号化装置は、複数の分割位置情報及び複数の分割属性情報の各々を符号化することで、複数の符号化位置情報及び複数の符号化属性情報を生成する(S4916)。また、三次元データ符号化装置は、依存関係情報を生成する。
次に、三次元データ符号化装置は、複数の符号化位置情報、複数の符号化属性情報及び付加情報をNALユニット化(多重化)することで符号化データ(符号化ストリーム)を生成する(S4917)。また、三次元データ符号化装置は、生成した符号化データを送出する。
図39は、本実施の形態に係る点群データの復号処理のフローチャートである。まず、三次元データ復号装置は、符号化データ(符号化ストリーム)に含まれる、分割方法に係る付加情報(スライス付加情報、位置タイル付加情報及び属性タイル付加情報)を解析することで、分割方法を判定する(S4921)。この分割方法は、スライス分割を行うか否か、タイル分割を行うか否かを含む。また、分割方法は、スライス分割又はタイル分割を行う場合の分割数、及び、分割の種別等を含んでもよい。
次に、三次元データ復号装置は、符号化データに含まれる複数の符号化位置情報及び複数の符号化属性情報を、符号化データに含まれる依存関係情報を用いて復号することで分割位置情報及び分割属性情報を生成する(S4922)。
付加情報によりタイル分割が行われていることが示される場合(S4923でYes)、三次元データ復号装置は、位置タイル付加情報及び属性タイル付加情報に基づき、複数の分割位置情報と、複数の分割属性情報とを、それぞれの方法で結合することで、複数のスライス位置情報及び複数のスライス属性情報を生成する(S4924)。なお、三次元データ復号装置は、複数の分割位置情報と、複数の分割属性情報とを同一の方法で結合してもよい。
付加情報によりスライス分割が行われていることが示される場合(S4925でYes)、三次元データ復号装置は、スライス付加情報に基づき、複数のスライス位置情報及び複数のスライス属性情報(複数の分割位置情報及び複数の分割属性情報)を同一の方法で結合することで位置情報及び属性情報を生成する(S4926)。なお、三次元データ復号装置は、複数のスライス位置情報と複数のスライス属性情報とを、それぞれ異なる方法で結合してもよい。
なお、タイル又はスライスの属性情報(識別子、領域情報、アドレス情報及び位置情報等)は、SEIに限らず、その他の制御情報に格納されてもよい。例えば、属性情報は、PCCデータ全体の構成を示す制御情報に格納されてもよいし、タイル又はスライス毎の制御情報に格納されてもよい。
また、三次元データ符号化装置(三次元データ送信装置)は、PCCデータを他のデバイスに伝送する際には、SEI等の制御情報を、そのシステムのプロトコルに特有の制御情報に変換して示してもよい。
例えば、三次元データ符号化装置は、属性情報を含むPCCデータを、ISOBMFF(ISO Base Media File Format)に変換する際に、SEIをPCCデータとともに「mdat box」に格納してもよいし、ストリームに関する制御情報を記載する「track box」に格納してもよい。つまり、三次元データ符号化装置は、制御情報を、ランダムアクセスのためのテーブルに格納してもよい。また、三次元データ符号化装置は、PCCデータをパケット化して伝送する場合には、SEIをパケットヘッダに格納してもよい。このように、属性情報をシステムのレイヤで取得可能にすることにより、属性情報、及びタイルデータ又はスライスデータへのアクセスが容易となり、アクセスの速度を向上できる。
なお、三次元データ復号装置の構成において、メモリ管理部は、復号処理に必要な情報がメモリにあるか否かを予め判定し、復号処理に必要な情報がなければ、当該情報をストレージ又はネットワークから取得してもよい。
三次元データ復号装置が、ストレージ又はネットワークからPCCデータをMPEG-DASHなどのプロトコルにおけるPullを用いて取得する場合は、メモリ管理部は、ローカライズ部などからの情報に基づき、復号処理に必要なデータの属性情報を特定し、特定した属性情報を含むタイル又はスライスを要求し、必要なデータ(PCCストリーム)を取得してもよい。属性情報を含むタイル又はスライスの特定は、ストレージ又はネットワーク側で行われてもよいし、メモリ管理部が行ってもよい。例えば、メモリ管理部は、予め全てのPCCデータのSEIを取得しておき、その情報に基づき、タイル又はスライスを特定してもよい。
ストレージ又はネットワークから全てのPCCデータがUDPプロトコルなどにおいてPushを用いて送信されている場合は、メモリ管理部は、ローカライズ部などからの情報に基づき、復号処理に必要なデータの属性情報、及びタイル又はスライスを特定し、送出されるPCCデータから所望のタイル又はスライスをフィルタリングすることで、所望のデータを取得してもよい。
また、三次元データ符号化装置は、データの取得の際に、所望のデータがあるか否か、又はデータサイズ等に基づき実時間での処理が可能か否か、又は通信状態等を判定してもよい。三次元データ符号化装置は、この判定結果に基づき、データ取得が困難であると判断した場合は、優先度又はデータ量の異なる別のスライス又はタイルを選択して取得してもよい。
また、三次元データ復号装置は、ローカライズ部などからの情報をクラウドサーバへ送信し、クラウドサーバが、その情報に基づき必要な情報を判定してもよい。
(実施の形態4)
次に、タイル付加情報について説明する。三次元データ符号化装置は、タイルの分割方法に関するメタデータであるタイル付加情報を生成し、生成したタイル付加情報を三次元データ復号装置に送信する。
図40は、タイル付加情報(TileMetaData)のシンタックス例を示す図である。図40に示すように、例えば、タイル付加情報は、分割方法情報(type_of_divide)と、形状情報(topview_shape)と、重複フラグ(tile_overlap_flag)と、重複情報(type_of_overlap)と、高さ情報(tile_height)と、タイル数(tile_number)と、タイル位置情報(global_position、relative_position)と、を含む。
分割方法情報(type_of_divide)は、タイルの分割方法を示す。例えば、分割方法情報は、タイルの分割方法が、地図の情報に基づいた分割であるか、つまり上面視に基づく分割(top_view)であるか、それ以外(other)であるかを示す。
形状情報(topview_shape)は、例えば、タイルの分割方法が上面視に基づく分割である場合に、タイル付加情報に含まれる。形状情報は、タイルを上面視した形状を示す。例えば、この形状は、正方形及び円を含む。なお、この形状は、楕円、矩形又は四角形以外の多角形を含んでもよいし、それ以外の形状を含んでもよい。なお、形状情報は、タイルを上面視した形状に限らず、タイルの三次元形状(例えば、立方体及び円柱等)を示してもよい。
重複フラグ(tile_overlap_flag)は、タイルが重複するか否かを示す。例えば、重複フラグは、タイルの分割方法が上面視に基づく分割である場合に、タイル付加情報に含まれる。この場合、重複フラグは、上面視において、タイルが重複するか否かを示す。なお、重複フラグは、三次元空間においてタイルが重複するか否かを示してもよい。
重複情報(type_of_overlap)は、例えば、タイルが重複する場合に、タイル付加情報に含まれる。重複情報は、タイルの重複のしかた等を示す。例えば、重複情報は、重複する領域の大きさ等を示す。
高さ情報(tile_height)は、タイルの高さを示す。なお、高さ情報は、タイルの形状を示す情報を含んでもよい。例えば、当該情報は、タイルの上面視における形状が矩形の場合には、当該の矩形の辺の長さ(縦の長さ及び横の長さ)を示してもよい。また、当該情報は、タイルの上面視における形状が円の場合には、当該円の直径又は半径を示してもよい。
また、高さ情報は、各タイルの高さを示してもよし、複数のタイルで共通の高さを示してもよい。また、予め道路及び立体交差部分等の複数の高さタイプが設定され、高さ情報により、各高さタイプの高さと、各タイルの高さタイプとが示されてもよい。または、各高さタイプの高さは予め定義されており、高さ情報により、各タイルの高さタイプが示されてもよい。つまり、各高さタイプの高さは、高さ情報で示されなくてもよい。
タイル数(tile_number)は、タイルの数を示す。なお、タイル付加情報は、タイルの間隔を示す情報を含んでもよい。
タイル位置情報(global_position、relative_position)は、各タイルの位置を特定するための情報である。例えば、タイル位置情報は、各タイルの絶対座標又は相対座標を示す。
なお、上記の情報の一部又は全ては、タイル毎に設けられてもよいし、複数のタイル毎(例えばフレーム毎又は複数フレーム毎)に設けられてもよい。
三次元データ符号化装置は、タイル付加情報を、SEI(Supplemental Enhancement Information)に含めて送出してもよい。または、三次元データ符号化装置は、タイル付加情報を、既存のパラメータセット(PPS、GPS、又はAPS等)に格納して送出してもよい。
例えば、タイル付加情報がフレーム毎に変化する場合は、フレーム毎のパラメータセット(GPS又はAPS等)にタイル付加情報が格納されてもよい。シーケンス内でタイル付加情報が変化しない場合は、シーケンス毎のパラメータセット(位置SPS又は属性SPS)にタイル付加情報が格納されてもよい。さらに、位置情報と属性情報とで同じタイル分割情報が用いられる場合は、PCCストリームのパラメータセット(ストリームPS)にタイル付加情報が格納されてもよい。
また、タイル付加情報は、上記のいずれかのパラメータセットに格納されてもよいし、複数のパラメータセットに格納されてもよい。また、タイル付加情報は、符号化データのヘッダに格納されてもよい。また、タイル付加情報は、NALユニットのヘッダに格納されてもよい。
また、タイル付加情報の全て又は一部は、分割位置情報のヘッダ及び分割属性情報のヘッダの一方に格納され、他方に格納されてなくてもよい。例えば、位置情報と属性情報とで同一のタイル付加情報が用いられる場合には、位置情報と属性情報の一方のヘッダにタイル付加情報が含まれてもよい。例えば、位置情報に属性情報が依存する場合には、位置情報が先に処理される。よって、位置情報のヘッダにこれらのタイル付加情報が含まれ、属性情報のヘッダにはタイル付加情報が含まれなくてもよい。この場合、三次元データ復号装置は、例えば、依存先の位置情報のタイルと同一のタイルに依存元の属性情報が属すると判断する。
三次元データ復号装置は、タイル付加情報に基づき、タイル分割された点群データを再構成する。三次元データ復号装置は、重複する点群データがある場合は、重複する複数の点群データを特定し、いずれかを選択、又は複数の点群データをマージする。
また、三次元データ復号装置は、タイル付加情報を用いて復号を行ってもよい。例えば、三次元データ復号装置は、複数のタイルが重複する場合は、タイル毎に復号を行い、復号された複数のデータを用いた処理(例えば平滑化、又はフィルタリング等)を行い、点群データを生成してもよい。これにより精度の高い復号が可能となる可能性がある。
図41は、三次元データ符号化装置及び三次元データ復号装置を含むシステムの構成例を示す図である。タイル分割部5051は、位置情報及び属性情報を含む点群データを第1タイルと第2タイルとに分割する。また、タイル分割部5051は、タイル分割に係るタイル付加情報を復号部5053及びタイル結合部5054に送る。
符号化部5052は、第1タイル及び第2タイルを符号化することで符号化データを生成する。
復号部5053は、符号化部5052で生成された符号化データを復号することで第1タイル及び第2タイルを復元する。タイル結合部5054は、タイル付加情報を用いて、第1タイル及び第2タイルを結合することで点群データ(位置情報及び属性情報)を復元する。
次に、スライス付加情報について説明する。三次元データ符号化装置は、スライスの分割方法に関するメタデータであるスライス付加情報を生成し、生成したスライス付加情報を三次元データ復号装置に送信する。
図42は、スライス付加情報(SliceMetaData)のシンタックス例を示す図である。図42に示すように、例えば、スライス付加情報は、分割方法情報(type_of_divide)と、重複フラグ(slice_overlap_flag)と、重複情報(type_of_overlap)と、スライス数(slice_number)と、スライス位置情報(global_position、relative_position)と、スライスサイズ情報(slice_bounding_box_size)とを含む。
分割方法情報(type_of_divide)は、スライスの分割方法を示す。例えば、分割方法情報は、スライスの分割方法が、図60で示すようなオブジェクトの情報に基づいた分割である(object)か否かを示す。なお、スライス付加情報は、オブジェクト分割の方法を示す情報を含んでもよい。例えば、この情報は、1つのオブジェクトを複数のスライスに分割するか、1つのスライスに割り当てるかを示す。また、この情報は、1つのオブジェクトを複数のスライスに分割する場合の分割数等を示してもよい。
重複フラグ(slice_overlap_flag)は、スライスが重複するか否かを示す。重複情報(type_of_overlap)は、例えば、スライスが重複する場合に、スライス付加情報に含まれる。重複情報は、スライスの重複のしかた等を示す。例えば、重複情報は、重複する領域の大きさ等を示す。
スライス数(slice_number)は、スライスの数を示す。
スライス位置情報(global_position、relative_position)、及びスライスサイズ情報(slice_bounding_box_size)は、スライスの領域に関する情報である。スライス位置情報は、各スライスの位置を特定するための情報である。例えば、スライス位置情報は、各スライスの絶対座標又は相対座標を示す。スライスサイズ情報(slice_bounding_box_size)は、各スライスのサイズを示す。例えば、スライスサイズ情報は、各スライスのバウンディングボックスのサイズを示す。
三次元データ符号化装置は、スライス付加情報をSEIに含めて送出してもよい。または、三次元データ符号化装置は、スライス付加情報を、既存のパラメータセット(PPS、GPS、又はAPS等)に格納して送出してもよい。
例えば、スライス付加情報がフレーム毎に変化する場合は、フレーム毎のパラメータセット(GPS又はAPS等)にスライス付加情報が格納されてもよい。シーケンス内でスライス付加情報が変化しない場合は、シーケンス毎のパラメータセット(位置SPS又は属性SPS)にスライス付加情報が格納されてもよい。さらに、位置情報と属性情報とで同じスライス分割情報が用いられる場合は、PCCストリームのパラメータセット(ストリームPS)にスライス付加情報が格納されてもよい。
また、スライス付加情報は、上記のいずれかのパラメータセットに格納されてもよいし、複数のパラメータセットに格納されてもよい。また、スライス付加情報は、符号化データのヘッダに格納されてもよい。また、スライス付加情報は、NALユニットのヘッダに格納されてもよい。
また、スライス付加情報の全て又は一部は、分割位置情報のヘッダ及び分割属性情報のヘッダの一方に格納され、他方に格納されてなくてもよい。例えば、位置情報と属性情報とで同一のスライス付加情報が用いられる場合には、位置情報と属性情報の一方のヘッダにスライス付加情報が含まれてもよい。例えば、位置情報に属性情報が依存する場合には、位置情報が先に処理される。よって、位置情報のヘッダにこれらのスライス付加情報が含まれ、属性情報のヘッダにはスライス付加情報が含まれなくてもよい。この場合、三次元データ復号装置は、例えば、依存先の位置情報のスライスと同一のスライスに依存元の属性情報が属すると判断する。
三次元データ復号装置は、スライス付加情報に基づき、スライス分割された点群データを再構成する。三次元データ復号装置は、重複する点群データがある場合は、重複する複数の点群データを特定し、いずれかを選択、又は複数の点群データをマージする。
また、三次元データ復号装置は、スライス付加情報を用いて復号を行ってもよい。例えば、三次元データ復号装置は、複数のスライスが重複する場合は、スライス毎に復号を行い、復号された複数のデータを用いた処理(例えば平滑化、又はフィルタリング)を行い、点群データを生成してもよい。これにより精度の高い復号が可能となる可能性がある。
図43は、本実施の形態に係る三次元データ符号化装置による、タイル付加情報の生成処理を含む三次元データ符号化処理のフローチャートである。
まず、三次元データ符号化装置は、タイルの分割方法を決定する(S5031)。具体的には、三次元データ符号化装置は、タイルの分割方法として、上面視に基づく分割方法(top_view)を用いるか、それ以外(other)を用いるかを決定する。また、三次元データ符号化装置は、上面視に基づく分割方法を用いる場合のタイルの形状を決定する。また、三次元データ符号化装置は、タイルが他のタイルと重複するか否かを決定する。
ステップS5031で決定したタイルの分割方法が上面視に基づく分割方法である場合(S5032でYes)、三次元データ符号化装置は、タイルの分割方法が上面視に基づく分割方法(top_view)であることをタイル付加情報に記載する(S5033)。
一方、ステップS5031で決定したタイルの分割方法が上面視に基づく分割方法以外である場合(S5032でNo)、三次元データ符号化装置は、タイルの分割方法が上面視に基づく分割方法(top_view)以外の方法であることをタイル付加情報に記載する(S5034)。
また、ステップS5031で決定した、タイルを上面視した形状が正方形である場合(S5035で正方形)、三次元データ符号化装置は、タイルを上面視した形状が正方形であることをタイル付加情報に記載する(S5036)。一方、ステップS5031で決定した、タイルを上面視した形状が円である場合(S5035で円)、三次元データ符号化装置は、タイルを上面視した形状が円であることをタイル付加情報に記載する(S5037)。
次に、三次元データ符号化装置は、タイルが他のタイルと重複するかを判定する(S5038)。タイルが他のタイルと重複している場合(S5038でYes)、三次元データ符号化装置は、タイルが重複していることをタイル付加情報に記載する(S5039)。一方、タイルが他のタイルと重複していない場合(S5038でNo)、三次元データ符号化装置は、タイルが重複していないことをタイル付加情報に記載する(S5040)。
次に、三次元データ符号化装置は、ステップS5031で決定したタイルの分割方法に基づきタイルを分割し、各タイルを符号化し、生成された符号化データ及びタイル付加情報を送出する(S5041)。
図44は、本実施の形態に係る三次元データ復号装置による、タイル付加情報を用いた三次元データ復号処理のフローチャートである。
まず、三次元データ復号装置は、ビットストリームに含まれるタイル付加情報を解析する(S5051)。
タイル付加情報によりタイルが他のタイルと重複していないことが示される場合(S5052でNo)、三次元データ復号装置は、各タイルを復号することで各タイルの点群データを生成する(S5053)。次に、三次元データ復号装置は、タイル付加情報で示されるタイルの分割方法及びタイルの形状に基づき、各タイルの点群データから点群データを再構成する(S5054)。
一方、タイル付加情報によりタイルが他のタイルと重複していることが示される場合(S5052でYes)、三次元データ復号装置は、各タイルを復号することで各タイルの点群データを生成する。また、三次元データ復号装置は、タイル付加情報に基づき、タイルの重複部分を特定する(S5055)。なお、三次元データ復号装置は、重複部分については重複する複数の情報を用いて復号処理を行ってもよい。次に、三次元データ復号装置は、タイル付加情報で示されるタイルの分割方法、タイルの形状、及び重複情報に基づき、各タイルの点群データから点群データを再構成する(S5056)。
以下、スライスに関する変形例等を説明する。三次元データ符号化装置は、オブジェクトの種類(道、建物、木等)又は属性(動的情報、静的情報等)を示す情報を付加情報として送信してもよい。または、オブジェクトに応じて符号化のパラメータが予め規定され、三次元データ符号化装置は、オブジェクトの種類又は属性を送出することにより符号化パラメータを三次元データ復号装置へ通知してもよい。
スライスデータの符号化順及び送出順について以下の方法を用いてもよい。例えば、三次元データ符号化装置は、オブジェクトの認識又はクラスタリングが容易なデータから順にスライスデータを符号化してもよい。または、三次元データ符号化装置は、早くクラスタリングが終わったスライスデータから順に符号化を行ってもよい。また、三次元データ符号化装置は、符号化されたスライスデータから順に送出してもよい。または、三次元データ符号化装置は、アプリケーションにおいて復号の優先度の高い順にスライスデータを送出してもよい。例えば、動的情報の復号の優先度が高い場合には、三次元データ符号化装置は、動的情報でグループ化されたスライスから順にスライスデータを送出してもよい。
また、三次元データ符号化装置は、符号化データの順番と、復号の優先度の順番とが異なる場合には、符号化データを並び替えた後に送出してもよい。また、三次元データ符号化装置は、符号化データを蓄積する際には、符号化データを並び替えた後に蓄積してもよい。
アプリケーション(三次元データ復号装置)は、所望のデータを含むスライスの送出をサーバ(三次元データ符号化装置)に要求する。サーバはアプリケーションが必要とするスライスデータを送出し、不要なスライスデータは送出しなくてもよい。
アプリケーションは、所望のデータを含むタイルの送出をサーバに要求する。サーバはアプリケーションが必要とするタイルデータを送出し、不要なタイルデータは送出しなくてもよい。
(実施の形態5)
本実施の形態では、点を含まない分割単位(例えばタイル又はスライス)の処理について説明する。まず、点群データの分割方法について説明する。
HEVCなどの動画像符号化規格では、二次元画像の全ての画素に対してデータが存在するため、二次元空間を複数のデータ領域に分割した場合であっても、全てのデータ領域にデータが存在する。一方、三次元点群データの符号化では、点群データの要素である点自体がデータであり、一部の領域にデータが存在しない可能性がある。
点群データを空間的に分割する方法は様々あるが、分割したデータ単位である分割単位(例えばタイル又はスライス)が常に1以上の点データを含むかどうかで分割方法を分類できる。
複数の分割単位の全てに、1以上の点データを含む分割方法を第1分割方法と呼ぶ。第1分割方法として、例えば、点群データを、符号化の処理時間、又は符号化データのサイズを意識して分割する方法がある。この場合、各分割単位で点の数がおおよそ均等となる。
図45は、分割方法の例を示す図である。例えば、第1分割方法として、図45の(a)に示すように、同一の空間に属する点を2つの同一の空間に分割する方法を用いてもよい。また、図45の(b)に示すように、各分割単位が点を含むように、空間を複数のサブ空間(分割単位)に分割してもよい。
これらの方法は、点を意識した分割であるため、常に全ての分割単位に1以上の点が含まれる。
複数の分割単位に、点データを含まない分割単位が1以上含まれる可能性のある分割方法を第2分割方法と呼ぶ。例えば、第2分割方法として、図45の(c)に示すように、空間を均等に分割する方法を用いることができる。この場合、分割単位に点が存在するとは限らない。つまり、分割単位に点が存在しない場合がある。
三次元データ符号化装置は、点群データを分割する場合、(1)複数の分割単位の全てに1以上の点データを含む分割方法が用いられたか、(2)複数の分割単位に、点データを含まない分割単位が1以上ある分割方法が用いられたか、(3)複数の分割単位に、点データを含まない分割単位が1以上ある可能性のある分割方法が用いられたかを、分割に係る付加情報(メタデータ)である分割付加情報(例えばタイル付加情報又はスライス付加情報)に示し、当該分割付加情報を送出してもよい。
なお、三次元データ符号化装置は、上記の情報を、分割方法のタイプとして示してもよい。また、三次元データ符号化装置は、予め定められた分割方法で分割を行い、分割付加情報を送出しなくてもよい。その場合は、三次元データ符号化装置は、分割方法が、第1分割方法であるか、第2分割方法であるかを予め明示する。
以下、第2分割方法、及び符号化データの生成並びに送出の例を説明する。なお、以降、三次元空間の分割方法として、タイル分割を例に説明するが、タイル分割でなくてもよく、タイルとは別の分割単位の分割方法にも以下の手法を適用できる。例えば、タイル分割をスライス分割と読み替えてもよい。
図46は、点群データを6個のタイルに分割する例を示す図である。図46は、最小単位が点である例を示しており、位置情報(Geometry)と属性情報(Attribute)とを一緒に分割する例を示している。なお、位置情報と属性情報とを個別の分割方法又は分割数で分割する場合、属性情報がない場合、及び、属性情報が複数ある場合も同様である。
図46に示す例では、タイル分割後に、タイル内に点を含むタイル(#1、#2、#4、#6)と、タイル内に点を含まないタイル(#3、#5)とが存在する。タイル内に点を含まないタイルをヌルタイルと呼ぶ。
なお、6個のタイルに分割する場合に限らず、いかなる分割の方法が用いられてもよい。例えば、分割単位は、立方体であってもよいし、直方体又は円柱など立方体でない形状であってもよい。複数の分割単位は同一形状であってもよいし、異なる形状が含まれてもよい。また、分割の方法として、予め定められた方法が用いられてもよいし、所定の単位(例えばPCCフレーム)毎に異なる方法が用いられてもよい。
本分割方法において、点群データをタイルに分割した場合に、タイル内にデータがない場合、当該タイルがヌルタイルであることを示す情報を含むビットストリームが生成される。
以降、ヌルタイルの送出方法、及びヌルタイルのシグナリング方法について説明する。三次元データ符号化装置は、データ分割に関する付加情報(メタデータ)として、例えば、以下の情報を生成し、生成された情報を送出してもよい。図47は、タイル付加情報(TileMetaData)のシンタックス例を示す図である。タイル付加情報は、分割方法情報(type_of_divide)と、分割方法ヌル情報(type_of_divide_null)と、タイル分割数(number_of_tiles)と、タイルヌルフラグ(tile_null_flag)とを含む。
分割方法情報(type_of_divide)は、分割方法又は分割種別に関する情報である。例えば、分割方法情報は、1又は複数の分割方法又は分割種別を示す。例えば、分割方法としては、上面視(top_view)分割、及び均等分割などがある。なお、分割方法の定義が1個の場合は、タイル付加情報に分割方法情報が含まれなくてもよい。
分割方法ヌル情報(type_of_divide_null)は、使用される分割方法が、下記第1分割方法であるか第2分割方法であるかを示す情報である。ここで、第1分割方法とは、複数の分割単位の全てに、常にそれぞれ1以上の点データが含まれる分割方法である。第2分割方法とは、複数の分割単位に、点データを含まない分割単位が1以上存在する分割方法、又は、複数の分割単位に、点データを含まない分割単位が1以上ある可能性のある分割方法である。
また、タイル付加情報は、タイル全体の分割情報として、(1)タイルの分割数を示す情報(タイル分割数(number_of_tiles))、又はタイルの分割数を特定するための情報、(2)ヌルタイルの数を示す情報、又はヌルタイルの数を特定するための情報、及び、(3)ヌルタイル以外のタイルの数を示す情報、又はヌルタイル以外のタイルの数を特定するための情報、のうち少なくとも一つを含んでもよい。また、タイル付加情報は、タイル全体の分割情報として、タイルの形を示す、又はタイルが重複するか否かを示す情報を含んでもよい。
また、タイル付加情報は、タイル毎の分割情報を順に示す。例えば、タイルの順序は、分割方法毎に予め定められており、三次元データ符号化装置及び三次元データ復号装置において既知である。なお、タイルの順序を予め定めない場合には、三次元データ符号化装置は、順序を示す情報を三次元データ復号装置に送出してもよい。
タイル毎の分割情報は、タイル内にデータ(点)が存在するか否かを示すフラグであるタイルヌルフラグ(tile_null_flag)を含む。なお、タイル内にデータがない場合に、タイル分割情報として、タイルヌルフラグが含まれてもよい。
また、タイルがヌルタイルでない場合には、タイル付加情報は、タイル毎の分割情報(位置情報(例えば原点の座標(origin_x、origin_y、origin_z))、及びタイルの高さ情報など)を含む。また、タイルがヌルタイルである場合には、タイル付加情報は、タイル毎の分割情報を含まない。
例えば、タイル毎の分割情報に、タイル毎のスライス分割の情報を格納する場合、三次元データ符号化装置は、付加情報に、ヌルタイルのスライス分割の情報を格納しなくてもよい。
なお、この例では、タイル分割数(number_of_tiles)は、ヌルタイルを含めたタイルの数を示す。図48は、タイルのインデックス情報(idx)の例を示す図である。図48に示す例では、インデックス情報は、ヌルタイルにも割り当てられる。
次に、ヌルタイルを含む符号化データのデータ構成及び送出方法について説明する。図49~図51は、6個のタイルに位置情報及び属性情報を分割する場合において、3番目及び5番目のタイルにデータが存在しない場合のデータ構造を示す図である。
図49は、各データの依存関係の一例を示す図である。図中の矢印の先は依存先を示し、矢印の元は依存元を示している。また、同図において、Gtn(nは1~6)は、タイル番号nの位置情報を示し、Atnは、タイル番号nの属性情報を示す。Mtileは、タイル付加情報を示す。
図50は、三次元データ符号化装置から送出される符号化データである送出データの構成例を示す図である。また、図51は、符号化データの構成及び符号化データのNALユニットへの格納方法を示す図である。
図51に示すように、位置情報(分割位置情報)及び属性情報(分割属性情報)のデータのヘッダ内には、それぞれタイルのインデックス情報(tile_idx)が含まれる。
また、図50の構造1に示すように、三次元データ符号化装置は、ヌルタイルを構成する位置情報又は属性情報は送出しなくてもよい。または、図50の構造2に示すように、三次元データ符号化装置は、ヌルタイルのデータとして当該タイルがヌルタイルであることを示す情報を送出してもよい。例えば、三次元データ符号化装置は、NALユニットのヘッダ、又は、NALユニットのペイロード(nal_unit_payload)内のヘッダに格納されるtile_typeに当該データのタイプがヌルタイルであることを記載し、当該ヘッダを送出してもよい。なお、以降では構造1を前提に説明を行う。
構造1では、ヌルタイルが存在する場合、送出データにおいて、位置情報データ又は属性情報データのヘッダに含まれるタイルのインデックス情報(tile_idx)の値は、歯抜けとなり連続しない。
また、三次元データ符号化装置は、データ間に依存関係がある場合、参照先のデータが参照元のデータより先に復号できるように送出する。なお、属性情報のタイルは位置情報のタイルに対して依存関係がある。依存関係がある属性情報と位置情報には同一のタイルのインデックス番号が付加される。
なお、タイル分割に係るタイル付加情報は、位置情報のパラメータセット(GPS)、及び属性情報のパラメータセット(APS)の両方に格納されてもよいし、いずれか一方に格納されてもよい。GPS及びAPSの一方にタイル付加情報が格納される場合、GPS及びAPSの他方には、参照先のGPS又はAPSを示す参照情報が格納されてもよい。また、位置情報と属性情報とでタイル分割方法が異なる場合は、GPSとAPSとのそれぞれに異なるタイル付加情報が格納される。また、タイル分割の方法がシーケンス(複数PCCフレーム)で同一の場合は、GPS、APS又はSPS(シーケンスパラメータセット)にタイル付加情報が格納されてもよい。
例えば、GPSとAPSとの両方にタイル付加情報が格納される場合、GPS内には位置情報のタイル付加情報が格納され、APS内には属性情報のタイル付加情報が格納される。また、SPSなどの共通の情報にタイル付加情報が格納される場合には、位置情報と属性情報で共通に用いられるタイル付加情報が格納されてもよいし、位置情報のタイル付加情報と属性情報のタイル付加情報とがそれぞれ格納されてもよい。
以下、タイル分割とスライス分割との組み合わせについて説明する。まず、スライス分割後にタイル分割を行う場合のデータ構成及びデータ送出について説明する。
図52は、スライス分割後にタイル分割を行う場合の各データの依存関係の一例を示す図である。図中の矢印の先は依存先を示し、矢印の元は依存元を示している。また、図中に実線で示すデータは実際に送出されるデータであり、点線で示すデータは送出されないデータである。
また、同図において、Gは位置情報を示し、Aは属性情報を示す。Gs1は、スライス番号1の位置情報を示し、Gs2は、スライス番号2の位置情報を示す。Gs1t1は、スライス番号1かつタイル番号1の位置情報を示し、Gs2t2は、スライス番号2かつタイル番号2の位置情報を示す。同様に、As1は、スライス番号1の属性情報を示し、As2は、スライス番号2の属性情報を示す。As1t1は、スライス番号1かつタイル番号1の属性情報を示し、As2t1は、スライス番号2かつタイル番号1の属性情報を示す。
Msliceは、スライス付加情報を示し、MGtileは、位置タイル付加情報を示し、MAtileは、属性タイル付加情報を示す。Ds1t1は属性情報As1t1の依存関係情報を示し、Ds2t1は属性情報As2t1の依存関係情報を示す。
三次元データ符号化装置は、ヌルタイルに係る位置情報及び属性情報の生成及び送出を行わなくてもよい。
また、全てのスライスにおいて、タイル分割数が同一である場合でも、スライス間で生成及び送出されるタイルの数は異なる可能性がある。例えば、位置情報と属性情報とのタイル分割数が異なる場合、位置情報と属性情報とのいずれか一方にヌルタイルが存在し、他方に存在しない場合がある。図52に示す例では、スライス1の位置情報(Gs1)は、Gs1t1とGs1t2との2つのタイルに分割され、このうちGs1t2がヌルタイルである。一方、スライス1の属性情報(As1)は分割されず一つのAs1t1が存在し、ヌルタイルは存在しない。
また、三次元データ符号化装置は、位置情報のスライスにヌルタイルが含まれているか否かに係らず、少なくとも属性情報のタイルにデータが存在する場合、属性情報の依存関係情報を生成及び送出する。例えば、三次元データ符号化装置は、スライス分割に係るスライス付加情報に含まれるスライス毎の分割情報に、タイル毎のスライス分割の情報を格納する場合、この情報に当該タイルがヌルタイルであるか否かの情報を格納する。
図53は、データの復号順の例を示す図である。図53の例では、左のデータから順に復号が行われる。三次元データ復号装置は、依存関係にあるデータ間では、依存先のデータから先に復号する。例えば、三次元データ符号化装置は、この順序となるようにデータを予め並び替えて送出する。なお、依存先のデータが先になる順序であれば、どのような順序でもよい。また、三次元データ符号化装置は、付加情報及び依存関係情報をデータより先に送出してもよい。
次に、タイル分割後にスライス分割を行う場合のデータ構成及びデータ送出について説明する。
図54は、タイル分割後にスライス分割を行う場合の各データの依存関係の一例を示す図である。図中の矢印の先は依存先を示し、矢印の元は依存元を示している。また、図中に実線で示すデータは実際に送出されるデータであり、点線で示すデータは送出されないデータである。
また、同図において、Gは位置情報を示し、Aは属性情報を示す。Gt1は、タイル番号1の位置情報を示す。Gt1s1は、タイル番号1かつスライス番号1の位置情報を示し、Gt1s2は、タイル番号1かつスライス番号2の位置情報を示す。同様に、At1は、タイル番号1の属性情報を示し、At1s1は、タイル番号1かつスライス番号1の属性情報を示す。
Mtileは、タイル付加情報を示し、MGsliceは、位置スライス付加情報を示し、MAsliceは、属性スライス付加情報を示す。Dt1s1は属性情報At1s1の依存関係情報を示し、Dt2s1は属性情報At2s1の依存関係情報を示す。
三次元データ符号化装置は、ヌルタイルをスライス分割しない。また、ヌルタイルに係る位置情報、属性情報、及び属性情報の依存関係情報の生成、及び送出を行わなくてもよい。
図55は、データの復号順の例を示す図である。図55の例では、左のデータから順に復号が行われる。三次元データ復号装置は、依存関係にあるデータ間では、依存先のデータから先に復号する。例えば、三次元データ符号化装置は、この順序となるようにデータを予め並び替えて送出する。なお、依存先のデータが先になる順序であれば、どのような順序でもよい。また、三次元データ符号化装置は、付加情報及び依存関係情報をデータより先に送出してもよい。
次に、点群データの分割処理、及び結合処理の流れについて説明する。なお、ここでは、タイル分割及びスライス分割の例を説明するが、その他の空間の分割に対しても同様の手法を適用できる。
図56は、三次元データ符号化装置によるデータ分割処理を含む三次元データ符号化処理のフローチャートである。まず、三次元データ符号化装置は、使用する分割方法を決定する(S5101)。具体的には、三次元データ符号化装置は、第1分割方法と第2分割方法とのいずれを用いるかを決定する。例えば、三次元データ符号化装置は、ユーザ又は外部装置(例えば三次元データ復号装置)からの指定に基づき分割方法を決定してもよいし、入力された点群データに応じて分割方法を決定してもよい。また、使用される分割方法は予め定められていてもよい。
ここで、第1分割方法とは、複数の分割単位(タイル又はスライス)の全てに、常にそれぞれ1以上の点データが含まれる分割方法である。第2分割方法とは、複数の分割単位に、点データを含まない分割単位が1以上存在する分割方法、又は、複数の分割単位に、点データを含まない分割単位が1以上ある可能性のある分割方法である。
決定された分割方法が第1分割方法である場合(S5102で第1分割方法)、三次元データ符号化装置は、データ分割に係るメタデータである分割付加情報(例えばタイル付加情報又はスライス付加情報)に使用された分割方法が第1分割方法であることを記載する(S5103)。そして、三次元データ符号化装置は、全ての分割単位を符号化する(S5104)。
一方、決定された分割方法が第2分割方法である場合(S5102で第2分割方法)、三次元データ符号化装置は、分割付加情報に使用された分割方法が第2分割方法であることを記載する(S5105)。そして、三次元データ符号化装置は、複数の分割単位のうち、点データを含まない分割単位(例えばヌルタイル)を除く分割単位を符号化する(S5106)。
図57は、三次元データ復号装置によるデータ結合処理を含む三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、ビットストリームに含まれる分割付加情報を参照し、使用された分割方法が第1分割方法であるか第2分割方法であるかを判定する(S5111)。
使用された分割方法が第1分割方法である場合(S5112で第1分割方法)、三次元データ復号装置は、全ての分割単位の符号化データを受信し、受信した符号化データを復号することで、全ての分割単位の復号データを生成する(S5113)。次に、三次元データ復号装置は、全ての分割単位の復号データを用いて三次元点群を再構成する(S5114)。例えば、三次元データ復号装置は、複数の分割単位を結合することで三次元点群を再構成する。
一方、使用された分割方法が第2分割方法である場合(S5112で第2分割方法)、三次元データ復号装置は、点データを含む分割単位の符号化データ、及び点データを含まない分割単位の符号化データを受信し、受信した分割単位の符号化データを復号することで復号データを生成する(S5115)。なお、三次元データ復号装置は、点データを含まない分割単位が送出されていない場合は、点群データを含まない分割単位を受信及び復号しなくてもよい。次に、三次元データ復号装置は、点データを含む分割単位の復号データを用いて三次元点群を再構成する(S5116)。例えば、三次元データ復号装置は、複数の分割単位を結合することで三次元点群を再構成する。
以下、その他の点群データの分割方法について説明する。図45の(c)に示すように空間を均等に分割する場合、分割された空間に点が存在しない場合がある。この場合において、三次元データ符号化装置は、点が存在しない空間を点が存在する他の空間と結合する。これにより、三次元データ符号化装置は、全ての分割単位が1以上の点を含むように複数の分割単位を形成できる。
図58は、この場合のデータ分割のフローチャートである。まず、三次元データ符号化装置は、データを特定の方法で分割する(S5121)。例えば、特定の方法とは、上述した第2分割方法である。
次に、三次元データ符号化装置は、処理対象の分割単位である対象分割単位に点が含まれるか否かを判定する(S5122)。対象分割単位に点が含まれる場合(S5122でYes)、三次元データ符号化装置は、対象分割単位を符号化する(S5123)。一方、対象分割単位に点が含まれない場合(S5122でNo)、三次元データ符号化装置は、対象分割単位と、点を含む他の分割単位とを結合し、結合後の分割単位を符号化する(S5124)。つまり、三次元データ符号化装置は、対象分割単位を、点を含む他の分割単位と一緒に符号化する。
なお、ここでは、分割単位毎に判定及び結合を行う例を述べたが、処理方法はこれに限らない。例えば、三次元データ符号化装置は、複数の分割単位の各々に点が含まれるか否かを判定し、点が含まれない分割単位がなくなるように結合を行い、結合後の複数の分割単位の各々を符号化してもよい。
次に、ヌルタイルを含むデータの送出方法について説明する。三次元データ符号化装置は、処理対象のタイルである対象タイルがヌルタイルである場合には、対象タイルのデータを送出しない。図59は、データ送出処理のフローチャートである。
まず、三次元データ符号化装置は、タイルの分割方法を決定し、決定した分割方法を用いて点群データをタイルに分割する(S5131)。
次に、三次元データ符号化装置は、対象タイルがヌルタイルであるか否かを判定する(S5132)。つまり、三次元データ符号化装置は、対象タイル内にデータがないか否かを判定する。
対象タイルがヌルタイルである場合(S5132でYes)、三次元データ符号化装置は、タイル付加情報に、対象タイルがヌルタイルであることを示し、対象タイルの情報(タイルの位置及びサイズ等)を示さない(S5133)。また、三次元データ符号化装置は、対象タイルを送出しない(S5134)。
一方、対象タイルがヌルタイルでない場合(S5132でNo)、三次元データ符号化装置は、タイル付加情報に対象タイルがヌルタイルでないことを示し、タイル毎の情報を示す(S5135)。また、三次元データ符号化装置は、対象タイルを送出する(S5136)。
このように、ヌルタイルの情報をタイル付加情報に含めないことにより、タイル付加情報の情報量を削減できる。
以下、ヌルタイルを含む符号化データの復号方法について説明する。まず、パケットロスがない場合の処理について説明する。
図60は、三次元データ符号化装置から送出される符号化データである送出データと、三次元データ復号装置に入力される受信データの例を示す図である。なお、ここでは、パケットロスがないシステム環境の場合を想定しており、受信データは送出データと同じである。
三次元データ復号装置は、パケットロスがないシステム環境の場合には、送出データの全てを受信する。図61は、三次元データ復号装置による処理のフローチャートである。
まず、三次元データ復号装置は、タイル付加情報を参照し(S5141)、それぞれのタイルがヌルタイルであるか否かを判定する(S5142)。
タイル付加情報に対象タイルがヌルタイルでないことが示される場合(S5142でNo)、三次元データ復号装置は、対象タイルはヌルタイルではないと判断し、対象タイルを復号する(S5143)。次に、三次元データ復号装置は、タイル付加情報からタイルの情報(タイルの位置情報(原点座標等)及びサイズ等)を取得し、取得した情報を用いて複数のタイルを結合することでの三次元データを再構成する(S5144)。
一方、タイル付加情報に対象タイルがヌルタイルでないことが示される場合(S5142でYes)、三次元データ復号装置は、対象タイルはヌルタイルであると判断し、対象タイルを復号しない(S5145)。
なお、三次元データ復号装置は、符号化データのヘッダに示されるインデックス情報を順番に解析することにより、歯抜けとなっているデータがヌルタイルであると判定してもよい。また、三次元データ復号装置は、タイル付加情報を用いた判定方法とインデックス情報を用いた判定方法とを組み合わせてもよい。
次に、パケットロスがある場合の処理について説明する。図62は、三次元データ符号化装置から送出される送出データ、及び、三次元データ復号装置に入力される受信データの例を示す図である。ここでは、パケットロスがあるシステム環境の場合を想定している。
パケットロスがあるシステム環境の場合、三次元データ復号装置は、送出データの全てを受信できない可能性がある。この例では、Gt2とAt2のパケットが損失している。
図63は、この場合の三次元データ復号装置の処理のフローチャートである。まず、三次元データ復号装置は、符号化データのヘッダに示されるインデックス情報の連続性を解析し(S5151)、対象タイルのインデックス番号が存在するか否かを判定する(S5152)。
対象タイルのインデックス番号が存在する場合(S5152でYes)、三次元データ復号装置は、対象タイルはヌルタイルでないと判断し、対象タイルの復号処理を実施する(S5153)。次に、三次元データ復号装置は、タイル付加情報からタイルの情報(タイルの位置情報(原点座標等)及びサイズ等)を取得し、取得した情報を用いて複数のタイルを結合することでの三次元データを再構成する(S5154)。
一方、対象タイルのインデックス情報が存在しない場合(S5152でNo)、三次元データ復号装置は、タイル付加情報を参照することで、対象タイルがヌルタイルであるか否かを判定する(S5155)。
対象タイルがヌルタイルでない場合(S5156でNo)、三次元データ復号装置は、対象タイルは損失した(パケットロス)と判断し、エラー復号処理を実施する(S5157)。エラー復号処理とは、例えば、データがあったものとして、元データの復号を試みる処理である。この場合、三次元データ復号装置は、三次元データを再生し、三次元データの再構成を実施してもよい(S5154)。
一方、対象タイルがヌルタイルである場合(S5156でYes)、三次元データ復号装置は、対象タイルはヌルタイルであるものとして、復号処理及び三次元データの再構成を実施しない(S5158)。
次に、ヌルタイルを明示しない場合の符号化方法について説明する。三次元データ符号化装置は、以下の方法で符号化データ及び付加情報を生成してもよい。
三次元データ符号化装置は、タイル付加情報に、ヌルタイルの情報を示さない。三次元データ符号化装置は、ヌルタイルを除くタイルのインデックス番号をデータヘッダに付与する。三次元データ符号化装置は、ヌルタイルを送出しない。
この場合、タイル分割数(number_of_tiles)は、ヌルタイルを含めない分割数を示す。なお、三次元データ符号化装置は、別途ヌルタイルの数を示す情報をビットストリームに格納してもよい。また、三次元データ符号化装置は、付加情報にヌルタイルに関する情報を示してもよし、ヌルタイルに関する一部の情報を示してもよい。
図64は、この場合の三次元データ符号化装置による三次元データ符号化処理のフローチャートである。まず、三次元データ符号化装置は、タイルの分割方法を決定し、決定した分割方法を用いて点群データをタイルに分割する(S5161)。
次に、三次元データ符号化装置は、対象タイルがヌルタイルであるか否かを判定する(S5162)。つまり、三次元データ符号化装置は、対象タイル内にデータがないか否かを判定する。
対象タイルがヌルタイルでない場合(S5162でNo)、三次元データ符号化装置は、データヘッダに、ヌルタイルを除くタイルのインデックス情報を付与する(S5163)。そして、三次元データ符号化装置は、対象タイルを送出する(S5164)。
一方、対象タイルがヌルタイルである場合(S5162でYes)、三次元データ符号化装置は、データヘッダへの対象タイルのインデックス情報を付与、及び対象タイルの送出を行わない。
図65は、データヘッダに付加されるインデックス情報(idx)の例を示す図である。図65に示すようにヌルタイルのインデックス情報は付加されず、ヌルタイル以外のタイルに対して連続番号が付加される。
図66は、各データの依存関係の一例を示す図である。図中の矢印の先は依存先を示し、矢印の元は依存元を示している。また、同図において、Gtn(nは1~4)は、タイル番号nの位置情報を示し、Atnは、タイル番号nの属性情報を示す。Mtileは、タイル付加情報を示す。
図67は、三次元データ符号化装置から送出される符号化データである送出データの構成例を示す図である。
以下、ヌルタイルを明示しない場合の復号方法について説明する。図68は、三次元データ符号化装置から送出される送出データ、及び、三次元データ復号装置に入力される受信データの例を示す図である。ここでは、パケットロスがあるシステム環境の場合を想定している。
図69は、この場合の三次元データ復号装置の処理のフローチャートである。まず、三次元データ復号装置は、符号化データのヘッダに示されるタイルのインデックス情報を解析し、対象タイルのインデックス番号が存在するか否かを判定する。また、三次元データ復号装置は、タイル付加情報からタイルの分割数を取得する(S5171)。
対象タイルのインデックス番号が存在する場合(S5172でYes)、三次元データ復号装置は、対象タイルの復号処理を実施する(S5173)。次に、三次元データ復号装置は、タイル付加情報からタイルの情報(タイルの位置情報(原点座標等)及びサイズ等)を取得し、取得した情報を用いて複数のタイルを結合することでの三次元データを再構成する(S5175)。
一方、対象タイルのインデックス番号が存在しない場合(S5172でNo)、三次元データ復号装置は、対象タイルはパケットロスと判断し、エラー復号処理を実施する(S5174)。また、三次元データ復号装置は、データに存在しない空間は、ヌルタイルであると判断し、三次元データ再構成する。
また、三次元データ符号化装置は、ヌルタイルを明示的に示すことで、測定ミス或いはデータ処理等によるデータ欠損、またはパケットロスではなく、タイル内に点が存在しないことを適切に判断することができる。
なお、三次元データ符号化装置は、ヌルパケットを明示的に示す方法と、ヌルパケットを明示的に示さない方法とを併用してもよい。その場合、三次元データ符号化装置は、ヌルパケットを明示的に示すか否かを示す情報をタイル付加情報に示してもよい。また、分割方法のタイプに応じて、予めヌルパケットを明示的に示すか否かを決定しておき、三次元データ符号化装置は、分割方法のタイプを示すことによりヌルパケットを明示的に示すか否かを示してもよい。
また、図47等において、タイル付加情報に、全てのタイルに係る情報が示される例を示したが、タイル付加情報に、複数のタイルのうちの一部のタイルの情報が示されてもよいし、複数のタイルのうちの一部のタイルのヌルタイルの情報が示されてもよい。
また、分割データ(タイル)があるか否かの情報等の分割データに関する情報が、タイル付加情報に格納される例を説明したが、これらの情報の一部又は全ては、パラメータセットに格納されてもいし、データとして格納されてもよい。これらの情報がデータとして格納される場合には、例えば分割データがあるか否かを示す情報を意味するnal_unit_typeを定義し、これらの情報をNALユニットに格納してもよい。また、これらの情報は、付加情報とデータとの両方に格納されてもよい。
(実施の形態6)
以下、タイル毎に量子化を行う処理について説明する。
図70は、GPSのシンタックス例を示す図である。図70に示すように、GPSは、タイル間重複点フラグ(UniqueBetweenTilesFlag)を含む。タイル間重複点フラグは、タイル間で重複点が存在する可能性があるか否かを示すフラグである。
図71は、三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、ビットストリームに含まれるメタデータからUniqueBetweenTilesFlag及びMergeDuplicatedPointFlagを復号する(S6261)。次に、三次元データ復号装置は、タイル毎に位置情報及び属性情報を復号し、点群を再構成する(S6262)。
次に、三次元データ復号装置は、重複点のマージが必要であるか否かを判定する(S6263)。例えば、三次元データ復号装置は、アプリケーションが重複点に対応できるか否か、又は重複点をマージしたほうがよいか否かに応じて、マージが必要であるか否かを判定する。または、三次元データ復号装置は、重複点に対応する複数の属性情報を平滑化又はフィルタリング処理し、雑音除去又は推定精度を向上することを目的として、重複点をマージすると判定してもよい。
重複点のマージが必要である場合(S6263でYes)、三次元データ復号装置は、タイル間の重複がある(重複点が存在する)か否かを判定する(S6264)。例えば、三次元データ復号装置は、UniqueBetweenTilesFlag及びMergeDuplicatedPointFlagの復号結果に基づき、タイル間の重複の有無を判定してもよい。これにより、三次元データ復号装置における重複点のサーチが不要となり、三次元データ復号装置の処理負荷を軽減できる。なお、三次元データ復号装置は、タイルを再構成後に重複点をサーチすることにより、重複点が存在するか否かを判定してもよい。
タイル間の重複がある場合(S6264でYes)、三次元データ復号装置は、タイル間の重複点をマージする(S6265)。次に、三次元データ復号装置は、重複する複数の属性情報をマージする(S6266)。
ステップS6266の後、又は、タイル間の重複がない場合(S6264でNo)、三次元データ復号装置は、重複点のない点群を用いてアプリケーションを実行する(S6267)。
一方、重複点のマージが必要でない場合(S6263でNo)、三次元データ復号装置は、重複点のマージは行わず、重複点が存在する点群を用いてアプリケーションを実行する(S6268)。
以下、アプリケーションの例を説明する。まず、重複点のない点群を用いるアプリケーションの例を説明する。
図72は、アプリケーションの例を示す図である。図72に示す例は、タイルAの領域からタイルBの領域へ走行中の移動体が、サーバから地図点群をリアルタイムにダウンロードするユースケースを示す。サーバは複数の重複するエリアの地図点群の符号化データを格納している。移動体は、タイルAの地図情報を取得済みであり、移動方向に位置するタイルBの地図情報の取得をサーバに要求する。
その際、移動体は、タイルAとタイルBとの重複部分のデータは不要であると判断し、タイルBに含まれるタイルBとタイルAとの重複部分を削除する指示をサーバに送信する。サーバは、タイルBから上記重複部分を削除し、削除後のタイルBを移動体に配信する。これにより、伝送データ量の削減、及び復号処理の負荷の低減を実現できる。
なお、移動体はフラグに基づき重複点がないことを確認してもよい。また、移動体は、タイルAを取得済みでない場合は、重複部分を削除しないデータをサーバに要求する。また、移動体は、サーバに重複点の削除機能がない場合、又は重複点があるか否かわからない場合、配信されたデータを確認して重複点があるか否かを判定し、重複点がある場合はマージを行ってもよい。
次に、重複点のある点群を用いるアプリケーションの例を説明する。移動体は、LiDARで取得した地図点群データをリアルタイムにサーバにアップロードする。例えば、移動体は、タイル毎に取得したデータをサーバにアップロードする。この場合、タイルAとタイルBとが重複する領域は存在するが、符号化側の移動体は、タイル間の重複点をマージせず、タイル間の重複があることを示すフラグとともにデータをサーバに送出する。サーバは、受信したデータに含まれる重複データをマージせずに、受信したデータをそのまま蓄積する。
また、点群データをISOBMFF、MPEG-DASH/MMT、又はMPEG-TSなどのシステムを用いて伝送あるいは蓄積する場合、装置は、GPSに含まれる、タイル内に重複点があるか否か、又はタイル間に重複点があるか否かを示すフラグを、システムレイヤにおける記述子又はメタデータに置き換え、SI、MPD、moov、又はmoofボックスなどに格納してもよい。これにより、アプリケーションがシステムの機能を活用することができる。
また、三次元データ符号化装置は、図73に示すように、例えば、タイルBを、他のタイルとの重複領域に基づき、複数のスライスに分割してもよい。図73に示す例では、スライス1はどのタイルとも重複しない領域であり、スライス2はタイルAと重複する領域であり、スライス3はタイルCと重複する領域である。これにより、符号化データからの所望データの分離が容易となる。
また、地図情報は、点群データであってもよいし、メッシュデータであってもよい。点群データは、領域ごとにタイル化され、サーバに保存されてもよい。
図74は、上記システムにおける処理の流れを示すフローチャートである。まず、端末(例えば移動体)は、端末の領域Aから領域Bへの移動を検知する(S6271)。次に、端末は、領域Bの地図情報の取得を開始する(S6272)。
端末が領域Aの情報をダウンロード済である場合(S6273でYes)、端末は、領域Aとの重複点を含まない領域Bのデータの取得をサーバに指示する(S6274)。サーバは領域Bから領域Aを削除し、削除後の領域Bのデータを端末へ送信する(S6275)。なお、サーバは、端末からの指示に応じて、重複点が生じないようにリアルタイムに領域Bのデータを符号化して送信してもよい。
次に、端末は、領域Aの地図情報に領域Bの地図情報をマージ(結合)し、マージ後の地図情報を表示する(S6276)。
一方、端末が領域Aの情報をダウンロード済でない場合(S6273でNo)、端末は、領域Aとの重複点を含む領域Bのデータの取得をサーバに指示する(S6277)。サーバは、領域Bのデータを端末に送信する(S6278)。次に、端末は、領域Aとの重複点を含む領域Bの地図情報を表示する(S6279)。
図75は、システムにおける別の動作例を示すフローチャートである。送信装置(三次元データ符号化装置)は、タイルのデータを順番に送信する(S6281)。また、送信装置は、送信対象のタイルのデータに、送信対象のタイルが一つ前に送信したデータのタイルと重複するか否かを示すフラグを付加し、当該データを送出する(S6282)。
受信装置(三次元データ復号装置)は、データに付加されたフラグに基づき、受信したデータのタイルが前に受信したデータのタイルと重複するか否かを判定する(S6283)。受信したデータのタイルが前に受信したデータのタイルと重複する場合(S6283でYes)、受信装置は、重複点を削除又はマージする(S6284)。一方、受信したデータのタイルが前に受信したデータのタイルと重複しない場合(S6283でNo)、受信装置は、重複点を削除又はマージする処理を行ず、処理を終了する。これにより、受信装置の処理負荷の軽減、及び属性情報の推定精度向上を実現できる。なお、受信装置は、重複点のマージが必要ない場合は、マージを行わなくてもよい。
(実施の形態7)
本実施の形態では、点群を用いたアプリケーションにおける、視点に基づく表示方法、符号化データのランダムアクセス方法、点群データの符号化方法、及び復号方法について説明する。
センサの性能の向上に伴い、高品質の三次元点群を得ることができるようになってきた。しかしながら、高品質の三次元点を視聴するためには、この高品質の三次元点群を再生できる視聴装置(ビュアー)が必要である。具体的には、高品質でデータ量の多い三次元点群(ポイントクラウド)を、遅延なく表示できることが望まれる。本実施形態では、点群圧縮を用いたスケーラブルな方法により、密度の高い点群データを効率的に表示できる三次元点群の視聴装置(第1アプリケーション)について説明する。
複数のデータ分割方式により点群圧縮が行われる。例えば、LoD(Levels of Details)を用いて、仮想カメラと点群データとの距離に応じて、点群データを表すために必要な解像度が算出される。これにより、分離又は階層化が実現される。
三次元点群視聴装置(三次元データ復号装置とも呼ぶ)は、レンダリング用に可視(visible)の点群を選択する。このとき、三次元データ復号装置は、全ての可視の点群が、近似ではなく実際にスキャンされたデータであることを確認することが好ましい。
図76は、三次元データ符号化装置の構成例を示すブロック図である。三次元データ符号化装置は、点群符号化部8701と、ファイルフォーマット生成部8702とを備える。点群符号化部8701は、点群データを符号化することで符号化データ(ビットストリーム)を生成する。例えば、点群符号化部8701は、8分木を用いた位置情報ベースの符号化方法、又は、ビデオベースの符号化方法などを用いて、点群データを符号化する。
ファイルフォーマット生成部8702は、符号化データ(ビットストリーム)を所定のファイルフォーマットのデータに変更する。例えば、ファイルフォーマットは、ISOBMFF又はMP4などである。なお、三次元データ符号化装置は、ファイルフォーマット形式の符号化データを出力(例えば、三次元データ復号装置に送信)してもよいし、符号化方式におけるビットストリーム形式の符号化データを出力してもよい。
図77は、三次元データ復号装置8705の構成例を示すブロック図である。三次元データ復号装置8705は、符号化データを復号することで点群データを生成する。ここで、符号化データは、例えば、ビットストリーム形式又はMP4形式の符号化データである。なお、符号化されない点群データが用いられてもよい。
点群における全部のデータ群、又は一部のデータ群をブリック(brick)と呼ぶ。なお、このブリックを、分割データ、タイル(tile)又はスライス(slice)と呼ぶこともある。分割データがさらに分割される場合もある。
三次元データ復号装置8705は、カメラの視点(アングル)を示すカメラ視点情報を外部から取得する。三次元データ復号装置8705は、カメラ視点情報に基づき、符号化データの一部或いは全部を取得し、取得した符号化データを復号することで点群データを生成する。例えば、カメラ視点情報は、カメラの位置及び方向(向き)を示す。その後、三次元データ復号装置8705は、復号した点群データを表示する。
三次元データ復号装置8705は、点群復号部8706と、ブリック復号制御部8707とを備える。カメラ視点情報(カメラ視野角)がブリック復号制御部8707に入力される。ブリック復号制御部8707は、カメラ視点情報に基づき決定されるブリックの可視性に基づいて、復号するブリックを選択する。点群復号部8706は、選択されたブリックを復号し、復号されたブリックを出力する。
以下、本実施の形態に係る三次元データ符号化装置の構成を説明する。図78は、本実施の形態に係る三次元データ符号化装置8710の構成を示すブロック図である。三次元データ符号化装置8710は、点群データ(ポイントクラウド)を符号化することで符号化データ(符号化ストリーム)を生成する。この三次元データ符号化装置8710は、分割部8711と、複数の位置情報符号化部8712と、複数の属性情報符号化部8713と、付加情報符号化部8714と、多重化部8715と、法線ベクトル生成部8716とを含む。
分割部8711は、点群データを分割することで複数の分割データを生成する。具体的には、分割部8711は、点群データの空間を複数のサブ空間に分割することで複数の分割データを生成する。ここでサブ空間とは、ブリック、タイル及びスライスのいずれか、又はブリック、タイル及びスライスのうちの2以上の組み合わせである。より具体的には、点群データは、位置情報、属性情報(色又は反射率等)、及び付加情報を含む。分割部8711は、位置情報を分割することで複数の分割位置情報を生成し、属性情報を分割することで複数の分割属性情報を生成する。また、分割部8711は、分割に関する付加情報を生成する。
複数の位置情報符号化部8712は、複数の分割位置情報を符号化することで複数の符号化位置情報を生成する。例えば、位置情報符号化部8712は、8分木等のN分木構造を用いて分割位置情報を符号化する。具体的には、8分木では、対象空間が8個のノード(サブ空間)に分割され、各ノードに点群が含まれるか否かを示す8ビットの情報(オキュパンシー符号)が生成される。また、点群が含まれるノードは、さらに、8個のノードに分割され、当該8個のノードの各々に点群が含まれるか否かを示す8ビットの情報が生成される。この処理が、予め定められた階層又はノードに含まれる点群の数の閾値以下になるまで繰り返される。例えば、複数の位置情報符号化部8712は、複数の分割位置情報を並列処理する。
属性情報符号化部8713は、位置情報符号化部8712で生成された構成情報を用いて属性情報を符号化することで符号化データである符号化属性情報を生成する。例えば、属性情報符号化部8713は、位置情報符号化部8712で生成された8分木構造に基づき、処理対象の対象点(対象ノード)の符号化において参照する参照点(参照ノード)を決定する。例えば、属性情報符号化部8713は、周辺ノード又は隣接ノードのうち、8分木における親ノードが対象ノードと同一のノードを参照する。なお、参照関係の決定方法はこれに限らない。
また、位置情報又は属性情報の符号化処理は、量子化処理、予測処理、及び算術符号化処理のうち少なくとも一つを含んでもよい。この場合、参照とは、属性情報の予測値の算出に参照ノードを用いること、又は、符号化のパラメータの決定に参照ノードの状態(例えば、参照ノードに点群が含まれる否かを示す占有情報)を用いること、である。例えば、符号化のパラメータとは、量子化処理における量子化パラメータ、又は算術符号化におけるコンテキスト等である。
法線ベクトル生成部8716は、分割データ毎の法線ベクトルを算出する。なお、入力データは必ずしも分割されなくてもよい。この場合、法線ベクトル生成部8716は、分割データ毎の法線ベクトルではなく点毎の法線ベクトルを算出してもよい。または、法線ベクトル生成部8716は、分割データ毎の法線ベクトルと点毎の法線ベクトルとの両方を算出してもよい。
付加情報符号化部8714は、点群データに含まれる付加情報と、分割部8711で分割時に生成された、データ分割に関する付加情報と、法線ベクトル生成部8716で生成された法線ベクトルとを符号化することで符号化付加情報を生成する。
多重化部8715は、複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を多重化することで符号化データ(符号化ストリーム)を生成し、生成した符号化データを送出する。また、符号化付加情報は復号時に使用される。
以下、本実施の形態に係る三次元データ復号装置の構成を説明する。図79は、三次元データ復号装置8720の構成を示すブロック図である。三次元データ復号装置8720は、点群データが符号化されることで生成された符号化データ(符号化ストリーム)を復号することで点群データを復元する。この三次元データ復号装置8720は、逆多重化部8721と、複数の位置情報復号部8722と、複数の属性情報復号部8723と、付加情報復号部8724と、結合部8725と、法線ベクトル抽出部8726と、ランダムアクセス制御部8727と、選択部8728とを含む。
逆多重化部8721は、符号化データ(符号化ストリーム)を逆多重化することで複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を生成する。付加情報復号部8724は、符号化付加情報を復号することで付加情報を生成する。
法線ベクトル抽出部8726は、付加情報から法線ベクトルを抽出する。ランダムアクセス制御部8727は、例えば、分割データ毎の法線ベクトルに基づき、抽出する分割データを決定する。選択部8728は、複数の分割データ(複数の符号化位置情報及び複数の符号化属性情報)から、ランダムアクセス制御部8727で決定された複数の分割データ(複数の符号化位置情報及び複数の符号化属性情報)を抽出する。なお、選択部8728は、1つの分割データを抽出してもよい。
複数の位置情報復号部8722は、選択部8728で抽出された複数の符号化位置情報を復号することで複数の分割位置情報を生成する。例えば、複数の位置情報復号部8722は、複数の符号化位置情報を並列処理する。
複数の属性情報復号部8723は、選択部8728で抽出された複数の符号化属性情報を復号することで複数の分割属性情報を生成する。例えば、複数の属性情報復号部8723は、複数の符号化属性情報を並列処理する。
結合部8725は、付加情報を用いて複数の分割位置情報を結合することで位置情報を生成する。結合部8725は、付加情報を用いて複数の分割属性情報を結合することで属性情報を生成する。
次に、点毎の法線ベクトルを生成し、符号化する第1の例について説明する。図80は、点群データの例を示す図である。図81は、点毎の法線ベクトルの例を示す図である。法線ベクトルの符号化は、各三次元群に対して独立して行うことができる。図80及び図81は、本の三次元点群と、当該三次元点群の法線ベクトルとを示す。図81に示すように、上、右、前方向に延びる複数の法線ベクトルが存在する。ここで、本の表面は平面であり、ある表面の複数の法線ベクトルは同じ方向に延びる。一方、表面が丸い場合には、法線ベクトルは表面の法線に従って複数の方向に延びる。
図82は、ビットストリームにおける法線ベクトルのシンタックス例を示す図である。図82に示す法線ベクトルNormalVector[i][face]において、「i」は各三次元点群のカウンタを表し、[face]は、三次元点群を表すx、y、z軸を表す。つまり、NormalVectorは、各軸の法線ベクトルの大きさを表す。
図83は、三次元データ符号化処理のフローチャートである。まず、三次元データ符号化装置は、位置情報(ジオメトリ)及び属性情報を点毎に符号化する(S8701)。例えば、三次元データ符号化装置は、位置情報を点毎に符号化する。また、三次元データ符号化装置は、点に対応する属性情報が存在する場合は、点毎の属性情報を符号化してもよい。
次に、三次元データ符号化装置は、法線ベクトル(x、y、z)を点毎に符号化する(S8702)。三次元データ符号化装置は、点毎の法線ベクトルを符号化してもよい。また、三次元データ符号化装置は、例えば、処理対象の点の法線ベクトルと他の点の法線ベクトルとの差分を示す差分情報を符号化してもよい。これにより、データ量を削減できる。また、三次元データ符号化装置は、法線ベクトルを、位置情報に含めて符号化してもよいし、属性情報に含めて符号化してもよい。また、三次元データ符号化装置は、法線ベクトルを、位置情報及び属性情報から独立に符号化してもよい。なお、1つの点に対して複数の法線ベクトルが存在する場合は、三次元データ符号化装置は、点毎に複数の法線ベクトルを符号化してもよい。
図84は、三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、ビットストリームから位置情報及び属性情報を点毎に復号する(S8706)。次に、三次元データ復号装置は、ビットストリームから法線ベクトルを点毎に復号する(S8707)。
なお、図83及び図84に示す処理順は一例であり、符号化順序、及び復号順序は入れ替わってもよい。
また、三次元データ符号化装置は、位置情報又は位置情報の相関性を用いて法線ベクトルを符号化することでデータ量を削減してもよい。その場合、三次元データ復号装置は、位置情報を用いて法線ベクトルを復号する。以上の方法により、点群における点毎の法線ベクトルを符号化及び復号できる。
次に、点毎の法線ベクトルを生成し、符号化する第2の例について説明する。各点の法線ベクトルを符号化する別の方法として、法線ベクトルを属性情報の1つとして符号化する。以下、属性情報の一つとして、属性情報符号化部又は属性情報復号部を用いて符号化を行う例を説明する。
例えば、三次元データ符号化装置は、色情報を第1の属性情報、法線ベクトルを第2の属性情報として符号化する。図85は、ビットストリームの構成例を示す図である。例えば、図85に示すAttr(0)は第1の属性情報の符号化データであり、Attr(1)は、第2の属性情報の符号化データである。また、符号化に関するメタデータは、パラメータセット(APS)に格納される。三次元データ復号装置は、符号化データに対応するAPSを参照して符号化データを復号する。
なお、SPSには、第2の属性情報が法線ベクトルであることを示す識別情報(attribute_type=Normal Vector)が格納される。また属性情報が法線ベクトルである場合は、法線ベクトルが1点ごとに3つの要素を持つデータであることを示す情報がSPS等に格納されてもよい。また、SPSには、第1の属性情報が色情報であることを示す識別情報(attribute_type=Color)が格納される。
図86は、位置情報、色情報及び法線ベクトルを持つ点群情報の例を示す図である。三次元データ符号化装置は、図86に示す非圧縮点群データを符号化する。
法線ベクトルの値の範囲は、浮動小数点における値-1から1までである。表現を容易にするために、三次元データ符号化装置は、必要な精度に応じて浮動小数点を整数に変換してもよい。例えば、三次元データ符号化装置は、浮動小数点を、8ビット表現を使用して-127から128までの値に変換してもよい。つまり、三次元データ符号化装置は、浮動小数点を、整数、又は正の整数の値に変換してもよい。法線ベクトルは1つの属性情報として扱われるため、異なる量子化処理を適用できる。例えば、属性情報毎に異なる量子化パラメータを用いることができる。これにより、異なる精度レベルを実現できる。例えば、量子化パラメータはAPSに格納される。
図87は、三次元データ符号化処理のフローチャートである。まず、三次元データ符号化装置は、位置情報及び属性情報(色情報等)を点毎に符号化する(S8711)。また、三次元データ符号化装置は、点毎の法線ベクトルを、attribute_type=“normal vector”の属性情報として所定の方法を用いて符号化する(S8712)。
図88は、三次元データ復号処理のフローチャートである。三次元データ復号装置は、ビットストリームから位置情報及び属性情報を点毎に復号する(S8716)。また、三次元データ復号装置は、ビットストリームから点毎の法線ベクトルを、attribute_type=“normal vector”の属性情報として所定の方法を用いて復号する(S8717)。
なお、図87及び図88に示す処理順は一例であり、符号化順序、及び復号順序は入れ替わってもよい。
次に、複数の点を含むデータ単位毎に法線ベクトルを生成する例を説明する。三次元データ符号化装置は、点群データを、点群の位置情報及び特徴に基づき、複数のオブジェクト又は複数の領域に分割する。分割データは、例えばタイル或いはスライス、又は階層化されたデータなどである。三次元データ符号化装置は、この分割データ単位、つまり1以上の点を含むデータ単位で法線ベクトルを生成する。
ここで、可視性(visibility)は、ブリック内のオブジェクトの法線ベクトル表現によって決定できる。図89及び図90は、この処理を説明するための図である。例えば、図89に示すように、三次元データ符号化装置は、横軸と垂直軸とに対して30°の間隔の角度に法線ベクトル方向を分割する。より簡単な方法として、図90に示すように、三次元データ符号化装置は、法線ベクトルを、(0、0)、(0、90)、(0、-90)、(90、0)、(-90、0)、(180、180)の6つの方向に分割してもよい。
また、三次元データ符号化装置は、有効な法線ベクトルを、中央値、平均値、又はその他のより効果的なアルゴリズムを用いて算出してもよい。また、三次元データ符号化装置は、有効な法線ベクトルの値として代表値を用いてもよいし、その他の方法を用いてもよい。
また、分割データ毎の法線ベクトルは、元のx、y、zの値をそのまま示してもよいし、上記のように30度ごとに量子化されてもよいし90度毎の情報に量子化されてもよい。量子化により情報量を削減できる。
図91は、点群データの例であり、顔オブジェクトの例を示す図である。図92は、この場合の法線ベクトルの例を示す図である。図92に示すように、図91に示す顔オブジェクトの法線ベクトルは、(0、0)及び(90、0)方向に向く。三次元データ符号化装置は、方向ごとに1ビットを使用して、その方向にオブジェクトの法線ベクトルがあるか否かを示すことができる。
このように、1つの分割データに対する法線ベクトルが2以上あってもよい。その場合、1つの分割データ単位に対し、複数の法線ベクトルが示されてもよい。
例えば、図91及び図92に示す顔オブジェクトを含むデータの例は、データの法線ベクトルを90度の単位で、面ごとに6通りの法線ベクトルで示す例である。この例の場合、(0、0)及び(90、0)の方向の2つの法線ベクトルが、この分割データの法線ベクトルである。
また、法線ベクトルを示す方法としては、6つの法線ベクトルの各々を1ビットの情報で表してもよい。図93は、この法線ベクトルの情報の例を示す図である。分割データが、該当する法線ベクトルを持つ場合は1ビットの情報は値1に設定され、持たない場合は0に設定される。これにより、x、y、zの値をそのまま示す方法と比較して、データが量子化されることにより情報量を削減できる。
以下、法線ベクトルのより単純な表現方法について説明する。6面の立方体を使用して、特定のカメラ視点から法線ベクトルとその実現可能性(可視性)を表現する。図94~図97は、この処理を説明するための図である。図94は、6面の立方体の例を示す。図95、図96及び図97は、それぞれ、前後の面a及び面b、左右の面c及び面d、及び上下の面e及び面fを示す図である。視野角に応じたオブジェクトの方向に応じて、法線ベクトルは少なくとも1つ又は3つの面に面する。各1ビットの6個のフラグを使用して、各システムを表す立方体の6つの面(abcdef)の1つを表すことができる。例えば、正面から見ると(100000)、側面から見ると(001000)、下から見ると(000001)が生成される。この表現では、大きさは重要ではなく、方向のみが表される。3つの面が指定されるオブジェクトが発生する可能性もある。面aは面bの反対の面であり、面cは面dの反対の面であり、面eは面fの反対の面である。よって、同時に面aと面bを見ることは不可能である。つまり、法線ベクトルは3つのフラグ(ace)を利用して表現できる。
このように、予めカメラ視点(カメラアングル)が既知の場合は、法線ベクトルの情報は3ビットで表現できる。図98は、面cの方向からスライスA又はスライスBのオブジェクトを見たときの可視性を示す図である。スライスAは、面cの方向から可視(visible)であるため、ace=(010)と表現される。一方、スライスBは、面cの方向から見た場合、スライスAに隠れているためace=(000)と表現される。
次に、ブリック毎に法線ベクトルを符号化及び復号する第1の方法について説明する。図99は、この場合のビットストリームの構成例を示す図である。図99に示す例では、それぞれのスライスにおける位置情報のスライスヘッダに法線ベクトルの情報が格納される。なお、法線ベクトルの情報は、属性情報のヘッダに格納されてもよいし、位置情報及び属性情報とは独立したメタデータに格納されてもよい。
図100は、位置情報のスライスヘッダ(Geometry slice header information)のシンタックス例を示す図である。位置情報のスライスヘッダは、normal_vector_numberと、normal_vector_x、normal_vector_y及びnormal_vector_zとを含む。
normal_vector_numberは、スライスデータに対応する法線ベクトルの数を示す。normal_vector_x、normal_vector_y、normal_vector_zは、それぞれスライスデータに対応する法線ベクトルの要素(x、y、z)を示す。
この例では、normal_vectorの数を変更できる。normal_vector_numberの数だけnormal_vectorが示される。
なお、全てのスライスで法線ベクトルの情報が共通の場合は、normal_vector_numberは複数のスライスで共通の情報を格納できるGPS又はSPSに格納されてもよい。
また、x、y、zの法線ベクトルの値は量子化されてもよい。例えば、三次元データ符号化装置は、元の法線ベクトルの値を、共通のビット量s(bit)だけシフトすることにより量子化し、ビット量sを示す情報と、量子化後の法線ベクトル(normal_vector_x<<s、normal_vector_y<<s、normal_vector_z<<s)を示す情報とを送出してもよい。これによりビット量を削減できる。
図101は、位置情報のスライスヘッダの別のシンタックス例を示す図である。この例は、6面のデータに簡素化(量子化)された法線ベクトルを、分割データ毎に示す例である。面毎に、法線ベクトルがあるか否かが示される。
この位置情報のスライスヘッダは、is_normal_vectorを含む。is_normal_vectorは、スライスデータに対応する法線ベクトルがある場合は1に設定され、法線ベクトルがない場合は0に設定される。例えば、複数の面の順番は予め定められている。
なお、量子化の精度及び法線ベクトルの数又は順序はこれに限らない。これらは固定であってもよいし可変であってもよい。
図102は、三次元データ符号化処理のフローチャートである。まず、三次元データ符号化装置は、点群データを分割することで複数の分割データを生成する(S8721)。次に、三次元データ符号化装置は、分割データ毎に、位置情報及び属性情報を符号化する(S8722)。次に、三次元データ符号化装置は、分割データ毎の法線ベクトルを、スライスヘッダに格納する(S8723)。
図103は、三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、ビットストリームから、位置情報及び属性情報を分割データ毎に復号する(S8726)。次に、三次元データ復号装置は、分割データ毎のスライスヘッダから分割データ毎の法線ベクトルを復号する(S8727)。次に、三次元データ復号装置は、複数の分割データを結合する(S8728)。
図104は、部分的にデータを復号する場合の三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、分割データ毎のスライスヘッダから分割データ毎の法線ベクトルを復号する(S8731)。次に、三次元データ復号装置は、法線ベクトルに基づき復号対象の分割データを決定し、決定した分割データを復号する(S8732)。次に、復号された複数の分割データを結合する(S8733)。
次に、ブリック毎に法線ベクトルを符号化及び復号する第2の方法について説明する。法線ベクトルの情報を符号化するもう1つの方法は、メタデータ(例えばSEI:Supplemental Enhancement Information)を使用する方法である。図105は、ビットストリームの構成例を示す図である。図105に示すように、SEIは、ビットストリームに含まれてもよいし、符号化装置と復号装置との両方でSEIがどのように実装されているかに応じて、メインの符号化ビットストリームとは別に別のファイルとして生成されてもよい。
図106は、SEIに含まれるスライス情報(slice_information)のシンタックス例を示す図である。スライス情報は、number_of_sliceと、bounding_box_origin_x、bounding_box_origin_y及びbounding_box_origin_zと、bounding_box_width、bounding_box_height及びbounding_box_depthと、normalVector_QPと、number_of_normal_vectorと、normalVector_x、normalVector_y及びnormalVector_zとを含む。
number_of_sliceは、分割データの数を示す。bounding_box_origin_x、bounding_box_origin_y及びbounding_box_origin_zは、スライスデータのバウンディングボックスの原点座標を示す。bounding_box_width、bounding_box_height及びbounding_box_depthは、それぞれスライスデータのバウンディングボックスの幅、高さ及び奥行きを示す。
normalVector_QPは、normal_vectorが量子化されている場合、その量子化のスケール情報又はビットシフト情報を示す。number_of_normal_vectorは、スライスデータに含まれる法線ベクトルの数を示す。normalVector_x、normalVector_y、normalVector_zは、それぞれ法線ベクトルの要素(x、y、z)の成分を示す。
図107は、SEIに含まれるスライス情報の別の例を示す図である。図107に示す例は、6面のデータに簡素化(量子化)された法線ベクトルを、分割データ毎に示す例である。面毎に、法線ベクトルがあるか否かが示される。
このスライス情報は、is_normal_vectorを含む。is_normal_vectorは、スライスデータに対応する法線ベクトルがある場合は1に設定され、法線ベクトルがない場合は0に設定される。例えば、複数の面の順番は予め定められている。
なお、スライス情報は、当該スライス情報がスライス毎のバウンディングボックスの情報(原点及び幅高さ奥行)を含むか否かを示すフラグを含んでもよい。この場合、フラグがオン(例えば1)の場合に、スライス情報は、スライス毎のバウンディングボックスの情報を含み、フラグがオフ(例えば0)の場合に、スライス情報は、スライス毎のバウンディングボックスの情報を含まない。また、スライス情報は、当該スライス情報がスライス毎の法線ベクトルの情報を含むか否かを示すフラグを含んでもよい。この場合、フラグがオン(例えば1)の場合に、スライス情報は、スライス毎の法線ベクトルの情報を含み、フラグがオフ(例えば0)の場合に、スライス情報は、スライス毎の法線ベクトルの情報を含まない。
次に、ランダムアクセス及び部分復号について説明する。三次元データ復号装置は、スライス毎の情報、例えば、スライスのバウンディングボックス情報及び法線ベクトルのいずれか一方又は両方を用いて、スライス毎にデータを独立して復号する。
図108は、三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、所定の方法で復号するスライス、及びスライスの復号順を決定する(S8741)。次に、三次元データ復号装置は、決定された順番で特定のスライスを復号する(S8742)。
図109は、この部分復号処理の例を示す図である。例えば、三次元データ復号装置は、図109の(a)に示すスライス分割された符号化データを受信する。図109の(b)に示すように、三次元データ復号装置は、一部のスライスの符号化データを復号し、その他のスライスの符号化データを復号しない。または、三次元データ復号装置は、図109の(c)に示すように、符号化データの順番を入れ替えて復号を行う。
図110は、三次元データ復号装置の構成例を示す図である。図110に示すように三次元データ復号装置は、属性情報復号部8731と、ランダムアクセス制御部8732とを備える。属性情報復号部8731は、符号化データから、スライス毎のバウンディングボックスの情報及び法線ベクトルを抽出する。ランダムアクセス制御部8732は、スライス毎のバウンディングボックスの情報及び法線ベクトルと、外部から取得したセンサ情報、例えば、カメラアングル(カメラ向き)及びカメラ位置とに基づき、復号するスライスの番号及び順番を決定する。
図111及び図112は、ランダムアクセス制御部8732の処理例を示す図である。図111に示すように、例えば、ランダムアクセス制御部8732は、スライス毎のバウンディングボックス、及びカメラ位置からスライス毎のカメラからの距離を示す距離情報を算出してもよい。または、図112に示すように、ランダムアクセス制御部8732は、スライス毎の法線ベクトルとカメラアングルから、カメラから物体が見えるか否かを示す可視情報をスライス毎に導出してもよい。なお、ランダムアクセス制御部8732は、距離情報及び可視情報の一方を算出してもよいし、両方を算出してもよい。
以下、可視情報と距離情報とについて説明する。図113は、距離と解像度との関係の例を示す図である。例えば、カメラから見えるものが復号される(frustum culling(視錐台カリング))。さらに復号される解像度は、仮想カメラと点群データの間の距離に依存する。
つまり、三次元データ復号装置は、スライス毎の法線ベクトルとカメラ視点(カメラアングル)から、スライスがカメラから見えるか否かを判定し、カメラから見えるスライスを復号する。さらに、三次元データ復号装置は、復号するスライスのカメラからの距離を計算し、カメラからの距離が近い場合は、高解像度のデータを復号し、カメラからの距離が遠い場合は、低解像度のデータを復号してもよい。
なお、この場合は、符号化データは、階層化されて符号化されており、三次元データ復号装置は、低解像度のデータを独立に復号できる。また、三次元データ復号装置は、高解像度のデータを復号する場合は、さらに低解像度のデータと高解像度のデータとの差分情報を復号し、差分情報を低解像度のデータに加算することで高解像度のデータを生成する。なお、符号化データが階層化されて符号化されていない場合は、三次元データ復号装置は、当該処理は行わなくてもよいし、階層化されているかどうかに応じて当該処理を行うか否かを判定してもよい。
次に、法線ベクトルを用いた可視性の判断について説明する。図114は、ブリックと法線ベクトルの例を示す図である。図114に示す例では、カメラ(視錐台)に面した前面の2つのブリック(例えばスライス)、つまり、法線ベクトルがカメラに向いているブリックが復号される。
まず、三次元データ復号装置は、スライスデータ毎に、メタデータに含まれる1以上の法線ベクトルに、カメラ方向と反対の法線ベクトルを持つ法線ベクトルがあるか否かを判定する。三次元データ復号装置は、対象スライスのスライスデータにカメラ方向と反対の法線ベクトルを持つ法線ベクトルがある場合は、対象スライスが可視(visible)であると判定し、対象スライスを復号対象と決定する。
なお、三次元データ復号装置は、カメラと対象スライスとの間に他のスライスが存在する場合は、対象スライスは不可視(見えない)と判定してもよい。また、三次元データ復号装置は、法線ベクトルとカメラ方向とが完全に正反対であるかを判定するのではなく、法線ベクトルとカメラ方向との関係が所定の角度の範囲内か否かを判定することで、可視であるか否かを判定してもよい。
次に、LoD(Level of Detail)を用いた処理について説明する。以下では、解像度の異なるレイヤに応じた復号処理の例を説明する。
図115は、レベル(LoD)の例を示す図である。図116は、8分木構造の例を示す図である。各ブリックは、復号する解像度のレベルを制御するために、レイヤに分割される。例えば、レベルは8分木に分割する際の分割の深さ(深度)である。図115に示すように、各レベルに含まれるボクセル(Voxel)の数は2(3×レベル)で規定されてもよい。なお、レベルに応じた分割方法又はボクセルの数に別の定義が用いられてもよい。
LoDを用いることで、三次元データ復号装置は、高速な可視性の判定と距離の演算とを実現できる。復号時間はリアルタイムレンダリングに影響を与える。LoDを用いることで、中間的なブリックの表示が可能となるので、リアルタイムレンダリングとスムーズな対応を実現できる。
図117は、LoDを用いた三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、目的に応じて、復号対象のレベルを決定する(S8751)。次に、三次元データ復号装置は、最初のレベル(レベル0)を復号する(S8752)。次に、三次元データ復号装置は、復号対象の全てのレベルの復号が完了したか否かを判定する(S8753)。全てのレベルの復号が完了していない場合(S8753でNo)、三次元データ復号装置は、次のレベルを復号する(S8754)。このとき、三次元データ復号装置は、前のレベルのデータを用いて次のレベルを復号してもよい。復号対象の全てのレベルの復号が完了した場合(S8753でYes)、三次元データ復号装置は、復号したデータを表示する(S8755)。
このように、三次元データ復号装置は、決定したレベルまでデータを復号し、決定したレベル以降はデータを復号しない。これにより、復号に関わる処理量を軽減でき、処理スピードを向上できる。また、三次元データ復号装置は、決定したレベルまでのデータを表示し、決定したレベル以降のデータは表示しない。これにより、表示に関わる処理量を低減でき、処理スピードを向上できる。なお、三次元データ復号装置は、ブリックの復号対象のレベルを、例えば、ブリックのカメラからの距離、又はブリックがカメラから見えるか否かに基づき決定してもよい。
次に、LoDを用いた処理の実装例を説明する。図118は、三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、符号化データを取得する(S8761)。例えば、符号化データは、任意の符号化方式を用いて符号化されて圧縮された点群データである。符号化データは、ビットストリーム形式であってもよいし、ファイルフォーマット形式であってもよい。
次に、三次元データ復号装置は、符号化データから、処理対象のブリックの法線ベクトルと位置情報とを取得する(S8762)。例えば、三次元データ復号装置は、ブリック毎の法線ベクトル及びブリックの位置情報を、符号化データに含まれるメタデータ(SEI又はデータヘッダ)から取得する。なお、三次元データ復号装置は、ブリックの位置情報とカメラ位置の情報とから、ブリックとカメラとの距離を判定してもよい。また、三次元データ復号装置は、法線ベクトルとカメラ方向からブリックの可視性(ブリックがカメラの方向を向いているか否か)を判定してもよい。
次に、三次元データ復号装置は、どのブリックを復号するかを決定し、決定したブリックの最初のレベル(レベル0)を復号する(S8763)。図119は、復号するブリックの例を示す図である。図119に示すように、三次元データ復号装置は、全ての可視のブリックをレベル0の解像度で復号する。
次に、三次元データ復号装置は、位置情報に応じて、各ブリックの次のレベルを復号するか否かを判定し、復号すると判定したブリックの次のレベルを復号する(S8764)。また、この処理が全てのレベルの復号処理が完了するまで繰り返される(S8765)。具体的には、仮想カメラの位置に近いブリックの解像度が高く設定される。例えば、メモリなどのリソースに応じて、カメラに近いブリックを優先して徐々に復号するレベルが追加される。
図120は、各ブリックの復号対象のレベルの例を示す図である。図120に示すように、三次元データ復号装置は、カメラからの距離に応じて、カメラから近いブリックはより高い解像度で復号し、カメラから遠いブリックは低い解像度で復号する。また、三次元データ復号装置は、見えないブリックを復号しない。
全てのレベルの復号が完了した場合(S8765でYes)、三次元データ復号装置は、得られた三次元点群を出力する(S8766)。
これまでは、スライスデータ毎の法線ベクトル及びバウンディング情報を三次元データ符号化装置において算出及び符号化し、三次元データ復号装置において当該情報及びセンサ入力情報に基づき、可視性及び距離情報を算出し、復号するスライスを決定する方法を説明した。以下では、スライス毎のデータに、カメラ方向に応じた可視性及び距離情報を三次元データ符号化装置で予め算出及び符号化する例を説明する。
図121は、位置情報のスライスヘッダ(Geometry slice header information)のシンタックス例を示す図である。位置情報のスライスヘッダは、number_of_angleと、view_angleと、visibilityとを含む。
number_of_angleは、カメラアングル(カメラ方向)の数を示す。view_angleは、カメラアングルを示し、例えば、カメラアングルのベクトルを示す。visibilityは、対応するカメラアングルからスライスが見えるか否かを示す。なお、view_angleの数は可変であってもよいし、予め定められた固定値であってもよい。また、view_angleの数及び値が予め定められている場合は、view_angleが省略されてもよい。
また、ここでは、カメラアングルに応じた可視性を示す例を示したが、その他の例として、三次元データ符号化装置は、カメラ位置又はカメラパラメータに応じた可視性を予め算出し、算出した可視性を符号化データに格納してもよい。
図122は、三次元データ符号化処理のフローチャートである。まず、三次元データ符号化装置は、点群データを分割データ(例えばスライス)に分割する(S8771)。次に、三次元データ符号化装置は、分割データ単位毎に、位置情報及び属性情報を符号化する(S8772)。また、三次元データ符号化装置は、分割データ毎に、カメラアングルに応じた可視情報(visibility)をメタデータに格納する(S8773)。
図123は、三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、分割データ毎のメタデータからカメラアングルに応じた可視情報を取得する(S8776)。次に、三次元データ復号装置は、可視情報に基づき、所望のカメラアングルから可視である分割データを判定し、可視である分割データを復号する(S8777)。
図124及び図125は、点群データの例を示す図である。同図において、a、c、d及びeは平面を表している。よって、三次元データ符号化装置は、スライス分割において、各スライスの三次元点が同じ方向の法線ベクトルを有することを利用してスライス分割を行うことができる。同様の手法はタイル分割にも適用できる。
図126~図129は、三次元データ符号化装置、三次元データ復号装置及び表示装置を含むシステムの構成例を示す図である。
図126に示す例では、三次元データ符号化装置は、スライスデータ、スライス毎の法線ベクトル及びバウンディングボックス情報を符号化することで符号化データを生成する。三次元データ復号装置は、符号化データ及びセンサ情報から、復号するデータを特定し、特定したデータを復号することで復号スライスデータを生成する。表示装置は、復号スライスデータを表示する。この構成では、三次元データ復号装置で可視情報及び復号するかどうかを柔軟に決定できる。
図127に示す例では、三次元データ符号化装置は、スライスデータ、スライス毎の法線ベクトル及びバウンディングボックス情報を符号化することで符号化データを生成する。三次元データ復号装置は、符号化データ及びセンサ情報から、復号するデータ及び順番を決定し、決定したデータを決定した順番で復号する。この構成では、三次元データ復号装置は、初めに表示したいデータ(例えば3、4、5)を先に復号できるので、表示の快適性を向上できる。
図128に示す例では、三次元データ符号化装置は、スライスデータ及びカメラアングル毎の可視情報を符号化することで符号化データを生成する。三次元データ復号装置は、符号化データ情報及びセンサ情報から、復号するデータを特定し、特定したデータを復号する。なお、三次元データ復号装置は、さらに復号順を決定してもよい。この構成では、三次元データ復号装置で可視情報を算出しなくてもよいため、三次元データ復号装置の処理量を低減できる。
図129に示す例では、三次元データ復号装置は、通信などを経由し、三次元データ復号装置のカメラアングル又はカメラ位置などを三次元データ符号化装置に通知する。三次元データ符号化装置は、スライス毎の可視情報を算出し、符号化するデータ、及び順番を決定し、決定したデータを決定した順番で符号化することで符号化データを生成する。三次元データ復号装置は、送出されたスライスデータをそのまま復号する。この構成では、インタラクティブな構成を用いることで必要な部分を符号化して復号することで処理量及び通信帯域を削減できる。
なお、カメラ位置又はカメラアングルが変化する場合、三次元データ復号装置は、その変化量が所定の値を超えた場合に、復号する対象のスライスを再度決定してもよい。その場合、既に復号済のデータ以外の差分のデータを復号することで高速な復号及び表示が可能となる。
以下、符号化データを、例えばISOBMFFなどのファイルフォーマットに格納する方法について説明する。図130は、ビットストリームの構成例を示す図である。図131は、三次元データ符号化装置の構成例を示す図である。三次元データ符号化装置は、符号化部8741と、ファイル変換部8742とを含む。符号化部8741は、点群データを符号化することで符号化データと制御情報とを含むビットストリームを生成する。ファイル変換部8742は、ビットストリームをファイルフォーマットに変換する。
図132は、三次元データ復号装置の構成例を示す図である。三次元データ復号装置は、ファイル逆変換部8751と、復号部8752とを含む。ファイル逆変換部8751は、ファイルフォーマットを、符号化データ及び制御情報を含むビットストリームに変換する。復号部8752は、ビットストリームを復号することで点群データを生成する。
図133は、ISOBMFFの基本構造を示す図である。図134はPCCコーデック共通のNALユニットをISOBMFFに格納する場合のプロトコルスタック図である。ここで、ISOBMFFに格納されるのは、PCCコーデックのNALユニットである。
NALユニットには、データ用のNALユニット、メタデータ用のNALユニットがある。データ用のNALユニットには、位置情報スライスデータ(Geometry Slice Data)、及び属性情報スライスデータ(Attribute Slice Data)などがある。メタデータ用のNALユニットには、SPS、GPS、APS、及びSEIなどがある。
ISOBMFF(ISO based media file format)は、ISO/IEC14496-12に規定されるファイルフォーマット規格であり、ビデオ、オーディオ、及びテキストなど様々なメディアを多重して格納できるフォーマットを規定しており、メディアに依存しない規格である。
ISOBMFFにおける基本単位はボックスである。ボックスはtype、length及びdataで構成され、様々なtypeのボックスを組み合わせた集合がファイルである。主に、ファイルは、ファイルのブランドを4CCで示すftyp、制御情報などのメタデータを格納するmoov、及びデータを格納するmdatなどのボックスで構成される。
ISOBMFFへのメディア毎の格納方法は別途規定されており、例えば、AVCビデオ及びHEVCビデオの格納方法は、ISO/IEC14496-15に規定される。また、PCC符号化データを、蓄積及び伝送するために、ISOBMFFの機能を拡張して使用することが考えられる。
メタデータ用のNALユニットをISOBMFFに格納する際には、SEIをPCCデータとともに「mdat box」に格納してもよいし、ストリームに関する制御情報を記載する「track box」に格納してもよい。また、データをパケット化して伝送する場合には、パケットヘッダにSEIを格納してもよい。SEIをシステムのレイヤに示すことにより、属性情報、タイル及びスライスデータへのアクセスが容易となり、アクセスの速度が向上する。
次に、PCCランダムアクセステーブルの生成方法について説明する。三次元データ符号化装置は、スライス毎のバウンディングボックス情報及び法線ベクトル情報を含むメタデータを用いてランダムアクセステーブルを生成する。図135は、ビットストリームをファイルフォーマットに変換する例を示す図である。
三次元データ符号化装置は、スライスデータを、それぞれファイルフォーマットのmdatに格納する。三次元データ符号化装置は、スライスデータのメモリ位置をファイル先頭のオフセット情報(図135のオフセット1~4)として算出し、算出したオフセット情報をランダムアクセステーブル(PCCランダムアクセステーブル)に含める。
図136は、スライス情報(slice_information)のシンタックス例を示す図である。図137~図139は、PCCランダムアクセステーブルのシンタックス例を示す図である。
PCCランダムアクセステーブルは、スライス情報(slice_information)に格納される、バウンディングボックス情報(bounding_box_info)、法線ベクトル情報(normal_vector_info)、及びオフセット情報(offset)を含む。
三次元データ復号装置は、PCCランダムアクセステーブルを解析し、復号したいスライスを特定する。三次元データ復号装置は、PCCランダムアクセステーブルからオフセット情報を取得することにより、所望のデータにアクセスできる。
以上のように、本実施の形態に係る三次元データ符号化装置は、図140に示す処理を行う。三次元データ符号化装置は、点群データに含まれる複数の三次元点の各々の位置情報及び1以上の属性情報を符号化することでビットストリームを生成し(S8781)、符号化(S8781)では、複数の三次元点の各々の法線ベクトルを1以上の属性情報に含まれる一つの属性情報として符号化する。
これによれば、三次元データ符号化装置は、法線ベクトルを属性情報として符号化することで、法線ベクトルを他の属性情報と同様に処理できる。よって、三次元データ符号化装置は、処理量を低減できる。つまり、三次元データ符号化装置は、属性情報の定義等を変更することなく、法線ベクトルを属性情報として符号化できる。
例えば、三次元データ符号化装置は、符号化(S8781)では、浮動小数点で表現される法線ベクトルを、整数に変換したうえで符号化する。これによれば、三次元データ符号化装置は、例えば、他の属性情報が整数で表現されている場合において、法線ベクトルを他の属性情報と同様に処理できる。
例えば、ビットストリームは、位置情報及び1以上の属性情報に共通の制御情報(例えばSPS)を含み、制御情報(例えばSPS)は、1以上の属性情報に含まれる一つの属性情報が法線ベクトルを示すことを示す情報(例えばattribute_type=Normal Vector)、または法線ベクトルが1点ごとに3つの要素を持つデータであることを示す情報のうち少なくとも一方の情報を含む。
例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
また、本実施の形態に係る三次元データ復号装置は、図141に示す処理を行う。三次元データ復号装置は、点群データに含まれる複数の三次元点の各々の位置情報及び1以上の属性情報が符号化されることで生成されたビットストリームであって、複数の三次元点の各々の法線ベクトルが1以上の属性情報に含まれる一つの属性情報として符号化されたビットストリームを取得し(S8786)、ビットストリームから、一つの属性情報を復号することで法線ベクトルを取得する(S8787)。
これによれば、三次元データ復号装置は、法線ベクトルを属性情報として復号することで、法線ベクトルを他の属性情報と同様に処理できる。よって、三次元データ復号装置は、処理量を低減できる。
例えば、三次元データ復号装置は、法線ベクトルの取得(S8787)では、整数で示される法線ベクトルを取得する。これによれば、三次元データ復号装置は、例えば、他の属性情報が整数で表現されている場合において、法線ベクトルを他の属性情報と同様に処理できる。
例えば、ビットストリームは、位置情報及び1以上の属性情報に共通の制御情報(例えばSPS)を含み、制御情報(例えばSPS)は、1以上の属性情報に含まれる一つの属性情報が法線ベクトルを示すことを示す情報(例えばattribute_type=Normal Vector)、または法線ベクトルが1点ごとに3つの要素を持つデータであることを示す情報のうち少なくとも一方の情報を含む。
例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
また、本実施の形態に係る三次元データ符号化装置は、図142に示す処理を行う。三次元データ符号化装置は、点群データを複数の分割データ(例えばブリック、スライス又はタイル)に分割し(S8791)、複数の分割データを符号化することでビットストリームを生成する(S8792)。ビットストリームは、複数の分割データの各々の法線ベクトルを示す情報を含む。
これによれば、三次元データ符号化装置は、分割データ毎に法線ベクトルを符号化することで点毎に法線ベクトルを符号化する場合に比べて、処理量及び符号量を低減できる。例えば、複数の分割データの各々はランダムアクセス単位である。
例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
また、本実施の形態に係る三次元データ復号装置は、図143に示す処理を行う。三次元データ復号装置は、点群データが分割されることで生成された複数の分割データ(例えばブリック、スライス又はタイル)が符号化されることで生成されたビットストリームを取得し(S8796)、ビットストリームから、複数の分割データの各々の法線ベクトルを示す情報を取得する(S8797)。
これによれば、三次元データ復号装置は、分割データ毎に法線ベクトルを復号することで点毎に法線ベクトルを復号する場合に比べて、処理量を低減できる。例えば、複数の分割データの各々はランダムアクセス単位である。
例えば、三次元データ復号装置は、さらに、法線ベクトルに基づき、複数の分割データから復号対象の分割データを決定し、復号対象の分割データを復号する。
例えば、三次元データ復号装置は、さらに、法線ベクトルに基づき、複数の分割データの復号順を決定し、決定した復号順で複数の分割データを復号する。
例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
(実施の形態8)
次に、本実施の形態に係る三次元データ作成装置810の構成を説明する。図144は、本実施の形態に係る三次元データ作成装置810の構成例を示すブロック図である。この三次元データ作成装置810は、例えば、車両に搭載される。三次元データ作成装置810は、外部の交通監視クラウド、前走車両又は後続車両と三次元データの送受信を行うとともに、三次元データを作成及び蓄積する。
三次元データ作成装置810は、データ受信部811と、通信部812と、受信制御部813と、フォーマット変換部814と、複数のセンサ815と、三次元データ作成部816と、三次元データ合成部817と、三次元データ蓄積部818と、通信部819と、送信制御部820と、フォーマット変換部821と、データ送信部822とを備える。
データ受信部811は、交通監視クラウド又は前走車両から三次元データ831を受信する。三次元データ831は、例えば、自車両のセンサ815で検知不能な領域を含む、ポイントクラウド、可視光映像、奥行き情報、センサ位置情報、又は速度情報などの情報を含む。
通信部812は、交通監視クラウド又は前走車両と通信し、データ送信要求などを交通監視クラウド又は前走車両に送信する。
受信制御部813は、通信部812を介して、対応フォーマット等の情報を通信先と交換し、通信先との通信を確立する。
フォーマット変換部814は、データ受信部811が受信した三次元データ831にフォーマット変換等を行うことで三次元データ832を生成する。また、フォーマット変換部814は、三次元データ831が圧縮又は符号化されている場合には、伸張又は復号処理を行う。
複数のセンサ815は、LiDAR、可視光カメラ又は赤外線カメラなどの、車両の外部の情報を取得するセンサ群であり、センサ情報833を生成する。例えば、センサ情報833は、センサ815がLiDARなどのレーザセンサである場合、ポイントクラウド(点群データ)等の三次元データである。なお、センサ815は複数でなくてもよい。
三次元データ作成部816は、センサ情報833から三次元データ834を生成する。三次元データ834は、例えば、ポイントクラウド、可視光映像、奥行き情報、センサ位置情報、又は速度情報などの情報を含む。
三次元データ合成部817は、自車両のセンサ情報833に基づいて作成された三次元データ834に、交通監視クラウド又は前走車両等が作成した三次元データ832を合成することで、自車両のセンサ815では検知できない前走車両の前方の空間も含む三次元データ835を構築する。
三次元データ蓄積部818は、生成された三次元データ835等を蓄積する。
通信部819は、交通監視クラウド又は後続車両と通信し、データ送信要求などを交通監視クラウド又は後続車両に送信する。
送信制御部820は、通信部819を介して、対応フォーマット等の情報を通信先と交換し、通信先と通信を確立する。また、送信制御部820は、三次元データ合成部817で生成された三次元データ832の三次元データ構築情報と、通信先からのデータ送信要求とに基づき、送信対象の三次元データの空間である送信領域を決定する。
具体的には、送信制御部820は、交通監視クラウド又は後続車両からのデータ送信要求に応じて、後続車両のセンサでは検知できない自車両の前方の空間を含む送信領域を決定する。また、送信制御部820は、三次元データ構築情報に基づいて送信可能な空間又は送信済み空間の更新有無等を判断することで送信領域を決定する。例えば、送信制御部820は、データ送信要求で指定された領域であり、かつ、対応する三次元データ835が存在する領域を送信領域に決定する。そして、送信制御部820は、通信先が対応するフォーマット、及び送信領域をフォーマット変換部821に通知する。
フォーマット変換部821は、三次元データ蓄積部818に蓄積されている三次元データ835のうち、送信領域の三次元データ836を、受信側が対応しているフォーマットへ変換することで三次元データ837を生成する。なお、フォーマット変換部821は、三次元データ837を圧縮又は符号化することでデータ量を削減してもよい。
データ送信部822は、三次元データ837を交通監視クラウド又は後続車両に送信する。この三次元データ837は、例えば、後続車両の死角になる領域を含む、自車両の前方のポイントクラウド、可視光映像、奥行き情報、又はセンサ位置情報などの情報を含む。
なお、ここでは、フォーマット変換部814及び821にてフォーマット変換等が行われる例を述べたが、フォーマット変換は行われなくてもよい。
このような構成により、三次元データ作成装置810は、自車両のセンサ815では検知できない領域の三次元データ831を外部から取得し、三次元データ831と自車両のセンサ815で検知したセンサ情報833に基づく三次元データ834とを合成することで三次元データ835を生成する。これにより、三次元データ作成装置810は、自車両のセンサ815で検知できない範囲の三次元データを生成できる。
また、三次元データ作成装置810は、交通監視クラウド又は後続車両からのデータ送信要求に応じて、後続車両のセンサでは検知できない自車両の前方の空間を含む三次元データを、交通監視クラウド又は後続車両等へ送信できる。
次に、三次元データ作成装置810における後続車両への三次元データの送信手順について説明する。図145は、三次元データ作成装置810による交通監視クラウド又は後続車両へ三次元データを送信する手順の一例を示すフローチャートである。
まず、三次元データ作成装置810は、自車両の前方道路上の空間を含む空間の三次元データ835を生成及び更新する(S801)。具体的には、三次元データ作成装置810は、自車両のセンサ情報833に基づいて作成した三次元データ834に、交通監視クラウド又は前走車両等が作成した三次元データ831を合成するなどして、自車両のセンサ815では検知できない前走車両の前方の空間も含む三次元データ835を構築する。
次に、三次元データ作成装置810は、送信済みの空間に含まれる三次元データ835が変化したかを判定する(S802)。
送信済みの空間に外部から車両又は人が進入するなどして、当該空間に含まれる三次元データ835に変化が生じた場合には(S802でYes)、三次元データ作成装置810は、変化が生じた空間の三次元データ835を含む三次元データを交通監視クラウド又は後続車両に送信する(S803)。
なお、三次元データ作成装置810は、変化が生じた空間の三次元データを、所定間隔で送信する三次元データの送信タイミングに合わせて送信してもよいが、変化を検知した後すぐに送信してもよい。つまり、三次元データ作成装置810は、変化が生じた空間の三次元データを、所定間隔で送信する三次元データよりも優先して送信してもよい。
また、三次元データ作成装置810は、変化が生じた空間の三次元データとして、変化が生じた空間の三次元データの全てを送信してもよいし、三次元データの差分(例えば出現又は消失した三次元点の情報、又は三次元点の変位情報など)のみを送信してもよい。
また、三次元データ作成装置810は、変化が生じた空間の三次元データに先行して、急制動警報など自車両の危険回避動作に関するメタデータを後続車両へ送信してもよい。これによれば、後続車両は前走車両の急制動などを早期に認知でき、より早期に減速などの危険回避動作を開始できる。
送信済みの空間に含まれる三次元データ835に変化が生じていない場合(S802でNo)、又は、ステップS803の後、三次元データ作成装置810は、自車両の前方距離Lにある所定の形状の空間に含まれる三次元データを、交通監視クラウド又は後続車両へ送信する(S804)。
また、例えば、ステップS801~S804の処理は、所定の時間間隔で繰り返し行われる。
また、三次元データ作成装置810は、現在の送信対象の空間の三次元データ835と、三次元地図とに差がない場合には、空間の三次元データ837を送信しなくてもよい。
本実施の形態では、クライアント装置は、サーバ又は他のクライアント装置にセンサで得られたセンサ情報を送信する。
まず、本実施の形態に係るシステムの構成を説明する。図146は、本実施の形態に係る三次元マップ及びセンサ情報の送受信システムの構成を示す図である。このシステムは、サーバ901と、クライアント装置902A及び902Bを含む。なお、クライアント装置902A及び902Bを特に区別しない場合には、クライアント装置902とも記す。
クライアント装置902は、例えば、車両等の移動体に搭載される車載機器である。サーバ901は、例えば、交通監視クラウド等であり、複数のクライアント装置902と通信可能である。
サーバ901は、クライアント装置902に、ポイントクラウドから構成される三次元マップを送信する。なお、三次元マップの構成はポイントクラウドに限定されず、メッシュ構造等、他の三次元データを表すものであってもよい。
クライアント装置902は、サーバ901に、クライアント装置902が取得したセンサ情報を送信する。センサ情報は、例えば、LiDAR取得情報、可視光画像、赤外画像、デプス画像、センサ位置情報及び速度情報のうち少なくとも一つを含む。
サーバ901とクライアント装置902との間で送受信されるデータは、データ削減のために圧縮されてもよいし、データの精度を維持するために非圧縮のままでも構わない。データを圧縮する場合、ポイントクラウドには例えば8分木構造に基づく三次元圧縮方式を用いることができる。また、可視光画像、赤外画像、及びデプス画像には二次元の画像圧縮方式を用いることできる。二次元の画像圧縮方式とは、例えば、MPEGで規格化されたMPEG-4 AVC又はHEVC等である。
また、サーバ901は、クライアント装置902からの三次元マップの送信要求に応じてサーバ901で管理する三次元マップをクライアント装置902に送信する。なお、サーバ901はクライアント装置902からの三次元マップの送信要求を待たずに三次元マップを送信してもよい。例えば、サーバ901は、予め定められた空間にいる1つ以上のクライアント装置902に三次元マップをブロードキャストしても構わない。また、サーバ901は、一度送信要求を受けたクライアント装置902に、一定時間毎にクライアント装置902の位置に適した三次元マップを送信してもよい。また、サーバ901は、サーバ901が管理する三次元マップが更新される度にクライアント装置902に三次元マップを送信してもよい。
クライアント装置902は、サーバ901に三次元マップの送信要求を出す。例えば、クライアント装置902が、走行時に自己位置推定を行いたい場合に、クライアント装置902は、三次元マップの送信要求をサーバ901に送信する。
なお、次のような場合に、クライアント装置902はサーバ901に三次元マップの送信要求を出してもよい。クライアント装置902の保持する三次元マップが古い場合に、クライアント装置902はサーバ901に三次元マップの送信要求を出してもよい。例えば、クライアント装置902が三次元マップを取得してから一定期間が経過した場合に、クライアント装置902はサーバ901に三次元マップの送信要求を出してもよい。
クライアント装置902が保持する三次元マップで示される空間から、クライアント装置902が外に出る一定時刻前に、クライアント装置902はサーバ901に三次元マップの送信要求を出してもよい。例えば、クライアント装置902が、クライアント装置902が保持する三次元マップで示される空間の境界から予め定められた距離以内に存在する場合に、クライアント装置902はサーバ901に三次元マップの送信要求を出してもよい。また、クライアント装置902の移動経路及び移動速度が把握できている場合には、これらに基づき、クライアント装置902が保持する三次元マップで示される空間から、クライアント装置902が外に出る時刻を予測してもよい。
クライアント装置902がセンサ情報から作成した三次元データと三次元マップとの位置合せ時の誤差が一定以上の場合に、クライアント装置902はサーバ901に三次元マップの送信要求を出してもよい。
クライアント装置902は、サーバ901から送信されたセンサ情報の送信要求に応じて、サーバ901にセンサ情報を送信する。なお、クライアント装置902はサーバ901からのセンサ情報の送信要求を待たずにセンサ情報をサーバ901に送ってもよい。例えば、クライアント装置902は、一度サーバ901からセンサ情報の送信要求を得た場合、一定期間の間、定期的にセンサ情報をサーバ901に送信してもよい。また、クライアント装置902は、クライアント装置902がセンサ情報を元に作成した三次元データと、サーバ901から得た三次元マップとの位置合せ時の誤差が一定以上の場合、クライアント装置902の周辺の三次元マップに変化が生じた可能性があると判断し、その旨とセンサ情報とをサーバ901に送信してもよい。
サーバ901は、クライアント装置902にセンサ情報の送信要求を出す。例えば、サーバ901は、クライアント装置902から、GPS等のクライアント装置902の位置情報を受信する。サーバ901は、クライアント装置902の位置情報に基づき、サーバ901が管理する三次元マップにおいて情報が少ない空間にクライアント装置902が近づいていると判断した場合、新たな三次元マップを生成するためにクライアント装置902にセンサ情報の送信要求を出す。また、サーバ901は、三次元マップを更新したい場合、積雪時或いは災害時などの道路状況を確認したい場合、渋滞状況、或いは事件事故状況等を確認したい場合に、センサ情報の送信要求を出してもよい。
また、クライアント装置902は、サーバ901から受け取るセンサ情報の送信要求の受信時における通信状態又は帯域に応じて、サーバ901に送信するセンサ情報のデータ量を設定してもよい。サーバ901に送信するセンサ情報のデータ量を設定するというのは、例えば、当該データそのものを増減させること、又は圧縮方式を適宜選択することである。
図147は、クライアント装置902の構成例を示すブロック図である。クライアント装置902は、サーバ901からポイントクラウド等で構成される三次元マップを受信し、クライアント装置902のセンサ情報に基づいて作成した三次元データからクライアント装置902の自己位置を推定する。また、クライアント装置902は、取得したセンサ情報をサーバ901に送信する。
クライアント装置902は、データ受信部1011と、通信部1012と、受信制御部1013と、フォーマット変換部1014と、複数のセンサ1015と、三次元データ作成部1016と、三次元画像処理部1017と、三次元データ蓄積部1018と、フォーマット変換部1019と、通信部1020と、送信制御部1021と、データ送信部1022とを備える。
データ受信部1011は、サーバ901から三次元マップ1031を受信する。三次元マップ1031は、WLD又はSWLD等のポイントクラウドを含むデータである。三次元マップ1031には、圧縮データ、及び非圧縮データのどちらが含まれていてもよい。
通信部1012は、サーバ901と通信し、データ送信要求(例えば、三次元マップの送信要求)などをサーバ901に送信する。
受信制御部1013は、通信部1012を介して、対応フォーマット等の情報を通信先と交換し、通信先との通信を確立する。
フォーマット変換部1014は、データ受信部1011が受信した三次元マップ1031にフォーマット変換等を行うことで三次元マップ1032を生成する。また、フォーマット変換部1014は、三次元マップ1031が圧縮又は符号化されている場合には、伸張又は復号処理を行う。なお、フォーマット変換部1014は、三次元マップ1031が非圧縮データであれば、伸張又は復号処理を行わない。
複数のセンサ1015は、LiDAR、可視光カメラ、赤外線カメラ、又はデプスセンサなど、クライアント装置902が搭載されている車両の外部の情報を取得するセンサ群であり、センサ情報1033を生成する。例えば、センサ情報1033は、センサ1015がLiDARなどのレーザセンサである場合、ポイントクラウド(点群データ)等の三次元データである。なお、センサ1015は複数でなくてもよい。
三次元データ作成部1016は、センサ情報1033に基づいて自車両の周辺の三次元データ1034を作成する。例えば、三次元データ作成部1016は、LiDARで取得した情報と、可視光カメラで得られた可視光映像とを用いて自車両の周辺の色情報付きのポイントクラウドデータを作成する。
三次元画像処理部1017は、受信したポイントクラウド等の三次元マップ1032と、センサ情報1033から生成した自車両の周辺の三次元データ1034とを用いて、自車両の自己位置推定処理等を行う。なお、三次元画像処理部1017は、三次元マップ1032と三次元データ1034とを合成することで自車両の周辺の三次元データ1035を作成し、作成した三次元データ1035を用いて自己位置推定処理を行ってもよい。
三次元データ蓄積部1018は、三次元マップ1032、三次元データ1034及び三次元データ1035等を蓄積する。
フォーマット変換部1019は、センサ情報1033を、受信側が対応しているフォーマットへ変換することでセンサ情報1037を生成する。なお、フォーマット変換部1019は、センサ情報1037を圧縮又は符号化することでデータ量を削減してもよい。また、フォーマット変換部1019は、フォーマット変換をする必要がない場合は処理を省略してもよい。また、フォーマット変換部1019は、送信範囲の指定に応じて送信するデータ量を制御してもよい。
通信部1020は、サーバ901と通信し、データ送信要求(センサ情報の送信要求)などをサーバ901から受信する。
送信制御部1021は、通信部1020を介して、対応フォーマット等の情報を通信先と交換し、通信を確立する。
データ送信部1022は、センサ情報1037をサーバ901に送信する。センサ情報1037は、例えば、LiDARで取得した情報、可視光カメラで取得した輝度画像、赤外線カメラで取得した赤外画像、デプスセンサで取得したデプス画像、センサ位置情報、及び速度情報など、複数のセンサ1015によって取得した情報を含む。
次に、サーバ901の構成を説明する。図148は、サーバ901の構成例を示すブロック図である。サーバ901は、クライアント装置902から送信されたセンサ情報を受信し、受信したセンサ情報に基づいて三次元データを作成する。サーバ901は、作成した三次元データを用いて、サーバ901が管理する三次元マップを更新する。また、サーバ901は、クライアント装置902からの三次元マップの送信要求に応じて、更新した三次元マップをクライアント装置902に送信する。
サーバ901は、データ受信部1111と、通信部1112と、受信制御部1113と、フォーマット変換部1114と、三次元データ作成部1116と、三次元データ合成部1117と、三次元データ蓄積部1118と、フォーマット変換部1119と、通信部1120と、送信制御部1121と、データ送信部1122とを備える。
データ受信部1111は、クライアント装置902からセンサ情報1037を受信する。センサ情報1037は、例えば、LiDARで取得した情報、可視光カメラで取得した輝度画像、赤外線カメラで取得した赤外画像、デプスセンサで取得したデプス画像、センサ位置情報、及び速度情報などを含む。
通信部1112は、クライアント装置902と通信し、データ送信要求(例えば、センサ情報の送信要求)などをクライアント装置902に送信する。
受信制御部1113は、通信部1112を介して、対応フォーマット等の情報を通信先と交換し、通信を確立する。
フォーマット変換部1114は、受信したセンサ情報1037が圧縮又は符号化されている場合には、伸張又は復号処理を行うことでセンサ情報1132を生成する。なお、フォーマット変換部1114は、センサ情報1037が非圧縮データであれば、伸張又は復号処理を行わない。
三次元データ作成部1116は、センサ情報1132に基づいてクライアント装置902の周辺の三次元データ1134を作成する。例えば、三次元データ作成部1116は、LiDARで取得した情報と、可視光カメラで得られた可視光映像とを用いてクライアント装置902の周辺の色情報付ポイントクラウドデータを作成する。
三次元データ合成部1117は、センサ情報1132を元に作成した三次元データ1134を、サーバ901が管理する三次元マップ1135に合成することで三次元マップ1135を更新する。
三次元データ蓄積部1118は、三次元マップ1135等を蓄積する。
フォーマット変換部1119は、三次元マップ1135を、受信側が対応しているフォーマットへ変換することで三次元マップ1031を生成する。なお、フォーマット変換部1119は、三次元マップ1135を圧縮又は符号化することでデータ量を削減してもよい。また、フォーマット変換部1119は、フォーマット変換をする必要がない場合は処理を省略してもよい。また、フォーマット変換部1119は、送信範囲の指定に応じて送信するデータ量を制御してもよい。
通信部1120は、クライアント装置902と通信し、データ送信要求(三次元マップの送信要求)などをクライアント装置902から受信する。
送信制御部1121は、通信部1120を介して、対応フォーマット等の情報を通信先と交換し、通信を確立する。
データ送信部1122は、三次元マップ1031をクライアント装置902に送信する。三次元マップ1031は、WLD又はSWLD等のポイントクラウドを含むデータである。三次元マップ1031には、圧縮データ、及び非圧縮データのどちらが含まれていてもよい。
次に、クライアント装置902の動作フローについて説明する。図149は、クライアント装置902による三次元マップ取得時の動作を示すフローチャートである。
まず、クライアント装置902は、サーバ901へ三次元マップ(ポイントクラウド等)の送信を要求する(S1001)。このとき、クライアント装置902は、GPS等で得られたクライアント装置902の位置情報を合わせて送信することで、その位置情報に関連する三次元マップの送信をサーバ901に要求してもよい。
次に、クライアント装置902は、サーバ901から三次元マップを受信する(S1002)。受信した三次元マップが圧縮データであれば、クライアント装置902は、受信した三次元マップを復号して非圧縮の三次元マップを生成する(S1003)。
次に、クライアント装置902は、複数のセンサ1015で得られたセンサ情報1033からクライアント装置902の周辺の三次元データ1034を作成する(S1004)。次に、クライアント装置902は、サーバ901から受信した三次元マップ1032と、センサ情報1033から作成した三次元データ1034とを用いてクライアント装置902の自己位置を推定する(S1005)。
図150は、クライアント装置902によるセンサ情報の送信時の動作を示すフローチャートである。まず、クライアント装置902は、サーバ901からセンサ情報の送信要求を受信する(S1011)。送信要求を受信したクライアント装置902は、センサ情報1037をサーバ901に送信する(S1012)。なお、クライアント装置902は、センサ情報1033が複数のセンサ1015で得られた複数の情報を含む場合、各情報を、各情報に適した圧縮方式で圧縮することでセンサ情報1037を生成してもよい。
次に、サーバ901の動作フローについて説明する。図151は、サーバ901によるセンサ情報の取得時の動作を示すフローチャートである。まず、サーバ901は、クライアント装置902へセンサ情報の送信を要求する(S1021)。次に、サーバ901は、当該要求に応じてクライアント装置902から送信されたセンサ情報1037を受信する(S1022)。次に、サーバ901は、受信したセンサ情報1037を用いて三次元データ1134を作成する(S1023)。次に、サーバ901は、作成した三次元データ1134を三次元マップ1135に反映する(S1024)。
図152は、サーバ901による三次元マップの送信時の動作を示すフローチャートである。まず、サーバ901は、クライアント装置902から三次元マップの送信要求を受信する(S1031)。三次元マップの送信要求を受信したサーバ901は、クライアント装置902へ三次元マップ1031を送信する(S1032)。このとき、サーバ901は、クライアント装置902の位置情報に合わせてその付近の三次元マップを抽出し、抽出した三次元マップを送信してもよい。また、サーバ901は、ポイントクラウドで構成される三次元マップを、例えば8分木構造による圧縮方式等を用いて圧縮し、圧縮後の三次元マップを送信してもよい。
以下、本実施の形態の変形例について説明する。
サーバ901は、クライアント装置902から受信したセンサ情報1037を用いてクライアント装置902の位置付近の三次元データ1134を作成する。次に、サーバ901は、作成した三次元データ1134と、サーバ901が管理する同エリアの三次元マップ1135とのマッチングを行うことによって、三次元データ1134と三次元マップ1135との差分を算出する。サーバ901は、差分が予め定められた閾値以上の場合は、クライアント装置902の周辺で何らかの異常が発生したと判断する。例えば、地震等の自然災害によって地盤沈下等が発生した際などに、サーバ901が管理する三次元マップ1135と、センサ情報1037を基に作成した三次元データ1134との間に大きな差が発生することが考えられる。
センサ情報1037は、センサの種類、センサの性能、及びセンサの型番のうち少なくとも一つを示す情報を含んでもよい。また、センサ情報1037に、センサの性能に応じたクラスID等が付加されてもよい。例えば、センサ情報1037がLiDARで取得された情報である場合、数mm単位の精度で情報を取得できるセンサをクラス1、数cm単位の精度で情報を取得できるセンサをクラス2、数m単位の精度で情報を取得できるセンサをクラス3のように、センサの性能に識別子を割り当てることが考えられる。また、サーバ901は、センサの性能情報等を、クライアント装置902の型番から推定してもよい。例えば、クライアント装置902が車両に搭載されている場合、サーバ901は、当該車両の車種からセンサのスペック情報を判断してもよい。この場合、サーバ901は、車両の車種の情報を事前に取得していてもよいし、センサ情報に、当該情報が含まれてもよい。また、サーバ901は取得したセンサ情報1037を用いて、センサ情報1037を用いて作成した三次元データ1134に対する補正の度合いを切り替えてもよい。例えば、センサ性能が高精度(クラス1)である場合、サーバ901は、三次元データ1134に対する補正を行わない。センサ性能が低精度(クラス3)である場合、サーバ901は、三次元データ1134に、センサの精度に応じた補正を適用する。例えば、サーバ901は、センサの精度が低いほど補正の度合い(強度)を強くする。
サーバ901は、ある空間にいる複数のクライアント装置902に同時にセンサ情報の送信要求を出してもよい。サーバ901は、複数のクライアント装置902から複数のセンサ情報を受信した場合に、全てのセンサ情報を三次元データ1134の作成に利用する必要はなく、例えば、センサの性能に応じて、利用するセンサ情報を選択してもよい。例えば、サーバ901は、三次元マップ1135を更新する場合、受信した複数のセンサ情報の中から高精度なセンサ情報(クラス1)を選別し、選別したセンサ情報を用いて三次元データ1134を作成してもよい。
サーバ901は、交通監視クラウド等のサーバのみに限定されず、他のクライアント装置(車載)であってもよい。図153は、この場合のシステム構成を示す図である。
例えば、クライアント装置902Cが近くにいるクライアント装置902Aにセンサ情報の送信要求を出し、クライアント装置902Aからセンサ情報を取得する。そして、クライアント装置902Cは、取得したクライアント装置902Aのセンサ情報を用いて三次元データを作成し、クライアント装置902Cの三次元マップを更新する。これにより、クライアント装置902Cは、クライアント装置902Aから取得可能な空間の三次元マップを、クライアント装置902Cの性能を活かして生成できる。例えば、クライアント装置902Cの性能が高い場合に、このようなケースが発生すると考えられる。
また、この場合、センサ情報を提供したクライアント装置902Aは、クライアント装置902Cが生成した高精度な三次元マップを取得する権利が与えられる。クライアント装置902Aは、その権利に従ってクライアント装置902Cから高精度な三次元マップを受信する。
また、クライアント装置902Cは近くにいる複数のクライアント装置902(クライアント装置902A及びクライアント装置902B)にセンサ情報の送信要求を出してもよい。クライアント装置902A又はクライアント装置902Bのセンサが高性能である場合には、クライアント装置902Cは、この高性能なセンサで得られたセンサ情報を用いて三次元データを作成できる。
図154は、サーバ901及びクライアント装置902の機能構成を示すブロック図である。サーバ901は、例えば、三次元マップを圧縮及び復号する三次元マップ圧縮/復号処理部1201と、センサ情報を圧縮及び復号するセンサ情報圧縮/復号処理部1202とを備える。
クライアント装置902は、三次元マップ復号処理部1211と、センサ情報圧縮処理部1212とを備える。三次元マップ復号処理部1211は、圧縮された三次元マップの符号化データを受信し、符号化データを復号して三次元マップを取得する。センサ情報圧縮処理部1212は、取得したセンサ情報から作成した三次元データの代わりに、センサ情報そのものを圧縮し、圧縮したセンサ情報の符号化データをサーバ901へ送信する。この構成により、クライアント装置902は、三次元マップ(ポイントクラウド等)を復号する処理を行う処理部(装置又はLSI)を内部に保持すればよく、三次元マップ(ポイントクラウド等)の三次元データを圧縮する処理を行う処理部を内部に保持する必要がない。これにより、クライアント装置902のコスト及び消費電力等を抑えることができる。
以上のように、本実施の形態に係るクライアント装置902は、移動体に搭載され、移動体に搭載されたセンサ1015により得られた、移動体の周辺状況を示すセンサ情報1033から、移動体の周辺の三次元データ1034を作成する。クライアント装置902は、作成された三次元データ1034を用いて移動体の自己位置を推定する。クライアント装置902は、取得したセンサ情報1033をサーバ901又は他のクライアント装置902に送信する。
これによれば、クライアント装置902は、センサ情報1033をサーバ901等に送信する。これにより、三次元データを送信する場合に比べて、送信データのデータ量を削減できる可能性がある。また、三次元データの圧縮又は符号化等の処理をクライアント装置902で行う必要がないので、クライアント装置902の処理量を削減できる。よって、クライアント装置902は、伝送されるデータ量の削減、又は、装置の構成の簡略化を実現できる。
また、クライアント装置902は、さらに、サーバ901に三次元マップの送信要求を送信し、サーバ901から三次元マップ1031を受信する。クライアント装置902は、自己位置の推定では、三次元データ1034と三次元マップ1032とを用いて、自己位置を推定する。
また、センサ情報1033は、レーザセンサで得られた情報、輝度画像、赤外画像、デプス画像、センサの位置情報、及びセンサの速度情報のうち少なくとも一つを含む。
また、センサ情報1033は、センサの性能を示す情報を含む。
また、クライアント装置902は、センサ情報1033を符号化又は圧縮し、センサ情報の送信では、符号化又は圧縮後のセンサ情報1037を、サーバ901又は他のクライアント装置902に送信する。これによれば、クライアント装置902は、伝送されるデータ量を削減できる。
例えば、クライアント装置902は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
また、本実施の形態に係るサーバ901は、移動体に搭載されるクライアント装置902と通信可能であり、移動体に搭載されたセンサ1015により得られた、移動体の周辺状況を示すセンサ情報1037をクライアント装置902から受信する。サーバ901は、受信したセンサ情報1037から、移動体の周辺の三次元データ1134を作成する。
これによれば、サーバ901は、クライアント装置902から送信されたセンサ情報1037を用いて三次元データ1134を作成する。これにより、クライアント装置902が三次元データを送信する場合に比べて、送信データのデータ量を削減できる可能性がある。また、三次元データの圧縮又は符号化等の処理をクライアント装置902で行う必要がないので、クライアント装置902の処理量を削減できる。よって、サーバ901は、伝送されるデータ量の削減、又は、装置の構成の簡略化を実現できる。
また、サーバ901は、さらに、クライアント装置902にセンサ情報の送信要求を送信する。
また、サーバ901は、さらに、作成された三次元データ1134を用いて三次元マップ1135を更新し、クライアント装置902からの三次元マップ1135の送信要求に応じて三次元マップ1135をクライアント装置902に送信する。
また、センサ情報1037は、レーザセンサで得られた情報、輝度画像、赤外画像、デプス画像、センサの位置情報、及びセンサの速度情報のうち少なくとも一つを含む。
また、センサ情報1037は、センサの性能を示す情報を含む。
また、サーバ901は、さらに、センサの性能に応じて、三次元データを補正する。これによれば、当該三次元データ作成方法は、三次元データの品質を向上できる。
また、サーバ901は、センサ情報の受信では、複数のクライアント装置902から複数のセンサ情報1037を受信し、複数のセンサ情報1037に含まれるセンサの性能を示す複数の情報に基づき、三次元データ1134の作成に用いるセンサ情報1037を選択する。これによれば、サーバ901は、三次元データ1134の品質を向上できる。
また、サーバ901は、受信したセンサ情報1037を復号又は伸張し、復号又は伸張後のセンサ情報1132から、三次元データ1134を作成する。これによれば、サーバ901は、伝送されるデータ量を削減できる。
例えば、サーバ901は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
以下、変形例について説明する。図155は、本実施の形態に係るシステムの構成を示す図である。図155に示すシステムは、サーバ2001と、クライアント装置2002Aと、クライアント装置2002Bとを含む。
クライアント装置2002A及びクライアント装置2002Bは、車両等の移動体に搭載され、センサ情報をサーバ2001に送信する。サーバ2001は、三次元マップ(ポイントクラウド)をクライアント装置2002A及びクライアント装置2002Bに送信する。
クライアント装置2002Aは、センサ情報取得部2011と、記憶部2012と、データ送信可否判定部2013とを備える。なお、クライアント装置2002Bの構成も同様である。また、以下ではクライアント装置2002Aとクライアント装置2002Bとを特に区別しない場合には、クライアント装置2002とも記載する。
図156は、本実施の形態に係るクライアント装置2002の動作を示すフローチャートである。
センサ情報取得部2011は、移動体に搭載されたセンサ(センサ群)を用いて各種センサ情報を取得する。つまり、センサ情報取得部2011は、移動体に搭載されたセンサ(センサ群)により得られた、移動体の周辺状況を示すセンサ情報を取得する。また、センサ情報取得部2011は、取得したセンサ情報を記憶部2012に記憶する。このセンサ情報は、LiDAR取得情報、可視光画像、赤外画像及びデプス画像の少なくとも一つを含む。また、センサ情報は、センサ位置情報、速度情報、取得時刻情報、及び取得場所情報の少なくとも一つを含んでもよい。センサ位置情報は、センサ情報を取得したセンサの位置を示す。速度情報は、センサがセンサ情報を取得した際の移動体の速度を示す。取得時刻情報は、センサ情報がセンサにより取得された時刻を示す。取得場所情報は、センサ情報がセンサにより取得された際の移動体又はセンサの位置を示す。
次に、データ送信可否判定部2013は、移動体(クライアント装置2002)がサーバ2001へセンサ情報を送信可能な環境に存在するかを判定する(S2002)。例えば、データ送信可否判定部2013は、GPS等の情報を用いて、クライアント装置2002がいる場所及び時刻を特定し、データを送信可能かどうかを判定してもよい。また、データ送信可否判定部2013は、特定のアクセスポイントに接続できるかどうかで、データを送信可能かどうかを判定してもよい。
クライアント装置2002は、移動体がサーバ2001へセンサ情報を送信可能な環境に存在すると判定した場合(S2002でYes)、センサ情報をサーバ2001に送信する(S2003)。つまり、クライアント装置2002がセンサ情報をサーバ2001に送信できるような状況になった時点で、クライアント装置2002は、保持しているセンサ情報をサーバ2001に送信する。例えば、交差点等に高速通信が可能なミリ波のアクセスポイントが設置される。クライアント装置2002は、交差点内に入った時点で、ミリ波通信を用いてクライアント装置2002が保持するセンサ情報を高速にサーバ2001に送信する。
次に、クライアント装置2002は、サーバ2001に送信済みのセンサ情報を記憶部2012から削除する(S2004)。なお、クライアント装置2002は、サーバ2001に送信していないセンサ情報が所定の条件を満たした場合に、当該センサ情報を削除してもよい。例えば、クライアント装置2002は、保持するセンサ情報の取得時刻が現在時刻から一定時刻前より古くなった時点でそのセンサ情報を記憶部2012から削除してもよい。つまり、クライアント装置2002は、センサ情報がセンサにより取得された時刻と、現在の時刻との差が、予め定められた時間を超えた場合にセンサ情報を記憶部2012から削除してもよい。また、クライアント装置2002は、保持するセンサ情報の取得場所が現在地点から一定距離より離れた時点でそのセンサ情報を記憶部2012から削除してもよい。つまり、クライアント装置2002は、センサ情報がセンサにより取得された際の移動体又はセンサの位置と、現在の移動体又はセンサの位置との差が、予め定められた距離を超えた場合にセンサ情報を記憶部2012から削除してもよい。これにより、クライアント装置2002の記憶部2012の容量を抑制することができる。
クライアント装置2002によるセンサ情報の取得が終了していない場合(S2005でNo)、クライアント装置2002は、ステップS2001以降の処理を再度行う。また、クライアント装置2002によるセンサ情報の取得が終了した場合(S2005でYes)、クライアント装置2002は処理を終了する。
また、クライアント装置2002はサーバ2001に送信するセンサ情報を通信状況に合わせて選択してもよい。例えば、クライアント装置2002は、高速通信が可能な場合は、記憶部2012に保持されるサイズが大きいセンサ情報(例えばLiDAR取得情報等)を優先して送信する。また、クライアント装置2002は、高速通信が難しい場合は、記憶部2012に保持されるサイズが小さく優先度の高いセンサ情報(例えば可視光画像)を送信する。これにより、クライアント装置2002は記憶部2012に保持したセンサ情報をネットワークの状況に応じて効率的にサーバ2001に送信できる。
また、クライアント装置2002は、上記現在時刻を示す時刻情報、及び、現在地点を示す場所情報をサーバ2001から取得してもよい。また、クライアント装置2002は、取得した時刻情報及び場所情報に基づきセンサ情報の取得時刻及び取得場所を決定してもよい。つまり、クライアント装置2002は、サーバ2001から時刻情報を取得し、取得した時刻情報を用いて取得時刻情報を生成してもよい。また、クライアント装置2002は、サーバ2001から場所情報を取得し、取得した場所情報を用いて取得場所情報を生成してもよい。
例えば時刻情報については、サーバ2001とクライアント装置2002とはNTP(Network Time Protocol)、又はPTP(Precision Time Protocol)等の仕組みを用いて時刻同期を行う。これにより、クライアント装置2002は正確な時刻情報を取得できる。また、サーバ2001と複数のクライアント装置との間で時刻を同期できるので、別々のクライアント装置2002が取得したセンサ情報内の時刻を同期できる。よって、サーバ2001は、同期された時刻を示すセンサ情報を取り扱える。なお、時刻同期の仕組みはNTP又はPTP以外のどのような方法でも構わない。また、上記時刻情報及び場所情報としてGPSの情報が用いられてもよい。
サーバ2001は、時刻又は場所を指定して複数のクライアント装置2002からセンサ情報を取得しても構わない。例えば何らかの事故が発生した場合に、その付近にいたクライアントを探すため、サーバ2001は、事故発生時刻と場所を指定して複数のクライアント装置2002にセンサ情報送信要求をブロードキャスト送信する。そして、該当する時刻と場所のセンサ情報を持つクライアント装置2002は、サーバ2001にセンサ情報を送信する。つまり、クライアント装置2002は、サーバ2001から場所及び時刻を指定する指定情報を含むセンサ情報送信要求を受信する。クライアント装置2002は、記憶部2012に、指定情報で示される場所及び時刻において得られたセンサ情報が記憶されており、かつ、移動体がサーバ2001へセンサ情報を送信可能な環境に存在すると判定した場合、指定情報で示される場所及び時刻において得られたセンサ情報をサーバ2001に送信する。これにより、サーバ2001は、事故の発生に関連するセンサ情報を複数のクライアント装置2002から取得し、事故解析等に利用できる。
なお、クライアント装置2002は、サーバ2001からのセンサ情報送信要求を受信した場合に、センサ情報の送信を拒否してもよい。また、複数のセンサ情報のうち、どのセンサ情報を送信可能かどうかを事前にクライアント装置2002が設定してもよい。または、サーバ2001は、センサ情報の送信の可否を都度クライアント装置2002に問い合わせてもよい。
また、サーバ2001にセンサ情報を送信したクライアント装置2002にはポイントが付与されてもよい。このポイントは、例えば、ガソリン購入費、EV(Electric Vehicle)の充電費、高速道路の通行料、又はレンタカー費用などの支払いに使用できる。また、サーバ2001は、センサ情報を取得した後、センサ情報の送信元のクライアント装置2002を特定するための情報を削除してもよい。例えば、この情報は、クライアント装置2002のネットワークアドレスなどの情報である。これによりセンサ情報を匿名化することができるので、クライアント装置2002のユーザは安心して、クライアント装置2002からセンサ情報をサーバ2001に送信できる。また、サーバ2001は、複数のサーバから構成されてもよい。例えば複数のサーバでセンサ情報が共有化されることで、あるサーバが故障しても他のサーバがクライアント装置2002と通信できる。これにより、サーバ故障によるサービスの停止を回避できる。
また、センサ情報送信要求で指定される指定場所は事故の発生位置などを示すものであり、センサ情報送信要求で指定される指定時刻におけるクライアント装置2002の位置とは異なることがある。よって、サーバ2001は、例えば、指定場所として周辺XXm以内などの範囲を指定することで、当該範囲内に存在するクライアント装置2002に対して情報取得を要求できる。指定時刻についても同様に、サーバ2001は、ある時刻から前後N秒以内など範囲を指定してもよい。これにより、サーバ2001は、「時刻:t-Nからt+Nにおいて、場所:絶対位置SからXXm以内」に存在していたクライアント装置2002からセンサ情報が取得できる。クライアント装置2002は、LiDARなどの三次元データを送信する際に、時刻tの直後に生成したデータを送信してもよい。
また、サーバ2001は、指定場所として、センサ情報取得対象となるクライアント装置2002の場所を示す情報と、センサ情報が欲しい場所とをそれぞれ別に指定してもよい。例えば、サーバ2001は、絶対位置SからYYmの範囲を少なくとも含むセンサ情報を、絶対位置SからXXm以内に存在したクライアント装置2002から取得することを指定する。クライアント装置2002は、送信する三次元データを選択する際には、指定された範囲のセンサ情報を少なくとも含むように、1つ以上のランダムアクセス可能な単位の三次元データを選択する。また、クライアント装置2002は、可視光画像を送信する際は、少なくとも時刻tの直前又は直後のフレームを含む、時間的に連続した複数の画像データを送信してもよい。
クライアント装置2002が5G或いはWiFi、又は、5Gにおける複数モードなど、複数の物理ネットワークをセンサ情報の送信に利用できる場合には、クライアント装置2002は、サーバ2001から通知された優先順位に従って利用するネットワークを選択してもよい。または、クライアント装置2002自身が送信データのサイズに基づいて適切な帯域を確保できるネットワークを選択してもよい。または、クライアント装置2002は、データ送信にかかる費用等に基づいて利用するネットワークを選択してもよい。また、サーバ2001からの送信要求には、クライアント装置2002が時刻Tまでに送信を開始可能な場合に送信を行う、など、送信期限を示す情報が含まれてもよい。サーバ2001は、期限内に十分なセンサ情報が取得できなければ再度送信要求を発行してもよい。
センサ情報は、圧縮又は非圧縮のセンサデータと共に、センサデータの特性を示すヘッダ情報を含んでもよい。クライアント装置2002は、ヘッダ情報を、センサデータとは異なる物理ネットワーク又は通信プロトコルを介してサーバ2001に送信してもよい。例えば、クライアント装置2002は、センサデータの送信に先立ってヘッダ情報をサーバ2001に送信する。サーバ2001は、ヘッダ情報の解析結果に基づいてクライアント装置2002のセンサデータを取得するかどうかを判断する。例えば、ヘッダ情報は、LiDARの点群取得密度、仰角、或いはフレームレート、又は、可視光画像の解像度、SN比、或いはフレームレートなどを示す情報を含んでもよい。これにより、サーバ2001は、決定した品質のセンサデータを有するクライアント装置2002からセンサ情報を取得できる。
以上のように、クライアント装置2002は、移動体に搭載され、移動体に搭載されたセンサにより得られた、移動体の周辺状況を示すセンサ情報を取得し、センサ情報を記憶部2012に記憶する。クライアント装置2002は、移動体がサーバ2001へセンサ情報を送信可能な環境に存在するかを判定し、移動体がサーバへセンサ情報を送信可能な環境に存在すると判定した場合、センサ情報をサーバ2001に送信する。
また、クライアント装置2002は、さらに、センサ情報から、移動体の周辺の三次元データを作成し、作成された三次元データを用いて移動体の自己位置を推定する。
また、クライアント装置2002は、さらに、サーバ2001に三次元マップの送信要求を送信し、サーバ2001から三次元マップを受信する。クライアント装置2002は、自己位置の推定では、三次元データと三次元マップとを用いて、自己位置を推定する。
なお、上記クライアント装置2002による処理は、クライアント装置2002における情報送信方法として実現されてもよい。
また、クライアント装置2002は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行ってもよい。
次に、本実施の形態に係るセンサ情報収集システムについて説明する。図157は、本実施の形態に係るセンサ情報収集システムの構成を示す図である。図157に示すように本実施の形態に係るセンサ情報収集システムは、端末2021Aと、端末2021Bと、通信装置2022Aと、通信装置2022Bと、ネットワーク2023と、データ収集サーバ2024と、地図サーバ2025と、クライアント装置2026とを含む。なお、端末2021A及び端末2021Bを特に区別しない場合には端末2021とも記載する。通信装置2022A及び通信装置2022Bを特に区別しない場合には通信装置2022とも記載する。
データ収集サーバ2024は、端末2021が備えるセンサで得られたセンサデータなどのデータを三次元空間中の位置と対応付けられた位置関連データとして収集する。
センサデータとは、例えば、端末2021の周囲の状態または端末2021の内部の状態などを、端末2021が備えるセンサを用いて取得したデータである。端末2021は、端末2021と直接通信可能、又は同一の通信方式で一或いは複数の中継装置を中継して通信可能な位置にある一又は複数のセンサ機器から収集したセンサデータをデータ収集サーバ2024に送信する。
位置関連データに含まれるデータは、例えば、端末自身又は端末が備える機器の動作状態、動作ログ、サービスの利用状況などを示す情報を含んでいてもよい。また、位置関連データに含まれるデータは、端末2021の識別子と端末2021の位置又は移動経路などとを対応付けた情報などを含んでもよい。
位置関連データに含まれる、位置を示す情報は、例えば三次元地図データなどの三次元データにおける位置を示す情報と対応付けられている。位置を示す情報の詳細については後述する。
位置関連データは、位置を示す情報である位置情報に加えて、前述した時刻情報と、位置関連データに含まれるデータの属性、又は当該データを生成したセンサの種類(例えば型番など)を示す情報とのうち少なくとも一つを含んでいてもよい。位置情報及び時刻情報は、位置関連データのヘッダ領域又は位置関連データを格納するフレームのヘッダ領域に格納されていてもよい。また、位置情報及び時刻情報は、位置関連データと対応付けられたメタデータとして位置関連データとは別に送信及び/又は格納されてもよい。
地図サーバ2025は、例えば、ネットワーク2023に接続されており、端末2021などの他の装置からの要求に応じて三次元地図データなどの三次元データを送信する。また、前述した各実施の形態で説明したように、地図サーバ2025は、端末2021から送信されたセンサ情報を用いて、三次元データを更新する機能などを備えていてもよい。
データ収集サーバ2024は、例えば、ネットワーク2023に接続されており、端末2021などの他の装置から位置関連データを収集し、収集した位置関連データを内部又は他のサーバ内の記憶装置に格納する。また、データ収集サーバ2024は、収集した位置関連データ又は位置関連データに基づいて生成した三次元地図データのメタデータなどを、端末2021からの要求に応じて端末2021に対して送信する。
ネットワーク2023は、例えばインターネットなどの通信ネットワークである。端末2021は、通信装置2022を介してネットワーク2023に接続されている。通信装置2022は、一つの通信方式、又は複数の通信方式を切り替えながら端末2021と通信を行う。通信装置2022は、例えば、(1)LTE(Long Term Evolution)などの基地局、(2)WiFi或いはミリ波通信などのアクセスポイント(AP)、(3)SIGFOX、LoRaWAN或いはWi-SUNなどのLPWA(Low Power Wide Area) Networkのゲートウェイ、又は、(4)DVB-S2などの衛星通信方式を用いて通信を行う通信衛星である。
なお、基地局は、NB-IoT(Narrow Band-IoT)又はLTE-MなどのLPWAに分類される方式で端末2021との通信を行っていてもよいし、これらの方式を切り替えながら端末2021との通信を行っていてもよい。
ここでは、端末2021が2種類の通信方式を用いる通信装置2022と通信する機能を備え、これらの通信方式のいずれかを用いて、またはこれらの複数の通信方式及び直接の通信相手となる通信装置2022を切り替えながら地図サーバ2025又はデータ収集サーバ2024と通信を行う場合を例に挙げるが、センサ情報収集システム及び端末2021の構成はこれに限らない。例えば、端末2021は、複数の通信方式での通信機能を有さず、いずれか一つの通信方式で通信を行う機能を備えてもよい。また、端末2021は、3つ以上の通信方式に対応していてもよい。また、端末2021ごとに対応する通信方式が異なっていてもよい。
端末2021は、例えば図147に示したクライアント装置902の構成を備える。端末2021は、受信した三次元データを用いて自己位置などの位置推定を行う。また、端末2021は、センサから取得したセンサデータと位置推定の処理により得られた位置情報とを対応付けて位置関連データを生成する。
位置関連データに付加される位置情報は、例えば、三次元データで用いられている座標系における位置を示す。例えば、位置情報は、緯度及び経度の値で表される座標値である。このとき、端末2021は、座標値と共に当該座標値の基準となる座標系、及び位置推定に用いた三次元データを示す情報を位置情報に含めてもよい。また、座標値は高度の情報を含んでいてもよい。
また、位置情報は、前述した三次元データの符号化に用いることができるデータの単位又は空間の単位に対応付けられていてもよい。この単位とは、例えば、WLD、GOS、SPC、VLM、又はVXLなどである。このとき、位置情報は、例えば位置関連データに対応するSPCなどのデータ単位を特定するための識別子で表現される。なお、位置情報は、SPCなどのデータ単位を特定するための識別子に加えて、当該SPCなどのデータ単位を含む三次元空間を符号化した三次元データを示す情報、又は当該SPC内での詳細な位置を示す情報などを含んでいてもよい。三次元データを示す情報とは、例えば、当該三次元データのファイル名である。
このように、当該システムは、三次元データを用いた位置推定に基づく位置情報と対応付けた位置関連データを生成することにより、GPSを用いて取得されたクライアント装置(端末2021)の自己位置に基づく位置情報をセンサ情報に付加する場合よりも精度の高い位置情報をセンサ情報に付与することができる。その結果、位置関連データを他の装置が他のサービスにおいて利用する場合においても、同じ三次元データに基づいて位置推定を行うことで、位置関連データに対応する位置を実空間でより正確に特定できる可能性がある。
なお、本実施の形態では、端末2021から送信されるデータが位置関連データの場合を例に挙げて説明したが、端末2021から送信されるデータは位置情報と関連付けられていないデータであってもよい。すなわち、他の実施の形態で説明した三次元データ又はセンサデータの送受信が本実施の形態で説明したネットワーク2023を介して行われてもよい。
次に、三次元又は二次元の実空間又は地図空間における位置を示す位置情報の異なる例について説明する。位置関連データに付加される位置情報は、三次元データ中の特徴点に対する相対位置を示す情報であってもよい。ここで、位置情報の基準となる特徴点は、例えばSWLDとして符号化され、三次元データとして端末2021に通知された特徴点である。
特徴点に対する相対位置を示す情報は、例えば、特徴点から位置情報が示す点までのベクトルで表され、特徴点から位置情報が示す点までの方向と距離を示す情報であってもよい。または、特徴点に対する相対位置を示す情報は、特徴点から位置情報が示す点までのX軸、Y軸、Z軸のそれぞれの変位量を示す情報であってもよい。また、特徴点に対する相対位置を示す情報は、3以上の特徴点のそれぞれから位置情報が示す点までの距離を示す情報であってもよい。なお、相対位置は、各特徴点を基準として表現された位置情報が示す点の相対位置ではなく、位置情報が示す点を基準として表現された各特徴点の相対位置であってもよい。特徴点に対する相対位置に基づく位置情報の一例は、基準となる特徴点を特定するための情報と、当該特徴点に対する位置情報が示す点の相対位置を示す情報とを含む。また、特徴点に対する相対位置を示す情報が三次元データとは別に提供される場合、特徴点に対する相対位置を示す情報は、相対位置の導出に用いた座標軸、三次元データの種類を示す情報、又は/及び相対位置を示す情報の値の単位量あたりの大きさ(縮尺など)を示す情報などを含んでいてもよい。
また、位置情報は、複数の特徴点について、各特徴点に対する相対位置を示す情報を含んでいてもよい。位置情報を複数の特徴点に対する相対位置で表した場合、実空間において当該位置情報が示す位置を特定しようとする端末2021は、特徴点ごとにセンサデータから推定した当該特徴点の位置から位置情報が示す位置の候補点を算出し、算出された複数の候補点を平均して求めた点を位置情報が示す点であると判定してもよい。この構成によると、センサデータから特徴点の位置を推定する際の誤差の影響を軽減できるため、実空間における位置情報が示す点の推定精度を向上できる。また、位置情報が複数の特徴点に対する相対位置を示す情報を含む場合、端末2021が備えるセンサの種類又は性能などの制約で検出できない特徴点がある場合であっても、複数の特徴点のいずれか一つでも検出することができれば位置情報が示す点の値を推定することが可能となる。
特徴点として、センサデータから特定可能な点を用いことができる。センサデータから特定可能な点とは、例えば、前述した三次元特徴量又は可視光データの特徴量が閾値以上であるなど特徴点検出用の所定の条件を満たす点又は領域内の点である。
また、実空間に設置されたマーカなどを特徴点として用いてもよい。この場合、マーカは、LiDER又はカメラなどのセンサを用いて取得されたデータから検出及び位置の特定が可能であればよい。例えば、マーカは、色或いは輝度値(反射率)の変化、又は、三次元形状(凹凸など)で表現される。また、当該マーカの位置を示す座標値、又は当該マーカの識別子から生成された二次元コード又はバーコードなどが用いられてもよい。
また、光信号を送信する光源をマーカとして用いてもよい。光信号の光源をマーカとして用いる場合、座標値又は識別子などの位置を取得するための情報だけでなく、その他のデータが光信号により送信されてもよい。例えば、光信号は、当該マーカの位置に応じたサービスのコンテンツ、コンテンツを取得するためのurlなどのアドレス、又はサービスの提供を受けるための無線通信装置の識別子と、当該無線通信装置と接続するための無線通信方式などを示す情報を含んでもよい。光通信装置(光源)をマーカとして用いることで、位置を示す情報以外のデータの送信が容易になると共に、当該データを動的に切り替えることが可能となる。
端末2021は、互いに異なるデータ間での特徴点の対応関係を、例えば、データ間で共通に用いられる識別子、又は、データ間の特徴点の対応関係を示す情報或いはテーブルを用いて把握する。また、特徴点間の対応関係を示す情報がない場合、端末2021は、一方の三次元データにおける特徴点の座標を他方の三次元データ空間上の位置に変換した場合に最も近い距離にある特徴点を対応する特徴点であると判定してもよい。
以上で説明した相対位置に基づく位置情報を用いた場合、互いに異なる三次元データを用いる端末2021又はサービス間であっても、各三次元データに含まれる、又は各三次元データと対応付けられた共通の特徴点を基準に位置情報が示す位置を特定、又は推定することができる。その結果、互いに異なる三次元データを用いる端末2021又はサービス間で、同じ位置をより高い精度で特定又は推定することが可能となる。
また、互いに異なる座標系を用いて表現された地図データ又は三次元データを用いる場合であっても、座標系の変換に伴う誤差の影響を低減できるため、より高精度な位置情報に基づくサービスの連携が可能となる。
以下、データ収集サーバ2024が提供する機能の例について説明する。データ収集サーバ2024は、受信した位置関連データを他のデータサーバに転送してもよい。データサーバが複数ある場合、データ収集サーバ2024は、受信した位置関連データをどのデータサーバに転送するかを判定して、転送先として判定されたデータサーバ宛に位置関連データを転送する。
データ収集サーバ2024は、転送先の判定を、例えば、データ収集サーバ2024に事前に設定された転送先サーバの判定ルールに基づいて行う。転送先サーバの判定ルールとは、例えば、各端末2021に対応付けられた識別子と転送先のデータサーバとを対応付けた転送先テーブルなどで設定される。
端末2021は、送信する位置関連データに対して当該端末2021に対応付けられた識別子を付加してデータ収集サーバ2024に送信する。データ収集サーバ2024は、位置関連データに付加された識別子に対応する転送先のデータサーバを転送先テーブルなどを用いた転送先サーバの判定ルールに基づいて特定し、当該位置関連データを特定されたデータサーバに送信する。また、転送先サーバの判定ルールは、位置関連データが取得された時間又は場所などを用いた判定条件で指定されてもよい。ここで、上述した送信元の端末2021に対応付けられた識別子とは、例えば各端末2021に固有の識別子、又は端末2021が属するグループを示す識別子などである。
また、転送先テーブルは、送信元の端末に対応付けられた識別子と転送先のデータサーバとを直接対応付けたものでなくてもよい。例えば、データ収集サーバ2024は、端末2021に固有の識別子毎に付与されたタグ情報を格納した管理テーブルと、当該タグ情報と転送先のデータサーバを対応付けた転送先テーブルとを保持する。データ収集サーバ2024は、管理テーブルと転送先テーブルとを用いてタグ情報に基づく転送先のデータサーバを判定してもよい。ここで、タグ情報は、例えば当該識別子に対応する端末2021の種類、型番、所有者、所属するグループ又はその他の識別子に付与された管理用の制御情報又はサービス提供用の制御情報である。また、転送先テーブルに、送信元の端末2021に対応付けられた識別子の代わりに、センサ毎に固有の識別子が用いられてもよい。また、転送先サーバの判定ルールは、クライアント装置2026から設定できてもよい。
データ収集サーバ2024は、複数のデータサーバを転送先として判定し、受信した位置関連データを当該複数のデータサーバに転送してもよい。この構成によると、例えば、位置関連データを自動的にバックアップする場合、又は位置関連データを異なるサービスで共通に利用するために、各サービスを提供するためのデータサーバに対して位置関連データを送信する必要がある場合に、データ収集サーバ2024に対する設定を変更ことで意図通りのデータの転送を実現できる。その結果、個別の端末2021に位置関連データの送信先を設定する場合と比較して、システムの構築及び変更に要する工数を削減することができる。
データ収集サーバ2024は、データサーバから受信した転送要求信号に応じて、転送要求信号で指定されたデータサーバを新たな転送先として登録し、以降に受信した位置関連データを当該データサーバに転送してもよい。
データ収集サーバ2024は、端末2021から受信した位置関連データを記録装置に保存し、端末2021又はデータサーバから受信した送信要求信号に応じて、送信要求信号で指定された位置関連データを、要求元の端末2021又はデータサーバに送信してもよい。
データ収集サーバ2024は、要求元のデータサーバ又は端末2021に対する位置関連データの提供の可否を判断し、提供可能と判断された場合に要求元のデータサーバ又は端末2021に位置関連データの転送又は送信を行ってもよい。
クライアント装置2026から現在の位置関連データの要求を受け付けた場合、端末2021による位置関連データの送信タイミングでなくても、データ収集サーバ2024が端末2021に対して位置関連データの送信要求を行い、端末2021が当該送信要求に応じて位置関連データを送信してもよい。
上記の説明では、端末2021がデータ収集サーバ2024に対して位置情報データを送信するとしたが、データ収集サーバ2024は、例えば、端末2021を管理する機能など、端末2021から位置関連データを収集するために必要な機能又は端末2021から位置関連データを収集する際に用いられる機能などを備えてもよい。
データ収集サーバ2024は、端末2021に対して位置情報データの送信を要求するデータ要求信号を送信し、位置関連データを収集する機能を備えてもよい。
データ収集サーバ2024には、データ収集の対象となる端末2021と通信を行うためのアドレス又は端末2021固有の識別子などの管理情報が事前に登録されている。データ収集サーバ2024は、登録されている管理情報に基づいて端末2021から位置関連データを収集する。管理情報は、端末2021が備えるセンサの種類、端末2021が備えるセンサの数、及び端末2021が対応する通信方式などの情報を含んでいてもよい。
データ収集サーバ2024は、端末2021の稼働状態又は現在位置などの情報を端末2021から収集してもよい。
管理情報の登録は、クライアント装置2026から行われてもよいし、端末2021が登録要求をデータ収集サーバ2024に送信することで、登録のための処理が開始されてもよい。データ収集サーバ2024は、端末2021との間の通信を制御する機能を備えてもよい。
データ収集サーバ2024と端末2021とを結ぶ通信は、MNO(Mobile Network Operator)、或いはMVNO(Mobile Virtual Network Operator)などのサービス事業者が提供する専用回線、又は、VPN(Virtual Private Network)で構成された仮想の専用回線などであってもよい。この構成によると、端末2021とデータ収集サーバ2024との間の通信を安全に行うことができる。
データ収集サーバ2024は、端末2021を認証する機能、又は端末2021との間で送受信されるデータを暗号化する機能を備えてもよい。ここで、端末2021の認証の処理又はデータの暗号化の処理は、データ収集サーバ2024と端末2021との間で事前に共有された、端末2021に固有の識別子又は複数の端末2021を含む端末グループに固有の識別子などを用いて行われる。この識別子とは、例えば、SIM(Subscriber Identity Module)カードに格納された固有の番号であるIMSI(International Mobile Subscriber Identity)などである。認証処理に用いられる識別子とデータの暗号化処理に用いる識別子とは、同じであってもよいし、異なっていてもよい。
データ収集サーバ2024と端末2021との間の認証又はデータの暗号化の処理は、データ収集サーバ2024と端末2021との両方が当該処理を実施する機能を備えていれば提供可能であり、中継を行う通信装置2022が用いる通信方式に依存しない。よって、端末2021が通信方式を用いるかを考慮することなく、共通の認証又は暗号化の処理を用いることができるので、ユーザのシステム構築の利便性が向上する。ただし、中継を行う通信装置2022が用いる通信方式に依存しないとは、通信方式に応じて変更することが必須ではないことを意味している。つまり、伝送効率の向上又は安全性の確保の目的で、中継装置が用いる通信方式に応じてデータ収集サーバ2024と端末2021との間の認証又はデータの暗号化の処理が切り替えられてもよい。
データ収集サーバ2024は、端末2021から収集する位置関連データの種類及びデータ収集のスケジュールなどのデータ収集ルールを管理するUIをクライアント装置2026に提供してもよい。これにより、ユーザはクライアント装置2026を用いてデータを収集する端末2021、並びに、データの収集時間及び頻度などを指定できる。また、データ収集サーバ2024は、データを収集したい地図上の領域などを指定し、当該領域に含まれる端末2021から位置関連データを収集してもよい。
データ収集ルールを端末2021単位で管理する場合、クライアント装置2026は、例えば、管理対象となる端末2021又はセンサのリストを画面に提示する。ユーザはリストの項目毎にデータの収集の要否又は収集スケジュールなどを設定する。
データを収集したい地図上の領域などを指定する場合、クライアント装置2026は、例えば、管理対象となる地域の二次元又は三次元の地図を画面に提示する。ユーザは、表示された地図上でデータを収集する領域を選択する。地図上で選択される領域は、地図上で指定された点を中心とする円形又は矩形の領域であってもよいし、ドラッグ動作で特定可能な円形又は矩形の領域であってもよい。また、クライアント装置2026は、都市、都市内のエリア、ブロック、又は主要な道路など予め設定された単位で領域を選択してもよい。また、地図を用いて領域を指定するのではなく、緯度及び経度の数値を入力して領域が設定されてもよいし、入力されたテキスト情報に基づいて導出した候補領域のリストから領域が選択されてもよい。テキスト情報は、例えば、地域、都市、又はランドマークの名前などである。
また、ユーザが一又は複数の端末2021を指定して、当該端末2021の周囲100メートルの範囲内などの条件を設定することで、指定領域を動的に変更しながらデータの収集が行われてもよい。
また、クライアント装置2026がカメラなどのセンサを備える場合、センサデータから得られたクライアント装置2026の実空間での位置に基づいて地図上の領域が指定されてもよい。例えば、クライアント装置2026は、センサデータを用いて自己位置を推定し、推定された位置に対応する地図上の点から予め定められた距離、又はユーザが指定した距離の範囲内の領域を、データを収集する領域として指定してもよい。また、クライアント装置2026は、センサのセンシング領域、すなわち取得されたセンサデータに対応する領域を、データを収集する領域として指定してもよい。または、クライアント装置2026は、ユーザの指定したセンサデータに対応する位置に基づく領域を、データを収集する領域として指定してもよい。センサデータに対応する地図上の領域、又は位置の推定は、クライアント装置2026が行ってもよいし、データ収集サーバ2024が行ってもよい。
地図上の領域で指定を行う場合、データ収集サーバ2024は、各端末2021の現在位置情報を収集することで、指定された領域内の端末2021を特定し、特定された端末2021に対して位置関連データの送信を要求してもよい。また、データ収集サーバ2024が領域内の端末2021を特定するのではなく、データ収集サーバ2024が指定された領域を示す情報を端末2021に送信し、端末2021が自身が指定された領域内にあるか否かを判定して、指定された領域内にあると判断された場合に位置関連データを送信してもよい。
データ収集サーバ2024は、クライアント装置2026が実行するアプリケーションにおいて上述したUI(User Interface)を提供するためのリスト又は地図などのデータをクライアント装置2026に送信する。データ収集サーバ2024は、リスト又は地図などのデータだけでなく、アプリケーションのプログラムをクライアント装置2026に送信してもよい。また、上述したUIは、ブラウザで表示可能なHTMLなどで作成されたコンテンツとして提供されてもよい。なお、地図データなど一部のデータは地図サーバ2025などのデータ収集サーバ2024以外のサーバから提供されてもよい。
クライアント装置2026は、ユーザによる設定ボタンの押下など、入力が完了したことを通知する入力が行われると、入力された情報を設定情報としてデータ収集サーバ2024に送信する。データ収集サーバ2024は、クライアント装置2026から受信した設定情報に基づいて各端末2021に対して、位置関連データの要求又は位置関連データの収集ルールを通知する信号を送信し、位置関連データの収集を行う。
次に、三次元又は二次元の地図データに付加された付加情報に基づいて端末2021の動作を制御する例について説明する。
本構成では、道路又は駐車場に埋設された無線給電の給電アンテナ又は給電コイルなどの給電部の位置を示すオブジェクト情報が、三次元データに含まれて、又は三次元データに対応付けられて、車又はドローンなどである端末2021に提供される。
充電を行うために当該オブジェクト情報を取得した車両又はドローンは、車両が備える充電アンテナ又は充電コイルなどの充電部の位置が、当該オブジェクト情報が示す領域と対向する位置になるよう自動運転で車両自身の位置を移動させ、充電を開始する。なお、自動運転機能を備えていない車両又はドローンの場合は、画面上に表示された画像又は音声などを利用して、移動すべき方向又は行うべき操作を運転手又は操縦者に対して提示される。そして、推定された自己位置に基づいて算出した充電部の位置が、オブジェクト情報で示された領域又は当該領域から所定の距離の範囲内に入った判断されると、運転又は操縦を中止させる内容へと提示する画像又は音声が切り替えられ、充電が開始される。
また、オブジェクト情報は給電部の位置を示す情報ではなく、当該領域内に充電部を配置すると所定の閾値以上の充電効率が得られる領域を示す情報であってもよい。オブジェクト情報の位置は、オブジェクト情報が示す領域の中心の点で表されてもよいし、二次元平面内の領域或いは線、又は、三次元空間内の領域、線或いは平面などで表されてもよい。
この構成によると、LiDERのセンシングデータ又はカメラで撮影した映像では把握できない給電アンテナの位置を把握することができるので、車などの端末2021が備える無線充電用のアンテナと道路などに埋設された無線給電アンテナとの位置合わせをより高精度に行うことができる。その結果、無線充電時の充電速度を短くしたり、充電効率を向上させることができる。
オブジェクト情報は、給電アンテナの以外の対象物であってもよい。例えば、三次元データは、ミリ波無線通信のAPの位置などをオブジェクト情報として含む。これにより、端末2021は、APの位置を事前に把握することができるので、当該オブジェクト情報の方向にビームの指向性を向けて通信を開始することができる。その結果、伝送速度の向上、通信開始までの時間の短縮、及び通信可能な期間を延ばすなどの通信品質の向上を実現できる。
オブジェクト情報は、当該オブジェクト情報に対応する対象物のタイプを示す情報を含んでもよい。また、オブジェクト情報は、当該オブジェクト情報の三次元データ上の位置に対応する実空間上の領域内、又は領域から所定の距離の範囲内に端末2021が含まれる場合に、端末2021が実施すべき処理を示す情報を含んでもよい。
オブジェクト情報は、三次元データを提供するサーバとは異なるサーバから提供されてもよい。オブジェクト情報を三次元データとは別に提供する場合、同一のサービスで使用されるオブジェクト情報が格納されたオブジェクトグループが、対象サービス又は対象機器の種類に応じてそれぞれ別のデータとして提供されてもよい。
オブジェクト情報と組み合わせて用いられる三次元データは、WLDの点群データであってもよいし、SWLDの特徴点データであってもよい。
三次元データ符号化装置において、符号化対象の三次元点である対象三次元点の属性情報をLoD(Level of Detail)を用いて階層符号化した場合、三次元データ復号装置は、当該三次元データ復号装置で必要なLoDの階層まで属性情報を復号し、必要でない階層の属性情報を復号しなくてもよい。例えば、三次元データ符号化装置が符号化したビットストリーム内の属性情報のLoDの総数がN個の場合、三次元データ復号装置は、最上位層のLoD0からLoD(M-1)までのM個(M<N)のLoDを復号し、残りのLoD(N-1)までのLoDを復号しなくてもよい。これにより、三次元データ復号装置は、処理負荷を抑制しつつ、三次元データ復号装置で必要なLoD0からLoD(M-1)までの属性情報を復号できる。
図158は、上記のユースケースを示す図である。図158に例では、サーバは、三次元位置情報と属性情報とを符号化することで得られた三次元地図を保持する。サーバ(三次元データ符号化装置)は、サーバが管理する領域のクライアント装置(三次元データ復号装置:例えば車両又はドローン等)に対し、三次元地図をブロードキャスト送信し、クライアント装置はサーバから受信した三次元地図を用いてクライアント装置の自己位置を特定する処理、又は、クライアント装置を操作するユーザ等に地図情報を表示する処理を行う。
以下、この例における動作例を説明する。まず、サーバは、三次元地図の位置情報を8分木構成などを用いて符号化する。そして、サーバは、位置情報をベースに構築されたN個のLoDを用いて三次元地図の属性情報を階層符号化する。サーバは、階層符号化により得られた三次元地図のビットストリームを保存する。
次にサーバは、サーバが管理する領域のクライアント装置から送信された地図情報の送信要求に応じて、符号化された三次元地図のビットストリームをクライアント装置に送信する。
クライアント装置は、サーバから送信された三次元地図のビットストリームを受信し、クライアント装置の用途に応じて三次元地図の位置情報と属性情報とを復号する。例えば、クライアント装置が位置情報とN個のLoDの属性情報とを用いて高精度な自己位置推定を行う場合は、クライアント装置は、属性情報として密な三次元点までの復号結果が必要と判断し、ビットストリーム内の全ての情報を復号する。
また、クライアント装置が三次元地図の情報をユーザ等に表示する場合は、クライアント装置は、属性情報として疎な三次元点までの復号結果までが必要と判断し、位置情報とLoDの上位層であるLoD0からM個(M<N)までのLoDの属性情報とを復号する。
このようにクライアント装置の用途に応じて復号する属性情報のLoDを切替えることによって、クライアント装置の処理負荷を削減できる。
図158に示す例では、例えば、三次元点地図は、位置情報と属性情報とを含む。位置情報は、8分木で符号化される。属性情報は、N個のLoDで符号化される。
クライアント装置Aは、高精度な自己位置推定を行う。この場合、クライアント装置Aは、全ての位置情報と属性情報とが必要と判断し、ビットストリーム内の位置情報とN個のLoDで構成される属性情報とを全て復号する。
クライアント装置Bは、三次元地図をユーザへ表示する。この場合、クライアント装置Bは、位置情報とM個(M<N)のLoDの属性情報とが必要と判断し、ビットストリーム内の位置情報とM個のLoDで構成される属性情報とを復号する。
なお、サーバは、三次元地図をクライアント装置にブロードキャスト送信してもよいし、マルチキャスト送信、又はユニキャスト送信してもよい。
以下、本実施の形態に係るシステムの変形例について説明する。三次元データ符号化装置において、符号化対象の三次元点である対象三次元点の属性情報をLoDを用いて階層符号化する場合、三次元データ符号化装置は、当該三次元データ復号装置で必要なLoDの階層まで属性情報を符号化し、必要でない階層の属性情報を符号化しなくてもよい。例えば、LoDの総数がN個の場合に、三次元データ符号化装置は、最上位層LoD0からLoD(M-1)までのM個(M<N)のLoDを符号化し、残りLoD(N-1)までのLoDを符号化しないことによりビットストリームを生成してもよい。これにより、三次元データ符号化装置は、三次元データ復号装置からの要望に応じて、三次元データ復号装置で必要なLoD0からLoD(M-1)までの属性情報を符号化したビットストリームを提供できる。
図159は、上記ユースケースを示す図である。図159に示す例では、サーバは、三次元位置情報と属性情報とを符号化することで得られた三次元地図を保持する。サーバ(三次元データ符号化装置)は、サーバが管理する領域のクライアント装置(三次元データ復号装置:例えば車両又はドローン等)に対し、クライアント装置の要望に応じて三次元地図をユニキャスト送信し、クライアント装置はサーバから受信した三次元地図を用いてクライアント装置の自己位置を特定する処理、又は地図情報をクライアント装置を操作するユーザ等に表示する処理を行う。
以下、この例における動作例を説明する。まず、サーバは、三次元地図の位置情報を8分木構成などを用いて符号化する。そして、サーバは、三次元地図の属性情報を、位置情報をベースに構築されたN個のLoDを用いて階層符号化することで三次元地図Aのビットストリームを生成し、生成したビットストリームを当該サーバに保存する。また、サーバは、三次元地図の属性情報を、位置情報をベースに構築されたM個(M<N)のLoDを用いて階層符号化することで三次元地図Bのビットストリームを生成し、生成したビットストリームを当該サーバに保存する。
次にクライアント装置は、クライアント装置の用途に応じて三次元地図の送信をサーバに要求する。例えば、クライアント装置は、位置情報とN個のLoDの属性情報とを用いて高精度な自己位置推定を行う場合は、属性情報として密な三次元点までの復号結果が必要と判断し、三次元地図Aのビットストリームの送信をサーバへ要求する。また、クライアント装置は、三次元地図の情報をユーザ等に表示する場合は、属性情報として疎な三次元点までの復号結果までが必要と判断し、位置情報とLoDの上位層LoD0からM個(M<N)までのLoDの属性情報とを含む三次元地図Bのビットストリームの送信をサーバへ要求する。そしてサーバは、クライアント装置からの地図情報の送信要求に応じて、符号化された三次元地図A又は三次元地図Bのビットストリームをクライアント装置に送信する。
クライアント装置は、クライアント装置の用途に応じてサーバから送信された三次元地図A又は三次元地図Bのビットストリームを受信し、当該ビットストリームを復号する。このようにサーバは、クライアント装置の用途に応じて送信するビットストリームを切替える。これにより、クライアント装置の処理負荷を削減できる。
図159に示す例では、サーバは、三次元地図A及び三次元地図Bを保持する。サーバは、三次元地図の位置情報を、例えば8分木で符号化し、三次元地図の属性情報をN個のLoDで符号化することで三次元地図Aを生成する。つまり、三次元地図Aのビットストリームに含まれるNumLoDはNを示す。
また、サーバは、三次元地図の位置情報を、例えば8分木で符号化し、三次元地図の属性情報をM個のLoDで符号化することで三次元地図Bを生成する。つまり、三次元地図Bのビットストリームに含まれるNumLoDはMを示す。
クライアント装置Aは、高精度な自己位置推定を行う。この場合クライアント装置Aは、全ての位置情報と属性情報とが必要と判断し、全ての位置情報とN個のLoDで構成される属性情報とを含む三次元地図Aの送信要求をサーバに送る。クライアント装置Aは、三次元地図Aを受信し、全ての位置情報とN個のLoDで構成される属性情報とを復号する。
クライアント装置Bは、三次元地図をユーザへ表示する。この場合、クライアント装置Bは、位置情報とM個(M<N)のLoDの属性情報とが必要と判断し、全ての位置情報とM個のLoDで構成される属性情報とを含む三次元地図Bの送信要求をサーバに送る。クライアント装置Bは、三次元地図Bを受信して、全ての位置情報とM個のLoDで構成される属性情報とを復号する。
なお、サーバ(三次元データ符号化装置)は、三次元地図Bに加え、残りのN-M個のLoDの属性情報を符号化した三次元地図Cを符号化しておき、クライアント装置Bの要望に応じて三次元地図Cをクライアント装置Bに送信してもよい。また、クライアント装置Bは、三次元地図Bと三次元地図Cとのビットストリームを用いて、N個のLoDの復号結果を得てもよい。
以下、アプリケーション処理の例を説明する。図160は、アプリケーション処理の例を示すフローチャートである。アプリ操作が開始されると、三次元データ逆多重化装置は、点群データ及び複数の符号化データを含むISOBMFFファイルを取得する(S7301)。例えば、三次元データ逆多重化装置は、ISOBMFFファイルを、通信により取得してもよいし、蓄積しているデータから読み込んでもよい。
次に、三次元データ逆多重化装置は、ISOBMFFファイルにおける全体構成情報を解析し、アプリケーションに使用するデータを特定する(S7302)。例えば、三次元データ逆多重化装置は、処理に用いるデータを取得し、処理に用いないデータは取得しない。
次に、三次元データ逆多重化装置は、アプリケーションに使用する1以上のデータを抽出し、当該データの構成情報を解析する(S7303)。
データの種別が符号化データである場合(S7304で符号化データ)、三次元データ逆多重化装置は、ISOBMFFを符号化ストリームに変換し、タイムスタンプを抽出する(S7305)。また、三次元データ逆多重化装置は、データ間の同期がそろっているか否かを、例えば、データ間の同期がそろっているか否かを示すフラグを参照して判定し、揃っていなければ同期処理を行ってもよい。
次に、三次元データ逆多重化装置は、タイムスタンプ及びその他の指示に従い、所定の方法でデータを復号し、復号したデータを処理する(S7306)。
一方、データの種別が符号化データである場合(S7304でRAWデータ)、三次元データ逆多重化装置は、データ及びタイムスタンプを抽出する(S7307)。また、三次元データ逆多重化装置は、データ間の同期がそろっているか否かを、例えば、データ間の同期がそろっているか否かを示すフラグを参照して判定し、揃っていなければ同期処理を行ってもよい。次に、三次元データ逆多重化装置は、タイムスタンプ及びその他の指示に従い、データを処理する(S7308)。
例えば、ビームLiDAR、FLASH LiDAR、及びカメラで取得されたセンサ信号が、それぞれ異なる符号化方式で符号化及び多重化されている場合の例を説明する。図161は、ビームLiDAR、FLASH LiDAR及びカメラのセンサ範囲の例を示す図である。例えば、ビームLiDARは、車両(センサ)の周囲の全方向を検知し、FLASH LiDAR及びカメラは、車両の一方向(例えば前方)の範囲を検知する。
LiDAR点群を統合的に扱うアプリケーションの場合、三次元データ逆多重化装置は、全体構成情報を参照して、ビームLiDARとFLASH LiDARの符号化データを抽出して復号する。また、三次元データ逆多重化装置は、カメラ映像は抽出しない。
三次元データ逆多重化装置は、LiDARとFLASH LiDARのタイムスタンプに従い、同一のタイムスタンプの時刻のそれぞれの符号化データを同時に処理する。
例えば、三次元データ逆多重化装置は、処理したデータを提示装置で提示したり、ビームLiDARとFLASH LiDARの点群データを合成したり、レンダリングなどの処理を行ってもよい。
また、データ間でキャリブレーションをするアプリケーションの場合には、三次元データ逆多重化装置は、センサ位置情報を抽出してアプリケーションで用いてもよい。
例えば、三次元データ逆多重化装置は、アプリケーションにおいて、ビームLiDAR情報を使用するか、FLASH LiDARを使用するかを選択し、選択結果に応じて処理を切り替えてもよい。
このように、アプリケーションの処理に応じて適応的にデータの取得及び符号処理を変えることができるので、処理量及び消費電力を削減できる。
以下、自動運転におけるユースケースについて説明する。図162は、自動運転システムの構成例を示す図である。この自動運転システムは、クラウドサーバ7350と、車載装置又はモバイル装置等のエッジ7360とを含む。クラウドサーバ7350は、逆多重化部7351と、復号部7352A、7352B及び7355と、点群データ合成部7353と、大規模データ蓄積部7354と、比較部7356と、符号化部7357とを備える。エッジ7360は、センサ7361A及び7361Bと、点群データ生成部7362A及び7362Bと、同期部7363と、符号化部7364A及び7364Bと、多重化部7365と、更新データ蓄積部7366と、逆多重化部7367と、復号部7368と、フィルタ7369と、自己位置推定部7370と、運転制御部7371とを備える。
このシステムでは、エッジ7360は、クラウドサーバ7350に蓄積されている大規模点群地図データである大規模データをダウンロードする。エッジ7360は、大規模データとエッジ7360で得られたセンサ情報とをマッチングすることで、エッジ7360(車両又は端末)の自己位置推定処理を行う。また、エッジ7360は、取得したセンサ情報をクラウドサーバ7350へアップロードし、大規模データを最新の地図データに更新する。
また、システム内における点群データを扱う様々なアプリケーションにおいて、符号化方法の異なる点群データが扱われる。
クラウドサーバ7350は、大規模データを符号化及び多重化する。具体的には、符号化部7357は、大規模点群を符号化するために適した第3の符号化方法を用いて符号化を行う。また、符号化部7357は、符号化データを多重化する。大規模データ蓄積部7354は、符号化部7357で符号化及び多重化されたデータを蓄積する。
エッジ7360は、センシングを行う。具体的には、点群データ生成部7362Aは、センサ7361Aで取得されるセンシング情報を用いて、第1の点群データ(位置情報(ジオメトリ)及び属性情報)を生成する。点群データ生成部7362Bは、センサ7361Bで取得されるセンシング情報を用いて、第2の点群データ(位置情報及び属性情報)を生成する。生成された第1の点群データ及び第2の点群データは、自動運転の自己位置推定或いは車両制御、又は地図更新に用いられる。それぞれの処理において、第1の点群データ及び第2の点群データのうちの一部の情報が用いられてもよい。
エッジ7360は、自己位置推定を行う。具体的には、エッジ7360は、大規模データをクラウドサーバ7350からダウンロードする。逆多重化部7367は、ファイルフォーマットの大規模データを逆多重化することで符号化データを取得する。復号部7368は、取得された符号化データを復号することで大規模点群地図データである大規模データを取得する。
自己位置推定部7370は、取得された大規模データと、点群データ生成部7362A及び7362Bで生成された第1の点群データ及び第2の点群データとをマッチングすることで、車両の地図における自己位置を推定する。また、運転制御部7371は、当該マッチング結果又は自己位置推定結果を運転制御に用いる。
なお、自己位置推定部7370及び運転制御部7371は、大規模データのうち、位置情報などの特定の情報を抽出し、抽出した情報を用いて処理を行ってもよい。また、フィルタ7369は、第1の点群データ及び第2の点群データに補正又は間引き等の処理を行う。自己位置推定部7370及び運転制御部7371は、当該処理が行われた後の第1の点群データ及び第2の点群データを用いてもよい。また、自己位置推定部7370及び運転制御部7371は、センサ7361A及び7361Bで得られたセンサ信号を用いてもよい。
同期部7363は、複数のセンサ信号又は複数の点群データのデータ間の時間同期及び位置補正を行う。また、同期部7363は、自己位置推定処理によって生成された、大規模データとセンサデータとの位置補正情報に基づき、センサ信号又は点群データの位置情報を大規模データに合わせるように補正してもよい。
なお、同期及び位置補正はエッジ7360でなく、クラウドサーバ7350で行われてもよい。この場合、エッジ7360は、同期情報及び位置情報を多重化してクラウドサーバ7350へ送信してもよい。
エッジ7360は.センサ信号又は点群データを符号化及び多重化する。具体的には、センサ信号又は点群データは、それぞれの信号を符号化するために適した第1の符号化方法又は第2の符号化方法を用いて符号化される。例えば、符号化部7364Aは、第1の符号化方法を用いて第1の点群データを符号化することで第1の符号化データを生成する。符号化部7364Bは、第2の符号化方法を用いて第2の点群データを符号化することで第2の符号化データを生成する。
多重化部7365は、第1の符号化データ、第2の符号化データ、及び同期情報などを多重化することで多重化信号を生成する。更新データ蓄積部7366は、生成された多重化信号を蓄積する。また、更新データ蓄積部7366は、多重化信号をクラウドサーバ7350へアップロードする。
クラウドサーバ7350は、点群データを合成する。具体的には、逆多重化部7351は、クラウドサーバ7350にアップロードされた多重化信号を逆多重化することで第1の符号化データ及び第2の符号化データを取得する。復号部7352Aは、第1の符号化データを復号することで第1の点群データ(又はセンサ信号)を取得する。復号部7352Bは、第2の符号化データを復号することで第2の点群データ(又はセンサ信号)を取得する。
点群データ合成部7353は、第1の点群データと第2の点群データとを所定の方法で合成する。多重化信号に同期情報及び位置補正情報が多重化されている場合には、点群データ合成部7353は、それらの情報を用いて合成を行ってもよい。
復号部7355は、大規模データ蓄積部7354に蓄積されている大規模データを逆多重化及び復号する。比較部7356は、エッジ7360で得られたセンサ信号に基づき生成された点群データとクラウドサーバ7350が有する大規模データとを比較し、更新が必要な点群データを判断する。比較部7356は、大規模データのうち、更新が必要と判断された点群データを、エッジ7360から得られた点群データに更新する。
符号化部7357は、更新された大規模データを符号化及び多重化し、得られたデータを大規模データ蓄積部7354に蓄積する。
以上のように、使用する用途又はアプリケーションに応じて、取り扱う信号が異なり、多重化する信号又は符号化方法が異なる場合がある。このような場合であっても、本実施の形態を用いて様々な符号化方式のデータを多重化することで、柔軟な復号及びアプリケーション処理が可能となる。また、信号の符号化方式が異なる場合であっても、逆多重化、復号、データ変換、符号化、多重の処理により適した符号化方式を変換することで、様々なアプリケーションやシステムを構築し、柔軟なサービスの提供が可能となる。
以下、分割データの復号及びアプリケーションの例を説明する。まず、分割データの情報について説明する。図163は、ビットストリームの構成例を示す図である。分割データの全体情報は、分割データ毎に、当該分割データのセンサID(sensor_id)とデータID(data_id)とを示す。なお、データIDは各符号化データのヘッダにも示される。
なお、図163に示す分割データの全体情報は、図40と同様に、センサIDに加え、センサ情報(Sensor)と、センサのバージョン(Version)と、センサのメーカー名(Maker)と、センサの設置情報(Mount Info.)と、センサの位置座標(World Coordinate)とのうち少なく一つを含んでもよい。これにより、三次元データ復号装置は、構成情報から各種センサの情報を取得できる。
分割データの全体情報は、メタデータであるSPS、GPS又はAPSに格納されてもよいし、符号化に必須でないメタデータであるSEIに格納されてもよい。また、三次元データ符号化装置は、多重化の際に、当該SEIをISOBMFFのファイルに格納する。三次元データ復号装置は、当該メタデータに基づき、所望の分割データを取得できる。
図163において、SPSは符号化データ全体のメタデータであり、GPSは位置情報のメタデータであり、APSは属性情報毎のメタデータであり、Gは分割データ毎の位置情報の符号化データであり、A1等は分割データ毎の属性情報の符号化データである。
次に、分割データのアプリケーション例を説明する。点群データから、任意の点群を選択し、選択した点群を提示するアプリケーションの例を説明する。図164は、このアプリケーションにより実行される点群選択処理のフローチャートである。図165~図167は、点群選択処理の画面例を示す図である。
図165に示すように、アプリケーションを実行する三次元データ復号装置は、例えば、任意の点群を選択するための入力UI(ユーザインタフェース)8661を表示するUI部を有する。入力UI8661は、選択された点群を提示する提示部8662と、ユーザの操作を受け付ける操作部(ボタン8663及び8664)を有する。三次元データ復号装置は、UI8661で点群が選択された後、蓄積部8665から所望のデータを取得する。
まず、ユーザの入力UI8661に対する操作に基づき、ユーザが表示したい点群情報が選択される(S8631)。具体的には、ボタン8663が選択されることで、センサ1に基づく点群が選択される。ボタン8664が選択されることで、センサ2に基づく点群が選択される。または、ボタン8663及びボタン8664の両方が選択されることで、センサ1に基づく点群とセンサ2に基づく点群の両方が選択される。なお、点群の選択方法は一例であり、これに限らない。
次に、三次元データ復号装置は、多重化信号(ビットストリーム)又は符号化データに含まれる分割データの全体情報を解析し、選択されたセンサのセンサID(sensor_id)から、選択された点群を構成する分割データのデータID(data_id)を特定する(S8632)。次に、三次元データ復号装置は、多重化信号から、特定された所望のデータIDを含む符号化データを抽出し、抽出した符号化データを復号することで、選択されたセンサに基づく点群を復号する(S8633)。なお、三次元データ復号装置は、その他の符号化データは復号しない。
最後に、三次元データ復号装置は、復号された点群を提示(例えば表示)する(S8634)。図166は、センサ1のボタン8663が押下された場合の例を示し、センサ1の点群が提示される。図167は、センサ1のボタン8663とセンサ2のボタン8664の両方が押下された場合の例を示し、センサ1及びセンサ2の点群が提示される。
(実施の形態9)
近年、センサの性能が向上しており、非常に高品質な三次元点群(三次元データ)を生成することができるようになっている。一方で、三次元点群のデータサイズは、センサの性能の向上につれて増大している。膨大なデータサイズを持つ三次元点群では、ナビゲーション又はディスプレイアプリケーション等のために用いられる際に、復号及びロードにおいて、処理量が多くなる問題が生じる。
三次元点群を表示するためのビューア又は自律走行型車両のナビゲーション等に用いられる多くのアプリケーションでは、カメラの撮像範囲に対応する位置に存在する三次元点群が注目点、つまり、ユーザに特に要求される三次元点群となることが多い。この注目点を三次元点群のパーティショニング(例えば、タイルのバウンディングボックス等の予め定められる三次元点群の空間的な分割位置を示す情報)と合わせて利用することで、三次元点群におけるユーザの現在位置等との関連部分を効率的に復号及びロードしてアプリケーションに利用することができる。
例えば、カメラ位置と焦点位置とを結ぶベクトルを第1ベクトルとする。また、例えば、タイル位置とカメラ位置及び焦点位置のいずれかと、を結ぶベクトルを第2ベクトルする。第1ベクトルと第2ベクトルのベクトル間の角度を内積によって算出する。タイル分割された点群内のタイルの視認性は、第1ベクトルと第2ベクトルとのなす角度に依存する。
タイルが視認性を有する場合、当該タイルは、復号されロードされる。一方、タイルが視認性を有さない場合、当該タイルは、復号されない。本実施の形態に係る三次元データ復号装置は、上記した2つのベクトルのなす角度が閾値以上であるか否かに基づいてタイルの視認性を判定し、判定結果に基づいてタイルを復号したり復号しなかったりする。
これにより、三次元データ復号装置は、効率的にメモリを用いて、三次元点群の一部を選択的に復号又はロードできる。
図168は、本実施の形態に係るタイルの中心位置を説明するための図である。
タイルの中心位置は、例えば、タイルの原点位置とタイルのヘッダから得られるタイルの寸法を示す寸法情報とを用いて、他の情報を用いずに算出できる。
タイルの原点位置とは、例えば、タイルが位置する座標空間におけるタイルにおいて最も座標の値が小さい位置である。図168においては、タイルの原点位置とは、例えば、タイルが位置するXYZ座標系において、X座標、Y座標、及び、Z座標が最も小さい位置である。
なお、タイルの原点位置は、タイルの形状及び姿勢等に応じて、例えば、X座標、Y座標、及び、Z座標のうちのいずれかの座標が最も小さい位置でもよい。
G-PCC又はV-PCC等の点群圧縮符号化方式を用いて三次元点群を符号化する三次元データ符号化装置は、データをタイル又はスライスに分割できる。三次元データ符号化装置は、G-PCC又はV-PCC等の点群圧縮符号化方式を用いて三次元点群を符号化する場合、分割データのそれぞれを依存関係なく独立に符号化する。また、三次元データ復号装置では、このように符号化された三次元点群のそれぞれのタイル又はスライスを独立に復号できることから、所望のタイル若しくはスライスから順番に復号すること、又は、複数のタイル若しくはスライスを複数のCPU(Central Processing Unit)を用いて並列に復号することができる。
三次元データ復号装置は、例えば、後述する制御部9902において復号対象のタイルを決定し、決定されたタイルを復号する。
図169は、本実施の形態に係る符号化された三次元点群を復号する処理を説明するためのブロック図である。
符号化部9900は、三次元点群(点群データ)が入力された場合、当該三次元点群を符号化した符号化データを生成する。例えば、符号化部9900は、G-PCC又はV-PCC等の点群圧縮符号化方式を用いて三次元点群を符号化することで、三次元点群を複数のタイルに分割し、複数のタイルをタイル毎に符号化する。
復号部9901は、符号化データが入力された場合、当該符号化データを復号する。
制御部9902は、復号部9901が復号するタイル(より具体的には、符号化されたタイル)を決定し、決定したタイルを復号部9901に指定する。これにより、復号部9901は、複数のタイルのうち、制御部9902に指定されたタイルを選択的に復号することで、符号化データから復号可能な点群データのうちの一部分の(つまり、部分的な)点群データを出力する。
これによれば、制御部9902が、例えば、ユーザが所望するタイルを適切に選択することで、ユーザが所望するタイルが部分的に復号される。そのため、ユーザが特に所望しないタイルを復号する処理を復号部9901がせずに済むことから、復号部9901における処理量を削減できる。
なお、制御部9902は、三次元データ復号装置が備えてもよいし、アプリケーションであってもよいし、三次元データ復号装置が制御部9902を有さずにユーザによって復号対象のタイルが直接指定されてもよい。
本実施の形態は、三次元データ復号装置が復号するタイルを決定する方法に関するものであり、具体的には、タイルの視認性(Visibility)を算出し、算出した視認性に基づき復号するタイルを決定する。
なお、本実施の形態では、データ分割の単位をタイルとして説明するが、これに限らず、スライスであってもよいし、その他の分割データであってもよい。
図170は、本実施の形態に係る三次元データ復号装置が視認性の判定に用いる角度情報を算出する処理を説明するための図である。
三次元データ復号装置は、例えば、焦点位置からカメラ位置に向かうベクトル(図170に示すベクトルC)と、焦点位置からタイルの中心位置に向かうベクトル(図170に示すベクトルS)のようなタイルに関する2つのベクトルの内積を算出することで、復号する(又は、復号してロードする)タイルを選択する際に用いる視認性を示す角度を算出する。
なお、焦点位置は、本例では、カメラ位置に位置するカメラの焦点の位置であるが、ユーザによって任意に設定されてよく、特に限定されない。焦点位置は、三次元点群の中心でなくてもよい。
三次元データ復号装置は、例えば、下記の式(Q1)を用いて、ベクトルCとベクトルSとから、cos(φ)を算出する。
cos(φ)(より具体的には、cos(φ)の値)は、カメラの焦点位置が与えられたときに、カメラからどのくらいタイルが見えるかを示す情報(つまり、視認性)を示す。
例えば、cos(φ)=1のとき、ベクトルCとベクトルSとは、同じ向きであることを示す。
また、例えば、cos(φ)=-1のとき、ベクトルCとベクトルSとは、反対の向きであることを示す。
また、cos(φ)=0のとき、ベクトルCは、ベクトルSに対して垂直であることを示す。
三次元データ復号装置は、例えば、cos(φ)が1-Xと1との間であるか否かに基づいて、タイルを復号してロードするか否かを判定する。すなわち、三次元データ復号装置は、算出した角度が所定の条件(例えば、1-X<cos(φ)<1)を満たすか否かに基づいて、視認性があるか否かを判断する。例えば、Xの値が大きい程、三次元データ復号装置が視認性があると判定する角度が大きいことを意味する。
Xの値は、予め定められた固定値であってもよいし、所定の方法を用いて動的に決定されてもよい。
各タイルの視認性は、焦点位置と、タイルの中心位置のようなタイル(より具体的には、タイル内)の任意の点の位置との間の距離に基づいて、さらに精度よく算出される。
なお、カメラ位置は、実際のカメラの位置を採用する場合、カメラの位置座標であってもよいし、ビューワ等のアプリケーションの場合、アプリケーション上の仮想的なカメラの位置であってもよい。
また、カメラに限らず、LiDAR又はミリ波等の他のセンサの場合にも、同様の方法を用いることができる。
タイルの位置情報(例えば、タイルの原点位置を示す情報)、タイルのサイズを示す情報、及び、タイルの形状に関わる情報は、例えば、予め符号化データにメタデータとして格納されている。例えば、三次元データ復号装置は、符号化データからメタデータを復号することにより上記したタイルの情報を取得し、タイルの中心位置を算出する。
なお、タイルの中心の情報が予め符号化データに格納されてもよい。
また、ベクトルCとベクトルSとのなす角度に関わる情報を算出する方法として、三次元データ復号装置がベクトルCとベクトルSとの内積を算出する例を示したが、これに限らない。例えば、三次元データ復号装置は、sin(φ)又はtan(φ)を算出してもよいし、その他の角度に関わる算出方法を用いてもよい。
また、焦点位置からタイルの中心位置までのベクトルの例に限らず、タイルの他の位置(例えば、タイルの原点位置(最小位置)、タイルの最大位置(より具体的には、座標の最大値を示す位置)、又は、タイルの重心位置)が用いられてもよいし、タイル内に含まれるデータ(例えば、スライス)の原点位置、当該データの最大位置、又は、当該データの重心位置が用いられてもよいし、それぞれが位置を示す複数の情報が組み合わされても用いられてもよい。
これにより、タイルの形状に適した視認性が算出される。
また、タイルのデータは、符号化データから取得されなくてもよく、例えば、予め定められた領域情報でもよい。例えば、地図データ等の予め区画が定められている場合、区画、カメラ位置、及び、焦点位置に基づき視認性が算出されてもよい。つまり、本実施の形態におけるタイル(より具体的には、タイルの範囲を示すバウンディングボックス)を地図データにおける区画と読み替えてもよい。
また、タイル情報は、三次元データ復号装置によって符号化データに含められてもよいし、三次元データ復号装置が、三次元データ復号装置が有するメモリ等に予め保持していてもよい。
また、三次元データ復号装置は、複数のカメラ及び複数の焦点位置を設定し、それぞれのベクトルを組み合わせてタイルの視認性を判定してもよい。
なお、Xの決定方法及び焦点位置の決定方法は、後述する。
図171は、本実施の形態に係る復号対象を特定するための構成を示すブロック図である。例えば、本実施の形態に係る三次元データ復号装置(より具体的には、例えば、上記した制御部9902)は、図171に示す各構成を備える。例えば、三次元データ復号装置は、タイル位置取得部9910と、焦点位置取得部9911と、カメラ位置取得部9912と、タイル-焦点距離算出部9913と、タイル-焦点ベクトル算出部9914と、焦点-カメラベクトル算出部9915と、X決定部9916と、角度算出部9917と、選択部9918と、視認性判定部9919と、復号タイル決定部9920と、を備える。
タイル位置取得部9910は、符号化データに含まれるメタデータ等からタイルの位置を示す情報を取得する処理部である。例えば、タイル位置取得部9910は、上記したタイルの中心位置、タイルの原点位置、又は、タイルの重心位置等のタイルの位置を示す情報を取得する。なお、タイル位置取得部9910は、タイルの原点位置とタイルのヘッダから得られるタイルの寸法を示す寸法情報とを取得し、取得した情報を用いて、タイルの中心位置を示す情報を算出することで取得してもよい。タイル位置取得部9910は、取得したタイル位置を示す情報を、タイル-焦点距離算出部9913と、タイル-焦点ベクトル算出部9914とに出力する。
焦点位置取得部9911は、符号化データ等からカメラの焦点位置を示す情報を取得する処理部である。焦点位置取得部9911は、取得したカメラの焦点位置を示す情報を、タイル-焦点距離算出部9913と、タイル-焦点ベクトル算出部9914と、焦点-カメラベクトル算出部9915とに出力する。
カメラ位置取得部9912は、符号化データ等からカメラの位置を示す情報を取得する処理部である。カメラ位置取得部9912は、取得したカメラの位置を示す情報を、焦点-カメラベクトル算出部9915に出力する。
タイル-焦点距離算出部9913は、タイルの位置を示す情報と、カメラの焦点位置を示す情報とに基づいて、タイルとカメラの焦点位置との距離を算出する処理部である。例えば、タイル-焦点距離算出部9913は、カメラの焦点位置からタイルの中心位置までの距離を算出する。タイル-焦点距離算出部9913は、算出した距離を示す情報をX決定部9916に出力する。
タイル-焦点ベクトル算出部9914は、タイルの位置を示す情報と、カメラの焦点位置を示す情報とに基づいて、タイルとカメラの焦点位置とを結ぶベクトルを算出する処理部である。例えば、タイル-焦点ベクトル算出部9914は、カメラの焦点位置からタイルの中心位置に向かうベクトル(ベクトルS)を算出する。タイル-焦点ベクトル算出部9914は、算出したベクトルSを角度算出部9917に出力する。
焦点-カメラベクトル算出部9915は、カメラの焦点位置を示す情報と、カメラの位置を示す情報とに基づいて、カメラの焦点位置とカメラの位置とを結ぶベクトルを算出する処理部である。例えば、焦点-カメラベクトル算出部9915は、カメラの焦点位置からカメラの位置に向かうベクトル(ベクトルC)を算出する。焦点-カメラベクトル算出部9915は、算出したベクトルCを角度算出部9917に出力する。
X決定部9916は、タイル-焦点距離算出部9913が算出したタイルとカメラの焦点位置との距離を示す情報に基づいて、上記したX(算出値)を決定(算出)する処理部である。つまり、X決定部9916は、タイルとカメラの焦点位置との距離に基づいて、視認性判定部9919によって視認性が判定される際に用いられるcos(φ)の閾値を決定する。X決定部9916は、算出したXの値を示す情報を選択部9918に出力する。
角度算出部9917は、カメラの焦点位置とタイルとを結ぶ線分と、カメラの焦点位置とカメラの位置とを結ぶ線分とのなす角度を算出する処理部である。本実施の形態では、角度算出部9917は、ベクトルSとベクトルCとの内積から上記したcos(φ)を算出する。角度算出部9917は、算出したcos(φ)を示す情報を視認性判定部9919に出力する。
選択部9918は、視認性判定部9919によって視認性が判定される際に用いられる閾値を選択する処理部である。具体的には、選択部9918は、X決定部9916が算出したX(算出値)、及び、符号化データ又はユーザの入力等によって取得されるX(定数)のうちの一方を選択し、選択したXを視認性判定部9919に出力する。このように、閾値として採用されるXは、予め定められた固定値であってもよいし、タイルとカメラの焦点位置との距離に基づいて算出される等の所定の方法によって算出されてもよい。なお、Xは、タイルとカメラの焦点位置との距離ではなく、他のパラメータに基づいて算出されてもよい。また、選択部9918がX(算出値)を選択するか、X(固定値)を選択するかの選択方法は、任意に定められてよい。例えば、選択部9918は、X(固定値)の入力がある場合にはX(固定値)を選択して視認性判定部9919に出力し、X(固定値)の入力がない場合にはX(算出値)を選択して視認性判定部9919に出力する。
視認性判定部9919は、選択部9918から出力された閾値(より具体的には、X)を示す情報と、角度算出部9917から出力された角度を示す情報(より具体的には、cos(φ))とに基づいて、タイルの視認性を判定する処理部である。具体的には、視認性判定部9919は、カメラの焦点位置とタイルとを結ぶ線分と、カメラの焦点位置とカメラの位置とを結ぶ線分とのなす角度が閾値以上であるか否かに基づいて、タイルが視認性を有するか否かを判定する。より具体的には。視認性判定部9919は、1-X<cos(φ)<1を満たすか否かを判定することで、タイルが視認性を有するか否かを判定する。例えば、視認性判定部9919は、1-X<cos(φ)<1を満たすと判定した場合、タイルが視認性を有すると判定する。一方、例えば、視認性判定部9919は、1-X<cos(φ)<1を満たさないと判定した場合、タイルが視認性を有さないと判定する。
視認性判定部9919は、タイルの視認性の判定結果を示す情報を復号タイル決定部9920に出力する。
復号タイル決定部9920は、視認性判定部9919が判定したタイルの視認性の判定結果を示す情報に基づいて、当該タイルを復号するか否かを判定する処理部である。例えば、復号タイル決定部9920は、タイルが視認性を有する場合当該タイルを復号し、タイルが視認性を有さない場合当該タイルを復号しないと決定する。復号タイル決定部9920は、決定した内容を示す情報を、例えば、復号部9901に出力する。
三次元データ復号装置は、上記の通り1以上のタイルに対して視認性の判定を繰り返し、視認性を有すると判定したタイルを選択し、選択したタイルを復号して表示装置等の提示部を用いてユーザに当該タイルが示す情報(例えば、地図情報等)を提示する。
なお、上記した閾値は、複数設定されてもよい。例えば、X決定部9916は、XとYとを決定(算出)し(例えば、X<Yとする)、視認性判定部9919は、(i)1-X<cos(φ)<1と、(ii)1-Y<cos(φ)<1-Xとのいずれかの条件に基づいて視認性を判定する。X決定部9916がXとYとの2つを算出し、選択部9918が当該2つの値を含む情報を視認性判定部9919に出力した場合、視認性判定部9919は、目的に応じて(例えば、ユーザから入力された情報に基づいて)、(i)1-X<cos(φ)<1と、(ii)1-Y<cos(φ)<1-Xとのいずれかの条件を選択してもよい。
図172は、本実施の形態に係る三次元データ復号装置が復号対象を決定する処理を示すフローチャートである。
まず、三次元データ復号装置は、タイルの位置を示す情報を符号化データから取得し、且つ、カメラの位置及びカメラの焦点位置を示す情報(カメラパラメータ)を取得する(S9901)。三次元データ復号装置は、例えば、当該カメラと通信することでカメラパラメータを取得する。また、例えば、三次元データ復号装置は、タイルの位置を示す情報として、タイルの中心位置を示す情報を取得する。
次に、三次元データ復号装置は、タイルの位置(ここでは、中心位置)、カメラの位置、及び、カメラの焦点位置に基づいて、カメラの焦点位置からカメラの位置に向かうベクトルと、カメラの焦点位置からタイルの中心位置に向かうベクトルとを算出し、算出した2つのベクトルの内積を算出する(S9902)。これにより、三次元データ復号装置は、カメラの焦点位置とカメラの位置とを結ぶ線分と、カメラの焦点位置とタイルの中心位置とを結ぶ線分とのなす角度に関する値(例えば、上記したcos(φ))を算出する。
次に、三次元データ復号装置は、タイルの中心位置とカメラの焦点位置との距離を算出し、算出した距離に基づいてタイルの視認性を判定する視認性の範囲(閾値)を決定する(S9903)。例えば、三次元データ復号装置は、上記したXを決定する。
次に、三次元データ復号装置は、算出した内積(より具体的には、上記した角度を示す情報)と、視認性の範囲(より具体的には、上記したX)とに基づいて、タイルの視認性を決定する(S9904)。
次に、三次元データ復号装置は、タイルが視認性を有しているか否かを判定する。(S9905)。
三次元データ復号装置は、タイルが視認性を有していると判定した場合(S9905でYes)、当該タイルを復号する(S9906)。なお、三次元データ復号装置が表示装置等の提示部を備える、又は、当該提示部と通信可能に接続されている場合、三次元データ復号装置は、復号したタイルをロード(読み込み)して、ロードしたタイルが示す情報を提示部に提示させてもよい。
一方、三次元データ復号装置は、タイルが視認性を有していないと判定した場合(S9905でNo)、又は、ステップS9906の次に、符号化データに含まれる全てのタイルについて、ステップS9901~ステップS9906の処理を完了したか否かを判定する(S9907)。
三次元データ復号装置は、全てのタイルについて処理が完了したと判定した場合(S9907でYes)、処理を終了する。
一方、三次元データ復号装置は、全てのタイルについて処理が完了していないと判定した場合(S9907でNo)、処理をステップS9901に戻し、処理をしていないタイルについてステップS9901から処理を実行する。
このように、三次元データ復号装置は、タイルが複数の場合、複数のタイル毎に各ステップを実行する。
続いて、視認性を利用した復号処理のユースケースについて説明する。
図173は、本実施の形態に係る三次元データ復号装置の復号処理の第1例を説明するための図である。第1例は、地図データが複数のタイルに分割された例であって、カメラの焦点位置をカメラの進行方向に設定する場合を示す例である。
なお、図173において、視認性を有するタイルを実線の矩形で示し、視認性を有さないタイルを破線の矩形で示し、各タイルの中心位置をドットで示し、カメラの焦点位置からカメラの位置に向かうベクトルを実線矢印で示し、カメラの焦点位置からタイルの中心位置に向かうベクトルを破線矢印で示す。また、図173において、壁等のカメラからの視線を遮るオブジェクトを、ハッチングを付して示している。
三次元データ復号装置は、例えば、カメラの焦点位置とタイルの中心位置との距離に基づき、当該タイルの視認性を判定するための角度(角度の範囲)を決定する。
三次元データ復号装置は、例えば、タイルの中心位置からカメラの焦点位置までの距離が小さい場合、cos(φ)の限界を0.5~1(X=0.5)と決定する。三次元データ復号装置は、例えば、タイルの中心位置からカメラの焦点位置までの距離が、予め任意に定められる距離よりも短い場合、X=0.5と決定する。
一方、三次元データ復号装置は、例えば、タイルの中心位置からカメラの焦点位置までの距離が大きい場合、cos(φ)の限界を0.98~1(X=0.02)と決定する。三次元データ復号装置は、例えば、タイルの中心位置からカメラの焦点位置までの距離が、予め任意に定められる距離以上である場合、X=0.02と決定する。
このように、例えば、三次元データ復号装置は、カメラの焦点位置とタイルとの距離を算出し、(i)焦点位置とタイルとの距離が短い(例えば、所定の距離より短い)場合には、視認性の有無を判定するための角度の範囲(つまり、閾値)を大きく設定し、(ii)焦点位置とタイルとの距離が長い(例えば、当該所定の距離以上長い)場合には、視認性の有無を判定するための角度の範囲(つまり、閾値)を小さく設定する。
これにより、三次元データ復号装置は、例えば、移動体の位置をカメラの位置とし、且つ、カメラの撮像方向を移動体の進行方向と揃えることで、当該移動体の進行方向に位置するタイルが視認性を有すると判定するように、角度の範囲を設定することが可能となる。
なお、カメラの焦点位置とカメラの位置との距離は、予め定められた距離であってもよいし、動的に決定されてもよい。例えば、三次元データ復号装置は、カメラが配置される移動体の速度を示す情報を取得し、取得した情報に示される速度が予め任意に定められる速度より大きい場合には、カメラの焦点距離(カメラの焦点位置とカメラの位置との距離)を速度が大きくなるに連れて大きくしてもよい。或いは、三次元データ復号装置は、当該移動体の運転者の視線及び焦点位置をカメラ等の検出器によって検出することで、焦点位置を決定してもよい。つまり、上記したカメラの位置及び当該カメラの焦点位置は、運転者等のユーザの位置及び当該ユーザの焦点位置でもよい。
本例は、例えば、ナビゲーションのための地図データであって、建物内の狭い通路を示す地図データを複数のタイルに分割した場合における、三次元データ復号装置の復号処理に好適である。三次元データ復号装置は、例えば、タイルの中心位置からカメラの焦点位置までの距離に応じてcos(φ)から視認性を判定するための閾値を適切に設定することで、建物内の狭い通路を示す地図データであっても、当該通路を通行するユーザ等に適切な部分の地図データを部分的に復号できる。
図174は、本実施の形態に係る三次元データ復号装置の復号処理の第2例を説明するための図である。第2例は、地図データが複数のタイルに分割された例であって、カメラの焦点位置をカメラの進行方向に対して横方向(上面視において当該進行方向に対して直交する方向)に設定する場合を示す例である。
なお、図174において、視認性を有するタイルを実線の矩形で示し、視認性を有さないタイルを破線の矩形で示し、各タイルの中心位置をドットで示し、カメラの焦点位置からカメラの位置に向かうベクトルを実線矢印で示し、カメラの焦点位置からタイルの中心位置に向かうベクトルを破線矢印で示す。
本例では、三次元データ復号装置は、移動体の進行方向に対して左側に配置されたカメラ(仮想カメラ)付近の焦点位置を基準として、cos(φ)から視認性を判定するための閾値を0~1の間で設定する。
これによれば、三次元データ復号装置は、移動体の近傍に対応する位置のタイルであって、幅の狭い列のタイルを部分的に復号してロードできる。
例えば、焦点距離は、カメラから固定距離に設定される。
なお、カメラの移動速度に基づき、焦点距離は変更されてもよい。
三次元データ復号装置は、本例のような復号方法を、タイルがカメラの位置と当該カメラの焦点位置との間にある場合に用いてもよい。例えば、地図データを表示装置に表示する場合であって、移動体の横方向を当該表示装置に表示する場合等の、三次元データ復号装置が複数のタイルを広範囲に選択する場合に、本例の復号方法が採用され得る。
図175は、本実施の形態に係る三次元データ復号装置の復号処理の第3例を説明するための図である。第3例は、地図データが複数のタイルに分割された例であって、カメラが複数設定されている場合を示す例である。より具体的には、第3例は、第1例と第2例とが組み合わされている例である。
なお、図175において、視認性を有するタイルを実線の矩形で示し、視認性を有さないタイルを破線の矩形で示し、各タイルの中心位置をドットで示し、カメラの焦点位置からカメラの位置に向かうベクトルを実線矢印で示し、カメラの焦点位置からタイルの中心位置に向かうベクトルを破線矢印で示す。
本例のように、カメラが複数の場合、三次元データ復号装置は、それぞれのカメラの進行方向に対する角度に基づき、焦点位置の設定方法、及び、視認性の有無を判定する範囲(より具体的には、上記したX)の設定方法を変更する。本例は、1つのカメラが複数の焦点を有する場合、又は、1つのカメラが回転する場合等に適用される。
なお、実際にカメラ及び当該カメラの焦点が存在しない場合でも、三次元データ復号装置は、仮想的にカメラの位置及び当該カメラの焦点位置を設定し、所定の方法を用いて復号するタイルを選択してもよい。
また、カメラを搭載する移動体が移動する場合、カメラの位置及び焦点位置は、変化する。この場合、三次元データ復号装置は、例えば、本実施の形態において説明した角度を用いた視認性の判定を再度実施し、復号するタイルを選択する。三次元データ復号装置は、カメラの位置の移動距離に基づき判定を再度実施してもよいし、経過時間に基づき判定を再度実施してもよい。三次元データ復号装置は、例えば、移動体が所定距離走行した後に判定を再度実施してもよいし、経過時間が所定時間経過する度に判定を再度実施してもよい。また、例えば、三次元データ復号装置は、移動体の移動方向又は移動体の移動速度に基づいて、未来のカメラの位置及び当該カメラの焦点位置を予測し、予め予測したカメラの位置及び当該カメラの焦点位置に基づき、判定を実施してもよい。
図176は、本実施の形態に係る三次元データ復号装置の復号処理の第4例を説明するための図である。第4例は、地図データが複数のタイルに分割された例であって、仮想カメラが複数設定されている場合を示す例である。
なお、図176において、タイルを実線の矩形で示し、カメラの焦点位置からカメラの位置に向かうベクトルを実線矢印で示し、カメラの焦点位置からタイルの中心位置に向かうベクトルを破線矢印で示す。また、各タイルの中央に付している値は、各タイルのタイル番号を示す。
例えば、レンダリングソフト等において、一度に複数視点の三次元点群を提示する場合、それぞれの視点において、カメラの位置、当該カメラの焦点位置、及び、タイルの位置に基づいてタイルの視認性を判定して復号するタイルを選択する。
三次元データ復号装置は、それぞれの視点で選択したタイルのorを取り、選択し、復号する。つまり、三次元データ復号装置は、それぞれの視点で選択したタイルの全てを復号する。
例えば、分割データ選択部9922は、第1仮想カメラ9921として仮想的に設定された第1仮想カメラ9921の位置、第1仮想カメラ9921の焦点位置、及び、タイルの位置に基づいて、視認性を有するタイルを選択する。ここでは、分割データ選択部9922は、タイル番号が1、2、及び、3のタイルを選択したとする。例えば、分割データ選択部9922は、選択したタイルを示す情報を指令部9928に出力する。
また、分割データ選択部9924は、第2仮想カメラ9923として仮想的に設定された第2仮想カメラ9923の位置、第2仮想カメラ9923の焦点位置、及び、タイルの位置に基づいて、視認性を有するタイルを選択する。ここでは、分割データ選択部9924は、タイル番号が1、2、及び、4のタイルを選択したとする。例えば、分割データ選択部9924は、選択したタイルを示す情報を指令部9928に出力する。
指令部9928は、分割データ選択部9922及び9924から出力された情報に基づいて、タイル番号が1、2、3及び4のタイルを選択して復号する指示を示す情報を復号部9925に出力する。
復号部9925は、指令部9928から出力された情報に基づいて、タイル番号が1、2、3及び4のタイルを選択して復号する。また、復号部9925は、タイル番号が1、2及び3の復号した各タイルを第1提示部9926に出力し、第1提示部9926に各タイルの示す情報を提示させる。また、復号部9925は、タイル番号が1、2及び4の復号した各タイルを第2提示部9927に出力し、第2提示部9927に各タイルの示す情報を提示させる。
第1提示部9926及び第2提示部9927は、例えば、いずれも表示装置であり、復号部から出力されたタイルの情報をロードして表示する。
なお、視点(例えば、カメラ)が1つであり、当該視点が移動する場合も、本例で説明した復号方法が、三次元データ復号装置が実行する復号処理に採用され得る。例えば、三次元データ復号装置は、視点が移動した場合、つまり、視点の位置を示す情報が変化した場合、上記した視認性の有無に基づいて復号するタイルを選択し、選択したタイルの中から復号していないタイルを復号する。
図177は、本実施の形態の変形例1に係る三次元データ復号装置の復号処理を説明するための図である。図178は、本実施の形態の変形例1に係る三次元データ復号装置が視認性の判定に用いる角度情報を算出する処理を説明するための図である。
上記では、三次元データ復号装置が内積を計算する際には、カメラの焦点位置から当該カメラの位置に向かうベクトルと、当該カメラの焦点位置からタイル(例えば、タイルの中心位置)に向かうベクトルとが用いられる。
本変形例では、三次元データ復号装置は、カメラの位置を基準に、当該カメラの焦点までのベクトルとタイルまでのベクトルとを算出し、当該2つベクトルの内積により角度を算出する。つまり、本変形例では、三次元データ復号装置は、カメラの位置から当該カメラの焦点に向かうベクトルと、当該カメラの位置からタイルまでのベクトルとを算出し、当該2つベクトルの内積により角度を算出する。
また、本変形例に係る三次元データ符号化装置は、上記した本実施の形態に係る三次元データ復号装置が実行する処理と同様に、カメラの位置、タイルの位置、当該カメラの焦点位置、及び、当該カメラの焦点距離等に基づき閾値を決定する。また、三次元データ復号装置は、内積から得られる角度(より具体的には、cos(φ))が所定の範囲内であるか否かに基づき、タイルが視認性を有するか否かを判定し、当該タイルが視認性を有すると判定した場合、当該タイルを復号して提示してもよい。
なお、三次元データ復号装置は、タイルの視認性を判定する処理として、焦点位置を基準としたベクトルの内積を取得する方法と、カメラの位置を基準としたベクトルの内積を取得する方法とのいずれかを選択して実行してもよい。
また、上記では、三次元データ復号装置が、角度情報(例えば、cos(φ))を算出し、算出した角度情報に基づいてタイルの視認性を判定する例を示したが、三次元データ復号装置は、角度情報に基づいて、復号するタイルの解像度を決定してもよい。
三次元データ復号装置は、例えば、算出した角度が小さい場合には、カメラの焦点位置から当該カメラの位置に向かうベクトルに近い位置にタイルが位置していると判定し、復号解像度を高く設定する。一方、三次元データ復号装置は、例えば、算出した角度が大きい場合には、カメラの焦点位置から当該カメラの位置に向かうベクトルに遠い位置にタイルが位置していると判定し、復号解像度を低く設定する。
なお、カメラの進行方向と当該カメラの位置と当該カメラの焦点位置とのベクトルに基づいて、復号するタイルの解像度を決定してもよい。
なお、解像度は、階層毎に設定されてもよい。
また、三次元データ復号装置は、角度情報に基づいて、復号するタイルの選択と、復号する場合のタイルの解像度との両方を決定してもよい。
図179は、本実施の形態の変形例2に係る三次元データ復号装置が、角度情報に基づいて解像度を決定する処理を示すフローチャートである。
なお、図179のフローチャートを開始する前に、三次元データ復号装置は、上記したcos(φ)、X、及び、Yを算出したとする。
まず、三次元データ復号装置は、cos(φ)が1-X<cos(φ)<1を満たすか否かを判定する(S9911)。
三次元データ復号装置は、cos(φ)が1-X<cos(φ)<1を満たすと判定した場合(S9911でYes)、高い解像度でタイルを復号する(S9912)。
一方、三次元データ復号装置は、cos(φ)が1-X<cos(φ)<1を満たさないと判定した場合(S9911でNo)、cos(φ)が1-Y<cos(φ)<1-Xを満たすか否かを判定する(S9913)。
三次元データ復号装置は、cos(φ)が1-Y<cos(φ)<1-Xを満たすと判定した場合(S9913でYes)、中程度の解像度でタイルを復号する(S9914)。
一方、三次元データ復号装置は、cos(φ)が1-Y<cos(φ)<1-Xを満たさないと判定した場合(S9913でNo)、低い解像度でタイルを復号する(S9915)。
なお、解像度の程度は、予め任意に定められてよく、特に限定されない。例えば、三次元データ復号装置は、ステップS9912では、タイルに含まれる全ての三次元点を復号し、ステップS9914では、タイルに含まれる複数の三次元点の6割程度の三次元点を復号し、ステップS9915では、タイルに含まれる複数の三次元点の2割程度の三次元点を復号する。
以上のように、本実施の形態及び変形例に係る三次元データ復号装置は、図180に示す処理を行う。
図180は、本実施の形態及び変形例に係る三次元データ復号装置の復号処理を示すフローチャートである。
まず、三次元データ復号装置は、符号化された複数の三次元点を含むタイルを取得する(S9921)。
次に、三次元データ復号装置は、タイルにおける所定の位置及び第1基準点を結ぶ線分と、当該第1基準点及び当該第1基準点とは異なる第2基準点を結ぶ線分とのなす角度を算出する(S9922)。三次元データ復号装置は、例えば、角度として上記したcos(φ)を算出する。
次に、三次元データ復号装置は、算出した角度が所定の条件を満たすか否かを判定する(S9923)。例えば、三次元データ復号装置は、cos(φ)が上記した所定の範囲内であるか否かを判定する。
三次元データ復号装置は、算出した角度が所定の条件を満たすと判定した場合(S9923でYes)、当該タイルに含まれる符号化された複数の三次元点を復号する(S9924)。
一方、三次元データ復号装置は、算出した角度が当該所定の条件を満たさないと判定した場合(S9923でNo)、当該タイルに含まれる符号化された複数の三次元点を復号しない(S9925)。
例えば、三次元データ復号装置は、三次元データ符号化装置によって符号化された複数の三次元点を含むビットストリーム(符号化データ)に含まれるデータ順に符号化された複数の三次元点を順次復号する。ここで、例えば、三次元データが三次元地図を示す場合に、ユーザが当該地図を見るとき、当該ユーザは、当該ユーザの現在位置から、特定の方向についての地図を見たい場合が多い。このような場合に、三次元データ復号装置が、ビットストリームに含まれるデータ順に符号化された複数の三次元点を順次復号して、表示装置等に複数の三次元点を示す画像を表示装置に復号した順に順次表示させるとする。これでは、ユーザが確認したい場所が表示装置に表示されるまでに時間を要する可能性がある。また、ユーザの現在位置によっては、復号される必要のない三次元点がある場合がある。そこで、本開示に係る三次元データ復号方法では、カメラ、ユーザ等の位置及び当該カメラ、ユーザ等の焦点位置等の任意の2点とタイルとの位置関係を用いて、カメラ、ユーザ等の視線方向を仮定して、当該視線方向に位置する符号化されたタイルを復号する。これによれば、ユーザが所望する可能性が高い領域に位置する符号化されたタイルを復号できる。つまり、本開示に係る三次元データ復号方法によれば、符号化されたタイルのうち、ユーザが所望の符号化されたタイル(つまり、複数の三次元点)を適切に選択して復号できる。
また、例えば、算出した角度が所定の条件を満たすか否かを判定する処理(S9923)では、算出した角度が所定の角度未満であるか否かを判定し、タイルに含まれる符号化された複数の三次元点の復号処理(S9924又はS9925)では、算出した角度が所定の角度未満である場合(S9923でYes)、タイルに含まれる符号化された複数の三次元点を復号し(S9924)、算出した角度が当該所定の角度以上である場合(S9923でNo)、タイルに含まれる符号化された複数の三次元点を復号しない(S9925)。つまり、上記した所定の条件は、所定の角度未満であるか否かでもよい。
これによれば、所定の角度を適切に設定することで、カメラの視野角等に合わせてユーザが所望する範囲に位置するタイルを適切に復号できる。
また、例えば、符号化された複数の三次元点を復号する処理(S9924)では、算出した角度に基づいて、符号化された複数の三次元点の解像度を決定し、決定した解像度に応じて、符号化された複数の三次元点を復号する。
例えば、ユーザの視野の中央部は、ユーザの視野の外縁部よりもユーザにとって重要な位置である可能性が高い。そこで、例えば、算出した角度に応じて、カメラ、ユーザ等の視野の中央部に位置するタイルの解像度を高くし、カメラ、ユーザ等の視野の外縁部に位置するタイルの解像度を低くするように、タイルを復号する。これによれば、ユーザにとって比較的重要となり得るタイルの解像度を上げつつ、ユーザにとって比較的重要ではない可能性が高いタイルの解像度を下げることで処理量を削減できる。
また、例えば、第1基準点は、カメラの位置を示し、第2基準点は、当該カメラの焦点位置を示す。
或いは、例えば、第2基準点は、カメラの位置を示し、第1基準点は、当該カメラの焦点位置を示す。
これらによれば、例えば、実際にカメラが撮像した場合の当該カメラの位置及び当該カメラの撮像方向に応じた位置のタイルを復号できる。そのため、例えば、当該カメラから得られる画像に応じた三次元点画像を生成するためのタイルを適切に選択して復号できる。
また、例えば、角度を算出する処理(S9922)では、第1基準点からタイルの所定の位置に向かうベクトルと、第1基準点から第2基準点に向かうベクトルとの内積を算出することで角度を算出する。
これによれば、簡単な処理で角度を算出できる。
また、例えば、タイルの所定の位置は、タイルが位置する座標空間におけるタイルにおいて最も座標の値が小さい位置、タイルの中心位置、又は、タイルの重心位置である。
つまり、タイルの位置は、当該タイルに含まれ、且つ、簡便に算出できる位置が採用されるとよい。これによれば、タイルの位置を簡単な処理で特定できる。
また、例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。当該メモリには、上記処理を行う制御プログラムが記憶されていてもよい。また、当該メモリには、新規予測値の算出方法、予め定められた予測モードの数の情報、予測モードに割当てる予め定められた予測値等が記憶されていてもよい。
以上、本開示の実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等について説明したが、本開示は、この実施の形態に限定されるものではない。
また、上記実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
また、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPU又はプロセッサ等のプログラム実行部が、ハードディスク又は半導体メモリ等の記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
また、本開示は、三次元データ符号化装置及び三次元データ復号装置等により実行される三次元データ符号化方法又は三次元データ復号方法等として実現されてもよい。
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
また、フローチャートにおける各ステップが実行される順序は、本開示を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
以上、一つ又は複数の態様に係る三次元データ符号化装置及び三次元データ復号装置等について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つ又は複数の態様の範囲内に含まれてもよい。