WO2020261334A1 - 符号化装置、符号化方法及びプログラム - Google Patents

符号化装置、符号化方法及びプログラム Download PDF

Info

Publication number
WO2020261334A1
WO2020261334A1 PCT/JP2019/024976 JP2019024976W WO2020261334A1 WO 2020261334 A1 WO2020261334 A1 WO 2020261334A1 JP 2019024976 W JP2019024976 W JP 2019024976W WO 2020261334 A1 WO2020261334 A1 WO 2020261334A1
Authority
WO
WIPO (PCT)
Prior art keywords
space
child
parent
point
adjacent
Prior art date
Application number
PCT/JP2019/024976
Other languages
English (en)
French (fr)
Inventor
真由子 渡邊
隆一 谷田
大西 隆之
清水 淳
Original Assignee
日本電信電話株式会社
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 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to US17/621,436 priority Critical patent/US20220358684A1/en
Priority to PCT/JP2019/024976 priority patent/WO2020261334A1/ja
Priority to JP2021528661A priority patent/JP7125649B2/ja
Publication of WO2020261334A1 publication Critical patent/WO2020261334A1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Definitions

  • the present invention relates to a coding device, a coding method and a program.
  • point cloud data The outer shape of topography, buildings, works of art, etc. may be expressed using the coordinate data of point clouds distributed in three dimensions (hereinafter referred to as "point cloud data").
  • point cloud data the coordinate data of point clouds distributed in three dimensions.
  • MPEG Motion Picture Experts Group
  • PCC Point Cloud Compression
  • a cube (block) containing point cloud data is represented using an octree (octree).
  • the ocree represents eight child spaces per parent space.
  • the length of each side of the block is 2 k (k is a positive integer from 1 to "n").
  • the coordinates of the point cloud data are translated so that the minimum value of each component of the three dimensions (x, y, z) becomes 0 in order to simplify the arithmetic processing.
  • “K” is defined as the minimum value among the values in which the length “2 k ” of each side of the block is larger than the maximum value of each component of (x, y, z) (see Non-Patent Document 1).
  • the point cloud data is compressed using the divided structure of the three-dimensional space including each block.
  • the length of each side of the child space becomes 2 (k-1) .
  • the parent space is also called a parent node, and the child space is also called a child node.
  • Whether or not a point is included in the child space is a 1-bit code indicating "1: point is included” or "0: point is not included", and is a child space. Expressed for each. Therefore, whether or not points are included in the eight child spaces for each parent space is represented by 8 bits (a decimal number in the range of 0 to 255). By dividing each side of the child space containing the point cloud into two equal parts, whether or not points are included in the eight grandchild spaces (child spaces of the child space) for each child space containing the point cloud. Is expressed in the same way with 8 bits.
  • each parent space (each parent node) in the three-dimensional space expresses in 8-bit whether or not points are included in the eight child spaces (each child node) of the own parent space. To do. Note that the child space that does not include points is not further divided.
  • an object of the present invention is to provide a coding device, a coding method and a program capable of improving the coding efficiency of a point cloud distributed along the surface of an object.
  • One aspect of the present invention acquires three-dimensional data representing the positions of a plurality of points distributed along the surface of an object in the three-dimensional space, and converts the parent space including the points into a plurality of child spaces in the three-dimensional space.
  • the point is included in the first child space adjacent to the target space, with the dividing portion to be divided and the target space, which is the child space to which a code indicating whether or not the point is included, is assigned as a reference for the position.
  • It is a coding device including a coding unit that changes a process of assigning the code to the target space and a second child space adjacent to the target space depending on whether or not the space is used.
  • FIG. 1 is a diagram showing a configuration example of the data processing device 1.
  • the data processing device 1 is a device that encodes and decodes coordinate data (point cloud data) of a plurality of points distributed along the surface of an object.
  • the data processing device 1 includes a coding device 2, a decoding device 3, a memory 4, a storage unit 5, and a bus 6.
  • the coding device 2 includes a dividing unit 20 and a coding unit 21.
  • a processor such as a CPU (Central Processing Unit) executes a program stored in a memory 4 or a storage unit 5 which is a non-volatile recording medium (non-temporary recording medium). By doing so, it is realized as software.
  • the program may be recorded on a computer-readable recording medium.
  • Computer-readable recording media include, for example, flexible disks, optomagnetic disks, portable media such as ROM (ReadOnlyMemory) and CD-ROM (CompactDiscReadOnlyMemory), and storage of hard disks built into computer systems. It is a non-temporary storage medium such as a device.
  • the program may be transmitted over a telecommunication line.
  • a part or all of the data processing device 1 is, for example, an electronic circuit (Field Programmable Gate Array) using an LSI (Large Scale Integration circuit), an ASIC (Application Specific Integrated Circuit), a PLD (Programmable Logic Device), an FPGA (Field Programmable Gate Array), or the like. It may be realized by using hardware including electronic circuit or circuitry).
  • the coding device 2 is a device that encodes coordinate data (point cloud data) of a plurality of points distributed along the surface of an object.
  • the decoding device 3 is a device that decodes coordinate data (point cloud data) of a plurality of points distributed along the surface of an object.
  • the memory 4 stores, for example, a program. The coding device and the decoding device included in the data processing device may be used separately.
  • the storage unit 5 stores three-dimensional data including point cloud data quantized for each block (unit cube).
  • the point cloud data represents the coordinates of a plurality of points (point clouds) distributed along the surface of an object in the three-dimensional space.
  • the storage unit 5 may store the switching data of the arithmetic coding table.
  • the switching data is identification information representing an arithmetic coding table selected when coding the point cloud data.
  • the switching data is used, for example, when decoding point cloud data.
  • the bus 6 transmits data between each functional unit of the data processing device 1.
  • FIG. 2 is a diagram showing an example of a point cloud 100 and an object 200.
  • the point cloud data represents the surface shape (outer shape) of the object.
  • the object 200 is not limited to a specific object.
  • the object 200 is a part of a "wooden desk" as an example, but when the objects have similar shapes such as the boundary between a roadway and a sidewalk (that is, the boundary between objects and an object).
  • the point cloud 100 represents the surface shape of the object 200.
  • Laser scanners and lidar Light Detection and Ranging
  • FIG. 3 is a diagram showing an example of a point cloud 100 included in the three-dimensional space 10.
  • the division unit 20 acquires three-dimensional data from the storage unit 5.
  • the division unit 20 executes a process of dividing the parent space 11 including points in the three-dimensional space 10 into a plurality of child spaces for the three-dimensional data.
  • FIG. 4 is a diagram showing an example of the parent space 11 and the child space 12.
  • the dividing portion 20 divides the parent space 11 into two equal parts in each of the three directions (x-axis, y-axis, and z-axis) orthogonal to each other. As a result, the division unit 20 generates eight child spaces 12 for each parent space 11 including the points.
  • the parent space 11-m (m is an integer of 0 or more) included in the three-dimensional space 10 is 8 from "child space 12-m-0" to "child space 12-m-7". It is composed of 12 child spaces.
  • FIG. 5 is a diagram showing an example of an ocree.
  • the divided three-dimensional space 10 is represented by using an octree.
  • each space such as the parent space 11 and the child space 12 is represented as each node.
  • the child space (node) containing the points is further divided into eight grandchild spaces (child spaces of the child space).
  • the coding unit 21 depends on whether or not a point is included in a space (surrounding space) adjacent to a space (hereinafter referred to as “target space”) to which a code indicating whether or not the point is included is assigned. Therefore, the process of assigning a code to the target space and another space adjacent to the target space is changed. For example, when the first parent space and the second parent space are adjacent to each other, the coding unit 21 includes a point in the first parent space adjacent to the second parent space including the target space (child space group).
  • the arithmetic coding table used to encode the target space is selected depending on whether or not it is.
  • the target space in the parent space may be, for example, a space composed of one child space, or may be, for example, a space composed of four child spaces. Which child space group the target space is composed of may be determined depending on whether or not a point is included in one or more child spaces adjacent to the parent space including the target space. For example, in the octave tree shown in FIG. 5, the parent space 11-0 and the parent space 11-4 are adjacent to each other in the three-dimensional space 10.
  • the arithmetic coding table targets one or more target spaces in the parent space 11-4 for coding. For example, the coding unit 21 points at each child space 12-0 of the parent space 11-0 (parent space around the target space) adjacent to the parent space 11-4 including the target space (child space 12-4).
  • the arithmetic coding table used to encode the parent space 11-4 may be selected depending on whether or not is included.
  • each of x 0 to x 7 is a code indicating whether or not a point is included in the child space 12.
  • the position of the child space 12 including the point is represented by a value from 0 to 255 for each parent space 11.
  • the block value "f" of the parent space 11-0 is “f (1,1,0,0,” when only the child space 12-0-0 and the child space 12-0-1 contain points. "0,0,0,0)" is expressed as 3 in decimal.
  • the block value of the parent space 11-4 is "f (1,1,1,1,1,1,1) when all the child spaces 12-4 of the parent space 11-4 include points. 1) ”is expressed as 255 in decimal. In this way, variable length coding is performed on the values from 0 to 255 in order from the upper parent space (parent node).
  • FIG. 6 is a diagram showing an example of parent spaces 11 adjacent to each other.
  • the coding unit 21 determines whether or not a first parent space (parent space 11-0) adjacent to the second parent space (parent space 11-4) including the target space exists.
  • the parent space 11-0 and the parent space 11-4 are adjacent to each other.
  • the size of the parent space 11-0 is the same as the size of the parent space 11-4.
  • Each child space of the parent space 11-0 is encoded.
  • the arithmetic coding table for coding the parent space 11-4 (second parent space) is selected depending on whether or not (point occupancy state).
  • the arithmetic coding table for coding the parent space 11-4 may encode only a part of the child spaces of the parent space 11-4.
  • the code assigned to the child space (child space other than the target space) that is not the target of coding is "0" indicating that the point is not included. That is, at least one of the formula (1), from x 0 x 7 is 0.
  • each child of the divided parent space 11-0 so as to pass through the center of the parent space 11-0 (first parent space) adjacent to the parent space 11-4 to be encoded.
  • the parent space 11-0 is divided so that the space is adjacent to the parent space 11-4 (second parent space)
  • the presence or absence of a point in any of the child spaces adjacent to the parent space 11-4 is adjacent to the parent space 11-4.
  • the arithmetic coding used to encode the point group in parent space 11-4 based on the presence or absence of points in any of the child spaces not adjacent to parent space 11-4 in parent space 11-0.
  • a table may be selected.
  • the coding unit 21 uses a predetermined arithmetic coding table to be used in the parent space. 11-4 may be encoded.
  • the predetermined arithmetic coding table may, for example, target all child spaces of the parent space 11-4 to be encoded.
  • the decoding device 3 determines whether or not a point is included in the child space 12 of the first parent space adjacent to the second parent space to be decoded (point occupancy state).
  • the size of the adjacent first parent space is the same as the size of the second parent space to be decoded.
  • the adjacent first parent space has been decoded.
  • the decoding device 3 is an arithmetic coding used for decoding the parent space 11 to be decoded, depending on whether or not a point is included in the child space 12 of another parent space 11 adjacent to the parent space 11 to be decoded. Select a table.
  • the decoding device 3 selects, for example, the same arithmetic coding table as the arithmetic coding table used by the coding device 2 for coding the parent space 11 based on the switching data.
  • the decoding device 3 selects switching data according to whether or not a point is included in the child space 12 of another parent space 11 adjacent to the parent space 11 to be decoded (point occupancy state). You may.
  • FIG. 7 is a flowchart showing an operation example of the coding device 2.
  • the coding unit 21 determines whether or not a first parent space (for example, parent space 11-0) adjacent to the second parent space (for example, parent space 11-4) including the target space exists (step). S101).
  • the coding unit 21 is included in the second parent space according to the code of each child space 12 of the first parent space.
  • An arithmetic coding table for assigning a code to the child space 12 is selected.
  • the coding unit 21 selects an arithmetic coding table for assigning a code to a part of a plurality of child spaces 12-4 in the parent space 11-4 (step S102).
  • the coding unit 21 selects a predetermined arithmetic coding table.
  • the predetermined arithmetic coding table is, for example, a predetermined arithmetic coding table for assigning a code to all the child spaces 12-4 in the parent space 11-4 (step S103).
  • the data processing device 1 of the first embodiment includes a dividing unit 20 and a coding unit 21.
  • the dividing unit 20 acquires three-dimensional data (point group 100) representing each position of a plurality of points distributed along the surface of the object 200 in the three-dimensional space 10.
  • the division unit 20 divides the parent space 11 including points in the three-dimensional space 10 into a plurality of child spaces 12.
  • the coding unit 21 may define a target space, which is a child space 12 to which a code indicating whether or not a point is included, is assigned as a position reference.
  • the coding unit 21 may be a target space in the parent space 11-4, for example, depending on whether or not a point is included in the first child space adjacent to the target space (for example, the child space of the parent space 11-0). The process of assigning a code to the second child space adjacent to the target space is changed.
  • the target space in the parent space 11-4 may be composed of, for example, one child space 12-4, or may be composed of, for example, four child spaces 12-4.
  • the coding unit 21 changes the process of assigning a code
  • the coding unit 21 selects an arithmetic coding table for assigning a code to a part of a plurality of child spaces in the target space. is there.
  • the occupied state of the points in the target space may be limited to a specific occupied state.
  • an arithmetic coding table in which the length of the code assigned to the child space group is shorter than 8 bits is selected. This makes it possible to improve the coding efficiency of the point cloud distributed along the surface of the object.
  • the arithmetic coding table When the arithmetic coding table is appropriately selected for each parent space (node), the amount of code of the point cloud data is reduced, so that the coding efficiency is improved.
  • switching data is appropriately selected according to whether or not a point is included in the child space 12 of another parent space 11 adjacent to the parent space 11 to be encoded (point occupancy state), switching is performed.
  • the coding unit 21 can suppress an increase in the amount of code code of the data (the switching data becomes an overhead).
  • the data processing device 1 estimates the point cloud data for each block (node) expressed using an ocree tree based on the point cloud data of other blocks around the block to be encoded.
  • the data processing device 1 changes the process of assigning a code to the target space based on the estimation result. That is, when the data processing device 1 encodes the occupied state of the points for each block to be encoded, the data processing device 1 uses the occupied state of the points in the blocks around the block to be encoded.
  • the data processing device 1 switches the arithmetic coding table based on the occupied state of points in the block around the block to be coded. As a result, the coding efficiency of the point cloud data is improved.
  • the coding unit 21 includes a third child space (for example, child space 12-0-7) and a first child space adjacent to the first child space (for example, child space 12-0-5) of the first parent space. Depending on whether or not both of them contain points, the target space of the second parent space (for example, child space 12-4-1) and the second child space (for example, child space 12-4-5) You may change the process of assigning a code to.
  • the candidate of the point occupancy state in the parent space 11 including the target space is encoded according to the point occupancy state in the other parent space 11 adjacent to the parent space 11 including the target space.
  • the point that 21 narrows down is different from the first embodiment.
  • the differences from the first embodiment will be described.
  • FIG. 8 is a diagram showing an example of parent spaces 11 adjacent to each other.
  • the parent space 11-0 and the parent space 11-4 are adjacent to each other.
  • the size of the parent space 11-0 is the same as the size of the parent space 11-4.
  • Each child space of the parent space 11-0 is encoded.
  • the parent space 11-0 and the parent space 11-4 are continuous in the x-axis direction.
  • the coding unit 21 determines whether or not the first parent space (parent space 11-0) adjacent to the second parent space (parent space 11-4) including the target space exists. In FIG. 8, since the parent space 11-0 adjacent to the parent space 11-4 exists, the coding unit 21 includes points in each child space 12 in the parent space 11-0 (first parent space).
  • the arithmetic coding table for coding the parent space 11-4 (second parent space) is selected according to whether or not (the occupancy state of the point).
  • the coding unit 21 determines whether or not all the child spaces 12-0 including the points in the parent space 11-0 are adjacent to the parent space 11-4. All child spaces 12-0 including points in the parent space 11-0 may be distributed parallel to the yz plane. In FIG. 8, since all the child spaces 12-0 including the points in the parent space 11-0 are adjacent to the parent space 11-4, the coding unit 21 divides the parent space 11-4 into two equal parts. Select an arithmetic coding table whose coding target is only the first child space group of the first child space group or the second child space group. For example, the coding unit 21 divides the parent space 11-4 into two equal parts on the xy plane (child space 12-4-1, child space 12-4-3, child space 12-4-5).
  • an arithmetic coding table whose coding target is only the child space 12-4-7 is selected.
  • the target space (first child space group) associated with the selected arithmetic coding table is parallel to the x-axis direction, and the xy plane that bisects the parent space 11-4 is formed. Do not cross.
  • FIG. 9 is a diagram showing a first example of a child space group to be encoded.
  • the child space group that can be selected as the target space by the arithmetic coding table passes through the midpoint of the side of the length "2C" in the z-axis direction of the parent space 11-0.
  • the midpoint in this case indicates the center of space. For example, it refers to a point in contact with all child spaces in the parent space 11-4.
  • the child space groups that can be selected as the target space are the child space 12-4-1, the child space 12-4-3, the child space 12-4-5, and the child space 12-4-7. Is.
  • a code indicating whether or not the point exists and a code indicating which child space in the half of the bisected parent space 11-4 where the point exists may have a point. Further, when a point is included in the region (any of the child spaces 12-0-4 to 12-0-7) adjacent to the parent space 11-4 in the parent space 11-0, and the parent No points are included in the area that is not adjacent to space 11-4 (Any child space belonging to parent space 11-0 other than child space 12-0-4 to child space 12-0-7. An and condition may be added, that is, if the child space also does not contain a point).
  • the code assigned to the child space (child space other than the target space) that is not the target of coding is "0" indicating that the point is not included.
  • FIG. 10 is a diagram showing a second example of the child space group to be encoded.
  • the child space group that can be selected as the target space by the arithmetic coding table passes through the midpoint of the side of the length "2C" in the z-axis direction of the parent space 11-0.
  • the child space groups that can be selected as the target space are child space 12-4-0, child space 12-4-2, child space 12-4-4, and child space 12-4-6. Is.
  • the code assigned to the child space (child space other than the target space) that is not the target of coding is "0" indicating that the point is not included.
  • FIG. 11 is a diagram showing a third example of the child space group to be encoded.
  • the child space group that can be selected as the target space by the arithmetic coding table is xz passing through the midpoint of the side of the length "2C" in the y-axis direction of the parent space 11-0.
  • the midpoint in this case indicates the center of space. For example, it refers to a point in contact with all child spaces in the parent space 11-4.
  • the child space groups that can be selected as the target space are child space 12-4-0, child space 12-4-1, child space 12-4-4, and child space 12-4-5. Is.
  • a code indicating whether or not the point exists and a code indicating which child space in the half of the bisected parent space 11-4 where the point exists may have a point. Further, when a point is included in the region (any of the child spaces 12-0-4 to 12-0-7) adjacent to the parent space 11-4 in the parent space 11-0, and the parent No points are included in the area that is not adjacent to space 11-4 (Any child space belonging to parent space 11-0 other than child space 12-0-4 to child space 12-0-7. An and condition may be added, that is, if the child space also does not contain a point).
  • FIG. 12 is a diagram showing a fourth example of the child space group to be encoded.
  • the child space group that can be selected as the target space by the arithmetic coding table is xz passing through the midpoint of the side of the length "2C" in the y-axis direction of the parent space 11-0.
  • the child space groups that can be selected as the target space are the child space 12-4-2, the child space 12-4-3, the child space 12-4-6, and the child space 12-4-7. Is.
  • Number of patterns of the code which is expressed using the arithmetic coding table becomes "2 5 -1" as in the case corresponding to the example of FIGS. 9 and 10, the example of FIG. 11 and FIG. 12 "2 5 -1" as in the case corresponding to.
  • a code indicating whether or not the parts are divided into two is added as in "FIGS. 9 and 10" or “FIG. 11 and 12", and the number of patterns is "2". It may be "6-1 ways".
  • the coding unit 21 may add flag data to the whole or part of the coding stream including the coding result.
  • the flag data represents, for example, the xy plane shown in FIG. 9 or FIG.
  • the flag data represents, for example, the xz plane shown in FIG. 11 or FIG.
  • the coding unit 21 may determine which plane to adopt, the xy plane or the xz plane, when the coding unit 21 determines the arithmetic coding table (switching data).
  • the decoding device 3 is an arithmetic coding used for decoding the parent space 11 to be decoded, depending on whether or not a point is included in the child space 12 of another parent space 11 adjacent to the parent space 11 to be decoded. Select a table.
  • the decoding device 3 selects, for example, the same arithmetic coding table as the arithmetic coding table used by the coding device 2 for coding the parent space 11 based on the arithmetic coding table.
  • the decoding device 3 and the encoding device 2 are used depending on whether or not a point is included in the child space 12 of another parent space 11 adjacent to the parent space 11 to be decoded (point occupancy state). Similarly, the switching data may be selected.
  • FIG. 13 is a flowchart showing an operation example of the coding device 2.
  • the coding unit 21 determines whether or not a first parent space (for example, parent space 11-0) adjacent to the second parent space (for example, parent space 11-4) including the target space exists (step). S201).
  • step S201 When there is a first parent space adjacent to the second parent space (step S201: YES), in the coding unit 21, all the child spaces 12 including points in the first parent space are adjacent to the second parent space. It is determined whether or not (step S202).
  • the coding unit 21 divides the second parent space into the first child space group.
  • an arithmetic coding table whose coding target is only the first child space group of the second child space group is selected.
  • the coding unit 21 divides the parent space 11-4 into two equal parts on the xy plane (child space 12-4-1, child space 12-4-3, child space 12-4-5, and child).
  • An arithmetic coding table whose coding target is only the space 12-4-7) may be selected (step S202).
  • step S204 When the first parent space adjacent to the second parent space does not exist (step S201: NO), the coding unit 21 selects a predetermined arithmetic coding table (step S204). When any child space 12 including a point in the first parent space is not adjacent to the second parent space (step S202: NO), the encoding unit 21 proceeds to step S204.
  • the first parent space for example, parent space 11-0
  • the second parent space for example, parent space 11-4
  • the target space to which the code is assigned is the first child space group (for example, child space 12-4-1, child space 12-4-3) that divides the second parent space. It is included in the first child space group of the child space 12-4-5 and the child space 12-4-7) or the second child space group.
  • the first child space group includes a child space (for example, child space 12-4-3) adjacent to the first parent space in the second parent space.
  • each child space eg, child space 12-0-4, child space 12-0-5, child space 12-0-6) adjacent to the second parent space (for example, parent space 11-4) in the first parent space And child space 12-0-7), and each child space that is not adjacent to the second parent space in the first parent space (for example, child space 12-0-0, child space)
  • the coding unit 21 assigns a code to the first child space group. To change.
  • the point cloud data of the first parent space and the point cloud data of the second parent space represent each region of the same surface in the object. There may be.
  • the point cloud data of the first parent space and the second parent space of the same size may represent each surface that constitutes a corner in the object.
  • the side surface of the object 200 may be represented by, for example, the parent space 11-0
  • the top surface of the object 200 may be represented by, for example, the parent space 11-4. There is sex.
  • the first parent space and the second parent space of the same size have point group data with each other, and the first parent space has point group data only on the adjacent planes of the first parent space and the second parent space, the first It is highly possible that the second parent space has the point group data only in the plane (for example, the xy plane or the xz plane) parallel to the direction in which the parent space and the second parent space are connected (for example, the x direction).
  • the plane for example, the xy plane or the xz plane
  • the coding unit 21 narrows down the candidates for the point cloud occupancy state in the target space according to the point cloud data occupancy state of the adjacent node.
  • the arithmetic coding table of the parent space (node) at the boundary between the faces of the object is generated so that the code words are shorter than before. Since the point cloud data is encoded based on the above arithmetic coding table, which is expected to have a shorter code word than before, the code amount of the point cloud data is reduced, and the coding efficiency is improved. ..
  • an item “other than these options” may be associated with the arithmetic coding table.
  • the coding unit 21 selects an arbitrary child space group (choice) in the parent space 11 as the target of the arithmetic coding table.
  • the third embodiment is different from the second embodiment in that the division of the three-dimensional space 10 is repeated and the size of the parent space 11 including the target space (child space 12) is equal to or less than a predetermined threshold value “N”. To do.
  • the differences from the second embodiment will be described.
  • the coding unit 21 determines whether or not the size of the second parent space (for example, parent space 11-4) including the target space is equal to or less than the threshold value “N”. When the size of the second parent space including the target space is equal to or less than the threshold value, the encoding unit 21 has a first parent space (for example, parent space 11-0) adjacent to the second parent space including the target space. Judge whether or not. When there is a first parent space adjacent to the second parent space, the coding unit 21 determines whether or not all the child spaces 12 including points in the first parent space are adjacent to the second parent space. To do.
  • the encoding unit 21 divides the second parent space into the first child space group or the second child space group. Select an arithmetic coding table whose coding target is only the first child space group.
  • the decoding device 3 determines whether or not the size of the second parent space (for example, parent space 11-4) to be decoded is equal to or less than the threshold value. The decoding device 3 determines whether or not a point is included in the child space 12 of the first parent space adjacent to the second parent space to be decoded (point occupancy state). The decoding device 3 has an arithmetic code used for decoding the second parent space to be decoded, depending on whether or not a point is included in the child space 12 of the first parent space adjacent to the second parent space to be decoded. Select an arithmetic table.
  • FIG. 14 is a flowchart showing an operation example of the coding device 2.
  • the coding unit 21 determines whether or not the size of the second parent space including the target space is equal to or less than the threshold value “N” (step S301). When the size of the second parent space including the target space exceeds the threshold value “N” (step S301: NO), the coding unit 21 proceeds to step S305. When the size of the second parent space including the target space is equal to or less than the threshold value “N” (step S301: YES), the coding unit 21 proceeds to step S302.
  • step S302 to step S305 shown in FIG. 14 are the same as the operations from step S201 to step S204 shown in FIG. 13, respectively.
  • the process of assigning a code to the space and the second child space may be changed.
  • the position of the first child space, the position of the target space, and the position of the second child space are continuous, for example, in the x-axis direction.
  • the second parent space may have point group data only on the plane parallel to the direction in which the first parent space and the second parent space are connected.
  • the shorter the distance between the first parent space and the second parent space adjacent to each other the more the second parent space has point group data only on the plane parallel to the direction in which the first parent space and the second parent space are connected.
  • the possibility is high. That is, as the size of the second parent space including the target space becomes smaller, the distance between the first parent space and the second parent space adjacent to each other becomes shorter.
  • the point occupancy state in the second parent space is narrowed down by using the point occupancy state in the first parent space, the point occupancy state in the second parent space is at least one of the choices in the arithmetic coding table. The probability of being equal is high. Therefore, when the sizes of the first parent space and the second parent space are equal to or less than a predetermined threshold value, the coding unit 21 can further improve the coding efficiency.
  • the present invention is applicable to an apparatus (data processing apparatus) for encoding and decoding point cloud data.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

符号化装置は、立体空間内の物体の表面に沿って分布する複数の点の各位置を表す3次元データを取得し、立体空間において点を含む親空間を複数の子空間に分割する分割部と、点が含まれているか否かを表す符号が割り当てられる子空間である対象空間を位置の基準として、対象空間に隣接する第1子空間に点が含まれているか否かに応じて、対象空間と対象空間に隣接する第2子空間とに符号を割り当てる処理を変更する符号化部とを備える。

Description

符号化装置、符号化方法及びプログラム
 本発明は、符号化装置、符号化方法及びプログラムに関する。
 3次元に分布する点群の座標データ(以下「点群データ」という。)を用いて、地形、建物又は美術品等の外形が表現される場合がある。点群データの普及に伴い、点群データの符号量が急速に増加している。そこで、MPEG(Moving Picture Experts Group)では、点群データの圧縮を効率的に行うための点群符号化技術として、PCC(Point Cloud Compression)が検討されている。
 PCCでは、点群データを含む立方体(ブロック)が、8分木(オクツリー:octree)を用いて表現される。PCCでは、8分木は、親空間ごとの8個の子空間を表す。ブロックの各辺の長さは、2(kは、1から「n」までの正の整数)である。点群データの座標は、演算処理の簡略化のため、3次元(x,y,z)の各成分の最小値が0になるように平行移動される。「k」は、ブロックの各辺の長さ「2」が(x,y,z)の各成分の最大値よりも大きい値のうちの最小値に定められる(非特許文献1参照)。
S. Schwarz, et.al , " Emerging MPEG Standards for Point Cloud Compression, " IEEE JOURNAL ON EMERGING AND SELECTED TOPICS IN CIRCUITS AND SYSTEMS, VOL. 9, NO. 1, MARCH 2019, pp.133-148.
 PCCでは、点群データは、各ブロックを含む立体空間の分割構造を用いて圧縮される。立方体の形状を有する親空間の各辺が2等分されることにより、子空間の各辺の長さは、2(k-1)となる。親空間ごとの8(=2)個の子空間を表す8分木において、親空間は親ノードとも呼ばれ、子空間は子ノードとも呼ばれる。
 子空間に点が含まれているか否か(点の占有状態)は、「1:点が含まれている」又は「0:点が含まれていない」を表す1ビットの符号で、子空間ごとに表現される。したがって、親空間ごとの8個の子空間に点が含まれているか否かは、8ビット(10進数で、0から255までの範囲)で表現される。点群を含んでいる子空間の各辺が2等分されることにより、点群を含んでいる子空間ごとの8個の孫空間(子空間の子空間)に点が含まれているか否かが、8ビットで同様に表現される。このような演算の繰り返しによって、立体空間における各親空間(各親ノード)は、自親空間の8個の子空間(各子ノード)に点が含まれているか否かを、8ビットで表現する。なお、点が含まれていない子空間は、それ以上には分割されない。
 PCCでは、親空間ごとの8個の子空間に点が含まれているか否かを表す8ビットのデータは、算術符号化テーブルに基づいて可変長符号化されることにより圧縮される。しかしながら、物体の表面に沿って分布する点群の符号化効率を、符号化装置が向上させることができない場合があった。従来技術では、ブロックに含まれる子空間に点が含まれるか否かに基づき符号化されており、物体の表面の形状に基づく点の存在するパターンが考慮されていない。例えば、物体を構成する第一の面と第二の面との境界の形状や、物体の角(後述する図2に係る物体であれば、第一の面と第二の面と第三の面との境界)が考慮されずに、点群が符号化されている。
 上記事情に鑑み、本発明は、物体の表面に沿って分布する点群の符号化効率を向上させることが可能である符号化装置、符号化方法及びプログラムを提供することを目的としている。
 本発明の一態様は、立体空間内の物体の表面に沿って分布する複数の点の各位置を表す3次元データを取得し、前記立体空間において前記点を含む親空間を複数の子空間に分割する分割部と、前記点が含まれているか否かを表す符号が割り当てられる前記子空間である対象空間を位置の基準として、前記対象空間に隣接する第1子空間に前記点が含まれているか否かに応じて、前記対象空間と前記対象空間に隣接する第2子空間とに前記符号を割り当てる処理を変更する符号化部とを備える符号化装置である。
 本発明により、物体の表面に沿って分布する点群の符号化効率を向上させることが可能である。
第1実施形態における、データ処理装置の構成例を示す図である。 第1実施形態における、点群及び物体の例を示す図である。 第1実施形態における、立体空間に含まれている点群の例を示す図である。 第1実施形態における、親空間及び子空間の例を示す図である。 第1実施形態における、8分木の例を示す図である。 第1実施形態における、互いに隣接する親空間の例を示す図である。 第1実施形態における、符号化装置の動作例を示すフローチャートである。 第2実施形態における、互いに隣接する親空間の例を示す図である。 第2実施形態における、符号化対象の子空間群の第1例を示す図である。 第2実施形態における、符号化対象の子空間群の第2例を示す図である。 第2実施形態における、符号化対象の子空間群の第3例を示す図である。 第2実施形態における、符号化対象の子空間群の第4例を示す図である。 第2実施形態における、符号化装置の動作例を示すフローチャートである。 第3実施形態における、符号化装置の動作例を示すフローチャートである。
 本発明の実施形態について、図面を参照して詳細に説明する。
 (第1実施形態)
 図1は、データ処理装置1の構成例を示す図である。データ処理装置1は、物体の表面に沿って分布する複数の点の座標データ(点群データ)を符号化及び復号する装置である。
 データ処理装置1は、符号化装置2と、復号装置3と、メモリ4と、記憶部5と、バス6とを備える。符号化装置2は、分割部20と、符号化部21とを備える。
 データ処理装置1の一部又は全部は、CPU(Central Processing Unit)等のプロセッサが、不揮発性の記録媒体(非一時的な記録媒体)であるメモリ4又は記憶部5に記憶されたプログラムを実行することにより、ソフトウェアとして実現される。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置などの非一時的な記憶媒体である。プログラムは、電気通信回線を介して送信されてもよい。データ処理装置1の一部又は全部は、例えば、LSI(Large Scale Integration circuit)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)又はFPGA(Field Programmable Gate Array)等を用いた電子回路(electronic circuit又はcircuitry)を含むハードウェアを用いて実現されてもよい。
 符号化装置2は、物体の表面に沿って分布する複数の点の座標データ(点群データ)を符号化する装置である。復号装置3は、物体の表面に沿って分布する複数の点の座標データ(点群データ)を復号する装置である。メモリ4は、例えばプログラムを記憶する。なお、データ処理装置内に含まれている符号化装置と復号装置は個別に用いられてもよい。
 記憶部5は、ブロック(単位立方体)ごとに量子化された点群データを含む3次元データを記憶する。3次元データにおいて、点群データは、立体空間内の物体の表面に沿って分布する複数の点(点群)の各座標を表す。
 記憶部5は、算術符号化テーブルの切り替えデータを記憶してもよい。切り替えデータとは、点群データの符号化の際に選択された算術符号化テーブルを表す識別情報である。切り替えデータは、例えば、点群データの復号の際に使用される。バス6は、データ処理装置1の各機能部間のデータを伝送する。
 図2は、点群100及び物体200の例を示す図である。点群データは、物体の表面形状(外形)を表す。物体200は、特定の物体に限定されない。図2では、物体200は、一例として「木製の机」の一部であるが、車道と歩道の境界のように物体同士が同様の形状を取る場合(すなわち、物体と物体の境界や、物体の面と面との境界)についても、データ処理装置1が適用されることで、より少ない情報量で符号化することが可能である。点群100は、物体200の表面形状を表す。レーザスキャナやLidar(Light Detection and Ranging )は光源から照射されたレーダの反射波に基づき点群データを生成する。そのように取得された点群データはレーダが照射される領域、すなわち物体の表面形状を取得し内部構造は反映されていないため、、空間的に希薄な点の集合となることが多い。
 次に、符号化装置2の詳細を説明する。
 図3は、立体空間10に含まれている点群100の例を示す図である。分割部20は、3次元データを記憶部5から取得する。分割部20は、立体空間10において点を含む親空間11を複数の子空間に分割する処理を、3次元データに対して実行する。
 図4は、親空間11及び子空間12の例を示す図である。分割部20は、互いに直交する3方向(x軸,y軸,z軸)のそれぞれで、親空間11を2等分する。これによって、分割部20は、点を含む親空間11ごとに8個の子空間12を生成する。図4では、立体空間10に含まれている親空間11-m(mは、0以上の整数)は、「子空間12-m-0」から「子空間12-m-7」までの8個の子空間12から構成されている。
 図5は、8分木の例を示す図である。分割された立体空間10は、8分木(オクツリー)を用いて表現される。8分木において、親空間11及び子空間12等の各空間は、各ノードとして表現される。点が含まれている子空間(ノード)は、8個の孫空間(子空間の子空間)に更に分割される。
 符号化部21は、点が含まれているか否かを表す符号が割り当てられる空間(以下「対象空間」という。)に隣接する空間(周囲の空間)に点が含まれているか否かに応じて、対象空間と対象空間に隣接する他の空間とに符号を割り当てる処理を変更する。例えば、第1親空間及び第2親空間が互いに隣接している場合、符号化部21は、対象空間(子空間群)を含む第2親空間に隣接する第1親空間に点が含まれているか否かに応じて、対象空間の符号化に用いられる算術符号化テーブルを選択する。
 なお、親空間内の対象空間は、例えば1個の子空間から構成された空間でもよいし、例えば4個の子空間から構成された空間でもよい。いずれの子空間群から対象空間が構成されているのかは、対象空間を含む親空間に隣接する1個以上の子空間に点が含まれているか否かに応じて定められてもよい。例えば、図5に示された8分木では、立体空間10において、親空間11-0及び親空間11-4が互いに隣接している。算術符号化テーブルは、親空間11-4において1個以上の対象空間を符号化の対象とする。例えば、符号化部21は、対象空間(子空間12-4)を含む親空間11-4に隣接する親空間11-0(対象空間の周囲の親空間)の各子空間12-0に点が含まれているか否かに応じて、親空間11-4の符号化に用いられる算術符号化テーブルを選択してもよい。
 8分木は、例えば、式(1)のように表される。ここで、xからxのそれぞれは、子空間12において点が含まれているか否かを表す符号である。
Figure JPOXMLDOC01-appb-M000001
 点を含む子空間12の位置が、0から255までの値で親空間11ごとに表現される。例えば、親空間11-0のブロック値「f」は、子空間12-0-0及び子空間12-0-1のみが点を含んでいる場合、「f(1,1,0,0,0,0,0,0)」は、10進数で3と表現される。例えば、親空間11-4のブロック値は、親空間11-4の全ての子空間12-4が点を含んでいる場合、「f(1,1,1,1,1,1,1,1)」は、10進数で255と表現される。このようにして、上の親空間(親ノード)から順に、0から255までの値に対して可変長符号化が実行される。
 図6は、互いに隣接する親空間11の例を示す図である。符号化部21は、対象空間を含む第2親空間(親空間11-4)に隣接する第1親空間(親空間11-0)が存在するか否かを判定する。図6では、親空間11-0及び親空間11-4が互いに隣接している。親空間11-0のサイズは、親空間11-4のサイズと同じである。親空間11-0の各子空間は、符号化済である。
 図6では、親空間11-4に隣接する親空間11-0が存在するので、符号化部21は、親空間11-0(第1親空間)における各子空間に点が含まれているか否か(点の占有状態)に応じて、親空間11-4(第2親空間)の符号化用の算術符号化テーブルを選択する。図6では、親空間11-4の符号化用の算術符号化テーブルは、親空間11-4の一部の子空間のみを符号化の対象としてもよい。符号化の対象とされていない子空間(対象空間以外の子空間)に割り当てられる符号は、点が含まれていないことを表す「0」である。すなわち、式(1)における、xからxのうちの少なくとも一つは、0である。例えば、符号化対象である親空間11-4に隣接する親空間11-0(第1親空間)の中心を通るように、かつ、分割された親空間11-0のうちの一方の各子空間が親空間11-4(第2親空間)に隣接するように、親空間11-0が分割された際、親空間11-4に隣接している各子空間のいずれかにおける点の有無と、親空間11-0において親空間11-4に隣接していない各子空間のいずれかにおける点の有無とに基づいて、親空間11-4の点群の符号化に用いられる算術符号化テーブルが選択されてもよい。
 符号化部21は、親空間11-4(第2親空間)に隣接する他の親空間11(第1親空間)が存在しない場合、予め定められた算術符号化テーブルを用いて、親空間11-4を符号化してもよい。予め定められた算術符号化テーブルは、例えば、親空間11-4の全ての子空間を符号化の対象としてもよい。
 復号装置3は、復号対象の第2親空間に隣接する第1親空間の子空間12に点が含まれているか否か(点の占有状態)を判定する。隣接する第1親空間のサイズは、復号対象の第2親空間のサイズと同じである。隣接する第1親空間は、復号済である。
 復号装置3は、復号対象の親空間11に隣接する他の親空間11の子空間12に点が含まれているか否かに応じて、復号対象の親空間11の復号に用いられる算術符号化テーブルを選択する。復号装置3は、例えば、符号化装置2が親空間11の符号化に用いた算術符号化テーブルと同じ算術符号化テーブルを、切り替えデータに基づいて選択する。ここで、復号装置3は、復号対象の親空間11に隣接する他の親空間11の子空間12に点が含まれているか否か(点の占有状態)に応じて、切り替えデータを選択してもよい。
 次に、符号化装置2の動作例を説明する。
 図7は、符号化装置2の動作例を示すフローチャートである。符号化部21は、対象空間を含む第2親空間(例えば、親空間11-4)に隣接する第1親空間(例えば、親空間11-0)が存在するか否かを判定する(ステップS101)。
 第2親空間に隣接する第1親空間が存在する場合(ステップS101:YES)、符号化部21は、第1親空間の各子空間12の符号に応じて、第2親空間に含まれている子空間12に符号を割り当てるための算術符号化テーブルを選択する。例えば、符号化部21は、親空間11-4内の複数の子空間12-4のうちの一部に符号を割り当てるための算術符号化テーブルを選択する(ステップS102)。
 第2親空間に隣接する第1親空間が存在しない場合(ステップS101:NO)、符号化部21は、予め定められた算術符号化テーブルを選択する。予め定められた算術符号化テーブルとは、例えば、親空間11-4内の全ての子空間12-4に符号を割り当てるために、予め定められた算術符号化テーブルである(ステップS103)。
 以上のように、第1実施形態のデータ処理装置1は、分割部20と、符号化部21とを備える。分割部20は、立体空間10内の物体200の表面に沿って分布する複数の点の各位置を表す3次元データ(点群100)を取得する。分割部20は、立体空間10において点を含む親空間11を、複数の子空間12に分割する。符号化部21は、点が含まれているか否かを表す符号が割り当てられる子空間12である対象空間を、位置の基準と定めてもよい。符号化部21は、対象空間に隣接する第1子空間(例えば、親空間11-0の子空間)に点が含まれているか否かに応じて、例えば親空間11-4における対象空間と対象空間に隣接する第2子空間とに符号を割り当てる処理を変更する。親空間11-4における対象空間は、例えば1個の子空間12-4から構成されてもよいし、例えば4個の子空間12-4から構成されてもよい。
 符号を割り当てる処理を符号化部21が変更するとは、例えば、対象空間内の複数の子空間のうちの一部に符号を割り当てるための算術符号化テーブルを、符号化部21が選択することである。対象空間に隣接する子空間群における点群の占有状態に応じて、対象空間における点の占有状態は、特定の占有状態に制限される場合がある。8個の子空間のうちの一部の子空間に符号が割り当てられる場合、例えば、子空間群に割り当てられた符号の長さが8ビットよりも短くなる算術符号化テーブルが選択される。これによって、物体の表面に沿って分布する点群の符号化効率を向上させることが可能である。
 親空間(ノード)ごとに算術符号化テーブルが適切に選択された場合、点群データの符号量が削減されるので、符号化効率が向上する。なお、符号化対象の親空間11に隣接する他の親空間11の子空間12に点が含まれているか否か(点の占有状態)に応じて切り替えデータが適切に選択された場合、切り替えデータの符号量が増えてしまう(切り替えデータがオーバーヘッドになってしまう)ことを、符号化部21は抑制することができる。
 データ処理装置1は、8分木を用いて表現されたブロック(ノード)ごとの点群データを、符号化対象のブロックの周囲における他のブロックの点群データに基づいて推定する。データ処理装置1は、推定結果に基づいて、対象空間に符号を割り当てる処理を変更する。すなわち、データ処理装置1は、符号化対象のブロックごとの点の占有状態を符号化する際に、符号化対象のブロックの周辺のブロック内の点の占有状態を用いる。データ処理装置1は、符号化対象のブロックの周辺のブロック内の点の占有状態にも基づいて、算術符号化テーブルを切り替える。これによって、点群データの符号化効率は向上する。
 符号化部21は、第1親空間の第1子空間(例えば、子空間12-0-5)に隣接する第3子空間(例えば、子空間12-0-7)と第1子空間との両方に点が含まれているか否かに応じて、第2親空間の対象空間(例えば、子空間12-4-1)と第2子空間(例えば、子空間12-4-5)とに符号を割り当てる処理を変更してもよい。
 (第2実施形態)
 第2実施形態では、対象空間を含む親空間11に隣接している他の親空間11における点の占有状態に応じて、対象空間を含む親空間11における点の占有状態の候補を符号化部21が絞り込む点が、第1実施形態と相違する。第2実施形態では、第1実施形態との相違点を説明する。
 図8は、互いに隣接する親空間11の例を示す図である。図8では、親空間11-0及び親空間11-4が互いに隣接している。親空間11-0のサイズは、親空間11-4のサイズと同じである。親空間11-0の各子空間は、符号化済である。親空間11-0及び親空間11-4は、x軸の方向に連続している。
 符号化部21は、対象空間を含む第2親空間(親空間11-4)に隣接する第1親空間(親空間11-0)が存在するか否かを判定する。図8では、親空間11-4に隣接する親空間11-0が存在するので、符号化部21は、親空間11-0(第1親空間)における各子空間12に点が含まれているか否か(点の占有状態)に応じて、親空間11-4(第2親空間)の符号化用の算術符号化テーブルを選択する。
 例えば、符号化部21は、親空間11-0内で点を含む全ての子空間12-0が親空間11-4に隣接しているか否かを判定する。親空間11-0内で点を含む全ての子空間12-0は、yz平面に対して平行に分布していてもよい。図8では、親空間11-0内で点を含む全ての子空間12-0が親空間11-4に隣接しているので、符号化部21は、親空間11-4を2等分する第1子空間群又は第2子空間群のうちの第1子空間群のみを符号化対象とする算術符号化テーブルを選択する。例えば、符号化部21は、親空間11-4をxy平面で2等分する第1子空間群(子空間12-4-1、子空間12-4-3、子空間12-4-5及び子空間12-4-7)のみを符号化対象とする算術符号化テーブルを選択する。このように、選択された算術符号化テーブルに対応付けられた対象空間(第1子空間群)は、x軸方向に平行であり、かつ、親空間11-4を2等分するxy平面を横切らない。
 図9は、符号化対象の子空間群の第1例を示す図である。親空間11-4において、算術符号化テーブルによって対象空間として選択されることが可能な子空間群は、親空間11-0のz軸方向における長さ「2C」の辺の中点を通るxy平面で親空間11-4が2等分された領域となる。なお、この場合の中点とは空間の中心を示す。例えば、親空間11-4において全ての子空間と接する点のことをいう。図9では、対象空間として選択されることが可能な子空間群は、子空間12-4-1、子空間12-4-3、子空間12-4-5及び子空間12-4-7である。親空間11-0において親空間11-4に隣接する領域に点が含まれている場合(子空間12-0-4から12-0-7までの各子空間のいずれかに点が含まれている場合)、2等分された親空間11-4におけるz成分が大きい領域(子空間12-4-1,3,5,7)と、2等分された親空間11-4におけるz成分の小さい領域とのうちのいずれか一方のみに、点が存在する可能性が高い。このため、親空間11-4における全ての子空間に点が存在するか否かを示す符号が用いられる代わりに、2等分された親空間11-4の半分のうちのいずれに点が存在するかを示す符号と、2等分された親空間11-4のうち点が存在する半分におけるいずれの子空間に点が存在するかを示す符号とが用いられてもよい。さらに、親空間11-0における親空間11-4に隣接している領域(子空間12-0-4から12-0-7までのいずれか)に点が含まれている場合、かつ、親空間11-4に隣接していない領域に点が含まれていない(親空間11-0に属する子空間のうち、子空間12-0-4から子空間12-0-7まで以外のいずれの子空間にも点が含まれていない)場合という、アンド(and)条件が追加されてもよい。
 図9では、データの欠損を伴う圧縮が実行される場合、子空間12-4-1、子空間12-4-3、子空間12-4-5及び子空間12-4-7以外の子空間12に点(割り当てられる符号)が存在しないとされても良いので、算術符号化テーブルを用いて表現される符号(点の占有状態)のパターン数は2であり、さらに親空間11-4を二等分した領域のうちいずれの領域に点が存在するかを示す符号を加え、結果255(=2-1)通りよりも少なく、31(=2-1)通りで表現することができる。符号化の対象とされていない子空間(対象空間以外の子空間)に割り当てられる符号は、点が含まれていないことを表す「0」である。
 図10は、符号化対象の子空間群の第2例を示す図である。親空間11-4において、算術符号化テーブルによって対象空間として選択されることが可能な子空間群は、親空間11-0のz軸方向における長さ「2C」の辺の中点を通るxy平面で親空間11-4が2等分された領域となる。図10では、対象空間として選択されることが可能な子空間群は、子空間12-4-0、子空間12-4-2、子空間12-4-4及び子空間12-4-6である。
 図10では、データの欠損を伴う圧縮が実行される場合、子空間12-4-0、子空間12-4-2、子空間12-4-4及び子空間12-4-6以外の子空間12に点(割り当てられる符号)が存在しないとされても良いので、算術符号化テーブルを用いて表現される符号(点の占有状態)のパターン数は、255(=2-1)通りよりも少なく、図9の例と同様に31(=2-1)通りでもよい。符号化の対象とされていない子空間(対象空間以外の子空間)に割り当てられる符号は、点が含まれていないことを表す「0」である。
 図11は、符号化対象の子空間群の第3例を示す図である。親空間11-4において、算術符号化テーブルによって対象空間として選択されることが可能な子空間群は、親空間11-0のy軸方向における長さ「2C」の辺の中点を通るxz平面で親空間11-4が2等分された領域となる。なお、この場合の中点とは空間の中心を示す。例えば、親空間11-4において全ての子空間と接する点のことをいう。図11では、対象空間として選択されることが可能な子空間群は、子空間12-4-0、子空間12-4-1、子空間12-4-4及び子空間12-4-5である。親空間11-0において親空間11-4に隣接する領域に点が含まれている場合(子空間12-0-4から12-0-7までの各子空間のいずれかに点が含まれている場合)、2等分された親空間11-4におけるy成分が大きい領域と、2等分された親空間11-4におけるy成分の小さい領域(子空間12-4-0,1,4,5)とのうちのいずれか一方のみに、点が存在する可能性が高い。このため、親空間11-4における全ての子空間に点が存在するか否かを示す符号が用いられる代わりに、2等分された親空間11-4の半分のうちのいずれに点が存在するかを示す符号と、2等分された親空間11-4のうち点が存在する半分におけるいずれの子空間に点が存在するかを示す符号とが用いられてもよい。さらに、親空間11-0における親空間11-4に隣接している領域(子空間12-0-4から12-0-7までのいずれか)に点が含まれている場合、かつ、親空間11-4に隣接していない領域に点が含まれていない(親空間11-0に属する子空間のうち、子空間12-0-4から子空間12-0-7まで以外のいずれの子空間にも点が含まれていない)場合という、アンド(and)条件が追加されてもよい。
 図11では、データの欠損を伴う圧縮が実行される場合、子空間12-4-0、子空間12-4-1、子空間12-4-4及び子空間12-4-5以外の子空間12に点(割り当てられる符号)が存在しないとされても良いので、算術符号化テーブルを用いて表現される符号(点の占有状態)のパターン数は、255(=2-1)通りよりも少なく、親空間11-4が二等分された領域のうちいずれの領域に点が存在するかを示す符号と、子空間12-4-0、1、4、5のそれぞれにおける点が存在するか否かを示す符号と、が加えられて、31(=2-1)通りでもよい。
 図12は、符号化対象の子空間群の第4例を示す図である。親空間11-4において、算術符号化テーブルによって対象空間として選択されることが可能な子空間群は、親空間11-0のy軸方向における長さ「2C」の辺の中点を通るxz平面で親空間11-4が2等分された領域となる。図12では、対象空間として選択されることが可能な子空間群は、子空間12-4-2、子空間12-4-3、子空間12-4-6及び子空間12-4-7である。
 図12では、データの欠損を伴う圧縮が実行される場合、子空間12-4-2、子空間12-4-3、子空間12-4-6及び子空間12-4-7以外の子空間12に点(割り当てられる符号)が存在しないとされても良いので、算術符号化テーブルを用いて表現される符号(点の占有状態)のパターン数は、255(=2-1)通りよりも少なく、親空間11-4が二等分された領域のうちいずれの領域に点が存在するかを示す符号と、子空間12-4-2、3、6、7のそれぞれにおける点が存在するか否かを示す符号と、が加えられ、31(=2-1)通りでもよい。
 算術符号化テーブルを用いて表現される符号(点の占有状態)のパターン数は、図9及び図10の例に対応する場合に「2-1」通りとなり、図11及び図12の例に対応する場合に「2-1」通りとなる。図9から図12の全ての例に対応する場合、「図9及び図10」又は「図11及び図12」のように2分割されたか否かを示す符号が加えられ、パターン数は「2-1通り」となってもよい。
 符号化部21は、符号化結果を含む符号化ストリームの全体又は部分に、フラグデータを追加してもよい。フラグデータの値が0である場合、フラグデータは、例えば、図9又は図10に示されたxy平面を表す。フラグデータの値が1である場合、フラグデータは、例えば、図11又は図12に示されたxz平面を表す。符号化部21は、xy平面とxz平面とのうちのいずれの平面を採用するかを、符号化部21が算術符号化テーブル(切り替えデータ)を定める際に決定してもよい。
 復号装置3は、復号対象の親空間11に隣接する他の親空間11の子空間12に点が含まれているか否かに応じて、復号対象の親空間11の復号に用いられる算術符号化テーブルを選択する。復号装置3は、例えば、符号化装置2が親空間11の符号化に用いた算術符号化テーブルと同じ算術符号化テーブルを、算術符号化テーブルに基づいて選択する。ここで、復号装置3は、復号対象の親空間11に隣接する他の親空間11の子空間12に点が含まれているか否か(点の占有状態)に応じて、符号化装置2と同様に切り替えデータを選択してもよい。
 次に、符号化装置2の動作例を説明する。
 図13は、符号化装置2の動作例を示すフローチャートである。符号化部21は、対象空間を含む第2親空間(例えば、親空間11-4)に隣接する第1親空間(例えば、親空間11-0)が存在するか否かを判定する(ステップS201)。
 第2親空間に隣接する第1親空間が存在する場合(ステップS201:YES)、符号化部21は、第1親空間内で点を含む全ての子空間12が第2親空間に隣接しているか否かを判定する(ステップS202)。
 第1親空間内で点を含む全ての子空間12が第2親空間に隣接している場合(ステップS202:YES)、符号化部21は、第2親空間を分割する第1子空間群又は第2子空間群のうちの第1子空間群のみを符号化対象とする算術符号化テーブルを選択する。例えば、符号化部21は、親空間11-4をxy平面で2等分する子空間群(子空間12-4-1、子空間12-4-3、子空間12-4-5及び子空間12-4-7)のみを符号化対象とする算術符号化テーブルを選択してもよい(ステップS202)。
 第2親空間に隣接する第1親空間が存在しない場合(ステップS201:NO)、符号化部21は、予め定められた算術符号化テーブルを選択する(ステップS204)。第1親空間内で点を含むいずれかの子空間12が第2親空間に隣接していない場合(ステップS202:NO)、符号化部21は、ステップS204に処理を進める。
 以上のように、第2実施形態では、第1親空間(例えば、親空間11-0)及び第2親空間(例えば、親空間11-4)は、互いに隣接している。符号が割り当てられる対象空間(例えば、子空間12-4-1)は、第2親空間を分割する第1子空間群(例えば、子空間12-4-1、子空間12-4-3、子空間12-4-5及び子空間12-4-7)又は第2子空間群のうちの第1子空間群に含まれている。第1子空間群は、第2親空間において第1親空間に隣接する子空間(例えば、子空間12-4-3)を含む。第1親空間において第2親空間(例えば、親空間11-4)に隣接する各子空間(例えば、子空間12-0-4、子空間12-0-5、子空間12-0-6及び子空間12-0-7)のいずれかに点が含まれており、第1親空間において第2親空間に隣接していない各子空間(例えば、子空間12-0-0、子空間12-0-1、子空間12-0-2及び子空間12-0-3)のいずれにも点が含まれていない場合、符号化部21は、第1子空間群に符号を割り当てる処理を変更する。
 これによって、物体の表面に沿って分布する点群の符号化効率を向上させることが可能である。
 同じサイズの第1親空間及び第2親空間が互いに隣接している場合、第1親空間の点群データと第2親空間の点群データとは、物体における同じ表面の各領域を表している可能性がある。また、同じサイズの第1親空間及び第2親空間が隣接している面のみに第1親空間が点群データを有している場合には、第1親空間の点群データと第2親空間の点群データとは、物体において角を構成する各面を表している可能性がある。例えば、図2に例示された物体200(木製の机)では、物体200の側面を例えば親空間11-0が表現し、物体200の天面を例えば親空間11-4が表現している可能性がある。つまり、同じサイズの第1親空間及び第2親空間が互いに点群データを持ち、第1親空間及び第2親空間の隣接面のみに第1親空間が点群データを持つ場合、第1親空間及び第2親空間が連なる方向(例えば、x方向)に平行な面(例えば、xy平面又はxz平面)のみに、第2親空間が点群データを持っている可能性が高い。
 このように、符号化部21は、隣接ノードの点群データ占有状態に応じて、対象空間における点の占有状態の候補を絞り込む。これによって、物体の面と面との境界などにおける親空間(ノード)の算術符号化テーブルは、符号語が従来よりも短くなるように生成される。符号語が従来よりも短いことが期待される上記の算術符号化テーブルに基づいて点群データが符号化されることから、点群データの符号量が削減されるので、符号化効率が向上する。
 なお、データの欠損を伴わない圧縮(ロスレス圧縮)を符号化部21が実行するためには、例えば「これらの選択肢以外」という項目が、算術符号化テーブルに対応付けられてもよい。「これらの選択肢以外」という項目が符号化部21によって選択された場合、符号化部21は、親空間11における任意の子空間群(選択肢)を、算術符号化テーブルの対象として選択する。
 (第3実施形態)
 第3実施形態では、立体空間10の分割が繰り返されて、対象空間(子空間12)を含む親空間11のサイズが所定閾値「N」以下となっている点が、第2実施形態と相違する。第3実施形態では、第2実施形態との相違点を説明する。
 符号化部21は、対象空間を含む第2親空間(例えば、親空間11-4)のサイズが閾値「N」以下であるか否かを判定する。対象空間を含む第2親空間のサイズが閾値以下である場合、符号化部21は、対象空間を含む第2親空間に隣接する第1親空間(例えば、親空間11-0)が存在するか否かを判定する。第2親空間に隣接する第1親空間が存在する場合、符号化部21は、第1親空間内で点を含む全ての子空間12が第2親空間に隣接しているか否かを判定する。第1親空間内で点を含む全ての子空間12が第2親空間に隣接している場合、符号化部21は、第2親空間を分割する第1子空間群又は第2子空間群のうちの第1子空間群のみを符号化対象とする算術符号化テーブルを選択する。
 復号装置3は、復号対象の第2親空間(例えば、親空間11-4)のサイズが閾値以下であるか否かを判定する。復号装置3は、復号対象の第2親空間に隣接する第1親空間の子空間12に点が含まれているか否か(点の占有状態)を判定する。復号装置3は、復号対象の第2親空間に隣接する第1親空間の子空間12に点が含まれているか否かに応じて、復号対象の第2親空間の復号に用いられる算術符号化テーブルを選択する。
 図14は、符号化装置2の動作例を示すフローチャートである。符号化部21は、対象空間を含む第2親空間のサイズが閾値「N」以下であるか否かを判定する(ステップS301)。対象空間を含む第2親空間のサイズが閾値「N」を超えている場合(ステップS301:NO)、符号化部21は、ステップS305に処理を進める。対象空間を含む第2親空間のサイズが閾値「N」以下である場合(ステップS301:YES)、符号化部21は、ステップS302に処理を進める。
 図14に示されたステップS302からステップS305までの動作は、それぞれ図13に示されたステップS201からステップS204までの動作と同様である。
 以上のように、第3実施形態の符号化部21は、対象空間(例えば、子空間12-4-1)を含む親空間11-4のサイズ(=2)が予め定められた閾値「N」以下である場合、親空間11-4に隣接する親空間11-0の第1子空間(例えば、子空間12-0-5)に点が含まれているか否かに応じて、対象空間と第2子空間(例えば、子空間12-4-5)とに符号をそれぞれ割り当てる処理を変更してもよい。第1子空間の位置と、対象空間の位置と、第2子空間の位置とは、例えばx軸方向に連続している。
 これによって、物体の表面に沿って分布する点群の符号化効率を向上させることが可能である。
 第2実施形態において説明されているように、第1親空間及び第2親空間が連なる方向に平行な面のみに、第2親空間が点群データを持つ場合がある。互いに隣接している第1親空間及び第2親空間の間の距離が短いほど、第1親空間及び第2親空間が連なる方向に平行な面のみに第2親空間が点群データを持つ可能性が高くなる。すなわち、対象空間を含む第2親空間のサイズが小さくなるほど、互いに隣接している第1親空間及び第2親空間の間の距離は短くなる。第1親空間における点の占有状態を用いて、第2親空間における点の占有状態が絞り込まれた場合、第2親空間における点の占有状態が算術符号化テーブルの選択肢のうちの少なくとも一つと等しくなる確率は高くなる。このため、第1親空間及び第2親空間のサイズが所定閾値以下である場合、符号化部21は、符号化効率を更に向上させることが可能である。
 以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
 本発明は、点群データを符号化及び復号する装置(データ処理装置)に適用可能である。
1…データ処理装置、2…符号化装置、3…復号装置、4…メモリ、5…記憶部、6…バス、10…立体空間、11…親空間、12…子空間、20…分割部、21…符号化部、100…点群、200…物体

Claims (7)

  1.  立体空間内の物体の表面に沿って分布する複数の点の各位置を表す3次元データを取得し、前記立体空間において前記点を含む親空間を複数の子空間に分割する分割部と、
     前記点が含まれているか否かを表す符号が割り当てられる前記子空間である対象空間を位置の基準として、前記対象空間に隣接する第1子空間に前記点が含まれているか否かに応じて、前記対象空間と前記対象空間に隣接する第2子空間とに前記符号を割り当てる処理を変更する符号化部と
     を備える符号化装置。
  2.  前記符号化部は、前記第1子空間に隣接する第3子空間と前記第1子空間との両方に前記点が含まれているか否かに応じて、前記対象空間と前記第2子空間とに前記符号を割り当てる処理を変更する、請求項1に記載の符号化装置。
  3.  複数の前記親空間のうちの第1親空間及び第2親空間は、互いに隣接し、
     前記対象空間は、前記第2親空間を分割する第1子空間群又は第2子空間群のうちの前記第1子空間群に含まれ、
     前記第1子空間群は、前記第2親空間において前記第1親空間に隣接する前記子空間を含む、請求項1又は請求項2に記載の符号化装置。
  4.  前記符号化部は、前記第1親空間において前記第2親空間に隣接する各子空間のいずれかに前記点が含まれており、前記第1親空間において前記第2親空間に隣接していない各子空間のいずれにも前記点が含まれていない場合、前記第1子空間群に前記符号を割り当てる処理を変更する、請求項3に記載の符号化装置。
  5.  前記符号化部は、前記対象空間を含む親空間のサイズが予め定められた閾値以下である場合、前記第1子空間に前記点が含まれているか否かに応じて、前記対象空間と前記第2子空間とに前記符号をそれぞれ割り当てる処理を変更する、請求項1から請求項3のいずれか一項に記載の符号化装置。
  6.  符号化装置が実行する符号化方法であって、
     立体空間内の物体の表面に沿って分布する複数の点の各位置を表す3次元データを取得し、前記立体空間において前記点を含む親空間を複数の子空間に分割するステップと、
     前記点が含まれているか否かを表す符号が割り当てられる前記子空間である対象空間を位置の基準として、前記対象空間に隣接する第1子空間に前記点が含まれているか否かに応じて、前記対象空間と前記対象空間に隣接する第2子空間とに前記符号を割り当てる処理を変更するステップと
     を含む符号化方法。
  7.  請求項1から請求項5のいずれか一項に記載の符号化装置としてコンピュータを機能させるためのプログラム。
PCT/JP2019/024976 2019-06-24 2019-06-24 符号化装置、符号化方法及びプログラム WO2020261334A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/621,436 US20220358684A1 (en) 2019-06-24 2019-06-24 Encoding apparatus, encoding method, and program
PCT/JP2019/024976 WO2020261334A1 (ja) 2019-06-24 2019-06-24 符号化装置、符号化方法及びプログラム
JP2021528661A JP7125649B2 (ja) 2019-06-24 2019-06-24 符号化装置、符号化方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/024976 WO2020261334A1 (ja) 2019-06-24 2019-06-24 符号化装置、符号化方法及びプログラム

Publications (1)

Publication Number Publication Date
WO2020261334A1 true WO2020261334A1 (ja) 2020-12-30

Family

ID=74061525

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/024976 WO2020261334A1 (ja) 2019-06-24 2019-06-24 符号化装置、符号化方法及びプログラム

Country Status (3)

Country Link
US (1) US20220358684A1 (ja)
JP (1) JP7125649B2 (ja)
WO (1) WO2020261334A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235210A (ja) * 2004-02-17 2005-09-02 Samsung Electronics Co Ltd 3次元体積データの符号化/復号化方法及び装置
JP2005259139A (ja) * 2004-03-08 2005-09-22 Samsung Electronics Co Ltd 適応的2n進ツリーの生成方法、ならびにそれを利用して3次元体積データを符号化/復号化する方法および装置
WO2019082837A1 (ja) * 2017-10-24 2019-05-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3745355A4 (en) * 2018-01-26 2021-03-24 Panasonic Intellectual Property Corporation of America THREE-DIMENSIONAL DATA ENCODING PROCESS, THREE-DIMENSIONAL DATA DECODING PROCESS, THREE-DIMENSIONAL DATA ENCODING DEVICE AND TRIDIMENSIONAL DATA DECODING DEVICE

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235210A (ja) * 2004-02-17 2005-09-02 Samsung Electronics Co Ltd 3次元体積データの符号化/復号化方法及び装置
JP2005259139A (ja) * 2004-03-08 2005-09-22 Samsung Electronics Co Ltd 適応的2n進ツリーの生成方法、ならびにそれを利用して3次元体積データを符号化/復号化する方法および装置
WO2019082837A1 (ja) * 2017-10-24 2019-05-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Also Published As

Publication number Publication date
JP7125649B2 (ja) 2022-08-25
US20220358684A1 (en) 2022-11-10
JPWO2020261334A1 (ja) 2020-12-30

Similar Documents

Publication Publication Date Title
CN111699683B (zh) 一种点云编码方法、点云解码方法及相关设备
EP3991437B1 (en) Context determination for planar mode in octree-based point cloud coding
US10992947B2 (en) Planar mode in octree-based point cloud coding
US20230046917A1 (en) In-tree geometry quantization of point clouds
WO2021199781A1 (ja) 点群復号装置、点群復号方法及びプログラム
US11417030B2 (en) Context modeling of occupancy coding for point cloud coding
WO2022138046A1 (ja) 点群復号装置、点群復号方法及びプログラム
CN113826029A (zh) 点云编解码中对复制点和孤立点进行编码的方法
CN114731161A (zh) 用于点云压缩中的树切换的方法和设备
WO2022054358A1 (ja) 点群復号装置、点群復号方法及びプログラム
WO2021140930A1 (ja) 情報処理装置および方法
WO2020261334A1 (ja) 符号化装置、符号化方法及びプログラム
JP5933742B2 (ja) 反復構造発見ベースの3dモデル圧縮のビットストリームを生成する方法及び装置
CN113315977A (zh) 点云信息解码的方法和装置
CN115379191B (zh) 一种点云解码方法、点云编码方法及相关设备
Courbet et al. Random accessible hierarchical mesh compression for interactive visualization
Jang et al. Progressive vector compression for high-accuracy vector map data
WO2023127052A1 (ja) 復号装置、符号化装置、復号プログラム、符号化プログラム、復号方法および符号化方法
WO2023248576A1 (ja) 三次元点生成方法、三次元点生成装置、復号装置、符号化装置、復号方法及び符号化方法
JP2023053827A (ja) 点群復号装置、点群復号方法及びプログラム
WO2023135967A1 (ja) 三次元データ復号方法、三次元データ符号化方法、三次元データ復号装置、及び三次元データ符号化装置
WO2023277128A1 (ja) 点群復号装置、点群復号方法及びプログラム
WO2022107284A1 (ja) 秘匿化装置、秘匿化方法及びプログラム
Sundlie Octree-Based Compression for Geiger-Mode LiDAR
WO2023244551A1 (en) Color component coding method, encoder and decoder

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: 19935184

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021528661

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19935184

Country of ref document: EP

Kind code of ref document: A1