WO2025009060A1 - 符号化装置、復号装置、符号化方法、復号方法及びコンピュータープログラム - Google Patents
符号化装置、復号装置、符号化方法、復号方法及びコンピュータープログラム Download PDFInfo
- Publication number
- WO2025009060A1 WO2025009060A1 PCT/JP2023/024777 JP2023024777W WO2025009060A1 WO 2025009060 A1 WO2025009060 A1 WO 2025009060A1 JP 2023024777 W JP2023024777 W JP 2023024777W WO 2025009060 A1 WO2025009060 A1 WO 2025009060A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- probability
- existence
- point cloud
- encoding
- cell
- 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.)
- Ceased
Links
Images
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
Definitions
- the present invention relates to encoding devices, decoding devices, encoding methods, decoding methods, and computer program technologies.
- G-PCC Geographic-based Point Cloud Compression
- Lidar Light Detection and Ranging
- G-PCC uses two encoding methods for geometry data, which is the coordinate information of point clouds: the Octree Geometry method based on an octree representation, and the Predictive Geometry method based on a predictive tree representation (see Non-Patent Documents 1 and 2).
- the cell containing the input point cloud is divided into an octree, and if a point exists in each divided region, further division is performed to determine the octree structure. Specifically, it is as follows. First, when the parent cell corresponding to the root node is divided into 8, it is determined whether a point exists in each child cell. The node corresponding to the child cell that has a point is added as a child of the current node. Once the determination has been completed for all child cells, each child cell is further divided into 8 and a similar determination is performed. This process is repeated until the predefined tree depth is reached.
- the existence of a child node is coded with a 1-bit flag. Since there can be a total of eight child nodes, the existence of all child nodes can be represented by an 8-bit variable for each node. For each bit, a value of 1 indicates that the corresponding child node exists, and a value of 0 indicates that the corresponding child node does not exist. This 8-bit variable is called an occupancy map.
- the existence or absence of a child node is coded as each bit of the occupancy map from the root of the tree to the leaves.
- decoding using G-PCC a tree is constructed by decoding the occupancy map from the root of the tree to the leaves. When a predefined tree depth is reached, the coordinates of the center of the smallest cell become the coordinates of the decoded point.
- the occupancy map can be predictively coded using intra prediction.
- intra prediction a predicted occupancy map is obtained by predicting the occupancy map of the node to be coded based on the state of the occupancy maps of nearby nodes that have already been coded and decoded. Then, a context model is determined based on the predicted occupancy map, and the true occupancy map of the node to be coded is coded. This type of processing allows intra prediction to code more efficiently.
- G-PCC can also perform encoding more efficiently using a method called planar mode.
- planar mode if the occupied cells in a node's occupancy map are arranged in a plane, the occupancy map is not encoded directly, but rather mode information indicating the orientation of the plane is encoded.
- inter-prediction is being considered for G-PCC ver.2.
- two point cloud data representing the same subject can be efficiently encoded.
- One of the point cloud data is designated as a reference point cloud, and the other as a target point cloud.
- An example of a reference point cloud is a point cloud captured at a different time of the same object or location as the target point cloud.
- a reference point cloud may contain subjects that are not included in the target point cloud.
- a target point cloud may contain subjects that are not included in the reference point cloud.
- the reference point cloud is encoded first. Then, when encoding the target point cloud, the information in the reference point cloud can be used to encode it efficiently. If the target point cloud is represented as an octree and encoded and decoded, the reference point cloud can be used to predict the occupancy map when encoding the occupancy map for each node. When predicting the occupancy map using the reference point cloud, it is predicted that the bit corresponding to the cell containing the reference point will be 1. It is also possible to predict information indicating the orientation of the plane used in Planar mode instead of the occupancy map.
- an object of the present invention is to provide a technique capable of improving the encoding efficiency of point cloud data.
- One aspect of the present invention is an encoding device that includes an encoding unit that, for point cloud data to be encoded, obtains the probability of presence of a point in a cell to be encoded according to the presence of points in other regions, and encodes an occupancy map for the cell based on the probability of presence.
- One aspect of the present invention is a decoding device that includes a decoding unit that, for point cloud data to be encoded, obtains the presence probability of a point in a cell to be encoded according to the presence of points in other regions, and inputs encoded data obtained by encoding an occupancy map for the cell based on the presence probability, calculates the presence probability that a point exists in each cell of the occupancy map of the encoded data according to the presence of points in other regions, and decodes the occupancy map based on the obtained presence probability.
- One aspect of the present invention is an encoding method that, for point cloud data to be encoded, obtains the probability of existence of a point in a cell to be encoded according to the existence of points in other regions, and encodes an occupancy map for the cell based on the probability of existence.
- One aspect of the present invention is a decoding method that, for point cloud data to be encoded, obtains the presence probability of a point in a cell to be encoded according to the presence of points in other regions, encodes an occupancy map for the cell based on the presence probability, inputs encoded data obtained by such a method, calculates the presence probability that a point exists in each cell of the occupancy map of the encoded data according to the presence of points in other regions, and decodes the occupancy map based on the obtained presence probability.
- One aspect of the present invention is a computer program for causing a computer to function as the above-mentioned encoding device or the above-mentioned decoding device.
- the present invention makes it possible to improve the encoding efficiency of point cloud data.
- FIG. 1 is a diagram showing an example of the configuration of an encoding device 10 according to the present invention
- FIG. 2 is a diagram showing parent blocks and child blocks in spatial domain division.
- FIG. 2 illustrates a division of a spatial region including point cloud data.
- FIG. 1 is a diagram illustrating an example of an octree.
- FIG. 2 is a diagram showing an example of the configuration of a decoding device 20 according to the present invention.
- FIG. 2 is a diagram illustrating an outline of a hardware configuration example of an information processing device 90 applied to the present embodiment.
- a reference point cloud is used to predict an occupancy map for each node of a target point cloud.
- a probability of a point existing is determined based on the distribution of the surrounding reference point cloud.
- the probability that a point exists in this cell is calculated according to the distribution of the surrounding reference points.
- a bit for the occupancy map is determined based on the calculated probability.
- a probability map is defined that indicates the probability of a point existing in a three-dimensional space that encompasses the target point cloud.
- the probability of a point existing in each cell of the probability map is determined based on the distribution of the reference point cloud.
- this probability map is referenced to predict each bit of the occupancy map.
- the probability map is updated before encoding and decoding the next node.
- FIG. 1 is a diagram showing an example of the configuration of an encoding device 10 of the present invention.
- the encoding device 10 is configured using an information processing device such as a personal computer or a server device.
- the encoding device 10 includes a point cloud data input unit 11, an encoded data output unit 12, a storage unit 13, and a control unit 14.
- the point cloud data input unit 11 inputs point cloud data obtained by another device to the encoding device 10.
- the point cloud data input unit 11 may acquire point cloud data, for example, by data communication with the other device.
- Specific examples of the other device include information devices and point cloud data generating devices (e.g., Lidar devices) that generate point cloud data by measuring the distance to an object.
- the point cloud data input unit 11 may acquire point cloud data by reading the point cloud data from a recording medium on which the point cloud data is recorded.
- the manner in which the point cloud data input unit 11 acquires the point cloud data is not limited.
- the encoded data output unit 12 outputs data (hereinafter referred to as "encoded data") obtained by encoding the point cloud data from the encoding device 10.
- the encoded data output unit 12 may output the encoded data, for example, by communicating data with another device.
- the encoded data output unit 12 may output the encoded data by recording it on a recording medium.
- the manner in which the encoded data output unit 12 outputs the encoded data is not limited.
- the storage unit 13 is configured using a storage device such as a magnetic hard disk device or a semiconductor storage device.
- the storage unit 13 functions as a point cloud data storage unit 131 and an encoded data storage unit 132.
- the point cloud data storage unit 131 stores the point cloud data input from the point cloud data input unit 11.
- the point cloud data may have, for example, three-dimensional coordinate values of each measured point.
- the encoded data storage unit 132 stores the encoded data generated by the control unit 14.
- the information control unit 141 acquires point cloud data from other devices via the point cloud data input unit 11.
- the information control unit 141 records the acquired point cloud data in the point cloud data storage unit 131.
- the information control unit 141 outputs the encoded data recorded in the encoded data storage unit 132 to other devices via the encoded data output unit 12.
- the encoding unit 142 generates encoded data by encoding the point cloud data recorded in the point cloud data storage unit 131.
- the encoding unit 142 encodes the point cloud data into octree structured data.
- Figures 2 to 4 are diagrams showing an outline of octree structured data.
- the octree structured data generated by the encoding unit 142 will be described below with reference to Figures 2 to 4.
- the coordinate values of each point included in the point cloud data are represented by the values of each component in the xyz coordinate system.
- FIG. 2 shows parent blocks and child blocks in spatial domain division.
- the encoding unit 142 divides parent block B, which is a cubic space, into two equal parts in each of three mutually orthogonal directions (x-axis, y-axis, z-axis). In this way, the encoding unit 142 generates eight cubic child blocks B-0 to B-7 from parent block B.
- FIG. 3 is a diagram showing the division of a spatial region containing point cloud data.
- the encoding unit 142 generates data for block B0 that contains all of the point cloud data.
- Block B0 is a cube with 2n sides.
- the encoding unit 142 performs the spatial domain division shown in FIG. 2 with block B0 as the parent block, and generates eight child blocks B1-0 to B1-7.
- the encoding unit 142 performs the spatial domain division shown in FIG. 2 with block B1-i (i is an integer between 0 and 7) that contains two or more points as the parent block from among blocks B1-0 to B1-7, and generates eight child blocks B2-i-0 to B2-i-7.
- the encoding unit 142 does not perform division for block B1-i that does not contain a point.
- the encoding unit 142 selects direct mode for block B1-i that contains only one point, and does not perform division.
- the encoding unit 142 performs the spatial domain division shown in FIG. 2 on block B2-i-0 to B2-i-7, which contains two or more points (j is an integer between 0 and 7), as the parent block, and generates eight child blocks, B3-i-j-0 to B3-i-j-7.
- the encoding unit 142 performs the spatial domain division on child blocks containing two or more points as the parent block, and selects direct mode for child blocks containing only one point. This process is repeated a predetermined number of times, or until the child blocks contain zero or one point.
- the child blocks generated by the mth division (m is an integer greater than or equal to 1) are referred to as the mth hierarchical block.
- Figure 4 is a diagram showing an example of an octree.
- Point cloud data is represented by an octree that corresponds to the three-dimensional space divided as shown in Figure 3.
- the top node N0 corresponds to block B0.
- Node N0 is connected to eight nodes N1-0 to N1-7 in the first layer.
- Node N1-i corresponds to block B1-i.
- nodes corresponding to blocks that contain multiple points are represented by black circles, and nodes corresponding to blocks that do not contain points are represented by white circles.
- nodes corresponding to blocks for which direct mode has been selected that is, blocks that contain only one point, are represented by double circles with a black circle inside.
- Node N1-i containing multiple points is connected to eight nodes N2-i-0 to N2-i-7 in the second layer.
- Node N2-i-j corresponds to block B2-i-j. Since the encoding unit 142 does not divide block B1-i that does not contain points or for which block mode is selected, node N1-i corresponding to that block B1-i is not connected to nodes in the second layer. In FIG. 4, nodes N1-0, N1-1, N1-3 to N1-6 that do not contain points and node N1-2 for which block mode is selected are not connected to nodes in the second layer. In addition, node N1-7 containing multiple points is connected to nodes N2-7-0 to N2-7-7 in the second layer.
- Nodes N2-7-0, N2-7-2 to 2-7-5, 2-7-7 that do not contain points and node N2-7-6 for which block mode is selected are not connected to nodes in the third layer.
- Node N2-7-2, which contains multiple points, is connected to eight nodes N3-7-1-0 to N3-7-1- in the third layer.
- the encoding unit 142 generates tree-structured nodes corresponding to the divided spatial regions. For nodes corresponding to blocks that contain multiple points, the encoding unit 142 assigns a block value indicating whether each of the child blocks having that block as a parent block contains a point. In other words, the encoding unit 142 assigns a block value to a node corresponding to a block that contains multiple points indicating whether each of the nodes one level below that node contains a point.
- This block value is expressed as in equation (1).
- xk is a code indicating whether the kth child block (k is an integer between 0 and 7) of the eight child blocks contains a point. "1" indicates that it contains a point, and "0" indicates that it does not contain a point.
- the encoding unit 142 assigns a block value to a node corresponding to a block containing multiple points, the block value representing the position of the point using a value between 0 and 255 according to equation (1).
- the encoding unit 142 assigns a block value that encodes the relative position of the point in that block, and adds information to the block value indicating that direct mode has been selected.
- the relative position is represented, for example, by a coordinate value in three-dimensional coordinates.
- the encoding unit 142 converts the point cloud data into tree structure data in which a divided space containing points in the spatial domain is expressed in an octree structure.
- the encoding unit 142 then generates encoded data based on the tree structure data.
- two processes in which the encoding unit 142 generates encoded data using octree structure data will be described.
- the encoding unit 142 inputs a target point cloud to be encoded and a reference point cloud that has already been encoded and decoded. For each cell of the occupancy map of the target point cloud, the encoding unit 142 calculates the probability that a point exists in each cell according to the distribution of the surrounding reference points. Then, the encoding unit 142 encodes the occupancy map of the target point cloud using the obtained probability model (information indicating the probability that a point exists in each cell).
- the probability that a point exists in each cell can be calculated in the following ways: For example, a weighted smoothing filter based on the distance between points, such as a Gaussian filter or a bilateral filter, can be used. In this method, for a cell that includes a reference point group among the neighboring cells of the cell to be coded, the existence probability of the point in the cell to be coded is calculated based on a weight according to the distance between this cell and the cell to be coded.
- the encoding unit 142 inputs a target point cloud to be encoded and a reference point cloud that has already been encoded and decoded.
- the encoding unit 142 calculates the probability of existence of a point for each cell according to the distribution of surrounding reference points to generate a probability map.
- the encoding unit 142 encodes an occupancy map for each node of the target point cloud using a probability model based on this probability map.
- the encoding unit 142 then updates the probability map based on the true occupancy map.
- the probability map used in the second method is information indicating the probability of a point's existence in a three-dimensional space that encompasses the target point cloud.
- the probability map the probability of a point's existence is set in cells around a reference point. In areas (cells) where the ranges of influence of multiple reference points overlap, the probability of a point's existence overlaps. For this reason, in areas where reference points are densely packed, the ranges of influence of more reference points overlap, and the probability of a point's existence increases.
- the probability map may be represented in any form.
- the probability map may be represented as a map of three-dimensional voxels with an accuracy according to the depth of the tree.
- it may be represented as an octree in which only voxels with a non-zero probability of a point's existence are nodes. Each node may be represented to have a value for the probability of a point's existence.
- the encoding unit 142 has an octree that represents the target point cloud to be encoded, and an octree that represents the three-dimensional voxels of the probability map. For example, the encoding unit 142 may first generate an octree that represents the probability map from the reference point cloud, and then encode the octree of the target point cloud based on this.
- the encoding unit 142 calculates the existence probability for each cell of the probability map from the distribution of surrounding reference points.
- the existence probability may be defined in any way.
- the existence probability of a point in each cell may be expressed by a Gaussian function with the distance between the reference point and each cell as a variable.
- the existence probability of a point in each cell may be expressed by interpolation of the reference points or super-resolution.
- the encoding unit 142 may also generate a mesh from the reference points and use the generated mesh to generate the probability map.
- the encoding unit 142 can define the existence probability of a point in each cell according to the distance from the generated mesh to each cell.
- the probability map may be generated using attribute information as well as coordinates of the reference points. For example, reference points with similar attribute information may be assumed to be highly likely to be distributed on the same object surface, and the presence probability may be calculated along this object surface. If the reference points are obtained by a scanning sensor such as Lidar (e.g., obtained by imaging), the encoding unit 142 may estimate a scan line using the timestamp of each reference point. The encoding unit 142 may then calculate the presence probability of a point in each cell by interpolation along the estimated scan line.
- a scanning sensor such as Lidar
- a probability map generated for encoding certain point cloud data may be reused for encoding other point cloud data.
- A is encoded alone, and when encoding B, a probability map is generated and encoded by referring to A.
- the probability map is then updated based on the true occupancy map of B, and this can be used for encoding C.
- the probability map is updated in such a way that the probability of a point existing is increased in cells where points exist in both A and B, and the probability of a point existing is decreased in cells where points do not exist in either A or B, the encoding efficiency can be improved compared to encoding C using only either A or B as a reference.
- the amount of calculation and memory can be reduced compared to encoding C using both A and B as a reference.
- FIG. 5 is a diagram showing an example of the configuration of a decoding device 20 of the present invention.
- the decoding device 20 is configured using an information processing device such as a personal computer or a server device.
- the decoding device 20 includes an encoded data input unit 21, a point cloud data output unit 22, a storage unit 23, and a control unit 24.
- the encoded data input unit 21 inputs encoded data obtained by another device to the decoding device 20.
- the encoded data input unit 21 may acquire the encoded data, for example, by data communication with the other device.
- Specific examples of the other device include an information device and a point cloud data generating device (for example, a Lidar device) that generates and encodes point cloud data by measuring the distance to an object.
- the encoded data input unit 21 may acquire the encoded data by reading the encoded data from a recording medium on which the encoded data is recorded.
- the manner in which the encoded data input unit 21 acquires the encoded data is not limited.
- the point cloud data output unit 22 outputs the point cloud data obtained by decoding the encoded data from the decoding device 20.
- the point cloud data output unit 22 may output the point cloud data by, for example, communicating data with another device.
- the point cloud data output unit 22 may output the point cloud data by recording it on a recording medium.
- the manner in which the point cloud data output unit 22 outputs the point cloud data is not limited.
- the storage unit 23 is configured using a storage device such as a magnetic hard disk device or a semiconductor storage device.
- the storage unit 23 functions as an encoded data storage unit 231 and a point cloud data storage unit 232.
- the encoded data storage unit 231 stores the encoded data input from the encoded data input unit 21.
- the point cloud data storage unit 232 stores the point cloud data generated by the decoding process of the control unit 24.
- the control unit 24 is configured using a processor such as a CPU and a memory.
- the control unit 24 functions as an information control unit 241 and a decryption unit 242 by the processor executing a program. All or part of the functions of the control unit 24 may be realized using hardware such as an ASIC, PLD, or FPGA.
- the above program may be recorded on a computer-readable recording medium. Examples of computer-readable recording media include portable media such as flexible disks, optical magnetic disks, ROMs, CD-ROMs, and semiconductor storage devices (e.g., SSDs), and storage devices such as hard disks and semiconductor storage devices built into a computer system.
- the above program may be transmitted via a telecommunications line.
- the information control unit 241 acquires encoded data from another device via the encoded data input unit 21.
- the information control unit 241 records the acquired encoded data in the encoded data storage unit 231.
- the information control unit 241 outputs the point cloud data recorded in the point cloud data storage unit 232 to the other device via the point cloud data output unit 22.
- the decoding unit 242 generates point cloud data by decoding the encoded data. As mentioned above, there are two methods for generating encoded data. The decoding process for the encoded data obtained by each method will be explained below.
- the decoding unit 242 inputs the target point cloud and the already decoded reference point cloud. For each cell of the occupancy map of the target point cloud, the decoding unit 242 calculates the probability that a point exists in each cell according to the distribution of the surrounding reference points. Then, the decoding unit 242 decodes the occupancy map of the target point cloud using the obtained probability model.
- the decoding unit 242 inputs the target point cloud and the already decoded reference point cloud.
- the decoding unit 242 generates a probability map according to the distribution of the surrounding reference points. For each node of the target point cloud, the decoding unit 242 decodes an occupancy map using a probability model based on this probability map.
- the decoding unit 242 updates the probability map based on the true occupancy map.
- the encoding device 10 configured in this manner can improve the encoding efficiency of point cloud data. Specifically, it is as follows. The encoding device 10 obtains the probability that a point exists in each cell (existence probability) based on the reference point cloud. Then, it determines the bits of the occupancy map based on the obtained existence probability. Because the bits are determined based on the existence probability of the point in this manner, it is possible to prevent a deterioration in encoding efficiency due to incorrect predictions.
- the present invention can also be explained as follows. Even if a reference point does not exist in the same cell as a target point, the presence of the target point can be efficiently predicted from the distribution of the surrounding reference points.
- the inter prediction according to the present invention can also be used to perform lossless coding by referring to the results of compression using other lossy coding tools.
- the information processing device 90 includes a processor 91, a main storage device 92, a communication interface 93, an auxiliary storage device 94, an input/output interface 95, and an internal bus 96.
- the processor 91, the main storage device 92, the communication interface 93, the auxiliary storage device 94, and the input/output interface 95 are connected to each other via the internal bus 96 so that they can communicate with each other.
- the information processing device 90 may be applied to, for example, the encoding device 10 and the decoding device 20.
- the point cloud data input unit 11, the encoded data output unit 12, the encoded data input unit 21, and the point cloud data output unit 22 may be configured using the communication interface 93 or the input/output interface 95.
- the memory unit 13 and the memory unit 23 may be configured using the auxiliary storage device 94.
- the control unit 14 and the control unit 24 may be configured using the processor 91 and the main storage device 92.
- the accuracy of the reference point cloud may be lower than that of the target point cloud. If the depth of the reference tree is shallower than that of the target tree, the probability map may be used to encode the depth of the target tree, and the rest of the tree may be encoded without using the probability map.
- the encoding device 10 may calculate an overall reliability for the probability map using the true target point cloud for each depth of the tree. Then, if the reliability is low, the encoding device 10 may encode a flag indicating that the probability map should not be used. Furthermore, this determination may be made for any set of nodes, rather than by depth.
- the present invention can be applied to encoding point cloud data.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本発明の一態様は、符号化対象の点群データについて、符号化対象のセルについて、他の領域の点の存在に応じて前記セルにおける点の存在確率を取得し、前記存在確率に基づいて前記セルにおける占有マップを符号化する符号化部、を備える符号化装置である。
Description
本発明は、符号化装置、復号装置、符号化方法、復号方法及びコンピュータープログラムの技術に関する。
Lidar(Light Detection and Ranging)等を用いて生成された点群データの圧縮符号化に関する国際標準規格「G-PCC(Geometry based Point Cloud Compression)」が検討されている。G-PCCでは、点群の座標情報であるジオメトリデータの符号化方式として、8分木表現に基づくOctree Geometry方式と、予測ツリー表現に基づくPredictive geometry方式とがある(非特許文献1及び非特許文献2参照)。
Octree Geometry方式では、入力点群を包括するセルを8分木で分割し、各分割領域において点が存在する場合に更に分割を行うことで8分木構造を決定する。具体的には以下の通りである。まず、ルートノードに対応する親セルを8分割した際に,各子セルに点が存在するかどうかを判定する。点が存在する子セルに対応するノードを、現在のノードの子として追加する。全ての子セルについて判定が終了したら、各子セルを更に8分割して同様の判定を行う。このような処理を、予め定義されたツリー深度に到達するまで繰り返し行う。
各ノードにおいて、ある子ノードが存在するかどうかは1bitのフラグで符号化される。全部で8つの子ノードが存在しうるため、各ノードについて8bitの変数で全ての子ノードの存在の有無を表すことができる。各bitにおいて、その値が1であれば対応する子ノードが存在することを表し、0であれば対応する子ノードが存在しないことを表す。この8bitの変数を占有マップと呼ぶ。G-PCCによる符号化では、木のルートからリーフに向かって、子ノードの存在の有無を占有マップの各ビットとして符号化していく。G-PCCによる復号では、木のルートからリーフに向かって,占有マップを復号することでツリーを構築していく.予め定義されたツリー深度に到達した時、最小のセルの中心座標が復号される点の座標となる。
占有マップはイントラ予測で予測符号化することが可能である。イントラ予測では、既に符号化及び復号済みの近傍ノードの占有マップの状態に基づいて、符号化対象ノードの占有マップを予測することで、予測占有マップを求める。そして、予測占有マップに基づいてコンテキストモデルを決定することで、符号化対象ノードの真の占有マップを符号化する。イントラ予測では、このような処理によって、より効率的に符号化することができる。
また、G-PCCではPlanarモードという方法で更に効率的に符号化を行うこともできる。Planarモードでは、あるノードの占有マップにおいて占有されたセルが平面状に並んでいる場合、占有マップを直接符号化するのではなくその平面の向きを示すモード情報を符号化する。
さらに、G-PCC ver.2ではインター予測についての検討が行われている。インター予測を使用すると、同一の被写体を表す2つの点群データを効率よく符号化することができる。点群データの一方をリファレンス点群とし、もう一方をターゲット点群とする。リファレンス点群としては、ターゲット点群と同じ対象又は同じ場所を異なる時刻で捉えた点群などがある。リファレンス点群には、ターゲット点群に含まれない被写体が含まれることもある。逆に、ターゲット点群にはリファレンス点群に含まれない被写体が含まれることもある。
インター予測では、リファレンス点群を先に符号化する。次に、ターゲット点群を符号化する際に、リファレンス点群の情報を用いて効率よく符号化することができる。ターゲット点群を八分木で表現し符号化及び復号する場合、各ノードについて占有マップを符号化する際に、リファレンス点群を使用して占有マップを予測することができる。リファレンス点群を使用して占有マップの予測を行う際、リファレンス点を含むセルに対応するビットが1になると予測する。また、占有マップではなくPlanarモードで用いる平面の向きを示す情報を予測することもできる。
Information technology - Coded representation of immersive media - Part 9: Geometry-based point cloud compression
G-PCC codec description v12
しかしながら、一般的にリファレンス点群とターゲット点群との点同士は1対1対応していない。そのため、あるターゲット点と完全に同じ座標にリファレンス点が存在することは稀である。したがって、ツリーが深くなるにつれて、リファレンス点の存在するセルにターゲット点が存在する可能性は低くなる。その結果、予測が当たらないことで符号化効率が悪化してしまうおそれがあった。
上記事情に鑑み、本発明は、点群データの符号化効率を向上させることができる技術の提供を目的としている。
上記事情に鑑み、本発明は、点群データの符号化効率を向上させることができる技術の提供を目的としている。
本発明の一態様は、符号化対象の点群データについて、符号化対象のセルについて、他の領域の点の存在に応じて前記セルにおける点の存在確率を取得し、前記存在確率に基づいて前記セルにおける占有マップを符号化する符号化部、を備える符号化装置である。
本発明の一態様は、符号化対象の点群データについて、符号化対象のセルについて、他の領域の点の存在に応じて前記セルにおける点の存在確率を取得し、前記存在確率に基づいて前記セルにおける占有マップを符号化することによって得られた符号化データを入力し、前記符号化データの前記占有マップの各セルにおいて、他の領域の点の存在に応じて前記セルに点が存在する存在確率を計算し、得られた存在確率に基づいて前記占有マップを復号する復号部、を備える復号装置である。
本発明の一態様は、符号化対象の点群データについて、符号化対象のセルについて、他の領域の点の存在に応じて前記セルにおける点の存在確率を取得し、前記存在確率に基づいて前記セルにおける占有マップを符号化する、符号化方法である。
本発明の一態様は、符号化対象の点群データについて、符号化対象のセルについて、他の領域の点の存在に応じて前記セルにおける点の存在確率を取得し、前記存在確率に基づいて前記セルにおける占有マップを符号化することによって得られた符号化データを入力し、前記符号化データの前記占有マップの各セルにおいて、他の領域の点の存在に応じて前記セルに点が存在する存在確率を計算し、得られた存在確率に基づいて前記占有マップを復号する、復号方法である。
本発明の一態様は、上記の符号化装置又は上記の復号装置としてコンピューターを機能させるためのコンピュータープログラムである。
本発明により、点群データの符号化効率を向上させることが可能となる。
本実施形態の概略について説明する。本実施形態では大きく分けて二つの方法がある。まず、第一の方法の概略について説明する。第一の方法では、リファレンス点群を使用してターゲット点群の各ノードの占有マップを予測する。その際に、占有マップの各セルについて周辺のリファレンス点群の分布に基づいて点の存在確率を決定する。占有マップの各セルにおいて、周辺のリファレンス点の分布に応じて、このセルに点が存在する確率を計算する。計算された確率に基づいて、占有マップのビットを決定する。
第二の方法では、ターゲット点群を包括する三次元空間上での点の存在確率を示す確率マップを定義する。リファレンス点群の分布に基づいて確率マップの各セルにおける点の存在確率を決定する。占有マップを予測する際に、この確率マップを参照して占有マップの各ビットを予測する。また、占有マップを復号したあと、次のノードの符号化・復号を行う前に確率マップを更新する。
次に、本発明の実施形態について図面を参照して詳細に説明する。図1は、本発明の符号化装置10の構成例を示す図である。符号化装置10は、パーソナルコンピューターやサーバー装置等の情報処理装置を用いて構成される。符号化装置10は、点群データ入力部11、符号化データ出力部12、記憶部13及び制御部14を備える。
点群データ入力部11は、他の装置によって得られた点群データを符号化装置10に入力する。点群データ入力部11は、例えば他の装置とデータ通信することによって点群データを取得してもよい。他の装置の具体例として、情報機器や、物体までの距離を測定することによって点群データを生成する点群データ生成装置(例えばLidarの装置)などがある。点群データ入力部11は、点群データが記録された記録媒体から点群データを読み出すことで点群データを取得してもよい。点群データ入力部11が点群データを取得する態様は限定されない。
符号化データ出力部12は、点群データが符号化されたデータ(以下「符号化データ」という。)を符号化装置10から出力する。符号化データ出力部12は、例えば他の装置とデータ通信することによって符号化データを出力してもよい。符号化データ出力部12は、記録媒体に対して符号化データを記録することで出力してもよい。符号化データ出力部12が符号化データを出力する態様は限定されない。
記憶部13は、磁気ハードディスク装置や半導体記憶装置等の記憶装置を用いて構成される。記憶部13は、点群データ記憶部131及び符号化データ記憶部132として機能する。点群データ記憶部131は、点群データ入力部11から入力された点群データを記憶する。点群データは、例えば測定された各点の三次元座標の値を有していてもよい。符号化データ記憶部132は、制御部14によって生成された符号化データを記憶する。
制御部14は、CPU(Central Processing Unit)等のプロセッサーとメモリーとを用いて構成される。制御部14は、プロセッサーがプログラムを実行することによって、情報制御部141及び符号化部142として機能する。なお、制御部14の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されても良い。上記のプログラムは、コンピューター読み取り可能な記録媒体に記録されても良い。コンピューター読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM、半導体記憶装置(例えばSSD:Solid State Drive)等の可搬媒体、コンピューターシステムに内蔵されるハードディスクや半導体記憶装置等の記憶装置である。上記のプログラムは、電気通信回線を介して送信されてもよい。
情報制御部141は、点群データ入力部11を介して他の機器から点群データを取得する。情報制御部141は、取得した点群データを点群データ記憶部131に記録する。情報制御部141は、符号化データ記憶部132に記録されている符号化データを、符号化データ出力部12を介して他の機器に出力する。
符号化部142は、点群データ記憶部131に記録されている点群データを符号化することによって符号化データを生成する。符号化部142は、点群データを八分木構造のデータに符号化する。図2~図4は八分木構造のデータの概略を示す図である。以下、図2~図4を用いて、符号化部142によって生成される八分木構造データについて説明する。本実施形態において、点群データに含まれる各点の座標値は、xyz座標における各成分の値により表される。
図2は、空間領域分割における親ブロックと子ブロックとを示す図である。符号化部142は、立方体の空間である親ブロックBを、互いに直交する3方向(x軸,y軸,z軸)のそれぞれで2等分する。これによって、符号化部142は、親ブロックBから8個の立方体の子ブロックB-0~B-7を生成する。
図3は、点群データを含む空間領域の分割を示す図である。まず、符号化部142は、点群データを全て含むブロックB0のデータを生成する。ブロックB0は、各辺が2nの立方体である。符号化部142は、演算処理の簡略化のため、点群データの座標を、x,y,zの各成分の最小値が0になるように平行移動する。これにより、ブロックB0の一つの頂点の座標が(0,0,0)となる。なお、ブロックB0のx=2n、y=2n、z=2nの各辺は、点を含まない。
符号化部142は、ブロックB0を親ブロックとして図2に示す空間領域分割を行い、8個の子ブロックであるブロックB1-0~B1-7を生成する。次に、符号化部142は、ブロックB1-0~B1-7のうち、2個以上の点を含むブロックB1-i(iは0以上7以下の整数)を親ブロックとして図2に示す空間領域分割を行い、8個の子ブロックであるブロックB2-i-0~B2-i-7を生成する。符号化部142は、点を含まないブロックB1-iについては、分割は行わない。また、符号化部142は、1点のみを含むブロックB1-iについては、ダイレクトモードを選択し、分割は行わない。
符号化部142は、ブロックB2-i-0~B2-i-7のうち、2個以上の点を含むブロックB2-i-j(jは0以上7以下の整数)を親ブロックとして図2に示す空間領域分割を行い、8個の子ブロックであるブロックB3-i-j-0~B3-i-j-7を生成する。符号化部142は、2個以上の点を含む子ブロックを親ブロックとして空間領域分割を行い、1点のみを含む子ブロックについてはダイレクトモードを選択する上記の処理を、所定回、又は、子ブロックに含まれる点が0個又は1個になるまで繰り返す。なお、m回目(mは1以上の整数)の分割により生成された子ブロックを、m階層目のブロックと記載する。
図4は、八分木の例を示す図である。点群データは、図3のように分割された立体空間に対応した八分木(オクツリー)により表現される。最上位のノードN0は、ブロックB0に対応する。ノードN0は、1階層目の8つのノードN1-0~N1-7と接続される。ノードN1-iは、ブロックB1-iに対応する。図4においては、複数の点を含むブロックに対応したノードは黒丸で、点を含まないブロックに対応したノードは白丸で表されている。また、ダイレクトモードが選択された、すなわち、1点のみを含むブロックに対応したノードは、内側が黒丸の二重丸で表されている。点を含むブロックに対応したノードを、点を含むノードと記載し、点を含まないブロックに対応したノードを、点を含まないノードと記載する。また、ダイレクトモードが選択されたブロックに対応したノードを、ダイレクトモードが選択されたノードと記載する。
複数の点を含むノードN1-iは、2階層目の8つのノードN2-i-0~N2-i―7と接続される。ノードN2-i-jは、ブロックB2-i-jに対応する。符号化部142は、点が含まれない又はブロックモードが選択されたブロックB1-iを分割しないため、そのブロックB1-iに対応したノードN1-iは、2階層目のノードとは接続されない。図4では、点が含まれないノードN1-0、N1-1、N1-3~N1-6と、ブロックモードが選択されたノードN1-2は、2階層目のノードとは接続されない。また、複数の点を含むノードN1-7は、2階層目のノードN2-7-0~N2-7―7と接続される。点が含まれないノードN2-7-0、N2-7―2~2-7―5、2-7―7と、ブロックモードが選択されたノードN2-7-6は、3階層目のノードとは接続されない。複数の点を含むノードN2-7-2は、3階層目の8つのノードN3-7-1-0~N3-7-1-と接続される。
符号化部142は、上記のように、分割された空間領域に対応した木構造のノードを生成する。符号化部142は、複数の点を含むブロックに対応したノードについては、そのブロックを親ブロックとする子ブロックのそれぞれが点を含むか否かを表したブロック値を付与する。つまり、符号化部142は、複数の点を含むブロックに対応したノードに、そのノードの1階層下のノードそれぞれが点を含むか否かを表したブロック値を付与する。このブロック値は、式(1)のように表される。xkは、8つの子ブロックのうちk番目(kは0以上7以下の整数)の子ブロックに点が含まれているか否かを表す符号である。「1」は点を含むことを表し、「0」は点を含まないことを表す。
例えば、ブロックB0の子ブロックのうちブロックB1-2及びB1-7のみが点を含む場合、ブロックB0に対応したノードのブロック値は、f(0,0,1,0,0,0,0,1)=33と表される。また、あるブロックの8つの子ブロックの全てが点を含んでいる場合、ブロック値は、f(1,1,1,1,1,1,1,1)=255と表される。
このようにして、符号化部142は、複数の点を含むブロックに対応したノードに、式(1)により点の位置を0から255までの値で表したブロック値を付与する。一方、符号化部142は、ダイレクトモードが選択されているブロックに対応したノードについては、そのブロックにおける点の相対位置を符号化したブロック値を付与し、そのブロック値にダイレクトモードが選択されていることを示す情報を付加する。相対位置は、例えば、3次元座標における座標値により表される。
上記のように、符号化部142は、点群データを、空間領域のうち点が含まれる分割空間を八分木構造で表現した木構造データに変換する。そして、符号化部142は、木構造データに基づいて符号化データを生成する。次に、符号化部142が八分木構造のデータを用いて符号化データを生成する二つの処理について説明する。
(第一の方法)
まず、符号化データを生成する第一の方法について説明する。符号化部142は、符号化の対象となるターゲット点群と、既に符号化し復号されたリファレンス点群と、を入力する。符号化部142は、ターゲット点群の占有マップの各セルにおいて、周辺のリファレンス点の分布に応じて、各セルに点が存在する確率を計算する。そして、符号化部142は、得られた確率モデル(各セルに点が存在する確率を示す情報)を用いて、ターゲット点群の占有マップを符号化する。
まず、符号化データを生成する第一の方法について説明する。符号化部142は、符号化の対象となるターゲット点群と、既に符号化し復号されたリファレンス点群と、を入力する。符号化部142は、ターゲット点群の占有マップの各セルにおいて、周辺のリファレンス点の分布に応じて、各セルに点が存在する確率を計算する。そして、符号化部142は、得られた確率モデル(各セルに点が存在する確率を示す情報)を用いて、ターゲット点群の占有マップを符号化する。
各セルに点が存在する確率を計算する方法としては、以下のような方法がある。
例えばガウシアンフィルタやバイラテラルフィルタなどの点同士の距離による重み付き平滑化フィルタを使用することができる。この方法では、符号化対象セルの周辺セルのうちリファレンス点群が含まれるセルについて、このセルと符号化対象セルの距離に応じた重みに基づいて符号化対象セルにおける点の存在確率を計算する。
例えばガウシアンフィルタやバイラテラルフィルタなどの点同士の距離による重み付き平滑化フィルタを使用することができる。この方法では、符号化対象セルの周辺セルのうちリファレンス点群が含まれるセルについて、このセルと符号化対象セルの距離に応じた重みに基づいて符号化対象セルにおける点の存在確率を計算する。
(第二の方法)
次に、符号化データを生成する第二の方法について説明する。符号化部142は、符号化の対象となるターゲット点群と、既に符号化し復号されたリファレンス点群と、を入力する。符号化部142は、各セルについて周辺のリファレンス点の分布に応じた点の存在確率を求めて確率マップを生成する。符号化部142は、ターゲット点群の各ノードについてこの確率マップに基づく確率モデルを用いて占有マップを符号化する。そして、符号化部142は、真の占有マップに基づいて確率マップを更新する。
次に、符号化データを生成する第二の方法について説明する。符号化部142は、符号化の対象となるターゲット点群と、既に符号化し復号されたリファレンス点群と、を入力する。符号化部142は、各セルについて周辺のリファレンス点の分布に応じた点の存在確率を求めて確率マップを生成する。符号化部142は、ターゲット点群の各ノードについてこの確率マップに基づく確率モデルを用いて占有マップを符号化する。そして、符号化部142は、真の占有マップに基づいて確率マップを更新する。
第二の方法で使用される確率マップは、ターゲット点群を包括する三次元空間上での点の存在確率を示す情報である。確率マップでは、リファレンス点周辺のセルに点の存在確率を設定する。複数のリファレンス点の影響範囲が重なる部分(セル)では、点の存在確率は重畳する。このため、リファレンス点が密集している領域では、より多くのリファレンス点の影響範囲が重なるため、点の存在確率が上昇する。 確率マップはどのような形式で表されてもよい。例えば、ツリーの深度に応じた精度の三次元ボクセルのマップとして確率マップが表されてもよい。例えば、点の存在確率が0ではないボクセルのみがノードとなる八分木で表されてもよい。各ノードは、点の存在確率の値を持つように表されてもよい。
符号化部142は、符号化対象のターゲット点群を表現する八分木と、確率マップの三次元ボクセルを表現する八分木と、をそれぞれ持つ。符号化部142は、例えばまずリファレンス点群から確率マップを表す八分木を生成し、これに基づいてターゲット点群の八分木を符号化してもよい。
符号化部142は、確率マップの生成において、確率マップの各セルについて周辺のリファレンス点の分布から存在確率を計算する。存在確率はどのように定義されてもよい。例えば、リファレンス点と各セルとの距離を変数としたガウス関数で各セルの点の存在確率が表されてもよい。例えば、リファレンス点の内挿補間や、超解像により、各セルにおける点の存在確率が表されてもよい。また、符号化部142は、リファレンス点からメッシュを生成し、生成されたメッシュを確率マップの生成に利用しても良い。例えば、符号化部142は、生成されたメッシュから各セルまでの距離に応じて、各セルにおける点の存在確率を定義することができる。
確率マップの生成には、リファレンス点の座標だけでなく、属性情報が使用されてもよい。例えば、属性情報が類似しているリファレンス点同士は、同じ物体表面上に分布している可能性が高いとして、この物体表面に沿って存在確率が計算されてもよい。リファレンス点がLidarなどの走査式センサーで得られたもの(例えば撮像によって得られたもの)である場合、符号化部142は、各リファレンス点のタイムスタンプを使用して走査線を推定してもよい。そして、符号化部142は、推定された走査線に沿った内挿補間により、各セルにおける点の存在確率を計算してもよい。
ある点群データを符号化するために生成された確率マップは、さらに別の点群データの符号化に再利用されてもよい。例えば同一の被写体を表す3つの点群データA,B及びCのうち、Aを単独で符号化し、Bを符号化する際にAを参照して確率マップを生成し符号化を行ったあと、更にBの真の占有マップに基づき確率マップの更新を行い、これをCの符号化に用いることができる。この場合、例えばAとBとの両方で点が存在するセルでは点の存在確率を高くし、AとBのどちらでも点が存在しないセルでは点の存在確率を低くするなどの方法で確率マップを更新すると、AとBどちらかだけをリファレンスとしてCを符号化するよりも符号化効率を高めることができる。また、AとBの両方をリファレンスとしてCを符号化するよりも演算量やメモリ量を削減することができる。
図5は、本発明の復号装置20の構成例を示す図である。復号装置20は、パーソナルコンピューターやサーバー装置等の情報処理装置を用いて構成される。復号装置20は、符号化データ入力部21、点群データ出力部22、記憶部23及び制御部24を備える。
符号化データ入力部21は、他の装置によって得られた符号化データを復号装置20に入力する。符号化データ入力部21は、例えば他の装置とデータ通信することによって符号化データを取得してもよい。他の装置の具体例として、情報機器や、物体までの距離を測定することによって点群データを生成し符号化する点群データ生成装置(例えばLidarの装置)などがある。符号化データ入力部21は、符号化データが記録された記録媒体から符号化データを読み出すことで符号化データを取得してもよい。符号化データ入力部21が符号化データを取得する態様は限定されない。
点群データ出力部22は、符号化データが復号されることによって得られた点群データを復号装置20から出力する。点群データ出力部22は、例えば他の装置とデータ通信することによって点群データを出力してもよい。点群データ出力部22は、記録媒体に対して点群データを記録することで出力してもよい。点群データ出力部22が点群データを出力する態様は限定されない。
記憶部23は、磁気ハードディスク装置や半導体記憶装置等の記憶装置を用いて構成される。記憶部23は、符号化データ記憶部231及び点群データ記憶部232として機能する。符号化データ記憶部231は、符号化データ入力部21から入力された符号化データを記憶する。点群データ記憶部232は、制御部24の復号処理によって生成された点群データを記憶する。
制御部24は、CPU等のプロセッサーとメモリーとを用いて構成される。制御部24は、プロセッサーがプログラムを実行することによって、情報制御部241及び復号部242として機能する。なお、制御部24の各機能の全て又は一部は、ASICやPLDやFPGA等のハードウェアを用いて実現されても良い。上記のプログラムは、コンピューター読み取り可能な記録媒体に記録されても良い。コンピューター読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM、半導体記憶装置(例えばSSD)等の可搬媒体、コンピューターシステムに内蔵されるハードディスクや半導体記憶装置等の記憶装置である。上記のプログラムは、電気通信回線を介して送信されてもよい。
情報制御部241は、符号化データ入力部21を介して他の機器から符号化データを取得する。情報制御部241は、取得した符号化データを符号化データ記憶部231に記録する。情報制御部241は、点群データ記憶部232に記録されている点群データを、点群データ出力部22を介して他の機器に出力する。
復号部242は、符号化データを復号することによって点群データを生成する。上述したように符号化データの生成方法には二つの方法があった。それぞれの方法で得られた符号化データの復号処理について説明する。
(第一の方法)
まず、第一の方法で得られた符号化データを復号する処理について説明する。復号部242は、ターゲット点群と、既に復号されたリファレンス点群と、を入力する。復号部242は、ターゲット点群の占有マップの各セルにおいて、周辺のリファレンス点の分布に応じて各セルに点が存在する確率を計算する。そして、復号部242は、得られた確率モデルを用いて、ターゲット点群の占有マップを復号する。
まず、第一の方法で得られた符号化データを復号する処理について説明する。復号部242は、ターゲット点群と、既に復号されたリファレンス点群と、を入力する。復号部242は、ターゲット点群の占有マップの各セルにおいて、周辺のリファレンス点の分布に応じて各セルに点が存在する確率を計算する。そして、復号部242は、得られた確率モデルを用いて、ターゲット点群の占有マップを復号する。
(第二の方法)
次に、第二の方法で得られた符号化データを復号する処理について説明する。復号部242は、ターゲット点群と、既に復号されたリファレンス点群と、を入力する。復号部242は、周辺のリファレンス点の分布に応じて確率マップを生成する。復号部242は、ターゲット点群の各ノードについて、この確率マップに基づく確率モデルを用いて占有マップを復号する。復号部242は、真の占有マップに基づいて確率マップを更新する。
次に、第二の方法で得られた符号化データを復号する処理について説明する。復号部242は、ターゲット点群と、既に復号されたリファレンス点群と、を入力する。復号部242は、周辺のリファレンス点の分布に応じて確率マップを生成する。復号部242は、ターゲット点群の各ノードについて、この確率マップに基づく確率モデルを用いて占有マップを復号する。復号部242は、真の占有マップに基づいて確率マップを更新する。
このように構成された符号化装置10では、点群データの符号化効率を向上させることができる。具体的には以下の通りである。符号化装置10では、各セルにおいて点が存在する確率(存在確率)をリファレンス点群に基づいて取得する。そして、取得された存在確率に基づいて占有マップのビットを決定する。このように点の存在確率に基づいてビットが決定されるため、予測が当たらないことで符号化効率が悪化してしまうことを抑止することが可能となる。
また、本発明について以下のように説明することもできる。ターゲット点と同じセルにリファレンス点が存在しない場合にも、周辺のリファレンス点群の分布具合からターゲット点の存在を効率よく予測することができる。本発明によるインター予測は、他のロッシーな符号化ツールで圧縮した結果をリファレンスにしてロスレス符号化を行うために使用することもできる。
図6は、本実施形態に適用される情報処理装置90のハードウェア構成例の概略を示す図である。情報処理装置90は、プロセッサー91、主記憶装置92、通信インターフェース93、補助記憶装置94、入出力インターフェース95及び内部バス96を備える。プロセッサー91、主記憶装置92、通信インターフェース93、補助記憶装置94及び入出力インターフェース95は、内部バス96を介して互いに通信可能に接続される。情報処理装置90は、例えば符号化装置10及び復号装置20に適用されてもよい。この場合、例えば点群データ入力部11、符号化データ出力部12、符号化データ入力部21及び点群データ出力部22は通信インターフェース93や入出力インターフェース95を用いて構成されてもよい。例えば記憶部13及び記憶部23は補助記憶装置94を用いて構成されてもよい。また、制御部14及び制御部24は、プロセッサー91及び主記憶装置92を用いて構成されてもよい。
(変形例)
リファレンス点群の精度は、ターゲット点群の精度より低くてもよい。リファレンスのツリーの深さがターゲットのツリーよりも浅い場合、ターゲットのツリーの深さまでは確率マップを使用して符号化し、それ以降は確率マップを使用せずに符号化してもよい。
リファレンス点群の精度は、ターゲット点群の精度より低くてもよい。リファレンスのツリーの深さがターゲットのツリーよりも浅い場合、ターゲットのツリーの深さまでは確率マップを使用して符号化し、それ以降は確率マップを使用せずに符号化してもよい。
また、点群生成の際のサンプリングがまばらで物体表面をくまなくサンプリングできていない場合のように、リファレンス点群の分布から点の存在確率が高いと推定されたセルにターゲット点が存在しないということもある。この場合、符号化装置10においてツリーの深度毎に真のターゲット点群を使用して確率マップに対する全体的な信頼度を計算してもよい。そして、符号化装置10は、信頼度が低い場合は確率マップを使用しないフラグを符号化してもよい。また、深度別ではなく、任意のノードの集合についてその判定が行われても良い。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
本発明は、点群データの符号化に適用可能である。
10…符号化装置、11…点群データ入力部、12…符号化データ出力部、13…記憶部、131…点群データ記憶部、132…符号化データ記憶部、14…制御部、141…情報制御部、142…符号化部、20…復号装置、21…符号化データ入力部、22…点群データ出力部、23…記憶部、231…符号化データ記憶部、232…点群データ記憶部、24…制御部、241…情報制御部、242…復号部
Claims (7)
- 符号化対象の点群データについて、符号化対象のセルについて、他の領域の点の存在に応じて前記セルにおける点の存在確率を取得し、前記存在確率に基づいて前記セルにおける占有マップを符号化する符号化部、を備える符号化装置。
- 前記符号化部は、前記符号化対象のセルについて、前記セルの周辺のリファレンス点の分布に応じて前記存在確率を計算する、請求項1に記載の符号化装置。
- 前記符号化部は、各セルについて周辺のリファレンス点の分布に応じた点の存在確率を求めて確率マップを生成し、前記確率マップに基づく確率モデルを用いて前記占有マップを符号化する、請求項1に記載の符号化装置。
- 符号化対象の点群データについて、符号化対象のセルについて、他の領域の点の存在に応じて前記セルにおける点の存在確率を取得し、前記存在確率に基づいて前記セルにおける占有マップを符号化することによって得られた符号化データを入力し、前記符号化データの前記占有マップの各セルにおいて、他の領域の点の存在に応じて前記セルに点が存在する存在確率を計算し、得られた存在確率に基づいて前記占有マップを復号する復号部、を備える復号装置。
- 符号化対象の点群データについて、符号化対象のセルについて、他の領域の点の存在に応じて前記セルにおける点の存在確率を取得し、前記存在確率に基づいて前記セルにおける占有マップを符号化する、符号化方法。
- 符号化対象の点群データについて、符号化対象のセルについて、他の領域の点の存在に応じて前記セルにおける点の存在確率を取得し、前記存在確率に基づいて前記セルにおける占有マップを符号化することによって得られた符号化データを入力し、前記符号化データの前記占有マップの各セルにおいて、他の領域の点の存在に応じて前記セルに点が存在する存在確率を計算し、得られた存在確率に基づいて前記占有マップを復号する、復号方法。
- 請求項1に記載の符号化装置又は請求項4に記載の復号装置としてコンピューターを機能させるためのコンピュータープログラム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2025530855A JPWO2025009060A1 (ja) | 2023-07-04 | 2023-07-04 | |
| PCT/JP2023/024777 WO2025009060A1 (ja) | 2023-07-04 | 2023-07-04 | 符号化装置、復号装置、符号化方法、復号方法及びコンピュータープログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/024777 WO2025009060A1 (ja) | 2023-07-04 | 2023-07-04 | 符号化装置、復号装置、符号化方法、復号方法及びコンピュータープログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025009060A1 true WO2025009060A1 (ja) | 2025-01-09 |
Family
ID=94171287
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2023/024777 Ceased WO2025009060A1 (ja) | 2023-07-04 | 2023-07-04 | 符号化装置、復号装置、符号化方法、復号方法及びコンピュータープログラム |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JPWO2025009060A1 (ja) |
| WO (1) | WO2025009060A1 (ja) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2020004461A1 (ja) * | 2018-06-27 | 2020-01-02 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
| WO2022071505A1 (ja) * | 2020-10-02 | 2022-04-07 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
-
2023
- 2023-07-04 WO PCT/JP2023/024777 patent/WO2025009060A1/ja not_active Ceased
- 2023-07-04 JP JP2025530855A patent/JPWO2025009060A1/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2020004461A1 (ja) * | 2018-06-27 | 2020-01-02 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
| WO2022071505A1 (ja) * | 2020-10-02 | 2022-04-07 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
Non-Patent Citations (1)
| Title |
|---|
| MATSUZAJI, KOHEI; KAWAMURA, KEI: "CI-003 Point Augmentation for Compression of Sparse Point Cloud using Temporal Correlation", PROCEEDINGS OF 20TH FORUM ON INFORMATION TECHNOLOGY (FIT2021); AUGUST 25-27, 2021, vol. 20, no. 3, 12 August 2021 (2021-08-12) - 27 August 2021 (2021-08-27), pages 25 - 32, XP009560522 * |
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2025009060A1 (ja) | 2025-01-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN113615181B (zh) | 用于点云编解码的方法、装置 | |
| CN113678466B (zh) | 用于预测点云属性编码的方法和设备 | |
| JP7461389B2 (ja) | オクツリーベースの点群コーディングにおける平面モード | |
| JP7449965B2 (ja) | オクツリーベースの点群コーディングにおける平面モードのためのコンテキスト決定 | |
| CN110996098B (zh) | 处理点云数据的方法和装置 | |
| CN113812164B (zh) | 用于处理点云的方法和装置 | |
| CN114981842B (zh) | 点云的树内几何量化 | |
| EP4088261B1 (en) | Context determination for planar mode in octree-based point cloud coding | |
| CN114600464B (zh) | 编码和解码的方法、编码器、解码器和软件 | |
| CN111615791A (zh) | 在点云压缩中使用直接译码的方法和设备 | |
| JP2023549447A (ja) | 点群階層化方法、デコーダ、エンコーダ及び記憶媒体 | |
| CN114402621A (zh) | 变换方法、逆变换方法、编码器、解码器及存储介质 | |
| CN116325733A (zh) | 几何点云压缩中的角模式和树内量化 | |
| CN116601944A (zh) | 点云编解码方法、编码器、解码器及计算机存储介质 | |
| KR20230173135A (ko) | 인코딩 및 디코딩 방법 및 관련 기기, 저장 매체 | |
| WO2023132331A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
| WO2025009060A1 (ja) | 符号化装置、復号装置、符号化方法、復号方法及びコンピュータープログラム | |
| WO2021108970A1 (zh) | 点云处理方法、编码器、解码器及存储介质 | |
| CN115486079B (zh) | 点云压缩方法和装置以及点云解码方法 | |
| JP7667887B2 (ja) | 点群を符号化及び復号化する方法 | |
| WO2023132330A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
| JP7812781B2 (ja) | 点群復号装置、点群復号方法及びプログラム | |
| JP7773960B2 (ja) | 点群復号装置、点群復号方法及びプログラム | |
| JP7773959B2 (ja) | 点群復号装置、点群復号方法及びプログラム | |
| WO2024094278A1 (en) | Encoding and decoding a point cloud with density values |
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: 23944312 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2025530855 Country of ref document: JP Kind code of ref document: A |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2025530855 Country of ref document: JP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |

