WO2022219867A1 - 点群復号装置、点群符号化装置、点群処理システム、点群復号方法及びプログラム - Google Patents

点群復号装置、点群符号化装置、点群処理システム、点群復号方法及びプログラム Download PDF

Info

Publication number
WO2022219867A1
WO2022219867A1 PCT/JP2022/001228 JP2022001228W WO2022219867A1 WO 2022219867 A1 WO2022219867 A1 WO 2022219867A1 JP 2022001228 W JP2022001228 W JP 2022001228W WO 2022219867 A1 WO2022219867 A1 WO 2022219867A1
Authority
WO
WIPO (PCT)
Prior art keywords
point cloud
point
points
point group
unit
Prior art date
Application number
PCT/JP2022/001228
Other languages
English (en)
French (fr)
Inventor
恭平 海野
圭 河村
Original Assignee
Kddi株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kddi株式会社 filed Critical Kddi株式会社
Publication of WO2022219867A1 publication Critical patent/WO2022219867A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Definitions

  • the present invention relates to a point cloud decoding device, a point cloud encoding device, a point cloud processing system, a point cloud decoding method and a program.
  • Non-Patent Document 1 discloses an inter-prediction technique for attribute information.
  • Non-Patent Document 1 both intra-prediction and inter-prediction are always performed when encoding/decoding attribute information of each point. I had a problem with the difference.
  • the present invention has been made in view of the above problems, and adaptively determines whether or not to apply inter prediction and intra prediction when encoding and decoding attribute information of each point. It is an object of the present invention to provide a point cloud decoding device, a point cloud encoding device, a point cloud processing system, a point cloud decoding method, and a program that can improve the efficiency of decoding.
  • a first feature of the present invention is a point group decoding device, in which, in decoding processing of attribute information, k neighboring points in a point group at a target time, k neighboring points in a temporally different encoded point group, An inverse configured to perform prediction using any one of the k nearest points when considering both the point cloud at the time of interest and the temporally different encoded point cloud.
  • the gist is to provide a lifting section.
  • a second feature of the present invention is a point cloud coding apparatus, which considers both points adjacent to edges of nodes to be subjected to Trisoup processing and points not adjacent to the edges, and vertex points of Trisoup
  • the gist of the invention comprises an approximate surface analyzer configured to determine a position.
  • a third aspect of the present invention is a point cloud processing system, which considers both points adjacent to edges of a node to be Trisoup processed and points not adjacent to said edges to determine the vertex positions of the Trisoup
  • the gist of the invention comprises an approximate surface analyzer configured to determine
  • a fourth feature of the present invention is a point group decoding method, wherein, in decoding processing of attribute information, k neighboring points in a point group at a target time, k neighboring points in a temporally different encoded point group, Prediction is performed using any one k-nearest point among k-nearest points when both the point cloud at the time of interest and the temporally different encoded point cloud are considered. do.
  • a fifth feature of the present invention is a program for causing a computer to function as a point cloud decoding device, wherein the point cloud decoding device, in decoding processing of attribute information, uses k neighboring points in a point cloud at a target time, time Any one of the k neighboring points in the temporally different coded point group, and the k neighboring points when considering both the point group of the target time and the temporally different coded point group
  • the gist of the invention comprises an inverse lifting unit configured to perform prediction using points.
  • a point group decoding device that can increase coding efficiency by adaptively determining whether to apply inter prediction and intra prediction when coding and decoding attribute information of each point,
  • a point group encoding device, a point group processing system, a point group decoding method, and a program can be provided.
  • FIG. 1 is a diagram showing an example of the configuration of a point cloud processing system 10 according to one embodiment.
  • FIG. 2 is a diagram showing an example of functional blocks of the point cloud encoding device 100 according to one embodiment.
  • FIG. 3 is a flowchart showing an example of processing by the approximate surface analysis unit 1040 of the point cloud encoding device 100 according to one embodiment.
  • 4A to 4D are diagrams for explaining a specific example of a method for determining vertex positions at each node by the approximate surface analysis unit 1040 of the point cloud encoding device 100 according to one embodiment.
  • 5A to 5C are diagrams for explaining an example of processing by the approximate surface analysis unit 1040 of the point cloud encoding device 100 according to one embodiment.
  • FIG. 6A and 6B are diagrams for explaining an example of processing by the approximate surface analysis unit 1040 of the point cloud encoding device 100 according to one embodiment.
  • FIG. 7 is a flowchart showing an example of processing by the approximate surface analysis unit 1040 of the point cloud encoding device 100 according to one embodiment.
  • FIG. 8 is a diagram for explaining an example of processing by the approximate surface analysis unit 1040 of the point group encoding device 100 according to one embodiment.
  • FIG. 9 is a flowchart showing an example of processing of the lifting unit 1110 of the point group encoding device 100 according to one embodiment.
  • FIG. 10 is a flow chart showing an example of the processing in step S802 of FIG.
  • FIG. 11 is a diagram showing an example of functional blocks of the point cloud decoding device 200 according to one embodiment.
  • FIG. 12 is a flowchart showing an example of processing of the approximate surface synthesizing unit 2030 of the point cloud decoding device 200 according to one embodiment.
  • FIG. 13 is a flow chart showing an example of the processing of the reverse lifting section 2100.
  • FIG. 14 is a flowchart illustrating an example of processing of the lifting section 1110 according to one embodiment.
  • FIG. 1 is a diagram showing a point cloud processing system 10 according to an embodiment according to this embodiment.
  • the point cloud processing system 10 has a point cloud encoding device 100 and a point cloud decoding device 200.
  • the point cloud encoding device 100 is configured to generate encoded data (bitstream) by encoding an input point cloud signal.
  • the point cloud decoding device 200 is configured to generate an output point cloud signal by decoding the bitstream.
  • the input point cloud signal and the output point cloud signal are composed of position information and attribute information of each point in the point cloud.
  • the attribute information is, for example, color information and reflectance of each point.
  • such a bitstream may be transmitted from the point cloud encoding device 100 to the point cloud decoding device 200 via a transmission channel.
  • the bitstream may be stored in a storage medium and then provided from the point cloud encoding device 100 to the point cloud decoding device 200 .
  • FIG. 2 is a diagram showing an example of functional blocks of the point cloud encoding device 100 according to this embodiment.
  • the point group encoding device 100 includes a coordinate transformation unit 1010, a geometric information quantization unit 1020, a tree analysis unit 1030, an approximate surface analysis unit 1040, a geometric information encoding unit 1050, Geometric information reconstruction unit 1060, color conversion unit 1070, attribute transfer unit 1080, RAHT unit 1090, LoD calculation unit 1100, lifting unit 1110, attribute information quantization unit 1120, attribute information encoding unit 1130 and
  • the coordinate transformation unit 1010 is configured to perform transformation processing from the three-dimensional coordinate system of the input point group to any different coordinate system. Coordinate transformation may transform the x, y, z coordinates of the input point cloud to arbitrary s, t, u coordinates, for example, by rotating the input point cloud. Also, as one variation of transformation, the coordinate system of the input point cloud may be used as it is.
  • the geometric information quantization unit 1020 is configured to quantize the position information of the input point group after coordinate transformation and remove points with overlapping coordinates. Note that when the quantization step size is 1, the position information of the input point group matches the position information after quantization. That is, when the quantization step size is 1, it is equivalent to not performing quantization.
  • the tree analysis unit 1030 is configured to receive the position information of the quantized point group as input and generate an occupancy code indicating at which node in the encoding target space the point exists based on the tree structure described later. It is
  • the tree analysis unit 1030 is configured to generate a tree structure in this process by recursively partitioning the encoding target space into rectangular parallelepipeds.
  • a tree structure can be generated by recursively executing the process of dividing the rectangular parallelepiped into multiple rectangular parallelepipeds until the rectangular parallelepipeds reach a predetermined size.
  • Each rectangular parallelepiped is called a node.
  • each rectangular parallelepiped generated by dividing a node is called a child node, and an occupancy code is expressed by 0 or 1 as to whether or not a point is included in the child node.
  • the tree analysis unit 1030 is configured to generate an occupancy code while recursively dividing a node until it reaches a predetermined size.
  • the tree analysis unit 1030 determines the tree structure, and the determined tree structure is transmitted to the point cloud decoding device 200 as control data.
  • the approximate surface analysis unit 1040 is configured to use the tree information generated by the tree analysis unit 1030 to generate approximate surface information.
  • the approximate surface information is obtained by decoding the points instead of decoding individual point clouds. It is an approximation of the existence area of the group with a small plane.
  • the approximate surface analysis unit 1040 may be configured to generate approximate surface information by, for example, a technique called “Trisoup”.
  • the geometric information encoding unit 1050 encodes syntax such as the occupancy code generated by the tree analysis unit 1030 and the approximate surface information generated by the approximate surface analysis unit 1040 to generate a bitstream (geometric information bitstream). is configured as
  • the encoding process is, for example, context adaptive binary arithmetic encoding process.
  • the syntax includes control data (flags and parameters) for controlling decoding processing of position information.
  • the geometric information reconstruction unit 1060 Based on the tree information generated by the tree analysis unit 1030 and the approximate surface information generated by the approximate surface analysis unit 1040, the geometric information reconstruction unit 1060 generates geometric information (code It is configured to reconstruct the coordinate system assumed by the transformation processing, that is, the position information after the coordinate transformation in the coordinate transformation unit 1010).
  • the color conversion unit 1070 is configured to perform color conversion when the input attribute information is color information. Color conversion does not necessarily need to be executed, and whether or not to execute color conversion processing is encoded as part of control data and transmitted to the point cloud decoding device 200 .
  • the attribute transfer unit 1080 performs distortion of attribute information based on the position information of the input point group, the position information of the point group after reconstruction by the geometric information reconstruction unit 1060, and the attribute information after color change by the color conversion unit 1070. is configured to correct the attribute value so that is minimized.
  • a specific correction method for example, the method described in Non-Patent Document 2 can be applied.
  • the RAHT unit 1090 receives as input the attribute information transferred by the attribute transfer unit 1080 and the geometric information generated by the geometric information reconstruction unit 1060, and uses a type of Haar transformation called RAHT (Region Adaptive Hierarchical Transform) to transform each configured to generate point residual information; As a specific processing of RAHT, for example, the method described in Non-Patent Document 2 can be used.
  • the LoD calculation unit 1100 is configured to receive the geometric information generated by the geometric information reconstruction unit 1060 and generate LoD (Level of Detail).
  • LoD is a reference relationship (referred point and referenced point ) is information for defining
  • LoD classifies each point included in geometric information into a plurality of levels, and encodes or decodes the attributes of points belonging to lower levels using attribute information of points belonging to higher levels. This is information that defines the structure.
  • Non-Patent Document 2 As a specific method for determining LoD, for example, the method described in Non-Patent Document 2 may be used.
  • the lifting unit 1110 is configured to generate residual information through a lifting process using the LoD generated by the LoD calculation unit 1100 and the attribute information after the attribute transfer by the attribute transfer unit 1080.
  • Non-Patent Document 2 As a specific lifting process, for example, the method described in Non-Patent Document 2 may be used.
  • the attribute information quantization section 1120 is configured to quantize the residual information output from the RAHT section 1090 or the lifting section 1110 .
  • the case where the quantization step size is 1 is equivalent to the case where no quantization is performed.
  • the attribute information encoding unit 1130 performs encoding processing using the quantized residual information output from the attribute information quantization unit 1120 as a syntax, and generates a bitstream related to attribute information (attribute information bitstream). is configured as
  • the encoding process is, for example, context adaptive binary arithmetic encoding process.
  • the syntax includes control data (flags and parameters) for controlling attribute information decoding processing.
  • the point cloud encoding device 100 is configured to input position information and attribute information of each point in the point cloud, perform encoding processing, and output a geometric information bitstream and an attribute information bitstream. ing.
  • the tree synthesis unit 2020 divides the nodes until they reach a predetermined size.
  • a predetermined size can be determined, for example, on the side of the point cloud encoding device 100 and transmitted to the side of the point cloud decoding device 200 as control information. For each node of such a predetermined size, for example, the processing described below is executed.
  • FIG. 3 is a flowchart showing an example of processing of the approximate surface analysis unit 1040.
  • step S301 the approximate surface analysis unit 1040 determines vertex positions at each node.
  • Such vertex positions exist only on the sides of a rectangular parallelepiped (including the case of a cube), as shown in FIG. 5A. Also, the number of vertices that can exist for each side is one. That is, the approximate surface analysis unit 1040 generates a maximum of 12 vertices for each node.
  • FIG. 5A shows an example when five vertices are generated.
  • Such vertex positions are determined using points near the edges of the node, as shown in FIG. 4A.
  • approximate surface analyzer 1040 considers points that are in all adjacent nodes when determining vertices on an edge.
  • FIG. 4B is a front view of FIG. 4A. In other words, it is a diagram obtained by contracting the y coordinate axis direction of FIG. 4A and projecting it onto the xz plane.
  • the straight lines in FIG. 4B indicate node edges, and the circles in FIG. 4B indicate possible coordinate positions of points.
  • the four points written as 4 in the circle are the points that are adjacent to the edge.
  • the four points labeled 4 inside the circle are the points whose distance from the edge is 0 in both the z-axis direction and the x-axis direction.
  • Non-Patent Document 2 if there are points that are adjacent to the edge, that is, points that are 0 in both the z-axis direction and the x-axis direction from the edge, the average of the y-axis coordinates of those points By calculating the value, the vertex position on the edge is determined.
  • Non-Patent Document 2 even if the point group is distributed in a plane within the node, a point happens to exist at a position where the distance from the edge is 0 in both the z-axis direction and the x-axis direction. Otherwise, no vertex is generated for that edge.
  • points with a distance greater than 0 from the edge are also taken into account when calculating vertices.
  • FIG. 4B shows an example of considering points whose distance from the edge is 1 or less in both the z-axis direction and the x-axis direction.
  • the approximate surface analysis unit 1040 expands the range of points used in the vertex position determination process, and instead of a simple average of y-coordinate values, for example, a weighted average according to the distance from the edge Determine the vertex position by
  • Such a weight may be determined, for example, by setting the weight of the point farthest from the edge to 1, and doubling the weight as the point approaches the edge in the z-axis direction and the x-axis direction by 1 each.
  • the distance from the edge of the point to be considered when determining the vertex may be determined based on the predetermined size of the node described above.
  • the approximate surface analysis unit 1040 can determine the size to be 1/4 of the predetermined size.
  • the approximate surface analysis unit 1040 may define the position of the edge so as to overlap the position of the point.
  • Non-Patent Document 2 The method described in Non-Patent Document 2 is equivalent to considering only the points that exist at the gray-filled positions in FIG. 4C.
  • the approximate surface analysis unit 1040 may determine vertex positions by considering points in a symmetric range with respect to the position of the edge.
  • the approximate surface analysis unit 1040 may determine the vertex position by considering points included within a range of ⁇ N (N is a natural number) centered on the coordinates of the edge.
  • N is a natural number
  • the approximate surface analysis unit 1040 may set weights according to the distance from the edge.
  • the weight determination method can be determined in the same manner as described above.
  • the vertex positions determined as described above are encoded by the geometric information encoding unit 1050 and transmitted to the point group decoding device 200 as a bit stream.
  • step S301 is the process of determining vertices on edges existing between nodes as described above, it is necessary to consider points existing in all nodes adjacent to a certain edge. Therefore, before proceeding to step S302, vertex positions are determined for all nodes in the point group to be encoded, and then the process proceeds to the next step S302.
  • steps S302 to S305 are executed independently for each node.
  • step S302 the approximate surface analysis unit 1040 determines the projection plane.
  • vertices existing on the edge of the node are extracted one by one from the vertices determined in step S301.
  • the coordinates (x, y, z values) of a certain vertex are exactly the same as the coordinates of the already extracted vertex, only the already extracted vertex is left as the vertex of the node, and the point where the coordinates overlap may not be added as vertices of the node.
  • steps S302 to S305 it is possible to prevent unnecessary processing from occurring due to the existence of a plurality of vertices having completely the same coordinates.
  • the approximate surface analysis unit 1040 determines the projection plane using the maximum and minimum values of the x-axis direction coordinate, y-axis direction coordinate, and z-axis direction coordinate of each vertex.
  • the approximate surface analysis unit 1040 calculates the variance of the coordinates of each vertex in the x-axis direction, the y-axis direction, and the z-axis direction, and Such a projection plane may be determined so as to degenerate .
  • the approximate surface analysis unit 1040 may degenerate in the z-axis direction and determine the xy plane as the projection plane.
  • the approximate surface analysis unit 1040 may reduce the y-axis direction and determine the xz plane as the projection plane.
  • the approximate surface analysis unit 1040 may degenerate in the x-axis direction and determine the yz plane as the projection plane.
  • the approximate surface analysis unit 1040 calculates the difference values between the maximum and minimum values of the coordinates of each vertex in the x-axis direction, the y-axis direction, and the z-direction, and degenerates the axis direction with the smallest difference value, A plane formed by the remaining two axial directions may be determined as the projection plane.
  • FIG. 5B shows a case where vertices A to E in FIG. 5A are projected onto the xy plane
  • FIG. 5C shows a case where vertices A through E in FIG. 5A are projected onto the xz plane.
  • the minimum and maximum values of the coordinates in the x-axis direction correspond to xmin and xmax, respectively, in FIG. 5B
  • the minimum and maximum values of the coordinates in the y-axis direction correspond to ymin and ymax, respectively, in FIG. 5B
  • the minimum and maximum values of the z-axis coordinates correspond to zmin and zmax in FIG. 5C, respectively.
  • the approximate surface analysis unit 1040 calculates the difference value between the maximum value and the minimum value (for example, xmax-xmin in the x-axis direction) for each axial direction, and selects the axial direction with the smallest difference value. degenerate.
  • the approximate surface analysis unit 1040 degenerates in the z-axis direction and determines the projection plane to be the xy plane. be able to.
  • the approximate surface analysis unit 1040 degenerates the axis direction with the smallest difference between the maximum value and the minimum value among the x-axis direction, y-axis direction, and z-axis direction coordinates of each vertex, and reduces the remaining two It is configured to determine a plane configured in the axial direction as a projection plane.
  • the amount of computation can be reduced compared to the case where the projection plane is determined using variance.
  • processing time can be reduced, and when implemented by hardware, circuit scale and power consumption can be reduced.
  • step S303 the approximate surface analysis unit 1040 sorts each vertex and assigns an index to each vertex. An example of the processing in step S303 will be described with reference to FIGS. 6 and 7. FIG.
  • FIG. 6 is an example in which the approximate surface analysis unit 1040 degenerates in the z-axis direction and projects the vertices onto the xy plane in the example of the vertex positions shown in FIG.
  • the x-axis is assumed to be the a-axis and the y-axis is assumed to be the b-axis.
  • the x-axis is the a-axis and the z-axis is the b-axis.
  • the following processes can be applied respectively.
  • each vertex A to E are expressed as coordinates when the center of a rectangle projected onto the ab plane is the origin O.
  • a case where a square as a type of rectangle is used as the projection plane will be described as an example, but by appropriately considering the length of the sides, it is possible to deal with rectangles in the same manner as described below.
  • FIG. 7 is a flowchart showing an example of the procedure for sorting and indexing vertices in step S303.
  • step S601 the approximate surface analysis unit 1040 determines whether scores, which will be described later, have been calculated for all vertices of the corresponding node.
  • step S609 If it is determined that scores have been calculated for all vertices, the procedure proceeds to step S609; otherwise, the procedure proceeds to step S602.
  • step S602 the approximate surface analysis unit 1040 determines whether the currently processed vertex exists on the side pq in FIG. 6B. Whether or not it exists on the side pq can be determined by, for example, whether or not the a coordinate of the vertex is half the node size (hereinafter referred to as NS), that is, whether or not it is NS/2.
  • NS half the node size
  • step S603 If it is determined that the vertex exists on side pq, the procedure proceeds to step S603; otherwise, the procedure proceeds to step S604.
  • step S603 the approximate surface analysis unit 1040 calculates the score of the vertex. For example, if the vertex is on the side pq, the approximate surface analysis unit 1040 uses the b coordinate of the vertex as it is as the score.
  • step S603 After the score is calculated in step S603, the procedure proceeds to step S601, and the approximate surface analysis unit 1040 processes the next vertex.
  • step S604 the approximate surface analysis unit 1040 determines whether the currently processed vertex exists on the side qr in FIG. 6B. Whether or not it exists on the side qr can be determined by, for example, whether or not the b coordinate of the vertex is half of NS, that is, whether or not it is NS/2.
  • step S605 If it is determined that the vertex exists on side qr, the procedure proceeds to step S605; otherwise, the procedure proceeds to step S606.
  • step S605 After the score is calculated in step S605, the procedure proceeds to step S601, and the approximate surface analysis unit 1040 processes the next vertex.
  • step S606 the approximate surface analysis unit 1040 determines whether the currently processed vertex exists on the side rs in FIG. 6B. Whether or not it exists on the side rs can be determined by, for example, whether or not the a-coordinate of the vertex is half of NS, that is, whether or not it is NS/2.
  • step S607 If it is determined that the vertex exists on side rs, the procedure proceeds to step S607; otherwise, the procedure proceeds to step S608.
  • step S607 After the score is calculated in step SS607, the procedure proceeds to step S601, and the approximate surface analysis unit 1040 processes the next vertex.
  • step S608 After the score is calculated in step SS608, the procedure proceeds to step S601, and the approximate surface analysis unit 1040 processes the next vertex.
  • step S609 the approximate surface analysis unit 1040 sorts the vertices in ascending order of the score of each vertex (in the above example, the values are -NS/2 to NS*7/2), and sorts each vertex in descending order of score. Index the vertices.
  • the score value of each vertex is set to take a negative value.
  • indices are given to each vertex in counterclockwise order from the lower right vertex of the projected rectangle as shown in FIG. 6A. Note that “B:0" in FIG. 6A means that the index of vertex B is "0", and the same applies to other vertices.
  • the vertices are indexed in counterclockwise order starting from the lower right corner of the rectangle in FIG. 6A, but the starting point may be clearly determined other than the lower right corner. That is, the starting point can be anywhere as long as it exists on the side of the rectangle.
  • the starting point may be determined at one location prior to the encoding process in the approximate surface analysis unit 1040, or the position of the starting point may be adaptively changed for each node.
  • the origin may be determined so that the edge with the most vertices is indexed last.
  • the starting point can be determined as the position of the vertex p when the indices are assigned to the vertices in counterclockwise order.
  • the approximate surface analysis unit 1040 may assign indices to each vertex in clockwise order from the starting point instead of counterclockwise order.
  • the approximate surface analysis unit 1040 sets the starting point on the side of the projected rectangle, and when determining the order of assigning indices to the vertices, the approximate surface analysis unit 1040 determines the feature that the vertices are always on the sides of the rectangle. Techniques other than those described above may be used as long as they are configured to index each vertex clockwise or counterclockwise from the coordinate values.
  • the approximate surface analysis unit 1040 may be configured to use the coordinate values of the vertical axis to index the vertices on the vertical side.
  • the approximate surface analysis unit 1040 may be configured to index the vertices on the horizontal side using the coordinate values of the horizontal axis.
  • the approximate surface analysis unit 1040 is configured to set a starting point on the side of the rectangle projected onto the plane, and to give an index to each vertex so as to rotate clockwise or counterclockwise from the starting point.
  • Non-Patent Document 2 division is performed in the approximate calculation of the arc tangent, but the processing of the present embodiment can basically be realized only by addition and subtraction (an offset value such as NS/2 is calculated using Trisoup can be treated as a constant by calculating in advance according to the NS of . Therefore, according to this embodiment, compared with the method of Non-Patent Document 2, the number of processing cycles can be reduced particularly when implemented in hardware.
  • step S304 the approximate surface analysis unit 1040 generates triangles based on the indices of the vertices given in step S303.
  • the approximate surface analysis unit 1040 can generate three triangles as shown in FIG.
  • FIG. 7 shows that, for example, when there are five vertices, the combinations of vertex indices for constructing a triangle are ⁇ 0, 1, 2 ⁇ , ⁇ 0, 2, 4 ⁇ , and ⁇ 2, 3, 4 ⁇ . This is an example of a case where three points are defined in advance so as to generate triangles respectively.
  • step S305 After the triangle is generated as described above, the process proceeds to step S305.
  • step S305 the approximate surface analysis unit 1040 generates points based on the triangles generated in step S304.
  • a method for generating points from triangles for example, the method described in Non-Patent Document 2 can be applied.
  • step S306 After points are generated for all nodes in the above procedure, the process proceeds to step S306 and ends.
  • FIG. 9 is a flowchart showing an example of the processing of the lifting section 1110.
  • step S801 the lifting unit 1110 performs kNN (k-nearest neighbor search) processing.
  • kNN is a process of collecting k points (k neighboring points) in ascending order of distance (L1 distance or L2 distance) from the encoding target point to points within a search range set based on the encoding target point. .
  • the specific value of k may be determined on the side of the point cloud encoding device 100 and transmitted to the side of the point cloud decoding device 200 as control data.
  • a predetermined value commonly determined in advance on the device 200 side may be used.
  • Such a search range can be set based on the Morton code calculated from the coordinates of each point, as described in Non-Patent Document 2, for example.
  • a point group that is continuous in the time direction is used as an input.
  • a kNN search is performed for each of the following three patterns to collect k neighbors for each.
  • (1) k neighboring points (intra prediction) in the point cloud at the current time (target time) (2) k-nearest neighbors in temporally different coded point clouds (inter-prediction) (3) k-neighborhood points when both intra prediction and inter prediction are considered
  • the lifting unit 1110 uses the coordinate position or motion vector of the encoding target point as the reference point for the k-neighborhood search in the pattern of (2). It may be a motion-compensated coordinate position. Since a well-known method can be applied to the motion vector derivation method, detailed description thereof is omitted.
  • the encoded point clouds that differ in time are stored in a frame buffer (not shown) as reconstructed point clouds generated by performing processing equivalent to decoding processing on the side of the point cloud encoding device 100. It was.
  • the point cloud is encoded in chronological order, for example, the point cloud at the immediately preceding time can be used as the temporally different encoded point cloud.
  • the lifting unit 1110 uses the coordinate position of the encoding target point in intra prediction as a reference point, and uses the coordinate position determined by the same method as in the pattern (2) in inter prediction as a reference point. , k points with small distances from such a reference point may be collected.
  • the lifting unit 1110 may use a value D_inter corrected as follows based on the simple L1 distance or L2 distance D as the inter prediction distance.
  • D_inter a*D+b where a and b are constants.
  • step S802 the lifting unit 1110 determines which k neighboring points to use among the k neighboring points in the previously searched patterns (1) to (3).
  • FIG. 10 is a flowchart showing an example of the process of step S802.
  • the lifting unit 1110 calculates a cost value for each of the above patterns (1) to (3).
  • the cost value may be, for example, a difference value between the maximum and minimum attribute values in each k-neighboring point.
  • step S902 the lifting unit 1110 determines which of the cost values in the above patterns (1) to (3) is the smallest.
  • step S903 the procedure proceeds to step S903, and the lifting unit 1110 determines to use the k nearest points in the pattern (1).
  • step S904 the lifting unit 1110 determines to use the k nearest points in the pattern (2).
  • step S905 the procedure proceeds to step S905, and the lifting unit 1110 determines to use the k nearest points in the pattern (3).
  • step S802 the lifting unit 1110 determines which of the k neighboring points in the searched patterns (1) to (3) is to be used, and the procedure proceeds to step S803. .
  • the comparison of cost values may be performed in two stages as shown in FIG.
  • the cost of (1) and the cost of (3) are compared in step S1401, and if the cost of (1) is less than the cost of (3), the procedure proceeds to step S903. otherwise, the procedure advances to step S1402.
  • step S1402 the cost of (2) is compared with the cost of (3), and if the cost of (2) is less than the cost of (3), the procedure proceeds to step S904; The procedure proceeds to step S905.
  • one of the two patterns (1) and (3) may be selected.
  • step S1401 of FIG. 14 if the cost of (1) is less than the cost of (3), the procedure proceeds to step S903; otherwise, the procedure proceeds to step S905. are equivalent.
  • the two patterns (1) and (3) are just an example, and any two of the three patterns (1) to (3) may be combined.
  • the procedure of S802 described above is a method of determining which of the above patterns (1) to (3) is to be used, using only the attribute values of points that have already been encoded or decoded.
  • the point cloud encoding device 100 lifting unit 1110
  • the point cloud decoding device 200 inverse lifting unit 2100. It is possible.
  • the information on which pattern to use among the above (1) to (3) can be derived by the point group decoding device 200, so there is no need to transmit it as additional information from the point group encoding device 100. .
  • the lifting unit 1110 determines which pattern to use among the above (1) to (3), and information such as which pattern to use is sent from the point group encoding device 100. It may be transmitted to the point group decoding device 200 .
  • the pattern that minimizes the value of the cost function defined by the code amount and distortion (MSE or PSNR) when using each pattern may be selected.
  • the pattern selection unit may be for each point or for each predetermined node size. When motion vectors are used, selection may be made for each motion vector derivation unit.
  • step S803 the lifting unit 1110 determines whether the change in the attribute value of the k-neighboring points determined in step S802 is small or large.
  • the method described in Non-Patent Document 2 can be applied.
  • step S804 the lifting unit 1110 selects a predictor when generating a predicted value based on k nearest points.
  • Non-Patent Document 2 As a predictor (prediction method), as described in Non-Patent Document 2, a method such as a weighted average of k-neighboring points or an attribute value of a point in k-neighboring points as a prediction value is applied. can do.
  • a plurality of predictors are prepared in advance, and, for example, the lifting unit 1110 selects the predictor with the highest coding efficiency from among the plurality of predictors.
  • the lifting unit 1110 selects the predictor with the highest coding efficiency from among the plurality of predictors.
  • a specific selection method a known method can be applied, so detailed description is omitted.
  • the information of the selected predictor is encoded and transmitted to the point cloud decoding device 200 as a bitstream.
  • step S805 the lifting unit 1110 generates a predicted value of the point to be encoded.
  • step S805 the lifting unit 1110 generates a predicted value by weighted averaging of k neighboring points.
  • step S805 the predictor determined in step S804 generates a predicted value.
  • Non-Patent Document 2 As for the specific prediction value generation method, the method described in Non-Patent Document 2 can be applied, so detailed description will be omitted.
  • step S806 the lifting unit 1110 calculates the difference between the attribute information value of the encoding target point and the predicted value generated in step S805, and generates residual information.
  • FIG. 11 is a diagram showing an example of functional blocks of the point cloud decoding device 200 according to this embodiment.
  • the point cloud decoding device 200 includes a geometric information decoding unit 2010, a tree synthesis unit 2020, an approximate surface synthesis unit 2030, a geometric information reconstruction unit 2040, an inverse coordinate transformation unit 2050, an attribute It has information decoding section 2060 , inverse quantization section 2070 , RAHT section 2080 , LoD calculation section 2090 , inverse lifting section 2100 and inverse color conversion section 2110 .
  • the geometric information decoding unit 2010 is configured to receive as input a bitstream related to geometric information (geometric information bitstream) among the bitstreams output from the point cloud encoding device 100 and decode the syntax.
  • the decoding process is, for example, context adaptive binary arithmetic decoding process.
  • the syntax includes control data (flags and parameters) for controlling decoding processing of position information.
  • the tree synthesizing unit 2020 receives the control data decoded by the geometric information decoding unit 2010 and an occupancy code indicating in which node in the tree described later the point group exists, and determines in which region in the decoding target space the point is located. It is configured to generate tree information that exists.
  • This process divides the decoding target space into rectangular parallelepipeds, refers to the occupancy code to determine whether points exist in each rectangular parallelepiped, divides the rectangular parallelepiped in which the points exist into multiple rectangular parallelepipeds, and refers to the occupancy code.
  • Tree information can be generated by recursively repeating the process.
  • a method called "Octree” that recursively divides the octree with the above-mentioned rectangular parallelepiped always as a cube, and "QtBt” that performs quadtree division and binary tree division in addition to octree division can be used. Whether or not to use "QtBt" is transmitted from the point group encoding device 100 side as control data.
  • the tree synthesis unit 2020 is configured to decode the coordinates of each point based on any tree configuration determined in the point cloud encoding device 100. ing.
  • the approximate surface synthesizing unit 2030 is configured to generate approximate surface information using the tree information generated by the tree synthesizing unit 2020 .
  • the approximate surface information is obtained by decoding the points instead of decoding individual point clouds. It is an approximation of the existence area of the group with a small plane.
  • the approximate surface synthesizing unit 2030 can generate approximate surface information and decode the point group by, for example, a technique called "Trisoup". A specific processing example of "Trisoup” will be described later. Also, when decoding a sparse point group acquired by Lidar or the like, this process can be omitted.
  • the geometric information reconstruction unit 2040 reconstructs geometric information (decoding process position information in the coordinate system assumed by ).
  • the inverse coordinate transformation unit 2050 receives as input the geometric information reconstructed by the geometric information reconstruction unit 2040, transforms the coordinate system assumed by the decoding process into the coordinate system of the output point group signal, and converts the position information. configured to output.
  • the attribute information decoding unit 2060 is configured to receive a bitstream related to attribute information (attribute information bitstream) among the bitstreams output from the point cloud encoding device 100 and decode the syntax.
  • the decoding process is, for example, context adaptive binary arithmetic decoding process.
  • the syntax includes control data (flags and parameters) for controlling attribute information decoding processing.
  • the attribute information decoding unit 2060 is configured to decode the quantized residual information from the decoded syntax.
  • the inverse quantization unit 2070 performs inverse quantization based on the quantized residual information decoded by the attribute information decoding unit 2060 and the quantization parameter, which is one of the control data decoded by the attribute information decoding unit 2060. and configured to generate dequantized residual information.
  • the inverse quantized residual information is output to either the RAHT section 2080 or the LoD calculation section 2090 according to the features of the point cloud to be decoded. Which one is output is specified by control data decoded by attribute information decoding section 2060 .
  • the RAHT unit 2080 receives as input the inverse quantized residual information generated by the inverse quantization unit 2070 and the geometric information generated by the geometric information reconstruction unit 2040, and performs a Haar transform called RAHT (Region Adaptive Hierarchical Transform) ( In the decoding process, a kind of inverse Haar transform is used to decode the attribute information of each point.
  • RAHT Region Adaptive Hierarchical Transform
  • a kind of inverse Haar transform is used to decode the attribute information of each point.
  • the LoD calculation unit 2090 is configured to receive the geometric information generated by the geometric information reconstruction unit 2040 and generate LoD (Level of Detail).
  • LoD is a reference relationship (referred point and referenced point ) is information for defining
  • LoD classifies each point included in geometric information into a plurality of levels, and encodes or decodes the attributes of points belonging to lower levels using attribute information of points belonging to higher levels. This is information that defines the structure.
  • Non-Patent Document 2 As a specific method for determining LoD, for example, the method described in Non-Patent Document 2 may be used.
  • the inverse lifting unit 2100 uses the LoD generated by the LoD calculation unit 2090 and the inverse quantized residual information generated by the inverse quantization unit 2070 to determine the attribute information of each point based on the hierarchical structure defined by the LoD. is configured to decode the As a specific reverse lifting process, for example, the method described in Non-Patent Document 2 can be used.
  • the inverse color conversion unit 2110 uses the attribute information output from the RAHT unit 2080 or the inverse lifting unit 2100 when the attribute information to be decoded is color information and color conversion has been performed on the side of the point cloud encoding device 100. is configured to perform inverse color conversion processing. Whether or not to execute the inverse color conversion process is determined by the control data decoded by the attribute information decoding unit 2060 .
  • the point cloud decoding device 200 is configured to decode and output the attribute information of each point in the point cloud through the above processing.
  • FIG. 12 is a flowchart of an example of processing of the approximate surface synthesizing unit 2030. As shown in FIG. FIG. 12 is the same as the flowchart of approximate surface analysis section 1040 shown in FIG. 3 except for step S1101.
  • step S1101 the approximate surface synthesis unit 2030 decodes vertex positions at each node. Such vertex positions are determined in step S301 of FIG.
  • steps S302 to S305 are executed independently for each node.
  • step S302 vertices existing on the edge of the node are extracted one by one from the vertices decoded in step S1101.
  • the coordinates (x, y, z values) of a certain vertex are completely the same as the coordinates of the already extracted vertex, only the already extracted vertex is replaced with the vertex of the node. , and points with duplicate coordinates are not added as vertices of the node.
  • the approximate surface synthesizing unit 2030 performs the same processing as in FIG. 3, so the description is omitted.
  • FIG. 13 is a flow chart showing an example of the processing of the reverse lifting section 2100. As shown in FIG.
  • FIG. 13 is the same as the processing of the lifting section 1110 shown in FIG. 9 except for steps S1201 and S1202. Henceforth, description is abbreviate
  • step S802 it is determined which of the above patterns (1) to (3) is to be used in the same manner as the point group encoding device 100. Specifically, it can be determined by the method described with reference to FIGS.
  • step S1201 the inverse lifting unit 2100 decodes the information of the predictor determined by the lifting unit 1110 from the bitstream.
  • step S1202 the inverse lifting unit 2100 adds the predicted value generated in step S805 and the inverse quantized residual information to decode the attribute information value of the decoding target point.
  • the point cloud encoding device 100 and the point cloud decoding device 200 described above may be implemented as a program that causes a computer to execute each function (each process).
  • the present invention is applied to the point group encoding device 100 and the point group decoding device 200 as examples, but the present invention is not limited to such examples.
  • a point cloud encoding/decoding system having the functions of the point cloud encoding device 100 and the point cloud decoding device 200 can be similarly applied.
  • the United Nations-led Sustainable Development Goals (SDGs) Goal 9 "Develop resilient infrastructure, It will be possible to contribute to the promotion of sustainable industrialization and the expansion of innovation.
  • Point group processing system 100 Point group encoding device 1010. Coordinate transformation unit 1020... Geometric information quantization unit 1030... Tree analysis unit 1040... Approximate surface analysis unit 1050... Geometric information encoding unit 1060... Geometric information reconstruction unit 1070... Color conversion unit 1080... Attribute transfer unit 1090... RAHT unit 1100... LoD calculation unit 1110... Lifting unit 1120... Attribute information quantization unit 1130... Attribute information encoding unit 200... Point group decoding device 2010...
  • Geometric information decoding unit 2020 Tree synthesizing unit 2030 Approximate surface synthesizing unit 2040
  • Geometric information reconstructing unit 2050 Inverse coordinate transforming unit 2060
  • Attribute information decoding unit 2070 Inverse quantizing unit 2080
  • RAHT unit 2090 LoD calculating unit 2100
  • Inverse lifting unit 2110 ...Inverse color converter

Landscapes

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

Abstract

本発明に係る点群復号装置200は、属性情報の復号処理に際して、対象の時刻の点群におけるk近傍点、時間的に異なる符号化済み点群におけるk近傍点、前記対象の時刻の点群及び前記時間的に異なる符号化済み点群の両方を考慮した場合のk近傍点のうち、いずれか1つのk近傍点を用いて予測を行うように構成されている逆リフティング部2100を備える。

Description

点群復号装置、点群符号化装置、点群処理システム、点群復号方法及びプログラム
 本発明は、点群復号装置、点群符号化装置、点群処理システム、点群復号方法及びプログラムに関する。
 非特許文献1には、属性情報のインター予測技術が開示されている。
Interframe Prediction for Attribute Coding、ISO/IEC JTC1/SC29/WG11 m47838 G-PCC codec description、ISO/IEC JTC1/SC29/WG7 N0011
 しかしながら、非特許文献1では、各点の属性情報の符号化・復号に際して、常にイントラ予測及びインター予測の両方を行うが、符号化効率の観点で点毎にどの予測方法が適切であるかは異なるという問題点があった。
 そこで、本発明は、上述の課題に鑑みてなされたものであり、各点の属性情報の符号化・復号に際して、インター予測及びイントラ予測を適用するか否かを適応的に決定することで符号化効率を高めることができる点群復号装置、点群符号化装置、点群処理システム、点群復号方法及びプログラムを提供することを目的とする。
 本発明の第1の特徴は、点群復号装置であって、属性情報の復号処理に際して、対象の時刻の点群におけるk近傍点、時間的に異なる符号化済み点群におけるk近傍点、前記対象の時刻の点群及び前記時間的に異なる符号化済み点群の両方を考慮した場合のk近傍点のうち、いずれか1つのk近傍点を用いて予測を行うように構成されている逆リフティング部を備えることを要旨とする。
 本発明の第2の特徴は、点群符号化装置であって、Trisoup処理を行うノードのエッジに隣接している点及び前記エッジに隣接していない点の両方を考慮して、Trisoupの頂点位置を決定するように構成されている近似表面解析部を備えることを要旨とする。
 本発明の第3の特徴は、点群処理システムであって、Trisoup処理を行うノードのエッジに隣接している点及び前記エッジに隣接していない点の両方を考慮して、Trisoupの頂点位置を決定するように構成されている近似表面解析部を備えることを要旨とする。
 本発明の第4の特徴は、点群復号方法であって、属性情報の復号処理に際して、対象の時刻の点群におけるk近傍点、時間的に異なる符号化済み点群におけるk近傍点、前記対象の時刻の点群及び前記時間的に異なる符号化済み点群の両方を考慮した場合のk近傍点のうち、いずれか1つのk近傍点を用いて予測を行う工程を有することを要旨とする。
 本発明の第5の特徴は、コンピュータを、点群復号装置として機能させるプログラムであって、前記点群復号装置は、属性情報の復号処理に際して、対象の時刻の点群におけるk近傍点、時間的に異なる符号化済み点群におけるk近傍点、前記対象の時刻の点群及び前記時間的に異なる符号化済み点群の両方を考慮した場合のk近傍点のうち、いずれか1つのk近傍点を用いて予測を行うように構成されている逆リフティング部を備えることを要旨とする。
 本発明によれば、各点の属性情報の符号化・復号に際して、インター予測及びイントラ予測を適用するか否かを適応的に決定することで符号化効率を高めることができる点群復号装置、点群符号化装置、点群処理システム、点群復号方法及びプログラムを提供することができる。
図1は、一実施形態に係る点群処理システム10の構成の一例を示す図である。 図2は、一実施形態に係る点群符号化装置100の機能ブロックの一例を示す図である。 図3は、一実施形態に係る点群符号化装置100の近似表面解析部1040による処理の一例を示すフローチャートである。 図4A~図4Dは、一実施形態に係る点群符号化装置100の近似表面解析部1040による各ノードにおける頂点位置の決定方法の具体例について説明するための図である。 図5A~図5Cは、一実施形態に係る点群符号化装置100の近似表面解析部1040による処理の一例を説明するための図である。 図6A及び図6Bは、一実施形態に係る点群符号化装置100の近似表面解析部1040による処理の一例を説明するための図である。 図7は、一実施形態に係る点群符号化装置100の近似表面解析部1040による処理の一例を示すフローチャートである。 図8は、一実施形態に係る点群符号化装置100の近似表面解析部1040による処理の一例を説明するための図である。 図9は、一実施形態に係る点群符号化装置100のリフティング部1110の処理の一例を示すフローチャートである。 図10は、図9のステップS802の処理の一例を示すフローチャートである。 図11は、一実施形態に係る点群復号装置200の機能ブロックの一例を示す図である。 図12は、一実施形態に係る点群復号装置200の近似表面合成部2030の処理の一例を示すフローチャートである。 図13は、逆リフティング部2100の処理の一例を示すフローチャートである。 図14は、一実施形態に係るリフティング部1110の処理の一例を示すフローチャートである。
 以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態における構成要素は、適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
(第1実施形態)
 以下、図1~図14を参照して、本発明の第1実施形態に係る点群処理システム10について説明する。図1は、本実施形態に係る実施形態に係る点群処理システム10を示す図である。
 図1に示すように、点群処理システム10は、点群符号化装置100及び点群復号装置200を有する。
 点群符号化装置100は、入力点群信号を符号化することによって符号化データ(ビットストリーム)を生成するように構成されている。点群復号装置200は、ビットストリームを復号することによって出力点群信号を生成するように構成されている。
 なお、入力点群信号及び出力点群信号は、点群内の各点の位置情報と属性情報とから構成される。属性情報は、例えば、各点の色情報や反射率である。
 ここで、かかるビットストリームは、点群符号化装置100から点群復号装置200に対して伝送路を介して送信されてもよい。また、ビットストリームは、記憶媒体に格納された上で、点群符号化装置100から点群復号装置200に提供されてもよい。
(点群符号化装置100)
 以下、図2を参照して、本実施形態に係る点群符号化装置100について説明する。図2は、本実施形態に係る点群符号化装置100の機能ブロックの一例について示す図である。
 図2に示すように、点群符号化装置100は、座標変換部1010と、幾何情報量子化部1020と、ツリー解析部1030と、近似表面解析部1040と、幾何情報符号化部1050と、幾何情報再構成部1060と、色変換部1070と、属性転移部1080と、RAHT部1090と、LoD算出部1100と、リフティング部1110と、属性情報量子化部1120と、属性情報符号化部1130とを有する。
 座標変換部1010は、入力点群の3次元座標系から、任意の異なる座標系への変換処理を行うよう構成されている。座標変換は、例えば、入力点群を回転することにより、入力点群のx、y、z座標を任意のs、t、u座標に変換してもよい。また、変換のバリエーションの1つとして、入力点群の座標系をそのまま使用してもよい。
 幾何情報量子化部1020は、座標変換後の入力点群の位置情報の量子化及び座標が重複する点の除去を行うように構成されている。なお、量子化ステップサイズが1の場合は、入力点群の位置情報と量子化後の位置情報とが一致する。すなわち、量子化ステップサイズが1の場合は、量子化を行わない場合と等価になる。
 ツリー解析部1030は、量子化後の点群の位置情報を入力として、後述のツリー構造に基づいて、符号化対象空間のどのノードに点が存在するかについて示すoccupancy codeを生成するように構成されている。
 ツリー解析部1030は、本処理において、符号化対象空間を再帰的に直方体で区切ることにより、ツリー構造を生成するように構成されている。
 ここで、ある直方体内に点が存在する場合、かかる直方体を複数の直方体に分割する処理を、直方体が所定のサイズになるまで再帰的に実行することでツリー構造を生成することができる。なお、かかる各直方体をノードと呼ぶ。また、ノードを分割して生成される各直方体を子ノードと呼び、子ノード内に点が含まれるか否かについて0又は1で表現したものがoccupancy codeである。
 以上のように、ツリー解析部1030は、所定のサイズになるまでノードを再帰的に分割しながら、occupancy codeを生成するように構成されている。
 本実施形態では、上述の直方体を常に立方体として8分木分割を再帰的に行う「Octree」と呼ばれる手法、及び、8分木分割に加え、4分木分割及び2分木分割を行う「QtBt」と呼ばれる手法を使用することができる。
 ここで、「QtBt」を使用するか否かについては、制御データとして点群復号装置200に伝送される。
 或いは、任意のツリー構成を用いるPredicitive codingを使用するように指定されてもよい。かかる場合、ツリー解析部1030が、ツリー構造を決定し、決定されたツリー構造は、制御データとして点群復号装置200へ伝送される。
 近似表面解析部1040は、ツリー解析部1030によって生成されたツリー情報を用いて、近似表面情報を生成するように構成されている。
 近似表面情報は、例えば、物体の3次元点群データを復号する際等において、点群が物体表面に密に分布しているような場合に、個々の点群を復号するのではなく、点群の存在領域を小さな平面で近似して表現したものである。
具体的には、近似表面解析部1040は、例えば、「Trisoup」と呼ばれる手法で、近似表面情報を生成するように構成されていてもよい。
 「Trisoup」の具体的な処理例については後述する。また、Lidar等で取得した疎な点群を復号する場合は、本処理を省略することができる。
幾何情報符号化部1050は、ツリー解析部1030によって生成されたoccupancy code及び近似表面解析部1040によって生成された近似表面情報等のシンタックスを符号化してビットストリーム(幾何情報ビットストリーム)を生成するように構成されている。
 符号化処理は、例えば、コンテキスト適応二値算術符号化処理である。ここで、例えば、シンタックスは、位置情報の復号処理を制御するための制御データ(フラグやパラメータ)を含む。
 幾何情報再構成部1060は、ツリー解析部1030によって生成されたツリー情報及び近似表面解析部1040によって生成された近似表面情報に基づいて、符号化対象の点群データの各点の幾何情報(符号化処理が仮定している座標系、すなわち、座標変換部1010における座標変換後の位置情報)を再構成するように構成されている。
 色変換部1070は、入力の属性情報が色情報であった場合に、色変換を行うように構成されている。色変換は、必ずしも実行する必要は無く、色変換処理の実行の有無については、制御データの一部として符号化され、点群復号装置200へ伝送される。
 属性転移部1080は、入力点群の位置情報、幾何情報再構成部1060における再構成後の点群の位置情報及び色変換部1070での色変化後の属性情報に基づいて、属性情報の歪みが最小となるように属性値を補正するように構成されている。具体的な補正方法は、例えば、非特許文献2に記載の方法を適用できる。
 RAHT部1090は、属性転移部1080による転移後の属性情報及び幾何情報再構成部1060によって生成された幾何情報を入力とし、RAHT(Region Adaptive Hierarchical Transform)と呼ばれるHaar変換の一種を用いて、各点の残差情報を生成するように構成されている。RAHTの具体的な処理としては、例えば、非特許文献2に記載の方法を用いることができる。
LoD算出部1100は、幾何情報再構成部1060によって生成された幾何情報を入力とし、LoD(Level of Detail)を生成するように構成されている。
 LoDは、ある点の属性情報から、他のある点の属性情報を予測し、予測残差を符号化或いは復号するといった予測符号化を実現するための参照関係(参照する点及び参照される点)を定義するための情報である。
 言い換えると、LoDは、幾何情報に含まれる各点を複数のレベルに分類し、下位のレベルに属する点については上位のレベルに属する点の属性情報を用いて属性を符号化或いは復号するといった階層構造を定義した情報である。
 LoDの具体的な決定方法としては、例えば、非特許文献2に記載の方法を用いてもよい。
 リフティング部1110は、LoD算出部1100によって生成されたLoD及び属性転移部1080での属性転移後の属性情報を用いて、リフティング処理により残差情報を生成するように構成されている。
 リフティングの具体的な処理としては、例えば、非特許文献2に記載の方法を用いてもよい。
 属性情報量子化部1120は、RAHT部1090又はリフティング部1110から出力される残差情報を量子化するように構成されている。ここで、量子化ステップサイズが1の場合は、量子化を行わない場合と等価である。
 属性情報符号化部1130は、属性情報量子化部1120から出力される量子化後の残差情報等をシンタックスとして符号化処理を行い、属性情報に関するビットストリーム(属性情報ビットストリーム)を生成するように構成されている。
 符号化処理は、例えば、コンテキスト適応二値算術符号化処理である。ここで、例えば、シンタックスは、属性情報の復号処理を制御するための制御データ(フラグ及びパラメータ)を含む。
 点群符号化装置100は、以上の処理により、点群内の各点の位置情報及び属性情報を入力として符号化処理を行い、幾何情報ビットストリーム及び属性情報ビットストリームを出力するように構成されている。
(近似表面解析部1040)
 以下、図3~図8を用いて、本実施形態における近似表面解析部1040の処理の一例を説明する。
 ここで、近似表面解析部1040の処理に先立って、ツリー合成部2020において所定のサイズになるまでノードを分割する。かかる所定のサイズは、例えば、点群符号化装置100側で決定され、制御情報として点群復号装置200側に伝送され得る。かかる所定サイズのノード毎に、例えば、以下に説明する処理を実行する。
 図3は、近似表面解析部1040の処理の一例を示すフローチャートである。
 図3に示すように、ステップS301において、近似表面解析部1040は、各ノードにおける頂点位置を決定する。
 かかる頂点位置は、図5Aに示すように、直方体(立方体の場合も含む)の辺上にのみ存在する。また、各辺に対して存在できる頂点は、1点ずつである。すなわち、近似表面解析部1040は、ノード毎に最大で12点の頂点を生成する。図5Aは、5点の頂点が生成された場合の例を示している。
 かかる頂点位置の決定方法の具体例について、図4を用いて説明する。かかる頂点位置は、図4Aに示すように、ノードのエッジ(辺)近傍の点を用いて決定される。
 なお、図4Aに示すように、あるノードのエッジは、隣接するノードと共有されている。よって、近似表面解析部1040は、あるエッジ上の頂点を決定する際は、全ての隣接するノード内に存在する点を考慮する。
 ここで、図4Aの中央の太線になっているエッジ上の頂点を決定する場合を例に説明する。
 図4Bは、図4Aを正面から見た図である。言い換えると、図4Aのy座標軸方向を縮退し、x-z平面に投影した図である。
 図4Bにおける直線は、ノードのエッジを示し、図4Bにおける円は、点が取り得る座標位置を示している。ここで、図4Bにおいて、円の中に4と書かれている4点は、エッジに隣接する位置に存在する点である。言い換えると、図4Bにおいて、円の中に4と書かれている4点は、エッジからの距離がz軸方向及びx軸方向両方において0である点である。
 非特許文献2は、エッジに隣接する位置に存在する点、すなわち、エッジからの距離がz軸方向及びx軸方向両方において0である点が存在する場合、それらの点のy軸座標の平均値を算出することにより、当該エッジ上の頂点位置を決定している。
 しかし、非特許文献2に記載の手法では、ノード内に点群が面状に分布していた場合でも、偶然エッジからの距離がz軸方向及びx軸方向両方において0の位置に点が存在しなかった場合、当該エッジには頂点が生成されない。
 したがって、後述するステップS304及びステップS305のように、頂点位置に基づいて点が生成される場合、頂点が存在しない場合は、当該エッジ周辺には点が生成されなくなってしまう。よって、主観的には穴が開いたような見た目になってしまう。
 本実施形態では、図4Bのように、エッジからの距離が0より大きな点も頂点の算出処理の際に考慮される。例えば、図4Bは、エッジからの距離がz軸方向及びx軸方向ともに1以下の範囲の点を考慮する場合の例を示している。
 本実施形態では、近似表面解析部1040は、頂点位置の決定処理に際して使用する点の範囲を拡大するとともに、単純なy座標値の平均ではなく、例えば、エッジからの距離に応じた重み付き平均によって頂点位置を決定する。
 かかる重みは、例えば、エッジからの距離が最も離れた点の重みを1として、z軸方向及びx軸方向それぞれ1ずつエッジに近づくにつれて重みを2倍にするように決定されてもよい。
 図4B内の各点の中に書いてある数字(4、2、1)は、上述の方法に基づいて算出された重みを示している。すなわち、近似表面解析部1040は、エッジからの距離が(x、z)=(1、1)の点の重みを1と決定し、エッジからの距離が(1、0)又は(0、1)の点の重みを2と決定し、エッジからの距離が(0、0)の点の重みを4と決定することができる。
 ここでは、エッジからの距離が最大で1の場合について説明したが、同様の手法でエッジからの距離を拡大した場合についても重みを求めることができる。
 頂点決定に際して考慮する点のエッジからの距離は、上述のノードの所定サイズに基づいて決定されてもよい。例えば、近似表面解析部1040は、所定サイズの1/4とするといったように決定することができる。
 或いは、図4Cのように、近似表面解析部1040は、点の位置と重なるようにエッジの位置を定義してもよい。
 非特許文献2に記載の手法は、図4Cのグレーで塗りつぶした位置に存在する点のみを考慮することと等価である。一方、本実施形態では、例えば、近似表面解析部1040は、エッジの位置を中心として対称となる範囲の点を考慮して頂点位置を決定してもよい。
 言い換えると、近似表面解析部1040は、エッジの座標を中心として±N(Nは、自然数)の範囲内に含まれる点を考慮して頂点位置を決定してもよい。例えば、図4Cのグレーで塗りつぶした位置及び白で塗りつぶした位置は、エッジを中心としてx軸方向及びz軸方向の座標を±1した範囲、すなわちN=1の場合の例を示している。
 さらに、図4Dのように、近似表面解析部1040は、エッジからの距離に応じて重みを設定してもよい。重みの決定方法は、上記と同様に決定することができる。
 以上のように、頂点位置の決定処理に際して考慮する点のエッジからの距離を広げることで、点が面状に分布しているにもかかわらず頂点が生成されないという状況を防ぎ、主観品質の劣化を抑えることができる。
 また、エッジからの距離に基づいた重み付き平均によって頂点位置を決定することで、従来の方法でエッジに隣接した点のみから頂点を生成できていた場合から結果が大きく変わってしまうことを防ぎ、客観品質の劣化を防ぐことができる。
 以上のように決定した頂点位置は、幾何情報符号化部1050で符号化され、ビットストリームとして点群復号装置200へ伝送される。
 なお、ステップS301は、上述のようにノード間に存在するエッジ上の頂点を決定する処理であるため、あるエッジに隣接する全てのノード内に存在する点を考慮する必要がある。よって、ステップS302に移る前に、符号化対象点群内の全てのノードについて頂点位置を決定してから、次のステップS302へ進む。
 一方、ステップS302~S305は、ノード毎に独立して実行する。
 ステップS302において、近似表面解析部1040は、投影面を決定する。投影面決定処理に先立って、ステップS301で決定した頂点の中から、当該ノードのエッジ上に存在する頂点を一点ずつ抽出する。ここで、ある頂点の座標(x、y、zの値)が、既に抽出した頂点の座標と完全に同一の場合は、既に抽出した頂点のみを当該ノードの頂点として残し、座標が重複する点は当該ノードの頂点として加えないようにしてもよい。これにより、ステップS302~S305において、座標が完全に同一の頂点が複数存在することで不要な処理が発生するのを防ぐことができる。
 ここで、近似表面解析部1040は、各頂点のx軸方向座標、y軸方向座標及びz軸方向座標のうち、それぞれ最大値と最小値とを用いて投影面を決定する。
 例えば、非特許文献2に記載されているように、近似表面解析部1040は、各頂点の座標のx軸方向、y軸方向及びz軸方向の分散を計算し、かかる分散が最も小さい軸方向を縮退するように、かかる投影面を決定してもよい。
 すなわち、近似表面解析部1040は、z軸方向の分散が最も小さい場合には、z軸方向を縮退して、x-y平面を投影面として決定してもよい。
 また、近似表面解析部1040は、y軸方向の分散が最も小さい場合には、y軸方向を縮退して、x-z平面を投影面として決定してもよい。
 さらに、近似表面解析部1040は、x軸方向の分散が最も小さい場合には、x軸方向を縮退して、y-z平面を投影面として決定してもよい。
 或いは、近似表面解析部1040は、各頂点の座標のx軸方向、y軸方向及びz方向の最大値と最小値との差分値を算出し、かかる差分値が最も小さい軸方向を縮退し、残りの2つの軸方向で構成される面を投影面と決定してもよい。
 図5Bは、図5Aの頂点A~Eをx-y平面に投影したケースについて示し、図5Cは、図5Aの頂点A~Eをx-z平面に投影したケースについて示す。
 ここで、x軸方向の座標の最小値及び最大値は、それぞれ図5Bのxmin及びxmaxに相当し、y軸方向の座標の最小値及び最大値は、それぞれ図5Bのymin及びとymaxに相当し、z軸方向の座標の最小値及び最大値は、それぞれ図5Cのzmin及びzmaxに相当する。
 近似表面解析部1040は、上述の最大値と最小値との差分値(例えば、x軸方向であれば、xmax-xmin)をそれぞれ各軸方向について計算し、かかる差分値が最も小さい軸方向を縮退する。
 例えば、図5の例では、z軸方向の差分値(zmax-zmin)が最も小さくなるため、近似表面解析部1040は、z軸方向を縮退して、投影面をx-y平面に決定することができる。
 以上のように、近似表面解析部1040は、各頂点のx軸方向、y軸方向及びz軸方向座標のうち、最大値と最小値の差が最も小さい軸方向を縮退し、残りの2つの軸方向で構成される面を投影面と決定するように構成されている。
 以上のような構成とすることで、分散を用いて投影面を決定する場合と比較して、演算量を削減することができる。ソフトウェアで実装する場合は、処理時間を削減することができ、ハードウェアで実装する場合は、回路規模及び消費電力を削減することができる。
 ステップS303において、近似表面解析部1040は、各頂点をソートして、各頂点にインデックス(index)を付与する。図6~図7を用いて、ステップS303における処理の一例を説明する。
 図6は、図4に示す頂点位置の例において、近似表面解析部1040がz軸方向を縮退してx-y平面上に頂点を投影した場合の例である。ここで、以下では、x軸をa軸としy軸をb軸として説明する。
 なお、y軸方向が縮退された場合にはx軸をa軸としz軸をb軸として、また、x軸方向が縮退された場合にはy軸をa軸としz軸をb軸として、それぞれ以下の処理を適用することができる。
 また、以下の説明では、図6Aに示すように、各頂点A~Eの座標をa-b平面に投影した長方形の中心を原点Oとした場合の座標として表現することとする。なお、以下では、長方形の一種として正方形が投影面とされた場合を例に説明するが、辺の長さを適切に考慮することで、下記と同様な方法で長方形にも対応可能である。
 図7は、ステップS303において、各頂点をソートしインデックスを付与する手順の一例を示すフローチャートである。
 図8に示すように、ステップS601において、近似表面解析部1040は、該当するノードの全ての頂点について、後述するスコアを算出したかどうかを判定する。
 全ての頂点についてスコアが算出済みであると判定された場合、本手順は、ステップS609へ進み、そうでない場合、本手順は、ステップS602へ進む。
 ステップS602において、近似表面解析部1040は、現在処理している頂点が、図6Bにおける辺pq上に存在しているか否かを判定する。辺pq上に存在するかどうかは、例えば、当該頂点のa座標が、ノードサイズ(以下、NSとする)の半分であるか否か、すなわち、NS/2であるか否かによって判定できる。
 当該頂点が辺pq上に存在していると判定された場合は、本手順は、ステップS603へ進み、そうでない場合は、本手順は、ステップS604へ進む。
 ステップS603において、近似表面解析部1040は、当該頂点のスコアを算出する。例えば、当該頂点が辺pq上にある場合は、近似表面解析部1040は、当該頂点のb座標をそのままスコアとして用いる。
 ステップS603においてスコアが算出された後、本手順は、ステップS601へ進み、近似表面解析部1040は、次の頂点について処理を行う。
 ステップS604において、近似表面解析部1040は、現在処理している頂点が、図6Bにおける辺qr上に存在しているか否かを判定する。辺qr上に存在するかどうかは、例えば、当該頂点のb座標が、NSの半分であるか否か、すなわち、NS/2であるか否かによって判定できる。
 当該頂点が辺qr上に存在していると判定された場合は、本手順は、ステップS605へ進み、そうでない場合は、本手順は、ステップS606へ進む。
 ステップS605において、近似表面解析部1040は、当該頂点のスコアを算出する。例えば、当該頂点が辺qr上にある場合は、近似表面解析部1040は、当該頂点のa座標を用いて、スコア=-a+NSとする。
 ステップS605においてスコアが算出された後、本手順は、ステップS601へ進み、近似表面解析部1040は、次の頂点について処理を行う。
 ステップS606において、近似表面解析部1040は、現在処理している頂点が、図6Bにおける辺rs上に存在しているか否かを判定する。辺rs上に存在するかどうかは、例えば、当該頂点のa座標が、NSの半分であるか否か、すなわち、NS/2であるか否かによって判定できる。
 当該頂点が辺rs上に存在すると判定された場合は、本手順は、ステップS607へ進み、そうでない場合は、本手順は、ステップS608へ進む。
 ステップS607において、近似表面解析部1040は、当該頂点のスコアを算出する。例えば、当該頂点が辺rs上にある場合は、近似表面解析部1040は、当該頂点のb座標を用いて、スコア=-b+NS*2とする(ここで、*は、乗算を示す)。
 ステップSS607においてスコアが算出された後、本手順は、ステップS601へ進み、近似表面解析部1040は、次の頂点について処理を行う。
 ステップS608において、近似表面解析部1040は、当該頂点のスコアを算出する。例えば、当該頂点が図6Bにおける辺sp上にある場合は、近似表面解析部1040は、当該頂点のa座標を用いて、スコア=a+NS*3とする(ここで、*は、乗算を示す)。
 ステップSS608においてスコアが算出された後、本手順は、ステップS601へ進み、近似表面解析部1040は、次の頂点について処理を行う。
 ステップS609において、近似表面解析部1040は、各頂点のスコア(上述の例では、-NS/2~NS*7/2の値を取る)が小さい順に各頂点をソートし、スコアが小さい順に各頂点にインデックスを付与する。
 その後、本手順は、ステップS610へ進み、処理を終了する。
 なお、上述の例では、各頂点のスコア値として、負の値を取れるようにしたが、例えば、全体にNS/2を加えて必ず非負の値(例えば、0~4*NS)となるように定義してもよい。
 また、上述の例では、座標値を実数精度で表現するケースを例に挙げて説明したが、本発明は、かかるケースに限定されることなく、座標値を整数値で表現する場合、適宜除算による誤差を補正するためのオフセット(+1又は-1)を加えることで、上述の実数精度の例と等価な処理を実現できる。
 上述の手順では、図6Aに示すように投影した長方形の右下の頂点から反時計回りとなる順番で各頂点にインデックスが付与される。なお、図6Aにおける「B:0」とは、頂点Bのインデックスが「0」であることを意味しており、その他の頂点についても同様である。
 上述の例では、図6Aにおける長方形の右下を起点として反時計回りになる順で各頂点にインデックスが付与されているが、起点は、右下以外でも明確に決まっていればよい。すなわち、起点は、長方形の辺上に存在していればどこでもよい。
 また、起点は、近似表面解析部1040における符号化処理に先立って1か所に決定されてもよいし、ノード毎に適応的に起点の位置が変更されてもよい。例えば、起点は、頂点が最も多い辺に最後にインデックスが付与されるように決定されてもよい。
 図6A及び図6Bの例では、辺sp上に最も頂点が多いため、各頂点にインデックスを反時計回りの順で付与する場合は、起点を頂点pの位置と決定できる。
 また、近似表面解析部1040は、反時計回りではなく、起点から時計回りとなる順で各頂点にインデックスを付与してもよい。
 いずれにせよ、近似表面解析部1040は、投影した長方形の辺上に起点を設定し、各頂点にインデックスを付与する順序を決定する際に、頂点が必ず長方形の辺上に存在するという特徴を利用して、座標値から時計回り又は反時計回りとなるように各頂点にインデックスを付与するように構成されていれば、上述以外の手法を用いてもよい。
 以上のように、近似表面解析部1040は、垂直方向の辺上にある頂点に対して、垂直方向軸の座標値を用いてインデックスを扶養するように構成されていてもよい。
 同様に、近似表面解析部1040は、水平方向の辺上にある頂点に対して、水平方向軸の座標値を用いてインデックスを付与するように構成されていてもよい。
 また、近似表面解析部1040は、平面上に投影された長方形の辺上に起点を設定し、かかる起点から時計回り又は反時計回りとなるように各頂点にインデックスを付与するように構成されていてもよい。
 以上のような構成とすることで、後段のステップS304の処理と組み合わせて、三角形で定義される面で適切に点の分布を生成できる。これに対して、非特許文献2の方法では、アークタンジェントの近似が正しくなく、各頂点のインデックスが時計回り又は反時計回りの順にはならないため、適切に点の分布を生成できない。
 更に、非特許文献2の方法では、アークタンジェントの近似計算において除算が行われているが、本実施形態の処理は、基本的に加減算のみで実現できる(NS/2等のオフセット値は、TrisoupのNSに応じて予め算出しておくことで、定数として扱える)。よって、本実施形態によれば、非特許文献2の方法と比較して、特に、ハードウェアで実装した際に処理サイクル数を短縮することができる。
 以上のように、各頂点をソートしてインデックスが付与された後、本処理は、図3のステップS304へ進む。
 ステップS304において、近似表面解析部1040は、ステップS303で付与した各頂点のインデックスを基に、三角形を生成する。
 例えば、図6Aに示すように、頂点が5点の場合、近似表面解析部1040は、図8に示すように、3つの三角形を生成することができる。
 かかる三角形の生成は、例えば、非特許文献2に記載のように、三角形を構成するための頂点のインデックスの組み合わせを予め定義しておくことで実現できる。
 図7は、例えば、頂点が5点の場合は、三角形を構成するための頂点のインデックスの組み合わせが{0、1、2}、{0、2、4}、{2、3、4}となる3点で、それぞれ三角形を生成するように予め定義されていた場合の例である。
 以上のように三角形が生成された後、本処理は、ステップS305へ進む。
 ステップS305において、近似表面解析部1040は、ステップS304で生成した三角形を基に、点を生成する。三角形から点を生成する方法としては、例えば、非特許文献2に記載の方法を適用することができる。
 以上のような手順で、全てのノードについて点を生成した後、ステップS306へ進んで処理を終了する。
(リフティング部1110)
 以下、図9、図10及び図14を参照して、本実施形態に係るリフティング部1110の処理の一例を説明する。
 図9は、リフティング部1110の処理の一例を示すフローチャートである。
 図9に示すように、ステップS801において、リフティング部1110は、kNN(k近傍探索)処理を行う。
 kNNは、符号化対象の点を基準として設定した探索範囲内の点について、符号化対象点との距離(L1距離やL2距離)が小さい順にk点(k近傍点)を収集する処理である。
 ここで、kの具体的な値は、点群符号化装置100側で決定され、制御データとして点群復号装置200側に伝送されてもよいし、点群符号化装置100側及び点群復号装置200側で共通して予め決定した所定の値が用いられてもよい。
 かかる探索範囲は、例えば、非特許文献2に記載のように、各点の座標から算出したMorton codeを基準に設定され得る。
 本実施形態では、入力として時間方向に連続した点群を用いる場合を想定する。kNN探索を、それぞれ以下の3パターンについて実行して、それぞれk近傍点を収集する。
(1)当該時刻(対象の時刻)の点群におけるk近傍点(イントラ予測)
(2)時間的に異なる符号化済み点群におけるk近傍点(インター予測)
(3)イントラ予測及びインター予測の両方を考慮した場合のk近傍点
 なお、リフティング部1110は、(2)のパターンにおけるk近傍探索の基準点を、符号化対象点の座標位置又は動きベクトルによって動き補償された座標位置としてもよい。動きベクトルの導出方法は、公知の方法が適用できるため、詳細な説明については省略する。
 また、上述の時間的に異なる符号化済み点群は、点群符号化装置100側で復号処理と等価な処理を実施して生成した再構成点群を、図示しないフレームバッファに格納しておいたものである。例えば、点群を時系列順に符号化している場合、例えば、上述の時間的に異なる符号化済み点群として、直前の時刻の点群を用いることができる。
 また、リフティング部1110は、(3)のパターンでは、イントラ予測において符号化対象点の座標位置を基準点とし、インター予測において(2)のパターンと同様の方法で決定した座標位置を基準点として、かかる基準点からの距離が小さいk点を収集してもよい。
 この時、リフティング部1110は、インター予測の距離として、単純なL1距離やL2距離Dを基に、下記のように補正した値D_interを距離として用いてもよい。
D_inter=a*D+b
ここで、a及びbは、定数である。上述の(1)~(3)のパターンのそれぞれについて、k近傍点が収集された後、本手順は、ステップS802へ進む。
 ステップS802において、リフティング部1110は、先に探索した(1)~(3)のパターンにおけるk近傍点のうち、どのk近傍点を用いるかを決定する。
 図10は、ステップS802の処理の一例を示すフローチャートである。
 図10に示すように、ステップS901において、リフティング部1110は、上述の(1)~(3)のパターンのそれぞれについてコスト値を算出する。ここで、コスト値は、例えば、各k近傍点内の属性値の最大値と最小値との差分値であってもよい。
 ステップS902において、リフティング部1110は、上述の(1)~(3)のパターンにおけるコスト値のうち、どの値が最小であるかを判定する。
 (1)のパターンにおけるコストが最小の場合、本手順は、ステップS903へ進み、リフティング部1110は、(1)のパターンにおけるk近傍点を使用することを決定する。
 (2)のパターンにおけるコストが最小の場合、本手順は、ステップS904へ進み、リフティング部1110は、(2)のパターンにおけるk近傍点を使用することを決定する。
 (3)のパターンにおけるコストが最小の場合、本手順は、ステップS905へ進み、リフティング部1110は、(3)のパターンにおけるk近傍点を使用することを決定する。
 最後に、本手順は、ステップS906へ進み、処理を終了する。
以上のように、リフティング部1110は、ステップS802では探索した(1)~(3)のパターンにおけるk近傍点のうち、どのk近傍点を用いるかを決定し、本手順は、ステップS803へ進む。
 なお、以上ではコスト値が最小となるパターンを選択する例を説明したが、図14に示すように、コスト値の比較を2段階で実施してもよい。例えば、図14の例では、ステップS1401において、(1)のコストと(3)のコストとを比較し、(1)のコストが(3)のコストより小さい場合は、本手順は、ステップS903へ進み、そうでない場合は、本手順は、ステップS1402へ進む。
 ステップS1402において、(2)のコストと(3)のコストとを比較し、(2)のコストが(3)のコストより小さい場合は、本手順は、ステップS904へ進み、そうでない場合は、本手順は、ステップS905へ進む。
 また、以上では、(1)~(3)の3パターンからいずれかを選択する場合について説明したが、(1)~(3)のうちいずれか2パターンの中から選択してもよい。
 例えば、(1)及び(3)の2パターンのうちいずれかを選択する形でもよい。これは、例えば、図14のステップS1401で、(1)のコストが(3)のコストより小さい場合は、本手順がステップS903へ進み、そうでない場合は、本手順がステップS905へ進むことと等価である。ここで、(1)及び(3)の2パターンというのは一例であり、(1)~(3)の3パターンのうちいずれか2パターンの組み合わせであればよい。
 以上で説明したS802の手順は、既に符号化済み又は復号済みの点の属性値のみを用いて、上記(1)~(3)のうちどのパターンを使用するかを決定する方法である。上述の通り、既に符号化済み又は復号済みの点の情報のみを用いるため、点群符号化装置100(リフティング部1110)及び点群復号装置200(逆リフティング部2100)の両方において全く同じ処理が可能である。言い換えると、上記(1)~(3)のうちどのパターンを使用するかという情報は、点群復号装置200で導出可能であるため、点群符号化装置100から付加情報として伝送する必要がない。
 一方、S802の手順の代わりに、上記(1)~(3)のうちどのパターンを使用するかをリフティング部1110で決定し、かかるどのパターンを使用するか等情報を点群符号化装置100から点群復号装置200に伝送してもよい。どのパターンを使用するかは、例えば、各パターンを使用した場合の符号量と歪み(MSEやPSNR)等で定義されるコスト関数の値が最も小さくなるパターンを選択してもよい。パターンの選択単位は、点毎でもよいし、予め定めたノードサイズ毎でもよい。また、動きベクトルを使用する場合は、動きベクトルの導出単位ごとに選択してもよい。
 ステップS803において、リフティング部1110は、ステップS802で決定したk近傍点の属性値の変化が小さいか大きいかどうかを判定する。具体的な判定方法としては、非特許文献2に記載の方法を適用することができる。
 かかる変化が小さい場合は、本手順は、ステップS805へ進む。かかる変化が大きい場合は、本手順は、ステップS804へ進む。
 ステップS804において、リフティング部1110は、k近傍点に基づいて予測値を生成する場合の予測器を選択する。
 予測器(予測の方法)としては、非特許文献2に記載のように、k近傍点の重み付き平均や、k近傍点内のある点の属性値をそのまま予測値とする、といった方法を適用することができる。
 予め複数の予測器を用意しておき、例えば、リフティング部1110は、かかる複数の予測器の中から、符号化効率が最もよくなる予測器を選択する。具体的な選択方法としては、公知の方法を適用することができるため、詳細な説明については省略する。
 選択した予測器の情報は、符号化されてビットストリームとして点群復号装置200へ伝送される。
 予測器が選択された後、本手順は、ステップS805へ進む。
 ステップS805において、リフティング部1110は、符号化対象の点の予測値を生成する。
 ステップS803で変化が小さいと判定された場合は、ステップS805において、リフティング部1110は、k近傍点の重み付き平均によって予測値を生成する。
 一方、ステップS803で変化が小さいと判定されなかった場合は、ステップS805において、ステップS804で決定した予測器によって予測値を生成する。
 具体的な予測値の生成方法については、非特許文献2に記載の方法を適用することができるため、詳細な説明については省略する。
 予測値が生成された後、本手順は、ステップS806へ進む。
 ステップS806において、リフティング部1110は、符号化対象点の属性情報の値とステップS805で生成された予測値との差分を算出し、残差情報を生成する。
 その後、本手順は、ステップS807へ進み、処理を終了する。
(点群復号装置200)
 以下、図11を参照して、本実施形態に係る点群復号装置200について説明する。図11は、本実施形態に係る点群復号装置200の機能ブロックの一例について示す図である。
 図11に示すように、点群復号装置200は、幾何情報復号部2010と、ツリー合成部2020と、近似表面合成部2030と、幾何情報再構成部2040と、逆座標変換部2050と、属性情報復号部2060と、逆量子化部2070と、RAHT部2080と、LoD算出部2090と、逆リフティング部2100と、逆色変換部2110とを有する。
 幾何情報復号部2010は、点群符号化装置100から出力されるビットストリームのうち、幾何情報に関するビットストリーム(幾何情報ビットストリーム)を入力とし、シンタックスを復号するように構成されている。
 復号処理は、例えば、コンテキスト適応二値算術復号処理である。ここで、例えば、シンタックスは、位置情報の復号処理を制御するための制御データ(フラグやパラメータ)を含む。
 ツリー合成部2020は、幾何情報復号部2010によって復号された制御データ及び後述するツリー内のどのノードに点群が存在するかを示すoccupancy codeを入力として、復号対象空間内のどの領域に点が存在するかというツリー情報を生成するように構成されている。
 本処理は、復号対象空間を直方体で区切り、occupancy codeを参照して各直方体内に点が存在するかを判断し、点が存在する直方体を複数の直方体に分割し、occupancy codeを参照するという処理を再帰的に繰り返すことで、ツリー情報を生成することができる。
 本実施形態では、上述の直方体を常に立方体として8分木分割を再帰的に行う「Octree」と呼ばれる手法、及び、8分木分割に加え、4分木分割及び2分木分割を行う「QtBt」と呼ばれる手法を使用することができる。「QtBt」を使用するか否かは、制御データとして点群符号化装置100側から伝送される。
 或いは、制御データによってPredicitive codingを使用するように指定された場合、ツリー合成部2020は、点群符号化装置100において決定した任意のツリー構成に基づいて各点の座標を復号するように構成されている。
 近似表面合成部2030は、ツリー合成部2020によって生成されたツリー情報を用いて近似表面情報を生成するように構成されている。
 近似表面情報は、例えば、物体の3次元点群データを復号する際等において、点群が物体表面に密に分布しているような場合に、個々の点群を復号するのではなく、点群の存在領域を小さな平面で近似して表現したものである。
 具体的には、近似表面合成部2030は、例えば、「Trisoup」と呼ばれる手法で、近似表面情報を生成し、点群を復号することができる。「Trisoup」の具体的な処理例については後述する。また、Lidar等で取得した疎な点群を復号する場合は、本処理を省略することができる。
 幾何情報再構成部2040は、ツリー合成部2020によって生成されたツリー情報及び近似表面合成部2030によって生成された近似表面情報を元に、復号対象の点群データの各点の幾何情報(復号処理が仮定している座標系における位置情報)を再構成するように構成されている。
 逆座標変換部2050は、幾何情報再構成部2040によって再構成された幾何情報を入力として、復号処理が仮定している座標系から、出力点群信号の座標系に変換を行い、位置情報を出力するように構成されている。
 属性情報復号部2060は、点群符号化装置100から出力されるビットストリームのうち、属性情報に関するビットストリーム(属性情報ビットストリーム)を入力とし、シンタックスを復号するように構成されている。
 復号処理は、例えば、コンテキスト適応二値算術復号処理である。ここで、例えば、シンタックスは、属性情報の復号処理を制御するための制御データ(フラグ及びパラメータ)を含む。
 また、属性情報復号部2060は、復号したシンタックスから、量子化済み残差情報を復号するように構成されている。
 逆量子化部2070は、属性情報復号部2060によって復号された量子化済み残差情報と、属性情報復号部2060によって復号された制御データの一つである量子化パラメータとを元に、逆量子化処理を行い、逆量子化済み残差情報を生成するように構成されている。
 逆量子化済み残差情報は、復号対象の点群の特徴に応じて、RAHT部2080及びLoD算出部2090のいずれかに出力される。いずれに出力されるかは、属性情報復号部2060によって復号される制御データによって指定される。
 RAHT部2080は、逆量子化部2070によって生成された逆量子化済み残差情報及び幾何情報再構成部2040によって生成された幾何情報を入力とし、RAHT(Region Adaptive Hierarchical Transform)と呼ばれるHaar変換(復号処理においては、逆Haar変換)の一種を用いて、各点の属性情報を復号するように構成されている。RAHTの具体的な処理としては、例えば、非特許文献2に記載の方法を用いることができる。
 LoD算出部2090は、幾何情報再構成部2040によって生成された幾何情報を入力とし、LoD(Level of Detail)を生成するように構成されている。
 LoDは、ある点の属性情報から、他のある点の属性情報を予測し、予測残差を符号化或いは復号するといった予測符号化を実現するための参照関係(参照する点及び参照される点)を定義するための情報である。
 言い換えると、LoDは、幾何情報に含まれる各点を複数のレベルに分類し、下位のレベルに属する点については上位のレベルに属する点の属性情報を用いて属性を符号化或いは復号するといった階層構造を定義した情報である。
 LoDの具体的な決定方法としては、例えば、非特許文献2に記載の方法を用いてもよい。
 逆リフティング部2100は、LoD算出部2090によって生成されたLoD及び逆量子化部2070によって生成された逆量子化済み残差情報を用いて、LoDで規定した階層構造に基づいて各点の属性情報を復号するように構成されている。逆リフティングの具体的な処理としては、例えば、非特許文献2に記載の方法を用いることができる。
 逆色変換部2110は、復号対象の属性情報が色情報であり且つ点群符号化装置100側で色変換が行われていた場合に、RAHT部2080又は逆リフティング部2100から出力される属性情報に逆色変換処理を行うように構成されている。かかる逆色変換処理の実行の有無については、属性情報復号部2060によって復号された制御データによって決定される。
 点群復号装置200は、以上の処理により、点群内の各点の属性情報を復号して出力するように構成されている。
(近似表面合成部2030)
 以下、図12を用いて、本実施形態における近似表面合成部2030の処理の一例を説明する。図12は、近似表面合成部2030の処理の一例をフローチャートである。図12は、ステップS1101を除いて図3に示す近似表面解析部1040のフローチャートと同一である。
 図12に示すように、ステップS1101において、近似表面合成部2030は、各ノードにおける頂点位置を復号する。かかる頂点位置は、図3のステップS301で決定したものである。
 図3の説明と同様に、ステップS302~S305は、ノード毎に独立して実行する。
 ステップS302では、ステップS1101で復号した頂点の中から、当該ノードのエッジ上に存在する頂点を一点ずつ抽出する。ここで、図3の説明と同様に、ある頂点の座標(x、y、zの値)が、既に抽出した頂点の座標と完全に同一の場合は、既に抽出した頂点のみを当該ノードの頂点として残し、座標が重複する点は当該ノードの頂点として加えないようにする。これにより、ステップS302~S305において座標が完全に同一の頂点が複数存在することで不要な処理が発生するのを防ぐことができる。
 以降、近似表面合成部2030は、図3と同様の処理を行うため、説明を省略する。
(逆リフティング部2100)
 以下、図13を用いて、本実施形態における逆リフティング部2100の処理の一例を説明する。図13は、逆リフティング部2100の処理の一例を示すフローチャートである。
 図13は、ステップS1201及びS1202を除いて、図9に示すリフティング部1110の処理と同一である。以降、同一の処理については説明を省略する。
 ステップS802では、点群符号化装置100と同一の方法で上記(1)~(3)のどのパターンを用いるか決定する。具体的には、図10や図14で説明した方法で決定できる。
 または、S802の代わりに、点群符号化装置100から付加情報として伝送される、上述の(1)~(3)のどのパターンを用いるかという情報を復号し、これに基づいてどのパターンを使用するか決定してもよい。
 ステップS1201において、逆リフティング部2100は、リフティング部1110によって決定された予測器の情報を、ビットストリームから復号する。
 ステップS1202において、逆リフティング部2100は、ステップS805で生成された予測値と逆量子化済み残差情報とを足し合わせることで復号対象点の属性情報の値を復号する。
 また、上述の点群符号化装置100及び点群復号装置200は、コンピュータに各機能(各工程)を実行させるプログラムであって実現されていてもよい。
 なお、上記の各実施形態では、本発明を点群符号化装置100及び点群復号装置200への適用を例にして説明したが、本発明は、かかる例のみに限定されるものではなく、点群符号化装置100及び点群復号装置200の各機能を備えた点群符号化/復号システムにも同様に適用できる。
 なお、本実施形態によれば、例えば、動画像通信において総合的なサービス品質の向上を実現できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
10…点群処理システム
100…点群符号化装置
1010…座標変換部
1020…幾何情報量子化部
1030…ツリー解析部
1040…近似表面解析部
1050…幾何情報符号化部
1060…幾何情報再構成部
1070…色変換部
1080…属性転移部
1090…RAHT部
1100…LoD算出部
1110…リフティング部
1120…属性情報量子化部
1130…属性情報符号化部
200…点群復号装置
2010…幾何情報復号部
2020…ツリー合成部
2030…近似表面合成部
2040…幾何情報再構成部
2050…逆座標変換部
2060…属性情報復号部
2070…逆量子化部
2080…RAHT部
2090…LoD算出部
2100…逆リフティング部
2110…逆色変換部

Claims (11)

  1.  点群復号装置であって、
     属性情報の復号処理に際して、対象の時刻の点群におけるk近傍点、時間的に異なる符号化済み点群におけるk近傍点、前記対象の時刻の点群及び前記時間的に異なる符号化済み点群の両方を考慮した場合のk近傍点のうち、いずれか1つのk近傍点を用いて予測を行うように構成されている逆リフティング部を備える、点群復号装置。
  2.  前記逆リフティング部は、復号対象点毎に、前記時刻の点群におけるk近傍点、前記対象の時刻の点群及び前記時間的に異なる符号化済み点群の両方を考慮した場合のk近傍点、前記いずれか1つのk近傍点を算出し、それぞれのk近傍点のコスト値を基に点毎にいずれのk近傍点を用いるかを決定するように構成されている、請求項1に記載の点群復号装置。
  3.  前記コスト値は、それぞれのk近傍点内の属性値の最大値と最小値との差分値である、請求項2に記載の点群復号装置。
  4.  前記逆リフティング部は、点群符号化装置側から伝送される制御データに基づいて前記時刻の点群におけるk近傍点、前記時間的に異なる符号化済み点群におけるk近傍点、前記対象の時刻の点群及び前記時間的に異なる符号化済み点群の両方を考慮した場合のk近傍点のうち、いずれのk近傍点を用いるかについて決定するように構成されている、請求項1に記載の点群復号装置。
  5.  点群符号化装置であって、
     Trisoup処理を行うノードのエッジに隣接している点及び前記エッジに隣接していない点の両方を考慮して、Trisoupの頂点位置を決定するように構成されている近似表面解析部を備える、点群符号化装置。
  6.  前記近似表面解析部は、前記エッジからの距離に応じて設定した座標値の重み付き平均によって、前記頂点位置を決定するように構成されている、請求項5に記載の点群復号装置。
  7.  点群処理システムであって、
     Trisoup処理を行うノードのエッジに隣接している点及び前記エッジに隣接していない点の両方を考慮して、Trisoupの頂点位置を決定するように構成されている近似表面解析部を備える、点群処理システム。
  8.  前記近似表面解析部は、前記エッジからの距離に応じて設定した座標値の重み付き平均によって、前記頂点位置を決定するように構成されている、請求項7に記載の点群処理システム。
  9.  前記近似表面解析部によって決定された前記頂点位置に基づいて、投影面を決定し、前記投影面上で頂点のソート処理を行い、前記ソート処理の結果に基づいて三角形面を生成し、前記三角形面に基づいて点の位置情報を復号するように構成されている近似表面合成部を更に備える、請求項7又は8に記載の点群処理システム。
  10.  属性情報の復号処理に際して、対象の時刻の点群におけるk近傍点、時間的に異なる符号化済み点群におけるk近傍点、前記対象の時刻の点群及び前記時間的に異なる符号化済み点群の両方を考慮した場合のk近傍点のうち、いずれか1つのk近傍点を用いて予測を行う工程を有する、点群復号方法。
  11.  コンピュータを、点群復号装置として機能させるプログラムであって、
     前記点群復号装置は、属性情報の復号処理に際して、対象の時刻の点群におけるk近傍点、時間的に異なる符号化済み点群におけるk近傍点、前記対象の時刻の点群及び前記時間的に異なる符号化済み点群の両方を考慮した場合のk近傍点のうち、いずれか1つのk近傍点を用いて予測を行うように構成されている逆リフティング部を備える、プログラム。
PCT/JP2022/001228 2021-04-12 2022-01-14 点群復号装置、点群符号化装置、点群処理システム、点群復号方法及びプログラム WO2022219867A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021067392A JP2022162485A (ja) 2021-04-12 2021-04-12 点群復号装置、点群符号化装置、点群処理システム、点群復号方法及びプログラム
JP2021-067392 2021-04-12

Publications (1)

Publication Number Publication Date
WO2022219867A1 true WO2022219867A1 (ja) 2022-10-20

Family

ID=83639509

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/001228 WO2022219867A1 (ja) 2021-04-12 2022-01-14 点群復号装置、点群符号化装置、点群処理システム、点群復号方法及びプログラム

Country Status (2)

Country Link
JP (1) JP2022162485A (ja)
WO (1) WO2022219867A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024176931A1 (ja) * 2023-02-22 2024-08-29 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化方法、復号方法、符号化装置及び復号装置
WO2024176890A1 (ja) * 2023-02-22 2024-08-29 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 復号方法及び復号装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015180040A (ja) * 2014-03-18 2015-10-08 パナソニックIpマネジメント株式会社 予測画像生成方法、画像符号化方法、画像復号方法及び予測画像生成装置
JP2019512121A (ja) * 2016-02-11 2019-05-09 スリーエム イノベイティブ プロパティズ カンパニー 母集団に基づく表面メッシュの再構成
US20200107048A1 (en) * 2018-10-02 2020-04-02 Tencent America LLC Method and apparatus for video coding
WO2020162495A1 (ja) * 2019-02-05 2020-08-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020162534A1 (ja) * 2019-02-08 2020-08-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
US20210099711A1 (en) * 2019-09-27 2021-04-01 Apple Inc. Dynamic Point Cloud Compression Using Inter-Prediction

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015180040A (ja) * 2014-03-18 2015-10-08 パナソニックIpマネジメント株式会社 予測画像生成方法、画像符号化方法、画像復号方法及び予測画像生成装置
JP2019512121A (ja) * 2016-02-11 2019-05-09 スリーエム イノベイティブ プロパティズ カンパニー 母集団に基づく表面メッシュの再構成
US20200107048A1 (en) * 2018-10-02 2020-04-02 Tencent America LLC Method and apparatus for video coding
WO2020162495A1 (ja) * 2019-02-05 2020-08-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020162534A1 (ja) * 2019-02-08 2020-08-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
US20210099711A1 (en) * 2019-09-27 2021-04-01 Apple Inc. Dynamic Point Cloud Compression Using Inter-Prediction

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
JP2022162485A (ja) 2022-10-24

Similar Documents

Publication Publication Date Title
CN113615181B (zh) 用于点云编解码的方法、装置
US12058358B2 (en) Video signal processing method and apparatus using adaptive motion vector resolution
WO2022219867A1 (ja) 点群復号装置、点群符号化装置、点群処理システム、点群復号方法及びプログラム
JP7495185B2 (ja) 点群復号装置、点群復号方法及びプログラム
US7929795B2 (en) Coding scheme for a data stream representing a temporally varying graphics model
JP2022502961A (ja) 3d補助データを用いた動き推定
WO2012101781A1 (ja) 画像復号化装置
EP4369716A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
WO2023272730A1 (en) Method for encoding and decoding a point cloud
JP7544049B2 (ja) 情報処理装置および方法
JP7573553B2 (ja) 点群復号装置、点群復号方法及びプログラム
WO2024014196A1 (ja) メッシュ復号装置、メッシュ符号化装置、メッシュ復号方法及びプログラム
WO2024014044A1 (ja) メッシュ復号装置、メッシュ符号化装置、メッシュ復号方法及びプログラム
WO2024014042A1 (ja) メッシュ復号装置、メッシュ符号化装置、メッシュ復号方法及びプログラム
WO2024014045A1 (ja) メッシュ復号装置、メッシュ符号化装置、メッシュ復号方法及びプログラム
JP7573554B2 (ja) 点群復号装置、点群復号方法及びプログラム
WO2024014195A1 (ja) メッシュ復号装置、メッシュ符号化装置、メッシュ復号方法及びプログラム
US20240289994A1 (en) Point cloud decoding device, point cloud decoding method, and program
JP7557436B2 (ja) 点群復号装置、点群復号方法及びプログラム
US20240355005A1 (en) Coding TriSoup Vertex Information
JP2024008744A (ja) メッシュ復号装置、メッシュ符号化装置、メッシュ復号方法及びプログラム
JP2024096620A (ja) 点群復号装置、点群復号方法及びプログラム
Li et al. MPEG Geometry-Based Point Cloud Compression (G-PCC) Standard
JP2024093897A (ja) 点群復号装置、点群復号方法及びプログラム
JP2024093896A (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: 22787795

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22787795

Country of ref document: EP

Kind code of ref document: A1