WO2019069711A1 - 情報処理装置および方法 - Google Patents

情報処理装置および方法 Download PDF

Info

Publication number
WO2019069711A1
WO2019069711A1 PCT/JP2018/034982 JP2018034982W WO2019069711A1 WO 2019069711 A1 WO2019069711 A1 WO 2019069711A1 JP 2018034982 W JP2018034982 W JP 2018034982W WO 2019069711 A1 WO2019069711 A1 WO 2019069711A1
Authority
WO
WIPO (PCT)
Prior art keywords
octree
node
unit
information
pattern
Prior art date
Application number
PCT/JP2018/034982
Other languages
English (en)
French (fr)
Inventor
加藤 毅
智 隈
央二 中神
幸司 矢野
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to KR1020207007767A priority Critical patent/KR102662179B1/ko
Priority to CN201880063606.6A priority patent/CN111183588B/zh
Priority to JP2019546625A priority patent/JP7268601B2/ja
Priority to EP18865014.7A priority patent/EP3694110A4/en
Priority to US16/651,358 priority patent/US11200703B2/en
Publication of WO2019069711A1 publication Critical patent/WO2019069711A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3079Context modeling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering

Abstract

本開示は、木構造化可能なデータ群の解像度を部分的に制御することができるようにする情報処理装置および方法に関する。 OctreeパタンのデータであるOctreeパタンデータを符号化し、そのOctreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報を含むビットストリームを生成する。また、ビットストリームを復号し、Octreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報に基づいて、その最下位レベルと異なるレベルの葉ノードを含むOctreeパタンを構築する。本開示は、例えば、情報処理装置、画像処理装置、電子機器、情報処理方法、またはプログラム等に適用することができる。

Description

情報処理装置および方法
 本開示は、情報処理装置および方法に関し、特に、木構造化可能なデータ群の解像度を部分的に制御することができるようにした情報処理装置および方法に関する。
 従来、点群の位置情報や属性情報等により3次元構造を表すポイントクラウドや、頂点、エッジ、面で構成され、多角形表現を使用して3次元形状を定義するメッシュの頂点データの圧縮方法として、例えばOctree等のような、ボクセル(Voxel)を用いた量子化があった(例えば非特許文献1参照)。
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
 しかしながら、Octreeパタンでは、全てのポイントが同一解像度で表現される。そのため、ポイントクラウドにおいて一部の領域のポイントの解像度を他の領域の解像度と異なるものとする場合に、Octree符号化を適用することは困難であった。
 本開示は、このような状況に鑑みてなされたものであり、木構造化可能なデータ群の解像度を部分的に制御することができるようにするものである。
 本技術の一側面の情報処理装置は、OctreeパタンのデータであるOctreeパタンデータを符号化し、前記Octreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報を含むビットストリームを生成する符号化部備える情報処理装置である。
 本技術の一側面の情報処理方法は、OctreeパタンのデータであるOctreeパタンデータを符号化し、前記Octreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報を含むビットストリームを生成する情報処理方法である。
 本技術の他の側面の情報処理装置は、ビットストリームを復号し、Octreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報に基づいて、前記最下位レベルと異なるレベルの前記葉ノードを含む前記Octreeパタンを構築する復号部を備える情報処理装置である。
 本技術の他の側面の情報処理方法は、ビットストリームを復号し、Octreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報に基づいて、前記最下位レベルと異なるレベルの前記葉ノードを含む前記Octreeパタンを構築する情報処理方法である。
 本技術の一側面の情報処理装置および方法においては、OctreeパタンのデータであるOctreeパタンデータが符号化され、そのOctreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報を含むビットストリームが生成される。
 本技術の他の側面の情報処理装置および方法においては、ビットストリームが復号され、Octreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報に基づいて、その最下位レベルと異なるレベルの葉ノードを含むOctreeパタンが構築される。
 本開示によれば、情報を処理することができる。特に、木構造化可能なデータ群の解像度を部分的に制御することができる。
ポイントクラウドの例を説明する図である。 Octreeパタンの深さ制御の例について説明する図である。 符号化装置の主な構成例を示すブロック図である。 符号化の概要の例を説明する図である。 深さ制御情報の例を説明する図である。 符号化部の主な構成例を示すブロック図である。 符号化処理の流れの例を説明するフローチャートである。 ジオメトリデータ符号化処理の流れの例を説明するフローチャートである。 符号化部の主な構成例を示すブロック図である。 ジオメトリデータ符号化処理の流れの例を説明するフローチャートである。 復号装置の主な構成例を示すブロック図である。 復号部の主な構成例を示すブロック図である。 復号処理の流れの例を説明するフローチャートである。 ビットストリーム復号処理の流れの例を説明するフローチャートである。 深さ制御情報の例を説明する図である。 符号化部の主な構成例を示すブロック図である。 ジオメトリデータ符号化処理の流れの例を説明するフローチャートである。 ジオメトリデータ符号化処理の流れの例を説明する、図17に続くフローチャートである。 符号化部の主な構成例を示すブロック図である。 ジオメトリデータ符号化処理の流れの例を説明するフローチャートである。 ジオメトリデータ符号化処理の流れの例を説明する、図20に続くフローチャートである。 復号部の主な構成例を示すブロック図である。 ビットストリーム復号処理の流れの例を説明するフローチャートである。 深さ制御情報の例を説明する図である。 符号化部の主な構成例を示すブロック図である。 ジオメトリデータ符号化処理の流れの例を説明するフローチャートである。 復号部の主な構成例を示すブロック図である。 ビットストリーム復号処理の流れの例を説明するフローチャートである。 コンピュータの主な構成例を示すブロック図である。
 以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
 1.Octreeパタンの部分的な深さ制御
 2.第1の実施の形態(終端識別ビットパタン)
 3.第2の実施の形態(end_of_node_one_bit)
 4.第3の実施の形態(split_voxel_flag)
 5.その他
 <1.Octreeパタンの部分的な深さ制御>
  <ポイントクラウド>
 従来、点群の位置情報や属性情報等により3次元構造を表すポイントクラウドや、頂点、エッジ、面で構成され、多角形表現を使用して3次元形状を定義するメッシュ等のデータが存在した。
 例えばポイントクラウドの場合、図1のAに示されるような立体構造物を、図1のBに示されるような多数の点(ポイントデータ)の集合(点群)として表現する。つまり、ポイントクラウドのデータ(ポイントクラウドデータとも称する)は、この点群の各点の位置情報や属性情報(例えば色等)により構成される。したがってデータ構造が比較的単純であるとともに、十分に多くの点を用いることにより任意の立体構造を十分な精度で表現することができる。
 しかしながら、このようなポイントクラウドやメッシュ等のデータはそのデータ量が比較的大きいので、符号化等によるデータ量の圧縮が求められている。例えば、OctreeやKDtree等といったボクセル(Voxel)を用いた符号化方法が考えられた。ボクセルは、符号化対象の位置情報を量子化するためのデータ構造である。
  <Octree符号化>
 このボクセル構造のデータ(ボクセルデータとも称する)は1階層のデータである。つまり全てのボクセルの大きさは互いに同一である。Octree符号化は、このようなボクセルデータを、ポイントが存在する空間を再帰的に2×2×2分割(x,y,zの各方向に2分割)した最大8分木構造(Octreeパタンとも称する)に変換する。このようにすることにより、ポイントが存在しない空間をまとめる(上位レベル化する)ことができるので、情報量を低減させることができる。
 つまり、Octreeパタンでは、ポイントが存在する領域がノードとされる。各ノードには、その領域(空間)を2×2×2分割(8分割)した各領域(空間)についてポイントが存在するか否かを示すビット列が設定される。例えば、その各領域のポイントの存在の有無を1ビットで表現した(値「0」の場合ポイントが存在しないことを示し、値「1」の場合ポイントが存在することを示すようにした)、8ビットのビット列を各ノードに設定するようにする。このビット列の値が「1」のビットに対応する領域についてのみ子ノードが形成される。つまり、最大8分木となる。このような分木が繰り返され、レベルがパラメータセット等に設定された深さ(すなわち最下位レベル)に達すると、分木が終了する。
 つまり、Octreeパタンにおいて、子ノードを持たないノード(葉ノード)は、パラメータセット等において設定されるOctreeパタンの深さに対応する最下位レベルにのみ形成される。したがって、このOctreeパタンの深さ(レベル数)は、図2のAに示される木構造のように、ポイントが存在する領域については全て同一である。換言するに、全てのポイントが同一の解像度で表現される。
 ところで、ポイントクラウドのポイントの解像度を部分的に制御する機能が求められている。部分的な制御とは、例えば、一部のポイントの解像度を他の部分のポイントの解像度と異なるものにする等、全ポイントの解像度を統一させないようにすることである。
 例えば、ポイントクラウドに注目領域(ROI(Region of Interest))が存在する場合、その注目領域のポイントを他の領域のポイントよりも高解像度化させることが考えられる。このようにすることにより、主観画質を需要に応じて向上させることができる。また、符号化効率を向上させることもできる。
 また、例えば、ポイントがボクセルグリッドに一致し、解像度を上げなくても(他のポイントよりも低解像度であっても)そのポイントを表現することができる場合が考えられる。このようにすることにより、Octreeパタンの不要なノードの増大を抑制し、符号化効率の低減を抑制することができる。
 さらに、例えば、Octree符号化と、その他の符号化ツールとを組み合わせ、その他の符号化ツールにより一部のノードを高解像度化する場合が考えられる。
 しかしながら、上述のように、Octreeパタンでは葉ノードが最下位レベルにのみ形成されるため、このようなポイントの解像度の部分的な制御を表現することができなかった。つまり、木構造化可能なデータ群の解像度を部分的に制御することは困難であった。換言するに、上述のようにポイントクラウドのポイントの解像度を部分的に制御する場合、Octree符号化を適用することが困難になり、符号化効率が低減するおそれがあった。つまり、データ群の解像度を部分的に制御する場合に、そのデータ群の木構造化が困難になり、符号化効率が低減するおそれがあった。
  <深さ制御>
 そこで、OctreeパタンのデータであるOctreeパタンデータを符号化し、そのOctreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに、葉ノードが形成されることを示す『深さ制御情報』を含むビットストリームを生成するようにする。
 例えば、情報処理装置において、OctreeパタンのデータであるOctreeパタンデータを符号化し、そのOctreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに、葉ノードが形成されることを示す『深さ制御情報』を含むビットストリームを生成する符号化部を備えるようにする。
 このようにすることにより、例えば図2のBに示される木構造のように、Octreeパタンの深さを部分的に制御することができる。つまり、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる。つまり、木構造化可能なデータ群の解像度を部分的に制御することができる。
 また、換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においても、Octree符号化を適用することができ、符号化効率の低減を抑制することができる。つまり、データ群の解像度を部分的に制御する場合にも、そのデータ群の木構造化を実現することができ、符号化効率の低減を抑制することができる。
 なお、以下においては、本技術をOctreeパタンデータに適用する場合を例に説明するが、本技術は、例えばKDtree、2分木構造、4分木構造等、任意の木構造を有するデータに適用することができる。また、以下においてはポイントクラウドデータ(を量子化したボクセルデータ)を例に説明するが、データの解像度を部分的に制御することができるものであれば、このデータの内容は任意である。例えば、このデータは、メッシュ(Mesh)等のような3次元構造に関する他の種類のデータであってもよいし、3次元構造以外に関するデータであってもよい。
  <符号化装置>
 図3は、本技術を適用した情報処理装置の一実施の形態である符号化装置の主な構成例を示すブロック図である。図3に示される符号化装置100は、符号化対象として入力されたポイントクラウドのデータを、ボクセルを用いて符号化し、得られた符号化データ等を出力する。その際、符号化装置100は、以下に説明するように本技術を適用した方法でこの符号化を行う。
 図3に示されるように、符号化装置100は、制御部101、前処理部111、バウンディングボックス設定部112、ボクセル設定部113、および符号化部114を有する。
 制御部101は、符号化装置100内の各処理部の制御に関する処理を行う。例えば、制御部101は、各処理部による処理の実行またはスキップ(省略)を制御する。例えば、制御部101は、所定の制御情報に基づいてそのような制御を行う。このようにすることにより、制御部101は、不要な処理の実行を抑制することができ、負荷の増大を抑制することができる。
 制御部101は、どのような構成を有するようにしてもよいが、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、処理を行うようにしてもよい。
 前処理部111は、制御部101により制御され、符号化装置100に入力されるポイントクラウドデータ(符号化対象)に対して、前処理として所定の処理を施し、処理後のデータをバウンディングボックス設定部112に供給する。なお、符号化対象となるポイントクラウドは、動画像であってもよいし、静止画像であってもよい。
 例えば、制御部101は、前処理の実行を許可または禁止する制御情報に従って、前処理の実行が許可されている(禁止されていない)場合に、前処理部111に前処理を実行させる。また、例えば、制御部101は、前処理の実行の許可または禁止の対象となる符号化対象の範囲を示す制御情報に従って、前処理の実行が許可されている(禁止されていない)符号化対象に対して、前処理部111に前処理を実行させる。さらに例えば、制御部101は、実行を許可または禁止する処理内容を指定する制御情報に従って、実行が許可されている(禁止されていない)処理を前処理部111に実行させる。このようにすることにより、不要な前処理の実行を抑制することができ、負荷の増大を抑制することができる。
 なお、前処理の内容は任意である。例えば、前処理部111が、前処理として、ノイズを低減させる処理を施すようにしても良いし、解像度(点の数)を変更する処理を行うようにしても良い。また例えば、点群の密度を均等にしたり、所望の偏りを持たせたりするように、各点の配置を更新するようにしてもよい。さらに例えば、奥行き情報を有する画像情報等のようなポイントクラウドでないデータが符号化装置100に入力されるようにし、前処理部111が、前処理として、その入力されたデータをポイントクラウドのデータに変換するようにしてもよい。
 前処理部111は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、前処理を行うようにしてもよい。
 バウンディングボックス設定部112は、制御部101により制御されて、符号化対象の位置情報を正規化するためのバウンディングボックスの設定に関する処理を行う。
 例えば、制御部101は、バウンディングボックスの設定の許可または禁止する制御情報に従って、そのバウンディングボックスの設定が許可されている(禁止されていない)場合に、バウンディングボックス設定部112にそのバウンディングボックスを設定させる。また、例えば、制御部101は、バウンディングボックスの設定の許可または禁止の対象となる符号化対象の範囲を示す制御情報に従って、そのバウンディングボックスの設定が許可されている(禁止されていない)符号化対象に対して、バウンディングボックス設定部112にそのバウンディングボックスを設定させる。さらに例えば、制御部101は、バウンディングボックスの設定に用いられるパラメータの許可または禁止に関する制御情報に従って、バウンディングボックス設定部112に、使用が許可されている(禁止されていない)パラメータを用いてバウンディングボックスを設定させる。このようにすることにより、不要なバウンディングボックスの設定や不要なパラメータの使用を抑制することができ、負荷の増大を抑制することができる。
 例えば、バウンディングボックス設定部112は、符号化対象の各オブジェクトに対するバウンディングボックスを設定する。例えば、図4のAに示されるように、ポイントクラウドのデータによりオブジェクト131やオブジェクト132が表現されている場合、バウンディングボックス設定部112は、図4のBに示されるように、そのオブジェクト131やオブジェクト132をそれぞれ包含するようにバウンディングボックス141やバウンディングボックス142を設定する。図3に戻り、バウンディングボックスが設定されると、バウンディングボックス設定部112は、そのバウンディングボックスに関する情報をボクセル設定部113に供給する。
 なお、バウンディングボックス設定部112は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、バウンディングボックスの設定に関する処理を行うようにしてもよい。
 ボクセル設定部113は、制御部101により制御されて、符号化対象の位置情報を量子化するためのボクセルの設定に関する処理を行う。
 例えば、制御部101は、ボクセルの設定の許可または禁止する制御情報に従って、そのボクセルの設定が許可されている(禁止されていない)場合に、ボクセル設定部113にそのボクセルを設定させる。また、例えば、制御部101は、ボクセルの設定の許可または禁止の対象となる符号化対象の範囲を示す制御情報に従って、そのボクセルの設定が許可されている(禁止されていない)符号化対象に対して、ボクセル設定部113にそのボクセルを設定させる。さらに例えば、制御部101は、ボクセルの設定に用いられるパラメータの許可または禁止に関する制御情報に従って、ボクセル設定部113に、使用が許可されている(禁止されていない)パラメータを用いてボクセルを設定させる。このようにすることにより、不要なボクセルの設定や不要なパラメータの使用を抑制することができ、負荷の増大を抑制することができる。
 例えば、ボクセル設定部113は、バウンディングボックス設定部112により設定されたバウンディングボックス内に、ボクセルを設定する。例えば、ボクセル設定部113は、図4のCに示されるように、バウンディングボックス141を分割してボクセル151を設定する。つまり、ボクセル設定部113は、バウンディングボックス内のポイントクラウドデータをボクセルにより量子化(すなわちボクセル化)する。なお、バウンディングボックスが複数存在する場合、ボクセル設定部113は、各バウンディングボックスについてポイントクラウドデータをボクセル化する。つまり、図4のBの例の場合、ボクセル設定部113は、バウンディングボックス142に対しても同様の処理を行う。図3に戻り、以上のようにしてボクセルが設定されると、ボクセル設定部113は、そのボクセル化されたポイントクラウドデータ(ボクセルデータとも称する)(位置情報の量子化のためのデータ構造に関する情報)や属性情報等を、符号化部114に供給する。
 なお、ボクセル設定部113は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、ボクセルの設定に関する処理を行うようにしてもよい。
 符号化部114は、制御部101により制御され、符号化に関する処理を行う。
 例えば、制御部101は、符号化を許可または禁止する制御情報に従って、符号化が許可されている(禁止されていない)場合に、符号化部114にボクセルデータを符号化させる。また、例えば、制御部101は、符号化の許可または禁止の対象となる符号化対象の範囲を示す制御情報に従って、ボクセルデータの、符号化が許可されている(禁止されていない)符号化対象に対して、符号化部114に符号化を行わせる。このようにすることにより、不要な符号化を抑制することができ、負荷の増大を抑制することができる。
 符号化部114は、例えば、ポイントクラウドデータを量子化したボクセルデータ(例えば図4のCに示されるようなボクセル設定部113により生成されたボクセルデータ)を符号化し、符号化データ(ビットストリーム)を生成する。図4のDは、符号化された信号列の様子の例を示している。
 また、符号化部114は、適宜、例えば制御情報等の、ポイントクラウドデータ以外の関連情報も符号化し、ヘッダやパラメータセット等に格納する。例えば、符号化部114は、Octreeパタンの深さ(レベル数)を指定する情報をヘッダやパラメータセット等に格納する。
 符号化部114は、上述した各種情報のビットストリームを互いに関連付ける。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データに関連付けられた制御情報は、その符号化データとは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データに関連付けられた制御情報は、その符号化データとは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
 符号化部114は、このような符号化により得られた符号化データ(ビットストリーム)を符号化装置100の外部に出力する。この符号化装置100より出力されたデータ(符号化データや制御情報)は、例えば、図示せぬ後段の処理部により復号され、ポイントクラウドのデータが復元されるようにしてもよいし、図示せぬ通信部により送信され、所定の伝送路を介して復号装置等の他の装置に伝送されるようにしてもよいし、図示せぬ記録媒体に記録されるようにしてもよい。
 なお、符号化部114は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、符号化に関する処理を行うようにしてもよい。
 <2.第1の実施の形態>
  <終端識別ビットパタン>
 符号化部114は、ボクセル設定部113より供給されたボクセルデータをOctree符号化してOctreeパタンのデータ(Octreeパタンデータ)を生成する。また、符号化部114は、生成したOctreeパタンデータを可逆符号化し、ビットストリームを生成する。
 符号化部114は、そのOctree符号化においてOctreeパタンの最下位レベル以外において一部のノードを終端させる(葉ノードとする)場合、本技術を適用し、『そのOctreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに、葉ノードが形成されることを示す深さ制御情報』を含むビットストリームを生成する。
 この深さ制御情報は、任意であるが、例えば、『Octreeパタンの最下位レベルよりも上位のレベルの、その深さ制御情報に対応する特定のノードが葉ノードである』ことを示す所定のビット列であるようにしてもよい。
 このようにすることにより、復号側において、その「所定のビット列」を検出することにより、容易に「特定のノードが葉ノードである」ことを把握することができる。
 例えば、一般的なOctreeパタンにおいては、図5のAに示されるように、ポイントが存在する領域がノードとして構成され、(最下位レベル以外の)各ノードに対して、その領域を8分割した領域の内のいずれの領域にポイントが存在するかを示す8ビットのビット列(Child mask)が設定される。このビット列は、分割後の8領域の内、値「1」のビットに対応する領域にポイントが存在することを示す(値「0」のビットに対応する領域にポイントが存在しないことを示す)。
 一般的なOctreeパタンの場合、図5のAに示されるように、分木しなくても、最下位レベルまで子孫ノードが形成される。例えば、最下位レベルの1つ上のレベルの右のノードは、子ノードを1つしか持たない(分木はしない)が、ビットパタン「01000000」のビット列が設定され、最下位レベルにおけるポイントの位置が示されている。中央のノードも同様であり、分木はしないがビットパタン「00000001」が設定され、最下位レベルにおけるポイントの位置が示されている。したがって、この場合、全てのポイントの位置(解像度)は、最下位レベルで示される。
 これに対して、符号化部114は、上述の「深さ制御情報」として、図5のBに示されるように、最下位レベルより上位のレベルの、終端させるノード(子孫ノードを形成しないノード)に対して、そのノードが葉ノードである(終端である)ことを示すビットパタンのビット列を設定する。そして、符号化部114は、そのノードを葉ノードとし、子孫ノードの形成を省略する。そして、符号化部114は、その「ビット列(深さ制御情報)」が設定されたノードを含むOctreeパタンデータを可逆符号化し、その「ビット列(深さ制御情報)」を含むビットストリームを生成する。
 つまり、この場合の「深さ制御情報」である「所定のビット列」は、Octreeパタンデータにおいて、そのOctreeパタンの最下位レベルよりも上位のレベルのノードに設定されており、その「所定のビット列」が設定されたノードが葉ノードであることを示すビットパタンを有する。そして、符号化部114は、そのOctreeパタンの最下位レベルよりも上位のレベルの葉ノードに「所定のビット列」が設定されたOctreeパタンデータを符号化してビットストリームを生成する。
 つまり、「ビット列(深さ制御情報)」の位置によって、Octreeパタンの最下位レベルよりも上位のレベルの葉ノードの位置が示される。したがって、復号側においては、ビットストリームを復号してOctreeパタンを再構築する際に、その「ビット列(深さ制御情報)」の位置を確認することにより、Octreeパタンの最下位レベルよりも上位のレベルの葉ノードを検出することができる。つまり、最下位レベルよりも上位のレベルに葉ノードを含むOctreeパタンを正しく復号することができる。
 すなわち、このような「ビット列(深さ制御情報)」により、Octreeパタンにおいて、ポイントの解像度の部分的な制御を表現することが可能になる。つまり、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。
 換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においても、Octree符号化を適用することができるので(データ群の解像度を部分的に制御する場合にも、そのデータ群の木構造化を実現することができるので)、符号化効率の低減を抑制することができる。
 なお、この「所定のビット列」のビットパタン(終端識別ビットパタンとも称する)は、そのOctreeパタンの葉ノードでないノードに設定されるビット列には用いられないビットパタンであるようにしてもよい。例えば、図5のBの例の場合、最下位レベルの1つ上位のレベルの右のノード(葉ノード)にビットパタン「00000000」(終端識別ビットパタン)のビット列が割り当てられている。ビットパタン「00000000」は、分割後の8領域のいずれにもポイントが存在しないことを示すことになるが、一般的なOctreeパタンにおいては、最下位レベルより上位のレベルにおいて、そのようなノードは存在しない。
 このようにすることにより、他のノードに設定されるビット列と同一の仕様のビット列により、最下位レベル以外のレベルの葉ノードを表現することができる。つまり、その葉ノードに対しても他のノードと同一の仕様のビット列を設定することができるので、一般的なOctree符号化からの仕様変更量を低減させることができ、本技術をより容易に実現することができる。
 ただし、この終端識別ビットパタンは、「葉ノード」であることを示すことができるものであれば任意であり、上述の例(「00000000」)に限定されない。例えば、葉ノード以外のノードに設定される他のビット列とは、ビット数が異なるようにしてもよい。
 なお、終端識別ビットパタンのビット列は、葉ノードとの対応関係が明らかにされているのであれば、対応するノードの位置以外に格納されるようにしてもよい。例えば、終端識別ビットパタンのビット列を、まとめてヘッダやパラメータセット等に格納するようにしてもよい。また、このビット列を、Octreeパタンデータのビットストリームと異なるビットストリームに含めるようにしてもよい。これらの場合、どのビット列がどの葉ノードに対応しているかの情報も必要になる。
  <符号化部>
 図6は、符号化部114(図3)の主な構成例を示すブロック図である。図6に示されるように、符号化部114は、Octree符号化部221、2値化部222、および可逆符号化部223を有する。
 Octree符号化部221は、Octree符号化に関する処理を行う。例えば、Octree符号化部221は、ボクセル設定部113より供給されるボクセルデータのジオメトリデータ(位置情報)をOctree符号化し、Octreeパタンデータを生成する。その際、Octree符号化部221は、最下位レベルと異なるレベルの所望のノードを葉ノードとする場合、その所望のノードに対して、上述の「終端識別ビットパタンのビット列」(例えば、ビットパタン「00000000」のビット列)を設定する。
 図6に示されるように、Octree符号化部221は、Octree深度制御部231およびOctree構成部232を有する。
 Octree深度制御部231は、Octreeパタンの深度に関する制御を行う。Octree構成部232は、Octreeパタンの構成に関する処理を行う。例えば、Octree構成部232は、ジオメトリデータに基づいてOctreeパタンを構築し、そのジオメトリデータに対応するOctreeパタンデータを生成する。Octree深度制御部231は、そのOctreeパタンの構築を制御し、Octreeパタンの深さを制御する。
 例えば、Octree深度制御部231は、Octree構成部232がジオメトリデータをOctree符号化してOctreeパタンを生成する際に、そのOctree構成部232を制御し、Octreeパタンの最下位レベルよりも上位のレベルの所望のノードを葉ノードとするようにすることができる。つまり、一部のノードがOctreeパタンの最下位レベルよりも上位のレベルにおいて終端する(子孫ノードを形成しない)ようにすることができる。その場合、Octree深度制御部231は、Octree構成部232を制御し、その所望のノードに対して上述の「終端識別ビットパタンのビット列」を設定するようにしてもよい。
 Octree符号化部221(Octree構成部232)は、その「終端識別ビットパタンのビット列」を含むOctreeパタンデータを2値化部222に供給する。
 このようにすることにより、符号化部114は、Octreeパタンを形成しながら、葉ノードとされるノードに対して「終端識別ビットパタンのビット列」を設定することができる。
 なお、Octree符号化部221(Octree深度制御部231およびOctree構成部232のそれぞれ)は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、Octree符号化に関する処理を行うようにしてもよい。
 2値化部222は、2値化に関する処理を行う。例えば、2値化部222は、Octree符号化部221から供給されるOctreeパタンデータを2値化して2値データを生成する。2値化部222は、生成した2値データを可逆符号化部223に供給する。
 なお、2値化部222は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、2値化に関する処理を行うようにしてもよい。
 可逆符号化部223は、可逆符号化に関する処理を行う。例えば、可逆符号化部223は、2値化部222から供給される2値データを可逆符号化し、ビットストリーム(つまり、Octreeパタンデータの符号化データ)を生成する。この可逆符号化の方法は任意である。例えば、CABAC(Context-based Adaptive Binary Arithmetic Code)であってもよい。
 また、例えば、可逆符号化部223は、OctreeパタンデータのOctreeパタンの深さ(レベル数)を指定する情報を、ヘッダやパラメータセット等に格納し、ビットストリームに含める。
 可逆符号化部223は、生成したビットストリームを符号化部114の外部(すなわち符号化装置100の外部)に出力する。
 なお、可逆符号化部223は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、可逆符号化に関する処理を行うようにしてもよい。
 上述のように、Octreeパタンの最下位レベルよりも上位のレベルにおいてノードを終端させる場合、Octree符号化部221が生成するOctreeパタンデータには、終端識別ビットパタンのビット列が含まれる。つまり、可逆符号化部223は、その終端識別ビットパタンのビット列(深さ制御情報)を含むビットストリームを生成する。
 したがって、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においてもOctree符号化を適用することができ(データ群の解像度を部分的に制御する場合にもそのデータ群の木構造化を実現することができ)、符号化効率の低減を抑制することができる。
 なお、Octreeパタンデータの符号化方法は任意である。例えば、CAVLC(Context-based Adaptive Variable Length Code)を用いてOctreeパタンデータを符号化するようにしてもよい。その場合、2値化部222および可逆符号化部223の代わりに、CAVLCを行う可逆符号化部を設けるようにしてもよい。
  <符号化処理の流れ>
 以上のような構成の符号化装置100により実行される符号化処理の流れの例を図7のフローチャートを参照して説明する。
 符号化処理が開始されると、前処理部111は、ステップS101において、入力されたデータに対して前処理を行う。
 ステップS102において、バウンディングボックス設定部112は、前処理されたデータに対してバウンディングボックスを設定する。
 ステップS103において、ボクセル設定部113は、ステップS102において設定されたバウンディングボックスにボクセルを設定する。
 ステップS104において、符号化部114は、ステップS103の処理により生成されたボクセルデータのジオメトリデータを符号化する。
 ステップS105において、符号化部114は、その符号化により得られたビットストリームを符号化装置100の外部に出力する。このビットストリームは例えば復号側(復号装置等)に伝送されたり、記録媒体に記録されたりする。
 ステップS105の処理が終了すると、符号化処理が終了する。例えば、符号化対象が動画像である場合、この一連の処理をフレーム毎に行う。
  <ジオメトリデータ符号化処理の流れ>
 次に、図7のステップS104において実行されるジオメトリデータ符号化処理の流れの例を、図8のフローチャートを参照して説明する。
 ジオメトリデータ符号化処理が開始されると、Octree深度制御部231は、ステップS121において、Octreeパタンの処理対象ノードを初期化する。
 ステップS122において、Octree深度制御部231は、処理対象ノードのレベルが最下位レベルであるか否かを判定する。処理対象ノードのレベルが最下位レベルでないと判定された場合、処理はステップS123に進む。
 ステップS123において、Octree深度制御部231は、処理対象ノードを終端とするか否かを判定する。処理対象ノードを終端とする、すなわち、処理対象ノードを葉ノードとすると判定された場合、処理はステップS124に進む。
 ステップS124において、Octree構成部232は、終端とする処理対象ノードに対して、終端識別ビットパタン(例えば「00000000」)を生成し、設定する。また、Octree構成部232は、その処理対象ノードの子孫ノードを処理対象候補から除外する。つまり、処理対象ノードを葉ノードとし、それに属する子ノードを形成しないようにする。ステップS124の処理が終了すると、処理はステップS126に進む。
 また、ステップS123において、処理対象ノードを終端としないと判定された場合、処理はステップS125に進む。
 ステップS125において、Octree構成部232は、終端としない処理対象ノードに対して、ジオメトリデータに基づいて「子ノードのビットパタン」、すなわち、処理対象ノードに対応する領域を8分割(2×2×2分割)した領域のいずれにポイントが存在するかを示すビットパタンのビット列を生成し、そのビット列を処理対象ノードに設定する。ステップS125の処理が終了すると処理はステップS126に進む。
 また、ステップS122において、処理対象ノードのレベルが最下位レベルである、すなわち、ジオメトリデータ(のボクセル)と同じ解像度のレベルであると判定された場合、ステップS123乃至ステップS125の処理は省略され、処理はステップS126に進む。つまり、最下位レベルのノードに対しては、ビット列は設定されない。
 ステップS126において、Octree深度制御部231は、全ノードを処理したか否かを判定する。ジオメトリデータに対応するOctreeパタンが構築されておらず、未処理のノードが存在すると判定された場合、処理はステップS127に進む。
 ステップS127において、Octree深度制御部231は、処理対象ノードを前順の次のノードに設定する。処理対象ノードが更新されると処理はステップS122に戻る。つまり、ステップS122乃至ステップS127の各処理が、ジオメトリデータに対応するOctreeパタンの各ノードに対して行われる。
 そして、ステップS126において、ジオメトリデータに対応するOctreeパタンが構築され、全ノードを処理したと判定された場合、処理はステップS128に進む。
 ステップS128において、2値化部222は、上述の処理により生成されたジオメトリデータに対応するOctreeパタンデータを2値化する。
 ステップS129において、可逆符号化部223は、ステップS128の処理により得られた2値データを可逆符号化し、ビットストリームを生成する。ステップS124の処理により、Octreeパタンデータには、終端識別ビットパタンのビット列が含まれているので、可逆符号化部223は、終端識別ビットパタンのビット列を含むビットストリームを生成する。
 ステップS129の処理が終了するとジオメトリデータ符号化処理が終了し、処理は図7に戻る。
 以上のように各処理を実行することにより、符号化装置100は、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においてもOctree符号化を適用することができ(データ群の解像度を部分的に制御する場合にもそのデータ群の木構造化を実現することができ)、符号化効率の低減を抑制することができる。
 なお、以上においてはOctreeパタンの走査順として、前順を例に説明したが、この走査順は任意であり、前順に限定されない。例えば、先行順、前置順、行きがけ順、間順、中間順、通りがけ順、後順、後行順、後置順、帰りがけ順、またはレベル順等であってもよい。
  <符号化部の他の例>
 なお、Octreeパタンを生成後に編集し、最下位レベルよりも上位のレベルの所望のノードを葉ノード化するようにしてもよい。
 図9は、その場合の符号化部114(図3)の主な構成例を示すブロック図である。この場合、図9に示されるように、符号化部114は、図6の場合と同様に、Octree符号化部221、2値化部222、および可逆符号化部223を有する。
 ただし、Octree符号化部221は、Octree構成部241およびOctree深度制御部242を有する。Octree構成部241は、Octreeパタンの構成に関する処理を行う。例えば、Octree構成部241は、一般的なOctree符号化を行い、ジオメトリデータに基づいてOctreeパタンを構築し、ジオメトリデータに対応するOctreeパタンデータを生成する。
 Octree深度制御部242は、Octreeパタンの深度に関する制御を行う。例えば、Octree深度制御部242は、Octree構成部241により構築されたOctreeパタンを編集し、最下位レベルよりも上位のレベルの所望のノードを葉ノード化する。つまり、Octree深度制御部242は、Octreeパタンの最下位レベルよりも上位のレベルの所望のノードに属する子孫ノードを削除し、その所望のノードを葉ノード化する。さらに、Octree深度制御部242は、その所望のノードに対して、上述の「終端識別ビットパタンのビット列」(例えば、ビットパタン「00000000」のビット列)を設定する。Octree符号化部221(Octree深度制御部242)は、その「終端識別ビットパタンのビット列」を含むOctreeパタンデータを2値化部222に供給する。
 なお、Octree符号化部221(Octree構成部241およびOctree深度制御部242のそれぞれ)は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、Octree符号化に関する処理を行うようにしてもよい。
 2値化部222は、そのOctreeパタンデータを2値化して2値データを生成し、可逆符号化部223は、その2値データを可逆符号化し、ビットストリームを生成する。
 このようにすることにより、符号化部114は、Octreeパタンを形成しながら、葉ノードとされるノードに対して「終端識別ビットパタンのビット列」を設定することができる。
 この場合も、Octreeパタンの最下位レベルよりも上位のレベルにおいてノードを終端させる場合、Octree符号化部221が生成するOctreeパタンデータには、終端識別ビットパタンのビット列が含まれる。つまり、可逆符号化部223は、この場合も、その終端識別ビットパタンのビット列(深さ制御情報)を含むビットストリームを生成する。
 したがって、符号化部114は、この場合も、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においてもOctree符号化を適用することができ(データ群の解像度を部分的に制御する場合にもそのデータ群の木構造化を実現することができ)、符号化効率の低減を抑制することができる。
  <符号化処理の流れ>
 この場合も、符号化装置100により実行される符号化処理の流れは、図7のフローチャートを参照して説明した場合と同様であるのでその説明は省略する。
  <ジオメトリデータ符号化処理の流れ>
 次に、この場合の、図7のステップS104において実行されるジオメトリデータ符号化処理の流れの例を、図10のフローチャートを参照して説明する。
 この場合、ジオメトリデータ符号化処理が開始されると、Octree構成部241は、ステップS141において、ジオメトリデータからOctreeパタンを構築し、そのOctreeパタンデータを生成する。
 ステップS142において、Octree深度制御部242は、Octreeパタンの処理対象ノードを初期化する。
 ステップS143において、Octree深度制御部242は、処理対象ノードのレベルが最下位レベルであるか否かを判定する。処理対象ノードのレベルが最下位レベルでないと判定された場合、処理はステップS144に進む。
 ステップS144において、Octree深度制御部242は、処理対象ノードを終端とするか否かを判定する。処理対象ノードを終端とする、すなわち、処理対象ノードを葉ノードとすると判定された場合、処理はステップS145に進む。
 ステップS145において、Octree深度制御部242は、終端とする処理対象ノードに設定されたビット列を、終端識別ビットパタン(例えば「00000000」)に置き換える。また、Octree深度制御部242は、Octreeパタンに存在した、その処理対象ノードの子孫ノードを削除する。つまり、処理対象ノードを葉ノードとし、それに属する子孫ノードを削除する。ステップS145の処理が終了すると、処理はステップS146に進む。
 また、ステップS144において、処理対象ノードを終端としないと判定された場合、ステップS145の処理が省略され、処理はステップS146に進む。つまり、この場合処理対象ノードを編集しない。
 また、ステップS143において、処理対象ノードのレベルが最下位レベルである、すなわち、ジオメトリデータ(のボクセル)と同じ解像度のレベルであると判定された場合、ステップS144およびステップS145の処理は省略され、処理はステップS146に進む。つまり、最下位レベルのノードに対しては、ビット列は設定されないので編集も行われない。
 ステップS146において、Octree深度制御部242は、ステップS141において生成されたOctreeパタンの全ノードを処理したか否かを判定する。未処理のノードが存在すると判定された場合、処理はステップS147に進む。
 ステップS147において、Octree深度制御部242は、処理対象ノードを前順の次のノードに設定する。処理対象ノードが更新されると処理はステップS143に戻る。つまり、ステップS143乃至ステップS147の各処理が、ジオメトリデータに対応するOctreeパタンの各ノードに対して行われる。
 そして、ステップS146において、全ノードを処理したと判定された場合、処理はステップS148に進む。
 ステップS148において、2値化部222は、上述の処理により生成されたジオメトリデータに対応するOctreeパタンデータを2値化する。
 ステップS149において、可逆符号化部223は、ステップS148の処理により得られた2値データを可逆符号化し、ビットストリームを生成する。ステップS145の処理により、Octreeパタンデータには、終端識別ビットパタンのビット列が含まれているので、可逆符号化部223は、終端識別ビットパタンのビット列を含むビットストリームを生成する。
 ステップS149の処理が終了するとジオメトリデータ符号化処理が終了し、処理は図7に戻る。
 以上のように各処理を実行することにより、符号化装置100は、この場合も、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においてもOctree符号化を適用することができ(データ群の解像度を部分的に制御する場合にもそのデータ群の木構造化を実現することができ)、符号化効率の低減を抑制することができる。
 なお、以上においてはOctreeパタンの走査順として、前順を例に説明したが、この走査順は任意であり、前順に限定されない。例えば、先行順、前置順、行きがけ順、間順、中間順、通りがけ順、後順、後行順、後置順、帰りがけ順、またはレベル順等であってもよい。
  <復号装置>
 符号化装置100が生成したビットストリームを復号する復号装置は、そのビットストリームを復号し、Octreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報に基づいて、その最下位レベルと異なるレベルの葉ノードを含むOctreeパタンを構築する。したがって、この復号装置は、符号化装置100が生成したビットストリームを正しく復号することができる。
 図11は、本技術を適用した情報処理装置の一実施の形態である復号装置の主な構成例を示すブロック図である。図11に示される復号装置250は、図3の符号化装置100に対応する復号装置であり、例えばこの符号化装置100により生成されたポイントクラウドの符号化データを復号し、ポイントクラウドのデータを復元する。
 図11に示されるように、復号装置250は、復号部261、およびポイントクラウド化処理部262を有する。
 復号部261は、ビットストリームの復号に関する処理を行う。例えば、復号部261は、ビットストリームを符号化部114(図3)の符号化方法に対応する復号方法で復号し、Octreeパタンを再構築する。上述したように、符号化装置100により生成されたビットストリームには、「Octreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報」が含まれる。復号部261は、その「深さ制御情報」に基づいて、最下位レベルと異なるレベルの葉ノードを含むOctreeパタンを構築する。
 したがって、復号部261は、符号化部114により生成されたビットストリームを正しく復号することができる。したがって、復号装置250は、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においてもOctree符号化を適用することができ(データ群の解像度を部分的に制御する場合にもそのデータ群の木構造化を実現することができ)、符号化効率の低減を抑制することができる。
 上述したように、この深さ制御情報は、任意であるが、例えば、『Octreeパタンの最下位レベルよりも上位のレベルの、その深さ制御情報に対応する特定のノードが葉ノードである』ことを示す所定のビット列であるようにしてもよい。
 このようにすることにより、復号部261は、その「所定のビット列」を検出することにより、容易に「特定のノードが葉ノードである」ことを把握することができる。
 また、上述したように、この「所定のビット列」は、Octreeパタンの最下位レベルよりも上位のレベルの葉ノードに設定されており、その「所定のビット列」が設定されたノードが葉ノードであることを示すビットパタン(終端識別ビットパタン)を有する。
 つまり、「ビット列(深さ制御情報)」の位置によって、Octreeパタンの最下位レベルよりも上位のレベルの葉ノードの位置が示される。したがって、復号部261は、ビットストリームを復号してOctreeパタンを再構築する際に、その「ビット列(深さ制御情報)」の位置を確認することにより、Octreeパタンの最下位レベルよりも上位のレベルの葉ノードを検出することができる。つまり、最下位レベルよりも上位のレベルに葉ノードを含むOctreeパタンを正しく復号することができる。
 なお、上述したように、この「所定のビット列」のビットパタン(終端識別ビットパタン)は、そのOctreeパタンの葉ノードでないノードに設定されるビット列には用いられないビットパタンであるようにしてもよい。例えば、図5のBの例の場合、最下位レベルの1つ上位のレベルの右のノード(葉ノード)にビットパタン「00000000」(終端識別ビットパタン)のビット列が割り当てられている。
 そして、復号部261は、そのOctreeパタン(Octreeパタンデータ)からジオメトリデータ(ボクセルデータ)を再構成する。復号部261は、再構成したジオメトリデータ(ボクセルデータ)をポイントクラウド化処理部262に供給する。
 なお、復号部261は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、復号に関する処理を行うようにしてもよい。
 ポイントクラウド化処理部262は、ポイントクラウドデータの復元に関する処理を行う。例えば、ポイントクラウド化処理部262は、復号部261から供給されたジオメトリデータ(ボクセルデータ)をポイントクラウドデータに変換する(復号ポイントクラウドデータを生成する)。なお、ポイントクラウド化処理部262が、その復号ポイントクラウドデータをさらにMeshデータに変換するようにしてもよい。
 ポイントクラウド化処理部262は、生成した復号ポイントクラウドデータ(またはMeshデータ)を復号装置250の外部に出力する。この出力された復号ポイントクラウドデータ(またはMeshデータ)は、例えば、図示せぬ後段の処理部により画像処理され、画像情報としてモニタ等に表示されるようにしてもよいし、図示せぬ通信部により送信され、所定の伝送路を介して他の装置に伝送されるようにしてもよいし、図示せぬ記録媒体に記録されるようにしてもよい。
 なお、ポイントクラウド化処理部262は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、ポイントクラウドデータの復元に関する処理を行うようにしてもよい。
  <復号部>
 図12は、復号部261の主な構成例を示すブロック図である。図12に示されるように、復号部261は、可逆復号部271、終端検出部272、多値化部273、およびジオメトリ再構成部274を有する。
 可逆復号部271は、可逆復号に関する処理を行う。例えば、可逆復号部271は、符号化装置100により生成されたビットストリームを、可逆符号化部223に対応する方法で可逆復号し、2値データを得る。この可逆復号方法は、可逆符号化部223の可逆符号化方法に対応するものであればどのような方法であってもよい。例えば、CABACであってもよい。
 上述したように、このビットストリームには、例えば、Octreeパタンの各ノードのビット列や、最下位レベルより上位のレベルの葉ノードに設定された「深さ制御情報(終端識別ビットパタンのビット列)」等が含まれる。したがって、可逆復号部271は、ビットストリームを復号してこれらの情報も抽出し、2値データとして多値化部273に供給する。また、このビットストリームに含まれるヘッダやパラメータセットにおいて、「Octreeパタンの深さを指定する情報」が含まれている。可逆復号部271は、ビットストリームを復号してこの情報も抽出し、2値データとして多値化部273に供給する。
 なお、可逆復号部271は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、可逆復号に関する処理を行うようにしてもよい。
 終端検出部272は、ノードの終端の検出に関する処理を行う。多値化部273は、多値化に関する処理を行う。例えば、多値化部273は、可逆復号部271から供給される2値データを多値化し、Octreeパタンを再構築して、Octreeパタンデータを生成する。その際、終端検出部272は、例えば、多値化部273において2値データが多値化されて得られるOctreeパタンに含まれる終端識別ビットパタンのビット列を検出する。また、終端検出部272は、その検出結果に応じて多値化部273を制御し、Octreeパタンの再構築を制御する。
 例えば、終端検出部272は、終端識別ビットパタンのビット列を検出すると、多値化部273を制御し、Octreeパタンの再構築において、そのノードを終端(葉ノード)とさせ、そのノードに属する子孫ノードを構築させないようにする。このようにすることにより、多値化部273は、「Octreeパタンの深さを指定する情報」により指定されるOctreeパタンの最下位レベルよりも上位のレベルに葉ノードを形成するように、Octreeパタンを再構築することができる。
 多値化部273は、このようにして得られたOctreeパタンデータを、ジオメトリ再構成部274に供給する。
 なお、終端検出部272は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、終端の検出に関する処理を行うようにしてもよい。
 また、多値化部273は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、多値化に関する処理を行うようにしてもよい。
 ジオメトリ再構成部274は、ジオメトリデータの再構成に関する処理を行う。例えば、ジオメトリ再構成部274は、多値化部273から供給されるOctreeパタンデータを用いてジオメトリデータを再構成する。ジオメトリ再構成部274は、得られたジオメトリデータをポイントクラウド化処理部262(図11)に供給する。
 なお、ジオメトリ再構成部274は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、ジオメトリデータの再構成に関する処理を行うようにしてもよい。
 以上のように、可逆復号部271乃至多値化部273は、ビットストリームを復号し、Octreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報に基づいて、その最下位レベルと異なるレベルの葉ノードを含むOctreeパタンを構築する。
 したがって、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においてもOctree符号化を適用することができ(データ群の解像度を部分的に制御する場合にもそのデータ群の木構造化を実現することができ)、符号化効率の低減を抑制することができる。
 なお、ビットストリームの復号方法は、その符号化方法に対応するものであれば任意であり、上述の例に限定されない。例えば、CAVLCを用いてビットストリームを復号するようにしてもよい。つまり、この場合、ビットストリームは、CAVLCを用いて符号化されている。その場合、可逆復号部271および多値化部273の代わりに、CAVLCを行う可逆復号部を設けるようにしてもよい。
  <復号処理の流れ>
 以上のような構成の復号装置250により実行される復号処理の流れの例を図13のフローチャートを参照して説明する。
 復号処理が開始されると、復号部261は、ステップS161において、供給されたビットストリームを復号して、Octreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されるOctreeパタンを再構築し、そのOctreeパタンデータに対応するジオメトリデータを再構成する。
 ステップS162において、ポイントクラウド化処理部262は、ステップS161において得られたジオメトリデータからポイントクラウドデータを復元する。
 ステップS163において、ポイントクラウド化処理部262は、ステップS162において復元したポイントクラウドデータ(復号ポイントクラウドデータ)を復号装置250の外部に出力する。
 ステップS163の処理が終了すると、復号処理が終了する。
  <ビットストリーム復号処理の流れ>
 次に、図13のステップS161において実行されるビットストリーム復号処理の流れの例を、図14のフローチャートを参照して説明する。
 ビットストリーム復号処理が開始されると、可逆復号部271は、ステップS181において、ビットストリームを可逆復号し、2値データを生成する。
 ステップS182において、多値化部273は、ステップS181において得られた2値データを読み込む。
 ステップS183において、終端検出部272は、読み込んだ2値データを多値化部273に復号させ、得られたOctreeパタンデータの中に、終端識別ビットパタンのビット列が含まれるか否かを判定する。Octreeパタンデータから終端識別ビットパタンを検出し、終端識別ビットパタンのビット列が含まれると判定された場合、処理はステップS184に進む。
 ステップS184において、多値化部273は、終端検出部272の制御に従って、2値データを多値化し、その終端識別ビットパタンを検出した検出位置(ノード)を終端(葉ノード)とするように、Octreeパタンを再構築する。つまり、深さ制御情報(終端識別ビットパタンのビット列)を、再構築するOctreeパタンに反映させる。
 ステップS184の処理が終了すると、処理はステップS186に進む。また、ステップS183において、終端識別ビットパタンを検出していない(Octreeパタンデータに終端識別ビットパタンのビット列が含まれない)と判定された場合、処理はステップS185に進む。
 ステップS185において、多値化部273は、2値データを多値化し、一般的なOctreeパタンの場合と同様に、Octreeパタンを再構築する。ステップS185の処理が終了すると、処理はステップS186に進む。
 ステップS186において、多値化部273は、2値データを全て処理したか否かを判定する。未処理の2値データが存在する場合、その未処理の2値データを新たな処理対象として、処理をステップS182に戻す。つまり、全ての2値データに対して、ステップS182乃至ステップS186の処理が実行される。そして、ステップS186において2値データを全て処理したと判定された場合、処理はステップS187に進む。
 ステップS187において、ジオメトリ再構成部274は、以上の処理により得られたOctreeパタンデータを用いてジオメトリデータを再構成する。
 ステップS187の処理が終了するとビットストリーム復号処理が終了し、処理は図13に戻る。
 以上のように各処理を実行することにより、復号装置250は、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においてもOctree符号化を適用することができ(データ群の解像度を部分的に制御する場合にもそのデータ群の木構造化を実現することができ)、符号化効率の低減を抑制することができる。
 <3.第2の実施の形態>
  <end_of_node_one_bit>
 なお、「深さ制御情報」は、任意の情報であるが、例えば、『ビットストリームにおいて、Octreeパタンの最下位レベルよりも上位のレベルの深さ制御情報に対応する特定のノードが葉ノードであるかを示す所定のフラグ情報』であるようにしてもよい。
 このようにすることにより、復号側において、ビットストリームに含まれる「所定のフラグ情報」に基づいて、容易に「特定のノードが葉ノードである」ことを把握することができる。
 Octreeパタンは、例えば図15のAに示されるように、各ノードの情報が所定の走査順(例えば前順)に並べられて順次符号化される。したがって、ビットストリームにおいては、例えば図15のBに示されるように、各ノードのビットストリームがその走査順に並ぶ。例えば、図15のBに示されるビットストリームは、図15のAのOctreeパタンの、斜線模様の範囲に含まれるノード、白地の範囲に含まれるノード、グレー地の範囲に含まれるノードの順に並べられている。
 ここで、図15のAのOctreeパタンのグレー地の範囲に含まれるノードが、最下位レベルよりも上位のレベルであるが終端とされる(葉ノードである)とする。この場合、最下位レベルのノードの場合と同様に、そのノードにビット列を設定せず、代わりに、ビットストリームの、そのノードに対応する位置に、終端を示す「深さ制御情報(所定のフラグ情報)」を設定するようにしてもよい。
 つまり、符号化部114が、ビットストリームの、Octreeパタンの最下位レベルよりも上位のレベルの葉ノードに対応する位置に、その位置に対応するノードが葉ノードであるかを示す「所定のフラグ情報」を挿入するようにしてもよい。
 この「所定のフラグ情報」の位置によって、Octreeパタンの最下位レベルよりも上位のレベルの葉ノードの位置が示される。したがって、復号側においては、ビットストリームに含まれる「フラグ情報(深さ制御情報)」の位置を確認することにより、Octreeパタンの最下位レベルよりも上位のレベルの葉ノードを検出することができる。つまり、最下位レベルよりも上位のレベルに葉ノードを含むOctreeパタンを正しく復号することができる。
 すなわち、このような「フラグ情報(深さ制御情報)」により、Octreeパタンにおいて、ポイントの解像度の部分的な制御を表現することが可能になる。つまり、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。
 換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においても、Octree符号化を適用することができるので(データ群の解像度を部分的に制御する場合にも、そのデータ群の木構造化を実現することができるので)、符号化効率の低減を抑制することができる。
 例えば、図15のBの例のビットストリームの場合、「end_of_node_one_bit」というシンタックス(フラグ情報)が設定され、ビットストリームの、葉ノードであるグレー地の範囲に含まれるノードに対応する位置に、その「end_of_node_one_bit」が挿入されている。したがって、復号側においては、この「end_of_node_one_bit」を検出することにより、その位置に対応するノードが葉ノードであることを容易に検出することができる。
 なお、この「フラグ情報」の名称(シンタックス)は任意であり、「end_of_node_one_bit」以外であってもよい。また、この「フラグ情報(end_of_node_one_bit)」の値は任意である。例えば、「1」であってもよいし、「0」であってもよい。また、この「フラグ情報」が複数ビット(bit)により構成されるようにしてもよい。さらに、この「フラグ情報」が葉ノードであること以外を示す情報が含まれるようにしてもよい。また、この「フラグ情報が」全てのノードに設定され、その値によって葉ノードであるか否かを識別することができるようにしてもよい。
 また、この「フラグ情報」は、葉ノードとの対応関係が明らかにされているのであれば、ビットストリームの、対応するノードの位置以外に挿入されるようにしてもよい。例えば、この「フラグ情報」を、まとめてヘッダやパラメータセット等に格納するようにしてもよい。また、この「フラグ情報」を、Octreeパタンデータのビットストリームと異なるビットストリームに含めるようにしてもよい。これらの場合、どの「フラグ情報」がどの葉ノードに対応しているかを示す情報も必要になる。
  <符号化部>
 図16は、この場合の符号化部114(図3)の主な構成例を示すブロック図である。図16に示されるように、この場合の符号化部114は、Octree符号化部321、2値化部322、および可逆符号化部323を有する。
 Octree符号化部321は、Octree符号化に関する処理を行う。例えば、Octree符号化部321は、ボクセル設定部113より供給されるボクセルデータのジオメトリデータ(位置情報)をOctree符号化し、Octreeパタンデータを生成する。その際、Octree符号化部321は、最下位レベルと異なるレベルの所望のノードを葉ノードとする場合、その所望のノードの位置を特定する。
 図16に示されるように、Octree符号化部321は、Octree深度制御部331およびOctree構成部332を有する。
 Octree深度制御部331は、Octreeパタンの深度に関する制御を行う。Octree構成部332は、Octreeパタンの構成に関する処理を行う。例えば、Octree構成部332は、ジオメトリデータに基づいてOctreeパタンを構築し、そのジオメトリデータに対応するOctreeパタンデータを生成する。Octree深度制御部331は、そのOctreeパタンの構築を制御し、Octreeパタンの深さを制御する。
 例えば、Octree深度制御部331は、Octree構成部332がジオメトリデータをOctree符号化してOctreeパタンを生成する際に、そのOctree構成部332を制御し、Octreeパタンの最下位レベルよりも上位のレベルの所望のノードを葉ノードとするようにすることができる。つまり、一部のノードがOctreeパタンの最下位レベルよりも上位のレベルにおいて終端する(子孫ノードを形成しない)ようにすることができる。さらに、Octree深度制御部331は、その所望のノードを葉ノードとするノードとして特定する。
 Octree符号化部321(Octree構成部332)は、生成したOctreeパタンデータを2値化部322に供給する。また、Octree符号化部321(Octree深度制御部331)は、特定したノードに関する情報を可逆符号化部323に供給する。
 このようにすることにより、符号化部114は、Octreeパタンを形成しながら、葉ノードとされるノードを特定することができる。
 なお、Octree符号化部321(Octree深度制御部331およびOctree構成部332のそれぞれ)は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、Octree符号化に関する処理を行うようにしてもよい。
 2値化部322は、2値化に関する処理を行う。例えば、2値化部322は、Octree符号化部321から供給されるOctreeパタンデータを2値化して2値データを生成する。2値化部322は、生成した2値データを可逆符号化部323に供給する。
 なお、2値化部322は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、2値化に関する処理を行うようにしてもよい。
 可逆符号化部323は、可逆符号化に関する処理を行う。例えば、可逆符号化部323は、2値化部322から供給される2値データを可逆符号化し、ビットストリーム(つまり、Octreeパタンデータの符号化データ)を生成する。この可逆符号化の方法は任意であり、例えば、CABACであってもよい。
 また、可逆符号化部323は、Octree深度制御部331から供給される情報に基づいて、ビットストリームの、Octree深度制御部331により葉ノードとするノードとして特定されたノードに対応する位置に、上述の「所定のフラグ情報(end_of_node_one_bit)」を挿入する。
 また、例えば、可逆符号化部323は、OctreeパタンデータのOctreeパタンの深さ(レベル数)を指定する情報を、ヘッダやパラメータセット等に格納し、ビットストリームに含める。
 可逆符号化部323は、生成したビットストリームを符号化部114の外部(すなわち符号化装置100の外部)に出力する。
 なお、可逆符号化部323は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、可逆符号化に関する処理を行うようにしてもよい。
 上述のように、Octreeパタンの最下位レベルよりも上位のレベルにおいてノードを終端させる場合、可逆符号化部323は、ビットストリームの、Octree符号化部221により特定されたそのノードに対応する位置に、所定のフラグ情報(深さ制御情報)を挿入する。
 したがって、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においてもOctree符号化を適用することができ(データ群の解像度を部分的に制御する場合にもそのデータ群の木構造化を実現することができ)、符号化効率の低減を抑制することができる。
 なお、Octreeパタンデータの符号化方法は任意である。例えば、CAVLC(Context-based Adaptive Variable Length Code)を用いてOctreeパタンデータを符号化するようにしてもよい。その場合、2値化部222および可逆符号化部223の代わりに、CAVLCを行う可逆符号化部を設けるようにしてもよい。
  <符号化処理の流れ>
 この場合も、符号化装置100により実行される符号化処理の流れは、図7のフローチャートを参照して説明した場合と同様であるのでその説明は省略する。
  <ジオメトリデータ符号化処理の流れ>
 次に、この場合の、図7のステップS104において実行されるジオメトリデータ符号化処理の流れの例を、図17および図18のフローチャートを参照して説明する。
 ジオメトリデータ符号化処理が開始されると、Octree深度制御部331は、図17のステップS201において、Octreeパタンの処理対象ノードを初期化する。
 ステップS202において、Octree深度制御部331は、処理対象ノードのレベルが最下位レベルであるか否かを判定する。処理対象ノードのレベルが最下位レベルでないと判定された場合、処理はステップS203に進む。
 ステップS203において、Octree深度制御部331は、処理対象ノードを終端とするか否かを判定する。処理対象ノードを終端とする、すなわち、処理対象ノードを葉ノードとすると判定された場合、処理はステップS204に進む。
 ステップS204において、Octree深度制御部331は、処理対象ノードを終端とするノードとして(すなわち終端位置として)記憶する(特定する)。また、Octree構成部332は、その処理対象ノードの子孫ノードを処理対象候補から除外する。つまり、処理対象ノードを葉ノードとし、それに属する子ノードを形成しないようにする。ステップS204の処理が終了すると、処理はステップS206に進む。つまり、最下位レベルよりも上位のレベルの葉ノードに対しては、ビット列は設定されない。
 また、ステップS203において、処理対象ノードを終端としないと判定された場合、処理はステップS205に進む。
 ステップS205において、Octree構成部332は、終端としない処理対象ノードに対して、ジオメトリデータに基づいて「子ノードのビットパタン」、すなわち、処理対象ノードに対応する領域を8分割(2×2×2分割)した領域のいずれにポイントが存在するかを示すビットパタンのビット列を生成し、そのビット列を処理対象ノードに設定する。ステップS205の処理が終了すると処理はステップS206に進む。
 また、ステップS202において、処理対象ノードのレベルが最下位レベルである、すなわち、ジオメトリデータ(のボクセル)と同じ解像度のレベルであると判定された場合、ステップS203乃至ステップS205の処理は省略され、処理はステップS206に進む。つまり、最下位レベルのノードに対しては、ビット列は設定されない。
 ステップS206において、Octree深度制御部331は、全ノードを処理したか否かを判定する。ジオメトリデータに対応するOctreeパタンが構築されておらず、未処理のノードが存在すると判定された場合、処理はステップS207に進む。
 ステップS207において、Octree深度制御部331は、処理対象ノードを前順の次のノードに設定する。処理対象ノードが更新されると処理はステップS202に戻る。つまり、ステップS202乃至ステップS207の各処理が、ジオメトリデータに対応するOctreeパタンの各ノードに対して行われる。
 そして、ステップS206において、ジオメトリデータに対応するOctreeパタンが構築され、全ノードを処理したと判定された場合、処理はステップS208に進む。
 ステップS208において、2値化部322は、上述の処理により生成されたジオメトリデータに対応するOctreeパタンデータを2値化する。ステップS208の処理が終了すると、処理は、図18に進む。
 図18のステップS211において、可逆符号化部323は、処理対象ノードを初期化する。
 ステップS212において、可逆符号化部323は、図17のステップS208において生成された処理対象ノードの2値データを読み込む。
 図18のステップS213において、可逆符号化部323は、処理対象ノードが、図17のステップS204において記憶した(特定した)終端位置であるか否かを判定する。処理対象ノードが終端位置であると判定された場合、処理はステップS214に進む。
 ステップS214において、可逆符号化部323は、ビットストリームの、処理対象ノードに対応する位置(すなわち終端位置)に、所定のフラグ情報(end_of_node_one_bit)を挿入する。ステップS214の処理が終了すると処理はステップS216に進む。
 また、ステップS213において、処理対象ノードが終端位置でないと判定された場合、処理はステップS215に進む。
 ステップS215において、可逆符号化部323は、処理対象ノードの2値データを可逆符号化する。ステップS215の処理が終了すると、処理はステップS216に進む。
 ステップS216において、可逆符号化部323は、全ての2値データを処理したか否かを判定する。未処理の2値データが存在すると判定された場合、処理はステップS217に進む。
 ステップS217において、可逆符号化部323は、処理対象ノードを前順の次のノードに設定する。処理対象ノードが更新されると処理はステップS212に戻る。つまり、ステップS212乃至ステップS217の各処理が、Octreeパタンの各ノードの2値データに対して行われる。
 そして、ステップS216において、全ての2値データを処理したと判定された場合、ジオメトリデータ符号化処理が終了し、処理は図7に戻る。
 以上のように各処理を実行することにより、符号化装置100は、この場合も、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においてもOctree符号化を適用することができ(データ群の解像度を部分的に制御する場合にもそのデータ群の木構造化を実現することができ)、符号化効率の低減を抑制することができる。
 なお、以上においてはOctreeパタンの走査順として、前順を例に説明したが、この走査順は任意であり、前順に限定されない。例えば、先行順、前置順、行きがけ順、間順、中間順、通りがけ順、後順、後行順、後置順、帰りがけ順、またはレベル順等であってもよい。
  <符号化部の他の例>
 なお、Octreeパタンを生成後に編集し、最下位レベルよりも上位のレベルの所望のノードを葉ノード化し、その所望のノードを葉ノードとするノードとして特定するようにしてもよい。
 図19は、その場合の符号化部114(図3)の主な構成例を示すブロック図である。この場合、図19に示されるように、符号化部114は、図16の場合と同様に、Octree符号化部321、2値化部322、および可逆符号化部323を有する。
 ただし、Octree符号化部321は、Octree構成部341およびOctree深度制御部342を有する。Octree構成部341は、Octreeパタンの構成に関する処理を行う。例えば、Octree構成部341は、一般的なOctree符号化を行い、ジオメトリデータに基づいてOctreeパタンを構築し、ジオメトリデータに対応するOctreeパタンデータを生成する。
 Octree深度制御部342は、Octreeパタンの深度に関する制御を行う。例えば、Octree深度制御部342は、Octree構成部341により構築されたOctreeパタンを編集し、最下位レベルよりも上位のレベルの所望のノードを葉ノード化する。つまり、Octree深度制御部342は、Octreeパタンの最下位レベルよりも上位のレベルの所望のノードに属する子孫ノードを削除し、その所望のノードを葉ノード化する。さらに、Octree深度制御部342は、その所望のノードを、葉ノードとするノードとして特定する(記憶する)。Octree符号化部321(Octree深度制御部342)は、生成したOctreeパタンデータを2値化部322に供給する。また、Octree符号化部321(Octree深度制御部342)は、特定したノードを示す情報を可逆符号化部323に供給する。
 なお、Octree符号化部321(Octree構成部341およびOctree深度制御部342のそれぞれ)は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、Octree符号化に関する処理を行うようにしてもよい。
 2値化部322は、図16の場合と同様に、2値化に関する処理を行う。例えば、2値化部322は、Octree符号化部321(Octree深度制御部342)から供給されるOctreeパタンデータを2値化して2値データを生成する。2値化部322は、生成した2値データを可逆符号化部323に供給する。
 可逆符号化部323は、図16の場合と同様に、可逆符号化に関する処理を行う。例えば、可逆符号化部323は、2値化部322から供給される2値データを可逆符号化し、ビットストリーム(つまり、Octreeパタンデータの符号化データ)を生成する。
 また、可逆符号化部323は、Octree符号化部321(Octree深度制御部342)から供給される情報に基づいて、ビットストリームの、Octree深度制御部342により葉ノードとするノードとして特定されたノードに対応する位置に、上述の「所定のフラグ情報(end_of_node_one_bit)」を挿入する。
 また、例えば、可逆符号化部323は、OctreeパタンデータのOctreeパタンの深さ(レベル数)を指定する情報を、ヘッダやパラメータセット等に格納し、ビットストリームに含める。可逆符号化部323は、生成したビットストリームを符号化部114の外部(すなわち符号化装置100の外部)に出力する。
 つまり、可逆符号化部223は、この場合も、「所定のフラグ情報(end_of_node_one_bit)」(深さ制御情報)を含むビットストリームを生成する。
 したがって、符号化部114は、この場合も、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においてもOctree符号化を適用することができ(データ群の解像度を部分的に制御する場合にもそのデータ群の木構造化を実現することができ)、符号化効率の低減を抑制することができる。
  <符号化処理の流れ>
 この場合も、符号化装置100により実行される符号化処理の流れは、図7のフローチャートを参照して説明した場合と同様であるのでその説明は省略する。
  <ジオメトリデータ符号化処理の流れ>
 次に、この場合の、図7のステップS104において実行されるジオメトリデータ符号化処理の流れの例を、図20および図21のフローチャートを参照して説明する。
 この場合、ジオメトリデータ符号化処理が開始されると、Octree構成部341は、図20のステップS231において、ジオメトリデータからOctreeパタンを構築し、そのOctreeパタンデータを生成する。
 ステップS232において、Octree深度制御部342は、Octreeパタンの処理対象ノードを初期化する。
 ステップS233において、Octree深度制御部342は、処理対象ノードのレベルが最下位レベルであるか否かを判定する。処理対象ノードのレベルが最下位レベルでないと判定された場合、処理はステップS234に進む。
 ステップS234において、Octree深度制御部342は、処理対象ノードを終端とするか否かを判定する。処理対象ノードを終端とする、すなわち、処理対象ノードを葉ノードとすると判定された場合、処理はステップS235に進む。
 ステップS235において、Octree深度制御部342は、処理対象ノードを終端とするノードとして(すなわち終端位置として)記憶する(特定する)。また、Octree構成部341は、その処理対象ノードの子孫ノードを削除する。つまり、処理対象ノードを葉ノードとし、それに属する子孫ノードを削除する。ステップS235の処理が終了すると、処理はステップS236に進む。
 また、ステップS234において、処理対象ノードを終端としないと判定された場合、ステップS235の処理が省略され、処理はステップS236に進む。つまり、終端としないノードは編集されない(Octree構成部341により生成されたままである)。
 また、ステップS233において、処理対象ノードのレベルが最下位レベルである、すなわち、ジオメトリデータ(のボクセル)と同じ解像度のレベルであると判定された場合、ステップS234およびステップS235の処理は省略され、処理はステップS236に進む。つまり、最下位レベルのノードに対しては、ビット列は設定されないので編集も行われない(Octree構成部341により生成されたままである)。
 ステップS236において、Octree深度制御部342は、ステップS231において生成されたOctreeパタンの全ノードを処理したか否かを判定する。未処理のノードが存在すると判定された場合、処理はステップS237に進む。
 ステップS237において、Octree深度制御部342は、処理対象ノードを前順の次のノードに設定する。処理対象ノードが更新されると処理はステップS233に戻る。つまり、ステップS233乃至ステップS237の各処理が、ジオメトリデータに対応するOctreeパタンの各ノードに対して行われる。
 そして、ステップS236において、全ノードを処理したと判定された場合、処理はステップS238に進む。
 ステップS238において、2値化部322は、上述の処理により生成されたジオメトリデータに対応するOctreeパタンデータを2値化する。ステップS238の処理が終了すると、処理は、図21に進む。
 図21のステップS241において、可逆符号化部323は、処理対象ノードを初期化する。
 ステップS242において、可逆符号化部323は、図20のステップS238において生成された処理対象ノードの2値データを読み込む。
 図21のステップS243において、可逆符号化部323は、処理対象ノードが、図20のステップS204において記憶した(特定した)終端位置であるか否かを判定する。処理対象ノードが終端位置であると判定された場合、処理は図21のステップS244に進む。
 ステップS244において、可逆符号化部323は、ビットストリームの、処理対象ノードに対応する位置(すなわち終端位置)に、所定のフラグ情報(end_of_node_one_bit)を挿入する。ステップS244の処理が終了すると処理はステップS246に進む。
 また、ステップS243において、処理対象ノードが終端位置でないと判定された場合、処理はステップS245に進む。
 ステップS245において、可逆符号化部323は、処理対象ノードの2値データを可逆符号化する。ステップS245の処理が終了すると、処理はステップS246に進む。
 ステップS246において、可逆符号化部323は、全ての2値データを処理したか否かを判定する。未処理の2値データが存在すると判定された場合、処理はステップS247に進む。
 ステップS247において、可逆符号化部323は、処理対象ノードを前順の次のノードに設定する。処理対象ノードが更新されると処理はステップS242に戻る。つまり、ステップS242乃至ステップS247の各処理が、Octreeパタンの各ノードの2値データに対して行われる。
 そして、ステップS246において、全ての2値データを処理したと判定された場合、ジオメトリデータ符号化処理が終了し、処理は図7に戻る。
 以上のように各処理を実行することにより、符号化装置100は、この場合も、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においてもOctree符号化を適用することができ(データ群の解像度を部分的に制御する場合にもそのデータ群の木構造化を実現することができ)、符号化効率の低減を抑制することができる。
 なお、以上においてはOctreeパタンの走査順として、前順を例に説明したが、この走査順は任意であり、前順に限定されない。例えば、先行順、前置順、行きがけ順、間順、中間順、通りがけ順、後順、後行順、後置順、帰りがけ順、またはレベル順等であってもよい。
  <復号装置>
 この場合の符号化装置100が生成したビットストリームを復号する復号装置250も、図11を参照して説明した場合と同様の構成を有する。
 ただし、この場合、深さ制御情報が、例えば、『前記ビットストリームにおいて、前記Octreeパタンの前記最下位レベルよりも上位のレベルの前記深さ制御情報に対応する特定のノードが、葉ノードであるか』を示す所定のフラグ情報(end_of_node_one_bit)であるようにしてもよい。
 このようにすることにより、復号部261は、ビットストリームにおいて、その「所定のフラグ情報」を検出することにより、容易に「特定のノードが葉ノードである」ことを把握することができる。
 また、上述したように、この「所定のフラグ情報」は、ビットストリームの、Octreeパタンの最下位レベルよりも上位のレベルの葉ノードに対応する位置に挿入されており、その位置に対応するノードが葉ノードであるかを示す。
 つまり、ビットストリームに挿入される「フラグ情報(深さ制御情報)」の位置によって、Octreeパタンの最下位レベルよりも上位のレベルの葉ノードの位置が示される。したがって、復号部261は、ビットストリームを復号してOctreeパタンを再構築する際に、そのビットストリームにおける「フラグ情報(深さ制御情報)」の位置を検出(特定)することにより、Octreeパタンの最下位レベルよりも上位のレベルの葉ノードを形成するように、Octreeパタンを再構築することができる。つまり、最下位レベルよりも上位のレベルに葉ノードを含むOctreeパタンを正しく復号することができる。
  <復号部>
 図22は、この場合の復号部261の主な構成例を示すブロック図である。図22に示されるように、復号部261は、終端検出部371、可逆復号部372、多値化部373、およびジオメトリ再構成部374を有する。
 終端検出部371は、ノードの終端の検出に関する処理を行う。例えば、終端検出部371は、符号化装置100により生成されたビットストリームに挿入された「所定のフラグ情報(end_of_node_one_bit)」を検出し、その位置を終端位置として特定する(記憶する)。終端検出部371は、その検出結果を可逆復号部372および多値化部373に供給する。
 なお、終端検出部371は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、終端の検出に関する処理を行うようにしてもよい。
 可逆復号部372は、可逆復号に関する処理を行う。例えば、可逆復号部372は、符号化装置100により生成されたビットストリームを、可逆符号化部323に対応する方法で可逆復号し、2値データを得る。この可逆復号方法は、可逆符号化部323の可逆符号化方法に対応するものであればどのような方法であってもよい。例えば、CABACであってもよい。
 また、その際、可逆復号部372は、ビットストリームの、終端検出部371により検出された終端位置(「所定のフラグ情報(end_of_node_one_bit)」が挿入された位置)から、その「所定のフラグ情報(end_of_node_one_bit)」を削除する。
 可逆復号部372は、以上のようにして得た2値データを多値化部373に供給する。
 なお、可逆復号部372は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、可逆復号に関する処理を行うようにしてもよい。
 多値化部373は、多値化に関する処理を行う。例えば、多値化部373は、可逆復号部372から供給される2値データを多値化し、Octreeパタンを再構築して、Octreeパタンデータを生成する。その際、終端検出部371は、終端位置の検出結果に応じて多値化部373を制御し、Octreeパタンの再構築を制御する。
 例えば、多値化部373は、Octreeパタンの再構築において、終端検出部371により検出(特定)されたビットストリームの終端位置に対応するノードを終端(葉ノード)とし、そのノードに属する子孫ノードを構築しないようにする。このようにすることにより、多値化部373は、「Octreeパタンの深さを指定する情報」により指定されるOctreeパタンの最下位レベルよりも上位のレベルに葉ノードを形成するように、Octreeパタンを再構築することができる。
 多値化部373は、このようにして得られたOctreeパタンデータを、ジオメトリ再構成部374に供給する。
 なお、多値化部373は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、多値化に関する処理を行うようにしてもよい。
 ジオメトリ再構成部374は、ジオメトリデータの再構成に関する処理を行う。例えば、ジオメトリ再構成部374は、多値化部373から供給されるOctreeパタンデータを用いてジオメトリデータを再構成する。ジオメトリ再構成部374は、得られたジオメトリデータをポイントクラウド化処理部262(図11)に供給する。
 なお、ジオメトリ再構成部374は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、ジオメトリデータの再構成に関する処理を行うようにしてもよい。
 以上のように、終端検出部371乃至多値化部373は、ビットストリームを復号し、そのビットストリームに挿入された所定のフラグ情報(深さ制御情報)に基づいて、その最下位レベルと異なるレベルの葉ノードを含むOctreeパタンを構築する。
 したがって、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においてもOctree符号化を適用することができ(データ群の解像度を部分的に制御する場合にもそのデータ群の木構造化を実現することができ)、符号化効率の低減を抑制することができる。
 なお、ビットストリームの復号方法は、その符号化方法に対応するものであれば任意であり、上述の例に限定されない。例えば、CAVLCを用いてビットストリームを復号するようにしてもよい。つまり、この場合、ビットストリームは、CAVLCを用いて符号化されている。その場合、可逆復号部372および多値化部373の代わりに、CAVLCを行う可逆復号部を設けるようにしてもよい。
  <復号処理の流れ>
 この場合も、復号装置250により実行される復号処理の流れは、図13のフローチャートを参照して説明した場合と同様であるのでその説明は省略する。
  <ビットストリーム復号処理の流れ>
 次に、図13のステップS161において実行されるビットストリーム復号処理の流れの例を、図23のフローチャートを参照して説明する。
 ビットストリーム復号処理が開始されると、終端検出部371は、ステップS261において、ビットストリームを読み込む。
 ステップS262において、終端検出部371は、そのビットストリームにおいて、所定のフラグ情報(end_of_node_one_bit)を探索し、検出したか否かを判定する。所定のフラグ情報(end_of_node_one_bit)を検出したと判定された場合、処理は、ステップS263に進む。
 ステップS263において、終端検出部371は、その所定のフラグ情報(end_of_node_one_bit)を検出した位置を終端位置として記憶する(特定する)。
 ステップS264において、可逆復号部372は、ステップS261において読み込まれたビットストリームの、ステップS263において特定された終端位置から、所定のフラグ情報(end_of_node_one_bit)を削除する。
 ステップS264の処理が終了すると処理はステップS265に進む。また、ステップS262において、所定のフラグ情報(end_of_node_one_bit)を検出していないと判定された場合、ステップS263およびステップS264の処理が省略され、処理はステップS265に進む。
 ステップS265において、可逆復号部372は、ステップS261において読み込まれたビットストリームを可逆復号する。
 ステップS266において、可逆復号部372は、全てのビットストリームを処理したか否かを判定する。未処理のビットストリームが存在すると判定された場合、処理はステップS261に戻る。ステップS261乃至ステップS266の処理が各ビットストリームに対して繰り返し実行され、ステップS266において、ビットストリームを全て処理したと判定された場合、処理はステップS267に進む。
 ステップS267において、多値化部373は、ステップS265の処理により得られた2値データを読み込む。
 ステップS268において、多値化部373は、その2値データに、ステップS263において特定された終端位置が含まれるか否かを判定する。終端位置が含まれると判定された場合、処理はステップS269に進む。
 ステップS269において、多値化部373は、その終端位置に対応するノードを終端(葉ノード)として2値データを多値化する。つまり、多値化部373は、2値データを多値化し、その終端位置に対応するノードを終端(葉ノード)とするように、Octreeパタンを再構築する。つまり、深さ制御情報(終端識別ビットパタンのビット列)を、再構築するOctreeパタンに反映させる。
 ステップS269の処理が終了すると、処理はステップS271に進む。また、ステップS268において、2値データに終端位置が含まれないと判定された場合、処理はステップS270に進む。
 ステップS270において、多値化部373は、2値データを多値化し、一般的なOctreeパタンの場合と同様に、Octreeパタンを再構築する。ステップS270の処理が終了すると、処理はステップS271に進む。
 ステップS271において、多値化部373は、2値データを全て処理したか否かを判定する。未処理の2値データが存在する場合、その未処理の2値データを新たな処理対象として、処理をステップS267に戻す。つまり、全ての2値データに対して、ステップS267乃至ステップS271の処理が実行される。そして、ステップS271において2値データを全て処理したと判定された場合、処理はステップS272に進む。
 ステップS272において、ジオメトリ再構成部374は、以上の処理により得られたOctreeパタンデータを用いてジオメトリデータを再構成する。
 ステップS272の処理が終了するとビットストリーム復号処理が終了し、処理は図13に戻る。
 以上のように各処理を実行することにより、復号装置250は、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においてもOctree符号化を適用することができ(データ群の解像度を部分的に制御する場合にもそのデータ群の木構造化を実現することができ)、符号化効率の低減を抑制することができる。
 <4.第3の実施の形態>
  <split_voxel_flag>
 なお、「深さ制御情報」は、任意の情報であるが、例えば、『Octreeパタンの最下位レベルの、その深さ制御情報に対応する特定のノードに対する子孫ノードの追加に関する追加情報』であるようにしてもよい。このようにすることにより、復号側において、ビットストリームに含まれるその「追加情報」に基づいて、特定のノードに対する子孫ノードを追加することができる。
 また、この「追加情報」は、ビットストリームの、Octreeパタンの最下位レベルの子孫ノードを追加するノードに対応する位置に、挿入されるようにしてもよい。このようにすることにより、復号側において、「追加情報」が挿入された位置から、子孫ノードを追加するノード(追加情報に対応するノード)をより容易に特定することができる。
 例えば、図24に示されるOctreeパタンのように、最下位レベルの一部のノードに対して、「追加情報」を設定する。この「追加情報」には、子孫ノードの追加に関する情報が含まれる。この「追加情報」に含まれる具体的な内容は任意である。例えば、「追加情報」に、ビットストリームのその追加情報が挿入された位置に対応するノードがさらに分割されるかを示す所定のフラグ情報(split_voxel_flag)が含まれるようにしてもよい。また、例えば、「追加情報」に、追加する子孫ノードの深さに関する情報がさらに含まれるようにしてもよい。このようにすることにより、追加情報に基づいてより多様な構成の子孫ノードを追加することができる。
 例えば、図24の場合、Octreeパタンの、最下位レベルの右から2番目のノードに、追加情報として「所定のフラグ情報(split_voxel_flag)」が設定されている。この情報に基づいて、このノードには、子ノードが追加される。
 すなわち、このような「追加情報(深さ制御情報)」により、Octreeパタンにおいて、ポイントの解像度の部分的な制御を表現することが可能になる。つまり、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。
 換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においても、Octree符号化を適用することができるので(データ群の解像度を部分的に制御する場合にも、そのデータ群の木構造化を実現することができるので)、符号化効率の低減を抑制することができる。
 なお、この「フラグ情報」の名称(シンタックス)は任意であり、「split_voxel_flag」以外であってもよい。また、この「フラグ情報(split_voxel_flag)」の値は任意である。例えば、「1」であってもよいし、「0」であってもよい。また、この「フラグ情報」が複数ビット(bit)により構成されるようにしてもよい。さらに、この「フラグ情報」が葉ノードであること以外を示す情報が含まれるようにしてもよい。また、この「フラグ情報」が全てのノードに設定され、その値によって子孫ノードが追加されるか否かを識別することができるようにしてもよい。なお、この「フラグ情報」が子孫ノードの全ての構成を示す情報を含むようにし、Octreeパタンの最下位レベル(Octreeパタンの深さを指定する情報に基づく最下位レベル)のノードに設定された「フラグ情報」が追加する全ての子孫ノードを表現するようにしてもよい。つまり、例えば複数階層の子孫ノードを追加する場合も、そのOctreeパタンの最下位レベルのノードに設定される1つの「フラグ情報」によってその追加する全ての子孫ノードを表現するようにしてもよい。また、この「フラグ情報」が、設定されたノードの分割に関する情報のみを含むようにしてもよい。つまり、例えば、複数階層の子孫ノードを追加する場合は、その子孫ノードのそれぞれにこの「フラグ情報」を設定することによりその複数階層の子孫ノードを表現するようにしてもよい。
 また、この「フラグ情報」は、葉ノードとの対応関係が明らかにされているのであれば、ビットストリームの、対応するノードの位置以外に挿入されるようにしてもよい。例えば、この「フラグ情報」を、まとめてヘッダやパラメータセット等に格納するようにしてもよい。また、この「フラグ情報」を、Octreeパタンデータのビットストリームと異なるビットストリームに含めるようにしてもよい。これらの場合、どの「フラグ情報」がどの葉ノードに対応しているかを示す情報も必要になる。
  <符号化部>
 図25は、この場合の符号化部114(図3)の主な構成例を示すブロック図である。図25に示されるように、この場合の符号化部114は、Octree深度制御部421、追加情報生成部422、Octree符号化部423、2値化部424、および可逆符号化部425を有する。
 Octree深度制御部421は、Octreeパタンの深度に関する制御を行う。例えば、Octree深度制御部421は、追加情報生成部422を制御することにより、追加情報の生成(すなわち、子孫ノードの追加)を制御し、Octreeパタンの深さを制御する。
 なお、Octree深度制御部421は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、Octreeの深さ制御に関する処理を行うようにしてもよい。
 追加情報生成部422は、Octree深度制御部421に指定されたノード(最下位レベルの葉ノード)に対して、追加情報を生成する。追加情報生成部422は、生成したその追加情報を可逆符号化部425に供給する。
 なお、追加情報生成部422は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、追加情報の生成に関する処理を行うようにしてもよい。
 Octree符号化部423は、Octree符号化に関する処理を行う。例えば、Octree符号化部423は、ボクセル設定部113より供給されるボクセルデータのジオメトリデータ(位置情報)をOctree符号化し、Octreeパタンデータを生成する。
 図25に示されるように、Octree符号化部423は、Octree構成部431を有する。
 Octree構成部431は、Octreeパタンの構成に関する処理を行う。例えば、Octree構成部431は、ジオメトリデータに基づいてOctreeパタンを構築し、そのジオメトリデータに対応するOctreeパタンデータを生成する。Octree符号化部423(Octree構成部431)は、生成したOctreeパタンデータを2値化部424に供給する。
 なお、Octree符号化部423(Octree構成部431)は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、Octree符号化に関する処理を行うようにしてもよい。
 2値化部424は、2値化に関する処理を行う。例えば、2値化部424は、Octree符号化部423から供給されるOctreeパタンデータを2値化して2値データを生成する。2値化部424は、生成した2値データを可逆符号化部425に供給する。
 なお、2値化部424は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、2値化に関する処理を行うようにしてもよい。
 可逆符号化部425は、可逆符号化に関する処理を行う。例えば、可逆符号化部425は、2値化部424から供給される2値データを可逆符号化し、ビットストリーム(つまり、Octreeパタンデータの符号化データ)を生成する。この可逆符号化の方法は任意であり、例えば、CABACであってもよい。
 また、可逆符号化部425は、追加情報生成部422から供給される追加情報を可逆符号化し、ビットストリームの、子孫ノードを追加する葉ノードに対応する位置に挿入する。さらに、可逆符号化部425は、OctreeパタンデータのOctreeパタンの深さ(レベル数)を指定する情報を、ヘッダやパラメータセット等に格納し、ビットストリームに含める。
 可逆符号化部425は、生成したビットストリームを符号化部114の外部(すなわち符号化装置100の外部)に出力する。
 なお、可逆符号化部425は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、可逆符号化に関する処理を行うようにしてもよい。
 上述のように、Octreeパタンの最下位レベルの葉ノードにさらに子孫ノードを追加する場合、可逆符号化部425は、ビットストリームの、そのノードに対応する位置に、追加情報(深さ制御情報)を挿入する。
 したがって、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においてもOctree符号化を適用することができ(データ群の解像度を部分的に制御する場合にもそのデータ群の木構造化を実現することができ)、符号化効率の低減を抑制することができる。
 なお、Octreeパタンデータの符号化方法は任意である。例えば、CAVLC(Context-based Adaptive Variable Length Code)を用いてOctreeパタンデータを符号化するようにしてもよい。その場合、2値化部424および可逆符号化部425の代わりに、CAVLCを行う可逆符号化部を設けるようにしてもよい。
  <符号化処理の流れ>
 この場合も、符号化装置100により実行される符号化処理の流れは、図7のフローチャートを参照して説明した場合と同様であるのでその説明は省略する。
  <ジオメトリデータ符号化処理の流れ>
 次に、この場合の、図7のステップS104において実行されるジオメトリデータ符号化処理の流れの例を、図26のフローチャートを参照して説明する。
 ジオメトリデータ符号化処理が開始されると、Octree深度制御部421は、図26のステップS291において、Octreeパタンの処理対象ノードを初期化する。
 ステップS292において、Octree深度制御部421は、処理対象ノードのレベルが最下位レベルであるか否かを判定する。処理対象ノードのレベルが最下位レベルでないと判定された場合、処理はステップS293に進む。
 ステップS293において、Octree深度制御部421は、処理対象ノードにおいてOctreeを深くするか否か、すなわち、子ノードを追加するか否かを判定する。Octreeを深くする(子ノードを追加する)と判定された場合、処理はステップS294に進む。
 ステップS294において、追加情報生成部422は、処理対象ノードに追加する子孫ノードに関する情報(例えば、split_voxel_flag等)を含む追加情報を生成する。
 ステップS294の処理が終了すると、処理はステップS296に進む。また、ステップS293において、Octreeを深くしない(つまり、処理対象ノードに子ノードを追加しない)と判定された場合、ステップS294の処理が省略され、処理はステップS296に進む。
 また、ステップS292において、処理対象ノードが最下位レベルでないと判定された場合、処理はステップS295に進む。
 ステップS295において、Octree符号化部423(Octree構成部431)は、ジオメトリデータに基づいて、子ノードのビットパタンを有するビット列を生成し、そのビット列を処理対象ノードに設定する。ステップS295の処理が終了すると、処理はステップS296に進む。
 ステップS296において、Octree深度制御部421は、全ノードを処理したか否かを判定する。ジオメトリデータに対応するOctreeパタンが構築されておらず、未処理のノードが存在すると判定された場合、処理はステップS297に進む。
 ステップS297において、Octree深度制御部421は、処理対象ノードを前順の次のノードに設定する。処理対象ノードが更新されると処理はステップS292に戻る。つまり、ステップS292乃至ステップS297の各処理が、ジオメトリデータに対応するOctreeパタンの各ノードに対して行われる。
 そして、ステップS296において、ジオメトリデータに対応するOctreeパタンが構築され、全ノードを処理したと判定された場合、処理はステップS298に進む。
 ステップS298において、2値化部424は、上述の処理により生成されたジオメトリデータに対応するOctreeパタンデータを2値化する。
 ステップS299において、可逆符号化部425は、2値データの子孫ノードを追加するノードに対応する位置に、追加情報を付加する。
 ステップS300において、可逆符号化部425は、その2値データを可逆符号化し、ビットストリームを生成する。
 ステップS300の処理が終了すると、ジオメトリデータ符号化処理が終了し、処理は図7に戻る。
 以上のように各処理を実行することにより、符号化装置100は、この場合も、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においてもOctree符号化を適用することができ(データ群の解像度を部分的に制御する場合にもそのデータ群の木構造化を実現することができ)、符号化効率の低減を抑制することができる。
 なお、以上においてはOctreeパタンの走査順として、前順を例に説明したが、この走査順は任意であり、前順に限定されない。例えば、先行順、前置順、行きがけ順、間順、中間順、通りがけ順、後順、後行順、後置順、帰りがけ順、またはレベル順等であってもよい。
  <復号装置>
 この場合の符号化装置100が生成したビットストリームを復号する復号装置250も、図11を参照して説明した場合と同様の構成を有する。
 ただし、この場合、深さ制御情報が、例えば、『Octreeパタンの最下位レベルの、深さ制御情報に対応する特定のノードに対する子孫ノードの追加に関する追加情報』であるようにしてもよい。
 このようにすることにより、復号部261は、ビットストリームにおいて、その「追加情報」を検出することにより、容易に「特定のノードに追加する子孫ノード」を把握することができる。
 なお、上述したように、この「追加情報」は、ビットストリームの、Octreeパタンの最下位レベルの、子孫ノードを追加するノードに対応する位置に挿入されているようにしてもよい。つまり、ビットストリームに挿入される「追加情報(深さ制御情報)」の位置によって、Octreeパタンの最下位レベルの、子孫ノードを追加するノード(葉ノード)の位置が示されるようにしてもよい。
 また、上述したように、「追加情報」に、ビットストリームのその追加情報が挿入された位置に対応するノードがさらに分割されるかを示す所定のフラグ情報(split_voxel_flag)が含まれるようにしてもよい。また、上述したように、「追加情報」に、追加する子孫ノードの深さに関する情報がさらに含まれるようにしてもよい。このようにすることにより、追加情報に基づいてより多様な構成の子孫ノードを追加することができる。
 このようにすることにより、復号部261は、ビットストリームを復号してOctreeパタンを再構築する際に、そのビットストリームにおける「追加情報(深さ制御情報)」の位置を検出(特定)することにより、Octreeパタンの最下位レベルの、追加情報に対応するノードに子孫ノードを追加するように、Octreeパタンを再構築することができる。つまり、最下位レベルの一部の葉ノードに追加された子孫ノードを含むOctreeパタンを正しく復号することができる。
  <復号部>
 図27は、この場合の復号部261の主な構成例を示すブロック図である。図27に示されるように、復号部261は、可逆復号部471、追加情報検出部472、多値化部473、再構成制御部474、およびジオメトリ再構成部475を有する。
 可逆復号部471は、可逆復号に関する処理を行う。例えば、可逆復号部471は、符号化装置100により生成されたビットストリームを、可逆符号化部425に対応する方法で可逆復号し、2値データを得る。この可逆復号方法は、可逆符号化部425の可逆符号化方法に対応するものであればどのような方法であってもよい。例えば、CABACであってもよい。
 可逆復号部471は、このようにして得た2値データを追加情報検出部472および多値化部473に供給する。
 なお、可逆復号部471は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、可逆復号に関する処理を行うようにしてもよい。
 追加情報検出部472は、追加情報の検出に関する処理を行う。例えば、追加情報検出部472は、ビットストリームに含まれる追加情報の検出を行う。そして、追加情報検出部472は、検出した追加情報を再構成制御部474に供給する。
 なお、追加情報検出部472は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、追加情報の検出に関する処理を行うようにしてもよい。
 多値化部473は、多値化に関する処理を行う。例えば、多値化部473は、可逆復号部471から供給される2値データを多値化し、Octreeパタンを再構築して、Octreeパタンデータを生成する。多値化部473は、このようにして得られたOctreeパタンデータを、ジオメトリ再構成部475に供給する。
 なお、多値化部473は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、多値化に関する処理を行うようにしてもよい。
 再構成制御部474は、再構成の制御に関する処理を行う。例えば、再構成制御部474は、追加情報検出部472により検出された追加情報に基づいて、ジオメトリ再構成部475を制御し、Octreeパタンにおいて、最下位レベルの、追加情報に対応するノードに対して、追加情報に対応する子孫ノードを追加させ、その追加を反映するようにジオメトリデータを再構成させる。
 なお、再構成制御部474は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、再構成の制御に関する処理を行うようにしてもよい。
 ジオメトリ再構成部475は、ジオメトリデータの再構成に関する処理を行う。例えば、ジオメトリ再構成部475は、再構成制御部474の制御に従って、多値化部373から供給されるOctreeパタンデータを用いてジオメトリデータを再構成する。つまり、ジオメトリ再構成部475は、追加情報に対応する子孫ノードを、Octreeパタンの最下位レベルの、追加情報に対応するノードに対して追加し、その追加を反映するようにジオメトリデータを再構成する。
 ジオメトリ再構成部475は、得られたジオメトリデータをポイントクラウド化処理部262(図11)に供給する。
 なお、ジオメトリ再構成部475は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、ジオメトリデータの再構成に関する処理を行うようにしてもよい。
 以上のように、可逆復号部471乃至ジオメトリ再構成部475は、ビットストリームを復号し、そのビットストリームに挿入された所定のフラグ情報(深さ制御情報)に基づいて、その最下位レベルと異なるレベルの葉ノードを含むOctreeパタンを構築し、そのOctreeパタンに基づくジオメトリデータを再構成する。つまり、復号部261は、部分的に解像度を制御したOctreeパタンを実現し、そのOctreeパタンに対応するジオメトリデータを得ることができる。
 したがって、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においてもOctree符号化を適用することができ(データ群の解像度を部分的に制御する場合にもそのデータ群の木構造化を実現することができ)、符号化効率の低減を抑制することができる。
 なお、ビットストリームの復号方法は、その符号化方法に対応するものであれば任意であり、上述の例に限定されない。例えば、CAVLCを用いてビットストリームを復号するようにしてもよい。つまり、この場合、ビットストリームは、CAVLCを用いて符号化されている。その場合、可逆復号部471および多値化部473の代わりに、CAVLCを行う可逆復号部を設けるようにしてもよい。
  <復号処理の流れ>
 この場合も、復号装置250により実行される復号処理の流れは、図13のフローチャートを参照して説明した場合と同様であるのでその説明は省略する。
  <ビットストリーム復号処理の流れ>
 次に、図13のステップS161において実行されるビットストリーム復号処理の流れの例を、図28のフローチャートを参照して説明する。
 ビットストリーム復号処理が開始されると、可逆復号部471は、ステップS321において、ビットストリームを可逆復号し、2値データを得る。
 ステップS322において、追加情報検出部472は、ステップS321において得られた2値データに追加情報が含まれるか否かを判定する。2値データに追加情報が含まれると判定した場合、処理はステップS323に進む。
 ステップS323において、多値化部473は、その2値データを多値化して最下位レベルまでのOctreeパタンデータを生成する。また、再構成制御部474は、検出された追加情報に基づいて、Octreeパタンの最下位レベルの、追加情報に対応するノードに対して、追加情報に対応する子孫ノードを追加させる。ステップS323の処理が終了すると、処理はステップS325に進む。
 また、ステップS322において、2値データに追加情報が含まれないと判定された場合、処理はステップS324に進む。
 ステップS324において、多値化部473は、その2値データを多値化して最下位レベルまでのOctreeパタンデータを生成する。ステップS324の処理が終了すると、処理はステップS325に進む。
 ステップS325において、ジオメトリ再構成部475は、Octreeパタンに対応するジオメトリデータを再構成する。Octreeパタンに子孫ノードが追加された場合、ジオメトリ再構成部475は、その追加を反映するようにジオメトリデータを再構成する。
 ステップS325の処理が終了すると、ビットストリーム復号処理が終了し、処理は図13に戻る。
 以上のように各処理を実行することにより、復号装置250は、Octree符号化を行うポイントクラウドにおいて、ポイントの解像度の部分的な制御を実現することができる(木構造化可能なデータ群の解像度を部分的に制御することができる)。換言するに、ポイントクラウドのポイントの解像度を部分的に制御する場合においてもOctree符号化を適用することができ(データ群の解像度を部分的に制御する場合にもそのデータ群の木構造化を実現することができ)、符号化効率の低減を抑制することができる。
 <5.その他>
  <制御情報>
 以上の各実施の形態において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可(または禁止)するか否かを制御する制御情報(例えばenabled_flag)を伝送するようにしてもよい。また、例えば、上述した本技術を適用することを許可(または禁止)するブロックサイズの上限若しくは下限、またはその両方を指定する制御情報を伝送するようにしてもよい。
  <ソフトウエア>
 上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。また、一部の処理をハードウエアにより実行させ、他の処理をソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
 図29は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
 図29に示されるコンピュータ900において、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903は、バス904を介して相互に接続されている。
 バス904にはまた、入出力インタフェース910も接続されている。入出力インタフェース910には、入力部911、出力部912、記憶部913、通信部914、およびドライブ915が接続されている。
 入力部911は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部912は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部913は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部914は、例えば、ネットワークインタフェースよりなる。ドライブ915は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア921を駆動する。
 以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部913に記憶されているプログラムを、入出力インタフェース910およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。RAM903にはまた、CPU901が各種の処理を実行する上において必要なデータなども適宜記憶される。
 コンピュータ(CPU901)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア921に記録して適用することができる。その場合、プログラムは、リムーバブルメディア921をドライブ915に装着することにより、入出力インタフェース910を介して、記憶部913にインストールすることができる。また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部914で受信し、記憶部913にインストールすることができる。その他、このプログラムは、ROM902や記憶部913に、あらかじめインストールしておくこともできる。
  <補足>
 本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
 例えば、本技術は、装置またはシステムを構成するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
 なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
 また、上述した処理部は、その処理部について説明した機能を有するようにすれば、どのような構成により実現するようにしてもよい。例えば、処理部が、任意の回路、LSI、システムLSI、プロセッサ、モジュール、ユニット、セット、デバイス、装置、またはシステム等により構成されるようにしてもよい。また、それらを複数組み合わせるようにしてもよい。例えば、複数の回路、複数のプロセッサ等のように同じ種類の構成を組み合わせるようにしてもよいし、回路とLSI等のように異なる種類の構成を組み合わせるようにしてもよい。
 また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
 また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
 また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
 また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
 コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
 本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
 なお、本技術は以下のような構成も取ることができる。
 (1) OctreeパタンのデータであるOctreeパタンデータを符号化し、前記Octreeパタンの、前記Octreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報を含むビットストリームを生成する符号化部
 を備える情報処理装置。
 (2) 前記深さ制御情報は、前記Octreeパタンの前記最下位レベルよりも上位のレベルの前記深さ制御情報に対応する特定のノードが葉ノードである、ことを示す所定のビット列である
 (1)に記載の情報処理装置。
 (3) 前記所定のビット列は、前記Octreeパタンデータにおいて、前記Octreeパタンの前記最下位レベルよりも上位のレベルのノードに設定されており、前記所定のビット列が設定された前記ノードが葉ノードであることを示すビットパタンを有し、
 前記符号化部は、前記Octreeパタンの前記最下位レベルよりも上位のレベルの葉ノードに前記所定のビット列が設定された前記Octreeパタンデータを符号化して前記ビットストリームを生成するように構成される
 (2)に記載の情報処理装置。
 (4) 前記所定のビット列の前記ビットパタンは、前記Octreeパタンの葉ノードでないノードに設定されるビット列には用いられないビットパタンである
 (3)に記載の情報処理装置。
 (5) 前記ビットパタンは、「00000000」である
 (4)に記載の情報処理装置。
 (6) 前記Octreeパタンの前記最下位レベルと異なるレベルの所望のノードに前記所定のビット列を設定する設定部をさらに備え、
 前記符号化部は、前記設定部が設定した前記所定のビット列を含む前記Octreeパタンデータを符号化して前記ビットストリームを生成するように構成される
 (3)乃至(5)のいずれかに記載の情報処理装置。
 (7) 前記設定部は、ポイントクラウドデータを量子化したボクセルデータをOctree符号化して前記Octreeパタンを生成する際に、前記Octreeパタンの前記最下位レベルよりも上位のレベルの所望のノードを葉ノードとするようにし、前記ビット列を設定する
 (6)に記載の情報処理装置。
 (8) 前記設定部は、前記Octreeパタンデータにおいて、前記Octreeパタンの前記最下位レベルよりも上位のレベルの所望のノードを葉ノード化し、前記ビット列を設定する
 (6)に記載の情報処理装置。
 (9) 前記深さ制御情報は、前記ビットストリームにおいて、前記Octreeパタンの前記最下位レベルよりも上位のレベルの前記深さ制御情報に対応する特定のノードが葉ノードであるかを示す所定のフラグ情報である
 (1)乃至(8)のいずれかに記載の情報処理装置。
 (10) 前記符号化部は、前記ビットストリームの、前記Octreeパタンの前記最下位レベルよりも上位のレベルの葉ノードに対応する位置に、前記位置に対応するノードが葉ノードであるかを示す前記所定のフラグ情報を挿入する
 (9)に記載の情報処理装置。
 (11) 前記Octreeパタンの前記最下位レベルと異なるレベルにおいて、葉ノードとするノードを特定する特定部をさらに備え、
 前記符号化部は、前記ビットストリームの、前記特定部により特定された前記ノードに対応する位置に前記所定のフラグ情報を挿入するように構成される
 (10)に記載の情報処理装置。
 (12) 前記特定部は、ポイントクラウドデータを量子化したボクセルデータをOctree符号化して前記Octreeパタンを生成する際に、前記Octreeパタンの前記最下位レベルよりも上位のレベルの所望のノードを葉ノードとするようにし、前記所望のノードを葉ノードとするノードとして特定する
 (11)に記載の情報処理装置。
 (13) 前記特定部は、前記Octreeパタンデータにおいて、前記Octreeパタンの前記最下位レベルよりも上位のレベルの所望のノードを葉ノード化し、前記所望のノードを葉ノードとするノードとして特定する
 (11)に記載の情報処理装置。
 (14) 前記深さ制御情報は、前記Octreeパタンの前記最下位レベルの前記深さ制御情報に対応する特定のノードに対する子孫ノードの追加に関する追加情報である
 (1)乃至(13)のいずれかに記載の情報処理装置。
 (15) 前記符号化部は、前記ビットストリームの、前記Octreeパタンの前記最下位レベルの前記子孫ノードを追加するノードに対応する位置に、前記追加情報を挿入する
 (14)に記載の情報処理装置。
 (16) 前記追加情報は、前記ビットストリームの前記追加情報が挿入された前記位置に対応するノードがさらに分割されるかを示す所定のフラグ情報を含む
 (15)に記載の情報処理装置。
 (17) 前記追加情報は、追加する前記子孫ノードの深さに関する情報をさらに含む
 (16)に記載の情報処理装置。
 (18) 前記追加情報を生成する生成部をさらに備え、
 前記符号化部は、前記生成部により生成された前記追加情報を、前記ビットストリームの、前記Octreeパタンの前記最下位レベルの前記子孫ノードを追加するノードに対応する位置に挿入する
 (14)乃至(17)のいずれかに記載の情報処理装置。
 (19) OctreeパタンのデータであるOctreeパタンデータを符号化し、前記Octreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報を含むビットストリームを生成する
 情報処理方法。
 (21) ビットストリームを復号し、Octreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報に基づいて、前記最下位レベルと異なるレベルの前記葉ノードを含む前記Octreeパタンを構築する復号部
 を備える情報処理装置。
 (22) 前記深さ制御情報は、前記Octreeパタンの前記最下位レベルよりも上位のレベルの前記深さ制御情報に対応する特定のノードが葉ノードである、ことを示す所定のビット列である
 (21)に記載の情報処理装置。
 (23) 前記所定のビット列は、前記Octreeパタンの前記最下位レベルよりも上位のレベルの葉ノードに設定されており、前記所定のビット列が設定された前記ノードが葉ノードであることを示すビットパタンを有する
 (22)に記載の情報処理装置。
 (24) 前記所定のビット列の前記ビットパタンは、前記Octreeパタンの葉ノードでないノードに設定されるビット列には用いられないビットパタンである
 (23)に記載の情報処理装置。
 (25) 前記ビットパタンは、「00000000」である
 (24)に記載の情報処理装置。
 (26) 前記深さ制御情報は、前記ビットストリームにおいて、前記Octreeパタンの前記最下位レベルよりも上位のレベルの前記深さ制御情報に対応する特定のノードが、葉ノードであるかを示す所定のフラグ情報である
 (21)乃至(25)のいずれかに記載の情報処理装置。
 (27) 前記所定のフラグ情報は、前記ビットストリームの、前記Octreeパタンの前記最下位レベルよりも上位のレベルの葉ノードに対応する位置に挿入されており、前記位置に対応するノードが葉ノードであるかを示す
 (26)に記載の情報処理装置。
 (28) 前記ビットストリームに含まれる前記所定のフラグ情報を検出する検出部をさらに備え、
 前記復号部は、前記検出部により検出された前記所定のフラグ情報に基づいて、前記Octreeパタンを構築するように構成される
 (27)に記載の情報処理装置。
 (29) 前記深さ制御情報は、前記Octreeパタンの前記最下位レベルの前記深さ制御情報に対応する特定のノードに対する子孫ノードの追加に関する追加情報である
 (21)乃至(28)のいずれかに記載の情報処理装置。
 (30) 前記追加情報は、前記ビットストリームの、前記Octreeパタンの前記最下位レベルの前記子孫ノードを追加するノードに対応する位置に挿入されている
 (29)に記載の情報処理装置。
 (31) 前記追加情報は、前記ビットストリームの前記追加情報が挿入された前記位置に対応するノードがさらに分割されるかを示す所定のフラグ情報を含む
 (30)に記載の情報処理装置。
 (32) 前記追加情報は、追加する前記子孫ノードの深さに関する情報をさらに含む
 (31)に記載の情報処理装置。
 (33) 前記ビットストリームに含まれる前記追加情報を検出する検出部をさらに備え、
 前記復号部は、前記検出部により検出された前記追加情報に基づいて、前記Octreeパタンの前記最下位レベルのノードに、前記追加情報に応じた子孫ノードを追加するように構成される
 (30)乃至(32)のいずれかに記載の情報処理装置。
 (34) ビットストリームを復号し、Octreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報に基づいて、前記最下位レベルと異なるレベルの前記葉ノードを含む前記Octreeパタンを構築する
 情報処理方法。
 100 符号化装置, 101 制御部, 111 前処理部, 112 バウンディングボックス設定部, 113 ボクセル設定部, 114 符号化部, 221 Octree符号化部, 222 2値化部, 223 可逆符号化部, 231 Octree深度制御部, 232 Octree構成部, 241 Octree構成部, 242 Octree深度制御部, 250 復号装置, 261 復号部, 262 ポイントクラウド化処理部, 271 可逆復号部, 272 終端検出部, 273 多値化部, 274 ジオメトリ再構成部, 321 Octree符号化部, 322 2値化部, 323 可逆符号化部, 331 Octree深度制御部, 332 Octree構成部, 341 Octree構成部, 342 Octree深度制御部, 371 終端検出部, 372 可逆復号部, 373 多値化部, 374 ジオメトリ再構成部, 421 Octree深度制御部, 422 追加情報生成部, 423 Octree符号化部, 424 2値化部, 425 可逆符号化部, 431 Octree構成部, 471 可逆復号部, 472 追加情報検出部, 473 多値化部, 474 再構成制御部, 475 ジオメトリ再構成部, 900 コンピュータ

Claims (20)

  1.  OctreeパタンのデータであるOctreeパタンデータを符号化し、前記Octreeパタンの、前記Octreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報を含むビットストリームを生成する符号化部
     を備える情報処理装置。
  2.  前記深さ制御情報は、前記Octreeパタンの前記最下位レベルよりも上位のレベルの前記深さ制御情報に対応する特定のノードが葉ノードである、ことを示す所定のビット列である
     請求項1に記載の情報処理装置。
  3.  前記所定のビット列は、前記Octreeパタンデータにおいて、前記Octreeパタンの前記最下位レベルよりも上位のレベルのノードに設定されており、前記所定のビット列が設定された前記ノードが葉ノードであることを示すビットパタンを有し、
     前記符号化部は、前記Octreeパタンの前記最下位レベルよりも上位のレベルの葉ノードに前記所定のビット列が設定された前記Octreeパタンデータを符号化して前記ビットストリームを生成するように構成される
     請求項2に記載の情報処理装置。
  4.  前記Octreeパタンの前記最下位レベルと異なるレベルの所望のノードに前記所定のビット列を設定する設定部をさらに備え、
     前記符号化部は、前記設定部が設定した前記所定のビット列を含む前記Octreeパタンデータを符号化して前記ビットストリームを生成するように構成される
     請求項3に記載の情報処理装置。
  5.  前記深さ制御情報は、前記ビットストリームにおいて、前記Octreeパタンの前記最下位レベルよりも上位のレベルの前記深さ制御情報に対応する特定のノードが葉ノードであるかを示す所定のフラグ情報である
     請求項1に記載の情報処理装置。
  6.  前記符号化部は、前記ビットストリームの、前記Octreeパタンの前記最下位レベルよりも上位のレベルの葉ノードに対応する位置に、前記位置に対応するノードが葉ノードであるかを示す前記所定のフラグ情報を挿入する
     請求項5に記載の情報処理装置。
  7.  前記Octreeパタンの前記最下位レベルと異なるレベルにおいて、葉ノードとするノードを特定する特定部をさらに備え、
     前記符号化部は、前記ビットストリームの、前記特定部により特定された前記ノードに対応する位置に前記所定のフラグ情報を挿入するように構成される
     請求項6に記載の情報処理装置。
  8.  前記深さ制御情報は、前記Octreeパタンの前記最下位レベルの前記深さ制御情報に対応する特定のノードに対する子孫ノードの追加に関する追加情報である
     請求項1に記載の情報処理装置。
  9.  前記符号化部は、前記ビットストリームの、前記Octreeパタンの前記最下位レベルの前記子孫ノードを追加するノードに対応する位置に、前記追加情報を挿入する
     請求項8に記載の情報処理装置。
  10.  前記追加情報は、前記ビットストリームの前記追加情報が挿入された前記位置に対応するノードがさらに分割されるかを示す所定のフラグ情報を含む
     請求項9に記載の情報処理装置。
  11.  前記追加情報は、追加する前記子孫ノードの深さに関する情報をさらに含む
     請求項10に記載の情報処理装置。
  12.  OctreeパタンのデータであるOctreeパタンデータを符号化し、前記Octreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報を含むビットストリームを生成する
     情報処理方法。
  13.  ビットストリームを復号し、Octreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報に基づいて、前記最下位レベルと異なるレベルの前記葉ノードを含む前記Octreeパタンを構築する復号部
     を備える情報処理装置。
  14.  前記深さ制御情報は、前記Octreeパタンの前記最下位レベルよりも上位のレベルの前記深さ制御情報に対応する特定のノードが葉ノードである、ことを示す所定のビット列である
     請求項13に記載の情報処理装置。
  15.  前記所定のビット列は、前記Octreeパタンの前記最下位レベルよりも上位のレベルの葉ノードに設定されており、前記所定のビット列が設定された前記ノードが葉ノードであることを示すビットパタンを有する
     請求項14に記載の情報処理装置。
  16.  前記深さ制御情報は、前記ビットストリームにおいて、前記Octreeパタンの前記最下位レベルよりも上位のレベルの前記深さ制御情報に対応する特定のノードが、葉ノードであるかを示す所定のフラグ情報である
     請求項13に記載の情報処理装置。
  17.  前記所定のフラグ情報は、前記ビットストリームの、前記Octreeパタンの前記最下位レベルよりも上位のレベルの葉ノードに対応する位置に挿入されており、前記位置に対応するノードが葉ノードであるかを示す
     請求項16に記載の情報処理装置。
  18.  前記深さ制御情報は、前記Octreeパタンの前記最下位レベルの前記深さ制御情報に対応する特定のノードに対する子孫ノードの追加に関する追加情報である
     請求項13に記載の情報処理装置。
  19.  前記追加情報は、前記ビットストリームの、前記Octreeパタンの前記最下位レベルの前記子孫ノードを追加するノードに対応する位置に挿入されている
     請求項18に記載の情報処理装置。
  20.  ビットストリームを復号し、Octreeパタンの深さを指定する情報に基づく最下位レベルと異なるレベルに葉ノードが形成されることを示す深さ制御情報に基づいて、前記最下位レベルと異なるレベルの前記葉ノードを含む前記Octreeパタンを構築する
     情報処理方法。
PCT/JP2018/034982 2017-10-05 2018-09-21 情報処理装置および方法 WO2019069711A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020207007767A KR102662179B1 (ko) 2017-10-05 2018-09-21 정보 처리 장치 및 방법
CN201880063606.6A CN111183588B (zh) 2017-10-05 2018-09-21 信息处理装置和方法
JP2019546625A JP7268601B2 (ja) 2017-10-05 2018-09-21 情報処理装置および方法
EP18865014.7A EP3694110A4 (en) 2017-10-05 2018-09-21 INFORMATION PROCESSING DEVICE AND METHOD
US16/651,358 US11200703B2 (en) 2017-10-05 2018-09-21 Information processing device and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-195065 2017-10-05
JP2017195065 2017-10-05

Publications (1)

Publication Number Publication Date
WO2019069711A1 true WO2019069711A1 (ja) 2019-04-11

Family

ID=65994329

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/034982 WO2019069711A1 (ja) 2017-10-05 2018-09-21 情報処理装置および方法

Country Status (5)

Country Link
US (1) US11200703B2 (ja)
EP (1) EP3694110A4 (ja)
JP (1) JP7268601B2 (ja)
CN (1) CN111183588B (ja)
WO (1) WO2019069711A1 (ja)

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020262020A1 (ja) * 2019-06-25 2020-12-30 ソニー株式会社 情報処理装置および方法
WO2021010200A1 (ja) * 2019-07-17 2021-01-21 ソニー株式会社 情報処理装置および方法
CN112616058A (zh) * 2019-10-03 2021-04-06 腾讯美国有限责任公司 视频编码或解码方法、装置、计算机设备和存储介质
WO2021141346A1 (ko) * 2020-01-07 2021-07-15 엘지전자 주식회사 포인트 클라우드 데이터 전송 장치, 전송 방법, 처리 장치 및 처리 방법
WO2021263021A1 (en) * 2020-06-24 2021-12-30 Apple Inc. Point cloud compression using octrees with slicing
WO2022004377A1 (ja) * 2020-06-30 2022-01-06 ソニーグループ株式会社 情報処理装置および方法
WO2022054358A1 (ja) * 2020-06-18 2022-03-17 Kddi株式会社 点群復号装置、点群復号方法及びプログラム
US11508095B2 (en) 2018-04-10 2022-11-22 Apple Inc. Hierarchical point cloud compression with smoothing
US11508094B2 (en) 2018-04-10 2022-11-22 Apple Inc. Point cloud compression
US11516394B2 (en) 2019-03-28 2022-11-29 Apple Inc. Multiple layer flexure for supporting a moving image sensor
US11514611B2 (en) 2017-11-22 2022-11-29 Apple Inc. Point cloud compression with closed-loop color conversion
US11527018B2 (en) 2017-09-18 2022-12-13 Apple Inc. Point cloud compression
US11533494B2 (en) 2018-04-10 2022-12-20 Apple Inc. Point cloud compression
US11538196B2 (en) 2019-10-02 2022-12-27 Apple Inc. Predictive coding for point cloud compression
US11552651B2 (en) 2017-09-14 2023-01-10 Apple Inc. Hierarchical point cloud compression
US11562507B2 (en) 2019-09-27 2023-01-24 Apple Inc. Point cloud compression using video encoding with time consistent patches
US11620768B2 (en) 2020-06-24 2023-04-04 Apple Inc. Point cloud geometry compression using octrees with multiple scan orders
US11627314B2 (en) 2019-09-27 2023-04-11 Apple Inc. Video-based point cloud compression with non-normative smoothing
US11625866B2 (en) 2020-01-09 2023-04-11 Apple Inc. Geometry encoding using octrees and predictive trees
US11647226B2 (en) 2018-07-12 2023-05-09 Apple Inc. Bit stream structure for compressed point cloud data
US11663744B2 (en) 2018-07-02 2023-05-30 Apple Inc. Point cloud compression with adaptive filtering
US11676309B2 (en) 2017-09-18 2023-06-13 Apple Inc Point cloud compression using masks
US11683525B2 (en) 2018-07-05 2023-06-20 Apple Inc. Point cloud compression with multi-resolution video encoding
US11711544B2 (en) 2019-07-02 2023-07-25 Apple Inc. Point cloud compression with supplemental information messages
US11727603B2 (en) 2018-04-10 2023-08-15 Apple Inc. Adaptive distance based point cloud compression
US11748916B2 (en) 2018-10-02 2023-09-05 Apple Inc. Occupancy map block-to-patch information compression
US11798196B2 (en) 2020-01-08 2023-10-24 Apple Inc. Video-based point cloud compression with predicted patches
US11818401B2 (en) 2017-09-14 2023-11-14 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
US11895307B2 (en) 2019-10-04 2024-02-06 Apple Inc. Block-based predictive coding for point cloud compression
US11915456B2 (en) 2018-10-05 2024-02-27 Interdigital Vc Holdings, Inc. Method and device for encoding and reconstructing missing points of a point cloud
US11935272B2 (en) 2017-09-14 2024-03-19 Apple Inc. Point cloud compression
US11948338B1 (en) 2021-03-29 2024-04-02 Apple Inc. 3D volumetric content encoding using 2D videos and simplified 3D meshes

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11106936B2 (en) * 2019-09-05 2021-08-31 General Atomics Object point cloud comparison and matching
US11568571B2 (en) * 2019-10-03 2023-01-31 Tencent America LLC Techniques and apparatus for lossless lifting for attribute coding

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235210A (ja) * 2004-02-17 2005-09-02 Samsung Electronics Co Ltd 3次元体積データの符号化/復号化方法及び装置
JP2015502100A (ja) * 2011-11-28 2015-01-19 トムソン ライセンシングThomson Licensing 終了可能な空間ツリー型位置符号化および復号

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100695142B1 (ko) * 2004-03-08 2007-03-14 삼성전자주식회사 적응적 2의 n 제곱 진트리 생성방법 및 이를 이용한 3차원 체적 데이터 부호화/복호화 방법 및 장치
CN103999490B (zh) * 2011-11-28 2018-05-08 汤姆逊许可公司 可终止的基于空间树的位置编码和解码的方法和装置
US10853997B2 (en) * 2015-04-21 2020-12-01 Hewlett-Packard Development Company, L.P. Octree serialization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235210A (ja) * 2004-02-17 2005-09-02 Samsung Electronics Co Ltd 3次元体積データの符号化/復号化方法及び装置
JP2015502100A (ja) * 2011-11-28 2015-01-19 トムソン ライセンシングThomson Licensing 終了可能な空間ツリー型位置符号化および復号

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
R. MEKURIAK. BLOMP. CESAR., DESIGN, IMPLEMENTATION AND EVALUATION OF A POINT CLOUD CODEC FOR TELE-IMMERSIVE VIDEO, Retrieved from the Internet <URL:tcsvt_paper_submitted_february.pdf>

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11935272B2 (en) 2017-09-14 2024-03-19 Apple Inc. Point cloud compression
US11818401B2 (en) 2017-09-14 2023-11-14 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
US11552651B2 (en) 2017-09-14 2023-01-10 Apple Inc. Hierarchical point cloud compression
US11922665B2 (en) 2017-09-18 2024-03-05 Apple Inc. Point cloud compression
US11676309B2 (en) 2017-09-18 2023-06-13 Apple Inc Point cloud compression using masks
US11527018B2 (en) 2017-09-18 2022-12-13 Apple Inc. Point cloud compression
US11514611B2 (en) 2017-11-22 2022-11-29 Apple Inc. Point cloud compression with closed-loop color conversion
US11727603B2 (en) 2018-04-10 2023-08-15 Apple Inc. Adaptive distance based point cloud compression
US11533494B2 (en) 2018-04-10 2022-12-20 Apple Inc. Point cloud compression
US11508094B2 (en) 2018-04-10 2022-11-22 Apple Inc. Point cloud compression
US11508095B2 (en) 2018-04-10 2022-11-22 Apple Inc. Hierarchical point cloud compression with smoothing
US11663744B2 (en) 2018-07-02 2023-05-30 Apple Inc. Point cloud compression with adaptive filtering
US11683525B2 (en) 2018-07-05 2023-06-20 Apple Inc. Point cloud compression with multi-resolution video encoding
US11647226B2 (en) 2018-07-12 2023-05-09 Apple Inc. Bit stream structure for compressed point cloud data
US11748916B2 (en) 2018-10-02 2023-09-05 Apple Inc. Occupancy map block-to-patch information compression
US11915456B2 (en) 2018-10-05 2024-02-27 Interdigital Vc Holdings, Inc. Method and device for encoding and reconstructing missing points of a point cloud
US11516394B2 (en) 2019-03-28 2022-11-29 Apple Inc. Multiple layer flexure for supporting a moving image sensor
WO2020262020A1 (ja) * 2019-06-25 2020-12-30 ソニー株式会社 情報処理装置および方法
US11711544B2 (en) 2019-07-02 2023-07-25 Apple Inc. Point cloud compression with supplemental information messages
WO2021010200A1 (ja) * 2019-07-17 2021-01-21 ソニー株式会社 情報処理装置および方法
US11627314B2 (en) 2019-09-27 2023-04-11 Apple Inc. Video-based point cloud compression with non-normative smoothing
US11562507B2 (en) 2019-09-27 2023-01-24 Apple Inc. Point cloud compression using video encoding with time consistent patches
US11538196B2 (en) 2019-10-02 2022-12-27 Apple Inc. Predictive coding for point cloud compression
CN112616058A (zh) * 2019-10-03 2021-04-06 腾讯美国有限责任公司 视频编码或解码方法、装置、计算机设备和存储介质
US11895307B2 (en) 2019-10-04 2024-02-06 Apple Inc. Block-based predictive coding for point cloud compression
JP7433442B2 (ja) 2020-01-07 2024-02-19 エルジー エレクトロニクス インコーポレイティド ポイントクラウドデータ送信装置、送信方法、処理装置および処理方法
JP2023510179A (ja) * 2020-01-07 2023-03-13 エルジー エレクトロニクス インコーポレイティド ポイントクラウドデータ送信装置、送信方法、処理装置および処理方法
WO2021141346A1 (ko) * 2020-01-07 2021-07-15 엘지전자 주식회사 포인트 클라우드 데이터 전송 장치, 전송 방법, 처리 장치 및 처리 방법
US11282239B2 (en) 2020-01-07 2022-03-22 Lg Electronics Inc. Device and method of transmitting point cloud data, device and method of processing point cloud data
US11798196B2 (en) 2020-01-08 2023-10-24 Apple Inc. Video-based point cloud compression with predicted patches
US11625866B2 (en) 2020-01-09 2023-04-11 Apple Inc. Geometry encoding using octrees and predictive trees
WO2022054358A1 (ja) * 2020-06-18 2022-03-17 Kddi株式会社 点群復号装置、点群復号方法及びプログラム
WO2021263021A1 (en) * 2020-06-24 2021-12-30 Apple Inc. Point cloud compression using octrees with slicing
US11620768B2 (en) 2020-06-24 2023-04-04 Apple Inc. Point cloud geometry compression using octrees with multiple scan orders
US11615557B2 (en) 2020-06-24 2023-03-28 Apple Inc. Point cloud compression using octrees with slicing
WO2022004377A1 (ja) * 2020-06-30 2022-01-06 ソニーグループ株式会社 情報処理装置および方法
US11948338B1 (en) 2021-03-29 2024-04-02 Apple Inc. 3D volumetric content encoding using 2D videos and simplified 3D meshes

Also Published As

Publication number Publication date
EP3694110A4 (en) 2020-11-18
US20200273211A1 (en) 2020-08-27
JPWO2019069711A1 (ja) 2021-01-21
CN111183588B (zh) 2023-09-26
KR20200062194A (ko) 2020-06-03
US11200703B2 (en) 2021-12-14
CN111183588A (zh) 2020-05-19
EP3694110A1 (en) 2020-08-12
JP7268601B2 (ja) 2023-05-08

Similar Documents

Publication Publication Date Title
JP7268601B2 (ja) 情報処理装置および方法
EP3767954A1 (en) Image processing device and method
WO2019012975A1 (ja) 情報処理装置および方法
WO2019065297A1 (ja) 情報処理装置および方法
JP6178798B2 (ja) 終了可能な空間ツリー型位置符号化および復号
JP5033261B2 (ja) 共有頂点情報を用いた低複雑度3次元メッシュ圧縮装置及び方法
WO2019065298A1 (ja) 情報処理装置および方法
KR101048368B1 (ko) 연결정보 분석을 통한 3차원 메쉬 모델의 부호화 장치 및 방법
TW202041034A (zh) 資訊處理裝置及方法
CN112771582B (zh) 图像处理设备和方法
CN114598891B (zh) 点云数据编码方法、解码方法、点云数据处理方法及装置
Lasserre et al. Using neighbouring nodes for the compression of octrees representing the geometry of point clouds
KR20230084490A (ko) 지오메트리 포인트 클라우드 압축 (g-pcc) 에서의 레이저 회전에 대한 하이 레벨 신택스
EP4071715A1 (en) Information processing device and method
KR102662179B1 (ko) 정보 처리 장치 및 방법
WO2021010200A1 (ja) 情報処理装置および方法
KR20240063175A (ko) 정보 처리 장치 및 방법
CN115102934B (zh) 点云数据的解码方法、编码方法、装置、设备及存储介质
EP3996045A1 (en) Information processing device and method
WO2019198520A1 (ja) 情報処理装置および方法
Jakob et al. A parallel approach to compression and decompression of triangle meshes using the GPU
CN114097242A (zh) 信息处理装置和方法
CN112789658A (zh) 图像处理装置和方法
WO2024082152A1 (zh) 编解码方法及装置、编解码器、码流、设备、存储介质
US20220358685A1 (en) Image encoding method and image decoding method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18865014

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019546625

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018865014

Country of ref document: EP

Effective date: 20200506