(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024128106
(43)【公開日】2024-09-20
(54)【発明の名称】点群復号装置、点群復号方法及びプログラム
(51)【国際特許分類】
H04N 19/597 20140101AFI20240912BHJP
H04N 19/30 20140101ALI20240912BHJP
H04N 19/70 20140101ALI20240912BHJP
G06T 9/40 20060101ALI20240912BHJP
【FI】
H04N19/597
H04N19/30
H04N19/70
G06T9/40
【審査請求】有
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2024112974
(22)【出願日】2024-07-12
(62)【分割の表示】P 2020107205の分割
【原出願日】2020-06-22
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和元年度、総務省、「多様な用途、環境下での高精細映像の活用に資する次世代映像伝送・通信技術の研究開発」委託事業、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】110001564
【氏名又は名称】フェリシテ弁理士法人
(72)【発明者】
【氏名】渡邊 良亮
(72)【発明者】
【氏名】海野 恭平
(72)【発明者】
【氏名】河村 圭
(57)【要約】
【課題】指定された点数以下の点数となるように、出力点数を制限したスケーラブル復号を実施すること。
【解決手段】本発明に係る点群復号装置200は、8分木構造の各層の点数或いは8分木構造の各層の点数の差分を復号するように構成されている幾何情報復号部2010を備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
点群復号装置であって、
8分木構造の各層の点数或いは前記8分木構造の各層の点数の差分を復号するように構成されている幾何情報復号部を備えることを特徴とする点群復号装置。
【請求項2】
入力パラメータとして与えられる出力最大点数を超えないように、前記点数或いは前記差分値に基づいて、スケーラブル復号を行う層の数を決定するように構成されているツリー合成部を備えることを特徴とする請求項1に記載の点群復号装置。
【請求項3】
入力パラメータとして与えられる比率を超えないように、前記点数或いは前記差分値に基づいて、スケーラブル復号を行う層の数を決定するように構成されているツリー合成部を備えることを特徴とする請求項1に記載の点群復号装置。
【請求項4】
点群復号装置であって、
8分木構造の各層の点数或いは前記8分木構造の各層の点数の差分を復号するように構成されている幾何情報復号部を備え、
前記幾何情報復号部は、シンタックスとして規定されるm(mは、1以上の整数)を復号し、最初のm層の点数或いは点数の差分については記録しないように構成されていることを特徴とする点群復号装置
【請求項5】
点群復号装置であって、
入力される層のm(mは、1以上の整数)層下の層まで、スケーラブル復号を行うように構成されているツリー合成部と、
(m+1)層の幾何情報に基づいて、LoD(Level of Detail)を算出するように構成されているLoD算出部とを備えることを特徴とする点群復号装置。
【請求項6】
8分木構造の各層の点数或いは前記8分木構造の各層の点数の差分を復号する工程を有することを特徴とする点群復号方法。
【請求項7】
点群復号装置で用いるプログラムであって、コンピュータに、
8分木構造の各層の点数或いは前記8分木構造の各層の点数の差分を復号する工程を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、点群復号装置、点群復号方法及びプログラムに関する。
【背景技術】
【0002】
非特許文献1及び非特許文献2では、再帰的に実施された8分木(Octree)分割により圧縮された点群の3D位置(Geometry)情報を復号する技術及び必要に応じて復号された点群位置に対応する点の属性(Attribute)情報を復号する技術が開示されている。
【0003】
また、非特許文献3では、非特許文献1及び非特許文献2の中の1つの機能として、
図13に示すように、Octree構造を中間解像度までのみ復号することによって、スケーラブルに解像度の異なる点群を復号(デコード)するスケーラブル復号技術が開示されている。
【0004】
かかるスケーラブル復号技術により、全てのビットストリームを復号することなく、低解像度の点群をスケーラブルに復号することができ、サムネイル等の用途で用いることができる。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Text of ISO/IEC 23090-9 DIS Geometry-based PCC w19088
【非特許文献2】G-PCC codec description v6、ISO/IEC JTC1/SC29/WG11 w19091
【非特許文献3】Spatial scalability support for G-PCC、ISO/IEC JTC1/SC29/WG11 m47352
【発明の概要】
【発明が解決しようとする課題】
【0006】
一般に、例えば、自由視点映像技術等で生成した点群を視聴するビューアのようなアプリケーションを考えた際に、計算機資源に乏しい端末上では、入力される点数が多すぎるとリアルタイムレンダリングができなくなる。
【0007】
そこで、リアルタイムレンダリングを実施するために、非特許文献3に開示されているスケーラブル復号機能で復号後の点数を一定以下になるように抑えたいケースが存在する。
【0008】
しかしながら、非特許文献1に記載の仕様では、非特許文献3に開示されているスケーラブル復号を実施する際には、Octree構造の上位n層を復号することはできても、上から(n+1)層目の点数については復号するまで知ることができないことから、所定の点数に収まるように復号を行うことができないという問題点があった。
【0009】
この点、(n+1)層目を復号すれば点数を知ることができるが、(n+1)層目を復号することは処理負荷の面で課題が大きいという問題点があった。
【0010】
そこで、本発明は、上述の課題に鑑みてなされたものであり、指定された点数以下の点数となるように、出力点数を制限したスケーラブル復号を実施することができる点群復号装置、点群復号方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明の第1の特徴は、点群復号装置であって、8分木構造の各層の点数或いは前記8分木構造の各層の点数の差分を復号するように構成されている幾何情報復号部を備えることを要旨とする。
【0012】
本発明の第2の特徴は、点群復号装置であって、8分木構造の各層の点数或いは前記8分木構造の各層の点数の差分を復号するように構成されている幾何情報復号部を備え、前記幾何情報復号部は、シンタックスとして規定されるm(mは、1以上の整数)を復号し、最初のm層の点数或いは点数の差分については記録しないように構成されていることを要旨とする。
【0013】
本発明の第3の特徴は、点群復号装置であって、入力される層のm(mは、1以上の整数)層下の層まで、スケーラブル復号を行うように構成されているツリー合成部と、(m+1)層の幾何情報に基づいて、LoD(Level of Detail)を算出するように構成されているLoD算出部とを備えることを要旨とする。
【0014】
本発明の第4の特徴は、点群復号方法であって、8分木構造の各層の点数或いは前記8分木構造の各層の点数の差分を復号する工程を有することを要旨とする。
【0015】
本発明の第5の特徴は、点群復号装置で用いるプログラムであって、コンピュータに、8分木構造の各層の点数或いは前記8分木構造の各層の点数の差分を復号する工程を実行させることを要旨とする。
【発明の効果】
【0016】
本発明によれば、指定された点数以下の点数となるように、出力点数を制限したスケーラブル復号を実施することができる点群復号装置、点群復号方法及びプログラムを提供することができる。
【図面の簡単な説明】
【0017】
【
図1】一実施形態に係る点群処理システム10の構成の一例を示す図である。
【
図2】一実施形態に係る点群復号装置200の機能ブロックの一例を示す図である。
【
図3】一実施形態に係る点群復号装置200の幾何情報復号部2010で受信する符号化データ(ビットストリーム)の構成の一例である。
【
図4】一実施形態に係るGPS2011のシンタックス構成の一例である。
【
図5】一実施形態に係るGPS2012A/2012Bのシンタックス構成の一例である。
【
図6】一実施形態に係るGPS2012A/2012Bのシンタックス構成の一例である。
【
図7】一実施形態に係る点群復号装置200の幾何情報復号部2010によって復号される制御データについて説明するための図である。
【
図8】一実施形態に係る点群復号装置200の幾何情報復号部2010によって復号される制御データについて説明するための図である。
【
図9】一実施形態に係る点群復号装置200の属性情報復号部2060で復号される制御データについて説明するための図である。
【
図10】一実施形態に係るAPS2061のシンタックス構成の一例である。
【
図11】一実施形態に係る点群復号装置200のLoD算出部2090の処理内容の一例について説明するための図である。
【
図12】一実施形態に係る点群復号装置200のLoD算出部2090の処理内容の一例について説明するための図である。
【
図13】従来技術について説明するための図である。
【発明を実施するための形態】
【0018】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態における構成要素は、適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【0019】
(第1実施形態)
以下、
図1~
図12を参照して、本発明の第1実施形態に係る点群処理システム10について説明する。
図1は、本実施形態に係る実施形態に係る点群処理システム10を示す図である。
【0020】
図1に示すように、点群処理システム10は、点群符号化装置100及び点群復号装置200を有する。
【0021】
点群符号化装置100は、入力点群信号を符号化することによって符号化データ(ビットストリーム)を生成するように構成されている。点群復号装置200は、ビットストリームを復号することによって出力点群信号を生成するように構成されている。
【0022】
なお、入力点群信号及び出力点群信号は、点群内の各点の位置情報と属性情報とから構成される。属性情報は、例えば、各点の色情報や反射率である。
【0023】
ここで、かかるビットストリームは、点群符号化装置100から点群復号装置200に対して伝送路を介して送信されてもよい。また、ビットストリームは、記憶媒体に格納された上で、点群符号化装置100から点群復号装置200に提供されてもよい。
【0024】
(点群復号装置200)
以下、
図2を参照して、本実施形態に係る点群復号装置200について説明する。
図2は、本実施形態に係る点群復号装置200の機能ブロックの一例について示す図である。
【0025】
点群復号装置200は、点群符号化装置100により生成されたビットストリームを入力として、点群の位置情報と属性情報を復号する機能を有する。
【0026】
図2に示すように、点群復号装置200は、幾何情報復号部2010と、ツリー合成部2020と、近似表面合成部2030と、幾何情報再構成部2040と、逆座標変換部2050と、属性情報復号部2060と、逆量子化部2070と、RAHT(Region Adaptive Hierarchical Transform)部2080と、LoD(Level of Detail)算出部2090と、逆リフティング部2100と、逆色変換部2110とを有する。以下、
図2に示す機能ブロック図中の各部の詳細な機能についてそれぞれ説明する。
【0027】
幾何情報復号部2010は、点群符号化装置100から出力されるビットストリームのうち、幾何情報に関するビットストリーム(幾何情報ビットストリーム)を入力とし、シンタックスを復号するように構成されている。
【0028】
復号処理は、例えば、コンテキスト適応二値算術復号処理である。ここで、例えば、シンタックスは、位置情報の復号処理を制御するための制御データ(フラグやパラメータ)を含む。
【0029】
ツリー合成部2020は、幾何情報復号部2010によって復号された制御データ及び後述するツリー構造内のどのノードに点群が存在するかを示すoccupancy codeを入力として、復号対象空間内のどの領域に点が存在するかという点の位置(ツリー情報)を生成するように構成されている。
【0030】
近似表面合成部2030は、ツリー情報合成部2020によって生成されたツリー情報を用いて、近似表面情報を生成するように構成されている。
【0031】
近似表面情報は、例えば、物体の3次元点群データを復号する際等において、点群が物体表面に密に分布しているような場合に、個々の点群を復号するのではなく、点群の存在領域を小さな平面で近似して表現したものである。
【0032】
具体的には、近似表面合成部2030は、例えば、「Trisoup」と呼ばれる手法で、近似表面情報を生成することができる。「Trisoup」の具体的な処理としては、例えば、非特許文献1及び非特許文献2に記載の方法を用いることができる。また、Lidar等で取得した疎な点群を復号する場合は、本処理を省略することができる。
【0033】
幾何情報再構成部2040は、ツリー情報合成部2020によって生成されたツリー情報及び近似表面合成部2030によって生成された近似表面情報を元に、復号対象の点群の各点の幾何情報(復号処理が仮定している座標系における位置情報)を再構成するように構成されている。
【0034】
逆座標変換部2050は、幾何情報再構成部2040によって再構成された幾何情報を入力として、復号処理が仮定している座標系から、出力点群信号の座標系に変換を行い、位置情報を出力するように構成されている。
【0035】
属性情報復号部2060は、点群符号化装置100から出力されるビットストリームのうち、属性情報に関するビットストリーム(属性情報ビットストリーム)を入力とし、シンタックスを復号するように構成されている。
【0036】
復号処理は、例えば、コンテキスト適応二値算術復号処理である。ここで、例えば、シンタックスは、属性情報の復号処理を制御するための制御データ(フラグ及びパラメータ)を含む。
【0037】
また、属性情報復号部2060は、復号したシンタックスから、量子化済み残差情報を復号するように構成されている。
【0038】
逆量子化部2070は、属性情報復号部2060によって復号された量子化済み残差情報と、属性情報復号部2060によって復号された制御データの1つである量子化パラメータとを元に、逆量子化処理を行い、逆量子化済み残差情報を生成するように構成されている。
【0039】
逆量子化済み残差情報は、復号対象の点群の特徴に応じて、RAHT部2080及びLoD算出部2090のいずれかに出力される。いずれに出力されるかは、属性情報復号部2060によって復号される制御データによって指定される。
【0040】
RAHT部2080は、逆量子化済み残差情報によって生成された逆量子化済み残差情報及び幾何情報再構成部2040によって生成された幾何情報を入力とし、RAHTと呼ばれるHaar変換(復号処理においては、逆Haar変換)の一種を用いて、各点の属性情報を復号するように構成されている。RAHTの具体的な処理としては、例えば、非特許文献1及び非特許文献2に記載の方法を用いることができる。
【0041】
LoD算出部2090は、幾何情報再構成部2040によって生成された幾何情報を入力とし、LoDを生成するように構成されている。
【0042】
LoDは、ある点の属性情報から、他のある点の属性情報を予測し、予測残差を符号化或いは復号するといった予測符号化を実現するための参照関係(参照する点及び参照される点)を定義するための情報である。
【0043】
言い換えると、LoDは、幾何情報に含まれる各点を複数のレベルに分類し、上位のレベルに属する点については下位のレベルに属する点の属性情報を用いて属性を符号化或いは復号するといった階層構造を定義した情報である。
【0044】
LoDの具体的な決定方法としては、例えば、非特許文献1及び非特許文献2に記載の方法を用いてもよい。
【0045】
逆リフティング部2100は、LoD算出部2090によって生成されたLoD及び逆量子化済み残差情報によって生成された逆量子化済み残差情報を用いて、LoDで規定した階層構造に基づいて各点の属性情報を復号するように構成されている。逆リフティングの具体的な処理としては、例えば、非特許文献1及び非特許文献2に記載の方法を用いることができる。
【0046】
逆色変換部2110は、復号対象の属性情報が色情報であり且つ点群符号化装置100側で色変換が行われていた場合に、RAHT部2080又は逆リフティング部2100から出力される属性情報に逆色変換処理を行うように構成されている。かかる逆色変換処理の実行有無については、属性情報復号部2060によって復号された制御データによって決定される。
【0047】
点群復号装置200は、以上の処理により、点群内の各点の属性情報を復号して出力するように構成されている。
【0048】
以下に、点群復号装置200の各部において、本発明に特有な部分を説明する。
【0049】
(幾何情報復号部2010)
以下、
図4~
図7を用いて幾何情報復号部2010で復号される制御データについて説明する。
【0050】
図4は、幾何情報復号部2010で受信する符号化データ(ビットストリーム)の構成の一例である。
【0051】
第1に、ビットストリームは、GPS2011を含んでいてもよい。GPS2011は、Geometry Parameter Setの略で、幾何情報の復号に関する制御データの集合である。具体例については後述する。各GPS2011は、複数のGPS2011が存在する場合に個々を識別するためのGPS id情報を少なくとも含む。
【0052】
第2に、ビットストリームは、GSH2012A/2012Bを含んでいてもよい。GSH2012A/2012Bは、Geometry Slice Headerの略で、後述するスライスに対応する制御データの集合である。具体例については後述する。GSH2012A/2012Bは、各GSH2012A/2012Bに対応するGPS2011を指定するためのGPS id情報を少なくとも含む。
【0053】
第3に、ビットストリームは、GSH2012A/2012Bの次に、スライスデータ2013A/2013Bを含んでいてもよい。スライスデータ2013A/2013Bには、幾何情報を符号化したデータが含まれている。スライスデータ2013A/2013Bの一例としては、後述するoccupancy codeが挙げられる。
【0054】
以上のように、ビットストリームは、各スライスデータ2013A/2013Bに、1つずつGSH2012A/2012B及びGPS2011が対応する構成となる。
【0055】
上述のように、GSH2012A/2012Bにて、どのGPS2011を参照するかをGPS id情報で指定するため、複数のスライスデータ2013A/2013Bに対して共通のGPS2011を用いることができる。
【0056】
言い換えると、GPS2011は、スライスごとに必ずしも伝送する必要がない。例えば、
図3のように、GSH2012B及びスライスデータ2013Bの直前では、GPS2011を符号化しないようなビットストリームの構成とすることもできる。
【0057】
なお、
図3の構成は、あくまで一例である。各スライスデータ2013A/2013Bに、GSH2012A/2012B及びGPS2011が対応する構成となっていれば、ビットストリームの構成要素として、上述以外の要素が追加されてもよい。例えば、ビットストリームは、シーケンスパラメータセット(SPS)を含んでいてもよい。また、同様に、伝送に際して、
図3と異なる構成に整形されてもよい。
【0058】
図4は、GPS2011のシンタックス構成の一例である。
【0059】
なお、以下で説明するシンタックス名は、あくまで一例である。以下で説明したシンタックスの機能が同様であれば、シンタックス名は異なっていても差し支えない。
【0060】
GPS2011は、各GPS2011を識別するためのGPS id情報(gps_geom_parameter_set_id)を含んでもよい。
【0061】
GPS2011は、ツリー合成部2020にて後述のIDCM(inferred Direct Coding Mode)のON/OFFを制御するためのフラグ(inferred_direct_coding_mode_enabled_flag)を含んでもよい。
【0062】
非特許文献1や非特許文献2では、8分木分割ではなく4分木分割や2分木分割を行う手法(implicitQtBt)が開示されているが、GPS2011は、かかる手法に基づき、非特許文献1や非特許文献2に記載の通りに、ツリー合成部2020で4分木分割や2分木分割(QtBt)を行うかどうかを示すフラグ(gps_implicit_geom_partition_flag)を含んでもよい。
【0063】
例えば、gps_implicit_geom_partition_flagの値が「1」の場合は、「QtBt」を行うと定義し、gps_implicit_geom_partition_flagの値が「0」の場合は、「Octree」のみを行うと定義してもよい。
【0064】
GPS2011は、ツリー構造を復号した際の各階層の点数を記録するかどうかを制御するフラグ(geom_recording_point_num_flag)を含んでもよい。
【0065】
かかる点数を通知すべきではない場合には、geom_recording_point_num_flagをOFFにすることで、かかる点数の記録を行わなくすることが可能である。一般に、かかる点数を記録することは、データサイズの増大に繋がることから、ユーザの用途に応じて、geom_recording_point_num_flagのON/OFFを切り替えることができる。
【0066】
また、各層の点数を通知するメリットとしてスケーラブル復号のユースケースが存在することを鑑みると、文献A「[New Proposal]On interaction between implicit QTBT and Scalable lifting(ISO/IEC JTC1/SC29/WG11 m53497)」の中でスケーラブル復号とImplicit QtBtとを併用すると不具合が発生するため、両者を排他にする提案が成されていること。したがって、gps_implicit_geom_partition_flagがONの場合には、geom_recording_point_num_flagをOFFとしてもよい。
【0067】
なお、
図4のDescriptor欄は、各シンタックスが、どのように符号化されているかを意味している。ue(v)は、符号無し0次指数ゴロム符号であることを意味し、u(1)は、1ビットのフラグであることを意味する。
【0068】
図5は、GSH2012A/2012Bのシンタックス構成の一例である。
【0069】
GSH2012A/2012Bは、当該GSH2012A/2012Bに対応するGPS2012を指定するためのシンタックス(gsh_geometry_parameter_set_id)を含んでもよい。
【0070】
GSH2012A/2012Bは、当該GSH2012A/2012Bに対応するGPS2012においてgps_implicit_geom_partition_flagの値が「1」のとき(すなわち、「ON」のとき)、GSH2012A/2012Bは、ImplicitQtBtに関する制御データを追加で含んでもよい。
【0071】
例えば、ImplicitQtBtに関する制御データには、
図5に示すgsh_log2_root_nodesize_sや、gsh_log2_root_nodesize_t_minus_sや、gsh_log2_root_nodesize_v_minus_t等が含まれる。
【0072】
また、GSH2012A/2012Bは、
図5のように、ツリー合成部2020で合成されるツリーの各階層の点数を示すシンタックス(gsh_point_num_per_depth[i])を含んでもよい。
【0073】
gsh_point_num_per_depth[i]は、必ず「0」以上の値を取ることと規定されていてもよい。gsh_point_num_per_depth[i]は、例えば、符号なし0次指数ゴロム符号で符号化されていてもよいし、予め指定されたビット数で符号化されていてもよい。
【0074】
また、ツリー構造における最上層のノードが1個であること、及び、ツリー構造における最下層のノードの点数が「全点数」-「最下層以外のノードの点数の和」で計算されることから、最上層のノードの点数及び最下層のノードの点数に関しては、計算可能なものとして、gsh_point_num_per_depth[i]には含めずに、ツリー合成部2020が、幾何情報の復号後に計算してもよい。
【0075】
また、ツリー構造における各階層の点数は、1つ前に保存した階層の点数との差分値が記録されるようになっていてもよい。この場合、かかる差分値が負の値を取ることがあるため、符号ありゴロム符号se(v)で点数が記録されてもよい。
【0076】
また、ここで記録される点数は、情報量を減らす観点から正確な点数ではなく、おおよその近似値としての点数が入ってもよい。その結果、正確な点数を記載する必要がなくなることから、少ない情報量で点数の情報を書き込むことができる一方、実際の点数と誤差が生じるため、後述の「所定の点数に収まるように復号する」という観点で、所定の点数を超過してしまう可能性がある。
【0077】
また、極度に低解像度な点を復号する用途は少ないと考えられることから、geom_recording_point_num_flagがONの場合(例えば、geom_recording_point_num_flagの値が「1」の場合)に、幾何情報復号部2010は、最上層から見てm層については点数を記録せずにスキップしてもよい。
【0078】
この場合、geom_recording_point_num_flagがONの場合に、幾何情報復号部2010は、シンタックスとして規定されるmに基づき、最初のm層の点数(或いは、点数の差分)をスキップして記録せず、m+1層目以降の点数(或いは、点数の差分)をgsh_point_num_per_depth[i]に記録するように構成されていてもよい。
【0079】
例えば、m=5のとき、幾何情報復号部2010は、1層目~5層目の点数(或いは、点数の差分)についてgsh_point_num_per_depth[i]には記録せず、6層目以降の点数(或いは、点数の差分)についてgsh_point_num_per_depth[0]から順番に記録するように構成されていてもよい。
【0080】
図6に、かかる場合のシンタックス構成の一例を示す。
図6において、mは、gsh_recording_start_layerという名前のシンタックスとして記録されている。
【0081】
図6の例では、gsh_recording_start_layerは、符号なし0次指数ゴロム符号で示しているが、層の数が極度に多くなることは考えられないことを鑑み、sビットの固定長のDescriptorとして記録されてもよい。
【0082】
なお、かかる各階層の点数を記録する部分は、必ずしもGSH2012A/2012Bではなくてもよく、例えば、スライスが1つであることが保証されていれば、かかる各階層の点数は、GPS2011に記録されてもよい。
【0083】
スケーラブル復号の場合には、LoD算出部2090で形成されるLoD構造及びOctree構造の各階層が一致することから、かかる各階層の点数は、LoD構造の点数として、後述するASH(Attribute Slice Header)やAPSに記録されてもよい。
【0084】
(ツリー合成部2020)
図7及び
図8を用いて、幾何情報復号部2010によって復号される制御データについて説明する。
【0085】
ツリー合成部2020は、幾何情報復号部2010によって復号された制御データ及び後述するツリー構造内のどのノードに点群が存在するかを示すoccupancy codeを入力として、ツリー構造を復号することで、復号対象空間内のどの領域に点が存在するかという点の位置を取得するように構成されている。
【0086】
ツリー合成部2020は、復号対象空間を立方体として定義し、立方体の中を2×2×2のさらに細かい立方体に分割することを再帰的に繰り返すことで、かかる点の位置を取得するように構成されている。このとき、ツリー合成部2020は、1つのノードにつき8ビットのoccupancy codeを参照することで、2×2×2のどの領域にノードが形成されるかを順次計算していく。
【0087】
ここで、
図15に示すように、スケーラブル復号機能を実施する際には、非特許文献1によると、Octree構造の下から何層をスキップするかを示すパラメータ(SkipOctreeLayers)が点群復号装置200の外から与えられる。
図7に示すように、SkipOctreeLayersに基づいて、上位何層目まで復号するかが決定される。
【0088】
これにより、SkipOctreeLayersに基づき点群復号装置20によって復号される点群の解像度は、スケーラブルに決定できるものの、
図8のように、次の層(
図8における点数C)まで復号した際の点数を知ることはできない。
【0089】
よって、例えば、復号後の点群数がS個以下になるように処理をストップしてスケーラブル復号を行いたい場合に、
図8における「点数1+点数A+点数B」の時点でT点(T<S)だったとすると、点数Cの層を復号しないと、点数Cの層を含めて復号してもS点を超えないのか或いは点数Cの層を含めるとS点を超えてしまうのかが判断できない。
【0090】
しかしながら、点数Cの層を復号することは、それだけ計算リソースの上で無駄が発生することになる。
【0091】
したがって、本実施形態では、幾何情報復号部2010が、各層の点数を通知することで、次の層を復号する前に、次の層の点数を知ることで、復号を実施せずにS点以下に収まるように復号処理を行うことができる。これは、点群の個数を閾値にすることに限らず、全体点数の50%未満になるように抑えて復号する等の比率を指定する場合にも同様に考えることができる。
【0092】
かかるOctree構造の復号を実施する際に、非特許文献1や非特許文献2に記載の技術では、DCM(Direct Coding Mode)が導入されている。DCMは、あるノードの下に紐づくノードが1点や2点等の少数の場合には、occupancy codeを記載するのではなく、点の存在する位置を直接符号化して点群復号装置200で復号することで、圧縮効率を高めるツールである。特に、非特許文献1や非特許文献2では、DCMを行うかどうかを周囲のノードから暗黙的に判定するInferred DCM(IDCM)が導入されていた。
【0093】
(属性情報復号部2060)
以下、
図9及び
図10を用いて、属性情報復号部2060で復号される制御データについて説明する。
【0094】
図9は、幾何情報復号部2060で受信する符号化データ(ビットストリーム)の構成の一例である。
【0095】
第1に、ビットストリームは、APS2061を含んでいてもよい。APS2061は、Attribute Parameter Setの略であり、属性情報の復号に関する制御データの集合である。具体例については後述する。
【0096】
属性情報としては、点群の色情報の他に、点群の反射率(Reflectance)の情報等が考えられるが、Attributeの種類ごとにAPS2061が複数用意されてもよい。各APS2061は、複数のAPS2061が存在する場合に個々を識別するためのAPS id情報を少なくとも含む。
【0097】
第2に、ビットストリームは、ASH2062A/2062Bを含んでいてもよい。ASH2062A/2062Bは、Attribute Slice Headerの略であり、各スライスに対応する制御データを有する。具体例については後述する。ASH2062A/2062Bは、各ASH2062A/2062Bに対応するAPS2061を指定するためのAPS id情報を少なくとも含む。
【0098】
第3に、ビットストリームは、ASH2062A/2062Bの次に、スライスデータ2063A/2063Bを含んでいてもよい。スライスデータ2063A/2063Bには、属性情報を符号化したデータが含まれている。
【0099】
以上のように、ビットストリームは、各スライスデータ2063A/2063Bに、1つずつASH2062A/2062B及びAPS2061が対応する構成となる。
【0100】
上述のように、ASH2062A/2062Bにて、どのAPS2061を参照するかをAPS id情報で指定するため、複数のスライスデータ2063A/2063Bに対して共通のAPS2061を用いることができる。
【0101】
なお、
図9の構成は、あくまで一例である。各スライスデータ2063A/2063Bに、ASH2062A/2062B及びAPS2061が対応する構成となっていれば、ビットストリームの構成要素として、上述以外の要素が追加されてもよい。例えば、ビットストリームは、シーケンスパラメータセット(SPS)を含んでいてもよい。
【0102】
また、同様に、伝送に際して、
図9と異なる構成に整形されてもよい。更に、前記幾何情報復号部2010で復号されるビットストリームと合成して単一のビットストリームとして伝送されてもよい。例えば、スライスデータ2013A及び2063A、スライスデータ2013B及び2063Bを、それぞれ単一のスライスデータとして扱い、各スライスの直前にGSH2012A及びASH2062A、GSH2012B及びASH2062Bを、それぞれ配置する構成となっていてもよい。また、その際、各GSH及びASHに先立って、GPS2011及びAPS2061が配置されていてもよい。
【0103】
図10は、APS2061のシンタックス構成の一例である。
【0104】
APS2061は、各APS2061を識別するためのAPS id情報(aps_attr_parameter_set_id)を含んでもよい。
【0105】
APS2061は、属性情報の復号方法を示す情報(attr_coding_type)を含んでもよい。例えば、attr_coding_typeの値が「1」の時は、逆リフティング部2100において可変の重み付きリフティング予測を行い、attr_coding_typeの値が「0」の時は、RAHT部2080にてRAHTを行い、attr_coding_typeの値が「2」の時は、逆リフティング部2100において固定の重みでのリフティング予測を行うというように規定されていてもよい。
【0106】
APS2061は、attr_coding_typeの値が「2」の時、すなわち、逆リフティング部2100において固定の重みでのリフティング予測を行う場合、スケーラブルリフティング(非特許文献3で開示されているスケーラブル復号時のリフティング手法)を適用するかどうかを示すフラグ(lifting_scalability_enabled_flag)を含んでもよい。
【0107】
本実施形態では、lifting_scalability_enabled_flagが「0」の場合に、スケーラブルリフティングを実施せず、lifting_scalability_enabled_flagが「1」の場合に、スケーラブルリフティングを実施するものとする。
【0108】
本実施形態においては、Octree構造の各層の点数をシンタックスに規定する目的は、このスケーラブル復号が実施される際に、復号されていないn+1層目の点数を知ることにある。このことから、スケーラブルリフティングが使用されないとき(lifting_scalability_enabled_flag=0であるとき)、geom_recording_point_num_flagは必ず「0」に設定すると規定されていてもよい。
【0109】
(LoD算出部2090)
以下、
図11及び
図12を用いて、LoD算出部2090の処理内容の一例について説明する。
【0110】
LoD算出部2090は、幾何情報再構成部2040で生成される幾何情報を入力とし、LoD を生成するように構成されている。
【0111】
LoD構造の生成方法は、非特許文献1や非特許文献2の中で触れられているが、
図15に示すスケーラブル復号を実施する場合には、LoD構造における各層の点数を、Octree構造における各層の点数と一致させる必要がある。これは、スケーラブル復号を行う際に、Geometry(Octree)構造及びAttribute(LoD)構造に関して、それぞれ
図11のように、どの層までスキップしても点数が合致するようにするためである。
【0112】
かかるOctree構造及びLoD構造での点数の一致を実現するために、スケーラブルリフティングでは、LoD算出部2090は、Octree構造をベースとしたLoDを生成するように構成されている。
【0113】
参考に、符号化時のLoD構造の生成方法を記載すると、具体的には、
図12に示すように、幾何情報再構成部2040で得られた点群をLoD構造における最下層に配置し(ここでの下とは点が密な方向/ピラミッドの下方向である)、同じ親ノードを持つ位置のノードを1つの集合とし、その中から1個の点を代表として上の層のLoDに選出する。
【0114】
選ばれなかった点は、その層に残される。この動作を繰り返していくことによって、上位の層に選出される点の数は、Octree構造の同じ深さの層の点数に一致する。
点群復号装置200が、スケーラブル復号を行う場合には、中間の層から
図12における上部に向かって順番にLoDの生成を行うこととなるが、位置に関しては量子化誤差が発生するものの、どの点を上位に上げてLoDを構築するかというLoD構造自体は、中間の層から復号する場合でも同じように構築することが可能である。
【0115】
かかるLoD構造を形成する際に、上位に選出する点を選択する方法として、非特許文献1や非特許文献2のように、モートンコードの順序を基に、モートンコードが一番小さいもの/大きいものを選出する方法を採ってもよいし、或いは、文献B「[G-PCC]CE13.15 report on LoD generation with distance from centroid for spatial scalability(ISO/IEC JTC1/SC29/WG11 m53288)」に示すように、同じ親ノードに属する集団の中で重心を計算し、その重心に最も近い点を選出する方法を採ってもよい。
【0116】
また、上述のように、重心位置に基づくLoDの生成を実施するにあたり、点が2点の場合等は、重心位置が必ず点同士の中間になってしまい、重心に近い点を選択するのが難しいという問題がある。このような場合に、モートンコードの順番等に応じて、どちらかを選出することは可能であるが、必ずしも最適な点を選出できるとは限らない。
【0117】
そこで、ツリー合成部2020は、スケーラブル復号を実施する際に、SkipOctreeLayersで指定された層よりもさらに一段深い層まで復号し、重心が中間位置になる場合には、各点のさらにもう1層下に紐づく点の数を基に、数が多い方を上位のLoDに選択するようなLoDの生成の洗練化を行ってもよい。
【0118】
また、2層下にある点の重心位置に最も近い点を選出する方法や、1層下の重心位置及び2層下の重心位置に重みをつけて算出した重心位置に最も近いノードを選出する方法を採ってもよい。また、ツリー合成部2020は、1層下を復号するだけでなく、m層下まで復号して、その幾何情報を基にLoDの生成の洗練化してもよい。
【0119】
また、上述の点群符号化装置100及び点群復号装置200は、コンピュータに各機能(各工程)を実行させるプログラムであって実現されていてもよい。
【0120】
なお、上記の各実施形態では、本発明を点群符号化装置100及び点群復号装置200への適用を例にして説明したが、本発明は、かかる例のみに限定されるものではなく、点群符号化装置100及び点群復号装置200の各機能を備えた点群符号化/復号システムにも同様に適用できる。
【符号の説明】
【0121】
10…点群処理システム
100…点群符号化装置
200…点群復号装置
2010…幾何情報復号部
2020…ツリー合成部
2030…近似表面合成部
2040…幾何情報再構成部
2050…逆座標変換部
2060…属性情報復号部
2070…逆量子化部
2080…RAHT部
2090…LoD算出部
2100…逆リフティング部
2110…逆色変換部