WO2025150285A1 - 点群復号装置、点群復号方法及びプログラム - Google Patents
点群復号装置、点群復号方法及びプログラムInfo
- Publication number
- WO2025150285A1 WO2025150285A1 PCT/JP2024/041961 JP2024041961W WO2025150285A1 WO 2025150285 A1 WO2025150285 A1 WO 2025150285A1 JP 2024041961 W JP2024041961 W JP 2024041961W WO 2025150285 A1 WO2025150285 A1 WO 2025150285A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- raht
- unit
- prediction
- value
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Definitions
- intra-prediction of attribute values involves referencing the attribute values of a decoded parent node, adjacent nodes of the parent node, and adjacent nodes at the same level, weighting according to the method of adjacency, and predicting the attribute value of the node being processed.
- G-PCC codec description ISO/IEC JTC1/SC29/WG7 N00271
- G-PCC 2nd Edition codec description ISO/IEC JTC1/SC29/WG7 N00506
- the DC coefficients of the higher layer that are referenced by the intra prediction value are the average values of the child layer nodes, making it difficult to accurately predict the original attribute values of the node being processed.
- 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 coding efficiency of attribute information coding.
- a first aspect of the present invention is a point group decoding device, comprising: an attribute information decoding unit configured to decode a value indicating a number of applicability modes of inter prediction in a target slice;
- the gist of the present invention is that the value is set to be equal to the smaller of a value obtained by subtracting 1 from the number of hierarchical layers of the target slice and a value obtained by subtracting 1 from the number of hierarchical layers for which inter prediction is enabled in the attribute information.
- the second feature of the present invention is a point cloud decoding method, comprising a step of decoding a value indicating the number of modes for applying inter prediction in a target slice, and the value is set to be equal to the smaller of a value obtained by subtracting 1 from the number of layers in the target slice and a value obtained by subtracting 1 from the number of layers for which inter prediction is enabled in the attribute information.
- 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 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 LoD calculation unit 2090 is configured to receive the geometric information generated by the geometric information reconstruction unit 2040 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 bitstream may include slice data 2013A/2013B following GSH 2012A/2012B.
- Slice data 2013A/2013B includes data that encodes geometric information.
- 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) means that it is an unsigned zeroth-order exponential Golomb code, and u(1) means that it is a 1-bit flag.
- GPS2011 may include a flag (geom_tree_type) for controlling the tree type in the tree synthesis unit 2020.
- geom_tree_type For example, if the value of geom_tree_type is "1", it may be defined that predictive geometry coding is used, and if the value of geom_tree_type is "0", it may be defined that Octree is used.
- 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 geometry coding processing is performed in angular mode, and when the value of geom_angular_enabled is "0", it may be defined that predictive geometry coding processing is not performed in angular mode.
- GPS2011 may include a flag (ptree_ang_azimuth_scaling_enabled) in the tree synthesis unit 2020 for controlling whether the adaptive azimuth quantization mode is in angular mode.
- the adaptive azimuth quantization mode is a mode that performs adaptive quantization of the azimuth angle according to the radius.
- ptree_ang_azimuth_scaling_enabled when the value of ptree_ang_azimuth_scaling_enabled is "1", it may be defined that adaptive quantization of the azimuth angle according to the radius is performed, and when the value of ptree_ang_azimuth_scaling_enabled is "0", it may be defined that adaptive quantization of the azimuth angle according to the radius is not performed.
- ptree_azimuth_scaling_enabled For example, if the value of ptree_azimuth_scaling_enabled is "1", it may be defined that the predictor list is used in the calculation of the predictor, and if the value of ptree_ang_azimuth_scaling_enabled is "0", it may be defined that the predictor list is not used in the calculation of the predictor.
- GPS2011 may include a value (ptree_ang_azimuth_step_minus1) related to the laser rotation speed for use in calculating the predicted azimuth angle in the tree synthesis unit 2020 in angular mode.
- ptree_ang_azimuth_step_minus1 a value related to the laser rotation speed for use in calculating the predicted azimuth angle in the tree synthesis unit 2020 in angular mode.
- Tree synthesis unit 2020 An example of the operation of the tree synthesis unit 2020 will be described below with reference to FIGS.
- FIG. 17 is a flowchart showing an example of processing in the tree synthesis unit 2020. Note that the following describes an example of synthesizing trees using "Predictive coding.”
- Predictive coding is also called predictive geometry coding, predictive geometry, and predictive tree.
- 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 S1611 the tree synthesis unit 2020 decodes the orthogonal integer coordinate residual.
- step S701 the tree synthesis unit 2020 decodes the predictor flag.
- the slice data may include a flag indicating the predictor to be used for each node.
- the slice data may include flags similar to those described in Non-Patent Documents 1 and 2, such as a flag indicating whether the predictor is an inter predictor or an intra predictor, or an index of the inter predictor.
- the slice data may include other flags, which will be described later.
- step S702 After decoding the predictor flag, the tree synthesis unit 2020 proceeds to step S702.
- step S702 the tree synthesis unit 2020 determines whether to use an inter predictor based on the flag decoded in step S701.
- step S704 If an inter-predictor is used, the tree synthesis unit 2020 proceeds to step S704; if an inter-predictor is not used, the tree synthesis unit 2020 proceeds to step S703.
- step S703 the tree synthesis unit 2020 performs intra prediction on the coordinates of the node to be processed.
- the tree synthesis unit 2020 constructs a predictor based on the coordinates of the parent or ancestor node of the node to be processed (e.g., the parent node of the parent node, etc.), and predicts the coordinates of the node to be processed.
- step S703 the tree synthesis unit 2020 first determines the type of predictor to be used for prediction.
- the tree synthesis unit 2020 may determine whether or not the adaptive azimuth angle quantization mode is selected based on the value of ptree_ang_azimuth_scaling_enabled, and determine the type of predictor to use.
- the tree synthesis unit 2020 may select a predictor to be used based on the decoded prediction mode from among multiple predictors calculated using a tree structure, for example, in the adaptive azimuth angle quantization mode.
- the tree synthesis unit 2020 may store the position information of the decoded node as a predictor in a list, refer to the one in the list that corresponds to the index of the decoded predictor, and select the predictor to be used.
- the tree synthesis unit 2020 uses that predictor as the predicted value for the position information.
- step S704 the tree synthesis unit 2020 performs inter prediction on the coordinates of the node to be processed.
- the tree synthesis unit 2020 selects a node corresponding to the node to be processed from the reference frame as a predictor, and sets the coordinates of the selected predictor as the predicted value of the coordinates of the node to be processed.
- the method of selecting a predictor from the reference frame will be described later.
- step S705 the tree synthesis unit 2020 ends the processing of step S1605.
- FIG. 19 is a diagram showing an example of the process of selecting a predictor from a reference frame in step S704. However, in the example of FIG. 19, it is assumed that angular mode is used. In angular mode, the point of the parent node of the node to be processed can be considered to have been decoded immediately before or before that.
- the reference frame is searched for nodes with the same laser ID and large azimuth angles as the parent node of the node to be processed, and the two with the smallest azimuth angles are set as predictor 1 and predictor 2, respectively.
- the tree synthesis unit 2020 may perform bidirectional prediction.
- bidirectional prediction an example of the operation of the tree synthesis unit 2020 when performing bidirectional prediction is described.
- the tree synthesis unit 2020 may group the frames to be processed into a fixed number, and change the processing order within each group.
- reference frames there may be two reference frames for inter prediction for each frame to be processed, and the reference frames may be frames that are chronologically in the future.
- the tree synthesis unit 2020 may, for example, search for nodes from two reference frames that have the same laser ID and a large azimuth angle relative to the parent node of the node being processed, and use the two with the smallest azimuth angles as predictors from each reference frame, generating a total of four predictors. The tree synthesis unit 2020 may then use one of these as a predictor based on the decoded predictor index.
- step S1702. If the mode is adaptive azimuth angle quantization, the operation proceeds to step S1702. On the other hand, if the mode is not adaptive azimuth angle quantization, the operation proceeds to step S1703.
- step S1702 the tree synthesis unit 2020 decodes the predictor index. After the decoding of the predictor index is completed, the operation proceeds to step S1704.
- step S1703 the tree synthesis unit 2020 decodes the prediction mode. After the prediction mode has been decoded, the operation proceeds to step S1704.
- step S1704 the tree synthesis unit 2020 decodes the number of azimuth angle steps. After the decoding of the number of azimuth angle steps is completed, the operation proceeds to step S1705.
- step S1705 the tree synthesis unit 2020 decodes the spherical coordinate residual.
- the tree synthesis unit 2020 may perform such decoding using the method described in Non-Patent Document 2. After the decoding is complete, the operation proceeds to step S1706, where the processing ends.
- attribute information decoding unit 2060 The control data decoded by the attribute information decoding unit 2060 will be described below with reference to FIGS.
- syntax names explained below are merely examples. If the syntax functions explained below are similar, the syntax names may be different.
- Descriptor column in Figure 4 indicates how each syntax is coded.
- ue(v) means that it is an unsigned zeroth-order exponential Golomb code, and u(1) means that it is a 1-bit flag.
- the APS2611 may include a flag (attr_coding_type) for controlling whether the inverse quantization unit 2070 outputs the inverse quantized residual information to the RAHT unit 2080 or the LoD calculation unit 2090.
- Attr_coding_type when the value of attr_coding_type is "1", it may be defined to be output to the LoD calculation unit 2090, and when the value of attr_coding_type is "0", it may be defined to be output to the RAHT unit 2080.
- the APS2611 may include a flag (raht_prediction_enabled) for controlling whether or not to predict attribute information in the RAHT section 2080.
- raht_prediction_enabled when the value of raht_prediction_enabled is "1", it may be defined that attribute information is predicted, and when the value of raht_prediction_enabled is "0", it may be defined that attribute information is not predicted.
- the APS2611 may include a value (raht_prediction_threshold0) indicating the threshold value of the number of adjacent nodes of a grandparent node used to determine whether or not to perform intra-prediction of attribute information in the RAHT unit 2080.
- the grandparent node refers to the parent node of the parent node of the node to be processed.
- the APS2611 may include a value (raht_prediction_threshold1) indicating a threshold value for the number of adjacent nodes of a parent node used to determine whether or not to perform intra-prediction of attribute information in the RAHT unit 2080.
- raht_prediction_threshold1 indicating a threshold value for the number of adjacent nodes of a parent node used to determine whether or not to perform intra-prediction of attribute information in the RAHT unit 2080.
- APS2611 may include values (raht_prediction_intra_elegibility_threshold0) and (raht_prediction_intra_elegibility_threshold1) indicating the threshold of the value obtained by dividing or subtracting the predicted value of the DC coefficient of the node to be processed, which is used to determine whether or not to perform intra prediction of attribute information in the RAHT unit 2080, from the DC coefficient obtained by the RAHT conversion.
- the APS2611 may include a flag (raht_subnode_prediction_enable_flag) that controls whether or not subnodes are used to predict attribute information in the RAHT section 2080.
- raht_subnode_prediction_enable_flag when the value of raht_subnode_prediction_enable_flag is "1", it may be defined that subnodes are used to predict attribute information, and when the value of raht_subnode_prediction_enable_flag is "0", it may be defined that subnodes are not used to predict attribute information.
- the APS2611 may include weight parameters (raht_prediction_weights) used when performing intra-prediction of attribute information in the RAHT unit 2080.
- raht_prediction_weights may be defined according to the manner in which the node to be decoded is adjacent to the adjacent node used for intra prediction.
- the APS2611 may include a flag (raht_inter_prediction_enabled) for controlling whether or not inter-prediction of attribute information is performed in the RAHT unit 2080.
- raht_inter_prediction_enabled when the value of raht_inter_prediction_enabled is "1", it may be defined that attribute information is predicted, and when the value of raht_inter_prediction_enabled is "0", it may be defined that attribute information is not predicted.
- APS2611 may include a value (raht_inter_prediction_depth_minus1) indicating the layer at which inter prediction of attribute information is enabled in the RAHT unit 2080.
- ASH2612 may include layer_code_depth if either raht_enable_code_layer or raht_send_inter_filters is "1".
- the second bit may be defined as a value indicating the "prediction method", with "intra prediction” defined as the second bit being "0" and "inter prediction” defined as the second bit being "1".
- raht_filter_taps may be decoded when raht_attr_layer_code_mode[i+raht_inter_skip_layers-1] is "1" when decoding raht_filter_taps[i].
- raht_attr_layer_code_mode[i+raht_inter_skip_layers-1] is "0"
- raht_filter_taps[i] may be set to the initial value "0".
- raht_filter_taps[i] if raht_inter_skip_layers is "0", the initial value "0" may be set when i is "0".
- FIG. 14 shows an example of a syntax configuration when decoding raht_filter_taps based on raht_inter_skip_layers.
- num_filter_taps may be derived based on syntax that specifies the decoded layer to which inter prediction is applied.
- num_filter_taps may be calculated by subtracting a value indicating how many top layers are not to be subjected to inter prediction scaling from the number of effective layers for inter prediction; when the value indicating the number of raht_attr_layer_code_mode is less than the number of effective layers for inter prediction, num_filter_taps may be calculated by subtracting a value indicating how many top layers are not to be subjected to inter prediction scaling from the value indicating the number of raht_attr_layer_code_mode.
- num_filter_taps may be derived as follows:
- num_filter_taps layer_code_depth-raft_inter_skip_layers-1
- the attribute information decoding unit 2060 may also derive the number of scaling factors using the applicability mode of inter prediction for each layer.
- the attribute information decoding unit 2060 may count the layers to which inter prediction is applied, for example, based on the inter prediction applicability mode for each layer.
- the attribute information decoding unit 2060 may exclude from the count layers to which inter prediction scaling is not applicable based on a value indicating how many top layers inter prediction scaling is not applicable to.
- FIG. 8 is a flowchart showing an example of processing by the RAHT unit 2080.
- step S28001 the RAHT unit 2080 recursively divides the nodes into octrees until a predetermined size is reached, using a technique called Octree. After this division is complete, the operation proceeds to step S28002.
- step S28002 the RAHT unit 2080 counts the total number of points that belong to the lower hierarchical level of each node divided by the Octree.
- the RAHT unit 2080 scans the nodes of a certain hierarchy in order and records the number of points belonging to each node. Next, the RAHT unit 2080 adds up the number of points recorded in the child nodes of each node in the node one hierarchy higher, and calculates the number of points belonging to each node.
- the RAHT unit 2080 repeats the above scanning from the bottom layer to the top layer.
- the total number of acquired points is used as the weight for the inverse transformation of the RAHT in step S28005 described below. After this calculation is completed, the operation proceeds to step S28003.
- the RAHT unit 2080 decodes the DC coefficients of the nodes belonging to the highest hierarchy of the Octree.
- the RAHT unit 2080 may predict the DC coefficients using intra prediction, and calculate the DC coefficients by decoding and adding up the prediction residuals of the DC coefficients.
- the RAHT unit 2080 calculates the attribute value Aroot of the root node using the total number of points belonging to the root node acquired in step S28002, wroot, and the decoded DC coefficient DCroot, using the following formula:
- step S28004 the RAHT unit 2080 determines whether the decoding of the attribute information of all nodes contained in the hierarchy has been completed.
- step S28005 If not completed, the operation proceeds to step S28005; if completed, the operation proceeds to step S28007.
- step S28005 the RAHT unit 2080 decodes the AC coefficients. Details will be described later. After the decoding is completed, the operation proceeds to step S28006.
- step S28006 the RAHT unit 2080 calculates attribute values using the inverse transform of the RAHT based on the total number of points belonging to the lower hierarchical layer of each node, the decoded AC coefficients, and the DC coefficients calculated from the nodes in the higher hierarchical layer using a method described below.
- T(w) ⁇ 1 is a matrix used for the inverse transformation of the RAHT, and can be generated by the method described in Non-Patent Document 1, for example.
- step S28004 is used as a DC coefficient in the inverse transform of the RAHT of each subnode. After this transform process is completed, the operation proceeds to step S28004.
- step S28007 the RAHT unit 2080 determines whether decoding of nodes at all hierarchical levels has been completed.
- step S28008 ends the processing.
- FIG. 9 is a flowchart showing an example of the processing of step S28004.
- the RAHT unit 2080 determines whether to predict AC coefficients.
- the RAHT unit 2080 may refer to the value of raht_prediction_enabled and use this value.
- the RAHT unit 2080 may decode a flag indicating whether or not to predict AC coefficients at the current processing target node, and use the value of that flag.
- the flag may be decoded for each node or for each layer.
- the flag may be decoded only if the value of raht_prediction_enabled is "1", which indicates that prediction is enabled.
- the flag may be included in the slice data.
- step S28102 If the result of the determination is that AC coefficients are not to be predicted, the operation proceeds to step S28102; if AC coefficients are to be predicted, the operation proceeds to steps S28103 and S28104.
- step S28102 the RAHT unit 2080 decodes the AC coefficients. After the decoding is completed, the operation proceeds to step S28113 and ends the process.
- step S28107 the RAHT unit 2080 determines whether inter prediction is enabled.
- the RAHT unit 2080 may refer to the value of raht_inter_prediction_enabled and use this value for such a determination.
- step S28109 If the result of the determination is that inter prediction is enabled, the operation proceeds to step S28109; if the result is that inter prediction is disabled, the operation proceeds to step S28112.
- the RAHT unit 2080 determines whether the depth of the hierarchy in which the node to be processed is included is equal to or less than a threshold.
- the RAHT unit 2080 may refer to the value of raht_inter_prediction_depth_minus1 as the threshold and use this value.
- step S28110 If the result of the determination is that the depth is equal to or less than the threshold, the operation proceeds to step S28110; if the depth is greater than the threshold, the operation proceeds to step S28104.
- step S28110 the RAHT unit 2080 determines whether to inter-predict the AC coefficients of the node to be processed.
- the RAHT unit 2080 may make the determination by checking whether inter prediction is possible, and if so, not performing inter prediction. Details will be described later.
- the RAHT unit 2080 may make the determination by decoding a flag indicating whether or not to inter-predict the AC coefficients of the node to be processed, and using the value of the flag.
- the flag may be decoded for each node, or may be decoded for each layer.
- the flag may be decoded and a determination made only when it is determined that inter-prediction is possible.
- the flag may be included in the slice data.
- This flag may refer to raht_attr_layer_code_mode and use its value. This value may be referenced when the depth of the layer that includes the node to be processed is smaller than layer_code_depth and when the depth of the layer that includes the node to be processed is greater than the layer of the root node.
- step S28111 If it is determined that inter prediction is possible, the operation proceeds to step S28111; if it is determined that inter prediction is not possible, the operation proceeds to step S28104.
- step S28111 the RAHT unit 2080 performs inter prediction of the AC coefficients of the node to be processed. The details will be described later.
- step S28104 the RAHT unit 2080 determines whether or not to perform intra prediction of the AC coefficients of the node to be processed.
- the RAHT unit 2080 may determine whether the number of adjacent nodes of the parent node and grandparent node of the node to be processed is equal to or greater than a threshold, and if it is equal to or greater than the threshold, determine to perform intra prediction, and if it is equal to or less than the threshold (i.e., if it is determined that the accuracy of intra prediction of AC coefficients is not high), determine not to perform intra prediction.
- the RAHT unit 2080 may refer to the value of raht_prediction_threshold0 described above and use this value as the threshold for the adjacent node of the grandparent node, or may refer to the value of raht_prediction_threshold1 described above and use this value as the threshold for the adjacent node of the parent node.
- the RAHT unit 2080 may perform an additional determination for a processing target node that is determined to perform intra prediction in the determination using the above-mentioned raht_prediction_threshold0 and raht_prediction_threshold1.
- step S28104 the RAHT unit 2080 determines the effect of intra prediction of AC coefficients of attribute values using RAHT. In other words, in step S28104, the RAHT unit 2080 determines whether the accuracy of intra prediction of AC coefficients of attribute values using RAHT is high.
- the RAHT unit 2080 may determine to perform intra prediction if the value obtained by dividing the DC coefficient obtained in step S28006 by the predicted value of the DC coefficient of the node to be processed is within the threshold range (i.e., if it is determined that the accuracy of the intra prediction of the AC coefficient is high), and may determine not to perform intra prediction if the value is outside the threshold range (i.e., if it is determined that the accuracy of the intra prediction of the AC coefficient is not high).
- the RAHT unit 2080 may determine to perform intra prediction if the value obtained by subtracting the DC coefficient obtained in step S28006 from the predicted value of the DC coefficient of the node to be processed is within a threshold range (i.e., if it is determined that the accuracy of the intra prediction of the AC coefficient is high), and may determine not to perform intra prediction if the value is outside the threshold range (i.e., if it is determined that the accuracy of the intra prediction of the AC coefficient is not high).
- a threshold range i.e., if it is determined that the accuracy of the intra prediction of the AC coefficient is high
- the RAHT unit 2080 may determine to perform intra prediction when the value obtained by dividing the DC coefficient obtained in step S28006 by the predicted value of the DC coefficient of the node to be processed, or the value obtained by subtracting the DC coefficient obtained in step S28006 from the predicted value of the DC coefficient of the node to be processed, is equal to or greater than the value of raht_prediction_intra_eligibility_threshold0 and equal to or less than the value of raht_prediction_intra_eligibility_threshold1 (i.e., when it is determined that the accuracy of intra prediction of AC coefficients is high).
- step S28112 the RAHT unit 2080 performs intra prediction of the AC coefficients of the node to be processed. The details will be described later.
- step S28111 a process equivalent to the intra prediction process in step S28112 may also be performed, and prediction may be performed by combining the results of inter prediction and intra prediction. This will be described in detail later.
- the adjacent nodes in the higher hierarchy refer to the 6 nodes adjacent to the parent node of the node to be decoded on the face side, the 12 nodes adjacent to the edge side, and the parent node itself, out of a total of 19 nodes, the 3 nodes adjacent to the face side of the node to be decoded, the 3 nodes adjacent to the edge side, and the 7 nodes of the parent node itself.
- step S28203 the RAHT unit 2080 predicts the attribute value of the node to be decoded.
- the RAHT unit 2080 may use a hard-coded value as the weight w i depending on whether the adjacent node i is a face adjacent node of a higher hierarchy, an edge adjacent node of a higher hierarchy, a parent node, a face adjacent node of a subnode hierarchy, or an edge adjacent node of a subnode hierarchy, or may refer to the value of raht_prediction_weights and calculate the weight w i from such value.
- the RAHT unit 2080 converts the predicted attribute values into AC coefficients.
- the AC coefficients are generated by RAHTing the predicted attribute values.
- the RAHT unit 2080 may use the method described in Non-Patent Document 1 as the conversion method.
- the RAHT unit 2080 may multiply the predicted value AC intra of the transformed AC coefficient by a scaling factor ⁇ intra .
- an integer ⁇ may be defined to range from integer a to integer b, and the RAHT unit 2080 may decode the integer ⁇ .
- the RAHT unit 2080 may calculate the coefficient ⁇ intra as a value obtained by adding an integer c to the decoded integer ⁇ and then dividing the result by the integer c, as follows:
- the RAHT unit 2080 may decode the integer ⁇ using exponential Golomb coding.
- the RAHT unit 2080 may subtract X from 128, shift the result of the subtraction to the right by 7 bits, and use the result as the scaling factor ⁇ intra for inter prediction.
- the value of the scaling factor ⁇ intra in inter prediction in the attribute information may be defined as "1" obtained by subtracting 0 from 128 and shifting the result of the subtraction 7 bits to the right.
- the RAHT unit 2080 may, for example, refer to raht_attr_layer_code_mode, and if it is determined that intra prediction is applied to the node to be processed, scale the intra prediction value using the decoded value of raht_filter_taps_intra.
- FIG. 13 shows an example of the inter prediction process in step S28111.
- the RAHT unit 2080 predicts the AC coefficients of the node to be processed using information about the reference node, which is the corresponding node in the reference frame.
- the information about the reference node may be its attribute value or AC coefficients.
- the reference frame may also refer to another decoded frame, and the information about the reference frame may be included in the previous frame buffer 2120.
- the RAHT unit 2080 may apply an Octree to the reference frame independently of the frame to be processed, and set an Octree structure different from that of the frame to be processed. In such a case, a node may not necessarily exist in the same position as in the frame to be processed. If a reference node is not found in a position corresponding to the node to be processed, the RAHT unit 2080 may disable inter prediction in step S28143.
- the RAHT unit 2080 may estimate and interpolate the information of the reference node using information of nodes in nearby positions within the reference frame.
- the RAHT unit 2080 may estimate and interpolate the average value of the attribute values or AC coefficients of adjacent nodes, nearest nodes, or k nearest nodes relative to the reference node position as the attribute value or AC coefficient of the reference node, respectively.
- the RAHT unit 2080 may apply the above-mentioned interpolation only to a specific layer or layers.
- the RAHT unit 2080 may determine that it is more efficient to not decode the AC coefficient of the attribute value, and skip decoding the AC coefficient of the hierarchical nodes under the node to be processed.
- the RAHT unit 2080 may use the value Attr inter of the decoded attribute value of the reference node to calculate a predicted value Attr pred of the attribute value of the node to be processed, and apply RAHT to the predicted value Attr pred of the attribute value of the node to be processed to calculate a predicted value AC pred of the AC coefficient of the node to be processed.
- the RAHT unit 2080 may predict the AC coefficients of the node to be processed directly from the AC coefficients of the reference node, for example.
- the RAHT unit 2080 may calculate the value AC inter of the AC coefficient of the reference node using the RAHT in the reference frame, and set the value as the predicted value AC pred of the AC coefficient of the node to be processed.
- the coefficient ⁇ may be defined using the hierarchical depth depth as follows, and ⁇ ' may be decoded instead of the coefficient ⁇ .
- the integer ⁇ may be defined as an integer ranging from integer a to integer b, and ⁇ may be decoded.
- the coefficient ⁇ may be calculated by adding an integer c to the decoded ⁇ and then dividing the result by the integer c, as follows:
- ⁇ ( ⁇ + c)/c
- the integer ⁇ may be decoded using an exponential-Golomb code.
- the RAHT unit 2080 may determine whether to apply inter prediction based on, for example, syntax that specifies the layer to which inter prediction is applied, and if it is determined that inter prediction is applied to that layer, it may scale the inter prediction value using the decoded value of raht_filter_taps.
- 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.
- 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.
- 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.
- Attribute Information quantization unit 1130 ...attribute information encoding unit 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本発明に係る点群復号装置200は、対象スライスにおけるインター予測の適用可否モードの数を示す値を復号する属性情報復号部2060を備え、前記値は、対象スライスの階層数から1を引いた値と、属性情報のインター予測を有効化する階層数から1を引いた値のうち、小さい方の値と等しくなるように設定される。
Description
本発明は、点群復号装置、点群復号方法及びプログラムに関する。
従来技術として、RAHTを用いた属性情報の復号において、属性値のイントラ予測では、復号済の親ノードや親ノードの隣接ノードや同階層の隣接ノードの属性値を参照し、隣接の方法に応じた重み付けを行い、処理対象ノードの属性値を予測する方法が知られている。
G-PCC codec description、ISO/IEC JTC1/SC29/WG7 N00271
G-PCC 2nd Edition codec description、ISO/IEC JTC1/SC29/WG7 N00506
しかしながら、従来技術では、イントラ予測値が参照する上位階層のDC係数は、その子階層ノードの平均的な値であることから、処理対象ノードの本来の属性値を正確に予測することは難しいという問題点があった。
そこで、本発明は、上述の課題に鑑みてなされたものであり、属性情報の符号化の符号化効率を改善できる点群復号装置、点群復号方法及びプログラムを提供することを目的とする。
本発明の第1の特徴は、点群復号装置であって、対象スライスにおけるインター予測の適用可否モードの数を示す値を復号する属性情報復号部を備え、
前記値は、前記対象スライスの階層数から1を引いた値と、属性情報のインター予測を有効化する階層数から1を引いた値のうち、小さい方の値と等しくなるように設定されることを要旨とする。
前記値は、前記対象スライスの階層数から1を引いた値と、属性情報のインター予測を有効化する階層数から1を引いた値のうち、小さい方の値と等しくなるように設定されることを要旨とする。
本発明の第2の特徴は、点群復号方法であって、対象スライスにおけるインター予測の適用可否モードの数を示す値を復号する工程を有し、前記値は、前記対象スライスの階層数から1を引いた値と、属性情報のインター予測を有効化する階層数から1を引いた値のうち、小さい方の値と等しくなるように設定されることを要旨とする。
本発明の第3の特徴は、コンピュータを、点群復号装置として機能させるプログラムであって、前記点群復号装置は、対象スライスにおけるインター予測の適用可否モードの数を示す値を復号する属性情報復号部を備え、前記値は、前記対象スライスの階層数から1を引いた値と、属性情報のインター予測を有効化する階層数から1を引いた値のうち、小さい方の値と等しくなるように設定されることを要旨とする。
本発明によれば、属性情報の符号化の符号化効率を改善できる点群復号装置、点群復号方法及びプログラムを提供することができる。
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態における構成要素は、適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
(第1実施形態)
以下、図1~図20を参照して、本発明の第1実施形態に係る点群処理システム10について説明する。図1は、本実施形態に係る実施形態に係る点群処理システム10を示す図である。
以下、図1~図20を参照して、本発明の第1実施形態に係る点群処理システム10について説明する。図1は、本実施形態に係る実施形態に係る点群処理システム10を示す図である。
図1に示すように、点群処理システム10は、点群符号化装置100及び点群復号装置200を有する。
点群符号化装置100は、入力点群信号を符号化することによって符号化データ(ビットストリーム)を生成するように構成されている。点群復号装置200は、ビットストリームを復号することによって出力点群信号を生成するように構成されている。
なお、入力点群信号及び出力点群信号は、点群内の各点の位置情報と属性情報とから構成される。属性情報は、例えば、各点の色情報や反射率である。
ここで、かかるビットストリームは、点群符号化装置100から点群復号装置200に対して伝送路を介して送信されてもよい。また、ビットストリームは、記憶媒体に格納された上で、点群符号化装置100から点群復号装置200に提供されてもよい。
(点群復号装置200)
以下、図2を参照して、本実施形態に係る点群復号装置200について説明する。図2は、本実施形態に係る点群復号装置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を用いることで生成された属性情報の直流成分(DC係数)及び交流成分(AC係数)であり、復号処理において、RAHTの逆変換を用いることで属性情報に変換される。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~図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に、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でツリータイプを制御するためのフラグ(geom_tree_type)を含んでもよい。
例えば、geom_tree_typeの値が「1」の場合は、Predictive geometry codingを使用すると定義し、geom_tree_typeの値が「0」の場合は、Octreeを使用するように定義されていてもよい。
GPS2011は、ツリー合成部2020で、Angularモードとして処理を行うかどうかを制御するためのフラグ(geom_angular_enabled)を含んでもよい。
例えば、geom_angular_enabledの値が「1」の場合は、AngularモードとしてPredictive geometry codingの処理を行うと定義し、geom_angular_enabledの値が「0」の場合は、AngularモードとしてPredictive geometry codingの処理を行わないように定義されていてもよい。
GPS2011は、ツリー合成部2020で、Angularモードにおいて、適応的方位角量子化モードであるかどうかを制御するためのフラグ(ptree_ang_azimuth_scaling_enabled)を含んでもよい。適応的方位角量子化モードとは、半径に応じた適応的な方位角の量子化を行うモードである。
例えば、ptree_ang_azimuth_scaling_enabledの値が「1」の場合は、半径に応じた適応的な方位角の量子化を行うと定義し、ptree_ang_azimuth_scaling_enabledの値が「0」の場合は、半径に応じた適応的な方位角の量子化を行わないと定義されていてもよい。
また、Angularモードにおける予測器の計算(選択)において、予測器リストを使うかどうか制御するためのフラグとして用いてもよい。
例えば、ptree_azimuth_scaling_enabledの値が「1」の場合は、かかる予測器の計算において、予測器リストを使うと定義し、ptree_ang_azimuth_scaling_enabledの値が「0」の場合は、かかる予測器の計算において、予測器リストを使わないと定義されていてもよい。
GPS2011は、ツリー合成部2020で、Angularモードにおいて、方位角の予測値の計算するために利用するためのレーザーの回転速度に関する値(ptree_ang_azimuth_step_minus1)を含んでもよい。
(ツリー合成部2020)
以下、図15~図19を用いてツリー合成部2020の動作の一例について説明する。
以下、図15~図19を用いてツリー合成部2020の動作の一例について説明する。
図17は、ツリー合成部2020における処理の一例を示すフローチャートである。なお、以下では「Predictive coding」を使用してツリーを合成する場合の例について説明する。
Predictive codingは、Predictive geometry codingや、Predictive geometryや、Predictive Treeとも呼ばれている。
Predictive geometry codingは、点群符号化装置100側で決めた任意の木構造に基づいて予測した位置情報及び当該点群データの位置情報の残差を復号し、両者を加算することで当該点群データの位置情報を復号する手段である。
図17に示すように、ステップS501において、ツリー合成部2020は、interprediction_enabled_flagの値に基づき、インター予測を使用するかどうかを判定する。
インター予測を使う場合、ツリー合成部2020は、ステップS502へ進み、インター予測を使わない場合、ツリー合成部2020は、ステップS505へ進む。
ステップS502において、ツリー合成部2020は、フレームバッファ2120から参照フレームを取得する。
フレームバッファ2120には、以前に復号したフレームが1つ記憶されているとしてもよく、復号したフレームのフレームバッファ2120への追加は、1つ或いは規定の数のフレームの復号が完了する毎に行われるとしてもよい。参照フレームの取得後、ツリー合成部2020は、ステップS503に進む。
ステップS503において、ツリー合成部2020は、global_motion_enabled_flagに基づき、グローバル動き補償を行うかどうかを判定する。
グローバル動き補償を行う場合、ツリー合成部2020は、ステップS504へ進み、グローバル動き補償を行わない場合、ツリー合成部2020は、ステップS505へ進む。
ステップS504において、ツリー合成部2020は、ステップS502で取得した参照フレームに対してグローバル動き補償を行う。
グローバル動き補償は、フレームごとの大域的な位置ずれを補正する処理であり、参照フレームの全て或いは指定範囲内の点群に対して、幾何情報復号部2010で復号したグローバル動きベクターに基づく回転・平行移動を適用する。グローバル動き補償の後、ツリー合成部2020は、ステップS505に進む。
ステップS505において、ツリー合成部2020は、スライスデータの復号を行う。ステップS505の具体的な処理は、後述する。スライスデータの復号後、ツリー合成部2020は、ステップS506へ進む。
ステップS506において、ツリー合成部2020は、処理を終了する。
なお、ステップS503及びステップS504の処理、つまり、グローバル動き補償の判定及び実行は、ステップS505のスライスデータ復号処理の中で行われてもよい。
図15は、上述のステップS505におけるスライスデータ復号の処理の一例を示すフローチャートである。
図15に示すように、ステップS1601において、ツリー合成部2020は、当該スライス内に含まれる全ての点群データの位置情報の復号が完了したかどうかを判定する。
この処理は、例えば、GSHに当該スライスに含まれる点群データ数を示す情報を伝送しておき、この点群データ数と既に処理したデータ数とを比較することで、全ての点の処理が完了したか否かを判定することができる。
全ての点群データの位置情報の復号が完了した場合は、本動作は、ステップS1613へ進み、処理を終了する。全ての点群データの位置情報の復号が完了していない場合は、本動作は、ステップS1602へ進む。
ステップS1602において、ツリー合成部2020は、点群データの復号対象ノード(処理対象ノード)の親ノードを設定する。
例えば、ツリー合成部2020は、各復号対象ノードの子ノードの数を復号し、かかる子ノード数の分だけ復号対象ノードのインデックスを格納しておく。
そして、ツリー合成部2020は、あるノードの後に復号対象ノードの処理を行う場合、当該ノードのインデックスの配列を参照し、かかる配列の末尾に格納されているインデックスを1つ取得し、取得したインデックスのノードを、かかる復号対象ノードの親ノードに設定してもよい。
かかる親ノードの設定が完了した後、本動作は、ステップS1603へ進む。
ステップS1603において、ツリー合成部2020は、Angularモードで処理を行うかを判定する。
例えば、ツリー合成部2020は、上述のgeom_angular_enabledの値を参照して、Angularモードで処理を行うかを判定することができる。
Angularモードで処理を行う場合は、本動作は、ステップS1604へ進み、Angularモードで処理を行わない場合は、本動作は、ステップS1610へ進む。
ステップS1604において、ツリー合成部2020は、ステップS1605で用いる予測器情報及び球面座標残差の復号を行う。ここで、球面座標残差は、半径や方位角やレーザーIDの残差を示す。かかる復号が完了したら、本動作は、ステップS1605へ進む。
ステップS1605において、ツリー合成部2020は、ステップS1604で復号した予測器情報に基づいて、位置情報の予測を行う。ここで、予測器情報は、予測器インデックス又は予測モードである。かかる位置情報の予測の具体的な方法は、後述する。
かかる位置情報の予測が完了した後、本動作は、ステップS1606へと進む。
ステップS1606において、ツリー合成部2020は、球面座標の再構成を行う。ツリー合成部2020は、かかる処理では、復号した球面座標残差と予測器とを加算することで、球面座標を再構成する。
かかる再構成が完了した後、本動作は、ステップS1607へと進む。
ステップS1607において、ツリー合成部2020は、直交整数座標の再構成を行う。ツリー合成部2020は、かかる処理では、再構成した球面座標に基づいて、球面座標の直交整数座標への変換を行うことができる。具体的な方法としては、例えば、非特許文献1に記載の手法で実現できる。
かかる直交整数座標の再構成が完了した後、本動作は、ステップS1608へ進む。
ステップS1608において、ツリー合成部2020は、直交整数座標残差の復号を行う。
直交整数座標残差の復号が完了した後、本動作は、ステップS1609へと進む。
ステップS1609において、ツリー合成部2020は、元座標の再構成を行う。ツリー合成部2020は、かかる処理では、復号した直交整数座標残差と再構成した直交整数座標とを加算することで、元座標の再構成を行う。
かかる元座標の再構成が完了した後、本動作は、ステップS1601へと戻る。
ステップS1610において、ツリー合成部2020は、位置情報の予測を行う。具体的には、ツリー合成部2020は、予測器を選択し、かかる予測器を位置情報の予測値とする。
例えば、ツリー合成部2020は、木構造に基づき計算される複数の予測器の中から、復号した予測器モードに基づき予測器を選択してもよい。
かかる位置情報の予測が完了した後、本動作は、ステップS1611へと進む。
ステップS1611において、ツリー合成部2020は、直交整数座標残差の復号を行う。
直交整数座標残差の復号が完了した後、本動作は、ステップS1612へと進む。
ステップS1612において、ツリー合成部2020は、元座標の再構成を行う。ツリー合成部2020は、かかる処理では、ステップS1611で復号した直交整数座標の残差とステップS1610で予測した位置情報とを加算することで、元座標を再構成する。
かかる元座標の再構成が完了した後、本動作は、ステップS1601へと戻る。
図18は、上述のステップS1605における位置情報の予測の処理の例を示すフローチャートである。
図18に示すように、ステップS701において、ツリー合成部2020は、予測器フラグを復号する。
ここで、スライスデータには、各ノードについて使用する予測器を示すフラグが含まれていてもよい。例えば、スライスデータには、インター予測器かイントラ予測器かを示すフラグや、インター予測器のインデックス等、非特許文献1及び非特許文献2に記載の内容と同様のフラグが含まれていてもよい。或いは、スライスデータには、後述するその他のフラグが含まれていてもよい。
予測器フラグを復号した後、ツリー合成部2020は、ステップS702へ進む。
ステップS702において、ツリー合成部2020は、ステップS701で復号したフラグに基づき、インター予測器を使用するかどうかを判定する。
インター予測器を使用する場合、ツリー合成部2020は、ステップS704へ進み、インター予測器を使用しない場合、ツリー合成部2020は、ステップS703へ進む。
ステップS703において、ツリー合成部2020は、処理対象ノードの座標についてイントラ予測を行う。
ここで、ツリー合成部2020は、かかるイントラ予測において、処理対象ノードの親或いは祖先ノード(例えば、親ノードの親ノード等)の座標に基づいて予測器を構成し、処理対象ノードの座標を予測する。
ステップS703の処理では、最初に、ツリー合成部2020は、予測に用いる予測器の種類を決定する。
例えば、ツリー合成部2020は、ptree_ang_azimuth_scaling_enabledの値に基づいて、適応的方位角量子化モードか否かを判定し、用いる予測器の種類を決定してもよい。
ツリー合成部2020は、予測器の種類として、例えば、適応的方位角量子化モードの場合、木構造を用いて計算される複数の予測器の中から、復号した予測モードに基づき利用する予測器を選択してもよい。
或いは、ツリー合成部2020は、適応的方位角量子化モードの場合、復号済ノードの位置情報を予測器としてリストに保持しておき、復号した予測器のインデックスに該当するものをリストから参照し、利用する予測器を選択してもよい。
ツリー合成部2020は、用いる予測器の種類が決定したら、かかる予測器を位置情報の予測値とする。
イントラ予測が完了した後、ツリー合成部2020は、ステップS705へ進む。
ステップS704において、ツリー合成部2020は、処理対象ノードの座標についてインター予測を行う。
ツリー合成部2020は、かかるインター予測において、参照フレームから処理対象ノードに対応するノードを予測器として選出し、選出された予測器の座標を処理対象ノードの座標の予測値とする。参照フレームから予測器を選出する方法は、後述する。
インター予測が完了した後、ツリー合成部2020は、ステップS705へ進む。
ステップS705において、ツリー合成部2020は、ステップS1605の処理を終了する。
図19は、ステップS704において、参照フレームから予測器を選出する処理の一例を示す図である。ただし、図19の例では、Angularモードが使用されているものとする。Angularモードにおいて処理対象ノードの親ノードの点は、直前或いはそれ以前に復号されていると考えてよい。
図19では、処理対象ノードの親ノードに対して、レーザーIDが等しく方位角が大きいノードを参照フレームから探し、そのうち方位角が最小の2つをそれぞれ予測器1及び予測器2とする。
例えば、ツリー合成部2020は、双方向予測を行ってもよい。以下、双方向予測を行う場合のツリー合成部2020の動作の一例について説明する。
第1に、ツリー合成部2020は、処理するフレームを一定数でグループ化し、グループ内において処理順序を入れ替えて処理してもよい。
例えば、ツリー合成部2020は、8フレーム分を1つのグループと見なし、グループ内フレームインデックスが0のフレームから7のフレームまでの処理を、0、7、1、2、3、4、5、6の順番で処理する。
ここで、グループ内フレームインデックスとは、グループ内における処理するフレームの順番ごとに割り振られた番号である。
また、各処理対象フレームにおけるインター予測時の参照フレームは、2つ存在してもよく、また、参照するフレームは、時系列的に未来のフレームであってもよい。
グループ内フレームインデックスオーダーパターンと、各グループ内フレームインデックスが参照するフレームは、APS2611若しくはASH2612に含まれるフラグとして復号されてもよい。
ここで、グループ内フレームインデックスオーダーパターンとは、グループ内フレームインデックスの順番のパターンのことである。
ツリー合成部2020は、双方向予測を行う場合、例えば、2つの参照フレームから、処理対象ノードの親ノードに対して、レーザーIDが等しく、方位角が大きいノードを参照フレームから探し、そのうち、方位角が最小の2つを、各参照フレームからそれぞれ2つずつ予測器とし、合せて4つの予測器を生成してもよい。そして、ツリー合成部2020は、その中から、復号した予測器インデックスに基づき、予測器として利用してもよい。
さらに、ツリー合成部2020は、各グループ内フレームインデックスが参照するフレームについて、参照フレームのリストを用意しておき、復号したリスト内インデックスの値に基づいて、かかるリスト内から参照するフレームを選択してもよい。
なお、ツリー合成部2020は、参照フレームのリストについて、当該処理フレームから見て、時系列的に過去のフレーム及び未来のフレームの2つのリストを用意してもよく、各フレームの処理を行うタイミングで更新されてもよい。
また、ツリー合成部2020は、グループ内フレームインデックスオーダーパターンごとに、各グループ内フレームインデックスが参照するフレームを固定化し、ハードコーディングしてもよい。
例えば、ツリー合成部2020は、双方予測を行う場合、選択された2つのフレームの中から、復号された各参照フレームの予測器インデックスに基づいて、1つの予測器を作成してもよい。
具体的には、ツリー合成部2020は、2つのフレームの線形予測値を予測器としてもよい。すなわち、ツリー合成部2020は、2つの参照フレームの予測器の平均値を予測器として利用してもよい。ここで、ツリー合成部2020は、予測する対象を、方位角、半径としてもよい。ツリー合成部2020は、方位角については、回転速度単位で量子化された値としても良い。例えば、ツリー合成部2020は、参照フレームと処理対象フレームとの距離に応じて、重みを付けてもよい。
図19の例では、ツリー合成部2020は、処理対象ノードの親ノードに対して、レーザーIDが等しく且つ方位角が大きいノードを参照フレームから探し、そのうちの方位角が最小の2つをそれぞれ予測器1及び予測器2とする。
図16は、上述のステップS703のイントラ予測の一例を示すフローチャートである。
図16に示すように、ステップS1701において、ツリー合成部2020は、ptree_ang_azimuth_scaling_enabledの値に基づいて、適応的方位角量子化モードであるか否かを判定する。
適応的方位角量子化モードである場合、本動作は、ステップS1702へ進む。一方、適応的方位角量子化モードではない場合、本動作は、ステップS1703へ進む。
ステップS1702において、ツリー合成部2020は、予測器インデックスを復号する。予測器インデックスの復号が完了後、本動作は、ステップS1704へ進む。
ステップS1703において、ツリー合成部2020は、予測モードを復号する。予測モードの復号が完了後、本動作は、ステップS1704へ進む。
ステップS1704において、ツリー合成部2020は、方位角ステップ数の復号を行う。方位角ステップ数の復号が完了後、本動作は、ステップS1705へ進む。
ステップS1705において、ツリー合成部2020は、球面座標残差を復号する。ツリー合成部2020は、非特許文献2に記載の方法を用いて、かかる復号を行ってもよい。復号が完了後、本動作は、ステップS1706へ進み、処理を終了する。
(属性情報復号部2060)
以下、図5~図6を用いて属性情報復号部2060で復号される制御データについて説明する。
以下、図5~図6を用いて属性情報復号部2060で復号される制御データについて説明する。
図5は、属性情報復号部2060で受信する符号化データ(ビットストリーム)の構成の一例である
図6及び図7は、APS2611及びASH2612のシンタックス構成の一例である。
図6及び図7は、APS2611及びASH2612のシンタックス構成の一例である。
なお、以下で説明するシンタックス名は、あくまで一例である。以下で説明したシンタックスの機能が同様であれば、シンタックス名は異なっていても差し支えない。
APS2611は、各APS2611を識別するためのAPS id情報(aps_geom_parameter_set_id)を含んでもよい。
なお、図4のDescriptor欄は、各シンタックスが、どのように符号化されているかを意味している。ue(v)は、符号無し0次指数ゴロム符号であることを意味し、u(1)は、1ビットのフラグであることを意味する。
APS2611は、逆量子化部2070において、逆量子化済み残差情報を、RAHT部2080及びLoD算出部2090のいずれに出力するかを制御するためのフラグ(attr_coding_type)を含んでもよい。
例えば、attr_coding_typeの値が「1」の場合は、LoD算出部2090に出力するように定義され、attr_coding_typeの値が「0」の場合は、RAHT部2080に出力するように定義されていてもよい。
APS2611は、RAHT部2080において、属性情報の予測を行うか否かを制御するためのフラグ(raht_prediction_enabled)を含んでもよい。
例えば、raht_prediction_enabledの値が「1」の場合、属性情報の予測を行うと定義され、raht_prediction_enabledの値が「0」の場合、属性情報の予測を行わないと定義されていてもよい。
APS2611は、RAHT部2080において、属性情報のイントラ予測を行うか否かを判定するために用いられる祖父母ノードの隣接ノード数の閾値を示す値(raht_prediction_threshold0)を含んでもよい。ここで、祖父母ノードとは、処理対象ノードの親ノードの親ノードのことである。
APS2611は、RAHT部2080において、属性情報のイントラ予測を行うか否かを判定するために用いられる親ノードの隣接ノード数の閾値を示す値(raht_prediction_threshold1)を含んでもよい。
APS2611は、RAHT部2080において、属性情報のイントラ予測を行うか否かを判定するために用いられる処理対象ノードのDC係数の予測値とRAHT変換により得られたDC係数とを除算又は減算した値の閾値を示す値(raht_prediction_intra_eligibility_threshold0)及び(raht_prediction_intra_eligibility_threshold1)を含んでもよい。
APS2611は、RAHT部2080において、属性情報の予測にサブノードを使うか否かを制御するフラグ(raht_subnode_prediction_enable_flag)を含んでもよい。
例えば、raht_subnode_prediction_enable_flagの値が「1」の場合、属性情報の予測にサブノードを使うと定義され、raht_subnode_prediction_enable_flagの値が「0」の場合、属性情報の予測にサブノードを使わないと定義されていてもよい。
APS2611は、RAHT部2080において属性情報のイントラ予測を行う際の重みパラメータ(raht_prediction_weights)を含んでもよい。
例えば、raht_prediction_weightsの値は、復号対象ノードとイントラ予測に用いる隣接ノードとの隣接の仕方に応じて定義されていてもよい。
APS2611は、RAHT部2080において、属性情報のインター予測を行うか否かを制御するためのフラグ(raht_inter_prediction_enabled)を含んでもよい。
例えば、raht_inter_prediction_enabledの値が「1」の場合、属性情報の予測を行うと定義され、raht_inter_prediction_enabledの値が「0」の場合、属性情報の予測を行わないと定義されていてもよい。
APS2611は、RAHT部2080において、属性情報のインター予測を有効化する階層を示す値(raht_inter_prediction_depth_minus1)を含んでもよい。
例えば、raht_inter_prediction_depth_minus1が「N-1」の場合、インター予測は、Octree構造の上位N階層までにおいて有効化してもよい。
APS2611は、属性情報のインター予測におけるスケーリングファクタを伝送するか否かを示す値(raht_send_inter_filters)を含んでもよい。
例えば、raht_send_inter_filtersが「1」の場合、属性情報のインター予測におけるスケーリングファクタを伝送すると定義し、raht_send_inter_filtersが「0」の場合、属性情報のインター予測におけるスケーリングファクタを伝送しないと定義されていてもよい。
APS2611は、属性情報のインター予測について、Octreeのルートノードの階層から、上位何層目までをインター予測のスケーリング適用外とするかを示す値(raht_inter_skip_layers)を含んでもよい。ここで、ルートノードとは、当該スライスにおいて、Octree分割が1度もされていない状態のノードのことである。
例えば、raht_inter_skip_layersが「3」の場合、1層目から3層目まではインター予測を適用しないと定義されていてもよい。
APS2611は、階層ごとのインター予測の適用可否モードを伝送するか否かを示す値(raht_enable_code_layer)を含んでもよい。若しくは、APS2611は、raht_prediction_enabledが「1」で且つraht_inter_prediction_enabledが「1」のときに、raht_enable_code_layerを含むものとしてもよい。
例えば、raht_enable_code_layerが「1」の場合、階層ごとのインター予測の適用可否モードを伝送すると定義し、raht_enable_code_layerが「0」の場合、階層ごとのインター予測の適用可否モードを伝送しないと定義してもよい。
APS2611は、RAHT部2080において、属性情報の予測方法を示すフラグ(biPredictionPrediod)を含んでもよい。
例えば、biPredictionPrediodが「0」の場合、属性情報の予測方法は「予測なし」又は「イントラ予測」と定義されていてもよいし、biPredictionPrediodが「1」の場合、属性情報の予測方法は「予測なし」又は「イントラ予測」又は「インター予測」と定義されていてもよいし、biPredictionPrediodが「2」の場合、属性情報の予測方法は「予測なし」又は「イントラ予測」又は「インター予測」又は「双方向予測」と定義されていてもよい。
双方向予測については、後述する。なお、属性情報の予測方法が「予測なし」とは、RAHT部2080において、AC係数の予測を行わずに、復号したAC係数をそのまま逆RAHTに用いることを示す。
APS2611は、属性情報のイントラ予測におけるスケーリングファクタを伝送するか否かを示す値(raht_send_inter_filters_intra)を含んでもよい。
例えば、raht_send_inter_filters_intraが「1」の場合、属性情報のイントラ予測におけるスケーリングファクタを伝送すると定義し、raht_send_inter_filters_intraが「0」の場合、属性情報のイントラ予測におけるスケーリングファクタを伝送しないと定義されていてもよい。
ASH2612は、raht_inter_prediction_enabledが「1」で且つraht_enable_code_layerが「1」の場合、後述の階層ごとのインター予測の適用可否モード(raht_attr_layer_code_mode)の数を示す値(layer_code_depth)を含んでもよい。
若しくは、ASH2612は、raht_enable_code_layer又はraht_send_inter_filtersのいずれかが「1」の場合、layer_code_depthを含んでもよい。
または、例えば、ASH2612は、raht_send_inter_filtersのみが「1」の場合に、layer_code_depthを含むものとしてもよい。
または、layer_code_depthは、当該フレームの階層の数から1を減算した値と定義してもよく、復号後に1を加算して利用してもよい。
または、layer_code_depthが「0」の場合は、layer_code_depthを「0」として利用し、「0」以外の場合は、復号後に1を減算して利用してもよい。
または、layer_code_depthは、当該スライスの階層数から1を引いた値と、raht_inter_prediction_depth_minus1のうち、小さい方の値と等しくなるように設定されてもよい。 ASH2612は、raht_enable_code_layerが「1」の場合、layer_code_depthの数だけ、階層ごとのインター予測の適用可否モード(raht_attr_layer_code_mode)を含んでもよい。
例えば、各階層において、インター予測を適用する場合は「1」と定義されていてもよく、インター予測を適用しない場合は「0」と定義されていてもよい。
或いは、raht_attr_layer_code_modeを3ビット構成として、各ビットに示すフラグについて、以下のように定義してもよい。
1ビット目を「予測なし」又は「予測あり」を示す値と定義し、1ビット目が「0」のときに「予測なし」と定義し、1ビット目が「1」のときに「予測あり」と定義してもよい。
2ビット目を、「予測方法」を示す値と定義し、2ビット目が「0」のときに「イントラ予測」と定義し、2ビット目が「1」のときに「インター予測」と定義してもよい。
3ビット目を、「インター予測の方法」を示す値と定義し、3ビット目が「0」のときに「インター予測」と定義し、3ビット目が「1」のときに「双方向予測」と定義してもよい。
また、biPredictionPrediodの値に応じて、復号するraht_attr_layer_code_modeのビット数を決めてもよい。
例えば、biPredictionPrediodが「0」のときは、raht_attr_layer_code_modeとしては1ビット目のみが復号されるものとしてもよい。
なお、例えば、biPredictionPrediodが「0」で且つraht_attr_layer_code_modeが「1」である場合、予測方法としてはイントラ予測と定義されてもよい。
biPredictionPrediodが「1」のときは、raht_attr_layer_code_modeとしては1ビット目及び2ビット目のみが復号されるものとしてもよい。
biPredictionPrediodが「2」のときは、raht_attr_layer_code_modeとしては1ビット目、2ビット目及び3ビット目が復号されるものとしてもよい。
ASH2612は、raht_send_inter_filtersが「1」の場合、インター予測におけるスケーリングファクタの個数(num_filter_taps)だけ、スケーリングファクタからの残差(raht_filter_taps)が含まれてもよい。
raht_filter_tapsは、図7に示すように、raht_filter_taps[i]の復号において、raht_attr_layer_code_mode[i+raht_inter_skip_layers-1]が「1」のとき、復号されるものとしてもよい。
また、raht_filter_tapsの初期値は、「0」として定義されていてもよい。
また、raht_attr_layer_code_mode[i+raht_inter_skip_layers-1]が「0」の場合、raht_filter_taps[i]は、初期値「0」が設定されてもよい。
また、raht_filter_taps[i]の復号において、raht_inter_skip_layersが「0」の場合は、iが「0」の場合において初期値「0」が設定されてもよい。
また、図14は、raht_inter_skip_layersを基に、raht_filter_tapsを復号する場合のシンタックス構成の一例である。
以下、図7で説明したシンタックス構成との差分のみを示す。raht_filter_tapsは、raht_filter_taps[i]の復号において、raht_inter_skip_layersが「0」の場合は、iが「0」の場合においても復号するものとしてもよい。
num_filter_tapsは、復号された、インター予測を適用する階層を指定するシンタックスに基づいて導出されてもよい。
以下では、num_filter_tapsを導出する方法の一例について説明する。
num_filter_tapsは、raht_enable_code_layerが「0」の場合は、ASH2612に含まれることとしてもよいし、raht_enable_code_layerが「1」の場合は、以下の方法で導出されることとしてもよい。
例えば、num_filter_tapsは、上位何層目までをインター予測のスケーリング適用外とするかを示す値(raht_inter_skip_layers)、インター予測の有効階層数を示す値(raht_inter_prediction_depth_minus1)及びraht_attr_layer_code_modeの数を示す値(layer_code_depth)に基づいて導出されてもよい。
ここで、インター予測の有効階層数とは、インター予測を適用する階層の閾値を示す数値のことである。例えば、インター予測の有効階層数は、raht_inter_prediction_depth_minus1に1を加算した値としてもよく、raht_inter_prediction_depth_minus1が「N―1」のとき、インター予測の有効階層数は「N」と定義されていてもよい。
num_filter_tapsは、具体的には、例えば、当該フレームの階層の数が、インター予測の有効階層数よりも大きい場合は、インター予測の有効階層数から、上位何層目までをインター予測のスケーリング適用外とするかを示す値を減算することで求めてもよいし、raht_attr_layer_code_modeの数を示す値がインター予測の有効階層数よりも小さい場合は、raht_attr_layer_code_modeの数を示す値から、上位何層目までをインター予測のスケーリング適用外とするかを示す値を減算することで求めてもよい。
すなわち、num_filter_tapsは、以下のように導出されてもよい。
若しくは、num_filter_tapsは、raht_inter_skip_layersやraht_inter_prediction_depth_minus1の値に関わらず、以下のように導出されてもよい。
num_filter_taps=layer_code_depth-raht_inter_skip_layers-1
または、num_filter_tapsは、
num_filter_taps=layer_code_depth-raht_inter_skip_layers
と導出されてもよく、このとき、raht_filter_tapsの復号において、raht_attr_layer_code_mode[i+raht_inter_skip_layers]が「1」のとき、raht_filter_taps[i]が復号されるものとしてもよい。
または、num_filter_tapsは、
num_filter_taps=layer_code_depth-raht_inter_skip_layers
と導出されてもよく、このとき、raht_filter_tapsの復号において、raht_attr_layer_code_mode[i+raht_inter_skip_layers]が「1」のとき、raht_filter_taps[i]が復号されるものとしてもよい。
また、属性情報復号部2060は、階層ごとのインター予測の適用可否モードを用いてスケーリングファクタの個数を導出してもよい。
具体的には、属性情報復号部2060は、例えば、階層ごとのインター予測の適用可否モードに基づいて、インター予測が適用される階層をカウントしてもよい。
ただし、属性情報復号部2060は、上位何層目までをインター予測のスケーリング適用外とするかを示す値に基づいてインター予測のスケーリングが適用外となる階層については、カウントから除外してもよい。
或いは、属性情報復号部2060は、階層ごとのインター予測の適用可否モードに基づいて、当該階層がインター予測が適用される階層である場合のみ、スケーリングファクタを復号するものとしてもよい。
ただし、属性情報復号部2060は、上位何層目までをインター予測のスケーリング適用外とするかを示す値に基づいて、インター予測のスケーリングが適用外となる階層については、復号しなくてもよい。
ASH2612は、raht_send_inter_filters_intraが「1」の場合、イントラ予測におけるスケーリングファクタの個数(num_filter_taps_intra)を含んでもよい。
ASH2612は、raht_send_inter_filters_intraが「1」の場合、イントラ予測におけるスケーリングファクタの個数(num_filter_taps_intra)を含んでもよい。
ASH2612は、num_filter_taps_intraの数だけ、スケーリングファクタの残差(raht_filter_taps_intra)を含んでいてもよい。
num_filter_taps_intraは、復号されたイントラ予測を適用する階層を指定するシンタックスに基づいて導出されてもよい。
なお、以上では、APS2611にて、上述の情報を復号する例について説明したが、かかる情報は、ASH2612に含まれていてもよいし、SPS2601に含まれていてもよい。すなわち、かかる情報は、いずれかのヘッダにて含まれていればよい。
(RAHT部2080)
図8~図13を用いて、RAHT部2080の処理の一例を説明する。
図8~図13を用いて、RAHT部2080の処理の一例を説明する。
図8は、RAHT部2080の処理の一例を示すフローチャートである。
図8に示すように、ステップS28001において、RAHT部2080は、Octreeと呼ばれる手法を用いて、所定のサイズになるまでノードを再帰的に8分木分割する。かかる分割が完了後、本動作は、ステップS28002へ進む。
ステップS28002において、RAHT部2080は、Octreeによって分割された各ノードにおいて、ノードの下位の階層に属する点の総数を集計する。
具体的には、RAHT部2080は、ある階層のノードを順番に走査し、各ノードに属する点の数を記録する。次に、RAHT部2080は、1つ上の階層のノードにおいて、各ノードの子ノードにおいて記録された点の数を合算し、各ノードに属する点の数を算出する。
RAHT部2080は、以上の走査を最下層から最上位の階層まで順に繰り返す。取得した点の総数は、後述のステップS28005において、RAHTの逆変換の重みとして利用される。かかる算出が完了後、本動作は、ステップS28003へ進む。
ステップS28003において、RAHT部2080は、Octreeの最上位の階層に属するノードのDC係数を復号する。或いは、RAHT部2080は、イントラ予測を用いてDC係数を予測し、DC係数の予測残差を復号して足し合わせることで、DC係数を算出してもよい。
RAHT部2080は、かかるDC係数の復号が完了後、以下の式で、ステップS28002で取得したルートノードに属する点の総数wrootと、復号したDC係数DCrootを用いて、ルートノードの属性値Arootを算出する。
ステップS28004において、RAHT部2080は、当該階層内に含まれる全てのノードの属性情報の復号が完了したかどうかを判定する。
完了していない場合、本動作は、ステップS28005へ進み、完了した場合、本動作は、ステップS28007へ進む。
ステップS28005において、RAHT部2080は、AC係数を復号する。具体的には後述する。かかる復号が完了後、本動作は、ステップS28006へ進む。
ステップS28006において、RAHT部2080は、集計した各ノードの下位の階層に属する点の総数と、復号したAC係数と、後述する方法で上位階層のノードから算出したDC係数とに基づいて、RAHTの逆変換を用いて、属性値を算出する。
ここで、RAHTの逆変換は、Octreeによって8分木分割された、2×2×2個の8個のノード単位で行われる。
具体的には、属性値A1,A2,…Akは、k個のサブノードを保持するノードのDC係数DCと、AC係数AC1,AC2,…ACk-1及び各サブノードの下位の階層に属する点の総数w=w1,w2,…wkを用いて、以下の式(1)によって求められる。
かかる変換処理は、上位階層のノードから下位階層のノードの順に繰り返し行うことを想定しており、
ステップS28007において、RAHT部2080は、全階層のノードの復号が完了したかを判定する。
完了していない場合、本動作は、処理対象階層を1つ下の階層へ移し、ステップS28004へ進む。完了した場合、本動作は、ステップS28008へ進み、処理を終了する。
図9は、ステップS28004の処理の一例を示すフローチャートである。
図9に示すように、ステップS28101において、RAHT部2080は、AC係数を予測するかを判定する。RAHT部2080は、かかる判定を行う際に、raht_prediction_enabledの値を参照し、かかる値を用いてもよい。
RAHT部2080は、現在の処理対象ノードにおいて、AC係数の予測を行うか否かを示すフラグを復号し、かかるフラグの値を用いてもよい。
かかるフラグは、ノードごとに復号されてもよいし、階層ごとに復号されてもよい。かかるフラグは、raht_prediction_enabledの値が予測が有効であることを示す値「1」であった場合のみ復号されるとしてもよい。かかるフラグは、スライスデータに含まれていてもよい。
判定の結果、AC係数を予測しない場合、本動作は、ステップS28102へ進み、AC係数を予測する場合、本動作は、ステップS28103及びS28104へ進む。
ステップS28102において、RAHT部2080は、AC係数を復号する。かかる復号が完了後、本動作は、ステップS28113へ進み、処理を終了する。
ステップS28107において、RAHT部2080は、インター予測が有効かどうかを判定する。
RAHT部2080は、かかる判定には、raht_inter_prediction_enabledの値を参照し、かかる値を用いてもよい。
判定の結果、インター予測が有効の場合、本動作は、ステップS28109へ進み、インター予測が無効の場合、本動作は、ステップS28112へ進む。
ステップS28109において、RAHT部2080は、処理対象ノードが含まれる階層の深さが閾値以下であるかを判定する。RAHT部2080は、閾値として、raht_inter_prediction_depth_minus1の値を参照し、かかる値を用いてもよい。
判定の結果、深さが閾値以下の場合、本動作は、ステップS28110へ進み、深さが閾値より大きい場合、本動作は、ステップS28104へ進む。
ステップS28110において、RAHT部2080は、処理対象ノードのAC係数をインター予測するか否かを判定する。
RAHT部2080は、判定には、インター予測が実行可能かどうかを調べ、実行可能な場合にはインター予測を行わないとしてもよい。具体的には後述する。
RAHT部2080は、判定には、処理対象ノードのAC係数をインター予測するか否かを示すフラグを復号し、かかるフラグの値を用いてもよい。かかるフラグは、ノードごとに復号されてもよいし、階層ごとに復号されてもよい。かかるフラグは、インター予測が実行可能と判定された場合にのみ復号され、判定が行われるとしてもよい。かかるフラグは、スライスデータに含まれていてもよい。
かかるフラグは、raht_attr_layer_code_modeを参照し、その値を用いてもよい。かかる値は、処理対象ノードが含まれる階層の深さが、layer_code_depthよりも小さい場合、且つ、処理対象ノードが含まれる階層の深さが、ルートノードの階層よりも大きい場合、参照するものとしてもよい。
すなわち、かかる値は、depth-1<layer_code_depth、且つ、depth-1≧0 のとき、参照するものとしてもよい。
ここで、depthは、ルートノードの階層において「0」と定義され、階層が深くなるにつれてカウントアップされる値である。
参照しない場合は、インター予測が実行不可能と判定されてもよい。
インター予測が実行可能であると判定された場合、本動作は、ステップS28111へと進み、インター予測が実行不可能であると判定された場合、本動作は、ステップS28104へと進む。
ステップS28111において、RAHT部2080は、処理対象ノードのAC係数のインター予測を行う。具体的には後述する。
ステップS28104において、RAHT部2080は、処理対象ノードのAC係数のイントラ予測を行うのか否かを判定する。
例えば、RAHT部2080は、処理対象ノードの親ノード及び祖父母ノードの隣接ノードの数が閾値以上であるか否かを判定し、閾値以上である場合にイントラ予測を行うと判定し、閾値以下である場合(すなわち、AC係数のイントラ予測の精度が高くないと判定された場合)にイントラ予測を行わないと判定してもよい。
RAHT部2080は、上述のraht_prediction_threshold0の値を参照し、かかる値を祖父母ノードの隣接ノードの閾値として用いてもよく、また、上述のraht_prediction_threshold1の値を参照し、かかる値を親ノードの隣接ノードの閾値として用いてもよい。
若しくは、RAHT部2080は、上述のraht_prediction_threshold0及びraht_prediction_threshold1を用いた判定においてイントラ予測を行うと判定された処理対象ノードについて、追加の判定を行ってもよい。
すなわち、ステップS28104において、RAHT部2080は、RAHTを用いた属性値のAC係数のイントラ予測の効果について判定する。換言すると、ステップS28104において、RAHT部2080は、RAHTを用いた属性値のAC係数のイントラ予測の精度が高いか否かについて判定する。
例えば、RAHT部2080は、DC係数を用いて、イントラ予測を行うのか否か(すなわち、AC係数のイントラ予測の精度が高いか否か)について判定してもよい。
具体的には、RAHT部2080は、処理対象ノードのDC係数の予測値でステップS28006において得られたDC係数を除算した値が閾値の範囲内だった場合(すなわち、AC係数のイントラ予測の精度が高いと判定された場合)、イントラ予測を行うと判定し、閾値の範囲外だった場合(すなわち、AC係数のイントラ予測の精度が高くないと判定された場合)、イントラ予測を行わないと判定してもよい。
若しくは、RAHT部2080は、処理対象ノードのDC係数の予測値からステップS28006において得られたDC係数を減算した値が閾値の範囲内だった場合(すなわち、AC係数のイントラ予測の精度が高いと判定された場合)、イントラ予測を行うと判定し、閾値の範囲外だった場合(すなわち、AC係数のイントラ予測の精度が高くないと判定された場合)、イントラ予測を行わないと判定してもよい。
RAHT部2080は、上述のraht_prediction_intra_eligibility_threshold0の値及びraht_prediction_intra_eligibility_threshold1の値を参照し、閾値として、かかる値を用いてもよい。
具体的には、RAHT部2080は、処理対象ノードのDC係数の予測値でステップS28006において得られたDC係数を除算した値、或いは、処理対象ノードのDC係数の予測値からステップS28006において得られたDC係数を減算した値が、raht_prediction_intra_eligibility_threshold0の値以上で且つraht_prediction_intra_eligibility_threshold1の値以下であるとき(すなわち、AC係数のイントラ予測の精度が高いと判定された場合)、イントラ予測を行うと判定してもよい。
ここで、DC係数の予測値とは、後述するステップS28207において属性値の予測値をAC係数に変換する際に同時に得られる値であり、ステップS28104において同様の処理を行うことで得ることができる。
イントラ予測を行わないと判定された場合、本動作は、ステップS28102へと進み、イントラ予測を行うと判定された場合、本動作は、ステップS28112へと進む。
ステップS28112において、RAHT部2080は、処理対象ノードのAC係数のイントラ予測を行う。具体的には後述する。
ステップS28103において、RAHT2080は、AC係数残差を復号する。かかる復号が完了後、本動作は、ステップS28105へ進む。
ステップS28105において、RAHT部2080は、復号したAC係数の残差と予測したAC係数とを加算し、AC係数の再構成を行う。かかる再構成が完了後、本動作は、ステップS28106へと進み、処理を終了する。
なお、ステップS28109の条件分岐は、省略されてもよい。
ステップS28111のインター予測の処理において、ステップS28112のイントラ予測と同等の処理も一緒に行い、インター予測及びイントラ予測の結果を組み合わせて予測してもよい。具体的には後述する。
図10は、ステップS28112のイントラ予測の処理の一例を示すフローチャートである。
図10に示すように、ステップS28201において、RAHT部2080は、サブノード階層の隣接ノードを使ってイントラ予測を行うか否かを判定する。
RAHT部2080は、判定には、raht_subnode_prediction_enable_flagの値を参照し、かかる値を用いてもよい。
RAHT部2080は、サブノード階層の隣接ノードを使わない場合、上位の階層の隣接ノードのみを使ってイントラ予測を行う。
ここで、上位の階層の隣接ノードとは、復号対象ノードの親ノードが隣接するノードのうち面を隣接する6個のノードと、エッジを隣接する12個のノード及び親ノード自身の合計19個のノードのうち、復号対象ノードが面を隣接している3個のノードと、エッジを隣接している3個のノードと、親ノード自身の7個のノードとである。
図11は、復号対象ノードと上位の階層の隣接ノードとの関係を示す図である。
RAHT部2080は、サブノード階層の隣接ノードを使う場合、上位の階層の隣接ノードとサブノード階層の隣接ノードとを使ってイントラ予測を行う。
ここで、サブノード階層の隣接ノードとは、上位の階層の隣接ノードのサブノードのうち、復号対象ノードが面若しくはエッジを隣接しており且つ復号済みのノードである。
図12は、復号対象ノードとサブノード階層の隣接ノードとの関係を示す図である。
判定の結果、サブノード階層の隣接ノードを使わずにイントラ予測を行う場合、本動作は、ステップS28202へ進み、サブノード階層の隣接ノードを使ってイントラ予測を行う場合、本動作は、ステップS28204へ進む。
ステップS28202において、RAHT部2080は、上位の階層の隣接ノードの属性値を取得する。上位の階層の隣接ノードの属性値を取得した後、本動作は、ステップS28203へ進む。
ステップS28203において、RAHT部2080は、復号対象ノードの属性値を予測する。
RAHT部2080は、取得したk個の上位の階層の隣接ノードの属性値attriと、隣接ノードiの種類に応じた重みwiとを利用して、以下の式で、属性値attrの予測を行ってもよい。
かかる属性値の予測が完了後、本動作は、ステップS28207へ進む。
ステップS28204において、RAHT部2080は、上位階層の隣接ノードの属性値を取得する。
ここで、属性値を取得する対象は、上位の階層の隣接ノードのうち、各隣接ノードのサブノードが復号済みでないノード、或いは、上位の階層の隣接ノードのうち、サブノードが復号済みであっても、復号対象ノードと面又はエッジを隣接しているサブノードが存在しないノードである。
かかる属性値の取得が完了後、本動作は、ステップS28205へ進む。
ステップS28205において、RAHT部2080は、サブノード階層の隣接ノードの属性値を取得する。サブノード階層の隣接ノードの属性値を取得後、本動作は、ステップS28206へ進む。
ステップS28206において、RAHT部2080は、復号対象ノードの属性値を予測する。
RAHT部2080は、取得したk個の上位の階層の隣接ノード及びサブノード階層の隣接ノードの属性値attriと、隣接ノードの種類iに応じた重みwiとを利用して、以下の式で、属性値attrの予測を行ってもよい。
かかる属性値の予測の完了後、本動作は、ステップS28207へ進む。
ステップS28207において、RAHT部2080は、予測した属性値をAC係数に変換する。AC係数は、予測した属性値をRAHTすることで生成される。例えば、RAHT部2080は、かかる変換方法として、非特許文献1に記載の方法を用いてもよい。
RAHT部2080は、変換したAC係数の予測値ACintraについては、スケーリングファクタαintraによって、αintra倍してもよい。
ACpred=αintra×ACintra
ここで、係数αintraは、任意の実数であってもよい。係数αintraは、ノードごとに復号されてもよいし、階層ごとに復号されてもよい。係数αintraは、APS2611やASH2612に含まれるシンタックスとして復号されてもよいし、スライスデータに含まれていてもよい。係数αintraは、ハードコーディングされていてもよい。
ここで、係数αintraは、任意の実数であってもよい。係数αintraは、ノードごとに復号されてもよいし、階層ごとに復号されてもよい。係数αintraは、APS2611やASH2612に含まれるシンタックスとして復号されてもよいし、スライスデータに含まれていてもよい。係数αintraは、ハードコーディングされていてもよい。
例えば、係数αintraについて、以下のように、階層の深さdepthを用いて定義し、係数αintraの代わりにαintra'が復号されてもよい。
αintra=1+αintra'×2-depth
例えば、整数aから整数bまでの範囲を取る整数βを定義し、RAHT部2080は、整数βを復号してもよい。
例えば、整数aから整数bまでの範囲を取る整数βを定義し、RAHT部2080は、整数βを復号してもよい。
RAHT部2080は、係数αintraについて、以下のように、復号した整数βに整数cを加算した後、整数cで除算した値として算出してもよい。
αintra=(β+c)/c
ここで、RAHT部2080は、指数ゴロム符号を用いて、整数βを復号してもよい。
ここで、RAHT部2080は、指数ゴロム符号を用いて、整数βを復号してもよい。
或いは、例えば、復号されたraht_filter_taps_intraの値が「X」の場合、RAHT部2080は、128からXを減算し、減算した結果を7ビット右シフトした値をスケーリングファクタαintraとして、インター予測に用いてもよい。
例えば、raht_filter_taps_intraの値が「0」の場合、属性情報のインター予測におけるスケーリングファクタαintraの値は、128から0を減算し、減算した結果を7ビット右シフトした値「1」と定義してもよい。
RAHT部2080は、例えば、raht_attr_layer_code_modeを参照し、処理対象ノードでイントラ予測が適用されると判定された場合は、復号されたraht_filter_taps_intraの値を用いて、イントラ予測値をスケーリングしてもよい。
AC係数の変換が完了後、本動作は、ステップS28208へ進み、処理を終了する。
図13は、ステップS28111のインター予測処理の一例を示す図である。
RAHT部2080は、処理対象ノードのAC係数について、参照フレーム内の対応するノードである参照ノードの情報を用いて予測する。ここで、参照ノードの情報は、その属性値やAC係数であってもよい。また、参照フレームは、別の復号済みのフレームを指し、その情報は、前レームバッファ2120に含まれるとしてもよい。
RAHT部2080は、参照フレームには、処理対象フレームと同じOctree構造を当てはめてもよい。かかる場合、点がない位置にノードが設定される可能性がある。そのようなノードを空ノードと呼ぶ。参照ノードが空ノードだった場合、RAHT部2080は、ステップS28110で、インター予測を実行不可としてもよい。
RAHT部2080は、参照フレームに対して、処理対象フレームと独立にOctreeを適用し、処理対象フレームと異なるOctree構造を設定してもよい。かかる場合、必ずしも処理対象フレームと同じ位置にノードが存在しない可能性がある。処理対象ノードに対応する位置に参照ノードが見つからない場合、RAHT部2080は、ステップS28143で、インター予測を実行不可としてもよい。
参照ノードが空ノードだった場合、或いは、参照ノードが見つからなかった場合、RAHT部2080は、参照フレーム内の近傍位置のノードの情報を用いて参照ノードの情報を推定して補間してもよい。
例えば、RAHT部2080は、参照ノード位置に対する隣接ノード、最近傍ノード或いはk近傍ノードの属性値又はAC係数の平均値を、それぞれ参照ノードの属性値又はAC係数として推定して補間してもよい。
なお、RAHT部2080は、上述の補間について、特定の階層以降にのみ適用してもよい。
RAHT部2080は、属性値のAC係数を復号しない方が符号化効率が良いと判定された場合に、処理対象ノードの配下の階層ノードの属性値のAC係数の復号をスキップしてもよい。
具体的には、RAHT部2080は、処理対象ノードを含む親ノード内に、復号対象となるノードが2つ以下になった場合、或いは、復号したAC係数の値が閾値以下になった場合、或いは、復号対象となるノードが2つ以下且つ復号したAC係数の値が閾値以下になった場合に、属性値のAC係数を復号しない方が符号化効率が良いと判定し、かかる処理対象ノードの配下の階層ノードのAC係数の復号をスキップしてもよい。
ここで、かかる閾値は、ハードコーディングされた値でもよいし、raht_prediction_skip_thresholdの値を参照し、かかる値が用いられてもよい。
また、上述の処理対象ノードの配下の階層のAC係数の復号をスキップは、特定の階層以降にのみ適用されてもよい。
RAHT部2080は、処理対象ノードのAC係数について、例えば、参照ノードの属性値から予測してもよい。
具体的には、RAHT部2080は、参照ノードの復号済みの属性値の値Attrinterを用いて処理対象ノードの属性値の予測値Attrpredを求め、かかる処理対象ノードの属性値の予測値Attrpredに対してRAHTを適用することで処理対象ノードのAC係数の予測値ACpredを求めるとしてもよい。
Attrpred=Attrinter
ACpred=RAHT(Attrpred)
RAHT部2080は、処理対象ノードのAC係数について、例えば、参照ノードのAC係数から直接予測してもよい。
ACpred=RAHT(Attrpred)
RAHT部2080は、処理対象ノードのAC係数について、例えば、参照ノードのAC係数から直接予測してもよい。
具体的には、RAHT部2080は、参照フレームにおいてRAHTを用いて参照ノードのAC係数の値ACinterを算出し、その値を処理対象ノードのAC係数の予測値ACpredとしてもよい。
ACpred=ACinter
RAHT部2080は、参照ノードのAC係数について、参照フレームの各ノードのAC係数をフレームバッファ2120内に記録しておき、フレームバッファ2120内の値を参照することで得てもよい。かかる場合、RAHT部2080は、フレームバッファ2120内で参照ノードのAC係数が存在しない場合に、ステップS28110で、インター予測が実行不可としてもよい。
RAHT部2080は、参照ノードのAC係数について、参照フレームの各ノードのAC係数をフレームバッファ2120内に記録しておき、フレームバッファ2120内の値を参照することで得てもよい。かかる場合、RAHT部2080は、フレームバッファ2120内で参照ノードのAC係数が存在しない場合に、ステップS28110で、インター予測が実行不可としてもよい。
なお、RAHT部2080は、Attrinter及びACinterについて、それぞれスケーリングファクタαによってα倍してもよい。
Attrpred=αAttrinter
或いは
ACpred=αACinter
係数αは、任意の実数をとってよい。係数αは、ノードごとに復号されてもよいし、階層ごとに復号されてもよい。係数αは、APS2611やASH2612に含まれるシンタックスとして復号されてもよいし、スライスデータに含まれていてもよい。
或いは
ACpred=αACinter
係数αは、任意の実数をとってよい。係数αは、ノードごとに復号されてもよいし、階層ごとに復号されてもよい。係数αは、APS2611やASH2612に含まれるシンタックスとして復号されてもよいし、スライスデータに含まれていてもよい。
例えば、係数αを、以下のように階層の深さdepthを用いて定義し、係数αの代わりにα’が復号されてもよい。
α=1+α’・2-depth
例えば、整数βを、整数aから整数bまでの範囲を取る整数を定義し、βを復号してもよい。係数αは、以下のように、復号したβに整数cを加算した後、整数cで除算した値として算出してもよい。
例えば、整数βを、整数aから整数bまでの範囲を取る整数を定義し、βを復号してもよい。係数αは、以下のように、復号したβに整数cを加算した後、整数cで除算した値として算出してもよい。
α=(β+c)/c
整数βは、指数ゴロム符号を用いて復号されてもよい。
整数βは、指数ゴロム符号を用いて復号されてもよい。
若しくは、例えば、RAHT部2080は、復号されたraht_filter_tapsの値が「X」の場合、128からXを減算し、減算した結果を7ビット右シフトした値をスケーリングファクタαとして、インター予測に用いてもよい。
例えば、raht_filter_tapsの値が「0」の場合、属性情報のインター予測におけるスケーリングファクタαの値は、128から0を減算し、減算した結果を7ビット右シフトした値「1」と定義してもよい。
RAHT部2080は、例えば、インター予測を適用する階層を指定するシンタックスに基づいて、インター予測を適用するか否かを判定し、かかる階層においてインター予測を適用すると判定された場合は、復号されたraht_filter_tapsの値を用いて、インター予測値をスケーリングしてもよい。
一方、RAHT部2080は、かかる階層においてインター予測のスケーリングを適用しないと判定された場合は、インター予測をスケーリングしなくてもよい。
具体的には、RAHT部2080は、処理対象ノードが含まれる階層の深さが、インター予測の有効階層数以下であり、且つ、処理対象ノードが含まれる階層の深さが、上位何層目までをインター予測のスケーリング適用外とするかを示す値以上である場合、インター予測値をスケーリングすると判定してもよい。
ここで、RAHT部2080は、インター予測の有効階層数としては、raht_inter_prediction_depth_minus1の値を参照し、かかる値を用いてもよい。
また、RAHT部2080は、上位何層目までをインター予測のスケーリング適用外とするかを示す値としては、前記raht_inter_skip_layersの値を参照し、かかる値を用いてもよい。
若しくは、RAHT部2080は、例えば、処理対象ノードが含まれる階層の深さがインター予測の有効階層数以下であり、且つ、処理対象ノードが含まれる階層の深さが上位何層目までをインター予測のスケーリング適用外とするかを示す値以上であり、且つ、処理対象ノードが含まれる階層においてインター予測が適用されると判定された場合に、インター予測値をスケーリングすると判定してもよい。
ここで、RAHT部2080は、処理対象ノードが含まれる階層において、上述のraht_attr_layer_code_modeの値を参照し、かかる値に基づいて、インター予測が適用するか否かの判定を行ってもよい。
若しくは、RAHT部2080は、処理対象ノードが含まれる階層の深さが、上位何層目までをインター予測のスケーリング適用外とするかを示す値以上である場合、インター予測値をスケーリングすると判定してもよい。
ここで、RAHT部2080は、上位何層目までをインター予測のスケーリング適用外とするかを示す値としては、前記raht_inter_skip_layersの値を参照し、かかる値を用いてもよい。
以上では、階層ごとのスケーリングファクタが1個ずつの場合について説明したが、例えば、スケーリングファクタをAC係数の周波数インデックスidxごとに伝送する場合においても、上述で算出したスケーリングファクタの個数に階層ごとのスケーリングファクタ数を乗算することで、復号するスケーリングファクタ数を導出できる。スケーリングファクタ数は、例えば、7としてもよい。
例えば、復号対象ノードの親ノードのAC係数ACparentと、親ノードを復号した際のインター予測値ACparent_interを用いて、以下のように算出してもよい。
α=ACparent/ACparent_inter
例えば、RAHT部2080は、復号対象ノードのN個の隣接ノードのAC係数ACneighbor1、ACneighbor2、…、ACneighborNと、各隣接ノードを復号した際のインター予測値ACneighbor_inter1、ACneighbor_inter2、…、ACneighbor_interNとを用いて、コストが最小になるようにαを算出してもよい。
例えば、RAHT部2080は、復号対象ノードのN個の隣接ノードのAC係数ACneighbor1、ACneighbor2、…、ACneighborNと、各隣接ノードを復号した際のインター予測値ACneighbor_inter1、ACneighbor_inter2、…、ACneighbor_interNとを用いて、コストが最小になるようにαを算出してもよい。
コストとは、例えば、各隣接ノードのAC係数とAC係数の予測器の二乗誤差との総和としてもよい。隣接ノードは、例えば、面を隣接するノードのみを対象としてもよいし、面を隣接するノードとエッジを隣接するノードを対象としてもよい。
RAHT部2080は、同様の操作を、ステップS28003におけるDC係数のインター予測で行ってもよい。
DCpred=αDCinter
ここで、参照ノードのDC係数をDCinterとし、ルートノードのDC係数の予測値をDCpredとする。
ここで、参照ノードのDC係数をDCinterとし、ルートノードのDC係数の予測値をDCpredとする。
また、RAHT部2080は、インター予測及びイントラ予測を組み合わせて属性値或いはAC係数の予測値を算出してもよい。
例えば、RAHT部2080が属性値の予測を求める場合の例について、以下に示す。
Attrpred=Winter・Attrinter+Wintra・Attrintra
ここで、Attrinter及びAttrintraは、それぞれ属性値のインター予測及びイントラ予測とする。また、Winter及びWintraは、それぞれインター予測及びイントラ予測の重みとする。
ここで、Attrinter及びAttrintraは、それぞれ属性値のインター予測及びイントラ予測とする。また、Winter及びWintraは、それぞれインター予測及びイントラ予測の重みとする。
Winter及びWintraは、処理対象階層の深さdepthによって深い層ほどイントラ予測が重視されるように定めてもよい。例えば、
Winter=1-depth/N
Wintra=depth/N
Nは、インター予測が有効な階層の深さの最大値とする。インター予測及びイントラ予測の組み合わせは、特定の階層でのみ有効としてもよい。例えば、M<depth<Nでのみ、インター予測及びイントラ予測の組み合わせは、有効としてもよい。Mは、N未満の任意の実数とし、APS等のヘッダ情報として復号されてもよい。
Winter=1-depth/N
Wintra=depth/N
Nは、インター予測が有効な階層の深さの最大値とする。インター予測及びイントラ予測の組み合わせは、特定の階層でのみ有効としてもよい。例えば、M<depth<Nでのみ、インター予測及びイントラ予測の組み合わせは、有効としてもよい。Mは、N未満の任意の実数とし、APS等のヘッダ情報として復号されてもよい。
例えば、RAHT部2080は、双方向予測を行ってもよい。以下、双方向予測を行う場合のRAHT部2080の動作の一例について説明する。
について説明する。
について説明する。
第1に、RAHT部2080は、処理するフレームを一定数でグループ化し、グループ内において処理順序を入れ替えて処理する。
例えば、RAHT部2080は、8フレーム分を1つのグループと見なし、グループ内フレームインデックスが0のフレームから7のフレームまでの処理を、0、7、1、2、3、4、5、6の順番で処理してもよい。
ここで、グループ内フレームインデックスとは、グループ内における処理するフレームの順番ごとに割り振られた番号である。
また、各処理対象フレームにおけるインター予測時の参照フレームは、2つ存在してもよく、また、参照するフレームは、時系列的に未来のフレームであってもよい。
グループ内フレームインデックスオーダーパターン及びグループ内フレームインデックスが参照するフレームは、APS2611又はASH2612に含まれるフラグとして復号されてもよい。
また、RAHT部2080は、上述のbiPredictionPrediodの値を参照し、かかる値を用いて、グループ内フレームインデックスオーダーパターン及びグループ内フレームインデックスが参照するフレームを復号してもよい。
ここで、グループ内フレームインデックスオーダーパターンとは、グループ内フレームインデックスの順番のパターンのことである。
或いは、raht_attr_layer_code_modeにおいて、階層ごとに、イントラ予測、インター予測、予測なし、双方向予測を行うかを示すフラグが含まれていてもよい。
また、双方向予測におけるグループ内フレームインデックスオーダーパターンが複数ある場合、上述のraht_attr_layer_code_modeにそのバリエーションの数だけ含まれていてもよい。
さらに、RAHT部2080は、参照フレームのリストを用意しておき、復号したリスト内インデックスの値に基づいて、かかるリスト内から、各グループ内フレームインデックスが参照するフレームを選択してもよい。
なお、RAHT部2080は、かかる参照フレームのリストとして、処理対象フレームから見て、時系列的に過去のフレーム及び未来のフレームの2つのリストを用意しても良く、各フレームの処理を行うタイミングで更新してもよい。
また、RAHT部2080は、グループ内フレームインデックスオーダーパターンごとに、各グループ内フレームインデックスが参照するフレームを固定化し、ハードコーディングしてもよい。
また、RAHT部2080は、上述のraht_attr_layer_code_modeについて、スライスごとに復号してもよいし、階層ごとに復号してもよい。
(点群符号化装置100)
以下、図20を参照して、本実施形態に係る点群符号化装置100について説明する。図20は、本実施形態に係る点群符号化装置100の機能ブロックの一例について示す図である。
以下、図20を参照して、本実施形態に係る点群符号化装置100について説明する。図20は、本実施形態に係る点群符号化装置100の機能ブロックの一例について示す図である。
図20に示すように、点群符号化装置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 geometry codingを使用するように指定されてもよい。かかる場合、ツリー解析部1030が、ツリー構造を決定し、決定されたツリー構造は、制御データとして点群復号装置200へ伝送される。
例えば、ツリー構造の制御データは、図5~図14で説明した手順で復号できるよう構成されていてもよい。
近似表面解析部1040は、ツリー解析部1030によって生成されたツリー情報を用いて、近似表面情報を生成するように構成されている。
近似表面情報は、例えば、物体の3次元点群データを復号する際等において、点群が物体表面に密に分布しているような場合に、個々の点群を復号するのではなく、点群の存在領域を小さな平面で近似して表現したものである。
具体的には、近似表面解析部1040は、例えば、「Trisoup」と呼ばれる手法で、近似表面情報を生成するように構成されていてもよい。また、Lidar等で取得した疎な点群を復号する場合は、本処理を省略することができる。
幾何情報符号化部1050は、ツリー解析部1030によって生成されたoccupancy code及び近似表面解析部1040によって生成された近似表面情報等のシンタックスを符号化してビットストリーム(幾何情報ビットストリーム)を生成するように構成されている。ここで、ビットストリームには、例えば、図4で説明したシンタックスを含まれていてもよい。
符号化処理は、例えば、コンテクスト適応二値算術符号化処理である。ここで、例えば、シンタックスは、位置情報の復号処理を制御するための制御データ(フラグやパラメータ)を含む。
幾何情報再構成部1060は、ツリー解析部1030によって生成されたツリー情報及び近似表面解析部1040によって生成された近似表面情報に基づいて、符号化対象の点群データの各点の幾何情報(符号化処理が仮定している座標系、すなわち、座標変換部1010における座標変換後の位置情報)を再構成するように構成されている。
フレームバッファ1140は、幾何情報再構成部1060によって再構成された幾何情報を入力とし、参照フレームとして保存するように構成されている。
保存された参照フレームは、ツリー解析部1030において時間的に異なるフレームのインター予測を行う場合に、フレームバッファ1140から読み出されて参照フレームとして使用される。
ここで、各フレームに対してどの時刻の参照フレームを用いるかどうかが、例えば、符号化効率を表すコスト関数の値に基づいて決定され、使用する参照フレームの情報が制御データとして点群復号装置200へ伝送されてもよい。
色変換部1070は、入力の属性情報が色情報であった場合に、色変換を行うように構成されている。色変換は、必ずしも実行する必要は無く、色変換処理の実行の有無については、制御データの一部として符号化され、点群復号装置200へ伝送される。
属性転移部1080は、入力点群の位置情報、幾何情報再構成部1060における再構成後の点群の位置情報及び色変換部1070での色変化後の属性情報に基づいて、属性情報の歪みが最小となるように属性値を補正するように構成されている。具体的な補正方法は、例えば、非特許文献1に記載の方法を適用できる。
RAHT部1090は、属性転移部1080による転移後の属性情報及び幾何情報再構成部1060によって生成された幾何情報を入力とし、RAHT(Region Adaptive Hierarchical Transform)と呼ばれるHaar変換の一種を用いて、各点の残差情報を生成するように構成されている。
復号される情報は、符号化処理においてRAHTを用いることで生成された属性情報の直流成分(DC係数)及び交流成分(AC係数)であり、復号処理において、RAHTの逆変換を用いることで属性情報に変換される。
RAHTの具体的な処理としては、例えば、上述の非特許文献1に記載の方法を用いることができる。
LoD算出部1100は、幾何情報再構成部1060によって生成された幾何情報を入力とし、LoD(Level of Detail)を生成するように構成されている。
LoDは、ある点の属性情報から、他のある点の属性情報を予測し、予測残差を符号化或いは復号するといった予測符号化を実現するための参照関係(参照する点及び参照される点)を定義するための情報である。
言い換えると、LoDは、幾何情報に含まれる各点を複数のレベルに分類し、下位のレベルに属する点については上位のレベルに属する点の属性情報を用いて属性を符号化或いは復号するといった階層構造を定義した情報である。
LoDの具体的な決定方法としては、例えば、上述の非特許文献1に記載の方法を用いてもよい。
リフティング部1110は、LoD算出部1100によって生成されたLoD及び属性転移部1080での属性転移後の属性情報を用いて、リフティング処理により残差情報を生成するように構成されている。
リフティングの具体的な処理としては、例えば、上述の非特許文献1に記載の方法を用いてもよい。
属性情報量子化部1120は、RAHT部1090又はリフティング部1110から出力される残差情報を量子化するように構成されている。ここで、量子化ステップサイズが1の場合は、量子化を行わない場合と等価である。
属性情報符号化部1130は、属性情報量子化部1120から出力される量子化後の残差情報等をシンタックスとして符号化処理を行い、属性情報に関するビットストリーム(属性情報ビットストリーム)を生成するように構成されている。
符号化処理は、例えば、コンテクスト適応二値算術符号化処理である。ここで、例えば、シンタックスは、属性情報の復号処理を制御するための制御データ(フラグ及びパラメータ)を含む。
点群符号化装置100は、以上の処理により、点群内の各点の位置情報及び属性情報を入力として符号化処理を行い、幾何情報ビットストリーム及び属性情報ビットストリームを出力するように構成されている。
本実施形態によれば、DC係数を用いて、AC係数のイントラ予測を適用するか否かを判定し、事前にイントラ予測の精度が高いと判定された場合には、イントラ予測を行い、イントラ予測の精度が高くないと判定された場合には、予測しないことで、復号するAC係数の符号量が削減され、符号化効率が向上する。
また、本実施形態によれば、イントラ予測された属性値若しくはその属性値をRAHTすることで得られたAC係数に対してスケーリングすることで、予測精度が向上し、復号する残差が削減され、符号化効率が向上する。
また、上述の点群符号化装置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…属性情報符号化部
200…点群復号装置
2010…幾何情報復号部
2020…ツリー合成部
2030…近似表面合成部
2040…幾何情報再構成部
2050…逆座標変換部
2060…属性情報復号部
2070…逆量子化部
2080…RAHT部
2090…LoD算出部
2100…逆リフティング部
2110…逆色変換部
100…点群符号化装置
1010…座標変換部
1020…幾何情報量子化部
1030…ツリー解析部
1040…近似表面解析部
1050…幾何情報符号化部
1060…幾何情報再構成部
1070…色変換部
1080…属性転移部
1090…RAHT部
1100…LoD算出部
1110…リフティング部
1120…属性情報量子化部
1130…属性情報符号化部
200…点群復号装置
2010…幾何情報復号部
2020…ツリー合成部
2030…近似表面合成部
2040…幾何情報再構成部
2050…逆座標変換部
2060…属性情報復号部
2070…逆量子化部
2080…RAHT部
2090…LoD算出部
2100…逆リフティング部
2110…逆色変換部
Claims (3)
- 点群復号装置であって、
対象スライスにおけるインター予測の適用可否モードの数を示す値を復号する属性情報復号部を備え、
前記値は、前記対象スライスの階層数から1を引いた値と、属性情報のインター予測を有効化する階層数から1を引いた値のうち、小さい方の値と等しくなるように設定されることを特徴とする点群復号装置。 - 点群復号方法であって、
対象スライスにおけるインター予測の適用可否モードの数を示す値を復号する工程を有し、
前記値は、前記対象スライスの階層数から1を引いた値と、属性情報のインター予測を有効化する階層数から1を引いた値のうち、小さい方の値と等しくなるように設定されることを特徴とする点群復号方法。 - コンピュータを、点群復号装置として機能させるプログラムであって、
前記点群復号装置は、対象スライスにおけるインター予測の適用可否モードの数を示す値を復号する属性情報復号部を備え、
前記値は、前記対象スライスの階層数から1を引いた値と、属性情報のインター予測を有効化する階層数から1を引いた値のうち、小さい方の値と等しくなるように設定されることを特徴とするプログラム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2024003518A JP2025109557A (ja) | 2024-01-12 | 2024-01-12 | 点群復号装置、点群復号方法及びプログラム |
| JP2024-003518 | 2024-01-12 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025150285A1 true WO2025150285A1 (ja) | 2025-07-17 |
Family
ID=96386569
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2024/041961 Pending WO2025150285A1 (ja) | 2024-01-12 | 2024-11-27 | 点群復号装置、点群復号方法及びプログラム |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP2025109557A (ja) |
| WO (1) | WO2025150285A1 (ja) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2024143032A1 (ja) * | 2022-12-28 | 2024-07-04 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 復号方法、符号化方法、復号装置及び符号化装置 |
-
2024
- 2024-01-12 JP JP2024003518A patent/JP2025109557A/ja active Pending
- 2024-11-27 WO PCT/JP2024/041961 patent/WO2025150285A1/ja active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2024143032A1 (ja) * | 2022-12-28 | 2024-07-04 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 復号方法、符号化方法、復号装置及び符号化装置 |
Non-Patent Citations (1)
| Title |
|---|
| "G-PCC 2nd edition codec description", 142. MPEG MEETING; 20230424 - 20230428; ANTALYA; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11), 16 July 2023 (2023-07-16), XP030311093 * |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2025109557A (ja) | 2025-07-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12283073B2 (en) | Inter prediction coding for geometry point cloud compression | |
| JP7834755B2 (ja) | ジオメトリ点群圧縮のためのインター予測コーディング | |
| JP7680399B2 (ja) | メッシュ復号装置、メッシュ符号化装置、メッシュ復号方法及びプログラム | |
| WO2024214442A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
| WO2025150285A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
| WO2025150284A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
| CN121399919A (zh) | 编码方法、解码方法、编码装置及解码装置 | |
| JP7851868B2 (ja) | 点群復号装置、点群復号方法及びプログラム | |
| JP2025009504A (ja) | 点群復号装置、点群復号方法及びプログラム | |
| JP2025009505A (ja) | 点群復号装置、点群復号方法及びプログラム | |
| WO2025074665A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
| WO2025074660A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
| WO2025074661A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
| JP2025009525A (ja) | 点群復号装置、点群復号方法及びプログラム | |
| WO2025150309A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
| JP7773961B2 (ja) | 点群復号装置、点群復号方法及びプログラム | |
| WO2025150310A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
| JP2025009524A (ja) | 点群復号装置、点群復号方法及びプログラム | |
| JP7829505B2 (ja) | 点群復号装置、点群復号方法及びプログラム | |
| JP2024152169A (ja) | 点群復号装置、点群復号方法及びプログラム | |
| WO2024079985A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
| JP2024152417A (ja) | 点群復号装置、点群復号方法及びプログラム | |
| WO2022260115A1 (ja) | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 | |
| TW202408244A (zh) | 用於幾何點雲端壓縮的內部預測譯碼 | |
| WO2025160012A1 (en) | V-dmc mesh motion field coding |
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: 24916970 Country of ref document: EP Kind code of ref document: A1 |