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

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

Info

Publication number
WO2024079985A1
WO2024079985A1 PCT/JP2023/029765 JP2023029765W WO2024079985A1 WO 2024079985 A1 WO2024079985 A1 WO 2024079985A1 JP 2023029765 W JP2023029765 W JP 2023029765W WO 2024079985 A1 WO2024079985 A1 WO 2024079985A1
Authority
WO
WIPO (PCT)
Prior art keywords
point cloud
node
synthesis unit
reference frame
decoding device
Prior art date
Application number
PCT/JP2023/029765
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 WO2024079985A1 publication Critical patent/WO2024079985A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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

Definitions

  • the present invention relates to a point cloud decoding device, a point cloud decoding method, and a program.
  • Non-Patent Document 1 discloses technology for predictive coding.
  • Non-Patent Document 2 discloses a technology for performing inter-prediction using a predictor selected from one reference frame in predictive coding.
  • G-PCC codec description ISO/IEC JTC1/SC29/WG7 N00271
  • G-PCC 2nd Edition codec description ISO/IEC JTC1/SC29/WG7 N00314
  • Non-Patent Document 1 has the problem that the compression performance of the encoding process can be impaired because it does not use inter-prediction.
  • Non-Patent Document 2 has only one reference frame, so if there is a lot of noise at the points on the reference frame or if there are defects due to occlusion, etc., it is not possible to select an appropriate predictor, which can result in a loss of encoding compression performance.
  • the present invention has been made in consideration of the above-mentioned problems, and aims to provide a point cloud decoding device, a point cloud decoding method, and a program that can improve the compression performance of encoding.
  • the first feature of the present invention is that it is a point cloud decoding device that includes a tree synthesis unit that performs inter prediction using multiple reference frames in predictive coding.
  • the second feature of the present invention is a point cloud decoding method, which includes a step of performing inter prediction using multiple reference frames in predictive coding.
  • the third feature of the present invention is a program for causing a computer to function as a point cloud decoding device, the point cloud decoding device being provided with a tree synthesis unit that performs inter prediction using multiple reference frames in predictive coding.
  • the present invention provides a point cloud decoding device, a point cloud decoding method, and a program that can improve the compression performance of encoding.
  • FIG. 1 is a diagram illustrating an example of the configuration of a point cloud processing system 10 according to an embodiment.
  • FIG. 2 is a diagram illustrating an example of functional blocks of a point group decoding device 200 according to an embodiment.
  • FIG. 3 is a diagram showing an example of the configuration of encoded data (bit stream) received by the geometric information decoding unit 2010 of the point cloud decoding device 200 according to an embodiment.
  • FIG. 4 is a diagram showing an example of the syntax configuration of GPS2011.
  • FIG. 5 is a flowchart illustrating an example of a process in the tree synthesis unit 2020 of the point group decoding device 200 according to an embodiment.
  • FIG. 6 is a flowchart showing an example of the process in step S502.
  • FIG. 5 is a flowchart illustrating an example of a process in the tree synthesis unit 2020 of the point group decoding device 200 according to an embodiment.
  • FIG. 6 is a flowchart showing an example of the process in step S502.
  • FIG. 7 is a diagram showing an example of a method for storing a decoded frame in the frame buffer 2120.
  • FIG. 8A is a diagram showing an example of the global motion compensation process in step S504.
  • FIG. 8B is a diagram showing an example of the global motion compensation process in step S504.
  • FIG. 9 is a flowchart showing an example of the slice data decoding process in step S505.
  • FIG. 10 is a flowchart showing an example of the coordinate prediction process in step S905.
  • FIG. 11 is a diagram showing an example of the inter prediction process in step S1002.
  • FIG. 12A is a diagram illustrating an example of the inter prediction process in step S1002.
  • FIG. 12B is a diagram illustrating an example of the inter prediction process in step S1002.
  • FIG. 13A is a diagram illustrating an example of a process of assigning an index to a predictor obtained in inter prediction in step S1004.
  • FIG. 13B is a diagram illustrating an example of a process of assigning an index to a predictor obtained in inter prediction in step S1004.
  • FIG. 13C is a diagram illustrating an example of a process of assigning an index to a predictor obtained in inter prediction in step S1004.
  • FIG. 14 is a diagram showing an example of functional blocks of the point group encoding device 100 according to this embodiment.
  • FIG. 1 is a diagram showing a point cloud processing system 10 according to the present embodiment.
  • the point cloud processing system 10 includes 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 (bit stream) 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 bit stream.
  • 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 bit stream may be transmitted from the point cloud encoding device 100 to the point cloud decoding device 200 via a transmission path.
  • the bit stream 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 has 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 information decoding unit 2060, an inverse quantization unit 2070, a RAHT unit 2080, an LoD calculation unit 2090, an inverse lifting unit 2100, an inverse color transformation unit 2110, and a frame buffer 2120.
  • the geometric information decoding unit 2010 is configured to receive as input a bit stream related to geometric information (geometric information bit stream) from the bit streams output from the point cloud encoding device 100, and to decode the syntax.
  • the decoding process is, for example, a context-adaptive binary arithmetic decoding process.
  • the syntax includes control data (flags and parameters) for controlling the decoding process of the position information.
  • the tree synthesis unit 2020 is configured to receive as input the control data decoded by the geometric information decoding unit 2010 and an occurrence code indicating at which node in the tree (described later) the point group exists, and generate tree information indicating in which area in the decoding target space the point exists.
  • the decoding process of the occasion code may be configured to be performed within the tree synthesis unit 2020.
  • This process divides the space to be decoded into rectangular prisms, refers to the occupancy code to determine whether a point exists in each rectangular prism, divides the rectangular prism that contains the point into multiple rectangular prisms, and refers to the occupancy code.
  • tree information can be generated.
  • inter prediction when decoding such an occasion code, inter prediction, which will be described later, may be used.
  • a method called "Octree” can be used, which recursively performs octree division on the above-mentioned rectangular parallelepiped, always treating it as a cube, and a method called “QtBt” can be used, which performs quadtree division and binary tree division in addition to octree division. Whether or not to use "QtBt" is transmitted as control data from the point cloud encoding device 100.
  • the tree synthesis unit 2020 is configured to decode the coordinates of each point based on an arbitrary tree configuration determined by the point cloud encoding device 100.
  • the approximate surface synthesis unit 2030 is configured to generate approximate surface information using the tree information generated by the tree synthesis unit 2020, and to decode the point cloud based on the approximate surface information.
  • the approximate surface synthesis unit 2030 can generate approximate surface information and decode the point cloud using a method called "Trisoup", for example.
  • Trisoup a method called "Trisoup"
  • a specific processing example of "Trisoup” will be described later.
  • this processing can be omitted.
  • the geometric information reconstruction unit 2040 is configured to reconstruct the geometric information (position information in the coordinate system assumed by the decoding process) of each point of the point cloud data to be decoded, based on the tree information generated by the tree synthesis unit 2020 and the approximate surface information generated by the approximate surface synthesis unit 2030.
  • the inverse coordinate transformation unit 2050 is configured to receive the geometric information reconstructed by the geometric information reconstruction unit 2040 as input, transform it from the coordinate system assumed by the decoding process to the coordinate system of the output point cloud signal, and output position information.
  • the frame buffer 2120 is configured to receive the geometric information reconstructed by the geometric information reconstruction unit 2040 as an input and store it as a reference frame.
  • the stored reference frame is read from the frame buffer 2130 and used as a reference frame when the tree synthesis unit 2020 performs inter-prediction of temporally different frames.
  • the time at which the reference frame is to be used for each frame may be determined based on, for example, control data transmitted as a bit stream from the point cloud encoding device 100.
  • the attribute information decoding unit 2060 is configured to receive as input a bit stream related to attribute information (attribute information bit stream) from the bit streams output from the point cloud encoding device 100, and to decode the syntax.
  • the decoding process is, for example, a context-adaptive binary arithmetic decoding process.
  • the syntax includes control data (flags and parameters) for controlling the decoding process of the attribute information.
  • the attribute information decoding unit 2060 is also configured to decode the quantized residual information from the decoded syntax.
  • the inverse quantization unit 2070 is configured to perform an inverse quantization process 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, to generate inverse quantized residual information.
  • the dequantized residual information is output to either the RAHT unit 2080 or the LoD calculation unit 2090 depending on the characteristics of the point group to be decoded.
  • the control data decoded by the attribute information decoding unit 2060 specifies which unit the information is output to.
  • the RAHT unit 2080 is configured to receive the inverse quantized residual information generated by the inverse quantization unit 2070 and the geometric information generated by the geometric information reconstruction unit 2040 as input, and to decode the attribute information of each point using a type of Haar transform (inverse Haar transform in the decoding process) called RAHT (Region Adaptive Hierarchical Transform).
  • RAHT Region Adaptive Hierarchical Transform
  • the LoD calculation unit 2090 is configured to receive the geometric information generated by the geometric information reconstruction unit 2040 as input and generate the LoD (Level of Detail).
  • LoD is information for defining the reference relationship (the referencing point and the referenced point) to realize predictive coding, such as predicting attribute information of a certain point from attribute information of another point and encoding or decoding the prediction residual.
  • LoD is information that defines a hierarchical structure in which each point contained in the geometric information is classified into multiple levels, and the attributes of points belonging to lower levels are encoded or decoded using attribute information of points belonging to higher levels.
  • the inverse lifting unit 2100 is configured to decode attribute information of each point based on the hierarchical structure defined by the LoD, using the LoD generated by the LoD calculation unit 2090 and the inverse quantized residual information generated by the inverse quantization unit 2070.
  • the method described in the above-mentioned non-patent document 1 can be used.
  • the inverse color conversion unit 2110 is configured to perform inverse color conversion processing on 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 point cloud encoding device 100 side. Whether or not such inverse color conversion processing is performed 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 attribute information of each point in the point cloud through the above processing.
  • geometric information decoding unit 2010 The control data decoded by the geometric information decoding unit 2010 will be described below with reference to FIGS.
  • FIG. 3 shows an example of the structure of the encoded data (bit stream) received by the geometric information decoding unit 2010.
  • the bit stream may include a GPS2011.
  • a GPS2011 is also called a geometry parameter set, and is a collection of control data related to decoding of geometric information. A specific example will be described later.
  • Each GPS2011 includes at least GPS id information for identifying each GPS2011 when multiple GPS2011 exist.
  • the bit stream may include GSH2012A/2012B.
  • GSH2012A/2012B is also called a geometry slice header or geometry data unit header, and is a collection of control data corresponding to a slice, which will be described later.
  • slice will be used, but slice can also be read as data unit. Specific examples will be described later.
  • GSH2012A/2012B includes at least GPS id information for specifying the GPS2011 corresponding to each GSH2012A/2012B.
  • the bit stream may include slice data 2013A/2013B following GSH 2012A/2012B.
  • Slice data 2013A/2013B includes data that encodes geometric information.
  • An example of slice data 2013A/2013B is the occupancy code described below.
  • bit stream is structured so that each slice data 2013A/2013B corresponds to one GSH 2012A/2012B and one GPS 2011.
  • the GPS ID information is used to specify which GPS 2011 to refer to in GSH 2012A/2012B, so a common GPS 2011 can be used for multiple slice data 2013A/2013B.
  • GPS2011 does not necessarily have to be transmitted for each slice.
  • the bit stream can be configured so that GPS2011 is not encoded immediately before GSH2012B and slice data 2013B.
  • FIG. 3 is merely 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 bit stream.
  • the bitstream may include a sequence parameter set (SPS) 2001.
  • SPS sequence parameter set
  • the bitstream when transmitted, may be shaped into a configuration different from that shown in FIG. 3.
  • the bitstream may be combined with a bitstream decoded by an attribute information decoding unit 2060 (described later) and transmitted as a single bitstream.
  • Figure 4 shows an example of the syntax configuration of GPS2011.
  • syntax names explained below are merely examples. If the syntax functions explained below are similar, the syntax names may be different.
  • GPS2011 may include GPS ID information (gsps_geom_parameter_set_id) for identifying each GPS2011.
  • Descriptor column in Figure 4 indicates how each syntax is coded.
  • ue(v) indicates an unsigned zeroth-order exponential Golomb code, and u(1) indicates a 1-bit flag.
  • GPS2011 may include a flag (interprediction_enabled_flag) that controls whether or not interprediction is performed in the tree synthesis unit 2020.
  • interprediction_enabled_flag a flag that controls whether or not interprediction is performed in the tree synthesis unit 2020.
  • interprediction_enabled_flag when the value of interprediction_enabled_flag is "0", it may be defined that inter prediction is not performed, and when the value of interprediction_enabled_flag is "1", it may be defined that inter prediction is performed.
  • interpretation_enabled_flag may be included in SPS2001 instead of GPS2011.
  • GPS2011 may include a flag (geom_tree_type) for controlling the tree type in the tree synthesis unit 2020. For example, when the value of geom_tree_type is "1", it may be defined that predictive coding is used, and when the value of geom_tree_type is "0", it may be defined that predictive coding is not used.
  • geom_tree_type For example, when the value of geom_tree_type is "1", it may be defined that predictive coding is used, and when the value of geom_tree_type is "0", it may be defined that predictive coding is not used.
  • geom_tree_type may be included in SPS2001 instead of GPS2011.
  • GPS2011 may include a flag (geom_angular_enabled) for controlling whether processing is performed in angular mode in the tree synthesis unit 2020.
  • geom_angular_enabled when the value of geom_angular_enabled is "1", it may be defined that predictive coding is performed in angular mode, and when the value of geom_angular_enabled is "0", it may be defined that predictive coding is not performed in angular mode.
  • geom_angular_enabled may be included in SPS2001 instead of GPS2011.
  • GPS2011 may include a flag (reference_mode_flag) that controls the number of reference frames for inter prediction in the tree synthesis unit 2020.
  • reference_mode_flag a flag that controls the number of reference frames for inter prediction in the tree synthesis unit 2020.
  • reference_mode_flag if the value of reference_mode_flag is "0", the number of reference frames may be defined as 1, and if the value of reference_mode_flag is "1", the number of reference frames may be defined as 2.
  • reference_mode_flag may be included in SPS2001 instead of GPS2011.
  • GPS2011 may include syntax (reference_id) that specifies the reference frame to be used in inter prediction by the tree synthesis unit 2020.
  • reference_id may be expressed as an index number indicating which of the frames contained in the frame buffer 2120 is to be used as a reference frame.
  • the index numbers may be configured to include the same number as the number of reference frames specified by reference_mode_flag.
  • reference_id may be included in SPS2001 instead of GPS2011.
  • the number of frames specified by reference_mode_flag may be selected as reference frames from the frames processed immediately before the current frame.
  • GPS2011 may include a flag (global_motion_enabled_flag) that controls whether or not global motion compensation is performed for inter prediction in the tree synthesis unit 2020.
  • global_motion_enabled_flag a flag that controls whether or not global motion compensation is performed for inter prediction in the tree synthesis unit 2020.
  • global_motion_enabled_flag For example, if the value of global_motion_enabled_flag is "0", it may be defined that global motion compensation is not performed, and if the value of global_motion_enabled_flag is "1", it may be defined that global motion compensation is performed.
  • each slice data may include a global motion vector.
  • global_motion_enabled_flag may be included in SPS2001 instead of GPS2011.
  • Fig. 5 is a flowchart showing an example of the processing in the tree merging unit 2020. Note that the following describes an example in which trees are merged using "Predictive geometry coding".
  • Predictive geometry Predictive geometry coding
  • Predictive geometry coding Predictive geometry coding
  • Predictive tree Predictive tree
  • step S501 the tree synthesis unit 2020 determines whether to use inter prediction based on the value of interprediction_enabled_flag.
  • step S502 If the tree synthesis unit 2020 determines that inter prediction is to be used, the process proceeds to step S502; if it determines that inter prediction is not to be used, the process proceeds to step S505.
  • step S502 the tree synthesis unit 2020 acquires a number of reference frames based on the value of reference_mode_flag. The specific processing of step S502 will be described later. After acquiring the reference frames, the tree synthesis unit 2020 proceeds to step S503.
  • step S503 the tree synthesis unit 2020 determines whether to perform global motion compensation based on global_motion_enabled_flag.
  • step S504 If the tree synthesis unit 2020 determines that global motion compensation is to be performed, the process proceeds to step S504; if it determines that global motion compensation is not to be performed, the process proceeds to step S505.
  • step S504 the tree synthesis unit 2020 performs global motion compensation on the reference frame obtained in step S502.
  • the specific processing of step S504 will be described later.
  • the tree synthesis unit 2020 proceeds to step S505.
  • step S505 the tree synthesis unit 2020 decodes the slice data. The specific processing of step S505 will be described later. After decoding the slice data, the tree synthesis unit 2020 proceeds to step S506.
  • step S506 the tree synthesis unit 2020 ends the process. Note that the processes in steps S503 and S504, that is, the determination and execution of global motion compensation, may be performed in the slice data decoding process in step S505.
  • FIG. 6 is a flowchart showing an example of the processing in step S502.
  • step S601 the tree synthesis unit 2020 determines whether the reference frame ID list specified by reference_id is empty.
  • step S605 If the tree synthesis unit 2020 determines that the reference frame ID list is empty, it proceeds to step S605, and if it determines that the reference frame ID list is not empty, it proceeds to step S602.
  • step S602 the tree synthesis unit 2020 extracts the first element from the reference frame ID list and sets it as the reference frame ID. After setting the reference frame ID, the tree synthesis unit 2020 proceeds to step S603.
  • step S603 the tree synthesis unit 2020 selects a reference frame from the frame buffer 2120 based on the reference frame ID. The method of storing the decoded frame in the frame buffer 2120 will be described later. After selecting the reference frame, the tree synthesis unit 2020 proceeds to step S604.
  • step S604 the tree synthesis unit 2020 adds the selected reference frame to the reference frame list. After completing the addition to the reference frame list, the tree synthesis unit 2020 proceeds to step S601.
  • step S605 the tree synthesis unit 2020 ends the processing of step S502.
  • the tree synthesis unit 2020 may be configured to perform inter prediction using multiple reference frames in predictive coding. This can improve the performance of inter prediction.
  • FIG. 7 shows an example of how a decoded frame is stored in the frame buffer 2120.
  • the frame buffer 2120 may store previously decoded frames as a list.
  • Frame decoding may be performed in chronological order, such as at time t, time t+1, ..., and the decoded frames may be added to the frame buffer 2120 in order from the top of the list.
  • indexes may be assigned in order from the top.
  • Adding decoded frames to the frame buffer 2120 does not have to be done for every frame, and one or a specified number of frames may be added each time the decoding of a specified number of frames is completed.
  • the frame buffer 2120 may be configured to store multiple decoded frames in order of most recently decoded, and to discard older frames when the maximum number of frames that can be stored is exceeded. This makes it possible to use multiple reference frames in inter prediction while minimizing memory usage.
  • FIG. 8 shows an example of the global motion compensation process in step S504.
  • global motion compensation is a process that corrects the global position shift for each frame.
  • step S504 the tree synthesis unit 2020 uses the global motion vector decoded by the geometric information decoding unit 2010 to correct the reference frame so as to eliminate the global positional shift between the reference frame obtained in step S502 and the frame to be processed.
  • the tree synthesis unit 2020 may add a global motion vector corresponding to all coordinates in the reference frame.
  • the tree synthesis unit 2020 may use, for example, the method shown in FIG. 8-1 or the method shown in FIG. 8-2 as a correction method.
  • the method shown in Figure 8-1 is a method of adding global motion vectors 1 and 2 for the frame to be processed to multiple reference frames 1 and 2, respectively. This makes it possible to apply global motion compensation to multiple reference frames.
  • the method shown in Figure 8-2 adds global motion vector 1 for the frame to be processed to reference frame 1, and adds global motion vector 1 and global motion vector 2 for reference frame 2 relative to reference frame 1 to reference frame 2. This makes it possible to apply global motion compensation to multiple reference frames while minimizing the amount of data required when transmitting the global motion vector.
  • global motion vector 1 for the frame to be processed of the first reference frame (reference frame 1) is retained and may be reused in subsequent processing. This reduces the amount of data required to transmit the global motion vector.
  • global motion vector 1 may be reused as global motion vector 2.
  • the global motion vector may include an index or the like indicating which reference frame it corresponds to.
  • FIG. 9 is a flowchart showing an example of the slice data decoding process in step S505.
  • step S901 the tree synthesis unit 2020 constructs a prediction tree corresponding to the slice data.
  • the slice data may include a depth-first list of the number of children for each node in the prediction tree.
  • the prediction tree may be constructed by starting with the root node and adding the number of children to each node in depth-first order, as specified in the list above.
  • step S902 the tree synthesis unit 2020 determines whether processing of all nodes in the prediction tree has been completed.
  • step S907 If the tree synthesis unit 2020 determines that processing of all nodes of the prediction tree has been completed, it proceeds to step S907, and if it determines that processing of all nodes of the prediction tree has not been completed, it proceeds to step S903.
  • step S903 the tree synthesis unit 2020 selects a node to be processed from the prediction tree.
  • the tree synthesis unit 2020 may process the nodes of the prediction tree in depth-first order starting from the root node, or may select the node next to the node processed immediately before as the node to be processed.
  • step S904 After completing the selection of the node to be processed, the tree synthesis unit 2020 proceeds to step S904.
  • step S904 the tree synthesis unit 2020 decodes the prediction residual of the coordinates of the point corresponding to the node to be processed.
  • the slice data may contain a depth-first ordered list of prediction residuals for each node in the prediction tree.
  • step S905 the tree synthesis unit 2020 predicts the coordinates of the point corresponding to the node to be processed. A specific method of coordinate prediction will be described later. After completing the coordinate prediction, the tree synthesis unit 2020 proceeds to step S906.
  • step S906 the tree synthesis unit 2020 reconstructs the coordinates of the point corresponding to the node being processed.
  • the tree synthesis unit 2020 may obtain the coordinates of the point by adding the residual decoded in step S904 and the coordinates predicted in step S905.
  • the tree synthesis unit 2020 may reconstruct the coordinates using the methods described in Non-Patent Documents 1 and 2, taking into account that the prediction residual and predicted coordinates are values based on a spherical coordinate system.
  • the tree synthesis unit 2020 may convert the reconstructed coordinates from a spherical coordinate system to a Cartesian coordinate system using the methods described in Non-Patent Documents 1 and 2.
  • step S907 the tree synthesis unit 2020 ends the processing of step S505.
  • FIG. 10 is a flowchart showing an example of the coordinate prediction process in step S905.
  • step S1001 the tree synthesis unit 2020 determines whether to perform inter prediction based on interprediction_enabled_flag.
  • step S1002 If the tree synthesis unit 2020 determines that inter prediction is to be performed, the process proceeds to step S1002; if it determines that inter prediction is not to be performed, the process proceeds to step S1003.
  • step S1002 the tree synthesis unit 2020 performs inter prediction, which predicts the coordinates of the node to be processed based on the coordinates of the node in the reference frame.
  • the node used for prediction is called a predictor. There may be multiple predictors. A specific method of inter prediction will be described later.
  • step S1004 After inter prediction is completed, the tree synthesis unit 2020 proceeds to step S1004.
  • step S1003 the tree synthesis unit 2020 performs intra prediction to predict the coordinates of the node to be processed based on the points of the parent node of the node to be processed.
  • the node used for prediction is called a predictor. There may be multiple predictors.
  • a method of intra prediction the same methods as those described in Non-Patent Documents 1 and 2 may be used.
  • step S1004 After completing intra prediction, the tree synthesis unit 2020 proceeds to step S1004.
  • step S1004 the tree synthesis unit 2020 assigns an index to the predictor obtained in inter prediction or intra prediction.
  • the method of assigning an index to the predictor obtained in intra prediction may be the same as that described in Non-Patent Documents 1 and 2. A specific method of assigning an index to the predictor obtained in inter prediction will be described later.
  • the tree synthesis unit 2020 may skip the process of step S1004.
  • step S1005 the tree synthesis unit 2020 selects the predictor to use.
  • the tree synthesis unit 2020 may select that predictor.
  • the slice data may include one predictor index, and the tree synthesis unit 2020 may select the predictor corresponding to such index.
  • the coordinates of the selected predictor may be used as the predicted value of the coordinates of the node to be processed.
  • step S1006 After completing the selection of the predictor, the tree synthesis unit 2020 proceeds to step S1006.
  • step S1006 the tree synthesis unit 2020 ends the processing of step S905.
  • FIGS. 11 and 12 show an example of the inter prediction process in step S1002.
  • FIG. 11 shows an example of inter prediction processing when there is one reference frame.
  • the tree synthesis unit 2020 may select a node from the reference frame that corresponds to the parent node of the node to be processed, and use the child node of the selected node, or the child node and grandchild node of such a node, as a predictor.
  • the tree synthesis unit 2020 may associate the parent node of the processing frame with the node of the reference frame based on the decoded point information associated with the node, and may associate points with the same or similar point information.
  • the tree synthesis unit 2020 may use coordinates as point information, or in the case of angular mode, may use a laser ID or azimuth angle.
  • FIG. 12 shows an example of inter prediction processing when there are multiple reference frames.
  • the tree synthesis unit 2020 selects a node corresponding to the parent node of the node to be processed from each reference frame by selecting a node corresponding to the parent node of the node to be processed from reference frame 1, and selecting a node corresponding to the node selected in reference frame 1 from reference frame 2.
  • the tree synthesis unit 2020 selects the child node of a node selected from each reference frame, or the child node and grandchild node of such a node, as a predictor. This makes it possible to select a predictor from multiple reference frames.
  • the tree synthesis unit 2020 selects nodes corresponding to the parent node of the node to be processed from reference frames 1 and 2 as a method of selecting a node corresponding to the parent node of the node to be processed from each reference frame.
  • the tree synthesis unit 2020 sets the child node of the associated node from each reference frame, or the child node and grandchild node of such a node, as a predictor. This makes it possible to select predictors from multiple reference frames.
  • the tree synthesis unit 2020 may use all predictors found in multiple reference frames as predictors, or may aggregate or select them.
  • the tree synthesis unit 2020 may, for example, use a new predictor that is the average of all predictors instead of all predictors.
  • the tree synthesis unit 2020 may use a new predictor that takes the average of each of the child nodes or grandchild nodes in each reference frame.
  • the tree synthesis unit 2020 may take a weighted average so as to give more importance to predictors obtained from reference frames that are temporally closer to the frame being processed.
  • the tree synthesis unit 2020 may use child nodes and grandchild nodes from reference frame 1 as predictors, and use only child nodes from reference frame 2 as predictors, so that the reference frame that is closer in time to the processing target frame has more predictors.
  • the tree synthesis unit 2020 may rank all predictors obtained from multiple reference frames based on a certain criterion, and select a pre-specified number of predictors from the top.
  • the certain criterion may be, for example, the azimuth angle value in the case of angular mode.
  • FIG. 13 shows an example of the process of assigning an index to a predictor obtained by inter prediction in step S1004.
  • FIG. 13-1 shows a method of assigning indexes to predictors in the order of the reference frames to which the predictors belong.
  • the tree synthesis unit 2020 may assign indexes to predictors that belong to the same reference frame in the order of child nodes and grandchild nodes.
  • Figure 13-2 shows a method for assigning indexes to point information held by predictor nodes in ascending azimuth angle order in angular mode.
  • FIG. 13C shows a method of assigning indexes to points held by nodes of a predictor in order of similarity to the parent node of the processing target node.
  • Point group encoding device 100 Point group encoding device 100
  • Fig. 14 is a diagram showing an example of functional blocks of the point cloud encoding device 100 according to this embodiment.
  • the point cloud encoding device 100 has 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, a geometric information reconstruction unit 1060, a color conversion unit 1070, an attribute transfer unit 1080, a RAHT unit 1090, an LoD calculation unit 1100, a lifting unit 1110, an attribute information quantization unit 1120, an 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 cloud to any different coordinate system.
  • the coordinate transformation may, for example, transform the x, y, z coordinates of the input point cloud into any s, t, u coordinates by rotating the input point cloud.
  • the coordinate system of the input point cloud may be used as is.
  • the geometric information quantization unit 1020 is configured to quantize the position information of the input point group after coordinate transformation and to remove points with overlapping coordinates.
  • the quantization step size is 1, the position information of the input point group and the position information after quantization match. In other words, when the quantization step size is 1, it is equivalent to not performing quantization.
  • the tree analysis unit 1030 is configured to receive position information of the quantized point cloud as input, and generate an occurrence code that indicates at which node in the encoding target space the point exists, based on the tree structure described below.
  • the tree analysis unit 1030 is configured to generate a tree structure by recursively dividing the encoding target space into rectangular parallelepipeds.
  • a tree structure can be generated by recursively dividing the rectangular parallelepiped into multiple rectangular parallelepipeds until the rectangular parallelepiped reaches a specified size.
  • Each such rectangular parallelepiped is called a node.
  • Each rectangular parallelepiped generated by dividing a node is called a child node, and the occurrence code is expressed as 0 or 1 to indicate whether or not a point is contained within a child node.
  • the tree analysis unit 1030 is configured to generate an occupancy code while recursively splitting the node until it reaches a predetermined size.
  • a method called "Octree” can be used that recursively performs octree division on the above-mentioned rectangular parallelepiped, always treating it as a cube, and a method called “QtBt” can be used that performs quadtree division and binary tree division in addition to octree division.
  • 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 using the procedures described in Figures 5 to 12.
  • the approximate surface analysis unit 1040 is configured to generate approximate surface information using the tree information generated by the tree analysis unit 1030.
  • the approximate surface analysis unit 1040 may be configured to generate approximate surface information using, for example, a method called "Trisoup.” Furthermore, when decoding a sparse point cloud acquired by Lidar or the like, this process can be omitted.
  • the geometric information encoding unit 1050 is configured to generate a bit stream (geometric information bit stream) by encoding 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.
  • the bit stream may include, for example, the syntax described in FIG. 4.
  • the encoding process is, for example, a context-adaptive binary arithmetic encoding process.
  • the syntax includes control data (flags and parameters) for controlling the decoding process of the position information.
  • the geometric information reconstruction unit 1060 is configured to reconstruct the geometric information of each point of the point cloud data to be encoded (the coordinate system assumed by the encoding process, i.e., the position information after the coordinate transformation in the coordinate transformation unit 1010) 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 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.
  • frame buffer 1140 may be configured to hold reference frames in a manner similar to that described for frame buffer 2120 in FIG. 7.
  • the stored reference frame is read from the frame buffer 1140 and used as the reference frame when inter-prediction of temporally different frames is performed in the tree analysis unit 1030.
  • which reference frame to use for each frame may be determined based on, for example, the value of a cost function representing the encoding efficiency, and information on the reference frame to be used may be transmitted to the point cloud decoding device 200 as control data.
  • the color conversion unit 1070 is configured to perform color conversion when the input attribute information is color information. It is not necessary to perform color conversion, and whether or not to perform color conversion processing is coded as part of the control data and transmitted to the point cloud decoding device 200.
  • the attribute transfer unit 1080 is configured to correct the attribute values so as to minimize distortion of the attribute information, based on the position information of the input point cloud, the position information of the point cloud after reconstruction in the geometric information reconstruction unit 1060, and the attribute information after color change in the color conversion unit 1070.
  • a specific correction method for example, the method described in Non-Patent Document 2 can be applied.
  • the RAHT unit 1090 is configured to receive the attribute information transferred by the attribute transfer unit 1080 and the geometric information generated by the geometric information reconstruction unit 1060 as input, and to generate residual information for each point using a type of Haar transform called RAHT (Region Adaptive Hierarchical Transform).
  • RAHT Regular 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 the LoD (Level of Detail).
  • LoD is information for defining the reference relationship (the referencing point and the referenced point) to realize predictive coding, such as predicting attribute information of a certain point from attribute information of another point and encoding or decoding the prediction residual.
  • LoD is information that defines a hierarchical structure in which each point contained in the geometric information is classified into multiple levels, and the attributes of points belonging to lower levels are encoded or decoded using attribute information of points belonging to higher levels.
  • the lifting unit 1110 is configured to generate residual information by a lifting process using the LoD generated by the LoD calculation unit 1100 and the attribute information after attribute transfer by the attribute transfer unit 1080.
  • the method described in the above-mentioned non-patent document 2 may be used.
  • the attribute information quantization unit 1120 is configured to quantize the residual information output from the RAHT unit 1090 or the lifting unit 1110.
  • a quantization step size of 1 is equivalent to no quantization being performed.
  • the attribute information encoding unit 1130 is configured to perform encoding processing using the quantized residual information output from the attribute information quantization unit 1120 as syntax, and generate a bit stream related to the attribute information (attribute information bit stream).
  • the encoding process is, for example, a context-adaptive binary arithmetic encoding process.
  • the syntax includes control data (flags and parameters) for controlling the decoding process of the attribute information.
  • the point cloud encoding device 100 is configured to perform encoding processing using the position information and attribute information of each point in the point cloud as input, and to output a geometric information bit stream and an attribute information bit stream through the above processing.
  • point cloud encoding device 100 and point cloud decoding device 200 may be realized as a program that causes a computer to execute each function (each process).
  • the present invention has been described using the point cloud encoding device 100 and the point cloud decoding device 200 as examples, but the present invention is not limited to such examples and can be similarly applied to a point cloud encoding/decoding system having the functions of the point cloud encoding device 100 and the point cloud decoding device 200.
  • Point cloud processing system 100 Point cloud encoding device 1010. Coordinate conversion 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 For example, attribute Information encoding unit 1140...frame buffer 200...point cloud 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 calculation unit 2100...inverse lifting unit 2110...inverse color transformation 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, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本発明に係る点群復号装置200は、Predictive codingにおいて、複数の参照フレームを用いてインター予測を行うツリー合成部2020を備える。

Description

点群復号装置、点群復号方法及びプログラム
 本発明は、点群復号装置、点群復号方法及びプログラムに関する。
 非特許文献1には、Predictive codingを行う技術が開示されている。
 また、非特許文献2では、Predictive cordingにおいて、1つの参照フレームから選出した予測器を用いてインター予測を行う技術が開示されている
G-PCC codec description、ISO/IEC JTC1/SC29/WG7 N00271 G-PCC 2nd Edition codec description、ISO/IEC JTC1/SC29/WG7 N00314
 しかしながら、非特許文献1で開示されている技術では、インター予測をしないため、符号化の圧縮性能が損なわれることがあるという問題点があった。
 また、非特許文献2で開示されている技術では、参照フレームが1つだけであるため、参照フレーム上の点にノイズが多い場合や遮蔽等による欠損が含まれていた場合に、適切な予測器を選択できず、符号化の圧縮性能が損なわれることがあるという問題点があった。
 そこで、本発明は、上述の課題に鑑みてなされたものであり、符号化の圧縮性能を向上させることができる点群復号装置、点群復号方法及びプログラムを提供することを目的とする。
 本発明の第1の特徴は、点群復号装置であって、Predictive codingにおいて、複数の参照フレームを用いてインター予測を行うツリー合成部を備えることを要旨とする。
 本発明の第2の特徴は、点群復号方法であって、Predictive codingにおいて、複数の参照フレームを用いてインター予測を行う工程を有することを要旨とする。
 本発明の第3の特徴は、コンピュータを、点群復号装置として機能させるプログラムであって、前記点群復号装置は、Predictive codingにおいて、複数の参照フレームを用いてインター予測を行うツリー合成部を備えることを要旨とする。
 本発明によれば、符号化の圧縮性能を向上させることができる点群復号装置、点群復号方法及びプログラムを提供することができる。
図1は、一実施形態に係る点群処理システム10の構成の一例を示す図である。 図2は、一実施形態に係る点群復号装置200の機能ブロックの一例を示す図である。 図3は、一実施形態に係る点群復号装置200の幾何情報復号部2010で受信する符号化データ(ビットストリーム)の構成の一例を示す図である。 図4は、GPS2011のシンタックス構成の一例を示す図である。 図5は、一実施形態に係る点群復号装置200のツリー合成部2020における処理の一例を示すフローチャートである 図6は、ステップS502における処理の一例を示すフローチャートである。 図7は、フレームバッファ2120における復号済みフレームの格納方法の一例を示す図である。 図8-1は、ステップS504におけるグローバル動き補償の処理の一例を示す図である。 図8-2は、ステップS504におけるグローバル動き補償の処理の一例を示す図である。 図9は、ステップS505におけるスライスデータの復号処理の一例を示すフローチャートである。 図10は、ステップS905における座標予測の処理の一例を示すフローチャートである。 図11は、ステップS1002におけるインター予測の処理の一例を示す図である。 図12-1は、ステップS1002におけるインター予測の処理の一例を示す図である。 図12-2は、ステップS1002におけるインター予測の処理の一例を示す図である。 図13-1は、ステップS1004におけるインター予測で求められた予測器へのインデックス付与の処理の一例を示す図である。 図13-2は、ステップS1004におけるインター予測で求められた予測器へのインデックス付与の処理の一例を示す図である。 図13-3は、ステップS1004におけるインター予測で求められた予測器へのインデックス付与の処理の一例を示す図である。 図14は、本実施形態に係る点群符号化装置100の機能ブロックの一例について示す図である。
 以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態における構成要素は、適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
(第1実施形態)
 以下、図1~図14を参照して、本発明の第1実施形態に係る点群処理システム10について説明する。図1は、本実施形態に係る実施形態に係る点群処理システム10を示す図である。
 図1に示すように、点群処理システム10は、点群符号化装置100及び点群復号装置200を有する。
 点群符号化装置100は、入力点群信号を符号化することによって符号化データ(ビットストリーム)を生成するように構成されている。点群復号装置200は、ビットストリームを復号することによって出力点群信号を生成するように構成されている。
 なお、入力点群信号及び出力点群信号は、点群内の各点の位置情報と属性情報とから構成される。属性情報は、例えば、各点の色情報や反射率である。
 ここで、かかるビットストリームは、点群符号化装置100から点群復号装置200に対して伝送路を介して送信されてもよい。また、ビットストリームは、記憶媒体に格納された上で、点群符号化装置100から点群復号装置200に提供されてもよい。
(点群復号装置200)
 以下、図2を参照して、本実施形態に係る点群復号装置200について説明する。図2は、本実施形態に係る点群復号装置200の機能ブロックの一例について示す図である。
 図2に示すように、点群復号装置200は、幾何情報復号部2010と、ツリー合成部2020と、近似表面合成部2030と、幾何情報再構成部2040と、逆座標変換部2050と、属性情報復号部2060と、逆量子化部2070と、RAHT部2080と、LoD算出部2090と、逆リフティング部2100と、逆色変換部2110と、フレームバッファ2120とを有する。
 幾何情報復号部2010は、点群符号化装置100から出力されるビットストリームのうち、幾何情報に関するビットストリーム(幾何情報ビットストリーム)を入力とし、シンタックスを復号するように構成されている。
 復号処理は、例えば、コンテクスト適応二値算術復号処理である。ここで、例えば、シンタックスは、位置情報の復号処理を制御するための制御データ(フラグやパラメータ)を含む。
 ツリー合成部2020は、幾何情報復号部2010によって復号された制御データ及び後述するツリー内のどのノードに点群が存在するかを示すoccupancy codeを入力として、復号対象空間内のどの領域に点が存在するかというツリー情報を生成するように構成されている。
 なお、occupancy codeの復号処理をツリー合成部2020内部で行うよう構成されていてもよい。
 本処理は、復号対象空間を直方体で区切り、occupancy codeを参照して各直方体内に点が存在するかを判断し、点が存在する直方体を複数の直方体に分割し、occupancy codeを参照するという処理を再帰的に繰り返すことで、ツリー情報を生成することができる。
 ここで、かかるoccupancy codeの復号に際して、後述するインター予測を用いてもよい。
 本実施形態では、上述の直方体を常に立方体として8分木分割を再帰的に行う「Octree」と呼ばれる手法、及び、8分木分割に加え、4分木分割及び2分木分割を行う「QtBt」と呼ばれる手法を使用することができる。QtBt」を使用するか否かは、制御データとして点群符号化装置100側から伝送される。
 或いは、制御データによってPredictive geometry codingを使用するように指定された場合、ツリー合成部2020は、点群符号化装置100において決定した任意のツリー構成に基づいて各点の座標を復号するように構成されている。
 近似表面合成部2030は、ツリー合成部2020によって生成されたツリー情報を用いて近似表面情報を生成し、かかる近似表面情報に基づいて点群を復号するように構成されている。
 近似表面情報は、例えば、物体の3次元点群データを復号する際等において、点群が物体表面に密に分布しているような場合に、個々の点群を復号するのではなく、点群の存在領域を小さな平面で近似して表現したものである。
 具体的には、近似表面合成部2030は、例えば、「Trisoup」と呼ばれる手法で、近似表面情報を生成し、点群を復号することができる。「Trisoup」の具体的な処理例については後述する。また、Lidar等で取得した疎な点群を復号する場合は、本処理を省略することができる。
 幾何情報再構成部2040は、ツリー合成部2020によって生成されたツリー情報及び近似表面合成部2030によって生成された近似表面情報を元に、復号対象の点群データの各点の幾何情報(復号処理が仮定している座標系における位置情報)を再構成するように構成されている。
 逆座標変換部2050は、幾何情報再構成部2040によって再構成された幾何情報を入力として、復号処理が仮定している座標系から、出力点群信号の座標系に変換を行い、位置情報を出力するように構成されている。
 フレームバッファ2120は、幾何情報再構成部2040によって再構成された幾何情報を入力として、参照フレームとして保存するように構成されている。保存した参照フレームは、ツリー合成部2020において時間的に異なるフレームのインター予測を行う場合に、フレームバッファ2130から読み出されて参照フレームとして使用される。
 ここで、各フレームに対してどの時刻の参照フレームを用いるかどうかは、例えば、点群符号化装置100からビットストリームとして伝送されてくる制御データに基づいて決定されてもよい。
 属性情報復号部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に含んでいてもよい。
 GPS2011は、ツリー合成部2020でツリータイプを制御するためのフラグ(geom_tree_type)を含んでもよい。例えば、geom_tree_typeの値が「1」の場合は、Predicitive codingを使用すると定義し、geom_tree_typeの値が「0」の場合は、Predicitive codingを使用しないように定義されていてもよい。
 なお、geom_tree_typeが、GPS2011ではなくSPS2001に含んでいてもよい。
 GPS2011は、ツリー合成部2020で、Angularモードとして処理を行うかどうかを制御するためのフラグ(geom_angular_enabled)を含んでもよい。
 例えば、geom_angular_enabledの値が「1」の場合は、AngularモードとしてPredictive codingを行うと定義し、geom_angular_enabledの値が「0」の場合は、AngularモードとしてPredictive codingを行わないように定義されていてもよい。
 なお、geom_angular_enabledが、GPS2011ではなくSPS2001に含んでいてもよい。
 GPS2011は、ツリー合成部2020でインター予測の参照フレームの数を制御するフラグ(reference_mode_flag)を含んでもよい。
 例えば、reference_mode_flagの値が「0」の場合は、参照フレームの数は1と定義し、reference_mode_flagの値が「1」の場合は、参照フレームの数は2と定義してもよい。
 なお、reference_mode_flagが、GPS2011ではなくSPS2001に含んでいてもよい。
 GPS2011は、ツリー合成部2020のインター予測で使用する参照フレームを規定するシンタックス(reference_id)を含んでいてもよい。
 例えば、reference_idはフレームバッファ2120に含まれるフレームのうち参照フレームとして使用するフレームを示すインデックス番号として表現されていてもよい。インデックス番号は、reference_mode_flagで規定される参照フレームの数と同数が含まれるように構成してもよい。
 なお、reference_idが、GPS2011ではなくSPS2001に含んでいてもよい。
 reference_idの代わりに、現在のフレームの直前に処理されたフレームから、reference_mode_flagで規定される数のフレームを参照フレームとして選択してもよい。
 GPS2011は、ツリー合成部2020でインター予測のためにグローバル動き補償を行うか否かを制御するフラグ(global_motion_enabled_flag)を含んでもよい。
 例えば、global_motion_enabled_flagの値が「0」の場合は、グローバル動き補償を行わないと定義し、global_motion_enabled_flagの値が「1」の場合は、グローバル動き補償を行うと定義してもよい。
 グローバル動き補償を行う場合、各スライスデータには、グローバル動きベクターが含まれていてもよい。
 なお、global_motion_enabled_flagは、GPS2011ではなくSPS2001に含んでいてもよい。
(ツリー合成部2020)
 以下、図5~図13を用いてツリー合成部2020の処理について説明する。図5は、ツリー合成部2020における処理の一例を示すフローチャートである。なお、以下では「Predictive geometry coding」を使用してツリーを合成する場合の例について説明する。
 なお、「Predictive cording」の代わりに「Predictive geometry」、「Predictive geometry coding」、「Predictive tree」等の呼称が用いられる場合もある。
 図5に示すように、ステップS501において、ツリー合成部2020は、interprediction_enabled_flagの値に基づき、インター予測を使用するかどうかを判定する。
 ツリー合成部2020は、インター予測を使用すると判定した場合、ステップS502へ進み、インター予測を使用しないと判定した場合、ステップS505へ進む。
 ステップS502において、ツリー合成部2020は、reference_mode_flagの値に基づく数の参照フレームを取得する。ステップS502の具体的な処理は、後述する。ツリー合成部2020は、参照フレームを取得した後、ステップS503に進む。
 ステップS503において、ツリー合成部2020は、global_motion_enabled_flagに基づき、グローバル動き補償を行うかどうかを判定する。
 ツリー合成部2020は、グローバル動き補償を行うと判定した場合、ステップS504へ進み、グローバル動き補償を行わないと判定した場合、ステップS505へ進む。
 ステップS504において、ツリー合成部2020は、ステップS502で取得した参照フレームに対してグローバル動き補償を行う。ステップS504の具体的な処理は、後述する。ツリー合成部2020は、グローバル動き補償を行った後、ステップS505に進む。
 ステップS505において、ツリー合成部2020は、スライスデータの復号を行う。ステップS505の具体的な処理は、後述する。ツリー合成部2020は、スライスデータを復号した後、ステップS506へ進む。
 ステップS506において、ツリー合成部2020は、処理を終了する。なお、ステップS503及びステップS504の処理、つまり、グローバル動き補償の判定及び実行は、ステップS505のスライスデータの復号処理の中で行われてもよい。
 図6は、ステップS502における処理の一例を示すフローチャートである。
 ステップS601において、ツリー合成部2020は、reference_idで規定される参照フレームIDリストが空かどうか判定する。
 ツリー合成部2020は、参照フレームIDリストが空であると判定した場合、ステップS605に進み、参照フレームIDリストが空でないと判定した場合、ステップS602に進む。
 ステップS602において、ツリー合成部2020は、参照フレームIDリストの先頭の要素を取り出し参照フレームIDとしてセットする。ツリー合成部2020は、参照フレームIDのセットが完了した後、ステップS603に進む。
 ステップS603において、ツリー合成部2020は、フレームバッファ2120から参照フレームIDに基づき参照フレームを選択する。フレームバッファ2120における復号済みフレームの格納方法については、後述する。ツリー合成部2020は、参照フレームを選択した後、ステップS604に進む。
 ステップS604において、ツリー合成部2020は、選択した参照フレームを参照フレームリストに追加する。ツリー合成部2020は、参照フレームリストへの追加が完了した後、ステップS601へ進む。
 ステップS605において、ツリー合成部2020は、ステップS502の処理を終了する。
 以上のように、ツリー合成部2020は、Predictive cordingにおいて、複数の参照フレームを用いてインター予測を行うよう構成されていてもよい。これにより、インター予測の性能が向上できる。
 図7は、フレームバッファ2120における復号済みフレームの格納方法の一例を示す図である。
 フレームバッファ2120には、以前に復号されたフレームがリストとして記憶されているとしてもよい。
 フレームの復号は、時刻t、時刻t+1、…と時系列順に行われているとしてもよく、復号されたフレームは、フレームバッファ2120のリストの先頭から順に追加されるとしてもよい。
 かかるリスト内では、先頭から順にIndex(インデックス)が振られているとしてもよい。
 リストの長さには、最大数の制限が設けられており、最大数を超えた場合には、リストの末尾の要素から削除されるとしてもよい。
 復号されたフレームのフレームバッファ2120への追加は、全フレームで行われなくともよく、規定の数のフレームの復号が完了する毎に、1或いは規定の数のフレームが追加されるとしてもよい。
 以上のように、フレームバッファ2120は、復号されたフレームを最近復号されたものから順に複数保持し、保持できる最大数を超えた場合に古いフレームを棄却するように構成されてもよい。 これにより、メモリの使用量を抑えながらインター予測で複数の参照フレームを利用することができる。
 図8は、ステップS504におけるグローバル動き補償の処理の一例を示す図である。
 ここで、グローバル動き補償は、フレームごとの大域的な位置ずれを補正する処理である。
 ステップS504において、ツリー合成部2020は、幾何情報復号部2010によって復号されたグローバル動きベクターを用いて、ステップS502で取得した参照フレームと処理対象フレームとの間の大域的な位置ずれを解消するように参照フレームを補正する。
 例えば、ツリー合成部2020は、参照フレームの全ての座標に対応するグローバル動きベクターを足してもよい。
 参照フレームが、複数ある場合、ツリー合成部2020は、補正の方法として、例えば、図8-1に示す方法、或いは、図8-2に示す方法を用いてもよい。
 図8-1に示す方法は、複数の参照フレーム1、2のそれぞれに対して、処理対象フレームに対するグローバル動きベクター1、2を足す方法である。これにより、複数の参照フレームにグローバル動き補償を適用することができる。
 図8-2に示す方法は、参照フレーム1に対しては、処理対象フレームに対するグローバル動きベクター1を足し、参照フレーム2に対しては、グローバル動きベクター1と、参照フレーム2の参照フレーム1に対するグローバル動きベクター2とを足す方法である。これにより、グローバル動きベクターの伝送時のデータ量を抑えながら複数の参照フレームにグローバル動き補償を適用することができる。
 図8-2に示す方法では、先頭の参照フレーム(参照フレーム1)の処理対象フレームに対するグローバル動きベクター1について保持され、後続の処理において再利用されてもよい 。これにより、グローバル動きベクターの伝送時のデータ量を抑えることができる。
 例えば、処理対象が、後続のフレームに移り、処理対象フレーム及び参照フレーム1が、それぞれ参照フレーム1及び参照フレーム2として選択されるとき、グローバル動きベクター1は、グローバル動きベクター2として再利用されてもよい。
 なお、図8-1に示す方法及び図8-2に示す方法を採る場合、グローバル動きベクターは、どの参照フレームに対応するかを示すIndex等を含んでいてもよい。
 図9は、ステップS505におけるスライスデータの復号処理の一例を示すフローチャートである。
 図9に示すように、ステップS901において、ツリー合成部2020は、スライスデータに対応する予測木の構築を行う。
 スライスデータには、予測木の各ノードの子ノードの数が深さ優先順に並んだリストが含まれていてもよい。予測木を構築する方法としては、ルートノードから開始して、深さ優先順で、各ノードに、上述のリストで指定された数の子ノードを追加する方法を採ってもよい。
 ツリー合成部2020は、予測木の構築を完了した後、ステップS902へ進む。
 ステップS902において、ツリー合成部2020は、予測木の全ノードの処理が完了したかどうかを判定する。
 ツリー合成部2020は、予測木の全ノードの処理が完了していると判定した場合、ステップS907へ進み、予測木の全ノードの処理が完了していないと判定した場合、ステップS903へ進む。
 ステップS903において、ツリー合成部2020は、予測木から処理対象ノードを選択する。
 ツリー合成部2020は、予測木のノードの処理順序として、ルートノードから開始して深さ優先順としてもよく、直前に処理したノードの次のノードを処理対象ノードとして選択してもよい。
 ツリー合成部2020は、処理対象ノードの選択が完了した後、ステップS904へ進む。
 ステップS904において、ツリー合成部2020は、処理対象ノードに対応する点の座標の予測残差を復号する。
 スライスデータには、予測木の各ノードの予測残差が深さ優先順に並んだリストが含まれていてもよい。
 ツリー合成部2020は、処理対象ノードの予測残差の復号が完了した後、ステップS905へ進む。
 ステップS905において、ツリー合成部2020は、処理対象ノードに対応する点の座標を予測する。座標予測の具体的な方法は、後述する。ツリー合成部2020は、座標予測が完了した後、ステップS906へ進む。
 ステップS906において、ツリー合成部2020は、処理対象ノードに対応する点の座標を再構成する。ツリー合成部2020は、点の座標について、ステップS904において復号された残差と、ステップS905において予測された座標の和によって求めてもよい。
 ツリー合成部2020は、Angularモードが使用されている場合は、予測残差及び予測座標が球面座標系に基づく値であることを考慮し、非特許文献1及び2に記載の方法で、座標の再構成を行ってもよい。
 ツリー合成部2020は、Angularモードが使用されている場合は、非特許文献1及び2に記載の方法で、再構成された座標を球面座標系から直交座標系へ変換してもよい。
 ツリー合成部2020は、座標の再構成が完了した後、ステップ902へ進む。
 ステップS907において、ツリー合成部2020は、ステップS505の処理を終了する。
 図10は、ステップS905における座標予測の処理の一例を示すフローチャートである。
 図10に示すように、ステップS1001において、ツリー合成部2020は、interprediction_enabled_flagに基づき、インター予測を行うかどうかを判定する。
 ツリー合成部2020は、インター予測を行うと判定した場合、ステップS1002へ進み、インター予測を行わないと判定した場合、ステップS1003へ進む。
 ステップS1002において、ツリー合成部2020は、参照フレームのノードの座標に基づき、処理対象ノードの座標を予測するインター予測を行う。ここで、予測に利用されるノードは、予測器と呼ばれる。予測器は、複数あってもよい。インター予測の具体的な方法は、後述する。
 ツリー合成部2020は、インター予測が完了した後、ステップS1004へ進む。
 ステップS1003において、ツリー合成部2020は、処理対象ノードの親ノードの点に基づき、処理対象ノードの座標を予測するイントラ予測を行う。予測に利用されるノードは、予測器と呼ばれる。予測器は、複数あってもよい。イントラ予測の方法としては、非特許文献1及び2と同様の方法を用いてもよい。
 ツリー合成部2020は、イントラ予測が完了した後、ステップS1004へ進む。
 ステップS1004において、ツリー合成部2020は、インター予測或いはイントラ予測において求めた予測器に、インデックスを付与する。イントラ予測において求めた予測器へのインデックス付与の方法としては、非特許文献1及び2と同様の方法を用いてもよい。インター予測において求めた予測器へのインデックス付与の具体的な方法は、後述する。
 なお、ツリー合成部2020は、予測器が1つしかない場合、ステップS1004の処理はスキップしてもよい。
 ツリー合成部2020は、予測器へのインデックス付与が完了した後、ステップS1005へ進む。
 ステップS1005において、ツリー合成部2020は、使用する予測器を選択する。
 ここで、ツリー合成部2020は、予測器が1つしかない場合、その予測器を選択してもよい。
 一方、予測器が複数ある場合、スライスデータに予測器のインデックスが1つ含まれていてもよく、ツリー合成部2020は、かかるインデックスに対応する予測器を選択してもよい。
 選択された1つの予測器の座標は、処理対象ノードの座標の予測値とされてもよい。
 ツリー合成部2020は、予測器の選択が完了した後、ステップS1006へ進む。
 ステップS1006において、ツリー合成部2020は、ステップS905の処理を終了する。
 図11及び図12は、ステップS1002におけるインター予測の処理の一例を示す図である。
 図11は、参照フレームが1つの場合のインター予測の処理の一例について示す図である。
 ツリー合成部2020は、参照フレームの中から、処理対象ノードの親ノードに対応するノードを選び、選択したノードの子ノード、又は、かかるノードの子ノード及び孫ノードを、予測器としてもよい。
 ツリー合成部2020は、処理対象フレームの親ノードと参照フレームのノードとの対応付けについては、そのノードに紐づく復号済みの点の情報に基づいて行い、点の情報が同じ或いは点の情報が近いもの同士を対応付けてもよい。
 ツリー合成部2020は、点の情報として、座標を用いてもよく、Angularモードの場合は、レーザーIDや方位角を用いてもよい。
 図12は、参照フレームが複数の場合のインター予測の処理の一例を示す図である。
 図12-1の例では、ツリー合成部2020は、各参照フレームの中から処理対象ノードの親ノードに対応するノードを選ぶ方法として、参照フレーム1の中からは、処理対象ノードの親ノードに対応するノードを選び、参照フレーム2の中からは、参照フレーム1で選ばれたノードに対応するノードを選ぶ。
 ツリー合成部2020は、各参照フレームの中から選ばれたノードの子ノード、又は、かかるノードの子ノード及び孫ノードを、予測器とする。これにより、複数の参照フレームから予測器を選択できる。
 図12-2の例では、ツリー合成部2020は、各参照フレームの中から処理対象ノードの親ノードに対応するノードを選ぶ方法として、参照フレーム1及び参照フレーム2の中から処理対象ノードの親ノードに対応するノードを選ぶ。そして、ツリー合成部2020は、各参照フレームの中から対応付けられたノードの子ノード、又は、かかるノードの子ノード及び孫ノードを、予測器とする。これにより、複数の参照フレームから予測器を選択できる。
 ツリー合成部2020は、複数の参照フレームで求められた予測器の全てを、予測器としてもよいし、集約或いは選抜してもよい。
 ツリー合成部2020は、集約の方法として、例えば、全ての予測器の代わりに、それらの予測器の平均を取った新たな予測器を用いてもよい。
 ツリー合成部2020は、各参照フレームにおける子ノード同士或いは孫ノード同士でそれぞれ平均を取った新たな予測器を用いてもよい。
 ここで、ツリー合成部2020は、処理対象フレームと時間的に近い参照フレームから得た予測器ほど重視するように、重み付き平均を取ってもよい。
 ツリー合成部2020は、選抜の方法として、例えば、処理対象フレームと時間的に近い参照フレームほど多くの予測器を持つように、参照フレーム1からは子ノード及び孫ノードを予測器として用い、参照フレーム2からは子ノードのみを予測器として用いるようにしてもよい。
 ツリー合成部2020は、複数の参照フレームから得られた全ての予測器に対してある基準に基づく順位付けを行い、上位から事前に指定の数の予測器を選抜するようにしてもよい。ここで、ある基準とは、例えば、Angularモードの場合、方位角の値を基準に用いてもよい。
 図13は、ステップS1004におけるインター予測で求められた予測器へのインデックス付与の処理の一例を示す図である。
 図13-1は、予測器が属する参照フレームの順に予測器へインデックスを付与する方法である。ツリー合成部2020は、同じ参照フレームに属する予測器に対しては、子ノード及び孫ノードの順に、インデックスを付与してもよい。
 図13-2は、Angularモードの場合に、予測器のノードが持つ点の情報のうち、方位角の小さいものから順にインデックスを付与する方法である。
 図13-3は、予測器のノードが持つ点の情報が処理対象ノードの親ノードに似ているものから順にインデックスを付与する方法である。
(点群符号化装置100)
 以下、図14を参照して、本実施形態に係る点群符号化装置100について説明する。図14は、本実施形態に係る点群符号化装置100の機能ブロックの一例について示す図である。
 図14に示すように、点群符号化装置100は、座標変換部1010と、幾何情報量子化部1020と、ツリー解析部1030と、近似表面解析部1040と、幾何情報符号化部1050と、幾何情報再構成部1060と、色変換部1070と、属性転移部1080と、RAHT部1090と、LoD算出部1100と、リフティング部1110と、属性情報量子化部1120と、属性情報符号化部1130と、フレームバッファ1140とを有する。
 座標変換部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に伝送される。
 或いは、任意のツリー構成を用いるPredictive codingを使用するように指定されてもよい。かかる場合、ツリー解析部1030が、ツリー構造を決定し、決定されたツリー構造は、制御データとして点群復号装置200へ伝送される。
 例えば、ツリー構造の制御データは、図5~図12で説明した手順で復号できるよう構成されていてもよい。
 近似表面解析部1040は、ツリー解析部1030によって生成されたツリー情報を用いて、近似表面情報を生成するように構成されている。
 近似表面情報は、例えば、物体の3次元点群データを復号する際等において、点群が物体表面に密に分布しているような場合に、個々の点群を復号するのではなく、点群の存在領域を小さな平面で近似して表現したものである。
 具体的には、近似表面解析部1040は、例えば、「Trisoup」と呼ばれる手法で、近似表面情報を生成するように構成されていてもよい。また、Lidar等で取得した疎な点群を復号する場合は、本処理を省略することができる。
 幾何情報符号化部1050は、ツリー解析部1030によって生成されたoccupancy code及び近似表面解析部1040によって生成された近似表面情報等のシンタックスを符号化してビットストリーム(幾何情報ビットストリーム)を生成するように構成されている。ここで、ビットストリームには、例えば、図4で説明したシンタックスを含まれていてもよい。
 符号化処理は、例えば、コンテクスト適応二値算術符号化処理である。ここで、例えば、シンタックスは、位置情報の復号処理を制御するための制御データ(フラグやパラメータ)を含む。
 幾何情報再構成部1060は、ツリー解析部1030によって生成されたツリー情報及び近似表面解析部1040によって生成された近似表面情報に基づいて、符号化対象の点群データの各点の幾何情報(符号化処理が仮定している座標系、すなわち、座標変換部1010における座標変換後の位置情報)を再構成するように構成されている。
 フレームバッファ1140は、幾何情報再構成部1060によって再構成された幾何情報を入力とし、参照フレームとして保存するように構成されている。
 例えば、フレームバッファ1140は、図7においてフレームバッファ2120について説明した方法と同様の方法で参照フレームを保持するよう構成されていてもよい。
 保存された参照フレームは、ツリー解析部1030において時間的に異なるフレームのインター予測を行う場合に、フレームバッファ1140から読み出されて参照フレームとして使用される。
 ここで、各フレームに対してどの時刻の参照フレームを用いるかどうかが、例えば、符号化効率を表すコスト関数の値に基づいて決定され、使用する参照フレームの情報が制御データとして点群復号装置200へ伝送されてもよい。
 色変換部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…フレームバッファ
200…点群復号装置
2010…幾何情報復号部
2020…ツリー合成部
2030…近似表面合成部
2040…幾何情報再構成部
2050…逆座標変換部
2060…属性情報復号部
2070…逆量子化部
2080…RAHT部
2090…LoD算出部
2100…逆リフティング部
2110…逆色変換部
2120…フレームバッファ
 

Claims (18)

  1.  点群復号装置であって、
     Predictive codingにおいて、複数の参照フレームを用いてインター予測を行うツリー合成部を備えることを特徴とする点群復号装置。
  2.  フレームバッファを備え、
     前記フレームバッファは、復号されたフレームを最近復号したものから順に複数保持し、保持できる最大数を超えた場合に古いフレームを棄却することを特徴とする請求項1に記載の点群復号装置。
  3.  前記ツリー合成部は、前記インター予測で、前記複数の参照フレームのそれぞれに対して、処理対象フレームに対するグローバル動きベクターを用いたグローバル動き補償を行うことを特徴とする請求項1又は2に記載の点群復号装置。
  4.  前記ツリー合成部は、
      1番目の参照フレームに対して、処理対象フレームに対する第1グローバル動きベクターを用いたグローバル動き補償を行い、
      2番目の参照フレームに対して、前記第1グローバル動きベクター及び  前記2番目の参照フレームの前記1番目の参照フレームに対する第2グローバル動きベクターを用いたグローバル動き補償を行うことを特徴とする請求項1又は2に記載の点群復号装置。
  5.  前記ツリー合成部は、
      前記第1グローバル動きベクター1について保持し、後続の処理において再利用することを特徴とする請求項4に記載の点群復号装置。
  6.  前記ツリー合成部は、
      1番目の参照フレームの中から、処理対象ノードの親ノードに対応するノードを選び、
      2番目の参照フレームの中から、前記1番目の参照フレームの中から選ばれたノードに対応するノードを選び、
      前記1番目の参照フレーム及び前記2番目の参照フレームの中から選ばれたノードの子ノード、又は、前記1番目の参照フレーム及び前記2番目の参照フレームの中から選ばれたノードの子ノード及び孫ノードを、予測器とすることを特徴とする請求項1に記載の点群復号装置。
  7.  前記ツリー合成部は、
      1番目の参照フレーム及び2番目の参照フレームの中から、処理対象ノードの親ノードに対応するノードを選び、
      前記1番目の参照フレーム及び前記2番目の参照フレームの中から選ばれたノードの子ノード、又は、前記1番目の参照フレーム及び前記2番目の参照フレームの中から選ばれたノードの子ノード及び孫ノードを、予測器とすることを特徴とする請求項1に記載の点群復号装置。
  8.  前記ツリー合成部は、全ての予測器の代わりに、前記全ての予測器の平均を取った新たな予測器を用いて、インター予測を行うことを特徴とする請求項6又は7に記載の点群復号装置。
  9.  前記ツリー合成部は、全ての予測器の代わりに、前記子ノード同士或いは前記孫ノード同士でそれぞれ平均を取った新たな予測器を用いて、インター予測を行うことを特徴とする請求項6又は7に記載の点群復号装置。
  10.  前記ツリー合成部は、処理対象フレームと時間的に近い参照フレームから得た予測器ほど重視するような重み付き平均を取ることを特徴とする請求項8に記載の点群復号装置。
  11.  前記ツリー合成部は、処理対象フレームと時間的に近い参照フレームから得た予測器ほど重視するような重み付き平均を取ることを特徴とする請求項9に記載の点群復号装置。
  12.  前記ツリー合成部は、前記処理対象フレームと時間的に近い参照フレームほど多くの予測器を持つように、前記1番目の参照フレームでは前記子ノード及び前記孫ノードを前記予測器として用い、前記2番目の参照フレームでは前記子ノードのみを予測器として用いることを特徴とする請求項6又は7に記載の点群復号装置。
  13.  前記ツリー合成部は、前記複数の参照フレームから得られた全ての予測器の代わりに、前記全ての予測器の中である基準に基づく順位付けを行い、上位から事前に指定の数の予測器を用いることを特徴とする請求項6又は7に記載の点群復号装置。
  14.  前記ツリー合成部は、
      異なる参照フレームに属する予測器間では、前記予測器が属する参照フレームの順に基づいて、前記予測器にインデックスを付与し、
      同じ参照フレームに属する予測器間では、ノードの親子関係に基づいて、前記予測器へインデックスを付与することを特徴とする請求項1に記載の点群復号装置。
  15.  前記ツリー合成部は、Angularモードにおいて、予測器の方位角に基づいて、複数の予測器のそれぞれにインデックスを付与することを特徴とする請求項1に記載の点群復号装置。
  16.  前記ツリー合成部は、予測器と処理対象ノードの親ノードとの間の類似度に基づいて、複数の予測器のそれぞれにインデックスを付与することを特徴とする請求項1に記載の点群復号装置。
  17.  点群復号方法であって、
     Predictive codingにおいて、複数の参照フレームを用いてインター予測を行う工程を有することを特徴とする点群復号方法。
  18.  コンピュータを、点群復号装置として機能させるプログラムであって、
     前記点群復号装置は、
     Predictive codingにおいて、複数の参照フレームを用いてインター予測を行うツリー合成部を備えることを特徴とするプログラム。
PCT/JP2023/029765 2022-10-13 2023-08-17 点群復号装置、点群復号方法及びプログラム WO2024079985A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022165090A JP2024058014A (ja) 2022-10-13 2022-10-13 点群復号装置、点群復号方法及びプログラム
JP2022-165090 2022-10-13

Publications (1)

Publication Number Publication Date
WO2024079985A1 true WO2024079985A1 (ja) 2024-04-18

Family

ID=90669524

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/029765 WO2024079985A1 (ja) 2022-10-13 2023-08-17 点群復号装置、点群復号方法及びプログラム

Country Status (2)

Country Link
JP (1) JP2024058014A (ja)
WO (1) WO2024079985A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020263981A1 (en) * 2019-06-27 2020-12-30 Futurewei Technologies, Inc. Hypothetical reference decoder for v-pcc
US20220207780A1 (en) * 2020-12-29 2022-06-30 Qualcomm Incorporated Inter prediction coding for geometry point cloud compression
WO2022163805A1 (ja) * 2021-01-29 2022-08-04 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020263981A1 (en) * 2019-06-27 2020-12-30 Futurewei Technologies, Inc. Hypothetical reference decoder for v-pcc
US20220207780A1 (en) * 2020-12-29 2022-06-30 Qualcomm Incorporated Inter prediction coding for geometry point cloud compression
WO2022163805A1 (ja) * 2021-01-29 2022-08-04 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Also Published As

Publication number Publication date
JP2024058014A (ja) 2024-04-25

Similar Documents

Publication Publication Date Title
US10547842B2 (en) Method and apparatus for coding video and method and apparatus for decoding video accompanied with arithmetic coding
JP4490261B2 (ja) イントラ符号化に基づく空間予測
JP2023133553A (ja) 画像処理装置及び画像処理方法
WO2012101781A1 (ja) 画像復号化装置
US20230125529A1 (en) Point cloud decoding device, point cloud decoding method, and program
CN114598892B (zh) 点云数据编码方法、解码方法、装置、设备及存储介质
WO2022070469A1 (ja) 点群復号装置、点群復号方法及びプログラム
KR102627934B1 (ko) Cabac에 기반한 엔트로피 코딩 방법 및 그 장치
WO2021256486A1 (ja) 点群復号装置、点群復号方法及びプログラム
WO2022071284A1 (ja) 点群復号装置、点群復号方法及びプログラム
WO2021140930A1 (ja) 情報処理装置および方法
WO2024079985A1 (ja) 点群復号装置、点群復号方法及びプログラム
KR20120045369A (ko) 쿼드 트리 기반으로 블록 필터 정보를 부호화/복호화하는 영상 부호화/복호화 장치 및 방법
US11412241B2 (en) Decoding or encoding delta transform coefficients
WO2022071282A1 (ja) 点群復号装置、点群復号方法及びプログラム
EP3177019B1 (en) Motion video prediction decoding method, and motion video prediction decoding device
WO2022071285A1 (ja) 点群復号装置、点群復号方法及びプログラム
CN116016951A (zh) 点云处理方法、装置、设备及存储介质
JP2024058013A (ja) 点群復号装置、点群復号方法及びプログラム
KR20130022541A (ko) 영상의 부호화 방법 및 장치, 및 영상의 복호화 방법 및 장치
JP2020530229A (ja) 動き補償参照フレーム圧縮
WO2022260115A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP2024093896A (ja) 点群復号装置、点群復号方法及びプログラム
JP2023007934A (ja) 点群復号装置、点群復号方法及びプログラム
JP2024058011A (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: 23876993

Country of ref document: EP

Kind code of ref document: A1