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

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

Info

Publication number
WO2023277128A1
WO2023277128A1 PCT/JP2022/026209 JP2022026209W WO2023277128A1 WO 2023277128 A1 WO2023277128 A1 WO 2023277128A1 JP 2022026209 W JP2022026209 W JP 2022026209W WO 2023277128 A1 WO2023277128 A1 WO 2023277128A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
point cloud
trisoup
point
upsampling
Prior art date
Application number
PCT/JP2022/026209
Other languages
English (en)
French (fr)
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 WO2023277128A1 publication Critical patent/WO2023277128A1/ja

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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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 1 discloses an inter-prediction technique for geometric information.
  • Non-Patent Document 1 based on the distribution of points in the motion-compensated reference point group, the presence or absence of points in each subspace (node) of the point group to be encoded is estimated. 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-mentioned problems, and a point cloud decoding device and a point cloud decoding method that can increase the encoding efficiency by inter prediction of position information by upsampling the reference point cloud. and to provide programs.
  • a first feature of the present invention is a point cloud decoding device, a geometric information reconstruction unit configured to reconstruct position information of the point cloud, and a geometric information reconstructed by the geometric information reconstruction unit an upsampling unit configured to upsample a point cloud; and a tree synthesis unit configured to perform inter prediction with reference to the upsampled point cloud, the upsampling unit is configured to calculate an offset vector from the coordinates of each point in the reconstructed point group, and perform upsampling using the offset vector.
  • a second feature of the present invention is a point cloud decoding device comprising a geometric information decoding unit configured to decode a first flag that controls whether or not Trisoup at multiple levels is permitted. is the gist.
  • a third feature of the present invention is a point group decoding method, which includes a geometric information reconstruction unit configured to reconstruct position information of the point cloud, and A step A of upsampling a point cloud, and a step B of performing inter prediction with reference to the upsampled point cloud, wherein in the step A, from the coordinates of each point in the reconstructed point cloud
  • the gist is to calculate an offset vector and perform upsampling using the offset vector.
  • a fourth 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 is configured to reconstruct position information of a point cloud for geometric information reconstruction.
  • an upsampling unit configured to upsample the point cloud reconstructed by the geometric information reconstruction unit; and an inter prediction with reference to the upsampled point cloud.
  • a tree synthesizing unit configured to calculate an offset vector from the coordinates of each point in the reconstructed point cloud, and perform upsampling using the offset vector.
  • 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 of position information based on inter prediction by upsampling the reference point cloud.
  • 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 flowchart showing an example of upsampling in the upsampling unit 2120 of the point cloud decoding device 200 according to one embodiment.
  • FIG. 6A is a diagram for explaining the operation of the upsampling unit 2120 of the point cloud decoding device 200 according to one embodiment.
  • FIG. 6B is a diagram for explaining the operation of the upsampling unit 2120 of the point cloud decoding device 200 according to one embodiment.
  • FIG. 7 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. 8 is a flowchart showing an example of decoding processing of Trisoup information by the tree synthesizing unit 2020 of the point cloud decoding device 200 according to one embodiment.
  • FIG. 9 is a diagram showing an example of functional blocks of the point cloud encoding device 100 according to one embodiment.
  • FIG. 10 is a diagram showing an example of functional blocks of the tree synthesizing unit 2020 of the point cloud decoding device 200 according to one embodiment.
  • 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.
  • 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 , upsampling section 2120 and frame buffer 2130 .
  • 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 in which 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. Whether or not to use "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 upsampling unit 2120 is configured to receive the geometric information reconstructed by the geometric information reconstructing unit 2040 and perform upsampling processing as described later.
  • the frame buffer 2130 is configured to receive the point cloud upsampled by the upsampling unit 2120 and store it as a reference frame.
  • the stored reference frames are read from the frame buffer 2130 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 geometric information output from the geometric information reconstruction unit 2040 is stored in the frame buffer 2130 as a reference frame, and then the reference frame stored in the frame buffer 2130 is used when inter prediction is performed by the tree synthesis unit 2020. may be up-sampled by the up-sampling unit 2120 and then input to the tree synthesis unit 2020 .
  • the upsampling unit 2120 may be configured to be included inside the tree synthesis unit 2020, as shown in FIG.
  • the configuration example shown in FIG. 10 will be described below.
  • the tree synthesizing unit 2020 acquires from the frame buffer 2130 an already-decoded point cloud that is different in time from the point cloud to be decoded, and inputs it to the motion compensation unit 2021 .
  • the motion compensation unit 2021 is configured to perform motion compensation using motion information (motion vectors, etc.) decoded from control data. Since a known method can be applied to a specific motion compensation method, details thereof are omitted.
  • the motion compensation unit 2021 may be configured to perform class classification processing on each point in the decoded point group and apply different motion compensation processing to each class.
  • the motion compensation unit 2021 may be configured to assign a class of either "ground” or "object” to each point, and apply motion compensation only to points considered to be "object”.
  • the upsampling unit 2021 is configured to input the motion-compensated point group and perform upsampling processing as described later.
  • the upsampling unit 2021 may be configured to perform upsampling processing only for a specific class.
  • the upsampling unit 2021 may be configured to perform upsampling processing only on the "ground” points, or to perform upsampling processing only on the "object” points.
  • the upsampling unit 2021 when the above-described class classification is performed based on the value of the z-axis coordinate (height component) of each point, the upsampling unit 2021 performs motion compensation based on the z-coordinate of each point in the point group. Alternatively, it may be configured to control whether or not to execute the upsampling process.
  • the sampler 2021 may be configured to perform upsampling.
  • the upsampler 2021 may be configured to perform upsampling.
  • the second threshold is a value greater than the first threshold.
  • the probability estimation unit 2022 is configured to estimate the probability that the value of each bit of the occurrence code is 0 or that the value of each bit of the occurrence code is 1, using the point group after upsampling as input. ing.
  • the occupation information decoding unit 2023 is configured to decode the occupation code by entropy decoding based on the probability estimated by the probability estimation unit 2022 .
  • the tree configuration unit 2024 is configured to configure a tree based on the above-mentioned Occupancy Code value.
  • 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 as input 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 Region Adaptive Hierarchical Transform
  • a kind of inverse Haar transform is used to decode the attribute information of each point.
  • 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.
  • Non-Patent Document 1 As a specific method for determining LoD, for example, the method described in Non-Patent Document 1 may be used.
  • 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 Non-Patent 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 just 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 geometric information decoding unit 2020 may be configured to additionally decode the following syntax when performing inter prediction, that is, when the value of the interpolation_enabled_flag is "1".
  • the GPS 2011 may include a flag (reference_upsampling_enabled_flag) that controls whether to apply upsampling by the upsampling unit 2120 when performing inter prediction.
  • a flag reference_upsampling_enabled_flag
  • upsampling is not applied when the value of reference_upsampling_enabled_flag is "0", and that upsampling is applied when the value of reference_upsampling_enabled_flag is "1".
  • the geometric information decoding unit 2020 may be configured to additionally decode the following syntax when upsampling is applied, that is, when the value of reference_upsampling_enabled_flag is "1".
  • the GPS 2011 may include syntax (upsampling_number_div2) that controls the number of upsampling points. How to specifically use the value of the syntax will be described later.
  • the GPS 2011 may include a syntax (upsampling_interval) that controls the interval between upsampling points. How to specifically use the value of the syntax will be described later.
  • upsampling_interval a syntax that controls the interval between upsampling points. How to specifically use the value of the syntax will be described later.
  • 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".
  • 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".
  • the GPS 2011 may include syntax (log2_trisoup_max_node_size_minus3) that defines the maximum 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 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 3 after converting to base 2 logarithm.
  • the GPS 2011 may include syntax (log2_trisoup_min_node_size_minus3) that defines 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 after converting to base 2 logarithm and then subtracting 3.
  • the value of the syntax may be constrained to always be 0 or more and log2_trisoup_max_node_size_minus3 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".
  • the GPS 2011 may include syntax (log2_trisoup_node_size_minus3) to specify the Trisoup node size when not allowing Trisoup at multiple levels.
  • the syntax may be expressed as a logarithmic value 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 3.
  • Up-sampling unit 2120 Upsampling in the upsampling section 2120 will be described below with reference to FIGS. 5 and 6. FIG.
  • FIG. 5 is a flowchart showing an example of upsampling in the upsampling section 2120.
  • step S501 the upsampling unit 2120 performs upsampling on all points included in the point group reconstructed from the geometric information output from the geometric information reconstructing unit, that is, the positional information. Determine whether it is finished.
  • the upsampling unit 2120 ends the process in step S504. On the other hand, if the processing of all points has not been completed, the upsampling unit 2120 proceeds to step S502.
  • step S502 the upsampling unit 2120 calculates an offset vector.
  • the offset vector vu may be calculated as normalized so that the L2 norm of vu is 1, for example. That is, the upsampling section 2120 may calculate the offset vector vu based on the following equation.
  • vu vp/(X2+Y2+Z2)1/2
  • the upsampling section 2120 may use approximate calculations to perform integer operations for the square root calculation and division described above. Also, in the approximate calculation described above, if the absolute value of vp is too small, the error due to the integer calculation becomes too large, so i ⁇ vu, which will be described later, may be obtained instead of vu.
  • the offset vector vu is calculated as a vector that points in the same direction as the vector vp that points to the point P starting from the origin O and that has a predetermined size (for example, L2 norm) for the point P to be up-sampled. For example, it may be calculated by a method other than the above.
  • the offset vector vu is calculated so as to be normal to the spherical surface, it can be calculated by a method other than the above. I don't mind.
  • the upsampling section 2120 may derive the offset vector vu by a method that includes some approximation errors with respect to the direction and magnitude described above.
  • the upsampling unit 2120 moves to step S503.
  • step S503 the upsampling unit 2120 performs upsampling based on the offset vector vu calculated in step S502.
  • FIG. 6A shows an example of how the point P looks after upsampling.
  • i shown in FIG. 6B is a parameter that controls the upsampling interval, and a value decoded as the syntax (upsampling_interval) that controls the interval of the upsampling points included in GPS2011 is used.
  • N shown in FIG. 6B is a parameter that controls the number of points generated by upsampling for one input point, and the value decoded as the syntax (upsampling_number_div2) that controls the number of upsampling points included in GPS2011 is use.
  • Upsampling can be realized, for example, by adding a point having a coordinate value vs as follows, where vp is the coordinate of point P.
  • 2N points are added to one input point by upsampling.
  • the upsampling unit 2120 After performing upsampling as described above, the upsampling unit 2120 returns to step S501 and performs the following processing.
  • FIG. 7 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 S701 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 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 S709 the tree synthesis unit 2020 proceeds to step S702.
  • 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_minus3) or the syntax that defines the Trisoup node size (log2_trisoup_node_size_minus3). In such a case, for example, it may be defined as follows.
  • Trisoup node size can be defined by, for example, (log2_trisoup_min_node_size_minus3+3).
  • the Trisoup node size can be defined as (log2_trisoup_node_size_minus3+3).
  • step S709 if the processing for all the processing depth numbers has been completed, the tree synthesizing unit 2020 proceeds to step S709; otherwise, the tree synthesizing unit 2020 proceeds to step S702.
  • the tree synthesizing unit 2020 may determine that Trisoup is applied to all nodes having a node size (N-number of processing depths) when proceeding to step S709.
  • step S702 the tree synthesizing unit 2020 determines whether it is necessary to decode Trisoup_applied_flag, which will be described later, at the relevant 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+3).
  • step S703 the tree synthesizing unit 2020 determines whether or not all nodes included in the depth have been processed.
  • the tree synthesizing unit 2020 moves to step S701 and performs the processing of the next depth.
  • step S704 the tree synthesizing unit 2020 confirms whether decoding of the Trisoup_applied_flag determined in step S702 is necessary.
  • step S705 If it is determined that decoding of Trisoup_applied_flag is necessary, the tree synthesizing unit 2020 proceeds to step S705, and if it is determined that decoding of Trisoup_applied_flag is not required, the tree synthesizing unit 2020 proceeds to step S708. .
  • step S705 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 S706.
  • step S706 the tree synthesizing unit 2020 checks the value of Trisoup_applied_flag decoded in step S705.
  • step S707 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 S703 to process the next node.
  • step S708 the tree synthesizing unit 2020 decodes the information called the 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 Non-Patent Document 1 can be applied.
  • a point cloud upsampled by the upsampling unit 2120 may be used as a reference point cloud for inter prediction.
  • the tree synthesizing unit 2020 advances to step S703 to process the next node.
  • step S709 the tree synthesizing unit 2020 decodes the Trisoup information.
  • the tree synthesizing unit 2020 executes the process of step S709 only when Trisoup is used, that is, when the value of trisoup_enabled_flag is "1". That is, if Trisoup is not used, tree synthesizing section 2020 advances to step S710 and terminates the process.
  • FIG. 8 is a flowchart showing an example of decoding processing for Trisoup information.
  • step S801 the tree synthesizing unit 2020 decodes syntax that controls sampling intervals of decoding points.
  • step S802 the tree synthesizing unit 2020 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_minus3 ⁇ log2_trisoup_min_node_size_minus3+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 tree synthesizing unit 2020 proceeds to step S807 and ends the processing. If the processing of all Trisoup hierarchies has not been completed, the tree synthesizing unit 2020 moves to step S803.
  • step S803 the tree synthesizing unit 2020 decodes the number of unique segments in the Trisoup hierarchy.
  • the number of unique segments is the number of sides forming a Trisoup node belonging to the Trisoup hierarchy.
  • step S803 instead of decoding the number of unique segments, the tree synthesizing unit 2020 may decode a flag indicating whether (one or more) unique segments exist in the Trisoup hierarchy as described above. .
  • Trisoup at multiple levels is not permitted, that is, when the value of trisoup_multilevel_enabled_flag is "0", it is obvious that a unique segment exists in the Trisoup hierarchy. may omit the decoding of the flag indicating whether there is (one or more) unique segments in .
  • the tree synthesizing unit 2020 moves to step S804.
  • step S804 the tree synthesizing unit 2020 confirms the number of unique segments belonging to the Trisoup hierarchy.
  • the tree synthesizing unit 2020 proceeds to step S802 to proceed to the processing of the next Trisoup hierarchy.
  • step S803 when the flag indicating whether (one or more) unique segments exist in the Trisoup hierarchy is decoded in step S803, the tree synthesizing unit 2020 determines that the Trisoup hierarchy contains unique segments. After decoding the number of unique segments in the layer, the process proceeds to step S805, and if there is no unique segment in the Trisoup layer, the process proceeds to step S802.
  • step S805 the tree synthesizing unit 2020 decodes whether each unique segment includes a vertex used for Trisoup processing.
  • the number of vertices that can exist for each unique segment may be limited to only one point.
  • the tree synthesizing unit 2020 moves to step S806.
  • step S806 the tree synthesizing unit 2020 decodes position information indicating where the vertex exists on each unique segment for each unique segment determined to have a vertex in step S805.
  • the position information may be encoded with an L-bit equal-length code.
  • the tree synthesizing unit 2020 After decoding the vertex positions for all unique segments having vertices in the Trisoup hierarchy, the tree synthesizing unit 2020 proceeds to step S802 to proceed to the processing of the next Trisoup hierarchy.
  • FIG. 9 is a diagram showing an example of functional blocks of the point group 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 , an up-sampling unit 1140 and a frame buffer 1150 .
  • 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.
  • tree-structured control data may be configured so that it can be decoded according to the procedure described in FIGS.
  • 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 contain, for example, the syntax described in FIG.
  • 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 upsampling unit 1140 is configured to receive the geometric information reconstructed by the geometric information reconstructing unit 1060 and perform the upsampling described with reference to FIGS. 5 and 6, for example.
  • the frame buffer 1150 is configured to receive the point cloud upsampled by the upsampling unit 1140 and store it as a reference frame.
  • the stored reference frames are read from the frame buffer 1150 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 geometric information output from the geometric information reconstruction unit 1060 is stored in the frame buffer 1150 as a reference frame, and then the reference frame stored in the frame buffer 1150 is used when inter prediction is performed by the tree analysis unit 1030. may be up-sampled by up-sampling section 1140 and then input to tree analysis section 1030 .
  • the upsampling unit 1140 may be configured to be included inside the tree analysis unit 1030 .
  • 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 Non-Patent Document 2 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.
  • Non-Patent Document 2 As a specific method for determining LoD, for example, the method described in Non-Patent Document 2 may be used.
  • 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.
  • Non-Patent Document 2 As a specific lifting process, for example, the method described in Non-Patent Document 2 may be used.
  • 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... Up-sampling unit 1150... Frame buffer 200...
  • Point group Decoding device 2010 Geometric 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 calculator 2100 Inverse lifting unit 2110
  • Inverse color conversion unit 2120 Upsampling unit 2130 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)
  • Image Processing (AREA)

Abstract

本発明に係る点群復号装置200は、点群の位置情報を再構成する幾何情報再構成部2040と、幾何情報再構成部2040で再構成された点群をアップサンプリングするアップサンプル部2120と、アップサンプリングされた点群を参照してインター予測を行うツリー合成部2020とを備える。アップサンプル部2120は、再構成された点群における各点の座標からオフセットベクトルを算出し、オフセットベクトルを用いてアップサンプリングを行う。

Description

点群復号装置、点群復号方法及びプログラム
 本発明は、点群復号装置、点群復号方法及びプログラムに関する。
 非特許文献1には、幾何情報のインター予測技術が開示されている。
[PCC]An exploratory model for inter geometry-based PCC、ISO/IEC JTC1/SC29/WG11 m44754 Text of ISO/IEC 23090-9 DIS Geometry-based PCC、ISO/IEC JTC1/SC29/WG11 N19088
 しかしながら、非特許文献1では、動き補償した参照点群の点の分布を基に、符号化対象点群の部分空間(ノード)毎の点の存在有無を推定する。この時、特に、参照点群及び符号化対象点群の両方が疎な場合、動き補償の結果に少しでもずれがあると、十分に時間方向の相関を活用できないという問題点があった。
 そこで、本発明は、上述の課題に鑑みてなされたものであり、参照点群をアップサンプリングすることで位置情報のインター予測による符号化効率を高めることができる点群復号装置、点群復号方法及びプログラムを提供することを目的とする。
 本発明の第1の特徴は、点群復号装置であって、点群の位置情報を再構成するように構成されている幾何情報再構成部と、前記幾何情報再構成部で再構成された点群をアップサンプリングするように構成されているアップサンプル部と、前記アップサンプルされた点群を参照してインター予測を行うように構成されているツリー合成部と、を備え、前記アップサンプル部は、前記再構成された点群における各点の座標からオフセットベクトルを算出し、前記オフセットベクトルを用いてアップサンプリングを行うように構成されていることを要旨とする。
 本発明の第2の特徴は、点群復号装置であって、複数レベルでのTrisoupを許可するか否かを制御する第1フラグを復号するように構成されている幾何情報復号部を備えることを要旨とする。
 本発明の第3の特徴は、点群復号方法であって、点群の位置情報を再構成するように構成されている幾何情報再構成部と、前記幾何情報再構成部で再構成された点群をアップサンプリングする工程Aと、前記アップサンプリングされた点群を参照してインター予測を行う工程Bと、を備え、前記工程Aにおいて、前記再構成された点群における各点の座標からオフセットベクトルを算出し、前記オフセットベクトルを用いてアップサンプリングを行うことを要旨とする。
 本発明の第4の特徴は、コンピュータを、点群復号装置として機能させるプログラムであって、前記点群復号装置は、点群の位置情報を再構成するように構成されている幾何情報再構成部と、前記幾何情報再構成部で再構成された点群をアップサンプリングするように構成されているアップサンプル部と、前記アップサンプリングされた点群を参照してインター予測を行うように構成されているツリー合成部と、を備え、前記アップサンプル部は、前記再構成された点群における各点の座標からオフセットベクトルを算出し、前記オフセットベクトルを用いてアップサンプリングを行うように構成されていることを要旨とする。
 本発明によれば、参照点群をアップサンプリングすることで位置情報のインター予測による符号化効率を高めることができる点群復号装置、点群復号方法及びプログラムを提供することができる。
図1は、一実施形態に係る点群処理システム10の構成の一例を示す図である。 図2は、一実施形態に係る点群復号装置200の機能ブロックの一例を示す図である。 図3は、一実施形態に係る点群復号装置200の幾何情報復号部2010で受信する符号化データ(ビットストリーム)の構成の一例を示す図である。 図4は、GPS2011のシンタックス構成の一例を示す図である。 図5は、一実施形態に係る点群復号装置200のアップサンプル部2120におけるアップサンプリングの一例を示すフローチャートである。 図6Aは、一実施形態に係る点群復号装置200のアップサンプル部2120の動作を説明するための図である。 図6Bは、一実施形態に係る点群復号装置200のアップサンプル部2120の動作を説明するための図である。 図7は、一実施形態に係る点群復号装置200のツリー合成部2020における処理の一例を示すフローチャートである。 図8は、一実施形態に係る点群復号装置200のツリー合成部2020によるTrisoup情報の復号処理の一例を示すフローチャートである。 図9は、一実施形態に係る点群符号化装置100の機能ブロックの一例を示す図である。 図10は、一実施形態に係る点群復号装置200のツリー合成部2020の機能ブロックの一例を示す図である。
 以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態における構成要素は、適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
(第1実施形態)
 以下、図1~図10を参照して、本発明の第1実施形態に係る点群処理システム10について説明する。図1は、本実施形態に係る実施形態に係る点群処理システム10を示す図である。
 図1に示すように、点群処理システム10は、点群符号化装置100及び点群復号装置200を有する。
 点群符号化装置100は、入力点群信号を符号化することによって符号化データ(ビットストリーム)を生成するように構成されている。点群復号装置200は、ビットストリームを復号することによって出力点群信号を生成するように構成されている。
 なお、入力点群信号及び出力点群信号は、点群内の各点の位置情報と属性情報とから構成される。属性情報は、例えば、各点の色情報や反射率である。
 ここで、かかるビットストリームは、点群符号化装置100から点群復号装置200に対して伝送路を介して送信されてもよい。また、ビットストリームは、記憶媒体に格納された上で、点群符号化装置100から点群復号装置200に提供されてもよい。
(点群復号装置200)
 以下、図2及び図10を参照して、本実施形態に係る点群復号装置200について説明する。図2は、本実施形態に係る点群復号装置200の機能ブロックの一例について示す図である。
 図2に示すように、点群復号装置200は、幾何情報復号部2010と、ツリー合成部2020と、近似表面合成部2030と、幾何情報再構成部2040と、逆座標変換部2050と、属性情報復号部2060と、逆量子化部2070と、RAHT部2080と、LoD算出部2090と、逆リフティング部2100と、逆色変換部2110と、アップサンプリング部2120と、フレームバッファ2130とを有する。
 幾何情報復号部2010は、点群符号化装置100から出力されるビットストリームのうち、幾何情報に関するビットストリーム(幾何情報ビットストリーム)を入力とし、シンタックスを復号するように構成されている。
 復号処理は、例えば、コンテキスト適応二値算術復号処理である。ここで、例えば、シンタックスは、位置情報の復号処理を制御するための制御データ(フラグやパラメータ)を含む。
 ツリー合成部2020は、幾何情報復号部2010によって復号された制御データ及び後述するツリー内のどのノードに点群が存在するかを示すoccupancy codeを入力として、復号対象空間内のどの領域に点が存在するかというツリー情報を生成するように構成されている。
 なお、occupancy codeの復号処理をツリー合成部2020内部で行うよう構成されていてもよい。
 本処理は、復号対象空間を直方体で区切り、occupancy codeを参照して各直方体内に点が存在するかを判断し、点が存在する直方体を複数の直方体に分割し、occupancy codeを参照するという処理を再帰的に繰り返すことで、ツリー情報を生成することができる。
 ここで、かかるoccupancy codeの復号に際して、後述するインター予測を用いてもよい。
 本実施形態では、上述の直方体を常に立方体として8分木分割を再帰的に行う「Octree」と呼ばれる手法、及び、8分木分割に加え、4分木分割及び2分木分割を行う「QtBt」と呼ばれる手法を使用することができる。「QtBt」を使用するか否かは、制御データとして点群符号化装置100側から伝送される。
 或いは、制御データによってPredicitive codingを使用するように指定された場合、ツリー合成部2020は、点群符号化装置100において決定した任意のツリー構成に基づいて各点の座標を復号するように構成されている。
 近似表面合成部2030は、ツリー合成部2020によって生成されたツリー情報を用いて近似表面情報を生成し、かかる近似表面情報に基づいて点群を復号するように構成されている。
 近似表面情報は、例えば、物体の3次元点群データを復号する際等において、点群が物体表面に密に分布しているような場合に、個々の点群を復号するのではなく、点群の存在領域を小さな平面で近似して表現したものである。
 具体的には、近似表面合成部2030は、例えば、「Trisoup」と呼ばれる手法で、近似表面情報を生成し、点群を復号することができる。「Trisoup」の具体的な処理例については後述する。また、Lidar等で取得した疎な点群を復号する場合は、本処理を省略することができる。
 幾何情報再構成部2040は、ツリー合成部2020によって生成されたツリー情報及び近似表面合成部2030によって生成された近似表面情報を元に、復号対象の点群データの各点の幾何情報(復号処理が仮定している座標系における位置情報)を再構成するように構成されている。
 逆座標変換部2050は、幾何情報再構成部2040によって再構成された幾何情報を入力として、復号処理が仮定している座標系から、出力点群信号の座標系に変換を行い、位置情報を出力するように構成されている。
 アップサンプル部2120は、幾何情報再構成部2040によって再構成された幾何情報を入力として、後述する通りアップサンプル処理を行うように構成されている。
 フレームバッファ2130は、アップサンプル部2120でアップサンプルされた点群を入力とし、参照フレームとして保存するように構成されている。保存した参照フレームは、ツリー合成部2020において時間的に異なるフレームのインター予測を行う場合に、フレームバッファ2130から読み出されて参照フレームとして使用される。
 ここで、各フレームに対してどの時刻の参照フレームを用いるかどうかは、例えば、点群符号化装置100からビットストリームとして伝送されてくる制御データに基づいて決定されてもよい。
 なお、ここでは、アップサンプル部2120でアップサンプルした後にフレームバッファ2130に保存する場合の例を説明したが、この順番は、逆でもよい。
 すなわち、幾何情報再構成部2040から出力される幾何情報を参照フレームとしてフレームバッファ2130へ保存し、その後、ツリー合成部2020にてインター予測を行う際に、フレームバッファ2130に保存されていた参照フレームをアップサンプル部2120でアップサンプルしてからツリー合成部2020に入力してもよい。
 さらに別の例として、図10に示すように、アップサンプル部2120は、ツリー合成部2020の内部に含まれるように構成されていてもよい。以下、図10に示す構成例について説明する。
 ツリー合成部2020は、フレームバッファ2130から、復号対象の点群とは時刻の異なる既に復号済みの点群を取得し、動き補償部2021へ入力する。
 動き補償部2021は、制御データから復号した動き情報(動きベクトル等)を用いて動き補償を行うように構成されている。動き補償の具体的な方法は、公知の手法を適用できるため、詳細については省略する。
 ここで、動き補償部2021は、復号済みの点群内の各点にクラス分類処理を行い、クラスごとに異なる動き補償処理を適用するように構成されていてもよい。
 例えば、動き補償部2021は、点毎に「地面」及び「物体」のどちらかのクラスを割り当て、「物体」と見なされた点のみに動き補償を適用するように構成されていてもよい。
 アップサンプル部2021は、前記動き補償済みの点群を入力して、後述の様にアップサンプル処理を行うように構成されている。
 上述のように、クラス分類に基づいた動き補償処理が行われている場合、アップサンプル部2021は、アップサンプル処理についても特定のクラスのみアップサンプル処理を行うように構成されていてもよい。
 例えば、アップサンプル部2021は、「地面」の点のみに対して、アップサンプリング処理を行う、或いは、「物体」の点のみに対してアップサンプル処理を行うように構成されていてもよい。
 上述のクラス分類が、例えば、各点のz軸座標(高さ成分)の値を基に行われている場合、アップサンプル部2021は、動き補償後の点群の各点のz座標を基に、アップサンプル処理を実行するか否かを制御するように構成されていてもよい。
 具体的には、z軸座標が、第1閾値以上であり(又は、第1閾値よりも大きく)、且つ、第2閾値以下である(又は、第2閾値よりも小さい)場合にのみ、アップサンプル部2021は、アップサンプル処理を行うよう構成されていてもよい。
 上述とは逆に、z軸座標が、第1閾値以下である(又は、第1閾値よりも小さい)、又は、第2閾値以上である(又は、第2閾値よりも大きい)場合にのみ、アップサンプル部2021は、アップサンプルを行うよう構成されていてもよい。ここで、第2閾値は、第1閾値より大きな値であるとする。
 確率推定部2022は、アップサンプル後の点群を入力として、occpancy Codeの各ビットの値が0である確率、又は、occpancy Codeの各ビットの値が1である確率を推定するように構成されている。
 占有情報復号部2023は、確率推定部2022で推定した確率に基づいて、エントロピー復号によってoccpancy Codeを復号するように構成されている。
 ツリー構成部2024は、上述のoccpancy Codeの値に基づいて、ツリーを構成するように構成されている。
 属性情報復号部2060は、点群符号化装置100から出力されるビットストリームのうち、属性情報に関するビットストリーム(属性情報ビットストリーム)を入力とし、シンタックスを復号するように構成されている。
 復号処理は、例えば、コンテキスト適応二値算術復号処理である。ここで、例えば、シンタックスは、属性情報の復号処理を制御するための制御データ(フラグ及びパラメータ)を含む。
 また、属性情報復号部2060は、復号したシンタックスから、量子化済み残差情報を復号するように構成されている。
 逆量子化部2070は、属性情報復号部2060によって復号された量子化済み残差情報と、属性情報復号部2060によって復号された制御データの一つである量子化パラメータとを元に、逆量子化処理を行い、逆量子化済み残差情報を生成するように構成されている。
 逆量子化済み残差情報は、復号対象の点群の特徴に応じて、RAHT部2080及びLoD算出部2090のいずれかに出力される。いずれに出力されるかは、属性情報復号部2060によって復号される制御データによって指定される。
 RAHT部2080は、逆量子化部2070によって生成された逆量子化済み残差情報及び幾何情報再構成部2040によって生成された幾何情報を入力とし、RAHT(Region Adaptive Hierarchical Transform)と呼ばれるHaar変換(復号処理においては、逆Haar変換)の一種を用いて、各点の属性情報を復号するように構成されている。RAHTの具体的な処理としては、例えば、非特許文献1に記載の方法を用いることができる。
 LoD算出部2090は、幾何情報再構成部2040によって生成された幾何情報を入力とし、LoD(Level of Detail)を生成するように構成されている。
 LoDは、ある点の属性情報から、他のある点の属性情報を予測し、予測残差を符号化或いは復号するといった予測符号化を実現するための参照関係(参照する点及び参照される点)を定義するための情報である。
 言い換えると、LoDは、幾何情報に含まれる各点を複数のレベルに分類し、下位のレベルに属する点については上位のレベルに属する点の属性情報を用いて属性を符号化或いは復号するといった階層構造を定義した情報である。
 LoDの具体的な決定方法としては、例えば、非特許文献1に記載の方法を用いてもよい。
 逆リフティング部2100は、LoD算出部2090によって生成されたLoD及び逆量子化部2070によって生成された逆量子化済み残差情報を用いて、LoDで規定した階層構造に基づいて各点の属性情報を復号するように構成されている。逆リフティングの具体的な処理としては、例えば、非特許文献1に記載の方法を用いることができる。
 逆色変換部2110は、復号対象の属性情報が色情報であり且つ点群符号化装置100側で色変換が行われていた場合に、RAHT部2080又は逆リフティング部2100から出力される属性情報に逆色変換処理を行うように構成されている。かかる逆色変換処理の実行の有無については、属性情報復号部2060によって復号された制御データによって決定される。
 点群復号装置200は、以上の処理により、点群内の各点の属性情報を復号して出力するように構成されている。
(幾何情報復号部2010)
 以下、図3~図4を用いて幾何情報復号部2010で復号される制御データについて説明する。
 図3は、幾何情報復号部2010で受信する符号化データ(ビットストリーム)の構成の一例である。
 第1に、ビットストリームは、GPS2011を含んでいてもよい。GPS2011は、ジオメトリパラメータセットとも呼ばれ、幾何情報の復号に関する制御データの集合である。具体例については後述する。各GPS2011は、複数のGPS2011が存在する場合に個々を識別するためのGPS id情報を少なくとも含む。
 第2に、ビットストリームは、GSH2012A/2012Bを含んでいてもよい。GSH2012A/2012Bは、ジオメトリスライスヘッダ或いはジオメトリデータユニットヘッダとも呼ばれ、後述するスライスに対応する制御データの集合である。以降では、スライスという呼称を用いて説明するが、スライスをデータユニットと読み替えることもできる。具体例については後述する。GSH2012A/2012Bは、各GSH2012A/2012Bに対応するGPS2011を指定するためのGPS id情報を少なくとも含む。
 第3に、ビットストリームは、GSH2012A/2012Bの次に、スライスデータ2013A/2013Bを含んでいてもよい。スライスデータ2013A/2013Bには、幾何情報を符号化したデータが含まれている。スライスデータ2013A/2013Bの一例としては、後述するoccupancy codeが挙げられる。
 以上のように、ビットストリームは、各スライスデータ2013A/2013Bに、1つずつGSH2012A/2012B及びGPS2011が対応する構成となる。
 上述のように、GSH2012A/2012Bにて、どのGPS2011を参照するかをGPS id情報で指定するため、複数のスライスデータ2013A/2013Bに対して共通のGPS2011を用いることができる。
 言い換えると、GPS2011は、スライスごとに必ずしも伝送する必要がない。例えば、図3のように、GSH2012B及びスライスデータ2013Bの直前では、GPS2011を符号化しないようなビットストリームの構成とすることもできる。
 なお、図3の構成は、あくまで一例である。各スライスデータ2013A/2013Bに、GSH2012A/2012B及びGPS2011が対応する構成となっていれば、ビットストリームの構成要素として、上述以外の要素が追加されてもよい。
 例えば、図3に示すように、ビットストリームは、シーケンスパラメータセット(SPS)2001を含んでいてもよい。また、同様に、伝送に際して、図3と異なる構成に整形されてもよい。更に、後述する属性情報復号部2060で復号されるビットストリームと合成して単一のビットストリームとして伝送されてもよい。
 図4は、GPS2011のシンタックス構成の一例である。
 なお、以下で説明するシンタックス名は、あくまで一例である。以下で説明したシンタックスの機能が同様であれば、シンタックス名は異なっていても差し支えない。
 GPS2011は、各GPS2011を識別するためのGPS id情報(gps_geom_parameter_set_id)を含んでもよい。
 なお、図4のDescriptor欄は、各シンタックスが、どのように符号化されているかを意味している。ue(v)は、符号無し0次指数ゴロム符号であることを意味し、u(1)は、1ビットのフラグであることを意味する。
 GPS2011は、ツリー合成部2020でインター予測を行うか否かを制御するフラグ(interprediction_enabled_flag)を含んでもよい。
 例えば、interprediction_enabled_flagの値が「0」の時はインター予測を行わないと定義し、interprediction_enabled_flagの値が「1」の時はインター予測を行うと定義してもよい。
 なお、interprediction_enabled_flagは、GPS2011ではなくSPS2001に含んでいてもよい。
 幾何情報復号部2020は、インター予測を行うとき、すなわち、interprediction_enabled_flagの値が「1」の時、追加で以下のシンタックスを復号するように構成されていてもよい。
 GPS2011は、インター予測を行う場合に、アップサンプル部2120によるアップサンプリングを適用するか否かを制御するフラグ(reference_upsampling_enabled_flag)を含んでもよい。
 例えば、reference_upsampling_enabled_flagの値が「0」の時はアップサンプリングを適用しないと定義し、reference_upsampling_enabled_flagの値が「1」の時はアップサンプリングを適用すると定義してもよい。
 幾何情報復号部2020は、アップサンプリングを適用するとき、すなわち、reference_upsampling_enabled_flagの値が「1」の時、追加で以下のシンタックスを復号するように構成されていても良い。
 GPS2011は、アップサンプリング点数を制御するシンタックス(upsampling_number_div2)を含んでもよい。当該シンタックスの値を具体的にどのように使うかについては後述する。
 GPS2011は、アップサンプリング点の間隔を制御するシンタックス(upsampling_interval)を含んでも良い。当該シンタックスの値を具体的にどのように使うかについては後述する。
 GPS2011は、近似表面合成部2030でTrisoupを使用するか否かを制御するフラグ(trisoup_enabled_flag)を含んでもよい。
 例えば、trisoup_enabled_flagの値が「0」の時はTrisoupを使用しないと定義し、trisoup_enabled_flagの値が「1」の時はTrisoupを使用すると定義してもよい。
 幾何情報復号部2020は、Trisoupを使用するとき、すなわち、trisoup_enabled_flagの値が「1」の時、追加で以下のシンタックスを復号するように構成されていてもよい。
 なお、trisoup_enabled_flagは、GPS2011ではなくSPS2001に含んでいてもよい。
 GPS2011は、複数レベルでのTrisoupを許可するか否かを制御するフラグ(trisoup_multilevel_enabled_flag、第1フラグ)を含んでもよい。
 例えば、trisoup_multilevel_enabled_flagの値が「0」の時は複数レベルでのTrisoupを許可しない、すなわち、単一のレベルでのTrisoupを行うと定義し、trisoup_multilevel_enabled_flagの値が「1」の時は複数レベルでのTrisoupを許可すると定義してもよい。
 なお、当該シンタックスがGPS2011に含まれない場合、当該シンタックスの値を単一のレベルでのTrisoupを行う場合の値、すなわち、「0」とみなしてよい。
 なお、trisoup_multilevel_enabled_flagは、GPS2011ではなくSPS2001に含まれるよう定義してもよい。この場合、SPS2001にtrisoup_multilevel_enabled_flagが含まれていない場合、当該シンタックスの値を単一のレベルでのTrisoupを行う場合の値、すなわち、「0」とみなしてよい。
 幾何情報復号部2020は、複数レベルでのTrisoupを許可するとき、すなわち、trisoup_multilevel_enabled_flagの値が「1」の時、追加で以下のシンタックスを復号するように構成されていても良い。
 GPS2011は、複数レベルでのTrisoupを許可するとき、Trisoupノードサイズの最大値を規定するシンタックス(log2_trisoup_max_node_size_minus3)を含んでもよい。
 当該シンタックスは、実際のTrisoupノードサイズの最大値について、2を底とする対数に変換した値として表現されていてもよい。更に、当該シンタックスは、実際のTrisoupノードサイズの最大値について、2を底とする対数に変換した後に3を引いた後の値として表現されていてもよい。
 GPS2011は、複数レベルでのTrisoupを許可するとき、Trisoupノードサイズの最小値を規定するシンタックス(log2_trisoup_min_node_size_minus3)を含んでもよい。
 当該シンタックスは、実際のTrisoupノードサイズの最小値について、2を底とする対数に変換した値として表現されていてもよい。更に、当該シンタックスは、実際のTrisoupノードサイズの最小値について、2を底とする対数に変換した後に3を引いた後の値として表現されていてもよい。
 また、当該シンタックスの値は、必ず0以上かつlog2_trisoup_max_node_size_minus3以下となるように制約されていてもよい。
 幾何情報復号部2020は、複数レベルでのTrisoupを許可しないとき、すなわち、trisoup_multilevel_enabled_flagの値が「0」の時、追加で以下のシンタックスを復号するように構成されていても良い。
 GPS2011は、複数レベルでのTrisoupを許可しないとき、Trisoupノードサイズを規定するシンタックス(log2_trisoup_node_size_minus3)を含んでもよい。
 当該シンタックスは、実際のTrisoupノードサイズについて、2を底とする対数に変換した値として表現されていてもよい。更に、当該シンタックスは、実際のTrisoupノードサイズについて、2を底とする対数に変換した後に3を引いた後の値として表現されていてもよい。
(アップサンプル部2120)
以下、図5~図6を用いてアップサンプル部2120でのアップサンプリングについて説明する。
 図5は、アップサンプル部2120におけるアップサンプリングの一例を示すフローチャートである。
 図5に示すように、ステップS501において、アップサンプル部2120は、幾何情報再構成部から出力される幾何情報、すなわち、位置情報を再構成した点群に含まれる全ての点について、アップサンプリングが終了したか否かを判定する。
 全ての点の処理を終了した場合は、アップサンプル部2120は、ステップS504において、処理を終了する。一方、全ての点の処理を終了していない場合は、アップサンプル部2120は、ステップS502へ進む。
 ステップS502において、アップサンプル部2120は、オフセットベクトルを算出する。
 以下、図6Aに示すxyz空間上の点Pに対してオフセットベクトルを求める場合を例に説明する。ここで、点Pの座標は(X、Y、Z)とし、原点Oを始点とし点Pを終点とするベクトルをvpとする。
 オフセットベクトルvuは、例えば、vuのL2ノルムが1となるように正規化したものとして算出されてもよい。すなわち、アップサンプル部2120は、以下の式に基づいて、オフセットベクトルvuを算出してもよい。
 vu=vp/(X2+Y2+Z2)1/2
 なお、アップサンプル部2120は、上述の平方根の計算及び除算については、近似計算を用いて整数演算となるようにしてもよい。また、上述の近似計算の際に、vpの絶対値が小さすぎると整数演算による誤差が大きくなりすぎるため、vuの代わりに後述するi・vuを求めてもよい。
 オフセットベクトルvuは、アップサンプリングの対象となる点Pについて、原点Oを始点として点Pを指すベクトルvpと同じ方向を指し且つ所定の大きさ(例えば、L2ノルム)を持つベクトルとして算出されていれば、上述以外の手法で算出されても差し支えない。
 言い換えると、点Pが原点Oを中心とした球上に存在すると考えた場合に、球面に対して法線方向となるようにオフセットベクトルvuが算出されていれば、上述以外の手法で算出されても差し支えない。
 また、アップサンプル部2120は、上述の方向や大きさについて、多少の近似誤差を含む方法でオフセットベクトルvuを導出してもよい。
 アップサンプル部2120は、オフセットベクトルvuを算出した後、ステップS503へ移る。
 ステップS503において、アップサンプル部2120は、ステップS502で算出したオフセットベクトルvuに基づいてアップサンプリングを行う。
 ここでも、図6Aの点Pのアップサンプリングを行う場合を例に説明する。図6Bは、点Pのアップサンプリング後の様子の例を示している。
 ここで、図6B中に示すiは、アップサンプリング間隔を制御するパラメータであり、GPS2011に含まれるアップサンプリング点の間隔を制御するシンタックス(upsampling_interval)として復号した値を用いる。
 また、図6B中に示すNは、1つの入力点に対してアップサンプリングによって生成する点数を制御するパラメータであり、GPS2011に含まれるアップサンプリング点数を制御するシンタックス(upsampling_number_div2)として復号した値を用いる。
 アップサンプリングは、例えば、点Pの座標をvpとしたとき、以下の通り、座標値vsを持つ点を追加することで実現できる。
 vs=vp±ni・vu(n=1,2,...,N)
 この場合、1つの入力点に対して、2N点がアップサンプリングによって追加される。
 以上のように、アップサンプル部2120は、アップサンプリングを行った後、ステップS501へ戻り、次の点の処理を行う。
(ツリー合成部2020)
 以下、図7~図8を用いてツリー合成部2020の処理について説明する。図7は、ツリー合成部2020における処理の一例を示すフローチャートである。なお、以下では「Octree」を使用してツリーを合成する場合の例について説明する。
 ステップS701において、ツリー合成部2020は、全てのDepthの処理が完了したかどうかを確認する。なお、Depth数は、点群符号化装置100から点群復号装置200に伝送するビットストリーム内に制御データとして含まれていてもよい。
 ツリー合成部2020は、当該Depthのノードサイズを算出する。「Octree」の場合、最初のDepthのノードサイズは、「2のDepth数乗」と定義されてもよい。すなわち、Depth数をNとする場合、最初のDepthのノードサイズは、2のN乗と定義されてもよい。
 また、2番目以降のDepthでのノードサイズは、Nの数を1つずつ減じていくことで定義されてもよい。すなわち、2番目のDepthのノードサイズは、「2の(N-1)乗」として定義され、3番目のDepthのノードサイズは、「2の(N-2)乗」として定義され、・・・と定義されてもよい。
 或いは、ノードサイズは、常に2のべき乗で定義されるため、単純に指数部分(N、N-1、N-2、等)の値をノードサイズと考えてもよい。以降の説明では、ノードサイズとは、指数部分の値を指すこととする。
 全てのDepthの処理が完了した場合は、ツリー合成部2020は、ステップS709へ進み、全てのDepthの処理が完了していない場合は、ツリー合成部2020は、ステップS702へ進む。
 言い換えると、当該Depthがn番目のDepthの時、(N-n)=0の場合は、ツリー合成部2020は、ステップS709へ進み、(N-n)>0の場合は、ツリー合成部2020は、ステップS702へ進む。
 ここで、Trisoupを使用するか否かを制御するフラグ(trisoup_enabled_flag)がTrisoupを使用することを示している場合、すなわち、trisoup_enabled_flagの値が「1」の時は、ツリー合成部2020は、処理するDepth数を、Trisoupノードサイズの最小値を規定するシンタックス(log2_trisoup_min_node_size_minus3)又はTrisoupノードサイズを規定するシンタックス(log2_trisoup_node_size_minus3)の値に基づいて変化させてもよい。かかる場合、例えば、以下のように定義してもよい。
処理Depth数=全Depth数―(最小の)Trisoupノードサイズ
 ここで、最小のTrisoupノードサイズについては、例えば、(log2_trisoup_min_node_size_minus3+3)で定義できる。同様に、Trisoupノードサイズについては、(log2_trisoup_node_size_minus3+3)で定義できる。
 この場合、全ての処理Depth数の処理が完了した場合は、ツリー合成部2020は、ステップS709へ進み、そうでない場合は、ツリー合成部2020は、ステップS702へ進む。
 言い換えると、(処理Depth数―n)=0の場合は、ツリー合成部2020は、ステップS709へ進み、(処理Depth数-n)>0の場合は、ツリー合成部2020は、ステップS702へ進む。
 また、ツリー合成部2020は、ステップS709へ進む際のノードサイズ(N―処理Depth数)を持つ全てのノードには、Trisoupが適用されると判定してもよい。
 ステップS702において、ツリー合成部2020は、当該Depthにて後述するTrisoup_applied_flagを復号する必要があるか否かを判定する。
 例えば、「複数レベルでのTrisoupが許可(trisoup_multilevel_enabled_flagの値が「1」)」で、且つ、「当該Depthのノードサイズ(N-n)が最大のTrisoupノードサイズ以下」の場合に、ツリー合成部2020は、「Trisoup_applied_flagの復号が必要である」と判定してもよい。
 また、ツリー合成部2020は、上述の条件が満たされない場合、「Trisoup_applied_flagの復号が必要ない」と判定してもよい。
 ここで、最大のTrisoupノードサイズについては、例えば、(log2_trisoup_max_node_size_minus3+3)で定義できる。
 上述の判定が完了したら、ツリー合成部2020は、ステップS703へ移る。
 ステップS703において、ツリー合成部2020は、当該Depthに含まれる全てのノードの処理が完了したかどうかを判定する。
 当該Depthの全てのノードの処理が完了したと判定した場合、ツリー合成部2020は、ステップS701へ移り、次のDepthの処理を行う。
 一方、当該Depthの全てのノードの処理が完了していない場合、ツリー合成部2020は、ステップS704へ移る。
 ステップS704において、ツリー合成部2020は、ステップS702で判定したTrisoup_applied_flagの復号の要否について確認する。
 Trisoup_applied_flagの復号が必要であると判定されている場合は、ツリー合成部2020は、ステップS705へ進み、Trisoup_applied_flagの復号が必要でないと判定されている場合は、ツリー合成部2020は、ステップS708へ移る。
 ステップS705において、ツリー合成部2020は、Trisoup_applied_flagを復号する。
 Trisoup_applied_flagは、対象ノードにTrisoupを適用するか否かを示す1ビットのフラグ(第2フラグ)である。例えば、かかるフラグの値が「1」の時に対象ノードにTrisoupを適用すると定義し、かかるフラグの値が「0」の時に対象ノードにTrisoupを適用しないと定義してもよい。
 ツリー合成部2020は、Trisoup_applied_flagを復号した後、ステップS706へ移る。
 ステップS706において、ツリー合成部2020は、ステップS705で復号したTrisoup_applied_flagの値を確認する。
 対象ノードにTrisoupを適用する場合、すなわち、Trisoup_applied_flagの値が「1」の場合は、ツリー合成部2020は、ステップS707へ移る。
 対象ノードにTrisoupを適用しない場合、すなわち、Trisoup_applied_flagの値が「0」の場合は、ツリー合成部2020は、ステップS708へ移る。
 ステップS707において、ツリー合成部2020は、対象ノードを、Trisoupを適用するノード、すなわち、Trisoupノードとして記憶する。かかる対象ノードに対しては、これ以上、「Octree」によるノードの分割を適用しないこととする。その後、ツリー合成部2020は、ステップS703に進み、次のノードの処理へ移る。
 ステップS708において、ツリー合成部2020は、occpancy codeと呼ばれる情報を復号する。
 occpancy codeは、「Octree」の場合は、対象ノードをx、y、z軸方向にそれぞれ半分に分割して、8つのノード(子ノードと呼ぶ)に分割した際に、それぞれの子ノード内に復号対象の点が含まれているか否かを示す情報である。
 例えば、occpancy codeは、各子ノードに対して1ビットの情報を割り当て、かかる1ビットの情報が「1」の場合は、かかる子ノード内に復号対象の点が含まれると定義され、かかる1ビットの情報が「0」の場合は、かかる子ノード内に復号対象の点が含まれないと定義されてもよい。
 ツリー合成部2020は、かかるoccpancy codeを復号する際に、各子ノードに復号対象の点が存在する確率を予め推定し、その確率に基づいて各子ノードに対応するビットをエントロピー復号してもよい。
 同様に、点群符号化装置100においては、エントロピー符号化してもよい。更に、かかる確率の推定に、インター予測を用いてもよい。インター予測の具体的な方法としては、例えば、非特許文献1に記載の方法を適用できる。更に、インター予測を行う際の参照点群に、アップサンプル部2120でアップサンプルした点群を用いてもよい。
 ツリー合成部2020は、occpancy codeを復号した後、ステップS703へ進み、次のノードの処理へ移る。
 ステップS709において、ツリー合成部2020は、Trisoup情報の復号を行う。ツリー合成部2020は、ステップS709の処理については、Trisoupを使用する場合、すなわち、trisoup_enabled_flagの値が「1」の時のみ実行する。すなわち、Trisoupを使用しない場合は、ツリー合成部2020は、ステップS710へ進み、処理を終了する。
 図8は、Trisoup情報の復号処理の一例を示すフローチャートである。
 図8に示すように、ステップS801において、ツリー合成部2020は、復号点のサンプリング間隔を制御するシンタックスを復号する。
 ステップS802において、ツリー合成部2020は、全Trisoup階層の処理が完了したかどうかを判定する。ここで、全Trisoup階層の数は、以下の通り定義できる。
 複数レベルでのTrisoupを許可するとき、すなわち、trisoup_multilevel_enabled_flagの値が「1」の時は、全Trisoup階層数は、(最大Trisoupノードサイズ-最小Trisoupノードサイズ+1)で定義できる。
 すなわち、かかる場合、全Trisoup階層数は、(log2_trisoup_max_node_size_minus3―log2_trisoup_min_node_size_minus3+1)で定義できる。
 複数レベルでのTrisoupを許可しないとき、すなわち、trisoup_multilevel_enabled_flagの値が「0」の時は、全Trisoup階層数は、1である。
 全てのTrisoup階層の処理が完了した場合は、ツリー合成部2020は、ステップS807へ進み、処理を終了する。全てのTrisoup階層の処理が完了していない場合は、ツリー合成部2020は、ステップS803へ移る。
 ステップS803において、ツリー合成部2020は、当該Trisoup階層におけるユニークセグメント数を復号する。ユニークセグメント数は、当該Trisoup階層に属するTrisoupノードを構成する辺の数である。
 ステップS803では、ツリー合成部2020は、上述のように、ユニークセグメント数を復号する代わりに、当該Trisoup階層にユニークセグメントが(1つ以上)存在するか否かを示すフラグを復号してもよい。
 更に、複数レベルでのTrisoupを許可しないとき、すなわち、trisoup_multilevel_enabled_flagの値が「0」の時は、当該Trisoup階層にユニークセグメントが存在することは自明であるため、ツリー合成部2020は、当該Trisoup階層にユニークセグメントが(1つ以上)存在するか否かを示すフラグの復号を省略してもよい。
 ツリー合成部2020は、ユニークセグメント数を復号した後、ステップS804へ移る。
 ステップS804において、ツリー合成部2020は、当該Trisoup階層に属するユニークセグメント数を確認する。
 ユニークセグメント数が0の場合、すなわち、当該Trisoup階層にはTrisoupノードが1つも含まれない場合は、ツリー合成部2020は、ステップS802へ進み、次のTrisoup階層の処理へ移る。
 ユニークセグメント数が0より大きい場合は、ツリー合成部2020は、ステップS805へ移る。
 なお、ステップS803で当該Trisoup階層にユニークセグメントが(1つ以上)存在するか否かを示すフラグを復号した場合、ツリー合成部2020は、当該Trisoup階層にユニークセグメントが存在する場合は、当該Trisoup階層におけるユニークセグメント数を復号した後、ステップS805へ進み、当該Trisoup階層にユニークセグメントが存在しない場合はステップS802へ進む。
 ステップS805において、ツリー合成部2020は、各ユニークセグメントに対してTrisoup処理に用いる頂点が含まれるか否かを復号する。
 なお、各ユニークセグメントに対して存在できる頂点は、1点のみに制限してもよい。この場合、頂点が存在するユニークセグメント数が=頂点数と解釈できる。
 ツリー合成部2020は、当該Trisoup階層の全てのユニークセグメントについて頂点の有無を復号した後、ステップS806へ移る。
 ステップS806において、ツリー合成部2020は、ステップS805において頂点が存在すると判定された各ユニークセグメントに対して、各ユニークセグメント上のどこに頂点が存在するのかという位置情報を復号する。
 位置情報は、例えば、当該Trisoup階層におけるTrisoupノードサイズがL(2のL乗)の場合、Lビットの等長符号で符号化されていてもよい。
 ツリー合成部2020は、当該Trisoup階層において、頂点が存在する全てのユニークセグメントに対して頂点位置を復号した後、ステップS802へ移り、次のTrisoup階層の処理へ進む。
(点群符号化装置100)
 以下、図9を参照して、本実施形態に係る点群符号化装置100について説明する。図9は、本実施形態に係る点群符号化装置100の機能ブロックの一例について示す図である。
 図9に示すように、点群符号化装置100は、座標変換部1010と、幾何情報量子化部1020と、ツリー解析部1030と、近似表面解析部1040と、幾何情報符号化部1050と、幾何情報再構成部1060と、色変換部1070と、属性転移部1080と、RAHT部1090と、LoD算出部1100と、リフティング部1110と、属性情報量子化部1120と、属性情報符号化部1130と、アップサンプル部1140と、フレームバッファ1150とを有する。
 座標変換部1010は、入力点群の3次元座標系から、任意の異なる座標系への変換処理を行うよう構成されている。座標変換は、例えば、入力点群を回転することにより、入力点群のx、y、z座標を任意のs、t、u座標に変換してもよい。また、変換のバリエーションの1つとして、入力点群の座標系をそのまま使用してもよい。
 幾何情報量子化部1020は、座標変換後の入力点群の位置情報の量子化及び座標が重複する点の除去を行うように構成されている。なお、量子化ステップサイズが1の場合は、入力点群の位置情報と量子化後の位置情報とが一致する。すなわち、量子化ステップサイズが1の場合は、量子化を行わない場合と等価になる。
 ツリー解析部1030は、量子化後の点群の位置情報を入力として、後述のツリー構造に基づいて、符号化対象空間のどのノードに点が存在するかについて示すoccupancy codeを生成するように構成されている。
 ツリー解析部1030は、本処理において、符号化対象空間を再帰的に直方体で区切ることにより、ツリー構造を生成するように構成されている。
 ここで、ある直方体内に点が存在する場合、かかる直方体を複数の直方体に分割する処理を、直方体が所定のサイズになるまで再帰的に実行することでツリー構造を生成することができる。なお、かかる各直方体をノードと呼ぶ。また、ノードを分割して生成される各直方体を子ノードと呼び、子ノード内に点が含まれるか否かについて0又は1で表現したものがoccupancy codeである。
 以上のように、ツリー解析部1030は、所定のサイズになるまでノードを再帰的に分割しながら、occupancy codeを生成するように構成されている。
 本実施形態では、上述の直方体を常に立方体として8分木分割を再帰的に行う「Octree」と呼ばれる手法、及び、8分木分割に加え、4分木分割及び2分木分割を行う「QtBt」と呼ばれる手法を使用することができる。
 ここで、「QtBt」を使用するか否かについては、制御データとして点群復号装置200に伝送される。
 或いは、任意のツリー構成を用いるPredicitive codingを使用するように指定されてもよい。かかる場合、ツリー解析部1030が、ツリー構造を決定し、決定されたツリー構造は、制御データとして点群復号装置200へ伝送される。
 例えば、ツリー構造の制御データは、図7及び図8で説明した手順で復号できるよう構成されていてもよい。
 近似表面解析部1040は、ツリー解析部1030によって生成されたツリー情報を用いて、近似表面情報を生成するように構成されている。
 近似表面情報は、例えば、物体の3次元点群データを復号する際等において、点群が物体表面に密に分布しているような場合に、個々の点群を復号するのではなく、点群の存在領域を小さな平面で近似して表現したものである。
具体的には、近似表面解析部1040は、例えば、「Trisoup」と呼ばれる手法で、近似表面情報を生成するように構成されていてもよい。また、Lidar等で取得した疎な点群を復号する場合は、本処理を省略することができる。
 幾何情報符号化部1050は、ツリー解析部1030によって生成されたoccupancy code及び近似表面解析部1040によって生成された近似表面情報等のシンタックスを符号化してビットストリーム(幾何情報ビットストリーム)を生成するように構成されている。ここで、ビットストリームには、例えば、図4で説明したシンタックスを含まれていてもよい。
 符号化処理は、例えば、コンテキスト適応二値算術符号化処理である。ここで、例えば、シンタックスは、位置情報の復号処理を制御するための制御データ(フラグやパラメータ)を含む。
 幾何情報再構成部1060は、ツリー解析部1030によって生成されたツリー情報及び近似表面解析部1040によって生成された近似表面情報に基づいて、符号化対象の点群データの各点の幾何情報(符号化処理が仮定している座標系、すなわち、座標変換部1010における座標変換後の位置情報)を再構成するように構成されている。
 アップサンプル部1140は、幾何情報再構成部1060によって再構成された幾何情報を入力として、例えば、図5及び図6で説明したアップサンプリングを行うように構成されている。
 フレームバッファ1150は、アップサンプル部1140でアップサンプリングされた点群を入力とし、参照フレームとして保存するように構成されている。
 保存された参照フレームは、ツリー解析部1030において時間的に異なるフレームのインター予測を行う場合に、フレームバッファ1150から読み出されて参照フレームとして使用される。
 ここで、各フレームに対してどの時刻の参照フレームを用いるかどうかが、例えば、符号化効率を表すコスト関数の値に基づいて決定され、使用する参照フレームの情報が制御データとして点群復号装置200へ伝送されてもよい。
 なお、ここでは、アップサンプル部1140でアップサンプリングした後にフレームバッファ1150に保存する場合の例を説明したが、この順番は逆でもよい。
 すなわち、幾何情報再構成部1060から出力される幾何情報が参照フレームとしてフレームバッファ1150へ保存され、その後、ツリー解析部1030にてインター予測を行う際に、フレームバッファ1150に保存されていた参照フレームがアップサンプル部1140でアップサンプリングされてからツリー解析部1030に入力されてもよい。
 さらに別の例として、アップサンプル部1140は、ツリー解析部1030内部に含まれるよう構成されていてもよい。
 色変換部1070は、入力の属性情報が色情報であった場合に、色変換を行うように構成されている。色変換は、必ずしも実行する必要は無く、色変換処理の実行の有無については、制御データの一部として符号化され、点群復号装置200へ伝送される。
 属性転移部1080は、入力点群の位置情報、幾何情報再構成部1060における再構成後の点群の位置情報及び色変換部1070での色変化後の属性情報に基づいて、属性情報の歪みが最小となるように属性値を補正するように構成されている。具体的な補正方法は、例えば、非特許文献2に記載の方法を適用できる。
 RAHT部1090は、属性転移部1080による転移後の属性情報及び幾何情報再構成部1060によって生成された幾何情報を入力とし、RAHT(Region Adaptive Hierarchical Transform)と呼ばれるHaar変換の一種を用いて、各点の残差情報を生成するように構成されている。RAHTの具体的な処理としては、例えば、非特許文献2に記載の方法を用いることができる。
 LoD算出部1100は、幾何情報再構成部1060によって生成された幾何情報を入力とし、LoD(Level of Detail)を生成するように構成されている。
 LoDは、ある点の属性情報から、他のある点の属性情報を予測し、予測残差を符号化或いは復号するといった予測符号化を実現するための参照関係(参照する点及び参照される点)を定義するための情報である。
 言い換えると、LoDは、幾何情報に含まれる各点を複数のレベルに分類し、下位のレベルに属する点については上位のレベルに属する点の属性情報を用いて属性を符号化或いは復号するといった階層構造を定義した情報である。
 LoDの具体的な決定方法としては、例えば、非特許文献2に記載の方法を用いてもよい。
 リフティング部1110は、LoD算出部1100によって生成されたLoD及び属性転移部1080での属性転移後の属性情報を用いて、リフティング処理により残差情報を生成するように構成されている。
 リフティングの具体的な処理としては、例えば、非特許文献2に記載の方法を用いてもよい。
 属性情報量子化部1120は、RAHT部1090又はリフティング部1110から出力される残差情報を量子化するように構成されている。ここで、量子化ステップサイズが1の場合は、量子化を行わない場合と等価である。
 属性情報符号化部1130は、属性情報量子化部1120から出力される量子化後の残差情報等をシンタックスとして符号化処理を行い、属性情報に関するビットストリーム(属性情報ビットストリーム)を生成するように構成されている。
 符号化処理は、例えば、コンテキスト適応二値算術符号化処理である。ここで、例えば、シンタックスは、属性情報の復号処理を制御するための制御データ(フラグ及びパラメータ)を含む。
 点群符号化装置100は、以上の処理により、点群内の各点の位置情報及び属性情報を入力として符号化処理を行い、幾何情報ビットストリーム及び属性情報ビットストリームを出力するように構成されている。
 また、上述の点群符号化装置100及び点群復号装置200は、コンピュータに各機能(各工程)を実行させるプログラムであって実現されていてもよい。
 なお、上記の各実施形態では、本発明を点群符号化装置100及び点群復号装置200への適用を例にして説明したが、本発明は、かかる例のみに限定されるものではなく、点群符号化装置100及び点群復号装置200の各機能を備えた点群符号化/復号システムにも同様に適用できる。
 なお、本実施形態によれば、例えば、動画像通信において総合的なサービス品質の向上を実現できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
10…点群処理システム
100…点群符号化装置
1010…座標変換部
1020…幾何情報量子化部
1030…ツリー解析部
1040…近似表面解析部
1050…幾何情報符号化部
1060…幾何情報再構成部
1070…色変換部
1080…属性転移部
1090…RAHT部
1100…LoD算出部
1110…リフティング部
1120…属性情報量子化部
1130…属性情報符号化部
1140…アップサンプル部
1150…フレームバッファ
200…点群復号装置
2010…幾何情報復号部
2020…ツリー合成部
2030…近似表面合成部
2040…幾何情報再構成部
2050…逆座標変換部
2060…属性情報復号部
2070…逆量子化部
2080…RAHT部
2090…LoD算出部
2100…逆リフティング部
2110…逆色変換部
2120…アップサンプリング部
2130…フレームバッファ
 
 
 

Claims (12)

  1.  点群復号装置であって、
     点群の位置情報を再構成するように構成されている幾何情報再構成部と、
     前記幾何情報再構成部で再構成された点群をアップサンプリングするように構成されているアップサンプル部と、
     前記アップサンプリングされた点群を参照してインター予測を行うように構成されているツリー合成部と、を備え、
     前記アップサンプル部は、前記再構成された点群における各点の座標からオフセットベクトルを算出し、前記オフセットベクトルを用いてアップサンプリングを行うように構成されていることを特徴とする点群復号装置。
  2.  前記アップサンプル部は、座標空間の原点を始点として前記再構成された点群における各点の座標を指すベクトルと同じ方向を指し且つ所定の大きさを持つベクトルとして前記オフセットベクトルを算出するように構成されていることを特徴とする請求項1に記載の点群復号装置。
  3.  前記所定の大きさは、「L2ノルムが1である」と定義されていることを特徴とする請求項2に記載の点群復号装置。
  4.  前記アップサンプル部は、前記オフセットベクトルと、アップサンプリング間隔を制御するパラメータと、前記アップサンプリングによって生成する点数を制御するパラメータに基づいて、アップサンプル点を算出するように構成されていることを特徴とする請求項1~3のいずれか1項に記載の点群復号装置。
  5.  前記アップサンプリング間隔を制御するパラメータ及び前記アップサンプリングによって生成する点数を制御するパラメータを、それぞれ制御データとしてビットストリームから復号するように構成されている幾何情報復号部を備えることを特徴とする請求項4に記載の点群復号装置。
  6.  点群復号装置であって、
     複数レベルでのTrisoupを許可するか否かを制御する第1フラグを復号するように構成されている幾何情報復号部を備えることを特徴とする点群復号装置。
  7.  前記幾何情報復号部は、前記第1フラグの値が前記複数レベルでのTrisoupを許可することを示す場合、最大Trisoupノードサイズ及び最小Trisoupノードサイズを復号するように構成されていることを特徴とする請求項6に記載の点群復号装置。
  8.  前記第1フラグの値が前記複数レベルでのTrisoupを許可することを示す場合、ノード毎に対象ノードにTrisoupを適用するか否かを示す第2フラグを復号するように構成されているツリー合成部を備えることを特徴とする請求項6又は7に記載の点群復号装置。
  9.  前記ツリー合成部は、前記第1フラグの値が前記複数レベルでのTrisoupを許可することを示す場合、Depthごとに前記第2フラグの復号の要否を判定し、前記第2フラグの復号が必要であると判定されたDepthに属するノードのみ、ノードごとに前記第2フラグを復号するように構成されていることを特徴とする請求項8に記載の点群復号装置。
  10.  前記ツリー合成部は、前記第1フラグの値が前記複数レベルでのTrisoupを許可することを示す場合で、且つ、前記Depthにおけるノードサイズが最大Trisoupノードサイズ以下で且つ最小Trisoupノードサイズより大きい場合に、前記第2フラグを復号する必要があると判定し、前記第2フラグを復号する必要があると判定されたDepthに属するノードのみ、ノード毎に前記第2フラグを復号するように構成されていることを特徴とする請求項8に記載の点群復号装置。
  11.  点群復号方法であって、
     点群の位置情報を再構成するように構成されている幾何情報再構成部と、
     前記幾何情報再構成部で再構成された点群をアップサンプリングする工程Aと、
     前記アップサンプリングされた点群を参照してインター予測を行う工程Bと、を備え、
     前記工程Aにおいて、前記再構成された点群における各点の座標からオフセットベクトルを算出し、前記オフセットベクトルを用いてアップサンプリングを行うことを特徴とする点群復号方法。
  12.  コンピュータを、点群復号装置として機能させるプログラムであって、
     前記点群復号装置は、
      点群の位置情報を再構成するように構成されている幾何情報再構成部と、
      前記幾何情報再構成部で再構成された点群をアップサンプリングするように構成されているアップサンプル部と、
      前記アップサンプリングされた点群を参照してインター予測を行うように構成されているツリー合成部と、を備え、
     前記アップサンプル部は、前記再構成された点群における各点の座標からオフセットベクトルを算出し、前記オフセットベクトルを用いてアップサンプリングを行うように構成されていることを特徴とするプログラム。
PCT/JP2022/026209 2021-07-02 2022-06-30 点群復号装置、点群復号方法及びプログラム WO2023277128A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021111088A JP2023007934A (ja) 2021-07-02 2021-07-02 点群復号装置、点群復号方法及びプログラム
JP2021-111088 2021-07-02

Publications (1)

Publication Number Publication Date
WO2023277128A1 true WO2023277128A1 (ja) 2023-01-05

Family

ID=84692757

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/026209 WO2023277128A1 (ja) 2021-07-02 2022-06-30 点群復号装置、点群復号方法及びプログラム

Country Status (2)

Country Link
JP (1) JP2023007934A (ja)
WO (1) WO2023277128A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6732152B1 (ja) * 2017-10-12 2020-07-29 三菱電機株式会社 点群エンコーダ
US20210029187A1 (en) * 2019-07-03 2021-01-28 Lg Electronics Inc. Point cloud data transmission apparatus, point cloud data transmission method, point cloud data reception apparatus and point cloud data reception method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6732152B1 (ja) * 2017-10-12 2020-07-29 三菱電機株式会社 点群エンコーダ
US20210029187A1 (en) * 2019-07-03 2021-01-28 Lg Electronics Inc. Point cloud data transmission apparatus, point cloud data transmission method, point cloud data reception apparatus and point cloud data reception method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DRICOT ANTOINE; ASCENSO JOAO: "Adaptive Multi-level Triangle Soup for Geometry-based Point Cloud Coding", 2019 IEEE 21ST INTERNATIONAL WORKSHOP ON MULTIMEDIA SIGNAL PROCESSING (MMSP), IEEE, 27 September 2019 (2019-09-27), pages 1 - 6, XP033660072, DOI: 10.1109/MMSP.2019.8901791 *

Also Published As

Publication number Publication date
JP2023007934A (ja) 2023-01-19

Similar Documents

Publication Publication Date Title
CN113615181B (zh) 用于点云编解码的方法、装置
US20210314616A1 (en) Predictor index signaling for predicting transform in geometry-based point cloud compression
US12008712B2 (en) Inter-component residual prediction for attributes in geometry point cloud compression coding
US12002244B2 (en) Global scaling for geometry-based point cloud coding
WO2022070469A1 (ja) 点群復号装置、点群復号方法及びプログラム
JP2022102806A (ja) 点群復号装置、点群復号方法及びプログラム
CN115885317A (zh) 点云解码装置、点云解码方法及程序
WO2021256486A1 (ja) 点群復号装置、点群復号方法及びプログラム
WO2022071284A1 (ja) 点群復号装置、点群復号方法及びプログラム
WO2023277128A1 (ja) 点群復号装置、点群復号方法及びプログラム
WO2022071282A1 (ja) 点群復号装置、点群復号方法及びプログラム
WO2022071285A1 (ja) 点群復号装置、点群復号方法及びプログラム
JP2023053827A (ja) 点群復号装置、点群復号方法及びプログラム
WO2023132330A1 (ja) 点群復号装置、点群復号方法及びプログラム
WO2023132331A1 (ja) 点群復号装置、点群復号方法及びプログラム
WO2023132329A1 (ja) 点群復号装置、点群復号方法及びプログラム
WO2024009675A1 (ja) 点群復号装置、点群復号方法及びプログラム
WO2024009676A1 (ja) 点群復号装置、点群復号方法及びプログラム
WO2024009562A1 (ja) 点群復号装置、点群復号方法及びプログラム
WO2024009561A1 (ja) 点群復号装置、点群復号方法及びプログラム
CN113632142B (zh) 点云编解码的方法和装置
US20230342987A1 (en) Occupancy coding using inter prediction with octree occupancy coding based on dynamic optimal binary coder with update on the fly (obuf) in geometry-based point cloud compression
JP2024093896A (ja) 点群復号装置、点群復号方法及びプログラム
JP2024093897A (ja) 点群復号装置、点群復号方法及びプログラム
JP2024103556A (ja) 点群復号装置、点群復号方法及びプログラム

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: 22833274

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22833274

Country of ref document: EP

Kind code of ref document: A1