WO2019065298A1 - 情報処理装置および方法 - Google Patents

情報処理装置および方法 Download PDF

Info

Publication number
WO2019065298A1
WO2019065298A1 PCT/JP2018/034130 JP2018034130W WO2019065298A1 WO 2019065298 A1 WO2019065298 A1 WO 2019065298A1 JP 2018034130 W JP2018034130 W JP 2018034130W WO 2019065298 A1 WO2019065298 A1 WO 2019065298A1
Authority
WO
WIPO (PCT)
Prior art keywords
correlation
voxel data
unit
information
block
Prior art date
Application number
PCT/JP2018/034130
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 JP2019544580A priority Critical patent/JP7268598B2/ja
Priority to CN201880061384.4A priority patent/CN111108529B/zh
Priority to EP18861281.6A priority patent/EP3690823A4/en
Priority to KR1020207007639A priority patent/KR102521801B1/ko
Priority to US16/649,166 priority patent/US11468603B2/en
Publication of WO2019065298A1 publication Critical patent/WO2019065298A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Definitions

  • the present disclosure relates to an information processing apparatus and method, and more particularly to an information processing apparatus and method capable of suppressing a reduction in subjective image quality.
  • DAG Directed Acyclic Graph
  • Octree pattern tree structure of Octree encoded data
  • PSNR Peak signal-to-noise ratio
  • This indication is made in view of such a situation, and enables it to control reduction of a subjective image quality.
  • the distribution pattern of voxel data to be compared It is an information processing apparatus provided with the correlation degree calculation part which calculates a correlation degree.
  • the distribution pattern of voxel data to be compared is an information processing method for calculating the degree of correlation.
  • information can be processed.
  • reduction in subjective image quality can be suppressed.
  • ⁇ Point cloud> Conventionally, there has been data such as a point cloud representing a three-dimensional structure based on position information and attribute information of a point group, and data such as meshes that define a three-dimensional shape using polygons, composed of vertices, edges, and faces. .
  • a three-dimensional structure as shown in A of FIG. 1 is expressed as a set (point group) of a large number of points (point data) as shown in B of FIG. That is, the data of the point cloud is composed of position information and attribute information (for example, color etc.) of each point of this point group. Therefore, while the data structure is relatively simple, an arbitrary three-dimensional structure can be represented with sufficient accuracy by using a sufficiently large number of points.
  • a voxel is a data structure for quantizing position information to be encoded.
  • FIG. 1 An example of how redundancy is reduced by this DAG will be described with reference to FIG.
  • Each square of this binary tree structure indicates a node. Arrows between the nodes indicate pointers connecting the nodes.
  • the binary tree structure of A of FIG. 2 three types of nodes of white, black and gray exist. Each color shows a value. That is, nodes of three types of values exist in the binary tree structure of A of FIG.
  • nodes there are two types of nodes, white and black. That is, redundancy occurs between black nodes and white nodes. Therefore, as shown in B of FIG. 2, one black node and one white node are left, and the other overlapping nodes are deleted.
  • the node at the next higher level is connected to the left black node or white node. That is, among the nodes of the second level from the bottom, the nodes connected to the black node of the lowest level are rebound to the remaining black nodes and are connected to the white node of the lowest level The node is re-bound to the left white node. More specifically, the pointer (arrow) of each node at the second level from the bottom is updated to point to the left black or white node.
  • nodes at the lowest level are reduced to two. Since the node values do not change, the C binary tree structure of FIG. 2 is substantially equivalent to the binary tree structure of A of FIG. That is, they are reversibly compressed.
  • the binary tree structure of D of FIG. 2 is equivalent to the binary tree structure of A of FIG.
  • DAG makes it possible to reversibly compress binary tree structure information.
  • This DAG (effective directivity graph) can also be applied to an Octree pattern, which is a structure of Octree encoded voxel data.
  • Octree pattern As shown in FIG. 3A, of the higher level 2 ⁇ 2 ⁇ 2 voxels, voxels for which point data is present are further increased to 2 ⁇ 2 ⁇ 2 at the level one level lower. It is divided.
  • voxels shown in gray are shown to be voxels in which point data exist. Of the higher level node 10 voxels, two are gray voxels. Therefore, these two voxels are set as nodes 11 and 12 at a level one level lower, and are further divided into 2 ⁇ 2 ⁇ 2 voxels.
  • B of FIG. 3 shows an outline of the data structure of such an Octree pattern.
  • the node 20 indicates a higher node
  • the nodes 21 and 22 indicate nodes of a level lower than that of the node 20.
  • the squares in each node indicate data of each voxel.
  • the data of one voxel is, for example, composed of one byte. That is, data of one node is constituted by 8 bytes.
  • white and hatched two types of data, white and hatched, exist.
  • White data indicates voxel data in which point data does not exist
  • hatched data indicates data in which point data exists.
  • Each hatched data is provided with a pointer indicating an address at which data of a node one level lower is present. That is, only one voxel where point data is present forms a node one level lower.
  • the data structure of nodes is similar at each level.
  • the lowermost data is not provided with a pointer indicating an address at which lower-level data is present. In this description, only the position information is described, and the description of the attribute information is omitted.
  • the patterns of the data of each voxel match between the nodes 21 and 22. That is, the distribution patterns of the voxel data values at both nodes are identical to each other. That is, since the same data exists in a plurality of addresses, it is redundant. Therefore, by performing DAG, these two nodes are merged into one as shown in FIG. For example, node 21 is deleted, and the pointer of the data of the second voxel from the left of node 20 is updated to indicate the address of node 22. By doing this, it is possible to reduce this level of data redundancy.
  • the redundancy can be reduced at each level as well. That is, as shown in FIG. 5, portions having the same data structure can be merged similarly for a plurality of levels.
  • DAG is mainly aimed at reducing the amount of information of huge CG data (data having hundreds of millions of vertex information) generated from a computer model.
  • the object is to compress a large amount of data with low noise at a high compression rate.
  • the resolution is relatively low (for example, about one million points of vertex information)
  • the probability of occurrence of the same Octree pattern is reduced, and there is a possibility that sufficient compression efficiency can not be obtained. That is, there was a possibility that the coding efficiency would be reduced.
  • DAG is processing intended to reduce the capacity when data is stored in a recording medium or stored in a memory when processing with a GPU or the like, and data transmission is not considered. Therefore, the data structure etc. at the time of transmission are not defined.
  • voxel data 60 (voxelized three-dimensional data)
  • the distribution patterns of the values of voxel data coincide with each other as in block 61 and block 62 consisting of a predetermined number of voxels Not only if (as in DAG) but also if the distributions of voxel data approximate each other as in block 61 (block 62) and block 63 (the distribution patterns of both blocks are considered identical) To do.
  • the correlation strength of the distribution pattern of the values of voxel data among the blocks is obtained, and the blocks are merged as described above based on the strength of the correlation.
  • the amount of information can be reduced.
  • merging can be performed even when distribution patterns are similar, the amount of information can be reduced compared to the case of DAG. That is, reduction in coding efficiency can be suppressed.
  • the distribution pattern of voxel data values is compared for blocks of 4 ⁇ 4 ⁇ 4 voxels, but the size (number of voxels) of the block to be compared is arbitrary. , 4 ⁇ 4 ⁇ 4.
  • the present technology will be described using point clouds as data to be encoded by way of example, but the present technology is not limited to point clouds, but indicates a three-dimensional structure such as a mesh, for example.
  • the present invention can be applied to any coding target as long as it is data that can be Also, this encoding target may be a moving image or a still image.
  • FIG. 7 is a block diagram illustrating an exemplary main configuration of a coding device which is an embodiment of an information processing device to which the present technology is applied.
  • the coding apparatus 100 shown in FIG. 7 codes point cloud data input as a coding target using voxels, and outputs the obtained coded data and the like. At this time, the encoding apparatus 100 performs this encoding in a method to which the present technology is applied as described below.
  • the encoding apparatus 100 includes a control unit 101, a preprocessing unit 111, a bounding box setting unit 112, a voxel setting unit 113, a signal sequence generation unit 114, and an encoding unit 115.
  • the control unit 101 performs processing related to control of each processing unit in the encoding device 100. For example, the control unit 101 controls execution or skip (omission) of processing by each processing unit. For example, the control unit 101 performs such control based on predetermined control information. By doing this, the control unit 101 can suppress the execution of unnecessary processing, and can suppress an increase in load.
  • the control unit 101 may have any configuration.
  • the control unit 101 includes a central processing unit (CPU), a read only memory (ROM), a random access memory (RAM), and the like.
  • the processing may be performed by loading a stored program or data into the RAM and executing it.
  • the preprocessing unit 111 performs predetermined processing as preprocessing on an encoding target (data of point cloud) which is controlled by the control unit 101 and input to the encoding apparatus 100, and the processed data is bounded box
  • the setting unit 112 is supplied.
  • control unit 101 causes the preprocessing unit 111 to execute preprocessing when the execution of preprocessing is permitted (not prohibited) according to control information that permits or prohibits the execution of preprocessing. Also, for example, the control unit 101 is permitted (not prohibited) to execute the preprocessing according to the control information indicating the range of the encoding target to be the target of permission or prohibition of the execution of the preprocessing. Then, the pre-processing unit 111 executes the pre-processing. Furthermore, for example, the control unit 101 causes the pre-processing unit 111 to execute the process of which the execution is permitted (not prohibited) according to the control information specifying the process content for permitting or prohibiting the execution. By doing this, the execution of unnecessary pre-processing can be suppressed, and an increase in load can be suppressed.
  • the preprocessing unit 111 may perform processing for reducing noise as preprocessing, or may perform processing for changing the resolution (the number of points). Also, for example, the arrangement of each point may be updated so as to equalize the density of the point group or give a desired bias.
  • non-point cloud data such as image information having depth information is input to the encoding apparatus 100, and the preprocessing unit 111 converts the input data into point cloud data as pre-processing. It may be converted.
  • the pre-processing unit 111 may have any configuration, for example, the pre-processing unit 111 has a CPU, a ROM, a RAM, etc., and the CPU loads programs and data stored in the ROM etc. into the RAM and executes them. Pre-processing may be performed by performing the processing.
  • the bounding box setting unit 112 is controlled by the control unit 101, and performs processing relating to setting of the bounding box for normalizing position information to be encoded.
  • the control unit 101 sets the bounding box in the bounding box setting unit 112.
  • the control unit 101 is permitted (not prohibited) to set the bounding box.
  • the bounding box setting unit 112 sets the bounding box for the target.
  • the control unit 101 causes the bounding box setting unit 112 to use bound (not prohibited) parameters according to control information on permission or prohibition of parameters used for setting the bounding box. To set By doing this, it is possible to suppress the setting of unnecessary bounding boxes and the use of unnecessary parameters, and it is possible to suppress an increase in load.
  • the bounding box setting unit 112 sets a bounding box for each object to be encoded. For example, as shown in A of FIG. 8, when the object 131 or the object 132 is represented by data of point cloud, the bounding box setting unit 112, as shown in B of FIG. The bounding box 141 and the bounding box 142 are set to include the objects 132 respectively. Referring back to FIG. 7, when the bounding box is set, the bounding box setting unit 112 supplies the voxel setting unit 113 with information on the bounding box.
  • the bounding box setting unit 112 may have any configuration.
  • the CPU has a CPU, a ROM, a RAM, etc., and the CPU loads a program or data stored in the ROM or the like into the RAM.
  • the processing related to the setting of the bounding box may be performed by executing the processing.
  • the voxel setting unit 113 is controlled by the control unit 101 to perform processing regarding setting of voxels for quantizing position information to be encoded.
  • the control unit 101 when the setting of the voxel is permitted (not prohibited) according to the control information for permitting or prohibiting the setting of the voxel, the control unit 101 causes the voxel setting unit 113 to set the voxel. Also, for example, according to the control information indicating the range of the encoding target to be the target of permission or prohibition of the setting of the voxel, the control unit 101 is permitted (not prohibited) to be encoded for the setting of the voxel On the other hand, the voxel setting unit 113 sets the voxel.
  • control unit 101 causes the voxel setting unit 113 to set the voxel using the permitted (not prohibited) parameter according to the control information on permission or prohibition of the parameter used for setting the voxel. .
  • unnecessary setting of voxels and use of unnecessary parameters can be suppressed, and an increase in load can be suppressed.
  • the voxel setting unit 113 sets a voxel in the bounding box set by the bounding box setting unit 112. For example, as illustrated in C of FIG. 8, the voxel setting unit 113 divides the bounding box 141 to set the voxel 151. That is, the voxel setting unit 113 quantizes (that is, voxels) point cloud data in the bounding box with voxels. When there are a plurality of bounding boxes, the voxel setting unit 113 voxels point cloud data for each bounding box. That is, in the case of the example of B in FIG. 8, the voxel setting unit 113 performs the same process on the bounding box 142.
  • the voxel setting unit 113 sets the voxelized point cloud data (also referred to as voxel data) (information on data structure for quantizing position information), attribute information, etc. Are supplied to the signal string generation unit 114.
  • the voxel setting unit 113 may have any configuration.
  • the voxel setting unit 113 includes a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM.
  • the processing related to the setting of the voxel may be performed by executing the processing.
  • the signal string generation unit 114 is controlled by the control unit 101 and performs processing regarding generation of a signal string.
  • control unit 101 causes the signal sequence generation unit 114 to generate a signal sequence when the generation of the signal sequence is permitted (not prohibited) according to the control information which permits or prohibits the generation of the signal sequence. Also, for example, the control unit 101 is permitted (not prohibited) to generate a signal sequence according to control information indicating a range to be encoded that is a target of permission or prohibition of generation of a signal sequence. Signal sequence generator 114 generates a signal sequence. By doing this, it is possible to suppress the generation of an unnecessary signal sequence and to suppress an increase in load.
  • the signal string generation unit 114 generates voxel data obtained by quantizing point cloud data (for example, voxel data generated by the voxel setting unit 113 as shown in C of FIG. 8), a distribution pattern of values of the voxel data Encode using the correlation of (generate correlation information). For example, for each block which is a partial area of a space represented by voxel data, the signal string generation unit 114 encodes the voxel data to generate correlation information.
  • the signal sequence generation unit 114 converts the generated correlation information and other information into a signal sequence, and supplies the signal sequence to the encoding unit 115.
  • the signal string generation unit 114 may have any configuration, but for example, the CPU has a ROM, a RAM, etc., and the CPU loads programs and data stored in the ROM etc. into the RAM.
  • the processing related to the generation of the signal sequence may be performed by executing the processing.
  • the encoding unit 115 is controlled by the control unit 101, and performs processing relating to encoding of the supplied signal sequence.
  • control unit 101 encodes the signal sequence to the encoding unit 115 when the encoding of the signal sequence is permitted (not prohibited) according to the control information for permitting or prohibiting the encoding of the signal sequence.
  • control unit 101 is allowed (not prohibited) to code the signal sequence according to the control information indicating the range of the coding target to be the target of permission or prohibition of the signal sequence coding.
  • the encoding unit 115 encodes a signal sequence for the encoding target. By doing this, it is possible to suppress the coding of unnecessary signal sequences and to suppress an increase in load.
  • the encoding unit 115 encodes the supplied signal sequence to generate encoded data (bit stream). That is, the encoding unit 115 encodes the correlation information generated by the signal sequence generation unit 114, and generates a bit stream including the correlation information.
  • the coding method of this signal sequence is arbitrary.
  • the encoding unit 115 may encode the signal sequence by variable length coding (VLC (Variable Length Code)).
  • VLC Variable Length Code
  • D of FIG. 8 shows an example of the appearance of a coded signal sequence.
  • the encoding unit 115 encodes not only position information but also attribute information (for example, color information, ⁇ channel, normal vector, etc.).
  • the encoding unit 115 appropriately encodes related information other than point cloud data, such as control information, and stores the related information in a header, a parameter set, or the like.
  • the encoding unit 115 is a unique pattern which is a distribution pattern of voxel data values set based on the correlation strength of the distribution pattern of voxel data values among blocks which are partial regions of space represented by voxel data
  • the information indicating the correspondence between the index and the index for identifying the unique pattern may be encoded and stored in the header, the parameter set, or the like.
  • the encoding unit 115 associates the bit stream of the various information described above with each other.
  • the term "associate" means, for example, that one data can be processed (linked) in processing the other data. That is, the data associated with each other may be collected as one data or may be individual data. For example, control information associated with coded data may be transmitted on a transmission path different from that of the coded data. Also, for example, control information associated with encoded data may be recorded on a recording medium (or another recording area of the same recording medium) other than the encoded data. Note that this “association” may not be the entire data but a part of the data. For example, they may be associated with one another in arbitrary units such as a plurality of frames, one frame, or a part in a frame.
  • Encoding section 115 outputs the encoded data (bit stream) obtained by such encoding to the outside of encoding apparatus 100.
  • the data (coded data and control information) output from the coding apparatus 100 may be decoded by, for example, a processing unit at a later stage (not shown) to restore point cloud data. It may be transmitted by the communication unit and transmitted to another apparatus such as a decoding apparatus via a predetermined transmission path, or may be recorded on a recording medium (not shown).
  • the encoding unit 115 may have any configuration.
  • the encoding unit 115 includes a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM.
  • the processing related to encoding may be performed by executing the processing.
  • the method of coding voxel data by the signal string generation unit 114 using the strength of the above-described correlation is arbitrary.
  • An example of the method is shown in the table of FIG.
  • a unique index (Index) is assigned to a node (Node) in the screen and used for a coding block. That is, voxel data is encoded using a unique pattern and its index (Index).
  • the signal string generation unit 114 reduces redundant nodes from all nodes in the screen, detects unique patterns Ui, and detects each unique pattern Ui. Assign different indexes (Idx) to each other. Then, as shown in B of FIG. 10, the signal string generation unit 114 assigns voxel data of each block of voxel data 60 to a unique pattern Ui in which the distribution pattern of the block and the value of voxel data matches or approximates Replace with the index. That is, all nodes are expressed using the index.
  • the encoding unit 115 lists information indicating the correspondence between unique patterns and indexes as shown in A of FIG. 10, and a list of indexes replaced with voxel patterns of each block as shown in B of FIG. Encode (IdxLst) to generate a bitstream.
  • FIG. 11 is a block diagram showing a main configuration example of the signal string generation unit 114 (FIG. 7) in this case.
  • the signal sequence generation unit 114 in this case includes a correlation operation unit 201, a unique pattern setting unit 202, an index assignment unit 203, and a correlation information generation unit 204.
  • the correlation operation unit 201 performs processing regarding calculation of the strength (also referred to as the degree of correlation) of the correlation of distribution patterns of values of voxel data. For example, the correlation operation unit 201 calculates, for voxel data supplied from the voxel setting unit 113, the degree of correlation of a distribution pattern of values of voxel data between blocks which are partial regions of a space represented by voxel data.
  • this comparison can be performed between arbitrary blocks (that is, between arbitrary voxel groups).
  • the correlation operation unit 201 may set a node of the Octree pattern as a block, calculate the degree of correlation between the nodes, or calculate the degree of correlation between the node and the non-node block.
  • the degree of correlation between blocks that are not nodes may be calculated.
  • the calculation method of this correlation degree is arbitrary.
  • the correlation operation unit 201 supplies information indicating the calculated degree of correlation to the unique pattern setting unit 202 together with the supplied voxel data.
  • the correlation operation unit 201 may have any configuration.
  • the correlation operation unit 201 has a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM.
  • the processing related to the calculation of the degree of correlation may be performed by executing the processing.
  • the unique pattern setting unit 202 performs processing relating to setting of a unique pattern. For example, the unique pattern setting unit 202 classifies (for example, merges) blocks according to whether the distribution pattern matches or approximates using the degree of correlation supplied from the correlation operation unit 201.
  • the unique pattern setting unit 202 sets the unique pattern Ui based on the classification result.
  • the unique patterns Ui are, for example, voxel data having different distribution patterns among those selected as the unique patterns Ui, such as the block 61 and the block 64 of A in FIG. That is, the distribution pattern of voxel data values of the unique pattern Ui is different from the distribution pattern of voxel data values of other unique patterns Ui.
  • the unique pattern setting unit 202 When setting such a unique pattern Ui, as described above, the unique pattern setting unit 202 not only matches the distribution pattern of the values of voxel data between the compared blocks but also applies the matching both in the case of approximation as well. Assume that the distribution patterns of blocks are identical and merge. In other words, the unique pattern setting unit 202 determines that the distribution patterns of the two blocks are different from each other only when the distribution patterns of the compared blocks do not match or do not approximate. In addition, the reference
  • the unique pattern setting unit 202 can set unique patterns Ui in which the distribution patterns are different from each other (that is, the distribution patterns do not match or approximate each other).
  • the unique pattern setting unit 202 supplies the set unique pattern Ui to the index assignment unit 203 together with the supplied voxel data.
  • the unique pattern setting unit 202 may have any configuration.
  • the unique pattern setting unit 202 has a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM.
  • the processing related to the setting of the unique pattern may be performed by executing the processing.
  • the index assignment unit 203 performs processing relating to index assignment. For example, the index assignment unit 203 assigns an index to the unique pattern supplied from the unique pattern setting unit 202.
  • the index assignment unit 203 assigns different indexes to each unique pattern.
  • how to allocate this index is arbitrary. That is, as long as different indexes are assigned to each unique pattern, an index of any value may be assigned to each unique pattern.
  • the index assigning unit 203 may assign an index with a smaller amount of information to a unique pattern having a higher appearance frequency in voxel data to be encoded. By doing this, the amount of correlation information can be further reduced, and the reduction in coding efficiency can be further suppressed.
  • the index assigning unit 203 assigns the index to all the unique patterns Ui as described above, the information indicating the correspondence between the unique pattern and the index, which is a result of the assignment, is correlated with the supplied voxel data.
  • the information generation unit 204 is supplied.
  • the information indicating the correspondence between the unique pattern and the index is information indicating each set unique pattern Ui and an index assigned to each unique pattern Ui. For example, this information includes a list of unique patterns and a list of indexes configured to show the correspondence between unique patterns and indexes.
  • the index assignment unit 203 may have any configuration.
  • the index assignment unit 203 has a CPU, a ROM, a RAM, etc., and the CPU loads programs and data stored in the ROM etc. into the RAM. It is also possible to carry out processing relating to index assignment by executing it.
  • the correlation information generation unit 204 performs processing related to generation of correlation information. For example, the correlation information generation unit 204 converts voxel data of the current block, which is a block to be processed, into an index assigned to a unique pattern that matches or approximates a distribution pattern of voxel data values of the current block. Generate correlation information including
  • the correlation information is obtained by encoding voxel data using the correlation of distribution patterns of values of voxel data.
  • the correlation information generation unit 204 encodes voxel data to be encoded by replacing each block of voxel data to be encoded with (the index of) the unique pattern Ui described above. That is, in this case, the correlation information is configured by the index of the unique pattern Ui.
  • the correlation information generation unit 204 holds information indicating the correspondence between the unique pattern supplied from the index assignment unit 203 and the index.
  • the correlation information generation unit 204 corresponds to the distribution pattern of each block based on the classification (merging) of the distribution pattern of the voxel data value of each block performed when the unique pattern setting unit 202 sets the unique pattern. Identify a unique pattern Ui to be That is, a unique pattern Ui in which each block and its distribution pattern match or approximate is specified. Then, based on the held information, the correlation information generation unit 204 identifies an index corresponding to the identified unique pattern Ui. Then, the correlation information generation unit 204 replaces (converts) the voxel data of each block with the identified index.
  • the correlation information generation unit 204 supplies the correlation information (index) to the encoding unit 115 as a signal sequence instead of the voxel data of each block supplied.
  • the correlation information generation unit 204 also supplies information indicating the correspondence between the held unique pattern and the index to the encoding unit 115 as a signal sequence. That is, these pieces of information are encoded by the encoding unit 115 as described above, included in a bit stream, transmitted to the decoding side, or recorded on a recording medium.
  • voxels having the same distribution pattern can be obtained by indexing voxel data of each block as shown in B of FIG. 10 using the index assigned to the unique pattern Ui shown in A of FIG. Since the data is merged, the correlation information generation unit 204 can reduce bit stream redundancy. Further, as described above, since the unique pattern Ui is set not only for blocks in which the distribution patterns of the voxel data match one another but also for blocks in which the distribution patterns are similar, the correlation information generation unit 204 , Bitstream redundancy can be further reduced. Therefore, the signal string generation unit 114 can suppress the reduction of the coding efficiency.
  • the correlation information generation unit 204 may have any configuration.
  • the correlation information generation unit 204 includes a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM.
  • the processing related to the generation of correlation information may be performed by executing the processing.
  • the preprocessing unit 111 preprocesses the input data in step S101.
  • step S102 the bounding box setting unit 112 sets a bounding box for the preprocessed data.
  • step S103 the voxel setting unit 113 sets a voxel in the bounding box set in step S102.
  • step S104 the signal sequence generator 114 generates a signal sequence based on the data structure.
  • step S105 the encoding unit 115 encodes the signal sequence generated by the process of step S104.
  • step S106 the encoding unit 115 outputs the bit stream obtained by the encoding to the outside of the encoding apparatus 100.
  • This bit stream is, for example, transmitted to the decoding side (decoding device etc.) or recorded on a recording medium.
  • step S106 ends, the encoding process ends.
  • the encoding target is a moving image
  • this series of processing is performed for each frame.
  • the correlation operation unit 201 obtains the degree of correlation (degree of correlation) of the distribution pattern of voxel data values between blocks in step S121.
  • step S122 the unique pattern setting unit 202 sets a unique pattern Ui based on the degree of correlation obtained in step S121.
  • the unique pattern setting unit 202 has the same distribution pattern of both blocks not only when the distribution patterns of the voxel data match with each other but also when they are approximated. It is regarded as
  • step S123 the index assignment unit 203 assigns different indexes to the unique patterns Ui set in step S122.
  • step S124 based on the assignment result of the index to the unique pattern Ui in step S123, the correlation information generation unit 204 matches the voxel data of each block to be encoded with the distribution pattern of the voxel data value of the block Alternatively, it substitutes the index of the unique pattern Ui to be approximated to generate a signal sequence of correlation information.
  • the correlation information generation unit 204 also generates a signal sequence of information indicating the correspondence between the unique pattern and the index.
  • step S124 ends, the signal sequence generation process ends, and the process returns to FIG.
  • the encoding apparatus 100 can suppress the reduction in encoding efficiency as described above.
  • space coordinate information also referred to as reference space coordinate information
  • reference space coordinate information for specifying a reference target block (node (Node)
  • the signal sequence generation unit 114 searches for a block having a high correlation with the current block from a coded block (node), and the coding unit 115 determines the absolute position or relative position (vector) of the block. Encode the signal sequence.
  • the reference space coordinate information is a peripheral block in which the distribution pattern of the voxel data values matches or approximates with the current block among the peripheral blocks located around the current block (reference source block) which is the block to be processed. It is information indicating the position of the reference target block).
  • the signal sequence generator 114 encodes voxel data of the current block by converting it into reference space coordinate information. That is, the signal sequence generator 114 generates correlation information including the reference space coordinate information.
  • the reference space coordinate information may include information indicating the position of the reference destination block by an absolute position (for example, space coordinates of the reference destination block (also referred to as reference destination space coordinate information)).
  • the position may include information indicating a relative position to a reference source block (current block) (for example, a vector from the reference source to the reference destination (also referred to as a reference vector)).
  • the encoding unit 115 encodes correlation information including such reference space coordinate information to generate a bitstream.
  • FIG. 14 is a block diagram showing a main configuration example of the signal string generation unit 114 (FIG. 7) in this case.
  • the signal sequence generation unit 114 in this case includes a correlation operation unit 221, a reference space coordinate information setting unit 222, and a correlation information generation unit 223.
  • the correlation operation unit 221 is a processing unit similar to the correlation operation unit 201, and performs the same processing as the correlation operation unit 201. That is, the correlation operation unit 221 performs processing related to calculation of the degree of correlation (degree of correlation) of the distribution pattern of voxel data values. For example, the correlation calculation unit 221 calculates, for voxel data supplied from the voxel setting unit 113, the degree of correlation of a distribution pattern of values of voxel data between blocks which are partial regions of a space represented by voxel data. Note that this comparison can be made between arbitrary blocks. Moreover, the calculation method of this correlation degree is arbitrary.
  • the correlation operation unit 221 supplies information indicating the calculated degree of correlation to the reference spatial coordinate information setting unit 222 together with the supplied voxel data.
  • the correlation operation unit 221 may have any configuration.
  • the correlation operation unit 221 includes a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM.
  • the processing related to the calculation of the degree of correlation may be performed by executing the processing.
  • the reference space coordinate information setting unit 222 performs processing relating to setting of reference space coordinate information.
  • the reference space coordinate information setting unit 222 specifies, based on the degree of correlation supplied from the correlation operation unit 201, a peripheral block having a high correlation with the current block as a reference destination, and a reference space coordinate indicating the position of the peripheral block. Set the information. More specifically, the reference space coordinate information setting unit 222 matches or approximates the distribution pattern of voxel data with the current block for each of the candidate peripheral blocks based on the degree of correlation supplied from the correlation operation unit 201. Determine if In addition, the reference
  • the reference space coordinate information setting unit 222 determines that the neighboring block having the highest degree of correlation with the current block is the neighboring block whose distribution pattern is similar to the current block. Also, for example, the reference space coordinate information setting unit 222 determines that a peripheral block whose degree of correlation with the current block is higher than a predetermined reference is a peripheral block whose distribution pattern is similar to the current block.
  • this peripheral block may be a block located spatially around the current block. That is, this peripheral block may be a block in the same frame as the current block. Also, this peripheral block may be a block located in the temporal periphery of the current block. That is, this peripheral block may be a block of a frame different from the current block. For example, the peripheral block may be a block at the same position as the current block (colocated block) of a frame different from the current block, or a block located around the colocated block. Furthermore, this peripheral block may be a block located at the periphery between sequences (views, layers, components, etc.). That is, this peripheral block may be a block of a sequence different from the current block.
  • the peripheral block may be a block located at the same position as the current block (colocated block) of the sequence different from the current block (colocated block) located in the periphery of the colocated block.
  • the peripheral block may be a block of a frame different from the current block in a sequence different from the current block.
  • the reference space coordinate information setting unit 222 supplies the set reference space coordinate information to the correlation information generation unit 223 together with the supplied voxel data.
  • the reference space coordinate information setting unit 222 does not encode voxel data of the current block ( Do not replace with correlation information). That is, in this case, the reference space coordinate information setting unit 222 omits setting of reference space coordinates corresponding to the block.
  • the reference space coordinate information setting unit 222 may have any configuration, for example, it has a CPU, a ROM, a RAM, etc., and the CPU stores programs and data stored in the ROM etc. By loading and executing it, processing concerning setting of a unique pattern may be performed.
  • the correlation information generation unit 223 performs processing related to generation of correlation information. For example, the correlation information generation unit 223 matches or approximates the voxel data of the current block, which is a block to be processed, with the current block, with the distribution pattern of voxel data values in peripheral blocks located around the current block. It converts to the reference space coordinate information which is information which shows the position of the surrounding block to generate correlation information including the reference space coordinate information.
  • the correlation information generation unit 223 encodes voxel data to be encoded by replacing each block of voxel data to be encoded with reference space coordinate information supplied from the reference space coordinate information setting unit 222. . That is, in this case, the correlation information is configured by reference space coordinate information (reference destination space coordinate or reference vector).
  • the generation of the correlation information is omitted for the block for which the reference space coordinate information is not set in the reference space coordinate information setting unit 222 (that is, the block for which the reference destination is not found).
  • the correlation information generation unit 223 supplies the correlation information (reference space coordinate information) to the encoding unit 115 as a signal sequence instead of the voxel data of each block supplied for the block in which the correlation information has been generated. Further, the correlation information generation unit 223 supplies the signal sequence of the supplied voxel data to the encoding unit 115 for the block for which the correlation information is not generated.
  • These signal sequences are encoded by the encoding unit 115 as described above, included in a bit stream, transmitted to the decoding side, or recorded on a recording medium.
  • the amount of information can be reduced. Also, when setting the reference relationship between the blocks, for example, if only the peripheral blocks whose distribution pattern of voxel data values matches the current block are considered as candidates for reference destinations, the number of cases where reference destinations do not exist may increase. There is a risk that the amount of information can not be reduced sufficiently.
  • the correlation information generation unit 223 sets not only the neighboring blocks in which the distribution pattern of the voxel data values matches the current block, but also the neighboring blocks to be approximated as candidates for reference destinations. This can increase the possibility that there is a peripheral block to which the current block can be referred. Therefore, more blocks can be converted to reference space coordinate information, and the amount of information can be further reduced. Therefore, the signal string generation unit 114 can suppress the reduction of the coding efficiency.
  • the correlation information generation unit 223 may have any configuration.
  • the correlation information generation unit 223 includes a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM.
  • the processing related to the generation of correlation information may be performed by executing the processing.
  • the correlation operation unit 221 obtains the degree of correlation (degree of correlation) of the distribution pattern of the value of voxel data between blocks in step S141.
  • step S142 the reference space coordinate information setting unit 222 sets reference space coordinate information with the peripheral block having a high correlation with the current block as a reference destination.
  • step S143 the correlation information generation unit 223 generates correlation information using the reference space coordinate information set in step S142, and replaces it with voxel data. Then, the correlation information generation unit 223 generates a signal sequence including the correlation information. That is, the correlation information generation unit 223 generates a signal sequence of correlation information for a block having a reference destination, and generates a signal sequence of voxel data for a block having no reference destination.
  • step S143 ends, the signal sequence generation process ends, and the process returns to FIG.
  • the encoding apparatus 100 can suppress the reduction in encoding efficiency as described above.
  • an index (Index) is assigned to a block (Node) having a distribution pattern defined in advance, and is used for a coding block. That is, the signal sequence generation unit 114 searches for, for example, a block having a high correlation with the current block from among the predefined blocks, and the encoding unit 115 encodes the index.
  • a predetermined unique pattern (also referred to as a predefined unique pattern) is prepared in advance, and different indexes (also referred to as a predefined index) are assigned to the respective unique patterns.
  • the signal string generation unit 114 uses the predefined unique pattern instead of the unique pattern generated from the voxel data to be encoded, as described above in ⁇ Example 1 of the coding method of voxel data>. Index.
  • the signal string generation unit 114 sets voxel data of the current block to a predefined index assigned to a predefined unique pattern whose distribution pattern matches or approximates the current block, out of the predefined unique patterns. Transform and generate correlation information including its pre-defined index.
  • the predefined unique patterns differ from each other in their distribution patterns among the predefined unique patterns, as in the case of the unique patterns described above in ⁇ Example 1 of the coding method for voxel data>. That is, the distribution pattern of voxel data values of the predefined unique pattern is different from the distribution pattern of voxel data values of other predefined unique patterns.
  • FIG. 16 is a block diagram showing a main configuration example of the signal string generation unit 114 (FIG. 7) in this case.
  • the signal sequence generation unit 114 in this case has a correlation operation unit 241 and a correlation information generation unit 242.
  • the correlation operation unit 241 performs processing related to calculation of the degree of correlation (degree of correlation) of a distribution pattern of voxel data values. For example, the correlation operation unit 241 obtains (preserves voxel data of) a predefined unique pattern and holds the same. The correlation operation unit 241 calculates, for each block of voxel data supplied from the voxel setting unit 113, the degree of correlation of the distribution pattern of the value of voxel data between each block and the predefined unique pattern. In addition, the calculation method of this correlation degree is arbitrary. The correlation operation unit 241 supplies information indicating the calculated degree of correlation to the correlation information generation unit 242 together with the supplied voxel data.
  • the correlation operation unit 241 may have any configuration.
  • the correlation operation unit 241 includes a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM.
  • the processing related to the calculation of the degree of correlation may be performed by executing the processing.
  • the correlation information generation unit 242 performs processing related to generation of correlation information. For example, the correlation information generation unit 242 sets the voxel data of the current block, which is a block to be processed, to a predefined index assigned to a predefined unique pattern that matches or approximates the distribution pattern of the values of voxel data of the current block. Transform and generate correlation information including its pre-defined index.
  • the correlation information generation unit 242 acquires and holds information indicating the correspondence between the predefined unique pattern and the predefined index.
  • the information indicating the correspondence between the predefined unique pattern and the predefined index is information indicating each predefined unique pattern and each predefined index.
  • this information includes a list of predefined unique patterns and a list of predefined indexes configured to show the correspondence between the predefined unique patterns and the predefined indexes.
  • the correlation information generation unit 242 based on the degree of correlation supplied from the correlation operation unit 241, the correlation information generation unit 242 identifies, for each block, a predefined unique pattern whose distribution pattern matches or approximates. In other words, the correlation information generation unit 242 determines that the distribution patterns are different only when the distribution patterns do not match or do not approximate, and does not specify the predefined unique pattern.
  • standard which determines with this distribution pattern being approximate is arbitrary.
  • the correlation information generation unit 242 specifies a pre-defined index corresponding to the specified pre-defined unique pattern. Then, the correlation information generation unit 242 replaces (converts) the voxel data of each block with the specified predefined index.
  • the correlation information generation unit 242 supplies the correlation information (predefined index) to the encoding unit 115 as a signal sequence instead of the voxel data of each block supplied.
  • This signal sequence is encoded by the encoding unit 115 as described above, included in a bit stream, transmitted to the decoding side, or recorded on a recording medium.
  • the correlation information generation unit 242 may have any configuration.
  • the correlation information generation unit 242 includes a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM.
  • the processing related to the generation of correlation information may be performed by executing the processing.
  • voxel data of the same distribution pattern is merged by indexing voxel data of each block using a pre-defined index, so that the correlation information generation unit 242 reduces bit stream redundancy. be able to.
  • a block of a distribution pattern that does not match the predefined unique pattern Can not replace that voxel data with a predefined index.
  • the correlation information generation unit 242 can replace the voxel data of the block in which the predefined unique pattern to which the distribution pattern is similar with the predefined index. Therefore, the amount of information can be further reduced. That is, the signal string generation unit 114 can suppress the reduction in the coding efficiency.
  • the correlation operation unit 241 obtains the degree of correlation (degree of correlation) between the distribution pattern of voxel data values of each block and the predefined unique pattern in step S161.
  • step S162 the correlation information generation unit 242 specifies a pre-defined index having a strong correlation with each block based on the degree of correlation, generates correlation information using the specified pre-defined index, and replaces it with voxel data . Then, the correlation information generation unit 242 generates a signal sequence including the correlation information.
  • step S162 ends, the signal sequence generation process ends, and the process returns to FIG.
  • the encoding apparatus 100 can suppress the reduction in encoding efficiency as described above.
  • a block of a distribution pattern which is neither matched nor approximated with the predefined unique pattern may be supplied to the encoding unit 115 as a signal sequence of voxel data.
  • voxel data to be encoded is a moving image (in the case of a plurality of frames)
  • the signal sequence generation unit 114 holds a coded frame, and searches for a block with high correlation from the frame. If found, the encoding unit 115 encodes and transmits information (such as a time difference from the current frame) identifying the frame.
  • the signal sequence generation unit 114 obtains time information indicating the frame corresponding to the reference destination when obtaining the strength of the correlation with the distribution pattern of the voxel data of the current block which is the block to be processed. Generate correlation information that includes.
  • the voxel data of the current block is indexed using the unique pattern index set in the frame processed by the correlation information generation unit 204 in the past.
  • the correlation operation unit 201 calculates the degree of correlation between the current block and a block of a frame other than the frame of the current block (current frame), and the unique pattern setting unit 202 calculates the degree of correlation based on the degree of correlation.
  • a unique pattern may be set.
  • the correlation operation unit 221 calculates the degree of correlation between the current block and a block of a frame other than the current frame.
  • the reference space coordinate information setting unit 222 may be able to set a block of a frame other than the current frame as a reference destination based on the degree of correlation.
  • the predefined unique pattern (and the predefined index) is set for each frame etc. (updated in the time direction ).
  • the correlation operation unit 241 calculates the degree of correlation between the current block and the predefined unique pattern corresponding to a frame other than the current frame, and the correlation information generation unit 242 calculates the degree of correlation based on the degree of correlation.
  • the voxel data of the current block may be replaced with a predefined index corresponding to a frame other than the current frame.
  • the signal string generation unit 114 can further reduce the redundancy of the bit stream, and can suppress the reduction of the coding efficiency.
  • the signal string generation unit 114 when calculating the correlation, performs matching with the current block also with respect to a distribution pattern which is point symmetric or line symmetric with respect to the reference block (node (Node)). If a pattern having a high correlation is found, the encoding unit 115 encodes and transmits rotation information and inversion information.
  • the signal string generation unit 114 determines the distribution pattern of the reference destination voxel data when obtaining the strength of the correlation with the distribution pattern of the voxel data of the current block which is the block to be processed. Correlation information including at least one of information on rotation and information on inversion of a distribution pattern to which the reference is made is generated.
  • the correlation operation unit 201, the correlation operation unit 221, or the correlation operation unit 241 the line symmetry of the distribution pattern of the reference destination (the distribution pattern of another block or the predefined unique pattern)
  • the comparison may be made with a distribution pattern that is point-symmetrical or point-symmetrical.
  • the correlation information generation unit 204, the correlation information generation unit 223, or the correlation information generation unit 242 is rotation information (information indicating the presence or absence of rotation, or how it is rotated, etc.) or inversion information (presence or absence of inversion) Or, correlation information including information indicating how to invert etc. may be generated.
  • the signal string generation unit 114 can further reduce the redundancy of the bit stream, and can suppress the reduction of the coding efficiency.
  • information for example, a flag or the like
  • the signal sequence generation unit 114 generates correlation information of the current block using correlation information of peripheral blocks located around the current block which is a block to be processed.
  • the correlation calculation unit 201, the correlation calculation unit 221, or the correlation calculation unit 241 calculates the degree of correlation when the correlation information of neighboring blocks is applied to the current block. It is also good.
  • the correlation information generation unit 204, the correlation information generation unit 223, or the correlation information generation unit 242 applies the reused correlation degree (when the correlation degree is high)
  • the correlation degree is to be reused.
  • Correlation information including information eg, a flag
  • information specifying the degree of correlation to be reused or information specifying the mode may be included in the correlation information.
  • flag information indicating whether to reuse the degree of correlation may be always included in the correlation information.
  • the correlation information of the peripheral block is reused, since the correlation information of the peripheral block is reused also on the decoding side, the transmission of the correlation information of the current block can be omitted. Therefore, since the amount of information to be transmitted can be reduced, it is possible to suppress a reduction in coding efficiency.
  • the coding method of voxel data using the correlation information described above may be used in combination with Octree coding.
  • bit stream redundancy can be reduced as compared with the case where only Octree coding is performed or the case where only DAG processing is applied, reduction in coding efficiency can be suppressed.
  • encoding using correlation information may be applied to a plurality of levels of the Octree pattern, but in encoding using correlation information, similar nodes may also be merged, which may lead to processing complexity. . Therefore, as described above, coding using correlation information only at the lowest level may be applied, and DAG (effective directivity graph) may be applied to levels above the lowest level. Note that this DAG may be applied to all levels higher than the lowest level of the Octree pattern, or, as described above, applied only from the level one level above to the middle level to the middle level. , And some higher levels may apply Octree coding only.
  • FIG. 18 is a block diagram showing a main configuration example of the signal string generation unit 114 (FIG. 7) in this case.
  • the signal sequence generation unit 114 in this case further includes an Octree encoding unit 261 and a DAG processing unit 262 in addition to the correlation operation unit 201 to the correlation information generation unit 204.
  • the Octree encoding unit 261 performs a process related to Octree encoding. For example, the Octree encoding unit 261 Octree encodes voxel data supplied from the voxel setting unit 113, generates an Octree pattern as described with reference to FIG. 3, and generates a Childmask (8 bits) of each node Do. The Octree encoding unit 261 supplies the generated Childmask data to the DAG processing unit 262.
  • the Octree encoding unit 261 may have any configuration, for example, it has a CPU, a ROM, a RAM, etc., and the CPU loads programs and data stored in the ROM etc. into the RAM.
  • the processing related to Octree coding may be performed by executing the processing.
  • the DAG processing unit 262 performs processing related to DAG. For example, the DAG processing unit 262 performs DAG processing on a level higher than the lowest level of Childmask data supplied from the Octree encoding unit 261, and merges the same node using autocorrelation. The DAG processing unit 262 supplies the signal sequence of the DAG data thus generated to the encoding unit 115.
  • the correlation operation unit 201 to the correlation information generation unit 204 perform processing as in the case of FIG. 11 and encode voxel data using the correlation information. That is, the lowest level of the Octree pattern is encoded.
  • the correlation information generation unit 204 supplies the signal sequence to the encoding unit 115 as described with reference to FIG.
  • the DAG processing unit 262 may have any configuration, for example, the DAG processing unit 262 includes a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM.
  • the processing related to DAG may be performed by executing the processing.
  • the encoding unit 115 encodes those signal sequences. That is, the encoding unit 115 generates a bit stream including correlation information, DAG data, and the like.
  • the Octree encoding unit 261 performs Octree encoding in step S181.
  • step S182 the DAG processing unit 262 performs DAG processing on nodes at a level higher than the lowest level of the Octree pattern.
  • steps S183 to S186 are performed in the same manner as the processes of steps S121 to S124 of FIG.
  • step S186 ends, the signal sequence generation process ends, and the process returns to FIG.
  • the encoding apparatus 100 can make the encoding using the correlation information correspond to the scalability or suppress the reduction of the encoding efficiency. .
  • the correlation information can also be said to be a predicted value of voxel data. That is, in the encoding using the above-mentioned correlation information, only this predicted value is encoded and transmitted. Therefore, prediction residuals of voxel data may also be transmitted. Furthermore, the prediction residual may be encoded (reduced in the amount of information) and transmitted.
  • the signal sequence generation unit 114 obtains a difference (prediction residual) between voxel data supplied from the voxel setting unit 113 and a prediction value of voxel data corresponding to correlation information, and separately encodes the prediction residual You may make it transmit.
  • This encoding method is arbitrary.
  • the prediction residual may be orthogonally transformed.
  • prediction residuals may be chain encoded. Further, quantization may be performed.
  • decoded point cloud data By transmitting the prediction residual in this manner, it is possible to obtain a more accurate (close to the state before encoding) decoded image (decoded point cloud data) on the decoding side. That is, the subjective image quality of the decoded point cloud data (also referred to as decoded point cloud data) can be improved. In addition, by encoding and transmitting the prediction residual as described above, it is possible to suppress a reduction in coding efficiency.
  • FIG. 20 is a block diagram showing an example of a main configuration of the signal string generation unit 114 (FIG. 7) in this case.
  • the signal sequence generation unit 114 in this case includes the correlation operation unit 201 to the index assignment unit 203 as in the case of FIG. Further, the signal sequence generation unit 114 in this case has a correlation information generation unit 281 instead of the correlation information generation unit 204. Furthermore, the signal sequence generation unit 114 in this case includes an arithmetic unit 282 and a prediction residual coding unit 283.
  • the correlation information generation unit 281 basically performs the same processing as the correlation information generation unit 204, but further supplies a unique pattern corresponding to the index of each block included in the correlation information to the calculation unit 282.
  • the correlation information generation unit 281 may have any configuration.
  • the correlation information generation unit 281 includes a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM.
  • the processing related to the generation of correlation information may be performed by executing the processing.
  • the computing unit 282 performs processing regarding generation of prediction residuals. For example, the calculation unit 282 subtracts the unique pattern supplied from the correlation information generation unit 281 from the voxel data supplied from the voxel setting unit 113 for each block to generate a prediction residual. The calculation unit 282 supplies the generated prediction residual to the prediction residual coding unit 283.
  • the computing unit 282 may have any configuration, but for example, it has a CPU, a ROM, a RAM, etc., and the CPU loads programs and data stored in the ROM etc. into the RAM. By performing the processing, processing relating to generation of prediction residuals may be performed.
  • the prediction residual coding unit 283 performs processing on coding of prediction residuals. For example, the prediction residual coding unit 283 codes prediction residuals of voxel data of each block supplied from the calculation unit 282 and converts the prediction residuals into coefficient data.
  • the encoding method of this prediction residual is arbitrary. For example, as described above, orthogonal transformation or chain coding may be applied. Furthermore, quantization may be performed.
  • the prediction residual coding unit 283 supplies the signal sequence of the generated coefficient data to the coding unit 115.
  • the prediction residual encoding unit 283 may have any configuration, but for example, it has a CPU, a ROM, a RAM, etc., and the CPU stores programs and data stored in the ROM etc.
  • the processing related to the encoding of the prediction residual may be performed by loading and executing it.
  • the encoding unit 115 encodes a signal sequence supplied from the correlation information generation unit 281 or the prediction residual encoding unit 283. That is, the encoding unit 115 generates a bit stream including correlation information, a prediction residual, and the like.
  • steps S201 to S204 are performed in the same manner as the processes of steps S121 to S124 of FIG.
  • step S205 the computing unit 282 obtains a prediction residual that is a difference between voxel data and a unique pattern (predicted value of voxel data).
  • step S206 the prediction residual coding unit 283 encodes the prediction residual obtained by the process of step S205.
  • step S206 ends, the signal sequence generation process ends, and the process returns to FIG.
  • the encoding apparatus 100 can improve the subjective image quality of the decoding point cloud data, and can suppress the reduction in the encoding efficiency.
  • Each point of the point cloud has attribute information such as color information ((R, G, B), (Y, U, V)), ⁇ channel, normal vector, etc. in addition to position information (x, y, z) have. Therefore, at the time of encoding of the position information described above, attribute information may be similarly encoded using correlation information. That is, the encoding unit 115 may omit encoding of the attribute information of the block for which the correlation information has been generated.
  • the method of merging attribute information is arbitrary.
  • attribute information for example, RGB / YUV pixel values after decoding of color information
  • the position information structure information
  • a coding method for example, a color prediction mode or the like
  • attribute information of a reference destination which merges the current block and the position information (structure information) may be used also in the current block. That is, the encoding unit 115 encodes the attribute information of the block for which the correlation information has been generated by the signal sequence generation unit 114 using the same encoding method as the attribute information of the reference destination corresponding to the correlation information. It is also good.
  • a filtering method color format conversion, chroma sub-sampling method, de-blocking method such as de-block etc.
  • the encoding unit 115 may filter the attribute information of the block for which the correlation information has been generated by the signal sequence generation unit 114 by the same filtering method as the attribute information of the reference destination corresponding to the correlation information.
  • the correlation information of each block can be decoded by decoding the information indicating the correspondence between the unique pattern and the index, and converting the index of each block into the unique pattern based on the information. .
  • FIG. 22 is a block diagram illustrating an exemplary main configuration of a decoding device which is an embodiment of an information processing device to which the present technology is applied.
  • the decoding device 300 shown in FIG. 22 is a decoding device corresponding to the coding device 100 of FIG. 7, and decodes, for example, the point cloud coding data generated by the coding device 100 and outputs the point cloud data. Restore.
  • the decoding device 300 in this case includes a decoding unit 301, a voxel data generation unit 302, and a point cloud processing unit 303.
  • the decoding unit 301 performs processing related to decoding of a bitstream. For example, the decoding unit 301 decodes a bitstream by a decoding method corresponding to the encoding method of the encoding unit 115, and extracts correlation information from the bitstream. The correlation information is set for each block which is a partial area of a space represented by voxel data, and the decoding unit 301 extracts the correlation information of each block.
  • the correlation information includes an index obtained by converting voxel data for each block. This index is assigned to a unique pattern determined that the voxel data of the block and the distribution pattern match or approximate. Furthermore, the bit stream includes information indicating the correspondence between the unique pattern and the index, and the decoding unit 301 also extracts information indicating the correspondence between the unique pattern and the index from the bit stream.
  • the decoding unit 301 supplies the voxel data generation unit 302 with information extracted from the bit stream (correlation information, information indicating the correspondence between the unique pattern and the index, and the like).
  • the decryption unit 301 may have any configuration, for example, the decryption unit 301 has a CPU, a ROM, a RAM, etc., and the CPU loads programs and data stored in the ROM etc. into the RAM. Processing may be performed on decoding by executing the process.
  • the voxel data generation unit 302 performs processing related to generation of voxel data. For example, the voxel data generation unit 302 generates voxel data corresponding to the correlation information supplied from the decoding unit 301. That is, when the correlation information is set for each voxel, the voxel data generation unit 302 converts the correlation information of each block into voxel data.
  • the voxel data generation unit 302 converts the correlation information of each block supplied from the decoding unit 301 into a unique pattern using the information indicating the correspondence between the unique pattern supplied from the decoding unit 301 and the index. Generates voxel data of each block.
  • the voxel data generation unit 302 supplies the generated voxel data to the point cloud processing unit 303.
  • the voxel data generation unit 302 may have any configuration.
  • the voxel data generation unit 302 includes a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM.
  • the processing related to the generation of voxel data may be performed by executing the processing.
  • the point clouding processing unit 303 performs processing on restoration of point cloud data. For example, the point cloud processing unit 303 converts the supplied voxel data into point cloud data (generates decoded point cloud data). Note that the point clouding processing unit 303 may further convert the decoded point cloud data into mesh data.
  • the point clouding processing unit 303 outputs the generated decryption point cloud data (or mesh data) to the outside of the decryption apparatus 300.
  • the output decoding point cloud data (or Mesh data) may be subjected to image processing by, for example, a processing unit at a later stage (not shown) and displayed on a monitor as image information, or a communication unit (not shown). And may be transmitted to another apparatus via a predetermined transmission path, or may be recorded on a recording medium (not shown).
  • the point cloud processing unit 303 may have any configuration, for example, it has a CPU, a ROM, a RAM, and the like, and the CPU stores programs and data stored in the ROM and the like in the RAM. By loading and executing, processing relating to restoration of point cloud data may be performed.
  • step S301 the decoding unit 301 decodes the bit stream, and extracts information indicating the correspondence between the unique pattern and the index, and the correlation information of each block including the index.
  • step S302 the voxel data generation unit 302 converts the index of the correlation information of each block into the corresponding unique pattern based on the information indicating the correspondence between the unique pattern and the index extracted in step S301. , Voxel data of each block is generated.
  • step S303 the point cloud processing unit 303 restores point cloud data from the voxel data obtained by the process of step S302.
  • step S304 the point clouding processing unit 303 outputs the restored point cloud data (decryption point cloud data) to the outside of the decryption apparatus 300.
  • step S304 ends, the decoding process ends.
  • FIG. 24 is a block diagram illustrating an exemplary main configuration of a decoding device which is an embodiment of an information processing device to which the present technology is applied.
  • the decoding device 300 shown in FIG. 24 is a decoding device corresponding to the coding device 100 of FIG. 7, for example, decodes the point cloud coding data generated by the coding device 100, and outputs the point cloud data. Restore.
  • the decoding apparatus 300 in this case includes a decoding unit 321, a voxel data generation unit 322, and a point cloud processing unit 303.
  • the decoding unit 321 performs processing related to decoding of a bit stream. For example, the decoding unit 321 decodes the bitstream by a decoding method corresponding to the encoding method of the encoding unit 115, and extracts correlation information from the bitstream. The correlation information is set for each block which is a partial area of a space represented by voxel data, and the decoding unit 321 extracts the correlation information of each block.
  • the correlation information includes reference space coordinate information.
  • the reference space coordinate information is information indicating a position of a peripheral block designated as a reference destination of voxel data, in which a distribution pattern of voxel data values matches or approximates with the current block.
  • the decoding unit 321 supplies the information (correlation information and the like) extracted from the bit stream to the voxel data generation unit 322.
  • the decryption unit 321 may have any configuration, for example, the decryption unit 321 has a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM. Processing may be performed on decoding by executing the process.
  • the voxel data generation unit 322 performs processing related to generation of voxel data. For example, the voxel data generation unit 322 generates voxel data corresponding to the correlation information supplied from the decoding unit 321. That is, when the correlation information is set for each voxel, the voxel data generation unit 322 converts the correlation information of each block into voxel data.
  • the voxel data generation unit 322 specifies the block of the reference destination based on the reference space coordinate information included in the correlation information of the current block supplied from the decoding unit 321, and uses the voxel data of that block to determine the current Generate block voxel data.
  • the voxel data generation unit 322 generates voxel data of each block by performing such processing on the correlation information of each block.
  • the voxel data generation unit 322 supplies the generated voxel data to the point cloud processing unit 303.
  • the process performed by the point cloud processing unit 303 is the same as that in the case of FIG.
  • the voxel data generation unit 322 may have any configuration.
  • the voxel data generation unit 322 includes a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM.
  • the processing related to the generation of voxel data may be performed by executing the processing.
  • the decoding unit 321 decodes the bit stream in step S321, and extracts correlation information of each block including reference spatial coordinate information.
  • step S322 the voxel data generation unit 322 identifies the block of the reference destination based on the reference space coordinate information of the correlation information of each block extracted in step S321, and uses voxel data of the block of each reference destination. And generate voxel data of each block.
  • steps S323 and S324 are performed in the same manner as the processes of steps S303 and S304 of FIG.
  • the decoding process ends.
  • the correlation information of each block is decoded by converting the predefined index of each block into the predefined unique pattern.
  • FIG. 26 is a block diagram illustrating an exemplary main configuration of a decoding device which is an embodiment of an information processing device to which the present technology is applied.
  • the decoding device 300 shown in FIG. 26 is a decoding device corresponding to the coding device 100 of FIG. 7, for example, decodes the point cloud coding data generated by the coding device 100 and outputs the point cloud data. Restore.
  • the decoding apparatus 300 in this case has a decoding unit 341, a voxel data generation unit 342, and a point cloud processing unit 303.
  • the decoding unit 341 performs processing regarding decoding of a bitstream. For example, the decoding unit 341 decodes the bitstream by a decoding method corresponding to the encoding method of the encoding unit 115, and extracts correlation information from the bitstream. The correlation information is set for each block which is a partial area of a space represented by voxel data, and the decoding unit 321 extracts the correlation information of each block.
  • the correlation information includes a predefined index obtained by converting voxel data for each block. This predefined index is assigned to a predefined unique pattern. Note that the decoding device 300 in FIG. 26 has information indicating the correspondence between the predefined unique pattern and the predefined index in advance.
  • the decoding unit 341 supplies the voxel data generation unit 342 with information (correlation information and the like) extracted from the bit stream.
  • the decryption unit 341 may have any configuration, for example, the decryption unit 341 has a CPU, a ROM, a RAM, etc., and the CPU loads programs and data stored in the ROM etc. into the RAM. Processing may be performed on decoding by executing the process.
  • the voxel data generation unit 342 performs processing related to generation of voxel data. For example, the voxel data generation unit 342 generates voxel data corresponding to the correlation information supplied from the decoding unit 341. That is, when the correlation information is set for each voxel, the voxel data generation unit 342 converts the correlation information of each block into voxel data.
  • the voxel data generation unit 342 predefines the predefined index included in the correlation information of each block supplied from the decoding unit 341 based on the information indicating the correspondence between the predefined unique pattern and the predefined index. Voxel data of each block is generated by converting into a unique pattern.
  • the voxel data generation unit 322 supplies the generated voxel data to the point cloud processing unit 303.
  • the process performed by the point cloud processing unit 303 is the same as that in the case of FIG.
  • the voxel data generation unit 342 may have any configuration.
  • the voxel data generation unit 342 includes a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM.
  • the processing related to the generation of voxel data may be performed by executing the processing.
  • the decoding unit 341 decodes the bit stream in step S341, and extracts correlation information of each block including the predefined index.
  • step S 342 the voxel data generation unit 342 predefines the predefined index of the correlation information of each block extracted in step S 341 based on the information indicating the correspondence between the predefined unique pattern and the predefined index. Voxel data of each block is generated by converting into.
  • steps S343 and S334 are performed in the same manner as the processes of steps S303 and S304 of FIG.
  • the decoding process ends.
  • the correlation information may include time information indicating a frame corresponding to a reference destination when obtaining the strength of the correlation with the distribution pattern of voxel data values of the current block. Then, the frame corresponding to the reference destination may be specified based on the time information included in the correlation information of the current block extracted from the bit stream.
  • information (rotation information) on rotation of a distribution pattern of reference voxel data values when obtaining correlation strength with correlation information and distribution pattern of voxel data values of the current block, and reference thereof At least one of information on inversion of the distribution pattern of the previous voxel data (inversion information) may be included. Then, when generating voxel data from the correlation information of each block, the voxel of the reference destination is based on at least one of rotation information and inversion information included in the correlation information of the current block extracted from the bit stream. Rotation and / or inversion may be performed on the distribution pattern of data values.
  • the bit stream may not include the correlation information of the current block. Instead, for example, in the block, information (a flag or the like) indicating that the correlation information of the peripheral block is to be reused may be included in the bitstream. Then, when such information is obtained for the current block, correlation information of the current block is generated using correlation information of neighboring blocks, and voxel data of the current block is generated using the generated correlation information. You may do it.
  • a bitstream to be decoded may be generated by combining encoding using correlation information and Octree encoding.
  • a bitstream may be one in which voxel data is Octree encoded and the lowest level node of the Octree pattern is encoded using correlation information.
  • nodes at multiple levels including the lowest level of the Octree pattern may be encoded using correlation information.
  • voxel data is octree-encoded
  • the lowest level node of the Octree pattern is encoded using correlation information
  • a node higher than the lowest level is DAG processed. It may be.
  • the lowest level node of the Octree pattern is encoded using correlation information
  • the node from the level one higher to the middle of the lowest level to the middle level is DAG processed
  • the node at the higher level is higher May be one to which only Octree coding is applied.
  • FIG. 28 is a block diagram showing a main configuration example of the decoding device 300 in this case.
  • the decoding device 300 in this case includes a decoding unit 361, a DAG inverse processing unit 362, an Octree decoding unit 363, a voxel data generation unit 364 and a point cloud processing unit 303.
  • the decoding unit 361 performs processing related to decoding of a bitstream. For example, the decoding unit 361 decodes the bit stream by the decoding method corresponding to the encoding method of the encoding unit 115, and from the bit stream, the correspondence between the correlation information of each block including the index, the unique pattern, and the index The information to be shown and DAG data which is a DAG-processed Octree pattern are extracted. The decoding unit 361 supplies the extracted correlation information of each block and information indicating the correspondence between the unique pattern and the index to the voxel data generation unit 364, and supplies the DAG data to the DAG inverse processing unit 362.
  • the decryption unit 361 may have any configuration, for example, the decryption unit 361 has a CPU, a ROM, a RAM, etc., and the CPU loads a program or data stored in the ROM etc. into the RAM. Processing may be performed on decoding by executing the process.
  • the DAG reverse processing unit 362 performs processing related to DAG reverse processing which is reverse processing of DAG processing performed by the DAG processing unit 262. That is, DAG inverse processing is processing for generating a Childmask of each node of the Octree pattern from DAG data.
  • the DAG inverse processing unit 362 performs this DAG inverse processing on the DAG data supplied from the decoding unit 361, generates a Childmask of each node of the Octree pattern, and supplies it to the Octree decoding unit 363.
  • the DAG inverse processing unit 362 may have any configuration, for example, it has a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM.
  • the processing related to the DAG reverse processing may be performed by executing the processing.
  • the Octree decoding unit 363 performs a process related to the Octree pattern decoding. For example, the Octree decoding unit 363 decodes the Childmask of each node of the Octree pattern to generate voxel data. The Octree decoding unit 363 supplies the generated voxel data to the voxel data generation unit 364.
  • the Octree decoding unit 363 may have any configuration.
  • the Octree decoding unit 363 includes a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM.
  • the processing related to Octree decoding may be performed by executing the processing.
  • the voxel data generation unit 364 performs processing related to generation of voxel data. For example, the voxel data generation unit 364 converts the correlation information of each block supplied from the decoding unit 361 into a unique pattern using the information indicating the correspondence between the unique pattern supplied from the decoding unit 361 and the index. Generates voxel data of each block.
  • the voxel data generation unit 364 supplies the generated voxel data and the voxel data supplied from the Octree decoding unit 363 to the point cloud processing unit 303.
  • the process performed by the point cloud processing unit 303 is the same as that in the case of FIG.
  • the voxel data generation unit 364 may have any configuration.
  • the voxel data generation unit 364 includes a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM.
  • the processing related to the generation of voxel data may be performed by executing the processing.
  • the decoding unit 361 decodes the bit stream in step S361, and information indicating the correspondence between the unique pattern and the index, the correlation information of each block including the index, and the DAG data Extract.
  • step S 362 the voxel data generation unit 364 converts the index of the correlation information of each block into the corresponding unique pattern based on the information indicating the correspondence between the unique pattern and the index extracted in step S 361. , Voxel data of each block is generated.
  • step S363 the DAG inverse processing unit 362 performs DAG inverse processing on the DAG data extracted in step S361, and generates a Childmask of each node of the Octree pattern.
  • step S364 the Octree decoding unit 363 performs Octree decoding on the Childmask of each node of the Octree pattern obtained by the process of Step S363, and generates voxel data.
  • step S365 the point cloud processing unit 303 restores point cloud data from the voxel data obtained by the process of step S362 and the voxel data obtained by the process of step S364.
  • step S 366 the point clouding processing unit 303 outputs the restored point cloud data (decryption point cloud data) to the outside of the decryption apparatus 300.
  • step S366 ends, the decoding process ends.
  • the decoding apparatus 300 in this case can make the coding using the correlation information correspond to the scalability or can suppress the reduction of the coding efficiency.
  • the prediction residual of voxel data may be included in the bitstream to be decoded as described in ⁇ Transmission of prediction residual>.
  • the prediction residual may be coded (with a reduced amount of information). That is, the bit stream may include coefficient data in which a prediction residual is encoded.
  • the encoding method of this prediction residual is arbitrary. For example, prediction residuals may be orthogonally transformed. Also, prediction residuals may be chain encoded. Further, quantization may be performed.
  • the decoding apparatus 300 can obtain a more accurate (close to the state before encoding) decoded image (decoded point cloud data). That is, the subjective image quality of the decoding point cloud data can be improved.
  • the prediction residual encoded as described above it is possible to suppress the reduction of the coding efficiency.
  • FIG. 30 is a block diagram showing an example of the main configuration of decoding apparatus 300 in this case.
  • the decoding device 300 in this case includes a decoding unit 381, a prediction residual decoding unit 382, a voxel data generation unit 383, and a point cloud processing unit 303.
  • the voxel data generation unit 383 has a unique pattern generation unit 391 and an operation unit 392.
  • the decoding unit 381 performs processing regarding decoding of a bitstream. For example, the decoding unit 381 decodes the bit stream by the decoding method corresponding to the encoding method of the encoding unit 115, and from the bit stream, the correspondence between the correlation information of each block including the index, the unique pattern, and the index The information to be shown and the coefficient data in which the prediction residual is encoded are extracted. The decoding unit 381 supplies the extracted correlation information of each block and the information indicating the correspondence between the unique pattern and the index to the voxel data generation unit 383 (unique pattern generation unit 391), and the coefficient data is predicted residual decoding It supplies to the part 382.
  • the decryption unit 381 may have any configuration, but, for example, has a CPU, a ROM, a RAM, etc., and the CPU loads a program or data stored in the ROM etc. into the RAM. Processing may be performed on decoding by executing the process.
  • the prediction residual decoding unit 382 performs processing related to decoding of coefficient data. For example, the prediction residual decoding unit 382 decodes the coefficient data supplied from the decoding unit 381 by the decoding method corresponding to the coding method performed by the prediction residual coding unit 283 (FIG. 20), and the prediction residual Restore. The prediction residual decoding unit 382 supplies the restored prediction residual to the voxel data generation unit 383 (arithmetic unit 392).
  • the prediction residual decoding unit 382 may have any configuration.
  • the prediction residual decoding unit 382 includes a CPU, a ROM, a RAM, and the like, and the CPU stores programs and data stored in the ROM and the like in the RAM. Processing concerning decoding of the prediction residual may be performed by loading and executing.
  • the voxel data generation unit 383 performs processing related to generation of voxel data.
  • the unique pattern generation unit 391 of the voxel data generation unit 383 performs a process related to generation of a unique pattern.
  • the unique pattern generation unit 391 uses the information indicating the correspondence between the unique pattern supplied from the decoding unit 381 and the index, the unique pattern generation unit 391 generates correlation information of each block supplied from the decoding unit 381 as a unique pattern (voxel data) Convert to The unique pattern generation unit 391 supplies the generated unique pattern of each block to the calculation unit 392.
  • the unique pattern generation unit 391 may have any configuration, for example, it has a CPU, a ROM, a RAM, etc., and the CPU loads programs and data stored in the ROM etc. into the RAM. By executing the processing, processing concerning generation of a unique pattern may be performed.
  • the operation unit 392 performs processing related to generation of voxel data. For example, the calculation unit 392 adds the prediction residual supplied from the prediction residual decoding unit 382 and the unique pattern (voxel data) of each block supplied from the unique pattern generation unit 391, and generates voxel data of each block. Generate The calculation unit 392 supplies the generated voxel data to the point cloud processing unit 303.
  • the process performed by the point cloud processing unit 303 is the same as that in the case of FIG.
  • the arithmetic unit 392 may have any configuration, for example, it has a CPU, a ROM, a RAM, etc., and the CPU loads programs and data stored in the ROM etc. into the RAM. By performing the processing, processing relating to generation of voxel data may be performed.
  • the decoding device 300 can obtain a more accurate (close to the state before encoding) decoded image (decoded point cloud data). That is, the subjective image quality of the decoding point cloud data can be improved.
  • the prediction residual encoded as described above it is possible to suppress the reduction of the coding efficiency.
  • the decoding unit 381 decodes the bit stream in step S381, and information indicating the correspondence between the unique pattern and the index, the correlation information of each block including the index, and the coefficient of each block Extract the data.
  • step S382 the prediction residual decoding unit 382 performs prediction residual decoding on the coefficient data extracted in step S381 for each block to obtain a prediction residual.
  • step S383 the unique pattern generation unit 391 converts the index of the correlation information of each block into the corresponding unique pattern based on the information indicating the correspondence between the unique pattern and the index extracted in step S381.
  • step S384 the calculation unit 392 adds, for each block, the prediction residual obtained in step S382 and the unique pattern obtained in step S383 to generate voxel data.
  • step S385 the point cloud processing unit 303 restores point cloud data from the voxel data obtained by the process of step S384.
  • step S 386 the point cloud processing unit 303 outputs the decryption point cloud data to the outside of the decryption apparatus 300.
  • step S386 ends, the decoding process ends.
  • the decoding device 300 can obtain a more accurate decoded image (decoded point cloud data). That is, the subjective image quality of the decoding point cloud data can be improved. In addition, by transmitting the prediction residual encoded as described above, it is possible to suppress the reduction of the coding efficiency.
  • attribute information may be similarly encoded using correlation information.
  • attribute information for example, RGB / YUV pixel value after decoding color information
  • a block which is a reference destination of positional information (structural information), a unique pattern, or a predefined unique pattern is also used in the current block You may do so.
  • the bit stream does not include the attribute information of the block that reuses the attribute information of the reference destination block. Therefore, the decoding apparatus 300 restores the attribute information of the current block using the attribute information of the reference destination corresponding to the correlation information extracted from the bit stream.
  • a coding method for example, a color prediction mode or the like
  • a unique pattern for example, a unique pattern, or a predefined unique pattern is used in the current block.
  • the decoding apparatus 300 decodes the attribute information of the current block using the decoding method corresponding to the encoding method of the attribute information of the reference destination corresponding to the correlation information extracted from the bit stream.
  • filtering methods color format conversion, chroma sub-sampling method, de-blocking method such as de-block, etc.
  • attribute information of blocks unique patterns, or predefined unique patterns to which reference is made of position information (structure information) It may be used also in the current block.
  • the decoding apparatus 300 filters the attribute information of the current block using the filtering method of the attribute information of the reference destination corresponding to the correlation information extracted from the bit stream.
  • the degree of correlation of the distribution pattern among voxel data to be compared is calculated based on the subjective feature of the distribution pattern of voxel data values.
  • the degree of correlation of the distribution patterns among voxel data to be compared is calculated based on the subjective feature of the distribution pattern of voxel data values.
  • a correlation degree calculation unit To provide a correlation degree calculation unit.
  • FIG. 32 is a block diagram showing a main configuration example of the correlation operation unit 201 (FIG. 11) of the encoding device 100 in this case.
  • the correlation operation unit 201 in this case includes a feature amount calculation unit 411, a correlation operation set setting unit 412, and a cost calculation unit 413.
  • the feature amount calculation unit 411 performs processing regarding calculation of feature amounts. For example, the feature quantity calculation unit 411 calculates a subjective (impactly affecting) feature quantity of point cloud data based on voxel data and its texture. The feature amount calculation unit 411 supplies the calculated feature amount to the correlation calculation set setting unit 412 and the cost calculation unit 413.
  • the feature quantity calculation unit 411 may have any configuration, but for example, the CPU has a ROM, a RAM, etc., and the CPU loads programs and data stored in the ROM etc. into the RAM.
  • the processing related to the calculation of the feature amount may be performed by executing the processing.
  • the correlation calculation set setting unit 412 performs processing related to setting of a set of voxel data for which a correlation calculation is performed. For example, the correlation calculation set setting unit 412 sets voxel data for comparing the correlation of the distribution pattern with the current block based on the feature amount supplied from the feature amount calculation unit 411. That is, the correlation calculation set setting unit 412 sets, for each block, voxel data to be compared. The correlation calculation set setting unit 412 supplies, to the cost calculation unit 413, information indicating the set (set information) and voxel data.
  • the correlation calculation set setting unit 412 may have any configuration, for example, it has a CPU, a ROM, a RAM, and the like, and the CPU stores programs and data stored in the ROM and the like in the RAM. By loading and executing, processing regarding setting of a set may be performed.
  • the cost calculation unit 413 performs processing related to the calculation of the cost. For example, the cost calculation unit 413 calculates the degree of correlation (cost value) for each set of voxel data set by the correlation calculation set setting unit 412. For example, the cost calculation unit 413 calculates the degree of correlation between voxel data of the current block and all voxel data set by the correlation calculation set setting unit 412. That is, the cost calculation unit 413 calculates, for each block, the degree of correlation between all the voxel data set as the comparison target. The cost calculation unit 413 also uses the feature amount calculated by the feature amount calculation unit 411 to calculate the degree of correlation (cost value).
  • the cost calculation unit 413 identifies a set with the smallest cost value in each set (also obtains the minimum cost value). The cost calculation unit 413 supplies the calculation result of such cost value to the unique pattern setting unit 202 (FIG. 11) as the degree of correlation.
  • the cost calculation unit 413 may have any configuration.
  • the cost calculation unit 413 includes a CPU, a ROM, a RAM, and the like, and the CPU loads programs and data stored in the ROM and the like into the RAM.
  • the processing related to the calculation of the cost may be performed by executing the processing.
  • the feature quantity calculation unit 411 calculates the subjective feature quantity of the point cloud data based on the voxel data and the texture in step S401.
  • step S402 the correlation calculation set setting unit 412 sets a set of blocks to be subjected to the correlation calculation.
  • the correlation calculation set setting unit 412 may limit the comparison target to some blocks. By doing this, the correlation calculation set setting unit 412 can suppress an increase in the number of sets for which correlation calculation is performed, and can suppress an increase in the processing amount (processing time) of the correlation calculation.
  • the correlation calculation set setting unit 412 sets a set of blocks to be subjected to the correlation calculation so that the correlation calculation is performed only on the block (node) in a location spatially close to the current block (current node).
  • the correlation operation set setting unit 412 may set voxel data to be compared with the current block within a predetermined spatial range.
  • blocks in spatially close locations have a relatively high degree of correlation. Therefore, as described above, by limiting blocks to be compared to spatially close places, it is possible to easily detect a set having a high degree of correlation while suppressing an increase in the processing amount (processing time) of correlation calculation. Can.
  • the correlation calculation set setting unit 412 may set a set of blocks to be subjected to the correlation calculation so that the calculation of the correlation is performed at a level immediately above the Octree pattern.
  • the correlation operation set setting unit 412 may set voxel data to be compared with the current block in a layer higher than the layer to be processed of the layered voxel data.
  • the block 421 is a block 422 shown in B of FIG. , 2 ⁇ 2 ⁇ 2 voxels. That is, the number of voxels decreases as it goes to the upper level. Therefore, the calculation of the correlation at a higher level can suppress the increase in the processing amount (processing time) of the correlation calculation.
  • the correlation calculation set setting unit 412 may set a set of blocks to be subjected to the correlation calculation so that the correlation degree is calculated only with the representative pattern.
  • the representative pattern may be a predetermined fixed pattern (pattern not to be updated).
  • the correlation calculation set setting unit 412 may set voxel data of a predetermined fixed representative distribution pattern as voxel data to be compared with the current block.
  • this representative pattern may be updatable.
  • a representative pattern may be updated for each frame. For example, it may be updated (to a pattern according to statistical information) based on statistical information in a frame.
  • based on statistical information of past processing to a pattern according to the statistical information
  • the correlation calculation set setting unit 412 may set voxel data of a representative distribution pattern that can be updated as voxel data to be compared with the current block.
  • the cost calculation unit 413 calculates a cost value for each set of correlations set in step S402.
  • the calculation method of this cost value is arbitrary.
  • the cost calculation unit 413 may calculate the cost value for each set by a plurality of methods.
  • the cost calculation unit 413 may calculate, for each set, a plurality of cost values by methods different from each other, and select the minimum value among them as the cost value of the set.
  • step S403 ends, the correlation calculation process ends, and the process returns to FIG.
  • the cost calculation unit 413 calculates a cost value using the basic cost function for the set to be processed in step S421.
  • This basic cost function uses a general cost function.
  • This cost function may be anything, but may be, for example, a cost function as shown in the table of FIG.
  • the Hausdorff Distance is a function that evaluates and determines the maximum value of the shortest distance between two point groups from both directions.
  • PSNR Point2Point is a function that evaluates PSNR of the shortest distance between two points.
  • the strength of correlation between voxel data can be evaluated by evaluating the distance between points between voxel data using this evaluation function.
  • PSNR Point2Surface is a function for evaluating PSNR of the shortest distance between a point and a surface. By evaluating the distance between each point of one voxel data and the plane orthogonal to the normal vector of each point of the other voxel data using this evaluation function, the strength of correlation between voxel data is evaluated. can do.
  • the Hamming Distance is a function that compares bit strings and evaluates the number of bits having different values. By regarding voxel data as a bit string and comparing and evaluating two bit strings using this evaluation function, the strength of correlation between voxel data can be evaluated.
  • step S421 the cost calculation unit 413 calculates a cost value using any one of these cost functions (evaluation functions) or any combination thereof.
  • the cost calculation unit 413 calculates a penalty value for the set to be processed using the correction index.
  • the penalty value is a value that indicates that the correlation is subjectively weak, and by adding this value to the cost value, the cost value is increased (that is, the degree of correlation is evaluated to be low).
  • this penalty value is calculated using index 0 to index 3 as shown in FIG.
  • index 0 shown in A of FIG. 37 in the voxel data for evaluating correlation, in 2 ⁇ 2 ⁇ 2 voxels (voxels shown in gray) in block 431 consisting of 4 ⁇ 4 ⁇ 4 voxels If X or more (0 ⁇ X ⁇ 8) points decrease, a penalty value is set.
  • the penalty value set here is arbitrary if it is a positive value.
  • the value may be changed according to the decrease amount of points.
  • these indices define a range of a predetermined shape, and within the range, when the distribution patterns of each other differ by more than a predetermined reference, It is evaluated that the correlation of voxel data of (1) is weaker than the strength of correlation calculated using the basic cost function.
  • the shape of this range is a distribution pattern having subjective characteristics (a subjectively distinguishable distribution pattern). For example, it may be a line or a surface. That is, when any of the voxel data to be compared does not have a distribution pattern having a predetermined shape as can be seen, this correction index is an index that calculates the degree of correlation between the voxel data lower. In other words, when all of the voxel data to be compared have a distribution pattern of the shape that can be seen, this correction index is an index that more highly evaluates the degree of correlation between the voxel data.
  • the correlation may be strongly evaluated in the above-described basic cost function.
  • the decoded point cloud data since voxel data is merged in block units, there is a possibility that the decoded point cloud data may have a structure subjectively largely different.
  • the correction index described above evaluates the degree of correlation in consideration of a subjective feature, the occurrence of such a subjective change can be suppressed. Therefore, it is possible to suppress the reduction in the subjective image quality of the decoding point cloud data.
  • the indicators 0 to 3 have been described, but the number of correction indicators to be applied is arbitrary.
  • the shape of the range of each index is arbitrary as long as it has a subjective characteristic (as seen), and is not limited to the above-described example.
  • step S423 the cost calculation unit 413 calculates a correction value for the set to be processed based on the subjective feature quantity calculated in step S401 (FIG. 33).
  • the degree of correlation is evaluated based on what kind of subjective feature in the entire point cloud data the block for which the correlation is calculated is located.
  • the cost calculation unit 413 may determine that the difference in distribution pattern is likely to have a subjectively larger effect (larger change in appearance).
  • the correction value may be calculated so as to calculate the degree lower.
  • the cost calculation unit 413 may set a correction value of a positive value so that the cost value becomes larger.
  • the cost calculation unit 413 when the block for which the correlation is calculated has a color peak point, the cost calculation unit 413 generates correlation because the difference in distribution pattern is likely to have a subjectively larger effect (larger change in appearance).
  • the correction value may be calculated so as to calculate the degree lower.
  • the cost calculation unit 413 sets a correction value of a positive value so that the cost value becomes larger. You may do so.
  • the correction value may be calculated so as to calculate the degree of correlation lower.
  • the cost calculation unit 413 may set a correction value of a positive value so that the cost value becomes larger.
  • the cost calculation unit 413 may calculate the correction value so as to calculate the degree of correlation lower. For example, in this case, the cost calculation unit 413 may set a correction value of a positive value so that the cost value becomes larger.
  • the cost calculation unit 413 may calculate the correction value so as to calculate the degree of correlation lower. For example, in this case, the cost calculation unit 413 may set a correction value of a positive value so that the cost value becomes larger.
  • the cost calculation unit 413 when the block for which the correlation is calculated is a block including at least one of four points that form a surface in a three-dimensional structure drawn by a point cloud, the cost calculation unit 413 has a lower degree of correlation.
  • the correction value may be calculated to be calculated. For example, in the plane of the three-dimensional structure drawn by the point cloud, if four points are left, the plane can be restored using the four points. Therefore, the cost calculation unit 413 may set a correction value of a positive value so that at least four points remain in the portion of the surface in the three-dimensional structure drawn by the point cloud.
  • the subjective feature which the cost calculation part 413 sets a correction value is arbitrary, and is not limited to the example mentioned above. Further, the number of subjective features for which the cost calculation unit 413 sets the correction value is also arbitrary. Further, the value of the correction value set by the cost calculation unit 413 for such subjective features is arbitrary. For example, a value corresponding to the subjective feature may be set.
  • step S424 the cost calculation unit 413 calculates a final cost value (final cost value) corresponding to the set to be processed using the values calculated in each of steps S421 to S423. . That is, the cost calculation unit 413 calculates the final cost value in consideration of the subjective feature. Therefore, it is possible to suppress the reduction in the subjective image quality of the decoding point cloud data.
  • step S425 the cost calculation unit 413 determines whether there is an unprocessed set corresponding to the current block. If it is determined that there is an unprocessed set, the unprocessed set is set as a new processing target, and the process returns to step S421. That is, each process of step S421 to step S425 is executed for each set corresponding to the current block.
  • step S425 When it is determined in step S425 that all the sets corresponding to the current block have been processed, the process proceeds to step S426.
  • step S426 the cost calculation unit 413 obtains the minimum value (cost minimum value) among the final cost values of each set calculated as described above, and specifies the set corresponding to the cost minimum value.
  • step S426 ends, the cost calculation process ends, and the process returns to FIG.
  • the cost value calculated as described above is supplied to the unique pattern setting unit 202, and is used to set the unique pattern. For example, when it is determined that the cost value is sufficiently small (the distribution patterns match or approximate), the unique pattern setting unit 202 sets a unique pattern using the distribution pattern of the set of voxel data.
  • the setting method of the unique pattern in that case is arbitrary.
  • the unique pattern setting unit 202 may set a distribution pattern having a high presence frequency as the unique pattern. For example, as shown in A of FIG. 38, it is assumed that the block 451 and the block 452 are determined to be similar in distribution pattern. Here, assuming that the distribution pattern of block 452 has a higher frequency of occurrence than the distribution pattern of block 451, unique pattern setting unit 202 sets the distribution pattern of block 452 to a unique pattern as shown in B of FIG. To adopt.
  • the unique pattern setting unit 202 may evaluate the distribution pattern based on a predetermined standard, and may set the distribution pattern having a higher evaluation value (score) as the unique pattern.
  • a distribution pattern to be a model may be determined in advance, and a distribution pattern most approximate to the distribution pattern of the model may be set as a unique pattern.
  • the unique pattern setting unit 202 adopts the distribution pattern of the block 451 as a unique pattern as shown in C of FIG.
  • the unique pattern setting unit 202 may set a new distribution pattern derived by a predetermined method using each distribution pattern as the unique pattern.
  • the unique pattern setting unit 202 adopts, as a unique pattern, a new distribution pattern in which the distribution pattern of the block 451 and the distribution pattern of the block 452 are mixed, as in a block 453 shown in D of FIG.
  • the cost value calculated using the basic cost function is equal to or greater than a predetermined reference, it is determined that the correlation of the distribution pattern of the set is low (the distribution pattern neither matches nor approximates), and the penalty value or the correction value The calculation of may be omitted. Also, for example, when the calculated penalty value is equal to or more than a predetermined reference, it is determined that the correlation of the distribution pattern of the set is low (the distribution pattern neither matches nor approximates), and the calculation of the correction value is omitted. May be
  • the correlation of the distribution pattern of the set is sufficiently high (the distribution pattern is a set that matches or approximates) It may be determined that the calculation of cost values of other sets is omitted for the current block.
  • the cost calculation unit 413 calculates a cost value for the set to be processed using the basic cost function in step S441.
  • step S442 the cost calculation unit 413 determines whether the cost value is smaller than a predetermined threshold TH_MAX_0. If it is determined that the cost value is smaller than the predetermined threshold TH_MAX_0, the process proceeds to step S443.
  • step S 443 the cost calculation unit 413 calculates a penalty value for the set to be processed using the correction index.
  • step S444 the cost calculation unit 413 determines whether the penalty value is smaller than a predetermined threshold TH_MAX_1. If it is determined that the cost value is smaller than the predetermined threshold TH_MAX_1, the process proceeds to step S445.
  • step S445 the cost calculation unit 413 calculates a correction value for the set to be processed based on the subjective feature amount calculated in step S401 (FIG. 33).
  • step S446 the cost calculation unit 413 calculates a final cost value (final cost value) corresponding to the set to be processed, using the values calculated in each of steps S441, S443, and S445. That is, the cost calculation unit 413 calculates the final cost value in consideration of the subjective feature. Therefore, it is possible to suppress the reduction in the subjective image quality of the decoding point cloud data.
  • step S447 the cost calculation unit 413 determines whether the final cost value is larger than a predetermined threshold TH_MIN. If it is determined that the final cost value is smaller than a predetermined threshold TH_MIN, the process proceeds to step S449.
  • step S442 When it is determined in step S442 that the cost value calculated in step S441 is equal to or greater than the threshold TH_MAX_0, the process proceeds to step S448.
  • step S444 When it is determined in step S444 that the penalty value calculated in step S443 is equal to or greater than the threshold TH_MAX_1, the process proceeds to step S448.
  • step S448 the cost calculation unit 413 determines that there is no correlation of the distribution patterns (the distribution patterns neither match nor approximate) for the set to be processed.
  • step S448 ends, the process proceeds to step S449.
  • step S449 the cost calculation unit 413 determines whether there is an unprocessed set corresponding to the current block. If it is determined that there is an unprocessed set, the unprocessed set is set as a new processing target, and the process returns to step S441. That is, each process of step S441 to step S449 is executed for each set corresponding to the current block.
  • step S449 When it is determined in step S449 that all pairs corresponding to the current block have been processed, the process proceeds to step S450.
  • step S450 the cost calculation unit 413 obtains the minimum value (minimum cost value) among the final cost values of each set calculated as described above, and specifies the set corresponding to the minimum cost value.
  • step S450 ends, the cost calculation process ends, and the process returns to FIG.
  • step S447 When it is determined in step S447 that the final cost value is less than or equal to the threshold TH_MIN, the process proceeds to step S451.
  • step S451 the cost calculation unit 413 determines that the correlation of the distribution pattern is sufficiently high (the distribution pattern matches or approximates) for the set corresponding to the final cost value (the final cost value of all the sets). Before calculation, let the cost value be the cost minimum value. When the process of step S451 ends, the cost calculation process ends, and the process returns to FIG.
  • Octree coding or DAG processing it can be applied in the same manner as the example described above.
  • transmitting a prediction residual it can be applied similarly to the above-mentioned example.
  • the correlation operation to which the present technology is applied is described in the encoding of point cloud data, the correlation operation to which the present technology described above is applied is applied to any process using the correlation operation. can do.
  • the present invention can be applied to correlation calculation performed in point cloud alignment.
  • Registration of point clouds (Registration) is used, for example, for combining point clouds captured from a plurality of viewpoints, combining point cloud data continuous in the time direction, and the like.
  • a search algorithm for obtaining the movement amount is used so as to minimize the error of the position information of each point cloud.
  • the correlation calculation to which the present technology is applied may be applied as an index of the error used at this time.
  • the present technology is applied when the point cloud 471 and the point cloud 472 are moved to align the positions of both as shown in the example of B of FIG.
  • the reduction of subjective image quality can be suppressed by using the index that maintains the surface shape of the rabbit torso by applying the correlation calculation described above.
  • FIG. 41 is a block diagram illustrating an exemplary main configuration of an image processing apparatus according to an embodiment of the information processing apparatus to which the present technology is applied.
  • the image processing apparatus 500 shown in FIG. 41 performs registration of point cloud data (or voxel data) with each other.
  • the coding apparatus 100 performs correlation calculation to which the present technology is applied.
  • the image processing apparatus includes a position setting unit 501, a correlation operation unit 502, and a determination unit 503.
  • the position setting unit 501 sets the position of each point cloud data to be aligned.
  • the correlation operation unit 502 calculates, as a cost value, the degree of correlation (degree of correlation) of the distribution pattern of each point cloud data to be aligned in the positional relationship set by the position setting unit 501.
  • the determination unit 503 determines, based on the cost value calculated by the correlation calculation unit 502, the position at which each point cloud data is closest.
  • the position setting unit 501 updates the position of the point cloud data (or voxel data), and the correlation operation unit 502 calculates the cost value again.
  • the position setting unit 501 and the correlation operation unit 502 repeat the above processing for all the positions to which the point cloud data is moved.
  • the determination unit 503 obtains the minimum cost value (that is, the position where the point clouds are closest to each other) from the cost value of each position.
  • the correlation operation unit 502 performs the correlation operation to which the present technology as described above is applied, and voxel data to be compared based on the subjective characteristics of the distribution pattern of voxel data values. By calculating the degree of correlation of the distribution pattern between the two, alignment can be performed while suppressing reduction in subjective image quality.
  • step S501 the position setting unit 501 sets the position of each point cloud to be aligned.
  • step S502 the correlation calculation unit 502 calculates a cost value for the error (magnitude of positional deviation) between the point clouds to be compared, as in the case described with reference to FIGS. 32 to 39.
  • step S503 the position setting unit 501 determines whether or not cost values have been calculated at all positions where the point cloud can be moved. If it is determined that there is an unprocessed position, the process returns to step S501. That is, each process of step S501 to step S503 is performed with respect to all the positions which can move a point cloud.
  • step S503 When it is determined in step S503 that the cost values have been calculated at all positions, the process proceeds to step S504.
  • step S504 the determination unit 503 obtains a minimum cost value from among the cost values calculated by the correlation calculation unit 502, and specifies the position where the point clouds are closest to each other.
  • step S504 ends, the alignment process ends.
  • the cost value can be calculated in consideration of the subjective characteristics of the distribution pattern of voxel data values, so that the reduction in subjective image quality is suppressed. While the alignment can be performed.
  • the series of processes described above can be performed by hardware or software. In addition, some processes may be executed by hardware and other processes may be executed by software.
  • a program that configures the software is installed on a computer.
  • the computer includes, for example, a general-purpose personal computer that can execute various functions by installing a computer incorporated in dedicated hardware and various programs.
  • FIG. 43 is a block diagram showing an example of a hardware configuration of a computer that executes the series of processes described above according to a program.
  • a central processing unit (CPU) 901, a read only memory (ROM) 902, and a random access memory (RAM) 903 are mutually connected via a bus 904.
  • An input / output interface 910 Also connected to the bus 904 is an input / output interface 910.
  • An input unit 911, an output unit 912, a storage unit 913, a communication unit 914, and a drive 915 are connected to the input / output interface 910.
  • the input unit 911 includes, for example, a keyboard, a mouse, a microphone, a touch panel, an input terminal, and the like.
  • the output unit 912 includes, for example, a display, a speaker, and an output terminal.
  • the storage unit 913 is formed of, for example, a hard disk, a RAM disk, a non-volatile memory, or the like.
  • the communication unit 914 includes, for example, a network interface.
  • the drive 915 drives removable media 921 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
  • the CPU 901 loads the program stored in the storage unit 913 into the RAM 903 via the input / output interface 910 and the bus 904 and executes the program. Processing is performed.
  • the RAM 903 also stores data necessary for the CPU 901 to execute various processes.
  • the program executed by the computer can be recorded and applied to, for example, a removable medium 921 as a package medium or the like.
  • the program can be installed in the storage unit 913 via the input / output interface 910 by attaching the removable media 921 to the drive 915.
  • the program can also be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting.
  • the program can be received by the communication unit 914 and installed in the storage unit 913.
  • this program can be installed in advance in the ROM 902 or the storage unit 913.
  • the present technology relates to any configuration that configures an apparatus or system, for example, a processor as a system LSI (Large Scale Integration) or the like, a module using a plurality of processors, a unit using a plurality of modules, etc. It can also be implemented as a set or the like with additional functions (ie, part of the configuration of the device).
  • a processor as a system LSI (Large Scale Integration) or the like
  • a module using a plurality of processors a unit using a plurality of modules, etc.
  • additional functions ie, part of the configuration of the device.
  • the system means a set of a plurality of components (apparatus, modules (parts), etc.), and it does not matter whether all the components are in the same case. Therefore, a plurality of devices housed in separate housings and connected via a network and one device housing a plurality of modules in one housing are all systems. .
  • the above-described processing unit may be realized with any configuration as long as it has the function described for the processing unit.
  • the processing unit may be configured by any circuit, an LSI, a system LSI, a processor, a module, a unit, a set, a device, an apparatus, a system, or the like.
  • a plurality of them may be combined.
  • the same type of configuration may be combined as a plurality of circuits, a plurality of processors, or the like, or different types of configurations such as a circuit and an LSI may be combined.
  • the configuration described as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units).
  • the configuration described as a plurality of devices (or processing units) in the above may be collectively configured as one device (or processing unit).
  • configurations other than those described above may be added to the configuration of each device (or each processing unit).
  • part of the configuration of one device (or processing unit) may be included in the configuration of another device (or other processing unit) if the configuration or operation of the entire system is substantially the same. .
  • the present technology can have a cloud computing configuration in which one function is shared and processed by a plurality of devices via a network.
  • the program described above can be executed on any device.
  • the device may have necessary functions (functional blocks and the like) so that necessary information can be obtained.
  • each step described in the above-described flowchart can be executed by one device or in a shared manner by a plurality of devices.
  • the plurality of processes included in one step can be executed by being shared by a plurality of devices in addition to being executed by one device.
  • a plurality of processes included in one step can be executed as a process of a plurality of steps.
  • the processes described as a plurality of steps can be collectively performed as one step.
  • the program executed by the computer may be such that the processing of the steps describing the program is executed in chronological order according to the order described in this specification, in parallel or when a call is made, etc. It may be executed individually at the necessary timing of That is, as long as no contradiction arises, the processing of each step may be performed in an order different from the order described above. Furthermore, the process of the step of writing this program may be executed in parallel with the process of another program, or may be executed in combination with the process of another program.
  • a correlation information generation unit that generates correlation information in which voxel data obtained by quantizing point cloud data is encoded using correlation of a distribution pattern of values of the voxel data
  • An encoding unit that encodes the correlation information generated by the correlation information generation unit and generates a bitstream including the correlation information.
  • the correlation information generation unit The voxel data of the current block which is the block to be processed is A distribution pattern of values of voxel data, of the unique patterns generated using voxel data obtained by quantizing the point cloud data, Convert to an index assigned to a unique pattern that matches or approximates the distribution pattern of voxel data values of the current block,
  • the information processing apparatus according to (2) which generates the correlation information including the index.
  • the correlation information generation unit Holds information indicating the correspondence between unique patterns and indexes, Identifying an index assigned to a unique pattern that matches or approximates a distribution pattern of voxel data values of the current block based on the information;
  • the information processing apparatus according to (3) which converts voxel data of the current block into the specified index.
  • the apparatus further comprises an index assignment unit that assigns an index to a unique pattern generated using voxel data obtained by quantizing the point cloud data,
  • a unique pattern which classifies blocks according to whether the distribution pattern matches or approximates using the strength of the correlation of distribution patterns of values of voxel data between blocks, and sets a unique pattern based on the classification result Further comprising a setting unit,
  • the index assignment unit is configured to assign an index to the unique pattern set by the unique pattern setting unit.
  • the unique pattern setting unit classifies blocks using the strength of the correlation of the distribution pattern among the blocks calculated by the correlation operation unit, and sets the unique pattern based on the classification result.
  • the correlation information generation unit The voxel data of the current block which is the block to be processed is Of the peripheral blocks located around the current block,
  • the distribution pattern of voxel data values is converted into reference space coordinate information which is information indicating the position of a neighboring block that matches or approximates with the current block,
  • the information processing apparatus according to any one of (2) to (8), which generates the correlation information including the reference space coordinate information.
  • the reference space coordinate information includes reference destination space coordinate information that is information indicating an absolute position of the peripheral block.
  • the reference space coordinate information includes a reference vector which is information indicating a relative position of the peripheral block to the current block.
  • the distribution pattern identifies the peripheral block that matches or approximates to the current block based on the strength of the correlation of the distribution pattern of the values of voxel data between blocks, and the reference corresponding to the identified peripheral block
  • a reference space coordinate information setting unit for setting space coordinate information The correlation information generation unit is configured to convert voxel data of the current block into the reference space coordinate information set by the reference space coordinate information setting unit to generate the correlation information
  • the information processing apparatus according to any one of (11).
  • It further comprises a correlation operation unit for calculating the strength of correlation of distribution patterns of values of voxel data between blocks,
  • the reference space coordinate information setting unit is configured to set the reference space coordinate information based on the degree of correlation of the distribution pattern between the blocks calculated by the correlation operation unit.
  • the correlation information generation unit The voxel data of the current block which is the block to be processed is Among unique patterns which are distribution patterns of values of voxel data prepared in advance, Convert to an index assigned to a unique pattern that matches or approximates the distribution pattern of voxel data values of the current block, The information processing apparatus according to any one of (2) to (13), which generates the correlation information including the index.
  • the correlation information generation unit Holds information indicating the correspondence between unique patterns and indexes, Identifying an index assigned to a unique pattern that matches or approximates a distribution pattern of voxel data values of the current block based on the information;
  • the information processing apparatus according to (14), which converts voxel data of the current block into the specified index.
  • It further comprises a correlation operation unit that calculates the strength of correlation between the distribution pattern of the voxel data of the current block and the unique pattern, The correlation information generation unit A unique pattern that matches or approximates a distribution pattern of voxel data values of the current block is identified based on the strength of the correlation between the distribution pattern of the current block and the unique pattern calculated by the correlation operation unit.
  • the information processing apparatus which is configured as follows.
  • the correlation information generation unit Generating correlation information including time information indicating a frame corresponding to a reference destination when obtaining strength of correlation with a distribution pattern of values of voxel data of a current block which is a block to be processed (2) to (2)
  • the information processing apparatus according to any one of 16).
  • the correlation information generation unit Information on the rotation of the distribution pattern of reference voxel data values when obtaining the strength of the correlation with the distribution pattern of voxel data values of the current block that is the block to be processed;
  • the information processing apparatus according to any one of (2) to (17), which generates the correlation information including at least one of the information on the inversion of the distribution pattern of the reference destination.
  • the correlation information generation unit generates the correlation information of the current block using the correlation information of peripheral blocks located around the current block which is a block to be processed (2) to (18) The information processing apparatus according to any one of the above.
  • the system further comprises an Octree encoding unit that Octet-encodes and layers the voxel data obtained by quantizing point cloud data,
  • the correlation information generation unit is configured to generate the correlation information for the lowest level node of the voxel data hierarchized by the Octree encoding unit,
  • the encoding unit is configured to encode a signal sequence including each node of voxel data hierarchized by the Octree encoding unit and the correlation information generated by the correlation information generation unit 2)
  • An information processing apparatus according to any one of (19) to (19).
  • An effective directivity graph process of encoding a node from a level immediately above the lowest level of voxel data hierarchized by the Octree encoding unit to a predetermined level using autocorrelation It further comprises a directivity graph processing unit, The information processing apparatus according to (20), wherein the encoding unit is configured to encode a signal sequence further including the node subjected to the effective directivity graph processing.
  • (22) encoding a prediction residual which is a difference between a distribution pattern of voxel data values of a current block which is a block to be processed and a distribution pattern of voxel data values corresponding to the correlation information of the current block Further comprising a prediction residual coding unit;
  • the encoding unit encodes a signal sequence including the correlation information generated by the correlation information generation unit and coefficient data obtained by encoding the prediction residual by the prediction residual encoding unit.
  • the information processing apparatus according to any one of (2) to (21).
  • (23) The information processing apparatus according to any one of (2) to (22), wherein the encoding unit omits encoding of attribute information of a block in which the correlation information is generated by the correlation information generation unit.
  • the encoding unit encodes the attribute information of the block for which the correlation information has been generated by the correlation information generation unit, using the same encoding method as the attribute information of the reference destination corresponding to the correlation information.
  • the information processing apparatus according to any one of 2) to (23).
  • the encoding unit filters the attribute information of the block for which the correlation information is generated by the correlation information generation unit, using the same filtering method as the reference attribute information corresponding to the correlation information.
  • An information processing method comprising encoding the generated correlation information and generating a bitstream including the correlation information.
  • a decoding unit for decoding a bit stream including correlation information obtained by encoding voxel data obtained by quantizing point cloud data using correlation of a distribution pattern of values of the voxel data, and extracting the correlation information; , An voxel data generation unit configured to generate voxel data corresponding to the correlation information extracted from the bit stream by the decoding unit.
  • the decoding unit extracts the correlation information set for each block which is a partial area of a space represented by the voxel data, The information processing apparatus according to (31), wherein the voxel data generation unit generates voxel data of each block based on the correlation information of each block.
  • the correlation information is a distribution pattern of voxel data values, and is a current block that is a block to be processed among unique patterns generated using voxel data obtained by quantizing the point cloud data. Including an index assigned to a unique pattern that matches or approximates the distribution pattern of voxel data values,
  • the bit stream further includes information indicating a correspondence between a unique pattern and an index
  • the decoding unit is configured to decode the bit stream and extract the correlation information and information indicating a correspondence between the unique pattern and an index.
  • the voxel data generation unit identifies a unique pattern corresponding to an index of the correlation information of the current block extracted from the bit stream by the decoding unit using information indicating a correspondence between the unique pattern and the index.
  • the information processing apparatus wherein voxel data of the current block is generated using the identified unique pattern.
  • the correlation information is information indicating a position of a peripheral block in which a distribution pattern of values of voxel data matches or approximates with the current block among peripheral blocks located around the current block which is a block to be processed Contains reference space coordinate information which is The voxel data generation unit uses voxel data of a block at a position corresponding to the reference space coordinate information included in the correlation information of the current block extracted from the bit stream by the decoding unit.
  • An information processor according to (32) or (33), configured to generate voxel data.
  • the correlation information is a unique pattern matching or approximating the distribution pattern of voxel data values of the current block which is a block to be processed among unique patterns which are distribution patterns of voxel data values prepared in advance Contains the index assigned to The voxel data generation unit identifies a unique pattern corresponding to an index included in the correlation information of the current block extracted from the bit stream by the decoding unit, and uses the identified unique pattern to determine the current block.
  • the information processing apparatus configured to generate voxel data of (36)
  • the correlation information includes time information indicating a frame corresponding to a reference destination when obtaining the strength of the correlation with the distribution pattern of the voxel data of the current block that is the block to be processed
  • the voxel data generation unit is configured to specify a frame corresponding to the reference destination based on the time information included in the correlation information of the current block extracted from the bit stream by the decoding unit.
  • An information processing apparatus according to any one of (35) to (35).
  • the correlation information is information on the rotation of the distribution pattern of reference voxel data values when obtaining the strength of correlation with the distribution pattern of voxel data values of the current block that is the block to be processed.
  • the voxel data generation unit is based on at least one of information on the rotation included in the correlation information of the current block extracted from the bit stream by the decoding unit, and information on the inversion.
  • the information processing apparatus according to any one of (32) to (36), which is configured to perform rotation and / or inversion with respect to a distribution pattern of values of reference target voxel data.
  • the voxel data generation unit generates the correlation information of the current block by using the correlation information of peripheral blocks located around the current block which is a block to be processed, and generates the generated correlation information
  • the information processing apparatus according to any one of (32) to (37), wherein voxel data of the current block is generated using: (39)
  • the bit stream further includes coefficient data of each node of layered voxel data in which voxel data obtained by quantizing point cloud data is Octree encoded, and
  • the decoding unit is configured to decode the bitstream and further extract coefficient data of each node of the layered voxel data.
  • the information processing apparatus according to any one of (32) to (38), further including: an Octree decoding unit that performs Octree decoding on each node of the layered voxel data extracted from the bit stream by the decoding unit.
  • an Octree decoding unit that performs Octree decoding on each node of the layered voxel data extracted from the bit stream by the decoding unit.
  • the effective directivity graph processing in which the bit stream is encoded using autocorrelation for nodes from a level one level above the lowest level of the layered voxel data to a predetermined level Further include effective directivity graph data obtained by performing The decoding unit is configured to decode the bit stream and further extract the effective directivity graph data.
  • the effective directivity graph inverse processing unit for performing effective directivity graph inverse processing to decode the effective directivity graph data extracted from the bit stream by the decoding unit using autocorrelation is further included in (39) Information processor as described.
  • the bit stream is a coefficient obtained by encoding a prediction residual that is a difference between a distribution pattern of voxel data values obtained by quantizing point cloud data and a distribution pattern of voxel data values corresponding to the correlation information. Further include data, The decoding unit is configured to decode the bit stream and further extract the coefficient data.
  • the voxel data generation unit has a distribution pattern of voxel data values corresponding to the correlation information extracted from the bit stream by the decoding unit, and the coefficient data is decoded and restored by the prediction residual decoding unit.
  • the information processing apparatus according to any one of (32) to (40), wherein voxel data is generated using the prediction residual.
  • the voxel data generation unit restores attribute information of the current block, which is a block to be processed, using attribute information of a reference destination corresponding to the correlation information extracted from the bit stream by the decoding unit.
  • the information processing apparatus according to any one of (32) to (41).
  • the voxel data generation unit uses the coding method of the attribute information of the reference destination corresponding to the correlation information extracted from the bit stream by the decoding unit, and uses the attribute of the current block that is the block to be processed.
  • the information processing apparatus according to any one of (32) to (42), which decodes information.
  • the voxel data generation unit uses the filtering method of the attribute information of the reference destination corresponding to the correlation information extracted from the bit stream by the decoding unit, and uses the attribute information of the current block that is the block to be processed.
  • the information processing apparatus according to any one of (32) to (43).
  • the correlation degree calculation unit If all voxel data to be compared have the distribution pattern of a predetermined shape, the correlation degree is calculated higher, The information processing apparatus according to (102), wherein the degree of correlation is calculated to be lower when at least one of the voxel data to be compared does not have the distribution pattern of the predetermined shape. (104) The information processing apparatus according to (103), wherein the predetermined shape is a line or a plane. (105) further comprising a feature amount calculation unit that calculates a feature amount of a three-dimensional structure drawn by a point cloud, The information processing apparatus according to any one of (102) to (104), wherein the degree of correlation calculation unit calculates the degree of correlation based on the feature amount calculated by the feature amount calculation unit.
  • the correlation degree calculation unit further calculates the correlation degree to be lower in a block whose texture is finer than a predetermined reference based on the feature amount calculated by the feature amount calculation unit.
  • Information processing device Information processing device.
  • the correlation degree calculation unit further calculates the correlation degree in a block including voxels having color components that become peaks with respect to surrounding voxels based on the feature amounts calculated by the feature amount calculation unit.
  • the information processing apparatus according to (105) or (106).
  • the correlation degree calculation unit calculates the correlation degree lower in a block of a region having a higher degree of attention based on the feature amount calculated by the feature amount calculation unit.
  • the information processing apparatus according to any one of the above.
  • the correlation degree calculation unit calculates the correlation degree in a block corresponding to a human face portion in a three-dimensional structure drawn by a point cloud based on the feature amount calculated by the feature amount calculation unit.
  • the information processing apparatus according to any one of (105) to (108), which calculates lower.
  • the correlation degree calculation unit further lowers the correlation degree in a block corresponding to an edge portion in a three-dimensional structure drawn by a point cloud based on the feature amount calculated by the feature amount calculation unit.
  • the information processing apparatus according to any one of (105) to (109).
  • the correlation degree calculation unit includes at least one of four points constituting a surface in a three-dimensional structure drawn by a point cloud based on the feature amount calculated by the feature amount calculation unit.
  • the information processing apparatus according to any one of (105) to (110), wherein the degree of correlation is calculated to be lower in a block.
  • the degree-of-correlation calculation unit calculates a cost value for correlation between voxel data to be compared using a cost function, and corrects the calculated cost value based on subjective characteristics of the distribution pattern.
  • the information processing apparatus according to any one of (102) to (111), which calculates the degree of correlation between voxel data to be compared by doing.
  • the information processing apparatus is a Hausdorff Distance.
  • the information processing apparatus according to any one of (117) to (120), wherein the setting unit sets voxel data, which is an updateable representative pattern, as voxel data to be compared with the current block.
  • the correlation degree calculation unit sequentially calculates the correlation degree by a plurality of methods for each voxel data set by the setting unit, and the correlation degree calculated by any of the methods is lower than a predetermined reference. If it is determined, it is determined that the distribution pattern of the compared voxel data does not match or approximate the distribution pattern of the current block, and the calculation of the degree of correlation with the voxel data is stopped (117) to (121) The information processing apparatus according to any one of the above.
  • the correlation degree calculating unit sequentially calculates the correlation degree by a plurality of methods for each voxel data set by the setting unit, and the correlation degree calculated by any of the methods is higher than a predetermined reference. If it is determined, it is determined that the distribution pattern of the compared voxel data matches or most closely matches the distribution pattern of the current block, and the calculation of the degree of correlation for the current block is stopped (117) to (122) The information processing apparatus according to any one of the above.
  • the unique pattern setting unit sets, as the unique pattern, the distribution pattern of voxel data closest to a predetermined predetermined distribution pattern among the voxel data to be compared (124) or (125) The information processing apparatus according to the above. (127) The unique pattern setting unit sets a new distribution pattern derived by a predetermined method using the distribution pattern of voxel data to be compared as the unique pattern (124) to (126). The information processing apparatus according to any one of the above. (128) The position setting unit configured to set the positions of the voxel data to be compared to be close to each other based on the degree of correlation calculated by the degree of correlation calculation unit. Any one of (102) to (127) The information processing apparatus according to claim 1. (129) In the comparison of voxel data obtained by quantizing point cloud data, the degree of correlation of the distribution pattern among voxel data to be compared is calculated based on the subjective feature of the distribution pattern of values of voxel data .
  • Reference Signs List 100 encoder 101 control unit, 111 pre-processing unit, 112 bounding box setting unit, 113 voxel setting unit, 114 signal sequence generation unit, 115 coding unit, 201 correlation operation unit, 202 unique pattern setting unit, 203 index assignment Unit, 204 correlation information generation unit, 221 correlation operation unit, 222 reference space coordinate information setting unit, 223 correlation information generation unit, 241 correlation operation unit, 242 correlation information generation unit, 261 Octree encoding unit, 262 DAG processing unit, 281 Correlation information generation unit, 282 operation unit, 283 prediction residual coding unit, 300 decoding device, 301 decoding unit, 302 voxel data generation unit, 303 point clouding processing unit, 321 decoding unit, 322 Cell data generator, 341 decoder, 342 voxel data generator, 361 decoder, 362 DAG inverse processor, 363 Octree decoder, 364 voxel data generator, 381 decoder, 382 prediction residual decoder

Landscapes

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

Abstract

本開示は、符号化効率の低減を抑制することができるようにする情報処理装置および方法に関する。 ポイントクラウドデータを量子化したボクセルデータの比較において、ボクセルデータの値の分布パタンの主観的特徴に基づいて、比較対象のボクセルデータ間におけるその分布パタンの相関度を算出する。本開示は、例えば、情報処理装置、画像処理装置、電子機器、情報処理方法、またはプログラム等に適用することができる。

Description

情報処理装置および方法
 本開示は、情報処理装置および方法に関し、特に、主観画質の低減を抑制することができるようにした情報処理装置および方法に関する。
 従来、点群の位置情報や属性情報等により3次元構造を表すポイントクラウドや、頂点、エッジ、面で構成され、多角形表現を使用して3次元形状を定義するメッシュの頂点データの圧縮方法として、例えばOctree等のような、ボクセル(Voxel)を用いた符号化があった。またOctree符号化されたデータを、自己相関を利用してさらに可逆符号化する方法も考えられた(例えば非特許文献1参照)。
 非特許文献1に記載のDAG(Directed Acyclic Graph)(有効指向性グラフとも称する)は、Octree符号化されたデータの木構造(Octreeパタン)が同一のノードをまとめることにより、冗長性を低減させて情報量を低減させることができる。
 また、従来、データ同士の類似度(相関度)を評価する指標として、例えばPSNR(Peak signal-to-noise ratio)等が提案されている。
V.Kampe, "High Resolution Sparse Voxel DAGs", ACM 2013
 しかしなら、PSNRのような一般的な評価指標は、一般的なデータとしての評価を行うので、主観的な画質(見た目の良さ)に対応しているとは限らない。そのため、ポイントクラウドデータ(ボクセルデータ)の相関度の評価において、このような一般的な評価指標のみを利用してRD最適を考慮したノードのマージを行うだけでは、復号ポイントクラウドデータにおいて、主観的な劣化が目立つおそれがあった。
 本開示は、このような状況に鑑みてなされたものであり、主観画質の低減を抑制することができるようにするものである。
 本技術の一側面の情報処理装置は、ポイントクラウドデータを量子化したボクセルデータの比較において、ボクセルデータの値の分布パタンの主観的特徴に基づいて、比較対象のボクセルデータ間における前記分布パタンの相関度を算出する相関度算出部を備える情報処理装置である。
 本技術の一側面の情報処理方法は、ポイントクラウドデータを量子化したボクセルデータの比較において、ボクセルデータの値の分布パタンの主観的特徴に基づいて、比較対象のボクセルデータ間における前記分布パタンの相関度を算出する情報処理方法である。
 本技術の一側面の情報処理装置および方法においては、ポイントクラウドデータを量子化したボクセルデータの比較において、ボクセルデータの値の分布パタンの主観的特徴に基づいて、比較対象のボクセルデータ間におけるその分布パタンの相関度が算出される。
 本開示によれば、情報を処理することができる。特に、主観画質の低減を抑制することができる。
ポイントクラウドの例を説明する図である。 DAGの例を説明する図である。 Octree符号化の例を説明する図である。 DAGの例を説明する図である。 DAGの例を説明する図である。 ボクセルデータの符号化の例を説明する図である。 符号化装置の主な構成例を示すブロック図である。 符号化の概要の例を説明する図である。 ボクセルデータの符号化の例を説明する図である。 インデックスを用いたボクセルデータの符号化の例を説明する図である。 信号列生成部の主な構成例を示すブロック図である。 符号化処理の流れの例を説明するフローチャートである。 信号列生成処理の流れの例を説明するフローチャートである。 信号列生成部の主な構成例を示すブロック図である。 信号列生成処理の流れの例を説明するフローチャートである。 信号列生成部の主な構成例を示すブロック図である。 信号列生成処理の流れの例を説明するフローチャートである。 信号列生成部の主な構成例を示すブロック図である。 信号列生成処理の流れの例を説明するフローチャートである。 信号列生成部の主な構成例を示すブロック図である。 信号列生成処理の流れの例を説明するフローチャートである。 復号装置の主な構成例を示すブロック図である。 復号処理の流れの例を説明するフローチャートである。 復号装置の主な構成例を示すブロック図である。 復号処理の流れの例を説明するフローチャートである。 復号装置の主な構成例を示すブロック図である。 復号処理の流れの例を説明するフローチャートである。 復号装置の主な構成例を示すブロック図である。 復号処理の流れの例を説明するフローチャートである。 復号装置の主な構成例を示すブロック図である。 復号処理の流れの例を説明するフローチャートである。 相関演算部の主な構成例を示すブロック図である。 相関演算処理の流れの例を説明するフローチャートである。 サーチする範囲の例を示す図である。 コスト算出処理の流れの例を説明するフローチャートである。 コスト関数の例を示す図である。 指標の例を示す図である。 ユニークパタンの設定例を示す図である。 コスト算出処理の流れの例を説明するフローチャートである。 位置合わせの例を示す図である。 画像処理装置の主な構成例を示すブロック図である。 位置合わせ処理の流れの例を説明するフローチャートである。 コンピュータの主な構成例を示すブロック図である。
 以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
 1.ボクセルデータの符号化
 2.第1の実施の形態(符号化装置)
 3.第2の実施の形態(復号装置)
 4.第3の実施の形態(相関演算処理)
 5.その他
 <1.ボクセルデータの符号化>
  <ポイントクラウド>
 従来、点群の位置情報や属性情報等により3次元構造を表すポイントクラウドや、頂点、エッジ、面で構成され、多角形表現を使用して3次元形状を定義するメッシュ等のデータが存在した。
 例えばポイントクラウドの場合、図1のAに示されるような立体構造物を、図1のBに示されるような多数の点(ポイントデータ)の集合(点群)として表現する。つまり、ポイントクラウドのデータは、この点群の各点の位置情報や属性情報(例えば色等)により構成される。したがってデータ構造が比較的単純であるとともに、十分に多くの点を用いることにより任意の立体構造を十分な精度で表現することができる。
 しかしながら、このようなポイントクラウドやメッシュ等のデータはそのデータ量が比較的大きいので、符号化等によるデータ量の圧縮が求められている。例えば、OctreeやKDtree等といったボクセル(Voxel)を用いた符号化方法が考えられた。ボクセルは、符号化対象の位置情報を量子化するためのデータ構造である。
  <有効指向性グラフ>
 また、例えば、非特許文献1に記載のDAG(Directed Acyclic Graph)(有効指向性グラフとも称する)のように、Octree符号化されたデータを、自己相関を利用してさらに可逆符号化する方法も考えられた。このDAG(有効指向性グラフ)は、Octree符号化されたデータの木構造(Octreeパタン)が同一のノードをまとめることにより、冗長性を低減させて情報量を低減させることができる。
 このDAGによる冗長性の低減の様子の例を、図2を参照して説明する。例えば、図2のAに示されるような2分木構造について考える。この2分木構造の各四角はノードを示している。各ノード間の矢印はノード同士を結びつけるポインタを示している。図2のAの2分木構造には、白、黒、グレーの3種類のノードが存在する。各色は値を示している。つまり、図2のAの2分木構造には、3種類の値のノードが存在する。
 ここでこの2分木構造の図中一番下のノード(最下位レベルのノード)に着目すると、白と黒の2種類のノードが存在する。つまり、黒のノード同士と白のノード同士とで冗長性が生じている。そこで図2のBに示されるように黒のノードと白のノードを1つずつ残し、重複する他のノードを削除する。
 そして、その一段上のレベルのノードを、残した黒のノードまたは白のノードに結びつける。つまり、下から2段目のレベルのノードの内、最下位レベルの黒のノードに結び付けられていたノードは、残した黒のノードに結び付け直し、最下位レベルの白のノードに結び付けられていたノードは、残した白のノードに結び付け直す。より具体的には、下から2段目のレベルの各ノードのポインタ(矢印)の先を、残した黒または白のノードを指定するように更新する。
 このような操作により、図2のCに示されるように、最下位レベルのノードが2つに削減される。ノードの値は変化しないので、図2のCの2分木構造は、実質的に図2のAの2分木構造と同等である。つまり、可逆に圧縮される。
 次に、図2のCに示されるように、下から2段目のレベルについても同様にノードを集約させる。2分木構造の各レベルについて同様の処理を行うことにより、2分木構造最終的に図2のDのようにすることができる。つまり、図2のDの2分木構造は、図2のAの2分木構造と同等である。以上のように、DAGにより、2分木構造の情報を可逆に圧縮することができる。
  <OctreeとDAG>
 このDAG(有効指向性グラフ)は、Octree符号化されたボクセルデータの構造であるOctreeパタンにも適用することができる。Octreeパタンにおいては、図3のAに示されるように、上位のレベルの2×2×2のボクセルの内、ポイントデータが存在するボクセルが、1段下位のレベルにおいてさらに2×2×2に分割される。図3のAにおいて、グレーで示されるボクセルが、ポイントデータが存在するボクセルであることを示している。上位のレベルのノード10のボクセルの内、2つがグレーのボクセルである。したがって、この2つのボクセルが1段下位のレベルのノード11およびノード12とされ、さらに、2×2×2のボクセルに分割されている。
 図3のBはこのようなOctreeパタンのデータ構造の概要を示す。図3のBにおいて、ノード20は、上位のノードを示し、ノード21およびノード22は、そのノード20に属する1段下位のレベルのノードを示す。
 各ノード内の四角は、各ボクセルのデータを示す。1ボクセルのデータは、例えば、1バイト(byte)により構成される。つまり、1ノードのデータは8バイトにより構成される。ここでは説明の便宜上、白と斜線模様の2種類のデータが存在するとする。白のデータは、ポイントデータが存在しないボクセルのデータを示し、斜線模様のデータは、ポイントデータが存在するデータを示す。
 斜線模様の各データには、1段下位のノードのデータが存在するアドレスを示すポインタが付与される。つまり、ポイントデータが存在するボクセルのみ、1段下位のノードが形成される。ノードのデータ構造は、各レベルにおいて同様である。最下位のデータには、より下位レベルのデータが存在するアドレスを示すポインタは付与されない。なお、この説明では位置情報についてのみ説明し、属性情報の説明は省略している。
 図3のBの例の場合、ノード21とノード22とが、各ボクセルのデータのパタンが一致している。つまり、両ノードにおけるボクセルデータの値の分布パタンが互いに同一である。すなわち、同一のデータが複数のアドレスに存在するので、冗長である。したがって、DAGを行うことにより、図4に示されるように、この2ノードが1つにマージされる。例えば、ノード21が削除され、ノード20の左から2つ目のボクセルのデータのポインタが、ノード22のアドレスを示すように更新される。このようにすることにより、このレベルのデータの冗長性を低減させることができる。
 各レベルにおいて同様にして冗長性を低減させることができる。すなわち、図5に示されるように、複数のレベルについても同様に、データ構造が同一な部分をマージすることができる。
  <DAGの特性>
 DAGは、主にコンピュータモデルより生成された巨大なCGデータ(数億点の頂点情報を持つようなデータ)の情報量低減を目的としている。つまり、大容量かつ低ノイズのデータを対象として高圧縮率で圧縮することを目的としている。
 しかしながら、自然画像等のポイントクラウドデータの場合、ノイズやデータに含まれるディテール情報等によって、同一のOctreeパタンが発生する確率が低減するため、十分な圧縮効率が得られないおそれがあった。つまり、符号化効率が低減するおそれがあった。
 また、解像度が比較的低い場合(例えば頂点情報が百万点程度)の場合も、同一のOctreeパタンが発生する確率が低減するため、十分な圧縮効率が得られないおそれがあった。つまり、符号化効率が低減するおそれがあった。
 なお、DAGは、記録媒体にデータを保存する場合や、GPU等において処理する際のメモリに格納する場合の容量低減を目的とした処理であり、データ伝送については考慮されていない。したがって伝送時のデータ構造等は定義されていない。
  <ボクセルデータの符号化>
 そこで、例えば図6に示されるように、ボクセルデータ60(ボクセル化された3次元データ)において、所定数のボクセルからなるブロック61とブロック62とのように、ボクセルデータの値の分布パタンが一致する場合(DAGと同様)だけでなく、ブロック61(ブロック62)とブロック63とのように、ボクセルデータの値の分布が近似する場合も、(両ブロックの分布パタンが同一とみなし、)マージするようにする。
 換言するに、ブロック61乃至ブロック63とブロック64とのように、ボクセルデータの値の分布が一致も近似もしない場合のみ、(両ブロックのボクセルデータの値の分布パタンが互いに異なるとみなし、)マージしないようにする。
 つまり、ボクセルデータ60に対して、各ブロック間における、ボクセルデータの値の分布パタンの相関の強さを求め、その相関の強さに基づいて上述のように各ブロックをマージする。このようにすることにより、情報量を低減させることができる。上述のように分布パタンが近似する場合もマージすることができるので、DAGの場合よりも情報量を低減させることができる。すなわち、符号化効率の低減を抑制することができる。
 なお、図6においては、4×4×4のボクセルからなるブロックについて、ボクセルデータの値の分布パタンを比較しているが、この比較を行うブロックのサイズ(ボクセルの個数)は、任意であり、4×4×4に限定されない。
 なお、以下においては符号化対象のデータとしてポイントクラウドを例に本技術の説明を行うが、本技術は、ポイントクラウドに限らず、例えばメッシュ等、3次元構造を示し、ボクセルを用いた符号化が可能なデータであればどのような符号化対象に対しても適用することができる。また、この符号化対象は、動画像であってもよいし、静止画像であってもよい。
 <2.第1の実施の形態>
  <符号化装置>
 図7は、本技術を適用した情報処理装置の一実施の形態である符号化装置の主な構成例を示すブロック図である。図7に示される符号化装置100は、符号化対象として入力されたポイントクラウドのデータを、ボクセルを用いて符号化し、得られた符号化データ等を出力する。その際、符号化装置100は、以下に説明するように本技術を適用した方法でこの符号化を行う。
 図7に示されるように、符号化装置100は、制御部101、前処理部111、バウンディングボックス設定部112、ボクセル設定部113、信号列生成部114、および符号化部115を有する。
 制御部101は、符号化装置100内の各処理部の制御に関する処理を行う。例えば、制御部101は、各処理部による処理の実行またはスキップ(省略)を制御する。例えば、制御部101は、所定の制御情報に基づいてそのような制御を行う。このようにすることにより、制御部101は、不要な処理の実行を抑制することができ、負荷の増大を抑制することができる。
 制御部101は、どのような構成を有するようにしてもよいが、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、処理を行うようにしてもよい。
 前処理部111は、制御部101により制御され、符号化装置100に入力される符号化対象(ポイントクラウドのデータ)に対して、前処理として所定の処理を施し、処理後のデータをバウンディングボックス設定部112に供給する。
 例えば、制御部101は、前処理の実行を許可または禁止する制御情報に従って、前処理の実行が許可されている(禁止されていない)場合に、前処理部111に前処理を実行させる。また、例えば、制御部101は、前処理の実行の許可または禁止の対象となる符号化対象の範囲を示す制御情報に従って、前処理の実行が許可されている(禁止されていない)符号化対象に対して、前処理部111に前処理を実行させる。さらに例えば、制御部101は、実行を許可または禁止する処理内容を指定する制御情報に従って、実行が許可されている(禁止されていない)処理を前処理部111に実行させる。このようにすることにより、不要な前処理の実行を抑制することができ、負荷の増大を抑制することができる。
 なお、前処理の内容は任意である。例えば、前処理部111が、前処理として、ノイズを低減させる処理を施すようにしても良いし、解像度(点の数)を変更する処理を行うようにしても良い。また例えば、点群の密度を均等にしたり、所望の偏りを持たせたりするように、各点の配置を更新するようにしてもよい。さらに例えば、奥行き情報を有する画像情報等のようなポイントクラウドでないデータが符号化装置100に入力されるようにし、前処理部111が、前処理として、その入力されたデータをポイントクラウドのデータに変換するようにしてもよい。
 前処理部111は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、前処理を行うようにしてもよい。
 バウンディングボックス設定部112は、制御部101により制御されて、符号化対象の位置情報を正規化するためのバウンディングボックスの設定に関する処理を行う。
 例えば、制御部101は、バウンディングボックスの設定の許可または禁止する制御情報に従って、そのバウンディングボックスの設定が許可されている(禁止されていない)場合に、バウンディングボックス設定部112にそのバウンディングボックスを設定させる。また、例えば、制御部101は、バウンディングボックスの設定の許可または禁止の対象となる符号化対象の範囲を示す制御情報に従って、そのバウンディングボックスの設定が許可されている(禁止されていない)符号化対象に対して、バウンディングボックス設定部112にそのバウンディングボックスを設定させる。さらに例えば、制御部101は、バウンディングボックスの設定に用いられるパラメータの許可または禁止に関する制御情報に従って、バウンディングボックス設定部112に、使用が許可されている(禁止されていない)パラメータを用いてバウンディングボックスを設定させる。このようにすることにより、不要なバウンディングボックスの設定や不要なパラメータの使用を抑制することができ、負荷の増大を抑制することができる。
 例えば、バウンディングボックス設定部112は、符号化対象の各オブジェクトに対するバウンディングボックスを設定する。例えば、図8のAに示されるように、ポイントクラウドのデータによりオブジェクト131やオブジェクト132が表現されている場合、バウンディングボックス設定部112は、図8のBに示されるように、そのオブジェクト131やオブジェクト132をそれぞれ包含するようにバウンディングボックス141やバウンディングボックス142を設定する。図7に戻り、バウンディングボックスが設定されると、バウンディングボックス設定部112は、そのバウンディングボックスに関する情報をボクセル設定部113に供給する。
 なお、バウンディングボックス設定部112は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、バウンディングボックスの設定に関する処理を行うようにしてもよい。
 ボクセル設定部113は、制御部101により制御されて、符号化対象の位置情報を量子化するためのボクセルの設定に関する処理を行う。
 例えば、制御部101は、ボクセルの設定の許可または禁止する制御情報に従って、そのボクセルの設定が許可されている(禁止されていない)場合に、ボクセル設定部113にそのボクセルを設定させる。また、例えば、制御部101は、ボクセルの設定の許可または禁止の対象となる符号化対象の範囲を示す制御情報に従って、そのボクセルの設定が許可されている(禁止されていない)符号化対象に対して、ボクセル設定部113にそのボクセルを設定させる。さらに例えば、制御部101は、ボクセルの設定に用いられるパラメータの許可または禁止に関する制御情報に従って、ボクセル設定部113に、使用が許可されている(禁止されていない)パラメータを用いてボクセルを設定させる。このようにすることにより、不要なボクセルの設定や不要なパラメータの使用を抑制することができ、負荷の増大を抑制することができる。
 例えば、ボクセル設定部113は、バウンディングボックス設定部112により設定されたバウンディングボックス内に、ボクセルを設定する。例えば、ボクセル設定部113は、図8のCに示されるように、バウンディングボックス141を分割してボクセル151を設定する。つまり、ボクセル設定部113は、バウンディングボックス内のポイントクラウドデータをボクセルにより量子化(すなわちボクセル化)する。なお、バウンディングボックスが複数存在する場合、ボクセル設定部113は、各バウンディングボックスについてポイントクラウドデータをボクセル化する。つまり、図8のBの例の場合、ボクセル設定部113は、バウンディングボックス142に対しても同様の処理を行う。以上のようにしてボクセルが設定されると、ボクセル設定部113は、そのボクセル化されたポイントクラウドデータ(ボクセルデータとも称する)(位置情報の量子化のためのデータ構造に関する情報)や属性情報等を、信号列生成部114に供給する。
 なお、ボクセル設定部113は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、ボクセルの設定に関する処理を行うようにしてもよい。
 信号列生成部114は、制御部101により制御され、信号列の生成に関する処理を行う。
 例えば、制御部101は、信号列の生成を許可または禁止する制御情報に従って、信号列の生成が許可されている(禁止されていない)場合に、信号列生成部114に信号列を生成させる。また、例えば、制御部101は、信号列の生成の許可または禁止の対象となる符号化対象の範囲を示す制御情報に従って、信号列の生成が許可されている(禁止されていない)符号化対象に対して、信号列生成部114に信号列を生成させる。このようにすることにより、不要な信号列の生成を抑制することができ、負荷の増大を抑制することができる。
 信号列生成部114は、例えば、ポイントクラウドデータを量子化したボクセルデータ(例えば図8のCに示されるようなボクセル設定部113により生成されたボクセルデータ)を、そのボクセルデータの値の分布パタンの相関を利用して符号化する(相関情報を生成する)。例えば、信号列生成部114は、ボクセルデータが表す空間の部分領域であるブロック毎に、そのボクセルデータを符号化して相関情報を生成する。信号列生成部114は、生成した相関情報やその他の情報を信号列化し、その信号列を符号化部115に供給する。
 なお、信号列生成部114は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、信号列の生成に関する処理を行うようにしてもよい。
 符号化部115は、制御部101により制御され、供給された信号列の符号化に関する処理を行う。
 例えば、制御部101は、信号列の符号化を許可または禁止する制御情報に従って、信号列の符号化が許可されている(禁止されていない)場合に、符号化部115に信号列を符号化させる。また、例えば、制御部101は、信号列の符号化の許可または禁止の対象となる符号化対象の範囲を示す制御情報に従って、信号列の符号化が許可されている(禁止されていない)符号化対象に対して、符号化部115に信号列を符号化させる。このようにすることにより、不要な信号列の符号化を抑制することができ、負荷の増大を抑制することができる。
 符号化部115は、例えば、供給された信号列を符号化し、符号化データ(ビットストリーム)を生成する。つまり、符号化部115は、信号列生成部114により生成された相関情報を符号化し、その相関情報を含むビットストリームを生成する。
 この信号列の符号化方法は任意である。例えば、符号化部115が、可変長符号化(VLC(Variable Length Code))により信号列を符号化するようにしてもよい。図8のDは、符号化された信号列の様子の例を示している。なお、符号化部115は、位置情報だけでなく、属性情報(例えば、色情報、αチャンネル、法線ベクトル等)も符号化する。
 また、符号化部115は、適宜、例えば制御情報等の、ポイントクラウドデータ以外の関連情報も符号化し、ヘッダやパラメータセット等に格納する。例えば、符号化部115は、ボクセルデータが表す空間の部分領域であるブロック間におけるボクセルデータの値の分布パタンの相関の強さに基づいて設定されたボクセルデータの値の分布パタンであるユニークパタンと、そのユニークパタンを識別するためのインデックスとの対応関係を示す情報を符号化し、ヘッダやパラメータセット等に格納するようにしてもよい。
 符号化部115は、上述した各種情報のビットストリームを互いに関連付ける。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データに関連付けられた制御情報は、その符号化データとは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データに関連付けられた制御情報は、その符号化データとは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
 符号化部115は、このような符号化により得られた符号化データ(ビットストリーム)を符号化装置100の外部に出力する。この符号化装置100より出力されたデータ(符号化データや制御情報)は、例えば、図示せぬ後段の処理部により復号され、ポイントクラウドのデータが復元されるようにしてもよいし、図示せぬ通信部により送信され、所定の伝送路を介して復号装置等の他の装置に伝送されるようにしてもよいし、図示せぬ記録媒体に記録されるようにしてもよい。
 なお、符号化部115は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、符号化に関する処理を行うようにしてもよい。
  <ボクセルデータの符号化方法の例1>
 信号列生成部114による、上述の相関の強さを利用したボクセルデータの符号化の方法は、任意である。その方法の例を、図9の表に示す。例えば、信号列生成部114は、図9に示される表のid = 1の行に示される方法により、ボクセルデータを符号化するようにしてもよい。この場合、画面内のノード(Node)に対してユニークなインデックス(Index)を付与し、符号化ブロックに用いる。つまり、ユニークパタンとそのインデックス(Index)とを用いてボクセルデータが符号化される。
 この場合、信号列生成部114は、図10のAに示されるように、画面内の全ノード(Node)から冗長なノードを削減し、ユニークパタンUiを検出し、検出した各ユニークパタンUiに対して互いに異なるインデックス(Idx)を割り当てる。そして、信号列生成部114は、図10のBに示されるように、ボクセルデータ60の各ブロックのボクセルデータを、そのブロックとボクセルデータの値の分布パタンが一致または近似するユニークパタンUiに割り当てたインデックスに置き換える。つまり、全ノードがインデックスを用いて表現される。
 そして、符号化部115は、図10のAに示されるようなユニークパタンとインデックスとの対応関係を示す情報や、図10のBに示されるような各ブロックのボクセルパタンと置き換えたインデックスのリスト(IdxLst)を符号化し、ビットストリームを生成する。
   <信号列生成部>
 図11は、この場合の信号列生成部114(図7)の主な構成例を示すブロック図である。図11に示されるように、この場合の信号列生成部114は、相関演算部201、ユニークパタン設定部202、インデックス割り当て部203、および相関情報生成部204を有する。
 相関演算部201は、ボクセルデータの値の分布パタンの相関の強さ(相関度とも称する)の算出に関する処理を行う。例えば、相関演算部201は、ボクセル設定部113から供給されたボクセルデータについて、ボクセルデータが表す空間の部分領域であるブロック間のボクセルデータの値の分布パタンの相関度を算出する。
 なお、この比較は任意のブロック間(つまり任意のボクセル群同士の間)で行うことができる。例えば、相関演算部201は、Octreeパタンのノードをブロックとし、そのノード間の相関度を算出するようにしてもよいし、ノードとノードでないブロックとの間の相関度を算出するようにしてもよいし、ノードでないブロック同士の相関度を算出するようにしてもよい。また、この相関度の算出方法は任意である。
 相関演算部201は、供給されたボクセルデータとともに、算出した相関度を示す情報をユニークパタン設定部202に供給する。
 なお、相関演算部201は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、相関度の算出に関する処理を行うようにしてもよい。
 ユニークパタン設定部202は、ユニークパタンの設定に関する処理を行う。例えば、ユニークパタン設定部202は、相関演算部201から供給された相関度を利用してその分布パタンが一致または近似するかによってブロックを分類する(例えばマージする)。
 そして、ユニークパタン設定部202は、その分類結果に基づいてユニークパタンUiを設定する。このユニークパタンUiは、例えば、図10のAのブロック61やブロック64のように、ユニークパタンUiとして選択されたもの同士において、分布パタンが互いに異なるボクセルデータである。つまり、ユニークパタンUiのボクセルデータの値の分布パタンは、他のユニークパタンUiのボクセルデータの値の分布パタンと異なる。
 このようなユニークパタンUiを設定する際に、ユニークパタン設定部202は、上述のように、比較したブロック同士でボクセルデータの値の分布パタンが一致する場合だけでなく、近似する場合も、両ブロックのその分布パタンが同一であるとみなし、マージする。換言するに、ユニークパタン設定部202は、比較したブロックにおいてその分布パタンが一致もせず、近似もしない場合のみ、両ブロックのその分布パタンが互いに異なると判定する。なお、この分布パタンが近似していると判定する基準は、任意である。
 このようにすることにより、ユニークパタン設定部202は、分布パタンが互い異なる(つまり、分布パタンが互いに一致も近似もしない)ユニークパタンUiを設定することができる。ユニークパタン設定部202は、供給されたボクセルデータとともに、設定したユニークパタンUiを、インデックス割り当て部203に供給する。
 なお、ユニークパタン設定部202は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、ユニークパタンの設定に関する処理を行うようにしてもよい。
 インデックス割り当て部203は、インデックスの割り当てに関する処理を行う。例えば、インデックス割り当て部203は、ユニークパタン設定部202から供給されたユニークパタンにインデックスを割り当てる。
 その際、インデックス割り当て部203は、図10のAに示されるように、各ユニークパタンに対して互いに異なるインデックスを割り当てる。なお、このインデックスの割り当て方は、任意である。つまり、各ユニークパタンに対して互いに異なるインデックスを割り当てる限り、各ユニークパタンに対してどのような値のインデックスを割り当てるようにしてもよい。例えば、インデックス割り当て部203は、符号化対象のボクセルデータにおいて出現頻度のより高いユニークパタンに対して、情報量のより少ないインデックスを割り当てるようにしてもよい。このようにすることにより、相関情報の情報量をより低減させることができ、符号化効率の低減をより抑制することができる。
 インデックス割り当て部203は、全てのユニークパタンUiに対して上述のようにインデックスを割り当てると、供給されたボクセルデータとともに、その割り当てた結果であるユニークパタンとインデックスとの対応関係を示す情報を、相関情報生成部204に供給する。このユニークパタンとインデックスとの対応関係を示す情報は、設定された各ユニークパタンUiと、各ユニークパタンUiに割り当てられたインデックスとを示す情報である。例えば、この情報は、ユニークパタンとインデックスとの対応関係が示されるように構成された、ユニークパタンのリストとインデックスのリストとを含む。
 なお、インデックス割り当て部203は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、インデックスの割り当てに関する処理を行うようにしてもよい。
 相関情報生成部204は、相関情報の生成に関する処理を行う。例えば、相関情報生成部204は、処理対象のブロックであるカレントブロックのボクセルデータを、そのカレントブロックのボクセルデータの値の分布パタンに一致または近似するユニークパタンに割り当てられたインデックスに変換し、インデックスを含む相関情報を生成する。
 相関情報とは、ボクセルデータの値の分布パタンの相関を利用してボクセルデータを符号化したものである。相関情報生成部204は、符号化対象のボクセルデータの各ブロックを、上述のユニークパタンUi(のインデックス)に置き換えることにより、符号化対象のボクセルデータを符号化する。つまり、この場合、相関情報は、ユニークパタンUiのインデックスにより構成される。
 より具体的には、相関情報生成部204は、インデックス割り当て部203から供給されるユニークパタンとインデックスとの対応関係を示す情報を保持する。相関情報生成部204は、ユニークパタン設定部202によりユニークパタンを設定する際に行われた各ブロックのボクセルデータの値の分布パタンの分類(マージ)に基づいて、各ブロックのその分布パタンに対応するユニークパタンUiを特定する。つまり、各ブロックとその分布パタンが一致または近似するユニークパタンUiが特定される。そして、相関情報生成部204は、保持したその情報に基づいて、その特定したユニークパタンUiに対応するインデックスを特定する。そして、相関情報生成部204は、各ブロックのボクセルデータを、その特定したインデックスに置き換える(変換する)。
 このようにすることにより、その符号化結果として、図10のBに示されるような、インデックスのリスト(IdxLst)が得られる。相関情報生成部204は、供給された各ブロックのボクセルデータの代わりに、その相関情報(インデックス)を信号列として符号化部115に供給する。また、相関情報生成部204は、保持しているユニークパタンとインデックスとの対応関係を示す情報も信号列として符号化部115に供給する。つまり、これらの情報は符号化部115によって上述のように符号化され、ビットストリームに含められ、復号側に伝送されたり、記録媒体に記録されたりする。
 このように各ブロックのボクセルデータを、図10のAに示されるユニークパタンUiに割り当てられたインデックスを用いて、図10のBに示されるようにインデックス化することにより、分布パタンが同一のボクセルデータがマージされるので、相関情報生成部204は、ビットストリームの冗長性を低減させることができる。また、上述のように、このユニークパタンUiは、ボクセルデータの値の分布パタンが互いに一致するブロックだけでなく、分布パタンが近似するブロックもマージして設定されるので、相関情報生成部204は、ビットストリームの冗長性をより低減させることができる。したがって、信号列生成部114は、符号化効率の低減を抑制することができる。
 なお、相関情報生成部204は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、相関情報の生成に関する処理を行うようにしてもよい。
   <符号化処理の流れ>
 以上のような構成の符号化装置100により実行される符号化処理の流れの例を図12のフローチャートを参照して説明する。
 符号化処理が開始されると、前処理部111は、ステップS101において、入力されたデータに対して前処理を行う。
 ステップS102において、バウンディングボックス設定部112は、前処理されたデータに対してバウンディングボックスを設定する。
 ステップS103において、ボクセル設定部113は、ステップS102において設定されたバウンディングボックスにボクセルを設定する。
 ステップS104において、信号列生成部114は、データ構造に基づいて信号列を生成する。
 ステップS105において、符号化部115は、ステップS104の処理により生成された信号列を符号化する。
 ステップS106において、符号化部115は、その符号化により得られたビットストリームを符号化装置100の外部に出力する。このビットストリームは例えば復号側(復号装置等)に伝送されたり、記録媒体に記録されたりする。
 ステップS106の処理が終了すると、符号化処理が終了する。例えば、符号化対象が動画像である場合、この一連の処理をフレーム毎に行う。
   <信号列生成処理の流れ>
 次に、図12のステップS104において実行される信号列生成処理の流れの例を、図13のフローチャートを参照して説明する。
 信号列生成処理が開始されると、相関演算部201は、ステップS121において、ブロック間のボクセルデータの値の分布パタンの相関の強さ(相関度)を求める。
 ステップS122において、ユニークパタン設定部202は、ステップS121において求めた相関度に基づいて、ユニークパタンUiを設定する。その際、ユニークパタン設定部202は、上述したように、比較したブロック同士でボクセルデータの値の分布パタンが一致する場合だけでなく、近似する場合も、両ブロックのその分布パタンが同一であるとみなす。
 ステップS123において、インデックス割り当て部203は、ステップS122において設定された各ユニークパタンUiに、互いに異なるインデックスを割り当てる。
 ステップS124において、相関情報生成部204は、ステップS123におけるユニークパタンUiへのインデックスの割り当て結果に基づいて、符号化対象の各ブロックのボクセルデータを、そのブロックのボクセルデータの値の分布パタンに一致または近似するユニークパタンUiのインデックスに置き換え、相関情報の信号列を生成する。また、相関情報生成部204は、ユニークパタンとインデックスとの対応関係を示す情報の信号列も生成する。
 ステップS124の処理が終了すると信号列生成処理が終了し、処理は図12に戻る。
 以上のように各処理を実行することにより、符号化装置100は、上述したように符号化効率の低減を抑制することができる。
  <ボクセルデータの符号化方法の例2>
 また例えば、信号列生成部114は、図9に示される表のid = 2の行に示される方法により、ボクセルデータを符号化するようにしてもよい。この場合、参照先のブロック(ノード(Node))を特定する空間座標情報(参照空間座標情報とも称する)を、符号化ブロックに用いる。つまり、信号列生成部114は、例えば符号化済みのブロック(ノード)からカレントブロックと高い相関を持つブロックを探索し、符号化部115は、そのブロックの絶対位置または相対位置(ベクトル)等の信号列を符号化する。
 この参照空間座標情報は、処理対象のブロックであるカレントブロック(参照元のブロック)の周辺に位置する周辺ブロックの内の、ボクセルデータの値の分布パタンがカレントブロックと一致または近似する周辺ブロック(参照先のブロック)の位置を示す情報である。信号列生成部114は、カレントブロックのボクセルデータを、この参照空間座標情報に変換することにより符号化する。つまり、信号列生成部114は、その参照空間座標情報を含む相関情報を生成する。
 この参照空間座標情報は、参照先のブロックの位置を絶対位置により示す情報(例えば参照先のブロックの空間座標(参照先空間座標情報とも称する))を含むようにしてもよいし、参照先のブロックの位置を参照元のブロック(カレントブロック)に対する相対位置を示す情報(例えば参照元から参照先へのベクトル(参照ベクトルとも称する))を含むようにしてもよい。
 そして、符号化部115は、このような参照空間座標情報を含む相関情報を符号化し、ビットストリームを生成する。
   <信号列生成部>
 図14は、この場合の信号列生成部114(図7)の主な構成例を示すブロック図である。図14に示されるように、この場合の信号列生成部114は、相関演算部221、参照空間座標情報設定部222、および相関情報生成部223を有する。
 相関演算部221は、相関演算部201と同様の処理部であり、相関演算部201と同様の処理を行う。すなわち、相関演算部221は、ボクセルデータの値の分布パタンの相関の強さ(相関度)の算出に関する処理を行う。例えば、相関演算部221は、ボクセル設定部113から供給されたボクセルデータについて、ボクセルデータが表す空間の部分領域であるブロック間のボクセルデータの値の分布パタンの相関度を算出する。なお、この比較は任意のブロック間で行うことができる。また、この相関度の算出方法は任意である。
 相関演算部221は、供給されたボクセルデータとともに、算出した相関度を示す情報を参照空間座標情報設定部222に供給する。
 なお、相関演算部221は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、相関度の算出に関する処理を行うようにしてもよい。
 参照空間座標情報設定部222は、参照空間座標情報の設定に関する処理を行う。例えば、参照空間座標情報設定部222は、相関演算部201から供給された相関度に基づいて、カレントブロックと相関の高い周辺ブロックを参照先として特定し、その周辺ブロックの位置を示す参照空間座標情報を設定する。より具体的には、参照空間座標情報設定部222は、相関演算部201から供給された相関度に基づいて、候補となる各周辺ブロックについて、ボクセルデータの分布パタンがカレントブロックと一致または近似するかを判定する。なお、この分布パタンが近似していると判定する基準は、任意である。例えば、参照空間座標情報設定部222は、カレントブロックとの相関度が最も高い周辺ブロックを、分布パタンがカレントブロックに近似している周辺ブロックであると判定する。また、例えば、参照空間座標情報設定部222は、カレントブロックとの相関度が所定の基準よりも高い周辺ブロックを、分布パタンがカレントブロックに近似している周辺ブロックであると判定する。
 なおこの周辺ブロックは、カレントブロックの空間的な周辺に位置するブロックであってもよい。つまり、この周辺ブロックは、カレントブロックと同じフレーム内のブロックであってもよい。また、この周辺ブロックは、カレントブロックの時間的な周辺に位置するブロックであってもよい。つまり、この周辺ブロックは、カレントブロックと異なるフレームのブロックであってもよい。例えば、周辺ブロックは、カレントブロックと異なるフレームの、カレントブロックと同じ位置のブロック(コロケーテッドブロック)、または、そのコロケーテッドブロックの周辺に位置するブロックであってもよい。さらに、この周辺ブロックは、シーケンス(ビュー、レイヤ、コンポーネント等)間で周辺に位置するブロックであってもよい。つまり、この周辺ブロックは、カレントブロックと異なるシーケンスのブロックであってもよい。例えば、周辺ブロックは、カレントブロックと異なるシーケンスの、カレントブロックと同じフレームの同じ位置のブロック(コロケーテッドブロック)そのコロケーテッドブロックの周辺に位置するブロックであってもよい。また、例えば、周辺ブロックは、カレントブロックと異なるシーケンスの、カレントブロックと異なるフレームのブロックであってもよい。
 参照空間座標情報設定部222は、供給されたボクセルデータとともに、設定した参照空間座標情報を相関情報生成部223に供給する。
 なお、分布パタンがカレントブロックに一致または近似する周辺ブロックが検出できない場合(そのような周辺ブロックが存在しない場合)、参照空間座標情報設定部222は、そのカレントブロックのボクセルデータを符号化しない(相関情報に置き換えない)。つまり、この場合、参照空間座標情報設定部222は、そのブロックに対応する参照空間座標の設定を省略する。
 なお、参照空間座標情報設定部222は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、ユニークパタンの設定に関する処理を行うようにしてもよい。
 相関情報生成部223は、相関情報の生成に関する処理を行う。例えば、相関情報生成部223は、処理対象のブロックであるカレントブロックのボクセルデータを、そのカレントブロックの周辺に位置する周辺ブロックの内の、ボクセルデータの値の分布パタンがカレントブロックと一致または近似する周辺ブロックの位置を示す情報である参照空間座標情報に変換し、その参照空間座標情報を含む相関情報を生成する。
 つまり、相関情報生成部223は、符号化対象のボクセルデータの各ブロックを、参照空間座標情報設定部222から供給された参照空間座標情報に置き換えることにより、符号化対象のボクセルデータを符号化する。つまり、この場合、相関情報は、参照空間座標情報(参照先空間座標または参照ベクトル)により構成される。
 ただし、参照空間座標情報設定部222において参照空間座標情報が設定されなかったブロック(つまり参照先が見つからなかったブロック)については、この相関情報の生成が省略される。
 相関情報生成部223は、相関情報を生成したブロックについては、供給された各ブロックのボクセルデータの代わりに、その相関情報(参照空間座標情報)を信号列として符号化部115に供給する。また、相関情報生成部223は、相関情報を生成していないブロックについては、供給されたボクセルデータの信号列を符号化部115に供給する。
 これらの信号列は、符号化部115によって上述のように符号化され、ビットストリームに含められ、復号側に伝送されたり、記録媒体に記録されたりする。
 このように各ブロックのボクセルデータを、参照空間座標情報に変換することにより、情報量を低減させることができる。また、そのブロック間の参照関係を設定する際に、例えば、ボクセルデータの値の分布パタンがカレントブロックと一致する周辺ブロックのみを参照先の候補とすると、参照先が存在しないケースが増大するおそれがあり、十分に情報量を低減させることができないおそれがある。
 これに対して、相関情報生成部223は、上述のように、ボクセルデータの値の分布パタンがカレントブロックと一致する周辺ブロックだけでなく、近似する周辺ブロックも参照先の候補とする。これにより、カレントブロックの参照先となり得る周辺ブロックが存在する可能性を高くすることができる。したがって、より多くのブロックを参照空間座標情報に変換することができ、情報量をより低減させることができる。したがって、信号列生成部114は、符号化効率の低減を抑制することができる。
 なお、相関情報生成部223は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、相関情報の生成に関する処理を行うようにしてもよい。
   <信号列生成処理の流れ>
 次に、この場合に、図12のステップS104において実行される信号列生成処理の流れの例を、図15のフローチャートを参照して説明する。
 信号列生成処理が開始されると、相関演算部221は、ステップS141において、ブロック間のボクセルデータの値の分布パタンの相関の強さ(相関度)を求める。
 ステップS142において、参照空間座標情報設定部222は、カレントブロックと相関の高い周辺ブロックを参照先とし、参照空間座標情報を設定する。
 ステップS143において、相関情報生成部223は、ステップS142において設定された参照空間座標情報を用いて相関情報を生成し、ボクセルデータに置き換える。そして相関情報生成部223は、その相関情報を含む信号列を生成する。つまり、相関情報生成部223は、参照先が存在するブロックについては、相関情報の信号列を生成し、参照先が存在しないブロックについては、ボクセルデータの信号列を生成する。
 ステップS143の処理が終了すると信号列生成処理が終了し、処理は図12に戻る。
 以上のように各処理を実行することにより、符号化装置100は、上述したように符号化効率の低減を抑制することができる。
 なお、以上に説明した図9に示される表のid = 2の行に示される方法は、図9に示される表のid = 1の行に示される方法と併用するようにしてもよい。つまり、ユニークパタンのインデックスを含む相関情報と、参照空間座標情報を含む相関情報とが混在するようにしてもよい。
  <ボクセルデータの符号化方法の例3>
 また例えば、信号列生成部114は、図9に示される表のid = 3の行に示される方法により、ボクセルデータを符号化するようにしてもよい。この場合、事前に定義した分布パタンを持つブロック(ノード(Node))にインデックス(Index)を付与し、符号化ブロックに用いる。つまり、信号列生成部114は、例えば事前定義されたブロックから、カレントブロックと高い相関を持つブロックを探索し、符号化部115は、そのインデックスを符号化する。
 つまり、この場合、予め、所定のユニークパタン(事前定義ユニークパタンとも称する)が用意され、各ユニークパタンに互いに異なるインデックス(事前定義インデックスとも称する)が割り当てられている。信号列生成部114は、<ボクセルデータの符号化方法の例1>において上述したように符号化対象のボクセルデータから生成したユニークパタンの代わりに、この事前定義ユニークパタンを用いて、各ブロックをインデックス化する。
 より具体的には、信号列生成部114は、カレントブロックのボクセルデータを、事前定義ユニークパタンの内の、分布パタンがカレントブロックと一致または近似する事前定義ユニークパタンに割り当てられた事前定義インデックスに変換し、その事前定義インデックスを含む相関情報を生成する。
 なお、事前定義ユニークパタンは、<ボクセルデータの符号化方法の例1>において上述したユニークパタンと同様に、事前定義ユニークパタン同士において、分布パタンが互いに異なる。つまり、事前定義ユニークパタンのボクセルデータの値の分布パタンは、他の事前定義ユニークパタンのボクセルデータの値の分布パタンと異なる。
   <信号列生成部>
 図16は、この場合の信号列生成部114(図7)の主な構成例を示すブロック図である。図16に示されるように、この場合の信号列生成部114は、相関演算部241および相関情報生成部242を有する。
 相関演算部241は、ボクセルデータの値の分布パタンの相関の強さ(相関度)の算出に関する処理を行う。例えば、相関演算部241は、事前定義ユニークパタン(のボクセルデータ)を取得し、保持する。相関演算部241は、ボクセル設定部113から供給されたボクセルデータの各ブロックについて、各事前定義ユニークパタンとの間のボクセルデータの値の分布パタンの相関度を算出する。なお、この相関度の算出方法は任意である。相関演算部241は、供給されたボクセルデータとともに、算出した相関度を示す情報を相関情報生成部242に供給する。
 なお、相関演算部241は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、相関度の算出に関する処理を行うようにしてもよい。
 相関情報生成部242は、相関情報の生成に関する処理を行う。例えば、相関情報生成部242は、処理対象のブロックであるカレントブロックのボクセルデータを、そのカレントブロックのボクセルデータの値の分布パタンに一致または近似する事前定義ユニークパタンに割り当てられた事前定義インデックスに変換し、その事前定義インデックスを含む相関情報を生成する。
 より具体的には、相関情報生成部242は、事前定義ユニークパタンと事前定義インデックスとの対応関係を示す情報を取得し、保持する。この事前定義ユニークパタンと事前定義インデックスとの対応関係を示す情報は、各事前定義ユニークパタンと、各事前定義インデックスとを示す情報である。例えば、この情報は、事前定義ユニークパタンと事前定義インデックスとの対応関係が示されるように構成された、事前定義ユニークパタンのリストと事前定義インデックスのリストとを含む。
 そして、相関情報生成部242は、相関演算部241から供給された相関度に基づいて、各ブロックについて、その分布パタンが一致または近似する事前定義ユニークパタンを特定する。換言するに、相関情報生成部242は、その分布パタンが一致もせず、近似もしない場合のみ、分布パタンが異なると判定して、その事前定義ユニークパタンを特定しない。なお、この分布パタンが近似していると判定する基準は、任意である。
 そして、相関情報生成部242は、保持したその情報に基づいて、その特定した事前定義ユニークパタンに対応する事前定義インデックスを特定する。そして、相関情報生成部242は、各ブロックのボクセルデータを、その特定した事前定義インデックスに置き換える(変換する)。
 このようにすることにより、その符号化結果として、事前定義インデックスのリストが得られる。相関情報生成部242は、供給された各ブロックのボクセルデータの代わりに、その相関情報(事前定義インデックス)を信号列として符号化部115に供給する。この信号列は符号化部115によって上述のように符号化され、ビットストリームに含められ、復号側に伝送されたり、記録媒体に記録されたりする。
 なお、相関情報生成部242は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、相関情報の生成に関する処理を行うようにしてもよい。
 このように各ブロックのボクセルデータを、事前定義インデックスを用いてインデックス化することにより、分布パタンが同一のボクセルデータがマージされるので、相関情報生成部242は、ビットストリームの冗長性を低減させることができる。
 なお、カレントブロックのボクセルデータの値の分布パタンと事前定義ユニークパタンとが一致する場合のみ、カレントブロックのボクセルデータを事前定義インデックスに置き換えるようにすると、事前定義ユニークパタンと一致しない分布パタンのブロックは、そのボクセルデータを事前定義インデックスに置き換えることができない。
 これに対して、相関情報生成部242は、分布パタンが近似する事前定義ユニークパタンが存在するブロックも、そのボクセルデータを事前定義インデックスに置き換えることができる。したがって、より情報量を削減することができる。つまり、信号列生成部114は、符号化効率の低減を抑制することができる。
   <信号列生成処理の流れ>
 次に、この場合に、図12のステップS104において実行される信号列生成処理の流れの例を、図17のフローチャートを参照して説明する。
 信号列生成処理が開始されると、相関演算部241は、ステップS161において、各ブロックのボクセルデータの値の分布パタンと事前定義ユニークパタンとの相関の強さ(相関度)を求める。
 ステップS162において、相関情報生成部242は、その相関度に基づいて、各ブロックと相関の強い事前定義インデックスを特定し、その特定した事前定義インデックスを用いて相関情報を生成し、ボクセルデータに置き換える。そして相関情報生成部242は、その相関情報を含む信号列を生成する。
 ステップS162の処理が終了すると信号列生成処理が終了し、処理は図12に戻る。
 以上のように各処理を実行することにより、符号化装置100は、上述したように符号化効率の低減を抑制することができる。
 なお、事前定義ユニークパタンと一致も近似もしない分布パタンのブロックは、ボクセルデータの信号列を符号化部115に供給するようにしてもよい。また、そのようなブロックの分布パタンをユニークパタンとして設定するようにしてもよいし、周辺ブロックを参照するようにしてもよい。つまり、以上に説明した図9に示される表のid = 3の行に示される方法は、図9に示される表のid = 1や2の行に示される方法と併用するようにしてもよい。つまり、ユニークパタンのインデックスを含む相関情報と、参照空間座標情報を含む相関情報と、事前定義インデックスを含む相関情報とが混在するようにしてもよい。
  <ボクセルデータの符号化方法の例4>
 また例えば、符号化対象のボクセルデータが動画像の場合(複数のフレームにより構成される場合)、図9に示される表のid = 4の行に示される方法を適用するようにしてもよい。つまり、異なるフレーム間での相関を利用するようにしてもよい。その場合、参照先ブロック(ノード(Node))を特定する時間情報を符号化ブロックに用いる。例えば、信号列生成部114は、符号化済みのフレームを保持し、そのフレーム内から相関の高いブロックを探索する。見つかった場合、符号化部115は、そのフレームを特定する情報(カレントフレームからの時間差分等)を符号化し、伝送する。
 つまり、この場合、信号列生成部114は、処理対象のブロックであるカレントブロックのボクセルデータの値の分布パタンとの相関の強さを求める際の、参照先に対応するフレームを示す時間情報を含む相関情報を生成する。
 この方法は、図9に示される表のid = 1乃至3の行に示される各方法と組み合わせて用いることができる。例えば、図9に示される表のid = 1の行に示される方法に組み合わせる場合、相関情報生成部204が過去に処理したフレームにおいて設定したユニークパタンのインデックスを用いてカレントブロックのボクセルデータをインデックス化するようにしてもよい。また、例えば、相関演算部201がカレントブロックと、カレントブロックのフレーム(カレントフレーム)以外のフレームのブロックとの相関度を算出するようにし、ユニークパタン設定部202が、その相関度に基づいて、ユニークパタンを設定するようにしてもよい。
 また、例えば、図9に示される表のid = 2の行に示される方法に組み合わせる場合、相関演算部221がカレントブロックと、カレントフレーム以外のフレームのブロックとの相関度を算出するようにし、参照空間座標情報設定部222が、その相関度に基づいて、カレントフレーム以外のフレームのブロックを参照先として設定することができるようにしてもよい。
 また、例えば、図9に示される表のid = 3の行に示される方法に組み合わせる場合、事前定義ユニークパタン(および事前定義インデックス)がフレーム等毎に設定されるようにし(時間方向に更新されるようにし)、相関演算部241が、カレントブロックと、カレントフレーム以外のフレームに対応する事前定義ユニークパタンとの相関度を算出するようにし、相関情報生成部242が、その相関度に基づいて、カレントブロックのボクセルデータを、カレントフレーム以外のフレームに対応する事前定義インデックスに置き換えるようにしてもよい。
 このようにすることにより、相関情報とするインデックスや参照先の範囲を拡大することができる。したがって、信号列生成部114は、ビットストリームの冗長性をより低減させることができ、符号化効率の低減を抑制することができる。
  <ボクセルデータの符号化方法の例5>
 また例えば、図9に示される表のid = 5の行に示される方法を適用するようにしてもよい。つまり、ブロック間の相関を求める際に、比較するボクセルデータの値の分布パタンを、回転させたり、反転させたりすることできるようにしてもよい。その場合、相関情報に、回転に関する情報(回転情報)や反転に関する情報(反転情報)を含めるようにすればよい。例えば、信号列生成部114は、相関を計算する際に、参照ブロック(ノード(Node))に対して点対称や線対称となる分布パタンについてもカレントブロックとのマッチングを行う。相関が高いパタンが見つかった場合、符号化部115は、回転情報や反転情報を符号化し伝送する。
 つまり、この場合、信号列生成部114は、処理対象のブロックであるカレントブロックのボクセルデータの値の分布パタンとの相関の強さを求める際の、参照先のボクセルデータの値の分布パタンの回転に関する情報、および、その参照先の分布パタンの反転に関する情報の内の少なくとも一方を含む相関情報を生成する。
 この方法は、図9に示される表のid = 1乃至4の行に示される各方法と組み合わせて用いることができる。例えば、相関演算部201、相関演算部221、または相関演算部241は、カレントブロックとの相関度の算出において、参照先の分布パタン(他のブロックの分布パタンまたは事前定義ユニークパタン)の線対称や点対称となる分布パタンとも比較を行うようにしてもよい。そして、相関情報生成部204、相関情報生成部223、または相関情報生成部242は、回転情報(回転の有無、または、どのように回転したか等を示す情報)や、反転情報(反転の有無、または、どのように反転したか等を示す情報)を含む相関情報を生成するようにしてもよい。
 このようにすることにより、参照先の分布パタンがカレントブロックと一致または近似する可能性を増大させることができる。また、その相関度がより高くなる可能性を増大させることができる。したがって、信号列生成部114は、ビットストリームの冗長性をより低減させることができ、符号化効率の低減を抑制することができる。
  <ボクセルデータの符号化方法の例6>
 また例えば、図9に示される表のid = 6の行に示される方法を適用するようにしてもよい。つまり、近傍のブロックで用いた相関情報をカレントブロックに対して再利用することができるようにしてもよい。例えば、信号列生成部114は、近傍のブロック(ノード(Node))で用いた相関情報をカレントブロックにおいて再利用した場合の相関度を算出する。その相関が高い場合、符号化部115は、再利用する旨の情報(例えばフラグ等)を符号化し伝送する。
 つまり、この場合、信号列生成部114は、処理対象のブロックであるカレントブロックの周辺に位置する周辺ブロックの相関情報を用いて、カレントブロックの相関情報を生成する。
 この方法は、図9に示される表のid = 1乃至5の行に示される各方法と組み合わせて用いることができる。例えば、相関演算部201、相関演算部221、または相関演算部241は、カレントブロックとの相関度の算出において、周辺ブロックの相関情報をカレントブロックに適用した場合の相関度を算出するようにしてもよい。そして、相関情報生成部204、相関情報生成部223、または相関情報生成部242は、その再利用した相関度を適用する場合(その相関度が高かった場合)、相関度を再利用する旨の情報(フラグ等)を含む相関情報を生成するようにしてもよい。なお、その際、再利用する相関度を指定する情報や、モードを指定する情報を、相関情報に含めるようにしてもよい。また、相関度を再利用するか否かを示すフラグ情報を、常に相関情報に含めるようにしてもよい。
 周辺ブロックの相関情報を再利用する場合、復号側においても周辺ブロックの相関情報が再利用されるので、カレントブロックの相関情報の伝送は省略することができる。したがって、伝送する情報量を低減させることができるので、符号化効率の低減を抑制することができる。
  <Octree符号化の併用>
 以上に説明した相関情報を用いたボクセルデータの符号化方法は、Octree符号化と併用するようにしてもよい。例えばボクセルデータを、LoD=GのOctreeで符号化する場合は、Level=l (l=0,1,…,G-1)におけるノードn(l,i)のChildmask (8bit)を符号化する。ここで、k=4の場合、3階層のOctreeに相当するため (4 = 1<<(3-1))、n(G-1,i), n(G-2,i), n(G-3,i) のノードをまとめて、ユニークパタンUiによって表現することができる。つまり、例えば以下のように、相関情報を用いた符号化方式をOctree符号化と組み合わせることができる。
 Level=0,…,G-4:Octree符号化を利用
 Level=G-((log2k)+1),…,G-2:DAGを利用
 Level=G-1 : 提案符号化を利用
 このようにすることにより、例えば部分デコードや、粗い解像度からデコードする等といったスケーラビリティ(Scalability)に対応することができる。また、Octree符号化のみを行う場合や、DAG処理のみを適用する場合よりも、ビットストリームの冗長性を低減させることができるので、符号化効率の低減を抑制することができる。
 なお、相関情報を用いた符号化をOctreeパタンの複数のレベルに適用するようにしてもよいが、相関情報を用いた符号化では近似するノードもマージするため、処理が複雑になるおそれがある。そこで、上述のように、最下位のレベルのみ相関情報を用いた符号化を適用し、最下位より上のレベルは、DAG(有効指向性グラフ)を適用するようにしてもよい。なお、このDAGは、Octreeパタンの最下位レベルより上位の全てのレベルに適用するようにしてもよいし、上述のように、最下位レベルより1つ上のレベルから途中のレベルまでのみ適用し、上位側の一部のレベルは、Octree符号化のみを適用するようにしてもよい。
   <信号列生成部>
 図18は、この場合の信号列生成部114(図7)の主な構成例を示すブロック図である。図18に示されるように、この場合の信号列生成部114は、相関演算部201乃至相関情報生成部204の他に、さらにOctree符号化部261およびDAG処理部262を有する。
 Octree符号化部261は、Octree符号化に関する処理を行う。例えば、Octree符号化部261は、ボクセル設定部113から供給されたボクセルデータをOctree符号化し、図3を参照して説明したようにOctreeパタンを生成し、各ノードのChildmask(8ビット)を生成する。Octree符号化部261は、生成したそのChildmaskデータをDAG処理部262に供給する。
 なお、Octree符号化部261は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、Octree符号化に関する処理を行うようにしてもよい。
 DAG処理部262は、DAGに関する処理を行う。例えば、DAG処理部262は、Octree符号化部261から供給されたChildmaskデータの最下位レベルより上位のレベルに対してDAG処理を行い、自己相関を利用して同一のノードをマージする。DAG処理部262は、そのようにして生成したDAGデータの信号列を符号化部115に供給する。
 相関演算部201乃至相関情報生成部204は、図11の場合と同様に処理を行い、相関情報を利用してボクセルデータを符号化する。つまり、Octreeパタンの最下位レベルが符号化される。相関情報生成部204は、図11を参照して説明したように信号列を符号化部115に供給する。
 なお、DAG処理部262は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、DAGに関する処理を行うようにしてもよい。
 符号化部115は、それらの信号列を符号化する。つまり、符号化部115は、相関情報やDAGデータ等を含むビットストリームを生成する。
 このようにOctree符号化を適用することにより、相関情報を用いた符号化をスケーラビリティに対応させることができる。換言するに、Octreeパタンに対して、相関情報を用いた符号化を適用することにより、符号化効率の低減を抑制することができる。
   <信号列生成処理の流れ>
 次に、この場合の、図12のステップS104において実行される信号列生成処理の流れの例を、図19のフローチャートを参照して説明する。
 信号列生成処理が開始されると、Octree符号化部261は、ステップS181において、Octree符号化を行う。
 ステップS182において、DAG処理部262は、Octreeパタンの最下位レベルより上位のレベルのノードに対してDAG処理を行う。
 ステップS183乃至ステップS186の各処理は、図13のステップS121乃至ステップS124の各処理と同様に行う。
 ステップS186の処理が終了すると信号列生成処理が終了し、処理は図12に戻る。
 以上のように各処理を実行することにより、符号化装置100は、上述したように、相関情報を用いた符号化をスケーラビリティに対応させたり、符号化効率の低減を抑制したりすることができる。
 なお、以上においては、図9に示される表のid = 1の行に示される方法に、Octree符号化を適用する場合について説明したが、図9に示される表のその他の行に示される方法にOctree符号化を適用する場合も同様である。つまり、信号列生成部114に、Octree符号化部261およびDAG処理部262を図18の場合と同様に設け、信号列生成処理において、図19のステップS181およびステップS182と同様の処理を行うようにすればよい。
  <予測残差の伝送>
 以上に説明した相関情報を用いたボクセルデータの符号化において、相関情報は、ボクセルデータの予測値とも言える。つまり、上述の相関情報を用いた符号化は、この予測値のみを符号化して伝送している。そこで、さらに、ボクセルデータの予測残差も伝送するようにしてもよい。さらに、その予測残差を符号化して(情報量を低減させて)伝送するようにしてもよい。
 例えば、信号列生成部114が、ボクセル設定部113から供給されたボクセルデータと、相関情報に対応するボクセルデータの予測値との差分(予測残差)を求め、その予測残差を別途符号化して伝送するようにしてもよい。この符号化方法は任意である。例えば、予測残差を直交変換するようにしてもよい。また、予測残差をチェーン符号化するようにしてもよい。さらに量子化を行うようにしてもよい。
 このように予測残差を伝送することにより、復号側においてより正確な(符号化前の状態に近い)復号画像(復号されたポイントクラウドデータ)を得ることができる。つまり、復号されたポイントクラウドデータ(復号ポイントクラウドデータとも称する)の主観画質を向上させることができる。また、上述のように予測残差を符号化して伝送することにより、符号化効率の低減を抑制することができる。
   <信号列生成部>
 図20は、この場合の信号列生成部114(図7)の主な構成例を示すブロック図である。図20に示されるように、この場合の信号列生成部114は、図11の場合と同様に、相関演算部201乃至インデックス割り当て部203を有する。また、この場合の信号列生成部114は、相関情報生成部204の代わりに、相関情報生成部281を有する。さらに、この場合の信号列生成部114は、演算部282および予測残差符号化部283を有する。
 相関情報生成部281は、基本的に相関情報生成部204と同様の処理を行うが、さらに、相関情報に含まれる各ブロックのインデックスに対応するユニークパタンを演算部282に供給する。
 なお、相関情報生成部281は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、相関情報の生成に関する処理を行うようにしてもよい。
 演算部282は、予測残差の生成に関する処理を行う。例えば、演算部282は、各ブロックについて、ボクセル設定部113から供給されるボクセルデータから、相関情報生成部281から供給されるユニークパタンを減算し、予測残差を生成する。演算部282は、生成した予測残差を予測残差符号化部283に供給する。
 なお、演算部282は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、予測残差の生成に関する処理を行うようにしてもよい。
 予測残差符号化部283は、予測残差の符号化に関する処理を行う。例えば、予測残差符号化部283は、演算部282から供給される各ブロックのボクセルデータの予測残差を符号化し、係数データに変換する。この予測残差の符号化方法は任意である。例えば、上述のように直交変換やチェーン符号化を適用するようにしてもよい。さらに、量子化を行うようにしてもよい。予測残差符号化部283は、生成した係数データの信号列を符号化部115に供給する。
 なお、予測残差符号化部283は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、予測残差の符号化に関する処理を行うようにしてもよい。
 符号化部115は、相関情報生成部281や予測残差符号化部283から供給される信号列を符号化する。つまり、符号化部115は、相関情報や予測残差等を含むビットストリームを生成する。
 このようにすることにより、復号側においてより正確な復号ポイントクラウドデータを得ることができる。つまり、復号ポイントクラウドデータの主観画質を向上させることができる。また、上述のように予測残差を符号化して伝送することにより、符号化効率の低減を抑制することができる。
   <信号列生成処理の流れ>
 次に、この場合の、図12のステップS104において実行される信号列生成処理の流れの例を、図21のフローチャートを参照して説明する。
 この場合の信号列性生成処理においても、ステップS201乃至ステップS204の各処理は、図13のステップS121乃至ステップS124の各処理と同様に実行される。
 ステップS205において、演算部282は、ボクセルデータとユニークパタン(ボクセルデータの予測値)との差分である予測残差を求める。
 ステップS206において、予測残差符号化部283は、ステップS205の処理により得られた予測残差を符号化する。
 ステップS206の処理が終了すると信号列生成処理が終了し、処理は図12に戻る。
 以上のように各処理を実行することにより、符号化装置100は、上述したように、復号ポイントクラウドデータの主観画質を向上させたり、符号化効率の低減を抑制したりすることができる。
 なお、以上においては、図9に示される表のid = 1の行に示される方法に、予測残差の伝送を適用する場合について説明したが、図9に示される表のその他の行に示される方法に上述したような予測残差の伝送を適用することもできる。その場合も、上述した例と基本的に同様に適用することができる。つまり、信号列生成部114に、相関情報生成部281乃至予測残差符号化部283を図20の場合と同様に設け、信号列生成処理において、図20のステップS205およびステップS206と同様の処理を行うようにすればよい。
  <属性情報>
 ポイントクラウドの各ポイントは、位置情報(x,y,z)に加えて、色情報((R,G,B),(Y,U,V))、αチャンネル、法線ベクトル等の属性情報を持っている。そこで、上述の位置情報の符号化の際に、属性情報も同様に、相関情報を利用して符号化するようにしてもよい。つまり、符号化部115が、相関情報が生成されたブロックの属性情報の符号化を省略するようにしてもよい。
 その際の、属性情報のマージの方法は任意である。例えば、カレントブロックと位置情報(構造情報)をマージする参照先の属性情報(例えば、色情報をデコードした後のRGB/YUV画素値)を、カレントブロックにおいても使用するようにしてもよい。
 また、例えば、カレントブロックと位置情報(構造情報)をマージする参照先の属性情報の符号化方法(例えば、色予測モード等)を、カレントブロックにおいても使用するようにしてもよい。つまり、符号化部115が、信号列生成部114により相関情報が生成されたブロックの属性情報を、その相関情報に対応する参照先の属性情報と同一の符号化方法で符号化するようにしてもよい。
 さらに、例えば、カレントブロックと位置情報(構造情報)をマージする参照先の属性情報のフィルタリング方法(カラーフォーマット変換、クロマサブサンプリング方法、デブロック等のデノイズ方法等)を、カレントブロックにおいても使用するようにしてもよい。つまり、符号化部115が、信号列生成部114により相関情報が生成されたブロックの属性情報を、その相関情報に対応する参照先の属性情報と同一のフィルタリング方法でフィルタリングするようにしてもよい。
 このようにすることにより、ビットストリームの冗長性を低減させることができ、符号化効率の低減を抑制することができる。
 <3.第2の実施の形態>
  <復号方法の例1>
 次に、以上のような符号化装置100に対応する復号装置について説明する。例えば、図9に示される表のid = 1の行に示される方法により符号化されたボクセルデータのビットストリームは、同行に示される方法により復号することができる。
 つまり、この場合、ユニークパタンとインデックスとの対応関係を示す情報を復号し、その情報に基づいて、各ブロックのインデックスをユニークパタンに変換することにより、各ブロックの相関情報を復号することができる。
   <復号装置>
 図22は、本技術を適用した情報処理装置の一実施の形態である復号装置の主な構成例を示すブロック図である。図22に示される復号装置300は、図7の符号化装置100に対応する復号装置であり、例えばこの符号化装置100により生成されたポイントクラウドの符号化データを復号し、ポイントクラウドのデータを復元する。この符号化装置100の信号列生成部114は、上述したように図9に示される表のid = 1の行に示される方法によりボクセルデータを符号化する。図22の復号装置300は、その符号化装置100により得られたビットストリームを、図9に示される表のid = 1の行に示される方法により復号する。
 図22に示されるように、この場合の復号装置300は、復号部301、ボクセルデータ生成部302、およびポイントクラウド化処理部303を有する。
 復号部301は、ビットストリームの復号に関する処理を行う。例えば、復号部301は、ビットストリームを符号化部115の符号化方法に対応する復号方法で復号し、ビットストリームから、相関情報を抽出する。この相関情報は、ボクセルデータが表す空間の部分領域であるブロック毎に設定されており、復号部301は、その各ブロックの相関情報を抽出する。
 この相関情報には、ブロック毎にボクセルデータを変換したインデックスが含まれている。このインデックスは、そのブロックのボクセルデータと分布パタンが一致または近似すると判定されたユニークパタンに割り当てられたものである。さらに、ビットストリームには、ユニークパタンとインデックスとの対応関係を示す情報が含まれており、復号部301は、そのユニークパタンとインデックスとの対応関係を示す情報もビットストリームから抽出する。
 復号部301は、ビットストリームから抽出した情報(相関情報やユニークパタンとインデックスとの対応関係を示す情報等)をボクセルデータ生成部302に供給する。
 なお、復号部301は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、復号に関する処理を行うようにしてもよい。
 ボクセルデータ生成部302は、ボクセルデータの生成に関する処理を行う。例えば、ボクセルデータ生成部302は、復号部301から供給される相関情報に対応するボクセルデータを生成する。つまり、相関情報がボクセル毎に設定されている場合、ボクセルデータ生成部302は、各ブロックの相関情報をボクセルデータに変換する。
 例えば、ボクセルデータ生成部302は、復号部301から供給されたユニークパタンとインデックスとの対応関係を示す情報を用いて、復号部301から供給された各ブロックの相関情報をユニークパタンに変換することにより、各ブロックのボクセルデータを生成する。
 ボクセルデータ生成部302は、生成したボクセルデータをポイントクラウド化処理部303に供給する。
 なお、ボクセルデータ生成部302は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、ボクセルデータの生成に関する処理を行うようにしてもよい。
 ポイントクラウド化処理部303は、ポイントクラウドデータの復元に関する処理を行う。例えば、ポイントクラウド化処理部303は、供給されたボクセルデータをポイントクラウドデータに変換する(復号ポイントクラウドデータを生成する)。なお、ポイントクラウド化処理部303が、その復号ポイントクラウドデータをさらにMeshデータに変換するようにしてもよい。
 ポイントクラウド化処理部303は、生成した復号ポイントクラウドデータ(またはMeshデータ)を復号装置300の外部に出力する。この出力された復号ポイントクラウドデータ(またはMeshデータ)は、例えば、図示せぬ後段の処理部により画像処理され、画像情報としてモニタ等に表示されるようにしてもよいし、図示せぬ通信部により送信され、所定の伝送路を介して他の装置に伝送されるようにしてもよいし、図示せぬ記録媒体に記録されるようにしてもよい。
 なお、ポイントクラウド化処理部303は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、ポイントクラウドデータの復元に関する処理を行うようにしてもよい。
 以上のように、この場合の復号装置300は、図9に示される表のid = 1の行に示される方法により復号する。したがって、この場合の復号装置300は、図9に示される表のid = 1の行に示される符号化方法による符号化効率の低減の抑制を実現することができる。
   <復号処理の流れ>
 この場合の復号装置300により実行される復号処理の流れの例を、図23のフローチャートを参照して説明する。
 復号処理が開始されると、復号部301は、ステップS301において、ビットストリームを復号し、ユニークパタンとインデックスとの対応関係を示す情報と、インデックスを含む各ブロックの相関情報を抽出する。
 ステップS302において、ボクセルデータ生成部302は、ステップS301において抽出されたユニークパタンとインデックスとの対応関係を示す情報に基づいて、各ブロックの相関情報のインデックスをそれに対応するユニークパタンに変換することにより、各ブロックのボクセルデータを生成する。
 ステップS303において、ポイントクラウド化処理部303は、ステップS302の処理により得られたボクセルデータからポイントクラウドデータを復元する。
 ステップS304において、ポイントクラウド化処理部303は、復元されたポイントクラウドデータ(復号ポイントクラウドデータ)を復号装置300の外部に出力する。
 ステップS304の処理が終了すると、復号処理が終了する。
 以上のように復号処理を行うことにより、この場合の復号装置300は、図9に示される表のid = 1の行に示される符号化方法による符号化効率の低減の抑制を実現することができる。
  <復号方法の例2>
 また、例えば、図9に示される表のid = 2の行に示される方法により符号化されたボクセルデータのビットストリームは、同行に示される方法により復号することができる。
 つまり、この場合、各ブロックが参照するブロックの絶対位置(空間座標)または相対位置(ベクトル)等の情報を復号し、その参照先のブロックのボクセルデータを用いてカレントブロックのボクセルデータを生成することにより、各ブロックの相関情報を復号することができる。
   <復号装置>
 図24は、本技術を適用した情報処理装置の一実施の形態である復号装置の主な構成例を示すブロック図である。図24に示される復号装置300は、図7の符号化装置100に対応する復号装置であり、例えばこの符号化装置100により生成されたポイントクラウドの符号化データを復号し、ポイントクラウドのデータを復元する。この符号化装置100の信号列生成部114は、上述したように図9に示される表のid = 2の行に示される方法によりボクセルデータを符号化する。図24の復号装置300は、その符号化装置100により得られたビットストリームを、図9に示される表のid = 2の行に示される方法により復号する。
 図24に示されるように、この場合の復号装置300は、復号部321、ボクセルデータ生成部322、およびポイントクラウド化処理部303を有する。
 復号部321は、ビットストリームの復号に関する処理を行う。例えば、復号部321は、ビットストリームを符号化部115の符号化方法に対応する復号方法で復号し、ビットストリームから、相関情報を抽出する。この相関情報は、ボクセルデータが表す空間の部分領域であるブロック毎に設定されており、復号部321は、その各ブロックの相関情報を抽出する。
 この相関情報には、参照空間座標情報が含まれている。この参照空間座標情報は、ボクセルデータの値の分布パタンがカレントブロックと一致または近似し、ボクセルデータの参照先として指定された周辺ブロックの位置を示す情報である。復号部321は、ビットストリームから抽出した情報(相関情報等)をボクセルデータ生成部322に供給する。
 なお、復号部321は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、復号に関する処理を行うようにしてもよい。
 ボクセルデータ生成部322は、ボクセルデータの生成に関する処理を行う。例えば、ボクセルデータ生成部322は、復号部321から供給される相関情報に対応するボクセルデータを生成する。つまり、相関情報がボクセル毎に設定されている場合、ボクセルデータ生成部322は、各ブロックの相関情報をボクセルデータに変換する。
 例えば、ボクセルデータ生成部322は、復号部321から供給されたカレントブロックの相関情報に含まれる参照空間座標情報に基づいて、参照先のブロックを特定し、そのブロックのボクセルデータを用いて、カレントブロックのボクセルデータを生成する。ボクセルデータ生成部322は、各ブロックの相関情報についてこのような処理を行うことにより、各ブロックのボクセルデータを生成する。
 ボクセルデータ生成部322は、生成したボクセルデータをポイントクラウド化処理部303に供給する。ポイントクラウド化処理部303が行う処理は、図22の場合と同様であるのでその説明を省略する。
 なお、ボクセルデータ生成部322は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、ボクセルデータの生成に関する処理を行うようにしてもよい。
 以上のように、この場合の復号装置300は、図9に示される表のid = 2の行に示される方法により復号する。したがって、この場合の復号装置300は、図9に示される表のid = 2の行に示される符号化方法による符号化効率の低減の抑制を実現することができる。
   <復号処理の流れ>
 この場合の復号装置300により実行される復号処理の流れの例を、図25のフローチャートを参照して説明する。
 復号処理が開始されると、復号部321は、ステップS321において、ビットストリームを復号し、参照空間座標情報を含む各ブロックの相関情報を抽出する。
 ステップS322において、ボクセルデータ生成部322は、ステップS321において抽出された各ブロックの相関情報の参照空間座標情報に基づいて、参照先のブロックを特定し、その各参照先のブロックのボクセルデータを用いて、各ブロックのボクセルデータを生成する。
 ステップS323およびステップS324の各処理は、図23のステップS303およびステップS304の各処理と同様に実行される。ステップS324の処理が終了すると、復号処理が終了する。
 以上のように復号処理を行うことにより、この場合の復号装置300は、図9に示される表のid = 2の行に示される符号化方法による符号化効率の低減の抑制を実現することができる。
  <復号方法の例3>
 また例えば、図9に示される表のid = 3の行に示される方法により符号化されたボクセルデータのビットストリームは、同行に示される方法により復号することができる。
 つまり、この場合、事前定義ユニークパタンと事前定義インデックスとの対応関係を示す情報に基づいて、各ブロックの事前定義インデックスを事前定義ユニークパタンに変換することにより、各ブロックの相関情報を復号することができる。
   <復号装置>
 図26は、本技術を適用した情報処理装置の一実施の形態である復号装置の主な構成例を示すブロック図である。図26に示される復号装置300は、図7の符号化装置100に対応する復号装置であり、例えばこの符号化装置100により生成されたポイントクラウドの符号化データを復号し、ポイントクラウドのデータを復元する。この符号化装置100の信号列生成部114は、上述したように図9に示される表のid = 3の行に示される方法によりボクセルデータを符号化する。図26の復号装置300は、その符号化装置100により得られたビットストリームを、図9に示される表のid = 3の行に示される方法により復号する。
 図26に示されるように、この場合の復号装置300は、復号部341、ボクセルデータ生成部342、およびポイントクラウド化処理部303を有する。
 復号部341は、ビットストリームの復号に関する処理を行う。例えば、復号部341は、ビットストリームを符号化部115の符号化方法に対応する復号方法で復号し、ビットストリームから、相関情報を抽出する。この相関情報は、ボクセルデータが表す空間の部分領域であるブロック毎に設定されており、復号部321は、その各ブロックの相関情報を抽出する。
 この相関情報には、ブロック毎にボクセルデータを変換した事前定義インデックスが含まれている。この事前定義インデックスは、事前定義ユニークパタンに割り当てられたものである。なお、図26の復号装置300は、事前定義ユニークパタンと事前定義インデックスとの対応関係を示す情報を予め有している。復号部341は、ビットストリームから抽出した情報(相関情報等)をボクセルデータ生成部342に供給する。
 なお、復号部341は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、復号に関する処理を行うようにしてもよい。
 ボクセルデータ生成部342は、ボクセルデータの生成に関する処理を行う。例えば、ボクセルデータ生成部342は、復号部341から供給される相関情報に対応するボクセルデータを生成する。つまり、相関情報がボクセル毎に設定されている場合、ボクセルデータ生成部342は、各ブロックの相関情報をボクセルデータに変換する。
 例えば、ボクセルデータ生成部342は、復号部341から供給された各ブロックの相関情報に含まれる事前定義インデックスを、事前定義ユニークパタンと事前定義インデックスとの対応関係を示す情報に基づいて、事前定義ユニークパタンに変換することにより、各ブロックのボクセルデータを生成する。
 ボクセルデータ生成部322は、生成したボクセルデータをポイントクラウド化処理部303に供給する。ポイントクラウド化処理部303が行う処理は、図22の場合と同様であるのでその説明を省略する。
 なお、ボクセルデータ生成部342は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、ボクセルデータの生成に関する処理を行うようにしてもよい。
 以上のように、この場合の復号装置300は、図9に示される表のid = 3の行に示される方法により復号する。したがって、この場合の復号装置300は、図9に示される表のid = 3の行に示される符号化方法による符号化効率の低減の抑制を実現することができる。
   <復号処理の流れ>
 この場合の復号装置300により実行される復号処理の流れの例を、図27のフローチャートを参照して説明する。
 復号処理が開始されると、復号部341は、ステップS341において、ビットストリームを復号し、事前定義インデックスを含む各ブロックの相関情報を抽出する。
 ステップS342において、ボクセルデータ生成部342は、事前定義ユニークパタンと事前定義インデックスとの対応関係を示す情報に基づいて、ステップS341において抽出された各ブロックの相関情報の事前定義インデックスを事前定義ユニークパタンに変換することにより、各ブロックのボクセルデータを生成する。
 ステップS343およびステップS334の各処理は、図23のステップS303およびステップS304の各処理と同様に実行される。ステップS344の処理が終了すると、復号処理が終了する。
 以上のように復号処理を行うことにより、この場合の復号装置300は、図9に示される表のid = 3の行に示される符号化方法による符号化効率の低減の抑制を実現することができる。
  <復号方法の例4>
 また例えば、図9に示される表のid = 4の行に示される方法により符号化されたボクセルデータのビットストリームは、同行に示される方法により復号することができる。つまり、この場合、フレームを特定する情報を復号することにより、復号済みのフレームを特定し、追加の情報によって、そのフレーム内のブロックから分布パタンを復号することができる。
 例えば、相関情報に、カレントブロックのボクセルデータの値の分布パタンとの相関の強さを求める際の、参照先に対応するフレームを示す時間情報が含まれるようにしてもよい。そして、ビットストリームより抽出されたカレントブロックの相関情報に含まれるその時間情報に基づいて参照先に対応するフレームを特定するようにしてもよい。
 このようにすることにより、相関情報とするインデックスや参照先の範囲を拡大することができるので、ビットストリームの冗長性をより低減させることができ、符号化効率の低減を抑制することができる。
  <復号方法の例5>
 また例えば、図9に示される表のid = 5の行に示される方法により符号化されたボクセルデータのビットストリームは、同行に示される方法により復号することができる。つまり、この場合、回転、反転等の情報を復号し、参照先のブロックに対応する操作を施して、カレントブロックの分布パタンを復号することができる。
 例えば、相関情報に、カレントブロックのボクセルデータの値の分布パタンとの相関の強さを求める際の、参照先のボクセルデータの値の分布パタンの回転に関する情報(回転情報)、および、その参照先のボクセルデータの値の分布パタンの反転に関する情報(反転情報)、の内の少なくともいずれか一方が含まれるようにしてもよい。そして、各ブロックの相関情報からボクセルデータを生成する際に、ビットストリームより抽出されたカレントブロックの相関情報に含まれる回転情報および反転情報の内の少なくともいずれか一方に基づいて、参照先のボクセルデータの値の分布パタンに対して回転若しくは反転、またはその両方を行うようにしてもよい。
 このようにすることにより、参照先の分布パタンがカレントブロックと一致または近似する可能性を増大させることができる。また、その相関度がより高くなる可能性を増大させることができる。したがって、ビットストリームの冗長性をより低減させることができ、符号化効率の低減を抑制することができる。
  <復号方法の例6>
 また例えば、図9に示される表のid = 6の行に示される方法により符号化されたボクセルデータのビットストリームは、同行に示される方法により復号することができる。つまり、この場合、周辺ブロックの相関情報を再利用して、カレントブロックのボクセルデータを生成することができる。
 周辺ブロックの相関情報を再利用する場合、ビットストリームにはカレントブロックの相関情報は含まれないようにしてもよい。その代わりに、例えば、そのブロックにおいて、周辺ブロックの相関情報を再利用する旨を示す情報(フラグ等)がビットストリームに含まれるようにしてもよい。そして、カレントブロックに対してそのような情報が得られた場合、周辺ブロックの相関情報を用いて、カレントブロックの相関情報を生成し、生成した相関情報を用いて、カレントブロックのボクセルデータを生成するようにしてもよい。
 このようにすることにより、周辺ブロックの相関情報を再利用するブロックの相関情報の伝送は省略することができる。したがって、伝送する情報量を低減させることができるので、符号化効率の低減を抑制することができる。
 なお、符号化の場合と同様に、上述した図9に示される表のid = 1乃至6の行に示される復号方法は、適宜組み合わせることができる。
  <Octree復号の併用>
 なお、復号対象のビットストリームは、<Octree符号化の併用>において説明したように、相関情報を利用した符号化と、Octree符号化とを併用して生成されたものであってもよい。例えば、ビットストリームが、ボクセルデータがOctree符号化され、そのOctreeパタンの最下位レベルのノードが相関情報を利用して符号化されたものであってもよい。また、そのOctreeパタンの最下位レベルを含む複数のレベルのノードが相関情報を利用して符号化されたものであってもよい。
 さらに、DAG処理も併用して生成されたものであってもよい。例えば、ビットストリームが、ボクセルデータがOctree符号化され、そのOctreeパタンの最下位レベルのノードが相関情報を利用して符号化され、最下位レベルより上位のレベルのノードがDAG処理されたものであってもよい。また、そのOctreeパタンの最下位レベルのノードが相関情報を利用して符号化され、最下位レベルより1つ上位のレベルから途中のレベルまでのノードがDAG処理され、それより上位のレベルのノードは、Octree符号化のみが適用されたものであってもよい。
   <復号装置>
 図28は、この場合の復号装置300の主な構成例を示すブロック図である。図28に示されるように、この場合の復号装置300は、復号部361、DAG逆処理部362、Octree復号部363、ボクセルデータ生成部364、およびポイントクラウド化処理部303を有する。
 復号部361は、ビットストリームの復号に関する処理を行う。例えば、復号部361は、ビットストリームを符号化部115の符号化方法に対応する復号方法で復号し、ビットストリームから、インデックスを含む各ブロックの相関情報と、ユニークパタンとインデックスとの対応関係を示す情報と、DAG処理されたOctreeパタンであるDAGデータとを抽出する。復号部361は、抽出した各ブロックの相関情報と、ユニークパタンとインデックスとの対応関係を示す情報とをボクセルデータ生成部364に供給し、DAGデータをDAG逆処理部362に供給する。
 なお、復号部361は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、復号に関する処理を行うようにしてもよい。
 DAG逆処理部362は、DAG処理部262が行うDAG処理の逆処理であるDAG逆処理に関する処理を行う。つまり、DAG逆処理は、DAGデータからOctreeパタンの各ノードのChildmaskを生成する処理である。DAG逆処理部362は、復号部361から供給されたDAGデータに対してこのDAG逆処理を行って、Octreeパタンの各ノードのChildmaskを生成し、それをOctree復号部363に供給する。
 なお、DAG逆処理部362は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、DAG逆処理に関する処理を行うようにしてもよい。
 Octree復号部363は、Octreeパタンの復号に関する処理を行う。例えば、Octree復号部363は、Octreeパタンの各ノードのChildmaskを復号してボクセルデータを生成する。Octree復号部363は、生成したボクセルデータをボクセルデータ生成部364に供給する。
 なお、Octree復号部363は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、Octree復号に関する処理を行うようにしてもよい。
 ボクセルデータ生成部364は、ボクセルデータの生成に関する処理を行う。例えば、ボクセルデータ生成部364は、復号部361から供給されたユニークパタンとインデックスとの対応関係を示す情報を用いて、復号部361から供給された各ブロックの相関情報をユニークパタンに変換することにより、各ブロックのボクセルデータを生成する。
 ボクセルデータ生成部364は、生成したボクセルデータと、Octree復号部363から供給されたボクセルデータとをポイントクラウド化処理部303に供給する。ポイントクラウド化処理部303が行う処理は、図22の場合と同様であるのでその説明を省略する。
 なお、ボクセルデータ生成部364は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、ボクセルデータの生成に関する処理を行うようにしてもよい。
 このようにOctree符号化を適用することにより、相関情報を用いた符号化をスケーラビリティに対応させることができる。換言するに、Octreeパタンに対して、相関情報を用いた符号化を適用することにより、符号化効率の低減を抑制することができる。
   <復号処理の流れ>
 この場合の復号装置300により実行される復号処理の流れの例を、図29のフローチャートを参照して説明する。
 復号処理が開始されると、復号部361は、ステップS361において、ビットストリームを復号し、ユニークパタンとインデックスとの対応関係を示す情報と、インデックスを含む各ブロックの相関情報と、DAGデータとを抽出する。
 ステップS362において、ボクセルデータ生成部364は、ステップS361において抽出されたユニークパタンとインデックスとの対応関係を示す情報に基づいて、各ブロックの相関情報のインデックスをそれに対応するユニークパタンに変換することにより、各ブロックのボクセルデータを生成する。
 ステップS363において、DAG逆処理部362は、ステップS361において抽出されたDAGデータに対してDAG逆処理を施し、Octreeパタンの各ノードのChildmaskを生成する。
 ステップS364において、Octree復号部363は、ステップS363の処理により得られたOctreeパタンの各ノードのChildmaskに対してOctree復号を行い、ボクセルデータを生成する。
 ステップS365において、ポイントクラウド化処理部303は、ステップS362の処理により得られたボクセルデータと、ステップS364の処理により得られたボクセルデータとから、ポイントクラウドデータを復元する。
 ステップS366において、ポイントクラウド化処理部303は、復元されたポイントクラウドデータ(復号ポイントクラウドデータ)を復号装置300の外部に出力する。
 ステップS366の処理が終了すると、復号処理が終了する。
 以上のように復号処理を行うことにより、この場合の復号装置300は、相関情報を用いた符号化をスケーラビリティに対応させたり、符号化効率の低減を抑制したりすることができる。
 なお、以上においては、図9に示される表のid = 1の行に示される復号方法に、Octree復号を適用する場合について説明したが、図9に示される表のその他の行に示される復号方法にOctree復号を適用する場合も同様に適用することができる。
  <予測残差の復号>
 なお、復号対象のビットストリームに、<予測残差の伝送>において説明したように、ボクセルデータの予測残差が含まれるようにしてもよい。また、その予測残差は、符号化された(情報量が低減された)ものであってもよい。つまり、ビットストリームに、予測残差が符号化された係数データが含まれるようにしてもよい。この予測残差の符号化方法は任意である。例えば、予測残差が直交変換されるようにしてもよい。また、予測残差がチェーン符号化されるようにしてもよい。さらに量子化が行われるようにしてもよい。
 このように予測残差を伝送することにより、復号装置300は、より正確な(符号化前の状態に近い)復号画像(復号ポイントクラウドデータ)を得ることができる。つまり、復号ポイントクラウドデータの主観画質を向上させることができる。また、上述のように符号化された予測残差を伝送することにより、符号化効率の低減を抑制することができる。
   <復号装置>
 図30は、この場合の復号装置300の主な構成例を示すブロック図である。図30に示されるように、この場合の復号装置300は、復号部381、予測残差復号部382、ボクセルデータ生成部383、およびポイントクラウド化処理部303を有する。ボクセルデータ生成部383は、ユニークパタン生成部391および演算部392を有する。
 復号部381は、ビットストリームの復号に関する処理を行う。例えば、復号部381は、ビットストリームを符号化部115の符号化方法に対応する復号方法で復号し、ビットストリームから、インデックスを含む各ブロックの相関情報と、ユニークパタンとインデックスとの対応関係を示す情報と、予測残差が符号化された係数データとを抽出する。復号部381は、抽出した各ブロックの相関情報と、ユニークパタンとインデックスとの対応関係を示す情報とをボクセルデータ生成部383(ユニークパタン生成部391)に供給し、係数データを予測残差復号部382に供給する。
 なお、復号部381は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、復号に関する処理を行うようにしてもよい。
 予測残差復号部382は、係数データの復号に関する処理を行う。例えば、予測残差復号部382は、復号部381から供給された係数データを、予測残差符号化部283(図20)により行われる符号化方法に対応する復号方法により復号し、予測残差を復元する。予測残差復号部382は、復元した予測残差をボクセルデータ生成部383(演算部392)に供給する。
 なお、予測残差復号部382は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、予測残差の復号に関する処理を行うようにしてもよい。
 ボクセルデータ生成部383は、ボクセルデータの生成に関する処理を行う。例えば、ボクセルデータ生成部383のユニークパタン生成部391は、ユニークパタンの生成に関する処理を行う。例えば、ユニークパタン生成部391は、復号部381から供給されたユニークパタンとインデックスとの対応関係を示す情報を用いて、復号部381から供給された各ブロックの相関情報をユニークパタン(ボクセルデータ)に変換する。ユニークパタン生成部391は、生成した各ブロックのユニークパタンを演算部392に供給する。
 なお、ユニークパタン生成部391は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、ユニークパタンの生成に関する処理を行うようにしてもよい。
 演算部392は、ボクセルデータの生成に関する処理を行う。例えば、演算部392は、予測残差復号部382から供給された予測残差と、ユニークパタン生成部391から供給された各ブロックのユニークパタン(ボクセルデータ)とを加算し、各ブロックのボクセルデータを生成する。演算部392は、生成したボクセルデータをポイントクラウド化処理部303に供給する。ポイントクラウド化処理部303が行う処理は、図22の場合と同様であるのでその説明を省略する。
 なお、演算部392は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、ボクセルデータの生成に関する処理を行うようにしてもよい。
 このようにすることにより、復号装置300は、より正確な(符号化前の状態に近い)復号画像(復号ポイントクラウドデータ)を得ることができる。つまり、復号ポイントクラウドデータの主観画質を向上させることができる。また、上述のように符号化された予測残差を伝送することにより、符号化効率の低減を抑制することができる。
   <復号処理の流れ>
 この場合の復号装置300により実行される復号処理の流れの例を、図31のフローチャートを参照して説明する。
 復号処理が開始されると、復号部381は、ステップS381において、ビットストリームを復号し、ユニークパタンとインデックスとの対応関係を示す情報と、インデックスを含む各ブロックの相関情報と、各ブロックの係数データとを抽出する。
 ステップS382において、予測残差復号部382は、各ブロックについて、ステップS381において抽出された係数データに対して予測残差復号を行い、予測残差を得る。
 ステップS383において、ユニークパタン生成部391は、ステップS381において抽出されたユニークパタンとインデックスとの対応関係を示す情報に基づいて、各ブロックの相関情報のインデックスをそれに対応するユニークパタンに変換する。
 ステップS384において、演算部392は、各ブロックについて、ステップS382において得られた予測残差と、ステップS383において得られたユニークパタンとを加算し、ボクセルデータを生成する。
 ステップS385において、ポイントクラウド化処理部303は、ステップS384の処理により得られたボクセルデータから、ポイントクラウドデータを復元する。
 ステップS386において、ポイントクラウド化処理部303は、復号ポイントクラウドデータを復号装置300の外部に出力する。
 ステップS386の処理が終了すると、復号処理が終了する。
 以上のように復号処理を行うことにより、復号装置300は、より正確な復号画像(復号ポイントクラウドデータ)を得ることができる。つまり、復号ポイントクラウドデータの主観画質を向上させることができる。また、上述のように符号化された予測残差を伝送することにより、符号化効率の低減を抑制することができる。
 なお、以上においては、図9に示される表のid = 1の行に示される復号方法に、予測残差の伝送を適用する場合について説明したが、図9に示される表のその他の行に示される復号方法に予測残差の伝送を適用する場合も同様に適用することができる。
  <属性情報の参照>
 また、上述の位置情報の符号化の際に、属性情報も同様に、相関情報を利用して符号化するようにしてもよい。例えば、位置情報(構造情報)の参照先となるブロック、ユニークパタン、または事前定義ユニークパタンの属性情報(例えば、色情報をデコードした後のRGB/YUV画素値)を、カレントブロックにおいても使用するようにしてもよい。その場合、ビットストリームには、参照先のブロックの属性情報を再利用するブロックの属性情報が含まれない。したがって、復号装置300は、ビットストリームより抽出された相関情報に対応する参照先の属性情報を用いて、カレントブロックの属性情報を復元する。
 また、例えば、位置情報(構造情報)の参照先となるブロック、ユニークパタン、または事前定義ユニークパタンの属性情報の符号化方法(例えば、色予測モード等)を、カレントブロックにおいても使用するようにしてもよい。その場合、復号装置300は、ビットストリームより抽出された相関情報に対応する参照先の属性情報の符号化方法に対応する復号方法を用いて、カレントブロックの属性情報を復号する。
 さらに、例えば、位置情報(構造情報)の参照先となるブロック、ユニークパタン、または事前定義ユニークパタンの属性情報のフィルタリング方法(カラーフォーマット変換、クロマサブサンプリング方法、デブロック等のデノイズ方法等)を、カレントブロックにおいても使用するようにしてもよい。その場合、復号装置300は、ビットストリームより抽出された相関情報に対応する参照先の属性情報のフィルタリング方法を用いて、カレントブロックの属性情報をフィルタリングする。
 このようにすることにより、ビットストリームの属性情報の冗長性を低減させることができ、符号化効率の低減を抑制することができる。
 <4.第3の実施の形態>
  <主観画質を考慮した相関度の算出>
 従来、データ同士の類似度(相関度)を評価する指標として、例えばPSNR(Peak signal-to-noise ratio)等が提案されている。しかしなら、PSNRのような一般的な評価指標は、一般的なデータとしての評価を行うので、主観的な画質(見た目の良さ)に対応しているとは限らない。そのため、ポイントクラウドデータ(ボクセルデータ)の相関度の評価において、このような一般的な評価指標のみを利用してRD最適を考慮したノードのマージを行うだけでは、復号ポイントクラウドデータにおいて、主観的な劣化が目立つおそれがあった。
 また、このような一般的な評価指標は、計算の処理コストが非常に大きく、リアルタイム処理を実現することが困難になる程、処理時間が増大するおそれがあった。
 そこで、ポイントクラウドデータを量子化したボクセルデータの比較において、ボクセルデータの値の分布パタンの主観的特徴に基づいて、比較対象のボクセルデータ間におけるその分布パタンの相関度を算出するようにする。
 例えば、情報処理装置において、ポイントクラウドデータを量子化したボクセルデータの比較において、ボクセルデータの値の分布パタンの主観的特徴に基づいて、比較対象のボクセルデータ間におけるその分布パタンの相関度を算出する相関度算出部を備えるようにする。
 このようにすることにより、復号ポイントクラウドデータの主観画質の低減を抑制することができる。
  <相関演算部>
 図32は、この場合の、符号化装置100の相関演算部201(図11)の主な構成例を示すブロック図である。図32に示されるように、この場合の相関演算部201は、特徴量算出部411、相関演算組設定部412、およびコスト算出部413を有する。
 特徴量算出部411は、特徴量の算出に関する処理を行う。例えば、特徴量算出部411は、ボクセルデータおよびそのテクスチャに基づいて、ポイントクラウドデータの主観的な(見た目に影響を及ぼす)特徴量を算出する。特徴量算出部411は、算出した特徴量を相関演算組設定部412と、コスト算出部413とに供給する。
 なお、特徴量算出部411は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、特徴量の算出に関する処理を行うようにしてもよい。
 相関演算組設定部412は、相関の演算を行うボクセルデータの組の設定に関する処理を行う。例えば、相関演算組設定部412は、特徴量算出部411から供給される特徴量に基づいて、分布パタンの相関をカレントブロックと比較するボクセルデータを設定する。つまり、相関演算組設定部412は、各ブロックについて、比較対象とするボクセルデータを設定する。相関演算組設定部412は、設定したその組を示す情報(組情報)と、ボクセルデータとをコスト算出部413に供給する。
 なお、相関演算組設定部412は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、組の設定に関する処理を行うようにしてもよい。
 コスト算出部413は、コストの算出に関する処理を行う。例えば、コスト算出部413は、相関演算組設定部412により設定されたボクセルデータの各組について、相関度(コスト値)を算出する。例えば、コスト算出部413は、カレントブロックのボクセルデータと、相関演算組設定部412が設定した全てのボクセルデータとの間の相関度を算出する。つまり、コスト算出部413は、各ブロックについて、比較対象として設定された全てのボクセルデータとの間の相関度を算出する。なお、コスト算出部413は、特徴量算出部411により算出された特徴量も用いて、その相関度(コスト値)の算出を行う。
 また、コスト算出部413は、各組の中でコスト値が最小となる組を特定する(その最小コスト値も求める)。コスト算出部413は、このようなコスト値の算出結果を、相関度として、ユニークパタン設定部202(図11)に供給する。
 なお、コスト算出部413は、どのような構成を有するようにしてもよいが、例えば、CPU、ROM、RAM等を有し、CPUがROM等に記憶されているプログラムやデータをRAMにロードして実行することにより、コストの算出に関する処理を行うようにしてもよい。
  <相関演算処理の流れ>
 次に、図33のフローチャートを参照して、図13のステップS121において実行される相関演算処理の流れの例を説明する。
 相関演算処理が開始されると、特徴量算出部411は、ステップS401において、ボクセルデータおよびテクスチャに基づいて、ポイントクラウドデータの主観的な特徴量を算出する。
 ステップS402において、相関演算組設定部412は、相関演算を行うブロックの組を設定する。
 その際、相関演算組設定部412は、例えば、比較対象を一部のブロックに制限するようにしてもよい。このようにすることにより、相関演算組設定部412は、相関演算を行う組数の増大を抑制することができ、相関演算の処理量(処理時間)の増大を抑制することができる。
 例えば、相関演算組設定部412が、カレントブロック(カレントノード)と空間的に近い場所のブロック(ノード)とのみ相関の算出が行われるように、相関演算を行うブロックの組を設定するようにしてもよい。例えば、相関演算組設定部412が、所定の空間的範囲内において、カレントブロックと比較するボクセルデータを設定するようにしてもよい。一般的に空間的に近い場所のブロックは、比較的相関度が高い。したがって、このように、比較対象とするブロックを空間的に近い場所に限定することにより、相関演算の処理量(処理時間)の増大を抑制しながら、相関度の高い組を検出しやすくすることができる。
 また、例えば、相関演算組設定部412が、Octreeパタンの1つ上位のレベルにおいて相関の算出が行われるように、相関演算を行うブロックの組を設定するようにしてもよい。例えば、相関演算組設定部412が、階層化されたボクセルデータの処理対象の階層よりも上位の階層において、カレントブロックと比較するボクセルデータを設定するようにしてもよい。
 例えば、図34のAに示される4×4×4のボクセルからなるブロック421を処理対象とすると、それより1段上位のレベルにおいては、そのブロック421は、図34のBに示されるブロック422のように、2×2×2のボクセルにより構成される。つまり、上位のレベルにいくほどボクセル数が低減する。したがって、より上位のレベルで相関の算出を行う方が、相関演算の処理量(処理時間)の増大を抑制することができる。
 また、例えば、相関演算組設定部412が、代表的なパタンとのみ相関度が算出されるように、相関演算を行うブロックの組を設定するようにしてもよい。また、その代表的なパタンは、予め定められた固定パタン(更新されないパタン)であってもよい。例えば、相関演算組設定部412が、予め定められた固定の代表的な分布パタンのボクセルデータを、カレントブロックと比較するボクセルデータとして設定するようにしてもよい。
 もちろん、この代表的なパタンは、更新可能であってもよい。例えば、フレーム毎に代表的なパタンが更新されるようにしてもよい。例えば、フレーム内の統計情報に基づいて(統計情報に応じたパタンに)更新されるようにしてもよい。また、例えば過去の処理の統計情報に基づいて(統計情報に応じたパタンに)更新されるようにしてもよい。例えば、相関演算組設定部412が、更新可能な代表的な分布パタンのボクセルデータを、カレントブロックと比較するボクセルデータとして設定するようにしてもよい。
 このように、比較対象のパタンを限定することにより、相関演算の処理量(処理時間)の増大を抑制することができる。
 図33に戻り、ステップS403において、コスト算出部413は、ステップS402において設定された各組の相関について、コスト値を算出する。なお、このコスト値の算出方法は任意である。例えば、コスト算出部413が、各組について、複数の方法でコスト値を算出するようにしてもよい。例えば、コスト算出部413が、各組について、互いに異なる方法で複数のコスト値を算出し、その中の最小値を、その組のコスト値として選択するようにしてもよい。
 ステップS403の処理が終了すると相関演算処理が終了し、処理は図13に戻る。
  <コスト算出処理の流れ>
 次に、図35のフローチャートを参照して、図33のステップS403において実行されるコスト算出処理の流れの例を説明する。
 コスト算出処理が開始されると、コスト算出部413は、ステップS421において、処理対象の組について、基本コスト関数を用いてコスト値を算出する。この基本コスト関数は、一般的なコスト関数を用いる。このコスト関数は、どのようなものであってもよいが、例えば、図36の表に示されるようなコスト関数であってもよい。
 図36の表において、Hausdorff Distanceは、2つの点群間の最短距離の最大値を双方向から求めて評価する関数である。ボクセルデータ(ポイントクラウドデータ)をポイント群とみなし、この評価関数を用いて2つのポイント群同士の距離を評価することで、ボクセルデータ間の相関の強さを評価することができる。
 また、PSNR Point2Pointは、2点間の最短距離のPSNRを評価する関数である。この評価関数を用いて、ボクセルデータ間でポイント同士の距離を評価することで、ボクセルデータ間の相関の強さを評価することができる。
 また、PSNR Point2Surfaceは、点と面との最短距離のPSNRを評価する関数である。この評価関数を用いて、一方のボクセルデータの各ポイントと、他方のボクセルデータの各ポイントの法線ベクトルに直交する面との距離を評価することで、ボクセルデータ間の相関の強さを評価することができる。
 また、Hamming Distanceは、ビット列同士を比較して互いに異なる値を持つビットの数を評価する関数である。ボクセルデータをビット列とみなし、この評価関数を用いて2つのビット列を比較し、評価することで、ボクセルデータ間の相関の強さを評価することができる。
 コスト算出部413は、ステップS421において、これらのコスト関数(評価関数)のいずれか、または任意の組み合わせにより、コスト値を算出する。
 ただし、これらのコスト関数(評価関数)では、主観的な画質については考慮されてない。そこで、図35に戻り、コスト算出部413は、ステップS422において、処理対象の組について、補正用指標を用いてペナルティ値を算出する。ペナルティ値とは、主観的に相関が弱いことを示す値であり、この値をコスト値に加算することにより、コスト値が増大する(つまり、相関度が低く評価される)値である。
 例えば、図37に示されるような指標0乃至指標3により、このペナルティ値を算出する。図37のAに示される指標0の場合、相関を評価するボクセルデータにおいて、4×4×4のボクセルからなるブロック431の中の、2×2×2のボクセル(グレーで示されるボクセル)において、X個(0<X≦8)以上のポイントが減少する場合、ペナルティ値が設定される。
 また、例えば図37のBに示される指標1の場合、相関を評価するボクセルデータにおいて、4×4×4のボクセルからなるブロック431の中の、4×1×1のボクセル(グレーで示されるボクセル)において、X個(0<X≦4)以上のポイントが減少する場合、ペナルティ値が設定される。
 また、例えば図37のCに示される指標2の場合、相関を評価するボクセルデータにおいて、4×4×4のボクセルからなるブロック431の中の、4×2×1のボクセル(グレーで示されるボクセル)において、X個(0<X≦8)以上のポイントが減少する場合、ペナルティ値が設定される。
 また、例えば図37のDに示される指標3の場合、相関を評価するボクセルデータにおいて、4×4×4のボクセルからなるブロック431の中の、4×4×1のボクセル(グレーで示されるボクセル)において、X個(0<X≦16)以上のポイントが減少する場合、ペナルティ値が設定される。
 ここで設定されるペナルティ値は、正の値であれば任意である。ポイントの減少量に応じて値が変化するようにしてもよい。
 つまり、これらの指標(補正用指標)は、相関の強さを算出するボクセルデータにおいて、所定の形状の範囲を定義し、その範囲内において互いの分布パタンが所定の基準以上に異なる場合、それらのボクセルデータの相関が(基本コスト関数を用いて算出した相関の強さよりも)弱いと評価するものである。
 この範囲の形状は、主観的な特徴を有する分布パタン(主観的に識別可能な分布パタン)とする。例えば、線や面等であってもよい。つまり、この補正用指標は、比較するボクセルデータのいずれかが、見て分かるような所定の形状の分布パタンを有しない場合、それらのボクセルデータ間の相関度をより低く算出する指標である。換言するに、この補正用指標は、比較するボクセルデータの全てが、その見て分かる形状の分布パタンを有する場合、それらのボクセルデータ間の相関度をより高く評価する指標である。
 例えば、主観的な分布パタンが(分布パタンの見た目の形状)が全く異なる場合であっても、上述の基本コスト関数では、相関性が強く評価される場合がある。このような場合、ボクセルデータがブロック単位でマージされてしまうので、復号ポイントクラウドデータにおいて、主観的に大きく異なる構造となるおそれがある。これに対して上述の補正用指標は、主観的特徴を考慮して相関度を評価するので、このような主観的な変化の発生を抑制することができる。したがって、復号ポイントクラウドデータの主観画質の低減を抑制することができる。
 なお、以上において指標0乃至指標3について説明したが、適用する補正用指標の数は任意である。また、各指標の範囲の形状は、主観的な特徴を有する(見て分かる)ものであれば、任意であり、上述の例に限定されない。
 図35に戻り、ステップS423において、コスト算出部413は、処理対象の組について、ステップS401(図33)において算出された主観的な特徴量に基づいて、補正値を算出する。
 つまり、相関を算出するブロックが、ポイントクラウドデータ全体におけるどのような主観的特徴を有する部分に位置するかによって、相関度を評価する。
 例えば、相関を算出するブロックのテクスチャが所定の基準より細かい場合、分布パタンの違いが主観的により大きな影響を及ぼす(見た目の変化がより大きい)可能性が高いので、コスト算出部413が、相関度をより低く算出するように補正値を算出するようにしてもよい。例えば、その場合、コスト算出部413が、コスト値がより大きくなるように、正の値の補正値を設定するようにしてもよい。
 また例えば、相関を算出するブロックが色のピーク点を有する場合、分布パタンの違いが主観的により大きな影響を及ぼす(見た目の変化がより大きい)可能性が高いので、コスト算出部413が、相関度をより低く算出するように補正値を算出するようにしてもよい。例えば、相関を算出するブロックが周囲のボクセルに対してピークとなる色成分を有するボクセルを含む場合、コスト算出部413が、コスト値がより大きくなるように、正の値の補正値を設定するようにしてもよい。
 また例えば、相関を算出するブロックが、注目度がより高い領域のブロックである場合、分布パタンの違いが主観的により大きな影響を及ぼす(変化がより目立つ)可能性が高いので、コスト算出部413が、相関度をより低く算出するように補正値を算出するようにしてもよい。例えば、その場合、コスト算出部413が、コスト値がより大きくなるように、正の値の補正値を設定するようにしてもよい。
 また例えば、相関を算出するブロックが、ポイントクラウドで描画される3次元構造における人の顔部分に相当するブロックである場合、分布パタンの違いが主観的により大きな影響を及ぼす(変化がより目立つ)可能性が高いので、コスト算出部413が、相関度をより低く算出するように補正値を算出するようにしてもよい。例えば、その場合、コスト算出部413が、コスト値がより大きくなるように、正の値の補正値を設定するようにしてもよい。
 また例えば、相関を算出するブロックが、ポイントクラウドで描画される3次元構造におけるエッジ部分に相当するブロックである場合、分布パタンの違いが主観的により大きな影響を及ぼす(変化がより目立つ)可能性が高いので、コスト算出部413が、相関度をより低く算出するように補正値を算出するようにしてもよい。例えば、その場合、コスト算出部413が、コスト値がより大きくなるように、正の値の補正値を設定するようにしてもよい。
 さらに例えば、相関を算出するブロックが、ポイントクラウドで描画される3次元構造における面を構成する4点の少なくともいずれか1つを含むブロックである場合、コスト算出部413が、相関度をより低く算出するように補正値を算出するようにしてもよい。例えば、ポイントクラウドで描画される3次元構造における面において、4点を残しておけばその4点を用いてその面を復元することができる。したがって、ポイントクラウドで描画される3次元構造における面の部分において少なくとも4点が残るように、コスト算出部413が、正の値の補正値を設定するようにしてもよい。
 このようにすることにより、ブロックの主観的特徴に基づいてコスト値を補正することができるので、主観的な変化の発生を抑制することができる。したがって、復号ポイントクラウドデータの主観画質の低減を抑制することができる。
 なお、コスト算出部413が補正値を設定する主観的特徴は任意であり、上述した例に限定されない。また、コスト算出部413が補正値を設定する主観的特徴の数も任意である。また、コスト算出部413がこれらのような主観的特徴に対して設定する補正値の値は任意である。例えば、主観的特徴に応じた値が設定されるようにしてもよい。
 図35に戻り、ステップS424において、コスト算出部413は、ステップS421乃至ステップS423のそれぞれにおいて算出した値を用いて、処理対象の組に対応する最終的なコスト値(最終コスト値)を算出する。つまり、コスト算出部413は、主観的特徴を考慮して最終コスト値を算出する。したがって、復号ポイントクラウドデータの主観画質の低減を抑制することができる。
 ステップS425において、コスト算出部413は、カレントブロックに対応する未処理の組が存在するか否かを判定する。未処理の組が存在すると判定された場合、未処理の組が新たな処理対象とされ、処理はステップS421に戻る。つまり、カレントブロックに対応する各組について、ステップS421乃至ステップS425の各処理が実行される。
 そして、ステップS425において、カレントブロックに対応する全ての組を処理したと判定された場合、処理はステップS426に進む。
 ステップS426において、コスト算出部413は、以上のようにして算出された各組の最終コスト値の中の最小値(コスト最小値)を求め、そのコスト最小値に対応する組を特定する。
 ステップS426の処理が終了すると、コスト算出処理が終了し、処理は図33に戻る。
  <ユニークパタンの設定>
 例えば、図11を参照して説明したように、以上のように算出されたコスト値は、ユニークパタン設定部202に供給され、ユニークパタンの設定に利用される。例えば、コスト値が十分に小さい(分布パタンが一致または近似している)と判定された場合、ユニークパタン設定部202は、そのボクセルデータの組の分布パタンを用いて、ユニークパタンを設定する。
 その際のユニークパタンの設定方法は任意である。例えば、ユニークパタン設定部202は、存在頻度の高い分布パタンをユニークパタンとするようにしてもよい。例えば、図38のAに示されるように、ブロック451とブロック452とが、分布パタンが近似していると判定されたとする。ここで、ブロック452の分布パタンの方がブロック451の分布パタンよりも存在頻度が高いとすると、ユニークパタン設定部202は、図38のBに示されるように、ブロック452の分布パタンをユニークパタンに採用する。
 また、例えば、ユニークパタン設定部202は、分布パタンを所定の基準に基づいて評価し、その評価値(スコア)がより高い分布パタンをユニークパタンとするようにしてもよい。例えば、モデルとなる分布パタンを予め定めておき、そのモデルの分布パタンに最も近似する分布パタンをユニークパタンとするようにしてもよい。例えば、ブロック451の分布パタンがモデルの分布パタンに最も近似しているとすると、ユニークパタン設定部202は、図38のCに示されるように、ブロック451の分布パタンをユニークパタンに採用する。
 さらに、例えば、ユニークパタン設定部202は、各分布パタンを用いて所定の方法により導出される新たな分布パタンをユニークパタンとするようにしてもよい。例えば、ユニークパタン設定部202は、図38のDに示されるブロック453のように、ブロック451の分布パタンとブロック452の分布パタンを混合した新たな分布パタンをユニークパタンに採用する。
 このように相関度を算出した分布パタンを用いてユニークパタンを設定することにより、復号ポイントクラウドデータの主観画質の低減を抑制することができる。
  <Early Termination>
 上述したコスト値算出処理は、算出した一部のコスト値に応じて、全てのコスト値を算出する前に終了するようにしてもよい。
 例えば、基本コスト関数を用いて算出したコスト値が所定の基準以上である場合、その組の分布パタンの相関性は低い(分布パタンが一致も近似もしない)と判定し、ペナルティ値や補正値の算出を省略するようにしてもよい。また、例えば、算出したペナルティ値が所定の基準以上である場合、その組の分布パタンの相関性は低い(分布パタンが一致も近似もしない)と判定し、補正値の算出を省略するようにしてもよい。
 また、例えば、カレントブロックについて、算出したある組についての最終コスト値が所定の基準以下である場合、その組の分布パタンの相関性が十分に高い(分布パタンが一致または近似する組である)と判定し、カレントブロックについては、その他の組のコスト値の算出を省略するようにしてもよい。
   <コスト値算出処理の流れ>
 図39のフローチャートを参照して、この場合の、図33のステップS403において実行されるコスト算出処理の流れの例を説明する。
 コスト算出処理が開始されると、コスト算出部413は、ステップS441において、処理対象の組について、基本コスト関数を用いてコスト値を算出する。
 ステップS442において、コスト算出部413は、そのコスト値が予め定められた所定の閾値TH_MAX_0より小さいか否かを判定する。コスト値が予め定められた所定の閾値TH_MAX_0より小さいと判定された場合、処理はステップS443に進む。
 ステップS443において、コスト算出部413は、処理対象の組について、補正用指標を用いてペナルティ値を算出する。
 ステップS444において、コスト算出部413は、そのペナルティ値が予め定められた所定の閾値TH_MAX_1より小さいか否かを判定する。コスト値が予め定められた所定の閾値TH_MAX_1より小さいと判定された場合、処理はステップS445に進む。
 ステップS445において、コスト算出部413は、処理対象の組について、ステップS401(図33)において算出された主観的な特徴量に基づいて、補正値を算出する。
 ステップS446において、コスト算出部413は、ステップS441、ステップS443、およびステップS445のそれぞれにおいて算出した値を用いて、処理対象の組に対応する最終的なコスト値(最終コスト値)を算出する。つまり、コスト算出部413は、主観的特徴を考慮して最終コスト値を算出する。したがって、復号ポイントクラウドデータの主観画質の低減を抑制することができる。
 ステップS447において、コスト算出部413は、その最終コスト値が予め定められた所定の閾値TH_MINより大きいか否かを判定する。最終コスト値が予め定められた所定の閾値TH_MINより小さいと判定された場合、処理はステップS449に進む。
 また、ステップS442において、ステップS441において算出されたコスト値が閾値TH_MAX_0以上であると判定された場合、処理はステップS448に進む。また、ステップS444において、ステップS443において算出されたペナルティ値が閾値TH_MAX_1以上であると判定された場合、処理はステップS448に進む。
 ステップS448において、コスト算出部413は、処理対象の組について分布パタンの相関性無し(分布パタンが一致も近似もしない)と判定する。ステップS448の処理が終了すると処理はステップS449に進む。
 ステップS449において、コスト算出部413は、カレントブロックに対応する未処理の組が存在するか否かを判定する。未処理の組が存在すると判定された場合、未処理の組が新たな処理対象とされ、処理はステップS441に戻る。つまり、カレントブロックに対応する各組について、ステップS441乃至ステップS449の各処理が実行される。
 そして、ステップS449において、カレントブロックに対応する全ての組を処理したと判定された場合、処理はステップS450に進む。
 ステップS450において、コスト算出部413は、以上のようにして算出された各組の最終コスト値の中の最小値(コスト最小値)を求め、そのコスト最小値に対応する組を特定する。
 ステップS450の処理が終了すると、コスト算出処理が終了し、処理は図33に戻る。
 また、ステップS447において、最終コスト値が閾値TH_MIN以下であると判定された場合、処理はステップS451に進む。
 ステップS451において、コスト算出部413は、その最終コスト値に対応する組について分布パタンの相関性が十分に高い(分布パタンが一致または近似する)と判定し、(全ての組の最終コスト値を算出する前に、)そのコスト値をコスト最小値とする。ステップS451の処理が終了すると、コスト算出処理が終了し、処理は図33に戻る。
 このように算出したコスト値に応じて有益性の低い処理を適宜省略することにより、コスト値算出処理の処理量(処理時間)の増大を抑制することができる。
  <相関演算の適用例>
 以上においては、信号列生成部114が図9に示される表のid = 1の行に示される方法によりボクセルデータを符号化する場合について説明したが、本技術を適用した相関演算は、相関演算を行う方法であれば、任意の方法でボクセルデータを符号化する場合にも適用することができる。
 例えば、本技術を適用した相関演算は、図9に示される表のid = 1乃至6のいずれの行に示される方法によってボクセルデータを符号化する場合にも、上述した例と同様に適用することができる。また、Octree符号化やDAG処理を併用する場合も上述した例と同様に適用することができる。さらに、予測残差を伝送する場合も上述した例と同様に適用することができる。
 また、以上においては、ポイントクラウドデータの符号化において、本技術を適用した相関演算を適用するように説明したが、上述した本技術を適用した相関演算は、相関演算を用いる任意の処理に適用することができる。
 例えば、ポイントクラウドの位置合わせにおいて行われる相関演算にも適用することができる。ポイントクラウドの位置合わせ(Registration)は、例えば、複数視点から撮影されたポイントクラウド(Point cloud)の合成や、時間方向に連続するポイントクラウドデータの合成等に用いられる。
 ポイントクラウドの位置合わせ(Registration)には、それぞれのポイントクラウドの位置情報の誤差が最小となるように、移動量を求める探索アルゴリズムが用いられる。この時に用いる誤差の指標として、本技術を適用した相関演算を適用してもよい。
 例えば、図40のAに示されるように、ポイントクラウド471とポイントクラウド472とを動かして両者の位置を図40のBの例のように揃えるように位置合わせを行う場合に、本技術を適用した相関演算を適用して、ウサギの胴体の表面形状が保たれるような指標を用いることで、主観的画質の低減を抑制することができる。
  <画像処理装置>
 図41は、本技術を適用した情報処理装置の一実施の形態である画像処理装置の主な構成例を示すブロック図である。図41に示される画像処理装置500は、ポイントクラウドデータ(またはボクセルデータ)同士の位置合わせ(Registration)を行う。その際、符号化装置100は、本技術を適用した相関演算を行う。
 図41に示されるように、画像処理装置は、位置設定部501、相関演算部502、および判定部503を有する。
 位置設定部501は、位置合わせを行う各ポイントクラウドデータの位置を設定する。
 相関演算部502は、位置設定部501により設定された位置関係において、位置合わせを行う各ポイントクラウドデータの分布パタンの相関性の強さ(相関度)をコスト値として算出する。
 判定部503は、相関演算部502により算出されたコスト値に基づいて、各ポイントクラウドデータが最も近づく位置を判定する。
 位置設定部501は、ポイントクラウドデータ(またはボクセルデータ)の位置を更新し、相関演算部502は、再度コスト値を算出する。位置設定部501および相関演算部502は、ポイントクラウドデータを移動させる全ての位置について、以上の処理を繰り返す。そして、判定部503は、各位置のコスト値から最小コスト値(つまり、ポイントクラウド同士が最も近づく位置)を求める。
 このような画像処理装置500において、相関演算部502が、上述したような本技術を適用した相関演算を行って、ボクセルデータの値の分布パタンの主観的特徴に基づいて、比較対象のボクセルデータ間における前記分布パタンの相関度を算出することで、主観画質の低減を抑制しながら位置合わせを行うことができる。
  <位置合わせ処理の流れ>
 このような画像処理装置500により実行される位置合わせ処理の流れの例を図42のフローチャートを参照して説明する。
 位置合わせ処理が開始されると、位置設定部501は、ステップS501において、位置合わせを行う各ポイントクラウドの位置を設定する。
 ステップS502において、相関演算部502は、比較対象のポイントクラウド同士の誤差(位置ずれの大きさ)について、図32乃至図39を参照して説明した場合と同様にして、コスト値を算出する。
 ステップS503において、位置設定部501は、ポイントクラウドを移動可能な全ての位置においてコスト値を算出したか否かを判定する。未処理の位置が存在すると判定された場合、処理はステップS501に戻る。つまり、ポイントクラウドを移動可能な全ての位置について、ステップS501乃至ステップS503の各処理が実行される。
 そしてステップS503において、全ての位置においてコスト値を算出したと判定された場合、処理はステップS504に進む。
 ステップS504において、判定部503は、相関演算部502により算出されたコスト値の中から、最小コスト値を求め、ポイントクラウド同士が最も近づく位置を特定する。
 ステップS504の処理が終了すると位置合わせ処理が終了する。
 以上のように、本技術を適用した相関演算を適用することにより、ボクセルデータの値の分布パタンの主観的特徴を考慮してコスト値を算出することができるので、主観画質の低減を抑制しながら位置合わせを行うことができる。
 <5.その他>
  <ソフトウエア>
 上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。また、一部の処理をハードウエアにより実行させ、他の処理をソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
 図43は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
 図43に示されるコンピュータ900において、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903は、バス904を介して相互に接続されている。
 バス904にはまた、入出力インタフェース910も接続されている。入出力インタフェース910には、入力部911、出力部912、記憶部913、通信部914、およびドライブ915が接続されている。
 入力部911は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部912は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部913は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部914は、例えば、ネットワークインタフェースよりなる。ドライブ915は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア921を駆動する。
 以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部913に記憶されているプログラムを、入出力インタフェース910およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。RAM903にはまた、CPU901が各種の処理を実行する上において必要なデータなども適宜記憶される。
 コンピュータ(CPU901)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア921に記録して適用することができる。その場合、プログラムは、リムーバブルメディア921をドライブ915に装着することにより、入出力インタフェース910を介して、記憶部913にインストールすることができる。また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部914で受信し、記憶部913にインストールすることができる。その他、このプログラムは、ROM902や記憶部913に、あらかじめインストールしておくこともできる。
  <補足>
 本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
 例えば、本技術は、装置またはシステムを構成するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
 なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
 また、上述した処理部は、その処理部について説明した機能を有するようにすれば、どのような構成により実現するようにしてもよい。例えば、処理部が、任意の回路、LSI、システムLSI、プロセッサ、モジュール、ユニット、セット、デバイス、装置、またはシステム等により構成されるようにしてもよい。また、それらを複数組み合わせるようにしてもよい。例えば、複数の回路、複数のプロセッサ等のように同じ種類の構成を組み合わせるようにしてもよいし、回路とLSI等のように異なる種類の構成を組み合わせるようにしてもよい。
 また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
 また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
 また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
 また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
 コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
 本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
 なお、本技術は以下のような構成も取ることができる。
 (1) ポイントクラウドデータを量子化したボクセルデータを、前記ボクセルデータの値の分布パタンの相関を利用して符号化した相関情報を生成する相関情報生成部と、
 前記相関情報生成部により生成された前記相関情報を符号化し、前記相関情報を含むビットストリームを生成する符号化部と
 を備える情報処理装置。
 (2) 前記相関情報生成部は、前記ボクセルデータが表す空間の部分領域であるブロック毎に、前記ボクセルデータを符号化して前記相関情報を生成する
 (1)に記載の情報処理装置。
 (3) 前記相関情報生成部は、
  処理対象のブロックであるカレントブロックのボクセルデータを、
   ボクセルデータの値の分布パタンであって、前記ポイントクラウドデータを量子化したボクセルデータを用いて生成されたユニークパタンの内の、
   前記カレントブロックのボクセルデータの値の分布パタンに一致または近似するユニークパタン
  に割り当てられたインデックスに変換し、
  前記インデックスを含む前記相関情報を生成する
 (2)に記載の情報処理装置。
 (4) 前記相関情報生成部は、
  ユニークパタンとインデックスとの対応関係を示す情報を保持し、
  前記情報に基づいて、前記カレントブロックのボクセルデータの値の分布パタンに一致または近似するユニークパタンに割り当てられたインデックスを特定し、
  前記カレントブロックのボクセルデータを、特定した前記インデックスに変換する
 (3)に記載の情報処理装置。
 (5) 前記符号化部は、前記相関情報生成部が保持する前記情報を符号化し、前記ビットストリームに含める
 (4)に記載の情報処理装置。
 (6) 前記ポイントクラウドデータを量子化したボクセルデータを用いて生成されたユニークパタンにインデックスを割り当てるインデックス割り当て部をさらに備え、
 前記相関情報生成部は、前記インデックス割り当て部が割り当てたユニークパタンとインデックスとの対応関係を示す情報を保持するように構成される
 (4)または(5)に記載の情報処理装置。
 (7) ブロック間のボクセルデータの値の分布パタンの相関の強さを利用して前記分布パタンが一致または近似するかによってブロックを分類し、その分類結果に基づいてユニークパタンを設定するユニークパタン設定部をさらに備え、
 前記インデックス割り当て部は、前記ユニークパタン設定部により設定されたユニークパタンにインデックスを割り当てるように構成される
 (6)に記載の情報処理装置。
 (8) ブロック間のボクセルデータの値の分布パタンの相関の強さを算出する相関演算部をさらに備え、
 前記ユニークパタン設定部は、前記相関演算部により算出された前記ブロック間の前記分布パタンの相関の強さを利用してブロックを分類し、その分類結果に基づいて前記ユニークパタンを設定するように構成され、
 前記相関情報生成部は、その分類結果に基づいて、前記カレントブロックのボクセルデータの値の分布パタンに一致または近似するユニークパタンを特定するように構成される
 (7)に記載の情報処理装置。
 (9) 前記相関情報生成部は、
  処理対象のブロックであるカレントブロックのボクセルデータを、
   前記カレントブロックの周辺に位置する周辺ブロックの内の、
   ボクセルデータの値の分布パタンが前記カレントブロックと一致または近似する周辺ブロック
  の位置を示す情報である参照空間座標情報に変換し、
  前記参照空間座標情報を含む前記相関情報を生成する
 (2)乃至(8)のいずれかに記載の情報処理装置。
 (10) 前記参照空間座標情報は、前記周辺ブロックの絶対位置を示す情報である参照先空間座標情報を含む
 (9)に記載の情報処理装置。
 (11) 前記参照空間座標情報は、前記周辺ブロックの前記カレントブロックに対する相対位置を示す情報である参照ベクトルを含む
 (9)に記載の情報処理装置。
 (12) ブロック間のボクセルデータの値の分布パタンの相関の強さに基づいて前記分布パタンが前記カレントブロックと一致または近似する前記周辺ブロックを特定し、特定した前記周辺ブロックに対応する前記参照空間座標情報を設定する参照空間座標情報設定部をさらに備え、
 前記相関情報生成部は、前記カレントブロックのボクセルデータを、前記参照空間座標情報設定部により設定された前記参照空間座標情報に変換し、前記相関情報を生成するように構成される
 (9)乃至(11)のいずれかに記載の情報処理装置。
 (13) ブロック間のボクセルデータの値の分布パタンの相関の強さを算出する相関演算部をさらに備え、
 前記参照空間座標情報設定部は、前記相関演算部により算出された前記ブロック間の前記分布パタンの相関の強さに基づいて前記参照空間座標情報を設定するように構成される
 (12)に記載の情報処理装置。
 (14) 前記相関情報生成部は、
  処理対象のブロックであるカレントブロックのボクセルデータを、
   予め用意されたボクセルデータの値の分布パタンであるユニークパタンの内の、
   前記カレントブロックのボクセルデータの値の分布パタンに一致または近似するユニークパタン
  に割り当てられたインデックスに変換し、
  前記インデックスを含む前記相関情報を生成する
 (2)乃至(13)のいずれかに記載の情報処理装置。
 (15) 前記相関情報生成部は、
  ユニークパタンとインデックスとの対応関係を示す情報を保持し、
  前記情報に基づいて、前記カレントブロックのボクセルデータの値の分布パタンに一致または近似するユニークパタンに割り当てられたインデックスを特定し、
  前記カレントブロックのボクセルデータを、特定した前記インデックスに変換する
 (14)に記載の情報処理装置。
 (16) 前記カレントブロックのボクセルデータの値の分布パタンとユニークパタンとの相関の強さを算出する相関演算部をさらに備え、
 前記相関情報生成部は、
  前記相関演算部により算出された前記カレントブロックの前記分布パタンと前記ユニークパタンとの相関の強さに基づいて、前記カレントブロックのボクセルデータの値の分布パタンに一致または近似するユニークパタンを特定するように構成される
 (15)に記載の情報処理装置。
 (17) 前記相関情報生成部は、
  処理対象のブロックであるカレントブロックのボクセルデータの値の分布パタンとの相関の強さを求める際の、参照先に対応するフレームを示す時間情報
 を含む前記相関情報を生成する
 (2)乃至(16)のいずれかに記載の情報処理装置。
 (18) 前記相関情報生成部は、
  処理対象のブロックであるカレントブロックのボクセルデータの値の分布パタンとの相関の強さを求める際の、参照先のボクセルデータの値の分布パタンの回転に関する情報、
  および、前記参照先の前記分布パタンの反転に関する情報
 の内の少なくとも一方を含む前記相関情報を生成する
 (2)乃至(17)のいずれかに記載の情報処理装置。
 (19) 前記相関情報生成部は、処理対象のブロックであるカレントブロックの周辺に位置する周辺ブロックの前記相関情報を用いて、前記カレントブロックの前記相関情報を生成する
 (2)乃至(18)のいずれかに記載の情報処理装置。
 (20) ポイントクラウドデータを量子化したボクセルデータを、Octree符号化して階層化するOctree符号化部をさらに備え、
 前記相関情報生成部は、前記Octree符号化部により階層化されたボクセルデータの最下位レベルのノードについて前記相関情報を生成するように構成され、
 前記符号化部は、前記Octree符号化部により階層化されたボクセルデータの各ノードと、前記相関情報生成部により生成された前記相関情報とを含む信号列を符号化するように構成される
 (2)乃至(19)のいずれかに記載の情報処理装置。
 (21) 前記Octree符号化部により階層化されたボクセルデータの最下位レベルの1つ上のレベルから所定のレベルまでのノードを、自己相関を用いて符号化する有効指向性グラフ処理を行う有効指向性グラフ処理部をさらに備え、
 前記符号化部は、前記有効指向性グラフ処理されたノードをさらに含む信号列を符号化するように構成される
 (20)に記載の情報処理装置。
 (22) 処理対象のブロックであるカレントブロックのボクセルデータの値の分布パタンと、前記カレントブロックの前記相関情報に対応するボクセルデータの値の分布パタンとの差分である予測残差を符号化する予測残差符号化部をさらに備え、
 前記符号化部は、前記相関情報生成部により生成された前記相関情報と、前記予測残差符号化部により前記予測残差が符号化されて得られる係数データとを含む信号列を符号化するように構成される
 (2)乃至(21)のいずれかに記載の情報処理装置。
 (23) 前記符号化部は、前記相関情報生成部により前記相関情報が生成されたブロックの属性情報の符号化を省略する
 (2)乃至(22)のいずれかに記載の情報処理装置。
 (24) 前記符号化部は、前記相関情報生成部により前記相関情報が生成されたブロックの属性情報を、前記相関情報に対応する参照先の属性情報と同一の符号化方法で符号化する
 (2)乃至(23)のいずれかに記載の情報処理装置。
 (25) 前記符号化部は、前記相関情報生成部により前記相関情報が生成されたブロックの属性情報を、前記相関情報に対応する参照先の属性情報と同一のフィルタリング方法でフィルタリングする
 (2)乃至(24)のいずれかに記載の情報処理装置。
 (26) ポイントクラウドデータを量子化したボクセルデータを、前記ボクセルデータの値の分布パタンの相関を利用して符号化した相関情報を生成し、
 生成された前記相関情報を符号化し、前記相関情報を含むビットストリームを生成する
 情報処理方法。
 (31)  ポイントクラウドデータを量子化したボクセルデータを、前記ボクセルデータの値の分布パタンの相関を利用して符号化した相関情報
 を含むビットストリームを復号し、前記相関情報を抽出する復号部と、
 前記復号部により前記ビットストリームから抽出された前記相関情報に対応するボクセルデータを生成するボクセルデータ生成部と
 を備える情報処理装置。
 (32) 前記復号部は、前記ボクセルデータが表す空間の部分領域であるブロック毎に設定された前記相関情報を抽出し、
 前記ボクセルデータ生成部は、各ブロックの前記相関情報に基づいて、各ブロックのボクセルデータを生成する
 (31)に記載の情報処理装置。
 (33) 前記相関情報は、ボクセルデータの値の分布パタンであって、前記ポイントクラウドデータを量子化したボクセルデータを用いて生成されたユニークパタンの内の、処理対象のブロックであるカレントブロックのボクセルデータの値の分布パタンに一致または近似するユニークパタンに割り当てられたインデックスを含み、
 前記ビットストリームは、さらに、ユニークパタンとインデックスとの対応関係を示す情報を含み、
 前記復号部は、前記ビットストリームを復号し、前記相関情報および前記ユニークパタンとインデックスとの対応関係を示す情報を抽出するように構成され、
 前記ボクセルデータ生成部は、前記復号部により前記ビットストリームより抽出された前記カレントブロックの前記相関情報のインデックスに対応するユニークパタンを、前記ユニークパタンとインデックスとの対応関係を示す情報を用いて特定し、特定した前記ユニークパタンを用いて、前記カレントブロックのボクセルデータを生成するように構成される
 (32)に記載の情報処理装置。
 (34) 前記相関情報は、処理対象のブロックであるカレントブロックの周辺に位置する周辺ブロックの内の、ボクセルデータの値の分布パタンが前記カレントブロックと一致または近似する周辺ブロックの位置を示す情報である参照空間座標情報を含み、
 前記ボクセルデータ生成部は、前記復号部により前記ビットストリームより抽出された前記カレントブロックの前記相関情報に含まれる前記参照空間座標情報に対応する位置のブロックのボクセルデータを用いて、前記カレントブロックのボクセルデータを生成するように構成される
 (32)または(33)に記載の情報処理装置。
 (35) 前記相関情報は、予め用意されたボクセルデータの値の分布パタンであるユニークパタンの内の、処理対象のブロックであるカレントブロックのボクセルデータの値の分布パタンに一致または近似するユニークパタンに割り当てられたインデックスを含み、
 前記ボクセルデータ生成部は、前記復号部により前記ビットストリームより抽出された前記カレントブロックの前記相関情報に含まれるインデックスに対応するユニークパタンを特定し、特定した前記ユニークパタンを用いて、前記カレントブロックのボクセルデータを生成するように構成される
 (32)乃至(34)のいずれかに記載の情報処理装置。
 (36) 前記相関情報は、処理対象のブロックであるカレントブロックのボクセルデータの値の分布パタンとの相関の強さを求める際の、参照先に対応するフレームを示す時間情報を含み、
 前記ボクセルデータ生成部は、前記復号部により前記ビットストリームより抽出された前記カレントブロックの前記相関情報に含まれる前記時間情報に基づいて前記参照先に対応するフレームを特定するように構成される
 (32)乃至(35)のいずれかに記載の情報処理装置。
 (37) 前記相関情報は、処理対象のブロックであるカレントブロックのボクセルデータの値の分布パタンとの相関の強さを求める際の、参照先のボクセルデータの値の分布パタンの回転に関する情報、および、前記参照先の前記分布パタンの反転に関する情報、の内の少なくともいずれか一方を含み、
 前記ボクセルデータ生成部は、前記復号部により前記ビットストリームより抽出された前記カレントブロックの前記相関情報に含まれる前記回転に関する情報、および、前記反転に関する情報の内の少なくともいずれか一方に基づいて、参照先のボクセルデータの値の分布パタンに対して回転若しくは反転、またはその両方を行うように構成される
 (32)乃至(36)のいずれかに記載の情報処理装置。
 (38) 前記ボクセルデータ生成部は、処理対象のブロックであるカレントブロックの周辺に位置する周辺ブロックの前記相関情報を用いて、前記カレントブロックの前記相関情報を生成し、生成した前記相関情報を用いて、前記カレントブロックのボクセルデータを生成する
 (32)乃至(37)のいずれかに記載の情報処理装置。
 (39) 前記ビットストリームは、ポイントクラウドデータを量子化したボクセルデータがOctree符号化された、階層化されたボクセルデータの各ノードの係数データをさらに含み、
 前記復号部は、前記ビットストリームを復号し、前記階層化されたボクセルデータの各ノードの係数データをさらに抽出するように構成され、
 前記復号部により前記ビットストリームより抽出された前記階層化されたボクセルデータの各ノードをOctree復号するOctree復号部をさらに備える
 (32)乃至(38)のいずれかに記載の情報処理装置。
 (40) 前記ビットストリームは、前記階層化されたボクセルデータの最下位レベルの1つ上のレベルから所定のレベルまでのノードに対して、自己相関を用いて符号化する有効指向性グラフ処理を行うことにより得られる有効指向性グラフデータをさらに含み、
 前記復号部は、前記ビットストリームを復号し、前記有効指向性グラフデータをさらに抽出するように構成され、
 前記復号部により前記ビットストリームより抽出された前記有効指向性グラフデータに対して、自己相関を用いて復号する有効指向性グラフ逆処理を行う有効指向性グラフ逆処理部をさらに備える
 (39)に記載の情報処理装置。
 (41) 前記ビットストリームは、ポイントクラウドデータを量子化したボクセルデータの値の分布パタンと前記相関情報に対応するボクセルデータの値の分布パタンとの差分である予測残差が符号化された係数データをさらに含み、
 前記復号部は、前記ビットストリームを復号し、前記係数データをさらに抽出するように構成され、
 前記復号部により前記ビットストリームより抽出された前記係数データを復号する予測残差復号部をさらに備え、
 前記ボクセルデータ生成部は、前記復号部により前記ビットストリームより抽出された前記相関情報に対応するボクセルデータの値の分布パタンと、前記予測残差復号部により前記係数データが復号されて復元された前記予測残差とを用いて、ボクセルデータを生成する
 (32)乃至(40)のいずれかに記載の情報処理装置。
 (42) 前記ボクセルデータ生成部は、前記復号部により前記ビットストリームより抽出された前記相関情報に対応する参照先の属性情報を用いて、処理対象のブロックであるカレントブロックの属性情報を復元する
 (32)乃至(41)のいずれかに記載の情報処理装置。
 (43) 前記ボクセルデータ生成部は、前記復号部により前記ビットストリームより抽出された前記相関情報に対応する参照先の属性情報の符号化方法を用いて、処理対象のブロックであるカレントブロックの属性情報を復号する
 (32)乃至(42)のいずれかに記載の情報処理装置。
 (44) 前記ボクセルデータ生成部は、前記復号部により前記ビットストリームより抽出された前記相関情報に対応する参照先の属性情報のフィルタリング方法を用いて、処理対象のブロックであるカレントブロックの属性情報をフィルタリングする
 (32)乃至(43)のいずれかに記載の情報処理装置。
 (45)  ポイントクラウドデータを量子化したボクセルデータを、前記ボクセルデータの値の分布パタンの相関を利用して符号化した相関情報
 を含むビットストリームを復号し、前記相関情報を抽出し、
 前記ビットストリームから抽出された前記相関情報に対応するボクセルデータを生成する
 情報処理方法。
 (101) ポイントクラウドデータを量子化したボクセルデータの比較において、ボクセルデータの値の分布パタンの主観的特徴に基づいて、比較対象のボクセルデータ間における前記分布パタンの相関度を算出する相関度算出部
 を備える情報処理装置。
 (102) 前記相関度算出部は、前記ボクセルデータが表す空間の部分領域であるブロック毎に前記相関度を算出する
 (101)に記載の情報処理装置。
 (103) 前記相関度算出部は、
  比較対象の全てのボクセルデータが所定の形状の前記分布パタンを有する場合、前記相関度をより高く算出し、
  前記比較対象の少なくともいずれかのボクセルデータが前記所定の形状の前記分布パタンを有しない場合、前記相関度をより低く算出する
 (102)に記載の情報処理装置。
 (104) 前記所定の形状は、線または面である
 (103)に記載の情報処理装置。
 (105) ポイントクラウドで描画される3次元構造の特徴量を算出する特徴量算出部をさらに備え、
 前記相関度算出部は、前記特徴量算出部により算出された前記特徴量に基づいて、前記相関度を算出する
 (102)乃至(104)のいずれかに記載の情報処理装置。
 (106) 前記相関度算出部は、前記特徴量算出部により算出された前記特徴量に基づいて、テクスチャが所定の基準より細かいブロックにおいて、前記相関度をより低く算出する
 (105)に記載の情報処理装置。
 (107) 前記相関度算出部は、前記特徴量算出部により算出された前記特徴量に基づいて、周囲のボクセルに対してピークとなる色成分を有するボクセルを含むブロックにおいて、前記相関度をより低く算出する
 (105)または(106)に記載の情報処理装置。
 (108) 前記相関度算出部は、前記特徴量算出部により算出された前記特徴量に基づいて、注目度のより高い領域のブロックにおいて、前記相関度をより低く算出する
 (105)乃至(107)のいずれかに記載の情報処理装置。
 (109) 前記相関度算出部は、前記特徴量算出部により算出された前記特徴量に基づいて、ポイントクラウドで描画される3次元構造における人の顔部分に相当するブロックにおいて、前記相関度をより低く算出する
 (105)乃至(108)のいずれかに記載の情報処理装置。
 (110) 前記相関度算出部は、前記特徴量算出部により算出された前記特徴量に基づいて、ポイントクラウドで描画される3次元構造におけるエッジ部分に相当するブロックにおいて、前記相関度をより低く算出する
 (105)乃至(109)のいずれかに記載の情報処理装置。
 (111) 前記相関度算出部は、前記特徴量算出部により算出された前記特徴量に基づいて、ポイントクラウドで描画される3次元構造における面を構成する4点の少なくともいずれか1つを含むブロックにおいて、前記相関度をより低く算出する
 (105)乃至(110)のいずれかに記載の情報処理装置。
 (112) 前記相関度算出部は、コスト関数を用いて、比較対象のボクセルデータ間の相関についてのコスト値を算出し、算出した前記コスト値を、前記分布パタンの主観的特徴に基づいて補正することにより、比較対象のボクセルデータ間の相関度を算出する
 (102)乃至(111)のいずれかに記載の情報処理装置。
 (113) 前記コスト関数は、Hausdorff Distanceである
 (112)に記載の情報処理装置。
 (114) 前記コスト関数は、PSNR Point2Pointである
 (112)または(113)に記載の情報処理装置。
 (115) 前記コスト関数は、PSNR Point2Surfaceである
 (112)乃至(114)のいずれかに記載の情報処理装置。
 (116) 前記コスト関数は、Hamming Distanceである
 (112)乃至(115)のいずれかに記載の情報処理装置。
 (117) 処理対象のブロックであるカレントブロックと比較するボクセルデータを設定する設定部をさらに備え、
 前記相関度算出部は、前記カレントブロックのボクセルデータと、前記設定部が設定した全てのボクセルデータとの間の相関度を算出する
 (102)乃至(116)のいずれかに記載の情報処理装置。
 (118) 前記設定部は、所定の空間的範囲内において、前記カレントブロックと比較するボクセルデータを設定する
 (117)に記載の情報処理装置。
 (119) 前記設定部は、階層化されたボクセルデータの処理対象の階層よりも上位の階層において、前記カレントブロックと比較するボクセルデータを設定する
 (117)または(118)に記載の情報処理装置。
 (120) 前記設定部は、予め定められた固定の代表的なパタンの前記分布パタンを有するボクセルデータを、前記カレントブロックと比較するボクセルデータとして設定する
 (117)乃至(119)のいずれかに記載の情報処理装置。
 (121) 前記設定部は、更新可能な代表的なパタンであるボクセルデータを、前記カレントブロックと比較するボクセルデータとして設定する
 (117)乃至(120)のいずれかに記載の情報処理装置。
 (122) 前記相関度算出部は、前記設定部が設定した各ボクセルデータについて複数の方法で前記相関度を順次算出し、いずれかの方法で算出した前記相関度が所定の基準よりも低いと判定された場合、比較した前記ボクセルデータの前記分布パタンは前記カレントブロックの前記分布パタンと一致および近似しないと判定し、前記ボクセルデータとの相関度の算出を中止する
 (117)乃至(121)のいずれかに記載の情報処理装置。
 (123) 前記相関度算出部は、前記設定部が設定した各ボクセルデータについて複数の方法で前記相関度を順次算出し、いずれかの方法で算出した前記相関度が所定の基準よりも高いと判定された場合、比較した前記ボクセルデータの前記分布パタンが前記カレントブロックの分布パタンと一致または最も近似すると判定し、前記カレントブロックについての相関度の算出を中止する
 (117)乃至(122)のいずれかに記載の情報処理装置。
 (124) 前記相関度算出部により算出された前記相関度に基づいて、前記比較対象のボクセルデータの前記分布パタン同士が一致または近似するかを判定し、一致または近似すると判定された場合、前記比較対象のボクセルデータのそれぞれの前記分布パタンと一致または近似する前記分布パタンであるユニークパタンを設定するユニークパタン設定部をさらに備える
 (102)乃至(123)のいずれかに記載の情報処理装置。
 (125) 前記ユニークパタン設定部は、前記比較対象のボクセルデータの内、存在頻度が最も高いボクセルデータの前記分布パタンを前記ユニークパタンとして設定する
 (124)に記載の情報処理装置。
 (126) 前記ユニークパタン設定部は、前記比較対象のボクセルデータの内、予め定められた所定の分布パタンに最も近似するボクセルデータの前記分布パタンを前記ユニークパタンとして設定する
 (124)または(125)に記載の情報処理装置。
 (127) 前記ユニークパタン設定部は、各比較対象のボクセルデータの前記分布パタンを用いて所定の方法により導出される新たな前記分布パタンを前記ユニークパタンとして設定する
 (124)乃至(126)のいずれかに記載の情報処理装置。
 (128) 前記相関度算出部により算出された前記相関度に基づいて前記比較対象のボクセルデータの位置を、互いに近づけるように設定する位置設定部をさらに備える
 (102)乃至(127)のいずれかに記載の情報処理装置。
 (129) ポイントクラウドデータを量子化したボクセルデータの比較において、ボクセルデータの値の分布パタンの主観的特徴に基づいて、比較対象のボクセルデータ間における前記分布パタンの相関度を算出する
 情報処理方法。
 100 符号化装置, 101 制御部, 111 前処理部, 112 バウンディングボックス設定部, 113 ボクセル設定部, 114 信号列生成部, 115 符号化部, 201 相関演算部, 202 ユニークパタン設定部, 203 インデックス割り当て部, 204 相関情報生成部, 221 相関演算部, 222 参照空間座標情報設定部, 223 相関情報生成部, 241 相関演算部, 242 相関情報生成部, 261 Octree符号化部, 262 DAG処理部, 281 相関情報生成部, 282 演算部, 283 予測残差符号化部, 300 復号装置, 301 復号部, 302 ボクセルデータ生成部, 303 ポイントクラウド化処理部, 321 復号部, 322 ボクセルデータ生成部, 341 復号部, 342 ボクセルデータ生成部, 361 復号部, 362 DAG逆処理部, 363 Octree復号部, 364 ボクセルデータ生成部, 381 復号部, 382 予測残差復号部, 383 ボクセルデータ生成部, 391 ユニークパタン生成部, 392 演算部, 411 特徴量算出部, 412 相関演算組設定部, 413 コスト算出部, 500 画像処理装置, 501 位置設定部, 502 コスト算出部, 503 判定部, 900 コンピュータ

Claims (20)

  1.  ポイントクラウドデータを量子化したボクセルデータの比較において、ボクセルデータの値の分布パタンの主観的特徴に基づいて、比較対象のボクセルデータ間における前記分布パタンの相関度を算出する相関度算出部
     を備える情報処理装置。
  2.  前記相関度算出部は、前記ボクセルデータが表す空間の部分領域であるブロック毎に前記相関度を算出する
     請求項1に記載の情報処理装置。
  3.  前記相関度算出部は、
      比較対象の全てのボクセルデータが所定の形状の前記分布パタンを有する場合、前記相関度をより高く算出し、
      前記比較対象の少なくともいずれかのボクセルデータが前記所定の形状の前記分布パタンを有しない場合、前記相関度をより低く算出する
     請求項2に記載の情報処理装置。
  4.  前記所定の形状は、線または面である
     請求項3に記載の情報処理装置。
  5.  ポイントクラウドで描画される3次元構造の特徴量を算出する特徴量算出部をさらに備え、
     前記相関度算出部は、前記特徴量算出部により算出された前記特徴量に基づいて、前記相関度を算出する
     請求項2に記載の情報処理装置。
  6.  前記相関度算出部は、前記特徴量算出部により算出された前記特徴量に基づいて、テクスチャが所定の基準より細かいブロックにおいて、前記相関度をより低く算出する
     請求項5に記載の情報処理装置。
  7.  前記相関度算出部は、前記特徴量算出部により算出された前記特徴量に基づいて、周囲のボクセルに対してピークとなる色成分を有するボクセルを含むブロックにおいて、前記相関度をより低く算出する
     請求項5に記載の情報処理装置。
  8.  前記相関度算出部は、前記特徴量算出部により算出された前記特徴量に基づいて、注目度のより高い領域のブロックにおいて、前記相関度をより低く算出する
     請求項5に記載の情報処理装置。
  9.  前記相関度算出部は、前記特徴量算出部により算出された前記特徴量に基づいて、ポイントクラウドで描画される3次元構造における人の顔部分に相当するブロックにおいて、前記相関度をより低く算出する
     請求項5に記載の情報処理装置。
  10.  前記相関度算出部は、前記特徴量算出部により算出された前記特徴量に基づいて、ポイントクラウドで描画される3次元構造におけるエッジ部分に相当するブロックにおいて、前記相関度をより低く算出する
     請求項5に記載の情報処理装置。
  11.  前記相関度算出部は、前記特徴量算出部により算出された前記特徴量に基づいて、ポイントクラウドで描画される3次元構造における面を構成する4点の少なくともいずれか1つを含むブロックにおいて、前記相関度をより低く算出する
     請求項5に記載の情報処理装置。
  12.  前記相関度算出部は、コスト関数を用いて、比較対象のボクセルデータ間の相関についてのコスト値を算出し、算出した前記コスト値を、前記分布パタンの主観的特徴に基づいて補正することにより、比較対象のボクセルデータ間の相関度を算出する
     請求項2に記載の情報処理装置。
  13.  処理対象のブロックであるカレントブロックと比較するボクセルデータを設定する設定部をさらに備え、
     前記相関度算出部は、前記カレントブロックのボクセルデータと、前記設定部が設定した全てのボクセルデータとの間の相関度を算出する
     請求項2に記載の情報処理装置。
  14.  前記設定部は、所定の空間的範囲内において、前記カレントブロックと比較するボクセルデータを設定する
     請求項13に記載の情報処理装置。
  15.  前記設定部は、階層化されたボクセルデータの処理対象の階層よりも上位の階層において、前記カレントブロックと比較するボクセルデータを設定する
     請求項13に記載の情報処理装置。
  16.  前記相関度算出部により算出された前記相関度に基づいて、前記比較対象のボクセルデータの前記分布パタン同士が一致または近似するかを判定し、一致または近似すると判定された場合、前記比較対象のボクセルデータのそれぞれの前記分布パタンと一致または近似する前記分布パタンであるユニークパタンを設定するユニークパタン設定部をさらに備える
     請求項2に記載の情報処理装置。
  17.  前記ユニークパタン設定部は、前記比較対象のボクセルデータの内、存在頻度が最も高いボクセルデータの前記分布パタンを前記ユニークパタンとして設定する
     請求項16に記載の情報処理装置。
  18.  前記ユニークパタン設定部は、前記比較対象のボクセルデータの内、予め定められた所定の分布パタンに最も近似するボクセルデータの前記分布パタンを前記ユニークパタンとして設定する
     請求項16に記載の情報処理装置。
  19.  前記ユニークパタン設定部は、各比較対象のボクセルデータの前記分布パタンを用いて所定の方法により導出される新たな前記分布パタンを前記ユニークパタンとして設定する
     請求項16に記載の情報処理装置。
  20.  ポイントクラウドデータを量子化したボクセルデータの比較において、ボクセルデータの値の分布パタンの主観的特徴に基づいて、比較対象のボクセルデータ間における前記分布パタンの相関度を算出する
     情報処理方法。
PCT/JP2018/034130 2017-09-29 2018-09-14 情報処理装置および方法 WO2019065298A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2019544580A JP7268598B2 (ja) 2017-09-29 2018-09-14 情報処理装置および方法
CN201880061384.4A CN111108529B (zh) 2017-09-29 2018-09-14 信息处理设备和方法
EP18861281.6A EP3690823A4 (en) 2017-09-29 2018-09-14 DEVICE AND PROCESS FOR PROCESSING INFORMATION
KR1020207007639A KR102521801B1 (ko) 2017-09-29 2018-09-14 정보 처리 장치 및 방법
US16/649,166 US11468603B2 (en) 2017-09-29 2018-09-14 Information processing apparatus and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-189781 2017-09-29
JP2017189781 2017-09-29

Publications (1)

Publication Number Publication Date
WO2019065298A1 true WO2019065298A1 (ja) 2019-04-04

Family

ID=65901452

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/034130 WO2019065298A1 (ja) 2017-09-29 2018-09-14 情報処理装置および方法

Country Status (6)

Country Link
US (1) US11468603B2 (ja)
EP (1) EP3690823A4 (ja)
JP (1) JP7268598B2 (ja)
KR (1) KR102521801B1 (ja)
CN (1) CN111108529B (ja)
WO (1) WO2019065298A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3742404A1 (en) * 2019-05-22 2020-11-25 Sony Interactive Entertainment Inc. Content coding system and method
WO2021002636A1 (ko) * 2019-07-04 2021-01-07 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021045603A1 (ko) * 2019-09-06 2021-03-11 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021065536A1 (ja) * 2019-10-01 2021-04-08 ソニー株式会社 情報処理装置および方法
WO2021070952A1 (ja) * 2019-10-09 2021-04-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021140930A1 (ja) * 2020-01-07 2021-07-15 ソニーグループ株式会社 情報処理装置および方法
KR102323234B1 (ko) * 2020-03-30 2021-11-08 주식회사 모빌린트 인공신경망에서 점 구름 데이터를 처리하기 위한 방법 및 그 장치

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112041889A (zh) 2018-02-08 2020-12-04 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
WO2019159956A1 (ja) * 2018-02-14 2019-08-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
EP3816940A4 (en) * 2018-06-27 2021-09-08 Panasonic Intellectual Property Corporation of America METHOD FOR CODING THREE-DIMENSIONAL DATA, METHOD FOR DECODING THREE-DIMENSIONAL DATA, DEVICE FOR CODING THREE-DIMENSIONAL DATA AND DEVICE FOR DECODING THREE-DIMENSIONAL DATA
CN113508422A (zh) * 2019-03-08 2021-10-15 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
US20230281878A1 (en) * 2020-06-18 2023-09-07 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device and point cloud data reception method
KR102417959B1 (ko) * 2020-07-28 2022-07-06 주식회사 엘지유플러스 3차원 입체 콘텐츠 제공 장치 및 그 방법
US11803977B2 (en) * 2021-12-13 2023-10-31 Zoox, Inc. LIDAR point cloud alignment validator in HD mapping

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016009484A (ja) * 2014-06-20 2016-01-18 三星電子株式会社Samsung Electronics Co.,Ltd. ポイントクラウドで特徴領域を抽出する方法及び装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012213128A (ja) * 2011-03-24 2012-11-01 Sony Corp 画像処理装置および方法
US9472022B2 (en) * 2012-10-05 2016-10-18 University Of Southern California Three-dimensional point processing and model generation
US8885925B2 (en) * 2013-03-12 2014-11-11 Harris Corporation Method for 3D object identification and pose detection using phase congruency and fractal analysis
GB2536493B (en) * 2015-03-20 2020-11-18 Toshiba Europe Ltd Object pose recognition
US9659405B2 (en) * 2015-04-01 2017-05-23 Toshiba Medical Systems Corporation Image processing method and apparatus
US9576468B2 (en) * 2015-06-29 2017-02-21 Echocare Technologies Ltd. Human motion feature extraction in personal emergency response systems and methods
US11087501B2 (en) * 2017-09-29 2021-08-10 Sony Corporation Voxel correlation information processing apparatus and method
US11347965B2 (en) * 2019-03-21 2022-05-31 Illumina, Inc. Training data generation for artificial intelligence-based sequencing
US11106936B2 (en) * 2019-09-05 2021-08-31 General Atomics Object point cloud comparison and matching
JP7433442B2 (ja) * 2020-01-07 2024-02-19 エルジー エレクトロニクス インコーポレイティド ポイントクラウドデータ送信装置、送信方法、処理装置および処理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016009484A (ja) * 2014-06-20 2016-01-18 三星電子株式会社Samsung Electronics Co.,Ltd. ポイントクラウドで特徴領域を抽出する方法及び装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
V. KAMPE: "High Resolution Sparse Voxel DAGs", 2013, ACM

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3742404A1 (en) * 2019-05-22 2020-11-25 Sony Interactive Entertainment Inc. Content coding system and method
GB2584119B (en) * 2019-05-22 2022-11-02 Sony Interactive Entertainment Inc Content coding system and method
WO2021002636A1 (ko) * 2019-07-04 2021-01-07 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11895341B2 (en) 2019-07-04 2024-02-06 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
WO2021045603A1 (ko) * 2019-09-06 2021-03-11 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021065536A1 (ja) * 2019-10-01 2021-04-08 ソニー株式会社 情報処理装置および方法
WO2021070952A1 (ja) * 2019-10-09 2021-04-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021140930A1 (ja) * 2020-01-07 2021-07-15 ソニーグループ株式会社 情報処理装置および方法
KR102323234B1 (ko) * 2020-03-30 2021-11-08 주식회사 모빌린트 인공신경망에서 점 구름 데이터를 처리하기 위한 방법 및 그 장치

Also Published As

Publication number Publication date
KR20200053499A (ko) 2020-05-18
EP3690823A4 (en) 2020-09-02
CN111108529B (zh) 2023-10-03
CN111108529A (zh) 2020-05-05
US11468603B2 (en) 2022-10-11
KR102521801B1 (ko) 2023-04-14
EP3690823A1 (en) 2020-08-05
JPWO2019065298A1 (ja) 2020-11-05
US20200294273A1 (en) 2020-09-17
JP7268598B2 (ja) 2023-05-08

Similar Documents

Publication Publication Date Title
JP7268598B2 (ja) 情報処理装置および方法
WO2019065297A1 (ja) 情報処理装置および方法
JP7268599B2 (ja) 情報処理装置および方法
JP7234925B2 (ja) 情報処理装置および方法
US20220191520A1 (en) Information processing apparatus and method
JP6178798B2 (ja) 終了可能な空間ツリー型位置符号化および復号
US11922579B2 (en) Image processing apparatus and method for image processing by deriving voxel and mesh data to generate point cloud data
US20210366159A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
EP4258671A1 (en) Point cloud attribute predicting method, encoder, decoder, and storage medium
WO2021010200A1 (ja) 情報処理装置および方法
WO2021140930A1 (ja) 情報処理装置および方法
WO2022145214A1 (ja) 情報処理装置および方法
WO2021002214A1 (ja) 情報処理装置および方法
JP2024507046A (ja) 点群符号化および復号化方法、エンコーダ、デコーダ、ならびにコンピュータ記憶媒体
CN112509107A (zh) 一种点云属性重着色方法、装置及编码器
WO2019198520A1 (ja) 情報処理装置および方法
US20220353493A1 (en) Information processing apparatus and method
WO2022217472A1 (zh) 点云编解码方法、编码器、解码器及计算机可读存储介质
US20230177735A1 (en) Information processing apparatus and method
JP4743884B2 (ja) 画像符号化装置及びその制御方法
KR20240006667A (ko) 점군 속성 정보 부호화 방법, 복호화 방법, 장치 및 관련 기기
JP2022051968A (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: 18861281

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019544580

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018861281

Country of ref document: EP

Effective date: 20200429