本開示の一態様に係る三次元データ符号化方法は、第1量子化パラメータを用いて複数の三次元点それぞれの位置情報を量子化し、前記複数の三次元点それぞれの属性情報のうちの第1の色を示す第1輝度および第1色差について、第2量子化パラメータを用いて前記第1輝度を量子化し、かつ、第3量子化パラメータを用いて前記第1色差を量子化し、量子化された前記位置情報、量子化された前記第1輝度、量子化された前記第1色差、前記第1量子化パラメータ、前記第2量子化パラメータ、および、前記第2量子化パラメータと前記第3量子化パラメータとの第1差分を含むビットストリームを生成する。
これによれば、三次元データ符号化方法は、ビットストリームにおいて、第3量子化パラメータを第2量子化パラメータからの第1差分で示すため、符号化効率を向上できる。
例えば、さらに、第4量子化パラメータを用いて前記複数の三次元点それぞれの前記属性情報のうちの反射率を量子化し、前記生成では、量子化された前記反射率、および、前記第4量子化パラメータをさらに含むビットストリームを生成してもよい。
例えば、前記第2量子化パラメータを用いた量子化では、前記複数の三次元点が含まれる対象空間を分割した複数のサブ空間毎に当該サブ空間に含まれる1以上の三次元点の前記第1輝度を量子化する場合、第5量子化パラメータをさらに用いて前記サブ空間に含まれる1以上の三次元点の前記第1輝度を量子化し、前記第3量子化パラメータを用いた量子化では、前記1以上の三次元点の前記第1色差を量子化する場合、第6量子化パラメータをさらに用いて前記1以上の三次元点の前記第1色差を量子化し、前記生成では、前記第2量子化パラメータと前記第5量子化パラメータとの第2差分、および、前記第3量子化パラメータと前記第6量子化パラメータとの第3差分をさらに含むビットストリームを生成してもよい。
これによれば、三次元データ符号化方法は、ビットストリームにおいて、第5量子化パラメータを第2量子化パラメータからの第2差分で示し、かつ、第6量子化パラメータを第3量子化パラメータからの第3差分で示すため、符号化効率を向上できる。
例えば、前記生成では、前記第2量子化パラメータを用いた量子化、および、前記第3量子化パラメータを用いた量子化において、前記第5量子化パラメータおよび前記第6量子化パラメータを用いて量子化した場合、前記第5量子化パラメータおよび前記第6量子化パラメータを用いて量子化したことを示す識別情報をさらに含むビットストリームを生成してもよい。
これによれば、ビットストリームを取得した三次元データ復号装置は、識別情報を用いて第5量子化パラメータおよび第6量子化パラメータを用いて量子化したことを判定できるため、復号処理の処理負荷を低減することができる。
例えば、さらに、前記複数の三次元点それぞれの属性情報のうちの第2の色を示す第2輝度および第2色差について、第7量子化パラメータを用いて前記第2輝度を量子化し、かつ、第8量子化パラメータを用いて前記第2色差を量子化し、前記生成では、さらに、量子化された前記第2輝度、量子化された前記第2色差、前記第7量子化パラメータ、および、前記第7量子化パラメータと前記第8量子化パラメータとの第4差分をさらに含むビットストリームを生成してもよい。
これによれば、三次元データ符号化方法は、ビットストリームにおいて、第8量子化パラメータを第7量子化パラメータからの第4差分で示すため、符号化効率を向上できる。また、三次元点の属性情報に2種類の色情報を含めることができる。
また、本開示の一態様に係る三次元データ復号方法は、ビットストリームを取得することで量子化された位置情報、量子化された第1輝度、量子化された第1色差、第1量子化パラメータ、第2量子化パラメータ、および、前記第2量子化パラメータと第3量子化パラメータとの第1差分を取得し、前記第1量子化パラメータを用いて前記量子化された位置情報を逆量子化することで、複数の三次元点の位置情報を算出し、前記第2量子化パラメータを用いて前記量子化された第1輝度を逆量子化することで、前記複数の三次元点の第1の色を示す第1輝度および第1色差のうちの前記第1輝度を算出し、前記第2量子化パラメータおよび前記第1差分から得られる前記第3量子化パラメータを用いて前記量子化された第1色差を逆量子化することで、前記第1色差を算出する。
このため、三次元データ復号方法は、三次元点の位置情報および属性情報を正しく復号できる。
例えば、前記取得では、前記ビットストリームを取得することでさらに量子化された反射率、および、第4量子化パラメータを取得し、前記三次元データ復号方法は、さらに、前記第4量子化パラメータを用いて前記量子化された反射率を逆量子化することで、前記複数の三次元点の反射率を算出してもよい。
このため、三次元データ復号方法は、三次元点の反射率を正しく復号できる。
例えば、前記取得では、前記ビットストリームを取得することでさらに、前記第2量子化パラメータと第5量子化パラメータとの第2差分、および、前記第3量子化パラメータと第6量子化パラメータとの第3差分を取得し、前記第1輝度の算出では、前記量子化された第1輝度が、前記複数の三次元点が含まれる対象空間を分割した複数のサブ空間毎に当該サブ空間に含まれる1以上の三次元点の第1輝度が量子化された輝度である場合、前記第2量子化パラメータおよび前記第2差分から得られる前記第5量子化パラメータを用いて前記量子化された第1輝度を逆量子化することで、前記1以上の三次元点の前記第1輝度を算出し、前記第1色差の算出では、前記量子化された第1色差が、前記1以上の三次元点の第1色差が量子化された色差である場合、前記第3量子化パラメータおよび前記第3差分から得られる前記第6量子化パラメータを用いて前記量子化された第1色差を逆量子化することで、前記1以上の三次元点の前記第1色差を算出してもよい。
例えば、前記取得では、前記ビットストリームを取得することでさらに、前記第5量子化パラメータおよび前記第6量子化パラメータを用いて量子化したことを示す識別情報を取得し、前記第1輝度の算出では、前記識別情報が前記第5量子化パラメータおよび前記第6量子化パラメータを用いて量子化したことを示す場合、前記量子化された第1輝度が、前記1以上の三次元点の前記第1輝度が量子化された輝度であると判定し、前記第1色差の算出では、前記識別情報が前記第5量子化パラメータおよび前記第6量子化パラメータを用いて量子化したことを示す場合、前記量子化された第1色差が、前記1以上の三次元点の前記第1色差が量子化された色差であると判定してもよい。
これによれば、三次元データ復号方法は、識別情報を用いて第5量子化パラメータおよび第6量子化パラメータを用いて量子化したこと判定できるため、復号処理の処理負荷を低減することができる。
例えば、前記取得では、前記ビットストリームを取得することでさらに、量子化された第2輝度、量子化された第2色差、第7量子化パラメータ、および、前記第7量子化パラメータと第8量子化パラメータとの第4差分を取得し、前記三次元データ復号方法は、さらに、前記第7量子化パラメータを用いて前記量子化された第2輝度を逆量子化することで、前記複数の三次元点の第2の色を示す第2輝度および第2色差のうちの前記第2輝度を算出し、前記第7量子化パラメータおよび前記第4差分から得られる前記第8量子化パラメータを用いて前記量子化された第2色差を逆量子化することで、前記第2色差を算出してもよい。
このため、三次元データ復号方法は、三次元点の第2の色を正しく復号できる。
また、本開示の一態様に係る三次元データ符号化装置は、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、第1量子化パラメータを用いて複数の三次元点それぞれの位置情報を量子化し、前記複数の三次元点それぞれの属性情報のうちの第1の色を示す第1輝度および第1色差について、第2量子化パラメータを用いて前記第1輝度を量子化し、かつ、第3量子化パラメータを用いて前記第1色差を量子化し、量子化された前記位置情報、量子化された前記第1輝度、量子化された前記第1色差、前記第1量子化パラメータ、前記第2量子化パラメータ、および、前記第2量子化パラメータと前記第3量子化パラメータとの第1差分を含むビットストリームを生成する。
これによれば、三次元データ符号化装置は、第3量子化パラメータを第2量子化パラメータからの第1差分で示すため、符号化効率を向上できる。
また、本開示の一態様に係る三次元データ復号装置は、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、ビットストリームを取得することで量子化された位置情報、量子化された第1輝度、量子化された第1色差、第1量子化パラメータ、第2量子化パラメータ、および、前記第2量子化パラメータと第3量子化パラメータとの第1差分を取得し、前記第1量子化パラメータを用いて前記量子化された位置情報を逆量子化することで、複数の三次元点の位置情報を算出し、前記第2量子化パラメータを用いて前記量子化された第1輝度を逆量子化することで、前記複数の三次元点の第1色を示す第1輝度および第1色差のうちの前記第1輝度を算出し、前記第2量子化パラメータおよび前記第1差分から得られる前記第3量子化パラメータを用いて前記量子化された第1色差を逆量子化することで、前記第1色差を算出する。
このため、三次元データ復号装置は、三次元点の位置情報および属性情報を正しく復号できる。
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能な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は、位置情報及び属性情報の復号処理に必要な付加情報を復号時に使用し、アプリケーションに必要な付加情報を外部に出力する。
次に、第2の符号化方法の符号化を行う符号化部4613の例である第2の符号化部4650について説明する。図9は、第2の符号化部4650の構成を示す図である。図10は、第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について説明する。図11は、第2の復号部4660の構成を示す図である。図12は、第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符号化方式における課題を説明する。図13は、PCC符号化データに関わるプロトコルスタックを示す図である。図13には、PCC符号化データに、映像(例えばHEVC)又は音声などの他のメディアのデータを多重し、伝送又は蓄積する例を示す。
多重化方式及びファイルフォーマットは、様々な符号化データを多重し、伝送又は蓄積するための機能を有している。符号化データを伝送又は蓄積するためには、符号化データを多重化方式のフォーマットに変換しなければならない。例えば、HEVCでは、NALユニットと呼ばれるデータ構造に符号化データを格納し、NALユニットをISOBMFFに格納する技術が規定されている。
一方、現在、点群データの符号化方法として第1の符号化方法(Codec1)、及び第2の符号化方法(Codec2)が検討されているが、符号化データの構成、及び符号化データをシステムフォーマットへ格納する方法が定義されておらず、このままでは符号化部におけるMUX処理(多重化)、伝送及び蓄積ができないという課題がある。
なお、以降において、特定の符号化方法の記載がなければ、第1の符号化方法、及び第2の符号化方法のいずれかを示すものとする。
以下、本実施の形態に係るNALユニットの定義方法について説明する。例えば、HEVCなどの、これまでのコーデックでは、1つのコーデックに対して、1つのフォーマットのNALユニットが定義されている。しかし、PCCのように、第1の符号化方法と第2の符号化方法との2つのコーデック(以降、PCCコーデックと称する)が混在するフォーマットをサポートする方法はこれまで存在しない。
まず、上述した第1の符号化部4630及び第2の符号化部4650の両方の機能を持つ符号化部4670、並びに、第1の復号部4640及び第2の復号部4660の両方の機能を持つ復号部4680について説明する。
図14は、本実施の形態に係る符号化部4670のブロック図である。この符号化部4670は、上述した第1の符号化部4630及び第2の符号化部4650と、多重化部4671とを含む。多重化部4671は、第1の符号化部4630で生成された符号化データと第2の符号化部4650で生成された符号化データとを多重化し、得られた符号化データを出力する。
図15は、本実施の形態に係る復号部4680のブロック図である。この復号部4680は、上述した第1の復号部4640及び第2の復号部4660と、逆多重化部4681とを含む。逆多重化部4681は、入力された符号化データから、第1の符号化方法が用いられている符号化データと、第2の符号化方法が用いられている符号化データとを抽出する。逆多重化部4681は、第1の符号化方法が用いられている符号化データを第1の復号部4640に出力し、第2の符号化方法が用いられている符号化データを第2の復号部4660に出力する。
上記の構成により、符号化部4670は、第1の符号化方法及び第2の符号化方法を選択的に用いて点群データを符号化することができる。また、復号部4680は、第1の符号化方法を用いて符号化された符号化データ、第2の符号化方法を用いて符号化された符号化データ、及び、第1の符号化方法と第2の符号化方法との両方を用いて符号化された符号化データを復号できる。
例えば、符号化部4670は、点群データ単位、又はフレーム単位で符号化方法(第1の符号化方法及び第2の符号化方法)を切り替えてもよい。また、符号化部4670は、符号化可能な単位で符号化方法を切り替えてもよい。
符号化部4670は、例えば、PCCコーデックの識別情報を含む符号化データ(符号化ストリーム)を生成する。
復号部4680に含まれる逆多重化部4681は、例えば、PCCコーデックの識別情報を用いて、データを識別する。逆多重化部4681は、当該データが第1の符号化方法で符号化されたデータである場合には、第1の復号部4640に当該データを出力し、当該データが第2の符号化方法で符号化されたデータである場合には、当該データを第2の復号部4660に出力する。
なお、符号化部4670は、PCCコーデックの識別情報以外にも、両方の符号化方法を用いたか、いずれか一方の符号化方法を用いたかを示す情報を制御情報として送出してもよい。
次に、本実施の形態に係る符号化処理について説明する。図16は、本実施の形態に係る符号化処理のフローチャートである。PCCコーデックの識別情報を用いることにより、複数コーデックに対応した符号化処理が可能となる。
まず、符号化部4670は、PCCデータを第1の符号化方法、第2の符号化方法のいずれか一方又は両方のコーデックで符号化する(S4681)。
使用したコーデックが第2の符号化方法である場合(S4682で第2の符号化方法)、符号化部4670は、NALユニットヘッダに含まれるpcc_codec_typeをNALユニットのペイロードに含まれるデータが第2の符号化方法で符号化されたデータであることを示す値に設定する(S4683)。次に、符号化部4670は、NALユニットヘッダのpcc_nal_unit_typeに第2の符号化方法用のNALユニットの識別子を設定する(S4684)。そして、符号化部4670は、設定したNALユニットヘッダを有し、ペイロードに符号化データを含むNALユニットを生成する。そして、符号化部4670は、生成したNALユニットを送信する(S4685)。
一方、使用したコーデックが第1の符号化方法である場合(S4682で第1の符号化方法)、符号化部4670は、NALユニットヘッダに含まれるpcc_codec_typeをNALユニットのペイロードに含まれるデータが第1の符号化方法で符号化されたデータであることを示す値に設定する(S4686)。次に、符号化部4670は、NALユニットヘッダに含まれるpcc_nal_unit_typeに第1の符号化方法用のNALユニットの識別子を設定する(S4687)。次に、符号化部4670は、設定したNALユニットヘッダを有し、ペイロードに符号化データを含むNALユニットを生成する。そして、符号化部4670は、生成したNALユニットを送信する(S4685)。
次に、本実施の形態に係る復号処理について説明する。図17は、本実施の形態に係る復号処理のフローチャートである。PCCコーデックの識別情報を用いることにより、複数コーデックに対応した復号処理が可能となる。
まず、復号部4680は、NALユニットを受信する(S4691)。例えば、このNALユニットは、上述した符号化部4670における処理で生成されたものである。
次に、復号部4680は、NALユニットヘッダに含まれるpcc_codec_typeが第1の符号化方法を示すか、第2の符号化方法を示すかを判定する(S4692)。
pcc_codec_typeが第2の符号化方法を示す場合(S4692で第2の符号化方法)、復号部4680は、NALユニットのペイロードに含まれるデータが第2の符号化方法で符号化されたデータであると判断する(S4693)。そして、第2の復号部4660は、NALユニットヘッダに含まれるpcc_nal_unit_typeが、第2の符号化方法用のNALユニットの識別子であるとしてデータを識別する(S4694)。そして、復号部4680は、第2の符号化方法の復号処理を用いてPCCデータを復号する(S4695)。
一方、pcc_codec_typeが第1の符号化方法を示す場合(S4692で第1の符号化方法)、復号部4680は、NALユニットのペイロードに含まれるデータが第1の符号化方法で符号化されたデータであると判断する(S4696)。そして、復号部4680は、NALユニットヘッダに含まれるpcc_nal_unit_typeが、第1の符号化方法用のNALユニットの識別子であるとしてデータを識別する(S4697)。そして、復号部4680は、第1の符号化方法の復号処理を用いてPCCデータを復号する(S4698)。
以上のように、本開示の一態様に係る三次元データ符号化装置は、三次元データ(例えば点群データ)を符号化することで符号化ストリームを生成し、前記符号化ストリームの制御情報(例えば、パラメータセット)に、第1符号化方法と第2符号化方法のうち、前記符号化に用いた符号化方法を示す情報(例えば、コーデックの識別情報)を格納する。
これによれば、三次元データ復号装置は、当該三次元データ符号化装置で生成された符号化ストリームを復号する際に、制御情報に格納された情報を用いて符号化に用いられた符号化方法を判定できる。よって、三次元データ復号装置は、複数の符号化方法が用いられる場合においても正しく符号化ストリームを復号できる。
例えば、前記三次元データは、位置情報を含む。三次元データ符号化装置は、前記符号化では、前記位置情報を符号化する。三次元データ符号化装置は、前記格納では、前記位置情報の制御情報に、前記第1符号化方法と前記第2符号化方法のうち、前記位置情報の符号化に用いた符号化方法を示す情報を格納する。
例えば、前記三次元データは、位置情報と属性情報とを含む。三次元データ符号化装置は、前記符号化では、前記位置情報と前記属性情報とを符号化する。三次元データ符号化装置は、前記格納では、前記位置情報の制御情報に、前記第1符号化方法と前記第2符号化方法のうち、前記位置情報の符号化に用いた符号化方法を示す情報を格納し、前記属性情報の制御情報に、前記第1符号化方法と前記第2符号化方法のうち、前記属性情報の符号化に用いた符号化方法を示す情報を格納する。
これによれば、位置情報と属性情報とに異なる符号化方法を用いることができるので、符号化効率を向上できる。
例えば、前記三次元データ符号化方法は、さらに、前記符号化ストリームを1以上のユニット(例えば、NALユニット)に格納する。
例えば、前記ユニットは、前記第1符号化方法と前記第2符号化方法とで共通したフォーマットを有し、前記ユニットに含まれるデータの種別を示す情報であって、前記第1符号化方法と前記第2符号化方法とで独立した定義を有する情報(例えば、pcc_nal_unit_type)を含む。
例えば、前記ユニットは、前記第1符号化方法と前記第2符号化方法とで独立したフォーマットを有し、前記ユニットに含まれるデータの種別を示す情報であって、前記第1符号化方法と前記第2符号化方法とで独立した定義を有する情報(例えば、codec1_nal_unit_type又はcodec2_nal_unit_type)を含む。
例えば、前記ユニットは、前記第1符号化方法と前記第2符号化方法とで共通したフォーマットを有し、前記ユニットに含まれるデータの種別を示す情報であって、前記第1符号化方法と前記第2符号化方法とで共通した定義を有する情報(例えば、pcc_nal_unit_type)を含む。
例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
また、本実施の形態に係る三次元データ復号装置は、三次元データを符号化することで生成された符号化ストリームの制御情報(例えば、パラメータセット)に含まれる、第1符号化方法と第2符号化方法のうち、前記三次元データの符号化に用いられた符号化方法を示す情報(例えば、コーデックの識別情報)に基づき、符号化ストリームの符号化に用いられた符号化方法を判定し、判定した前記符号化方法を用いて前記符号化ストリームを復号する。
これによれば、三次元データ復号装置は、符号化ストリームを復号する際に、制御情報に格納された情報を用いて符号化に用いられた符号化方法を判定できる。よって、三次元データ復号装置は、複数の符号化方法が用いられる場合においても正しく符号化ストリームを復号できる。
例えば、前記三次元データは、位置情報を含み、前記符号化ストリームは、前記位置情報の符号化データを含む。三次元データ復号装置は、前記判定では、前記符号化ストリームに含まれる前記位置情報の制御情報に含まれる、前記第1符号化方法と前記第2符号化方法のうち、前記位置情報の符号化に用いられた符号化方法を示す情報に基づき、前記位置情報の符号化に用いられた符号化方法を判定する。三次元データ復号装置は、前記復号では、判定した前記位置情報の符号化に用いられた符号化方法を用いて前記位置情報の符号化データを復号する。
例えば、前記三次元データは、位置情報と属性情報とを含み、前記符号化ストリームは、前記位置情報の符号化データと前記属性情報の符号化データとを含む。三次元データ復号装置は、前記判定では、前記符号化ストリームに含まれる前記位置情報の制御情報に含まれる、前記第1符号化方法と前記第2符号化方法のうち、前記位置情報の符号化に用いられた符号化方法を示す情報に基づき、前記位置情報の符号化に用いられた符号化方法を判定し、前記符号化ストリームに含まれる前記属性情報の制御情報に含まれる、前記第1符号化方法と前記第2符号化方法のうち、前記属性情報の符号化に用いられた符号化方法を示す情報に基づき、前記属性情報の符号化に用いられた符号化方法を判定する。三次元データ復号装置は、前記復号では、判定した前記位置情報の符号化に用いられた符号化方法を用いて前記位置情報の符号化データを復号し、判定した前記属性情報の符号化に用いられた符号化方法を用いて前記属性情報の符号化データを復号する。
これによれば、位置情報と属性情報とに異なる符号化方法を用いることができるので、符号化効率を向上できる。
例えば、前記符号化ストリームは1以上のユニット(例えば、NALユニット)に格納されており、三次元データ復号装置は、さらに、前記1以上のユニットから前記符号化ストリームを取得する。
例えば、前記ユニットは、前記第1符号化方法と前記第2符号化方法とで共通したフォーマットを有し、前記ユニットに含まれるデータの種別を示す情報であって、前記第1符号化方法と前記第2符号化方法とで独立した定義を有する情報(例えば、pcc_nal_unit_type)を含む。
例えば、前記ユニットは、前記第1符号化方法と前記第2符号化方法とで独立したフォーマットを有し、前記ユニットに含まれるデータの種別を示す情報であって、前記第1符号化方法と前記第2符号化方法とで独立した定義を有する情報(例えば、codec1_nal_unit_type又はcodec2_nal_unit_type)を含む。
例えば、前記ユニットは、前記第1符号化方法と前記第2符号化方法とで共通したフォーマットを有し、前記ユニットに含まれるデータの種別を示す情報であって、前記第1符号化方法と前記第2符号化方法とで共通した定義を有する情報(例えば、pcc_nal_unit_type)を含む。
例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
(実施の形態2)
本実施の形態では、NALユニットをISOBMFFのファイルに格納する方法について説明する。
ISOBMFF(ISO based media file format)は、ISO/IEC14496-12に規定されるファイルフォーマット規格である。ISOBMFFは、ビデオ、オーディオ、及びテキストなど様々なメディアを多重して格納できるフォーマットを規定しており、メディアに依存しない規格である。
ISOBMFFの基本構造(ファイル)について説明する。ISOBMFFにおける基本単位はボックスである。ボックスはtype、length、dataで構成され、様々なtypeのボックスを組み合わせた集合がファイルである。
図18は、ISOBMFFの基本構造(ファイル)を示す図である。ISOBMFFのファイルは、主に、ファイルのブランドを4CC(4文字コード)で示すftyp、制御情報などのメタデータを格納するmoov、及び、データを格納するmdatなどのボックスを含む。
ISOBMFFのファイルへのメディア毎の格納方法は別途規定されており、例えば、AVCビデオ及びHEVCビデオの格納方法は、ISO/IEC14496-15に規定される。ここで、PCC符号化データを蓄積又は伝送するために、ISOBMFFの機能を拡張して使用することが考えられるが、PCC符号化データをISOBMFFのファイルに格納する規定はまだない。そこで、本実施の形態では、PCC符号化データをISOBMFFのファイルに格納する方法について説明する。
図19は、PCCコーデック共通のNALユニットをISOBMFFのファイルに格納する場合のプロトコルスタックを示す図である。ここでは、PCCコーデック共通のNALユニットがISOBMFFのファイルに格納される。NALユニットはPCCコーデック共通であるが、NALユニットには複数のPCCコーデックが格納されるため、それぞれのコーデックに応じた格納方法(Carriage of Codec1、Carriage of Codec2)を規定することが望ましい。
次に、複数のPCCコーデックをサポートする共通のPCC NALユニットをISOBMFFのファイルへ格納する方法について説明する。図20は、共通のPCC NALユニットをコーデック1の格納方法(Carriage of Codec1)のISOBMFFのファイルに格納する例を示す図である。図21は、共通のPCC NALユニットをコーデック2の格納方法(Carriage of Codec2)のISOBMFFのファイルに格納する例を示す図である。
ここで、ftypは、ファイルフォーマットを識別するための重要な情報であり、ftyp用に、コーデック毎に異なる識別子が定義される。第1の符号化方法(符号化方式)で符号化されたPCC符号化データがファイルに格納される場合は、ftyp=pcc1に設定される。第2の符号化方法で符号化されたPCC符号化データがファイルに格納される場合は、ftyp=pcc2に設定される。
ここで、pcc1は、PCCのコーデック1(第1の符号化方法)が用いられることを示す。pcc2は、PCCのコーデック2(第2の符号化方法)が用いられることを示す。つまり、pcc1及びpcc2は、データがPCC(三次元データ(点群データ)の符号データ)であることを示し、かつ、PCCコーデック(第1の符号化方法及び第2の符号化方法)を示す。
以下、NALユニットをISOBMFFのファイルへ格納する方法について説明する。多重化部は、NALユニットヘッダを解析し、pcc_codec_type=Codec1である場合にはISOBMFFのftypにpcc1を記載する。
また、多重化部は、NALユニットヘッダを解析し、pcc_codec_type=Codec2である場合にはISOBMFFのftypにpcc2を記載する。
また、多重化部は、pcc_nal_unit_typeがメタデータである場合は、NALユニットを所定の方法で、例えばmoov又はmdatに格納する。多重化部は、pcc_nal_unit_typeがデータである場合は、NALユニットを所定の方法で、例えばmoov又はmdatに格納する。
例えば、多重化部は、HEVCと同様にNALユニットにNALユニットサイズを格納してもよい。
本格納方法により、逆多重化部(システムレイヤ)においてファイルに含まれるftypを解析することで、PCC符号化データが第1の符号化方法で符号化されたか、第2の符号化方法で符号化されたかを判定することが可能となる。さらに、上記の通り、PCC符号化データが第1の符号化方法で符号化されたか、第2の符号化方法で符号化されたかを判定することで、両方の符号化方法で符号化された符号化データが混在するデータからいずれか一方の符号化方法で符号化された符号化データを抽出することができる。これにより、符号化データを伝送する際に、伝送されるデータ量を抑制することができる。また、本格納方法により、第1の符号化方法と第2の符号化方法とで、異なるデータ(ファイル)フォーマットを設定することなく、共通のデータフォーマットを用いることができる。
なお、ISOBMFFにおけるftypなど、システムレイヤのメタデータにコーデックの識別情報が示される場合は、多重化部は、pcc_nal_unit_typeを削除したNALユニットをISOBMFFのファイルに格納してもよい。
次に、本実施の形態に係る三次元データ符号化システム(三次元データ符号化装置)が備える多重化部、及び、本実施の形態に係る三次元データ復号システム(三次元データ復号装置)が備える逆多重化部の構成及び動作について説明する。
図22は、第1の多重化部4710の構成を示す図である。第1の多重化部4710は、第1の符号化部4630で生成された符号化データ及び制御情報(NALユニット)をISOBMFFのファイルに格納することで多重化データ(ファイル)を生成するファイル変換部4711を備える。この第1の多重化部4710は、例えば、図1に示す多重化部4614に含まれる。
図23は、第1の逆多重化部4720の構成を示す図である。第1の逆多重化部4720は、多重化データ(ファイル)から符号化データ及び制御情報(NALユニット)を取得し、取得した符号化データ及び制御情報を第1の復号部4640に出力するファイル逆変換部4721を備える。この第1の逆多重化部4720は、例えば、図1に示す逆多重化部4623に含まれる。
図24は、第2の多重化部4730の構成を示す図である。第2の多重化部4730は、第2の符号化部4650で生成された符号化データ及び制御情報(NALユニット)をISOBMFFのファイルに格納することで多重化データ(ファイル)を生成するファイル変換部4731を備える。この第2の多重化部4730は、例えば、図1に示す多重化部4614に含まれる。
図25は、第2の逆多重化部4740の構成を示す図である。第2の逆多重化部4740は、多重化データ(ファイル)から符号化データ及び制御情報(NALユニット)を取得し、取得した符号化データ及び制御情報を第2の復号部4660に出力するファイル逆変換部4741を備える。この第2の逆多重化部4740は、例えば、図1に示す逆多重化部4623に含まれる。
図26は、第1の多重化部4710による多重化処理のフローチャートである。まず、第1の多重化部4710は、NALユニットヘッダに含まれるpcc_codec_typeを解析することで、使用されているコーデックが第1の符号化方法であるか、第2の符号化方法であるかを判定する(S4701)。
pcc_codec_typeが第2の符号化方法を示す場合(S4702で第2の符号化方法)、第1の多重化部4710は、当該NALユニットを処理しない(S4703)。
一方、pcc_codec_typeが第2の符号化方法を示す場合(S4702で第1の符号化方法)、第1の多重化部4710は、ftypにpcc1を記載する(S4704)。つまり、第1の多重化部4710は、第1の符号化方法で符号化されたデータがファイルに格納されていることを示す情報をftypに記載する。
次に、第1の多重化部4710は、NALユニットヘッダに含まれるpcc_nal_unit_typeを解析し、pcc_nal_unit_typeで示されるデータタイプに応じた所定の方法でデータをボックス(moov又はmdat等)に格納する(S4705)。そして、第1の多重化部4710は、上記ftyp及び上記ボックスを含むISOBMFFのファイルを作成する(S4706)。
図27は、第2の多重化部4730による多重化処理のフローチャートである。まず、第2の多重化部4730は、NALユニットヘッダに含まれるpcc_codec_typeを解析することで、使用されているコーデックが第1の符号化方法であるか、第2の符号化方法であるかを判定する(S4711)。
pcc_unit_typeが第2の符号化方法を示す場合(S4712で第2の符号化方法)、第2の多重化部4730は、ftypにpcc2を記載する(S4713)。つまり、第2の多重化部4730は、第2の符号化方法で符号化されたデータがファイルに格納されていることを示す情報をftypに記載する。
次に、第2の多重化部4730は、NALユニットヘッダに含まれるpcc_nal_unit_typeを解析し、pcc_nal_unit_typeで示されるデータタイプに応じた所定の方法でデータをボックス(moov又はmdat等)に格納する(S4714)。そして、第2の多重化部4730は、上記ftyp及び上記ボックスを含むISOBMFFのファイルを作成する(S4715)。
一方、pcc_unit_typeが第1の符号化方法を示す場合(S4712で第1の符号化方法)、第2の多重化部4730は、当該NALユニットを処理しない(S4716)。
なお、上記処理は、PCCデータを第1の符号化方法、及び第2の符号化方法のいずれか一方で符号化する例を示している。第1の多重化部4710及び第2の多重化部4730は、NALユニットのコーデックタイプを識別することにより、所望のNALユニットをファイルに格納する。なお、NALユニットヘッダ以外に、PCCコーデックの識別情報が含まれる場合には、第1の多重化部4710及び第2の多重化部4730は、ステップS4701及びS4711において、NALユニットヘッダ以外に含まれるPCCコーデックの識別情報を用いて、コーデックタイプ(第1の符号化方法又は第2の符号化方法)を識別してもよい。
また、第1の多重化部4710及び第2の多重化部4730は、ステップS4706及びS4714において、データをファイルに格納する際に、NALユニットヘッダからpcc_nal_unit_typeを削除したうえでファイルに格納してもよい。
図28は、第1の逆多重化部4720及び第1の復号部4640による処理を示すフローチャートである。まず、第1の逆多重化部4720は、ISOBMFFのファイルに含まれるftypを解析する(S4721)。ftypで示されるコーデックが第2の符号化方法(pcc2)である場合(S4722で第2の符号化方法)、第1の逆多重化部4720は、NALユニットのペイロードに含まれるデータが第2の符号化方法で符号化されたデータであると判断する(S4723)。また、第1の逆多重化部4720は、判断の結果を第1の復号部4640に伝達する。第1の復号部4640は、当該NALユニットを処理しない(S4724)。
一方、ftypで示されるコーデックが第1の符号化方法(pcc1)である場合(S4722で第1の符号化方法)、第1の逆多重化部4720は、NALユニットのペイロードに含まれるデータが第1の符号化方法で符号化されたデータであると判断する(S4725)。また、第1の逆多重化部4720は、判断の結果を第1の復号部4640に伝達する。
第1の復号部4640は、NALユニットヘッダに含まれるpcc_nal_unit_typeが、第1の符号化方法用のNALユニットの識別子であるとしてデータを識別する(S4726)。そして、第1の復号部4640は、第1の符号化方法の復号処理を用いてPCCデータを復号する(S4727)。
図29は、第2の逆多重化部4740及び第2の復号部4660による処理を示すフローチャートである。まず、第2の逆多重化部4740は、ISOBMFFのファイルに含まれるftypを解析する(S4731)。ftypで示されるコーデックが第2の符号化方法(pcc2)である場合(S4732で第2の符号化方法)、第2の逆多重化部4740は、NALユニットのペイロードに含まれるデータが第2の符号化方法で符号化されたデータであると判断する(S4733)。また、第2の逆多重化部4740は、判断の結果を第2の復号部4660に伝達する。
第2の復号部4660は、NALユニットヘッダに含まれるpcc_nal_unit_typeが、第2の符号化方法用のNALユニットの識別子であるとしてデータを識別する(S4734)。そして、第2の復号部4660は、第2の符号化方法の復号処理を用いてPCCデータを復号する(S4735)。
一方、ftypで示されるコーデックが第1の符号化方法(pcc1)である場合(S4732で第1の符号化方法)、第2の逆多重化部4740は、NALユニットのペイロードに含まれるデータが第1の符号化方法で符号化されたデータであると判断する(S4736)。また、第2の逆多重化部4740は、判断の結果を第2の復号部4660に伝達する。第2の復号部4660は、当該NALユニットを処理しない(S4737)。
このように、例えば、第1の逆多重化部4720又は第2の逆多重化部4740において、NALユニットのコーデックタイプを識別することにより、早い段階でコーデックタイプを識別できる。さらに、所望のNALユニットを第1の復号部4640又は第2の復号部4660に入力し、不要なNALユニットを取り除くことができる。この場合、第1の復号部4640又は第2の復号部4660において、コーデックの識別情報を解析する処理は不要になる可能性がある。なお、第1の復号部4640又は第2の復号部4660で再度NALユニットタイプを参照してコーデックの識別情報を解析する処理を実施してもよい。
また、第1の多重化部4710又は第2の多重化部4730においてNALユニットヘッダからpcc_nal_unit_typeを削除されている場合には、第1の逆多重化部4720又は第2の逆多重化部4740は、NALユニットにpcc_nal_unit_typeを付与したうえで第1の復号部4640又は第2の復号部4660へ出力してもよい。
(実施の形態3)
本実施の形態では、実施の形態1で説明した、複数のコーデックに対応した符号化部4670及び復号部4680に対応する、多重化部および逆多重化部について説明する。図30は、本実施の形態に係る符号化部4670及び第3の多重化部4750の構成を示す図である。
符号化部4670は、点群データを、第1の符号化方法、及び第2の符号化方法のいずれか一方又は両方の方式を用いて符号化する。符号化部4670は、点群データ単位、又はフレーム単位で符号化方法(第1の符号化方法及び第2の符号化方法)を切り替えてもよい。また、符号化部4670は、符号化可能な単位で符号化方法を切り替えてもよい。
符号化部4670は、PCCコーデックの識別情報を含む符号化データ(符号化ストリーム)を生成する。
第3の多重化部4750は、ファイル変換部4751を備える。ファイル変換部4751は、符号化部4670から出力されたNALユニットをPCCデータのファイルに変換する。ファイル変換部4751は、NALユニットヘッダに含まれるコーデック識別情報を解析し、PCC符号化データが、第1の符号化方法で符号化されたデータであるか、第2の符号化方法で符号化されたデータであるか、両方の方式で符号化されたデータであるかを判定する。ファイル変換部4751は、ftypにコーデックを識別可能なブランド名を記載する。例えば、両方の方式で符号化されたことを示す場合、ftypにpcc3が記載される。
なお、符号化部4670が、NALユニット以外にPCCコーデックの識別情報を記載している場合、ファイル変換部4751は、当該識別情報を用いて、PCCコーデック(符号化方法)を判定してもよい。
図31は、本実施の形態に係る第3の逆多重化部4760及び復号部4680の構成を示す図である。
第3の逆多重化部4760は、ファイル逆変換部4761を備える。ファイル逆変換部4761は、ファイルに含まれるftypを解析し、PCC符号化データが、第1の符号化方法で符号化されたデータであるか、第2の符号化方法で符号化されたデータであるか、両方の方式で符号化されたデータであるかを判定する。
PCC符号化データがいずれか一方の符号化方法で符号化されている場合、第1の復号部4640及び第2の復号部4660のうち、対応する復号部にデータが入力され、もう一方の復号部にはデータが入力されない。PCC符号化データが両方の符号化方法で符号化されている場合、両方式に対応する復号部4680にデータが入力される。
復号部4680は、PCC符号化データを、第1の符号化方法及び第2の符号化方法のいずれか一方又は両方の方式を用いて復号する。
図32は、本実施の形態に係る第3の多重化部4750による処理を示すフローチャートである。
まず、第3の多重化部4750は、NALユニットヘッダに含まれるpcc_codec_typeを解析することで、使用されているコーデックが第1の符号化方法であるか、第2の符号化方法であるか、第1の符号化方法及び第2の符号化方法の両方であるかを判定する(S4741)。
第2の符号化方法が使用されている場合(S4742でYes、かつ、S4743で第2の符号化方法)、第3の多重化部4750は、ftypにpcc2を記載する(S4744)。つまり、第3の多重化部4750は、第2の符号化方法で符号化されたデータがファイルに格納されていることを示す情報をftypに記載する。
次に、第3の多重化部4750は、NALユニットヘッダに含まれるpcc_nal_unit_typeを解析し、pcc_unit_typeで示されるデータタイプに応じた所定の方法でデータをボックス(moov又はmdat等)に格納する(S4745)。そして、第3の多重化部4750は、上記ftyp及び上記ボックスを含むISOBMFFのファイルを作成する(S4746)。
一方、第1の符号化方法が使用されている場合(S4742でYes、かつ、S4743で第1の符号化方法)、第3の多重化部4750は、ftypにpcc1を記載する(S4747)。つまり、第3の多重化部4750は、第1の符号化方法で符号化されたデータがファイルに格納されていることを示す情報をftypに記載する。
次に、第3の多重化部4750は、NALユニットヘッダに含まれるpcc_nal_unit_typeを解析し、pcc_unit_typeで示されるデータタイプに応じた所定の方法でデータをボックス(moov又はmdat等)に格納する(S4748)。そして、第3の多重化部4750は、上記ftyp及び上記ボックスを含むISOBMFFのファイルを作成する(S4746)。
一方、第1の符号化方法と第2の符号化方法との両方の符号化方法が使用されている場合(S4742でNo)、第3の多重化部4750は、ftypにpcc3を記載する(S4749)。つまり、第3の多重化部4750は、両方の符号化方法で符号化されたデータがファイルに格納されていることを示す情報をftypに記載する。
次に、第3の多重化部4750は、NALユニットヘッダに含まれるpcc_nal_unit_typeを解析し、pcc_unit_typeで示されるデータタイプに応じた所定の方法でデータをボックス(moov又はmdat等)に格納する(S4750)。そして、第3の多重化部4750は、上記ftyp及び上記ボックスを含むISOBMFFのファイルを作成する(S4746)。
図33は、第3の逆多重化部4760及び復号部4680による処理を示すフローチャートである。まず、第3の逆多重化部4760は、ISOBMFFのファイルに含まれるftypを解析する(S4761)。ftypで示されるコーデックが第2の符号化方法(pcc2)である場合(S4762でYes、かつS4763で第2の符号化方法)、第3の逆多重化部4760は、NALユニットのペイロードに含まれるデータが第2の符号化方法で符号化されたデータであると判断する(S4764)。また、第3の逆多重化部4760は、判断の結果を復号部4680に伝達する。
復号部4680は、NALユニットヘッダに含まれるpcc_nal_unit_typeが、第2の符号化方法用のNALユニットの識別子であるとしてデータを識別する(S4765)。そして、復号部4680は、第2の符号化方法の復号処理を用いてPCCデータを復号する(S4766)。
一方、ftypで示されるコーデックが第1の符号化方法(pcc1)である場合(S4762でYes、かつS4763で第1の符号化方法)、第3の逆多重化部4760は、NALユニットのペイロードに含まれるデータが第1の符号化方法で符号化されたデータであると判断する(S4767)。また、第3の逆多重化部4760は、判断の結果を復号部4680に伝達する。
復号部4680は、NALユニットヘッダに含まれるpcc_nal_unit_typeが、第1の符号化方法用のNALユニットの識別子であるとしてデータを識別する(S4768)。そして、復号部4680は、第1の符号化方法の復号処理を用いてPCCデータを復号する(S4769)。
一方、ftypで両方の符号化方法が用いられていること(pcc3)が示される場合(S4762でNo)、第3の逆多重化部4760は、NALユニットのペイロードに含まれるデータが、第1の符号化方法と第2符号化方法との両方の符号化方法で符号化されたデータであると判断する(S4770)。また、第3の逆多重化部4760は、判断の結果を復号部4680に伝達する。
復号部4680は、NALユニットヘッダに含まれるpcc_nal_unit_typeが、pcc_codec_typeに記載されるコーデック用のNALユニットの識別子であるとしてデータを識別する(S4771)。そして、復号部4680は、両方の符号化方法の復号処理を用いてPCCデータを復号する(S4772)。つまり、復号部4680は、第1の符号化方法で符号化されたデータを、第1の符号化方法の復号処理を用いて復号し、第2の符号化方法で符号化されたデータを、第2の符号化方法の復号処理を用いて復号する。
以下、本実施の形態の変形例を説明する。ftypに示されるブランドの種類として、以下の種類が識別情報で示されてもよい。また、以下に示す複数の種類の組み合わせが識別情報で示されてもよい。
識別情報は、PCC符号化前の元データのオブジェクトが、領域が制限されている点群であるか、地図情報のように領域が制限されていない大規模点群であるかを示してもよい。
識別情報は、PCC符号化前の元データが、静的オブジェクトであるか、動的オブジェクトであるかを示してもよい。
上述のように、識別情報は、PCC符号化データが、第1の符号化方法で符号化されたデータであるか、第2の符号化方法で符号化されたデータであるかを示してもよい。
識別情報は、PCC符号化において用いたアルゴリズムを示してもよい。ここで、アルゴリズムとは、例えば、第1の符号化方法又は第2の符号化方法において使用可能な符号化方法である。
識別情報は、PCC符号化データのISOBMFFのファイルへの格納方法の違いを示してもよい。例えば、識別情報は、使用された格納方法が、蓄積用の格納方法であるか、ダイナミックストリーミングのようなリアルタイム送出用の格納方法であるかを示してもよい。
また、実施の形態2及び実施の形態3では、ファイルフォーマットとしてISOBMFFが用いられる例に説明したが、その他の方式が用いられてもよい。例えば、MPEG-2 TS Systems、MPEG-DASH、MMT、又はRMPにPCC符号化データを格納する際にも本実施の形態と同様の方法を用いてもよい。
また、上記では、ftypに識別情報等のメタデータを格納する例を示したが、ftyp以外にこれらのメタデータが格納されてもよい。例えば、これらのメタデータがmoovに格納されてもよい。
以上のように、三次元データ格納装置(又は三次元データ多重化装置、又は三次元データ符号化装置)は、図34に示す処理を行う。
まず、三次元データ格納装置(例えば、第1の多重化部4710、第2の多重化部4730又は第3の多重化部4750を含む)は、点群データが符号化された符号化ストリームが格納された1以上のユニット(例えばNALユニット)を取得する(S4781)。次に、三次元データ格納装置は、1以上のユニットをファイル(例えばISOBMFFのファイル)に格納する(S4782)。また、三次元データ格納装置は、前記格納(S4782)では、ファイルに格納されているデータが、点群データが符号化されたデータであることを示す情報(例えばpcc1、pcc2又はpcc3)を、前記ファイルの制御情報(例えばftyp)に格納する。
これによれば、当該三次元データ格納装置で生成されたファイルを処理する装置では、ファイルの制御情報を参照して、当該ファイルに格納されているデータが点群データの符号化データであるか否かを早期に判定できる。よって、当該装置の処理量の低減又は処理の高速化を実現できる。
例えば、前記情報は、さらに、第1符号化方法と第2符号化方法のうち、前記点群データの符号化に用いられた符号化方法を示す。なお、ファイルに格納されているデータが、点群データが符号化されたデータであることと、第1符号化方法と第2符号化方法のうち、点群データの符号化に用いられた符号化方法とは、単一の情報で示されてもよいし、異なる情報で示されてもよい。
これによれば、当該三次元データ格納装置で生成されたファイルを処理する装置では、ファイルの制御情報を参照して、当該ファイルに格納されているデータに使用されたコーデックを早期に判定できる。よって、当該装置の処理量の低減又は処理の高速化を実現できる。
例えば、前記第1符号化方法は、点群データの位置をN(Nは2以上の整数)分木で表した位置情報を符号化し、前記位置情報を用いて属性情報を符号化する方式(GPCC)であり、前記第2符号化方法は、点群データから二次元画像を生成し、前記二次元画像を映像符号化方法を用いて符号化する方式(VPCC)である。
例えば、前記ファイルは、ISOBMFF(ISO based media file format)に準拠する。
例えば、三次元データ格納装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
また、以上のように、三次元データ取得装置(又は三次元データ逆多重化装置、又は三次元データ復号装置)は、図35に示す処理を行う。
三次元データ取得装置(例えば、第1の逆多重化部4720、第2の逆多重化部4740又は第3の逆多重化部4760を含む)は、点群データが符号化された符号化ストリームが格納された1以上のユニット(例えばNALユニット)が格納されたファイル(例えばISOBMFFのファイル)を取得する(S4791)。次に、三次元データ取得装置は、ファイルから、1以上のユニットを取得する(S4792)。また、ファイルの制御情報(例えばftyp)は、ファイルに格納されているデータが、点群データが符号化されたデータであることを示す情報(例えばpcc1、pcc2又はpcc3)を含む。
例えば、三次元データ取得装置は、前記情報を参照して、ファイルに格納されているデータが、点群データが符号化されたデータであるか否かを判定する。また、三次元データ取得装置は、ファイルに格納されているデータが、点群データが符号化されたデータであると判定した場合、1以上のユニットに含まれる点群データが符号化されたデータを復号することで点群データを生成する。または、三次元データ取得装置は、ファイルに格納されているデータが、点群データが符号化されたデータであると判定した場合、1以上のユニットに含まれるデータが、点群データが符号化されたデータであることを示す情報を、後段の処理部(例えば、第1の復号部4640、第2の復号部4660又は復号部4680)に出力(通知)する。
これによれば、当該三次元データ取得装置は、ファイルの制御情報を参照して、当該ファイルに格納されているデータが点群データの符号化データであるか否かを早期に判定できる。よって、当該三次元データ取得装置又は後段の装置の処理量の低減又は処理の高速化を実現できる。
例えば、前記情報は、さらに、第1符号化方法と第2符号化方法のうち、前記符号化に用いた符号化方法を示す。なお、ファイルに格納されているデータが、点群データが符号化されたデータであることと、第1符号化方法と第2符号化方法のうち、点群データの符号化に用いられた符号化方法とは、単一の情報で示されてもよいし、異なる情報で示されてもよい。
これによれば、当該三次元データ取得装置は、ファイルの制御情報を参照して、当該ファイルに格納されているデータに使用されたコーデックを早期に判定できる。よって、当該三次元データ取得装置又は後段の装置の処理量の低減又は処理の高速化を実現できる。
例えば、三次元データ取得装置は、前記情報に基づき、第1符号化方法で符号化されたデータと第2符号化方法で符号化されたデータとを含む符号化された点群データから、いずれか一方の符号化方法で符号化されたデータを取得する。
例えば、前記第1符号化方法は、点群データの位置をN(Nは2以上の整数)分木で表した位置情報を符号化し、前記位置情報を用いて属性情報を符号化する方式(GPCC)であり、前記第2符号化方法は、点群データから二次元画像を生成し、前記二次元画像を映像符号化方法を用いて符号化する方式(VPCC)である。
例えば、前記ファイルは、ISOBMFF(ISO based media file format)に準拠する。
例えば、三次元データ取得装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
(実施の形態4)
本実施の形態では、上述した第1の符号化部4630、又は第2の符号化部4650で生成される符号化データ(位置情報(Geometry)、属性情報(Attribute)、付加情報(Metadata))の種別、及び付加情報(メタデータ)の生成方法、及び多重化部における多重処理について説明する。なお、付加情報(メタデータ)は、パラメータセット、又は制御情報と表記することもある。
本実施の形態では、図4で説明した動的オブジェクト(時間的に変化する三次元点群データ)を例に説明するが、静的オブジェクト(任意の時刻の三次元点群データ)の場合でも同様の方法を用いてもよい。
図36は、本実施の形態に係る三次元データ符号化装置に含まれる符号化部4801及び多重化部4802の構成を示す図である。符号化部4801は、例えば、上述した第1の符号化部4630又は第2の符号化部4650に対応する。多重化部4802は、上述した多重化部4634又は46456に対応する。
符号化部4801は、複数のPCC(Point Cloud Compression)フレームの点群データを符号化し、複数の位置情報、属性情報及び付加情報の符号化データ(Multiple Compressed Data)を生成する。
多重化部4802は、複数のデータ種別(位置情報、属性情報及び付加情報)のデータをNALユニット化することで、データを復号装置におけるデータアクセスを考慮したデータ構成に変換する。
図37は、符号化部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)で表す。また、図37では、属性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の符号化方法では、符号化属性データは符号化位置データに依存する。
また、図37では2種類の属性情報(属性Xと属性Y)が存在する場合の例を示している。2種類の属性情報がある場合は、例えば、2つの符号化部により、それぞれのデータ及びメタデータが生成される。また、例えば、属性情報の種類毎に属性シーケンスが定義され、属性情報の種類毎に属性SPSが生成される。
なお、図37では、位置情報が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ユニットへの格納方法を説明する。
例えば、符号化データの種類毎にデータフォーマットが規定される。図38は、符号化データ及びNALユニットの例を示す図である。
例えば、図38に示すように符号化データは、ヘッダとペイロードとを含む。なお、符号化データは、符号化データ、ヘッダ又はペイロードの長さ(データ量)を示す長さ情報を含んでもよい。また、符号化データは、ヘッダを含まなくてもよい。
ヘッダは、例えば、データを特定するための識別情報を含む。この識別情報は、例えば、データ種別又はフレーム番号を示す。
ヘッダは、例えば、参照関係を示す識別情報を含む。この識別情報は、例えば、データ間に依存関係がある場合にヘッダに格納され、参照元から参照先を参照するための情報である。例えば、参照先のヘッダには、当該データを特定するための識別情報が含まれる。参照元のヘッダには、参照先を示す識別情報が含まれる。
なお、他の情報から参照先又は参照元を識別可能又は導出可能である場合は、データを特定するための識別情報、又は参照関係を示す識別情報を省略してもよい。
多重化部4802は、符号化データを、NALユニットのペイロードに格納する。NALユニットヘッダには、符号化データの識別情報であるpcc_nal_unit_typeが含まれる。図39は、pcc_nal_unit_typeのセマンティクスの例を示す図である。
図39に示すように、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の予備に割り当てられる。
次に、データの送出順序について説明する。以下、NALユニットの送出順序の制約について説明する。
多重化部4802は、NALユニットをGOF又はAU単位でまとめて送出する。多重化部4802は、GOFの先頭にGOFヘッダを配置し、AUの先頭にAUヘッダを配置する。
パケットロスなどでデータが失われた場合でも、復号装置が次のAUから復号できるように、多重化部4802は、シーケンスパラメータセット(SPS)を、AU毎に配置してもよい。
符号化データに復号に係る依存関係がある場合には、復号装置は、参照先のデータを復号した後に、参照元のデータを復号する。復号装置において、データを並び替ることなく、受信した順番に復号できるようにするために、多重化部4802は、参照先のデータを先に送出する。
図40は、NALユニットの送出順の例を示す図である。図40は、位置情報優先と、パラメータ優先と、データ統合との3つの例を示す。
位置情報優先の送出順序は、位置情報に関する情報と、属性情報に関する情報との各々をまとめて送出する例である。この送出順序の場合、位置情報に関する情報の送出が属性情報に関する情報の送出よりも早く完了する。
例えば、この送出順序を用いることで、属性情報を復号しない復号装置は、属性情報の復号を無視することで、処理しない時間を設けることができる可能性がある。また、例えば、位置情報を早く復号したい復号装置の場合、位置情報の符号化データを早く得ることにより、より早く位置情報を復号することができる可能性がある。
なお、図40では、属性XSPSと属性YSPSを統合し、属性SPSと記載しているが、属性XSPSと属性YSPSとを個別に配置してもよい。
パラメータセット優先の送出順序では、パラメータセットが先に送出され、データが後で送出される。
以上のようにNALユニット送出順序の制約に従えば、多重化部4802は、NALユニットをどのような順序で送出してもよい。例えば、順序識別情報が定義され、多重化部4802は、複数パターンの順序でNALユニットを送出する機能を有してもよい。例えばストリームPSにNALユニットの順序識別情報が格納される。
三次元データ復号装置は、順序識別情報に基づき復号を行ってもよい。三次元データ復号装置から三次元データ符号化装置に所望の送出順序が指示され、三次元データ符号化装置(多重化部4802)は、指示された送出順序に従って送出順序を制御してもよい。
なお、多重化部4802は、データ統合の送出順序のように、送出順序の制約に従う範囲であれば、複数の機能をマージした符号化データを生成してもよい。例えば、図40に示すように、GOFヘッダとAUヘッダとを統合してもよいし、AXPSとAYPSとを統合してもよい。この場合、pcc_nal_unit_typeには、複数の機能を有するデータであることを示す識別子が定義される。
以下、本実施の形態の変形例について説明する。フレームレベルのPS、シーケンスレベルのPS、PCCシーケンスレベルのPSのように、PSにはレベルがあり、PCCシーケンスレベルを上位のレベルとし、フレームレベルを下位のレベルとすると、パラメータの格納方法には下記の方法を用いてもよい。
デフォルトのPSの値をより上位のPSで示す。また、下位のPSの値が上位のPSの値と異なる場合には、下位のPSでPSの値が示される。または、上位ではPSの値を記載せず、下位のPSにPSの値を記載する。または、PSの値を、下位のPSで示すか、上位のPSで示すか、両方で示すかの情報を、下位のPSと上位のPSのいずれか一方又は両方に示す。または、下位のPSを上位のPSにマージしてもよい。または、下位のPSと上位のPSとが重複する場合には、多重化部4802は、いずれか一方の送出を省略してもよい。
なお、符号化部4801又は多重化部4802は、データをスライス又はタイルなどに分割し、分割したデータを送出してもよい。分割したデータには、分割したデータを識別するための情報が含まれ、分割データの復号に使用するパラメータがパラメータセットに含まれる。この場合、pcc_nal_unit_typeには、タイル又はスライスに係るデータ又はパラメータを格納するデータであることを示す識別子が定義される。
以下、順序識別情報に係る処理について説明する。図41は、NALユニットの送出順序に係る三次元データ符号化装置(符号化部4801及び多重化部4802)による処理のフローチャートである。
まず、三次元データ符号化装置は、NALユニットの送出順序(位置情報優先又はパラメータセット優先)を決定する(S4801)。例えば、三次元データ符号化装置は、ユーザ又は外部装置(例えば三次元データ復号装置)からの指定に基づき送出順序を決定する。
決定された送出順序が位置情報優先である場合(S4802で位置情報優先)、三次元データ符号化装置は、ストリームPSに含まれる順序識別情報を、位置情報優先に設定する(S4803)。つまり、この場合、順序識別情報は、位置情報優先の順序でNALユニットが送出されることを示す。そして、三次元データ符号化装置は、位置情報優先の順序でNALユニットを送出する(S4804)。
一方、決定された送出順序がパラメータセット優先である場合(S4802でパラメータセット優先)、三次元データ符号化装置は、ストリームPSに含まれる順序識別情報をパラメータセット優先に設定する(S4805)。つまり、この場合、順序識別情報は、パラメータセット優先の順序でNALユニットが送出されることを示す。そして、三次元データ符号化装置は、パラメータセットパラメータセット優先の順序でNALユニットを送出する(S4806)。
図42は、NALユニットの送出順序に係る三次元データ復号装置による処理のフローチャートである。まず、三次元データ復号装置は、ストリームPSに含まれる順序識別情報を解析する(S4811)。
順序識別情報で示される送出順序が位置情報優先である場合(S4812で位置情報優先)、三次元データ復号装置は、NALユニットの送出順序が位置情報優先であるものとして、NALユニットを復号する(S4813)。
一方、順序識別情報で示される送出順序がパラメータセット優先である場合(S4812でパラメータセット優先)、三次元データ復号装置は、NALユニットの送出順序がパラメータセット優先であるものとして、NALユニットを復号する(S4814)。
例えば、三次元データ復号装置は、属性情報を復号しない場合、ステップS4813において、全てのNALユニットを取得せずに、位置情報に関するNALユニットを取得し、取得したNALユニットから位置情報を復号してもよい。
次に、AU及びGOFの生成に係る処理について説明する。図43は、NALユニットの多重化におけるAU及びGOF生成に係る三次元データ符号化装置(多重化部4802)による処理のフローチャートである。
まず、三次元データ符号化装置は、符号化データの種類を判定する(S4821)。具体的には、三次元データ符号化装置は、処理対象の符号化データがAU先頭のデータであるか、GOF先頭のデータであるか、それ以外のデータであるかを判定する。
符号化データがGOF先頭のデータである場合(S4822でGOF先頭)、三次元データ符号化装置は、GOFヘッダ及びAUヘッダをGOFに属する符号化データの先頭に配置してNALユニットを生成する(S4823)。
符号化データがAU先頭のデータである場合(S4822でAU先頭)、三次元データ符号化装置は、AUヘッダをAUに属する符号化データの先頭に配置してNALユニットを生成する(S4824)。
符号化データがGOF先頭及びAU先頭のいずれでもない場合(S4822でGOF先頭、AU先頭以外)、三次元データ符号化装置は、符号化データが属するAUのAUヘッダの後に符号化データを配置してNALユニットを生成する(S4825)。
次に、AU及びGOFへのアクセスに係る処理について説明する。図44は、NALユニットの逆多重化におけるAU及びGOFのアクセスに係る三次元データ復号装置の処理のフローチャートである。
まず、三次元データ復号装置は、NALユニットに含まれるnal_unit_typeを解析することでNALユニットに含まれる符号化データの種類を判定する(S4831)。具体的には、三次元データ復号装置は、NALユニットに含まれる符号化データが、AU先頭のデータであるか、GOF先頭のデータであるか、それ以外のデータであるかを判定する。
NALユニットに含まれる符号化データがGOF先頭のデータである場合(S4832のGOF先頭)、三次元データ復号装置は、NALユニットがランダムアクセスの開始位置であると判断して、当該NALユニットにアクセスし、復号処理を開始する(S4833)。
一方、NALユニットに含まれる符号化データがAU先頭のデータである場合(S4832でAU先頭)、三次元データ復号装置は、NALユニットがAU先頭であると判断して、NALユニットに含まれるデータにアクセスし、当該AUを復号する(S4834)。
一方、NALユニットに含まれる符号化データが、GOF先頭及びAU先頭のいずれでもない場合(S4832でGOF先頭、AU先頭以外)、三次元データ復号装置は、当該NALユニットを処理しない。
以上のように、三次元データ符号化装置は、図45に示す処理を行う。三次元データ符号化装置は、時系列の三次元データ(例えば動的オブジェクトの点群データ)を符号化する。三次元データは、時刻毎の位置情報と属性情報とを含む。
まず、三次元データ符号化装置は、位置情報を符号化する(S4841)。次に、三次元データ符号化装置は、処理対象の属性情報を、当該処理対象の属性情報と同一時刻の位置情報を参照して符号化する(S4842)。ここで、図37に示すように、同一時刻の位置情報と属性情報とはアクセスユニット(AU)を構成する。つまり、三次元データ符号化装置は、処理対象の属性情報を、当該処理対象の属性情報と同じアクセスユニットに含まれる位置情報を参照して符号化する。
これによれば、三次元データ符号化装置は、アクセスユニットを用いて符号化における参照の制御を容易化できる。よって、三次元データ符号化装置は符号化処理の処理量を低減できる。
例えば、三次元データ符号化装置は、符号化された位置情報(符号化位置データ)と、符号化された属性情報(符号化属性データ)と、処理対象の属性情報の参照先の位置情報を示す情報とを含むビットストリームを生成する。
例えば、ビットストリームは、各時刻の位置情報の制御情報を含む位置パラメータセット(位置PS)と、各時刻の属性情報の制御情報を含む属性パラメータセット(属性PS)とを含む。
例えば、ビットストリームは、複数の時刻の位置情報に共通の制御情報を含む位置シーケンスパラメータセット(位置SPS)と、複数の時刻の属性情報に共通の制御情報を含む属性シーケンスパラメータセット(属性SPS)とを含む。
例えば、ビットストリームは、複数の時刻の位置情報及び複数の時刻の属性情報に共通の制御情報を含むストリームパラメータセット(ストリームPS)を含む。
例えば、ビットストリームは、アクセスユニット内で共通の制御情報を含むアクセスユニットヘッダ(AUヘッダ)を含む。
例えば、三次元データ符号化装置は、1以上のアクセスユニットで構成されるGOF(グループオブフレーム)を独立して復号可能なように符号化する。つまり、GOFはランダムアクセス単位である。
例えば、ビットストリームは、GOF内で共通の制御情報を含むGOFヘッダを含む。
例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
また、以上のように、三次元データ復号装置は、図46に示す処理を行う。三次元データ復号装置は、時系列の三次元データ(例えば動的オブジェクトの点群データ)を復号する。三次元データは、時刻毎の位置情報と属性情報とを含む。同一時刻の位置情報と属性情報とはアクセスユニット(AU)を構成する。
まず、三次元データ復号装置は、ビットストリームから位置情報を復号する(S4851)。つまり、三次元データ復号装置は、ビットストリームに含まれる符号化された位置情報(符号化位置データ)を復号することで位置情報を生成する。
次に、三次元データ復号装置は、ビットストリームから、処理対象の属性情報を、当該処理対象の属性情報と同一時刻の位置情報を参照して復号する(S4852)。つまり、三次元データ復号装置は、ビットストリームに含まれる符号化された属性情報(符号化属性データ)を復号することで属性情報を生成する。このとき、三次元データ復号装置は、属性情報と同じアクセスユニットに含まれる復号済みの位置情報を参照する。
これによれば、三次元データ復号装置は、アクセスユニットを用いて復号における参照の制御を容易化できる。よって、当該三次元データ復号方法は復号処理の処理量を低減できる。
例えば、三次元データ復号装置は、ビットストリームから、処理対象の属性情報の参照先の位置情報を示す情報を取得し、取得した情報で示される参照先の位置情報を参照して処理対象の属性情報を復号する。
例えば、ビットストリームは、各時刻の位置情報の制御情報を含む位置パラメータセット(位置PS)と、各時刻の属性情報の制御情報を含む属性パラメータセット(属性PS)とを含む。つまり、三次元データ復号装置は、処理対象時刻の位置パラメータセットに含まれる制御情報を用いて、処理対象時刻の位置情報を復号し、処理対象時刻の属性パラメータセットに含まれる制御情報を用いて、処理対象時刻の属性情報を復号する。
例えば、ビットストリームは、複数の時刻の位置情報に共通の制御情報を含む位置シーケンスパラメータセット(位置SPS)と、複数の時刻の属性情報に共通の制御情報を含む属性シーケンスパラメータセット(属性SPS)とを含む。つまり、三次元データ復号装置は、位置シーケンスパラメータセットに含まれる制御情報を用いて、複数の時刻の位置情報を復号し、属性シーケンスパラメータセットに含まれる制御情報を用いて、複数の時刻の属性情報を復号する。
例えば、ビットストリームは、複数の時刻の位置情報及び複数の時刻の属性情報に共通の制御情報を含むストリームパラメータセット(ストリームPS)を含む。つまり、三次元データ復号装置は、ストリームパラメータセットに含まれる制御情報を用いて、複数の時刻の位置情報及び複数時刻の属性情報を復号する。
例えば、ビットストリームは、アクセスユニット内で共通の制御情報を含むアクセスユニットヘッダ(AUヘッダ)を含む。つまり、三次元データ復号装置は、アクセスユニットヘッダに含まれる制御情報を用いて、アクセスユニットに含まれる位置情報及び属性情報を復号する。
例えば、三次元データ復号装置は、1以上のアクセスユニットで構成されるGOF(グループオブフレーム)を独立して復号する。つまり、GOFはランダムアクセス単位である。
例えば、ビットストリームは、GOF内で共通の制御情報を含むGOFヘッダを含む。つまり、三次元データ復号装置は、GOFヘッダに含まれる制御情報を用いて、GOFに含まれる位置情報及び属性情報を復号する。
例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
(実施の形態5)
次に、分割部4911の構成を説明する。図47は、分割部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つ以上の分割種別で分割が行われてもよい。
以下、点群データの分割方法について説明する。図48は、スライス及びタイル分割の例を示す図である。
まず、スライス分割の方法について説明する。分割部4911は、三次元点群データを、スライス単位で、任意の点群に分割する。分割部4911は、スライス分割において、点を構成する位置情報と属性情報とを分割せず、位置情報と属性情報とを一括で分割する。すなわち、分割部4911は、任意の点における位置情報と属性情報とが同じスライスに属するようにスライス分割を行う。なお、これらに従えば、分割数、及び分割方法はどのような方法でもよい。また、分割の最小単位は点である。例えば、位置情報と属性情報との分割数は同一である。例えば、スライス分割後の位置情報に対応する三次元点と、属性情報に対応する三次元点とは同一のスライスに含まれる。
また、分割部4911は、スライス分割時に分割数及び分割方法に係る付加情報であるスライス付加情報を生成する。スライス付加情報は、位置情報と属性情報とで同一である。例えば、スライス付加情報は、分割後のバウンディングボックスの基準座標位置、大きさ、又は辺の長さを示す情報を含む。また、スライス付加情報は、分割数、及び分割タイプなどを示す情報を含む。
次に、タイル分割の方法について説明する。分割部4911は、スライス分割されたデータを、スライス位置情報(Gスライス)とスライス属性情報(Aスライス)とに分割し、スライス位置情報とスライス属性情報をそれぞれタイル単位に分割する。
なお、図48では8分木構造で分割する例を示しているが、分割数及び分割方法はどのような方法でもよい。
また、分割部4911は、位置情報と属性情報とを異なる分割方法で分割してもよいし、同一の分割方法で分割してもよい。また、分割部4911は、複数のスライスを異なる分割方法でタイルに分割してもよいし、同一の分割方法でタイルに分割してもよい。
また、分割部4911は、タイル分割時に分割数及び分割方法に係るタイル付加情報を生成する。タイル付加情報(位置タイル付加情報及び属性タイル付加情報)は、位置情報と属性情報とで独立している。例えば、タイル付加情報は、分割後のバウンディングボックスの基準座標位置、大きさ、又は辺の長さを示す情報を含む。また、タイル付加情報は、分割数、及び分割タイプなど示す情報を含む。
次に、点群データをスライス又はタイルに分割する方法の例を説明する。分割部4911は、スライス又はタイル分割の方法として、予め定められた方法を用いてもよいし、点群データに応じて使用する方法を適応的に切り替えてもよい。
スライス分割時には、分割部4911は、位置情報と属性情報とに対して一括で三次元空間を分割する。例えば、分割部4911は、オブジェクトの形状を判定し、オブジェクトの形状に応じて三次元空間をスライスに分割する。例えば、分割部4911は、木又は建物などのオブジェクトを抽出し、オブジェクト単位で分割を行う。例えば、分割部4911は、1又は複数のオブジェクトの全体が1つのスライスに含まれるようにスライス分割を行う。または、分割部4911は、一つのオブジェクトを複数のスライスに分割する。
この場合、符号化装置は、例えば、スライス毎に符号化方法を変えてもよい。例えば、符号化装置は、特定のオブジェクト、又はオブジェクトの特定の一部に対して、高品質な圧縮方法を用いてもよい。この場合、符号化装置は、スライス毎の符号化方法を示す情報を付加情報(メタデータ)に格納してもよい。
また、分割部4911は、地図情報又は位置情報に基づき、各スライスが予め定められた座標空間に対応するようにスライス分割を行ってもよい。
タイル分割時には、分割部4911は、位置情報と属性情報とを独立に分割する。例えば、分割部4911は、データ量又は処理量に応じてスライスをタイルに分割する。例えば、分割部4911は、スライスのデータ量(例えばスライスに含まれる三次元点の数)が予め定められた閾値より多いかを判定する。分割部4911は、スライスのデータ量が閾値より多い場合にはスライスをタイルに分割する。分割部4911は、スライスのデータ量が閾値より少ないときにはスライスをタイルに分割しない。
例えば、分割部4911は、復号装置での処理量又は処理時間が一定の範囲(予め定められた値以下)となるよう、スライスをタイルに分割する。これにより、復号装置におけるタイル当たりの処理量が一定となり、復号装置における分散処理が容易となる。
また、分割部4911は、位置情報と属性情報とで処理量が異なる場合、例えば、位置情報の処理量が属性情報の処理量より多い場合、位置情報の分割数を、属性情報の分割数より多くする。
また、例えば、コンテンツによって、復号装置で、位置情報を早く復号して表示し、属性情報を後でゆっくり復号して表示してもよい場合に、分割部4911は、位置情報の分割数を、属性情報の分割数より多くしてもよい。これにより、復号装置は、位置情報の並列数を多くできるので、位置情報の処理を属性情報の処理より高速化できる。
なお、復号装置は、スライス化又はタイル化されているデータを必ずしも並列処理する必要はなく、復号処理部の数又は能力に応じて、これらを並列処理するかどうかを判定してもよい。
以上のような方法で分割することにより、コンテンツ又はオブジェクトに応じた、適応的な符号化を実現できる。また、復号処理における並列処理を実現できる。これにより、点群符号化システム又は点群復号システムの柔軟性が向上する。
図49は、スライス及びタイルの分割のパターンの例を示す図である。図中のDUはデータ単位(DataUnit)であり、タイル又はスライスのデータを示す。また、各DUは、スライスインデックス(SliceIndex)とタイルインデックス(TileIndex)を含む。図中のDUの右上の数値がスライスインデックスを示し、DUの左下の数値がタイルインデックスを示す。
パターン1では、スライス分割において、GスライスとAスライスとで分割数及び分割方法は同じである。タイル分割において、Gスライスに対する分割数及び分割方法とAスライスに対する分割数及び分割方法とは異なる。また、複数のGスライス間では同一の分割数及び分割方法が用いられる。複数のAスライス間では同一の分割数及び分割方法が用いられる。
パターン2では、スライス分割において、GスライスとAスライスとで分割数及び分割方法は同じである。タイル分割において、Gスライスに対する分割数及び分割方法とAスライスに対する分割数及び分割方法とは異なる。また、複数のGスライス間で分割数及び分割方法が異なる。複数のAスライス間で分割数及び分割方法が異なる。
(実施の形態6)
点群データをタイルおよびスライスに分割し、分割データを効率的に符号化または復号するには、符号化側および復号側で適切に制御する必要がある。分割データの符号化および復号を分割データ間で依存関係がなく独立にすることで、マルチスレッドまたはマルチコアプロセッサを用いて、それぞれのスレッド/コアにおいて分割データを並行に処理でき、パフォーマンスが向上する。
点群データをタイルおよびスライスに分割する方法は様々な方法があり、例えば、路面などの点群データの対象物の属性や、点群データの緑などの色情報などの特性に基づき分割する方法がある。
CABACは、Context-Based Adaptive Binary Arithmetic Codingの略で、コンテキスト(入力される2値シンボルの生起確率を推定するモデル)を符号化済みの情報に基づき順次更新することで確率の精度を高め、高い圧縮率の算術符号化(エントロピ符号化)を実現する符号化方法である。
タイルまたはスライスのような分割データを並行処理するためには、それぞれの分割データを独立に符号化または復号できる必要がある。しかし、分割データ間でCABACを独立にするためには、符号化および復号において、分割データの先頭でCABACを初期化する必要があるが、その仕組みがない。
CABACABAC初期化フラグは、CABAC符号化および復号においてCABACを初期化するために用いられる。
図50は、符号化または復号において、CABAC初期化フラグに応じて、CABACCABACの初期化の処理を示すフローチャートである。
三次元データ符号化装置または三次元データ復号装置は、符号化または復号において、CABAC初期化フラグが1であるか否かを判定する(S5201)。
三次元データ符号化装置または三次元データ復号装置は、CABAC初期化フラグが1である場合(S5201でYes)、デフォルト状態にCABAC符号化部/復号部を初期化し(S5202)、符号化または復号を継続する。
三次元データ符号化装置または三次元データ復号装置は、CABAC初期化フラグが1でない場合(S5201でNo)、初期化せずに符号化または復号を継続する。
つまり、CABACを初期化する場合、CABAC_init_flag=1とし、CABACの符号化部、あるいはCABACの復号部を初期化あるいは再初期化する。なお、初期化する場合、CABAC処理に用いるコンテキストの初期値(デフォルト状態)を設定する。
符号化処理について説明する。図51は、本実施の形態に係る三次元データ符号化装置に含まれる第1の符号化部5200の構成を示すブロック図である。図52は、本実施の形態に係る分割部5201の構成を示すブロック図である。図53は、本実施の形態に係る位置情報符号化部5202および属性情報符号化部5203の構成を示すブロック図である。
第1の符号化部5200は、点群データを第1の符号化方法(GPCC((Geometry based PCC))で符号化することで符号化データ(符号化ストリーム)を生成する。この第1の符号化部5200は、分割部5201と、複数の位置情報符号化部5202と、複数の属性情報符号化部5203と、付加情報符号化部5204と、多重化部5205とを含む。
分割部5201は、点群データを分割することで複数の分割データを生成する。具体的には、分割部5201は、点群データの空間を複数のサブ空間に分割することで複数の分割データを生成する。ここでサブ空間とは、タイル及びスライスの一方、又はタイル及びスライスの組み合わせである。より具体的には、点群データは、位置情報、属性情報、及び付加情報を含む。分割部5201は、位置情報を複数の分割位置情報に分割し、属性情報を複数の分割属性情報に分割する。また、分割部5201は、分割に関する付加情報を生成する。
分割部5201は、図52に示すように、タイル分割部5211と、スライス分割部5212とを含む。例えば、タイル分割部5211は、点群をタイルに分割する。タイル分割部5211は、分割した各タイルに用いる量子化値をタイル付加情報として決定してもよい。
スライス分割部5212は、タイル分割部5211により得られたタイルを、さらにスライスに分割する。スライス分割部5212は、分割した各スライスに用いる量子化値をスライス付加情報として決定してもよい。
複数の位置情報符号化部5202は、複数の分割位置情報を符号化することで複数の符号化位置情報を生成する。例えば、複数の位置情報符号化部5202は、複数の分割位置情報を並列処理する。
位置情報符号化部5202は、図53に示すように、CABAC初期化部5221と、エントロピ符号化部5222とを含む。CABAC初期化部5221は、CABAC初期化フラグに応じてCABACを初期化または再初期化する。エントロピ符号化部5222は、分割位置情報をCABACにより符号化する。
複数の属性情報符号化部5203は、複数の分割属性情報を符号化することで複数の符号化属性情報を生成する。例えば、複数の属性情報符号化部5203は、複数の分割属性情報を並列処理する。
属性情報符号化部5203は、図53に示すように、CABAC初期化部5231と、エントロピ符号化部5232とを含む。CABAC初期化部5221は、CABAC初期化フラグに応じてCABACを初期化または再初期化する。エントロピ符号化部5232は、分割属性情報をCABACにより符号化する。
付加情報符号化部5204は、点群データに含まれる付加情報と、分割部5201で分割時に生成された、データ分割に関する付加情報とを符号化することで符号化付加情報を生成する。
多重化部5205は、複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を多重化することで符号化データ(符号化ストリーム)を生成し、生成した符号化データを送出する。また、符号化付加情報は復号時に使用される。
なお、図51では、位置情報符号化部5202及び属性情報符号化部5203の数がそれぞれ2つの例を示しているが、位置情報符号化部5202及び属性情報符号化部5203の数は、それぞれ1つであってもよいし、3つ以上であってもよい。また、複数の分割データは、CPU内の複数コアのように同一チップ内で並列処理されてもよいし、複数のチップのコアで並列処理されてもよいし、複数チップの複数コアで並列処理されてもよい。
次に、復号処理について説明する。図54は、第1の復号部5240の構成を示すブロック図である。図55は、位置情報復号部5242および属性情報復号部5243の構成を示すブロック図である。
第1の復号部5240は、点群データが第1の符号化方法(GPCC)で符号化されることで生成された符号化データ(符号化ストリーム)を復号することで点群データを復元する。この第1の復号部5240は、逆多重化部5241と、複数の位置情報復号部5242と、複数の属性情報復号部5243と、付加情報復号部5244と、結合部5245とを含む。
逆多重化部5241は、符号化データ(符号化ストリーム)を逆多重化することで複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を生成する。
複数の位置情報復号部5242は、複数の符号化位置情報を復号することで複数の量子化位置情報を生成する。例えば、複数の位置情報復号部5242は、複数の符号化位置情報を並列処理する。
位置情報復号部5242は、図55に示すように、CABAC初期化部5251と、エントロピ復号部5252を含む。CABAC初期化部5251は、CABAC初期化フラグに応じてCABACを初期化または再初期化する。エントロピ復号部5252は、位置情報をCABACにより復号する。
複数の属性情報復号部5243は、複数の符号化属性情報を復号することで複数の分割属性情報を生成する。例えば、複数の属性情報復号部5243は、複数の符号化属性情報を並列処理する。
属性情報復号部5243は、図55に示すように、CABAC初期化部5261と、エントロピ復号部5262とを含む。CABAC初期化部5261は、CABAC初期化フラグに応じてCABACを初期化または再初期化する。エントロピ復号部5262は、属性情報をCABACにより復号する。
複数の付加情報復号部5244は、符号化付加情報を復号することで付加情報を生成する。
結合部5245は、付加情報を用いて複数の分割位置情報を結合することで位置情報を生成する。結合部5245は、付加情報を用いて複数の分割属性情報を結合することで属性情報を生成する。例えば、結合部5245は、まず、スライス付加情報を用いて、スライスに対する復号された点群データを結合することでタイルに対応する点群データを生成する。次に、結合部5245は、タイル付加情報を用いて、タイルに対応する点群データを結合することで元の点群データを復元する。
なお、図54では、位置情報復号部5242及び属性情報復号部5243の数がそれぞれ2つの例を示しているが、位置情報復号部5242及び属性情報復号部5243の数は、それぞれ1つであってもよし、3つ以上であってもよい。また、複数の分割データは、CPU内の複数コアのように同一チップ内で並列処理されてもよいし、複数のチップのコアで並列処理されてもよい、複数チップの複数コアで並列処理されてもよい。
図56は、位置情報の符号化あるいは属性情報の符号化におけるCABACの初期化に関する処理の一例を示すフローチャートである。
まず、三次元データ符号化装置は、スライス毎に、所定の条件に基づき、当該スライスの位置情報の符号化でCABAC初期化をするか否かを判定する(S5201)。
三次元データ符号化装置は、CABAC初期化すると判断した場合(S5202でYes)、位置情報の符号化に用いるコンテキスト初期値を決定する(S5203)。コンテキスト初期値は、符号化特性を考慮した初期値に設定される。初期値は、あらかじめ定められた値としても良いし、スライス内のデータの特性に応じて適応的に決定されてもよい。
次に、三次元データ符号化装置は、位置情報のCABAC初期化フラグを1に設定し、コンテキスト初期値を設定する(S5204)。CABAC初期化する場合、位置情報の符号化において、コンテキスト初期値を用いて初期化処理が実行される。
一方で、三次元データ符号化装置は、CABAC初期化しないと判断した場合(S5202でNo)、位置情報のCABAC初期化フラグを0に設定する(S5205)。
次に、三次元データ符号化装置は、スライス毎に、所定の条件に基づき、当該スライスの属性情報の符号化でCABAC初期化をするか否かを判定する(S5206)。
三次元データ符号化装置は、CABAC初期化すると判断した場合(S5207でYes)、属性情報の符号化に用いるコンテキスト初期値を決定する(S5208)。コンテキスト初期値は、符号化特性を考慮した初期値に設定される。初期値は、あらかじめ定められた値としても良いし、スライス内のデータの特性に応じて適応的に決定されてもよい。
次に、三次元データ符号化装置は、属性情報のCABAC初期化フラグを1に設定し、コンテキスト初期値を設定する(S5209)。CABAC初期化する場合、属性情報の符号化において、コンテキスト初期値を用いて初期化処理が実行される。
一方で、三次元データ符号化装置は、CABAC初期化しないと判断した場合(S5207でNo)、属性情報のCABAC初期化フラグを0に設定する(S5210)。
なお、図56におけるフローチャートにおいて、位置情報に係る処理と属性情報に係る処理との処理順は反対でも良いし、並列でもよい。
なお、図56におけるフローチャートでは、スライス単位の処理を例にしているが、タイル単位や、その他のデータ単位での処理の場合もスライス単位と同様に処理することができる。つまり、図56のフローチャートのスライスは、タイルまたは他のデータ単位と読み替えることができる。
また、所定の条件は、位置情報と属性情報とで同一条件であってもよいし、異なる条件であってもよい。
図57は、ビットストリームとした点群データにおいてCABAC初期化のタイミングの一例を示す図である。
点群データは、位置情報と0以上の属性情報とを含む。すなわち、点群データは、属性情報を持たない場合もあれば、複数の属性情報を持つ場合もある。
例えば、1つの三次元点に対して、属性情報として、色情報を持つ場合、色情報と反射情報とを持つ場合、1以上の視点情報にそれぞれ紐づく1以上の色情報を持つ場合などがある。
いずれの構成の場合にも、本実施形態で説明する方法を適用可能である。
次に、CABACの初期化の判定条件について説明する。
以下の条件を満たす場合、位置情報あるいは属性情報の符号化におけるCABACを初期化するとしてもよい。
例えば、位置情報あるいは属性情報(複数あればそれぞれの属性情報)の先頭データでCABACを初期化してもよい。例えば、単独で復号可能なPCCフレームを構成するデータの先頭でCABACを初期化してもよい。つまり、図57の(a)に示すように、PCCフレームがフレーム単位で復号可能であれば、PCCフレームの先頭データでCABACを初期化してもよい。
また、例えば、図57の(b)に示すように、PCCフレーム間でインター予想を用いている場合などフレームで単独で復号できない場合は、ランダムアクセス単位(例えばGOF)の先頭データでCABACを初期化してもよい。
また、例えば、図57の(c)に示すように、1以上に分割されたスライスデータの先頭や、1以上に分割されたタイルデータの先頭、その他の分割データの先頭でCABACを初期化してもよい。
図57の(c)は、タイルを例に示すが、スライスの場合も同様である。タイルまたはスライスの先頭では、必ず初期化するとしてもよいし、必ずしも初期化しなくてもよい。
図58は、符号化データの構成及び符号化データのNALユニットへの格納方法を示す図である。
初期化情報は、符号化データのヘッダに格納されてもよいし、メタデータに格納されても良い。また、初期化情報は、ヘッダとメタデータとの両方に格納されてもよい。初期化情報は、例えば、caba_init_flag、CABAC初期値、または、初期値を特定できるテーブルのインデックスである。
本実施の形態でメタデータに格納すると説明している部分は符号化データのヘッダに格納すると読み替えても良いし、逆も同様である。
初期化情報は、符号化データのヘッダに格納される場合、例えば、符号化データにおける最初のNALユニットに格納されてもよい。位置情報には、位置情報の符号化の初期化情報を格納し、属性情報には、属性情報の符号化の初期化情報を格納する。
属性情報の符号化のcabac_init_flagと、位置情報の符号化のcabac_init_flagとは、同じ値にしてもよいし、異なる値にしてもよい。同じ値にする場合には、位置情報と属性情報とのcabac_init_flagを共通にしてもよい。また、異なる値にする場合は、位置情報と属性情報とのcabac_init_flagは、それぞれ異なる値を示す。
初期化情報は、位置情報と属性情報とで共通のメタデータに格納されてもよいし、位置情報の個別のメタデータ、および、属性情報の個別のメタデータの少なくとも一方に格納されてもよいし、共通のメタデータと個別のメタデータとの両方に格納されてもよい。また、位置情報の個別のメタデータ、属性情報の個別のメタデータ、および、共通のメタデータのいずれかに記載されているか否かを示すフラグを用いても良い。
図59は、位置情報の復号あるいは属性情報の復号におけるCABACの初期化に関する処理の一例を示すフローチャートである。
三次元データ復号装置は、符号化データを解析し、位置情報のCABAC初期化フラグと、属性情報のCABAC初期化フラグと、コンテキスト初期値とを取得する(S5211)。
次に、三次元データ復号装置は、位置情報のCABAC初期化フラグが1であるか否かを判定する(S5212)。
三次元データ復号装置は、位置情報のCABAC初期化フラグが1である場合(S5212でYes)、位置情報符号化のコンテキスト初期値を用いて、位置情報符号化のCABAC復号を初期化する(S5213)。
一方で、三次元データ復号装置は、位置情報のCABAC初期化フラグが0である場合(S5212でNo)、位置情報符号化においてCABAC復号を初期化しない(S5214)。
次に、三次元データ復号装置は、属性情報のCABAC初期化フラグが1であるか否かを判定する(S5215)。
三次元データ復号装置は、属性情報のCABAC初期化フラグが1である場合(S5215でYes)、属性情報符号化のコンテキスト初期値を用いて、属性情報符号化のCABAC復号を初期化する(S5216)。
一方で、三次元データ復号装置は、属性情報のCABAC初期化フラグが0である場合(S5215でNo)、属性情報符号化においてCABAC復号を初期化しない(S5217)。
なお、図59におけるフローチャートにおいて、位置情報係る処理と属性情報に係る処理との処理順は反対でも良いし、並列でもよい。
なお、図59におけるフローチャートは、スライス分割の場合、タイル分割の場合、いずれにも適用可能である。
次に、本実施の形態に係る点群データの符号化処理及び復号処理の流れについて説明する。図60は、本実施の形態に係る点群データの符号化処理のフローチャートである。
まず、三次元データ符号化装置は、使用する分割方法を決定する(S5221)。この分割方法は、タイル分割を行うか否か、スライス分割を行うか否かを含む。また、分割方法は、タイル分割又はスライス分割を行う場合の分割数、及び、分割の種別等を含んでもよい。分割の種別とは、上述したようなオブジェクト形状に基づく手法、地図情報或いは位置情報に基づく手法、又は、データ量或いは処理量に基づく手法等である。なお、分割方法は、予め定められていてもよい。
タイル分割が行われる場合(S5222でYes)、三次元データ符号化装置は、位置情報と属性情報とをタイル単位で分割することで複数のタイル位置情報及び複数のタイル属性情報を生成する(S5223)。また、三次元データ符号化装置は、タイル分割に係るタイル付加情報を生成する。
スライス分割が行われる場合(S5224でYes)、三次元データ符号化装置は、複数のタイル位置情報及び複数のタイル属性情報(又は位置情報及び属性情報)を分割することで複数の分割位置情報及び複数の分割属性情報を生成する(S5225)。また、三次元データ符号化装置は、スライス分割に係る位置スライス付加情報及び属性スライス付加情報を生成する。
次に、三次元データ符号化装置は、複数の分割位置情報及び複数の分割属性情報の各々を符号化することで、複数の符号化位置情報及び複数の符号化属性情報を生成する(S5226)。また、三次元データ符号化装置は、依存関係情報を生成する。
次に、三次元データ符号化装置は、複数の符号化位置情報、複数の符号化属性情報及び付加情報をNALユニット化(多重化)することで符号化データ(符号化ストリーム)を生成する(S5227)。また、三次元データ符号化装置は、生成した符号化データを送出する。
図61は、タイルの分割(S5222)またはスライスの分割(S5225)において、CABAC初期化フラグの値を決定し、付加情報を更新する処理の一例を示すフローチャートである。
ステップS5222、S5225では、タイルおよび/またはスライスの位置情報および属性情報は、それぞれの方法で独立して個別に分割してもよいし、共通して一括で分割してもよい。これにより、タイル毎および/またはスライス毎に分割された付加情報が生成される。
このとき、三次元データ符号化装置は、CABAC初期化フラグを1に設定するか0にするかを決定する(S5231)。
そして、三次元データ符号化装置は、決定したCABAC初期化フラグが含まれるように付加情報を更新する(S5232)。
図62は、符号化(S5226)の処理において、CABAC初期化する処理の一例を示すフローチャートである。
三次元データ符号化装置は、CABAC初期化フラグが1であるか否かを判定する(S5241)。
三次元データ符号化装置は、CABAC初期化フラグが1である場合(S5241でYes)、デフォルト状態にCABAC符号化部を再初期化する(S5242)。
そして、三次元データ符号化装置は、符号化処理の停止条件が満たされるまで、例えば、符号化対象のデータがなくなるまで、符号化処理を継続する(S5243)。
図63は、本実施の形態に係る点群データの復号処理のフローチャートである。まず、三次元データ復号装置は、符号化データ(符号化ストリーム)に含まれる、分割方法に係る付加情報(タイル付加情報、位置スライス付加情報及び属性スライス付加情報)を解析することで、分割方法を判定する(S5251)。この分割方法は、タイル分割を行うか否か、スライス分割を行うか否かを含む。また、分割方法は、タイル分割又はスライス分割を行う場合の分割数、及び、分割の種別等を含んでもよい。
次に、三次元データ復号装置は、符号化データに含まれる複数の符号化位置情報及び複数の符号化属性情報を、符号化データに含まれる依存関係情報を用いて復号することで分割位置情報及び分割属性情報を生成する(S5252)。
付加情報によりスライス分割が行われていることが示される場合(S5253でYes)、三次元データ復号装置は、位置スライス付加情報及び属性スライス付加情報に基づき、複数の分割位置情報と、複数の分割属性情報とを結合することで、複数のタイル位置情報及び複数のタイル属性情報を生成する(S5254)。
付加情報によりタイル分割が行われていることが示される場合(S5255でYes)、三次元データ復号装置は、タイル付加情報に基づき、複数のタイル位置情報及び複数のタイル属性情報(複数の分割位置情報及び複数の分割属性情報)を結合することで位置情報及び属性情報を生成する(S5256)。
図64は、スライス毎に分割された情報の結合(S5254)またはタイル毎に分割された情報の結合(S5256)において、CABAC復号部を初期化する処理の一例を示すフローチャートである。
スライスまたはタイルの位置情報および属性情報は、それぞれの方法を用いて結合してもよいし、同一の方法で結合してもよい。
三次元データ復号装置は、符号化ストリームの付加情報から、CABAC初期化フラグを復号する(S5261)。
次に、三次元データ復号装置は、CABAC初期化フラグが1であるか否かを判定する(S5262)。
三次元データ復号装置は、CABAC初期化フラグが1である場合(S5262でYes)、デフォルト状態にCABAC復号部を再初期化する(S5263)、。
一方で、三次元データ復号装置は、CABAC初期化フラグが1でない場合(S5262でNo)、CABAC復号部を再初期化せずにステップS5264に進む。
そして、三次元データ復号装置は、復号処理の停止条件が満たされるまで、例えば、復号対象のデータがなくなるまで、復号処理を継続する(S5264)。
次に、CABAC初期化のその他の判定条件について説明する。
位置情報の符号化あるいは属性情報の符号化を初期化するか否かは、タイルあるいはスライスなどのデータ単位の符号化効率を考慮して判定してもよい。この場合、所定の条件を満たすタイルあるいはスライスの先頭データにおいてCABACを初期化してもよい。
次に、位置情報の符号化におけるCABAC初期化の判定条件について説明する。
三次元データ符号化装置は、例えば、スライス毎に、点群データの密度、つまり、スライスに属する単位領域あたりの点の数を判定し、他のスライスのデータ密度と当該スライスのデータ密度とを比較し、データ密度の変化が所定の条件を超えない場合には、CABAC初期化しないほうが符号化効率が良いと判断し、CABAC初期化しないと判断してもよい。一方、三次元データ符号化装置は、データ密度の変化が所定の条件を満たさない場合、初期化したほうが符号化効率が良いと判断し、CABAC初期化すると判断してもよい。
ここで、他のスライスとは、例えば、復号処理順で1つ前のスライスであってもよいし、空間的に隣接するスライスであってもよい。また、三次元データ符号化装置は、他のスライスのデータ密度と比較しなくても、当該スライスのデータ密度が所定のデータ密度であるか否かに応じて、CABAC初期化するか否かを判定してもよい。
三次元データ符号化装置は、CABAC初期化すると判定した場合には、位置情報の符号化に用いるコンテキスト初期値を決定する。コンテキスト初期値は、データ密度に応じた符号化特性のよい初期値に設定される。三次元データ符号化装置は、あらかじめデータ密度に対する初期値テーブルを保持し、テーブルの中から最適な初期値を選択してもよい。
なお、三次元データ符号化装置は、スライスの密度の例に限らず、点の数や、点の分布、点の偏り等に基づいて、CABAC初期化するか否かを判定してもよい。あるいは、三次元データ符号化装置は、点の情報から得られる特徴量や特徴点の数、あるいは認識されるオブジェクトに基づき、CABAC初期化するか否かを判定してもよい。その場合、判定基準は、予め、点の情報から得られる特徴量もしくは特徴点の数、または、点の情報に基づいて認識されるオブジェクトと対応付けられているテーブルとしてメモリに保持されていてもよい。
三次元データ符号化装置は、例えば、地図情報の位置情報におけるオブジェクトを判定し、位置情報に基づくオブジェクトに基づき、CABAC初期化するか否かを判定してもよいし、三次元データを二次元に投影した情報あるいは特徴量に基づきCABAC初期化するか否かを判定してもよい。
次に、属性情報の符号化におけるCABAC初期化の判定条件について説明する。
三次元データ符号化装置は、例えば、1つ前のスライスの色の特性と当該スライスの色の特性とを比較し、色の特性の変化が所定の条件を満たす場合は、CABAC初期化しないほうが符号化効率が良いと判断し、CABAC初期化しないと判断してもよい。一方、三次元データ符号化装置は、色の特性の変化が所定の条件を満たさない場合は、CABAC初期化したほうが符号化効率が良いと判断し初期化すると判断してもよい。色の特性とは、例えば、輝度、色度、彩度、これらのヒストグラム、色の連続性などである。
ここで、他のスライスとは、例えば、復号処理順で1つ前のスライスであってもよいし、空間的に隣接するスライスであってもよい。また、三次元データ符号化装置は、他のスライスのデータ密度と比較しなくても、当該スライスのデータ密度が所定のデータ密度であるか否かに応じて、CABAC初期化するか否かを判定してもよい。
三次元データ符号化装置は、CABAC初期化すると判定した場合には、属性情報の符号化に用いるコンテキスト初期値を決定する。コンテキスト初期値は、データ密度に応じた符号化特性のよい初期値に設定される。三次元データ符号化装置は、あらかじめデータ密度に対する初期値テーブルを保持し、テーブルの中から最適な初期値を選択してもよい。
三次元データ符号化装置は、属性情報が反射率の場合は、反射率に基づく情報に応じてCABAC初期化するか否かを判定してもよい。
三次元データ符号化装置は、三次元点に複数の属性情報がある場合、属性情報毎に独立に、それぞれの属性情報に基づく初期化情報を決定してもよいし、あるいは、いずれか一方の属性情報に基づき、複数の属性情報の初期化情報を決定してもよいし、複数の属性情報を用いて当該複数の属性情報の初期化情報を決定してもよい。
位置情報の初期化情報は位置情報に基づき決定し、属性情報の初期化情報は属性情報に基づき決定する例を説明したが、位置情報に基づき、位置情報および属性情報の初期化情報を決定してもよいし、属性情報に基づき、位置情報および属性情報の初期化情報を決定してもよいし、両方の情報に基づき、位置情報および属性情報の初期化情報を決定してもよい。
三次元データ符号化装置は、例えば、cabac_init_flagをonまたはoffに設定したり、初期値テーブルの中から1以上の初期値を用いたりすることにより、あらかじめ符号化効率をシミュレートした結果に基づき、初期化情報を決定してもよい。
三次元データ符号化装置は、スライスまたはタイルなどへのデータ分割方法を位置情報または属性情報に基づき決定した場合、分割方法の決定に基づく情報と同じ情報に基づいて初期化情報を決定してもよい。
図65は、タイルおよびスライスの例を示す図である。
例えば、PCCデータの一部を有する1つのタイルにおけるスライスは、凡例に示されているように識別される。CABAC初期化フラグは、連続するスライスにおいてコンテキストの再初期化が必要か否かの判定に用いることができる。例えば、図65において、一つのタイルの中に、オブジェクト(移動体、歩道、建物、木、その他のオブジェクト)毎に分割されたスライスデータが含まれる場合、移動体、歩道、木のスライスのCABAC初期化フラグは1に設定され、建物やその他のスライスのCABAC初期化フラグは0に設定される。これは、例えば、歩道と建物とが、両方とも密な永久構造であり同様の符号化効率を有する可能性がある場合、歩道と建物のスライス間でCABACを再初期化しないことで符号化効率を向上できる可能性がある。一方、建物と木とで、密度および符号化効率大きく異なる可能性がある場合、建物と木のスライス間でCABACを初期化することで符号化効率を向上できる可能性がある。
図66は、CABACの初期化およびコンテキスト初期値の決定方法の一例を示すフローチャートである。
まず、三次元データ符号化装置は、位置情報から判定したオブジェクトに基づいて、点群データをスライスに分割する(S5271)。
次に、三次元データ符号化装置は、スライス毎に、当該スライスのオブジェクトのデータ密度に基づき、位置情報の符号化と属性情報の符号化のCABAC初期化するか否かを判定する(S5272)。つまり、三次元データ符号化装置は、位置情報に基づき、位置情報の符号化と属性情報の符号化のCABAC初期化情報(CABAC初期化フラグ)を決定する。三次元データ符号化装置は、例えば、点群データ密度で、符号化効率のよい初期化を判定する。なお、CABAC初期化情報は、位置情報と属性情報とで共通のcabac_init_flagに示されても良い。
次に、三次元データ符号化装置は、CABAC初期化すると判定した場合(S5273でYes)、位置情報の符号化のコンテキスト初期値を決定する(S5274)。
次に、三次元データ符号化装置は、属性情報の符号化のコンテキスト初期値を決定する(S5275)。
次に、三次元データ符号化装置は、位置情報のCABAC初期化フラグを1に設定し、位置情報のコンテキスト初期値を設定するとともに、属性情報のCABAC初期化フラグを1に設定し、属性情報のコンテキスト初期値を設定する(S5276)。なお、CABAC初期化する場合、三次元データ符号化装置は、位置情報の符号化および属性情報の符号化のそれぞれにおいて、コンテキスト初期値を用いて初期化処理を実施する。
一方で、三次元データ符号化装置は、CABAC初期化しないと判定した場合(S5273でNo)、位置情報のCABAC初期化フラグを0に設定し、属性情報のCABAC初期化フラグを0に設定する(S5277)。
図67は、LiDARで得られた点群データを上面視した地図をタイルに分割した場合の例を示す図である。図68は、CABAC初期化およびコンテキスト初期値の決定方法の他の一例を示すフローチャートである。
三次元データ符号化装置は、大規模地図データにおいて、位置情報に基づき、上面視における二次元の分割方法で、点群データを1以上のタイルに分割する(S5281)。三次元データ符号化装置は、例えば、図67に示すような正方形の領域で分割してもよい。また、三次元データ符号化装置は、点群データを、様々な形状、大きさのタイルに分割してもよい。タイルの分割は、あらかじめ定められた1以上の方法で行われてもよいし、適応的に行われてもよい。
次に、三次元データ符号化装置は、タイル毎に、タイル内のオブジェクトを判定し、当該タイルの位置情報の符号化または属性情報の符号化で、CABAC初期化するか否かを判定する(S5282)。なお、三次元データ符号化装置は、スライス分割の場合は、オブジェクト(木、人、移動体、建物)を認識し、オブジェクトに応じてスライス分割および初期値の判定をする。
三次元データ符号化装置は、CABAC初期化すると判定した場合(S5283でYes)、位置情報の符号化のコンテキスト初期値を決定する(S5284)。
次に、三次元データ符号化装置は、属性情報の符号化のコンテキスト初期値を決定する(S5285)。
ステップS5284およびS5285では、初期値として、特定の符号化特性を持つタイルの初期値を記憶しておき、同一の符号化特性を持つタイルの初期値として用いても良い。
次に、三次元データ符号化装置は、位置情報のCABAC初期化フラグを1に設定し、位置情報のコンテキスト初期値を設定するとともに、属性情報のCABAC初期化フラグを1に設定し、属性情報のコンテキスト初期値を設定する(S5286)。なお、CABAC初期化する場合、三次元データ符号化装置は、位置情報の符号化および属性情報の符号化のそれぞれにおいて、コンテキスト初期値を用いて初期化処理を実施する。
一方で、三次元データ符号化装置は、CABAC初期化しないと判定した場合(S5283でNo)、位置情報のCABAC初期化フラグを0に設定し、属性情報のCABAC初期化フラグを0に設定する(S5287)。
(実施の形態7)
以下、量子化パラメータについて説明する。
点群データの特性および位置に基づき点群データを分割するために、スライスおよびタイルが用いられる。ここで、ハードウェアの制限、および、リアルタイム処理の要件により、それぞれの分割された点群データに求められる品質が異なる場合がある。例えば、オブジェクト毎にスライスに分割して符号化する場合、植物を含むスライスデータは、それほど重要でないため、量子化することにより解像度(品質)を落とすことができる。一方、重要なスライスデータは量子化の値を低い値に設定することで高い解像度(品質)とすることができる。このような量子化値のコントロールを可能とするために量子化パラメータが用いられる。
ここで、量子化の対象となるデータと、量子化に用いられるスケールと、量子化によって算出される結果である量子化データとは、以下の(式G1)と(式G2)で表される。
量子化データ=データ/スケール (式G1)
データ=量子化データ*スケール (式G2)
図69は、データを量子化する量子化部5323、および、量子化データを逆量子化する逆量子化部5333の処理について説明するための図である。
量子化部5323は、スケールを用いてデータを量子化する、つまり、式G1を用いる処理を行うことで、データが量子化された量子化データを算出する。
逆量子化部5333は、スケールを用いて量子化データを逆量子化する、つまり、式G2を用いる処理を行うことで、量子化データが逆量子化されたデータを算出する。
また、スケールと、量子化値(QP(Quantization Parameter)値)とは、以下の(式G3)で表される。
量子化値(QP値)=log(スケール) (式G3)
量子化値(QP値)=デフォルト値(基準値)+量子化デルタ(差分情報) (式G4)
また、これらのパラメータを総称して量子化パラメータ(Quantization Parameter)と呼ぶ。
例えば、図70に示されるように、量子化値は、デフォルト値を基準とした値であり、デフォルト値に量子化デルタを加算することで算出される。量子化値がデフォルト値よりも小さい値である場合には、量子化デルタは負の値となる。量子化値がデフォルト値よりも大きい値である場合には、量子化デルタは正の値となる。量子化値がデフォルト値と等しい場合には、量子化デルタは0となる。量子化デルタが0である場合、量子化デルタは、なくてもよい。
符号化処理について説明する。図71は、本実施の形態に係る三次元データ符号化装置に含まれる第1の符号化部5300の構成を示すブロック図である。図72は、本実施の形態に係る分割部5301の構成を示すブロック図である。図73は、本実施の形態に係る位置情報符号化部5302および属性情報符号化部5303の構成を示すブロック図である。
第1の符号化部5300は、点群データを第1の符号化方法(GPCC(Geometry based PCC))で符号化することで符号化データ(符号化ストリーム)を生成する。この第1の符号化部5300は、分割部5301と、複数の位置情報符号化部5302と、複数の属性情報符号化部5303と、付加情報符号化部5304と、多重化部5305とを含む。
分割部5301は、点群データを分割することで複数の分割データを生成する。具体的には、分割部5301は、点群データの空間を複数のサブ空間に分割することで複数の分割データを生成する。ここでサブ空間とは、タイル及びスライスの一方、又はタイル及びスライスの組み合わせである。より具体的には、点群データは、位置情報、属性情報、及び付加情報を含む。分割部5301は、位置情報を複数の分割位置情報に分割し、属性情報を複数の分割属性情報に分割する。また、分割部5301は、分割に関する付加情報を生成する。
分割部5301は、図72に示すように、タイル分割部5311と、スライス分割部5312とを含む。例えば、タイル分割部5311は、点群をタイルに分割する。タイル分割部5311は、分割した各タイルに用いる量子化値をタイル付加情報として決定してもよい。
スライス分割部5312は、タイル分割部5311により得られたタイルを、さらにスライスに分割する。スライス分割部5312は、分割した各スライスに用いる量子化値をスライス付加情報として決定してもよい。
複数の位置情報符号化部5302は、複数の分割位置情報を符号化することで複数の符号化位置情報を生成する。例えば、複数の位置情報符号化部5302は、複数の分割位置情報を並列処理する。
位置情報符号化部5302は、図73に示すように、量子化値算出部5321と、エントロピ符号化部5322とを含む。量子化値算出部5321は、符号化される分割位置情報の量子化値(量子化パラメータ)を取得する。エントロピ符号化部5322は、量子化値算出部5321により取得された量子化値(量子化パラメータ)を用いて、分割位置情報を量子化することで、量子化位置情報を算出する。
複数の属性情報符号化部5303は、複数の分割属性情報を符号化することで複数の符号化属性情報を生成する。例えば、複数の属性情報符号化部5303は、複数の分割属性情報を並列処理する。
属性情報符号化部5303は、図73に示すように、量子化値算出部5331と、エントロピ符号化部5332とを含む。量子化値算出部5331は、符号化される分割属性情報の量子化値(量子化パラメータ)を取得する。エントロピ符号化部5332は、量子化値算出部5331により取得された量子化値(量子化パラメータ)を用いて、分割属性情報を量子化することで、量子化属性情報を算出する。
付加情報符号化部5304は、点群データに含まれる付加情報と、分割部5301で分割時に生成された、データ分割に関する付加情報とを符号化することで符号化付加情報を生成する。
多重化部5305は、複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を多重化することで符号化データ(符号化ストリーム)を生成し、生成した符号化データを送出する。また、符号化付加情報は復号時に使用される。
なお、図71では、位置情報符号化部5302及び属性情報符号化部5303の数がそれぞれ2つの例を示しているが、位置情報符号化部5302及び属性情報符号化部5303の数は、それぞれ1つであってもよいし、3つ以上であってもよい。また、複数の分割データは、CPU内の複数コアのように同一チップ内で並列処理されてもよいし、複数のチップのコアで並列処理されてもよいし、複数チップの複数コアで並列処理されてもよい。
次に、復号処理について説明する。図74は、第1の復号部5340の構成を示すブロック図である。図75は、位置情報復号部5342および属性情報復号部5343の構成を示すブロック図である。
第1の復号部5340は、点群データが第1の符号化方法(GPCC)で符号化されることで生成された符号化データ(符号化ストリーム)を復号することで点群データを復元する。この第1の復号部5340は、逆多重化部5341と、複数の位置情報復号部5342と、複数の属性情報復号部5343と、付加情報復号部5344と、結合部5345とを含む。
逆多重化部5341は、符号化データ(符号化ストリーム)を逆多重化することで複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を生成する。
複数の位置情報復号部5342は、複数の符号化位置情報を復号することで複数の量子化位置情報を生成する。例えば、複数の位置情報復号部5342は、複数の符号化位置情報を並列処理する。
位置情報復号部5342は、図75に示すように、量子化値算出部5351と、エントロピ復号部5352とを含む。量子化値算出部5351は、量子化位置情報の量子化値を取得する。エントロピ復号部5352は、量子化値算出部5351により取得された量子化値を用いて、量子化位置情報を逆量子化することで、位置情報を算出する。
複数の属性情報復号部5343は、複数の符号化属性情報を復号することで複数の分割属性情報を生成する。例えば、複数の属性情報復号部5343は、複数の符号化属性情報を並列処理する。
属性情報復号部5343は、図75に示すように、量子化値算出部5361と、エントロピ復号部5362とを含む。量子化値算出部5361は、量子化属性情報の量子化値を取得する。エントロピ復号部5362は、量子化値算出部5361により取得された量子化値を用いて、量子化属性情報を逆量子化することで、属性情報を算出する。
複数の付加情報復号部5344は、符号化付加情報を復号することで付加情報を生成する。
結合部5345は、付加情報を用いて複数の分割位置情報を結合することで位置情報を生成する。結合部5345は、付加情報を用いて複数の分割属性情報を結合することで属性情報を生成する。例えば、結合部5345は、まず、スライス付加情報を用いて、スライスに対する復号された点群データを結合することでタイルに対応する点群データを生成する。次に、結合部5345は、タイル付加情報を用いて、タイルに対応する点群データを結合することで元の点群データを復元する。
なお、図74では、位置情報復号部5342及び属性情報復号部5343の数がそれぞれ2つの例を示しているが、位置情報復号部5342及び属性情報復号部5343の数は、それぞれ1つであってもよし、3つ以上であってもよい。また、複数の分割データは、CPU内の複数コアのように同一チップ内で並列処理されてもよいし、複数のチップのコアで並列処理されてもよい、複数チップの複数コアで並列処理されてもよい。
[量子化パラメータの決定方法]
図76は、位置情報(Geometry)の符号化あるいは属性情報(Attribute)の符号化における量子化値(Quantization Parameter値:QP値)の決定に関する処理の一例を示すフローチャートである。
QP値は、例えばPCCフレームを構成する位置情報のデータ単位毎、あるいは属性情報のデータ単位毎に符号化効率を考慮して決定される。データ単位が分割されたタイル単位、あるいは、分割されたスライス単位である場合には、QP値は、分割のデータ単位の符号化効率を考慮し、分割のデータ単位で決定される。また、QP値は、分割前のデータ単位で決定されてもよい。
図76に示すように、三次元データ符号化装置は、位置情報の符号化に使用するQP値を決定する(S5301)。三次元データ符号化装置は、QP値の決定を、分割された複数のスライス毎に、所定の方法に基づいて行ってもよい。具体的には、三次元データ符号化装置は、位置情報のデータの特徴または品質に基づいて、QP値を決定する。三次元データ符号化装置は、例えば、データ単位毎に、点群データの密度、つまり、スライスに属する単位領域あたりの点の数を判定し、点群データの密度に対応する値をQP値として決定してもよい。あるいは、三次元データ符号化装置は、点群データの点の数、点の分布、点の偏り、または、点の情報から得られる特徴量、特徴点の数、あるいは認識されるオブジェクトに基づき、対応する値をQP値として決定してもよい。また、三次元データ符号化装置は、地図の位置情報におけるオブジェクトを判定し、位置情報に基づくオブジェクトに基づきQP値を決定してもよいし、三次元点群を二次元に投影した情報あるいは特徴量に基づきQP値を決定してもよい。対応するQP値は、あらかじめ、点群データの密度、点の数、点の分布、または点の偏りと対応付けられているテーブルとしてメモリに保持されていてもよい。また、対応するQP値は、予め、点の情報から得られる特徴量もしくは特徴点の数、または、点の情報に基づいて認識されるオブジェクトと対応付けられているテーブルとしてメモリに保持されていてもよい。また、対応するQP値は、点群データの位置情報を符号化する際に、様々なQP値で符号化率などをシミュレーションした結果に基づき決定されてもよい。
次に、三次元データ符号化装置は、位置情報のQP値の基準値(デフォルト値)および差分情報(量子化デルタ)を決定する(S5302)。三次元データ符号化装置は、具体的には、決定したQP値および所定の方法を用いて、伝送する基準値および差分情報を決定し、決定した基準値および差分情報を、付加情報およびデータのヘッダの少なくとも一方に設定(追加)する。
次に、三次元データ符号化装置は、属性情報の符号化に使用するQP値を決定する(S5303)。三次元データ符号化装置は、QP値の決定を、分割された複数のスライス毎に、所定の方法に基づいて行ってもよい。具体的には、三次元データ符号化装置は、属性情報のデータの特徴または品質に基づいて、QP値を決定する。三次元データ符号化装置は、例えば、データ単位毎に、属性情報の特性に基づいて、QP値を決定してもよい。色の特性とは、例えば、輝度、色度、彩度、これらのヒストグラム、色の連続性などである。属性情報が反射率の場合は、反射率に基づく情報に応じて判定してもよい。三次元データ符号化装置は、例えば、点群データからオブジェクトとして顔を検出した場合、顔を検出したオブジェクトを構成する点群データに対して、品質のよいQP値を決定してもよい。このように、三次元データ符号化装置は、オブジェクトの種類に応じて、オブジェクトを構成する点群データに対するQP値を決定してもよい。
また、三次元データ符号化装置は、三次元点に複数の属性情報がある場合、属性情報毎に独立に、それぞれの属性情報に基づくQP値を決定してもよいし、あるいは、いずれか一方の属性情報に基づき、複数の属性情報のQP値を決定してもよいし、複数の属性情報を用いて当該複数の属性情報のQP値を決定してもよい。
次に、三次元データ符号化装置は、属性情報のQP値の基準値(デフォルト値)および差分情報(量子化デルタ)を決定する(S5304)。三次元データ符号化装置は、具体的には、決定したQP値および所定の方法を用いて、伝送する基準値および差分情報を決定し、決定した基準値および差分情報を、付加情報およびデータのヘッダの少なくとも一方に設定(追加)する。
そして、三次元データ符号化装置は、それぞれ、決定された位置情報および属性情報のQP値に基づき、位置情報および属性情報を量子化し、符号化する(S5305)。
なお、位置情報のQP値は、位置情報に基づいて決定され、属性情報のQP値は、属性情報に基づいて決定される例を説明したが、これに限らない。例えば、位置情報および属性情報のQP値は、位置情報に基づいて決定されてもよいし、属性情報に基づいて決定されてもよいし、位置情報および属性情報に基づいて決定されてもよい。
なお、位置情報および属性情報のQP値は、点群データにおける、位置情報の品質と属性情報の品質とのバランスを考慮して調整されてもよい。例えば、位置情報および属性情報のQP値は、位置情報の品質が高く設定され、かつ、属性情報の品質が位置情報の品質より低く設定されるように決定されてもよい。例えば、属性情報のQP値は、位置情報のQP値以上という制約された条件を満たすように決定されてもよい。
また、QP値は、符号化データがあらかじめ定められた所定のレートの範囲内に収まるように符号化されるように調整されてもよい。QP値は、例えば、ひとつ前のデータ単位の符号化で符号量が所定のレートを超えそうな場合、つまり、所定のレートまでの差が第一の差分未満である場合、データ単位の符号量が第一の差分未満となるよう符号化品質が低下するように調整されてもよい。一方で、QP値は、所定のレートまでの差が、第一の差分よりも大きい第二の差分より大きく、十分に大きな差がある場合、データ単位の符号化品質が向上するように調整されてもよい。データ単位の間の調整は、例えばPCCフレーム間であってもよいし、タイルの間やスライスの間であってもよい。属性情報のQP値の調整は、位置情報の符号化のレートに基づいて調整されてもよい。
なお、図76におけるフローチャートにおいて、位置情報に係る処理と属性情報に係る処理の処理順は、反対でも良いし、並列でもよい。
なお、図76におけるフローチャートでは、スライス単位の処理を例にしているが、タイル単位や、その他のデータ単位での処理の場合もスライス単位と同様に処理することができる。つまり、図76のフローチャートのスライスは、タイルまたは他のデータ単位と読み替えることができる。
図77は、位置情報および属性情報の復号処理の一例を示すフローチャートである。
図77に示すように、三次元データ復号装置は、位置情報のQP値を示す基準値および差分情報と、属性情報のQP値を示す基準値および差分情報とを取得する(S5311)。具体的には、三次元データ復号装置は、伝送されるメタデータ、符号化データのヘッダのいずれか一方または両方を解析し、QP値を導出するための基準値および差分情報を取得する。
次に、三次元データ復号装置は、取得した基準値および差分情報を用いて、所定の方法に基づいて、QP値を導出する(S5312)。
そして、三次元データ復号装置は、量子化位置情報を取得し、導出されたQP値を用いて量子化位置情報を逆量子化することで、位置情報を復号する(S5313)。
次に、三次元データ復号装置は、量子化属性情報を取得し、導出されたQP値を用いて量子化属性情報を逆量子化することで、属性情報を復号する(S5314)。
次に、量子化パラメータの伝送方法について説明する。
図78は、量子化パラメータの伝送方法の第1の例について説明するための図である。図78の(a)は、QP値の関係の一例を示す図である。
図78において、QGおよびQAは、それぞれ、位置情報の符号化に用いるQP値の絶対値、および、属性情報の符号化に用いるQP値の絶対値を示す。QGは、複数の三次元点のそれぞれの位置情報を量子化するために用いられる第1量子化パラメータの一例である。また、Δ(QA,QG)は、QAの導出に用いるQGとの差分を示す差分情報を示す。つまり、QAは、QGとΔ(QA,QG)とを用いて導出される。このように、QP値は、基準値(絶対値)と差分情報(相対値)とに分けて伝送される。また、復号では、伝送された基準値および差分情報から所望のQP値を導出する。
例えば、図78の(a)では、絶対値QGと差分情報Δ(QA,QG)とが伝送され、復号では、下記の(式G5)で示すように、QAは、QGにΔ(QA,QG)を加算することで導出される。
QA=QG+Δ(QA,QG) (式G5)
図78の(b)および(c)を用いて位置情報および属性情報からなる点群データをスライス分割する場合のQP値の伝送方法を説明する。図78の(b)は、各QP値の基準値と差分情報との関係の第1の例を示す図である。図78の(c)は、QP値、位置情報、および、属性情報の伝送順の第1の例を示す図である。
QP値は、位置情報毎、および、属性情報毎に、大きく、PCCのフレーム単位のQP値(フレームQP)と、データ単位のQP値(データQP)に分かれている。データ単位のQP値は、図76のステップS5301で決定した、符号化に用いるQP値である。
ここでは、PCCフレーム単位の位置情報の符号化に用いるQP値であるQGを基準値とし、データ単位のQP値をQGからの差分を示す差分情報として生成し、送出する。
QG:PCCフレームにおける位置情報の符号化のQP値・・・GPSを用いて基準値「1.」として送出される
QA:PCCフレームにおける属性情報の符号化のQP値・・・APSを用いてQGからの差分を示す差分情報「2.」として送出される
QGs1,QGs2:スライスデータにおける位置情報の符号化のQP値…位置情報の符号化データのヘッダを用いて、QGからの差分を示す差分情報「3.」および「5.」として送出される
QAs1,QAs2:スライスデータにおける属性情報の符号化のQP値…属性情報の符号化データのヘッダを用いて、QAからの差分を示す差分情報「4.」および「6.」として送出される
なお、フレームQPの導出に用いる情報は、フレームに係るメタデータ(GPS,APS)に記載され、データQPの導出に用いる情報は、データに係るメタデータ(符号化データのヘッダ)に記載される。
このように、データQPは、フレームQPからの差分を示す差分情報として生成され、送出される。よって、データQPのデータ量を削減することができる。
第1の復号部5340は、それぞれの符号化データにおいて、図78の(c)の矢印で示したメタデータを参照し、当該符号化データに対応する基準値および差分情報を取得する。そして、第1の復号部5340は、取得した基準値および差分情報に基づいて、復号対象の符号化データに対応するQP値を導出する。
第1の復号部5340は、例えば、図78の(c)において矢印で示した基準情報「1.」および差分情報「2.」、「6.」をメタデータあるいはヘッダから取得し、下記の(式G6)で示すように、基準情報「1.」に差分情報「2.」および「6.」を加算することで、As2のQP値を導出する。
QAS2=QG+Δ(QA,QG)+Δ(QAs2,QA) (式G6)
点群データは、位置情報と0以上の属性情報とを含む。すなわち、点群データは、属性情報を持たない場合もあれば、複数の属性情報を持つ場合もある。
例えば、1つの三次元点に対して、属性情報として、色情報を持つ場合、色情報と反射情報とを持つ場合、1以上の視点情報にそれぞれ紐づく1以上の色情報を持つ場合などがある。
ここで、2つの色情報、および反射情報を持つ場合の例について、図79を用いて説明する。図79は、量子化パラメータの伝送方法の第2の例について説明するための図である。図79の(a)は、各QP値の基準値と差分情報との関係の第2の例を示す図である。図79の(b)は、QP値、位置情報、および、属性情報の伝送順の第2の例を示す図である。
QGは、図78と同様に、第1量子化パラメータの一例である。
2つの色情報のそれぞれは、輝度(ルマ)Yと色差(クロマ)Cb、Crとで示される。第1の色の輝度Y1の符号化に用いるQP値であるQY1は、基準値であるQGと、その差分を示すΔ(QY1、QG)とを用いて導出される。輝度Y1は、第1輝度の一例であり、QY1は、第1輝度としての輝度Y1を量子化するために用いられる第2量子化パラメータの一例である。Δ(QY1、QG)は、差分情報「2.」である。
また、第1の色の色差Cb1、Cr1の符号化に用いるQP値であるQCb1、QCr1は、それぞれ、QY1と、その差分を示すΔ(QCb1,QY1)、Δ(QCr1,QY1)とを用いて導出される。色差Cb1、Cr1は、第1色差の一例であり、QCb1、QCr1は、第1色差としての色差Cb1、Cr1を量子化するために用いられる第3量子化パラメータの一例である。Δ(QCb1,QY1)は、差分情報「3.」であり、Δ(QCr1,QY1)は、差分情報「4.」である。Δ(QCb1,QY1)およびΔ(QCr1,QY1)は、それぞれ、第1差分の一例である。
なお、QCb1およびQCr1は、互いに同じ値が用いられてもよく、共通する値が用いられてもよい。共通する値が用いられる場合、QCb1およびQCr1の一方が用いられればよいため、他方はなくてもよい。
また、スライスデータにおける第1の色の輝度Y1Dの符号化に用いるQP値であるQY1Dは、QY1と、その差分を示すΔ(QY1D,QY1)とを用いて導出される。スライスデータにおける第1の色の輝度Y1Dは、サブ空間に含まれる1以上の三次元点の第1輝度の一例であり、QY1Dは、輝度Y1Dを量子化するために用いられる第5量子化パラメータの一例である。Δ(QY1D,QY1)は、差分情報「10.」であり、第2差分の一例である。
同様に、スライスデータにおける第1の色の色差Cb1D、Cr1Dの符号化に用いるQP値であるQCb1D、QCr1Dは、それぞれ、QCb1、QCr1と、その差分を示すΔ(QCb1D,QCb1)、Δ(QCr1D,QCr1)とを用いて導出される。スライスデータにおける第1の色の色差Cb1D、Cr1Dは、サブ空間に含まれる1以上の三次元点の第1色差の一例であり、QCb1D、QCr1Dは、色差Cb1D、Cr1Dを量子化するために用いられる第6量子化パラメータの一例である。Δ(QCb1D,QCb1)は、差分情報「11.」であり、Δ(QCr1D,QCr1)は、差分情報「12.」である。Δ(QCb1D,QCb1)およびΔ(QCr1D,QCr1)は、第3差分の一例である。
第1の色におけるQP値の関係は、第2の色にも同様のことが言えるため、説明を省略する。
反射率Rの符号化に用いるQP値であるQRは、基準値であるQGと、その差分を示すΔ(QR,QG)とを用いて導出される。QRは、反射率Rを量子化するために用いられる第4量子化パラメータの一例である。Δ(QR,QG)は、差分情報「8.」である。
また、スライスデータにおける反射率RDの符号化に用いるQP値であるQRDは、QRと、その差分を示すΔ(QRD,QR)とを用いて導出される。Δ(QRD,QR)は、差分情報「16.」である。
このように、差分情報「9.」~「16.」は、データQPとフレームQPとの差分情報を示す。
なお、例えば、データQPとフレームQPとの値が同一の値であるような場合は、差分情報を0としてもよいし、差分情報を送出しないことにより0とみなすとしてもよい。
第1の復号部5340は、例えば、第2の色の色差Cr2を復号する際、図79の(b)の矢印で示した基準情報「1.」および差分情報「5.」、「7.」および「15.」をメタデータあるいはヘッダから取得し、下記の(式G7)で示すように、基準情報「1.」に差分情報「5.」、「7.」および「15.」を加算することで、色差Cr2のQP値を導出する。
QCr2D=QG+Δ(QY2,QG)+Δ(QCr2,QY2)+Δ(QCr2D,QCr2) (式G7)
次に、位置情報および属性情報をタイルに2分割した後に、スライスに2分割する場合の例について図80を用いて説明する。図80は、量子化パラメータの伝送方法の第3の例について説明するための図である。図80の(a)は、各QP値の基準値と差分情報との関係の第3の例を示す図である。図80の(b)は、QP値、位置情報、および、属性情報の伝送順の第3の例を示す図である。図80の(c)は、第3の例における、差分情報の中間生成値について説明するための図である。
複数のタイルに分割した後に、さらに複数のスライスに分割する場合、図80の(c)に示すように、タイルに分割した後にタイル毎のQP値(QAt1)および差分情報Δ(QAt1,QA)が中間生成値として生成される。そして、スライスに分割した後にスライス毎のQP値(QAt1s1,QAt1s2)および差分情報(Δ(QAt1s1,QAt1),Δ(QAt1s2,QAt1))が生成される。
この場合、例えば、図80の(a)における、差分情報「4.」は、以下の(式G8)で導出される。
Δ(QAt1s1,QA)=Δ(QAt1,QA)+Δ(QAt1s1,QAt1) (式G8)
第1の復号部5340は、例えば、タイル2におけるスライス1の属性情報At2s1を復号する際、図80の(b)の矢印で示した基準情報「1.」および差分情報「2.」、「8.」をメタデータあるいはヘッダから取得し、下記の(式G9)で示すように、基準情報「1.」に差分情報「2.」、「8.」を加算することで、属性情報At2s1のQP値を導出する。
QAt2s1=QG+Δ(QAt2s1,QA)+Δ(QA,QG) (式G9)
次に、本実施の形態に係る点群データの符号化処理及び復号処理の流れについて説明する。図81は、本実施の形態に係る点群データの符号化処理のフローチャートである。
まず、三次元データ符号化装置は、使用する分割方法を決定する(S5321)。この分割方法は、タイル分割を行うか否か、スライス分割を行うか否かを含む。また、分割方法は、タイル分割又はスライス分割を行う場合の分割数、及び、分割の種別等を含んでもよい。分割の種別とは、上述したようなオブジェクト形状に基づく手法、地図情報或いは位置情報に基づく手法、又は、データ量或いは処理量に基づく手法等である。なお、分割方法は、予め定められていてもよい。
タイル分割が行われる場合(S5322でYes)、三次元データ符号化装置は、位置情報と属性情報とをタイル単位で分割することで複数のタイル位置情報及び複数のタイル属性情報を生成する(S5323)。また、三次元データ符号化装置は、タイル分割に係るタイル付加情報を生成する。
スライス分割が行われる場合(S5324でYes)、三次元データ符号化装置は、複数のタイル位置情報及び複数のタイル属性情報(又は位置情報及び属性情報)を分割することで複数の分割位置情報及び複数の分割属性情報を生成する(S5325)。また、三次元データ符号化装置は、スライス分割に係る位置スライス付加情報及び属性スライス付加情報を生成する。
次に、三次元データ符号化装置は、複数の分割位置情報及び複数の分割属性情報の各々を符号化することで、複数の符号化位置情報及び複数の符号化属性情報を生成する(S5326)。また、三次元データ符号化装置は、依存関係情報を生成する。
次に、三次元データ符号化装置は、複数の符号化位置情報、複数の符号化属性情報及び付加情報をNALユニット化(多重化)することで符号化データ(符号化ストリーム)を生成する(S5327)。また、三次元データ符号化装置は、生成した符号化データを送出する。
図82は、タイルの分割(S5323)またはスライスの分割(S5325)において、QP値を決定し、付加情報を更新する処理の一例を示すフローチャートである。
ステップS5323、S5325では、タイルおよび/またはスライスの位置情報および属性情報は、それぞれの方法で独立して個別に分割してもよいし、共通して一括で分割してもよい。これにより、タイル毎および/またはスライス毎に分割された付加情報が生成される。
このとき、三次元データ符号化装置は、分割されたタイル毎および/またはスライス毎に、QP値の基準値および差分情報を決定する(S5331)。具体的には、三次元データ符号化装置は、図78~図80で例示したような、基準値および差分情報を決定する。
そして、三次元データ符号化装置は、決定した基準値および差分情報が含まれるように付加情報を更新する(S5332)。
図83は、符号化(S5326)の処理において、決定されたQP値を符号化する処理の一例を示すフローチャートである。
三次元データ符号化装置は、ステップS5331で決定されたQP値を符号化する(S5341)。具体的には、三次元データ符号化装置は、更新された付加情報に含まれるQP値の基準値および差分情報を符号化する。
そして、三次元データ符号化装置は、符号化処理の停止条件が満たされるまで、例えば、符号化対象のデータがなくなるまで、符号化処理を継続する(S5342)。
図84は、本実施の形態に係る点群データの復号処理のフローチャートである。まず、三次元データ復号装置は、符号化データ(符号化ストリーム)に含まれる、分割方法に係る付加情報(タイル付加情報、位置スライス付加情報及び属性スライス付加情報)を解析することで、分割方法を判定する(S5351)。この分割方法は、タイル分割を行うか否か、スライス分割を行うか否かを含む。また、分割方法は、タイル分割又はスライス分割を行う場合の分割数、及び、分割の種別等を含んでもよい。
次に、三次元データ復号装置は、符号化データに含まれる複数の符号化位置情報及び複数の符号化属性情報を、符号化データに含まれる依存関係情報を用いて復号することで分割位置情報及び分割属性情報を生成する(S5352)。
付加情報によりスライス分割が行われていることが示される場合(S5353でYes)、三次元データ復号装置は、位置スライス付加情報及び属性スライス付加情報に基づき、複数の分割位置情報と、複数の分割属性情報とを結合することで、複数のタイル位置情報及び複数のタイル属性情報を生成する(S5354)。
付加情報によりタイル分割が行われていることが示される場合(S5355でYes)、三次元データ復号装置は、タイル付加情報に基づき、複数のタイル位置情報及び複数のタイル属性情報(複数の分割位置情報及び複数の分割属性情報)を結合することで位置情報及び属性情報を生成する(S5356)。
図85は、スライス毎に分割された情報の結合(S5354)またはタイル毎に分割された情報の結合(S5356)において、QP値を取得して、スライスまたはタイルのQP値を復号する処理の一例を示すフローチャートである。
スライスまたはタイルの位置情報および属性情報は、それぞれの方法を用いて結合してもよいし、同一の方法で結合してもよい。
三次元データ復号装置は、符号化ストリームの付加情報から、基準値および差分情報を復号する(S5361)。
次に、三次元データ復号装置は、復号された基準値および差分情報を用いて量子化値を算出し、逆量子化に用いるQP値を、算出されたQP値に更新する(S5362)。これにより、タイル毎またはスライス毎の量子化属性情報を逆量子化するためのQP値を導出することができる。
そして、三次元データ復号装置は、復号処理の停止条件が満たされるまで、例えば、復号対象のデータがなくなるまで、復号処理を継続する(S5363)。
図86は、GPSのシンタックス例を示す図である。図87は、APSのシンタックス例を示す図である。図88は、位置情報のヘッダのシンタックス例を示す図である。図89は、属性情報のヘッダのシンタックス例を示す図である。
図86に示すように、例えば、位置情報の付加情報であるGPSは、QP値の導出の基準となる絶対値を示すQP_valueを含む。QP valueは、例えば、図78~図80で例示したQGに相当する。
また、図87に示すように、例えば、属性情報の付加情報であるAPSは、三次元点に複数視点の複数の色情報がある場合、デフォルトの視点を定義し、0番目は必ずデフォルト視点の情報を記載するとしてもよい。例えば、三次元データ符号化装置は、単一の色情報を復号または表示する場合、0番目の属性情報を復号または表示すればよい。
APSは、QP_delta_Attribute_to_Geometryを含む。QP_delta_Attribute_to_Geometryは、GPSに記載の基準値(QP_value)との差分情報を示す。この差分情報は、例えば、属性情報が色情報である場合、輝度との差分情報である。
また、GPSは、Geometry_header(位置情報のヘッダ)にQP値を算出するための差分情報があるか否かを示すフラグを含んでいてもよい。また、APSは、Attribute_header(属性情報のヘッダ)にQP値を算出するための差分情報があるか否かを示すフラグを含んでいてもよい。フラグは、属性情報において、データQPを算出するための、データQPの、フレームQPからの差分情報があるか否かを示していてもよい。
このように、符号化ストリームには、属性情報のうちの第1の色が第1輝度および第1色差で示される場合、第1輝度を量子化するための第2量子化パラメータを用いた量子化、および、第1色差を量子化するための第3量子化パラメータを用いた量子化において、第5量子化パラメータおよび第6量子化パラメータを用いて量子化した場合、第5量子化パラメータおよび第6量子化パラメータを用いて量子化したことを示す識別情報(フラグ)が含まれていてもよい。
また、図88に示すように、位置情報のヘッダは、GPSに記載の基準値(QP_value)との差分情報を示す、QP_delta_data_to_frameを含んでいてもよい。また、位置情報のヘッダは、タイル毎および/またはスライス毎の情報に分け、タイル毎および/またはスライス毎に、対応するQP値がそれぞれ示されても良い。
また、図89に示すように、属性情報のヘッダは、APSに記載のQP値との差分情報を示す、QP_delta_data_to_frameを含んでいてもよい。
図78~図80では、QP値の基準値をPCCフレームにおける位置情報のQP値であるとして説明したが、これに限らずに、その他の値を基準値として用いても良い。
図90は、量子化パラメータの伝送方法の他の例について説明するための図である。
図90の(a)および(b)は、PCCフレームにおける位置情報および属性情報のQP値で共通の基準値Qを設定する第4の例を示す。第4の例では、基準値QをGPSに格納し、基準値Qからの、位置情報のQP値(QG)の差分情報をGPSに格納し、属性情報のQP値(QYおよびQR)の差分情報をAPSに格納する。なお、基準値Qは、SPSに格納されてもよい。
図90の(c)および(d)は、位置情報および属性情報毎に独立に基準値を設定する第5の例を示す。第5の例では、GPSおよびAPSに、位置情報および属性情報の基準のQP値(絶対値)をそれぞれ格納する。つまり、位置情報には、基準値QGが設定され、属性情報の色情報には、基準値QYが設定され、属性情報の反射率には、基準値QRがそれぞれ設定される。このように、位置情報および複数種類の属性情報のそれぞれについて、QP値の基準値が設定されてもよい。なお、第5の例は、他の例と組み合わせられてもよい。つまり、第1の例におけるQA、第2の例におけるQY1、QY2、QRは、QP値の基準値であってもよい。
図90の(e)および(f)は、PCCフレームが複数ある場合、複数のPCCフレームで共通の基準値Qを設定する第6の例を示す。第6の例では、基準値QをSPSあるいはGSPSに格納し、それぞれのPCCフレームの位置情報のQP値と基準値との差分情報をGPSに格納する。なお、例えば、GOFのように、ランダムアクセス単位の範囲内では、例えば、ランダムアクセス単位の先頭フレームを基準値として、PCCフレーム間の差分情報(例えば、Δ(QG(1),QG(0)))を送出してもよい。
なお、タイルまたはスライスがさらに分割される場合であっても、同様の方法でデータヘッダに分割単位のQP値との差分情報を格納して送出する。
図91は、量子化パラメータの伝送方法の他の例について説明するための図である。
図91(a)および(b)は、PCCフレームにおける位置情報および属性情報で共通の基準値QGを設定する第7の例を示す。第7の例では、基準値QGをGPSに格納し、位置情報あるいは属性情報との差分情報をそれぞれのデータヘッダに格納する。基準値QGはSPSに格納されてもよい。
また、図91の(c)および(d)は、属性情報のQP値を、同一のスライスおよびタイルに属する位置情報のQP値との差分情報で示す第8の例を示す。第8の例では、基準値QGは、SPSに格納されてもよい。
図92は、量子化パラメータの伝送方法の第9の例について説明するための図である。
図92の(a)および(b)は、属性情報で共通のQP値を解して、位置情報のQP値との差分情報、属性情報で共通のQP値との差分情報をそれぞれ示す第9の例である。
図93は、QP値の制御例を説明するための図である。
量子化パラメータの値が低いほど品質が向上するが、より多くのビットが必要になるため、符号化効率が低下する。
例えば、三次元点群データをタイルに分割して符号化する際、タイルに含まれる点群データが主要道路である場合は、予め定義された属性情報のQP値を用いて符号化される。一方、周囲のタイルは重要な情報でないため、QP値の差分情報を正の値に設定することによりデータの品質を低下させ、符号化効率を向上できる可能性がある。
さらに、タイルに分割された三次元点群データをスライスに分割して符号化する際、歩道、木および建物は、自動運転において位置推定(ローカライズおよびマッピング)するにために重要であるためQP値を負の値に設定し、移動体およびその他は、重要性が低いためQP値を正の値に設定する。
図93(b)は、タイルやスライスに含まれるオブジェクトに基づき、予め量子化デルタ値が設定されている場合の差分情報の導出する例を示している。例えば、分割データが「主要道路」であるタイルに含まれる「建物」のスライスデータである場合、「主要道路」であるタイルの量子化デルタ値0と「建物」であるスライスデータの量子化デルタ値-5を加算し、差分情報は-5と導出される。
図94は、オブジェクトの品質に基づくQP値の決定方法の一例を示すフローチャートである。
三次元データ符号化装置は、地図情報に基づいて、点群データを1以上のタイルに分割し、1以上のタイル毎に含まれるオブジェクトを判定する(S5371)。具体的には、三次元データ符号化装置は、例えば、機械学習で得られた学習モデルを用いて、オブジェクトが何であるかを認識する物体認識処理を行う。
次に、三次元データ符号化装置は、処理対象のタイルを高い品質で符号化するか否かを判定する(S5372)。高い品質での符号化とは、例えば、所定のレートよりも大きいビットレートで符号化することである。
次に、三次元データ符号化装置は、処理対象のタイルを高い品質で符号化する場合(S5372でYes)、符号化品質が高くなるようにタイルのQP値を設定する(S5373)。
一方で、三次元データ符号化装置は、処理対象のタイルを高い品質で符号化しない場合(S5372でNo)、符号化品質が低くなるようにタイルのQP値を設定する(S5374)。
ステップS5373またはステップS5374の後で、三次元データ符号化装置は、タイル内のオブジェクトを判定し、1以上のスライスに分割する(S5375)。
次に、三次元データ符号化装置は、処理対象のスライスを高い品質で符号化するか否かを判定する(S5376)。
次に、三次元データ符号化装置は、処理対象のスライスを高い品質で符号化する場合(S5376でYes)、符号化品質が高くなるようにスライスのQP値を設定する(S5377)。
一方で、三次元データ符号化装置は、処理対象のスライスを高い品質で符号化しない場合(S5376でNo)、符号化品質が低くなるようにスライスのQP値を設定する(S5378)。
次に、三次元データ符号化装置は、設定されたQP値に基づいて、所定の方法で伝送する基準値および差分情報を決定し、決定した基準値および差分情報を付加情報およびデータのヘッダの少なくとも一方に格納する(S5379)。
次に、三次元データ符号化装置は、決定したQP値に基づき、位置情報および属性情報を量子化し、符号化する(S5380)。
図95は、レート制御に基づくQP値の決定方法の一例を示すフローチャートである。
三次元データ符号化装置は、点群データを順番に符号化する(S5381)。
次に、三次元データ符号化装置は、符号化データの符号量および符号化バッファの占有量から、符号化処理に係るレート制御状況を判定し、次回の符号化の品質を決定する(S5382)。
次に、三次元データ符号化装置は、符号化品質を上げるか否かを判定する(S5383)。
次に、三次元データ符号化装置は、符号化品質を上げる場合(S5383でYes)、符号化品質が高くなるようにタイルのQP値を設定する(S5384)。
一方で、三次元データ符号化装置は、符号化品質を上げない場合(S5383でNo)、符号化品質が低くなるようにタイルのQP値を設定する(S5385)。
次に、三次元データ符号化装置は、設定されたQP値に基づいて、所定の方法で伝送する基準値および差分情報を決定し、決定した基準値および差分情報を付加情報およびデータのヘッダの少なくとも一方に格納する(S5386)。
次に、三次元データ符号化装置は、決定したQP値に基づき、位置情報および属性情報を量子化し、符号化する(S5387)。
以上のように、本実施の形態に係る三次元データ符号化装置は、図96に示す処理を行う。まず、三次元データ符号化装置は、第1量子化パラメータを用いて複数の三次元点それぞれの位置情報を量子化する(S5391)。三次元データ符号化装置は、前記複数の三次元点それぞれの属性情報のうちの第1の色を示す第1輝度および第1色差について、第2量子化パラメータを用いて前記第1輝度を量子化し、かつ、第3量子化パラメータを用いて前記第1色差を量子化する(S5392)。三次元データ符号化装置は、量子化された前記位置情報、量子化された前記第1輝度、量子化された前記第1色差、前記第1量子化パラメータ、前記第2量子化パラメータ、および、前記第2量子化パラメータと前記第3量子化パラメータとの第1差分を含むビットストリームを生成する(S5393)。
これによれば、ビットストリームにおいて、第3量子化パラメータを第2量子化パラメータからの第1差分で示すため、符号化効率を向上できる。
例えば、三次元データ符号化装置は、さらに、第4量子化パラメータを用いて前記複数の三次元点それぞれの前記属性情報のうちの反射率を量子化する。また、前記生成では、量子化された前記反射率、および、前記第4量子化パラメータをさらに含むビットストリームを生成する。
例えば、前記第2量子化パラメータを用いた量子化では、前記複数の三次元点が含まれる対象空間を分割した複数のサブ空間毎に当該サブ空間に含まれる1以上の三次元点の前記第1輝度を量子化する場合、第5量子化パラメータをさらに用いて前記サブ空間に含まれる1以上の三次元点の前記第1輝度を量子化する。前記第3量子化パラメータを用いた量子化では、前記1以上の三次元点の前記第1色差を量子化する場合、第6量子化パラメータをさらに用いて前記1以上の三次元点の前記第1色差を量子化する。前記生成では、前記第2量子化パラメータと前記第5量子化パラメータとの第2差分、および、前記第3量子化パラメータと前記第6量子化パラメータとの第3差分をさらに含むビットストリームを生成する。
これによれば、ビットストリームにおいて、第5量子化パラメータを第2量子化パラメータからの第2差分で示し、かつ、第6量子化パラメータを第3量子化パラメータからの第3差分で示すため、符号化効率を向上できる。
例えば、前記生成では、前記第2量子化パラメータを用いた量子化、および、前記第3量子化パラメータを用いた量子化において、前記第5量子化パラメータおよび前記第6量子化パラメータを用いて量子化した場合、前記第5量子化パラメータおよび前記第6量子化パラメータを用いて量子化したことを示す識別情報をさらに含むビットストリームを生成する。
これによれば、ビットストリームを取得した三次元データ復号装置は、識別情報を用いて第5量子化パラメータおよび第6量子化パラメータを用いて量子化したこと判定できるため、復号処理の処理負荷を低減することができる。
例えば、三次元データ符号化装置は、さらに、前記複数の三次元点それぞれの属性情報のうちの第2の色を示す第2輝度および第2色差について、第7量子化パラメータを用いて前記第2輝度を量子化し、かつ、第8量子化パラメータを用いて前記第2色差を量子化する。前記生成では、さらに、量子化された前記第2輝度、量子化された前記第2色差、前記第7量子化パラメータ、および、前記第7量子化パラメータと前記第8量子化パラメータとの第4差分をさらに含むビットストリームを生成する。
これによれば、ビットストリームにおいて、第8量子化パラメータを第7量子化パラメータからの第4差分で示すため、符号化効率を向上できる。また、三次元点の属性情報に2種類の色情報を含めることができる。
例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
また、本実施の形態に係る三次元データ復号装置は、図97に示す処理を行う。まず三次元データ復号装置は、ビットストリームを取得することで量子化された位置情報、量子化された第1輝度、量子化された第1色差、第1量子化パラメータ、第2量子化パラメータ、および、前記第2量子化パラメータと第3量子化パラメータとの第1差分を取得する(S5394)。三次元データ復号装置は、前記第1量子化パラメータを用いて前記量子化された位置情報を逆量子化することで、複数の三次元点の位置情報を算出する(S5395)。三次元データ復号装置は、前記第2量子化パラメータを用いて前記量子化された第1輝度を逆量子化することで、前記複数の三次元点の第1色を示す第1輝度および第1色差のうちの前記第1輝度を算出する(S5396)。三次元データ復号装置は、前記第2量子化パラメータおよび前記第1差分から得られる前記第3量子化パラメータを用いて前記量子化された第1色差を逆量子化することで、前記第1色差を算出する(S5397)。
このため、三次元データ復号装置は、三次元点の位置情報および属性情報を正しく復号できる。
例えば、前記取得では、前記ビットストリームを取得することでさらに量子化された反射率、および、第4量子化パラメータを取得する。三次元データ復号装置は、さらに、前記第4量子化パラメータを用いて前記量子化された反射率を逆量子化することで、前記複数の三次元点の反射率を算出する。
このため、三次元データ復号装置は、三次元点の反射率を正しく復号できる。
例えば、前記取得では、前記ビットストリームを取得することでさらに、前記第2量子化パラメータと第5量子化パラメータとの第2差分、および、前記第3量子化パラメータと第6量子化パラメータとの第3差分を取得する。前記第1輝度の算出では、前記量子化された第1輝度が、前記複数の三次元点が含まれる対象空間を分割した複数のサブ空間毎に当該サブ空間に含まれる1以上の三次元点の第1輝度が量子化された輝度である場合、前記第2量子化パラメータおよび前記第2差分から得られる前記第5量子化パラメータを用いて前記量子化された第1輝度を逆量子化することで、前記1以上の三次元点の前記第1輝度を算出する。前記第1色差の算出では、前記量子化された第1色差が、前記1以上の三次元点の第1色差が量子化された色差である場合、前記第3量子化パラメータおよび前記第3差分から得られる前記第6量子化パラメータを用いて前記量子化された第1色差を逆量子化することで、前記1以上の三次元点の前記第1色差を算出する。
例えば、前記取得では、前記ビットストリームを取得することでさらに、前記第5量子化パラメータおよび前記第6量子化パラメータを用いて量子化したことを示す識別情報を取得する。前記第1輝度の算出では、前記識別情報が前記第5量子化パラメータおよび前記第6量子化パラメータを用いて量子化したことを示す場合、前記量子化された第1輝度が、前記1以上の三次元点の前記第1輝度が量子化された輝度であると判定する。前記第1色差の算出では、前記識別情報が前記第5量子化パラメータおよび前記第6量子化パラメータを用いて量子化したことを示す場合、前記量子化された第1色差が、前記1以上の三次元点の前記第1色差が量子化された色差であると判定する。
これによれば、三次元データ復号装置は、識別情報を用いて第5量子化パラメータおよび第6量子化パラメータを用いて量子化したこと判定できるため、復号処理の処理負荷を低減することができる。
例えば、前記取得では、前記ビットストリームを取得することでさらに、量子化された第2輝度、量子化された第2色差、第7量子化パラメータ、および、前記第7量子化パラメータと第8量子化パラメータとの第4差分を取得する。三次元データ復号装置は、さらに、前記第7量子化パラメータを用いて前記量子化された第2輝度を逆量子化することで、前記複数の三次元点の第2色を示す第2輝度および第2色差のうちの前記第2輝度を算出する。また、三次元データ復号装置は、さらに、前記第7量子化パラメータおよび前記第4差分から得られる前記第8量子化パラメータを用いて前記量子化された第2色差を逆量子化することで、前記第2色差を算出する。
このため、三次元データ復号装置は、三次元点の第2の色を正しく復号できる。
例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
以上、本開示の実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等について説明したが、本開示は、この実施の形態に限定されるものではない。
また、上記実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
また、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
また、本開示は、三次元データ符号化装置及び三次元データ復号装置等により実行される三次元データ符号化方法又は三次元データ復号方法等として実現されてもよい。
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
また、フローチャートにおける各ステップが実行される順序は、本開示を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
以上、一つまたは複数の態様に係る三次元データ符号化装置及び三次元データ復号装置等について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。