WO2023132331A1 - Dispositif de décodage de nuage de points, procédé de décodage de nuage de points, et programme - Google Patents

Dispositif de décodage de nuage de points, procédé de décodage de nuage de points, et programme Download PDF

Info

Publication number
WO2023132331A1
WO2023132331A1 PCT/JP2023/000015 JP2023000015W WO2023132331A1 WO 2023132331 A1 WO2023132331 A1 WO 2023132331A1 JP 2023000015 W JP2023000015 W JP 2023000015W WO 2023132331 A1 WO2023132331 A1 WO 2023132331A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
size
target
synthesizing unit
tree
Prior art date
Application number
PCT/JP2023/000015
Other languages
English (en)
Japanese (ja)
Inventor
恭平 海野
圭 河村
Original Assignee
Kddi株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kddi株式会社 filed Critical Kddi株式会社
Publication of WO2023132331A1 publication Critical patent/WO2023132331A1/fr

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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

Definitions

  • the present invention relates to a point cloud decoding device, a point cloud decoding method, and a program.
  • Non-Patent Document 2 discloses a technique related to inter-prediction of geometric information of point clouds.
  • Non-Patent Document 2 the presence or absence of points in each subspace (node) of the point cloud to be encoded is estimated based on the distribution of points in the motion-compensated reference point cloud. At this time, especially when both the reference point group and the encoding target point group are sparse, there is a problem that if there is even a slight deviation in the result of motion compensation, the correlation in the time direction cannot be fully utilized.
  • the present invention has been made in view of the above problems, and an object thereof is to provide a point cloud decoding device, a point cloud decoding method, and a program that can increase the encoding efficiency in inter prediction of geometric information. do.
  • a first feature of the present invention is a point group decoding device, comprising a tree synthesis unit, the tree synthesis unit hierarchically decodes occupation information of geometric information, and decodes a plurality of context switching, referencing a decoded frame temporally different from the target frame as a reference frame for switching the context,
  • the gist of the present invention is that it is configured to switch between an area having the same size as the node size and an area having a size different from the node size of the target hierarchy.
  • a second feature of the present invention is a point group decoding method, comprising the step of hierarchically decoding occupation information of geometric information; the step of switching and using a plurality of contexts when decoding the occupation information; a step of referring to a decoded frame temporally different from a target frame as a reference frame for the switching of the context; a step of switching between an area with a smaller size and an area with a size different from the node size of the target hierarchy.
  • a third feature of the present invention is a program for causing a computer to function as a point cloud decoding device, wherein the point cloud decoding device comprises a tree synthesizing unit, and the tree synthesizing unit hierarchically occupies geometric information.
  • decoding information switching between a plurality of contexts when decoding the occupancy information, referring to a decoded frame temporally different from a target frame as a reference frame for switching the context, and The area referenced by is switched between an area having the same size as the node size of the target hierarchy and an area having a size different from the node size of the target hierarchy for each layer. This is the gist of it.
  • a point cloud decoding device it is possible to provide a point cloud decoding device, a point cloud decoding method, and a program that can improve the encoding efficiency in inter-prediction of geometric information.
  • FIG. 1 is a diagram showing an example of the configuration of a point cloud processing system 10 according to one embodiment.
  • FIG. 2 is a diagram showing an example of functional blocks of the point cloud decoding device 200 according to one embodiment.
  • FIG. 3 is a diagram showing an example of the configuration of encoded data (bitstream) received by the geometric information decoding unit 2010 of the point group decoding device 200 according to one embodiment.
  • FIG. 4 is a diagram showing an example of the syntax configuration of GPS2011.
  • FIG. 5 is a diagram showing an example of the syntax configuration of GSH2012.
  • FIG. 6 is a flowchart showing an example of processing in the tree synthesizing unit 2020 of the point cloud decoding device 200 according to one embodiment.
  • FIG. 7 is a flowchart showing an example of the decoding process of the occpancy code for each node by the tree synthesizing unit 2020 of the point group decoding device 200 according to one embodiment.
  • FIG. 8 is an example of processing for selecting any one from four types of contexts (no pred/pred0/pred1/predL) using inter prediction by the tree synthesis unit 2020 of the point group decoding device 200 according to one embodiment. It is a flow chart showing.
  • FIG. 9 is a flowchart showing an example of processing of the approximate surface synthesizing unit 2030 of the point cloud decoding device 200 according to one embodiment.
  • FIG. 10 is a flowchart illustrating an example of decoding processing of Trisoup vertex positions by the approximate surface synthesizing unit 2030 of the point cloud decoding device 200 according to an embodiment.
  • FIG. 11 is a diagram for explaining an example of the processing of step S1006 in FIG.
  • FIG. 12 is a diagram for explaining an example of the processing of step S1006 in FIG.
  • FIG. 13 is a diagram for explaining another example of the processing of step S1006 in FIG.
  • FIG. 14 is a diagram for explaining another example of the processing of step S1006 in FIG.
  • FIG. 15 is a diagram for explaining an example of the processing of step S902 in FIG.
  • FIG. 16 is a diagram for explaining an example of the processing of step S902 in FIG.
  • FIG. 11 is a diagram for explaining an example of the processing of step S1006 in FIG.
  • FIG. 12 is a diagram for explaining an example of the processing of step S1006 in FIG.
  • FIG. 13 is a diagram for explaining another example of
  • FIG. 17 is a diagram for explaining another example of the processing of step S902 in FIG.
  • FIG. 18 is a diagram for explaining another example of the processing of step S902 in FIG.
  • FIG. 19 is a diagram for explaining another example of the processing of step S902 in FIG.
  • FIG. 20 is a diagram for explaining another example of the processing of step S902 in FIG.
  • FIG. 21 is a diagram showing an example of functional blocks of the point cloud encoding device 100 according to one embodiment.
  • FIG. 22 is a flow chart showing an example of the process of step S701 in FIG.
  • FIG. 23 is a flow chart showing an example of the process of step S2202 in FIG.
  • FIG. 24 is a diagram for explaining an example of the processing of step S902 in FIG.
  • FIG. 1 is a diagram showing a point cloud processing system 10 according to an embodiment according to this embodiment.
  • the point cloud processing system 10 has a point cloud encoding device 100 and a point cloud decoding device 200.
  • the point cloud encoding device 100 is configured to generate encoded data (bitstream) by encoding an input point cloud signal.
  • the point cloud decoding device 200 is configured to generate an output point cloud signal by decoding the bitstream 4
  • 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.
  • such a bitstream may be transmitted from the point cloud encoding device 100 to the point cloud decoding device 200 via a transmission channel.
  • the bitstream may be stored in a storage medium and then provided from the point cloud encoding device 100 to the point cloud decoding device 200 .
  • FIG. 2 is a diagram showing an example of functional blocks of the point group decoding device 200 according to this embodiment.
  • the point cloud decoding device 200 includes a geometric information decoding unit 2010, a tree synthesis unit 2020, an approximate surface synthesis unit 2030, a geometric information reconstruction unit 2040, an inverse coordinate transformation unit 2050, an attribute It has information decoding section 2060 , inverse quantization section 2070 , RAHT section 2080 , LoD calculation section 2090 , inverse lifting section 2100 , inverse color conversion section 2110 and frame buffer 2120 .
  • the geometric information decoding unit 2010 is configured to receive as input a bitstream related to geometric information (geometric information bitstream) among the bitstreams output from the point cloud encoding device 100 and decode the syntax.
  • the decoding process is, for example, context adaptive binary arithmetic decoding process.
  • the syntax includes control data (flags and parameters) for controlling decoding processing of position information.
  • the tree synthesizing unit 2020 receives the control data decoded by the geometric information decoding unit 2010 and an occupancy code indicating in which node in the tree described later the point group exists, and determines in which region in the decoding target space the point is located. It is configured to generate tree information that exists.
  • the decoding process of the occupancy code may be configured to be performed inside the tree synthesizing unit 2020 .
  • This process divides the decoding target space into rectangular parallelepipeds, refers to the occupancy code to determine whether points exist in each rectangular parallelepiped, divides the rectangular parallelepiped where the points exist into multiple rectangular parallelepipeds, and refers to the occupancy code.
  • Tree information can be generated by recursively repeating the process.
  • inter prediction which will be described later, may be used when decoding such an occupancy code.
  • a method called "Octree” that recursively divides the octree with the above-mentioned rectangular parallelepiped always as a cube, and "QtBt” that performs quadtree division and binary tree division in addition to octree division can be used.
  • QtBt is transmitted from the point group encoding device 100 side as control data.
  • the tree synthesis unit 2020 is configured to decode the coordinates of each point based on any tree configuration determined in the point cloud encoding device 100. ing.
  • the approximate surface synthesizing unit 2030 is configured to generate approximate surface information using the tree information generated by the tree synthesizing unit 2020, and decode the point group based on the approximate surface information.
  • the approximate surface information is obtained by decoding the points instead of decoding individual point clouds. It is an approximation of the existence area of the group with a small plane.
  • the approximate surface synthesizing unit 2030 can generate approximate surface information and decode the point group by, for example, a technique called "Trisoup". A specific processing example of "Trisoup” will be described later. Also, when decoding a sparse point group acquired by Lidar or the like, this process can be omitted.
  • the geometric information reconstruction unit 2040 reconstructs geometric information (decoding process position information in the coordinate system assumed by ).
  • the inverse coordinate transformation unit 2050 receives as input the geometric information reconstructed by the geometric information reconstruction unit 2040, transforms the coordinate system assumed by the decoding process into the coordinate system of the output point group signal, and converts the position information. configured to output.
  • the frame buffer 2120 is configured to input the geometric information reconstructed by the geometric information reconstruction unit 2040 and store it as a reference frame.
  • the stored reference frames are read from the frame buffer 2120 and used as reference frames when the tree synthesis unit 2020 inter-predicts temporally different frames.
  • whether or not to use a reference frame at which time for each frame may be determined, for example, based on control data transmitted as a bitstream from the point group encoding device 100.
  • the attribute information decoding unit 2060 is configured to receive a bitstream related to attribute information (attribute information bitstream) among the bitstreams output from the point cloud encoding device 100 and decode the syntax.
  • the decoding process is, for example, context adaptive binary arithmetic decoding process.
  • the syntax includes control data (flags and parameters) for controlling attribute information decoding processing.
  • the attribute information decoding unit 2060 is configured to decode the quantized residual information from the decoded syntax.
  • the inverse quantization unit 2070 performs inverse quantization based on the quantized residual information decoded by the attribute information decoding unit 2060 and the quantization parameter, which is one of the control data decoded by the attribute information decoding unit 2060. and configured to generate dequantized residual information.
  • the inverse quantized residual information is output to either the RAHT section 2080 or the LoD calculation section 2090 according to the features of the point cloud to be decoded. Which one is output is specified by control data decoded by attribute information decoding section 2060 .
  • the RAHT unit 2080 receives the inverse quantized residual information generated by the inverse quantization unit 2070 and the geometric information generated by the geometric information reconstruction unit 2040, and performs a Haar transform called RAHT (Region Adaptive Hierarchical Transform) ( In the decoding process, a kind of inverse Haar transform is used to decode the attribute information of each point.
  • RAHT Restion Adaptive Hierarchical Transform
  • a kind of inverse Haar transform is used to decode the attribute information of each point.
  • RAHT Regular Adaptive Hierarchical Transform
  • the LoD calculation unit 2090 is configured to receive the geometric information generated by the geometric information reconstruction unit 2040 and generate LoD (Level of Detail).
  • LoD is a reference relationship (referred point and referenced point ) is information for defining
  • LoD classifies each point included in geometric information into a plurality of levels, and encodes or decodes the attributes of points belonging to lower levels using attribute information of points belonging to higher levels. This is information that defines the structure.
  • the inverse lifting unit 2100 uses the LoD generated by the LoD calculation unit 2090 and the inverse quantized residual information generated by the inverse quantization unit 2070 to determine the attribute information of each point based on the hierarchical structure defined by the LoD. is configured to decode the As a specific reverse lifting process, for example, the method described in Document 1 can be used.
  • the inverse color conversion unit 2110 uses the attribute information output from the RAHT unit 2080 or the inverse lifting unit 2100 when the attribute information to be decoded is color information and color conversion has been performed on the side of the point cloud encoding device 100. is configured to perform inverse color conversion processing. Whether or not to execute the inverse color conversion process is determined by the control data decoded by the attribute information decoding unit 2060 .
  • the point cloud decoding device 200 is configured to decode and output the attribute information of each point in the point cloud through the above processing.
  • FIG. 3 is an example of the structure of encoded data (bitstream) received by the geometric information decoding unit 2010.
  • FIG. 3 is an example of the structure of encoded data (bitstream) received by the geometric information decoding unit 2010.
  • the bitstream may contain GPS2011.
  • GPS2011 is also called a geometry parameter set, and is a set of control data related to decoding of geometric information. A specific example will be described later.
  • Each GPS 2011 includes at least GPS id information for individual identification when multiple GPS 2011 exist.
  • the bitstream may contain GSH2012A/2012B.
  • GSH2012A/2012B is also called geometry slice header or geometry data unit header, and is a set of control data corresponding to slices described later.
  • the term “slice” will be used, but the term “slice” can also be read as a data unit. A specific example will be described later.
  • GSH 2012A/2012B includes at least GPS id information for designating GPS 2011 corresponding to each GSH 2012A/2012B.
  • the bitstream may contain slice data 2013A/2013B next to GSH 2012A/2012B.
  • the slice data 2013A/2013B includes data obtained by encoding geometric information.
  • An example of the slice data 2013A/2013B is an occupancy code, which will be described later.
  • the bitstream has a configuration in which one GSH 2012A/2012B and one GPS 2011 correspond to each slice data 2013A/2013B.
  • GSH2012A/2012B which GPS 2011 to refer to is designated by GPS id information, so a common GPS 2011 can be used for multiple slice data 2013A/2013B.
  • GPS2011 does not necessarily need to transmit for each slice.
  • FIG. 3 it is possible to configure a bitstream such that GPS 2011 is not encoded immediately before GSH 2012B and slice data 2013B.
  • FIG. 3 is only an example. As long as GSH 2012A/2012B and GPS 2011 correspond to each slice data 2013A/2013B, elements other than those described above may be added as components of the bitstream.
  • the bitstream may include a sequence parameter set (SPS) 2001, as shown in FIG. Also, in the same way, it may be shaped into a configuration different from that in FIG. 3 at the time of transmission. Furthermore, it may be combined with a bitstream decoded by the attribute information decoding unit 2060, which will be described later, and transmitted as a single bitstream.
  • SPS sequence parameter set
  • FIG. 4 is an example of the syntax configuration of GPS2011.
  • syntax name explained below is just an example. As long as the functionality of the syntaxes described below is similar, the syntax names can be different.
  • the GPS 2011 may include GPS id information (gps_geom_parameter_set_id) for identifying each GPS 2011.
  • the Descriptor column in FIG. 4 means how each syntax is encoded.
  • ue(v) means an unsigned zero-order exponential Golomb code, and u(1) means a 1-bit flag.
  • the GPS 2011 may include a flag (interprediction_enabled_flag) that controls whether or not the tree synthesis unit 2020 performs inter prediction.
  • inter prediction is not performed when the value of interpretation_enabled_flag is "0", and that inter prediction is performed when the value of interpretation_enabled_flag is "1".
  • interpretation_enabled_flag may be included in the SPS2001 instead of the GPS2011.
  • the GPS 2011 may include a flag (trisoup_enabled_flag) that controls whether Trisoup is used in the approximate surface synthesis unit 2030.
  • 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".
  • the geometric information decoding unit 2020 may be configured to additionally decode the following syntax when using Trisoup, that is, when the value of trisoup_enabled_flag is "1".
  • trisoup_enabled_flag may be included in SPS2001 instead of GPS2011.
  • the GPS 2011 may include a flag (trisoup_multilevel_enabled_flag, first flag) that controls whether to allow Trisoup at multiple levels.
  • Trisoup_multilevel_enabled_flag when the value of trisoup_multilevel_enabled_flag is '0', Trisoup at multiple levels is not permitted. It may be defined that Trisoup is allowed.
  • the value of the syntax may be regarded as the value for Trisoup at a single level, that is, "0".
  • trisoup_multilevel_enabled_flag may be defined to be included in SPS2001 instead of GPS2011.
  • the value of the syntax may be regarded as the value for Trisoup at a single level, ie, "0".
  • FIG. 5 is an example of the syntax configuration of GSH2012.
  • GSH is also called GDUH (Geometry Data Unit Header).
  • the geometric information decoding unit 2020 may be configured to additionally decode the following syntax when trisoup at multiple levels is permitted, that is, when the value of trisoup_multilevel_enabled_flag is "1".
  • GSH 2012 may include syntax (log2_trisoup_max_node_size_minus2) that specifies the maximum value of Trisoup node size when allowing Trisoup at multiple levels.
  • the syntax may be expressed as a logarithmic value with base 2 for the maximum value of the actual Trisoup node size. Further, the syntax may express the maximum value of the actual Trisoup node size as a value obtained by subtracting 2 after converting to base 2 logarithm.
  • GSH 2012 may include syntax (log2_trisoup_min_node_size_minus2) that specifies the minimum value of the Trisoup node size when allowing Trisoup at multiple levels.
  • the syntax may be expressed as a logarithmic value with base 2 for the minimum value of the actual Trisoup node size. Furthermore, the syntax may express the minimum value of the actual Trisoup node size as a value obtained by subtracting 2 after converting to base 2 logarithm.
  • the value of the syntax may be constrained to always be 0 or more and log2_trisoup_max_node_size_minus2 or less.
  • the geometric information decoding unit 2020 may be configured to additionally decode the following syntax when Trisoup at multiple levels is not permitted, that is, when the value of trisoup_multilevel_enabled_flag is "0".
  • GSH 2012 may include syntax (log2_trisoup_node_size_minus2) to specify the Trisoup node size when not allowing Trisoup at multiple levels and when using Trisoup.
  • the syntax may be expressed as a value converted to a logarithm with base 2 for the actual Trisoup node size. Further, the syntax may express the actual Trisoup node size as a value after converting to base 2 logarithm and then subtracting 2.
  • the GSH 2012 may include syntax (trisoup_sampling_value_minus1) that controls the sampling interval of decoding points when using Trisoup.
  • syntax trisoup_sampling_value_minus1
  • a specific definition of the syntax can be, for example, the same as the definition described in Document 1 above.
  • values obtained by subtracting "1" from their original values may be encoded as syntax values.
  • the GSH 2012 may include syntax (log2_min_ref_node_size) indicating the minimum size of the reference node when inter prediction is performed, for example, when the value of the interpolation_enabled_flag is "1".
  • the value of the syntax may be defined as the base-2 logarithm of the minimum size value of the reference node.
  • FIG. 6 is a flowchart showing an example of processing in the tree synthesizing unit 2020. As shown in FIG. An example of synthesizing a tree using "Octree" will be described below.
  • step S601 the tree synthesizing unit 2020 confirms whether or not all depth processes have been completed.
  • the depth number may be included as control data in a bitstream transmitted from the point cloud encoding device 100 to the point cloud decoding device 200 .
  • the tree synthesizing unit 2020 calculates the node size of the target depth.
  • the initial Depth node size may be defined as '2 raised to the power of Depth'. That is, when the depth number is N, the node size of the first depth may be defined as 2 to the Nth power.
  • the node size at the second and subsequent Depths may be defined by decreasing the number of N by one. That is, the node size of the second depth is defined as "2 to the (N-1) power", the node size of the third depth is defined as "2 to the (N-2) power", . may be defined as
  • node size is always defined as a power of 2
  • the value of the exponent part (N, N ⁇ 1, N ⁇ 2, etc.) may be simply considered as the node size.
  • node size refers to the value of the exponent part.
  • step S609 the tree synthesis unit 2020 proceeds to step S602.
  • the tree synthesizing unit 2020 processes The depth number may be varied based on the value of the syntax that defines the minimum value of the Trisoup node size (log2_trisoup_min_node_size_minus2) or the syntax that defines the Trisoup node size (log2_trisoup_node_size_minus2). In such a case, for example, it may be defined as follows.
  • the minimum Trisoup node size can be defined by, for example, (log2_trisoup_min_node_size_minus2+2). Similarly, the Trisoup node size can be defined as (log2_trisoup_node_size_minus2+2).
  • step S609 if the processing for all the processing depth numbers has been completed, the tree synthesizing unit 2020 proceeds to step S609; otherwise, the tree synthesizing unit 2020 proceeds to step S602.
  • the tree synthesizing unit 2020 may determine that Trisoup is applied to all nodes having the node size (N-number of processing depths) when proceeding to step S609.
  • step S602 the tree synthesizing unit 2020 determines whether it is necessary to decode Trisoup_applied_flag, which will be described later, at the target depth.
  • the tree synthesizing unit 2020 may determine that "decoding of Trisoup_applied_flag is required”.
  • the tree synthesis unit 2020 may determine that "decoding of Trisoup_applied_flag is unnecessary" when the above condition is not satisfied.
  • the maximum Trisoup node size can be defined, for example, by (log2_trisoup_max_node_size_minus3+2).
  • step S603 the tree synthesizing unit 2020 determines whether the processing of all nodes included in the target depth has been completed.
  • the tree synthesizing unit 2020 moves to step S601 and performs the processing of the next depth.
  • step S604 the tree synthesizing unit 2020 confirms whether decoding of the Trisoup_applied_flag determined in step S602 is necessary.
  • step S605 If it is determined that decoding of Trisoup_applied_flag is necessary, the tree synthesizing unit 2020 proceeds to step S605, and if it is determined that decoding of Trisoup_applied_flag is not necessary, the tree synthesizing unit 2020 proceeds to step S608. .
  • step S605 the tree synthesizing unit 2020 decodes Trisoup_applied_flag.
  • Trisoup_applied_flag is a 1-bit flag (second flag) that indicates whether or not Trisoup is applied to the target node. For example, it may be defined that Trisoup is applied to the target node when the flag value is "1", and that Trisoup is not applied to the target node when the flag value is "0".
  • the tree synthesizing unit 2020 moves to step S606.
  • step S606 the tree synthesizing unit 2020 checks the value of Trisoup_applied_flag decoded in step S605.
  • step S607 the tree synthesizing unit 2020 stores the target node as a node to which Trisoup is applied, that is, as a Trisoup node. It is assumed that the node division by "Octree" is no longer applied to such a target node. After that, the tree synthesizing unit 2020 advances to step S603 to process the next node.
  • step S608 the tree synthesizing unit 2020 decodes the information called "occpancy code”.
  • the occpancy code is divided into 8 nodes (called child nodes) by dividing the target node in half along the x, y, and z axes. This is information indicating whether or not a point to be decoded is included.
  • the occupation code assigns 1-bit information to each child node, and if the 1-bit information is "1", it is defined that the point to be decoded is included in the child node. If the bit information is '0', it may be defined that the point to be decoded is not included in the child node.
  • the tree synthesizing unit 2020 When decoding such an occurrence code, the tree synthesizing unit 2020 pre-estimates the probability that each child node has a point to be decoded, and entropy-decodes the bits corresponding to each child node based on the probability. good.
  • the point group encoding device 100 may perform entropy encoding.
  • inter-prediction may be used to estimate such probabilities.
  • the method described in Document 1 above can be applied.
  • an up-sampled point cloud may be used as a reference point cloud for inter prediction.
  • FIG. 7 is a flow chart showing a specific example of the decoding process of the opportunity code for each node.
  • FIG. 7 is a flow chart showing a specific example of the processing in step S608 of FIG.
  • step S701 the tree synthesizing unit 2020 selects a context.
  • a context corresponds to a probability distribution used in entropy decoding when decoding occupation information in the subsequent stage.
  • FIG. 8 is an example of a flowchart for selecting any one of four contexts (no pred/pred0/pred1/predL) using inter prediction.
  • FIG. 8 illustrates an example in which there are four types of contexts, but the number of contexts does not have to be four.
  • step S801 the tree synthesizing unit 2020 determines the accuracy of inter prediction.
  • the accuracy of inter-prediction can be determined, for example, based on the selected context and the presence or absence of actual points for child nodes (eight child nodes in the case of Octree) of the parent node of the target node.
  • step S802 If the accuracy of inter prediction is determined to be "good”, the tree synthesizing unit 2020 proceeds to step S802. If it is determined that the inter-prediction accuracy is “poor”, the tree synthesizing unit 2020 proceeds to step S805, sets the context to "no pred” for all child nodes belonging to the target node, and ends the process.
  • step S802 the tree synthesizing unit 2020 checks whether or not there is at least one reference point in the region at the same position as the target node in the motion-compensated reference frame.
  • step S803 If there is at least one reference point in the area at the same position as the target node, the tree synthesizing unit 2020 proceeds to step S803. On the other hand, if there is no reference point in the area at the same position as the target node, the tree synthesizing unit 2020 proceeds to step S805, sets the context to "no pred" for all child nodes belonging to the target node, and terminates the process. do.
  • the tree synthesizing unit 2020 makes a determination for each child node belonging to the target node.
  • step S803 the tree synthesizing unit 2020 checks whether or not there is at least one reference point in the region at the same position as the target child node in the motion-compensated reference frame.
  • the tree synthesizing unit 2020 proceeds to step S804. On the other hand, if there is no reference point in the area at the same position as the target child node, the tree synthesizing unit 2020 proceeds to step S806 and sets the context of the target child node to "pred0".
  • the tree synthesizing unit 2020 returns to step S803 and performs similar processing for the next child node.
  • the tree synthesizing unit 2020 ends the process.
  • step S804 the tree synthesizing unit 2020 checks whether or not the number of reference points equal to or greater than a predetermined threshold exists in the region at the same position as the target child node in the motion-compensated reference frame.
  • the tree synthesizing unit 2020 proceeds to step S808 and sets the context of the target child node to "predL".
  • the tree synthesizing unit 2020 proceeds to step S807 and sets the context of the target child node to "pred1".
  • step S807 or S808 if context selection has not been completed for all child nodes of the target node, the tree synthesizing unit 2020 returns to step S804 and performs the same process for the next child node.
  • the tree synthesizing unit 2020 ends the process.
  • step S702 After selecting the context as described above, the tree synthesizing unit 2020 proceeds to step S702.
  • step S702 the tree synthesizing unit 2020 decodes the occupation information, that is, the occupation code of each child node of the target node based on the context selected in step S701.
  • each context corresponds to an independent probability distribution.
  • step S702 the tree synthesizing unit 2020 performs entropy decoding based on the probability distribution corresponding to the context, and determines whether each child node has a point (“1”) or not (“0”). ). After completing the decoding of the occpancy code, the tree synthesizing unit 2020 proceeds to step S703.
  • step S703 the tree synthesizing unit 2020 updates the context.
  • step S703 if there is a point as a result of decoding the occupation information in each context, the tree synthesizing unit 2020 updates the probability distribution associated with each context so that the probability of the existence of the point increases.
  • step S703 if there is no point as a result of decoding the occupation information in each context, the tree synthesizing unit 2020 updates the probability distribution associated with each context so that the probability that the point exists is low. do.
  • the tree synthesizing unit 2020 advances to step S704 and terminates the process.
  • step S701 described above may be, for example, the process shown in FIG.
  • FIG. 22 is a flow chart showing an example of the process of step S701 in FIG.
  • the only difference between FIG. 22 and FIG. 8 is step S2202. Therefore, the processes denoted by the same reference numerals as those in FIG. 8 can be the same processes as those in FIG.
  • Step S2202 in FIG. 22 will be described below.
  • step S2202 the tree combining unit 2020 determines whether or not there is at least one reference point within the reference node, and if there is at least one reference point within the reference node If there is no reference point in the reference node, the process proceeds to step S805.
  • FIG. 23 is a flowchart showing an example of the process of step S2202.
  • step S2301 the tree synthesizing unit 2020 confirms whether or not the reference destination of the target node is set to a predetermined hierarchy.
  • the reference destination of the target node shall be set to the target layer as an initial value.
  • the tree synthesizing unit 2020 advances to step S2302, and if the reference destination of the target node is not set to the predetermined hierarchy, If so, tree synthesizing section 2020 proceeds to step S2304.
  • step S2302 the tree synthesizing unit 2020 outputs information regarding the presence/absence of the reference point of the predetermined hierarchy stored in the target node as the presence/absence of the reference point of the target node.
  • tree synthesis section 2020 determines in step S2202 that there is at least one reference point in the reference node, and the reference point in the predetermined hierarchy. If the information regarding the presence or absence of is "absent”, tree synthesis section 2020 determines in step S2202 that there is no reference point in the reference node.
  • step S2303 the tree synthesizing unit 2020 proceeds to step S2303.
  • step S2303 the tree synthesizing unit 2020 sets the reference destination to a predetermined hierarchy for each child node generated by splitting the target node.
  • the tree synthesizing unit 2020 copies the information on the presence/absence of the reference point in the predetermined hierarchy stored in the target node as the information on the presence/absence of the reference point in the predetermined hierarchy of each child node. In other words, the tree synthesizing unit 2020 inherits to each child node the information about the presence or absence of the reference point in the predetermined hierarchy saved in the target node.
  • the tree synthesizing unit 2020 moves to step S2308 and ends the processing.
  • step S2304 the tree synthesizing unit 2020 outputs whether or not there is a reference point in the target hierarchy. This process is the same as step S802.
  • step S2305 the tree synthesizing unit 2020 determines whether the size of each child node generated by splitting the target node is a predetermined size.
  • the predetermined size may be set by, for example, syntax (log2_min_ref_node_size) indicating the minimum size of reference nodes included in GSH2012.
  • the largest size may be used as the size of the target node.
  • the smallest size may be used as the size of the target node.
  • step S2307 If the size of the target node obtained as described above is equal to the predetermined size, the tree synthesizing unit 2020 proceeds to step S2306. The process advances to step S2307.
  • values obtained by taking the logarithm of 2 may be used for processing.
  • step S2306 the tree synthesizing unit 2020 sets the reference destination of each child node obtained by dividing the target node to a predetermined hierarchy.
  • the tree synthesizing unit 2020 sets the information regarding the presence/absence of the reference point of the target node output in step S2304 as the information regarding the presence/absence of the reference point in the predetermined hierarchy of each child node.
  • the tree synthesizing unit 2020 advances to step S2308 and terminates the processing.
  • step S2307 the tree synthesizing unit 2020 sets the reference destination of each child node obtained by dividing the target node to the target hierarchy, proceeds to step S2308, and ends the process.
  • the target hierarchy is defined as the reference destination
  • the predetermined hierarchy is defined as the reference destination and the reference point of the predetermined hierarchy.
  • a predetermined hierarchy may be defined as the reference destination and the reference point of the predetermined hierarchy may be defined as "present”.
  • the tree synthesizing unit 2020 proceeds to step S603 to process the next node.
  • the tree synthesizing unit 2020 hierarchically decodes the occupation information of the geometric information, switches between a plurality of contexts when decoding the occupation information, and switches the context between the target frame and the time.
  • a decoded frame that is physically different is referred to as a reference frame, and an area to be referred to in the reference frame is an area having the same size as the node size of the target layer for each layer, or is different from the node size of the target layer. It may be configured to switch between the size of the area.
  • the tree synthesizing unit 2020 may be configured to switch contexts based on the presence or absence of reference points in the reference nodes described above.
  • the tree combining unit 2020 makes the size of the reference node the same as the node size of the target layer.
  • the size of the reference node may be configured to be the predetermined minimum reference node size if the size is less than the predetermined minimum reference node size.
  • the node size of the target layer is smaller than the minimum reference node size
  • by switching the context by referring to an area larger than the node size of the target layer even if the reference point cloud is sparse Coding efficiency can be improved by exploiting spatial correlation.
  • the tree synthesizing unit 2020 may be configured to switch contexts using a predetermined minimum reference node size decoded from control data.
  • the point cloud decoding device 200 side does not need search processing for determining the reference node size, and the point cloud An increase in the amount of computation of the decoding device 200 can be prevented.
  • the point cloud encoding device 100 side can also refer to the origin group data before encoding, by determining the reference node size on the point cloud encoding device 100 side, the reference node size on the point cloud decoding device 200 side A more appropriate node size can be determined from the viewpoint of coding efficiency compared to the case of determining .
  • the tree synthesizing unit 2020 may be configured to hold information regarding the reference destination and the presence or absence of a reference point in a predetermined hierarchy for each node.
  • the tree synthesizing unit 2020 may be configured to set information regarding the reference destination and the presence or absence of a reference point in a predetermined hierarchy for each child node obtained by dividing the target node.
  • the tree synthesis unit 2020 stores the information regarding the presence or absence of the reference point in the predetermined hierarchy, and the information regarding the presence or absence of the reference point in the reference node. may be configured to perform context switching as .
  • the tree synthesis unit 2020 refers to an area having the same size and the same position as the target node in the reference frame as the reference node, and may be configured to perform context switching based on the presence or absence of a reference point in .
  • the approximate surface synthesizing unit 2030 is configured to perform decoding processing on each node determined to be a Trisoup node by the tree synthesizing unit 2020 as described with reference to FIG.
  • FIG. 9 An example of the processing of the approximate surface synthesizing unit 2030 will be described below with reference to FIGS. 9 to 20.
  • FIG. 9 An example of the processing of the approximate surface synthesizing unit 2030 will be described below with reference to FIGS. 9 to 20.
  • FIG. 9 is a flowchart showing an example of processing of the approximate surface synthesizing unit 2030.
  • step S901 the approximate surface synthesis unit 2030 decodes vertex positions for each node.
  • the approximate surface synthesis unit 2030 when the approximate surface synthesis unit 2030 permits Trisoup at multiple levels, that is, when the value of trisoup_multilevel_enabled_flag is "1", the approximate surface synthesis unit 2030 decodes the vertex position for each node in the minimum Trisoup node size.
  • the approximate surface synthesis unit 2030 decodes the vertex position for each node in the Trisoup node size when Trisoup at multiple levels is not permitted, that is, when the value of trisoup_multilevel_enabled_flag is "0". Specific processing will be described later.
  • step S902 After completing the decoding of the vertex positions, the approximate surface synthesizing unit 2030 proceeds to step S902.
  • step S902 the approximate surface synthesis unit 2030 determines a projection plane for each node (minimum Trisoup node size or each node in the Trisoup node size) whose vertex positions are decoded.
  • a plane obtained by degenerating any one axis is called a projection plane.
  • step S902 the approximate surface synthesizing unit 2030 selects which of the above axes is to be degenerated, that is, which of the xy plane, xz plane, and yz plane is to be the projection plane. decide. Specific processing will be described later.
  • step S903 After determining the projection plane, the approximate surface synthesizing unit 2030 proceeds to step S903.
  • step S903 the approximate surface synthesizing unit 2030 sorts the vertices projected onto the projection plane, for example, in counterclockwise order, and assigns indices according to the order.
  • the approximate surface synthesizing unit 2030 proceeds to step S904.
  • step S904 the approximate surface synthesizing unit 2030 generates triangles based on the above index and the number of vertices present in the target node.
  • the approximate surface synthesizing unit 2030 can create a table in advance that defines from which index to generate a triangle for each number of vertices, and generate a triangle by referring to this table.
  • the table described in Document 1 can be used.
  • step S905 the approximate surface synthesizing unit 2030 generates points based on the triangles generated in step S904.
  • the method described in Document 1 can be used.
  • the approximate surface synthesizing unit 2030 proceeds to step S906 and ends the processing.
  • FIG. 10 is a flowchart illustrating an example of decoding processing for trisoup vertex positions.
  • step S1001 the approximate surface synthesizing unit 2030 determines whether the processing of all Trisoup hierarchies has been completed.
  • the total number of Trisoup hierarchies can be defined as follows.
  • the total number of Trisoup layers can be defined as (maximum Trisoup node size - minimum Trisoup node size + 1).
  • the total number of Trisoup hierarchies can be defined by (log2_trisoup_max_node_size_minus2 ⁇ log2_trisoup_min_node_size_minus2+1).
  • Trisoup at multiple levels that is, when the value of trisoup_multilevel_enabled_flag is "0", the total number of Trisoup layers is 1.
  • the approximate surface synthesizing unit 2030 proceeds to step S1007. If the processing of all Trisoup hierarchies has not been completed, the approximate surface synthesizing unit 2030 moves to step S1002.
  • step S1002 the approximate surface synthesizing unit 2030 confirms the number of unique segments belonging to the target Trisoup hierarchy.
  • the approximate surface synthesizing unit 2030 proceeds to step S1001 to process the next Trisoup layer.
  • step S1003 If the number of unique segments is greater than "0", the approximate surface synthesizing unit 2030 moves to step S1003.
  • step S1003 the approximate surface synthesizing unit 2030 decodes whether each unique segment includes vertices used for Trisoup processing.
  • the number of vertices that can exist for each unique segment may be limited to only one point. In this case, it can be interpreted that the number of unique segments in which vertices exist is equal to the number of vertices.
  • the approximate surface synthesis unit 2030 moves to step S1004.
  • step S1004 the approximate surface synthesizing unit 2030 decodes position information indicating where the vertex exists on each unique segment for each unique segment determined to have a vertex in step S1003.
  • the position information may be encoded with an L-bit equal-length code.
  • the approximate surface synthesizing unit 2030 proceeds to step S1006 after decoding vertex positions for all unique segments having vertices in the target Trisoup hierarchy.
  • step S1006 if the node size in the target Trisoup hierarchy is the minimum Trisoup node size, the approximate surface synthesis unit 2030 proceeds to S1001 without performing any processing.
  • step S1001 the approximate surface synthesizing unit 2030 does not perform any processing and proceeds to step S1001.
  • the approximate surface synthesis unit 2030 uses the target Trisoup layer decoded in step S1004. Generate the vertex positions at the minimum Trisoup node size based on the vertex positions at the node size corresponding to . A specific processing example will be described later.
  • step S1001 After completing vertex position generation for the minimum node size, the approximate surface synthesis unit 2030 proceeds to step S1001.
  • step S1007 the approximate surface synthesizing unit 2030 integrates vertex positions.
  • the approximate surface synthesizing unit 2030 when the approximate surface synthesizing unit 2030 generates the vertex positions for the minimum Trisoup node size from the vertex positions for the large node size in step S1006, there is a possibility that two or more vertices are generated for each side of the node. be.
  • the approximate surface synthesizing unit 2030 integrates it into one point so that each side has one vertex.
  • the approximate surface synthesizing unit 2030 can integrate a plurality of points into one point by averaging the coordinates of the vertices on the side.
  • the approximate surface synthesis unit 2030 can narrow down the number of vertices to one by selecting a point having the median coordinate value.
  • the approximate surface synthesizing unit 2030 extracts two points having the median coordinate value, and then averages the coordinate values of these two points to narrow down the vertex to one. can be done.
  • the approximate surface synthesizing unit 2030 proceeds to step S1008 and ends the process.
  • step S1006 Next, a specific example of the processing of step S1006 will be described.
  • step S1006 An example of the processing of step S1006 will be described below with reference to FIGS. 11 and 12.
  • FIG. 11 An example of the processing of step S1006 will be described below with reference to FIGS. 11 and 12.
  • FIG. 12 shows an example where the node size corresponding to the target Trisoup layer decoded 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. .
  • step S1006 The purpose of the processing in step S1006 is to extract the minimum Trisoup shown in FIG. It is to generate vertices (9 points in FIG. 12) in the node size (N-1 in FIG. 12).
  • FIG. 11 is a flowchart showing an example of the process of step S1006 described above.
  • the approximate surface synthesis unit 2030 receives as input the vertex position in the node size corresponding to the target Trisoup hierarchy decoded in step S1004, and performs the processing of steps S1101 to S1104.
  • steps S1101 to S1104 can be realized by the same method as steps S902 to S905 in FIG.
  • FIG. 12-1 shows an example of the processing result of step S1103 (that is, an example of input data of step S1104)
  • FIG. 12-2 shows an example of the processing result of step S1104.
  • step S1104 the approximate surface synthesizing unit 2030 generates points at all intersections between the triangular surfaces shown in FIG. 12-1 and integer coordinate positions.
  • the approximate surface synthesizing unit 2030 converts the triangles shown in FIG. 12-1 into points as shown in FIG. 12-2, and then proceeds to step S1105.
  • step S1105 the approximate surface synthesizing unit 2030 determines vertex positions in the minimum Trisoup node size from the points generated in step S1104.
  • the approximate surface synthesizing unit 2030 extracts, for example, points adjacent to the side of each node corresponding to the smallest Trisoup node size from among the points generated in step S1104, and coordinates of the extracted points By calculating the average value of , the vertex position for each edge can be determined.
  • the approximate surface synthesizing unit 2030 can perform calculations in the same manner as above even when the sides are along the y-axis direction and the z-axis direction.
  • the approximate surface synthesizing unit 2030 does not generate vertices on a side when there are no points in the area adjacent to the side.
  • the approximate surface synthesizing unit 2030 can generate vertex positions in the minimum Trisoup node size, for example, as shown in FIG. 12-3.
  • FIG. 13 Another specific example of the processing in step S1106 will be described using FIGS. 13 and 14.
  • FIG. 13 Another specific example of the processing in step S1106 will be described using FIGS. 13 and 14.
  • FIG. 13 is a flowchart showing an example of the process of step S1006.
  • the approximate surface synthesis unit 2030 receives as input the vertex position in the node size corresponding to the target Trisoup hierarchy decoded in step S1004, and performs the processing of steps S1301 to S1303.
  • steps S1301 to S1303 can be realized by the same method as steps S902 to S904 in FIG.
  • FIG. 14-1 shows an example of the processing result of step S1303. As can be seen from FIG. 14-1, the processing result of step S1303 and the processing result of step S1103 are the same.
  • step S1304 the approximate surface synthesizing unit 2030 generates points at intersections between each triangular face generated in step S1303 and each side of the node corresponding to the minimum Trisoup node size.
  • FIG. 14-2 shows an example of the processing result of step S1304. After generating points on each side, the approximate surface synthesizing unit 2030 proceeds to step S1305.
  • step S1305 the approximate surface synthesizing unit 2030 integrates the points generated on each side corresponding to the minimum Trisoup node size in step S1304.
  • step S1304 generates points at the intersections of each triangular face and the side. vertices may be generated.
  • the approximate surface synthesizing unit 2030 may integrate the points existing on the same side, and process such that each side has one vertex.
  • multiple points can be integrated into one point.
  • the approximate surface synthesis unit 2030 can narrow down the number of vertices to one by selecting a point having the median coordinate value.
  • the approximate surface synthesizing unit 2030 extracts two points having the median coordinate value, and then averages the coordinate values of these two points to narrow down the vertex to one. can be done.
  • the approximate surface synthesizing unit 2030 advances to step S1306 and ends the process.
  • the approximate surface synthesis unit 2030 decodes the vertex positions for each Trisoup node size as shown in step S1004 in FIG. From the vertex locations, it may be configured to generate vertex locations at the minimum Trisoup node size, as shown, and to generate points at the minimum Trisoup node size, as shown in step S905.
  • the approximate surface synthesis unit 2030 may be configured to perform vertex decoding processing for each of a plurality of node sizes, and perform vertex-based point reconstruction processing for a single node size.
  • the approximate surface synthesis unit 2030 performs decoding processing of vertices 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. is configured to, if such node size is not the minimum node size, be configured to generate vertex positions at the minimum node size based on the decoded vertices, the single node size being the minimum node size and may be configured to perform point reconstruction processing based on the vertex positions in the minimum node size.
  • the decoding unit of the vertex position variable by making the decoding unit of the vertex position variable, the code amount of the information related to the vertex can be reduced according to the geometric characteristics of the point group, while the point reconstruction can be performed in a single unit. Moreover, by executing with a small node size, the subjective quality of the decoded point group can be improved.
  • the approximate surface synthesis unit 2030 generates points based on the decoded vertices, and among the generated points, the node of the node size is the minimum node size It may be configured to generate a vertex position in the minimum node size based on the coordinate values of points existing near each side when divided by .
  • the approximate surface synthesis unit 2030 when the node size is not the minimum node size, the approximate surface synthesis unit 2030 generates points based on the decoded vertices, and splits the node with the minimum node size. It may be configured to generate points only on each edge. By minimizing the number of generated points in this way, it is possible to reduce the amount of memory required for the processing and the amount of processing.
  • the approximate surface synthesis unit 2030 when the node size is not the minimum node size, the approximate surface synthesis unit 2030 generates points based on the decoded vertices, and splits the node with the minimum node size. If there are multiple points on each side, the points may be integrated to generate vertex positions in the minimum node size so that each side has one vertex. In this way, by limiting the number of vertices to one on each side, the point reconstruction processing can be simplified.
  • the approximate surface synthesizing unit 2030 integrates those vertices, It may be configured to generate the vertex positions so that there is one vertex at a time. With such a configuration, it is possible to simplify the point reconstruction processing.
  • the approximate surface synthesizing unit 2030 selects the smallest A vertex generated by a node having a node size may be configured to be the vertex position of such an edge. In this way, by using vertex positions in a small node size, it becomes possible to reconstruct a point group that reproduces more local features, and subjective quality is improved.
  • step S902 in FIG. 9 Next, a specific example of the processing of step S902 in FIG. 9 will be described.
  • FIG. 15 is a flow chart showing an example of the processing in step S902.
  • step S1501 the approximate surface synthesizing unit 2030 calculates the area of each polygon formed by the vertices when the vertices are projected onto each projection plane.
  • FIG. 16 shows a specific example of the processing of step S1501.
  • Figures 16-2 to 16-4 are diagrams when the vertices shown in Figure 16-1 are projected onto respective projection planes.
  • the approximate surface synthesizing unit 2030 calculates the area of the polygon on each projection plane (the area of each hatched portion in FIGS. 16-2 to 16-4).
  • the approximate surface synthesizing unit 2030 sets the center of the square on each projection plane as the origin O, and sets the origin O and two vertices adjacent to the origin O (for example, points E and D in FIG. 16B).
  • the area S of a triangle formed by a total of three points can be calculated by the following formula.
  • E and D mean vectors indicating the three-dimensional coordinates of points E and D with respect to the origin O
  • ⁇ symbol means an operator for calculating the cross product of the vectors
  • We mean the L2 norm.
  • the approximate surface synthesizing unit 2030 applies the above-described matter and sorts the vertices in each projection plane in the same manner as in step S903, for example, in counterclockwise order.
  • the areas of the shaded portions in FIGS. 16-2 to 16-4 can be calculated by calculating the areas of the triangles formed by all adjacent vertices and the origin and summing them up.
  • the origin O is defined as the center of the square on each projection plane. can be used to calculate the area of a polygon.
  • the approximate surface synthesizing unit 2030 may be positioned on the side of the square on the projection plane with respect to the origin O. Also, for example, the approximate surface synthesizing unit 2030 may define one of the vertices projected onto each projection plane as the origin O. FIG. For example, the approximate surface synthesizing unit 2030 may use the top vertex as the origin O after sorting the vertices projected onto each projection plane in counterclockwise order.
  • step S1502 the approximate surface synthesizing unit 2030 determines the projection plane having the largest area of the polygon obtained in step S1501 as the projection plane.
  • the approximate surface synthesizing unit 2030 advances to step S1503 and ends the process.
  • step S903 when the approximate surface synthesis unit 2030 determines the projection plane by the method shown in FIG. 15, the vertices have already been sorted in step S1501, so the processing in step S903 can be omitted.
  • the approximate surface synthesizing unit 2030 projects a plurality of vertices existing on each side of a node onto each of a plurality of projection plane candidates so that the polygon defined by the vertices has the maximum area. may be configured to select a different projection plane as the projection plane described above.
  • the approximate surface synthesizing unit 2030 combines a predetermined origin, one of the vertices (first vertex) projected onto the projection plane candidate, and a second vertex adjacent to the first vertex.
  • the area of the above-described polygon (triangle) may be calculated by calculating the area of a triangle formed by three points for all pairs of adjacent vertices.
  • the approximate surface synthesizing unit 2030 defines the first vector pointing from the origin to the first vertex and the second vector pointing from the origin to the second vertex. It may be configured to calculate the area of the above triangle using the outer product of two vectors. In this way, by calculating using the outer product of vectors, design can be simplified by sharing a processing circuit or processing function when outer product processing is performed in other processing.
  • the approximate surface synthesizing unit 2030 rearranges the vertices projected onto the projection plane candidate described above counterclockwise or clockwise, and merges two consecutive vertices in the rearranged order into the first vertex and the second vertex. It may be the vertex. In this way, by performing sorting in the same manner as in step S903 described later, it is possible to standardize the processing and prevent an increase in the amount of processing.
  • the approximate surface synthesizing unit 2030 may be configured so that one of the vertices (third vertex) projected onto the above projection plane candidates is set as a predetermined origin. With such a configuration, the number of triangles that need to be calculated in order to calculate the area of the polygon is reduced by one compared to the case where the predetermined origin is set at a position other than the vertex. It can prevent an increase in volume.
  • FIG. 17 Next, another example of the processing of step S902 will be described using FIGS. 17 to 20.
  • FIG. 17 is a diagrammatic representation of FIG. 17 to 20.
  • FIG. 17 is a flowchart showing an example of the process of step S902.
  • step S1701 the approximate surface synthesizing unit 2030 calculates the difference between the maximum and minimum values of the vertex coordinates in the x-axis, y-axis, and z-axis directions.
  • the approximate surface synthesizing unit 2030 calculates xmax-xmin (x-axis coordinate value), ymax-ymin (difference between the maximum and minimum coordinate values in the y-axis direction), and zmax-zmin (maximum coordinate value in the z-axis direction) shown in FIG. and the minimum value) are calculated, and the process advances to step S1702.
  • step S1702 the approximate surface synthesizing unit 2030 checks how many axial directions have the smallest difference among the "differences between the maximum and minimum values" calculated in step S1701.
  • the approximate surface synthesizing unit 2030 proceeds to step S1703.
  • Step S1703 is processing for the case where there is only one axial direction with the minimum difference value. decide.
  • the z-axis is degenerated and the x-y plane is determined as the projection plane.
  • the approximate surface synthesizing unit 2030 advances to step S1706 to end the process.
  • step S1704 the approximate surface synthesizing unit 2030 counts the number of vertices on each axial side.
  • the target node has a total of five vertices A to E
  • the only vertex that exists on the x-axis direction is point A shown in FIG. 20-2.
  • the vertices on the sides in the y-axis direction are 0 points as shown in FIG. 4 points.
  • this process may target all of the x, y, and z axes, or target only the axial direction having the minimum value of the "difference between the maximum value and the minimum value" obtained in step S1701. good too.
  • step S1705 After counting the number of vertices as described above, the approximate surface synthesis unit 2030 proceeds to step S1705.
  • step S1705 the approximate surface synthesizing unit 2030 determines the projection plane by degenerating the axis with the largest number of vertices in each axial direction calculated in step S1704.
  • the approximate surface synthesizing unit 2030 degenerates the z-axis and determines the xy plane as the projection plane.
  • the approximate surface synthesizing unit 2030 proceeds to step S1706 and ends the process.
  • the approximate surface synthesis unit 2030 classifies each side of a node according to which coordinate axis of the three-dimensional coordinates it is parallel to, counts the number of vertices on the side classified according to each coordinate axis, and counts the counted value ( number of vertices) may be used to determine the projection plane from among a plurality of projection plane candidates.
  • the approximate surface synthesizing unit 2030 may be configured to determine the plane defined by degenerating the axis having the largest number of vertices as the projection plane.
  • the approximate surface synthesizing unit 2030 calculates the difference value between the maximum value and the minimum value of the coordinate values of each vertex for each coordinate axis of the above three-dimensional coordinates, and calculates the difference value among the coordinate axes. If there are two or more axes with the minimum value, the plane defined by degenerating the axis with the largest number of vertices on the side classified into each coordinate axis is configured to be the projection plane described above. good too.
  • the approximate surface synthesizing unit 2030 calculates the coordinate value of each vertex for each coordinate axis of three-dimensional coordinates.
  • a plane defined by calculating a difference value between the maximum value and the minimum value and degenerating the axis having the smallest difference value among the coordinate axes may be used as the above projection plane.
  • the approximate surface synthesizing unit 2030 first evaluates the “difference between the maximum value and the minimum value” in steps S1701 and S1702, and then, if necessary, in steps S1704 and S1705, The number of vertices was evaluated. This order can also be reversed, for example, as shown in FIG.
  • the approximate surface synthesizing unit 2030 evaluates the number of vertices on each side in each axial direction in steps S1801 and S1802, and then, if necessary, in steps S1804 and S1805, "maximum value and the minimum value" may be evaluated.
  • step S1801 can be realized by the same processing as step S1704.
  • step S1802 if there is only one axis with the maximum number of vertices among the x-axis, y-axis, and z-axis directions, the approximate surface synthesis unit 2030 advances to step S1803, where the number of vertices becomes the maximum. Decrease the axis to determine the projection plane.
  • the approximate surface synthesizing unit 2030 proceeds to step S1804.
  • Step S1804 can be realized by the same processing as step S1701.
  • step S1804 all of the x-axis, y-axis, and z-axis may be processed in step S1804, or only the axis direction with the maximum number of vertices in step S1802 may be processed.
  • step S1805 the approximate surface synthesizing unit 2030 determines the projection plane by degenerating the axis with the smallest difference value among the axes processed in step S1804.
  • FIG. 24 is a flow chart showing an example of processing in step S902.
  • step S2401 the approximate surface synthesizing unit 2030 performs 2 ⁇ 2 orthogonal transformation on the coordinates of each vertex when projected onto each projection plane.
  • 1/ ⁇ 2 is a coefficient for normalizing the norm.
  • the normalization factor 1/ ⁇ 2 may be omitted. That is, the approximate surface synthesizing unit 2030 may calculate (Ha, Hb) by the following formula.
  • the approximate surface synthesizing unit 2030 calculates the coordinates (Ha, Hb) after the orthogonal transform only by addition and subtraction of the coordinate values Px and Py. can.
  • the approximate surface synthesizing unit 2030 first applies an orthogonal transformation to the coordinates of each vertex (1 to n) when projected onto the xy plane to generate n sets of coordinates (Ha1, Hb1), . , (Han, Hbn) are obtained, the maximum values Hamax, Hbmax and the minimum values Hamin, Hbmin of the coordinate values on each coordinate axis (here, the a-axis and the b-axis) after orthogonal transformation are detected.
  • the approximate surface synthesizing unit 2030 uses Had and Hbd to calculate a variable Axy representing the spread of the vertex coordinates when projected onto the xy plane.
  • the approximate surface synthesizing unit 2030 calculates Ayz corresponding to the yz plane and Axz corresponding to the xz plane, which are other projection plane candidates, and then proceeds to step S2402.
  • step S2402 the approximate surface synthesizing unit 2030 determines a projection plane based on Axy, Ayz, and Axz calculated in step S2401.
  • the approximate surface synthesizing unit 2030 can determine the projection plane corresponding to the largest value among Axy, Ayz, and Axz. Specifically, the approximate surface synthesizing unit 2030 can determine the projection plane to be the yz plane if, for example, Ayz>Axz>Axz.
  • the approximate surface synthesizing unit 2030 proceeds to step S2403 and ends the process.
  • the approximate surface synthesizing unit 2030 is configured to determine the projection plane using the coordinate values after orthogonal transformation obtained by applying the orthogonal transformation to the vertex coordinate values when projected onto each projection plane. may have been
  • the approximate surface synthesizing unit 2030 calculates the difference between the maximum and minimum coordinate values on each coordinate axis after the orthogonal transformation, and determines the projection plane based on the difference. may be configured.
  • the approximate surface synthesizing unit 2030 calculates the above-described difference values for all coordinate axes after orthogonal transformation for each projection plane candidate, and determines the projection plane by the sum or product thereof. may be configured to
  • the approximate surface synthesis unit 2030 may be configured to use the Hadamard transform as the orthogonal transform.
  • the approximate surface synthesizing unit 2030 may be configured to omit the normalization coefficients during orthogonal transformation.
  • the coordinate values after orthogonal transformation can be obtained only by addition and subtraction of the coordinate values before orthogonal transformation, and an increase in the amount of calculation can be prevented.
  • FIG. 21 is a diagram showing an example of functional blocks of the point cloud encoding device 100 according to this embodiment.
  • the point group encoding device 100 includes a coordinate transformation unit 1010, a geometric information quantization unit 1020, a tree analysis unit 1030, an approximate surface analysis unit 1040, a geometric information encoding unit 1050, Geometric information reconstruction unit 1060, color conversion unit 1070, attribute transfer unit 1080, RAHT unit 1090, LoD calculation unit 1100, lifting unit 1110, attribute information quantization unit 1120, attribute information encoding unit 1130 , and a frame buffer 1140 .
  • the coordinate transformation unit 1010 is configured to perform transformation processing from the three-dimensional coordinate system of the input point group to any different coordinate system. Coordinate transformation may transform the x, y, z coordinates of the input point cloud to arbitrary s, t, u coordinates, for example, by rotating the input point cloud. Also, as one variation of transformation, the coordinate system of the input point cloud may be used as it is.
  • the geometric information quantization unit 1020 is configured to quantize the position information of the input point group after coordinate transformation and remove points with overlapping coordinates. Note that when the quantization step size is 1, the position information of the input point group matches the position information after quantization. That is, when the quantization step size is 1, it is equivalent to not performing quantization.
  • the tree analysis unit 1030 is configured to receive the position information of the quantized point group as input and generate an occupancy code indicating at which node in the encoding target space the point exists based on the tree structure described later. It is
  • the tree analysis unit 1030 is configured to generate a tree structure in this process by recursively partitioning the encoding target space into rectangular parallelepipeds.
  • a tree structure can be generated by recursively executing the process of dividing the rectangular parallelepiped into multiple rectangular parallelepipeds until the rectangular parallelepipeds reach a predetermined size.
  • Each rectangular parallelepiped is called a node.
  • each rectangular parallelepiped generated by dividing a node is called a child node, and an occupancy code is expressed by 0 or 1 as to whether or not a point is included in the child node.
  • the tree analysis unit 1030 is configured to generate an occupancy code while recursively dividing a node until it reaches a predetermined size.
  • the tree analysis unit 1030 determines the tree structure, and the determined tree structure is transmitted to the point cloud decoding device 200 as control data.
  • the tree-structured control data may be configured so that it can be decoded according to the procedure described in FIG.
  • the approximate surface analysis unit 1040 is configured to use the tree information generated by the tree analysis unit 1030 to generate approximate surface information.
  • the approximate surface information is obtained by decoding the points instead of decoding individual point clouds. It is an approximation of the existence area of the group with a small plane.
  • the approximate surface analysis unit 1040 may be configured to generate approximate surface information by, for example, a technique called "Trisoup". Also, when decoding a sparse point group acquired by Lidar or the like, this process can be omitted.
  • the geometric information encoding unit 1050 encodes syntax such as the occupancy code generated by the tree analysis unit 1030 and the approximate surface information generated by the approximate surface analysis unit 1040 to generate a bitstream (geometric information bitstream).
  • the bitstream may include, for example, the syntax described with reference to FIGS. 4 and 5.
  • the encoding process is, for example, context adaptive binary arithmetic encoding process.
  • the syntax includes control data (flags and parameters) for controlling decoding processing of position information.
  • the geometric information reconstruction unit 1060 Based on the tree information generated by the tree analysis unit 1030 and the approximate surface information generated by the approximate surface analysis unit 1040, the geometric information reconstruction unit 1060 generates geometric information (code It is configured to reconstruct the coordinate system assumed by the transformation processing, that is, the position information after the coordinate transformation in the coordinate transformation unit 1010).
  • the frame buffer 1140 is configured to receive the geometric information reconstructed by the geometric information reconstruction unit 1060 and store it as a reference frame.
  • the stored reference frames are read from the frame buffer 1140 and used as reference frames when the tree analysis unit 1030 inter-predicts temporally different frames.
  • whether or not the reference frame at which time is to be used for each frame is determined, for example, based on the value of the cost function representing the coding efficiency, and the information of the reference frame to be used is used as control data for the point group decoding device. 200.
  • the color conversion unit 1070 is configured to perform color conversion when the input attribute information is color information. Color conversion does not necessarily need to be executed, and whether or not to execute color conversion processing is encoded as part of control data and transmitted to the point cloud decoding device 200 .
  • the attribute transfer unit 1080 performs distortion of attribute information based on the position information of the input point group, the position information of the point group after reconstruction by the geometric information reconstruction unit 1060, and the attribute information after color change by the color conversion unit 1070. is configured to correct the attribute value so that is minimized.
  • a specific correction method for example, the method described in Document 2 (Text of ISO/IEC 23090-9 DIS Geometry-based PCC, ISO/IEC JTC1/SC29/WG11 N19088) can be applied.
  • the RAHT unit 1090 receives as input the attribute information transferred by the attribute transfer unit 1080 and the geometric information generated by the geometric information reconstruction unit 1060, and uses a type of Haar transformation called RAHT (Region Adaptive Hierarchical Transform) to transform each configured to generate point residual information;
  • RAHT Region Adaptive Hierarchical Transform
  • the LoD calculation unit 1100 is configured to receive the geometric information generated by the geometric information reconstruction unit 1060 and generate LoD (Level of Detail).
  • LoD is a reference relationship (referred point and referenced point ) is information for defining
  • LoD classifies each point included in geometric information into a plurality of levels, and encodes or decodes the attributes of points belonging to lower levels using attribute information of points belonging to higher levels. This is information that defines the structure.
  • the lifting unit 1110 is configured to generate residual information through a lifting process using the LoD generated by the LoD calculation unit 1100 and the attribute information after the attribute transfer by the attribute transfer unit 1080.
  • the attribute information quantization section 1120 is configured to quantize the residual information output from the RAHT section 1090 or the lifting section 1110 .
  • the case where the quantization step size is 1 is equivalent to the case where no quantization is performed.
  • the attribute information encoding unit 1130 performs encoding processing using the quantized residual information output from the attribute information quantization unit 1120 as a syntax, and generates a bitstream related to attribute information (attribute information bitstream). is configured as
  • the encoding process is, for example, context adaptive binary arithmetic encoding process.
  • the syntax includes control data (flags and parameters) for controlling attribute information decoding processing.
  • the point cloud encoding device 100 is configured to input position information and attribute information of each point in the point cloud, perform encoding processing, and output a geometric information bitstream and an attribute information bitstream. ing.
  • the point cloud encoding device 100 and the point cloud decoding device 200 described above may be implemented as a program that causes a computer to execute each function (each process).
  • the present invention is applied to the point group encoding device 100 and the point group decoding device 200 as examples, but the present invention is not limited to such examples.
  • a point cloud encoding/decoding system having the functions of the point cloud encoding device 100 and the point cloud decoding device 200 can be similarly applied.
  • the United Nations-led Sustainable Development Goals (SDGs) Goal 9 "Develop resilient infrastructure, It will be possible to contribute to the promotion of sustainable industrialization and the expansion of innovation.
  • Point group processing system 100 Point group encoding device 1010. Coordinate transformation unit 1020... Geometric information quantization unit 1030... Tree analysis unit 1040... Approximate surface analysis unit 1050... Geometric information encoding unit 1060... Geometric information reconstruction unit 1070... Color conversion unit 1080... Attribute transfer unit 1090... RAHT unit 1100... LoD calculation unit 1110... Lifting unit 1120... Attribute information quantization unit 1130... Attribute information encoding unit 1140... Frame buffer 200... Point cloud decoding device 2010...
  • Geometry Information decoding unit 2020 Tree synthesis unit 2030 Approximate surface synthesis unit 2040 Geometric information reconstruction unit 2050 Inverse coordinate transformation unit 2060 Attribute information decoding unit 2070 Inverse quantization unit 2080 RAHT unit 2090 LoD calculation unit 2100 Inverse lifting unit 2110 --- Inverse color conversion unit 2120 --- Frame buffer

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)

Abstract

Dans un dispositif de décodage de nuage de points (200) selon la présente invention, une unité de synthèse d'arbre (2020) décode en couches des informations d'occupation dans des informations géométriques, utilise, tout en commutant entre une pluralité de contextes pendant le décodage des informations d'occupation, se réfère, en tant que trames de référence, à des trames décodées temporellement différentes d'une trame cible pendant la commutation entre les contextes, et effectue une commutation d'une région de référence à régler dans chacune des trames de référence, pour chaque couche, entre une région ayant une taille égale à la taille de noeud d'une couche cible et une région ayant une taille différente de la taille de nœud de la couche cible.
PCT/JP2023/000015 2022-01-07 2023-01-04 Dispositif de décodage de nuage de points, procédé de décodage de nuage de points, et programme WO2023132331A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022001469A JP2023101095A (ja) 2022-01-07 2022-01-07 点群復号装置、点群復号方法及びプログラム
JP2022-001469 2022-01-07

Publications (1)

Publication Number Publication Date
WO2023132331A1 true WO2023132331A1 (fr) 2023-07-13

Family

ID=87073700

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/000015 WO2023132331A1 (fr) 2022-01-07 2023-01-04 Dispositif de décodage de nuage de points, procédé de décodage de nuage de points, et programme

Country Status (2)

Country Link
JP (1) JP2023101095A (fr)
WO (1) WO2023132331A1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112565764A (zh) * 2020-12-03 2021-03-26 西安电子科技大学 一种点云几何信息帧间编码及解码方法
US20210192798A1 (en) * 2018-10-02 2021-06-24 Blackberry Limited Predictive coding of point clouds using multiple frames of references

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210192798A1 (en) * 2018-10-02 2021-06-24 Blackberry Limited Predictive coding of point clouds using multiple frames of references
CN112565764A (zh) * 2020-12-03 2021-03-26 西安电子科技大学 一种点云几何信息帧间编码及解码方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KHALED MAMMON, PHILIP A. CHOU, DAVID FLYNN, MAJ A KRIVOKUCA, OHJI NAKAGAMI, TOSHIYASU SUGIO: "G-PCC codec description", 125. MPEG MEETING; 20190114 - 20190118; MARRAKECH; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11), no. N18189, 22 February 2019 (2019-02-22), pages 1 - 39, XP030212734 *
KHALED MAMMOU, PHILIP A. CHOU, DAVID FLYNN, MAJA KRIVOKUćA, OHJI NAKAGAMI , TOSHIYASU SUGIO: "G-PCC codec description v2", ISO/IEC JTC1/SC29/WG11 N18189, no. N18189, 1 January 2019 (2019-01-01), pages 1 - 39, XP055686871 *
LI LI, LI ZHU, LIU SHAN, LI HOUQIANG: "Motion Estimation and Coding Structure for Inter-Prediction of LiDAR Point Cloud Geometry", IEEE TRANSACTIONS ON MULTIMEDIA, IEEE, USA, vol. 24, 1 January 2022 (2022-01-01), USA, pages 4504 - 4513, XP093076978, ISSN: 1520-9210, DOI: 10.1109/TMM.2021.3119872 *

Also Published As

Publication number Publication date
JP2023101095A (ja) 2023-07-20

Similar Documents

Publication Publication Date Title
CN113615181B (zh) 用于点云编解码的方法、装置
US11375208B2 (en) Trisoup node size per slice
US10904564B2 (en) Method and apparatus for video coding
US20230126256A1 (en) Methods and devices using direct coding in point cloud compression
EP3991437B1 (fr) Détermination du contexte pour le mode planaire pour le codage à huit branches d'un nuage à points
EP3991438B1 (fr) Mode planaire pour un codage à huit branches d'un nuage à points
US11469771B2 (en) Method and apparatus for point cloud compression
WO2020123469A1 (fr) Encodage d'attribut d'arbre hiérarchique par points médians dans un codage en nuage de points
US20220376702A1 (en) Methods and devices for tree switching in point cloud compression
WO2021252593A1 (fr) Codage résiduel d'attributs en g-pcc
WO2021140930A1 (fr) Dispositif et procédé de traitement d'informations
WO2023132331A1 (fr) Dispositif de décodage de nuage de points, procédé de décodage de nuage de points, et programme
WO2023172703A1 (fr) Codage en nuage de points géométriques
WO2023272730A1 (fr) Procédé de codage et de décodage d'un nuage de points
WO2023132330A1 (fr) Dispositif de décodage de nuage de points, procédé de décodage de nuage de points, et programme
WO2023132329A1 (fr) Dispositif de décodage de nuage de points, procédé de décodage de nuage de points et programme
WO2021256486A1 (fr) Dispositif de décodage de groupe de points, procédé de décodage de groupe de points et programme
WO2023028177A1 (fr) Codage d'attribut en codage de nuage de points géométriques
WO2023278829A1 (fr) Codage d'attribut dans un codage en nuage à point géométrique
JP2024058011A (ja) 点群復号装置、点群復号方法及びプログラム
WO2023277128A1 (fr) Dispositif de décodage de nuage de points, procédé de décodage de nuage de points et programme
JP2024058012A (ja) 点群復号装置、点群復号方法及びプログラム
JP2023053827A (ja) 点群復号装置、点群復号方法及びプログラム
WO2024009562A1 (fr) Dispositif de décodage de nuage de points, procédé de décodage de nuage de points et programme
WO2024009676A1 (fr) Dispositif de décodage de nuage de points, procédé de décodage de nuage de points et programme

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23737282

Country of ref document: EP

Kind code of ref document: A1