JP7573555B2 - 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
- JP7573555B2 JP7573555B2 JP2022001928A JP2022001928A JP7573555B2 JP 7573555 B2 JP7573555 B2 JP 7573555B2 JP 2022001928 A JP2022001928 A JP 2022001928A JP 2022001928 A JP2022001928 A JP 2022001928A JP 7573555 B2 JP7573555 B2 JP 7573555B2
- Authority
- JP
- Japan
- Prior art keywords
- synthesis unit
- trisoup
- vertices
- node
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- 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)
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 that includes an approximate surface synthesis unit configured to perform vertex decoding processing for each of a plurality of node sizes and to perform point reconstruction processing based on the vertices for a single node size.
本発明の第2の特徴は、点群復号方法であって、複数のノードサイズ毎に頂点の復号処理を実行する工程と、単一のノードサイズで前記頂点に基づいた点の再構成処理を実行する工程とを備えることを要旨とする。 The second feature of the present invention is a point cloud decoding method that includes a step of performing a vertex decoding process for each of a plurality of node sizes, and a step of performing a point reconstruction process based on the vertices for a single node size.
本発明の第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 comprising an approximate surface synthesis unit configured to execute vertex decoding processing for each of a plurality of node sizes, and execute point reconstruction processing based on the vertices for a single node size.
本発明によれば、復号点群の主観画質を損なうことなく、符号化効率を高めることができる点群復号装置、点群復号方法及びプログラムを提供することができる。 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~図22を参照して、本発明の第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と、フレームバッファ2120とを有する。
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
或いは、制御データによってPredicitive 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
フレームバッファ2120は、幾何情報再構成部2040によって再構成された幾何情報を入力として、参照フレームとして保存するように構成されている。保存した参照フレームは、ツリー合成部2020において時間的に異なるフレームのインター予測を行う場合に、フレームバッファ2120から読み出されて参照フレームとして使用される。
The
ここで、各フレームに対してどの時刻の参照フレームを用いるかどうかは、例えば、点群符号化装置100からビットストリームとして伝送されてくる制御データに基づいて決定されてもよい。
Here, which reference frame to use for each frame may be determined based on, for example, control data transmitted as a bit stream from the point
属性情報復号部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([PCC]An exploratory model for inter geometry-based PCC、ISO/IEC JTC1/SC29/WG11 m44754)に記載の方法を用いることができる。
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~図5を用いて幾何情報復号部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は、ツリー合成部2020でインター予測を行うか否かを制御するフラグ(interprediction_enabled_flag)を含んでもよい。
GPS2011 may include a flag (interprediction_enabled_flag) that controls whether or not inter prediction is performed in the
例えば、interprediction_enabled_flagの値が「0」の時はインター予測を行わないと定義し、interprediction_enabled_flagの値が「1」の時はインター予測を行うと定義してもよい。 For example, it may be defined that when the value of interprediction_enabled_flag is "0", inter prediction is not performed, and when the value of interprediction_enabled_flag is "1", inter prediction is performed.
なお、interprediction_enabled_flagは、GPS2011ではなくSPS2001に含んでいてもよい。 Note that interpretation_enabled_flag may be included in SPS2001 instead of GPS2011.
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を許可するとき、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ノードサイズの最小値について、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 with base 2 for the actual minimum Trisoup node size.
また、当該シンタックスの値は、必ず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 -
幾何情報復号部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])を含んでもよい。例えば、unique_segments_exist_flag[i]の値が「1」の場合は、階層iに少なくとも1つ以上のユニークセグメントが存在することを意味する。また、unique_segments_exist_flag[i]の値が「0」の場合は、階層iにユニークセグメントが1つも存在しないことを意味する。 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. For example, if the value of unique_segments_exist_flag[i] is "1", this means that at least one unique segment exists in hierarchical level i. Also, if the value of unique_segments_exist_flag[i] is "0", this means that no unique segments exist in hierarchical level 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.
(ツリー合成部2020)
以下、図6~図8を用いてツリー合成部2020の処理について説明する。図6は、ツリー合成部2020における処理の一例を示すフローチャートである。なお、以下では「Octree」を使用してツリーを合成する場合の例について説明する。
(Tree synthesis unit 2020)
The processing of the
ステップS601において、ツリー合成部2020は、全てのDepthの処理が完了したかどうかを確認する。なお、Depth数は、点群符号化装置100から点群復号装置200に伝送するビットストリーム内に制御データとして含まれていてもよい。
In step S601, 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、等)の値をノードサイズと考えてもよい。以降の説明では、ノードサイズとは、指数部分の値を指すこととする。 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.
全てのDepthの処理が完了した場合は、ツリー合成部2020は、ステップS609へ進み、全てのDepthの処理が完了していない場合は、ツリー合成部2020は、ステップS602へ進む。
If processing of all depths has been completed, the
言い換えると、対象Depthがn番目のDepthの時、(N-n)=0の場合は、ツリー合成部2020は、ステップS609へ進み、(N-n)>0の場合は、ツリー合成部2020は、ステップS602へ進む。
In other words, when the target depth is the nth depth, if (N-n)=0, the
ここで、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は、ステップS609へ進み、そうでない場合は、ツリー合成部2020は、ステップS602へ進む。
In this case, if processing for all processing depth numbers is completed, the
言い換えると、(処理Depth数-n)=0の場合は、ツリー合成部2020は、ステップS609へ進み、(処理Depth数-n)>0の場合は、ツリー合成部2020は、ステップS602へ進む。
In other words, if (processing depth number - n) = 0, the
また、ツリー合成部2020は、ステップS609へ進む際のノードサイズ(N-処理Depth数)を持つ全てのノードには、Trisoupが適用されると判定してもよい。
The
ステップS602において、ツリー合成部2020は、対象Depthにて後述するTrisoup_applied_flagを復号する必要があるか否かを判定する。
In step S602, 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は、上述の条件が満たされない場合、「Trisoup_applied_flagの復号が必要ない」と判定してもよい。
In addition, if the above conditions are not met, the
ここで、最大のTrisoupノードサイズについては、例えば、(log2_trisoup_max_node_size_minus3+2)で定義できる。 Here, the maximum Trisoup node size can be defined as, for example, (log2_trisoup_max_node_size_minus3+2).
上述の判定が完了したら、ツリー合成部2020は、ステップS703へ移る。
Once the above-mentioned determination is completed, the
ステップS603において、ツリー合成部2020は、対象Depthに含まれる全てのノードの処理が完了したかどうかを判定する。
In step S603, the
対象Depthの全てのノードの処理が完了したと判定した場合、ツリー合成部2020は、ステップS601へ移り、次のDepthの処理を行う。
If it is determined that processing of all nodes at the target Depth has been completed, the
一方、対象Depthの全てのノードの処理が完了していない場合、ツリー合成部2020は、ステップS604へ移る。
On the other hand, if processing of all nodes at the target Depth has not been completed, the
ステップS604において、ツリー合成部2020は、ステップS602で判定したTrisoup_applied_flagの復号の要否について確認する。
In step S604, the
Trisoup_applied_flagの復号が必要であると判定されている場合は、ツリー合成部2020は、ステップS605へ進み、Trisoup_applied_flagの復号が必要でないと判定されている場合は、ツリー合成部2020は、ステップS608へ移る。
If it is determined that decoding of Trisoup_applied_flag is necessary, the
ステップS605において、ツリー合成部2020は、Trisoup_applied_flagを復号する。
In step S605, 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を復号した後、ステップS606へ移る。
After the
ステップS606において、ツリー合成部2020は、ステップS605で復号したTrisoup_applied_flagの値を確認する。
In step S606, the
対象ノードにTrisoupを適用する場合、すなわち、Trisoup_applied_flagの値が「1」の場合は、ツリー合成部2020は、ステップS607へ移る。
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は、ステップS608へ移る。
If Trisoup is not applied to the target node, i.e., if the value of Trisoup_applied_flag is "0", the
ステップS607において、ツリー合成部2020は、対象ノードを、Trisoupを適用するノード、すなわち、Trisoupノードとして記憶する。かかる対象ノードに対しては、これ以上、「Octree」によるノードの分割を適用しないこととする。その後、ツリー合成部2020は、ステップS603に進み、次のノードの処理へ移る。
In step S607, the
ステップS608において、ツリー合成部2020は、occpancy codeと呼ばれる情報を復号する。
In step S608, 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においては、エントロピー符号化してもよい。更に、かかる確率の推定に、インター予測を用いてもよい。インター予測の具体的な方法としては、例えば、上述の文献1に記載の方法を適用できる。更に、インター予測を行う際の参照点群に、アップサンプルした点群を用いてもよい。
Similarly, in the point
図7~8を用いて、インター予測を用いる場合のoccpancy codeの復号処理の具体例について説明する。 A specific example of the decoding process of an occurrence code when inter prediction is used will be described using Figures 7 and 8.
図7は、ノード毎のoccpancy codeの復号処理の具体例を示すフローチャートである。言い換えると、図7は、図6のステップS608の処理の具体例を示すフローチャートである。 Figure 7 is a flowchart showing a specific example of the process of decoding the occupancy code for each node. In other words, Figure 7 is a flowchart showing a specific example of the process of step S608 in Figure 6.
図7に示すように、ステップS701において、ツリー合成部2020は、コンテクストの選択を行う。コンテクストは、後段の占有情報復号の際のエントロピー復号において使用する確率分布に対応している。
As shown in FIG. 7, in step S701, the
図8は、インター予測を用いて4種類のコンテクスト(no pred/pred0/pred1/predL)からいずれか1つを選択する場合のフローチャートの一例である。 Figure 8 is an example of a flowchart for selecting one of four types of contexts (no pred/pred0/pred1/predL) using inter prediction.
以下、図8を用いてコンテクスト選択の一例を説明する。なお、図8では、コンテクストが4種類の例について説明するが、コンテクストの数は、4種類でなくともよい。 An example of context selection will be described below with reference to FIG. 8. Note that, although FIG. 8 describes an example in which there are four types of context, the number of types of context does not have to be four.
図8に示すように、ステップS801において、ツリー合成部2020は、インター予測の精度を判定する。
As shown in FIG. 8, in step S801, the
インター予測の精度については、例えば、対象ノードの親ノードにおける子ノード(Octreeの場合、8つの子ノード)について、選択したコンテクスト及び実際の点の有無によって判断できる。 The accuracy of inter prediction can be determined, for example, by the presence or absence of the selected context and actual points for the child nodes (eight child nodes in the case of Octree) of the parent node of the target node.
例えば、pred0のコンテクストを選択した子ノードについて、実際に点が存在しなかった場合を正解とし、実際に点が存在した場合を不正解とする。一方、pred1又はpredLを選択した子ノードについては、実際に点が存在した場合を正解とし、実際に点が存在しなかった場合を不正解とする。 For example, for a child node that selects the context of pred0, if a point does not actually exist, it is considered a correct answer, and if a point actually exists, it is considered an incorrect answer. On the other hand, for a child node that selects pred1 or predL, if a point actually exists, it is considered a correct answer, and if a point does not actually exist, it is considered an incorrect answer.
ここで、親ノードに属する子ノードについて、正解となった子ノードの数が予め定めた閾値より大きい場合、インター予測の精度は「良い」と判断できる。一方、親ノードに属する子ノードについて、正解となった子ノードの数が予め定めた閾値以下の場合、インター予測の精度は「悪い」と判断できる。 Here, when the number of child nodes belonging to a parent node that are correct is greater than a predetermined threshold, the accuracy of inter prediction can be determined to be "good." On the other hand, when the number of child nodes belonging to a parent node that are correct is equal to or less than a predetermined threshold, the accuracy of inter prediction can be determined to be "poor."
インター予測の精度が「良い」と判断された場合、ツリー合成部2020は、ステップS802へ進む。インター予測の精度が「悪い」と判断された場合、ツリー合成部2020は、ステップS805へ進み、対象ノードに属する全ての子ノードについてコンテクストを「no pred」とし、処理を終了する。
If the accuracy of inter prediction is determined to be "good", the
ステップS802において、ツリー合成部2020は、動き補償した参照フレームにおいて、対象ノードと同じ位置の領域に少なくとも1点の参照点が存在するか否かを確認する。
In step S802, the
対象ノードと同じ位置の領域に少なくとも1点の参照点が存在する場合、ツリー合成部2020は、ステップS803へ進む。一方、対象ノードと同じ位置の領域に参照点が1点もない場合、ツリー合成部2020は、ステップS805へ進み、対象ノードに属する全ての子ノードについてコンテクストを「no pred」とし、処理を終了する。
If there is at least one reference point in the area in the same position as the target node, the
ステップS803以降では、ツリー合成部2020は、対象ノードに属する子ノード毎に判定を行う。
From step S803 onwards, the
ステップS803において、ツリー合成部2020は、動き補償した参照フレームにおいて、対象子ノードと同じ位置の領域に少なくとも1点の参照点が存在するか否かを確認する。
In step S803, the
対象子ノードと同じ位置の領域に少なくとも1点の参照点が存在する場合、ツリー合成部2020は、ステップS804へ進む。一方、対象子ノードと同じ位置の領域に参照点が1点もない場合、ツリー合成部2020は、ステップS806へ進み、対象子ノードのコンテクストを「pred0」とする。
If there is at least one reference point in the area at the same position as the target child node, the
対象ノードの全ての子ノードについてコンテクスト選択が完了していない場合、ツリー合成部2020は、ステップS803へ戻り、次の子ノードについて同様の処理を行う。
If context selection has not been completed for all child nodes of the target node, the
対象ノードの全ての子ノードについてコンテクスト選択が完了した場合、ツリー合成部2020は、処理を終了する。
When context selection has been completed for all child nodes of the target node, the
ステップS804において、ツリー合成部2020は、動き補償した参照フレームにおいて、対象子ノードと同じ位置の領域に予め定めた閾値以上の数の参照点が存在するか否かを確認する。
In step S804, the
対象子ノードと同じ位置の領域に予め定めた閾値以上の数の参照点が存在する場合、ツリー合成部2020は、ステップS808へ進み、対象子ノードのコンテクストを「predL」とする。
If there are a number of reference points equal to or greater than a predetermined threshold in the area at the same position as the target child node, the
一方、対象子ノードと同じ位置の領域に予め定めた閾値未満の数の参照点しか存在しない場合、ツリー合成部2020は、ステップS807へ進み、対象子ノードのコンテクストを「pred1」とする。
On the other hand, if there are only a number of reference points less than the predetermined threshold in the area at the same position as the target child node, the
ステップS807又はS808の処理の後、対象ノードの全ての子ノードについてコンテクスト選択が完了していない場合、ツリー合成部2020は、ステップS804へ戻り、次の子ノードについて同様の処理を行う。
If, after the processing of step S807 or S808, context selection has not been completed for all child nodes of the target node, the
対象ノードの全ての子ノードについてコンテクスト選択が完了した場合、ツリー合成部2020は、処理を終了する。
When context selection has been completed for all child nodes of the target node, the
以上のようにコンテクストを選択した後、ツリー合成部2020は、ステップS702へ進む。
After selecting the context as described above, the
ステップS702において、ツリー合成部2020は、ステップS701で選択したコンテクストに基づいて、対象ノードの各子ノードの占有情報、すなわち、occpancy codeを復号する。
In step S702, the
ここで、コンテクストは、それぞれ独立した確率分布に対応している。後述するステップS703のコンテクスト更新によって、コンテクストごとに復号対象の点が存在する確率が学習される。 Here, each context corresponds to an independent probability distribution. By updating the context in step S703, which will be described later, the probability that the point to be decoded exists is learned for each context.
なお、各コンテクストにおける確率分布の初期値は、例えば、点が存在する確率50%(=存在しない確率も50%)と定義することができる。 The initial value of the probability distribution in each context can be defined as, for example, a 50% probability that a point exists (= a 50% probability that it does not exist).
ステップS702において、ツリー合成部2020は、コンテクストに対応する確率分布を基にエントロピー復号を行い、各子ノードに点が存在するか(「1」であるか)否か(「0」であるか)を復号する。occpancy codeの復号完了後、ツリー合成部2020は、ステップS703へ進む。
In step S702, the
ステップS703において、ツリー合成部2020は、コンテクストを更新する。
In step S703, the
例えば、ツリー合成部2020は、ステップS703において、各コンテクストにおいて、占有情報を復号した結果点が存在した場合、各コンテクストに紐づく確率分布を、点が存在する確率が高くなるように更新する。
For example, in step S703, if a point exists in each context as a result of decoding the occupancy information, the
一方、ツリー合成部2020は、ステップS703において、各コンテクストにおいて、占有情報を復号した結果点が存在しなかった場合、各コンテクストに紐づく確率分布を、点が存在する確率が低くなるように更新する。
On the other hand, in step S703, if the point does not exist in each context as a result of decoding the occupancy information, the
コンテクストの更新が完了したら、ツリー合成部2020は、ステップS704へ進み、処理を終了する。
Once the context update is complete, the
ツリー合成部2020は、occpancy codeを復号した後、ステップS603へ進み、次のノードの処理へ移る。
After decoding the occupancy code, the
(近似表面合成部2030)
近似表面合成部2030は、図6で説明したようにツリー合成部2020にてTrisoupノードと判定された各ノードについて、復号処理を行うように構成されている。
(Approximate surface synthesis unit 2030)
The approximate
以下、図9~図20を用いて近似表面合成部2030の処理の例について説明する。
Below, an example of the processing performed by the approximate
図9は、近似表面合成部2030の処理の一例を示すフローチャートである。
Figure 9 is a flowchart showing an example of processing by the approximate
図9に示すように、ステップS901において、近似表面合成部2030は、ノード毎の頂点位置を復号する。
As shown in FIG. 9, in step S901, the approximate
ここで、近似表面合成部2030は、複数レベルでのTrisoupを許可するとき、すなわち、trisoup_multilevel_enabled_flagの値が「1」の時は、最小Trisoupノードサイズにおけるノード毎に頂点位置を復号する。
Here, when Trisoup at multiple levels is permitted, i.e., when the value of trisoup_multilevel_enabled_flag is "1", the approximate
一方、近似表面合成部2030は、複数レベルでのTrisoupを許可しないとき、すなわち、trisoup_multilevel_enabled_flagの値が「0」の時は、Trisoupノードサイズにおけるノード毎に頂点位置を復号する。具体的な処理については後述する。
On the other hand, when Trisoup at multiple levels is not permitted, i.e., when the value of trisoup_multilevel_enabled_flag is "0", the approximate
頂点位置の復号が完了した後、近似表面合成部2030は、ステップS902へ進む。
After decoding of the vertex positions is complete, the approximate
ステップS902において、近似表面合成部2030は、頂点位置を復号したノード毎(最小Trisoupノードサイズ、又は、Trisoupノードサイズにおけるノード毎)に、投影面を決定する。
In step S902, the approximate
例えば、x軸、y軸、z軸の3つの軸があるとき、どれか一つの軸を縮退した平面を投影面と呼ぶ。 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.
ステップS902では、近似表面合成部2030は、上述の軸のうちどの軸を縮退するか、すなわち、x-y平面、x-z平面、y-z平面のうちどの平面を投影面とするかを決定する。具体的な処理については後述する。
In step S902, the approximate
投影面を決定した後、近似表面合成部2030は、ステップS903へ進む。
After determining the projection surface, the approximate
ステップS903において、近似表面合成部2030は、投影面に投影した頂点を、例えば反時計回りの順になるようにソートし、前記の順序に従ってindexを付与する。
In step S903, the approximate
indexを付与した後、近似表面合成部2030は、ステップS904へ進む。
After assigning the index, the approximate
ステップS904において、近似表面合成部2030は、上述のindex及び対象ノードに存在する頂点数に基づいて、三角形を生成する。
In step S904, the approximate
例えば、近似表面合成部2030は、予め頂点数毎にどのindexから三角形を生成するかを定義した表を作成しておき、それを参照することで三角形を生成できる。具体的な表の例については、例えば、上述の文献1に記載の表を用いることができる。
For example, the approximate
三角形を生成した後、近似表面合成部2030は、ステップS905へ進む。
After generating the triangles, the approximate
ステップS905において、近似表面合成部2030は、ステップS904で生成した三角形を基に、点を生成する。具体的な方法は、例えば、上述の文献1に記載の方法を用いることができる。
In step S905, the approximate
全てのノードについて点の生成が完了した後、近似表面合成部2030は、ステップS906へ進み、処理を終了する。
After point generation has been completed for all nodes, the approximate
次に、ステップS901の頂点位置の復号について、処理の具体例を説明する。図10は、Trisoupの頂点位置の復号処理の一例を示すフローチャートである。 Next, a specific example of the process of decoding the vertex positions in step S901 will be described. Figure 10 is a flowchart showing an example of the process of decoding the vertex positions of Trisoup.
図10に示すように、ステップS1001において、近似表面合成部2030は、全Trisoup階層の処理が完了したかどうかを判定する。ここで、全Trisoup階層の数は、以下の通り定義できる。
As shown in FIG. 10, in step S1001, the approximate
複数レベルでのTrisoupを許可するとき、すなわち、trisoup_multilevel_enabled_flagの値が「1」の時は、全Trisoup階層数は、(最大Trisoupノードサイズ-最小Trisoupノードサイズ+1)で定義できる。 When multi-level trisoup is allowed, i.e. when the value of trisoup_multilevel_enabled_flag is "1", the total number of trisoup hierarchies can be defined as (maximum trisoup node size - minimum trisoup node size + 1).
すなわち、かかる場合、全Trisoup階層数は、(log2_trisoup_max_node_size_minus2-log2_trisoup_min_node_size_minus2+1)で定義できる。 In other words, in this case, the total number of Trisoup hierarchies can be defined as (log2_trisoup_max_node_size_minus2 - log2_trisoup_min_node_size_minus2 + 1).
複数レベルでのTrisoupを許可しないとき、すなわち、trisoup_multilevel_enabled_flagの値が「0」の時は、全Trisoup階層数は、1である。 When multi-level Trisoup is not allowed, i.e., when the value of trisoup_multilevel_enabled_flag is "0", the total number of Trisoup hierarchies is 1.
全てのTrisoup階層の処理が完了した場合は、近似表面合成部2030は、ステップS1007へ進む。全てのTrisoup階層の処理が完了していない場合は、近似表面合成部2030は、ステップS1002へ移る。
If processing of all Trisoup hierarchies is complete, the approximate
ステップS1002において、近似表面合成部2030は、対象Trisoup階層に属するユニークセグメント数を確認する。
In step S1002, the approximate
ユニークセグメント数が「0」の場合、すなわち、対象Trisoup階層にはTrisoupノードが1つも含まれない場合は、近似表面合成部2030は、ステップS1001へ進み、次の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は、ステップS1003へ移る。
If the number of unique segments is greater than "0", the approximate
ステップS1003において、近似表面合成部2030は、各ユニークセグメントに対してTrisoup処理に用いる頂点が含まれるか否かを復号する。
In step S1003, 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階層の全てのユニークセグメントについて頂点の有無を復号した後、ステップS1004へ移る。
After the approximate
ステップS1004において、近似表面合成部2030は、ステップS1003において頂点が存在すると判定された各ユニークセグメントに対して、各ユニークセグメント上のどこに頂点が存在するのかという位置情報を復号する。
In step S1004, the approximate
位置情報は、例えば、対象Trisoup階層におけるTrisoupノードサイズがL(2のL乗)の場合、Lビットの等長符号で符号化されていてもよい。 The location information may be encoded with an L-bit equal-length code, for example, if the Trisoup node size in the target Trisoup hierarchy is L (the Lth power of 2).
近似表面合成部2030は、対象Trisoup階層において、頂点が存在する全てのユニークセグメントに対して頂点位置を復号した後、ステップS1006へ進む。
After the approximate
ステップS1006において、近似表面合成部2030は、対象Trisoup階層におけるノードサイズが最小Trisoupノードサイズの場合、何も処理をせずS1001へ進む。
In step S1006, if the node size in the target Trisoup hierarchy is the minimum Trisoup node size, the approximate
同様に、近似表面合成部2030は、複数レベルでのTrisoupが許可されていない場合、何も処理をせず、ステップS1001へ進む。
Similarly, if multi-level trisoup is not permitted, the approximate
そうでない場合、すなわち、複数レベルでのTrisoupが許可されており、かつ、対象Trisoup階層におけるノードサイズが最小Trisoupノードサイズより大きい場合は、近似表面合成部2030は、ステップS1004で復号した対象Trisoup階層に対応するノードサイズにおける頂点位置に基づいて、最小Trisoupノードサイズにおける頂点位置を生成する。具体的な処理例については後述する。
Otherwise, that is, if multi-level Trisoup is permitted and the node size in the target Trisoup hierarchy is larger than the minimum Trisoup node size, the approximate
最小ノードサイズにおける頂点位置生成が完了した後、近似表面合成部2030は、ステップS1001へ進む。
After vertex position generation for the minimum node size is completed, the approximate
ステップS1007において、近似表面合成部2030は、頂点位置の統合を行う。
In step S1007, the approximate
例えば、近似表面合成部2030は、ステップS1006において、大きなノードサイズでの頂点位置から、最小Trisoupノードサイズにおける頂点位置を生成した場合、ノードの各辺に頂点が2点以上生成される可能性がある。
For example, when the approximate
もし、頂点が2点以上生成されている辺があった場合、近似表面合成部2030は、これを1点に統合して、辺ごとに頂点が1点ずつになるようにする。
If there is an edge for which two or more vertices have been generated, the approximate
例えば、近似表面合成部2030は、辺上に存在する頂点の座標の平均値をとることで、複数の点を1点に統合することができる。
For example, the approximate
別の例としては、頂点の数が奇数の場合、近似表面合成部2030は、座標の中央値を持つ点を選択することで頂点を1つに絞ることができる。
As another example, if the number of vertices is odd, the approximate
また、頂点の数が偶数の場合は、近似表面合成部2030は、座標の中央値を持つ2点を抽出した後、かかる2点の座標値の平均をとることで頂点を1つに絞ることができる。
In addition, if the number of vertices is even, the approximate
全ての辺についてそれぞれ頂点を1つずつに統合した後、近似表面合成部2030は、ステップS1008へ進み、処理を終了する。
After merging all the vertices for each edge into one, the approximate
次に、前記ステップS1006の処理の具体例について説明する。 Next, we will explain a specific example of the processing in step S1006.
以下、図11及び図12を用いて、上述のステップS1006の処理の一例を説明する。 Below, an example of the processing of step S1006 described above will be explained using Figures 11 and 12.
図12に、ステップS1004で復号した対象Trisoup階層に対応するノードサイズをN(ノードの一辺の長さが2のN乗)として、最小のTrisoupノードサイズをN-1とした場合の例を示す。 Figure 12 shows an example in which the node size corresponding to the target Trisoup layer decrypted in step S1004 is N (the length of one side of the node is the Nth power of 2) and the minimum Trisoup node size is N-1.
ステップS1006の処理の目的は、図12-1に示す対象Trisoup階層に対応するノードサイズ(図12では、N)における頂点(図12では、4点)から、図12-3に示す最小のTrisoupノードサイズ(図12では、N-1)における頂点(図12では、9点)を生成することである。 The purpose of the processing in step S1006 is to generate vertices (9 points in FIG. 12) at the minimum Trisoup node size (N-1 in FIG. 12) shown in FIG. 12-3 from vertices (4 points in FIG. 12) at the node size (N in FIG. 12) corresponding to the target Trisoup hierarchy shown in FIG. 12-1.
図11は、上述のステップS1006の処理の一例を示すフローチャートである。 Figure 11 is a flowchart showing an example of the processing of step S1006 described above.
図11に示すように、近似表面合成部2030は、ステップS1004で復号した対象Trisoup階層に対応するノードサイズにおける頂点位置を入力として、ステップS1101~S1104の処理を行う。
As shown in FIG. 11, the approximate
ステップS1101~S1104の処理については、図9におけるステップS902~S905と同様な方法で実現できる。 The processing of steps S1101 to S1104 can be achieved in a similar manner to steps S902 to S905 in Figure 9.
ここで、図12-1は、ステップS1103の処理結果の例(すなわち、ステップS1104の入力データの例)を示し、図12-2は、ステップS1104の処理結果の例を示す。 Here, FIG. 12-1 shows an example of the processing result of step S1103 (i.e., an example of input data of step S1104), and FIG. 12-2 shows an example of the processing result of step S1104.
図12-1に示すように、近似表面合成部2030は、ステップS1104では、図12-1に示す三角形の面と整数座標位置との交点の全てに点を生成する。
As shown in FIG. 12-1, in step S1104, the approximate
近似表面合成部2030は、図12-1に示す三角形を基に、図12-2に示すように点への変換を行った後、ステップS1105へ進む。
The approximate
ステップS1105において、近似表面合成部2030は、ステップS1104で生成した点から、最小のTrisoupノードサイズにおける頂点位置を決定する。
In step S1105, the approximate
具体的には、近似表面合成部2030は、例えば、ステップS1104で生成した点の中から、最小のTrisoupノードサイズに対応する各ノードの辺に隣接する点をそれぞれ抽出し、抽出した点の座標の平均値を求めることで、各辺に対する頂点位置を決定できる。
Specifically, the approximate
例えば、近似表面合成部2030は、辺の位置がx軸方向に沿っている場合、例えば(x,y,z)=(a~a+2(N-1),b,c)を満たす位置に辺があった場合、例えば(a~a+2(N-1),b-1~b,c-1~c)の領域に存在する点を抽出し、それらの点のx軸座標の平均値eを算出することで、(e,b,c)を頂点位置として決定できる。
For example, when the position of an edge is along the x-axis direction, for example, when the edge is located at a position that satisfies (x, y, z) = (a to a + 2 (N-1) , b, c), the approximate
近似表面合成部2030は、辺がy軸方向及びz軸方向に沿っている場合も、上記と同様に計算できる。
The approximate
なお、近似表面合成部2030は、辺に隣接する領域に点が存在しない場合は、かかる辺上には頂点を生成しない。
Note that if there are no points in the area adjacent to an edge, the approximate
以上のようにして、近似表面合成部2030は、例えば、図12-3に示すように、最小Trisoupノードサイズにおける頂点位置を生成することができる。
In this way, the approximate
次に、図13及び図14を用いて、ステップS1106の処理の別の具体例について説明する。 Next, another specific example of the processing of step S1106 will be described with reference to Figures 13 and 14.
図13は、前記ステップS1006の処理の一例を示すフローチャートである。 Figure 13 is a flowchart showing an example of the processing of step S1006.
図13に示すように、近似表面合成部2030は、ステップS1004で復号した対象Trisoup階層に対応するノードサイズにおける頂点位置を入力として、ステップS1301~S1303の処理を行う。
As shown in FIG. 13, the approximate
ステップS1301~S1303の処理については、図9におけるステップS902~S904と同様な方法で実現できる。 The processing of steps S1301 to S1303 can be achieved in a similar manner to steps S902 to S904 in FIG. 9.
図14-1は、ステップS1303の処理結果の例を示している。図14-1から分かる通り、ステップS1303の処理結果及び、ステップS1103の処理結果は同様である。 Figure 14-1 shows an example of the processing result of step S1303. As can be seen from Figure 14-1, the processing result of step S1303 and the processing result of step S1103 are similar.
近似表面合成部2030は、図14-1に示すように、三角形を生成した後、ステップS1304へ進む。
After generating the triangles, the approximate
ステップS1304において、近似表面合成部2030は、ステップS1303で生成した各三角形の面と最小Trisoupノードサイズに対応するノードの各辺との交点に点を生成する。
In step S1304, the approximate
図14-2は、ステップS1304の処理結果の一例を示している。近似表面合成部2030は、各辺上に点を生成した後、ステップS1305へ進む。
Figure 14-2 shows an example of the processing result of step S1304. After the approximate
ステップS1305において、近似表面合成部2030は、ステップS1304において最小Trisoupノードサイズに対応する各辺上に生成された点を統合する。
In step S1305, the approximate
ステップS1304の処理は、各三角形面と辺との交点に点を生成するため、例えば、ある1つの辺に対して2つ以上の三角面が交差していた場合、同一辺上に2つ以上の頂点が生成される可能性がある。 The processing in step S1304 generates points at the intersections of each triangular face and an edge, so for example, if two or more triangular faces intersect a single edge, it is possible that two or more vertices will be generated on the same edge.
その場合、近似表面合成部2030は、同一の辺上に存在する点を統合して、辺ごとに頂点を一点とする様に処理してもよい。
In this case, the approximate
具体的には、例えば、辺上に存在する頂点の座標の平均値をとることで、複数の点を1点に統合することができる。 Specifically, for example, multiple points can be merged into one point by taking the average value of the coordinates of the vertices on an edge.
別の例としては、頂点の数が奇数の場合、近似表面合成部2030は、座標の中央値を持つ点を選択することで頂点を1つに絞ることができる。
As another example, if the number of vertices is odd, the approximate
また、頂点の数が偶数の場合は、近似表面合成部2030は、座標の中央値を持つ2点を抽出した後、かかる2点の座標値の平均をとることで頂点を1つに絞ることができる。
In addition, if the number of vertices is even, the approximate
近似表面合成部2030は、上述のように各辺上の点を統合した後、ステップS1306へ進み、処理を終了する。
After integrating the points on each side as described above, the approximate
以上のように、本発明における近似表面合成部2030は、複数レベルでのTrisoupを許容する場合、図10のステップS1004に示すように、頂点位置についてはTrisoupノードサイズ毎に復号し、ステップS1005に示すように、上述の頂点位置から最小Trisoupノードサイズにおける頂点位置を生成し、ステップS905に示すように、最小Trisoupノードサイズにおいて点を生成するように構成されていてもよい。
As described above, when Trisoup at multiple levels is allowed, the approximate
言い換えると、近似表面合成部2030は、複数のノードサイズ毎に頂点の復号処理を実行し、単一のノードサイズで頂点に基づく点の再構成処理を実行するように構成されていてもよい。
In other words, the approximate
また、以上のように、近似表面合成部2030は、制御データから復号した最大ノードサイズ及び最小ノードサイズに基づいて、最大と最小との間の各ノードサイズにおいて頂点の復号処理を実行するように構成されており、かかるノードサイズが最小ノードサイズではない場合、復号した頂点に基づいて、最小ノードサイズにおける頂点位置を生成するように構成されており、単一のノードサイズを最小ノードサイズとするように構成されており、最小ノードサイズにおける頂点位置に基づいて、点の再構成処理を行うように構成されていてもよい。
このような構成とすることで、頂点位置の復号単位を可変とすることで点群の幾何的な特性に応じて頂点に係る情報の符号量を削減しつつ、点の再構成については単一且つ小さなノードサイズで実行することで、復号点群の主観品質を高めることができる。
Furthermore, as described above, the approximate
With this configuration, the decoding unit of the vertex positions can be made variable, thereby reducing the amount of coding for information related to the vertices according to the geometric characteristics of the point cloud, while the reconstruction of points is performed using a single, small node size, thereby improving the subjective quality of the decoded point cloud.
また、以上のように、近似表面合成部2030は、ノードサイズが最小ノードサイズではない場合、復号した頂点に基づいて点を生成し、生成した点のうち、かかるノードサイズのノードを最小ノードサイズで分割した際の各辺の近傍に存在する点の座標値に基づいて、最小ノードサイズにおける頂点位置を生成するように構成されていてもよい。
Furthermore, as described above, the approximate
このように、近似表面合成部2030における点の再構成処理の一部を流用して最小ノードサイズにおける頂点位置を生成することで、処理回路及び処理関数が流用できるため設計コストを下げることができる。
In this way, by reusing part of the point reconstruction processing in the approximate
また、以上のように、近似表面合成部2030は、ノードサイズが最小ノードサイズではない場合、復号した頂点に基づいて点を生成する際、かかるノードサイズのノードを最小ノードサイズで分割した際の各辺上にのみ点を生成するように構成されていてもよい。このように、生成する点数を最小限とすることで、当該処理に必要なメモリ量や、処理量を削減することができる。
As described above, when the node size is not the minimum node size, the approximate
また、以上のように、近似表面合成部2030は、ノードサイズが最小ノードサイズではない場合、復号した頂点に基づいて点を生成する際、かかるノードサイズのノードを最小ノードサイズで分割した際の各辺上に複数の点が存在した場合、それらの点を統合し各辺上に頂点が1点ずつとなるように最小ノードサイズにおける頂点位置を生成するように構成されていてもよい。このように、各辺上に頂点数を1点ずつとなるように制限することで、点の再構成処理を簡素化することができる。
As described above, when the node size is not the minimum node size, the approximate
また、以上のように、近似表面合成部2030は、ある辺上に、かかる辺に隣接する異なるノードサイズのノードから生成された複数の頂点が存在する場合、それらの点を統合し、各辺上に頂点が1点ずつとなるように頂点位置を生成するように構成されていてもよい。このような構成とすることで、点の再構成処理を簡素化することができる。
As described above, the approximate
また、以上のように、近似表面合成部2030は、ある辺上に、かかる辺に隣接する異なるノードサイズのノードから生成された複数の頂点が存在する場合、かかる隣接するノードのうち、最も小さなノードサイズを持つノードによって生成された頂点を、かかる辺の頂点位置とするように構成されていてもよい。このように、小さなノードサイズにおける頂点位置を使用するようにすることで、より局所的な特徴を再現した点群の再構成が可能となり、主観品質が向上する。
As described above, the approximate
次に、図9におけるステップS902の処理の具体例について説明する。 Next, we will explain a specific example of the processing in step S902 in Figure 9.
以下、図15及び図16を用いて、図9におけるステップS902の処理の一例を説明する。
図15は、ステップS902の処理の一例を示すフローチャートである。
An example of the process of step S902 in FIG. 9 will be described below with reference to FIGS.
FIG. 15 is a flowchart showing an example of the process of step S902.
図15に示すように、ステップS1501において、近似表面合成部2030は、頂点を各投影面に投影した際の頂点で形成される多角形の面積をそれぞれ算出する。
As shown in FIG. 15, in step S1501, the approximate
図16に、ステップS1501の処理の具体例を示す。 Figure 16 shows a specific example of the processing in step S1501.
例えば、図16-1に示すように、対象ノードについてA~Eの五つの頂点がある場合を考える。 For example, consider the case where the target node has five vertices, A through E, as shown in Figure 16-1.
図16-2~図16-4は、図16-1に示す頂点を、それぞれの投影面に投影した際の図である。 Figures 16-2 to 16-4 show the vertices shown in Figure 16-1 projected onto their respective projection planes.
ここで、近似表面合成部2030は、各投影面における多角形の面積(図16-2~図16-4において、それぞれ網掛けになっている部分の面積)を算出する。
Here, the approximate
具体的には、近似表面合成部2030は、各投影面における正方形の中心を原点Oとし、原点O、原点Oと隣り合う2つの頂点(例えば、図16-2における点E及び点D)の計3点で構成される三角形の面積Sは、以下の式で算出できる。
Specifically, the approximate
S=|E×D|/2
ここで、E及びDは、原点Oに対する点E及び点Dの三次元座標を示すベクトルを意味し、×記号は、ベクトルの外積を計算する演算子を意味し、|・|は、ベクトルのL2ノルムを意味している。
S = |E x D|/2
Here, E and D represent vectors indicating the three-dimensional coordinates of points E and D relative to the origin O, the × symbol represents an operator for calculating the cross product of vectors, and |·| represents the L2 norm of a vector.
近似表面合成部2030は、上述の事項を応用して、ステップS903と同様な方法で、各投影面における頂点を、例えば、反時計回りの順になるようにソートし、上述と同様な手法で、全ての隣り合う頂点同士と原点とで作られる三角形の面積を求めたうえで合計することで、図16-2~図16-4の網掛け部分の面積をそれぞれ算出することができる。
The approximate
以上では、原点Oを各投影面における正方形の中心と定義した場合について説明したが、原点Oは、各投影面の平面上であれば、他の位置に定義しても、上述と同様な方法で多角形の面積を算出することができる。 The above describes the case where the origin O is defined as the center of the square on each projection surface, but the origin O can be defined at another position on the plane of each projection surface and the area of the polygon can be calculated in a similar manner to that described above.
例えば、近似表面合成部2030は、原点Oについて、投影面における正方形の辺上に位置してもよい。また、例えば、近似表面合成部2030は、各投影面に投影した頂点のうちの一点を、原点Oと定義してもよい。例えば、近似表面合成部2030は、各投影面に投影した頂点を反時計回りの順になるようにソートした後、先頭の頂点を原点Oとして用いてもよい。
For example, the approximate
近似表面合成部2030は、以上のように各投影面における多角形の面積をそれぞれ算出した後、ステップS1502へ進む。
After calculating the area of the polygon on each projection surface as described above, the approximate
ステップS1502において、近似表面合成部2030は、ステップS1501で求めた多角形の面積が最も大きい投影面を、投影面として決定する。
In step S1502, the approximate
近似表面合成部2030は、投影面を決定した後、ステップS1503へ進み、処理を終了する。
After determining the projection surface, the approximate
なお、近似表面合成部2030は、図15に示す手法で投影面を決定する場合、既にステップS1501において頂点をソートしているため、ステップS903の処理について省略することができる。
When the approximate
以上のように、近似表面合成部2030は、ノードの各辺上に存在する複数の頂点を複数の投影面候補の各々に投影した際に、かかる頂点で定義される多角形の面積が最大となる投影面を、上述の投影面として選択するように構成されてもよい。
As described above, the approximate
このような構成とすることで、投影面上での2次元的な広がりが最も大きな投影面を選択できる。これにより、適切でない投影面を選択することで復号点群の主観画質が劣化することを防止することができる。 This configuration allows the selection of a projection plane with the largest two-dimensional spread on the projection surface. This prevents the subjective image quality of the decoded point cloud from deteriorating due to the selection of an inappropriate projection plane.
以上のように、近似表面合成部2030は、所定の原点と、上述の投影面候補に投影した頂点のうち1つ(第1頂点)と、かかる第一頂点と隣り合う第2頂点と、の三点で構成される三角形の面積を、隣り合う全ての頂点のペアに対して算出することで、上述の多角形(三角形)の面積を算出するように構成されてもよい。
As described above, the approximate
このように、多角形を小領域に分割して面積を求めることで、それぞれの小領域の面積算出処理を並列に実行できるため、処理速度を向上させることができる。 In this way, by dividing a polygon into small regions and calculating their area, the area calculation process for each small region can be performed in parallel, improving processing speed.
また、以上のように、近似表面合成部2030は、上述の原点から第1頂点を指す第1ベクトルと、上述の原点から第2頂点を指す第2ベクトルを定義し、かかる第1ベクトルと第2ベクトルとの外積を用いて、上述の三角形の面積を算出するように構成されていてもよい。このように、ベクトルの外積を用いて演算することで、他の処理で外積処理を行う場合は、処理回路又は処理関数を共通化することで設計を簡素化できる。
As described above, the approximate
また、以上のように、近似表面合成部2030は、上述の投影面候補に投影した頂点を反時計回り或いは時計回りに並べ替え、並べ替えた順に連続する2つの頂点を第1頂点及び第2頂点としてもよい。このように、後段のステップS903と同様な方法でソートを行うことで、処理を共通化して処理量の増加を防ぐことができる。
As described above, the approximate
また、以上のように、近似表面合成部2030は、上述の投影面候補に投影した頂点のうち1つ(第3頂点)を、所定の原点とするように構成されていてもよい。このような構成とすることで、所定の原点を頂点以外の位置に設定した場合と比較して、多角形の面積を算出するために計算が必要な三角形の個数が1つ少なくなるため、演算量の増加を防ぐことができる。
As described above, the approximate
次に、図17~図20を用いて、ステップS902の処理の別の例について説明する。 Next, another example of the processing in step S902 will be described using Figures 17 to 20.
図17は、ステップS902の処理の一例を示すフローチャートである。 Figure 17 is a flowchart showing an example of the processing of step S902.
図17に示すように、ステップS1701において、近似表面合成部2030は、頂点座標のx軸、y軸、z軸方向それぞれの最大値と最小値の差分を算出する。
As shown in FIG. 17, in step S1701, the approximate
例えば、図19-1に示すように、対象ノードにA~Eの計5点の頂点があった場合、近似表面合成部2030は、図19-2に示すxmax-xmin(x軸方向の座標値の最大値と最小値の差分)、ymax-ymin(y軸方向の座標値の最大値と最小値の差分)及び図19-3に示すzmax-zmin(z軸方向の座標値の最大値と最小値の差分)をそれぞれ算出し、ステップS1702へ進む。
For example, as shown in FIG. 19-1, if the target node has a total of five vertices, A through E, the approximate
ステップS1702において、近似表面合成部2030は、ステップS1701で算出した「最大値と最小値の差分」のうちの差分が最小となる軸方向がいくつあるかを確認する。
In step S1702, the approximate
例えば、zmax-zmin<xmax-xmin<ymax-yminという関係となっていた場合(或いは、zmax-zmin<xmax-xmin=ymax-yminという関係となっていた場合)、「最大値と最小値の差分」の最小値を持つ軸方向は1つのみとなる。この場合は、近似表面合成部2030は、ステップS1703へ進む。
For example, if the relationship is zmax-zmin<xmax-xmin<ymax-ymin (or if the relationship is zmax-zmin<xmax-xmin=ymax-ymin), there is only one axis direction that has the smallest value for the "difference between the maximum and minimum values." In this case, the approximate
一方、例えば、zmax-zmin=xmax-xmin<ymax-yminという関係となっていた場合、「最大値と最小値の差分」の最小値を持つ軸方向は2つとなる。この場合は、近似表面合成部2030は、ステップS1704へ進む。
On the other hand, if the relationship is zmax-zmin=xmax-xmin<ymax-ymin, for example, then there are two axis directions with the smallest value of the "difference between the maximum value and the minimum value." In this case, the approximate
ステップS1703は、差分の最小値を持つ軸方向が一つのみのケースに対応する処理であり、この場合は、近似表面合成部2030は、差分が最小となる軸を縮退することで投影面を決定する。
Step S1703 is a process corresponding to the case where there is only one axis direction with the minimum difference. In this case, the approximate
例えば、上述の例のように、zmax-zmin<xmax-xmin<ymax-yminとなっていた場合、z軸を縮退して、x-y平面を投影面として決定する。 For example, if zmax-zmin<xmax-xmin<ymax-ymin as in the example above, the z-axis is degenerated and the x-y plane is determined as the projection plane.
近似表面合成部2030は、投影面を決定した後、ステップS1706へ進んで処理を終了する。
After determining the projection surface, the approximate
ステップS1704において、近似表面合成部2030は、各軸方向の辺上の頂点数をカウントする。
In step S1704, the approximate
例えば、図20-1に示すように、対象ノードにA~Eの計5点の頂点があった場合、x軸方向の辺上に存在する頂点は、図20-2に示す点Aのみであり、y軸方向の辺上に存在する頂点は、図20-3に示す通り0点であり、z軸方向の辺上に存在する頂点は、図20-4に示す通りB~Eの計4点である。 For example, if the target node has a total of five vertices, A through E, as shown in Figure 20-1, the only vertex on the edge in the x-axis direction is point A, as shown in Figure 20-2, there are zero vertices on the edge in the y-axis direction, as shown in Figure 20-3, and there are four vertices on the edge in the z-axis direction, B through E, as shown in Figure 20-4.
なお、この処理は、x、y、z軸のうち全ての軸を対象にしてもよいし、ステップS1701で求めた「最大値と最小値の差分」の最小値を持つ軸方向のみを対象としてもよい。 This process may be performed on all of the x, y, and z axes, or on only the axis direction with the smallest "difference between the maximum and minimum values" calculated in step S1701.
例えば、zmax-zmin=xmax-xmin<ymax-yminという関係となっていた場合、本ステップの処理対象をz軸及びx軸のみとしてもよい。 For example, if the relationship is zmax-zmin=xmax-xmin<ymax-ymin, the processing target of this step may be only the z-axis and x-axis.
近似表面合成部2030は、上述のように頂点数をカウントした後、ステップS1705へ進む。
After counting the number of vertices as described above, the approximate
ステップS1705において、近似表面合成部2030は、ステップS1704で算出した各軸方向の頂点数が最も大きい軸を縮退することで、投影面を決定する。
In step S1705, the approximate
例えば、図20の例では、z軸方向の辺上に存在する頂点が最も多いため、近似表面合成部2030は、z軸を縮退して、x-y平面を投影面として決定する。
For example, in the example of Figure 20, since the most vertices exist on the sides in the z-axis direction, the approximate
近似表面合成部2030は、投影面決定後、ステップS1706へ進んで、処理を終了する。
After determining the projection surface, the approximate
以上のように、近似表面合成部2030は、ノードの各辺を三次元座標のどの座標軸と平行かどうかで分類し、各座標軸に分類された辺上の頂点数をカウントし、カウントした値(頂点数)を用いて、複数の投影面候補の中から、上述の投影面を決定するように構成されていてもよい。
As described above, the approximate
また、以上のように、近似表面合成部2030は、上述の頂点の数が最も大きい軸を縮退することで定義される面を、上述の投影面と決定するように構成されていてもよい。
Furthermore, as described above, the approximate
このような構成とすることで、図15及び図16を用いて説明した手法よりも少ない演算量で、頂点位置の二次元的な広がりを考慮した投影面の決定が可能となる。 This configuration makes it possible to determine a projection plane that takes into account the two-dimensional spread of the vertex positions with less computational effort than the method described using Figures 15 and 16.
また、以上のように、近似表面合成部2030は、上述の三次元座標の座標軸ごとに、各頂点の座標値の最大値と最小値との差分値を算出し、かかる座標軸のうち差分値の最小値を持つ軸が2つ以上ある場合、各座標軸に分類された辺上の頂点数が最も大きい軸を縮退することで定義される面を、上述の投影面とするように構成されていてもよい。
As described above, the approximate
また、以上のように、近似表面合成部2030は、各座標軸に分類された辺上の頂点数が最も大きい軸が2つ以上ある場合、三次元座標の座標軸ごとに、各頂点の座標値の最大値と最小値との差分値を算出し、座標軸のうち差分値が最小となる軸を縮退することで定義される面を、上述の投影面とするように構成されていてもよい。
As described above, when there are two or more axes with the largest number of vertices on the edges classified into each coordinate axis, the approximate
なお、図17では、近似表面合成部2030は、先にステップS1701及びS1702において「最大値と最小値の差分」を評価した後、必要に応じてステップS1704及びS1705において各軸方向の辺上の頂点数を評価した。この順番は、例えば、図18に示すように、逆にすることもできる。
In FIG. 17, the approximate
例えば、図18の例に示す通り、近似表面合成部2030は、ステップS1801及びステップS1802において各軸方向の辺上の頂点数を評価した後、必要に応じてステップS1804及びステップS1805において「最大値と最小値の差分」を評価してもよい。
For example, as shown in the example of FIG. 18, the approximate
図18の例では、ステップS1801については、ステップS1704と同様な処理で実現できる。 In the example of Figure 18, step S1801 can be achieved by processing similar to that of step S1704.
ステップS1802において、近似表面合成部2030は、x軸、y軸、z軸方向の中で最大の頂点数を持つ軸が1つのみである場合は、ステップS1803へ進み、頂点数が最大となる軸を縮退することで投影面を決定する。
In step S1802, if there is only one axis among the x-axis, y-axis, and z-axis directions that has the maximum number of vertices, the approximate
そうでない場合(頂点数の最大値を持つ軸が2つ以上ある場合)は、近似表面合成部2030は、ステップS1804へ進む。
If not (if there are two or more axes with the maximum number of vertices), the approximate
ステップS1804については、ステップS1701と同様な処理で実現できる。 Step S1804 can be achieved by processing similar to that of step S1701.
ここで、ステップS1804の処理対象は、x軸、y軸、z軸の全てとしてもよいし、ステップS1802で頂点数が最大となった軸方向のみを処理対象としてもよい。
ステップS1805において、近似表面合成部2030は、ステップS1804の処理対象となった軸の中で、差分値が最も小さい軸を縮退することで、投影面を決定する。
Here, the processing target of step S1804 may be all of the x-axis, y-axis, and z-axis, or only the axis direction in which the number of vertices is maximum in step S1802 may be processed.
In step S1805, the approximate
次に、図22を用いて、ステップS902の処理の別の例について説明する。図22は、ステップS902の処理の一例を示すフローチャートである。 Next, another example of the process of step S902 will be described with reference to FIG. 22. FIG. 22 is a flowchart showing an example of the process of step S902.
図22に示すように、ステップS2201において、近似表面合成部2030は、各投影面に投影した際の各頂点の座標に対して、2×2の直交変換を行う。
As shown in FIG. 22, in step S2201, the approximate
以下では、直交変換としてアダマール変換を用いる場合を例に説明する。例えば、座標値として(Px、Py、Pz)を持つ頂点Pをx-y平面に投影した際の座標は、(Px、Py)となる。これに対して2×2のアダマール変換を行って得られる直交変換後の座標(Ha、Hb)は、以下の式によって算出できる。 The following describes an example in which the Hadamard transform is used as the orthogonal transform. For example, when a vertex P with coordinate values (Px, Py, Pz) is projected onto the xy plane, its coordinates become (Px, Py). The coordinates (Ha, Hb) after the orthogonal transform obtained by performing a 2x2 Hadamard transform on this can be calculated using the following formula.
このように、まず、近似表面合成部2030は、x-y平面に投影した際の各頂点(1~n)座標に直交変換を適用してn組の座標(Ha1、Hb1)、・・・、(Han、Hbn)、を得た後、直交変換後の各座標軸(ここではa軸とb軸)における座標値の最大値Hamax、Hbmaxと最小値Hamin、Hbminをそれぞれ検出する。
In this way, the approximate
次に、各軸における最大値と最小値との差分値Had=Hamax―Hamin、Hbd=Hbmax―Hbminを算出する。 Then, calculate the difference between the maximum and minimum values on each axis: Had = Hamax - Hamin, Hbd = Hbmax - Hbmin.
最後に、近似表面合成部2030は、上述のHad及びHbdを用いて、x-y平面に投影した場合の頂点座標の広がりの大きさを表す変数Axyを算出する。
Finally, the approximate
近似表面合成部2030は、Axyについて、例えば、Axy=Had+Hbdのように、直交変換後の座標値の各軸における最大値と最小値の差分を足し合わせることで算出してもよい。
The approximate
また、近似表面合成部2030は、Axyについて、例えば、Axy=Had×Hbdのように、直交変換後の座標値の各軸における最大値と最小値の差分を掛け合わせることで算出してもよい。
The approximate
上述と同様に、近似表面合成部2030は、他の投影面候補であるy-z平面に対応するAyz及びx-z平面に対応するAxzを算出した後、ステップS2202へ進む。
As described above, the approximate
ステップS2202において、近似表面合成部2030は、ステップS2201で算出したAxy、Ayz、Axzを基に投影面を決定する。
In step S2202, the approximate
例えば、近似表面合成部2030は、Axy、Ayz、Axzのうち、値が最も大きいものに対応する投影面に決定することができる。具体的には、近似表面合成部2030は、例えば、Ayz>Axz>Axzの場合、投影面をy-z平面と決定することができる。
For example, the approximate
上述のように、近似表面合成部2030は、投影面を決定した後、ステップS2203へ移り、処理を終了する。
As described above, after determining the projection surface, the approximate
以上のように、近似表面合成部2030は、各投影面に投影した際の頂点座標値に直交変換を適用して得られる直交変換後の座標値を用いて、投影面を決定するように構成されていてもよい。
As described above, the approximate
また、以上のように、近似表面合成部2030は、直交変換後の各座標軸において座標値の最大値と最小値との差分値を計算し、かかる差分値に基づいて投影面を決定するように構成されていてもよい。
As described above, the approximate
また、以上のように、近似表面合成部2030は、各投影面候補において、上述の差分値を直交変換後の全ての座標軸について算出し、それらの和或いはそれらの積によって投影面を決定するように構成されていてもよい。
As described above, the approximate
このように直交変換によって座標軸を回転した後の座標値を用いることで、頂点の二次元的な広がりを評価しやすくなる。 By using the coordinate values after rotating the coordinate axes using an orthogonal transformation in this way, it becomes easier to evaluate the two-dimensional spread of the vertices.
また、以上のように、近似表面合成部2030は、直交変換としてアダマール変換を使用するように構成されていてもよい。
Furthermore, as described above, the approximate
また、以上のように、近似表面合成部2030は、直交変換時の正規化係数を省略するように構成されていてもよい。
Furthermore, as described above, the approximate
このような構成とすることで、直交変換前の座標値の加減算のみで直交変換後の座標値を得ることができ、計算量の増加を防ぐことができる。 By configuring in this way, the coordinate values after the orthogonal transformation can be obtained by simply adding and subtracting the coordinate values before the orthogonal transformation, preventing an increase in the amount of calculations.
(点群符号化装置100)
以下、図21を参照して、本実施形態に係る点群符号化装置100について説明する。図21は、本実施形態に係る点群符号化装置100の機能ブロックの一例について示す図である。
(Point cloud encoding device 100)
Hereinafter, the point
図21に示すように、点群符号化装置100は、座標変換部1010と、幾何情報量子化部1020と、ツリー解析部1030と、近似表面解析部1040と、幾何情報符号化部1050と、幾何情報再構成部1060と、色変換部1070と、属性転移部1080と、RAHT部1090と、LoD算出部1100と、リフティング部1110と、属性情報量子化部1120と、属性情報符号化部1130と、フレームバッファ1140とを有する。
As shown in FIG. 21, 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
フレームバッファ1140は、幾何情報再構成部1060によって再構成された幾何情報を入力とし、参照フレームとして保存するように構成されている。
The
保存された参照フレームは、ツリー解析部1030において時間的に異なるフレームのインター予測を行う場合に、フレームバッファ1140から読み出されて参照フレームとして使用される。
The stored reference frame is read from the
ここで、各フレームに対してどの時刻の参照フレームを用いるかどうかが、例えば、符号化効率を表すコスト関数の値に基づいて決定され、使用する参照フレームの情報が制御データとして点群復号装置200へ伝送されてもよい。
Here, which reference frame to use for each frame may be determined based on, for example, the value of a cost function representing the encoding efficiency, and information on the reference frame to be used may be transmitted to the point
色変換部1070は、入力の属性情報が色情報であった場合に、色変換を行うように構成されている。色変換は、必ずしも実行する必要は無く、色変換処理の実行の有無については、制御データの一部として符号化され、点群復号装置200へ伝送される。
The
属性転移部1080は、入力点群の位置情報、幾何情報再構成部1060における再構成後の点群の位置情報及び色変換部1070での色変化後の属性情報に基づいて、属性情報の歪みが最小となるように属性値を補正するように構成されている。具体的な補正方法は、例えば、文献2(Text of ISO/IEC 23090-9 DIS Geometry-based PCC、ISO/IEC JTC1/SC29/WG11 N19088)に記載の方法を適用できる。
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
リフティングの具体的な処理としては、例えば、上述の文献2に記載の方法を用いてもよい。 Specific lifting processing may be performed, for example, using the method described in the above-mentioned document 2.
属性情報量子化部1120は、RAHT部1090又はリフティング部1110から出力される残差情報を量子化するように構成されている。ここで、量子化ステップサイズが1の場合は、量子化を行わない場合と等価である。
The attribute
属性情報符号化部1130は、属性情報量子化部1120から出力される量子化後の残差情報等をシンタックスとして符号化処理を行い、属性情報に関するビットストリーム(属性情報ビットストリーム)を生成するように構成されている。
The attribute
符号化処理は、例えば、コンテクスト適応二値算術符号化処理である。ここで、例えば、シンタックスは、属性情報の復号処理を制御するための制御データ(フラグ及びパラメータ)を含む。 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は、以上の処理により、点群内の各点の位置情報及び属性情報を入力として符号化処理を行い、幾何情報ビットストリーム及び属性情報ビットストリームを出力するように構成されている。
Through the above process, 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…属性情報符号化部
1140…フレームバッファ
200…点群復号装置
2010…幾何情報復号部
2020…ツリー合成部
2030…近似表面合成部
2040…幾何情報再構成部
2050…逆座標変換部
2060…属性情報復号部
2070…逆量子化部
2080…RAHT部
2090…LoD算出部
2100…逆リフティング部
2110…逆色変換部
2120…フレームバッファ
10... Point
Claims (4)
複数の投影面候補の中から、ノードの各辺上に存在する複数の頂点を前記投影面候補の各々に投影した際に前記頂点で定義される多角形の面積が最大となる投影面を、投影面として選択するように構成されている近似表面合成部を備え、an approximation surface synthesis unit configured to select, from among a plurality of projection plane candidates, a projection plane that maximizes the area of a polygon defined by a plurality of vertices present on each side of a node when the vertices are projected onto each of the projection plane candidates;
前記近似表面合成部は、所定の原点と、前記投影面候補に投影した前記頂点のうち1つである第1頂点と、前記第1頂点と隣り合う第2頂点と、の三点で構成される三角形の面積を、隣り合う全ての頂点のペアに対して算出することで、前記多角形の面積を算出するように構成されていることを特徴とする点群復号装置。The point cloud decoding device is characterized in that the approximate surface synthesis unit is configured to calculate the area of the polygon by calculating the area of a triangle formed by three points: a predetermined origin, a first vertex that is one of the vertices projected onto the projection surface candidate, and a second vertex adjacent to the first vertex, for all pairs of adjacent vertices.
複数の投影面候補の中から、ノードの各辺上に存在する複数の頂点を前記投影面候補の各々に投影した際に前記頂点で定義される多角形の面積が最大となる投影面を、投影面として選択する工程を備え、selecting, from among a plurality of projection plane candidates, a projection plane which maximizes the area of a polygon defined by a plurality of vertices present on each side of the node when the plurality of vertices are projected onto each of the projection plane candidates;
前記工程において、所定の原点と、前記投影面候補に投影した前記頂点のうち1つである第1頂点と、前記第1頂点と隣り合う第2頂点と、の三点で構成される三角形の面積を、隣り合う全ての頂点のペアに対して算出することで、前記多角形の面積を算出することを特徴とする点群復号方法。A point cloud decoding method characterized in that in the above process, the area of the polygon is calculated by calculating the area of a triangle formed by three points: a predetermined origin, a first vertex that is one of the vertices projected onto the candidate projection plane, and a second vertex adjacent to the first vertex, for all pairs of adjacent vertices.
前記点群復号装置は、複数の投影面候補の中から、ノードの各辺上に存在する複数の頂点を前記投影面候補の各々に投影した際に前記頂点で定義される多角形の面積が最大となる投影面を、投影面として選択するように構成されている近似表面合成部を備え、The point cloud decoding device includes an approximation surface synthesis unit configured to select, from among a plurality of projection plane candidates, a projection plane that maximizes an area of a polygon defined by a plurality of vertices present on each side of a node when the vertices are projected onto each of the projection plane candidates;
前記近似表面合成部は、所定の原点と、前記投影面候補に投影した前記頂点のうち1つである第1頂点と、前記第1頂点と隣り合う第2頂点と、の三点で構成される三角形の面積を、隣り合う全ての頂点のペアに対して算出することで、前記多角形の面積を算出するように構成されていることを特徴とするプログラム。The program is configured to calculate the area of the polygon by calculating the area of a triangle formed by three points: a predetermined origin, a first vertex that is one of the vertices projected onto the projection surface candidate, and a second vertex adjacent to the first vertex, for all pairs of adjacent vertices.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022001928A JP7573555B2 (en) | 2022-01-07 | 2022-01-07 | Point group decoding device, point group decoding method and program |
| PCT/JP2023/000014 WO2023132330A1 (en) | 2022-01-07 | 2023-01-04 | Point cloud decoding device, point cloud decoding method, and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022001928A JP7573555B2 (en) | 2022-01-07 | 2022-01-07 | Point group decoding device, point group decoding method and program |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2023101340A JP2023101340A (en) | 2023-07-20 |
| JP2023101340A5 JP2023101340A5 (en) | 2024-05-08 |
| JP7573555B2 true JP7573555B2 (en) | 2024-10-25 |
Family
ID=87073746
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022001928A Active JP7573555B2 (en) | 2022-01-07 | 2022-01-07 | Point group decoding device, point group decoding method and program |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP7573555B2 (en) |
| WO (1) | WO2023132330A1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN121925683A (en) * | 2023-10-04 | 2026-04-24 | 松下电器(美国)知识产权公司 | Decoding method, encoding method, and decoding device |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021256486A1 (en) | 2020-06-18 | 2021-12-23 | Kddi株式会社 | Point group decoding device, point group decoding method, and program |
| WO2021261142A1 (en) | 2020-06-22 | 2021-12-30 | Kddi株式会社 | Point group decoding device, point group decoding method, and program |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20220414940A1 (en) * | 2019-10-01 | 2022-12-29 | Sony Group Corporation | Information processing apparatus and method |
-
2022
- 2022-01-07 JP JP2022001928A patent/JP7573555B2/en active Active
-
2023
- 2023-01-04 WO PCT/JP2023/000014 patent/WO2023132330A1/en not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021256486A1 (en) | 2020-06-18 | 2021-12-23 | Kddi株式会社 | Point group decoding device, point group decoding method, and program |
| WO2021261142A1 (en) | 2020-06-22 | 2021-12-30 | Kddi株式会社 | Point group decoding device, point group decoding method, and program |
Non-Patent Citations (3)
| Title |
|---|
| Antoine Dricot, and Joao Ascenso,Adaptive Multi-level Triangle Soup for Geometry-based 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 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2023101340A (en) | 2023-07-20 |
| WO2023132330A1 (en) | 2023-07-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12160611B2 (en) | Implicit geometry partition for point cloud coding | |
| JP7495185B2 (en) | Point group decoding device, point group decoding method and program | |
| CN113632142B (en) | Point cloud encoding and decoding method and device | |
| JP7651760B2 (en) | Point group decoding device, point group decoding method and program | |
| JP7573554B2 (en) | Point group decoding device, point group decoding method and program | |
| WO2022219867A1 (en) | Point cloud decoding device, point cloud encoding device, point cloud processing system, point cloud decoding method, and program | |
| JP7573555B2 (en) | Point group decoding device, point group decoding method and program | |
| JP7573553B2 (en) | Point group decoding device, point group decoding method and program | |
| JP7680398B2 (en) | Point group decoding device, point group decoding method and program | |
| JP7557436B2 (en) | Point group decoding device, point group decoding method and program | |
| JP2024152166A (en) | Point group decoding device, point group 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 | |
| JP7773959B2 (en) | Point group decoding device, point group decoding method and program | |
| JP7773960B2 (en) | Point group decoding device, point group decoding method and program | |
| JP2023053827A (en) | Point group decoding device, point group decoding method and program | |
| WO2023107868A1 (en) | Adaptive attribute coding for geometry point cloud coding | |
| JP2024152411A (en) | Point group decoding device, point group decoding method and program | |
| JP7829505B2 (en) | Point cloud decoding device, point cloud decoding method, and program | |
| HK40064136A (en) | Method and device for point cloud encoding and decoding | |
| HK40064138A (en) | Method and apparatus for point cloud encoding and decoding | |
| HK40064136B (en) | Method and device for point cloud encoding and decoding |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240126 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240425 |
|
| 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: 20241001 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20241015 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7573555 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |