(57)【要約】  本開示は、３Ｄデータの部分的な復号をより容易に行うことができるようにする画像処理装置および方法に関する。３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報を生成する。また、３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報に基づいて、ユーザにより指定された条件を満たすブロックを選択し、その選択されたブロック内の３Ｄデータの符号化データを復号する。本開示は、例えば、画像処理装置、電子機器、画像処理方法、またはプログラム等に適用することができる。
2020071116.tif 000002
【特許請求の範囲】
【請求項１】
３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報を生成する管理情報生成部
を備える画像処理装置。
【請求項２】
前記管理情報は、前記ブロックに関する情報であるブロック情報を含む
請求項１に記載の画像処理装置。
【請求項３】
前記ブロック情報は、前記ブロックの識別情報、前記ブロックの位置、前記ブロックのサイズ、および前記ブロックのデータの位置の内の少なくといずれか１つを含む
請求項２に記載の画像処理装置。
【請求項４】
前記管理情報は、前記ブロック内の前記３Ｄデータの位置情報に関する情報である位置情報を含む
請求項１に記載の画像処理装置。
【請求項５】
前記位置情報は、前記３Ｄデータの解像度、前記３Ｄデータが表す前記３次元構造、および前記３Ｄデータの信頼度の内の少なくともいずれか１つを含む
請求項４に記載の画像処理装置。
【請求項６】
前記管理情報は、前記ブロック内の前記３Ｄデータの属性情報に関する情報である属性情報を含む
請求項１に記載の画像処理装置。
【請求項７】
前記属性情報は、前記３Ｄデータの色、法線、および反射率の内の少なくともいずれか１つを含む
請求項６に記載の画像処理装置。
【請求項８】
前記管理情報は、前記３Ｄデータの取得に関する情報である取得情報を含む
請求項１に記載の画像処理装置。
【請求項９】
前記取得情報は、前記３Ｄデータの取得時刻、前記３Ｄデータの計算手法、前記３Ｄデータの取得に用いたセンサ、前記３Ｄデータの取得位置、および前記３Ｄデータの取得者の内の少なくともいずれか１つを含む
請求項８に記載の画像処理装置。
【請求項１０】
前記管理情報は、３次元空間領域全体に関する情報である全体領域情報を含む
請求項１に記載の画像処理装置。
【請求項１１】
前記全体領域情報は、前記３次元空間領域全体の位置、前記３次元空間領域全体のサイズ、前記３次元空間領域に含まれるブロックに関する情報、前記３次元空間領域に含まれる全ブロックに共通の管理情報の内の少なくともいずれか１つを含む
請求項１０に記載の画像処理装置。
【請求項１２】
前記３Ｄデータの符号化データと、前記管理情報生成部により生成された前記管理情報とを含むビットストリームを生成するビットストリーム生成部
をさらに備える請求項１に記載の画像処理装置。
【請求項１３】
前記管理情報生成部により生成された前記管理情報により管理される前記ブロックを設定するブロック設定部
をさらに備える請求項１に記載の画像処理装置。
【請求項１４】
前記ブロック設定部により設定された前記ブロック内の前記３Ｄデータを符号化する符号化部
をさらに備える請求項１３に記載の画像処理装置。
【請求項１５】
３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報を生成する
画像処理方法。
【請求項１６】
３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報に基づいて、ユーザにより指定された条件を満たす前記ブロックを選択するブロック選択部と、
前記ブロック選択部により選択された前記ブロック内の前記３Ｄデータの符号化データを復号する復号部と
を備える画像処理装置。
【請求項１７】
前記管理情報と前記ユーザによる指示とに基づいて、前記復号部による前記符号化データの復号を制御する復号制御部
をさらに備える請求項１６に記載の画像処理装置。
【請求項１８】
前記管理情報と前記ユーザによる指示とに基づいて、前記３Ｄデータの編集を制御する編集制御部と、
前記編集制御部の制御に従って、前記復号部により前記符号化データが復号されて生成された前記３Ｄデータを編集する編集部と
をさらに備える請求項１６に記載の画像処理装置。
【請求項１９】
前記３次元空間領域の全体の前記３Ｄデータの符号化データから、前記ブロック選択部により選択された前記ブロック内の前記３Ｄデータの符号化データを抽出する抽出部をさらに備え、
前記復号部は、前記抽出部により抽出された、前記ブロック選択部により選択された前記ブロック内の前記３Ｄデータの符号化データを復号する
請求項１６に記載の画像処理装置。
【請求項２０】
３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報に基づいて、ユーザにより指定された条件を満たす前記ブロックを選択し、
選択された前記ブロック内の前記３Ｄデータの符号化データを復号する
画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像処理装置および方法に関し、特に、３Ｄデータの部分的な復号をより容易に行うことができるようにした画像処理装置および方法に関する。
【背景技術】
【０００２】
従来、例えばポイントクラウド（Point cloud）のような３次元構造を表す３Ｄデータの符号化方法として、例えばOctreeを用いた符号化があった（例えば非特許文献１参照）。【０００３】
Octreeは、位置情報を量子化したボクセル（voxel）を木構造化したものであり、ノード間に依存関係が生じるので、その一部を復号する場合であっても、全体を探索してOctree全体の構成を再現してから所望の領域を切り出す必要が有り、処理量やメモリ等リソース使用量が不要に増大する。【０００４】
ところで、２次元画像の符号化の場合、処理の分散化を目的として、フレームをスライスやタイルに分割する手法がある。３Ｄデータの場合もこのようなスライスやタイルと同様に、３次元空間領域を小領域に分割し、それぞれ独立に符号化することにより、容易に、その小領域毎に独立に復号することができる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】R. Mekuria, Student Member IEEE, K. Blom, P. Cesar., Member, IEEE, "Design, Implementation and Evaluation of a Point Cloud Codec for Tele-Immersive Video",tcsvt_paper_submitted_february.pdf
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、このような領域全体を分割した小領域毎に復号する手法では、各小領域の位置、形状、大きさ等に制限が生じるため、任意の位置、形状、大きさの部分領域を独立に復号することは困難であった。また、不要な領域の３Ｄデータの復号が必要になる等、処理量やメモリ等リソース使用量が不要に増大するおそれがあった。【０００７】
本開示は、このような状況に鑑みてなされたものであり、３Ｄデータの部分的な復号をより容易に行うことができるようにするものである。
【課題を解決するための手段】
【０００８】
本技術の一側面の画像処理装置は、３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報を生成する管理情報生成部を備える画像処理装置である。【０００９】
本技術の一側面の画像処理方法は、３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報を生成する画像処理方法である。【００１０】
本技術の他の側面の画像処理装置は、３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報に基づいて、ユーザにより指定された条件を満たす前記ブロックを選択するブロック選択部と、前記ブロック選択部により選択された前記ブロック内の前記３Ｄデータの符号化データを復号する復号部とを備える画像処理装置である。【００１１】
本技術の他の側面の画像処理方法は、３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報に基づいて、ユーザにより指定された条件を満たす前記ブロックを選択し、選択された前記ブロック内の前記３Ｄデータの符号化データを復号する画像処理方法である。【００１２】
本技術の一側面の画像処理装置および方法においては、３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報が生成される。【００１３】
本技術の他の側面の画像処理装置および方法においては、３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報に基づいて、ユーザにより指定された条件を満たすブロックが選択され、その選択されたブロック内の３Ｄデータの符号化データが復号される。
【図面の簡単な説明】
【００１４】
【図１】符号化装置の主な構成例を示すブロック図である。
【図２】ブロックの例を説明する図である。
【図３】ビットストリームの構造例について説明する図である。
【図４】管理情報の内容の例について説明する図である。
【図５】ブロック情報の例について説明する図である。
【図６】全体領域情報の例について説明する図である。
【図７】符号化部の主な構成例を示すブロック図である。
【図８】符号化処理の流れの例を説明するフローチャートである。
【図９】ブロック符号化処理の流れの例を説明するフローチャートである。
【図１０】復号装置の主な構成例を示すブロック図である。
【図１１】復号の様子の例について説明する図である。
【図１２】復号部の主な構成例を示すブロック図である。
【図１３】復号処理の流れの例を説明するフローチャートである。
【図１４】ブロック復号処理の流れの例を説明するフローチャートである。
【図１５】ユースケースについて説明する図である。
【図１６】符号化装置の主な構成例を示すブロック図である。
【図１７】符号化装置の主な構成例を示すブロック図である。
【図１８】復号装置の主な構成例を示すブロック図である。
【図１９】復号装置の主な構成例を示すブロック図である。
【図２０】コンピュータの主な構成例を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本開示を実施するための形態（以下実施の形態とする）について説明する。なお、説明は以下の順序で行う。
１．第１の実施の形態（符号化装置）
２．第２の実施の形態（復号装置）
３．ユースケース
４．第３の実施の形態（符号化装置）
５．第４の実施の形態（復号装置）
６．付記
【００１６】
＜１．第１の実施の形態＞
＜技術内容・技術用語をサポートする文献等＞
本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献に記載されている内容も含まれる。
【００１７】
非特許文献１：（上述）
非特許文献２：Ohji Nakagami, Phil Chou, Maja Krivokuca, Khaled Mammou, Robert Cohen, Vladyslav Zakharchenko, Gaelle Martin-Cocher, "Second Working Draft for PCC Categories 1, 3",ISO/IEC JTC1/SC29/WG11, MPEG 2018/N17533, April 2018, San Diego, US
非特許文献３：TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU（International Telecommunication Union）, "Advanced video coding for generic audiovisual services", H.264, 04/2017
非特許文献４：TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU（International Telecommunication Union）, "High efficiency video coding", H.265, 12/2016
非特許文献５：Jianle Chen, Elena Alshina, Gary J. Sullivan, Jens-Rainer, Jill Boyce, "Algorithm Description of Joint Exploration Test Model 4", JVET-G1001_v1, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting: Torino, IT, 13-21 July 2017
【００１８】
つまり、上述の非特許文献に記載されている内容もサポート要件を判断する際の根拠となる。例えば、非特許文献４に記載されているQuad-Tree Block Structure、非特許文献５に記載されているQTBT（Quad Tree Plus Binary Tree） Block Structureが実施の形態において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。また、例えば、パース（Parsing）、シンタックス（Syntax）、セマンティクス（Semantics）等の技術用語についても同様に、実施の形態において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。
【００１９】
＜ポイントクラウド＞
従来、点群の位置情報や属性情報等により３次元構造を表すポイントクラウド（Point cloud）や、頂点、エッジ、面で構成され、多角形表現を使用して３次元形状を定義するメッシュ（Mesh）等の３Ｄデータが存在した。
【００２０】
例えばポイントクラウドの場合、立体構造物（３次元形状のオブジェクト）を多数の点の集合（点群）として表現する。つまり、ポイントクラウドのデータ（ポイントクラウドデータとも称する）は、この点群の各点の位置情報や属性情報（例えば色等）により構成される。したがってデータ構造が比較的単純であるとともに、十分に多くの点を用いることにより任意の立体構造物を十分な精度で表現することができる。
【００２１】
＜ボクセルを用いた位置情報の量子化＞
このようなポイントクラウドデータはそのデータ量が比較的大きいので、符号化等によるデータ量を圧縮するために、ボクセル（Voxel）を用いた符号化方法が考えられた。ボクセルは、符号化対象の位置情報を量子化するための３次元領域である。つまり、ポイントクラウドを内包する３次元領域をボクセルと称する小さな３次元領域に分割し、そのボクセル毎に、ポイントを内包するか否かを示す。このようにすることにより、各ポイントの位置はボクセル単位に量子化される。したがって、ポイントクラウド（Point cloud）データをこのようなボクセルのデータ（ボクセル（Voxel）データとも称する）に変換することにより、情報量の増大を抑制する（典型的には情報量を削減する）ことができる。
【００２２】
＜Octree＞
さらに、このようなボクセル（Voxel）データを用いてOctreeを構築することが考えられた。Octreeは、ボクセルデータを木構造化したものである。Octreeの各ノードは、８ビットのデータにより構成され、各ビットの値は、２×２×２の小領域のそれぞれにおけるポイントの有無を示す。つまり、Octreeは、３次元領域を再帰的に分割し、階層化された小領域毎にデータの有無を示す。Octreeの最下位のノードの各ビットは、ボクセル（Voxel）のポイントの有無を示す。そのため、Octreeはノード間で依存関係が生じるので、その一部を復号する場合であっても、全体を探索してOctree全体の構成を再現してから所望の領域を切り出す必要が有り、処理量やメモリ等リソース使用量が不要に増大する。
【００２３】
ところで、２次元画像の符号化の場合、処理の分散化を目的として、フレームをスライスやタイルに分割する手法がある。３Ｄデータの場合もこのようなスライスやタイルと同様に、３次元空間領域を小領域に分割し、それぞれ独立に符号化することにより、容易に、その小領域毎に独立に復号することができる。
【００２４】
しかしながら、このような領域全体を分割した小領域毎に復号する手法では、各小領域の位置、形状、大きさ等に制限が生じる。例えば、領域全体の位置、形状、大きさや、分割数、分割方向等によって各小領域の位置、形状、大きさ等が決まる場合もある。そのため、任意の位置、形状、大きさの部分領域を独立に復号することは困難であった。
【００２５】
また、このような小領域単位で復号を行う場合、所望の範囲を含む小領域を全て復号することになるが、その場合、所望の範囲外の３Ｄデータの復号が必要になる等、処理量やメモリ等リソース使用量が不要に増大するおそれがあった。
【００２６】
＜部分領域の管理情報のシグナル＞
そこで、エンコーダが、３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報を生成するようにする。例えば、エンコーダ（画像処理装置）において、３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報を生成する管理情報生成部を備えるようにする。
【００２７】
このようにすることにより、エンコーダは、任意の位置、形状、大きさのブロックを設定し、その管理情報を生成することができる。そして、エンコーダは、そのブロックを管理する管理情報を復号側に伝送する（シグナルする）ことができるので、デコーダは、その管理情報に基づいて、より容易にそのブロックの３Ｄデータを復号することができる。すなわち、デコーダは、任意の位置、形状、大きさの部分領域の３Ｄデータをより容易に復号することができる。
【００２８】
＜符号化装置＞
図１は、本技術を適用した画像処理装置の一態様である符号化装置の構成の一例を示すブロック図である。図１に示される符号化装置１００は、ポイントクラウドのような３Ｄデータをボクセル（Voxel）およびOctreeを用いて符号化する装置である。
【００２９】
なお、図１においては、処理部やデータの流れ等の主なものを示しており、図１に示されるものが全てとは限らない。つまり、符号化装置１００において、図１においてブロックとして示されていない処理部が存在したり、図１において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、符号化装置１００内の処理部等を説明する他の図においても同様である。
【００３０】
図１に示されるように符号化装置１００は、ブロック設定部１０１、管理情報生成部１０２、符号化部１０３、およびビットストリーム生成部１０４を有する。
【００３１】
ブロック設定部１０１は、３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの設定に関する処理を行う。３次元空間領域やブロックについての説明は後述する。例えばブロック設定部１０１は、符号化装置１００に入力されるポイントクラウドデータを取得する。
【００３２】
また、ブロック設定部１０１は、例えばユーザや符号化装置１００の外部の装置等から入力されるブロックに関する指定情報を受け付ける。この指定情報は、どのようなブロックを設定するかを指定する情報である。この指定情報では、例えば、位置、サイズ、形状等、任意のパラメータを用いて、設定するブロックが指定される。
【００３３】
さらに、ブロック設定部１０１は、入力されたポイントクラウドを含む３次元空間領域に、指定されたブロックを設定する。また、ブロック設定部１０１は、入力されたポイントクラウドからそのブロックに含まれるポイントクラウドを抽出し、そのデータ（ブロックポイントクラウドデータとも称する）を符号化部１０３に供給する。さらに、ブロック設定部１０１は、設定したブロックに関する情報を管理情報生成部１０２に供給する。換言するに、ブロック設定部１０１は、管理情報生成部１０２により生成される管理情報により管理されるブロックを設定する。なお、ブロック設定部１０１が、さらに、ポイントクラウドを含む３次元空間領域に関する情報を管理情報生成部１０２に供給するようにしてもよい。
【００３４】
管理情報生成部１０２は、ブロックの管理情報の生成に関する処理を行う。例えば、管理情報生成部１０２は、ブロック設定部１０１からブロックに関する情報を取得する。また、管理情報生成部１０２は、その情報に基づいて管理情報を生成する。つまり、管理情報生成部１０２は、３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報を生成する。この管理情報については後述する。なお、ブロック設定部１０１からポイントクラウドを含む３次元空間領域（全体領域とも称する）に関する情報が供給される場合、管理情報生成部１０２は、その情報も用いて管理情報を生成する。さらに、管理情報生成部１０２は、生成した管理情報をビットストリーム生成部１０４に供給する。
【００３５】
符号化部１０３は、符号化に関する処理を行う。例えば、符号化部１０３は、ブロック設定部１０１から供給されるブロックポイントクラウドデータを取得する。また、符号化部１０３は、そのブロックポイントクラウドデータを所定の方法で符号化し、その符号化データ（ブロックポイントクラウド符号化データとも称する）を生成する。つまり、符号化部１０３は、ブロック毎に独立してポイントクラウドデータを符号化することができる。この符号化については後述する。さらに、符号化部１０３は、生成したブロックポイントクラウド符号化データをビットストリーム生成部１０４に供給する。
【００３６】
ビットストリーム生成部１０４は、ビットストリームの生成に関する処理を行う。例えば、ビットストリーム生成部１０４は、管理情報生成部１０２から供給される管理情報を取得する。また、ビットストリーム生成部１０４は、符号化部１０３から供給されるブロックポイントクラウド符号化データを取得する。さらに、ビットストリーム生成部１０４は、その管理情報およびブロックポイントクラウド符号化データを含むビットストリームを生成する。つまり、ビットストリーム生成部１０４は、ブロック単位のポイントクラウドの符号化データと、その管理情報を含むビットストリームを生成する。このビットストリームについては後述する。また、ビットストリーム生成部１０４は、生成したビットストリームを符号化装置１００の外部に出力する。このビットストリームは、例えば、所定の媒体（例えば通信媒体若しくは記録媒体またはその両方等）を介してデコーダ（復号側）に伝送される。
【００３７】
なお、これらの処理部（ブロック設定部１０１、管理情報生成部１０２、符号化部１０３、およびビットストリーム生成部１０４）は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU（Central Processing Unit）、ROM（Read Only Memory）、RAM（Random Access Memory）等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
【００３８】
＜ブロック＞
次にブロックについて説明する。２次元画像の符号化におけるスライスやタイルは、画像全体を分割したものである。３次元空間に当てはめると、ポイントクラウド全体を内包する３次元空間領域１２１（図２のＡ）を処理対象とし、その処理対象の３次元空間領域を表す３次元空間領域１２１を複数に分割することによりスライスやタイルが形成される。その場合、スライスやタイルの位置、形状、大きさ等は、３次元空間領域１２１の位置、形状、大きさ等に依存することになる。
【００３９】
一般的に、ポイントクラウドは、３次元空間領域１２１内に一様に分布しないので、３次元空間領域１２１を分割することと、ポイントクラウドを分割することとは、必ずしも等価ではない。例えば、１つのスライス・タイル内にポイントクラウド全体が内包されることもあり得る。また、ポイントを内包しないスライス・タイルが存在することもあり得る。したがって、このようにポイントクラウドを分割するために３次元空間領域１２１を分割する方法は、非効率な制御となってしまうおそれがあった。
【００４０】
これに対して、ブロックは、３次元空間領域１２１内の任意の位置、形状、大きさの部分領域である。管理情報生成部１０２がブロックについての管理情報を生成するので、ブロック設定部１０１は、任意の位置、形状、大きさでブロックを設定することができる。
【００４１】
ブロックは任意の領域に設定することができるので、例えば、スライスやタイルのように、３次元空間領域１２１全体にわたって互いに隣接して並ぶようにブロックを形成することもできる。図２のＢの場合、ブロック１２２が、互いに隣接するように並べられ、３次元空間領域１２１の全体を埋めるように配置されている。このようにすると、スライスやタイルの場合と同様に、ブロック１２２が、３次元空間領域１２１を分割した部分領域となるようにすることができる。
【００４２】
換言するに、この場合、ブロック１２２を並べることにより、３次元空間領域１２１が形成される。したがって、ポイントクラウド全体を含む３次元空間領域１２１を、容易に任意の形状とすることができる。例えば、図２のＢの場合、矢印１２３や矢印１２４の部分のように、ポイントが存在しない部分のブロック１２２を省略する（形成しない）ことも可能である。このように、図２のＡのような矩形の３次元空間領域１２１だけでなく、より複雑な形状の３次元空間領域１２１もより容易に形成することができる。
【００４３】
また、３次元空間領域１２１全体をブロックで埋める必要はない。例えば図２のＣの場合、３次元空間領域１２１にブロック１２５およびブロック１２６が形成されているが、その他の領域にはブロックは存在しない。
【００４４】
さらに、他のブロックの領域と重なるようにブロックを設定することもできる。例えば、図２のＤの例の場合、ブロック１２７とブロック１２８は、互いに領域が一部重複している（グレーの部分）。また、ブロック１２８は、ブロック１２９を内包している。
【００４５】
以上のように、必要な部分にのみ適切なブロックを形成することができる。したがって、不要なブロックの形成を抑制することができるので、不要な情報量の増大を抑制し、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大を抑制することができる。
【００４６】
また、管理情報によりブロック毎に情報を管理することができる。例えば、解像度や圧縮率等をブロック毎に管理することができる。同一領域に複数のブロックを設定することができるため、例えば、このような管理情報により管理されるパラメータについてスケーラビリティを実現することができる。例えば、同一領域に対して、解像度や圧縮率等、任意のパラメータについて値が互いに異なるブロックを設定することにより、ブロックの選択によりそのパラメータの値を選択することができるようになる。つまり、そのパラメータについてのスケーラビリティを実現することができる。
【００４７】
また、データの更新日時や信頼度等の情報をブロック毎に管理することもできる。ブロックは、任意の位置、形状、大きさで、所望の範囲にのみ設定することができるので、更新情報のみを含むブロックを設定することができる。これにより、ポイントクラウドの更新（情報の差し替え、追加、削除等）をブロック単位で行うことができる。また、ブロックは、任意の位置、形状、大きさで設定することができるので、不要な領域をできるだけ含まないようにブロックを設定することができる。すなわち、追加のデータ量の増大やその処理の負荷の増大を抑制することができる。また、デコーダが適宜デコード処理（データアクセス）をしているときも、最小限の排他処理でデータをアップデートすることができる。
【００４８】
また、部分領域であるブロックサイズは、全体領域である３次元空間領域１２１のサイズよりも小さい。そのため、ブロックを復号する場合の方が、３次元空間領域１２１を符号化する場合に比べて、符号化時に必要なメモリ量（リソース使用量）を低減させることができる。
【００４９】
また、ブロック毎に独立に符号化することができるので、符号化処理の並列化を容易に実現することができる。その際、ブロックは任意の位置、形状、大きさで設定することができるので、符号化処理の負荷の分散をより適切に行う（所望する分散方法により近似させる）ことができる。
【００５０】
また、ブロック毎に符号化処理が独立に行われるため、ポイントクラウドの更新（情報の差し替え、追加、削除等）をブロック単位で行うことができる。例えば、情報の更新部分に新たなブロックを形成することにより、その更新情報を独立に符号化・復号することができるので、より容易にその更新情報のデータを更新前のデータに追加することができる。
【００５１】
また、符号化がブロック毎に独立に行われることにより、ビットストリームにおいて各ブロックのデータが互いに独立している。そのため、復号の際は、所望の領域を含むブロックのみを復号すればよい。したがって、復号処理の負荷の増大を抑制することができる。例えば、復号処理の処理時間を低減させることができる。また、例えば、占有メモリ量等のリソース使用量を低減させることができる。
【００５２】
また、同一領域を含むブロックが複数存在する場合、管理情報に基づいて必要なブロックを選択することでデコード効率を向上させることができる。例えば、必要な解像度が判る場合、その解像度までを含むブロックを選択し、復号することにより、デコーダは、容易に所望の解像度の復号結果を得ることができる。また、更新時刻が判る場合、より新しいブロックを選択し、復号することにより、デコーダは、容易に最新の情報の復号結果を得ることができる。さらに、デコーダは、例えば色情報の有り無し等、任意のパラメータに基づいてブロックを選択し、復号することができ、より多様な処理結果を得ることができる。
【００５３】
また、図２のＤの例のように、複数のブロックを互いの領域が重複するように設定することができる。例えば２次元画像の場合、このように領域が重複すると、それぞれの領域のデータは、その重複部分について冗長となる。つまり、２次元画像の場合、同一アドレスにおいて必要な情報は、常に１つである。したがって領域が重なる場合はどちらかの点が選択される。
【００５４】
しかしながら、３Ｄデータであるポイントクラウドの場合、データの重なりの意味が異なる。ポイントクラウドの場合、データ表現領域（voxel直方体）の内部の全ての格子点にデータが存在するわけでは無い。また同一位置アドレスの点（の表現）が２つ以上存在することが可能である（その複数の点の利用方法はアプリケーションによる）。
【００５５】
したがって複数のブロックの領域が重なっている場合、いずれか１つのブロックのデータを選択することもできるし、複数のブロックのデータを選択することもできる（領域が重複する全てのブロックのデータを選択することもできる）。
【００５６】
例えば、同一の領域に対して２つのブロックが設定されていても、それぞれのブロックに含まれるポイントの位置が一致しない場合がある。そのような場合に、例えば、復号の際に、いずれか一方のブロック（のポイント）のデータを選択して復号するようにしてもよいし、両方のブロック（のポイント）のデータを選択して復号するようにしてもよい。両方のブロックを選択する場合、両方のブロックに含まれるポイントを全て復元するようにしてもよいし、互いのブロックのポイントを演算により統合し、新たなポイントを生成するようにしてもよい。
【００５７】
また、同一の領域に対して設定された２つのブロックに含まれるポイントの位置が互いに一致していても、各ポイントの属性情報が互いに異なる場合がある。そのような場合に、例えば、復号の際に、いずれか一方のブロック（のポイント）の属性情報を選択して復号するようにしてもよいし、両方のブロック（のポイント）の属性情報を選択して復号するようにしてもよい。両方のブロックを選択する場合、両方のブロックに含まれる属性情報を全て復元するようにしてもよいし、互いのブロックの属性情報を演算により統合し、新たな属性情報を生成するようにしてもよい。
【００５８】
さらに、同一の領域に対して設定された２つのブロックに含まれるポイントの位置が互いに一致していても、管理情報で管理されるパラメータが互いに異なる場合がある。そのような場合に、例えば、復号の際に、そのパラメータに基づいていずれか一方のブロック（のポイント）を選択して復号するようにしてもよいし、両方のブロック（のポイント）を選択して復号するようにしてもよい。両方のブロックを選択する場合、パラメータを更新するようにしてもよい。
【００５９】
＜ビットストリーム＞
次に、ビットストリームについて説明する。符号化装置１００は、例えば、図３のＡに示されるようなデータ構造を有するビットストリームを生成する。図３のＡにおいて、ビットストリーム１４１は、符号化装置１００により生成されるビットストリームであり、スタートコード（start_code）、シーケンスヘッダ（Seq_Header_info）、並びに、ブロックデータ（Block_data(0)、Block_data(1)、・・・、Block_data(n)）を有する。
【００６０】
スタートコード（start_code）は、当該シーケンスの開始位置を示す識別情報であり、所定のビット列が設定される。シーケンスヘッダ（Seq_Header_info）は、シーケンス毎のヘッダ情報であり、当該シーケンスに関する情報が格納される。ブロックデータ（Block_data(0)、Block_data(1)、・・・、Block_data(n)）には、各ブロックのデータが格納される。
【００６１】
シーケンスヘッダ（Seq_Header_info）は、例えば、図３のＢに示されるようなデータ構造を有する。図３のＢにおいて、シーケンスヘッダ１４２は、シーケンス情報（Seq_info）、ブロックモードフラグ（Block_mode_flag）、並びに、各ブロックのブロック情報（Block(0)_info、・・・、Block(n)_info）を有する。
【００６２】
シーケンス情報（Seq_info）には、当該シーケンスについての情報が格納される。ブロックモードフラグ（Block_mode_flag）は、当該シーケンスにおいてブロックが設定されているか否か（すなわち、ブロックモードであるか否か）を示すフラグ情報である。この値を参照することにより、当該シーケンスにブロックが設定されているか否かを容易に把握することができる。ブロック情報（Block(0)_info、・・・、Block(n)_info）には、対応するブロックに関する情報が格納される。
【００６３】
ブロック情報（Block(0)_info、・・・、Block(n)_info）は、例えば、図３のＣに示されるようなデータ構造を有する。図３のＢにおいて、ブロック情報１４３は、ブロック番号（block_no）、ポイントクラウドアドレス（Point cloud address (x,y,z)）、ポイントクラウドサイズ（Point cloud size (x,y,z)）、データロケーション（data_location(offset/address)）、追加情報（additional_info）を有する。
【００６４】
ブロック番号（block_no）は、当該ブロックを識別するための番号（識別情報）である。ポイントクラウドアドレス（Point cloud address (x,y,z)）は、当該ブロックの位置情報(x,y,z)である。ポイントクラウドサイズ（Point cloud size (x,y,z)）は、当該ブロックのサイズ情報である。データロケーション（data_location(offset/address)）、当該ブロックのデータのビットストリームにおける位置情報である。この位置情報により、例えば、当該ブロックのデータの先頭位置が示される。例えば、データロケーション（data_location(offset/address)）には、ビットストリームの所定の基準位置からのオフセット（offset）、または、アドレス（address）が格納される。追加情報（additional_info）には、上述した以外のブロックに関する任意の情報が格納される。
【００６５】
ブロックデータ（Block_data(0)、Block_data(1)、・・・、Block_data(n)）は、例えば、図３のＤに示されるようなデータ構造を有する。図３のＤにおいて、ブロックデータ１４４は、スタートコード（start_code）、ヘッダ情報（Header_info）、ポイントクラウド位置情報（Point cloud Position info）、および、ポイントクラウド属性情報（Point cloud Attribute info）を有する。また、オプションで当該ブロックのブロック情報（Block_info）を有することもできる。
【００６６】
スタートコード（start_code）は、当該ブロックの開始位置を示す識別情報であり、所定のビット列が設定される。ヘッダ情報（Header_info）は、ブロック毎のヘッダ情報であり、当該ブロックに関する情報が格納される。ポイントクラウド位置情報（Point cloud Position info）には、当該ブロックに含まれるポイントクラウドの位置情報が格納される。ポイントクラウド属性情報（Point cloud Attribute info）には、当該ブロックに含まれるポイントクラウドの属性情報が格納される。ブロック情報（Block_info）には、ブロック情報１４３と同様の情報が格納される。
【００６７】
ビットストリーム生成部１０４は、管理情報生成部１０２により生成される管理情報（ブロックを管理するための管理情報）は、このようなビットストリームの任意の位置に格納することができる。例えば、この管理情報が、シーケンスヘッダ１４２のシーケンス情報（Seq_info）に格納されるようにしてもよい。また、この管理情報が、ブロック毎に分けて、ブロック情報１４３の追加情報（additional_info）に格納されるようにしてもよい。さらに、この管理情報が、ブロック毎に分けて、ブロックデータ１４４のブロック情報（Block_info）に格納されるようにしてもよい。また、管理情報が、さらに上位のレイヤ概念としてビットストリーム１４１に付加されるようにしてもよい。
【００６８】
＜管理情報＞
次に、管理情報生成部１０２により生成される管理情報について説明する。管理情報には、各ブロックの具体的な領域情報を含み、さらに付加的情報（解像度等）を含めることができる。例えば、管理情報には、図４の表１５１に示されるような各種情報を含めることができる。
【００６９】
例えば、管理情報には、ブロックに関する情報であるブロック情報が格納される。また、管理情報には、ブロックに含まれる３Ｄデータ（例えばポイントクラウド）の位置情報に関する情報であるポイント情報が含まれるようにしてもよい。さらに、管理情報には、ブロックに含まれる３Ｄデータ（例えばポイントクラウド）の属性情報に関する情報である属性情報が含まれるようにしてもよい。また、管理情報には、３Ｄデータ（例えばポイントクラウド）の取得（生成）に関する情報である取得情報が含まれるようにしてもよい。
【００７０】
＜ブロック情報＞
ブロック情報は必須の情報である。ブロック情報は、例えば図４の表１５１に示されるような、ブロック識別情報、ブロック位置、ブロックサイズ、およびデータ位置等の情報の内の少なくともいずれか１つを含む。もちろん、ブロック情報は、ブロックに関する情報であればよく、上述の情報以外の情報が含まれていてもよい。
【００７１】
ブロック識別情報は、ブロックを識別するための情報であり、例えば、識別番号やインデックス等により構成される。このブロック識別情報を復号側に伝送することにより、符号化装置１００は、デコーダがこのブロック識別情報を参照してより容易にブロックを特定することができるようにすることができる。
【００７２】
ブロック位置は、ポイントクラウドが存在する３次元空間におけるブロックの位置を示す情報である。例えば、ブロック位置は、World座標を用いて示される。もちろん、ブロック位置の表現方法は任意であり、World座標に限定されない。
【００７３】
ブロックサイズは、ブロックの大きさや形状等を示す情報である。ブロックの大きさや形状の表現方法は任意である。例えば図５に示されるような矩形のブロック０（block0）の場合、x0sのように各辺の長さによりブロックの大きさを表すようにしてもよいし、（x0a,y0a,z0a）と（x0b,y0b,z0b）のように、頂点座標によりブロックの大きさを表すようにしてもよい。この場合、対角位置にある２頂点の座標によってブロック０の領域の範囲を特定することにより、ブロックの大きさを表現している。
【００７４】
これらのブロック位置やブロックサイズを復号側に伝送することにより、符号化装置１００は、デコーダがこれらの情報に基づいて、例えば、指定範囲に基づくブロックの選択をより容易に行うことができるようにすることができる。
【００７５】
データ位置は、ビットストリームにおける当該ブロックのデータの位置を示す情報である。このデータ位置の表現方法は任意である。例えば、オフセットやアドレス等により示されるようにしてもよい。なお、この情報は、管理情報以外のヘッダ情報としてビットストリームに含めるようにしてもよい。
【００７６】
このデータ位置を復号側に伝送することにより、符号化装置１００は、デコーダがこの情報に基づいて、より容易に、選択したブロックのデータをビットストリームから抽出することができるようにすることができる。
【００７７】
＜ポイント情報＞
ポイント情報は、例えば、図４の表１５１に示されるように、解像度、構造物、および信頼度等の情報の内の少なくともいずれか１つを含む。
【００７８】
解像度は、ブロック内の３Ｄデータの解像度（例えばポイントクラウドの場合ポイントの間隔）を示す情報である。この解像度の表現方法は任意である。直接的な数値で解像度を表すようにしてもよいし、インデックス等を用いて間接的に解像度を表すようにしてもよい。また、ブロック内において解像度が均一でない場合、その最小値（ポイントクラウドの場合、点間距離の最小値）を用いるようにしてもよいし、最大値（ポイントクラウドの場合、点間距離の最大値）を用いるようにしてもよいし、平均値（ポイントクラウドの場合、点間距離の平均値）や中央値（ポイントクラウドの場合、点間距離の中央値）等を用いるようにしてもよい。
【００７９】
この解像度を復号側に伝送することにより、符号化装置１００は、デコーダがこの情報に基づいて、例えば、必要解像度によるブロックの選択をより容易に行うことができるようにすることができる。例えば、パラメータ「解像度」についてのスケーラビリティ（解像度スケーラビリティとも称する）を実現することができる。
【００８０】
構造物は、ブロック内の３Ｄデータ（例えばポイントクラウド）が示す立体構造物を説明する情報である。例えば、自然物、人工物、動物体、静止物体、動物、植物、人間、手、足、頭、髪等のように文字を用いて直接的に表現するようにしてもよいし、予め定めたインデックス等を用いて間接的に表現するようにしてもよい。または、柔らかい、固い、大きい、小さい等、立体構造物の特徴を表現するようにしてもよい。
【００８１】
この構造物を復号側に伝送することにより、符号化装置１００は、デコーダがこの情報に基づいて、例えば、立体構造物の指定によるブロックの選択をより容易に行うことができるようにすることができる。
【００８２】
信頼度は、ブロック内の３Ｄデータ（例えばポイントクラウド）のデータとしての信頼度を表す情報であり、例えばデータ作成時の状況や更新による劣化等による誤差の可能性を表現する。この信頼度の表現方法は任意である。例えば、絶対値により表現するようにしてもよいし、相対値により表現するようにしてもよい。また、これらのような直接的な表現以外にも、例えば、予め定められたインデックス等を用いて間接的に表現するようにしてもよい。
【００８３】
この信頼度を復号側に伝送することにより、符号化装置１００は、デコーダがこの情報に基づいて、例えば、必要信頼度によるブロックの選択をより容易に行うことができるようにすることができる。例えば、パラメータ「信頼度」についてのスケーラビリティ（信頼度スケーラビリティとも称する）を実現することができる。
【００８４】
なお、ポイント情報は必須ではないので省略することもできる。つまり、上述の情報の一部または全部が省略されてもよい。また、ポイント情報は、ブロックに含まれるポイントクラウドの位置情報に関する情報であればよく、上述の情報例に限定されない。例えば、上述の情報以外の情報が含まれていてもよい。
【００８５】
＜属性情報＞
属性情報は、例えば、図４の表１５１に示されるように、色、法線、および反射率等の情報の内の少なくともいずれか１つを含む。
【００８６】
色は、ブロック内に存在するポイントクラウドの属性情報に色情報が含まれるか否かを示すフラグ情報である。また、色情報が含まれる場合、さらに、その色数や何色であるか等を示すようにしてもよい。
【００８７】
この色を復号側に伝送することにより、符号化装置１００は、デコーダがこの情報に基づいて、例えば、色情報の有無によるブロックの選択をより容易に行うことができるようにすることができる。
【００８８】
法線は、ブロック内に存在するポイントクラウドの属性情報に法線情報が含まれるか否かを示すフラグ情報である。また、法線情報が含まれる場合、さらに、その法線の数や向き等を示すようにしてもよい。
【００８９】
この法線を復号側に伝送することにより、符号化装置１００は、デコーダがこの情報に基づいて、例えば、法線情報の有無によるブロックの選択をより容易に行うことができるようにすることができる。
【００９０】
反射率は、ブロック内に存在するポイントクラウドの属性情報に反射率情報が含まれるか否かを示すフラグ情報である。また、反射率情報が含まれる場合、さらに、その反射率の数や値等を示すようにしてもよい。
【００９１】
この反射率を復号側に伝送することにより、符号化装置１００は、デコーダがこの情報に基づいて、例えば、反射率情報の有無によるブロックの選択をより容易に行うことができるようにすることができる。
【００９２】
属性情報は必須ではないので省略することもできる。つまり、上述の情報の一部または全部が省略されてもよい。また、属性情報は、ブロックに含まれるポイントクラウドの属性情報に関する情報であればよく、上述の情報例に限定されない。例えば、上述の情報以外の情報が含まれていてもよい。
【００９３】
＜取得情報＞
取得情報は、例えば、図４の表１５１に示されるように、時刻、計算手法、センサ、取得位置、および取得者等の情報の内の少なくともいずれか１つを含む。
【００９４】
時刻は、ブロック内に存在する３Ｄデータ（例えばポイントクラウド）の取得（生成）時期を示す情報である。直接的に時刻で示すようにしてもよい。その場合、年、月、日、時、分、秒等、単位は任意である。また、基準時刻（例えば取得時刻）から現在時刻までの時間により表現するようにしてもよい。さらに、例えばバージョンや更新回数等のように、時刻や時間以外の情報を用いて間接的に表現するようにしてもよい。
【００９５】
この時刻を復号側に伝送することにより、符号化装置１００は、デコーダがこの情報に基づいて、例えば、最新データや指定記事のデータを含むブロックの選択をより容易に行うことができるようにすることができる。
【００９６】
計算手法は、ブロック内に存在する３Ｄデータ（例えばポイントクラウド）の取得（生成）手法を示す情報である。例えば、３ＤデータがLiDAR（Light Detection and Ranging）データより生成されたものである、３Ｄデータがステレオマッチング手法により算出されたものである等のように、立体構造物からどのようにして３Ｄデータが取得（生成）されたかを表現する。さらに、その取得（生成）において用いられた計算式、パラメータの値等を表現するようにしてもよい。これらは、文章や等により直接的に手法を表現するようにしてもよいし、予め定められたインデックス等を用いて間接的に表現するようにしてもよい。
【００９７】
この計算手法を復号側に伝送することにより、符号化装置１００は、デコーダがこの情報に基づいて、例えば、指定手法のデータを含むブロックの選択をより容易に行うことができるようにすることができる。
【００９８】
センサは、ブロック内に存在する３Ｄデータ（例えばポイントクラウド）の取得（生成）に用いられたセンサに関する情報である。例えば、センサ種類（例えば、LiDARセンサ、CMOS（Complementary Metal Oxide Semiconductor）センサ等）、性能（解像度や周波数等）、数、使用方法等を示す。直接的に示してもよいし、インデックス等を用いて間接的に表現するようにしてもよい。
【００９９】
このセンサを復号側に伝送することにより、符号化装置１００は、デコーダがこの情報に基づいて、例えば、指定センサにより取得したデータを含むブロックの選択をより容易に行うことができるようにすることができる。
【０１００】
取得位置は、ブロック内に存在する３Ｄデータ（例えばポイントクラウド）の取得（生成）位置を示す情報である。この取得位置の表現方法は任意である。例えば、GPSデータを用いて取得位置を表すようにしてもよい。また、例えば日本、米国、欧州等のように、国名や地域名により取得位置を表すようにしてもよい。さらに、住所や郵便番号等を用いて取得位置を表すようにしてもよい。もちろん、これら以外の情報を用いて取得位置を表すようにしてもよい。
【０１０１】
この取得位置を復号側に伝送することにより、符号化装置１００は、デコーダがこの情報に基づいて、例えば、指定位置において取得されたデータを含むブロックの選択をより容易に行うことができるようにすることができる。
【０１０２】
取得者は、ブロック内に存在する３Ｄデータ（例えばポイントクラウド）を取得（生成）したユーザ（取得者）を示す情報である。この取得者の表現方法は任意である。例えば、人名や役職等により取得者を表すようにしてもよい。また、予め定められたインデックス等を用いて間接的に取得者を表現するようにしてもよい。さらに、取得者の権限（管理者、一般ユーザ、ゲスト等）を表現するようにしてもよい。
【０１０３】
この取得者を復号側に伝送することにより、符号化装置１００は、デコーダがこの情報に基づいて、例えば、指定取得者により取得されたデータを含むブロックの選択をより容易に行うことができるようにすることができる。
【０１０４】
取得情報は必須ではないので省略することもできる。つまり、上述の情報の一部または全部が省略されてもよい。また、取得情報は、ブロックに含まれるポイントクラウドの取得に関する情報であればよく、上述の情報例に限定されない。例えば、上述の情報以外の情報が含まれていてもよい。
【０１０５】
＜全体領域情報＞
また、管理情報には、ポイントクラウド全体を含む３次元空間領域全体（全体領域とも称する）に関する情報である全体領域情報が含まれるようにしてもよい。
【０１０６】
全体領域情報は、例えば、図６の表１６１に示されるように、位置サイズ、ブロック情報、および共通情報等の情報の内の少なくともいずれか１つを含む。
【０１０７】
位置サイズは、全体領域の大きさ（サイズ）、位置（座標）、形状等を示す情報である。上述したブロック位置やブロックサイズの場合と同様に、これらの表現方法は任意である。例えば、World座標を用いて位置、形状、大きさ等を表すようにしてもよい。また、各辺の長さを用いて大きさや形状を表現するようにしてもよい。
【０１０８】
ブロック情報は、ブロックのタイプ、総数、分割数等、全体領域に含まれるブロックに関する情報である。これらの表現方法は任意である。文字や数値を用いて直接的に表現するようにしてもよいし、予め定められたインデックス等を用いて間接的に表現するようにしてもよい。
【０１０９】
共通情報は、全体領域に形成される全ブロックに共通の管理情報である。共通情報には、どのような内容情報が含まれていてもよい。この共通情報に含まれる情報は、全てのブロックに適用される。
【０１１０】
＜符号化部＞
図７は、符号化部１０３（図１）の主な構成例を示すブロック図である。図７に示される世に、符号化部１０３は、Voxel生成部１８１、Octree生成部１８２、および可逆符号化部１８３を有する。
【０１１１】
Voxel生成部１８１は、ボクセル（Voxel）の生成に関する処理を行う。例えば、Voxel生成部１８１は、ブロック設定部１０１から供給されるブロックポイントクラウドデータを取得する。また、Voxel生成部１８１は、その取得したブロックポイントクラウドデータを含む領域に対してバウンディングボックスを設定し、さらにそのバウンディングボックスを分割し、ボクセルを設定することにより、そのブロックポイントクラウドデータの位置情報を量子化する。Voxel生成部１８１は、このようにして生成したボクセル（Voxel）データ（ブロックボクセルデータとも称する）をOctree生成部１８２に供給する。
【０１１２】
Octree生成部１８２は、Octreeの生成に関する処理を行う。例えば、Octree生成部１８２は、Voxel生成部１８１から供給されるブロックボクセルデータを取得する。また、Octree生成部１８２は、そのブロックボクセルデータからOctree（ブロックOctreeとも称する）を生成する。Octree生成部１８２は、生成したブロックOctreeのデータ（ブロックOctreeデータとも称する）を可逆符号化部１８３に供給する。
【０１１３】
可逆符号化部１８３は、可逆符号化に関する処理を行う。例えば、可逆符号化部１８３は、Octree生成部１８２から供給されるブロックOctreeデータを取得する。可逆符号化部１８３は、そのブロックOctreeデータを符号化し、符号化データを生成する。可逆符号化部１８３は、生成した符号化データを、ブロックポイントクラウド符号化データとしてビットストリーム生成部１０４に供給する。
【０１１４】
なお、これらの処理部（Voxel生成部１８１、Octree生成部１８２、および可逆符号化部１８３）は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
【０１１５】
以上のような構成を有することにより、符号化装置１００は、任意の位置に、任意の大きさおよび形状のブロックを設定し、その管理情報を生成することができる。したがって、符号化装置１００は、デコーダが３Ｄデータの部分的な復号をより容易に行うことができるようにすることができる。
【０１１６】
＜符号化処理の流れ＞
次に、符号化装置１００により実行される符号化処理の流れの例を、図８のフローチャートを参照して説明する。
【０１１７】
符号化処理が開始されると、ブロック設定部１０１は、ステップＳ１０１において、ポイントクラウドデータを取得する。
【０１１８】
ステップＳ１０２において、ブロック設定部１０１は、設定するブロックの条件（例えば、位置、大きさ、形状、その他のパラメータについての条件等）を指定する指定情報を受け付ける。
【０１１９】
ステップＳ１０３において、ブロック設定部１０１は、その指定情報に基づいて、その指定情報に示される条件を満たすブロックを設定する。
【０１２０】
ステップＳ１０４において、管理情報生成部１０２は、ステップＳ１０３において設定されたブロックを管理する管理情報を生成する。すなわち、管理情報生成部１０２は、３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報を生成する。
【０１２１】
ステップＳ１０５において、符号化部１０３は、ブロック符号化処理を行い、ステップＳ１０３において設定されたブロックのデータ（ブロックポイントクラウドデータ）を符号化し、ブロックポイントクラウド符号化データを生成する。
【０１２２】
ステップＳ１０６において、ビットストリーム生成部１０４は、ステップＳ１０４において生成された管理情報、並びに、ステップＳ１０５において生成されたブロックポイントクラウド符号化データを含むビットストリームを生成する。
【０１２３】
ステップＳ１０７において、ビットストリーム生成部１０４は、ステップＳ１０６において生成されたビットストリームを符号化装置１００の外部に出力する（復号側に伝送する）。
【０１２４】
ステップＳ１０７の処理が終了すると、符号化処理が終了する。
【０１２５】
＜ブロック符号化処理の流れ＞
次に、図８のステップＳ１０５において実行されるブロック符号化処理に流れの例を、図９のフローチャートを参照して説明する。
【０１２６】
ブロック符号化処理が開始されると、Voxel生成部１８１は、ステップＳ１２１において、未処理のブロックの中から処理対象ブロックを選択する。
【０１２７】
ステップＳ１２２において、Voxel生成部１８１は、処理対象ブロックのブロックポイントクラウドデータを用いて、処理対象ブロックに含まれるポイントの位置情報を量子化（Voxel化）し、Voxelデータを生成する。
【０１２８】
ステップＳ１２３において、Octree生成部１８２は、ステップＳ１２２において生成されたブロックボクセルデータから処理対象ブロックのOctree（ブロックOctree）を生成する。
【０１２９】
ステップＳ１２４において、可逆符号化部１８３は、ステップＳ１２３において生成された処理対象ブロックのOctreeデータを符号化し、ブロックポイントクラウド符号化データを生成する。
【０１３０】
ステップＳ１２５において、符号化部１０３は、設定したブロックを全て処理したか否かを判定する。未処理のブロックが存在すると判定された場合、処理はステップＳ１２１に戻り、それ以降の処理を繰り返す。
【０１３１】
また、ステップＳ１２５において、全てのブロックを処理したと判定された場合、ブロック符号化処理が終了し、処理は、図８に戻る。
【０１３２】
以上のように各処理を実行することにより、符号化装置１００は、任意の位置に、任意の大きさおよび形状のブロックを設定し、その管理情報を生成することができる。したがって、符号化装置１００は、デコーダが３Ｄデータの部分的な復号をより容易に行うことができるようにすることができる。
【０１３３】
＜２．第２の実施の形態＞
＜復号装置＞
図１０は、本技術を適用した画像処理装置の一態様である復号装置の構成の一例を示すブロック図である。図１０に示される復号装置２００は、図１の符号化装置１００に対応する復号装置であり、例えばこの符号化装置１００により生成された３Ｄデータ（例えばポイントクラウド）の符号化データ（ビットストリーム）を復号し、３Ｄデータを復元する装置である。
【０１３４】
なお、図１０においては、処理部やデータの流れ等の主なものを示しており、図１０に示されるものが全てとは限らない。つまり、復号装置２００において、図１０においてブロックとして示されていない処理部が存在したり、図１０において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、復号装置２００内の処理部等を説明する他の図においても同様である。
【０１３５】
図１０に示されるように復号装置２００は、制御部２０１、ビットストリームバッファ２０２、復号部２０３、および編集部２０４を有する。
【０１３６】
制御部２０１は、復号の制御に関する処理を行う。例えば、制御部２０１は、ビットストリームバッファ２０２から供給されるビットストリームを取得する。制御部２０１は、取得したビットストリームに含まれる管理情報を抽出する。なお、ビットストリームバッファ２０２から、ビットストリームから抽出された管理情報のみが供給されるようにしてもよい。その場合、制御部２０１は、管理情報を取得する。
【０１３７】
また、制御部２０１は、ユーザにより復号装置２００に入力される指定情報を受け付ける。この指定情報は、ユーザにより設定された、復号するブロックの選択に関する条件を指定する情報である。例えば、管理情報に含まれるいずれかのパラメータについて、ブロック選択のための条件がこの指定情報により指定される。
【０１３８】
制御部２０１は、それらの情報に基づいて、ビットストリームバッファ２０２乃至編集部２０４を適宜制御する。制御部２０１は、例えば、ブロック選択部２１１、復号制御部２１２、および編集制御部２１３を有する。
【０１３９】
ブロック選択部２１１は、復号するブロックの選択に関する処理を行う。例えば、ブロック選択部２１１は、制御部２０１が取得したビットストリームから管理情報を抽出し、その抽出した管理情報（または制御部２０１が取得した管理情報）と、制御部２０１が取得した指定情報とに基づいて、復号するブロックを選択する。つまり、ブロック選択部２１１は、３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報に基づいて、ユーザにより指定された条件を満たすブロックを選択する。
【０１４０】
例えば、指定情報によりポイントクラウドの符号化データを復号する３次元空間領域の範囲が指定されると、ブロック選択部２１１は、管理情報を参照し、ブロック情報の「ブロック位置」および「ブロックサイズ」に基づいて、その指定された範囲を含むブロックを選択する。このように管理情報として「ブロック位置」や「ブロックサイズ」が伝送されることにより、ブロック選択部２１１は、指定された範囲を含むブロックの選択を行うことができる。
【０１４１】
また、例えば、指定情報により必要解像度が指定されると、ブロック選択部２１１は、管理情報を参照し、ポイント情報の「解像度」に基づいて、その指定された必要解像度以上の解像度の３Ｄデータを含むブロックを選択する。このように管理情報として「解像度」が伝送されることにより、ブロック選択部２１１は、必要解像度によるブロックの選択を行うことができる。例えば、同一の領域に３Ｄデータの解像度が互いに異なる複数のブロックを設定し、このような必要解像度によるブロックの選択を可能とすることにより、解像度スケーラビリティを実現することができる。
【０１４２】
さらに、例えば、指定情報により立体構造物が指定されると、ブロック選択部２１１は、管理情報を参照し、ポイント情報の「構造物」に基づいて、その指定された立体構造物の３Ｄデータを含むブロックを選択する。このように管理情報として「構造物」が伝送されることにより、ブロック選択部２１１は、指定立体構造物のデータを含むブロックの選択を行うことができる。
【０１４３】
また、例えば、指定情報により必要信頼度が指定されると、ブロック選択部２１１は、管理情報を参照し、ポイント情報の「信頼度」に基づいて、その指定された必要信頼度以上の信頼度の３Ｄデータを含むブロックを選択する。このように管理情報として「信頼度」が伝送されることにより、ブロック選択部２１１は、必要信頼度によるブロックの選択を行うことができる。例えば、同一の領域に３Ｄデータの信頼度が互いに異なる複数のブロックを設定し、このような必要信頼度によるブロックの選択を可能とすることにより、信頼度スケーラビリティを実現することができる。
【０１４４】
さらに、例えば、指定情報により３Ｄデータの属性情報における色情報の有無が指定されると、ブロック選択部２１１は、管理情報を参照し、属性情報の「色」に基づいて、３Ｄデータの属性情報に色情報が存在する（または存在しない）ブロックを選択する。このように管理情報として「色」が伝送されることにより、ブロック選択部２１１は、色情報の有無等によるブロックの選択を行うことができる。
【０１４５】
また、例えば、指定情報により３Ｄデータの属性情報における法線情報の有無が指定されると、ブロック選択部２１１は、管理情報を参照し、属性情報の「法線」に基づいて、３Ｄデータの属性情報に法線情報が存在する（または存在しない）ブロックを選択する。このように管理情報として「法線」が伝送されることにより、ブロック選択部２１１は、法線情報の有無等によるブロックの選択を行うことができる。
【０１４６】
さらに、例えば、指定情報により３Ｄデータの属性情報における反射率情報の有無が指定されると、ブロック選択部２１１は、管理情報を参照し、属性情報の「反射率」に基づいて、３Ｄデータの属性情報に反射率情報が存在する（または存在しない）ブロックを選択する。このように管理情報として「反射率」が伝送されることにより、ブロック選択部２１１は、反射率情報の有無等によるブロックの選択を行うことができる。
【０１４７】
また、例えば、指定情報により時期（時刻やバージョン等）に関する条件が指定されると、ブロック選択部２１１は、管理情報を参照し、取得情報の「時刻」に基づいて、指定情報により指定された３Ｄデータの取得時期に関する条件を満たすブロックを選択する。このように管理情報として「時刻」が伝送されることにより、ブロック選択部２１１は、例えば、最新データを含むブロックの選択や、指定された時期に取得されたデータを含むブロックの選択等を行うことができる。
【０１４８】
さらに、例えば、指定情報により３Ｄデータの取得・計算手法に関する条件が指定されると、ブロック選択部２１１は、管理情報を参照し、取得情報の「計算手法」に基づいて、指定情報により指定された３Ｄデータの取得・計算手法に関する条件を満たすブロックを選択する。このように管理情報として「計算手法」が伝送されることにより、ブロック選択部２１１は、例えば、指定された取得・計算手法により取得された３Ｄデータを含むブロックの選択等を行うことができる。
【０１４９】
さらに、例えば、指定情報により３Ｄデータの取得に用いられたセンサに関する条件が指定されると、ブロック選択部２１１は、管理情報を参照し、取得情報の「センサ」に基づいて、指定情報により指定された３Ｄデータの取得に用いられたセンサに関する条件を満たすブロックを選択する。このように管理情報として「センサ」が伝送されることにより、ブロック選択部２１１は、例えば、指定されたセンサにより取得された３Ｄデータを含むブロックの選択等を行うことができる。
【０１５０】
また、例えば、指定情報により３Ｄデータの取得位置に関する条件が指定されると、ブロック選択部２１１は、管理情報を参照し、取得情報の「取得位置」に基づいて、指定情報により指定された取得位置に関する条件を満たすブロックを選択する。このように管理情報として「取得位置」が伝送されることにより、ブロック選択部２１１は、例えば、指定位置において取得された３Ｄデータを含むブロックの選択等を行うことができる。
【０１５１】
さらに、例えば、指定情報により３Ｄデータの取得者に関する条件が指定されると、ブロック選択部２１１は、管理情報を参照し、取得情報の「取得者」に基づいて、指定情報により指定された取得者に関する条件を満たすブロックを選択する。このように管理情報として「取得者」が伝送されることにより、ブロック選択部２１１は、例えば、指定されたユーザにより取得された３Ｄデータを含むブロックの選択等を行うことができる。
【０１５２】
以上のように、ブロック選択部２１１は、管理情報に含まれる各種パラメータについて、指定情報により指定される条件を満たすブロックを選択することができる。
【０１５３】
ブロックを選択すると、ブロック選択部２１１は、管理情報のブロック情報の「ブロック識別情報」に基づいてその選択したブロックの識別情報を特定し、ブロック選択情報として、その特定した識別情報（すなわち、選択したブロックの識別情報）をビットストリームバッファ２０２に供給する。また、ブロック選択部２１１が、必要に応じて、管理情報のブロック情報の「データ位置」を参照して、選択したブロックのデータ位置を示す情報もビットストリームバッファ２０２に供給するようにしてもよい。
【０１５４】
このようにすることにより、ブロック選択部２１１は、ビットストリームバッファ２０２を制御し、選択したブロックのデータを抽出させることができる。
【０１５５】
復号制御部２１２は、復号制御に関する処理を行う。例えば、復号制御部２１２は、制御部２０１が取得したビットストリームから管理情報を抽出し、その抽出した管理情報（または制御部２０１が取得した管理情報）と、制御部２０１が取得した指定情報とに基づいて、復号を制御する。つまり、復号制御部２１２は、管理情報や指定情報に基づいて、復号方法を設定し、復号制御情報を復号部２０３に供給することにより、その復号を制御する。例えば、復号制御部２１２は、復号に用いられるパラメータを制御したり、復号方法を選択したりする。
【０１５６】
編集制御部２１３は、復号したブロックのデータに対する編集に関する処理を行う。例えば、編集制御部２１３は、制御部２０１が取得したビットストリームから管理情報を抽出し、その抽出した管理情報（または制御部２０１が取得した管理情報）と、制御部２０１が取得した指定情報とに基づいて、復号したブロックのデータに対する編集を制御する。つまり、編集制御部２１３は、管理情報や指定情報に基づいて、編集内容を設定し、編集制御情報を編集部２０４に供給することにより、その編集を制御する。
【０１５７】
（１９）
ビットストリームバッファ２０２は、ビットストリームに関する処理を行う。例えば、ビットストリームバッファ２０２は、復号装置２００に入力されるビットストリームを取得し、保持する。また、ビットストリームバッファ２０２は、その保持しているビットストリームを制御部２０１に供給する。なお、ビットストリームバッファ２０２は、保持しているビットストリームから管理情報を抽出し、その抽出した管理情報を制御部２０１に供給するようにしてもよい。また、ビットストリームバッファ２０２は、ブロック選択部２１１から供給されるブロック選択情報を取得する。さらに、ビットストリームバッファ２０２は、そのブロック選択情報に基づいて、保持しているビットストリームから、ブロック選択部２１１により選択されたブロック（ブロック選択情報により指定されるブロック）のビットストリーム（ブロックビットストリーム）を抽出し、それを復号部２０３に供給する。
【０１５８】
（１６）
復号部２０３は、復号に関する処理を行う。例えば、復号部２０３は、ビットストリームバッファ２０２から供給されるブロックビットストリームを取得する。復号部２０３は、そのブロックビットストリームを復号し、ブロック選択部２１１により選択されたブロックのポイントクラウドデータ（ブロックポイントクラウドデータ）を生成する。なお、復号制御部２１２から復号制御情報が供給される場合、復号部２０３は、その復号制御情報を取得し、その情報に従って復号を行う。復号部２０３は、生成したブロックポイントクラウドデータを編集部２０４に供給する。
【０１５９】
（１８）
編集部２０４は、復号部２０３による復号の結果であるブロックポイントクラウドデータに対する編集に関する処理を行う。例えば、編集部２０４は、復号部２０３から供給されるブロックポイントクラウドデータを取得する。また、編集部２０４は、編集制御部２１３から供給される編集制御情報を取得する。さらに、編集部２０４は、その編集制御情報に基づいてブロックポイントクラウドデータを編集する。
【０１６０】
この編集として、例えば編集部２０４は、ブロックポイントクラウドデータに対して、情報を削除したり、追加したり、更新したりする。例えば、編集部２０４は、複数のブロックのブロックポイントクラウドデータを合成したり、ブロックポイントクラウドデータの一部を切り取って削除したりする。
【０１６１】
編集部２０４は、適宜編集したポイントクラウドデータを復号装置２００の外部に出力する。
【０１６２】
＜復号例＞
例えば、図１１のＡにしめされるような矩形のブロック２３１が設定され、このブロック２３１が図１１のＢのように３×３×３個並べて配置された３次元空間領域が設定されているとする。
【０１６３】
図１１のＣに示されるような、この３次元空間領域２３２の一部の領域２３３を復号するとする。この領域２３３は、図１１のＤに示されるように、３次元空間領域２３２の全てのブロック２３１にかかっている。したがって、この場合、ブロック選択部２１１は、３次元空間領域２３２の全てのブロック２３１を選択し、復号部は、その３次元空間領域２３２の全てのブロック２３１を復号する。ただし、必要な情報は、図１１のＤに示される領域２３３内の３Ｄデータである。したがって、この場合、編集部２０４が、復号部２０３の復号により得られた３次元空間領域２３２全体の３Ｄデータから、領域２３３内の３Ｄデータを抽出する。
【０１６４】
なお、復号部２０３が、部分領域復号に対応し、ブロックビットストリームの一部の領域のみを復号することができる場合、復号制御部２１２の制御によって、復号部２０３に領域２３３内の３Ｄデータのみを復号させるようにしてもよい。
【０１６５】
＜復号部＞
図１２は、図１０の復号部２０３の主な構成例を示すブロック図である。図１２に示されるように復号部２０３は、可逆復号部２５１、Octree復号部２５２、およびVoxel復号部２５３を有する。
【０１６６】
可逆復号部２５１は、符号化データの可逆復号に関する処理を行う。例えば、可逆復号部２５１は、ビットストリームバッファ２０２から供給されるブロックビットストリームを取得する。また、可逆復号部２５１は、そのブロックビットストリームを復号し、選択されたブロックのOctreeデータ（ブロックOctreeデータとも称する）を生成する。なお、復号制御部２１２から復号制御情報が供給される場合、可逆復号部２５１は、その復号制御情報に従って復号を行う。さらに、可逆復号部２５１は、そのブロックOctreeデータをOctree復号部２５２に供給する。
【０１６７】
Octree復号部２５２は、Octreeの復号に関する処理を行う。例えば、Octree復号部２５２は、可逆復号部２５１から供給されるブロックOctreeデータを取得する。また、Octree復号部２５２は、そのブロックOctreeデータから選択されたブロックのOctree（ブロックOctreeとも称する）を構築し、そのブロックOctreeから選択されたブロックのボクセル（Voxel）データ（ブロックボクセルデータとも称する）を生成する。Octree復号部２５２は、生成したブロックボクセルデータをVoxel復号部２５３に供給する。
【０１６８】
Voxel復号部２５３は、ボクセル（Voxel）データの復号に関する処理を行う。例えば、Voxel復号部２５３は、Octree復号部２５２から供給されるブロックボクセルデータを取得する。また、Voxel復号部２５３は、その取得したブロックボクセルデータから選択されたブロックのポイントクラウド（ブロックポイントクラウドデータ）を復元する。Voxel復号部２５３は、このようにして生成したブロックポイントクラウドデータを編集部２０４（図１０）に供給する。
【０１６９】
なお、これらの処理部（可逆復号部２５１、Octree復号部２５２、およびVoxel復号部２５３）は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
【０１７０】
以上のような構成を有することにより、復号装置２００は、管理情報に基づいて、３Ｄデータの部分的な復号をより容易に行うことができる。
【０１７１】
＜復号処理の流れ＞
次に、この復号装置２００により実行される復号処理の流れの例を、図１３のフローチャートを参照して説明する。
【０１７２】
復号処理が開始されると、復号装置２００のビットストリームバッファ２０２は、ステップＳ２０１において、ビットストリームを取得する。
【０１７３】
ステップＳ２０２において、制御部２０１は、指定情報を受け付ける。
【０１７４】
（２０）
ステップＳ２０３において、ブロック選択部２１１は、ステップＳ２０１の処理により取得されたビットストリームから抽出された管理情報と、ステップＳ２０２において受け付けた指定情報とに基づいて、復号するブロックを選択する。
【０１７５】
ステップＳ２０４において、ビットストリームバッファ２０２は、ステップＳ２０３において選択されたブロックのビットストリームを、ステップＳ２０１において取得されたビットストリームから抽出する。
【０１７６】
ステップＳ２０５において、復号制御部２１２は、ステップＳ２０１の処理により取得されたビットストリームから抽出された管理情報と、ステップＳ２０２において受け付けた指定情報とに基づいて、復号方法を設定する。
【０１７７】
（２０）
ステップＳ２０６において、復号部２０３は、ブロック復号処理を実行し、ステップＳ２０５において設定された復号方法で、ステップＳ２０４において抽出されたブロックのビットストリームを復号し、そのブロックのポイントクラウドデータを生成する。
【０１７８】
ステップＳ２０７において、編集制御部２１３は、ステップＳ２０１の処理により取得されたビットストリームから抽出された管理情報と、ステップＳ２０２において受け付けた指定情報とに基づいて、編集方法を設定する。
【０１７９】
ステップＳ２０８において、編集部２０４は、ステップＳ２０７において設定された編集方法で、ステップＳ２０６において生成されたポイントクラウドデータを編集する。
【０１８０】
ステップＳ２０９において、編集部２０４は、ステップＳ２０８において編集したポイントクラウドデータを復号装置２００の外部に出力する。
【０１８１】
ステップＳ２０９の処理が終了すると復号処理が終了する。
【０１８２】
＜ブロック復号処理の流れ＞
図１３のステップＳ２０６において実行されるブロック復号処理の流れの例を、図１４のフローチャートを参照して説明する。
【０１８３】
ブロック復号処理が開始されると、可逆復号部２５１は、ステップＳ２２１において、未処理のブロックの中から処理対象ブロックを選択する。
【０１８４】
ステップＳ２２２において、可逆復号部２５１は、処理対象ブロックのビットストリームを復号し、処理対象ブロックのOctreeデータを生成する。
【０１８５】
ステップＳ２２３において、Octree復号部２５２は、ステップＳ２２２において生成された処理対象ブロックのOctreeデータから処理対象ブロックのOctreeを構築し、処理対象ブロックのボクセルデータを生成する。
【０１８６】
ステップＳ２２４において、Voxel復号部２５３は、ステップＳ２２３において生成された処理対象ブロックのボクセルデータから処理対象ブロックのポイントクラウドデータを生成する。
【０１８７】
ステップＳ２２５において、復号部２０３は、選択されたブロックを全て処理したか否かを判定する。未処理のブロックが存在すると判定された場合、処理はステップＳ２２１に戻り、それ以降の処理を繰り返す。
【０１８８】
また、ステップＳ２２５において、すべてのブロックを処理したと判定された場合、ブロック復号処理が終了し、処理は図１３に戻る。
【０１８９】
以上のように各処理を実行することにより、復号装置２００は、管理情報に基づいて、３Ｄデータの部分的な復号をより容易に行うことができる。
【０１９０】
＜３．ユースケース＞
次に、上述の符号化装置１００および復号装置２００のユースケースについて説明する。例えば、図１５のＡに示されるようなブロックB0乃至ブロックB4が設定されているとする。ブロックのWorld座標での位置をBn(add)（= (x,y,z)）とし、サイズをBn(size)（= size）とする。この場合、ブロックB0乃至ブロックB4の位置およびサイズは、図１５のＢの各式のように設定されている。同様の式を以下にも示す。
【０１９１】
B0(add) = (0,0,0), B0(size) = 10
B1(add) = (10,0,0), B1(size) = 10
B2(add) = (0,10,0), B2(size) = 10
B3(add) = (10,10,0), B3(size) = 10
B4(add) = (5,5,5), B4(size) = 10
【０１９２】
このような各ブロックが符号化されているとする。
【０１９３】
＜ケース１＞
例えば、図１５のＣに示されるような領域の３Ｄデータの復号が指定情報により指定されるとする。この範囲を以下にも示す。
【０１９４】
Bd(loc) = (5,5,0 - 15,15,5)
【０１９５】
まず、ブロック選択部２１１は、Bd(loc)からこの領域を含んでいるブロックを特定する。この場合、ブロックB0乃至ブロックB3が該当する。そして、ブロック同士で領域が重複しないので、ブロック選択部２１１は、ブロックB0乃至ブロックB3を全て選択する。復号部２０３は、ブロック選択部により選択されたブロックB0乃至ブロックB3の符号化データを復号し、３Ｄデータ（例えばポイントクラウドデータ）を生成する。
【０１９６】
＜ケース２＞
例えば、図１５のＤに示されるような領域の３Ｄデータの復号が指定情報により指定されるとする。この範囲を以下にも示す。
【０１９７】
Bd(loc) = (5,5,5 - 15,15,10)
【０１９８】
まず、ブロック選択部２１１は、Bd(loc)からこの領域を含んでいるブロックを特定する。この場合、ブロックB0乃至ブロックB4が該当する。そして、ブロックB4がその他のブロックと重複している。Bd(loc)に対して占める割合は、ブロックB4が１００％であり、ブロックB0乃至ブロックB4が２５％である。したがって、ブロック選択部２１１は、ブロックB4を選択する。復号部２０３は、ブロック選択部により選択されたブロックB4の符号化データを復号し、３Ｄデータ（例えばポイントクラウドデータ）を生成する。
【０１９９】
＜ケース３＞
例えば、図１５のＥに示されるような領域の３Ｄデータの復号が指定情報により指定されるとする。この範囲を以下にも示す。
【０２００】
Bd(loc) = (5,5,5 - 10,10,10)
【０２０１】
まず、ブロック選択部２１１は、Bd(loc)からこの領域を含んでいるブロックを特定する。この場合、ブロックB0とブロックB4が該当する。そして、ブロックB0とブロックB4が重複している。Bd(loc)に対して占める割合は、ブロックB0もブロックB4がともに１００％である。したがって、ブロック選択部２１１は、これらの該当ブロックにおいて別要素（付加情報）で優先順位を決定して重複を避けて選択するようにしてもよい。例えば更新時刻などから新しい方を選択するようにしてもよい。復号部２０３は、ブロック選択部により選択されたブロックの符号化データを復号し、３Ｄデータ（例えばポイントクラウドデータ）を生成する。
【０２０２】
以上のように、復号装置２００は、管理情報に基づいて、任意の位置、大きさ、形状のブロックを容易に復号することができる。つまり、復号装置２００は、管理情報に基づいて、３Ｄデータの部分的な復号をより容易に行うことができる。
【０２０３】
＜４．第３の実施の形態＞
＜符号化装置の他の構成例１＞
なお、符号化装置１００の構成は、任意であり、＜１．第１の実施の形態＞において説明した構成例（図１）に限定されない。例えば、図１６に示されるように、符号化装置１００が、符号化部１０３の代わりに、互いに並列に処理を実行可能な複数の符号化部１０３−Ｎを有するようにしてもよい。この場合、ブロック設定部１０１において複数のブロックが設定されると、各ブロックのポイントクラウドデータ（ブロックポイントクラウドデータ）は互いに異なる符号化部１０３−Ｎに供給され、互いに独立に符号化される。そして、ビットストリーム生成部１０４は、各符号化部１０３−Ｎから供給されるブロックポイントクラウド符号化データを取得し、それらのブロックポイントクラウド符号化データと、管理情報とを含むビットストリームを生成する。
【０２０４】
このようにすることにより、符号化の並列処理が可能である。なお、図１の符号化部１０３が、複数のブロックポイントクラウドデータの復号を互いに並行に実行することができるようにしてもよい。
【０２０５】
＜符号化装置の他の構成例２＞
また、図１７に示されるように、図１６の構成例からさらにビットストリーム生成部を省略するようにしてもよい。この場合、各符号化部１０３−Ｎにおいて生成されたブロックポイントクラウドビットストリームと、管理情報生成部１０２において生成された管理情報とは、それぞれ個別の情報として出力される。
【０２０６】
＜５．第４の実施の形態＞
＜復号装置の他の構成例１＞
符号化装置１００の場合と同様に復号装置２００も、その構成は、任意であり、＜２．第２の実施の形態＞において説明した構成例（図１０）に限定されない。例えば、図１８に示されるように、復号装置２００が、復号部２０３の代わりに、互いに並列に処理を実行可能な複数の復号部２０３−Ｎを有するようにしてもよい。この場合、制御部２０１において複数のブロックが復号対象として設定されると、各ブロックのビットストリーム（ブロックビットストリーム）は互いに異なる復号部２０３−Ｎに供給され、互いに独立に復号される。そして、編集部２０４は、各復号部２０３−Ｎから供給されるブロックポイントクラウドデータを取得し、それらを編集してポイントクラウドデータを生成する。
【０２０７】
このようにすることにより、復号の並列処理が可能である。なお、図１０の復号部２０３が、複数のブロックビットストリームの復号を互いに並行に実行することができるようにしてもよい。
【０２０８】
＜復号装置の他の構成例２＞
また、図１８に示されるように、複数のブロックビットストリームと管理情報が復号装置２００に入力されるようにしてもよい。この場合、ビットストリームバッファ２０２は、復号装置２００に入力される複数のブロックビットストリームと管理情報を取得し、保持する。そして、ビットストリームバッファ２０２は、取得した管理情報を制御部２０１に供給し、ブロック選択情報に従って、制御部２０１により選択されたブロックのブロックビットストリームを読み出し、復号部２０３−Ｎに供給する。
【０２０９】
＜６．付記＞
＜コンピュータ＞
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
【０２１０】
図２０は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０２１１】
図２０に示されるコンピュータ９００において、CPU（Central Processing Unit）９０１、ROM（Read Only Memory）９０２、RAM（Random Access Memory）９０３は、バス９０４を介して相互に接続されている。
【０２１２】
バス９０４にはまた、入出力インタフェース９１０も接続されている。入出力インタフェース９１０には、入力部９１１、出力部９１２、記憶部９１３、通信部９１４、およびドライブ９１５が接続されている。
【０２１３】
入力部９１１は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部９１２は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部９１３は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部９１４は、例えば、ネットワークインタフェースよりなる。ドライブ９１５は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア９２１を駆動する。
【０２１４】
以上のように構成されるコンピュータでは、CPU９０１が、例えば、記憶部９１３に記憶されているプログラムを、入出力インタフェース９１０およびバス９０４を介して、RAM９０３にロードして実行することにより、上述した一連の処理が行われる。RAM９０３にはまた、CPU９０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０２１５】
コンピュータ（CPU９０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア９２１に記録して適用することができる。その場合、プログラムは、リムーバブルメディア９２１をドライブ９１５に装着することにより、入出力インタフェース９１０を介して、記憶部９１３にインストールすることができる。
【０２１６】
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部９１４で受信し、記憶部９１３にインストールすることができる。
【０２１７】
その他、このプログラムは、ROM９０２や記憶部９１３に、あらかじめインストールしておくこともできる。
【０２１８】
＜本技術の適用対象＞
以上においては、ポイントクラウドデータの符号化・復号に本技術を適用する場合について説明したが、本技術は、これらの例に限らず、任意の規格の３Ｄデータの符号化・復号に対して適用することができる。つまり、上述した本技術と矛盾しない限り、符号化・復号方式等の各種処理、並びに、３Ｄデータやメタデータ等の各種データの仕様は任意である。また、本技術と矛盾しない限り、上述した一部の処理や仕様を省略してもよい。
【０２１９】
本技術は、任意の構成に適用することができる。例えば、本技術は、衛星放送、ケーブルＴＶなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機（例えばテレビジョン受像機や携帯電話機）、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録したり、これら記憶媒体から画像を再生したりする装置（例えばハードディスクレコーダやカメラ）などの、様々な電子機器に適用され得る。
【０２２０】
また、例えば、本技術は、システムLSI（Large Scale Integration）等としてのプロセッサ（例えばビデオプロセッサ）、複数のプロセッサ等を用いるモジュール（例えばビデオモジュール）、複数のモジュール等を用いるユニット（例えばビデオユニット）、または、ユニットにさらにその他の機能を付加したセット（例えばビデオセット）等、装置の一部の構成として実施することもできる。
【０２２１】
また、例えば、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、本技術を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングとして実施するようにしてもよい。例えば、コンピュータ、AV（Audio Visual）機器、携帯型情報処理端末、IoT（Internet of Things）デバイス等の任意の端末に対して、画像（動画像）に関するサービスを提供するクラウドサービスにおいて本技術を実施するようにしてもよい。
【０２２２】
なお、本明細書において、システムとは、複数の構成要素（装置、モジュール（部品）等）の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、１つの筐体の中に複数のモジュールが収納されている１つの装置は、いずれも、システムである。
【０２２３】
＜本技術を適用可能な分野・用途＞
本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
【０２２４】
＜その他＞
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の２状態を識別する際に用いる情報だけでなく、３以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の２値であってもよいし、３値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、１bitでも複数bitでもよい。また、識別情報（フラグも含む）は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
【０２２５】
また、符号化データ（ビットストリーム）に関する各種情報（メタデータ等）は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る（リンクさせ得る）ようにすることを意味する。つまり、互いに関連付けられたデータは、１つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ（画像）に関連付けられた情報は、その符号化データ（画像）とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ（画像）に関連付けられた情報は、その符号化データ（画像）とは別の記録媒体（または同一の記録媒体の別の記録エリア）に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、１フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
【０２２６】
なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを１つのデータにまとめるといった、複数の物を１つにまとめることを意味し、上述の「関連付ける」の１つの方法を意味する。
【０２２７】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０２２８】
例えば、１つの装置（または処理部）として説明した構成を分割し、複数の装置（または処理部）として構成するようにしてもよい。逆に、以上において複数の装置（または処理部）として説明した構成をまとめて１つの装置（または処理部）として構成されるようにしてもよい。また、各装置（または各処理部）の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置（または処理部）の構成の一部を他の装置（または他の処理部）の構成に含めるようにしてもよい。
【０２２９】
また、例えば、上述したプログラムは、任意の装置において実行されるようにしてもよい。その場合、その装置が、必要な機能（機能ブロック等）を有し、必要な情報を得ることができるようにすればよい。
【０２３０】
また、例えば、１つのフローチャートの各ステップを、１つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。さらに、１つのステップに複数の処理が含まれる場合、その複数の処理を、１つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。換言するに、１つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を１つのステップとしてまとめて実行することもできる。
【０２３１】
また、例えば、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
【０２３２】
また、例えば、本技術に関する複数の技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
【０２３３】
なお、本技術は以下のような構成も取ることができる。
（１）  ３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報を生成する管理情報生成部
を備える画像処理装置。
（２）  前記管理情報は、前記ブロックに関する情報であるブロック情報を含む
（１）に記載の画像処理装置。
（３）  前記ブロック情報は、前記ブロックの識別情報、前記ブロックの位置、前記ブロックのサイズ、および前記ブロックのデータの位置の内の少なくといずれか１つを含む
（２）に記載の画像処理装置。
（４）  前記管理情報は、前記ブロック内の前記３Ｄデータの位置情報に関する情報である位置情報を含む
（１）乃至（３）のいずれかに記載の画像処理装置。
（５）  前記位置情報は、前記３Ｄデータの解像度、前記３Ｄデータが表す前記３次元構造、および前記３Ｄデータの信頼度の内の少なくともいずれか１つを含む
（４）に記載の画像処理装置。
（６）  前記管理情報は、前記ブロック内の前記３Ｄデータの属性情報に関する情報である属性情報を含む
（１）乃至（５）のいずれかに記載の画像処理装置。
（７）  前記属性情報は、前記３Ｄデータの色、法線、および反射率の内の少なくともいずれか１つを含む
（６）に記載の画像処理装置。
（８）  前記管理情報は、前記３Ｄデータの取得に関する情報である取得情報を含む
（１）乃至（７）のいずれかに記載の画像処理装置。
（９）  前記取得情報は、前記３Ｄデータの取得時刻、前記３Ｄデータの計算手法、前記３Ｄデータの取得に用いたセンサ、前記３Ｄデータの取得位置、および前記３Ｄデータの取得者の内の少なくともいずれか１つを含む
（８）に記載の画像処理装置。
（１０）  前記管理情報は、３次元空間領域全体に関する情報である全体領域情報を含む
（１）乃至（９）のいずれかに記載の画像処理装置。
（１１）  前記全体領域情報は、前記３次元空間領域全体の位置、前記３次元空間領域全体のサイズ、前記３次元空間領域に含まれるブロックに関する情報、前記３次元空間領域に含まれる全ブロックに共通の管理情報の内の少なくともいずれか１つを含む
（１０）に記載の画像処理装置。
（１２）  前記３Ｄデータの符号化データと、前記管理情報生成部により生成された前記管理情報とを含むビットストリームを生成するビットストリーム生成部
をさらに備える（１）乃至（１１）のいずれかに記載の画像処理装置。
（１３）  前記管理情報生成部により生成された前記管理情報により管理される前記ブロックを設定するブロック設定部
をさらに備える（１）乃至（１２）のいずれかに記載の画像処理装置。
（１４）  前記ブロック設定部により設定された前記ブロック内の前記３Ｄデータを符号化する符号化部
をさらに備える（１３）に記載の画像処理装置。
（１５）  ３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報を生成する
画像処理方法。
【０２３４】
（１６）  ３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報に基づいて、ユーザにより指定された条件を満たす前記ブロックを選択するブロック選択部と、
前記ブロック選択部により選択された前記ブロック内の前記３Ｄデータの符号化データを復号する復号部と
を備える画像処理装置。
（１７）  前記管理情報と前記ユーザによる指示とに基づいて、前記復号部による前記符号化データの復号を制御する復号制御部
をさらに備える（１６）に記載の画像処理装置。
（１８）  前記管理情報と前記ユーザによる指示とに基づいて、前記３Ｄデータの編集を制御する編集制御部と、
前記編集制御部の制御に従って、前記復号部により前記符号化データが復号されて生成された前記３Ｄデータを編集する編集部と
をさらに備える（１６）または（１７）に記載の画像処理装置。
（１９）  前記３次元空間領域の全体の前記３Ｄデータの符号化データから、前記ブロック選択部により選択された前記ブロック内の前記３Ｄデータの符号化データを抽出する抽出部をさらに備え、
前記復号部は、前記抽出部により抽出された、前記ブロック選択部により選択された前記ブロック内の前記３Ｄデータの符号化データを復号する
（１６）乃至（１８）のいずれかに記載の画像処理装置。
（２０）  ３次元構造を表す３Ｄデータを含む所定の３次元空間領域の部分領域であるブロックの管理情報に基づいて、ユーザにより指定された条件を満たす前記ブロックを選択し、
選択された前記ブロック内の前記３Ｄデータの符号化データを復号する
画像処理方法。
【符号の説明】
【０２３５】
１００  符号化装置，  １０１  ブロック設定部，  １０２  管理情報生成部，  １０３  符号化部，  １０４  ビットストリーム生成部，  １８１  Voxel生成部，  １８２  Octree生成部，  １８３  可逆符号化部，  ２００  復号装置，  ２０１  制御部，  ２０２  ビットストリームバッファ，  ２０３  復号部，  ２０４  編集部，  ２１１  ブロック選択部，  ２１２  復号制御部，  ２１３  編集制御部，  ２５１  可逆復号部，２５２  Octree復号部，  ２５３  Voxel復号部
【図１】
2020071116.tif 000003
【図２】
2020071116.tif 000004
【図３】
2020071116.tif 000005
【図４】
2020071116.tif 000006
【図５】
2020071116.tif 000007
【図６】
2020071116.tif 000008
【図７】
2020071116.tif 000009
【図８】
2020071116.tif 000010
【図９】
2020071116.tif 000011
【図１０】
2020071116.tif 000012
【図１１】
2020071116.tif 000013
【図１２】
2020071116.tif 000014
【図１３】
2020071116.tif 000015
【図１４】
2020071116.tif 000016
【図１５】
2020071116.tif 000017
【図１６】
2020071116.tif 000018
【図１７】
2020071116.tif 000019
【図１８】
2020071116.tif 000020
【図１９】
2020071116.tif 000021
【図２０】
2020071116.tif 000022
【国際調査報告】
2020071116.tif 000023
2020071116.tif 000024
2020071116.tif 000025
2020071116.tif 000026