JP7680398B2 - Point group decoding device, point group decoding method and program - Google Patents
Point group decoding device, point group decoding method and program Download PDFInfo
- Publication number
- JP7680398B2 JP7680398B2 JP2022110163A JP2022110163A JP7680398B2 JP 7680398 B2 JP7680398 B2 JP 7680398B2 JP 2022110163 A JP2022110163 A JP 2022110163A JP 2022110163 A JP2022110163 A JP 2022110163A JP 7680398 B2 JP7680398 B2 JP 7680398B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- trisoup
- node size
- minimum
- size
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
Description
本発明は、点群復号装置、点群復号方法及びプログラムに関する。 The present invention relates to a point cloud decoding device, a point cloud decoding method, and a program.
非特許文献1では、予め定めた1種類のノードサイズにおいてTrisoupと呼ばれる方法で復号点群を再構成する技術が開示されている。
Non-Patent
しかしながら、非特許文献1の方法では、ノードサイズが1種類のみ(固定ノードサイズ)であり、符号化効率の観点で改善の余地があるという問題点があった。
However, the method in Non-Patent
そこで、本発明は、上述の課題に鑑みてなされたものであり、復号点群の主観画質を損なうことなく、符号化効率を高めることができる点群復号装置、点群復号方法及びプログラムを提供することを目的とする。 The present invention has been made in consideration of the above-mentioned problems, and aims to provide a point cloud decoding device, a point cloud decoding method, and a program that can improve the encoding efficiency without compromising the subjective image quality of the decoded point cloud.
本発明の第1の特徴は、点群復号装置であって、近似表面合成部を備え、前記近似表面合成部は、制御データから復号した最大ノードサイズ及び最小ノードサイズに基づいて、最大と最小との間の各ノードサイズにおいて頂点の復号処理を実行し、前記ノードサイズが前記最小ノードサイズではない場合、復号した前記頂点に基づいて、前記最小ノードサイズにおける頂点位置を生成し、ある辺上に、前記ある辺に隣接する異なるノードサイズのノードから生成された複数の頂点が存在する場合、前記隣接する異なるノードのうち、最も大きなノードサイズを持つノードによって生成された頂点を、前記ある辺の前記頂点位置とするように構成されていることを要旨とする。 The first feature of the present invention is a point cloud decoding device comprising an approximate surface synthesis unit, which is configured to execute a vertex decoding process at each node size between the maximum and minimum based on the maximum node size and the minimum node size decoded from the control data, generate a vertex position at the minimum node size based on the decoded vertex if the node size is not the minimum node size, and set the vertex position of the edge to the vertex generated by the node of the largest node size among the adjacent different nodes if there are multiple vertices on the edge generated by nodes of different node sizes.
本発明の第2の特徴は、点群復号方法であって、制御データから復号した最大ノードサイズ及び最小ノードサイズに基づいて、最大と最小との間の各ノードサイズにおいて頂点の復号処理を実行する工程と、前記ノードサイズが前記最小ノードサイズではない場合、復号した前記頂点に基づいて、前記最小ノードサイズにおける頂点位置を生成する工程と、ある辺上に、前記ある辺に隣接する異なるノードサイズのノードから生成された複数の頂点が存在する場合、前記隣接する異なるノードのうち、最も大きなノードサイズを持つノードによって生成された頂点を、前記ある辺の前記頂点位置とする工程とを有することを要旨とする。 The second feature of the present invention is a point cloud decoding method comprising the steps of: executing a vertex decoding process at each node size between the maximum and minimum based on the maximum and minimum node sizes decoded from control data; generating a vertex position at the minimum node size based on the decoded vertex if the node size is not the minimum node size; and setting the vertex generated by the node with the largest node size among the adjacent different nodes as the vertex position of the side if there are multiple vertices on a side generated from nodes of different node sizes adjacent to the side.
本発明の第3の特徴は、コンピュータを、点群復号装置として機能させるプログラムであって、前記点群復号装置は、近似表面合成部を備え、前記近似表面合成部は、制御データから復号した最大ノードサイズ及び最小ノードサイズに基づいて、最大と最小との間の各ノードサイズにおいて頂点の復号処理を実行し、前記ノードサイズが前記最小ノードサイズではない場合、復号した前記頂点に基づいて、前記最小ノードサイズにおける頂点位置を生成し、ある辺上に、前記ある辺に隣接する異なるノードサイズのノードから生成された複数の頂点が存在する場合、前記隣接する異なるノードのうち、最も大きなノードサイズを持つノードによって生成された頂点を、前記ある辺の前記頂点位置とするように構成されていることを要旨とする。 The third feature of the present invention is a program for causing a computer to function as a point cloud decoding device, the point cloud decoding device including an approximate surface synthesis unit, which executes a vertex decoding process at each node size between the maximum and minimum based on the maximum node size and the minimum node size decoded from control data, generates a vertex position at the minimum node size based on the decoded vertex if the node size is not the minimum node size, and configures the vertex position of the edge to be the vertex generated by the node of the largest node size among the adjacent different nodes if there are multiple vertices on an edge that are generated from nodes of different node sizes.
本発明によれば、復号点群の主観画質を損なうことなく、符号化効率を高めることができる点群復号装置、点群復号方法及びプログラムを提供することができる。 The present invention provides a point cloud decoding device, a point cloud decoding method, and a program that can improve the encoding efficiency without compromising the subjective image quality of the decoded point cloud.
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態における構成要素は、適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。 The following describes embodiments of the present invention with reference to the drawings. Note that the components in the following embodiments can be replaced with existing components as appropriate, and various variations, including combinations with other existing components, are possible. Therefore, the description of the following embodiments does not limit the content of the invention described in the claims.
(第1実施形態)
以下、図1~図15を参照して、本発明の第1実施形態に係る点群処理システム10について説明する。図1は、本実施形態に係る実施形態に係る点群処理システム10を示す図である。
First Embodiment
A point
図1に示すように、点群処理システム10は、点群符号化装置100及び点群復号装置200を有する。
As shown in FIG. 1, the point
点群符号化装置100は、入力点群信号を符号化することによって符号化データ(ビットストリーム)を生成するように構成されている。点群復号装置200は、ビットストリームを復号することによって出力点群信号を生成するように構成されている。
The point
なお、入力点群信号及び出力点群信号は、点群内の各点の位置情報と属性情報とから構成される。属性情報は、例えば、各点の色情報や反射率である。 The input point cloud signal and the output point cloud signal are composed of position information and attribute information of each point in the point cloud. The attribute information is, for example, color information and reflectance of each point.
ここで、かかるビットストリームは、点群符号化装置100から点群復号装置200に対して伝送路を介して送信されてもよい。また、ビットストリームは、記憶媒体に格納された上で、点群符号化装置100から点群復号装置200に提供されてもよい。
Here, such a bit stream may be transmitted from the point
(点群復号装置200)
以下、図2を参照して、本実施形態に係る点群復号装置200について説明する。図2は、本実施形態に係る点群復号装置200の機能ブロックの一例について示す図である。
(Point Cloud Decoding Device 200)
Hereinafter, the point
図2に示すように、点群復号装置200は、幾何情報復号部2010と、ツリー合成部2020と、近似表面合成部2030と、幾何情報再構成部2040と、逆座標変換部2050と、属性情報復号部2060と、逆量子化部2070と、RAHT部2080と、LoD算出部2090と、逆リフティング部2100と、逆色変換部2110とを有する。
As shown in FIG. 2, the point
幾何情報復号部2010は、点群符号化装置100から出力されるビットストリームのうち、幾何情報に関するビットストリーム(幾何情報ビットストリーム)を入力とし、シンタックスを復号するように構成されている。
The geometric
復号処理は、例えば、コンテクスト適応二値算術復号処理である。ここで、例えば、シンタックスは、位置情報の復号処理を制御するための制御データ(フラグやパラメータ)を含む。 The decoding process is, for example, a context-adaptive binary arithmetic decoding process. Here, for example, the syntax includes control data (flags and parameters) for controlling the decoding process of the position information.
ツリー合成部2020は、幾何情報復号部2010によって復号された制御データ及び後述するツリー内のどのノードに点群が存在するかを示すoccupancy codeを入力として、復号対象空間内のどの領域に点が存在するかというツリー情報を生成するように構成されている。
The
なお、occupancy codeの復号処理をツリー合成部2020内部で行うよう構成されていてもよい。
The decoding process of the occasion code may be configured to be performed within the
本処理は、復号対象空間を直方体で区切り、occupancy codeを参照して各直方体内に点が存在するかを判断し、点が存在する直方体を複数の直方体に分割し、occupancy codeを参照するという処理を再帰的に繰り返すことで、ツリー情報を生成することができる。 This process divides the space to be decoded into rectangular parallelepipeds, refers to the occupancy code to determine whether a point exists in each rectangular parallelepiped, divides the rectangular parallelepiped in which the point exists into multiple rectangular parallelepipeds, and then refers to the occupancy code. This process is repeated recursively to generate tree information.
ここで、かかるoccupancy codeの復号に際して、後述するインター予測を用いてもよい。 Here, when decoding such an occasion code, inter prediction, which will be described later, may be used.
本実施形態では、上述の直方体を常に立方体として8分木分割を再帰的に行う「Octree」と呼ばれる手法、及び、8分木分割に加え、4分木分割及び2分木分割を行う「QtBt」と呼ばれる手法を使用することができる。QtBt」を使用するか否かは、制御データとして点群符号化装置100側から伝送される。
In this embodiment, a method called "Octree" can be used, which recursively performs octree division on the above-mentioned rectangular parallelepiped, always treating it as a cube, and a method called "QtBt" can be used, which performs quadtree division and binary tree division in addition to octree division. Whether or not to use "QtBt" is transmitted as control data from the point
なお、本実施形態では、「Octree」によって上述の立方体が1×1×1のサイズになるまで分割を行うことで幾何情報を復号する方法を、特に「Octreeのみ」と呼ぶ。 In this embodiment, the method of decoding geometric information by dividing the above-mentioned cube using "Octree" until it becomes 1x1x1 in size is specifically referred to as "Octree only."
また、「Octree」に「QtBt」を組み合わせて使用した場合でも、上記同様に「Octree」及び「QtBt」のみで上述の直方体が1×1×1のサイズになるまで分割を行うことで幾何情報を復号する方法についても、「Octreeのみ」と呼んでもよい。 In addition, even if "Octree" is used in combination with "QtBt", the method of decrypting geometric information by dividing the above-mentioned rectangular parallelepiped until it becomes 1x1x1 size using only "Octree" and "QtBt" in the same manner as above may also be called "Octree only".
或いは、制御データによってPredictive codingを使用するように指定された場合、ツリー合成部2020は、点群符号化装置100において決定した任意のツリー構成に基づいて各点の座標を復号するように構成されている。
Alternatively, when the control data specifies that predictive coding is to be used, the
近似表面合成部2030は、ツリー合成部2020によって生成されたツリー情報を用いて近似表面情報を生成し、かかる近似表面情報に基づいて点群を復号するように構成されている。
The approximate
近似表面情報は、例えば、物体の3次元点群データを復号する際等において、点群が物体表面に密に分布しているような場合に、個々の点群を復号するのではなく、点群の存在領域を小さな平面で近似して表現したものである。 When decoding three-dimensional point cloud data of an object, for example, if the points are densely distributed on the object's surface, approximate surface information is used to represent the area in which the points exist by approximating the area using a small plane, rather than decoding each point individually.
具体的には、近似表面合成部2030は、例えば、「Trisoup」と呼ばれる手法で、近似表面情報を生成し、点群を復号することができる。「Trisoup」の具体的な処理例については後述する。また、Lidar等で取得した疎な点群を復号する場合は、本処理を省略することができる。
Specifically, the approximate
幾何情報再構成部2040は、ツリー合成部2020によって生成されたツリー情報及び近似表面合成部2030によって生成された近似表面情報を元に、復号対象の点群データの各点の幾何情報(復号処理が仮定している座標系における位置情報)を再構成するように構成されている。
The geometric
逆座標変換部2050は、幾何情報再構成部2040によって再構成された幾何情報を入力として、復号処理が仮定している座標系から、出力点群信号の座標系に変換を行い、位置情報を出力するように構成されている。
The inverse coordinate
属性情報復号部2060は、点群符号化装置100から出力されるビットストリームのうち、属性情報に関するビットストリーム(属性情報ビットストリーム)を入力とし、シンタックスを復号するように構成されている。
The attribute
復号処理は、例えば、コンテクスト適応二値算術復号処理である。ここで、例えば、シンタックスは、属性情報の復号処理を制御するための制御データ(フラグ及びパラメータ)を含む。 The decoding process is, for example, a context-adaptive binary arithmetic decoding process. Here, for example, the syntax includes control data (flags and parameters) for controlling the decoding process of the attribute information.
また、属性情報復号部2060は、復号したシンタックスから、量子化済み残差情報を復号するように構成されている。
The attribute
逆量子化部2070は、属性情報復号部2060によって復号された量子化済み残差情報と、属性情報復号部2060によって復号された制御データの一つである量子化パラメータとを元に、逆量子化処理を行い、逆量子化済み残差情報を生成するように構成されている。
The
逆量子化済み残差情報は、復号対象の点群の特徴に応じて、RAHT部2080及びLoD算出部2090のいずれかに出力される。いずれに出力されるかは、属性情報復号部2060によって復号される制御データによって指定される。
The dequantized residual information is output to either the
RAHT部2080は、逆量子化部2070によって生成された逆量子化済み残差情報及び幾何情報再構成部2040によって生成された幾何情報を入力とし、RAHT(Region Adaptive Hierarchical Transform)と呼ばれるHaar変換(復号処理においては、逆Haar変換)の一種を用いて、各点の属性情報を復号するように構成されている。RAHTの具体的な処理としては、例えば、非特許文献1に記載の方法を用いることができる。
The
LoD算出部2090は、幾何情報再構成部2040によって生成された幾何情報を入力とし、LoD(Level of Detail)を生成するように構成されている。
The
LoDは、ある点の属性情報から、他のある点の属性情報を予測し、予測残差を符号化或いは復号するといった予測符号化を実現するための参照関係(参照する点及び参照される点)を定義するための情報である。 LoD is information for defining a reference relationship (a referencing point and a referenced point) to realize predictive coding, such as predicting attribute information of a certain point from attribute information of another point and encoding or decoding the prediction residual.
言い換えると、LoDは、幾何情報に含まれる各点を複数のレベルに分類し、下位のレベルに属する点については上位のレベルに属する点の属性情報を用いて属性を符号化或いは復号するといった階層構造を定義した情報である。 In other words, LoD is information that defines a hierarchical structure in which each point contained in the geometric information is classified into multiple levels, and the attributes of points belonging to lower levels are encoded or decoded using attribute information of points belonging to higher levels.
LoDの具体的な決定方法としては、例えば、上述の非特許文献1に記載の方法を用いてもよい。
As a specific method for determining LoD, for example, the method described in the above-mentioned
逆リフティング部2100は、LoD算出部2090によって生成されたLoD及び逆量子化部2070によって生成された逆量子化済み残差情報を用いて、LoDで規定した階層構造に基づいて各点の属性情報を復号するように構成されている。逆リフティングの具体的な処理としては、例えば、上述の非特許文献1に記載の方法を用いることができる。
The
逆色変換部2110は、復号対象の属性情報が色情報であり且つ点群符号化装置100側で色変換が行われていた場合に、RAHT部2080又は逆リフティング部2100から出力される属性情報に逆色変換処理を行うように構成されている。かかる逆色変換処理の実行の有無については、属性情報復号部2060によって復号された制御データによって決定される。
The inverse
点群復号装置200は、以上の処理により、点群内の各点の属性情報を復号して出力するように構成されている。
The point
(幾何情報復号部2010)
以下、図3~図7を用いて幾何情報復号部2010で復号される制御データについて説明する。
(Geometric information decoding unit 2010)
The control data decoded by the geometric
図3は、幾何情報復号部2010で受信する符号化データ(ビットストリーム)の構成の一例である。
Figure 3 shows an example of the structure of the encoded data (bit stream) received by the geometric
第1に、ビットストリームは、GPS2011を含んでいてもよい。GPS2011は、ジオメトリパラメータセットとも呼ばれ、幾何情報の復号に関する制御データの集合である。具体例については後述する。各GPS2011は、複数のGPS2011が存在する場合に個々を識別するためのGPS id情報を少なくとも含む。 First, the bit stream may include a GPS2011. A GPS2011 is also called a geometry parameter set, and is a collection of control data related to decoding of geometric information. A specific example will be described later. Each GPS2011 includes at least GPS id information for identifying each GPS2011 when multiple GPS2011 exist.
第2に、ビットストリームは、GSH2012A/2012Bを含んでいてもよい。GSH2012A/2012Bは、ジオメトリスライスヘッダ或いはジオメトリデータユニットヘッダとも呼ばれ、後述するスライスに対応する制御データの集合である。以降では、スライスという呼称を用いて説明するが、スライスをデータユニットと読み替えることもできる。具体例については後述する。GSH2012A/2012Bは、各GSH2012A/2012Bに対応するGPS2011を指定するためのGPS id情報を少なくとも含む。 Secondly, the bit stream may include GSH2012A/2012B. GSH2012A/2012B is also called a geometry slice header or geometry data unit header, and is a collection of control data corresponding to a slice, which will be described later. In the following description, the term "slice" will be used, but slice can also be read as data unit. Specific examples will be described later. GSH2012A/2012B includes at least GPS id information for specifying the GPS2011 corresponding to each GSH2012A/2012B.
第3に、ビットストリームは、GSH2012A/2012Bの次に、スライスデータ2013A/2013Bを含んでいてもよい。スライスデータ2013A/2013Bには、幾何情報を符号化したデータが含まれている。スライスデータ2013A/2013Bの一例としては、後述するoccupancy codeが挙げられる。
Thirdly, the bit stream may include
以上のように、ビットストリームは、各スライスデータ2013A/2013Bに、1つずつGSH2012A/2012B及びGPS2011が対応する構成となる。
As described above, the bit stream is structured so that each
上述のように、GSH2012A/2012Bにて、どのGPS2011を参照するかをGPS id情報で指定するため、複数のスライスデータ2013A/2013Bに対して共通のGPS2011を用いることができる。
As described above, the GPS ID information is used to specify which
言い換えると、GPS2011は、スライスごとに必ずしも伝送する必要がない。例えば、図3のように、GSH2012B及びスライスデータ2013Bの直前では、GPS2011を符号化しないようなビットストリームの構成とすることもできる。
In other words, GPS2011 does not necessarily need to be transmitted for each slice. For example, as shown in FIG. 3, the bit stream can be configured so that GPS2011 is not encoded immediately before GSH2012B and
なお、図3の構成は、あくまで一例である。各スライスデータ2013A/2013Bに、GSH2012A/2012B及びGPS2011が対応する構成となっていれば、ビットストリームの構成要素として、上述以外の要素が追加されてもよい。
Note that the configuration in FIG. 3 is merely an example. As long as
例えば、図3に示すように、ビットストリームは、シーケンスパラメータセット(SPS)2001を含んでいてもよい。また、同様に、伝送に際して、図3と異なる構成に整形されてもよい。更に、後述する属性情報復号部2060で復号されるビットストリームと合成して単一のビットストリームとして伝送されてもよい。 For example, as shown in FIG. 3, the bitstream may include a sequence parameter set (SPS) 2001. Similarly, when transmitted, the bitstream may be shaped into a configuration different from that shown in FIG. 3. Furthermore, the bitstream may be combined with a bitstream decoded by an attribute information decoding unit 2060 (described later) and transmitted as a single bitstream.
図4は、GPS2011のシンタックス構成の一例である。 Figure 4 is an example of the syntax configuration of GPS2011.
なお、以下で説明するシンタックス名は、あくまで一例である。以下で説明したシンタックスの機能が同様であれば、シンタックス名は異なっていても差し支えない。 Note that the syntax names explained below are merely examples. If the syntax functions explained below are similar, the syntax names may be different.
GPS2011は、各GPS2011を識別するためのGPS id情報(gps_geom_parameter_set_id)を含んでもよい。 GPS2011 may include GPS ID information (gsps_geom_parameter_set_id) for identifying each GPS2011.
なお、図4のDescriptor欄は、各シンタックスが、どのように符号化されているかを意味している。ue(v)は、符号無し0次指数ゴロム符号であることを意味し、u(1)は、1ビットのフラグであることを意味する。 The Descriptor column in Figure 4 indicates how each syntax is coded. ue(v) indicates an unsigned zeroth-order exponential Golomb code, and u(1) indicates a 1-bit flag.
GPS2011は、近似表面合成部2030でTrisoupを使用するか否かを制御するフラグ(trisoup_enabled_flag)を含んでもよい。
GPS2011 may include a flag (trisoup_enabled_flag) that controls whether or not Trisoup is used in the approximate
例えば、trisoup_enabled_flagの値が「0」の時はTrisoupを使用しないと定義し、trisoup_enabled_flagの値が「1」の時はTrisoupを使用すると定義してもよい。 For example, it may be defined that Trisoup is not used when the value of trisoup_enabled_flag is "0", and that Trisoup is used when the value of trisoup_enabled_flag is "1".
幾何情報復号部2020は、Trisoupを使用するとき、すなわち、trisoup_enabled_flagの値が「1」の時、追加で以下のシンタックスを復号するように構成されていてもよい。
The geometric
なお、trisoup_enabled_flagは、GPS2011ではなくSPS2001に含まれていてもよい。 Note that trisoup_enabled_flag may be included in SPS2001 instead of GPS2011.
GPS2011は、複数レベルでのTrisoupを許可するか否かを制御するフラグ(trisoup_multilevel_enabled_flag、第1フラグ)を含んでもよい。 GPS2011 may include a flag (trisoup_multilevel_enabled_flag, first flag) that controls whether or not trisoup is allowed at multiple levels.
例えば、trisoup_multilevel_enabled_flagの値が「0」の時は複数レベルでのTrisoupを許可しない、すなわち、単一のレベルでのTrisoupを行うと定義し、trisoup_multilevel_enabled_flagの値が「1」の時は複数レベルでのTrisoupを許可すると定義してもよい。 For example, when the value of trisoup_multilevel_enabled_flag is "0", multi-level trisoup is not allowed, i.e., trisoup is performed at a single level, and when the value of trisoup_multilevel_enabled_flag is "1", multi-level trisoup is allowed.
なお、当該シンタックスがGPS2011に含まれない場合、当該シンタックスの値を単一のレベルでのTrisoupを行う場合の値、すなわち、「0」とみなしてよい。 If this syntax is not included in GPS2011, the value of this syntax may be considered to be the value when performing a trisoup at a single level, i.e., "0".
なお、trisoup_multilevel_enabled_flagは、GPS2011ではなくSPS2001に含まれるよう定義してもよい。この場合、SPS2001にtrisoup_multilevel_enabled_flagが含まれていない場合、当該シンタックスの値を単一のレベルでのTrisoupを行う場合の値、すなわち、「0」とみなしてよい。 Note that trisoup_multilevel_enabled_flag may be defined to be included in SPS2001 instead of GPS2011. In this case, if trisoup_multilevel_enabled_flag is not included in SPS2001, the value of the syntax may be considered to be the value for performing trisoup at a single level, i.e., "0".
図5は、GSH2012のシンタックス構成の一例である。なお、前述の通り、GSHは、GDUH(Geometry Data Unit Header)とも呼ばれる。 Figure 5 shows an example of the syntax configuration of GSH2012. As mentioned above, GSH is also called GDUH (Geometry Data Unit Header).
幾何情報復号部2020は、複数レベルでのTrisoupを許可するとき、すなわち、trisoup_multilevel_enabled_flagの値が「1」の時、追加で以下のシンタックスを復号するように構成されていてもよい。
The geometric
GSH2012は、複数レベルでのTrisoupを許可するとき、スライス内でOctreeのみとTrisoupとを適応的に選択するモードを有効にするフラグ(adaptive_octree_enabled_flag)を含んでもよい。 GSH2012 may include a flag (adaptive_octree_enabled_flag) that enables a mode of adaptively selecting between Octree-only and Trisoup within a slice when Trisoup is allowed at multiple levels.
例えば、当該フラグの値が「1」の場合はOctreeとTrisoupとを適応的に選択するモード(以降、「適応Octreeモード」と呼ぶ)が有効であり、当該フラグの値が「0」の場合は適応Octreeモードが無効であると定義してもよい。 For example, it may be defined that when the value of the flag is "1", a mode that adaptively selects between Octree and Trisoup (hereinafter referred to as "adaptive Octree mode") is enabled, and when the value of the flag is "0", the adaptive Octree mode is disabled.
また、GSH2012に当該フラグが含まれない場合、当該フラグの値を「0」、すなわち、適応Octreeモードが無効であると暗黙的にみなしてもyい。 Also, if the GSH2012 does not include this flag, the value of the flag may be implicitly considered to be "0", i.e., adaptive Octree mode is disabled.
GSH2012は、複数レベルでのTrisoupを許可するとき、Trisoupノードサイズの最大値を規定するシンタックス(log2_trisoup_max_node_size_minus2)を含んでもよい。 GSH2012 may include syntax (log2_trisoup_max_node_size_minus2) to specify the maximum Trisoup node size when multi-level Trisoup is allowed.
当該シンタックスは、実際のTrisoupノードサイズの最大値について、2を底とする対数に変換した値として表現されていてもよい。更に、当該シンタックスは、実際のTrisoupノードサイズの最大値について、2を底とする対数に変換した後に2を引いた後の値として表現されていてもよい。 The syntax may be expressed as a value obtained by converting the actual maximum Trisoup node size to a logarithm with base 2. Furthermore, the syntax may be expressed as a value obtained by subtracting 2 from the logarithm with base 2, for the actual maximum Trisoup node size.
GSH2012は、複数レベルでのTrisoupを許可するとき、Trisoupノードサイズの最小値を規定するシンタックス(log2_trisoup_min_node_size_minus2)を含んでもよい。 GSH2012 may include syntax (log2_trisoup_min_node_size_minus2) to specify a minimum Trisoup node size when multi-level Trisoup is allowed.
当該シンタックスは、実際のTrisoupノードサイズの最小値について、2を底とする対数に変換した値として表現されていてもよい。更に、当該シンタックスは、実際のTrisoupノードサイズの最小値を4(=2^2)とし、2を底とする対数に変換した後に2を引いた後の値として表現されていてもよい。 The syntax may be expressed as a value obtained by converting the actual minimum Trisoup node size to a logarithm with base 2. Furthermore, the syntax may be expressed as a value obtained by subtracting 2 from the logarithm obtained by converting the actual minimum Trisoup node size to 4 (=2^2).
また、当該シンタックスの値は、必ず0以上且つlog2_trisoup_max_node_size_minus2以下となるように制約されていてもよい。 The value of this syntax may also be constrained to be greater than or equal to 0 and less than or equal to log2_trisoup_max_node_size_minus2.
また、この時、図5に示すようにtrisoup_depthをtrisoup_depth=log2_trisoup_max_node_size_minus2-log2_trisoup_min_node_size_minus2+1と定義してもよい。
In this case, trisoup_depth may be defined as trisoup_depth = log2_trisoup_max_node_size_minus2 -
また、最小Trisoupノードサイズ及び最大Trisoupノードサイズを直接復号する代わりに、後述のOctree処理における最大Trisoupノードサイズ及び最小Trisoupノードサイズに対応するDepth値を復号してもよい。 In addition, instead of directly decoding the minimum and maximum Trisoup node sizes, the Depth values corresponding to the maximum and minimum Trisoup node sizes in the Octree processing described below may be decoded.
例えば、最大Depth(全ノードが1×1×1のサイズになるDepth)が10の場合、最小Trisoupノードサイズを4(=22)、最大Trisoupノードサイズを16(=24)としたい場合は、最小Trisoupノードサイズに対応するDepth値として8、最大Trisoupノードサイズに対応するDepth値として6をそれぞれ復号してもよい。 For example, if the maximum Depth (the Depth at which all nodes are 1x1x1 in size) is 10, and you want the minimum Trisoup node size to be 4 (= 22 ) and the maximum Trisoup node size to be 16 (= 24 ), you may decode the Depth value corresponding to the minimum Trisoup node size as 8 and the Depth value corresponding to the maximum Trisoup node size as 6.
幾何情報復号部2020は、複数レベルでのTrisoupを許可しないとき、すなわち、trisoup_multilevel_enabled_flagの値が「0」の時、追加で以下のシンタックスを復号するように構成されていてもよい。
The geometric
GSH2012は、複数レベルでのTrisoupを許可しないとき、かつ、Trisoupを使用するとき、Trisoupノードサイズを規定するシンタックス(log2_trisoup_node_size_minus2)を含んでもよい。 GSH2012 may include syntax (log2_trisoup_node_size_minus2) to specify the Trisoup node size when multi-level Trisoup is not allowed and when Trisoup is used.
当該シンタックスは、実際のTrisoupノードサイズについて、2を底とする対数に変換した値として表現されていてもよい。更に、当該シンタックスは、実際のTrisoupノードサイズについて、2を底とする対数に変換した後に2を引いた後の値として表現されていてもよい。 The syntax may be expressed as a value obtained by converting the actual Trisoup node size to a logarithm with base 2. Furthermore, the syntax may be expressed as a value obtained by subtracting 2 from the logarithm with base 2 for the actual Trisoup node size.
また、この時、図5に示すようにtrisoup_depthをtrisoup_depth=1と定義してもよい。 In this case, trisoup_depth may be defined as trisoup_depth = 1, as shown in Figure 5.
GSH2012は、Trisoupを使用するとき、復号点のサンプリング間隔を制御するシンタックス(trisoup_sampling_value_minus1)を含んでもよい。当該シンタックスの具体的な定義は、例えば、上述の非特許文献1に記載の定義と同様とすることができる。
When using Trisoup, GSH2012 may include a syntax (trisoup_sampling_value_minus1) that controls the sampling interval of the decoding point. The specific definition of the syntax may be the same as that described in the above-mentioned
GSH2012は、Trisoupを使用するとき、かつ、複数レベルでのTrisoupを許可するとき、階層i(i=0,...,trisoup_depth-1)ごとにユニークセグメントが対象階層に存在するか否かを示すフラグ(unique_segments_exist_flag[i])を含んでもよい。 When GSH2012 uses Trisoup and allows Trisoup at multiple levels, it may include a flag (unique_segments_exist_flag[i]) for each hierarchical level i (i=0,...,trisoup_depth-1) indicating whether a unique segment exists in the target hierarchical level.
例えば、unique_segments_exist_flag[i]の値が「1」の場合は、階層iに少なくとも1つ以上のユニークセグメントが存在することを意味する。また、unique_segments_exist_flag[i]の値が「0」の場合は、階層iにユニークセグメントが1つも存在しないことを意味する。 For example, if the value of unique_segments_exist_flag[i] is "1", it means that at least one unique segment exists in hierarchical layer i. Also, if the value of unique_segments_exist_flag[i] is "0", it means that no unique segments exist in hierarchical layer i.
GSH2012は、階層i(i=0,...,trisoup_depth-1)ごとにユニークセグメントが対象階層に存在する場合、すなわち、unique_segments_exist_flag[i]の値が「1」の場合、追加で対象階層のユニークセグメント数を示すシンタックスのビット数を示すシンタックス(num_unique_segments_bits_minus1[i])及び対象階層のユニークセグメント数を示すシンタックス(num_unique_segments_minus1[i])を含んでもよい。 For each hierarchical layer i (i = 0, ..., trisoup_depth-1), if a unique segment exists in the target hierarchical layer, i.e., if the value of unique_segments_exist_flag[i] is "1", GSH2012 may additionally include syntax (num_unique_segments_bits_minus1[i]) indicating the number of bits of the syntax indicating the number of unique segments in the target hierarchical layer and syntax (num_unique_segments_minus1[i]) indicating the number of unique segments in the target hierarchical layer.
ここで、num_unique_segments_bits_minus1[i]及びnum_unique_segments_minus1[i]の両方について、それぞれ本来の値から「1」を引いた値をシンタックスの値として符号化してもよい。 Here, for both num_unique_segments_bits_minus1[i] and num_unique_segments_minus1[i], the original value minus "1" may be encoded as the syntax value.
図6は、GSH2012のシンタックス構成の一例である。以降では、図5との差分のみ説明する。 Figure 6 shows an example of the syntax configuration of GSH2012. In what follows, we will only explain the differences from Figure 5.
図6に示す通り、適応Octreeモードが有効な場合、すなわち、adaptive_octree_enabled_flagの値が「1」の場合、Trisoupノードサイズの最小値を規定するシンタックス(log2_trisoup_min_node_size_minus2)の復号を省略してもよい。その際、Trisoupノードサイズの最小値は予め定めた所定の値とみなしてよい。例えば、所定の値は「0」(すなわち、20=1)と見なしてもよい。 As shown in Fig. 6, when the adaptive Octree mode is enabled, that is, when the value of adaptive_octree_enabled_flag is "1", the decoding of the syntax (log2_trisoup_min_node_size_minus2) that specifies the minimum value of the Trisoup node size may be omitted. In this case, the minimum value of the Trisoup node size may be regarded as a predetermined value. For example, the predetermined value may be regarded as "0" (i.e., 2 0 =1).
以上のように、幾何情報復号部2010は、同一スライス内或いははデータユニット内においてOctreeのみ及びTrisoupの両方を使用可能とするか否かを制御するフラグを復号し、当該フラグの値が「使用可能」を示している場合、暗黙的に最小Trisoupノードサイズの値を1×1×1とみなすように構成されていてもよい。
As described above, the geometric
以上のような構成とすることで、不要なシンタックスの伝送を排除し、符号量を削減できる。 By configuring as described above, it is possible to eliminate the transmission of unnecessary syntax and reduce the amount of coding.
図7は、GSH2012のシンタックス構成の一例である。以降では、図5との差分のみ説明する。 Figure 7 shows an example of the syntax configuration of GSH2012. In what follows, we will only explain the differences from Figure 5.
図7に示すように、Trisoupノードサイズの最大値を規定するシンタックス及びTrisoupノードサイズの最小値を規定するシンタックスのそれぞれについて、それぞれ2を底とする対数に変換した後の値を伝送することとしてもよい。この時、それぞれのシンタックスの最小値を「0」(すなわち、20=1)と規定してもよい。 7, for each of the syntax that specifies the maximum value of the Trisoup node size and the syntax that specifies the minimum value of the Trisoup node size, values may be transmitted after being converted to logarithms with the base 2. In this case, the minimum value of each syntax may be specified as "0" (i.e., 2 0 =1).
以上のように、幾何情報復号部2010は、最小Trisoupノードサイズを復号し、前記最小Trisoupノードサイズの取り得る最小値は1×1×1に相当する値にとなるよう構成されていてもよい。
As described above, the geometric
このような構成とすることで、Trisoupのみを使用する場合の処理を共通化できる。 By configuring in this way, processing can be standardized when only Trisoup is used.
(ツリー合成部2020)
以下、図8~図9を用いてツリー合成部2020の処理について説明する。図6は、ツリー合成部2020における処理の一例を示すフローチャートである。なお、以下では「Octree」を使用してツリーを合成する場合の例について説明する。
(Tree synthesis unit 2020)
The processing of the
ステップS801において、ツリー合成部2020は、全てのDepthの処理が完了したかどうかを確認する。なお、Depth数は、点群符号化装置100から点群復号装置200に伝送するビットストリーム内に制御データとして含まれていてもよい。
In step S801, the
ツリー合成部2020は、対象Depthのノードサイズを算出する。「Octree」の場合、最初のDepthのノードサイズは、「2のDepth数乗」と定義されてもよい。すなわち、Depth数をNとする場合、最初のDepthのノードサイズは、2のN乗と定義されてもよい。
The
また、2番目以降のDepthでのノードサイズは、Nの数を1つずつ減じていくことで定義されてもよい。すなわち、2番目のDepthのノードサイズは、「2の(N-1)乗」として定義され、3番目のDepthのノードサイズは、「2の(N-2)乗」として定義され、・・・と定義されてもよい。 In addition, the node size at the second and subsequent depths may be defined by decrementing the number N by one. That is, the node size at the second depth may be defined as "2 to the power of (N-1)", the node size at the third depth may be defined as "2 to the power of (N-2)", and so on.
或いは、ノードサイズは、常に2のべき乗で定義されるため、単純に指数部分(N、N-1、N-2、等)の値をノードサイズと考えてもよい。以降の説明では、ノードサイズとは、ノードの1辺の長さの指数部分の値を指すこととする。 Alternatively, because node sizes are always defined as powers of 2, you can simply think of the exponent part (N, N-1, N-2, etc.) as the node size. In the following explanation, node size refers to the exponent part of the length of one side of the node.
なお、以降では簡単のため、ノード形状が立方体の場合、すなわち、ノードの全ての辺の長さが等しい場合を例に説明する。 For simplicity's sake, we'll use the example below where the node shape is a cube, i.e., all edges of the node are the same length.
QtBtを用いる場合、すなわち、ノード形状が直方体になり、ノードの各辺の長さが軸方向(x、y、z)毎に異なる場合、3方向のうち最も短い辺の長さをノードサイズと考えてもよい。同様に、3方向のうち最も長い辺の長さをノードサイズと考えてもよい。 When using QtBt, that is, when the node shape is a rectangular prism and the length of each side of the node differs in each axial direction (x, y, z), the length of the shortest side of the three directions may be considered to be the node size. Similarly, the length of the longest side of the three directions may be considered to be the node size.
ここで、Trisoupを使用するか否かを制御するフラグ(trisoup_enabled_flag)がTrisoupを使用することを示している場合、すなわち、trisoup_enabled_flagの値が「1」の時は、ツリー合成部2020は、処理するDepth数を、Trisoupノードサイズの最小値を規定するシンタックス(log2_trisoup_min_node_size_minus2)又はTrisoupノードサイズを規定するシンタックス(log2_trisoup_node_size_minus2)の値に基づいて変化させてもよい。かかる場合、例えば、以下のように定義してもよい。
Here, when the flag (trisoup_enabled_flag) that controls whether or not to use Trisoup indicates that Trisoup is to be used, that is, when the value of trisoup_enabled_flag is "1", the
処理Depth数=全Depth数-(最小の)Trisoupノードサイズ
ここで、最小のTrisoupノードサイズについては、例えば、(log2_trisoup_min_node_size_minus2+2)で定義できる。同様に、Trisoupノードサイズについては、(log2_trisoup_node_size_minus2+2)で定義できる。
Processing Depth Number=Total Depth Number−(Minimum) Trisoup Node Size Here, the minimum Trisoup node size can be defined as, for example, (log2_trisoup_min_node_size_minus2+2). Similarly, the Trisoup node size can be defined as (log2_trisoup_node_size_minus2+2).
この場合、全ての処理Depth数の処理が完了した場合は、ツリー合成部2020は、ステップS809へ進み、そうでない場合は、ツリー合成部2020は、ステップS802へ進む。
In this case, if processing for all processing depths has been completed, the
言い換えると、(処理Depth数-n)=0の場合は、ツリー合成部2020は、ステップS809へ進み、(処理Depth数-n)>0の場合は、ツリー合成部2020は、ステップS802へ進む。
In other words, if (processing depth number - n) = 0, the
また、ツリー合成部2020は、ステップS809へ進む際のノードサイズ(N-処理Depth数)を持つ全てのノードには、Trisoupが適用されると判定してもよい。
The
ここで、複数レベルでのTrisoupを許可されている場合、すなわち、trisoup_multilevel_enabled_flagの値が「1」の時、且つ、適応Octreeモードが有効な場合、すなわち、adaptive_octree_enabled_flagの値が「1」の時は、ステップS801では、以下の様に構成されていてもよい。 Here, when Trisoup at multiple levels is permitted, i.e., when the value of trisoup_multilevel_enabled_flag is "1", and when adaptive Octree mode is enabled, i.e., when the value of adaptive_octree_enabled_flag is "1", step S801 may be configured as follows:
具体的には、全てのDepthの処理が完了した場合は、ツリー合成部2020は、ステップS809へ進み、全てのDepthの処理が完了していない場合は、ツリー合成部2020は、ステップS802へ進む。
Specifically, if processing of all depths has been completed, the
言い換えると、対象Depthがn番目のDepthの時、(N-n)=0の場合は、ツリー合成部2020は、ステップS809へ進み、(N-n)>0の場合は、ツリー合成部2020は、ステップS802へ進む。
In other words, when the target depth is the nth depth, if (N-n)=0, the
ステップS802において、ツリー合成部2020は、対象Depthにて後述するTrisoup_applied_flagを復号する必要があるか否かを判定する。
In step S802, the
例えば、「複数レベルでのTrisoupが許可(trisoup_multilevel_enabled_flagの値が「1」)」で、且つ、「対象Depthのノードサイズ(N-n)が最大のTrisoupノードサイズ以下」の場合に、ツリー合成部2020は、「Trisoup_applied_flagの復号が必要である」と判定してもよい。
For example, if "Trisoups at multiple levels are permitted (the value of trisoup_multilevel_enabled_flag is "1")" and "the node size (N-n) of the target depth is equal to or smaller than the maximum trisoup node size," the
例えば、「複数レベルでのTrisoupが許可(trisoup_multilevel_enabled_flagの値が「1」)」で、且つ、「対象Depthのノードサイズ(N-n)が最大のTrisoupノードサイズ以下」で、且つ、「対象Depthのノードサイズ(N-n)が最小のTrisoupノードサイズ以上」の場合に、ツリー合成部2020は、「Trisoup_applied_flagの復号が必要である」と判定してもよい。
For example, if "Trisoups at multiple levels are allowed (the value of trisoup_multilevel_enabled_flag is "1")," and "the node size (N-n) of the target depth is equal to or smaller than the maximum trisoup node size," and "the node size (N-n) of the target depth is equal to or larger than the minimum trisoup node size," the
また、ツリー合成部2020は、上述の条件が満たされない場合、「Trisoup_applied_flagの復号が必要ない」と判定してもよい。
In addition, if the above conditions are not met, the
ここで、最大のTrisoupノードサイズについては、例えば、(log2_trisoup_max_node_size_minus3+2)で定義できる。同様に、最小のTrisoupノードサイズについては、例えば、(log2_trisoup_min_node_size_minus2+2)で定義できる。 Here, the maximum Trisoup node size can be defined, for example, as (log2_trisoup_max_node_size_minus3 + 2). Similarly, the minimum Trisoup node size can be defined, for example, as (log2_trisoup_min_node_size_minus2 + 2).
上述の判定が完了したら、ツリー合成部2020は、ステップS803へ移る。
Once the above-mentioned determination is completed, the
ステップS803において、ツリー合成部2020は、対象Depthに含まれる全てのノードの処理が完了したかどうかを判定する。
In step S803, the
対象Depthの全てのノードの処理が完了したと判定した場合、ツリー合成部2020は、ステップS801へ移り、次のDepthの処理を行う。
If it is determined that processing of all nodes at the target Depth has been completed, the
一方、対象Depthの全てのノードの処理が完了していない場合、ツリー合成部2020は、ステップS804へ移る。
On the other hand, if processing of all nodes at the target Depth has not been completed, the
ステップS804において、ツリー合成部2020は、ステップS802で判定したTrisoup_applied_flagの復号の要否について確認する。
In step S804, the
Trisoup_applied_flagの復号が必要であると判定されている場合は、ツリー合成部2020は、ステップS805へ進み、Trisoup_applied_flagの復号が必要でないと判定されている場合は、ツリー合成部2020は、ステップS808へ移る。
If it is determined that decoding of Trisoup_applied_flag is necessary, the
ステップS805において、ツリー合成部2020は、Trisoup_applied_flagを復号する。
In step S805, the
Trisoup_applied_flagは、対象ノードにTrisoupを適用するか否かを示す1ビットのフラグ(第2フラグ)である。例えば、かかるフラグの値が「1」の時に対象ノードにTrisoupを適用すると定義し、かかるフラグの値が「0」の時に対象ノードにTrisoupを適用しないと定義してもよい。 Trisoup_applied_flag is a 1-bit flag (second flag) that indicates whether Trisoup is applied to the target node. For example, it may be defined that Trisoup is applied to the target node when the value of this flag is "1", and that Trisoup is not applied to the target node when the value of this flag is "0".
ツリー合成部2020は、Trisoup_applied_flagを復号した後、ステップS806へ移る。
After the
ステップS806において、ツリー合成部2020は、ステップS805で復号したTrisoup_applied_flagの値を確認する。
In step S806, the
対象ノードにTrisoupを適用する場合、すなわち、Trisoup_applied_flagの値が「1」の場合は、ツリー合成部2020は、ステップS807へ移る。
If Trisoup is to be applied to the target node, i.e., if the value of Trisoup_applied_flag is "1", the
対象ノードにTrisoupを適用しない場合、すなわち、Trisoup_applied_flagの値が「0」の場合は、ツリー合成部2020は、ステップS808へ移る。
If Trisoup is not applied to the target node, i.e., if the value of Trisoup_applied_flag is "0", the
ステップS807において、ツリー合成部2020は、対象ノードを、Trisoupを適用するノード、すなわち、Trisoupノードとして記憶する。かかる対象ノードに対しては、これ以上、「Octree」によるノードの分割を適用しないこととする。その後、ツリー合成部2020は、ステップS803に進み、次のノードの処理へ移る。
In step S807, the
ステップS808において、ツリー合成部2020は、occpancy codeと呼ばれる情報を復号する。
In step S808, the
occpancy codeは、「Octree」の場合は、対象ノードをx、y、z軸方向にそれぞれ半分に分割して、8つのノード(子ノードと呼ぶ)に分割した際に、それぞれの子ノード内に復号対象の点が含まれているか否かを示す情報である。 In the case of "Octree", the occupancy code is information that indicates whether the point to be decoded is included in each of the child nodes when the target node is divided in half in each of the x, y, and z axis directions and divided into eight nodes (called child nodes).
例えば、occpancy codeは、各子ノードに対して1ビットの情報を割り当て、かかる1ビットの情報が「1」の場合は、かかる子ノード内に復号対象の点が含まれると定義され、かかる1ビットの情報が「0」の場合は、かかる子ノード内に復号対象の点が含まれないと定義されてもよい。 For example, the occupancy code may assign one bit of information to each child node, and if the one bit of information is "1", it may be defined that the point to be decoded is included in the child node, and if the one bit of information is "0", it may be defined that the point to be decoded is not included in the child node.
ツリー合成部2020は、かかるoccpancy codeを復号する際に、各子ノードに復号対象の点が存在する確率を予め推定し、その確率に基づいて各子ノードに対応するビットをエントロピー復号してもよい。
When decoding such an occurrence code, the
同様に、点群符号化装置100においては、エントロピー符号化してもよい。
Similarly, entropy coding may be performed in the point
以上のように、点群復号装置200は、同一スライス内或いはデータユニット内において、Octreeのみ及びTrisoupの両方を使用可能とし、ノード毎にOctreeのみ及びTrisoupのいずれかの方法で、点の幾何情報を復号するように構成されていてもよい。
As described above, the point
以上のような構成とすることで、局所的に幾何構造が細かい部分はOctreeのみ、平面で近似可能な箇所はTrisoupといったように切り替えが可能となり、効率の良い符号化が可能となる。 By configuring as described above, it is possible to switch between using only Octree for areas with locally detailed geometric structures and Trisoup for areas that can be approximated by a plane, enabling efficient encoding.
また、以上のように、ツリー合成部2020は、空間を再帰的に分割するOctree分割を行い、所定の最小Trisoupノードサイズより小さくなった全てのノードについて、幾何情報をOctreeのみによって復号するように構成されていてもよい。
As described above, the
また、以上のように、ツリー合成部2020は、適応Octreeモードが有効な場合、所定の最小Trisoupノードサイズの各ノードについて、当該ノードにTrisoupを適用するか否かを示すフラグ(Trisoup_applied_flag)を復号するように構成されていてもよい。
As described above, when the adaptive Octree mode is enabled, the
また、以上のように、幾何情報復号部2010は、同一スライス内或いはデータユニット内において、OctreeのみとTrisoupの両方を使用可能とするか否かを制御するフラグを復号し、ツリー合成部2020は、当該フラグの値が「使用可能」を示している場合、所定の最小Trisoupノードサイズより小さくなった全てのノードについて、幾何情報をOctreeのみによって復号するように構成されていてもよい。
As described above, the geometric
以上のような構成とすることで、Trisoupノードサイズの最小時は非特許文献1から変更しなくてもOctreeのみとの併用が可能となるため、Trisoup自体の処理の変更量が少なくなり、設計が容易になるという利点がある。
By configuring as described above, when the Trisoup node size is at its minimum, it is possible to use only Octree without making any changes from
図9は、ツリー合成部2020における処理の一例を示すフローチャートである。図8と同様の処理を行う箇所については、同一の符号を付しており、説明は省略する。
Figure 9 is a flowchart showing an example of processing in the
ステップS901では、全ての処理Depth数の処理が完了した場合は、ツリー合成部2020は、ステップS809へ進み、そうでない場合は、ツリー合成部2020は、ステップS802へ進む。
In step S901, if processing for all processing depths has been completed, the
ここで、複数レベルでのTrisoupが許可(trisoup_multilevel_enabled_flagの値が「1」)されている時は、ツリー合成部2020は、処理するDepth数を、Trisoupノードサイズの最小値を規定するシンタックス(図7に示すlog2_trisoup_node_size)の値に基づいて変化させてもよい。この時、ツリー合成部2020は、Trisoupノードサイズの最小値は0としてもよい。
Here, when Trisoup at multiple levels is permitted (the value of trisoup_multilevel_enabled_flag is "1"), the
または、図6に示すように、ツリー合成部2020は、適応Octreeモードが有効の場合は、Trisoupノードサイズの最小値は、0と暗黙的に設定してもよい。かかる場合、例えば、以下のように定義してもよい。
Alternatively, as shown in FIG. 6, the
処理Depth数=全Depth数-最小のTrisoupノードサイズ
この場合、全ての処理Depth数の処理が完了した場合は、ツリー合成部2020は、ステップS809へ進み、そうでない場合は、ツリー合成部2020は、ステップS902へ進む。
Processing Depth Number=Total Depth Number−Minimum Trisoup Node Size In this case, if processing for all processing Depth numbers has been completed, the
言い換えると、(処理Depth数-n)=0の場合は、ツリー合成部2020は、ステップS809へ進み、(処理Depth数-n)>0の場合は、ツリー合成部2020は、ステップS902へ進む。
In other words, if (processing depth number - n) = 0, the
ステップS902において、ツリー合成部2020は、対象Depthにて後述するTrisoup_applied_flagを復号する必要があるか否かを判定する。
In step S902, the
例えば、「複数レベルでのTrisoupが許可(trisoup_multilevel_enabled_flagの値が「1」)」で、且つ、「対象Depthのノードサイズ(N-n)が最大のTrisoupノードサイズ以下」の場合に、ツリー合成部2020は、「Trisoup_applied_flagの復号が必要である」と判定してもよい。
For example, if "Trisoups at multiple levels are permitted (the value of trisoup_multilevel_enabled_flag is "1")" and "the node size (N-n) of the target depth is equal to or smaller than the maximum trisoup node size," the
また、ツリー合成部2020は、ステップS809へ進む際のノードサイズ(N-処理Depth数)が1以上(21以上)の場合、当該のノードサイズを持つ全てのノードには、Trisoupが適用されると判定してもよい。
Furthermore, if the node size (N-processing depth number) when proceeding to step S809 is 1 or more ( 2.1 or more), the
また、ツリー合成部2020は、ステップS809へ進む際のノードサイズ(N-処理Depth数)が0(20=1)の場合、すなわち、1×1×1のサイズのノードの場合、後述する近似表面合成部2030では、Trisoupの処理は行わず、Octreeのみを実行した際と同様に、1×1×1のサイズのノード自体を復号した点とみなしてもよい。
Furthermore, when the node size (N-processing depth number) when proceeding to step S809 is 0 (2 0 =1), i.e., in the case of a node of
以上のように、ツリー合成部2020は、所定の最小Trisoupノードサイズを1に設定し、ノードサイズが1×1×1となったノードについては、Octreeのみで、ノードサイズが1×1×1より大きなノードについては、Trisoupで、それぞれ幾何情報を復号することを決定するように構成されていてもよい。
As described above, the
以上のような構成とすることで、Trisoupのみを用いる場合との処理が共通化されるという利点がある。 The above configuration has the advantage that the processing is the same as when only Trisoup is used.
(近似表面合成部2030)
近似表面合成部2030は、図10及び図14で説明するように、ツリー合成部2020にて、Trisoupノードと判定された各ノードについて、復号処理を行うように構成されている。
(Approximate surface synthesis unit 2030)
The approximate
以下、図10~図14を用いて近似表面合成部2030の処理の例について説明する。
Below, an example of the processing performed by the approximate
図10は、近似表面合成部2030の処理の一例を示すフローチャートである。
Figure 10 is a flowchart showing an example of processing by the approximate
図10に示すように、ステップS1001において、近似表面合成部2030は、全てのtrisoup_depthでの処理が完了したかどうかを判定する。
As shown in FIG. 10, in step S1001, the approximate
全てのtrisoup_depthについて処理が完了した場合、ステップS1009へ進み、処理を終了する。全てのtrisoup_depthの処理が完了していない場合、ステップS1002へ進む。 If processing has been completed for all trisoup_depths, proceed to step S1009 and end processing. If processing has not been completed for all trisoup_depths, proceed to step S1002.
ステップS1002において、近似表面合成部2030は、ノード毎の頂点位置の取得及び統合を行う。
In step S1002, the approximate
ここで、第1に、近似表面合成部2030は、当該trisoup_depthに対応するTrisoupノードサイズ(以降、当該Trisoupノードサイズと呼ぶ)におけるノード毎に頂点位置を復号する。具体的な処理については、図13で説明する。
First, the approximate
第2に、当該Trisoupノードサイズが、最大Trisoupノードサイズより小さい場合、近似表面合成部2030は、後述するステップS1008において、当該Trisoupノードサイズより大きなTrisoupノードサイズにおいて生成した頂点との統合処理を行う。
Secondly, if the Trisoup node size is smaller than the maximum Trisoup node size, the approximate
具体的には、近似表面合成部2030は、当該Trisoupノードサイズにおけるノードのエッジ上に、図13に説明する手法で復号した頂点(当該Trisoupノードサイズにおける頂点)と、ステップS1008で説明する方法で生成した頂点(当該Trisoupノードサイズより大きなTrisoupノードサイズにおいて生成した頂点)の両方が存在する場合、一番大きなノードサイズにおいて生成された頂点のみを保持し、その他の頂点については削除する処理を行う。このようにすることで、ノード毎に頂点を最大でも1点ずつにすることができる。
Specifically, when both a vertex decoded using the method described in FIG. 13 (a vertex at the Trisoup node size) and a vertex generated using the method described in step S1008 (a vertex generated at a Trisoup node size larger than the Trisoup node size) exist on an edge of a node at the Trisoup node size, the approximate
頂点位置の取得及び統合が完了した後、近似表面合成部2030は、ステップS1003へ進む。
After the vertex positions have been obtained and integrated, the approximate
ステップS1003において、近似表面合成部2030は、当該Trisoupノードサイズにおけるノード毎に、投影面を決定する。
In step S1003, the approximate
例えば、x軸、y軸、z軸の3つの軸があるとき、どれか1つの軸を縮退した平面を投影面と呼ぶ。 For example, when there are three axes, x-axis, y-axis, and z-axis, a plane with one of the axes degenerated is called a projection plane.
ステップS1003では、近似表面合成部2030は、上述の軸のうちどの軸を縮退するか、すなわち、x-y平面、x-z平面、y-z平面のうちどの平面を投影面とするかを決定する。具体的な投影面の決定方法は、公知の方法を適用できるため省略する。
In step S1003, the approximate
投影面を決定した後、近似表面合成部2030は、ステップS1004へ進む。
After determining the projection surface, the approximate
ステップS1004において、近似表面合成部2030は、投影面に投影した頂点を、例えば、反時計回りの順になるようにソートし、かかる順序に従ってindexを付与する。なお、ステップS1003の処理の過程でソート処理を行う場合は、当該のソート処理結果を保存しておくことで、ステップS1004の処理を省略することができる。
In step S1004, the approximate
indexを付与した後、近似表面合成部2030は、ステップS1005へ進む。
After assigning the index, the approximate
ステップS1005において、近似表面合成部2030は、上述のindex及び対象ノードに存在する頂点数に基づいて、三角形を生成する。
In step S1005, the approximate
例えば、近似表面合成部2030は、予め頂点数毎にどのindexから三角形を生成するかを定義した表を作成しておき、それを参照することで三角形を生成できる。具体的な表の例については、例えば、上述の非特許文献1に記載の表を用いることができる。
For example, the approximate
或いは、近似表面合成部2030は、まず各頂点の座標を平均したセントロイドを生成し、上述のインデックス順に隣り合う2点とセントロイドの3点で、三角形を生成してもよい。
Alternatively, the approximate
三角形を生成した後、近似表面合成部2030は、ステップS1006へ進む。
After generating the triangles, the approximate
ステップS1006において、近似表面合成部2030は、ステップS1005で生成した三角形を基に、点を生成する。具体的な方法は、例えば、上述の非特許文献1に記載の方法を用いることができる。
In step S1006, the approximate
全てのノードについて点の生成が完了した後、近似表面合成部2030は、ステップS1007へ進む。
After point generation has been completed for all nodes, the approximate
ステップS1007では、近似表面合成部2030は、当該Trisoupノードサイズが、最小ノードサイズと等しいかどうかを判定する。
In step S1007, the approximate
近似表面合成部2030は、当該Trisoupノードサイズが、最小ノードサイズと等しい場合は、ステップS1001へ進み、次のtrisoup_depthの処理を行い、そうでない場合は、ステップS1008へ進む。
If the Trisoup node size is equal to the minimum node size, the approximate
ステップS1008では、近似表面合成部2030は、ステップS1006で生成した当該Trisoupノードサイズにおける点群、又は、ステップS1005で生成した三角形に基づいて、最小Trisoupノードサイズにおける頂点を生成する。
In step S1008, the approximate
図11は、ステップS1006で生成した当該Trisoupノードサイズにおける点群から、最小Trisoupノードサイズにおける頂点を生成する場合の例を示している。 Figure 11 shows an example of generating vertices at the minimum Trisoup node size from the point cloud at the Trisoup node size generated in step S1006.
図11Aは、ステップS1006で生成した復号点群の例を示している。 Figure 11A shows an example of the decoded point group generated in step S1006.
第1に、近似表面合成部2030は、当該ノードを、図11Aの点線で示すように、最小Trisoupノードサイズ毎に分割する。
First, the approximate
なお、図11では、当該TrisoupノードサイズがN(=2N)であり、最小TrisoupノードサイズがN-1(=2(N-1))の場合を示している。 FIG. 11 shows a case where the Trisoup node size is N (=2 N ) and the minimum Trisoup node size is N-1 (=2 (N-1) ).
第2に、近似表面合成部2030は、最小Trisoupノードサイズ毎に分割した際の各エッジ(図11Aの実線及び点線)上に、復号点群内の各点が存在するかどうかを確認する。
Second, the approximate
例えば、各エッジが、任意の原点から2(N-1)間隔で存在するとみなした場合、z軸方向のエッジの座標は、(A×2(N-1),B×2(N-1),z)で表せる。ここで、A及びBは、定数である。 For example, if it is assumed that each edge exists at 2 (N-1) intervals from an arbitrary origin, the coordinate of the edge in the z-axis direction can be expressed as (A x 2 (N-1) , B x 2 (N-1) , z), where A and B are constants.
よって、例えば、復号点群内の点の座標がx=A×2(N-1)及びy=B×2(N-1)となる点があれば、その点をエッジ上に存在する点をみなせる。上述の処理は、x軸方向のエッジ及びy軸方向のエッジについても同様に適用可能である。 Therefore, for example, if there is a point in the decoded point group whose coordinates are x = A x 2 (N-1) and y = B x 2 (N-1) , then that point can be considered to be on an edge. The above process can be similarly applied to edges in the x-axis direction and edges in the y-axis direction.
近似表面合成部2030は、このような処理を、最小Trisoupノードサイズ毎に分割した際の全てのエッジについて実施することで、復号点群からエッジ上に存在する点を抽出できる。
The approximate
なお、上述の処理は、一例であり、他の処理でも、最小Trisoupノードサイズにおけるエッジ上の点が抽出できればよい。 Note that the above process is just one example, and other processes can be used as long as they can extract points on edges at the minimum Trisoup node size.
例えば、各エッジが、任意の原点から2(N-1)間隔で存在するとみなした場合、近似表面合成部2030は、z軸方向のエッジ上に存在する点を抽出するには、復号点群内の各点のx座標及びy座標をそれぞれ2(N-1)で除算し、x座標、y座標ともに余りがゼロになった点を、エッジ上に存在する点として抽出することもできる。
For example, if each edge is considered to exist at intervals of 2 (N-1) from an arbitrary origin, the approximate
図11Bは、エッジ上に存在する点の抽出結果の例を示している。図11Bに示すように、近似表面合成部2030は、当該Trisoupノードサイズの表面に存在するエッジ上の点のみを抽出し、当該Trisoupノードサイズの内部に存在するエッジ上の点は抽出対象外としてもよい。
Figure 11B shows an example of the extraction result of points on edges. As shown in Figure 11B, the approximate
近似表面合成部2030は、以上のようにして抽出したエッジ上の点を、最小Trisoupノードサイズにおける頂点として保存する。
The approximate
以上のように、近似表面合成部2030は、制御データから復号した最大ノードサイズ及び最小ノードサイズに基づいて、最大と最小との間の各ノードサイズにおいて頂点の復号処理を実行し、ノードサイズが最小ノードサイズではない場合、復号した頂点に基づいて、最小ノードサイズにおける頂点位置を生成し、ある辺上に、かかる辺に隣接する異なるノードサイズのノードから生成された複数の頂点が存在する場合、かかる隣接するノードのうち、最も大きなノードサイズを持つノードによって生成された頂点を、かかる辺の頂点位置とするように構成されていてもよい。
As described above, the approximate
このような構成とすることで、異なるノードサイズ境界においてもメッシュに隙間ができなくなるため、復号点群の主観品質の向上が見込める。 This configuration eliminates gaps in the mesh even at boundaries of different node sizes, which is expected to improve the subjective quality of the decoded point cloud.
また、以上のように、最小ノードサイズにおける頂点位置を生成する際、ノードの表面のみに頂点を生成するように構成されていてもよい。 As described above, when generating vertex positions for the minimum node size, the system may be configured to generate vertices only on the surface of the node.
上述のように、生成する頂点位置を異なるノードサイズと隣接する可能性があるノード表面のみに限定することで、不要な頂点の生成を避け、処理量の増加を防ぐことができる。 As mentioned above, by limiting the vertex positions to be generated only to node surfaces that may be adjacent to different node sizes, it is possible to avoid generating unnecessary vertices and prevent an increase in the amount of processing.
以上のように、近似表面合成部2030は、ノードサイズが最小ノードサイズではない場合、対象のノードの復号点群内の点のうち、対象のノードを最小ノードサイズで分割した際の辺上の点を、最小ノードサイズにおける頂点位置とするように構成されていてもよい。
As described above, when the node size is not the minimum node size, the approximate
かかる構成によれば、既に別の目的で生成された復号点群を処理に用いることで、処理量の増加を防ぐことができる。 With this configuration, it is possible to prevent an increase in the amount of processing by using a decoded point group that has already been generated for another purpose.
以上では、当該Trisoupノードサイズにおける復号点群を基に頂点を生成する方法の例を説明したが、頂点は、図12に示すように、当該Trisoupノードサイズにおける頂点から内挿する方法で生成してもよい。 The above describes an example of a method for generating vertices based on a decoded point group at the Trisoup node size, but the vertices may also be generated by an interpolation method from vertices at the Trisoup node size, as shown in Figure 12.
具体的には、例えば、第1に、近似表面合成部2030は、ステップS1003又はステップS1004における頂点のソート結果に基づいて、隣り合う頂点同士を結ぶ直線の式を算出する。
Specifically, for example, first, the approximate
図12Aは、図11Aと同様に、当該Trisoupノードを最小Trisoupノードサイズに分割した場合の例、及び、当該Trisoupノードサイズにおける頂点の例を示している。 Similar to FIG. 11A, FIG. 12A shows an example of dividing the Trisoup node into the minimum Trisoup node size, and an example of vertices at that Trisoup node size.
図12Aは、ソート後のIndexにおいて、0番目と1番目、1番目と2番目、2番目と0番目の頂点を結ぶ直線をそれぞれ生成した場合の例を示している。 Figure 12A shows an example of generating straight lines connecting the 0th and 1st vertices, the 1st and 2nd vertices, and the 2nd and 0th vertices in the sorted index.
2点a=(ax, ay, az)、b=(bx, by, bz)を結ぶ直線lは、例えば、l=(1-t)a+tbで表せる。 The line l connecting two points a = (ax, ay, az) and b = (bx, by, bz) can be expressed as l = (1-t)a + tb, for example.
この直線と、最小Trisoupノードサイズにおける各エッジの直線との交点を求めることで、エッジ上の点を算出することができる。 The points on the edge can be calculated by finding the intersections between this line and the lines of each edge at the minimum Trisoup node size.
ここで、図11Bと同様に、算出対象を当該Trisoupノードサイズにおける表面上に存在するエッジに限定する場合、以下のように計算を簡素化できる。 Here, as in Figure 11B, if the calculation target is limited to edges that exist on the surface at the Trisoup node size, the calculation can be simplified as follows.
第1に、2つの頂点を結んで直線を求める際に、2つの頂点の両方が、当該Trisoupノードの同一表面上に無い場合、計算から除外できる。 First, when finding a line connecting two vertices, if both vertices are not on the same surface of the Trisoup node, they can be excluded from the calculation.
図12Aの例では、0番目及び1番目の頂点は、同一表面上に存在している。同様に、2番目及び0番目の頂点も、同一表面上に存在している。一方、1番目及び2番目の頂点は、同一表面上に無いため、この2点を結ぶ直線については計算の対象外とできる。 In the example of Figure 12A, the 0th and 1st vertices are on the same surface. Similarly, the 2nd and 0th vertices are on the same surface. On the other hand, the 1st and 2nd vertices are not on the same surface, so the line connecting these two points can be excluded from the calculation.
2頂点を同一表面上に限定した場合、2頂点を結ぶ直線の式は、2次元平面状の直線の式として表現できる。 When two vertices are limited to being on the same surface, the equation of the line connecting the two vertices can be expressed as the equation of a line on a two-dimensional plane.
例えば、0番目の頂点及び1番目の頂点は、それぞれz座標が同一であるため、2頂点を結ぶ直線はx-y平面上の直線としてy=ax+b(aとbは定数)の形で表せる。 For example, the 0th vertex and the 1st vertex have the same z coordinate, so the line connecting the two vertices can be expressed as a line on the x-y plane in the form y = ax + b (a and b are constants).
このx-y平面上において、最小Trisoupノードサイズに分割した場合のエッジはx=C×2(N-1)又はy=D×2(N-1)(C及びDは、それぞれ定数)の直線と見なせるので、上述の直線の式にx=C×2(N-1)又はy=D×2(N-1)を代入することで、交点を算出できる。 On this x-y plane, when divided into the minimum Trisoup node size, the edge can be regarded as a straight line of x = C x 2 (N-1) or y = D x 2 (N-1) (C and D are constants), so the intersection point can be calculated by substituting x = C x 2 (N-1) or y = D x 2 (N-1) into the equation for the straight line above.
以上のようにして算出した交点、及び、当該Trisoupノードサイズにおける頂点の両方を、内挿後の頂点とする。 The intersection calculated in the above manner and the vertex at the Trisoup node size are both considered to be the vertices after interpolation.
図12Bは、以上で説明した方法で生成した頂点の例を示している。 Figure 12B shows an example of a vertex generated using the method described above.
以上のように、近似表面合成部2030は、ノードサイズが最小ノードサイズではない場合、当該ノード頂点のうち2点を結ぶ直線と、当該ノードを前記最小ノードサイズで分割した際の辺との交点を、最小ノードサイズにおける頂点位置とするように構成されていてもよい。
As described above, when the node size is not the minimum node size, the approximate
このような構成とすることで、2本の直線の交点は、数学的に一意に算出可能であるため、頂点位置を正確に算出することが可能となる。 By configuring it in this way, the intersection point of the two lines can be mathematically calculated uniquely, making it possible to accurately calculate the vertex position.
以上のように頂点の生成が完了した後、ステップS1001へ進む。 After vertex generation is complete, proceed to step S1001.
図13は、ステップS1002で使用する頂点の復号処理の一例を示すフローチャートである。 Figure 13 is a flowchart showing an example of the vertex decoding process used in step S1002.
図13に示すように、ステップS1301において、近似表面合成部2030は、全てのtrisoup_depthでの処理が完了したかどうかを判定する。
As shown in FIG. 13, in step S1301, the approximate
全てのtrisoup_depthについて処理が完了した場合、ステップS1305へ進み、処理を終了する。全てのtrisoup_depthの処理が完了していない場合、ステップS1302へ進む。 If processing has been completed for all trisoup_depths, proceed to step S1305 and end processing. If processing has not been completed for all trisoup_depths, proceed to step S1302.
ステップS1302において、近似表面合成部2030は、対象Trisoup階層に属するユニークセグメント数を確認する。
In step S1302, the approximate
ユニークセグメント数が「0」の場合、すなわち、対象Trisoup階層にはTrisoupノードが1つも含まれない場合は、近似表面合成部2030は、ステップS1301へ進み、次のTrisoup階層の処理へ移る。
If the number of unique segments is "0", i.e., if the target Trisoup hierarchy does not contain any Trisoup nodes, the approximate
ユニークセグメント数が「0」より大きい場合は、近似表面合成部2030は、ステップS1303へ移る。
If the number of unique segments is greater than "0", the approximate
ステップS1303において、近似表面合成部2030は、各ユニークセグメントに対してTrisoup処理に用いる頂点が含まれるか否かを復号する。
In step S1303, the approximate
なお、各ユニークセグメントに対して存在できる頂点は、1点のみに制限してもよい。この場合、頂点が存在するユニークセグメント数が頂点数と等しいと解釈できる。 The number of vertices that can exist for each unique segment may be limited to one. In this case, the number of unique segments in which a vertex exists can be interpreted as being equal to the number of vertices.
近似表面合成部2030は、対象Trisoup階層の全てのユニークセグメントについて頂点の有無を復号した後、ステップS1304へ移る。
After the approximate
ステップS1304において、近似表面合成部2030は、ステップS1303において頂点が存在すると判定された各ユニークセグメントに対して、各ユニークセグメント上のどこに頂点が存在するのかという位置情報を復号する。
In step S1304, the approximate
図14は、ステップS1304の処理の一例を示すフローチャートである。 Figure 14 is a flowchart showing an example of the processing of step S1304.
図14に示すように、ステップS1401において、近似表面合成部2030は、全てのセグメントについて処理が終了したかどうかを判定する。
As shown in FIG. 14, in step S1401, the approximate
全てのセグメントについて処理が終了した場合、ステップS1406へ進み処理を終了する。全てのセグメントについて処理が終了していない場合、ステップS1402へ進む。 If processing has been completed for all segments, proceed to step S1406 and end processing. If processing has not been completed for all segments, proceed to step S1402.
ステップS1402では、近似表面合成部2030は、当該セグメントの方向を取得する。具体的には、近似表面合成部2030は、当該セグメントがx軸、y軸、z軸方向のいずれの方向なのかを取得する。
In step S1402, the approximate
かかる情報は、例えば、予め復号対象のノードに属するエッジ(=セグメント)に所定の順序でIndexを与えるとともに当該セグメントの方向を記録しておき、本処理では、Index順に各セグメントを処理することで、前記の記録から当該セグメントの方向を判定することができる。 For example, such information is obtained by assigning indices to edges (= segments) belonging to the node to be decoded in a predetermined order and recording the direction of the segments. In this process, each segment is processed in index order, and the direction of the segment can be determined from the record.
また、別の方法としては、近似表面合成部2030は、セグメントごとに始点の座標と終点の座標の情報を保持しておくことで、どの軸方向に沿った頂点であるかを判別できる。以上のように当該セグメントの方向を取得した後、ステップS1403へ進む。
As another method, the approximate
ステップS1403では、近似表面合成部2030は、当該セグメントのサイズを取得する。
In step S1403, the approximate
当該セグメントのサイズは、対象のOctreeのDepthにおけるノードサイズに対応する。 The size of the segment corresponds to the node size at the depth of the target Octree.
Octreeのみを用いる場合はx軸、y軸、z軸方向すべてについて同一のサイズとなる。一方、QtBtを用いる場合はx軸、y軸、z軸方向それぞれについて値が異なる可能性がある。 When using only Octree, the size will be the same in the x, y, and z directions. On the other hand, when using QtBt, the values may be different in the x, y, and z directions.
近似表面合成部2030は、当該Depthにおけるx軸、y軸、z軸方向それぞれのノードサイズと、ステップS1402で取得した当該セグメントの方向とに基づいて、当該セグメントのサイズを取得する。
The approximate
また、近似表面合成部2030は、別の方法としては、セグメントごとに始点の座標と終点の座標の情報を保持している場合、終点の座標値から始点の座標値を減算することで、当該セグメントのサイズを取得できる。
As an alternative method, if the approximate
当該セグメントのサイズ取得後、近似表面合成部2030は、ステップS1404へ進む。
After obtaining the size of the segment, the approximate
ステップS1404では、近似表面合成部2030は、ステップS1403で取得した当該セグメントのサイズを、これから復号する頂点のPositionの取り得る最大値としてセットする。その後、ステップS1405へ進む。
In step S1404, the approximate
ステップS1405では、近似表面合成部2030は、Positionの取り得る値の範囲を0~“S1404でセットした最大値”―1と設定したうえで、Positionを復号する。
In step S1405, the approximate
例えば、近似表面合成部2030は、最大値が2Lの場合、最大値=2L-1と設定できる。この時、例えば、Positionは、Lビットの等長符号で符号化されていてもよい(点群復号装置200としては、このように符号化されている前提で復号してもよい)。
For example, when the maximum value is 2 L , the approximate
また、近似表面合成部2030は、Positionの取り得る値の範囲を0~2L-1とした上で、ハフマン符号化や算術符号化等を用いて、エントロピー符号化/復号してもよい。近似表面合成部2030は、Positionの復号後、ステップS1401へ進む。
Furthermore, the approximate
以上のように、近似表面合成部2030は、Trisoupの頂点位置の復号に際し、ノード形状に応じてセグメントごとに頂点位置の取り得る値の範囲を設定し、かかる頂点位置の取り得る値の範囲に基づいて頂点位置を復号するように構成されていてもよい。
As described above, when decoding the vertex positions of Trisoup, the approximate
また、近似表面合成部2030は、以上のように、ノードからセグメントを生成する際の各セグメントの軸方向と、ノード形状とに基づいて、頂点位置の取り得る値の範囲を設定するように構成されていてもよい。
The approximate
また、近似表面合成部2030は、以上のように、各セグメントの始点座標と終点座標とに基づいて、頂点位置の取り得る値の範囲を設定するように構成されていてもよい。
The approximate
このような構成とすることで、ノードサイズが立方体ではなく直方体の場合にもTrisoupが適用できるようになり、符号化効率の改善が見込める。 This configuration makes it possible to apply Trisoup even when the node size is a rectangular prism rather than a cube, which is expected to improve coding efficiency.
(点群符号化装置100)
以下、図15を参照して、本実施形態に係る点群符号化装置100について説明する。図15は、本実施形態に係る点群符号化装置100の機能ブロックの一例について示す図である。
(Point cloud encoding device 100)
Hereinafter, the point
図15に示すように、点群符号化装置100は、座標変換部1010と、幾何情報量子化部1020と、ツリー解析部1030と、近似表面解析部1040と、幾何情報符号化部1050と、幾何情報再構成部1060と、色変換部1070と、属性転移部1080と、RAHT部1090と、LoD算出部1100と、リフティング部1110と、属性情報量子化部1120と、属性情報符号化部1130とを有する。
As shown in FIG. 15, the point
座標変換部1010は、入力点群の3次元座標系から、任意の異なる座標系への変換処理を行うよう構成されている。座標変換は、例えば、入力点群を回転することにより、入力点群のx、y、z座標を任意のs、t、u座標に変換してもよい。また、変換のバリエーションの1つとして、入力点群の座標系をそのまま使用してもよい。
The coordinate
幾何情報量子化部1020は、座標変換後の入力点群の位置情報の量子化及び座標が重複する点の除去を行うように構成されている。なお、量子化ステップサイズが1の場合は、入力点群の位置情報と量子化後の位置情報とが一致する。すなわち、量子化ステップサイズが1の場合は、量子化を行わない場合と等価になる。
The geometric
ツリー解析部1030は、量子化後の点群の位置情報を入力として、後述のツリー構造に基づいて、符号化対象空間のどのノードに点が存在するかについて示すoccupancy codeを生成するように構成されている。
The
ツリー解析部1030は、本処理において、符号化対象空間を再帰的に直方体で区切ることにより、ツリー構造を生成するように構成されている。
In this process, the
ここで、ある直方体内に点が存在する場合、かかる直方体を複数の直方体に分割する処理を、直方体が所定のサイズになるまで再帰的に実行することでツリー構造を生成することができる。なお、かかる各直方体をノードと呼ぶ。また、ノードを分割して生成される各直方体を子ノードと呼び、子ノード内に点が含まれるか否かについて0又は1で表現したものがoccupancy codeである。 If a point exists within a certain rectangular parallelepiped, a tree structure can be generated by recursively dividing the rectangular parallelepiped into multiple rectangular parallelepipeds until the rectangular parallelepiped reaches a specified size. Each such rectangular parallelepiped is called a node. Each rectangular parallelepiped generated by dividing a node is called a child node, and the occurrence code is expressed as 0 or 1 to indicate whether or not a point is contained within a child node.
以上のように、ツリー解析部1030は、所定のサイズになるまでノードを再帰的に分割しながら、occupancy codeを生成するように構成されている。
As described above, the
本実施形態では、上述の直方体を常に立方体として8分木分割を再帰的に行う「Octree」と呼ばれる手法、及び、8分木分割に加え、4分木分割及び2分木分割を行う「QtBt」と呼ばれる手法を使用することができる。 In this embodiment, a method called "Octree" can be used, which recursively performs octree division on the above-mentioned rectangular parallelepiped, always treating it as a cube, and a method called "QtBt" can be used, which performs quadtree division and binary tree division in addition to octree division.
ここで、「QtBt」を使用するか否かについては、制御データとして点群復号装置200に伝送される。
Here, whether or not to use "QtBt" is transmitted to the point
或いは、任意のツリー構成を用いるPredicitive codingを使用するように指定されてもよい。かかる場合、ツリー解析部1030が、ツリー構造を決定し、決定されたツリー構造は、制御データとして点群復号装置200へ伝送される。
Alternatively, predictive coding using an arbitrary tree structure may be specified. In such a case, the
例えば、ツリー構造の制御データは、図6で説明した手順で復号できるよう構成されていてもよい。 For example, the tree-structured control data may be configured so that it can be decoded using the procedure described in FIG. 6.
近似表面解析部1040は、ツリー解析部1030によって生成されたツリー情報を用いて、近似表面情報を生成するように構成されている。
The approximate
近似表面情報は、例えば、物体の3次元点群データを復号する際等において、点群が物体表面に密に分布しているような場合に、個々の点群を復号するのではなく、点群の存在領域を小さな平面で近似して表現したものである。 When decoding three-dimensional point cloud data of an object, for example, if the points are densely distributed on the object's surface, approximate surface information is used to represent the area in which the points exist by approximating the area using a small plane, rather than decoding each point individually.
具体的には、近似表面解析部1040は、例えば、「Trisoup」と呼ばれる手法で、近似表面情報を生成するように構成されていてもよい。また、Lidar等で取得した疎な点群を復号する場合は、本処理を省略することができる。
Specifically, the approximate
幾何情報符号化部1050は、ツリー解析部1030によって生成されたoccupancy code及び近似表面解析部1040によって生成された近似表面情報等のシンタックスを符号化してビットストリーム(幾何情報ビットストリーム)を生成するように構成されている。ここで、ビットストリームには、例えば、図4及び図5で説明したシンタックスを含まれていてもよい。
The geometric
符号化処理は、例えば、コンテクスト適応二値算術符号化処理である。ここで、例えば、シンタックスは、位置情報の復号処理を制御するための制御データ(フラグやパラメータ)を含む。 The encoding process is, for example, a context-adaptive binary arithmetic encoding process. Here, for example, the syntax includes control data (flags and parameters) for controlling the decoding process of the position information.
幾何情報再構成部1060は、ツリー解析部1030によって生成されたツリー情報及び近似表面解析部1040によって生成された近似表面情報に基づいて、符号化対象の点群データの各点の幾何情報(符号化処理が仮定している座標系、すなわち、座標変換部1010における座標変換後の位置情報)を再構成するように構成されている。
The geometric
色変換部1070は、入力の属性情報が色情報であった場合に、色変換を行うように構成されている。色変換は、必ずしも実行する必要は無く、色変換処理の実行の有無については、制御データの一部として符号化され、点群復号装置200へ伝送される。
The
属性転移部1080は、入力点群の位置情報、幾何情報再構成部1060における再構成後の点群の位置情報及び色変換部1070での色変化後の属性情報に基づいて、属性情報の歪みが最小となるように属性値を補正するように構成されている。
The
RAHT部1090は、属性転移部1080による転移後の属性情報及び幾何情報再構成部1060によって生成された幾何情報を入力とし、RAHT(Region Adaptive Hierarchical Transform)と呼ばれるHaar変換の一種を用いて、各点の残差情報を生成するように構成されている。RAHTの具体的な処理としては、例えば、上述の文献2に記載の方法を用いることができる。
The
LoD算出部1100は、幾何情報再構成部1060によって生成された幾何情報を入力とし、LoD(Level of Detail)を生成するように構成されている。
The
LoDは、ある点の属性情報から、他のある点の属性情報を予測し、予測残差を符号化或いは復号するといった予測符号化を実現するための参照関係(参照する点及び参照される点)を定義するための情報である。 LoD is information for defining a reference relationship (a referencing point and a referenced point) to realize predictive coding, such as predicting attribute information of a certain point from attribute information of another point and encoding or decoding the prediction residual.
言い換えると、LoDは、幾何情報に含まれる各点を複数のレベルに分類し、下位のレベルに属する点については上位のレベルに属する点の属性情報を用いて属性を符号化或いは復号するといった階層構造を定義した情報である。 In other words, LoD is information that defines a hierarchical structure in which each point contained in the geometric information is classified into multiple levels, and the attributes of points belonging to lower levels are encoded or decoded using attribute information of points belonging to higher levels.
LoDの具体的な決定方法としては、例えば、上述の文献2に記載の方法を用いてもよい。 As a specific method for determining LoD, for example, the method described in the above-mentioned literature 2 may be used.
リフティング部1110は、LoD算出部1100によって生成されたLoD及び属性転移部1080での属性転移後の属性情報を用いて、リフティング処理により残差情報を生成するように構成されている。
The
リフティングの具体的な処理としては、例えば、文献(Text of ISO/IEC 23090-9 DIS Geometry-based PCC、ISO/IEC JTC1/SC29/WG11 N19088)に記載の方法を用いてもよい。 Specific lifting processing may be, for example, the method described in the literature (Text of ISO/IEC 23090-9 DIS Geometry-based PCC, ISO/IEC JTC1/SC29/WG11 N19088).
属性情報量子化部1120は、RAHT部1090又はリフティング部1110から出力される残差情報を量子化するように構成されている。ここで、量子化ステップサイズが1の場合は、量子化を行わない場合と等価である。
The attribute information quantization unit 1120 is configured to quantize the residual information output from the
属性情報符号化部1130は、属性情報量子化部1120から出力される量子化後の残差情報等をシンタックスとして符号化処理を行い、属性情報に関するビットストリーム(属性情報ビットストリーム)を生成するように構成されている。 The attribute information encoding unit 1130 is configured to perform encoding processing using the quantized residual information, etc. output from the attribute information quantization unit 1120 as syntax, and generate a bit stream related to the attribute information (attribute information bit stream).
符号化処理は、例えば、コンテクスト適応二値算術符号化処理である。ここで、例えば、シンタックスは、属性情報の復号処理を制御するための制御データ(フラグ及びパラメータ)を含む。 The encoding process is, for example, a context-adaptive binary arithmetic encoding process. Here, for example, the syntax includes control data (flags and parameters) for controlling the decoding process of the attribute information.
点群符号化装置100は、以上の処理により、点群内の各点の位置情報及び属性情報を入力として符号化処理を行い、幾何情報ビットストリーム及び属性情報ビットストリームを出力するように構成されている。
The point
また、上述の点群符号化装置100及び点群復号装置200は、コンピュータに各機能(各工程)を実行させるプログラムであって実現されていてもよい。
Furthermore, the above-mentioned point
なお、上記の各実施形態では、本発明を点群符号化装置100及び点群復号装置200への適用を例にして説明したが、本発明は、かかる例のみに限定されるものではなく、点群符号化装置100及び点群復号装置200の各機能を備えた点群符号化/復号システムにも同様に適用できる。
In each of the above embodiments, the present invention has been described using the point
なお、本実施形態によれば、例えば、動画像通信において総合的なサービス品質の向上を実現できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。 In addition, according to this embodiment, for example, it is possible to realize an improvement in the overall service quality in video communication, which makes it possible to contribute to Goal 9 of the Sustainable Development Goals (SDGs) led by the United Nations, which is to "build resilient infrastructure, promote sustainable industrialization and foster innovation."
10…点群処理システム
100…点群符号化装置
1010…座標変換部
1020…幾何情報量子化部
1030…ツリー解析部
1040…近似表面解析部
1050…幾何情報符号化部
1060…幾何情報再構成部
1070…色変換部
1080…属性転移部
1090…RAHT部
1100…LoD算出部
1110…リフティング部
1120…属性情報量子化部
1130…属性情報符号化部
200…点群復号装置
2010…幾何情報復号部
2020…ツリー合成部
2030…近似表面合成部
2040…幾何情報再構成部
2050…逆座標変換部
2060…属性情報復号部
2070…逆量子化部
2080…RAHT部
2090…LoD算出部
2100…逆リフティング部
2110…逆色変換部
10... Point
Claims (6)
近似表面合成部を備え、
前記近似表面合成部は、
制御データから復号した最大ノードサイズ及び最小ノードサイズに基づいて、最大と最小との間の各ノードサイズにおいて頂点の復号処理を実行し、
前記ノードサイズが前記最小ノードサイズではない場合、復号した前記頂点に基づいて、前記最小ノードサイズにおける頂点位置を生成し、
ある辺上に、前記ある辺に隣接する異なるノードサイズのノードから生成された複数の頂点が存在する場合、前記隣接する異なるノードのうち、最も大きなノードサイズを持つノードによって生成された頂点を、前記ある辺の前記頂点位置とするように構成されていることを特徴とする点群復号装置。 A point cloud decoding device, comprising:
An approximate surface synthesis unit is provided,
The approximate surface synthesis unit includes:
Based on the maximum node size and the minimum node size decoded from the control data, a decode process is performed for the vertices at each node size between the maximum and minimum;
if the node size is not the minimum node size, generating vertex positions at the minimum node size based on the decoded vertices;
A point cloud decoding device characterized in that, when there are multiple vertices on a certain edge generated from nodes of different node sizes adjacent to the certain edge, the vertex generated by the node with the largest node size among the different adjacent nodes is configured to be the vertex position of the certain edge.
制御データから復号した最大ノードサイズ及び最小ノードサイズに基づいて、最大と最小との間の各ノードサイズにおいて頂点の復号処理を実行する工程と、
前記ノードサイズが前記最小ノードサイズではない場合、復号した前記頂点に基づいて、前記最小ノードサイズにおける頂点位置を生成する工程と、
ある辺上に、前記ある辺に隣接する異なるノードサイズのノードから生成された複数の頂点が存在する場合、前記隣接する異なるノードのうち、最も大きなノードサイズを持つノードによって生成された頂点を、前記ある辺の前記頂点位置とする工程とを有することを特徴とする点群復号方法。 1. A point cloud decoding method, comprising:
performing a decoding process for vertices at each node size between the maximum and minimum based on the maximum and minimum node sizes decoded from the control data;
if the node size is not the minimum node size, generating a vertex position at the minimum node size based on the decoded vertex;
A point cloud decoding method characterized by comprising a step of, when there are multiple vertices on a certain edge generated from nodes of different node sizes adjacent to the certain edge, setting the vertex generated by the node with the largest node size among the different adjacent nodes as the vertex position of the certain edge.
前記点群復号装置は、
近似表面合成部を備え、
前記近似表面合成部は、
制御データから復号した最大ノードサイズ及び最小ノードサイズに基づいて、最大と最小との間の各ノードサイズにおいて頂点の復号処理を実行し、
前記ノードサイズが前記最小ノードサイズではない場合、復号した前記頂点に基づいて、前記最小ノードサイズにおける頂点位置を生成し、
ある辺上に、前記ある辺に隣接する異なるノードサイズのノードから生成された複数の頂点が存在する場合、前記隣接する異なるノードのうち、最も大きなノードサイズを持つノードによって生成された頂点を、前記ある辺の前記頂点位置とするように構成されていることを特徴とするプログラム。 A program for causing a computer to function as a point group decoding device,
The point group decoding device comprises:
An approximate surface synthesis unit is provided,
The approximate surface synthesis unit includes:
Based on the maximum node size and the minimum node size decoded from the control data, a decode process is performed for the vertices at each node size between the maximum and minimum;
if the node size is not the minimum node size, generating vertex positions at the minimum node size based on the decoded vertices;
A program characterized by being configured such that, when there are multiple vertices on a certain edge generated from nodes of different node sizes adjacent to the certain edge, the vertex generated by the node with the largest node size among the different adjacent nodes is set as the vertex position of the certain edge.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022110163A JP7680398B2 (en) | 2022-07-08 | 2022-07-08 | Point group decoding device, point group decoding method and program |
| PCT/JP2023/008642 WO2024009562A1 (en) | 2022-07-08 | 2023-03-07 | Point cloud decoding device, point cloud decoding method, and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022110163A JP7680398B2 (en) | 2022-07-08 | 2022-07-08 | Point group decoding device, point group decoding method and program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2024008354A JP2024008354A (en) | 2024-01-19 |
| JP7680398B2 true JP7680398B2 (en) | 2025-05-20 |
Family
ID=89452974
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022110163A Active JP7680398B2 (en) | 2022-07-08 | 2022-07-08 | Point group decoding device, point group decoding method and program |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP7680398B2 (en) |
| WO (1) | WO2024009562A1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP4345752B1 (en) * | 2022-09-28 | 2026-04-08 | Beijing Xiaomi Mobile Software Co., Ltd. | Encoding/decoding positions of points of a point cloud comprised in cuboid volumes |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021065536A1 (en) | 2019-10-01 | 2021-04-08 | ソニー株式会社 | Information processing device and method |
| WO2021261142A1 (en) | 2020-06-22 | 2021-12-30 | Kddi株式会社 | Point group decoding device, point group decoding method, and program |
| WO2022138046A1 (en) | 2020-12-25 | 2022-06-30 | Kddi株式会社 | Point cloud decoding device, point cloud decoding method, and program |
-
2022
- 2022-07-08 JP JP2022110163A patent/JP7680398B2/en active Active
-
2023
- 2023-03-07 WO PCT/JP2023/008642 patent/WO2024009562A1/en not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021065536A1 (en) | 2019-10-01 | 2021-04-08 | ソニー株式会社 | Information processing device and method |
| WO2021261142A1 (en) | 2020-06-22 | 2021-12-30 | Kddi株式会社 | Point group decoding device, point group decoding method, and program |
| WO2022138046A1 (en) | 2020-12-25 | 2022-06-30 | Kddi株式会社 | Point cloud decoding device, point cloud decoding method, and program |
Non-Patent Citations (4)
| Title |
|---|
| Antoine Dricot, and Joao Ascenso,Adaptive Multi-level Triangle Soup for Geometrybased Point Cloud Coding,2019 IEEE 21st International Workshop on Multimedia Signal Processing (MMSP),IEEE,2019年09月,pp.1-6 |
| Chaofei Wang, et al.,Point-Voting based Point Cloud Geometry Compression,2021 IEEE 23rd International Workshop on Multimedia Signal Processing (MMSP),IEEE,2021年10月,pp.1-5 |
| Khaled Mammou, Philip A. Chou, David Flynn, Maja Krivokuca, Ohji Nakagami and Toshiyasu Sugio,G-PCC codec description v2,CODING OF MOVING PICTURES AND AUDIO,INTERNATIONAL ORGANISATION FOR STANDARDISATION,2019年01月,pp.2-3,17-19 |
| Part 9: Geometry-based Point Cloud Compression,Information technolo gy - MPEG-I (Coded Representation of Immersive Media) -,ISO/IEC DIS 23090-9,ISO,2020年,pp.54-63 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2024009562A1 (en) | 2024-01-11 |
| JP2024008354A (en) | 2024-01-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN113615181B (en) | Methods and devices for point cloud encoding and decoding | |
| JP2022535487A (en) | Method and apparatus for point cloud compression, and computer program | |
| CN113826029B (en) | Point cloud information encoding method, device, computer equipment and storage medium | |
| JP7651760B2 (en) | Point group decoding device, point group decoding method and program | |
| CN113632142A (en) | Method and device for point cloud compression | |
| CN113315977B (en) | Method and device for decoding point cloud information | |
| CN113179411A (en) | Point cloud attribute coding and decoding method and device, computer equipment and storage medium | |
| JP7680398B2 (en) | Point group decoding device, point group decoding method and program | |
| JP7573554B2 (en) | Point group decoding device, point group decoding method and program | |
| WO2024214442A1 (en) | Point cloud decoding device, point cloud decoding method, and program | |
| JP7573555B2 (en) | Point group decoding device, point group decoding method and program | |
| JP7557436B2 (en) | Point group decoding device, point group decoding method and program | |
| JP7773959B2 (en) | Point group decoding device, point group decoding method and program | |
| JP7773960B2 (en) | Point group decoding device, point group decoding method and program | |
| WO2024009561A1 (en) | Point cloud decoding device, point cloud decoding method, and program | |
| WO2024009675A1 (en) | Point cloud decoding device, point cloud decoding method, and program | |
| JP2024008355A (en) | Point cloud decoding device, point cloud decoding method and program | |
| JP7842682B2 (en) | Point cloud decoding device, point cloud decoding method, and program | |
| JP7812781B2 (en) | Point group decoding device, point group decoding method and program | |
| JP2023053827A (en) | Point group decoding device, point group decoding method and program | |
| JP7829505B2 (en) | Point cloud decoding device, point cloud decoding method, and program | |
| JP7573553B2 (en) | Point group decoding device, point group decoding method and program | |
| JP2024152411A (en) | Point group decoding device, point group decoding method and program | |
| HK40047927A (en) | Point cloud attribute encoding an decoding method, device, computer equipment and storage medium | |
| HK40064136A (en) | Method and device for point cloud encoding and decoding |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220729 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240716 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20250422 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250508 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7680398 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |