以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.参照ポイントの設定
2.第1の実施の形態(方法1)
3.第2の実施の形態(方法2)
4.第3の実施の形態(方法3)
5.第4の実施の形態(方法4)
6.付記
<1.参照ポイントの設定>
<技術内容・技術用語をサポートする文献等>
本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献に記載されている内容も含まれる。
非特許文献1:(上述)
非特許文献2:(上述)
非特許文献3:(上述)
非特許文献4:(上述)
つまり、上述の非特許文献に記載されている内容や、上述の非特許文献において参照されている他の文献の内容等も、サポート要件を判断する際の根拠となる。
<ポイントクラウド>
従来、ポイントの位置情報や属性情報等により3次元構造を表すポイントクラウド(Point cloud)や、頂点、エッジ、面で構成され、多角形表現を使用して3次元形状を定義するメッシュ(Mesh)等の3Dデータが存在した。
例えばポイントクラウドの場合、立体構造物(3次元形状のオブジェクト)を多数の点の集合として表現する。ポイントクラウドのデータ(ポイントクラウドデータとも称する)は、各点の位置情報(ジオメトリデータとも称する)と属性情報(アトリビュートデータとも称する)とにより構成される。アトリビュートデータは任意の情報を含むことができる。例えば、各ポイントの色情報、反射率情報、法線情報等がアトリビュートデータに含まれるようにしてもよい。このようにポイントクラウドデータは、データ構造が比較的単純であるとともに、十分に多くの点を用いることにより任意の立体構造物を十分な精度で表現することができる。
<ボクセルを用いた位置情報の量子化>
このようなポイントクラウドデータはそのデータ量が比較的大きいので、符号化等によるデータ量を圧縮するために、ボクセル(Voxel)を用いた符号化方法が考えられた。ボクセルは、ジオメトリデータ(位置情報)を量子化するための3次元領域である。
つまり、ポイントクラウドを内包する3次元領域(バウンディングボックス(Bounding box)とも称する)をボクセルと称する小さな3次元領域に分割し、そのボクセル毎に、ポイントを内包するか否かを示すようにする。このようにすることにより、各ポイントの位置はボクセル単位に量子化される。したがって、ポイントクラウド(Point cloud)データをこのようなボクセルのデータ(ボクセル(Voxel)データとも称する)に変換することにより、情報量の増大を抑制する(典型的には情報量を削減する)ことができる。
<Octree>
さらに、ジオメトリデータについて、このようなボクセル(Voxel)データを用いてOctreeを構築することが考えられた。Octreeは、ボクセルデータを木構造化したものである。このOctreeの最下位のノードの各ビットの値が、各ボクセルのポイントの有無を示す。例えば、値「1」がポイントを内包するボクセルを示し、値「0」がポイントを内包しないボクセルを示す。Octreeでは、1ノードが8つのボクセルに対応する。つまり、Octreeの各ノードは、8ビットのデータにより構成され、その8ビットが8つのボクセルのポイントの有無を示す。
そして、Octreeの上位のノードは、そのノードに属する下位ノードに対応する8つのボクセルを1つにまとめた領域のポイントの有無を示す。つまり、下位ノードのボクセルの情報をまとめることにより上位ノードが生成される。なお、値が「0」のノード、すなわち、対応する8つのボクセルが全てポイントを内包しない場合、そのノードは削除される。
このようにすることにより、値が「0」でないノードからなる木構造(Octree)が構築される。つまり、Octreeは、各解像度のボクセルのポイントの有無を示すことができる。Octree化して符号化することにより、位置情報は、最高解像度(最上位層)から所望の階層(解像度)まで復号することにより、その解像度のポイントクラウドデータを復元することができる。つまり、不要な階層(解像度)の情報を復号せずに、容易に任意の解像度で復号することができる。換言するに、ボクセル(解像度)のスケーラビリティを実現することができる。
また、上述のように値が「0」のノードを省略することにより、ポイントが存在しない領域のボクセルを低解像度化することができるので、さらなる情報量の増大の抑制(典型的には情報量の削減)を行うことができる。
<Lifting>
これに対してアトリビュートデータ(属性情報)を符号化する際は、符号化による劣化を含めジオメトリデータ(位置情報)を既知であるものとして、ポイント間の位置関係を利用して符号化が行われる。このようなアトリビュートデータの符号化方法として、RAHT(Region Adaptive Hierarchical Transform)や、非特許文献2に記載のようなLiftingと称する変換を用いる方法が考えられた。これらの技術を適用することにより、ジオメトリデータのOctreeのように、アトリビュートデータを階層化することもできる。
例えば非特許文献2に記載のLiftingの場合、ポイントを参照ポイントまたは予測ポイントに設定する処理を参照ポイントに対して再帰的に繰り返すことにより、アトリビュートデータが階層化される。そしてこの階層構造に従って、参照ポイントのアトリビュートデータを用いて予測ポイントのアトリビュートデータの予測値が導出され、その予測値とアトリビュートデータとの差分値が符号化される。
例えば、図1においてポイントP5を参照ポイントとして選択するとする。その場合、予測ポイントは、そのポイントP5を中心とする半径Rの円形領域内において探索される。この場合、ポイントP9が、その領域内に位置するので、ポイントP5を参照して予測値が導出される予測ポイント(ポイントP5を参照ポイントとする予測ポイント)として設定される。
このような処理により、例えば、白丸で示されるポイントP7乃至ポイントP9の各差分値と、斜線模様で示されるポイントP1、ポイントP3、およびポイントP6の各差分値と、グレーの丸で示されるポイントP0、ポイントP2、ポイントP4、およびポイントP5の各差分値とが、互いに異なる階層の差分値として導出される。
なお、実際には、ポイントクラウドは3次元空間に配置され、上述の処理は3次元空間において行われるが、図1においては、説明の便宜上、その3次元空間を、2次元平面を用いて模式的に示している。つまり、この図1を参照して行われた説明は、3次元空間における処理や現象等に対しても同様に適用することができる。
以下においても、適宜、3次元空間に対する説明を、2次元平面を用いて行っている。特に言及しない限り、基本的に、その説明は3次元空間における処理や現象等に対しても同様に適用することができる。
この階層化における参照ポイントの選択は、例えばモートン順(Morton Order)に従って行われていた。例えば、図2に示されるツリー構造のように、ある階層の複数のノードから1つの参照ポイントを選択し、それを1階層上位のノードとする場合、その複数のノードをモートン順に探索し、最初に出現するノードを参照ポイントに選択していた。図2においては、各丸がノードを示し、黒丸が参照ポイントに選択された(つまり、1階層上位のノードとして選択された)ノードを示す。図2においては、左から右に向かって各ノードがモートン順にソートされている。つまり、図2の例の場合、左端のノードが常に選択される。
これに対して、非特許文献4では、このようなアトリビュートデータの階層化において、参照ポイントとして、その参照ポイントの候補の内の、モートン順における先頭のポイントと、最後のポイントとを、階層毎に交互に選択する方法が提案された。つまり、図3の例のように、LoD Nの階層においては、モートン順における先頭のノードが参照ポイントに選択され、その次の階層(LoD N-1)においては、モートン順における最後のノードが参照ポイントに選択される。
図4は、3次元空間における参照ポイントの選択の様子の例を、2次元平面を用いて説明している。図4のAの各四角はある階層のボクセルを示す。また、丸は、処理対象とされる参照ポイントの候補を示す。図4のAに示される2x2個のポイントから参照ポイントを選択する場合、例えば、モートン順の先頭のポイント(グレーのポイント)が参照ポイントとして選択される。その1つ上位の階層においては、図4のBに示されるように、2x2個のポイントの内、モートン順の最後のポイント(グレーのポイント)が参照ポイントとして選択される。さらに、その1つ上位の階層においては、図4のCに示されるように、2x2個のポイントの内、モートン順の先頭のポイント(グレーのポイント)が参照ポイントとして選択される。
図4のA乃至図4のCのそれぞれに示される矢印は、参照ポイントの移動を示す。この場合、参照ポイントの移動範囲が図4のCに示される点線枠のように狭い範囲に限定されるので、予測精度の低減が抑制される。
しかしながら、図5に示される位置において図4の場合と同様に参照ポイントが選択されると、参照ポイントの位置は、図5のA乃至図5のCのように移動する。図4は、3次元空間における参照ポイントの選択の様子の他の例を、2次元平面を用いて説明している。つまりその参照ポイントの移動範囲が、図5のCに示される点線枠のように、図4の場合に比べて広くなってしまい、予測精度が低減するおそれがあった。
このように、非特許文献4に記載の方法では、ポイントの位置によって予測精度が低減し、符号化効率が低減するおそれがあった。
<参照ポイントの設定方法>
そこで、例えば図6の表の一番上の段に示される方法1のように、このアトリビュートデータの階層化において、ポイントの重心を求め、その重心に基づいて参照ポイントを設定するようにしてもよい。例えば、導出した重心に近いポイントを参照ポイントに選択するようにしてもよい。
また、例えば図6の表の上から2番目の段に示される方法2のように、このアトリビュートデータの階層化において、ポイントの分布パタン(分布態様)に応じて参照ポイントを選択するようにしてもよい。
さらに、例えば図6の表の上から3番目の段に示される方法3のように、このアトリビュートデータの階層化において、参照ポイントの設定に関する情報を符号化側から復号側に伝送するようにしてもよい。
また、例えば図6の表の上から4番目の段に示される方法4のように、このアトリビュートデータの階層化において、参照ポイントとして、バウンディングボックスの中心に近いポイントと遠いポイントとを階層毎に交互に選択するようにしてもよい。
これらのいずれかの方法を適用することにより、符号化効率の低減を抑制することができる。なお、上述した各方法は任意に組み合わせて適用することができる。また、上述した各方法は、スケーラブルな復号に対応したアトリビュートデータの符号化・復号に適用することもできるし、スケーラブルな復号に対応していないアトリビュートデータの符号化・復号に適用することもできる。
<2.第1の実施の形態>
<方法1>
上述した「方法1」を適用する場合について説明する。この「方法1」の場合、ポイントの重心が導出され、その重心に基づいて参照ポイントが選択される。この導出された重心に対してどのようなポイントを参照ポイントとして設定してもよい。例えば、導出された重心に近いポイント(例えば重心に対してより近傍に位置するポイント)を参照ポイントとして選択するようにしてもよい。
図7のAは、参照ポイントの設定を行う対象領域の例を示している。図7のAにおいて四角はボクセルを示し、丸は、ポイントを示す。つまり、図7のAは、3次元空間上のボクセル構造の例を、2次元平面を用いて模式的に示した図である。例えば図7のAのように配置されたポイントA乃至ポイントCが参照ポイントの候補であるとすると、図7のBに示されるように、これらの候補の重心に近いポイントBを参照ポイントとして選択してもよい。図7のBは、図2等と同様にアトリビュートデータの階層構造を示しており、黒丸が参照ポイントを示している。つまり、ポイントA乃至ポイントCの中からポイントBが参照ポイントとして選択されている。
このように重心に近いポイントを参照ポイントすることにより、より多くの他のポイントに対して近いポイントを参照ポイントとして設定することができる。したがって、つまりより多くの予測ポイントに対する予測精度の低減を抑制するように参照ポイントを設定することができ、符号化効率の低減を抑制することができる。
<重心の導出方法>
この重心の導出方法は任意である。例えば、参照ポイントの選択に用いる重心として、どのポイントに対する重心を適用してもよい。例えば、所定の範囲内に位置するポイントの重心を導出し、その重心を参照ポイントの選択に用いるようにしてもよい。このようにすることにより、重心の導出に用いられるポイントの数の増大を抑制することができ、負荷の増大を抑制することができる。
この重心の導出に用いるポイントの範囲(重心導出対象範囲とも称する)は、どのような範囲であってもよい。例えば、図8に示される「重心の導出方法」の表の上から2番目の段に示される方法(1)のように、参照ポイントの候補の重心を導出するようにしてもよい。つまり、例えば、図9のAに示されるように、参照ポイントの候補となるポイントが存在する2x2x2のボクセルからなるボクセル領域を重心導出対象範囲としてもよい。図9のAにおいては、3次元空間の2x2x2のボクセル領域を2次元平面上で(2x2の四角として)模式的に示している。この場合、図9のAにおいて丸で示される3つのポイントの重心が導出され、その重心が参照ポイントの設定に利用される。
このようにすることにより、処理対象のポイント(参照ポイントの候補)の重心を導出すればよいので、他のポイントの検索等が不要になり、容易にその重心を導出することができる。
なお、重心導出対象範囲とするボクセル領域は任意であり2x2x2に限定されない。例えば、NxNxN(N>=2)のボクセルからなるボクセル領域内に位置するポイントの重心を導出してもよい。つまり、このNxNxNのボクセル領域を重心導出対象範囲としてもよい。
例えば、図10のAに示されるように、この重心導出対象範囲とするボクセル領域(図10のAにおいて太線で示されるボクセル領域)と、参照ポイントを導出する対象のボクセル領域(図10のAにおいてグレーで示されるボクセル領域)とを同位置としてもよい(両範囲を完全一致させてもよい)。なお、図10においては、実際には3次元空間上に構成されるボクセル領域を2次元平面上において模式的に示している。また、図10のAにおいては、説明の便宜上、重心導出対象範囲と参照ポイントを導出する対象のボクセル領域とを互いに少しずらして示しているが、実際には両範囲が完全に一致することを示している。
また、例えば図10のBに示されるように、重心導出対象範囲とするボクセル領域(図10のBにおいて太線で示されるボクセル領域)を、参照ポイントを導出する対象のボクセル領域(図10のBにおいてグレーで示されるボクセル領域)よりも広くしてもよい。図10のBの例では、4x4x4のボクセル領域が重心導出対象範囲とされている。
また、例えば図10のCに示されるように、重心導出対象範囲とするボクセル領域(図10のCにおいて太線で示されるボクセル領域)の中心が、参照ポイントを導出する対象のボクセル領域(図10のCにおいてグレーで示されるボクセル領域)の中心と一致しなくてもよい。つまり、重心導出対象範囲が、参照ポイントを導出する対象のボクセル領域に対して所定の方向に偏って拡がるようにしてもよい。例えば、バウンディングボックスの端付近等において、重心導出対象範囲がバウンディングボックスからはみ出さないようにするために、このように重心導出対象範囲の拡がりを偏らせてもよい。
また、例えば、図8に示される「重心の導出方法」の表の上から3番目の段に示される方法(2)のように、近傍N点の重心を求めるようにしてもよい。つまり、例えば、図9のBに示されるように、参照ポイントの候補となるポイントが存在する2x2x2のボクセルからなるボクセル領域の中心座標に近い方からN個のポイントを探索し、そのN個のポイントの重心を導出してもよい。図9のBにおいては、実際には3次元空間上に配置されるポイントの分布を2次元平面上で模式的に示している。また、黒丸が参照ポイントを導出する対象のボクセル領域の中心座標を示している。つまり、この黒丸に近い方から順にポイント(白丸)がN個選択され、その重心が導出される。
このようにすることにより、探索するポイントをN個に限定することができるので、その探索による負荷の増大を抑制することができる。
また、例えば、図8に示される「重心の導出方法」の表の上から4番目の段に示される方法(3)のように、方法(2)により導出される近傍N点から、参照ポイントの候補(2x2x2のボクセルからなるボクセル領域に存在するポイント)を除外してもよい。つまり、図9のCに示されるように、2x2x2のボクセル領域を重心導出対象範囲から除外し、この2x2x2のボクセル領域の外に位置するポイントの重心を導出するようにしてもよい。図9のCにおいては、実際には3次元空間上に配置されるポイントの分布を2次元平面上で模式的に示している。
さらに、例えば、図8に示される「重心の導出方法」の表の上から5番目の段に示される方法(4)のように、参照ポイントの候補となるポイントが存在する2x2x2のボクセルからなるボクセル領域の中心座標を中心とする半径rの領域内のポイントの重心を導出するようにしてもよい。つまり、この場合、例えば図9のDに示されるように、点線枠で示される、2x2x2のボクセルからなるボクセル領域の中心座標を中心とする半径rの領域内に位置するポイントの重心が導出される。なお、図9のDにおいては、実際には3次元空間上に配置されるポイントの分布を2次元平面上で模式的に示している。また、黒丸が参照ポイントを導出する対象のボクセル領域の中心座標を示し、白丸が2x2x2のボクセルからなるボクセル領域の中心座標を中心とする半径rの領域内のポイントを示している。
このようにすることにより、ボクセル構造を利用しない、スケーラブルに非対応なLiftingにも本技術を適用することができる。
<参照点の選択方法>
上述したように「方法1」の場合、例えば導出された重心に近いポイントを参照ポイントに設定することができる。「重心に近いポイント」が複数存在する場合、その中のいずれか1つが参照ポイントとして選択される。この選択方法は任意である。例えば、図11の「複数の候補からの参照点の選び方」の表に示される各方法のように参照ポイントを設定してもよい。
例えば、図12のAに示されるように、重心からの距離が互いに等しいポイントが複数存在することもあり得る。また、例えば、図12のBに示されるように、演算による負荷の増大を抑制するために、例えば十分に近くに位置するポイントは全て「重心に近いポイント」としてもよい。図12のBの場合、重心から半径Dthの範囲内に位置するポイントは全て「重心に近いポイント」とされる。この場合、「重心に近いポイント」が複数存在し得る。
このような場合、例えば、図11に示される「複数の候補からの参照点の選び方」の表の上から2番目の段に示される方法(1)のように、所定の探索順において一番先に処理対象となるポイントを選択するようにしてもよい。
また、例えば、図11に示される「複数の候補からの参照点の選び方」の表の上から3番目の段に示される方法(2)のように、所定の探索順において一番先または一番後に処理対象となるポイントを選択するようにしてもよい。例えば、所定の探索順において一番先に処理対象となるポイントを選択するか、所定の探索順において一番後に処理対象となるポイントを選択するかを階層毎に切り替えるようにしてもよい。
さらに、例えば、図11に示される「複数の候補からの参照点の選び方」の表の上から4番目の段に示される方法(3)のように、所定の探索順において中間(個数/2)に処理対象となるポイントを選択するようにしてもよい。
また、例えば、図11に示される「複数の候補からの参照点の選び方」の表の上から5番目の段に示される方法(4)のように、所定の探索順において指定された順位に処理対象となるポイントを選択するようにしてもよい。つまり、所定の探索順においてN番目に処理対象となるポイントを選択するようにしてもよい。この指定順位(N)は、予め定められていてもよいし、ユーザやアプリケーション等により設定可能としてもよい。また、指定順位を設定可能とする場合は、この指定順位(N)に関する情報をシグナリング(伝送)させてもよい。
以上の方法(1)乃至方法(4)のように、重心に対して略同条件の候補が複数存在する場合、その複数の候補の中から、所定の探索順に基づいて参照ポイントを設定するようにしてもよい。
なお、この探索順は任意である。例えば、モートン順であってもよいし、モートン順以外であってもよい。また、この探索順は、規格等により予め規定されていてもよいし、ユーザやアプリケーション等により設定可能としてもよい。この探索順を設定可能とする場合、その探索順に関する情報をシグナリング(伝送)させてもよい。
さらに、例えば、図11に示される「複数の候補からの参照点の選び方」の表の上から6番目の段に示される方法(5)のように、重心導出対象範囲をより広範囲とし、その広範囲の重心導出対象範囲内のポイントの重心を導出し、その新たに導出した重心を用いてポイントを選択するようにしてもよい。つまり、条件を変えて重心を導出し直してもよい。
<符号化装置>
次に、本技術を適用する装置について説明する。図13は、本技術(の「方法1」)を適用した情報処理装置の一態様である符号化装置の構成の一例を示すブロック図である。図13に示される符号化装置100は、ポイントクラウド(3Dデータ)を符号化する装置である。符号化装置100は、本実施の形態において説明した本技術を適用してポイントクラウドを符号化する。
なお、図13においては、処理部やデータの流れ等の主なものを示しており、図13に示されるものが全てとは限らない。つまり、符号化装置100において、図13においてブロックとして示されていない処理部が存在したり、図13において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
図13に示されるように符号化装置100は、位置情報符号化部101、位置情報復号部102、ポイントクラウド生成部103、属性情報符号化部104、およびビットストリーム生成部105を有する。
位置情報符号化部101は、符号化装置100に入力されたポイントクラウド(3Dデータ)のジオメトリデータ(位置情報)を符号化する。この符号化方法は、スケーラブルな復号に対応した方法であれば任意である。例えば位置情報符号化部101は、ジオメトリデータを階層化してOctreeを生成し、そのOctreeを符号化する。また、例えば、ノイズ抑制(デノイズ)のためのフィルタリングや量子化等の処理が行われるようにしてもよい。位置情報符号化部101は、生成したジオメトリデータの符号化データを位置情報復号部102およびビットストリーム生成部105に供給する。
位置情報復号部102は、位置情報符号化部101から供給されるジオメトリデータの符号化データを取得し、その符号化データを復号する。この復号方法は、位置情報符号化部101による符号化に対応する方法であれば任意である。例えば、デノイズのためのフィルタリングや逆量子化等の処理が行われるようにしてもよい。位置情報復号部102は、生成したジオメトリデータ(復号結果)をポイントクラウド生成部103に供給する。
ポイントクラウド生成部103は、符号化装置100に入力されるポイントクラウドのアトリビュートデータ(属性情報)と、位置情報復号部102から供給されるジオメトリデータ(復号結果)を取得する。ポイントクラウド生成部103は、アトリビュートデータをジオメトリデータ(復号結果)に合わせる処理(リカラー処理)を行う。ポイントクラウド生成部103は、ジオメトリデータ(復号結果)に対応させたアトリビュートデータを属性情報符号化部104に供給する。
属性情報符号化部104は、ポイントクラウド生成部103から供給されるジオメトリデータ(復号結果)およびアトリビュートデータを取得する。属性情報符号化部104は、そのジオメトリデータ(復号結果)を用いて、アトリビュートデータを符号化し、アトリビュートデータの符号化データを生成する。
その際、属性情報符号化部104は、上述した本技術(方法1)を適用し、アトリビュートデータを符号化する。属性情報符号化部104は、生成したアトリビュートデータの符号化データをビットストリーム生成部105に供給する。
ビットストリーム生成部105は、位置情報符号化部101から供給されるジオメトリデータの符号化データを取得する。また、ビットストリーム生成部105は、属性情報符号化部104から供給されるアトリビュートデータの符号化データを取得する。ビットストリーム生成部105は、これらの符号化データを含むビットストリームを生成する。ビットストリーム生成部105は、生成したビットストリームを符号化装置100の外部に出力する。
このような構成とすることにより、符号化装置100は、アトリビュートデータの階層化において、ポイントの重心を求め、その重心に基づいて参照ポイントを設定することができる。このように重心に近いポイントを参照ポイントすることにより、より多くの他のポイントに対して近いポイントを参照ポイントとして設定することができる。したがって、つまりより多くの予測ポイントに対する予測精度の低減を抑制するように参照ポイントを設定することができ、符号化効率の低減を抑制することができる。
なお、符号化装置100のこれらの処理部(位置情報符号化部101乃至ビットストリーム生成部105)は、それぞれ、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
<属性情報符号化部>
図14は、属性情報符号化部104(図13)の主な構成例を示すブロック図である。なお、図14においては、処理部やデータの流れ等の主なものを示しており、図14に示されるものが全てとは限らない。つまり、属性情報符号化部104において、図14においてブロックとして示されていない処理部が存在したり、図14において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
図14に示されるよう属性情報符号化部104は、階層化処理部111、量子化部112、および符号化部113を有する。
階層化処理部111は、アトリビュートデータの階層化に関する処理を行う。例えば、階層化処理部111は、ポイントクラウド生成部103から供給されるアトリビュートデータやジオメトリデータ(復号結果)を取得する。階層化処理部111は、そのジオメトリデータを用いてアトリビュートデータを階層化する。その際、階層化処理部111は、上述した本技術(方法1)を適用して階層化を行う。つまり、階層化処理部111は、各階層において、ポイントの重心を導出し、その重心に基づいて参照ポイントを選択する。そして階層化処理部111はその階層構造の各階層において参照関係を設定し、その参照関係に基づいて、参照ポイントのアトリビュートデータを用いて、各予測ポイントのアトリビュートデータの予測値を導出し、アトリビュートデータとその予測値との差分値を導出する。階層化処理部111は、階層化したアトリビュートデータ(差分値)を量子化部112に供給する。
その際、階層化処理部111は、階層化に関する制御情報も生成し得る。階層化処理部111は、生成した制御情報も、アトリビュートデータ(差分値)とともに量子化部112に供給し得る。
量子化部112は、階層化処理部111から供給されるアトリビュートデータ(差分値)や制御情報を取得する。量子化部112は、そのアトリビュートデータ(差分値)を量子化する。この量子化の方法は任意である。量子化部112は、その量子化されたアトリビュートデータ(差分値)や制御情報を、符号化部113に供給する。
符号化部113は、量子化部112から供給される、量子化されたアトリビュートデータ(差分値)や制御情報を取得する。符号化部113は、その量子化されたアトリビュートデータ(差分値)を符号化し、アトリビュートデータの符号化データを生成する。この符号化方法は任意である。また、符号化部113は、生成した符号化データに、制御情報を含める。換言するに、制御情報を含むアトリビュートデータの符号化データを生成する。符号化部113は、生成した符号化データをビットストリーム生成部105に供給する。
以上のように階層化を行うことにより、属性情報符号化部104は、重心に近いポイントを参照ポイントとして設定することができるので、より多くの他のポイントに対して近いポイントを参照ポイントとして設定することができる。したがって、つまりより多くの予測ポイントに対する予測精度の低減を抑制するように参照ポイントを設定することができ、符号化効率の低減を抑制することができる。
なお、これらの処理部(階層化処理部111乃至符号化部113)は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
<階層化処理部>
図15は、階層化処理部111(図14)の主な構成例を示すブロック図である。なお、図15においては、処理部やデータの流れ等の主なものを示しており、図15に示されるものが全てとは限らない。つまり、階層化処理部111において、図15においてブロックとして示されていない処理部が存在したり、図15において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
図15に示されるように階層化処理部111は、参照ポイント設定部121、参照関係設定部122、反転部123、および重み値導出部124を有する。
参照ポイント設定部121は、参照ポイントの設定に関する処理を行う。例えば、参照ポイント設定部121は、各ポイントのジオメトリデータに基づいて、処理対象のポイント群を、アトリビュートデータを参照される参照ポイントと、アトリビュートデータの予測値を導出する予測ポイントとに分類する。つまり、参照ポイント設定部121は、参照ポイントと予測ポイントとを設定する。参照ポイント設定部121は、この処理を参照ポイントに対して再帰的に繰り返す。つまり、参照ポイント設定部121は、1つ前の階層において設定された参照ポイントを処理対象として、処理対象の階層の参照ポイントと予測ポイントとを設定する。このようにして階層構造が構築される。つまり、アトリビュートデータが階層化される。参照ポイント設定部121は、設定した各階層の参照ポイントおよび予測ポイントを示す情報を参照関係設定部122に供給する。
参照関係設定部122は、その参照ポイント設定部121から供給される情報に基づいて、各階層の参照関係の設定に関する処理を行う。つまり、参照関係設定部122は、各階層の各予測ポイントについて、その予測値を導出するのに参照される参照ポイント(すなわち参照先)を設定する。そして、参照関係設定部122は、その参照関係に基づいて各予測ポイントのアトリビュートデータの予測値を導出する。つまり、参照関係設定部122は、参照先に設定された参照ポイントのアトリビュートデータを用いて予測ポイントのアトリビュートデータの予測値を導出する。さらに、参照関係設定部122は、その導出した予測値とその予測ポイントのアトリビュートデータとの差分値を導出する。参照関係設定部122は、導出した差分値(階層化されたアトリビュートデータ)を階層毎に反転部123に供給する。
なお、参照ポイント設定部121は、以上のようなアトリビュートデータの階層化に関する制御情報等を生成し、それを量子化部112に供給し、復号側に伝送させることができる。
反転部123は、階層の反転に関する処理を行う。例えば、反転部123は、参照関係設定部122から供給される階層化されたアトリビュートデータを取得する。このアトリビュートデータは、各階層の情報が、その生成順に階層化されている。反転部123は、そのアトリビュートデータの階層を反転させる。例えば、反転部123は、アトリビュートデータの各階層に対して、その生成順と逆順に階層番号(最上位層が0、1階層下がる毎に値が1ずつインクリメントされ、最下位層が最大値となる階層を識別するための番号)を付し、生成順が最下位層から最上位層に向かう順となるようにする。反転部123は、階層を反転させたアトリビュートデータを重み値導出部124に供給する。
重み値導出部124は、重み付けに関する処理を行う。例えば、重み値導出部124は、反転部123から供給されるアトリビュートデータを取得する。重み値導出部124は、取得したアトリビュートデータの重み値を導出する。この重み値の導出方法は任意である。重み値導出部124は、アトリビュートデータ(差分値)と導出した重み値とを量子化部112(図14)に供給する。また、重み値導出部124は、導出した重み値を制御情報として量子化部112に供給し、復号側に伝送させるようにしてもよい。
以上のような階層化処理部111において、参照ポイント設定部121は、上述した本技術を適用することができる。つまり、参照関係設定部122は、上述の「方法1」を適用し、ポイントの重心を導出し、その重心に基づいて参照ポイントの設定を行うことができる。このようにすることにより、予測精度の低減を抑制し、符号化効率の低減を抑制することができる。
なお、この階層化の手順は任意である。例えば、参照ポイント設定部121の処理と参照関係設定部122の処理を並行して実行してもよい。例えば、1階層毎に、参照ポイント設定部121が参照ポイントおよび予測ポイントを設定し、参照関係設定部122が参照関係を設定するようにしてもよい。
なお、これらの処理部(参照ポイント設定部121乃至重み値導出部124)は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
<符号化処理の流れ>
次に、この符号化装置100により実行される処理について説明する。符号化装置100は、符号化処理を実行することによりポイントクラウドのデータを符号化する。この符号化処理の流れの例を、図16のフローチャートを参照して説明する。
符号化処理が開始されると、符号化装置100の位置情報符号化部101は、ステップS101において、入力されたポイントクラウドのジオメトリデータ(位置情報)を符号化し、ジオメトリデータの符号化データを生成する。
ステップS102において、位置情報復号部102は、ステップS101において生成されたジオメトリデータの符号化データを復号し、位置情報を生成する。
ステップS103において、ポイントクラウド生成部103は、入力されたポイントクラウドのアトリビュートデータ(属性情報)と、ステップS102において生成されたジオメトリデータ(復号結果)とを用いて、リカラー処理を行い、アトリビュートデータをジオメトリデータに対応させる。
ステップS104において、属性情報符号化部104は、属性情報符号化処理を実行することにより、ステップS103においてリカラー処理されたアトリビュートデータを符号化し、アトリビュートデータの符号化データを生成する。その際、属性情報符号化部104は、上述した本技術(方法1)を適用して処理を行う。例えば、属性情報符号化部104は、アトリビュートデータの階層化において、ポイントの重心を導出し、その重心に基づいて参照ポイントを設定する。属性情報符号化処理の詳細については後述する。
ステップS105において、ビットストリーム生成部105は、ステップS101において生成されたジオメトリデータの符号化データと、ステップS104において生成されたアトリビュートデータの符号化データとを含むビットストリームを生成し、出力する。
ステップS105の処理が終了すると符号化処理が終了する。
このように各ステップの処理を行うことにより、符号化装置100は、予測精度の低減を抑制することができ、符号化効率の低減を抑制することができる。
<属性情報符号化処理の流れ>
次に、図16のステップS104において実行される属性情報符号化処理の流れの例を、図17のフローチャートを参照して説明する。
属性情報符号化処理が開始されると、属性情報符号化部104の階層化処理部111は、ステップS111において、階層化処理を実行することによりアトリビュートデータを階層化する。つまり、各階層の参照ポイントと予測ポイントが設定され、さらに、その参照関係が設定される。その際、階層化処理部111は、上述した本技術(方法1)を適用して階層化を行う。例えば、属性情報符号化部104は、アトリビュートデータの階層化において、ポイントの重心を導出し、その重心に基づいて参照ポイントを設定する。階層化処理の詳細については後述する。
ステップS112において、階層化処理部111は、ステップS111において階層化されたアトリビュートデータの各階層において、各予測ポイントについてアトリビュートデータの予測値を導出し、その予測ポイントのアトリビュートデータとその予測値との差分値を導出する。
ステップS113において、量子化部112は、ステップS112において導出された各差分値を量子化する。
ステップS114において、符号化部113は、ステップS112において量子化された差分値を符号化し、アトリビュートデータの符号化データを生成する。
ステップS114の処理が終了すると属性情報符号化処理が終了し、処理は図16に戻る。
このように各ステップの処理を行うことにより、階層化処理部111は、上述した「方法1」を適用し、アトリビュートデータの階層化において、ポイントの重心を導出し、その重心に基づいて参照ポイントを設定することができる。したがって、階層化処理部111は、予測精度の低減を抑制するようにアトリビュートデータの階層化を行うことができ、これにより符号化効率の低減を抑制することができる。
<階層化処理の流れ>
次に、図18のフローチャートを参照して、図17のステップS111において実行される階層化処理の流れの例を説明する。
階層化処理が開始されると、階層化処理部111の参照ポイント設定部121は、ステップS121において、処理対象の階層を示す変数LoD Indexの値を初期値(例えば「0」)に設定する。
ステップS122において、参照ポイント設定部121は、参照ポイント設定処理を実行し、処理対象の階層において参照ポイントを設定する(つまり、予測ポイントも設定する)。参照ポイント設定処理の詳細については後述する。
ステップS123において、参照関係設定部122は、処理対象の階層の参照関係(各予測ポイントの予測値の導出にどの参照ポイントが参照されるか)を設定する。
ステップS124において、参照ポイント設定部121は、LoD Indexをインクリメントし、処理対象を次の階層に設定する。
ステップS125において、参照ポイント設定部121は、全ポイントを処理したか否かを判定する。未処理のポイントが存在すると判定された場合、すなわち、階層化が終了していないと判定された場合、処理はステップS122に戻り、それ以降の処理を繰り返す。このようにステップS122乃至ステップS125の各処理が各階層について実行され、ステップS125において、全てのポイントが処理されたと判定された場合、処理はステップS126に進む。
ステップS126において、反転部123は、以上のように生成されたアトリビュートデータの階層を反転し、各階層に、生成順と逆向きに階層番号を付す。
ステップS127において、重み値導出部124は、各階層のアトリビュートデータについて重み値を導出する。
ステップS127の処理が終了すると処理は図14に戻る。
このように各ステップの処理を行うことにより、階層化処理部111は、上述した「方法1」を適用し、アトリビュートデータの階層化において、ポイントの重心を導出し、その重心に基づいて参照ポイントを設定することができる。したがって、階層化処理部111は、予測精度の低減を抑制するようにアトリビュートデータの階層化を行うことができ、これにより符号化効率の低減を抑制することができる。
<参照関係設定処理の流れ>
次に、図18のステップS122において実行される参照ポイント設定処理の流れの例を、図19のフローチャートを参照して説明する。
参照ポイント設定処理が開始されると、参照ポイント設定部121は、ステップS141において、重心の導出に用いるポイント群を特定し、その処理対象のポイント群の重心を導出する。この重心の導出方法は上述したように任意である。例えば図8の表に示されるいずれかの方法を用いて重心を導出するようにしてもよい。
ステップS142において、参照ポイント設定部121は、ステップS141において導出された重心に近いポイントを参照ポイントとして選択する。この参照ポイントの選択方法は任意である。例えば図11の表に示されるいずれかの方法を用いて重心を導出するようにしてもよい。
ステップS142の処理が終了すると参照ポイント設定処理が終了し、処理は図18に戻る。
このように各ステップの処理を行うことにより、参照ポイント設定部121は、上述した「方法1」を適用し、アトリビュートデータの階層化において、ポイントの重心を導出し、その重心に基づいて参照ポイントを設定することができる。したがって、階層化処理部111は、予測精度の低減を抑制するようにアトリビュートデータの階層化を行うことができ、これにより符号化効率の低減を抑制することができる。
<復号装置>
次に、本技術を適用する装置の他の例について説明する。図20は、本技術を適用した情報処理装置の一態様である復号装置の構成の一例を示すブロック図である。図20に示される復号装置200は、ポイントクラウド(3Dデータ)の符号化データを復号する装置である。復号装置200は、本実施の形態において説明した本技術(方法1)を適用してポイントクラウドの符号化データを復号する。
なお、図20においては、処理部やデータの流れ等の主なものを示しており、図20に示されるものが全てとは限らない。つまり、復号装置200において、図20においてブロックとして示されていない処理部が存在したり、図20において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
図20に示されるように復号装置200は、符号化データ抽出部201、位置情報復号部202、属性情報復号部203、およびポイントクラウド生成部204を有する。
符号化データ抽出部201は、復号装置200に入力されるビットストリームを取得し、保持する。符号化データ抽出部201は、ジオメトリデータ(位置情報)およびアトリビュートデータ(属性情報)の符号化データを、その保持しているビットストリームから抽出する。符号化データ抽出部201は、抽出したジオメトリデータの符号化データを位置情報復号部202に供給する。符号化データ抽出部201は、抽出したアトリビュートデータの符号化データを属性情報復号部203に供給する。
位置情報復号部202は、符号化データ抽出部201から供給されるジオメトリデータの符号化データを取得する。位置情報復号部202は、そのジオメトリデータの符号化データを復号し、ジオメトリデータ(復号結果)を生成する。この復号方法は、符号化装置100の位置情報復号部102の場合と同様の方法であれば任意である。位置情報復号部202は、生成したジオメトリデータ(復号結果)を、属性情報復号部203およびポイントクラウド生成部204に供給する。
属性情報復号部203は、符号化データ抽出部201から供給されるアトリビュートデータの符号化データを取得する。属性情報復号部203は、位置情報復号部202から供給されるジオメトリデータ(復号結果)を取得する。属性情報復号部203は、その位置情報(復号結果)を用いて、上述した本技術(方法1)を適用した方法によりアトリビュートデータの符号化データを復号し、アトリビュートデータ(復号結果)を生成する。属性情報復号部203は、生成したアトリビュートデータ(復号結果)をポイントクラウド生成部204に供給する。
ポイントクラウド生成部204は、位置情報復号部202から供給されるジオメトリデータ(復号結果)を取得する。ポイントクラウド生成部204は、属性情報復号部203から供給されるアトリビュートデータ(復号結果)を取得する。ポイントクラウド生成部204は、そのジオメトリデータ(復号結果)およびアトリビュートデータ(復号結果)を用いて、ポイントクラウド(復号結果)を生成する。ポイントクラウド生成部204は、生成したポイントクラウド(復号結果)のデータを復号装置200の外部に出力する。
このような構成とすることにより、復号装置200は、逆階層化において、ポイントの重心に近いポイントを参照ポイントとして選択することができる。したがって、復号装置200は、例えば上述した符号化装置100により符号化されたアトリビュートデータの符号化データを正しく復号することができる。したがって、予測精度の低減を抑制することができ、符号化効率の低減を抑制することができる。
なお、これらの処理部(符号化データ抽出部201乃至ポイントクラウド生成部204)は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
<属性情報復号部>
図21は、属性情報復号部203(図20)の主な構成例を示すブロック図である。なお、図21においては、処理部やデータの流れ等の主なものを示しており、図21に示されるものが全てとは限らない。つまり、属性情報復号部203において、図21においてブロックとして示されていない処理部が存在したり、図21において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
図21に示されるよう属性情報復号部203は、復号部211、逆量子化部212、および逆階層化処理部213を有する。
復号部211は、アトリビュートデータの符号化データの復号に関する処理を行う。例えば、復号部211は、属性情報復号部203に供給されるアトリビュートデータの符号化データを取得する。
復号部211は、そのアトリビュートデータの符号化データを復号し、アトリビュートデータ(復号結果)を生成する。この復号方法は、符号化装置100の符号化部113(図14)による符号化方法に対応する方法であれば任意である。また、生成したアトリビュートデータ(復号結果)は、符号化前のアトリビュートデータに対応し、アトリビュートデータとその予測値との差分値であり、量子化されている。復号部211は、生成したアトリビュートデータ(復号結果)を逆量子化部212に供給する。
なお、アトリビュートデータの符号化データに重み値に関する制御情報やアトリビュートデータの階層化に関する制御情報が含まれている場合、復号部211は、その制御情報も逆量子化部212に供給する。
逆量子化部212は、アトリビュートデータの逆量子化に関する処理を行う。例えば、逆量子化部212は、復号部211から供給されるアトリビュートデータ(復号結果)や制御情報を取得する。
逆量子化部212は、そのアトリビュートデータ(復号結果)を逆量子化する。その際、復号部211から重み値に関する制御情報が供給される場合、逆量子化部212は、その制御情報も取得し、その制御情報に基づいて(その制御情報に基づいて導出される重み値を用いて)アトリビュートデータ(復号結果)の逆量子化を行う。
また、逆量子化部212は、復号部211からアトリビュートデータの階層化に関する制御情報が供給される場合、その制御情報も取得する。
逆量子化部212は、逆量子化したアトリビュートデータ(復号結果)を逆階層化処理部213に供給する。また、復号部211からアトリビュートデータの階層化に関する制御情報を取得した場合、逆量子化部212は、その制御情報も逆階層化処理部213に供給する。
逆階層化処理部213は、逆量子化部212から供給される、逆量子化されたアトリビュートデータ(復号結果)を取得する。上述したようにこのアトリビュートデータは差分値である。また、逆階層化処理部213は、位置情報復号部202から供給されるジオメトリデータ(復号結果)を取得する。逆階層化処理部213は、そのジオメトリデータを用いて、取得したアトリビュートデータ(差分値)に対して、符号化装置100の階層化処理部111(図14)による階層化の逆処理である逆階層化を行う。
ここで逆階層化について説明する。例えば、逆階層化処理部213は、位置情報復号部202から供給されるジオメトリデータに基づいて、符号化装置100(階層化処理部111)と同様の手法によりアトリビュートデータの階層化を行う。つまり、逆階層化処理部213は、復号されたジオメトリデータに基づいて、各階層の参照ポイントおよび予測ポイントを設定し、アトリビュートデータの階層構造を設定する。逆階層化処理部213は、さらにその参照ポイントおよび予測ポイントを用いて、その階層構造の各階層の参照関係(各予測ポイントに対する参照先)を設定する。
そして、逆階層化処理部213は、その階層構造と各階層の参照関係を用いて、取得したアトリビュートデータ(差分値)の逆階層化を行う。つまり、逆階層化処理部213は、参照関係に従って参照ポイントから予測ポイントの予測値を導出し、その予測値を差分値に加算することにより各予測ポイントのアトリビュートデータを復元する。逆階層化処理部213は、この処理を上位層から下位層に向かって階層毎に行う。つまり、逆階層化処理部213は、処理対象の階層よりも上位の階層においてアトリビュートデータを復元した予測ポイントを参照ポイントとして用い、処理対象の階層の予測ポイントのアトリビュートデータを上述のように復元する。
このような手順で行われる逆階層化において、逆階層化処理部213は、復号されたジオメトリデータに基づいてアトリビュートデータを階層化する際に、上述した本技術(方法1)を適用して参照ポイントを設定する。つまり、逆階層化処理部213は、ポイントの重心を導出し、その重心に近いポイントを参照ポイントとして選択する。逆階層化処理部213は、逆階層化したアトリビュートデータを復号結果としてポイントクラウド生成部204(図20)に供給する。
以上のように逆階層化を行うことにより、逆階層化処理部213は、重心に近いポイントを参照ポイントに設定することができるので、予測精度の低減を抑制するようにアトリビュートデータの階層化を行うことができる。つまり、属性情報復号部203は、同様の方法で符号化された符号化データを正しく復号することができる。例えば、属性情報復号部203は、上述した属性情報符号化部104により符号化されたアトリビュートデータの符号化データを正しく復号することができる。したがって、符号化効率の低減を抑制することができる。
なお、これらの処理部(復号部211乃至逆階層化処理部213)は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
<復号処理の流れ>
次に、この復号装置200により実行される処理について説明する。復号装置200は、復号処理を実行することによりポイントクラウドの符号化データを復号する。この復号処理の流れの例を、図22のフローチャートを参照して説明する。
復号処理が開始されると、復号装置200の符号化データ抽出部201は、ステップS201において、ビットストリームを取得して保持し、そのビットストリームからジオメトリデータの符号化データとアトリビュートデータの符号化データを抽出する。
ステップS202において、位置情報復号部202は、抽出されたジオメトリデータの符号化データを復号し、ジオメトリデータ(復号結果)を生成する。
ステップS203において、属性情報復号部203は、属性情報復号処理を実行し、ステップS201において抽出されたアトリビュートデータの符号化データを復号し、アトリビュートデータ(復号結果)を生成する。その際、属性情報復号部203は、上述した本技術(方法1)を適用して処理を行う。例えば、属性情報復号部203は、アトリビュートデータの階層化において、ポイントの重心を導出し、その重心に近いポイントを参照ポイントとして設定する。属性情報復号処理の詳細については後述する。
ステップS204において、ポイントクラウド生成部204は、ステップS202において生成されたジオメトリデータ(復号結果)と、ステップS203において生成されたアトリビュートデータ(復号結果)とを用いてポイントクラウド(復号結果)を生成し、出力する。
ステップS204の処理が終了すると、復号処理が終了する。
このように各ステップの処理を行うことにより、復号装置200は、同様の手法により符号化されたアトリビュートデータの符号化データを正しく復号することができる。例えば、復号装置200は、上述した符号化装置100により符号化されたアトリビュートデータの符号化データを正しく復号することができる。したがって、予測精度の低減を抑制することができ、符号化効率の低減を抑制することができる。
<属性情報復号処理の流れ>
次に、図22のステップS203において実行される属性情報復号処理の流れの例を、図23のフローチャートを参照して説明する。
属性情報復号処理が開始されると、属性情報復号部203の復号部211は、ステップS211において、アトリビュートデータの符号化データを復号し、アトリビュートデータ(復号結果)を生成する。このアトリビュートデータ(復号結果)は上述のように量子化されている。
ステップS212において、逆量子化部212は、逆量子化処理を実行することにより、ステップS211において生成されたアトリビュートデータ(復号結果)を逆量子化する。
ステップS213において、逆階層化処理部213は、逆階層化処理を実行することにより、ステップS212において逆量子化されたアトリビュートデータ(差分値)を逆階層化し、各ポイントのアトリビュートデータを導出する。その際、逆階層化処理部213は、上述した本技術(方法1)を適用して逆階層化を行う。例えば、逆階層化処理部213は、アトリビュートデータの階層化において、ポイントの重心を導出し、その重心に近いポイントを参照ポイントとして設定する。逆階層化処理の詳細については後述する。
ステップS213の処理が終了すると属性情報復号処理が終了し、処理は図22に戻る。
このように各ステップの処理を行うことにより、属性情報復号部203は、上述した「方法1」を適用し、アトリビュートデータの階層化において、ポイントの重心に近いポイントを参照ポイントとして設定することができる。したがって、逆階層化処理部213は、予測精度の低減を抑制するようにアトリビュートデータの階層化を行うことができる。つまり、属性情報復号部203は、同様の方法で符号化された符号化データを正しく復号することができる。例えば、属性情報復号部203は、上述した属性情報符号化部104により符号化されたアトリビュートデータの符号化データを正しく復号することができる。したがって、符号化効率の低減を抑制することができる。
<逆階層化処理の流れ>
次に、図23のステップS213において実行される逆階層化処理の流れの例を、図24のフローチャートを参照して説明する。
逆階層化処理が開始されると、逆階層化処理部213は、ステップS221において、ジオメトリデータ(復号結果)を用いてアトリビュートデータ(復号結果)の階層化処理を行い、符号化側において設定された、各階層の参照ポイントおよび予測ポイントを復元し、さらに、各階層の参照関係を復元する。つまり、逆階層化処理部213は、階層化処理部111が行う階層化処理と同様の処理を行い、各階層の参照ポイントおよび予測ポイントを設定し、さらに、各階層の参照関係を設定する。
例えば、逆階層化処理部213は、階層化処理部111と同様に、上述した「方法1」を適用し、ポイントの重心を導出し、その重心に近いポイントを参照ポイントとして設定する。
ステップS222において、逆階層化処理部213は、この階層構造および参照関係を用いてアトリビュートデータ(復号結果)の逆階層化を行い、各ポイントのアトリビュートデータを復元する。つまり、逆階層化処理部213は、参照関係に基づいて参照ポイントのアトリビュートデータから予測ポイントのアトリビュートデータの予測値を導出し、その予測値をアトリビュートデータ(復号結果)の差分値に加算してアトリビュートデータを復元する。
ステップS222の処理が終了すると逆階層化処理が終了し、処理は図23に戻る。
このように各ステップの処理を行うことにより、逆階層化処理部213は、符号化の際と同様の階層化を実現することができる。つまり、属性情報復号部203は、同様の方法で符号化された符号化データを正しく復号することができる。例えば、属性情報復号部203は、上述した属性情報符号化部104により符号化されたアトリビュートデータの符号化データを正しく復号することができる。したがって、符号化効率の低減を抑制することができる。
<3.第2の実施の形態>
<方法2>
次に、図6を参照して上述した「方法2」を適用する場合について説明する。この「方法2」の場合、アトリビュートデータの階層化において、ポイントの分布パタン(分布態様)に応じて参照ポイントが選択される。
例えば、図25に示される表(テーブル情報)においては、参照ポイントを設定する処理対象の領域におけるポイントの分布パタン(分布態様)と、その場合に選択されるポイントとを示す情報(インデックス)とが互いに関連付けられている。例えば、この表の上から2番目の段においては、参照ポイントを設定する2x2x2のボクセル領域におけるポイントの分布パタンが「10100001」である場合、インデックスが「2」のポイント、つまり2番目に出現するポイントが選択されることが示されている。分布パタン「10100001」の各ビット値は、2x2x2の各ボクセルのポイントの有無を示しており、値「1」がそのビットが割り当てられたボクセルにポイントが存在することを示し、値「0」がそのビットが割り当てられたボクセルにポイントが存在しないことを示す。
この表においては、同様に、分布パタン毎に、選択されるポイントのインデックスが示されている。つまり、アトリビュートデータの階層化において、この表を参照し、参照ポイントを設定する処理対象の領域におけるポイントの分布パタンに対応するインデックスのポイントを参照ポイントに選択する。
このようにすることにより、より容易に参照ポイントを選択することができる。
<テーブル情報>
このテーブル情報は、ポイントの分布パタンと選択するポイントを示す情報とを紐づけるものであればどのような情報であってもよい。例えば、図26のAに示される「テーブル」の表の上から2番目の段に示される方法(1)のように、ポイントの分布態様毎に、重心に近いポイントを選択するテーブル情報であってもよい。つまり、各分布パタンに対して、その分布パタンの場合の重心位置に近いポイントのインデックスが紐づけられるようにしてもよい。
また、例えば、図26のAに示される「テーブル」の表の上から3番目の段に示される方法(2)のように、ポイントの分布態様毎に、任意のポイントを選択するテーブル情報であってもよい。さらに、例えば、この「テーブル」の表の上から4番目の段に示される方法(3)のように、複数のテーブルの中から、使用するテーブルを選択するようにしてもよい。例えば、階層(LoDの深さ)によって使用するテーブルを切り替えるようにしてもよい。
<テーブル情報のシグナリング>
なお、このテーブル情報は、予め用意されていてもよい。例えば、規格により所定のテーブル情報が規定されていてもよい。その場合、テーブル情報のシグナリング(符号化側から復号側への伝送)は不要である。
また、このテーブル情報は、位置情報復号部102がジオメトリデータから導出してもよい。また、位置情報復号部202もジオメトリデータ(復号結果)からこのテーブル情報を導出してもよい。その場合、テーブル情報のシグナリング(符号化側から復号側への伝送)は不要である。
もちろん、このテーブル情報がユーザやアプリケーション等によって生成可能(または更新可能)としてもよい。その場合、その生成された(または更新された)テーブル情報をシグナリングしてもよい。つまり、例えば符号化部113がこのテーブル情報に関する情報を符号化し、その符号化データをビットストリームに含める等して、シグナリングするようにしてもよい。
また、上述したようにこのテーブル情報を階層(LoDの深さ)によって切り替えてもよい。その場合、図26のBに示される「テーブル」の表の上から2番目の段に示される方法(1)のように、その切り替え方を規格等において予め規定し、その切り替え方を示す情報をシグナリングしないようにしてもよい。
また、図26のBに示される「テーブル」の表の上から3番目の段に示される方法(2)のように、選択されたテーブルを示すインデックス(識別情報)をシグナリングしてもよい。例えば、アトリビュートパラメータセット(AttributeParameterSet)において、このインデックスをシグナリングしてもよい。
さらに、例えば、図26のBに示される「テーブル」の表の上から4番目の段に示される方法(3)のように、選択されたテーブル情報そのものをシグナリングしてもよい。例えば、アトリビュートブリックヘッダ(AttributeBrickHeader)において、このテーブル情報をシグナリングしてもよい。
また、図26のBに示される「テーブル」の表の上から5番目の段に示される方法(4)のように、選択されたテーブル情報の一部をシグナリングしてもよい。つまり、テーブル情報を部分更新することができるようにしてもよい。例えば、アトリビュートブリックヘッダ(AttributeBrickHeader)において、このテーブル情報をシグナリングしてもよい。
この方法2を適用する場合も、符号化装置100および復号装置200の構成は、上述した方法1を適用する場合と基本的に同様である。したがって、符号化装置100は、符号化処理、属性情報符号化処理、および階層化処理等の各処理を、第1の実施の形態の場合と同様の流れで実行することができる。
<参照ポイント設定処理の流れ>
この場合の参照ポイント設定処理の流れの例を図27のフローチャートを参照して説明する。参照ポイント設定処理が開始されると、参照ポイント設定部121は、ステップS301において、テーブル情報を参照し、ポイント分布パタンに応じて参照ポイントを選択する。
ステップS302において、参照ポイント設定部121は、使用したテーブルに関する情報をシグナリングするか否かを判定する。シグナリングすると判定された場合、処理はステップS303に進む。
ステップS303において、参照ポイント設定部121は、使用したテーブルに関する情報をシグナリングする。ステップS303の処理が終了すると参照ポイント設定処理が終了し、処理は図18に戻る。
このように符号化装置100がテーブル情報を伝送することにより、復号装置200は、そのテーブル情報を用いて、復号を行うことができる。
なお、復号装置200は、復号処理、属性情報復号処理、および逆階層化処理等の各処理を、第1の実施の形態の場合と同様の流れで実行することができる。
<4.第3の実施の形態>
<方法3>
次に、図6を参照して上述した「方法3」を適用する場合について説明する。この「方法3」の場合、アトリビュートデータの階層化において設定される参照ポイントについてシグナリングしてもよい。
例えば、図28に示される「シグナリングの対象」の表の上から2番目の段に示される方法(1)のように、全ノード(全ポイント)について、参照するか否か、すなわち、参照ポイントとするか予測ポイントとするかを示す情報をシグナリングしてもよい。例えば、図29のAに示されるように、全階層の全ノードをモートン順にソートし、各ノードに対してインデックス(インデックス0乃至インデックスK)を付与してもよい。換言するに、このインデックス0乃至インデックスKにより各ノード(および各ノードに対して付与される情報)を識別することができる。
また、例えば、図28に示される「シグナリングの対象」の表の上から3番目の段に示される方法(2)のように、一部の階層について、いずれのノード(ポイント)を参照ポイントして選択するかを示す情報をシグナリングしてもよい。例えば、図29のBに示されるように、シグナリングの対象とする階層(LoD)を指定し、その階層の全ノードをモートン順にソートし、各ノードに対してインデックスを付与してもよい。
例えば、アトリビュートデータが図30のAに示されるような階層構造を有するとする。つまり、LoD2の#0のポイント、LoD2の#1のポイント、および、LoD2の#2のポイントから1つずつポイントが参照ポイントとして選択され、LoD1の#0の各ポイントを形成している。この場合において、LoD2のポイントに対して、図30のBに示されるような探索順でインデックスを割り当てるとすると、LoD1#0の各ポイントは、図30のCに示されるようなLoD2のインデックスにより示される。換言するに、「LoD2 0,1,0」と指定することにより、LoD1#0のポイントの分布態様を表すことができる。
このように、LoD N-1のインデックスでLoD Nの2x2x2のボクセル領域を指定することができる。つまり、LoD(階層指定)と順番(m番目)により1つの2x2x2のボクセルを指定することができる。このように、階層およびインデックスにより指定を行うことにより、必要に応じて一部の階層についてのみシグナリングを行うことができるので、方法(1)の場合に比べて符号量の増大を抑制し、符号化効率の低減を抑制することができる。
さらに、例えば、図28に示される「シグナリングの対象」の表の上から4番目の段に示される方法(3)のように、シグナリングの対象とするポイントを、下位のNxNxNのボクセル領域内のポイントの数により制限するようにしてもよい。つまり、所定の条件を満たすポイントについての参照ポイントの設定に関する情報をシグナリングしてもよい。このようにすることにより、図29のCに示されるように、さらにシグナリングの対象となるノードを低減させることができる。これにより、符号化効率の低減を抑制することができる。
例えば、アトリビュートデータが図31のAに示されるような階層構造を有するとする。この場合において、シグナリングの対象を3つ以上のポイントを含む2x2x2ボクセル領域に制限するとする。LoD2のポイントに対して、図31のBに示されるような探索順でインデックスを割り当てるとすると、LoD2の右側に示されるボクセル領域は、シグナリングの対象から除外される。したがって、このボクセル領域にはインデックスが割り当てられない。したがって、図31のCに示されるように、図30のCの場合よりもシグナリングのデータ量を低減させることができ、符号量の増大を抑制することができる。
なお、例えば、図28に示される「シグナリングの対象」の表の上から5番目の段に示される方法(4)のように、方法(2)と方法(3)とを組み合わせて適用してもよい。
<固定長シグナリング>
以上のようなシグナリングを固定長のデータで行うようにしてもよい。例えば、図32のAに示されるようなシンタックスでシグナリングを行うようにしてもよい。図32のAのシンタックスにおいて、num_Lodは、シグナリングするLoDの数を示すパラメータである。lodNo[ i ]は、Lod番号を示すパラメータである。voxelType[i]は、signallingするvoxelのタイプを示すパラメータである。このパラメータを指定することによりLod内での伝送対象を限定することができる。num_nodeは、実際にシグナルする数を示すパラメータである。このnum_nodeは、ジオメトリデータから導出することができる。node[k]は、2x2x2のボクセル領域毎にシグナルされる情報を示す。kは、ノードのモートン順での番号を示す。
なお、並列処理等のためにジオメトリデータが得られる前にパースを行う必要がある場合、図32のBに示されるシンタックスでシグナリングを行うようにしてもよい。このようにパースが必要な場合、num_nodeをシグナリングすればよい。
また、シグナリングを固定長のデータで行う場合、図33のAに示されるシンタックスを適用してもよい。この場合、シグナルを制御するフラグFlag[k]がシグナリングされる。この場合も、並列処理等のためにジオメトリデータが得られる前にパースを行う必要があるときは、図33のBに示されるシンタックスでシグナリングを行うようにしてもよい。このようにパースが必要な場合、num_nodeをシグナリングすればよい。
<可変長シグナリング>
また、以上のようなシグナリングを可変長のデータで行うようにしてもよい。例えば、図34の例のように、2x2x2ボクセル領域内のノードの位置をシグナリングするようにしてもよい。その場合、そのシグナリングのビット長が、例えば図34のAに示されるテーブル情報に基づいて、2x2x2ボクセル領域内のノードの数に応じて設定されるようにしてもよい。
復号側においては、2x2x2ボクセル領域に含まれるノード数は、ジオメトリデータから求めることができる。したがって、図34のBに示される例のように、「10111010・・・」のようなビット列が入力されても、ジオメトリデータから2x2x2ボクセル領域に含まれるノード数を把握することができるので、適切なビット長で分割し、各ボクセル領域に対する情報を正しく得ることができる。
また、図35の例のように、使用するテーブル情報のインデックスをシグナリングするようにしてもよい。その場合、そのシグナリングのビット長を、例えば図35のAに示されるように、2x2x2ボクセル領域内のノードの数に応じて可変とするようにしてもよい。
例えば、図35のAに示されるテーブル情報に基づいて、ノード数が5乃至8の場合、2ビットが割り当てられ、図35のBのテーブル情報が選択される。この場合、ビット列「00」は、所定の探索順(例えばモートン順)における1番目のノードを選択することを示す。また、ビット列「01」は、所定の探索順(例えばモートン順)の逆順(reverce)における1番目のノードを選択することを示す。さらに、ビット列「10」は、所定の探索順(No reverce)における2番目のノードを選択することを示す。また、ビット列「11」は、所定の探索順の逆順(reverce)の2番目のノードを選択することを示す。
また、例えば、図35のAに示されるテーブル情報に基づいて、ノード数が3または4の場合、1ビットが割り当てられ、図35のCのテーブル情報が選択される。この場合、ビット列「0」は、所定の探索順(例えばモートン順)における1番目のノードを選択することを示す。また、ビット列「1」は、所定の探索順(例えばモートン順)の逆順(reverce)における1番目のノードを選択することを示す。
復号側においては、2x2x2ボクセル領域に含まれるノード数は、ジオメトリデータから求めることができる。したがって、図35のDに示される例のように、「10111010・・・」のようなビット列が入力されても、ジオメトリデータから2x2x2ボクセル領域に含まれるノード数を把握することができるので、適切なビット長で分割し、各ボクセル領域に対する情報を正しく得ることができる。
可変長の場合のシンタックスの例を図36に示す。図36のシンタックスにおいて、bitLengthは、ビット長を示すパラメータである。また、signalType[i]は、LoD毎の可変長符号化の方法を示すパラメータである。
なお、この可変長の場合も、並列処理等のためにジオメトリデータが得られる前にパースを行う必要があるときは、図37に示されるシンタックスのように、num_nodeをシグナリングしたり、flag[j]をシグナリングしたりしてもよい。
<参照ポイント設定処理の流れ>
この場合の参照ポイント設定処理の流れの例を図38のフローチャートを参照して説明する。参照ポイント設定処理が開始されると、参照ポイント設定部121は、ステップS321において、参照ポイントを選択する。
ステップS322において、参照ポイント設定部121は、ステップS321において設定された参照ポイントに関する情報をシグナリングする。ステップS322の処理が終了すると参照ポイント設定処理が終了し、処理は図18に戻る。このように符号化装置100がテーブル情報を伝送することにより、復号装置200は、そのテーブル情報を用いて、復号を行うことができる。
<5.第4の実施の形態>
<方法4>
次に、図6を参照して上述した「方法4」を適用する場合について説明する。この「方法4」の場合、参照ポイントとして、参照ポイントの候補の内の、バウンディングボックスの中心に近い方のポイントと、バウンディングボックスの中心から遠い方のポイントとを、階層毎に交互に選択するようにしてもよい。
例えば、図39に示される位置において参照ポイントを選択する場合、図39のA乃至図39のCのように、バウンディングボックスの中心に近い方のポイントと、バウンディングボックスの中心から遠い方のポイントとが、階層毎に交互に選択される。このようにすることにより、図39のCに示されるように、参照ポイントの移動範囲が点線枠のように狭い範囲に限定されるので、予測精度の低減が抑制される。
このようにポイントの選択方向をバウンディングボックスの中心を基準とすることにより、バウンディングボックス内の位置に依らず、予測精度の低減を抑制させることができる。
なお、ポイントの探索順をバウンディングボックス内の位置に応じて変化させることにより、このようなポイントの選択を実現してもよい。例えば、この探索順をバウンディングボックスの中心からの距離順としてもよい。このようにすることにより、探索順をバウンディングボックス内の位置に応じて変化させることができる。また、例えば、バウンディングボックスを8分割(xyzの各方向に2分割)した8分割領域毎にこの探索順を変化させてもよい。
<参照ポイント設定処理の流れ>
この場合の参照ポイント設定処理の流れの例を図40のフローチャートを参照して説明する。参照ポイント設定処理が開始されると、参照ポイント設定部121は、ステップS341において、1つ前の階層の参照ポイントとしてバウンディングボックスの中心に近い方のポイントを選択したか否かを判定する。
近い方のポイントを選択したと判定された場合、処理はステップS342に進む。
ステップS342において、参照ポイント設定部121は、参照ポイントの候補の内、バウンディングボックスの中心から最も遠いポイントを参照ポイントとして選択する。ステップS342の処理が終了すると参照ポイント設定処理が終了し、処理は図18に戻る。
また、ステップS341において、近い方のポイントを選択していないと判定された場合、処理はステップS343に進む。
ステップS343において、参照ポイント設定部121は、参照ポイントの候補の内、バウンディングボックスの中心から最も近いポイントを参照ポイントとして選択する。ステップS343の処理が終了すると参照ポイント設定処理が終了し、処理は図18に戻る。
このように参照ポイントを選択することにより、符号化装置100は、参照ポイントの予測精度の低減を抑制することができる。これにより、符号化効率の低減を抑制することができる。
<6.付記>
<階層化・逆階層化方法>
以上においては、属性情報の階層化・逆階層化方法としてLiftingを例に説明したが、本技術は、属性情報を階層化する任意の技術に適用することができる。つまり、属性情報の階層化・逆階層化の方法は、Lifting以外であってもよい。また、属性情報の階層化・逆階層化の方法は、非特許文献3に記載のようなスケーラブルな方法であってもよいし、非スケーラブルな方法であってもよい。
<制御情報>
以上の各実施の形態において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可(または禁止)するか否かを制御する制御情報(例えばenabled_flag)を伝送するようにしてもよい。また、例えば、上述した本技術を適用することを許可(または禁止)する範囲(例えばブロックサイズの上限若しくは下限、またはその両方、スライス、ピクチャ、シーケンス、コンポーネント、ビュー、レイヤ等)を指定する制御情報を伝送するようにしてもよい。
<周辺・近傍>
なお、本明細書において、「近傍」や「周辺」等の位置関係は、空間的な位置関係だけでなく、時間的な位置関係も含みうる。
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
図41は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
図41に示されるコンピュータ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が各種の処理を実行する上において必要なデータなども適宜記憶される。
コンピュータが実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア921に記録して適用することができる。その場合、プログラムは、リムーバブルメディア921をドライブ915に装着することにより、入出力インタフェース910を介して、記憶部913にインストールすることができる。
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部914で受信し、記憶部913にインストールすることができる。
その他、このプログラムは、ROM902や記憶部913に、あらかじめインストールしておくこともできる。
<本技術の適用対象>
以上においては、ポイントクラウドデータの符号化・復号に本技術を適用する場合について説明したが、本技術は、これらの例に限らず、任意の規格の3Dデータの符号化・復号に対して適用することができる。つまり、上述した本技術と矛盾しない限り、符号化・復号方式等の各種処理、並びに、3Dデータやメタデータ等の各種データの仕様は任意である。また、本技術と矛盾しない限り、上述した一部の処理や仕様を省略してもよい。
また、以上においては、本技術の適用例として符号化装置100および復号装置200について説明したが、本技術は、任意の構成に適用することができる。
例えば、本技術は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機(例えばテレビジョン受像機や携帯電話機)、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録したり、これら記憶媒体から画像を再生したりする装置(例えばハードディスクレコーダやカメラ)などの、様々な電子機器に適用され得る。
また、例えば、本技術は、システムLSI(Large Scale Integration)等としてのプロセッサ(例えばビデオプロセッサ)、複数のプロセッサ等を用いるモジュール(例えばビデオモジュール)、複数のモジュール等を用いるユニット(例えばビデオユニット)、または、ユニットにさらにその他の機能を付加したセット(例えばビデオセット)等、装置の一部の構成として実施することもできる。
また、例えば、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、本技術を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングとして実施するようにしてもよい。例えば、コンピュータ、AV(Audio Visual)機器、携帯型情報処理端末、IoT(Internet of Things)デバイス等の任意の端末に対して、画像(動画像)に関するサービスを提供するクラウドサービスにおいて本技術を実施するようにしてもよい。
なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
<本技術を適用可能な分野・用途>
本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
<その他>
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
また、例えば、上述したプログラムは、任意の装置において実行されるようにしてもよい。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
また、例えば、1つのフローチャートの各ステップを、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。さらに、1つのステップに複数の処理が含まれる場合、その複数の処理を、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
また、例えば、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
また、例えば、本技術に関する複数の技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
なお、本技術は以下のような構成も取ることができる。
(1) 3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイント毎の属性情報について、前記属性情報と前記属性情報の予測値との差分値を導出する予測ポイントと、前記予測値の導出に用いられる参照ポイントとの分類を前記参照ポイントに対して再帰的に繰り返すことにより、前記属性情報の階層化を行う階層化部を備え、
前記階層化部は、ポイントの重心に基づいて、前記参照ポイントを設定する
情報処理装置。
(2) 前記階層化部は、候補となるポイントの内、前記重心に対してより近傍のポイントを前記参照ポイントとして設定する
(1)に記載の情報処理装置。
(3) 前記階層化部は、所定の範囲内に位置するポイントの重心に基づいて、前記参照ポイントを設定する
(1)または(2)に記載の情報処理装置。
(4) 前記階層化部は、前記重心に対して略同条件の複数の候補の中から、所定の探索順に基づいて前記参照ポイントを設定する
(1)乃至(3)のいずれかに記載の情報処理装置。
(5) 3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイント毎の属性情報について、前記属性情報と前記属性情報の予測値との差分値を導出する予測ポイントと、前記予測値の導出に用いられる参照ポイントとの分類を前記参照ポイントに対して再帰的に繰り返すことにより、前記属性情報の階層化を行う際に、前記参照ポイントを、ポイントの重心に基づいて設定する
情報処理方法。
(6) 3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイント毎の属性情報について、前記属性情報と前記属性情報の予測値との差分値を導出する予測ポイントと、前記予測値の導出に用いられる参照ポイントとの分類を前記参照ポイントに対して再帰的に繰り返すことにより、前記属性情報の階層化を行う階層化部を備え、
前記階層化部は、前記参照ポイントを、ポイントの分布態様に基づいて設定する
情報処理装置。
(7) 前記階層化部は、前記ポイントの分布態様毎に、ポイントの重心に近いポイントを指定するテーブル情報に基づいて、前記参照ポイントを設定する
(6)に記載の情報処理装置。
(8) 前記階層化部は、前記ポイントの分布態様毎に所定のポイントを指定するテーブル情報に基づいて、前記参照ポイントを設定する
(6)または(7)に記載の情報処理装置。
(9) 前記テーブル情報に関する情報を符号化する符号化部をさらに備える
(8)に記載の情報処理装置。
(10) 3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイント毎の属性情報について、前記属性情報と前記属性情報の予測値との差分値を導出する予測ポイントと、前記予測値の導出に用いられる参照ポイントとの分類を前記参照ポイントに対して再帰的に繰り返すことにより、前記属性情報の階層化を行う際に、前記参照ポイントを、ポイントの分布態様に基づいて設定する
情報処理方法。
(11) 3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイント毎の属性情報について、前記属性情報と前記属性情報の予測値との差分値を導出する予測ポイントと、前記予測値の導出に用いられる参照ポイントとの分類を前記参照ポイントに対して再帰的に繰り返すことにより、前記属性情報の階層化を行う階層化部と、
前記階層化部による前記参照ポイントの設定に関する情報を符号化する符号化部と
を備える情報処理装置。
(12) 前記符号化部は、全てのポイントについての前記参照ポイントの設定に関する情報を符号化する
(11)に記載の情報処理装置。
(13) 前記符号化部は、一部の階層のポイントについての前記参照ポイントの設定に関する情報を符号化する
(11)に記載の情報処理装置。
(14) 前記符号化部は、さらに所定の条件を満たすポイントについての前記参照ポイントの設定に関する情報を符号化する
(13)に記載の情報処理装置。
(15) 3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイント毎の属性情報について、前記属性情報と前記属性情報の予測値との差分値を導出する予測ポイントと、前記予測値の導出に用いられる参照ポイントとの分類を前記参照ポイントに対して再帰的に繰り返すことにより、前記属性情報の階層化を行い、
前記参照ポイントの設定に関する情報を符号化する
情報処理方法。
(16) 3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイント毎の属性情報について、前記属性情報と前記属性情報の予測値との差分値を導出する予測ポイントと、前記予測値の導出に用いられる参照ポイントとの分類を前記参照ポイントに対して再帰的に繰り返すことにより、前記属性情報の階層化を行う階層化部を備え、
前記階層化部は、前記参照ポイントとして、前記参照ポイントの候補の内の、バウンディングボックスの中心に近い方のポイントと、前記バウンディングボックスの中心から遠い方のポイントとを、階層毎に交互に選択する
情報処理装置。
(17) 前記階層化部は、前記バウンディングボックス内の位置に応じた探索順に基づいて、前記候補の内の前記バウンディングボックスの中心に近い方のポイントと、前記バウンディングボックスの中心から遠い方のポイントとを選択する
(16)に記載の情報処理装置。
(18) 前記探索順は、前記バウンディングボックスの中心からの距離順である
(17)に記載の情報処理装置。
(19) 前記探索順は、前記バウンディングボックスを8分割した領域毎に設定される
(17)に記載の情報処理装置。
(20) 3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイント毎の属性情報について、前記属性情報と前記属性情報の予測値との差分値を導出する予測ポイントと、前記予測値の導出に用いられる参照ポイントとの分類を前記参照ポイントに対して再帰的に繰り返すことにより、前記属性情報の階層化を行う際に、前記参照ポイントとして、前記参照ポイントの候補の内の、バウンディングボックスの中心に近い方のポイントと、バウンディングボックスの中心から遠い方のポイントとを、階層毎に交互に選択する
情報処理方法。