WO2025239043A1 - 符号化装置、復号化装置、符号化方法、復号化方法、およびプログラム - Google Patents

符号化装置、復号化装置、符号化方法、復号化方法、およびプログラム

Info

Publication number
WO2025239043A1
WO2025239043A1 PCT/JP2025/013445 JP2025013445W WO2025239043A1 WO 2025239043 A1 WO2025239043 A1 WO 2025239043A1 JP 2025013445 W JP2025013445 W JP 2025013445W WO 2025239043 A1 WO2025239043 A1 WO 2025239043A1
Authority
WO
WIPO (PCT)
Prior art keywords
point
distance
information
processed
target
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
Application number
PCT/JP2025/013445
Other languages
English (en)
French (fr)
Inventor
雄悟 石川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Publication of WO2025239043A1 publication Critical patent/WO2025239043A1/ja
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree

Definitions

  • the present invention relates to an encoding device, a decoding device, an encoding method, a decoding method, and a program.
  • Point cloud data generated by LiDAR (Light Detection and Ranging) to enable autonomous movement of automatic guided vehicles (AGVs).
  • Point cloud data generally contains a large number of points and data associated with each point, so it can take a long time to send, receive, or store the data on a storage medium.
  • Non-Patent Document 1 discloses a method for encoding point clouds using G-PCC (Geometry-based Point Cloud Compression). Predictive geometry coding, a form of G-PCC, predicts the position of an input point based on the position information of multiple points previously input, and encodes the difference between the predicted position information and the position information of the input point. Patent Document 1 discloses a method for fitting a model represented by parameters to a point cloud, and encoding the parameters of the model after fitting and the residual data of the fitting.
  • G-PCC Geometry-based Point Cloud Compression
  • Non-Patent Document 1 predicts the position of a newly input point based on the positions of multiple points previously input and the LIDAR laser angle, but does not make predictions based on the shape of features. This can result in prediction errors and reduced coding efficiency.
  • the present invention therefore aims to provide an encoding device capable of highly efficient, low-latency processing.
  • An encoding device comprises: a surface information calculation means for calculating surface information using processed point position data that indicates the positions of processed points that have been encoded and are included in point cloud data; a direction information prediction means for predicting direction information of a target point that is the subject of the encoding process using the processed point position data; and a first distance prediction means for predicting the distance to the target point based on the surface information and the direction information.
  • the present invention provides an encoding device capable of highly efficient, low-latency processing.
  • FIG. 2 is an explanatory diagram of an encoding process according to each embodiment.
  • 10A to 10C are diagrams illustrating examples of trees corresponding to point cloud data generated by a rotary LIDAR according to each embodiment.
  • FIG. 1 is a diagram showing an example of point cloud data generated by using a rotary lidar to measure a vertical wall with a laser that is horizontal to the floor.
  • FIG. 10 is a diagram showing an example of point cloud data generated by using a rotary lidar to measure a vertical wall with a laser that is not horizontal to the floor.
  • FIG. 1 is a diagram showing an example of point cloud data generated by using a rotary lidar to measure a vertical wall with a laser that is horizontal to the floor.
  • FIG. 10A to 10C are diagrams illustrating examples of trees corresponding to point cloud data generated by a rotary LIDAR according to each embodiment.
  • FIG. 1 is a diagram showing an example of point cloud data generated by using a rotary lidar to measure a vertical wall with a laser
  • FIG. 10 is a diagram showing an example of point cloud data generated by using a rotary lidar to measure a vertical wall with a laser that is not horizontal to the floor.
  • FIG. 10 is an explanatory diagram of the coordinates of a rotary rider according to each embodiment.
  • 10A and 10B are explanatory diagrams illustrating the relationship between coordinates and points constituting a point group according to each embodiment.
  • 1 is a database showing the relationship between the laser ID and the elevation angle of the rotary LIDAR according to each embodiment.
  • FIG. 1 is an explanatory diagram of an encoding device according to a first embodiment.
  • 3 is a flowchart showing an encoding method according to the first embodiment.
  • FIG. 10 is an explanatory diagram of a decoding device according to a second embodiment. 10 is a flowchart showing a decoding method according to the second embodiment.
  • ⁇ About G-PCC> a process (encoding process) for encoding the difference between the result of predicting the position of a point by predictive coding (predicted position) and the actual position of the point (actual position) will be described with reference to Fig. 1.
  • Predictive Geometry Coding is one of the G-PCC (Geometry-based Point Cloud Compression) methods of the Moving Picture Experts Group (MPEG).
  • G-PCC is disclosed in Non-Patent Document 1.
  • Predictive coding is a technique that predicts the position of an input point based on the positions of points previously input, and encodes the difference between the input point position and the predicted position.
  • a prediction tree is created and managed.
  • a tree is made up of multiple nodes connected together. Data indicating information about each point is registered in each node. For example, each node registers position data indicating the position of the point and attribute data indicating information other than the point position.
  • Each node also has a unique identifier that allows it to be uniquely identified from others, and holds the identifiers of its parent, which is the node located up the branch toward the root, and its ancestors, such as its parent. Note that trees can be created or updated arbitrarily based on the position of each point, and branches are typically established between nearby nodes.
  • Figure 1 is an explanatory diagram of the process (encoding process) of encoding the difference between the result of predicting the position of a point using predictive coding and the actual position of the point.
  • Figure 1 shows nodes in a space defined by a left-handed three-dimensional coordinate system having X, Y, and Z axes.
  • Node n corresponds to the point whose position is the target of the process of predicting.
  • Node n0 is the parent node of node n.
  • Node n1 is the parent node of node n0.
  • Node n2 is the parent node of node n1.
  • the position of any node x is represented as Pos(x), and the predicted vector is represented as Pred(x).
  • the position of node x predicted by predictive coding is represented as PredPos(x), the following equations (1) to (4) hold.
  • the position of node n is predicted using either equations (1) and (2), or equations (3) and (4).
  • the difference Delta(n) between the position Pos(n) of node n and the position PredPos(n) of node n predicted by predictive coding is calculated by the following equation (5).
  • Delta(n) Pos(n)-PredPos(n)...(5) Arithmetic coding is applied to the difference Delta(n) and the identifier of node n0 to generate a position bitstream indicating the position of node n. The position bitstream and an attribute bitstream generated separately by applying coding to attribute data are then combined to output a coded bitstream.
  • the coordinate system defining the space is not particularly limited.
  • the space in which the node exists may be defined by right-handed three-dimensional coordinates.
  • the encoded bitstream is separated into a position bitstream and an attribute bitstream.
  • Arithmetic decoding is applied to the position bitstream to generate the difference Delta(n) and the identifier of node n's parent node n0.
  • the node corresponding to the point to be decoded is added to the tree based on this identifier, and the position of that node is predicted using the method described above.
  • the position of that node is then decoded using the following equation (6).
  • the attribute bitstream is then decoded.
  • FIG. 2 is a diagram showing an example of a tree corresponding to point cloud data generated by a rotary LIDAR.
  • each point constituting the point cloud data is a measurement point (measurement data) measured by the rotary LIDAR.
  • FIG. 2 shows a space defined by three-dimensional coordinates, which are defined by an axis indicating the azimuth direction, an axis indicating a laser ID unique to each laser mounted on the rotary LIDAR, and an axis indicating the distance from the LIDAR.
  • the vertical angle at which each laser emits laser light i.e., the elevation angle
  • the natural number N shown in Figure 2 represents the number of lasers; for example, the natural number N is "16" or "32". Points obtained using each laser form a tree, as shown in Figure 2, with nodes added to points previously obtained using the same laser.
  • the method described with reference to Figure 1 and the method described with reference to Figure 2 each predict the position of a point included in input point cloud data based on the positions of multiple points previously input. That is, the predicted position of the input point is determined from the position of its parent, its ancestor nodes, etc., and the prediction is made using either equations (1) and (2), or equations (3) and (4). Therefore, with these methods, if the position of the input point does not follow equations (1) and (2), or equations (3) and (4), the prediction error may become large, and encoding efficiency may decrease. An example of this will be described below with reference to Figures 3 to 6.
  • FIG 3 is a diagram showing the use of a rotary LIDAR in a scene with a flat wall and floor.
  • F1 is the horizontal floor (ground), and W1 is a wall perpendicular to the floor F1.
  • S1 is a LIDAR (rotary LIDAR) installed above the floor F1.
  • Points 301 to 309 are points (point cloud) obtained when LIDAR S1 measures wall W1 with an elevation angle of zero, i.e., a laser parallel to the floor F1, and point 305 is a point with an azimuth angle of zero as well as an elevation angle of zero.
  • the lidar S1 performs measurements while changing the azimuth angle using a motor that rotates at a constant speed.
  • Point 301 is the first point measured
  • point 302 is the next point measured
  • point 303 is the next point measured
  • point 309 is the last point measured.
  • Points 301 to 309 are aligned in a straight line on wall W1, but the distance between them is not constant. From point 301 to point 305, the distance between point 301 and point 302 is wide, the distance between point 302 and point 303 is slightly narrower, the distance between point 303 and point 304 is even narrower, and the distance between point 304 and point 305 is at its smallest.
  • the distance between point 305 and point 306 is narrow, but the distance between point 306 and point 307 is wide, the distance between point 307 and point 308 is even wider, and the distance between point 308 and point 309 is at its largest.
  • Figure 4 shows the use of a rotary LIDAR in a scene with a flat wall and floor, similar to Figure 3.
  • points 402 to 409 represent the points (point cloud) obtained by measuring wall W1 using a laser from LIDAR S1 with a downward elevation angle.
  • the distance between any two adjacent points among points 402 to 409 is not constant, similar to points 301 to 309 described with reference to Figure 3. Meanwhile, points 301 to 309 are aligned on a straight line in space, but points 402 to 409 are not.
  • FIG. 5 is a top view of the scene described with reference to Figure 3.
  • 501 is a line segment connecting the origin of rider S1 to point 304, and represents the distance between rider S1 and point 304.
  • 502 is a line segment connecting the origin of rider S1 to point 305, and represents the distance between rider S1 and point 305.
  • 503 is a line segment connecting the origin of rider S1 to point 306, and represents the distance between rider S1 and point 306.
  • Figure 6 is a top view of the scene described with reference to Figure 4.
  • 601 is a line segment connecting the origin of rider S1 and point 404, representing the distance between rider S1 and point 404.
  • 602 is a line segment connecting the origin of rider S1 and point 405, representing the distance between rider S1 and point 405.
  • 603 is a line segment connecting the origin of rider S1 and point 604, representing the distance between rider S1 and point 604.
  • Point 604 represents the predicted position of point 406.
  • the predicted position of point 406 is point 604, similar to Figure 5, which is closer to rider S1 than its actual position.
  • a wall that is perpendicular to the ground is an example, and the invention can also be applied to non-planar features, such as cylindrical features such as pillars, by treating them as locally vertical planes.
  • LIDAR is an example, and the invention can also be applied to point cloud acquisition devices other than LIDAR, as long as they are devices that can acquire point clouds.
  • a suitable condition for this embodiment is that in a scene where there is a horizontal floor (ground) and a vertical wall, a rotary LIDAR (point cloud acquisition device) is placed at an angle parallel to the floor.
  • the rotary LIDAR measures the floor and walls to generate a point cloud (point cloud data).
  • the point cloud is data acquired from a point cloud acquisition device placed on the ground.
  • the generated point cloud is input to an encoding device and encoded.
  • the point cloud acquisition device is not limited to a configuration in which it is placed on the ground.
  • the point cloud acquisition device may be attached to a vehicle, drone, or the like as long as it is parallel to the ground.
  • Each point that makes up the point cloud is acquired by a rotating LIDAR and has position information based on the rotating LIDAR.
  • Figure 7 is an explanatory diagram of the coordinates of rider S1, showing a space defined by a right-handed three-dimensional coordinate system having X, Y, and Z axes based on rider S1.
  • 703 is the Z axis, which is the axis pointing vertically upward from the laser center of rider S1 when rider S1 is placed parallel to the floor.
  • 701 is the X axis
  • 702 is the Y axis.
  • the X axis 701 and Y axis 702 are both parallel to the floor.
  • Figure 8 is an explanatory diagram of the relationship between the points that make up the point cloud and their coordinates.
  • 801 is a measured point.
  • the coordinates (x, y, z) represent the position of a point in a right-handed three-dimensional coordinate system having the X, Y, and Z axes
  • position 803 is the x value on the X axis
  • position 804 is the y value on the Y axis
  • position 805 is the z value on the Z axis.
  • the point of contact when point 801 is lowered perpendicularly onto a plane containing the X-axis and Y-axis (XY plane) is imaginary point 802.
  • the angle 806 between the Y-axis and the line segment connecting origin O and imaginary point 802 is the azimuth angle ⁇ .
  • the angle 807 between the line segment connecting origin O and imaginary point 802 and the line segment connecting origin O and point 801 is the elevation angle ⁇ .
  • the length of the line segment connecting origin O and point 801 is the distance r between Rider S1 and point 801.
  • the elevation angle ⁇ of each laser does not change for LIDAR S1. Therefore, if there is a database that defines the relationship between each laser's unique laser ID and the elevation angle ⁇ , as shown in Figure 9, the position of point 801 can be expressed using the laser ID instead of the elevation angle ⁇ . For example, when the laser ID is represented as n, the position of point 801 is expressed as coordinates ( ⁇ , n, r).
  • Point cloud data acquired from the rotating LIDAR is input to the encoding device.
  • the encoding device extracts position data representing positions from the point cloud data.
  • the position data is data composed of position information for each point included in the point cloud, and the position information for each point is represented by coordinates ( ⁇ , n, r) expressed using the azimuth angle ⁇ , laser ID (n), and distance r.
  • FIG. 10 is an explanatory diagram of the encoding device 1000.
  • the encoding device 1000 has a coordinate transformation module 1002, a tree management module 1003, a wall estimation module 1004, a position prediction module 1005, a subtraction module 1006, and an arithmetic coding module 1007.
  • the encoding device 1000 also has a conventional encoding processing module 1008 and a comparison module 1009.
  • the encoding device 1000 also has a control means 1021 such as a CPU that controls each module, and a storage means (memory) 1022 that stores programs, data, etc. required for executing each module.
  • the wall estimation module 1004 functions as a surface information calculation means that calculates surface information using processed point position data that indicates the positions of processed points that have been encoded and are included in the point cloud data.
  • the position prediction module 1005 functions as a direction information prediction means 1005a that predicts the direction information of the target point that is the subject of the encoding process using processed point position data, and as a first distance prediction means 1005b that predicts the distance to the target point based on the surface information and direction information.
  • the conventional encoding processing module 1008 performs encoding processing on the position information using a conventional method.
  • the conventional encoding processing module 1008 functions as a second distance prediction means that predicts the position of a target point based on the position information of multiple point groups that were previously input, and predicts the distance to the target point based on the difference between the predicted position and the position of the target point.
  • the comparison module 1009 functions as a switching means for switching between the first distance prediction means 1005b and the conventional encoding processing module (second distance prediction means) 1008. For example, the comparison module 1009 switches between the first distance prediction means and the second distance prediction means so as to use the data based on the distance predicted by the first distance prediction means or the data based on the distance predicted by the second distance prediction means, whichever has the smaller amount of data.
  • the coordinate transformation module 1002 receives as input the coordinates ( ⁇ , n, r) that are the point position information 1001, and converts them into coordinates ( ⁇ , ⁇ , r) defined by the azimuth angle ⁇ , elevation angle ⁇ , and distance r, and coordinates (x, y, z) defined by the X-axis, Y-axis, and Z-axis.
  • the coordinate transformation module 1002 uses database D, which defines the relationship between the laser ID (n) and the elevation angle ⁇ .
  • the coordinate transformation module 1002 calculates coordinates (x, y, z) from the coordinates ( ⁇ , ⁇ , r) using the following equations (7), (8), and (9), and outputs them to the tree management module 1003.
  • the tree management module 1003 adds the input coordinates ( ⁇ , ⁇ , r) and coordinates (x, y, z) to the tree T1 as a new node. Unlike the tree described with reference to FIG. 2 , the tree T1 has two types of coordinates represented by coordinates (x, y, z) and coordinates ( ⁇ , ⁇ , r).
  • the tree management module 1003 extracts from the tree T1 the coordinates (x1, y1, z1) and coordinates ( ⁇ 1, ⁇ , r1) of the parent node of the added node, and the coordinates (x2, y2, z2) and coordinates ( ⁇ 2, ⁇ , r2) of the parent node.
  • the tree management module 1003 then outputs x1, y1, x2, and y2 to the wall estimation module 1004 and outputs ⁇ 1, ⁇ 2, and ⁇ to the position prediction module 1005.
  • the tree management module 1003 also outputs an identifier indicating the parent node and an identifier indicating the parent node to the arithmetic coding module 1007.
  • the wall estimation module 1004 calculates the plane equations expressed by the following formulas (10) to (14) that represent a plane perpendicular to the floor from the input x1, y1, x2, and y2, and outputs the values of the parameters a, b, and d to the position prediction module 1005. In other words, the wall estimation module 1004 calculates surface information using processed point position data that indicates the positions of processed points that have been encoded and are included in the point cloud data. Note that c is always 0 for planes perpendicular to the floor, so it is not necessary to output c.
  • the position prediction module 1005 receives ⁇ 1, ⁇ 2, ⁇ , a, b, and d as input, and predicts coordinates ( ⁇ p, n, rp) representing the predicted position of the point. That is, the position prediction module 1005 predicts direction information of the target point to be encoded using the processed point position data. First, the position prediction module 1005 calculates the predicted position (predicted azimuth angle) ⁇ p using the following equation (15). Equation (15) is a version of equations (1) and (2) limited to the azimuth angle.
  • the position prediction module 1005 predicts a predicted distance rp from the origin to the intersection of a line indicating the laser direction represented by ⁇ p and ⁇ and a plane represented by a, b, and d using the following equation (16): That is, the position prediction module 1005 predicts the distance to the target point based on the surface information and direction information.
  • the position prediction module 1005 outputs ⁇ p and rp as the predicted position to the subtraction module 1006.
  • the subtraction module 1006 receives ⁇ , ⁇ p, r, and rp as inputs and calculates the respective prediction differences ⁇ and ⁇ r. These are calculated for the azimuth angle and distance using equation (5).
  • the prediction differences ⁇ and ⁇ r are output to the arithmetic coding module 1007.
  • the arithmetic coding module 1007 uses arithmetic coding to encode the input prediction differences ⁇ , ⁇ r, the identifier indicating the parent node, and the identifier indicating that parent node, to generate a position information bitstream ⁇ and output it to the comparison module 1009.
  • the conventional encoding processing module 1008 receives the position information, that is, coordinates ( ⁇ , n, r), as input, performs encoding processing using the method described above with reference to Figure 2, and outputs the position information bit stream ⁇ to the comparison module 1009.
  • Comparison module 1009 compares the data sizes of position information bit stream ⁇ and position information bit stream ⁇ and selects the smaller one. Comparison module 1009 also adds information indicating the selected one and outputs it as point position information bit stream 1010.
  • FIG. 11 is a flowchart of the encoding method according to this embodiment.
  • FIG. 11 shows an example of a process for encoding target point position information and generating a target point position bitstream.
  • step S1101 the encoding device 1000 extracts position information for one point.
  • the encoding device 1000 then executes steps S1102 to S1108 and steps S1109 to S1113 in parallel or sequentially.
  • the coordinate transformation module 1002 receives as input the coordinates ( ⁇ , n, r) that are the position information of the point. The coordinate transformation module 1002 then converts these coordinates into coordinates ( ⁇ , ⁇ , r) defined by the azimuth angle ⁇ , elevation angle ⁇ , and distance r, and coordinates (x, y, z) defined by the X-axis, Y-axis, and Z-axis.
  • step S1103 the tree management module 1003 adds the input coordinates ( ⁇ , ⁇ , r) and coordinates (x, y, z) to the tree T1 as a new node.
  • step S1104 the tree management module 1003 extracts from the tree T1 the coordinates (x1, y1, z1), ( ⁇ 1, ⁇ , r1) of the parent node of the newly added node and the coordinates (x2, y2, z2), ( ⁇ 2, ⁇ , r2) of that parent node.
  • step S1105 the wall estimation module 1004 calculates the parameters a, b, and d of a plane equation representing a wall perpendicular to the floor from x1, y1, x2, and y2.
  • step S1106 the position prediction module 1005 receives ⁇ 1, ⁇ 2, ⁇ , a, b, and d as input, and predicts coordinates ( ⁇ p, n, rp) representing the predicted position of the point.
  • step S1107 the subtraction module 1006 calculates the prediction differences ⁇ and ⁇ r from the coordinates ( ⁇ , n, r) of the point position and the coordinates ( ⁇ p, n, rp) representing the predicted position.
  • step S1108 the arithmetic coding module 1007 arithmetically codes the input prediction differences ⁇ and ⁇ r and the identifier indicating the ancestor node to generate a position information bit stream ⁇ .
  • Steps S1109 to S1113 are the conventional method described with reference to Figure 2 and executed by the conventional encoding processing module 1008.
  • the conventional encoding processing module 1008 adds a node to the tree and registers position information for the added node.
  • step S1110 the conventional encoding processing module 1008 obtains position information registered for the ancestor node from the tree.
  • the conventional encoding processing module 1008 predicts the position of the added node using the position information of the ancestor node.
  • step S1112 the conventional encoding processing module 1008 calculates the difference between the predicted position and the position of the added node.
  • the conventional encoding processing module 1008 calculates and encodes the difference between the ancestor node identifier and the predicted position, generating a position information bitstream ⁇ .
  • step S1114 compares the bit sizes (data amounts) of position information bit stream ⁇ and position information bit stream ⁇ , and selects the one with the smaller data amount. In other words, if position information bit stream ⁇ is smaller than position information bit stream ⁇ , proceed to step S1115. On the other hand, if position information bit stream ⁇ is smaller than position information bit stream ⁇ , proceed to step S1116.
  • step S1115 the encoding device 1000 adds identification information for the position information bit stream ⁇ (information indicating that the position information bit stream ⁇ has been selected) to the position information bit stream ⁇ , and outputs the result as the point position information bit stream 1010.
  • step S1116 the encoding device 1000 adds identification information for the position information bit stream ⁇ (information indicating that the position information bit stream ⁇ has been selected) to the position information bit stream ⁇ , and outputs the result as the point position information bit stream 1010.
  • the encoding device 1000 of this embodiment assumes that the target point to be processed is part of a continuous point group obtained from a vertical plane such as a wall or a shape close to a plane, and encodes its position on the plane as a predicted position. This makes it possible to efficiently generate a target point position bitstream that indicates the position of the target point. At the same time, the encoding device 1000 also performs encoding using conventional technology and selects the encoding result with the highest encoding efficiency. This allows for efficient encoding processing.
  • this embodiment is not limited to the coordinates described with reference to Figures 7 and 8, and may use, for example, left-handed three-dimensional coordinates.
  • the azimuth angle may be defined based on the X axis rather than the Y axis.
  • a parent node and its parent node are used to estimate the plane, this embodiment is not limited to this.
  • any combination of ancestors such as a grandparent's grandparent node, may be used.
  • this embodiment is not limited to equation (15), and equations (3) and (4) may be used with the azimuth angle limited to three ancestor nodes.
  • the input position information is not limited to coordinates ( ⁇ , n, r), and may be expressed in other ways, such as (x, y, z). In this case, the coordinate transformation module 1002 may perform a transformation to match the input information.
  • the decoding device 1200 decodes a target point position bitstream, which is included in a point cloud bitstream and indicates the positions of target points to be decoded.
  • the point cloud bitstream is input to the decoding device 1200.
  • the decoding device 1200 extracts a position bitstream from the point cloud bitstream.
  • FIG. 12 is an explanatory diagram of the decoding device 1200.
  • the decoding device 1200 has a bitstream determination module 1201, an arithmetic decoding module 1202, a tree management module 1203, a wall estimation module 1004, a position prediction module 1005, and an addition module 1204.
  • the decoding device 1200 also has a coordinate transformation module 1002 and a conventional decoding processing module (second distance prediction means) 1205.
  • the decoding device 1200 also has a control means 1021 such as a CPU that controls each module, and a storage means (memory) 1022 that stores programs, data, etc. required for executing each module.
  • Bitstream determination module 1201 determines whether the position information bitstream of the input point was generated from position information bitstream ⁇ or position information bitstream ⁇ . Then, bitstream determination module 1201 extracts position information bitstream ⁇ or position information bitstream ⁇ depending on the result of this determination. In other words, bitstream determination module 1201 functions as a switching means for switching between the first distance prediction means and the second distance prediction means. When position information bitstream ⁇ is extracted, the position information bitstream ⁇ is output to arithmetic decoding module 1202. On the other hand, when position information bitstream ⁇ is extracted, the position information bitstream ⁇ is output to conventional decoding processing module 1205.
  • the arithmetic decoding module 1202 performs arithmetic decoding on the position information bitstream ⁇ , and decodes the identifier indicating the parent node, the identifier indicating the parent node, and the prediction differences ⁇ and ⁇ r.
  • the identifier indicating the parent node and the identifier indicating the parent node are output to the tree management module 1203, and the prediction differences ⁇ and ⁇ r are output to the addition module 1204.
  • the tree management module 1203 uses the input identifier indicating the parent node and the identifier indicating the parent node to extract the coordinates (x1, y1, z1) and coordinates ( ⁇ 1, ⁇ , r1) of the parent node from tree T2.
  • the tree management module 1203 also extracts the coordinates (x2, y2, z2) and coordinates ( ⁇ 2, ⁇ , r2) of that parent node, and the laser ID (n).
  • the tree management module 1203 then outputs x1, y1, x2, and y2 to the wall estimation module 1004, outputs ⁇ 1, ⁇ 2, and ⁇ to the position prediction module 1005, and outputs n to the addition module 1204.
  • the input coordinates ( ⁇ , ⁇ , r), coordinates (x, y, z), and n are added to tree T2 as a new node.
  • the wall estimation module 1004 calculates the plane equations expressed by equations (10) to (14) representing walls perpendicular to the floor from the input x1, y1, x2, and y2, and outputs the values of a, b, and d to the position prediction module 1005.
  • the position prediction module 1005 receives ⁇ 1, ⁇ 2, ⁇ , a, b, and d as input, predicts coordinates ( ⁇ p, n, rp) representing the predicted position of the point, and outputs ⁇ p and rp to the addition module 1204.
  • the addition module 1204 adds the input predicted positions ⁇ p, rp and the predicted differences ⁇ , ⁇ r, respectively, to calculate ⁇ and r.
  • the addition module 1204 also combines the input n to generate coordinates ( ⁇ , n, r), and outputs point position information 1001 as the output of the position data decoding unit.
  • the coordinates ( ⁇ , n, r) are also output to the coordinate transformation module 1002.
  • the coordinate transformation module 1002 receives coordinates ( ⁇ , n, r) as input and converts them into coordinates ( ⁇ , ⁇ , r) defined by the azimuth angle ⁇ , elevation angle ⁇ , and distance r, and coordinates (x, y, z) defined by the X-axis, Y-axis, and Z-axis. To generate coordinates ( ⁇ , ⁇ , r) from coordinates ( ⁇ , n, r), the coordinate transformation module 1002 uses database D, which defines the relationship between the laser ID and elevation angle ⁇ .
  • the coordinate transformation module 1002 calculates coordinates (x, y, z) from coordinates ( ⁇ , ⁇ , r) using equations (7) to (9), and outputs coordinates ( ⁇ , ⁇ , r), coordinates (x, y, z), and n to the tree management module 1203.
  • the conventional decoding processing module 1205 uses the conventional technology described above to decode the input position information bit stream ⁇ to decode the coordinates ( ⁇ , n, r), and outputs the point position information 1001 as the output of the position data decoding unit.
  • Figure 13 is a flowchart of the decoding method.
  • step S1301 the decoding device 1200 extracts the position information bitstream 1010 for one point.
  • step S1302 the bitstream determination module 1201 determines whether the position information bitstream 1010 for one point was generated from the position information bitstream ⁇ or the position information bitstream ⁇ . The bitstream determination module 1201 then extracts the position information bitstream ⁇ or the position information bitstream ⁇ depending on the result of the determination. If it is determined that the position information bitstream 1010 was generated from the position information bitstream ⁇ , the process proceeds to step S1303. On the other hand, if it is determined that the position information bitstream 1010 was generated from the position information bitstream ⁇ , the process proceeds to step S1311.
  • step S1303 the arithmetic decoding module 1202 applies arithmetic decoding to the point position information bitstream ⁇ , and decodes the ancestor node identifier and ⁇ and ⁇ r representing the prediction difference.
  • step S1304 the tree management module 1203 references the ancestor node identifier, searches for the parent node in tree T2, and adds a new node.
  • step S1305 the tree management module 1203 obtains the coordinates (x1, y1, z1) and coordinates ( ⁇ 1, ⁇ , r1) of the parent node and the coordinates (x2, y2, z2) and coordinates ( ⁇ 2, ⁇ , r2) of that parent node from tree T2.
  • step S1306 the wall estimation module 1004 calculates the parameters a, b, and d of a plane equation representing a wall perpendicular to the floor from x1, y1, x2, and y2.
  • step S1307 the position prediction module 1005 receives ⁇ 1, ⁇ 2, ⁇ , a, b, and d as input, and predicts coordinates ( ⁇ p, n, rp) representing the predicted position of the point.
  • step S1308 the addition module 1204 calculates coordinates ( ⁇ , n, r), which are the point position information 1001, from the predicted difference ⁇ , ⁇ r, which is the difference in predicted position, and the coordinates ( ⁇ p, n, rp) that represent the predicted position.
  • step S1309 the coordinate transformation module 1002 transforms the point position information.
  • step S1310 the tree management module 1203 registers the coordinate-transformed point position information in tree T2 as a new node.
  • Steps S1311 to S1316 are conventional techniques executed by the conventional decoding processing module 1205.
  • the conventional decoding processing module 1205 applies arithmetic decoding to the point's position information bitstream ⁇ to decode the difference between the parent node's identifier and the predicted position.
  • the conventional decoding processing module 1205 references the parent node's identifier, searches the tree for the node corresponding to the parent, and adds a new node.
  • step S1313 the conventional decoding processing module 1205 obtains the position information registered in the ancestor node from the tree.
  • the conventional decoding processing module 1205 calculates the point's position information using the ancestor node's position information.
  • step S1315 the conventional decoding processing module 1205 adds the predicted position difference and the predicted position to calculate the point's position information.
  • step S1316 the conventional decoding processing module 1205 registers the point position information in the added node. As a result, the decoding device 1200 calculates the coordinates ( ⁇ , n, r), which are the point position information 1001.
  • step S1317 the decoding device 1200 outputs the point position information 1001 generated in step S1310 or step S1316.
  • the decoding device of this embodiment decodes the target point position bitstream, which indicates the position of the target point being processed, using conventional decoding technology, or by predicting the position on a plane by assuming that the bitstream is part of a continuous point group obtained from a vertical plane such as a wall or a shape close to a plane. Either of these processes can be used to decode the target point position data, which indicates the position of the target point.
  • the wall estimation module 1004 calculates surface information based on at least three pieces of processed point position data.
  • the wall estimation module 1004 can also calculate three-dimensional surface information as surface information based on at least three pieces of processed point position data. In this case, the three coded points are not aligned on the same line. That is, in the rotary LIDAR, at least one point must be position information obtained from a different laser.
  • the predicted distance rp from the origin to the intersection of the line indicating the laser direction represented by ⁇ p and ⁇ and the plane represented by a, b, and d can be predicted using the following equation (21):
  • a plane is estimated and predicted using three pieces of coded position information, but four or more pieces of coded position information may also be used.
  • the parameters a, b, and d of the plane equation can be calculated by applying the least squares method to equation (17). If the number of points used to estimate the plane increases, it becomes necessary to wait until the acquisition of the required number of points is completed, which increases the delay, but there is a possibility that the method will be more robust against noise contained in the position information of the points.
  • the present invention can also be realized by supplying a program that realizes one or more of the functions of the above-described embodiments to a system or device via a network or a storage medium, and having one or more processors in the computer of the system or device read and execute the program.
  • the present invention can also be realized by a circuit (e.g., an ASIC) that realizes one or more of the functions.
  • each embodiment can provide an encoding device, decoding device, encoding method, decoding method, and program that are capable of highly efficient, low-latency processing.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】 高効率かつ低遅延の処理が可能な符号化装置を提供する。 【解決手段】 符号化装置(1000)は、点群データに含まれる、符号化処理が完了している処理済点の位置を示す処理済点位置データを用いて面情報を算出する面情報算出手段(1004)と、処理済点位置データを用いて符号化処理の対象となる対象点の方向情報を予測する方向情報予測手段(1005)と、面情報と方向情報とに基づいて対象点までの距離を予測する第1距離予測手段(1005)とを有する。

Description

符号化装置、復号化装置、符号化方法、復号化方法、およびプログラム
 本発明は、符号化装置、復号化装置、符号化方法、復号化方法、およびプログラムに関する。
 従来、無人搬送車(AGV:Automatic Guided Vehicle)の自律的な移動を実現するため、ライダー(LiDAR:Light Detection And Ranging)等により生成される点群データを用いる方法が知られている。一般的に、点群データは、多数の点および各点に付随するデータを含むため、送受信または記憶媒体への格納等の際に長い時間が必要となることがある。
 非特許文献1には、G-PCC(Geometry based Point Cloud Compresion)を用いて点群を符号化する方法が開示されている。G-PCCの一形態であるPredictive geometry codingは、過去に入力された複数の点の位置情報を基に入力点の位置を予測し、予測位置情報と入力点の位置情報との差分を符号化する方法である。特許文献1には、パラメータで表されるモデルを点群とフィッティングし、フィッティング後のモデルのパラメータおよびフィッティングの残差データを符号化する方法が開示されている。
特表2019-521417号公報
ISO/IEC JTC 1/SC 29/WG7N 0151, G-PCC codec description v12, July 2021
 しかしながら、非特許文献1に開示された方法では、過去に入力された複数の点の位置とライダーのレーザー角度とに基づいて、新たに入力された点の位置を予測するが、地物の形状に基づく予測を行わない。このため、予測誤差が発生して符号化効率が低下する可能性がある。
 また、特許文献1に開示された方法では、モデルと点群とをフィッティングさせるために、フィッティングに必要なすべての点を取得する必要があり、ライダー等から点の取得が完了するまで処理を開始することができない。このため、遅延時間が生じ、リアルタイム用途のアプリケーションには適さない可能性がある。
 そこで本発明は、高効率かつ低遅延の処理が可能な符号化装置を提供することを目的とする。
 本発明の一側面としての符号化装置は、点群データに含まれる、符号化処理が完了している処理済点の位置を示す処理済点位置データを用いて面情報を算出する面情報算出手段と、前記処理済点位置データを用いて前記符号化処理の対象となる対象点の方向情報を予測する方向情報予測手段と、前記面情報と前記方向情報とに基づいて前記対象点までの距離を予測する第1距離予測手段とを有する。
 本発明の他の目的及び特徴は、以下の実施形態において説明される。
 本発明によれば、高効率かつ低遅延の処理が可能な符号化装置を提供することができる。
各実施形態に係る符号化処理の説明図である。 各実施形態に係る回転型ライダーにより生成される点群データに対応する木の例を示す図である。 回転型ライダーを用いて床に水平なレーザーが垂直な壁を計測することにより生成される点群データの一例を示す図である。 回転型ライダーを用いて床に水平ではないレーザーが垂直な壁を計測することにより生成される点群データの一例を示す図である。 回転型ライダーを用いて床に水平なレーザーが垂直な壁を計測することにより生成される点群データの一例を示す図である。 回転型ライダーを用いて床に水平ではないレーザーが垂直な壁を計測することにより生成される点群データの一例を示す図である。 各実施形態に係る回転型ライダーの座標の説明図である。 各実施形態に係る点群を構成する点と座標との関係の説明図である。 各実施形態に係る回転型ライダーのレーザーIDと仰角との関係を示すデータベースである。 第1実施形態に係る符号化装置の説明図である。 第1実施形態に係る符号化方法を示すフローチャートである。 第2実施形態に係る復号化装置の説明図である。 第2実施形態に係る復号化方法を示すフローチャートである。
 以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
 <G-PCCについて>
 初めに、図1を参照して、予測符号化により点の位置を予測した結果(予測位置)と実際の点の位置(実位置)との差分を符号化する処理(符号化処理)について説明する。予測符号化(Predictive Geometry Coding)はMPEG(Moving Picture Experts Group)のG-PCC(Geometry based Point Cloud Compression)の一つである。なお、G-PCCは、非特許文献1に開示されている。
 予測符号化は、入力された点の位置を過去に入力された点の位置に基づいて予測し、入力された点の位置と予測された位置との差分を符号化する手法である。また、点群データは、予測符号化が適用される場合、木(Prediction Tree)が作成されることにより管理される。木は、複数のノードが結合されたものである。個々のノードは、個々の点に関する情報を示すデータが登録される。例えば、個々のノードは、点の位置を示す位置データと、点の位置以外の情報を示す属性データとが登録される。また、個々のノードは、自身とその他を一意に識別することを可能にする固有の識別子を持ち、枝を根の方向へ進んだノードである自身の親や、そのまた親等の先祖の識別子を保持している。なお、木は、各点の位置に基づいて任意に作成又は更新されることが可能であり、典型的には近いノード同士の間で枝が張られる。
 図1は、予測符号化により点の位置を予測した結果と点の位置との差分を符号化する処理(符号化処理)の説明図である。図1は、X軸、Y軸、およびZ軸を有する左手系の三次元座標により規定されている空間内のノードを示している。ノードnは、位置を予測する処理の対象となる点に対応している。ノードn0は、ノードnの親ノードである。ノードn1は、ノードn0の親ノードである。ノードn2は、ノードn1の親ノードである。任意のノードxの位置をPоs(x)と表し、予測ベクトルをPred(x)と表す。
 予測符号化により予測されたノードxの位置をPredPоs(x)と表した場合、以下の式(1)~(4)が成り立つ。各実施形態の予測符号化では、式(1)および式(2)と、式(3)および式(4)との一方を使用してノードnの位置を予測する。
  Pred(n)=Pos(n0)-Pos(n1)    …(1)
  PredPos(n)=Pos(n0)+Pred(n) …(2)
  Pred(n)=Pos(n0)-Pos(n2)    …(3)
  PredPos(n)=Pos(n1)+Pred(n) …(4)
 ノードnの位置Pоs(n)と、予測符号化により予測されたノードnの位置PredPоs(n)との差分Delta(n)は、以下の式(5)により算出される。
  Delta(n)=Pos(n)-PredPos(n) …(5)
 差分Delta(n)およびノードn0の識別子に算術符号化が適用されることにより、ノードnの位置を示す位置ビットストリームが生成される。そして、位置ビットストリームと、別途、属性データに符号化を適用することにより生成された属性ビットストリームとが合成されることにより、符号化ビットストリームが出力される。
 典型的には、予測符号化において、差分Delta(n)が小さい程、符号化効率が高くなり、差分Delta(n)が大きい程、符号化効率が低くなる。符号化効率を高める上では、予測符号化により予測されたノードxの位置PredPоs(n)の精度を向上させ、差分Delta(n)を小さくする必要がある。
 なお前述の説明では、左手系の三次元座標により規定されている空間内にノードが存在する場合を例に挙げたが、空間を規定する座標系は特に限定されない。例えば、ノードが存在する空間は、右手系の三次元座標により規定されていてもよい。
 次に、符号化ビットストリームを復号する処理(復号化処理)について説明する。符号化ビットストリームは、位置ビットストリームと、属性ビットストリームとに分離される。位置ビットストリームに算術復号が適用されることにより、差分Delta(n)およびノードnの親ノードn0の識別子が生成される。復号する点に対応するノードが当該識別子に基づいて木に追加され、前述の手法により当該ノードの位置が予測される。そして、以下の式(6)により、当該ノードの位置が復号される。その後、属性ビットストリームが復号される。
  Pos(n)=Delta(n)+PredPos(n) …(6)
 次に、図2を参照して、回転型ライダーにより取得された点群データに予測符号化が適用される場合について説明する。図2は、回転型ライダーにより生成される点群データに対応する木の例を示す図である。ここで、点群データを構成するそれぞれの点は、回転型ライダーによって計測された計測点(計測データ)である。図2は、方位角の方向を示す軸と、回転型ライダーに搭載されている各レーザーに固有のレーザーIDを示す軸と、ライダーからの距離を示す軸とにより定義される三次元座標により規定される空間を示している。
 回転型ライダーは、各レーザーがレーザー光を出射する垂直方向の角度、すなわち仰角が変化しない。このため、仰角の代わりにレーザーIDを使用することにより、データ量を削減することができる。図2に示される自然数Nは、レーザーの数を表しており、例えば、自然数Nは「16」または「32」である。各レーザーを使用して取得された点は、図2に示されるように、同一のレーザーを使用して先に取得された点を持つようにノードが追加され、木を形成していく。
 図1を参照して説明した手法および図2を参照して説明した手法はそれぞれ、入力された点群データに含まれる点の位置を、先に入力された複数の点の位置に基づいて予測している。すなわち、入力された点の予測位置は、親やそのまた親等の先祖のノードの位置から決定され、式(1)および式(2)と、式(3)および式(4)のいずれか一方を用いて予測が行われる。このため、当該手法では、入力された点の位置が式(1)および式(2)と、式(3)および式(4)に従わない場合、予測の誤差が大きくなり、符号化効率が低下する可能性がある。以下、図3乃至図6を参照して、この例を説明する。
 図3を参照して、図1を参照して説明した方法により、点の位置を予測した結果(予測位置)と実際の点の位置(実位置)との差分が生じることを説明する。図3は、平らな壁と床が存在するシーンにおいて、回転型ライダーを使用している様子を示す図である。F1は水平な床(地面)であり、W1は床F1に垂直な壁である。S1は、床F1よりも上方に設置されたライダー(回転型ライダー)である。301~309は、ライダーS1が仰角ゼロ、すなわち床F1と平行なレーザーによって壁W1を計測したことによって得られた点(点群)であり、点305は仰角だけではなく方位角もゼロの点である。
 ライダーS1は一定速度で回転するモーターによって方位角を変化させながら計測を行う。点301は最初に計測された点、点302は次に計測された点、点303はその次に計測された点であり、点309は最後に計測された点である。点301~309は、壁W1上で直線上に並ぶが、それらの間隔は一定ではない。点301~点305にかけては、点301と点302との間隔は広く、点302と点303との間隔はやや狭まり、点303と点304との間隔はさらに狭まり、点304と点305との間隔は最小となる。一方、点305から点309にかけては、点305と点306との間隔は狭いが、点306と点307との間隔は広がり、点307と点308との間隔はさらに広がり、点308と点309との間隔は最大となる。
 以上で説明した通り、壁W1を計測したことによって得られた連続する2つの点の間隔は、一定ではない。図1を参照して説明した方法、すなわち式(1)および式(2)と、式(3)および式(4)とのいずれか一方を用いて予測する方法では、予測のために参照した2つの点の間隔が一定であるという仮定を用いているため、予測誤差が生じる。
 図4は、図3と同様に平らな壁と床が存在するシーンにおいて、回転型ライダーを使用している様子を示す図である。図4では、点402~409はライダーS1の仰角が下向きのレーザーによって壁W1を計測したことによって得られた点(点群)を表している。このとき、点402~409のうち隣り合う2点同士の間隔は、図3を参照して説明した点301~309と同様に一定ではない。一方、点301~309は空間上で直線上に並ぶが、点402~409は直線上に並ばない。図1を参照して説明した方法、すなわち式(1)および式(2)と、式(3)および式(4)とのいずれか一方を用いて予測する方法は、隣り合う2点の間隔が一定であることに加え、各点が直線上に並ぶことを仮定しているため、予測誤差が生じる。
 図5を参照して、図2を参照して説明した方法により、点の位置を予測した結果(予測位置)と実際の点の位置(実位置)との差分が生じることを説明する。図5は、図3を参照して説明したシーンを上面から見下ろした図である。501は、ライダーS1の原点と点304を結ぶ線分であり、ライダーS1と点304との間の距離を表している。502は、ライダーS1の原点と点305とを結ぶ線分であり、ライダーS1と点305との間の距離を表している。503は、ライダーS1の原点と点306とを結ぶ線分であり、ライダーS1と点306との間の距離を表している。
 点304の次に得られた点305では距離が小さくなり、その次に得られた点306では距離が大きくなったことを示している。図2を参照して説明した方法、すなわち式(1)および式(2)と、式(3)および式(4)のいずれか一方を用いて予測する方法では、ライダーからの距離は予測のために参照した点と点との間で一定に変化するという仮定を用いているため、予測誤差が生じる。504は、点306の予測位置を表しており、点304の次に得られた点305では距離が小さくなっているため、その次の点306ではより距離が小さくなる予測とされてしまう。
 図6は、図4を参照して説明したシーンを上面から見下ろした図である。601は、ライダーS1の原点と点404とを結ぶ線分であり、ライダーS1と点404との間の距離を表している。602は、ライダーS1の原点と点405とを結ぶ線分であり、ライダーS1と点405との間の距離を表している。603は、ライダーS1の原点と点604とを結ぶ線分であり、ライダーS1と点604との間の距離を表している。点604は、点406の予測位置を表している。図2を参照して説明した方法により点406の位置を予測すると、図5と同様に、点406の予測位置は、点604となり、実際の位置よりもライダーS1に近い位置となる。
 以下の各実施形態では、前記課題を解決するための技術を説明する。なお各実施形態において、地面と垂直な壁は一例であり、平面ではない地物、例えば柱などの円柱状の地物であっても、局所的に垂直な平面と見なすことで適用可能である。また各実施形態において、ライダーは一例であり、点群を取得することができる装置であれば、ライダー以外の点群取得装置にも適用可能である。
 <第1実施形態>
 まず、本発明の第1実施形態について説明する。本実施形態に好適な条件は、水平な床(地面)と垂直な壁が存在するシーンにおいて、回転型ライダー(点群取得装置)が床に平行な角度に配置されていることである。回転型ライダーは、床や壁を計測して点群(点群データ)を生成する。すなわち点群は、地面に配置された点群取得装置から取得されたデータである。生成された点群は、符号化装置へ入力されて符号化が行われる。なお点群取得装置は、地面に配置される構成に限定されるものではない。点群取得相当は、地面と平行であれば良く、例えば車両またはドローンなどに取り付けられていても良い。
 本実施形態における座標について説明する。点群を構成する各点は、回転型ライダーによって取得され、回転型ライダーを基準とした位置情報を持つ。
 まず、図7を参照して、ライダーS1の座標を説明する。図7は、ライダーS1の座標の説明図であり、ライダーS1を基準としたX軸、Y軸、およびZ軸を有する右手系の三次元座標により規定されている空間を示す。703はZ軸であり、ライダーS1が床に平行に設置されている条件において、ライダーS1のレーザー中心から垂直に上空へ向かう軸である。701はX軸であり、702はY軸である。ライダーS1が床に平行な角度に設置されている条件において、X軸701およびY軸702はそれぞれ床に平行である。
 次に、図8を参照して、点群を構成する点と座標との関係を説明する。図8は、点群を構成する点と座標との関係の説明図である。801は、計測された点である。点の位置をX軸、Y軸、およびZ軸を有する右手系の三次元座標で表した座標を座標(x、y、z)とするとき、位置803はX軸上のxの値、位置804がY軸上のyの値、位置805がZ軸上のzの値である。
 点801をX軸とY軸とを含む平面(XY平面)に垂直に降ろしたときに接する点が仮想点802である。原点Oと仮想点802とを結ぶ線分とY軸との間の角度806が方位角θである。原点Oと仮想点802とを結ぶ線分と、原点Oと点801とを結ぶ線分との間の角度807が仰角φである。原点Oと点801とを結ぶ線分の長さは、ライダーS1と点801との間の距離rである。点801の位置を方位角θ、仰角φ、および距離rで表現するとき、座標(θ、φ、r)と表される。
 前述の通り、ライダーS1は、各レーザーの仰角φが変化しない。このため、図9に示されるような各レーザー固有のレーザーIDと仰角φとの関係を定義するデータベースがあれば、仰角φの代わりにレーザーIDを使用して点801の位置を表すことができる。例えば、レーザーIDをnと表すとき、点801の位置は座標(θ、n、r)と表される。
 次に、本実施形態における符号化装置について説明する。回転型ライダーから取得された点群データは、符号化装置に入力される。符号化装置は、点群データから位置を表わす位置データを取り出す。位置データは、点群に含まれる各点の位置情報により構成されるデータであり、各点の位置情報は、方位角θと、レーザーID(n)と、距離rとで表現される座標(θ、n、r)により表される。
 次に、符号化装置1000により位置情報が符号化される処理(符号化処理)について詳述する。まず、図10を参照して、符号化装置1000について説明する。図10は、符号化装置1000の説明図である。符号化装置1000は、座標変換モジュール1002、木管理モジュール1003、壁推定モジュール1004、位置予測モジュール1005、減算モジュール1006、および算術符号化モジュール1007を有する。また符号化装置1000は、従来符号化処理モジュール1008および比較モジュール1009を有する。また符号化装置1000は、各モジュールを制御するCPUなどの制御手段1021、および各モジュールの実行に必要なプログラムおよびデータなどを記憶する記憶手段(メモリ)1022を有する。
 壁推定モジュール1004は、点群データに含まれる、符号化処理が完了している処理済点の位置を示す処理済点位置データを用いて面情報を算出する面情報算出手段として機能する。
 位置予測モジュール1005は、処理済点位置データを用いて符号化処理の対象となる対象点の方向情報を予測する方向情報予測手段1005a、および、面情報と方向情報とに基づいて対象点までの距離を予測する第1距離予測手段1005bとして機能する。
 従来符号化処理モジュール1008は、位置情報に対して従来の方法で符号化処理を行う。すなわち従来符号化処理モジュール1008は、過去に入力された複数の点群の位置情報に基づいて対象点の位置を予測し、予測した位置と、対象点の位置と、の差分に基づいて対象点までの距離を予測する第2距離予測手段として機能する。
 比較モジュール1009は、第1距離予測手段1005bと、従来符号化処理モジュール(第2距離予測手段)1008とを切り替える切替手段として機能する。例えば、比較モジュール1009は、第1距離予測手段により予測された距離に基づくデータ、および第2距離予測手段により予測された距離に基づくデータのうち、データ量が小さい方を用いるように、第1距離予測手段と前記第2距離予測手段とを切り替える。
 座標変換モジュール1002は、点の位置情報1001である座標(θ、n、r)を入力として受け取り、方位角θ、仰角φ、および距離rにより定義される座標(θ、φ、r)と、X軸、Y軸、およびZ軸により定義される座標(x、y、z)へ変換する。座標変換モジュール1002は、座標(θ、n、r)から座標(θ、φ、r)を生成するために、レーザーID(n)と仰角φとの関係を定義したデータベースDを用いる。次に、座標変換モジュール1002は、以下の式(7)、式(8)、式(9)を用いて、座標(θ、φ、r)から座標(x、y、z)を算出し、木管理モジュール1003へ出力する。
  x=r×cos(φ)×sin(θ) …(7)
  y=r×cos(φ)×cos(θ) …(8)
  z=r×sin(φ)        …(9)
 木管理モジュール1003は、入力された座標(θ、φ、r)および座標(x、y、z)を、木T1に新たなノードとして追加する。木T1は、図2を参照して説明した木とは異なり、座標(x、y、z)および座標(θ、φ、r)で表される2種類の座標を持つ。次に、木管理モジュール1003は、追加したノードの親ノードの座標(x1、y1、z1)および座標(θ1、φ、r1)と、その親のノードの座標(x2、y2、z2)および座標(θ2、φ、r2)を木T1から取り出す。そして木管理モジュール1003は、x1、y1、x2、およびy2を壁推定モジュール1004へ出力し、θ1、θ2、およびφを位置予測モジュール1005へ出力する。また木管理モジュール1003は、親ノードを示す識別子、および、その親のノードを示す識別子を、算術符号化モジュール1007へ出力する。
 壁推定モジュール1004は、入力されたx1、y1、x2、y2から、床に垂直な平面を表す以下の式(10)~(14)で表される平面方程式を算出し、パラメータa、b、dの値を位置予測モジュール1005へ出力する。すなわち壁推定モジュール1004は、点群データに含まれる、符号化処理が完了している処理済点の位置を示す処理済点位置データを用いて面情報を算出する。なお、床に垂直な平面ではcは必ず0になるため、cは出力しなくてもよい。
  a×x+b×y+c×z+d=0         …(10)
  a=y2-y1                 …(11)
  b=x1-x2                 …(12)
  c=0                     …(13)
  d=x1×(y1-y2)-y1×(x1-x2) …(14)
 位置予測モジュール1005は、θ1、θ2、φ、a、b、およびdを入力して受け取り、点の予測位置を表す座標(θp、n、rp)を予測する。すなわち位置予測モジュール1005は、処理済点位置データを用いて符号化処理の対象となる対象点の方向情報を予測する。まず、位置予測モジュール1005は、以下の式(15)を用いて、予測位置(予測方位角)θpを算出する。式(15)は、式(1)、(2)を方位角に限定したものである。
  θp=2×θ1-θ2 …(15)
 次に、位置予測モジュール1005は、原点から、θpおよびφにより表されるレーザーの方向を示す直線と、a、b、dで表される平面との交点までの予測距離rpを、以下の式(16)を用いて予測する。すなわち位置予測モジュール1005は、面情報と方向情報とに基づいて対象点までの距離を予測する。
  rp=-d÷(a×cos(φ)×sin(θp)+b×cos(φ)×cos(θp)) …(16)
 最後に、位置予測モジュール1005は、予測位置としてθpとrpを減算モジュール1006へ出力する。
 減算モジュール1006は、θ、θp、r、rpを入力として受け取り、それぞれの予測差分Δθ、Δrを算出する。これは、式(5)を用いて方位角および距離に対して算出したものである。予測差分Δθ、Δrは、算術符号化モジュール1007へ出力される。
 算術符号化モジュール1007は、入力された予測差分Δθ、Δr、親ノードを示す識別子、および、その親のノードを示す識別子を算術符号化にて符号化し、位置情報ビットストリームαを生成し、比較モジュール1009へ出力する。
 従来符号化処理モジュール1008は、位置情報である座標(θ、n、r)を入力として受け取り、図2を参照して説明した前述の方法により符号化処理を行い、位置情報ビットストリームβとして比較モジュール1009へ出力する。
 比較モジュール1009は、位置情報ビットストリームαと位置情報ビットストリームβとのデータサイズを比較し、小さい方を選択する。また比較モジュール1009は、選択した方を表す情報を付加し、点の位置情報ビットストリーム1010として出力する。
 次に、図11を参照して、本実施形態に係る符号化装置1000により位置情報を符号化する処理(符号化方法)について説明する。図11は、本実施形態に係る符号化方法のフローチャートである。図11は、対象点位置情報を符号化して対象点位置ビットストリームを生成する処理の例を示している。
 まずステップS1101において、符号化装置1000は、1点分の位置情報を取り出す。そして符号化装置1000は、ステップS1102~S1108と、ステップS1109~S1113とを並列または順次に実行する。
 ステップS1102において、座標変換モジュール1002は、点の位置情報である座標(θ、n、r)を入力として受け取る。そして座標変換モジュール1002は、方位角θ、仰角φ、および距離rにより定義される座標(θ、φ、r)と、X軸、Y軸、およびZ軸により定義される座標(x、y、z)へ変換する。
 続いてステップS1103において、木管理モジュール1003は、入力された座標(θ、φ、r)および座標(x、y、z)を、木T1に新たなノードとして追加する。続いてステップS1104において、木管理モジュール1003は、新たに追加したノードの親ノードの座標(x1、y1、z1)、(θ1、φ、r1)と、その親のノードの座標(x2、y2、z2)、(θ2、φ、r2)とを、木T1から取り出す。
 続いてステップS1105において、壁推定モジュール1004は、x1、y1、x2、およびy2から、床に垂直な壁を表す平面方程式のパラメータa、b、dを算出する。続いてステップS1106において、位置予測モジュール1005は、θ1、θ2、φ、a、b、およびdを入力として受け取り、点の予測位置を表す座標(θp、n、rp)を予測する。
 続いてステップS1107において、減算モジュール1006は、点の位置の座標(θ、n、r)および予測位置を表す座標(θp、n、rp)から、予測差分Δθ、Δrを算出する。続いてステップS1108において、算術符号化モジュール1007は、入力された予測差分Δθ、Δrと先祖ノードを示す識別子とを算術符号化にて符号化し、位置情報ビットストリームαを生成する。
 ステップS1109~S1113は、従来符号化処理モジュール1008により実行される図2を参照して説明した従来の方法である。まずステップS1109において、従来符号化処理モジュール1008は、木にノードを追加し、追加したノードに位置情報を登録する。続いてステップS1110において、従来符号化処理モジュール1008は、木から先祖ノードに登録されている位置情報を取得する。続いてステップS1111において、従来符号化処理モジュール1008は、先祖ノードの位置情報を用いて、追加したノードの位置を予測する。続いてステップS1112において、従来符号化処理モジュール1008は、予測位置と追加したノードの位置との差分を算出する。続いてステップS1113において、従来符号化処理モジュール1008は、先祖ノードの識別子と予測位置の差分を算出符号化し、位置情報ビットストリームβを生成する。
 続いてステップS1114において、比較モジュール1009は、位置情報ビットストリームαと位置情報ビットストリームβのビットサイズ(データ量)を比較し、データ量が小さい方を選択する。すなわち、位置情報ビットストリームαが位置情報ビットストリームβよりも小さい場合、ステップS1115に進む。一方、位置情報ビットストリームβが位置情報ビットストリームαよりも小さい場合、ステップS1116に進む。
 ステップS1115において、符号化装置1000は、位置情報ビットストリームαに、位置情報ビットストリームαの識別情報(位置情報ビットストリームαを選択したことを示す情報)を付加し、点の位置情報ビットストリーム1010として出力する。
 ステップS1116において、符号化装置1000は、位置情報ビットストリームβに、位置情報ビットストリームβの識別情報(位置情報ビットストリームβを選択したことを示す情報)を付加し、点の位置情報ビットストリーム1010として出力する。
 本実施形態の符号化装置1000は、処理の対象となる対象点を、壁などの垂直な平面または平面に近い形状から得られた連続した点群の一部であると仮定し、平面上の位置を予測位置として符号化する。これにより、対象点の位置を示す対象点位置ビットストリームを効率的に生成することができる。また符号化装置1000は、同時に、従来技術による符号化を行い、より符号化効率が高い符号化結果を選択する。これにより、効率的に符号化処理を行うことができる。
 なお本実施形態は、図7および図8を参照して説明した座標に限定されるものではなく、例えば左手系の三次元座標でもよい。また、方位角はY軸ではなくX軸を基準に定義してもよい。また、平面の推定に際して親ノードとその親のノードを用いるが、本実施形態はこれに限定されるものではない。例えば、親の親の親のノードなど任意の先祖の組み合わせで実現してもよい。また本実施形態は、式(15)に限定されるものではなく、例えば先祖のノードを3つ用いて、式(3)、(4)を方位角に限定して用いてもよい。また、入力の位置情報は、座標(θ、n、r)に限定されるものではなく、例えば(x、y、z)などの他の表現でもよい。その場合、座標変換モジュール1002にて、入力情報に合わせた変換を行ってもよい。
 <第2実施形態>
 次に、本発明の第2実施形態に係る復号化装置1200について説明する。復号化装置1200は、点群ビットストリームに含まれる、復号化処理の対象となる対象点の位置を示す対象点位置ビットストリームを復号化する。点群ビットストリームは、復号化装置1200へ入力される。復号化装置1200は、点群ビットストリームから位置ビットストリームを取り出す。
 まず、復号化装置1200により位置情報が復号化される処理(復号化処理)について詳述する。まず、図12を参照して、復号化装置1200について説明する。図12は、復号化装置1200の説明図である。復号化装置1200は、ビットストリーム判定モジュール1201、算術復号化モジュール1202、木管理モジュール1203、壁推定モジュール1004、位置予測モジュール1005、および加算モジュール1204を有する。また復号化装置1200は、座標変換モジュール1002および従来復号化処理モジュール(第2距離予測手段)1205を有する。また復号化装置1200は、各モジュールを制御するCPUなどの制御手段1021、および各モジュールの実行に必要なプログラムおよびデータなどを記憶する記憶手段(メモリ)1022を有する。
 ビットストリーム判定モジュール1201は、入力された点の位置情報ビットストリームが、位置情報ビットストリームαまたは位置情報ビットストリームβのいずれから生成されたかを判定する。そしてビットストリーム判定モジュール1201は、その判定結果に応じて、位置情報ビットストリームαまたは位置情報ビットストリームβを取り出す。すなわちビットストリーム判定モジュール1201は、第1距離予測手段と第2距離予測手段とを切り替える切替手段として機能する。位置情報ビットストリームαが取り出された場合、位置情報ビットストリームαは算術復号化モジュール1202へ出力される。一方、位置情報ビットストリームβが取り出された場合、位置情報ビットストリームβは従来復号化処理モジュール1205へ出力される。
 算術復号化モジュール1202は、位置情報ビットストリームαに対して算術復号化処理を行い、親ノードを示す識別子と、その親のノードを示す識別子と、予測差分Δθ、Δrとを復号化する。親ノードを示す識別子と、その親のノードを示す識別子は、木管理モジュール1203へ出力され、予測差分Δθ、Δrは加算モジュール1204へ出力される。
 木管理モジュール1203は、入力された親ノードを示す識別子と、その親のノードを示す識別子とを用いて、木T2から親ノードの座標(x1、y1、z1)および座標(θ1、φ、r1)を取り出す。また木管理モジュール1203は、その親のノードの座標(x2、y2、z2)および座標(θ2、φ、r2)と、レーザーID(n)とを取り出す。そして木管理モジュール1203は、x1、y1、x2、およびy2を壁推定モジュール1004へ出力し、θ1、θ2、およびφを位置予測モジュール1005へ出力し、nを加算モジュール1204へ出力する。また、入力された座標(θ、φ、r)および座標(x、y、z)とnを、木T2に新たなノードとして追加する。
 壁推定モジュール1004は、入力されたx1、y1、x2、y2から、床に垂直な壁を表す式(10)~(14)で表される平面方程式を算出し、a、b、dの値を位置予測モジュール1005へ出力する。位置予測モジュール1005は、θ1、θ2、φ、a、b、dを入力して受け取り、点の予測位置を表す座標(θp、n、rp)を予測し、θpおよびrpを加算モジュール1204へ出力する。
 加算モジュール1204は、入力された予測位置θp、rpと、予測差分Δθ、Δrとをそれぞれ加算し、θとrを算出する。また加算モジュール1204は、入力されたnを組み合わせて、座標(θ、n、r)を生成し、位置データ復号化部の出力として点の位置情報1001を出力する。座標(θ、n、r)は、座標変換モジュール1002にも出力される。
 座標変換モジュール1002は、座標(θ、n、r)を入力として受け取り、方位角θ、仰角φ、および距離rにより定義される座標(θ、φ、r)と、X軸、Y軸、およびZ軸により定義される座標(x、y、z)へ変換する。座標変換モジュール1002は、座標(θ、n、r)から座標(θ、φ、r)を生成するため、レーザーIDと仰角φとの関係を定義したデータベースDを使用する。次に、座標変換モジュール1002は、式(7)~(9)を用いて、座標(θ、φ、r)から座標(x、y、z)を算出し、木管理モジュール1203へ座標(θ、φ、r)、座標(x、y、z)、およびnを出力する。
 従来復号化処理モジュール1205は、前述の従来技術を用いて、入力された位置情報ビットストリームβを復号化して座標(θ、n、r)を復号し、位置データ復号化部の出力として点の位置情報1001を出力する。
 次に、図13を参照して、本実施形態に係る復号化装置1200により位置情報が復号化される処理(復号化方法)について説明する。図13は、復号化方法のフローチャートである。
 まずステップS1301において、復号化装置1200は、1点分の位置情報ビットストリーム1010を取り出す。続いてステップS1302において、ビットストリーム判定モジュール1201は、1点分の位置情報ビットストリーム1010が位置情報ビットストリームαまたは位置情報ビットストリームβのいずれにより生成されたかを判定する。そしてビットストリーム判定モジュール1201は、その判定結果に応じて位置情報ビットストリームαまたは位置情報ビットストリームβを取り出す。位置情報ビットストリーム1010が位置情報ビットストリームαにより生成されたと判定された場合、ステップS1303に進む。一方、位置情報ビットストリーム1010が位置情報ビットストリームβにより生成されたと判定した場合、ステップS1311に進む。
 ステップS1303において、算術復号化モジュール1202は、点の位置情報ビットストリームαに算術復号化を適用し、先祖ノードの識別子と予測差分を表すΔθとΔrを復号化する。続いてステップS1304において、木管理モジュール1203は、先祖ノードの識別子を参照し、木T2から親に該当するノードを探し、新しいノードを追加する。続いてステップS1305において、木管理モジュール1203は、木T2から親ノードの座標(x1、y1、z1)と座標(θ1、φ、r1)と、その親のノードの座標(x2、y2、z2)と座標(θ2、φ、r2)を取得する。
 続いてステップS1306において、壁推定モジュール1004は、x1、y1、x2、y2から、床に垂直な壁を表す平面方程式のパラメータa、b、dを算出する。続いてステップS1307において、位置予測モジュール1005は、θ1、θ2、φ、a、b、dを入力して受け取り、点の予測位置を表す座標(θp、n、rp)を予測する。
 続いてステップS1308において、加算モジュール1204は、予測位置の差分である予測差分Δθ、Δrと予測位置を表す座標(θp、n、rp)とから、点の位置情報1001である座標(θ、n、r)を算出する。続いてステップS1309において、座標変換モジュール1002は、点の位置情報を座標変換する。続いてステップS1310において、木管理モジュール1203は、座標変換された点の位置情報を新たなノードとして木T2に登録する。
 ステップS1311~S1316は、従来復号化処理モジュール1205により実行される従来の技術である。まずステップS1311において、従来復号化処理モジュール1205は、点の位置情報ビットストリームβに算術復号化を適用し、親ノードの識別子と予測位置との差分を復号化する。続いてステップS1312において、従来復号化処理モジュール1205は、親ノードの識別子を参照し、木から親に該当するノードを探し、新しいノードを追加する。続いてステップS1313において、従来復号化処理モジュール1205は、木から先祖ノードに登録されている位置情報を取得する。続いてステップS1314において、従来復号化処理モジュール1205は、先祖ノードの位置情報を用いて、点の位置情報を算出する。続いてステップS1315において、従来復号化処理モジュール1205は、予測位置の差分と予測位置とを加算し、点の位置情報を算出する。続いてステップS1316において、従来復号化処理モジュール1205は、点の位置情報を追加したノードに登録する。以上により、復号化装置1200は、点の位置情報1001である座標(θ、n、r)を算出する。
 続いてステップS1317において、復号化装置1200は、ステップS1310またはステップS1316にて生成された点の位置情報1001を出力する。
 本実施形態の復号化装置は、処理対象となる対象点の位置を示す対象点位置ビットストリームを、従来の復号化技術、または、壁などの垂直な平面または平面に近い形状から得られた連続した点群の一部であると仮定して平面上の位置を予測して復号化する。これらいずれかの処理により、対象点の位置を示す対象点位置データを復号化することができる。
 <第3実施形態>
 次に、本発明の第3実施形態について説明する。第1実施形態では、回転型ライダーが、地面に垂直な平面を計測しているという仮定の下、符号化済みの3つの位置情報から平面を推定して、符号化対象点の予測を行った。ただし、符号化済みの3つの位置情報を使用して、垂直に限定されない平面を推定することもできる。すなわち壁推定モジュール1004は、少なくとも3つの処理済点位置データに基づいて面情報を算出する。また、壁推定モジュール1004は、少なくとも3つの処理済点位置データに基づいて、面情報として3次元面情報を算出することもできる。このとき、符号化済みの3点は、同一直線上に並ぶ点ではない。すなわち、回転型ライダーにおいて、少なくとも1点は、異なるレーザーから得られた位置情報である必要がある。
 3つの位置(点)の座標がそれぞれ、座標(x1、y1、z1)、座標(x2、y2、z2)、座標(x3、y3、z3)であるとき、平面の方程式は式(17)のように表される。また、それぞれの座標を代入した以下の式(18)、(19)、(20)を連立させて連立方程式を解くことにより、平面の方程式のパラメータであるaとbとdを算出することができる。
  a×x+b×y+z+d=0    …(17)
  a×x1+b×y1+z1+d=0 …(18)
  a×x2+b×y2+z2+d=0 …(19)
  a×x3+b×y3+z3+d=0 …(20)
 原点から、θpとφによって表されるレーザーの方向を示す直線とa、b、dとで表される平面の交点までの予測距離rpは、以下の式(21)を用いて予測することができる。
  rp=-d÷(a×cos(φ)×sin(θp)+b×cos(φ)×cos(θp)+c×sin(φ)) …(21)
  <第4実施形態>
 次に、本発明の第4実施形態について説明する。第3実施形態では、符号化済みの3つの位置情報を用いて平面を推定して予測を行なったが、符号化済みの4つ以上の位置情報を用いてもよい。平面の方程式のパラメータa、b、dは、式(17)に対して最小二乗法を用いることで算出することができる。平面の推定に用いる点が増えると、必要な数の点の取得が完了するまで待機する必要が生じ遅延が大きくなるが、点の位置情報に含まれるノイズに対してロバストになる可能性がある。
 <その他の実施形態>
 本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
 各実施形態によれば、地物が地面に対して垂直な3次元平面形状であることを仮定して位置の予測を行なうことにより、壁など平面形状の地物から得られた点群に対しては、従来技術よりも高い圧縮率で低遅延の符号化を行うことができる。また、平面ではない地物、例えば柱などの円柱状の地物であっても、局所的には平面と見なすことができるため、圧縮率を向上させて低遅延で符号化することができる。
 このため各実施形態によれば、高効率かつ低遅延の処理が可能な符号化装置、復号化装置、符号化方法、復号化方法、およびプログラムを提供することができる。
 以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。

Claims (17)

  1.  点群データに含まれる、符号化処理が完了している処理済点の位置を示す処理済点位置データを用いて面情報を算出する面情報算出手段と、
     前記処理済点位置データを用いて前記符号化処理の対象となる対象点の方向情報を予測する方向情報予測手段と、
     前記面情報と前記方向情報とに基づいて前記対象点までの距離を予測する第1距離予測手段と、
     を有することを特徴とする符号化装置。
  2.  前記面情報算出手段は、2つの前記処理済点位置データに基づいて前記面情報を算出し、
     前記第1距離予測手段は、前記面情報と前記方向情報とに基づいて算出された面上の交点に基づいて前記対象点までの前記距離を予測する、
     ことを特徴とする請求項1に記載の符号化装置。
  3.  前記面情報は、地面と垂直な平面に関する情報である、
     ことを特徴とする請求項2に記載の符号化装置。
  4.  前記点群データは、点群取得装置から取得されたデータである、
     ことを特徴とする請求項3に記載の符号化装置。
  5.  前記面情報算出手段は、少なくとも3つの前記処理済点位置データに基づいて前記面情報を算出する、
     ことを特徴とする請求項1に記載の符号化装置。
  6.  過去に入力された複数の点群の位置情報に基づいて前記対象点の位置を予測し、前記予測した位置と、前記対象点の位置と、の差分に基づいて前記対象点までの前記距離を予測する第2距離予測手段と、
     前記第1距離予測手段と、前記第2距離予測手段と、を切り替える切替手段と、
     を更に有することを特徴とする請求項1乃至5のいずれか一項に記載の符号化装置。
  7.  前記切替手段は、前記第1距離予測手段により予測された前記距離に基づくデータ、および前記第2距離予測手段により予測された前記距離に基づくデータのうち、データ量が小さい方を用いるように、前記第1距離予測手段と前記第2距離予測手段とを切り替える、
     ことを特徴とする請求項6に記載の符号化装置。
  8.  点群データに含まれる、符号化処理が完了している処理済点の位置を示す処理済点位置データを用いて面情報を算出する工程と、
     前記処理済点位置データを用いて前記符号化処理の対象となる対象点の方向情報を予測する工程と、
     前記面情報と前記方向情報とに基づいて前記対象点までの距離を予測する工程と、
     を有することを特徴とする符号化方法。
  9.  点群データに含まれる、符号化処理が完了している処理済点の位置を示す処理済点位置データを用いて面情報を算出する工程と、
     前記処理済点位置データを用いて前記符号化処理の対象となる対象点の方向情報を予測する工程と、
     前記面情報と前記方向情報とに基づいて前記対象点までの距離を予測する工程と、
     をコンピュータに実行させることを特徴とするプログラム。
  10.  点群ビットストリームに含まれる、復号化処理の対象となる対象点の位置を示す対象点位置ビットストリームを復号化する符号化装置であって、
     前記復号化処理が完了している処理済点の位置を示す処理済点位置データを用いて面情報を算出する面情報算出手段と、
     前記処理済点位置データを用いて前記対象点の方向情報を予測する方向情報予測手段と、
     前記面情報と前記方向情報とに基づいて前記対象点までの距離を予測する第1距離予測手段と、
     を有することを特徴とする復号化装置。
  11.  前記面情報算出手段は、2つの前記処理済点位置データに基づいて前記面情報を算出し、
     前記距離予測手段は、前記面情報と前記方向情報とに基づいて算出された面上の交点に基づいて前記対象点までの距離を予測する、
     ことを特徴とする請求項10に記載の復号化装置。
  12.  前記面情報は、地面と垂直な平面に関する情報である、
     ことを特徴とする請求項11に記載の復号化装置。
  13.  前記点群ビットストリームは、前記地面に配置された点群取得装置から取得されたデータである、
     ことを特徴とする請求項12に記載の復号化装置。
  14.  前記面情報算出手段は、少なくとも3つの前記処理済点位置データに基づいて前記面情報を算出する、
     ことを特徴とする請求項10に記載の復号化装置。
  15.  過去に入力された複数の点群の位置情報に基づいて前記対象点の位置を予測し、前記予測した位置と、前記対象点の位置と、の差分に基づいて前記対象点の距離を予測する第2距離予測手段と、
     前記距離予測手段と、前記第2の距離予測手段と、を切り替える切替手段と、
     を更に有することを特徴とする請求項10乃至14のいずれか一項に記載の復号化装置。
  16.  点群ビットストリームに含まれる、復号化処理の対象となる対象点の位置を示す対象点位置ビットストリームを復号化する符号化方法であって、
     前記復号化処理が完了している処理済点の位置を示す処理済点位置データを用いて面情報を算出する工程と、
     前記処理済点位置データを用いて前記対象点の方向情報を予測する工程と、
     前記面情報と前記方向情報とに基づいて前記対象点までの距離を予測する工程と、
     を有することを特徴とする復号化方法。
  17.  点群ビットストリームに含まれる、復号化処理の対象となる対象点の位置を示す対象点位置ビットストリームを復号化する符号化方法であって、
     前記復号化処理が完了している処理済点の位置を示す処理済点位置データを用いて面情報を算出する工程と、
     前記処理済点位置データを用いて前記対象点の方向情報を予測する工程と、
     前記面情報と前記方向情報とに基づいて前記対象点までの距離を予測する工程と、
     をコンピュータに実行させることを特徴とするプログラム。
PCT/JP2025/013445 2024-05-14 2025-04-02 符号化装置、復号化装置、符号化方法、復号化方法、およびプログラム Pending WO2025239043A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2024-078322 2024-05-14
JP2024078322A JP2025173015A (ja) 2024-05-14 2024-05-14 符号化装置、復号化装置、符号化方法、復号化方法、およびプログラム

Publications (1)

Publication Number Publication Date
WO2025239043A1 true WO2025239043A1 (ja) 2025-11-20

Family

ID=97719747

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2025/013445 Pending WO2025239043A1 (ja) 2024-05-14 2025-04-02 符号化装置、復号化装置、符号化方法、復号化方法、およびプログラム

Country Status (2)

Country Link
JP (1) JP2025173015A (ja)
WO (1) WO2025239043A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021095879A1 (ja) * 2019-11-13 2021-05-20 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US20220215596A1 (en) * 2021-01-04 2022-07-07 Qualcomm Incorporated Model-based prediction for geometry point cloud compression
WO2023105954A1 (ja) * 2021-12-09 2023-06-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2024008968A1 (en) * 2022-07-08 2024-01-11 Canon Kabushiki Kaisha Method and apparatus for compression and encoding of 3d dynamic point cloud

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021095879A1 (ja) * 2019-11-13 2021-05-20 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US20220215596A1 (en) * 2021-01-04 2022-07-07 Qualcomm Incorporated Model-based prediction for geometry point cloud compression
WO2023105954A1 (ja) * 2021-12-09 2023-06-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2024008968A1 (en) * 2022-07-08 2024-01-11 Canon Kabushiki Kaisha Method and apparatus for compression and encoding of 3d dynamic point cloud

Also Published As

Publication number Publication date
JP2025173015A (ja) 2025-11-27

Similar Documents

Publication Publication Date Title
CN113706686B (zh) 一种三维点云重建结果补全方法及相关组件
Quach et al. Survey on deep learning-based point cloud compression
JP7665901B2 (ja) コンピュータビジョンシステム
Sun et al. A novel point cloud compression algorithm based on clustering
Daribo et al. Efficient rate-distortion compression of dynamic point cloud for grid-pattern-based 3D scanning systems
CN119049000B (zh) 基于统一鸟瞰图表征的多模态端到端自动驾驶方法及系统
EP2469496A1 (en) Concept for encoding data defining coded positions representing a trajectory of an object
US20250203316A1 (en) Methods, apparatus, and systems for processing audio scenes for audio rendering
CN113096200A (zh) 一种基于法向量的点云属性压缩方法、装置、设备及介质
US20240320864A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US20230206391A1 (en) Apparatus for interpolating point cloud and method thereof
CN119693517A (zh) 渲染网络的训练方法、渲染方法及相关装置
WO2025239043A1 (ja) 符号化装置、復号化装置、符号化方法、復号化方法、およびプログラム
CN115412715A (zh) 一种点云属性信息的预测编解码方法及装置
Katsatos et al. Comparative study of surface 3d reconstruction methods applied in construction sites
CN116781927A (zh) 一种点云处理方法及相关设备
CN118135793A (zh) 车道线后处理方法、装置、电子设备和存储介质
KR101211436B1 (ko) 3차원 컨텐츠 데이터를 인코딩 및 디코딩하기 위한 방법
CN115049750A (zh) 基于八叉树的体素地图生成方法、装置、存储介质及设备
CN118830250B (zh) 编码和解码3d点云的方法、编码器、解码器及比特流
Hadero et al. Beyond Implicit Representations: Exploring Gaussian Splatting for Next-Generation SLAM, Introduction and Review
US20240114163A1 (en) Encoding apparatus performing inter prediction operation based on an overlap frame and operating method thereof
CN116402950B (zh) 三维模型的构建方法、装置、计算机设备及其介质
EP4728508A1 (en) Methods, apparatus, and systems for processing audio scene information
WO2025173362A1 (ja) 符号化装置、復号化装置、記憶媒体、及びコンピュータプログラム

Legal Events

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

Ref document number: 25803294

Country of ref document: EP

Kind code of ref document: A1