(57)【要約】  三次元データ符号化方法は、点群データに含まれる複数の三次元点の複数の属性情報から複数の係数値を算出し（Ｓ７０９１）、複数の係数値の各々を量子化することで複数の量子化値を生成し（Ｓ７０９２）、複数の量子化値を含むビットストリームを生成し（Ｓ７０９３）、複数の係数値は、複数の階層のいずれかに属し、量子化（Ｓ７０９２）では、複数の係数値の各々を、当該係数値が属する階層用の量子化パラメータを用いて量子化し、ビットストリームは、基準量子化パラメータを示す第１情報と、基準量子化パラメータから複数の階層用の複数の量子化パラメータを算出するための複数の第２情報とを含む。
2020162495.tif 000002
【特許請求の範囲】
【請求項１】
点群データに含まれる複数の三次元点の複数の属性情報から複数の係数値を算出し、
前記複数の係数値の各々を量子化することで複数の量子化値を生成し、
前記複数の量子化値を含むビットストリームを生成し、
前記複数の係数値は、複数の階層のいずれかに属し、
前記量子化では、前記複数の係数値の各々を、当該係数値が属する階層用の量子化パラメータを用いて量子化し、
前記ビットストリームは、基準量子化パラメータを示す第１情報と、前記基準量子化パラメータから前記複数の階層用の複数の量子化パラメータを算出するための複数の第２情報とを含む
三次元データ符号化方法。
【請求項２】
前記複数の第２情報の各々は、前記基準量子化パラメータと当該階層用の量子化パラメータとの差分を示す
請求項１記載の三次元データ符号化方法。
【請求項３】
前記ビットストリームは、さらに、前記複数の第２情報が前記ビットストリームに含まれるか否かを示す第１フラグを含む
請求項１又は２記載の三次元データ符号化方法。
【請求項４】
前記ビットストリームは、さらに、前記ビットストリームに含まれる前記複数の第２情報の数を示す第３情報を含む
請求項１〜３のいずれか１項に記載の三次元データ符号化方法。
【請求項５】
前記複数の三次元点は、前記複数の三次元点の位置情報に基づき前記複数の階層のいずれかに分類される
請求項１〜４のいずれか１項に記載の三次元データ符号化方法。
【請求項６】
前記複数の係数値は、前記複数の属性情報の各々を高周波成分と低周波成分とに分けて前記複数の階層に階層化することにより生成される
請求項１〜４のいずれか１項に記載の三次元データ符号化方法。
【請求項７】
ビットストリームに含まれる、（ｉ）基準量子化パラメータを示す第１情報と、（ｉｉ）前記基準量子化パラメータから複数の階層用の複数の量子化パラメータを算出するための複数の第２情報と、を用いて前記複数の階層用の量子化パラメータを算出し、
前記ビットストリームに含まれる複数の量子化値の各々を、算出された前記複数の階層用の量子化パラメータのうち当該量子化値が属する階層用の量子化パラメータを用いて逆量子化することで複数の係数値を生成し、
前記複数の係数値から、点群データに含まれる複数の三次元点の複数の属性情報を算出する
三次元データ復号方法。
【請求項８】
前記複数の第２情報の各々は、前記基準量子化パラメータと当該階層用の量子化パラメータとの差分を示す
請求項７記載の三次元データ復号方法。
【請求項９】
前記ビットストリームは、さらに、前記複数の第２情報が前記ビットストリームに含まれるか否かを示す第１フラグを含む
請求項７又は８記載の三次元データ復号方法。
【請求項１０】
前記ビットストリームは、さらに、前記ビットストリームに含まれる前記複数の第２情報の数を示す第３情報を含む
請求項７〜９のいずれか１項に記載の三次元データ復号方法。
【請求項１１】
前記複数の三次元点は、前記複数の三次元点の位置情報に基づき前記複数の階層のいずれかに分類される
請求項７〜１０のいずれか１項に記載の三次元データ復号方法。
【請求項１２】
前記複数の係数値は、前記複数の属性情報の各々を高周波成分と低周波成分とに分けて前記複数の階層に階層化することにより生成される
請求項７〜１０のいずれか１項に記載の三次元データ復号方法。
【請求項１３】
プロセッサと、
メモリとを備え、
前記プロセッサは、前記メモリを用いて、
点群データに含まれる複数の三次元点の複数の属性情報から複数の係数値を算出し、
前記複数の係数値の各々を量子化することで複数の量子化値を生成し、
前記複数の量子化値を含むビットストリームを生成し、
前記複数の係数値は、複数の階層のいずれかに属し、
前記量子化では、前記複数の係数値の各々を、当該係数値が属する階層用の量子化パラメータを用いて量子化し、
前記ビットストリームは、基準量子化パラメータを示す第１情報と、前記基準量子化パラメータから前記複数の階層用の複数の量子化パラメータを算出するための複数の第２情報とを含む
三次元データ符号化装置。
【請求項１４】
プロセッサと、
メモリとを備え、
前記プロセッサは、前記メモリを用いて、
ビットストリームに含まれる、（ｉ）基準量子化パラメータを示す第１情報と、（ｉｉ）前記基準量子化パラメータから複数の階層用の複数の量子化パラメータを算出するための複数の第２情報と、を用いて前記複数の階層用の量子化パラメータを算出し、
前記ビットストリームに含まれる複数の量子化値の各々を、算出された前記複数の階層用の量子化パラメータのうち当該量子化値が属する階層用の量子化パラメータを用いて逆量子化することで複数の係数値を生成し、
前記複数の係数値から、点群データに含まれる複数の三次元点の複数の属性情報を算出する
三次元データ復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置に関する。
【背景技術】
【０００２】
自動車或いはロボットが自律的に動作するためのコンピュータビジョン、マップ情報、監視、インフラ点検、又は、映像配信など、幅広い分野において、今後、三次元データを活用した装置又はサービスの普及が見込まれる。三次元データは、レンジファインダなどの距離センサ、ステレオカメラ、又は複数の単眼カメラの組み合わせなど様々な方法で取得される。【０００３】
三次元データの表現方法の１つとして、三次元空間内の点群によって三次元構造の形状を表すポイントクラウドと呼ばれる表現方法がある。ポイントクラウドでは、点群の位置と色とが格納される。ポイントクラウドは三次元データの表現方法として主流になると予想されるが、点群はデータ量が非常に大きい。よって、三次元データの蓄積又は伝送においては二次元の動画像（一例として、ＭＰＥＧで規格化されたＭＰＥＧ−４  ＡＶＣ又はＨＥＶＣなどがある）と同様に、符号化によるデータ量の圧縮が必須となる。【０００４】
また、ポイントクラウドの圧縮については、ポイントクラウド関連の処理を行う公開のライブラリ（Ｐｏｉｎｔ  Ｃｌｏｕｄ  Ｌｉｂｒａｒｙ）などによって一部サポートされている。【０００５】
また、三次元の地図データを用いて、車両周辺に位置する施設を検索し、表示する技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１４／０２０６６３号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
三次元データの符号化処理では、適切に符号化を行えることが望まれている。【０００８】
本開示は、適切に符号化を行える三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、又は三次元データ復号装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本開示の一態様に係る三次元データ符号化方法は、点群データに含まれる複数の三次元点の複数の属性情報から複数の係数値を算出し、前記複数の係数値の各々を量子化することで複数の量子化値を生成し、前記複数の量子化値を含むビットストリームを生成し、前記複数の係数値は、複数の階層のいずれかに属し、前記量子化では、前記複数の係数値の各々を、当該係数値が属する階層用の量子化パラメータを用いて量子化し、前記ビットストリームは、基準量子化パラメータを示す第１情報と、前記基準量子化パラメータから前記複数の階層用の複数の量子化パラメータを算出するための複数の第２情報とを含む。【００１０】
本開示の一態様に係る三次元データ復号方法は、ビットストリームに含まれる、（ｉ）基準量子化パラメータを示す第１情報と、（ｉｉ）前記基準量子化パラメータから複数の階層用の複数の量子化パラメータを算出するための複数の第２情報と、を用いて前記複数の階層用の量子化パラメータを算出し、前記ビットストリームに含まれる複数の量子化値の各々を、算出された前記複数の階層用の量子化パラメータのうち当該量子化値が属する階層用の量子化パラメータを用いて逆量子化することで複数の係数値を生成し、前記複数の係数値から、点群データに含まれる複数の三次元点の複数の属性情報を算出する。
【発明の効果】
【００１１】
本開示は、適切に符号化を行える三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、又は三次元データ復号装置を提供できる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態１に係る符号化三次元データの構成を示す図である。
【図２】図２は、実施の形態１に係るＧＯＳの最下層レイヤに属するＳＰＣ間の予測構造の一例を示す図である。
【図３】図３は、実施の形態１に係るレイヤ間の予測構造の一例を示す図である。
【図４】図４は、実施の形態１に係るＧＯＳの符号化順の一例を示す図である。
【図５】図５は、実施の形態１に係るＧＯＳの符号化順の一例を示す図である。
【図６】図６は、実施の形態１に係る三次元データ符号化装置のブロック図である。
【図７】図７は、実施の形態１に係る符号化処理のフローチャートである。
【図８】図８は、実施の形態１に係る三次元データ復号装置のブロック図である。
【図９】図９は、実施の形態１に係る復号処理のフローチャートである。
【図１０】図１０は、実施の形態１に係るメタ情報の一例を示す図である。
【図１１】図１１は、実施の形態２に係るＳＷＬＤの構成例を示す図である。
【図１２】図１２は、実施の形態２に係るサーバ及びクライアントの動作例を示す図である。
【図１３】図１３は、実施の形態２に係るサーバ及びクライアントの動作例を示す図である。
【図１４】図１４は、実施の形態２に係るサーバ及びクライアントの動作例を示す図である。
【図１５】図１５は、実施の形態２に係るサーバ及びクライアントの動作例を示す図である。
【図１６】図１６は、実施の形態２に係る三次元データ符号化装置のブロック図である。
【図１７】図１７は、実施の形態２に係る符号化処理のフローチャートである。
【図１８】図１８は、実施の形態２に係る三次元データ復号装置のブロック図である。
【図１９】図１９は、実施の形態２に係る復号処理のフローチャートである。
【図２０】図２０は、実施の形態２に係るＷＬＤの構成例を示す図である。
【図２１】図２１は、実施の形態２に係るＷＬＤの８分木構造の例を示す図である。
【図２２】図２２は、実施の形態２に係るＳＷＬＤの構成例を示す図である。
【図２３】図２３は、実施の形態２に係るＳＷＬＤの８分木構造の例を示す図である。
【図２４】図２４は、実施の形態３に係る三次元データ作成装置のブロック図である。
【図２５】図２５は、実施の形態３に係る三次元データ送信装置のブロック図である。
【図２６】図２６は、実施の形態４に係る三次元情報処理装置のブロック図である。
【図２７】図２７は、実施の形態５に係る三次元データ作成装置のブロック図である。
【図２８】図２８は、実施の形態６に係るシステムの構成を示す図である。
【図２９】図２９は、実施の形態６に係るクライアント装置のブロック図である。
【図３０】図３０は、実施の形態６に係るサーバのブロック図である。
【図３１】図３１は、実施の形態６に係るクライアント装置による三次元データ作成処理のフローチャートである。
【図３２】図３２は、実施の形態６に係るクライアント装置によるセンサ情報送信処理のフローチャートである。
【図３３】図３３は、実施の形態６に係るサーバによる三次元データ作成処理のフローチャートである。
【図３４】図３４は、実施の形態６に係るサーバによる三次元マップ送信処理のフローチャートである。
【図３５】図３５は、実施の形態６に係るシステムの変形例の構成を示す図である。
【図３６】図３６は、実施の形態６に係るサーバ及びクライアント装置の構成を示す図である。
【図３７】図３７は、実施の形態７に係る三次元データ符号化装置のブロック図である。
【図３８】図３８は、実施の形態７に係る予測残差の例を示す図である。
【図３９】図３９は、実施の形態７に係るボリュームの例を示す図である。
【図４０】図４０は、実施の形態７に係るボリュームの８分木表現の例を示す図である。
【図４１】図４１は、実施の形態７に係るボリュームのビット列の例を示す図である。
【図４２】図４２は、実施の形態７に係るボリュームの８分木表現の例を示す図である。
【図４３】図４３は、実施の形態７に係るボリュームの例を示す図である。
【図４４】図４４は、実施の形態７に係るイントラ予測処理を説明するための図である。
【図４５】図４５は、実施の形態７に係る回転及び並進処理を説明するための図である。
【図４６】図４６は、実施の形態７に係るＲＴ適用フラグ及びＲＴ情報のシンタックス例を示す図である。
【図４７】図４７は、実施の形態７に係るインター予測処理を説明するための図である。
【図４８】図４８は、実施の形態７に係る三次元データ復号装置のブロック図である。
【図４９】図４９は、実施の形態７に係る三次元データ符号化装置による三次元データ符号化処理のフローチャートである。
【図５０】図５０は、実施の形態７に係る三次元データ復号装置による三次元データ復号処理のフローチャートである。
【図５１】図５１は、実施の形態８に係る三次元点の例を示す図である。
【図５２】図５２は、実施の形態８に係るＬｏＤの設定例を示す図である。
【図５３】図５３は、実施の形態８に係るＬｏＤの設定に用いる閾値の例を示す図である。
【図５４】図５４は、実施の形態８に係る予測値に用いる属性情報の例を示す図である。
【図５５】図５５は、実施の形態８に係る指数ゴロム符号の一例を示す図である。
【図５６】図５６は、実施の形態８に係る指数ゴロム符号に対する処理を示す図である。
【図５７】図５７は、実施の形態８に係る属性ヘッダのシンタックス例を示す図である。
【図５８】図５８は、実施の形態８に係る属性データのシンタックス例を示す図である。
【図５９】図５９は、実施の形態８に係る三次元データ符号化処理のフローチャートである。
【図６０】図６０は、実施の形態８に係る属性情報符号化処理のフローチャートである。
【図６１】図６１は、実施の形態８に係る指数ゴロム符号に対する処理を示す図である。
【図６２】図６２は、実施の形態８に係る残り符号とその値との関係を示す逆引きテーブルの例を示す図である。
【図６３】図６３は、実施の形態８に係る三次元データ復号処理のフローチャートである。
【図６４】図６４は、実施の形態８に係る属性情報復号処理のフローチャートである。
【図６５】図６５は、実施の形態８に係る三次元データ符号化装置のブロック図である。
【図６６】図６６は、実施の形態８に係る三次元データ復号装置のブロック図である。
【図６７】図６７は、実施の形態８に係る三次元データ符号化処理のフローチャートである。
【図６８】図６８は、実施の形態８に係る三次元データ復号処理のフローチャートである。
【図６９】図６９は、実施の形態９に係る各予測モードにおいて算出される予測値を示すテーブルの第１の例を示す図である。
【図７０】図７０は、実施の形態９に係る予測値に用いる属性情報の例を示す図である。
【図７１】図７１は、実施の形態９に係る各予測モードにおいて算出される予測値を示すテーブルの第２の例を示す図である。
【図７２】図７２は、実施の形態９に係る各予測モードにおいて算出される予測値を示すテーブルの第３の例を示す図である。
【図７３】図７３は、実施の形態９に係る各予測モードにおいて算出される予測値を示すテーブルの第４の例を示す図である。
【図７４】図７４は、実施の形態１０に係るＲＡＨＴを用いた属性情報の符号化を説明するための図である。
【図７５】図７５は、実施の形態１０に係る、階層毎に量子化スケールを設定する例を示す図である。
【図７６】図７６は、実施の形態１０に係る第１符号列及び第２符号列の例を示す図である。
【図７７】図７７は、実施の形態１０に係るトランケットユーナリ符号の例を示す図である。
【図７８】図７８は、実施の形態１０に係る逆Ｈａａｒ変換を説明するための図である。
【図７９】図７９は、実施の形態１０に係る属性情報のシンタックス例を示す図である。
【図８０】図８０は、実施の形態１０に係る符号化係数とＺｅｒｏＣｎｔの例を示す図である。
【図８１】図８１は、実施の形態１０に係る三次元データ符号化処理のフローチャートである。
【図８２】図８２は、実施の形態１０に係る属性情報符号化処理のフローチャートである。
【図８３】図８３は、実施の形態１０に係る符号化係数符号化処理のフローチャートである。
【図８４】図８４は、実施の形態１０に係る三次元データ復号処理のフローチャートである。
【図８５】図８５は、実施の形態１０に係る属性情報復号処理のフローチャートである。
【図８６】図８６は、実施の形態１０に係る符号化係数復号処理のフローチャートである。
【図８７】図８７は、実施の形態１０に係る属性情報符号化部のブロック図である。
【図８８】図８８は、実施の形態１０に係る属性情報復号部のブロック図である。
【図８９】図８９は、実施の形態１１に係る量子化部、および、逆量子化部の処理について説明するための図である。
【図９０】図９０は、実施の形態１１に係る量子化値のデフォルト値と量子化デルタとを説明するための図である。
【図９１】図９１は、実施の形態１１に係る三次元データ符号化装置に含まれる第１の符号化部の構成を示すブロック図である。
【図９２】図９２は、実施の形態１１に係る分割部の構成を示すブロック図である。
【図９３】図９３は、実施の形態１１に係る位置情報符号化部および属性情報符号化部の構成を示すブロック図である。
【図９４】図９４は、実施の形態１１に係る第１の復号部の構成を示すブロック図である。
【図９５】図９５は、実施の形態１１に係る位置情報復号部および属性情報復号部の構成を示すブロック図である。
【図９６】図９６は、実施の形態１１に係る位置情報の符号化あるいは属性情報の符号化における量子化値の決定に関する処理の一例を示すフローチャートである。
【図９７】図９７は、実施の形態１１に係る位置情報および属性情報の復号処理の一例を示すフローチャートである。
【図９８】図９８は、実施の形態１１に係る量子化パラメータの伝送方法の第１の例について説明するための図である。
【図９９】図９９は、実施の形態１１に係る量子化パラメータの伝送方法の第２の例について説明するための図である。
【図１００】図１００は、実施の形態１１に係る量子化パラメータの伝送方法の第３の例について説明するための図である。
【図１０１】図１０１は、実施の形態１１に係る点群データの符号化処理のフローチャートである。
【図１０２】図１０２は、実施の形態１１に係るＱＰ値を決定し、付加情報を更新する処理の一例を示すフローチャートである。
【図１０３】図１０３は、実施の形態１１に係る決定されたＱＰ値を符号化する処理の一例を示すフローチャートである。
【図１０４】図１０４は、実施の形態１１に係る点群データの復号処理のフローチャートである。
【図１０５】図１０５は、実施の形態１１に係るＱＰ値を取得して、スライスまたはタイルのＱＰ値を復号する処理の一例を示すフローチャートである。
【図１０６】図１０６は、実施の形態１１に係るＧＰＳのシンタックス例を示す図である。
【図１０７】図１０７は、実施の形態１１に係るＡＰＳのシンタックス例を示す図である。
【図１０８】図１０８は、実施の形態１１に係る位置情報のヘッダのシンタックス例を示す図である。
【図１０９】図１０９は、実施の形態１１に係る属性情報のヘッダのシンタックス例を示す図である。
【図１１０】図１１０は、実施の形態１１に係る量子化パラメータの伝送方法の他の例について説明するための図である。
【図１１１】図１１１は、実施の形態１１に係る量子化パラメータの伝送方法の他の例について説明するための図である。
【図１１２】図１１２は、実施の形態１１に係る量子化パラメータの伝送方法の第９の例について説明するための図である。
【図１１３】図１１３は、実施の形態１１に係るＱＰ値の制御例を説明するための図である。
【図１１４】図１１４は、実施の形態１１に係るオブジェクトの品質に基づくＱＰ値の決定方法の一例を示すフローチャートである。
【図１１５】図１１５は、実施の形態１１に係るレート制御に基づくＱＰ値の決定方法の一例を示すフローチャートである。
【図１１６】図１１６は、実施の形態１１に係る符号化処理のフローチャートである。
【図１１７】図１１７は、実施の形態１１に係る復号処理のフローチャートである。
【図１１８】図１１８は、実施の形態１２に係る量子化パラメータの伝送方法の一例について説明するための図である。
【図１１９】図１１９は、実施の形態１２に係るＡＰＳのシンタックス、および、属性情報のヘッダのシンタックスの第１の例を示す図である。
【図１２０】図１２０は、実施の形態１２に係るＡＰＳのシンタックスの第２の例を示す図である。
【図１２１】図１２１は、実施の形態１２に係る属性情報のヘッダのシンタックスの第２の例を示す図である。
【図１２２】図１２２は、実施の形態１２に係るＳＰＳ、ＡＰＳおよび属性情報のヘッダの関係を示す図である。
【図１２３】図１２３は、実施の形態１２に係る符号化処理のフローチャートである。
【図１２４】図１２４は、実施の形態１２に係る復号処理のフローチャートである。
【図１２５】図１２５は、実施の形態１３に係る三次元データ符号化装置の構成を示すブロック図である。
【図１２６】図１２６は、実施の形態１３に係る三次元データ復号装置の構成を示すブロック図である。
【図１２７】図１２７は、実施の形態１３に係るＬｏＤの設定例を示す図である。
【図１２８】図１２８は、実施の形態１３に係るＲＡＨＴの階層構造の例を示す図である。
【図１２９】図１２９は、実施の形態１３に係る三次元データ符号化装置のブロック図である。
【図１３０】図１３０は、実施の形態１３に係る分割部のブロック図である。
【図１３１】図１３１は、実施の形態１３に係る属性情報符号化部のブロック図である。
【図１３２】図１３２は、実施の形態１３に係る三次元データ復号装置のブロック図である。
【図１３３】図１３３は、実施の形態１３に係る属性情報復号部のブロック図である。
【図１３４】図１３４は、実施の形態１３に係るタイル及びスライス分割における量子化パラメータの設定例を示す図である。
【図１３５】図１３５は、実施の形態１３に係る量子化パラメータの設定例を示す図である。
【図１３６】図１３６は、実施の形態１３に係る量子化パラメータの設定例を示す図である。
【図１３７】図１３７は、実施の形態１３に係る属性情報ヘッダのシンタックス例を示す図である。
【図１３８】図１３８は、実施の形態１３に係る属性情報ヘッダのシンタックス例を示す図である。
【図１３９】図１３９は、実施の形態１３に係る量子化パラメータの設定例を示す図である。
【図１４０】図１４０は、実施の形態１３に係る属性情報ヘッダのシンタックス例を示す図である。
【図１４１】図１４１は、実施の形態１３に係る属性情報ヘッダのシンタックス例を示す図である。
【図１４２】図１４２は、実施の形態１３に係る三次元データ符号化処理のフローチャートである。
【図１４３】図１４３は、実施の形態１３に係る属性情報符号化処理のフローチャートである。
【図１４４】図１４４は、実施の形態１３に係るΔＱＰ決定処理のフローチャートである。
【図１４５】図１４５は、実施の形態１３に係る三次元データ復号処理のフローチャートである。
【図１４６】図１４６は、実施の形態１３に係る属性情報復号処理のフローチャートである。
【図１４７】図１４７は、実施の形態１３に係る属性情報符号化部のブロック図である。
【図１４８】図１４８は、実施の形態１３に係る属性情報復号部のブロック図である。
【図１４９】図１４９は、実施の形態１３に係る量子化パラメータの設定例を示す図である。
【図１５０】図１５０は、実施の形態１３に係る属性情報ヘッダのシンタックス例を示す図である。
【図１５１】図１５１は、実施の形態１３に係る属性情報ヘッダのシンタックス例を示す図である。
【図１５２】図１５２は、実施の形態１３に係る三次元データ符号化処理のフローチャートである。
【図１５３】図１５３は、実施の形態１３に係る属性情報符号化処理のフローチャートである。
【図１５４】図１５４は、実施の形態１３に係る三次元データ復号処理のフローチャートである。
【図１５５】図１５５は、実施の形態１３に係る属性情報復号処理のフローチャートである。
【図１５６】図１５６は、実施の形態１３に係る属性情報符号化部のブロック図である。
【図１５７】図１５７は、実施の形態１３に係る属性情報復号部のブロック図である。
【図１５８】図１５８は、実施の形態１３に係る属性情報ヘッダのシンタックス例を示す図である。
【図１５９】図１５９は、実施の形態１３に係る三次元データ符号化処理のフローチャートである。
【図１６０】図１６０は、実施の形態１３に係る三次元データ復号処理のフローチャートである。
【図１６１】図１６１は、実施の形態１４に係るＬｏＤ階層の生成例を示す図である。
【図１６２】図１６２は、実施の形態１４に係る階層の分割例を示す図である。
【図１６３】図１６３は、実施の形態１４に係る階層の分割例を示す図である。
【図１６４】図１６４は、実施の形態１４に係る階層の分割例を示す図である。
【図１６５】図１６５は、実施の形態１４に係る階層の分割例を示す図である。
【図１６６】図１６６は、実施の形態１４に係る階層の分割例を示す図である。
【図１６７】図１６７は、実施の形態１４に係る三次元データ符号化処理のフローチャートである。
【図１６８】図１６８は、実施の形態１４に係る属性情報符号化処理のフローチャートである。
【図１６９】図１６９は、実施の形態１４に係るＬｏＤ設定処理のフローチャートである。
【図１７０】図１７０は、実施の形態１４に係る三次元データ復号処理のフローチャートである。
【図１７１】図１７１は、実施の形態１４に係る属性情報復号処理のフローチャートである。
【図１７２】図１７２は、実施の形態１４に係る属性情報符号化部のブロック図である。
【図１７３】図１７３は、実施の形態１４に係る属性情報復号部のブロック図である。
【発明を実施するための形態】
【００１３】
本開示の一態様に係る三次元データ符号化方法は、点群データに含まれる複数の三次元点の複数の属性情報から複数の係数値を算出し、前記複数の係数値の各々を量子化することで複数の量子化値を生成し、前記複数の量子化値を含むビットストリームを生成し、前記複数の係数値は、複数の階層のいずれかに属し、前記量子化では、前記複数の係数値の各々を、当該係数値が属する階層用の量子化パラメータを用いて量子化し、前記ビットストリームは、基準量子化パラメータを示す第１情報と、前記基準量子化パラメータから前記複数の階層用の複数の量子化パラメータを算出するための複数の第２情報とを含む。
【００１４】
これによれば、当該三次元データ符号化方法は、階層毎に量子化パラメータを切り替えることができるので、適切に符号化を行える。また、当該三次元データ符号化方法は、基準量子化パラメータを示す第１情報と、基準量子化パラメータから複数の量子化パラメータを算出するための複数の第２情報とを符号化することで符号化効率を向上できる。
【００１５】
例えば、前記複数の第２情報の各々は、前記基準量子化パラメータと当該階層用の量子化パラメータとの差分を示してもよい。
【００１６】
例えば、前記ビットストリームは、さらに、前記複数の第２情報が前記ビットストリームに含まれるか否かを示す第１フラグを含んでもよい。
【００１７】
例えば、前記ビットストリームは、さらに、前記ビットストリームに含まれる前記複数の第２情報の数を示す第３情報を含んでもよい。
【００１８】
例えば、前記複数の三次元点は、前記複数の三次元点の位置情報に基づき前記複数の階層のいずれかに分類されてもよい。
【００１９】
例えば、前記複数の係数値は、前記複数の属性情報の各々を高周波成分と低周波成分とに分けて前記複数の階層に階層化することにより生成されてもよい。
【００２０】
本開示の一態様に係る三次元データ復号方法は、ビットストリームに含まれる、（ｉ）基準量子化パラメータを示す第１情報と、（ｉｉ）前記基準量子化パラメータから複数の階層用の複数の量子化パラメータを算出するための複数の第２情報と、を用いて前記複数の階層用の量子化パラメータを算出し、前記ビットストリームに含まれる複数の量子化値の各々を、算出された前記複数の階層用の量子化パラメータのうち当該量子化値が属する階層用の量子化パラメータを用いて逆量子化することで複数の係数値を生成し、前記複数の係数値から、点群データに含まれる複数の三次元点の複数の属性情報を算出する。
【００２１】
これによれば、当該三次元データ復号方法は、階層毎に量子化パラメータを切り替えることができるので、適切に復号を行える。また、当該三次元データ復号方法は、基準量子化パラメータを示す第１情報と、基準量子化パラメータから複数の量子化パラメータを算出するための複数の第２情報とを用いられることで符号化効率が向上されたビットストリームを適切に復号できる。
【００２２】
例えば、前記複数の第２情報の各々は、前記基準量子化パラメータと当該階層用の量子化パラメータとの差分を示してもよい。
【００２３】
例えば、前記ビットストリームは、さらに、前記複数の第２情報が前記ビットストリームに含まれるか否かを示す第１フラグを含んでもよい。
【００２４】
例えば、前記ビットストリームは、さらに、前記ビットストリームに含まれる前記複数の第２情報の数を示す第３情報を含んでもよい。
【００２５】
例えば、前記複数の三次元点は、前記複数の三次元点の位置情報に基づき前記複数の階層のいずれかに分類されてもよい。
【００２６】
例えば、前記複数の係数値は、前記複数の属性情報の各々を高周波成分と低周波成分とに分けて前記複数の階層に階層化することにより生成されてもよい。
【００２７】
また、本開示の一態様に係る三次元データ符号化装置は、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、点群データに含まれる複数の三次元点の複数の属性情報から複数の係数値を算出し、前記複数の係数値の各々を量子化することで複数の量子化値を生成し、前記複数の量子化値を含むビットストリームを生成し、前記複数の係数値は、複数の階層のいずれかに属し、前記量子化では、前記複数の係数値の各々を、当該係数値が属する階層用の量子化パラメータを用いて量子化し、前記ビットストリームは、基準量子化パラメータを示す第１情報と、前記基準量子化パラメータから前記複数の階層用の複数の量子化パラメータを算出するための複数の第２情報とを含む。
【００２８】
これによれば、当該三次元データ符号化装置は、階層毎に量子化パラメータを切り替えることができるので、適切に符号化を行える。また、当該三次元データ符号化装置は、基準量子化パラメータを示す第１情報と、基準量子化パラメータから複数の量子化パラメータを算出するための複数の第２情報とを符号化することで符号化効率を向上できる。
【００２９】
また、本開示の一態様に係る三次元データ復号装置は、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、ビットストリームに含まれる、（ｉ）基準量子化パラメータを示す第１情報と、（ｉｉ）前記基準量子化パラメータから複数の階層用の複数の量子化パラメータを算出するための複数の第２情報と、を用いて前記複数の階層用の量子化パラメータを算出し、前記ビットストリームに含まれる複数の量子化値の各々を、算出された前記複数の階層用の量子化パラメータのうち当該量子化値が属する階層用の量子化パラメータを用いて逆量子化することで複数の係数値を生成し、前記複数の係数値から、点群データに含まれる複数の三次元点の複数の属性情報を算出する。
【００３０】
これによれば、当該三次元データ復号装置は、階層毎に量子化パラメータを切り替えることができるので、適切に復号を行える。また、当該三次元データ復号装置は、基準量子化パラメータを示す第１情報と、基準量子化パラメータから複数の量子化パラメータを算出するための複数の第２情報とを用いられることで符号化効率が向上されたビットストリームを適切に復号できる。
【００３１】
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【００３２】
以下、実施の形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【００３３】
（実施の形態１）
まず、本実施の形態に係る符号化三次元データ（以下、符号化データとも記す）のデータ構造について説明する。図１は、本実施の形態に係る符号化三次元データの構成を示す図である。
【００３４】
本実施の形態では、三次元空間は、動画像の符号化におけるピクチャに相当するスペース（ＳＰＣ）に分割され、スペースを単位として三次元データが符号化される。スペースは、さらに、動画像符号化におけるマクロブロックなどに相当するボリューム（ＶＬＭ）に分割され、ＶＬＭを単位として予測及び変換が行われる。ボリュームは、位置座標が対応付けられる最小単位である複数のボクセル（ＶＸＬ）を含む。なお、予測とは、二次元画像で行われる予測と同様に、他の処理単位を参照し、処理対象の処理単位と類似する予測三次元データを生成し、当該予測三次元データと処理対象の処理単位との差分を符号化することである。また、この予測は、同一時刻の他の予測単位を参照する空間予測のみならず、異なる時刻の予測単位を参照する時間予測を含む。
【００３５】
例えば、三次元データ符号化装置（以下、符号化装置とも記す）は、ポイントクラウドなどの点群データにより表現される三次元空間を符号化する際には、ボクセルのサイズに応じて、点群の各点、又は、ボクセル内に含まれる複数点をまとめて符号化する。ボクセルを細分化すれば点群の三次元形状を高精度に表現でき、ボクセルのサイズを大きくすれば点群の三次元形状をおおまかに表現できる。
【００３６】
なお、以下では、三次元データがポイントクラウドである場合を例に説明を行うが、三次元データはポイントクラウドに限定されず、任意の形式の三次元データでよい。
【００３７】
また、階層構造のボクセルを用いてもよい。この場合、ｎ次の階層では、ｎ−１次以下の階層（ｎ次の階層の下層）にサンプル点が存在するかどうかを順に示してもよい。例えば、ｎ次の階層のみを復号する際において、ｎ−１次以下の階層にサンプル点が存在する場合は、ｎ次階層のボクセルの中心にサンプル点が存在するとみなして復号できる。
【００３８】
また、符号化装置は、点群データを、距離センサ、ステレオカメラ、単眼カメラ、ジャイロ、又は慣性センサなどを用いて取得する。
【００３９】
スペースは、動画像の符号化と同様に、単独で復号可能なイントラ・スペース（Ｉ−ＳＰＣ）、単方向の参照のみ可能なプレディクティブ・スペース（Ｐ−ＳＰＣ）、及び、双方向の参照が可能なバイディレクショナル・スペース（Ｂ−ＳＰＣ）を含む少なくとも３つの予測構造のいずれかに分類される。また、スペースは復号時刻と表示時刻との２種類の時刻情報を有する。
【００４０】
また、図１に示すように、複数のスペースを含む処理単位として、ランダムアクセス単位であるＧＯＳ（Ｇｒｏｕｐ  Ｏｆ  Ｓｐａｃｅ）が存在する。さらに、複数のＧＯＳを含む処理単位としてワールド（ＷＬＤ）が存在する。
【００４１】
ワールドが占める空間領域は、ＧＰＳ又は緯度及び経度情報などにより、地球上の絶対位置と対応付けられる。この位置情報はメタ情報として格納される。なお、メタ情報は、符号化データに含まれてもよいし、符号化データとは別に伝送されてもよい。
【００４２】
また、ＧＯＳ内では、全てのＳＰＣが三次元的に隣接してもよいし、他のＳＰＣと三次元的に隣接しないＳＰＣが存在してもよい。
【００４３】
なお、以下では、ＧＯＳ、ＳＰＣ又はＶＬＭ等の処理単位に含まれる三次元データに対する、符号化、復号又は参照等の処理を、単に、処理単位を符号化、復号又は参照する等とも記す。また、処理単位に含まれる三次元データは、例えば、三次元座標等の空間位置と、色情報等の特性値との少なくとも一つの組を含む。
【００４４】
次に、ＧＯＳにおけるＳＰＣの予測構造について説明する。同一ＧＯＳ内の複数のＳＰＣ、又は、同一ＳＰＣ内の複数のＶＬＭは、互いに異なる空間を占めるが、同じ時刻情報（復号時刻及び表示時刻）を持つ。
【００４５】
また、ＧＯＳ内で復号順で先頭となるＳＰＣはＩ−ＳＰＣである。また、ＧＯＳにはクローズドＧＯＳとオープンＧＯＳとの２種類が存在する。クローズドＧＯＳは、先頭Ｉ−ＳＰＣから復号開始する際に、ＧＯＳ内の全てのＳＰＣを復号できるＧＯＳである。オープンＧＯＳでは、ＧＯＳ内で先頭Ｉ−ＳＰＣよりも表示時刻が前となる一部のＳＰＣは異なるＧＯＳを参照しており、当該ＧＯＳのみで復号を行うことができない。
【００４６】
なお、地図情報などの符号化データでは、ＷＬＤを符号化順とは逆方向から復号することがあり、ＧＯＳ間に依存性があると逆方向再生が困難である。よって、このような場合には、基本的にはクローズドＧＯＳが用いられる。
【００４７】
また、ＧＯＳは、高さ方向にレイヤ構造を有し、下のレイヤのＳＰＣから順に符号化又は復号が行われる。
【００４８】
図２はＧＯＳの最下層レイヤに属するＳＰＣ間の予測構造の一例を示す図である。図３はレイヤ間の予測構造の一例を示す図である。
【００４９】
ＧＯＳ内には１つ以上のＩ−ＳＰＣが存在する。三次元空間内には、ヒト、動物、車、自転車、信号、又はランドマークとなる建物などのオブジェクトが存在するが、特にサイズが小さいオブジェクトはＩ−ＳＰＣとして符号化すると有効である。例えば、三次元データ復号装置（以下、復号装置とも記す）は、ＧＯＳを低処理量又は高速に復号する際には、ＧＯＳ内のＩ−ＳＰＣのみを復号する。
【００５０】
また、符号化装置は、ＷＬＤ内のオブジェクトの粗密さに応じてＩ−ＳＰＣの符号化間隔又は出現頻度を切替えてもよい。
【００５１】
また、図３に示す構成において、符号化装置又は復号装置は、複数のレイヤを下層（レイヤ１）から順に符号化又は復号する。これにより、例えば自動走行車などにとってより情報量の多い地面付近のデータの優先度を上げることができる。
【００５２】
なお、ドローンなどで用いられる符号化データでは、ＧＯＳ内において高さ方向で上のレイヤのＳＰＣから順に符号化又は復号してもよい。
【００５３】
また、符号化装置又は復号装置は、復号装置が荒くＧＯＳを把握でき、徐々に解像度を上げるようにできるように、複数のレイヤを符号化又は復号してもよい。例えば、符号化装置又は復号装置は、レイヤ３、８、１、９…の順に符号化又は復号してもよい。
【００５４】
次に、静的オブジェクト及び動的オブジェクトの扱い方について説明する。
【００５５】
三次元空間には、建物又は道路など静的なオブジェクト又はシーン（以降、まとめて静的オブジェクトと呼ぶ）と、車又はヒトなどの動的なオブジェクト（以降、動的オブジェクトと呼ぶ）とが存在する。オブジェクトの検出は、ポイントクラウドのデータ、又は、ステレオカメラなどのカメラ映像などから特徴点を抽出するなどして、別途行われる。ここでは、動的オブジェクトの符号化方法の例について説明する。
【００５６】
第１方法は、静的オブジェクトと動的オブジェクトとを区別せずに符号化する方法である。第２方法は、静的オブジェクトと動的オブジェクトとを識別情報により区別する方法である。
【００５７】
例えば、ＧＯＳが識別単位として用いられる。この場合、静的オブジェクトを構成するＳＰＣを含むＧＯＳと、動的オブジェクトを構成するＳＰＣを含むＧＯＳとが、符号化データ内、又は符号化データとは別途格納される識別情報により区別される。
【００５８】
または、ＳＰＣが識別単位として用いられてもよい。この場合、静的オブジェクトを構成するＶＬＭを含むＳＰＣと、動的オブジェクトを構成するＶＬＭを含むＳＰＣとが、上記識別情報により区別される。
【００５９】
または、ＶＬＭ或いはＶＸＬが識別単位として用いられてもよい。この場合、静的オブジェクトを含むＶＬＭ又はＶＸＬと、動的オブジェクトを含むＶＬＭ又はＶＸＬとが上記識別情報により区別される。
【００６０】
また、符号化装置は、動的オブジェクトを１以上のＶＬＭ又はＳＰＣとして符号化し、静的オブジェクトを含むＶＬＭ又はＳＰＣと、動的オブジェクトを含むＳＰＣとを、互いに異なるＧＯＳとして符号化してもよい。また、符号化装置は、動的オブジェクトのサイズに応じてＧＯＳのサイズが可変となる場合には、ＧＯＳのサイズをメタ情報として別途格納する。
【００６１】
また、符号化装置は、静的オブジェクトと動的オブジェクトとを互いに独立に符号化し、静的オブジェクトから構成されるワールドに対して、動的オブジェクトを重畳してもよい。このとき、動的オブジェクトは１以上のＳＰＣから構成され、各ＳＰＣは、当該ＳＰＣが重畳される静的オブジェクトを構成する１以上のＳＰＣに対応付けられる。なお、動的オブジェクトをＳＰＣではなく、１以上のＶＬＭ又はＶＸＬにより表現してもよい。
【００６２】
また、符号化装置は、静的オブジェクトと動的オブジェクトとを互いに異なるストリームとして符号化してもよい。
【００６３】
また、符号化装置は、動的オブジェクトを構成する１以上のＳＰＣを含むＧＯＳを生成してもよい。さらに、符号化装置は、動的オブジェクトを含むＧＯＳ（ＧＯＳ＿Ｍ）と、ＧＯＳ＿Ｍの空間領域に対応する静的オブジェクトのＧＯＳとを同一サイズ（同一の空間領域を占める）に設定してもよい。これにより、ＧＯＳ単位で重畳処理を行うことができる。
【００６４】
動的オブジェクトを構成するＰ−ＳＰＣ又はＢ−ＳＰＣは、符号化済みの異なるＧＯＳに含まれるＳＰＣを参照してもよい。動的オブジェクトの位置が時間的に変化し、同一の動的オブジェクトが異なる時刻のＧＯＳとして符号化されるケースでは、ＧＯＳを跨いだ参照が圧縮率の観点から有効となる。
【００６５】
また、符号化データの用途に応じて、上記の第１方法と第２方法とを切替えてもよい。例えば、符号化三次元データを地図として用いる場合は、動的オブジェクトを分離できることが望ましいため、符号化装置は、第２方法を用いる。一方、符号化装置は、コンサート又はスポーツなどのイベントの三次元データを符号化する場合に、動的オブジェクトを分離する必要がなければ、第１方法を用いる。
【００６６】
また、ＧＯＳ又はＳＰＣの復号時刻と表示時刻とは符号化データ内、又はメタ情報として格納できる。また、静的オブジェクトの時刻情報は全て同一としてもよい。このとき、実際の復号時刻と表示時刻は、復号装置が決定するものとしてもよい。あるいは、復号時刻として、ＧＯＳ、あるいは、ＳＰＣ毎に異なる値が付与され、表示時刻として全て同一の値が付与されてもよい。さらに、ＨＥＶＣのＨＲＤ（Ｈｙｐｏｔｈｅｔｉｃａｌ  Ｒｅｆｅｒｅｎｃｅ  Ｄｅｃｏｄｅｒ）など動画像符号化におけるデコーダモデルのように、デコーダが所定のサイズのバッファを有し、復号時刻に従って所定のビットレートでビットストリームを読み込めば破綻なく復号できることを保証するモデルを導入してもよい。
【００６７】
次に、ワールド内におけるＧＯＳの配置について説明する。ワールドにおける三次元空間の座標は、互いに直交する３本の座標軸（ｘ軸、ｙ軸、ｚ軸）により表現される。ＧＯＳの符号化順に所定のルールを設けることで、空間的に隣接するＧＯＳが符号化データ内で連続するように符号化を行える。例えば、図４に示す例では、ｘｚ平面内のＧＯＳを連続的に符号化する。あるｘｚ平面内の全てのＧＯＳの符号化終了後にｙ軸の値を更新する。すなわち、符号化が進むにつれて、ワールドはｙ軸方向に伸びていく。また、ＧＯＳのインデックス番号は符号化順に設定される。
【００６８】
ここで、ワールドの三次元空間は、ＧＰＳ、或いは緯度及び経度などの地理的な絶対座標と１対１に対応付けておく。或いは、予め設定した基準位置からの相対位置により三次元空間が表現されてもよい。三次元空間のｘ軸、ｙ軸、ｚ軸の方向は、緯度及び経度などに基づいて決定される方向ベクトルとして表現され、当該方向ベクトルはメタ情報として符号化データと共に格納される。
【００６９】
また、ＧＯＳのサイズは固定とし、符号化装置は、当該サイズをメタ情報として格納する。また、ＧＯＳのサイズは、例えば、都市部か否か、又は、室内か外かなどに応じて切替えられてもよい。つまり、ＧＯＳのサイズは、情報としての価値があるオブジェクトの量又は性質に応じて切替えられてもよい。あるいは、符号化装置は、同一ワールド内において、オブジェクトの密度などに応じて、ＧＯＳのサイズ、又は、ＧＯＳ内のＩ−ＳＰＣの間隔を適応的に切替えてもよい。例えば、符号化装置は、オブジェクトの密度が高いほど、ＧＯＳのサイズを小さくし、ＧＯＳ内のＩ−ＳＰＣの間隔を短くする。
【００７０】
図５の例では、３番目から１０番目のＧＯＳの領域では、オブジェクトの密度が高いため、細かい粒度でのランダムアクセスを実現するために、ＧＯＳが細分化されている。なお、７番目から１０番目のＧＯＳは、それぞれ、３番目から６番目のＧＯＳの裏側に存在する。
【００７１】
次に、本実施の形態に係る三次元データ符号化装置の構成及び動作の流れを説明する。図６は、本実施の形態に係る三次元データ符号化装置１００のブロック図である。図７は、三次元データ符号化装置１００の動作例を示すフローチャートである。
【００７２】
図６に示す三次元データ符号化装置１００は、三次元データ１１１を符号化することで符号化三次元データ１１２を生成する。この三次元データ符号化装置１００は、取得部１０１と、符号化領域決定部１０２と、分割部１０３と、符号化部１０４とを備える。
【００７３】
図７に示すように、まず、取得部１０１は、点群データである三次元データ１１１を取得する（Ｓ１０１）。
【００７４】
次に、符号化領域決定部１０２は、取得した点群データに対応する空間領域のうち、符号化対象の領域を決定する（Ｓ１０２）。例えば、符号化領域決定部１０２は、ユーザ又は車両の位置に応じて、当該位置の周辺の空間領域を符号化対象の領域に決定する。
【００７５】
次に、分割部１０３は、符号化対象の領域に含まれる点群データを、各処理単位に分割する。ここで処理単位とは、上述したＧＯＳ及びＳＰＣ等である。また、この符号化対象の領域は、例えば、上述したワールドに対応する。具体的には、分割部１０３は、予め設定したＧＯＳのサイズ、又は、動的オブジェクトの有無或いはサイズに基づいて、点群データを処理単位に分割する（Ｓ１０３）。また、分割部１０３は、各ＧＯＳにおいて符号化順で先頭となるＳＰＣの開始位置を決定する。
【００７６】
次に、符号化部１０４は、各ＧＯＳ内の複数のＳＰＣを順次符号化することで符号化三次元データ１１２を生成する（Ｓ１０４）。
【００７７】
なお、ここでは、符号化対象の領域をＧＯＳ及びＳＰＣに分割した後に、各ＧＯＳを符号化する例を示したが、処理の手順は上記に限らない。例えば、一つのＧＯＳの構成を決定した後にそのＧＯＳを符号化し、その後、次のＧＯＳの構成を決定する等の手順を用いてもよい。
【００７８】
このように、三次元データ符号化装置１００は、三次元データ１１１を符号化することで符号化三次元データ１１２を生成する。具体的には、三次元データ符号化装置１００は、三次元データを、ランダムアクセス単位であって、各々が三次元座標に対応付けられている第１処理単位（ＧＯＳ）に分割し、第１処理単位（ＧＯＳ）を複数の第２処理単位（ＳＰＣ）に分割し、第２処理単位（ＳＰＣ）を複数の第３処理単位（ＶＬＭ）に分割する。また、第３処理単位（ＶＬＭ）は、位置情報が対応付けられる最小単位である１以上のボクセル（ＶＸＬ）を含む。
【００７９】
次に、三次元データ符号化装置１００は、複数の第１処理単位（ＧＯＳ）の各々を符号化することで符号化三次元データ１１２を生成する。具体的には、三次元データ符号化装置１００は、各第１処理単位（ＧＯＳ）において、複数の第２処理単位（ＳＰＣ）の各々を符号化する。また、三次元データ符号化装置１００は、各第２処理単位（ＳＰＣ）において、複数の第３処理単位（ＶＬＭ）の各々を符号化する。
【００８０】
例えば、三次元データ符号化装置１００は、処理対象の第１処理単位（ＧＯＳ）がクローズドＧＯＳである場合には、処理対象の第１処理単位（ＧＯＳ）に含まれる処理対象の第２処理単位（ＳＰＣ）を、処理対象の第１処理単位（ＧＯＳ）に含まれる他の第２処理単位（ＳＰＣ）を参照して符号化する。つまり、三次元データ符号化装置１００は、処理対象の第１処理単位（ＧＯＳ）とは異なる第１処理単位（ＧＯＳ）に含まれる第２処理単位（ＳＰＣ）を参照しない。
【００８１】
一方、処理対象の第１処理単位（ＧＯＳ）がオープンＧＯＳである場合には、処理対象の第１処理単位（ＧＯＳ）に含まれる処理対象の第２処理単位（ＳＰＣ）を、処理対象の第１処理単位（ＧＯＳ）に含まれる他の第２処理単位（ＳＰＣ）、又は、処理対象の第１処理単位（ＧＯＳ）とは異なる第１処理単位（ＧＯＳ）に含まれる第２処理単位（ＳＰＣ）を参照して符号化する。
【００８２】
また、三次元データ符号化装置１００は、処理対象の第２処理単位（ＳＰＣ）のタイプとして、他の第２処理単位（ＳＰＣ）を参照しない第１タイプ（Ｉ−ＳＰＣ）、他の一つの第２処理単位（ＳＰＣ）を参照する第２タイプ（Ｐ−ＳＰＣ）、及び他の二つの第２処理単位（ＳＰＣ）を参照する第３タイプのうちいずれかを選択し、選択したタイプに従い処理対象の第２処理単位（ＳＰＣ）を符号化する。
【００８３】
次に、本実施の形態に係る三次元データ復号装置の構成及び動作の流れを説明する。図８は、本実施の形態に係る三次元データ復号装置２００のブロックのブロック図である。図９は、三次元データ復号装置２００の動作例を示すフローチャートである。
【００８４】
図８に示す三次元データ復号装置２００は、符号化三次元データ２１１を復号することで復号三次元データ２１２を生成する。ここで、符号化三次元データ２１１は、例えば、三次元データ符号化装置１００で生成された符号化三次元データ１１２である。この三次元データ復号装置２００は、取得部２０１と、復号開始ＧＯＳ決定部２０２と、復号ＳＰＣ決定部２０３と、復号部２０４とを備える。
【００８５】
まず、取得部２０１は、符号化三次元データ２１１を取得する（Ｓ２０１）。次に、復号開始ＧＯＳ決定部２０２は、復号対象のＧＯＳに決定する（Ｓ２０２）。具体的には、復号開始ＧＯＳ決定部２０２は、符号化三次元データ２１１内、又は符号化三次元データとは別に格納されたメタ情報を参照して、復号を開始する空間位置、オブジェクト、又は、時刻に対応するＳＰＣを含むＧＯＳを復号対象のＧＯＳに決定する。
【００８６】
次に、復号ＳＰＣ決定部２０３は、ＧＯＳ内で復号するＳＰＣのタイプ（Ｉ、Ｐ、Ｂ）を決定する（Ｓ２０３）。例えば、復号ＳＰＣ決定部２０３は、（１）Ｉ−ＳＰＣのみを復号するか、（２）Ｉ−ＳＰＣ及びＰ−ＳＰＣを復号するか、（３）全てのタイプを復号するかを決定する。なお、全てのＳＰＣを復号するなど、予め復号するＳＰＣのタイプが決定している場合は、本ステップは行われなくてもよい。
【００８７】
次に、復号部２０４は、ＧＯＳ内で復号順（符号化順と同一）で先頭となるＳＰＣが符号化三次元データ２１１内で開始するアドレス位置を取得し、当該アドレス位置から先頭ＳＰＣの符号化データを取得し、当該先頭ＳＰＣから順に各ＳＰＣを順次復号する（Ｓ２０４）。なお、上記アドレス位置は、メタ情報等に格納されている。
【００８８】
このように、三次元データ復号装置２００は、復号三次元データ２１２を復号する。具体的には、三次元データ復号装置２００は、ランダムアクセス単位であって、各々が三次元座標に対応付けられている第１処理単位（ＧＯＳ）の符号化三次元データ２１１の各々を復号することで第１処理単位（ＧＯＳ）の復号三次元データ２１２を生成する。より具体的には、三次元データ復号装置２００は、各第１処理単位（ＧＯＳ）において、複数の第２処理単位（ＳＰＣ）の各々を復号する。また、三次元データ復号装置２００は、各第２処理単位（ＳＰＣ）において、複数の第３処理単位（ＶＬＭ）の各々を復号する。
【００８９】
以下、ランダムアクセス用のメタ情報について説明する。このメタ情報は、三次元データ符号化装置１００で生成され、符号化三次元データ１１２（２１１）に含まれる。
【００９０】
従来の二次元の動画像におけるランダムアクセスでは、指定した時刻の近傍となるランダムアクセス単位の先頭フレームから復号を開始していた。一方、ワールドにおいては、時刻に加えて、空間（座標又はオブジェクトなど）に対するランダムアクセスが想定される。
【００９１】
そこで、少なくとも座標、オブジェクト、及び時刻の３つの要素へのランダムアクセスを実現するために、各要素とＧＯＳのインデックス番号とを対応付けるテーブルを用意する。さらに、ＧＯＳのインデックス番号とＧＯＳの先頭となるＩ−ＳＰＣのアドレスを対応付ける。図１０は、メタ情報に含まれるテーブルの一例を示す図である。なお、図１０に示す全てのテーブルが用いられる必要はなく、少なくとも一つのテーブルが用いられればよい。
【００９２】
以下、一例として、座標を起点とするランダムアクセスについて説明する。座標（ｘ２、ｙ２、ｚ２）にアクセスする際には、まず、座標−ＧＯＳテーブルを参照して、座標が（ｘ２、ｙ２、ｚ２）である地点は２番目のＧＯＳに含まれることが分かる。次に、ＧＯＳアドレステーブルを参照し、２番目のＧＯＳにおける先頭のＩ−ＳＰＣのアドレスがａｄｄｒ（２）であることが分かるため、復号部２０４は、このアドレスからデータを取得して復号を開始する。
【００９３】
なお、アドレスは、論理フォーマットにおけるアドレスであっても、ＨＤＤ又はメモリの物理アドレスであってもよい。また、アドレスの代わりにファイルセグメントを特定する情報が用いられてもよい。例えば、ファイルセグメントは、１つ以上のＧＯＳなどをセグメント化した単位である。
【００９４】
また、オブジェクトが複数のＧＯＳに跨る場合には、オブジェクト−ＧＯＳテーブルにおいて、オブジェクトが属するＧＯＳを複数示してもよい。当該複数のＧＯＳがクローズドＧＯＳであれば、符号化装置及び復号装置は、並列に符号化又は復号を行うことができる。一方、当該複数のＧＯＳがオープンＧＯＳであれば、複数のＧＯＳが互いに参照しあうことでより圧縮効率を高めることができる。
【００９５】
オブジェクトの例としては、ヒト、動物、車、自転車、信号、又はランドマークとなる建物などがある。例えば、三次元データ符号化装置１００は、ワールドの符号化時に三次元のポイントクラウドなどからオブジェクトに特有の特徴点を抽出し、当該特徴点に基づきオブジェクトを検出し、検出したオブジェクトをランダムアクセスポイントとして設定できる。
【００９６】
このように、三次元データ符号化装置１００は、複数の第１処理単位（ＧＯＳ）と、複数の第１処理単位（ＧＯＳ）の各々に対応付けられている三次元座標とを示す第１情報を生成する。また、符号化三次元データ１１２（２１１）は、この第１情報を含む。また、第１情報は、さらに、複数の第１処理単位（ＧＯＳ）の各々に対応付けられている、オブジェクト、時刻及びデータ格納先のうち少なくとも一つを示す。
【００９７】
三次元データ復号装置２００は、符号化三次元データ２１１から第１情報を取得し、第１情報を用いて、指定された三次元座標、オブジェクト又は時刻に対応する第１処理単位の符号化三次元データ２１１を特定し、当該符号化三次元データ２１１を復号する。
【００９８】
以下、その他のメタ情報の例について説明する。ランダムアクセス用のメタ情報の他に、三次元データ符号化装置１００は、以下のようなメタ情報を生成及び格納してもよい。また、三次元データ復号装置２００は、このメタ情報を復号時に利用してもよい。
【００９９】
三次元データを地図情報として用いる場合などには、用途に応じてプロファイルが規定され、当該プロファイルを示す情報がメタ情報に含まれてもよい。例えば、市街地或いは郊外向け、又は、飛行物体向けのプロファイルが規定され、それぞれにおいてワールド、ＳＰＣ又はＶＬＭの最大又は最小サイズなどが定義される。例えば、市街地向けでは、郊外向けよりも詳細な情報が必要なため、ＶＬＭの最小サイズが小さく設定される。
【０１００】
メタ情報は、オブジェクトの種類を示すタグ値を含んでもよい。このタグ値はオブジェクトを構成するＶＬＭ、ＳＰＣ、又はＧＯＳと対応付けられる。例えば、タグ値「０」は「人」を示し、タグ値「１」は「車」を示し、タグ値「２」は「信号機」を示す、などオブジェクトの種類ごとにタグ値が設定されてもよい。または、オブジェクトの種類が判定しにくい又は判定する必要がない場合はサイズ、又は、動的オブジェクトか静的オブジェクトかなどの性質を示すタグ値が用いられてもよい。
【０１０１】
また、メタ情報は、ワールドが占める空間領域の範囲を示す情報を含んでもよい。
【０１０２】
また、メタ情報は、符号化データのストリーム全体、又は、ＧＯＳ内のＳＰＣなど、複数のＳＰＣに共通のヘッダ情報として、ＳＰＣ又はＶＸＬのサイズを格納してもよい。
【０１０３】
また、メタ情報は、ポイントクラウドの生成に用いた距離センサ或いはカメラなどの識別情報、又は、ポイントクラウド内の点群の位置精度を示す情報を含んでもよい。
【０１０４】
また、メタ情報は、ワールドが静的オブジェクトのみから構成されるか、動的オブジェクトを含むかを示す情報を含んでもよい。
【０１０５】
以下、本実施の形態の変形例について説明する。
【０１０６】
符号化装置又は復号装置は、互いに異なる２以上のＳＰＣ又はＧＯＳを並列で符号化又は復号してもよい。並列で符号化又は復号するＧＯＳは、ＧＯＳの空間位置を示すメタ情報などに基づいて決定できる。
【０１０７】
三次元データを車又は飛行物体などが移動する際の空間地図として用いる、又はこのような空間地図を生成するケースなどでは、符号化装置又は復号装置は、ＧＰＳ、経路情報、又はズーム倍率などに基づいて特定される空間に含まれるＧＯＳ又はＳＰＣを符号化又は復号してもよい。
【０１０８】
また、復号装置は、自己位置又は走行経路に近い空間から順に復号を行ってもよい。符号化装置又は復号装置は、自己位置又は走行経路から遠い空間を、近い空間に比べて優先度を落として符号化又は復号してもよい。ここで、優先度を落とすとは、処理順を下げる、解像度を下げる（間引いて処理する）、又は、画質を下げる（符号化効率を上げる。例えば、量子化ステップを大きくする。）等である。
【０１０９】
また、復号装置は、空間内で階層的に符号化されている符号化データを復号する際は、低階層のみを復号してもよい。
【０１１０】
また、復号装置は、地図のズーム倍率又は用途に応じて、低階層から優先的に復号してもよい。
【０１１１】
また、車又はロボットの自律走行時に行う自己位置推定又は物体認識などの用途では、符号化装置又は復号装置は、路面から特定高さ以内の領域（認識を行う領域）以外は解像度を落として符号化又は復号を行ってもよい。
【０１１２】
また、符号化装置は、室内と室外との空間形状を表現するポイントクラウドをそれぞれ個別に符号化してもよい。例えば、室内を表現するＧＯＳ（室内ＧＯＳ）と室外を表現するＧＯＳ（室外ＧＯＳ）とを分けることで、復号装置は、符号化データを利用する際に、視点位置に応じて復号するＧＯＳを選択できる。
【０１１３】
また、符号化装置は、座標が近い室内ＧＯＳと室外ＧＯＳとを、符号化ストリーム内で隣接するように符号化してもよい。例えば、符号化装置は、両者の識別子を対応付け、符号化ストリーム内、又は別途格納されるメタ情報内に対応付けた識別子を示す情報を格納する。これにより、復号装置は、メタ情報内の情報を参照して、座標が近い室内ＧＯＳと室外ＧＯＳとを識別できる。
【０１１４】
また、符号化装置は、室内ＧＯＳと室外ＧＯＳとで、ＧＯＳ又はＳＰＣのサイズを切替えてもよい。例えば、符号化装置は、室内では室外に比べてＧＯＳのサイズを小さく設定する。また、符号化装置は、室内ＧＯＳと室外ＧＯＳとで、ポイントクラウドから特徴点を抽出する際の精度、又はオブジェクト検出の精度などを変更してもよい。
【０１１５】
また、符号化装置は、復号装置が動的オブジェクトを静的オブジェクトと区別して表示するための情報を符号化データに付加してもよい。これにより、復号装置は、動的オブジェクトと赤枠又は説明用の文字などとを合わせて表示できる。なお、復号装置は、動的オブジェクトの代わりに赤枠又は説明用の文字のみを表示してもよい。また、復号装置は、より細かいオブジェクト種別を表示してもよい。例えば、車には赤枠が用いられ、ヒトには黄色枠が用いられてもよい。
【０１１６】
また、符号化装置又は復号装置は、動的オブジェクトの出現頻度、又は、静的オブジェクトと動的オブジェクトとの割合などに応じて、動的オブジェクトと静的オブジェクトとを異なるＳＰＣ又はＧＯＳとして符号化又は復号するかどうかを決定してもよい。例えば、動的オブジェクトの出現頻度又は割合が閾値を超える場合には、動的オブジェクトと静的オブジェクトとが混在するＳＰＣ又はＧＯＳが許容され、動的オブジェクトの出現頻度又は割合が閾値を超えない場合には、動的オブジェクトと静的オブジェクトとが混在するＳＰＣ又はＧＯＳが許容されない。
【０１１７】
動的オブジェクトをポイントクラウドではなく、カメラの二次元画像情報から検出する際には、符号化装置は、検出結果を識別するための情報（枠又は文字など）とオブジェクト位置とを別途取得し、これらの情報を三次元の符号化データの一部として符号化してもよい。この場合、復号装置は、静的オブジェクトの復号結果に対して、動的オブジェクトを示す補助情報（枠又は文字）を重畳して表示する。
【０１１８】
また、符号化装置は、静的オブジェクトの形状の複雑さなどに応じて、ＳＰＣにおけるＶＸＬ又はＶＬＭの粗密さを変更してもよい。例えば、符号化装置は、静的オブジェクトの形状が複雑なほど、ＶＸＬ又はＶＬＭを密に設定する。さらに、符号化装置は、空間位置又は色情報を量子化する際の量子化ステップなどをＶＸＬ又はＶＬＭの粗密さに応じて決定してもよい。例えば、符号化装置は、ＶＸＬ又はＶＬＭが密なほど量子化ステップを小さく設定する。
【０１１９】
以上のように、本実施の形態に係る符号化装置又は復号装置は、座標情報を有するスペース単位で空間の符号化又は復号を行う。
【０１２０】
また、符号化装置及び復号装置は、スペース内において、ボリューム単位で符号化又は復号を行う。ボリュームは、位置情報が対応付けられる最小単位であるボクセルを含む。
【０１２１】
また、符号化装置及び復号装置は、座標、オブジェクト、及び時間等を含む空間情報の各要素とＧＯＰとを対応付けたテーブル、又は各要素間を対応付けたテーブルにより任意の要素間を対応付けて符号化又は復号を行う。また、復号装置は、選択された要素の値を用いて座標を判定し、座標からボリューム、ボクセル又はスペースを特定し、当該ボリューム又はボクセルを含むスペース、又は特定されたスペースを復号する。
【０１２２】
また、符号化装置は、特徴点抽出又はオブジェクト認識により、要素により選択可能なボリューム、ボクセル又はスペースを判定し、ランダムアクセス可能なボリューム、ボクセル又はスペースとして符号化する。
【０１２３】
スペースは、当該スペース単体で符号化又は復号可能なＩ−ＳＰＣと、任意の１つの処理済みスペースを参照して符号化又は復号されるＰ−ＳＰＣと、任意の二つの処理済みスペースを参照して符号化又は復号されるＢ−ＳＰＣとの３種類のタイプに分類される。
【０１２４】
１以上のボリュームが、静的オブジェクト又は動的なオブジェクトに対応する。静的オブジェクトを含むスペースと動的オブジェクトを含むスペースとは互いに異なるＧＯＳとして符号化又は復号される。つまり、静的オブジェクトを含むＳＰＣと、動的オブジェクトを含むＳＰＣとが異なるＧＯＳに割り当てられる。
【０１２５】
動的オブジェクトはオブジェクトごとに符号化又は復号され、静的オブジェクトを含む１以上のスペースに対応付けられる。つまり、複数の動的オブジェクトは個別に符号化され、得られた複数の動的オブジェクトの符号化データは、静的オブジェクトを含むＳＰＣに対応付けられる。
【０１２６】
符号化装置及び復号装置は、ＧＯＳ内のＩ−ＳＰＣの優先度を上げて、符号化又は復号を行う。例えば、符号化装置は、Ｉ−ＳＰＣの劣化が少なくなるように（復号後に元の三次元データがより忠実に再現されるように）符号化を行う。また、復号装置は、例えば、Ｉ−ＳＰＣのみを復号する。
【０１２７】
符号化装置は、ワールド内のオブジェクトの疎密さ又は数（量）に応じてＩ−ＳＰＣを用いる頻度を変えて符号化を行ってもよい。つまり、符号化装置は、三次元データに含まれるオブジェクトの数又は粗密さに応じて、Ｉ−ＳＰＣを選択する頻度を変更する。例えば、符号化装置は、ワールド内のオブジェクトが密であるほどＩスペースを用いる頻度を上げる。
【０１２８】
また、符号化装置は、ランダムアクセスポイントをＧＯＳ単位で設定し、ＧＯＳに対応する空間領域を示す情報をヘッダ情報に格納する。
【０１２９】
符号化装置は、ＧＯＳの空間サイズとして、例えば、デフォルト値を使用する。なお、符号化装置は、オブジェクト又は動的オブジェクトの数（量）又は粗密さに応じてＧＯＳのサイズを変更してもよい。例えば、符号化装置は、オブジェクト或いは動的オブジェクトが密なほど、又は数が多いほど、ＧＯＳの空間サイズを小さくする。
【０１３０】
また、スペース又はボリュームは、デプスセンサ、ジャイロ、又はカメラ等のセンサで得られた情報を用いて導出された特徴点群を含む。特徴点の座標はボクセルの中心位置に設定される。また、ボクセルの細分化により位置情報の高精度化を実現できる。
【０１３１】
特徴点群は、複数のピクチャを用いて導出される。複数のピクチャは、実際の時刻情報と、スペースに対応付けられた複数のピクチャで同一の時刻情報（例えば、レート制御等に用いられる符号化時刻）との少なくとも２種類の時刻情報を有する。
【０１３２】
また、１以上のスペースを含むＧＯＳ単位で符号化又は復号が行われる。
【０１３３】
符号化装置及び復号装置は、処理済みのＧＯＳ内のスペースを参照して、処理対象のＧＯＳ内のＰスペース又はＢスペースの予測を行う。
【０１３４】
または、符号化装置及び復号装置は、異なるＧＯＳを参照せず、処理対象のＧＯＳ内の処理済スペースを用いて処理対象のＧＯＳ内のＰスペース又はＢスペースの予測を行う。
【０１３５】
また、符号化装置及び復号装置は、１以上のＧＯＳを含むワールド単位で符号化ストリームを送信又は受信する。
【０１３６】
また、ＧＯＳは少なくともワールド内で１方向にレイヤ構造を持ち、符号化装置及び復号装置は、下位レイヤから符号化又は復号を行う。例えば、ランダムアクセス可能なＧＯＳは最下位レイヤに属する。上位レイヤに属するＧＯＳは同一レイヤ以下に属するＧＯＳを参照する。つまり、ＧＯＳは、予め定められた方向に空間分割され、各々が１以上のＳＰＣを含む複数のレイヤを含む。符号化装置及び復号装置は、各ＳＰＣを、当該ＳＰＣと同一レイヤ又は当該ＳＰＣより下層のレイヤに含まれるＳＰＣを参照して符号化又は復号する。
【０１３７】
また、符号化装置及び復号装置は、複数のＧＯＳを含むワールド単位内で、連続してＧＯＳを符号化又は復号する。符号化装置及び復号装置は、符号化又は復号の順序（方向）を示す情報をメタデータとして書き込む又は読み出す。つまり、符号化データは、複数のＧＯＳの符号化順を示す情報を含む。
【０１３８】
また、符号化装置及び復号装置は、互いに異なる２以上のスペース又はＧＯＳを並列で符号化又は復号する。
【０１３９】
また、符号化装置及び復号装置は、スペース又はＧＯＳの空間情報（座標、サイズ等）を符号化又は復号する。
【０１４０】
また、符号化装置及び復号装置は、ＧＰＳ、経路情報、又は倍率など、自己の位置又は／及び領域サイズに関する外部情報に基づいて特定される特定空間に含まれるスペース又はＧＯＳを符号化又は復号する。
【０１４１】
符号化装置又は復号装置は、自己の位置から遠い空間は、近い空間に比べて優先度を落として符号化又は復号する。
【０１４２】
符号化装置は、倍率又は用途に応じて、ワールドのある１方向を設定し、当該方向にレイヤ構造を持つＧＯＳを符号化する。また、復号装置は、倍率又は用途に応じて設定されたワールドのある１方向にレイヤ構造を持つＧＯＳを、下位レイヤから優先的に復号する。
【０１４３】
符号化装置は、室内と室外とでスペースに含まれる特徴点抽出、オブジェクト認識の精度、又は空間領域サイズなどを変化させる。ただし、符号化装置及び復号装置は、座標が近い室内ＧＯＳと室外ＧＯＳとをワールド内で隣接して符号化又は復号し、これらの識別子も対応付けて符号化又は復号する。
【０１４４】
（実施の形態２）
ポイントクラウドの符号化データを実際の装置又はサービスにおいて使用する際には、ネットワーク帯域を抑制するために用途に応じて必要な情報を送受信することが望ましい。しかしながら、これまで、三次元データの符号化構造にはそのような機能が存在せず、そのための符号化方法も存在しなかった。
【０１４５】
本実施の形態では、三次元のポイントクラウドの符号化データにおいて用途に応じて必要な情報のみを送受信する機能を提供するための三次元データ符号化方法及び三次元データ符号化装置、並びに、当該符号化データを復号する三次元データ復号方法及び三次元データ復号装置について説明する。
【０１４６】
特徴量を一定以上持つボクセル（ＶＸＬ）を特徴ボクセル（ＦＶＸＬ）と定義し、ＦＶＸＬで構成されるワールド（ＷＬＤ）をスパースワールド（ＳＷＬＤ）と定義する。図１１は、スパースワールド及びワールドの構成例を示す図である。ＳＷＬＤには、ＦＶＸＬで構成されるＧＯＳであるＦＧＯＳと、ＦＶＸＬで構成されるＳＰＣであるＦＳＰＣと、ＦＶＸＬで構成されるＶＬＭであるＦＶＬＭと含まれる。ＦＧＯＳ、ＦＳＰＣ及びＦＶＬＭのデータ構造及び予測構造はＧＯＳ、ＳＰＣ及びＶＬＭと同様であっても構わない。
【０１４７】
特徴量とは、ＶＸＬの三次元位置情報、又はＶＸＬ位置の可視光情報を表現する特徴量であり、特に立体物のコーナー及びエッジ等で多く検出される特徴量である。具体的には、この特徴量は、下記のような三次元特徴量又は可視光の特徴量であるが、その他、ＶＸＬの位置、輝度、又は色情報などを表す特徴量であれば、どのようなものでも構わない。
【０１４８】
三次元特徴量として、ＳＨＯＴ特徴量（Ｓｉｇｎａｔｕｒｅ  ｏｆ  Ｈｉｓｔｏｇｒａｍｓ  ｏｆ  ＯｒｉｅｎＴａｔｉｏｎｓ）、ＰＦＨ特徴量（Ｐｏｉｎｔ  Ｆｅａｔｕｒｅ  Ｈｉｓｔｏｇｒａｍｓ）、又はＰＰＦ特徴量（Ｐｏｉｎｔ  Ｐａｉｒ  Ｆｅａｔｕｒｅ）が用いられる。
【０１４９】
ＳＨＯＴ特徴量は、ＶＸＬ周辺を分割し、基準点と分割された領域の法線ベクトルとの内積を計算してヒストグラム化することで得られる。このＳＨＯＴ特徴量は、次元数が高く、特徴表現力が高いという特徴を有する。
【０１５０】
ＰＦＨ特徴量は、ＶＸＬ近傍の多数の２点組を選択し、その２点から法線ベクトル等を算出してヒストグラム化することで得られる。このＰＦＨ特徴量は、ヒストグラム特徴なので、多少の外乱に対してロバスト性を有し、特徴表現力も高いという特徴を有する。
【０１５１】
ＰＰＦ特徴量は、２点のＶＸＬ毎に法線ベクトル等を用いて算出される特徴量である。このＰＰＦ特徴量には、全ＶＸＬが使われるため、オクルージョンに対してロバスト性を有する。
【０１５２】
また、可視光の特徴量として、画像の輝度勾配情報等の情報を用いたＳＩＦＴ（Ｓｃａｌｅ−Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｎｓｆｏｒｍ）、ＳＵＲＦ（Ｓｐｅｅｄｅｄ  Ｕｐ  Ｒｏｂｕｓｔ  Ｆｅａｔｕｒｅｓ）、又はＨＯＧ（Ｈｉｓｔｏｇｒａｍ  ｏｆ  Ｏｒｉｅｎｔｅｄ  Ｇｒａｄｉｅｎｔｓ）等を用いることができる。
【０１５３】
ＳＷＬＤは、ＷＬＤの各ＶＸＬから上記特徴量を算出し、ＦＶＸＬを抽出することで生成される。ここで、ＳＷＬＤはＷＬＤが更新される度に更新しても構わないし、ＷＬＤの更新タイミングに関わらず、一定時間経過後に定期的に更新するようにしても構わない。
【０１５４】
ＳＷＬＤは特徴量毎に生成しても構わない。例えば、ＳＨＯＴ特徴量に基づくＳＷＬＤ１とＳＩＦＴ特徴量に基づくＳＷＬＤ２とのように、特徴量毎に別々のＳＷＬＤが生成され、用途に応じてＳＷＬＤを使い分けるようにしても構わない。また、算出した各ＦＶＸＬの特徴量を特徴量情報として各ＦＶＸＬに保持するようにしても構わない。
【０１５５】
次に、スパースワールド（ＳＷＬＤ）の利用方法について説明する。ＳＷＬＤは特徴ボクセル（ＦＶＸＬ）のみを含むため、全てのＶＸＬを含むＷＬＤと比べて一般的にデータサイズが小さい。
【０１５６】
特徴量を利用して何らかの目的を果たすアプリケーションにおいては、ＷＬＤの代わりにＳＷＬＤの情報を利用することで、ハードディスクからの読み出し時間、並びにネットワーク転送時の帯域及び転送時間を抑制することができる。例えば、地図情報として、ＷＬＤとＳＷＬＤとをサーバに保持しておき、クライアントからの要望に応じて、送信する地図情報をＷＬＤ又はＳＷＬＤに切り替えることにより、ネットワーク帯域及び転送時間を抑制することができる。以下、具体的な例を示す。
【０１５７】
図１２及び図１３は、ＳＷＬＤ及びＷＬＤの利用例を示す図である。図１２に示すように、車載装置であるクライアント１が自己位置判定用途として地図情報を必要な場合は、クライアント１はサーバに自己位置推定用の地図データの取得要望を送る（Ｓ３０１）。サーバは、当該取得要望に応じてＳＷＬＤをクライアント１に送信する（Ｓ３０２）。クライアント１は、受信したＳＷＬＤを用いて自己位置判定を行う（Ｓ３０３）。この際、クライアント１はレンジファインダなどの距離センサ、ステレオカメラ、又は複数の単眼カメラの組合せ等の様々な方法でクライアント１の周辺のＶＸＬ情報を取得し、得られたＶＸＬ情報とＳＷＬＤとから自己位置情報を推定する。ここで自己位置情報は、クライアント１の三次元位置情報及び向き等を含む。
【０１５８】
図１３に示すように、車載装置であるクライアント２が三次元地図等の地図描画の用途として地図情報が必要な場合は、クライアント２はサーバに地図描画用の地図データの取得要望を送る（Ｓ３１１）。サーバは、当該取得要望に応じてＷＬＤをクライアント２に送信する（Ｓ３１２）。クライアント２は、受信したＷＬＤを用いて地図描画を行う（Ｓ３１３）。この際、クライアント２は、例えば、自己が可視光カメラ等で撮影した画像と、サーバから取得したＷＬＤとを用いてレンダリング画像を作成し、作成した画像をカーナビ等の画面に描画する。
【０１５９】
上記のように、サーバは、自己位置推定のような各ＶＸＬの特徴量を主に必要とする用途ではＳＷＬＤをクライアントに送信し、地図描画のように詳細なＶＸＬ情報が必要な場合はＷＬＤをクライアントに送信する。これにより、地図データを効率よく送受信することが可能となる。
【０１６０】
なお、クライアントは、自分でＳＷＬＤとＷＬＤのどちらが必要かを判断し、サーバへＳＷＬＤ又はＷＬＤの送信を要求しても構わない。また、サーバは、クライアント又はネットワークの状況に合わせて、ＳＷＬＤかＷＬＤのどちらを送信すべきかを判断しても構わない。
【０１６１】
次に、スパースワールド（ＳＷＬＤ）とワールド（ＷＬＤ）との送受信を切り替える方法を説明する。
【０１６２】
ネットワーク帯域に応じてＷＬＤ又はＳＷＬＤを受信するかを切替えるようにしてもよい。図１４は、この場合の動作例を示す図である。例えば、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）環境下等の使用できるネットワーク帯域が限られている低速ネットワークが用いられている場合には、クライアントは、低速ネットワーク経由でサーバにアクセスし（Ｓ３２１）、サーバから地図情報としてＳＷＬＤを取得する（Ｓ３２２）。一方、Ｗｉ‐Ｆｉ（登録商標）環境下等のネットワーク帯域に余裕がある高速ネットワークが用いられている場合には、クライアントは、高速ネットワーク経由でサーバにアクセスし（Ｓ３２３）、サーバからＷＬＤを取得する（Ｓ３２４）。これにより、クライアントは、当該クライアントのネットワーク帯域に応じて適切な地図情報を取得することができる。
【０１６３】
具体的には、クライアントは、屋外ではＬＴＥ経由でＳＷＬＤを受信し、施設等の屋内に入った場合はＷｉ‐Ｆｉ（登録商標）経由でＷＬＤを取得する。これにより、クライアントは、屋内のより詳細な地図情報を取得することが可能となる。
【０１６４】
このように、クライアントは、自身が用いるネットワークの帯域に応じてサーバにＷＬＤ又はＳＷＬＤを要求してもよい。または、クライアントは、自身が用いるネットワークの帯域を示す情報をサーバに送信し、サーバは当該情報に応じて当該クライアントに適したデータ（ＷＬＤ又はＳＷＬＤ）を送信してもよい。または、サーバは、クライアントのネットワーク帯域を判別し、当該クライアントに適したデータ（ＷＬＤ又はＳＷＬＤ）を送信してもよい。
【０１６５】
また、移動速度に応じてＷＬＤ又はＳＷＬＤを受信するかを切替えるようにしてもよい。図１５は、この場合の動作例を示す図である。例えば、クライアントが高速移動をしている場合は（Ｓ３３１）、クライアントはＳＷＬＤをサーバから受信する（Ｓ３３２）。一方、クライアントが低速移動をしている場合は（Ｓ３３３）、クライアントはＷＬＤをサーバから受信する（Ｓ３３４）。これにより、クライアントは、ネットワーク帯域を抑制しながら、速度に合った地図情報を取得することができる。具体的には、クライアントは、高速道路を走行中にはデータ量の少ないＳＷＬＤを受信することにより、大まかな地図情報を適切な速度で更新することができる。一方、クライアントは、一般道路を走行中にはＷＬＤを受信することにより、より詳細な地図情報を取得することが可能となる。
【０１６６】
このように、クライアントは、自身の移動速度に応じてサーバにＷＬＤ又はＳＷＬＤを要求してもよい。または、クライアントは、自身の移動速度を示す情報をサーバに送信し、サーバは当該情報に応じて当該クライアントに適したデータ（ＷＬＤ又はＳＷＬＤ）を送信してもよい。または、サーバは、クライアントの移動速度を判別し、当該クライアントに適したデータ（ＷＬＤ又はＳＷＬＤ）を送信してもよい。
【０１６７】
また、クライアントは、最初にＳＷＬＤをサーバより取得し、その中で重要な領域のＷＬＤを取得しても構わない。例えば、クライアントは、地図データを取得する際に、最初に大まかな地図情報をＳＷＬＤで取得し、そこから建物、標識、又は人物等の特徴が多く出現する領域を絞り込み、絞り込んだ領域のＷＬＤを後から取得する。これにより、クライアントは、サーバからの受信データ量を抑制しつつ、必要な領域の詳細な情報を取得することが可能となる。
【０１６８】
また、サーバは、ＷＬＤから物体毎に別々のＳＷＬＤを作成し、クライアントは、用途に合わせて、それぞれを受信してもよい。これにより、ネットワーク帯域を抑制できる。例えば、サーバは、ＷＬＤから予め人又は車を認識し、人のＳＷＬＤと車のＳＷＬＤを作成する。クライアントは、周囲の人の情報を取得したい場合には人のＳＷＬＤを、車の情報を取得したい場合には車のＳＷＬＤを受信する。また、このようなＳＷＬＤの種類はヘッダ等に付加された情報（フラグ又はタイプ等）によって区別するようにしても構わない。
【０１６９】
次に、本実施の形態に係る三次元データ符号化装置（例えばサーバ）の構成及び動作の流れを説明する。図１６は、本実施の形態に係る三次元データ符号化装置４００のブロック図である。図１７は、三次元データ符号化装置４００による三次元データ符号化処理のフローチャートである。
【０１７０】
図１６に示す三次元データ符号化装置４００は、入力三次元データ４１１を符号化することで符号化ストリームである符号化三次元データ４１３及び４１４を生成する。ここで、符号化三次元データ４１３はＷＬＤに対応する符号化三次元データであり、符号化三次元データ４１４はＳＷＬＤに対応する符号化三次元データである。この三次元データ符号化装置４００は、取得部４０１と、符号化領域決定部４０２と、ＳＷＬＤ抽出部４０３と、ＷＬＤ符号化部４０４と、ＳＷＬＤ符号化部４０５とを備える。
【０１７１】
図１７に示すように、まず、取得部４０１は、三次元空間内の点群データである入力三次元データ４１１を取得する（Ｓ４０１）。
【０１７２】
次に、符号化領域決定部４０２は、点群データが存在する空間領域に基づいて、符号化対象の空間領域を決定する（Ｓ４０２）。
【０１７３】
次に、ＳＷＬＤ抽出部４０３は、符号化対象の空間領域をＷＬＤと定義し、ＷＬＤに含まれる各ＶＸＬから特徴量を算出する。そして、ＳＷＬＤ抽出部４０３は、特徴量が予め定められた閾値以上のＶＸＬを抽出し、抽出したＶＸＬをＦＶＸＬと定義し、当該ＦＶＸＬをＳＷＬＤへ追加することで、抽出三次元データ４１２を生成する（Ｓ４０３）。つまり、入力三次元データ４１１から特徴量が閾値以上の抽出三次元データ４１２が抽出される。
【０１７４】
次に、ＷＬＤ符号化部４０４は、ＷＬＤに対応する入力三次元データ４１１を符号化することでＷＬＤに対応する符号化三次元データ４１３を生成する（Ｓ４０４）。このとき、ＷＬＤ符号化部４０４は、符号化三次元データ４１３のヘッダに、当該符号化三次元データ４１３がＷＬＤを含むストリームであることを区別するための情報を付加する。
【０１７５】
また、ＳＷＬＤ符号化部４０５は、ＳＷＬＤに対応する抽出三次元データ４１２を符号化することでＳＷＬＤに対応する符号化三次元データ４１４を生成する（Ｓ４０５）。このとき、ＳＷＬＤ符号化部４０５は、符号化三次元データ４１４のヘッダに、当該符号化三次元データ４１４がＳＷＬＤを含むストリームであることを区別するための情報を付加する。
【０１７６】
なお、符号化三次元データ４１３を生成する処理と、符号化三次元データ４１４を生成する処理との処理順は上記と逆でもよい。また、これらの処理の一部又は全てが並列に行われてもよい。
【０１７７】
符号化三次元データ４１３及び４１４のヘッダに付与される情報として、例えば、「ｗｏｒｌｄ＿ｔｙｐｅ」というパラメータが定義される。ｗｏｒｌｄ＿ｔｙｐｅ＝０の場合はストリームがＷＬＤを含むことを表し、ｗｏｒｌｄ＿ｔｙｐｅ＝１の場合はストリームがＳＷＬＤを含むことを表す。更にその他の多数の種別を定義する場合には、ｗｏｒｌｄ＿ｔｙｐｅ＝２のように割り当てる数値を増やすようにしても構わない。また、符号化三次元データ４１３及び４１４の一方に特定のフラグが含まれてもよい。例えば、符号化三次元データ４１４に、当該ストリームがＳＷＬＤを含むことを含むフラグが付与されてもよい。この場合、復号装置は、フラグの有無によりＷＬＤを含むストリームか、ＳＷＬＤを含むストリームかを判別できる。
【０１７８】
また、ＷＬＤ符号化部４０４がＷＬＤを符号化する際に使用する符号化方法と、ＳＷＬＤ符号化部４０５がＳＷＬＤを符号化する際に使用する符号化方法とは異なってもよい。
【０１７９】
例えば、ＳＷＬＤではデータが間引かされているため、ＷＬＤに比べ、周辺のデータとの相関が低くなる可能性がある。よって、ＳＷＬＤに用いられる符号化方法では、ＷＬＤに用いられる符号化方法よりもイントラ予測及びインター予測のうちインター予測が優先されてもよい。
【０１８０】
また、ＳＷＬＤに用いられる符号化方法とＷＬＤに用いられる符号化方法とでは、三次元位置の表現手法が異なってもよい。例えば、ＳＷＬＤでは、三次元座標によりＦＶＸＬの三次元位置を表現し、ＷＬＤでは、後述する８分木により三次元位置が表現されてもよいし、その逆でもよい。
【０１８１】
また、ＳＷＬＤ符号化部４０５は、ＳＷＬＤの符号化三次元データ４１４のデータサイズがＷＬＤの符号化三次元データ４１３のデータサイズより小さくなるように符号化を行う。例えば、上述したようにＳＷＬＤは、ＷＬＤに比べ、データ間の相関が低くなる可能性がある。これにより、符号化効率が下がり、符号化三次元データ４１４のデータサイズがＷＬＤの符号化三次元データ４１３のデータサイズより大きくなる可能性がある。よって、ＳＷＬＤ符号化部４０５は、得られた符号化三次元データ４１４のデータサイズが、ＷＬＤの符号化三次元データ４１３のデータサイズより大きい場合には、再符号化を行うことで、データサイズを低減した符号化三次元データ４１４を再生成する。
【０１８２】
例えば、ＳＷＬＤ抽出部４０３は、抽出する特徴点の数を減らした抽出三次元データ４１２を再生成し、ＳＷＬＤ符号化部４０５は、当該抽出三次元データ４１２を符号化する。または、ＳＷＬＤ符号化部４０５における量子化の程度をより粗くしてもよい。例えば、後述する８分木構造において、最下層のデータを丸め込むことで、量子化の程度を粗くすることができる。
【０１８３】
また、ＳＷＬＤ符号化部４０５は、ＳＷＬＤの符号化三次元データ４１４のデータサイズをＷＬＤの符号化三次元データ４１３のデータサイズより小さくできない場合は、ＳＷＬＤの符号化三次元データ４１４を生成しなくてもよい。または、ＷＬＤの符号化三次元データ４１３がＳＷＬＤの符号化三次元データ４１４にコピーされてもよい。つまり、ＳＷＬＤの符号化三次元データ４１４としてＷＬＤの符号化三次元データ４１３がそのまま用いられてもよい。
【０１８４】
次に、本実施の形態に係る三次元データ復号装置（例えばクライアント）の構成及び動作の流れを説明する。図１８は、本実施の形態に係る三次元データ復号装置５００のブロック図である。図１９は、三次元データ復号装置５００による三次元データ復号処理のフローチャートである。
【０１８５】
図１８に示す三次元データ復号装置５００は、符号化三次元データ５１１を復号することで復号三次元データ５１２又は５１３を生成する。ここで、符号化三次元データ５１１は、例えば、三次元データ符号化装置４００で生成された符号化三次元データ４１３又は４１４である。
【０１８６】
この三次元データ復号装置５００は、取得部５０１と、ヘッダ解析部５０２と、ＷＬＤ復号部５０３と、ＳＷＬＤ復号部５０４とを備える。
【０１８７】
図１９に示すように、まず、取得部５０１は、符号化三次元データ５１１を取得する（Ｓ５０１）。次に、ヘッダ解析部５０２は、符号化三次元データ５１１のヘッダを解析し、符号化三次元データ５１１がＷＬＤを含むストリームか、ＳＷＬＤを含むストリームかを判別する（Ｓ５０２）。例えば、上述したｗｏｒｌｄ＿ｔｙｐｅのパラメータが参照され、判別が行われる。
【０１８８】
符号化三次元データ５１１がＷＬＤを含むストリームである場合（Ｓ５０３でＹｅｓ）、ＷＬＤ復号部５０３は、符号化三次元データ５１１を復号することでＷＬＤの復号三次元データ５１２を生成する（Ｓ５０４）。一方、符号化三次元データ５１１がＳＷＬＤを含むストリームである場合（Ｓ５０３でＮｏ）、ＳＷＬＤ復号部５０４は、符号化三次元データ５１１を復号することでＳＷＬＤの復号三次元データ５１３を生成する（Ｓ５０５）。
【０１８９】
また、符号化装置と同様に、ＷＬＤ復号部５０３がＷＬＤを復号する際に使用する復号方法と、ＳＷＬＤ復号部５０４がＳＷＬＤを復号する際に使用する復号方法とは異なってもよい。例えば、ＳＷＬＤに用いられる復号方法では、ＷＬＤに用いられる復号方法よりもイントラ予測及びインター予測のうちインター予測が優先されてもよい。
【０１９０】
また、ＳＷＬＤに用いられる復号方法とＷＬＤに用いられる復号方法とでは、三次元位置の表現手法が異なってもよい。例えば、ＳＷＬＤでは、三次元座標によりＦＶＸＬの三次元位置を表現し、ＷＬＤでは、後述する８分木により三次元位置が表現されてもよいし、その逆でもよい。
【０１９１】
次に、三次元位置の表現手法である８分木表現について説明する。三次元データに含まれるＶＸＬデータは８分木構造に変換された後、符号化される。図２０は、ＷＬＤのＶＸＬの一例を示す図である。図２１は、図２０に示すＷＬＤの８分木構造を示す図である。図２０に示す例では、点群を含むＶＸＬ（以下、有効ＶＸＬ）である３つＶＸＬ１〜３が存在する。図２１に示すように、８分木構造はノードとリーフで構成される。各ノードは最大で８つのノードまたはリーフを持つ。各リーフはＶＸＬ情報を持つ。ここで、図２１に示すリーフのうち、リーフ１、２、３はそれぞれ図２０に示すＶＸＬ１、ＶＸＬ２、ＶＸＬ３を表す。
【０１９２】
具体的には、各ノード及びリーフは三次元位置に対応する。ノード１は、図２０に示す全体のブロックに対応する。ノード１に対応するブロックは８つのブロックに分割され、８つのブロックのうち、有効ＶＸＬを含むブロックがノードに設定され、それ以外のブロックはリーフに設定される。ノードに対応するブロックは、さらに８つのノードまたはリーフに分割され、この処理が木構造の階層分繰り返される。また、最下層のブロックは、全てリーフに設定される。
【０１９３】
また、図２２は、図２０に示すＷＬＤから生成したＳＷＬＤの例を示す図である。図２０に示すＶＸＬ１及びＶＸＬ２は特徴量抽出の結果、ＦＶＸＬ１及びＦＶＸＬ２と判定され、ＳＷＬＤに加えられている。一方で、ＶＸＬ３はＦＶＸＬと判定されず、ＳＷＬＤに含まれていない。図２３は、図２２に示すＳＷＬＤの８分木構造を示す図である。図２３に示す８分木構造では、図２１に示す、ＶＸＬ３に相当するリーフ３が削除されている。これにより、図２１に示すノード３が有効ＶＸＬを持たなくなり、リーフに変更されている。このように一般的にＳＷＬＤのリーフ数はＷＬＤのリーフ数より少なくなり、ＳＷＬＤの符号化三次元データもＷＬＤの符号化三次元データより小さくなる。
【０１９４】
以下、本実施の形態の変形例について説明する。
【０１９５】
例えば、車載装置等のクライアントは、自己位置推定を行う場合に、ＳＷＬＤをサーバから受信し、ＳＷＬＤを用いて自己位置推定を行い、障害物検知を行う場合は、レンジファインダなどの距離センサ、ステレオカメラ、又は複数の単眼カメラの組合せ等の様々な方法を用いて自分で取得した周辺の三次元情報に基づいて障害物検知を実施してもよい。
【０１９６】
また、一般的にＳＷＬＤには平坦領域のＶＸＬデータが含まれにくい。そのため、サーバは、静的な障害物の検知用に、ＷＬＤをサブサンプルしたサブサンプルワールド（ｓｕｂＷＬＤ）を保持し、ＳＷＬＤとｓｕｂＷＬＤをクライアントに送信してもよい。これにより、ネットワーク帯域を抑制しつつ、クライアント側で自己位置推定及び障害物検知を行うことができる。
【０１９７】
また、クライアントが三次元地図データを高速に描画する際には、地図情報がメッシュ構造である方が便利な場合がある。そこで、サーバは、ＷＬＤからメッシュを生成し、メッシュワールド（ＭＷＬＤ）として予め保持してもよい。例えばクライアントは、粗い三次元描画を必要としている場合にはＭＷＬＤを受信し、詳細な三次元描画を必要としている場合にはＷＬＤを受信する。これにより、ネットワーク帯域を抑制することができる。
【０１９８】
また、サーバは、各ＶＸＬのうち、特徴量が閾値以上であるＶＸＬをＦＶＸＬに設定したが、異なる方法にてＦＶＸＬを算出しても構わない。例えば、サーバは、信号又は交差点などを構成するＶＸＬ、ＶＬＭ、ＳＰＣ、又はＧＯＳを、自己位置推定、運転アシスト、又は自動運転等に必要と判断し、ＦＶＸＬ、ＦＶＬＭ、ＦＳＰＣ、ＦＧＯＳとしてＳＷＬＤに含めるようにしても構わない。また、上記判断は手動で行われてもよい。なお、特徴量に基づき設定されたＦＶＸＬ等に、上記方法で得られたＦＶＸＬ等を加えてもよい。つまり、ＳＷＬＤ抽出部４０３は、さらに、入力三次元データ４１１から予め定められた属性を有する物体に対応するデータを抽出三次元データ４１２として抽出してもよい。
【０１９９】
また、それらの用途に必要な旨を特徴量とは別にラベリングするようにしても構わない。また、サーバは、ＳＷＬＤの上位レイヤ（例えばレーンワールド）として、信号又は交差点などの自己位置推定、運転アシスト、又は自動運転等に必要なＦＶＸＬを別途保持してもよい。
【０２００】
また、サーバは、ＷＬＤ内のＶＸＬにもランダムアクセス単位又は所定の単位毎に属性を付加してもよい。属性は、例えば、自己位置推定に必要或いは不要かを示す情報、又は、信号或いは交差点などの交通情報として重要かどうかなどを示す情報を含む。また、属性は、レーン情報（ＧＤＦ：Ｇｅｏｇｒａｐｈｉｃ  Ｄａｔａ  Ｆｉｌｅｓなど）におけるＦｅａｔｕｒｅ（交差点又は道路など）との対応関係を含んでもよい。
【０２０１】
また、ＷＬＤ又はＳＷＬＤの更新方法として下記のような方法を用いても構わない。
【０２０２】
人、工事、又は並木（トラック向け）の変化などを示す更新情報が点群又はメタデータとしてサーバにアップロードされる。サーバは、当該アップロードに基づき、ＷＬＤを更新し、その後、更新したＷＬＤを用いてＳＷＬＤを更新する。
【０２０３】
また、クライアントは、自己位置推定時に自身で生成した三次元情報とサーバから受信した三次元情報との不整合を検知した場合、自身で生成した三次元情報を更新通知とともにサーバに送信してもよい。この場合、サーバは、ＷＬＤを用いてＳＷＬＤを更新する。ＳＷＬＤが更新されない場合、サーバは、ＷＬＤ自体が古いと判断する。
【０２０４】
また、符号化ストリームのヘッダ情報として、ＷＬＤかＳＷＬＤかを区別する情報が付加されるとしたが、例えば、メッシュワールド又はレーンワールド等、多種類のワールドが存在する場合には、それらを区別する情報がヘッダ情報に付加されても構わない。また、特徴量が異なるＳＷＬＤが多数存在する場合には、それぞれを区別する情報がヘッダ情報に付加されても構わない。
【０２０５】
また、ＳＷＬＤは、ＦＶＸＬで構成されるとしたが、ＦＶＸＬと判定されなかったＶＸＬを含んでもよい。例えば、ＳＷＬＤは、ＦＶＸＬの特徴量を算出する際に使用する隣接ＶＸＬを含んでもよい。これにより、ＳＷＬＤの各ＦＶＸＬに特徴量情報が付加されない場合でも、クライアントは、ＳＷＬＤを受信した際にＦＶＸＬの特徴量を算出することができる。なお、その際には、ＳＷＬＤは各ＶＸＬがＦＶＸＬかＶＸＬかを区別するための情報を含んでもよい。
【０２０６】
以上のように、三次元データ符号化装置４００は、入力三次元データ４１１（第１三次元データ）から特徴量が閾値以上の抽出三次元データ４１２（第２三次元データ）を抽出し、抽出三次元データ４１２を符号化することで符号化三次元データ４１４（第１符号化三次元データ）を生成する。
【０２０７】
これによれば、三次元データ符号化装置４００は、特徴量が閾値以上のデータを符号化した符号化三次元データ４１４を生成する。これにより、入力三次元データ４１１をそのまま符号化する場合に比べてデータ量を削減できる。よって、三次元データ符号化装置４００は、伝送するデータ量を削減できる。
【０２０８】
また、三次元データ符号化装置４００は、さらに、入力三次元データ４１１を符号化することで符号化三次元データ４１３（第２符号化三次元データ）を生成する。
【０２０９】
これによれば、三次元データ符号化装置４００は、例えば、使用用途等に応じて、符号化三次元データ４１３と符号化三次元データ４１４とを選択的に伝送できる。
【０２１０】
また、抽出三次元データ４１２は、第１符号化方法により符号化され、入力三次元データ４１１は、第１符号化方法とは異なる第２符号化方法により符号化される。
【０２１１】
これによれば、三次元データ符号化装置４００は、入力三次元データ４１１と抽出三次元データ４１２とにそれぞれ適した符号化方法を用いることができる。
【０２１２】
また、第１符号化方法では、第２符号化方法よりもイントラ予測及びインター予測のうちインター予測が優先される。
【０２１３】
これによれば、三次元データ符号化装置４００は、隣接するデータ間の相関が低くなりやすい抽出三次元データ４１２に対して、インター予測の優先度を上げることができる。
【０２１４】
また、第１符号化方法と第２符号化方法とでは、三次元位置の表現手法が異なる。例えば、例えば、第２符号化方法では、８分木により三次元位置が表現され、第１符号化方法では、三次元座標により三次元位置を表現される。
【０２１５】
これによれば、三次元データ符号化装置４００は、データ数（ＶＸＬ又はＦＶＸＬの数）が異なる三次元データに対して、より適した三次元位置の表現手法を用いることができる。
【０２１６】
また、符号化三次元データ４１３及び４１４の少なくとも一方は、当該符号化三次元データが入力三次元データ４１１を符号化することで得られた符号化三次元データであるか、入力三次元データ４１１のうちの一部を符号化することで得られた符号化三次元データであるかを示す識別子を含む。つまり、当該識別子は、符号化三次元データがＷＬＤの符号化三次元データ４１３であるかＳＷＬＤの符号化三次元データ４１４であるかを示す。
【０２１７】
これによれば、復号装置は、取得した符号化三次元データが符号化三次元データ４１３であるか符号化三次元データ４１４であるかを容易に判定できる。
【０２１８】
また、三次元データ符号化装置４００は、符号化三次元データ４１４のデータ量が符号化三次元データ４１３のデータ量より小さくなるように抽出三次元データ４１２を符号化する。
【０２１９】
これによれば、三次元データ符号化装置４００は、符号化三次元データ４１４のデータ量を符号化三次元データ４１３のデータ量より小さくできる。
【０２２０】
また、三次元データ符号化装置４００は、さらに、入力三次元データ４１１から予め定められた属性を有する物体に対応するデータを抽出三次元データ４１２として抽出する。例えば、予め定められた属性を有する物体とは、自己位置推定、運転アシスト、又は自動運転等に必要な物体であり、信号又は交差点などである。
【０２２１】
これによれば、三次元データ符号化装置４００は、復号装置で必要となるデータを含む符号化三次元データ４１４を生成できる。
【０２２２】
また、三次元データ符号化装置４００（サーバ）は、さらに、クライアントの状態に応じて、符号化三次元データ４１３及び４１４の一方をクライアントに送信する。
【０２２３】
これによれば、三次元データ符号化装置４００は、クライアントの状態に応じて適切なデータを送信できる。
【０２２４】
また、クライアントの状態は、クライアントの通信状況（例えばネットワーク帯域）、又はクライアントの移動速度を含む。
【０２２５】
また、三次元データ符号化装置４００は、さらに、クライアントの要求に応じて、符号化三次元データ４１３及び４１４の一方をクライアントに送信する。
【０２２６】
これによれば、三次元データ符号化装置４００は、クライアントの要求に応じて適切なデータを送信できる。
【０２２７】
また、本実施の形態に係る三次元データ復号装置５００は、上記三次元データ符号化装置４００により生成された符号化三次元データ４１３又は４１４を復号する。
【０２２８】
つまり、三次元データ復号装置５００は、入力三次元データ４１１から抽出された特徴量が閾値以上の抽出三次元データ４１２が符号化されることで得られた符号化三次元データ４１４を第１復号方法により復号する。また、三次元データ復号装置５００は、入力三次元データ４１１が符号化されることで得られた符号化三次元データ４１３を、第１復号方法とは異なる第２復号方法により復号する。
【０２２９】
これによれば、三次元データ復号装置５００は、特徴量が閾値以上のデータを符号化した符号化三次元データ４１４と、符号化三次元データ４１３とを、例えば、使用用途等に応じて選択的に受信できる。これにより、三次元データ復号装置５００は、伝送するデータ量を削減できる。さらに、三次元データ復号装置５００は、入力三次元データ４１１と抽出三次元データ４１２とにそれぞれ適した復号方法を用いることができる。
【０２３０】
また、第１復号方法では、第２復号方法よりもイントラ予測及びインター予測のうちインター予測が優先される。
【０２３１】
これによれば、三次元データ復号装置５００は、隣接するデータ間の相関が低くなりやすい抽出三次元データに対して、インター予測の優先度を上げることができる。
【０２３２】
また、第１復号方法と第２復号方法とでは、三次元位置の表現手法が異なる。例えば、例えば、第２復号方法では、８分木により三次元位置が表現され、第１復号方法では、三次元座標により三次元位置を表現される。
【０２３３】
これによれば、三次元データ復号装置５００は、データ数（ＶＸＬ又はＦＶＸＬの数）が異なる三次元データに対して、より適した三次元位置の表現手法を用いることができる。
【０２３４】
また、符号化三次元データ４１３及び４１４の少なくとも一方は、当該符号化三次元データが入力三次元データ４１１を符号化することで得られた符号化三次元データであるか、入力三次元データ４１１のうちの一部を符号化することで得られた符号化三次元データであるかを示す識別子を含む。三次元データ復号装置５００は、当該識別子を参照して、符号化三次元データ４１３及び４１４を識別する。
【０２３５】
これによれば、三次元データ復号装置５００は、取得した符号化三次元データが符号化三次元データ４１３であるか符号化三次元データ４１４であるかを容易に判定できる。
【０２３６】
また、三次元データ復号装置５００は、さらに、クライアント（三次元データ復号装置５００）の状態をサーバに通知する。三次元データ復号装置５００は、クライアントの状態に応じて、サーバから送信された符号化三次元データ４１３及び４１４の一方を受信する。
【０２３７】
これによれば、三次元データ復号装置５００は、クライアントの状態に応じて適切なデータを受信できる。
【０２３８】
また、クライアントの状態は、クライアントの通信状況（例えばネットワーク帯域）、又はクライアントの移動速度を含む。
【０２３９】
また、三次元データ復号装置５００は、さらに、符号化三次元データ４１３及び４１４の一方をサーバに要求し、当該要求に応じて、サーバから送信された符号化三次元データ４１３及び４１４の一方を受信する。
【０２４０】
これによれば、三次元データ復号装置５００は、用途に応じた適切なデータを受信できる。
【０２４１】
（実施の形態３）
本実施の形態では、車両間での三次元データを送受信する方法について説明する。例えば、自車両と周辺車両との間での三次元データの送受信が行われる。
【０２４２】
図２４は、本実施の形態に係る三次元データ作成装置６２０のブロック図である。この三次元データ作成装置６２０は、例えば、自車両に含まれ、三次元データ作成装置６２０が作成した第１三次元データ６３２に、受信した第２三次元データ６３５を合成することで、より密な第３三次元データ６３６を作成する。
【０２４３】
この三次元データ作成装置６２０は、三次元データ作成部６２１と、要求範囲決定部６２２と、探索部６２３と、受信部６２４と、復号部６２５と、合成部６２６とを備える。
【０２４４】
まず、三次元データ作成部６２１は、自車両が備えるセンサで検知したセンサ情報６３１を用いて第１三次元データ６３２を作成する。次に、要求範囲決定部６２２は、作成した第１三次元データ６３２の中でデータが不足している三次元空間範囲である要求範囲を決定する。
【０２４５】
次に、探索部６２３は、要求範囲の三次元データを所有する周辺車両を探索し、探索により特定した周辺車両に要求範囲を示す要求範囲情報６３３を送信する。次に、受信部６２４は、周辺車両から、要求範囲の符号化ストリームである符号化三次元データ６３４を受信する（Ｓ６２４）。なお、探索部６２３は、特定範囲に存在する全ての車両に対し、無差別にリクエストを出し、応答があった相手から符号化三次元データ６３４を受信してもよい。また、探索部６２３は、車両に限らず、信号機又は標識などの物体にリクエストを出し、当該物体から符号化三次元データ６３４を受信してもよい。
【０２４６】
次に、復号部６２５は、受信した符号化三次元データ６３４を復号することで第２三次元データ６３５を取得する。次に、合成部６２６は、第１三次元データ６３２と第２三次元データ６３５とを合成することで、より密な第３三次元データ６３６を作成する。
【０２４７】
次に、本実施の形態に係る三次元データ送信装置６４０の構成及び動作を説明する。図２５は、三次元データ送信装置６４０のブロック図である。
【０２４８】
三次元データ送信装置６４０は、例えば、上述した周辺車両に含まれ、周辺車両が作成した第５三次元データ６５２を自車両が要求する第６三次元データ６５４に加工し、第６三次元データ６５４を符号化することで符号化三次元データ６３４を生成し、符号化三次元データ６３４を自車両に送信する。
【０２４９】
三次元データ送信装置６４０は、三次元データ作成部６４１と、受信部６４２と、抽出部６４３と、符号化部６４４と、送信部６４５とを備える。
【０２５０】
まず、三次元データ作成部６４１は、周辺車両が備えるセンサで検知したセンサ情報６５１を用いて第５三次元データ６５２を作成する。次に、受信部６４２は、自車両から送信された要求範囲情報６３３を受信する。
【０２５１】
次に、抽出部６４３は、第５三次元データ６５２から、要求範囲情報６３３で示される要求範囲の三次元データを抽出することで、第５三次元データ６５２を第６三次元データ６５４に加工する。次に、符号化部６４４は、第６三次元データ６５４を符号化することで、符号化ストリームである符号化三次元データ６３４を生成する。そして、送信部６４５は、自車両へ符号化三次元データ６３４を送信する。
【０２５２】
なお、ここでは、自車両が三次元データ作成装置６２０を備え、周辺車両が三次元データ送信装置６４０を備える例を説明するが、各車両が、三次元データ作成装置６２０と三次元データ送信装置６４０との機能を有してもよい。
【０２５３】
（実施の形態４）
本実施の形態では、三次元マップに基づく自己位置推定における異常系の動作について説明する。
【０２５４】
車の自動運転、又は、ロボット、或いはドローンなどの飛行体などの移動体を自律的に移動させるなどの用途が今後拡大すると予想される。このような自律的な移動を実現する手段の一例として、移動体が、三次元マップ内における自らの位置を推定（自己位置推定）しながら、マップに従って走行する方法がある。
【０２５５】
自己位置推定は、三次元マップと、自車に搭載したレンジファインダー（ＬｉＤＡＲなど）又はステレオカメラなどのセンサにより取得した自車周辺の三次元情報（以降、自車検知三次元データ）とをマッチングして、三次元マップ内の自車位置を推定することで実現できる。
【０２５６】
三次元マップは、ＨＥＲＥ社が提唱するＨＤマップなどのように、三次元のポイントクラウドだけでなく、道路及び交差点の形状情報など二次元の地図データ、又は、渋滞及び事故などの実時間で変化する情報を含んでもよい。三次元データ、二次元データ、実時間で変化するメタデータなど複数のレイヤから三次元マップが構成され、装置は、必要なデータのみを取得、又は、参照することも可能である。
【０２５７】
ポイントクラウドのデータは、上述したＳＷＬＤであってもよいし、特徴点ではない点群データを含んでもよい。また、ポイントクラウドのデータの送受信は、１つ、または、複数のランダムアクセス単位を基本として行われる。
【０２５８】
三次元マップと自車検知三次元データとのマッチング方法として以下の方法を用いることができる。例えば、装置は、互いのポイントクラウドにおける点群の形状を比較し、特徴点間の類似度が高い部位が同一位置であると決定する。また、装置は、三次元マップがＳＷＬＤから構成される場合、ＳＷＬＤを構成する特徴点と、自車検知三次元データから抽出した三次元特徴点とを比較してマッチングを行う。
【０２５９】
ここで、高精度に自己位置推定を行うためには、（Ａ）三次元マップと自車検知三次元データが取得できており、かつ、（Ｂ）それらの精度が予め定められた基準を満たすことが必要となる。しかしながら、以下のような異常ケースでは、（Ａ）又は（Ｂ）が満たせない。
【０２６０】
（１）三次元マップを通信経由で取得できない。
【０２６１】
（２）三次元マップが存在しない、又は、三次元マップを取得したが破損している。
【０２６２】
（３）自車のセンサが故障している、又は、悪天候のために、自車検知三次元データの生成精度が十分でない。
【０２６３】
これらの異常ケースに対処するための動作を、以下で説明する。以下では、車を例に動作を説明するが、以下の手法は、ロボット又はドローンなど、自律的に移動する動物体全般に対して適用できる。
【０２６４】
以下、三次元マップ又は自車検知三次元データにおける異常ケースに対応するための、本実施の形態に係る三次元情報処理装置の構成及び動作を説明する。図２６は、本実施の形態に係る三次元情報処理装置７００の構成例を示すブロック図である。
【０２６５】
三次元情報処理装置７００は、例えば、自動車等の動物体に搭載される。図２６に示すように、三次元情報処理装置７００は、三次元マップ取得部７０１と、自車検知データ取得部７０２と、異常ケース判定部７０３と、対処動作決定部７０４と、動作制御部７０５とを備える。
【０２６６】
なお、三次元情報処理装置７００は、二次元画像を取得するカメラ、又は、超音波或いはレーザーを用いた一次元データのセンサなど、自車周辺の構造物又は動物体を検知するための図示しない二次元又は一次元のセンサを備えてもよい。また、三次元情報処理装置７００は、三次元マップを４Ｇ或いは５Ｇなどの移動体通信網、又は、車車間通信或いは路車間通信により取得するための通信部（図示せず）を備えてもよい。
【０２６７】
三次元マップ取得部７０１は、走行経路近傍の三次元マップ７１１を取得する。例えば、三次元マップ取得部７０１は、移動体通信網、又は、車車間通信或いは路車間通信により三次元マップ７１１を取得する。
【０２６８】
次に、自車検知データ取得部７０２は、センサ情報に基づいて自車検知三次元データ７１２を取得する。例えば、自車検知データ取得部７０２は、自車が備えるセンサにより取得されたセンサ情報に基づき、自車検知三次元データ７１２を生成する。
【０２６９】
次に、異常ケース判定部７０３は、取得した三次元マップ７１１及び自車検知三次元データ７１２の少なくとも一方に対して予め定められたチェックを実施することで異常ケースを検出する。つまり、異常ケース判定部７０３は、取得した三次元マップ７１１及び自車検知三次元データ７１２の少なくとも一方が異常であるかを判定する。
【０２７０】
異常ケースが検出された場合、対処動作決定部７０４は、異常ケースに対する対処動作を決定する。次に、動作制御部７０５は、三次元マップ取得部７０１など、対処動作の実施に必要となる各処理部の動作を制御する。
【０２７１】
一方、異常ケースが検出されない場合、三次元情報処理装置７００は、処理を終了する。
【０２７２】
また、三次元情報処理装置７００は、三次元マップ７１１と自車検知三次元データ７１２とを用いて、三次元情報処理装置７００を有する車両の自己位置推定を行う。次に、三次元情報処理装置７００は、自己位置推定の結果を用いて、当該車両を自動運転する。
【０２７３】
このように、三次元情報処理装置７００は、第１の三次元位置情報を含むマップデータ（三次元マップ７１１）を通信路を介して取得する。例えば、第１の三次元位置情報は、三次元の座標情報を有する部分空間を単位として符号化され、各々が１以上の部分空間の集合体であり、各々を独立に復号可能な複数のランダムアクセス単位を含む。例えば、第１の三次元位置情報は、三次元の特徴量が所定の閾値以上となる特徴点が符号化されたデータ（ＳＷＬＤ）である。
【０２７４】
また、三次元情報処理装置７００は、センサで検知した情報から第２の三次元位置情報（自車検知三次元データ７１２）を生成する。次に、三次元情報処理装置７００は、第１の三次元位置情報又は第２の三次元位置情報に対して異常判定処理を実施することで、第１の三次元位置情報又は前記第２の三次元位置情報が異常であるかどうかを判定する。
【０２７５】
三次元情報処理装置７００は、第１の三次元位置情報又は第２の三次元位置情報が異常であると判定された場合、当該異常に対する対処動作を決定する。次に、三次元情報処理装置７００は、対処動作の実施に必要となる制御を実施する。
【０２７６】
これにより、三次元情報処理装置７００は、第１の三次元位置情報又は第２の三次元位置情報の異常を検知し、対処動作を行うことができる。
【０２７７】
（実施の形態５）
本実施の形態では、後続車両への三次元データ送信方法等について説明する。
【０２７８】
図２７は、本実施の形態に係る三次元データ作成装置８１０の構成例を示すブロック図である。この三次元データ作成装置８１０は、例えば、車両に搭載される。三次元データ作成装置８１０は、外部の交通監視クラウド、前走車両又は後続車両と三次元データの送受信を行うとともに、三次元データを作成及び蓄積する。
【０２７９】
三次元データ作成装置８１０は、データ受信部８１１と、通信部８１２と、受信制御部８１３と、フォーマット変換部８１４と、複数のセンサ８１５と、三次元データ作成部８１６と、三次元データ合成部８１７と、三次元データ蓄積部８１８と、通信部８１９と、送信制御部８２０と、フォーマット変換部８２１と、データ送信部８２２とを備える。
【０２８０】
データ受信部８１１は、交通監視クラウド又は前走車両から三次元データ８３１を受信する。三次元データ８３１は、例えば、自車両のセンサ８１５で検知不能な領域を含む、ポイントクラウド、可視光映像、奥行き情報、センサ位置情報、又は速度情報などの情報を含む。
【０２８１】
通信部８１２は、交通監視クラウド又は前走車両と通信し、データ送信要求などを交通監視クラウド又は前走車両に送信する。
【０２８２】
受信制御部８１３は、通信部８１２を介して、対応フォーマット等の情報を通信先と交換し、通信先との通信を確立する。
【０２８３】
フォーマット変換部８１４は、データ受信部８１１が受信した三次元データ８３１にフォーマット変換等を行うことで三次元データ８３２を生成する。また、フォーマット変換部８１４は、三次元データ８３１が圧縮又は符号化されている場合には、伸張又は復号処理を行う。
【０２８４】
複数のセンサ８１５は、ＬｉＤＡＲ、可視光カメラ又は赤外線カメラなどの、車両の外部の情報を取得するセンサ群であり、センサ情報８３３を生成する。例えば、センサ情報８３３は、センサ８１５がＬｉＤＡＲなどのレーザセンサである場合、ポイントクラウド（点群データ）等の三次元データである。なお、センサ８１５は複数でなくてもよい。
【０２８５】
三次元データ作成部８１６は、センサ情報８３３から三次元データ８３４を生成する。三次元データ８３４は、例えば、ポイントクラウド、可視光映像、奥行き情報、センサ位置情報、又は速度情報などの情報を含む。
【０２８６】
三次元データ合成部８１７は、自車両のセンサ情報８３３に基づいて作成された三次元データ８３４に、交通監視クラウド又は前走車両等が作成した三次元データ８３２を合成することで、自車両のセンサ８１５では検知できない前走車両の前方の空間も含む三次元データ８３５を構築する。
【０２８７】
三次元データ蓄積部８１８は、生成された三次元データ８３５等を蓄積する。
【０２８８】
通信部８１９は、交通監視クラウド又は後続車両と通信し、データ送信要求などを交通監視クラウド又は後続車両に送信する。
【０２８９】
送信制御部８２０は、通信部８１９を介して、対応フォーマット等の情報を通信先と交換し、通信先と通信を確立する。また、送信制御部８２０は、三次元データ合成部８１７で生成された三次元データ８３２の三次元データ構築情報と、通信先からのデータ送信要求とに基づき、送信対象の三次元データの空間である送信領域を決定する。
【０２９０】
具体的には、送信制御部８２０は、交通監視クラウド又は後続車両からのデータ送信要求に応じて、後続車両のセンサでは検知できない自車両の前方の空間を含む送信領域を決定する。また、送信制御部８２０は、三次元データ構築情報に基づいて送信可能な空間又は送信済み空間の更新有無等を判断することで送信領域を決定する。例えば、送信制御部８２０は、データ送信要求で指定された領域であり、かつ、対応する三次元データ８３５が存在する領域を送信領域に決定する。そして、送信制御部８２０は、通信先が対応するフォーマット、及び送信領域をフォーマット変換部８２１に通知する。
【０２９１】
フォーマット変換部８２１は、三次元データ蓄積部８１８に蓄積されている三次元データ８３５のうち、送信領域の三次元データ８３６を、受信側が対応しているフォーマットへ変換することで三次元データ８３７を生成する。なお、フォーマット変換部８２１は、三次元データ８３７を圧縮又は符号化することでデータ量を削減してもよい。
【０２９２】
データ送信部８２２は、三次元データ８３７を交通監視クラウド又は後続車両に送信する。この三次元データ８３７は、例えば、後続車両の死角になる領域を含む、自車両の前方のポイントクラウド、可視光映像、奥行き情報、又はセンサ位置情報などの情報を含む。
【０２９３】
なお、ここでは、フォーマット変換部８１４及び８２１にてフォーマット変換等が行われる例を述べたが、フォーマット変換は行われなくてもよい。
【０２９４】
このような構成により、三次元データ作成装置８１０は、自車両のセンサ８１５では検知できない領域の三次元データ８３１を外部から取得し、三次元データ８３１と自車両のセンサ８１５で検知したセンサ情報８３３に基づく三次元データ８３４とを合成することで三次元データ８３５を生成する。これにより、三次元データ作成装置８１０は、自車両のセンサ８１５で検知できない範囲の三次元データを生成できる。
【０２９５】
また、三次元データ作成装置８１０は、交通監視クラウド又は後続車両からのデータ送信要求に応じて、後続車両のセンサでは検知できない自車両の前方の空間を含む三次元データを、交通監視クラウド又は後続車両等へ送信できる。
【０２９６】
（実施の形態６）
実施の形態５において、車両等のクライアント装置が、他の車両又は交通監視クラウド等のサーバに三次元データを送信する例を説明した。本実施の形態では、クライアント装置は、サーバ又は他のクライアント装置にセンサで得られたセンサ情報を送信する。
【０２９７】
まず、本実施の形態に係るシステムの構成を説明する。図２８は、本実施の形態に係る三次元マップ及びセンサ情報の送受信システムの構成を示す図である。このシステムは、サーバ９０１と、クライアント装置９０２Ａ及び９０２Ｂを含む。なお、クライアント装置９０２Ａ及び９０２Ｂを特に区別しない場合には、クライアント装置９０２とも記す。
【０２９８】
クライアント装置９０２は、例えば、車両等の移動体に搭載される車載機器である。サーバ９０１は、例えば、交通監視クラウド等であり、複数のクライアント装置９０２と通信可能である。
【０２９９】
サーバ９０１は、クライアント装置９０２に、ポイントクラウドから構成される三次元マップを送信する。なお、三次元マップの構成はポイントクラウドに限定されず、メッシュ構造等、他の三次元データを表すものであってもよい。
【０３００】
クライアント装置９０２は、サーバ９０１に、クライアント装置９０２が取得したセンサ情報を送信する。センサ情報は、例えば、ＬｉＤＡＲ取得情報、可視光画像、赤外画像、デプス画像、センサ位置情報及び速度情報のうち少なくとも一つを含む。
【０３０１】
サーバ９０１とクライアント装置９０２との間で送受信されるデータは、データ削減のために圧縮されてもよいし、データの精度を維持するために非圧縮のままでも構わない。データを圧縮する場合、ポイントクラウドには例えば８分木構造に基づく三次元圧縮方式を用いることができる。また、可視光画像、赤外画像、及びデプス画像には二次元の画像圧縮方式を用いることできる。二次元の画像圧縮方式とは、例えば、ＭＰＥＧで規格化されたＭＰＥＧ−４  ＡＶＣ又はＨＥＶＣ等である。
【０３０２】
また、サーバ９０１は、クライアント装置９０２からの三次元マップの送信要求に応じてサーバ９０１で管理する三次元マップをクライアント装置９０２に送信する。なお、サーバ９０１はクライアント装置９０２からの三次元マップの送信要求を待たずに三次元マップを送信してもよい。例えば、サーバ９０１は、予め定められた空間にいる１つ以上のクライアント装置９０２に三次元マップをブロードキャストしても構わない。また、サーバ９０１は、一度送信要求を受けたクライアント装置９０２に、一定時間毎にクライアント装置９０２の位置に適した三次元マップを送信してもよい。また、サーバ９０１は、サーバ９０１が管理する三次元マップが更新される度にクライアント装置９０２に三次元マップを送信してもよい。
【０３０３】
クライアント装置９０２は、サーバ９０１に三次元マップの送信要求を出す。例えば、クライアント装置９０２が、走行時に自己位置推定を行いたい場合に、クライアント装置９０２は、三次元マップの送信要求をサーバ９０１に送信する。
【０３０４】
なお、次のような場合に、クライアント装置９０２はサーバ９０１に三次元マップの送信要求を出してもよい。クライアント装置９０２の保持する三次元マップが古い場合に、クライアント装置９０２はサーバ９０１に三次元マップの送信要求を出してもよい。例えば、クライアント装置９０２が三次元マップを取得してから一定期間が経過した場合に、クライアント装置９０２はサーバ９０１に三次元マップの送信要求を出してもよい。
【０３０５】
クライアント装置９０２が保持する三次元マップで示される空間から、クライアント装置９０２が外に出る一定時刻前に、クライアント装置９０２はサーバ９０１に三次元マップの送信要求を出してもよい。例えば、クライアント装置９０２が、クライアント装置９０２が保持する三次元マップで示される空間の境界から予め定められた距離以内に存在する場合に、クライアント装置９０２はサーバ９０１に三次元マップの送信要求を出してもよい。また、クライアント装置９０２の移動経路及び移動速度が把握できている場合には、これらに基づき、クライアント装置９０２が保持する三次元マップで示される空間から、クライアント装置９０２が外に出る時刻を予測してもよい。
【０３０６】
クライアント装置９０２がセンサ情報から作成した三次元データと三次元マップとの位置合せ時の誤差が一定以上の場合に、クライアント装置９０２はサーバ９０１に三次元マップの送信要求を出してもよい。
【０３０７】
クライアント装置９０２は、サーバ９０１から送信されたセンサ情報の送信要求に応じて、サーバ９０１にセンサ情報を送信する。なお、クライアント装置９０２はサーバ９０１からのセンサ情報の送信要求を待たずにセンサ情報をサーバ９０１に送ってもよい。例えば、クライアント装置９０２は、一度サーバ９０１からセンサ情報の送信要求を得た場合、一定期間の間、定期的にセンサ情報をサーバ９０１に送信してもよい。また、クライアント装置９０２は、クライアント装置９０２がセンサ情報を元に作成した三次元データと、サーバ９０１から得た三次元マップとの位置合せ時の誤差が一定以上の場合、クライアント装置９０２の周辺の三次元マップに変化が生じた可能性があると判断し、その旨とセンサ情報とをサーバ９０１に送信してもよい。
【０３０８】
サーバ９０１は、クライアント装置９０２にセンサ情報の送信要求を出す。例えば、サーバ９０１は、クライアント装置９０２から、ＧＰＳ等のクライアント装置９０２の位置情報を受信する。サーバ９０１は、クライアント装置９０２の位置情報に基づき、サーバ９０１が管理する三次元マップにおいて情報が少ない空間にクライアント装置９０２が近づいていると判断した場合、新たな三次元マップを生成するためにクライアント装置９０２にセンサ情報の送信要求を出す。また、サーバ９０１は、三次元マップを更新したい場合、積雪時或いは災害時などの道路状況を確認したい場合、渋滞状況、或いは事件事故状況等を確認したい場合に、センサ情報の送信要求を出してもよい。
【０３０９】
また、クライアント装置９０２は、サーバ９０１から受け取るセンサ情報の送信要求の受信時における通信状態又は帯域に応じて、サーバ９０１に送信するセンサ情報のデータ量を設定してもよい。サーバ９０１に送信するセンサ情報のデータ量を設定するというのは、例えば、当該データそのものを増減させること、又は圧縮方式を適宜選択することである。
【０３１０】
図２９は、クライアント装置９０２の構成例を示すブロック図である。クライアント装置９０２は、サーバ９０１からポイントクラウド等で構成される三次元マップを受信し、クライアント装置９０２のセンサ情報に基づいて作成した三次元データからクライアント装置９０２の自己位置を推定する。また、クライアント装置９０２は、取得したセンサ情報をサーバ９０１に送信する。
【０３１１】
クライアント装置９０２は、データ受信部１０１１と、通信部１０１２と、受信制御部１０１３と、フォーマット変換部１０１４と、複数のセンサ１０１５と、三次元データ作成部１０１６と、三次元画像処理部１０１７と、三次元データ蓄積部１０１８と、フォーマット変換部１０１９と、通信部１０２０と、送信制御部１０２１と、データ送信部１０２２とを備える。
【０３１２】
データ受信部１０１１は、サーバ９０１から三次元マップ１０３１を受信する。三次元マップ１０３１は、ＷＬＤ又はＳＷＬＤ等のポイントクラウドを含むデータである。三次元マップ１０３１には、圧縮データ、及び非圧縮データのどちらが含まれていてもよい。
【０３１３】
通信部１０１２は、サーバ９０１と通信し、データ送信要求（例えば、三次元マップの送信要求）などをサーバ９０１に送信する。
【０３１４】
受信制御部１０１３は、通信部１０１２を介して、対応フォーマット等の情報を通信先と交換し、通信先との通信を確立する。
【０３１５】
フォーマット変換部１０１４は、データ受信部１０１１が受信した三次元マップ１０３１にフォーマット変換等を行うことで三次元マップ１０３２を生成する。また、フォーマット変換部１０１４は、三次元マップ１０３１が圧縮又は符号化されている場合には、伸張又は復号処理を行う。なお、フォーマット変換部１０１４は、三次元マップ１０３１が非圧縮データであれば、伸張又は復号処理を行わない。
【０３１６】
複数のセンサ１０１５は、ＬｉＤＡＲ、可視光カメラ、赤外線カメラ、又はデプスセンサなど、クライアント装置９０２が搭載されている車両の外部の情報を取得するセンサ群であり、センサ情報１０３３を生成する。例えば、センサ情報１０３３は、センサ１０１５がＬｉＤＡＲなどのレーザセンサである場合、ポイントクラウド（点群データ）等の三次元データである。なお、センサ１０１５は複数でなくてもよい。
【０３１７】
三次元データ作成部１０１６は、センサ情報１０３３に基づいて自車両の周辺の三次元データ１０３４を作成する。例えば、三次元データ作成部１０１６は、ＬｉＤＡＲで取得した情報と、可視光カメラで得られた可視光映像とを用いて自車両の周辺の色情報付きのポイントクラウドデータを作成する。
【０３１８】
三次元画像処理部１０１７は、受信したポイントクラウド等の三次元マップ１０３２と、センサ情報１０３３から生成した自車両の周辺の三次元データ１０３４とを用いて、自車両の自己位置推定処理等を行う。なお、三次元画像処理部１０１７は、三次元マップ１０３２と三次元データ１０３４とを合成することで自車両の周辺の三次元データ１０３５を作成し、作成した三次元データ１０３５を用いて自己位置推定処理を行ってもよい。
【０３１９】
三次元データ蓄積部１０１８は、三次元マップ１０３２、三次元データ１０３４及び三次元データ１０３５等を蓄積する。
【０３２０】
フォーマット変換部１０１９は、センサ情報１０３３を、受信側が対応しているフォーマットへ変換することでセンサ情報１０３７を生成する。なお、フォーマット変換部１０１９は、センサ情報１０３７を圧縮又は符号化することでデータ量を削減してもよい。また、フォーマット変換部１０１９は、フォーマット変換をする必要がない場合は処理を省略してもよい。また、フォーマット変換部１０１９は、送信範囲の指定に応じて送信するデータ量を制御してもよい。
【０３２１】
通信部１０２０は、サーバ９０１と通信し、データ送信要求（センサ情報の送信要求）などをサーバ９０１から受信する。
【０３２２】
送信制御部１０２１は、通信部１０２０を介して、対応フォーマット等の情報を通信先と交換し、通信を確立する。
【０３２３】
データ送信部１０２２は、センサ情報１０３７をサーバ９０１に送信する。センサ情報１０３７は、例えば、ＬｉＤＡＲで取得した情報、可視光カメラで取得した輝度画像、赤外線カメラで取得した赤外画像、デプスセンサで取得したデプス画像、センサ位置情報、及び速度情報など、複数のセンサ１０１５によって取得した情報を含む。
【０３２４】
次に、サーバ９０１の構成を説明する。図３０は、サーバ９０１の構成例を示すブロック図である。サーバ９０１は、クライアント装置９０２から送信されたセンサ情報を受信し、受信したセンサ情報に基づいて三次元データを作成する。サーバ９０１は、作成した三次元データを用いて、サーバ９０１が管理する三次元マップを更新する。また、サーバ９０１は、クライアント装置９０２からの三次元マップの送信要求に応じて、更新した三次元マップをクライアント装置９０２に送信する。
【０３２５】
サーバ９０１は、データ受信部１１１１と、通信部１１１２と、受信制御部１１１３と、フォーマット変換部１１１４と、三次元データ作成部１１１６と、三次元データ合成部１１１７と、三次元データ蓄積部１１１８と、フォーマット変換部１１１９と、通信部１１２０と、送信制御部１１２１と、データ送信部１１２２とを備える。
【０３２６】
データ受信部１１１１は、クライアント装置９０２からセンサ情報１０３７を受信する。センサ情報１０３７は、例えば、ＬｉＤＡＲで取得した情報、可視光カメラで取得した輝度画像、赤外線カメラで取得した赤外画像、デプスセンサで取得したデプス画像、センサ位置情報、及び速度情報などを含む。
【０３２７】
通信部１１１２は、クライアント装置９０２と通信し、データ送信要求（例えば、センサ情報の送信要求）などをクライアント装置９０２に送信する。
【０３２８】
受信制御部１１１３は、通信部１１１２を介して、対応フォーマット等の情報を通信先と交換し、通信を確立する。
【０３２９】
フォーマット変換部１１１４は、受信したセンサ情報１０３７が圧縮又は符号化されている場合には、伸張又は復号処理を行うことでセンサ情報１１３２を生成する。なお、フォーマット変換部１１１４は、センサ情報１０３７が非圧縮データであれば、伸張又は復号処理を行わない。
【０３３０】
三次元データ作成部１１１６は、センサ情報１１３２に基づいてクライアント装置９０２の周辺の三次元データ１１３４を作成する。例えば、三次元データ作成部１１１６は、ＬｉＤＡＲで取得した情報と、可視光カメラで得られた可視光映像とを用いてクライアント装置９０２の周辺の色情報付ポイントクラウドデータを作成する。
【０３３１】
三次元データ合成部１１１７は、センサ情報１１３２を元に作成した三次元データ１１３４を、サーバ９０１が管理する三次元マップ１１３５に合成することで三次元マップ１１３５を更新する。
【０３３２】
三次元データ蓄積部１１１８は、三次元マップ１１３５等を蓄積する。
【０３３３】
フォーマット変換部１１１９は、三次元マップ１１３５を、受信側が対応しているフォーマットへ変換することで三次元マップ１０３１を生成する。なお、フォーマット変換部１１１９は、三次元マップ１１３５を圧縮又は符号化することでデータ量を削減してもよい。また、フォーマット変換部１１１９は、フォーマット変換をする必要がない場合は処理を省略してもよい。また、フォーマット変換部１１１９は、送信範囲の指定に応じて送信するデータ量を制御してもよい。
【０３３４】
通信部１１２０は、クライアント装置９０２と通信し、データ送信要求（三次元マップの送信要求）などをクライアント装置９０２から受信する。
【０３３５】
送信制御部１１２１は、通信部１１２０を介して、対応フォーマット等の情報を通信先と交換し、通信を確立する。
【０３３６】
データ送信部１１２２は、三次元マップ１０３１をクライアント装置９０２に送信する。三次元マップ１０３１は、ＷＬＤ又はＳＷＬＤ等のポイントクラウドを含むデータである。三次元マップ１０３１には、圧縮データ、及び非圧縮データのどちらが含まれていてもよい。
【０３３７】
次に、クライアント装置９０２の動作フローについて説明する。図３１は、クライアント装置９０２による三次元マップ取得時の動作を示すフローチャートである。
【０３３８】
まず、クライアント装置９０２は、サーバ９０１へ三次元マップ（ポイントクラウド等）の送信を要求する（Ｓ１００１）。このとき、クライアント装置９０２は、ＧＰＳ等で得られたクライアント装置９０２の位置情報を合わせて送信することで、その位置情報に関連する三次元マップの送信をサーバ９０１に要求してもよい。
【０３３９】
次に、クライアント装置９０２は、サーバ９０１から三次元マップを受信する（Ｓ１００２）。受信した三次元マップが圧縮データであれば、クライアント装置９０２は、受信した三次元マップを復号して非圧縮の三次元マップを生成する（Ｓ１００３）。
【０３４０】
次に、クライアント装置９０２は、複数のセンサ１０１５で得られたセンサ情報１０３３からクライアント装置９０２の周辺の三次元データ１０３４を作成する（Ｓ１００４）。次に、クライアント装置９０２は、サーバ９０１から受信した三次元マップ１０３２と、センサ情報１０３３から作成した三次元データ１０３４とを用いてクライアント装置９０２の自己位置を推定する（Ｓ１００５）。
【０３４１】
図３２は、クライアント装置９０２によるセンサ情報の送信時の動作を示すフローチャートである。まず、クライアント装置９０２は、サーバ９０１からセンサ情報の送信要求を受信する（Ｓ１０１１）。送信要求を受信したクライアント装置９０２は、センサ情報１０３７をサーバ９０１に送信する（Ｓ１０１２）。なお、クライアント装置９０２は、センサ情報１０３３が複数のセンサ１０１５で得られた複数の情報を含む場合、各情報を、各情報に適した圧縮方式で圧縮することでセンサ情報１０３７を生成してもよい。
【０３４２】
次に、サーバ９０１の動作フローについて説明する。図３３は、サーバ９０１によるセンサ情報の取得時の動作を示すフローチャートである。まず、サーバ９０１は、クライアント装置９０２へセンサ情報の送信を要求する（Ｓ１０２１）。次に、サーバ９０１は、当該要求に応じてクライアント装置９０２から送信されたセンサ情報１０３７を受信する（Ｓ１０２２）。次に、サーバ９０１は、受信したセンサ情報１０３７を用いて三次元データ１１３４を作成する（Ｓ１０２３）。次に、サーバ９０１は、作成した三次元データ１１３４を三次元マップ１１３５に反映する（Ｓ１０２４）。
【０３４３】
図３４は、サーバ９０１による三次元マップの送信時の動作を示すフローチャートである。まず、サーバ９０１は、クライアント装置９０２から三次元マップの送信要求を受信する（Ｓ１０３１）。三次元マップの送信要求を受信したサーバ９０１は、クライアント装置９０２へ三次元マップ１０３１を送信する（Ｓ１０３２）。このとき、サーバ９０１は、クライアント装置９０２の位置情報に合わせてその付近の三次元マップを抽出し、抽出した三次元マップを送信してもよい。また、サーバ９０１は、ポイントクラウドで構成される三次元マップを、例えば８分木構造による圧縮方式等を用いて圧縮し、圧縮後の三次元マップを送信してもよい。
【０３４４】
以下、本実施の形態の変形例について説明する。
【０３４５】
サーバ９０１は、クライアント装置９０２から受信したセンサ情報１０３７を用いてクライアント装置９０２の位置付近の三次元データ１１３４を作成する。次に、サーバ９０１は、作成した三次元データ１１３４と、サーバ９０１が管理する同エリアの三次元マップ１１３５とのマッチングを行うことによって、三次元データ１１３４と三次元マップ１１３５との差分を算出する。サーバ９０１は、差分が予め定められた閾値以上の場合は、クライアント装置９０２の周辺で何らかの異常が発生したと判断する。例えば、地震等の自然災害によって地盤沈下等が発生した際などに、サーバ９０１が管理する三次元マップ１１３５と、センサ情報１０３７を基に作成した三次元データ１１３４との間に大きな差が発生することが考えられる。
【０３４６】
センサ情報１０３７は、センサの種類、センサの性能、及びセンサの型番のうち少なくとも一つを示す情報を含んでもよい。また、センサ情報１０３７に、センサの性能に応じたクラスＩＤ等が付加されてもよい。例えば、センサ情報１０３７がＬｉＤＡＲで取得された情報である場合、数ｍｍ単位の精度で情報を取得できるセンサをクラス１、数ｃｍ単位の精度で情報を取得できるセンサをクラス２、数ｍ単位の精度で情報を取得できるセンサをクラス３のように、センサの性能に識別子を割り当てることが考えられる。また、サーバ９０１は、センサの性能情報等を、クライアント装置９０２の型番から推定してもよい。例えば、クライアント装置９０２が車両に搭載されている場合、サーバ９０１は、当該車両の車種からセンサのスペック情報を判断してもよい。この場合、サーバ９０１は、車両の車種の情報を事前に取得していてもよいし、センサ情報に、当該情報が含まれてもよい。また、サーバ９０１は取得したセンサ情報１０３７を用いて、センサ情報１０３７を用いて作成した三次元データ１１３４に対する補正の度合いを切り替えてもよい。例えば、センサ性能が高精度（クラス１）である場合、サーバ９０１は、三次元データ１１３４に対する補正を行わない。センサ性能が低精度（クラス３）である場合、サーバ９０１は、三次元データ１１３４に、センサの精度に応じた補正を適用する。例えば、サーバ９０１は、センサの精度が低いほど補正の度合い（強度）を強くする。
【０３４７】
サーバ９０１は、ある空間にいる複数のクライアント装置９０２に同時にセンサ情報の送信要求を出してもよい。サーバ９０１は、複数のクライアント装置９０２から複数のセンサ情報を受信した場合に、全てのセンサ情報を三次元データ１１３４の作成に利用する必要はなく、例えば、センサの性能に応じて、利用するセンサ情報を選択してもよい。例えば、サーバ９０１は、三次元マップ１１３５を更新する場合、受信した複数のセンサ情報の中から高精度なセンサ情報（クラス１）を選別し、選別したセンサ情報を用いて三次元データ１１３４を作成してもよい。
【０３４８】
サーバ９０１は、交通監視クラウド等のサーバのみに限定されず、他のクライアント装置（車載）であってもよい。図３５は、この場合のシステム構成を示す図である。
【０３４９】
例えば、クライアント装置９０２Ｃが近くにいるクライアント装置９０２Ａにセンサ情報の送信要求を出し、クライアント装置９０２Ａからセンサ情報を取得する。そして、クライアント装置９０２Ｃは、取得したクライアント装置９０２Ａのセンサ情報を用いて三次元データを作成し、クライアント装置９０２Ｃの三次元マップを更新する。これにより、クライアント装置９０２Ｃは、クライアント装置９０２Ａから取得可能な空間の三次元マップを、クライアント装置９０２Ｃの性能を活かして生成できる。例えば、クライアント装置９０２Ｃの性能が高い場合に、このようなケースが発生すると考えられる。
【０３５０】
また、この場合、センサ情報を提供したクライアント装置９０２Ａは、クライアント装置９０２Ｃが生成した高精度な三次元マップを取得する権利が与えられる。クライアント装置９０２Ａは、その権利に従ってクライアント装置９０２Ｃから高精度な三次元マップを受信する。
【０３５１】
また、クライアント装置９０２Ｃは近くにいる複数のクライアント装置９０２（クライアント装置９０２Ａ及びクライアント装置９０２Ｂ）にセンサ情報の送信要求を出してもよい。クライアント装置９０２Ａ又はクライアント装置９０２Ｂのセンサが高性能である場合には、クライアント装置９０２Ｃは、この高性能なセンサで得られたセンサ情報を用いて三次元データを作成できる。
【０３５２】
図３６は、サーバ９０１及びクライアント装置９０２の機能構成を示すブロック図である。サーバ９０１は、例えば、三次元マップを圧縮及び復号する三次元マップ圧縮／復号処理部１２０１と、センサ情報を圧縮及び復号するセンサ情報圧縮／復号処理部１２０２とを備える。
【０３５３】
クライアント装置９０２は、三次元マップ復号処理部１２１１と、センサ情報圧縮処理部１２１２とを備える。三次元マップ復号処理部１２１１は、圧縮された三次元マップの符号化データを受信し、符号化データを復号して三次元マップを取得する。センサ情報圧縮処理部１２１２は、取得したセンサ情報から作成した三次元データの代わりに、センサ情報そのものを圧縮し、圧縮したセンサ情報の符号化データをサーバ９０１へ送信する。この構成により、クライアント装置９０２は、三次元マップ（ポイントクラウド等）を復号する処理を行う処理部（装置又はＬＳＩ）を内部に保持すればよく、三次元マップ（ポイントクラウド等）の三次元データを圧縮する処理を行う処理部を内部に保持する必要がない。これにより、クライアント装置９０２のコスト及び消費電力等を抑えることができる。
【０３５４】
以上のように、本実施の形態に係るクライアント装置９０２は、移動体に搭載され、移動体に搭載されたセンサ１０１５により得られた、移動体の周辺状況を示すセンサ情報１０３３から、移動体の周辺の三次元データ１０３４を作成する。クライアント装置９０２は、作成された三次元データ１０３４を用いて移動体の自己位置を推定する。クライアント装置９０２は、取得したセンサ情報１０３３をサーバ９０１又は他の移動体９０２に送信する。
【０３５５】
これによれば、クライアント装置９０２は、センサ情報１０３３をサーバ９０１等に送信する。これにより、三次元データを送信する場合に比べて、送信データのデータ量を削減できる可能性がある。また、三次元データの圧縮又は符号化等の処理をクライアント装置９０２で行う必要がないので、クライアント装置９０２の処理量を削減できる。よって、クライアント装置９０２は、伝送されるデータ量の削減、又は、装置の構成の簡略化を実現できる。
【０３５６】
また、クライアント装置９０２は、さらに、サーバ９０１に三次元マップの送信要求を送信し、サーバ９０１から三次元マップ１０３１を受信する。クライアント装置９０２は、自己位置の推定では、三次元データ１０３４と三次元マップ１０３２とを用いて、自己位置を推定する。
【０３５７】
また、センサ情報１０３３は、レーザセンサで得られた情報、輝度画像、赤外画像、デプス画像、センサの位置情報、及びセンサの速度情報のうち少なくとも一つを含む。
【０３５８】
また、センサ情報１０３３は、センサの性能を示す情報を含む。
【０３５９】
また、クライアント装置９０２は、センサ情報１０３３を符号化又は圧縮し、センサ情報の送信では、符号化又は圧縮後のセンサ情報１０３７を、サーバ９０１又は他の移動体９０２に送信する。これによれば、クライアント装置９０２は、伝送されるデータ量を削減できる。
【０３６０】
例えば、クライアント装置９０２は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
【０３６１】
また、本実施の形態に係るサーバ９０１は、移動体に搭載されるクライアント装置９０２と通信可能であり、移動体に搭載されたセンサ１０１５により得られた、移動体の周辺状況を示すセンサ情報１０３７をクライアント装置９０２から受信する。サーバ９０１は、受信したセンサ情報１０３７から、移動体の周辺の三次元データ１１３４を作成する。
【０３６２】
これによれば、サーバ９０１は、クライアント装置９０２から送信されたセンサ情報１０３７を用いて三次元データ１１３４を作成する。これにより、クライアント装置９０２が三次元データを送信する場合に比べて、送信データのデータ量を削減できる可能性がある。また、三次元データの圧縮又は符号化等の処理をクライアント装置９０２で行う必要がないので、クライアント装置９０２の処理量を削減できる。よって、サーバ９０１は、伝送されるデータ量の削減、又は、装置の構成の簡略化を実現できる。
【０３６３】
また、サーバ９０１は、さらに、クライアント装置９０２にセンサ情報の送信要求を送信する。
【０３６４】
また、サーバ９０１は、さらに、作成された三次元データ１１３４を用いて三次元マップ１１３５を更新し、クライアント装置９０２からの三次元マップ１１３５の送信要求に応じて三次元マップ１１３５をクライアント装置９０２に送信する。
【０３６５】
また、センサ情報１０３７は、レーザセンサで得られた情報、輝度画像、赤外画像、デプス画像、センサの位置情報、及びセンサの速度情報のうち少なくとも一つを含む。
【０３６６】
また、センサ情報１０３７は、センサの性能を示す情報を含む。
【０３６７】
また、サーバ９０１は、さらに、センサの性能に応じて、三次元データを補正する。これによれば、当該三次元データ作成方法は、三次元データの品質を向上できる。
【０３６８】
また、サーバ９０１は、センサ情報の受信では、複数のクライアント装置９０２から複数のセンサ情報１０３７を受信し、複数のセンサ情報１０３７に含まれるセンサの性能を示す複数の情報に基づき、三次元データ１１３４の作成に用いるセンサ情報１０３７を選択する。これによれば、サーバ９０１は、三次元データ１１３４の品質を向上できる。
【０３６９】
また、サーバ９０１は、受信したセンサ情報１０３７を復号又は伸張し、復号又は伸張後のセンサ情報１１３２から、三次元データ１１３４を作成する。これによれば、サーバ９０１は、伝送されるデータ量を削減できる。
【０３７０】
例えば、サーバ９０１は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
【０３７１】
（実施の形態７）
本実施の形態では、インター予測処理を用いた三次元データの符号化方法及び復号方法について説明する。
【０３７２】
図３７は、本実施の形態に係る三次元データ符号化装置１３００のブロック図である。この三次元データ符号装置１３００は、三次元データを符号化することで符号化信号である符号化ビットストリーム（以下、単にビットストリームとも記す）を生成する。図３７に示すように、三次元データ符号化装置１３００は、分割部１３０１と、減算部１３０２と、変換部１３０３と、量子化部１３０４と、逆量子化部１３０５と、逆変換部１３０６と、加算部１３０７と、参照ボリュームメモリ１３０８と、イントラ予測部１３０９と、参照スペースメモリ１３１０と、インター予測部１３１１と、予測制御部１３１２と、エントロピー符号化部１３１３とを備える。
【０３７３】
分割部１３０１は、三次元データに含まれる各スペース（ＳＰＣ）を符号化単位である複数のボリューム（ＶＬＭ）に分割する。また、分割部１３０１は、各ボリューム内のボクセルを８分木表現化（Ｏｃｔｒｅｅ化）する。なお、分割部１３０１は、スペースとボリュームを同一サイズとし、スペースを８分木表現化してもよい。また、分割部１３０１は、８分木化に必要な情報（深度情報など）をビットストリームのヘッダ等に付加してもよい。
【０３７４】
減算部１３０２は、分割部１３０１から出力されたボリューム（符号化対象ボリューム）と、後述するイントラ予測又はインター予測によって生成される予測ボリュームとの差分を算出し、算出された差分を予測残差として変換部１３０３に出力する。図３８は、予測残差の算出例を示す図である。なお、ここで示す符号化対象ボリューム及び予測ボリュームのビット列は、例えば、ボリュームに含まれる三次元点（例えばポイントクラウド）の位置を示す位置情報である。
【０３７５】
以下、８分木表現とボクセルのスキャン順について説明する。ボリュームは８分木構造に変換（８分木化）された後、符号化される。８分木構造はノードとリーフとで構成される。各ノードは８つのノード又はリーフを持ち、各リーフはボクセル（ＶＸＬ）情報を持つ。図３９は、複数のボクセルを含むボリュームの構造例を示す図である。図４０は、図３９に示すボリュームを８分木構造に変換した例を示す図である。ここで、図４０に示すリーフのうち、リーフ１、２、３はそれぞれ図３９に示すボクセルＶＸＬ１、ＶＸＬ２、ＶＸＬ３を表し、点群を含むＶＸＬ（以下、有効ＶＸＬ）を表現している。
【０３７６】
８分木は、例えば０、１の二値列で表現される。例えば、ノード又は有効ＶＸＬを値１、それ以外を値０とすると、各ノード及びリーフには図４０に示す二値列が割当てられる。そして、幅優先又は深さ優先のスキャン順に応じて、この二値列がスキャンされる。例えば幅優先でスキャンされた場合、図４１のＡに示す二値列が得られる。深さ優先でスキャンした場合は図４１のＢに示す二値列が得られる。このスキャンにより得られた二値列はエントロピー符号化によって符号化され情報量が削減される。
【０３７７】
次に、８分木表現における深度情報について説明する。８分木表現における深度は、ボリューム内に含まれるポイントクラウド情報を、どの粒度まで保持するかをコントロールするために使用される。深度を大きく設定すると、より細かいレベルまでポイントクラウド情報を再現することができるが、ノード及びリーフを表現するためのデータ量が増える。逆に深度を小さく設定すると、データ量が減少するが、複数の異なる位置及び色の異なるポイントクラウド情報が同一位置かつ同一色であるとみなされるため、本来のポイントクラウド情報が持つ情報を失うことになる。
【０３７８】
例えば、図４２は、図４０に示す深度＝２の８分木を、深度＝１の８分木で表現した例を示す図である。図４２に示す８分木は図４０に示す８分木よりデータ量が少なくなる。つまり、図４２に示す８分木は図４２に示す８分木より二値列化後のビット数が少ない。ここで、図４０に示すリーフ１とリーフ２が図４１に示すリーフ１で表現されることになる。つまり、図４０に示すリーフ１とリーフ２とが異なる位置であったという情報が失われる。
【０３７９】
図４３は、図４２に示す８分木に対応するボリュームを示す図である。図３９に示すＶＸＬ１とＶＸＬ２が図４３に示すＶＸＬ１２に対応する。この場合、三次元データ符号化装置１３００は、図４３に示すＶＸＬ１２の色情報を、図３９に示すＶＸＬ１とＶＸＬ２との色情報から生成する。例えば、三次元データ符号化装置１３００は、ＶＸＬ１とＶＸＬ２との色情報の平均値、中間値、又は重み平均値などをＶＸＬ１２の色情報として算出する。このように、三次元データ符号化装置１３００は、８分木の深度を変えることで、データ量の削減を制御してもよい。
【０３８０】
三次元データ符号化装置１３００は、８分木の深度情報を、ワールド単位、スペース単位、及びボリューム単位のいずれの単位で設定しても構わない。またその際、三次元データ符号化装置１３００は、ワールドのヘッダ情報、スペースのヘッダ情報、又はボリュームのヘッダ情報に深度情報を付加してもよい。また、時間の異なる全てのワールド、スペース、及びボリュームで深度情報して同一の値を使用してもよい。この場合、三次元データ符号化装置１３００は、全時間のワールドを管理するヘッダ情報に深度情報を付加してもよい。
【０３８１】
ボクセルに色情報が含まれる場合には、変換部１３０３は、ボリューム内のボクセルの色情報の予測残差に対し、直交変換等の周波数変換を適用する。例えば、変換部１３０３は、あるスキャン順で予測残差をスキャンすることで一次元配列を作成する。その後、変換部１３０３は、作成した一次元配列に一次元の直交変換を適用することで一次元配列を周波数領域に変換する。これにより、ボリューム内の予測残差の値が近い場合には低域の周波数成分の値が大きくなり、高域の周波数成分の値が小さくなる。よって、量子化部１３０４においてより効率的に符号量を削減することができる。
【０３８２】
また、変換部１３０３は、一次元ではなく、二次元以上の直交変換を用いてもよい。例えば、変換部１３０３は、あるスキャン順で予測残差を二次元配列にマッピングし、得られた二次元配列に二次元直交変換を適用する。また、変換部１３０３は、複数の直交変換方式から使用する直交変換方式を選択してもよい。この場合、三次元データ符号化装置１３００は、どの直交変換方式を用いたかを示す情報をビットストリームに付加する。また、変換部１３０３は、次元の異なる複数の直交変換方式から使用する直交変換方式を選択してもよい。この場合、三次元データ符号化装置１３００は、どの次元の直交変換方式を用いたかをビットストリームに付加する。
【０３８３】
例えば、変換部１３０３は、予測残差のスキャン順を、ボリューム内の８分木におけるスキャン順（幅優先又は深さ優先など）に合わせる。これにより、予測残差のスキャン順を示す情報をビットストリームに付加する必要がないので、オーバーヘッドを削減できる。また、変換部１３０３は、８分木のスキャン順とは異なるスキャン順を適用してもよい。この場合、三次元データ符号化装置１３００は、予測残差のスキャン順を示す情報をビットストリームに付加する。これにより、三次元データ符号化装置１３００は、予測残差を効率よく符号化することができる。また、三次元データ符号化装置１３００は、８分木のスキャン順を適用するか否かを示す情報（フラグ等）をビットストリームに付加し、８分木のスキャン順を適用しない場合に、予測残差のスキャン順を示す情報をビットストリームに付加してもよい。
【０３８４】
変換部１３０３は、色情報の予測残差だけでなく、ボクセルが持つその他の属性情報を変換してもよい。例えば、変換部１３０３は、ポイントクラウドをＬｉＤＡＲ等で取得した際に得られる反射度等の情報を変換し、符号化してもよい。
【０３８５】
変換部１３０３は、スペースが色情報等の属性情報を持たない場合は、処理をスキップしてもよい。また、三次元データ符号化装置１３００は、変換部１３０３の処理をスキップするか否かを示す情報（フラグ）をビットストリームに付加してもよい。
【０３８６】
量子化部１３０４は、変換部１３０３で生成された予測残差の周波数成分に対し、量子化制御パラメータを用いて量子化を行うことで量子化係数を生成する。これにより情報量が削減される。生成された量子化係数はエントロピー符号化部１３１３に出力される。量子化部１３０４は、量子化制御パラメータを、ワールド単位、スペース単位、又はボリューム単位で制御してもよい。その際には、三次元データ符号化装置１３００は、量子化制御パラメータをそれぞれのヘッダ情報等に付加する。また、量子化部１３０４は、予測残差の周波数成分毎に、重みを変えて量子化制御を行ってもよい。例えば、量子化部１３０４は、低周波数成分は細かく量子化し、高周波成分は粗く量子化してもよい。この場合、三次元データ符号化装置１３００は、各周波数成分の重みを表すパラメータをヘッダに付加してもよい。
【０３８７】
量子化部１３０４は、スペースが色情報等の属性情報を持たない場合は、処理をスキップしてもよい。また、三次元データ符号化装置１３００は、量子化部１３０４の処理をスキップするか否かを示す情報（フラグ）をビットストリームに付加してもよい。
【０３８８】
逆量子化部１３０５は、量子化制御パラメータを用いて、量子化部１３０４で生成された量子化係数に逆量子化を行うことで予測残差の逆量子化係数を生成し、生成した逆量子化係数を逆変換部１３０６に出力する。
【０３８９】
逆変換部１３０６は、逆量子化部１３０５で生成された逆量子化係数に対し逆変換を適用することで逆変換適用後予測残差を生成する。この逆変換適用後予測残差は、量子化後に生成された予測残差であるため、変換部１３０３が出力した予測残差とは完全には一致しなくてもよい。
【０３９０】
加算部１３０７は、逆変換部１３０６で生成された逆変換適用後予測残差と、量子化前の予測残差の生成に用いられた、後述するイントラ予測又はインター予測により生成された予測ボリュームとを加算して再構成ボリュームを生成する。この再構成ボリュームは、参照ボリュームメモリ１３０８、又は、参照スペースメモリ１３１０に格納される。
【０３９１】
イントラ予測部１３０９は、参照ボリュームメモリ１３０８に格納された隣接ボリュームの属性情報を用いて、符号化対象ボリュームの予測ボリュームを生成する。属性情報とは、ボクセルの色情報又は反射度を含む。イントラ予測部１３０９は、符号化対象ボリュームの色情報又は反射度の予測値を生成する。
【０３９２】
図４４は、イントラ予測部１３０９の動作を説明するための図である。例えば、イントラ予測部１３０９は、図４４に示す、符号化対象ボリューム（ボリュームｉｄｘ＝３）の予測ボリュームを、隣接ボリューム（ボリュームｉｄｘ＝０）から生成する。ここで、ボリュームｉｄｘとはスペース内のボリュームに対し付加される識別子情報であり、各ボリュームに異なる値が割当てられる。ボリュームｉｄｘの割当ての順番は符号化順と同じ順番であってもよいし、符号化順とは異なる順番であってもよい。例えば、イントラ予測部１３０９は、図４４に示す符号化対象ボリュームの色情報の予測値として、隣接ボリュームであるボリュームｉｄｘ＝０内に含まれるボクセルの色情報の平均値を用いる。この場合、符号化対象ボリューム内に含まれる各ボクセルの色情報から、色情報の予測値が差し引かれることで予測残差が生成される。この予測残差に対して変換部１３０３以降の処理が行われる。また、この場合、三次元データ符号化装置１３００は、隣接ボリューム情報と、予測モード情報とをビットストリームに付加する。ここで隣接ボリューム情報とは、予測に用いた隣接ボリュームを示す情報であり、例えば、予測に用いた隣接ボリュームのボリュームｉｄｘを示す。また、予測モード情報とは、予測ボリュームの生成に使用したモードを示す。モードとは、例えば、隣接ボリューム内のボクセルの平均値から予測値を生成する平均値モード、又は隣接ボリューム内のボクセルの中間値から予測値を生成する中間値モード等である。
【０３９３】
イントラ予測部１３０９は、予測ボリュームを、複数の隣接ボリュームから生成してもよい。例えば、図４４に示す構成において、イントラ予測部１３０９は、ボリュームｉｄｘ＝０のボリュームから予測ボリューム０を生成し、ボリュームｉｄｘ＝１のボリュームから予測ボリューム１を生成する。そして、イントラ予測部１３０９は、予測ボリューム０と予測ボリューム１の平均を最終的な予測ボリュームとして生成する。この場合、三次元データ符号化装置１３００は、予測ボリュームの生成に使用した複数のボリュームの複数のボリュームｉｄｘをビットストリームに付加してもよい。
【０３９４】
図４５は、本実施の形態に係るインター予測処理を模式的に示す図である。インター予測部１３１１は、ある時刻Ｔ＿Ｃｕｒのスペース（ＳＰＣ）を、異なる時刻Ｔ＿ＬＸの符号化済みスペースを用いて符号化（インター予測）する。この場合、インター予測部１３１１は、異なる時刻Ｔ＿ＬＸの符号化済みスペースに回転及び並進処理を適用して符号化処理を行う。
【０３９５】
また、三次元データ符号化装置１３００は、異なる時刻Ｔ＿ＬＸのスペースに適用した回転及び並進処理に関わるＲＴ情報をビットストリームに付加する。異なる時刻Ｔ＿ＬＸとは、例えば、前記ある時刻Ｔ＿Ｃｕｒより前の時刻Ｔ＿Ｌ０である。このとき、三次元データ符号化装置１３００は、時刻Ｔ＿Ｌ０のスペースに適用した回転及び並進処理に関わるＲＴ情報ＲＴ＿Ｌ０をビットストリームに付加してもよい。
【０３９６】
または、異なる時刻Ｔ＿ＬＸとは、例えば、前記ある時刻Ｔ＿Ｃｕｒより後の時刻Ｔ＿Ｌ１である。このとき、三次元データ符号化装置１３００は、時刻Ｔ＿Ｌ１のスペースに適用した回転及び並進処理に関わるＲＴ情報ＲＴ＿Ｌ１をビットストリームに付加してもよい。
【０３９７】
または、インター予測部１３１１は、異なる時刻Ｔ＿Ｌ０及び時刻Ｔ＿Ｌ１の両方のスペースを参照して符号化（双予測）を行う。この場合には、三次元データ符号化装置１３００は、それぞれのスペースに適用した回転及び並進に関わるＲＴ情報ＲＴ＿Ｌ０及びＲＴ＿Ｌ１の両方をビットストリームに付加してもよい。
【０３９８】
なお、上記ではＴ＿Ｌ０をＴ＿Ｃｕｒより前の時刻、Ｔ＿Ｌ１をＴ＿Ｃｕｒより後の時刻としたが、必ずしもこれに限らない。例えば、Ｔ＿Ｌ０とＴ＿Ｌ１は共にＴ＿Ｃｕｒより前の時刻でもよい。または、Ｔ＿Ｌ０とＴ＿Ｌ１は共にＴ＿Ｃｕｒより後の時刻でもよい。
【０３９９】
また、三次元データ符号化装置１３００は、複数の異なる時刻のスペースを参照して符号化を行う場合には、それぞれのスペースに適用した回転及び並進に関わるＲＴ情報をビットストリームに付加してもよい。例えば、三次元データ符号化装置１３００は、参照する複数の符号化済みスペースを２つの参照リスト（Ｌ０リスト及びＬ１リスト）で管理する。Ｌ０リスト内の第１の参照スペースをＬ０Ｒ０とし、Ｌ０リスト内の第２の参照スペースをＬ０Ｒ１とし、Ｌ１リスト内の第１の参照スペースをＬ１Ｒ０とし、Ｌ１リスト内の第２の参照スペースをＬ１Ｒ１とした場合、三次元データ符号化装置１３００は、Ｌ０Ｒ０のＲＴ情報ＲＴ＿Ｌ０Ｒ０と、Ｌ０Ｒ１のＲＴ情報ＲＴ＿Ｌ０Ｒ１と、Ｌ１Ｒ０のＲＴ情報ＲＴ＿Ｌ１Ｒ０と、Ｌ１Ｒ１のＲＴ情報ＲＴ＿Ｌ１Ｒ１とをビットストリームに付加する。例えば、三次元データ符号化装置１３００は、これらのＲＴ情報をビットストリームのヘッダ等に付加する。
【０４００】
また、三次元データ符号化装置１３００は、複数の異なる時刻の参照スペースを参照して符号化を行う場合、参照スペース毎に回転及び並進を適用するか否かを判定する。その際、三次元データ符号化装置１３００は、参照スペース毎に回転及び並進を適用したか否かを示す情報（ＲＴ適用フラグ等）をビットストリームのヘッダ情報等に付加してもよい。例えば、三次元データ符号化装置１３００は、符号化対象スペースから参照する参照スペース毎にＩＣＰ（Ｉｎｔｅｒａｃｔｉｖｅ  Ｃｌｏｓｅｓｔ  Ｐｏｉｎｔ）アルゴリズムを用いてＲＴ情報、及びＩＣＰエラー値を算出する。三次元データ符号化装置１３００は、ＩＣＰエラー値が、予め定められた一定値以下の場合は、回転及び並進を行う必要がないと判定してＲＴ適用フラグをオフに設定する。一方、三次元データ符号化装置１３００は、ＩＣＰエラー値が上記一定値より大きい場合は、ＲＴ適用フラグをオンに設定し、ＲＴ情報をビットストリームに付加する。
【０４０１】
図４６は、ＲＴ情報及びＲＴ適用フラグをヘッダに付加するシンタックス例を示す図である。なお、各シンタックスに割当てるビット数は、そのシンタックスが取りうる範囲で決定してもよい。例えば、参照リストＬ０内に含まれる参照スペース数が８つの場合、ＭａｘＲｅｆＳｐｃ＿ｌ０には３ｂｉｔが割当てられてもよい。割当てるビット数を、各シンタックスが取りうる値に応じて可変にしてもよいし、取りうる値に関わらず固定にしてもよい。割り当てるビット数を固定にする場合は、三次元データ符号化装置１３００は、その固定ビット数を別のヘッダ情報に付加してもよい。
【０４０２】
ここで、図４６に示す、ＭａｘＲｅｆＳｐｃ＿ｌ０は、参照リストＬ０内に含まれる参照スペース数を示す。ＲＴ＿ｆｌａｇ＿ｌ０［ｉ］は、参照リストＬ０内の参照スペースｉのＲＴ適用フラグである。ＲＴ＿ｆｌａｇ＿ｌ０［ｉ］が１の場合、参照スペースｉに回転及び並進が適用される。ＲＴ＿ｆｌａｇ＿ｌ０［ｉ］が０の場合、参照スペースｉに回転及び並進が適用されない。
【０４０３】
Ｒ＿ｌ０［ｉ］及びＴ＿ｌ０［ｉ］は、参照リストＬ０内の参照スペースｉのＲＴ情報である。Ｒ＿ｌ０［ｉ］は、参照リストＬ０内の参照スペースｉの回転情報である。回転情報は、適用された回転処理の内容を示し、例えば、回転行列、又はクォータニオン等である。Ｔ＿ｌ０［ｉ］は、参照リストＬ０内の参照スペースｉの並進情報である。並進情報は、適用された並進処理の内容を示し、例えば、並進ベクトル等である。
【０４０４】
ＭａｘＲｅｆＳｐｃ＿ｌ１は、参照リストＬ１内に含まれる参照スペース数を示す。ＲＴ＿ｆｌａｇ＿ｌ１［ｉ］は、参照リストＬ１内の参照スペースｉのＲＴ適用フラグである。ＲＴ＿ｆｌａｇ＿ｌ１［ｉ］が１の場合、参照スペースｉに回転及び並進が適用される。ＲＴ＿ｆｌａｇ＿ｌ１［ｉ］が０の場合、参照スペースｉに回転及び並進が適用されない。
【０４０５】
Ｒ＿ｌ１［ｉ］及びＴ＿ｌ１［ｉ］は、参照リストＬ１内の参照スペースｉのＲＴ情報である。Ｒ＿ｌ１［ｉ］は、参照リストＬ１内の参照スペースｉの回転情報である。回転情報は、適用された回転処理の内容を示し、例えば、回転行列、又はクォータニオン等である。Ｔ＿ｌ１［ｉ］は、参照リストＬ１内の参照スペースｉの並進情報である。並進情報は、適用された並進処理の内容を示し、例えば、並進ベクトル等である。
【０４０６】
インター予測部１３１１は、参照スペースメモリ１３１０に格納された符号化済みの参照スペースの情報を用いて符号化対象ボリュームの予測ボリュームを生成する。上述したように、インター予測部１３１１は、符号化対象ボリュームの予測ボリュームを生成する前に、符号化対象スペースと参照スペースの全体的な位置関係を近づけるために、符号化対象スペースと参照スペースでＩＣＰ（Ｉｎｔｅｒａｃｔｉｖｅ  Ｃｌｏｓｅｓｔ  Ｐｏｉｎｔ）アルゴリズムを用いてＲＴ情報を求める。そして、インター予測部１３１１は、求めたＲＴ情報を用いて参照スペースに回転及び並進処理を適用することで参照スペースＢを得る。その後、インター予測部１３１１は、符号化対象スペース内の符号化対象ボリュームの予測ボリュームを参照スペースＢ内の情報を用いて生成する。ここで、三次元データ符号化装置１３００は、参照スペースＢを得るために用いられたＲＴ情報を符号化対象スペースのヘッダ情報等に付加する。
【０４０７】
このように、インター予測部１３１１は、参照スペースに回転及び並進処理を適用することにより符号化対象スペースと参照スペースとの全体的な位置関係を近づけてから、参照スペースの情報を用いて予測ボリュームを生成することで予測ボリュームの精度を向上できる。また、予測残差を抑制できるので符号量を削減できる。なお、ここでは、符号化対象スペースと参照スペースとを用いてＩＣＰを行う例を示したが、必ずしもこれに限らない。例えば、インター予測部１３１１は、処理量を削減するために、ボクセル又はポイントクラウド数を間引いた符号化対象スペース、及び、ボクセル又はポイントクラウド数を間引いた参照スペースの少なくとも一方を用いてＩＣＰを行うことで、ＲＴ情報を求めてもよい。
【０４０８】
また、インター予測部１３１１は、ＩＣＰの結果得られるＩＣＰエラー値が、予め定められた第１閾値より小さい場合、つまり、例えば符号化対象スペースと参照スペースの位置関係が近い場合には、回転及び並進処理は必要ないと判断し、回転及び並進を行わなくてもよい。この場合、三次元データ符号化装置１３００は、ＲＴ情報をビットストリームに付加しないことによりオーバーヘッドを抑制してもよい。
【０４０９】
また、インター予測部１３１１は、ＩＣＰエラー値が、予め定められた第２閾値より大きい場合には、スペース間の形状変化が大きいと判断し、符号化対象スペースの全てのボリュームにイントラ予測を適用してもよい。以下、イントラ予測を適用するスペースをイントラスペースと呼ぶ。また、第２閾値は上記第１閾値より大きい値である。また、ＩＣＰに限定せず、２つのボクセル集合、又は、２つのポイントクラウド集合からＲＴ情報を求める方法であれば、どのような手法を適用してもよい。
【０４１０】
また、三次元データに形状又は色等の属性情報が含まれる場合には、インター予測部１３１１は、符号化対象スペース内の符号化対象ボリュームの予測ボリュームとして、例えば参照スペース内で符号化対象ボリュームと最も形状又は色等の属性情報が近いボリュームを探索する。また、この参照スペースは、例えば、上述した回転及び並進処理が行われた後の参照スペースである。インター予測部１３１１は、探索により得られたボリューム（参照ボリューム）から予測ボリュームを生成する。図４７は、予測ボリュームの生成動作を説明するための図である。インター予測部１３１１は、図４７に示す符号化対象ボリューム（ボリュームｉｄｘ＝０）を、インター予測を用いて符号化する場合、参照スペース内の参照ボリュームを順にスキャンしながら、符号化対象ボリュームと参照ボリュームとの差分である予測残差が一番小さいボリュームを探索する。インター予測部１３１１は、予測残差が一番小さいボリュームを予測ボリュームとして選択する。符号化対象ボリュームと予測ボリュームとの予測残差が変換部１３０３以降の処理により符号化される。ここで、予測残差とは、符号化対象ボリュームの属性情報と予測ボリュームの属性情報との差分である。また、三次元データ符号化装置１３００は、予測ボリュームとして参照した参照スペース内の参照ボリュームのボリュームｉｄｘをビットストリームのヘッダ等に付加する。
【０４１１】
図４７に示す例では、参照スペースＬ０Ｒ０のボリュームｉｄｘ＝４の参照ボリュームが符号化対象ボリュームの予測ボリュームとして選択される。そして、符号化対象ボリュームと参照ボリュームとの予測残差と、参照ボリュームｉｄｘ＝４とが符号化されてビットストリームに付加される。
【０４１２】
なお、ここでは属性情報の予測ボリュームを生成する例を説明したが、位置情報の予測ボリュームについても同様の処理が行われてもよい。
【０４１３】
予測制御部１３１２は、符号化対象ボリュームをイントラ予測、及びインター予測のいずれを用いて符号化するかを制御する。ここで、イントラ予測、及びインター予測を含むモードを予測モードと呼ぶ。例えば、予測制御部１３１２は、符号化対象ボリュームをイントラ予測で予測した場合の予測残差と、インター予測で予測した場合の予測残差とを評価値として算出し、評価値が小さい方の予測モードを選択する。なお、予測制御部１３１２は、イントラ予測の予測残差とインター予測の予測残差とに、それぞれ直交変換、量子化、及び、エントロピー符号化を適用することで実際の符号量を算出し、算出した符号量を評価値として予測モードを選択してもよい。また、評価値に予測残差以外のオーバーヘッド情報（参照ボリュームｉｄｘ情報など）を加えるようにしてもよい。また、予測制御部１３１２は、符号化対象スペースをイントラスペースで符号化すると予め決定されている場合には、常にイントラ予測を選択してもよい。
【０４１４】
エントロピー符号化部１３１３は、量子化部１３０４からの入力である量子化係数を可変長符号化することにより符号化信号（符号化ビットストリーム）を生成する。具体的には、エントロピー符号化部１３１３は、例えば、量子化係数を二値化し、得られた二値信号を算術符号化する。
【０４１５】
次に、三次元データ符号化装置１３００により生成された符号化信号を復号する三次元データ復号装置について説明する。図４８は、本実施の形態に係る三次元データ復号装置１４００のブロック図である。この三次元データ復号装置１４００は、エントロピー復号部１４０１と、逆量子化部１４０２と、逆変換部１４０３と、加算部１４０４と、参照ボリュームメモリ１４０５と、イントラ予測部１４０６と、参照スペースメモリ１４０７と、インター予測部１４０８と、予測制御部１４０９とを備える。
【０４１６】
エントロピー復号部１４０１は、符号化信号（符号化ビットストリーム）を可変長復号する。例えば、エントロピー復号部１４０１は、符号化信号を算術復号して二値信号を生成し、生成した二値信号から量子化係数を生成する。
【０４１７】
逆量子化部１４０２は、エントロピー復号部１４０１から入力された量子化係数を、ビットストリーム等に付加された量子化パラメータを用いて逆量子化することで逆量子化係数を生成する。
【０４１８】
逆変換部１４０３は、逆量子化部１４０２から入力された逆量子化係数を逆変換することで予測残差を生成する。例えば、逆変換部１４０３は、逆量子化係数を、ビットストリームに付加された情報に基づいて逆直交変換することで予測残差を生成する。
【０４１９】
加算部１４０４は、逆変換部１４０３で生成された予測残差と、イントラ予測又はインター予測により生成された予測ボリュームとを加算して再構成ボリュームを生成する。この再構成ボリュームは、復号三次元データとして出力されるとともに、参照ボリュームメモリ１４０５、又は、参照スペースメモリ１４０７に格納される。
【０４２０】
イントラ予測部１４０６は、参照ボリュームメモリ１４０５内の参照ボリュームとビットストリームに付加された情報とを用いてイントラ予測により予測ボリュームを生成する。具体的には、イントラ予測部１４０６は、ビットストリームに付加された隣接ボリューム情報（例えばボリュームｉｄｘ）と、予測モード情報とを取得し、隣接ボリューム情報で示さる隣接ボリュームを用いて、予測モード情報で示されるモードにより予測ボリュームを生成する。なお、これらの処理の詳細は、ビットストリームに付与された情報が用いられる点を除き、上述したイントラ予測部１３０９による処理と同様である。
【０４２１】
インター予測部１４０８は、参照スペースメモリ１４０７内の参照スペースとビットストリームに付加された情報とを用いてインター予測により予測ボリュームを生成する。具体的には、インター予測部１４０８は、ビットストリームに付加された参照スペース毎のＲＴ情報を用いて参照スペースに対して回転及び並進処理を適用し、適用後の参照スペースを用いて予測ボリュームを生成する。なお、参照スペース毎のＲＴ適用フラグがビットストリーム内に存在する場合には、インター予測部１４０８は、ＲＴ適用フラグに応じて参照スペースに回転及び並進処理を適用する。なお、これらの処理の詳細は、ビットストリームに付与された情報が用いられる点を除き、上述したインター予測部１３１１による処理と同様である。
【０４２２】
予測制御部１４０９は、復号対象ボリュームをイントラ予測で復号するか、インター予測で復号するかを制御する。例えば、予測制御部１４０９は、ビットストリームに付加された、使用する予測モードを示す情報に応じてイントラ予測又はインター予測を選択する。なお、予測制御部１４０９は、復号対象スペースをイントラスペースで復号すると予め決定されている場合は、常にイントラ予測を選択してもよい。
【０４２３】
以下、本実施の形態の変形例について説明する。本実施の形態ではスペース単位で回転及び並進が適用される例を説明したが、より細かい単位で回転及び並進が適用されてもよい。例えば、三次元データ符号化装置１３００は、スペースをサブスペースに分割し、サブスペース単位で回転及び並進を適用してもよい。この場合、三次元データ符号化装置１３００は、サブスペース毎にＲＴ情報を生成し、生成したＲＴ情報をビットストリームのヘッダ等に付加する。また、三次元データ符号化装置１３００は、符号化単位であるボリューム単位で回転及び並進を適用してもよい。この場合、三次元データ符号化装置１３００は、符号化ボリューム単位でＲＴ情報を生成し、生成したＲＴ情報をビットストリームのヘッダ等に付加する。さらに、上記を組み合わせてもよい。つまり、三次元データ符号化装置１３００は、大きい単位で回転及び並進を適用し、その後、細かい単位で回転及び並進を適用してもよい。例えば、三次元データ符号化装置１３００は、スペース単位で回転及び並進を適用し、得られたスペースに含まれる複数のボリュームの各々に対して、互いに異なる回転及び並進を適用してもよい。
【０４２４】
また、本実施の形態では参照スペースに回転及び並進を適用する例を説明したが、必ずしもこれに限らない。例えば、三次元データ符号化装置１３００は、例えば、スケール処理を適用して三次元データの大きさを変化させてもよい。また、三次元データ符号化装置１３００は、回転、並進及びスケールのうち、いずれか１つ又は２つを適用してもよい。また、上記のように多段階で異なる単位で処理を適用する場合には、各単位に適用される処理の種類が異なってもよい。例えば、スペース単位では回転及び並進が適用され、ボリューム単位では並進が適用されてもよい。
【０４２５】
なお、これらの変形例については、三次元データ復号装置１４００に対しても同様に適用できる。
【０４２６】
以上のように、本実施の形態に係る三次元データ符号化装置１３００は、以下の処理を行う。図４８は、三次元データ符号化装置１３００によるインター予測処理のフローチャートである。
【０４２７】
まず、三次元データ符号化装置１３００は、対象三次元データ（例えば符号化対象スペース）と異なる時刻の参照三次元データ（例えば参照スペース）に含まれる三次元点の位置情報を用いて予測位置情報（例えば予測ボリューム）を生成する（Ｓ１３０１）。具体的には、三次元データ符号化装置１３００は、参照三次元データに含まれる三次元点の位置情報に回転及び並進処理を適用することで予測位置情報を生成する。
【０４２８】
なお、三次元データ符号化装置１３００は、回転及び並進処理を第１の単位（例えばスペース）で行い、予測位置情報の生成を第１の単位より細かい第２の単位（例えばボリューム）で行ってもよい。例えば、三次元データ符号化装置１３００は、回転及び並進処理後の参照スペースに含まれる複数のボリュームのうち、符号化対象スペースに含まれる符号化対象ボリュームと位置情報の差が最小となるボリュームを探索し、得られたボリュームを予測ボリュームとして用いる。なお、三次元データ符号化装置１３００は、回転及び並進処理と、予測位置情報の生成とを同一の単位で行ってもよい。
【０４２９】
また、三次元データ符号化装置１３００は、参照三次元データに含まれる三次元点の位置情報に第１の単位（例えばスペース）で第１回転及び並進処理を適用し、第１回転及び並進処理により得られた三次元点の位置情報に、第１の単位より細かい第２の単位（例えばボリューム）で第２回転及び並進処理を適用することで予測位置情報を生成してもよい。
【０４３０】
ここで、三次元点の位置情報及び予測位置情報は、例えば図４１に示すように、８分木構造で表現される。例えば、三次元点の位置情報及び予測位置情報は、８分木構造における深度と幅とのうち、幅を優先したスキャン順で表される。または、三次元点の位置情報及び予測位置情報は、８分木構造における深度と幅とのうち、深度を優先したスキャン順で表される。
【０４３１】
また、図４６に示すように、三次元データ符号化装置１３００は、参照三次元データに含まれる三次元点の位置情報に回転及び並進処理を適用するか否かを示すＲＴ適用フラグを符号化する。つまり、三次元データ符号化装置１３００は、ＲＴ適用フラグを含む符号化信号（符号化ビットストリーム）を生成する。また、三次元データ符号化装置１３００は、回転及び並進処理の内容を示すＲＴ情報を符号化する。つまり、三次元データ符号化装置１３００は、ＲＴ情報を含む符号化信号（符号化ビットストリーム）を生成する。なお、三次元データ符号化装置１３００は、ＲＴ適用フラグにより回転及び並進処理を適用することが示される場合にＲＴ情報を符号化し、ＲＴ適用フラグにより回転及び並進処理を適用しないことが示される場合にＲＴ情報を符号化しなくてもよい。
【０４３２】
また、三次元データは、例えば、三次元点の位置情報と、各三次元点の属性情報（色情報等）とを含む。三次元データ符号化装置１３００は、参照三次元データに含まれる三次元点の属性情報を用いて予測属性情報を生成する（Ｓ１３０２）。
【０４３３】
次に、三次元データ符号化装置１３００は、対象三次元データに含まれる三次元点の位置情報を、予測位置情報を用いて符号化する。例えば、三次元データ符号化装置１３００は、図３８に示すように対象三次元データに含まれる三次元点の位置情報と予測位置情報との差分である差分位置情報を算出する（Ｓ１３０３）。
【０４３４】
また、三次元データ符号化装置１３００は、対象三次元データに含まれる三次元点の属性情報を、予測属性情報を用いて符号化する。例えば、三次元データ符号化装置１３００は、対象三次元データに含まれる三次元点の属性情報と予測属性情報との差分である差分属性情報を算出する（Ｓ１３０４）。次に、三次元データ符号化装置１３００は、算出された差分属性情報に変換及び量子化を行う（Ｓ１３０５）。
【０４３５】
最後に、三次元データ符号化装置１３００は、差分位置情報と、量子化後の差分属性情報とを符号化（例えばエントロピー符号化）する（Ｓ１３０６）。つまり、三次元データ符号化装置１３００は、差分位置情報と差分属性情報とを含む符号化信号（符号化ビットストリーム）を生成する。
【０４３６】
なお、三次元データに属性情報が含まれない場合には、三次元データ符号化装置１３００は、ステップＳ１３０２、Ｓ１３０４及びＳ１３０５を行わなくてもよい。また、三次元データ符号化装置１３００は、三次元点の位置情報の符号化と、三次元点の属性情報の符号化とのうち、一方のみを行ってもよい。
【０４３７】
また、図４９に示す処理の順序は一例であり、これに限定されない。例えば、位置情報に対する処理（Ｓ１３０１、Ｓ１３０３）と、属性情報に対する処理（Ｓ１３０２、Ｓ１３０４、Ｓ１３０５）とは互いに独立しているため、任意の順序で行われてもよいし、一部が並列処理されてもよい。
【０４３８】
以上により、本実施の形態に三次元データ符号化装置１３００は、対象三次元データと異なる時刻の参照三次元データに含まれる三次元点の位置情報を用いて予測位置情報を生成し、対象三次元データに含まれる三次元点の位置情報と予測位置情報との差分である差分位置情報を符号化する。これにより、符号化信号のデータ量を削減できるので符号化効率を向上できる。
【０４３９】
また、本実施の形態に三次元データ符号化装置１３００は、参照三次元データに含まれる三次元点の属性情報を用いて予測属性情報を生成し、対象三次元データに含まれる三次元点の属性情報と予測属性情報との差分である差分属性情報を符号化する。これにより、符号化信号のデータ量を削減できるので符号化効率を向上できる。
【０４４０】
例えば、三次元データ符号化装置１３００は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
【０４４１】
図４８は、三次元データ復号装置１４００によるインター予測処理のフローチャートである。
【０４４２】
まず、三次元データ復号装置１４００は、符号化信号（符号化ビットストリーム）から、差分位置情報と差分属性情報とを復号（例えばエントロピー復号）する（Ｓ１４０１）。
【０４４３】
また、三次元データ復号装置１４００は、符号化信号から、参照三次元データに含まれる三次元点の位置情報に回転及び並進処理を適用するか否かを示すＲＴ適用フラグを復号する。また、三次元データ復号装置１４００は、回転及び並進処理の内容を示すＲＴ情報を復号する。なお、三次元データ復号装置１４００は、ＲＴ適用フラグにより回転及び並進処理を適用することが示される場合にＲＴ情報を復号し、ＲＴ適用フラグにより回転及び並進処理を適用しないことが示される場合にＲＴ情報を復号しなくてもよい。
【０４４４】
次に、三次元データ復号装置１４００は、復号された差分属性情報に逆量子化及び逆変換を行う（Ｓ１４０２）。
【０４４５】
次に、三次元データ復号装置１４００は、対象三次元データ（例えば復号対象スペース）と異なる時刻の参照三次元データ（例えば参照スペース）に含まれる三次元点の位置情報を用いて予測位置情報（例えば予測ボリューム）を生成する（Ｓ１４０３）。具体的には、三次元データ復号装置１４００は、参照三次元データに含まれる三次元点の位置情報に回転及び並進処理を適用することで予測位置情報を生成する。
【０４４６】
より具体的には、三次元データ復号装置１４００は、ＲＴ適用フラグにより回転及び並進処理を適用することが示される場合に、ＲＴ情報で示される参照三次元データに含まれる三次元点の位置情報に回転及び並進処理を適用する。一方、ＲＴ適用フラグにより回転及び並進処理を適用しないことが示される場合には、三次元データ復号装置１４００は、参照三次元データに含まれる三次元点の位置情報に回転及び並進処理を適用しない。
【０４４７】
なお、三次元データ復号装置１４００は、回転及び並進処理を第１の単位（例えばスペース）で行い、予測位置情報の生成を第１の単位より細かい第２の単位（例えばボリューム）で行ってもよい。なお、三次元データ復号装置１４００は、回転及び並進処理と、予測位置情報の生成とを同一の単位で行ってもよい。
【０４４８】
また、三次元データ復号装置１４００は、参照三次元データに含まれる三次元点の位置情報に第１の単位（例えばスペース）で第１回転及び並進処理を適用し、第１回転及び並進処理により得られた三次元点の位置情報に、第１の単位より細かい第２の単位（例えばボリューム）で第２回転及び並進処理を適用することで予測位置情報を生成してもよい。
【０４４９】
ここで、三次元点の位置情報及び予測位置情報は、例えば図４１に示すように、８分木構造で表現される。例えば、三次元点の位置情報及び予測位置情報は、８分木構造における深度と幅とのうち、幅を優先したスキャン順で表される。または、三次元点の位置情報及び予測位置情報は、８分木構造における深度と幅とのうち、深度を優先したスキャン順で表される。
【０４５０】
三次元データ復号装置１４００は、参照三次元データに含まれる三次元点の属性情報を用いて予測属性情報を生成する（Ｓ１４０４）。
【０４５１】
次に、三次元データ復号装置１４００は、符号化信号に含まれる符号化位置情報を予測位置情報を用いて復号することで対象三次元データに含まれる三次元点の位置情報を復元する。ここで、符号化位置情報とは、例えば、差分位置情報であり、三次元データ復号装置１４００は、差分位置情報と予測位置情報とを加算することで対象三次元データに含まれる三次元点の位置情報を復元する（Ｓ１４０５）。
【０４５２】
また、三次元データ復号装置１４００は、符号化信号に含まれる符号化属性情報を予測属性情報を用いて復号することで対象三次元データに含まれる三次元点の属性情報を復元する。ここで、符号化属性情報とは、例えば、差分属性情報であり、三次元データ復号装置１４００は、差分属性情報と予測属性情報とを加算することで対象三次元データに含まれる三次元点の属性情報を復元する（Ｓ１４０６）。
【０４５３】
なお、三次元データに属性情報が含まれない場合には、三次元データ復号装置１４００は、ステップＳ１４０２、Ｓ１４０４及びＳ１４０６を行わなくてもよい。また、三次元データ復号装置１４００は、三次元点の位置情報の復号と、三次元点の属性情報の復号とのうち、一方のみを行ってもよい。
【０４５４】
また、図５０に示す処理の順序は一例であり、これに限定されない。例えば、位置情報に対する処理（Ｓ１４０３、Ｓ１４０５）と、属性情報に対する処理（Ｓ１４０２、Ｓ１４０４、Ｓ１４０６）とは互いに独立しているため、任意の順序で行われてもよいし、一部が並列処理されてもよい。
【０４５５】
（実施の形態８）
三次元点群の情報は、位置情報（ｇｅｏｍｅｔｒｙ）と属性情報（ａｔｔｒｉｂｕｔｅ）とを含む。位置情報は、ある点を基準とした座標（ｘ座標、ｙ座標、ｚ座標）を含む。位置情報を符号化する場合は、各三次元点の座標を直接符号化する代わりに、各三次元点の位置を８分木表現で表現し、８分木の情報を符号化することで符号量を削減する方法が用いられる。
【０４５６】
一方、属性情報は、各三次元点の色情報（ＲＧＢ、ＹＵＶなど）、反射率、及び法線ベクトルなどを示す情報を含む。例えば、三次元データ符号化装置は、属性情報を、位置情報とは別の符号化方法を用いて符号化することができる。
【０４５７】
本実施の形態では属性情報の符号化方法について説明する。なお、本実施の形態では属性情報の値として整数値を用いて説明する。例えば色情報ＲＧＢ又はＹＵＶの各色成分が８ｂｉｔ精度である場合、各色成分は０〜２５５の整数値をとる。反射率の値が１０ｂｉｔ精度である場合、反射率の値は０〜１０２３の整数値をとる。なお、三次元データ符号化装置は、属性情報のビット精度が小数精度である場合、属性情報の値が整数値になるように、当該値にスケール値を乗じてから整数値に丸めてもよい。なお、三次元データ符号化装置は、このスケール値をビットストリームのヘッダ等に付加してもよい。
【０４５８】
三次元点の属性情報の符号化方法として、三次元点の属性情報の予測値を算出し、元の属性情報の値と予測値との差分（予測残差）を符号化することが考えられる。例えば、三次元点ｐの属性情報の値がＡｐであり、予測値がＰｐである場合、三次元データ符号化装置は、その差分絶対値Ｄｉｆｆｐ＝｜Ａｐ−Ｐｐ｜を符号化する。この場合、予測値Ｐｐを高精度に生成することができれば、差分絶対値Ｄｉｆｆｐの値が小さくなる。よって、例えば、値が小さい程発生ビット数が小さくなる符号化テーブルを用いて差分絶対値Ｄｉｆｆｐをエントロピー符号化することで符号量を削減することができる。
【０４５９】
属性情報の予測値を生成する方法として、符号化対象の対象三次元点の周囲にある別の三次元点である参照三次元点の属性情報を用いることが考えられる。ここで参照三次元点とは、対象三次元点から予め定められた距離範囲内にある三次元点である。例えば、対象三次元点ｐ＝（ｘ１，ｙ１，ｚ１）と三次元点ｑ＝（ｘ２，ｙ２，ｚ２）とが存在する場合、三次元データ符号化装置は、（式Ａ１）に示す三次元点ｐと三次元点ｑとのユークリッド距離ｄ（ｐ、ｑ）を算出する。
【０４６０】
【数１】
2020162495.tif 000003
【０４６１】
三次元データ符号化装置は、ユークリッド距離ｄ（ｐ、ｑ）が予め定められた閾値ＴＨｄより小さい場合、三次元点ｑの位置が対象三次元点ｐの位置に近いと判定し、対象三次元点ｐの属性情報の予測値の生成に三次元点ｑの属性情報の値を利用すると判定する。なお、距離算出方法は別の方法でもよく、例えばマハラノビス距離等が用いられてもよい。また、三次元データ符号化装置は、対象三次元点から予め定められた距離範囲外の三次元点を予測処理に用いないと判定してもよい。例えば、三次元点ｒが存在し、対象三次元ｐと三次元点ｒとの距離ｄ（ｐ、ｒ）が閾値ＴＨｄ以上である場合、三次元データ符号化装置は、三次元点ｒを予測に用いないと判定してもよい。なお、三次元データ符号化装置は、閾値ＴＨｄを示す情報を、ビットストリームのヘッダ等に付加してもよい。
【０４６２】
図５１は、三次元点の例を示す図である。この例では、対象三次元点ｐと三次元点ｑとの距離ｄ（ｐ、ｑ）が閾値ＴＨｄより小さい。よって、三次元データ符号化装置は、三次元点ｑを対象三次元点ｐの参照三次元点と判定し、対象三次元ｐの属性情報Ａｐの予測値Ｐｐの生成に三次元点ｑの属性情報Ａｑの値を利用すると判定する。
【０４６３】
一方、対象三次元点ｐと三次元点ｒとの距離ｄ（ｐ、ｒ）は、閾値ＴＨｄ以上である。よって、三次元データ符号化装置は、三次元点ｒを対象三次元点ｐの参照三次元点でないと判定し、対象三次元点ｐの属性情報Ａｐの予測値Ｐｐの生成に三次元点ｒの属性情報Ａｒの値を利用しないと判定する。
【０４６４】
また、三次元データ符号化装置は、対象三次元点の属性情報を予測値を用いて符号化する場合、既に属性情報を符号化及び復号済みの三次元点を参照三次元点として利用する。同様に、三次元データ復号装置は、復号対象の対象三次元点の属性情報を予測値を用いて復号する場合、既に属性情報を復号済みの三次元点を参照三次元点として利用する。これにより、符号化時と復号時とで同一の予測値を生成することができるので、符号化で生成した三次元点のビットストリームを復号側で正しく復号することができる。
【０４６５】
また、三次元点の属性情報を符号化する場合に、三次元点の位置情報を用いて各三次元点を複数階層に分類してから符号化することが考えられる。ここで、分類した各階層をＬｏＤ（Ｌｅｖｅｌ  ｏｆ  Ｄｅｔａｉｌ）と呼ぶ。ＬｏＤの生成方法について図５２を用いて説明する。
【０４６６】
まず、三次元データ符号化装置は、初期点ａ０を選択し、ＬｏＤ０に割当てる。次に、三次元データ符号化装置は、点ａ０からの距離がＬｏＤ０の閾値Ｔｈｒｅｓ＿ＬｏＤ［０］より大きい点ａ１を抽出しＬｏＤ０に割当てる。次に、三次元データ符号化装置は、点ａ１からの距離がＬｏＤ０の閾値Ｔｈｒｅｓ＿ＬｏＤ［０］より大きい点ａ２を抽出しＬｏＤ０に割当てる。このように、三次元データ符号化装置は、ＬｏＤ０内の各点の間の距離が閾値Ｔｈｒｅｓ＿ＬｏＤ［０］より大きくなるようにＬｏＤ０を構成する。
【０４６７】
次に、三次元データ符号化装置は、まだＬｏＤが未割当ての点ｂ０を選択し、ＬｏＤ１に割当てる。次に、三次元データ符号化装置は、点ｂ０からの距離がＬｏＤ１の閾値Ｔｈｒｅｓ＿ＬｏＤ［１］より大きく、ＬｏＤが未割当ての点ｂ１を抽出しＬｏＤ１に割当てる。次に、三次元データ符号化装置は、点ｂ１からの距離がＬｏＤ１の閾値Ｔｈｒｅｓ＿ＬｏＤ［１］より大きく、ＬｏＤが未割当ての点ｂ２を抽出しＬｏＤ１に割当てる。このように、三次元データ符号化装置は、ＬｏＤ１内の各点の間の距離が閾値Ｔｈｒｅｓ＿ＬｏＤ［１］より大きくなるようにＬｏＤ１を構成する。
【０４６８】
次に、三次元データ符号化装置は、まだＬｏＤが未割当ての点ｃ０を選択し、ＬｏＤ２に割当てる。次に、三次元データ符号化装置は、点ｃ０からの距離がＬｏＤ２の閾値Ｔｈｒｅｓ＿ＬｏＤ［２］より大きく、ＬｏＤが未割当ての点ｃ１を抽出しＬｏＤ２に割当てる。次に、三次元データ符号化装置は、点ｃ１からの距離がＬｏＤ２の閾値Ｔｈｒｅｓ＿ＬｏＤ［２］より大きく、ＬｏＤが未割当ての点ｃ２を抽出しＬｏＤ２に割当てる。このように、三次元データ符号化装置は、ＬｏＤ２内の各点の間の距離が閾値Ｔｈｒｅｓ＿ＬｏＤ［２］より大きくなるようにＬｏＤ２を構成する。例えば、図５３に示すように、各ＬｏＤの閾値Ｔｈｒｅｓ＿ＬｏＤ［０］、Ｔｈｒｅｓ＿ＬｏＤ［１］、及びＴｈｒｅｓ＿ＬｏＤ［２］が設定される。
【０４６９】
また、三次元データ符号化装置は、各ＬｏＤの閾値を示す情報を、ビットストリームのヘッダ等に付加してもよい。例えば、図５３に示す例の場合、三次元データ符号化装置は、閾値Ｔｈｒｅｓ＿ＬｏＤ［０］、Ｔｈｒｅｓ＿ＬｏＤ［１］、及びＴｈｒｅｓ＿ＬｏＤ［２］をヘッダに付加してもよい。
【０４７０】
また、三次元データ符号化装置は、ＬｏＤの最下層にＬｏＤが未割当ての三次元点全てを割当ててもよい。この場合、三次元データ符号化装置は、ＬｏＤの最下層の閾値をヘッダに付加しないことでヘッダの符号量を削減できる。例えば、図５３に示す例の場合、三次元データ符号化装置は、閾値Ｔｈｒｅｓ＿ＬｏＤ［０］とＴｈｒｅｓ＿ＬｏＤ［１］をヘッダに付加し、Ｔｈｒｅｓ＿ＬｏＤ［２］をヘッダに付加しない。この場合、三次元データ復号装置は、Ｔｈｒｅｓ＿ＬｏＤ［２］の値０と推定してもよい。また、三次元データ符号化装置は、ＬｏＤの階層数をヘッダに付加してもよい。これにより、三次元データ復号装置は、ＬｏＤの階層数を用いて最下層のＬｏＤを判定できる。
【０４７１】
また、ＬｏＤの各層の閾値の値を図５３に示すように上位層ほど大きく設定することで、上位層（ＬｏＤ０に近い層）ほど三次元点間の距離が離れた疎点群（ｓｐａｒｓｅ）となり、下位層ほど三次元点間の距離が近い密点群（ｄｅｎｓｅ）となる。なお、図５３に示す例では、ＬｏＤ０が最上位層である。
【０４７２】
また、各ＬｏＤを設定する際の初期三次元点の選択方法は、位置情報符号化時の符号化順に依存してもよい。例えば、三次元データ符号化装置は、ＬｏＤ０の初期点ａ０として、位置情報符号化時に最初に符号化された三次元点を選択し、初期点ａ０を基点に、点ａ１、点ａ２を選択してＬｏＤ０を構成する。そして、三次元データ符号化装置は、ＬｏＤ１の初期点ｂ０として、ＬｏＤ０に属していない三次元点の中で、最も早く位置情報が符号化された三次元点を選択してもよい。つまり、三次元データ符号化装置は、ＬｏＤｎの初期点ｎ０として、ＬｏＤｎの上層（ＬｏＤ０〜ＬｏＤｎ−１）に属していない三次元点の中で、最も早く位置情報が符号化された三次元点を選択してもよい。これにより、三次元データ復号装置は、復号時に同様の初期点選択方法を用いることで、符号化時と同一のＬｏＤを構成できるので、ビットストリームを適切に復号できる。具体的には、三次元データ復号装置は、ＬｏＤｎの初期点ｎ０として、ＬｏＤｎの上層に属していない三次元点の中で、最も早く位置情報が復号された三次元点を選択する。
【０４７３】
以下、三次元点の属性情報の予測値を、ＬｏＤの情報を用いて生成する手法について説明する。例えば、三次元データ符号化装置は、ＬｏＤ０に含まれる三次元点から順に符号化する場合、ＬｏＤ１に含まれる対象三次元点を、ＬｏＤ０及びＬｏＤ１に含まれる符号化かつ復号済み（以下、単に「符号化済み」とも記す）の属性情報を用いて生成する。このように、三次元データ符号化装置は、ＬｏＤｎに含まれる三次元点の属性情報の予測値を、ＬｏＤｎ’（ｎ’＜＝ｎ）に含まれる符号化済みの属性情報を用いて生成する。つまり、三次元データ符号化装置は、ＬｏＤｎに含まれる三次元点の属性情報の予測値の算出に、ＬｏＤｎの下層に含まれる三次元点の属性情報を用いない。
【０４７４】
例えば、三次元データ符号化装置は、三次元点の属性情報の予測値を、符号化対象の対象三次元点の周辺の符号化済みの三次元点のうち、Ｎ個以下の三次元点の属性値の平均を算出することで生成する。また、三次元データ符号化装置は、Ｎの値を、ビットストリームのヘッダ等に付加してもよい。なお、三次元データ符号化装置は、Ｎの値を三次元点毎に変更し、三次元点毎にＮの値を付加してもよい。これにより、三次元点毎に適切なＮを選択することができるので、予測値の精度を向上できる。よって、予測残差を小さくできる。また、三次元データ符号化装置は、Ｎの値をビットストリームのヘッダに付加し、ビットストリーム内でＮの値を固定してもよい。これにより、三次元点毎にＮの値を符号化、又は復号する必要がなくなるので、処理量を削減できる。また、三次元データ符号化装置は、ＬｏＤ毎にＮの値を別々に符号化してもよい。これによりＬｏＤ毎に適切なＮを選択することで符号化効率を向上できる。
【０４７５】
または、三次元データ符号化装置は、三次元点の属性情報の予測値を、周囲の符号化済みのＮ個の三次元点の属性情報の重み付け平均値により算出してもよい。例えば、三次元データ符号化装置は、対象三次元点と周囲のＮ個の三次元点とのそれぞれの距離情報を用いて重みを算出する。
【０４７６】
三次元データ符号化装置は、ＬｏＤ毎にＮの値を別々に符号化する場合、例えばＬｏＤの上位層ほどＮの値を大きく設定し、下位層ほどＮの値を小さく設定する。ＬｏＤの上位層では属する三次元点間の距離が離れるため、Ｎの値を大きく設定して複数の周囲の三次元点を選択して平均化することで予測精度を向上できる可能性がある。また、ＬｏＤの下位層では属する三次元点間の距離が近いため、Ｎの値を小さく設定して平均化の処理量を抑えつつ、効率的な予測を行うことが可能となる。
【０４７７】
図５４は、予測値に用いる属性情報の例を示す図である。上述したように、ＬｏＤＮに含まれる点Ｐの予測値は、ＬｏＤＮ’（Ｎ’＜＝Ｎ）に含まれる符号化済みの周囲点Ｐ’を用いて生成される。ここで、周囲点Ｐ’は、点Ｐとの距離に基づき選択される。例えば、図５４に示す点ｂ２の属性情報の予測値は、点ａ０、ａ１、ａ２、ｂ０、ｂ１の属性情報を用いて生成される。
【０４７８】
上述したＮの値に応じて、選択される周囲点は変化する。例えばＮ＝５の場合は点ｂ２の周囲点としてａ０、ａ１、ａ２、ｂ０、ｂ１が選択される。Ｎ＝４の場合は距離情報を元に点ａ０、ａ１、ａ２、ｂ１を選択される。
【０４７９】
予測値は、距離依存の重み付け平均により算出される。例えば、図５４に示す例では、点ａ２の予測値ａ２ｐは、（式Ａ２）及び（式Ａ３）に示すように、点ａ０及び点ａ１の属性情報の重み付け平均により算出される。なお、Ａｉは点ａｉの属性情報の値である。
【０４８０】
【数２】
2020162495.tif 000004
【０４８１】
また、点ｂ２の予測値ｂ２ｐは、（式Ａ４）〜（式Ａ６）に示すように、点ａ０、ａ１、ａ２、ｂ０、ｂ１の属性情報の重み付け平均により算出される。なお、Ｂｉは点ｂｉの属性情報の値である。
【０４８２】
【数３】
2020162495.tif 000005
【０４８３】
また、三次元データ符号化装置は、三次元点の属性情報の値と、周囲点から生成した予測値との差分値（予測残差）を算出し、算出した予測残差を量子化してもよい。例えば、三次元データ符号化装置は、予測残差を量子化スケール（量子化ステップとも呼ぶ）で除算することで量子化を行う。この場合、量子化スケールが小さいほど量子化によって発生しうる誤差（量子化誤差）が小さくなる。逆に量子化スケールが大きいほど量子化誤差は大きくなる。
【０４８４】
なお、三次元データ符号化装置は、使用する量子化スケールをＬｏＤ毎に変えてもよい。例えば、三次元データ符号化装置は、上位層ほど量子化スケールを小さくし、下位層ほど量子化スケールを大きくする。上位層に属する三次元点の属性情報の値は、下位層に属する三次元点の属性情報の予測値として使用される可能性があるため、上位層の量子化スケールを小さくして上位層で発生しうる量子化誤差を抑え、予測値の精度を高めることで符号化効率を向上できる。なお、三次元データ符号化装置は、ＬｏＤ毎に使用する量子化スケールをヘッダ等に付加してもよい。これにより、三次元データ復号装置は、正しく量子化スケールを復号できるので、ビットストリームを適切に復号できる。
【０４８５】
また、三次元データ符号化装置は、量子化後の予測残差である符号付整数値（符号付量子化値）を符号なし整数値（符号なし量子化値）に変換してもよい。これにより予測残差をエントロピー符号化する場合に、負の整数の発生を考慮する必要がなくなる。なお、三次元データ符号化装置は、必ずしも符号付整数値を符号なし整数値に変換する必要はなく、例えば符号ビットを別途エントロピー符号化してもよい。
【０４８６】
予測残差は、元の値から予測値を減算することにより算出される。例えば、点ａ２の予測残差ａ２ｒは、（式Ａ７）に示すように、点ａ２の属性情報の値Ａ２から、点ａ２の予測値ａ２ｐを減算することで算出される。点ｂ２の予測残差ｂ２ｒは、（式Ａ８）に示すように、点ｂ２の属性情報の値Ｂ２から、点ｂ２の予測値ｂ２ｐを減算することで算出される。
【０４８７】
ａ２ｒ＝Ａ２−ａ２ｐ  ・・・（式Ａ７）
【０４８８】
ｂ２ｒ＝Ｂ２−ｂ２ｐ  ・・・（式Ａ８）
【０４８９】
また、予測残差は、ＱＳ（量子化ステップ（Ｑｕａｎｔｉｚａｔｉｏｎ  Ｓｔｅｐ））で除算されることで量子化される。例えば、点ａ２の量子化値ａ２ｑは、（式Ａ９）により算出される。点ｂ２の量子化値ｂ２ｑは、（式Ａ１０）により算出される。ここで、ＱＳ＿ＬｏＤ０は、ＬｏＤ０用のＱＳであり、ＱＳ＿ＬｏＤ１は、ＬｏＤ１用のＱＳである。つまり、ＬｏＤに応じてＱＳが変更されてもよい。
【０４９０】
ａ２ｑ＝ａ２ｒ／ＱＳ＿ＬｏＤ０  ・・・（式Ａ９）
【０４９１】
ｂ２ｑ＝ｂ２ｒ／ＱＳ＿ＬｏＤ１  ・・・（式Ａ１０）
【０４９２】
また、三次元データ符号化装置は、以下のように、上記量子化値である符号付整数値を符号なし整数値に変換する。三次元データ符号化装置は、符号付整数値ａ２ｑが０より小さい場合、符号なし整数値ａ２ｕを−１−（２×ａ２ｑ）に設定する。三次元データ符号化装置は、符号付整数値ａ２ｑが０以上の場合、符号なし整数値ａ２ｕを２×ａ２ｑに設定する。
【０４９３】
同様に、三次元データ符号化装置は、符号付整数値ｂ２ｑが０より小さい場合、符号なし整数値ｂ２ｕを−１−（２×ｂ２ｑ）に設定する。三次元データ符号化装置は、符号付整数値ｂ２ｑが０以上の場合、符号なし整数値ｂ２ｕを２×ｂ２ｑに設定する。
【０４９４】
また、三次元データ符号化装置は、量子化後の予測残差（符号なし整数値）を、エントロピー符号化によって符号化してもよい。例えば符号なし整数値を二値化したうえで、二値の算術符号化を適用してもよい。
【０４９５】
なお、この場合、三次元データ符号化装置は、予測残差の値に応じて二値化方法を切替えてもよい。例えば、三次元データ符号化装置は、予測残差ｐｕが閾値Ｒ＿ＴＨより小さい場合は、閾値Ｒ＿ＴＨを表現するために必要な固定ビット数で予測残差ｐｕを二値化する。また、三次元データ符号化装置は、予測残差ｐｕが閾値Ｒ＿ＴＨ以上の場合は、閾値Ｒ＿ＴＨの二値化データと（ｐｕ−Ｒ＿ＴＨ）の値を指数ゴロム（Ｅｘｐｏｎｅｎｔｉａｌ−Ｇｏｌｏｍｂ）等を用いて二値化する。
【０４９６】
例えば、三次元データ符号化装置は、閾値Ｒ＿ＴＨが６３であり、予測残差ｐｕが６３より小さい場合は、予測残差ｐｕを６ｂｉｔで二値化する。また、三次元データ符号化装置は、予測残差ｐｕが６３以上である場合は、閾値Ｒ＿ＴＨの二値データ（１１１１１１）と（ｐｕ−６３）とを指数ゴロムを用いて二値化することで算術符号化を行う。
【０４９７】
より具体的な例では、三次元データ符号化装置は、予測残差ｐｕが３２である場合、６ｂｉｔの二値データ（１０００００）を生成し、このビット列を算術符号化する。また、三次元データ符号化装置は、予測残差ｐｕが６６の場合、閾値Ｒ＿ＴＨの二値データ（１１１１１１）と値３（６６−６３）を指数ゴロムで表したビット列（００１００）とを生成し、このビット列（１１１１１１＋００１００）を算術符号化する。
【０４９８】
このように、三次元データ符号化装置は、予測残差の大きさに応じて二値化の方法を切替えることで、予測残差が大きくなった場合の二値化ビット数の急激な増加を抑えながら符号化することが可能となる。なお、三次元データ符号化装置は、閾値Ｒ＿ＴＨをビットストリームのヘッダ等に付加してもよい。
【０４９９】
例えば、高ビットレートで符号化が行われる場合、つまり、量子化スケールが小さい場合、量子化誤差が小さく予測精度が高くなり、結果として予測残差が大きくならない可能性がある。よって、この場合には、三次元データ符号化装置は、閾値Ｒ＿ＴＨを大きく設定する。これにより、閾値Ｒ＿ＴＨの二値化データを符号化する可能性が低くなり、符号化効率が向上する。逆に、低ビットレートで符号化が行われる場合、つまり、量子化スケールが大きい場合、量子化誤差が大きく予測精度が悪くなり、結果として予測残差が大きくなる可能性がある。よって、この場合には、三次元データ符号化装置は、閾値Ｒ＿ＴＨを小さく設定する。これにより、二値化データの急激なビット長増加を防ぐことができる。
【０５００】
また、三次元データ符号化装置は、ＬｏＤ毎に閾値Ｒ＿ＴＨを切り替え、ＬｏＤ毎の閾値Ｒ＿ＴＨをヘッダ等に付加してもよい。つまり、三次元データ符号化装置は、ＬｏＤ毎に二値化の方法を切替えてもよい。例えば、上位層では三次元点間の距離が遠いため、予測精度が悪く結果として予測残差が大きくなる可能性がある。よって、三次元データ符号化装置は、上位層に対しては閾値Ｒ＿ＴＨを小さく設定することで二値化データの急激なビット長増加を防ぐ。また、下位層では三次元点間の距離が近いため、予測精度が高く結果として予測残差が小さくなる可能性がある。よって、三次元データ符号化装置は、階層に対しては閾値Ｒ＿ＴＨを大きく設定することで符号化効率を向上する。
【０５０１】
図５５は、指数ゴロム符号の一例を示す図であって、二値化前の値（多値）と、二値化後のビット（符号）との関係を示す図である。なお、図５５に示す０と１とを反転させてもよい。
【０５０２】
また、三次元データ符号化装置は、予測残差の二値化データに算術符号化を適用する。これにより、符号化効率を向上できる。なお、算術符号化の適用時に、二値化データのうち、ｎビットで二値化した部分であるｎビット符号（ｎ−ｂｉｔ  ｃｏｄｅ）と、指数ゴロムを用いて二値化した部分である残り符号（ｒｅｍａｉｎｉｎｇ  ｃｏｄｅ）とで、各ビットの０と１の出現確率の傾向は異なる可能性がある。よって、三次元データ符号化装置は、ｎビット符号と残り符号とで、算術符号化の適用方法を切替えてもよい。
【０５０３】
例えば、三次元データ符号化装置は、ｎビット符号に対しては、ビット毎に異なる符号化テーブル（確率テーブル）を用いて算術符号化を行う。この際、三次元データ符号化装置は、ビット毎に使用する符号化テーブルの数を変えてもよい。例えば、三次元データ符号化装置は、ｎビット符号の先頭ビットｂ０には１個の符号化テーブルを用いて算術符号化を行う。また、三次元データ符号化装置は、次のビットｂ１に対しては２個の符号化テーブルを用いる。また、三次元データ符号化装置は、ｂ０の値（０又は１）に応じてビットｂ１の算術符号化に用いる符号化テーブルを切替える。同様に、三次元データ符号化装置は、更に次のビットｂ２に対しては４個の符号化テーブルを用いる。また、三次元データ符号化装置は、ｂ０及びｂ１の値（０〜３）に応じて、ビットｂ２の算術符号化に用いる符号化テーブルを切替える。
【０５０４】
このように、三次元データ符号化装置は、ｎビット符号の各ビットｂｎ−１を算術符号化する際に、２ｎ−１個の符号化テーブルを用いる。また、三次元データ符号化装置は、ｂｎ−１より前のビットの値（発生パターン）に応じて、使用する符号化テーブルを切替える。これにより、三次元データ符号化装置は、ビット毎に適切な符号化テーブルを使用できるので、符号化効率を向上できる。
【０５０５】
なお、三次元データ符号化装置は、各ビットで使用する符号化テーブルの数を削減してもよい。例えば、三次元データ符号化装置は、各ビットｂｎ−１を算術符号化する際に、ｂｎ−１より前のｍビット（ｍ＜ｎ−１）の値（発生パターン）に応じて２ｍ個の符号化テーブルを切替えてもよい。これにより各ビットで使用する符号化テーブルの数を抑えつつ、符号化効率を向上できる。なお、三次元データ符号化装置は、各符号化テーブルにおける０と１の発生確率を、実際に発生した二値化データの値に応じて更新してもよい。また、三次元データ符号化装置は、一部のビットの符号化テーブルにおける０と１の発生確率を固定化してもよい。これにより、発生確率の更新回数を抑制できるので処理量を削減できる。
【０５０６】
例えば、ｎビット符号がｂ０ｂ１ｂ２…ｂｎ−１である場合、ｂ０用の符号化テーブルは１個（ＣＴｂ０）である。ｂ１用の符号化テーブルは２個（ＣＴｂ１０、ＣＴｂ１１）である。また、ｂ０の値（０〜１）に応じて使用する符号化テーブルが切替えられる。ｂ２用の符号化テーブルは、４個（ＣＴｂ２０、ＣＴｂ２１、ＣＴｂ２２、ＣＴｂ２３）である。また、ｂ０及びｂ１の値（０〜３）に応じて使用する符号化テーブルが切替えられる。ｂｎ−１用の符号化テーブルは２ｎ−１個（ＣＴｂｎ０、ＣＴｂｎ１、…、ＣＴｂｎ（２ｎ−１−１））である。また、ｂ０ｂ１…ｂｎ−２の値（０〜２ｎ−１−１）に応じて使用する符号化テーブルを切替えられる。
【０５０７】
なお、三次元データ符号化装置は、ｎビット符号に対しては、二値化せずに０〜２ｎ−１の値を設定するｍ−ａｒｙによる算術符号化（ｍ＝２ｎ）を適用してもよい。また、三次元データ符号化装置が、ｎビット符号をｍ−ａｒｙで算術符号化する場合は、三次元データ復号装置もｍ−ａｒｙの算術復号によりｎビット符号を復元してもよい。
【０５０８】
図５６は、例えば、残り符号が指数ゴロム符号の場合の処理を説明するための図である。指数ゴロムを用いて二値化した部分である残り符号は、図５６に示すようにｐｒｅｆｉｘ部とｓｕｆｆｉｘ部とを含む。例えば、三次元データ符号化装置は、ｐｒｅｆｉｘ部とｓｕｆｆｉｘ部とで符号化テーブルを切替える。つまり、三次元データ符号化装置は、ｐｒｅｆｉｘ部に含まれる各ビットを、ｐｒｅｆｉｘ用の符号化テーブルを用いて算術符号化し、ｓｕｆｆｉｘ部に含まれる各ビットを、ｓｕｆｆｉｘ用の符号化テーブルを用いて算術符号化する。
【０５０９】
なお、三次元データ符号化装置は、各符号化テーブルにおける０と１の発生確率を、実際に発生した二値化データの値に応じて更新してもよい。または、三次元データ符号化装置は、どちらかの符号化テーブルにおける０と１の発生確率を固定化してもよい。これにより、発生確率の更新回数を抑制できるので処理量を削減できる。例えば、三次元データ符号化装置は、ｐｒｅｆｉｘ部に対して発生確率を更新し、ｓｕｆｆｉｘ部に対して発生確率を固定化してもよい。
【０５１０】
また、三次元データ符号化装置は、量子化後の予測残差を、逆量子化及び再構成するこで復号し、復号した予測残差である復号値を符号化対象の三次元点以降の予測に利用する。具体的には、三次元データ符号化装置は、量子化後の予測残差（量子化値）に量子化スケールを乗算することで逆量子化値を算出し、逆量子化値と予測値とを加算して復号値（再構成値）を得る。
【０５１１】
例えば、点ａ２の逆量子化値ａ２ｉｑは、点ａ２の量子化値ａ２ｑを用いて（式Ａ１１）により算出される。点ｂ２の逆量子化値ｂ２ｉｑは、点ｂ２の量子化値ｂ２ｑを用いて（式Ａ１２）により算出される。ここで、ＱＳ＿ＬｏＤ０は、ＬｏＤ０用のＱＳであり、ＱＳ＿ＬｏＤ１は、ＬｏＤ１用のＱＳである。つまり、ＬｏＤに応じてＱＳが変更されてもよい。
【０５１２】
ａ２ｉｑ＝ａ２ｑ×ＱＳ＿ＬｏＤ０  ・・・（式Ａ１１）
【０５１３】
ｂ２ｉｑ＝ｂ２ｑ×ＱＳ＿ＬｏＤ１  ・・・（式Ａ１２）
【０５１４】
例えば、点ａ２の復号値ａ２ｒｅｃは、（式Ａ１３）に示すように、点ａ２の逆量子化値ａ２ｉｑに、点ａ２の予測値ａ２ｐを加算することで算出される。点ｂ２の復号値ｂ２ｒｅｃは、（式Ａ１４）に示すように、点ｂ２の逆量子化値ｂ２ｉｑに、点ｂ２の予測値ｂ２ｐを加算することで算出される。
【０５１５】
ａ２ｒｅｃ＝ａ２ｉｑ＋ａ２ｐ  ・・・（式Ａ１３）
【０５１６】
ｂ２ｒｅｃ＝ｂ２ｉｑ＋ｂ２ｐ  ・・・（式Ａ１４）
【０５１７】
以下、本実施の形態に係るビットストリームのシンタックス例を説明する。図５７は、本実施の形態に係る属性ヘッダ（ａｔｔｒｉｂｕｔｅ＿ｈｅａｄｅｒ）のシンタックス例を示す図である。属性ヘッダは、属性情報のヘッダ情報である。図５７に示すように、属性ヘッダは、階層数情報（ＮｕｍＬｏＤ）と、三次元点数情報（ＮｕｍＯｆＰｏｉｎｔ［ｉ］）と、階層閾値（Ｔｈｒｅｓ＿Ｌｏｄ［ｉ］）と、周囲点数情報（ＮｕｍＮｅｉｇｈｏｒＰｏｉｎｔ［ｉ］）と、予測閾値（ＴＨｄ［ｉ］）と、量子化スケール（ＱＳ［ｉ］）と、二値化閾値（Ｒ＿ＴＨ［ｉ］）とを含む。
【０５１８】
階層数情報（ＮｕｍＬｏＤ）は、用いられるＬｏＤの階層数を示す。
【０５１９】
三次元点数情報（ＮｕｍＯｆＰｏｉｎｔ［ｉ］）は、階層ｉに属する三次元点の数を示す。なお、三次元データ符号化装置は、三次元点の総数を示す三次元点総数情報（ＡｌｌＮｕｍＯｆＰｏｉｎｔ）を別のヘッダに付加してもよい。この場合、三次元データ符号化装置は、最下層に属する三次元点の数を示すＮｕｍＯｆＰｏｉｎｔ［ＮｕｍＬｏＤ−１］をヘッダに付加しなくてもよい。この場合、三次元データ復号装置は、（式Ａ１５）によりＮｕｍＯｆＰｏｉｎｔ［ＮｕｍＬｏＤ−１］を算出できる。これにより、ヘッダの符号量を削減できる。
【０５２０】
【数４】
2020162495.tif 000006
【０５２１】
階層閾値（Ｔｈｒｅｓ＿Ｌｏｄ［ｉ］）は、階層ｉの設定に用いられる閾値である。三次元データ符号化装置及び三次元データ復号装置は、ＬｏＤｉ内の各点の間の距離が閾値Ｔｈｒｅｓ＿ＬｏＤ［ｉ］より大きくなるようにＬｏＤｉを構成する。また、三次元データ符号化装置は、Ｔｈｒｅｓ＿Ｌｏｄ［ＮｕｍＬｏＤ−１］（最下層）の値をヘッダに付加しなくてもよい。この場合、三次元データ復号装置は、Ｔｈｒｅｓ＿Ｌｏｄ［ＮｕｍＬｏＤ−１］の値を０と推定する。これによりヘッダの符号量を削減できる。
【０５２２】
周囲点数情報（ＮｕｍＮｅｉｇｈｏｒＰｏｉｎｔ［ｉ］）は、階層ｉに属する三次元点の予測値の生成に用いる周囲の点数の上限値を示す。三次元データ符号化装置は、周囲の点数ＭがＮｕｍＮｅｉｇｈｏｒＰｏｉｎｔ［ｉ］に満たない場合（Ｍ＜ＮｕｍＮｅｉｇｈｏｒＰｏｉｎｔ［ｉ］）は、Ｍ個の周囲の点数を用いて予測値を算出してもよい。また、三次元データ符号化装置は、各ＬｏＤでＮｕｍＮｅｉｇｈｏｒＰｏｉｎｔ［ｉ］の値を分ける必要がない場合は、全てのＬｏＤで使用される１個の周囲点数情報（ＮｕｍＮｅｉｇｈｏｒＰｏｉｎｔ）をヘッダに付加してもよい。
【０５２３】
予測閾値（ＴＨｄ［ｉ］）は、階層ｉにて符号化又は復号対象の対象三次元点の予測に用いる周囲の三次元点と対象三次元点との距離の上限値を示す。三次元データ符号化装置及び三次元データ復号装置は、対象三次元点からの距離がＴＨｄ［ｉ］より離れている三次元点を予測に用いない。なお、三次元データ符号化装置は、各ＬｏＤでＴＨｄ［ｉ］の値を分ける必要がない場合は、全てのＬｏＤで使用される１個の予測閾値（ＴＨｄ）をヘッダに付加してもよい。
【０５２４】
量子化スケール（ＱＳ［ｉ］）は、階層ｉの量子化及び逆量子化で用いられる量子化スケールを示す。
【０５２５】
二値化閾値（Ｒ＿ＴＨ［ｉ］）は、階層ｉに属する三次元点の予測残差の二値化方法を切替えるための閾値である。例えば、三次元データ符号化装置は、予測残差が閾値Ｒ＿ＴＨより小さい場合は、固定ビット数で予測残差ｐｕを二値化し、予測残差が閾値Ｒ＿ＴＨ以上の場合は、閾値Ｒ＿ＴＨの二値化データと（ｐｕ−Ｒ＿ＴＨ）の値を指数ゴロムを用いて二値化する。なお、各ＬｏＤでＲ＿ＴＨ［ｉ］の値を切替える必要がない場合は、三次元データ符号化装置は、全てのＬｏＤで使用される１個の二値化閾値（Ｒ＿ＴＨ）をヘッダに付加してもよい。
【０５２６】
なお、Ｒ＿ＴＨ［ｉ］はｎｂｉｔで表せる最大値であってもよい。例えば６ｂｉｔではＲ＿ＴＨは６３であり、８ｂｉｔではＲ＿ＴＨは２５５である。また、三次元データ符号化装置は、二値化閾値としてｎｂｉｔで表せる最大値を符号化する代わりに、ビット数を符号化してもよい。例えば、三次元データ符号化装置は、Ｒ＿ＴＨ［ｉ］＝６３の場合は値６を、Ｒ＿ＴＨ［ｉ］＝２５５の場合は値８をヘッダに付加してもよい。また、三次元データ符号化装置は、Ｒ＿ＴＨ［ｉ］を表すビット数の最小値（最小ビット数）を定義し、最小値からの相対ビット数をヘッダに付加してもよい。例えば、三次元データ符号化装置は、Ｒ＿ＴＨ［ｉ］＝６３で最小ビット数が６の場合は値０をヘッダに付加し、Ｒ＿ＴＨ［ｉ］＝２５５で最小ビット数が６の場合は値２をヘッダに付加してもよい。
【０５２７】
また、三次元データ符号化装置は、ＮｕｍＬｏＤ、Ｔｈｒｅｓ＿Ｌｏｄ［ｉ］、ＮｕｍＮｅｉｇｈｂｏｒＰｏｉｎｔ［ｉ］、ＴＨｄ［ｉ］、ＱＳ［ｉ］及びＲ＿ＴＨ［ｉ］の少なくとも一つをエントロピー符号化してヘッダに付加してもよい。例えば、三次元データ符号化装置は、各値を二値化して算術符号化してもよい。また、三次元データ符号化装置は、処理量を抑えるために各値を固定長で符号化してもよい。
【０５２８】
また、三次元データ符号化装置は、ＮｕｍＬｏＤ、Ｔｈｒｅｓ＿Ｌｏｄ［ｉ］、ＮｕｍＮｅｉｇｈｂｏｒＰｏｉｎｔ［ｉ］、ＴＨｄ［ｉ］、ＱＳ［ｉ］、及びＲ＿ＴＨ［ｉ］の少なくとも一つをヘッダに付加しなくてもよい。例えば、これらのうちの少なくとも一つの値が、規格等のｐｒｏｆｉｌｅ又はｌｅｖｅｌ等で規定されてもよい。これによりヘッダのビット量を削減することができる。
【０５２９】
図５８は、本実施の形態に係る属性データ（ａｔｔｒｉｂｕｔｅ＿ｄａｔａ）のシンタックス例を示す図である。この属性データは、複数の三次元点の属性情報の符号化データを含む。図５８に示すように属性データは、ｎビット符号（ｎ−ｂｉｔ  ｃｏｄｅ）と、残り符号（ｒｅｍａｉｎｉｎｇ  ｃｏｄｅ）とを含む。
【０５３０】
ｎビット符号は（ｎ−ｂｉｔ  ｃｏｄｅ）は、属性情報の値の予測残差の符号化データ又はその一部である。ｎビット符号のビット長はＲ＿ＴＨ［ｉ］の値に依存する。例えばＲ＿ＴＨ［ｉ］の示す値が６３の場合、ｎビット符号は６ｂｉｔであり、Ｒ＿ＴＨ［ｉ］の示す値が２５５の場合、ｎビット符号は８ｂｉｔである。
【０５３１】
残り符号（ｒｅｍａｉｎｉｎｇ  ｃｏｄｅ）は、属性情報の値の予測残差の符号化データのうち、指数ゴロムで符号化された符号化データである。この残り符号は、ｎビット符号がＲ＿ＴＨ［ｉ］と同じ場合に符号化又は復号される。また、三次元データ復号装置は、ｎビット符号の値と残り符号の値を加算して予測残差を復号する。なお、ｎビット符号がＲ＿ＴＨ［ｉ］と同じ値でない場合は、残り符号は符号化又は復号されなくてもよい。
【０５３２】
以下、三次元データ符号化装置における処理の流れを説明する。図５９は、三次元データ符号化装置による三次元データ符号化処理のフローチャートである。
【０５３３】
まず、三次元データ符号化装置は、位置情報（ｇｅｏｍｅｔｒｙ）を符号化する（Ｓ３００１）。例えば、三次元データ符号化は、８分木表現を用いて符号化を行う。
【０５３４】
三次元データ符号化装置は、位置情報の符号化後に、量子化等によって三次元点の位置が変化した場合に、変化後の三次元点に元の三次元点の属性情報を再割り当てする（Ｓ３００２）。例えば、三次元データ符号化装置は、位置の変化量に応じて属性情報の値を補間することで再割り当てを行う。例えば、三次元データ符号化装置は、変化後の三次元位置に近い変化前の三次元点をＮ個検出し、Ｎ個の三次元点の属性情報の値を重み付け平均する。例えば、三次元データ符号化装置は、重み付け平均において、変化後の三次元位置から各Ｎ個の三次元までの距離に基づいて重みを決定する。そして、三次元データ符号化装置は、重み付け平均により得られた値を変化後の三次元点の属性情報の値に決定する。また、三次元データ符号化装置は、量子化等によって２個以上の三次元点が同一の三次元位置に変化した場合は、その変化後の三次元点の属性情報の値として、変化前の２個以上の三次元点の属性情報の平均値を割当ててもよい。
【０５３５】
次に、三次元データ符号化装置は、再割り当て後の属性情報（Ａｔｔｒｉｂｕｔｅ）を符号化する（Ｓ３００３）。例えば、三次元データ符号化装置は、複数種類の属性情報を符号化する場合は、複数種類の属性情報を順に符号化してもよい。例えば、三次元データ符号化装置は、属性情報として、色と反射率とを符号化する場合は、色の符号化結果の後に反射率の符号化結果を付加したビットストリームを生成してもよい。なお、ビットストリームに付加される属性情報の複数の符号化結果の順番は、この順に限らず、どのような順番でもよい。
【０５３６】
また、三次元データ符号化装置は、ビットストリーム内の各属性情報の符号化データ開始場所を示す情報をヘッダ等に付加してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ符号化装置は、複数種類の属性情報を並列に符号化し、符号化結果を１つのビットストリームに統合してもよい。これにより、三次元データ符号化装置は、高速に複数種類の属性情報を符号化できる。
【０５３７】
図６０は、属性情報符号化処理（Ｓ３００３）のフローチャートである。まず、三次元データ符号化装置は、ＬｏＤを設定する（Ｓ３０１１）。つまり、三次元データ符号化装置は、各三次元点を複数のＬｏＤのいずれかに割り当てる。
【０５３８】
次に、三次元データ符号化装置は、ＬｏＤ単位のループを開始する（Ｓ３０１２）。つまり、三次元データ符号化装置は、ＬｏＤ毎にステップＳ３０１３〜Ｓ３０２１の処理を繰り返し行う。
【０５３９】
次に、三次元データ符号化装置は、三次元点単位のループを開始する（Ｓ３０１３）。つまり、三次元データ符号化装置は、三次元点毎にステップＳ３０１４〜Ｓ３０２０の処理を繰り返し行う。
【０５４０】
まず、三次元データ符号化装置は、処理対象の対象三次元点の予測値の算出に用いる、対象三次元点の周囲に存在する三次元点である複数の周囲点を探索する（Ｓ３０１４）。次に、三次元データ符号化装置は、複数の周囲点の属性情報の値の重み付け平均を算出し、得られた値を予測値Ｐに設定する（Ｓ３０１５）。次に、三次元データ符号化装置は、対象三次元点の属性情報と予測値との差分である予測残差を算出する（Ｓ３０１６）。次に、三次元データ符号化装置は、予測残差を量子化することで量子化値を算出する（Ｓ３０１７）。次に、三次元データ符号化装置は、量子化値を算術符号化する（Ｓ３０１８）。
【０５４１】
また、三次元データ符号化装置は、量子化値を逆量子化することで逆量子化値を算出する（Ｓ３０１９）。次に、三次元データ符号化装置は、逆量子化値に予測値を加算することで復号値を生成する（Ｓ３０２０）。次に、三次元データ符号化装置は、三次元点単位のループを終了する（Ｓ３０２１）。また、三次元データ符号化装置は、ＬｏＤ単位のループを終了する（Ｓ３０２２）。
【０５４２】
以下、上記の三次元データ符号化装置により生成されたビットストリームを復号する三次元データ復号装置における三次元データ復号処理について説明する。
【０５４３】
三次元データ復号装置は、三次元データ符号化装置によって生成されたビットストリーム内の属性情報の二値化データを、三次元データ符号化装置と同様の方法で算術復号することで、復号された二値化データを生成する。なお、三次元データ符号化装置において、ｎビットで二値化した部分（ｎビット符号）と、指数ゴロムを用いて二値化した部分（残り符号）とで算術符号化の適用方法を切替えた場合は、三次元データ復号装置は、算術復号適用時に、それに合わせて復号を行う。
【０５４４】
例えば、三次元データ復号装置は、ｎビット符号の算術復号方法において、ビット毎に異なる符号化テーブル（復号テーブル）を用いて算術復号を行う。この際、三次元データ復号装置は、ビット毎に使用する符号化テーブルの数を変えてもよい。例えば、ｎビット符号の先頭ビットｂ０には１個の符号化テーブルを用いて算術復号を行う。また、三次元データ復号装置は、次のビットｂ１に対しては２個の符号化テーブルを用いる。また、三次元データ復号装置は、ｂ０の値（０又は１）に応じてビットｂ１の算術復号に用いる符号化テーブルを切替える。同様に、三次元データ復号装置は、更に次のビットｂ２に対しては４個の符号化テーブルを用いる。また、三次元データ復号装置は、ｂ０及びｂ１の値（０〜３）に応じて、ビットｂ２の算術復号に用いる符号化テーブルを切替える。
【０５４５】
このように、三次元データ復号装置は、ｎビット符号の各ビットｂｎ−１を算術復号する際に、２ｎ−１個の符号化テーブルを用いる。また、三次元データ復号装置は、ｂｎ−１より前のビットの値（発生パターン）に応じて、使用する符号化テーブルを切替える。これにより、三次元データ復号装置は、ビット毎に適切な符号化テーブルを使用して符号化効率を向上したビットストリームを適切に復号できる。
【０５４６】
なお、三次元データ復号装置は、各ビットで使用する符号化テーブルの数を削減してもよい。例えば、三次元データ復号装置は、各ビットｂｎ−１を算術復号する際に、ｂｎ−１より前のｍビット（ｍ＜ｎ−１）の値（発生パターン）に応じて２ｍ個の符号化テーブルを切替えてもよい。これにより、三次元データ復号装置は、各ビットで使用する符号化テーブルの数を抑えつつ、符号化効率を向上したビットストリームを適切に復号できる。なお、三次元データ復号装置は、各符号化テーブルにおける０と１の発生確率を、実際に発生した二値化データの値に応じて更新してもよい。また、三次元データ復号装置は、一部のビットの符号化テーブルにおける０と１の発生確率を固定化してもよい。これにより、発生確率の更新回数を抑制できるので処理量を削減できる。
【０５４７】
例えば、ｎビット符号がｂ０ｂ１ｂ２…ｂｎ−１である場合、ｂ０用の符号化テーブルは１個（ＣＴｂ０）である。ｂ１用の符号化テーブルは２個（ＣＴｂ１０、ＣＴｂ１１）である。また、ｂ０の値（０〜１）に応じて符号化テーブルが切替えられる。ｂ２用の符号化テーブルは４個（ＣＴｂ２０、ＣＴｂ２１、ＣＴｂ２２、ＣＴｂ２３）である。また、ｂ０及びｂ１の値（０〜３）に応じて符号化テーブルが切替えられる。ｂｎ−１用の符号化テーブルは、２ｎ−１個（ＣＴｂｎ０、ＣＴｂｎ１、…、ＣＴｂｎ（２ｎ−１−１））である。また、ｂ０ｂ１…ｂｎ−２の値（０〜２ｎ−１−１）に応じて符号化テーブルが切替えられる。
【０５４８】
図６１は、例えば、残り符号が指数ゴロム符号である場合の処理を説明するための図である。三次元データ符号化装置が指数ゴロムを用いて二値化して符号化した部分（残り符号）は、図６１に示すようにｐｒｅｆｉｘ部とｓｕｆｆｉｘ部とを含む。例えば、三次元データ復号装置は、ｐｒｅｆｉｘ部とｓｕｆｆｉｘ部とで符号化テーブルを切替える。つまり、三次元データ復号装置は、ｐｒｅｆｉｘ部に含まれる各ビットを、ｐｒｅｆｉｘ用の符号化テーブルを用いて算術復号し、ｓｕｆｆｉｘ部に含まれる各ビットを、ｓｕｆｆｉｘ用の符号化テーブルを用いて算術復号する。
【０５４９】
なお、三次元データ復号装置は、各符号化テーブルにおける０と１の発生確率を、復号時に発生した二値化データの値に応じて更新してもよい。または、三次元データ復号装置は、どちらかの符号化テーブルにおける０と１の発生確率を固定化してもよい。これにより、発生確率の更新回数を抑制できるので処理量を削減できる。例えば、三次元データ復号装置は、ｐｒｅｆｉｘ部に対して発生確率を更新し、ｓｕｆｆｉｘ部に対して発生確率を固定化してもよい。
【０５５０】
また、三次元データ復号装置は、算術復号した予測残差の二値化データを、三次元データ符号化装置で用いられた符号化方法に合わせて多値化することで量子化後の予測残差（符号なし整数値）を復号する。三次元データ復号装置は、まずｎビット符号の二値化データを算術復号することで復号したｎビット符号の値を算出する。次に、三次元データ復号装置は、ｎビット符号の値とＲ＿ＴＨの値とを比較する。
【０５５１】
三次元データ復号装置は、ｎビット符号の値とＲ＿ＴＨの値とが一致した場合、指数ゴロムで符号化されたビットが次に存在すると判定し、指数ゴロムで符号化された二値化データである残り符号を算術復号する。そして、三次元データ復号装置は、復号した残り符号から、残り符号とその値との関係を示す逆引きテーブルを用いて残り符号の値を算出する。図６２は、残り符号とその値との関係を示す逆引きテーブルの例を示す図である。次に、三次元データ復号装置は、得られた残り符号の値をＲ＿ＴＨに加算することで多値化された量子化後の予測残差を得る。
【０５５２】
一方、三次元データ復号装置は、ｎビット符号の値とＲ＿ＴＨの値とが一致しない（Ｒ＿ＴＨより値が小さい）場合、ｎビット符号の値をそのまま、多値化された量子化後の予測残差に決定する。これにより、三次元データ復号装置は、三次元データ符号化装置で予測残差の値に応じて二値化方法を切替えて生成したビットストリームを適切に復号できる。
【０５５３】
なお、三次元データ復号装置は、閾値Ｒ＿ＴＨがビットストリームのヘッダ等に付加されている場合は、閾値Ｒ＿ＴＨの値をヘッダから復号し、復号した閾値Ｒ＿ＴＨの値を用いて復号方法を切替えてもよい。また、三次元データ復号装置は、ＬｏＤ毎に閾値Ｒ＿ＴＨがヘッダ等に付加されている場合、ＬｏＤ毎に復号した閾値Ｒ＿ＴＨを用いて復号方法を切替える。
【０５５４】
例えば、閾値Ｒ＿ＴＨが６３であり、復号したｎビット符号の値が６３である場合、三次元データ復号装置は、残り符号を指数ゴロムにより復号することで残り符号の値を得る。例えば、図６２に示す例では、残り符号が００１００であり、残り符号の値として３が得られる。次に、三次元データ復号装置は、閾値Ｒ＿ＴＨの値６３と、残り符号の値３とを加算することで予測残差の値６６を得る。
【０５５５】
また、復号したｎビット符号の値が３２である場合、三次元データ復号装置は、ｎビット符号の値３２を予測残差の値に設定する。
【０５５６】
また、三次元データ復号装置は、復号した量子化後の予測残差を、例えば、三次元データ符号化装置における処理と逆の処理により、符号なし整数値から符号付整数値に変換する。これにより、三次元データ復号装置は、予測残差をエントロピー符号化する場合に、負の整数の発生を考慮せずに生成したビットストリームを適切に復号できる。なお、三次元データ復号装置は、必ずしも符号なし整数値を符号付整数値に変換する必要はなく、例えば符号ビットを別途エントロピー符号化して生成されたビットストリームを復号する場合は、符号ビットを復号してもよい。
【０５５７】
三次元データ復号装置は、符号付整数値に変換した量子化後の予測残差を、逆量子化及び再構成によって復号することで復号値を生成する。また、三次元データ復号装置は、生成した復号値を、復号対象の三次元点以降の予測に利用する。具体的には、三次元データ復号装置は、量子化後の予測残差に、復号した量子化スケールを乗算することで逆量子化値を算出し、逆量子化値と予測値とを加算して復号値を得る。
【０５５８】
復号された符号なし整数値（符号なし量子化値）は、以下の処理により符号付整数値に変換される。三次元データ復号装置は、復号された符号なし整数値ａ２ｕのＬＳＢ（ｌｅａｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）が１である場合、符号付整数値ａ２ｑを−（（ａ２ｕ＋１）＞＞１）に設定する。三次元データ復号装置は、符号なし整数値ａ２ｕのＬＳＢが１でない場合、符号付整数値ａ２ｑを（ａ２ｕ＞＞１）に設定する。
【０５５９】
同様に、三次元データ復号装置は、復号された符号なし整数値ｂ２ｕのＬＳＢが１である場合、符号付整数値ｂ２ｑを−（（ｂ２ｕ＋１）＞＞１）に設定する。三次元データ復号装置は、符号なし整数値ｎ２ｕのＬＳＢが１でない場合、符号付整数値ｂ２ｑを（ｂ２ｕ＞＞１）に設定する。
【０５６０】
また、三次元データ復号装置による逆量子化及び再構成処理の詳細は、三次元データ符号化装置における逆量子化及び再構成処理と同様である。
【０５６１】
以下、三次元データ復号装置における処理の流れを説明する。図６３は、三次元データ復号装置による三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、ビットストリームから位置情報（ｇｅｏｍｅｔｒｙ）を復号する（Ｓ３０３１）。例えば、三次元データ復号装置は、８分木表現を用いて復号を行う。
【０５６２】
次に、三次元データ復号装置は、ビットストリームから属性情報（Ａｔｔｒｉｂｕｔｅ）を復号する（Ｓ３０３２）。例えば、三次元データ復号装置は、複数種類の属性情報を復号する場合は、複数種類の属性情報を順に復号してもよい。例えば、三次元データ復号装置は、属性情報として色と反射率とを復号する場合は、ビットストリームに付加されている順に従い、色の符号化結果と反射率の符号化結果とを復号する。例えば、ビットストリームにおいて、色の符号化結果の後に反射率の符号化結果が付加されている場合、三次元データ復号装置は、色の符号化結果を復号し、その後に反射率の符号化結果を復号する。なお、三次元データ復号装置は、ビットストリームに付加される属性情報の符号化結果をどのような順番で復号してもよい。
【０５６３】
また、三次元データ復号装置は、ビットストリーム内の各属性情報の符号化データ開始場所を示す情報を、ヘッダ等を復号することで取得してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ復号装置は、複数種類の属性情報を並列に復号し、復号結果を１つの三次元点群に統合してもよい。これにより、三次元データ復号装置は、高速に複数種類の属性情報を復号できる。
【０５６４】
図６４は、属性情報復号処理（Ｓ３０３２）のフローチャートである。まず、三次元データ復号装置は、ＬｏＤを設定する（Ｓ３０４１）。つまり、三次元データ復号装置は、復号された位置情報を有する複数の三次元点の各々を複数のＬｏＤのいずれかに割り当てる。例えば、この割り当て方法は、三次元データ符号化装置で用いられた割り当て方法と同じ方法である。
【０５６５】
次に、三次元データ復号装置は、ＬｏＤ単位のループを開始する（Ｓ３０４２）。つまり、三次元データ復号装置は、ＬｏＤ毎にステップＳ３０４３〜Ｓ３０４９の処理を繰り返し行う。
【０５６６】
次に、三次元データ復号装置は、三次元点単位のループを開始する（Ｓ３０４３）。つまり、三次元データ復号装置は、三次元点毎にステップＳ３０４４〜Ｓ３０４８の処理を繰り返し行う。
【０５６７】
まず、三次元データ復号装置は、処理対象の対象三次元点の予測値の算出に用いる、対象三次元点の周囲に存在する三次元点である複数の周囲点を探索する（Ｓ３０４４）。次に、三次元データ復号装置は、複数の周囲点の属性情報の値の重み付け平均を算出し、得られた値を予測値Ｐに設定する（Ｓ３０４５）。なお、これらの処理は三次元データ符号化装置における処理と同様である。
【０５６８】
次に、三次元データ復号装置は、ビットストリームから量子化値を算術復号する（Ｓ３０４６）。また、三次元データ復号装置は、復号した量子化値を逆量子化することで逆量子化値を算出する（Ｓ３０４７）。次に、三次元データ復号装置は、逆量子化値に予測値を加算することで復号値を生成する（Ｓ３０４８）。次に、三次元データ復号装置は、三次元点単位のループを終了する（Ｓ３０４９）。また、三次元データ復号装置は、ＬｏＤ単位のループを終了する（Ｓ３０５０）。
【０５６９】
次に、本実施の形態に係る三次元データ符号化装置及び三次元データ復号装置の構成を説明する。図６５は、本実施の形態に係る三次元データ符号化装置３０００の構成を示すブロック図である。この三次元データ符号化装置３０００は、位置情報符号化部３００１と、属性情報再割り当て部３００２と、属性情報符号化部３００３とを備える。
【０５７０】
属性情報符号化部３００３は、入力点群に含まれる複数の三次元点の位置情報（ｇｅｏｍｅｔｒｙ）を符号化する。属性情報再割り当て部３００２は、入力点群に含まれる複数の三次元点の属性情報の値を、位置情報の符号化及び復号結果を用いて再割り当てする。属性情報符号化部３００３は、再割り当てされた属性情報（ａｔｔｒｉｂｕｔｅ）を符号化する。また、三次元データ符号化装置３０００は、符号化された位置情報及び符号化された属性情報を含むビットストリームを生成する。
【０５７１】
図６６は、本実施の形態に係る三次元データ復号装置３０１０の構成を示すブロック図である。この三次元データ復号装置３０１０は、位置情報復号部３０１１と、属性情報復号部３０１２とを含む。
【０５７２】
位置情報復号部３０１１は、ビットストリームから複数の三次元点の位置情報（ｇｅｏｍｅｔｒｙ）を復号する。属性情報復号部３０１２は、ビットストリームから複数の三次元点の属性情報（ａｔｔｒｉｂｕｔｅ）を復号する。また、三次元データ復号装置３０１０は、復号した位置情報と復号した属性情報とを結合することで出力点群を生成する。
【０５７３】
以上のように、本実施の形態に係る三次元データ符号化装置は、図６７に示す処理を行う。三次元データ符号化装置は、属性情報を有する三次元点を符号化する。まず、三次元データ符号化装置は、三次元点の属性情報の予測値を算出する（Ｓ３０６１）。次に、三次元データ符号化装置は、三次元点の属性情報と、予測値との差分である予測残差を算出する（Ｓ３０６２）。次に、三次元データ符号化装置は、予測残差を二値化することで二値データを生成する（Ｓ３０６３）。次に、三次元データ符号化装置は、二値データを算術符号化する（Ｓ３０６４）。
【０５７４】
これによれば、三次元データ符号化装置は、属性情報の予測残差を算出し、さらに、当該予測残差を二値化及び算術符号化することで、属性情報の符号化データの符号量を削減できる。
【０５７５】
例えば、算術符号化（Ｓ３０６４）では、三次元データ符号化装置は、二値データのビット毎に異なる符号化テーブルを用いる。これによれば、三次元データ符号化装置は、符号化効率を向上できる。
【０５７６】
例えば、算術符号化（Ｓ３０６４）では、二値データの下位ビットほど、使用する符号化テーブルの数が多い。
【０５７７】
例えば、算術符号化（Ｓ３０６４）では、三次元データ符号化装置は、二値データに含まれる対象ビットの上位ビットの値に応じて、対象ビットの算術符号化に使用する符号化テーブルを選択する。これによれば、三次元データ符号化装置は、上位ビットの値に応じて符号化テーブルを選択できるので符号化効率を向上できる。
【０５７８】
例えば、三次元データ符号化装置は、二値化（Ｓ３０６３）では、予測残差が閾値（Ｒ＿ＴＨ）より小さい場合、固定ビット数で予測残差を二値化することで二値データを生成し、予測残差が閾値（Ｒ＿ＴＨ）以上である場合、閾値（Ｒ＿ＴＨ）を示す固定ビット数の第１符号（ｎビット符号）と、予測残差から閾値（Ｒ＿ＴＨ）を減算した値を指数ゴロムで二値化した第２符号（残り符号）とを含む二値データを生成する。三次元データ符号化装置は、算術符号化（Ｓ３０６４）では、第１符号と第２符号とに異なる算術符号化方法を用いる。
【０５７９】
これによれば、三次元データ符号化装置は、例えば、第１符号と第２符号との各々に適した算術符号化方法により第１符号と第２符号を算術符号化できるので符号化効率を向上できる。
【０５８０】
例えば、三次元データ符号化装置は、予測残差を量子化し、二値化（Ｓ３０６３）では、量子化された予測残差を二値化する。閾値（Ｒ＿ＴＨ）は、量子化における量子化スケールに応じて変更される。これによれば、三次元データ符号化装置は、量子化スケールに応じた適切な閾値を用いることができるので符号化効率を向上できる。
【０５８１】
例えば、第２符号は、ｐｒｅｆｉｘ部と、ｓｕｆｆｉｘ部とを含む。三次元データ符号化装置は、算術符号化（Ｓ３０６４）では、ｐｒｅｆｉｘ部とｓｕｆｆｉｘ部とに異なる符号化テーブルを用いる。これによれば、三次元データ符号化装置は、符号化効率を向上できる。
【０５８２】
例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
【０５８３】
また、本実施の形態に係る三次元データ復号装置は、図６８に示す処理を行う。三次元データ復号装置は、属性情報を有する三次元点を復号する。まず、三次元データ復号装置は、三次元点の属性情報の予測値を算出する（Ｓ３０７１）。次に、三次元データ復号装置は、ビットストリームに含まれる符号化データを算術復号することで二値データを生成する（Ｓ３０７２）。次に、三次元データ復号装置は、二値データを多値化することで予測残差を生成する（Ｓ３０７３）。次に、三次元データ復号装置は、予測値と予測残差とを加算することで、三次元点の属性情報の復号値を算出する（Ｓ３０７４）。
【０５８４】
これによれば、三次元データ復号装置は、属性情報の予測残差を算出し、さらに、当該予測残差を二値化及び算術符号化することで生成された属性情報のビットストリームを適切に復号できる。
【０５８５】
例えば、算術復号（Ｓ３０７２）では、三次元データ復号装置は、二値データのビット毎に異なる符号化テーブルを用いる。これによれば、三次元データ復号装置は、符号化効率が向上されたビットストリームを適切に復号できる。
【０５８６】
例えば、算術復号（Ｓ３０７２）では、二値データの下位ビットほど、使用する符号化テーブルの数が多い。
【０５８７】
例えば、算術復号（Ｓ３０７２）では、三次元データ復号装置は、二値データに含まれる対象ビットの上位ビットの値に応じて、対象ビットの算術復号に使用する符号化テーブルを選択する。これによれば、三次元データ復号装置は、符号化効率が向上されたビットストリームを適切に復号できる。
【０５８８】
例えば、三次元データ復号装置は、多値化（Ｓ３０７３）では、二値データに含まれる固定ビット数の第１符号（ｎビット符号）を多値化することで第１の値を生成する。三次元データ復号装置は、第１の値が閾値（Ｒ＿ＴＨ）より小さい場合、第１の値を予測残差に決定し、第１の値が閾値（Ｒ＿ＴＨ）以上の場合、二値データに含まれる指数ゴロム符号である第２符号（残り符号）を多値化することで第２の値を生成し、第１の値と第２の値とを加算することで予測残差を生成する。三次元データ復号装置は、算術復号（Ｓ３０７２）では、第１符号と第２符号とに異なる算術復号方法を用いる。
【０５８９】
これによれば、三次元データ復号装置は、符号化効率が向上されたビットストリームを適切に復号できる。
【０５９０】
例えば、三次元データ復号装置は、予測残差を逆量子化し、加算（Ｓ３０７４）では、予測値と、逆量子化された予測残差とを加算する。閾値（Ｒ＿ＴＨ）は、逆量子化における量子化スケールに応じて変更される。これによれば、三次元データ復号装置は、符号化効率が向上されたビットストリームを適切に復号できる。
【０５９１】
例えば、第２符号は、ｐｒｅｆｉｘ部と、ｓｕｆｆｉｘ部とを含む。三次元データ復号装置は、算術復号（Ｓ３０７２）では、ｐｒｅｆｉｘ部とｓｕｆｆｉｘ部とに異なる符号化テーブルを用いる。これによれば、三次元データ復号装置は、符号化効率が向上されたビットストリームを適切に復号できる。
【０５９２】
例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
【０５９３】
（実施の形態９）
実施の形態８とは別の手法で予測値を生成してもよい。以下では、符号化対象の三次元点を第１三次元点と称し、その周囲の三次元点を第２三次元点と称する場合がある。
【０５９４】
例えば、三次元点の属性情報の予測値の生成において、符号化対象の三次元点の符号化済みかつ復号済みの周囲の三次元点のうち、最も距離が近い三次元点の属性値をそのまま予測値として生成しても構わない。また、予測値の生成では、予測モード情報（ＰｒｅｄＭｏｄｅ）を三次元点毎に付加し、複数の予測値から１つの予測値を選択することで予測値を生成できるようにしても構わない。つまり、例えば、総数Ｍの予測モードにおいて、予測モード０に平均値、予測モード１に三次元点Ａの属性値、・・・、予測モードＭ−１に三次元点Ｚの属性値を割り当て、予測に使用した予測モードを三次元点毎にビットストリームに付加することが考えられる。このように、周囲の三次元点の属性情報の平均が予測値として算出される第１予測モードを示す第１予測モード値は、周囲の三次元点の属性情報そのものが予測値として算出される第２予測モードを示す第２予測モード値よりも小さくてもよい。ここで、予測モード０において算出される予測値である「平均値」は、符号化対象の三次元点の周囲の三次元点の属性値の平均値である。
【０５９５】
図６９は、実施の形態９に係る各予測モードにおいて算出される予測値を示すテーブルの第１の例を示す図である。図７０は、実施の形態９に係る予測値に用いる属性情報の例を示す図である。図７１は、実施の形態９に係る各予測モードにおいて算出される予測値を示すテーブルの第２の例を示す図である。
【０５９６】
予測モード数Ｍは、ビットストリームに付加されても構わない。また、予測モード数Ｍは、ビットストリームに付加されずに規格のｐｒｏｆｉｌｅ、ｌｅｖｅｌ等で値が規定されても構わない。また、予測モード数Ｍは、予測に用いる三次元点数Ｎから算出された値が用いられても構わない。例えば予測モード数Ｍは、Ｍ＝Ｎ＋１により算出されても構わない。
【０５９７】
なお、図６９に示されるテーブルは、予測に用いる三次元点数Ｎ＝４、かつ、予測モード数Ｍ＝５の場合の例である。点ｂ２の属性情報の予測値は、点ａ０、ａ１、ａ２、ｂ１の属性情報を用いて生成され得る。複数の予測モードから１つの予測モードを選択する場合、点ｂ２からの各点ａ０、ａ１、ａ２、ｂ１までの距離情報を元に、各点ａ０、ａ１、ａ２、ｂ１の属性値を予測値として生成する予測モードを選択してもよい。予測モードは、符号化対象の三次元点毎に付加される。予測値は、付加された予測モードに応じた値に応じて算出される。
【０５９８】
図７１に示されるテーブルは、図６９と同様に、予測に用いる三次元点数Ｎ＝４、かつ、予測モード数Ｍ＝５の場合の例である。点ａ２の属性情報の予測値は、点ａ０、ａ１の属性情報を用いて生成され得る。複数の予測モードから１つの予測モードを選択する場合、点ａ２のからの各店ａ０、ａ１までの距離情報を元に、各点ａ０、ａ１の属性値を予測値として生成する予測モードを選択してもよい。予測モードは、符号化対象の三次元点毎に付加される。予測値は、付加された予測モードに応じた値に応じて算出される。
【０５９９】
なお、上記の点ａ２のように隣接点数、つまり、周囲の三次元点数Ｎが４個に満たない場合、テーブルにおいて予測値が未割当てである予測モードをｎｏｔ  ａｖａｉｌａｂｌｅとしてもよい。
【０６００】
なお、予測モードの値の割当ては、符号化対象の三次元点からの距離順で決定しても構わない。例えば、複数の予測モードを示す予測モード値は、予測値として用いる属性情報を有する周囲の三次元点までの符号化対象の三次元点からの距離が近いほど小さい。図６９の例では、点ｂ１、ａ２、ａ１、ａ０の順に符号化対象の三次元点である点ｂ２への距離が近いことが示される。例えば、予測値の算出では、２以上の予測モードのうちの予測モード値が「１」で示される予測モードにおいて点ｂ１の属性情報を予測値として算出し、予測モード値が「２」で示される予測モードにおいて点ａ２の属性情報を予測値として算出する。このように、点ｂ１の属性情報を予測値として算出する予測モードを示す予測モード値は、点ｂ２からの距離が点ｂ１よりも遠い位置にある点ａ２の属性情報を予測値として算出する予測モードを示す予測モード値よりも小さい。
【０６０１】
これにより、距離が近いため予測が当たりやすく選ばれやすい可能性のある点に小さい予測モード値を割り振ることができ、予測モード値を符号化するためのビット数を削減することができる。また、符号化対象の三次元点と同一のＬｏＤに属する三次元点に優先的に小さい予測モード値を割当ててもよい。
【０６０２】
図７２は、実施の形態９に係る各予測モードにおいて算出される予測値を示すテーブルの第３の例を示す図である。具体的には、第３の例は、予測値に用いられる属性情報が周囲の三次元点の色情報（ＹＵＶ）による値である場合の例である。このように、予測値に用いられる属性情報は、三次元点の色を示す色情報であってもよい。
【０６０３】
図７２に示されるように、予測モード値が「０」で示される予測モードにおいて算出される予測値は、ＹＵＶ色空間を定義するＹＵＶそれぞれの成分の平均である。具体的には、当該予測値は、点ｂ１、ａ２、ａ１、ａ０にそれぞれ対応するＹ成分の値であるＹｂ１、Ｙａ２、Ｙａ１、Ｙａ０の重み付き平均Ｙａｖｅと、点ｂ１、ａ２、ａ１、ａ０にそれぞれ対応するＵ成分の値であるＵｂ１、Ｕａ２、Ｕａ１、Ｕａ０の重み付き平均Ｕａｖｅと、点ｂ１、ａ２、ａ１、ａ０にそれぞれ対応するＶ成分の値であるＶｂ１、Ｖａ２、Ｖａ１、Ｖａ０の重み付き平均Ｖａｖｅと、を含む。また、予測モード値が「１」〜「４」で示される予測モードにおいて算出される予測値は、それぞれ、周囲の三次元点ｂ１、ａ２、ａ１、ａ０の色情報を含む。色情報は、Ｙ成分、Ｕ成分およびＶ成分の値の組み合わせで示される。
【０６０４】
なお、図７２では、色情報は、ＹＵＶ色空間で定義される値で示されているが、ＹＵＶ色空間に限らずに、ＲＧＢ色空間で定義される値で示されてもよいし、他の色空間で定義される値で示されてもよい。
【０６０５】
このように、予測値の算出では、予測モードの予測値として、２以上の平均または属性情報を算出してもよい。また、２以上の平均または属性情報は、それぞれ、色空間を定義する２以上の成分の値を示していてもよい。
【０６０６】
なお、例えば、図７２のテーブルにおいて予測モード値が「２」で示される予測モードが選択された場合、符号化対象の三次元点の属性値のＹ成分、Ｕ成分およびＶ成分をそれぞれ予測値Ｙａ２，Ｕａ２，Ｖａ２として用いて符号化してもよい。この場合、予測モード値としての「２」がビットストリームに付加される。
【０６０７】
図７３は、実施の形態９に係る各予測モードにおいて算出される予測値を示すテーブルの第４の例を示す図である。具体的には、第４の例は、予測値に用いられる属性情報が周囲の三次元点の反射率情報による値である場合の例である。反射率情報は、例えば、反射率Ｒを示す情報である。
【０６０８】
図７３に示されるように、予測モード値が「０」で示される予測モードにおいて算出される予測値は、点ｂ１、ａ２、ａ１、ａ０にそれぞれ対応する反射率Ｒｂ１、Ｒａ２、Ｒａ１、Ｒａ０の重み付き平均Ｒａｖｅである。また、予測モード値が「１」〜「４」で示される予測モードにおいて算出される予測値は、それぞれ、周囲の三次元点ｂ１、ａ２、ａ１、ａ０の反射率Ｒｂ１、Ｒａ２、Ｒａ１、Ｒａ０である。
【０６０９】
なお、例えば、図７３のテーブルにおいて予測モード値が「３」で示される予測モードが選択された場合、符号化対象の三次元点の属性値の反射率を予測値Ｒａ１として用いて符号化してもよい。この場合、予測モード値としての「３」がビットストリームに付加される。
【０６１０】
図７２および図７３で示されるように、属性情報は、第１属性情報と、第１属性情報とは異なる種類の第２属性情報とを含んでいてもよい。第１属性情報は、例えば、色情報である。第２属性情報は、例えば、反射率情報である。予測値の算出では、第１属性情報を用いて第１予測値を算出し、かつ、第２属性情報を用いて第２予測値を算出してもよい。
【０６１１】
（実施の形態１０）
以下、三次元点の属性情報を符号化する別の方法として、ＲＡＨＴ（Ｒｅｇｉｏｎ  Ａｄａｐｔｉｖｅ  Ｈｉｅｒａｒｃｈｉｃａｌ  Ｔｒａｎｓｆｏｒｍ）を用いた方法を説明する。図７４は、ＲＡＨＴを用いた属性情報の符号化を説明するための図である。
【０６１２】
まず、三次元データ符号化装置は、三次元点の位置情報に基づきモートン符号（Ｍｏｒｔｏｎ  ｃｏｄｅ）を生成し、モートン符号順に三次元点の属性情報をソートする。例えば、三次元データ符号化装置は、モートン符号の昇順にソートを行ってもよい。なお、ソート順はモートン符号順に限らず、他の順序が用いられてもよい。
【０６１３】
次に、三次元データ符号化装置は、モートン符号順で隣り合う２つの三次元点の属性情報に対し、Ｈａａｒ変換を適用することで、階層Ｌの高周波成分と低周波成分を生成する。例えば、三次元データ符号化装置は、２×２行列のＨａａｒ変換を用いてもよい。生成された高周波成分は階層Ｌの高周波成分として符号化係数に含められ、生成された低周波成分は階層Ｌの上位階層Ｌ＋１の入力値として用いられる。
【０６１４】
三次元データ符号化装置は、階層Ｌの属性情報を用いて階層Ｌの高周波成分を生成後、引き続き階層Ｌ＋１の処理を行う。階層Ｌ＋１の処理では、三次元データ符号化装置は、階層Ｌの属性情報のＨａａｒ変換によって得られた２つの低周波成分にＨａａｒ変換を適用することで階層Ｌ＋１の高周波成分と低周波成分を生成する。生成された高周波成分は階層Ｌ＋１の高周波成分として符号化係数に含められ、生成された低周波成分は階層Ｌ＋１の上位階層Ｌ＋２の入力値として用いられる。
【０６１５】
三次元データ符号化装置は、このような階層処理を繰返し、階層に入力される低周波成分が１個になった時点で、最上位階層Ｌｍａｘに到達したと判定する。三次元データ符号化装置は、階層Ｌｍａｘに入力された階層Ｌｍａｘ−１の低周波成分を符号化係数に含める。そして、符号化係数に含まれる低周波成分又は高周波成分の値を量子化し、エントロピー符号化等を用いて符号化する。
【０６１６】
なお、三次元データ符号化装置は、Ｈａａｒ変換適用時に隣り合う２つの三次元点として１つの三次元点のみが存在する場合は、存在する１つの三次元点の属性情報の値を上位階層の入力値として用いてもよい。
【０６１７】
このように、三次元データ符号化装置は、入力された属性情報に対して階層的にＨａａｒ変換を適用し、属性情報の高周波成分と低周波成分を生成し、後述する量子化等を適用して符号化を行う。これにより、符号化効率を向上できる。
【０６１８】
属性情報がＮ次元である場合、三次元データ符号化装置は、次元毎に独立にＨａａｒ変換を適用し、それぞれの符号化係数を算出してもよい。例えば、属性情報が色情報（ＲＧＢ又はＹＵＶ等）である場合、三次元データ符号化装置は、成分毎にＨａａｒ変換を適用し、それぞれの符号化係数を算出する。
【０６１９】
三次元データ符号化装置は、階層Ｌ、Ｌ＋１、…、階層Ｌｍａｘの順にＨａａｒ変換を適用してもよい。階層Ｌｍａｘに近づくほど入力された属性情報の低周波成分を多く含む符号化係数が生成される。
【０６２０】
図７４に示すｗ０及びｗ１は、各三次元点に割当てられる重みである。例えば、三次元データ符号化装置は、Ｈａａｒ変換を適用する隣り合う２つの三次元点間の距離情報等に基づき重みを算出してもよい。例えば、三次元データ符号化装置は、距離が近いほど重みを大きくすることで符号化効率を向上してもよい。なお、三次元データ符号化装置は、この重みを別の手法により算出してもよいし、重みを用いなくてもよい。
【０６２１】
図７４に示す例では、入力属性情報は、ａ０、ａ１、ａ２、ａ３、ａ４及びａ５である。また、Ｈａａｒ変換後の符号化係数のうち、Ｔａ１、Ｔａ５、Ｔｂ１、Ｔｂ３、Ｔｃ１、ｄ０が符号化される。他の符号化係数（ｂ０、ｂ２、ｃ０等）は中間値であり、符号化されない。
【０６２２】
具体的には、図７４に示す例では、ａ０とａ１とにＨａａｒ変換が行われることで、高周波成分Ｔａ１と、低周波成分ｂ０とが生成される。ここで、重みｗ０とｗ１とが等しい場合には、低周波成分ｂ０は、ａ０とａ１との平均値であり、高周波成分Ｔａ１は、ａ０とａ１との差分である。
【０６２３】
ａ２には対となる属性情報が存在しないため、ａ２がそのままｂ１として用いられる。同様に、ａ３には対となる属性情報が存在しないため、ａ３がそのままｂ２として用いられる。また、ａ４とａ５とにＨａａｒ変換が行われることで、高周波成分Ｔａ５と、低周波成分ｂ３とが生成される。
【０６２４】
階層Ｌ＋１では、ｂ０とｂ１とにＨａａｒ変換が行われることで、高周波成分Ｔｂ１と、低周波成分ｃ０とが生成される。同様に、ｂ２とｂ３とにＨａａｒ変換が行われることで、高周波成分Ｔｂ３と、低周波成分ｃ１とが生成される。
【０６２５】
階層Ｌｍａｘ−１では、ｃ０とｃ１とにＨａａｒ変換が行われることで、高周波成分Ｔｃ１と、低周波成分ｄ０とが生成される。
【０６２６】
三次元データ符号化装置は、Ｈａａｒ変換適用後の符号化係数を量子化したうえで符号化してもよい。例えば、三次元データ符号化装置は、符号化係数を量子化スケール（量子化ステップ（ＱＳ（Ｑｕａｎｔｉｚａｔｉｏｎ  Ｓｔｅｐ））とも呼ぶ）で除算することで量子化を行う。この場合、量子化スケールが小さいほど量子化によって発生しうる誤差（量子化誤差）が小さくなる。逆に量子化スケールが大きいほど量子化誤差は大きくなる。
【０６２７】
なお、三次元データ符号化装置は、量子化スケールの値を階層毎に変えてもよい。図７５は、階層毎に量子化スケールを設定する例を示す図である。例えば、三次元データ符号化装置は、上位層ほど量子化スケールを小さくし、下位層ほど量子化スケールを大きくする。上位層に属する三次元点の符号化係数は、下位層よりも低周波成分を多く含むため、人間の視覚特性等で重要な成分である可能性が高い。そのため、上位層の量子化スケールを小さくして上位層で発生しうる量子化誤差を抑えることで視覚的な劣化を抑え、符号化効率を向上できる。
【０６２８】
なお、三次元データ符号化装置は、階層毎の量子化スケールをヘッダ等に付加してもよい。これにより、三次元データ復号装置は、正しく量子化スケールを復号でき、ビットストリームを適切に復号できる。
【０６２９】
また、三次元データ符号化装置は、量子化スケールの値を、符号化対象の対象三次元点の重要度に応じて適応的に切替えてもよい。例えば、三次元データ符号化装置は、重要度が高い三次元点には小さい量子化スケールを用い、重要度が低い三次元点には大きい量子化スケールを用いる。例えば、三次元データ符号化装置は、Ｈａａｒ変換時の重み等から重要度を算出してもよい。例えば、三次元データ符号化装置は、ｗ０とｗ１の加算値を用いて量子化スケールを算出してもよい。このように重要度が高い三次元点の量子化スケールを小さくすることで量子化誤差が小さくなり、符号化効率を改善できる。
【０６３０】
また、上位層ほどＱＳの値を小さくしてもよい。これにより、上位層ほどＱＷの値が大きくなり、その三次元点の量子化誤差を抑えることで予測効率を改善できる。
【０６３１】
ここで、属性情報ａ１の符号化係数Ｔａ１の量子化後の符号化係数Ｔａ１ｑは、Ｔａ１／ＱＳ＿Ｌで表される。なお、ＱＳは全ての階層、又は一部の階層で同じ値であってもよい。
【０６３２】
ＱＷ（Ｑｕａｎｔｉｚａｔｉｏｎ  Ｗｅｉｇｈｔ）は、符号化対象の三次元点の重要度を表す値である。例えば、ＱＷとして、上述したｗ０とｗ１の加算値が用いられてもよい。これにより、上位層ほどＱＷの値が大きくなり、その三次元点の量子化誤差を抑えることで予測効率を改善できる。
【０６３３】
例えば、三次元データ符号化装置は、最初に全ての三次元点のＱＷの値を１で初期化し、Ｈａａｒ変換時のｗ０及びｗ１の値を用いて各三次元点のＱＷを更新してもよい。または、三次元データ符号化装置は、全ての三次元点のＱＷを値１で初期化せずに、階層に応じて初期値を変更してもよい。例えば、上位層ほどＱＷの初期値を大きく設定することで上位層の量子化スケールが小さくなる。これにより、上位層の予測誤差を抑えることができるので、下位層の予測精度を高め、符号化効率を改善できる。なお、三次元データ符号化装置は、ＱＷを必ずしも用いなくてもよい。
【０６３４】
ＱＷを用いる場合、Ｔａ１の量子化値Ｔａ１ｑは、（式Ｋ１）及び（式Ｋ２）により算出される。
【０６３５】
【数５】
2020162495.tif 000007
【０６３６】
また、三次元データ符号化装置は、量子化後の符号化係数（符号なし整数値）を、ある順番でスキャンし、符号化する。例えば、三次元データ符号化装置は、上位層に含まれる三次元点から順に下位層に向かって複数の三次元点を符号化する。
【０６３７】
例えば、図７４に示す例の場合、三次元データ符号化装置は、上位層Ｌｍａｘに含まれるｄ０ｑからＴｃ１ｑ、Ｔｂ１ｑ、Ｔｂ３ｑ、Ｔａ１ｑ、Ｔａ５ｑの順で複数の三次元点を符号化する。ここで、下位層Ｌになるほど、量子化後の符号化係数が０になりやすい傾向がある。この要因として、以下のことなどが上げられる。
【０６３８】
下位層Ｌの符号化係数は、上位層より高い周波数成分を示すため、対象三次元点によっては０になりやすい傾向がある。また、上述した重要度等に応じた量子化スケールの切り替えにより、下位層ほど量子化スケールが大きくなり、量子化後の符号化係数が０になりやすい。
【０６３９】
このように、下位層になるほど、量子化後の符号化係数が０になりやすく、値０が連続して第１符号列に発生しやすい。図７６は、第１符号列及び第２符号列の例を示す図である。
【０６４０】
三次元データ符号化装置は、第１符号列で値０が発生した回数をカウントし、連続した値０の代わりに、値０が連続して発生した回数を符号化する。つまり、三次元データ符号化装置は、第１符号列において連続する値０の符号化係数を０の連続回数（ＺｅｒｏＣｎｔ）に置き換えることで第２符号列を生成する。これにより、量子化後の符号化係数の値０が連続した場合に、多数の０を符号化するよりも０の連続回数を符号化することで符号化効率を向上できる。
【０６４１】
また、三次元データ符号化装置は、ＺｅｒｏＣｎｔの値をエントロピー符号化してもよい。例えば、三次元データ符号化装置は、符号化三次元点の総数Ｔのトランケットユーナリ符号（ｔｒｕｎｃａｔｅｄ  ｕｎａｒｙ  ｃｏｄｅ）でＺｅｒｏＣｎｔの値を二値化し、二値化後の各ビットを算術符号化する。図７７は、符号化三次元点の総数がＴの場合のトランケットユーナリ符号の例を示す図である。この際、三次元データ符号化装置は、ビット毎に異なる符号化テーブルを用いることで符号化効率を向上してもよい。例えば、三次元データ符号化装置は、１ビット目には符号化テーブル１を用い、２ビット目には符号化テーブル２を用い、それ以降のビットには符号化テーブル３を用いる。このように、三次元データ符号化装置は、ビット毎に符号化テーブルを切り替えることで符号化効率を向上できる。
【０６４２】
また、三次元データ符号化装置は、ＺｅｒｏＣｎｔを指数ゴロム（Ｅｘｐｏｎｅｎｔｉａｌ−Ｇｏｌｏｍｂ）で二値化したうえで算術符号化してもよい。これにより、ＺｅｒｏＣｎｔの値が大きくなりやすい場合に、トランケットユーナリ符号による二値化算術符号化よりも効率を向上できる。なお、三次元データ符号化装置は、トランケットユーナリ符号を用いるか指数ゴロムを用いるかを切り替えるためのフラグをヘッダに付加してもよい。これにより、三次元データ符号化装置は、最適な二値化方法を選択することで符号化効率を向上できる。また、三次元データ復号装置はヘッダに含まれるフラグを参照して二値化方法を切り替えて、ビットストリームを正しく復号できる。
【０６４３】
三次元データ復号装置は、復号した量子化後の符号化係数を、三次元データ符号化装置で行われた方法と逆の方法で符号なし整数値から符号付き整数値に変換してもよい。これにより符号化係数がエントロピー符号化される場合に、三次元データ復号装置は、負の整数の発生を考慮せずに生成されたビットストリームを適切に復号できる。なお、三次元データ復号装置は、符号化係数を必ずしも符号なし整数値から符号付き整数値に変換する必要はない。例えば、三次元データ復号装置は、別途エントロピー符号化された符号化ビットを含むビットストリームを復号する場合は、当該符号ビットを復号してもよい。
【０６４４】
三次元データ復号装置は、符号付き整数値に変換した量子化後の符号化係数を、逆量子化、及び逆Ｈａａｒ変換によって復号する。また、三次元データ復号装置は、復号後の符号化係数を、復号対象の三次元点以降の予測に利用する。具体的には、三次元データ復号装置は、量子化後の符号化係数に復号した量子化スケールを乗算することで逆量子化値を算出する。次に三次元データ復号装置は、逆量子化値に後述する逆Ｈａａｒ変換を適用することで復号値を得る。
【０６４５】
例えば、三次元データ復号装置は、復号された符号なし整数値を以下の方法で符号付き整数値に変換する。復号された符号なし整数値ａ２ｕのＬＳＢ（ｌｅａｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）が１である場合、符号付き整数値Ｔａ１ｑは、−（（ａ２ｕ＋１）＞＞１）に設定される。復号された符号なし整数値ａ２ｕのＬＳＢが１でない場合（０である場合）、符号付き整数値Ｔａ１ｑは、（ａ２ｕ＞＞１）に設定される。
【０６４６】
また、Ｔａ１の逆量子化値は、Ｔａ１ｑ×ＱＳ＿Ｌで表される。ここで、Ｔａ１ｑは、Ｔａ１の量子化値である。また、ＱＳ＿Ｌは階層Ｌの量子化ステップである。
【０６４７】
また、ＱＳは全ての階層、又は一部の階層で同じ値であってもよい。また、三次元データ符号化装置は、ＱＳを示す情報をヘッダ等に付加してもよい。これにより、三次元データ復号装置は、三次元データ符号化装置で用いられたＱＳと同じＱＳを用いて、正しく逆量子化を行える。
【０６４８】
次に、逆Ｈａａｒ変換について説明する。図７８は、逆Ｈａａｒ変換を説明するための図である。三次元データ復号装置は、逆量子化後の符号化係数に、逆Ｈａａｒ変換を適用することで三次元点の属性値を復号する。
【０６４９】
まず、三次元データ復号装置は、三次元点の位置情報に基づきモートン符号を生成し、モートン符号順に三次元点をソートする。例えば、三次元データ復号装置は、モートン符号の昇順にソートを行ってよい。なお、ソート順はモートン符号順に限らず、他の順序が用いられてもよい。
【０６５０】
次に、三次元データ復号装置は、階層Ｌ＋１の低周波成分を含む符号化係数と階層Ｌの高周波成分を含む符号化係数に逆Ｈａａｒ変換を適用することで、階層Ｌにおいてモートン符号順で隣り合う三次元点の属性情報を復元する。例えば、三次元データ復号装置は、２×２行列の逆Ｈａａｒ変換を用いてもよい。復元された階層Ｌの属性情報は下位階層Ｌ−１の入力値として用いられる。
【０６５１】
三次元データ復号装置は、このような階層処理を繰返し、最下層の属性情報が全て復号されたら処理を終了する。なお、逆Ｈａａｒ変換適用時に階層Ｌ−１にて隣り合う２つの三次元点として１つの三次元点のみが存在する場合は、三次元データ復号装置は、存在する１つの三次元点の属性値に階層Ｌの符号化成分の値を代入してもよい。これにより、三次元データ復号装置は、入力された属性情報の全ての値にＨａａｒ変換を適用し、符号化効率を向上したビットストリームを正しく復号できる。
【０６５２】
属性情報がＮ次元である場合、三次元データ復号装置は、次元毎に独立に逆Ｈａａｒ変換を適用し、それぞれの符号化係数を復号してもよい。例えば、属性情報が色情報（ＲＧＢ又はＹＵＶ等）である場合、三次元データ復号装置は、成分毎の符号化係数に逆Ｈａａｒ変換を適用し、それぞれの属性値を復号する。
【０６５３】
三次元データ復号装置は、階層Ｌｍａｘ、Ｌ＋１、…、階層Ｌの順に逆Ｈａａｒ変換を適用してもよい。また、図７８に示すｗ０及びｗ１は、各三次元点に割当てられる重みである。例えば、三次元データ復号装置は、逆Ｈａａｒ変換を適用する隣り合う２つの三次元点間の距離情報等に基づき重みを算出してもよい。例えば、三次元データ符号化装置は、距離が近いほど重みを大きくすることで符号化効率を向上したビットストリームを復号してもよい。
【０６５４】
図７８に示す例では、逆量子化後の符号化係数は、Ｔａ１、Ｔａ５、Ｔｂ１、Ｔｂ３、Ｔｃ１及びｄ０であり、復号値としてａ０、ａ１、ａ２、ａ３、ａ４及びａ５が得られる。
【０６５５】
図７９は、属性情報（ａｔｔｒｉｂｕｔｅ＿ｄａｔａ）のシンタックス例を示す図である。属性情報（ａｔｔｒｉｂｕｔｅ＿ｄａｔａ）は、ゼロ連続数（ＺｅｒｏＣｎｔ）と、属性次元数（ａｔｔｒｉｂｕｔｅ＿ｄｉｍｅｎｓｉｏｎ）と、符号化係数（ｖａｌｕｅ［ｊ］［ｉ］）とを含む。
【０６５６】
ゼロ連続数（ＺｅｒｏＣｎｔ）は、量子化後の符号化係数において値０が連続する回数を示す。なお、三次元データ符号化装置は、ＺｅｒｏＣｎｔを二値化したうえで算術符号化してもよい。
【０６５７】
また、図７９に示すように、三次元データ符号化装置は、符号化係数が属する階層Ｌ（ｌａｙｅｒＬ）が、予め定められた閾値ＴＨ＿ｌａｙｅｒ以上かどうかを判定し、判定結果によってビットストリームに付加する情報を切り替えてもよい。例えば、三次元データ符号化装置は、判定結果が真であれば属性情報の全ての符号化係数をビットストリームに付加する。また、三次元データ符号化装置は、判定結果が偽であれば一部の符号化係数をビットストリームに付加してもよい。
【０６５８】
具体的には、三次元データ符号化装置は、判定結果が真であれば、色情報のＲＧＢ又はＹＵＶの三次元情報の符号化結果をビットストリームに付加する。判定結果が偽であれば、三次元データ符号化装置は、色情報のうち、Ｇ又はＹなどの一部の情報をビットストリームに付加し、それ以外の成分をビットストリームに付加しなくてもよい。このように、三次元データ符号化装置は、視覚的に劣化が目立ちにくい高周波成分を示す符号化係数を含む階層（ＴＨ＿ｌａｙｅｒより小さい階層）の符号化係数の一部をビットストリームに付加しないことで、符号化効率を向上できる。
【０６５９】
属性次元数（ａｔｔｒｉｂｕｔｅ＿ｄｉｍｅｎｓｉｏｎ）は、属性情報の次元数を示す。例えば、属性情報が三次元点の色情報（ＲＧＢ又はＹＵＶなど）である場合、色情報は三次元であるため属性次元数は値３に設定される。属性情報が反射率である場合、反射率は一次元であるため属性次元数は値１に設定される。なお、属性次元数はビットストリームの属性情報のヘッダ等に付加されてもよい。
【０６６０】
符号化係数（ｖａｌｕｅ［ｊ］［ｉ］）は、ｉ番目の三次元点のｊ次元番目の属性情報の量子化後の符号化係数を示す。例えば属性情報が色情報の場合、ｖａｌｕｅ［９９］［１］は１００番目の三次元点の二次元番目（例えばＧ値）の符号化係数を示す。また、属性情報が反射率情報の場合、ｖａｌｕｅ［１１９］［０］は１２０番目の三次元点の１次元番目（例えば反射率）の符号化係数を示す。
【０６６１】
なお、以下の条件を満たす場合、三次元データ符号化装置は、ｖａｌｕｅ［ｊ］［ｉ］から値１を減算し、得られた値をエントロピー符号化してもよい。この場合、三次元データ復号装置は、エントロピー復号後のｖａｌｕｅ［ｊ］［ｉ］に値１を加算することで符号化係数を復元する。
【０６６２】
上記の条件は、（１）ａｔｔｒｉｂｕｔｅ＿ｄｉｍｅｎｓｉｏｎ＝１の場合、又は、（２）ａｔｔｒｉｂｕｔｅ＿ｄｉｍｅｎｓｉｏｎが１以上で、かつ全ての次元の値が等しい場合である。例えば、属性情報が反射率の場合はａｔｔｒｉｂｕｔｅ＿ｄｉｍｅｎｓｉｏｎ＝１であるため、三次元データ符号化装置は符号化係数から値１を減算してｖａｌｕｅを算出し、算出したｖａｌｕｅを符号かする。三次元データ復号装置は復号後のｖａｌｕｅに値１を加算して符号化係数を算出する。
【０６６３】
より具体的には、例えば、反射率の符号化係数が１０の場合、三次元データ符号化装置は、符号化係数の値１０から値１を減算した値９を符号化する。三次元データ復号装置は、復号した値９に値１を加算して符号化係数の値１０を算出する。
【０６６４】
また、属性情報が色の場合はａｔｔｒｉｂｕｔｅ＿ｄｉｍｅｎｓｉｏｎ＝３であるため、三次元データ符号化装置は、例えば、Ｒ、Ｇ、Ｂの各成分の量子化後の符号化係数が同じ場合は、各符号化係数から値１を減算し、得られた値を符号化する。三次元データ復号装置は、復号後の値に値１を加算する。より具体的には、例えば、Ｒ、Ｇ、Ｂの符号化係数＝（１、１、１）の場合は、三次元データ符号化装置は、（０、０、０）を符号化する。三次元データ復号装置は、（０、０、０）の各成分に１を加算して（１、１、１）を算出する。また、Ｒ、Ｇ、Ｂの符号化係数＝（２、１、２）の場合は、三次元データ符号化装置は、（２、１、２）をそのまま符号化する。三次元データ復号装置は、復号した（２、１、２）をそのまま符号化係数として用いる。
【０６６５】
このように、ＺｅｒｏＣｎｔを設けることで、ｖａｌｕｅとして全ての次元が０であるパターンは生成されないので、ｖａｌｕｅの値から１を減じた値を符号化できる。よって、符号化効率を向上できる。
【０６６６】
また、図７９に示すｖａｌｕｅ［０］［ｉ］は、ｉ番目の三次元点の一次元番目の属性情報の量子化後の符号化係数を示す。図７９に示すように符号化係数の属する階層Ｌ（ｌａｙｅｒＬ）が閾値ＴＨ＿ｌａｙｅｒより小さければ、一次元番目の属性情報をビットストリームに付加する（二次元番目以降の属性情報をビットストリーム付加しない）ことで符号量を削減してもよい。
【０６６７】
三次元データ符号化装置は、ａｔｔｒｉｂｕｔｅ＿ｄｉｍｅｎｓｉｏｎの値によってＺｅｒｏＣｎｔの値の算出方法を切替えてもよい。例えば、三次元データ符号化装置は、ａｔｔｒｉｂｕｔｅ＿ｄｉｍｅｎｓｉｏｎ＝３の場合は、全ての成分（次元）の符号化係数の値が０となる回数をカウントしてもよい。図８０は、この場合の符号化係数とＺｅｒｏＣｎｔの例を示す図である。例えば、図８０に示す色情報の場合、三次元データ符号化装置は、Ｒ、Ｇ、Ｂ成分が全て０である符号化係数が連続する数をカウントし、カウントした数をＺｅｒｏＣｎｔとしてビットストリームに付加する。これにより、成分毎にＺｅｒｏＣｎｔを符号化する必要がなくなり、オーバヘッドを削減できる。よって、符号化効率を改善できる。なお、三次元データ符号化装置は、ａｔｔｒｉｂｕｔｅ＿ｄｉｍｅｎｓｉｏｎが２以上の場合でも次元毎にＺｅｒｏＣｎｔを算出し、算出したＺｅｒｏＣｎｔをビットストリームに付加してもよい。
【０６６８】
図８１は、本実施の形態に係る三次元データ符号化処理のフローチャートである。まず、三次元データ符号化装置は、位置情報（ｇｅｏｍｅｔｒｙ）を符号化する（Ｓ６６０１）。例えば、三次元データ符号化装置は、８分木表現を用いて符号化を行う。
【０６６９】
次に、三次元データ符号化装置は、属性情報を変換する（Ｓ６６０２）。例えば、三次元データ符号化装置は、位置情報の符号化後に、量子化等によって三次元点の位置が変化した場合に、変化後の三次元点に元の三次元点の属性情報を再割当てする。なお、三次元データ符号化装置は、位置の変化量に応じて属性情報の値を補間して再割当てを行ってもよい。例えば、三次元データ符号化装置は、変化後の三次元位置に近い変化前の三次元点をＮ個検出し、Ｎ個の三次元点の属性情報の値を、変化後の三次元位置から各Ｎ個の三次元までの距離に基づいて重み付け平均し、得られた値を変化後の三次元点の属性情報の値に設定する。また、三次元データ符号化装置は、量子化等によって２個以上の三次元点が同一の三次元位置に変化した場合は、その変化後の属性情報の値として、変化前の２個以上の三次元点における属性情報の平均値を割当ててもよい。
【０６７０】
次に。三次元データ符号化装置は、属性情報を符号化する（Ｓ６６０３）。例えば、三次元データ符号化装置は、複数の属性情報を符号化する場合は、複数の属性情報を順に符号化してもよい。例えば、三次元データ符号化装置は、属性情報として、色と反射率を符号化する場合は、色の符号化結果の後に反射率の符号化結果を付加したビットストリームを生成する。なお、ビットストリームに付加される属性情報の複数の符号化結果はどのような順番でもよい。
【０６７１】
また、三次元データ符号化装置は、ビットストリーム内の各属性情報の符号化データの開始場所を示す情報をヘッダ等に付加してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ符号化装置は、複数の属性情報を並列に符号化し、符号化結果を１つのビットストリームに統合してもよい。これにより、三次元データ符号化装置は、高速に複数の属性情報を符号化できる。
【０６７２】
図８２は、属性情報符号化処理（Ｓ６６０３）のフローチャートである。まず、三次元データ符号化装置は、Ｈａａｒ変換により属性情報から符号化係数を生成する（Ｓ６６１１）。次に、三次元データ符号化装置は、符号化係数に量子化を適用する（Ｓ６６１２）。次に、三次元データ符号化装置は、量子化後の符号化係数を符号化することで符号化属性情報（ビットストリーム）を生成する（Ｓ６６１３）。
【０６７３】
また、三次元データ符号化装置は、量子化後の符号化係数に逆量子化を適用する（Ｓ６６１４）。次に、三次元データ復号装置は、逆量子化後の符号化係数に逆Ｈａａｒ変換を適用することで属性情報を復号する（Ｓ６６１５）。例えば、復号された属性情報は、後続の符号化において参照される。
【０６７４】
図８３は、符号化係数符号化処理（Ｓ６６１３）のフローチャートである。まず、三次元データ符号化装置は、符号化係数を符号付き整数値から符号なし整数値に変換する（Ｓ６６２１）。例えば、三次元データ符号化装置は、符号付き整数値を下記のように符号なし整数値に変換する。符号付き整数値Ｔａ１ｑが０より小さい場合、符号なし整数値は、−１−（２×Ｔａ１ｑ）に設定される。符号付き整数値Ｔａ１ｑが０以上である場合、符号なし整数値は、２×Ｔａ１ｑに設定される。なお、符号化係数が負の値にならない場合には、三次元データ符号化装置は、符号化係数をそのまま符号なし整数値として符号化してもよい。
【０６７５】
全ての符号化係数を処理済みでない場合（Ｓ６６２２でＮｏ）、三次元データ符号化装置は、処理対象の符号化係数の値がゼロであるかを判定する（Ｓ６６２３）。処理対象の符号化係数の値がゼロである場合（Ｓ６６２３でＹｅｓ）、三次元データ符号化装置は、ＺｅｒｏＣｎｔを１インクリメントし（Ｓ６６２４）、ステップＳ６６２２に戻る。
【０６７６】
処理対象の符号化係数の値がゼロでない場合（Ｓ６６２３でＮｏ）、三次元データ符号化装置は、ＺｅｒｏＣｎｔを符号化し、ＺｅｒｏＣｎｔを０にリセットする（Ｓ６６２５）。また、三次元データ符号化装置は、処理対象の符号化係数を算術符号化し（Ｓ６６２６）、ステップＳ６６２２に戻る。例えば、三次元データ符号化装置は、二値算術符号化を行う。また、三次元データ符号化装置は、符号化係数から値１を減算し、得られた値を符号化してもよい。
【０６７７】
また、ステップＳ６６２３〜Ｓ６６２６の処理が符号化係数毎に繰り返し行われる。また、全ての符号化係数を処理済みである場合（Ｓ６６２２でＹｅｓ）、三次元データ符号化装置は、処理を終了する。
【０６７８】
図８４は、本実施の形態に係る三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、ビットストリームから位置情報（ｇｅｏｍｅｔｒｙ）を復号する（Ｓ６６３１）。例えば、三次元データ復号装置は、８分木表現を用いて復号を行う。
【０６７９】
次に、三次元データ復号装置は、ビットストリームから属性情報を復号する（Ｓ６６３２）。例えば、三次元データ復号装置は、複数の属性情報を復号する場合は、複数の属性情報を順に復号してもよい。例えば、三次元データ復号装置は、属性情報として、色と反射率を復号する場合は、ビットストリームに付加されている順に従い、色の符号化結果、及び反射率の符号化結果を復号する。例えば、ビットストリームにおいて、色の符号化結果の後に、反射率の符号化結果が付加されている場合、三次元データ復号装置は、色の符号化結果を復号し、その後に反射率の符号化結果を復号する。なお、三次元データ復号装置は、ビットストリームに付加される属性情報の符号化結果をどのような順番で復号してもよい。
【０６８０】
また、三次元データ復号装置は、ビットストリーム内の各属性情報の符号化データの開始場所を示す情報をヘッダ等を復号することで取得してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ復号装置は、複数の属性情報を並列に復号し、復号結果を１つの三次元点群に統合してもよい。これにより、三次元データ復号装置は、高速に複数の属性情報を復号できる。
【０６８１】
図８５は、属性情報復号処理（Ｓ６６３２）のフローチャートである。まず、三次元データ復号装置は、ビットストリームから符号化係数を復号する（Ｓ６６４１）。次に、三次元データ復号装置は、符号化係数に逆量子化を適用する（Ｓ６６４２）。次に、三次元データ復号装置は、逆量子化後の符号化係数に逆Ｈａａｒ変換を適用することで属性情報を復号する（Ｓ６６４３）。
【０６８２】
図８６は、符号化係数復号処理（Ｓ６６４１）のフローチャートである。まず、三次元データ復号装置は、ビットストリームからＺｅｒｏＣｎｔを復号する（Ｓ６６５１）。全ての符号化係数を処理済みでない場合（Ｓ６６５２でＮｏ）、三次元データ復号装置は、ＺｅｒｏＣｎｔが０より大きいかを判定する（Ｓ６６５３）。
【０６８３】
ＺｅｒｏＣｎｔがゼロより大きい場合（Ｓ６６５３でＹｅｓ）、三次元データ復号装置は、処理対象の符号化係数を０に設定する（Ｓ６６５４）。次に、三次元データ復号装置は、ＺｅｒｏＣｎｔを１減算し（Ｓ６６５５）、ステップＳ６６５２に戻る。
【０６８４】
ＺｅｒｏＣｎｔがゼロである場合（Ｓ６６５３でＮｏ）、三次元データ復号装置は、処理対象の符号化係数を復号する（Ｓ６６５６）。例えば、三次元データ復号装置は、二値算術復号を用いる。また、三次元データ復号装置は、復号した符号化係数に値１を加算してもよい。
【０６８５】
次に、三次元データ復号装置は、ＺｅｒｏＣｎｔを復号し、得られた値をＺｅｒｏＣｎｔに設定し（Ｓ６６５７）、ステップＳ６６５２に戻る。
【０６８６】
また、ステップＳ６６５３〜Ｓ６６５７の処理が符号化係数毎に繰り返し行われる。また、全ての符号化係数を処理済みである場合（Ｓ６６５２でＹｅｓ）、三次元データ符号化装置は、復号した複数の符号化係数を符号なし整数値から符号付き整数値に変換する（Ｓ６６５８）。例えば、三次元データ復号装置は、復号した符号化係数は下記のように符号なし整数値から符号付き整数値に変換してもよい。復号された符号なし整数値Ｔａ１ｕのＬＳＢ（ｌｅａｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）が１である場合、符号付き整数値Ｔａ１ｑは、−（（Ｔａ１ｕ＋１）＞＞１）に設定される。復号された符号なし整数値Ｔａ１ｕのＬＳＢが１でない場合（０である場合）、符号付き整数値Ｔａ１ｑは、（Ｔａ１ｕ＞＞１）に設定される。なお、符号化係数が負の値にならない場合には、三次元データ復号装置は、復号した符号化係数をそのまま符号付き整数値として用いてもよい。
【０６８７】
図８７は、三次元データ符号化装置に含まれる属性情報符号化部６６００のブロック図である。属性情報符号化部６６００は、ソート部６６０１と、Ｈａａｒ変換部６６０２と、量子化部６６０３と、逆量子化部６６０４と、逆Ｈａａｒ変換部６６０５と、メモリ６６０６と、算術符号化部６６０７とを備える。
【０６８８】
ソート部６６０１は、三次元点の位置情報を用いてモートン符号を生成し、複数の三次元点をモートン符号順にソートする。Ｈａａｒ変換部６６０２は、属性情報にＨａａｒ変換を適用することで符号化係数を生成する。量子化部６６０３は、属性情報の符号化係数を量子化する。
【０６８９】
逆量子化部６６０４は、量子化後の符号化係数を逆量子化する。逆Ｈａａｒ変換部６６０５は、符号化係数に逆Ｈａａｒ変換を適用する。メモリ６６０６は、復号済みの複数の三次元点の属性情報の値を記憶する。例えば、メモリ６６０６に記憶される復号済みの三次元点の属性情報は、符号化されていない三次元点の予測等に利用されてもよい。
【０６９０】
算術符号化部６６０７は、量子化後の符号化係数からＺｅｒｏＣｎｔを算出し、ＺｅｒｏＣｎｔを算術符号化する。また、算術符号化部６６０７は、量子化後の非ゼロの符号化係数を算術符号化する。算術符号化部６６０７は、符号化係数を算術符号化前に二値化してもよい。また、算術符号化部６６０７は、各種ヘッダ情報を生成及び符号化してもよい。
【０６９１】
図８８は、三次元データ復号装置に含まれる属性情報復号部６６１０のブロック図である。属性情報復号部６６１０は、算術復号部６６１１と、逆量子化部６６１２と、逆Ｈａａｒ変換部６６１３と、メモリ６６１４とを備える。
【０６９２】
算術復号部６６１１は、ビットストリームに含まれるＺｅｒｏＣｎｔと符号化係数を算術復号する。なお、算術復号部６６１１は、各種ヘッダ情報を復号してもよい。
【０６９３】
逆量子化部６６１２は、算術復号した符号化係数を逆量子化する。逆Ｈａａｒ変換部６６１３は、逆量子化後の符号化係数に逆Ｈａａｒ変換を適用する。メモリ６６１４は、復号済みの複数の三次元点の属性情報の値を記憶する。例えば、メモリ６６１４に記憶される復号済みの三次元点の属性情報は、復号されていない三次元点の予測に利用されてもよい。
【０６９４】
なお、上記実施の形態では、符号化順として下位層から上位層の順に三次元点を符号化する例を示したが、必ずしもこれに限らない。例えば、Ｈａａｒ変換後の符号化係数を上位層から下位層の順にスキャンする方法が用いられてもよい。なお、この場合も、三次元データ符号化装置は、値０の連続回数をＺｅｒｏＣｎｔとして符号化してもよい。
【０６９５】
また、三次元データ符号化装置は、本実施の形態で述べたＺｅｒｏＣｎｔを用いた符号化方法を用いるか否かを、ＷＬＤ、ＳＰＣ又はボリューム単位で切替えてもよい。この場合、三次元データ符号化装置は、ＺｅｒｏＣｎｔを用いた符号化方法を適用したか否かを示す情報をヘッダ情報に付加してもよい。これにより、三次元データ復号装置は、適切に復号を行える。切替え方法の例として、例えば、三次元データ符号化装置は、１個のボリュームに対して値０の符号化係数の発生回数をカウントする。三次元データ符号化装置は、カウント値が予め定められた閾値を越えた場合は、次のボリュームにＺｅｒｏＣｎｔを用いた方法を適用し、カウント値が閾値以下の場合、次のボリュームにＺｅｒｏＣｎｔを用いた方法を適用しない。これにより、三次元データ符号化装置は、符号化対象の三次元点の特徴に応じて適切にＺｅｒｏＣｎｔを用いた符号化方法を適用するか否かを切り替えることができるので、符号化効率を向上できる。
【０６９６】
（実施の形態１１）
以下、量子化パラメータについて説明する。
【０６９７】
点群データの特性および位置に基づき点群データを分割するために、スライスおよびタイルが用いられる。ここで、ハードウェアの制限、および、リアルタイム処理の要件により、それぞれの分割された点群データに求められる品質が異なる場合がある。例えば、オブジェクト毎にスライスに分割して符号化する場合、植物を含むスライスデータは、それほど重要でないため、量子化することにより解像度（品質）を落とすことができる。一方、重要なスライスデータは量子化の値を低い値に設定することで高い解像度（品質）とすることができる。このような量子化値のコントロールを可能とするために量子化パラメータが用いられる。
【０６９８】
ここで、量子化の対象となるデータと、量子化に用いられるスケールと、量子化によって算出される結果である量子化データとは、以下の（式Ｇ１）と（式Ｇ２）で表される。
【０６９９】
量子化データ＝データ／スケール      （式Ｇ１）
【０７００】
データ＝量子化データ＊スケール      （式Ｇ２）
【０７０１】
図８９は、データを量子化する量子化部５３２３、および、量子化データを逆量子化する逆量子化部５３３３の処理について説明するための図である。
【０７０２】
量子化部５３２３は、スケールを用いてデータを量子化する、つまり、式Ｇ１を用いる処理を行うことで、データが量子化された量子化データを算出する。
【０７０３】
逆量子化部５３３３は、スケールを用いて量子化データを逆量子化する、つまり、式Ｇ２を用いる処理を行うことで、量子化データが逆量子化されたデータを算出する。
【０７０４】
また、スケールと、量子化値（ＱＰ（Quantization Parameter）値）とは、以下の（式Ｇ３）で表される。
【０７０５】
量子化値（ＱＰ値）＝ｌｏｇ（スケール）      （式Ｇ３）
【０７０６】
量子化値（ＱＰ値）＝デフォルト値（基準値）＋量子化デルタ（差分情報）      （式Ｇ４）
【０７０７】
また、これらのパラメータを総称して量子化パラメータ（Quantization Parameter）と呼ぶ。
【０７０８】
例えば、図９０に示されるように、量子化値は、デフォルト値を基準とした値であり、デフォルト値に量子化デルタを加算することで算出される。量子化値がデフォルト値よりも小さい値である場合には、量子化デルタは負の値となる。量子化値がデフォルト値よりも大きい値である場合には、量子化デルタは正の値となる。量子化値がデフォルト値と等しい場合には、量子化デルタは０となる。量子化デルタが０である場合、量子化デルタは、なくてもよい。
【０７０９】
符号化処理について説明する。図９１は、本実施の形態に係る三次元データ符号化装置に含まれる第１の符号化部５３００の構成を示すブロック図である。図９２は、本実施の形態に係る分割部５３０１の構成を示すブロック図である。図９３は、本実施の形態に係る位置情報符号化部５３０２および属性情報符号化部５３０３の構成を示すブロック図である。
【０７１０】
第１の符号化部５３００は、点群データを第１の符号化方法（ＧＰＣＣ（Ｇｅｏｍｅｔｒｙ  ｂａｓｅｄ  ＰＣＣ））で符号化することで符号化データ（符号化ストリーム）を生成する。この第１の符号化部５３００は、分割部５３０１と、複数の位置情報符号化部５３０２と、複数の属性情報符号化部５３０３と、付加情報符号化部５３０４と、多重化部５３０５とを含む。
【０７１１】
分割部５３０１は、点群データを分割することで複数の分割データを生成する。具体的には、分割部５３０１は、点群データの空間を複数のサブ空間に分割することで複数の分割データを生成する。ここでサブ空間とは、タイル及びスライスの一方、又はタイル及びスライスの組み合わせである。より具体的には、点群データは、位置情報、属性情報、及び付加情報を含む。分割部５３０１は、位置情報を複数の分割位置情報に分割し、属性情報を複数の分割属性情報に分割する。また、分割部５３０１は、分割に関する付加情報を生成する。
【０７１２】
分割部５３０１は、図９２に示すように、タイル分割部５３１１と、スライス分割部５３１２とを含む。例えば、タイル分割部５３１１は、点群をタイルに分割する。タイル分割部５３１１は、分割した各タイルに用いる量子化値をタイル付加情報として決定してもよい。
【０７１３】
スライス分割部５３１２は、タイル分割部５３１１により得られたタイルを、さらにスライスに分割する。スライス分割部５３１２は、分割した各スライスに用いる量子化値をスライス付加情報として決定してもよい。
【０７１４】
複数の位置情報符号化部５３０２は、複数の分割位置情報を符号化することで複数の符号化位置情報を生成する。例えば、複数の位置情報符号化部５３０２は、複数の分割位置情報を並列処理する。
【０７１５】
位置情報符号化部５３０２は、図９３に示すように、量子化値算出部５３２１と、エントロピ符号化部５３２２とを含む。量子化値算出部５３２１は、符号化される分割位置情報の量子化値（量子化パラメータ）を取得する。エントロピ符号化部５３２２は、量子化値算出部５３２１により取得された量子化値（量子化パラメータ）を用いて、分割位置情報を量子化することで、量子化位置情報を算出する。
【０７１６】
複数の属性情報符号化部５３０３は、複数の分割属性情報を符号化することで複数の符号化属性情報を生成する。例えば、複数の属性情報符号化部５３０３は、複数の分割属性情報を並列処理する。
【０７１７】
属性情報符号化部５３０３は、図９３に示すように、量子化値算出部５３３１と、エントロピ符号化部５３３２とを含む。量子化値算出部５３３１は、符号化される分割属性情報の量子化値（量子化パラメータ）を取得する。エントロピ符号化部５３３２は、量子化値算出部５３３１により取得された量子化値（量子化パラメータ）を用いて、分割属性情報を量子化することで、量子化属性情報を算出する。
【０７１８】
付加情報符号化部５３０４は、点群データに含まれる付加情報と、分割部５３０１で分割時に生成された、データ分割に関する付加情報とを符号化することで符号化付加情報を生成する。
【０７１９】
多重化部５３０５は、複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を多重化することで符号化データ（符号化ストリーム）を生成し、生成した符号化データを送出する。また、符号化付加情報は復号時に使用される。
【０７２０】
なお、図９１では、位置情報符号化部５３０２及び属性情報符号化部５３０３の数がそれぞれ２つの例を示しているが、位置情報符号化部５３０２及び属性情報符号化部５３０３の数は、それぞれ１つであってもよいし、３つ以上であってもよい。また、複数の分割データは、ＣＰＵ内の複数コアのように同一チップ内で並列処理されてもよいし、複数のチップのコアで並列処理されてもよいし、複数チップの複数コアで並列処理されてもよい。
【０７２１】
次に、復号処理について説明する。図９４は、第１の復号部５３４０の構成を示すブロック図である。図９５は、位置情報復号部５３４２および属性情報復号部５３４３の構成を示すブロック図である。
【０７２２】
第１の復号部５３４０は、点群データが第１の符号化方法（ＧＰＣＣ）で符号化されることで生成された符号化データ（符号化ストリーム）を復号することで点群データを復元する。この第１の復号部５３４０は、逆多重化部５３４１と、複数の位置情報復号部５３４２と、複数の属性情報復号部５３４３と、付加情報復号部５３４４と、結合部５３４５とを含む。
【０７２３】
逆多重化部５３４１は、符号化データ（符号化ストリーム）を逆多重化することで複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を生成する。
【０７２４】
複数の位置情報復号部５３４２は、複数の符号化位置情報を復号することで複数の量子化位置情報を生成する。例えば、複数の位置情報復号部５３４２は、複数の符号化位置情報を並列処理する。
【０７２５】
位置情報復号部５３４２は、図９５に示すように、量子化値算出部５３５１と、エントロピ復号部５３５２とを含む。量子化値算出部５３５１は、量子化位置情報の量子化値を取得する。エントロピ復号部５３５２は、量子化値算出部５３５１により取得された量子化値を用いて、量子化位置情報を逆量子化することで、位置情報を算出する。
【０７２６】
複数の属性情報復号部５３４３は、複数の符号化属性情報を復号することで複数の分割属性情報を生成する。例えば、複数の属性情報復号部５３４３は、複数の符号化属性情報を並列処理する。
【０７２７】
属性情報復号部５３４３は、図９５に示すように、量子化値算出部５３６１と、エントロピ復号部５３６２とを含む。量子化値算出部５３６１は、量子化属性情報の量子化値を取得する。エントロピ復号部５３６２は、量子化値算出部５３６１により取得された量子化値を用いて、量子化属性情報を逆量子化することで、属性情報を算出する。
【０７２８】
複数の付加情報復号部５３４４は、符号化付加情報を復号することで付加情報を生成する。
【０７２９】
結合部５３４５は、付加情報を用いて複数の分割位置情報を結合することで位置情報を生成する。結合部５３４５は、付加情報を用いて複数の分割属性情報を結合することで属性情報を生成する。例えば、結合部５３４５は、まず、スライス付加情報を用いて、スライスに対する復号された点群データを結合することでタイルに対応する点群データを生成する。次に、結合部５３４５は、タイル付加情報を用いて、タイルに対応する点群データを結合することで元の点群データを復元する。
【０７３０】
なお、図９４では、位置情報復号部５３４２及び属性情報復号部５３４３の数がそれぞれ２つの例を示しているが、位置情報復号部５３４２及び属性情報復号部５３４３の数は、それぞれ１つであってもよし、３つ以上であってもよい。また、複数の分割データは、ＣＰＵ内の複数コアのように同一チップ内で並列処理されてもよいし、複数のチップのコアで並列処理されてもよい、複数チップの複数コアで並列処理されてもよい。
【０７３１】
［量子化パラメータの決定方法］
図９６は、位置情報（Ｇｅｏｍｅｔｒｙ）の符号化あるいは属性情報（Ａｔｔｒｉｂｕｔｅ）の符号化における量子化値（Ｑｕａｎｔｉｚａｔｉｏｎ  Ｐａｒａｍｅｔｅｒ値：ＱＰ値）の決定に関する処理の一例を示すフローチャートである。
【０７３２】
ＱＰ値は、例えばＰＣＣフレームを構成する位置情報のデータ単位毎、あるいは属性情報のデータ単位毎に符号化効率を考慮して決定される。データ単位が分割されたタイル単位、あるいは、分割されたスライス単位である場合には、ＱＰ値は、分割のデータ単位の符号化効率を考慮し、分割のデータ単位で決定される。また、ＱＰ値は、分割前のデータ単位で決定されてもよい。
【０７３３】
図９６に示すように、三次元データ符号化装置は、位置情報の符号化に使用するＱＰ値を決定する（Ｓ５３０１）。三次元データ符号化装置は、ＱＰ値の決定を、分割された複数のスライス毎に、所定の方法に基づいて行ってもよい。具体的には、三次元データ符号化装置は、位置情報のデータの特徴または品質に基づいて、ＱＰ値を決定する。三次元データ符号化装置は、例えば、データ単位毎に、点群データの密度、つまり、スライスに属する単位領域あたりの点の数を判定し、点群データの密度に対応する値をＱＰ値として決定してもよい。あるいは、三次元データ符号化装置は、点群データの点の数、点の分布、点の偏り、または、点の情報から得られる特徴量、特徴点の数、あるいは認識されるオブジェクトに基づき、対応する値をＱＰ値として決定してもよい。また、三次元データ符号化装置は、地図の位置情報におけるオブジェクトを判定し、位置情報に基づくオブジェクトに基づきＱＰ値を決定してもよいし、三次元点群を二次元に投影した情報あるいは特徴量に基づきＱＰ値を決定してもよい。対応するＱＰ値は、あらかじめ、点群データの密度、点の数、点の分布、または点の偏りと対応付けられているテーブルとしてメモリに保持されていてもよい。また、対応するＱＰ値は、予め、点の情報から得られる特徴量もしくは特徴点の数、または、点の情報に基づいて認識されるオブジェクトと対応付けられているテーブルとしてメモリに保持されていてもよい。また、対応するＱＰ値は、点群データの位置情報を符号化する際に、様々なＱＰ値で符号化率などをシミュレーションした結果に基づき決定されてもよい。
【０７３４】
次に、三次元データ符号化装置は、位置情報のＱＰ値の基準値（デフォルト値）および差分情報（量子化デルタ）を決定する（Ｓ５３０２）。三次元データ符号化装置は、具体的には、決定したＱＰ値および所定の方法を用いて、伝送する基準値および差分情報を決定し、決定した基準値および差分情報を、付加情報およびデータのヘッダの少なくとも一方に設定（追加）する。
【０７３５】
次に、三次元データ符号化装置は、属性情報の符号化に使用するＱＰ値を決定する（Ｓ５３０３）。三次元データ符号化装置は、ＱＰ値の決定を、分割された複数のスライス毎に、所定の方法に基づいて行ってもよい。具体的には、三次元データ符号化装置は、属性情報のデータの特徴または品質に基づいて、ＱＰ値を決定する。三次元データ符号化装置は、例えば、データ単位毎に、属性情報の特性に基づいて、ＱＰ値を決定してもよい。色の特性とは、例えば、輝度、色度、彩度、これらのヒストグラム、色の連続性などである。属性情報が反射率の場合は、反射率に基づく情報に応じて判定してもよい。三次元データ符号化装置は、例えば、点群データからオブジェクトとして顔を検出した場合、顔を検出したオブジェクトを構成する点群データに対して、品質のよいＱＰ値を決定してもよい。このように、三次元データ符号化装置は、オブジェクトの種類に応じて、オブジェクトを構成する点群データに対するＱＰ値を決定してもよい。
【０７３６】
また、三次元データ符号化装置は、三次元点に複数の属性情報がある場合、属性情報毎に独立に、それぞれの属性情報に基づくＱＰ値を決定してもよいし、あるいは、いずれか一方の属性情報に基づき、複数の属性情報のＱＰ値を決定してもよいし、複数の属性情報を用いて当該複数の属性情報のＱＰ値を決定してもよい。
【０７３７】
次に、三次元データ符号化装置は、属性情報のＱＰ値の基準値（デフォルト値）および差分情報（量子化デルタ）を決定する（Ｓ５３０４）。三次元データ符号化装置は、具体的には、決定したＱＰ値および所定の方法を用いて、伝送する基準値および差分情報を決定し、決定した基準値および差分情報を、付加情報およびデータのヘッダの少なくとも一方に設定（追加）する。
【０７３８】
そして、三次元データ符号化装置は、それぞれ、決定された位置情報および属性情報のＱＰ値に基づき、位置情報および属性情報を量子化し、符号化する（Ｓ５３０５）。
【０７３９】
なお、位置情報のＱＰ値は、位置情報に基づいて決定され、属性情報のＱＰ値は、属性情報に基づいて決定される例を説明したが、これに限らない。例えば、位置情報および属性情報のＱＰ値は、位置情報に基づいて決定されてもよいし、属性情報に基づいて決定されてもよいし、位置情報および属性情報に基づいて決定されてもよい。
【０７４０】
なお、位置情報および属性情報のＱＰ値は、点群データにおける、位置情報の品質と属性情報の品質とのバランスを考慮して調整されてもよい。例えば、位置情報および属性情報のＱＰ値は、位置情報の品質が高く設定され、かつ、属性情報の品質が位置情報の品質より低く設定されるように決定されてもよい。例えば、属性情報のＱＰ値は、位置情報のＱＰ値以上という制約された条件を満たすように決定されてもよい。
【０７４１】
また、ＱＰ値は、符号化データがあらかじめ定められた所定のレートの範囲内に収まるように符号化されるように調整されてもよい。ＱＰ値は、例えば、ひとつ前のデータ単位の符号化で符号量が所定のレートを超えそうな場合、つまり、所定のレートまでの差が第一の差分未満である場合、データ単位の符号量が第一の差分未満となるよう符号化品質が低下するように調整されてもよい。一方で、ＱＰ値は、所定のレートまでの差が、第一の差分よりも大きい第二の差分より大きく、十分に大きな差がある場合、データ単位の符号化品質が向上するように調整されてもよい。データ単位の間の調整は、例えばＰＣＣフレーム間であってもよいし、タイルの間やスライスの間であってもよい。属性情報のＱＰ値の調整は、位置情報の符号化のレートに基づいて調整されてもよい。
【０７４２】
なお、図９６におけるフローチャートにおいて、位置情報に係る処理と属性情報に係る処理の処理順は、反対でも良いし、並列でもよい。
【０７４３】
なお、図９６におけるフローチャートでは、スライス単位の処理を例にしているが、タイル単位や、その他のデータ単位での処理の場合もスライス単位と同様に処理することができる。つまり、図９６のフローチャートのスライスは、タイルまたは他のデータ単位と読み替えることができる。
【０７４４】
図９７は、位置情報および属性情報の復号処理の一例を示すフローチャートである。
【０７４５】
図９７に示すように、三次元データ復号装置は、位置情報のＱＰ値を示す基準値および差分情報と、属性情報のＱＰ値を示す基準値および差分情報とを取得する（Ｓ５３１１）。具体的には、三次元データ復号装置は、伝送されるメタデータ、符号化データのヘッダのいずれか一方または両方を解析し、ＱＰ値を導出するための基準値および差分情報を取得する。
【０７４６】
次に、三次元データ復号装置は、取得した基準値および差分情報を用いて、所定の方法に基づいて、ＱＰ値を導出する（Ｓ５３１２）。
【０７４７】
そして、三次元データ復号装置は、量子化位置情報を取得し、導出されたＱＰ値を用いて量子化位置情報を逆量子化することで、位置情報を復号する（Ｓ５３１３）。
【０７４８】
次に、三次元データ復号装置は、量子化属性情報を取得し、導出されたＱＰ値を用いて量子化属性情報を逆量子化することで、属性情報を復号する（Ｓ５３１４）。
【０７４９】
次に、量子化パラメータの伝送方法について説明する。
【０７５０】
図９８は、量子化パラメータの伝送方法の第１の例について説明するための図である。図９８の（ａ）は、ＱＰ値の関係の一例を示す図である。
【０７５１】
図９８において、ＱＧおよびＱＡは、それぞれ、位置情報の符号化に用いるＱＰ値の絶対値、および、属性情報の符号化に用いるＱＰ値の絶対値を示す。ＱＧは、複数の三次元点のそれぞれの位置情報を量子化するために用いられる第１量子化パラメータの一例である。また、Δ（ＱＡ，ＱＧ）は、ＱＡの導出に用いるＱＧとの差分を示す差分情報を示す。つまり、ＱＡは、ＱＧとΔ（ＱＡ，ＱＧ）とを用いて導出される。このように、ＱＰ値は、基準値（絶対値）と差分情報（相対値）とに分けて伝送される。また、復号では、伝送された基準値および差分情報から所望のＱＰ値を導出する。
【０７５２】
例えば、図９８の（ａ）では、絶対値ＱＧと差分情報Δ（ＱＡ，ＱＧ）とが伝送され、復号では、下記の（式Ｇ５）で示すように、ＱＡは、ＱＧにΔ（ＱＡ，ＱＧ）を加算することで導出される。
【０７５３】
ＱＡ＝ＱＧ＋Δ（ＱＡ，ＱＧ）      （式Ｇ５）
【０７５４】
図９８の（ｂ）および（ｃ）を用いて位置情報および属性情報からなる点群データをスライス分割する場合のＱＰ値の伝送方法を説明する。図９８の（ｂ）は、各ＱＰ値の基準値と差分情報との関係の第１の例を示す図である。図９８の（ｃ）は、ＱＰ値、位置情報、および、属性情報の伝送順の第１の例を示す図である。
【０７５５】
ＱＰ値は、位置情報毎、および、属性情報毎に、大きく、ＰＣＣのフレーム単位のＱＰ値（フレームＱＰ）と、データ単位のＱＰ値（データＱＰ）に分かれている。データ単位のＱＰ値は、図９６のステップＳ５３０１で決定した、符号化に用いるＱＰ値である。
【０７５６】
ここでは、ＰＣＣフレーム単位の位置情報の符号化に用いるＱＰ値であるＱＧを基準値とし、データ単位のＱＰ値をＱＧからの差分を示す差分情報として生成し、送出する。
【０７５７】
ＱＧ：ＰＣＣフレームにおける位置情報の符号化のＱＰ値・・・ＧＰＳを用いて基準値「１．」として送出される
ＱＡ：ＰＣＣフレームにおける属性情報の符号化のＱＰ値・・・ＡＰＳを用いてＱＧからの差分を示す差分情報「２．」として送出される
ＱＧｓ１，ＱＧｓ２：スライスデータにおける位置情報の符号化のＱＰ値…位置情報の符号化データのヘッダを用いて、ＱＧからの差分を示す差分情報「３．」および「５．」として送出される
ＱＡｓ１，ＱＡｓ２：スライスデータにおける属性情報の符号化のＱＰ値…属性情報の符号化データのヘッダを用いて、ＱＡからの差分を示す差分情報「４．」および「６．」として送出される
【０７５８】
なお、フレームＱＰの導出に用いる情報は、フレームに係るメタデータ（ＧＰＳ，ＡＰＳ）に記載され、データＱＰの導出に用いる情報は、データに係るメタデータ（符号化データのヘッダ）に記載される。
【０７５９】
このように、データＱＰは、フレームＱＰからの差分を示す差分情報として生成され、送出される。よって、データＱＰのデータ量を削減することができる。
【０７６０】
第１の復号部５３４０は、それぞれの符号化データにおいて、図９８の（ｃ）の矢印で示したメタデータを参照し、当該符号化データに対応する基準値および差分情報を取得する。そして、第１の復号部５３４０は、取得した基準値および差分情報に基づいて、復号対象の符号化データに対応するＱＰ値を導出する。
【０７６１】
第１の復号部５３４０は、例えば、図９８の（ｃ）において矢印で示した基準情報「１．」および差分情報「２．」、「６．」をメタデータあるいはヘッダから取得し、下記の（式Ｇ６）で示すように、基準情報「１．」に差分情報「２．」および「６．」を加算することで、Ａｓ２のＱＰ値を導出する。
【０７６２】
ＱＡＳ２＝ＱＧ＋Δ（ＱＡ，ＱＧ）＋Δ（ＱＡｓ２，ＱＡ）      （式Ｇ６）
【０７６３】
点群データは、位置情報と０以上の属性情報とを含む。すなわち、点群データは、属性情報を持たない場合もあれば、複数の属性情報を持つ場合もある。
【０７６４】
例えば、１つの三次元点に対して、属性情報として、色情報を持つ場合、色情報と反射情報とを持つ場合、１以上の視点情報にそれぞれ紐づく１以上の色情報を持つ場合などがある。
【０７６５】
ここで、２つの色情報、および反射情報を持つ場合の例について、図９９を用いて説明する。図９９は、量子化パラメータの伝送方法の第２の例について説明するための図である。図９９の（ａ）は、各ＱＰ値の基準値と差分情報との関係の第２の例を示す図である。図９９の（ｂ）は、ＱＰ値、位置情報、および、属性情報の伝送順の第２の例を示す図である。
【０７６６】
ＱＧは、図９８と同様に、第１量子化パラメータの一例である。
【０７６７】
２つの色情報のそれぞれは、輝度（ルマ）Ｙと色差（クロマ）Ｃｂ、Ｃｒとで示される。第１の色の輝度Ｙ１の符号化に用いるＱＰ値であるＱＹ１は、基準値であるＱＧと、その差分を示すΔ（ＱＹ１、ＱＧ）とを用いて導出される。輝度Ｙ１は、第１輝度の一例であり、ＱＹ１は、第１輝度としての輝度Ｙ１を量子化するために用いられる第２量子化パラメータの一例である。Δ（ＱＹ１、ＱＧ）は、差分情報「２．」である。
【０７６８】
また、第１の色の色差Ｃｂ１、Ｃｒ１の符号化に用いるＱＰ値であるＱＣｂ１、ＱＣｒ１は、それぞれ、ＱＹ１と、その差分を示すΔ（ＱＣｂ１，ＱＹ１）、Δ（ＱＣｒ１，ＱＹ１）とを用いて導出される。色差Ｃｂ１、Ｃｒ１は、第１色差の一例であり、ＱＣｂ１、ＱＣｒ１は、第１色差としての色差Ｃｂ１、Ｃｒ１を量子化するために用いられる第３量子化パラメータの一例である。Δ（ＱＣｂ１，ＱＹ１）は、差分情報「３．」であり、Δ（ＱＣｒ１，ＱＹ１）は、差分情報「４．」である。Δ（ＱＣｂ１，ＱＹ１）およびΔ（ＱＣｒ１，ＱＹ１）は、それぞれ、第１差分の一例である。
【０７６９】
なお、ＱＣｂ１およびＱＣｒ１は、互いに同じ値が用いられてもよく、共通する値が用いられてもよい。共通する値が用いられる場合、ＱＣｂ１およびＱＣｒ１の一方が用いられればよいため、他方はなくてもよい。
【０７７０】
また、スライスデータにおける第１の色の輝度Ｙ１Ｄの符号化に用いるＱＰ値であるＱＹ１Ｄは、ＱＹ１と、その差分を示すΔ（ＱＹ１Ｄ，ＱＹ１）とを用いて導出される。スライスデータにおける第１の色の輝度Ｙ１Ｄは、サブ空間に含まれる１以上の三次元点の第１輝度の一例であり、ＱＹ１Ｄは、輝度Ｙ１Ｄを量子化するために用いられる第５量子化パラメータの一例である。Δ（ＱＹ１Ｄ，ＱＹ１）は、差分情報「１０．」であり、第２差分の一例である。
【０７７１】
同様に、スライスデータにおける第１の色の色差Ｃｂ１Ｄ、Ｃｒ１Ｄの符号化に用いるＱＰ値であるＱＣｂ１Ｄ、ＱＣｒ１Ｄは、それぞれ、ＱＣｂ１、ＱＣｒ１と、その差分を示すΔ（ＱＣｂ１Ｄ，ＱＣｂ１）、Δ（ＱＣｒ１Ｄ，ＱＣｒ１）とを用いて導出される。スライスデータにおける第１の色の色差Ｃｂ１Ｄ、Ｃｒ１Ｄは、サブ空間に含まれる１以上の三次元点の第１色差の一例であり、ＱＣｂ１Ｄ、ＱＣｒ１Ｄは、色差Ｃｂ１Ｄ、Ｃｒ１Ｄを量子化するために用いられる第６量子化パラメータの一例である。Δ（ＱＣｂ１Ｄ，ＱＣｂ１）は、差分情報「１１．」であり、Δ（ＱＣｒ１Ｄ，ＱＣｒ１）は、差分情報「１２．」である。Δ（ＱＣｂ１Ｄ，ＱＣｂ１）およびΔ（ＱＣｒ１Ｄ，ＱＣｒ１）は、第３差分の一例である。
【０７７２】
第１の色におけるＱＰ値の関係は、第２の色にも同様のことが言えるため、説明を省略する。
【０７７３】
反射率Ｒの符号化に用いるＱＰ値であるＱＲは、基準値であるＱＧと、その差分を示すΔ（ＱＲ，ＱＧ）とを用いて導出される。ＱＲは、反射率Ｒを量子化するために用いられる第４量子化パラメータの一例である。Δ（ＱＲ，ＱＧ）は、差分情報「８．」である。
【０７７４】
また、スライスデータにおける反射率ＲＤの符号化に用いるＱＰ値であるＱＲＤは、ＱＲと、その差分を示すΔ（ＱＲＤ，ＱＲ）とを用いて導出される。Δ（ＱＲＤ，ＱＲ）は、差分情報「１６．」である。
【０７７５】
このように、差分情報「９．」〜「１６．」は、データＱＰとフレームＱＰとの差分情報を示す。
【０７７６】
なお、例えば、データＱＰとフレームＱＰとの値が同一の値であるような場合は、差分情報を０としてもよいし、差分情報を送出しないことにより０とみなすとしてもよい。
【０７７７】
第１の復号部５３４０は、例えば、第２の色の色差Ｃｒ２を復号する際、図９９の（ｂ）の矢印で示した基準情報「１．」および差分情報「５．」、「７．」および「１５．」をメタデータあるいはヘッダから取得し、下記の（式Ｇ７）で示すように、基準情報「１．」に差分情報「５．」、「７．」および「１５．」を加算することで、色差Ｃｒ２のＱＰ値を導出する。
【０７７８】
ＱＣｒ２Ｄ＝ＱＧ＋Δ（ＱＹ２，ＱＧ）＋Δ（ＱＣｒ２，ＱＹ２）＋Δ（ＱＣｒ２Ｄ，ＱＣｒ２）      （式Ｇ７）
【０７７９】
次に、位置情報および属性情報をタイルに２分割した後に、スライスに２分割する場合の例について図１００を用いて説明する。図１００は、量子化パラメータの伝送方法の第３の例について説明するための図である。図１００の（ａ）は、各ＱＰ値の基準値と差分情報との関係の第３の例を示す図である。図１００の（ｂ）は、ＱＰ値、位置情報、および、属性情報の伝送順の第３の例を示す図である。図１００の（ｃ）は、第３の例における、差分情報の中間生成値について説明するための図である。
【０７８０】
複数のタイルに分割した後に、さらに複数のスライスに分割する場合、図１００の（ｃ）に示すように、タイルに分割した後にタイル毎のＱＰ値（ＱＡｔ１）および差分情報Δ（ＱＡｔ１，ＱＡ）が中間生成値として生成される。そして、スライスに分割した後にスライス毎のＱＰ値（ＱＡｔ１ｓ１，ＱＡｔ１ｓ２）および差分情報（Δ（ＱＡｔ１ｓ１，ＱＡｔ１），Δ（ＱＡｔ１ｓ２，ＱＡｔ１））が生成される。
【０７８１】
この場合、例えば、図１００の（ａ）における、差分情報「４．」は、以下の（式Ｇ８）で導出される。
【０７８２】
Δ（ＱＡｔ１ｓ１，ＱＡ）＝Δ（ＱＡｔ１，ＱＡ）＋Δ（ＱＡｔ１ｓ１，ＱＡｔ１）      （式Ｇ８）
【０７８３】
第１の復号部５３４０は、例えば、タイル２におけるスライス１の属性情報Ａｔ２ｓ１を復号する際、図１００の（ｂ）の矢印で示した基準情報「１．」および差分情報「２．」、「８．」をメタデータあるいはヘッダから取得し、下記の（式Ｇ９）で示すように、基準情報「１．」に差分情報「２．」、「８．」を加算することで、属性情報Ａｔ２ｓ１のＱＰ値を導出する。
【０７８４】
ＱＡｔ２ｓ１＝ＱＧ＋Δ（ＱＡｔ２ｓ１，ＱＡ）＋Δ（ＱＡ，ＱＧ）      （式Ｇ９）
【０７８５】
次に、本実施の形態に係る点群データの符号化処理及び復号処理の流れについて説明する。図１０１は、本実施の形態に係る点群データの符号化処理のフローチャートである。
【０７８６】
まず、三次元データ符号化装置は、使用する分割方法を決定する（Ｓ５３２１）。この分割方法は、タイル分割を行うか否か、スライス分割を行うか否かを含む。また、分割方法は、タイル分割又はスライス分割を行う場合の分割数、及び、分割の種別等を含んでもよい。分割の種別とは、上述したようなオブジェクト形状に基づく手法、地図情報或いは位置情報に基づく手法、又は、データ量或いは処理量に基づく手法等である。なお、分割方法は、予め定められていてもよい。
【０７８７】
タイル分割が行われる場合（Ｓ５３２２でＹｅｓ）、三次元データ符号化装置は、位置情報と属性情報とをタイル単位で分割することで複数のタイル位置情報及び複数のタイル属性情報を生成する（Ｓ５３２３）。また、三次元データ符号化装置は、タイル分割に係るタイル付加情報を生成する。
【０７８８】
スライス分割が行われる場合（Ｓ５３２４でＹｅｓ）、三次元データ符号化装置は、複数のタイル位置情報及び複数のタイル属性情報（又は位置情報及び属性情報）を分割することで複数の分割位置情報及び複数の分割属性情報を生成する（Ｓ５３２５）。また、三次元データ符号化装置は、スライス分割に係る位置スライス付加情報及び属性スライス付加情報を生成する。
【０７８９】
次に、三次元データ符号化装置は、複数の分割位置情報及び複数の分割属性情報の各々を符号化することで、複数の符号化位置情報及び複数の符号化属性情報を生成する（Ｓ５３２６）。また、三次元データ符号化装置は、依存関係情報を生成する。
【０７９０】
次に、三次元データ符号化装置は、複数の符号化位置情報、複数の符号化属性情報及び付加情報をＮＡＬユニット化（多重化）することで符号化データ（符号化ストリーム）を生成する（Ｓ５３２７）。また、三次元データ符号化装置は、生成した符号化データを送出する。
【０７９１】
図１０２は、タイルの分割（Ｓ５３２３）またはスライスの分割（Ｓ５３２５）において、ＱＰ値を決定し、付加情報を更新する処理の一例を示すフローチャートである。
【０７９２】
ステップＳ５３２３、Ｓ５３２５では、タイルおよび／またはスライスの位置情報および属性情報は、それぞれの方法で独立して個別に分割してもよいし、共通して一括で分割してもよい。これにより、タイル毎および／またはスライス毎に分割された付加情報が生成される。
【０７９３】
このとき、三次元データ符号化装置は、分割されたタイル毎および／またはスライス毎に、ＱＰ値の基準値および差分情報を決定する（Ｓ５３３１）。具体的には、三次元データ符号化装置は、図９８〜図１００で例示したような、基準値および差分情報を決定する。
【０７９４】
そして、三次元データ符号化装置は、決定した基準値および差分情報が含まれるように付加情報を更新する（Ｓ５３３２）。
【０７９５】
図１０３は、符号化（Ｓ５３２６）の処理において、決定されたＱＰ値を符号化する処理の一例を示すフローチャートである。
【０７９６】
三次元データ符号化装置は、ステップＳ５３３１で決定されたＱＰ値を符号化する（Ｓ５３４１）。具体的には、三次元データ符号化装置は、更新された付加情報に含まれるＱＰ値の基準値および差分情報を符号化する。
【０７９７】
そして、三次元データ符号化装置は、符号化処理の停止条件が満たされるまで、例えば、符号化対象のデータがなくなるまで、符号化処理を継続する（Ｓ５３４２）。
【０７９８】
図１０４は、本実施の形態に係る点群データの復号処理のフローチャートである。まず、三次元データ復号装置は、符号化データ（符号化ストリーム）に含まれる、分割方法に係る付加情報（タイル付加情報、位置スライス付加情報及び属性スライス付加情報）を解析することで、分割方法を判定する（Ｓ５３５１）。この分割方法は、タイル分割を行うか否か、スライス分割を行うか否かを含む。また、分割方法は、タイル分割又はスライス分割を行う場合の分割数、及び、分割の種別等を含んでもよい。
【０７９９】
次に、三次元データ復号装置は、符号化データに含まれる複数の符号化位置情報及び複数の符号化属性情報を、符号化データに含まれる依存関係情報を用いて復号することで分割位置情報及び分割属性情報を生成する（Ｓ５３５２）。
【０８００】
付加情報によりスライス分割が行われていることが示される場合（Ｓ５３５３でＹｅｓ）、三次元データ復号装置は、位置スライス付加情報及び属性スライス付加情報に基づき、複数の分割位置情報と、複数の分割属性情報とを結合することで、複数のタイル位置情報及び複数のタイル属性情報を生成する（Ｓ５３５４）。
【０８０１】
付加情報によりタイル分割が行われていることが示される場合（Ｓ５３５５でＹｅｓ）、三次元データ復号装置は、タイル付加情報に基づき、複数のタイル位置情報及び複数のタイル属性情報（複数の分割位置情報及び複数の分割属性情報）を結合することで位置情報及び属性情報を生成する（Ｓ５３５６）。
【０８０２】
図１０５は、スライス毎に分割された情報の結合（Ｓ５３５４）またはタイル毎に分割された情報の結合（Ｓ５３５６）において、ＱＰ値を取得して、スライスまたはタイルのＱＰ値を復号する処理の一例を示すフローチャートである。
【０８０３】
スライスまたはタイルの位置情報および属性情報は、それぞれの方法を用いて結合してもよいし、同一の方法で結合してもよい。
【０８０４】
三次元データ復号装置は、符号化ストリームの付加情報から、基準値および差分情報を復号する（Ｓ５３６１）。
【０８０５】
次に、三次元データ復号装置は、復号された基準値および差分情報を用いて量子化値を算出し、逆量子化に用いるＱＰ値を、算出されたＱＰ値に更新する（Ｓ５３６２）。これにより、タイル毎またはスライス毎の量子化属性情報を逆量子化するためのＱＰ値を導出することができる。
【０８０６】
そして、三次元データ復号装置は、復号処理の停止条件が満たされるまで、例えば、復号対象のデータがなくなるまで、復号処理を継続する（Ｓ５３６３）。
【０８０７】
図１０６は、ＧＰＳのシンタックス例を示す図である。図１０７は、ＡＰＳのシンタックス例を示す図である。図１０８は、位置情報のヘッダのシンタックス例を示す図である。図１０９は、属性情報のヘッダのシンタックス例を示す図である。
【０８０８】
図１０６に示すように、例えば、位置情報の付加情報であるＧＰＳは、ＱＰ値の導出の基準となる絶対値を示すＱＰ＿ｖａｌｕｅを含む。ＱＰ  ｖａｌｕｅは、例えば、図９８〜図１００で例示したＱＧに相当する。
【０８０９】
また、図１０７に示すように、例えば、属性情報の付加情報であるＡＰＳは、三次元点に複数視点の複数の色情報がある場合、デフォルトの視点を定義し、０番目は必ずデフォルト視点の情報を記載するとしてもよい。例えば、三次元データ符号化装置は、単一の色情報を復号または表示する場合、０番目の属性情報を復号または表示すればよい。
【０８１０】
ＡＰＳは、ＱＰ＿ｄｅｌｔａ＿Ａｔｔｒｉｂｕｔｅ＿ｔｏ＿Ｇｅｏｍｅｔｒｙを含む。ＱＰ＿ｄｅｌｔａ＿Ａｔｔｒｉｂｕｔｅ＿ｔｏ＿Ｇｅｏｍｅｔｒｙは、ＧＰＳに記載の基準値（ＱＰ＿ｖａｌｕｅ）との差分情報を示す。この差分情報は、例えば、属性情報が色情報である場合、輝度との差分情報である。
【０８１１】
また、ＧＰＳは、Ｇｅｏｍｅｔｒｙ＿ｈｅａｄｅｒ（位置情報のヘッダ）にＱＰ値を算出するための差分情報があるか否かを示すフラグを含んでいてもよい。また、ＡＰＳは、Ａｔｔｒｉｂｕｔｅ＿ｈｅａｄｅｒ（属性情報のヘッダ）にＱＰ値を算出するための差分情報があるか否かを示すフラグを含んでいてもよい。フラグは、属性情報において、データＱＰを算出するための、データＱＰの、フレームＱＰからの差分情報があるか否かを示していてもよい。
【０８１２】
このように、符号化ストリームには、属性情報のうちの第１の色が第１輝度および第１色差で示される場合、第１輝度を量子化するための第２量子化パラメータを用いた量子化、および、第１色差を量子化するための第３量子化パラメータを用いた量子化において、第５量子化パラメータおよび第６量子化パラメータを用いて量子化した場合、第５量子化パラメータおよび第６量子化パラメータを用いて量子化したことを示す識別情報（フラグ）が含まれていてもよい。
【０８１３】
また、図１０８に示すように、位置情報のヘッダは、ＧＰＳに記載の基準値（ＱＰ＿ｖａｌｕｅ）との差分情報を示す、ＱＰ＿ｄｅｌｔａ＿ｄａｔａ＿ｔｏ＿ｆｒａｍｅを含んでいてもよい。また、位置情報のヘッダは、タイル毎および／またはスライス毎の情報に分け、タイル毎および／またはスライス毎に、対応するＱＰ値がそれぞれ示されても良い。
【０８１４】
また、図１０９に示すように、属性情報のヘッダは、ＡＰＳに記載のＱＰ値との差分情報を示す、ＱＰ＿ｄｅｌｔａ＿ｄａｔａ＿ｔｏ＿ｆｒａｍｅを含んでいてもよい。
【０８１５】
図９８〜図１００では、ＱＰ値の基準値をＰＣＣフレームにおける位置情報のＱＰ値であるとして説明したが、これに限らずに、その他の値を基準値として用いても良い。
【０８１６】
図１１０は、量子化パラメータの伝送方法の他の例について説明するための図である。
【０８１７】
図１１０の（ａ）および（ｂ）は、ＰＣＣフレームにおける位置情報および属性情報のＱＰ値で共通の基準値Ｑを設定する第４の例を示す。第４の例では、基準値ＱをＧＰＳに格納し、基準値Ｑからの、位置情報のＱＰ値（ＱＧ）の差分情報をＧＰＳに格納し、属性情報のＱＰ値（ＱＹおよびＱＲ）の差分情報をＡＰＳに格納する。なお、基準値Ｑは、ＳＰＳに格納されてもよい。
【０８１８】
図１１０の（ｃ）および（ｄ）は、位置情報および属性情報毎に独立に基準値を設定する第５の例を示す。第５の例では、ＧＰＳおよびＡＰＳに、位置情報および属性情報の基準のＱＰ値（絶対値）をそれぞれ格納する。つまり、位置情報には、基準値ＱＧが設定され、属性情報の色情報には、基準値ＱＹが設定され、属性情報の反射率には、基準値ＱＲがそれぞれ設定される。このように、位置情報および複数種類の属性情報のそれぞれについて、ＱＰ値の基準値が設定されてもよい。なお、第５の例は、他の例と組み合わせられてもよい。つまり、第１の例におけるＱＡ、第２の例におけるＱＹ１、ＱＹ２、ＱＲは、ＱＰ値の基準値であってもよい。
【０８１９】
図１１０の（ｅ）および（ｆ）は、ＰＣＣフレームが複数ある場合、複数のＰＣＣフレームで共通の基準値Ｑを設定する第６の例を示す。第６の例では、基準値ＱをＳＰＳあるいはＧＳＰＳに格納し、それぞれのＰＣＣフレームの位置情報のＱＰ値と基準値との差分情報をＧＰＳに格納する。なお、例えば、ＧＯＦのように、ランダムアクセス単位の範囲内では、例えば、ランダムアクセス単位の先頭フレームを基準値として、ＰＣＣフレーム間の差分情報（例えば、Δ（ＱＧ（１），ＱＧ（０）））を送出してもよい。
【０８２０】
なお、タイルまたはスライスがさらに分割される場合であっても、同様の方法でデータヘッダに分割単位のＱＰ値との差分情報を格納して送出する。
【０８２１】
図１１１は、量子化パラメータの伝送方法の他の例について説明するための図である。
【０８２２】
図１１１（ａ）および（ｂ）は、ＰＣＣフレームにおける位置情報および属性情報で共通の基準値ＱＧを設定する第７の例を示す。第７の例では、基準値ＱＧをＧＰＳに格納し、位置情報あるいは属性情報との差分情報をそれぞれのデータヘッダに格納する。基準値ＱＧはＳＰＳに格納されてもよい。
【０８２３】
また、図１１１の（ｃ）および（ｄ）は、属性情報のＱＰ値を、同一のスライスおよびタイルに属する位置情報のＱＰ値との差分情報で示す第８の例を示す。第８の例では、基準値ＱＧは、ＳＰＳに格納されてもよい。
【０８２４】
図１１２は、量子化パラメータの伝送方法の第９の例について説明するための図である。
【０８２５】
図１１２の（ａ）および（ｂ）は、属性情報で共通のＱＰ値を解して、位置情報のＱＰ値との差分情報、属性情報で共通のＱＰ値との差分情報をそれぞれ示す第９の例である。
【０８２６】
図１１３は、ＱＰ値の制御例を説明するための図である。
【０８２７】
量子化パラメータの値が低いほど品質が向上するが、より多くのビットが必要になるため、符号化効率が低下する。
【０８２８】
例えば、三次元点群データをタイルに分割して符号化する際、タイルに含まれる点群データが主要道路である場合は、予め定義された属性情報のＱＰ値を用いて符号化される。一方、周囲のタイルは重要な情報でないため、ＱＰ値の差分情報を正の値に設定することによりデータの品質を低下させ、符号化効率を向上できる可能性がある。
【０８２９】
さらに、タイルに分割された三次元点群データをスライスに分割して符号化する際、歩道、木および建物は、自動運転において位置推定（ローカライズおよびマッピング）するにために重要であるためＱＰ値を負の値に設定し、移動体およびその他は、重要性が低いためＱＰ値を正の値に設定する。
【０８３０】
図１１３（ｂ）は、タイルやスライスに含まれるオブジェクトに基づき、予め量子化デルタ値が設定されている場合の差分情報の導出する例を示している。例えば、分割データが「主要道路」であるタイルに含まれる「建物」のスライスデータである場合、「主要道路」であるタイルの量子化デルタ値０と「建物」であるスライスデータの量子化デルタ値−５を加算し、差分情報は−５と導出される。
【０８３１】
図１１４は、オブジェクトの品質に基づくＱＰ値の決定方法の一例を示すフローチャートである。
【０８３２】
三次元データ符号化装置は、地図情報に基づいて、点群データを１以上のタイルに分割し、１以上のタイル毎に含まれるオブジェクトを判定する（Ｓ５３７１）。具体的には、三次元データ符号化装置は、例えば、機械学習で得られた学習モデルを用いて、オブジェクトが何であるかを認識する物体認識処理を行う。
【０８３３】
次に、三次元データ符号化装置は、処理対象のタイルを高い品質で符号化するか否かを判定する（Ｓ５３７２）。高い品質での符号化とは、例えば、所定のレートよりも大きいビットレートで符号化することである。
【０８３４】
次に、三次元データ符号化装置は、処理対象のタイルを高い品質で符号化する場合（Ｓ５３７２でＹｅｓ）、符号化品質が高くなるようにタイルのＱＰ値を設定する（Ｓ５３７３）。
【０８３５】
一方で、三次元データ符号化装置は、処理対象のタイルを高い品質で符号化しない場合（Ｓ５３７２でＮｏ）、符号化品質が低くなるようにタイルのＱＰ値を設定する（Ｓ５３７４）。
【０８３６】
ステップＳ５３７３またはステップＳ５３７４の後で、三次元データ符号化装置は、タイル内のオブジェクトを判定し、１以上のスライスに分割する（Ｓ５３７５）。
【０８３７】
次に、三次元データ符号化装置は、処理対象のスライスを高い品質で符号化するか否かを判定する（Ｓ５３７６）。
【０８３８】
次に、三次元データ符号化装置は、処理対象のスライスを高い品質で符号化する場合（Ｓ５３７６でＹｅｓ）、符号化品質が高くなるようにスライスのＱＰ値を設定する（Ｓ５３７７）。
【０８３９】
一方で、三次元データ符号化装置は、処理対象のスライスを高い品質で符号化しない場合（Ｓ５３７６でＮｏ）、符号化品質が低くなるようにスライスのＱＰ値を設定する（Ｓ５３７８）。
【０８４０】
次に、三次元データ符号化装置は、設定されたＱＰ値に基づいて、所定の方法で伝送する基準値および差分情報を決定し、決定した基準値および差分情報を付加情報およびデータのヘッダの少なくとも一方に格納する（Ｓ５３７９）。
【０８４１】
次に、三次元データ符号化装置は、決定したＱＰ値に基づき、位置情報および属性情報を量子化し、符号化する（Ｓ５３８０）。
【０８４２】
図１１５は、レート制御に基づくＱＰ値の決定方法の一例を示すフローチャートである。
【０８４３】
三次元データ符号化装置は、点群データを順番に符号化する（Ｓ５３８１）。
【０８４４】
次に、三次元データ符号化装置は、符号化データの符号量および符号化バッファの占有量から、符号化処理に係るレート制御状況を判定し、次回の符号化の品質を決定する（Ｓ５３８２）。
【０８４５】
次に、三次元データ符号化装置は、符号化品質を上げるか否かを判定する（Ｓ５３８３）。
【０８４６】
次に、三次元データ符号化装置は、符号化品質を上げる場合（Ｓ５３８３でＹｅｓ）、符号化品質が高くなるようにタイルのＱＰ値を設定する（Ｓ５３８４）。
【０８４７】
一方で、三次元データ符号化装置は、符号化品質を上げない場合（Ｓ５３８３でＮｏ）、符号化品質が低くなるようにタイルのＱＰ値を設定する（Ｓ５３８５）。
【０８４８】
次に、三次元データ符号化装置は、設定されたＱＰ値に基づいて、所定の方法で伝送する基準値および差分情報を決定し、決定した基準値および差分情報を付加情報およびデータのヘッダの少なくとも一方に格納する（Ｓ５３８６）。
【０８４９】
次に、三次元データ符号化装置は、決定したＱＰ値に基づき、位置情報および属性情報を量子化し、符号化する（Ｓ５３８７）。
【０８５０】
以上のように、本実施の形態に係る三次元データ符号化装置は、図１１６に示す処理を行う。まず、三次元データ符号化装置は、第１量子化パラメータを用いて複数の三次元点それぞれの位置情報を量子化する（Ｓ５３９１）。三次元データ符号化装置は、前記複数の三次元点それぞれの属性情報のうちの第１の色を示す第１輝度および第１色差について、第２量子化パラメータを用いて前記第１輝度を量子化し、かつ、第３量子化パラメータを用いて前記第１色差を量子化する（Ｓ５３９２）。三次元データ符号化装置は、量子化された前記位置情報、量子化された前記第１輝度、量子化された前記第１色差、前記第１量子化パラメータ、前記第２量子化パラメータ、および、前記第２量子化パラメータと前記第３量子化パラメータとの第１差分を含むビットストリームを生成する（Ｓ５３９３）。
【０８５１】
これによれば、ビットストリームにおいて、第３量子化パラメータを第２量子化パラメータからの第１差分で示すため、符号化効率を向上できる。
【０８５２】
例えば、三次元データ符号化装置は、さらに、第４量子化パラメータを用いて前記複数の三次元点それぞれの前記属性情報のうちの反射率を量子化する。また、前記生成では、量子化された前記反射率、および、前記第４量子化パラメータをさらに含むビットストリームを生成する。
【０８５３】
例えば、前記第２量子化パラメータを用いた量子化では、前記複数の三次元点が含まれる対象空間を分割した複数のサブ空間毎に当該サブ空間に含まれる１以上の三次元点の前記第１輝度を量子化する場合、第５量子化パラメータをさらに用いて前記サブ空間に含まれる１以上の三次元点の前記第１輝度を量子化する。前記第３量子化パラメータを用いた量子化では、前記１以上の三次元点の前記第１色差を量子化する場合、第６量子化パラメータをさらに用いて前記１以上の三次元点の前記第１色差を量子化する。前記生成では、前記第２量子化パラメータと前記第５量子化パラメータとの第２差分、および、前記第３量子化パラメータと前記第６量子化パラメータとの第３差分をさらに含むビットストリームを生成する。
【０８５４】
これによれば、ビットストリームにおいて、第５量子化パラメータを第２量子化パラメータからの第２差分で示し、かつ、第６量子化パラメータを第３量子化パラメータからの第３差分で示すため、符号化効率を向上できる。
【０８５５】
例えば、前記生成では、前記第２量子化パラメータを用いた量子化、および、前記第３量子化パラメータを用いた量子化において、前記第５量子化パラメータおよび前記第６量子化パラメータを用いて量子化した場合、前記第５量子化パラメータおよび前記第６量子化パラメータを用いて量子化したことを示す識別情報をさらに含むビットストリームを生成する。
【０８５６】
これによれば、ビットストリームを取得した三次元データ復号装置は、識別情報を用いて第５量子化パラメータおよび第６量子化パラメータを用いて量子化したこと判定できるため、復号処理の処理負荷を低減することができる。
【０８５７】
例えば、三次元データ符号化装置は、さらに、前記複数の三次元点それぞれの属性情報のうちの第２の色を示す第２輝度および第２色差について、第７量子化パラメータを用いて前記第２輝度を量子化し、かつ、第８量子化パラメータを用いて前記第２色差を量子化する。前記生成では、さらに、量子化された前記第２輝度、量子化された前記第２色差、前記第７量子化パラメータ、および、前記第７量子化パラメータと前記第８量子化パラメータとの第４差分をさらに含むビットストリームを生成する。
【０８５８】
これによれば、ビットストリームにおいて、第８量子化パラメータを第７量子化パラメータからの第４差分で示すため、符号化効率を向上できる。また、三次元点の属性情報に２種類の色情報を含めることができる。
【０８５９】
例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
【０８６０】
また、本実施の形態に係る三次元データ復号装置は、図１１７に示す処理を行う。まず三次元データ復号装置は、ビットストリームを取得することで量子化された位置情報、量子化された第１輝度、量子化された第１色差、第１量子化パラメータ、第２量子化パラメータ、および、前記第２量子化パラメータと第３量子化パラメータとの第１差分を取得する（Ｓ５３９４）。三次元データ復号装置は、前記第１量子化パラメータを用いて前記量子化された位置情報を逆量子化することで、複数の三次元点の位置情報を算出する（Ｓ５３９５）。三次元データ復号装置は、前記第２量子化パラメータを用いて前記量子化された第１輝度を逆量子化することで、前記複数の三次元点の第１色を示す第１輝度および第１色差のうちの前記第１輝度を算出する（Ｓ５３９６）。三次元データ復号装置は、前記第２量子化パラメータおよび前記第１差分から得られる前記第３量子化パラメータを用いて前記量子化された第１色差を逆量子化することで、前記第１色差を算出する（Ｓ５３９７）。
【０８６１】
このため、三次元データ復号装置は、三次元点の位置情報および属性情報を正しく復号できる。
【０８６２】
例えば、前記取得では、前記ビットストリームを取得することでさらに量子化された反射率、および、第４量子化パラメータを取得する。三次元データ復号装置は、さらに、前記第４量子化パラメータを用いて前記量子化された反射率を逆量子化することで、前記複数の三次元点の反射率を算出する。
【０８６３】
このため、三次元データ復号装置は、三次元点の反射率を正しく復号できる。
【０８６４】
例えば、前記取得では、前記ビットストリームを取得することでさらに、前記第２量子化パラメータと第５量子化パラメータとの第２差分、および、前記第３量子化パラメータと第６量子化パラメータとの第３差分を取得する。前記第１輝度の算出では、前記量子化された第１輝度が、前記複数の三次元点が含まれる対象空間を分割した複数のサブ空間毎に当該サブ空間に含まれる１以上の三次元点の第１輝度が量子化された輝度である場合、前記第２量子化パラメータおよび前記第２差分から得られる前記第５量子化パラメータを用いて前記量子化された第１輝度を逆量子化することで、前記１以上の三次元点の前記第１輝度を算出する。前記第１色差の算出では、前記量子化された第１色差が、前記１以上の三次元点の第１色差が量子化された色差である場合、前記第３量子化パラメータおよび前記第３差分から得られる前記第６量子化パラメータを用いて前記量子化された第１色差を逆量子化することで、前記１以上の三次元点の前記第１色差を算出する。
【０８６５】
例えば、前記取得では、前記ビットストリームを取得することでさらに、前記第５量子化パラメータおよび前記第６量子化パラメータを用いて量子化したことを示す識別情報を取得する。前記第１輝度の算出では、前記識別情報が前記第５量子化パラメータおよび前記第６量子化パラメータを用いて量子化したことを示す場合、前記量子化された第１輝度が、前記１以上の三次元点の前記第１輝度が量子化された輝度であると判定する。前記第１色差の算出では、前記識別情報が前記第５量子化パラメータおよび前記第６量子化パラメータを用いて量子化したことを示す場合、前記量子化された第１色差が、前記１以上の三次元点の前記第１色差が量子化された色差であると判定する。
【０８６６】
これによれば、三次元データ復号装置は、識別情報を用いて第５量子化パラメータおよび第６量子化パラメータを用いて量子化したこと判定できるため、復号処理の処理負荷を低減することができる。
【０８６７】
例えば、前記取得では、前記ビットストリームを取得することでさらに、量子化された第２輝度、量子化された第２色差、第７量子化パラメータ、および、前記第７量子化パラメータと第８量子化パラメータとの第４差分を取得する。三次元データ復号装置は、さらに、前記第７量子化パラメータを用いて前記量子化された第２輝度を逆量子化することで、前記複数の三次元点の第２色を示す第２輝度および第２色差のうちの前記第２輝度を算出する。また、三次元データ復号装置は、さらに、前記第７量子化パラメータおよび前記第４差分から得られる前記第８量子化パラメータを用いて前記量子化された第２色差を逆量子化することで、前記第２色差を算出する。
【０８６８】
このため、三次元データ復号装置は、三次元点の第２の色を正しく復号できる。
【０８６９】
例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
【０８７０】
（実施の形態１２）
上記実施の形態８において説明した三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、および、三次元データ復号装置において、本実施の形態で説明する処理を行ってもよい。
【０８７１】
図１１８は、実施の形態１２に係る量子化パラメータの伝送方法の一例について説明するための図である。図１１８の（ａ）は、位置情報および属性情報のそれぞれにおいてＱＰ値の基準値が設定されている例を示す。図１１８は、実施の形態８における図１０５と比較して、位置情報と同様に、属性情報にもＱＰ値の基準値が設定されている点が主に異なる。つまり、第１の色、第２の色、および反射率を含む複数の属性情報のうちのいずれか１つの属性情報のＱＰ値を基準値とし、その他の属性情報のＱＰ値を共通の基準値からの差分情報として示す。
【０８７２】
図１１８では、第１の色の輝度Ｙ１の符号化に用いるＱＰ値であるＱＹ１は、第１の色、第２の色および反射率を含む複数の属性情報で共通の基準値として設定されている。また、第２の色の基準値であるＱＹ２は、共通の基準値であるＱＹ１と、ＱＹ１からの差分情報「５．」であるΔ（ＱＹ２，ＱＹ１）とを用いて導出される。反射率の基準値であるＱＲは、共通の基準値であるＱＹ１と、ＱＹ１からの差分情報「８．」であるΔ（ＱＲ，ＱＹ１）とを用いて導出される。この場合、共通の基準値であるＱＹ１は、第１の色に対応するＡＰＳであるＡＰＳ１に含まれる。
【０８７３】
また、第４の属性は、共通の基準値であるＱＹ１とは、独立した基準値が設定されていてもよい。また、第５の属性は、ＱＰ値を有していなくてもよい。このように、複数の属性情報の量子化に用いる複数のＱＰ値を導出するための共通の基準値が量子化に用いられる属性情報と、共通の基準値とは独立した基準値が量子化に用いられる属性情報とが混在してもよい。また、さらに、ＱＰ値が符号化に用いられない属性情報が混在してもよい。
【０８７４】
なお、図１１８の例では第１の色の属性情報の量子化に用いるＱＰ値が、複数の属性情報の量子化に用いるＱＰ値を導出するための共通の基準値である例を説明したが、共通の基準値は、以下の規則に従って決定されてもよい。例えば、ＳＰＳなどの制御情報に全ての属性情報が記載される場合、全ての属性情報のうちＳＰＳにおいて最初に示される属性情報に含まれるＱＰ値を、共通の基準値として設定してもよい。あるいは、ＳＰＳなどの制御情報において、共通の基準値として設定されるＱＰ値が量子化に用いられる属性情報が示されていてもよい。反対に、ＳＰＳなどの制御情報において、共通の基準値として設定されるＱＰ値が量子化に用いられる属性情報が複数の属性情報の最初に示されていてもよい。いずれの方法を用いても、複数の属性情報のそれぞれの量子化に用いられる各ＱＰ値を、基準値と差分情報との組み合わせの情報で示すことで、符号化データの削減が期待できる。
【０８７５】
なお、属性情報ごとの基準値ＱＹ１，ＱＹ２，ＱＲをそれぞれ独立にＡＰＳで示し、第１の色に属するＱＰ値はＱＹ１を基準値とし、第２の色に属するＱＰ値はＱＹ２を基準値とし、反射率に属するＱＰ値はＱＲを基準値としてもよい。つまり、この場合、ＱＹ２およびＱＲは、ＱＹ１と同様に絶対値で示される。
【０８７６】
第１の例は、複数の属性情報のメターデータをまとめて１つのＡＰＳに記載する場合の属性情報のＱＰ値を示す方法である。
【０８７７】
図１１９は、ＡＰＳのシンタックス、および、属性情報のヘッダのシンタックスの第１の例を示す図である。
【０８７８】
まず、ＡＰＳのシンタックス例について説明する。
【０８７９】
ａｐｓ＿ｉｄｘは、ＡＰＳのインデックス番号を示す。ａｐｓ＿ｉｄｘは、ＡＰＳと属性情報のヘッダとの間の対応関係を示す。
【０８８０】
ｓｐｓ＿ｉｄｘは、ＡＰＳが対応するＳＰＳのインデックス番号を示す。
【０８８１】
ｎｕｍ＿ｏｆ＿ａｔｔｒｉｂｕｔｅは、属性情報の数を示す。なお、属性情報ごとにＡＰＳが設定される場合、ｎｕｍ＿ｏｆ＿ａｔｔｒｉｂｕｔｅのフィールドまたはループはＡＰＳに含まれていなくてもよい。
【０８８２】
ａｔｔｒｉｂｕｔｅ＿ｔｙｐｅは、属性情報のタイプ、つまり、属性情報の種類を示す。なお、属性情報のタイプが対応するＳＰＳに記載されている場合、ａｔｔｒｉｂｕｔｅ＿ｔｙｐｅの代わりに、ＳＰＳに記載されている属性情報のタイプを参照するための情報がＡＰＳに含まれていてもよい。
【０８８３】
図１１９において破線６７０１で囲まれているｉｆ文では、ａｔｔｒｉｂｕｔｅ＿ｔｙｐｅに応じたＱＰ値が示される。例えば、属性情報のタイプが色である場合、絶対値で示される輝度（ルマ）のＱＰ値が基準値として示され、色差（クロマ：Ｃｂ，Ｃｒ）のＱＰ値が輝度のＱＰ値との差分情報として示される。
【０８８４】
一方、属性情報のタイプが反射率である場合、絶対値で示される反射率のＱＰ値が示される。また、属性情報のタイプがその他の例としてＱＰ値を有していない場合、ＱＰ値が示さない。
【０８８５】
また、属性情報が２以上ある場合、属性情報の基準値（ここではＱＰ＿ｖａｌｕｅ＿ＬｕｍａあるいはＱＰ＿ｖａｌｕｅ）は、他の属性情報の基準値からの差分で示されてもよい。例えば、ｎｕｍ＿ｏｆ＿ａｔｔｒｉｂｕｔｅのループにおいてｉ＝０の場合に共通の属性情報の基準値が示され、ｉ＝＞１の場合に共通の属性情報からの差分値が示されてもよい。
【０８８６】
ｄａｔａ＿ＱＰ＿ｄｅｌａｔａ＿ｐｒｅｓｅｎｔ＿ｆｌａｇは、Ｄａｔａ（スライス）ごとのＱＰ値が属性情報のヘッダに存在するか否かを示すフラグである。当該フラグが１の場合、属性情報のヘッダにＤａｔａ（スライス）ごとのＱＰ値が示される。
【０８８７】
次に、属性情報のヘッダのシンタックス例について説明する。
【０８８８】
属性情報のヘッダにもａｐｓ＿ｉｄｘが含まれている。これにより、ＡＰＳ、および、属性情報のヘッダに含まれる、ａｐｓ＿ｉｄｘでＡＰＳと属性情報のヘッダとの間の対応関係が示される。つまり、共通するａｐｓ＿ｉｄｘを有していることが、ＡＰＳおよび属性情報のヘッダが互いに対応関係にあることを示す。
【０８８９】
ａｔｔｒｉｂｕｔｅ＿ｔｙｐｅは、属性情報のタイプ（属性情報の種類）を示す。なお、属性情報のタイプが対応するＡＰＳあるいはＳＰＳに記載されている場合、ａｔｔｒｉｂｕｔｅ＿ｔｙｐｅの代わりに、ＡＰＳあるいはＳＰＳに記載されている属性情報のタイプを参照するための情報が属性情報のヘッダに含まれていてもよい。
【０８９０】
破線６７０２で囲まれているｉｆ文における各フィールド、つまり、ＱＰ＿ｄｅｌａｔａ＿ｄａｔａ＿ｔｏ＿ｆｒａｍｅ、ＱＰ＿ｄｅｌｔａ１＿ｔｏ＿ｆｒａｍｅおよびＱＰ＿ｄｅｌｔａ２＿ｔｏ＿ｆｒａｍｅのそれぞれのＱＰ値は、ａｔｔｒｉｂｕｔｅ＿ｔｙｐｅに対応するデータのＱＰ値を示す。各ＱＰ値は、ＡＰＳに記載の値からの差分情報を示す。
【０８９１】
第２の例は、１つの属性情報のメターデータを独立に１つのＡＰＳに記載する場合の属性情報のＱＰ値を示す方法である。第２の例では、様々なタイプ（種類）の属性情報で共通のヘッダ構造とすることで、属性情報に応じたシンタックス構造の変化を回避する効果がある。
【０８９２】
図１２０は、ＡＰＳのシンタックスの第２の例を示す図である。図１２１は、属性情報のヘッダのシンタックスの第２の例を示す図である。
【０８９３】
ＡＰＳには、フレームのＱＰ値の基準値および差分値が含まれる。また、ＡＰＳのｄａｔａ＿ＱＰ＿ｄｅｌｔａ＿ｐｒｅｓｅｎｔ＿ｆｌａｇが１の場合、属性情報のヘッダには、ＡＰＳの基準値からの差分情報が含まれる。
【０８９４】
ここで、ＱＰ値にかかわるフィールドは、属性情報のタイプが色、反射率、フレーム番号などのいずれであっても常に存在するものとする。ＡＰＳは、属性情報のタイプに関わらず、Ｎ個（Ｎは２以上）のＱＰ値が格納される第１の数のフィールドを有する。ここで、Ｎは、例えば、３である。
【０８９５】
例えば、属性情報のタイプが色である場合、ＡＰＳにおけるＱＰ＿ｖａｌｕｅには、ルマのＱＰ値を示す情報が格納され、ＱＰ＿ｄｅｌｔａ１およびＱＰ＿ｄｅｌｔａ２にはクロマのＱＰ値を示す情報が格納される。例えば、ＱＰ＿ｖａｌｕｅは、基準値であり、ＱＰ＿ｄｅｌｔａ１およびＱＰ＿ｄｅｌｔａ２は、ＱＰ＿ｖａｌｕｅを基準とする差分情報である。つまり、ルマのＱＰ値は、ＱＰ＿ｖａｌｕｅで示され、クロマのＱＰ値は、ＱＰ＿ｖａｌｕｅにＱＰ＿ｄｅｌｔａ１を加算した値、および、ＱＰ＿ｖａｌｕｅにＱＰ＿ｄｅｌｔａ２を加算した値で示される。このように、ＡＰＳには、対応する属性情報を量子化するための量子化パラメータの基準値が含まれる。
【０８９６】
また、同様に、属性情報のヘッダにおけるＱＰ＿ｄｅｌａｔａ＿ｄａｔａ＿ｔｏ＿ｆｒａｍｅにはルマのＱＰ値の、対応するＡＰＳのＱＰ＿ｖａｌｕｅからの差分情報が格納される。また、ＱＰ＿ｄｅｌｔａ１＿ｔｏ＿ｆｒａｍｅおよびＱＰ＿ｄｅｌｔａ２＿ｔｏ＿ｆｒａｍｅにはクロマのＱＰ値の、対応するＡＰＳのＱＰ＿ｄｅｌｔａ１およびＱＰ＿ｄｅｌｔａ２からの差分情報が格納されてもよい。
【０８９７】
また、例えば、属性情報のタイプが反射率である場合は、ＡＰＳにおけるＱＰ＿ｖａｌｕｅには反射率のＱＰ値を示す情報が格納され、ＱＰ＿ｄｅｌｔａ１およびＱＰ＿ｄｅｌｔａ２には常に０または無効であることを示す情報が格納されてもよい。また、、同様に、属性情報のヘッダにおけるＱＰ＿ｄｅｌａｔａ＿ｄａｔａ＿ｔｏ＿ｆｒａｍｅには反射率のＱＰ値を示す情報が格納され、ＱＰ＿ｄｅｌｔａ１＿ｔｏ＿ｆｒａｍｅおよびＱＰ＿ｄｅｌｔａ２＿ｔｏ＿ｆｒａｍｅには常に０または無効であることを示す情報が格納されてもよい。この場合、三次元データ復号装置は、０または無効であることを示す情報が格納されている、ＱＰ＿ｄｅｌｔａ１およびＱＰ＿ｄｅｌｔａ２、並びに、ＱＰ＿ｄｅｌｔａ１＿ｔｏ＿ｆｒａｍｅおよびＱＰ＿ｄｅｌｔａ２＿ｔｏ＿ｆｒａｍｅに格納されている情報を、当該情報に関わらずに、復号に用いず無視してもよい。
【０８９８】
また、例えば、属性情報のタイプがその他の例としてＱＰ値を有していない場合、ＡＰＳにおけるすべてのフィールドには、０または無効であることを示す情報が格納されてもよい。この場合、さらにｄａｔａ＿ＡＰ＿ｄｅｌｔａ＿ｐｒｅｓｅｎｔ＿ｆｌａｇは、０とされてもよい。この場合、三次元データ復号装置は、０または無効であることを示す情報が格納されている、ＱＰ＿ｄｅｌｔａ１およびＱＰ＿ｄｅｌｔａ２、並びに、ＱＰ＿ｄｅｌｔａ１＿ｔｏ＿ｆｒａｍｅおよびＱＰ＿ｄｅｌｔａ２＿ｔｏ＿ｆｒａｍｅに格納されている情報を、当該情報に関わらずに、復号に用いず無視してもよい。このように、三次元データ復号装置は、複数の属性情報のヘッダのうちの特定の種類の属性に対応する特定の属性情報のヘッダにおける複数のフィールドのうちの特定のフィールドに格納されるパラメータを無視してもよい。
【０８９９】
このような構成の場合、属性情報のタイプが異なる場合でも、共通するシンタックス構造で、ＱＰ値を基準値と差分情報との組み合わせで示すことができるため、符号化率の向上が期待できる。
【０９００】
なお、１つの位置情報に対応する属性情報が２以上の色情報を有する場合、共通のＱＰ基準値とその差分情報で示し、反射率のＱＰ基準値は独立にＡＰＳで示すなど、属性情報のタイプに応じて示し方を変えてもよい。
【０９０１】
実施の形態８および本実施の形態で説明した方法に限らず、さらに基準値を、基準値と差分情報とに分けてシグナリングしてもよいし、差分情報を独立に基準値としてシグナリングしてもよい。例えば、独立した復号を必要とする単位の場合には、少なくとも１つの基準値を送出し、独立した復号を必要としない単位の場合には差分情報を送出するなど、データの特性に応じて適応的に基準値および差分情報の組み合わせを変化させてもよい。これにより機能向上と符号量削減の両方の効果を期待できる。
【０９０２】
あるいは、基準値と差分情報との組み合わせの情報量を計算し、計算結果に基づき、例えば計算結果が最小となるような基準値と差分情報との組み合わせを生成し、送出してもよい。適応的に切り替える場合には、基準値を示すフィールドと差分情報を示すフィールドとの意味（セマンティクス）を適応的に変化させてもよい。例えば上記のようなルールに従い各フィールドを無効にするか否かなどのように各フィールドの意味を変えてもよいし、各フィールドの意味を切り替えることを示すフラグを追加してもよい。また、基準値の参照先を適応的に変えてもよい。その場合は、参照先が変わったことを示すフラグや参照先を特定するためのＩｄなどが示されてもよい。
【０９０３】
次に、ＳＰＳに記載される属性情報と、ＡＰＳ、および、Ａｔｔｒｉｂｕｔｅ＿ｈｅａｄｅｒ（属性情報のヘッダ）の関係を、ａｔｔｒｉｂｕｔｅ＿ｃｏｍｐｏｎｅｎｔ＿ｉｄを用いて示す方法について図１２２を用いて説明する。図１２２は、ＳＰＳ、ＡＰＳおよび属性情報のヘッダの関係を示す図である。なお、図１２２において矢印の先は、参照先を示す。
【０９０４】
ＳＰＳには、複数の属性情報のタイプに関する情報が含まれる。このように、ＳＰＳは、複数の属性情報に対応し、それぞれが互いに異なる属性情報の種類を示す複数のａｔｔｒｉｂｕｔｅ＿ｔｙｐｅを含んでいてもよい。また、ＳＰＳは、属性情報のタイプ毎に、属性情報のタイプを識別するための番号を示すａｔｔｒｉｂｕｔｅ＿ｃｏｍｐｏｎｅｎｔ＿ｉｄを含む。なお、ＳＰＳは、制御情報の一例である。ａｔｔｒｉｂｕｔｅ＿ｔｙｐｅは、種類情報の一例である。ＳＰＳに含まれるａｔｔｒｉｂｕｔｅ＿ｃｏｍｐｏｎｅｎｔ＿ｉｄは、複数の種類情報のいずれかに対応付けられていることを示す第１識別情報の一例である。
【０９０５】
ＡＰＳまたはＡｔｔｒｉｂｕｔｅ＿ｈｅａｄｅｒは、ＳＰＳに含まれるａｔｔｒｉｂｕｔｅ＿ｃｏｍｐｏｎｅｎｔ＿ｉｄに対応するａｔｔｒｉｂｕｔｅ＿ｃｏｍｐｏｎｅｎｔ＿ｉｄを含む。なお、ＡＰＳは、第２属性制御情報の一例である。Ａｔｔｒｉｂｕｔｅ＿ｈｅａｄｅｒは、第１属性制御情報の一例である。ＡＰＳに含まれるａｔｔｒｉｂｕｔｅ＿ｃｏｍｐｏｎｅｎｔ＿ｉｄは、複数の種類情報のいずれかに対応付けられていることを示す第２識別情報の一例である。
【０９０６】
三次元データ復号装置は、ＡＰＳまたはＡｔｔｒｉｂｕｔｅ＿ｈｅａｄｅｒに含まれるｓｐｓ＿ｉｄｘで示されるＳＰＳを参照する。そして、三次元データ復号装置は、参照したＳＰＳにおいて、当該ＡＰＳまたは当該Ａｔｔｒｉｂｕｔｅ＿ｈｅａｄｅｒに含まれるａｔｔｒｉｂｕｔｅ＿ｃｏｍｐｏｎｅｎｔ＿ｉｄに対応する属性情報のタイプを、当該ＡＰＳまたは当該Ａｔｔｒｉｂｕｔｅ＿ｈｅａｄｅｒに含まれる情報が対応する属性情報のタイプとして取得する。なお、１つのＡＰＳは、属性情報のタイプの１つに対応する。また、１つの属性情報のヘッダは、属性情報のタイプの１つに対応する。複数のＡＰＳのそれぞれは、１以上の属性情報のヘッダが対応している。つまり、１つのＡＰＳには、他のＡＰＳに対応している１以上の属性情報のヘッダとは異なる１以上の属性情報のヘッダが対応している。
【０９０７】
例えば、ａｔｔｒｉｂｕｔｅ＿ｃｏｍｐｏｎｅｎｔ＿ｉｄ＝０の場合、三次元データ復号装置は、ＳＰＳの中から同一の、つまり、値が０のａｔｔｒｉｂｕｔｅ＿ｃｏｍｐｏｎｅｎｔ＿ｉｄに対応する属性情報（ａｔｔｒｉｂｕｔｅ＿ｔｙｐｅなど）を取得することができる。
【０９０８】
なお、ＳＰＳには、ａｔｔｒｉｂｕｔｅ＿ｃｏｍｐｏｎｅｎｔ＿ｉｄの代わりに、ＳＰＳに記載される属性情報の順序が用いられてもよい。つまり、複数の属性情報の種類を示す種類情報は、ＳＰＳにおいて、所定の順序で格納（記述）されていてもよい。この場合、ＡＰＳまたはＡｔｔｒｉｂｕｔｅ＿ｈｅａｄｅｒに含まれるａｔｔｒｉｂｕｔｅ＿ｃｏｍｐｏｎｅｎｔ＿ｉｄは、ａｔｔｒｉｂｕｔｅ＿ｃｏｍｐｏｎｅｎｔ＿ｉｄを含むＡＰＳまたはＡｔｔｒｉｂｕｔｅ＿ｈｅａｄｅｒが所定の順序のうちの一つの順番の種類情報に対応付けられていることを示す。
【０９０９】
あるいは、ＡＰＳまたは属性情報の送出順をＳＰＳに記載される属性情報の順序と一致させることで、三次元データ復号装置は、ＡＰＳまたは属性情報の到着順を導出し、到着順に対応する属性情報を参照するとしてもよい。また、点群データが、ＡＰＳまたはＡｔｔｒｉｂｕｔｅ＿ｈｅａｄｅｒがフレーム毎にあったりなかったりする属性情報と、ＡＰＳまたはＡｔｔｒｉｂｕｔｅ＿ｈｅａｄｅｒがフレーム毎に常に存在する属性情報とを含む場合、フレーム毎に常に存在する属性情報の順番を先にし、時々存在しない可能性のある属性情報の順番を後に送出してもよい。
【０９１０】
なお、図１１８および図１２２では、１つのフレームにおいて、複数の属性情報にそれぞれが対応する複数のＡＰＳが示されているが、複数のＡＰＳの代わりに１つのＡＰＳが用いられてもよい。つまり、この場合の１つのＡＰＳは、複数の属性情報に対応する属性情報に関する情報を含む。
【０９１１】
また、ａｐｓ＿ｉｄｘは、フレーム番号に相当するシーケンス番号を含んでいてもよい。これにより、ＡＰＳとＡｔｔｒｉｂｕｔｅ＿ｈｅａｄｅｒとの対応関係が示されてもよい。なお、ａｐｓ＿ｉｄｘは、ａｔｔｉｒｕｂｔｅ＿ｃｏｍｐｏｎｅｎｔ＿ｉｄの機能を有してもよい。この方法により、１以上の種類のＡＰＳまたは属性情報に関わる、シーケンス全体の情報をＳＰＳに格納し、各ＡＰＳまたは各Ａｔｔｒｉｂｕｔｅ＿ｈｅａｄｅｒから参照することが可能となる。
【０９１２】
なお、ＡＰＳまたはＡｔｔｒｉｂｕｔｅ＿ｈｅａｄｅｒの属性情報の種類（ａｔｔｒｉｂｕｔｅ＿ｔｙｐｅ）を判定する方法として、ＡＰＳまたはＡｔｔｒｉｂｕｔｅ＿ｈｅａｄｅｒに直接ａｔｔｒｉｂｕｔｅ＿ｔｙｐｅが含まれてよいし、ＮＡＬユニットの種類としてＮＡＬユニットヘッダにａｔｔｒｉｂｕｔｅ＿ｔｙｐｅが含まれてもよい。
【０９１３】
いずれの方法を用いてもＡＰＳまたはＡｔｔｒｉｂｕｔｅ＿ｈｅｄａｅｒの属性情報の取得や属性の種類を判定することが可能となる。
【０９１４】
以上のように、本実施の形態に係る三次元データ符号化装置は、図１２３に示す処理を行う。まず、三次元データ符号化装置は、パラメータを用いて複数の三次元点のそれぞれが有する複数の属性情報を符号化する（Ｓ６７０１）。三次元データ符号化装置は、符号化された前記複数の属性情報、制御情報、および、複数の第１属性制御情報を含むビットストリームを生成する（Ｓ６７０２）。前記制御情報は、前記複数の属性情報に対応し、それぞれが互いに異なる属性情報の種類を示す複数の種類情報を含む。また、前記複数の第１属性制御情報は、前記複数の属性情報にそれぞれ対応する。前記複数の第１属性制御情報のそれぞれは、前記複数の種類情報のいずれかに対応付けられていることを示す第１識別情報を含む。
【０９１５】
これによれば、第１属性制御情報が対応している属性情報の種類を特定するための第１識別情報を含むビットストリームを生成するため、当該ビットストリームを受信した三次元データ復号装置は、三次元点の属性情報を正しくかつ効率よく復号することができる。
【０９１６】
例えば、前記複数の種類情報は、前記制御情報において、所定の順序で格納されている。前記第１識別情報は、当該第１識別情報を含む第１属性制御情報が前記所定の順序のうちの一つの順番の種類情報に対応付けられていることを示す。
【０９１７】
これによれば、種類情報を示す情報を付加しなくても種類情報が所定の順序で示されるため、ビットストリームのデータ量を削減することができ、ビットストリームの伝送量を削減することができる。
【０９１８】
例えば、前記ビットストリームは、さらに、前記複数の属性情報に対応する複数の第２属性制御情報を含む。前記複数の第２属性制御情報のそれぞれは、対応する第１属性情報の符号化に用いられるパラメータの基準値を含む。
【０９１９】
これによれば、複数の第２属性制御情報のそれぞれは、パラメータの基準値を含むため、基準値を用いて、当該第２属性制御情報が対応する属性情報を符号化することができる。また、ビットストリームを受信した三次元データ復号装置は、第２識別情報を用いて、第２属性情報の種類を特定することができるため、三次元点の属性情報を正しくかつ効率よく復号することができる。
【０９２０】
例えば、前記第１属性制御情報は、前記パラメータの前記基準値からの差分である差分情報を含む。このため、符号化効率を向上できる。
【０９２１】
例えば、前記ビットストリームは、さらに、前記複数の属性情報に対応する複数の第２属性制御情報を含む。前記複数の第２属性制御情報のそれぞれは、前記複数の種類情報のいずれかに対応付けられていることを示す第２識別情報を有する。
【０９２２】
これによれば、第２属性制御情報が対応している属性情報の種類を特定するための第２識別情報を含むビットストリームを生成するため、三次元点の属性情報を正しくかつ効率よく復号することができるビットストリームを生成することができる。
【０９２３】
例えば、前記複数の第１属性制御情報のそれぞれは、Ｎ個（Ｎは２以上）のパラメータが格納される前記Ｎ個のフィールドを有する。前記複数の第１属性制御情報のうちの特定の種類の属性に対応する特定の第１属性制御情報では、前記第１の数のフィールドの一つのフィールドは、無効であることを示す値を含む。
【０９２４】
このため、ビットストリームを受信した三次元データ復号装置は、第１識別情報を用いて、第１属性情報の種類を特定し、特定の第１属性制御情報の場合に復号処理を省くことができるため、三次元点の属性情報を正しくかつ効率よく復号することができる。
【０９２５】
例えば、前記符号化では、前記パラメータとしての量子化パラメータを用いて前記複数の属性情報を量子化する。
【０９２６】
これによれば、パラメータを基準値からの差分を用いて表すため、量子化にかかる符号化効率を向上できる。
【０９２７】
例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
【０９２８】
また、本実施の形態に係る三次元データ復号装置は、図１２４に示す処理を行う。まず、三次元データ復号装置は、ビットストリームを取得することで符号化された複数の属性情報、および、パラメータを取得する（Ｓ６７１１）。三次元データ復号装置は、前記パラメータを用いて前記符号化された複数の属性情報を復号することで、複数の三次元点のそれぞれが有する複数の属性情報を復号する（Ｓ６７１２）。前記ビットストリームは、制御情報および複数の第１属性制御情報を含む。前記制御情報は、前記複数の属性情報に対応し、それぞれが互いに異なる属性情報の種類を示す複数の種類情報を含む。前記複数の第１属性制御情報は、前記複数の属性情報にそれぞれ対応する。前記複数の第１属性制御情報のそれぞれは、前記複数の種類情報のいずれかに対応付けられていることを示す第１識別情報を含む。
【０９２９】
これによれば、三次元データ復号装置は、第１識別情報を用いて、第１属性制御情報が対応している属性情報の種類を特定することができるため、三次元点の属性情報を正しくかつ効率よく復号することができる。
【０９３０】
例えば、前記複数の種類情報は、前記制御情報において、所定の順序で格納されている。前記第１識別情報は、当該第１識別情報を含む第１属性制御情報が前記所定の順序のうちの一つの順番の種類情報に対応付けられていることを示す。
【０９３１】
これによれば、種類情報を示す情報を付加しなくても種類情報が所定の順序で示されるため、ビットストリームのデータ量を削減することができ、ビットストリームの伝送量を削減することができる。
【０９３２】
例えば、前記ビットストリームは、さらに、前記複数の属性情報に対応する複数の第２属性制御情報を含む。前記複数の第２属性制御情報のそれぞれは、対応する属性情報の符号化に用いられるパラメータの基準値を含む。
【０９３３】
これによれば、三次元データ復号装置は、第基準値を用いて第２属性制御情報が対応する属性情報を復号することができるため、三次元点の属性情報を正しくかつ効率よく復号することができる。
【０９３４】
例えば、前記第１属性制御情報は、前記パラメータの前記基準値からの差分である差分情報を含む。これによれば、基準値および差分情報を用いて属性情報を復号できるため、三次元点の属性情報を正しくかつ効率よく復号することができる。
【０９３５】
例えば、前記ビットストリームは、さらに、前記複数の属性情報に対応する複数の第２属性制御情報を含む。前記複数の第２属性制御情報のそれぞれは、前記複数の種類情報のいずれかに対応付けられていることを示す第２識別情報を有する。これによれば、第２識別情報を用いて、第２属性制御情報が対応している属性情報の種類を特定することができるため、三次元点の属性情報を正しくかつ効率よく復号することができる。
【０９３６】
例えば、前記複数の第１属性制御情報のそれぞれは、複数のパラメータが格納される複数のフィールドを有する。前記復号では、前記複数の第１属性制御情報のうちの特定の種類の属性に対応する特定の第１属性制御情報の前記複数のフィールドのうちの特定のフィールドに格納されるパラメータを無視する。
【０９３７】
これによれば、三次元データ復号装置は、第１識別情報を用いて、第１属性情報の種類を特定し、特定の第１属性制御情報の場合に復号処理を省くことができるため、三次元点の属性情報を正しくかつ効率よく復号することができる。
【０９３８】
例えば、前記復号では、前記パラメータとしての量子化パラメータを用いて前記符号化された複数の属性情報を逆量子化する。
【０９３９】
これによれば、三次元点の属性情報を正しく復号することができる。
【０９４０】
例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
【０９４１】
（実施の形態１３）
高圧縮を実現するために、ＰＣＣ（Ｐｏｉｎｔ  Ｃｌｏｕｄ  Ｃｏｍｐｒｅｓｓｉｏｎ）データに含まれる属性情報は、Ｌｉｆｔｉｎｇ、ＲＡＨＴ（Ｒｅｇｉｏｎ  Ａｄａｐｔｉｖｅ  Ｈｉｅｒａｒｃｈｉｃａｌ  Ｔｒａｎｓｆｏｒｍ）又はその他の変換手法等の複数の手法を用いて変換される。ここで、Ｌｉｆｔｉｎｇとは、ＬｏＤ（Ｌｅｖｅｌ  ｏｆ  Ｄｅｔａｉｌ）を用いた変換方法の一つである。
【０９４２】
重要な信号情報は低周波成分に含まれる傾向があるため、高周波成分を量子化することで符号量が削減される。つまり、変換処理は強いエネルギー圧縮特性を有する。また、量子化パラメータの大きさに応じて、量子化により精度が失われる。
【０９４３】
図１２５は、本実施の形態に係る三次元データ符号化装置の構成を示すブロック図である。この三次元データ符号化装置は、減算部７００１と、変換部７００２と、変換行列保持部７００３と、量子化部７００４と、量子化制御部７００５と、エントロピー符号化部７００６とを備える。
【０９４４】
減算部７００１は、入力データと参照データとの差分である係数値を算出する。例えば、入力データとは点群データに含まれる属性情報であり、参照データとの属性情報の予測値である。
【０９４５】
変換部７００２は係数値に変換処理を行う。例えば、この変換処理は、複数の属性情報をＬｏＤに分類する処理である。なお、この変換処理はＨａａｒ変換等であってもよい。変換行列保持部７００３は、変換部７００２による変換処理に用いられる変換行列を保持する。例えば、この変換行列はＨａａｒ変換行列である。なお、ここでは、三次元データ符号化装置は、ＬｏＤを用いた変換処理と、Ｈａａｒ変換等の変換処理との両方を行う機能を有する例を示すが、いずれか一方の機能を有してもよい。また、三次元データ符号化装置は、これらの２種類の変換処理を選択的に用いてもよい。また、三次元データ符号化装置は、所定の処理単位毎に、使用する変換処理を切り替えてもよい。
【０９４６】
量子化部７００４は、係数値を量子化することで量子化値を生成する。量子化制御部７００５は、量子化部７００４が量子化に用いる量子化パラメータを制御する。例えば、量子化制御部７００５は、符号化の階層構造に合わせて量子化パラメータ（または、量子化ステップ）を切替えてもよい。これにより、階層構造毎に適切な量子化パラメータを選択することで階層毎に発生符号量を制御できる。また、量子化制御部７００５は、例えば主観画質に影響が少ない周波数成分を含むある階層以下の量子化パラメータを最大値に設定し、その階層以下の量子化係数を０にする。これにより、主観画質の劣化を抑制しつつ、発生符号量削減できる。また、量子化制御部７００５は、主観画質と発生符号量をより細かく制御できる。ここで、階層とは、ＬｏＤ又はＲＡＨＴ（Ｈａａｒ変換）における階層（木構造における深さ）である。
【０９４７】
エントロピー符号化部７００６は、量子化係数をエントロピー符号化（例えば算術符号化）することでビットストリームを生成する。また、エントロピー符号化部７００６は、量子化制御部７００５で設定された階層毎の量子化パラメータを符号化する。
【０９４８】
図１２６は、本実施の形態に係る三次元データ復号装置の構成を示すブロック図である。この三次元データ復号装置は、エントロピー復号部７０１１と、逆量子化部７０１２と、量子化制御部７０１３と、逆変換部７０１４と、変換行列保持部７０１５と、加算部７０１６とを備える。
【０９４９】
エントロピー復号部７０１１は、ビットストリームから量子化係数と、階層毎の量子化パラメータとを復号する。逆量子化部７０１２は、量子化係数を逆量子化することで係数値を生成する。量子化制御部７０１３は、エントロピー復号部７０１１で得られた階層号の量子化パラメータに基づき、逆量子化部７０１２が逆量子化に用いる量子化パラメータを制御する。
【０９５０】
逆変換部７０１４は、係数値を逆変換する。例えば、逆変換部７０１４は、係数値を逆Ｈａａｒ変換する。変換行列保持部７０１５は、逆変換部７０１４による逆変換処理に用いられる変換行列を保持する。例えば、この変換行列は逆Ｈａａｒ変換行列である。
【０９５１】
加算部７０１６は、係数値に参照データを加算することで出力データを生成する。例えば、出力データとは点群データに含まれる属性情報であり、参照データとの属性情報の予測値である。
【０９５２】
次に、階層毎の量子化パラメータの設定の例を説明する。Ｐｒｅｄｉｃｔｉｎｇ／Ｌｉｆｔｉｎｇ等の属性情報の符号化において、ＬｏＤの階層に基づいて異なる量子化パラメータを適用する。例えば、低層の量子化パラメータを小さくし、低層の精度を上げる。これにより、高層の予測精度を向上できる。また、高層に対しては量子化パラメータを大きくすることでデータ量を削減できる。このように、ユーザの使用方針に応じて、ＬｏＤ毎に個別に量子化ツリー値（Ｑｔ）を設定できる。ここで、量子化ツリー値とは、例えば、量子化パラメータである。
【０９５３】
図１２７は、ＬｏＤの設定例を示す図である。例えば、図１２７に示すようにＬｏＤ０〜ＬｏＤ２に対して独立したＱｔ０〜Ｑｔ２が設定される。
【０９５４】
また、ＲＡＨＴを用いた属性情報の符号化では、木構造の深さに基づいて異なる量子化パラメータを適用する。例えば、低層の量子化パラメータを小さくし、低層の精度を上げる。これにより、高層の予測精度を向上できる。また、高層に対しては量子化パラメータを大きくすることでデータ量を削減できる。このように、ユーザの使用方針に応じて、木構造の深さ毎に個別に量子化ツリー値（Ｑｔ）を設定できる。
【０９５５】
図１２８は、ＲＡＨＴの階層構造（木構造）の例を示す図である。例えば、図１２８に示すように木構造の深さ毎に独立したＱｔ０〜Ｑｔ２が設定される。
【０９５６】
以下、本実施の形態に係る三次元データ符号化装置の構成を説明する。図１２９は、本実施の形態に係る三次元データ符号化装置７０２０の構成を示すブロック図である。三次元データ符号化装置７０２０は、点群データ（ポイントクラウド）を符号化することで符号化データ（符号化ストリーム）を生成する。この三次元データ符号化装置７０２０は、分割部７０２１と、複数の位置情報符号化部７０２２と、複数の属性情報符号化部７０２３と、付加情報符号化部７０２４と、多重化部７０２５とを含む。
【０９５７】
分割部７０２１は、点群データを分割することで複数の分割データを生成する。具体的には、分割部７０２１は、点群データの空間を複数のサブ空間に分割することで複数の分割データを生成する。ここでサブ空間とは、タイル及びスライスの一方、又はタイル及びスライスの組み合わせである。より具体的には、点群データは、位置情報、属性情報（色又は反射率等）、及び付加情報を含む。分割部７０２１は、位置情報を分割することで複数の分割位置情報を生成し、属性情報を分割することで複数の分割属性情報を生成する。また、分割部７０２１は、分割に関する付加情報を生成する。
【０９５８】
例えば、分割部７０２１は、まず、点群をタイルに分割する。次に、分割部７０２１は、得られたタイルを、さらにスライスに分割する。
【０９５９】
複数の位置情報符号化部７０２２は、複数の分割位置情報を符号化することで複数の符号化位置情報を生成する。例えば、位置情報符号化部７０２２は、８分木等のＮ分木構造を用いて分割位置情報を符号化する。具体的には、８分木では、対象空間が８個のノード（サブ空間）に分割され、各ノードに点群が含まれるか否かを示す８ビットの情報（オキュパンシー符号）が生成される。また、点群が含まれるノードは、さらに、８個のノードに分割され、当該８個のノードの各々に点群が含まれるか否かを示す８ビットの情報が生成される。この処理が、予め定められた階層又はノードに含まれる点群の数の閾値以下になるまで繰り返される。例えば、複数の位置情報符号化部７０２２は、複数の分割位置情報を並列処理する。
【０９６０】
属性情報符号化部７０２３は、位置情報符号化部７０２２で生成された構成情報を用いて属性情報を符号化することで符号化データである符号化属性情報を生成する。例えば、属性情報符号化部７０２３は、位置情報符号化部７０２２で生成された８分木構造に基づき、処理対象の対象点（対象ノード）の符号化において参照する参照点（参照ノード）を決定する。例えば、属性情報符号化部７０２３は、周辺ノード又は隣接ノードのうち、８分木における親ノードが対象ノードと同一のノードを参照する。なお、参照関係の決定方法はこれに限らない。
【０９６１】
また、位置情報又は属性情報の符号化処理は、量子化処理、予測処理、及び算術符号化処理のうち少なくとも一つを含んでもよい。この場合、参照とは、属性情報の予測値の算出に参照ノードを用いること、又は、符号化のパラメータの決定に参照ノードの状態（例えば、参照ノードに点群が含まれる否かを示す占有情報）を用いること、である。例えば、符号化のパラメータとは、量子化処理における量子化パラメータ、又は算術符号化におけるコンテキスト等である。
【０９６２】
付加情報符号化部７０２４は、点群データに含まれる付加情報と、分割部７０２１で分割時に生成された、データ分割に関する付加情報とを符号化することで符号化付加情報を生成する。
【０９６３】
多重化部７０２５は、複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を多重化することで符号化データ（符号化ストリーム）を生成し、生成した符号化データを送出する。また、符号化付加情報は復号時に使用される。
【０９６４】
図１３０は、分割部７０２１のブロック図である。分割部７０２１は、タイル分割部７０３１と、スライス分割部７０３２とを含む。
【０９６５】
タイル分割部７０３１は、位置情報（Ｐｏｓｉｔｉｏｎ（Ｇｅｏｍｅｔｒｙ））をタイルに分割することで複数のタイル位置情報を生成する。また、タイル分割部７０３１は、属性情報（Ａｔｔｒｉｂｕｔｅ）をタイルに分割することで複数のタイル属性情報を生成する。また、タイル分割部７０３１は、タイル分割に係る情報、及びタイル分割において生成された情報を含むタイル付加情報（Ｔｉｌｅ  ＭｅｔａＤａｔａ）を出力する。
【０９６６】
スライス分割部７０３２は、複数のタイル位置情報をスライスに分割することで複数の分割位置情報（複数のスライス位置情報）を生成する。また、スライス分割部７０３２は、複数のタイル属性情報をスライスに分割することで複数の分割属性情報（複数のスライス属性情報）を生成する。また、スライス分割部７０３２は、スライス分割に係る情報、及びスライス分割において生成された情報を含むスライス付加情報（Ｓｌｉｃｅ  ＭｅｔａＤａｔａ）を出力する。
【０９６７】
また、タイル分割部７０３１及びスライス分割部７０３２は、生成した付加情報に基づき量子化ツリー値（量子化パラメータ）を決定する。
【０９６８】
図１３１は、属性情報符号化部７０２３のブロック図である。属性情報符号化部７０２３は、変換部７０３５と、量子化部７０３６と、エントロピー符号化部７０３７とを含む。
【０９６９】
変換部７０３５は、分割属性情報をＬｏＤ等の階層に分類し、分割属性情報と予測値との差分を算出することで係数値（差分値）を生成する。なお、変換部７０３５は、分割属性情報にＨａａｒ変換を行うことで係数値を生成してもよい。
【０９７０】
量子化部７０３６は、係数値を量子化することで量子化値を生成する。具体的には、量子化部７０３６は、量子化パラメータに基づく量子化ステップで係数を除算する。エントロピー符号化部７０３７は、量子化値をエントロピー符号化することで符号化属性情報を生成する。
【０９７１】
以下、本実施の形態に係る三次元データ復号装置の構成を説明する。図１３２は、三次元データ復号装置７０４０の構成を示すブロック図である。三次元データ復号装置７０４０は、点群データが符号化されることで生成された符号化データ（符号化ストリーム）を復号することで点群データを復元する。この三次元データ復号装置７０４０は、逆多重化部７０４１と、複数の位置情報復号部７０４２と、複数の属性情報復号部７０４３と、付加情報復号部７０４４と、結合部７０４５とを含む。
【０９７２】
逆多重化部７０４１は、符号化データ（符号化ストリーム）を逆多重化することで複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を生成する。
【０９７３】
複数の位置情報復号部７０４２は、複数の符号化位置情報を復号することで複数の分割位置情報を生成する。例えば、複数の位置情報復号部７０４２は、複数の符号化位置情報を並列処理する。
【０９７４】
複数の属性情報復号部７０４３は、複数の符号化属性情報を復号することで複数の分割属性情報を生成する。例えば、複数の属性情報復号部７０４３は、複数の符号化属性情報を並列処理する。
【０９７５】
複数の付加情報復号部７０４４は、符号化付加情報を復号することで付加情報を生成する。
【０９７６】
結合部７０４５は、付加情報を用いて複数の分割位置情報を結合することで位置情報を生成する。結合部７０４５は、付加情報を用いて複数の分割属性情報を結合することで属性情報を生成する。
【０９７７】
図１３３は、属性情報復号部７０４３のブロック図である。属性情報復号部７０４３は、エントロピー復号部７０５１と、逆量子化部７０５２と、逆変換部７０５３とを含む。エントロピー復号部７０５１は、符号化属性情報をエントロピー復号することで量子化値を生成する。逆量子化部７０５２は、量子化値を逆量子化することで係数値を生成する。具体的には、ビットストリームから取得された量子化ツリー値（量子化パラメータ）に基づく量子化ステップを係数値に乗算する。逆変換部７０５３は、係数値を逆変換することで分割属性情報を生成する。ここで、逆変換とは、例えば、係数値に予測値を加算する処理である。または、逆変換とは、逆Ｈａａｒ変換である。
【０９７８】
以下、量子化パラメータの決定方法の例を説明する。図１３４は、タイル及びスライス分割における量子化パラメータの設定例を示す図である。
【０９７９】
量子化パラメータの値が小さいと、元の情報が維持されやすい。例えば、量子化パラメータの既定値は１である。例えば、ＰＣＣデータのタイルを用いた符号化処理では、主要道路のタイルの量子化パラメータは、データ品質を維持するために小さい値に設定される。一方、周囲領域のタイルの量子化パラメータは、大きい値に設定される。これにより、周辺領域のデータ品質は低下するが、符号化効率を向上できる。
【０９８０】
同様に、ＰＣＣデータのスライスを用いた符号化処理では、歩道、木、及び建物は、自己位置推定及びマッピングにおいて重要であり、歩道、木、及び建物のスライスの量子化パラメータは、小さい値に設定される。一方、移動体及びその他のデータの重要性が低いので、移動体及びその他のデータのスライスの量子化パラメータは高く設定される。
【０９８１】
また、後述するΔＱＰ（ＤｅｌｔａＱＰ）を用いる場合には、三次元データ符号化装置は、主要道路など、重要なエリアに属する三次元点の符号化において、量子化パラメータを小さくするためにΔＱＰの値に負の値を設定して量子化誤差が小さくなるように符号化を行ってもよい。これにより、重要なエリアに属する三次元点の復号後の属性値を符号化前の値に近づけることができる。また、三次元データ符号化装置は、周辺領域など、重要でないエリアに属する三次元点の符号化時には、量子化パラメータを大きくするためにΔＱＰの値に正の値を設定して情報量を削減してもよい。これにより、重要なエリアの情報量をキープしつつ、全体の符号量を削減できる。
【０９８２】
以下、階層毎の量子化パラメータを示す情報の例を説明する。三次元点の属性情報を量子化して符号化する場合に、フレーム、スライス又はタイル等に対する量子化パラメータＱＰｂａｓｅに加え、より細かい単位で量子化パラメータを制御する仕組みを導入する。例えば、三次元データ符号化装置は、属性情報をＬｏＤを用いて符号化する場合、ＬｏＤ毎にＤｅｌｔａ＿Ｌａｙｅｒを設け、ＬｏＤ毎にＱＰｂａｓｅの値にＤｅｌｔａ＿Ｌａｙｅｒを加算することで量子化パラメータの値を変えながら符号化を行う。また、三次元データ符号化装置は、符号化に用いたＤｅｌｔａ＿Ｌａｙｅｒをビットストリームのヘッダ等に付加する。これにより、三次元データ符号化装置は、例えば目標符号量と発生符号量とに応じてＬｏＤ毎の量子化パラメータを変えながら三次元点の属性情報を符号化できるので、最終的に目標符号量に近い符号量のビットストリームを生成できる。また、三次元データ復号装置は、ヘッダに含まれるＱＰｂａｓｅ及びＤｅｌｔａ＿Ｌａｙｅｒを復号して三次元データ符号化装置が使用した量子化パラメータを生成することで、ビットストリームを適切に復号できる。
【０９８３】
図１３５は、全ての三次元点の属性情報を量子化パラメータＱＰｂａｓｅを用いて符号化する場合の例を示す図である。図１３６は、ＬｏＤの階層毎に量子化パラメータを切替えて符号化を行う場合の例を示す図である。図１３６に示す例では、先頭のＬｏＤの量子化パラメータは、ＱＰｂａｓｅに、先頭のＬｏＤのＤｅｌｔａ＿Ｌａｙｅｒを加算することで算出される。２番目以降のＬｏＤでは、処理対象のＬｏＤの量子化パラメータは、直前のＬｏＤの量子化パラメータに処理対象のＬｏＤのＤｅｌｔａ＿Ｌａｙｅｒを加算することで算出される。例えば、ＬｏＤ３の先頭の量子化パラメータＱＰ３は、ＱＰ３＝ＱＰ２＋Ｄｅｌｔａ＿Ｌａｙｅｒ［３］で算出される。
【０９８４】
なお、各ＬｏＤのＤｅｌｔａ＿Ｌａｙｅｒ［ｉ］はＱＰｂａｓｅからの差分値を示してもよい。つまり、ｉ番目のＬｏＤｉの量子化パラメータＱＰｉは、ＱＰｉ＝ＱＰｂａｓｅ＋Ｄｅｌｔａ＿Ｌａｙｅｒ［ｉ］で表される。例えば、ＱＰ１＝ＱＰｂａｓｅ＋Ｄｅｌｔａ＿Ｌａｙｅｒ［１］で表され、ＱＰ２＝ＱＰｂａｓｅ＋Ｄｅｌｔａ＿Ｌａｙｅｒ［２］で表される。
【０９８５】
図１３７は、属性情報ヘッダ（Ａｔｔｒｉｂｕｔｅ  ｈｅａｄｅｒ  ｉｎｆｏｒｍａｔｉｏｎ）のシンタックス例を示す図である。ここで属性情報ヘッダとは、例えば、フレーム、スライス又はタイル単位のヘッダであり、属性情報のヘッダである。図１３７に示すように、属性情報ヘッダは、ＱＰｂａｓｅ（基準量子化パラメータ）と、ＮｕｍＬａｙｅｒ（階層数）と、Ｄｅｌｔａ＿Ｌａｙｅｒ［ｉ］（差分量子化パラメータ）とを含む。
【０９８６】
ＱＰｂａｓｅは、フレーム、スライス又はタイル等において基準となる量子化パラメータの値を示す。ＮｕｍＬａｙｅｒは、ＬｏＤ又はＲＡＨＴの階層数を示す。言い換えると、ＮｕｍＬａｙｅｒは、属性情報ヘッダに含まれるＤｅｌｔａ＿Ｌａｙｅｒ［ｉ］の数を示す。
【０９８７】
Ｄｅｌｔａ＿Ｌａｙｅｒ［ｉ］は、階層ｉのΔＱＰの値を示す。ここでΔＱＰは、階層ｉ−１の量子化パラメータから階層ｉの量子化パラメータを減算した値である。なお、ΔＱＰは、ＱＰｂａｓｅから階層ｉの量子化パラメータを減算した値であってもよい。また、ΔＱＰは、正又は負の値をとり得る。なお、Ｄｅｌｔａ＿Ｌａｙｅｒ［０］をヘッダに付加しなくてもよい。この場合、階層０の量子化パラメータはＱＰｂａｓｅに等しい。これによりヘッダ符号量を削減できる。
【０９８８】
図１３８は、属性情報ヘッダ（Ａｔｔｒｉｂｕｔｅ  ｈｅａｄｅｒ  ｉｎｆｏｒｍａｔｉｏｎ）の別のシンタックス例を示す図である。図１３８に示す属性情報ヘッダは、図１３７に示す属性情報ヘッダに対して、さらに、ｄｅｌｔａ＿Ｌａｙｅｒ＿ｐｒｅｓｅｎｔ＿ｆｌａｇを含む。
【０９８９】
ｄｅｌｔａ＿Ｌａｙｅｒ＿ｐｒｅｓｅｎｔ＿ｆｌａｇは、Ｄｅｌｔａ＿Ｌａｙｅｒがビットストリームに含まれるか否かを示すフラグである。例えば、値１は、Ｄｅｌｔａ＿Ｌａｙｅｒがビットストリームに含まれることを示し、値０は、Ｄｅｌｔａ＿Ｌａｙｅｒがビットストリームに含まれないことを示す。ｄｅｌｔａ＿Ｌａｙｅｒ＿ｐｒｅｓｅｎｔ＿ｆｌａｇが０の場合、三次元データ復号装置は、例えば、Ｄｅｌｔａ＿Ｌａｙｅｒを０として以降の復号処理を行う。
【０９９０】
なお、ここでは、ＱＰｂａｓｅ及びＤｅｌｔａ＿Ｌａｙｅｒにより量子化パラメータが示される例を述べたが、ＱＰｂａｓｅ及びＤｅｌｔａ＿Ｌａｙｅｒにより量子化ステップが示されてもよい。量子化ステップは、量子化パラメータから、予め定められた式又はテーブル等を用いて算出される。三次元データ符号化装置は、量子化処理において係数値を量子化ステップで除算する。三次元データ復号装置は、逆量子化処理において量子化値に量子化ステップを乗算することで係数値を復元する。
【０９９１】
次に、更に細かい単位で量子化パラメータを制御する例を説明する。図１３９は、ＬｏＤよりも細かい単位で量子化パラメータを制御する例を示す図である。
【０９９２】
例えば、三次元データ符号化装置は、属性情報をＬｏＤを用いて符号化する場合、ＬｏＤ階層毎のＤｅｌｔａ＿Ｌａｙｅｒに加え、ＡＤｅｌｔａ＿ＱＰと、ＡＤｅｌｔａ＿ＱＰを加算する三次元点の位置情報を表すＮｕｍＰｏｉｎｔＡＤｅｌｔａとを定義する。三次元データ符号化装置は、Ｄｅｌｔａ＿Ｌａｙｅｒ、ＡＤｅｌｔａ＿ＱＰ及びＮｕｍＰｏｉｎｔＡＤｅｌｔａに基づき量子化パラメータの値を変更しながら符号化を行う。
【０９９３】
また、三次元データ符号化装置は、符号化に用いたＡＤｅｌｔａ及びＮｕｍＰｏｉｎｔＡＤｅｌｔａをビットストリームのヘッダ等に付加してもよい。これにより、三次元データ符号化装置は、例えば、目標符号量と発生符号量とに応じて三次元点毎の量子化パラメータを変更しながら複数の三次元点の属性情報を符号化できる。これにより、三次元データ符号化装置は、最終的に目標符号量に近い符号量のビットストリームを生成できる。また、三次元データ復号装置は、ヘッダに含まれるＱＰｂａｓｅ、Ｄｅｌｔａ＿Ｌａｙｅｒ、及びＡＤｅｌｔａを復号して三次元データ符号化装置が使用した量子化パラメータを生成することで、ビットストリームを適切に復号できる。
【０９９４】
例えば、図１３９に示すように、Ｎ０番目の属性情報の量子化値ＱＰ４は、ＱＰ４＝ＱＰ３＋ＡＤｅｌｔａ＿ＱＰ［０］で算出される。
【０９９５】
また、図１３９に示す符号化／復号順とは逆の符号化／復号順が用いられてもよい。例えばＬｏＤ３、ＬｏＤ２、ＬｏＤ１、ＬｏＤ０の順に符号化／復号が行われてもよい。
【０９９６】
図１４０は、図１３９に示す例を用いる場合の属性情報ヘッダ（Ａｔｔｒｉｂｕｔｅ  ｈｅａｄｅｒ  ｉｎｆｏｒｍａｔｉｏｎ）のシンタックス例を示す図である。図１４０に示す属性情報ヘッダは、図１３７に示す属性情報ヘッダに対して、さらに、ＮｕｍＡＤｅｌｔａと、ＮｕｍＰｏｉｎｔＡＤｅｌｔａ［ｉ］と、ＡＤｅｌｔａ＿ＱＰ［ｉ］とを含む。
【０９９７】
ＮｕｍＡＤｅｌｔａは、ビットストリームに含まれるＡＤｅｌｔａ＿ＱＰの数を示す。ＮｕｍＰｏｉｎｔＡＤｅｌｔａ［ｉ］は、ＡＤｅｌｔａ＿ＱＰ［ｉ］を適用する三次元点Ａの識別番号を示す。例えば、ＮｕｍＰｏｉｎｔＡＤｅｌｔａ［ｉ］は、符号化／復号順で先頭の三次元点から三次元点Ａまでの三次元点の個数を示す。また、ＮｕｍＰｏｉｎｔＡＤｅｌｔａ［ｉ］は、三次元点Ａが属するＬｏＤ内の最初の三次元点から三次元点Ａまでの三次元点の個数を示してもよい。
【０９９８】
または、ＮｕｍＰｏｉｎｔＡＤｅｌｔａ［ｉ］は、ＮｕｍＰｏｉｎｔＡＤｅｌｔａ［ｉ−１］で示される三次元点の識別番号と、三次元点Ａの識別番号との差分値を示してもよい。これにより、ＮｕｍＰｏｉｎｔＡＤｅｌｔａ［ｉ］の値を小さくできるので、符号量を削減できる。
【０９９９】
ＡＤｅｌｔａ＿ＱＰ［ｉ］は、ＮｕｍＰｏｉｎｔＡＤｅｌｔａ［ｉ］で示される三次元点のΔＱＰの値を示す。つまり、ＡＤｅｌｔａ＿ＱＰ［ｉ］は、ＮｕｍＰｏｉｎｔＡＤｅｌｔａ［ｉ］で示される三次元点の量子化パラメータと、当該三次元点の直前の三次元点の量子化パラメータとの差分を示す。
【１０００】
図１４１は、図１３９に示す例を用いる場合の属性情報ヘッダ（Ａｔｔｒｉｂｕｔｅ  ｈｅａｄｅｒ  ｉｎｆｏｒｍａｔｉｏｎ）の別のシンタックス例を示す図である。図１４１に示す属性情報ヘッダは、図１４０に示す属性情報ヘッダに対して、さらに、ｄｅｌｔａ＿Ｌａｙｅｒ＿ｐｒｅｓｅｎｔ＿ｆｌａｇと、ａｄｄｉｔｉｏｎａｌ＿ｄｅｌｔａ＿ＱＰ＿ｐｒｅｓｅｎｔ＿ｆｌａｇとを含み、ＮｕｍＡＤｅｌｔａの代わりにＮｕｍＡＤｅｌｔａ＿ｍｉｎｕｓ１を含む。
【１００１】
ｄｅｌｔａ＿Ｌａｙｅｒ＿ｐｒｅｓｅｎｔ＿ｆｌａｇは、図１３８を用いて既に説明したものと同様である。
【１００２】
ａｄｄｉｔｉｏｎａｌ＿ｄｅｌｔａ＿ＱＰ＿ｐｒｅｓｅｎｔ＿ｆｌａｇは、ＡＤｅｌｔａ＿ＱＰがビットストリームに含まれるか否かを示すフラグである。例えば、値１は、ＡＤｅｌｔａ＿ＱＰがビットストリームに含まれることを示し、値０は、ＡＤｅｌｔａ＿ＱＰがビットストリームに含まれないことを示す。ａｄｄｉｔｉｏｎａｌ＿ｄｅｌｔａ＿ＱＰ＿ｐｒｅｓｅｎｔ＿ｆｌａｇが０の場合、三次元データ復号装置は、例えば、ＡＤｅｌｔａ＿ＱＰを０として以降の復号処理を行う。
【１００３】
ＮｕｍＡＤｅｌｔａ＿ｍｉｎｕｓ１は、ビットストリームに含まれるＡＤｅｌｔａ＿ＱＰの数−１を示す。このように、ＡＤｅｌｔａ＿ＱＰの数から１を減算した値をヘッダに付加することでヘッダの符号量を削減できる。例えば、三次元データ復号装置は、ＮｕｍＡＤｅｌｔａ＝ＮｕｍＡＤｅｌｔａ＿ｍｉｎｕｓ１＋１を算出する。ＡＤｅｌｔａ＿ＱＰ［ｉ］は、ｉ番目のＡＤｅｌｔａ＿ＱＰの値を示す。なお、ＡＤｅｌｔａ＿ＱＰ［ｉ］は、正の値だけでなく、負の値も設定可能であってもよい。
【１００４】
図１４２は、本実施の形態に係る三次元データ符号化処理のフローチャートである。まず、三次元データ符号化装置は、位置情報（ｇｅｏｍｅｔｒｙ）を符号化する（Ｓ７００１）。例えば、三次元データ符号化装置は、８分木表現を用いて符号化を行う。
【１００５】
次に、三次元データ符号化装置は、属性情報を変換する（Ｓ７００２）。例えば、三次元データ符号化装置は、位置情報の符号化後に、量子化等によって三次元点の位置が変化した場合に、変化後の三次元点に元の三次元点の属性情報を再割当てする。なお、三次元データ符号化装置は、位置の変化量に応じて属性情報の値を補間して再割当てを行ってもよい。例えば、三次元データ符号化装置は、変化後の三次元位置に近い変化前の三次元点をＮ個検出し、Ｎ個の三次元点の属性情報の値を、変化後の三次元位置から各Ｎ個の三次元までの距離に基づいて重み付け平均し、得られた値を変化後の三次元点の属性情報の値に決定する。また、三次元データ符号化装置は、量子化等によって２個以上の三次元点が同一の三次元位置に変化した場合は、その変化後の属性情報の値として、変化前の２個以上の三次元点における属性情報の平均値を割当ててもよい。
【１００６】
次に、三次元データ符号化装置は、属性情報を符号化する（Ｓ７００３）。例えば、三次元データ符号化装置は、複数の属性情報を符号化する場合は、複数の属性情報を順に符号化してもよい。例えば、三次元データ符号化装置は、属性情報として、色と反射率を符号化する場合は、色の符号化結果の後に反射率の符号化結果を付加したビットストリームを生成する。なお、ビットストリームに付加される属性情報の複数の符号化結果はどのような順番でもよい。
【１００７】
また、三次元データ符号化装置は、ビットストリーム内の各属性情報の符号化データの開始場所を示す情報をヘッダ等に付加してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ符号化装置は、複数の属性情報を並列に符号化し、符号化結果を１つのビットストリームに統合してもよい。これにより、三次元データ符号化装置は、高速に複数の属性情報を符号化できる。
【１００８】
図１４３は、属性情報符号化処理（Ｓ７００３）のフローチャートである。まず、三次元データ符号化装置は、ＬｏＤを設定する（Ｓ７０１１）。つまり、三次元データ符号化装置は、各三次元点を複数のＬｏＤのいずれかに割り当てる。
【１００９】
次に、三次元データ符号化装置は、ＬｏＤ単位のループを開始する（Ｓ７０１２）。つまり、三次元データ符号化装置は、ＬｏＤ毎にステップＳ７０１３〜Ｓ７０２１の処理を繰り返し行う。
【１０１０】
次に、三次元データ符号化装置は、三次元点単位のループを開始する（Ｓ７０１３）。つまり、三次元データ符号化装置は、三次元点毎にステップＳ７０１４〜Ｓ７０２０の処理を繰り返し行う。
【１０１１】
まず、三次元データ符号化装置は、処理対象の対象三次元点の予測値の算出に用いる、対象三次元点の周囲に存在する三次元点である複数の周囲点を探索する（Ｓ７０１４）。次に、三次元データ符号化装置は、複数の周囲点の属性情報の値の重み付け平均を算出し、得られた値を予測値Ｐに設定する（Ｓ７０１５）。次に、三次元データ符号化装置は、対象三次元点の属性情報と予測値との差分である予測残差を算出する（Ｓ７０１６）。次に、三次元データ符号化装置は、予測残差を量子化することで量子化値を算出する（Ｓ７０１７）。次に、三次元データ符号化装置は、量子化値を算術符号化する（Ｓ７０１８）。次に、三次元データ符号化装置は、ΔＱＰを決定する（Ｓ７０１９）。ここで決定されたΔＱＰは、後続の予測残差の量子化に用いられる量子化パラメータの決定に用いられる。
【１０１２】
また、三次元データ符号化装置は、量子化値を逆量子化することで逆量子化値を算出する（Ｓ７０２０）。次に、三次元データ符号化装置は、逆量子化値に予測値を加算することで復号値を生成する（Ｓ７０２１）。次に、三次元データ符号化装置は、三次元点単位のループを終了する（Ｓ７０２２）。また、三次元データ符号化装置は、ＬｏＤ単位のループを終了する（Ｓ７０２３）。
【１０１３】
図１４４は、ΔＱＰ決定処理（Ｓ７０１９）のフローチャートである。まず、三次元データ符号化装置は、次の符号化対象の対象三次元点Ａが属する階層ｉと符号化順Ｎとを算出する（Ｓ７０３１）。階層ｉは、例えばＬｏＤ階層、又はＲＡＨＴの階層を表す。
【１０１４】
次に、三次元データ符号化装置は、累計符号量に発生符号量を加算する（Ｓ７０３２）。ここで、累計符号量とは、対象三次元点の１フレーム分、１スライス分、又は１タイル分の累積符号量である。なお、累計符号量は、複数フレーム、複数スライス、又は複数タイルの符号量を加算した累積符号量であってもよい。また、属性情報の累積符号量が用いられてもよいし、位置情報と属性情報の両方を加算した累積符号量が用いられてもよい。
【１０１５】
次に、三次元データ符号化装置は、累計符号量が目標符号量×ＴＨ１より多いか否かを判定する（Ｓ７０３３）。ここで、目標符号量とは、対象三次元点の１フレーム分、１スライス分、又は１タイル分の目標符号量である。なお、目標符号量は、複数フレーム、複数スライス、又は複数タイルを加算した目標符号量であってもよい。また、属性情報の目標符号量が用いられてもよいし、位置情報と属性情報の両方を加算した目標符号量が用いられてもよい。
【１０１６】
累計符号量が目標符号量×ＴＨ１以下の場合（Ｓ７０３３でＮｏ）、三次元データ符号化装置は、累計符号量が目標符号量×ＴＨ２より多いか否かを判定する（Ｓ７０３６）。
【１０１７】
ここで、閾値ＴＨ１及びＴＨ２として、例えば０．０から１．０までの値が設定される。また、ＴＨ１＞ＴＨ２である。例えば、三次元データ符号化装置は、累積符号量が目標符号量×ＴＨ１の値を超えた場合（Ｓ７０３３でＹｅｓ）、早急に符号量を抑制する必要があると判断し、次の三次元点Ｎの量子化パラメータを大きくするためにＡＤｅｌｔａ＿ＱＰを値αに設定する。また、三次元データ符号化装置は、ＮｕｍＰｏｉｎｔＡＤｅｌｔａを値Ｎに設定し、ｊを１インクリメントする（Ｓ７０３４）。次に、三次元データ符号化装置は、ＡＤｅｌｔａ＿ＱＰ＝αとＮｕｍＰｏｉｎｔＡＤｅｌｔａ＝Ｎとをヘッダに付加する（Ｓ７０３５）。なお、値αは固定値であってもよいし、可変値であってもよい。例えば、三次元データ符号化装置は、累積符号量と目標符号量×ＴＨ１の差分の大きさによってαの値を決定してもよい。例えば、三次元データ符号化装置は、累積符号量と目標符号量×ＴＨ１の差分が大きいほどαの値を大きく設定する。これにより、三次元データ符号化装置は、累積符号量が目標符号量を超えないように量子化パラメータを制御できる。
【１０１８】
また、累積符号量が目標符号量×ＴＨ２の値を超えた場合（Ｓ７０３６でＹｅｓ）、三次元データ符号化装置は、対象三次元点Ａが属する階層ｉ又は次の階層ｉ＋１の量子化パラメータを大きくするためにＤｅｌｔａ＿Ｌａｙｅｒを値βに設定する（Ｓ７０３７）。例えば、三次元データ符号化装置は、対象三次元点Ａが階層ｉの先頭であれば、階層ｉのＤｅｌｔａ＿Ｌａｙｅｒ［ｉ］を値βに設定し、対象三次元点Ａが階層ｉの先頭以外であれば、階層ｉ＋１のＤｅｌｔａ＿Ｌａｙｅｒ［ｉ＋１］を値βに設定する。
【１０１９】
また、三次元データ符号化装置は、階層ｉ又は階層ｉ＋１のＤｅｌｔａ＿Ｌａｙｅｒ＝βをヘッダに付加する（Ｓ７０３８）。なお、値βは固定値であってもよいし、可変値であってもよい。例えば、三次元データ符号化装置は、累積符号量と目標符号量×ＴＨ２の差分の大きさによってβの値を決定してもよい。例えば、三次元データ符号化装置は、累積符号量と目標符号量×ＴＨ２の差分が大きいほどβの値を大きく設定する。これにより、三次元データ符号化装置は、累積符号量が目標符号量を超えないように量子化パラメータを制御できる。
【１０２０】
また、三次元データ符号化装置は、累積符号量が目標符号量を超えた場合、又は、超えそうな場合、量子化パラメータが、規格等でサポートされている値の最大値になるようにＡＤｅｌｔａ＿ＱＰ又はＤｅｌｔａ＿Ｌａｙｅｒの値を設定してもよい。これにより、三次元データ符号化装置は、三次元点Ａ以降、又は階層ｉ以降の量子化係数を０にすることで発生符号量の増加を抑制し、累積符号量が目標符号量を超えないように制御できる。
【１０２１】
また、三次元データ符号化装置は、累積符号量が目標符号量×ＴＨ３より小さければ、発生符号量が増加するように量子化パラメータを下げてもよい。例えば、三次元データ符号化装置は、Ｄｅｌｔａ＿Ｌａｙｅｒ又はＡｄｅｌｔａ＿ＱＰの値に累積符号量と目標符号量の差分に応じて負の値を設定することで量子化パラメータを下げてもよい。これにより、三次元データ符号化装置は、目標符号量に近いビットストリームを生成できる。
【１０２２】
図１４５は、本実施の形態に係る三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、ビットストリームから位置情報（ｇｅｏｍｅｔｒｙ）を復号する（Ｓ７００５）。例えば、三次元データ復号装置は、８分木表現を用いて復号を行う。
【１０２３】
次に、三次元データ復号装置は、ビットストリームから属性情報を復号する（Ｓ７００６）。例えば、三次元データ復号装置は、複数の属性情報を復号する場合は、複数の属性情報を順に復号してもよい。例えば、三次元データ復号装置は、属性情報として、色と反射率を復号する場合は、ビットストリームに付加されている順に従い、色の符号化結果、及び反射率の符号化結果を復号する。例えば、ビットストリームにおいて、色の符号化結果の後に、反射率の符号化結果が付加されている場合、三次元データ復号装置は、色の符号化結果を復号し、その後に反射率の符号化結果を復号する。なお、三次元データ復号装置は、ビットストリームに付加される属性情報の符号化結果をどのような順番で復号してもよい。
【１０２４】
また、三次元データ復号装置は、ビットストリーム内の各属性情報の符号化データの開始場所を示す情報をヘッダ等を復号することで取得してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ復号装置は、複数の属性情報を並列に復号し、復号結果を１つの三次元点群に統合してもよい。これにより、三次元データ復号装置は、高速に複数の属性情報を復号できる。
【１０２５】
図１４６は、属性情報復号処理（Ｓ７００６）のフローチャートである。まず、三次元データ復号装置は、ＬｏＤを設定する（Ｓ７０４１）。つまり、三次元データ復号装置は、復号された位置情報を有する複数の三次元点の各々を複数のＬｏＤのいずれかに割り当てる。例えば、この割り当て方法は、三次元データ符号化装置で用いられた割り当て方法と同じ方法である。
【１０２６】
次に、三次元データ復号装置は、ビットストリームからΔＱＰを復号する（Ｓ７０４２）。具体的には、三次元データ符号化装置は、ビットストリームのヘッダから、Ｄｅｌｔａ＿Ｌａｙｅｒ、ＡＤｅｌｔａ＿ＱＰ及びＮｕｍＰｏｉｎｔＡＤｅｌｔａを復号する。
【１０２７】
次に、三次元データ復号装置は、ＬｏＤ単位のループを開始する（Ｓ７０４３）。つまり、三次元データ復号装置は、ＬｏＤ毎にステップＳ７０４４〜Ｓ７０５０の処理を繰り返し行う。
【１０２８】
次に、三次元データ復号装置は、三次元点単位のループを開始する（Ｓ７０４４）。つまり、三次元データ復号装置は、三次元点毎にステップＳ７０４５〜Ｓ７０４９の処理を繰り返し行う。
【１０２９】
まず、三次元データ復号装置は、処理対象の対象三次元点の予測値の算出に用いる、対象三次元点の周囲に存在する三次元点である複数の周囲点を探索する（Ｓ７０４５）。次に、三次元データ復号装置は、複数の周囲点の属性情報の値の重み付け平均を算出し、得られた値を予測値Ｐに設定する（Ｓ７０４６）。なお、これらの処理は三次元データ符号化装置における処理と同様である。
【１０３０】
次に、三次元データ復号装置は、ビットストリームから量子化値を算術復号する（Ｓ７０４７）。また、三次元データ復号装置は、復号した量子化値を逆量子化することで逆量子化値を算出する（Ｓ７０４８）。この逆量子化では、ステップＳ７０４２で得られたΔＱＰを用いて算出された量子化パラメータが用いられる。
【１０３１】
次に、三次元データ復号装置は、逆量子化値に予測値を加算することで復号値を生成する（Ｓ７０４９）。次に、三次元データ復号装置は、三次元点単位のループを終了する（Ｓ７０５０）。また、三次元データ復号装置は、ＬｏＤ単位のループを終了する（Ｓ７０５１）。
【１０３２】
図１４７は、属性情報符号化部７０２３のブロック図である。属性情報符号化部７０２３は、ＬｏＤ設定部７０６１と、探索部７０６２と、予測部７０６３と、減算部７０６４と、量子化部７０６５と、逆量子化部７０６６と、再構成部７０６７と、メモリ７０６８と、ΔＱＰ算出部７０７０とを備える。
【１０３３】
ＬｏＤ設定部７０６１は、三次元点の位置情報を用いてＬｏＤを生成する。探索部７０６２は、ＬｏＤ生成結果と三次元点間の距離情報とを用いて各三次元点の近隣三次元点を探索する。予測部７０６３は、対象三次元点の属性情報の予測値を生成する。また、予測部７０６３は、０〜Ｍ−１の複数の予測モードに予測値を割り当て、複数の予測モードから使用する予測モードを選択する。
【１０３４】
減算部７０６４は、属性情報から予測値を減算することで予測残差を生成する。量子化部７０６５は、属性情報の予測残差を量子化する。逆量子化部７０６６は、量子化後の予測残差を逆量子化する。再構成部７０６７は、予測値と逆量子化後の予測残差とを加算することで復号値を生成する。メモリ７０６８は、復号済みの各三次元点の属性情報の値（復号値）を記憶する。メモリ７０６８に記憶される復号済みの三次元点の属性情報は、予測部７０６３による、符号化されていない三次元点の予測に利用される。
【１０３５】
算術符号化部７０６９は、量子化後の予測残差からＺｅｒｏＣｎｔを算出し、ＺｅｒｏＣｎｔを算術符号化する。また、算術符号化部７０６９は、量子化後の非ゼロの予測残差を算術符号化する。算術符号化部７０６９は、予測残差を算術符号化前に二値化してもよい。また、算術符号化部７０６９は、各種ヘッダ情報を生成及び符号化してもよい。また、算術符号化部７０６９は、予測部７０６３が符号化に使用した予測モードを示す予測モード情報（ＰｒｅｄＭｏｄｅ）を算術符号化してビットストリームに付加してもよい。
【１０３６】
ΔＱＰ算出部７０７０は、算術符号化部７０６９で得られた発生符号量と、予め定められた目標符号量とからＤｅｌｔａ＿Ｌａｙｅｒ、ＡＤｅｌｔａ＿ＱＰ及びＮｕｍＰｏｉｎｔＡＤｅｌｔａの値を決定する。決定されたＤｅｌｔａ＿Ｌａｙｅｒ、ＡＤｅｌｔａ＿ＱＰ及びＮｕｍＰｏｉｎｔＡＤｅｌｔａに基づく量子化パラメータを用いて、量子化部７０６５による量子化が行われる。また、算術符号化部７０６９は、Ｄｅｌｔａ＿Ｌａｙｅｒ、ＡＤｅｌｔａ＿ＱＰ及びＮｕｍＰｏｉｎｔＡＤｅｌｔａを算術符号化してビットストリームに付加する。
【１０３７】
図１４８は、属性情報復号部７０４３のブロック図である。属性情報復号部７０４３は、算術復号部７０７１と、ＬｏＤ設定部７０７２と、探索部７０７３と、予測部７０７４と、逆量子化部７０７５と、再構成部７０７６と、メモリ７０７７とを備える。
【１０３８】
算術復号部７０７１は、ビットストリームに含まれるＺｅｒｏＣｎｔと予測残差とを算術復号する。また、算術復号部７０７１は、各種ヘッダ情報を復号する。また、算術復号部７０７１は、ビットストリームから予測モード情報（ＰｒｅｄＭｏｄｅ）を算術復号し、得られた予測モード情報を予測部７０７４に出力する。また、算術復号部７０７１は、ビットストリームのヘッダからＤｅｌｔａ＿Ｌａｙｅｒ、ＡＤｅｌｔａ＿ＱＰ及びＮｕｍＰｏｉｎｔＡＤｅｌｔａを復号する。
【１０３９】
ＬｏＤ設定部７０７２は、復号された三次元点の位置情報を用いてＬｏＤを生成する。探索部７０７３は、ＬｏＤ生成結果と三次元点間の距離情報を用いて各三次元点の近隣三次元点を探索する。
【１０４０】
予測部７０７４は、復号対象の対象三次元点の属性情報の予測値を生成する。逆量子化部７０７５は、算術復号された予測残差を逆量子化する。具体的には、逆量子化部７０７５は、復号されたＤｅｌｔａ＿Ｌａｙｅｒ、ＡＤｅｌｔａ＿ＱＰ及びＮｕｍＰｏｉｎｔＡＤｅｌｔａに基づく量子化パラメータを用いて逆量子化を行う。
【１０４１】
再構成部７０７６は、予測値と逆量子化後の予測残差とを加算することで復号値を生成する。メモリ７０７７は、復号済みの各三次元点の属性情報の値（復号値）を記憶する。メモリ７０７７に記憶される復号済みの三次元点の属性情報は、予測部７０７４による、復号されていない三次元点の予測に利用される。
【１０４２】
以下、ＬｏＤ階層の代わりにＲＡＨＴの階層を用いる場合の例を説明する。図１４９は、ＲＡＨＴを用いた属性情報の符号化時に、更に細かい単位で量子化パラメータを制御する例を示す図である。例えば、三次元データ符号化装置は、属性情報をＲＡＨＴを用いて符号化する場合、ＲＡＨＴの階層毎のＤｅｌｔａ＿Ｌａｙｅｒに加え、ＡＤｅｌｔａ＿ＱＰと、ＡＤｅｌｔａ＿ＱＰを加算する三次元点の位置情報を表すＮｕｍＰｏｉｎｔＡＤｅｌｔａとを定義する。三次元データ符号化装置は、Ｄｅｌｔａ＿Ｌａｙｅｒ、ＡＤｅｌｔａ＿ＱＰ及びＮｕｍＰｏｉｎｔＡＤｅｌｔａに基づき量子化パラメータの値を変更しながら符号化を行う。
【１０４３】
また、三次元データ符号化装置は、符号化に用いたＡＤｅｌｔａ及びＮｕｍＰｏｉｎｔＡＤｅｌｔａをビットストリームのヘッダ等に付加してもよい。これにより、三次元データ符号化装置は、例えば、目標符号量と発生符号量とに応じて三次元点毎の量子化パラメータを変更しながら三次元点の属性情報を符号化できる。これにより、三次元データ符号化装置は、最終的に目標符号量に近い符号量のビットストリームを生成できる。また、三次元データ復号装置は、ヘッダに含まれるＱＰｂａｓｅ、Ｄｅｌｔａ＿Ｌａｙｅｒ及びＡＤｅｌｔａを復号して三次元データ符号化装置が使用した量子化パラメータを生成することで、ビットストリームを適切に復号できる。
【１０４４】
例えばＮ０番目の属性情報の量子化値ＱＰ４は、ＱＰ４＝ＱＰ３＋ＡＤｅｌｔａ＿ＱＰ［０］で算出される。また、ＱＰ４＝ＱＰｂａｓｅ＋ＡＤｅｌｔａ＿ＱＰ［０］のように各ＡＤｅｌｔａ＿ＱＰ［ｉ］はＱＰｂａｓｅからの差分値であってもよい。
【１０４５】
図１５０は、図１４９に示す例を用いる場合の属性情報ヘッダ（Ａｔｔｒｉｂｕｔｅ  ｈｅａｄｅｒ  ｉｎｆｏｒｍａｔｉｏｎ）のシンタックス例を示す図である。なお、図１５０に示す属性情報ヘッダには、図１４０に示す属性情報ヘッダと基本的には同様であり、ＬｏＤ階層がＲＡＨＴの階層に変更されている点が異なる。
【１０４６】
ＮｕｍＡＤｅｌｔａは、ビットストリームに含まれるＡＤｅｌｔａ＿ＱＰの数を示す。ＮｕｍＰｏｉｎｔＡＤｅｌｔａ［ｉ］は、  ＡＤｅｌｔａ＿ＱＰ［ｉ］を適用する三次元点Ａの識別番号を示す。例えば、例えば、ＮｕｍＰｏｉｎｔＡＤｅｌｔａ［ｉ］は、符号化／復号順で先頭の三次元点から三次元点Ａまでの三次元点の個数を示す。また、ＮｕｍＰｏｉｎｔＡＤｅｌｔａ［ｉ］は、三次元点Ａが属する階層内の最初の三次元点から三次元点Ａまでの三次元点の個数を示してもよい。
【１０４７】
または、ＮｕｍＰｏｉｎｔＡＤｅｌｔａ［ｉ］は、ＮｕｍＰｏｉｎｔＡＤｅｌｔａ［ｉ−１］で示される三次元点の識別番号と、三次元点Ａの識別番号との差分値を示してもよい。これにより、ＮｕｍＰｏｉｎｔＡＤｅｌｔａ［ｉ］の値を小さく設定できるので、符号量を削減できる。
【１０４８】
図１５１は、図１４９に示す例を用いる場合の属性情報ヘッダ（Ａｔｔｒｉｂｕｔｅ  ｈｅａｄｅｒ  ｉｎｆｏｒｍａｔｉｏｎ）の別のシンタックス例を示す図である。なお、図１５１に示す属性情報ヘッダには、図１４１に示す属性情報ヘッダと基本的には同様であり、ＬｏＤ階層がＲＡＨＴの階層に変更されている点が異なる。
【１０４９】
ａｄｄｉｔｉｏｎａｌ＿ｄｅｌｔａ＿ＱＰ＿ｐｒｅｓｅｎｔ＿ｆｌａｇは、ＡＤｅｌｔａ＿ＱＰがビットストリームに含まれるか否かを示すフラグである。例えば、値１は、ＡＤｅｌｔａ＿ＱＰがビットストリームに含まれることを示し、値０は、ＡＤｅｌｔａ＿ＱＰがビットストリームに含まれないことを示す。ａｄｄｉｔｉｏｎａｌ＿ｄｅｌｔａ＿ＱＰ＿ｐｒｅｓｅｎｔ＿ｆｌａｇが０の場合、三次元データ復号装置は、例えば、ＡＤｅｌｔａ＿ＱＰを０として以降の復号処理を行う。
【１０５０】
ＮｕｍＡＤｅｌｔａ＿ｍｉｎｕｓ１は、ビットストリームに含まれるＡＤｅｌｔａ＿ＱＰの数−１を示す。このように、ＡＤｅｌｔａ＿ＱＰの数から１を減算した値をヘッダに付加することでヘッダの符号量を削減できる。例えば、三次元データ復号装置は、ＮｕｍＡＤｅｌｔａ＝ＮｕｍＡＤｅｌｔａ＿ｍｉｎｕｓ１＋１を算出する。ＡＤｅｌｔａ＿ＱＰ［ｉ］は、ｉ番目のＡＤｅｌｔａ＿ＱＰの値を示す。なお、ＡＤｅｌｔａ＿ＱＰ［ｉ］は、正の値だけでなく、負の値も設定可能であってもよい。
【１０５１】
図１５２は、ＲＡＨＴを用いる場合の三次元データ符号化処理のフローチャートである。まず、三次元データ符号化装置は、位置情報（ｇｅｏｍｅｔｒｙ）を符号化する（Ｓ７０６１）。例えば、三次元データ符号化装置は、８分木表現を用いて符号化を行う。
【１０５２】
次に、三次元データ符号化装置は、属性情報を変換する（Ｓ７０６２）。例えば、三次元データ符号化装置は、位置情報の符号化後に、量子化等によって三次元点の位置が変化した場合に、変化後の三次元点に元の三次元点の属性情報を再割当てする。なお、三次元データ符号化装置は、位置の変化量に応じて属性情報の値を補間して再割当てを行ってもよい。例えば、三次元データ符号化装置は、変化後の三次元位置に近い変化前の三次元点をＮ個検出し、Ｎ個の三次元点の属性情報の値を、変化後の三次元位置から各Ｎ個の三次元までの距離に基づいて重み付け平均し、得られた値を変化後の三次元点の属性情報の値に設定する。また、三次元データ符号化装置は、量子化等によって２個以上の三次元点が同一の三次元位置に変化した場合は、その変化後の属性情報の値として、変化前の２個以上の三次元点における属性情報の平均値を割当ててもよい。
【１０５３】
次に。三次元データ符号化装置は、属性情報を符号化する（Ｓ７０６３）。例えば、三次元データ符号化装置は、複数の属性情報を符号化する場合は、複数の属性情報を順に符号化してもよい。例えば、三次元データ符号化装置は、属性情報として、色と反射率を符号化する場合は、色の符号化結果の後に反射率の符号化結果を付加したビットストリームを生成する。なお、ビットストリームに付加される属性情報の複数の符号化結果はどのような順番でもよい。
【１０５４】
また、三次元データ符号化装置は、ビットストリーム内の各属性情報の符号化データの開始場所を示す情報をヘッダ等に付加してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ符号化装置は、複数の属性情報を並列に符号化し、符号化結果を１つのビットストリームに統合してもよい。これにより、三次元データ符号化装置は、高速に複数の属性情報を符号化できる。
【１０５５】
図１５３は、属性情報符号化処理（Ｓ７０６３）のフローチャートである。まず、三次元データ符号化装置は、Ｈａａｒ変換により属性情報から符号化係数を生成する（Ｓ７０７１）。
【１０５６】
次に、三次元データ符号化装置は、符号化係数に量子化を適用する（Ｓ７０７２）。次に、三次元データ符号化装置は、量子化後の符号化係数を符号化することで符号化属性情報（ビットストリーム）を生成する（Ｓ７０７３）。
【１０５７】
次に、三次元データ復号装置は、ΔＱＰを決定する（Ｓ７０７４）。なお、ΔＱＰの決定方法は、ＬｏＤ階層を用いる場合のステップＳ７０１９と同様である。また、決定されたΔＱＰは、後続の符号化係数の量子化に用いられる量子化パラメータの決定に用いられる。
【１０５８】
また、三次元データ符号化装置は、量子化後の符号化係数に逆量子化を適用する（Ｓ７０７５）。次に、三次元データ復号装置は、逆量子化後の符号化係数に逆Ｈａａｒ変換を適用することで属性情報を復号する（Ｓ７０７６）。例えば、復号された属性情報は、後続の符号化において参照される。
【１０５９】
図１５４は、ＲＡＨＴを用いる場合の三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、ビットストリームから位置情報（ｇｅｏｍｅｔｒｙ）を復号する（Ｓ７０６５）。例えば、三次元データ復号装置は、８分木表現を用いて復号を行う。
【１０６０】
次に、三次元データ復号装置は、ビットストリームから属性情報を復号する（Ｓ７０６６）。例えば、三次元データ復号装置は、複数の属性情報を復号する場合は、複数の属性情報を順に復号してもよい。例えば、三次元データ復号装置は、属性情報として、色と反射率を復号する場合は、ビットストリームに付加されている順に従い、色の符号化結果、及び反射率の符号化結果を復号する。例えば、ビットストリームにおいて、色の符号化結果の後に、反射率の符号化結果が付加されている場合、三次元データ復号装置は、色の符号化結果を復号し、その後に反射率の符号化結果を復号する。なお、三次元データ復号装置は、ビットストリームに付加される属性情報の符号化結果をどのような順番で復号してもよい。
【１０６１】
また、三次元データ復号装置は、ビットストリーム内の各属性情報の符号化データの開始場所を示す情報をヘッダ等を復号することで取得してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ復号装置は、複数の属性情報を並列に復号し、復号結果を１つの三次元点群に統合してもよい。これにより、三次元データ復号装置は、高速に複数の属性情報を復号できる。
【１０６２】
図１５５は、属性情報復号処理（Ｓ７０６６）のフローチャートである。まず、三次元データ復号装置は、ビットストリームから符号化係数を復号する（Ｓ７０８１）。次に、三次元データ復号装置は、ビットストリームからΔＱＰを復号する（Ｓ７０８２）。具体的には、三次元データ符号化装置は、ビットストリームのヘッダから、Ｄｅｌｔａ＿Ｌａｙｅｒ、ＡＤｅｌｔａ＿ＱＰ及びＮｕｍＰｏｉｎｔＡＤｅｌｔａを復号する。
【１０６３】
次に、三次元データ復号装置は、符号化係数に逆量子化を適用する（Ｓ７０８３）。この逆量子化では、ステップＳ７０８２で得られたΔＱＰを用いて算出された量子化パラメータが用いられる。次に、三次元データ復号装置は、逆量子化後の符号化係数に逆Ｈａａｒ変換を適用することで属性情報を復号する（Ｓ７０８４）。
【１０６４】
図１５６は、ＲＡＨＴを用いる場合の属性情報符号化部７０２３のブロック図である。属性情報符号化部７０２３は、ソート部７０８１と、Ｈａａｒ変換部７０８２と、量子化部７０８３と、逆量子化部７０８４と、逆Ｈａａｒ変換部７０８５と、メモリ７０８６と、算術符号化部７０８７と、ΔＱＰ算出部７０８８とを備える。
【１０６５】
ソート部７０８１は、三次元点の位置情報を用いてモートン符号を生成し、複数の三次元点をモートン符号順にソートする。Ｈａａｒ変換部７０８２は、属性情報にＨａａｒ変換を適用することで符号化係数を生成する。量子化部７０８３は、属性情報の符号化係数を量子化する。
【１０６６】
逆量子化部７０８４は、量子化後の符号化係数を逆量子化する。逆Ｈａａｒ変換部７０８５は、符号化係数に逆Ｈａａｒ変換を適用する。メモリ７０８６は、復号済みの複数の三次元点の属性情報の値を記憶する。例えば、メモリ７０８６に記憶される復号済みの三次元点の属性情報は、符号化されていない三次元点の予測等に利用されてもよい。
【１０６７】
算術符号化部７０８７は、量子化後の符号化係数からＺｅｒｏＣｎｔを算出し、ＺｅｒｏＣｎｔを算術符号化する。また、算術符号化部７０８７は、量子化後の非ゼロの符号化係数を算術符号化する。算術符号化部７０８７は、符号化係数を算術符号化前に二値化してもよい。また、算術符号化部７０８７は、各種ヘッダ情報を生成及び符号化してもよい。
【１０６８】
ΔＱＰ算出部７０８８は、算術符号化部７０８７で得られた発生符号量と、予め定められた目標符号量とからＤｅｌｔａ＿Ｌａｙｅｒ、ＡＤｅｌｔａ＿ＱＰ及びＮｕｍＰｏｉｎｔＡＤｅｌｔａの値を決定する。決定されたＤｅｌｔａ＿Ｌａｙｅｒ、ＡＤｅｌｔａ＿ＱＰ及びＮｕｍＰｏｉｎｔＡＤｅｌｔａに基づく量子化パラメータを用いて、量子化部７０８３による量子化が行われる。また、算術符号化部７０８７は、Ｄｅｌｔａ＿Ｌａｙｅｒ、ＡＤｅｌｔａ＿ＱＰ及びＮｕｍＰｏｉｎｔＡＤｅｌｔａを算術符号化してビットストリームに付加する。
【１０６９】
図１５７は、ＲＡＨＴを用いる場合の属性情報復号部７０４３のブロック図である。属性情報復号部７０４３は、算術復号部７０９１と、逆量子化部７０９２と、逆Ｈａａｒ変換部７０９３と、メモリ７０９４とを備える。
【１０７０】
算術復号部７０９１は、ビットストリームに含まれるＺｅｒｏＣｎｔと符号化係数を算術復号する。なお、算術復号部７０９１は、各種ヘッダ情報を復号してもよい。また、算術復号部７０９１は、ビットストリームのヘッダからＤｅｌｔａ＿Ｌａｙｅｒ、ＡＤｅｌｔａ＿ＱＰ及びＮｕｍＰｏｉｎｔＡＤｅｌｔａを復号する。
【１０７１】
逆量子化部７０９２は、算術復号した符号化係数を逆量子化する。具体的には、逆量子化部７０９２は、復号されたＤｅｌｔａ＿Ｌａｙｅｒ、ＡＤｅｌｔａ＿ＱＰ及びＮｕｍＰｏｉｎｔＡＤｅｌｔａに基づく量子化パラメータを用いて逆量子化を行う。
【１０７２】
逆Ｈａａｒ変換部７０９３は、逆量子化後の符号化係数に逆Ｈａａｒ変換を適用する。メモリ７０９４は、復号済みの複数の三次元点の属性情報の値を記憶する。例えば、メモリ７０９４に記憶される復号済みの三次元点の属性情報は、復号されていない三次元点の予測に利用されてもよい。
【１０７３】
以下、本実施の形態の変形例について説明する。三次元データ符号化装置は、三次元点の属性情報の量子化パラメータを、新たな属性情報として三次元点毎に符号化してもよい。
【１０７４】
以下、この場合の三次元データ符号化装置のよる処理の例を説明する。三次元データ符号化装置は、図１４３に示すフローに従って、属性情報Ａ（例えば色）を量子化パラメータを算出しながら符号化する。この際に、三次元データ符号化装置は、各三次元点の新たな属性値として、使用した量子化パラメータを符号化する。この場合、三次元データ符号化装置は、三次元点毎に量子化パラメータの値を変更しながら符号化を行ってもよい。例えば、三次元データ符号化装置は、累積符号量が目標符号量×ＴＨ１の値を超えた場合、発生符号量を抑制するために、量子化パラメータの値を大きく設定してもよい。また、三次元データ符号化装置は、累積符号量が目標符号量×ＴＨ３の値より小さい場合、発生符号量を増やすために、量子化パラメータの値を小さく設定してもよい。
【１０７５】
三次元データ符号化装置は、属性情報Ａを符号化後、各三次元点に割当てた量子化パラメータを新たな属性情報Ａ’として符号化する。この際、三次元データ符号化装置は、量子化パラメータの情報量の欠落を防ぐためにロスレス（ｌｏｓｓｌｅｓｓ）符号化を適用してもよい。また、三次元データ符号化装置は、ヘッダ等に符号化した属性情報が量子化パラメータであることを示す情報を付加してもよい。これにより、三次元データ復号装置は、三次元データ符号化装置が使用した量子化パラメータを適切に復号できる。
【１０７６】
また、三次元データ符号化装置は、対象三次元の周囲のＮ個の三次元点を用いて属性情報の予測符号化を行う場合に、Ｎ＝１として量子化パラメータを符号化してもよい。これにより計算量を削減できる。
【１０７７】
次に、三次元データ復号装置による処理の例を説明する。まず、三次元データ復号装置は、ビットストリーム内の属性情報のうち、属性情報Ａ’を復号し、属性情報Ａの復号に用いる量子化パラメータを取得する。次に、三次元データ復号装置は、復号した量子化パラメータを用いて属性情報Ａを復号する。
【１０７８】
なお、三次元データ符号化装置は、上記量子化パラメータの代わりに、各三次元点の量子化パラメータの変化量であるΔＱＰを、新たな属性情報Ａ’として符号化してもよい。また、三次元データ符号化装置は、ΔＱＰが正及び負の値をとる場合、下記のように符号付ΔＱＰを正の値に変換してから符号化してもよい。符号付ΔＱＰ（ｄｅｌｔａＱＰ＿ｓ）が０未満の場合、符号無しΔＱＰ（ｄｅｌｔａＱＰ＿ｕ）は、−１−（２×ｄｅｌｔａＱＰ＿ｓ）に設定される。符号付ΔＱＰ（ｄｅｌｔａＱＰ＿ｓ）が０以上の場合、符号無しΔＱＰ（ｄｅｌｔａＱＰ＿ｕ）は、２×ｄｅｌｔａＱＰ＿ｓに設定される。
【１０７９】
また、三次元データ符号化装置は、属性情報毎に符号化に用いた量子化パラメータを属性情報として符号化してもよい。例えば、三次元データ符号化装置は、色の属性情報Ａの量子化パラメータを属性情報Ａ’として符号化し、反射率の属性情報Ｂの量子化パラメータを属性情報Ｂ’として符号化してもよい。これにより、属性情報毎に量子化パラメータを切替えることができる。例えば優先度が高い属性情報の量子化パラメータを小さく設定し、優先度が低い属性情報の量子化パラメータを大きく設定することで、優先度が高い属性情報を保護しつつ、全体の符号量を削減できる。
【１０８０】
また、三次元データ符号化装置は、三次元点の属性情報の予測残差を量子化して符号化する際に、ｄｅｌｔａ＿Ｌａｙｅｒ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ及びａｄｄｉｔｉｏｎａｌ＿ｄｅｌｔａ＿ＱＰ＿ｐｒｅｓｅｎｔ＿ｆｌａｇなどによって、Ｄｅｌｔａ＿Ｌａｙｅｒ及びＡＤｅｌｔａ＿ＱＰがヘッダに設定された場合は、三次元点の重要度を示すＱＷ（Ｑｕａｎｔｉｚａｔｉｏｎ  ｗｅｉｇｈｔ）の値を適用しないようにしてもよい。例えば、ＱＷが適用される場合には、ＱＷが大きい（重要度が高い）ほど、量子化パラメータは小さく設定される。これにより、予測等の内部処理によって決定される重要度によって量子化を行うか、ユーザがヘッダで設定した値に応じて量子化を行うかを切替えることができるので、ユーザの用途に応じて両者を使い分けることができる。
【１０８１】
また、三次元データ符号化装置は、ＱＷ（Ｑｕａｎｔｉｚａｔｉｏｎ  ｗｅｉｇｈｔ）の値を適用するか否かを示すフラグをヘッダに付加してもよい。これにより、Ｄｅｌｔａ＿Ｌａｙｅｒ及びＡＤｅｌｔａ＿ＱＰの値とＱＷとを組合わせて量子化を行うか否かを切替えることができるので、ユーザの用途に応じて両者を使い分けることができる。
【１０８２】
また、三次元データ符号化装置は、ＲＡＨＴ等を用いて、三次元点の属性情報の変換係数を量子化して符号化する際に、ｄｅｌｔａ＿Ｌａｙｅｒ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ及びａｄｄｉｔｉｏｎａｌ＿ｄｅｌｔａ＿ＱＰ＿ｐｒｅｓｅｎｔ＿ｆｌａｇなどによって、Ｄｅｌｔａ＿Ｌａｙｅｒ及びＡＤｅｌｔａ＿ＱＰがヘッダに設定された場合は、ＱＷ（Ｑｕａｎｔｉｚａｔｉｏｎ  ｗｅｉｇｈｔ）の値を適用しないようにしてもよい。これにより、予測等の内部処理によって決定される重要度によって量子化を行うか、ユーザがヘッダで設定した値に応じて量子化を行うかを切替えることができるので、ユーザの用途に応じて両者を使い分けることができる。また、三次元データ符号化装置は、ＱＷ（Ｑｕａｎｔｉｚａｔｉｏｎ  ｗｅｉｇｈｔ）の値を適用するか否かを示すフラグをヘッダに付加してもよい。これにより、Ｄｅｌｔａ＿Ｌａｙｅｒ及びＡＤｅｌｔａ＿ＱＰの値とＱＷとを組合わせて量子化を行うか否かを切替えることができるので、ユーザの用途に応じて両者を使い分けることができる。
【１０８３】
図１５８は、この場合の属性情報ヘッダ（Ａｔｔｒｉｂｕｔｅ  ｈｅａｄｅｒ  ｉｎｆｏｒｍａｔｉｏｎ）のシンタックス例を示す図である。図１５８に示す属性情報ヘッダは、図１４１に示す属性情報ヘッダに対して、さらに、ｄｅｆａｕｌｔ＿ｄｅｌｔａ＿Ｌａｙｅｒ＿ｐｒｅｓｅｎｔ＿ｆｌａｇと、ｄｅｆａｕｌｔ＿ｄｅｌｔａ＿Ｌａｙｅｒ＿ｉｎｄｅｘと、ｄｅｆａｕｌｔ＿ａｄｄｉｔｉｏｎａｌ＿ｄｅｌｔａ＿ＱＰ＿ｐｒｅｓｅｎｔ＿ｆｌａｇと、ｄｅｆａｕｌｔ＿ａｄｄｉｔｉｏｎａｌ＿ｄｅｌｔａ＿ＱＰ＿ｉｎｄｅｘとを含む。
【１０８４】
ｄｅｆａｕｌｔ＿ｄｅｌｔａ＿Ｌａｙｅｒ＿ｐｒｅｓｅｎｔ＿ｆｌａｇは、規格等で定義した初期設定のＤｅｌｔａ＿Ｌａｙｅｒの値を使用するか否かを示すフラグである。例えば、値１は、初期設定のＤｅｌｔａ＿Ｌａｙｅｒを使用すること示す。値０は、初期設定のＤｅｌｔａ＿Ｌａｙｅｒを使用しないことを示す。値０の場合、三次元データ復号装置は、例えば、Ｄｅｌｔａ＿Ｌａｙｅｒを０として以降の復号処理を行う。
【１０８５】
ｄｅｆａｕｌｔ＿ｄｅｌｔａ＿Ｌａｙｅｒ＿ｉｎｄｅｘは、規格等で定義した１個以上の初期設定のＤｅｌｔａ＿Ｌａｙｅｒのうち、使用するＤｅｌｔａ＿Ｌａｙｅｒを識別するための情報である。例えば、ｄｅｆａｕｌｔ＿ｄｅｌｔａ＿Ｌａｙｅｒ＿ｉｎｄｅｘは、下記のように定義される。
【１０８６】
ｄｅｆａｕｌｔ＿ｄｅｌｔａ＿Ｌａｙｅｒ＿ｉｎｄｅｘ＝０の場合、全ての階層のＤｅｌｔａ＿Ｌａｙｅｒが１に設定される。つまり、階層が増える毎に量子化パラメータの値が１増加する。ｄｅｆａｕｌｔ＿ｄｅｌｔａ＿Ｌａｙｅｒ＿ｉｎｄｅｘ＝１の場合、全ての階層のＤｅｌｔａ＿Ｌａｙｅｒが２に設定される。つまり、階層が増える毎に量子化パラメータの値が２増加する。
【１０８７】
このように規格等で初期設定のＤｅｌｔａ＿Ｌａｙｅｒを定義することで、Ｄｅｌｔａ＿Ｌａｙｅｒの値をヘッダに付加せずに量子化パラメータを変更できるので、ヘッダの符号量を削減できる。
【１０８８】
ｄｅｆａｕｌｔ＿ａｄｄｉｔｉｏｎａｌ＿ｄｅｌｔａ＿ＱＰ＿ｐｒｅｓｅｎｔ＿ｆｌａｇは、規格等で定義した初期設定のＡＤｅｌｔａ＿ＱＯの値を使用するか否かを示すフラグである。例えば、値１は、初期設定のＡＤｅｌｔａ＿ＱＰを使用することを示す。値０は、初期設定のＡＤｅｌｔａ＿ＱＰを使用しないことを示す。値０の場合、三次元データ復号装置は、例えば、ＡＤｅｌｔａ＿ＱＰを０として以降の復号処理を行う。
【１０８９】
ｄｅｆａｕｌｔ＿ａｄｄｉｔｉｏｎａｌ＿ｄｅｌｔａ＿ＱＰ＿ｉｎｄｅｘは、規格等で定義した１個以上の初期設定のＡＤｅｌｔａ＿ＱＰのうち、使用するＡＤｅｌｔａ＿ＱＰを識別するための情報である。例えば、ｄｅｆａｕｌｔ＿ａｄｄｉｔｉｏｎａｌ＿ｄｅｌｔａ＿ＱＰ＿ｉｎｄｅｘは、下記のように定義される。
【１０９０】
ｄｅｆａｕｌｔ＿ａｄｄｉｔｉｏｎａｌ＿ｄｅｌｔａ＿ＱＰ＿ｉｎｄｅｘ＝０の場合、三次元点数Ｎ個毎にＡＤｅｌｔａ＿ＱＰが１に設定される。つまりＮ個の三次元点を符号化又は復号する毎に量子化パラメータの値が１増加する。なお、三次元データ符号化装置は、Ｎ個を示す情報を別途ヘッダに付加してもよい。
【１０９１】
ｄｅｆａｕｌｔ＿ａｄｄｉｔｉｏｎａｌ＿ｄｅｌｔａ＿ＱＰ＿ｉｎｄｅｘ＝１の場合、三次元点数Ｎ個毎にＡＤｅｌｔａ＿ＱＰが２に設定される。つまりＮ個の三次元点を符号化又は復号する毎に量子化パラメータの値が２増加する。なお、三次元データ符号化装置は、Ｎ個を示す情報を別途ヘッダに付加してもよい。
【１０９２】
このように規格等で初期設定のＡＤｅｌｔａ＿ＱＰを定義することで、ＡＤｅｌｔａ＿ＱＰの値をヘッダに付加せずに量子化パラメータを変更できるので、ヘッダの符号量を削減できる。
【１０９３】
以上のように、本実施の形態に係る三次元データ符号化装置は、図１５９に示す処理を行う。三次元データ符号化装置は、点群データに含まれる複数の三次元点の複数の属性情報から複数の係数値（例えば予測残差又は符号化係数）を算出する（Ｓ７０９１）。次に、三次元データ符号化装置は、複数の係数値の各々を量子化することで複数の量子化値を生成する（Ｓ７０９２）。次に、三次元データ符号化装置は、複数の量子化値を含むビットストリームを生成する（Ｓ７０９３）。複数の係数値は、複数の階層（例えばＬｏＤ階層又はＲＡＨＴの階層）のいずれかに属する。三次元データ符号化装置は、量子化（Ｓ７０９２では、複数の係数値の各々を、当該係数値が属する階層用の量子化パラメータを用いて量子化する。ビットストリームは、基準量子化パラメータを示す第１情報（例えばＱＰｂａｓｅ）と、基準量子化パラメータから複数の階層用の複数の量子化パラメータを算出するための複数の第２情報（例えばＤｅｌｔａ＿ｌａｙｅｒ［ｉ］）とを含む。
【１０９４】
これによれば、三次元データ符号化装置は、階層毎に量子化パラメータを切り替えることができるので、適切に符号化を行える。また、三次元データ符号化装置は、基準量子化パラメータを示す第１情報と、基準量子化パラメータから複数の量子化パラメータを算出するための複数の第２情報とを符号化することで符号化効率を向上できる。
【１０９５】
例えば、複数の第２情報の各々は、基準量子化パラメータと当該階層用の量子化パラメータとの差分を示す。
【１０９６】
例えば、ビットストリームは、さらに、複数の第２情報がビットストリームに含まれるか否かを示す第１フラグ（ｄｅｌｔａ＿ｌａｙｅｒ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ）を含む。
【１０９７】
例えば、ビットストリームは、さらに、ビットストリームに含まれる複数の第２情報の数を示す第３情報（例えばＮｕｍＬａｙｅｒ）を含む。
【１０９８】
例えば、複数の三次元点は、複数の三次元点の位置情報に基づき複数の階層（例えばＬｏＤ）のいずれかに分類される。
【１０９９】
例えば、複数の係数値は、複数の属性情報の各々を高周波成分と低周波成分とに分けて複数の階層（例えばＲＡＨＴの階層）に階層化することにより生成される。
【１１００】
例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
【１１０１】
また、本実施の形態に係る三次元データ復号装置は、図１６０に示す処理を行う。三次元データ復号装置は、ビットストリームに含まれる、（ｉ）基準量子化パラメータを示す第１情報（例えばＱＰｂａｓｅ）と、（ｉｉ）基準量子化パラメータから複数の階層用の複数の量子化パラメータを算出するための複数の第２情報（例えばＤｅｌｔａ＿ｌａｙｅｒ［ｉ］）と、を用いて複数の階層用の量子化パラメータを算出する（Ｓ７０９５）。
【１１０２】
次に、三次元データ復号装置は、ビットストリームに含まれる複数の量子化値の各々を、算出された複数の階層用の量子化パラメータのうち当該量子化値が属する階層用の量子化パラメータを用いて逆量子化することで複数の係数値（例えば予測残差又は符号化係数）を生成する（Ｓ７０９６）。次に、三次元データ復号装置は、複数の係数値から、点群データに含まれる複数の三次元点の複数の属性情報を算出する（Ｓ７０９７）。
【１１０３】
これによれば、三次元データ復号装置は、階層毎に量子化パラメータを切り替えることができるので、適切に復号を行える。また、三次元データ復号装置は、基準量子化パラメータを示す第１情報と、基準量子化パラメータから複数の量子化パラメータを算出するための複数の第２情報とを用いられることで符号化効率が向上されたビットストリームを適切に復号できる。
【１１０４】
例えば、複数の第２情報の各々は、基準量子化パラメータと当該階層用の量子化パラメータとの差分を示す。
【１１０５】
例えば、ビットストリームは、さらに、複数の第２情報がビットストリームに含まれるか否かを示す第１フラグ（ｄｅｌｔａ＿ｌａｙｅｒ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ）を含む。
【１１０６】
例えば、ビットストリームは、さらに、ビットストリームに含まれる複数の第２情報の数を示す第３情報（例えばＮｕｍＬａｙｅｒ）を含む。
【１１０７】
例えば、複数の三次元点は、複数の三次元点の位置情報に基づき複数の階層（例えばＬｏＤ）のいずれかに分類される。
【１１０８】
例えば、複数の係数値は、複数の属性情報の各々を高周波成分と低周波成分とに分けて複数の階層（例えばＲＡＨＴの階層）に階層化することにより生成される。
【１１０９】
例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
【１１１０】
（実施の形態１４）
本実施の形態では、ＬｏＤ階層の生成方法について説明する。図１６１は、ＬｏＤ階層の生成例を示す図である。図１６１は、三次元点数Ｎ＝１６の場合の２分木構造を用いたＬｏＤ生成方法を示す。
【１１１１】
まず、三次元データ符号化装置は、ｎｏｄｅ［０］内の複数の三次元点を軸αの値（位置座標）を用いて分割する。ここで、軸αとは、例えばｘ軸、ｙ軸又はｚ軸である。具体的には、三次元データ符号化装置は、三次元点の軸αにおける値の中間値（ｍｅｄｉａｎ［０］）を算出し、ｍｅｄｉａｎ［０］を用いて分割を行ってもよい。例えば、三次元データ符号化装置は、ｎｏｄｅ［０］内の複数の三次元点を、各三次元点の軸αの値がｍｅｄｉａｎ［０］以下の集合Ａとｍｅｄｉａｎ［０］より値が大きい集合Ｂに分割し、集合Ａをｎｏｄｅ［１］に割当て、集合Ｂをｎｏｄｅ［２］に割当てる。これにより、ｎｏｄｅ［０］内の複数の三次元点をほぼ均等に分割できる。
【１１１２】
また、三次元データ符号化装置は、ｎｏｄｅ［０］内の三次元点の軸αの値の平均値（ｍｅａｎ［０］）を算出し、ｍｅａｎ［０］の値に最も近い軸αの値を持つ三次元点ｉをＬｏＤ０に割当ててもよい。これにより、ｎｏｄｅ［０］内の複数の三次元からの距離が比較的近い三次元点をＬｏＤ０に割当てることができるので、各三次元点の属性値の予測精度を向上できる。
【１１１３】
ｎｏｄｅ［０］と同様に、ｎｏｄｅ［１］とｎｏｄｅ［２］の各々に含まれる複数の三次元点を軸βの値を用いて分割する。ここで軸αと軸βとは同じでもよいし、異なってもよい。また、三次元データ符号化装置は、ｎｏｄｅ［１］内の三次元点の軸βにおける値の中間値（ｍｅｄｉａｎ［１］）と、ｎｏｄｅ［２］内の三次元点の軸βにおける値の中間値（ｍｅｄｉａｎ［２］）とを算出する。三次元データ符号化装置は、ｍｅｄｉａｎ［１］を用いてｎｏｄｅ［１］を分割することでｎｏｄｅ［３］とｎｏｄｅ［４］を生成する。三次元データ符号化装置は、ｍｅｄｉａｎ［２］を用いてｎｏｄｅ［２］を分割することでｎｏｄｅ［５］とｎｏｄｅ［６］を生成する。
【１１１４】
また、三次元データ符号化装置は、ｎｏｄｅ［１］とｎｏｄｅ［２］の軸βにおける値の平均値（ｍｅａｎ［１］及びｍｅａｎ［２］）を算出し、それぞれの平均値に最も近い軸βの値を持つ三次元点ｅ及びｍをＬｏＤ１に割当てる。
【１１１５】
三次元データ符号化装置は、ｎｏｄｅ［０］、ｎｏｄｅ［１］及びｎｏｄｅ［２］と同様にｎｏｄｅ［３］からｎｏｄｅ［６］のｍｅａｎを算出し、各ｍｅａｎの値に最も近い三次元点ｃ、ｆ、ｊ及びｎをＬｏＤ２に割当てる。また、三次元データ符号化装置は、ＬｏＤ０からＬｏＤ２のいずれにも割当てられなかった三次元点をＬｏＤ３に割当てる。これにより、三次元データ符号化装置は、全ての三次元点をＬｏＤに割当てることができる。
【１１１６】
三次元データ符号化装置は、ｎｏｄｅ内の各三次元点が位置情報（ｘ，ｙ，ｚ）を持つ場合、ｘ、ｙ、ｚのどの軸でｎｏｄｅ内の三次元点の分割を行うかを決定する。例えば、三次元データ符号化装置は、ｎｏｄｅ内の三次元点の各軸の分散値を算出し、分散値が最も大きい軸を用いて分割する。これにより、三次元データ符号化装置は、ｎｏｄｅ内の三次元点を、その特徴に応じて適切に分割できる。なお、三次元データ符号化装置は、ｎｏｄｅ毎に分割する軸を切替えてもよい。これにより、三次元データ符号化装置は、各ｎｏｄｅ内の三次元点の特徴に応じて適切に分割を行うことができる。
【１１１７】
上記方法により、各三次元点からの距離が平均的に近い三次元点を上位のＬｏＤに割当てることができるので、ＬｏＤを用いた属性情報の予測精度を高め、符号化効率を向上できる。
【１１１８】
ここで、三次元点の属性値を２分木を用いて符号化する場合、三次元データ符号化装置は、ルートノード（ｒｏｏｔ  ｎｏｄｅ）であるｎｏｄｅ［０］からどの階層まで分割を行うか否かを表す値ｂｔＤｅｐｔｈを下記（式Ｌ１）又は（式Ｌ２）を用いて算出してもよい。
【１１１９】
【数６】
2020162495.tif 000008
【１１２０】
ここで、Ｎは三次元点数であり、ｕｐは制御パラメータである。例えば、ｕｐ＝１であってもよい。ｕｐの値を変えることで、三次元点を２分木のどの階層まで分割するかを制御できる。なお、三次元データ符号化装置は、ｕｐの値をビットストリームに付加してもよい。これにより、三次元データ復号装置は、符号化時と同一の階層まで階層を分割することができるので、ビットストリームを正しく復号できる。
【１１２１】
なお、（式Ｌ１）におけるｒｏｕｎｄ（ｘ）は値ｘを四捨五入した値を返す関数である。また、ｍａｘ（ｘ，ｙ）は値ｘとｙのうち、大きい方の値を返す関数である。つまり、ｂｉｔＤｅｐｔｈは、ｌｏｇ２（ｒｏｕｎｄ（Ｎ／２））−ｕｐの値が負の場合、値０になる（値０にクリップされる）。
【１１２２】
図１６２〜図１６６は、階層の分割例を示す図である。図１６２に示すように、Ｎ＝８、ｕｐ＝１の場合、ｂｔＤｅｐｔｈ＝１まで分割が行われる。図１６３に示すように、Ｎ＝８、ｕｐ＝０の場合、ｂｔＤｅｐｔｈ＝２まで分割が行われる。
【１１２３】
また、三次元データ符号化装置は、ｂｔＤｅｐｔｈの最小値を０にクリップすることで、Ｎが２以下の場合でも適切にＬｏＤを生成できる。図１６４に示すように、Ｎ＝２、ｕｐ＝１の場合、ｂｔＤｅｐｔｈ＝０まで分割が行われる。図１６４に示す例では、ｎｏｄｅ［０］は２点を含む。三次元データ符号化装置は、この２点のうち、平均値に近い点をＬｏＤ０に割当て、そうでない点をＬｏＤ１に割当ててもよい。
【１１２４】
図１６５に示すように、Ｎ＝１、ｕｐ＝０の場合、ｂｔＤｅｐｔｈ＝０まで分割が行われる。図１６５に示す例では、ｎｏｄｅ［０］は１点を含む。三次元データ符号化装置は、この１点をＬｏＤ０に割当てる。
【１１２５】
なお、本実施の形態では、ｂｔＤｅｐｔｈの最小値を０にクリップすることで、Ｎが２以下の場合でも適切にＬｏＤに三次元点を割当てる例を示したが、必ずしもこれに限らない。例えば、Ｎが２以下の場合は、三次元データ符号化装置は、２分木を用いたＬｏＤ生成を適用しなくてもよい。また、三次元データ符号化装置は、Ｎが２以下の場合は、２点をＬｏＤ０に割当ててもよい。また、Ｎが２以下の場合は、三次元データ符号化装置は、一方の三次元点をＬｏＤ０に、もう一方の三次元点をＬｏＤ１に割当ててＬｏＤを生成してもよい。また、Ｎが２以下の場合は、三次元データ符号化装置は、ｕｐ＝０に設定することでｂｔＤｅｐｔｈの値を０に設定してもよい。
【１１２６】
また、本実施の形態では、各ｂｔＤｅｐｔｈの階層毎にＬｏＤに三次元点を割り振る例を示したが、必ずしもこれに限らず、例えば、三次元データ符号化装置は、特定のｂｔＤｅｐｔｈ毎にＬｏＤに三次元点を割当ててもよい。例えば、三次元データ符号化装置は、ｂｔＤｅｐｔｈの値が偶数の場合は三次元点をＬｏＤに割り当て、奇数の場合はＬｏＤ割り当てをスキップしてもよい。または、三次元データ符号化装置は、ｂｔＤｅｐｔｈの値が奇数の場合は三次元点をＬｏＤに割り当て、偶数の場合はＬｏＤ割り当てをスキップしてもよい。これにより、三次元データ符号化装置は、階層毎に平均値及び平均値に近い三次元点を探す必要がないので、処理量を削減できる。
【１１２７】
例えば、図１６６に示すように、Ｎ＝１６、ｕｐ＝１の場合、ｂｔＤｅｐｔｈ＝２まで分割が行われる。ｂｔＤｅｐｔｈ＝０に対しては、ｂｔＤｅｐｔｈが偶数であり、三次元データ符号化装置は、ＬｏＤ０にｎｏｄｅ［０］の平均値に近い三次元点を割当てる。ｂｔＤｅｐｔｈ＝１に対しては、ｂｔＤｅｐｔｈが奇数であり、三次元データ符号化装置は、割り当てをスキップする。ｂｔＤｅｐｔｈ＝２に対しては、ｂｔＤｅｐｔｈが偶数であり、三次元データ符号化装置は、ＬｏＤ１に各ｎｏｄｅの平均値に近い三次元点を割当てる。三次元データ符号化装置は、ＬｏＤ０及びＬｏＤ１のいずれにも割当てられなかった三次元点をＬｏＤ２に割当てる。
【１１２８】
図１６７は、本実施の形態に係る三次元データ符号化処理のフローチャートである。まず、三次元データ符号化装置は、位置情報（ｇｅｏｍｅｔｒｙ）を符号化する（Ｓ７１０１）。例えば、三次元データ符号化装置は、８分木表現を用いて符号化を行う。
【１１２９】
次に、三次元データ符号化装置は、属性情報を変換する（Ｓ７１０２）。例えば、三次元データ符号化装置は、位置情報の符号化後に、量子化等によって三次元点の位置が変化した場合に、変化後の三次元点に元の三次元点の属性情報を再割当てする。なお、三次元データ符号化装置は、位置の変化量に応じて属性情報の値を補間して再割当てを行ってもよい。例えば、三次元データ符号化装置は、変化後の三次元位置に近い変化前の三次元点をＮ個検出し、Ｎ個の三次元点の属性情報の値を、変化後の三次元位置から各Ｎ個の三次元までの距離に基づいて重み付け平均し、得られた値を変化後の三次元点の属性情報の値に決定する。また、三次元データ符号化装置は、量子化等によって２個以上の三次元点が同一の三次元位置に変化した場合は、その変化後の属性情報の値として、変化前の２個以上の三次元点における属性情報の平均値を割当ててもよい。
【１１３０】
次に、三次元データ符号化装置は、属性情報を符号化する（Ｓ７１０３）。例えば、三次元データ符号化装置は、複数の属性情報を符号化する場合は、複数の属性情報を順に符号化してもよい。例えば、三次元データ符号化装置は、属性情報として、色と反射率を符号化する場合は、色の符号化結果の後に反射率の符号化結果を付加したビットストリームを生成する。なお、ビットストリームに付加される属性情報の複数の符号化結果はどのような順番でもよい。
【１１３１】
また、三次元データ符号化装置は、ビットストリーム内の各属性情報の符号化データの開始場所を示す情報をヘッダ等に付加してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ符号化装置は、複数の属性情報を並列に符号化し、符号化結果を１つのビットストリームに統合してもよい。これにより、三次元データ符号化装置は、高速に複数の属性情報を符号化できる。
【１１３２】
図１６８は、属性情報符号化処理（Ｓ７１０３）のフローチャートである。まず、三次元データ符号化装置は、ＬｏＤを設定する（Ｓ７１１１）。つまり、三次元データ符号化装置は、各三次元点を複数のＬｏＤのいずれかに割り当てる。
【１１３３】
次に、三次元データ符号化装置は、ＬｏＤ単位のループを開始する（Ｓ７１１２）。つまり、三次元データ符号化装置は、ＬｏＤ毎にステップＳ７１１３〜Ｓ７１２１の処理を繰り返し行う。
【１１３４】
次に、三次元データ符号化装置は、三次元点単位のループを開始する（Ｓ７１１３）。つまり、三次元データ符号化装置は、三次元点毎にステップＳ７１１４〜Ｓ７１２０の処理を繰り返し行う。
【１１３５】
まず、三次元データ符号化装置は、処理対象の対象三次元点の予測値の算出に用いる、対象三次元点の周囲に存在する三次元点である複数の周囲点を探索する（Ｓ７１１４）。次に、三次元データ符号化装置は、複数の周囲点の属性情報の値の重み付け平均を算出し、得られた値を予測値Ｐに設定する（Ｓ７１１５）。次に、三次元データ符号化装置は、対象三次元点の属性情報と予測値との差分である予測残差を算出する（Ｓ７１１６）。次に、三次元データ符号化装置は、予測残差を量子化することで量子化値を算出する（Ｓ７１１７）。次に、三次元データ符号化装置は、量子化値を算術符号化する（Ｓ７１１８）。
【１１３６】
また、三次元データ符号化装置は、量子化値を逆量子化することで逆量子化値を算出する（Ｓ７１１９）。次に、三次元データ符号化装置は、逆量子化値に予測値を加算することで復号値を生成する（Ｓ７１２０）。次に、三次元データ符号化装置は、三次元点単位のループを終了する（Ｓ７１２１）。また、三次元データ符号化装置は、ＬｏＤ単位のループを終了する（Ｓ７１２２）。
【１１３７】
図１６９は、ＬｏＤ設定処理（Ｓ７１１１）のフローチャートである。まず、三次元データ符号化装置は、三次元点数ＮからｂｔＤｅｐｔｈを算出する（Ｓ７１３１）。例えば、三次元データ符号化装置は、上記（式Ｌ１）又は（式Ｌ２）を用いてｂｔＤｅｐｔｈを算出する。なお、三次元データ符号化装置は、三次元点数Ｎがある一定数以下の場合は、２分木によるＬｏＤ生成を行わなくてもよい。例えば、三次元データ符号化装置は、Ｎが２以下の場合は、Ｎ個の三次元点をＬｏＤ０に割当ててもよい。これにより、Ｎが一定数以下の場合のＬｏＤ生成処理を高速化できる。
【１１３８】
次に、三次元データ符号化装置は、ｄｅｐｔｈ＝０を設定する（Ｓ７１３２）。次に、三次元データ符号化装置は、ｎｕｍ＿ｎｏｄｅ＝１＜＜ｄｅｐｔｈを設定する（Ｓ７１３３）。次に、三次元データ符号化装置は、ｎ＝０を設定する（Ｓ７１３４）。次に、三次元データ符号化装置は、ｄｅｐｔｈ番目の階層のｎ番目のｎｏｄｅＡを処理対象のノードに決定する（Ｓ７１３５）。
【１１３９】
次に、三次元データ符号化装置は、ｎｏｄｅＡに含まれる三次元点の分割軸αを決定する（Ｓ７１３６）。例えば、三次元点が（ｘ，ｙ，ｚ）の３軸を持つ場合、三次元データ符号化装置は、三次元点の各軸の分散値を算出し、分散値が大きい軸を分割軸αに決定する。これにより、三次元点を効率よく分割できる。
【１１４０】
次に、三次元データ符号化装置は、ｎｏｄｅＡに含まれる三次元点の軸αの値の平均値を算出する（Ｓ７１３７）。次に、三次元データ符号化装置は、ｎｏｄｅＡ内の三次元点からｎｏｄｅＡの平均値に最も近い軸αの値を持つ三次元点を抽出し、抽出した三次元点をｄｅｐｔｈ番目に対応するＬｏＤに追加する（Ｓ７１３８）。
【１１４１】
次に、三次元データ符号化装置は、ｎｏｄｅＡに含まれる三次元点の軸αの値の中間値を算出し、中間値を用いてｎｏｄｅＡ内の三次元点を分割し、分割した三次元点をｄｅｐｔｈ＋１番目の階層の２つのｎｏｄｅに割当てる（Ｓ７１３９）。次に、三次元データ符号化装置は、ｎ＝ｎ＋１を設定する（Ｓ７１４０）。
【１１４２】
ｎ＜ｎｕｍ＿ｎｏｄｅである場合（Ｓ７１４１でＹｅｓ）、三次元データ符号化装置は、再度ステップＳ７１３５以降の処理を行う。
【１１４３】
ｎ＜ｎｕｍ＿ｎｏｄｅでない場合（Ｓ７１４１でＮｏ）、三次元データ符号化装置は、ｄｅｐｔｈ＝ｄｅｐｔｈ＋１を設定する（Ｓ７１４２）。ｄｅｐｔｈ＝＝ｂｔＤｅｐｔｈでない場合（Ｓ７１４３でＮｏ）、三次元データ符号化装置は、再度ステップＳ７１３３以降の処理を行う。
【１１４４】
ｄｅｐｔｈ＝＝ｂｔＤｅｐｔｈである場合（Ｓ７１４３でＹｅｓ）、三次元データ符号化装置は、各ｄｅｐｔｈのＬｏＤに割当たっていない三次元点を最下層のＬｏＤに割当てる（Ｓ７１４４）。
【１１４５】
図１７０は、本実施の形態に係る三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、ビットストリームから位置情報（ｇｅｏｍｅｔｒｙ）を復号する（Ｓ７１５１）。例えば、三次元データ復号装置は、８分木表現を用いて復号を行う。
【１１４６】
次に、三次元データ復号装置は、ビットストリームから属性情報を復号する（Ｓ７１５２）。例えば、三次元データ復号装置は、複数の属性情報を復号する場合は、複数の属性情報を順に復号してもよい。例えば、三次元データ復号装置は、属性情報として、色と反射率を復号する場合は、ビットストリームに付加されている順に従い、色の符号化結果、及び反射率の符号化結果を復号する。例えば、ビットストリームにおいて、色の符号化結果の後に、反射率の符号化結果が付加されている場合、三次元データ復号装置は、色の符号化結果を復号し、その後に反射率の符号化結果を復号する。なお、三次元データ復号装置は、ビットストリームに付加される属性情報の符号化結果をどのような順番で復号してもよい。
【１１４７】
また、三次元データ復号装置は、ビットストリーム内の各属性情報の符号化データの開始場所を示す情報をヘッダ等を復号することで取得してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ復号装置は、複数の属性情報を並列に復号し、復号結果を１つの三次元点群に統合してもよい。これにより、三次元データ復号装置は、高速に複数の属性情報を復号できる。
【１１４８】
図１７１は、属性情報復号処理（Ｓ７１５２）のフローチャートである。まず、三次元データ復号装置は、ＬｏＤを設定する（Ｓ７１６１）。つまり、三次元データ復号装置は、復号された位置情報を有する複数の三次元点の各々を複数のＬｏＤのいずれかに割り当てる。例えば、この割り当て方法は、図１６９に示す、三次元データ符号化装置で用いられた割り当て方法と同じ方法である。
【１１４９】
次に、三次元データ復号装置は、ＬｏＤ単位のループを開始する（Ｓ７１６２）。つまり、三次元データ復号装置は、ＬｏＤ毎にステップＳ７１６３〜Ｓ７１６９の処理を繰り返し行う。
【１１５０】
次に、三次元データ復号装置は、三次元点単位のループを開始する（Ｓ７１６３）。つまり、三次元データ復号装置は、三次元点毎にステップＳ７１６４〜Ｓ７１６８の処理を繰り返し行う。
【１１５１】
まず、三次元データ復号装置は、処理対象の対象三次元点の予測値の算出に用いる、対象三次元点の周囲に存在する三次元点である複数の周囲点を探索する（Ｓ７１６４）。次に、三次元データ復号装置は、複数の周囲点の属性情報の値の重み付け平均を算出し、得られた値を予測値Ｐに設定する（Ｓ７１６５）。なお、これらの処理は三次元データ符号化装置における処理と同様である。
【１１５２】
次に、三次元データ復号装置は、ビットストリームから量子化値を算術復号する（Ｓ７１６６）。また、三次元データ復号装置は、復号した量子化値を逆量子化することで逆量子化値を算出する（Ｓ７１６７）。次に、三次元データ復号装置は、逆量子化値に予測値を加算することで復号値を生成する（Ｓ７１６８）。次に、三次元データ復号装置は、三次元点単位のループを終了する（Ｓ７１６９）。また、三次元データ復号装置は、ＬｏＤ単位のループを終了する（Ｓ７１７０）。
【１１５３】
図１７２は、三次元データ符号化装置に含まれる属性情報符号化部７１００のブロック図である。属性情報符号化部７１００は、ＬｏＤ設定部７１０１と、探索部７１０２と、予測部７１０３と、減算部７１０４と、量子化部７１０５と、逆量子化部７１０６と、再構成部７１０７と、メモリ７１０８とを備える。
【１１５４】
ＬｏＤ設定部７１０１は、三次元点の位置情報を用いてＬｏＤを生成する。例えば、ＬｏＤ設定部７１０１は、三次元点の距離情報を用いたＬｏＤ生成方法と、本実施の形態で説明した２分木を利用したＬｏＤ生成方法とをフラグ等（切替フラグ）を用いて切替えてもよい。ここで、三次元点の距離情報を用いたＬｏＤ生成方法とは、階層毎に距離の閾値を設定し、各階層に含まれる複数の三次元点の距離が当該階層の閾値以上になるように、階層構造を生成する方法である。具体的には、下層ほど閾値が小さく設定されることで、下層ほど三次元点が密に配置される。
【１１５５】
なお、三次元データ符号化装置は、切替フラグをヘッダに付加してもよい。これにより三次元データ復号装置は、ヘッダに付加された切替フラグを復号することで、ＬｏＤ生成方法を切替えることができるので、正しくビットストリームを復号できる。なお、三次元データ符号化装置は、切替フラグをヘッダに付加せず、規格のプロファイル（ｐｒｏｆｉｌｅ）又はレベル（ｌｅｖｅｌ）等でどの方式を用いるかが規定されてもよい。これによりヘッダの符号量を削減できる。
【１１５６】
探索部７１０２は、ＬｏＤ生成結果と三次元点間の距離情報とを用いて各三次元点の近隣三次元点を探索する。予測部７１０３は、対象三次元点の属性情報の予測値を生成する。また、予測部７１０３は、０〜Ｍ−１の複数の予測モードに予測値を割り当て、複数の予測モードから使用する予測モードを選択する。
【１１５７】
減算部７１０４は、属性情報から予測値を減算することで予測残差を生成する。量子化部７１０５は、属性情報の予測残差を量子化する。逆量子化部７１０６は、量子化後の予測残差を逆量子化する。再構成部７１０７は、予測値と逆量子化後の予測残差とを加算することで復号値を生成する。メモリ７１０８は、復号済みの各三次元点の属性情報の値（復号値）を記憶する。メモリ７１０８に記憶される復号済みの三次元点の属性情報は、予測部７１０３による、符号化されていない三次元点の予測に利用される。
【１１５８】
算術符号化部７１０９は、量子化後の予測残差からＺｅｒｏＣｎｔを算出し、ＺｅｒｏＣｎｔを算術符号化する。また、算術符号化部７１０９は、量子化後の非ゼロの予測残差を算術符号化する。算術符号化部７１０９は、予測残差を算術符号化前に二値化してもよい。また、算術符号化部７１０９は、各種ヘッダ情報を生成及び符号化してもよい。また、算術符号化部７１０９は、予測部７１０３が符号化に使用した予測モードを示す予測モード情報（ＰｒｅｄＭｏｄｅ）を算術符号化してビットストリームに付加してもよい。
【１１５９】
図１７３は、三次元データ復号装置に含まれる属性情報復号部７１１０のブロック図である。属性情報復号部７１１０は、算術復号部７１１１と、ＬｏＤ設定部７１１２と、探索部７１１３と、予測部７１１４と、逆量子化部７１１５と、再構成部７１１６と、メモリ７１１７とを備える。
【１１６０】
算術復号部７１１１は、ビットストリームに含まれるＺｅｒｏＣｎｔと予測残差とを算術復号する。また、算術復号部７１１１は、各種ヘッダ情報を復号する。また、算術復号部７１１１は、ビットストリームから予測モード情報（ＰｒｅｄＭｏｄｅ）を算術復号し、得られた予測モード情報を予測部７１１４に出力する。
【１１６１】
ＬｏＤ設定部７１１２は、復号された三次元点の位置情報を用いてＬｏＤを生成する。例えば、ＬｏＤ設定部７１１２は、三次元点の距離情報を用いたＬｏＤ生成方法と、本実施の形態で説明した２分木を利用したＬｏＤ生成方法のどちらを使用したかを示すフラグ等（切替フラグ）をビットストリームから復号し、切替部フラグで示される方法でＬｏＤを生成してもよい。なお、三次元データ復号装置は、規格のプロファイル又はレベル等で規定されたＬｏＤ生成方式を用いてもよい。
【１１６２】
探索部７１１３は、ＬｏＤ生成結果と三次元点間の距離情報を用いて各三次元点の近隣三次元点を探索する。予測部７１１４は、復号対象の対象三次元点の属性情報の予測値を生成する。逆量子化部７１１５は、算術復号された予測残差を逆量子化する。再構成部７１１６は、予測値と逆量子化後の予測残差とを加算することで復号値を生成する。メモリ７１１７は、復号済みの各三次元点の属性情報の値（復号値）を記憶する。メモリ７１１７に記憶される復号済みの三次元点の属性情報は、予測部７１１４による、復号されていない三次元点の予測に利用される。
【１１６３】
以上、本開示の実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等について説明したが、本開示は、この実施の形態に限定されるものではない。
【１１６４】
また、上記実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等に含まれる各処理部は典型的には集積回路であるＬＳＩとして実現される。これらは個別に１チップ化されてもよいし、一部又は全てを含むように１チップ化されてもよい。
【１１６５】
また、集積回路化はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、又はＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【１１６６】
また、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、ＣＰＵまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
【１１６７】
また、本開示は、三次元データ符号化装置及び三次元データ復号装置等により実行される三次元データ符号化方法又は三次元データ復号方法等として実現されてもよい。
【１１６８】
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
【１１６９】
また、フローチャートにおける各ステップが実行される順序は、本開示を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時（並列）に実行されてもよい。
【１１７０】
以上、一つまたは複数の態様に係る三次元データ符号化装置及び三次元データ復号装置等について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
【産業上の利用可能性】
【１１７１】
本開示は、三次元データ符号化装置及び三次元データ復号装置に適用できる。
【符号の説明】
【１１７２】
１００、４００  三次元データ符号化装置
１０１、２０１、４０１、５０１  取得部
１０２、４０２  符号化領域決定部
１０３  分割部
１０４、６４４  符号化部
１１１  三次元データ
１１２、２１１、４１３、４１４、５１１、６３４  符号化三次元データ
２００、５００  三次元データ復号装置
２０２  復号開始ＧＯＳ決定部
２０３  復号ＳＰＣ決定部
２０４、６２５  復号部
２１２、５１２、５１３  復号三次元データ
４０３  ＳＷＬＤ抽出部
４０４  ＷＬＤ符号化部
４０５  ＳＷＬＤ符号化部
４１１  入力三次元データ
４１２  抽出三次元データ
５０２  ヘッダ解析部
５０３  ＷＬＤ復号部
５０４  ＳＷＬＤ復号部
６２０、６２０Ａ  三次元データ作成装置
６２１、６４１  三次元データ作成部
６２２  要求範囲決定部
６２３  探索部
６２４、６４２  受信部
６２６  合成部
６３１、６５１  センサ情報
６３２  第１三次元データ
６３３  要求範囲情報
６３５  第２三次元データ
６３６  第３三次元データ
６４０  三次元データ送信装置
６４３  抽出部
６４５  送信部
６５２  第５三次元データ
６５４  第６三次元データ
７００  三次元情報処理装置
７０１  三次元マップ取得部
７０２  自車検知データ取得部
７０３  異常ケース判定部
７０４  対処動作決定部
７０５  動作制御部
７１１  三次元マップ
７１２  自車検知三次元データ
８１０  三次元データ作成装置
８１１  データ受信部
８１２、８１９  通信部
８１３  受信制御部
８１４、８２１  フォーマット変換部
８１５  センサ
８１６  三次元データ作成部
８１７  三次元データ合成部
８１８  三次元データ蓄積部
８２０  送信制御部
８２２  データ送信部
８３１、８３２、８３４、８３５、８３６、８３７  三次元データ
８３３  センサ情報
９０１  サーバ
９０２、９０２Ａ、９０２Ｂ、９０２Ｃ  クライアント装置
１０１１、１１１１  データ受信部
１０１２、１０２０、１１１２、１１２０  通信部
１０１３、１１１３  受信制御部
１０１４、１０１９、１１１４、１１１９  フォーマット変換部
１０１５  センサ
１０１６、１１１６  三次元データ作成部
１０１７  三次元画像処理部
１０１８、１１１８  三次元データ蓄積部
１０２１、１１２１  送信制御部
１０２２、１１２２  データ送信部
１０３１、１０３２、１１３５  三次元マップ
１０３３、１０３７、１１３２  センサ情報
１０３４、１０３５、１１３４  三次元データ
１１１７  三次元データ合成部
１２０１  三次元マップ圧縮／復号処理部
１２０２  センサ情報圧縮／復号処理部
１２１１  三次元マップ復号処理部
１２１２  センサ情報圧縮処理部
１３００  三次元データ符号化装置
１３０１  分割部
１３０２  減算部
１３０３  変換部
１３０４  量子化部
１３０５、１４０２  逆量子化部
１３０６、１４０３  逆変換部
１３０７、１４０４  加算部
１３０８、１４０５  参照ボリュームメモリ
１３０９、１４０６  イントラ予測部
１３１０、１４０７  参照スペースメモリ
１３１１、１４０８  インター予測部
１３１２、１４０９  予測制御部
１３１３  エントロピー符号化部
１４００  三次元データ復号装置
１４０１  エントロピー復号部
３０００  三次元データ符号化装置
３００１  位置情報符号化部
３００２  属性情報再割り当て部
３００３  属性情報符号化部
３０１０  三次元データ復号装置
３０１１  位置情報復号部
３０１２  属性情報復号部
５３００  第１の符号化部
５３０１  分割部
５３０２  位置情報符号化部
５３０３  属性情報符号化部
５３０４  付加情報符号化部
５３０５  多重化部
５３１１  タイル分割部
５３１２  スライス分割部
５３２１、５３３１、５３５１、５３６１  量子化値算出部
５３２２、５３３２  エントロピ符号化部
５３２３  量子化部
５３３３  逆量子化部
５３４０  第１の復号部
５３４１  逆多重化部
５３４２  位置情報復号部
５３４３  属性情報復号部
５３４４  付加情報復号部
５３４５  結合部
５３５２、５３６２  エントロピ復号部
６６００  属性情報符号化部
６６０１  ソート部
６６０２  Ｈａａｒ変換部
６６０３  量子化部
６６０４、６６１２  逆量子化部
６６０５、６６１３  逆Ｈａａｒ変換部
６６０６、６６１４  メモリ
６６０７  算術符号化部
６６１０  属性情報復号部
６６１１  算術復号部
７００１  減算部
７００２  変換部
７００３  変換行列保持部
７００４  量子化部
７００５  量子化制御部
７００６  エントロピー符号化部
７０１１  エントロピー復号部
７０１２  逆量子化部
７０１３  量子化制御部
７０１４  逆変換部
７０１５  変換行列保持部
７０１６  加算部
７０２０  三次元データ符号化装置
７０２１  分割部
７０２２  位置情報符号化部
７０２３  属性情報符号化部
７０２４  付加情報符号化部
７０２５  多重化部
７０３１  タイル分割部
７０３２  スライス分割部
７０３５  変換部
７０３６  量子化部
７０３７  エントロピー符号化部
７０４０  三次元データ復号装置
７０４１  逆多重化部
７０４２  位置情報復号部
７０４３  属性情報復号部
７０４４  付加情報復号部
７０４５  結合部
７０５１  エントロピー復号部
７０５２  逆量子化部
７０５３  逆変換部
７０６１、７０７２  ＬｏＤ設定部
７０６２、７０７３  探索部
７０６３、７０７４  予測部
７０６４  減算部
７０６５、７０８３  量子化部
７０６６、７０７５、７０８４、７０９２  逆量子化部
７０６７、７０７６  再構成部
７０６８、７０７７、７０８６、７０９４  メモリ
７０６９、７０８７  算術符号化部
７０７０、７０８８  ΔＱＰ算出部
７０７１、７０９１  算術復号部
７０８１  ソート部
７０８２  Ｈａａｒ変換部
７０８５、７０９３  逆Ｈａａｒ変換部
７１００  属性情報符号化部
７１０１、７１１２  ＬｏＤ設定部
７１０２、７１１３  探索部
７１０３、７１１４  予測部
７１０４  減算部
７１０５  量子化部
７１０６、７１１５  逆量子化部
７１０７、７１１６  再構成部
７１０８、７１１７  メモリ
７１０９  算術符号化部
７１１０  属性情報復号部
７１１１  算術復号部
【図１】
2020162495.tif 000009
【図２】
2020162495.tif 000010
【図３】
2020162495.tif 000011
【図４】
2020162495.tif 000012
【図５】
2020162495.tif 000013
【図６】
2020162495.tif 000014
【図７】
2020162495.tif 000015
【図８】
2020162495.tif 000016
【図９】
2020162495.tif 000017
【図１０】
2020162495.tif 000018
【図１１】
2020162495.tif 000019
【図１２】
2020162495.tif 000020
【図１３】
2020162495.tif 000021
【図１４】
2020162495.tif 000022
【図１５】
2020162495.tif 000023
【図１６】
2020162495.tif 000024
【図１７】
2020162495.tif 000025
【図１８】
2020162495.tif 000026
【図１９】
2020162495.tif 000027
【図２０】
2020162495.tif 000028
【図２１】
2020162495.tif 000029
【図２２】
2020162495.tif 000030
【図２３】
2020162495.tif 000031
【図２４】
2020162495.tif 000032
【図２５】
2020162495.tif 000033
【図２６】
2020162495.tif 000034
【図２７】
2020162495.tif 000035
【図２８】
2020162495.tif 000036
【図２９】
2020162495.tif 000037
【図３０】
2020162495.tif 000038
【図３１】
2020162495.tif 000039
【図３２】
2020162495.tif 000040
【図３３】
2020162495.tif 000041
【図３４】
2020162495.tif 000042
【図３５】
2020162495.tif 000043
【図３６】
2020162495.tif 000044
【図３７】
2020162495.tif 000045
【図３８】
2020162495.tif 000046
【図３９】
2020162495.tif 000047
【図４０】
2020162495.tif 000048
【図４１】
2020162495.tif 000049
【図４２】
2020162495.tif 000050
【図４３】
2020162495.tif 000051
【図４４】
2020162495.tif 000052
【図４５】
2020162495.tif 000053
【図４６】
2020162495.tif 000054
【図４７】
2020162495.tif 000055
【図４８】
2020162495.tif 000056
【図４９】
2020162495.tif 000057
【図５０】
2020162495.tif 000058
【図５１】
2020162495.tif 000059
【図５２】
2020162495.tif 000060
【図５３】
2020162495.tif 000061
【図５４】
2020162495.tif 000062
【図５５】
2020162495.tif 000063
【図５６】
2020162495.tif 000064
【図５７】
2020162495.tif 000065
【図５８】
2020162495.tif 000066
【図５９】
2020162495.tif 000067
【図６０】
2020162495.tif 000068
【図６１】
2020162495.tif 000069
【図６２】
2020162495.tif 000070
【図６３】
2020162495.tif 000071
【図６４】
2020162495.tif 000072
【図６５】
2020162495.tif 000073
【図６６】
2020162495.tif 000074
【図６７】
2020162495.tif 000075
【図６８】
2020162495.tif 000076
【図６９】
2020162495.tif 000077
【図７０】
2020162495.tif 000078
【図７１】
2020162495.tif 000079
【図７２】
2020162495.tif 000080
【図７３】
2020162495.tif 000081
【図７４】
2020162495.tif 000082
【図７５】
2020162495.tif 000083
【図７６】
2020162495.tif 000084
【図７７】
2020162495.tif 000085
【図７８】
2020162495.tif 000086
【図７９】
2020162495.tif 000087
【図８０】
2020162495.tif 000088
【図８１】
2020162495.tif 000089
【図８２】
2020162495.tif 000090
【図８３】
2020162495.tif 000091
【図８４】
2020162495.tif 000092
【図８５】
2020162495.tif 000093
【図８６】
2020162495.tif 000094
【図８７】
2020162495.tif 000095
【図８８】
2020162495.tif 000096
【図８９】
2020162495.tif 000097
【図９０】
2020162495.tif 000098
【図９１】
2020162495.tif 000099
【図９２】
2020162495.tif 000100
【図９３】
2020162495.tif 000101
【図９４】
2020162495.tif 000102
【図９５】
2020162495.tif 000103
【図９６】
2020162495.tif 000104
【図９７】
2020162495.tif 000105
【図９８】
2020162495.tif 000106
【図９９】
2020162495.tif 000107
【図１００】
2020162495.tif 000108
【図１０１】
2020162495.tif 000109
【図１０２】
2020162495.tif 000110
【図１０３】
2020162495.tif 000111
【図１０４】
2020162495.tif 000112
【図１０５】
2020162495.tif 000113
【図１０６】
2020162495.tif 000114
【図１０７】
2020162495.tif 000115
【図１０８】
2020162495.tif 000116
【図１０９】
2020162495.tif 000117
【図１１０】
2020162495.tif 000118
【図１１１】
2020162495.tif 000119
【図１１２】
2020162495.tif 000120
【図１１３】
2020162495.tif 000121
【図１１４】
2020162495.tif 000122
【図１１５】
2020162495.tif 000123
【図１１６】
2020162495.tif 000124
【図１１７】
2020162495.tif 000125
【図１１８】
2020162495.tif 000126
【図１１９】
2020162495.tif 000127
【図１２０】
2020162495.tif 000128
【図１２１】
2020162495.tif 000129
【図１２２】
2020162495.tif 000130
【図１２３】
2020162495.tif 000131
【図１２４】
2020162495.tif 000132
【図１２５】
2020162495.tif 000133
【図１２６】
2020162495.tif 000134
【図１２７】
2020162495.tif 000135
【図１２８】
2020162495.tif 000136
【図１２９】
2020162495.tif 000137
【図１３０】
2020162495.tif 000138
【図１３１】
2020162495.tif 000139
【図１３２】
2020162495.tif 000140
【図１３３】
2020162495.tif 000141
【図１３４】
2020162495.tif 000142
【図１３５】
2020162495.tif 000143
【図１３６】
2020162495.tif 000144
【図１３７】
2020162495.tif 000145
【図１３８】
2020162495.tif 000146
【図１３９】
2020162495.tif 000147
【図１４０】
2020162495.tif 000148
【図１４１】
2020162495.tif 000149
【図１４２】
2020162495.tif 000150
【図１４３】
2020162495.tif 000151
【図１４４】
2020162495.tif 000152
【図１４５】
2020162495.tif 000153
【図１４６】
2020162495.tif 000154
【図１４７】
2020162495.tif 000155
【図１４８】
2020162495.tif 000156
【図１４９】
2020162495.tif 000157
【図１５０】
2020162495.tif 000158
【図１５１】
2020162495.tif 000159
【図１５２】
2020162495.tif 000160
【図１５３】
2020162495.tif 000161
【図１５４】
2020162495.tif 000162
【図１５５】
2020162495.tif 000163
【図１５６】
2020162495.tif 000164
【図１５７】
2020162495.tif 000165
【図１５８】
2020162495.tif 000166
【図１５９】
2020162495.tif 000167
【図１６０】
2020162495.tif 000168
【図１６１】
2020162495.tif 000169
【図１６２】
2020162495.tif 000170
【図１６３】
2020162495.tif 000171
【図１６４】
2020162495.tif 000172
【図１６５】
2020162495.tif 000173
【図１６６】
2020162495.tif 000174
【図１６７】
2020162495.tif 000175
【図１６８】
2020162495.tif 000176
【図１６９】
2020162495.tif 000177
【図１７０】
2020162495.tif 000178
【図１７１】
2020162495.tif 000179
【図１７２】
2020162495.tif 000180
【図１７３】
2020162495.tif 000181
【国際調査報告】
2020162495.tif 000182
2020162495.tif 000183
2020162495.tif 000184
2020162495.tif 000185