JP2022056225A - 点群復号装置、点群復号方法及びプログラム - Google Patents

点群復号装置、点群復号方法及びプログラム Download PDF

Info

Publication number
JP2022056225A
JP2022056225A JP2020164123A JP2020164123A JP2022056225A JP 2022056225 A JP2022056225 A JP 2022056225A JP 2020164123 A JP2020164123 A JP 2020164123A JP 2020164123 A JP2020164123 A JP 2020164123A JP 2022056225 A JP2022056225 A JP 2022056225A
Authority
JP
Japan
Prior art keywords
value
flag
decoding
syntax
unit
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2020164123A
Other languages
English (en)
Inventor
恭平 海野
Kyohei UNNO
圭 河村
Kei Kawamura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
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 KDDI Corp filed Critical KDDI Corp
Priority to JP2020164123A priority Critical patent/JP2022056225A/ja
Priority to PCT/JP2021/035549 priority patent/WO2022071282A1/ja
Priority to CN202180054821.1A priority patent/CN116057933A/zh
Publication of JP2022056225A publication Critical patent/JP2022056225A/ja
Priority to US18/118,866 priority patent/US20230222699A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

【課題】不要なシンタックスの復号を省略し、ビット量を削減すること。【解決手段】本発明に係る点群復号装置200は、ビットストリームからPlanar modeを使用するか否かを示す第1フラグを復号し、第1フラグがビットストリームに含まれない場合、第1フラグの値をPlanar modeを使用しない場合と同じ値とみなすように構成されている幾何情報復号部2010を備える。【選択図】図2

Description

本発明は、点群復号装置、点群復号方法及びプログラムに関する。
非特許文献1には、Planar modeに関連する情報を復号する際にバッファを用いた最近傍ノード探索を行う技術が開示されている。
G-PCC Future Enhancement、ISO/IEC/ JTC1/SC29/WG11 N19328
しかしながら、非特許文献1では、Planar modeの使用の有無にかかわらず、Planar modeに関連する情報を復号する際にバッファを用いた最近傍ノード探索を行うか否かを制御するフラグが復号されるという問題点があった。
そこで、本発明は、上述の課題に鑑みてなされたものであり、不要なシンタックスの復号を省略し、ビット量を削減することができる点群復号装置、点群復号方法及びプログラムを提供することを目的とする。
本発明の第1の特徴は、点群復号装置であって、ビットストリームからPlanar modeを使用するか否かを示す第1フラグを復号し、前記第1フラグが前記ビットストリームに含まれない場合、前記第1フラグの値を前記Planar modeを使用しない場合と同じ値とみなすように構成されている幾何情報復号部を備えることを要旨とする。
本発明の第2の特徴は、点群復号方法であって、ビットストリームからPlanar modeを使用するか否かを示す第1フラグを復号する工程と、前記第1フラグが前記ビットストリームに含まれない場合、前記第1フラグの値を前記Planar modeを使用しない場合と同じ値とみなす工程とを有することを要旨とする。
本発明の第3の特徴は、点群復号装置で用いるプログラムであって、コンピュータに、ビットストリームからPlanar modeを使用するか否かを示す第1フラグを復号する工程と、前記第1フラグが前記ビットストリームに含まれない場合、前記第1フラグの値を前記Planar modeを使用しない場合と同じ値とみなす工程とを実行させることを要旨とする。
本発明によれば、不要なシンタックスの復号を省略し、ビット量を削減することができる点群復号装置、点群復号方法及びプログラムを提供することができる。
一実施形態に係る点群処理システム10の構成の一例を示す図である。 一実施形態に係る点群復号装置200の機能ブロックの一例を示す図である。 一実施形態に係る点群復号装置200の幾何情報復号部2010で受信する符号化データ(ビットストリーム)の構成の一例である。 一実施形態に係るGPS2011のシンタックス構成の一例である。 一実施形態に係るGSH2012A及び2012Bのシンタックス構成の一例である 一実施形態に係る点群復号装置200のツリー合成部2020の処理の一例を示すフローチャートである。 一実施形態に係る点群復号装置200の属性情報復号部2060で受信する符号化データ(ビットストリーム)の構成の一例である。 一実施形態に係るSPS2001のシンタックス構成の一例である。 一実施形態に係るAPS2061のシンタックス構成の一例である。
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態における構成要素は、適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
(第1実施形態)
以下、図1~図9を参照して、本発明の第1実施形態に係る点群処理システム10について説明する。図1は、本実施形態に係る実施形態に係る点群処理システム10を示す図である。
図1に示すように、点群処理システム10は、点群符号化装置100及び点群復号装置200を有する。
点群符号化装置100は、入力点群信号を符号化することによって符号化データ(ビットストリーム)を生成するように構成されている。点群復号装置200は、ビットストリームを復号することによって出力点群信号を生成するように構成されている。
なお、入力点群信号及び出力点群信号は、点群内の各点の位置情報と属性情報とから構成される。属性情報は、例えば、各点の色情報や反射率である。
ここで、かかるビットストリームは、点群符号化装置100から点群復号装置200に対して伝送路を介して送信されてもよい。また、ビットストリームは、記憶媒体に格納された上で、点群符号化装置100から点群復号装置200に提供されてもよい。
(点群復号装置200)
以下、図2を参照して、本実施形態に係る点群復号装置200について説明する。図2は、本実施形態に係る点群復号装置200の機能ブロックの一例について示す図である。
図2に示すように、点群復号装置200は、幾何情報復号部2010と、ツリー合成部2020と、近似表面合成部2030と、幾何情報再構成部2040と、逆座標変換部2050と、属性情報復号部2060と、逆量子化部2070と、RAHT部2080と、LoD算出部2090と、逆リフティング部2100と、逆色変換部2110とを有する。
幾何情報復号部2010は、点群符号化装置100から出力されるビットストリームの
うち、幾何情報に関するビットストリーム(幾何情報ビットストリーム)を入力とし、シンタックスを復号するように構成されている。
復号処理は、例えば、コンテキスト適応二値算術復号処理である。ここで、例えば、シンタックスは、位置情報の復号処理を制御するための制御データ(フラグやパラメータ)を含む。
ツリー合成部2020は、幾何情報復号部2010によって復号された制御データ及び後述するツリー内のどのノードに点群が存在するかを示すoccupancy codeを入力として、復号対象空間内のどの領域に点が存在するかというツリー情報を生成するように構成されている。
本処理は、復号対象空間を直方体で区切り、occupancy codeを参照して各直方体内に点が存在するかを判断し、点が存在する直方体を複数の直方体に分割し、occupancy codeを参照するという処理を再帰的に繰り返すことで、ツリー情報を生成することができる。
本実施形態では、上述の直方体を常に立方体として8分木分割を再帰的に行う「Octree」と呼ばれる手法、及び、8分木分割に加え、4分木分割及び2分木分割を行う「QtBt」と呼ばれる手法を使用することができる。「QtBt」を使用するか否かは、制御データとして点群符号化装置100側から伝送される。
或いは、制御データによってPredicitive codingを使用するように指定された場合、ツリー合成部2020は、点群符号化装置100において決定した任意のツリー構成に基づいて各点の座標を復号するように構成されている。
近似表面合成部2030は、ツリー合成部2020によって生成されたツリー情報を用いて、近似表面情報を生成するように構成されている。
近似表面情報は、例えば、物体の3次元点群データを復号する際等において、点群が物体表面に密に分布しているような場合に、個々の点群を復号するのではなく、点群の存在領域を小さな平面で近似して表現したものである。
具体的には、近似表面合成部2030は、例えば、「Trisoup」と呼ばれる手法で、近似表面情報を生成することができる。「Trisoup」の具体的な処理としては、例えば、非特許文献1に記載の方法を用いることができる。また、Lidar等で取得した疎な点群を復号する場合は、本処理を省略することができる。
幾何情報再構成部2040は、ツリー合成部2020によって生成されたツリー情報及び近似表面合成部2030によって生成された近似表面情報を元に、復号対象の点群データの各点の幾何情報(復号処理が仮定している座標系における位置情報)を再構成するように構成されている。
逆座標変換部2050は、幾何情報再構成部2040によって再構成された幾何情報を入力として、復号処理が仮定している座標系から、出力点群信号の座標系に変換を行い、位置情報を出力するように構成されている。
属性情報復号部2060は、点群符号化装置100から出力されるビットストリームのうち、属性情報に関するビットストリーム(属性情報ビットストリーム)を入力とし、シンタックスを復号するように構成されている。
復号処理は、例えば、コンテキスト適応二値算術復号処理である。ここで、例えば、シンタックスは、属性情報の復号処理を制御するための制御データ(フラグ及びパラメータ)を含む。
また、属性情報復号部2060は、復号したシンタックスから、量子化済み残差情報を復号するように構成されている。
逆量子化部2070は、属性情報復号部2060によって復号された量子化済み残差情報と、属性情報復号部2060によって復号された制御データの一つである量子化パラメータとを元に、逆量子化処理を行い、逆量子化済み残差情報を生成するように構成されている。
逆量子化済み残差情報は、復号対象の点群の特徴に応じて、RAHT部2080及びLoD算出部2090のいずれかに出力される。いずれに出力されるかは、属性情報復号部2060によって復号される制御データによって指定される。
RAHT部2080は、逆量子化部2070によって生成された逆量子化済み残差情報及び幾何情報再構成部2040によって生成された幾何情報を入力とし、RAHT(Region Adaptive Hierarchical Transform)と呼ばれるHaar変換(復号処理においては、逆Haar変換)の一種を用いて、各点の属性情報を復号するように構成されている。RAHTの具体的な処理としては、例えば、非特許文献1に記載の方法を用いることができる。
LoD算出部2090は、幾何情報再構成部2040によって生成された幾何情報を入力とし、LoD(Level of Detail)を生成するように構成されている。
LoDは、ある点の属性情報から、他のある点の属性情報を予測し、予測残差を符号化或いは復号するといった予測符号化を実現するための参照関係(参照する点及び参照される点)を定義するための情報である。
言い換えると、LoDは、幾何情報に含まれる各点を複数のレベルに分類し、下位のレベルに属する点については上位のレベルに属する点の属性情報を用いて属性を符号化或いは復号するといった階層構造を定義した情報である。
LoDの具体的な決定方法としては、例えば、非特許文献1に記載の方法を用いてもよい。
逆リフティング部2100は、LoD算出部2090によって生成されたLoD及び逆量子化部2070によって生成された逆量子化済み残差情報を用いて、LoDで規定した階層構造に基づいて各点の属性情報を復号するように構成されている。逆リフティングの具体的な処理としては、例えば、非特許文献1に記載の方法を用いることができる。
逆色変換部2110は、復号対象の属性情報が色情報であり且つ点群符号化装置100側で色変換が行われていた場合に、RAHT部2080又は逆リフティング部2100から出力される属性情報に逆色変換処理を行うように構成されている。かかる逆色変換処理の実行の有無については、属性情報復号部2060によって復号された制御データによって決定される。
点群復号装置200は、以上の処理により、点群内の各点の属性情報を復号して出力す
るように構成されている。
(幾何情報復号部2010)
以下、図3~図4を用いて幾何情報復号部2010で復号される制御データについて説明する。
図3は、幾何情報復号部2010で受信する符号化データ(ビットストリーム)の構成の一例である。
第1に、ビットストリームは、GPS2011を含んでいてもよい。GPS2011は、ジオメトリパラメータセットとも呼ばれ、幾何情報の復号に関する制御データの集合である。具体例については後述する。各GPS2011は、複数のGPS2011が存在する場合に個々を識別するためのGPS id情報を少なくとも含む。
第2に、ビットストリームは、GSH2012A/2012Bを含んでいてもよい。G
SH2012A/2012Bは、ジオメトリスライスヘッダ或いはジオメトリデータユニ
ットヘッダとも呼ばれ、後述するスライスに対応する制御データの集合である。以降では、スライスという呼称を用いて説明するが、スライスをデータユニットと読み替えることもできる。具体例については後述する。GSH2012A/2012Bは、各GSH20
12A/2012Bに対応するGPS2011を指定するためのGPS id情報を少な
くとも含む。
第3に、ビットストリームは、GSH2012A/2012Bの次に、スライスデータ
2013A/2013Bを含んでいてもよい。スライスデータ2013A/2013Bには、幾何情報を符号化したデータが含まれている。スライスデータ2013A/2013B
の一例としては、後述するoccupancy codeが挙げられる。
以上のように、ビットストリームは、各スライスデータ2013A/2013Bに、1
つずつGSH2012A/2012B及びGPS2011が対応する構成となる。
上述のように、GSH2012A/2012Bにて、どのGPS2011を参照するか
をGPS id情報で指定するため、複数のスライスデータ2013A/2013Bに対
して共通のGPS2011を用いることができる。
言い換えると、GPS2011は、スライスごとに必ずしも伝送する必要がない。例えば、図3のように、GSH2012B及びスライスデータ2013Bの直前では、GPS2011を符号化しないようなビットストリームの構成とすることもできる。
なお、図3の構成は、あくまで一例である。各スライスデータ2013A/2013B
に、GSH2012A/2012B及びGPS2011が対応する構成となっていれば、
ビットストリームの構成要素として、上述以外の要素が追加されてもよい。例えば、図3に示すように、ビットストリームは、シーケンスパラメータセット(SPS)2001を含んでいてもよい。また、同様に、伝送に際して、図3と異なる構成に整形されてもよい。更に、後述する属性情報復号部2060で復号されるビットストリームと合成して単一のビットストリームとして伝送されてもよい。
図4は、GPS2011のシンタックス構成の一例である。
なお、以下で説明するシンタックス名は、あくまで一例である。以下で説明したシンタックスの機能が同様であれば、シンタックス名は異なっていても差し支えない。
GPS2011は、各GPS2011を識別するためのGPS id情報(gps_g
eom_parameter_set_id)を含んでもよい。
なお、図4のDescriptor欄は、各シンタックスが、どのように符号化されているかを意味している。ue(v)は、符号無し0次指数ゴロム符号であることを意味し、u(1)は、1ビットのフラグであることを意味する。
GPS2011は、ツリー合成部2020でPredicitive codingを使用するかどうかを制御するためのフラグ(geom_tree_type)を含んでもよい。
例えば、geom_tree_typeの値が「1」の場合は、Predicitive
codingを使用すると定義し、geom_tree_typeの値が「0」の場合は、Predicitive codingを使用せず,代わりに「Octree」(「QtBt」を使用する場合も含む)を使用するように定義されていてもよい。
GPS2011は、近似表面合成部2030においてTrisoupを用いるか否かを制御するフラグ(trisoup_enabled_flag)を含んでもよい。
例えば、trisoup_enabled_flagの値が「1」の場合は、Trisoupを使用すると定義し、trisoup_enabled_flagの値が「0」の場合は、Trisoupを使用しないように定義されていてもよい。
GPS2011は、Trisoupを使用しないとき、すなわち、trisoup_e
nabled_flagの値が「0」の場合、追加でDirect coding mo
deを使用するか否かを制御するフラグ(inferred_direct_coding_mode_enabled_flag)を含んでもよい。
例えば、inferred_direct_coding_mode_enabled_flagの値が「1」の場合は、Direct coding modeを使用すると定義し、inferred_direct_coding_mode_enabled_flag
の値が「0」の場合は、Direct coding modeを使用しないように定義されていてもよい。
GPS2011は、ツリー合成部2020で「QtBt」を行うかどうかを制御するためのフラグ(geom_tree_coded_axis_list_present_flag)を含んでもよい。
例えば、geom_tree_coded_axis_list_present_flagの値が「1」の場合は、「QtBt」を行うと定義し、geom_tree_coded_
axis_list_present_flagの値が「0」の場合は、「Octree」
のみを行うと定義してもよい。
或いは、geom_tree_coded_axis_list_present_flagの値が「1」の場合は、ノード形状として立方体以外の直方体も許容する(すなわち、「QtBt」も使用する)と定義し、geom_tree_coded_axis_list_
present_flagの値が「0」の場合は、ノード形状として立方体のみ許可する
(すなわち「Octree」のみを行う)と定義してもよい。
上述の定義以外でも、「QtBt」が使用可能か否かを制御するように定義されていればよい。
GPS2011は、ツリー合成部2020でPlanar modeを使用するかどうかを制御するフラグ(geometry_planar_mode_flag)を含んでも
よい。
例えば、geometry_planar_mode_flagの値が「1」の場合は、
Planar modeを使用すると定義し、geometry_planar_mode_flagの値が「0」の場合は、Planar modeを使用しないように定義され
ていてもよい。
geometry_planar_mode_flagが含まれていなかった場合、幾何
情報復号部2010は、geometry_planar_mode_flagの値を「0
」とみなし、すなわち、Planar modeを使用しないとみなすように構成されていてもよい。
なお、trisoup_enabled_flag、inferred_direct_coding_mode_enabled_flag、geometry_planar_mo
de_flag及びgeom_tree_coded_axis_list_present_
flagは、Predicitive codingを使用しない場合のみ復号されるように定義されていてもよい。
GPS2011は、Angular modeを使用するか否かを制御するフラグ(geometry_angular_mode_flag)を含んでもよい。
例えば、geometry_angular_mode_flagの値が「1」の場合は
、Angular modeを使用すると定義し、geometry_angular_mode_flagの値が「0」の場合は、Angular modeを使用しないように
定義されていてもよい。
GPS2011は、Angular modeが使用する場合で且つPlanar modeを使用する場合に、追加でplanar_buffer_disabled_fla
gを含んでもよい。
ここで、planar_buffer_disabled_flagの値が「0」の場合
は、Planar modeに関連する情報を復号する際にバッファを用いた最近傍ノード探索を行うと定義されていてもよい。
一方、planar_buffer_disabled_flagの値が「1」の場合は
、Planar modeに関連する情報を復号する際にバッファを用いた最近傍ノード探索を行わないと定義されていてもよい。
planar_buffer_disabled_flagが含まれていなかった場合、
幾何情報復号部2010は、planar_buffer_disabled_flagの
値を「1」とみなし、すなわち、Planar modeに関連する情報を復号する際にバッファを用いた最近傍ノード探索を行わないように構成されていてもよい。
planar_buffer_disabled_flagの値が「0」の場合、すなわ
ち、Planar modeに関連する情報を復号する際にバッファを用いた最近傍ノー
ド探索を行う場合の具体的な動作については、例えば、非特許文献1に記載の動作と同じでもよい。
以上のように、ビットストリームからPlanar modeを使用するか否かを示すフラグを復号し、前記フラグがビットストリームに含まれない場合、前記フラグの値をPlanar modeを使用しない場合と同じ値とみなすように構成されていてもよい。
このような構成とすることで、Planar modeを使用するか否かを示すフラグが復号されない場合、例えばPredicitive codingを使用する場合(geom_tree_typeの値が「1」の場合)にも、Planar modeを使用しないことを明示的に定義することができ、意図しない誤動作(Predicitive
codingを使用する場合にもPlanar modeに関する一部の処理が実行されてしまうこと)を防ぐことができる。
また、以上のように、Planar modeを使用するか否かを示すフラグが、Planar modeを使用することを示している場合、Planar modeに関連する情報を復号する際にバッファを用いた最近傍ノード探索を行うか否かを制御するフラグを復号するように構成されていてもよい。
このような構成とすることで、Planar modeを使用しない場合、すなわち、geom_tree_typeの値が「1」の場合、及び、geom_tree_typeの値が「0」かつgeometry_planar_mode_flagの値が「0」の
場合の両方について、単一の条件でPlanar modeに関連する情報を復号する際にバッファを用いた最近傍ノード探索を行うか否かを制御するフラグを復号しないようにすることができ、GPSのビット量及び復号に係る処理量を削減できる。
また、以上のように、前記Planar modeに関連する情報を復号する際にバッファを用いた最近傍ノード探索を行うか否かを制御するフラグを復号しなかった場合、前記フラグの値をPlanar modeに関連する情報を復号する際にバッファを用いた最近傍ノード探索を行わない場合と同じ値とみなすように構成されていてもよい。
このような構成とすることで、Planar modeに関連する情報を復号する際にバッファを用いた最近傍ノード探索を行わないことを明示的に定義することができ、意図しない誤動作を防ぐことができる。
GPS2011は、位置情報の量子化(復号観点では逆量子化)を行うか否かを制御するフラグ(geom_scaling_enabled_flag)を含んでもよい。例えば、geom_scaling_enabled_flagの値が「1」の場合は逆量子化を行い、geom_scaling_enabled_flagの値が「0」の場合は逆量子化を行わないように定義されていてもよい。
GPS2011は、逆量子化を行う場合、例えばgeom_scaling_enabled_flagの値が「1」の場合、追加で逆量子化を行う際の量子化パラメータ(QP)のベース値を示すシンタックス(geom_base_qp)を含んでもよい。GPS2011にgeom_base_qpが含まれないとき、その値を「0」とみなすように定義されていてもよい。
GPS2011は、逆量子化を行う場合、例えばgeom_scaling_enabled_flagの値が「1」の場合、追加でgeom_qp_multiplier_log2を含んでもよい。当該シンタックスの値は、0~3の整数値をとるように規定さ
れていてもよい。当該シンタックスの使用例については後述する。
GPS2011は、逆量子化を行う場合、かつ、Predictive codingを使用する場合、すなわち、例えばgeom_scaling_enabled_flagの値が「1」で、かつ、geom_tree_typeの値が「1」の時、追加で量子化パラメータのオフセット値を伝送する間隔を規定するシンタックス(geom_qp_offset_intvl_log2)を含んでもよい。本シンタックスのとり得る値の
範囲として、0以上であること、という制約を含んでもよい。また、本シンタックスのとり得る値の範囲として、プロファイルまたはレベルごとに定義された、1スライス(1データユニット)に含まれるノード数の最大値(例えば、非特許文献1の「Max poi
nts in a slice」)以下であること、という制約を含んでもよい。また、g
eom_qp_offset_intvl_log2が実際の伝送間隔について2を底と
する対数をとった後の値である場合、最大値は例えば「Max points in a slice」について2を底とする対数をとった値としてもよい。
また、geom_qp_offset_intvl_log2の値が、「0」以上かつ
「Max points in a slice」について2を底とする対数をとった値以下となるように、当該シンタックスを復号した後に、以下のクリッピング処理を行ってもよい。
geom_qp_offset_intvl_log2 = Min(Max(geom_q
p_offset_intvl_log2,0),log2(Max points in a slice))
ここで、Min()は引数の中で最小値を返す関数、Max()は引数の中で最大値を返す関数である。
geom_qp_offset_intvl_log2の値を用いた処理の一例を以下で説明する。
第一に、以下のようにPtnQpIntervalを計算する。
PtnQpInterval = 1 << geom_qp_offset_intvl_log2
第二に、Predictive codingにおいて、点群データの各点の位置情報を順に復号する際に、PtnQpInterval点おきに、位置情報の残差の逆量子化に用いる量子化パラメータのオフセット値を復号する。すなわち、n番目に復号する点の、nをPtnQpIntervalで除算した剰余が0の時、前記量子化パラメータのオフセット値を復号する。
第三に、前記量子化パラメータのオフセット値、geom_base_qp、後述するgeom_slice_qp_offsetの3つの値全てを加算して量子化パラメータを算出し、逆量子化処理を行う。
なお、Predictive codingは、復号側で推定した位置情報の予測値と、符号化側から伝送される位置情報の残差を加算することで、各点の位置情報を復号する手法である。詳細は非特許文献1に記載されているため割愛する。
以上のように、幾何情報復号部2010は、量子化パラメータのオフセット値を伝送する間隔を規定するシンタックスについて、かかるシンタックスの値が必ず「0」以上となるように復号するように構成されていてもよい。
すなわち、幾何情報復号部2010によって復号される量子化パラメータのオフセット値を伝送する間隔を規定するシンタックスの値は、「0」以上となるように構成されている。
このような構成とすることで、ノード間の間隔が負であるという実現不可能なビットストリームが発生しないようにすることができる。
また、以上のように、仕様の制約として1スライス或いは1データユニットあたりの最大ノード数が規定されている場合、幾何情報復号部2010は、量子化パラメータのオフセット値を伝送する間隔を規定するシンタックスについて、かかるシンタックスの値が必ず1スライス或いは1データユニットあたりの最大ノード数以下となるように復号するように構成されていてもよい。
すなわち、幾何情報復号部2010によって復号される量子化パラメータのオフセット値を伝送する間隔を規定するシンタックスの値は、1スライス或いは1データユニットあたりの最大ノード数以下となるように構成されていてもよい。
このように、量子化パラメータのオフセット値を伝送する間隔を規定するシンタックスの値として取り得る値の最大値を定義することで、かかるシンタックスの復号に必要なビット数の最大値を定義することができ、GPS全体のビット長の最大値を規定するための一助となる。
また、かかるシンタックスの最大値を1スライス或いは1データユニットあたりの最大ノード数以下となるように制約することで、ノード間の間隔が1スライス或いは1データユニットあたりの最大ノード数以上となるような実効的に無意味なビットストリームとなることを防ぐことができる。
GPS2011は、逆量子化を行う場合、Predictive codingを使用しない場合(Octreeを使用する場合)で且つDirect coding modeを使用する場合、すなわち、例えば、geom_scaling_enabled_fl
agの値が「1」で、geom_tree_typeの値が「0」で且つinferred_direct_coding_mode_enabled_flagの値が「1」の場合、
追加でDirect coding mode時の量子化パラメータのオフセット値(geom_direct_coding_mode_qp_offset)を含んでもよい。
GPS2011に、geom_direct_coding_mode_qp_offse
tが含まれない場合、幾何情報復号部2010は、geom_direct_coding_mode_qp_offsetの値を「0」とみなすように構成されていてもよい。
図5は、GSH2012A及び2012Bのシンタックス構成の一例である。以降、GSH2012A及び2012BをまとめてGSH2012と呼ぶ。
なお、以下で説明するシンタックス名は、あくまで一例である。以下で説明したシンタックスの機能が同様であれば、シンタックス名は異なっていても差し支えない。
GSH2012は、かかるGSHに対応するGPSを識別するためのシンタックス(gsh_geometry_parameter_set_id)を含んでもよい。
GSH2012は、対応するGPSにおいてOctreeを使用すると定義されていた場合、すなわち、例えば、geom_tree_typeの値が「0」の場合、Octre
eを復号する際のツリーの階層数を示すシンタックス(geom_tree_depth_
minus1)を含んでもよい。
例えば、geom_tree_depth_minus1の値は、実際の階層数から「1」を引いた値としておき、幾何情報復号部2010は、geom_tree_depth_m
inus1の値に「1」を加えることで、最終的な階層数を復号するように構成されてい
てもよい。
また、Octreeを復号する際のツリーの階層数を示すシンタックスの取り得る値の範囲として、「0」以上であることという制約が規定されていてもよい。
GPSにおいて「QtBt」を用いないと定義されている場合、すなわち、geom_
tree_coded_axis_list_present_flagの値が「0」の場合
、本シンタックスの取り得る値の範囲として、プロファイル又はレベルごとに定義されたノードサイズの最大値について2を底とする対数を取った値(例えば、非特許文献1の「MaxRootNodeDimLog2」)を用いて、MaxRootNodeDimLog2-1以下であることという制約が規定されていてもよい。
GPSにおいて「QtBt」を用いると定義されている場合、すなわち、geom_t
ree_coded_axis_list_present_flagの値が「1」の場合、
本シンタックスの取り得る値の範囲として、プロファイル又はレベルごとに定義されたノードサイズの最大値について2を底とする対数を取った値(例えば、非特許文献1の「MaxRootNodeDimLog2」)を用いて、MaxRootNodeDimLog2-1+N(Nは、自然数)以下であることという制約が規定されていてもよい。例えば、Nの値は、「4」でもよい。或いは,最大値をMaxRootNodeDimLog2+Nと規定してもよい。例えば、Nの値は「3」でもよい。
また、geom_tree_depth_minus1の値が、「0」以上且つ「Max
RootNodeDimLog2-1+N」以下となるように、当該シンタックスを復号した後に、幾何情報復号部2010は、以下のクリッピング処理を行ってもよい。
geom_tree_depth_minus1 = Min(Max(geom_tree_depth_minus1,0),MaxRootNodeDimLog2-1+N)
ここで、Min()は、引数の中で最小値を返す関数であり、Max()は、引数の中で最大値を返す関数である。
以上のように、仕様の制約として1スライス或いは1データユニットあたりの最大ノードサイズを規定されている場合、幾何情報復号部2010は、Octreeを復号する際のツリーの階層数を示すシンタックスの値が、必ず、上述の最大ノードサイズに所定の自然数を加えた値以下となるように復号するように構成されていてもよい。
すなわち、幾何情報復号部2010によって復号されるOctreeを復号する際のツリーの階層数を示すシンタックスの値は、上述の最大ノードサイズに所定の自然数を加えた値以下となるように構成されていてもよい。
このような構成とすることで、プロファイル又はレベルごとに定義されたノードサイズの最大値に応じて、必要最小限の範囲で、上述のシンタックスの値を定義することができ、かかるシンタックスに必要なビット数の最大値を必要最小限の値に抑えることができる。
また、以上のように、幾何情報復号部2010は、「QtBt」を適用するか否かを示すフラグを復号し、かかるフラグが「QtBt」を適用することを示す場合には、Octreeを復号する際のツリーの階層数を示すシンタックスの値が、必ず、上述の最大ノードサイズに所定の自然数を加えた値以下となるように復号し、かかるフラグが「QtBt」を適用しないことを示す場合には、Octreeを復号する際のツリーの階層数を示すシンタックスの値が、必ず、上述の最大ノードサイズ以下となるように復号するように構成されていてもよい。
すなわち、上述のフラグが「QtBt」を適用することを示す場合には、幾何情報復号部2010によって復号されるOctreeを復号する際のツリーの階層数を示すシンタックスの値は、上述の最大ノードサイズに所定の自然数を加えた値以下となり、かかるフラグが「QtBt」を適用しないことを示す場合には、幾何情報復号部2010によって復号されるOctreeを復号する際のツリーの階層数を示すシンタックスの値は、上述の最大ノードサイズ以下となるように構成されていてもよい。
このような構成とすることで、「QtBt」を適用する場合には、Depthごとにノードを分割する軸方向の選択に自由度を持たせつつ、全体のDepth数の最大値を押さえることができ、かかる仕様を反映した装置を実装する場合の最大処理量の見積もりが容易となる。
また、「QtBt」を適用しない場合には、ノード数の最大値とDepth数とを一致させることで、必要最小限の範囲で、かかるシンタックスの値を定義することができ、かかるシンタックスに必要なビット数の最大値を必要最小限の値に抑えることができる。
GSH2012は、GPSにおいて位置情報の逆量子化を行うと定義されている場合、すなわち、例えば、geom_scaling_enabled_flagの値が「1」の
場合、量子化パラメータのスライス単位でのオフセット値(geom_slice_qp_
offset)を含んでもよい。
GSH2012に、geom_slice_qp_offsetが含まれない場合、幾何
情報復号部2010は、geom_slice_qp_offsetの値を「0」とみなす
ように構成されていてもよい。
GSH2012は、GPSにおいて位置情報の逆量子化を行うと定義されている場合で且つGPSにおいてOctreeを使用するように定義されている場合、すなわち、例えば、geom_scaling_enabled_flagの値が「1」で且つgeom_tree_typeの値が「0」の場合、位置情報の量子化パラメータのオフセット値を用
いるツリーの階層(depth)を定義するシンタックス(geom_octree_qp_offsets_depth)を含んでもよい。
GSH2012は、GPSにおいてTrisoupを使用すると定義されている場合、すなわち、例えば、trisoup_enabled_flagの値が「1」の場合、Trisoupを適用するノードサイズを示すシンタックス(log2_trisoup_node_size)を含んでもよい。
かかるシンタックスは、Trisoupを適用するノードサイズに対して、2を底とする対数をとった値と定義してもよい。
また、かかるシンタックスの取り得る値の範囲として、「0」以上であることという制約が規定されていてもよい。
かかるシンタックスの取り得る値の範囲として、プロファイル又はレベルごとに定義されたノードサイズの最大値について2を底とする対数を取った値(例えば、非特許文献1の「MaxRootNodeDimLog2」)以下であることという制約が規定されていてもよい。
また、かかるシンタックスの取り得る値の範囲として、当該スライス(或いは、データユニット)のルートノードサイズついて2を底とする対数を取った値以下であることという制約が規定されていてもよい。ルートノードサイズについては、例えば、非特許文献1に記載のように、geom_tree_coded_axis_flagを用いて算出できる。
また、log2_trisoup_node_sizeの値が「0」以上且つルートノー
ドサイズ以下となるように、かかるシンタックスを復号した後に、幾何情報復号部2010は、以下のクリッピング処理を行ってもよい。
log2_trisoup_node_size = Min(Max(log2_trisoup_node_size,0),log2(RootNodeSize))
ここで、Min()は、引数の中で最小値を返す関数であり、Max()は、引数の中で最大値を返す関数である。また、RootNodeSizeは、ルートノードサイズを表す変数である。
以上のように、幾何情報復号部2010は、Trisoupを適用するノードサイズを示すシンタックスの値が、必ず当該スライス或いは当該データユニットの最大ノードサイズ以下となるように復号するように構成されていてもよい。
すなわち、幾何情報復号部2010によって復号されるTrisoupを適用するノードサイズを示すシンタックスの値は、当該スライス或いは当該データユニットの最大ノードサイズ以下となるように構成されていてもよい。
このような構成とすることで、プロファイル又はレベルごとに定義されたノードサイズの最大値に応じて、必要最小限の範囲で、上述のシンタックスの値を定義することができ、かかるシンタックスに必要なビット数の最大値を必要最小限の値に抑えることができる。
以上のように、幾何情報復号部2010は、Trisoupを適用するノードサイズを示すシンタックスの値が、必ず当該スライス或いは当該データユニットのルートノードサイズ以下となるように復号するように構成されていてもよい。
すなわち、幾何情報復号部2010によって復号されるTrisoupを適用するノードサイズを示すシンタックスの値は、当該スライス或いは当該データユニットのルートノードサイズ以下となるように構成されていてもよい。
このような構成とすることで、スライス或いはデータユニットごとにルートノードサイズに応じて、必要最小限の範囲で、上述のシンタックスの値を定義することができ、かかるシンタックスに必要なビット数の最大値を必要最小限の値に抑えることができる。
(ツリー合成部2020)
図6を用いて、ツリー合成部2020の処理の一例を説明する。図6は、ツリー合成部2020の処理の一例を示すフローチャートである。
図6に示すように、ステップS601において、ツリー合成部2020は、「Octree」又は「QtBt」を適用する場合のツリー構造について、全てのDepthの処理を完了したかどうかを確認する。
かかるスライスのDepthの値は、例えば、GSHで伝送されるgeom_tree_depth_minus1から復号した階層数である。ツリー合成部2020は、かかる
スライスのDepth値と既に処理したDepthの値とを比較することで、全てのDepthについて処理が完了したかどうかを判定することができる。
ツリー合成部2020は、全てのDepthの処理が完了した場合には、ステップS607の処理へ進み、処理を終了する。一方、ツリー合成部2020は、全てのDepthの処理が完了していない場合は、ステップS602の処理へ進む。
ステップS602において、ツリー合成部2020は、当該Depth内の全てのノードについて処理が完了したかどうかを判定する。
当該Depth内に含まれるノード数については、直前に処理したDepthでのノード情報復号処理(ステップS606)の結果から算出することができる。また、最初に処理するDepthに含まれるノード数は「1」である。
ツリー合成部2020は、当該Depthに含まれる全ノードの処理が完了した場合には、ステップS601の処理へ戻る。一方、ツリー合成部2020は、全ノードの処理が完了していない場合には、ステップS603の処理へ進む。
ステップS603において、ツリー合成部2020は、後段のステップS605の処理で用いるnodeQpOffsetを復号するか否かを判定する。
ツリー合成部2020は、予め定めた所定条件を全て満足する場合、S604の処理へ進み、nodeQpOffsetを復号する。一方、ツリー合成部2020は、予め定めた所定条件を1つでも満たさない場合は、nodeQpOffsetの復号を省略し、ステップS605の処理へ進む。
かかる所定条件は、当該depthの値がGeomScalingDepthと等しいことという条件を含んでもよい。
GeomScalingDepthの値は、例えば、GPSにおいて位置情報の逆量子化を行うと定義されているか否かに応じて設定されてもよい。
geom_scaling_enabled_flagの値が「1」の場合は、Geom
ScalingDepthの値をgeom_octree_qp_offsets_depthと同じ値とし、geom_scaling_enabled_flagの値が「0」の場
合は、GeomScalingDepthの値を「0」とするように定義されていてもよい。
また、所定条件には、GPSにおいて位置情報の逆量子化を行うと定義されていること、すなわち、例えば、geom_scaling_enabled_flagの値が「1」
であることという条件を含んでもよい。
ステップS604において、ツリー合成部2020は、nodeQpOffsetを復
号する。
ここで、第1に、ツリー合成部2020は、nodeQpOffsetの値が「0」であるか否かを示すシンタックス(geom_node_qp_offset_eq0_fla
g)を復号する。
第2に、ツリー合成部2020は、geom_node_qp_offset_eq0_f
lagの値が「0」の場合、追加でnodeQpOffsetの符号(プラスかマイナスか)を示すシンタックス(geom_node_qp_offset_sign_flag)
及びnodeQpOffsetの絶対値を示すシンタックス(geom_node_qp_
offset_abs_minus1)を復号する。
第3に、ツリー合成部2020は、以上で復号したシンタックスを用いて、nodeQpOffsetの値を復号する。ツリー合成部2020は、geom_node_qp_o
ffset_eq0_flagの値が「1」の場合、nodeQpOffsetの値を「0」とする。ツリー合成部2020は、geom_node_qp_offset_eq0_f
lagの値が「0」の場合、以下のように復号する。
nodeQpOffset = (2×geom_node_qp_offset_sign_
flag―1)×(geom_node_qp_offset_abs_minus1+1)
なお、ステップS604の処理がスキップされた場合、すなわち、geom_node_qp_offset_eq0_flagが復号されなかった場合は、ツリー合成部2020
は、geom_node_qp_offset_eq0_flagの値を「1」であるとみな
してもよい。すなわち、ステップS604の処理がスキップされた場合、ツリー合成部2020は、nodeQpOffsetの値を「0」とみなしてもよい。
以上のように、ツリー合成部2020は、ビットストリームから位置情報の逆量子化を行うか否かを示すフラグを復号し、かかるフラグが位置情報の逆量子化を行わないことを示す場合、ノード毎の量子化パラメータのオフセット値nodeQpOffsetの値を「0」とするように構成されていてもよい。
このような構成とすることで、逆量子化を行わない場合は、常にnodeQpOffsetの値を「0」にすることができ、後述するNodeQpの値が「0」、すなわち、逆量子化を行わない値になることを保証するのが容易となる。
また、以上のように、位置情報の逆量子化を行うか否かを示すフラグが位置情報の逆量子化を行わないことを示す場合、ツリー合成部2020は、上述のnodeQpOffsetに関するシンタックスの復号処理を省略するように構成されていてもよい。
このような構成とすることで、位置情報の逆量子化を行わない場合に、不要な復号処理を省略し、処理量を削減することができる。
また、以上のように、ツリー合成部2020は、nodeQpOffsetに関するシンタックスの1つとして、nodeQpOffsetの値が「0」であるか否かを示すフラグを復号し、かかるフラグの復号が省略された場合、かかるフラグの値をnodeQpOffsetの値が「0」であることを示す値とみなすように構成されていてもよい。
このような構成とすることで、nodeQpOffsetの値が「0」であるか否かを示すフラグの復号が省略されたとき、すなわち、逆量子化を行わない場合は、常にnodeQpOffsetの値を「0」にすることができ、後述するNodeQpの値が「0」、すなわち、逆量子化を行わない値になることを保証するのが容易となる。
以上の手順でnodeQpOffsetの値を復号した後、ツリー合成部2020は、ステップS605へ進む。
ステップS605において、ツリー合成部2020は、NodeQpの値を復号する。
第1に、ツリー合成部2020は、現在のdepthがGeomScalingDepthと等しい場合、以下の式でNodeQpの値を算出してもよい。
NodeQp = (geom_base_qp+geom_slice_qp_offset
+nodeQpOffset)<< geom_qp_multiplier_log2
ここで、GPSにおいて位置情報の逆量子化を行わないと定義されている場合、すなわち、geom_scaling_の値が「0」の場合は、NodeQpの値が「0」となるように定義されていてもよい。
GPSにおいて位置情報の逆量子化を行わないと定義されている場合、すなわち、geom_scaling_enabled_flagの値が「0」の場合は、geom_base_qp、geom_slice_qp_offset、nodeQpOffsetのそれぞれの値が「0」となるように定義されていてもよい。
NodeQpの値は、必ず0以上であることというコンフォーマンス制約をビットストリームに対して定義してもよい。
また、ツリー合成部2020は、NodeQpの値が必ず0以上になるように、NodeQpを以下の式で算出してもよい。
NodeQp = Max(geom_base_qp+geom_slice_qp_off
set+nodeQpOffset,0)<< geom_qp_multiplier
_log2

ここで、Max()は、引数のうち、最も大きい値を返す関数である。
第2に、ツリー合成部2020は、現在のdepthがGeomScalingDepthより大きい場合、NodeQpの値について、当該ノードの親ノード、すなわち、depthが当該ノードより1つ小さいときに使用したNodeQpと同じ値と定義してもよい。
第3に、ツリー合成部2020は、現在のdepthがGeomScalingDepthより小さい場合、以下の式でNodeQpの値を算出してもよい。
dcmQp = (geom_base_qp + geom_direct_coding_mode_qp_offset) << geom_qp_multiplier_log2
NodeQp = Min(minScalingNodeDimLog2×8, dcmQp)
ここで、Min()は、引数のうち、最も小さい値を返す関数である。また、minScalingNodeDimLog2は、当該depthにおけるノードサイズを定義する3つの軸方向(例えば、x軸、y軸、z軸)のうち、最もサイズが小さい軸方向のサイズに対して2を底とする対数を取った値である。
ここで、GPSにおいて位置情報の逆量子化を行わないと定義されている場合、すなわち、geom_scaling_enabled_flagの値が「0」の場合は、Nod
eQpの値が「0」となるように定義されていてもよい。
GPSにおいて位置情報の逆量子化を行わないと定義されている場合、すなわち、geom_scaling_enabled_flagの値が「0」の場合は、geom_base_qp、geom_direct_coding_mode_qp_offsetのそれぞれの値が「0」となるように定義されていてもよい。
NodeQpの値は、必ず0以上であることというコンフォーマンス制約をビットストリームに対して定義してもよい。
すなわち、ツリー合成部2020は、NodeQpの値が「0」未満である場合、仕様に反したビットストリームであると判定してもよい。
また、ツリー合成部2020は、NodeQpの値が必ず「0」以上になるように、NodeQpを以下の式で算出してもよい。
NodeQp = Max(Min(minScalingNodeDimLog2×8, dcmQp),0)
以上のようにして求めたNodeQpは、位置情報の逆量子化処理に用いられる。逆量子化処理は、例えば、以下のように実行することができる。なお、GPSにおいて位置情報の逆量子化を行わないと定義されている場合、すなわち、geom_scaling_enabled_flagの値が「0」の場合は、以下のような逆量子化処理を行わないよ
うに構成されていてもよい。
第1に、ツリー合成部2020は、逆量子化前のノードの座標値val(x成分、y成分、z成分のいずれか)を、以下のようにhighPartとlowPartに分離する。
highPart = val >> (ScalingNodeSizeLog2[cIdx]―scalingExpansionLog2)
lowPart = val & ((1 << (ScalingNodeSizeLog2[cIdx]―scalingExpansionLog2))―1)
ここで、ScalingNodeSizeLog2[cIdx]は、cIdxの値に対応する軸方向(x方向、y方向、z方向のいずれか)の量子化前のノードサイズについて2を底とする対数を取った値である。また、scalingExpansionLog2は、NodeQpを8で整数除算した値である。すなわち、scalingExpansionLog2は、NodeQpを4で除算した後、得られた商の小数点以下を切り捨てて整数にした値である。
第2に、ツリー合成部2020は、スケールファクターsFを以下の式で算出する。
sF = 8+(qP & 7) << qP/8
ここで、qPの値は、NodeQpと同じ値である。また、&は、ビットごとの論理積を算出する演算子である。すなわち、qP&3は、qPの値を2進数で表現した場合の下位2桁を抽出する処理に等しい。
なお、上記のように、qPの値と論理積を取る場合や、qPから算出した値に応じてビットシフトを行うように定義されている場合、qPの値、すなわち、NodeQpの値は、「0」以上の整数であることが期待される。
第3に、ツリー合成部2020は、以下の式で逆量子化後の座標値posを算出する。
highPartS = highPart << ScalingNodeSizeLog2[cIdx]
lowPartS = (lowPart × sF + 4) >> 3
pos = highPartS | Min(lowPartS, (1 << ScalingNodeSizeLog2「cIdx」)―1)
ここで、|は、ビット単位での論理和をとる演算子である。
以上の逆量子化処理では、qPの値、すなわち、NodeQpの値が「0」の場合、入力値val及び出力値posが同じ値となる。なお、GPSにおいて位置情報の逆量子化を行わないよう規定されている場合、すなわち、例えば、geom_scaling_enabled_flagの値が「0」の場合、以上の逆量子化処理をスキップしてもよい。
また、上記のように、GPSにおいて位置情報の逆量子化を行わないよう規定されている場合、すなわち、例えば、geom_scaling_enabled_flagの値が「
0」の場合、NodeQpの値が必ず「0」となるように規定されていてもよい。
以上のように、ツリー合成部2020は、ノード毎の量子化パラメータNodeQpの値が、必ず所定値以上又は所定値より大きくなるように復号するように構成されていてもよい。
例えば、後段の処理がNodeQpの値が所定値以上又は所定値より大きくなることを前提としている場合、このような構成とすることで復号処理全体の整合性を保つことができる。
また、以上のように、ツリー合成部2020は、NodeQpの値を算出した後、所定値以上又は所定値より大きくなるようにクリッピング処理を行うように構成されていてもよい。
このような構成とすることで、geom_base_qp等のパラメータ値の値によらず、必ずNodeQpの値を所定値以上又は所定値より大きくなるように保証することができる。
また、ツリー合成部2020は、以上のように、NodeQpの値が、所定値未満又は所定値以下の場合に、仕様に違反していると判定するように構成されていてもよい。
このような構成とすることで、クリッピング等の追加処理を用いなくても、仕様に準拠したビットストリームであれば、NodeQpの値が所定値以又は所定値より大きくなるように保証することができる。
また、以上のように、上述の所定値は「0」であるように構成されていてもよい。
例えば、後段の処理がNodeQpの値が「0」以上であることを前提としている場合、このような構成とすることで復号処理全体の整合性を保つことができる。
更に、NodeQpの値が「0」の場合は、逆量子化処理を行わない場合と同様の処理結果と同じとなるように構成されている場合、NodeQpの値の範囲に「0」を含むことで、NodeQpの値だけで逆量子化処理の実行要否を判定することができる。
以上のようにNodeQpを算出した後、ツリー合成部2020は、ステップS606
へ進む。
ステップS606において、ツリー合成部2020は、「Octree」を用いる場合は、ノードを8分割で子ノードに分割し、「QtBt」を用いる場合は、かかるノードを8分割、4分割又は2分割のいずれかで子ノードに分割し、Occupancy code等の情報に基づいて、各子ノードに点群データが含まれるかどうかを示すOccupancy mapを復号する。
例えば、Occupancy mapの値が「1」の場合は、対応する子ノード内に点群データが存在すると定義できる。また、例えば、Occupancy mapの値が「0」の場合は、対応する子ノード内に点群データが存在しないか或いは当該子ノード自体が存在しないと定義できる。
よって、ツリー合成部2020は、同一のDepth内でOccupancy mapの値が「1」となっている子ノードの数をカウントすることで、次に処理するDepth内のノード数を知ることができる。
ツリー合成部2020は、1つのノードについてOccupancy mapの生成が完了したら、ステップS602の処理へ戻る。
(属性情報復号部2060)
以下、図7~図9を用いて、属性情報復号部2060で復号される制御データについて説明する。
図7は、幾何情報復号部2060で受信する符号化データ(ビットストリーム)の構成の一例である。
第1に、ビットストリームは、APS2061を含んでいてもよい。APS2061は、アトリビュートパラメータセットとも呼ばれ、属性情報の復号に関する制御データの集合である。具体例については後述する。各APS2061は、複数のAPS2061が存在する場合に個々を識別するためのAPS id情報を少なくとも含む。
第2に、ビットストリームは、ASH2062A/2062Bを含んでいてもよい。A
SH2062A/2062Bは、アトリビュートスライスヘッダとも呼ばれ、後述するス
ライスに対応する制御データの集合である。具体例については後述する。ASH2062A/2062Bは、各ASH2062A/2062Bに対応するAPS2061を指定するためのAPS id情報を少なくとも含む。
第3に、ビットストリームは、ASH2062A/2062Bの次に、スライスデータ
2063A/2063Bを含んでいてもよい。スライスデータ2063A/2063Bには、属性情報を符号化したデータが含まれている。
以上のように、ビットストリームは、各スライスデータ2063A/2063Bに、1
つずつASH2062A/2062B及びAPS2061が対応する構成となる。
上述のように、ASH2062A/2062Bにて、どのAPS2061を参照するか
をAPS id情報で指定するため、複数のスライスデータ2063A/2063Bに対
して共通のAPS2061を用いることができる。
言い換えると、APS2061は、スライスごとに必ずしも伝送する必要がない。例え
ば、図7に示すように、ASH2062B及びスライスデータ2063Bの直前では、APS2061を符号化しないようなビットストリームの構成とすることもできる。
なお、図7に示す構成は、あくまで一例である。各スライスデータ2063A/206
3Bに、ASH2062A/2062B及びAPS2061が対応する構成となっていれ
ば、ビットストリームの構成要素として、上述以外の要素が追加されてもよい。例えば、図7に示すように、ビットストリームは、シーケンスパラメータセット(SPS)を含んでいてもよい。
また、同様に、伝送に際して、図7と異なる構成に整形されてもよい。更に、幾何情報復号部2010で復号されるビットストリームと合成して単一のビットストリームとして伝送されてもよい。例えば、スライスデータ2013A及び2063A、スライスデータ2013B及び2063Bを、それぞれ単一のスライスデータとして扱い、各スライスの直前にGSH2012A及びASH2062A、GSH2012B及びASH2062Bを、それぞれ配置する構成となっていてもよい。また、その際、各GSH及びASHに先立って、GPS2011及びAPS2061が配置されていてもよい。
図8は、SPS2001のシンタックス構成の一例である。
SPS2001は、レベルを定義するシンタックス(level_idc)を含んでも
よい。
SPS2001は、複数のSPSを識別するためのインデックス(sps_seq_parameter_set_id)を含んでもよい。
SPS2001は、当該ビットストリーム内に含まれる属性情報の数を示すシンタックス(sps_num_attribute_sets)を含んでもよい。
SPS2001は、当該ビットストリームに含まれるsps_num_attribute_sets個の属性情報それぞれの次元数を示すシンタックス(attribute_dimension_minus1[i])を含んでもよい。次元数が「1」の場合は、当
該属性情報は、例えば、反射率や輝度信号である場合に該当する。また、次元数が「3」の場合は、当該属性情報は、例えば、輝度信号、色差信号(Cb信号、Cr信号)で構成される次元データである場合に該当する。
ここで、sps_num_attribute_sets個の属性情報の全ての次元数が
「1」であったとき、当該ビットストリームには色差データが含まれないことが分かる。そこで、sps_num_attribute_sets個の属性情報の全ての次元数が「
1」であったとき、attr_secondary_dim_present_flagの値を「0」と定義してもよい。
また、少なくとも1つの属性情報について次元数が「2」以上である場合、attr_
secondary_dim_present_flagの値を「1」と定義してもよい。
なお、以上では、属性情報の次元数を参照して当該ビットストリームに色差データが含まれるか否かを示すフラグであるattr_secondary_dim_present_flagの値を設定する場合の例について説明したが、色差データ有無の判定方法は他の方法でも差し支えない。
例えば、属性情報の種類を示すシンタックスを復号し,例えば、それらが全て「反射係
数」であることを示している場合に、当該ビットストリームに色差データを含まないと判定し、attr_secondary_dim_present_flagの値を「0」と定義してもよい。
また、attr_secondary_dim_present_flagの値をビットストリームに含み、ビットストリームからフラグの値を復号することで、当該ビットストリームに色差データが含まれるか否かを判定してもよい。すなわち、ビットストリームから復号したattr_secondary_dim_present_flagの値が「0」の場合、当該ビットストリームに色差データが含まれないと判定してもよい。
図9は、APS2061のシンタックス構成の一例である。
APS2061は、各APS2061を識別するためのAPS id情報(aps_a
ttr_parameter_set_id)を含んでもよい。
APS2061は、属性情報の復号方法を示す情報(attr_coding_type)を含んでもよい。例えば、attr_coding_typeの値が「0」の時は、逆リフティング部2100において可変の重み付きリフティング予測を行い、attr_co
ding_typeの値が「1」の時は、RAHT部2080にてRAHTを行い、at
tr_coding_typeの値が「2」の時は、逆リフティング部2100において固定の重みでのリフティング予測を行うというように規定されていてもよい。
APS2061は、attr_secondary_dim_present_flagの値が「1」の場合、色差信号の量子化パラメータのオフセット値(aps_attr_chroma_qp_offset)を含んでもよい。
APS2061に、aps_attr_chroma_qp_offsetが含まれない場合、属性情報復号部2060は、aps_attr_chroma_qp_offsetの値を「0」とみなすように定義されていてもよい。
APS2061は、attr_secondary_dim_present_flagの値が「1」の場合で且つattr_coding_typeの値が「2」の場合、色差信号間での残差の予測を行うか否かを制御するフラグ(lifting_last_component_prediction_enabled_flag)を含んでもよい。
lifting_last_component_prediction_enabled_flagの値が「1」の場合は、色差信号間での残差予測を行い、lifting_last_component_prediction_enabled_flagの値が「0」の場合は、色差信号間での残差予測を行わないように定義されていてもよい。
APS2061に、lifting_last_component_predicti
on_enabled_flagが含まれないとき、属性情報復号部2060は、lifting_last_component_prediction_enabled_flag
の値を「0」とみなすように定義されていてもよい。
APS2061は、attr_secondary_dim_present_flagの値が「1」の場合で且つattr_coding_typeの値が「1」の場合、輝度信号間及び色差信号間で予測を行うか否かを制御するフラグ(inter_componen
t_prediction_enabled_flag)を含んでもよい。
inter_component_prediction_enabled_flagの値が「1」の場合は、輝度信号と色差信号との間での予測を行い、inter_compo
nent_prediction_enabled_flagの値が「0」の場合は、輝度
信号と色差信号との間での予測を行わないように定義されていてもよい。
APS2061に、inter_component_prediction_enab
led_flagが含まれないとき、属性情報復号部2060は、inter_component_prediction_enabled_flagの値を「0」とみなすように
定義されていてもよい。
以上のように、属性情報復号部2060は、当該ビットストリームに色差信号が含まれるか否かを判定し、色差信号が含まれていないと判定した場合、色差信号に関するシンタックスの復号を省略するように構成されていてもよい。
このような構成とすることで、不要なシンタックスの復号処理を省略し、処理量を削減することができる。
以上のように、属性情報復号部2060は、当該ビットストリームに含まれる属性情報の次元数を復号し、全ての属性情報の次元数が「1」であった場合、当該ビットストリームに色差信号が含まれていないと判定するように構成されていてもよい。
このような構成とすることで、当該ビットストリームに反射係数のみ(1次元)や輝度信号のみ(1次元)を含む場合に、色差信号に関する処理を省略することができる。
以上のように、属性情報復号部2060は、色差信号の量子化パラメータのオフセット値が復号されなかった場合、当該シンタックスの値を「0」とみなすように構成されていてもよい。
このような構成とすることで、色差信号が存在しない場合に意図せず不要なオフセット値が設定されることを防ぐことができる。
以上のように、属性情報復号部2060は、色差信号間での残差の予測を行うか否かを制御するフラグが復号されなかった場合、当該フラグの値を色差信号間での残差の予測を行わない場合の値と同じ値とみなすように構成されていてもよい。
このような構成とすることで、色差信号が存在しない場合に、不要に色差信号間での残差の予測が実行されることを防ぐことができる。
以上のように、属性情報復号部2060は、輝度信号間と色差信号間で予測を行うか否かを制御するフラグが復号されなかった場合、当該フラグの値を輝度信号間と色差信号との間で予測を行わない場合の値と同じ値とみなすように構成されていてもよい。
このような構成とすることで、色差信号が存在しない場合に、不要に輝度信号間と色差信号間での予測が実行されることを防ぐことができる。
APS2061は、スケーラブルリフティングを適用するかどうかを示すフラグ(lifting_scalability_enabled_flag)を含んでもよい。
lifting_scalability_enabled_flagの値が「0」の場
合は、スケーラブルリフティングを適用しないと規定し、lifting_scalab
ility_enabled_flagの値が「1」の場合は、スケーラブルリフティングを適用すると規定されていてもよい。
APS2061は、LoD算出部2090で算出するLoDのレベル数を指定するシンタックス(lifting_num_detail_levels_minus1)を含んでもよい。
LoDの値は、1以上の整数値である必要があるため、例えば、当該シンタックスは、「0」以上の整数値としておき、当該シンタックスの値に「1」を加えた値を、LoDのレベル数としてもよい。
APS2061は、LoDのレベル数が「1」より大きい場合、すなわち、lifting_num_detail_levels_minus1の値が「0」より大きい場合、各LoDに属する点を等間隔にサンプリングするか否かを示すフラグ(lifting_l
od_regular_sampling_enabled_flag)を含んでもよい。
例えば、lifting_lod_regular_sampling_enabled_
flagの値が「1」の場合は、等間隔にサンプリングを行い、lifting_lod_regular_sampling_enabled_flagの値が「0」の場合は、等
間隔にサンプリングを行わないように定義されていてもよい。
APS2061は、等間隔にサンプリングを行う場合、すなわち、lifting_l
od_regular_sampling_enabled_flagの値が「1」の場合、各LoDのレベルごとにサンプル間隔を指定するシンタックス(lifting_sam
pling_period_minus2[idx])を含んでもよい。
サンプル間隔を2以上の整数とし、lifting_sampling_period_
minus2[idx]の値は、実際のサンプル間隔から2を引いた数と定義してもよい。ここで、本シンタックスのとり得る値の範囲として、0以上であることという制約が規定されていてもよい。
また、かかるシンタックスの取り得る値の範囲として、プロファイル又はレベルごとに定義された1スライス(1データユニット)に含まれるノード数の最大値(例えば、非特許文献1の「Max points in a slice」)以下であることという制約が規定されていてもよい。
上述のように、lifting_sampling_period_minus2[id
x]の値は、実際のサンプル間隔から2を引いた数と定義する場合、「Max poin
ts in a slice」から2を引いた値以下であることという制約が規定されてい
てもよい。
また、属性情報復号部2060は、lifting_sampling_period_
minus2[idx]の値が「0」以上で且つ「Max points in a slice-2」以下となるように、かかるシンタックスを復号した後に、以下のクリッピング処理を行ってもよい。
geom_qp_offset_intvl_log2 = Min(Max(lifting_sampling_period_minus2[idx],0),Max points in a slice―2)
ここで、Min()は、引数の中で最小値を返す関数であり、Max()は、引数の中
で最大値を返す関数である。
以上のように、属性情報復号部2060は、各LoDのレベルごとにサンプル間隔を指定するシンタックスについて、当該シンタックスの値が必ず「0」以上となるように復号するように構成されていてもよい。
すなわち、属性情報復号部2060によって復号される各LoDのレベルごとにサンプル間隔を指定するシンタックスの値は、「0」以上となるように構成されていてもよい。
このような構成とすることで、ノード間の間隔が負であるという実現不可能なビットストリームが発生しないようにすることができる。
また、以上のように仕様の制約として1スライス或いは1データユニットあたりの最大ノード数が規定されている場合、属性情報復号部2060は、各LoDのレベルごとにサンプル間隔を指定するシンタックスについて、当該シンタックスの値が必ず1スライス或いは1データユニットあたりの最大ノード数以下となるように復号するように構成されていてもよい。
すなわち、属性情報復号部2060によって復号される各LoDのレベルごとにサンプル間隔を指定するシンタックスの値は、1スライス或いは1データユニットあたりの最大ノード数以下となるように構成されていてもよい。
このように、各LoDのレベルごとにサンプル間隔を指定するシンタックスの値として取り得る値の最大値を定義することで、かかるシンタックスの復号に必要なビット数の最大値を定義することができ、GPS全体のビット長の最大値を規定するための一助となる。
また、各LoDのレベルごとにサンプル間隔を指定するシンタックスの値として取り得る値の最大値を1スライス或いは1データユニットあたりの最大ノード数以下となるように制約することで、ノード間の間隔が1スライス或いは1データユニットあたりの最大ノード数以上となるような実効的に無意味なビットストリームとなることを防ぐことができる。
また、上述の点群符号化装置100及び点群復号装置200は、コンピュータに各機能(各工程)を実行させるプログラムであって実現されていてもよい。
なお、上記の各実施形態では、本発明を点群符号化装置100及び点群復号装置200への適用を例にして説明したが、本発明は、かかる例のみに限定されるものではなく、点群符号化装置100及び点群復号装置200の各機能を備えた点群符号化/復号システム
にも同様に適用できる。
10…点群処理システム
100…点群符号化装置
200…点群復号装置
2010…幾何情報復号部
2020…ツリー合成部
2030…近似表面合成部
2040…幾何情報再構成部
2050…逆座標変換部
2060…属性情報復号部
2070…逆量子化部
2080…RAHT部
2090…LoD算出部
2100…逆リフティング部
2110…逆色変換部

Claims (5)

  1. 点群復号装置であって、
    ビットストリームからPlanar modeを使用するか否かを示す第1フラグを復号し、前記第1フラグが前記ビットストリームに含まれない場合、前記第1フラグの値を前記Planar modeを使用しない場合と同じ値とみなすように構成されている幾何情報復号部を備えることを特徴とする点群復号装置。
  2. 前記幾何情報復号部は、前記第1フラグが前記Planar modeを使用することを示している場合、前記Planar modeに関連する情報を復号する際にバッファを用いた最近傍ノード探索を行うか否かを制御する第2フラグを復号するように構成されていることを特徴とする請求項1に記載の点群復号装置。
  3. 前記幾何情報復号部は、前記第2フラグを復号しなかった場合、前記第2フラグの値を前記Planar modeに関連する情報を復号する際にバッファを用いた最近傍ノード探索を行わない場合と同じ値とみなすように構成されていることを特徴とする請求項2に記載の点群復号装置。
  4. ビットストリームからPlanar modeを使用するか否かを示す第1フラグを復号する工程と、
    前記第1フラグが前記ビットストリームに含まれない場合、前記第1フラグの値を前記Planar modeを使用しない場合と同じ値とみなす工程とを有することを特徴とする点群復号方法。
  5. 点群復号装置で用いるプログラムであって、コンピュータに、
    ビットストリームからPlanar modeを使用するか否かを示す第1フラグを復号する工程と、
    前記第1フラグが前記ビットストリームに含まれない場合、前記第1フラグの値を前記Planar modeを使用しない場合と同じ値とみなす工程とを実行させることを特徴とするプログラム。
JP2020164123A 2020-09-29 2020-09-29 点群復号装置、点群復号方法及びプログラム Pending JP2022056225A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020164123A JP2022056225A (ja) 2020-09-29 2020-09-29 点群復号装置、点群復号方法及びプログラム
PCT/JP2021/035549 WO2022071282A1 (ja) 2020-09-29 2021-09-28 点群復号装置、点群復号方法及びプログラム
CN202180054821.1A CN116057933A (zh) 2020-09-29 2021-09-28 点云解码装置、点云解码方法和程序
US18/118,866 US20230222699A1 (en) 2020-09-29 2023-03-08 Point cloud decoding device, point cloud decoding method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020164123A JP2022056225A (ja) 2020-09-29 2020-09-29 点群復号装置、点群復号方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2022056225A true JP2022056225A (ja) 2022-04-08

Family

ID=80949181

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020164123A Pending JP2022056225A (ja) 2020-09-29 2020-09-29 点群復号装置、点群復号方法及びプログラム

Country Status (4)

Country Link
US (1) US20230222699A1 (ja)
JP (1) JP2022056225A (ja)
CN (1) CN116057933A (ja)
WO (1) WO2022071282A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024082135A1 (zh) * 2022-10-18 2024-04-25 Oppo广东移动通信有限公司 编解码方法、编解码器、码流以及计算机存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10693492B1 (en) * 2019-06-28 2020-06-23 Blackberry Limited Context determination for planar mode in octree-based point cloud coding

Also Published As

Publication number Publication date
CN116057933A (zh) 2023-05-02
WO2022071282A1 (ja) 2022-04-07
US20230222699A1 (en) 2023-07-13

Similar Documents

Publication Publication Date Title
WO2022070469A1 (ja) 点群復号装置、点群復号方法及びプログラム
CN113574540A (zh) 点云压缩方法和装置
AU2021246918B2 (en) Method of coding attributes for point cloud coding
US11469771B2 (en) Method and apparatus for point cloud compression
WO2022071284A1 (ja) 点群復号装置、点群復号方法及びプログラム
WO2021142239A1 (en) High level syntax for geometry-based point cloud compression
JP7358376B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021261142A1 (ja) 点群復号装置、点群復号方法及びプログラム
US20210112276A1 (en) Techniques and apparatus for inter-channel prediction and transform for point-cloud attribute coding
TW202143709A (zh) 針對基於幾何的點雲壓縮的三湯語法訊號傳遞
WO2022071282A1 (ja) 点群復号装置、点群復号方法及びプログラム
WO2022071285A1 (ja) 点群復号装置、点群復号方法及びプログラム
WO2021256486A1 (ja) 点群復号装置、点群復号方法及びプログラム
CN113115019B (zh) 视频编解码方法、装置、计算机设备及存储介质
EP4133724A1 (en) Global scaling for point cloud data
WO2023277128A1 (ja) 点群復号装置、点群復号方法及びプログラム
JP2024058013A (ja) 点群復号装置、点群復号方法及びプログラム
WO2024079985A1 (ja) 点群復号装置、点群復号方法及びプログラム
JP2024058011A (ja) 点群復号装置、点群復号方法及びプログラム
JP2024058012A (ja) 点群復号装置、点群復号方法及びプログラム

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210407

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230302

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240514